Index: /NonGTP/Xerces/xerces-c_2_8_0/Readme.html
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/Readme.html	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/Readme.html	(revision 2674)
@@ -0,0 +1,30 @@
+<HTML>
+<HEAD>
+   <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
+   <TITLE>XML4C2 Readme</TITLE>
+</HEAD>
+<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000000" VLINK="#000000" ALINK="#000000" onLoad="javascript:document.location='doc/html/index.html';return;">
+<CENTER><A HREF="doc/html/index.html">Click here to read the Xerces-C documentation</A></CENTER>
+
+<!--
+
+If you are a hardcore computer nerd staring at this file through your favorite text
+editor, you are probably hunting for something. Let me guess, are you trying to find
+build instructions? Yes! Well it's not here. Why not?
+
+Because all the build instructions are now in Apache's cool web-site. Here is where
+you'll find everything related to Xerces builds.
+
+http://xerces.apache.org/xerces-c/build.html
+
+Just remember, don't jump into the builds without reading the build instructions 
+COMPLETELY.  It will save you lot of sleepless nights.
+
+So now, get out of your editor, use your browser and get going.
+
+--->
+
+</BODY>
+</HTML>
+
+
Index: /NonGTP/Xerces/xerces-c_2_8_0/NOTICE
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/NOTICE	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/NOTICE	(revision 2674)
@@ -0,0 +1,10 @@
+   =========================================================================
+   ==  NOTICE file corresponding to section 4(d) of the Apache License,   ==
+   ==  Version 2.0, in this case for the Apache Xerces distribution.      ==
+   =========================================================================
+
+   This product includes software developed by
+   The Apache Software Foundation (http://www.apache.org/).
+
+   Portions of this software were originally based on the following:
+     - software copyright (c) 1999, IBM Corporation., http://www.ibm.com.
Index: /NonGTP/Xerces/xerces-c_2_8_0/LICENSE
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/LICENSE	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/LICENSE	(revision 2674)
@@ -0,0 +1,202 @@
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
Index: /NonGTP/Xerces/xerces-c_2_8_0/tests/DOM/TypeInfo/data/combined.xml
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/tests/DOM/TypeInfo/data/combined.xml	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/tests/DOM/TypeInfo/data/combined.xml	(revision 2674)
@@ -0,0 +1,7 @@
+<!DOCTYPE root SYSTEM "combined.dtd" >
+<root xsi:noNamespaceSchemaLocation="combined.xsd"  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  attBoth="lala" 
+attSchema="lala" attDTD="lala"
+>
+<level1 >content</level1>
+<level1a >content</level1a>
+</root>
Index: /NonGTP/Xerces/xerces-c_2_8_0/tests/DOM/TypeInfo/data/TypeInfoNoDTD.xsd
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/tests/DOM/TypeInfo/data/TypeInfoNoDTD.xsd	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/tests/DOM/TypeInfo/data/TypeInfoNoDTD.xsd	(revision 2674)
@@ -0,0 +1,350 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xs:schema xmlns:xs='http://www.w3.org/2001/XMLSchema' elementFormDefault="unqualified"  xmlns:foo="http://anothernamespace.com" >
+
+<xs:import namespace="http://www.secondSchema" schemaLocation="SecondSchema.xsd" />
+
+
+<xs:element name="root" type="rootType" />
+
+<xs:complexType name="rootType" >
+  <xs:sequence>
+    <xs:element name="attrTest" type="attrTestType" />
+    <xs:element name="eleTest" type="eleTestType" />
+    <xs:element name="simpleDerTest" type="simpleDerTestType" />
+    <xs:element name="complexTest" type="complexTestType" />
+    <xs:element name="complexDerTest" type="complexDerTestType" />
+    <xs:element name="unionTest" type="unionTest" />
+    <xs:element name="anonymousTest" >
+      <xs:complexType>
+        <xs:sequence>
+          <xs:element name="quantity">
+            <xs:simpleType>
+              <xs:restriction base="xs:positiveInteger">
+                <xs:maxExclusive value="100"/>
+              </xs:restriction>
+            </xs:simpleType>
+          </xs:element>
+          <xs:element name='size'>
+            <xs:simpleType>
+              <xs:union>
+                <xs:simpleType>
+                  <xs:restriction base='xs:integer'/>
+                </xs:simpleType>
+                <xs:simpleType>
+                  <xs:restriction base='xs:string'/>
+                </xs:simpleType>
+              </xs:union>
+            </xs:simpleType>
+          </xs:element>
+          <xs:element ref="anonElement" />
+        </xs:sequence>
+        <xs:attribute name="partNum" >
+          <xs:simpleType>
+            <xs:restriction base="xs:positiveInteger">
+              <xs:maxExclusive value="100"/>
+            </xs:restriction>
+          </xs:simpleType>
+        </xs:attribute>
+      </xs:complexType>       
+    </xs:element>
+    <xs:element name="xsiTypeTest" type="xsiTypeTestType" />
+    <xs:element name="anyTestPartial" type="anyTestPartialType" />
+    <xs:element name="anyTest" type="anyTestType" />
+    <xs:element name="anyTestAttr1" type="anyTestAttr1Type" />
+    <xs:element name="anyTestAttr2" type="anyTestAttr2Type" />
+    <xs:element name="anyTestMissing" type="anyTestType" />
+    <xs:element name="invalidTest" type="invalidTestType" />
+  </xs:sequence>
+</xs:complexType>
+
+<xs:complexType name="anyTestPartialType" >
+  <xs:sequence >
+     <xs:any namespace="http://www.w3.org/1999/xhtml" processContents="skip" />
+     <xs:any namespace="http://www.w3.org/1999/xhtml" processContents="lax" />
+     <xs:any namespace="http://www.secondSchema" processContents="lax" />
+ </xs:sequence>
+  <xs:anyAttribute namespace="http://www.w3.org/1999/xhtml" processContents="skip" />
+</xs:complexType>
+
+<xs:complexType name="anyTestType" >
+  <xs:sequence >
+     <xs:any namespace="http://www.secondSchema" processContents="lax"/>
+     <xs:any namespace="http://www.secondSchema" processContents="strict"/>
+     <xs:any namespace="http://www.secondSchema" processContents="strict"/>
+ </xs:sequence>
+  <xs:anyAttribute namespace="http://www.secondSchema" processContents="lax" />
+</xs:complexType>
+
+<xs:complexType name="anyTestAttr1Type" >
+  <xs:anyAttribute namespace="http://www.secondSchema" processContents="strict" />
+</xs:complexType>
+
+<xs:complexType name="anyTestAttr2Type" >
+  <xs:anyAttribute namespace="http://www.secondSchema" processContents="lax" />
+</xs:complexType>
+
+<xs:complexType name="invalidTestType" >
+  <xs:sequence >
+    <xs:element name="simple" type="stringDerivedType" />
+    <xs:element name="complex" type="baseComplex" />
+    <xs:element name="number" type="base" />
+    <xs:element name="complexXsi" type="baseComplex" />
+    <xs:element name="unionTest" type="uType" />
+    <xs:element name="invalidAttrTest" type="attrOnlyType" />
+    <xs:element name="missingAttrTest" type="attrOnlyType" />
+    <xs:element name="prohibitedAttrTest" type="prohibitedAttrType" />
+  </xs:sequence>
+  <xs:attribute name="simple" type="stringDerivedType" />
+</xs:complexType>
+
+
+<xs:complexType name="prohibitedAttrType" >
+  <xs:attribute name="attr" type="stringDerivedType"  use="prohibited" />
+</xs:complexType>
+
+<xs:complexType name="attrOnlyType" >
+  <xs:attribute name="attr" type="stringDerivedType"  use="required" />
+</xs:complexType>
+
+<xs:simpleType name="uType" >
+  <xs:union memberTypes="stringDerivedType" />
+</xs:simpleType>
+
+
+<xs:complexType name="xsiTypeTestType" >
+  <xs:sequence>
+    <xs:element name="number" type="base" maxOccurs="3"/>
+    <xs:element name="complexXsi" type="baseComplex" maxOccurs="3"/>
+  </xs:sequence>
+</xs:complexType>
+
+
+<xs:complexType name="baseComplex" >
+  <xs:sequence>
+    <xs:element name="a" type="xs:string" />
+  </xs:sequence>
+</xs:complexType>
+
+<xs:complexType name="level1Complex" >
+  <xs:complexContent >
+    <xs:extension base="baseComplex" >
+      <xs:sequence>
+        <xs:element name="b" type="xs:string"/>
+      </xs:sequence>
+    </xs:extension>
+  </xs:complexContent>
+</xs:complexType>
+
+<xs:complexType name="level2Complex" >
+  <xs:complexContent >
+    <xs:extension base="level1Complex" >
+      <xs:sequence>
+        <xs:element name="c" type="xs:string"/>
+      </xs:sequence>
+    </xs:extension>
+  </xs:complexContent>
+</xs:complexType>
+
+
+<xs:simpleType name="base" >
+  <xs:restriction base="xs:decimal" >
+    <xs:maxExclusive value="100"/>
+  </xs:restriction>
+</xs:simpleType>
+
+<xs:simpleType name="level1" >
+  <xs:restriction base="base" >
+    <xs:maxExclusive value="75"/>
+  </xs:restriction>
+</xs:simpleType>
+
+<xs:simpleType name="level2" >
+  <xs:restriction base="level1" >
+    <xs:maxExclusive value="50"/>
+  </xs:restriction>
+</xs:simpleType>
+
+
+<xs:element name="anonElement" >
+  <xs:simpleType >
+    <xs:restriction base="xs:decimal" >
+      <xs:maxExclusive value="100"/>
+    </xs:restriction>
+  </xs:simpleType>
+</xs:element>
+
+<xs:complexType name="eleTestType" >
+  <xs:sequence >
+    <xs:element name="level1string" type="xs:string" />
+    <xs:element name="level1boolean" type="xs:boolean" />
+    <xs:element name="level1decimal" type="xs:decimal" />
+    <xs:element name="level1float" type="xs:float" />
+    <xs:element name="level1double" type="xs:double" />
+    <xs:element name="level1duration" type="xs:duration" />
+    <xs:element name="level1dateTime" type="xs:dateTime" />
+    <xs:element name="level1time" type="xs:time" />
+    <xs:element name="level1date" type="xs:date" />
+    <xs:element name="level1gYearMonth" type="xs:gYearMonth" />
+    <xs:element name="level1gYear" type="xs:gYear" />
+    <xs:element name="level1gMonthDay" type="xs:gMonthDay" />
+    <xs:element name="level1gDay" type="xs:gDay" />
+    <xs:element name="level1gMonth" type="xs:gMonth" />
+    <xs:element name="level1hexBinary" type="xs:hexBinary" />
+    <xs:element name="level1base64Binary" type="xs:base64Binary" />
+    <xs:element name="level1anyURI" type="xs:anyURI" />
+    <xs:element name="level1QName" type="xs:QName" />
+    <xs:element name="level1normalizedString" type="xs:normalizedString" />
+    <xs:element name="level1token" type="xs:token" />
+    <xs:element name="level1language" type="xs:language" />
+    <xs:element name="level1NMTOKEN" type="xs:NMTOKEN" />
+    <xs:element name="level1NMTOKENS" type="xs:NMTOKENS" />
+    <xs:element name="level1Name" type="xs:Name" />
+    <xs:element name="level1NCName" type="xs:NCName" />
+    <xs:element name="level1integer" type="xs:integer" />
+    <xs:element name="level1nonPositiveInteger" type="xs:nonPositiveInteger" />
+    <xs:element name="level1negativeInteger" type="xs:negativeInteger" />
+    <xs:element name="level1long" type="xs:long" />
+    <xs:element name="level1int" type="xs:int" />
+    <xs:element name="level1short" type="xs:short" />
+    <xs:element name="level1byte" type="xs:byte" />
+    <xs:element name="level1nonNegativeInteger" type="xs:nonNegativeInteger" />
+    <xs:element name="level1unsignedLong" type="xs:unsignedLong" />
+    <xs:element name="level1unsignedInt" type="xs:unsignedInt" />
+    <xs:element name="level1unsignedShort" type="xs:unsignedShort" />
+    <xs:element name="level1unsignedByte" type="xs:unsignedByte" />
+    <xs:element name="level1positiveInteger" type="xs:positiveInteger" />
+    <xs:element name="level1anyType" type="xs:anyType" />
+  </xs:sequence>
+</xs:complexType>
+
+<xs:complexType name="attrTestType" >
+  <xs:attribute name="anySimpleType" type="xs:anySimpleType" />
+  <xs:attribute name="string" type="xs:string" />
+  <xs:attribute name="boolean" type="xs:boolean" />
+  <xs:attribute name="decimal" type="xs:decimal" />
+  <xs:attribute name="float" type="xs:float" />
+  <xs:attribute name="double" type="xs:double" />
+  <xs:attribute name="duration" type="xs:duration" />
+  <xs:attribute name="dateTime" type="xs:dateTime" />
+  <xs:attribute name="time" type="xs:time" />
+  <xs:attribute name="date" type="xs:date" />
+  <xs:attribute name="gYearMonth" type="xs:gYearMonth" />
+  <xs:attribute name="gYear" type="xs:gYear" />
+  <xs:attribute name="gMonthDay" type="xs:gMonthDay" />
+  <xs:attribute name="gDay" type="xs:gDay" />
+  <xs:attribute name="gMonth" type="xs:gMonth" />
+  <xs:attribute name="hexBinary" type="xs:hexBinary" />
+  <xs:attribute name="base64Binary" type="xs:base64Binary" />
+  <xs:attribute name="anyURI" type="xs:anyURI" />
+  <xs:attribute name="QName" type="xs:QName" />
+  <xs:attribute name="normalizedString" type="xs:normalizedString" />
+  <xs:attribute name="token" type="xs:token" />
+  <xs:attribute name="language" type="xs:language" />
+  <xs:attribute name="NMTOKEN" type="xs:NMTOKEN" />
+  <xs:attribute name="NMTOKENS" type="xs:NMTOKENS" />
+  <xs:attribute name="Name" type="xs:Name" />
+  <xs:attribute name="NCName" type="xs:NCName" />
+  <xs:attribute name="ID" type="xs:ID" />
+  <xs:attribute name="IDREF" type="xs:IDREF" />
+  <xs:attribute name="IDREFS" type="xs:IDREFS" />
+  <xs:attribute name="integer" type="xs:integer" />
+  <xs:attribute name="nonPositiveInteger" type="xs:nonPositiveInteger" />
+  <xs:attribute name="negativeInteger" type="xs:negativeInteger" />
+  <xs:attribute name="long" type="xs:long" />
+  <xs:attribute name="int" type="xs:int" />
+  <xs:attribute name="short" type="xs:short" />
+  <xs:attribute name="byte" type="xs:byte" />
+  <xs:attribute name="nonNegativeInteger" type="xs:nonNegativeInteger" />
+  <xs:attribute name="unsignedLong" type="xs:unsignedLong" />
+  <xs:attribute name="unsignedInt" type="xs:unsignedInt" />
+  <xs:attribute name="unsignedShort" type="xs:unsignedShort" />
+  <xs:attribute name="unsignedByte" type="xs:unsignedByte" />
+  <xs:attribute name="positiveInteger" type="xs:positiveInteger" />
+  <xs:attribute name="defaultString" type="xs:string" default="hello" />
+  <xs:attribute name="defaultInt" type="xs:integer" default="12" />
+</xs:complexType>
+
+<xs:complexType name="simpleDerTestType" >
+  <xs:sequence>
+    <xs:element name="decimalDerived" type="decimalDerivedType" />
+    <xs:element name="stringDerived" type="stringDerivedType" />
+  </xs:sequence>
+  <xs:attribute name="decimalDerived" type="decimalDerivedType" />
+  <xs:attribute name="stringDerived" type="stringDerivedType" />
+</xs:complexType>
+
+<xs:simpleType name="stringDerivedType" >
+  <xs:restriction base="xs:string" >
+    <xs:pattern value="hello"/>
+  </xs:restriction>
+</xs:simpleType>
+
+<xs:simpleType name="decimalDerivedType" >
+  <xs:restriction base="xs:decimal" >
+    <xs:maxExclusive value="100"/>
+  </xs:restriction>
+</xs:simpleType>
+
+<xs:complexType name="complexTestType" >
+  <xs:sequence>
+    <xs:element name="a" type="xs:string"/>
+    <xs:element name="b" type="stringDerivedType"/>
+    <xs:element name="c" type="decimalDerivedType"/>
+  </xs:sequence>
+  <xs:attribute name="a" type="xs:string" />
+  <xs:attribute name="b" type="stringDerivedType" />
+  <xs:attribute name="c" type="decimalDerivedType" />
+</xs:complexType>
+
+<xs:complexType name="complexDerTestType" >
+  <xs:complexContent >
+    <xs:extension base="complexTestType" >
+      <xs:sequence>
+        <xs:element name="d" type="xs:string"/>
+      </xs:sequence>
+    </xs:extension>
+  </xs:complexContent>
+</xs:complexType>
+
+<xs:simpleType name="unionTestType" >
+  <xs:union memberTypes="decimalDerivedType stringDerivedType xs:decimal xs:string" />
+</xs:simpleType>
+
+
+<xs:complexType name="unionTest" >
+  <xs:sequence >
+    <xs:element name="testEle" maxOccurs="4"  type="unionTestType" />
+    <xs:element name="testEle2" maxOccurs="4" >
+      <xs:complexType >
+         <xs:attribute name="testAttr" type="unionTestType" />
+         <xs:attribute name="testAttr2" type="unionTestType" />
+      </xs:complexType>
+    </xs:element>
+  </xs:sequence>
+</xs:complexType>
+
+<xs:complexType name="unionTest2" >
+  <xs:sequence >
+    <xs:element name="testEle" maxOccurs="4"  >
+      <xs:complexType >
+        <xs:simpleContent >
+          <xs:extension base="unionTestType" >
+            <xs:attribute name="testAttr" type="unionTestType" />
+          </xs:extension >
+        </xs:simpleContent>
+      </xs:complexType>
+    </xs:element>
+  </xs:sequence>
+</xs:complexType>
+
+<xs:complexType name="testtype2" >
+<xs:sequence>
+<xs:element name="poo" type="xs:string"/>
+</xs:sequence>
+<xs:attribute name="a" type="xs:IDREF" />
+<xs:attribute name="b" type="xs:ID" />
+<xs:attribute name="c" type="xs:string" />
+
+</xs:complexType>
+
+</xs:schema>
Index: /NonGTP/Xerces/xerces-c_2_8_0/tests/DOM/TypeInfo/data/TypeInfoNoDTD.xml
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/tests/DOM/TypeInfo/data/TypeInfoNoDTD.xml	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/tests/DOM/TypeInfo/data/TypeInfoNoDTD.xml	(revision 2674)
@@ -0,0 +1,167 @@
+<root xsi:noNamespaceSchemaLocation="TypeInfoNoDTD.xsd"  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:ss="http://www.secondSchema" >
+<attrTest 
+anySimpleType="asdas"
+string="string"
+boolean="true"
+decimal="2.0"
+float="2.1"
+double="2.1"
+duration="P1Y2M3DT10H30M"
+dateTime="2000-10-30T11:12:00"
+time="11:12:00"
+date="2000-10-30"
+gYearMonth="1999-01"
+gYear="1999"
+gMonthDay="--01-08"
+gDay="---21"
+gMonth="--12--"
+hexBinary="0FB7"
+base64Binary="abcd"
+anyURI="http://www.example.com/"
+QName="xsla"
+normalizedString="example"
+token="example"
+language="en"
+NMTOKEN="example"
+NMTOKENS="example bar"
+Name="example"
+NCName="example"
+integer="1"
+nonPositiveInteger="-1"
+negativeInteger="-1"
+long="1"
+int="1"
+short="1"
+byte="1"
+nonNegativeInteger="1"
+unsignedLong="1"
+unsignedInt="1"
+unsignedShort="1"
+unsignedByte="1"
+positiveInteger="1"
+ID="abc"
+IDREF="abc"
+IDREFS="abc"
+defaultString="test"
+xmlns:prefix="http://lala" 
+xsi:noNamespaceSchemaLocation="hello"
+/>
+<eleTest >
+  <level1string >string</level1string>
+  <level1boolean >true</level1boolean>
+  <level1decimal >2.0</level1decimal>
+  <level1float >2.1</level1float>
+  <level1double >2.1</level1double>
+  <level1duration >P1Y2M3DT10H30M</level1duration>
+  <level1dateTime >2000-10-30T11:12:00</level1dateTime>
+  <level1time >11:12:00</level1time>
+  <level1date >2000-10-30</level1date>
+  <level1gYearMonth >1999-01</level1gYearMonth>
+  <level1gYear >1999</level1gYear>
+  <level1gMonthDay >--01-08</level1gMonthDay>
+  <level1gDay >---21</level1gDay>
+  <level1gMonth >--12--</level1gMonth>
+  <level1hexBinary >0FB7</level1hexBinary>
+  <level1base64Binary >abcd</level1base64Binary>
+  <level1anyURI >http://www.example.com/</level1anyURI>
+  <level1QName >xsla</level1QName>
+  <level1normalizedString >example</level1normalizedString>
+  <level1token >example</level1token>
+  <level1language >en</level1language>
+  <level1NMTOKEN >example</level1NMTOKEN>
+  <level1NMTOKENS >example bar</level1NMTOKENS>
+  <level1Name >example</level1Name>
+  <level1NCName >example</level1NCName>
+  <level1integer >1</level1integer>
+  <level1nonPositiveInteger >-1</level1nonPositiveInteger>
+  <level1negativeInteger >-1</level1negativeInteger>
+  <level1long >1</level1long>
+  <level1int >1</level1int>
+  <level1short >1</level1short>
+  <level1byte >1</level1byte>
+  <level1nonNegativeInteger >1</level1nonNegativeInteger>
+  <level1unsignedLong >1</level1unsignedLong>
+  <level1unsignedInt >1</level1unsignedInt>
+  <level1unsignedShort >1</level1unsignedShort>
+  <level1unsignedByte >1</level1unsignedByte>
+  <level1positiveInteger >1</level1positiveInteger>
+  <level1anyType />
+</eleTest>
+<simpleDerTest decimalDerived="50" stringDerived="hello" >
+  <decimalDerived >20</decimalDerived>
+  <stringDerived >hello</stringDerived>
+</simpleDerTest>
+<complexTest a="abcd" b="hello" c="50" >
+  <a >abcd</a>
+  <b >hello</b>
+  <c >50</c>
+</complexTest>
+<complexDerTest a="abcd" b="hello" c="50" >
+  <a >abcd</a>
+  <b >hello</b>
+  <c >50</c>
+  <d >abcdefg</d>
+</complexDerTest>
+<unionTest >
+  <testEle >50</testEle>
+  <testEle >hello</testEle>
+  <testEle >200</testEle>
+  <testEle >abcdefg</testEle>
+  <testEle2 testAttr="50" testAttr2="hello"  />
+  <testEle2 testAttr="hello" testAttr2="50" />
+  <testEle2 testAttr="200" testAttr2="abcdefg" />
+  <testEle2 testAttr="abcdefg" testAttr2="200" />
+</unionTest>
+<anonymousTest partNum="50">
+  <quantity>50</quantity>
+  <size>25</size>
+  <anonElement>11</anonElement>
+</anonymousTest>
+<xsiTypeTest>
+  <number>99</number>
+  <number xsi:type="level1" >74</number>
+  <number xsi:type="level2" >49</number>
+  <complexXsi >
+    <a >a</a>
+  </complexXsi>
+  <complexXsi xsi:type="level1Complex" >
+    <a >a</a>
+    <b >b</b>
+  </complexXsi>
+  <complexXsi xsi:type="level2Complex" >
+    <a >a</a>
+    <b >b</b>
+    <c >c</c>
+  </complexXsi>
+</xsiTypeTest>
+<anyTestPartial xhtml:attr2="some value" >
+  <xhtml:fakeTag1 />
+  <xhtml:fakeTag2 />
+  <ss:realTag1 >la</ss:realTag1>
+</anyTestPartial>
+<anyTest ss:attr1="string" ss:attr2="2" ss:attr3="string" ss:attr4="2">
+  <ss:realTag2 >la</ss:realTag2>
+  <ss:realTag3 >la</ss:realTag3>
+  <ss:notRealTag >la</ss:notRealTag>
+</anyTest>
+<anyTestAttr1 ss:attr5="2" />
+<anyTestAttr2 ss:attr5="2" />
+<anyTestMissing />
+<invalidTest simple="abcd" invalid="asdas" >
+  <simple >abcd</simple>
+  <complex >
+    <a >asa</a>
+    <invalid />
+  </complex>
+  <number xsi:type="stringDerivedType" >74</number>
+  <complexXsi xsi:type="simpleDerTestType" >
+    <a >a</a>
+    <b >b</b>
+  </complexXsi>
+  <unionTest >hello1</unionTest>
+  <empty ><a /><a /></empty>
+  <invalidAttrTest attr="lala" />
+  <missingAttrTest />
+  <prohibitedAttrTest attr="lala" />
+</invalidTest>
+</root>
Index: /NonGTP/Xerces/xerces-c_2_8_0/tests/DOM/TypeInfo/data/TypeInfo.dtd
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/tests/DOM/TypeInfo/data/TypeInfo.dtd	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/tests/DOM/TypeInfo/data/TypeInfo.dtd	(revision 2674)
@@ -0,0 +1,22 @@
+<!NOTATION png SYSTEM 'http://xml.apache.org' >
+<!ENTITY APACHE SYSTEM 'xml.apache.org' NDATA png>
+
+<!ELEMENT attributeTest EMPTY >
+
+<!ATTLIST attributeTest
+   xmlns:foo CDATA      #REQUIRED
+   cdata     CDATA      #REQUIRED
+   enum      (a | b)    #REQUIRED
+   id        ID         #REQUIRED 
+   idRef     IDREF      #REQUIRED
+   idRefs    IDREFS     #REQUIRED
+   nmToken   NMTOKEN    #REQUIRED
+   nmTokenDefault   NMTOKEN    "lala"
+   nmTokenDefault2   NMTOKEN    "lala2"
+   nmTokens  NMTOKENS   #REQUIRED
+   entity    ENTITY     #REQUIRED
+   entities  ENTITIES   #REQUIRED
+   notation  NOTATION   (png) #REQUIRED
+>
+
+
Index: /NonGTP/Xerces/xerces-c_2_8_0/tests/DOM/TypeInfo/data/SecondSchema.xsd
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/tests/DOM/TypeInfo/data/SecondSchema.xsd	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/tests/DOM/TypeInfo/data/SecondSchema.xsd	(revision 2674)
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xs:schema xmlns:xs='http://www.w3.org/2001/XMLSchema' elementFormDefault="unqualified"  targetNamespace="http://www.secondSchema" xmlns:ss="http://www.secondSchema">
+  <xs:element name="realTag1" type="xs:string" />
+  <xs:element name="realTag2" type="xs:string" />
+  <xs:element name="realTag3" type="xs:string" />
+  <xs:attribute name="attr1" type="xs:string" />
+  <xs:attribute name="attr2" type="xs:integer" />
+
+  <xs:attribute name="attr3" type="ss:unionType" />
+  <xs:attribute name="attr4" type="ss:unionType" />
+ 
+  <xs:simpleType name="unionType" >
+    <xs:union memberTypes="xs:integer xs:string" />
+  </xs:simpleType>
+
+</xs:schema>
Index: /NonGTP/Xerces/xerces-c_2_8_0/tests/DOM/TypeInfo/data/TypeInfo.xsd
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/tests/DOM/TypeInfo/data/TypeInfo.xsd	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/tests/DOM/TypeInfo/data/TypeInfo.xsd	(revision 2674)
@@ -0,0 +1,352 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xs:schema xmlns:xs='http://www.w3.org/2001/XMLSchema' elementFormDefault="unqualified"  xmlns:foo="http://anothernamespace.com" >
+
+<xs:import namespace="http://www.secondSchema" schemaLocation="SecondSchema.xsd" />
+
+
+<xs:element name="root" type="rootType" />
+
+<xs:complexType name="rootType" >
+  <xs:sequence>
+    <xs:element name="attrTest" type="attrTestType" />
+    <xs:element name="eleTest" type="eleTestType" />
+    <xs:element name="simpleDerTest" type="simpleDerTestType" />
+    <xs:element name="complexTest" type="complexTestType" />
+    <xs:element name="complexDerTest" type="complexDerTestType" />
+    <xs:element name="unionTest" type="unionTest" />
+    <xs:element name="anonymousTest" >
+      <xs:complexType>
+        <xs:sequence>
+          <xs:element name="quantity">
+            <xs:simpleType>
+              <xs:restriction base="xs:positiveInteger">
+                <xs:maxExclusive value="100"/>
+              </xs:restriction>
+            </xs:simpleType>
+          </xs:element>
+          <xs:element name='size'>
+            <xs:simpleType>
+              <xs:union>
+                <xs:simpleType>
+                  <xs:restriction base='xs:integer'/>
+                </xs:simpleType>
+                <xs:simpleType>
+                  <xs:restriction base='xs:string'/>
+                </xs:simpleType>
+              </xs:union>
+            </xs:simpleType>
+          </xs:element>
+          <xs:element ref="anonElement" />
+        </xs:sequence>
+        <xs:attribute name="partNum" >
+          <xs:simpleType>
+            <xs:restriction base="xs:positiveInteger">
+              <xs:maxExclusive value="100"/>
+            </xs:restriction>
+          </xs:simpleType>
+        </xs:attribute>
+      </xs:complexType>       
+    </xs:element>
+    <xs:element name="xsiTypeTest" type="xsiTypeTestType" />
+    <xs:element name="anyTestPartial" type="anyTestPartialType" />
+    <xs:element name="anyTest" type="anyTestType" />
+    <xs:element name="anyTestAttr1" type="anyTestAttr1Type" />
+    <xs:element name="anyTestAttr2" type="anyTestAttr2Type" />
+    <xs:element name="anyTestMissing" type="anyTestType" />
+    <xs:element name="invalidTest" type="invalidTestType" />
+  </xs:sequence>
+</xs:complexType>
+
+<xs:complexType name="anyTestPartialType" >
+  <xs:sequence >
+     <xs:any namespace="http://www.w3.org/1999/xhtml" processContents="skip" />
+     <xs:any namespace="http://www.w3.org/1999/xhtml" processContents="lax" />
+     <xs:any namespace="http://www.secondSchema" processContents="lax" />
+ </xs:sequence>
+  <xs:anyAttribute namespace="http://www.w3.org/1999/xhtml" processContents="skip" />
+</xs:complexType>
+
+<xs:complexType name="anyTestType" >
+  <xs:sequence >
+     <xs:any namespace="http://www.secondSchema" processContents="lax"/>
+     <xs:any namespace="http://www.secondSchema" processContents="strict"/>
+     <xs:any namespace="http://www.secondSchema" processContents="strict"/>
+ </xs:sequence>
+  <xs:anyAttribute namespace="http://www.secondSchema" processContents="lax" />
+</xs:complexType>
+
+<xs:complexType name="anyTestAttr1Type" >
+  <xs:anyAttribute namespace="http://www.secondSchema" processContents="strict" />
+</xs:complexType>
+
+<xs:complexType name="anyTestAttr2Type" >
+  <xs:anyAttribute namespace="http://www.secondSchema" processContents="lax" />
+</xs:complexType>
+
+<xs:complexType name="invalidTestType" >
+  <xs:sequence >
+    <xs:element name="simple" type="stringDerivedType" />
+    <xs:element name="complex" type="baseComplex" />
+    <xs:element name="number" type="base" />
+    <xs:element name="complexXsi" type="baseComplex" />
+    <xs:element name="unionTest" type="uType" />
+    <xs:element name="invalidAttrTest" type="attrOnlyType" />
+    <xs:element name="missingAttrTest" type="attrOnlyType" />
+    <xs:element name="prohibitedAttrTest" type="prohibitedAttrType" />
+  </xs:sequence>
+  <xs:attribute name="simple" type="stringDerivedType" />
+</xs:complexType>
+
+
+<xs:complexType name="prohibitedAttrType" >
+  <xs:attribute name="attr" type="stringDerivedType"  use="prohibited" />
+</xs:complexType>
+
+<xs:complexType name="attrOnlyType" >
+  <xs:attribute name="attr" type="stringDerivedType"  use="required" />
+</xs:complexType>
+
+<xs:simpleType name="uType" >
+  <xs:union memberTypes="stringDerivedType" />
+</xs:simpleType>
+
+
+<xs:complexType name="xsiTypeTestType" >
+  <xs:sequence>
+    <xs:element name="number" type="base" maxOccurs="3"/>
+    <xs:element name="complexXsi" type="baseComplex" maxOccurs="3"/>
+  </xs:sequence>
+</xs:complexType>
+
+
+<xs:complexType name="baseComplex" >
+  <xs:sequence>
+    <xs:element name="a" type="xs:string" />
+  </xs:sequence>
+</xs:complexType>
+
+<xs:complexType name="level1Complex" >
+  <xs:complexContent >
+    <xs:extension base="baseComplex" >
+      <xs:sequence>
+        <xs:element name="b" type="xs:string"/>
+      </xs:sequence>
+    </xs:extension>
+  </xs:complexContent>
+</xs:complexType>
+
+<xs:complexType name="level2Complex" >
+  <xs:complexContent >
+    <xs:extension base="level1Complex" >
+      <xs:sequence>
+        <xs:element name="c" type="xs:string"/>
+      </xs:sequence>
+    </xs:extension>
+  </xs:complexContent>
+</xs:complexType>
+
+
+<xs:simpleType name="base" >
+  <xs:restriction base="xs:decimal" >
+    <xs:maxExclusive value="100"/>
+  </xs:restriction>
+</xs:simpleType>
+
+<xs:simpleType name="level1" >
+  <xs:restriction base="base" >
+    <xs:maxExclusive value="75"/>
+  </xs:restriction>
+</xs:simpleType>
+
+<xs:simpleType name="level2" >
+  <xs:restriction base="level1" >
+    <xs:maxExclusive value="50"/>
+  </xs:restriction>
+</xs:simpleType>
+
+
+<xs:element name="anonElement" >
+  <xs:simpleType >
+    <xs:restriction base="xs:decimal" >
+      <xs:maxExclusive value="100"/>
+    </xs:restriction>
+  </xs:simpleType>
+</xs:element>
+
+<xs:complexType name="eleTestType" >
+  <xs:sequence >
+    <xs:element name="level1string" type="xs:string" />
+    <xs:element name="level1boolean" type="xs:boolean" />
+    <xs:element name="level1decimal" type="xs:decimal" />
+    <xs:element name="level1float" type="xs:float" />
+    <xs:element name="level1double" type="xs:double" />
+    <xs:element name="level1duration" type="xs:duration" />
+    <xs:element name="level1dateTime" type="xs:dateTime" />
+    <xs:element name="level1time" type="xs:time" />
+    <xs:element name="level1date" type="xs:date" />
+    <xs:element name="level1gYearMonth" type="xs:gYearMonth" />
+    <xs:element name="level1gYear" type="xs:gYear" />
+    <xs:element name="level1gMonthDay" type="xs:gMonthDay" />
+    <xs:element name="level1gDay" type="xs:gDay" />
+    <xs:element name="level1gMonth" type="xs:gMonth" />
+    <xs:element name="level1hexBinary" type="xs:hexBinary" />
+    <xs:element name="level1base64Binary" type="xs:base64Binary" />
+    <xs:element name="level1anyURI" type="xs:anyURI" />
+    <xs:element name="level1QName" type="xs:QName" />
+    <xs:element name="level1normalizedString" type="xs:normalizedString" />
+    <xs:element name="level1token" type="xs:token" />
+    <xs:element name="level1language" type="xs:language" />
+    <xs:element name="level1NMTOKEN" type="xs:NMTOKEN" />
+    <xs:element name="level1NMTOKENS" type="xs:NMTOKENS" />
+    <xs:element name="level1Name" type="xs:Name" />
+    <xs:element name="level1NCName" type="xs:NCName" />
+    <xs:element name="level1integer" type="xs:integer" />
+    <xs:element name="level1nonPositiveInteger" type="xs:nonPositiveInteger" />
+    <xs:element name="level1negativeInteger" type="xs:negativeInteger" />
+    <xs:element name="level1long" type="xs:long" />
+    <xs:element name="level1int" type="xs:int" />
+    <xs:element name="level1short" type="xs:short" />
+    <xs:element name="level1byte" type="xs:byte" />
+    <xs:element name="level1nonNegativeInteger" type="xs:nonNegativeInteger" />
+    <xs:element name="level1unsignedLong" type="xs:unsignedLong" />
+    <xs:element name="level1unsignedInt" type="xs:unsignedInt" />
+    <xs:element name="level1unsignedShort" type="xs:unsignedShort" />
+    <xs:element name="level1unsignedByte" type="xs:unsignedByte" />
+    <xs:element name="level1positiveInteger" type="xs:positiveInteger" />
+    <xs:element name="level1anyType" type="xs:anyType" />
+  </xs:sequence>
+</xs:complexType>
+
+<xs:complexType name="attrTestType" >
+  <xs:attribute name="anySimpleType" type="xs:anySimpleType" />
+  <xs:attribute name="string" type="xs:string" />
+  <xs:attribute name="boolean" type="xs:boolean" />
+  <xs:attribute name="decimal" type="xs:decimal" />
+  <xs:attribute name="float" type="xs:float" />
+  <xs:attribute name="double" type="xs:double" />
+  <xs:attribute name="duration" type="xs:duration" />
+  <xs:attribute name="dateTime" type="xs:dateTime" />
+  <xs:attribute name="time" type="xs:time" />
+  <xs:attribute name="date" type="xs:date" />
+  <xs:attribute name="gYearMonth" type="xs:gYearMonth" />
+  <xs:attribute name="gYear" type="xs:gYear" />
+  <xs:attribute name="gMonthDay" type="xs:gMonthDay" />
+  <xs:attribute name="gDay" type="xs:gDay" />
+  <xs:attribute name="gMonth" type="xs:gMonth" />
+  <xs:attribute name="hexBinary" type="xs:hexBinary" />
+  <xs:attribute name="base64Binary" type="xs:base64Binary" />
+  <xs:attribute name="anyURI" type="xs:anyURI" />
+  <xs:attribute name="QName" type="xs:QName" />
+  <xs:attribute name="normalizedString" type="xs:normalizedString" />
+  <xs:attribute name="token" type="xs:token" />
+  <xs:attribute name="language" type="xs:language" />
+  <xs:attribute name="NMTOKEN" type="xs:NMTOKEN" />
+  <xs:attribute name="NMTOKENS" type="xs:NMTOKENS" />
+  <xs:attribute name="Name" type="xs:Name" />
+  <xs:attribute name="NCName" type="xs:NCName" />
+  <xs:attribute name="ID" type="xs:ID" />
+  <xs:attribute name="IDREF" type="xs:IDREF" />
+  <xs:attribute name="IDREFS" type="xs:IDREFS" />
+  <xs:attribute name="ENTITY" type="xs:ENTITY" />
+  <xs:attribute name="ENTITIES" type="xs:ENTITIES" />
+  <xs:attribute name="integer" type="xs:integer" />
+  <xs:attribute name="nonPositiveInteger" type="xs:nonPositiveInteger" />
+  <xs:attribute name="negativeInteger" type="xs:negativeInteger" />
+  <xs:attribute name="long" type="xs:long" />
+  <xs:attribute name="int" type="xs:int" />
+  <xs:attribute name="short" type="xs:short" />
+  <xs:attribute name="byte" type="xs:byte" />
+  <xs:attribute name="nonNegativeInteger" type="xs:nonNegativeInteger" />
+  <xs:attribute name="unsignedLong" type="xs:unsignedLong" />
+  <xs:attribute name="unsignedInt" type="xs:unsignedInt" />
+  <xs:attribute name="unsignedShort" type="xs:unsignedShort" />
+  <xs:attribute name="unsignedByte" type="xs:unsignedByte" />
+  <xs:attribute name="positiveInteger" type="xs:positiveInteger" />
+  <xs:attribute name="defaultString" type="xs:string" default="hello" />
+  <xs:attribute name="defaultInt" type="xs:integer" default="12" />
+</xs:complexType>
+
+<xs:complexType name="simpleDerTestType" >
+  <xs:sequence>
+    <xs:element name="decimalDerived" type="decimalDerivedType" />
+    <xs:element name="stringDerived" type="stringDerivedType" />
+  </xs:sequence>
+  <xs:attribute name="decimalDerived" type="decimalDerivedType" />
+  <xs:attribute name="stringDerived" type="stringDerivedType" />
+</xs:complexType>
+
+<xs:simpleType name="stringDerivedType" >
+  <xs:restriction base="xs:string" >
+    <xs:pattern value="hello"/>
+  </xs:restriction>
+</xs:simpleType>
+
+<xs:simpleType name="decimalDerivedType" >
+  <xs:restriction base="xs:decimal" >
+    <xs:maxExclusive value="100"/>
+  </xs:restriction>
+</xs:simpleType>
+
+<xs:complexType name="complexTestType" >
+  <xs:sequence>
+    <xs:element name="a" type="xs:string"/>
+    <xs:element name="b" type="stringDerivedType"/>
+    <xs:element name="c" type="decimalDerivedType"/>
+  </xs:sequence>
+  <xs:attribute name="a" type="xs:string" />
+  <xs:attribute name="b" type="stringDerivedType" />
+  <xs:attribute name="c" type="decimalDerivedType" />
+</xs:complexType>
+
+<xs:complexType name="complexDerTestType" >
+  <xs:complexContent >
+    <xs:extension base="complexTestType" >
+      <xs:sequence>
+        <xs:element name="d" type="xs:string"/>
+      </xs:sequence>
+    </xs:extension>
+  </xs:complexContent>
+</xs:complexType>
+
+<xs:simpleType name="unionTestType" >
+  <xs:union memberTypes="decimalDerivedType stringDerivedType xs:decimal xs:string" />
+</xs:simpleType>
+
+
+<xs:complexType name="unionTest" >
+  <xs:sequence >
+    <xs:element name="testEle" maxOccurs="4"  type="unionTestType" />
+    <xs:element name="testEle2" maxOccurs="4" >
+      <xs:complexType >
+         <xs:attribute name="testAttr" type="unionTestType" />
+         <xs:attribute name="testAttr2" type="unionTestType" />
+      </xs:complexType>
+    </xs:element>
+  </xs:sequence>
+</xs:complexType>
+
+<xs:complexType name="unionTest2" >
+  <xs:sequence >
+    <xs:element name="testEle" maxOccurs="4"  >
+      <xs:complexType >
+        <xs:simpleContent >
+          <xs:extension base="unionTestType" >
+            <xs:attribute name="testAttr" type="unionTestType" />
+          </xs:extension >
+        </xs:simpleContent>
+      </xs:complexType>
+    </xs:element>
+  </xs:sequence>
+</xs:complexType>
+
+<xs:complexType name="testtype2" >
+<xs:sequence>
+<xs:element name="poo" type="xs:string"/>
+</xs:sequence>
+<xs:attribute name="a" type="xs:IDREF" />
+<xs:attribute name="b" type="xs:ID" />
+<xs:attribute name="c" type="xs:string" />
+
+</xs:complexType>
+
+</xs:schema>
Index: /NonGTP/Xerces/xerces-c_2_8_0/tests/DOM/TypeInfo/data/combined.dtd
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/tests/DOM/TypeInfo/data/combined.dtd	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/tests/DOM/TypeInfo/data/combined.dtd	(revision 2674)
@@ -0,0 +1,12 @@
+<!ELEMENT root (level1, level1a) >
+
+<!ATTLIST root
+    xsi:noNamespaceSchemaLocation CDATA #REQUIRED
+    xmlns:xsi CDATA #REQUIRED
+    attBoth  CDATA #REQUIRED
+    attDTD  CDATA #REQUIRED
+>
+
+<!ELEMENT level1 (#PCDATA) >
+<!ELEMENT level1a (#PCDATA) >
+
Index: /NonGTP/Xerces/xerces-c_2_8_0/tests/DOM/TypeInfo/data/TypeInfo.xml
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/tests/DOM/TypeInfo/data/TypeInfo.xml	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/tests/DOM/TypeInfo/data/TypeInfo.xml	(revision 2674)
@@ -0,0 +1,170 @@
+<!DOCTYPE root SYSTEM "TypeInfo.dtd" >
+<root xsi:noNamespaceSchemaLocation="TypeInfo.xsd"  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:ss="http://www.secondSchema" >
+<attrTest 
+anySimpleType="asdas"
+string="string"
+boolean="true"
+decimal="2.0"
+float="2.1"
+double="2.1"
+duration="P1Y2M3DT10H30M"
+dateTime="2000-10-30T11:12:00"
+time="11:12:00"
+date="2000-10-30"
+gYearMonth="1999-01"
+gYear="1999"
+gMonthDay="--01-08"
+gDay="---21"
+gMonth="--12--"
+hexBinary="0FB7"
+base64Binary="abcd"
+anyURI="http://www.example.com/"
+QName="xsla"
+normalizedString="example"
+token="example"
+language="en"
+NMTOKEN="example"
+NMTOKENS="example bar"
+Name="example"
+NCName="example"
+integer="1"
+nonPositiveInteger="-1"
+negativeInteger="-1"
+long="1"
+int="1"
+short="1"
+byte="1"
+nonNegativeInteger="1"
+unsignedLong="1"
+unsignedInt="1"
+unsignedShort="1"
+unsignedByte="1"
+positiveInteger="1"
+ID="abc"
+IDREF="abc"
+IDREFS="abc"
+ENTITY="APACHE"
+ENTITIES="APACHE"
+defaultString="test"
+xmlns:prefix="http://lala" 
+xsi:noNamespaceSchemaLocation="hello"
+/>
+<eleTest >
+  <level1string >string</level1string>
+  <level1boolean >true</level1boolean>
+  <level1decimal >2.0</level1decimal>
+  <level1float >2.1</level1float>
+  <level1double >2.1</level1double>
+  <level1duration >P1Y2M3DT10H30M</level1duration>
+  <level1dateTime >2000-10-30T11:12:00</level1dateTime>
+  <level1time >11:12:00</level1time>
+  <level1date >2000-10-30</level1date>
+  <level1gYearMonth >1999-01</level1gYearMonth>
+  <level1gYear >1999</level1gYear>
+  <level1gMonthDay >--01-08</level1gMonthDay>
+  <level1gDay >---21</level1gDay>
+  <level1gMonth >--12--</level1gMonth>
+  <level1hexBinary >0FB7</level1hexBinary>
+  <level1base64Binary >abcd</level1base64Binary>
+  <level1anyURI >http://www.example.com/</level1anyURI>
+  <level1QName >xsla</level1QName>
+  <level1normalizedString >example</level1normalizedString>
+  <level1token >example</level1token>
+  <level1language >en</level1language>
+  <level1NMTOKEN >example</level1NMTOKEN>
+  <level1NMTOKENS >example bar</level1NMTOKENS>
+  <level1Name >example</level1Name>
+  <level1NCName >example</level1NCName>
+  <level1integer >1</level1integer>
+  <level1nonPositiveInteger >-1</level1nonPositiveInteger>
+  <level1negativeInteger >-1</level1negativeInteger>
+  <level1long >1</level1long>
+  <level1int >1</level1int>
+  <level1short >1</level1short>
+  <level1byte >1</level1byte>
+  <level1nonNegativeInteger >1</level1nonNegativeInteger>
+  <level1unsignedLong >1</level1unsignedLong>
+  <level1unsignedInt >1</level1unsignedInt>
+  <level1unsignedShort >1</level1unsignedShort>
+  <level1unsignedByte >1</level1unsignedByte>
+  <level1positiveInteger >1</level1positiveInteger>
+  <level1anyType />
+</eleTest>
+<simpleDerTest decimalDerived="50" stringDerived="hello" >
+  <decimalDerived >20</decimalDerived>
+  <stringDerived >hello</stringDerived>
+</simpleDerTest>
+<complexTest a="abcd" b="hello" c="50" >
+  <a >abcd</a>
+  <b >hello</b>
+  <c >50</c>
+</complexTest>
+<complexDerTest a="abcd" b="hello" c="50" >
+  <a >abcd</a>
+  <b >hello</b>
+  <c >50</c>
+  <d >abcdefg</d>
+</complexDerTest>
+<unionTest >
+  <testEle >50</testEle>
+  <testEle >hello</testEle>
+  <testEle >200</testEle>
+  <testEle >abcdefg</testEle>
+  <testEle2 testAttr="50" testAttr2="hello"  />
+  <testEle2 testAttr="hello" testAttr2="50" />
+  <testEle2 testAttr="200" testAttr2="abcdefg" />
+  <testEle2 testAttr="abcdefg" testAttr2="200" />
+</unionTest>
+<anonymousTest partNum="50">
+  <quantity>50</quantity>
+  <size>25</size>
+  <anonElement>11</anonElement>
+</anonymousTest>
+<xsiTypeTest>
+  <number>99</number>
+  <number xsi:type="level1" >74</number>
+  <number xsi:type="level2" >49</number>
+  <complexXsi >
+    <a >a</a>
+  </complexXsi>
+  <complexXsi xsi:type="level1Complex" >
+    <a >a</a>
+    <b >b</b>
+  </complexXsi>
+  <complexXsi xsi:type="level2Complex" >
+    <a >a</a>
+    <b >b</b>
+    <c >c</c>
+  </complexXsi>
+</xsiTypeTest>
+<anyTestPartial xhtml:attr2="some value" >
+  <xhtml:fakeTag1 />
+  <xhtml:fakeTag2 />
+  <ss:realTag1 >la</ss:realTag1>
+</anyTestPartial>
+<anyTest ss:attr1="string" ss:attr2="2" ss:attr3="string" ss:attr4="2">
+  <ss:realTag2 >la</ss:realTag2>
+  <ss:realTag3 >la</ss:realTag3>
+  <ss:notRealTag >la</ss:notRealTag>
+</anyTest>
+<anyTestAttr1 ss:attr5="2" />
+<anyTestAttr2 ss:attr5="2" />
+<anyTestMissing />
+<invalidTest simple="abcd" invalid="asdas" >
+  <simple >abcd</simple>
+  <complex >
+    <a >asa</a>
+    <invalid />
+  </complex>
+  <number xsi:type="stringDerivedType" >74</number>
+  <complexXsi xsi:type="simpleDerTestType" >
+    <a >a</a>
+    <b >b</b>
+  </complexXsi>
+  <unionTest >hello1</unionTest>
+  <empty ><a /><a /></empty>
+  <invalidAttrTest attr="lala" />
+  <missingAttrTest />
+  <prohibitedAttrTest attr="lala" />
+</invalidTest>
+</root>
Index: /NonGTP/Xerces/xerces-c_2_8_0/tests/DOM/TypeInfo/data/combined.xsd
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/tests/DOM/TypeInfo/data/combined.xsd	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/tests/DOM/TypeInfo/data/combined.xsd	(revision 2674)
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xs:schema xmlns:xs='http://www.w3.org/2001/XMLSchema' elementFormDefault="unqualified"  >
+
+<xs:element name="root" type="rootType" />
+
+<xs:complexType name="rootType" >
+  <xs:sequence >
+    <xs:element name="level1" type="xs:string" />
+  </xs:sequence>
+  <xs:attribute name="attBoth" type="xs:string" />  
+  <xs:attribute name="attSchema" type="xs:string" />  
+</xs:complexType>
+
+</xs:schema>
Index: /NonGTP/Xerces/xerces-c_2_8_0/tests/DOM/TypeInfo/data/TypeInfoJustDTD.xml
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/tests/DOM/TypeInfo/data/TypeInfoJustDTD.xml	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/tests/DOM/TypeInfo/data/TypeInfoJustDTD.xml	(revision 2674)
@@ -0,0 +1,16 @@
+<!DOCTYPE attributeTest SYSTEM "TypeInfo.dtd" >
+<attributeTest
+   xmlns:foo = "lala"
+   cdata = "cdata"
+   enum = "a"
+   id = "someID"
+   idRef = "someID"
+   idRefs = "someID"
+   nmToken = "abc"
+   nmTokenDefault2 = "test"
+   nmTokens = "abc"
+   entity = "APACHE"
+   entities = "APACHE"
+   notation = "png"
+	 noDecl = "lalal"
+/>
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/DOMNodeFilter.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/DOMNodeFilter.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/DOMNodeFilter.hpp	(revision 2674)
@@ -0,0 +1,218 @@
+#ifndef DOMNodeFilter_HEADER_GUARD_
+#define DOMNodeFilter_HEADER_GUARD_
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: DOMNodeFilter.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#include <xercesc/dom/DOMNode.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+
+/**
+ * Filters are objects that know how to "filter out" nodes. If a
+ * <code>DOMNodeIterator</code> or <code>DOMTreeWalker</code> is given a
+ * <code>DOMNodeFilter</code>, it applies the filter before it returns the next
+ * node. If the filter says to accept the node, the traversal logic returns
+ * it; otherwise, traversal looks for the next node and pretends that the
+ * node that was rejected was not there.
+ * <p>The DOM does not provide any filters. <code>DOMNodeFilter</code> is just an
+ * interface that users can implement to provide their own filters.
+ * <p><code>DOMNodeFilters</code> do not need to know how to traverse from node
+ * to node, nor do they need to know anything about the data structure that
+ * is being traversed. This makes it very easy to write filters, since the
+ * only thing they have to know how to do is evaluate a single node. One
+ * filter may be used with a number of different kinds of traversals,
+ * encouraging code reuse.
+ * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Traversal-Range-20001113'>Document Object Model (DOM) Level 2 Traversal and Range Specification</a>.
+ * @since DOM Level 2
+ */
+
+class CDOM_EXPORT DOMNodeFilter
+{
+protected:
+    // -----------------------------------------------------------------------
+    //  Hidden constructors
+    // -----------------------------------------------------------------------
+    /** @name Hidden constructors */
+    //@{    
+    DOMNodeFilter() {};
+    //@}    
+
+private:
+    // -----------------------------------------------------------------------
+    // Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    /** @name Unimplemented constructors and operators */
+    //@{
+    DOMNodeFilter(const DOMNodeFilter &);
+    DOMNodeFilter & operator = (const DOMNodeFilter &);
+    //@}
+
+public:
+    // -----------------------------------------------------------------------
+    //  All constructors are hidden, just the destructor is available
+    // -----------------------------------------------------------------------
+    /** @name Destructor */
+    //@{
+    /**
+     * Destructor
+     *
+     */
+    virtual ~DOMNodeFilter() {};
+    //@}
+
+    // -----------------------------------------------------------------------
+    //  Class Types
+    // -----------------------------------------------------------------------
+    /** @name Public Contants */
+    //@{
+    /**
+     * Constants returned by acceptNode.
+     *
+     * <p><code>FILTER_ACCEPT:</code>
+     * Accept the node. Navigation methods defined for
+     * <code>DOMNodeIterator</code> or <code>DOMTreeWalker</code> will return this
+     * node.</p>
+     *
+     * <p><code>FILTER_REJECT:</code>
+     * Reject the node. Navigation methods defined for
+     * <code>DOMNodeIterator</code> or <code>DOMTreeWalker</code> will not return
+     * this node. For <code>DOMTreeWalker</code>, the children of this node
+     * will also be rejected. <code>DOMNodeIterators</code> treat this as a
+     * synonym for <code>FILTER_SKIP.</code></p>
+     *
+     * <p><code>FILTER_SKIP:</code>
+     * Skip this single node. Navigation methods defined for
+     * <code>DOMNodeIterator</code> or <code>DOMTreeWalker</code> will not return
+     * this node. For both <code>DOMNodeIterator</code> and
+     * <code>DOMTreeWalker</code>, the children of this node will still be
+     * considered.</p>
+     *
+     * @since DOM Level 2
+     */
+    enum FilterAction {FILTER_ACCEPT = 1,
+                       FILTER_REJECT = 2,
+                       FILTER_SKIP   = 3};
+
+    /**
+     * Constants for whatToShow
+     *
+     * <p><code>SHOW_ALL:</code>
+     * Show all <code>DOMNode(s)</code>.</p>
+     *
+     * <p><code>SHOW_ELEMENT:</code>
+     * Show <code>DOMElement</code> nodes.</p>
+     *
+     * <p><code>SHOW_ATTRIBUTE:</code>
+     * Show <code>DOMAttr</code> nodes. This is meaningful only when creating an
+     * <code>DOMNodeIterator</code> or <code>DOMTreeWalker</code> with an
+     * attribute node as its <code>root</code>; in this case, it means that
+     * the attribute node will appear in the first position of the iteration
+     * or traversal. Since attributes are never children of other nodes,
+     * they do not appear when traversing over the document tree.</p>
+     *
+     * <p><code>SHOW_TEXT:</code>
+     * Show <code>DOMText</code> nodes.</p>
+     *
+     * <p><code>SHOW_CDATA_SECTION:</code>
+     * Show <code>DOMCDATASection</code> nodes.</p>
+     *
+     * <p><code>SHOW_ENTITY_REFERENCE:</code>
+     * Show <code>DOMEntityReference</code> nodes.</p>
+     *
+     * <p><code>SHOW_ENTITY:</code>
+     * Show <code>DOMEntity</code> nodes. This is meaningful only when creating
+     * an <code>DOMNodeIterator</code> or <code>DOMTreeWalker</code> with an
+     * <code>DOMEntity</code> node as its <code>root</code>; in this case, it
+     * means that the <code>DOMEntity</code> node will appear in the first
+     * position of the traversal. Since entities are not part of the
+     * document tree, they do not appear when traversing over the document
+     * tree.</p>
+     *
+     * <p><code>SHOW_PROCESSING_INSTRUCTION:</code>
+     * Show <code>DOMProcessingInstruction</code> nodes.</p>
+     *
+     * <p><code>SHOW_COMMENT:</code>
+     * Show <code>DOMComment</code> nodes.</p>
+     *
+     * <p><code>SHOW_DOCUMENT:</code>
+     * Show <code>DOMDocument</code> nodes.</p>
+     *
+     * <p><code>SHOW_DOCUMENT_TYPE:</code>
+     * Show <code>DOMDocumentType</code> nodes.</p>
+     *
+     * <p><code>SHOW_DOCUMENT_FRAGMENT:</code>
+     * Show <code>DOMDocumentFragment</code> nodes.</p>
+     *
+     * <p><code>SHOW_NOTATION:</code>
+     * Show <code>DOMNotation</code> nodes. This is meaningful only when creating
+     * an <code>DOMNodeIterator</code> or <code>DOMTreeWalker</code> with a
+     * <code>DOMNotation</code> node as its <code>root</code>; in this case, it
+     * means that the <code>DOMNotation</code> node will appear in the first
+     * position of the traversal. Since notations are not part of the
+     * document tree, they do not appear when traversing over the document
+     * tree.</p>
+     *
+     * @since DOM Level 2
+     */
+    enum ShowType {
+        SHOW_ALL                       = 0x0000FFFF,
+        SHOW_ELEMENT                   = 0x00000001,
+        SHOW_ATTRIBUTE                 = 0x00000002,
+        SHOW_TEXT                      = 0x00000004,
+        SHOW_CDATA_SECTION             = 0x00000008,
+        SHOW_ENTITY_REFERENCE          = 0x00000010,
+        SHOW_ENTITY                    = 0x00000020,
+        SHOW_PROCESSING_INSTRUCTION    = 0x00000040,
+        SHOW_COMMENT                   = 0x00000080,
+        SHOW_DOCUMENT                  = 0x00000100,
+        SHOW_DOCUMENT_TYPE             = 0x00000200,
+        SHOW_DOCUMENT_FRAGMENT         = 0x00000400,
+        SHOW_NOTATION                  = 0x00000800
+    };
+    //@}
+
+    // -----------------------------------------------------------------------
+    //  Virtual DOMNodeFilter interface
+    // -----------------------------------------------------------------------
+    /** @name Functions introduced in DOM Level 2 */
+    //@{
+    /**
+     * Test whether a specified node is visible in the logical view of a
+     * <code>DOMTreeWalker</code> or <code>DOMNodeIterator</code>. This function
+     * will be called by the implementation of <code>DOMTreeWalker</code> and
+     * <code>DOMNodeIterator</code>; it is not normally called directly from
+     * user code. (Though you could do so if you wanted to use the same
+     * filter to guide your own application logic.)
+     * @param node The node to check to see if it passes the filter or not.
+     * @return A constant to determine whether the node is accepted,
+     *   rejected, or skipped, as defined above.
+     * @since DOM Level 2
+     */
+    virtual short acceptNode (const DOMNode* node) const =0;
+    //@}
+
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/DOMDocumentRange.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/DOMDocumentRange.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/DOMDocumentRange.hpp	(revision 2674)
@@ -0,0 +1,95 @@
+#ifndef DOMDocumentRange_HEADER_GUARD_
+#define DOMDocumentRange_HEADER_GUARD_
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: DOMDocumentRange.hpp 568078 2007-08-21 11:43:25Z amassari $
+*/
+
+#include <xercesc/util/XercesDefs.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+
+class DOMRange;
+
+
+/**
+ * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Traversal-Range-20001113'>Document Object Model (DOM) Level 2 Traversal and Range Specification</a>.
+ * @since DOM Level 2
+ */
+class CDOM_EXPORT DOMDocumentRange {
+
+protected:
+    // -----------------------------------------------------------------------
+    //  Hidden constructors
+    // -----------------------------------------------------------------------
+    /** @name Hidden constructors */
+    //@{    
+    DOMDocumentRange() {};
+    //@}
+
+private:
+    // -----------------------------------------------------------------------
+    // Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    /** @name Unimplemented constructors and operators */
+    //@{
+    DOMDocumentRange(const DOMDocumentRange &);
+    DOMDocumentRange & operator = (const DOMDocumentRange &);
+    //@}
+
+public:
+    // -----------------------------------------------------------------------
+    //  All constructors are hidden, just the destructor is available
+    // -----------------------------------------------------------------------
+    /** @name Destructor */
+    //@{
+    /**
+     * Destructor
+     *
+     */
+    virtual ~DOMDocumentRange() {};
+    //@}
+
+    // -----------------------------------------------------------------------
+    //  Virtual DOMDocumentRange interface
+    // -----------------------------------------------------------------------
+    /** @name Functions introduced in DOM Level 2 */
+    //@{
+    /**
+	  * To create the range  consisting of boundary-points and offset of the
+     * selected contents
+     *
+     * @return The initial state of the Range such that both the boundary-points
+     * are positioned at the beginning of the corresponding DOMDOcument, before
+     * any content. The range returned can only be used to select content
+     * associated with this document, or with documentFragments and Attrs for
+     * which this document is the ownerdocument
+     * @since DOM Level 2
+	  */
+    virtual DOMRange    *createRange() = 0;
+
+    //@}
+};
+
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/DOMEntityReference.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/DOMEntityReference.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/DOMEntityReference.hpp	(revision 2674)
@@ -0,0 +1,97 @@
+#ifndef DOMEntityReference_HEADER_GUARD_
+#define DOMEntityReference_HEADER_GUARD_
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: DOMEntityReference.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+#include <xercesc/util/XercesDefs.hpp>
+#include <xercesc/dom/DOMNode.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+
+/**
+ * <code>DOMEntityReference</code> objects may be inserted into the structure
+ * model when an entity reference is in the source document, or when the
+ * user wishes to insert an entity reference. Note that character references
+ * and references to predefined entities are considered to be expanded by
+ * the HTML or XML processor so that characters are represented by their
+ * Unicode equivalent rather than by an entity reference. Moreover, the XML
+ * processor may completely expand references to entities while building the
+ * structure model, instead of providing <code>DOMEntityReference</code>
+ * objects. If it does provide such objects, then for a given
+ * <code>DOMEntityReference</code> node, it may be that there is no
+ * <code>DOMEntity</code> node representing the referenced entity. If such an
+ * <code>DOMEntity</code> exists, then the subtree of the
+ * <code>DOMEntityReference</code> node is in general a copy of the
+ * <code>DOMEntity</code> node subtree. However, this may not be true when an
+ * entity contains an unbound namespace prefix. In such a case, because the
+ * namespace prefix resolution depends on where the entity reference is, the
+ * descendants of the <code>DOMEntityReference</code> node may be bound to
+ * different namespace URIs.
+ * <p>As for <code>DOMEntity</code> nodes, <code>DOMEntityReference</code> nodes and
+ * all their descendants are readonly.
+ * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113'>Document Object Model (DOM) Level 2 Core Specification</a>.
+ *
+ * @since DOM Level 1
+ */
+
+class CDOM_EXPORT DOMEntityReference: public DOMNode {
+protected:
+    // -----------------------------------------------------------------------
+    //  Hidden constructors
+    // -----------------------------------------------------------------------
+    /** @name Hidden constructors */
+    //@{    
+    DOMEntityReference() {}
+    DOMEntityReference(const DOMEntityReference &other) : DOMNode(other) {}
+    //@}
+
+private:
+    // -----------------------------------------------------------------------
+    // Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    /** @name Unimplemented operators */
+    //@{
+    DOMEntityReference & operator = (const DOMEntityReference &);
+    //@}
+
+public:
+    // -----------------------------------------------------------------------
+    //  All constructors are hidden, just the destructor is available
+    // -----------------------------------------------------------------------
+    /** @name Destructor */
+    //@{
+    /**
+     * Destructor
+     *
+     */
+    virtual ~DOMEntityReference() {};
+    //@}
+
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
+
+
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/StDOMNode.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/StDOMNode.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/StDOMNode.hpp	(revision 2674)
@@ -0,0 +1,95 @@
+#ifndef DOMSPtr_HEADER_GUARD_
+#define DOMSPtr_HEADER_GUARD_
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: StDOMNode.hpp 570125 2007-08-27 13:57:11Z amassari $
+ */
+
+#include <xercesc/dom/DOMNode.hpp>
+#include <xercesc/dom/DOMAttr.hpp>
+#include <xercesc/dom/DOMElement.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+/* This class is a smart pointer implementation over DOMNode interface and
+** classes derived from it. It takes care of reference counting automatically.
+** Reference counting is optional so use of this class is experimental.
+*/
+template <class T> class StDOMNode {
+	T* m_node;
+
+	static inline void INCREFCOUNT(T *x) { if (x != (T*)0) x->incRefCount(); }
+	static inline void DECREFCOUNT(T *x) { if (x != (T*)0) x->decRefCount(); }
+
+public:
+	inline StDOMNode(T* node = (T*)0) : m_node(node) { INCREFCOUNT(m_node); }
+	inline StDOMNode(const StDOMNode& stNode) : m_node(stNode.m_node) { INCREFCOUNT(m_node); }
+	inline ~StDOMNode() { DECREFCOUNT(m_node); }
+
+	inline T* operator= (T *node)
+	{
+		if (m_node != node) {
+			DECREFCOUNT(m_node);
+			m_node = node;
+			INCREFCOUNT(m_node);
+		}
+		return (m_node);
+	}
+
+	inline bool operator!= (T* node) const { return (m_node != node); }
+	inline bool operator== (T* node) const { return (m_node == node); }
+
+	inline T& operator* () { return (*m_node); }
+	inline const T& operator* () const { return (*m_node); }
+	inline T* operator-> () const { return (m_node); }
+	inline operator T*() const { return (m_node); }
+	inline void ClearNode() { operator=((T*)(0)); }
+};
+
+#if defined(XML_DOMREFCOUNT_EXPERIMENTAL)
+    typedef StDOMNode<DOMNode> DOMNodeSPtr;
+#else
+    typedef DOMNode* DOMNodeSPtr;
+#endif
+
+/* StDOMNode is a smart pointer implementation over DOMNode interface and
+** classes derived from it. It takes care of reference counting automatically.
+** Reference counting is optional so use of this class is experimental.
+*/
+#if defined(XML_DOMREFCOUNT_EXPERIMENTAL)
+    typedef StDOMNode<DOMAttr> DOMAttrSPtr;
+#else
+    typedef DOMAttr* DOMAttrSPtr;
+#endif
+
+/* StDOMNode is a smart pointer implementation over DOMNode interface and
+** classes derived from it. It takes care of reference counting automatically.
+** Reference counting is optional so use of this class is experimental.
+*/
+#if defined(XML_DOMREFCOUNT_EXPERIMENTAL)
+    typedef StDOMNode<DOMElement> DOMElementSPtr;
+#else
+    typedef DOMElement* DOMElementSPtr;
+#endif
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
+
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/DOMTypeInfo.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/DOMTypeInfo.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/DOMTypeInfo.hpp	(revision 2674)
@@ -0,0 +1,108 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#if !defined(DOMTYPEINFO_HPP)
+#define DOMTYPEINFO_HPP
+
+//------------------------------------------------------------------------------------
+//  Includes
+//------------------------------------------------------------------------------------
+#include <xercesc/util/XMLString.hpp>
+
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+/**
+  * The <code>DOMTypeInfo</code> interface represent a type used by 
+  * <code>DOMElement</code> or <code>DOMAttr</code> nodes, specified in the 
+  * schemas associated with the document. The type is a pair of a namespace URI
+  * and name properties, and depends on the document's schema.
+  */
+class CDOM_EXPORT DOMTypeInfo
+{
+protected:
+    // -----------------------------------------------------------------------
+    //  Hidden constructors
+    // -----------------------------------------------------------------------
+    /** @name Hidden constructors */
+    //@{    
+    DOMTypeInfo() {};
+    //@}
+
+private:
+    // -----------------------------------------------------------------------
+    // Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    /** @name Unimplemented constructors and operators */
+    //@{
+    DOMTypeInfo(const DOMTypeInfo &);
+    DOMTypeInfo & operator = (const DOMTypeInfo &);
+    //@}
+
+public:
+
+    // -----------------------------------------------------------------------
+    //  All constructors are hidden, just the destructor is available
+    // -----------------------------------------------------------------------
+    /** @name Destructor */
+    //@{
+    /**
+     * Destructor
+     *
+     */
+    virtual ~DOMTypeInfo() {};
+    //@}
+
+    //@{
+    // -----------------------------------------------------------------------
+    //  Getter methods
+    // -----------------------------------------------------------------------
+    /**
+     * Returns The name of a type declared for the associated <code>DOMElement</code> 
+     * or <code>DOMAttr</code>, or null if undeclared.
+     *
+     * <p><b>"Experimental - subject to change"</b></p>
+     *
+     * @return The name of a type declared for the associated <code>DOMElement</code> 
+     * or <code>DOMAttribute</code>, or null if undeclared.
+     * @since DOM level 3
+     */
+    virtual const XMLCh* getName() const = 0;
+
+    /**
+     * The namespace of the type declared for the associated <code>DOMElement</code> 
+     * or <code>DOMAttr</code> or null if the <code>DOMElement</code> does not have 
+     * declaration or if no namespace information is available.
+     *
+     * <p><b>"Experimental - subject to change"</b></p>
+     *
+     * @return The namespace of the type declared for the associated <code>DOMElement</code> 
+     * or <code>DOMAttr</code> or null if the <code>DOMElement</code> does not have 
+     * declaration or if no namespace information is available.
+     * @since DOM level 3
+     */
+    virtual const XMLCh* getNamespace() const = 0;
+    //@}
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
+
+/**
+ * End of file DOMTypeInfo.hpp
+ */
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/DOMPSVITypeInfo.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/DOMPSVITypeInfo.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/DOMPSVITypeInfo.hpp	(revision 2674)
@@ -0,0 +1,120 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#if !defined(DOMPSVITYPEINFO_HPP)
+#define DOMPSVITYPEINFO_HPP
+
+//------------------------------------------------------------------------------------
+//  Includes
+//------------------------------------------------------------------------------------
+#include <xercesc/util/XMLString.hpp>
+
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+/**
+  * The <code>DOMPSVITypeInfo</code> interface represent the PSVI info used by 
+  * <code>DOMElement</code> or <code>DOMAttr</code> nodes, specified in the 
+  * schemas associated with the document. 
+  */
+class CDOM_EXPORT DOMPSVITypeInfo
+{
+protected:
+    // -----------------------------------------------------------------------
+    //  Hidden constructors
+    // -----------------------------------------------------------------------
+    /** @name Hidden constructors */
+    //@{
+    DOMPSVITypeInfo() {};
+    //@}
+
+private:
+    // -----------------------------------------------------------------------
+    // Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    /** @name Unimplemented constructors and operators */
+    //@{
+    DOMPSVITypeInfo(const DOMPSVITypeInfo &);
+    DOMPSVITypeInfo & operator = (const DOMPSVITypeInfo &);
+    //@}
+
+public:
+
+    enum PSVIProperty
+    {
+        PSVI_Validity
+        , PSVI_Validitation_Attempted
+        , PSVI_Type_Definition_Type
+        , PSVI_Type_Definition_Name
+        , PSVI_Type_Definition_Namespace
+        , PSVI_Type_Definition_Anonymous
+        , PSVI_Nil
+        , PSVI_Member_Type_Definition_Name
+        , PSVI_Member_Type_Definition_Namespace
+        , PSVI_Member_Type_Definition_Anonymous
+        , PSVI_Schema_Default
+        , PSVI_Schema_Normalized_Value
+        , PSVI_Schema_Specified
+    };
+
+    // -----------------------------------------------------------------------
+    //  All constructors are hidden, just the destructor is available
+    // -----------------------------------------------------------------------
+    /** @name Destructor */
+    //@{
+    /**
+     * Destructor
+     *
+     */
+    virtual ~DOMPSVITypeInfo() {};
+    //@}
+
+    //@{
+    // -----------------------------------------------------------------------
+    //  Getter methods
+    // -----------------------------------------------------------------------
+    /**
+     * Returns the string value of the specified PSVI property associated to a 
+     * <code>DOMElement</code> or <code>DOMAttr</code>, or null if not available.
+     *
+     * <p><b>"Experimental - subject to change"</b></p>
+     *
+     * @return the string value of the specified PSVI property associated to a 
+     * <code>DOMElement</code> or <code>DOMAttr</code>, or null if not available.
+     */
+    virtual const XMLCh* getStringProperty(PSVIProperty prop) const = 0;
+
+    /**
+     * Returns the numeric value of the specified PSVI property associated to a 
+     * <code>DOMElement</code> or <code>DOMAttr</code>, or null if not available.
+     *
+     * <p><b>"Experimental - subject to change"</b></p>
+     *
+     * @return the numeric value of the specified PSVI property associated to a 
+     * <code>DOMElement</code> or <code>DOMAttr</code>, or null if not available.
+     */
+    virtual int getNumericProperty(PSVIProperty prop) const = 0;
+    //@}
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
+
+/**
+ * End of file DOMPSVITypeInfo.hpp
+ */
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/DOMNodeIterator.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/DOMNodeIterator.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/DOMNodeIterator.hpp	(revision 2674)
@@ -0,0 +1,196 @@
+#ifndef DOMNodeIterator_HEADER_GUARD_
+#define DOMNodeIterator_HEADER_GUARD_
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: DOMNodeIterator.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#include <xercesc/dom/DOMNodeFilter.hpp>
+#include <xercesc/dom/DOMNode.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+
+/**
+ * <code>DOMNodeIterators</code> are used to step through a set of nodes, e.g.
+ * the set of nodes in a <code>DOMNodeList</code>, the document subtree
+ * governed by a particular <code>DOMNode</code>, the results of a query, or
+ * any other set of nodes. The set of nodes to be iterated is determined by
+ * the implementation of the <code>DOMNodeIterator</code>. DOM Level 2
+ * specifies a single <code>DOMNodeIterator</code> implementation for
+ * document-order traversal of a document subtree. Instances of these
+ * <code>DOMNodeIterators</code> are created by calling
+ * <code>DOMDocumentTraversal</code><code>.createNodeIterator()</code>.
+ * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Traversal-Range-20001113'>Document Object Model (DOM) Level 2 Traversal and Range Specification</a>.
+ * @since DOM Level 2
+ */
+class CDOM_EXPORT DOMNodeIterator
+{
+protected:
+    // -----------------------------------------------------------------------
+    //  Hidden constructors
+    // -----------------------------------------------------------------------
+    /** @name Hidden constructors */
+    //@{    
+    DOMNodeIterator() {}
+    DOMNodeIterator(const DOMNodeIterator &) {}
+    //@}
+
+private:    
+    // -----------------------------------------------------------------------
+    // Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    /** @name Unimplemented operators */
+    //@{
+    DOMNodeIterator & operator = (const DOMNodeIterator &);
+    //@}
+
+public:
+    // -----------------------------------------------------------------------
+    //  All constructors are hidden, just the destructor is available
+    // -----------------------------------------------------------------------
+    /** @name Destructor */
+    //@{
+    /**
+     * Destructor
+     *
+     */
+    virtual ~DOMNodeIterator() {};
+    //@}
+
+    // -----------------------------------------------------------------------
+    //  Virtual DOMNodeFilter interface
+    // -----------------------------------------------------------------------
+    /** @name Functions introduced in DOM Level 2 */
+    //@{
+    // -----------------------------------------------------------------------
+    //  Getter methods
+    // -----------------------------------------------------------------------
+    /**
+     * The <code>root</code> node of the <code>DOMNodeIterator</code>, as specified
+     * when it was created.
+     * @since DOM Level 2
+     */
+    virtual DOMNode*           getRoot() = 0;
+    /**
+     * Return which node types are presented via the iterator.
+     * This attribute determines which node types are presented via the
+     * <code>DOMNodeIterator</code>. The available set of constants is defined
+     * in the <code>DOMNodeFilter</code> interface.  Nodes not accepted by
+     * <code>whatToShow</code> will be skipped, but their children may still
+     * be considered. Note that this skip takes precedence over the filter,
+     * if any.
+     * @since DOM Level 2
+     *
+     */
+    virtual unsigned long      getWhatToShow() = 0;
+
+    /**
+     * The <code>DOMNodeFilter</code> used to screen nodes.
+     *
+     * @since DOM Level 2
+     */
+    virtual DOMNodeFilter*     getFilter() = 0;
+
+    /**
+     * Return the expandEntityReferences flag.
+     * The value of this flag determines whether the children of entity
+     * reference nodes are visible to the <code>DOMNodeIterator</code>. If
+     * false, these children  and their descendants will be rejected. Note
+     * that this rejection takes precedence over <code>whatToShow</code> and
+     * the filter. Also note that this is currently the only situation where
+     * <code>DOMNodeIterators</code> may reject a complete subtree rather than
+     * skipping individual nodes.
+     * <br>
+     * <br> To produce a view of the document that has entity references
+     * expanded and does not expose the entity reference node itself, use
+     * the <code>whatToShow</code> flags to hide the entity reference node
+     * and set <code>expandEntityReferences</code> to true when creating the
+     * <code>DOMNodeIterator</code>. To produce a view of the document that has
+     * entity reference nodes but no entity expansion, use the
+     * <code>whatToShow</code> flags to show the entity reference node and
+     * set <code>expandEntityReferences</code> to false.
+     *
+     * @since DOM Level 2
+     */
+    virtual bool               getExpandEntityReferences() = 0;
+
+    // -----------------------------------------------------------------------
+    //  Query methods
+    // -----------------------------------------------------------------------
+    /**
+     * Returns the next node in the set and advances the position of the
+     * <code>DOMNodeIterator</code> in the set. After a
+     * <code>DOMNodeIterator</code> is created, the first call to
+     * <code>nextNode()</code> returns the first node in the set.
+     * @return The next <code>DOMNode</code> in the set being iterated over, or
+     *   <code>null</code> if there are no more members in that set.
+     * @exception DOMException
+     *   INVALID_STATE_ERR: Raised if this method is called after the
+     *   <code>detach</code> method was invoked.
+     * @since DOM Level 2
+     */
+    virtual DOMNode*           nextNode() = 0;
+
+    /**
+     * Returns the previous node in the set and moves the position of the
+     * <code>DOMNodeIterator</code> backwards in the set.
+     * @return The previous <code>DOMNode</code> in the set being iterated over,
+     *   or <code>null</code> if there are no more members in that set.
+     * @exception DOMException
+     *   INVALID_STATE_ERR: Raised if this method is called after the
+     *   <code>detach</code> method was invoked.
+     * @since DOM Level 2
+     */
+    virtual DOMNode*           previousNode() = 0;
+
+    /**
+     * Detaches the <code>DOMNodeIterator</code> from the set which it iterated
+     * over, releasing any computational resources and placing the
+     * <code>DOMNodeIterator</code> in the INVALID state. After
+     * <code>detach</code> has been invoked, calls to <code>nextNode</code>
+     * or <code>previousNode</code> will raise the exception
+     * INVALID_STATE_ERR.
+     * @since DOM Level 2
+     */
+    virtual void               detach() = 0;
+    //@}
+
+    // -----------------------------------------------------------------------
+    //  Non-standard Extension
+    // -----------------------------------------------------------------------
+    /** @name Non-standard Extension */
+    //@{
+    /**
+     * Called to indicate that this NodeIterator is no longer in use
+     * and that the implementation may relinquish any resources associated with it.
+     * (release() will call detach() where appropriate)
+     *
+     * Access to a released object will lead to unexpected result.
+     */
+    virtual void               release() = 0;
+    //@}
+};
+
+#define GetDOMNodeIteratorMemoryManager GET_DIRECT_MM(fDocument)
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/DOMCDATASection.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/DOMCDATASection.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/DOMCDATASection.hpp	(revision 2674)
@@ -0,0 +1,105 @@
+#ifndef DOMCDataSection_HEADER_GUARD_
+#define DOMCDataSection_HEADER_GUARD_
+
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: DOMCDATASection.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#include <xercesc/util/XercesDefs.hpp>
+#include <xercesc/dom/DOMText.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+
+/**
+ * CDATA sections are used to escape blocks of text containing characters that
+ * would otherwise be regarded as markup. The only delimiter that is
+ * recognized in a CDATA section is the "]]&gt;" string that ends the CDATA
+ * section. CDATA sections cannot be nested. Their primary purpose is for
+ * including material such as XML fragments, without needing to escape all
+ * the delimiters.
+ * <p>The <code>data</code> attribute of the <code>DOMText</code> node holds
+ * the text that is contained by the CDATA section. Note that this may
+ * contain characters that need to be escaped outside of CDATA sections and
+ * that, depending on the character encoding ("charset") chosen for
+ * serialization, it may be impossible to write out some characters as part
+ * of a CDATA section.
+ * <p>The <code>DOMCDATASection</code> interface inherits from the
+ * <code>DOMCharacterData</code> interface through the <code>DOMText</code>
+ * interface. Adjacent <code>DOMCDATASection</code> nodes are not merged by use
+ * of the <code>normalize</code> method of the <code>DOMNode</code> interface.
+ * Because no markup is recognized within a <code>DOMCDATASection</code>,
+ * character numeric references cannot be used as an escape mechanism when
+ * serializing. Therefore, action needs to be taken when serializing a
+ * <code>DOMCDATASection</code> with a character encoding where some of the
+ * contained characters cannot be represented. Failure to do so would not
+ * produce well-formed XML.One potential solution in the serialization
+ * process is to end the CDATA section before the character, output the
+ * character using a character reference or entity reference, and open a new
+ * CDATA section for any further characters in the text node. Note, however,
+ * that some code conversion libraries at the time of writing do not return
+ * an error or exception when a character is missing from the encoding,
+ * making the task of ensuring that data is not corrupted on serialization
+ * more difficult.
+ * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113'>Document Object Model (DOM) Level 2 Core Specification</a>.
+ *
+ * @since DOM Level 1
+ */
+class CDOM_EXPORT DOMCDATASection: public DOMText {
+protected:
+    // -----------------------------------------------------------------------
+    //  Hidden constructors
+    // -----------------------------------------------------------------------
+    /** @name Hidden constructors */
+    //@{    
+    DOMCDATASection() {}
+    DOMCDATASection(const DOMCDATASection &other) : DOMText(other) {}
+    //@}
+
+private:
+    // -----------------------------------------------------------------------
+    // Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    /** @name Unimplemented operators */
+    //@{
+    DOMCDATASection & operator = (const DOMCDATASection &);
+    //@}
+
+public:
+    // -----------------------------------------------------------------------
+    //  All constructors are hidden, just the destructor is available
+    // -----------------------------------------------------------------------
+    /** @name Destructor */
+    //@{
+    /**
+     * Destructor
+     *
+     */
+    virtual ~DOMCDATASection() {};
+    //@}
+
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
+
+
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/DOMComment.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/DOMComment.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/DOMComment.hpp	(revision 2674)
@@ -0,0 +1,77 @@
+#ifndef DOMComment_HEADER_GUARD_
+#define DOMComment_HEADER_GUARD_
+
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: DOMComment.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#include <xercesc/util/XercesDefs.hpp>
+#include <xercesc/dom/DOMCharacterData.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+
+/**
+ * This interface inherits from <code>CharacterData</code> and represents the
+ * content of a comment, i.e., all the characters between the starting '
+ * <code>&lt;!--</code>' and ending '<code>--&gt;</code>'.
+ * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113'>Document Object Model (DOM) Level 2 Core Specification</a>.
+ *
+ * @since DOM Level 1
+ */
+class CDOM_EXPORT DOMComment: public DOMCharacterData {
+protected:
+    // -----------------------------------------------------------------------
+    //  Hidden constructors
+    // -----------------------------------------------------------------------
+    /** @name Hidden constructors */
+    //@{    
+    DOMComment() {};
+    //@}
+
+private:
+    // -----------------------------------------------------------------------
+    // Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    /** @name Unimplemented constructors and operators */
+    //@{
+    DOMComment(const DOMComment &);
+    DOMComment & operator = (const DOMComment &);
+    //@}
+
+public:
+    // -----------------------------------------------------------------------
+    //  All constructors are hidden, just the destructor is available
+    // -----------------------------------------------------------------------
+    /** @name Destructor */
+    //@{
+    /**
+     * Destructor
+     *
+     */
+    virtual ~DOMComment() {};
+    //@}
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
+
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/DOMXPathExpression.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/DOMXPathExpression.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/DOMXPathExpression.hpp	(revision 2674)
@@ -0,0 +1,108 @@
+#ifndef DOMXPathExpression_HEADER_GUARD_
+#define DOMXPathExpression_HEADER_GUARD_
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <xercesc/util/XercesDefs.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class DOMNode;
+/**
+ * The <code>DOMXPathExpression</code> interface represents a parsed and resolved XPath expression.
+ * @since DOM Level 3
+ */
+class CDOM_EXPORT DOMXPathExpression
+{
+
+protected:
+    // -----------------------------------------------------------------------
+    //  Hidden constructors
+    // -----------------------------------------------------------------------
+    /** @name Hidden constructors */
+    //@{    
+    DOMXPathExpression() {};
+    //@}
+
+private:
+    // -----------------------------------------------------------------------
+    // Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    /** @name Unimplemented constructors and operators */
+    //@{
+    DOMXPathExpression(const DOMXPathExpression &);
+    DOMXPathExpression& operator = (const  DOMXPathExpression&);
+    //@}
+
+public:
+    // -----------------------------------------------------------------------
+    //  All constructors are hidden, just the destructor is available
+    // -----------------------------------------------------------------------
+    /** @name Destructor */
+    //@{
+    /**
+     * Destructor
+     *
+     */
+    virtual ~DOMXPathExpression() {};
+    //@}
+
+    // -----------------------------------------------------------------------
+    // Virtual DOMDocument interface
+    // -----------------------------------------------------------------------
+    /** @name Functions introduced in DOM Level 3 */
+    //@{  
+
+    /**
+     * Evaluates this XPath expression and returns a result.
+     * @param contextNode of type <code>DOMNode</code> The context is context
+     * node for the evaluation of this XPath expression.
+     * If the XPathEvaluator was obtained by casting the Document then this must 
+     * be owned by the same document and must be a <code>DOMDocument</code>, <code>DOMElement</code>, 
+     * <code>DOMAttribute</code>, <code>DOMText</code>, <code>DOMCDATASection</code>, 
+     * <code>DOMComment</code>, <code>DOMProcessingInstruction</code>, or 
+     * <code>XPathNamespace</code>. If the context node is a <code>DOMText</code> or a 
+     * <code>DOMCDATASection</code>, then the context is interpreted as the whole logical
+     * text node as seen by XPath, unless the node is empty in which case it may not
+     * serve as the XPath context.
+     * @param type of type unsigned short If a specific type is specified, then the result
+     * will be coerced to return the specified type relying on XPath conversions and fail 
+     * if the desired coercion is not possible. This must be one of the type codes of <code>XPathResult</code>.
+     * @param result of type void* The result specifies a specific result object which
+     * may be reused and returned by this method. If this is specified as nullor the 
+     * implementation does not reuse the specified result, a new result object will be constructed
+     * and returned.
+     * For XPath 1.0 results, this object will be of type <code>XPathResult</code>.
+     * @return void* The result of the evaluation of the XPath expression.
+     * For XPath 1.0 results, this object will be of type <code>XPathResult</code>.
+     * @exception <code>XPathException</code>
+     * TYPE_ERR: Raised if the result cannot be converted to return the specified type.
+     * @exception <code>DOMException</code>
+     * WRONG_DOCUMENT_ERR: The <code>DOMNode</code> is from a document that is not supported by 
+     * the <code>XPathEvaluator</code> that created this <code>DOMXPathExpression</code>.
+     * NOT_SUPPORTED_ERR: The Node is not a type permitted as an XPath context node or the 
+     * request type is not permitted by this <code>DOMXPathExpression</code>.
+     */
+
+    virtual void*          evaluate(DOMNode *contextNode, unsigned short type, void* result) const = 0;
+    //@}
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/DOMTreeWalker.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/DOMTreeWalker.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/DOMTreeWalker.hpp	(revision 2674)
@@ -0,0 +1,276 @@
+#ifndef DOMTreeWalker_HEADER_GUARD_
+#define DOMTreeWalker_HEADER_GUARD_
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: DOMTreeWalker.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#include <xercesc/dom/DOMNode.hpp>
+#include <xercesc/dom/DOMNodeFilter.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+
+/**
+ * <code>DOMTreeWalker</code> objects are used to navigate a document tree or
+ * subtree using the view of the document defined by their
+ * <code>whatToShow</code> flags and filter (if any). Any function which
+ * performs navigation using a <code>DOMTreeWalker</code> will automatically
+ * support any view defined by a <code>DOMTreeWalker</code>.
+ * <p>Omitting nodes from the logical view of a subtree can result in a
+ * structure that is substantially different from the same subtree in the
+ * complete, unfiltered document. Nodes that are siblings in the
+ * <code>DOMTreeWalker</code> view may be children of different, widely
+ * separated nodes in the original view. For instance, consider a
+ * <code>DOMNodeFilter</code> that skips all nodes except for DOMText nodes and
+ * the root node of a document. In the logical view that results, all text
+ * nodes will be siblings and appear as direct children of the root node, no
+ * matter how deeply nested the structure of the original document.
+ * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Traversal-Range-20001113'>Document Object Model (DOM) Level 2 Traversal and Range Specification</a>.
+ *
+ * @since DOM Level 2
+ */
+class CDOM_EXPORT DOMTreeWalker {
+protected:
+    // -----------------------------------------------------------------------
+    //  Hidden constructors
+    // -----------------------------------------------------------------------
+    /** @name Hidden constructors */
+    //@{    
+    DOMTreeWalker() {}
+    DOMTreeWalker(const DOMTreeWalker &) {}
+    //@}
+
+private:
+    // -----------------------------------------------------------------------
+    // Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    /** @name Unimplemented constructors and operators */
+    //@{
+    DOMTreeWalker & operator = (const DOMTreeWalker &);
+    //@}
+
+public:
+    // -----------------------------------------------------------------------
+    //  All constructors are hidden, just the destructor is available
+    // -----------------------------------------------------------------------
+    /** @name Destructor */
+    //@{
+    /**
+     * Destructor
+     *
+     */
+    virtual ~DOMTreeWalker() {};
+    //@}
+
+    // -----------------------------------------------------------------------
+    //  Virtual DOMTreeWalker interface
+    // -----------------------------------------------------------------------
+    /** @name Functions introduced in DOM Level 2 */
+    //@{
+    // -----------------------------------------------------------------------
+    //  Getter methods
+    // -----------------------------------------------------------------------
+
+    /**
+     * The <code>root</code> node of the <code>DOMTreeWalker</code>, as specified
+     * when it was created.
+     *
+     * @since DOM Level 2
+     */
+    virtual DOMNode*          getRoot() = 0;
+    /**
+     * This attribute determines which node types are presented via the
+     * <code>DOMTreeWalker</code>. The available set of constants is defined in
+     * the <code>DOMNodeFilter</code> interface.  Nodes not accepted by
+     * <code>whatToShow</code> will be skipped, but their children may still
+     * be considered. Note that this skip takes precedence over the filter,
+     * if any.
+     *
+     * @since DOM Level 2
+     */
+    virtual unsigned long   	getWhatToShow()= 0;
+
+    /**
+     * Return The filter used to screen nodes.
+     *
+     * @since DOM Level 2
+     */
+    virtual DOMNodeFilter*	   getFilter()= 0;
+
+    /**
+     * The value of this flag determines whether the children of entity
+     * reference nodes are visible to the <code>DOMTreeWalker</code>. If false,
+     * these children  and their descendants will be rejected. Note that
+     * this rejection takes precedence over <code>whatToShow</code> and the
+     * filter, if any.
+     * <br> To produce a view of the document that has entity references
+     * expanded and does not expose the entity reference node itself, use
+     * the <code>whatToShow</code> flags to hide the entity reference node
+     * and set <code>expandEntityReferences</code> to true when creating the
+     * <code>DOMTreeWalker</code>. To produce a view of the document that has
+     * entity reference nodes but no entity expansion, use the
+     * <code>whatToShow</code> flags to show the entity reference node and
+     * set <code>expandEntityReferences</code> to false.
+     *
+     * @since DOM Level 2
+     */
+    virtual bool              getExpandEntityReferences()= 0;
+
+    /**
+     * Return the node at which the DOMTreeWalker is currently positioned.
+     *
+     * @since DOM Level 2
+     */
+    virtual DOMNode*          getCurrentNode()= 0;
+
+    // -----------------------------------------------------------------------
+    //  Query methods
+    // -----------------------------------------------------------------------
+    /**
+     * Moves to and returns the closest visible ancestor node of the current
+     * node. If the search for <code>parentNode</code> attempts to step
+     * upward from the <code>DOMTreeWalker</code>'s <code>root</code> node, or
+     * if it fails to find a visible ancestor node, this method retains the
+     * current position and returns <code>null</code>.
+     * @return The new parent node, or <code>null</code> if the current node
+     *   has no parent  in the <code>DOMTreeWalker</code>'s logical view.
+     *
+     * @since DOM Level 2
+     */
+    virtual DOMNode*          parentNode()= 0;
+
+    /**
+     * Moves the <code>DOMTreeWalker</code> to the first visible child of the
+     * current node, and returns the new node. If the current node has no
+     * visible children, returns <code>null</code>, and retains the current
+     * node.
+     * @return The new node, or <code>null</code> if the current node has no
+     *   visible children  in the <code>DOMTreeWalker</code>'s logical view.
+     *
+     * @since DOM Level 2
+     */
+    virtual DOMNode*          firstChild()= 0;
+
+    /**
+     * Moves the <code>DOMTreeWalker</code> to the last visible child of the
+     * current node, and returns the new node. If the current node has no
+     * visible children, returns <code>null</code>, and retains the current
+     * node.
+     * @return The new node, or <code>null</code> if the current node has no
+     *   children  in the <code>DOMTreeWalker</code>'s logical view.
+     *
+     * @since DOM Level 2
+     */
+    virtual DOMNode*          lastChild()= 0;
+
+    /**
+     * Moves the <code>DOMTreeWalker</code> to the previous sibling of the
+     * current node, and returns the new node. If the current node has no
+     * visible previous sibling, returns <code>null</code>, and retains the
+     * current node.
+     * @return The new node, or <code>null</code> if the current node has no
+     *   previous sibling.  in the <code>DOMTreeWalker</code>'s logical view.
+     *
+     * @since DOM Level 2
+     */
+    virtual DOMNode*          previousSibling()= 0;
+
+    /**
+     * Moves the <code>DOMTreeWalker</code> to the next sibling of the current
+     * node, and returns the new node. If the current node has no visible
+     * next sibling, returns <code>null</code>, and retains the current node.
+     * @return The new node, or <code>null</code> if the current node has no
+     *   next sibling.  in the <code>DOMTreeWalker</code>'s logical view.
+     *
+     * @since DOM Level 2
+     */
+    virtual DOMNode*          nextSibling()= 0;
+
+    /**
+     * Moves the <code>DOMTreeWalker</code> to the previous visible node in
+     * document order relative to the current node, and returns the new
+     * node. If the current node has no previous node,  or if the search for
+     * <code>previousNode</code> attempts to step upward from the
+     * <code>DOMTreeWalker</code>'s <code>root</code> node,  returns
+     * <code>null</code>, and retains the current node.
+     * @return The new node, or <code>null</code> if the current node has no
+     *   previous node  in the <code>DOMTreeWalker</code>'s logical view.
+     *
+     * @since DOM Level 2
+     */
+    virtual DOMNode*          previousNode()= 0;
+
+    /**
+     * Moves the <code>DOMTreeWalker</code> to the next visible node in document
+     * order relative to the current node, and returns the new node. If the
+     * current node has no next node, or if the search for nextNode attempts
+     * to step upward from the <code>DOMTreeWalker</code>'s <code>root</code>
+     * node, returns <code>null</code>, and retains the current node.
+     * @return The new node, or <code>null</code> if the current node has no
+     *   next node  in the <code>DOMTreeWalker</code>'s logical view.
+     *
+     * @since DOM Level 2
+     */
+    virtual DOMNode*          nextNode()= 0;
+
+    // -----------------------------------------------------------------------
+    //  Setter methods
+    // -----------------------------------------------------------------------
+    /**
+     * The node at which the <code>DOMTreeWalker</code> is currently positioned.
+     * <br>Alterations to the DOM tree may cause the current node to no longer
+     * be accepted by the <code>DOMTreeWalker</code>'s associated filter.
+     * <code>currentNode</code> may also be explicitly set to any node,
+     * whether or not it is within the subtree specified by the
+     * <code>root</code> node or would be accepted by the filter and
+     * <code>whatToShow</code> flags. Further traversal occurs relative to
+     * <code>currentNode</code> even if it is not part of the current view,
+     * by applying the filters in the requested direction; if no traversal
+     * is possible, <code>currentNode</code> is not changed.
+     * @exception DOMException
+     *   NOT_SUPPORTED_ERR: Raised if an attempt is made to set
+     *   <code>currentNode</code> to <code>null</code>.
+     *
+     * @since DOM Level 2
+     */
+    virtual void              setCurrentNode(DOMNode* currentNode)= 0;
+    //@}
+
+    // -----------------------------------------------------------------------
+    //  Non-standard Extension
+    // -----------------------------------------------------------------------
+    /** @name Non-standard Extension */
+    //@{
+    /**
+     * Called to indicate that this TreeWalker is no longer in use
+     * and that the implementation may relinquish any resources associated with it.
+     *
+     * Access to a released object will lead to unexpected result.
+     */
+    virtual void              release() = 0;
+    //@}
+};
+
+#define GetDOMTreeWalkerMemoryManager GET_INDIRECT_MM(fCurrentNode)
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/DOMImplementationSource.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/DOMImplementationSource.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/DOMImplementationSource.hpp	(revision 2674)
@@ -0,0 +1,102 @@
+#ifndef DOMImplementationSource_HEADER_GUARD_
+#define DOMImplementationSource_HEADER_GUARD_
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: DOMImplementationSource.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+/**
+  * This interface permits a DOM implementer to supply one or more
+  * implementations, based upon requested features. Each implemented
+  * <code>DOMImplementationSource</code> object is listed in the
+  * binding-specific list of available sources so that its
+  * <code>DOMImplementation</code> objects are made available.
+  * <p>See also the <a href='http://www.w3.org/TR/2002/WD-DOM-Level-3-Core-20020409'>Document Object Model (DOM) Level 3 Core Specification</a>.
+  *
+  * @since DOM Level 3
+  */
+#include <xercesc/util/XercesDefs.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+
+class DOMImplementation;
+
+class CDOM_EXPORT DOMImplementationSource
+{
+protected :
+    // -----------------------------------------------------------------------
+    //  Hidden constructors
+    // -----------------------------------------------------------------------
+    /** @name Hidden constructors */
+    //@{    
+    DOMImplementationSource() {};
+    //@}
+
+private:
+    // -----------------------------------------------------------------------
+    // Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    /** @name Unimplemented constructors and operators */
+    //@{
+    DOMImplementationSource(const DOMImplementationSource &);
+    DOMImplementationSource & operator = (const DOMImplementationSource &);
+    //@}
+
+
+public:
+    // -----------------------------------------------------------------------
+    //  All constructors are hidden, just the destructor is available
+    // -----------------------------------------------------------------------
+    /** @name Destructor */
+    //@{
+    /**
+     * Destructor
+     *
+     */
+    virtual ~DOMImplementationSource() {};
+    //@}
+
+    // -----------------------------------------------------------------------
+    //  Virtual DOMImplementationSource interface
+    // -----------------------------------------------------------------------
+    /** @name Functions introduced in DOM Level 3 */
+    //@{
+    /**
+     * A method to request a DOM implementation.
+     *
+     * <p><b>"Experimental - subject to change"</b></p>
+     *
+     * @param features A string that specifies which features are required.
+     *   This is a space separated list in which each feature is specified
+     *   by its name optionally followed by a space and a version number.
+     *   This is something like: "XML 1.0 Traversal 2.0"
+     * @return An implementation that has the desired features, or
+     *   <code>null</code> if this source has none.
+     * @since DOM Level 3
+     */
+    virtual DOMImplementation* getDOMImplementation(const XMLCh* features) const = 0;
+    //@}
+
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/DOMXPathNSResolver.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/DOMXPathNSResolver.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/DOMXPathNSResolver.hpp	(revision 2674)
@@ -0,0 +1,108 @@
+#ifndef DOMXPathNSResolver_HEADER_GUARD_
+#define DOMXPathNSResolver_HEADER_GUARD_
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <xercesc/util/XercesDefs.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+/**
+ * The <code>DOMXPathNSResolver</code> interface permit prefix strings
+ * in the expression to be properly bound to namespaceURI strings. 
+ * <code>DOMXPathEvaluator</code> can construct an implementation of 
+ * <code>DOMXPathNSResolver</code> from a node, or the interface may be
+ * implemented by any application.
+ * @since DOM Level 3
+ */
+class CDOM_EXPORT DOMXPathNSResolver
+{
+
+protected:
+    // -----------------------------------------------------------------------
+    //  Hidden constructors
+    // -----------------------------------------------------------------------
+    /** @name Hidden constructors */
+    //@{    
+    DOMXPathNSResolver() {};
+    //@}
+
+private:
+    // -----------------------------------------------------------------------
+    // Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    /** @name Unimplemented constructors and operators */
+    //@{
+    DOMXPathNSResolver(const DOMXPathNSResolver &);
+    DOMXPathNSResolver& operator = (const  DOMXPathNSResolver&);
+    //@}
+
+public:
+    // -----------------------------------------------------------------------
+    //  All constructors are hidden, just the destructor is available
+    // -----------------------------------------------------------------------
+    /** @name Destructor */
+    //@{
+    /**
+     * Destructor
+     *
+     */
+    virtual ~DOMXPathNSResolver() {};
+    //@}
+
+    // -----------------------------------------------------------------------
+    // Virtual DOMDocument interface
+    // -----------------------------------------------------------------------
+    /** @name Functions introduced in DOM Level 3 */
+    //@{
+
+    /** Look up the namespace URI associated to the given namespace prefix. 
+     * The XPath evaluator must never call this with a null or empty argument, 
+     * because the result of doing this is undefined.
+     * @param prefix of type XMLCh - The prefix to look for.
+     * @return the associated namespace URI or null if none is found.
+     */
+    virtual const XMLCh*          lookupNamespaceURI(const XMLCh* prefix) const = 0;
+    //@}
+
+
+    // -----------------------------------------------------------------------
+    // Non-standard extension
+    // -----------------------------------------------------------------------
+    /** @name Non-standard extension */
+    //@{
+
+    /**
+     * Non-standard extension
+     *
+     * XPath2 implementations require a reverse lookup in the static context.
+     * Look up the prefix associated with the namespace URI
+     * The XPath evaluator must never call this with a null or empty argument, 
+     * because the result of doing this is undefined.
+     * @param URI of type XMLCh - The namespace to look for.
+     * @return the associated prefix or null if none is found.
+     */
+    virtual const XMLCh*          lookupPrefix(const XMLCh* URI) const = 0;
+
+
+    //@}
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
+
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/DOMEntity.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/DOMEntity.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/DOMEntity.hpp	(revision 2674)
@@ -0,0 +1,208 @@
+#ifndef DOMEntity_HEADER_GUARD_
+#define DOMEntity_HEADER_GUARD_
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: DOMEntity.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+#include <xercesc/util/XercesDefs.hpp>
+#include <xercesc/dom/DOMNode.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+/**
+ * This interface represents an entity, either parsed or unparsed, in an XML
+ * document. Note that this models the entity itself not the entity
+ * declaration. <code>DOMEntity</code> declaration modeling has been left for a
+ * later Level of the DOM specification.
+ * <p>The <code>nodeName</code> attribute that is inherited from
+ * <code>DOMNode</code> contains the name of the entity.
+ * <p>An XML processor may choose to completely expand entities before the
+ * structure model is passed to the DOM; in this case there will be no
+ * <code>DOMEntityReference</code> nodes in the document tree.
+ * <p>XML does not mandate that a non-validating XML processor read and
+ * process entity declarations made in the external subset or declared in
+ * external parameter entities. This means that parsed entities declared in
+ * the external subset need not be expanded by some classes of applications,
+ * and that the replacement value of the entity may not be available. When
+ * the replacement value is available, the corresponding <code>DOMEntity</code>
+ * node's child list represents the structure of that replacement text.
+ * Otherwise, the child list is empty.
+ * <p>The DOM Level 2 does not support editing <code>DOMEntity</code> nodes; if a
+ * user wants to make changes to the contents of an <code>DOMEntity</code>,
+ * every related <code>DOMEntityReference</code> node has to be replaced in the
+ * structure model by a clone of the <code>DOMEntity</code>'s contents, and
+ * then the desired changes must be made to each of those clones instead.
+ * <code>DOMEntity</code> nodes and all their descendants are readonly.
+ * <p>An <code>DOMEntity</code> node does not have any parent.If the entity
+ * contains an unbound namespace prefix, the <code>namespaceURI</code> of
+ * the corresponding node in the <code>DOMEntity</code> node subtree is
+ * <code>null</code>. The same is true for <code>DOMEntityReference</code>
+ * nodes that refer to this entity, when they are created using the
+ * <code>createEntityReference</code> method of the <code>DOMDocument</code>
+ * interface. The DOM Level 2 does not support any mechanism to resolve
+ * namespace prefixes.
+ * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113'>Document Object Model (DOM) Level 2 Core Specification</a>.
+ *
+ * @since DOM Level 1
+ */
+class CDOM_EXPORT DOMEntity: public DOMNode {
+protected:
+    // -----------------------------------------------------------------------
+    //  Hidden constructors
+    // -----------------------------------------------------------------------
+    /** @name Hidden constructors */
+    //@{    
+    DOMEntity() {}
+    DOMEntity(const DOMEntity &other) : DOMNode(other) {}
+    //@}
+
+private:
+    // -----------------------------------------------------------------------
+    // Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    /** @name Unimplemented operators */
+    //@{
+    DOMEntity & operator = (const DOMEntity &);
+    //@}
+
+public:
+    // -----------------------------------------------------------------------
+    //  All constructors are hidden, just the destructor is available
+    // -----------------------------------------------------------------------
+    /** @name Destructor */
+    //@{
+    /**
+     * Destructor
+     *
+     */
+    virtual ~DOMEntity() {};
+    //@}
+
+    // -----------------------------------------------------------------------
+    //  Virtual DOMEntity interface
+    // -----------------------------------------------------------------------
+    /** @name Functions introduced in DOM Level 1 */
+    //@{
+    // -----------------------------------------------------------------------
+    //  Getter methods
+    // -----------------------------------------------------------------------
+    /**
+     * The public identifier associated with the entity, if specified.
+     *
+     * If the public identifier was not specified, this is <code>null</code>.
+     *
+     * @since DOM Level 1
+     */
+    virtual const XMLCh *        getPublicId() const = 0;
+
+    /**
+     * The system identifier associated with the entity, if specified.
+     *
+     * If the system identifier was not specified, this is <code>null</code>.
+     *
+     * @since DOM Level 1
+     */
+    virtual const XMLCh *        getSystemId() const = 0;
+
+    /**
+     * For unparsed entities, the name of the notation for the entity.
+     *
+     * For parsed entities, this is <code>null</code>.
+     *
+     * @since DOM Level 1
+     */
+    virtual const XMLCh *        getNotationName() const = 0;
+    //@}
+
+    /** @name Functions introduced in DOM Level 3. */
+    //@{
+
+     /**
+     * An attribute specifying the actual encoding of this entity, when it is
+     * an external parsed entity. This is <code>null</code> otherwise.
+     *
+     * <p><b>"Experimental - subject to change"</b></p>
+     *
+     * @since DOM Level 3
+     */
+    virtual const XMLCh*           getActualEncoding() const = 0;
+
+    /**
+     * An attribute specifying the actual encoding of this entity, when it is
+     * an external parsed entity. This is <code>null</code> otherwise.
+     *
+     * <p><b>"Experimental - subject to change"</b></p>
+     *
+     * @since DOM Level 3
+     */
+    virtual void                   setActualEncoding(const XMLCh* actualEncoding) = 0;
+
+    /**
+     * An attribute specifying, as part of the text declaration, the encoding
+     * of this entity, when it is an external parsed entity. This is
+     * <code>null</code> otherwise.
+     *
+     * <p><b>"Experimental - subject to change"</b></p>
+     *
+     * @since DOM Level 3
+     */
+    virtual const XMLCh*           getEncoding() const = 0;
+
+    /**
+     * An attribute specifying, as part of the text declaration, the encoding
+     * of this entity, when it is an external parsed entity. This is
+     * <code>null</code> otherwise.
+     *
+     * <p><b>"Experimental - subject to change"</b></p>
+     *
+     * @since DOM Level 3
+     */
+    virtual void                   setEncoding(const XMLCh* encoding) = 0;
+
+    /**
+     * An attribute specifying, as part of the text declaration, the version
+     * number of this entity, when it is an external parsed entity. This is
+     * <code>null</code> otherwise.
+     *
+     * <p><b>"Experimental - subject to change"</b></p>
+     *
+     * @since DOM Level 3
+     */
+    virtual const XMLCh*           getVersion() const = 0;
+
+    /**
+     * An attribute specifying, as part of the text declaration, the version
+     * number of this entity, when it is an external parsed entity. This is
+     * <code>null</code> otherwise.
+     *
+     * <p><b>"Experimental - subject to change"</b></p>
+     *
+     * @since DOM Level 3
+     */
+    virtual void                   setVersion(const XMLCh* version) = 0;
+    //@}
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
+
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/DOMWriter.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/DOMWriter.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/DOMWriter.hpp	(revision 2674)
@@ -0,0 +1,545 @@
+#ifndef DOMWriter_HEADER_GUARD_
+#define DOMWriter_HEADER_GUARD_
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: DOMWriter.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+/**
+ *
+ * DOMWriter provides an API for serializing (writing) a DOM document out in
+ * an XML document. The XML data is written to an output stream, the type of
+ * which depends on the specific language bindings in use. During
+ * serialization of XML data, namespace fixup is done when possible.
+ * <p> <code>DOMWriter</code> accepts any node type for serialization. For
+ * nodes of type <code>Document</code> or <code>Entity</code>, well formed
+ * XML will be created if possible. The serialized output for these node
+ * types is either as a Document or an External Entity, respectively, and is
+ * acceptable input for an XML parser. For all other types of nodes the
+ * serialized form is not specified, but should be something useful to a
+ * human for debugging or diagnostic purposes. Note: rigorously designing an
+ * external (source) form for stand-alone node types that don't already have
+ * one defined in  seems a bit much to take on here.
+ * <p>Within a Document or Entity being serialized, Nodes are processed as
+ * follows Documents are written including an XML declaration and a DTD
+ * subset, if one exists in the DOM. Writing a document node serializes the
+ * entire document.  Entity nodes, when written directly by
+ * <code>writeNode</code> defined in the <code>DOMWriter</code> interface,
+ * output the entity expansion but no namespace fixup is done. The resulting
+ * output will be valid as an external entity.  Entity References nodes are
+ * serializes as an entity reference of the form
+ * <code>"&amp;entityName;"</code>) in the output. Child nodes (the
+ * expansion) of the entity reference are ignored.  CDATA sections
+ * containing content characters that can not be represented in the
+ * specified output encoding are handled according to the
+ * "split-cdata-sections" feature.If the feature is <code>true</code>, CDATA
+ * sections are split, and the unrepresentable characters are serialized as
+ * numeric character references in ordinary content. The exact position and
+ * number of splits is not specified. If the feature is <code>false</code>,
+ * unrepresentable characters in a CDATA section are reported as errors. The
+ * error is not recoverable - there is no mechanism for supplying
+ * alternative characters and continuing with the serialization. All other
+ * node types (DOMElement, DOMText, etc.) are serialized to their corresponding
+ * XML source form.
+ * <p> Within the character data of a document (outside of markup), any
+ * characters that cannot be represented directly are replaced with
+ * character references. Occurrences of '&lt;' and '&amp;' are replaced by
+ * the predefined entities &amp;lt; and &amp;amp. The other predefined
+ * entities (&amp;gt, &amp;apos, etc.) are not used; these characters can be
+ * included directly. Any character that can not be represented directly in
+ * the output character encoding is serialized as a numeric character
+ * reference.
+ * <p> Attributes not containing quotes are serialized in quotes. Attributes
+ * containing quotes but no apostrophes are serialized in apostrophes
+ * (single quotes). Attributes containing both forms of quotes are
+ * serialized in quotes, with quotes within the value represented by the
+ * predefined entity &amp;quot;. Any character that can not be represented
+ * directly in the output character encoding is serialized as a numeric
+ * character reference.
+ * <p> Within markup, but outside of attributes, any occurrence of a character
+ * that cannot be represented in the output character encoding is reported
+ * as an error. An example would be serializing the element
+ * &lt;LaCaï¿œada/&gt; with the encoding="us-ascii".
+ * <p> When requested by setting the <code>normalize-characters</code> feature
+ * on <code>DOMWriter</code>, all data to be serialized, both markup and
+ * character data, is W3C Text normalized according to the rules defined in
+ * . The W3C Text normalization process affects only the data as it is being
+ * written; it does not alter the DOM's view of the document after
+ * serialization has completed.
+ * <p>Namespaces are fixed up during serialization, the serialization process
+ * will verify that namespace declarations, namespace prefixes and the
+ * namespace URIs associated with Elements and Attributes are consistent. If
+ * inconsistencies are found, the serialized form of the document will be
+ * altered to remove them. The algorithm used for doing the namespace fixup
+ * while seralizing a document is a combination of the algorithms used for
+ * lookupNamespaceURI and lookupNamespacePrefix . previous paragraph to be
+ * defined closer here.
+ * <p>Any changes made affect only the namespace prefixes and declarations
+ * appearing in the serialized data. The DOM's view of the document is not
+ * altered by the serialization operation, and does not reflect any changes
+ * made to namespace declarations or prefixes in the serialized output.
+ * <p> While serializing a document the serializer will write out
+ * non-specified values (such as attributes whose <code>specified</code> is
+ * <code>false</code>) if the <code>output-default-values</code> feature is
+ * set to <code>true</code>. If the <code>output-default-values</code> flag
+ * is set to <code>false</code> and the <code>use-abstract-schema</code>
+ * feature is set to <code>true</code> the abstract schema will be used to
+ * determine if a value is specified or not, if
+ * <code>use-abstract-schema</code> is not set the <code>specified</code>
+ * flag on attribute nodes is used to determine if attribute values should
+ * be written out.
+ * <p> Ref to Core spec (1.1.9, XML namespaces, 5th paragraph) entity ref
+ * description about warning about unbound entity refs. Entity refs are
+ * always serialized as &amp;foo;, also mention this in the load part of
+ * this spec.
+ * <p> When serializing a document the DOMWriter checks to see if the document
+ * element in the document is a DOM Level 1 element or a DOM Level 2 (or
+ * higher) element (this check is done by looking at the localName of the
+ * root element). If the root element is a DOM Level 1 element then the
+ * DOMWriter will issue an error if a DOM Level 2 (or higher) element is
+ * found while serializing. Likewise if the document element is a DOM Level
+ * 2 (or higher) element and the DOMWriter sees a DOM Level 1 element an
+ * error is issued. Mixing DOM Level 1 elements with DOM Level 2 (or higher)
+ * is not supported.
+ * <p> <code>DOMWriter</code>s have a number of named features that can be
+ * queried or set. The name of <code>DOMWriter</code> features must be valid
+ * XML names. Implementation specific features (extensions) should choose an
+ * implementation dependent prefix to avoid name collisions.
+ * <p>Here is a list of properties that must be recognized by all
+ * implementations.
+ * <dl>
+ * <dt><code>"normalize-characters"</code></dt>
+ * <dd>
+ * <dl>
+ * <dt><code>true</code></dt>
+ * <dd>[
+ * optional] (default) Perform the W3C Text Normalization of the characters
+ * in document as they are written out. Only the characters being written
+ * are (potentially) altered. The DOM document itself is unchanged. </dd>
+ * <dt>
+ * <code>false</code></dt>
+ * <dd>[required] do not perform character normalization. </dd>
+ * </dl></dd>
+ * <dt>
+ * <code>"split-cdata-sections"</code></dt>
+ * <dd>
+ * <dl>
+ * <dt><code>true</code></dt>
+ * <dd>[required] (default)
+ * Split CDATA sections containing the CDATA section termination marker
+ * ']]&gt;' or characters that can not be represented in the output
+ * encoding, and output the characters using numeric character references.
+ * If a CDATA section is split a warning is issued. </dd>
+ * <dt><code>false</code></dt>
+ * <dd>[
+ * required] Signal an error if a <code>CDATASection</code> contains an
+ * unrepresentable character. </dd>
+ * </dl></dd>
+ * <dt><code>"validation"</code></dt>
+ * <dd>
+ * <dl>
+ * <dt><code>true</code></dt>
+ * <dd>[
+ * optional] Use the abstract schema to validate the document as it is being
+ * serialized. If validation errors are found the error handler is notified
+ * about the error. Setting this state will also set the feature
+ * <code>use-abstract-schema</code> to <code>true</code>. </dd>
+ * <dt><code>false</code></dt>
+ * <dd>[
+ * required] (default) Don't validate the document as it is being
+ * serialized. </dd>
+ * </dl></dd>
+ * <dt><code>"expand-entity-references"</code></dt>
+ * <dd>
+ * <dl>
+ * <dt><code>true</code></dt>
+ * <dd>[
+ * optional] Expand <code>EntityReference</code> nodes when serializing. </dd>
+ * <dt>
+ * <code>false</code></dt>
+ * <dd>[required] (default) Serialize all
+ * <code>EntityReference</code> nodes as XML entity references. </dd>
+ * </dl></dd>
+ * <dt>
+ * <code>"whitespace-in-element-content"</code></dt>
+ * <dd>
+ * <dl>
+ * <dt><code>true</code></dt>
+ * <dd>[required] (
+ * default) Output all white spaces in the document. </dd>
+ * <dt><code>false</code></dt>
+ * <dd>[
+ * optional] Only output white space that is not within element content. The
+ * implementation is expected to use the
+ * <code>isWhitespaceInElementContent</code> flag on <code>Text</code> nodes
+ * to determine if a text node should be written out or not. </dd>
+ * </dl></dd>
+ * <dt>
+ * <code>"discard-default-content"</code></dt>
+ * <dd>
+ * <dl>
+ * <dt><code>true</code></dt>
+ * <dd>[required] (default
+ * ) Use whatever information available to the implementation (i.e. XML
+ * schema, DTD, the <code>specified</code> flag on <code>Attr</code> nodes,
+ * and so on) to decide what attributes and content should be serialized or
+ * not. Note that the <code>specified</code> flag on <code>Attr</code> nodes
+ * in itself is not always reliable, it is only reliable when it is set to
+ * <code>false</code> since the only case where it can be set to
+ * <code>false</code> is if the attribute was created by a Level 1
+ * implementation. </dd>
+ * <dt><code>false</code></dt>
+ * <dd>[required] Output all attributes and
+ * all content. </dd>
+ * </dl></dd>
+ * <dt><code>"format-canonical"</code></dt>
+ * <dd>
+ * <dl>
+ * <dt><code>true</code></dt>
+ * <dd>[optional]
+ * This formatting writes the document according to the rules specified in .
+ * Setting this feature to true will set the feature "format-pretty-print"
+ * to false. </dd>
+ * <dt><code>false</code></dt>
+ * <dd>[required] (default) Don't canonicalize the
+ * output. </dd>
+ * </dl></dd>
+ * <dt><code>"format-pretty-print"</code></dt>
+ * <dd>
+ * <dl>
+ * <dt><code>true</code></dt>
+ * <dd>[optional]
+ * Formatting the output by adding whitespace to produce a pretty-printed,
+ * indented, human-readable form. The exact form of the transformations is
+ * not specified by this specification. Setting this feature to true will
+ * set the feature "format-canonical" to false. </dd>
+ * <dt><code>false</code></dt>
+ * <dd>[required]
+ * (default) Don't pretty-print the result. </dd>
+ * </dl></dd>
+ * </dl>
+ * <p>See also the <a href='http://www.w3.org/TR/2002/WD-DOM-Level-3-ASLS-20020409'>Document Object Model (DOM) Level 3 Abstract Schemas and Load
+ * and Save Specification</a>.
+ *
+ * @since DOM Level 3
+ */
+
+
+#include <xercesc/dom/DOMNode.hpp>
+#include <xercesc/dom/DOMWriterFilter.hpp>
+#include <xercesc/dom/DOMErrorHandler.hpp>
+#include <xercesc/framework/XMLFormatter.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class CDOM_EXPORT DOMWriter {
+protected :
+    // -----------------------------------------------------------------------
+    //  Hidden constructors
+    // -----------------------------------------------------------------------
+    /** @name Hidden constructors */
+    //@{    
+    DOMWriter() {};
+    //@}
+private:        
+    // -----------------------------------------------------------------------
+    // Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    /** @name Unimplemented constructors and operators */
+    //@{
+    DOMWriter(const DOMWriter &);
+    DOMWriter & operator = (const DOMWriter &);
+    //@}
+
+
+public:
+    // -----------------------------------------------------------------------
+    //  All constructors are hidden, just the destructor is available
+    // -----------------------------------------------------------------------
+    /** @name Destructor */
+    //@{
+    /**
+     * Destructor
+     *
+     */
+    virtual ~DOMWriter() {};
+    //@}
+
+    // -----------------------------------------------------------------------
+    //  Virtual DOMWriter interface
+    // -----------------------------------------------------------------------
+    /** @name Functions introduced in DOM Level 3 */
+    //@{
+    // -----------------------------------------------------------------------
+    //  Feature methods
+    // -----------------------------------------------------------------------
+    /**
+     * Query whether setting a feature to a specific value is supported.
+     * <br>The feature name has the same form as a DOM hasFeature string.
+     *
+     *  <p><b>"Experimental - subject to change"</b></p>
+     *
+     * @param featName The feature name, which is a DOM has-feature style string.
+     * @param state The requested state of the feature (<code>true</code> or
+     *   <code>false</code>).
+     * @return <code>true</code> if the feature could be successfully set to
+     *   the specified value, or <code>false</code> if the feature is not
+     *   recognized or the requested value is not supported. The value of
+     *   the feature itself is not changed.
+     * @since DOM Level 3
+     */
+    virtual bool           canSetFeature(const XMLCh* const featName
+                                       , bool               state) const = 0;
+    /**
+     * Set the state of a feature.
+     * <br>The feature name has the same form as a DOM hasFeature string.
+     * <br>It is possible for a <code>DOMWriter</code> to recognize a feature
+     * name but to be unable to set its value.
+     *
+     *  <p><b>"Experimental - subject to change"</b></p>
+     *
+     * @param featName The feature name.
+     * @param state The requested state of the feature (<code>true</code> or
+     *   <code>false</code>).
+     * @exception DOMException
+     *   Raise a NOT_SUPPORTED_ERR exception when the <code>DOMWriter</code>
+     *   recognizes the feature name but cannot set the requested value.
+     *   <br>Raise a NOT_FOUND_ERR When the <code>DOMWriter</code> does not
+     *   recognize the feature name.
+     * @see   getFeature
+     * @since DOM Level 3
+     */
+    virtual void            setFeature(const XMLCh* const featName
+                                     , bool               state) = 0;
+
+    /**
+     * Look up the value of a feature.
+     * <br>The feature name has the same form as a DOM hasFeature string
+     * @param featName The feature name, which is a string with DOM has-feature
+     *   syntax.
+     * @return The current state of the feature (<code>true</code> or
+     *   <code>false</code>).
+     * @exception DOMException
+     *   Raise a NOT_FOUND_ERR When the <code>DOMWriter</code> does not
+     *   recognize the feature name.
+     *
+     *  <p><b>"Experimental - subject to change"</b></p>
+     *
+     * @see   setFeature
+     * @since DOM Level 3
+     */
+    virtual bool               getFeature(const XMLCh* const featName) const = 0;
+
+    // -----------------------------------------------------------------------
+    //  Setter methods
+    // -----------------------------------------------------------------------
+    /**
+     * The character encoding in which the output will be written.
+     * <br> The encoding to use when writing is determined as follows: If the
+     * encoding attribute has been set, that value will be used.If the
+     * encoding attribute is <code>null</code> or empty, but the item to be
+     * written includes an encoding declaration, that value will be used.If
+     * neither of the above provides an encoding name, a default encoding of
+     * "UTF-8" will be used.
+     * <br>The default value is <code>null</code>.
+     *
+     *  <p><b>"Experimental - subject to change"</b></p>
+     *
+     * @param encoding    The character encoding in which the output will be written.
+     * @see   getEncoding
+     * @since DOM Level 3
+     */
+    virtual void           setEncoding(const XMLCh* const encoding) = 0;
+
+    /**
+     * The end-of-line sequence of characters to be used in the XML being
+     * written out. The only permitted values are these:
+     * <dl>
+     * <dt><code>null</code></dt>
+     * <dd>
+     * Use a default end-of-line sequence. DOM implementations should choose
+     * the default to match the usual convention for text files in the
+     * environment being used. Implementations must choose a default
+     * sequence that matches one of those allowed by  2.11 "End-of-Line
+     * Handling". </dd>
+     * <dt>CR</dt>
+     * <dd>The carriage-return character (#xD).</dd>
+     * <dt>CR-LF</dt>
+     * <dd> The
+     * carriage-return and line-feed characters (#xD #xA). </dd>
+     * <dt>LF</dt>
+     * <dd> The line-feed
+     * character (#xA). </dd>
+     * </dl>
+     * <br>The default value for this attribute is <code>null</code>.
+     *
+     *  <p><b>"Experimental - subject to change"</b></p>
+     *
+     * @param newLine      The end-of-line sequence of characters to be used.
+     * @see   getNewLine
+     * @since DOM Level 3
+     */
+    virtual void          setNewLine(const XMLCh* const newLine) = 0;
+
+    /**
+     * The error handler that will receive error notifications during
+     * serialization. The node where the error occured is passed to this
+     * error handler, any modification to nodes from within an error
+     * callback should be avoided since this will result in undefined,
+     * implementation dependent behavior.
+     *
+     *  <p><b>"Experimental - subject to change"</b></p>
+     *
+     * @param errorHandler The error handler to be used.
+     * @see   getErrorHandler
+     * @since DOM Level 3
+     */
+    virtual void         setErrorHandler(DOMErrorHandler *errorHandler) = 0;
+
+    /**
+     * When the application provides a filter, the serializer will call out
+     * to the filter before serializing each Node. Attribute nodes are never
+     * passed to the filter. The filter implementation can choose to remove
+     * the node from the stream or to terminate the serialization early.
+     *
+     *  <p><b>"Experimental - subject to change"</b></p>
+     *
+     * @param filter       The writer filter to be used.
+     * @see   getFilter
+     * @since DOM Level 3
+     */
+    virtual void         setFilter(DOMWriterFilter *filter) = 0;
+
+    // -----------------------------------------------------------------------
+    //  Getter methods
+    // -----------------------------------------------------------------------
+    /**
+     * Return the character encoding in which the output will be written.
+     *
+     *  <p><b>"Experimental - subject to change"</b></p>
+     *
+     * @return The character encoding used.
+     * @see   setEncoding
+     * @since DOM Level 3
+     */
+     virtual const XMLCh*       getEncoding() const = 0;
+
+    /**
+     * Return the end-of-line sequence of characters to be used in the XML being
+     * written out.
+     *
+     *  <p><b>"Experimental - subject to change"</b></p>
+     *
+     * @return             The end-of-line sequence of characters to be used.
+     * @see   setNewLine
+     * @since DOM Level 3
+     */
+     virtual const XMLCh*       getNewLine() const = 0;
+
+    /**
+     * Return the error handler that will receive error notifications during
+     * serialization.
+     *
+     *  <p><b>"Experimental - subject to change"</b></p>
+     *
+     * @return             The error handler to be used.
+     * @see   setErrorHandler
+     * @since DOM Level 3
+     */
+     virtual DOMErrorHandler*   getErrorHandler() const = 0;
+
+    /**
+     * Return the WriterFilter used.
+     *
+     *  <p><b>"Experimental - subject to change"</b></p>
+     *
+     * @return             The writer filter used.
+     * @see   setFilter
+     * @since DOM Level 3
+     */
+     virtual DOMWriterFilter*   getFilter() const = 0;
+
+    // -----------------------------------------------------------------------
+    //  Write methods
+    // -----------------------------------------------------------------------
+    /**
+     * Write out the specified node as described above in the description of
+     * <code>DOMWriter</code>. Writing a Document or Entity node produces a
+     * serialized form that is well formed XML. Writing other node types
+     * produces a fragment of text in a form that is not fully defined by
+     * this document, but that should be useful to a human for debugging or
+     * diagnostic purposes.
+     *
+     *  <p><b>"Experimental - subject to change"</b></p>
+     *
+     * @param destination The destination for the data to be written.
+     * @param nodeToWrite The <code>Document</code> or <code>Entity</code> node to
+     *   be written. For other node types, something sensible should be
+     *   written, but the exact serialized form is not specified.
+     * @return  Returns <code>true</code> if <code>node</code> was
+     *   successfully serialized and <code>false</code> in case a failure
+     *   occured and the failure wasn't canceled by the error handler.
+     * @since DOM Level 3
+     */
+    virtual bool       writeNode(XMLFormatTarget* const destination
+                               , const DOMNode         &nodeToWrite) = 0;
+
+    /**
+     * Serialize the specified node as described above in the description of
+     * <code>DOMWriter</code>. The result of serializing the node is
+     * returned as a string. Writing a Document or Entity node produces a
+     * serialized form that is well formed XML. Writing other node types
+     * produces a fragment of text in a form that is not fully defined by
+     * this document, but that should be useful to a human for debugging or
+     * diagnostic purposes.
+     *
+     *  <p><b>"Experimental - subject to change"</b></p>
+     *
+     * @param nodeToWrite  The node to be written.
+     * @return  Returns the serialized data, or <code>null</code> in case a
+     *   failure occured and the failure wasn't canceled by the error
+     *   handler.   The returned string is always in UTF-16.
+     *   The encoding information available in DOMWriter is ignored in writeToString().
+     * @since DOM Level 3
+     */
+    virtual XMLCh*     writeToString(const DOMNode &nodeToWrite) = 0;
+
+    //@}
+
+    // -----------------------------------------------------------------------
+    //  Non-standard Extension
+    // -----------------------------------------------------------------------
+    /** @name Non-standard Extension */
+    //@{
+    /**
+     * Called to indicate that this Writer is no longer in use
+     * and that the implementation may relinquish any resources associated with it.
+     *
+     * Access to a released object will lead to unexpected result.
+     */
+    virtual void              release() = 0;
+    //@}
+
+
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/DOMImplementationRegistry.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/DOMImplementationRegistry.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/DOMImplementationRegistry.hpp	(revision 2674)
@@ -0,0 +1,89 @@
+#ifndef DOMImplementationRegistry_HEADER_GUARD_
+#define DOMImplementationRegistry_HEADER_GUARD_
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: DOMImplementationRegistry.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+/**
+  * This class holds the list of registered DOMImplementations.  Implementation
+  * or application can register DOMImplementationSource to the registry, and
+  * then can query DOMImplementation based on a list of requested features.
+  *
+  * <p>This provides an application with an implementation independent starting
+  * point.
+  *
+  * @see DOMImplementation
+  * @see DOMImplementationSource
+  * @since DOM Level 3
+  */
+
+#include <xercesc/util/XercesDefs.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+
+class DOMImplementation;
+class DOMImplementationSource;
+
+class CDOM_EXPORT DOMImplementationRegistry
+{
+public:
+    // -----------------------------------------------------------------------
+    //  Static DOMImplementationRegistry interface
+    // -----------------------------------------------------------------------
+    /** @name Functions introduced in DOM Level 3 */
+    //@{
+    /**
+     * Return the first registered implementation that has the desired features,
+     * or null if none is found.
+     *
+     * <p><b>"Experimental - subject to change"</b></p>
+     *
+     * @param features A string that specifies which features are required.
+     *                 This is a space separated list in which each feature is
+     *                 specified by its name optionally followed by a space
+     *                 and a version number.
+     *                 This is something like: "XML 1.0 Traversal 2.0"
+     * @return An implementation that has the desired features, or
+     *   <code>null</code> if this source has none.
+     * @since DOM Level 3
+     */
+    static DOMImplementation* getDOMImplementation(const XMLCh* features);
+
+    /**
+     * Register an implementation.
+     *
+     * <p><b>"Experimental - subject to change"</b></p>
+     *
+     * @param source   A DOMImplementation Source object to be added to the registry.
+     *                 The registry does NOT adopt the source object.  Users still own it.
+     * @since DOM Level 3
+     */
+    static void addSource(DOMImplementationSource* source);
+    //@}
+
+private:
+    DOMImplementationRegistry();
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/DOMDocumentType.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/DOMDocumentType.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/DOMDocumentType.hpp	(revision 2674)
@@ -0,0 +1,161 @@
+#ifndef DOMDocumentType_HEADER_GUARD_
+#define DOMDocumentType_HEADER_GUARD_
+
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: DOMDocumentType.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#include <xercesc/util/XercesDefs.hpp>
+#include <xercesc/dom/DOMNode.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+
+class DOMNamedNodeMap;
+
+/**
+ * Each <code>DOMDocument</code> has a <code>doctype</code> attribute whose value
+ * is either <code>null</code> or a <code>DOMDocumentType</code> object. The
+ * <code>DOMDocumentType</code> interface in the DOM Core provides an interface
+ * to the list of entities that are defined for the document, and little
+ * else because the effect of namespaces and the various XML schema efforts
+ * on DTD representation are not clearly understood as of this writing.
+ * <p>The DOM Level 2 doesn't support editing <code>DOMDocumentType</code> nodes.
+ * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113'>Document Object Model (DOM) Level 2 Core Specification</a>.
+ *
+ * @since DOM Level 1
+ */
+class CDOM_EXPORT DOMDocumentType: public DOMNode {
+protected:
+    // -----------------------------------------------------------------------
+    //  Hidden constructors
+    // -----------------------------------------------------------------------
+    /** @name Hidden constructors */
+    //@{    
+    DOMDocumentType() {};
+    //@}
+
+private:
+    // -----------------------------------------------------------------------
+    // Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    /** @name Unimplemented constructors and operators */
+    //@{
+    DOMDocumentType(const DOMDocumentType &);
+    DOMDocumentType & operator = (const DOMDocumentType &);
+    //@}
+
+public:
+    // -----------------------------------------------------------------------
+    //  All constructors are hidden, just the destructor is available
+    // -----------------------------------------------------------------------
+    /** @name Destructor */
+    //@{
+    /**
+     * Destructor
+     *
+     */
+    virtual ~DOMDocumentType() {};
+    //@}
+
+    // -----------------------------------------------------------------------
+    //  Virtual DOMDocumentType interface
+    // -----------------------------------------------------------------------
+    /** @name Functions introduced in DOM Level 1 */
+    //@{
+    /**
+     * The name of DTD; i.e., the name immediately following the
+     * <code>DOCTYPE</code> keyword.
+     *
+     * @since DOM Level 1
+     */
+    virtual const XMLCh *       getName() const = 0;
+
+    /**
+     * A <code>DOMNamedNodeMap</code> containing the general entities, both
+     * external and internal, declared in the DTD. Parameter entities are
+     * not contained. Duplicates are discarded. For example in:
+     * <code>&lt;!DOCTYPE<br>
+     * ex SYSTEM "ex.dtd" [ &lt;!ENTITY foo "foo"&gt; &lt;!ENTITY bar<br>
+     * "bar"&gt; &lt;!ENTITY bar "bar2"&gt; &lt;!ENTITY % baz "baz"&gt;<br>
+     * ]&gt; &lt;ex/&gt;<br></code>
+     *  the interface provides access to <code>foo</code>
+     * and the first declaration of <code>bar</code> but not the second
+     * declaration of <code>bar</code> or <code>baz</code>. Every node in
+     * this map also implements the <code>DOMEntity</code> interface.
+     * <br>The DOM Level 2 does not support editing entities, therefore
+     * <code>entities</code> cannot be altered in any way.
+     *
+     * @since DOM Level 1
+     */
+    virtual DOMNamedNodeMap *getEntities() const = 0;
+
+
+    /**
+     * A <code>DOMNamedNodeMap</code> containing the notations declared in the
+     * DTD. Duplicates are discarded. Every node in this map also implements
+     * the <code>DOMNotation</code> interface.
+     * <br>The DOM Level 2 does not support editing notations, therefore
+     * <code>notations</code> cannot be altered in any way.
+     *
+     * @since DOM Level 1
+     */
+    virtual DOMNamedNodeMap *getNotations() const = 0;
+    //@}
+
+    /** @name Functions introduced in DOM Level 2. */
+    //@{
+    /**
+     * Get the public identifier of the external subset.
+     *
+     * @return The public identifier of the external subset.
+     * @since DOM Level 2
+     */
+    virtual const XMLCh *     getPublicId() const = 0;
+
+    /**
+     * Get the system identifier of the external subset.
+     *
+     * @return The system identifier of the external subset.
+     * @since DOM Level 2
+     */
+    virtual const XMLCh *     getSystemId() const = 0;
+
+    /**
+     * The internal subset as a string, or <code>null</code> if there is none.
+     * This is does not contain the delimiting square brackets.The actual
+     * content returned depends on how much information is available to the
+     * implementation. This may vary depending on various parameters,
+     * including the XML processor used to build the document.
+     *
+     * @return The internal subset as a string.
+     * @since DOM Level 2
+     */
+    virtual const XMLCh *     getInternalSubset() const = 0;
+    //@}
+
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
+
+
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/DOMWriterFilter.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/DOMWriterFilter.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/DOMWriterFilter.hpp	(revision 2674)
@@ -0,0 +1,148 @@
+#ifndef DOMWriterFilter_HEADER_GUARD_
+#define DOMWriterFilter_HEADER_GUARD_
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: DOMWriterFilter.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+/**
+ *
+ * DOMWriterFilter.hpp: interface for the DOMWriterFilter class.
+ *
+ * DOMWriterFilter provide applications the ability to examine nodes
+ * as they are being serialized.
+ *
+ * DOMWriterFilter lets the application decide what nodes should be
+ * serialized or not.
+ *
+ * The DOMDocument, DOMDocumentType, DOMNotation, and DOMEntity nodes are not passed
+ * to the filter.
+ *
+ * @since DOM Level 3
+ */
+
+
+#include <xercesc/dom/DOMNodeFilter.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+
+class CDOM_EXPORT DOMWriterFilter : public DOMNodeFilter {
+protected:
+    // -----------------------------------------------------------------------
+    //  Hidden constructors
+    // -----------------------------------------------------------------------
+    /** @name Hidden constructors */
+    //@{    
+    DOMWriterFilter() {};
+    //@}
+
+private:
+    // -----------------------------------------------------------------------
+    // Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    /** @name Unimplemented constructors and operators */
+    //@{
+    DOMWriterFilter(const DOMWriterFilter &);
+    DOMWriterFilter & operator = (const DOMWriterFilter &);
+    //@}
+
+
+public:
+    // -----------------------------------------------------------------------
+    //  All constructors are hidden, just the destructor is available
+    // -----------------------------------------------------------------------
+    /** @name Destructor */
+    //@{
+    /**
+     * Destructor
+     *
+     */
+    virtual ~DOMWriterFilter() {};
+    //@}
+
+    // -----------------------------------------------------------------------
+    //  Virtual DOMWriterFilter interface
+    // -----------------------------------------------------------------------
+    /** @name Functions introduced in DOM Level 3 */
+    //@{
+	 /**
+     * Interface from <code>DOMNodeFilter</code>,
+     * to be implemented by implementation (derived class)
+     */
+    virtual short acceptNode(const DOMNode* node) const = 0;
+
+    /**
+     * Tells the DOMWriter what types of nodes to show to the filter.
+     * See <code>DOMNodeFilter</code> for definition of the constants.
+     * The constant SHOW_ATTRIBUTE is meaningless here, attribute nodes will
+     * never be passed to a DOMWriterFilter.
+     *
+     *  <p><b>"Experimental - subject to change"</b></p>
+     *
+     * @return The constants of what types of nodes to show.
+     * @see   setWhatToShow
+     * @since DOM Level 3
+     */
+    virtual unsigned long getWhatToShow() const =0;
+
+    /**
+     * Set what types of nodes are to be presented.
+     * See <code>DOMNodeFilter</code> for definition of the constants.
+     *
+     *  <p><b>"Experimental - subject to change"</b></p>
+     *
+     * @param toShow The constants of what types of nodes to show.
+     * @see   getWhatToShow
+     * @since DOM Level 3
+     */
+    virtual void          setWhatToShow(unsigned long toShow) =0;
+    //@}
+
+private:
+
+    // -----------------------------------------------------------------------
+    //  Private data members
+    //
+    //  fWhatToShow
+    //
+    //      The whatToShow mask.
+    //      Tells the DOMWriter what types of nodes to show to the filter.
+    //      See NodeFilter for definition of the constants.
+    //      The constants
+    //      SHOW_ATTRIBUTE,
+    //      SHOW_DOCUMENT,
+    //      SHOW_DOCUMENT_TYPE,
+    //      SHOW_NOTATION, and
+    //      SHOW_DOCUMENT_FRAGMENT are meaningless here,
+    //      Entity nodes are not passed to the filter.
+    //
+    //      Those nodes will never be passed to a DOMWriterFilter.
+    //
+    //   Derived class shall add this data member:
+    //
+    //   unsigned long fWhatToShow;
+    // -----------------------------------------------------------------------
+
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/DOMText.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/DOMText.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/DOMText.hpp	(revision 2674)
@@ -0,0 +1,189 @@
+#ifndef DOMText_HEADER_GUARD_
+#define DOMText_HEADER_GUARD_
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: DOMText.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#include <xercesc/util/XercesDefs.hpp>
+#include <xercesc/dom/DOMCharacterData.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+
+/**
+ * The <code>DOMText</code> interface inherits from <code>DOMCharacterData</code>
+ * and represents the textual content (termed character data in XML) of an
+ * <code>DOMElement</code> or <code>DOMAttr</code>. If there is no markup inside
+ * an element's content, the text is contained in a single object
+ * implementing the <code>DOMText</code> interface that is the only child of
+ * the element. If there is markup, it is parsed into the information items
+ * (elements, comments, etc.) and <code>DOMText</code> nodes that form the list
+ * of children of the element.
+ * <p>When a document is first made available via the DOM, there is only one
+ * <code>DOMText</code> node for each block of text. Users may create adjacent
+ * <code>DOMText</code> nodes that represent the contents of a given element
+ * without any intervening markup, but should be aware that there is no way
+ * to represent the separations between these nodes in XML or HTML, so they
+ * will not (in general) persist between DOM editing sessions. The
+ * <code>normalize()</code> method on <code>DOMNode</code> merges any such
+ * adjacent <code>DOMText</code> objects into a single node for each block of
+ * text.
+ * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113'>Document Object Model (DOM) Level 2 Core Specification</a>.
+ */
+class CDOM_EXPORT DOMText: public DOMCharacterData {
+protected:
+    // -----------------------------------------------------------------------
+    //  Hidden constructors
+    // -----------------------------------------------------------------------
+    /** @name Hidden constructors */
+    //@{    
+    DOMText() {}
+    DOMText(const DOMText &other) : DOMCharacterData(other) {}
+    //@}
+
+private:
+    // -----------------------------------------------------------------------
+    // Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    /** @name Unimplemented operators */
+    //@{
+    DOMText & operator = (const DOMText &);
+    //@}
+
+public:
+    // -----------------------------------------------------------------------
+    //  All constructors are hidden, just the destructor is available
+    // -----------------------------------------------------------------------
+    /** @name Destructor */
+    //@{
+    /**
+     * Destructor
+     *
+     */
+    virtual ~DOMText() {};
+    //@}
+
+    // -----------------------------------------------------------------------
+    //  Virtual DOMText interface
+    // -----------------------------------------------------------------------
+    /** @name Functions introduced in DOM Level 1 */
+    //@{
+    /**
+     * Breaks this node into two nodes at the specified <code>offset</code>,
+     * keeping both in the tree as siblings. After being split, this node
+     * will contain all the content up to the <code>offset</code> point. A
+     * new node of the same type, which contains all the content at and
+     * after the <code>offset</code> point, is returned. If the original
+     * node had a parent node, the new node is inserted as the next sibling
+     * of the original node. When the <code>offset</code> is equal to the
+     * length of this node, the new node has no data.
+     * @param offset The 16-bit unit offset at which to split, starting from
+     *   <code>0</code>.
+     * @return The new node, of the same type as this node.
+     * @exception DOMException
+     *   INDEX_SIZE_ERR: Raised if the specified offset is negative or greater
+     *   than the number of 16-bit units in <code>data</code>.
+     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
+     * @since DOM Level 1
+     */
+    virtual DOMText *splitText(XMLSize_t offset) = 0;
+    //@}
+
+    /** @name Functions introduced in DOM Level 3 */
+    //@{
+    /**
+     * Returns whether this text node contains whitespace in element content,
+     * often abusively called "ignorable whitespace".  An implementation can
+     * only return <code>true</code> if, one way or another, it has access
+     * to the relevant information (e.g., the DTD or schema).
+     *
+     * <p><b>"Experimental - subject to change"</b></p>
+     *
+     * <br> This attribute represents the property [element content
+     * whitespace] defined in .
+     * @since DOM Level 3
+     */
+    virtual bool     getIsWhitespaceInElementContent() const = 0;
+
+    /**
+     * Returns all text of <code>DOMText</code> nodes logically-adjacent text
+     * nodes to this node, concatenated in document order.
+     *
+     * <p><b>"Experimental - subject to change"</b></p>
+     *
+     * @since DOM Level 3
+     */
+    virtual const XMLCh* getWholeText() = 0;
+
+    /**
+     * Substitutes the a specified text for the text of the current node and
+     * all logically-adjacent text nodes.
+     *
+     * <p><b>"Experimental - subject to change"</b></p>
+     *
+     * <br>This method returns the node in the hierarchy which received the
+     * replacement text, which is null if the text was empty or is the
+     * current node if the current node is not read-only or otherwise is a
+     * new node of the same type as the current node inserted at the site of
+     * the replacement. All logically-adjacent text nodes are removed
+     * including the current node unless it was the recipient of the
+     * replacement text.
+     * <br>Where the nodes to be removed are read-only descendants of an
+     * <code>DOMEntityReference</code>, the <code>DOMEntityReference</code> must
+     * be removed instead of the read-only nodes. If any
+     * <code>DOMEntityReference</code> to be removed has descendants that are
+     * not <code>DOMEntityReference</code>, <code>DOMText</code>, or
+     * <code>DOMCDATASection</code> nodes, the <code>replaceWholeText</code>
+     * method must fail before performing any modification of the document,
+     * raising a <code>DOMException</code> with the code
+     * <code>NO_MODIFICATION_ALLOWED_ERR</code>.
+     * @param content The content of the replacing <code>DOMText</code> node.
+     * @return The <code>DOMText</code> node created with the specified content.
+     * @exception DOMException
+     *   NO_MODIFICATION_ALLOWED_ERR: Raised if one of the <code>DOMText</code>
+     *   nodes being replaced is readonly.
+     * @since DOM Level 3
+     */
+    virtual DOMText* replaceWholeText(const XMLCh* content) = 0;
+    //@}
+
+    // -----------------------------------------------------------------------
+    // Non-standard extension
+    // -----------------------------------------------------------------------
+    /** @name Non-standard extension */
+    //@{
+    /**
+     * Non-standard extension
+     *
+     * Return true if this node contains ignorable whitespaces only.
+     * @return True if this node contains ignorable whitespaces only.
+     */
+    virtual bool isIgnorableWhitespace() const = 0;
+    //@}
+
+};
+
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
+
+
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/DOMImplementationLS.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/DOMImplementationLS.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/DOMImplementationLS.hpp	(revision 2674)
@@ -0,0 +1,180 @@
+#ifndef DOMImplementationLS_HEADER_GUARD_
+#define DOMImplementationLS_HEADER_GUARD_
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: DOMImplementationLS.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+#include <xercesc/util/PlatformUtils.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+
+class DOMBuilder;
+class DOMWriter;
+class DOMInputSource;
+class MemoryManager;
+class XMLGrammarPool;
+
+/**
+  * <p><code>DOMImplementationLS</code> contains the factory methods for
+  * creating objects that implement the <code>DOMBuilder</code> (parser) and
+  * <code>DOMWriter</code> (serializer) interfaces.</p>
+  *
+  * <p>An object that implements DOMImplementationLS is obtained by doing a
+  * binding specific cast from DOMImplementation to DOMImplementationLS.
+  * Implementations supporting the Load and Save feature must implement the
+  * DOMImplementationLS interface on whatever object implements the
+  * DOMImplementation interface.</p>
+  *
+  * @since DOM Level 3
+  */
+class CDOM_EXPORT DOMImplementationLS
+{
+protected:
+    // -----------------------------------------------------------------------
+    //  Hidden constructors
+    // -----------------------------------------------------------------------
+    /** @name Hidden constructors */
+    //@{    
+    DOMImplementationLS() {};
+    //@}
+
+private:
+    // -----------------------------------------------------------------------
+    // Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    /** @name Unimplemented constructors and operators */
+    //@{
+    DOMImplementationLS(const DOMImplementationLS &);
+    DOMImplementationLS & operator = (const DOMImplementationLS &);
+    //@}
+
+public:
+    // -----------------------------------------------------------------------
+    //  All constructors are hidden, just the destructor is available
+    // -----------------------------------------------------------------------
+    /** @name Destructor */
+    //@{
+    /**
+     * Destructor
+     *
+     */
+    virtual ~DOMImplementationLS() {};
+    //@}
+
+    // -----------------------------------------------------------------------
+    //  Public constants
+    // -----------------------------------------------------------------------
+    /** @name Public constants */
+    //@{
+    /**
+     * Create a synchronous or an asynchronous <code>DOMBuilder</code>.
+     * @see createDOMBuilder(const short mode, const XMLCh* const schemaType)
+     * @since DOM Level 3
+     *
+     */
+    enum
+    {
+        MODE_SYNCHRONOUS = 1,
+        MODE_ASYNCHRONOUS = 2
+    };
+    //@}
+
+    // -----------------------------------------------------------------------
+    // Virtual DOMImplementation LS interface
+    // -----------------------------------------------------------------------
+    /** @name Functions introduced in DOM Level 3 */
+    //@{
+    // -----------------------------------------------------------------------
+    //  Factory create methods
+    // -----------------------------------------------------------------------
+    /**
+     * Create a new DOMBuilder. The newly constructed parser may then be
+     * configured by means of its setFeature method, and used to parse
+     * documents by means of its parse method.
+     *
+     * <p><b>"Experimental - subject to change"</b></p>
+     *
+     * @param mode The mode argument is either <code>MODE_SYNCHRONOUS</code> or
+     * <code>MODE_ASYNCHRONOUS</code>, if mode is <code>MODE_SYNCHRONOUS</code>
+     * then the <code>DOMBuilder</code> that is created will operate in
+     * synchronous mode, if it's <code>MODE_ASYNCHRONOUS</code> then the
+     * <code>DOMBuilder</code> that is created will operate in asynchronous
+     * mode.
+     * @param schemaType An absolute URI representing the type of the schema
+     * language used during the load of a DOMDocument using the newly created
+     * <code>DOMBuilder</code>. Note that no lexical checking is done on the
+     * absolute URI. In order to create a DOMBuilder for any kind of schema
+     * types (i.e. the DOMBuilder will be free to use any schema found), use
+     * the value <code>null</code>.
+     * @param manager    Pointer to the memory manager to be used to
+     *                   allocate objects.
+     * @param gramPool   The collection of cached grammers.
+     * @return The newly created <code>DOMBuilder</code> object. This
+     * <code>DOMBuilder</code> is either synchronous or asynchronous depending
+     * on the value of the <code>mode</code> argument.
+     * @exception DOMException NOT_SUPPORTED_ERR: Raised if the requested mode
+     * or schema type is not supported.
+     *
+     * @see DOMBuilder
+     * @since DOM Level 3
+     */
+    virtual DOMBuilder* createDOMBuilder(const short            mode,
+                                         const XMLCh* const     schemaType,
+                                         MemoryManager* const   manager = XMLPlatformUtils::fgMemoryManager,
+                                         XMLGrammarPool*  const gramPool = 0) = 0;
+
+
+    /**
+     * Create a new DOMWriter. DOMWriters are used to serialize a DOM tree
+     * back into an XML document.
+     *
+     * <p><b>"Experimental - subject to change"</b></p>
+     *
+     * @return The newly created <code>DOMWriter</code> object.
+     *
+     * @see DOMWriter
+     * @since DOM Level 3
+     */
+    virtual DOMWriter* createDOMWriter(MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager) = 0;
+
+    /**
+     * Create a new "empty" DOMInputSource.
+     *
+     * <p><b>"Experimental - subject to change"</b></p>
+     *
+     * @return The newly created <code>DOMInputSource</code> object.
+     * @exception DOMException NOT_SUPPORTED_ERR: Raised if this function is not
+     * supported by implementation
+     *
+     * @see DOMInputSource
+     * @since DOM Level 3
+     */
+    virtual DOMInputSource* createDOMInputSource() = 0;
+
+    //@}
+};
+
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/DOMErrorHandler.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/DOMErrorHandler.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/DOMErrorHandler.hpp	(revision 2674)
@@ -0,0 +1,109 @@
+#ifndef DOMErrorHandler_HEADER_GUARD_
+#define DOMErrorHandler_HEADER_GUARD_
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: DOMErrorHandler.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+#include <xercesc/util/XercesDefs.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+
+class DOMError;
+
+/**
+  * Basic interface for DOM error handlers.
+  *
+  * <p>DOMErrorHandler is a callback interface that the DOM implementation
+  * can call when reporting errors that happens while processing XML data, or
+  * when doing some other processing (e.g. validating a document).</p>
+  *
+  * <p>The application that is using the DOM implementation is expected to
+  * implement this interface.</p>
+  *
+  * @see DOMBuilder#setErrorHandler
+  * @since DOM Level 3
+  */
+
+class CDOM_EXPORT DOMErrorHandler
+{
+protected:
+    // -----------------------------------------------------------------------
+    //  Hidden constructors
+    // -----------------------------------------------------------------------
+    /** @name Hidden constructors */
+    //@{    
+    DOMErrorHandler() {};
+    //@}
+
+private:
+    // -----------------------------------------------------------------------
+    // Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    /** @name Unimplemented constructors and operators */
+    //@{
+    DOMErrorHandler(const DOMErrorHandler &);
+    DOMErrorHandler & operator = (const DOMErrorHandler &);
+    //@}
+
+public:
+    // -----------------------------------------------------------------------
+    //  All constructors are hidden, just the destructor is available
+    // -----------------------------------------------------------------------
+    /** @name Destructor */
+    //@{
+    /**
+     * Destructor
+     *
+     */
+    virtual ~DOMErrorHandler() {};
+    //@}
+
+    // -----------------------------------------------------------------------
+    //  Virtual DOMErrorHandler interface
+    // -----------------------------------------------------------------------
+    /** @name Functions introduced in DOM Level 3 */
+    //@{
+    /**
+     * This method is called on the error handler when an error occures.
+     *
+     * <p><b>"Experimental - subject to change"</b></p>
+     *
+     * @param domError The error object that describes the error, this object
+     *                 may be reused by the DOM implementation across multiple
+     *                 calls to the handleEvent method.
+     * @return If the handleError method returns <code>true</code> the DOM
+     *         implementation should continue as if the error didn't happen
+     *         when possible, if the method returns <code>false</code> then the
+     *         DOM implementation should stop the current processing when
+     *         possible.
+     *
+     * @since DOM Level 3
+     */
+    virtual bool handleError(const DOMError& domError) = 0;
+    //@}
+
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/DOMElement.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/DOMElement.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/DOMElement.hpp	(revision 2674)
@@ -0,0 +1,471 @@
+#ifndef DOMElement_HEADER_GUARD_
+#define DOMElement_HEADER_GUARD_
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: DOMElement.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#include <xercesc/util/XercesDefs.hpp>
+#include <xercesc/dom/DOMNode.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+
+class DOMAttr;
+class DOMNodeList;
+class DOMTypeInfo;
+
+
+/**
+ * By far the vast majority of objects (apart from text) that authors
+ * encounter when traversing a document are <code>DOMElement</code> nodes.
+ *
+ * Assume the following XML document:&lt;elementExample id="demo"&gt;
+ * &lt;subelement1/&gt;
+ * &lt;subelement2&gt;&lt;subsubelement/&gt;&lt;/subelement2&gt;
+ * &lt;/elementExample&gt;
+ * <p>When represented using DOM, the top node is an <code>DOMElement</code> node
+ * for "elementExample", which contains two child <code>DOMElement</code> nodes,
+ * one for "subelement1" and one for "subelement2". "subelement1" contains no
+ * child nodes.
+ * <p>Elements may have attributes associated with them; since the
+ * <code>DOMElement</code> interface inherits from <code>DOMNode</code>, the generic
+ *  <code>DOMNode</code> interface method <code>getAttributes</code> may be used
+ * to retrieve the set of all attributes for an element.  There are methods on
+ *  the <code>DOMElement</code> interface to retrieve either an <code>DOMAttr</code>
+ *  object by name or an attribute value by name. In XML, where an attribute
+ * value may contain entity references, an <code>DOMAttr</code> object should be
+ * retrieved to examine the possibly fairly complex sub-tree representing the
+ * attribute value. On the other hand, in HTML, where all attributes have
+ * simple string values, methods to directly access an attribute value can
+ * safely be used as a convenience.
+ *
+ * @since DOM Level 1
+ */
+
+class CDOM_EXPORT DOMElement: public DOMNode {
+protected:
+    // -----------------------------------------------------------------------
+    //  Hidden constructors
+    // -----------------------------------------------------------------------
+    /** @name Hidden constructors */
+    //@{    
+    DOMElement() {}
+    DOMElement(const DOMElement &other) : DOMNode(other) {}
+    //@}
+    
+private:
+    // -----------------------------------------------------------------------
+    // Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    /** @name Unimplemented operators */
+    //@{
+    DOMElement & operator = (const DOMElement &);
+    //@}
+
+public:
+    // -----------------------------------------------------------------------
+    //  All constructors are hidden, just the destructor is available
+    // -----------------------------------------------------------------------
+    /** @name Destructor */
+    //@{
+    /**
+     * Destructor
+     *
+     */
+    virtual ~DOMElement() {};
+    //@}
+
+    // -----------------------------------------------------------------------
+    //  Virtual DOMElement interface
+    // -----------------------------------------------------------------------
+    /** @name Functions introduced in DOM Level 1 */
+    //@{
+    // -----------------------------------------------------------------------
+    //  Getter methods
+    // -----------------------------------------------------------------------
+    /**
+     * The name of the element.
+     *
+     * For example, in: &lt;elementExample
+     * id="demo"&gt;  ... &lt;/elementExample&gt; , <code>tagName</code> has
+     * the value <code>"elementExample"</code>. Note that this is
+     * case-preserving in XML, as are all of the operations of the DOM.
+     * @since DOM Level 1
+     */
+    virtual const XMLCh *         getTagName() const = 0;
+
+    /**
+     * Retrieves an attribute value by name.
+     *
+     * @param name The name of the attribute to retrieve.
+     * @return The <code>DOMAttr</code> value as a string, or the empty  string if
+     *   that attribute does not have a specified or default value.
+     * @since DOM Level 1
+     */
+    virtual const XMLCh *         getAttribute(const XMLCh *name) const = 0;
+
+    /**
+     * Retrieves an <code>DOMAttr</code> node by name.
+     *
+     * @param name The name (<CODE>nodeName</CODE>) of the attribute to retrieve.
+     * @return The <code>DOMAttr</code> node with the specified name (<CODE>nodeName</CODE>) or
+     *   <code>null</code> if there is no such attribute.
+     * @since DOM Level 1
+     */
+    virtual DOMAttr       * getAttributeNode(const XMLCh *name) const = 0;
+
+    /**
+     * Returns a <code>DOMNodeList</code> of all descendant elements with a given
+     * tag name, in the order in which they would be encountered in a preorder
+     * traversal of the <code>DOMElement</code> tree.
+     *
+     * @param name The name of the tag to match on. The special value "*"
+     *   matches all tags.
+     * @return A list of matching <code>DOMElement</code> nodes.
+     * @since DOM Level 1
+     */
+    virtual DOMNodeList   * getElementsByTagName(const XMLCh *name) const = 0;
+
+    // -----------------------------------------------------------------------
+    //  Setter methods
+    // -----------------------------------------------------------------------
+    /**
+     * Adds a new attribute.
+     *
+     * If an attribute with that name is already present
+     * in the element, its value is changed to be that of the value parameter.
+     * This value is a simple string, it is not parsed as it is being set. So
+     * any markup (such as syntax to be recognized as an entity reference) is
+     * treated as literal text, and needs to be appropriately escaped by the
+     * implementation when it is written out. In order to assign an attribute
+     * value that contains entity references, the user must create an
+     * <code>DOMAttr</code> node plus any <code>DOMText</code> and
+     * <code>DOMEntityReference</code> nodes, build the appropriate subtree, and
+     * use <code>setAttributeNode</code> to assign it as the value of an
+     * attribute.
+     * @param name The name of the attribute to create or alter.
+     * @param value Value to set in string form.
+     * @exception DOMException
+     *   INVALID_CHARACTER_ERR: Raised if the specified name contains an
+     *   illegal character.
+     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
+     * @since DOM Level 1
+     */
+    virtual void             setAttribute(const XMLCh *name,
+                                  const XMLCh *value) = 0;
+    /**
+     * Adds a new attribute.
+     *
+     * If an attribute with that name (<CODE>nodeName</CODE>) is already present
+     * in the element, it is replaced by the new one.
+     * @param newAttr The <code>DOMAttr</code> node to add to the attribute list.
+     * @return If the <code>newAttr</code> attribute replaces an existing
+     *   attribute, the replaced
+     *   <code>DOMAttr</code> node is returned, otherwise <code>null</code> is
+     *   returned.
+     * @exception DOMException
+     *   WRONG_DOCUMENT_ERR: Raised if <code>newAttr</code> was created from a
+     *   different document than the one that created the element.
+     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
+     *   <br>INUSE_ATTRIBUTE_ERR: Raised if <code>newAttr</code> is already an
+     *   attribute of another <code>DOMElement</code> object. The DOM user must
+     *   explicitly clone <code>DOMAttr</code> nodes to re-use them in other
+     *   elements.
+     * @since DOM Level 1
+     */
+    virtual DOMAttr       * setAttributeNode(DOMAttr *newAttr) = 0;
+
+    /**
+     * Removes the specified attribute node.
+     * If the removed <CODE>DOMAttr</CODE>
+     *   has a default value it is immediately replaced. The replacing attribute
+     *   has the same namespace URI and local name, as well as the original prefix,
+     *   when applicable.
+     *
+     * @param oldAttr The <code>DOMAttr</code> node to remove from the attribute
+     *   list.
+     * @return The <code>DOMAttr</code> node that was removed.
+     * @exception DOMException
+     *   NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
+     *   <br>NOT_FOUND_ERR: Raised if <code>oldAttr</code> is not an attribute
+     *   of the element.
+     * @since DOM Level 1
+     */
+    virtual DOMAttr       * removeAttributeNode(DOMAttr *oldAttr) = 0;
+
+    /**
+     * Removes an attribute by name.
+     *
+     * If the removed attribute
+     *   is known to have a default value, an attribute immediately appears
+     *   containing the default value as well as the corresponding namespace URI,
+     *   local name, and prefix when applicable.<BR>To remove an attribute by local
+     *   name and namespace URI, use the <CODE>removeAttributeNS</CODE> method.
+     * @param name The name of the attribute to remove.
+     * @exception DOMException
+     *   NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
+     * @since DOM Level 1
+     */
+    virtual void              removeAttribute(const XMLCh *name) = 0;
+    //@}
+
+    /** @name Functions introduced in DOM Level 2. */
+    //@{
+    /**
+     * Retrieves an attribute value by local name and namespace URI.
+     *
+     * @param namespaceURI The <em>namespace URI</em> of
+     *    the attribute to retrieve.
+     * @param localName The <em>local name</em> of the
+     *    attribute to retrieve.
+     * @return The <code>DOMAttr</code> value as a string, or an <CODE>null</CODE> if
+     *    that attribute does not have a specified or default value.
+     * @since DOM Level 2
+     */
+    virtual const XMLCh *         getAttributeNS(const XMLCh *namespaceURI,
+                                                 const XMLCh *localName) const = 0;
+
+    /**
+     * Adds a new attribute. If an attribute with the same
+     * local name and namespace URI is already present on the element, its prefix
+     * is changed to be the prefix part of the <CODE>qualifiedName</CODE>, and
+     * its value is changed to be the <CODE>value</CODE> parameter. This value is
+     * a simple string, it is not parsed as it is being set. So any markup (such
+     * as syntax to be recognized as an entity reference) is treated as literal
+     * text, and needs to be appropriately escaped by the implementation when it
+     * is written out. In order to assign an attribute value that contains entity
+     * references, the user must create an <CODE>DOMAttr</CODE>
+     * node plus any <CODE>DOMText</CODE> and <CODE>DOMEntityReference</CODE>
+     * nodes, build the appropriate subtree, and use
+     * <CODE>setAttributeNodeNS</CODE> or <CODE>setAttributeNode</CODE> to assign
+     * it as the value of an attribute.
+     *
+     * @param namespaceURI The <em>namespace URI</em> of
+     *    the attribute to create or alter.
+     * @param qualifiedName The <em>qualified name</em> of the
+     *    attribute to create or alter.
+     * @param value The value to set in string form.
+     * @exception DOMException
+     *   INVALID_CHARACTER_ERR: Raised if the specified qualified name contains an
+     *   illegal character.
+     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
+     * <br>
+     *   NAMESPACE_ERR: Raised if the <CODE>qualifiedName</CODE> is
+     *        malformed, if the <CODE>qualifiedName</CODE> has a prefix and the
+     *        <CODE>namespaceURI</CODE> is <CODE>null</CODE> or an empty string,
+     *        if the <CODE>qualifiedName</CODE> has a prefix that is "xml" and the
+     *        <CODE>namespaceURI</CODE> is different from
+     *        "http://www.w3.org/XML/1998/namespace", if the
+     *        <CODE>qualifiedName</CODE> has a prefix that is "xmlns" and the
+     *        <CODE>namespaceURI</CODE> is different from
+     *        "http://www.w3.org/2000/xmlns/", or if the
+     *        <CODE>qualifiedName</CODE> is "xmlns" and the
+     *        <CODE>namespaceURI</CODE> is different from
+     *        "http://www.w3.org/2000/xmlns/".
+     * @since DOM Level 2
+     */
+    virtual void             setAttributeNS(const XMLCh *namespaceURI,
+                                            const XMLCh *qualifiedName, const XMLCh *value) = 0;
+
+    /**
+     * Removes an attribute by local name and namespace URI. If the
+     * removed attribute has a default value it is immediately replaced.
+     * The replacing attribute has the same namespace URI and local name, as well as
+     * the original prefix.
+     *
+     * @param namespaceURI The <em>namespace URI</em> of
+     *    the attribute to remove.
+     * @param localName The <em>local name</em> of the
+     *    attribute to remove.
+     * @exception DOMException
+     *   NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
+     * @since DOM Level 2
+     */
+    virtual void              removeAttributeNS(const XMLCh *namespaceURI,
+                                                const XMLCh *localName) = 0;
+
+    /**
+     * Retrieves an <code>DOMAttr</code> node by local name and namespace URI.
+     *
+     * @param namespaceURI The <em>namespace URI</em> of
+     *    the attribute to retrieve.
+     * @param localName The <em>local name</em> of the
+     *    attribute to retrieve.
+     * @return The <code>DOMAttr</code> node with the specified attribute local
+     *    name and namespace URI or <code>null</code> if there is no such attribute.
+     * @since DOM Level 2
+     */
+    virtual DOMAttr      *  getAttributeNodeNS(const XMLCh *namespaceURI,
+                                               const XMLCh *localName) const = 0;
+
+    /**
+     * Adds a new attribute.
+     *
+     * If an attribute with that local name and namespace URI is already present
+     * in the element, it is replaced by the new one.
+     *
+     * @param newAttr The <code>DOMAttr</code> node to add to the attribute list.
+     * @return If the <code>newAttr</code> attribute replaces an existing
+     *    attribute with the same <em>local name</em> and <em>namespace URI</em>,
+     *    the replaced <code>DOMAttr</code> node is
+     *    returned, otherwise <code>null</code> is returned.
+     * @exception DOMException
+     *   WRONG_DOCUMENT_ERR: Raised if <code>newAttr</code> was created from a
+     *   different document than the one that created the element.
+     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
+     *   <br>INUSE_ATTRIBUTE_ERR: Raised if <code>newAttr</code> is already an
+     *   attribute of another <code>DOMElement</code> object. The DOM user must
+     *   explicitly clone <code>DOMAttr</code> nodes to re-use them in other
+     *   elements.
+     * @since DOM Level 2
+     */
+    virtual DOMAttr      *  setAttributeNodeNS(DOMAttr *newAttr) = 0;
+
+    /**
+     * Returns a <code>DOMNodeList</code> of all the <code>DOMElement</code>s
+     * with a given local name and namespace URI in the order in which they
+     * would be encountered in a preorder traversal of the
+     * <code>DOMDocument</code> tree, starting from this node.
+     *
+     * @param namespaceURI The <em>namespace URI</em> of
+     *    the elements to match on. The special value "*" matches all
+     *    namespaces.
+     * @param localName The <em>local name</em> of the
+     *    elements to match on. The special value "*" matches all local names.
+     * @return A new <code>DOMNodeList</code> object containing all the matched
+     *    <code>DOMElement</code>s.
+     * @since DOM Level 2
+     */
+    virtual DOMNodeList   * getElementsByTagNameNS(const XMLCh *namespaceURI,
+                                                   const XMLCh *localName) const = 0;
+
+    /**
+     * Returns <code>true</code> when an attribute with a given name is
+     * specified on this element or has a default value, <code>false</code>
+     * otherwise.
+     * @param name The name of the attribute to look for.
+     * @return <code>true</code> if an attribute with the given name is
+     *   specified on this element or has a default value, <code>false</code>
+     *    otherwise.
+     * @since DOM Level 2
+     */
+    virtual bool         hasAttribute(const XMLCh *name) const = 0;
+
+    /**
+     * Returns <code>true</code> when an attribute with a given local name and
+     * namespace URI is specified on this element or has a default value,
+     * <code>false</code> otherwise. HTML-only DOM implementations do not
+     * need to implement this method.
+     * @param namespaceURI The namespace URI of the attribute to look for.
+     * @param localName The local name of the attribute to look for.
+     * @return <code>true</code> if an attribute with the given local name
+     *   and namespace URI is specified or has a default value on this
+     *   element, <code>false</code> otherwise.
+     * @since DOM Level 2
+     */
+    virtual bool         hasAttributeNS(const XMLCh *namespaceURI,
+                                        const XMLCh *localName) const = 0;
+    //@}
+
+    /** @name Functions introduced in DOM Level 3 */
+    //@{
+
+    /**
+     * Declares the <code>DOMAttr</code> specified by name to be of type ID. If the
+     * value of the specified <code>DOMAttr</code> is unique then this element node
+     * can later be retrieved using getElementById on Document. Note, however,
+     * that this simply affects this node and does not change any grammar that
+     * may be in use.
+     * To specify an <code>DOMAttr</code> by local name and namespace URI, use the
+     * setIdAttributeNS method.
+     * @param name The name of the <code>DOMAttr</code>.
+     * @exception DOMException
+     *    NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
+     *    <br />NOT_FOUND_ERR: Raised if the specified node is not an <code>DOMAttr</code>
+     * of this element.
+     *
+     * <p><b>"Experimental - subject to change"</b></p>
+     *
+     * @since DOM Level 3
+     */
+    virtual void setIdAttribute(const XMLCh* name) = 0;
+
+
+    /**
+     * Declares the <code>DOMAttr</code> specified by local name and namespace
+     * URI to be of type ID. If the value of the specified <code>DOMAttr</code>
+     * is unique then this <code>DOMElement</code> node can later be retrieved
+     * using getElementById on <code>DOMDocument</code>. Note, however, that
+     * this simply affects this node and does not change any grammar that may
+     * be in use.
+     * @param namespaceURI The namespace URI of the <code>DOMAttr</code>.
+     * @param localName The local name of the <code>DOMAttr</code>.
+     * @exception  DOMException
+     *   NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
+     *   <br />NOT_FOUND_ERR: Raised if the specified node is not an <code>DOMAttr</code> of this element.
+     *
+     * <p><b>"Experimental - subject to change"</b></p>
+     *
+     * @since DOM Level 3
+     */
+    virtual void setIdAttributeNS(const XMLCh* namespaceURI, const XMLCh* localName) = 0;
+
+
+
+    /**
+     * Declares the <code>DOMAttr</code> specified by node to be of type ID.
+     * If the value of the specified <code>DOMAttr</code> is unique then this
+     * <code>DOMElement</code> node can later be retrieved using getElementById
+     * on <code>DOMDocument</code>. Note, however, that this simply affects this
+     * node and does not change any grammar that may be in use.
+     * @param idAttr The <code>DOMAttr</code> node.
+     * @exception  DOMException
+     *   NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
+     *   <br />NOT_FOUND_ERR: Raised if the specified node is not an <code>DOMAttr</code> of this element.
+     *
+     * <p><b>"Experimental - subject to change"</b></p>
+     *
+     * @since DOM Level 3
+     */
+    virtual void setIdAttributeNode(const DOMAttr *idAttr) = 0;
+
+
+
+    /**
+     * Returns the type information associated with this element.
+     *
+     * <p><b>"Experimental - subject to change"</b></p>
+     *
+     * @return the <code>DOMTypeInfo</code> associated with this element
+     * @since DOM level 3
+     */
+    virtual const DOMTypeInfo* getTypeInfo() const = 0;
+
+    //@}
+
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
+
+
+
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/DOMError.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/DOMError.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/DOMError.hpp	(revision 2674)
@@ -0,0 +1,253 @@
+#ifndef DOMError_HEADER_GUARD_
+#define DOMError_HEADER_GUARD_
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: DOMError.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+#include <xercesc/util/XercesDefs.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class DOMLocator;
+
+
+/**
+  * DOMError is an interface that describes an error.
+  *
+  * @see DOMErrorHandler#handleError
+  * @since DOM Level 3
+  */
+
+class CDOM_EXPORT DOMError
+{
+protected:
+    // -----------------------------------------------------------------------
+    //  Hidden constructors
+    // -----------------------------------------------------------------------
+    /** @name Hidden constructors */
+    //@{    
+    DOMError() {};
+    //@}
+
+private:
+    // -----------------------------------------------------------------------
+    // Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    /** @name Unimplemented constructors and operators */
+    //@{
+    DOMError(const DOMError &);
+    DOMError & operator = (const DOMError &);
+    //@}
+
+public:
+    // -----------------------------------------------------------------------
+    //  All constructors are hidden, just the destructor is available
+    // -----------------------------------------------------------------------
+    /** @name Destructor */
+    //@{
+    /**
+     * Destructor
+     *
+     */
+    virtual ~DOMError() {};
+    //@}
+
+    // -----------------------------------------------------------------------
+    //  Class types
+    // -----------------------------------------------------------------------
+    /** @name Public constants */
+    //@{
+    /**
+     * The severity of the error described by the <code>DOMError</code>.
+     *
+     * @since DOM Level 3
+     */
+    enum ErrorSeverity
+    {
+        DOM_SEVERITY_WARNING     = 0,
+        DOM_SEVERITY_ERROR       = 1,
+        DOM_SEVERITY_FATAL_ERROR = 2
+    };
+    //@}
+
+
+    // -----------------------------------------------------------------------
+    //  Virtual DOMError interface
+    // -----------------------------------------------------------------------
+    /** @name Functions introduced in DOM Level 3 */
+    //@{
+    // -----------------------------------------------------------------------
+    //  Getter methods
+    // -----------------------------------------------------------------------
+    /**
+     * Get the severity of the error
+     *
+     * <p><b>"Experimental - subject to change"</b></p>
+     *
+     * @see   setSeverity
+     * @since DOM Level 3
+     */
+    virtual short getSeverity() const = 0;
+
+    /**
+     * Get the message describing the error that occured.
+     *
+     * <p><b>"Experimental - subject to change"</b></p>
+     *
+     * @see   setMessage
+     * @since DOM Level 3
+     */
+    virtual const XMLCh* getMessage() const = 0;
+
+    /**
+     * Get the location of the error
+     *
+     * <p><b>"Experimental - subject to change"</b></p>
+     *
+     * @see   setLocation
+     * @since DOM Level 3
+     */
+    virtual DOMLocator* getLocation() const = 0;
+
+    /**
+     * The related platform dependent exception if any.
+     *
+     * <p><b>"Experimental - subject to change"</b></p>
+     *
+     * @see   setRelatedException
+     * @since DOM Level 3
+     */
+    virtual void* getRelatedException() const = 0;
+
+    /**
+     * A <code>XMLCh*</code> indicating which related data is expected in 
+     * relatedData. Users should refer to the specification of the error
+     * in order to find its <code>XMLCh*</code> type and relatedData
+     * definitions if any.
+     *
+     * Note: As an example, [DOM Level 3 Load and Save] does not keep the
+     * [baseURI] property defined on a Processing Instruction information item.
+     * Therefore, the DOMBuilder generates a SEVERITY_WARNING with type 
+     * "infoset-baseURI" and the lost [baseURI] property represented as a
+     * DOMString in the relatedData attribute.
+     *
+     * <p><b>"Experimental - subject to change"</b></p>
+     *
+     * @see   setType
+     * @since DOM Level 3
+     */
+    virtual const XMLCh* getType() const = 0;
+
+    /**
+     * The related DOMError.type dependent data if any.
+     *
+     * <p><b>"Experimental - subject to change"</b></p>
+     *
+     * @see   setRelatedData
+     * @since DOM Level 3
+     */
+    virtual void* getRelatedData() const = 0;
+
+
+    // -----------------------------------------------------------------------
+    //  Setter methods
+    // -----------------------------------------------------------------------
+    /**
+     * Set the severity of the error
+     *
+     * <p><b>"Experimental - subject to change"</b></p>
+     *
+     * @param severity the type of the error to set
+     * @see   getLocation
+     * @since DOM Level 3
+     */
+    virtual void setSeverity(const short severity) = 0;
+
+    /**
+     * Set the error message
+     *
+     * <p><b>"Experimental - subject to change"</b></p>
+     *
+     * @param message the error message to set.
+     * @see   getMessage
+     * @since DOM Level 3
+     */
+    virtual void setMessage(const XMLCh* const message) = 0;
+
+    /**
+     * Set the location of the error
+     *
+     * <p><b>"Experimental - subject to change"</b></p>
+     *
+     * @param location the location of the error to set.
+     * @see   getLocation
+     * @since DOM Level 3
+     */
+    virtual void setLocation(DOMLocator* const location) = 0;
+
+    /**
+     * The related platform dependent exception if any.
+     *
+     * <p><b>"Experimental - subject to change"</b></p>
+     *
+     * @param exc the related exception to set.
+     * @see   getRelatedException
+     * @since DOM Level 3
+     */
+    virtual void setRelatedException(void* exc) const = 0;
+
+    /**
+     * A <code>XMLCh*</code> indicating which related data is expected in 
+     * relatedData. Users should refer to the specification of the error
+     * in order to find its <code>XMLCh*</code> type and relatedData
+     * definitions if any.
+     *
+     * Note: As an example, [DOM Level 3 Load and Save] does not keep the
+     * [baseURI] property defined on a Processing Instruction information item.
+     * Therefore, the DOMBuilder generates a SEVERITY_WARNING with type 
+     * "infoset-baseURI" and the lost [baseURI] property represented as a
+     * DOMString in the relatedData attribute.
+     *
+     * <p><b>"Experimental - subject to change"</b></p>
+     *
+     * @see   getType
+     * @since DOM Level 3
+     */
+    virtual void setType(const XMLCh* type) = 0;
+
+    /**
+     * The related DOMError.type dependent data if any.
+     *
+     * <p><b>"Experimental - subject to change"</b></p>
+     *
+     * @see   getRelatedData
+     * @since DOM Level 3
+     */
+    virtual void setRelatedData(void* relatedData) = 0;
+
+    //@}
+
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/DOMNotation.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/DOMNotation.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/DOMNotation.hpp	(revision 2674)
@@ -0,0 +1,114 @@
+#ifndef DOMNotation_HEADER_GUARD_
+#define DOMNotation_HEADER_GUARD_
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: DOMNotation.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#include <xercesc/util/XercesDefs.hpp>
+#include <xercesc/dom/DOMNode.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+
+/**
+ * This interface represents a notation declared in the DTD. A notation either
+ * declares, by name, the format of an unparsed entity (see section 4.7 of
+ * the XML 1.0 specification), or is used for formal declaration of
+ * Processing Instruction targets (see section 2.6 of the XML 1.0
+ * specification). The <code>nodeName</code> attribute inherited from
+ * <code>DOMNode</code> is set to the declared name of the notation.
+ * <p>The DOM Level 1 does not support editing <code>DOMNotation</code> nodes;
+ * they are therefore readonly.
+ * <p>A <code>DOMNotation</code> node does not have any parent.
+ *
+ * @since DOM Level 1
+ */
+class CDOM_EXPORT DOMNotation: public DOMNode {
+protected:
+    // -----------------------------------------------------------------------
+    //  Hidden constructors
+    // -----------------------------------------------------------------------
+    /** @name Hidden constructors */
+    //@{    
+    DOMNotation() {}
+    DOMNotation(const DOMNotation &other) : DOMNode(other) {}
+    //@}
+
+private:
+    // -----------------------------------------------------------------------
+    // Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    /** @name Unimplemented operators */
+    //@{
+    DOMNotation & operator = (const DOMNotation &);
+    //@}
+
+public:
+    // -----------------------------------------------------------------------
+    //  All constructors are hidden, just the destructor is available
+    // -----------------------------------------------------------------------
+    /** @name Destructor */
+    //@{
+    /**
+     * Destructor
+     *
+     */
+    virtual ~DOMNotation() {};
+    //@}
+
+
+    // -----------------------------------------------------------------------
+    //  Virtual DOMNotation interface
+    // -----------------------------------------------------------------------
+    /** @name Functions introduced in DOM Level 1 */
+    //@{
+    // -----------------------------------------------------------------------
+    //  Getter methods
+    // -----------------------------------------------------------------------
+    /**
+     * Get the public identifier of this notation.
+     *
+     * If the  public identifier was not
+     * specified, this is <code>null</code>.
+     * @return Returns the public identifier of the notation
+     * @since DOM Level 1
+     */
+    virtual const XMLCh *getPublicId() const = 0;
+
+    /**
+     * Get the system identifier of this notation.
+     *
+     * If the  system identifier was not
+     * specified, this is <code>null</code>.
+     * @return Returns the system identifier of the notation
+     * @since DOM Level 1
+     */
+    virtual const XMLCh *getSystemId() const = 0;
+
+
+    //@}
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
+
+
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/DOMRange.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/DOMRange.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/DOMRange.hpp	(revision 2674)
@@ -0,0 +1,530 @@
+#ifndef DOMRange_HEADER_GUARD_
+#define DOMRange_HEADER_GUARD_
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: DOMRange.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#include <xercesc/util/XercesDefs.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class DOMNode;
+class DOMDocumentFragment;
+
+/**
+ * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Traversal-Range-20001113'>Document Object Model (DOM) Level 2 Traversal and Range Specification</a>.
+ * @since DOM Level 2
+ */
+class CDOM_EXPORT DOMRange {
+protected:
+    // -----------------------------------------------------------------------
+    //  Hidden constructors
+    // -----------------------------------------------------------------------
+    /** @name Hidden constructors */
+    //@{    
+    DOMRange() {}
+    DOMRange(const DOMRange &) {}
+    //@}
+
+private:
+    // -----------------------------------------------------------------------
+    // Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    /** @name Unimplemented operators */
+    //@{
+    DOMRange & operator = (const DOMRange &);
+    //@}
+
+public:
+    // -----------------------------------------------------------------------
+    //  All constructors are hidden, just the destructor is available
+    // -----------------------------------------------------------------------
+    /** @name Destructor */
+    //@{
+    /**
+     * Destructor
+     *
+     */
+    virtual ~DOMRange() {};
+    //@}
+
+    // -----------------------------------------------------------------------
+    //  Class Types
+    // -----------------------------------------------------------------------
+    /** @name Public Contants */
+    //@{
+    /**
+     * Constants CompareHow.
+     *
+     * <p><code>START_TO_START:</code>
+     * Compare start boundary-point of <code>sourceRange</code> to start
+     * boundary-point of Range on which <code>compareBoundaryPoints</code>
+     * is invoked.</p>
+     *
+     * <p><code>START_TO_END:</code>
+     * Compare start boundary-point of <code>sourceRange</code> to end
+     * boundary-point of Range on which <code>compareBoundaryPoints</code>
+     * is invoked.</p>
+     *
+     * <p><code>END_TO_END:</code>
+     * Compare end boundary-point of <code>sourceRange</code> to end
+     * boundary-point of Range on which <code>compareBoundaryPoints</code>
+     * is invoked.</p>
+     *
+     * <p><code>END_TO_START:</code>
+     * Compare end boundary-point of <code>sourceRange</code> to start
+     * boundary-point of Range on which <code>compareBoundaryPoints</code>
+     * is invoked.</p>
+     *
+     * @since DOM Level 2
+     */
+    enum CompareHow {
+        START_TO_START  = 0,
+        START_TO_END    = 1,
+        END_TO_END      = 2,
+        END_TO_START    = 3
+    };
+
+    //@}
+
+    // -----------------------------------------------------------------------
+    //  Virtual DOMRange interface
+    // -----------------------------------------------------------------------
+    /** @name Functions introduced in DOM Level 2 */
+    //@{
+    // -----------------------------------------------------------------------
+    //  Getter methods
+    // -----------------------------------------------------------------------
+    /**
+     * DOMNode within which the Range begins
+     * @exception DOMException
+     *   INVALID_STATE_ERR: Raised if <code>detach()</code> has already been
+     *   invoked on this object.
+     *
+     * @since DOM Level 2
+     */
+    virtual DOMNode* getStartContainer() const = 0;
+
+    /**
+     * Offset within the starting node of the Range.
+     * @exception DOMException
+     *   INVALID_STATE_ERR: Raised if <code>detach()</code> has already been
+     *   invoked on this object.
+     *
+     * @since DOM Level 2
+     */
+    virtual XMLSize_t getStartOffset() const = 0;
+
+    /**
+     * DOMNode within which the Range ends
+     * @exception DOMException
+     *   INVALID_STATE_ERR: Raised if <code>detach()</code> has already been
+     *   invoked on this object.
+     *
+     * @since DOM Level 2
+     */
+    virtual DOMNode* getEndContainer() const = 0;
+
+    /**
+     * Offset within the ending node of the Range.
+     * @exception DOMException
+     *   INVALID_STATE_ERR: Raised if <code>detach()</code> has already been
+     *   invoked on this object.
+     *
+     * @since DOM Level 2
+     */
+    virtual XMLSize_t getEndOffset() const = 0;
+
+    /**
+     * TRUE if the Range is collapsed
+     * @exception DOMException
+     *   INVALID_STATE_ERR: Raised if <code>detach()</code> has already been
+     *   invoked on this object.
+     *
+     * @since DOM Level 2
+     */
+    virtual bool getCollapsed() const = 0;
+
+    /**
+     * The deepest common ancestor container of the Range's two
+     * boundary-points.
+     * @exception DOMException
+     *   INVALID_STATE_ERR: Raised if <code>detach()</code> has already been
+     *   invoked on this object.
+     *
+     * @since DOM Level 2
+     */
+    virtual const DOMNode* getCommonAncestorContainer() const = 0;
+
+    // -----------------------------------------------------------------------
+    //  Setter methods
+    // -----------------------------------------------------------------------
+    /**
+     * Sets the attributes describing the start of the Range.
+     * @param refNode The <code>refNode</code> value. This parameter must be
+     *   different from <code>null</code>.
+     * @param offset The <code>startOffset</code> value.
+     * @exception DOMRangeException
+     *   INVALID_NODE_TYPE_ERR: Raised if <code>refNode</code> or an ancestor
+     *   of <code>refNode</code> is an DOMEntity, DOMNotation, or DOMDocumentType
+     *   node.
+     * @exception DOMException
+     *   INDEX_SIZE_ERR: Raised if <code>offset</code> is negative or greater
+     *   than the number of child units in <code>refNode</code>. Child units
+     *   are 16-bit units if <code>refNode</code> is a type of DOMCharacterData
+     *   node (e.g., a DOMText or DOMComment node) or a DOMProcessingInstruction
+     *   node. Child units are Nodes in all other cases.
+     *   <br>INVALID_STATE_ERR: Raised if <code>detach()</code> has already
+     *   been invoked on this object.
+     *   <br>WRONG_DOCUMENT_ERR: Raised if <code>refNode</code> was created
+     *   from a different document than the one that created this range.
+     *
+     * @since DOM Level 2
+     */
+    virtual void setStart(const DOMNode *refNode, XMLSize_t offset) = 0;
+
+    /**
+     * Sets the attributes describing the end of a Range.
+     * @param refNode The <code>refNode</code> value. This parameter must be
+     *   different from <code>null</code>.
+     * @param offset The <code>endOffset</code> value.
+     * @exception DOMRangeException
+     *   INVALID_NODE_TYPE_ERR: Raised if <code>refNode</code> or an ancestor
+     *   of <code>refNode</code> is an DOMEntity, DOMNotation, or DOMDocumentType
+     *   node.
+     * @exception DOMException
+     *   INDEX_SIZE_ERR: Raised if <code>offset</code> is negative or greater
+     *   than the number of child units in <code>refNode</code>. Child units
+     *   are 16-bit units if <code>refNode</code> is a type of DOMCharacterData
+     *   node (e.g., a DOMText or DOMComment node) or a DOMProcessingInstruction
+     *   node. Child units are Nodes in all other cases.
+     *   <br>INVALID_STATE_ERR: Raised if <code>detach()</code> has already
+     *   been invoked on this object.
+     *   <br>WRONG_DOCUMENT_ERR: Raised if <code>refNode</code> was created
+     *   from a different document than the one that created this range.
+     *
+     * @since DOM Level 2
+     */
+    virtual void setEnd(const DOMNode *refNode, XMLSize_t offset) = 0;
+
+    /**
+     * Sets the start position to be before a node
+     * @param refNode Range starts before <code>refNode</code>
+     * @exception DOMRangeException
+     *   INVALID_NODE_TYPE_ERR: Raised if the root container of
+     *   <code>refNode</code> is not an DOMAttr, DOMDocument, or DOMDocumentFragment
+     *   node or if <code>refNode</code> is a DOMDocument, DOMDocumentFragment,
+     *   DOMAttr, DOMEntity, or DOMNotation node.
+     * @exception DOMException
+     *   INVALID_STATE_ERR: Raised if <code>detach()</code> has already been
+     *   invoked on this object.
+     *   <br>WRONG_DOCUMENT_ERR: Raised if <code>refNode</code> was created
+     *   from a different document than the one that created this range.
+     *
+     * @since DOM Level 2
+     */
+    virtual void setStartBefore(const DOMNode *refNode) = 0;
+
+    /**
+     * Sets the start position to be after a node
+     * @param refNode Range starts after <code>refNode</code>
+     * @exception DOMRangeException
+     *   INVALID_NODE_TYPE_ERR: Raised if the root container of
+     *   <code>refNode</code> is not an DOMAttr, DOMDocument, or DOMDocumentFragment
+     *   node or if <code>refNode</code> is a DOMDocument, DOMDocumentFragment,
+     *   DOMAttr, DOMEntity, or DOMNotation node.
+     * @exception DOMException
+     *   INVALID_STATE_ERR: Raised if <code>detach()</code> has already been
+     *   invoked on this object.
+     *   <br>WRONG_DOCUMENT_ERR: Raised if <code>refNode</code> was created
+     *   from a different document than the one that created this range.
+     *
+     * @since DOM Level 2
+     */
+    virtual void setStartAfter(const DOMNode *refNode) = 0;
+
+    /**
+     * Sets the end position to be before a node.
+     * @param refNode Range ends before <code>refNode</code>
+     * @exception DOMRangeException
+     *   INVALID_NODE_TYPE_ERR: Raised if the root container of
+     *   <code>refNode</code> is not an DOMAttr, DOMDocument, or DOMDocumentFragment
+     *   node or if <code>refNode</code> is a DOMDocument, DOMDocumentFragment,
+     *   DOMAttr, DOMEntity, or DOMNotation node.
+     * @exception DOMException
+     *   INVALID_STATE_ERR: Raised if <code>detach()</code> has already been
+     *   invoked on this object.
+     *   <br>WRONG_DOCUMENT_ERR: Raised if <code>refNode</code> was created
+     *   from a different document than the one that created this range.
+     *
+     * @since DOM Level 2
+     */
+    virtual void setEndBefore(const DOMNode *refNode) = 0;
+
+    /**
+     * Sets the end of a Range to be after a node
+     * @param refNode Range ends after <code>refNode</code>.
+     * @exception DOMRangeException
+     *   INVALID_NODE_TYPE_ERR: Raised if the root container of
+     *   <code>refNode</code> is not a DOMAttr, DOMDocument or DOMDocumentFragment
+     *   node or if <code>refNode</code> is a DOMDocument, DOMDocumentFragment,
+     *   DOMAttr, DOMEntity, or DOMNotation node.
+     * @exception DOMException
+     *   INVALID_STATE_ERR: Raised if <code>detach()</code> has already been
+     *   invoked on this object.
+     *   <br>WRONG_DOCUMENT_ERR: Raised if <code>refNode</code> was created
+     *   from a different document than the one that created this range.
+     *
+     * @since DOM Level 2
+     */
+    virtual void setEndAfter(const DOMNode *refNode) = 0;
+
+    // -----------------------------------------------------------------------
+    //  Misc methods
+    // -----------------------------------------------------------------------
+    /**
+     * Collapse a Range onto one of its boundary-points
+     * @param toStart If TRUE, collapses the Range onto its start; if FALSE,
+     *   collapses it onto its end.
+     * @exception DOMException
+     *   INVALID_STATE_ERR: Raised if <code>detach()</code> has already been
+     *   invoked on this object.
+     *
+     * @since DOM Level 2
+     */
+    virtual void collapse(bool toStart) = 0;
+
+    /**
+     * Select a node and its contents
+     * @param refNode The node to select.
+     * @exception DOMRangeException
+     *   INVALID_NODE_TYPE_ERR: Raised if an ancestor of <code>refNode</code>
+     *   is an DOMEntity, DOMNotation or DOMDocumentType node or if
+     *   <code>refNode</code> is a DOMDocument, DOMDocumentFragment, DOMAttr, DOMEntity,
+     *   or DOMNotation node.
+     * @exception DOMException
+     *   INVALID_STATE_ERR: Raised if <code>detach()</code> has already been
+     *   invoked on this object.
+     *   <br>WRONG_DOCUMENT_ERR: Raised if <code>refNode</code> was created
+     *   from a different document than the one that created this range.
+     *
+     * @since DOM Level 2
+     */
+    virtual void selectNode(const DOMNode *refNode) = 0;
+
+    /**
+     * Select the contents within a node
+     * @param refNode DOMNode to select from
+     * @exception DOMRangeException
+     *   INVALID_NODE_TYPE_ERR: Raised if <code>refNode</code> or an ancestor
+     *   of <code>refNode</code> is an DOMEntity, DOMNotation or DOMDocumentType node.
+     * @exception DOMException
+     *   INVALID_STATE_ERR: Raised if <code>detach()</code> has already been
+     *   invoked on this object.
+     *   <br>WRONG_DOCUMENT_ERR: Raised if <code>refNode</code> was created
+     *   from a different document than the one that created this range.
+     *
+     * @since DOM Level 2
+     */
+    virtual void selectNodeContents(const DOMNode *refNode) = 0;
+
+    /**
+     * Compare the boundary-points of two Ranges in a document.
+     * @param how A code representing the type of comparison, as defined
+     *   above.
+     * @param sourceRange The <code>Range</code> on which this current
+     *   <code>Range</code> is compared to.
+     * @return  -1, 0 or 1 depending on whether the corresponding
+     *   boundary-point of the Range is respectively before, equal to, or
+     *   after the corresponding boundary-point of <code>sourceRange</code>.
+     * @exception DOMException
+     *   WRONG_DOCUMENT_ERR: Raised if the two Ranges are not in the same
+     *   DOMDocument or DOMDocumentFragment.
+     *   <br>INVALID_STATE_ERR: Raised if <code>detach()</code> has already
+     *   been invoked on this object.
+     *
+     * @since DOM Level 2
+     */
+    virtual short compareBoundaryPoints(CompareHow how, const DOMRange* sourceRange) const = 0;
+
+    /**
+     * Removes the contents of a Range from the containing document or
+     * document fragment without returning a reference to the removed
+     * content.
+     * @exception DOMException
+     *   NO_MODIFICATION_ALLOWED_ERR: Raised if any portion of the content of
+     *   the Range is read-only or any of the nodes that contain any of the
+     *   content of the Range are read-only.
+     *   <br>INVALID_STATE_ERR: Raised if <code>detach()</code> has already
+     *   been invoked on this object.
+     *
+     * @since DOM Level 2
+     */
+    virtual void deleteContents() = 0;
+
+    /**
+     * Moves the contents of a Range from the containing document or document
+     * fragment to a new DOMDocumentFragment.
+     * @return A DOMDocumentFragment containing the extracted contents.
+     * @exception DOMException
+     *   NO_MODIFICATION_ALLOWED_ERR: Raised if any portion of the content of
+     *   the Range is read-only or any of the nodes which contain any of the
+     *   content of the Range are read-only.
+     *   <br>HIERARCHY_REQUEST_ERR: Raised if a DOMDocumentType node would be
+     *   extracted into the new DOMDocumentFragment.
+     *   <br>INVALID_STATE_ERR: Raised if <code>detach()</code> has already
+     *   been invoked on this object.
+     *
+     * @since DOM Level 2
+     */
+    virtual DOMDocumentFragment* extractContents() = 0;
+
+    /**
+     * Duplicates the contents of a Range
+     * @return A DOMDocumentFragment that contains content equivalent to this
+     *   Range.
+     * @exception DOMException
+     *   HIERARCHY_REQUEST_ERR: Raised if a DOMDocumentType node would be
+     *   extracted into the new DOMDocumentFragment.
+     *   <br>INVALID_STATE_ERR: Raised if <code>detach()</code> has already
+     *   been invoked on this object.
+     *
+     * @since DOM Level 2
+     */
+    virtual DOMDocumentFragment* cloneContents() const = 0;
+
+    /**
+     * Inserts a node into the DOMDocument or DOMDocumentFragment at the start of
+     * the Range. If the container is a DOMText node, this will be split at the
+     * start of the Range (as if the DOMText node's splitText method was
+     * performed at the insertion point) and the insertion will occur
+     * between the two resulting DOMText nodes. Adjacent DOMText nodes will not be
+     * automatically merged. If the node to be inserted is a
+     * DOMDocumentFragment node, the children will be inserted rather than the
+     * DOMDocumentFragment node itself.
+     * @param newNode The node to insert at the start of the Range
+     * @exception DOMException
+     *   NO_MODIFICATION_ALLOWED_ERR: Raised if an ancestor container of the
+     *   start of the Range is read-only.
+     *   <br>WRONG_DOCUMENT_ERR: Raised if <code>newNode</code> and the
+     *   container of the start of the Range were not created from the same
+     *   document.
+     *   <br>HIERARCHY_REQUEST_ERR: Raised if the container of the start of
+     *   the Range is of a type that does not allow children of the type of
+     *   <code>newNode</code> or if <code>newNode</code> is an ancestor of
+     *   the container.
+     *   <br>INVALID_STATE_ERR: Raised if <code>detach()</code> has already
+     *   been invoked on this object.
+     * @exception DOMRangeException
+     *   INVALID_NODE_TYPE_ERR: Raised if <code>newNode</code> is an DOMAttr,
+     *   DOMEntity, DOMNotation, or DOMDocument node.
+     *
+     * @since DOM Level 2
+     */
+    virtual void insertNode(DOMNode *newNode) = 0;
+
+    /**
+     * Reparents the contents of the Range to the given node and inserts the
+     * node at the position of the start of the Range.
+     * @param newParent The node to surround the contents with.
+     * @exception DOMException
+     *   NO_MODIFICATION_ALLOWED_ERR: Raised if an ancestor container of
+     *   either boundary-point of the Range is read-only.
+     *   <br>WRONG_DOCUMENT_ERR: Raised if <code> newParent</code> and the
+     *   container of the start of the Range were not created from the same
+     *   document.
+     *   <br>HIERARCHY_REQUEST_ERR: Raised if the container of the start of
+     *   the Range is of a type that does not allow children of the type of
+     *   <code>newParent</code> or if <code>newParent</code> is an ancestor
+     *   of the container or if <code>node</code> would end up with a child
+     *   node of a type not allowed by the type of <code>node</code>.
+     *   <br>INVALID_STATE_ERR: Raised if <code>detach()</code> has already
+     *   been invoked on this object.
+     * @exception DOMRangeException
+     *   BAD_BOUNDARYPOINTS_ERR: Raised if the Range partially selects a
+     *   non-text node.
+     *   <br>INVALID_NODE_TYPE_ERR: Raised if <code> node</code> is an DOMAttr,
+     *   DOMEntity, DOMDocumentType, DOMNotation, DOMDocument, or DOMDocumentFragment node.
+     *
+     * @since DOM Level 2
+     */
+    virtual void surroundContents(DOMNode *newParent) = 0;
+
+    /**
+     * Produces a new Range whose boundary-points are equal to the
+     * boundary-points of the Range.
+     * @return The duplicated Range.
+     * @exception DOMException
+     *   INVALID_STATE_ERR: Raised if <code>detach()</code> has already been
+     *   invoked on this object.
+     *
+     * @since DOM Level 2
+     */
+    virtual DOMRange* cloneRange() const = 0;
+
+    /**
+     * Returns the contents of a Range as a string. This string contains only
+     * the data characters, not any markup.
+     * @return The contents of the Range.
+     * @exception DOMException
+     *   INVALID_STATE_ERR: Raised if <code>detach()</code> has already been
+     *   invoked on this object.
+     *
+     * @since DOM Level 2
+     */
+    virtual const XMLCh* toString() const = 0;
+
+    /**
+     * Called to indicate that the Range is no longer in use and that the
+     * implementation may relinquish any resources associated with this
+     * Range. Subsequent calls to any methods or attribute getters on this
+     * Range will result in a <code>DOMException</code> being thrown with an
+     * error code of <code>INVALID_STATE_ERR</code>.
+     * @exception DOMException
+     *   INVALID_STATE_ERR: Raised if <code>detach()</code> has already been
+     *   invoked on this object.
+     *
+     * @since DOM Level 2
+     */
+    virtual void detach() = 0;
+
+    //@}
+
+    // -----------------------------------------------------------------------
+    //  Non-standard Extension
+    // -----------------------------------------------------------------------
+    /** @name Non-standard Extension */
+    //@{
+    /**
+     * Called to indicate that this Range is no longer in use
+     * and that the implementation may relinquish any resources associated with it.
+     * (release() will call detach() where appropriate)
+     *
+     * Access to a released object will lead to unexpected result.
+     */
+    virtual void release() = 0;
+    //@}
+};
+
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/DOMEntityResolver.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/DOMEntityResolver.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/DOMEntityResolver.hpp	(revision 2674)
@@ -0,0 +1,145 @@
+#ifndef DOMEntityResolver_HEADER_GUARD_
+#define DOMEntityResolver_HEADER_GUARD_
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: DOMEntityResolver.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+#include <xercesc/util/XercesDefs.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+
+class DOMInputSource;
+
+/**
+  * DOMEntityResolver provides a way for applications to redirect references
+  * to external entities.
+  *
+  * <p>Applications needing to implement customized handling for external
+  * entities must implement this interface and register their implementation
+  * by setting the entityResolver attribute of the DOMBuilder.</p>
+  *
+  * <p>The DOMBuilder will then allow the application to intercept any
+  * external entities (including the external DTD subset and external parameter
+  * entities) before including them.</p>
+  *
+  * <p>Many DOM applications will not need to implement this interface, but it
+  * will be especially useful for applications that build XML documents from
+  * databases or other specialized input sources, or for applications that use
+  * URNs.</p>
+  *
+  * @see DOMBuilder#setEntityResolver
+  * @see DOMInputSource#DOMInputSource
+  * @since DOM Level 3
+  */
+class CDOM_EXPORT DOMEntityResolver
+{
+protected:
+    // -----------------------------------------------------------------------
+    //  Hidden constructors
+    // -----------------------------------------------------------------------
+    /** @name Hidden constructors */
+    //@{    
+    DOMEntityResolver() {};
+    //@}
+
+private:
+    // -----------------------------------------------------------------------
+    // Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    /** @name Unimplemented constructors and operators */
+    //@{
+    DOMEntityResolver(const DOMEntityResolver &);
+    DOMEntityResolver & operator = (const DOMEntityResolver &);
+    //@}
+
+public:
+    // -----------------------------------------------------------------------
+    //  All constructors are hidden, just the destructor is available
+    // -----------------------------------------------------------------------
+    /** @name Destructor */
+    //@{
+    /**
+     * Destructor
+     *
+     */
+    virtual ~DOMEntityResolver() {};
+    //@}
+
+    // -----------------------------------------------------------------------
+    //  Virtual DOMEntityResolver interface
+    // -----------------------------------------------------------------------
+    /** @name Functions introduced in DOM Level 2 */
+    //@{
+    /**
+     * Allow the application to resolve external entities.
+     *
+     * <p>The DOMBuilder will call this method before opening any external
+     * entity except the top-level document entity (including the
+     * external DTD subset, external entities referenced within the
+     * DTD, and external entities referenced within the document
+     * element): the application may request that the DOMBuilder resolve
+     * the entity itself, that it use an alternative URI, or that it
+     * use an entirely different input source.</p>
+     *
+     * <p>Application writers can use this method to redirect external
+     * system identifiers to secure and/or local URIs, to look up
+     * public identifiers in a catalogue, or to read an entity from a
+     * database or other input source (including, for example, a dialog
+     * box).</p>
+     *
+     * <p>If the system identifier is a URL, the DOMBuilder parser must
+     * resolve it fully before reporting it to the application.</p>
+     *
+     * <p> The returned DOMInputSource is owned by the DOMBuilder which is
+     *     responsible to clean up the memory.
+     *
+     * <p><b>"Experimental - subject to change"</b></p>
+     *
+     * @param publicId The public identifier of the external entity
+     *        being referenced, or null if none was supplied.
+     * @param systemId The system identifier of the external entity
+     *        being referenced.
+     * @param baseURI The absolute base URI of the resource being parsed, or
+     *        <code>null</code> if there is no base URI.
+     * @return A DOMInputSource object describing the new input source,
+     *         or <code>null</code> to request that the parser open a regular
+     *         URI connection to the system identifier.
+     *         The returned DOMInputSource is owned by the DOMBuilder which is
+     *         responsible to clean up the memory.
+     * @see DOMInputSource#DOMInputSource
+     * @since DOM Level 3
+     */
+    virtual DOMInputSource* resolveEntity
+    (
+        const   XMLCh* const    publicId
+        , const XMLCh* const    systemId
+        , const XMLCh* const    baseURI
+    ) = 0;
+
+    //@}
+
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/DOMException.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/DOMException.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/DOMException.hpp	(revision 2674)
@@ -0,0 +1,254 @@
+#ifndef DOMException_HEADER_GUARD_
+#define DOMException_HEADER_GUARD_
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: DOMException.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#include <xercesc/util/XercesDefs.hpp>
+#include <xercesc/util/PlatformUtils.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+
+/**
+ * DOM operations only raise exceptions in "exceptional" circumstances, i.e.,
+ * when an operation is impossible to perform (either for logical reasons,
+ * because data is lost, or because the implementation has become unstable).
+ * In general, DOM methods return specific error values in ordinary
+ * processing situations, such as out-of-bound errors when using
+ * <code>DOMNodeList</code>.
+ * <p>Implementations should raise other exceptions under other circumstances.
+ * For example, implementations should raise an implementation-dependent
+ * exception if a <code>null</code> argument is passed.
+ * <p>Some languages and object systems do not support the concept of
+ * exceptions. For such systems, error conditions may be indicated using
+ * native error reporting mechanisms. For some bindings, for example,
+ * methods may return error codes similar to those listed in the
+ * corresponding method descriptions.
+ * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113'>Document Object Model (DOM) Level 2 Core Specification</a>.
+ * @since DOM Level 1
+ */
+
+class MemoryManager;
+
+class CDOM_EXPORT DOMException  {
+public:
+    // -----------------------------------------------------------------------
+    //  Constructors
+    // -----------------------------------------------------------------------
+    /** @name Constructors */
+    //@{
+    /**
+      * Default constructor for DOMException.
+      *
+      */
+    DOMException();
+
+    /**
+      * Constructor which takes an error code and a message.
+      *
+      * @param code           The error code which indicates the exception
+      * @param message        The string containing the error message
+      * @param memoryManager  The memory manager used to (de)allocate memory
+      */
+    DOMException(      
+                       short                 code
+               , const XMLCh*                message
+               ,       MemoryManager* const  memoryManager = XMLPlatformUtils::fgMemoryManager
+                );
+
+    /**
+      * Copy constructor.
+      *
+      * @param other The object to be copied.
+      */
+    DOMException(const DOMException &other);
+
+    //@}
+
+    // -----------------------------------------------------------------------
+    //  Destructors
+    // -----------------------------------------------------------------------
+    /** @name Destructor. */
+    //@{
+	 /**
+	  * Destructor for DOMException.
+	  *
+	  */
+    virtual ~DOMException();
+    //@}
+
+public:
+    // -----------------------------------------------------------------------
+    //  Class Types
+    // -----------------------------------------------------------------------
+    /** @name Public Contants */
+    //@{
+    /**
+     * ExceptionCode
+     *
+     * <p><code>INDEX_SIZE_ERR:</code>
+     * If index or size is negative, or greater than the allowed value.</p>
+     *
+     * <p><code>DOMSTRING_SIZE_ERR:</code>
+     * If the specified range of text does not fit into a DOMString.</p>
+     *
+     * <p><code>HIERARCHY_REQUEST_ERR:</code>
+     * If any node is inserted somewhere it doesn't belong.</p>
+     *
+     * <p><code>WRONG_DOCUMENT_ERR:</code>
+     * If a node is used in a different document than the one that created it
+     * (that doesn't support it).</p>
+     *
+     * <p><code>INVALID_CHARACTER_ERR:</code>
+     * If an invalid or illegal character is specified, such as in a name. See
+     * production 2 in the XML specification for the definition of a legal
+     * character, and production 5 for the definition of a legal name
+     * character.</p>
+     *
+     * <p><code>NO_DATA_ALLOWED_ERR:</code>
+     * If data is specified for a node which does not support data.</p>
+     *
+     * <p><code>NO_MODIFICATION_ALLOWED_ERR:</code>
+     * If an attempt is made to modify an object where modifications are not
+     * allowed.</p>
+     *
+     * <p><code>NOT_FOUND_ERR:</code>
+     * If an attempt is made to reference a node in a context where it does
+     * not exist.</p>
+     *
+     * <p><code>NOT_SUPPORTED_ERR:</code>
+     * If the implementation does not support the requested type of object or
+     * operation.</p>
+     *
+     * <p><code>INUSE_ATTRIBUTE_ERR:</code>
+     * If an attempt is made to add an attribute that is already in use
+     * elsewhere.</p>
+     *
+     * The above are since DOM Level 1
+     * @since DOM Level 1
+     *
+     * <p><code>INVALID_STATE_ERR:</code>
+     * If an attempt is made to use an object that is not, or is no longer,
+     * usable.</p>
+     *
+     * <p><code>SYNTAX_ERR:</code>
+     * If an invalid or illegal string is specified.</p>
+     *
+     * <p><code>INVALID_MODIFICATION_ERR:</code>
+     * If an attempt is made to modify the type of the underlying object.</p>
+     *
+     * <p><code>NAMESPACE_ERR:</code>
+     * If an attempt is made to create or change an object in a way which is
+     * incorrect with regard to namespaces.</p>
+     *
+     * <p><code>INVALID_ACCESS_ERR:</code>
+     * If a parameter or an operation is not supported by the underlying
+     * object.
+     *
+     * The above are since DOM Level 2
+     * @since DOM Level 2
+     *
+     * <p><code>VALIDATION_ERR:</code>
+     * If a call to a method such as <code>insertBefore</code> or
+     * <code>removeChild</code> would make the <code>Node</code> invalid
+     * with respect to "partial validity", this exception would be raised
+     * and the operation would not be done.
+     *
+     * The above is since DOM Level 2
+     * @since DOM Level 3
+     */
+    enum ExceptionCode {
+         INDEX_SIZE_ERR       = 1,
+         DOMSTRING_SIZE_ERR   = 2,
+         HIERARCHY_REQUEST_ERR = 3,
+         WRONG_DOCUMENT_ERR   = 4,
+         INVALID_CHARACTER_ERR = 5,
+         NO_DATA_ALLOWED_ERR  = 6,
+         NO_MODIFICATION_ALLOWED_ERR = 7,
+         NOT_FOUND_ERR        = 8,
+         NOT_SUPPORTED_ERR    = 9,
+         INUSE_ATTRIBUTE_ERR  = 10,
+         INVALID_STATE_ERR    = 11,
+         SYNTAX_ERR     = 12,
+         INVALID_MODIFICATION_ERR    = 13,
+         NAMESPACE_ERR     = 14,
+         INVALID_ACCESS_ERR   = 15,
+         VALIDATION_ERR       = 16
+        };
+    //@}
+
+    // -----------------------------------------------------------------------
+    //  Getter
+    // -----------------------------------------------------------------------
+    inline const XMLCh* getMessage()    const;
+
+    // -----------------------------------------------------------------------
+    //  Class Types
+    // -----------------------------------------------------------------------
+    /** @name Public variables */
+    //@{
+	 /**
+	  * A code value, from the set defined by the ExceptionCode enum,
+     * indicating the type of error that occured.
+     */
+    ExceptionCode   code;
+
+	 /**
+	  * A string value.  Applications may use this field to hold an error
+     *  message.  The field value is not set by the DOM implementation,
+     *  meaning that the string will be empty when an exception is first
+     *  thrown.
+	  */
+    const XMLCh *msg;
+    //@}
+
+protected:
+
+    MemoryManager*  fMemoryManager;
+
+private:
+
+	 /**
+	  * A boolean value.  
+      *   If the message is provided by the applications, it is not 
+      *   adopted.
+      *   If the message is resolved by the DOM implementation, it is
+      *   owned.
+	  */
+    bool            fMsgOwned;
+
+private:
+    // -----------------------------------------------------------------------
+    // Unimplemented constructors and operators
+    // -----------------------------------------------------------------------    
+    DOMException & operator = (const DOMException &);
+};
+
+inline const XMLCh* DOMException::getMessage() const
+{
+    return msg;
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
+
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/DOMXPathNamespace.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/DOMXPathNamespace.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/DOMXPathNamespace.hpp	(revision 2674)
@@ -0,0 +1,111 @@
+#ifndef DOMXPathNamespace_HEADER_GUARD_
+#define DOMXPathNamespace_HEADER_GUARD_
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <xercesc/dom/DOMNode.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class DOMElement;
+
+/**
+ * The <code>DOMXPathNamespace</code> interface is returned by <code>DOMXPathResult</code>
+ * interfaces to represent the XPath namespace node type that DOM lacks. There is no
+ * public constructor for this node type. Attempts to place it into a hierarchy or a 
+ * NamedNodeMap result in a DOMException with the code HIERARCHY_REQUEST_ERR. This node
+ * is read only, so methods or setting of attributes that would mutate the node result 
+ * in a <code>DOMException</code> with the code NO_MODIFICATION_ALLOWED_ERR.
+ * The core specification describes attributes of the <code>DOMNode</code> interface that 
+ * are different for different node types but does not describe XPATH_NAMESPACE_NODE, 
+ * so here is a description of those attributes for this node type. All attributes of
+ * <code>DOMNode</code> not described in this section have a null or false value.
+ * ownerDocument matches the ownerDocument of the ownerElement even if the element is later adopted.
+ * nodeName is always the string "#namespace".
+ * prefix is the prefix of the namespace represented by the node.
+ * localName is the same as prefix.
+ * nodeType is equal to XPATH_NAMESPACE_NODE.
+ * namespaceURI is the namespace URI of the namespace represented by the node.
+ * nodeValue is the same as namespaceURI.
+ * adoptNode, cloneNode, and importNode fail on this node type by raising a DOMException with the code NOT_SUPPORTED_ERR.
+ * Note: In future versions of the XPath specification, the definition of a namespace node may
+ * be changed incomatibly, in which case incompatible changes to field values may be required to
+ * implement versions beyond XPath 1.0.
+ * @since DOM Level 3
+ */
+class CDOM_EXPORT DOMXPathNamespace : public DOMNode
+{
+
+protected:
+    // -----------------------------------------------------------------------
+    //  Hidden constructors
+    // -----------------------------------------------------------------------
+    /** @name Hidden constructors */
+    //@{    
+    DOMXPathNamespace() {};
+    //@}
+
+private:
+    // -----------------------------------------------------------------------
+    // Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    /** @name Unimplemented constructors and operators */
+    //@{
+    DOMXPathNamespace(const DOMXPathNamespace &);
+    DOMXPathNamespace& operator = (const  DOMXPathNamespace&);
+    //@}
+
+public:
+
+    
+    enum XPathNodeType {
+        XPATH_NAMESPACE_NODE = 13
+    };
+
+    // -----------------------------------------------------------------------
+    //  All constructors are hidden, just the destructor is available
+    // -----------------------------------------------------------------------
+    /** @name Destructor */
+    //@{
+    /**
+     * Destructor
+     *
+     */
+    virtual ~DOMXPathNamespace() {};
+    //@}
+
+    // -----------------------------------------------------------------------
+    // Virtual DOMDocument interface
+    // -----------------------------------------------------------------------
+    /** @name Functions introduced in DOM Level 3 */
+    //@{
+    /**
+     * The <code>DOMElement</code> on which the namespace was in scope when 
+     * it was requested. This does not change on a returned namespace node
+     * even if the document changes such that the namespace goes out of
+     * scope on that element and this node is no longer found there by XPath.
+     * @since DOM Level 3
+     */
+    virtual DOMElement     *getOwnerElement() const = 0;
+
+    //@}
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/DOMDocumentTraversal.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/DOMDocumentTraversal.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/DOMDocumentTraversal.hpp	(revision 2674)
@@ -0,0 +1,155 @@
+#ifndef DOMDocumentTraversal_HEADER_GUARD_
+#define DOMDocumentTraversal_HEADER_GUARD_
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: DOMDocumentTraversal.hpp 568078 2007-08-21 11:43:25Z amassari $
+*/
+
+#include <xercesc/util/XercesDefs.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+
+class DOMNode;
+class DOMNodeFilter;
+class DOMNodeIterator;
+class DOMTreeWalker;
+
+
+/**
+ * <code>DOMDocumentTraversal</code> contains methods that create
+ * <code>DOMNodeIterators</code> and <code>DOMTreeWalkers</code> to traverse a
+ * node and its children in document order (depth first, pre-order
+ * traversal, which is equivalent to the order in which the start tags occur
+ * in the text representation of the document). In DOMs which support the
+ * Traversal feature, <code>DOMDocumentTraversal</code> will be implemented by
+ * the same objects that implement the DOMDocument interface.
+ * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Traversal-Range-20001113'>Document Object Model (DOM) Level 2 Traversal and Range Specification</a>.
+ * @since DOM Level 2
+ */
+class CDOM_EXPORT DOMDocumentTraversal {
+
+protected:
+    // -----------------------------------------------------------------------
+    //  Hidden constructors
+    // -----------------------------------------------------------------------
+    /** @name Hidden constructors */
+    //@{    
+    DOMDocumentTraversal() {};
+    //@}
+
+private:
+    // -----------------------------------------------------------------------
+    // Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    /** @name Unimplemented constructors and operators */
+    //@{
+    DOMDocumentTraversal(const DOMDocumentTraversal &);
+    DOMDocumentTraversal & operator = (const DOMDocumentTraversal &);
+    //@}
+
+public:
+    // -----------------------------------------------------------------------
+    //  All constructors are hidden, just the destructor is available
+    // -----------------------------------------------------------------------
+    /** @name Destructor */
+    //@{
+    /**
+     * Destructor
+     *
+     */
+    virtual ~DOMDocumentTraversal() {};
+    //@}
+
+    // -----------------------------------------------------------------------
+    //  Virtual DOMDocumentRange interface
+    // -----------------------------------------------------------------------
+    /** @name Functions introduced in DOM Level 2 */
+    //@{
+    /**
+     * Creates a NodeIterator object.   (DOM2)
+     *
+     * NodeIterators are used to step through a set of nodes, e.g. the set of nodes in a NodeList, the
+     * document subtree governed by a particular node, the results of a query, or any other set of nodes.
+     * The set of nodes to be iterated is determined by the implementation of the NodeIterator. DOM Level 2
+     * specifies a single NodeIterator implementation for document-order traversal of a document subtree.
+     * Instances of these iterators are created by calling <code>DOMDocumentTraversal.createNodeIterator()</code>.
+     *
+     * To produce a view of the document that has entity references expanded and does not
+     * expose the entity reference node itself, use the <code>whatToShow</code> flags to hide the entity
+     * reference node and set expandEntityReferences to true when creating the iterator. To
+     * produce a view of the document that has entity reference nodes but no entity expansion,
+     * use the <code>whatToShow</code> flags to show the entity reference node and set
+     * expandEntityReferences to false.
+     *
+     * @param root The root node of the DOM tree
+     * @param whatToShow This attribute determines which node types are presented via the iterator.
+     * @param filter The filter used to screen nodes
+     * @param entityReferenceExpansion The value of this flag determines whether the children of entity reference nodes are
+     *                   visible to the iterator. If false, they will be skipped over.
+     * @since DOM Level 2
+     */
+
+    virtual DOMNodeIterator *createNodeIterator(DOMNode         *root,
+                                                   unsigned long    whatToShow,
+                                                   DOMNodeFilter* filter,
+                                                   bool             entityReferenceExpansion) = 0;
+    /**
+     * Creates a TreeWalker object.   (DOM2)
+     *
+     * TreeWalker objects are used to navigate a document tree or subtree using the view of the document defined
+     * by its whatToShow flags and any filters that are defined for the TreeWalker. Any function which performs
+     * navigation using a TreeWalker will automatically support any view defined by a TreeWalker.
+     *
+     * Omitting nodes from the logical view of a subtree can result in a structure that is substantially different from
+     * the same subtree in the complete, unfiltered document. Nodes that are siblings in the TreeWalker view may
+     * be children of different, widely separated nodes in the original view. For instance, consider a Filter that skips
+     * all nodes except for DOMText nodes and the root node of a document. In the logical view that results, all text
+     * nodes will be siblings and appear as direct children of the root node, no matter how deeply nested the
+     * structure of the original document.
+     *
+     * To produce a view of the document that has entity references expanded
+     * and does not expose the entity reference node itself, use the whatToShow
+     * flags to hide the entity reference node and set <code>expandEntityReferences</code> to
+     * true when creating the TreeWalker. To produce a view of the document
+     * that has entity reference nodes but no entity expansion, use the
+     * <code>whatToShow</code> flags to show the entity reference node and set
+     * <code>expandEntityReferences</code> to false
+     *
+     * @param root The root node of the DOM tree
+     * @param whatToShow This attribute determines which node types are presented via the tree-walker.
+     * @param filter The filter used to screen nodes
+     * @param entityReferenceExpansion The value of this flag determines whether the children of entity reference nodes are
+     *                   visible to the tree-walker. If false, they will be skipped over.
+     * @since DOM Level 2
+     */
+
+    virtual DOMTreeWalker  *createTreeWalker(DOMNode        *root,
+                                               unsigned long     whatToShow,
+                                               DOMNodeFilter  *filter,
+                                               bool              entityReferenceExpansion) = 0;
+
+    //@}
+};
+
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/DOMDocumentFragment.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/DOMDocumentFragment.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/DOMDocumentFragment.hpp	(revision 2674)
@@ -0,0 +1,109 @@
+#ifndef DOMDocumentFragment_HEADER_GUARD_
+#define DOMDocumentFragment_HEADER_GUARD_
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: DOMDocumentFragment.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+#include <xercesc/util/XercesDefs.hpp>
+#include <xercesc/dom/DOMNode.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+
+/**
+ * DOMDocumentFragment is a "lightweight" or "minimal"
+ * DOMDocument object.
+ *
+ * It is very common to want to be able to
+ * extract a portion of a document's tree or to create a new fragment of a
+ * document. Imagine implementing a user command like cut or rearranging a
+ * document by moving fragments around. It is desirable to have an object
+ * which can hold such fragments and it is quite natural to use a DOMNode for
+ * this purpose. While it is true that a <code>DOMDocument</code> object could
+ * fulfil this role,  a <code>DOMDocument</code> object can potentially be a
+ * heavyweight  object, depending on the underlying implementation. What is
+ * really needed for this is a very lightweight object.
+ * <code>DOMDocumentFragment</code> is such an object.
+ * <p>Furthermore, various operations -- such as inserting nodes as children
+ * of another <code>DOMNode</code> -- may take <code>DOMDocumentFragment</code>
+ * objects as arguments;  this results in all the child nodes of the
+ * <code>DOMDocumentFragment</code>  being moved to the child list of this node.
+ * <p>The children of a <code>DOMDocumentFragment</code> node are zero or more
+ * nodes representing the tops of any sub-trees defining the structure of the
+ * document. <code>DOMDocumentFragment</code> nodes do not need to be
+ * well-formed XML documents (although they do need to follow the rules
+ * imposed upon well-formed XML parsed entities, which can have multiple top
+ * nodes).  For example, a <code>DOMDocumentFragment</code> might have only one
+ * child and that child node could be a <code>DOMText</code> node. Such a
+ * structure model  represents neither an HTML document nor a well-formed XML
+ * document.
+ * <p>When a <code>DOMDocumentFragment</code> is inserted into a
+ * <code>DOMDocument</code> (or indeed any other <code>DOMNode</code> that may take
+ * children) the children of the <code>DOMDocumentFragment</code> and not the
+ * <code>DOMDocumentFragment</code>  itself are inserted into the
+ * <code>DOMNode</code>. This makes the <code>DOMDocumentFragment</code> very
+ * useful when the user wishes to create nodes that are siblings; the
+ * <code>DOMDocumentFragment</code> acts as the parent of these nodes so that the
+ *  user can use the standard methods from the <code>DOMNode</code>  interface,
+ * such as <code>insertBefore()</code> and  <code>appendChild()</code>.
+ *
+ * @since DOM Level 1
+ */
+
+class CDOM_EXPORT DOMDocumentFragment: public DOMNode {
+protected:
+    // -----------------------------------------------------------------------
+    //  Hidden constructors
+    // -----------------------------------------------------------------------
+    /** @name Hidden constructors */
+    //@{    
+    DOMDocumentFragment() {};
+    //@}
+
+private:
+    // -----------------------------------------------------------------------
+    // Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    /** @name Unimplemented constructors and operators */
+    //@{
+    DOMDocumentFragment(const DOMDocumentFragment &);
+    DOMDocumentFragment & operator = (const DOMDocumentFragment &);
+    //@}
+
+public:
+    // -----------------------------------------------------------------------
+    //  All constructors are hidden, just the destructor is available
+    // -----------------------------------------------------------------------
+    /** @name Destructor */
+    //@{
+    /**
+     * Destructor
+     *
+     */
+    virtual ~DOMDocumentFragment() {};
+	//@}
+
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/DOMXPathException.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/DOMXPathException.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/DOMXPathException.hpp	(revision 2674)
@@ -0,0 +1,117 @@
+#ifndef DOMXPathException_HEADER_GUARD_
+#define DOMXPathException_HEADER_GUARD_
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <xercesc/util/XercesDefs.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+/**
+ * @since DOM Level 3
+ */
+class CDOM_EXPORT DOMXPathException
+{
+public:
+    // -----------------------------------------------------------------------
+    //  Constructors
+    // -----------------------------------------------------------------------
+    /** @name Constructors */
+    //@{
+    /**
+      * Default constructor for DOMXPathException.
+      *
+      */
+    DOMXPathException();
+
+    /**
+      * Constructor which takes an error code and a message.
+      *
+      * @param code The error code which indicates the exception
+      * @param message The string containing the error message
+      */
+    DOMXPathException(short code, const XMLCh *message);
+
+    /**
+      * Copy constructor.
+      *
+      * @param other The object to be copied.
+      */
+    DOMXPathException(const DOMXPathException  &other);
+
+    //@}
+
+    // -----------------------------------------------------------------------
+    //  Destructors
+    // -----------------------------------------------------------------------
+    /** @name Destructor. */
+    //@{
+	 /**
+	  * Destructor for DOMXPathException.
+	  *
+	  */
+    virtual ~DOMXPathException();
+    //@}
+
+public:
+
+    //@{
+    /**
+     * ExceptionCode
+     * INVALID_EXPRESSION_ERR If the expression has a syntax error or otherwise
+     * is not a legal expression according to the rules of the specific 
+     * <code>XPathEvaluator</code> or contains specialized extension functions
+     * or variables not supported by this implementation.
+     * TYPE_ERR If the expression cannot be converted to return the specified type.
+     */
+	enum ExceptionCode {
+		INVALID_EXPRESSION_ERR = 51,
+		TYPE_ERR = 52
+	};
+    //@}
+
+    // -----------------------------------------------------------------------
+    //  Class Types
+    // -----------------------------------------------------------------------
+    /** @name Public variables */
+    //@{
+	 /**
+	  * A code value, from the set defined by the ExceptionCode enum,
+     * indicating the type of error that occured.
+     */
+    ExceptionCode   code;
+
+	 /**
+	  * A string value.  Applications may use this field to hold an error
+     *  message.  The field value is not set by the DOM implementation,
+     *  meaning that the string will be empty when an exception is first
+     *  thrown.
+	  */
+    const XMLCh *msg;
+    //@}
+
+private:
+    // -----------------------------------------------------------------------
+    // Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    DOMXPathException& operator = (const DOMXPathException&);
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/DOMLocator.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/DOMLocator.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/DOMLocator.hpp	(revision 2674)
@@ -0,0 +1,208 @@
+#ifndef DOMLocator_HEADER_GUARD_
+#define DOMLocator_HEADER_GUARD_
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: DOMLocator.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#include <xercesc/util/XercesDefs.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+
+class DOMNode;
+
+
+/**
+  * DOMLocator is an interface that describes a location. (e.g. where an error
+  * occured).
+  *
+  * @see DOMError#DOMError
+  * @since DOM Level 3
+  */
+
+class CDOM_EXPORT DOMLocator
+{
+protected:
+    // -----------------------------------------------------------------------
+    //  Hidden constructors
+    // -----------------------------------------------------------------------
+    /** @name Hidden constructors */
+    //@{    
+    DOMLocator() {};
+    //@}
+    
+private:    
+    // -----------------------------------------------------------------------
+    // Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    /** @name Unimplemented constructors and operators */
+    //@{
+    DOMLocator(const DOMLocator &);
+    DOMLocator & operator = (const DOMLocator &);
+    //@}
+
+public:
+    // -----------------------------------------------------------------------
+    //  All constructors are hidden, just the destructor is available
+    // -----------------------------------------------------------------------
+    /** @name Destructor */
+    //@{
+    /**
+     * Destructor
+     *
+     */
+    virtual ~DOMLocator() {};
+    //@}
+
+    // -----------------------------------------------------------------------
+    //  Virtual DOMLocator interface
+    // -----------------------------------------------------------------------
+    /** @name Functions introduced in DOM Level 3 */
+    //@{
+    // -----------------------------------------------------------------------
+    //  Getter methods
+    // -----------------------------------------------------------------------
+    /**
+     * Get the line number where the error occured. The value is -1 if there is
+     * no line number available.
+     *
+     * <p><b>"Experimental - subject to change"</b></p>
+     *
+     * @see #setLineNumber
+     * @since DOM Level 3
+     */
+    virtual XMLSSize_t getLineNumber() const = 0;
+
+    /**
+     * Get the column number where the error occured. The value is -1 if there
+     * is no column number available.
+     *
+     * <p><b>"Experimental - subject to change"</b></p>
+     *
+     * @see #setColumnNumber
+     * @since DOM Level 3
+     */
+    virtual XMLSSize_t getColumnNumber() const = 0;
+
+    /**
+     * Get the byte or character offset into the input source, if we're parsing
+     * a file or a byte stream then this will be the byte offset into that
+     * stream, but if a character media is parsed then the offset will be the
+     * character offset. The value is -1 if there is no offset available.
+     *
+     * <p><b>"Experimental - subject to change"</b></p>
+     *
+     * @see #setOffset
+     * @since DOM Level 3
+     */
+    virtual XMLSSize_t getOffset() const = 0;
+
+    /**
+     * Get the DOMNode where the error occured, or <code>null</code> if there
+     * is no node available.
+     *
+     * <p><b>"Experimental - subject to change"</b></p>
+     *
+     * @see #setErrorNode
+     * @since DOM Level 3
+     */
+    virtual DOMNode* getErrorNode() const = 0;
+
+    /**
+     * Get the URI where the error occured, or <code>null</code> if there is no
+     * URI available.
+     *
+     * <p><b>"Experimental - subject to change"</b></p>
+     *
+     * @see #setURI
+     * @since DOM Level 3
+     */
+    virtual const XMLCh* getURI() const = 0;
+
+    // -----------------------------------------------------------------------
+    //  Setter methods
+    // -----------------------------------------------------------------------
+    /**
+     * Set the line number of the error
+     *
+     * <p><b>"Experimental - subject to change"</b></p>
+     *
+     * @param lineNumber the line number to set
+     *
+     * @see #getLinNumner
+     * @since DOM Level 3
+     */
+    virtual void setLineNumber(const XMLSSize_t lineNumber) = 0;
+
+    /**
+     * Set the column number of the error
+     *
+     * <p><b>"Experimental - subject to change"</b></p>
+     *
+     * @param columnNumber the column number to set.
+     *
+     * @see #getColumnNumner
+     * @since DOM Level 3
+     */
+    virtual void setColumnNumber(const XMLSSize_t columnNumber) = 0;
+
+    /**
+     * Set the byte/character offset.
+     *
+     * <p><b>"Experimental - subject to change"</b></p>
+     *
+     * @param offset the byte/characte offset to set.
+     *
+     * @see #getOffset
+     * @since DOM Level 3
+     */
+    virtual void setOffset(const XMLSSize_t offset) = 0;
+
+    /**
+     * Set the DOMNode where the error occured
+     *
+     * <p><b>"Experimental - subject to change"</b></p>
+     *
+     * @param errorNode the DOMNode to set
+     *
+     * @see #getErrorNode
+     * @since DOM Level 3
+     */
+    virtual void setErrorNode(DOMNode* const errorNode) = 0;
+
+    /**
+     * Set the URI where the error occured
+     *
+     * <p><b>"Experimental - subject to change"</b></p>
+     *
+     * @param uri the URI to set.
+     *
+     * @see #getURI
+     * @since DOM Level 3
+     */
+    virtual void setURI(const XMLCh* const uri) = 0;
+
+    //@}
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/DOMUserDataHandler.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/DOMUserDataHandler.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/DOMUserDataHandler.hpp	(revision 2674)
@@ -0,0 +1,140 @@
+#ifndef DOMUserDataHandler_HEADER_GUARD_
+#define DOMUserDataHandler_HEADER_GUARD_
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: DOMUserDataHandler.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#include <xercesc/util/XercesDefs.hpp>
+#include <xercesc/dom/DOMNode.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+/**
+ * When associating an object to a key on a node using <code>setUserData</code>
+ *  the application can provide a handler that gets called when the node the
+ * object is associated to is being cloned or imported. This can be used by
+ * the application to implement various behaviors regarding the data it
+ * associates to the DOM nodes. This interface defines that handler.
+ *
+ * <p><b>"Experimental - subject to change"</b></p>
+ *
+ * <p>See also the <a href='http://www.w3.org/2001/07/WD-DOM-Level-3-Core-20010726'>Document Object Model (DOM) Level 3 Core Specification</a>.
+ * @since DOM Level 3
+ */
+class CDOM_EXPORT DOMUserDataHandler {
+protected:
+    // -----------------------------------------------------------------------
+    //  Hidden constructors
+    // -----------------------------------------------------------------------
+    /** @name Hidden constructors */
+    //@{    
+    DOMUserDataHandler() {};
+    //@}
+
+private:
+    // -----------------------------------------------------------------------
+    // Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    /** @name Unimplemented constructors and operators */
+    //@{
+    DOMUserDataHandler(const DOMUserDataHandler &);
+    DOMUserDataHandler & operator = (const DOMUserDataHandler &);
+    //@}
+
+public:
+    // -----------------------------------------------------------------------
+    //  All constructors are hidden, just the destructor is available
+    // -----------------------------------------------------------------------
+    /** @name Destructor */
+    //@{
+    /**
+     * Destructor
+     *
+     */
+    virtual ~DOMUserDataHandler() {};
+    //@}
+
+    // -----------------------------------------------------------------------
+    //  Class Types
+    // -----------------------------------------------------------------------
+    /** @name Public Constants */
+    //@{
+    /**
+     * Operation Type
+     *
+     * <p><code>NODE_CLONED:</code>
+     * The node is cloned.</p>
+     *
+     * <p><code>NODE_IMPORTED</code>
+     * The node is imported.</p>
+     *
+     * <p><code>NODE_DELETED</code>
+     * The node is deleted.</p>
+     *
+     * <p><code>NODE_RENAMED</code>
+     * The node is renamed.
+     *
+     * <p><b>"Experimental - subject to change"</b></p>
+     *
+     * @since DOM Level 3
+     */
+    enum DOMOperationType {
+        NODE_CLONED               = 1,
+        NODE_IMPORTED             = 2,
+        NODE_DELETED              = 3,
+        NODE_RENAMED              = 4
+    };
+    //@}
+
+
+    // -----------------------------------------------------------------------
+    //  Virtual DOMUserDataHandler interface
+    // -----------------------------------------------------------------------
+    /** @name Functions introduced in DOM Level 3 */
+    //@{
+    /**
+     * This method is called whenever the node for which this handler is
+     * registered is imported or cloned.
+     *
+     * <p><b>"Experimental - subject to change"</b></p>
+     *
+     * @param operation Specifies the type of operation that is being
+     *   performed on the node.
+     * @param key Specifies the key for which this handler is being called.
+     * @param data Specifies the data for which this handler is being called.
+     * @param src Specifies the node being cloned, imported, or renamed.
+     * @param dst Specifies the node newly created.
+     * @since DOM Level 3
+     */
+    virtual void handle(DOMOperationType operation,
+                        const XMLCh* const key,
+                        void* data,
+                        const DOMNode* src,
+                        const DOMNode* dst) = 0;
+
+    //@}
+
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
+
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/DOMConfiguration.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/DOMConfiguration.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/DOMConfiguration.hpp	(revision 2674)
@@ -0,0 +1,510 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#if !defined(DOMCONFIGURATION_HPP)
+#define DOMCONFIGURATION_HPP
+
+//------------------------------------------------------------------------------------
+//  Includes
+//------------------------------------------------------------------------------------
+
+#include <xercesc/util/XMLString.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+/**
+ *   The DOMConfiguration interface represents the configuration of
+ *   a document  and  maintains  a  table of recognized parameters.
+ *   using  the   configuration,   it   is   possible   to   change
+ *   Document.normalizeDocument  behavior,  such  as replacing
+ *   CDATASection   nodes   with   Text  nodes  or
+ *   specifying  the  type  of the schema that must be used when the
+ *   validation of the Document is requested. DOMConfiguration
+ *   objects  are  also used in [DOM Level 3 Load and Save] in
+ *   the DOMBuilder and DOMWriter interfaces.
+ *
+ *   The  DOMConfiguration  distinguish  two  types  of  parameters:
+ *   boolean     (boolean    parameters)    and    DOMUserData
+ *   (parameters). The names used by the DOMConfiguration object are
+ *   defined  throughout  the  DOM Level 3 specifications. Names are
+ *   case-insensitives.   To   avoid   possible   conflicts,   as  a
+ *   convention,   names   referring   to   boolean  parameters  and
+ *   parameters defined outside the DOM specification should be made
+ *   unique.  Names  are  recommended  to  follow the XML name
+ *   production   rule   but   it   is   not  enforced  by  the  DOM
+ *   implementation.  DOM  Level 3 Core Implementations are required
+ *   to  recognize  all boolean parameters and parameters defined in
+ *   this  specification.  Each boolean parameter state or parameter
+ *   value may then be supported or not by the implementation. Refer
+ *   to  their  definition  to  know  if  a state or a value must be
+ *   supported or not.
+ *
+ *   Note: Parameters are similar to features and properties used in
+ *   SAX2 [SAX].
+ *
+ * Issue DOMConfiguration-1:
+ *         Can we rename boolean parameters to "flags"?
+ *
+ * Issue DOMConfiguration-2:
+ *         Are  boolean  parameters  and  parameters within the same
+ *         scope for uniqueness? Which exception should be raised by
+ *         setBooleanParameter("error-handler", true)?
+ *
+ *   The following list of parameters defined in the DOM:
+ *
+ * "error-handler"
+ *         [required]
+ *         A   DOMErrorHandler   object.   If   an   error  is
+ *         encountered in the document, the implementation will call
+ *         back  the  DOMErrorHandler  registered  using  this
+ *         parameter.
+ *         When  called, DOMError.relatedData will contain the
+ *         closest   node   to  where  the  error  occured.  If  the
+ *         implementation  is unable to determine the node where the
+ *         error occurs, DOMError.relatedData will contain the
+ *         Document  node.  Mutations  to  the  document  from
+ *         within  an  error  handler  will result in implementation
+ *         dependent behaviour.
+ *
+ *       Issue DOMConfiguration-4:
+ *               Should   we   say  non  "readonly"  operations  are
+ *               implementation dependent instead?
+ *               Resolution:  Removed:  "or re-invoking a validation
+ *               operation".
+ *
+ * "schema-type"
+ *         [optional]
+ *         A  DOMString  object containing an absolute URI and
+ *         representing  the  type  of  the  schema language used to
+ *         validate   a  document  against.  Note  that  no  lexical
+ *         checking is done on the absolute URI.
+ *         If  this  parameter  is  not  set, a default value may be
+ *         provided  by  the  implementation,  based  on  the schema
+ *         languages  supported  and  on the schema language used at
+ *         load time.
+ *
+ *         Note:   For   XML   Schema  [XML  Schema  Part  1],
+ *         applications must use the value
+ *         "http://www.w3.org/2001/XMLSchema".     For    XML    DTD
+ *         [XML   1.0],   applications   must  use  the  value
+ *         "http://www.w3.org/TR/REC-xml".  Other  schema  languages
+ *         are  outside  the  scope  of the W3C and therefore should
+ *         recommend an absolute URI in order to use this method.
+ *
+ * "schema-location"
+ *         [optional]
+ *         A  DOMString  object  containing  a  list  of URIs,
+ *         separated   by  white  spaces  (characters  matching  the
+ *         nonterminal  production  S  defined  in section 2.3
+ *         [XML  1.0]),  that  represents  the schemas against
+ *         which  validation  should  occur.  The  types  of schemas
+ *         referenced  in  this  list  must match the type specified
+ *         with   schema-type,   otherwise   the   behaviour  of  an
+ *         implementation  is  undefined.  If the schema type is XML
+ *         Schema  [XML  Schema  Part  1], only one of the XML
+ *         Schemas in the list can be with no namespace.
+ *         If  validation  occurs  against a namespace aware schema,
+ *         i.e.  XML  Schema,  and  the  targetNamespace of a schema
+ *         (specified    using    this    property)    matches   the
+ *         targetNamespace  of  a  schema  occurring in the instance
+ *         document,  i.e  in  schemaLocation  attribute, the schema
+ *         specified  by  the  user using this property will be used
+ *         (i.e.,  in XML Schema the schemaLocation attribute in the
+ *         instance  document  or  on  the  import  element  will be
+ *         effectively ignored).
+ *
+ *         Note:  It is illegal to set the schema-location parameter
+ *         if  the  schema-type  parameter  value  is not set. It is
+ *         strongly  recommended that DOMInputSource.baseURI will be
+ *         set,  so  that an implementation can successfully resolve
+ *         any external entities referenced.
+ *
+ *   The  following list of boolean parameters (features) defined in
+ *   the DOM:
+ *
+ * "canonical-form"
+ *
+ *       true
+ *               [optional]
+ *               Canonicalize  the  document  according to the rules
+ *               specified  in [Canonical XML]. Note that this
+ *               is  limited  to what can be represented in the DOM.
+ *               In particular, there is no way to specify the order
+ *               of the attributes in the DOM.
+ *
+ *             Issue normalizationFeature-14:
+ *                     What  happen  to  other  features?  are  they
+ *                     ignored? if yes, how do you know if a feature
+ *                     is ignored?
+ *
+ *       false
+ *               [required] (default)
+ *               Do not canonicalize the document.
+ *
+ * "cdata-sections"
+ *
+ *       true
+ *               [required] (default)
+ *               Keep CDATASection nodes in the document.
+ *
+ *             Issue normalizationFeature-11:
+ *                     Name  does not work really well in this case.
+ *                     ALH     suggests     renaming     this     to
+ *                     "cdata-sections".  It works for both load and
+ *                     save.
+ *                     Resolution:  Renamed as suggested. (Telcon 27
+ *                     Jan 2002).
+ *
+ *       false
+ *               [required]
+ *               Transform  CDATASection nodes in the document
+ *               into  Text  nodes. The new Text node is
+ *               then combined with any adjacent Text node.
+ *
+ * "comments"
+ *
+ *       true
+ *               [required] (default)
+ *               Keep Comment nodes in the document.
+ *
+ *       false
+ *               [required]
+ *               Discard Comment nodes in the Document.
+ *
+ * "datatype-normalization"
+ *
+ *       true
+ *               [required]
+ *               Exposed normalized values in the tree.
+ *
+ *             Issue normalizationFeature-8:
+ *                     We should define "datatype normalization".
+ *                     Resolution:  DTD  normalization  always apply
+ *                     because  it's  part  of  XML 1.0. Clarify the
+ *                     spec. (Telcon 27 Jan 2002).
+ *
+ *       false
+ *               [required] (default)
+ *               Do not perform normalization on the tree.
+ *
+ * "discard-default-content"
+ *
+ *       true
+ *               [required] (default)
+ *               Use   whatever   information   available   to   the
+ *               implementation (i.e. XML schema, DTD, the specified
+ *               flag on Attr nodes, and so on) to decide what
+ *               attributes  and content should be discarded or not.
+ *               Note that the specified flag on Attr nodes in
+ *               itself  is not always reliable, it is only reliable
+ *               when  it  is set to false since the only case where
+ *               it  can  be  set  to  false is if the attribute was
+ *               created  by the implementation. The default content
+ *               won't be removed if an implementation does not have
+ *               any information available.
+ *
+ *             Issue normalizationFeature-2:
+ *                     How  does  exactly  work?  What's the comment
+ *                     about level 1 implementations?
+ *                     Resolution:  Remove  "Level 1" (Telcon 16 Jan
+ *                     2002).
+ *
+ *       false
+ *               [required]
+ *               Keep all attributes and all content.
+ *
+ * "entities"
+ *
+ *       true
+ *               [required]
+ *               Keep  EntityReference  and Entity nodes
+ *               in the document.
+ *
+ *             Issue normalizationFeature-9:
+ *                     How does that interact with
+ *                     expand-entity-references?     ALH    suggests
+ *                     consolidating  the  two  to  a single feature
+ *                     called  "entity-references" that is used both
+ *                     for load and save.
+ *                     Resolution:  Consolidate both features into a
+ *                     single  feature called 'entities'. (Telcon 27
+ *                     Jan 2002).
+ *
+ *       false
+ *               [required] (default)
+ *               Remove  all  EntityReference and Entity
+ *               nodes   from   the  document,  putting  the  entity
+ *               expansions  directly  in  their  place.  Text
+ *               nodes     are     into    "normal"    form.    Only
+ *               EntityReference nodes to non-defined entities
+ *               are kept in the document.
+ *
+ * "infoset"
+ *
+ *       true
+ *               [required]
+ *               Only  keep  in the document the information defined
+ *               in  the  XML Information Set [XML Information
+ *               set].
+ *               This   forces  the  following  features  to  false:
+ *               namespace-declarations,         validate-if-schema,
+ *               entities, datatype-normalization, cdata-sections.
+ *               This   forces   the  following  features  to  true:
+ *               whitespace-in-element-content,            comments,
+ *               namespaces.
+ *               Other  features  are  not  changed unless explicity
+ *               specified in the description of the features.
+ *               Note  that  querying  this  feature with getFeature
+ *               returns   true  only  if  the  individual  features
+ *               specified above are appropriately set.
+ *
+ *             Issue normalizationFeature-12:
+ *                     Name  doesn't  work  well  here. ALH suggests
+ *                     renaming    this   to   limit-to-infoset   or
+ *                     match-infoset, something like that.
+ *                     Resolution:  Renamed 'infoset' (Telcon 27 Jan
+ *                     2002).
+ *
+ *       false
+ *               Setting infoset to false has no effect.
+ *
+ *             Issue normalizationFeature-13:
+ *                     Shouldn't  we  change  this  to  setting  the
+ *                     relevant options back to their default value?
+ *                     Resolution:   No,   this   is   more  like  a
+ *                     convenience  function, it's better to keep it
+ *                     simple. (F2F 28 Feb 2002).
+ *
+ * "namespaces"
+ *
+ *       true
+ *               [required] (default)
+ *               Perform  the  namespace  processing  as  defined in
+ *               [XML Namespaces].
+ *
+ *       false
+ *               [optional]
+ *               Do not perform the namespace processing.
+ *
+ * "namespace-declarations"
+ *
+ *       true
+ *               [required] (default)
+ *               Include namespace declaration attributes, specified
+ *               or  defaulted  from  the  schema or the DTD, in the
+ *               document.  See  also  the  section  Declaring
+ *               Namespaces in [XML Namespaces].
+ *
+ *       false
+ *               [required]
+ *               Discard  all  namespace declaration attributes. The
+ *               Namespace   prefixes  are  retained  even  if  this
+ *               feature is set to false.
+ *
+ * "normalize-characters"
+ *
+ *       true
+ *               [optional]
+ *               Perform   the   W3C   Text   Normalization  of  the
+ *               characters [CharModel] in the document.
+ *
+ *       false
+ *               [required] (default)
+ *               Do not perform character normalization.
+ *
+ * "split-cdata-sections"
+ *
+ *       true
+ *               [required] (default)
+ *               Split  CDATA  sections containing the CDATA section
+ *               termination  marker  ']]>'. When a CDATA section is
+ *               split a warning is issued.
+ *
+ *       false
+ *               [required]
+ *               Signal an error if a CDATASection contains an
+ *               unrepresentable character.
+ *
+ * "validate"
+ *
+ *       true
+ *               [optional]
+ *               Require  the  validation against a schema (i.e. XML
+ *               schema,  DTD,  any  other type or representation of
+ *               schema)  of  the document as it is being normalized
+ *               as defined by [XML 1.0]. If validation errors
+ *               are  found,  or  no  schema  was  found,  the error
+ *               handler  is  notified.  Note  also  that normalized
+ *               values  will  not  be exposed to the schema in used
+ *               unless the feature datatype-normalization is true.
+ *
+ *               Note:  validate-if-schema and validate are mutually
+ *               exclusive, setting one of them to true will set the
+ *               other one to false.
+ *
+ *       false
+ *               [required] (default)
+ *               Only  XML  1.0  non-validating  processing  must be
+ *               done.  Note  that  validation might still happen if
+ *               validate-if-schema is true.
+ *
+ * "validate-if-schema"
+ *
+ *       true
+ *               [optional]
+ *               Enable  validation  only  if  a declaration for the
+ *               document  element  can  be  found (independently of
+ *               where  it  is  found,  i.e. XML schema, DTD, or any
+ *               other   type   or  representation  of  schema).  If
+ *               validation  errors  are found, the error handler is
+ *               notified. Note also that normalized values will not
+ *               be exposed to the schema in used unless the feature
+ *               datatype-normalization is true.
+ *
+ *               Note:  validate-if-schema and validate are mutually
+ *               exclusive, setting one of them to true will set the
+ *               other one to false.
+ *
+ *       false
+ *               [required] (default)
+ *               No  validation  should be performed if the document
+ *               has  a  schema.  Note  that  validation  must still
+ *               happen if validate is true.
+ *
+ * "whitespace-in-element-content"
+ *
+ *       true
+ *               [required] (default)
+ *               Keep all white spaces in the document.
+ *
+ *             Issue normalizationFeature-15:
+ *                     How   does   this   feature   interact   with
+ *                     "validate" and
+ *                     Text.isWhitespaceInElementContent.
+ *                     Resolution:  issue  no  longer  relevant (f2f
+ *                     october 2002).
+ *
+ *       false
+ *               [optional]
+ *               Discard   white  space  in  element  content  while
+ *               normalizing.  The implementation is expected to use
+ *               the isWhitespaceInElementContent flag on Text
+ *               nodes to determine if a text node should be written
+ *               out or not.
+ *
+ *   The  resolutions  of  entities  is done using Document.baseURI.
+ *   However,  when  the  features "LS-Load" or "LS-Save" defined in
+ *   [DOM  Level  3  Load  and  Save] are supported by the DOM
+ *   implementation,  the  parameter  "entity-resolver"  can also be
+ *   used  on  DOMConfiguration  objects  attached to Document
+ *   nodes. If this parameter is set,
+ *   Document.normalizeDocument   will   invoke   the   entity
+ *   resolver instead of using Document.baseURI.
+ */
+class CDOM_EXPORT DOMConfiguration
+{
+protected:
+    //-----------------------------------------------------------------------------------
+    //  Constructor
+    //-----------------------------------------------------------------------------------
+    /** @name Hidden constructors */
+    //@{
+    DOMConfiguration() {};
+    //@}
+
+private:
+    // -----------------------------------------------------------------------
+    // Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    /** @name Unimplemented constructors and operators */
+    //@{
+    DOMConfiguration(const DOMConfiguration &);
+    DOMConfiguration & operator = (const DOMConfiguration &);
+    //@}
+
+public:
+
+    // -----------------------------------------------------------------------
+    //  Setter methods
+    // -----------------------------------------------------------------------
+    
+    /** Set the value of a parameter. 
+     * @param name The name of the parameter to set.
+     * @param value The new value or null if the user wishes to unset the 
+     * parameter. While the type of the value parameter is defined as 
+     * <code>DOMUserData</code>, the object type must match the type defined
+     * by the definition of the parameter. For example, if the parameter is 
+     * "error-handler", the value must be of type <code>DOMErrorHandler</code>
+     * @exception DOMException (NOT_SUPPORTED_ERR) Raised when the 
+     * parameter name is recognized but the requested value cannot be set.
+     * @exception DOMException (NOT_FOUND_ERR) Raised when the 
+     * parameter name is not recognized.
+     * @since DOM level 3
+     **/
+    virtual void setParameter(const XMLCh* name, const void* value) = 0;
+
+    // -----------------------------------------------------------------------
+    //  Getter methods
+    // -----------------------------------------------------------------------
+    /** Return the value of a parameter if known. 
+     * @param name The name of the parameter.
+     * @return The current object associated with the specified parameter or 
+     * null if no object has been associated or if the parameter is not 
+     * supported.
+     * @exception DOMException (NOT_FOUND_ERR) Raised when the i
+     * boolean parameter 
+     * name is not recognized.
+     * @since DOM level 3
+     **/    
+    virtual const void* getParameter(const XMLCh* name) const = 0;
+
+                                        
+    // -----------------------------------------------------------------------
+    //  Query methods
+    // -----------------------------------------------------------------------
+
+    /** Check if setting a parameter to a specific value is supported. 
+     * @param name The name of the parameter to check.
+     * @param value An object. if null, the returned value is true.
+     * @return true if the parameter could be successfully set to the specified 
+     * value, or false if the parameter is not recognized or the requested value 
+     * is not supported. This does not change the current value of the parameter 
+     * itself.
+     * @since DOM level 3
+     **/
+    virtual bool canSetParameter(const XMLCh* name, const void* value) const = 0;
+
+    // -----------------------------------------------------------------------
+    //  All constructors are hidden, just the destructor is available
+    // -----------------------------------------------------------------------
+    /** @name Destructor */
+    //@{
+    /**
+     * Destructor
+     *
+     */
+    virtual ~DOMConfiguration() {};
+    //@}
+};
+	
+XERCES_CPP_NAMESPACE_END
+
+#endif 
+
+/**
+ * End of file DOMConfiguration.hpp
+ */
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/DOMXPathEvaluator.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/DOMXPathEvaluator.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/DOMXPathEvaluator.hpp	(revision 2674)
@@ -0,0 +1,172 @@
+#ifndef DOMXPathEvaluator_HEADER_GUARD_
+#define DOMXPathEvaluator_HEADER_GUARD_
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <xercesc/util/XercesDefs.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class DOMXPathNSResolver;
+class DOMXPathExpression;
+class DOMNode;
+
+/**
+ * The evaluation of XPath expressions is provided by <code>DOMXPathEvaluator</code>. 
+ * In a DOM implementation which supports the XPath 3.0 feature, the <code>DOMXPathEvaluator</code>
+ * interface will be implemented on the same object which implements the Document interface permitting
+ * it to be obtained by casting or by using the DOM Level 3 getInterface method. In this case the
+ * implementation obtained from the Document supports the XPath DOM module and is compatible 
+ * with the XPath 1.0 specification.
+ * Evaluation of expressions with specialized extension functions or variables may not
+ * work in all implementations and is, therefore, not portable. XPathEvaluator implementations
+ * may be available from other sources that could provide specific support for specialized extension
+ * functions or variables as would be defined by other specifications.
+ * @since DOM Level 3
+ */
+class CDOM_EXPORT DOMXPathEvaluator
+{
+
+protected:
+    // -----------------------------------------------------------------------
+    //  Hidden constructors
+    // -----------------------------------------------------------------------
+    /** @name Hidden constructors */
+    //@{    
+    DOMXPathEvaluator() {};
+    //@}
+
+private:
+    // -----------------------------------------------------------------------
+    // Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    /** @name Unimplemented constructors and operators */
+    //@{
+    DOMXPathEvaluator(const DOMXPathEvaluator &);
+    DOMXPathEvaluator& operator = (const  DOMXPathEvaluator&);
+    //@}
+
+public:
+    // -----------------------------------------------------------------------
+    //  All constructors are hidden, just the destructor is available
+    // -----------------------------------------------------------------------
+    /** @name Destructor */
+    //@{
+    /**
+     * Destructor
+     *
+     */
+    virtual ~DOMXPathEvaluator() {};
+    //@}
+
+    // -----------------------------------------------------------------------
+    // Virtual DOMDocument interface
+    // -----------------------------------------------------------------------
+    /** @name Functions introduced in DOM Level 3 */
+    //@{
+
+    /**
+     * Creates a parsed XPath expression with resolved namespaces. This is useful
+     * when an expression will be reused in an application since it makes it 
+     * possible to compile the expression string into a more efficient internal 
+     * form and preresolve all namespace prefixes which occur within the expression.
+     * @param expression of type XMLCh - The XPath expression string to be parsed.
+     * @param resolver of type <code>XPathNSResolver</code> - The resolver permits 
+     * translation of all prefixes, including the xml namespace prefix, within the XPath expression
+     * into appropriate namespace URIs. If this is specified as null, any namespace 
+     * prefix within the expression will result in <code>DOMException</code> being thrown with the
+     * code NAMESPACE_ERR.
+     * @return <code>XPathExpression</code> The compiled form of the XPath expression.
+     * @exception <code>XPathException</code>
+     * INVALID_EXPRESSION_ERR: Raised if the expression is not legal according to the 
+     * rules of the <code>DOMXPathEvaluator</code>.
+     * @exception DOMException
+     * NAMESPACE_ERR: Raised if the expression contains namespace prefixes which cannot
+     * be resolved by the specified <code>XPathNSResolver</code>.
+     * @since DOM Level 3
+     */
+    virtual const DOMXPathExpression*    createExpression(const XMLCh *expression, const DOMXPathNSResolver *resolver) = 0;
+
+
+    /** Adapts any DOM node to resolve namespaces so that an XPath expression can be
+     * easily evaluated relative to the context of the node where it appeared within
+     * the document. This adapter works like the DOM Level 3 method lookupNamespaceURI
+     * on nodes in resolving the namespaceURI from a given prefix using the current 
+     * information available in the node's hierarchy at the time lookupNamespaceURI 
+     * is called. also correctly resolving the implicit xml prefix.
+     * @param nodeResolver of type <code>DOMNode</code> The node to be used as a context 
+     * for namespace resolution.
+     * @return <code>XPathNSResolver</code> <code>XPathNSResolver</code> which resolves namespaces 
+     * with respect to the definitions in scope for a specified node.
+     */
+    virtual const DOMXPathNSResolver*    createNSResolver(DOMNode *nodeResolver) = 0;
+
+
+    /**
+     * Evaluates an XPath expression string and returns a result of the specified 
+     * type if possible.
+     * @param expression of type XMLCh The XPath expression string to be parsed 
+     * and evaluated.
+     * @param contextNode of type <code>DOMNode</code> The context is context node 
+     * for the evaluation 
+     * of this XPath expression. If the <code>DOMXPathEvaluator</code> was obtained by
+     * casting the <code>DOMDocument</code> then this must be owned by the same 
+     * document and must be a <code>DOMDocument</code>, <code>DOMElement</code>, 
+     * <code>DOMAttribute</code>, <code>DOMText</code>, <code>DOMCDATASection</code>, 
+     * <code>DOMComment</code>, <code>DOMProcessingInstruction</code>, or 
+     * <code>XPathNamespace</code> node. If the context node is a <code>DOMText</code> or 
+     * a <code>DOMCDATASection</code>, then the context is interpreted as the whole 
+     * logical text node as seen by XPath, unless the node is empty in which case it
+     * may not serve as the XPath context.
+     * @param resolver of type <code>XPathNSResolver</code> The resolver permits 
+     * translation of all prefixes, including the xml namespace prefix, within 
+     * the XPath expression into appropriate namespace URIs. If this is specified 
+     * as null, any namespace prefix within the expression will result in 
+     * <code>DOMException</code> being thrown with the code NAMESPACE_ERR.
+     * @param type of type unsigned short - If a specific type is specified, then 
+     * the result will be returned as the corresponding type.
+     * For XPath 1.0 results, this must be one of the codes of the <code>XPathResult</code>
+     * interface.
+     * @param result of type void* - The result specifies a specific result object
+     * which may be reused and returned by this method. If this is specified as 
+     * null or the implementation does not reuse the specified result, a new result
+     * object will be constructed and returned.
+     * For XPath 1.0 results, this object will be of type <code>XPathResult</code>.
+     * @return void* The result of the evaluation of the XPath expression.
+     * For XPath 1.0 results, this object will be of type <code>XPathResult</code>.
+     * @exception <code>XPathException</code>
+     * INVALID_EXPRESSION_ERR: Raised if the expression is not legal 
+     * according to the rules of the <code>DOMXPathEvaluator</code>
+     * TYPE_ERR: Raised if the result cannot be converted to return the specified type.
+     * @exception DOMException
+     * NAMESPACE_ERR: Raised if the expression contains namespace prefixes 
+     * which cannot be resolved by the specified <code>XPathNSResolver</code>.
+     * WRONG_DOCUMENT_ERR: The Node is from a document that is not supported 
+     * by this <code>DOMXPathEvaluator</code>.
+     * NOT_SUPPORTED_ERR: The Node is not a type permitted as an XPath context 
+     * node or the request type is not permitted by this <code>DOMXPathEvaluator</code>.
+     */
+    virtual void* evaluate(const XMLCh *expression, DOMNode *contextNode, const DOMXPathNSResolver *resolver, 
+                           unsigned short type, void* result) = 0;
+
+    //@}
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/DOMAttr.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/DOMAttr.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/DOMAttr.hpp	(revision 2674)
@@ -0,0 +1,181 @@
+#ifndef DOMAttr_HEADER_GUARD_
+#define DOMAttr_HEADER_GUARD_
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: DOMAttr.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+#include <xercesc/util/XercesDefs.hpp>
+#include <xercesc/dom/DOMNode.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class DOMElement;
+class DOMTypeInfo;
+
+/**
+ * The <code>DOMAttr</code> class refers to an attribute of an XML element.
+ *
+ * Typically the allowable values for the
+ * attribute are defined in a documenttype definition.
+ * <p><code>DOMAttr</code> objects inherit the <code>DOMNode</code>  interface, but
+ * since attributes are not actually child nodes of the elements they are associated with, the
+ * DOM does not consider them part of the document  tree.  Thus, the
+ * <code>DOMNode</code> attributes <code>parentNode</code>,
+ * <code>previousSibling</code>, and <code>nextSibling</code> have a  null
+ * value for <code>DOMAttr</code> objects. The DOM takes the  view that
+ * attributes are properties of elements rather than having a  separate
+ * identity from the elements they are associated with;  this should make it
+ * more efficient to implement such features as default attributes associated
+ * with all elements of a  given type.  Furthermore, attribute nodes
+ * may not be immediate children of a <code>DOMDocumentFragment</code>. However,
+ * they can be associated with <code>DOMElement</code> nodes contained within a
+ * <code>DOMDocumentFragment</code>. In short, users of the DOM
+ * need to be aware that  <code>DOMAttr</code> nodes have some things in  common
+ * with other objects inheriting the <code>DOMNode</code> interface, but they
+ * also are quite distinct.
+ *
+ * @since DOM Level 1
+ */
+class CDOM_EXPORT DOMAttr: public DOMNode {
+protected:
+    // -----------------------------------------------------------------------
+    //  Hidden constructors
+    // -----------------------------------------------------------------------
+    /** @name Hidden constructors */
+    //@{    
+    DOMAttr() {}
+    DOMAttr(const DOMAttr &other) : DOMNode(other) {}
+    //@}
+
+private:    
+    // -----------------------------------------------------------------------
+    // Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    /** @name Unimplemented operators */
+    //@{
+    DOMAttr & operator = (const DOMAttr &);
+    //@}
+
+public:
+    // -----------------------------------------------------------------------
+    //  All constructors are hidden, just the destructor is available
+    // -----------------------------------------------------------------------
+    /** @name Destructor */
+    //@{
+    /**
+     * Destructor
+     *
+     */
+    virtual ~DOMAttr() {};
+    //@}
+
+    // -----------------------------------------------------------------------
+    //  Virtual DOMAttr interface
+    // -----------------------------------------------------------------------
+    /** @name Functions introduced in DOM Level 1 */
+    //@{
+    // -----------------------------------------------------------------------
+    //  Getter methods
+    // -----------------------------------------------------------------------
+    /**
+     * Returns the name of this attribute.
+     * @since DOM Level 1
+     */
+    virtual const XMLCh *       getName() const = 0;
+
+    /**
+     *
+     * Returns true if the attribute received its value explicitly in the
+     * XML document, or if a value was assigned programatically with
+     * the setValue function.  Returns false if the attribute value
+     * came from the default value declared in the document's DTD.
+     * @since DOM Level 1
+     */
+    virtual bool            getSpecified() const = 0;
+
+    /**
+     * Returns the value of the attribute.
+     *
+     * The value of the attribute is returned as a string.
+     * Character and general entity references are replaced with their values.
+     * @since DOM Level 1
+     */
+    virtual const XMLCh *       getValue() const = 0;
+
+    // -----------------------------------------------------------------------
+    //  Setter methods
+    // -----------------------------------------------------------------------
+    /**
+     * Sets the value of the attribute.  A text node with the unparsed contents
+     * of the string will be created.
+     *
+     * @param value The value of the DOM attribute to be set
+     * @since DOM Level 1
+     */
+    virtual void            setValue(const XMLCh *value) = 0;
+    //@}
+
+    /** @name Functions introduced in DOM Level 2. */
+    //@{
+    /**
+     * The <code>DOMElement</code> node this attribute is attached to or
+     * <code>null</code> if this attribute is not in use.
+     *
+     * @since DOM Level 2
+     */
+    virtual DOMElement     *getOwnerElement() const = 0;
+    //@}
+
+    /** @name Functions introduced in DOM Level 3. */
+    //@{
+    /**
+     * Returns whether this attribute is known to be of type ID or not. 
+     * When it is and its value is unique, the ownerElement of this attribute 
+     * can be retrieved using getElementById on Document.
+     *
+     * <p><b>"Experimental - subject to change"</b></p>
+     *
+     * @return <code>bool</code> stating if this <code>DOMAttr</code> is an ID
+     * @since DOM level 3
+     */
+    virtual bool            isId() const = 0;
+
+
+    /**
+     * Returns the type information associated with this attribute.
+     *
+     * <p><b>"Experimental - subject to change"</b></p>
+     *
+     * @return the <code>DOMTypeInfo</code> associated with this attribute
+     * @since DOM level 3
+     */
+    virtual const DOMTypeInfo * getTypeInfo() const = 0;
+
+    //@}
+
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
+
+
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/deprecated/DOM_Notation.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/deprecated/DOM_Notation.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/deprecated/DOM_Notation.hpp	(revision 2674)
@@ -0,0 +1,138 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: DOM_Notation.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#ifndef DOM_Notation_HEADER_GUARD_
+#define DOM_Notation_HEADER_GUARD_
+
+#include <xercesc/util/XercesDefs.hpp>
+#include "DOM_Node.hpp"
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+
+class NotationImpl;
+
+/**
+ * This interface represents a notation declared in the DTD. A notation either
+ * declares, by name, the format of an unparsed entity (see section 4.7 of
+ * the XML 1.0 specification), or is used for formal declaration of
+ * Processing Instruction targets (see section 2.6 of the XML 1.0
+ * specification). The <code>nodeName</code> attribute inherited from
+ * <code>Node</code> is set to the declared name of the notation.
+ * <p>The DOM Level 1 does not support editing <code>Notation</code> nodes;
+ * they are therefore readonly.
+ * <p>A <code>Notation</code> node does not have any parent.
+ */
+class DEPRECATED_DOM_EXPORT DOM_Notation: public DOM_Node {
+public:
+    /** @name Constructors and assignment operator */
+    //@{
+    /**
+      * Default constructor for DOM_Notation.  The resulting object does not
+    * refer to an actual Notation node; it will compare == to 0, and is similar
+    * to a null object reference variable in Java.  It may subsequently be
+    * assigned to refer to an actual Notation node.
+    * <p>
+    * New notation nodes are created by DOM_Document::createNotation().
+    *
+      *
+      */
+    DOM_Notation();
+
+    /**
+      * Copy constructor.  Creates a new <code>DOM_Notation</code> that refers to the
+      * same underlying node as the original.  See also DOM_Node::clone(),
+      * which will copy the actual notation node, rather than just creating a new
+      * reference to the original node.
+      *
+      * @param other The object to be copied.
+      */
+    DOM_Notation(const DOM_Notation &other);
+
+    /**
+      * Assignment operator.
+      *
+      * @param other The object to be copied.
+      */
+    DOM_Notation & operator = (const DOM_Notation &other);
+
+     /**
+      * Assignment operator.  This overloaded variant is provided for
+      *   the sole purpose of setting a DOM_Node reference variable to
+      *   zero.  Nulling out a reference variable in this way will decrement
+      *   the reference count on the underlying Node object that the variable
+      *   formerly referenced.  This effect is normally obtained when reference
+      *   variable goes out of scope, but zeroing them can be useful for
+      *   global instances, or for local instances that will remain in scope
+      *   for an extended time,  when the storage belonging to the underlying
+      *   node needs to be reclaimed.
+      *
+      * @param val   Only a value of 0, or null, is allowed.
+      */
+    DOM_Notation & operator = (const DOM_NullPtr *val);
+
+
+    //@}
+    /** @name Destructor. */
+    //@{
+	 /**
+	  * Destructor for DOM_Notation.  The object being destroyed is the reference
+      * object, not the underlying Notation node itself.
+      *
+	  */
+    ~DOM_Notation();
+
+    //@}
+    /** @name Get functions. */
+    //@{
+
+    /**
+     * Get the public identifier of this notation.
+     *
+     * If the  public identifier was not
+     * specified, this is <code>null</code>.
+     * @return Returns the public identifier of the notation
+     */
+    DOMString        getPublicId() const;
+    /**
+     * Get the system identifier of this notation.
+     *
+     * If the  system identifier was not
+     * specified, this is <code>null</code>.
+     * @return Returns the system identifier of the notation
+     */
+    DOMString        getSystemId() const;
+
+
+    //@}
+
+protected:
+    DOM_Notation(NotationImpl *impl);
+
+    friend class DOM_Document;
+
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
+
+
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/deprecated/DOM_EntityReference.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/deprecated/DOM_EntityReference.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/deprecated/DOM_EntityReference.hpp	(revision 2674)
@@ -0,0 +1,110 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: DOM_EntityReference.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#ifndef DOM_EntityReference_HEADER_GUARD_
+#define DOM_EntityReference_HEADER_GUARD_
+
+#include <xercesc/util/XercesDefs.hpp>
+#include "DOM_Node.hpp"
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+
+class EntityReferenceImpl;
+
+/**
+ * <code>EntityReference</code> nodes will appear in the structure
+ * model when an entity reference is in the source document, or when the user
+ * wishes to insert an entity reference.
+ *
+ * The expansion of the entity will appear as child nodes of the entity
+ * reference node.  The expansion may be just simple text, or it may
+ * be more complex, containing additional entity refs.
+ *
+*/
+
+class DEPRECATED_DOM_EXPORT DOM_EntityReference: public DOM_Node {
+public:
+    /** @name Constructors and assignment operator */
+    //@{
+    /**
+      * Default constructor for DOM_EntityReference.  The resulting object does not
+    * refer to an actual Entity Reference node; it will compare == to 0, and is similar
+    * to a null object reference variable in Java.  It may subsequently be
+    * assigned to refer to an actual entity reference node.
+    * <p>
+    * New entity reference nodes are created by DOM_Document::createEntityReference().
+      *
+      */
+    DOM_EntityReference();
+
+    /**
+      * Copy constructor.  Creates a new <code>DOM_EntityReference</code> that refers to the
+    * same underlying node as the original.
+      *
+      * @param other The object to be copied.
+      */
+    DOM_EntityReference(const DOM_EntityReference &other);
+
+    /**
+      * Assignment operator.
+      *
+      * @param other The object to be copied.
+      */
+    DOM_EntityReference & operator = (const DOM_EntityReference &other);
+
+    /**
+      * Assignment operator.  This overloaded variant is provided for
+      *   the sole purpose of setting a DOM_Node reference variable to
+      *   zero.  Nulling out a reference variable in this way will decrement
+      *   the reference count on the underlying Node object that the variable
+      *   formerly referenced.  This effect is normally obtained when reference
+      *   variable goes out of scope, but zeroing them can be useful for
+      *   global instances, or for local instances that will remain in scope
+      *   for an extended time,  when the storage belonging to the underlying
+      *   node needs to be reclaimed.
+      *
+      * @param val   Only a value of 0, or null, is allowed.
+      */
+    DOM_EntityReference & operator = (const DOM_NullPtr *val);
+
+    //@}
+    /** @name Destructor. */
+    //@{
+	 /**
+	  * Destructor for DOM_EntityReference.  The object being destroyed is the reference
+      * object, not the underlying entity reference node itself.
+	  *
+	  */
+    ~DOM_EntityReference();
+    //@}
+
+protected:
+    DOM_EntityReference(EntityReferenceImpl *impl);
+
+    friend class DOM_Document;
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
+
+
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/deprecated/DOMParser.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/deprecated/DOMParser.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/deprecated/DOMParser.hpp	(revision 2674)
@@ -0,0 +1,1978 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: DOMParser.hpp 568078 2007-08-21 11:43:25Z amassari $
+ *
+ */
+
+#if !defined(DOMPARSER_HPP)
+#define DOMPARSER_HPP
+
+#include <xercesc/framework/XMLDocumentHandler.hpp>
+#include <xercesc/framework/XMLErrorReporter.hpp>
+#include <xercesc/framework/XMLEntityHandler.hpp>
+#include <xercesc/util/ValueStackOf.hpp>
+#include <xercesc/validators/DTD/DocTypeHandler.hpp>
+#include <xercesc/validators/DTD/DTDElementDecl.hpp>
+#include "DOM_Document.hpp"
+#include "DOM_DocumentType.hpp"
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+
+class EntityResolver;
+class ErrorHandler;
+class XMLPScanToken;
+class XMLScanner;
+class XMLValidator;
+class Grammar;
+class GrammarResolver;
+class XMLGrammarPool;
+class XMLEntityResolver;
+class PSVIHandler;
+
+/**
+  * This class implements the Document Object Model (DOM) interface.
+  * It should be used by applications which choose to parse and
+  * process the XML document using the DOM api's. This implementation
+  * also allows the applications to install an error and an entitty
+  * handler (useful extensions to the DOM specification).
+  *
+  * <p>It can be used to instantiate a validating or non-validating
+  * parser, by setting a member flag.</p>
+  */
+class DEPRECATED_DOM_EXPORT DOMParser :
+
+    public XMLDocumentHandler
+    , public XMLErrorReporter
+    , public XMLEntityHandler
+    , public DocTypeHandler
+    , public XMemory
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Class types
+    // -----------------------------------------------------------------------
+    enum ValSchemes
+    {
+        Val_Never
+        , Val_Always
+        , Val_Auto
+    };
+
+
+    // -----------------------------------------------------------------------
+    //  Constructors and Detructor
+    // -----------------------------------------------------------------------
+
+    /** @name Constructors and Destructor */
+    //@{
+    /** Construct a DOMParser, with an optional validator
+      *
+      * Constructor with an instance of validator class to use for
+      * validation. If you don't provide a validator, a default one will
+      * be created for you in the scanner.
+      *
+      * @param valToAdopt Pointer to the validator instance to use. The
+      *                   parser is responsible for freeing the memory.
+      */
+    DOMParser
+    (
+          XMLValidator* const   valToAdopt = 0
+        , MemoryManager* const  manager = XMLPlatformUtils::fgMemoryManager
+        , XMLGrammarPool* const gramPool = 0
+    );
+
+    /**
+      * Destructor
+      */
+    ~DOMParser();
+
+    //@}
+
+    /** Reset the parser
+      *
+      * This method resets the state of the DOM driver and makes
+      * it ready for a fresh parse run.
+      */
+    void reset();
+
+
+    // -----------------------------------------------------------------------
+    //  Getter methods
+    // -----------------------------------------------------------------------
+
+    /** @name Getter methods */
+    //@{
+
+    /** Get the DOM document
+      *
+      * This method returns the DOM_Document object representing the
+      * root of the document tree. This object provides the primary
+      * access to the document's data.
+      *
+      * @return The DOM_Document object which represents the entire
+      *         XML document.
+      */
+    DOM_Document getDocument();
+
+    /** Get a pointer to the error handler
+      *
+      * This method returns the installed error handler. If no handler
+      * has been installed, then it will be a zero pointer.
+      *
+      * @return The pointer to the installed error handler object.
+      */
+    ErrorHandler* getErrorHandler();
+
+    /** Get a const pointer to the error handler
+      *
+      * This method returns the installed error handler.  If no handler
+      * has been installed, then it will be a zero pointer.
+      *
+      * @return A const pointer to the installed error handler object.
+      */
+    const ErrorHandler* getErrorHandler() const;
+
+    /** Get a pointer to the PSVI handler
+      *
+      * This method returns the installed PSVI handler. If no handler
+      * has been installed, then it will be a zero pointer.
+      *
+      * @return The pointer to the installed PSVI handler object.
+      */
+    PSVIHandler* getPSVIHandler();
+
+    /** Get a const pointer to the error handler
+      *
+      * This method returns the installed error handler.  If no handler
+      * has been installed, then it will be a zero pointer.
+      *
+      * @return A const pointer to the installed error handler object.
+      */
+    const PSVIHandler* getPSVIHandler() const;
+
+    /** Get a pointer to the entity resolver
+      *
+      * This method returns the installed entity resolver.  If no resolver
+      * has been installed, then it will be a zero pointer.
+      *
+      * @return The pointer to the installed entity resolver object.
+      */
+    EntityResolver* getEntityResolver();
+
+    /** Get a const pointer to the entity resolver
+      *
+      * This method returns the installed entity resolver. If no resolver
+      * has been installed, then it will be a zero pointer.
+      *
+      * @return A const pointer to the installed entity resolver object.
+      */
+    const EntityResolver* getEntityResolver() const;
+
+    /** Get a pointer to the entity resolver
+      *
+      * This method returns the installed entity resolver.  If no resolver
+      * has been installed, then it will be a zero pointer.
+      *
+      * @return The pointer to the installed entity resolver object.
+      */
+    XMLEntityResolver* getXMLEntityResolver();
+
+    /** Get a const pointer to the entity resolver
+      *
+      * This method returns the installed entity resolver. If no resolver
+      * has been installed, then it will be a zero pointer.
+      *
+      * @return A const pointer to the installed entity resolver object.
+      */
+    const XMLEntityResolver* getXMLEntityResolver() const;
+
+    /** Get a const reference to the underlying scanner
+      *
+      * This method returns a reference to the underlying scanner object.
+      * It allows read only access to data maintained in the scanner.
+      *
+      * @return A const reference to the underlying scanner object.
+      */
+    const XMLScanner& getScanner() const;
+
+    /** Get a const reference to the validator
+      *
+      * This method returns a reference to the parser's installed
+      * validator.
+      *
+      * @return A const reference to the installed validator object.
+      */
+    const XMLValidator& getValidator() const;
+
+    /**
+      * This method returns an enumerated value that indicates the current
+      * validation scheme set on this parser.
+      *
+      * @return The ValSchemes value current set on this parser.
+      * @see #setValidationScheme
+      */
+    ValSchemes getValidationScheme() const;
+
+    /** Get the 'do schema' flag
+      *
+      * This method returns the state of the parser's schema processing
+      * flag.
+      *
+      * @return true, if the parser is currently configured to
+      *         understand schema, false otherwise.
+      *
+      * @see #setDoSchema
+      */
+    bool getDoSchema() const;
+
+    /** Get the 'full schema constraint checking' flag
+      *
+      * This method returns the state of the parser's full schema constraint
+      * checking flag.
+      *
+      * @return true, if the parser is currently configured to
+      *         have full schema constraint checking, false otherwise.
+      *
+      * @see #setValidationSchemaFullChecking
+      */
+    bool getValidationSchemaFullChecking() const;
+
+    bool getIdentityConstraintChecking() const;
+
+    /** Get error count from the last parse operation.
+      *
+      * This method returns the error count from the last parse
+      * operation. Note that this count is actually stored in the
+      * scanner, so this method simply returns what the
+      * scanner reports.
+      *
+      * @return number of errors encountered during the latest
+      *			parse operation.
+      *
+      */
+    int getErrorCount() const;
+
+    /** Get the 'do namespaces' flag
+      *
+      * This method returns the state of the parser's namespace processing
+      * flag.
+      *
+      * @return true, if the parser is currently configured to
+      *         understand namespaces, false otherwise.
+      *
+      * @see #setDoNamespaces
+      */
+    bool getDoNamespaces() const;
+
+    /** Get the 'exit on first error' flag
+      *
+      * This method returns the state of the parser's
+      * exit-on-First-Fatal-Error flag. If this flag is true, then the
+      * parse will exit the first time it sees any non-wellformed XML or
+      * any validity error. The default state is true.
+      *
+      * @return true, if the parser is currently configured to
+      *         exit on the first fatal error, false otherwise.
+      *
+      * @see #setExitOnFirstFatalError
+      */
+    bool getExitOnFirstFatalError() const;
+
+    /**
+      * This method returns the state of the parser's
+      * validation-constraint-fatal flag.
+      *
+      * @return true, if the parser is currently configured to
+      *         set validation constraint errors as fatal, false
+      *         otherwise.
+      *
+      * @see #setValidationContraintFatal
+      */
+    bool getValidationConstraintFatal() const;
+
+    /** Get the 'include entity references' flag
+      *
+      * This method returns the flag that specifies whether the parser is
+      * creating entity reference nodes in the DOM tree being produced.
+      *
+      * @return  The state of the create entity reference node
+      *               flag.
+      * @see #setCreateEntityReferenceNodes
+      */
+    bool  getCreateEntityReferenceNodes()const;
+
+   /** Get the 'include ignorable whitespace' flag.
+      *
+      * This method returns the state of the parser's include ignorable
+      * whitespace flag.
+      *
+      * @return 'true' if the include ignorable whitespace flag is set on
+      *         the parser, 'false' otherwise.
+      *
+      * @see #setIncludeIgnorableWhitespace
+      */
+    bool getIncludeIgnorableWhitespace() const;
+
+    /** Get the 'to create MXLDecl node' flag.
+      *
+      * This method returns the state of the parser's to create XMLDecl
+      * DOM Node flag.
+      *
+      * @return 'true' if the toCreateXMLDeclTypeNode flag is set on
+      *         the parser, 'false' otherwise.
+      *
+      */
+    bool getToCreateXMLDeclTypeNode() const;
+
+   /** Get the set of Namespace/SchemaLocation that is specified externaly.
+      *
+      * This method returns the list of Namespace/SchemaLocation that was
+      * specified using setExternalSchemaLocation.
+      *
+      * The parser owns the returned string, and the memory allocated for
+      * the returned string will be destroyed when the parser is deleted.
+      *
+      * To ensure assessiblity of the returned information after the parser
+      * is deleted, callers need to copy and store the returned information
+      * somewhere else.
+      *
+      * @return a pointer to the list of Namespace/SchemaLocation that was
+      *         specified externally.  The pointer spans the same life-time as
+      *         the parser.  A null pointer is returned if nothing
+      *         was specified externally.
+      *
+      * @see #setExternalSchemaLocation(const XMLCh* const)
+      */
+    XMLCh* getExternalSchemaLocation() const;
+
+   /** Get the noNamespace SchemaLocation that is specified externaly.
+      *
+      * This method returns the no target namespace XML Schema Location
+      * that was specified using setExternalNoNamespaceSchemaLocation.
+      *
+      * The parser owns the returned string, and the memory allocated for
+      * the returned string will be destroyed when the parser is deleted.
+      *
+      * To ensure assessiblity of the returned information after the parser
+      * is deleted, callers need to copy and store the returned information
+      * somewhere else.
+      *
+      * @return a pointer to the no target namespace Schema Location that was
+      *         specified externally.  The pointer spans the same life-time as
+      *         the parser.  A null pointer is returned if nothing
+      *         was specified externally.
+      *
+      * @see #setExternalNoNamespaceSchemaLocation(const XMLCh* const)
+      */
+    XMLCh* getExternalNoNamespaceSchemaLocation() const;
+
+    /** Get the 'Grammar caching' flag
+      *
+      * This method returns the state of the parser's grammar caching when
+      * parsing an XML document.
+      *
+      * @return true, if the parser is currently configured to
+      *         cache grammars, false otherwise.
+      *
+      * @see #cacheGrammarFromParse
+      */
+    bool isCachingGrammarFromParse() const;
+
+    /** Get the 'Use cached grammar' flag
+      *
+      * This method returns the state of the parser's use of cached grammar
+      * when parsing an XML document.
+      *
+      * @return true, if the parser is currently configured to
+      *         use cached grammars, false otherwise.
+      *
+      * @see #useCachedGrammarInParse
+      */
+    bool isUsingCachedGrammarInParse() const;
+
+    /**
+      * Get the 'calculate src offset flag'
+      *
+      * This method returns the state of the parser's src offset calculation
+      * when parsing an XML document.
+      *
+      * @return true, if the parser is currently configured to
+      *         calculate src offsets, false otherwise.
+      *
+      * @see #setCalculateSrcOfs
+      */
+    bool getCalculateSrcOfs() const;
+
+    /**
+      * Get the 'force standard uri flag'
+      *
+      * This method returns the state if the parser forces standard uri
+      *
+      * @return true, if the parser is currently configured to
+      *         force standard uri, i.e. malformed uri will be rejected.
+      *
+      * @see #setStandardUriConformant
+      */
+    bool getStandardUriConformant() const;
+
+    /**
+      * Retrieve the grammar that is associated with the specified namespace key
+      *
+      * @param  nameSpaceKey Namespace key
+      * @return Grammar associated with the Namespace key.
+      */
+    Grammar* getGrammar(const XMLCh* const nameSpaceKey);
+
+    /**
+      * Retrieve the grammar where the root element is declared.
+      *
+      * @return Grammar where root element declared
+      */
+    Grammar* getRootGrammar();
+
+    /**
+      * Returns the string corresponding to a URI id from the URI string pool.
+      *
+      * @param uriId id of the string in the URI string pool.
+      * @return URI string corresponding to the URI id.
+      */
+    const XMLCh* getURIText(unsigned int uriId) const;
+
+    /**
+      * Returns the current src offset within the input source.
+      *
+      * @return offset within the input source
+      */
+    unsigned int getSrcOffset() const;
+
+    //@}
+
+
+    // -----------------------------------------------------------------------
+    //  Setter methods
+    // -----------------------------------------------------------------------
+
+    /** @name Setter methods */
+    //@{
+
+    /** Set the error handler
+      *
+      * This method allows applications to install their own error handler
+      * to trap error and warning messages.
+      *
+      * <i>Any previously set handler is merely dropped, since the parser
+      * does not own them.</i>
+      *
+      * @param handler  A const pointer to the user supplied error
+      *                 handler.
+      *
+      * @see #getErrorHandler
+      */
+    void setErrorHandler(ErrorHandler* const handler);
+
+    /** Set the PSVI handler
+      *
+      * This method allows applications to install their own PSVI handler.
+      *
+      * <i>Any previously set handler is merely dropped, since the parser
+      * does not own them.</i>
+      *
+      * @param handler  A const pointer to the user supplied PSVI
+      *                 handler.
+      *
+      * @see #getPSVIHandler
+      */
+    void setPSVIHandler(PSVIHandler* const handler);
+
+
+    /** Set the entity resolver
+      *
+      * This method allows applications to install their own entity
+      * resolver. By installing an entity resolver, the applications
+      * can trap and potentially redirect references to external
+      * entities.
+      *
+      * <i>Any previously set entity resolver is merely dropped, since the parser
+      * does not own them.  If both setEntityResolver and setXMLEntityResolver
+      * are called, then the last one is used.</i>
+      *
+      * @param handler  A const pointer to the user supplied entity
+      *                 resolver.
+      *
+      * @see #getEntityResolver
+      */
+    void setEntityResolver(EntityResolver* const handler);
+
+    /** Set the entity resolver
+      *
+      * This method allows applications to install their own entity
+      * resolver. By installing an entity resolver, the applications
+      * can trap and potentially redirect references to external
+      * entities.
+      *
+      * <i>Any previously set entity resolver is merely dropped, since the parser
+      * does not own them.  If both setEntityResolver and setXMLEntityResolver
+      * are called, then the last one is used.</i>
+      *
+      * @param handler  A const pointer to the user supplied entity
+      *                 resolver.
+      *
+      * @see #getXMLEntityResolver
+      */
+    void setXMLEntityResolver(XMLEntityResolver* const handler);
+
+    /** Set the 'do namespaces' flag
+      *
+      * This method allows users to enable or disable the parser's
+      * namespace processing. When set to true, parser starts enforcing
+      * all the constraints and rules specified by the NameSpace
+      * specification.
+      *
+      * The parser's default state is: false.
+      *
+      * @param newState The value specifying whether NameSpace rules should
+      *                 be enforced or not.
+      *
+      * @see #getDoNamespaces
+      */
+    void setDoNamespaces(const bool newState);
+
+    /** Set the 'exit on first error' flag
+      *
+      * This method allows users to set the parser's behaviour when it
+      * encounters the first fatal error. If set to true, the parser
+      * will exit at the first fatal error. If false, then it will
+      * report the error and continue processing.
+      *
+      * The default value is 'true' and the parser exits on the
+      * first fatal error.
+      *
+      * @param newState The value specifying whether the parser should
+      *                 continue or exit when it encounters the first
+      *                 fatal error.
+      *
+      * @see #getExitOnFirstFatalError
+      */
+    void setExitOnFirstFatalError(const bool newState);
+
+    /**
+      * This method allows users to set the parser's behaviour when it
+      * encounters a validtion constraint error. If set to true, and the
+      * the parser will treat validation error as fatal and will exit depends on the
+      * state of "getExitOnFirstFatalError". If false, then it will
+      * report the error and continue processing.
+      *
+      * Note: setting this true does not mean the validation error will be printed with
+      * the word "Fatal Error".   It is still printed as "Error", but the parser
+      * will exit if "setExitOnFirstFatalError" is set to true.
+      *
+      * <p>The default value is 'false'.</p>
+      *
+      * @param newState If true, the parser will exit if "setExitOnFirstFatalError"
+      *                 is set to true.
+      *
+      * @see #getValidationConstraintFatal
+      * @see #setExitOnFirstFatalError
+      */
+    void setValidationConstraintFatal(const bool newState);
+
+     /** Set the 'include entity references' flag
+      *
+      * This method allows the user to specify whether the parser should
+      * create entity reference nodes in the DOM tree being produced.
+      * When the 'create' flag is
+      * true, the parser will create EntityReference nodes in the DOM tree.
+      * The EntityReference nodes and their child nodes will be read-only.
+      * When the 'create' flag is false, no EntityReference nodes will be created.
+      * <p>The replacement text
+      * of the entity is included in either case, either as a
+      * child of the Entity Reference node or in place at the location
+      * of the reference.
+      * <p>The default value is 'true'.
+      *
+      * @param create The new state of the create entity reference nodes
+      *               flag.
+      * @see #getCreateEntityReferenceNodes
+      */
+    void setCreateEntityReferenceNodes(const bool create);
+
+   /** Set the 'include ignorable whitespace' flag
+      *
+      * This method allows the user to specify whether a validating parser
+      * should include ignorable whitespaces as text nodes.  It has no effect
+      * on non-validating parsers which always include non-markup text.
+      * <p>When set to true (also the default), ignorable whitespaces will be
+      * added to the DOM tree as text nodes.  The method
+      * DOM_Text::isIgnorableWhitespace() will return true for those text
+      * nodes only.
+      * <p>When set to false, all ignorable whitespace will be discarded and
+      * no text node is added to the DOM tree.  Note: applications intended
+      * to process the "xml:space" attribute should not set this flag to false.
+      * And this flag also overrides any schema datateye whitespace facets,
+      * that is, all ignorable whitespace will be discarded even though
+      * 'preserve' is set in schema datatype whitespace facets.
+      *
+      * @param include The new state of the include ignorable whitespace
+      *                flag.
+      *
+      * @see #getIncludeIgnorableWhitespace
+      */
+    void setIncludeIgnorableWhitespace(const bool include);
+
+    /**
+      * This method allows users to set the validation scheme to be used
+      * by this parser. The value is one of the ValSchemes enumerated values
+      * defined by this class:
+      *
+      * <br>  Val_Never  - turn off validation
+      * <br>  Val_Always - turn on validation
+      * <br>  Val_Auto   - turn on validation if any internal/external
+      *                  DTD subset have been seen
+      *
+      * <p>The parser's default state is: Val_Never.</p>
+      *
+      * @param newScheme The new validation scheme to use.
+      *
+      * @see #getValidationScheme
+      */
+    void setValidationScheme(const ValSchemes newScheme);
+
+    /** Set the 'do schema' flag
+      *
+      * This method allows users to enable or disable the parser's
+      * schema processing. When set to false, parser will not process
+      * any schema found.
+      *
+      * The parser's default state is: false.
+      *
+      * Note: If set to true, namespace processing must also be turned on.
+      *
+      * @param newState The value specifying whether schema support should
+      *                 be enforced or not.
+      *
+      * @see #getDoSchema
+      */
+    void setDoSchema(const bool newState);
+
+    /**
+      * This method allows the user to turn full Schema constraint checking on/off.
+      * Only takes effect if Schema validation is enabled.
+      * If turned off, partial constraint checking is done.
+      *
+      * Full schema constraint checking includes those checking that may
+      * be time-consuming or memory intensive. Currently, particle unique
+      * attribution constraint checking and particle derivation resriction checking
+      * are controlled by this option.
+      *
+      * The parser's default state is: false.
+      *
+      * @param schemaFullChecking True to turn on full schema constraint checking.
+      *
+      * @see #getValidationSchemaFullChecking
+      */
+    void setValidationSchemaFullChecking(const bool schemaFullChecking);
+
+    void setIdentityConstraintChecking(const bool identityConstraintChecking);
+
+    /**
+      * This method allows users to set the toCreateXMLDeclTypeNode flag
+      * by this parser. By setting it to 'true' user can have XMLDecl type
+      * nodes attached to the DOM tree.
+      *
+      * <p>The parser's default state is: false </p>
+      *
+      * @param create The new to create XMLDecl type node flag
+      *
+      */
+    void setToCreateXMLDeclTypeNode(const bool create);
+
+    /**
+      * This method allows the user to specify a list of schemas to use.
+      * If the targetNamespace of a schema specified using this method matches
+      * the targetNamespace of a schema occuring in the instance document in
+      * the schemaLocation attribute, or if the targetNamespace matches the
+      * namespace attribute of the "import" element, the schema specified by the
+      * user using this method will be used (i.e., the schemaLocation attribute
+      * in the instance document or on the "import" element will be effectively ignored).
+      *
+      * If this method is called more than once, only the last one takes effect.
+      *
+      * The syntax is the same as for schemaLocation attributes in instance
+      * documents: e.g, "http://www.example.com file_name.xsd". The user can
+      * specify more than one XML Schema in the list.
+      *
+      * @param schemaLocation the list of schemas to use
+      *
+      * @see #getExternalSchemaLocation
+      */
+
+    void setExternalSchemaLocation(const XMLCh* const schemaLocation);
+
+    /**
+      * This method is same as setExternalSchemaLocation(const XMLCh* const).
+      * It takes native char string as parameter
+      *
+      * @param schemaLocation the list of schemas to use
+      *
+      * @see #setExternalSchemaLocation(const XMLCh* const)
+      */
+    void setExternalSchemaLocation(const char* const schemaLocation);
+
+    /**
+      * This method allows the user to specify the no target namespace XML
+      * Schema Location externally.  If specified, the instance document's
+      * noNamespaceSchemaLocation attribute will be effectively ignored.
+      *
+      * If this method is called more than once, only the last one takes effect.
+      *
+      * The syntax is the same as for the noNamespaceSchemaLocation attribute
+      * that may occur in an instance document: e.g."file_name.xsd".
+      *
+      * @param noNamespaceSchemaLocation the XML Schema Location with no target namespace
+      *
+      * @see #getExternalNoNamespaceSchemaLocation
+      */
+    void setExternalNoNamespaceSchemaLocation(const XMLCh* const noNamespaceSchemaLocation);
+
+    /**
+      * This method is same as setExternalNoNamespaceSchemaLocation(const XMLCh* const).
+      * It takes native char string as parameter
+      *
+      * @param noNamespaceSchemaLocation the XML Schema Location with no target namespace
+      *
+      * @see #setExternalNoNamespaceSchemaLocation(const XMLCh* const)
+      */
+    void setExternalNoNamespaceSchemaLocation(const char* const noNamespaceSchemaLocation);
+
+    /** Set the 'Grammar caching' flag
+      *
+      * This method allows users to enable or disable caching of grammar when
+      * parsing XML documents. When set to true, the parser will cache the
+      * resulting grammar for use in subsequent parses.
+      *
+      * If the flag is set to true, the 'Use cached grammar' flag will also be
+      * set to true.
+      *
+      * The parser's default state is: false.
+      *
+      * @param newState The value specifying whether we should cache grammars
+      *                 or not.
+      *
+      * @see #isCachingGrammarFromParse
+      * @see #useCachedGrammarInParse
+      */
+    void cacheGrammarFromParse(const bool newState);
+
+    /** Set the 'Use cached grammar' flag
+      *
+      * This method allows users to enable or disable the use of cached
+      * grammars.  When set to true, the parser will use the cached grammar,
+      * instead of building the grammar from scratch, to validate XML
+      * documents.
+      *
+      * If the 'Grammar caching' flag is set to true, this mehod ignore the
+      * value passed in.
+      *
+      * The parser's default state is: false.
+      *
+      * @param newState The value specifying whether we should use the cached
+      *                 grammar or not.
+      *
+      * @see #isUsingCachedGrammarInParse
+      * @see #cacheGrammarFromParse
+      */
+    void useCachedGrammarInParse(const bool newState);
+
+    /** Enable/disable src offset calculation
+      *
+      * This method allows users to enable/disable src offset calculation.
+      * Disabling the calculation will improve performance.
+      *
+      * The parser's default state is: false.
+      *
+      * @param newState The value specifying whether we should enable or
+      *                 disable src offset calculation
+      *
+      * @see #getCalculateSrcOfs
+      */
+    void setCalculateSrcOfs(const bool newState);
+
+    /** Force standard uri
+      *
+      * This method allows users to tell the parser to force standard uri conformance.
+      *
+      * The parser's default state is: false.
+      *
+      * @param newState The value specifying whether the parser should reject malformed URI.
+      *
+      * @see #getStandardUriConformant
+      */
+    void setStandardUriConformant(const bool newState);
+
+    /** Set the scanner to use when scanning the XML document
+      *
+      * This method allows users to set the scanner to use
+      * when scanning a given XML document.
+      *
+      * @param scannerName The name of the desired scanner
+      */
+    void useScanner(const XMLCh* const scannerName);
+
+    //@}
+
+
+    // -----------------------------------------------------------------------
+    //  Parsing methods
+    // -----------------------------------------------------------------------
+
+    /** @name Parsing methods */
+    //@{
+
+    /** Parse via an input source object
+      *
+      * This method invokes the parsing process on the XML file specified
+      * by the InputSource parameter. This API is borrowed from the
+      * SAX Parser interface.
+      *
+      * @param source A const reference to the InputSource object which
+      *               points to the XML file to be parsed.
+      * @exception SAXException Any SAX exception, possibly
+      *            wrapping another exception.
+      * @exception XMLException An exception from the parser or client
+      *            handler code.
+      * @exception DOM_DOMException A DOM exception as per DOM spec.
+      * @see InputSource#InputSource
+      * @see #setEntityResolver
+      * @see #setErrorHandler
+      */
+    void parse(const InputSource& source);
+
+    /** Parse via a file path or URL
+      *
+      * This method invokes the parsing process on the XML file specified by
+      * the Unicode string parameter 'systemId'. This method is borrowed
+      * from the SAX Parser interface.
+      *
+      * @param systemId A const XMLCh pointer to the Unicode string which
+      *                 contains the path to the XML file to be parsed.
+      *
+      * @exception SAXException Any SAX exception, possibly
+      *            wrapping another exception.
+      * @exception XMLException An exception from the parser or client
+      *            handler code.
+      * @exception DOM_DOMException A DOM exception as per DOM spec.
+      * @see #parse(InputSource,...)
+      */
+    void parse(const XMLCh* const systemId);
+
+    /** Parse via a file path or URL (in the local code page)
+      *
+      * This method invokes the parsing process on the XML file specified by
+      * the native char* string parameter 'systemId'.
+      *
+      * @param systemId A const char pointer to a native string which
+      *                 contains the path to the XML file to be parsed.
+      * @exception SAXException Any SAX exception, possibly
+      *            wrapping another exception.
+      * @exception XMLException An exception from the parser or client
+      *            handler code.
+      * @exception DOM_DOMException A DOM exception as per DOM spec.
+      * @see #parse(InputSource,...)
+      */
+    void parse(const char* const systemId);
+
+    /** Begin a progressive parse operation
+      *
+      * This method is used to start a progressive parse on a XML file.
+      * To continue parsing, subsequent calls must be to the parseNext
+      * method.
+      *
+      * It scans through the prolog and returns a token to be used on
+      * subsequent scanNext() calls. If the return value is true, then the
+      * token is legal and ready for further use. If it returns false, then
+      * the scan of the prolog failed and the token is not going to work on
+      * subsequent scanNext() calls.
+      *
+      * @param systemId A pointer to a Unicode string represting the path
+      *                 to the XML file to be parsed.
+      * @param toFill   A token maintaing state information to maintain
+      *                 internal consistency between invocation of 'parseNext'
+      *                 calls.
+      * @return 'true', if successful in parsing the prolog. It indicates the
+      *         user can go ahead with parsing the rest of the file. It
+      *         returns 'false' to indicate that the parser could not parse
+      *         the prolog.
+      *
+      * @see #parseNext
+      * @see #parseFirst(char*,...)
+      * @see #parseFirst(InputSource&,...)
+      */
+    bool parseFirst
+    (
+        const   XMLCh* const    systemId
+        ,       XMLPScanToken&  toFill
+    );
+
+    /** Begin a progressive parse operation
+      *
+      * This method is used to start a progressive parse on a XML file.
+      * To continue parsing, subsequent calls must be to the parseNext
+      * method.
+      *
+      * It scans through the prolog and returns a token to be used on
+      * subsequent scanNext() calls. If the return value is true, then the
+      * token is legal and ready for further use. If it returns false, then
+      * the scan of the prolog failed and the token is not going to work on
+      * subsequent scanNext() calls.
+      *
+      * @param systemId A pointer to a regular native string represting
+      *                 the path to the XML file to be parsed.
+      * @param toFill   A token maintaing state information to maintain
+      *                 internal consistency between invocation of 'parseNext'
+      *                 calls.
+      *
+      * @return 'true', if successful in parsing the prolog. It indicates the
+      *         user can go ahead with parsing the rest of the file. It
+      *         returns 'false' to indicate that the parser could not parse
+      *         the prolog.
+      *
+      * @see #parseNext
+      * @see #parseFirst(XMLCh*,...)
+      * @see #parseFirst(InputSource&,...)
+      */
+    bool parseFirst
+    (
+        const   char* const     systemId
+        ,       XMLPScanToken&  toFill
+    );
+
+    /** Begin a progressive parse operation
+      *
+      * This method is used to start a progressive parse on a XML file.
+      * To continue parsing, subsequent calls must be to the parseNext
+      * method.
+      *
+      * It scans through the prolog and returns a token to be used on
+      * subsequent scanNext() calls. If the return value is true, then the
+      * token is legal and ready for further use. If it returns false, then
+      * the scan of the prolog failed and the token is not going to work on
+      * subsequent scanNext() calls.
+      *
+      * @param source   A const reference to the InputSource object which
+      *                 points to the XML file to be parsed.
+      * @param toFill   A token maintaing state information to maintain
+      *                 internal consistency between invocation of 'parseNext'
+      *                 calls.
+      *
+      * @return 'true', if successful in parsing the prolog. It indicates the
+      *         user can go ahead with parsing the rest of the file. It
+      *         returns 'false' to indicate that the parser could not parse
+      *         the prolog.
+      *
+      * @see #parseNext
+      * @see #parseFirst(XMLCh*,...)
+      * @see #parseFirst(char*,...)
+      */
+    bool parseFirst
+    (
+        const   InputSource&    source
+        ,       XMLPScanToken&  toFill
+    );
+
+    /** Continue a progressive parse operation
+      *
+      * This method is used to continue with progressive parsing of
+      * XML files started by a call to 'parseFirst' method.
+      *
+      * It parses the XML file and stops as soon as it comes across
+      * a XML token (as defined in the XML specification).
+      *
+      * @param token A token maintaing state information to maintain
+      *              internal consistency between invocation of 'parseNext'
+      *              calls.
+      *
+      * @return 'true', if successful in parsing the next XML token.
+      *         It indicates the user can go ahead with parsing the rest
+      *         of the file. It returns 'false' to indicate that the parser
+      *         could not find next token as per the XML specification
+      *         production rule.
+      *
+      * @see #parseFirst(XMLCh*,...)
+      * @see #parseFirst(char*,...)
+      * @see #parseFirst(InputSource&,...)
+      */
+    bool parseNext(XMLPScanToken& token);
+
+    /** Reset the parser after a progressive parse
+      *
+      * If a progressive parse loop exits before the end of the document
+      * is reached, the parser has no way of knowing this. So it will leave
+      * open any files or sockets or memory buffers that were in use at
+      * the time that the parse loop exited.
+      *
+      * The next parse operation will cause these open files and such to
+      * be closed, but the next parse operation might occur at some unknown
+      * future point. To avoid this problem, you should reset the parser if
+      * you exit the loop early.
+      *
+      * If you exited because of an error, then this cleanup will be done
+      * for you. Its only when you exit the file prematurely of your own
+      * accord, because you've found what you wanted in the file most
+      * likely.
+      *
+      * @param token A token maintaing state information to maintain
+      *              internal consistency between invocation of 'parseNext'
+      *              calls.
+      *
+      * @see #parseFirst(XMLCh*,...)
+      * @see #parseFirst(char*,...)
+      * @see #parseFirst(InputSource&,...)
+      */
+    void parseReset(XMLPScanToken& token);
+
+    //@}
+
+    // -----------------------------------------------------------------------
+    //  Grammar preparsing interface
+    // -----------------------------------------------------------------------
+
+    /** @name Implementation of Grammar preparsing interface's. */
+    //@{
+    /**
+      * Preparse schema grammar (XML Schema, DTD, etc.) via an input source
+      * object.
+      *
+      * This method invokes the preparsing process on a schema grammar XML
+      * file specified by the SAX InputSource parameter. If the 'toCache' flag
+      * is enabled, the parser will cache the grammars for re-use. If a grammar
+      * key is found in the pool, no caching of any grammar will take place.
+      *
+      * <p><b>"Experimental - subject to change"</b></p>
+      *
+      * @param source A const reference to the SAX InputSource object which
+      *               points to the schema grammar file to be preparsed.
+      * @param grammarType The grammar type (Schema or DTD).
+      * @param toCache If <code>true</code>, we cache the preparsed grammar,
+      *                otherwise, no chaching. Default is <code>false</code>.
+      * @return The preparsed schema grammar object (SchemaGrammar or
+      *         DTDGrammar). That grammar object is owned by the parser.
+      *
+      * @exception SAXException Any SAX exception, possibly
+      *            wrapping another exception.
+      * @exception XMLException An exception from the parser or client
+      *            handler code.
+      * @exception DOMException A DOM exception as per DOM spec.
+      *
+      * @see InputSource#InputSource
+      */
+    Grammar* loadGrammar(const InputSource& source,
+                         const short grammarType,
+                         const bool toCache = false);
+
+    /**
+      * Preparse schema grammar (XML Schema, DTD, etc.) via a file path or URL
+      *
+      * This method invokes the preparsing process on a schema grammar XML
+      * file specified by the file path parameter. If the 'toCache' flag
+      * is enabled, the parser will cache the grammars for re-use. If a grammar
+      * key is found in the pool, no caching of any grammar will take place.
+      *
+      * <p><b>"Experimental - subject to change"</b></p>
+      *
+      * @param systemId A const XMLCh pointer to the Unicode string which
+      *                 contains the path to the XML grammar file to be
+      *                 preparsed.
+      * @param grammarType The grammar type (Schema or DTD).
+      * @param toCache If <code>true</code>, we cache the preparsed grammar,
+      *                otherwise, no chaching. Default is <code>false</code>.
+      * @return The preparsed schema grammar object (SchemaGrammar or
+      *         DTDGrammar). That grammar object is owned by the parser.
+      *
+      * @exception SAXException Any SAX exception, possibly
+      *            wrapping another exception.
+      * @exception XMLException An exception from the parser or client
+      *            handler code.
+      * @exception DOMException A DOM exception as per DOM spec.
+      */
+    Grammar* loadGrammar(const XMLCh* const systemId,
+                         const short grammarType,
+                         const bool toCache = false);
+
+    /**
+      * Preparse schema grammar (XML Schema, DTD, etc.) via a file path or URL
+      *
+      * This method invokes the preparsing process on a schema grammar XML
+      * file specified by the file path parameter. If the 'toCache' flag
+      * is enabled, the parser will cache the grammars for re-use. If a grammar
+      * key is found in the pool, no caching of any grammar will take place.
+      *
+      * <p><b>"Experimental - subject to change"</b></p>
+      *
+      * @param systemId A const char pointer to a native string which contains
+      *                 the path to the XML grammar file to be preparsed.
+      * @param grammarType The grammar type (Schema or DTD).
+      * @param toCache If <code>true</code>, we cache the preparsed grammar,
+      *                otherwise, no chaching. Default is <code>false</code>.
+      * @return The preparsed schema grammar object (SchemaGrammar or
+      *         DTDGrammar). That grammar object is owned by the parser.
+      *
+      * @exception SAXException Any SAX exception, possibly
+      *            wrapping another exception.
+      * @exception XMLException An exception from the parser or client
+      *            handler code.
+      * @exception DOMException A DOM exception as per DOM spec.
+      */
+    Grammar* loadGrammar(const char* const systemId,
+                         const short grammarType,
+                         const bool toCache = false);
+
+    /**
+      * This method allows the user to reset the pool of cached grammars.
+      */
+    void resetCachedGrammarPool();
+
+    //@}
+
+
+
+    // -----------------------------------------------------------------------
+    //  Implementation of the XMLErrorReporter interface.
+    // -----------------------------------------------------------------------
+
+    /** @name Implementation of the XMLErrorReporter interface. */
+    //@{
+
+    /** Handle errors reported from the parser
+      *
+      * This method is used to report back errors found while parsing the
+      * XML file. This method is also borrowed from the SAX specification.
+      * It calls the corresponding user installed Error Handler method:
+      * 'fatal', 'error', 'warning' depending on the severity of the error.
+      * This classification is defined by the XML specification.
+      *
+      * @param errCode An integer code for the error.
+      * @param msgDomain A const pointer to an Unicode string representing
+      *                  the message domain to use.
+      * @param errType An enumeration classifying the severity of the error.
+      * @param errorText A const pointer to an Unicode string representing
+      *                  the text of the error message.
+      * @param systemId  A const pointer to an Unicode string representing
+      *                  the system id of the XML file where this error
+      *                  was discovered.
+      * @param publicId  A const pointer to an Unicode string representing
+      *                  the public id of the XML file where this error
+      *                  was discovered.
+      * @param lineNum   The line number where the error occurred.
+      * @param colNum    The column number where the error occurred.
+      * @see ErrorHandler
+      */
+    virtual void error
+    (
+        const   unsigned int                errCode
+        , const XMLCh* const                msgDomain
+        , const XMLErrorReporter::ErrTypes  errType
+        , const XMLCh* const                errorText
+        , const XMLCh* const                systemId
+        , const XMLCh* const                publicId
+        , const XMLSSize_t                  lineNum
+        , const XMLSSize_t                  colNum
+    );
+
+    /** Reset any error data before a new parse
+     *
+      * This method allows the user installed Error Handler callback to
+      * 'reset' itself.
+      *
+      * <b><font color="#FF0000">This method is a no-op for this DOM
+      * implementation.</font></b>
+      */
+    virtual void resetErrors();
+    //@}
+
+
+    // -----------------------------------------------------------------------
+    //  Implementation of the XMLEntityHandler interface.
+    // -----------------------------------------------------------------------
+
+    /** @name Implementation of the XMLEntityHandler interface. */
+    //@{
+
+    /** Handle an end of input source event
+      *
+      * This method is used to indicate the end of parsing of an external
+      * entity file.
+      *
+      * <b><font color="#FF0000">This method is a no-op for this DOM
+      * implementation.</font></b>
+      *
+      * @param inputSource A const reference to the InputSource object
+      *                    which points to the XML file being parsed.
+      * @see InputSource
+      */
+    virtual void endInputSource(const InputSource& inputSource);
+
+    /** Expand a system id
+      *
+      * This method allows an installed XMLEntityHandler to further
+      * process any system id's of enternal entities encountered in
+      * the XML file being parsed, such as redirection etc.
+      *
+      * <b><font color="#FF0000">This method always returns 'false'
+      * for this DOM implementation.</font></b>
+      *
+      * @param systemId  A const pointer to an Unicode string representing
+      *                  the system id scanned by the parser.
+      * @param toFill    A pointer to a buffer in which the application
+      *                  processed system id is stored.
+      * @return 'true', if any processing is done, 'false' otherwise.
+      */
+    virtual bool expandSystemId
+    (
+        const   XMLCh* const    systemId
+        ,       XMLBuffer&      toFill
+    );
+
+    /** Reset any entity handler information
+      *
+      * This method allows the installed XMLEntityHandler to reset
+      * itself.
+      *
+      * <b><font color="#FF0000">This method is a no-op for this DOM
+      * implementation.</font></b>
+      */
+    virtual void resetEntities();
+
+    /** Resolve a public/system id
+      *
+      * This method allows a user installed entity handler to further
+      * process any pointers to external entities. The applications can
+      * implement 'redirection' via this callback. This method is also
+      * borrowed from the SAX specification.
+      *
+      * @deprecated This method is no longer called (the other resolveEntity one is).
+      *
+      * @param publicId A const pointer to a Unicode string representing the
+      *                 public id of the entity just parsed.
+      * @param systemId A const pointer to a Unicode string representing the
+      *                 system id of the entity just parsed.
+      * @param baseURI  A const pointer to a Unicode string representing the
+      *                 base URI of the entity just parsed,
+      *                 or <code>null</code> if there is no base URI.
+      * @return The value returned by the user installed resolveEntity
+      *         method or NULL otherwise to indicate no processing was done.
+      *         The returned InputSource is owned by the parser which is
+      *         responsible to clean up the memory.
+      * @see EntityResolver
+      * @see XMLEntityHandler
+      */
+    virtual InputSource* resolveEntity
+    (
+        const   XMLCh* const    publicId
+        , const XMLCh* const    systemId
+        , const XMLCh* const    baseURI = 0
+    );
+
+    /** Resolve a public/system id
+      *
+      * This method allows a user installed entity handler to further
+      * process any pointers to external entities. The applications can
+      * implement 'redirection' via this callback.  
+      *
+      * @param resourceIdentifier An object containing the type of
+      *        resource to be resolved and the associated data members
+      *        corresponding to this type.
+      * @return The value returned by the user installed resolveEntity
+      *         method or NULL otherwise to indicate no processing was done.
+      *         The returned InputSource is owned by the parser which is
+      *         responsible to clean up the memory.
+      * @see XMLEntityHandler
+      * @see XMLEntityResolver
+      */
+    virtual InputSource* resolveEntity
+    (
+        XMLResourceIdentifier* resourceIdentifier
+    );
+
+    /** Handle a 'start input source' event
+      *
+      * This method is used to indicate the start of parsing an external
+      * entity file.
+      *
+      * <b><font color="#FF0000">This method is a no-op for this DOM parse
+      * implementation.</font></b>
+      *
+      * @param inputSource A const reference to the InputSource object
+      *                    which points to the external entity
+      *                    being parsed.
+      */
+    virtual void startInputSource(const InputSource& inputSource);
+
+    //@}
+
+
+
+    // -----------------------------------------------------------------------
+    //  Implementation of the XMLDocumentHandler interface.
+    // -----------------------------------------------------------------------
+
+    /** @name Implementation of the XMLDocumentHandler interface. */
+    //@{
+
+    /** Handle document character events
+      *
+      * This method is used to report all the characters scanned by the
+      * parser. This DOM implementation stores this data in the appropriate
+      * DOM node, creating one if necessary.
+      *
+      * @param chars   A const pointer to a Unicode string representing the
+      *                character data.
+      * @param length  The length of the Unicode string returned in 'chars'.
+      * @param cdataSection  A flag indicating if the characters represent
+      *                      content from the CDATA section.
+      */
+    virtual void docCharacters
+    (
+        const   XMLCh* const    chars
+        , const unsigned int    length
+        , const bool            cdataSection
+    );
+
+    /** Handle a document comment event
+      *
+      * This method is used to report any comments scanned by the parser.
+      * A new comment node is created which stores this data.
+      *
+      * @param comment A const pointer to a null terminated Unicode
+      *                string representing the comment text.
+      */
+    virtual void docComment
+    (
+        const   XMLCh* const    comment
+    );
+
+    /** Handle a document PI event
+      *
+      * This method is used to report any PI scanned by the parser. A new
+      * PI node is created and appended as a child of the current node in
+      * the tree.
+      *
+      * @param target A const pointer to a Unicode string representing the
+      *               target of the PI declaration.
+      * @param data   A const pointer to a Unicode string representing the
+      *               data of the PI declaration. See the PI production rule
+      *               in the XML specification for details.
+      */
+    virtual void docPI
+    (
+        const   XMLCh* const    target
+        , const XMLCh* const    data
+    );
+
+    /** Handle the end of document event
+      *
+      * This method is used to indicate the end of the current document.
+      */
+    virtual void endDocument();
+
+    /** Handle and end of element event
+      *
+      * This method is used to indicate the end tag of an element. The
+      * DOMParse pops the current element off the top of the element
+      * stack, and make it the new current element.
+      *
+      * @param elemDecl A const reference to the object containing element
+      *                 declaration information.
+      * @param urlId    An id referring to the namespace prefix, if
+      *                 namespaces setting is switched on.
+      * @param isRoot   A flag indicating whether this element was the
+      *                 root element.
+      * @param elemPrefix A const pointer to a Unicode string containing
+      *                 the namespace prefix for this element. Applicable
+      *                 only when namespace processing is enabled.
+      */
+    virtual void endElement
+    (
+        const   XMLElementDecl& elemDecl
+        , const unsigned int    urlId
+        , const bool            isRoot
+        , const XMLCh* const    elemPrefix=0
+    );
+
+    /** Handle and end of entity reference event
+      *
+      * This method is used to indicate that an end of an entity reference
+      * was just scanned.
+      *
+      * @param entDecl A const reference to the object containing the
+      *                entity declaration information.
+      */
+    virtual void endEntityReference
+    (
+        const   XMLEntityDecl&  entDecl
+    );
+
+    /** Handle an ignorable whitespace vent
+      *
+      * This method is used to report all the whitespace characters, which
+      * are determined to be 'ignorable'. This distinction between characters
+      * is only made, if validation is enabled.
+      *
+      * Any whitespace before content is ignored. If the current node is
+      * already of type DOM_Node::TEXT_NODE, then these whitespaces are
+      * appended, otherwise a new Text node is created which stores this
+      * data. Essentially all contiguous ignorable characters are collected
+      * in one node.
+      *
+      * @param chars   A const pointer to a Unicode string representing the
+      *                ignorable whitespace character data.
+      * @param length  The length of the Unicode string 'chars'.
+      * @param cdataSection  A flag indicating if the characters represent
+      *                      content from the CDATA section.
+      */
+    virtual void ignorableWhitespace
+    (
+        const   XMLCh* const    chars
+        , const unsigned int    length
+        , const bool            cdataSection
+    );
+
+    /** Handle a document reset event
+      *
+      * This method allows the user installed Document Handler to 'reset'
+      * itself, freeing all the memory resources. The scanner calls this
+      * method before starting a new parse event.
+      */
+    virtual void resetDocument();
+
+    /** Handle a start document event
+      *
+      * This method is used to report the start of the parsing process.
+      */
+    virtual void startDocument();
+
+    /** Handle a start element event
+      *
+      * This method is used to report the start of an element. It is
+      * called at the end of the element, by which time all attributes
+      * specified are also parsed. A new DOM Element node is created
+      * along with as many attribute nodes as required. This new element
+      * is added appended as a child of the current node in the tree, and
+      * then replaces it as the current node (if the isEmpty flag is false.)
+      *
+      * @param elemDecl A const reference to the object containing element
+      *                 declaration information.
+      * @param urlId    An id referring to the namespace prefix, if
+      *                 namespaces setting is switched on.
+      * @param elemPrefix A const pointer to a Unicode string containing
+      *                 the namespace prefix for this element. Applicable
+      *                 only when namespace processing is enabled.
+      * @param attrList A const reference to the object containing the
+      *                 list of attributes just scanned for this element.
+      * @param attrCount A count of number of attributes in the list
+      *                 specified by the parameter 'attrList'.
+      * @param isEmpty  A flag indicating whether this is an empty element
+      *                 or not. If empty, then no endElement() call will
+      *                 be made.
+      * @param isRoot   A flag indicating whether this element was the
+      *                 root element.
+      * @see DocumentHandler#startElement
+      */
+    virtual void startElement
+    (
+        const   XMLElementDecl&         elemDecl
+        , const unsigned int            urlId
+        , const XMLCh* const            elemPrefix
+        , const RefVectorOf<XMLAttr>&   attrList
+        , const unsigned int            attrCount
+        , const bool                    isEmpty
+        , const bool                    isRoot
+    );
+
+    /** Handle a start entity reference event
+      *
+      * This method is used to indicate the start of an entity reference.
+      * If the expand entity reference flag is true, then a new
+      * DOM Entity reference node is created.
+      *
+      * @param entDecl A const reference to the object containing the
+      *                entity declaration information.
+      */
+    virtual void startEntityReference
+    (
+        const   XMLEntityDecl&  entDecl
+    );
+
+    /** Handle an XMLDecl event
+      *
+      * This method is used to report the XML decl scanned by the parser.
+      * Refer to the XML specification to see the meaning of parameters.
+      *
+      * <b><font color="#FF0000">This method is a no-op for this DOM
+      * implementation.</font></b>
+      *
+      * @param versionStr A const pointer to a Unicode string representing
+      *                   version string value.
+      * @param encodingStr A const pointer to a Unicode string representing
+      *                    the encoding string value.
+      * @param standaloneStr A const pointer to a Unicode string
+      *                      representing the standalone string value.
+      * @param actualEncStr A const pointer to a Unicode string
+      *                     representing the actual encoding string
+      *                     value.
+      */
+    virtual void XMLDecl
+    (
+        const   XMLCh* const    versionStr
+        , const XMLCh* const    encodingStr
+        , const XMLCh* const    standaloneStr
+        , const XMLCh* const    actualEncStr
+    );
+    //@}
+
+
+    /** @name Deprecated Methods */
+    //@{
+    /** Set the 'expand entity references' flag
+      *
+      * DEPRECATED.  USE setCreateEntityReferenceNodes instead.
+      * This method allows the user to specify whether the parser should
+      * expand all entity reference nodes. When the 'do expansion' flag is
+      * true, the DOM tree does not have any entity reference nodes. It is
+      * replaced by the sub-tree representing the replacement text of the
+      * entity. When the 'do expansion' flag is false, the DOM tree
+      * contains an extra entity reference node, whose children is the
+      * sub tree of the replacement text.
+      * <p>The default value is 'false'.
+      *
+      * @param expand The new state of the expand entity reference
+      *               flag.
+      * @see #setCreateEntityReferenceNodes
+      */
+    void setExpandEntityReferences(const bool expand);
+
+    /** Get the 'expand entity references' flag.
+      * DEPRECATED Use getCreateEntityReferenceNodes() instead.
+      *
+      * This method returns the state of the parser's expand entity
+      * references flag.
+      *
+      * @return 'true' if the expand entity reference flag is set on
+      *         the parser, 'false' otherwise.
+      *
+      * @see #setExpandEntityReferences
+      * @see #setCreateEntityReferenceNodes
+      * @see #getCreateEntityReferenceNodes
+      */
+    bool getExpandEntityReferences() const;
+
+    /**
+      * DEPRECATED Use getValidationScheme() instead
+      *
+      * This method returns the state of the parser's validation
+      * handling flag which controls whether validation checks
+      * are enforced or not.
+      *
+      * @return true, if the parser is currently configured to
+      *         do validation, false otherwise.
+      *
+      * @see #setDoValidation
+      * @see #getValidationScheme
+      */
+    bool getDoValidation() const;
+
+    /**
+      * DEPRECATED Use setValidationScheme(const ValSchemes newScheme) instead
+      *
+      * This method allows users to enable or disable the parser's validation
+      * checks.
+      *
+      * <p>By default, the parser does not to any validation. The default
+      * value is false.</p>
+      *
+      * @param newState The value specifying whether the parser should
+      *                 do validity checks or not against the DTD in the
+      *                 input XML document.
+      *
+      * @see #getDoValidation
+      * @see #setValidationScheme
+      */
+    void setDoValidation(const bool newState);
+
+    /**
+      * Deprecated doctypehandler interfaces
+      */
+	virtual void attDef
+    (
+        const   DTDElementDecl&     elemDecl
+        , const DTDAttDef&          attDef
+        , const bool                ignoring
+    );
+
+    virtual void doctypeComment
+    (
+        const   XMLCh* const    comment
+    );
+
+    virtual void doctypeDecl
+    (
+        const   DTDElementDecl& elemDecl
+        , const XMLCh* const    publicId
+        , const XMLCh* const    systemId
+        , const bool            hasIntSubset
+        , const bool            hasExtSubset = false
+    );
+
+    virtual void doctypePI
+    (
+        const   XMLCh* const    target
+        , const XMLCh* const    data
+    );
+
+    virtual void doctypeWhitespace
+    (
+        const   XMLCh* const    chars
+        , const unsigned int    length
+    );
+
+    virtual void elementDecl
+    (
+        const   DTDElementDecl& decl
+        , const bool            isIgnored
+    );
+
+    virtual void endAttList
+    (
+        const   DTDElementDecl& elemDecl
+    );
+
+    virtual void endIntSubset();
+
+    virtual void endExtSubset();
+
+    virtual void entityDecl
+    (
+        const   DTDEntityDecl&  entityDecl
+        , const bool            isPEDecl
+        , const bool            isIgnored
+    );
+
+    virtual void resetDocType();
+
+    virtual void notationDecl
+    (
+        const   XMLNotationDecl&    notDecl
+        , const bool                isIgnored
+    );
+
+    virtual void startAttList
+    (
+        const   DTDElementDecl& elemDecl
+    );
+
+    virtual void startIntSubset();
+
+    virtual void startExtSubset();
+
+    virtual void TextDecl
+    (
+        const   XMLCh* const    versionStr
+        , const XMLCh* const    encodingStr
+    );
+
+
+    //@}
+
+
+protected :
+    // -----------------------------------------------------------------------
+    //  Protected getter methods
+    // -----------------------------------------------------------------------
+
+    /** @name Protected getter methods */
+    //@{
+    /** Get the current DOM node
+      *
+      * This provides derived classes with access to the current node, i.e.
+      * the node to which new nodes are being added.
+      */
+    DOM_Node getCurrentNode();
+
+    //@}
+
+
+    // -----------------------------------------------------------------------
+    //  Protected setter methods
+    // -----------------------------------------------------------------------
+
+    /** @name Protected setter methods */
+    //@{
+
+    /** Set the current DOM node
+      *
+      * This method sets the current node maintained inside the parser to
+      * the one specified.
+      *
+      * @param toSet The DOM node which will be the current node.
+      */
+    void setCurrentNode(DOM_Node toSet);
+
+    /** Set the document node
+      *
+      * This method sets the DOM Document node to the one specified.
+      *
+      * @param toSet The new DOM Document node for this XML document.
+      */
+    void setDocument(DOM_Document toSet);
+    //@}
+
+
+private :
+    // -----------------------------------------------------------------------
+    //  Protected setter methods
+    // -----------------------------------------------------------------------
+    void initialize();
+    void cleanUp();
+
+    // unimplemented
+    DOMParser ( const DOMParser& toCopy);
+    DOMParser& operator= (const DOMParser& other);
+
+    // -----------------------------------------------------------------------
+    //  Private data members
+    //
+    //  fCurrentNode
+    //  fCurrentParent
+    //      Used to track the current node during nested element events. Since
+    //      the tree must be built from a set of disjoint callbacks, we need
+    //      these to keep up with where we currently are.
+    //
+    //  fDocument
+    //      The root document object, filled with the document contents.
+    //
+    //  fEntityResolver
+    //      The installed SAX entity resolver, if any. Null if none.
+    //
+    //  fErrorHandler
+    //      The installed SAX error handler, if any. Null if none.
+    //
+    //  fCreateEntityReferenceNode
+    //      Indicates whether entity reference nodes should be created.
+    //
+    //  fIncludeIgnorableWhitespace
+    //      Indicates whether ignorable whiltespace should be added to
+    //      the DOM tree for validating parsers.
+    //
+    //  fNodeStack
+    //      Used to track previous parent nodes during nested element events.
+    //
+    //  fParseInProgress
+    //      Used to prevent multiple entrance to the parser while its doing
+    //      a parse.
+    //
+    //  fScanner
+    //      The scanner used for this parser. This is created during the
+    //      constructor.
+    //
+    //  fWithinElement
+    //      A flag to indicate that the parser is within at least one level
+    //      of element processing.
+    //
+    //  fDocumentType
+    //      Used to store and update the documentType variable information
+    //      in fDocument
+    //
+    //  fToCreateXMLDecTypeNode
+    //      A flag to create a DOM_XMLDecl node in the ODM tree if it exists
+    //      This is an extension to xerces implementation
+    //
+    //   fGrammarPool
+    //      The grammar pool passed from external application (through derivatives).
+    //      which could be 0, not owned.
+    //
+    // -----------------------------------------------------------------------
+    bool                    fToCreateXMLDeclTypeNode;
+    bool                    fCreateEntityReferenceNodes;
+    bool                    fIncludeIgnorableWhitespace;
+    bool                    fParseInProgress;
+    bool                    fWithinElement;
+    DOM_Node                fCurrentParent;
+    DOM_Node                fCurrentNode;
+    DOM_Document            fDocument;
+    EntityResolver*         fEntityResolver;
+    XMLEntityResolver*      fXMLEntityResolver;
+    ErrorHandler*           fErrorHandler;
+    PSVIHandler*            fPSVIHandler;
+    ValueStackOf<DOM_Node>* fNodeStack;
+    XMLScanner*             fScanner;
+    DocumentTypeImpl*       fDocumentType;
+    GrammarResolver*        fGrammarResolver;
+    XMLStringPool*          fURIStringPool;
+    XMLValidator*           fValidator;
+    MemoryManager*          fMemoryManager;
+    XMLGrammarPool*         fGrammarPool;
+};
+
+
+// ---------------------------------------------------------------------------
+//  DOMParser: Handlers for the XMLEntityHandler interface
+// ---------------------------------------------------------------------------
+inline void DOMParser::endInputSource(const InputSource&)
+{
+    // The DOM entity resolver doesn't handle this
+}
+
+inline bool DOMParser::expandSystemId(const XMLCh* const, XMLBuffer&)
+{
+    // The DOM entity resolver doesn't handle this
+    return false;
+}
+
+inline void DOMParser::resetEntities()
+{
+    // Nothing to do on this one
+}
+
+inline void DOMParser::startInputSource(const InputSource&)
+{
+    // The DOM entity resolver doesn't handle this
+}
+
+
+// ---------------------------------------------------------------------------
+//  DOMParser: Getter methods
+// ---------------------------------------------------------------------------
+inline DOM_Document DOMParser::getDocument()
+{
+    return fDocument;
+}
+
+inline ErrorHandler* DOMParser::getErrorHandler()
+{
+    return fErrorHandler;
+}
+
+inline const ErrorHandler* DOMParser::getErrorHandler() const
+{
+    return fErrorHandler;
+}
+
+inline PSVIHandler* DOMParser::getPSVIHandler()
+{
+    return fPSVIHandler;
+}
+
+inline const PSVIHandler* DOMParser::getPSVIHandler() const
+{
+    return fPSVIHandler;
+}
+
+inline EntityResolver* DOMParser::getEntityResolver()
+{
+    return fEntityResolver;
+}
+
+inline XMLEntityResolver* DOMParser::getXMLEntityResolver()
+{
+    return fXMLEntityResolver;
+}
+
+inline const XMLEntityResolver* DOMParser::getXMLEntityResolver() const
+{
+    return fXMLEntityResolver;
+}
+
+inline const EntityResolver* DOMParser::getEntityResolver() const
+{
+    return fEntityResolver;
+}
+
+inline bool DOMParser::getExpandEntityReferences() const
+{
+    return !fCreateEntityReferenceNodes;
+}
+inline bool DOMParser::getCreateEntityReferenceNodes() const
+{
+    return fCreateEntityReferenceNodes;
+}
+
+inline bool DOMParser::getIncludeIgnorableWhitespace() const
+{
+    return fIncludeIgnorableWhitespace;
+}
+
+inline const XMLScanner& DOMParser::getScanner() const
+{
+    return *fScanner;
+}
+
+inline bool DOMParser::getToCreateXMLDeclTypeNode() const
+{
+    return fToCreateXMLDeclTypeNode;
+}
+
+
+// ---------------------------------------------------------------------------
+//  DOMParser: Setter methods
+// ---------------------------------------------------------------------------
+inline void DOMParser::setExpandEntityReferences(const bool expand)
+{
+    fCreateEntityReferenceNodes = !expand;
+}
+
+inline void DOMParser::setCreateEntityReferenceNodes(const bool create)
+{
+    fCreateEntityReferenceNodes = create;
+}
+
+inline void DOMParser::setIncludeIgnorableWhitespace(const bool include)
+{
+    fIncludeIgnorableWhitespace = include;
+}
+
+inline void DOMParser::setToCreateXMLDeclTypeNode(const bool create)
+{
+    fToCreateXMLDeclTypeNode = create;
+}
+
+
+// ---------------------------------------------------------------------------
+//  DOMParser: Protected getter methods
+// ---------------------------------------------------------------------------
+inline DOM_Node DOMParser::getCurrentNode()
+{
+    return fCurrentNode;
+}
+
+// ---------------------------------------------------------------------------
+//  DOMParser: Protected setter methods
+// ---------------------------------------------------------------------------
+inline void DOMParser::setCurrentNode(DOM_Node toSet)
+{
+    fCurrentNode = toSet;
+}
+
+inline void DOMParser::setDocument(DOM_Document toSet)
+{
+    fDocument = toSet;
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/deprecated/DOM_DOMException.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/deprecated/DOM_DOMException.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/deprecated/DOM_DOMException.hpp	(revision 2674)
@@ -0,0 +1,129 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: DOM_DOMException.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#ifndef DOM_DOMException_HEADER_GUARD_
+#define DOM_DOMException_HEADER_GUARD_
+
+#include <xercesc/util/XercesDefs.hpp>
+#include "DOMString.hpp"
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+
+/**
+  * Encapsulate a general DOM error or warning.
+  *
+  * <p> The DOM will create and throw an instance of DOMException
+  * when an error condition is detected.  Exceptions can occur
+  * when an application directly manipulates the DOM document
+  * tree that is produced by the parser, or when a document tree
+  * is created from scratch using the DOM API.  DOM exceptions will
+  * not be generated by the parser while constructing a document
+  * tree from an XML source document.
+  *
+  * <p>Unlike the other classes in the C++ DOM API, DOM_DOMException
+  * is NOT a reference to an underlying implementation class, and
+  * does not provide automatic memory management.  Code that catches
+  * a DOM exception is responsible for deleting it, or otherwise
+  * arranging for its disposal.
+  *
+  */
+class DEPRECATED_DOM_EXPORT DOM_DOMException  {
+public:
+    /** @name Enumerators for DOM Exceptions */
+    //@{
+        enum ExceptionCode {
+                INDEX_SIZE_ERR       = 1,
+                DOMSTRING_SIZE_ERR   = 2,
+                HIERARCHY_REQUEST_ERR = 3,
+                WRONG_DOCUMENT_ERR   = 4,
+                INVALID_CHARACTER_ERR = 5,
+                NO_DATA_ALLOWED_ERR  = 6,
+                NO_MODIFICATION_ALLOWED_ERR = 7,
+                NOT_FOUND_ERR        = 8,
+                NOT_SUPPORTED_ERR    = 9,
+                INUSE_ATTRIBUTE_ERR  = 10,
+                INVALID_STATE_ERR    = 11,
+	       	SYNTAX_ERR	     = 12,
+        	INVALID_MODIFICATION_ERR    = 13,
+        	NAMESPACE_ERR	     = 14,
+        	INVALID_ACCESS_ERR   = 15
+        };
+    //@}
+public:
+    /** @name Constructors and assignment operator */
+    //@{
+    /**
+      * Default constructor for DOM_DOMException.
+      *
+      */
+    DOM_DOMException();
+
+    /**
+      * Constructor which takes an error code and a message.
+      *
+      * @param code The error code which indicates the exception
+      * @param message The string containing the error message
+      */
+    DOM_DOMException(short code, const DOMString &message);
+
+    /**
+      * Copy constructor.
+      *
+      * @param other The object to be copied.
+      */
+    DOM_DOMException(const DOM_DOMException &other);
+
+    //@}
+    /** @name Destructor. */
+    //@{
+	 /**
+	  * Destructor for DOM_DOMException.  Applications are responsible
+      * for deleting DOM_Exception objects that they catch after they
+      * have completed their exception processing.
+	  *
+	  */
+    virtual ~DOM_DOMException();
+    //@}
+
+    /** @name Public variables. */
+     //@{
+	 /**
+	  * A code value, from the set defined by the ExceptionCode enum,
+      * indicating the type of error that occured.
+	  */
+   ExceptionCode   code;
+
+	 /**
+	  * A string value.  Applications may use this field to hold an error
+      *  message.  The field value is not set by the DOM implementation,
+      *  meaning that the string will be empty when an exception is first
+      *  thrown.
+	  */
+    DOMString msg;
+    //@}
+
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
+
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/deprecated/NodeIDMap.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/deprecated/NodeIDMap.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/deprecated/NodeIDMap.hpp	(revision 2674)
@@ -0,0 +1,90 @@
+#ifndef NodeIDMap_HEADER_GUARD_
+#define NodeIDMap_HEADER_GUARD_
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+//
+//  This file is part of the internal implementation of the C++ XML DOM.
+//  It should NOT be included or used directly by application programs.
+//
+//  Applications should include the file <xercesc/dom/deprecated/DOM.hpp> for the entire
+//  DOM API, or DOM_*.hpp for individual DOM classes, where the class
+//  name is substituded for the *.
+//
+
+
+
+
+//
+//  Class NodeIDMap is a hash table that is used in the implementation of
+//   of DOM_Document::getElementsByID().
+//
+//  Why Yet Another HashTable implementation?  Becuase it can be significantly
+//  smaller when tuned for this exact usage, and the generic RefHashTableOf
+//  from the xerces utils project is not a paricularly good fit.
+//
+#include <xercesc/util/PlatformUtils.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+
+class AttrImpl;
+class DOMString;
+
+
+class NodeIDMap : public XMemory {
+public:
+
+    // Create a new hash table, sized to hold "initialSize"
+    NodeIDMap(int initialSize,
+              MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+                                   //  Entries.  It will automatically grow if need be.
+
+    virtual ~NodeIDMap();
+
+private:
+    NodeIDMap(const NodeIDMap &other);   // No copy, assignement, comparison.
+    NodeIDMap &operator = (const NodeIDMap &other);
+    bool operator == (const NodeIDMap &other);
+
+public:
+    void  add(AttrImpl *attr);       // Add the specified attribute to the table.
+    void  remove(AttrImpl *other);   // Remove the specified attribute.
+                                           //   Does nothing if the node is not in the table.
+    AttrImpl *find(const DOMString &ID);   // Find the attribute node in the table with this ID
+
+private:
+    void growTable();
+
+private:
+    AttrImpl      **fTable;
+    unsigned int  fSizeIndex;              // Index of the current table size in the
+                                           //   array of possible table sizes.
+	unsigned int  fSize;                   // The current size of the table array
+                                           //   (number of slots, not bytes.)
+    unsigned int  fNumEntries;             // The number of entries used.
+    unsigned int  fMaxEntries;             // The max number of entries to use before
+                                           //   growing the table.
+    MemoryManager* fMemoryManager;
+
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/deprecated/DOM_Comment.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/deprecated/DOM_Comment.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/deprecated/DOM_Comment.hpp	(revision 2674)
@@ -0,0 +1,111 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: DOM_Comment.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#ifndef DOM_Comment_HEADER_GUARD_
+#define DOM_Comment_HEADER_GUARD_
+
+#include <xercesc/util/XercesDefs.hpp>
+#include "DOM_CharacterData.hpp"
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+
+class CommentImpl;
+
+/**
+ * Class to refer to XML comment nodes in the DOM.
+ *
+ * <P>The string value contains all of the characters between
+ * the starting '<code>&lt;!--</code>' and ending '<code>--&gt;</code>'.
+ */
+class DEPRECATED_DOM_EXPORT DOM_Comment: public DOM_CharacterData {
+
+public:
+  /** @name Constructors and assignment operators */
+  //@{
+  /**
+    * Default constructor for DOM_Comment.  The resulting object does not
+    * refer to an actual Comment node; it will compare == to 0, and is similar
+    * to a null object reference variable in Java.  It may subsequently be
+    * assigned to refer to an actual comment node.
+    * <p>
+    * New comment nodes are created by DOM_Document::createComment().
+    *
+    */
+    DOM_Comment();
+
+  /**
+    * Copy constructor.   Creates a new <code>DOM_Comment</code> that refers to the
+    * same underlying node as the original.  See also DOM_Node::clone(),
+    * which will copy the actual Comment node, rather than just creating a new
+    * reference to the original node.
+    *
+    * @param other The object to be copied.
+    */
+    DOM_Comment(const DOM_Comment &other);
+  /**
+    * Assignment operator.
+    *
+    * @param other The object to be copied.
+    */
+    DOM_Comment & operator = (const DOM_Comment &other);
+
+    /**
+      * Assignment operator.  This overloaded variant is provided for
+      *   the sole purpose of setting a DOM_Node reference variable to
+      *   zero.  Nulling out a reference variable in this way will decrement
+      *   the reference count on the underlying Node object that the variable
+      *   formerly referenced.  This effect is normally obtained when reference
+      *   variable goes out of scope, but zeroing them can be useful for
+      *   global instances, or for local instances that will remain in scope
+      *   for an extended time,  when the storage belonging to the underlying
+      *   node needs to be reclaimed.
+      *
+      * @param val   Only a value of 0, or null, is allowed.
+      */
+    DOM_Comment & operator = (const DOM_NullPtr *val);
+
+
+
+    //@}
+    /** @name Destructor. */
+    //@{
+	 /**
+	  * Destructor for DOM_Comment.  The object being destroyed is the reference
+      * object, not the underlying Comment node itself.
+      *
+	  */
+    ~DOM_Comment();
+    //@}
+
+protected:
+    DOM_Comment(CommentImpl *comment);
+
+    friend class DOM_Document;
+
+
+
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
+
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/deprecated/DOM_DocumentFragment.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/deprecated/DOM_DocumentFragment.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/deprecated/DOM_DocumentFragment.hpp	(revision 2674)
@@ -0,0 +1,142 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: DOM_DocumentFragment.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#ifndef DOM_DocumentFragment_HEADER_GUARD_
+#define DOM_DocumentFragment_HEADER_GUARD_
+
+#include <xercesc/util/XercesDefs.hpp>
+#include "DOM_Node.hpp"
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+
+class DocumentFragmentImpl;
+
+/**
+ * <code>DocumentFragment</code> is a "lightweight" or "minimal"
+ * <code>Document</code> object.
+ *
+ * It is very common to want to be able to
+ * extract a portion of a document's tree or to create a new fragment of a
+ * document. Imagine implementing a user command like cut or rearranging a
+ * document by moving fragments around. It is desirable to have an object
+ * which can hold such fragments and it is quite natural to use a Node for
+ * this purpose. While it is true that a <code>Document</code> object could
+ * fulfil this role,  a <code>Document</code> object can potentially be a
+ * heavyweight  object, depending on the underlying implementation. What is
+ * really needed for this is a very lightweight object.
+ * <code>DocumentFragment</code> is such an object.
+ * <p>Furthermore, various operations -- such as inserting nodes as children
+ * of another <code>Node</code> -- may take <code>DocumentFragment</code>
+ * objects as arguments;  this results in all the child nodes of the
+ * <code>DocumentFragment</code>  being moved to the child list of this node.
+ * <p>The children of a <code>DocumentFragment</code> node are zero or more
+ * nodes representing the tops of any sub-trees defining the structure of the
+ * document. <code>DocumentFragment</code> nodes do not need to be
+ * well-formed XML documents (although they do need to follow the rules
+ * imposed upon well-formed XML parsed entities, which can have multiple top
+ * nodes).  For example, a <code>DocumentFragment</code> might have only one
+ * child and that child node could be a <code>Text</code> node. Such a
+ * structure model  represents neither an HTML document nor a well-formed XML
+ * document.
+ * <p>When a <code>DocumentFragment</code> is inserted into a
+ * <code>Document</code> (or indeed any other <code>Node</code> that may take
+ * children) the children of the <code>DocumentFragment</code> and not the
+ * <code>DocumentFragment</code>  itself are inserted into the
+ * <code>Node</code>. This makes the <code>DocumentFragment</code> very
+ * useful when the user wishes to create nodes that are siblings; the
+ * <code>DocumentFragment</code> acts as the parent of these nodes so that the
+ *  user can use the standard methods from the <code>Node</code>  interface,
+ * such as <code>insertBefore()</code> and  <code>appendChild()</code>.
+ */
+
+class DEPRECATED_DOM_EXPORT DOM_DocumentFragment: public DOM_Node {
+
+public:
+    /** @name Constructors and assignment operators */
+    //@{
+    /**
+    * Default constructor for <code>DOM_DocumentFragment</code>.  The resulting object does not
+    * refer to an actual Document Fragment node; it will compare == to 0, and is similar
+    * to a null object reference variable in Java.  It may subsequently be
+    * assigned to refer to an actual Document Fragment node.
+    * <p>
+    * New document fragment nodes are created by DOM_Document::createDocumentFragment().
+    *
+    */
+
+    DOM_DocumentFragment();
+
+    /**
+      * Copy constructor.  Creates a new <code>DOM_DocumentFragment</code> that refers to the
+      *   same underlying node as the original.  See also DOM_Node::clone(),
+      * which will copy the actual Document fragment node, rather than just creating a new
+      * reference to the original node.
+      *
+      * @param other The object to be copied
+      */
+    DOM_DocumentFragment(const DOM_DocumentFragment &other);
+
+    /**
+      * Assignment operator
+      *
+      * @param other The object to be copied
+      */
+    DOM_DocumentFragment & operator = (const DOM_DocumentFragment &other);
+
+    /**
+      * Assignment operator.  This overloaded variant is provided for
+      *   the sole purpose of setting a DOM_Node reference variable to
+      *   zero.  Nulling out a reference variable in this way will decrement
+      *   the reference count on the underlying Node object that the variable
+      *   formerly referenced.  This effect is normally obtained when reference
+      *   variable goes out of scope, but zeroing them can be useful for
+      *   global instances, or for local instances that will remain in scope
+      *   for an extended time,  when the storage belonging to the underlying
+      *   node needs to be reclaimed.
+      *
+      * @param val   Only a value of 0, or null, is allowed.
+      */
+    DOM_DocumentFragment & operator = (const DOM_NullPtr *val);
+
+	//@}
+    /** @name Destructor */
+    //@{
+	
+    /**
+      * Destructor.  The object being destroyed is the reference
+      * object, not the underlying Comment node itself.
+      *
+      */
+    ~DOM_DocumentFragment();
+
+	//@}
+
+protected:
+    DOM_DocumentFragment(DocumentFragmentImpl *);
+
+    friend class DOM_Document;
+    friend class RangeImpl;
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/deprecated/DOMString.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/deprecated/DOMString.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/deprecated/DOMString.hpp	(revision 2674)
@@ -0,0 +1,473 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: DOMString.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#ifndef DOMString_HEADER_GUARD_
+#define DOMString_HEADER_GUARD_
+
+#include <xercesc/util/XMemory.hpp>
+
+#ifdef XML_DEBUG
+#include "DOMStringImpl.hpp"
+XERCES_CPP_NAMESPACE_BEGIN
+#else
+XERCES_CPP_NAMESPACE_BEGIN
+class DOMStringHandle;
+#endif
+
+class DOM_NullPtr;
+
+/**
+ * <code>DOMString</code> is the generic string class that stores all strings
+ * used in the DOM C++ API.
+ *
+ * Though this class supports most of the common string operations to manipulate
+ * strings, it is not meant to be a comphrehensive string class.
+ */
+
+class DEPRECATED_DOM_EXPORT DOMString : public XMemory{
+public:
+    /** @name Constructors and assignment operator */
+    //@{
+    /**
+      * Default constructor for DOMString.  The resulting DOMString
+      * object refers to no string at all; it will compare == 0.
+      *
+      */
+    DOMString();
+
+    /**
+      * Copy constructor.
+      *
+      * @param other The object to be copied.
+      */
+    DOMString(const DOMString &other);
+
+    /**
+      * Constructor to build a DOMString from an XML character array.
+      * (XMLCh is a 16 bit UNICODE character).
+      *
+      * @param other The null-terminated character array to be
+      *   that provides the initial value for the DOMString.
+      */
+    DOMString(const XMLCh *other);
+
+    /**
+      * Constructor to build a DOMString from a character array of given length.
+      *
+      * @param other The character array to be imported into the <code>DOMString</code>
+      * @param length The length of the character array to be imported
+      */
+    DOMString(const XMLCh *other, unsigned int length);
+
+    /**
+      * Constructor to build a DOMString from an 8 bit character array.
+      * The char * string will be transcoded to UNICODE using the default
+      * code page on the system where the code is running.
+      *
+      * @param other The character array to be imported into the <code>DOMString</code>
+      */
+    DOMString(const char *other);
+
+    /**
+      * Construct a null DOMString.
+      */
+    DOMString(int nullPointerValue);
+
+    /**
+      * Assignment operator.  Make destination DOMString refer to the same
+      *      underlying string in memory as the source string.
+      *
+      * @param other the source DOMString.
+      */
+    DOMString &        operator = (const DOMString &other);
+
+
+
+    DOMString &        operator = (DOM_NullPtr *other);
+
+    //@}
+    /** @name Destructor. */
+    //@{
+
+	 /**
+	  * Destructor for DOMString
+	  *
+	  */
+    ~DOMString();
+
+    //@}
+    /** @name Operators for string manipulation. */
+    //@{
+
+    /**
+      * Concatenate a DOMString to another.
+      *
+      * @param other The string to be concatenated.
+      * @return The concatenated object
+      */
+    // DOMString   operator + (const DOMString &other);
+
+    //@}
+    /** @name Equality and Inequality operators. */
+    //@{
+
+    /**
+      * Equality operator.
+      *
+      * @param other The object to be compared with.
+      * @return True if the two DOMStrings refer to the same underlying string
+      *  in memory.
+      *  <p>
+      *  WARNING:  operator == does NOT compare the contents of
+      *  the two  strings.  To do this, use the <code>DOMString::equals()</code>
+      *  This behavior is modelled after the String operations in Java, and
+      *  is also similar to operator == on the other DOM_* classes.
+      */
+    bool        operator == (const DOMString &other) const;
+
+    /**
+      * Inequality operator.
+      *
+      * @param other The object to be compared with.
+      * @return True if the two DOMStrings refer to different underlying strings in
+      *    memory.
+      * <p>
+      *  WARNING:  operator == does NOT compare the contents of
+      *  the two  strings.  To do this, use the <code>DOMString::equals()</code>
+      *  This behavior is modelled after the String operations in Java, and
+      *  is also similar to operator == on the other DOM_* classes.
+      */
+    bool        operator != (const DOMString &other) const;
+
+    /**
+      * Equality operator.  Test for a null DOMString, which is one that does
+      *   not refer to any string at all; similar to a null object reference
+      *   variable in Java.
+      *
+      * @param other must be 0 or null.
+      * @return
+      */
+    bool        operator == (const DOM_NullPtr *other) const;
+
+    /**
+      * Inequality operator, for null test.
+      *
+      * @param other must be 0 or null.
+      * @return True if the two strings are different, false otherwise
+      */
+    bool        operator != (const DOM_NullPtr *other) const;
+
+    //@}
+    /** @name Functions to change the string. */
+    //@{
+
+
+    /**
+      * Preallocate storage in the string to hold a given number of characters.
+      * A DOMString will grow its buffer on demand, as characters are added,
+      * but it can be more efficient to allocate once in advance, if the size is known.
+      *
+      * @param size The number of 16 bit characters to reserve.
+      */
+    void reserve(unsigned int size);
+
+
+    /**
+      * Appends the content of another <code>DOMString</code> to this string.
+      *
+      * @param other The object to be appended
+      */
+    void        appendData(const DOMString &other);
+
+    /**
+      * Append a single Unicode character to this string.
+      *
+      * @param ch The single character to be appended
+      */
+    void        appendData(XMLCh ch);
+
+     /**
+      * Append a null-terminated XMLCh * (Unicode) string to this string.
+      *
+      * @param other The object to be appended
+      */
+    void        appendData(const XMLCh *other);
+
+
+    /**
+      * Appends the content of another <code>DOMString</code> to this string.
+      *
+      * @param other The object to be appended
+      */
+	DOMString& operator +=(const DOMString &other);
+
+
+    /**
+      * Appends the content of a c-style string to this string.
+      *
+      * @param other The string to be appended
+      */
+    DOMString& operator +=(const XMLCh* other);
+
+
+    /**
+      * Appends a character to this string.
+      *
+      * @param ch The character to be appended
+      */
+	DOMString& operator +=(XMLCh ch);
+
+
+    /**
+      * Clears the data of this <code>DOMString</code>.
+      *
+      * @param offset The position from the beginning from which the data must be deleted
+      * @param count The count of characters from the offset that must be deleted
+      */
+    void        deleteData(unsigned int offset, unsigned int count);
+
+    /**
+      * Inserts a string within the existing <code>DOMString</code> at an arbitrary position.
+      *
+      * @param offset The offset from the beginning at which the insertion needs to be done
+      *               in <code>this</code> object
+      * @param data The <code>DOMString</code> containing the data that needs to be inserted
+      * @return The object to be returned.
+      */
+    void        insertData(unsigned int offset, const DOMString &data);
+
+    //@}
+    /** @name Functions to get properties of the string. */
+    //@{
+
+    /**
+      * Returns the character at the specified position.
+      *
+      * @param index The position at which the character is being requested
+      * @return Returns the character at the specified position.
+      */
+    XMLCh       charAt(unsigned int index) const;
+
+    /**
+      * Returns a handle to the raw buffer in the <code>DOMString</code>.
+      *
+      * @return The pointer inside the <code>DOMString</code> containg the string data.
+      *         Note: the data is not always null terminated.  Do not rely on
+      *         a null being there, and do not add one, as several DOMStrings
+      *         with different lengths may share the same raw buffer.
+      */
+    const XMLCh *rawBuffer() const;
+
+    /**
+      * Returns a copy of the string, transcoded to the local code page. The
+      * caller owns the (char *) string that is returned, and is responsible
+      * for deleting it.
+      *
+      * Note: The buffer returned is allocated using the global operator new
+      *       and users need to make sure to use the corresponding delete [].
+      *       This method will be deprecated in later versions, as we move
+      *       towards using a memory manager for allocation and deallocation.
+      *
+      * @return A pointer to a newly allocated buffer of char elements, which
+      *         represents the original string, but in the local encoding.
+      */
+    char        *transcode() const;
+
+    /**
+      * Returns a copy of the string, transcoded to the local code page. The
+      * caller owns the (char *) string that is returned, and is responsible
+      * for deleting it.
+      *
+      * @param  manager the memory manager to use for allocating returned
+      *         returned buffer.
+      *
+      * @return A pointer to a newly allocated buffer of char elements, which
+      *         represents the original string, but in the local encoding.
+      */
+    char        *transcode(MemoryManager* const manager) const;
+
+
+    /**
+      * Creates a DOMString, transcoded from an input 8 bit char * string
+      * in the local code page.
+      *
+      * @param str The string to be transcoded
+      * @return A new DOMString object
+      */
+    static DOMString transcode(const char* str);
+
+
+
+    /**
+      * Returns a sub-string of the <code>DOMString</code> starting at a specified position.
+      *
+      * @param offset The offset from the beginning from which the sub-string is being requested.
+      * @param count The count of characters in the requested sub-string
+      * @return The sub-string of the <code>DOMString</code> being requested
+      */
+    DOMString   substringData(unsigned int offset, unsigned int count) const;
+
+    /**
+      * Returns the length of the DOMString.
+      *
+      * @return The length of the string
+      */
+    unsigned int length() const;
+
+    //@}
+    /** @name Cloning function. */
+    //@{
+
+    /**
+      * Makes a clone of a the DOMString.
+      *
+      * @return The object to be cloned.
+      */
+    DOMString   clone() const;
+
+    //@}
+    /** @name Print functions. */
+    //@{
+
+    /**
+      * Dumps the <code>DOMString</code> on the console.
+      *
+      */
+    void        print() const;
+
+    /**
+      * Dumps the <code>DOMString</code> on the console with a line feed at the end.
+      *
+      */
+    void        println() const;
+
+    //@}
+    /** @name Functions to compare a string with another. */
+    //@{
+
+    /**
+      * Compares a DOMString with another.
+      *
+      * This compareString does not match the semantics of the standard C strcmp.
+      * All it needs to do is define some less than - equals - greater than
+      * ordering of strings.  How doesn't matter.
+      *
+      *
+      * @param other The object to be compared with
+      * @return Either -1, 0, or 1 based on the comparison.
+      */
+    int         compareString(const DOMString &other) const;
+
+    /**
+      * Less than operator. It is a helper operator for compareString.
+      *
+      * @param other The object to be compared with.
+      * @return True if this DOMString is lexically less than the other DOMString.
+      */
+    bool        operator < (const DOMString &other) const;
+
+    /**
+      * Tells if a <code>DOMString</code> contains the same character data
+      * as another.
+      *
+      * @param other The DOMString to be compared with.
+      * @return True if the two <code>DOMString</code>s are same, false otherwise.
+      */
+    bool        equals(const DOMString &other) const;
+
+
+      /**
+      * Compare a DOMString with a null-terminated raw 16-bit character
+      * string.
+      *
+      * @param other The character string to be compared with.
+      * @return True if the strings are the same, false otherwise.
+      */
+    bool        equals(const XMLCh  *other) const;
+
+
+    //@}
+    friend      class DOMStringData;
+    friend      class DOMStringHandle;
+    friend      class DomMemDebug;
+private:
+
+    DOMStringHandle         *fHandle;
+    static int              gLiveStringHandleCount;
+    static int              gTotalStringHandleCount;
+    static int              gLiveStringDataCount;
+    static int              gTotalStringDataCount;
+};
+
+
+/****** Global Helper Functions ******/
+
+/**
+  * Concatenate two DOMString's.
+  *
+  * @param lhs the first string
+  * @param rhs the second string
+  * @return The concatenated object
+  */
+DOMString DEPRECATED_DOM_EXPORT operator + (const DOMString &lhs, const DOMString &rhs);
+
+/**
+  * Concatenate a null terminated Unicode string to a DOMString.
+  *
+  * @param lhs the DOMString
+  * @param rhs the XMLCh * string
+  * @return The concatenated object
+  */
+DOMString DEPRECATED_DOM_EXPORT operator + (const DOMString &lhs, const XMLCh* rhs);
+
+
+/**
+  * Concatenate a DOMString to a null terminated Unicode string
+  *
+  * @param lhs the null-terminated Unicode string
+  * @param rhs the DOMString
+  * @return The concatenated object
+  */
+DOMString DEPRECATED_DOM_EXPORT operator + (const XMLCh* lhs, const DOMString &rhs);
+
+
+/**
+  * Concatenate a single Unicode character to a DOMString.
+  *
+  * @param lhs the DOMString
+  * @param rhs the character
+  * @return The concatenated object
+  */
+DOMString DEPRECATED_DOM_EXPORT operator + (const DOMString &lhs, XMLCh rhs);
+
+
+/**
+  * Concatenate a DOMString to a single Unicode character.
+  *
+  * @param lhs the character
+  * @param rhs the DOMString
+  * @return The concatenated object
+  */
+DOMString DEPRECATED_DOM_EXPORT operator + (XMLCh lhs, const DOMString &rhs);
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/deprecated/DOM_Attr.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/deprecated/DOM_Attr.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/deprecated/DOM_Attr.hpp	(revision 2674)
@@ -0,0 +1,176 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: DOM_Attr.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#ifndef DOM_Attr_HEADER_GUARD_
+#define DOM_Attr_HEADER_GUARD_
+
+#include <xercesc/util/XercesDefs.hpp>
+#include "DOM_Node.hpp"
+#include "DOM_Element.hpp"
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+
+class AttrImpl;
+
+/**
+* The <code>DOM_Attr</code> class refers to an attribute of an XML element.
+*
+* Typically the allowable values for the
+* attribute are defined in a documenttype definition.
+* <p><code>DOM_Attr</code> objects inherit the <code>DOM_Node</code>  interface, but
+* since attributes are not actually child nodes of the elements they are associated with, the
+* DOM does not consider them part of the document  tree.  Thus, the
+* <code>DOM_Node</code> attributes <code>parentNode</code>,
+* <code>previousSibling</code>, and <code>nextSibling</code> have a  null
+* value for <code>DOM_Attr</code> objects. The DOM takes the  view that
+* attributes are properties of elements rather than having a  separate
+* identity from the elements they are associated with;  this should make it
+* more efficient to implement such features as default attributes associated
+* with all elements of a  given type.  Furthermore, attribute nodes
+* may not be immediate children of a <code>DocumentFragment</code>. However,
+* they can be associated with <code>Element</code> nodes contained within a
+* <code>DocumentFragment</code>. In short, users of the DOM
+* need to be aware that  <code>Attr</code> nodes have some things in  common
+* with other objects inheriting the <code>Node</code> interface, but they
+* also are quite distinct.
+*
+*/
+class DEPRECATED_DOM_EXPORT DOM_Attr: public DOM_Node {
+
+public:
+  /** @name Constructors and assignment operators */
+  //@{
+  /**
+    * Default constructor for DOM_Attr.  The resulting object does not
+    * refer to any Attribute; it will compare == to 0, and is similar
+    * to a null object reference variable in Java.
+    *
+    */
+    DOM_Attr();
+
+public:
+
+  /**
+    * Copy constructor.  Creates a new <code>DOM_Attr</code> that refers to the
+    *   same underlying Attribute as the original.  See also DOM_Node::clone(),
+    * which will copy an actual attribute, rather than just creating a new
+    * reference to the original attribute.
+    *
+    * @param other The source attribute reference object
+    */
+    DOM_Attr(const DOM_Attr &other);
+
+  /**
+    * Assignment operator
+    *
+    * @param other The source attribute object
+    */
+    DOM_Attr & operator = (const DOM_Attr &other);
+
+    /**
+      * Assignment operator.  This overloaded variant is provided for
+      *   the sole purpose of setting a DOM_Node reference variable to
+      *   zero.  Nulling out a reference variable in this way will decrement
+      *   the reference count on the underlying Node object that the variable
+      *   formerly referenced.  This effect is normally obtained when reference
+      *   variable goes out of scope, but zeroing them can be useful for
+      *   global instances, or for local instances that will remain in scope
+      *   for an extended time,  when the storage belonging to the underlying
+      *   node needs to be reclaimed.
+      *
+      * @param val   Only a value of 0, or null, is allowed.
+      */
+    DOM_Attr & operator = (const DOM_NullPtr *val);
+
+
+
+	//@}
+  /** @name Destructor */
+  //@{
+	
+  /**
+    * Destructor.  The object being destroyed is a reference to the Attribute
+    * "node", not the underlying attribute itself.
+    *
+    */
+    ~DOM_Attr();
+	//@}
+
+  /** @name Getter functions */
+  //@{
+    /**
+    * Returns the name of this attribute.
+    */
+    DOMString       getName() const;
+
+    /**
+    *
+    * Returns true if the attribute received its value explicitly in the
+    * XML document, or if a value was assigned programatically with
+    * the setValue function.  Returns false if the attribute value
+    * came from the default value declared in the document's DTD.
+    */
+    bool            getSpecified() const;
+
+    /**
+	* Returns the value of the attribute.
+	*
+    * The value of the attribute is returned as a string.
+    * Character and general entity references are replaced with their values.
+    */
+    DOMString       getValue() const;
+
+	//@}
+  /** @name Setter functions */
+  //@{
+    /**
+	* Sets the value of the attribute.  A text node with the unparsed contents
+    * of the string will be created.
+	*
+    * @param value The value of the DOM attribute to be set
+    */
+    void            setValue(const DOMString &value);
+	//@}
+
+    /** @name Functions introduced in DOM Level 2. */
+    //@{
+    /**
+     * The <code>DOM_Element</code> node this attribute is attached to or
+     * <code>null</code> if this attribute is not in use.
+     *
+     */
+    DOM_Element     getOwnerElement() const;
+    //@}
+
+protected:
+    DOM_Attr(AttrImpl *attr);
+
+    friend class DOM_Element;
+    friend class DOM_Document;
+
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
+
+
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/deprecated/DOM_RangeException.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/deprecated/DOM_RangeException.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/deprecated/DOM_RangeException.hpp	(revision 2674)
@@ -0,0 +1,105 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: DOM_RangeException.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#ifndef DOM_RangeException_HEADER_GUARD_
+#define DOM_RangeException_HEADER_GUARD_
+
+#include "DOM_DOMException.hpp"
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+
+/**
+  * Encapsulate range related DOM error or warning. DOM level 2 implementation.
+  *
+  * <p> The DOM will create and throw an instance of DOM_RangeException
+  * when an error condition in range is detected.  Exceptions can occur
+  * when an application directly manipulates the range elements in DOM document
+  * tree that is produced by the parser.
+  *
+  * <p>Unlike the other classes in the C++ DOM API, DOM_RangeException
+  * is NOT a reference to an underlying implementation class, and
+  * does not provide automatic memory management.  Code that catches
+  * a DOM Range exception is responsible for deleting it, or otherwise
+  * arranging for its disposal.
+  *
+  */
+class DEPRECATED_DOM_EXPORT DOM_RangeException  : public DOM_DOMException {
+public:
+    /** @name Enumerators for DOM Range Exceptions */
+    //@{
+        enum RangeExceptionCode {
+                BAD_BOUNDARYPOINTS_ERR  = 1,
+                INVALID_NODE_TYPE_ERR   = 2
+        };
+    //@}
+public:
+    /** @name Constructors and assignment operator */
+    //@{
+    /**
+      * Default constructor for DOM_RangeException.
+      *
+      */
+    DOM_RangeException();
+
+    /**
+      * Constructor which takes an error code and a message.
+      *
+      * @param code The error code which indicates the exception
+      * @param message The string containing the error message
+      */
+    DOM_RangeException(RangeExceptionCode code, const DOMString &message);
+
+    /**
+      * Copy constructor.
+      *
+      * @param other The object to be copied.
+      */
+    DOM_RangeException(const DOM_RangeException &other);
+
+    //@}
+    /** @name Destructor. */
+    //@{
+	 /**
+	  * Destructor for DOM_RangeException.  Applications are responsible
+      * for deleting DOM_RangeException objects that they catch after they
+      * have completed their exception processing.
+	  *
+	  */
+    virtual ~DOM_RangeException();
+    //@}
+
+    /** @name Public variables. */
+     //@{
+	 /**
+	  * A code value, from the set defined by the RangeExceptionCode enum,
+      * indicating the type of error that occured.
+	  */
+   RangeExceptionCode   code;
+
+    //@}
+
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
+
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/deprecated/DOM_Document.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/deprecated/DOM_Document.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/deprecated/DOM_Document.hpp	(revision 2674)
@@ -0,0 +1,579 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: DOM_Document.hpp 568078 2007-08-21 11:43:25Z amassari $
+*/
+
+#ifndef DOM_Document_HEADER_GUARD_
+#define DOM_Document_HEADER_GUARD_
+
+#include <xercesc/util/XercesDefs.hpp>
+#include "DOM_DocumentType.hpp"
+#include "DOM_DOMImplementation.hpp"
+#include "DOM_Element.hpp"
+#include "DOM_DocumentFragment.hpp"
+#include "DOM_Comment.hpp"
+#include "DOM_CDATASection.hpp"
+#include "DOM_ProcessingInstruction.hpp"
+#include "DOM_Attr.hpp"
+#include "DOM_Entity.hpp"
+#include "DOM_EntityReference.hpp"
+#include "DOM_NodeList.hpp"
+#include "DOM_Notation.hpp"
+#include "DOM_Text.hpp"
+#include "DOM_Node.hpp"
+#include "DOM_NodeIterator.hpp"
+#include "DOM_TreeWalker.hpp"
+#include "DOM_XMLDecl.hpp"
+#include "DOM_Range.hpp"
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+
+class DocumentImpl;
+class NodeIteratorImpl;
+
+
+/**
+* Class to refer to XML Document nodes in the DOM.
+*
+* Conceptually, a DOM document node is the root of the document tree, and provides
+* the  primary access to the document's data.
+* <p>Since elements, text nodes, comments, processing instructions, etc.
+* cannot exist outside the context of a <code>Document</code>, the
+* <code>Document</code> interface also contains the factory methods needed
+* to create these objects.  The <code>Node</code> objects created have a
+* <code>ownerDocument</code> attribute which associates them with the
+* <code>Document</code> within whose  context they were created.
+*/
+class DEPRECATED_DOM_EXPORT DOM_Document: public DOM_Node {
+
+public:
+    /** @name Constructors and assignment operators */
+    //@{
+    /**
+     * The default constructor for DOM_Document creates a null
+     * DOM_Document object that refers to no document.  It may subsequently be
+     * assigned to refer to an actual Document node.
+     *
+     * To create a new document, use the static method
+     *   <code> DOM_Document::createDocument(). </code>
+     *
+     */
+    DOM_Document();
+
+    /**
+      * Copy constructor.  Creates a new <code>DOM_Document</code> that refers to the
+      * same underlying actual document as the original.
+      *
+      * @param other The object to be copied
+      */
+    DOM_Document(const DOM_Document &other);
+    /**
+      * Assignment operator
+      *
+      * @param other The object to be copied
+      */
+    DOM_Document & operator = (const DOM_Document &other);
+
+    /**
+      * Assignment operator.  This overloaded variant is provided for
+      *   the sole purpose of setting a DOM_Node reference variable to
+      *   zero.  Nulling out a reference variable in this way will decrement
+      *   the reference count on the underlying Node object that the variable
+      *   formerly referenced.  This effect is normally obtained when reference
+      *   variable goes out of scope, but zeroing them can be useful for
+      *   global instances, or for local instances that will remain in scope
+      *   for an extended time,  when the storage belonging to the underlying
+      *   node needs to be reclaimed.
+      *
+      * @param val   Only a value of 0, or null, is allowed.
+      */
+    DOM_Document & operator = (const DOM_NullPtr *val);
+
+
+
+	//@}
+  /** @name Destructor */
+  //@{
+	
+  /**
+    * Destructor.  The object being destroyed is the reference
+    * object, not the underlying Document itself.
+    *
+    * <p>The reference counting memory management will
+    *  delete the underlying document itself if this
+    * DOM_Document is the last remaining to refer to the Document,
+    * and if there are no remaining references to any of the nodes
+    * within the document tree.  If other live references do remain,
+    * the underlying document itself remains also.
+    *
+    */
+    ~DOM_Document();
+
+  //@}
+  /** @name Factory methods to create new nodes for the Document */
+  //@{
+
+    /**
+    *   Create a new empty document.
+    *
+    *   This differs from the <code> DOM_Document </code> default
+    *   constructor, which creates
+    *   a null reference only, not an actual document.
+    *
+    *   <p>This function is an extension to the DOM API, which
+    *   lacks any mechanism for the creation of new documents.
+    *   @return A new <code>DOM_Document</code>, which may then
+    *   be populated using the DOM API calls.
+    */
+    static DOM_Document   createDocument(MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+
+    /**
+    *  Create a new entity.
+    *
+    *  Non-standard extension.
+    * @param name The name of the entity to instantiate
+    *
+    */
+    DOM_Entity     createEntity(const DOMString &name);
+
+    /**
+    * Creates an element of the type specified.
+    *
+    * Note that the instance returned
+    * implements the Element interface, so attributes can be specified
+    * directly  on the returned object.
+    * @param tagName The name of the element type to instantiate.
+    * @return A <code>DOM_Element</code> that reference the new element.
+    * @exception DOMException
+    *   INVALID_CHARACTER_ERR: Raised if the specified name contains an
+    *   illegal character.
+    */
+    DOM_Element     createElement(const DOMString &tagName);
+
+    /**
+    * Creates an element of the type specified.
+    * This non-standard overload of createElement, with the name specified as
+    * raw Unicode string, is intended for use from XML parsers,
+    * and is the best performing way to create elements.  The name
+    * string is not checked for conformance to the XML rules for valid
+    * element names.
+    *
+    *
+    * @param tagName The name of the element type to instantiate, as
+    *    a null-terminated unicode string.
+    * @return A new <CODE>DOM_Element</CODE>
+    *        object with the <CODE>nodeName</CODE> attribute set to
+    *        <CODE>tagName</CODE>, and <CODE>localName</CODE>,
+    *        <CODE>prefix</CODE>, and <CODE>namespaceURI</CODE> set to
+    *        <CODE>null</CODE>.
+    */
+    DOM_Element     createElement(const XMLCh *tagName);
+
+
+    /**
+    * Creates an empty DocumentFragment object.
+    *
+    * @return A <code>DOM_DocumentFragment</code> that references the newly
+    * created document fragment.
+    */
+    DOM_DocumentFragment   createDocumentFragment();
+
+    /**
+    * Creates a Text node given the specified string.
+    *
+    * @param data The data for the node.
+    * @return A <code>DOM_Text</code> object that references the newly
+    *  created text node.
+    */
+    DOM_Text         createTextNode(const DOMString &data);
+
+    /**
+    * Creates a Comment node given the specified string.
+    *
+    * @param data The data for the comment.
+    * @return A <code>DOM_Comment</code> that references the newly
+    *  created comment node.
+    */
+    DOM_Comment      createComment(const DOMString &data);
+
+    /**
+    * Creates a CDATASection node whose value  is the specified
+    * string.
+    *
+    * @param data The data for the <code>DOM_CDATASection</code> contents.
+    * @return A <code>DOM_CDATASection</code> object.
+    * @exception DOMException
+    *   NOT_SUPPORTED_ERR: Raised if this document is an HTML document.
+    */
+    DOM_CDATASection   createCDATASection(const DOMString &data);
+
+    /**
+    *  Create a DocumentType node.  Non-standard extension.
+    *
+    * @return A <code>DOM_DocumentType</code> that references the newly
+    *  created DocumentType node.
+    *
+    */
+    DOM_DocumentType createDocumentType(const DOMString &name);
+
+
+    /**
+    *  Create a Notation.
+    *
+    *  Non-standard extension.
+    *
+    *  @param name The name of the notation to instantiate
+    * @return A <code>DOM_Notation</code> that references the newly
+    *  created Notation node.
+    */
+    DOM_Notation createNotation(const DOMString &name);
+
+
+    /**
+    * Creates a ProcessingInstruction node given the specified
+    * name and data strings.
+    *
+    * @param target The target part of the processing instruction.
+    * @param data The data for the node.
+    * @return A <code>DOM_ProcessingInstruction</code> that references the newly
+    *  created PI node.
+    * @exception DOMException
+    *   INVALID_CHARACTER_ERR: Raised if an illegal character is specified.
+    */
+    DOM_ProcessingInstruction createProcessingInstruction(const DOMString &target,
+        const DOMString &data);
+
+
+    /**
+     * Creates an Attr of the given name.
+     *
+     * Note that the
+     * <code>Attr</code> instance can then be attached to an Element
+     * using the <code>DOMElement::setAttribute()</code> method.
+     * @param name The name of the attribute.
+     * @return A new <CODE>DOM_Attr</CODE>
+     *       object with the <CODE>nodeName</CODE> attribute set to
+     *       <CODE>name</CODE>, and <CODE>localName</CODE>, <CODE>prefix</CODE>,
+     *       and <CODE>namespaceURI</CODE> set to
+     *       <CODE>null</CODE>.
+     * @exception DOMException
+     *   INVALID_CHARACTER_ERR: Raised if the specified name contains an
+     *   illegal character.
+     */
+    DOM_Attr     createAttribute(const DOMString &name);
+
+
+    /**
+     * Creates an EntityReference object.
+     *
+     * @param name The name of the entity to reference.
+     * @return A <code>DOM_EntityReference</code> that references the newly
+     *  created EntityReference node.
+     * @exception DOMException
+     *   INVALID_CHARACTER_ERR: Raised if the specified name contains an
+     *   illegal character.
+     */
+    DOM_EntityReference    createEntityReference(const DOMString &name);
+
+
+    /**
+     * Creates a NodeIterator object.   (DOM2)
+     *
+     * NodeIterators are used to step through a set of nodes, e.g. the set of nodes in a NodeList, the
+     * document subtree governed by a particular node, the results of a query, or any other set of nodes.
+     * The set of nodes to be iterated is determined by the implementation of the NodeIterator. DOM Level 2
+     * specifies a single NodeIterator implementation for document-order traversal of a document subtree.
+     * Instances of these iterators are created by calling <code>DocumentTraversal.createNodeIterator()</code>.
+     *
+     * To produce a view of the document that has entity references expanded and does not
+     * expose the entity reference node itself, use the <code>whatToShow</code> flags to hide the entity
+     * reference node and set expandEntityReferences to true when creating the iterator. To
+     * produce a view of the document that has entity reference nodes but no entity expansion,
+     * use the <code>whatToShow</code> flags to show the entity reference node and set
+     * expandEntityReferences to false.
+     *
+     * @param root The root node of the DOM tree
+     * @param whatToShow This attribute determines which node types are presented via the iterator.
+     * @param filter The filter used to screen nodes
+     * @param entityReferenceExpansion The value of this flag determines whether the children of entity reference nodes are
+     *                   visible to the iterator. If false, they will be skipped over.
+     */
+
+    DOM_NodeIterator createNodeIterator(DOM_Node root,
+                                        unsigned long whatToShow,
+                                        DOM_NodeFilter*  filter,
+                                        bool entityReferenceExpansion);
+     /**
+     * Creates a TreeWalker object.   (DOM2)
+     *
+     * TreeWalker objects are used to navigate a document tree or subtree using the view of the document defined
+     * by its whatToShow flags and any filters that are defined for the TreeWalker. Any function which performs
+     * navigation using a TreeWalker will automatically support any view defined by a TreeWalker.
+     *
+     * Omitting nodes from the logical view of a subtree can result in a structure that is substantially different from
+     * the same subtree in the complete, unfiltered document. Nodes that are siblings in the TreeWalker view may
+     * be children of different, widely separated nodes in the original view. For instance, consider a Filter that skips
+     * all nodes except for Text nodes and the root node of a document. In the logical view that results, all text
+     * nodes will be siblings and appear as direct children of the root node, no matter how deeply nested the
+     * structure of the original document.
+     *
+     * To produce a view of the document that has entity references expanded
+     * and does not expose the entity reference node itself, use the whatToShow
+     * flags to hide the entity reference node and set <code>expandEntityReferences</code> to
+     * true when creating the TreeWalker. To produce a view of the document
+     * that has entity reference nodes but no entity expansion, use the
+     * <code>whatToShow</code> flags to show the entity reference node and set
+     * <code>expandEntityReferences</code> to false
+     *
+     * @param root The root node of the DOM tree
+     * @param whatToShow This attribute determines which node types are presented via the tree-walker.
+     * @param filter The filter used to screen nodes
+     * @param entityReferenceExpansion The value of this flag determines whether the children of entity reference nodes are
+     *                   visible to the tree-walker. If false, they will be skipped over.
+     */
+
+    DOM_TreeWalker  createTreeWalker(DOM_Node root,
+                                     unsigned long whatToShow,
+                                     DOM_NodeFilter*  filter,
+                                     bool entityReferenceExpansion);
+
+    /**
+     * Creates a XMLDecl type Node .   Non-Standard (an extension to xerces)
+     *
+     * XMLDecl Nodes are created to get  version, encoding and standalone information in a document tree
+     *
+     * This node if created gets attached to a document object or an entity node. There can be no child
+     * to this type of node.
+     *
+     * @param version The version data of the document. Currently possible value is 1.0
+     * @param encoding The encoding type specified in the document
+     * @param standalone The information whether the document is standalone or not
+     */
+
+    DOM_XMLDecl createXMLDecl(const DOMString& version,
+                            const DOMString& encoding,
+                            const DOMString& standalone);
+
+    /**
+	  * To create the range  consisting of boundary-points and offset of the
+      * selected contents
+      *
+      * @return The initial state of the Range such that both the boundary-points
+      * are positioned at the beginning of the corresponding DOM_DOcument, before
+      * any content. The range returned can only be used to select content
+      * associated with this document, or with documentFragments and Attrs for
+      * which this document is the ownerdocument
+	  */
+    DOM_Range    createRange();
+
+    //@}
+    /** @name Getter functions */
+    //@{
+    /**
+     * Get Document Type Declaration (see <code>DOM_DocumentType</code>) associated
+     * with  this document.
+     *
+     * For documents without
+     * a document type declaration this returns <code>null</code> reference object. The DOM Level
+     *  1 does not support editing the Document Type Declaration, therefore
+     * <code>docType</code> cannot be altered in any way.
+     */
+    DOM_DocumentType       getDoctype() const;
+
+
+
+    /**
+     * Return the <code>DOMImplementation</code> object that handles this document.
+     */
+    DOM_DOMImplementation  &getImplementation() const;
+
+
+    /**
+     * Return a reference to the root element of the document.
+     */
+    DOM_Element     getDocumentElement() const;
+
+    /**
+     * Returns a <code>DOM_NodeList</code> of all the elements with a
+     * given tag name.  The returned node list is "live", in that changes
+     * to the document tree made after a nodelist was initially
+     * returned will be immediately reflected in the node list.
+     *
+     * The elements in the node list are ordered in the same order in which they
+     * would be encountered in a
+     * preorder traversal of the <code>Document</code> tree.
+     * @param tagname The name of the tag to match on. The special value "*"
+     *   matches all tags.
+     * @return A reference to a NodeList containing all the matched
+     *   <code>Element</code>s.
+     */
+    DOM_NodeList           getElementsByTagName(const DOMString &tagname) const;
+
+    //@}
+    /** @name Functions introduced in DOM Level 2. */
+    //@{
+
+    /**
+     * Imports a node from another document to this document.
+     * The returned node has no parent (<CODE>parentNode</CODE> is
+     * <CODE>null</CODE>). The source node is not altered or removed from the
+     * original document; this method creates a new copy of the source
+     * node.<BR>For all nodes, importing a node creates a node object owned by
+     * the importing document, with attribute values identical to the source
+     * node's <CODE>nodeName</CODE> and <CODE>nodeType</CODE>, plus the
+     * attributes related to namespaces (prefix and namespaces URI).
+     *
+     * @param importedNode The node to import.
+     * @param deep If <CODE>true</CODE>, recursively import the subtree under the
+     *      specified node; if <CODE>false</CODE>, import only the node itself,
+     *      as explained above. This does not apply to <CODE>DOM_Attr</CODE>,
+     *      <CODE>DOM_EntityReference</CODE>, and <CODE>DOM_Notation</CODE> nodes.
+     * @return The imported node that belongs to this <CODE>DOM_Document</CODE>.
+     * @exception DOMException
+     *   NOT_SUPPORTED_ERR: Raised if the type of node being imported is
+     *                      not supported.
+     */
+    DOM_Node            importNode(const DOM_Node &importedNode, bool deep);
+
+    /**
+     * Creates an element of the given qualified name and
+     * namespace URI.
+     *
+     * @param namespaceURI The <em>namespace URI</em> of
+     *   the element to create.
+     * @param qualifiedName The <em>qualified name</em>
+     *   of the element type to instantiate.
+     * @return A new <code>DOM_Element</code> object.
+     * @exception DOMException
+     *   INVALID_CHARACTER_ERR: Raised if the specified qualified name contains
+     *                          an illegal character.
+     * <br>
+     *   NAMESPACE_ERR: Raised if the <CODE>qualifiedName</CODE> is
+     *      malformed, if the <CODE>qualifiedName</CODE> has a prefix and the
+     *      <CODE>namespaceURI</CODE> is <CODE>null</CODE> or an empty string,
+     *      or if the <CODE>qualifiedName</CODE> has a prefix that is "xml" and
+     *      the <CODE>namespaceURI</CODE> is different from
+     *      "http://www.w3.org/XML/1998/namespace".
+     */
+    DOM_Element         createElementNS(const DOMString &namespaceURI,
+	const DOMString &qualifiedName);
+
+    /**
+     * Creates an attribute of the given qualified name and namespace
+     * URI.
+     *
+     * @param namespaceURI The <em>namespace URI</em> of
+     *   the attribute to create.
+     * @param qualifiedName The <em>qualified name</em>
+     *   of the attribute to instantiate.
+     * @return A new <code>DOM_Attr</code> object.
+     * @exception DOMException
+     *   INVALID_CHARACTER_ERR: Raised if the specified qualified name contains
+     *                          an illegal character.
+     * <br>
+     *   NAMESPACE_ERR: Raised if the <CODE>qualifiedName</CODE> is
+     *      malformed, if the <CODE>qualifiedName</CODE> has a prefix and the
+     *      <CODE>namespaceURI</CODE> is <CODE>null</CODE> or an empty string,
+     *      if the <CODE>qualifiedName</CODE> has a prefix that is "xml" and the
+     *      <CODE>namespaceURI</CODE> is different from
+     *      "http://www.w3.org/XML/1998/namespace", if the
+     *      <CODE>qualifiedName</CODE> has a prefix that is "xmlns" and the
+     *      <CODE>namespaceURI</CODE> is different from
+     *      "http://www.w3.org/2000/xmlns/", or if the
+     *      <CODE>qualifiedName</CODE> is "xmlns" and the
+     *      <CODE>namespaceURI</CODE> is different from
+     *      "http://www.w3.org/2000/xmlns/".
+     */
+    DOM_Attr            createAttributeNS(const DOMString &namespaceURI,
+	const DOMString &qualifiedName);
+
+    /**
+     * Returns a <code>DOM_NodeList</code> of all the <code>DOM_Element</code>s
+     * with a given <em>local name</em> and
+     * namespace URI in the order in which they would be encountered in a
+     * preorder traversal of the <code>DOM_Document</code> tree.
+     *
+     * @param namespaceURI The <em>namespace URI</em> of
+     *   the elements to match on. The special value "*" matches all
+     *   namespaces.
+     * @param localName The <em>local name</em> of the
+     *   elements to match on. The special value "*" matches all local names.
+     * @return A new <code>DOM_NodeList</code> object containing all the matched
+     *  <code>DOM_Element</code>s.
+     */
+    DOM_NodeList        getElementsByTagNameNS(const DOMString &namespaceURI,
+	const DOMString &localName) const;
+
+    /**
+     * Returns the <code>DOM_Element</code> whose ID is given by <code>elementId</code>.
+     * If no such element exists, returns <code>null</code>.
+     * Behavior is not defined if more than one element has this <code>ID</code>.
+     * <P><B>Note:</B> The DOM implementation must have information that says
+     * which attributes are of type ID. Attributes with the name "ID" are not of
+     * type ID unless so defined. Implementations that do not know whether
+     * attributes are of type ID or not are expected to return
+     * <CODE>null</CODE>.</P>
+     *
+     * @param elementId The unique <code>id</code> value for an element.
+     * @return The matching element.
+     */
+    DOM_Element         getElementById(const DOMString &elementId);
+
+    /**
+     * Sets whether the DOM implementation performs error checking
+     * upon operations. Turning off error checking only affects
+     * the following DOM checks:
+     * <ul>
+     * <li>Checking strings to make sure that all characters are
+     *     legal XML characters
+     * <li>Hierarchy checking such as allowed children, checks for
+     *     cycles, etc.
+     * </ul>
+     * <p>
+     * Turning off error checking does <em>not</em> turn off the
+     * following checks:
+     * <ul>
+     * <li>Read only checks
+     * <li>Checks related to DOM events
+     * </ul>
+     */
+    void setErrorChecking(bool check);
+
+    /**
+     * Returns true if the DOM implementation performs error checking.
+     */
+    bool getErrorChecking();
+
+    //@}
+
+protected:
+    DOM_Document (DocumentImpl *impl);
+
+    friend class DOM_Node;
+    friend class DocumentImpl;
+    friend class NodeIteratorImpl;
+    friend class DOM_DOMImplementation;
+
+};
+
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/deprecated/DOM_NodeList.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/deprecated/DOM_NodeList.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/deprecated/DOM_NodeList.hpp	(revision 2674)
@@ -0,0 +1,188 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: DOM_NodeList.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#ifndef DOM_NodeList_HEADER_GUARD_
+#define DOM_NodeList_HEADER_GUARD_
+
+#include <xercesc/util/XercesDefs.hpp>
+#include "DOM_Node.hpp"
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+
+class NodeListImpl;
+
+/**
+ * The <code>NodeList</code> interface provides the abstraction of an ordered
+ * collection of nodes.  NodeLists are created by DOM_Document::getElementsByTagName(),
+ * DOM_Node::getChildNodes(),
+ *
+ * <p>The items in the <code>NodeList</code> are accessible via an integral
+ * index, starting from 0.
+ *
+ * NodeLists are "live", in that any changes to the document tree are immediately
+ * reflected in any NodeLists that may have been created for that tree.
+ */
+
+class  DEPRECATED_DOM_EXPORT DOM_NodeList {
+private:
+    NodeListImpl *fImpl;
+
+public:
+    /** @name Constructors and assignment operator */
+    //@{
+    /**
+      * Default constructor for DOM_NodeList.  The resulting object does not
+      * refer to an actual NodeList; it will compare == to 0, and is similar
+      * to a null object reference variable in Java.  It may subsequently be
+      * assigned to refer to an actual NodeList.
+      *
+      */
+    DOM_NodeList();
+
+    /**
+      * Copy constructor.
+      *
+      * @param other The object to be copied.
+      */
+    DOM_NodeList(const DOM_NodeList &other);
+
+    /**
+      * Assignment operator.
+      *
+      * @param other The object to be copied.
+      */
+    DOM_NodeList & operator = (const DOM_NodeList &other);
+
+    /**
+      * Assignment operator.  This overloaded variant is provided for
+      *   the sole purpose of setting a DOM_Node reference variable to
+      *   zero.  Nulling out a reference variable in this way will decrement
+      *   the reference count on the underlying Node object that the variable
+      *   formerly referenced.  This effect is normally obtained when reference
+      *   variable goes out of scope, but zeroing them can be useful for
+      *   global instances, or for local instances that will remain in scope
+      *   for an extended time,  when the storage belonging to the underlying
+      *   node needs to be reclaimed.
+      *
+      * @param val   Only a value of 0, or null, is allowed.
+      */
+    DOM_NodeList & operator = (const DOM_NullPtr *val);
+
+    //@}
+    /** @name Destructor. */
+    //@{
+	 /**
+	  * Destructor for DOM_NodeList.  The object being destroyed is the reference
+      * object, not the underlying NodeList node itself.
+	  *
+      * <p>Like most other DOM types in this implementation, memory management
+      * of Node Lists is automatic.  Instances of DOM_NodeList function
+      * as references to an underlying heap based implementation object,
+      * and should never be explicitly new-ed or deleted in application code, but
+      * should appear only as local variables or function parameters.
+	  */
+    ~DOM_NodeList();
+    //@}
+
+    /** @name Comparison operators. */
+    //@{
+
+    /**
+      *  Equality operator.
+      *  Compares whether two node list
+      *  variables refer to the same underlying node list.  It does
+      *  not compare the contents of the node lists themselves.
+      *
+      *  @param other The value to be compared
+      *  @return Returns true if node list refers to same underlying node list
+      */
+    bool operator == (const DOM_NodeList &other) const;
+
+    /**
+     *  Use this comparison operator to test whether a Node List reference
+     *  is null.
+     *
+     *  @param nullPtr The value to be compared, which must be 0 or null.
+     *  @return Returns true if node list reference is null
+     */
+    bool operator == (const DOM_NullPtr *nullPtr) const;
+
+     /**
+      *  Inequality operator.
+      *  Compares whether two node list
+      *  variables refer to the same underlying node list.  It does
+      *  not compare the contents of the node lists themselves.
+      *
+      *  @param other The value to be compared
+      *  @return Returns true if node list refers to a different underlying node list
+      */
+    bool operator != (const DOM_NodeList &other) const;
+
+    /**
+     *  Use this comparison operator to test whether a Node List reference
+     *  is not null.
+     *
+     *  @param nullPtr The value to be compared, which must be 0 or null.
+     *  @return Returns true if node list reference is not null
+     */
+    bool operator != (const DOM_NullPtr *nullPtr) const;
+    //@}
+
+
+    /** @name Get functions. */
+    //@{
+    /**
+     * Returns the <code>index</code>th item in the collection.
+     *
+     * If <code>index</code> is greater than or equal to the number of nodes in
+     * the list, this returns <code>null</code>.
+     *
+     * @param index Index into the collection.
+     * @return The node at the <code>index</code>th position in the
+     *   <code>NodeList</code>, or <code>null</code> if that is not a valid
+     *   index.
+     */
+    DOM_Node  item(unsigned int index) const;
+
+    /**
+     * Returns the number of nodes in the list.
+     *
+     * The range of valid child node indices is 0 to <code>length-1</code> inclusive.
+     */
+    unsigned int getLength() const;
+    //@}
+
+protected:
+    DOM_NodeList(NodeListImpl *impl);
+
+    friend class DOM_Document;
+    friend class DOM_Element;
+    friend class DOM_Node;
+    friend class DOM_Entity;
+
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
+
+
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/deprecated/DOM_Node.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/deprecated/DOM_Node.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/deprecated/DOM_Node.hpp	(revision 2674)
@@ -0,0 +1,594 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: DOM_Node.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#ifndef DOM_Node_HEADER_GUARD_
+#define DOM_Node_HEADER_GUARD_
+
+#include <xercesc/util/XercesDefs.hpp>
+#include "DOMString.hpp"
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class DOM_NodeList;
+class DOM_NamedNodeMap;
+class DOM_Document;
+class NodeImpl;
+
+class DOM_NullPtr;  // A dummy class, with no implementation, that is
+                    //  used as in overloaded functions as a way to
+                    //  pass 0 or null.
+
+/**
+ * The <code>Node</code> interface is the primary datatype for the entire
+ * Document Object Model.
+ *
+ * It represents a single node in the document tree.
+ * While all objects implementing the <code>Node</code> interface expose
+ * methods for dealing with children, not all objects implementing the
+ * <code>Node</code> interface may have children. For example,
+ * <code>Text</code> nodes may not have children, and adding children to such
+ * nodes results in a <code>DOMException</code> being raised.
+ * <p>The attributes <code>nodeName</code>, <code>nodeValue</code>  and
+ * <code>attributes</code> are  included as a mechanism to get at node
+ * information without  casting down to the specific derived interface. In
+ * cases where  there is no obvious mapping of these attributes for a specific
+ *  <code>nodeType</code> (e.g., <code>nodeValue</code> for an Element  or
+ * <code>attributes</code>  for a Comment), this returns <code>null</code>.
+ * Note that the  specialized interfaces may contain additional and more
+ * convenient mechanisms to get and set the relevant information.
+ */
+class  DEPRECATED_DOM_EXPORT DOM_Node {
+
+    public:
+    /** @name Constructors and assignment operators */
+    //@{
+    /**
+      * Default constructor for DOM_Node.  The resulting object does not
+      * refer to an actual  node; it will compare == to 0, and is similar
+      * to a null object reference variable in Java.  It may subsequently be
+      * assigned to refer to an actual node.  "Acutal Nodes" will always
+      * be of some derived type, such as Element or Attr.
+      *
+      */
+    DOM_Node();
+
+    /**
+      * Copy constructor.
+      *
+      * @param other The object to be copied.
+      */
+    DOM_Node(const DOM_Node &other);
+
+    /**
+      * Assignment operator.
+      *
+      * @param other The source to be assigned.
+      */
+    DOM_Node & operator = (const DOM_Node &other);
+
+     /**
+      * Assignment operator.  This overloaded variant is provided for
+      *   the sole purpose of setting a DOM_Node reference variable to
+      *   zero.  Nulling out a reference variable in this way will decrement
+      *   the reference count on the underlying Node object that the variable
+      *   formerly referenced.  This effect is normally obtained when reference
+      *   variable goes out of scope, but zeroing them can be useful for
+      *   global instances, or for local instances that will remain in scope
+      *   for an extended time,  when the storage belonging to the underlying
+      *   node needs to be reclaimed.
+      *
+      * @param val   Only a value of 0, or null, is allowed.
+      */
+    DOM_Node & operator = (const DOM_NullPtr *val);
+
+   //@}
+    /** @name Destructor. */
+    //@{
+	 /**
+	  * Destructor for DOM_Node.  The object being destroyed is the reference
+      * object, not the underlying node itself.
+	  *
+	  */
+    ~DOM_Node();
+
+    //@}
+    /** @name Equality and Inequality operators. */
+    //@{
+    /**
+     * The equality operator.  This compares to references to nodes, and
+     * returns true if they both refer to the same underlying node.  It
+     * is exactly analogous to Java's operator ==  on object reference
+     * variables.  This operator can not be used to compare the values
+     * of two different nodes in the document tree.
+     *
+     * @param other The object reference with which <code>this</code> object is compared
+     * @returns True if both <code>DOM_Node</code>s refer to the same
+     *  actual node, or are both null; return false otherwise.
+     */
+    bool operator == (const DOM_Node & other)const;
+
+    /**
+      *  Compare with a pointer.  Intended only to allow a convenient
+      *    comparison with null.
+      *
+      */
+    bool operator == (const DOM_NullPtr *other) const;
+
+    /**
+     * The inequality operator.  See operator ==.
+     *
+     */
+    bool operator != (const DOM_Node & other) const;
+
+     /**
+      *  Compare with a pointer.  Intended only to allow a convenient
+      *    comparison with null.
+      *
+      */
+   bool operator != (const DOM_NullPtr * other) const;
+
+
+    enum NodeType {
+        ELEMENT_NODE                = 1,
+        ATTRIBUTE_NODE              = 2,
+        TEXT_NODE                   = 3,
+        CDATA_SECTION_NODE          = 4,
+        ENTITY_REFERENCE_NODE       = 5,
+        ENTITY_NODE                 = 6,
+        PROCESSING_INSTRUCTION_NODE = 7,
+        COMMENT_NODE                = 8,
+        DOCUMENT_NODE               = 9,
+        DOCUMENT_TYPE_NODE          = 10,
+        DOCUMENT_FRAGMENT_NODE      = 11,
+        NOTATION_NODE               = 12,
+        XML_DECL_NODE               = 13
+    };
+
+    //@}
+    /** @name Get functions. */
+    //@{
+
+    /**
+     * The name of this node, depending on its type; see the table above.
+     */
+    DOMString       getNodeName() const;
+
+    /**
+     * Gets the value of this node, depending on its type.
+     *
+     * @exception DOMException
+     *   NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly.
+     * @exception DOMException
+     *   DOMSTRING_SIZE_ERR: Raised when it would return more characters than
+     *   fit in a <code>DOMString</code> variable on the implementation
+     *   platform.
+     */
+    DOMString       getNodeValue() const;
+
+    /**
+     * An enum value representing the type of the underlying object.
+     */
+    short           getNodeType() const;
+
+    /**
+     * Gets the parent of this node.
+     *
+     * All nodes, except <code>Document</code>,
+     * <code>DocumentFragment</code>, and <code>Attr</code> may have a parent.
+     * However, if a node has just been created and not yet added to the tree,
+     * or if it has been removed from the tree, a <code>null</code> DOM_Node
+     * is returned.
+     */
+    DOM_Node        getParentNode() const;
+
+    /**
+     * Gets a <code>NodeList</code> that contains all children of this node.
+     *
+     * If there
+     * are no children, this is a <code>NodeList</code> containing no nodes.
+     * The content of the returned <code>NodeList</code> is "live" in the sense
+     * that, for instance, changes to the children of the node object that
+     * it was created from are immediately reflected in the nodes returned by
+     * the <code>NodeList</code> accessors; it is not a static snapshot of the
+     * content of the node. This is true for every <code>NodeList</code>,
+     * including the ones returned by the <code>getElementsByTagName</code>
+     * method.
+     */
+    DOM_NodeList    getChildNodes() const;
+    /**
+     * Gets the first child of this node.
+     *
+     * If there is no such node, this returns <code>null</code>.
+     */
+    DOM_Node        getFirstChild() const;
+
+    /**
+     * Gets the last child of this node.
+     *
+     * If there is no such node, this returns <code>null</code>.
+     */
+    DOM_Node        getLastChild() const;
+
+    /**
+     * Gets the node immediately preceding this node.
+     *
+     * If there is no such node, this returns <code>null</code>.
+     */
+    DOM_Node        getPreviousSibling() const;
+
+    /**
+     * Gets the node immediately following this node.
+     *
+     * If there is no such node, this returns <code>null</code>.
+     */
+    DOM_Node        getNextSibling() const;
+
+    /**
+     * Gets a <code>NamedNodeMap</code> containing the attributes of this node (if it
+     * is an <code>Element</code>) or <code>null</code> otherwise.
+     */
+    DOM_NamedNodeMap  getAttributes() const;
+
+    /**
+     * Gets the <code>DOM_Document</code> object associated with this node.
+     *
+     * This is also
+     * the <code>DOM_Document</code> object used to create new nodes. When this
+     * node is a <code>DOM_Document</code> or a <code>DOM_DocumentType</code>
+     * which is not used with any <code>DOM_Document</code> yet, this is
+     * <code>null</code>.
+     *
+     */
+    DOM_Document      getOwnerDocument() const;
+
+    /**
+      * Return the user data pointer.
+      *
+      * User data allows application programs
+      * to attach extra data to DOM nodes, and can be set using the
+      * function <code>DOM_Node::setUserData(p)</code>.
+      * @return The user data pointer.
+      */
+    void              *getUserData() const;
+
+    //@}
+    /** @name Cloning function. */
+    //@{
+
+    /**
+     * Returns a duplicate of this node.
+     *
+     * This function serves as a generic copy constructor for nodes.
+     *
+     * The duplicate node has no parent (
+     * <code>parentNode</code> returns <code>null</code>.).
+     * <br>Cloning an <code>Element</code> copies all attributes and their
+     * values, including those generated by the  XML processor to represent
+     * defaulted attributes, but this method does not copy any text it contains
+     * unless it is a deep clone, since the text is contained in a child
+     * <code>Text</code> node. Cloning any other type of node simply returns a
+     * copy of this node.
+     * @param deep If <code>true</code>, recursively clone the subtree under the
+     *   specified node; if <code>false</code>, clone only the node itself (and
+     *   its attributes, if it is an <code>Element</code>).
+     * @return The duplicate node.
+     */
+    DOM_Node         cloneNode(bool deep) const;
+
+    //@}
+    /** @name Functions to modify the DOM Node. */
+    //@{
+
+    /**
+     * Inserts the node <code>newChild</code> before the existing child node
+     * <code>refChild</code>.
+     *
+     * If <code>refChild</code> is <code>null</code>,
+     * insert <code>newChild</code> at the end of the list of children.
+     * <br>If <code>newChild</code> is a <code>DocumentFragment</code> object,
+     * all of its children are inserted, in the same order, before
+     * <code>refChild</code>. If the <code>newChild</code> is already in the
+     * tree, it is first removed.  Note that a <code>DOM_Node</code> that
+     * has never been assigned to refer to an actual node is == null.
+     * @param newChild The node to insert.
+     * @param refChild The reference node, i.e., the node before which the new
+     *   node must be inserted.
+     * @return The node being inserted.
+     * @exception DOMException
+     *   HIERARCHY_REQUEST_ERR: Raised if this node is of a type that does not
+     *   allow children of the type of the <code>newChild</code> node, or if
+     *   the node to insert is one of this node's ancestors.
+     *   <br>WRONG_DOCUMENT_ERR: Raised if <code>newChild</code> was created
+     *   from a different document than the one that created this node.
+     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this node or the node being
+     *   inserted is readonly.
+     *   <br>NOT_FOUND_ERR: Raised if <code>refChild</code> is not a child of
+     *   this node.
+     */
+    DOM_Node               insertBefore(const DOM_Node &newChild,
+                                        const DOM_Node &refChild);
+
+
+    /**
+     * Replaces the child node <code>oldChild</code> with <code>newChild</code>
+     * in the list of children, and returns the <code>oldChild</code> node.
+     *
+     * If <CODE>newChild</CODE> is a <CODE>DOM_DocumentFragment</CODE> object,
+     * <CODE>oldChild</CODE> is replaced by all of the <CODE>DOM_DocumentFragment</CODE>
+     * children, which are inserted in the same order.
+     *
+     * If the <code>newChild</code> is already in the tree, it is first removed.
+     * @param newChild The new node to put in the child list.
+     * @param oldChild The node being replaced in the list.
+     * @return The node replaced.
+     * @exception DOMException
+     *   HIERARCHY_REQUEST_ERR: Raised if this node is of a type that does not
+     *   allow children of the type of the <code>newChild</code> node, or it
+     *   the node to put in is one of this node's ancestors.
+     *   <br>WRONG_DOCUMENT_ERR: Raised if <code>newChild</code> was created
+     *   from a different document than the one that created this node.
+     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this node or the new node is readonly.
+     *   <br>NOT_FOUND_ERR: Raised if <code>oldChild</code> is not a child of
+     *   this node.
+     */
+    DOM_Node       replaceChild(const DOM_Node &newChild,
+                                const DOM_Node &oldChild);
+    /**
+     * Removes the child node indicated by <code>oldChild</code> from the list
+     * of children, and returns it.
+     *
+     * @param oldChild The node being removed.
+     * @return The node removed.
+     * @exception DOMException
+     *   NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
+     *   <br>NOT_FOUND_ERR: Raised if <code>oldChild</code> is not a child of
+     *   this node.
+     */
+    DOM_Node        removeChild(const DOM_Node &oldChild);
+
+    /**
+     * Adds the node <code>newChild</code> to the end of the list of children of
+     * this node.
+     *
+     * If the <code>newChild</code> is already in the tree, it is
+     * first removed.
+     * @param newChild The node to add.If it is a  <code>DocumentFragment</code>
+     *   object, the entire contents of the document fragment are moved into
+     *   the child list of this node
+     * @return The node added.
+     * @exception DOMException
+     *   HIERARCHY_REQUEST_ERR: Raised if this node is of a type that does not
+     *   allow children of the type of the <code>newChild</code> node, or if
+     *   the node to append is one of this node's ancestors.
+     *   <br>WRONG_DOCUMENT_ERR: Raised if <code>newChild</code> was created
+     *   from a different document than the one that created this node.
+     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this node or the node being
+     *   appended is readonly.
+     */
+    DOM_Node        appendChild(const DOM_Node &newChild);
+
+    //@}
+    /** @name Query functions. */
+    //@{
+
+    /**
+     *  This is a convenience method to allow easy determination of whether a
+     * node has any children.
+     *
+     * @return  <code>true</code> if the node has any children,
+     *   <code>false</code> if the node has no children.
+     */
+    bool             hasChildNodes() const;
+
+
+    /**
+     * Test whether this node is null.
+     *
+     * This C++ class, <code>DOM_Node<code>
+     * functions much like an object reference to an underlying Node, and
+     * this function tests for that reference being null.  Several DOM
+     * APIs, <code>Node.getNextSibling()</code> for example, can return null, and
+     * this function is used to test for that condition.
+     *
+     * <p>Operator == provides another way to perform this null test on a
+     * DOM_Node.
+     */
+    bool                    isNull() const;
+
+    //@}
+    /** @name Set functions. */
+    //@{
+
+
+    /**
+    * Sets the value of the node.
+    *
+    * Any node which can have a nodeValue (@see getNodeValue) will
+    * also accept requests to set it to a string. The exact response to
+    * this varies from node to node -- Attribute, for example, stores
+    * its values in its children and has to replace them with a new Text
+    * holding the replacement value.
+    *
+    * For most types of Node, value is null and attempting to set it
+    * will throw DOMException(NO_MODIFICATION_ALLOWED_ERR). This will
+    * also be thrown if the node is read-only.
+    */
+    void              setNodeValue(const DOMString &nodeValue);
+
+    /**
+      * Set the user data for a node.
+      *
+      * User data allows application programs
+      * to attach extra data to DOM nodes, and can be retrieved using the
+      * function <code>DOM_Node::getUserData(p)</code>.
+      * <p>
+      * Deletion of the user data remains the responsibility of the
+      * application program; it will not be automatically deleted when
+      * the nodes themselves are reclaimed.
+      *
+      * <p> Because DOM_Node is not designed to be subclassed, userdata
+      * provides an alternative means for extending the the information
+      * kept with nodes by an application program.
+      *
+      * @param p The pointer to be kept with the node.
+      */
+    void              setUserData(void *p);
+
+    //@}
+    /** @name Functions introduced in DOM Level 2. */
+    //@{
+
+    /**
+     * Puts all <CODE>DOM_Text</CODE>
+     * nodes in the full depth of the sub-tree underneath this <CODE>DOM_Node</CODE>,
+     * including attribute nodes, into a "normal" form where only markup (e.g.,
+     * tags, comments, processing instructions, CDATA sections, and entity
+     * references) separates <CODE>DOM_Text</CODE>
+     * nodes, i.e., there are neither adjacent <CODE>DOM_Text</CODE>
+     * nodes nor empty <CODE>DOM_Text</CODE>
+     * nodes. This can be used to ensure that the DOM view of a document is the
+     * same as if it were saved and re-loaded, and is useful when operations
+     * (such as XPointer lookups) that depend on a particular document tree
+     * structure are to be used.
+     * <P><B>Note:</B> In cases where the document contains <CODE>DOM_CDATASections</CODE>,
+     * the normalize operation alone may not be sufficient, since XPointers do
+     * not differentiate between <CODE>DOM_Text</CODE>
+     * nodes and <CODE>DOM_CDATASection</CODE>
+     * nodes.</P>
+     *
+     */
+    void              normalize();
+
+    /**
+     * Tests whether the DOM implementation implements a specific
+     * feature and that feature is supported by this node.
+     *
+     * @param feature The string of the feature to test. This is the same
+     * name as what can be passed to the method <code>hasFeature</code> on
+     * <code>DOM_DOMImplementation</code>.
+     * @param version This is the version number of the feature to test. In
+     * Level 2, version 1, this is the string "2.0". If the version is not
+     * specified, supporting any version of the feature will cause the
+     * method to return <code>true</code>.
+     * @return Returns <code>true</code> if the specified feature is supported
+     * on this node, <code>false</code> otherwise.
+     */
+    bool              isSupported(const DOMString &feature,
+	                       const DOMString &version) const;
+
+    /**
+     * Get the <em>namespace URI</em> of
+     * this node, or <code>null</code> if it is unspecified.
+     * <p>
+     * This is not a computed value that is the result of a namespace lookup
+     * based on an examination of the namespace declarations in scope. It is
+     * merely the namespace URI given at creation time.
+     * <p>
+     * For nodes of any type other than <CODE>ELEMENT_NODE</CODE> and
+     * <CODE>ATTRIBUTE_NODE</CODE> and nodes created with a DOM Level 1 method,
+     * such as <CODE>createElement</CODE> from the <CODE>DOM_Document</CODE>
+     * interface, this is always <CODE>null</CODE>.
+     *
+     */
+    DOMString         getNamespaceURI() const;
+
+    /**
+     * Get the <em>namespace prefix</em>
+     * of this node, or <code>null</code> if it is unspecified.
+     *
+     */
+    DOMString         getPrefix() const;
+
+    /**
+     * Returns the local part of the <em>qualified name</em> of this node.
+     * <p>
+     * For nodes created with a DOM Level 1 method, such as
+     * <code>createElement</code> from the <code>DOM_Document</code> interface,
+     * it is null.
+     *
+     */
+    DOMString         getLocalName() const;
+
+    /**
+     * Set the <em>namespace prefix</em> of this node.
+     * <p>
+     * Note that setting this attribute, when permitted, changes
+     * the <CODE>nodeName</CODE> attribute, which holds the <EM>qualified
+     * name</EM>, as well as the <CODE>tagName</CODE> and <CODE>name</CODE>
+     * attributes of the <CODE>DOM_Element</CODE> and <CODE>DOM_Attr</CODE>
+     * interfaces, when applicable.
+     * <p>
+     * Note also that changing the prefix of an
+     * attribute, that is known to have a default value, does not make a new
+     * attribute with the default value and the original prefix appear, since the
+     * <CODE>namespaceURI</CODE> and <CODE>localName</CODE> do not change.
+     *
+     * @param prefix The prefix of this node.
+     * @exception DOMException
+     *   INVALID_CHARACTER_ERR: Raised if the specified prefix contains
+     *                          an illegal character.
+     * <br>
+     *   NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
+     * <br>
+     *   NAMESPACE_ERR: Raised if the specified <CODE>prefix</CODE> is
+     *      malformed, if the <CODE>namespaceURI</CODE> of this node is
+     *      <CODE>null</CODE>, if the specified prefix is "xml" and the
+     *      <CODE>namespaceURI</CODE> of this node is different from
+     *      "http://www.w3.org/XML/1998/namespace", if this node is an attribute
+     *      and the specified prefix is "xmlns" and the
+     *      <CODE>namespaceURI</CODE> of this node is different from
+     *      "http://www.w3.org/2000/xmlns/", or if this node is an attribute and
+     *      the <CODE>qualifiedName</CODE> of this node is "xmlns".
+     */
+    void              setPrefix(const DOMString &prefix);
+
+    /**
+     *  Returns whether this node (if it is an element) has any attributes.
+     * @return <code>true</code> if this node has any attributes,
+     *   <code>false</code> otherwise.
+     */
+    bool              hasAttributes() const;
+
+    //@}
+
+protected:
+    NodeImpl   *fImpl;
+
+    DOM_Node(NodeImpl *);
+
+    friend class DOM_Document;
+    friend class DocumentImpl;
+    friend class TreeWalkerImpl;
+    friend class NodeIteratorImpl;
+    friend class DOM_NamedNodeMap;
+    friend class DOM_NodeList;
+    friend class DOMParser;
+    friend class DOM_Entity;
+    friend class RangeImpl;
+    friend class CharacterDataImpl;
+	friend class XUtil;
+
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
+
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/deprecated/DOM_XMLDecl.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/deprecated/DOM_XMLDecl.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/deprecated/DOM_XMLDecl.hpp	(revision 2674)
@@ -0,0 +1,130 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: DOM_XMLDecl.hpp 568078 2007-08-21 11:43:25Z amassari $
+ *
+*/
+
+#ifndef DOM_XMLDecl_HEADER_GUARD_
+#define DOM_XMLDecl_HEADER_GUARD_
+
+#include <xercesc/util/XercesDefs.hpp>
+#include "DOM_Node.hpp"
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+
+class XMLDeclImpl;
+/**
+* Class to refer to XML Declaration nodes in the DOM.
+*
+*/
+class DEPRECATED_DOM_EXPORT DOM_XMLDecl: public DOM_Node {
+
+public:
+    /** @name Constructors and assignment operators */
+    //@{
+    /**
+     * The default constructor for DOM_XMLDecl creates a null
+     * DOM_XMLDecl object that refers to a declaration node with
+     * version= 1.0, encoding=utf-8 and standalone=no
+     *
+     */
+    DOM_XMLDecl();
+
+    /**
+      * Copy constructor.  Creates a new <code>DOM_XMLDecl</code> that refers to the
+      * same underlying actual xmlDecl node as the original.
+      *
+      * @param other The object to be copied
+      */
+    DOM_XMLDecl(const DOM_XMLDecl &other);
+    /**
+      * Assignment operator
+      *
+      * @param other The object to be copied
+      */
+    DOM_XMLDecl & operator = (const DOM_XMLDecl &other);
+
+    /**
+      * Assignment operator.  This overloaded variant is provided for
+      *   the sole purpose of setting a DOM_Node reference variable to
+      *   zero.  Nulling out a reference variable in this way will decrement
+      *   the reference count on the underlying Node object that the variable
+      *   formerly referenced.  This effect is normally obtained when reference
+      *   variable goes out of scope, but zeroing them can be useful for
+      *   global instances, or for local instances that will remain in scope
+      *   for an extended time,  when the storage belonging to the underlying
+      *   node needs to be reclaimed.
+      *
+      * @param val  Only a value of 0, or null, is allowed.
+      */
+    DOM_XMLDecl & operator = (const DOM_NullPtr *val);
+
+
+
+	//@}
+  /** @name Destructor */
+  //@{
+	
+  /**
+    * Destructor.  The object being destroyed is the reference
+    * object, not the underlying Document itself.
+    *
+    * <p>The reference counting memory management will
+    *  delete the underlying document itself if this
+    * DOM_XMLDecl is the last remaining to refer to the Document,
+    * and if there are no remaining references to any of the nodes
+    * within the document tree.  If other live references do remain,
+    * the underlying document itself remains also.
+    *
+    */
+    ~DOM_XMLDecl();
+
+  //@}
+
+    //@{
+
+  /**
+    * To get the version string of the xmlDeclaration statement
+    */
+    DOMString getVersion() const;
+
+  /**
+    * To get the encoding string of the xmlDeclaration statement
+    */
+    DOMString getEncoding() const;
+
+  /**
+    * To get the standalone string of the xmlDeclaration statement
+    */
+    DOMString getStandalone() const;
+
+   //@}
+
+protected:
+    DOM_XMLDecl( XMLDeclImpl *impl);
+
+    friend class DOM_Document;
+
+};
+
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/deprecated/DOM_NamedNodeMap.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/deprecated/DOM_NamedNodeMap.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/deprecated/DOM_NamedNodeMap.hpp	(revision 2674)
@@ -0,0 +1,316 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: DOM_NamedNodeMap.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#ifndef DOM_NamedNodeMap_HEADER_GUARD_
+#define DOM_NamedNodeMap_HEADER_GUARD_
+
+#include <xercesc/util/XercesDefs.hpp>
+
+#include "DOM_Node.hpp"
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+
+class NamedNodeMapImpl;
+
+/**
+*  <code>NamedNodeMap</code>s  are used to
+* represent collections of nodes that can be accessed by name.
+*
+* Note that <code>NamedNodeMap</code> does not inherit from <code>NodeList</code>;
+* <code>NamedNodeMap</code>s are not maintained in any particular order.
+* Nodes contained in a <code>NamedNodeMap</code> may
+* also be accessed by an ordinal index, but this is simply to allow
+* convenient enumeration of the contents, and
+* does not imply that the DOM specifies an order to these Nodes.
+*/
+class DEPRECATED_DOM_EXPORT DOM_NamedNodeMap {
+private:
+    void     *fImpl;
+	short    flagElem;
+
+	static const unsigned short NNM_ELEMENT;
+	static const unsigned short NNM_OTHER;	
+
+public:
+    /** @name Constructors and assignment operator */
+    //@{
+    /**
+      * Default constructor for DOM_NamedNodeMap.  The resulting object does not
+      * refer to an actual DOM_NamedNodeMap node; it will compare == to 0, and is similar
+      * to a null object reference variable in Java. NamedNopes are instantiated
+      * by these methods:  DOM_Node::getAttributes, DOM_DocumentType::getEntities
+      * andDOM_DocumentType::getNotations
+      *
+      */
+    DOM_NamedNodeMap();
+
+    /**
+      * Copy constructor.  Creates a new <code>DOM_NamedNodeMap</code> reference object
+      * that refers to the same underlying NamedNodeMap as the original.
+      *
+      * @param other The object to be copied.
+      */
+    DOM_NamedNodeMap(const DOM_NamedNodeMap &other);
+
+    /**
+      * Assignment operator.
+      *
+      * @param other The object to be copied.
+      */
+    DOM_NamedNodeMap & operator = (const DOM_NamedNodeMap &other);
+
+    /**
+      * Assignment operator.
+      *
+      * @param other The object to be copied.
+      */
+    DOM_NamedNodeMap & operator = (const DOM_NullPtr *other);
+
+    //@}
+    /** @name Destructor. */
+    //@{
+    /**
+      * Destructor for DOM_NamedNodeMap.  The object being destroyed is the reference
+      * object, not the underlying NamedNodeMap itself.
+      *
+      * <p>Like most other DOM types in this implementation, memory management
+      * of named node maps is automatic.  Instances of DOM_NamedNodeMap function
+      * as references to an underlying heap based implementation object,
+      * and should never be explicitly new-ed or deleted in application code, but
+      * should appear only as local variables or function parameters.
+	  *
+	  */
+    ~DOM_NamedNodeMap();
+
+    //@}
+
+    /** @Comparisons. */
+    //@{
+    /**
+     *  Test whether this NamedNodeMap reference refers to the same underlying
+     *  named node map as the other reference object.  This does not
+     *  compare the contents of two different objects.
+     *
+     *  @param other The value to be compared
+     *  @return Returns true if the underlying named node map is same
+     */
+    bool operator == (const DOM_NamedNodeMap &other) const;
+
+    /**
+     *  Test whether this NamedNodeMap reference refers to a different underlying
+     *  named node map as the other reference object.  This does not
+     *  compare the contents of two different objects.
+     *
+     *  @param other The value to be compared
+     *  @return Returns true if the underlying named node map is different
+     */
+    bool operator != (const DOM_NamedNodeMap &other) const;
+
+
+    /**
+     *  Use this comparison operator to test whether a Named Node Map reference
+     *  is null.
+     *
+     *  @param p The value to be compared, which must be 0 or null.
+     *  @return Returns true if the named node map is null
+     */
+    bool operator == (const DOM_NullPtr *p) const;
+
+    /**
+     *  Use this comparison operator to test whether a Named Node Map reference
+     *  is not null.
+     *
+     *  @param p The value to be compared, which must not be 0 or null.
+     *  @return Returns true if the named node map is not null
+     */
+    bool operator != (const DOM_NullPtr *p) const;
+
+    //@}
+
+    /** @name Set functions. */
+    //@{
+
+    /**
+    * Adds a node using its <code>nodeName</code> attribute.
+    *
+    * <br>As the <code>nodeName</code> attribute is used to derive the name
+    * which the node must be stored under, multiple nodes of certain types
+    * (those that have a "special" string value) cannot be stored as the names
+    * would clash. This is seen as preferable to allowing nodes to be aliased.
+    * @param arg A node to store in a named node map. The node will later be
+    *   accessible using the value of the <code>nodeName</code> attribute of
+    *   the node. If a node with that name is already present in the map, it
+    *   is replaced by the new one.
+    * @return If the new <code>Node</code> replaces an existing node the
+    *   replaced <code>Node</code> is returned,
+    *   otherwise <code>null</code> is returned.
+    * @exception DOMException
+    *   WRONG_DOCUMENT_ERR: Raised if <code>arg</code> was created from a
+    *   different document than the one that created the
+    *   <code>NamedNodeMap</code>.
+    *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this
+    *   <code>NamedNodeMap</code> is readonly.
+    *   <br>INUSE_ATTRIBUTE_ERR: Raised if <code>arg</code> is an
+    *   <code>Attr</code> that is already an attribute of another
+    *   <code>Element</code> object. The DOM user must explicitly clone
+    *   <code>Attr</code> nodes to re-use them in other elements.
+    */
+    DOM_Node               setNamedItem(DOM_Node arg);
+
+    //@}
+    /** @name Get functions. */
+    //@{
+
+    /**
+    * Returns the <code>index</code>th item in the map.
+    *
+    * If <code>index</code>
+    * is greater than or equal to the number of nodes in the map, this returns
+    * <code>null</code>.
+    * @param index Index into the map.
+    * @return The node at the <code>index</code>th position in the
+    *   <code>NamedNodeMap</code>, or <code>null</code> if that is not a valid
+    *   index.
+    */
+    DOM_Node               item(unsigned int index) const;
+
+    /**
+    * Retrieves a node specified by name.
+    *
+    * @param name The <code>nodeName</code> of a node to retrieve.
+    * @return A <code>DOM_Node</code> (of any type) with the specified <code>nodeName</code>, or
+    *   <code>null</code> if it does not identify any node in
+    *   the map.
+    */
+    DOM_Node               getNamedItem(const DOMString &name) const;
+
+    /**
+    * The number of nodes in the map.
+    *
+    * The range of valid child node indices is
+    * 0 to <code>length-1</code> inclusive.
+    */
+    unsigned int           getLength() const;
+
+    //@}
+    /** @name Functions to change the node collection. */
+    //@{
+
+    /**
+    * Removes a node specified by name.
+    *
+    * If the removed node is an
+    * <code>Attr</code> with a default value it is immediately replaced.
+    * @param name The <code>nodeName</code> of a node to remove.
+    * @return The node removed from the map or <code>null</code> if no node
+    *   with such a name exists.
+    * @exception DOMException
+    *   NOT_FOUND_ERR: Raised if there is no node named <code>name</code> in
+    *   the map.
+    * <br>
+    *   NO_MODIFICATION_ALLOWED_ERR: Raised if this <code>NamedNodeMap</code>
+    *   is readonly.
+    */
+    DOM_Node               removeNamedItem(const DOMString &name);
+
+    //@}
+    /** @name Functions introduced in DOM Level 2. */
+    //@{
+
+    /**
+     * Retrieves a node specified by local name and namespace URI.
+     *
+     * @param namespaceURI The <em>namespace URI</em> of
+     *    the node to retrieve.
+     * @param localName The <em>local name</em> of the node to retrieve.
+     * @return A <code>DOM_Node</code> (of any type) with the specified
+     *    local name and namespace URI, or <code>null</code> if they do not
+     *    identify any node in the map.
+     */
+    DOM_Node               getNamedItemNS(const DOMString &namespaceURI,
+	const DOMString &localName);
+
+    /**
+     * Adds a node using its <CODE>namespaceURI</CODE> and <CODE>localName</CODE>.
+     *
+     * @param arg A node to store in a named node map. The node will later be
+     *       accessible using the value of the <CODE>namespaceURI</CODE> and
+     *       <CODE>localName</CODE> attribute of the node. If a node with those
+     *       namespace URI and local name is already present in the map, it is
+     *       replaced by the new one.
+     * @return If the new <code>DOM_Node</code> replaces an existing node the
+     *   replaced <code>DOM_Node</code> is returned,
+     *   otherwise <code>null</code> is returned.
+     * @exception DOMException
+     *   WRONG_DOCUMENT_ERR: Raised if <code>arg</code> was created from a
+     *   different document than the one that created the
+     *   <code>DOM_NamedNodeMap</code>.
+     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this
+     *   <code>vNamedNodeMap</code> is readonly.
+     *   <br>INUSE_ATTRIBUTE_ERR: Raised if <code>arg</code> is an
+     *   <code>DOM_Attr</code> that is already an attribute of another
+     *   <code>DOM_Element</code> object. The DOM user must explicitly clone
+     *   <code>DOM_Attr</code> nodes to re-use them in other elements.
+     */
+    DOM_Node               setNamedItemNS(DOM_Node arg);
+
+    /**
+     * Removes a node specified by local name and namespace URI.
+     *
+     * @param namespaceURI The <em>namespace URI</em> of
+     *    the node to remove.
+     * @param localName The <em>local name</em> of the
+     *    node to remove. When this <code>DOM_NamedNodeMap</code> contains the
+     *    attributes attached to an element, as returned by the attributes
+     *    attribute of the <code>DOM_Node</code> interface, if the removed
+     *    attribute is known to have a default value, an attribute
+     *    immediately appears containing the default value
+     *    as well as the corresponding namespace URI, local name, and prefix.
+     * @return The node removed from the map if a node with such a local name
+     *    and namespace URI exists.
+     * @exception DOMException
+     *   NOT_FOUND_ERR: Raised if there is no node named <code>name</code> in
+     *   the map.
+     * <br>
+     *   NO_MODIFICATION_ALLOWED_ERR: Raised if this <code>DOM_NamedNodeMap</code>
+     *   is readonly.
+     */
+    DOM_Node               removeNamedItemNS(const DOMString &namespaceURI,
+	const DOMString &localName);
+
+    //@}
+
+ protected:
+
+    DOM_NamedNodeMap(NamedNodeMapImpl *impl);
+	DOM_NamedNodeMap(NodeImpl *impl);
+
+    friend class DOM_DocumentType;
+    friend class DOM_Node;
+
+
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
+
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/deprecated/DOM_Element.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/deprecated/DOM_Element.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/deprecated/DOM_Element.hpp	(revision 2674)
@@ -0,0 +1,413 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: DOM_Element.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#ifndef DOM_Element_HEADER_GUARD_
+#define DOM_Element_HEADER_GUARD_
+
+#include <xercesc/util/XercesDefs.hpp>
+#include "DOM_Node.hpp"
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+
+class DOM_Attr;
+class DOM_NodeList;
+class ElementImpl;
+
+/**
+ * By far the vast majority of objects (apart from text) that authors
+ * encounter when traversing a document are <code>DOM_Element</code> nodes.
+ *
+ * Assume the following XML document:&lt;elementExample id="demo"&gt;
+ * &lt;subelement1/&gt;
+ * &lt;subelement2&gt;&lt;subsubelement/&gt;&lt;/subelement2&gt;
+ * &lt;/elementExample&gt;
+ * <p>When represented using DOM, the top node is an <code>DOM_Element</code> node
+ * for "elementExample", which contains two child <code>DOM_Element</code> nodes,
+ * one for "subelement1" and one for "subelement2". "subelement1" contains no
+ * child nodes.
+ * <p>Elements may have attributes associated with them; since the
+ * <code>DOM_Element</code> interface inherits from <code>DOM_Node</code>, the generic
+ *  <code>DOM_Node</code> interface method <code>getAttributes</code> may be used
+ * to retrieve the set of all attributes for an element.  There are methods on
+ *  the <code>DOM_Element</code> interface to retrieve either an <code>DOM_Attr</code>
+ *  object by name or an attribute value by name. In XML, where an attribute
+ * value may contain entity references, an <code>DOM_Attr</code> object should be
+ * retrieved to examine the possibly fairly complex sub-tree representing the
+ * attribute value. On the other hand, in HTML, where all attributes have
+ * simple string values, methods to directly access an attribute value can
+ * safely be used as a convenience.
+ */
+
+class DEPRECATED_DOM_EXPORT DOM_Element: public DOM_Node {
+private:
+
+public:
+    /** @name Constructors and assignment operator */
+    //@{
+    /**
+    * Default constructor for DOM_Element.  The resulting object does not
+    * refer to an actual Element node; it will compare == to 0, and is similar
+    * to a null object reference variable in Java.  It may subsequently be
+    * assigned to refer to an actual Element node.
+    * <p>
+    * New comment nodes are created by DOM_Document::createElement().
+      *
+      */
+    DOM_Element();
+
+    /**
+      * Copy constructor.  Creates a new <code>DOM_Element</code> that refers to the
+      * same underlying actual element as the original.
+      *
+      * @param other The object to be copied
+      */
+    DOM_Element(const DOM_Element &other);
+
+    /**
+      * Assignment operator.
+      *
+      * @param other The object to be copied.
+      */
+    DOM_Element & operator = (const DOM_Element &other);
+
+    /**
+      * Assignment operator.  This overloaded variant is provided for
+      *   the sole purpose of setting a DOM_Node reference variable to
+      *   zero.  Nulling out a reference variable in this way will decrement
+      *   the reference count on the underlying Node object that the variable
+      *   formerly referenced.  This effect is normally obtained when reference
+      *   variable goes out of scope, but zeroing them can be useful for
+      *   global instances, or for local instances that will remain in scope
+      *   for an extended time,  when the storage belonging to the underlying
+      *   node needs to be reclaimed.
+      *
+      * @param val   Only a value of 0, or null, is allowed.
+      */
+    DOM_Element & operator = (const DOM_NullPtr *val);
+
+    //@}
+    /** @name Destructor. */
+    //@{
+	 /**
+      * Destructor.  The object being destroyed is the reference
+      * object, not the underlying Element itself.
+	  *
+	  */
+    ~DOM_Element();
+    //@}
+    /** @name Getter functions. */
+    //@{
+
+  /**
+   * The name of the element.
+   *
+   * For example, in: &lt;elementExample
+   * id="demo"&gt;  ... &lt;/elementExample&gt; , <code>tagName</code> has
+   * the value <code>"elementExample"</code>. Note that this is
+   * case-preserving in XML, as are all of the operations of the DOM.
+   */
+  DOMString         getTagName() const;
+
+  /**
+   * Retrieves an attribute value by name.
+   *
+   * @param name The name of the attribute to retrieve.
+   * @return The <code>DOM_Attr</code> value as a string, or the empty  string if
+   *   that attribute does not have a specified or default value.
+   */
+  DOMString         getAttribute(const DOMString &name) const;
+
+  /**
+   * Retrieves an <code>DOM_Attr</code> node by name.
+   *
+   * @param name The name (<CODE>nodeName</CODE>) of the attribute to retrieve.
+   * @return The <code>DOM_Attr</code> node with the specified name (<CODE>nodeName</CODE>) or
+   *   <code>null</code> if there is no such attribute.
+   */
+  DOM_Attr        getAttributeNode(const DOMString &name) const;
+
+  /**
+   * Returns a <code>NodeList</code> of all descendant elements with a given
+   * tag name, in the order in which they would be encountered in a preorder
+   * traversal of the <code>DOM_Element</code> tree.
+   *
+   * @param name The name of the tag to match on. The special value "*"
+   *   matches all tags.
+   * @return A list of matching <code>DOM_Element</code> nodes.
+   */
+  DOM_NodeList    getElementsByTagName(const DOMString &name) const;
+
+  //@}
+  /** @name Set functions. */
+  //@{
+
+  /**
+   * Adds a new attribute.
+   *
+   * If an attribute with that name is already present
+   * in the element, its value is changed to be that of the value parameter.
+   * This value is a simple string, it is not parsed as it is being set. So
+   * any markup (such as syntax to be recognized as an entity reference) is
+   * treated as literal text, and needs to be appropriately escaped by the
+   * implementation when it is written out. In order to assign an attribute
+   * value that contains entity references, the user must create an
+   * <code>DOM_Attr</code> node plus any <code>Text</code> and
+   * <code>EntityReference</code> nodes, build the appropriate subtree, and
+   * use <code>setAttributeNode</code> to assign it as the value of an
+   * attribute.
+   * @param name The name of the attribute to create or alter.
+   * @param value Value to set in string form.
+   * @exception DOMException
+   *   INVALID_CHARACTER_ERR: Raised if the specified name contains an
+   *   illegal character.
+   *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
+   */
+   void             setAttribute(const DOMString &name,
+                                 const DOMString &value);
+   /**
+    * Adds a new attribute.
+    *
+    * If an attribute with that name (<CODE>nodeName</CODE>) is already present
+    * in the element, it is replaced by the new one.
+    * @param newAttr The <code>DOM_Attr</code> node to add to the attribute list.
+    * @return If the <code>newAttr</code> attribute replaces an existing
+    *   attribute, the replaced
+    *   <code>DOM_Attr</code> node is returned, otherwise <code>null</code> is
+    *   returned.
+    * @exception DOMException
+    *   WRONG_DOCUMENT_ERR: Raised if <code>newAttr</code> was created from a
+    *   different document than the one that created the element.
+    *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
+    *   <br>INUSE_ATTRIBUTE_ERR: Raised if <code>newAttr</code> is already an
+    *   attribute of another <code>DOM_Element</code> object. The DOM user must
+    *   explicitly clone <code>DOM_Attr</code> nodes to re-use them in other
+    *   elements.
+    */
+   DOM_Attr        setAttributeNode(DOM_Attr newAttr);
+
+   //@}
+   /** @name Functions which modify the Element. */
+   //@{
+  /**
+   * Removes the specified attribute node.
+   * If the removed <CODE>DOM_Attr</CODE>
+   *   has a default value it is immediately replaced. The replacing attribute
+   *   has the same namespace URI and local name, as well as the original prefix,
+   *   when applicable.
+   *
+   * @param oldAttr The <code>DOM_Attr</code> node to remove from the attribute
+   *   list.
+   * @return The <code>DOM_Attr</code> node that was removed.
+   * @exception DOMException
+   *   NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
+   *   <br>NOT_FOUND_ERR: Raised if <code>oldAttr</code> is not an attribute
+   *   of the element.
+   */
+  DOM_Attr        removeAttributeNode(DOM_Attr oldAttr);
+
+  /**
+   * Removes an attribute by name.
+   *
+   * If the removed attribute
+   *   is known to have a default value, an attribute immediately appears
+   *   containing the default value as well as the corresponding namespace URI,
+   *   local name, and prefix when applicable.<BR>To remove an attribute by local
+   *   name and namespace URI, use the <CODE>removeAttributeNS</CODE> method.
+   * @param name The name of the attribute to remove.
+   * @exception DOMException
+   *   NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
+   */
+  void              removeAttribute(const DOMString &name);
+
+  //@}
+  /** @name Functions introduced in DOM Level 2. */
+  //@{
+
+  /**
+   * Retrieves an attribute value by local name and namespace URI.
+   *
+   * @param namespaceURI The <em>namespace URI</em> of
+   *    the attribute to retrieve.
+   * @param localName The <em>local name</em> of the
+   *    attribute to retrieve.
+   * @return The <code>DOM_Attr</code> value as a string, or an <CODE>null</CODE> if
+   *    that attribute does not have a specified or default value.
+   */
+  DOMString         getAttributeNS(const DOMString &namespaceURI,
+	const DOMString &localName) const;
+
+  /**
+   * Adds a new attribute. If an attribute with the same
+   * local name and namespace URI is already present on the element, its prefix
+   * is changed to be the prefix part of the <CODE>qualifiedName</CODE>, and
+   * its value is changed to be the <CODE>value</CODE> parameter. This value is
+   * a simple string, it is not parsed as it is being set. So any markup (such
+   * as syntax to be recognized as an entity reference) is treated as literal
+   * text, and needs to be appropriately escaped by the implementation when it
+   * is written out. In order to assign an attribute value that contains entity
+   * references, the user must create an <CODE>DOM_Attr</CODE>
+   * node plus any <CODE>DOM_Text</CODE> and <CODE>DOM_EntityReference</CODE>
+   * nodes, build the appropriate subtree, and use
+   * <CODE>setAttributeNodeNS</CODE> or <CODE>setAttributeNode</CODE> to assign
+   * it as the value of an attribute.
+   *
+   * @param namespaceURI The <em>namespace URI</em> of
+   *    the attribute to create or alter.
+   * @param qualifiedName The <em>qualified name</em> of the
+   *    attribute to create or alter.
+   * @param value The value to set in string form.
+   * @exception DOMException
+   *   INVALID_CHARACTER_ERR: Raised if the specified qualified name contains an
+   *   illegal character.
+   *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
+   * <br>
+   *   NAMESPACE_ERR: Raised if the <CODE>qualifiedName</CODE> is
+   *        malformed, if the <CODE>qualifiedName</CODE> has a prefix and the
+   *        <CODE>namespaceURI</CODE> is <CODE>null</CODE> or an empty string,
+   *        if the <CODE>qualifiedName</CODE> has a prefix that is "xml" and the
+   *        <CODE>namespaceURI</CODE> is different from
+   *        "http://www.w3.org/XML/1998/namespace", if the
+   *        <CODE>qualifiedName</CODE> has a prefix that is "xmlns" and the
+   *        <CODE>namespaceURI</CODE> is different from
+   *        "http://www.w3.org/2000/xmlns/", or if the
+   *        <CODE>qualifiedName</CODE> is "xmlns" and the
+   *        <CODE>namespaceURI</CODE> is different from
+   *        "http://www.w3.org/2000/xmlns/".
+   */
+   void             setAttributeNS(const DOMString &namespaceURI,
+	const DOMString &qualifiedName, const DOMString &value);
+
+  /**
+   * Removes an attribute by local name and namespace URI. If the
+   * removed attribute has a default value it is immediately replaced.
+   * The replacing attribute has the same namespace URI and local name, as well as
+   * the original prefix.
+   *
+   * @param namespaceURI The <em>namespace URI</em> of
+   *    the attribute to remove.
+   * @param localName The <em>local name</em> of the
+   *    attribute to remove.
+   * @exception DOMException
+   *   NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
+   */
+  void              removeAttributeNS(const DOMString &namespaceURI,
+	const DOMString &localName);
+
+  /**
+   * Retrieves an <code>DOM_Attr</code> node by local name and namespace URI.
+   *
+   * @param namespaceURI The <em>namespace URI</em> of
+   *    the attribute to retrieve.
+   * @param localName The <em>local name</em> of the
+   *    attribute to retrieve.
+   * @return The <code>DOM_Attr</code> node with the specified attribute local
+   *    name and namespace URI or <code>null</code> if there is no such attribute.
+   */
+  DOM_Attr        getAttributeNodeNS(const DOMString &namespaceURI,
+	const DOMString &localName) const;
+
+   /**
+    * Adds a new attribute.
+    *
+    * If an attribute with that local name and namespace URI is already present
+    * in the element, it is replaced by the new one.
+    *
+    * @param newAttr The <code>DOM_Attr</code> node to add to the attribute list.
+    * @return If the <code>newAttr</code> attribute replaces an existing
+    *    attribute with the same <em>local name</em> and <em>namespace URI</em>,
+    *    the replaced <code>DOM_Attr</code> node is
+    *    returned, otherwise <code>null</code> is returned.
+    * @exception DOMException
+    *   WRONG_DOCUMENT_ERR: Raised if <code>newAttr</code> was created from a
+    *   different document than the one that created the element.
+    *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
+    *   <br>INUSE_ATTRIBUTE_ERR: Raised if <code>newAttr</code> is already an
+    *   attribute of another <code>DOM_Element</code> object. The DOM user must
+    *   explicitly clone <code>DOM_Attr</code> nodes to re-use them in other
+    *   elements.
+    */
+   DOM_Attr        setAttributeNodeNS(DOM_Attr newAttr);
+
+  /**
+   * Returns a <code>DOM_NodeList</code> of all the <code>DOM_Element</code>s
+   * with a given local name and namespace URI in the order in which they
+   * would be encountered in a preorder traversal of the
+   * <code>DOM_Document</code> tree, starting from this node.
+   *
+   * @param namespaceURI The <em>namespace URI</em> of
+   *    the elements to match on. The special value "*" matches all
+   *    namespaces.
+   * @param localName The <em>local name</em> of the
+   *    elements to match on. The special value "*" matches all local names.
+   * @return A new <code>DOM_NodeList</code> object containing all the matched
+   *    <code>DOM_Element</code>s.
+   */
+  DOM_NodeList    getElementsByTagNameNS(const DOMString &namespaceURI,
+	const DOMString &localName) const;
+
+    /**
+     *  Returns whether this node (if it is an element) has any attributes.
+     * @return <code>true</code> if this node has any attributes,
+     *   <code>false</code> otherwise.
+     */
+    bool         hasAttributes() const;
+
+    /**
+     * Returns <code>true</code> when an attribute with a given name is
+     * specified on this element or has a default value, <code>false</code>
+     * otherwise.
+     * @param name The name of the attribute to look for.
+     * @return <code>true</code> if an attribute with the given name is
+     *   specified on this element or has a default value, <code>false</code>
+     *    otherwise.
+     */
+    bool         hasAttribute(const DOMString &name) const;
+
+    /**
+     * Returns <code>true</code> when an attribute with a given local name and
+     * namespace URI is specified on this element or has a default value,
+     * <code>false</code> otherwise. HTML-only DOM implementations do not
+     * need to implement this method.
+     * @param namespaceURI The namespace URI of the attribute to look for.
+     * @param localName The local name of the attribute to look for.
+     * @return <code>true</code> if an attribute with the given local name
+     *   and namespace URI is specified or has a default value on this
+     *   element, <code>false</code> otherwise.
+     * @since DOM Level 2
+     */
+    bool         hasAttributeNS(const DOMString &namespaceURI,
+                                const DOMString &localName) const;
+
+  //@}
+
+  protected:
+     DOM_Element(ElementImpl *impl);
+
+     friend class DOM_Document;
+     friend class DOM_Attr;
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
+
+
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/deprecated/ChildNode.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/deprecated/ChildNode.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/deprecated/ChildNode.hpp	(revision 2674)
@@ -0,0 +1,62 @@
+#ifndef ChildNode_HEADER_GUARD_
+#define ChildNode_HEADER_GUARD_
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: ChildNode.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+//
+//  This file is part of the internal implementation of the C++ XML DOM.
+//  It should NOT be included or used directly by application programs.
+//
+//  Applications should include the file <xercesc/dom/deprecated/DOM.hpp> for the entire
+//  DOM API, or DOM_*.hpp for individual DOM classes, where the class
+//  name is substituded for the *.
+//
+
+/**
+ * ChildNode adds to NodeImpl the capability of being a child, this is having
+ * siblings.
+ **/
+
+#include "NodeImpl.hpp"
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+
+class DEPRECATED_DOM_EXPORT ChildNode: public NodeImpl {
+public:
+    ChildNode                *previousSibling;
+    ChildNode                *nextSibling;
+
+public:
+    ChildNode(DocumentImpl *ownerDocument);
+    ChildNode(const ChildNode &other);
+    virtual ~ChildNode();
+
+    virtual NodeImpl * getNextSibling();
+    virtual NodeImpl * getParentNode();
+    virtual NodeImpl*  getPreviousSibling();
+};
+
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/deprecated/DOM_NodeFilter.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/deprecated/DOM_NodeFilter.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/deprecated/DOM_NodeFilter.hpp	(revision 2674)
@@ -0,0 +1,143 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: DOM_NodeFilter.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+// DOM_NodeFilter.h: interface for the DOM_NodeFilter class.
+//
+//////////////////////////////////////////////////////////////////////
+
+#ifndef DOM_NodeFilter_HEADER_GUARD_
+#define DOM_NodeFilter_HEADER_GUARD_
+
+#include "DOM_Node.hpp"
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+
+class NodeFilterImpl;
+
+
+/**
+ * Filters are objects that know how to "filter out" nodes. If a
+ * <code>DOM_NodeIterator</code> or <code>DOM_TreeWalker</code> is given a
+ * filter, it applies the filter before it returns the next node.
+ *
+ * If the filter says to accept the node, the iterator returns it; otherwise, the
+ * iterator looks for the next node and pretends that the node that was rejected
+ * was not there.
+ *
+ *  The DOM does not provide any filters. Filter is just an interface that users can
+ *  implement to provide their own filters.
+ *
+ *  Filters do not need to know how to iterate, nor do they need to know anything
+ *  about the data structure that is being iterated. This makes it very easy to write
+ *  filters, since the only thing they have to know how to do is evaluate a single node.
+ *  One filter may be used with a number of different kinds of iterators, encouraging
+ *  code reuse.
+ *
+ */
+class DEPRECATED_DOM_EXPORT DOM_NodeFilter
+{
+    public:
+	/** @name Enumerators for Node Filter */
+        //@{
+	/*
+	  *		<table><tr><td>FILTER_ACCEPT</td>
+      *            <td>Accept the node. Navigation methods defined for
+      *                NodeIterator or TreeWalker will return this node.</td>
+	  *			</tr>
+	  *			<tr><td>
+      *               FILTER_REJECT</td>
+      *               <td>Reject the node. Navigation methods defined for
+      *               NodeIterator or TreeWalker will not return this
+      *               node. For TreeWalker, the children of this node will
+      *               also be rejected. Iterators treat this as a synonym
+      *               for FILTER_SKIP.</td>
+	  *			</tr>
+	  *			<tr><td>FILTER_SKIP</td>
+      *              <td>Reject the node. Navigation methods defined for
+      *                  NodeIterator or TreeWalker will not return this
+      *                  node. For both NodeIterator and Treewalker, the
+      *                  children of this node will still be considered.</td>
+ 	  *			</tr>
+	  *		</table>
+      *
+	  */
+        enum FilterAction {FILTER_ACCEPT = 1,
+                           FILTER_REJECT = 2,
+                           FILTER_SKIP   = 3};
+
+        enum ShowType {
+            SHOW_ALL                       = 0x0000FFFF,
+            SHOW_ELEMENT                   = 0x00000001,
+            SHOW_ATTRIBUTE                 = 0x00000002,
+            SHOW_TEXT                      = 0x00000004,
+            SHOW_CDATA_SECTION             = 0x00000008,
+            SHOW_ENTITY_REFERENCE          = 0x00000010,
+            SHOW_ENTITY                    = 0x00000020,
+            SHOW_PROCESSING_INSTRUCTION    = 0x00000040,
+            SHOW_COMMENT                   = 0x00000080,
+            SHOW_DOCUMENT                  = 0x00000100,
+            SHOW_DOCUMENT_TYPE             = 0x00000200,
+            SHOW_DOCUMENT_FRAGMENT         = 0x00000400,
+            SHOW_NOTATION                  = 0x00000800
+        };
+	//@}
+
+        /** @name Constructors */
+        //@{
+        /**
+          * Default constructor for DOM_NodeFilter.
+          */
+        DOM_NodeFilter();
+        //@}
+
+        /** @name Destructor. */
+        //@{
+	/**
+	  * Destructor for DOM_NodeFilter.
+	  */
+        virtual ~DOM_NodeFilter();
+        //@}
+
+        /** @name Test function. */
+        //@{
+	/**
+	  * Test whether a specified node is visible in the logical view of a DOM_TreeWalker
+	  * or DOM_NodeIterator. This function will be called by the implementation of
+	  * DOM_TreeWalker and DOM_NodeIterator; it is not intended to be called directly from user
+	  * code.
+          *
+          * @param node The node to check to see if it passes the filter or not.
+          * @return A constant to determine whether the node is accepted, rejected, or skipped.
+	  */
+        virtual short acceptNode (const DOM_Node &node) const =0;
+        //@}
+
+    private:
+        DOM_NodeFilter(const DOM_NodeFilter &other);
+        DOM_NodeFilter & operator = (const DOM_NodeFilter &other);
+        bool operator == (const DOM_NodeFilter &other) const;
+        bool operator != (const DOM_NodeFilter &other) const;
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/deprecated/DOM_Range.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/deprecated/DOM_Range.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/deprecated/DOM_Range.hpp	(revision 2674)
@@ -0,0 +1,110 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: DOM_Range.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#ifndef DOM_Range_HEADER_GUARD_
+#define DOM_Range_HEADER_GUARD_
+
+#include <xercesc/util/XercesDefs.hpp>
+#include "DOM_Node.hpp"
+#include "DOMString.hpp"
+#include "DOM_DocumentFragment.hpp"
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+
+class RangeImpl;
+
+//class RangeImpl;
+
+class DEPRECATED_DOM_EXPORT DOM_Range {
+public:
+
+    enum CompareHow {
+        START_TO_START  = 0,
+        START_TO_END    = 1,
+        END_TO_END      = 2,
+        END_TO_START    = 3
+    };
+
+    //c'tor & d'tor
+    DOM_Range();
+    DOM_Range(const DOM_Range& other);
+    ~DOM_Range();
+
+
+    DOM_Range & operator = (const DOM_Range &other);
+    DOM_Range & operator = (const DOM_NullPtr *other);
+    bool operator != (const DOM_Range & other) const;
+    bool operator == (const DOM_Range & other) const;
+    bool operator != (const DOM_NullPtr * other) const;
+    bool operator == (const DOM_NullPtr * other) const;
+
+    //getter functions
+    DOM_Node getStartContainer() const;
+    unsigned int getStartOffset() const;
+    DOM_Node getEndContainer() const;
+    unsigned int getEndOffset() const;
+    bool getCollapsed() const;
+    const DOM_Node getCommonAncestorContainer() const;
+
+    //setter functions
+    void setStart(const DOM_Node &parent, unsigned int offset);
+    void setEnd(const DOM_Node &parent, unsigned int offset);
+
+    void setStartBefore(const DOM_Node &refNode);
+    void setStartAfter(const DOM_Node &refNode);
+    void setEndBefore(const DOM_Node &refNode);
+    void setEndAfter(const DOM_Node &refNode);
+
+    //misc functions
+    void collapse(bool toStart);
+    void selectNode(const DOM_Node &node);
+    void selectNodeContents(const DOM_Node &node);
+
+    //Functions related to comparing range Boundrary-Points
+    short compareBoundaryPoints(CompareHow how, const DOM_Range& range) const;
+    void deleteContents();
+    DOM_DocumentFragment extractContents();
+    DOM_DocumentFragment cloneContents() const;
+    void insertNode(DOM_Node& node);
+    //Misc functions
+    void surroundContents(DOM_Node &node);
+    DOM_Range cloneRange() const;
+    DOMString toString() const;
+    void detach();
+
+
+
+
+protected:
+
+    DOM_Range(RangeImpl *);
+    RangeImpl   *fImpl;
+
+    friend class DOM_Document;
+};
+
+
+
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/deprecated/NameNodeFilter.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/deprecated/NameNodeFilter.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/deprecated/NameNodeFilter.hpp	(revision 2674)
@@ -0,0 +1,73 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: NameNodeFilter.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+//
+//  This file is part of the internal implementation of the C++ XML DOM.
+//  It should NOT be included or used directly by application programs.
+//
+//  Applications should include the file <xercesc/dom/deprecated/DOM.hpp> for the entire
+//  DOM API, or DOM_*.hpp for individual DOM classes, where the class
+//  name is substituded for the *.
+//
+
+#ifndef DOM_NameNodeFilter_HEADER_GUARD_
+#define DOM_NameNodeFilter_HEADER_GUARD_
+
+
+#include "DOM_NodeFilter.hpp"
+#include "NodeFilterImpl.hpp"
+#include "DOMString.hpp"
+#include "DOM_Node.hpp"
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+
+class DEPRECATED_DOM_EXPORT NameNodeFilter : public NodeFilterImpl
+{
+	public:
+		NameNodeFilter();
+		virtual ~NameNodeFilter();
+
+    // The name to compare with the node name. If null, all node names
+    //  are successfully matched.
+    void setName(DOMString name);
+
+    // Return the name to compare with node name.
+    DOMString getName();
+
+    // If match is true, the node name is accepted when it matches.
+    //  If match is false, the node name is accepted when does not match.
+    void setMatch(bool match) ;
+
+    // Return match value.
+    bool getMatch();
+
+    virtual DOM_NodeFilter::FilterAction acceptNode(DOM_Node n);
+
+	private:
+    DOMString fName;
+    bool fMatch;
+
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/deprecated/DOM_NodeIterator.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/deprecated/DOM_NodeIterator.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/deprecated/DOM_NodeIterator.hpp	(revision 2674)
@@ -0,0 +1,189 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: DOM_NodeIterator.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#ifndef DOM_NodeIterator_HEADER_GUARD_
+#define DOM_NodeIterator_HEADER_GUARD_
+
+#include "DOM_NodeFilter.hpp"
+#include "DOM_Node.hpp"
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+
+class NodeIteratorImpl;
+
+/**
+ * NodeIterators are used to step through a set of nodes
+ * e.g. the set of nodes in a NodeList, the document subtree governed by
+ * a particular node, the results of a query, or any other set of nodes.
+ * The set of nodes to be iterated is determined by the implementation
+ * of the NodeIterator. DOM Level 2 specifies a single NodeIterator
+ * implementation for document-order traversal of a document
+ * subtree. Instances of these iterators are created by calling
+ * <code>DocumentTraversal.createNodeIterator()</code>.
+ *
+ */
+class DEPRECATED_DOM_EXPORT DOM_NodeIterator
+{
+    public:
+        /** @name Constructors and assignment operator */
+        //@{
+        /**
+          * Default constructor.
+          */
+        DOM_NodeIterator ();
+
+        /**
+          * Copy constructor.
+          *
+          * @param other The object to be copied.
+          */
+        DOM_NodeIterator(const DOM_NodeIterator &other);
+
+        /**
+          * Assignment operator.
+          *
+          * @param other The object to be copied.
+          */
+        DOM_NodeIterator & operator = (const DOM_NodeIterator &other);
+
+        /**
+          * Assignment operator.  This overloaded variant is provided for
+          *   the sole purpose of setting a DOM_NodeIterator to null.
+          *
+          * @param val   Only a value of 0, or null, is allowed.
+          */
+        DOM_NodeIterator & operator = (const DOM_NullPtr *val);
+        //@}
+
+        /** @name Destructor. */
+        //@{
+	/**
+	  * Destructor for DOM_NodeIterator.
+	  */
+        ~DOM_NodeIterator();
+        //@}
+
+        /** @name Equality and Inequality operators. */
+        //@{
+        /**
+         * The equality operator.
+         *
+         * @param other The object reference with which <code>this</code> object is compared
+         * @returns True if both <code>DOM_NodeIterator</code>s refer to the same
+         *  actual node, or are both null; return false otherwise.
+         */
+        bool operator == (const DOM_NodeIterator & other)const;
+
+        /**
+          *  Compare with a pointer.  Intended only to allow a convenient
+          *    comparison with null.
+          */
+        bool operator == (const DOM_NullPtr *other) const;
+
+        /**
+         * The inequality operator.  See operator ==.
+         */
+        bool operator != (const DOM_NodeIterator & other) const;
+
+         /**
+          *  Compare with a pointer.  Intended only to allow a convenient
+          *    comparison with null.
+          *
+          */
+        bool operator != (const DOM_NullPtr * other) const;
+        //@}
+
+        /** @name Get functions. */
+        //@{
+        /**
+         * The root node of the <code>NodeIterator</code>, as specified when it
+         * was created.
+         */
+        DOM_Node            getRoot();
+
+        /**
+          * Return which node types are presented via the iterator.
+          * The available set of constants is defined in the DOM_NodeFilter interface.
+          *
+          */
+        unsigned long       getWhatToShow();
+
+        /**
+          * Return The filter used to screen nodes.
+          *
+          */
+        DOM_NodeFilter*     getFilter();
+
+        /**
+          * Return the expandEntityReferences flag.
+          * The value of this flag determines whether the children of entity reference
+          * nodes are visible to the DOM_NodeFilter. If false, they will be skipped over.
+          *
+          */
+        bool getExpandEntityReferences();
+
+        /**
+          * Returns the next node in the set and advances the position of the iterator
+          * in the set. After a DOM_NodeIterator is created, the first call to nextNode()
+          * returns the first node in the set.
+          *
+          * @exception DOMException
+          *   INVALID_STATE_ERR: Raised if this method is called after the
+          *   <code>detach</code> method was invoked.
+          */
+        DOM_Node            nextNode();
+
+        /**
+          * Returns the previous node in the set and moves the position of the iterator
+          * backwards in the set.
+          *
+          * @exception DOMException
+          *   INVALID_STATE_ERR: Raised if this method is called after the
+          *   <code>detach</code> method was invoked.
+          */
+        DOM_Node            previousNode();
+        //@}
+
+        /** @name Detaching functions. */
+        //@{
+        /**
+          * Detaches the iterator from the set which it iterated over, releasing any
+          * computational resources and placing the iterator in the INVALID state. After
+          * <code>detach</code> has been invoked, calls to <code>nextNode</code> or
+          * <code>previousNode</code> will raise the exception INVALID_STATE_ERR.
+          *
+          */
+	void				detach();
+        //@}
+
+    protected:
+        DOM_NodeIterator (NodeIteratorImpl* impl);
+
+        friend class DOM_Document;
+
+    private:
+        NodeIteratorImpl*                 fImpl;
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/deprecated/ParentNode.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/deprecated/ParentNode.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/deprecated/ParentNode.hpp	(revision 2674)
@@ -0,0 +1,114 @@
+#ifndef ParentNode_HEADER_GUARD_
+#define ParentNode_HEADER_GUARD_
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+//
+//  This file is part of the internal implementation of the C++ XML DOM.
+//  It should NOT be included or used directly by application programs.
+//
+//  Applications should include the file <xercesc/dom/deprecated/DOM.hpp> for the entire
+//  DOM API, or DOM_*.hpp for individual DOM classes, where the class
+//  name is substituded for the *.
+//
+
+/*
+ * $Id: ParentNode.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+/**
+ * ParentNode inherits from ChildImpl and adds the capability of having child
+ * nodes. Not every node in the DOM can have children, so only nodes that can
+ * should inherit from this class and pay the price for it.
+ * <P>
+ * ParentNode, just like NodeImpl, also implements NodeList, so it can
+ * return itself in response to the getChildNodes() query. This eliminiates
+ * the need for a separate ChildNodeList object. Note that this is an
+ * IMPLEMENTATION DETAIL; applications should _never_ assume that
+ * this identity exists.
+ * <P>
+ * While we have a direct reference to the first child, the last child is
+ * stored as the previous sibling of the first child. First child nodes are
+ * marked as being so, and getNextSibling hides this fact.
+ * <P>Note: Not all parent nodes actually need to also be a child. At some
+ * point we used to have ParentNode inheriting from NodeImpl and another class
+ * called ChildAndParentNode that inherited from ChildNode. But due to the lack
+ * of multiple inheritance a lot of code had to be duplicated which led to a
+ * maintenance nightmare. At the same time only a few nodes (Document,
+ * DocumentFragment, Entity, and Attribute) cannot be a child so the gain is
+ * memory wasn't really worth it. The only type for which this would be the
+ * case is Attribute, but we deal with there in another special way, so this is
+ * not applicable.
+ *
+ * <p><b>WARNING</b>: Some of the code here is partially duplicated in
+ * AttrImpl, be careful to keep these two classes in sync!
+ *
+ **/
+
+#include <xercesc/util/XercesDefs.hpp>
+#include "ChildNode.hpp"
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class DEPRECATED_DOM_EXPORT ParentNode: public ChildNode {
+public:
+    DocumentImpl            *ownerDocument; // Document this node belongs to
+
+    ChildNode                *firstChild;
+
+public:
+    ParentNode(DocumentImpl *ownerDocument);
+    ParentNode(const ParentNode &other);
+
+    virtual DocumentImpl * getOwnerDocument();
+    virtual void setOwnerDocument(DocumentImpl *doc);
+
+    virtual NodeListImpl *getChildNodes();
+    virtual NodeImpl * getFirstChild();
+    virtual NodeImpl * getLastChild();
+    virtual unsigned int getLength();
+    virtual bool        hasChildNodes();
+    virtual NodeImpl    *insertBefore(NodeImpl *newChild, NodeImpl *refChild);
+    virtual NodeImpl    *item(unsigned int index);
+    virtual NodeImpl    * removeChild(NodeImpl *oldChild);
+    virtual NodeImpl    *replaceChild(NodeImpl *newChild, NodeImpl *oldChild);
+    virtual void        setReadOnly(bool isReadOnly, bool deep);
+
+    //Introduced in DOM Level 2
+    virtual void	normalize();
+
+    // NON-DOM
+    // unlike getOwnerDocument this never returns null, even for Document nodes
+    virtual DocumentImpl * getDocument();
+protected:
+    void cloneChildren(const NodeImpl &other);
+    ChildNode * lastChild();
+    void lastChild(ChildNode *);
+
+    /** Cached node list length. */
+    int fCachedLength;
+
+    /** Last requested child. */
+    ChildNode * fCachedChild;
+
+    /** Last requested child index. */
+    int fCachedChildIndex;
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/deprecated/DOM_CDATASection.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/deprecated/DOM_CDATASection.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/deprecated/DOM_CDATASection.hpp	(revision 2674)
@@ -0,0 +1,113 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: DOM_CDATASection.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#ifndef DOM_CDataSection_HEADER_GUARD_
+#define DOM_CDataSection_HEADER_GUARD_
+
+#include <xercesc/util/XercesDefs.hpp>
+#include "DOM_Text.hpp"
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+
+class CDATASectionImpl;
+
+/**
+ * <code>DOM_CDataSection</code> objects refer to the data from an
+ * XML CDATA section.  These are used to escape blocks of text containing  characters
+ * that would otherwise be regarded as markup.
+ *
+ * <p>Note that the string data associated with the CDATA section may
+ * contain characters that need to be escaped when appearing in an
+ * XML document outside of a CDATA section.
+ * <p> The <code>DOM_CDATASection</code> class inherits from the
+ * <code>DOM_CharacterData</code> class through the <code>Text</code>
+ * interface. Adjacent CDATASection nodes are not merged by use
+ * of the Element.normalize() method.
+ */
+class DEPRECATED_DOM_EXPORT DOM_CDATASection: public DOM_Text {
+public:
+  /** @name Constructors and assignment operators */
+  //@{
+  /**
+    * Default constructor for DOM_CDATASection.  The resulting object does not
+    * refer to any actual CData section; it will compare == to 0, and is similar
+    * to a null object reference variable in Java.
+    *
+    */
+        DOM_CDATASection();
+  /**
+    * Copy constructor.  Creates a new <code>DOM_CDataSection</code> that refers to the
+    *   same underlying data as the original.  See also <code>DOM_Node::clone()</code>,
+    * which will copy the underlying data, rather than just creating a new
+    * reference to the original object.
+    *
+    * @param other The source <code>DOM_CDATASection</code> object
+    */
+        DOM_CDATASection(const DOM_CDATASection &other);
+
+  /**
+    * Assignment operator.
+    *
+    * @param other The object to be copied.
+    */
+        DOM_CDATASection & operator = (const DOM_CDATASection &other);
+
+    /**
+      * Assignment operator.  This overloaded variant is provided for
+      *   the sole purpose of setting a DOM_Node reference variable to
+      *   zero.  Nulling out a reference variable in this way will decrement
+      *   the reference count on the underlying Node object that the variable
+      *   formerly referenced.  This effect is normally obtained when reference
+      *   variable goes out of scope, but zeroing them can be useful for
+      *   global instances, or for local instances that will remain in scope
+      *   for an extended time,  when the storage belonging to the underlying
+      *   node needs to be reclaimed.
+      *
+      * @param val   Only a value of 0, or null, is allowed.
+      */
+    DOM_CDATASection & operator = (const DOM_NullPtr *val);
+
+
+    //@}
+    /** @name Destructor. */
+    //@{
+	 /**
+	  * Destructor for DOM_CDATASection.
+	  *
+	  */
+
+	    ~DOM_CDATASection();
+    //@}
+
+
+protected:
+	DOM_CDATASection(CDATASectionImpl *);
+
+    friend class DOM_Document;
+
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
+
+
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/deprecated/DOM_TreeWalker.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/deprecated/DOM_TreeWalker.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/deprecated/DOM_TreeWalker.hpp	(revision 2674)
@@ -0,0 +1,238 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: DOM_TreeWalker.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#ifndef DOM_TreeWalker_HEADER_GUARD_
+#define DOM_TreeWalker_HEADER_GUARD_
+
+#include "DOM_Node.hpp"
+#include "DOM_NodeFilter.hpp"
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+
+class TreeWalkerImpl;
+
+
+/**
+ * <code>DOM_TreeWalker</code> objects are used to navigate a document tree or
+ * subtree using the view of the document defined by its <code>whatToShow</code>
+ * flags and any filters that are defined for the <code>DOM_TreeWalker</code>. Any
+ * function which performs navigation using a <code>DOM_TreeWalker</code> will
+ * automatically support any view defined by a <code>DOM_TreeWalker</code>.
+ *
+ * Omitting nodes from the logical view of a subtree can result in a structure that is
+ * substantially different from the same subtree in the complete, unfiltered document. Nodes
+ * that are siblings in the DOM_TreeWalker view may be children of different, widely separated
+ * nodes in the original view. For instance, consider a Filter that skips all nodes except for
+ * Text nodes and the root node of a document. In the logical view that results, all text
+ * nodes will be siblings and appear as direct children of the root node, no matter how
+ * deeply nested the structure of the original document.
+ *
+ */
+class DEPRECATED_DOM_EXPORT DOM_TreeWalker {
+    public:
+        /** @name Constructors and assignment operator */
+        //@{
+        /**
+          * Default constructor.
+          */
+        DOM_TreeWalker();
+
+        /**
+          * Copy constructor.
+          *
+          * @param other The object to be copied.
+          */
+        DOM_TreeWalker(const DOM_TreeWalker &other);
+
+        /**
+          * Assignment operator.
+          *
+          * @param other The object to be copied.
+          */
+        DOM_TreeWalker & operator = (const DOM_TreeWalker &other);
+
+        /**
+          * Assignment operator.  This overloaded variant is provided for
+          *   the sole purpose of setting a DOM_NodeIterator to null.
+          *
+          * @param val  Only a value of 0, or null, is allowed.
+          */
+        DOM_TreeWalker & operator = (const DOM_NullPtr *val);
+        //@}
+
+        /** @name Destructor. */
+        //@{
+	/**
+	  * Destructor for DOM_TreeWalker.
+	  */
+        ~DOM_TreeWalker();
+        //@}
+
+        /** @name Equality and Inequality operators. */
+        //@{
+        /**
+         * The equality operator.
+         *
+         * @param other The object reference with which <code>this</code> object is compared
+         * @returns True if both <code>DOM_TreeWalker</code>s refer to the same
+         *  actual node, or are both null; return false otherwise.
+         */
+        bool operator == (const DOM_TreeWalker & other)const;
+
+        /**
+          *  Compare with a pointer.  Intended only to allow a convenient
+          *    comparison with null.
+          */
+        bool operator == (const DOM_NullPtr *other) const;
+
+        /**
+         * The inequality operator.  See operator ==.
+         */
+        bool operator != (const DOM_TreeWalker & other) const;
+
+         /**
+          *  Compare with a pointer.  Intended only to allow a convenient
+          *    comparison with null.
+          *
+          */
+        bool operator != (const DOM_NullPtr * other) const;
+        //@}
+
+        /** @name Get functions. */
+        //@{
+        /**
+         * The <code>root</code> node of the <code>TreeWalker</code>, as specified
+         * when it was created.
+         */
+        DOM_Node          getRoot();
+
+        /**
+          * Return which node types are presented via the DOM_TreeWalker.
+          * These constants are defined in the DOM_NodeFilter interface.
+          *
+          */
+        unsigned long   	getWhatToShow();
+
+        /**
+          * Return The filter used to screen nodes.
+          *
+          */
+        DOM_NodeFilter*		getFilter();
+
+        /**
+          * Return the expandEntityReferences flag.
+          * The value of this flag determines whether the children of entity reference
+          * nodes are visible to the DOM_TreeWalker. If false, they will be skipped over.
+          *
+          */
+        bool getExpandEntityReferences();
+
+        /**
+          * Return the node at which the DOM_TreeWalker is currently positioned.
+          *
+          */
+        DOM_Node		getCurrentNode();
+
+        /**
+          * Moves to and returns the closest visible ancestor node of the current node.
+          * If the search for parentNode attempts to step upward from the DOM_TreeWalker's root
+          * node, or if it fails to find a visible ancestor node, this method retains the
+          * current position and returns null.
+          *
+          */
+        DOM_Node		parentNode();
+
+        /**
+          * Moves the <code>DOM_TreeWalker</code> to the first child of the current node,
+          * and returns the new node. If the current node has no children, returns
+          * <code>null</code>, and retains the current node.
+          *
+          */
+        DOM_Node		firstChild();
+
+        /**
+          * Moves the <code>DOM_TreeWalker</code> to the last child of the current node, and
+          * returns the new node. If the current node has no children, returns
+          * <code>null</code>, and retains the current node.
+          *
+          */
+        DOM_Node		lastChild();
+
+        /**
+          * Moves the <code>DOM_TreeWalker</code> to the previous sibling of the current
+          * node, and returns the new node. If the current node has no previous sibling,
+          * returns <code>null</code>, and retains the current node.
+          *
+          */
+        DOM_Node		previousSibling();
+
+        /**
+          * Moves the <code>DOM_TreeWalker</code> to the next sibling of the current node,
+          * and returns the new node. If the current node has no next sibling, returns
+          * <code>null</code>, and retains the current node.
+          *
+          */
+        DOM_Node		nextSibling();
+
+        /**
+          * Moves the <code>DOM_TreeWalker</code> to the previous visible node in document
+          * order relative to the current node, and returns the new node. If the current
+          * node has no previous node,
+          * or if the search for previousNode attempts to step upward from the DOM_TreeWalker's
+          * root node, returns <code>null</code>, and retains the current node.
+          *
+          */
+        DOM_Node		previousNode();
+
+        /**
+          * Moves the <code>DOM_TreeWalker</code> to the next visible node in document order
+          * relative to the current node, and returns the new node. If the current node has
+          * no next node,
+          * or if the search for nextNode attempts to step upward from the DOM_TreeWalker's
+          * root node, returns <code>null</code>, and retains the current node.
+          *
+          */
+        DOM_Node		nextNode();
+        //@}
+
+        /** @name Set functions. */
+        //@{
+        /**
+          * Set the node at which the DOM_TreeWalker is currently positioned.
+          *
+          */
+        void			setCurrentNode(DOM_Node currentNode);
+        //@}
+
+
+    protected:
+        DOM_TreeWalker(TreeWalkerImpl* impl);
+
+        friend class DOM_Document;
+
+    private:
+        TreeWalkerImpl*         fImpl;
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/deprecated/NodeVector.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/deprecated/NodeVector.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/deprecated/NodeVector.hpp	(revision 2674)
@@ -0,0 +1,70 @@
+#ifndef NodeVector_HEADER_GUARD_
+#define NodeVector_HEADER_GUARD_
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: NodeVector.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+//
+//  This file is part of the internal implementation of the C++ XML DOM.
+//  It should NOT be included or used directly by application programs.
+//
+//  Applications should include the file <xercesc/dom/deprecated/DOM.hpp> for the entire
+//  DOM API, or DOM_*.hpp for individual DOM classes, where the class
+//  name is substituded for the *.
+//
+
+
+#include <xercesc/util/PlatformUtils.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+
+class NodeImpl;
+
+
+class  NodeVector : public XMemory {
+private:
+    NodeImpl        **data;
+    unsigned int    allocatedSize;
+    unsigned int    nextFreeSlot;
+    MemoryManager*  fMemoryManager;
+
+    void            init(unsigned int size);
+    void            checkSpace();
+
+public:
+    NodeVector(MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+    NodeVector(unsigned int size,
+               MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+    ~NodeVector();
+
+    unsigned int    size();
+    NodeImpl        *elementAt(unsigned int index);
+    NodeImpl        *lastElement();
+    void            addElement(NodeImpl *);
+    void            insertElementAt(NodeImpl *, unsigned int index);
+    void            setElementAt(NodeImpl *val, unsigned int index);
+    void            removeElementAt(unsigned int index);
+    void            reset();
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/deprecated/DOM_Entity.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/deprecated/DOM_Entity.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/deprecated/DOM_Entity.hpp	(revision 2674)
@@ -0,0 +1,139 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: DOM_Entity.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#ifndef DOM_Entity_HEADER_GUARD_
+#define DOM_Entity_HEADER_GUARD_
+
+#include <xercesc/util/XercesDefs.hpp>
+#include "DOM_Node.hpp"
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+
+class EntityImpl;
+
+/**
+ * This interface represents an entity, either parsed or unparsed, in an XML
+ * document.
+ *
+ * Note that this models the entity itself not the entity
+ * declaration. <code>Entity</code> declaration modeling has been left for a
+ * later Level of the DOM specification.
+ * <p>The <code>nodeName</code> attribute that is inherited from
+ * <code>Node</code> contains the name of the entity.
+ * <p>An XML processor may choose to completely expand entities before  the
+ * structure model is passed to the DOM; in this case there will be no
+ * <code>EntityReference</code> nodes in the document tree.
+ *
+ * <p>Note: the first release of this parser does not create entity
+ *    nodes when reading an XML document.  Entities may be
+ *    programatically created using DOM_Document::createEntity().
+ */
+class DEPRECATED_DOM_EXPORT DOM_Entity: public DOM_Node {
+public:
+    /** @name Constructors and assignment operator */
+    //@{
+    /**
+      * Default constructor for DOM_Entity.
+      *
+      */
+    DOM_Entity();
+
+    /**
+      * Copy constructor.
+      *
+      * @param other The object to be copied.
+      */
+    DOM_Entity(const DOM_Entity &other);
+
+    /**
+      * Assignment operator.
+      *
+      * @param other The object to be copied.
+      */
+    DOM_Entity & operator = (const DOM_Entity &other);
+
+    /**
+      * Assignment operator.  This overloaded variant is provided for
+      *   the sole purpose of setting a DOM_Node reference variable to
+      *   zero.  Nulling out a reference variable in this way will decrement
+      *   the reference count on the underlying Node object that the variable
+      *   formerly referenced.  This effect is normally obtained when reference
+      *   variable goes out of scope, but zeroing them can be useful for
+      *   global instances, or for local instances that will remain in scope
+      *   for an extended time,  when the storage belonging to the underlying
+      *   node needs to be reclaimed.
+      *
+      * @param val   Only a value of 0, or null, is allowed.
+      */
+    DOM_Entity & operator = (const DOM_NullPtr *val);
+
+    //@}
+    /** @name Destructor. */
+    //@{
+	 /**
+	  * Destructor for DOM_Entity.
+	  *
+	  */
+    ~DOM_Entity();
+
+    //@}
+    /** @name Get functions. */
+    //@{
+  /**
+   * The public identifier associated with the entity, if specified.
+   *
+   * If the public identifier was not specified, this is <code>null</code>.
+   */
+  DOMString        getPublicId() const;
+
+  /**
+   * The system identifier associated with the entity, if specified.
+   *
+   * If the system identifier was not specified, this is <code>null</code>.
+   */
+  DOMString        getSystemId() const;
+
+  /**
+   * For unparsed entities, the name of the notation for the entity.
+   *
+   * For parsed entities, this is <code>null</code>.
+   */
+  DOMString        getNotationName() const;
+
+  DOM_Node		getFirstChild() const;
+  DOM_Node      getLastChild() const;
+  DOM_NodeList  getChildNodes() const;
+  bool          hasChildNodes() const;
+  DOM_Node		getPreviousSibling() const;
+  DOM_Node		getNextSibling() const;
+  //@}
+
+protected:
+    DOM_Entity(EntityImpl *impl);
+
+    friend class DOM_Document;
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
+
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/deprecated/DOM_ProcessingInstruction.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/deprecated/DOM_ProcessingInstruction.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/deprecated/DOM_ProcessingInstruction.hpp	(revision 2674)
@@ -0,0 +1,142 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: DOM_ProcessingInstruction.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#ifndef DOM_ProcessingInstruction_HEADER_GUARD_
+#define DOM_ProcessingInstruction_HEADER_GUARD_
+
+#include <xercesc/util/XercesDefs.hpp>
+#include "DOM_Node.hpp"
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+
+class ProcessingInstructionImpl;
+
+/**
+ * The <code>ProcessingInstruction</code> interface represents a  "processing
+ * instruction", used in XML as a way to keep processor-specific information
+ * in the text of the document.
+ */
+class  DEPRECATED_DOM_EXPORT DOM_ProcessingInstruction: public DOM_Node {
+public:
+    /** @name Constructors and assignment operator */
+    //@{
+    /**
+      * Default constructor for DOM_ProcessingInstruction.  The resulting object
+      *  does not refer to an actual PI node; it will compare == to 0, and is similar
+      * to a null object reference variable in Java.  It may subsequently be
+      * assigned to refer to an actual PI node.
+      * <p>
+      * New Processing Instruction nodes are created by DOM_Document::createProcessingInstruction().
+      *
+      *
+      */
+    DOM_ProcessingInstruction();
+
+    /**
+      * Copy constructor.  Creates a new <code>DOM_ProcessingInstruction</code> that refers to the
+      * same underlying node as the original.  See also DOM_Node::clone(),
+      * which will copy the actual PI node, rather than just creating a new
+      * reference to the original node.
+      *
+      * @param other The object to be copied.
+      */
+    DOM_ProcessingInstruction(const DOM_ProcessingInstruction &other);
+
+    /**
+      * Assignment operator.
+      *
+      * @param other The object to be copied.
+      */
+    DOM_ProcessingInstruction & operator = (const DOM_ProcessingInstruction &other);
+
+    /**
+      * Assignment operator.  This overloaded variant is provided for
+      *   the sole purpose of setting a DOM_Node reference variable to
+      *   zero.  Nulling out a reference variable in this way will decrement
+      *   the reference count on the underlying Node object that the variable
+      *   formerly referenced.  This effect is normally obtained when reference
+      *   variable goes out of scope, but zeroing them can be useful for
+      *   global instances, or for local instances that will remain in scope
+      *   for an extended time,  when the storage belonging to the underlying
+      *   node needs to be reclaimed.
+      *
+      * @param val   Only a value of 0, or null, is allowed.
+      */
+    DOM_ProcessingInstruction & operator = (const DOM_NullPtr *val);
+
+    //@}
+    /** @name Destructor. */
+    //@{
+	 /**
+	  * Destructor for DOM_processingInstruction.  The object being destroyed is the reference
+      * object, not the underlying PI node itself.
+	  *
+	  */
+    ~DOM_ProcessingInstruction();
+
+    //@}
+    /** @name Get functions. */
+    //@{
+    /**
+     * The target of this processing instruction.
+     *
+     * XML defines this as being the
+     * first token following the markup that begins the processing instruction.
+     */
+    DOMString        getTarget() const;
+
+    /**
+     * The content of this processing instruction.
+     *
+     * This is from the first non
+     * white space character after the target to the character immediately
+     * preceding the <code>?&gt;</code>.
+     * @exception DOMException
+     *   NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly.
+     */
+    DOMString        getData() const;
+
+    //@}
+    /** @name Set functions. */
+    //@{
+    /**
+    * Sets the content of this processing instruction.
+    *
+    * This is from the first non
+    * white space character after the target to the character immediately
+    * preceding the <code>?&gt;</code>.
+    * @param data The string containing the processing instruction
+    */
+    void             setData(const DOMString &data);
+    //@}
+
+protected:
+    DOM_ProcessingInstruction(ProcessingInstructionImpl *impl);
+
+    friend class DOM_Document;
+
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
+
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/deprecated/DOM_DocumentType.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/deprecated/DOM_DocumentType.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/deprecated/DOM_DocumentType.hpp	(revision 2674)
@@ -0,0 +1,176 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: DOM_DocumentType.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#ifndef DOM_DocumentType_HEADER_GUARD_
+#define DOM_DocumentType_HEADER_GUARD_
+
+#include <xercesc/util/XercesDefs.hpp>
+#include "DOM_Node.hpp"
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+
+class DOM_NamedNodeMap;
+class DocumentTypeImpl;
+
+/**
+ * Each <code>Document</code> has a <code>doctype</code> whose value
+ * is either <code>null</code> or a <code>DocumentType</code> object.
+ *
+ * The <code>DOM_DocumentType</code> class provides access
+ *  to the list of entities and notations that are defined for the document.
+ * <p>The DOM Level 1 doesn't support editing <code>DocumentType</code> nodes.
+ */
+class DEPRECATED_DOM_EXPORT DOM_DocumentType: public DOM_Node {
+
+public:
+    /** @name Constructors and assignment operator */
+    //@{
+    /**
+      * Default constructor for DOM_DocumentType.  The resulting object does not
+      * refer to an actual DocumentType node; it will compare == to 0, and is similar
+      * to a null object reference variable in Java.  It may subsequently be
+      * assigned to refer to the actual DocumentType node.
+      * <p>
+      * A new DocumentType node for a document that does not already have one
+      * can be created by DOM_Document::createDocumentType().
+      *
+      */
+    DOM_DocumentType();
+
+    /**
+      * Constructor for a null DOM_DocumentType.
+      * This allows passing 0 directly as a null DOM_DocumentType to
+      * function calls that take DOM_DocumentType as parameters.
+      *
+      * @param nullPointer Must be 0.
+      */
+    DOM_DocumentType(int nullPointer);
+
+    /**
+      * Copy constructor.  Creates a new <code>DOM_Comment</code> that refers to the
+      * same underlying node as the original.
+      *
+      *
+      * @param other The object to be copied.
+      */
+    DOM_DocumentType(const DOM_DocumentType &other);
+
+
+    /**
+      * Assignment operator.
+      *
+      * @param other The object to be copied.
+      */
+    DOM_DocumentType & operator = (const DOM_DocumentType &other);
+
+    /**
+      * Assignment operator.  This overloaded variant is provided for
+      *   the sole purpose of setting a DOM_Node reference variable to
+      *   zero.  Nulling out a reference variable in this way will decrement
+      *   the reference count on the underlying Node object that the variable
+      *   formerly referenced.  This effect is normally obtained when reference
+      *   variable goes out of scope, but zeroing them can be useful for
+      *   global instances, or for local instances that will remain in scope
+      *   for an extended time,  when the storage belonging to the underlying
+      *   node needs to be reclaimed.
+      *
+      * @param val   Only a value of 0, or null, is allowed.
+      */
+    DOM_DocumentType & operator = (const DOM_NullPtr *val);
+
+    //@}
+    /** @name Destructor. */
+    //@{
+	 /**
+	  * Destructor for DOM_DocumentType.  The object being destroyed is the reference
+      * object, not the underlying DocumentType node itself.
+	  *
+	  */
+    ~DOM_DocumentType();
+    //@}
+
+    /** @name Getter functions. */
+    //@{
+  /**
+   * The name of DTD; i.e., the name immediately following the
+   * <code>DOCTYPE</code> keyword in an XML source document.
+   */
+  DOMString       getName() const;
+
+  /**
+   * This function returns a  <code>NamedNodeMap</code> containing the general entities, both
+   * external and internal, declared in the DTD. Parameter entities are not contained.
+   * Duplicates are discarded.
+   * <p>
+   * Note: this functionality is not implemented in the initial release
+   * of the parser, and the returned NamedNodeMap will be empty.
+   */
+  DOM_NamedNodeMap getEntities() const;
+
+
+  /**
+   * This function returns a named node map containing an entry for
+   * each notation declared in a document's DTD.  Duplicates are discarded.
+   *
+   * <p>
+   * Note: this functionality is not implemented in the initial release
+   * of the parser, and the returned NamedNodeMap will be empty.
+   */
+  DOM_NamedNodeMap getNotations() const;
+  //@}
+
+    /** @name Functions introduced in DOM Level 2. */
+    //@{
+    /**
+     * Get the public identifier of the external subset.
+     *
+     * @return The public identifier of the external subset.
+     */
+    DOMString     getPublicId() const;
+
+    /**
+     * Get the system identifier of the external subset.
+     *
+     * @return The system identifier of the external subset.
+     */
+    DOMString     getSystemId() const;
+
+    /**
+     * Get the internal subset as a string.
+     *
+     * @return The internal subset as a string.
+     */
+    DOMString     getInternalSubset() const;
+    //@}
+
+protected:
+    DOM_DocumentType(DocumentTypeImpl *);
+
+    friend class DOM_Document;
+    friend class DOM_DOMImplementation;
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
+
+
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/deprecated/DOM.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/deprecated/DOM.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/deprecated/DOM.hpp	(revision 2674)
@@ -0,0 +1,53 @@
+#ifndef DOM_DEPRECATED_HEADER_GUARD_
+#define DOM_DEPRECATED_HEADER_GUARD_
+
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: DOM.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+//
+//  This is the primary header file for inclusion in application
+//  programs using the C++ XML Document Object Model API.
+//
+
+#include "DOM_Attr.hpp"
+#include "DOM_CDATASection.hpp"
+#include "DOM_CharacterData.hpp"
+#include "DOM_Comment.hpp"
+#include "DOM_Document.hpp"
+#include "DOM_DocumentFragment.hpp"
+#include "DOM_DocumentType.hpp"
+#include "DOM_DOMException.hpp"
+#include "DOM_DOMImplementation.hpp"
+#include "DOM_Element.hpp"
+#include "DOM_Entity.hpp"
+#include "DOM_EntityReference.hpp"
+#include "DOM_NamedNodeMap.hpp"
+#include "DOM_Node.hpp"
+#include "DOM_NodeList.hpp"
+#include "DOM_Notation.hpp"
+#include "DOM_ProcessingInstruction.hpp"
+#include "DOM_Text.hpp"
+#include "DOMString.hpp"
+#include "DOM_XMLDecl.hpp"
+
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/deprecated/DOM_Text.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/deprecated/DOM_Text.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/deprecated/DOM_Text.hpp	(revision 2674)
@@ -0,0 +1,160 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: DOM_Text.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#ifndef DOM_Text_HEADER_GUARD_
+#define DOM_Text_HEADER_GUARD_
+
+#include <xercesc/util/XercesDefs.hpp>
+#include "DOM_CharacterData.hpp"
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+
+class TextImpl;
+
+
+/**
+ * The <code>Text</code> interface represents the textual content (termed
+ * character  data in XML) of an <code>Element</code> or <code>Attr</code>.
+ * If there is no markup inside an element's content, the text is contained
+ * in a single object implementing the <code>Text</code> interface that is
+ * the only child of the element. If there is markup, it is parsed into a
+ * list of elements and <code>Text</code> nodes that form the list of
+ * children of the element.
+ * <p>When a document is first made available via the DOM, there is  only one
+ * <code>Text</code> node for each block of text. Users may create  adjacent
+ * <code>Text</code> nodes that represent the  contents of a given element
+ * without any intervening markup, but should be aware that there is no way
+ * to represent the separations between these nodes in XML, so they
+ * will not (in general) persist between DOM editing sessions. The
+ * <code>normalize()</code> method on <code>Element</code> merges any such
+ * adjacent <code>Text</code> objects into a single node for each block of
+ * text; this is  recommended before employing operations that depend on a
+ * particular document structure, such as navigation with
+ * <code>XPointers.</code>
+ */
+class DEPRECATED_DOM_EXPORT DOM_Text: public DOM_CharacterData {
+
+    public:
+    /** @name Constructors and assignment operator */
+    //@{
+    /**
+      * Default constructor for DOM_Text.  The resulting object does not
+      * refer to an actual Text node; it will compare == to 0, and is similar
+      * to a null object reference variable in Java.  It may subsequently be
+      * assigned to refer to an actual comment node.
+      *
+      */
+    DOM_Text();
+
+    /**
+      * Copy constructor.  Creates a new <code>DOM_Text</code> that refers to the
+      * same underlying node as the original.  See also DOM_Node::clone(),
+      * which will copy the actual Text node, rather than just creating a new
+      * reference to the original node.
+      *
+      * @param other The object to be copied.
+      */
+    DOM_Text(const DOM_Text &other);
+
+    /**
+      * Assignment operator.
+      *
+      * @param other The object to be copied.
+      */
+    DOM_Text & operator = (const DOM_Text &other);
+
+    /**
+      * Assignment operator.  This overloaded variant is provided for
+      *   the sole purpose of setting a DOM_Node reference variable to
+      *   zero.  Nulling out a reference variable in this way will decrement
+      *   the reference count on the underlying Node object that the variable
+      *   formerly referenced.  This effect is normally obtained when reference
+      *   variable goes out of scope, but zeroing them can be useful for
+      *   global instances, or for local instances that will remain in scope
+      *   for an extended time,  when the storage belonging to the underlying
+      *   node needs to be reclaimed.
+      *
+      * @param val  Only a value of 0, or null, is allowed.
+      */
+    DOM_Text & operator = (const DOM_NullPtr *val);
+
+    //@}
+    /** @name Destructor. */
+    //@{
+	 /**
+	  * Destructor for DOM_Text. The object being destroyed is the reference
+      * object, not the underlying Comment node itself.
+	  *
+	  */
+    ~DOM_Text();
+
+    //@}
+    /** @name Functions to modify the Text node. */
+    //@{
+
+    /**
+     * Breaks this node into two nodes at the specified
+     * offset, keeping both in the tree as siblings.
+     *
+     * This node then only
+     * contains all the content up to the <code>offset</code> point. And a new
+     * node of the same nodeType, which is inserted as the next sibling of this
+     * node, contains all the content at and after the <code>offset</code>
+     * point. When the <code>offset</code> is equal to the lenght of this node,
+     * the new node has no data.
+     * @param offset The offset at which to split, starting from 0.
+     * @return The new <code>Text</code> node.
+     * @exception DOMException
+     *   INDEX_SIZE_ERR: Raised if the specified offset is negative or greater
+     *   than the number of characters in <code>data</code>.
+     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
+     */
+    DOM_Text splitText(unsigned int offset);
+
+    //@}
+    /** @name Non-standard (not defined by the DOM specification) functions. */
+    //@{
+
+    /**
+     *
+     * Return true if this node contains ignorable whitespaces only.
+     * @return True if this node contains ignorable whitespaces only.
+     */
+    bool isIgnorableWhitespace();
+
+    //@}
+
+protected:
+    DOM_Text(TextImpl *);
+
+    friend class DOM_Document;
+    friend class RangeImpl;
+
+
+
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
+
+
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/deprecated/DOM_DOMImplementation.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/deprecated/DOM_DOMImplementation.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/deprecated/DOM_DOMImplementation.hpp	(revision 2674)
@@ -0,0 +1,165 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: DOM_DOMImplementation.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#ifndef DOM_DOMImplementation_HEADER_GUARD_
+#define DOM_DOMImplementation_HEADER_GUARD_
+
+#include <xercesc/util/PlatformUtils.hpp>
+#include "DOMString.hpp"
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+
+class DOM_Document;
+class DOM_DocumentType;
+
+/**
+ *   This class provides a way to query the capabilities of an implementation
+ *   of the DOM
+ */
+
+
+class DEPRECATED_DOM_EXPORT DOM_DOMImplementation {
+ private:
+    DOM_DOMImplementation(const DOM_DOMImplementation &other);
+
+ public:
+/** @name Constructors and assignment operators */
+//@{
+ /**
+   * Construct a DOM_Implementation reference variable, which should
+   * be assigned to the return value from
+   * <code>DOM_Implementation::getImplementation()</code>.
+   */
+    DOM_DOMImplementation();
+
+ /**
+   * Assignment operator
+   *
+   */
+    DOM_DOMImplementation & operator = (const DOM_DOMImplementation &other);
+//@}
+
+  /** @name Destructor */
+  //@{
+  /**
+    * Destructor.  The object being destroyed is a reference to the DOMImplemenentation,
+    * not the underlying DOMImplementation object itself, which is owned by
+    * the implementation code.
+    *
+    */
+
+    ~DOM_DOMImplementation();
+	//@}
+
+  /** @name Getter functions */
+  //@{
+
+ /**
+   * Test if the DOM implementation implements a specific feature.
+   *
+   * @param feature The string of the feature to test (case-insensitive). The legal
+   *        values are defined throughout this specification. The string must be
+   *        an <EM>XML name</EM> (see also Compliance).
+   * @param version This is the version number of the package name to test.
+   *   In Level 1, this is the string "1.0". If the version is not specified,
+   *   supporting any version of the  feature will cause the method to return
+   *   <code>true</code>.
+   * @return <code>true</code> if the feature is implemented in the specified
+   *   version, <code>false</code> otherwise.
+   */
+ bool  hasFeature(const DOMString &feature,  const DOMString &version);
+
+
+  /** Return a reference to a DOM_Implementation object for this
+    *  DOM implementation.
+    *
+    * Intended to support applications that may be
+    * using DOMs retrieved from several different sources, potentially
+    * with different underlying implementations.
+    */
+ static DOM_DOMImplementation &getImplementation();
+
+ //@}
+
+    /** @name Functions introduced in DOM Level 2. */
+    //@{
+    /**
+     * Creates an empty <code>DOM_DocumentType</code> node.
+     * Entity declarations and notations are not made available.
+     * Entity reference expansions and default attribute additions
+     * do not occur. It is expected that a future version of the DOM
+     * will provide a way for populating a <code>DOM_DocumentType</code>.
+     *
+     * @param qualifiedName The <em>qualified name</em>
+     * of the document type to be created.
+     * @param publicId The external subset public identifier.
+     * @param systemId The external subset system identifier.
+     * @return A new <code>DOM_DocumentType</code> node with
+     * <code>Node.ownerDocument</code> set to <code>null</code>.
+     * @exception DOMException
+     *   INVALID_CHARACTER_ERR: Raised if the specified qualified name
+     *      contains an illegal character.
+     * <br>
+     *   NAMESPACE_ERR: Raised if the <code>qualifiedName</code> is malformed.
+     */
+    DOM_DocumentType createDocumentType(const DOMString &qualifiedName,
+	const DOMString &publicId, const DOMString &systemId);
+
+    /**
+     * Creates an XML <code>DOM_Document</code> object of the specified type
+     * with its document element.
+     *
+     * @param namespaceURI The <em>namespace URI</em> of
+     * the document element to create, or <code>null</code>.
+     * @param qualifiedName The <em>qualified name</em>
+     * of the document element to be created.
+     * @param doctype The type of document to be created or <code>null</code>.
+     * <p>When <code>doctype</code> is not <code>null</code>, its
+     * <code>Node.ownerDocument</code> attribute is set to the document
+     * being created.
+     * @return A new <code>DOM_Document</code> object.
+     * @exception DOMException
+     *   INVALID_CHARACTER_ERR: Raised if the specified qualified name
+     *      contains an illegal character.
+     * <br>
+     *   NAMESPACE_ERR: Raised if the <CODE>qualifiedName</CODE> is
+     *      malformed, or if the <CODE>qualifiedName</CODE> has a prefix that is
+     *      "xml" and the <CODE>namespaceURI</CODE> is different from
+     *      "http://www.w3.org/XML/1998/namespace".
+     * <br>
+     *   WRONG_DOCUMENT_ERR: Raised if <code>doctype</code> has already
+     *   been used with a different document.
+     */
+    DOM_Document createDocument(const DOMString &namespaceURI,
+	const DOMString &qualifiedName, const DOM_DocumentType &doctype,
+	MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+    //@}
+
+    // -----------------------------------------------------------------------
+    //  Notification that lazy data has been deleted
+    // -----------------------------------------------------------------------
+	static void reinitDOM_DOMImplementation();
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/deprecated/MemDebug.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/deprecated/MemDebug.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/deprecated/MemDebug.hpp	(revision 2674)
@@ -0,0 +1,55 @@
+#ifndef MemDebug_HEADER_GUARD_
+#define MemDebug_HEADER_GUARD_
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: MemDebug.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#include <xercesc/util/XercesDefs.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+
+class DomMemDebug
+{
+public:
+    int         liveStringHandles;
+    int         totalStringHandles;
+    int         liveStringBuffers;
+    int         totalStringBuffers;
+    int         liveNodeImpls;
+    int         totalNodeImpls;
+    int         liveNamedNodeMaps;
+    int         totalNamedNodeMaps;
+
+public:
+    DOMMemDebug();
+    ~DOMMemDebug();
+
+    void        print();
+    void        printDifference(const DOMMemDebug &other);
+    bool        operator == (const DOMMemDebug &other);
+    bool        operator != (const DOMMemDebug &other);
+    bool        operator =  (const DOMMemDebug &other);
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif // MemDebug_HEADER_GUARD_
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/deprecated/DomMemDebug.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/deprecated/DomMemDebug.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/deprecated/DomMemDebug.hpp	(revision 2674)
@@ -0,0 +1,69 @@
+#ifndef DomMemDebug_HEADER_GUARD_
+#define DomMemDebug_HEADER_GUARD_
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: DomMemDebug.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#include <xercesc/util/XercesDefs.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+
+//
+// This class aids in debugging memory management problems with the
+//  reference counted DOM classes - DOMStrings, Nodes (including subclasses),
+//  and NamedNodeMaps.
+//
+// Usage Example:
+//      DomMemDebug  initialState;   // Captures allocation totals
+//          ...                     //    Test code performs DOM
+//          ...                     //    operations here.
+//
+//      DomMemDebug  exitState;     //   Captures post-test state.
+//      ExitState.printDifference(initialState);  // Display leaks.
+//
+class DEPRECATED_DOM_EXPORT DomMemDebug
+{
+public:
+    int         liveStringHandles;
+    int         totalStringHandles;
+    int         liveStringBuffers;
+    int         totalStringBuffers;
+    int         liveNodeImpls;
+    int         totalNodeImpls;
+    int         liveNamedNodeMaps;
+    int         totalNamedNodeMaps;
+
+public:
+    DomMemDebug();
+    ~DomMemDebug();
+
+    void        print();
+    void        printDifference(const DomMemDebug &other);
+    bool        operator == (const DomMemDebug &other);
+    bool        operator != (const DomMemDebug &other);
+    void        operator =  (const DomMemDebug &other);
+};
+
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/deprecated/DOM_CharacterData.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/deprecated/DOM_CharacterData.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/deprecated/DOM_CharacterData.hpp	(revision 2674)
@@ -0,0 +1,226 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: DOM_CharacterData.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#ifndef DOM_CharacterData_HEADER_GUARD_
+#define DOM_CharacterData_HEADER_GUARD_
+
+#include <xercesc/util/XercesDefs.hpp>
+#include "DOM_Node.hpp"
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+
+class CharacterDataImpl;
+
+/**
+ * The <code>DOM_CharacterData</code> interface extends Node with a set  of
+ * methods for accessing character data in the DOM.
+ *
+ * For clarity this set is defined here rather than on each class that uses
+ * these methods. No DOM objects correspond directly to
+ * <code>CharacterData</code>, though <code>Text</code> and others do inherit
+ * the interface from it. All <code>offset</code>s in this interface start
+ * from 0, and index in terms of Unicode 16 bit storage units.
+ */
+class DEPRECATED_DOM_EXPORT DOM_CharacterData: public DOM_Node {
+
+private:
+
+public:
+  /** @name Constructors and assignment operator */
+  //@{
+  /**
+    * Default constructor for DOM_CharacterData.  While there can be
+    * no actual DOM nodes of type CharacterData, the C++ objects
+    * function more like reference variables, and instances of
+    * <code>DOM_CharacterData</code> can exist.  They will be null when created
+    * by this constructor, and can then be assigned to refer to Text
+    * or CDATASection nodes.
+    */
+    DOM_CharacterData();
+
+  /**
+    * Copy constructor
+    *
+    * @param other The object to be copied
+    */
+    DOM_CharacterData(const DOM_CharacterData &other);
+  /**
+    * Assignment operator
+    *
+    * @param other The object to be copied
+    */
+    DOM_CharacterData & operator = (const DOM_CharacterData &other);
+
+    /**
+      * Assignment operator.  This overloaded variant is provided for
+      *   the sole purpose of setting a DOM_Node reference variable to
+      *   zero.  Nulling out a reference variable in this way will decrement
+      *   the reference count on the underlying Node object that the variable
+      *   formerly referenced.  This effect is normally obtained when reference
+      *   variable goes out of scope, but zeroing them can be useful for
+      *   global instances, or for local instances that will remain in scope
+      *   for an extended time,  when the storage belonging to the underlying
+      *   node needs to be reclaimed.
+      *
+      * @param val   Only a value of 0, or null, is allowed.
+      */
+    DOM_CharacterData & operator = (const DOM_NullPtr *val);
+
+    //@}
+    /** @name Destructor. */
+    //@{
+	 /**
+	  * Destructor for DOM_CharacterData.  The object being destroyed
+      * is the reference to the Character Data node, not the character
+      * data itself.
+	  */
+    ~DOM_CharacterData();
+
+
+    //@}
+
+    /** @name Getter functions. */
+    //@{
+  /**
+   * Returns the character data of the node that implements this interface.
+   *
+   * The DOM implementation may not put arbitrary limits on the amount of data that
+   * may be stored in a  <code>CharacterData</code> node. However,
+   * implementation limits may  mean that the entirety of a node's data may
+   * not fit into a single <code>DOMString</code>. In such cases, the user
+   * may call <code>substringData</code> to retrieve the data in
+   * appropriately sized pieces.
+   * @exception DOMException
+   *   NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly.
+   * @exception DOMException
+   *   DOMSTRING_SIZE_ERR: Raised when it would return more characters than
+   *   fit in a <code>DOMString</code> variable on the implementation
+   *   platform.
+   */
+  DOMString          getData() const;
+  /**
+   * Returns the number of characters that are available through <code>data</code> and
+   * the <code>substringData</code> method below.
+   *
+   * This may have the value
+   * zero, i.e., <code>CharacterData</code> nodes may be empty.
+   */
+  unsigned int       getLength() const;
+  /**
+   * Extracts a range of data from the node.
+   *
+   * @param offset Start offset of substring to extract.
+   * @param count The number of characters to extract.
+   * @return The specified substring. If the sum of <code>offset</code> and
+   *   <code>count</code> exceeds the <code>length</code>, then all
+   *   characters to the end of the data are returned.
+   * @exception DOMException
+   *   INDEX_SIZE_ERR: Raised if the specified offset is negative or greater
+   *   than the number of characters in <code>data</code>, or if the
+   *   specified <code>count</code> is negative.
+   *   <br>DOMSTRING_SIZE_ERR: Raised if the specified range of text does not
+   *   fit into a <code>DOMString</code>.
+   */
+  DOMString          substringData(unsigned int offset,
+                                   unsigned int count) const;
+    //@}
+    /** @name Functions that set or change data. */
+    //@{
+  /**
+   * Append the string to the end of the character data of the node.
+   *
+   * Upon success, <code>data</code> provides access to the concatenation of
+   * <code>data</code> and the <code>DOMString</code> specified.
+   * @param arg The <code>DOMString</code> to append.
+   * @exception DOMException
+   *   NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
+   */
+  void               appendData(const DOMString &arg);
+  /**
+   * Insert a string at the specified character offset.
+   *
+   * @param offset The character offset at which to insert.
+   * @param arg The <code>DOMString</code> to insert.
+   * @exception DOMException
+   *   INDEX_SIZE_ERR: Raised if the specified offset is negative or greater
+   *   than the number of characters in <code>data</code>.
+   *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
+   */
+  void               insertData(unsigned int offset, const  DOMString &arg);
+  /**
+   * Remove a range of characters from the node.
+   *
+   * Upon success,
+   * <code>data</code> and <code>length</code> reflect the change.
+   * @param offset The offset from which to remove characters.
+   * @param count The number of characters to delete. If the sum of
+   *   <code>offset</code> and <code>count</code> exceeds <code>length</code>
+   *   then all characters from <code>offset</code> to the end of the data
+   *   are deleted.
+   * @exception DOMException
+   *   INDEX_SIZE_ERR: Raised if the specified offset is negative or greater
+   *   than the number of characters in <code>data</code>, or if the
+   *   specified <code>count</code> is negative.
+   *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
+   */
+  void               deleteData(unsigned int offset,
+                                unsigned int count);
+  /**
+   * Replace the characters starting at the specified character offset with
+   * the specified string.
+   *
+   * @param offset The offset from which to start replacing.
+   * @param count The number of characters to replace. If the sum of
+   *   <code>offset</code> and <code>count</code> exceeds <code>length</code>
+   *   , then all characters to the end of the data are replaced (i.e., the
+   *   effect is the same as a <code>remove</code> method call with the same
+   *   range, followed by an <code>append</code> method invocation).
+   * @param arg The <code>DOMString</code> with which the range must be
+   *   replaced.
+   * @exception DOMException
+   *   INDEX_SIZE_ERR: Raised if the specified offset is negative or greater
+   *   than the number of characters in <code>data</code>, or if the
+   *   specified <code>count</code> is negative.
+   *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
+   */
+  void               replaceData(unsigned int offset,
+                                 unsigned int count,
+                                 const DOMString &arg);
+
+  /**
+   * Sets the character data of the node that implements this interface.
+   *
+   * @param data The <code>DOMString</code> to set.
+   */
+  void               setData(const DOMString &data);
+  //@}
+
+protected:
+    DOM_CharacterData(CharacterDataImpl *impl);
+
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
+
+
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/DOMRangeException.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/DOMRangeException.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/DOMRangeException.hpp	(revision 2674)
@@ -0,0 +1,133 @@
+#ifndef DOMRangeException_HEADER_GUARD_
+#define DOMRangeException_HEADER_GUARD_
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: DOMRangeException.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#include <xercesc/dom/DOMException.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+/**
+ * Range operations may throw a <code>DOMRangeException</code> as specified in
+ * their method descriptions.
+ * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Traversal-Range-20001113'>Document Object Model (DOM) Level 2 Traversal and Range Specification</a>.
+ * @since DOM Level 2
+ */
+
+class CDOM_EXPORT DOMRangeException  : public DOMException {
+public:
+    // -----------------------------------------------------------------------
+    //  Class Types
+    // -----------------------------------------------------------------------
+    /** @name Public Contants */
+    //@{
+    /**
+     * Enumerators for DOM Range Exceptions
+     *
+     * <p><code>BAD_BOUNDARYPOINTS_ERR:</code>
+     * If the boundary-points of a Range do not meet specific requirements.</p>
+     *
+     * <p><code>INVALID_NODE_TYPE_ERR:</code>
+     * If the container of an boundary-point of a Range is being set to either
+     * a node of an invalid type or a node with an ancestor of an invalid
+     * type.</p>
+     *
+     * @since DOM Level 2
+     */
+        enum RangeExceptionCode {
+                BAD_BOUNDARYPOINTS_ERR  = 1,
+                INVALID_NODE_TYPE_ERR   = 2
+        };
+    //@}
+
+public:
+    // -----------------------------------------------------------------------
+    //  Constructors
+    // -----------------------------------------------------------------------
+    /** @name Constructors */
+    //@{
+    /**
+      * Default constructor for DOMRangeException.
+      *
+      */
+    DOMRangeException();
+
+    /**
+      * Constructor which takes an error code and a message.
+      *
+      * @param code The error code which indicates the exception
+      * @param message The string containing the error message
+      * @param memoryManager  The memory manager used to (de)allocate memory
+      */
+    DOMRangeException(
+                            RangeExceptionCode       code
+                    , const XMLCh*                   message
+                    ,       MemoryManager*     const memoryManager
+                     );
+
+    /**
+      * Copy constructor.
+      *
+      * @param other The object to be copied.
+      */
+    DOMRangeException(const DOMRangeException &other);
+    //@}
+
+    // -----------------------------------------------------------------------
+    //  Destructors
+    // -----------------------------------------------------------------------
+    /** @name Destructor. */
+    //@{
+	 /**
+	  * Destructor for DOMRangeException.
+	  *
+	  */
+    virtual ~DOMRangeException();
+    //@}
+
+public:
+    // -----------------------------------------------------------------------
+    //  Class Types
+    // -----------------------------------------------------------------------
+    /** @name Public variables */
+    //@{
+	 /**
+	  * A code value, from the set defined by the RangeExceptionCode enum,
+     * indicating the type of error that occured.
+     *
+     * @since DOM Level 2
+	  */
+    RangeExceptionCode   code;
+
+    //@}
+
+private:
+    // -----------------------------------------------------------------------
+    // Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    DOMRangeException & operator = (const DOMRangeException &);
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
+
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/DOMDocument.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/DOMDocument.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/DOMDocument.hpp	(revision 2674)
@@ -0,0 +1,879 @@
+#ifndef DOMDocument_HEADER_GUARD_
+#define DOMDocument_HEADER_GUARD_
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: DOMDocument.hpp 568078 2007-08-21 11:43:25Z amassari $
+*/
+
+#include <xercesc/util/XercesDefs.hpp>
+#include <xercesc/dom/DOMNode.hpp>
+#include <xercesc/dom/DOMDocumentRange.hpp>
+#include <xercesc/dom/DOMDocumentTraversal.hpp>
+#include <xercesc/dom/DOMXPathEvaluator.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class DOMConfiguration;
+class DOMDocumentType;
+class DOMElement;
+class DOMDocumentFragment;
+class DOMComment;
+class DOMCDATASection;
+class DOMProcessingInstruction;
+class DOMAttr;
+class DOMEntity;
+class DOMEntityReference;
+class DOMImplementation;
+class DOMNodeFilter;
+class DOMNodeList;
+class DOMNotation;
+class DOMText;
+class DOMNode;
+
+
+/**
+ * The <code>DOMDocument</code> interface represents the entire XML
+ * document. Conceptually, it is the root of the document tree, and provides
+ * the primary access to the document's data.
+ * <p>Since elements, text nodes, comments, processing instructions, etc.
+ * cannot exist outside the context of a <code>DOMDocument</code>, the
+ * <code>DOMDocument</code> interface also contains the factory methods needed
+ * to create these objects. The <code>DOMNode</code> objects created have a
+ * <code>ownerDocument</code> attribute which associates them with the
+ * <code>DOMDocument</code> within whose context they were created.
+ * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113'>Document Object Model (DOM) Level 2 Core Specification</a>.
+ */
+
+class CDOM_EXPORT DOMDocument: public DOMDocumentRange,
+ public DOMXPathEvaluator,
+ public DOMDocumentTraversal,
+ public DOMNode {
+
+
+protected:
+    // -----------------------------------------------------------------------
+    //  Hidden constructors
+    // -----------------------------------------------------------------------
+    /** @name Hidden constructors */
+    //@{    
+    DOMDocument() {};
+    //@}
+
+private:
+    // -----------------------------------------------------------------------
+    // Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    /** @name Unimplemented constructors and operators */
+    //@{
+    DOMDocument(const DOMDocument &);
+    DOMDocument & operator = (const DOMDocument &);
+    //@}
+
+public:
+    // -----------------------------------------------------------------------
+    //  All constructors are hidden, just the destructor is available
+    // -----------------------------------------------------------------------
+    /** @name Destructor */
+    //@{
+    /**
+     * Destructor
+     *
+     */
+    virtual ~DOMDocument() {};
+    //@}
+
+    // -----------------------------------------------------------------------
+    // Virtual DOMDocument interface
+    // -----------------------------------------------------------------------
+    /** @name Functions introduced in DOM Level 1 */
+    //@{
+    /**
+     * Creates an element of the type specified. Note that the instance
+     * returned implements the <code>DOMElement</code> interface, so attributes
+     * can be specified directly on the returned object.
+     * <br>In addition, if there are known attributes with default values,
+     * <code>DOMAttr</code> nodes representing them are automatically created
+     * and attached to the element.
+     * <br>To create an element with a qualified name and namespace URI, use
+     * the <code>createElementNS</code> method.
+     * @param tagName The name of the element type to instantiate. For XML,
+     *   this is case-sensitive.
+     * @return A new <code>DOMElement</code> object with the
+     *   <code>nodeName</code> attribute set to <code>tagName</code>, and
+     *   <code>localName</code>, <code>prefix</code>, and
+     *   <code>namespaceURI</code> set to <code>null</code>.
+     * @exception DOMException
+     *   INVALID_CHARACTER_ERR: Raised if the specified name contains an
+     *   illegal character.
+     * @since DOM Level 1
+     */
+    virtual DOMElement     *createElement(const XMLCh *tagName) = 0;
+
+    /**
+     * Creates an empty <code>DOMDocumentFragment</code> object.
+     * @return A new <code>DOMDocumentFragment</code>.
+     * @since DOM Level 1
+     */
+    virtual DOMDocumentFragment   *createDocumentFragment() = 0;
+
+    /**
+     * Creates a <code>DOMText</code> node given the specified string.
+     * @param data The data for the node.
+     * @return The new <code>DOMText</code> object.
+     * @since DOM Level 1
+     */
+    virtual DOMText         *createTextNode(const XMLCh *data) = 0;
+
+    /**
+     * Creates a <code>DOMComment</code> node given the specified string.
+     * @param data The data for the node.
+     * @return The new <code>DOMComment</code> object.
+     * @since DOM Level 1
+     */
+    virtual DOMComment      *createComment(const XMLCh *data) = 0;
+
+    /**
+     * Creates a <code>DOMCDATASection</code> node whose value is the specified
+     * string.
+     * @param data The data for the <code>DOMCDATASection</code> contents.
+     * @return The new <code>DOMCDATASection</code> object.
+     * @since DOM Level 1
+     */
+    virtual DOMCDATASection   *createCDATASection(const XMLCh *data) = 0;
+
+    /**
+     * Creates a <code>DOMProcessingInstruction</code> node given the specified
+     * name and data strings.
+     * @param target The target part of the processing instruction.
+     * @param data The data for the node.
+     * @return The new <code>DOMProcessingInstruction</code> object.
+     * @exception DOMException
+     *   INVALID_CHARACTER_ERR: Raised if the specified target contains an
+     *   illegal character.
+     * @since DOM Level 1
+     */
+    virtual DOMProcessingInstruction *createProcessingInstruction(const XMLCh *target,
+        const XMLCh *data) = 0;
+
+
+    /**
+     * Creates an <code>DOMAttr</code> of the given name. Note that the
+     * <code>DOMAttr</code> instance can then be set on an <code>DOMElement</code>
+     * using the <code>setAttributeNode</code> method.
+     * <br>To create an attribute with a qualified name and namespace URI, use
+     * the <code>createAttributeNS</code> method.
+     * @param name The name of the attribute.
+     * @return A new <code>DOMAttr</code> object with the <code>nodeName</code>
+     *   attribute set to <code>name</code>, and <code>localName</code>,
+     *   <code>prefix</code>, and <code>namespaceURI</code> set to
+     *   <code>null</code>. The value of the attribute is the empty string.
+     * @exception DOMException
+     *   INVALID_CHARACTER_ERR: Raised if the specified name contains an
+     *   illegal character.
+     * @since DOM Level 1
+     */
+    virtual DOMAttr     *createAttribute(const XMLCh *name) = 0;
+
+
+    /**
+     * Creates an <code>DOMEntityReference</code> object. In addition, if the
+     * referenced entity is known, the child list of the
+     * <code>DOMEntityReference</code> node is made the same as that of the
+     * corresponding <code>DOMEntity</code> node.If any descendant of the
+     * <code>DOMEntity</code> node has an unbound namespace prefix, the
+     * corresponding descendant of the created <code>DOMEntityReference</code>
+     * node is also unbound; (its <code>namespaceURI</code> is
+     * <code>null</code>). The DOM Level 2 does not support any mechanism to
+     * resolve namespace prefixes.
+     * @param name The name of the entity to reference.
+     * @return The new <code>DOMEntityReference</code> object.
+     * @exception DOMException
+     *   INVALID_CHARACTER_ERR: Raised if the specified name contains an
+     *   illegal character.
+     * @since DOM Level 1
+     */
+    virtual DOMEntityReference    *createEntityReference(const XMLCh *name) = 0;
+
+    /**
+     * The Document Type Declaration (see <code>DOMDocumentType</code>)
+     * associated with this document. For XML
+     * documents without a document type declaration this returns
+     * <code>null</code>. The DOM Level 2 does not support editing the
+     * Document Type Declaration. <code>docType</code> cannot be altered in
+     * any way, including through the use of methods inherited from the
+     * <code>DOMNode</code> interface, such as <code>insertNode</code> or
+     * <code>removeNode</code>.
+     * @since DOM Level 1
+     */
+    virtual DOMDocumentType       *getDoctype() const = 0;
+
+    /**
+     * The <code>DOMImplementation</code> object that handles this document. A
+     * DOM application may use objects from multiple implementations.
+     * @since DOM Level 1
+     */
+    virtual DOMImplementation  *getImplementation() const = 0;
+
+    /**
+     * This is a convenience attribute that allows direct access to the child
+     * node that is the root element of the document.
+     * @since DOM Level 1
+     */
+    virtual DOMElement     *getDocumentElement() const = 0;
+
+    /**
+     * Returns a <code>DOMNodeList</code> of all the <code>DOMElement(s)</code> with a
+     * given tag name in the order in which they are encountered in a
+     * preorder traversal of the <code>DOMDocument</code> tree.
+     *
+     * The returned node list is "live", in that changes
+     * to the document tree made after a nodelist was initially
+     * returned will be immediately reflected in the node list.
+     * @param tagname The name of the tag to match on. The special value "*"
+     *   matches all tags.
+     * @return A new <code>DOMNodeList</code> object containing all the matched
+     *   <code>DOMElement(s)</code>.
+     * @since DOM Level 1
+     */
+    virtual DOMNodeList      *getElementsByTagName(const XMLCh *tagname) const = 0;
+
+    //@}
+
+    /** @name Functions introduced in DOM Level 2. */
+    //@{
+
+    /**
+     * Imports a node from another document to this document. The returned
+     * node has no parent; (<code>parentNode</code> is <code>null</code>).
+     * The source node is not altered or removed from the original document;
+     * this method creates a new copy of the source node.
+     * <br>For all nodes, importing a node creates a node object owned by the
+     * importing document, with attribute values identical to the source
+     * node's <code>nodeName</code> and <code>nodeType</code>, plus the
+     * attributes related to namespaces (<code>prefix</code>,
+     * <code>localName</code>, and <code>namespaceURI</code>). As in the
+     * <code>cloneNode</code> operation on a <code>DOMNode</code>, the source
+     * node is not altered.
+     * <br>Additional information is copied as appropriate to the
+     * <code>nodeType</code>, attempting to mirror the behavior expected if
+     * a fragment of XML source was copied from one document to
+     * another, recognizing that the two documents may have different DTDs
+     * in the XML case. The following list describes the specifics for each
+     * type of node.
+     * <dl>
+     * <dt>ATTRIBUTE_NODE</dt>
+     * <dd>The <code>ownerElement</code> attribute
+     * is set to <code>null</code> and the <code>specified</code> flag is
+     * set to <code>true</code> on the generated <code>DOMAttr</code>. The
+     * descendants of the source <code>DOMAttr</code> are recursively imported
+     * and the resulting nodes reassembled to form the corresponding subtree.
+     * Note that the <code>deep</code> parameter has no effect on
+     * <code>DOMAttr</code> nodes; they always carry their children with them
+     * when imported.</dd>
+     * <dt>DOCUMENT_FRAGMENT_NODE</dt>
+     * <dd>If the <code>deep</code> option
+     * was set to <code>true</code>, the descendants of the source element
+     * are recursively imported and the resulting nodes reassembled to form
+     * the corresponding subtree. Otherwise, this simply generates an empty
+     * <code>DOMDocumentFragment</code>.</dd>
+     * <dt>DOCUMENT_NODE</dt>
+     * <dd><code>DOMDocument</code>
+     * nodes cannot be imported.</dd>
+     * <dt>DOCUMENT_TYPE_NODE</dt>
+     * <dd><code>DOMDocumentType</code>
+     * nodes cannot be imported.</dd>
+     * <dt>ELEMENT_NODE</dt>
+     * <dd>Specified attribute nodes of the
+     * source element are imported, and the generated <code>DOMAttr</code>
+     * nodes are attached to the generated <code>DOMElement</code>. Default
+     * attributes are not copied, though if the document being imported into
+     * defines default attributes for this element name, those are assigned.
+     * If the <code>importNode</code> <code>deep</code> parameter was set to
+     * <code>true</code>, the descendants of the source element are
+     * recursively imported and the resulting nodes reassembled to form the
+     * corresponding subtree.</dd>
+     * <dt>ENTITY_NODE</dt>
+     * <dd><code>DOMEntity</code> nodes can be
+     * imported, however in the current release of the DOM the
+     * <code>DOMDocumentType</code> is readonly. Ability to add these imported
+     * nodes to a <code>DOMDocumentType</code> will be considered for addition
+     * to a future release of the DOM.On import, the <code>publicId</code>,
+     * <code>systemId</code>, and <code>notationName</code> attributes are
+     * copied. If a <code>deep</code> import is requested, the descendants
+     * of the the source <code>DOMEntity</code> are recursively imported and
+     * the resulting nodes reassembled to form the corresponding subtree.</dd>
+     * <dt>
+     * ENTITY_REFERENCE_NODE</dt>
+     * <dd>Only the <code>DOMEntityReference</code> itself is
+     * copied, even if a <code>deep</code> import is requested, since the
+     * source and destination documents might have defined the entity
+     * differently. If the document being imported into provides a
+     * definition for this entity name, its value is assigned.</dd>
+     * <dt>NOTATION_NODE</dt>
+     * <dd>
+     * <code>DOMNotation</code> nodes can be imported, however in the current
+     * release of the DOM the <code>DOMDocumentType</code> is readonly. Ability
+     * to add these imported nodes to a <code>DOMDocumentType</code> will be
+     * considered for addition to a future release of the DOM.On import, the
+     * <code>publicId</code> and <code>systemId</code> attributes are copied.
+     * Note that the <code>deep</code> parameter has no effect on
+     * <code>DOMNotation</code> nodes since they never have any children.</dd>
+     * <dt>
+     * PROCESSING_INSTRUCTION_NODE</dt>
+     * <dd>The imported node copies its
+     * <code>target</code> and <code>data</code> values from those of the
+     * source node.</dd>
+     * <dt>TEXT_NODE, CDATA_SECTION_NODE, COMMENT_NODE</dt>
+     * <dd>These three
+     * types of nodes inheriting from <code>DOMCharacterData</code> copy their
+     * <code>data</code> and <code>length</code> attributes from those of
+     * the source node.</dd>
+     * </dl>
+     * @param importedNode The node to import.
+     * @param deep If <code>true</code>, recursively import the subtree under
+     *   the specified node; if <code>false</code>, import only the node
+     *   itself, as explained above. This has no effect on <code>DOMAttr</code>
+     *   , <code>DOMEntityReference</code>, and <code>DOMNotation</code> nodes.
+     * @return The imported node that belongs to this <code>DOMDocument</code>.
+     * @exception DOMException
+     *   NOT_SUPPORTED_ERR: Raised if the type of node being imported is not
+     *   supported.
+     * @since DOM Level 2
+     */
+    virtual DOMNode        *importNode(DOMNode *importedNode, bool deep) = 0;
+
+    /**
+     * Creates an element of the given qualified name and namespace URI.
+     * @param namespaceURI The namespace URI of the element to create.
+     * @param qualifiedName The qualified name of the element type to
+     *   instantiate.
+     * @return A new <code>DOMElement</code> object with the following
+     *   attributes:
+     * <table border='1'>
+     * <tr>
+     * <td valign='top' rowspan='1' colspan='1'><code>Attribute</code></td>
+     * <td valign='top' rowspan='1' colspan='1'>
+     *   <code>Value</code></td>
+     * </tr>
+     * <tr>
+     * <td valign='top' rowspan='1' colspan='1'><code>DOMNode.nodeName</code></td>
+     * <td valign='top' rowspan='1' colspan='1'>
+     *   <code>qualifiedName</code></td>
+     * </tr>
+     * <tr>
+     * <td valign='top' rowspan='1' colspan='1'><code>DOMNode.namespaceURI</code></td>
+     * <td valign='top' rowspan='1' colspan='1'>
+     *   <code>namespaceURI</code></td>
+     * </tr>
+     * <tr>
+     * <td valign='top' rowspan='1' colspan='1'><code>DOMNode.prefix</code></td>
+     * <td valign='top' rowspan='1' colspan='1'>prefix, extracted
+     *   from <code>qualifiedName</code>, or <code>null</code> if there is
+     *   no prefix</td>
+     * </tr>
+     * <tr>
+     * <td valign='top' rowspan='1' colspan='1'><code>DOMNode.localName</code></td>
+     * <td valign='top' rowspan='1' colspan='1'>local name, extracted from
+     *   <code>qualifiedName</code></td>
+     * </tr>
+     * <tr>
+     * <td valign='top' rowspan='1' colspan='1'><code>DOMElement.tagName</code></td>
+     * <td valign='top' rowspan='1' colspan='1'>
+     *   <code>qualifiedName</code></td>
+     * </tr>
+     * </table>
+     * @exception DOMException
+     *   INVALID_CHARACTER_ERR: Raised if the specified qualified name
+     *   contains an illegal character, per the XML 1.0 specification .
+     *   <br>NAMESPACE_ERR: Raised if the <code>qualifiedName</code> is
+     *   malformed per the Namespaces in XML specification, if the
+     *   <code>qualifiedName</code> has a prefix and the
+     *   <code>namespaceURI</code> is <code>null</code>, or if the
+     *   <code>qualifiedName</code> has a prefix that is "xml" and the
+     *   <code>namespaceURI</code> is different from "
+     *   http://www.w3.org/XML/1998/namespace" .
+     *   <br>NOT_SUPPORTED_ERR: Always thrown if the current document does not
+     *   support the <code>"XML"</code> feature, since namespaces were
+     *   defined by XML.
+     * @since DOM Level 2
+     */
+    virtual DOMElement         *createElementNS(const XMLCh *namespaceURI,
+	                                              const XMLCh *qualifiedName) = 0;
+
+    /**
+     * Creates an attribute of the given qualified name and namespace URI.
+     * @param namespaceURI The namespace URI of the attribute to create.
+     * @param qualifiedName The qualified name of the attribute to
+     *   instantiate.
+     * @return A new <code>DOMAttr</code> object with the following attributes:
+     * <table border='1'>
+     * <tr>
+     * <td valign='top' rowspan='1' colspan='1'><code>Attribute</code></td>
+     * <td valign='top' rowspan='1' colspan='1'>
+     *   <code>Value</code></td>
+     * </tr>
+     * <tr>
+     * <td valign='top' rowspan='1' colspan='1'><code>DOMNode.nodeName</code></td>
+     * <td valign='top' rowspan='1' colspan='1'>qualifiedName</td>
+     * </tr>
+     * <tr>
+     * <td valign='top' rowspan='1' colspan='1'>
+     *   <code>DOMNode.namespaceURI</code></td>
+     * <td valign='top' rowspan='1' colspan='1'><code>namespaceURI</code></td>
+     * </tr>
+     * <tr>
+     * <td valign='top' rowspan='1' colspan='1'>
+     *   <code>DOMNode.prefix</code></td>
+     * <td valign='top' rowspan='1' colspan='1'>prefix, extracted from
+     *   <code>qualifiedName</code>, or <code>null</code> if there is no
+     *   prefix</td>
+     * </tr>
+     * <tr>
+     * <td valign='top' rowspan='1' colspan='1'><code>DOMNode.localName</code></td>
+     * <td valign='top' rowspan='1' colspan='1'>local name, extracted from
+     *   <code>qualifiedName</code></td>
+     * </tr>
+     * <tr>
+     * <td valign='top' rowspan='1' colspan='1'><code>DOMAttr.name</code></td>
+     * <td valign='top' rowspan='1' colspan='1'>
+     *   <code>qualifiedName</code></td>
+     * </tr>
+     * <tr>
+     * <td valign='top' rowspan='1' colspan='1'><code>DOMNode.nodeValue</code></td>
+     * <td valign='top' rowspan='1' colspan='1'>the empty
+     *   string</td>
+     * </tr>
+     * </table>
+     * @exception DOMException
+     *   INVALID_CHARACTER_ERR: Raised if the specified qualified name
+     *   contains an illegal character, per the XML 1.0 specification .
+     *   <br>NAMESPACE_ERR: Raised if the <code>qualifiedName</code> is
+     *   malformed per the Namespaces in XML specification, if the
+     *   <code>qualifiedName</code> has a prefix and the
+     *   <code>namespaceURI</code> is <code>null</code>, if the
+     *   <code>qualifiedName</code> has a prefix that is "xml" and the
+     *   <code>namespaceURI</code> is different from "
+     *   http://www.w3.org/XML/1998/namespace", or if the
+     *   <code>qualifiedName</code>, or its prefix, is "xmlns" and the
+     *   <code>namespaceURI</code> is different from "
+     *   http://www.w3.org/2000/xmlns/".
+     *   <br>NOT_SUPPORTED_ERR: Always thrown if the current document does not
+     *   support the <code>"XML"</code> feature, since namespaces were
+     *   defined by XML.
+     * @since DOM Level 2
+     */
+    virtual DOMAttr        *createAttributeNS(const XMLCh *namespaceURI,
+	                                            const XMLCh *qualifiedName) = 0;
+
+    /**
+     * Returns a <code>DOMNodeList</code> of all the <code>DOMElement(s)</code> with a
+     * given local name and namespace URI in the order in which they are
+     * encountered in a preorder traversal of the <code>DOMDocument</code> tree.
+     * @param namespaceURI The namespace URI of the elements to match on. The
+     *   special value "*" matches all namespaces.
+     * @param localName The local name of the elements to match on. The
+     *   special value "*" matches all local names.
+     * @return A new <code>DOMNodeList</code> object containing all the matched
+     *   <code>DOMElement(s)</code>.
+     * @since DOM Level 2
+     */
+    virtual DOMNodeList        *getElementsByTagNameNS(const XMLCh *namespaceURI,
+	                                                     const XMLCh *localName) const = 0;
+
+    /**
+     * Returns the <code>DOMElement</code> whose <code>ID</code> is given by
+     * <code>elementId</code>. If no such element exists, returns
+     * <code>null</code>. Behavior is not defined if more than one element
+     * has this <code>ID</code>. The DOM implementation must have
+     * information that says which attributes are of type ID. Attributes
+     * with the name "ID" are not of type ID unless so defined.
+     * Implementations that do not know whether attributes are of type ID or
+     * not are expected to return <code>null</code>.
+     * @param elementId The unique <code>id</code> value for an element.
+     * @return The matching element.
+     * @since DOM Level 2
+     */
+    virtual  DOMElement        * getElementById(const XMLCh *elementId) const = 0;
+    //@}
+
+    /** @name Functions introduced in DOM Level 3. */
+    //@{
+
+    /**
+     * An attribute specifying the actual encoding of this document. This is
+     * <code>null</code> otherwise.
+     * <br> This attribute represents the property [character encoding scheme]
+     * defined in.
+     *
+     * <p><b>"Experimental - subject to change"</b></p>
+     *
+     * @since DOM Level 3
+     */
+    virtual const XMLCh*           getActualEncoding() const = 0;
+
+    /**
+     * An attribute specifying the actual encoding of this document. This is
+     * <code>null</code> otherwise.
+     * <br> This attribute represents the property [character encoding scheme]
+     * defined in .
+     *
+     * <p><b>"Experimental - subject to change"</b></p>
+     *
+     * @since DOM Level 3
+     */
+    virtual void                   setActualEncoding(const XMLCh* actualEncoding) = 0;
+
+    /**
+     * An attribute specifying, as part of the XML declaration, the encoding
+     * of this document. This is <code>null</code> when unspecified.
+     *
+     * <p><b>"Experimental - subject to change"</b></p>
+     *
+     * @since DOM Level 3
+     */
+    virtual const XMLCh*           getEncoding() const = 0;
+
+    /**
+     * An attribute specifying, as part of the XML declaration, the encoding
+     * of this document. This is <code>null</code> when unspecified.
+     *
+     * <p><b>"Experimental - subject to change"</b></p>
+     *
+     * @since DOM Level 3
+     */
+    virtual void                   setEncoding(const XMLCh* encoding) = 0;
+
+    /**
+     * An attribute specifying, as part of the XML declaration, whether this
+     * document is standalone.
+     * <br> This attribute represents the property [standalone] defined in .
+     *
+     * <p><b>"Experimental - subject to change"</b></p>
+     *
+     * @since DOM Level 3
+     */
+    virtual bool                   getStandalone() const = 0;
+
+    /**
+     * An attribute specifying, as part of the XML declaration, whether this
+     * document is standalone.
+     * <br> This attribute represents the property [standalone] defined in .
+     *
+     * <p><b>"Experimental - subject to change"</b></p>
+     *
+     * @since DOM Level 3
+     */
+    virtual void                   setStandalone(bool standalone) = 0;
+
+    /**
+     * An attribute specifying, as part of the XML declaration, the version
+     * number of this document. This is <code>null</code> when unspecified.
+     * <br> This attribute represents the property [version] defined in .
+     *
+     * <p><b>"Experimental - subject to change"</b></p>
+     *
+     * @since DOM Level 3
+     */
+    virtual const XMLCh*           getVersion() const = 0;
+
+    /**
+     * An attribute specifying, as part of the XML declaration, the version
+     * number of this document. This is <code>null</code> when unspecified.
+     * <br> This attribute represents the property [version] defined in .
+     *
+     * <p><b>"Experimental - subject to change"</b></p>
+     *
+     * @since DOM Level 3
+     */
+    virtual void                   setVersion(const XMLCh* version) = 0;
+
+    /**
+     * The location of the document or <code>null</code> if undefined.
+     * <br>Beware that when the <code>DOMDocument</code> supports the feature
+     * "HTML" , the href attribute of the HTML BASE element takes precedence
+     * over this attribute.
+     *
+     * <p><b>"Experimental - subject to change"</b></p>
+     *
+     * @since DOM Level 3
+     */
+    virtual const XMLCh*           getDocumentURI() const = 0;
+    /**
+     * The location of the document or <code>null</code> if undefined.
+     * <br>Beware that when the <code>DOMDocument</code> supports the feature
+     * "HTML" , the href attribute of the HTML BASE element takes precedence
+     * over this attribute.
+     *
+     * <p><b>"Experimental - subject to change"</b></p>
+     *
+     * @since DOM Level 3
+     */
+    virtual void                   setDocumentURI(const XMLCh* documentURI) = 0;
+
+    /**
+     * An attribute specifying whether errors checking is enforced or not.
+     * When set to <code>false</code>, the implementation is free to not
+     * test every possible error case normally defined on DOM operations,
+     * and not raise any <code>DOMException</code>. In case of error, the
+     * behavior is undefined. This attribute is <code>true</code> by
+     * defaults.
+     *
+     * <p><b>"Experimental - subject to change"</b></p>
+     *
+     * @since DOM Level 3
+     */
+    virtual bool                   getStrictErrorChecking() const = 0;
+    /**
+     * An attribute specifying whether errors checking is enforced or not.
+     * When set to <code>false</code>, the implementation is free to not
+     * test every possible error case normally defined on DOM operations,
+     * and not raise any <code>DOMException</code>. In case of error, the
+     * behavior is undefined. This attribute is <code>true</code> by
+     * defaults.
+     *
+     * <p><b>"Experimental - subject to change"</b></p>
+     *
+     * @since DOM Level 3
+     */
+    virtual void                   setStrictErrorChecking(bool strictErrorChecking) = 0;
+
+    /**
+     * Rename an existing node. When possible this simply changes the name of
+     * the given node, otherwise this creates a new node with the specified
+     * name and replaces the existing node with the new node as described
+     * below. This only applies to nodes of type <code>ELEMENT_NODE</code>
+     * and <code>ATTRIBUTE_NODE</code>.
+     * <br>When a new node is created, the following operations are performed:
+     * the new node is created, any registered event listener is registered
+     * on the new node, any user data attached to the old node is removed
+     * from that node, the old node is removed from its parent if it has
+     * one, the children are moved to the new node, if the renamed node is
+     * an <code>DOMElement</code> its attributes are moved to the new node, the
+     * new node is inserted at the position the old node used to have in its
+     * parent's child nodes list if it has one, the user data that was
+     * attached to the old node is attach to the new node, the user data
+     * event <code>NODE_RENAMED</code> is fired.
+     * <br>When the node being renamed is an <code>DOMAttr</code> that is
+     * attached to an <code>DOMElement</code>, the node is first removed from
+     * the <code>DOMElement</code> attributes map. Then, once renamed, either
+     * by modifying the existing node or creating a new one as described
+     * above, it is put back.
+     *
+     * <p><b>"Experimental - subject to change"</b></p>
+     *
+     * @param n The node to rename.
+     * @param namespaceURI The new namespaceURI.
+     * @param name The new qualified name.
+     * @return The renamed node. This is either the specified node or the new
+     *   node that was created to replace the specified node.
+     * @exception DOMException
+     *   NOT_SUPPORTED_ERR: Raised when the type of the specified node is
+     *   neither <code>ELEMENT_NODE</code> nor <code>ATTRIBUTE_NODE</code>.
+     *   <br>WRONG_DOCUMENT_ERR: Raised when the specified node was created
+     *   from a different document than this document.
+     *   <br>NAMESPACE_ERR: Raised if the <code>qualifiedName</code> is
+     *   malformed per the Namespaces in XML specification, if the
+     *   <code>qualifiedName</code> has a prefix and the
+     *   <code>namespaceURI</code> is <code>null</code>, or if the
+     *   <code>qualifiedName</code> has a prefix that is "xml" and the
+     *   <code>namespaceURI</code> is different from "
+     *   http://www.w3.org/XML/1998/namespace" . Also raised, when the node
+     *   being renamed is an attribute, if the <code>qualifiedName</code>,
+     *   or its prefix, is "xmlns" and the <code>namespaceURI</code> is
+     *   different from "http://www.w3.org/2000/xmlns/".
+     * @since DOM Level 3
+     */
+    virtual DOMNode* renameNode(DOMNode* n, const XMLCh* namespaceURI, const XMLCh* name) = 0;
+
+
+    /**
+     * Changes the <code>ownerDocument</code> of a node, its children, as well
+     * as the attached attribute nodes if there are any. If the node has a
+     * parent it is first removed from its parent child list. This
+     * effectively allows moving a subtree from one document to another. The
+     * following list describes the specifics for each type of node.
+     *
+     * <p><b>"Experimental - subject to change"</b></p>
+     *
+     * <dl>
+     * <dt>
+     * ATTRIBUTE_NODE</dt>
+     * <dd>The <code>ownerElement</code> attribute is set to
+     * <code>null</code> and the <code>specified</code> flag is set to
+     * <code>true</code> on the adopted <code>DOMAttr</code>. The descendants
+     * of the source <code>DOMAttr</code> are recursively adopted.</dd>
+     * <dt>
+     * DOCUMENT_FRAGMENT_NODE</dt>
+     * <dd>The descendants of the source node are
+     * recursively adopted.</dd>
+     * <dt>DOCUMENT_NODE</dt>
+     * <dd><code>DOMDocument</code> nodes cannot
+     * be adopted.</dd>
+     * <dt>DOCUMENT_TYPE_NODE</dt>
+     * <dd><code>DOMDocumentType</code> nodes cannot
+     * be adopted.</dd>
+     * <dt>ELEMENT_NODE</dt>
+     * <dd>Specified attribute nodes of the source
+     * element are adopted, and the generated <code>DOMAttr</code> nodes.
+     * Default attributes are discarded, though if the document being
+     * adopted into defines default attributes for this element name, those
+     * are assigned. The descendants of the source element are recursively
+     * adopted.</dd>
+     * <dt>ENTITY_NODE</dt>
+     * <dd><code>DOMEntity</code> nodes cannot be adopted.</dd>
+     * <dt>
+     * ENTITY_REFERENCE_NODE</dt>
+     * <dd>Only the <code>DOMEntityReference</code> node
+     * itself is adopted, the descendants are discarded, since the source
+     * and destination documents might have defined the entity differently.
+     * If the document being imported into provides a definition for this
+     * entity name, its value is assigned.</dd>
+     * <dt>NOTATION_NODE</dt>
+     * <dd><code>DOMNotation</code>
+     * nodes cannot be adopted.</dd>
+     * <dt>PROCESSING_INSTRUCTION_NODE, TEXT_NODE,
+     * CDATA_SECTION_NODE, COMMENT_NODE</dt>
+     * <dd>These nodes can all be adopted. No
+     * specifics.</dd>
+     * </dl>
+     * @param source The node to move into this document.
+     * @return The adopted node, or <code>null</code> if this operation
+     *   fails, such as when the source node comes from a different
+     *   implementation.
+     * @exception DOMException
+     *   NOT_SUPPORTED_ERR: Raised if the source node is of type
+     *   <code>DOCUMENT</code>, <code>DOCUMENT_TYPE</code>.
+     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised when the source node is
+     *   readonly.
+     * @since DOM Level 3
+     */
+    virtual DOMNode*               adoptNode(DOMNode* source) = 0;
+
+    /**
+     * This method acts as if the document was going through a save and load
+     * cycle, putting the document in a "normal" form. The actual result
+     * depends on the features being set. See <code>DOMConfiguration</code> for 
+     * details.
+     *
+     * <p><b>"Experimental - subject to change"</b></p>
+     *
+     * <br>Noticeably this method normalizes <code>DOMText</code> nodes, makes
+     * the document "namespace wellformed", according to the algorithm
+     * described below in pseudo code, by adding missing namespace
+     * declaration attributes and adding or changing namespace prefixes,
+     * updates the replacement tree of <code>DOMEntityReference</code> nodes,
+     * normalizes attribute values, etc.
+     * <br>Mutation events, when supported, are generated to reflect the
+     * changes occuring on the document.
+     * Note that this is a partial implementation. Not all the required features are implemented.
+     * Currently <code>DOMAttr</code> and <code>DOMText</code> nodes are normalized. 
+     * Features to remove <code>DOMComment</code> and <code>DOMCDATASection</code> work.
+     * The feature to normalize namespaces is implemented. This feature is called 
+     * "namespaces" and is incorectly documented in the current WD.
+     * @since DOM Level 3 
+     *
+     */
+    virtual void                   normalizeDocument() = 0;
+
+
+    /**
+     * The configuration used when Document.normalizeDocument is invoked.
+     * 
+     * @return The <code>DOMConfiguration</code> from this <code>DOMDocument</code>
+     *
+     * Note that this is a partial implementation. Not all the required features are 
+     * implemented and this is only used by normalizeDocument.
+     * Currently <code>DOMAttr</code> and <code>DOMText</code> nodes are normalized. 
+     * Features to remove <code>DOMComment</code> and <code>DOMCDATASection</code> work.
+     * The feature to normalize namespaces is implemented. This feature is called 
+     * "namespaces" and is incorectly documented in the current WD.
+     *
+     * <p><b>"Experimental - subject to change"</b></p>
+     * @since DOM Level 3
+     */
+    virtual DOMConfiguration*      getDOMConfiguration() const = 0;
+
+    //@}
+
+    // -----------------------------------------------------------------------
+    // Non-standard extension
+    // -----------------------------------------------------------------------
+    /** @name Non-standard extension */
+    //@{
+    /**
+     * Non-standard extension
+     *
+     * Create a new entity.
+     * @param name The name of the entity to instantiate
+     *
+     */
+    virtual DOMEntity     *createEntity(const XMLCh *name) = 0;
+
+    /**
+     * Non-standard extension
+     *
+     * Create a DOMDocumentType node.
+     * @return A <code>DOMDocumentType</code> that references the newly
+     *  created DOMDocumentType node.
+     *
+     */
+    virtual DOMDocumentType *createDocumentType(const XMLCh *name) = 0;
+
+    /***
+     * Provide default implementation to maintain source code compatibility
+     ***/
+    virtual DOMDocumentType* createDocumentType(const XMLCh *qName,
+                                                const XMLCh*,  //publicId,
+                                                const XMLCh*   //systemId
+                                               )
+    {
+        return createDocumentType(qName);
+    }
+
+    /**
+     * Non-standard extension.
+     *
+     * Create a Notation.
+     * @param name The name of the notation to instantiate
+     * @return A <code>DOMNotation</code> that references the newly
+     *  created DOMNotation node.
+     */
+    virtual DOMNotation *createNotation(const XMLCh *name) = 0;
+
+    /**
+     * Non-standard extension.
+     *
+     * Creates an element of the given qualified name and
+     * namespace URI, and also stores line/column number info.
+     * Used by internally XSDXercesDOMParser during schema traversal.
+     *
+     * @see createElementNS(const XMLCh *namespaceURI, const XMLCh *qualifiedName)
+     */
+    virtual DOMElement         *createElementNS(const XMLCh *namespaceURI,
+                                                  const XMLCh *qualifiedName,
+                                                  const XMLSSize_t lineNum,
+                                                  const XMLSSize_t columnNum) = 0;
+    //@}
+
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/DOMProcessingInstruction.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/DOMProcessingInstruction.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/DOMProcessingInstruction.hpp	(revision 2674)
@@ -0,0 +1,122 @@
+#ifndef DOMProcessingInstruction_HEADER_GUARD_
+#define DOMProcessingInstruction_HEADER_GUARD_
+
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: DOMProcessingInstruction.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#include <xercesc/util/XercesDefs.hpp>
+#include <xercesc/dom/DOMNode.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+
+/**
+ * The <code>DOMProcessingInstruction</code> interface represents a  "processing
+ * instruction", used in XML as a way to keep processor-specific information
+ * in the text of the document.
+ *
+ * @since DOM Level 1
+ */
+class  CDOM_EXPORT DOMProcessingInstruction: public DOMNode {
+protected:
+    // -----------------------------------------------------------------------
+    //  Hidden constructors
+    // -----------------------------------------------------------------------
+    /** @name Hidden constructors */
+    //@{    
+    DOMProcessingInstruction() {}
+    DOMProcessingInstruction(const DOMProcessingInstruction &other) : DOMNode(other) {}
+    //@}
+
+private:
+    // -----------------------------------------------------------------------
+    // Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    /** @name Unimplemented operators */
+    //@{
+    DOMProcessingInstruction & operator = (const DOMProcessingInstruction &);
+    //@}
+
+public:
+    // -----------------------------------------------------------------------
+    //  All constructors are hidden, just the destructor is available
+    // -----------------------------------------------------------------------
+    /** @name Destructor */
+    //@{
+    /**
+     * Destructor
+     *
+     */
+    virtual ~DOMProcessingInstruction() {};
+    //@}
+
+    // -----------------------------------------------------------------------
+    //  Virtual DOMProcessingInstruction interface
+    // -----------------------------------------------------------------------
+    /** @name Functions introduced in DOM Level 1 */
+    //@{
+    // -----------------------------------------------------------------------
+    //  Getter methods
+    // -----------------------------------------------------------------------
+    /**
+     * The target of this processing instruction.
+     *
+     * XML defines this as being the
+     * first token following the markup that begins the processing instruction.
+     *
+     * @since DOM Level 1
+     */
+    virtual const XMLCh *        getTarget() const = 0;
+
+    /**
+     * The content of this processing instruction.
+     *
+     * This is from the first non
+     * white space character after the target to the character immediately
+     * preceding the <code>?&gt;</code>.
+     * @exception DOMException
+     *   NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly.
+     * @since DOM Level 1
+     */
+    virtual const XMLCh *        getData() const = 0;
+
+    // -----------------------------------------------------------------------
+    //  Setter methods
+    // -----------------------------------------------------------------------
+    /**
+     * Sets the content of this processing instruction.
+     *
+     * This is from the first non
+     * white space character after the target to the character immediately
+     * preceding the <code>?&gt;</code>.
+     * @param data The string containing the processing instruction
+     * @since DOM Level 1
+     */
+    virtual void             setData(const XMLCh * data) = 0;
+    //@}
+
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
+
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/DOM.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/DOM.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/DOM.hpp	(revision 2674)
@@ -0,0 +1,83 @@
+#ifndef DOMHEADER_GUARD_HPP
+#define DOMHEADER_GUARD_HPP
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: DOM.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+//
+//  This is the primary header file for inclusion in application
+//  programs using the C++ XML Document Object Model API.
+//
+
+#include <xercesc/dom/DOMAttr.hpp>
+#include <xercesc/dom/DOMCDATASection.hpp>
+#include <xercesc/dom/DOMCharacterData.hpp>
+#include <xercesc/dom/DOMComment.hpp>
+#include <xercesc/dom/DOMDocument.hpp>
+#include <xercesc/dom/DOMDocumentFragment.hpp>
+#include <xercesc/dom/DOMDocumentType.hpp>
+#include <xercesc/dom/DOMElement.hpp>
+#include <xercesc/dom/DOMEntity.hpp>
+#include <xercesc/dom/DOMEntityReference.hpp>
+#include <xercesc/dom/DOMException.hpp>
+#include <xercesc/dom/DOMImplementation.hpp>
+#include <xercesc/dom/DOMNamedNodeMap.hpp>
+#include <xercesc/dom/DOMNode.hpp>
+#include <xercesc/dom/DOMNodeList.hpp>
+#include <xercesc/dom/DOMNotation.hpp>
+#include <xercesc/dom/DOMProcessingInstruction.hpp>
+#include <xercesc/dom/DOMText.hpp>
+
+// Introduced in DOM Level 2
+#include <xercesc/dom/DOMDocumentRange.hpp>
+#include <xercesc/dom/DOMDocumentTraversal.hpp>
+#include <xercesc/dom/DOMNodeFilter.hpp>
+#include <xercesc/dom/DOMNodeIterator.hpp>
+#include <xercesc/dom/DOMRange.hpp>
+#include <xercesc/dom/DOMRangeException.hpp>
+#include <xercesc/dom/DOMTreeWalker.hpp>
+
+// Introduced in DOM Level 3
+// Experimental - subject to change
+#include <xercesc/dom/DOMBuilder.hpp>
+#include <xercesc/dom/DOMConfiguration.hpp>
+#include <xercesc/dom/DOMEntityResolver.hpp>
+#include <xercesc/dom/DOMError.hpp>
+#include <xercesc/dom/DOMErrorHandler.hpp>
+#include <xercesc/dom/DOMImplementationLS.hpp>
+#include <xercesc/dom/DOMImplementationRegistry.hpp>
+#include <xercesc/dom/DOMImplementationSource.hpp>
+#include <xercesc/dom/DOMInputSource.hpp>
+#include <xercesc/dom/DOMLocator.hpp>
+#include <xercesc/dom/DOMTypeInfo.hpp>
+#include <xercesc/dom/DOMUserDataHandler.hpp>
+#include <xercesc/dom/DOMWriter.hpp>
+#include <xercesc/dom/DOMWriterFilter.hpp>
+
+#include <xercesc/dom/DOMXPathEvaluator.hpp>
+#include <xercesc/dom/DOMXPathNSResolver.hpp>
+#include <xercesc/dom/DOMXPathException.hpp>
+#include <xercesc/dom/DOMXPathExpression.hpp>
+#include <xercesc/dom/DOMXPathResult.hpp>
+#include <xercesc/dom/DOMXPathNamespace.hpp>
+
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/DOMInputSource.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/DOMInputSource.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/DOMInputSource.hpp	(revision 2674)
@@ -0,0 +1,280 @@
+#ifndef DOMInputSource_HEADER_GUARD_
+#define DOMInputSource_HEADER_GUARD_
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: DOMInputSource.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+#include <xercesc/util/XercesDefs.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+
+class BinInputStream;
+
+
+/**
+  * This interface represents a single input source for an XML entity.
+  *
+  * <p>This interface allows an application to encapsulate information about
+  * an input source in a single object, which may include a public identifier,
+  * a system identifier, a byte stream (possibly with a specified encoding),
+  * and/or a character stream.</p>
+  *
+  * <p>There are two places that the application will deliver this input source
+  * to the parser: as the argument to the parse method, or as the return value
+  * of the DOMEntityResolver.resolveEntity method.</p>
+  *
+  * <p>The DOMBuilder will use the DOMInputSource object to determine how to
+  * read XML input. If there is a character stream available, the parser will
+  * read that stream directly; if not, the parser will use a byte stream, if
+  * available; if neither a character stream nor a byte stream is available,
+  * the parser will attempt to open a URI connection to the resource identified
+  * by the system identifier.</p>
+  *
+  * <p>A DOMInputSource object belongs to the application: the parser shall
+  * never modify it in any way (it may modify a copy if necessary).</p>
+  *
+  * @see DOMBuilder#parse
+  * @see DOMEntityResolver#resolveEntity
+  * @since DOM Level 3
+  */
+class CDOM_EXPORT DOMInputSource
+{
+protected:
+    // -----------------------------------------------------------------------
+    //  Hidden constructors
+    // -----------------------------------------------------------------------
+    /** @name Hidden constructors */
+    //@{    
+    DOMInputSource() {};
+    //@}
+
+private:
+    // -----------------------------------------------------------------------
+    // Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    /** @name Unimplemented constructors and operators */
+    //@{
+    DOMInputSource(const DOMInputSource &);
+    DOMInputSource & operator = (const DOMInputSource &);
+    //@}
+
+public:
+    // -----------------------------------------------------------------------
+    //  All constructors are hidden, just the destructor is available
+    // -----------------------------------------------------------------------
+    /** @name Destructor */
+    //@{
+    /**
+     * Destructor
+     *
+     */
+    virtual ~DOMInputSource() {};
+    //@}
+
+    // -----------------------------------------------------------------------
+    //  Virtual DOMInputSource interface
+    // -----------------------------------------------------------------------
+    /** @name Functions introduced in DOM Level 3 */
+    //@{
+    // -----------------------------------------------------------------------
+    //  Getter methods
+    // -----------------------------------------------------------------------
+    /**
+     * An input source can be set to force the parser to assume a particular
+     * encoding for the data that input source reprsents, via the setEncoding()
+     * method. This method returns name of the encoding that is to be forced.
+     * If the encoding has never been forced, it returns a null pointer.
+     *
+     * <p><b>"Experimental - subject to change"</b></p>
+     *
+     * @return The forced encoding, or null if none was supplied.
+     * @see #setEncoding
+     * @since DOM Level 3
+     */
+    virtual const XMLCh* getEncoding() const = 0;
+
+
+    /**
+     * Get the public identifier for this input source.
+     *
+     * <p><b>"Experimental - subject to change"</b></p>
+     *
+     * @return The public identifier, or null if none was supplied.
+     * @see #setPublicId
+     * @since DOM Level 3
+     */
+    virtual const XMLCh* getPublicId() const = 0;
+
+
+    /**
+     * Get the system identifier for this input source.
+     *
+     * <p><b>"Experimental - subject to change"</b></p>
+     *
+     * <p>If the system ID is a URL, it will be fully resolved.</p>
+     *
+     * @return The system identifier.
+     * @see #setSystemId
+     * @since DOM Level 3
+     */
+    virtual const XMLCh* getSystemId() const = 0;
+
+
+    /**
+     * Get the base URI to be used for resolving relative URIs to absolute
+     * URIs. If the baseURI is itself a relative URI, the behavior is
+     * implementation dependent.
+     *
+     * <p><b>"Experimental - subject to change"</b></p>
+     *
+     * @return The base URI.
+     * @see #setBaseURI
+     * @since DOM Level 3
+     */
+    virtual const XMLCh* getBaseURI() const = 0;
+
+    // -----------------------------------------------------------------------
+    //  Setter methods
+    // -----------------------------------------------------------------------
+    /**
+     * Set the encoding which will be required for use with the XML text read
+     * via a stream opened by this input source.
+     *
+     * <p>This is usually not set, allowing the encoding to be sensed in the
+     * usual XML way. However, in some cases, the encoding in the file is known
+     * to be incorrect because of intermediate transcoding, for instance
+     * encapsulation within a MIME document.
+     *
+     * <p><b>"Experimental - subject to change"</b></p>
+     *
+     * @param encodingStr The name of the encoding to force.
+     * @since DOM Level 3
+     */
+    virtual void setEncoding(const XMLCh* const encodingStr) = 0;
+
+
+    /**
+     * Set the public identifier for this input source.
+     *
+     * <p>The public identifier is always optional: if the application writer
+     * includes one, it will be provided as part of the location information.</p>
+     *
+     * <p><b>"Experimental - subject to change"</b></p>
+     *
+     * @param publicId The public identifier as a string.
+     * @see #getPublicId
+     * @since DOM Level 3
+     */
+    virtual void setPublicId(const XMLCh* const publicId) = 0;
+
+    /**
+     * Set the system identifier for this input source.
+     *
+     * <p>The system id is always required. The public id may be used to map
+     * to another system id, but the system id must always be present as a fall
+     * back.</p>
+     *
+     * <p>If the system ID is a URL, it must be fully resolved.</p>
+     *
+     * <p><b>"Experimental - subject to change"</b></p>
+     *
+     * @param systemId The system identifier as a string.
+     * @see #getSystemId
+     * @since DOM Level 3
+     */
+    virtual void setSystemId(const XMLCh* const systemId) = 0;
+
+    /**
+     * Set the base URI to be used for resolving relative URIs to absolute
+     * URIs. If the baseURI is itself a relative URI, the behavior is
+     * implementation dependent.
+     *
+     * <p><b>"Experimental - subject to change"</b></p>
+     *
+     * @param baseURI The base URI.
+     * @see #getBaseURI
+     * @since DOM Level 3
+     */
+    virtual void setBaseURI(const XMLCh* const baseURI) = 0;
+    //@}
+
+    // -----------------------------------------------------------------------
+    //  Non-standard Extension
+    // -----------------------------------------------------------------------
+    /** @name Non-standard Extension */
+    //@{
+
+    /**
+     * Makes the byte stream for this input source.
+     *
+     * <p>The derived class must create and return a binary input stream of an
+     * appropriate type for its kind of data source. The returned stream must
+     * be dynamically allocated and becomes the parser's property.
+     * </p>
+     *
+     * <p><b>"Experimental - subject to change"</b></p>
+     *
+     * @see BinInputStream
+     */
+    virtual BinInputStream* makeStream() const = 0;
+
+    /**
+     * Indicates if the parser should issue fatal error if this input source
+     * is not found.  If set to false, the parser issue warning message instead.
+     *
+     * <p><b>"Experimental - subject to change"</b></p>
+     *
+     * @param  flag True if the parser should issue fatal error if this input source is not found.
+     *               If set to false, the parser issue warning message instead.  (Default: true)
+     *
+     * @see #getIssueFatalErrorIfNotFound
+     */
+    virtual void setIssueFatalErrorIfNotFound(const bool flag) = 0;
+
+
+    /**
+     * Get the flag that indicates if the parser should issue fatal error if this input source
+     * is not found.
+     *
+     * <p><b>"Experimental - subject to change"</b></p>
+     *
+     * @return True if the parser should issue fatal error if this input source is not found.
+     *         False if the parser issue warning message instead.
+     * @see #setIssueFatalErrorIfNotFound
+     */
+    virtual bool getIssueFatalErrorIfNotFound() const = 0;
+
+    /**
+     * Called to indicate that this DOMInputSource is no longer in use
+     * and that the implementation may relinquish any resources associated with it.
+     *
+     * Access to a released object will lead to unexpected result.
+     */
+    virtual void              release() = 0;
+    //@}
+};
+
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/DOMNodeList.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/DOMNodeList.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/DOMNodeList.hpp	(revision 2674)
@@ -0,0 +1,114 @@
+#ifndef DOMNodeList_HEADER_GUARD_
+#define DOMNodeList_HEADER_GUARD_
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: DOMNodeList.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#include <xercesc/util/XercesDefs.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+
+class DOMNode;
+
+
+/**
+ * The <code>DOMNodeList</code> interface provides the abstraction of an ordered
+ * collection of nodes.  DOMNodeLists are created by DOMDocument::getElementsByTagName(),
+ * DOMNode::getChildNodes(),
+ *
+ * <p>The items in the <code>DOMNodeList</code> are accessible via an integral
+ * index, starting from 0.
+ *
+ * DOMNodeLists are "live", in that any changes to the document tree are immediately
+ * reflected in any DOMNodeLists that may have been created for that tree.
+ */
+
+class  CDOM_EXPORT DOMNodeList {
+protected:
+    // -----------------------------------------------------------------------
+    //  Hidden constructors
+    // -----------------------------------------------------------------------
+    /** @name Hidden constructors */
+    //@{    
+    DOMNodeList() {};
+    //@}
+
+private:
+    // -----------------------------------------------------------------------
+    // Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    /** @name Unimplemented constructors and operators */
+    //@{
+    DOMNodeList(const DOMNodeList &);
+    DOMNodeList & operator = (const DOMNodeList &);
+    //@}
+
+public:
+    // -----------------------------------------------------------------------
+    //  All constructors are hidden, just the destructor is available
+    // -----------------------------------------------------------------------
+    /** @name Destructor */
+    //@{
+    /**
+     * Destructor
+     *
+     */
+    virtual ~DOMNodeList()  {};
+    //@}
+
+    // -----------------------------------------------------------------------
+    //  Virtual DOMNodeList interface
+    // -----------------------------------------------------------------------
+    /** @name Functions introduced in DOM Level 1 */
+    //@{
+    // -----------------------------------------------------------------------
+    //  Getter methods
+    // -----------------------------------------------------------------------
+    /**
+     * Returns the <code>index</code> item in the collection.
+     *
+     * If <code>index</code> is greater than or equal to the number of nodes in
+     * the list, this returns <code>null</code>.
+     *
+     * @param index Index into the collection.
+     * @return The node at the <code>index</code>th position in the
+     *   <code>DOMNodeList</code>, or <code>null</code> if that is not a valid
+     *   index.
+     * @since DOM Level 1
+     */
+    virtual DOMNode  *item(XMLSize_t index) const = 0;
+
+    /**
+     * Returns the number of nodes in the list.
+     *
+     * The range of valid child node indices is 0 to <code>length-1</code> inclusive.
+     * @since DOM Level 1
+     */
+    virtual XMLSize_t getLength() const = 0;
+    //@}
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
+
+
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/DOMXPathResult.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/DOMXPathResult.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/DOMXPathResult.hpp	(revision 2674)
@@ -0,0 +1,255 @@
+#ifndef DOMXPathResult_HEADER_GUARD_
+#define DOMXPathResult_HEADER_GUARD_
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <xercesc/util/XercesDefs.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class DOMXPathNSResolver;
+class DOMXPathExpression;
+class DOMNode;
+
+/**
+ * The <code>DOMXPathResult</code> interface represents the result of the
+ * evaluation of an XPath 1.0 expression within the context of a particular
+ * node. Since evaluation of an XPath expression can result in various result
+ * types, this object makes it possible to discover and manipulate the type
+ * and value of the result.
+ * @since DOM Level 3
+ */
+class CDOM_EXPORT DOMXPathResult
+{
+
+protected:
+    // -----------------------------------------------------------------------
+    //  Hidden constructors
+    // -----------------------------------------------------------------------
+    /** @name Hidden constructors */
+    //@{    
+    DOMXPathResult() {};
+    //@}
+
+private:
+    // -----------------------------------------------------------------------
+    // Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    /** @name Unimplemented constructors and operators */
+    //@{
+    DOMXPathResult(const DOMXPathResult &);
+    DOMXPathResult& operator = (const  DOMXPathResult&);
+    //@}
+
+public:
+    // -----------------------------------------------------------------------
+    //  All constructors are hidden, just the destructor is available
+    // -----------------------------------------------------------------------
+    /** @name Destructor */
+    //@{
+    /**
+     * Destructor
+     *
+     */
+    virtual ~DOMXPathResult() {};
+    //@}
+
+    // -----------------------------------------------------------------------
+    //  Class Types
+    // -----------------------------------------------------------------------
+    /** @name Public Contants */
+    //@{
+    /**
+     * <p>ANY_TYPE
+     * <br>This code does not represent a specific type. An evaluation of an XPath 
+     * expression will never produce this type. If this type is requested, then 
+     * the evaluation returns whatever type naturally results from evaluation 
+     * of the expression.
+     * If the natural result is a node set when ANY_TYPE was requested, then 
+     * UNORDERED_NODE_ITERATOR_TYPE is always the resulting type. Any other 
+     * representation of a node set must be explicitly requested.
+     * <p>ANY_UNORDERED_NODE_TYPE
+     * <br>The result is a node set as defined by [XPath 1.0] and will be accessed
+     * as a single node, which may be nullif the node set is empty. Document
+     * modification does not invalidate the node, but may mean that the result 
+     * node no longer corresponds to the current document. This is a convenience
+     * that permits optimization since the implementation can stop once any node 
+     * in the resulting set has been found.
+     * If there is more than one node in the actual result, the single node 
+     * returned might not be the first in document order.
+     * <p>BOOLEAN_TYPE
+     * <br>The result is a boolean as defined by [XPath 1.0]. Document modification 
+     * does not invalidate the boolean, but may mean that reevaluation would not 
+     * yield the same boolean.
+     * <p>FIRST_ORDERED_NODE_TYPE
+     * <br>The result is a node set as defined by [XPath 1.0] and will be accessed
+     * as a single node, which may be null if the node set is empty. Document 
+     * modification does not invalidate the node, but may mean that the result 
+     * node no longer corresponds to the current document. This is a convenience
+     * that permits optimization since the implementation can stop once the first
+     * node in document order of the resulting set has been found.
+     * If there are more than one node in the actual result, the single node 
+     * returned will be the first in document order.
+     * <p>NUMBER_TYPE
+     * <br>The result is a number as defined by [XPath 1.0]. Document modification does
+     * not invalidate the number, but may mean that reevaluation would not yield the 
+     * same number.
+     * <p>ORDERED_NODE_ITERATOR_TYPE
+     * <br>The result is a node set as defined by [XPath 1.0] that will be accessed 
+     * iteratively, which will produce document-ordered nodes. Document modification 
+     * invalidates the iteration.
+     * <p>ORDERED_NODE_SNAPSHOT_TYPE
+     * <br>The result is a node set as defined by [XPath 1.0] that will be accessed as a
+     * snapshot list of nodes that will be in original document order. Document 
+     * modification does not invalidate the snapshot but may mean that reevaluation would
+     * not yield the same snapshot and nodes in the snapshot may have been altered, moved, 
+     * or removed from the document.
+     * <p>STRING_TYPE
+     * <br>The result is a string as defined by [XPath 1.0]. Document modification does not
+     * invalidate the string, but may mean that the string no longer corresponds to the 
+     * current document.
+     * <p>UNORDERED_NODE_ITERATOR_TYPE
+     * <br>The result is a node set as defined by [XPath 1.0] that will be accessed iteratively, 
+     * which may not produce nodes in a particular order. Document modification invalidates the iteration.
+     * This is the default type returned if the result is a node set and ANY_TYPE is requested.
+     * <p>UNORDERED_NODE_SNAPSHOT_TYPE
+     * <br>The result is a node set as defined by [XPath 1.0] that will be accessed as a
+     * snapshot list of nodes that may not be in a particular order. Document modification
+     * does not invalidate the snapshot but may mean that reevaluation would not yield the same
+     * snapshot and nodes in the snapshot may have been altered, moved, or removed from the document.
+     */
+	enum resultType {
+                ANY_TYPE = 0,
+                NUMBER_TYPE = 1,
+                STRING_TYPE = 2,
+                BOOLEAN_TYPE = 3,
+                UNORDERED_NODE_ITERATOR_TYPE = 4,
+                ORDERED_NODE_ITERATOR_TYPE = 5,
+                UNORDERED_NODE_SNAPSHOT_TYPE = 6,
+                ORDERED_NODE_SNAPSHOT_TYPE = 7,
+                ANY_UNORDERED_NODE_TYPE = 8,
+                FIRST_ORDERED_NODE_TYPE = 9
+    };
+    //@}
+
+
+    // -----------------------------------------------------------------------
+    // Virtual DOMDocument interface
+    // -----------------------------------------------------------------------
+    /** @name Functions introduced in DOM Level 3 */
+    //@{
+
+
+    /** 
+     * Returns the boolean value of this result
+     * @return booleanValue of type boolean, readonly
+     * The value of this boolean result.
+     * @exception XPathException
+     * TYPE_ERR: raised if resultType is not BOOLEAN_TYPE.
+     */
+	virtual bool getBooleanValue() const = 0;
+
+    /** 
+     * Returns the state of the iterator
+     * @return invalidIteratorState 
+     * Signifies that the iterator has become invalid. True if resultType is 
+     * UNORDERED_NODE_ITERATOR_TYPE or ORDERED_NODE_ITERATOR_TYPE and the 
+     * document has been modified since this result was returned.
+     * @exception XPathException 
+     * TYPE_ERR: raised if resultType is not NUMBER_TYPE.
+     */
+	virtual bool getInvalidIteratorState() const = 0;
+
+    /**
+     * Returns the number value of this result
+     * @return numberValue 
+     * The value of this number result. If the native double type of the DOM 
+     * binding does not directly support the exact IEEE 754 result of the XPath 
+     * expression, then it is up to the definition of the binding to specify how 
+     * the XPath number is converted to the native binding number.
+     * @exception XPathException
+     * TYPE_ERR: raised if resultType is not NUMBER_TYPE.
+     */
+	virtual double getNumberValue() const = 0;
+
+    /**
+     * Returns the result type of this result
+     * @return resultType 
+     * A code representing the type of this result, as defined by the type constants.       
+     * @exception XPathException
+     * TYPE_ERR: raised if resultType is not ANY_UNORDERED_NODE_TYPE or FIRST_ORDERED_NODE_TYPE.
+     */
+	virtual short getResultType() const = 0;
+    	
+    /**
+     * Returns the single node value of this result
+     * @return singleNodeValue 
+     * The value of this single node result, which may be null.
+     * @exception XPathException
+     * TYPE_ERR: raised if resultType is not ANY_UNORDERED_NODE_TYPE or FIRST_ORDERED_NODE_TYPE.
+     */
+	virtual DOMNode *getSingleNodeValue() const = 0;
+
+    /**
+     * Returns the snapshot length
+     * @return snapshotLength 
+     * The number of nodes in the result snapshot. Valid values for snapshotItem indices 
+     * are 0 to snapshotLength-1 inclusive.
+     * @exception XPathException
+     * TYPE_ERR: raised if resultType is not UNORDERED_NODE_SNAPSHOT_TYPE or 
+     * ORDERED_NODE_SNAPSHOT_TYPE.        
+     */
+	virtual unsigned long getSnapshotLength() const = 0;
+        
+    /**
+     * Returns the string value of this result
+     * @return stringValue 
+     * The value of this string result.
+     * @exception XPathException
+     * TYPE_ERR: raised if resultType is not STRING_TYPE.
+     */
+	virtual const XMLCh* getStringValue() const = 0;
+    
+    /**
+     * Iterates and returns the next node from the node set or nullif there are no more nodes.
+     * @return the next node.
+     * @exception XPathException
+     * TYPE_ERR: raised if resultType is not UNORDERED_NODE_ITERATOR_TYPE or ORDERED_NODE_ITERATOR_TYPE.
+     * @exception DOMException
+     * INVALID_STATE_ERR: The document has been mutated since the result was returned.	
+     */
+	virtual DOMNode* iterateNext() const = 0;
+
+    /**
+     * Returns the indexth item in the snapshot collection. If index is greater than or
+     * equal to the number of nodes in the list, this method returns null. Unlike the
+     * iterator result, the snapshot does not become invalid, but may not correspond 
+     * to the current document if it is mutated.
+     * @param index of type unsigned long - Index into the snapshot collection.
+     * @return The node at the indexth position in the NodeList, or null if that is not a valid index.
+     * @exception XPathException
+     * TYPE_ERR: raised if resultType is not UNORDERED_NODE_SNAPSHOT_TYPE or ORDERED_NODE_SNAPSHOT_TYPE.	
+     */
+	virtual DOMNode* snapshotItem(unsigned long index) const = 0;
+
+    //@}
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/DOMNode.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/DOMNode.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/DOMNode.hpp	(revision 2674)
@@ -0,0 +1,960 @@
+#ifndef DOMNode_HEADER_GUARD_
+#define DOMNode_HEADER_GUARD_
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: DOMNode.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#include <xercesc/util/XercesDefs.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+
+class DOMDocument;
+class DOMNamedNodeMap;
+class DOMNodeList;
+class DOMUserDataHandler;
+
+/**
+ * The <code>DOMNode</code> interface is the primary datatype for the entire
+ * Document Object Model. It represents a single node in the document tree.
+ * While all objects implementing the <code>DOMNode</code> interface expose
+ * methods for dealing with children, not all objects implementing the
+ * <code>DOMNode</code> interface may have children. For example,
+ * <code>DOMText</code> nodes may not have children, and adding children to
+ * such nodes results in a <code>DOMException</code> being raised.
+ * <p>The attributes <code>nodeName</code>, <code>nodeValue</code> and
+ * <code>attributes</code> are included as a mechanism to get at node
+ * information without casting down to the specific derived interface. In
+ * cases where there is no obvious mapping of these attributes for a
+ * specific <code>nodeType</code> (e.g., <code>nodeValue</code> for an
+ * <code>DOMElement</code> or <code>attributes</code> for a <code>DOMComment</code>
+ * ), this returns <code>null</code>. Note that the specialized interfaces
+ * may contain additional and more convenient mechanisms to get and set the
+ * relevant information.
+ * <p>The values of <code>nodeName</code>,
+ * <code>nodeValue</code>, and <code>attributes</code> vary according to the
+ * node type as follows:
+ * <table border='1'>
+ * <tr>
+ * <td>Interface</td>
+ * <td>nodeName</td>
+ * <td>nodeValue</td>
+ * <td>attributes</td>
+ * </tr>
+ * <tr>
+ * <td valign='top' rowspan='1' colspan='1'>DOMAttr</td>
+ * <td valign='top' rowspan='1' colspan='1'>name of attribute</td>
+ * <td valign='top' rowspan='1' colspan='1'>value of attribute</td>
+ * <td valign='top' rowspan='1' colspan='1'>null</td>
+ * </tr>
+ * <tr>
+ * <td valign='top' rowspan='1' colspan='1'>DOMCDATASection</td>
+ * <td valign='top' rowspan='1' colspan='1'>&quot;#cdata-section&quot;</td>
+ * <td valign='top' rowspan='1' colspan='1'>content of the CDATA Section</td>
+ * <td valign='top' rowspan='1' colspan='1'>null</td>
+ * </tr>
+ * <tr>
+ * <td valign='top' rowspan='1' colspan='1'>DOMComment</td>
+ * <td valign='top' rowspan='1' colspan='1'>&quot;#comment&quot;</td>
+ * <td valign='top' rowspan='1' colspan='1'>content of the comment</td>
+ * <td valign='top' rowspan='1' colspan='1'>null</td>
+ * </tr>
+ * <tr>
+ * <td valign='top' rowspan='1' colspan='1'>DOMDocument</td>
+ * <td valign='top' rowspan='1' colspan='1'>&quot;#document&quot;</td>
+ * <td valign='top' rowspan='1' colspan='1'>null</td>
+ * <td valign='top' rowspan='1' colspan='1'>null</td>
+ * </tr>
+ * <tr>
+ * <td valign='top' rowspan='1' colspan='1'>DOMDocumentFragment</td>
+ * <td valign='top' rowspan='1' colspan='1'>&quot;#document-fragment&quot;</td>
+ * <td valign='top' rowspan='1' colspan='1'>null</td>
+ * <td valign='top' rowspan='1' colspan='1'>null</td>
+ * </tr>
+ * <tr>
+ * <td valign='top' rowspan='1' colspan='1'>DOMDocumentType</td>
+ * <td valign='top' rowspan='1' colspan='1'>document type name</td>
+ * <td valign='top' rowspan='1' colspan='1'>null</td>
+ * <td valign='top' rowspan='1' colspan='1'>null</td>
+ * </tr>
+ * <tr>
+ * <td valign='top' rowspan='1' colspan='1'>DOMElement</td>
+ * <td valign='top' rowspan='1' colspan='1'>tag name</td>
+ * <td valign='top' rowspan='1' colspan='1'>null</td>
+ * <td valign='top' rowspan='1' colspan='1'>NamedNodeMap</td>
+ * </tr>
+ * <tr>
+ * <td valign='top' rowspan='1' colspan='1'>DOMEntity</td>
+ * <td valign='top' rowspan='1' colspan='1'>entity name</td>
+ * <td valign='top' rowspan='1' colspan='1'>null</td>
+ * <td valign='top' rowspan='1' colspan='1'>null</td>
+ * </tr>
+ * <tr>
+ * <td valign='top' rowspan='1' colspan='1'>DOMEntityReference</td>
+ * <td valign='top' rowspan='1' colspan='1'>name of entity referenced</td>
+ * <td valign='top' rowspan='1' colspan='1'>null</td>
+ * <td valign='top' rowspan='1' colspan='1'>null</td>
+ * </tr>
+ * <tr>
+ * <td valign='top' rowspan='1' colspan='1'>DOMNotation</td>
+ * <td valign='top' rowspan='1' colspan='1'>notation name</td>
+ * <td valign='top' rowspan='1' colspan='1'>null</td>
+ * <td valign='top' rowspan='1' colspan='1'>null</td>
+ * </tr>
+ * <tr>
+ * <td valign='top' rowspan='1' colspan='1'>DOMProcessingInstruction</td>
+ * <td valign='top' rowspan='1' colspan='1'>target</td>
+ * <td valign='top' rowspan='1' colspan='1'>entire content excluding the target</td>
+ * <td valign='top' rowspan='1' colspan='1'>null</td>
+ * </tr>
+ * <tr>
+ * <td valign='top' rowspan='1' colspan='1'>DOMText</td>
+ * <td valign='top' rowspan='1' colspan='1'>&quot;#text&quot;</td>
+ * <td valign='top' rowspan='1' colspan='1'>content of the text node</td>
+ * <td valign='top' rowspan='1' colspan='1'>null</td>
+ * </tr>
+ * </table>
+ * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113'>Document Object Model (DOM) Level 2 Core Specification</a>.
+ *
+ * @since DOM Level 1
+ */
+class  CDOM_EXPORT DOMNode {
+protected:
+    // -----------------------------------------------------------------------
+    //  Hidden constructors
+    // -----------------------------------------------------------------------
+    /** @name Hidden constructors */
+    //@{    
+    DOMNode() {}
+    DOMNode(const DOMNode &) {}
+    //@}
+
+private:    
+    // -----------------------------------------------------------------------
+    // Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    /** @name Unimplemented operators */
+    //@{
+    DOMNode & operator = (const DOMNode &);
+    //@}
+
+public:
+    // -----------------------------------------------------------------------
+    //  All constructors are hidden, just the destructor is available
+    // -----------------------------------------------------------------------
+    /** @name Destructor */
+    //@{
+    /**
+     * Destructor
+     *
+     */
+    virtual ~DOMNode() {};
+    //@}
+
+    // -----------------------------------------------------------------------
+    //  Class Types
+    // -----------------------------------------------------------------------
+    /** @name Public Contants */
+    //@{
+    /**
+     * NodeType
+     *
+     * @since DOM Level 1
+     */
+    enum NodeType {
+        ELEMENT_NODE                = 1,
+        ATTRIBUTE_NODE              = 2,
+        TEXT_NODE                   = 3,
+        CDATA_SECTION_NODE          = 4,
+        ENTITY_REFERENCE_NODE       = 5,
+        ENTITY_NODE                 = 6,
+        PROCESSING_INSTRUCTION_NODE = 7,
+        COMMENT_NODE                = 8,
+        DOCUMENT_NODE               = 9,
+        DOCUMENT_TYPE_NODE          = 10,
+        DOCUMENT_FRAGMENT_NODE      = 11,
+        NOTATION_NODE               = 12
+    };
+
+    /**
+     * TreePosition:
+     *
+     * <p><b>"Experimental - subject to change"</b></p>
+     *
+     * <p><code>TREE_POSITION_PRECEDING:</code>
+     * The node precedes the reference node.</p>
+     * <p><code>TREE_POSITION_FOLLOWING:</code>
+     * The node follows the reference node.</p>
+     * <p><code>TREE_POSITION_ANCESTOR:</code>
+     * The node is an ancestor of the reference node.</p>
+     * <p><code>TREE_POSITION_DESCENDANT:</code>
+     * The node is a descendant of the reference node.</p>
+     * <p><code>TREE_POSITION_EQUIVALENT:</code>
+     * The two nodes have an equivalent position. This is the case of two
+     * attributes that have the same <code>ownerElement</code>, and two
+     * nodes that are the same.</p>
+     * <p><code>TREE_POSITION_SAME_NODE:</code>
+     * The two nodes are the same. Two nodes that are the same have an
+     * equivalent position, though the reverse may not be true.</p>
+     * <p><code>TREE_POSITION_DISCONNECTED:</code>
+     * The two nodes are disconnected, they do not have any common ancestor.
+     * This is the case of two nodes that are not in the same document.</p>
+     *
+     * @since DOM Level 3
+     */
+    enum DOMTreePosition {
+        TREE_POSITION_PRECEDING   = 0x01,
+        TREE_POSITION_FOLLOWING   = 0x02,
+        TREE_POSITION_ANCESTOR    = 0x04,
+        TREE_POSITION_DESCENDANT  = 0x08,
+        TREE_POSITION_EQUIVALENT  = 0x10,
+        TREE_POSITION_SAME_NODE   = 0x20,
+        TREE_POSITION_DISCONNECTED = 0x00
+    };
+    //@}
+
+    // -----------------------------------------------------------------------
+    //  Virtual DOMNode interface
+    // -----------------------------------------------------------------------
+    /** @name Functions introduced in DOM Level 1 */
+    //@{
+    // -----------------------------------------------------------------------
+    //  Getter methods
+    // -----------------------------------------------------------------------
+    /**
+     * The name of this node, depending on its type; see the table above.
+     * @since DOM Level 1
+     */
+    virtual const XMLCh *   getNodeName() const = 0;
+
+    /**
+     * Gets the value of this node, depending on its type.
+     *
+     * @exception DOMException
+     *   NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly.
+     * @since DOM Level 1
+     */
+    virtual const XMLCh *       getNodeValue() const = 0;
+
+    /**
+     * An enum value representing the type of the underlying object.
+     * @since DOM Level 1
+     */
+    virtual short           getNodeType() const = 0;
+
+    /**
+     * Gets the parent of this node.
+     *
+     * All nodes, except <code>DOMDocument</code>,
+     * <code>DOMDocumentFragment</code>, and <code>DOMAttr</code> may have a parent.
+     * However, if a node has just been created and not yet added to the tree,
+     * or if it has been removed from the tree, a <code>null</code> DOMNode
+     * is returned.
+     * @since DOM Level 1
+     */
+    virtual DOMNode        *getParentNode() const = 0;
+
+    /**
+     * Gets a <code>DOMNodeList</code> that contains all children of this node.
+     *
+     * If there
+     * are no children, this is a <code>DOMNodeList</code> containing no nodes.
+     * The content of the returned <code>DOMNodeList</code> is "live" in the sense
+     * that, for instance, changes to the children of the node object that
+     * it was created from are immediately reflected in the nodes returned by
+     * the <code>DOMNodeList</code> accessors; it is not a static snapshot of the
+     * content of the node. This is true for every <code>DOMNodeList</code>,
+     * including the ones returned by the <code>getElementsByTagName</code>
+     * method.
+     * @since DOM Level 1
+     */
+    virtual DOMNodeList    *getChildNodes() const = 0;
+    /**
+     * Gets the first child of this node.
+     *
+     * If there is no such node, this returns <code>null</code>.
+     * @since DOM Level 1
+     */
+    virtual DOMNode        *getFirstChild() const = 0;
+
+    /**
+     * Gets the last child of this node.
+     *
+     * If there is no such node, this returns <code>null</code>.
+     * @since DOM Level 1
+     */
+    virtual DOMNode        *getLastChild() const = 0;
+
+    /**
+     * Gets the node immediately preceding this node.
+     *
+     * If there is no such node, this returns <code>null</code>.
+     * @since DOM Level 1
+     */
+    virtual DOMNode        *getPreviousSibling() const = 0;
+
+    /**
+     * Gets the node immediately following this node.
+     *
+     * If there is no such node, this returns <code>null</code>.
+     * @since DOM Level 1
+     */
+    virtual DOMNode        *getNextSibling() const = 0;
+
+    /**
+     * Gets a <code>DOMNamedNodeMap</code> containing the attributes of this node (if it
+     * is an <code>DOMElement</code>) or <code>null</code> otherwise.
+     * @since DOM Level 1
+     */
+    virtual DOMNamedNodeMap  *getAttributes() const = 0;
+
+    /**
+     * Gets the <code>DOMDocument</code> object associated with this node.
+     *
+     * This is also
+     * the <code>DOMDocument</code> object used to create new nodes. When this
+     * node is a <code>DOMDocument</code> or a <code>DOMDocumentType</code>
+     * which is not used with any <code>DOMDocument</code> yet, this is
+     * <code>null</code>.
+     *
+     * @since DOM Level 1
+     */
+    virtual DOMDocument      *getOwnerDocument() const = 0;
+
+    // -----------------------------------------------------------------------
+    //  Node methods
+    // -----------------------------------------------------------------------
+    /**
+     * Returns a duplicate of this node.
+     *
+     * This function serves as a generic copy constructor for nodes.
+     *
+     * The duplicate node has no parent (
+     * <code>parentNode</code> returns <code>null</code>.).
+     * <br>Cloning an <code>DOMElement</code> copies all attributes and their
+     * values, including those generated by the  XML processor to represent
+     * defaulted attributes, but this method does not copy any text it contains
+     * unless it is a deep clone, since the text is contained in a child
+     * <code>DOMText</code> node. Cloning any other type of node simply returns a
+     * copy of this node.
+     * @param deep If <code>true</code>, recursively clone the subtree under the
+     *   specified node; if <code>false</code>, clone only the node itself (and
+     *   its attributes, if it is an <code>DOMElement</code>).
+     * @return The duplicate node.
+     * @since DOM Level 1
+     */
+    virtual DOMNode        * cloneNode(bool deep) const = 0;
+
+    /**
+     * Inserts the node <code>newChild</code> before the existing child node
+     * <code>refChild</code>.
+     *
+     * If <code>refChild</code> is <code>null</code>,
+     * insert <code>newChild</code> at the end of the list of children.
+     * <br>If <code>newChild</code> is a <code>DOMDocumentFragment</code> object,
+     * all of its children are inserted, in the same order, before
+     * <code>refChild</code>. If the <code>newChild</code> is already in the
+     * tree, it is first removed.  Note that a <code>DOMNode</code> that
+     * has never been assigned to refer to an actual node is == null.
+     * @param newChild The node to insert.
+     * @param refChild The reference node, i.e., the node before which the new
+     *   node must be inserted.
+     * @return The node being inserted.
+     * @exception DOMException
+     *   HIERARCHY_REQUEST_ERR: Raised if this node is of a type that does not
+     *   allow children of the type of the <code>newChild</code> node, or if
+     *   the node to insert is one of this node's ancestors.
+     *   <br>WRONG_DOCUMENT_ERR: Raised if <code>newChild</code> was created
+     *   from a different document than the one that created this node.
+     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this node or the node being
+     *   inserted is readonly.
+     *   <br>NOT_FOUND_ERR: Raised if <code>refChild</code> is not a child of
+     *   this node.
+     * @since DOM Level 1
+     */
+    virtual DOMNode       *insertBefore(DOMNode *newChild,
+                                          DOMNode *refChild) = 0;
+
+
+    /**
+     * Replaces the child node <code>oldChild</code> with <code>newChild</code>
+     * in the list of children, and returns the <code>oldChild</code> node.
+     *
+     * If <CODE>newChild</CODE> is a <CODE>DOMDocumentFragment</CODE> object,
+     * <CODE>oldChild</CODE> is replaced by all of the <CODE>DOMDocumentFragment</CODE>
+     * children, which are inserted in the same order.
+     *
+     * If the <code>newChild</code> is already in the tree, it is first removed.
+     * @param newChild The new node to put in the child list.
+     * @param oldChild The node being replaced in the list.
+     * @return The node replaced.
+     * @exception DOMException
+     *   HIERARCHY_REQUEST_ERR: Raised if this node is of a type that does not
+     *   allow children of the type of the <code>newChild</code> node, or it
+     *   the node to put in is one of this node's ancestors.
+     *   <br>WRONG_DOCUMENT_ERR: Raised if <code>newChild</code> was created
+     *   from a different document than the one that created this node.
+     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this node or the new node is readonly.
+     *   <br>NOT_FOUND_ERR: Raised if <code>oldChild</code> is not a child of
+     *   this node.
+     * @since DOM Level 1
+     */
+    virtual DOMNode  *replaceChild(DOMNode *newChild,
+                                     DOMNode *oldChild) = 0;
+    /**
+     * Removes the child node indicated by <code>oldChild</code> from the list
+     * of children, and returns it.
+     *
+     * @param oldChild The node being removed.
+     * @return The node removed.
+     * @exception DOMException
+     *   NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
+     *   <br>NOT_FOUND_ERR: Raised if <code>oldChild</code> is not a child of
+     *   this node.
+     * @since DOM Level 1
+     */
+    virtual DOMNode        *removeChild(DOMNode *oldChild) = 0;
+
+    /**
+     * Adds the node <code>newChild</code> to the end of the list of children of
+     * this node.
+     *
+     * If the <code>newChild</code> is already in the tree, it is
+     * first removed.
+     * @param newChild The node to add.If it is a  <code>DOMDocumentFragment</code>
+     *   object, the entire contents of the document fragment are moved into
+     *   the child list of this node
+     * @return The node added.
+     * @exception DOMException
+     *   HIERARCHY_REQUEST_ERR: Raised if this node is of a type that does not
+     *   allow children of the type of the <code>newChild</code> node, or if
+     *   the node to append is one of this node's ancestors.
+     *   <br>WRONG_DOCUMENT_ERR: Raised if <code>newChild</code> was created
+     *   from a different document than the one that created this node.
+     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this node or the node being
+     *   appended is readonly.
+     * @since DOM Level 1
+     */
+    virtual DOMNode        *appendChild(DOMNode *newChild) = 0;
+
+    // -----------------------------------------------------------------------
+    //  Query methods
+    // -----------------------------------------------------------------------
+    /**
+     *  This is a convenience method to allow easy determination of whether a
+     * node has any children.
+     *
+     * @return  <code>true</code> if the node has any children,
+     *   <code>false</code> if the node has no children.
+     * @since DOM Level 1
+     */
+    virtual bool             hasChildNodes() const = 0;
+
+    // -----------------------------------------------------------------------
+    //  Setter methods
+    // -----------------------------------------------------------------------
+    /**
+     * Sets the value of the node.
+     *
+     * Any node which can have a nodeValue will
+     * also accept requests to set it to a string. The exact response to
+     * this varies from node to node -- Attribute, for example, stores
+     * its values in its children and has to replace them with a new Text
+     * holding the replacement value.
+     *
+     * For most types of Node, value is null and attempting to set it
+     * will throw DOMException(NO_MODIFICATION_ALLOWED_ERR). This will
+     * also be thrown if the node is read-only.
+     * @see #getNodeValue
+     * @since DOM Level 1
+     */
+    virtual void              setNodeValue(const XMLCh  *nodeValue) = 0;
+    //@}
+
+    /** @name Functions introduced in DOM Level 2. */
+    //@{
+    /**
+     * Puts all <CODE>DOMText</CODE>
+     * nodes in the full depth of the sub-tree underneath this <CODE>DOMNode</CODE>,
+     * including attribute nodes, into a "normal" form where only markup (e.g.,
+     * tags, comments, processing instructions, CDATA sections, and entity
+     * references) separates <CODE>DOMText</CODE>
+     * nodes, i.e., there are neither adjacent <CODE>DOMText</CODE>
+     * nodes nor empty <CODE>DOMText</CODE>
+     * nodes. This can be used to ensure that the DOM view of a document is the
+     * same as if it were saved and re-loaded, and is useful when operations
+     * (such as XPointer lookups) that depend on a particular document tree
+     * structure are to be used.
+     * <P><B>Note:</B> In cases where the document contains <CODE>DOMCDATASections</CODE>,
+     * the normalize operation alone may not be sufficient, since XPointers do
+     * not differentiate between <CODE>DOMText</CODE>
+     * nodes and <CODE>DOMCDATASection</CODE>
+     * nodes.</P>
+     *
+     * @since DOM Level 2
+     */
+    virtual void              normalize() = 0;
+
+    /**
+     * Tests whether the DOM implementation implements a specific
+     * feature and that feature is supported by this node.
+     *
+     * @param feature The string of the feature to test. This is the same
+     * name as what can be passed to the method <code>hasFeature</code> on
+     * <code>DOMImplementation</code>.
+     * @param version This is the version number of the feature to test. In
+     * Level 2, version 1, this is the string "2.0". If the version is not
+     * specified, supporting any version of the feature will cause the
+     * method to return <code>true</code>.
+     * @return Returns <code>true</code> if the specified feature is supported
+     * on this node, <code>false</code> otherwise.
+     * @since DOM Level 2
+     */
+    virtual bool              isSupported(const XMLCh *feature,
+	                                       const XMLCh *version) const = 0;
+
+    /**
+     * Get the <em>namespace URI</em> of
+     * this node, or <code>null</code> if it is unspecified.
+     * <p>
+     * This is not a computed value that is the result of a namespace lookup
+     * based on an examination of the namespace declarations in scope. It is
+     * merely the namespace URI given at creation time.
+     * <p>
+     * For nodes of any type other than <CODE>ELEMENT_NODE</CODE> and
+     * <CODE>ATTRIBUTE_NODE</CODE> and nodes created with a DOM Level 1 method,
+     * such as <CODE>createElement</CODE> from the <CODE>DOMDocument</CODE>
+     * interface, this is always <CODE>null</CODE>.
+     *
+     * @since DOM Level 2
+     */
+    virtual const XMLCh *         getNamespaceURI() const = 0;
+
+    /**
+     * Get the <em>namespace prefix</em>
+     * of this node, or <code>null</code> if it is unspecified.
+     *
+     * @since DOM Level 2
+     */
+    virtual const XMLCh *          getPrefix() const = 0;
+
+    /**
+     * Returns the local part of the <em>qualified name</em> of this node.
+     * <p>
+     * For nodes created with a DOM Level 1 method, such as
+     * <code>createElement</code> from the <code>DOMDocument</code> interface,
+     * it is null.
+     *
+     * @since DOM Level 2
+     */
+    virtual const XMLCh *          getLocalName() const = 0;
+
+    /**
+     * Set the <em>namespace prefix</em> of this node.
+     * <p>
+     * Note that setting this attribute, when permitted, changes
+     * the <CODE>nodeName</CODE> attribute, which holds the <EM>qualified
+     * name</EM>, as well as the <CODE>tagName</CODE> and <CODE>name</CODE>
+     * attributes of the <CODE>DOMElement</CODE> and <CODE>DOMAttr</CODE>
+     * interfaces, when applicable.
+     * <p>
+     * Note also that changing the prefix of an
+     * attribute, that is known to have a default value, does not make a new
+     * attribute with the default value and the original prefix appear, since the
+     * <CODE>namespaceURI</CODE> and <CODE>localName</CODE> do not change.
+     *
+     *
+     * @param prefix The prefix of this node.
+     * @exception DOMException
+     *   INVALID_CHARACTER_ERR: Raised if the specified prefix contains
+     *                          an illegal character.
+     * <br>
+     *   NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
+     * <br>
+     *   NAMESPACE_ERR: Raised if the specified <CODE>prefix</CODE> is
+     *      malformed, if the <CODE>namespaceURI</CODE> of this node is
+     *      <CODE>null</CODE>, if the specified prefix is "xml" and the
+     *      <CODE>namespaceURI</CODE> of this node is different from
+     *      "http://www.w3.org/XML/1998/namespace", if this node is an attribute
+     *      and the specified prefix is "xmlns" and the
+     *      <CODE>namespaceURI</CODE> of this node is different from
+     *      "http://www.w3.org/2000/xmlns/", or if this node is an attribute and
+     *      the <CODE>qualifiedName</CODE> of this node is "xmlns".
+     * @since DOM Level 2
+     */
+    virtual void              setPrefix(const XMLCh * prefix) = 0;
+
+    /**
+     *  Returns whether this node (if it is an element) has any attributes.
+     * @return <code>true</code> if this node has any attributes,
+     *   <code>false</code> otherwise.
+     * @since DOM Level 2
+     */
+    virtual bool              hasAttributes() const = 0;
+    //@}
+
+    /** @name Functions introduced in DOM Level 3. */
+    //@{
+    /**
+     * Returns whether this node is the same node as the given one.
+     * <br>This method provides a way to determine whether two
+     * <code>DOMNode</code> references returned by the implementation reference
+     * the same object. When two <code>DOMNode</code> references are references
+     * to the same object, even if through a proxy, the references may be
+     * used completely interchangeably, such that all attributes have the
+     * same values and calling the same DOM method on either reference
+     * always has exactly the same effect.
+     *
+     * <p><b>"Experimental - subject to change"</b></p>
+     *
+     * @param other The node to test against.
+     * @return Returns <code>true</code> if the nodes are the same,
+     *   <code>false</code> otherwise.
+     * @since DOM Level 3
+     */
+    virtual bool              isSameNode(const DOMNode* other) const = 0;
+
+    /**
+     * Tests whether two nodes are equal.
+     * <br>This method tests for equality of nodes, not sameness (i.e.,
+     * whether the two nodes are pointers to the same object) which can be
+     * tested with <code>DOMNode::isSameNode</code>. All nodes that are the same
+     * will also be equal, though the reverse may not be true.
+     * <br>Two nodes are equal if and only if the following conditions are
+     * satisfied: The two nodes are of the same type.The following string
+     * attributes are equal: <code>nodeName</code>, <code>localName</code>,
+     * <code>namespaceURI</code>, <code>prefix</code>, <code>nodeValue</code>
+     * , <code>baseURI</code>. This is: they are both <code>null</code>, or
+     * they have the same length and are character for character identical.
+     * The <code>attributes</code> <code>DOMNamedNodeMaps</code> are equal.
+     * This is: they are both <code>null</code>, or they have the same
+     * length and for each node that exists in one map there is a node that
+     * exists in the other map and is equal, although not necessarily at the
+     * same index.The <code>childNodes</code> <code>DOMNodeLists</code> are
+     * equal. This is: they are both <code>null</code>, or they have the
+     * same length and contain equal nodes at the same index. This is true
+     * for <code>DOMAttr</code> nodes as for any other type of node. Note that
+     * normalization can affect equality; to avoid this, nodes should be
+     * normalized before being compared.
+     * <br>For two <code>DOMDocumentType</code> nodes to be equal, the following
+     * conditions must also be satisfied: The following string attributes
+     * are equal: <code>publicId</code>, <code>systemId</code>,
+     * <code>internalSubset</code>.The <code>entities</code>
+     * <code>DOMNamedNodeMaps</code> are equal.The <code>notations</code>
+     * <code>DOMNamedNodeMaps</code> are equal.
+     * <br>On the other hand, the following do not affect equality: the
+     * <code>ownerDocument</code> attribute, the <code>specified</code>
+     * attribute for <code>DOMAttr</code> nodes, the
+     * <code>isWhitespaceInElementContent</code> attribute for
+     * <code>DOMText</code> nodes, as well as any user data or event listeners
+     * registered on the nodes.
+     *
+     * <p><b>"Experimental - subject to change"</b></p>
+     *
+     * @param arg The node to compare equality with.
+     * @return If the nodes, and possibly subtrees are equal,
+     *   <code>true</code> otherwise <code>false</code>.
+     * @since DOM Level 3
+     */
+    virtual bool              isEqualNode(const DOMNode* arg) const = 0;
+
+
+    /**
+     * Associate an object to a key on this node. The object can later be
+     * retrieved from this node by calling <code>getUserData</code> with the
+     * same key.
+     *
+     * Deletion of the user data remains the responsibility of the
+     * application program; it will not be automatically deleted when
+     * the nodes themselves are reclaimed.
+     *
+     * Both the parameter <code>data</code> and the returned object are
+     * void pointer, it is applications' responsibility to keep track of
+     * their original type.  Casting them to the wrong type may result
+     * unexpected behavior.
+     *
+     * <p><b>"Experimental - subject to change"</b></p>
+     *
+     * @param key The key to associate the object to.
+     * @param data The object to associate to the given key, or
+     *   <code>null</code> to remove any existing association to that key.
+     * @param handler The handler to associate to that key, or
+     *   <code>null</code>.
+     * @return Returns the void* object previously associated to
+     *   the given key on this node, or <code>null</code> if there was none.
+     * @see #getUserData
+     *
+     * @since DOM Level 3
+     */
+    virtual void*             setUserData(const XMLCh* key,
+                                          void* data,
+                                          DOMUserDataHandler* handler) = 0;
+
+    /**
+     * Retrieves the object associated to a key on a this node. The object
+     * must first have been set to this node by calling
+     * <code>setUserData</code> with the same key.
+     *
+     * <p><b>"Experimental - subject to change"</b></p>
+     *
+     * @param key The key the object is associated to.
+     * @return Returns the <code>void*</code> associated to the given key
+     *   on this node, or <code>null</code> if there was none.
+     * @see #setUserData
+     * @since DOM Level 3
+     */
+    virtual void*             getUserData(const XMLCh* key) const = 0;
+
+
+    /**
+     * The absolute base URI of this node or <code>null</code> if undefined.
+     * This value is computed according to . However, when the
+     * <code>DOMDocument</code> supports the feature "HTML" , the base URI is
+     * computed using first the value of the href attribute of the HTML BASE
+     * element if any, and the value of the <code>documentURI</code>
+     * attribute from the <code>DOMDocument</code> interface otherwise.
+     *
+     * <p><b>"Experimental - subject to change"</b></p>
+     *
+     * <br> When the node is an <code>DOMElement</code>, a <code>DOMDocument</code>
+     * or a a <code>DOMProcessingInstruction</code>, this attribute represents
+     * the properties [base URI] defined in . When the node is a
+     * <code>DOMNotation</code>, an <code>DOMEntity</code>, or an
+     * <code>DOMEntityReference</code>, this attribute represents the
+     * properties [declaration base URI].
+     * @since DOM Level 3
+     */
+    virtual const XMLCh*           getBaseURI() const = 0;
+
+    /**
+     * Compares a node with this node with regard to their position in the
+     * tree and according to the document order. This order can be extended
+     * by module that define additional types of nodes.
+     *
+     * <p><b>"Experimental - subject to change"</b></p>
+     *
+     * @param other The node to compare against this node.
+     * @return Returns how the given node is positioned relatively to this
+     *   node.
+     * @since DOM Level 3
+     */
+    virtual short                  compareTreePosition(const DOMNode* other) const = 0;
+
+    /**
+     * This attribute returns the text content of this node and its
+     * descendants. No serialization is performed, the returned string 
+     * does not contain any markup. No whitespace normalization is 
+     * performed and the returned string does not contain the white 
+     * spaces in element content.
+     *
+     * <p><b>"Experimental - subject to change"</b></p>
+     *
+     * <br>The string returned is made of the text content of this node
+     * depending on its type, as defined below:
+     * <table border='1'>
+     * <tr>
+     * <td>Node type</td>
+     * <td>Content</td>
+     * </tr>
+     * <tr>
+     * <td valign='top' rowspan='1' colspan='1'>
+     * ELEMENT_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE,
+     * DOCUMENT_FRAGMENT_NODE</td>
+     * <td valign='top' rowspan='1' colspan='1'>concatenation of the <code>textContent</code>
+     * attribute value of every child node, excluding COMMENT_NODE and
+     * PROCESSING_INSTRUCTION_NODE nodes</td>
+     * </tr>
+     * <tr>
+     * <td valign='top' rowspan='1' colspan='1'>ATTRIBUTE_NODE, TEXT_NODE,
+     * CDATA_SECTION_NODE, COMMENT_NODE, PROCESSING_INSTRUCTION_NODE</td>
+     * <td valign='top' rowspan='1' colspan='1'>
+     * <code>nodeValue</code></td>
+     * </tr>
+     * <tr>
+     * <td valign='top' rowspan='1' colspan='1'>DOCUMENT_NODE, DOCUMENT_TYPE_NODE, NOTATION_NODE</td>
+     * <td valign='top' rowspan='1' colspan='1'>
+     * null</td>
+     * </tr>
+     * </table>
+     * @exception DOMException
+     *   DOMSTRING_SIZE_ERR: Raised when it would return more characters than
+     *   fit in a <code>DOMString</code> variable on the implementation
+     *   platform.     
+     * @see #setTextContext
+     * @since DOM Level 3
+     */
+    virtual const XMLCh*           getTextContent() const = 0;
+
+    /**
+     * This attribute removes any possible children this node may have and, if the 
+     * new string is not empty or null, replaced by a single <code>DOMText</code> 
+     * node containing the string this attribute is set to. No parsing is 
+     * performed, the input string is taken as pure textual content.  
+     *
+     * <p><b>"Experimental - subject to change"</b></p>
+     *
+     * @exception DOMException
+     *   NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly.     
+     * @see #getTextContext
+     * @since DOM Level 3
+     */
+    virtual void                   setTextContent(const XMLCh* textContent) = 0;
+
+    /**
+     * Look up the prefix associated to the given namespace URI, starting from
+     * this node.
+     *
+     * <p><b>"Experimental - subject to change"</b></p>
+     *
+     * @param namespaceURI The namespace URI to look for.
+     * @param useDefault  Indicates if the lookup mechanism should take into
+     *   account the default namespace or not.
+     * @return Returns an associated namespace prefix if found,
+     *   <code>null</code> if none is found and <code>useDefault</code> is
+     *   false, or <code>null</code> if not found or it is the default
+     *   namespace and <code>useDefault</code> is <code>true</code>. If more
+     *   than one prefix are associated to the namespace prefix, the
+     *   returned namespace prefix is implementation dependent.
+     * @since DOM Level 3
+     */
+    virtual const XMLCh*           lookupNamespacePrefix(const XMLCh* namespaceURI,
+                                                         bool useDefault) const = 0;
+
+    /**
+     * This method checks if the specified <code>namespaceURI</code> is the
+     * default namespace or not.
+     *
+     * <p><b>"Experimental - subject to change"</b></p>
+     *
+     * @param namespaceURI The namespace URI to look for.
+     * @return  <code>true</code> if the specified <code>namespaceURI</code>
+     *   is the default namespace, <code>false</code> otherwise.
+     * @since DOM Level 3
+     */
+    virtual bool                   isDefaultNamespace(const XMLCh* namespaceURI) const = 0;
+
+    /**
+     * Look up the namespace URI associated to the given prefix, starting from
+     * this node.
+     *
+     * <p><b>"Experimental - subject to change"</b></p>
+     *
+     * @param prefix The prefix to look for. If this parameter is
+     *   <code>null</code>, the method will return the default namespace URI
+     *   if any.
+     * @return Returns the associated namespace URI or <code>null</code> if
+     *   none is found.
+     * @since DOM Level 3
+     */
+    virtual const XMLCh*           lookupNamespaceURI(const XMLCh* prefix) const  = 0;
+
+    /**
+     * This method makes available a <code>DOMNode</code>'s specialized interface
+     *
+     * <p><b>"Experimental - subject to change"</b></p>
+     *
+     * @param feature The name of the feature requested (case-insensitive).
+     * @return Returns an alternate <code>DOMNode</code> which implements the
+     *   specialized APIs of the specified feature, if any, or
+     *   <code>null</code> if there is no alternate <code>DOMNode</code> which
+     *   implements interfaces associated with that feature. Any alternate
+     *   <code>DOMNode</code> returned by this method must delegate to the
+     *   primary core <code>DOMNode</code> and not return results inconsistent
+     *   with the primary core <code>DOMNode</code> such as <code>key</code>,
+     *   <code>attributes</code>, <code>childNodes</code>, etc.
+     * @since DOM Level 3
+     */
+    virtual DOMNode*               getInterface(const XMLCh* feature) = 0;
+    //@}
+
+    // -----------------------------------------------------------------------
+    //  Non-standard Extension
+    // -----------------------------------------------------------------------
+    /** @name Non-standard Extension */
+    //@{
+    /**
+     * Called to indicate that this Node (and its associated children) is no longer in use
+     * and that the implementation may relinquish any resources associated with it and
+     * its associated children.
+     *
+     * If this is a document, any nodes it owns (created by DOMDocument::createXXXX())
+     * are also released.
+     *
+     * Access to a released object will lead to unexpected result.
+     *
+     * @exception DOMException
+     *   INVALID_ACCESS_ERR: Raised if this Node has a parent and thus should not be released yet.
+     */
+    virtual void              release() = 0;
+    //@}     
+#if defined(XML_DOMREFCOUNT_EXPERIMENTAL)
+    // -----------------------------------------------------------------------
+    //  Non-standard Extension
+    // -----------------------------------------------------------------------
+    /** @name Non-standard Extension */
+    //@{
+    /**
+	 * This is custom function which can be implemented by classes deriving
+	 * from DOMNode for implementing reference counting on DOMNodes. Any
+	 * implementation which has memory management model which involves
+	 * disposing of nodes immediately after being used can override this
+	 * function to do that job.
+     */
+    virtual void decRefCount() {}
+    //@}
+
+    // -----------------------------------------------------------------------
+    //  Non-standard Extension
+    // -----------------------------------------------------------------------
+    /** @name Non-standard Extension */
+    //@{
+    /**
+	 * This is custom function which can be implemented by classes deriving
+	 * from DOMNode for implementing reference counting on DOMNodes.
+     */
+    virtual void incRefCount() {}
+    //@}
+#endif
+};
+
+/***
+ * Utilities macros for getting memory manager within DOM
+***/
+#define GET_OWNER_DOCUMENT(ptr)      \
+        ((DOMDocumentImpl*)(ptr->getOwnerDocument()))
+
+#define GET_DIRECT_MM(ptr)           \
+        ptr ? ((DOMDocumentImpl*)ptr)->getMemoryManager() : XMLPlatformUtils::fgMemoryManager        
+
+#define GET_INDIRECT_MM(ptr)                                                    \
+        !ptr ? XMLPlatformUtils::fgMemoryManager :                              \
+        GET_OWNER_DOCUMENT(ptr) ? GET_OWNER_DOCUMENT(ptr)->getMemoryManager() : \
+        XMLPlatformUtils::fgMemoryManager
+
+/***
+ * For DOMNode and its derivatives
+***/
+#define GetDOMNodeMemoryManager GET_INDIRECT_MM(this)
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
+
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/DOMImplementation.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/DOMImplementation.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/DOMImplementation.hpp	(revision 2674)
@@ -0,0 +1,268 @@
+#ifndef DOMImplementation_HEADER_GUARD_
+#define DOMImplementation_HEADER_GUARD_
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: DOMImplementation.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#include <xercesc/dom/DOMImplementationLS.hpp>
+#include <xercesc/dom/DOMException.hpp>
+#include <xercesc/dom/DOMRangeException.hpp>
+#include <xercesc/util/PlatformUtils.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+
+class DOMDocument;
+class DOMDocumentType;
+
+/**
+ * The <code>DOMImplementation</code> interface provides a number of methods
+ * for performing operations that are independent of any particular instance
+ * of the document object model.
+ */
+
+class CDOM_EXPORT DOMImplementation : public DOMImplementationLS
+{
+protected:
+    // -----------------------------------------------------------------------
+    //  Hidden constructors
+    // -----------------------------------------------------------------------
+    /** @name Hidden constructors */
+    //@{    
+        DOMImplementation() {};                                      // no plain constructor
+    //@}
+
+private:
+    // -----------------------------------------------------------------------
+    // Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    /** @name Unimplemented constructors and operators */
+    //@{
+        DOMImplementation(const DOMImplementation &);   // no copy construtor.
+        DOMImplementation & operator = (const DOMImplementation &);  // No Assignment
+    //@}
+
+
+public:
+    // -----------------------------------------------------------------------
+    //  All constructors are hidden, just the destructor is available
+    // -----------------------------------------------------------------------
+    /** @name Destructor */
+    //@{
+    /**
+     * Destructor
+     *
+     */
+    virtual ~DOMImplementation() {};
+    //@}
+
+    // -----------------------------------------------------------------------
+    // Virtual DOMImplementation interface
+    // -----------------------------------------------------------------------
+    /** @name Functions introduced in DOM Level 1 */
+    //@{
+    /**
+     * Test if the DOM implementation implements a specific feature.
+     * @param feature The name of the feature to test (case-insensitive). The
+     *   values used by DOM features are defined throughout the DOM Level 2
+     *   specifications and listed in the  section. The name must be an XML
+     *   name. To avoid possible conflicts, as a convention, names referring
+     *   to features defined outside the DOM specification should be made
+     *   unique.
+     * @param version This is the version number of the feature to test. In
+     *   Level 2, the string can be either "2.0" or "1.0". If the version is
+     *   not specified, supporting any version of the feature causes the
+     *   method to return <code>true</code>.
+     * @return <code>true</code> if the feature is implemented in the
+     *   specified version, <code>false</code> otherwise.
+     * @since DOM Level 1
+     */
+    virtual bool  hasFeature(const XMLCh *feature,  const XMLCh *version) const = 0;
+    //@}
+
+    // -----------------------------------------------------------------------
+    // Functions introduced in DOM Level 2
+    // -----------------------------------------------------------------------
+    /** @name Functions introduced in DOM Level 2 */
+    //@{
+    /**
+     * Creates an empty <code>DOMDocumentType</code> node. Entity declarations
+     * and notations are not made available. Entity reference expansions and
+     * default attribute additions do not occur. It is expected that a
+     * future version of the DOM will provide a way for populating a
+     * <code>DOMDocumentType</code>.
+     * @param qualifiedName The qualified name of the document type to be
+     *   created.
+     * @param publicId The external subset public identifier.
+     * @param systemId The external subset system identifier.
+     * @return A new <code>DOMDocumentType</code> node with
+     *   <code>ownerDocument</code> set to <code>null</code>.
+     * @exception DOMException
+     *   INVALID_CHARACTER_ERR: Raised if the specified qualified name
+     *   contains an illegal character.
+     *   <br>NAMESPACE_ERR: Raised if the <code>qualifiedName</code> is
+     *   malformed.
+     *   <br>NOT_SUPPORTED_ERR: May be raised by DOM implementations which do
+     *   not support the <code>"XML"</code> feature, if they choose not to
+     *   support this method. Other features introduced in the future, by
+     *   the DOM WG or in extensions defined by other groups, may also
+     *   demand support for this method; please consult the definition of
+     *   the feature to see if it requires this method.
+     * @since DOM Level 2
+     */
+    virtual  DOMDocumentType *createDocumentType(const XMLCh *qualifiedName,
+                                                 const XMLCh *publicId,
+                                                 const XMLCh *systemId) = 0;
+
+    /**
+     * Creates a DOMDocument object of the specified type with its document
+     * element.
+     * @param namespaceURI The namespace URI of the document element to
+     *   create.
+     * @param qualifiedName The qualified name of the document element to be
+     *   created.
+     * @param doctype The type of document to be created or <code>null</code>.
+     *   When <code>doctype</code> is not <code>null</code>, its
+     *   <code>ownerDocument</code> attribute is set to the document
+     *   being created.
+     * @param manager    Pointer to the memory manager to be used to
+     *                   allocate objects.
+     * @return A new <code>DOMDocument</code> object.
+     * @exception DOMException
+     *   INVALID_CHARACTER_ERR: Raised if the specified qualified name
+     *   contains an illegal character.
+     *   <br>NAMESPACE_ERR: Raised if the <code>qualifiedName</code> is
+     *   malformed, if the <code>qualifiedName</code> has a prefix and the
+     *   <code>namespaceURI</code> is <code>null</code>, or if the
+     *   <code>qualifiedName</code> has a prefix that is "xml" and the
+     *   <code>namespaceURI</code> is different from "
+     *   http://www.w3.org/XML/1998/namespace" , or if the DOM
+     *   implementation does not support the <code>"XML"</code> feature but
+     *   a non-null namespace URI was provided, since namespaces were
+     *   defined by XML.
+     *   <br>WRONG_DOCUMENT_ERR: Raised if <code>doctype</code> has already
+     *   been used with a different document or was created from a different
+     *   implementation.
+     *   <br>NOT_SUPPORTED_ERR: May be raised by DOM implementations which do
+     *   not support the "XML" feature, if they choose not to support this
+     *   method. Other features introduced in the future, by the DOM WG or
+     *   in extensions defined by other groups, may also demand support for
+     *   this method; please consult the definition of the feature to see if
+     *   it requires this method.
+     * @since DOM Level 2
+     */
+
+    virtual DOMDocument *createDocument(const XMLCh *namespaceURI,
+                                        const XMLCh *qualifiedName,
+                                        DOMDocumentType *doctype,
+                                        MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager) = 0;
+
+    //@}
+    // -----------------------------------------------------------------------
+    // Functions introduced in DOM Level 3
+    // -----------------------------------------------------------------------
+    /** @name Functions introduced in DOM Level 3 */
+    //@{
+    /**
+     * This method makes available a <code>DOMImplementation</code>'s
+     * specialized interface (see ).
+     *
+     * <p><b>"Experimental - subject to change"</b></p>
+     *
+     * @param feature The name of the feature requested (case-insensitive).
+     * @return Returns an alternate <code>DOMImplementation</code> which
+     *   implements the specialized APIs of the specified feature, if any,
+     *   or <code>null</code> if there is no alternate
+     *   <code>DOMImplementation</code> object which implements interfaces
+     *   associated with that feature. Any alternate
+     *   <code>DOMImplementation</code> returned by this method must
+     *   delegate to the primary core <code>DOMImplementation</code> and not
+     *   return results inconsistent with the primary
+     *   <code>DOMImplementation</code>
+     * @since DOM Level 3
+     */
+    virtual DOMImplementation* getInterface(const XMLCh* feature) = 0;
+
+    //@}
+
+    // -----------------------------------------------------------------------
+    // Non-standard extension
+    // -----------------------------------------------------------------------
+    /** @name Non-standard extension */
+    //@{
+    /**
+     * Non-standard extension
+     *
+     * Create a completely empty document that has neither a root element or a doctype node.
+     */
+    virtual DOMDocument *createDocument(MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager) = 0;
+
+    /**
+     * Non-standard extension
+     *
+     *  Factory method for getting a DOMImplementation object.
+     *     The DOM implementation retains ownership of the returned object.
+     *     Application code should NOT delete it.
+     */
+    static DOMImplementation *getImplementation();
+
+    /**
+     * Non-standard extension
+     *
+     *  Load the default error text message for DOMException.
+      * @param msgToLoad The DOM ExceptionCode id to be processed
+      * @param toFill    The buffer that will hold the output on return. The
+      *         size of this buffer should at least be 'maxChars + 1'.
+      * @param maxChars  The maximum number of output characters that can be
+      *         accepted. If the result will not fit, it is an error.
+      * @return <code>true</code> if the message is successfully loaded
+     */
+    static bool loadDOMExceptionMsg
+    (
+        const   DOMException::ExceptionCode  msgToLoad
+        ,       XMLCh* const                 toFill
+        , const unsigned int                 maxChars
+    );
+
+    /**
+     * Non-standard extension
+     *
+     *  Load the default error text message for DOMRangeException.
+      * @param msgToLoad The DOM RangeExceptionCode id to be processed
+      * @param toFill    The buffer that will hold the output on return. The
+      *         size of this buffer should at least be 'maxChars + 1'.
+      * @param maxChars  The maximum number of output characters that can be
+      *         accepted. If the result will not fit, it is an error.
+      * @return <code>true</code> if the message is successfully loaded
+     */
+    static bool loadDOMExceptionMsg
+    (
+        const   DOMRangeException::RangeExceptionCode  msgToLoad
+        ,       XMLCh* const                           toFill
+        , const unsigned int                           maxChars
+    );
+    //@}
+
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/DOMBuilder.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/DOMBuilder.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/DOMBuilder.hpp	(revision 2674)
@@ -0,0 +1,686 @@
+#ifndef DOMBuilder_HEADER_GUARD_
+#define DOMBuilder_HEADER_GUARD_
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: DOMBuilder.hpp 569031 2007-08-23 15:05:28Z amassari $
+ *
+ */
+
+
+#include <xercesc/util/XercesDefs.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+
+class DOMErrorHandler;
+class DOMEntityResolver;
+class DOMInputSource;
+class DOMBuilderFilter;
+class DOMNode;
+class DOMDocument;
+class Grammar;
+
+/**
+ * DOMBuilder provides an API for parsing XML documents and building the
+ * corresponding DOM document tree. A DOMBuilder instance is obtained from
+ * the DOMImplementationLS interface by invoking its createDOMBuilder method.
+ * This implementation also allows the applications to install an error and
+ * an entity handler (useful extensions to the DOM specification).
+ *
+ * @since DOM Level 3
+ *
+ */
+class CDOM_EXPORT DOMBuilder
+{
+protected :
+    // -----------------------------------------------------------------------
+    //  Hidden constructors
+    // -----------------------------------------------------------------------
+    /** @name Hidden constructors */
+    //@{    
+    DOMBuilder() {};
+    //@}
+
+private:    
+    // -----------------------------------------------------------------------
+    // Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    /** @name Unimplemented constructors and operators */
+    //@{
+    DOMBuilder(const DOMBuilder &);
+    DOMBuilder & operator = (const DOMBuilder &);
+    //@}
+
+public:
+    // -----------------------------------------------------------------------
+    //  All constructors are hidden, just the destructor is available
+    // -----------------------------------------------------------------------
+    /** @name Destructor */
+    //@{
+    /**
+     * Destructor
+     *
+     */
+    virtual ~DOMBuilder() {};
+    //@}
+
+    // -----------------------------------------------------------------------
+    //  Class types
+    // -----------------------------------------------------------------------
+    /** @name Public Constants */
+    //@{
+    /**
+     * Action types for use in parseWithContext.
+     *
+     * <p> <code>ACTION_REPLACE</code>:
+     * Replace the context node with the result of parsing the input source.
+     * For this action to work the context node must be an
+     * <code>DOMElement</code>, <code>DOMText</code>, <code>DOMCDATASection</code>,
+     * <code>DOMComment</code>, <code>DOMProcessingInstruction</code>, or
+     * <code>DOMEntityReference</code> node.</p>
+     *
+     * <p> <code>ACTION_APPEND</code>:
+     * Append the result of parsing the input source to the context node. For
+     * this action to work, the context node must be an <code>DOMElement</code>.</p>
+     *
+     * <p> <code>ACTION_INSERT_AFTER</code>:
+     * Insert the result of parsing the input source after the context node.
+     * For this action to work the context nodes parent must be an
+     * <code>DOMElement</code>.</p>
+     *
+     * <p> <code>ACTION_INSERT_BEFORE</code>:
+     * Insert the result of parsing the input source before the context node.
+     * For this action to work the context nodes parent must be an
+     * <code>DOMElement</code>.</p>
+     *
+     * @see parseWithContext(...)
+     * @since DOM Level 3
+     */
+    enum ActionType
+    {
+        ACTION_REPLACE            = 1,
+        ACTION_APPEND_AS_CHILDREN = 2,
+        ACTION_INSERT_AFTER       = 3,
+        ACTION_INSERT_BEFORE      = 4
+    };
+    //@}
+
+    // -----------------------------------------------------------------------
+    //  Virtual DOMBuilder interface
+    // -----------------------------------------------------------------------
+    /** @name Functions introduced in DOM Level 3 */
+    //@{
+
+    // -----------------------------------------------------------------------
+    //  Getter methods
+    // -----------------------------------------------------------------------
+
+    /**
+      * Get a pointer to the error handler
+      *
+      * This method returns the installed error handler. If no handler
+      * has been installed, then it will be a zero pointer.
+      *
+      * <p><b>"Experimental - subject to change"</b></p>
+      *
+      * @return The pointer to the installed error handler object.
+      * @since DOM Level 3
+      */
+    virtual DOMErrorHandler* getErrorHandler() = 0;
+
+    /**
+      * Get a const pointer to the error handler
+      *
+      * This method returns the installed error handler.  If no handler
+      * has been installed, then it will be a zero pointer.
+      *
+      * <p><b>"Experimental - subject to change"</b></p>
+      *
+      * @return A const pointer to the installed error handler object.
+      * @since DOM Level 3
+      */
+    virtual const DOMErrorHandler* getErrorHandler() const = 0;
+
+    /**
+      * Get a pointer to the entity resolver
+      *
+      * This method returns the installed entity resolver.  If no resolver
+      * has been installed, then it will be a zero pointer.
+      *
+      * <p><b>"Experimental - subject to change"</b></p>
+      *
+      * @return The pointer to the installed entity resolver object.
+      * @since DOM Level 3
+      */
+    virtual DOMEntityResolver* getEntityResolver() = 0;
+
+    /**
+      * Get a const pointer to the entity resolver
+      *
+      * This method returns the installed entity resolver. If no resolver
+      * has been installed, then it will be a zero pointer.
+      *
+      * <p><b>"Experimental - subject to change"</b></p>
+      *
+      * @return A const pointer to the installed entity resolver object.
+      * @since DOM Level 3
+      */
+    virtual const DOMEntityResolver* getEntityResolver() const = 0;
+
+    /**
+      * Get a pointer to the application filter
+      *
+      * This method returns the installed application filter. If no filter
+      * has been installed, then it will be a zero pointer.
+      *
+      * <p><b>"Experimental - subject to change"</b></p>
+      *
+      * @return The pointer to the installed application filter.
+      * @since DOM Level 3
+      */
+    virtual DOMBuilderFilter* getFilter() = 0;
+
+    /**
+      * Get a const pointer to the application filter
+      *
+      * This method returns the installed application filter. If no filter
+      * has been installed, then it will be a zero pointer.
+      *
+      * <p><b>"Experimental - subject to change"</b></p>
+      *
+      * @return A const pointer to the installed application filter
+      * @since DOM Level 3
+      */
+    virtual const DOMBuilderFilter* getFilter() const = 0;
+
+    // -----------------------------------------------------------------------
+    //  Setter methods
+    // -----------------------------------------------------------------------
+    /**
+      * Set the error handler
+      *
+      * This method allows applications to install their own error handler
+      * to trap error and warning messages.
+      *
+      * <i>Any previously set handler is merely dropped, since the parser
+      * does not own them.</i>
+      *
+      * <p><b>"Experimental - subject to change"</b></p>
+      *
+      * @param handler  A const pointer to the user supplied error
+      *                 handler.
+      *
+      * @see #getErrorHandler
+      * @since DOM Level 3
+      */
+    virtual void setErrorHandler(DOMErrorHandler* const handler) = 0;
+
+    /**
+      * Set the entity resolver
+      *
+      * This method allows applications to install their own entity
+      * resolver. By installing an entity resolver, the applications
+      * can trap and potentially redirect references to external
+      * entities.
+      *
+      * <i>Any previously set resolver is merely dropped, since the parser
+      * does not own them.</i>
+      *
+      * <p><b>"Experimental - subject to change"</b></p>
+      *
+      * @param handler  A const pointer to the user supplied entity
+      *                 resolver.
+      *
+      * @see #getEntityResolver
+      * @since DOM Level 3
+      */
+    virtual void setEntityResolver(DOMEntityResolver* const handler) = 0;
+
+    /**
+      * Set the application filter
+      *
+      * When the application provides a filter, the parser will call out to
+      * the filter at the completion of the construction of each Element node.
+      * The filter implementation can choose to remove the element from the
+      * document being constructed (unless the element is the document element)
+      * or to terminate the parse early. If the document is being validated
+      * when it's loaded the validation happens before the filter is called.
+      *
+      * <i>Any previously set filter is merely dropped, since the parser
+      * does not own them.</i>
+      *
+      * <p><b>"Experimental - subject to change"</b></p>
+      *
+      * @param filter  A const pointer to the user supplied application
+      *                filter.
+      *
+      * @see #getFilter
+      * @since DOM Level 3
+      */
+    virtual void setFilter(DOMBuilderFilter* const filter) = 0;
+
+    // -----------------------------------------------------------------------
+    //  Feature methods
+    // -----------------------------------------------------------------------
+    /**
+      * Set the state of a feature
+      *
+      * It is possible for a DOMBuilder to recognize a feature name but to be
+      * unable to set its value.
+      *
+      * <p><b>"Experimental - subject to change"</b></p>
+      *
+      * See http://xerces.apache.org/xerces-c/program-dom.html#DOMBuilderFeatures for
+      * the list of supported features.
+      *
+      * @param name  The feature name.
+      * @param state The requested state of the feature (true or false).
+      * @exception DOMException
+      *     NOT_SUPPORTED_ERR: Raised when the DOMBuilder recognizes the
+      *     feature name but cannot set the requested value.
+      *     <br>NOT_FOUND_ERR: Raised when the DOMBuilder does not recognize
+      *     the feature name.
+      *
+      * @see #setFeature
+      * @see #canSetFeature
+      * @since DOM Level 3
+      */
+    virtual void setFeature(const XMLCh* const name, const bool state) = 0;
+
+    /**
+      * Look up the value of a feature.
+      *
+      * <p><b>"Experimental - subject to change"</b></p>
+      *
+      * @param name The feature name.
+      * @return The current state of the feature (true or false)
+      * @exception DOMException
+      *     NOT_FOUND_ERR: Raised when the DOMBuilder does not recognize
+      *     the feature name.
+      *
+      * @see #getFeature
+      * @see #canSetFeature
+      * @since DOM Level 3
+      */
+    virtual bool getFeature(const XMLCh* const name) const = 0;
+
+    /**
+      * Query whether setting a feature to a specific value is supported.
+      *
+      * <p><b>"Experimental - subject to change"</b></p>
+      *
+      * @param name  The feature name.
+      * @param state The requested state of the feature (true or false).
+      * @return <code>true</code> if the feature could be successfully set
+      *     to the specified value, or <code>false</code> if the feature
+      *     is not recognized or the requested value is not supported. The
+      *     value of the feature itself is not changed.
+      *
+      * @see #getFeature
+      * @see #setFeature
+      * @since DOM Level 3
+      */
+    virtual bool canSetFeature(const XMLCh* const name, const bool state) const = 0;
+
+    // -----------------------------------------------------------------------
+    //  Parsing methods
+    // -----------------------------------------------------------------------
+    /**
+      * Parse via an input source object
+      *
+      * This method invokes the parsing process on the XML file specified
+      * by the DOMInputSource parameter. This API is borrowed from the
+      * SAX Parser interface.
+      *
+      * The parser owns the returned DOMDocument.  It will be deleted
+      * when the parser is released.
+      *
+      * <p><b>"Experimental - subject to change"</b></p>
+      *
+      * @param source A const reference to the DOMInputSource object which
+      *               points to the XML file to be parsed.
+      * @return If the DOMBuilder is a synchronous DOMBuilder the newly created
+      *         and populated DOMDocument is returned. If the DOMBuilder is
+      *         asynchronous then <code>null</code> is returned since the
+      *         document object is not yet parsed when this method returns.
+      * @exception SAXException Any SAX exception, possibly
+      *            wrapping another exception.
+      * @exception XMLException An exception from the parser or client
+      *            handler code.
+      * @exception DOMException A DOM exception as per DOM spec.
+      *
+      * @see DOMInputSource#DOMInputSource
+      * @see #setEntityResolver
+      * @see #setErrorHandler
+      * @see resetDocumentPool
+      * @since DOM Level 3
+      */
+    virtual DOMDocument* parse(const DOMInputSource& source) = 0;
+
+    /**
+      * Parse via a file path or URL
+      *
+      * This method invokes the parsing process on the XML file specified by
+      * the Unicode string parameter 'systemId'.
+      *
+      * The parser owns the returned DOMDocument.  It will be deleted
+      * when the parser is released.
+      *
+      * <p><b>"Experimental - subject to change"</b></p>
+      *
+      * @param systemId A const XMLCh pointer to the Unicode string which
+      *                 contains the path to the XML file to be parsed.
+      * @return If the DOMBuilder is a synchronous DOMBuilder the newly created
+      *         and populated DOMDocument is returned. If the DOMBuilder is
+      *         asynchronous then <code>null</code> is returned since the
+      *         document object is not yet parsed when this method returns.
+      * @exception SAXException Any SAX exception, possibly
+      *            wrapping another exception.
+      * @exception XMLException An exception from the parser or client
+      *            handler code.
+      * @exception DOMException A DOM exception as per DOM spec.
+      *
+      * @see #parse(DOMInputSource,...)
+      * @see resetDocumentPool
+      * @since DOM Level 3
+      */
+    virtual DOMDocument* parseURI(const XMLCh* const systemId) = 0;
+
+    /**
+      * Parse via a file path or URL (in the local code page)
+      *
+      * This method invokes the parsing process on the XML file specified by
+      * the native char* string parameter 'systemId'.
+      *
+      * The parser owns the returned DOMDocument.  It will be deleted
+      * when the parser is released.
+      *
+      * <p><b>"Experimental - subject to change"</b></p>
+      *
+      * @param systemId A const char pointer to a native string which
+      *                 contains the path to the XML file to be parsed.
+      * @return If the DOMBuilder is a synchronous DOMBuilder the newly created
+      *         and populated DOMDocument is returned. If the DOMBuilder is
+      *         asynchronous then <code>null</code> is returned since the
+      *         document object is not yet parsed when this method returns.
+      * @exception SAXException Any SAX exception, possibly
+      *            wrapping another exception.
+      * @exception XMLException An exception from the parser or client
+      *            handler code.
+      * @exception DOMException A DOM exception as per DOM spec.
+      *
+      * @see #parse(DOMInputSource,...)
+      * @see resetDocumentPool
+      */
+    virtual DOMDocument* parseURI(const char* const systemId) = 0;
+
+    /**
+      * Parse via an input source object
+      *
+      * This method invokes the parsing process on the XML file specified
+      * by the DOMInputSource parameter, and inserts the content into an
+      * existing document at the position specified with the contextNode
+      * and action arguments. When parsing the input stream the context node
+      * is used for resolving unbound namespace prefixes.
+      *
+      * <p><b>"Experimental - subject to change"</b></p>
+      *
+      * @param source A const reference to the DOMInputSource object which
+      *               points to the XML file to be parsed.
+      * @param contextNode The node that is used as the context for the data
+      *                    that is being parsed. This node must be a Document
+      *                    node, a DocumentFragment node, or a node of a type
+      *                    that is allowed as a child of an element, e.g. it
+      *                    can not be an attribute node.
+      * @param action This parameter describes which action should be taken
+      *               between the new set of node being inserted and the
+      *               existing children of the context node.
+      * @exception DOMException
+      *     NOT_SUPPORTED_ERR: Raised when the DOMBuilder doesn't support
+      *     this method.
+      *     <br>NO_MODIFICATION_ALLOWED_ERR: Raised if the context node is
+      *     readonly.
+      * @since DOM Level 3
+      */
+    virtual void parseWithContext
+    (
+        const   DOMInputSource& source
+        ,       DOMNode* const contextNode
+        , const short action
+    ) = 0;
+    //@}
+
+    // -----------------------------------------------------------------------
+    //  Non-standard Extension
+    // -----------------------------------------------------------------------
+    /** @name Non-standard Extension */
+    //@{
+
+    /**
+      * Query the current value of a property in a DOMBuilder.
+      *
+      * The builder owns the returned pointer.  The memory allocated for
+      * the returned pointer will be destroyed when the builder is deleted.
+      *
+      * To ensure assessiblity of the returned information after the builder
+      * is deleted, callers need to copy and store the returned information
+      * somewhere else; otherwise you may get unexpected result.  Since the returned
+      * pointer is a generic void pointer, see
+      * http://xerces.apache.org/xerces-c/program-dom.html#DOMBuilderProperties to learn
+      * exactly what type of property value each property returns for replication.
+      *
+      * @param name The unique identifier (URI) of the property being set.
+      * @return     The current value of the property.  The pointer spans the same
+      *             life-time as the parser.  A null pointer is returned if nothing
+      *             was specified externally.
+      * @exception DOMException
+      *     <br>NOT_FOUND_ERR: Raised when the DOMBuilder does not recognize
+      *     the requested property.
+      */
+    virtual void* getProperty(const XMLCh* const name) const = 0 ;
+
+    /**
+      * Set the value of any property in a DOMBuilder.
+      * See http://xerces.apache.org/xerces-c/program-dom.html#DOMBuilderProperties for
+      * the list of supported properties.
+      *
+      * It takes a void pointer as the property value.  Application is required to initialize this void
+      * pointer to a correct type.  See http://xerces.apache.org/xerces-c/program-dom.html#DOMBuilderProperties
+      * to learn exactly what type of property value each property expects for processing.
+      * Passing a void pointer that was initialized with a wrong type will lead to unexpected result.
+      * If the same property is set more than once, the last one takes effect.
+      *
+      * @param name The unique identifier (URI) of the property being set.
+      * @param value The requested value for the property.
+      *            See http://xerces.apache.org/xerces-c/program-dom.html#DOMBuilderProperties to learn
+      *            exactly what type of property value each property expects for processing.
+      *            Passing a void pointer that was initialized with a wrong type will lead
+      *            to unexpected result.
+      * @exception DOMException
+      *     <br>NOT_FOUND_ERR: Raised when the DOMBuilder does not recognize
+      *     the requested property.
+      */
+    virtual void setProperty(const XMLCh* const name, void* value) = 0 ;
+
+    /**
+     * Called to indicate that this DOMBuilder is no longer in use
+     * and that the implementation may relinquish any resources associated with it.
+     *
+     * Access to a released object will lead to unexpected result.
+     */
+    virtual void              release() = 0;
+
+    /** Reset the documents vector pool and release all the associated memory
+      * back to the system.
+      *
+      * When parsing a document using a DOM parser, all memory allocated
+      * for a DOM tree is associated to the DOM document.
+      *
+      * If you do multiple parse using the same DOM parser instance, then
+      * multiple DOM documents will be generated and saved in a vector pool.
+      * All these documents (and thus all the allocated memory)
+      * won't be deleted until the parser instance is destroyed.
+      *
+      * If you don't need these DOM documents anymore and don't want to
+      * destroy the DOM parser instance at this moment, then you can call this method
+      * to reset the document vector pool and release all the allocated memory
+      * back to the system.
+      *
+      * It is an error to call this method if you are in the middle of a
+      * parse (e.g. in the mid of a progressive parse).
+      *
+      * @exception IOException An exception from the parser if this function
+      *            is called when a parse is in progress.
+      *
+      */
+    virtual void              resetDocumentPool() = 0;
+
+    /**
+      * Preparse schema grammar (XML Schema, DTD, etc.) via an input source
+      * object.
+      *
+      * This method invokes the preparsing process on a schema grammar XML
+      * file specified by the DOMInputSource parameter. If the 'toCache' flag
+      * is enabled, the parser will cache the grammars for re-use. If a grammar
+      * key is found in the pool, no caching of any grammar will take place.
+      *
+      * <p><b>"Experimental - subject to change"</b></p>
+      *
+      * @param source A const reference to the DOMInputSource object which
+      *               points to the schema grammar file to be preparsed.
+      * @param grammarType The grammar type (Schema or DTD).
+      * @param toCache If <code>true</code>, we cache the preparsed grammar,
+      *                otherwise, no chaching. Default is <code>false</code>.
+      * @return The preparsed schema grammar object (SchemaGrammar or
+      *         DTDGrammar). That grammar object is owned by the parser.
+      *
+      * @exception SAXException Any SAX exception, possibly
+      *            wrapping another exception.
+      * @exception XMLException An exception from the parser or client
+      *            handler code.
+      * @exception DOMException A DOM exception as per DOM spec.
+      *
+      * @see DOMInputSource#DOMInputSource
+      */
+    virtual Grammar* loadGrammar(const DOMInputSource& source,
+                                 const short grammarType,
+                                 const bool toCache = false) = 0;
+
+    /**
+      * Preparse schema grammar (XML Schema, DTD, etc.) via a file path or URL
+      *
+      * This method invokes the preparsing process on a schema grammar XML
+      * file specified by the file path parameter. If the 'toCache' flag is
+      * enabled, the parser will cache the grammars for re-use. If a grammar
+      * key is found in the pool, no caching of any grammar will take place.
+      *
+      * <p><b>"Experimental - subject to change"</b></p>
+      *
+      * @param systemId A const XMLCh pointer to the Unicode string which
+      *                 contains the path to the XML grammar file to be
+      *                 preparsed.
+      * @param grammarType The grammar type (Schema or DTD).
+      * @param toCache If <code>true</code>, we cache the preparsed grammar,
+      *                otherwise, no chaching. Default is <code>false</code>.
+      * @return The preparsed schema grammar object (SchemaGrammar or
+      *         DTDGrammar). That grammar object is owned by the parser.
+      *
+      * @exception SAXException Any SAX exception, possibly
+      *            wrapping another exception.
+      * @exception XMLException An exception from the parser or client
+      *            handler code.
+      * @exception DOMException A DOM exception as per DOM spec.
+      */
+    virtual Grammar* loadGrammar(const XMLCh* const systemId,
+                                 const short grammarType,
+                                 const bool toCache = false) = 0;
+
+    /**
+      * Preparse schema grammar (XML Schema, DTD, etc.) via a file path or URL
+      *
+      * This method invokes the preparsing process on a schema grammar XML
+      * file specified by the file path parameter. If the 'toCache' flag is
+      * enabled, the parser will cache the grammars for re-use. If a grammar
+      * key is found in the pool, no caching of any grammar will take place.
+      *
+      * <p><b>"Experimental - subject to change"</b></p>
+      *
+      * @param systemId A const char pointer to a native string which contains
+      *                 the path to the XML grammar file to be preparsed.
+      * @param grammarType The grammar type (Schema or DTD).
+      * @param toCache If <code>true</code>, we cache the preparsed grammar,
+      *                otherwise, no chaching. Default is <code>false</code>.
+      * @return The preparsed schema grammar object (SchemaGrammar or
+      *         DTDGrammar). That grammar object is owned by the parser.
+      *
+      *
+      * @exception SAXException Any SAX exception, possibly
+      *            wrapping another exception.
+      * @exception XMLException An exception from the parser or client
+      *            handler code.
+      * @exception DOMException A DOM exception as per DOM spec.
+      */
+    virtual Grammar* loadGrammar(const char* const systemId,
+                                 const short grammarType,
+                                 const bool toCache = false) = 0;
+
+    /**
+     * Retrieve the grammar that is associated with the specified namespace key
+     *
+     * @param  nameSpaceKey Namespace key
+     * @return Grammar associated with the Namespace key.
+     */
+    virtual Grammar* getGrammar(const XMLCh* const nameSpaceKey) const = 0;
+
+    /**
+     * Retrieve the grammar where the root element is declared.
+     *
+     * @return Grammar where root element declared
+     */
+    virtual Grammar* getRootGrammar() const = 0;
+
+    /**
+     * Returns the string corresponding to a URI id from the URI string pool.
+     *
+     * @param uriId id of the string in the URI string pool.
+     * @return URI string corresponding to the URI id.
+     */
+    virtual const XMLCh* getURIText(unsigned int uriId) const = 0;
+
+    /**
+      * Clear the cached grammar pool
+      */
+    virtual void resetCachedGrammarPool() = 0;
+
+    /**
+      * Returns the current src offset within the input source.
+      *
+      * @return offset within the input source
+      */
+    virtual unsigned int getSrcOffset() const = 0;
+
+    //@}
+
+};
+
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/DOMCharacterData.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/DOMCharacterData.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/DOMCharacterData.hpp	(revision 2674)
@@ -0,0 +1,215 @@
+#ifndef DOMCharacterData_HEADER_GUARD_
+#define DOMCharacterData_HEADER_GUARD_
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: DOMCharacterData.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#include <xercesc/util/XercesDefs.hpp>
+#include <xercesc/dom/DOMNode.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+
+/**
+ * The <code>DOMCharacterData</code> interface extends DOMNode with a set of
+ * attributes and methods for accessing character data in the DOM. For
+ * clarity this set is defined here rather than on each object that uses
+ * these attributes and methods. No DOM objects correspond directly to
+ * <code>DOMCharacterData</code>, though <code>DOMText</code> and others do
+ * inherit the interface from it. All <code>offsets</code> in this interface
+ * start from <code>0</code>.
+ * <p>As explained in the DOM spec, text strings in
+ * the DOM are represented in UTF-16, i.e. as a sequence of 16-bit units. In
+ * the following, the term 16-bit units is used whenever necessary to
+ * indicate that indexing on DOMCharacterData is done in 16-bit units.
+ * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113'>Document Object Model (DOM) Level 2 Core Specification</a>.
+ * @since DOM Level 1
+ */
+class CDOM_EXPORT DOMCharacterData: public DOMNode {
+protected:
+    // -----------------------------------------------------------------------
+    //  Hidden constructors
+    // -----------------------------------------------------------------------
+    /** @name Hidden constructors */
+    //@{    
+    DOMCharacterData() {}
+    DOMCharacterData(const DOMCharacterData &other) : DOMNode(other) {}
+    //@}
+
+private:
+    // -----------------------------------------------------------------------
+    // Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    /** @name Unimplemented operators */
+    //@{
+    DOMCharacterData & operator = (const DOMCharacterData &);
+    //@}
+
+public:
+    // -----------------------------------------------------------------------
+    //  All constructors are hidden, just the destructor is available
+    // -----------------------------------------------------------------------
+    /** @name Destructor */
+    //@{
+    /**
+     * Destructor
+     *
+     */
+    virtual ~DOMCharacterData() {};
+    //@}
+
+    // -----------------------------------------------------------------------
+    //  Virtual DOMCharacterData interface
+    // -----------------------------------------------------------------------
+    /** @name Functions introduced in DOM Level 1 */
+    //@{
+    // -----------------------------------------------------------------------
+    //  Getter methods
+    // -----------------------------------------------------------------------
+    /**
+     * Returns the character data of the node that implements this interface.
+     *
+     * The DOM implementation may not put arbitrary limits on the amount of data that
+     * may be stored in a  <code>DOMCharacterData</code> node. However,
+     * implementation limits may  mean that the entirety of a node's data may
+     * not fit into a single <code>XMLCh* String</code>. In such cases, the user
+     * may call <code>substringData</code> to retrieve the data in
+     * appropriately sized pieces.
+     * @exception DOMException
+     *   NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly.
+     * @since DOM Level 1
+     */
+    virtual const XMLCh *     getData() const = 0;
+
+    /**
+     * Returns the number of characters that are available through <code>data</code> and
+     * the <code>substringData</code> method below.
+     *
+     * This may have the value
+     * zero, i.e., <code>CharacterData</code> nodes may be empty.
+     * @since DOM Level 1
+     */
+    virtual XMLSize_t       getLength() const = 0;
+
+    /**
+     * Extracts a range of data from the node.
+     *
+     * @param offset Start offset of substring to extract.
+     * @param count The number of characters to extract.
+     * @return The specified substring. If the sum of <code>offset</code> and
+     *   <code>count</code> exceeds the <code>length</code>, then all
+     *   characters to the end of the data are returned.
+     * @exception DOMException
+     *   INDEX_SIZE_ERR: Raised if the specified offset is negative or greater
+     *   than the number of characters in <code>data</code>, or if the
+     *   specified <code>count</code> is negative.
+     * @since DOM Level 1
+     */
+    virtual const XMLCh *     substringData(XMLSize_t offset,
+                                     XMLSize_t count) const = 0;
+
+    // -----------------------------------------------------------------------
+    //  String methods
+    // -----------------------------------------------------------------------
+    /**
+     * Append the string to the end of the character data of the node.
+     *
+     * Upon success, <code>data</code> provides access to the concatenation of
+     * <code>data</code> and the <code>XMLCh* String</code> specified.
+     * @param arg The <code>XMLCh* String</code> to append.
+     * @exception DOMException
+     *   NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
+     * @since DOM Level 1
+     */
+    virtual void               appendData(const XMLCh *arg) = 0;
+
+    /**
+     * Insert a string at the specified character offset.
+     *
+     * @param offset The character offset at which to insert.
+     * @param arg The <code>XMLCh* String</code> to insert.
+     * @exception DOMException
+     *   INDEX_SIZE_ERR: Raised if the specified offset is negative or greater
+     *   than the number of characters in <code>data</code>.
+     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
+     * @since DOM Level 1
+     */
+    virtual void               insertData(XMLSize_t offset, const  XMLCh *arg) = 0;
+
+    /**
+     * Remove a range of characters from the node.
+     *
+     * Upon success,
+     * <code>data</code> and <code>length</code> reflect the change.
+     * @param offset The offset from which to remove characters.
+     * @param count The number of characters to delete. If the sum of
+     *   <code>offset</code> and <code>count</code> exceeds <code>length</code>
+     *   then all characters from <code>offset</code> to the end of the data
+     *   are deleted.
+     * @exception DOMException
+     *   INDEX_SIZE_ERR: Raised if the specified offset is negative or greater
+     *   than the number of characters in <code>data</code>, or if the
+     *   specified <code>count</code> is negative.
+     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
+     * @since DOM Level 1
+     */
+    virtual void               deleteData(XMLSize_t offset,
+                                  XMLSize_t count) = 0;
+
+    /**
+     * Replace the characters starting at the specified character offset with
+     * the specified string.
+     *
+     * @param offset The offset from which to start replacing.
+     * @param count The number of characters to replace. If the sum of
+     *   <code>offset</code> and <code>count</code> exceeds <code>length</code>
+     *   , then all characters to the end of the data are replaced (i.e., the
+     *   effect is the same as a <code>remove</code> method call with the same
+     *   range, followed by an <code>append</code> method invocation).
+     * @param arg The <code>XMLCh* String</code> with which the range must be
+     *   replaced.
+     * @exception DOMException
+     *   INDEX_SIZE_ERR: Raised if the specified offset is negative or greater
+     *   than the number of characters in <code>data</code>, or if the
+     *   specified <code>count</code> is negative.
+     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
+     * @since DOM Level 1
+     */
+    virtual void               replaceData(XMLSize_t offset,
+                                   XMLSize_t count,
+                                   const XMLCh *arg) = 0;
+
+    /**
+     * Sets the character data of the node that implements this interface.
+     *
+     * @param data The <code>XMLCh* String</code> to set.
+     * @since DOM Level 1
+     */
+    virtual void               setData(const XMLCh *data) = 0;
+    //@}
+
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
+
+
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/DOMNamedNodeMap.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/DOMNamedNodeMap.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/dom/DOMNamedNodeMap.hpp	(revision 2674)
@@ -0,0 +1,247 @@
+#ifndef DOMNamedNodeMap_HEADER_GUARD_
+#define DOMNamedNodeMap_HEADER_GUARD_
+
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: DOMNamedNodeMap.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#include <xercesc/util/XercesDefs.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+
+class DOMNode;
+
+/**
+ *  <code>DOMNamedNodeMap</code>s  are used to
+ * represent collections of nodes that can be accessed by name.
+ *
+ * Note that <code>DOMNamedNodeMap</code> does not inherit from <code>DOMNodeList</code>;
+ * <code>DOMNamedNodeMap</code>s are not maintained in any particular order.
+ * Nodes contained in a <code>DOMNamedNodeMap</code> may
+ * also be accessed by an ordinal index, but this is simply to allow
+ * convenient enumeration of the contents, and
+ * does not imply that the DOM specifies an order to these Nodes.
+ *
+ * @since DOM Level 1
+ */
+class CDOM_EXPORT DOMNamedNodeMap {
+protected:
+    // -----------------------------------------------------------------------
+    //  Hidden constructors
+    // -----------------------------------------------------------------------
+    /** @name Hidden constructors */
+    //@{    
+    DOMNamedNodeMap() {};
+    //@}
+
+private:    
+    // -----------------------------------------------------------------------
+    // Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    /** @name Unimplemented constructors and operators */
+    //@{
+    DOMNamedNodeMap(const DOMNamedNodeMap &);
+    DOMNamedNodeMap & operator = (const DOMNamedNodeMap &);
+    //@}
+
+public:
+    // -----------------------------------------------------------------------
+    //  All constructors are hidden, just the destructor is available
+    // -----------------------------------------------------------------------
+    /** @name Destructor */
+    //@{
+    /**
+     * Destructor
+     *
+     */
+    virtual ~DOMNamedNodeMap() {};
+    //@}
+
+    // -----------------------------------------------------------------------
+    //  Virtual DOMNamedNodeMap interface
+    // -----------------------------------------------------------------------
+    /** @name Functions introduced in DOM Level 1 */
+    //@{
+    // -----------------------------------------------------------------------
+    //  Setter methods
+    // -----------------------------------------------------------------------
+    /**
+     * Adds a node using its <code>nodeName</code> attribute.
+     *
+     * <br>As the <code>nodeName</code> attribute is used to derive the name
+     * which the node must be stored under, multiple nodes of certain types
+     * (those that have a "special" string value) cannot be stored as the names
+     * would clash. This is seen as preferable to allowing nodes to be aliased.
+     * @param arg A node to store in a named node map. The node will later be
+     *   accessible using the value of the <code>nodeName</code> attribute of
+     *   the node. If a node with that name is already present in the map, it
+     *   is replaced by the new one.
+     * @return If the new <code>DOMNode</code> replaces an existing node the
+     *   replaced <code>DOMNode</code> is returned,
+     *   otherwise <code>null</code> is returned.
+     * @exception DOMException
+     *   WRONG_DOCUMENT_ERR: Raised if <code>arg</code> was created from a
+     *   different document than the one that created the
+     *   <code>DOMNamedNodeMap</code>.
+     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this
+     *   <code>DOMNamedNodeMap</code> is readonly.
+     *   <br>INUSE_ATTRIBUTE_ERR: Raised if <code>arg</code> is an
+     *   <code>DOMAttr</code> that is already an attribute of another
+     *   <code>DOMElement</code> object. The DOM user must explicitly clone
+     *   <code>DOMAttr</code> nodes to re-use them in other elements.
+     * @since DOM Level 1
+     */
+    virtual DOMNode   *setNamedItem(DOMNode *arg) = 0;
+
+    // -----------------------------------------------------------------------
+    //  Getter methods
+    // -----------------------------------------------------------------------
+    /**
+     * Returns the <code>index</code>th item in the map.
+     *
+     * If <code>index</code>
+     * is greater than or equal to the number of nodes in the map, this returns
+     * <code>null</code>.
+     * @param index Index into the map.
+     * @return The node at the <code>index</code>th position in the
+     *   <code>DOMNamedNodeMap</code>, or <code>null</code> if that is not a valid
+     *   index.
+     * @since DOM Level 1
+     */
+    virtual DOMNode     *item(XMLSize_t index) const = 0;
+
+    /**
+     * Retrieves a node specified by name.
+     *
+     * @param name The <code>nodeName</code> of a node to retrieve.
+     * @return A <code>DOMNode</code> (of any type) with the specified <code>nodeName</code>, or
+     *   <code>null</code> if it does not identify any node in
+     *   the map.
+     * @since DOM Level 1
+     */
+    virtual DOMNode   *getNamedItem(const XMLCh *name) const = 0;
+
+    /**
+     * The number of nodes in the map.
+     *
+     * The range of valid child node indices is
+     * 0 to <code>length-1</code> inclusive.
+     * @since DOM Level 1
+     */
+    virtual XMLSize_t   getLength() const = 0;
+
+    // -----------------------------------------------------------------------
+    //  Node methods
+    // -----------------------------------------------------------------------
+    /**
+     * Removes a node specified by name.
+     *
+     * If the removed node is an
+     * <code>DOMAttr</code> with a default value it is immediately replaced.
+     * @param name The <code>nodeName</code> of a node to remove.
+     * @return The node removed from the map if a node with such a name exists.
+     * @exception DOMException
+     *   NOT_FOUND_ERR: Raised if there is no node named <code>name</code> in
+     *   the map.
+     * <br>
+     *   NO_MODIFICATION_ALLOWED_ERR: Raised if this <code>DOMNamedNodeMap</code>
+     *   is readonly.
+     * @since DOM Level 1
+     */
+    virtual DOMNode    *removeNamedItem(const XMLCh *name) = 0;
+    //@}
+
+    /** @name Functions introduced in DOM Level 2 */
+    //@{
+    /**
+     * Retrieves a node specified by local name and namespace URI.
+     *
+     * @param namespaceURI The <em>namespace URI</em> of
+     *    the node to retrieve.
+     * @param localName The <em>local name</em> of the node to retrieve.
+     * @return A <code>DOMNode</code> (of any type) with the specified
+     *    local name and namespace URI, or <code>null</code> if they do not
+     *    identify any node in the map.
+     * @since DOM Level 2
+     */
+    virtual DOMNode   *getNamedItemNS(const XMLCh *namespaceURI,
+	                                        const XMLCh *localName) const = 0;
+
+    /**
+     * Adds a node using its <CODE>namespaceURI</CODE> and <CODE>localName</CODE>.
+     *
+     * @param arg A node to store in a named node map. The node will later be
+     *       accessible using the value of the <CODE>namespaceURI</CODE> and
+     *       <CODE>localName</CODE> attribute of the node. If a node with those
+     *       namespace URI and local name is already present in the map, it is
+     *       replaced by the new one.
+     * @return If the new <code>DOMNode</code> replaces an existing node the
+     *   replaced <code>DOMNode</code> is returned,
+     *   otherwise <code>null</code> is returned.
+     * @exception DOMException
+     *   WRONG_DOCUMENT_ERR: Raised if <code>arg</code> was created from a
+     *   different document than the one that created the
+     *   <code>DOMNamedNodeMap</code>.
+     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this
+     *   <code>DOMNamedNodeMap</code> is readonly.
+     *   <br>INUSE_ATTRIBUTE_ERR: Raised if <code>arg</code> is an
+     *   <code>DOMAttr</code> that is already an attribute of another
+     *   <code>DOMElement</code> object. The DOM user must explicitly clone
+     *   <code>DOMAttr</code> nodes to re-use them in other elements.
+     * @since DOM Level 2
+     */
+    virtual DOMNode   *setNamedItemNS(DOMNode *arg) = 0;
+
+    /**
+     * Removes a node specified by local name and namespace URI.
+     *
+     * @param namespaceURI The <em>namespace URI</em> of
+     *    the node to remove.
+     * @param localName The <em>local name</em> of the
+     *    node to remove. When this <code>DOMNamedNodeMap</code> contains the
+     *    attributes attached to an element, as returned by the attributes
+     *    attribute of the <code>DOMNode</code> interface, if the removed
+     *    attribute is known to have a default value, an attribute
+     *    immediately appears containing the default value
+     *    as well as the corresponding namespace URI, local name, and prefix.
+     * @return The node removed from the map if a node with such a local name
+     *    and namespace URI exists.
+     * @exception DOMException
+     *   NOT_FOUND_ERR: Raised if there is no node named <code>name</code> in
+     *   the map.
+     * <br>
+     *   NO_MODIFICATION_ALLOWED_ERR: Raised if this <code>DOMNamedNodeMap</code>
+     *   is readonly.
+     * @since DOM Level 2
+     */
+    virtual DOMNode     *removeNamedItemNS(const XMLCh *namespaceURI,
+	                                          const XMLCh *localName) = 0;
+    //@}
+
+};
+
+#define GetDOMNamedNodeMapMemoryManager   GET_INDIRECT_MM(fOwnerNode)
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
+
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/parsers/AbstractDOMParser.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/parsers/AbstractDOMParser.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/parsers/AbstractDOMParser.hpp	(revision 2674)
@@ -0,0 +1,1872 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: AbstractDOMParser.hpp 568078 2007-08-21 11:43:25Z amassari $
+ *
+ */
+#if !defined(ABSTRACTDOMPARSER_HPP)
+#define ABSTRACTDOMPARSER_HPP
+
+#include <xercesc/dom/DOMDocument.hpp>
+#include <xercesc/framework/XMLDocumentHandler.hpp>
+#include <xercesc/framework/XMLErrorReporter.hpp>
+#include <xercesc/framework/XMLEntityHandler.hpp>
+#include <xercesc/util/SecurityManager.hpp>
+#include <xercesc/util/ValueStackOf.hpp>
+#include <xercesc/validators/DTD/DocTypeHandler.hpp>
+#include <xercesc/dom/DOMDocumentType.hpp>
+#include <xercesc/validators/DTD/DTDElementDecl.hpp>
+#include <xercesc/framework/XMLBufferMgr.hpp>
+#include <xercesc/framework/psvi/PSVIHandler.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class XMLPScanToken;
+class XMLScanner;
+class XMLValidator;
+class DOMDocumentImpl;
+class DOMDocumentTypeImpl;
+class DOMElement;
+class GrammarResolver;
+class XMLGrammarPool;
+class PSVIHandler;
+
+/**
+  * This class implements the Document Object Model (DOM) interface.
+  * It is used as a base for DOM parsers (i.e. XercesDOMParser, DOMBuilder).
+  */
+class PARSERS_EXPORT AbstractDOMParser :
+
+    public XMemory
+    , public XMLDocumentHandler
+    , public XMLErrorReporter
+    , public XMLEntityHandler
+    , public DocTypeHandler
+    , public PSVIHandler
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Class types
+    // -----------------------------------------------------------------------
+    /** @name Public constants */
+    //@{
+
+    /** ValScheme enum used in setValidationScheme
+      *    Val_Never:  Do not report validation errors.
+      *    Val_Always: The parser will always report validation errors.
+      *    Val_Auto:   The parser will report validation errors only if a grammar is specified.
+      *
+      * @see #setValidationScheme
+      */
+    enum ValSchemes
+    {
+        Val_Never
+        , Val_Always
+        , Val_Auto
+    };
+
+    //@}
+
+
+    // -----------------------------------------------------------------------
+    //  Constructors and Detructor
+    // -----------------------------------------------------------------------
+    /** @name Destructor */
+    //@{
+
+    /**
+      * Destructor
+      */
+    virtual ~AbstractDOMParser();
+
+    //@}
+
+    // -----------------------------------------------------------------------
+    //  Utility methods
+    // -----------------------------------------------------------------------
+
+    /** @name Utility methods */
+    //@{
+    /** Reset the parser
+      *
+      * This method resets the state of the DOM driver and makes
+      * it ready for a fresh parse run.
+      */
+    void reset();
+
+    /** Adopt the DOM document
+      *
+      * This method returns the DOMDocument object representing the
+      * root of the document tree.
+      *
+      * The caller will adopt the DOMDocument and thus is responsible to
+      * call DOMDocument::release() to release the associated memory.
+      * The parser will not delete it.   The ownership is transferred
+      * from the parser to the caller.
+      *
+      * @return The adopted DOMDocument object which represents the entire
+      *         XML document.
+      */
+    DOMDocument* adoptDocument();
+
+    //@}
+
+
+    // -----------------------------------------------------------------------
+    //  Getter methods
+    // -----------------------------------------------------------------------
+
+    /** @name Getter methods */
+    //@{
+
+    /** Get the DOM document
+      *
+      * This method returns the DOMDocument object representing the
+      * root of the document tree. This object provides the primary
+      * access to the document's data.
+      *
+      * The returned DOMDocument object is owned by the parser.
+      *
+      * @return The DOMDocument object which represents the entire
+      *         XML document.
+      */
+    DOMDocument* getDocument();
+
+    /** Get a const reference to the validator
+      *
+      * This method returns a reference to the parser's installed
+      * validator.
+      *
+      * @return A const reference to the installed validator object.
+      */
+    const XMLValidator& getValidator() const;
+
+    /**
+      * This method returns an enumerated value that indicates the current
+      * validation scheme set on this parser.
+      *
+      * @return The ValSchemes value current set on this parser.
+      * @see #setValidationScheme
+      */
+    ValSchemes getValidationScheme() const;
+
+    /** Get the 'do schema' flag
+      *
+      * This method returns the state of the parser's schema processing
+      * flag.
+      *
+      * @return true, if the parser is currently configured to
+      *         understand schema, false otherwise.
+      *
+      * @see #setDoSchema
+      */
+    bool getDoSchema() const;
+
+    /** Get the 'full schema constraint checking' flag
+      *
+      * This method returns the state of the parser's full schema constraint
+      * checking flag.
+      *
+      * @return true, if the parser is currently configured to
+      *         have full schema constraint checking, false otherwise.
+      *
+      * @see #setValidationSchemaFullChecking
+      */
+    bool getValidationSchemaFullChecking() const;
+
+    /** Get the identity constraint checking' flag
+      *
+      * This method returns the state of the parser's identity constraint
+      * checking flag.
+      *
+      * @return true, if the parser is currently configured to
+      *         have identity constraint checking, false otherwise.
+      *
+      * @see setIdentityConstraintChecking
+      */
+    bool getIdentityConstraintChecking() const;
+
+    /** Get error count from the last parse operation.
+      *
+      * This method returns the error count from the last parse
+      * operation. Note that this count is actually stored in the
+      * scanner, so this method simply returns what the
+      * scanner reports.
+      *
+      * @return number of errors encountered during the latest
+      *			parse operation.
+      *
+      */
+    int getErrorCount() const;
+
+    /** Get the 'do namespaces' flag
+      *
+      * This method returns the state of the parser's namespace processing
+      * flag.
+      *
+      * @return true, if the parser is currently configured to
+      *         understand namespaces, false otherwise.
+      *
+      * @see #setDoNamespaces
+      */
+    bool getDoNamespaces() const;
+
+    /** Get the 'exit on first error' flag
+      *
+      * This method returns the state of the parser's
+      * exit-on-First-Fatal-Error flag. If this flag is true, then the
+      * parse will exit the first time it sees any non-wellformed XML or
+      * any validity error. The default state is true.
+      *
+      * @return true, if the parser is currently configured to
+      *         exit on the first fatal error, false otherwise.
+      *
+      * @see #setExitOnFirstFatalError
+      */
+    bool getExitOnFirstFatalError() const;
+
+    /**
+      * This method returns the state of the parser's
+      * validation-constraint-fatal flag.
+      *
+      * @return true, if the parser is currently configured to
+      *         set validation constraint errors as fatal, false
+      *         otherwise.
+      *
+      * @see #setValidationContraintFatal
+      */
+    bool getValidationConstraintFatal() const;
+
+    /** Get the 'include entity references' flag
+      *
+      * This method returns the flag that specifies whether the parser is
+      * creating entity reference nodes in the DOM tree being produced.
+      *
+      * @return  The state of the create entity reference node
+      *               flag.
+      * @see #setCreateEntityReferenceNodes
+      */
+    bool  getCreateEntityReferenceNodes()const;
+
+   /** Get the 'include ignorable whitespace' flag.
+      *
+      * This method returns the state of the parser's include ignorable
+      * whitespace flag.
+      *
+      * @return 'true' if the include ignorable whitespace flag is set on
+      *         the parser, 'false' otherwise.
+      *
+      * @see #setIncludeIgnorableWhitespace
+      */
+    bool getIncludeIgnorableWhitespace() const;
+
+   /** Get the set of Namespace/SchemaLocation that is specified externaly.
+      *
+      * This method returns the list of Namespace/SchemaLocation that was
+      * specified using setExternalSchemaLocation.
+      *
+      * The parser owns the returned string, and the memory allocated for
+      * the returned string will be destroyed when the parser is deleted.
+      *
+      * To ensure assessiblity of the returned information after the parser
+      * is deleted, callers need to copy and store the returned information
+      * somewhere else.
+      *
+      * @return a pointer to the list of Namespace/SchemaLocation that was
+      *         specified externally.  The pointer spans the same life-time as
+      *         the parser.  A null pointer is returned if nothing
+      *         was specified externally.
+      *
+      * @see #setExternalSchemaLocation(const XMLCh* const)
+      */
+    XMLCh* getExternalSchemaLocation() const;
+
+   /** Get the noNamespace SchemaLocation that is specified externaly.
+      *
+      * This method returns the no target namespace XML Schema Location
+      * that was specified using setExternalNoNamespaceSchemaLocation.
+      *
+      * The parser owns the returned string, and the memory allocated for
+      * the returned string will be destroyed when the parser is deleted.
+      *
+      * To ensure assessiblity of the returned information after the parser
+      * is deleted, callers need to copy and store the returned information
+      * somewhere else.
+      *
+      * @return a pointer to the no target namespace Schema Location that was
+      *         specified externally.  The pointer spans the same life-time as
+      *         the parser.  A null pointer is returned if nothing
+      *         was specified externally.
+      *
+      * @see #setExternalNoNamespaceSchemaLocation(const XMLCh* const)
+      */
+    XMLCh* getExternalNoNamespaceSchemaLocation() const;
+
+   /** Get the SecurityManager instance attached to this parser.
+      *
+      * This method returns the security manager 
+      * that was specified using setSecurityManager.
+      *
+      * The SecurityManager instance must have been specified by the application; 
+      * this should not be deleted until after the parser has been deleted (or
+      * a new SecurityManager instance has been supplied to the parser).
+      * 
+      * @return a pointer to the SecurityManager instance 
+      *         specified externally.  A null pointer is returned if nothing
+      *         was specified externally.
+      *
+      * @see #setSecurityManager(const SecurityManager* const)
+      */
+    SecurityManager* getSecurityManager() const;
+
+    /** Get the 'Loading External DTD' flag
+      *
+      * This method returns the state of the parser's loading external DTD
+      * flag.
+      *
+      * @return false, if the parser is currently configured to
+      *         ignore external DTD completely, true otherwise.
+      *
+      * @see #setLoadExternalDTD
+      * @see #getValidationScheme
+      */
+    bool getLoadExternalDTD() const;
+
+    /** Get the 'create comment node' flag
+      *
+      * This method returns the flag that specifies whether the parser is
+      * creating comment nodes in the DOM tree being produced.
+      *
+      * @return  The state of the create comment node flag.
+      * @see #setCreateCommentNodes
+      */
+    bool  getCreateCommentNodes()const;
+
+    /**
+      * Get the 'calculate src offset flag'
+      *
+      * This method returns the state of the parser's src offset calculation
+      * when parsing an XML document.
+      *
+      * @return true, if the parser is currently configured to
+      *         calculate src offsets, false otherwise.
+      *
+      * @see #setCalculateSrcOfs
+      */
+    bool getCalculateSrcOfs() const;
+
+    /**
+      * Get the 'force standard uri flag'
+      *
+      * This method returns the state if the parser forces standard uri
+      *
+      * @return true, if the parser is currently configured to
+      *         force standard uri, i.e. malformed uri will be rejected.
+      *
+      * @see #setStandardUriConformant
+      */
+    bool getStandardUriConformant() const;
+
+    /**
+      * This method returns the installed PSVI handler. Suitable
+      * for 'lvalue' usages.
+      *
+      * @return The pointer to the installed PSVI handler object.
+      */
+    PSVIHandler* getPSVIHandler();
+
+    /**
+      * This method returns the installed PSVI handler. Suitable
+      * for 'rvalue' usages.
+      *
+      * @return A const pointer to the installed PSVI handler object.
+      */
+    const PSVIHandler* getPSVIHandler() const;
+
+    /** Get the 'associate schema info' flag
+      *
+      * This method returns the flag that specifies whether
+      * the parser is storing schema informations in the element 
+      * and attribute nodes in the DOM tree being produced.
+      *
+      * @return  The state of the associate schema info flag.
+      * @see #setCreateSchemaInfo
+      */
+    bool  getCreateSchemaInfo() const;
+
+    /** Get the 'generate synthetic annotations' flag
+      *    
+      * @return true, if the parser is currently configured to
+      *         generate synthetic annotations, false otherwise.
+      *         A synthetic XSAnnotation is created when a schema
+      *         component has non-schema attributes but has no
+      *         child annotations so that the non-schema attributes
+      *         can be recovered under PSVI.
+      *
+      * @see #setGenerateSyntheticAnnotations
+      */
+    bool getGenerateSyntheticAnnotations() const;
+
+    /** Get the 'validate annotations' flag
+      *    
+      * @return true, if the parser is currently configured to
+      *         validate annotations, false otherwise.
+      *
+      * @see #setValidateAnnotations
+      */
+    bool getValidateAnnotations() const;
+
+    /** Get the 'ignore annotations' flag
+      *    
+      * @return true, if the parser is currently configured to
+      *         ignore annotations, false otherwise.
+      *
+      * @see #setIgnoreAnnotations
+      */
+    bool getIgnoreAnnotations() const;
+
+    /** Get the 'disable default entity resolution' flag
+      *    
+      * @return true, if the parser is currently configured to
+      *         not perform default entity resolution, false otherwise.
+      *
+      * @see #setDisableDefaultEntityResolution
+      */
+    bool getDisableDefaultEntityResolution() const;
+
+    /** Get the 'skip DTD validation' flag
+      *    
+      * @return true, if the parser is currently configured to
+      *         skip DTD validation, false otherwise.
+      *
+      * @see #setSkipDTDValidation
+      */
+    bool getSkipDTDValidation() const;
+
+    //@}
+
+
+    // -----------------------------------------------------------------------
+    //  Setter methods
+    // -----------------------------------------------------------------------
+
+    /** @name Setter methods */
+    //@{
+    /** set the 'generate synthetic annotations' flag
+      *    
+      * @param newValue The value for specifying whether Synthetic Annotations
+      *        should be generated or not.
+      *         A synthetic XSAnnotation is created when a schema
+      *         component has non-schema attributes but has no
+      *         child annotations so that the non-schema attributes
+      *         can be recovered under PSVI.
+      *
+      * @see #getGenerateSyntheticAnnotations
+      */
+    void setGenerateSyntheticAnnotations(const bool newValue);
+
+    /** set the 'validlate annotations' flag
+      *    
+      * @param newValue The value for specifying whether Annotations
+      *        should be validated or not.
+      *
+      * @see #getValidateAnnotations
+      */
+    void setValidateAnnotations(const bool newValue);
+
+    /** Set the 'do namespaces' flag
+      *
+      * This method allows users to enable or disable the parser's
+      * namespace processing. When set to true, parser starts enforcing
+      * all the constraints and rules specified by the NameSpace
+      * specification.
+      *
+      * The parser's default state is: false.
+      *
+      * @param newState The value specifying whether NameSpace rules should
+      *                 be enforced or not.
+      *
+      * @see #getDoNamespaces
+      */
+    void setDoNamespaces(const bool newState);
+
+    /** Set the 'exit on first error' flag
+      *
+      * This method allows users to set the parser's behaviour when it
+      * encounters the first fatal error. If set to true, the parser
+      * will exit at the first fatal error. If false, then it will
+      * report the error and continue processing.
+      *
+      * The default value is 'true' and the parser exits on the
+      * first fatal error.
+      *
+      * @param newState The value specifying whether the parser should
+      *                 continue or exit when it encounters the first
+      *                 fatal error.
+      *
+      * @see #getExitOnFirstFatalError
+      */
+    void setExitOnFirstFatalError(const bool newState);
+
+    /**
+      * This method allows users to set the parser's behaviour when it
+      * encounters a validtion constraint error. If set to true, and the
+      * the parser will treat validation error as fatal and will exit depends on the
+      * state of "getExitOnFirstFatalError". If false, then it will
+      * report the error and continue processing.
+      *
+      * Note: setting this true does not mean the validation error will be printed with
+      * the word "Fatal Error".   It is still printed as "Error", but the parser
+      * will exit if "setExitOnFirstFatalError" is set to true.
+      *
+      * <p>The default value is 'false'.</p>
+      *
+      * @param newState If true, the parser will exit if "setExitOnFirstFatalError"
+      *                 is set to true.
+      *
+      * @see #getValidationConstraintFatal
+      * @see #setExitOnFirstFatalError
+      */
+    void setValidationConstraintFatal(const bool newState);
+
+     /** Set the 'include entity references' flag
+      *
+      * This method allows the user to specify whether the parser should
+      * create entity reference nodes in the DOM tree being produced.
+      * When the 'create' flag is
+      * true, the parser will create EntityReference nodes in the DOM tree.
+      * The EntityReference nodes and their child nodes will be read-only.
+      * When the 'create' flag is false, no EntityReference nodes will be created.
+      * <p>The replacement text
+      * of the entity is included in either case, either as a
+      * child of the Entity Reference node or in place at the location
+      * of the reference.
+      * <p>The default value is 'true'.
+      *
+      * @param create The new state of the create entity reference nodes
+      *               flag.
+      * @see #getCreateEntityReferenceNodes
+      */
+    void setCreateEntityReferenceNodes(const bool create);
+
+   /** Set the 'include ignorable whitespace' flag
+      *
+      * This method allows the user to specify whether a validating parser
+      * should include ignorable whitespaces as text nodes.  It has no effect
+      * on non-validating parsers which always include non-markup text.
+      * <p>When set to true (also the default), ignorable whitespaces will be
+      * added to the DOM tree as text nodes.  The method
+      * DOMText::isIgnorableWhitespace() will return true for those text
+      * nodes only.
+      * <p>When set to false, all ignorable whitespace will be discarded and
+      * no text node is added to the DOM tree.  Note: applications intended
+      * to process the "xml:space" attribute should not set this flag to false.
+      * And this flag also overrides any schema datateye whitespace facets,
+      * that is, all ignorable whitespace will be discarded even though
+      * 'preserve' is set in schema datatype whitespace facets.
+      *
+      * @param include The new state of the include ignorable whitespace
+      *                flag.
+      *
+      * @see #getIncludeIgnorableWhitespace
+      */
+    void setIncludeIgnorableWhitespace(const bool include);
+
+    /**
+      * This method allows users to set the validation scheme to be used
+      * by this parser. The value is one of the ValSchemes enumerated values
+      * defined by this class:
+      *
+      * <br>  Val_Never  - turn off validation
+      * <br>  Val_Always - turn on validation
+      * <br>  Val_Auto   - turn on validation if any internal/external
+      *                  DTD subset have been seen
+      *
+      * <p>The parser's default state is: Val_Never.</p>
+      *
+      * @param newScheme The new validation scheme to use.
+      *
+      * @see #getValidationScheme
+      */
+    void setValidationScheme(const ValSchemes newScheme);
+
+    /** Set the 'do schema' flag
+      *
+      * This method allows users to enable or disable the parser's
+      * schema processing. When set to false, parser will not process
+      * any schema found.
+      *
+      * The parser's default state is: false.
+      *
+      * Note: If set to true, namespace processing must also be turned on.
+      *
+      * @param newState The value specifying whether schema support should
+      *                 be enforced or not.
+      *
+      * @see #getDoSchema
+      */
+    void setDoSchema(const bool newState);
+
+    /**
+      * This method allows the user to turn full Schema constraint checking on/off.
+      * Only takes effect if Schema validation is enabled.
+      * If turned off, partial constraint checking is done.
+      *
+      * Full schema constraint checking includes those checking that may
+      * be time-consuming or memory intensive. Currently, particle unique
+      * attribution constraint checking and particle derivation resriction checking
+      * are controlled by this option.
+      *
+      * The parser's default state is: false.
+      *
+      * @param schemaFullChecking True to turn on full schema constraint checking.
+      *
+      * @see #getValidationSchemaFullChecking
+      */
+    void setValidationSchemaFullChecking(const bool schemaFullChecking);
+
+    /**
+      * This method allows users to enable or disable the parser's identity
+      * constraint checks.
+      *
+      * <p>By default, the parser does identity constraint checks. 
+      *    The default value is true.</p>
+      *
+      * @param newState The value specifying whether the parser should
+      *                 do identity constraint checks or not in the
+      *                 input XML document.
+      *
+      * @see #getIdentityConstraintChecking
+      */
+    void setIdentityConstraintChecking(const bool newState);
+
+    /**
+      * This method allows the user to specify a list of schemas to use.
+      * If the targetNamespace of a schema specified using this method matches
+      * the targetNamespace of a schema occuring in the instance document in
+      * the schemaLocation attribute, or if the targetNamespace matches the
+      * namespace attribute of the "import" element, the schema specified by the
+      * user using this method will be used (i.e., the schemaLocation attribute
+      * in the instance document or on the "import" element will be effectively ignored).
+      *
+      * If this method is called more than once, only the last one takes effect.
+      *
+      * The syntax is the same as for schemaLocation attributes in instance
+      * documents: e.g, "http://www.example.com file_name.xsd". The user can
+      * specify more than one XML Schema in the list.
+      *
+      * @param schemaLocation the list of schemas to use
+      *
+      * @see #getExternalSchemaLocation
+      */
+
+    void setExternalSchemaLocation(const XMLCh* const schemaLocation);
+
+    /**
+      * This method is same as setExternalSchemaLocation(const XMLCh* const).
+      * It takes native char string as parameter
+      *
+      * @param schemaLocation the list of schemas to use
+      *
+      * @see #setExternalSchemaLocation(const XMLCh* const)
+      */
+    void setExternalSchemaLocation(const char* const schemaLocation);
+
+    /**
+      * This method allows the user to specify the no target namespace XML
+      * Schema Location externally.  If specified, the instance document's
+      * noNamespaceSchemaLocation attribute will be effectively ignored.
+      *
+      * If this method is called more than once, only the last one takes effect.
+      *
+      * The syntax is the same as for the noNamespaceSchemaLocation attribute
+      * that may occur in an instance document: e.g."file_name.xsd".
+      *
+      * @param noNamespaceSchemaLocation the XML Schema Location with no target namespace
+      *
+      * @see #getExternalNoNamespaceSchemaLocation
+      */
+    void setExternalNoNamespaceSchemaLocation(const XMLCh* const noNamespaceSchemaLocation);
+
+    /**
+      * This method is same as setExternalNoNamespaceSchemaLocation(const XMLCh* const).
+      * It takes native char string as parameter
+      *
+      * @param noNamespaceSchemaLocation the XML Schema Location with no target namespace
+      *
+      * @see #setExternalNoNamespaceSchemaLocation(const XMLCh* const)
+      */
+    void setExternalNoNamespaceSchemaLocation(const char* const noNamespaceSchemaLocation);
+
+    /**
+      * This allows an application to set a SecurityManager on
+      * the parser; this object stores information that various
+      * components use to limit their consumption of system
+      * resources while processing documents.
+      *
+      * If this method is called more than once, only the last one takes effect.
+      * It may not be reset during a parse.
+      *
+      *
+      * @param securityManager  the SecurityManager instance to
+      * be used by this parser
+      *
+      * @see #getSecurityManager
+      */
+    void setSecurityManager(SecurityManager* const securityManager);
+
+    /** Set the 'Loading External DTD' flag
+      *
+      * This method allows users to enable or disable the loading of external DTD.
+      * When set to false, the parser will ignore any external DTD completely
+      * if the validationScheme is set to Val_Never.
+      *
+      * The parser's default state is: true.
+      *
+      * This flag is ignored if the validationScheme is set to Val_Always or Val_Auto.
+      *
+      * @param newState The value specifying whether external DTD should
+      *                 be loaded or not.
+      *
+      * @see #getLoadExternalDTD
+      * @see #setValidationScheme
+      */
+    void setLoadExternalDTD(const bool newState);
+
+     /** Set the 'create comment nodes' flag
+      *
+      * This method allows the user to specify whether the parser should
+      * create comment nodes in the DOM tree being produced.
+      * <p>The default value is 'true'.
+      *
+      * @param create The new state of the create comment nodes
+      *               flag.
+      * @see #getCreateCommentNodes
+      */
+    void setCreateCommentNodes(const bool create);
+
+    /** Enable/disable src offset calculation
+      *
+      * This method allows users to enable/disable src offset calculation.
+      * Disabling the calculation will improve performance.
+      *
+      * The parser's default state is: false.
+      *
+      * @param newState The value specifying whether we should enable or
+      *                 disable src offset calculation
+      *
+      * @see #getCalculateSrcOfs
+      */
+    void setCalculateSrcOfs(const bool newState);
+
+    /** Force standard uri
+      *
+      * This method allows users to tell the parser to force standard uri conformance.
+      *
+      * The parser's default state is: false.
+      *
+      * @param newState The value specifying whether the parser should reject malformed URI.
+      *
+      * @see #getStandardUriConformant
+      */
+    void setStandardUriConformant(const bool newState);
+
+    /** Set the scanner to use when scanning the XML document
+      *
+      * This method allows users to set the  scanner to use
+      * when scanning a given XML document.
+      *
+      * @param scannerName The name of the desired scanner
+      */
+    void useScanner(const XMLCh* const scannerName);
+
+    /** Set the implementation to use when creating the  document
+      *
+      * This method allows users to set the implementation to use
+      * to create the document when parseing.
+      *
+      * @param implementationFeatures The names of the desired features the implementation should have.
+      */
+    void useImplementation(const XMLCh* const implementationFeatures);
+
+    /**
+      * This method installs the user specified PSVI handler on
+      * the parser.
+      *
+      * @param handler A pointer to the PSVI handler to be called
+      *                when the parser comes across 'PSVI' events
+      *                as per the schema specification.
+      */
+    virtual void setPSVIHandler(PSVIHandler* const handler);
+
+    /** Set the 'associate schema info' flag
+      *
+      * This method allows users to specify whether 
+      * the parser should store schema informations in the element 
+      * and attribute nodes in the DOM tree being produced.
+      *
+      * @return  The state of the associate schema info flag.
+      * @see #getCreateSchemaInfo
+      */
+    void  setCreateSchemaInfo(const bool newState);
+
+    /** Set the 'ignore annotation' flag
+      *
+      * This method gives users the option to not generate XSAnnotations
+      * when "traversing" a schema.
+      *
+      * The parser's default state is false
+      *
+      * @param newValue The state to set
+      */
+    void setIgnoreAnnotations(const bool newValue);
+
+    /** Set the 'disable default entity resolution' flag
+      *
+      * This method gives users the option to not perform default entity
+      * resolution.  If the user's resolveEntity method returns NULL the
+      * parser will try to resolve the entity on its own.  When this option
+      * is set to true, the parser will not attempt to resolve the entity
+      * when the resolveEntity method returns NULL.
+      *    
+      * The parser's default state is false
+      *
+      * @param newValue The state to set
+      *
+      * @see #entityResolver
+      */
+    void setDisableDefaultEntityResolution(const bool newValue);
+
+    /** Set the 'skip DTD validation' flag
+      *
+      * This method gives users the option to skip DTD validation only when 
+      * schema validation is on (i.e. when performing validation,  we will
+      * ignore the DTD, except for entities, when schema validation is enabled).
+      *
+      * NOTE: This option is ignored if schema validation is disabled.
+      *
+      * The parser's default state is false
+      *
+      * @param newValue The state to set
+      */
+    void setSkipDTDValidation(const bool newValue);
+    //@}
+
+
+    // -----------------------------------------------------------------------
+    //  Parsing methods
+    // -----------------------------------------------------------------------
+
+    /** @name Parsing methods */
+    //@{
+
+    /** Parse via an input source object
+      *
+      * This method invokes the parsing process on the XML file specified
+      * by the InputSource parameter. This API is borrowed from the
+      * SAX Parser interface.
+      *
+      * @param source A const reference to the InputSource object which
+      *               points to the XML file to be parsed.
+      * @exception SAXException Any SAX exception, possibly
+      *            wrapping another exception.
+      * @exception XMLException An exception from the parser or client
+      *            handler code.
+      * @exception DOMException A DOM exception as per DOM spec.
+      * @see InputSource#InputSource
+      */
+    void parse(const InputSource& source);
+
+    /** Parse via a file path or URL
+      *
+      * This method invokes the parsing process on the XML file specified by
+      * the Unicode string parameter 'systemId'. This method is borrowed
+      * from the SAX Parser interface.
+      *
+      * @param systemId A const XMLCh pointer to the Unicode string which
+      *                 contains the path to the XML file to be parsed.
+      *
+      * @exception SAXException Any SAX exception, possibly
+      *            wrapping another exception.
+      * @exception XMLException An exception from the parser or client
+      *            handler code.
+      * @exception DOMException A DOM exception as per DOM spec.
+      * @see #parse(InputSource,...)
+      */
+    void parse(const XMLCh* const systemId);
+
+    /** Parse via a file path or URL (in the local code page)
+      *
+      * This method invokes the parsing process on the XML file specified by
+      * the native char* string parameter 'systemId'.
+      *
+      * @param systemId A const char pointer to a native string which
+      *                 contains the path to the XML file to be parsed.
+      *
+      * @exception SAXException Any SAX exception, possibly
+      *            wrapping another exception.
+      * @exception XMLException An exception from the parser or client
+      *            handler code.
+      * @exception DOMException A DOM exception as per DOM spec.
+      * @see #parse(InputSource,...)
+      */
+    void parse(const char* const systemId);
+
+    /** Begin a progressive parse operation
+      *
+      * This method is used to start a progressive parse on a XML file.
+      * To continue parsing, subsequent calls must be to the parseNext
+      * method.
+      *
+      * It scans through the prolog and returns a token to be used on
+      * subsequent scanNext() calls. If the return value is true, then the
+      * token is legal and ready for further use. If it returns false, then
+      * the scan of the prolog failed and the token is not going to work on
+      * subsequent scanNext() calls.
+      *
+      * @param systemId A pointer to a Unicode string represting the path
+      *                 to the XML file to be parsed.
+      * @param toFill   A token maintaing state information to maintain
+      *                 internal consistency between invocation of 'parseNext'
+      *                 calls.
+      * @return 'true', if successful in parsing the prolog. It indicates the
+      *         user can go ahead with parsing the rest of the file. It
+      *         returns 'false' to indicate that the parser could not parse
+      *         the prolog.
+      *
+      * @see #parseNext
+      * @see #parseFirst(char*,...)
+      * @see #parseFirst(InputSource&,...)
+      */
+    bool parseFirst
+    (
+        const   XMLCh* const    systemId
+        ,       XMLPScanToken&  toFill
+    );
+
+    /** Begin a progressive parse operation
+      *
+      * This method is used to start a progressive parse on a XML file.
+      * To continue parsing, subsequent calls must be to the parseNext
+      * method.
+      *
+      * It scans through the prolog and returns a token to be used on
+      * subsequent scanNext() calls. If the return value is true, then the
+      * token is legal and ready for further use. If it returns false, then
+      * the scan of the prolog failed and the token is not going to work on
+      * subsequent scanNext() calls.
+      *
+      * @param systemId A pointer to a regular native string represting
+      *                 the path to the XML file to be parsed.
+      * @param toFill   A token maintaing state information to maintain
+      *                 internal consistency between invocation of 'parseNext'
+      *                 calls.
+      *
+      * @return 'true', if successful in parsing the prolog. It indicates the
+      *         user can go ahead with parsing the rest of the file. It
+      *         returns 'false' to indicate that the parser could not parse
+      *         the prolog.
+      *
+      * @see #parseNext
+      * @see #parseFirst(XMLCh*,...)
+      * @see #parseFirst(InputSource&,...)
+      */
+    bool parseFirst
+    (
+        const   char* const     systemId
+        ,       XMLPScanToken&  toFill
+    );
+
+    /** Begin a progressive parse operation
+      *
+      * This method is used to start a progressive parse on a XML file.
+      * To continue parsing, subsequent calls must be to the parseNext
+      * method.
+      *
+      * It scans through the prolog and returns a token to be used on
+      * subsequent scanNext() calls. If the return value is true, then the
+      * token is legal and ready for further use. If it returns false, then
+      * the scan of the prolog failed and the token is not going to work on
+      * subsequent scanNext() calls.
+      *
+      * @param source   A const reference to the InputSource object which
+      *                 points to the XML file to be parsed.
+      * @param toFill   A token maintaing state information to maintain
+      *                 internal consistency between invocation of 'parseNext'
+      *                 calls.
+      *
+      * @return 'true', if successful in parsing the prolog. It indicates the
+      *         user can go ahead with parsing the rest of the file. It
+      *         returns 'false' to indicate that the parser could not parse
+      *         the prolog.
+      *
+      * @see #parseNext
+      * @see #parseFirst(XMLCh*,...)
+      * @see #parseFirst(char*,...)
+      */
+    bool parseFirst
+    (
+        const   InputSource&    source
+        ,       XMLPScanToken&  toFill
+    );
+
+    /** Continue a progressive parse operation
+      *
+      * This method is used to continue with progressive parsing of
+      * XML files started by a call to 'parseFirst' method.
+      *
+      * It parses the XML file and stops as soon as it comes across
+      * a XML token (as defined in the XML specification).
+      *
+      * @param token A token maintaing state information to maintain
+      *              internal consistency between invocation of 'parseNext'
+      *              calls.
+      *
+      * @return 'true', if successful in parsing the next XML token.
+      *         It indicates the user can go ahead with parsing the rest
+      *         of the file. It returns 'false' to indicate that the parser
+      *         could not find next token as per the XML specification
+      *         production rule.
+      *
+      * @see #parseFirst(XMLCh*,...)
+      * @see #parseFirst(char*,...)
+      * @see #parseFirst(InputSource&,...)
+      */
+    bool parseNext(XMLPScanToken& token);
+
+    /** Reset the parser after a progressive parse
+      *
+      * If a progressive parse loop exits before the end of the document
+      * is reached, the parser has no way of knowing this. So it will leave
+      * open any files or sockets or memory buffers that were in use at
+      * the time that the parse loop exited.
+      *
+      * The next parse operation will cause these open files and such to
+      * be closed, but the next parse operation might occur at some unknown
+      * future point. To avoid this problem, you should reset the parser if
+      * you exit the loop early.
+      *
+      * If you exited because of an error, then this cleanup will be done
+      * for you. Its only when you exit the file prematurely of your own
+      * accord, because you've found what you wanted in the file most
+      * likely.
+      *
+      * @param token A token maintaing state information to maintain
+      *              internal consistency between invocation of 'parseNext'
+      *              calls.
+      *
+      * @see #parseFirst(XMLCh*,...)
+      * @see #parseFirst(char*,...)
+      * @see #parseFirst(InputSource&,...)
+      */
+    void parseReset(XMLPScanToken& token);
+
+    //@}
+
+    // -----------------------------------------------------------------------
+    //  Implementation of the PSVIHandler interface.
+    // -----------------------------------------------------------------------
+    
+    /** @name Implementation of the PSVIHandler interface. */
+    //@{
+
+    /** Receive notification of the PSVI properties of an element.
+      * The scanner will issue this call after the XMLDocumentHandler
+      * endElement call.  Since the scanner will issue the psviAttributes
+      * call immediately after reading the start tag of an element, all element
+      * content will be effectively bracketed by these two calls.
+      * @param  localName The name of the element whose end tag was just
+      *                     parsed.
+      * @param  uri       The namespace to which the element is bound
+      * @param  elementInfo    Object containing the element's PSVI properties
+      */
+    virtual void handleElementPSVI
+    (
+        const   XMLCh* const            localName 
+        , const XMLCh* const            uri
+        ,       PSVIElement *           elementInfo
+    );
+
+    virtual void handlePartialElementPSVI
+    (
+        const   XMLCh* const            localName 
+        , const XMLCh* const            uri
+        ,       PSVIElement *           elementInfo
+    );
+    /**
+      * Enables PSVI information about attributes to be passed back to the
+      * application.  This callback will be made on *all*
+      * elements; on elements with no attributes, the final parameter will
+      * be null.
+      * @param  localName The name of the element upon which start tag 
+      *          these attributes were encountered.
+      * @param  uri       The namespace to which the element is bound
+      * @param  psviAttributes   Object containing the attributes' PSVI properties
+      *          with information to identify them.
+      */
+    virtual void handleAttributesPSVI
+    (
+        const   XMLCh* const            localName 
+        , const XMLCh* const            uri
+        ,       PSVIAttributeList *     psviAttributes
+    );
+    //@}
+
+    // -----------------------------------------------------------------------
+    //  Implementation of the XMLDocumentHandler interface.
+    // -----------------------------------------------------------------------
+
+    /** @name Implementation of the XMLDocumentHandler interface. */
+    //@{
+
+    /** Handle document character events
+      *
+      * This method is used to report all the characters scanned by the
+      * parser. This DOM implementation stores this data in the appropriate
+      * DOM node, creating one if necessary.
+      *
+      * @param chars   A const pointer to a Unicode string representing the
+      *                character data.
+      * @param length  The length of the Unicode string returned in 'chars'.
+      * @param cdataSection  A flag indicating if the characters represent
+      *                      content from the CDATA section.
+      */
+    virtual void docCharacters
+    (
+        const   XMLCh* const    chars
+        , const unsigned int    length
+        , const bool            cdataSection
+    );
+
+    /** Handle a document comment event
+      *
+      * This method is used to report any comments scanned by the parser.
+      * A new comment node is created which stores this data.
+      *
+      * @param comment A const pointer to a null terminated Unicode
+      *                string representing the comment text.
+      */
+    virtual void docComment
+    (
+        const   XMLCh* const    comment
+    );
+
+    /** Handle a document PI event
+      *
+      * This method is used to report any PI scanned by the parser. A new
+      * PI node is created and appended as a child of the current node in
+      * the tree.
+      *
+      * @param target A const pointer to a Unicode string representing the
+      *               target of the PI declaration.
+      * @param data   A const pointer to a Unicode string representing the
+      *               data of the PI declaration. See the PI production rule
+      *               in the XML specification for details.
+      */
+    virtual void docPI
+    (
+        const   XMLCh* const    target
+        , const XMLCh* const    data
+    );
+
+    /** Handle the end of document event
+      *
+      * This method is used to indicate the end of the current document.
+      */
+    virtual void endDocument();
+
+    /** Handle and end of element event
+      *
+      * This method is used to indicate the end tag of an element. The
+      * DOM parser pops the current element off the top of the element
+      * stack, and make it the new current element.
+      *
+      * @param elemDecl A const reference to the object containing element
+      *                 declaration information.
+      * @param urlId    An id referring to the namespace prefix, if
+      *                 namespaces setting is switched on.
+      * @param isRoot   A flag indicating whether this element was the
+      *                 root element.
+      * @param elemPrefix A const pointer to a Unicode string containing
+      *                 the namespace prefix for this element. Applicable
+      *                 only when namespace processing is enabled.
+      */
+    virtual void endElement
+    (
+        const   XMLElementDecl& elemDecl
+        , const unsigned int    urlId
+        , const bool            isRoot
+        , const XMLCh* const    elemPrefix
+    );
+
+    /** Handle and end of entity reference event
+      *
+      * This method is used to indicate that an end of an entity reference
+      * was just scanned.
+      *
+      * @param entDecl A const reference to the object containing the
+      *                entity declaration information.
+      */
+    virtual void endEntityReference
+    (
+        const   XMLEntityDecl&  entDecl
+    );
+
+    /** Handle an ignorable whitespace vent
+      *
+      * This method is used to report all the whitespace characters, which
+      * are determined to be 'ignorable'. This distinction between characters
+      * is only made, if validation is enabled.
+      *
+      * Any whitespace before content is ignored. If the current node is
+      * already of type DOMNode::TEXT_NODE, then these whitespaces are
+      * appended, otherwise a new Text node is created which stores this
+      * data. Essentially all contiguous ignorable characters are collected
+      * in one node.
+      *
+      * @param chars   A const pointer to a Unicode string representing the
+      *                ignorable whitespace character data.
+      * @param length  The length of the Unicode string 'chars'.
+      * @param cdataSection  A flag indicating if the characters represent
+      *                      content from the CDATA section.
+      */
+    virtual void ignorableWhitespace
+    (
+        const   XMLCh* const    chars
+        , const unsigned int    length
+        , const bool            cdataSection
+    );
+
+    /** Handle a document reset event
+      *
+      * This method allows the user installed Document Handler to 'reset'
+      * itself, freeing all the memory resources. The scanner calls this
+      * method before starting a new parse event.
+      */
+    virtual void resetDocument();
+
+    /** Handle a start document event
+      *
+      * This method is used to report the start of the parsing process.
+      */
+    virtual void startDocument();
+
+    /** Handle a start element event
+      *
+      * This method is used to report the start of an element. It is
+      * called at the end of the element, by which time all attributes
+      * specified are also parsed. A new DOM Element node is created
+      * along with as many attribute nodes as required. This new element
+      * is added appended as a child of the current node in the tree, and
+      * then replaces it as the current node (if the isEmpty flag is false.)
+      *
+      * @param elemDecl A const reference to the object containing element
+      *                 declaration information.
+      * @param urlId    An id referring to the namespace prefix, if
+      *                 namespaces setting is switched on.
+      * @param elemPrefix A const pointer to a Unicode string containing
+      *                 the namespace prefix for this element. Applicable
+      *                 only when namespace processing is enabled.
+      * @param attrList A const reference to the object containing the
+      *                 list of attributes just scanned for this element.
+      * @param attrCount A count of number of attributes in the list
+      *                 specified by the parameter 'attrList'.
+      * @param isEmpty  A flag indicating whether this is an empty element
+      *                 or not. If empty, then no endElement() call will
+      *                 be made.
+      * @param isRoot   A flag indicating whether this element was the
+      *                 root element.
+      * @see DocumentHandler#startElement
+      */
+    virtual void startElement
+    (
+        const   XMLElementDecl&         elemDecl
+        , const unsigned int            urlId
+        , const XMLCh* const            elemPrefix
+        , const RefVectorOf<XMLAttr>&   attrList
+        , const unsigned int            attrCount
+        , const bool                    isEmpty
+        , const bool                    isRoot
+    );
+
+    /** Handle a start entity reference event
+      *
+      * This method is used to indicate the start of an entity reference.
+      * If the expand entity reference flag is true, then a new
+      * DOM Entity reference node is created.
+      *
+      * @param entDecl A const reference to the object containing the
+      *                entity declaration information.
+      */
+    virtual void startEntityReference
+    (
+        const   XMLEntityDecl&  entDecl
+    );
+
+    /** Handle an XMLDecl event
+      *
+      * This method is used to report the XML decl scanned by the parser.
+      * Refer to the XML specification to see the meaning of parameters.
+      *
+      * <b>This method is a no-op for this DOM
+      * implementation.</b>
+      *
+      * @param versionStr A const pointer to a Unicode string representing
+      *                   version string value.
+      * @param encodingStr A const pointer to a Unicode string representing
+      *                    the encoding string value.
+      * @param standaloneStr A const pointer to a Unicode string
+      *                      representing the standalone string value.
+      * @param actualEncStr A const pointer to a Unicode string
+      *                     representing the actual encoding string
+      *                     value.
+      */
+    virtual void XMLDecl
+    (
+        const   XMLCh* const    versionStr
+        , const XMLCh* const    encodingStr
+        , const XMLCh* const    standaloneStr
+        , const XMLCh* const    actualEncStr
+    );
+
+    /** Receive notification of the name and namespace of the type that validated 
+      * the element corresponding to the most recent endElement event.
+      * This event will be fired immediately after the
+      * endElement() event that signifies the end of the element
+      * to which it applies; no other events will intervene.
+      * This method is <em>EXPERIMENTAL</em> and may change, disappear 
+      * or become pure virtual at any time.
+      *
+      * This corresponds to a part of the information required by DOM Core
+      * level 3's TypeInfo interface.
+      *
+      * @param  typeName        local name of the type that actually validated
+      *                         the content of the element corresponding to the
+      *                         most recent endElement() callback
+      * @param  typeURI         namespace of the type that actually validated
+      *                         the content of the element corresponding to the
+      *                         most recent endElement() callback
+      * @deprecated
+      */
+    virtual void elementTypeInfo
+    (
+        const   XMLCh* const    typeName
+        , const XMLCh* const    typeURI
+    );
+    //@}
+
+
+    // -----------------------------------------------------------------------
+    //  Implementation of the deprecated DocTypeHandler interface.
+    // -----------------------------------------------------------------------
+    /** @name Deprecated DocTypeHandler Interfaces */
+    //@{
+    virtual void attDef
+    (
+        const   DTDElementDecl&     elemDecl
+        , const DTDAttDef&          attDef
+        , const bool                ignoring
+    );
+
+    virtual void doctypeComment
+    (
+        const   XMLCh* const    comment
+    );
+
+    virtual void doctypeDecl
+    (
+        const   DTDElementDecl& elemDecl
+        , const XMLCh* const    publicId
+        , const XMLCh* const    systemId
+        , const bool            hasIntSubset
+        , const bool            hasExtSubset = false
+    );
+
+    virtual void doctypePI
+    (
+        const   XMLCh* const    target
+        , const XMLCh* const    data
+    );
+
+    virtual void doctypeWhitespace
+    (
+        const   XMLCh* const    chars
+        , const unsigned int    length
+    );
+
+    virtual void elementDecl
+    (
+        const   DTDElementDecl& decl
+        , const bool            isIgnored
+    );
+
+    virtual void endAttList
+    (
+        const   DTDElementDecl& elemDecl
+    );
+
+    virtual void endIntSubset();
+
+    virtual void endExtSubset();
+
+    virtual void entityDecl
+    (
+        const   DTDEntityDecl&  entityDecl
+        , const bool            isPEDecl
+        , const bool            isIgnored
+    );
+
+    virtual void resetDocType();
+
+    virtual void notationDecl
+    (
+        const   XMLNotationDecl&    notDecl
+        , const bool                isIgnored
+    );
+
+    virtual void startAttList
+    (
+        const   DTDElementDecl& elemDecl
+    );
+
+    virtual void startIntSubset();
+
+    virtual void startExtSubset();
+
+    virtual void TextDecl
+    (
+        const   XMLCh* const    versionStr
+        , const XMLCh* const    encodingStr
+    );
+
+
+    //@}
+
+
+    // -----------------------------------------------------------------------
+    //  Deprecated Methods
+    // -----------------------------------------------------------------------
+    /** @name Deprecated Methods */
+    //@{
+    /**
+      * This method returns the state of the parser's validation
+      * handling flag which controls whether validation checks
+      * are enforced or not.
+      *
+      * @return true, if the parser is currently configured to
+      *         do validation, false otherwise.
+      *
+      * @see #setDoValidation
+      */
+    bool getDoValidation() const;
+
+    /**
+      * This method allows users to enable or disable the parser's validation
+      * checks.
+      *
+      * <p>By default, the parser does not to any validation. The default
+      * value is false.</p>
+      *
+      * @param newState The value specifying whether the parser should
+      *                 do validity checks or not against the DTD in the
+      *                 input XML document.
+      *
+      * @see #getDoValidation
+      */
+    void setDoValidation(const bool newState);
+
+    /** Get the 'expand entity references' flag.
+      * DEPRECATED Use getCreateEntityReferenceNodes() instead.
+      *
+      * This method returns the state of the parser's expand entity
+      * references flag.
+      *
+      * @return 'true' if the expand entity reference flag is set on
+      *         the parser, 'false' otherwise.
+      *
+      * @see #setExpandEntityReferences
+      * @see #setCreateEntityReferenceNodes
+      * @see #getCreateEntityReferenceNodes
+      */
+    bool getExpandEntityReferences() const;
+
+    /** Set the 'expand entity references' flag
+      *
+      * DEPRECATED.  USE setCreateEntityReferenceNodes instead.
+      * This method allows the user to specify whether the parser should
+      * expand all entity reference nodes. When the 'do expansion' flag is
+      * true, the DOM tree does not have any entity reference nodes. It is
+      * replaced by the sub-tree representing the replacement text of the
+      * entity. When the 'do expansion' flag is false, the DOM tree
+      * contains an extra entity reference node, whose children is the
+      * sub tree of the replacement text.
+      * <p>The default value is 'false'.
+      *
+      * @param expand The new state of the expand entity reference
+      *               flag.
+      * @see #setCreateEntityReferenceNodes
+      */
+    void setExpandEntityReferences(const bool expand);
+
+    //@}
+
+protected :
+    // -----------------------------------------------------------------------
+    //  Protected Constructor Methods
+    // -----------------------------------------------------------------------
+    /** @name Constructors */
+    //@{
+    /** Construct a AbstractDOMParser, with an optional validator
+      *
+      * Constructor with an instance of validator class to use for
+      * validation. If you don't provide a validator, a default one will
+      * be created for you in the scanner.
+      *
+      * @param valToAdopt Pointer to the validator instance to use. The
+      *                   parser is responsible for freeing the memory.
+      *
+      * @param gramPool   Pointer to the grammar pool instance from 
+      *                   external application (through derivatives).
+      *                   The parser does NOT own it.
+      *
+      * @param manager    Pointer to the memory manager to be used to
+      *                   allocate objects.
+      */
+    AbstractDOMParser
+    (
+          XMLValidator* const   valToAdopt = 0
+        , MemoryManager* const  manager = XMLPlatformUtils::fgMemoryManager
+        , XMLGrammarPool* const gramPool = 0
+    );
+
+    //@}
+
+    // -----------------------------------------------------------------------
+    //  Protected getter methods
+    // -----------------------------------------------------------------------
+    /** @name Protected getter methods */
+    //@{
+    /** Get the current DOM node
+      *
+      * This provides derived classes with access to the current node, i.e.
+      * the node to which new nodes are being added.
+      */
+    DOMNode* getCurrentNode();
+
+    /** Get the XML scanner
+      *
+      * This provides derived classes with access to the XML scanner.
+      */
+    XMLScanner* getScanner() const;
+
+    /** Get the Grammar resolver
+      *
+      * This provides derived classes with access to the grammar resolver.
+      */
+    GrammarResolver* getGrammarResolver() const;
+
+    /** Get the parse in progress flag
+      *
+      * This provides derived classes with access to the parse in progress
+      * flag.
+      */
+    bool getParseInProgress() const;
+
+    MemoryManager* getMemoryManager() const;
+
+    //@}
+
+
+    // -----------------------------------------------------------------------
+    //  Protected setter methods
+    // -----------------------------------------------------------------------
+
+    /** @name Protected setter methods */
+    //@{
+
+    /** Set the current DOM node
+      *
+      * This method sets the current node maintained inside the parser to
+      * the one specified.
+      *
+      * @param toSet The DOM node which will be the current node.
+      */
+    void setCurrentNode(DOMNode* toSet);
+
+    /** Set the document node
+      *
+      * This method sets the DOM Document node to the one specified.
+      *
+      * @param toSet The new DOM Document node for this XML document.
+      */
+    void setDocument(DOMDocument* toSet);
+
+    /** Set the parse in progress flag
+      *
+      * This method sets the parse in progress flag to true or false.
+      *
+      * @param toSet The value of the flag to be set.
+      */
+    void setParseInProgress(const bool toSet);
+    //@}
+
+    // -----------------------------------------------------------------------
+    //  Protected Helper methods
+    // -----------------------------------------------------------------------
+    /** @name Protected helper methods */
+    //@{
+    virtual DOMElement* createElementNSNode(const XMLCh *fNamespaceURI,
+                                              const XMLCh *qualifiedName);
+
+    void resetPool();
+
+    /**
+     * Returns true if the user has adopted the document
+     */
+    bool isDocumentAdopted() const;
+
+    //@}
+
+
+private :
+    // -----------------------------------------------------------------------
+    //  Initialize/Cleanup methods
+    // -----------------------------------------------------------------------
+    void initialize();
+    void cleanUp();
+    void resetInProgress();
+
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    AbstractDOMParser(const AbstractDOMParser&);
+    AbstractDOMParser& operator=(const AbstractDOMParser&);
+
+protected:
+    // -----------------------------------------------------------------------
+    //  Protected data members
+    //
+    //  fCurrentNode
+    //  fCurrentParent
+    //      Used to track the current node during nested element events. Since
+    //      the tree must be built from a set of disjoint callbacks, we need
+    //      these to keep up with where we currently are.
+    //
+    //  fCurrentEntity
+    //      Used to track the current entity decl.  If a text decl is seen later on,
+    //      it is used to update the encoding and version information.
+    //
+    //  fDocument
+    //      The root document object, filled with the document contents.
+    //
+    //  fCreateEntityReferenceNodes
+    //      Indicates whether entity reference nodes should be created.
+    //
+    //  fIncludeIgnorableWhitespace
+    //      Indicates whether ignorable whiltespace should be added to
+    //      the DOM tree for validating parsers.
+    //
+    //  fScanner
+    //      The scanner used for this parser. This is created during the
+    //      constructor.
+    //
+    //  fImplementationFeatures
+    //      The implementation features that we use to get an implementation
+    //      for use in creating the DOMDocument used during parse. If this is
+    //      null then the default DOMImplementation is used
+    //
+    //  fNodeStack
+    //      Used to track previous parent nodes during nested element events.
+    //
+    //  fParseInProgress
+    //      Used to prevent multiple entrance to the parser while its doing
+    //      a parse.
+    //
+    //  fWithinElement
+    //      A flag to indicate that the parser is within at least one level
+    //      of element processing.
+    //
+    //  fDocumentType
+    //      Used to store and update the documentType variable information
+    //      in fDocument
+    //
+    //  fDocumentVector
+    //      Store all the previous fDocument(s) (thus not the current fDocument)
+    //      created in this parser.  It is destroyed when the parser is destructed.
+    //
+    //  fCreateCommentNodes
+    //      Indicates whether comment nodes should be created.
+    //
+    //  fDocumentAdoptedByUser
+    //      The DOMDocument ownership has been transferred to application
+    //      If set to true, the parser does not own the document anymore
+    //      and thus will not release its memory.
+    //
+    //  fInternalSubset
+    //      Buffer for storing the internal subset information.
+    //      Once complete (after DOCTYPE is finished scanning), send
+    //      it to DocumentType Node
+    //
+    //   fGrammarPool
+    //      The grammar pool passed from external application (through derivatives).
+    //      which could be 0, not owned.
+    //
+    //  fCreateSchemaInfo
+    //      Indicates whether element and attributes will have schema info associated
+    //
+    // -----------------------------------------------------------------------
+    bool                          fCreateEntityReferenceNodes;
+    bool                          fIncludeIgnorableWhitespace;
+    bool                          fWithinElement;
+    bool                          fParseInProgress;
+    bool                          fCreateCommentNodes;
+    bool                          fDocumentAdoptedByUser;
+    bool                          fCreateSchemaInfo;
+    XMLScanner*                   fScanner;
+    XMLCh*                        fImplementationFeatures;
+    DOMNode*                      fCurrentParent;
+    DOMNode*                      fCurrentNode;
+    DOMEntity*                    fCurrentEntity;
+    DOMDocumentImpl*              fDocument;
+    ValueStackOf<DOMNode*>*       fNodeStack;
+    DOMDocumentTypeImpl*          fDocumentType;
+    RefVectorOf<DOMDocumentImpl>* fDocumentVector;
+    GrammarResolver*              fGrammarResolver;
+    XMLStringPool*                fURIStringPool;
+    XMLValidator*                 fValidator;
+    MemoryManager*                fMemoryManager;
+    XMLGrammarPool*               fGrammarPool;
+    XMLBufferMgr                  fBufMgr;
+    XMLBuffer&                    fInternalSubset;
+    PSVIHandler*                  fPSVIHandler;
+};
+
+
+
+// ---------------------------------------------------------------------------
+//  AbstractDOMParser: Getter methods
+// ---------------------------------------------------------------------------
+inline bool AbstractDOMParser::getExpandEntityReferences() const
+{
+    return !fCreateEntityReferenceNodes;
+}
+inline bool AbstractDOMParser::getCreateEntityReferenceNodes() const
+{
+    return fCreateEntityReferenceNodes;
+}
+
+inline bool AbstractDOMParser::getIncludeIgnorableWhitespace() const
+{
+    return fIncludeIgnorableWhitespace;
+}
+
+inline bool AbstractDOMParser::getParseInProgress() const
+{
+    return fParseInProgress;
+}
+
+inline XMLScanner* AbstractDOMParser::getScanner() const
+{
+    return fScanner;
+}
+
+inline GrammarResolver* AbstractDOMParser::getGrammarResolver() const
+{
+    return fGrammarResolver;
+}
+
+inline bool AbstractDOMParser::getCreateCommentNodes() const
+{
+    return fCreateCommentNodes;
+}
+
+inline PSVIHandler* AbstractDOMParser::getPSVIHandler()
+{
+    return fPSVIHandler;
+}
+
+inline const PSVIHandler* AbstractDOMParser::getPSVIHandler() const
+{
+    return fPSVIHandler;
+}
+
+inline bool AbstractDOMParser::getCreateSchemaInfo() const
+{
+    return fCreateSchemaInfo;
+}
+// ---------------------------------------------------------------------------
+//  AbstractDOMParser: Setter methods
+// ---------------------------------------------------------------------------
+inline void AbstractDOMParser::setExpandEntityReferences(const bool expand)
+{
+    fCreateEntityReferenceNodes = !expand;
+}
+
+inline void AbstractDOMParser::setCreateEntityReferenceNodes(const bool create)
+{
+    fCreateEntityReferenceNodes = create;
+}
+
+inline void AbstractDOMParser::setIncludeIgnorableWhitespace(const bool include)
+{
+    fIncludeIgnorableWhitespace = include;
+}
+
+inline void AbstractDOMParser::setCreateCommentNodes(const bool create)
+{
+    fCreateCommentNodes = create;
+}
+
+inline void AbstractDOMParser::useImplementation(const XMLCh* const implementationFeatures)
+{
+    fMemoryManager->deallocate(fImplementationFeatures); 
+    fImplementationFeatures = XMLString::replicate(implementationFeatures, fMemoryManager); 
+}
+
+// ---------------------------------------------------------------------------
+//  AbstractDOMParser: Protected getter methods
+// ---------------------------------------------------------------------------
+inline DOMNode* AbstractDOMParser::getCurrentNode()
+{
+    return fCurrentNode;
+}
+
+inline MemoryManager* AbstractDOMParser::getMemoryManager() const
+{
+    return fMemoryManager;
+}
+
+// ---------------------------------------------------------------------------
+//  AbstractDOMParser: Protected setter methods
+// ---------------------------------------------------------------------------
+inline void AbstractDOMParser::setCurrentNode(DOMNode* toSet)
+{
+    fCurrentNode = toSet;
+}
+
+inline void AbstractDOMParser::setParseInProgress(const bool toSet)
+{
+    fParseInProgress = toSet;
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
+
+
+
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/parsers/SAX2XMLReaderImpl.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/parsers/SAX2XMLReaderImpl.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/parsers/SAX2XMLReaderImpl.hpp	(revision 2674)
@@ -0,0 +1,1781 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: SAX2XMLReaderImpl.hpp 569031 2007-08-23 15:05:28Z amassari $
+ */
+
+#if !defined(SAX2XMLReaderImpl_HPP)
+#define SAX2XMLReaderImpl_HPP
+
+#include <xercesc/parsers/SAXParser.hpp>
+#include <xercesc/sax/Parser.hpp>
+#include <xercesc/framework/XMLBuffer.hpp>
+#include <xercesc/internal/VecAttributesImpl.hpp>
+#include <xercesc/sax2/SAX2XMLReader.hpp>
+#include <xercesc/util/RefStackOf.hpp>
+#include <xercesc/util/SecurityManager.hpp>
+#include <xercesc/util/ValueStackOf.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+
+class ContentHandler;
+class LexicalHandler;
+class DeclHandler;
+class GrammarResolver;
+class XMLGrammarPool;
+class XMLResourceIdentifier;
+class PSVIHandler;
+
+/**
+  * This class implements the SAX2 'XMLReader' interface and should be
+  * used by applications wishing to parse the XML files using SAX2.
+  * It allows the client program to install SAX2 handlers for event
+  * callbacks.
+  *
+  * <p>It can be used to instantiate a validating or non-validating
+  * parser, by setting a member flag.</p>
+  *
+  * we basically re-use the existing SAX1 parser code, but provide a
+  * new implementation of XMLContentHandler that raises the new
+  * SAX2 style events
+  *
+  */
+
+class PARSERS_EXPORT SAX2XMLReaderImpl :
+	public XMemory
+    , public SAX2XMLReader
+    , public XMLDocumentHandler
+    , public XMLErrorReporter
+    , public XMLEntityHandler
+    , public DocTypeHandler
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+    /** @name Constructors and Destructor */
+    //@{
+    /** The default constructor */
+	SAX2XMLReaderImpl(
+                            MemoryManager* const  manager = XMLPlatformUtils::fgMemoryManager
+                          , XMLGrammarPool* const gramPool = 0 
+                          );
+
+    /** The destructor */	
+	~SAX2XMLReaderImpl() ;
+   //@}
+
+    //-----------------------------------------------------------------------
+    // Implementation of SAX2XMLReader Interface
+    //-----------------------------------------------------------------------
+    //-----------------------------------------------------------------------
+    // The XMLReader interface
+    //-----------------------------------------------------------------------
+    /** @name Implementation of SAX 2.0 XMLReader interface's. */
+    //@{
+
+    /**
+      * This method returns the installed content handler.
+      *
+      * @return A pointer to the installed content handler object.
+      */
+    virtual ContentHandler* getContentHandler() const ;
+
+    /**
+      * This method returns the installed DTD handler.
+      *
+      * @return A pointer to the installed DTD handler object.
+      */
+    virtual DTDHandler* getDTDHandler() const ;
+
+    /**
+      * This method returns the installed entity resolver.
+      *
+      * @return A pointer to the installed entity resolver object.
+      */
+    virtual EntityResolver* getEntityResolver() const ;
+
+    /**
+      * This method returns the installed entity resolver.
+      *
+      * @return A pointer to the installed entity resolver object.
+      */
+    virtual XMLEntityResolver* getXMLEntityResolver() const ;
+
+    /**
+      * This method returns the installed error handler.
+      *
+      * @return A pointer to the installed error handler object.
+      */
+    virtual ErrorHandler* getErrorHandler() const ;
+
+    /**
+      * This method returns the installed PSVI handler.
+      *
+      * @return A pointer to the installed PSVI handler object.
+      */
+    virtual PSVIHandler* getPSVIHandler() const ;
+
+	/**
+     * Query the current state of any feature in a SAX2 XMLReader.
+	  *
+	  * @param name The unique identifier (URI) of the feature being set.
+	  * @return The current state of the feature.
+     * @exception SAXNotRecognizedException If the requested feature is not known.
+	  */
+	virtual bool getFeature(const XMLCh* const name) const ;
+
+	/**
+     * Query the current value of a property in a SAX2 XMLReader.
+     *
+     * The parser owns the returned pointer.  The memory allocated for
+     * the returned pointer will be destroyed when the parser is deleted.
+     *
+     * To ensure assessiblity of the returned information after the parser
+     * is deleted, callers need to copy and store the returned information
+     * somewhere else; otherwise you may get unexpected result.  Since the returned
+     * pointer is a generic void pointer, see
+     * http://xerces.apache.org/xerces-c/program-sax2.html#SAX2Properties to learn
+     * exactly what type of property value each property returns for replication.
+     *
+     * @param name The unique identifier (URI) of the property being set.
+     * @return     The current value of the property.  The pointer spans the same
+     *             life-time as the parser.  A null pointer is returned if nothing
+     *             was specified externally.
+     * @exception  SAXNotRecognizedException If the requested property is not known.
+     */
+	virtual void* getProperty(const XMLCh* const name) const ;
+
+  /**
+    * Allow an application to register a document event handler.
+    *
+    * If the application does not register a document handler, all
+    * document events reported by the SAX parser will be silently
+    * ignored (this is the default behaviour implemented by
+    * HandlerBase).
+    *
+    * Applications may register a new or different handler in the
+    * middle of a parse, and the SAX parser must begin using the new
+    * handler immediately.
+    *
+    * @param handler The document handler.
+    * @see DocumentHandler#DocumentHandler
+    * @see HandlerBase#HandlerBase
+    */
+    virtual void setContentHandler(ContentHandler* const handler) ;
+
+  /**
+    * Allow an application to register a DTD event handler.
+    *
+    * If the application does not register a DTD handler, all DTD
+    * events reported by the SAX parser will be silently ignored (this
+    * is the default behaviour implemented by HandlerBase).
+    *
+    * Applications may register a new or different handler in the middle
+    * of a parse, and the SAX parser must begin using the new handler
+    * immediately.
+    *
+    * @param handler The DTD handler.
+    * @see DTDHandler#DTDHandler
+    * @see HandlerBase#HandlerBase
+    */
+    virtual void setDTDHandler(DTDHandler* const handler) ;
+
+  /**
+    * Allow an application to register a custom entity resolver.
+    *
+    * If the application does not register an entity resolver, the
+    * SAX parser will resolve system identifiers and open connections
+    * to entities itself (this is the default behaviour implemented in
+    * DefaultHandler).
+    *
+    * Applications may register a new or different entity resolver
+    * in the middle of a parse, and the SAX parser must begin using
+    * the new resolver immediately.
+    *
+    * <i>Any previously set entity resolver is merely dropped, since the parser
+    * does not own them.  If both setEntityResolver and setXMLEntityResolver
+    * are called, then the last one is used.</i>
+    *
+    * @param resolver The object for resolving entities.
+    * @see EntityResolver#EntityResolver
+    * @see DefaultHandler#DefaultHandler
+    */
+    virtual void setEntityResolver(EntityResolver* const resolver) ;
+    
+  /** Set the entity resolver
+    *
+    * This method allows applications to install their own entity
+    * resolver. By installing an entity resolver, the applications
+    * can trap and potentially redirect references to external
+    * entities.
+    *
+    * <i>Any previously set entity resolver is merely dropped, since the parser
+    * does not own them.  If both setEntityResolver and setXMLEntityResolver
+    * are called, then the last one is used.</i>
+    *
+    * @param resolver  A const pointer to the user supplied entity
+    *                  resolver.
+    *
+    * @see #getXMLEntityResolver
+    */
+    virtual void setXMLEntityResolver(XMLEntityResolver* const resolver) ;
+
+  /**
+    * Allow an application to register an error event handler.
+    *
+    * If the application does not register an error event handler,
+    * all error events reported by the SAX parser will be silently
+    * ignored, except for fatalError, which will throw a SAXException
+    * (this is the default behaviour implemented by HandlerBase).
+    *
+    * Applications may register a new or different handler in the
+    * middle of a parse, and the SAX parser must begin using the new
+    * handler immediately.
+    *
+    * @param handler The error handler.
+    * @see ErrorHandler#ErrorHandler
+    * @see SAXException#SAXException
+    * @see HandlerBase#HandlerBase
+    */
+    virtual void setErrorHandler(ErrorHandler* const handler) ;
+
+  /**
+    * This method installs the user specified PSVI handler on
+    * the parser.
+    *
+    * @param handler A pointer to the PSVI handler to be called
+    *                when the parser comes across 'PSVI' events
+    *                as per the schema specification.
+    */
+    virtual void setPSVIHandler(PSVIHandler* const handler);
+
+  /**
+    * Set the state of any feature in a SAX2 XMLReader.
+    * Supported features in SAX2 for xerces-c are:
+    * <br>(See http://xerces.apache.org/xerces-c/program-sax2.html#SAX2Features for detail description).
+    *
+    * <br>http://xml.org/sax/features/validation (default: false)
+    * <br>http://xml.org/sax/features/namespaces (default: true)
+    * <br>http://xml.org/sax/features/namespace-prefixes (default: false)
+    * <br>http://apache.org/xml/features/validation/dynamic (default: false)
+    * <br>http://apache.org/xml/features/validation/reuse-grammar (default: false)
+    * <br>http://apache.org/xml/features/validation/schema (default: true)
+    * <br>http://apache.org/xml/features/validation/schema-full-checking (default: false)
+    * <br>http://apache.org/xml/features/nonvalidating/load-external-dtd (default: true)
+    * <br>http://apache.org/xml/features/continue-after-fatal-error (default: false)
+    * <br>http://apache.org/xml/features/validation-error-as-fatal (default: false)
+    * <br>http://apache.org/xml/features/validation/reuse-validator (Deprecated) (default: false)
+    *
+    * @param name The unique identifier (URI) of the feature.
+    * @param value The requested state of the feature (true or false).
+    * @exception SAXNotRecognizedException If the requested feature is not known.
+    * @exception SAXNotSupportedException Feature modification is not supported during parse
+    *
+    */
+	virtual void setFeature(const XMLCh* const name, const bool value) ;
+
+  /**
+    * Set the value of any property in a SAX2 XMLReader.
+    * Supported properties in SAX2 for xerces-c are:
+    * <br>(See http://xerces.apache.org/xerces-c/program-sax2.html#SAX2Properties for detail description).
+    *
+    * <br>http://apache.org/xml/properties/schema/external-schemaLocation
+    * <br>http://apache.org/xml/properties/schema/external-noNamespaceSchemaLocation.
+    *
+    * It takes a void pointer as the property value.  Application is required to initialize this void
+    * pointer to a correct type.  See http://xerces.apache.org/xerces-c/program-sax2.html#SAX2Properties
+    * to learn exactly what type of property value each property expects for processing.
+    * Passing a void pointer that was initialized with a wrong type will lead to unexpected result.
+    * If the same property is set more than once, the last one takes effect.
+    *
+    * @param name The unique identifier (URI) of the property being set.
+    * @param value The requested value for the property.  See
+    *            http://xerces.apache.org/xerces-c/program-sax2.html#SAX2Properties to learn
+    *            exactly what type of property value each property expects for processing.
+    *            Passing a void pointer that was initialized with a wrong type will lead
+    *            to unexpected result.
+    * @exception SAXNotRecognizedException If the requested property is not known.
+    * @exception SAXNotSupportedException Property modification is not supported during parse
+    */
+	virtual void setProperty(const XMLCh* const name, void* value) ;
+
+  /**
+    * Parse an XML document.
+    *
+    * The application can use this method to instruct the SAX parser
+    * to begin parsing an XML document from any valid input
+    * source (a character stream, a byte stream, or a URI).
+    *
+    * Applications may not invoke this method while a parse is in
+    * progress (they should create a new Parser instead for each
+    * additional XML document).  Once a parse is complete, an
+    * application may reuse the same Parser object, possibly with a
+    * different input source.
+    *
+    * @param source The input source for the top-level of the
+    *               XML document.
+    * @exception SAXException Any SAX exception, possibly
+    *            wrapping another exception.
+    * @exception XMLException An exception from the parser or client
+    *            handler code.
+    * @see InputSource#InputSource
+    * @see #setEntityResolver
+    * @see #setDTDHandler
+    * @see #setDocumentHandler
+    * @see #setErrorHandler
+    */
+    virtual void parse
+    (
+        const   InputSource&    source
+    ) ;
+
+  /**
+    * Parse an XML document from a system identifier (URI).
+    *
+    * This method is a shortcut for the common case of reading a
+    * document from a system identifier.  It is the exact equivalent
+    * of the following:
+    *
+    * parse(new URLInputSource(systemId));
+    *
+    * If the system identifier is a URL, it must be fully resolved
+    * by the application before it is passed to the parser.
+    *
+    * @param systemId The system identifier (URI).
+    * @exception SAXException Any SAX exception, possibly
+    *            wrapping another exception.
+    * @exception XMLException An exception from the parser or client
+    *            handler code.
+    * @see #parse(InputSource)
+    */
+    virtual void parse
+    (
+        const   XMLCh* const    systemId
+    ) ;
+
+  /**
+    * Parse an XML document from a system identifier (URI).
+    *
+    * This method is a shortcut for the common case of reading a
+    * document from a system identifier.  It is the exact equivalent
+    * of the following:
+    *
+    * parse(new URLInputSource(systemId));
+    *
+    * If the system identifier is a URL, it must be fully resolved
+    * by the application before it is passed to the parser.
+    *
+    * @param systemId The system identifier (URI).
+    * @exception SAXException Any SAX exception, possibly
+    *            wrapping another exception.
+    * @exception XMLException An exception from the parser or client
+    *            handler code.
+    * @see #parse(InputSource)
+    */
+    virtual void parse
+    (
+        const   char* const     systemId
+    ) ;
+	
+    //@}
+
+    // -----------------------------------------------------------------------
+    //  SAX 2.0-ext
+    // -----------------------------------------------------------------------
+    /** @name SAX 2.0-ext */
+    //@{
+    /**
+      * This method returns the installed declaration handler.
+      *
+      * @return A pointer to the installed declaration handler object.
+      */
+    virtual DeclHandler* getDeclarationHandler() const ;
+
+	/**
+      * This method returns the installed lexical handler.
+      *
+      * @return A pointer to the installed lexical handler object.
+      */
+    virtual LexicalHandler* getLexicalHandler() const ;
+
+   /**
+    * Allow an application to register a declaration event handler.
+    *
+    * If the application does not register a declaration handler,
+    * all events reported by the SAX parser will be silently
+    * ignored. (this is the default behaviour implemented by DefaultHandler).
+    *
+    * Applications may register a new or different handler in the
+    * middle of a parse, and the SAX parser must begin using the new
+    * handler immediately.
+    *
+    * @param handler The DTD declaration handler.
+    * @see DeclHandler#DeclHandler
+    * @see SAXException#SAXException
+    * @see DefaultHandler#DefaultHandler
+    */
+    virtual void setDeclarationHandler(DeclHandler* const handler) ;
+
+   /**
+    * Allow an application to register a lexical event handler.
+    *
+    * If the application does not register a lexical handler,
+    * all events reported by the SAX parser will be silently
+    * ignored. (this is the default behaviour implemented by HandlerBase).
+    *
+    * Applications may register a new or different handler in the
+    * middle of a parse, and the SAX parser must begin using the new
+    * handler immediately.
+    *
+    * @param handler The error handler.
+    * @see LexicalHandler#LexicalHandler
+    * @see SAXException#SAXException
+    * @see HandlerBase#HandlerBase
+    */
+    virtual void setLexicalHandler(LexicalHandler* const handler) ;
+
+    //@}
+
+    // -----------------------------------------------------------------------
+    //  Getter Methods
+    // -----------------------------------------------------------------------
+    /** @name Getter Methods (Xerces-C specific) */
+    //@{
+    /**
+	  * This method is used to get the current validator.
+	  *
+	  * <b>SAX2XMLReader assumes responsibility for the validator.  It will be
+	  * deleted when the XMLReader is destroyed.</b>
+	  *
+	  * @return A pointer to the validator.  An application should not deleted
+	  * the object returned.
+	  *
+	  */
+	virtual XMLValidator* getValidator() const ;
+    //@}
+
+    /** Get error count from the last parse operation.
+      *
+      * This method returns the error count from the last parse
+      * operation. Note that this count is actually stored in the
+      * scanner, so this method simply returns what the
+      * scanner reports.
+      *
+      * @return number of errors encountered during the latest
+      *			parse operation.
+      */
+    virtual int getErrorCount() const ;
+
+    /**
+      * This method returns the state of the parser's
+      * exit-on-First-Fatal-Error flag.
+      *
+      * <p>Or you can query the feature "http://apache.org/xml/features/continue-after-fatal-error"
+      * which indicates the opposite state.</p>
+      *
+      * @return true, if the parser is currently configured to
+      *         exit on the first fatal error, false otherwise.
+      *
+      * @see #setExitOnFirstFatalError
+      * @see #getFeature
+      */
+    virtual bool getExitOnFirstFatalError() const ;
+
+    /**
+      * This method returns the state of the parser's
+      * validation-constraint-fatal flag.
+      *
+      * <p>Or you can query the feature "http://apache.org/xml/features/validation-error-as-fatal"
+      * which means the same thing.
+      *
+      * @return true, if the parser is currently configured to
+      *         set validation constraint errors as fatal, false
+      *         otherwise.
+      *
+      * @see #setValidationContraintFatal
+      * @see #getFeature
+      */
+    virtual bool getValidationConstraintFatal() const ;
+
+    /**
+      * Retrieve the grammar that is associated with the specified namespace key
+      *
+      * @param  nameSpaceKey Namespace key
+      * @return Grammar associated with the Namespace key.
+      */
+    virtual Grammar* getGrammar(const XMLCh* const nameSpaceKey);
+
+    /**
+      * Retrieve the grammar where the root element is declared.
+      *
+      * @return Grammar where root element declared
+      */
+    virtual Grammar* getRootGrammar();
+
+    /**
+      * Returns the string corresponding to a URI id from the URI string pool.
+      *
+      * @param uriId id of the string in the URI string pool.
+      * @return URI string corresponding to the URI id.
+      */
+    virtual const XMLCh* getURIText(unsigned int uriId) const;
+
+    /**
+      * Returns the current src offset within the input source.
+      * To be used only while parsing is in progress.
+      *
+      * @return offset within the input source
+      */
+    virtual unsigned int getSrcOffset() const;
+
+    //@}
+
+    // -----------------------------------------------------------------------
+    //  Setter Methods
+    // -----------------------------------------------------------------------
+    /** @name Setter Methods (Xerces-C specific) */
+    //@{
+    /**
+	  * This method is used to set a validator.
+	  *
+	  * <b>SAX2XMLReader assumes responsibility for the validator.  It will be
+	  * deleted when the XMLReader is destroyed.</b>
+	  *
+	  * @param valueToAdopt A pointer to the validator that the reader should use.
+	  *
+	  */
+	virtual void setValidator(XMLValidator* valueToAdopt) ;
+
+    /**
+      * This method allows users to set the parser's behaviour when it
+      * encounters the first fatal error. If set to true, the parser
+      * will exit at the first fatal error. If false, then it will
+      * report the error and continue processing.
+      *
+      * <p>The default value is 'true' and the parser exits on the
+      * first fatal error.</p>
+      *
+      * <p>Or you can set the feature "http://apache.org/xml/features/continue-after-fatal-error"
+      * which has the opposite behaviour.</p>
+      *
+      * <p>If both the feature above and this function are used, the latter takes effect.</p>
+      *
+      * @param newState The value specifying whether the parser should
+      *                 continue or exit when it encounters the first
+      *                 fatal error.
+      *
+      * @see #getExitOnFirstFatalError
+      * @see #setFeature
+      */
+    virtual void setExitOnFirstFatalError(const bool newState) ;
+
+    /**
+      * This method allows users to set the parser's behaviour when it
+      * encounters a validtion constraint error. If set to true, and the
+      * the parser will treat validation error as fatal and will exit depends on the
+      * state of "getExitOnFirstFatalError". If false, then it will
+      * report the error and continue processing.
+      *
+      * Note: setting this true does not mean the validation error will be printed with
+      * the word "Fatal Error".   It is still printed as "Error", but the parser
+      * will exit if "setExitOnFirstFatalError" is set to true.
+      *
+      * <p>The default value is 'false'.</p>
+      *
+      * <p>Or you can set the feature "http://apache.org/xml/features/validation-error-as-fatal"
+      * which means the same thing.</p>
+      *
+      * <p>If both the feature above and this function are used, the latter takes effect.</p>
+      *
+      * @param newState If true, the parser will exit if "setExitOnFirstFatalError"
+      *                 is set to true.
+      *
+      * @see #getValidationConstraintFatal
+      * @see #setExitOnFirstFatalError
+      * @see #setFeature
+      */
+    virtual void setValidationConstraintFatal(const bool newState) ;
+    //@}
+
+
+    // -----------------------------------------------------------------------
+    //  Progressive scan methods
+    // -----------------------------------------------------------------------
+
+    /** @name Progressive scan methods */
+    //@{
+
+    /** Begin a progressive parse operation
+      *
+      * This method is used to start a progressive parse on a XML file.
+      * To continue parsing, subsequent calls must be to the parseNext
+      * method.
+      *
+      * It scans through the prolog and returns a token to be used on
+      * subsequent scanNext() calls. If the return value is true, then the
+      * token is legal and ready for further use. If it returns false, then
+      * the scan of the prolog failed and the token is not going to work on
+      * subsequent scanNext() calls.
+      *
+      * @param systemId A pointer to a Unicode string represting the path
+      *                 to the XML file to be parsed.
+      * @param toFill   A token maintaing state information to maintain
+      *                 internal consistency between invocation of 'parseNext'
+      *                 calls.
+      *
+      * @return 'true', if successful in parsing the prolog. It indicates the
+      *         user can go ahead with parsing the rest of the file. It
+      *         returns 'false' to indicate that the parser could parse the
+      *         prolog (which means the token will not be valid.)
+      *
+      * @see #parseNext
+      * @see #parseFirst(char*,...)
+      * @see #parseFirst(InputSource&,...)
+      */
+    virtual bool parseFirst
+    (
+        const   XMLCh* const    systemId
+        ,       XMLPScanToken&  toFill
+    ) ;
+
+    /** Begin a progressive parse operation
+      *
+      * This method is used to start a progressive parse on a XML file.
+      * To continue parsing, subsequent calls must be to the parseNext
+      * method.
+      *
+      * It scans through the prolog and returns a token to be used on
+      * subsequent scanNext() calls. If the return value is true, then the
+      * token is legal and ready for further use. If it returns false, then
+      * the scan of the prolog failed and the token is not going to work on
+      * subsequent scanNext() calls.
+      *
+      * @param systemId A pointer to a regular native string represting
+      *                 the path to the XML file to be parsed.
+      * @param toFill   A token maintaing state information to maintain
+      *                 internal consIstency between invocation of 'parseNext'
+      *                 calls.
+      *
+      * @return 'true', if successful in parsing the prolog. It indicates the
+      *         user can go ahead with parsing the rest of the file. It
+      *         returns 'false' to indicate that the parser could not parse
+      *         the prolog.
+      *
+      * @see #parseNext
+      * @see #parseFirst(XMLCh*,...)
+      * @see #parseFirst(InputSource&,...)
+      */
+    virtual bool parseFirst
+    (
+        const   char* const     systemId
+        ,       XMLPScanToken&  toFill
+    ) ;
+
+    /** Begin a progressive parse operation
+      *
+      * This method is used to start a progressive parse on a XML file.
+      * To continue parsing, subsequent calls must be to the parseNext
+      * method.
+      *
+      * It scans through the prolog and returns a token to be used on
+      * subsequent scanNext() calls. If the return value is true, then the
+      * token is legal and ready for further use. If it returns false, then
+      * the scan of the prolog failed and the token is not going to work on
+      * subsequent scanNext() calls.
+      *
+      * @param source   A const reference to the InputSource object which
+      *                 points to the XML file to be parsed.
+      * @param toFill   A token maintaing state information to maintain
+      *                 internal consistency between invocation of 'parseNext'
+      *                 calls.
+      *
+      * @return 'true', if successful in parsing the prolog. It indicates the
+      *         user can go ahead with parsing the rest of the file. It
+      *         returns 'false' to indicate that the parser could not parse
+      *         the prolog.
+      *
+      * @see #parseNext
+      * @see #parseFirst(XMLCh*,...)
+      * @see #parseFirst(char*,...)
+      */
+    virtual bool parseFirst
+    (
+        const   InputSource&    source
+        ,       XMLPScanToken&  toFill
+    ) ;
+
+    /** Continue a progressive parse operation
+      *
+      * This method is used to continue with progressive parsing of
+      * XML files started by a call to 'parseFirst' method.
+      *
+      * It parses the XML file and stops as soon as it comes across
+      * a XML token (as defined in the XML specification). Relevant
+      * callback handlers are invoked as required by the SAX
+      * specification.
+      *
+      * @param token A token maintaing state information to maintain
+      *              internal consistency between invocation of 'parseNext'
+      *              calls.
+      *
+      * @return 'true', if successful in parsing the next XML token.
+      *         It indicates the user can go ahead with parsing the rest
+      *         of the file. It returns 'false' to indicate that the parser
+      *         could not find next token as per the XML specification
+      *         production rule.
+      *
+      * @see #parseFirst(XMLCh*,...)
+      * @see #parseFirst(char*,...)
+      * @see #parseFirst(InputSource&,...)
+      */
+    virtual bool parseNext(XMLPScanToken& token) ;
+
+    /** Reset the parser after a progressive parse
+      *
+      * If a progressive parse loop exits before the end of the document
+      * is reached, the parser has no way of knowing this. So it will leave
+      * open any files or sockets or memory buffers that were in use at
+      * the time that the parse loop exited.
+      *
+      * The next parse operation will cause these open files and such to
+      * be closed, but the next parse operation might occur at some unknown
+      * future point. To avoid this problem, you should reset the parser if
+      * you exit the loop early.
+      *
+      * If you exited because of an error, then this cleanup will be done
+      * for you. Its only when you exit the file prematurely of your own
+      * accord, because you've found what you wanted in the file most
+      * likely.
+      *
+      * @param token A token maintaing state information to maintain
+      *              internal consistency between invocation of 'parseNext'
+      *              calls.
+      */
+    virtual void parseReset(XMLPScanToken& token) ;
+
+    //@}
+
+    // -----------------------------------------------------------------------
+    //  Implementation of the grammar preparsing interface
+    // -----------------------------------------------------------------------
+
+    /** @name Implementation of Grammar preparsing interface's. */
+    //@{
+    /**
+      * Preparse schema grammar (XML Schema, DTD, etc.) via an input source
+      * object.
+      *
+      * This method invokes the preparsing process on a schema grammar XML
+      * file specified by the SAX InputSource parameter.
+      *
+      * <p><b>"Experimental - subject to change"</b></p>
+      *
+      * @param source A const reference to the SAX InputSource object which
+      *               points to the schema grammar file to be preparsed.
+      * @param grammarType The grammar type (Schema or DTD).
+      * @param toCache If <code>true</code>, we cache the preparsed grammar,
+      *                otherwise, no chaching. Default is <code>false</code>.
+      * @return The preparsed schema grammar object (SchemaGrammar or
+      *         DTDGrammar). That grammar object is owned by the parser.
+      *
+      * @exception SAXException Any SAX exception, possibly
+      *            wrapping another exception.
+      * @exception XMLException An exception from the parser or client
+      *            handler code.
+      * @exception DOMException A DOM exception as per DOM spec.
+      *
+      * @see InputSource#InputSource
+      */
+    virtual Grammar* loadGrammar(const InputSource& source,
+                                 const short grammarType,
+                                 const bool toCache = false);
+
+    /**
+      * Preparse schema grammar (XML Schema, DTD, etc.) via a file path or URL
+      *
+      * This method invokes the preparsing process on a schema grammar XML
+      * file specified by the file path parameter.
+      *
+      * <p><b>"Experimental - subject to change"</b></p>
+      *
+      * @param systemId A const XMLCh pointer to the Unicode string which
+      *                 contains the path to the XML grammar file to be
+      *                 preparsed.
+      * @param grammarType The grammar type (Schema or DTD).
+      * @param toCache If <code>true</code>, we cache the preparsed grammar,
+      *                otherwise, no chaching. Default is <code>false</code>.
+      * @return The preparsed schema grammar object (SchemaGrammar or
+      *         DTDGrammar). That grammar object is owned by the parser.
+      *
+      * @exception SAXException Any SAX exception, possibly
+      *            wrapping another exception.
+      * @exception XMLException An exception from the parser or client
+      *            handler code.
+      * @exception DOMException A DOM exception as per DOM spec.
+      */
+    virtual Grammar* loadGrammar(const XMLCh* const systemId,
+                                 const short grammarType,
+                                 const bool toCache = false);
+
+    /**
+      * Preparse schema grammar (XML Schema, DTD, etc.) via a file path or URL
+      *
+      * This method invokes the preparsing process on a schema grammar XML
+      * file specified by the file path parameter.
+      *
+      * <p><b>"Experimental - subject to change"</b></p>
+      *
+      * @param systemId A const char pointer to a native string which contains
+      *                 the path to the XML grammar file to be preparsed.
+      * @param grammarType The grammar type (Schema or DTD).
+      * @param toCache If <code>true</code>, we cache the preparsed grammar,
+      *                otherwise, no chaching. Default is <code>false</code>.
+      * @return The preparsed schema grammar object (SchemaGrammar or
+      *         DTDGrammar). That grammar object is owned by the parser.
+      *
+      * @exception SAXException Any SAX exception, possibly
+      *            wrapping another exception.
+      * @exception XMLException An exception from the parser or client
+      *            handler code.
+      * @exception DOMException A DOM exception as per DOM spec.
+      */
+    virtual Grammar* loadGrammar(const char* const systemId,
+                                 const short grammarType,
+                                 const bool toCache = false);
+
+    /**
+      * Clear the cached grammar pool
+      */
+    virtual void resetCachedGrammarPool();
+
+    /** Set maximum input buffer size
+      *
+      * This method allows users to limit the size of buffers used in parsing
+      * XML character data. The effect of setting this size is to limit the
+      * size of a ContentHandler::characters() call.
+      *
+      * The parser's default input buffer size is 1 megabyte.
+      *
+      * @param bufferSize The maximum input buffer size
+      */
+    virtual void setInputBufferSize(const size_t bufferSize);
+
+    //@}
+
+
+    // -----------------------------------------------------------------------
+    //  Advanced document handler list maintenance methods
+    // -----------------------------------------------------------------------
+
+    /** @name Advanced document handler list maintenance methods */
+    //@{
+    /**
+      * This method installs the specified 'advanced' document callback
+      * handler, thereby allowing the user to customize the processing,
+      * if they choose to do so. Any number of advanced callback handlers
+      * maybe installed.
+      *
+      * <p>The methods in the advanced callback interface represent
+      * Xerces-C extensions. There is no specification for this interface.</p>
+      *
+      * @param toInstall A pointer to the users advanced callback handler.
+      *
+      * @see #removeAdvDocHandler
+      */
+    virtual void installAdvDocHandler(XMLDocumentHandler* const toInstall) ;
+
+    /**
+      * This method removes the 'advanced' document handler callback from
+      * the underlying parser scanner. If no handler is installed, advanced
+      * callbacks are not invoked by the scanner.
+      * @param toRemove A pointer to the advanced callback handler which
+      *                 should be removed.
+      *
+      * @see #installAdvDocHandler
+      */
+    virtual bool removeAdvDocHandler(XMLDocumentHandler* const toRemove) ;
+    //@}
+
+	// -----------------------------------------------------------------------
+    //  Implementation of the XMLDocumentHandler interface
+    // -----------------------------------------------------------------------
+    /** @name Implementation of the XMLDocumentHandler Interface. */
+    //@{
+    /**
+      * This method is used to report all the characters scanned
+      * by the parser. The driver will invoke the 'characters'
+      * method of the user installed SAX Document Handler.
+      *
+      * <p>If any advanced callback handlers are installed, the
+      * corresponding 'docCharacters' method will also be invoked.</p>
+      *
+      * @param chars   A const pointer to a Unicode string representing the
+      *                character data.
+      * @param length  The length of the Unicode string returned in 'chars'.
+      * @param cdataSection  A flag indicating if the characters represent
+      *                      content from the CDATA section.
+      * @see DocumentHandler#characters
+      */
+    virtual void docCharacters
+    (
+        const   XMLCh* const    chars
+        , const unsigned int    length
+        , const bool            cdataSection
+    );
+
+    /**
+      * This method is used to report any comments scanned by the parser.
+      * This method is a no-op unless, unless an advanced callback handler
+      * is installed, in which case the corresponding 'docComment' method
+      * is invoked.
+      *
+      * @param comment A const pointer to a null terminated Unicode
+      *                string representing the comment text.
+      */
+    virtual void docComment
+    (
+        const   XMLCh* const    comment
+    );
+
+    /**
+      * This method is used to report any PI scanned by the parser.
+      *
+      * <p>Any PI's occurring before any 'content' are not reported
+      * to any SAX handler as per the specification. However, all
+      * PI's within content are reported via the SAX Document Handler's
+      * 'processingInstruction' method.
+      *
+      * <p>If any advanced callback handlers are installed, the
+      * corresponding 'docPI' method will be invoked.</p>
+      *
+      * @param target A const pointer to a Unicode string representing the
+      *               target of the PI declaration.
+      * @param data   A const pointer to a Unicode string representing the
+      *               data of the PI declaration. See the PI production rule
+      *               in the XML specification for details.
+      *
+      * @see DocumentHandler#processingInstruction
+      */
+    virtual void docPI
+    (
+        const   XMLCh* const    target
+        , const XMLCh* const    data
+    );
+
+    /**
+      * This method is used to indicate the end of root element
+      * was just scanned by the parser. Corresponding 'endDocument'
+      * method of the user installed SAX Document Handler will also
+      * be invoked.
+      *
+      * <p>In addition, if any advanced callback handlers are installed,
+      * the corresponding 'endDocument' method is invoked.</p>
+      *
+      * @see DocumentHandler#endDocument
+      */
+    virtual void endDocument();
+
+    /**
+      * This method is used to indicate the end tag of an element.
+      * The driver will invoke the corresponding 'endElement' method of
+      * the SAX Document Handler interface.
+      *
+      * <p>If any advanced callback handlers are installed, the
+      * corresponding 'endElement' method is also invoked.</p>
+      *
+      * @param elemDecl A const reference to the object containing element
+      *                 declaration information.
+      * @param urlId    An id referring to the namespace prefix, if
+      *                 namespaces setting is switched on.
+      * @param isRoot   A flag indicating whether this element was the
+      *                 root element.
+      * @param elemPrefix A const pointer to a Unicode string containing
+      *                   the namespace prefix for this element. Applicable
+      *                   only when namespace processing is enabled.
+      * @see DocumentHandler#endElement
+      */
+    virtual void endElement
+    (
+        const   XMLElementDecl& elemDecl
+        , const unsigned int    urlId
+        , const bool            isRoot
+        , const XMLCh* const    elemPrefix=0
+    );
+
+    /**
+      * This method is used to indicate that an end of an entity reference
+      * was just scanned.
+      *
+      * <p>If any advanced callback handlers are installed, the
+      * corresponding 'endEnityReference' method is invoked.</p>
+      *
+      * @param entDecl A const reference to the object containing the
+      *                entity declaration information.
+      */
+    virtual void endEntityReference
+    (
+        const   XMLEntityDecl&  entDecl
+    );
+
+    /**
+      * This method is used to report all the whitespace characters,
+      * which are determined to be 'ignorable'. This distinction
+      * between characters is only made, if validation is enabled.
+      * Corresponding 'ignorableWhitespace' method of the user installed
+      * SAX Document Handler interface is called.
+      *
+      * <p>Any whitespace before content is not reported to the SAX
+      * Document Handler method, as per the SAX specification.
+      * However, if any advanced callback handlers are installed, the
+      * corresponding 'ignorableWhitespace' method is invoked.</p>
+      *
+      * @param chars   A const pointer to a Unicode string representing the
+      *                ignorable whitespace character data.
+      * @param length  The length of the Unicode string 'chars'.
+      * @param cdataSection  A flag indicating if the characters represent
+      *                      content from the CDATA section.
+      * @see DocumentHandler#ignorableWhitespace
+      */
+    virtual void ignorableWhitespace
+    (
+        const   XMLCh* const    chars
+        , const unsigned int    length
+        , const bool            cdataSection
+    );
+
+    /**
+      * This method allows the user installed Document Handler and
+      * any advanced callback handlers to 'reset' themselves.
+      */
+    virtual void resetDocument();
+
+    /**
+      * This method is used to report the start of the parsing process.
+      * The corresponding user installed SAX Document Handler's method
+      * 'startDocument' is invoked.
+      *
+      * <p>If any advanced callback handlers are installed, then the
+      * corresponding 'startDocument' method is also called.</p>
+      *
+      * @see DocumentHandler#startDocument
+      */
+    virtual void startDocument();
+
+    /**
+      * This method is used to report the start of an element. It is
+      * called at the end of the element, by which time all attributes
+      * specified are also parsed. The corresponding user installed
+      * SAX Document Handler's method 'startElement' is invoked.
+      *
+      * <p>If any advanced callback handlers are installed, then the
+      * corresponding 'startElement' method is also called.</p>
+      *
+      * @param elemDecl A const reference to the object containing element
+      *                 declaration information.
+      * @param urlId    An id referring to the namespace prefix, if
+      *                 namespaces setting is switched on.
+      * @param elemPrefix A const pointer to a Unicode string containing
+      *                   the namespace prefix for this element. Applicable
+      *                   only when namespace processing is enabled.
+      * @param attrList  A const reference to the object containing the
+      *                  list of attributes just scanned for this element.
+      * @param attrCount A count of number of attributes in the list
+      *                  specified by the parameter 'attrList'.
+      * @param isEmpty  A flag indicating whether this is an empty element
+      *                 or not.
+      * @param isRoot   A flag indicating whether this element was the
+      *                 root element.
+      * @see DocumentHandler#startElement
+      */
+    virtual void startElement
+    (
+        const   XMLElementDecl&         elemDecl
+        , const unsigned int            urlId
+        , const XMLCh* const            elemPrefix
+        , const RefVectorOf<XMLAttr>&   attrList
+        , const unsigned int            attrCount
+        , const bool                    isEmpty
+        , const bool                    isRoot
+    );
+
+    /**
+      * This method is used to indicate the start of an entity reference.
+      *
+      * <p>If any advanced callback handlers are installed, the
+      * corresponding 'endEnityReference' method is invoked.</p>
+      *
+      * @param entDecl A const reference to the object containing the
+      *                entity declaration information.
+      */
+    virtual void startEntityReference
+    (
+        const   XMLEntityDecl&  entDecl
+    );
+
+    /**
+      * This method is used to report the XML decl scanned by the parser.
+      * Refer to the XML specification to see the meaning of parameters.
+      *
+      * <b><font color="#FF0000">This method is a no-op for this SAX driver
+      * implementation.</font></b>
+      *
+      * @param versionStr A const pointer to a Unicode string representing
+      *                   version string value.
+      * @param encodingStr A const pointer to a Unicode string representing
+      *                    the encoding string value.
+      * @param standaloneStr A const pointer to a Unicode string
+      *                      representing the standalone string value.
+      * @param actualEncodingStr A const pointer to a Unicode string
+      *                          representing the actual encoding string
+      *                          value.
+      */
+    virtual void XMLDecl
+    (
+        const   XMLCh* const    versionStr
+        , const XMLCh* const    encodingStr
+        , const XMLCh* const    standaloneStr
+        , const XMLCh* const    actualEncodingStr
+    );
+    //@}
+
+
+    // -----------------------------------------------------------------------
+    //  Implementation of the XMLErrorReporter interface
+    // -----------------------------------------------------------------------
+
+    /** @name Implementation of the XMLErrorReporter Interface. */
+    //@{
+    /**
+      * This method is used to report back errors found while parsing the
+      * XML file. The driver will call the corresponding user installed
+      * SAX Error Handler methods: 'fatal', 'error', 'warning' depending
+      * on the severity of the error. This classification is defined by
+      * the XML specification.
+      *
+      * @param errCode An integer code for the error.
+      * @param msgDomain A const pointer to an Unicode string representing
+      *                  the message domain to use.
+      * @param errType An enumeration classifying the severity of the error.
+      * @param errorText A const pointer to an Unicode string representing
+      *                  the text of the error message.
+      * @param systemId  A const pointer to an Unicode string representing
+      *                  the system id of the XML file where this error
+      *                  was discovered.
+      * @param publicId  A const pointer to an Unicode string representing
+      *                  the public id of the XML file where this error
+      *                  was discovered.
+      * @param lineNum   The line number where the error occurred.
+      * @param colNum    The column number where the error occurred.
+      * @see ErrorHandler
+      */
+    virtual void error
+    (
+        const   unsigned int                errCode
+        , const XMLCh* const                msgDomain
+        , const XMLErrorReporter::ErrTypes  errType
+        , const XMLCh* const                errorText
+        , const XMLCh* const                systemId
+        , const XMLCh* const                publicId
+        , const XMLSSize_t                   lineNum
+        , const XMLSSize_t                   colNum
+    );
+
+    /**
+      * This method allows the user installed Error Handler
+      * callback to 'reset' itself.
+      *
+      * <b><font color="#FF0000">This method is a no-op for this SAX driver
+      * implementation.</font></b>
+      *
+      */
+    virtual void resetErrors();
+    //@}
+
+
+    // -----------------------------------------------------------------------
+    //  Implementation of the XMLEntityHandler interface
+    // -----------------------------------------------------------------------
+
+    /** @name Implementation of the XMLEntityHandler Interface. */
+    //@{
+    /**
+      * This method is used to indicate the end of parsing of an external
+      * entity file.
+      *
+      * <b><font color="#FF0000">This method is a no-op for this SAX driver
+      * implementation.</font></b>
+      *
+      * @param inputSource A const reference to the InputSource object
+      *                    which points to the XML file being parsed.
+      * @see InputSource
+      */
+    virtual void endInputSource(const InputSource& inputSource);
+
+    /**
+      * This method allows an installed XMLEntityHandler to further
+      * process any system id's of enternal entities encountered in
+      * the XML file being parsed, such as redirection etc.
+      *
+      * <b><font color="#FF0000">This method always returns 'false'
+      * for this SAX driver implementation.</font></b>
+      *
+      * @param systemId  A const pointer to an Unicode string representing
+      *                  the system id scanned by the parser.
+      * @param toFill    A pointer to a buffer in which the application
+      *                  processed system id is stored.
+      * @return 'true', if any processing is done, 'false' otherwise.
+      */
+    virtual bool expandSystemId
+    (
+        const   XMLCh* const    systemId
+        ,       XMLBuffer&      toFill
+    );
+
+    /**
+      * This method allows the installed XMLEntityHandler to reset
+      * itself.
+      *
+      * <b><font color="#FF0000">This method is a no-op for this SAX driver
+      * implementation.</font></b>
+      */
+    virtual void resetEntities();
+
+    /**
+      * This method allows a user installed entity handler to further
+      * process any pointers to external entities. The applications
+      * can implement 'redirection' via this callback. The driver
+      * should call the SAX EntityHandler 'resolveEntity' method.
+      *
+      * @deprecated This method is no longer called (the other resolveEntity one is).
+      *
+      * @param publicId A const pointer to a Unicode string representing the
+      *                 public id of the entity just parsed.
+      * @param systemId A const pointer to a Unicode string representing the
+      *                 system id of the entity just parsed.
+      * @param baseURI  A const pointer to a Unicode string representing the
+      *                 base URI of the entity just parsed,
+      *                 or <code>null</code> if there is no base URI.
+      * @return The value returned by the SAX resolveEntity method or
+      *         NULL otherwise to indicate no processing was done.
+      *         The returned InputSource is owned by the parser which is
+      *         responsible to clean up the memory.
+      * @see EntityResolver
+      * @see XMLEntityHandler
+      */
+    virtual InputSource* resolveEntity
+    (
+        const   XMLCh* const    publicId
+        , const XMLCh* const    systemId
+        , const XMLCh* const    baseURI = 0
+    );
+
+    /** Resolve a public/system id
+      *
+      * This method allows a user installed entity handler to further
+      * process any pointers to external entities. The applications can
+      * implement 'redirection' via this callback.  
+      *
+      * @param resourceIdentifier An object containing the type of
+      *        resource to be resolved and the associated data members
+      *        corresponding to this type.
+      * @return The value returned by the user installed resolveEntity
+      *         method or NULL otherwise to indicate no processing was done.
+      *         The returned InputSource is owned by the parser which is
+      *         responsible to clean up the memory.
+      * @see XMLEntityHandler
+      * @see XMLEntityResolver
+      */
+    virtual InputSource* resolveEntity
+    (
+        XMLResourceIdentifier* resourceIdentifier
+    );
+
+    /**
+      * This method is used to indicate the start of parsing an
+      * external entity file.
+      *
+      * <b><font color="#FF0000">This method is a no-op for this SAX driver
+      * implementation.</font></b>
+      *
+      * @param inputSource A const reference to the InputSource object
+      *                    which points to the external entity
+      *                    being parsed.
+      */
+    virtual void startInputSource(const InputSource& inputSource);
+    //@}
+
+    // -----------------------------------------------------------------------
+    //  Implementation of the Deprecated DocTypeHandler Interface
+    // -----------------------------------------------------------------------
+
+    /** @name Implementation of the deprecated DocTypeHandler Interface */
+    //@{
+    /**
+      * This method is used to report an attribute definition.
+      *
+      * <b><font color="#FF0000">This method is a no-op for this SAX
+      * driver implementation.</font></b>
+      *
+      * @param elemDecl A const reference to the object containing information
+      *                 about the element whose attribute definition was just
+      *                 parsed.
+      * @param attDef   A const reference to the object containing information
+      *                 attribute definition.
+      * @param ignore   The flag indicating whether this attribute definition
+      *                 was ignored by the parser or not.
+      */
+    virtual void attDef
+    (
+        const   DTDElementDecl& elemDecl
+        , const DTDAttDef&      attDef
+        , const bool            ignoring
+    );
+
+    /**
+      * This method is used to report a comment occurring within the DTD.
+      *
+      * <b><font color="#FF0000">This method is a no-op for this SAX driver
+      * implementation.</font></b>
+      *
+      * @param comment  A const pointer to a Unicode string representing the
+      *                 text of the comment just parsed.
+      */
+    virtual void doctypeComment
+    (
+        const   XMLCh* const    comment
+    );
+
+    /**
+      * This method is used to report the DOCTYPE declaration.
+      *
+      * <b><font color="#FF0000">This method is a no-op for this SAX driver
+      * implementation.</font></b>
+      *
+      * @param elemDecl A const reference to the object containing information
+      *                 about the root element definition declaration of the
+      *                 XML document being parsed.
+      * @param publicId A const pointer to a Unicode string representing the
+      *                 public id of the DTD file.
+      * @param systemId A const pointer to a Unicode string representing the
+      *                 system id of the DTD file.
+      * @param hasIntSubset A flag indicating if this XML file contains any
+      *                     internal subset.
+      * @param hasExtSubset A flag indicating if this XML file contains any
+      *                     external subset. Default is false.
+      */
+    virtual void doctypeDecl
+    (
+        const   DTDElementDecl& elemDecl
+        , const XMLCh* const    publicId
+        , const XMLCh* const    systemId
+        , const bool            hasIntSubset
+        , const bool            hasExtSubset = false
+    );
+
+    /**
+      * This method is used to report any PI declarations
+      * occurring inside the DTD definition block.
+      *
+      * <b><font color="#FF0000">This method is a no-op for this SAX driver
+      * implementation.</font></b>
+      *
+      * @param target A const pointer to a Unicode string representing the
+      *               target of the PI declaration.
+      * @param data   A const pointer to a Unicode string representing the
+      *               data of the PI declaration. See the PI production rule
+      *               in the XML specification for details.
+      */
+    virtual void doctypePI
+    (
+        const   XMLCh* const    target
+        , const XMLCh* const    data
+    );
+
+    /**
+      * This method is used to report any whitespaces
+      * occurring inside the DTD definition block.
+      *
+      * <b><font color="#FF0000">This method is a no-op for this SAX driver
+      * implementation.</font></b>
+      *
+      * @param chars  A const pointer to a Unicode string representing the
+      *               whitespace characters.
+      * @param length The length of the whitespace Unicode string.
+      */
+    virtual void doctypeWhitespace
+    (
+        const   XMLCh* const    chars
+        , const unsigned int    length
+    );
+
+    /**
+      * This method is used to report an element declarations
+      * successfully scanned by the parser.
+      *
+      * <b><font color="#FF0000">This method is a no-op for this SAX driver
+      * implementation.</font></b>
+      *
+      * @param decl   A const reference to the object containing element
+      *               declaration information.
+      * @param isIgnored The flag indicating whether this definition was
+      *                  ignored by the parser or not.
+      */
+    virtual void elementDecl
+    (
+        const   DTDElementDecl& decl
+        , const bool            isIgnored
+    );
+
+    /**
+      * This method is used to report the end of an attribute
+      * list declaration for an element.
+      *
+      * <b><font color="#FF0000">This method is a no-op for this SAX driver
+      * implementation.</font></b>
+      *
+      * @param elemDecl A const reference to the object containing element
+      *                 declaration information.
+      */
+    virtual void endAttList
+    (
+        const   DTDElementDecl& elemDecl
+    );
+
+    /**
+      * This method is used to report the end of the internal subset.
+      *
+      * <b><font color="#FF0000">This method is a no-op for this SAX driver
+      * implementation.</font></b>
+      */
+    virtual void endIntSubset();
+
+    /**
+      * This method is used to report the end of the external subset.
+      *
+      * <b><font color="#FF0000">This method is a no-op for this SAX driver
+      * implementation.</font></b>
+      */
+    virtual void endExtSubset();
+
+    /**
+      * This method is used to report any entity declarations.
+      * For unparsed entities, this driver will invoke the
+      * SAX DTDHandler::unparsedEntityDecl callback.
+      *
+      * @param entityDecl A const reference to the object containing
+      *                   the entity declaration information.
+      * @param isPEDecl  The flag indicating whether this was a
+      *                  parameter entity declaration or not.
+      * @param isIgnored The flag indicating whether this definition
+      *                  was ignored by the parser or not.
+      *
+      * @see DTDHandler#unparsedEntityDecl
+      */
+    virtual void entityDecl
+    (
+        const   DTDEntityDecl&  entityDecl
+        , const bool            isPEDecl
+        , const bool            isIgnored
+    );
+
+    /**
+      * This method allows the user installed DTD handler to
+      * reset itself.
+      */
+    virtual void resetDocType();
+
+    /**
+      * This method is used to report any notation declarations.
+      * If there is a user installed DTDHandler, then the driver will
+      * invoke the SAX DTDHandler::notationDecl callback.
+      *
+      * @param notDecl A const reference to the object containing the notation
+      *                declaration information.
+      * @param isIgnored The flag indicating whether this definition was ignored
+      *                  by the parser or not.
+      *
+      * @see DTDHandler#notationDecl
+      */
+    virtual void notationDecl
+    (
+        const   XMLNotationDecl&    notDecl
+        , const bool                isIgnored
+    );
+
+    /**
+      * This method is used to indicate the start of an element's attribute
+      * list declaration.
+      *
+      * <b><font color="#FF0000">This method is a no-op for this SAX driver
+      * implementation.</font></b>
+      *
+      * @param elemDecl A const reference to the object containing element
+      *                 declaration information.
+      */
+    virtual void startAttList
+    (
+        const   DTDElementDecl& elemDecl
+    );
+
+    /**
+      * This method is used indicate the start of the internal subset.
+      *
+      * <b><font color="#FF0000">This method is a no-op for this SAX driver
+      * implementation.</font></b>
+      */
+    virtual void startIntSubset();
+
+    /**
+      * This method is used indicate the start of the external subset.
+      *
+      * <b><font color="#FF0000">This method is a no-op for this SAX driver
+      * implementation.</font></b>
+      */
+    virtual void startExtSubset();
+
+    /**
+      * This method is used to report the TextDecl. Refer to the XML
+      * specification for the syntax of a TextDecl.
+      *
+      * <b><font color="#FF0000">This method is a no-op for this SAX driver
+      * implementation.</font></b>
+      *
+      * @param versionStr A const pointer to a Unicode string representing
+      *                   the version number of the 'version' clause.
+      * @param encodingStr A const pointer to a Unicode string representing
+      *                    the encoding name of the 'encoding' clause.
+      */
+    virtual void TextDecl
+    (
+        const   XMLCh* const    versionStr
+        , const XMLCh* const    encodingStr
+    );
+    //@}
+
+
+private :
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    SAX2XMLReaderImpl(const SAX2XMLReaderImpl&);
+    SAX2XMLReaderImpl& operator=(const SAX2XMLReaderImpl&);
+
+    // -----------------------------------------------------------------------
+    //  Initialize/Cleanup methods
+    // -----------------------------------------------------------------------
+    void initialize();
+    void cleanUp();
+    void resetInProgress();
+
+    // -----------------------------------------------------------------------
+    //  Private data members
+    //
+    //  fAttrList
+    //      A temporary implementation of the basic SAX2 Attributes
+    //      interface. We use this one over and over on each startElement
+    //      event to allow SAX-like access to the element attributes.
+    //
+    //  fDocHandler
+    //      The installed SAX content handler, if any. Null if none.
+    //
+    //  fnamespacePrefix
+    //      Indicates whether the namespace-prefix feature is on or off.
+    //
+    //  fautoValidation
+    //      Indicates whether automatic validation is on or off
+    //
+    //  fValidation
+    //      Indicates whether the 'validation' core features is on or off
+    //
+    //  fReuseGrammar
+    //      Tells the parser whether it should reuse the grammar or not.
+    //      If true, there cannot be any internal subset.
+    //
+    //	fPrefixesStorage
+    //		the namespace prefixes will be allocated from this pool
+    //
+    //	fPrefixes
+    //		A Stack of the current namespace prefixes that need calls to
+    //		endPrefixMapping
+    //
+    //	fPrefixCounts
+    //		A Stack of the number of prefixes that need endPrefixMapping
+    //		calls for that element
+    //
+    //  fDTDHandler
+    //      The installed SAX DTD handler, if any. Null if none.
+    //
+    //  fElemDepth
+    //      This is used to track the element nesting depth, so that we can
+    //      know when we are inside content. This is so we can ignore char
+    //      data outside of content.
+    //
+    //  fEntityResolver
+    //      The installed SAX entity handler, if any. Null if none.
+    //
+    //  fErrorHandler
+    //      The installed SAX error handler, if any. Null if none.
+    //
+    //  fLexicalHandler
+    //      The installed SAX lexical handler, if any.  Null if none.
+    //
+    //  fDecllHandler
+    //      The installed SAX declaration handler, if any.  Null if none.
+    //
+    //  fAdvDHCount
+    //  fAdvDHList
+    //  fAdvDHListSize
+    //      This is an array of pointers to XMLDocumentHandlers, which is
+    //      how we see installed advanced document handlers. There will
+    //      usually not be very many at all, so a simple array is used
+    //      instead of a collection, for performance. It will grow if needed,
+    //      but that is unlikely.
+    //
+    //      The count is how many handlers are currently installed. The size
+    //      is how big the array itself is (for expansion purposes.) When
+    //      count == size, is time to expand.
+    //
+    //  fParseInProgress
+    //      This flag is set once a parse starts. It is used to prevent
+    //      multiple entrance or reentrance of the parser.
+    //
+    //  fScanner
+    //      The scanner being used by this parser. It is created internally
+    //      during construction.
+    //
+    //  fHasExternalSubset
+    //      Indicate if the document has external DTD subset.
+    //
+    //   fGrammarPool
+    //      The grammar pool passed from external application (through derivatives).
+    //      which could be 0, not owned.
+    //
+    // -----------------------------------------------------------------------
+    bool                        fNamespacePrefix;
+    bool                        fAutoValidation;
+    bool                        fValidation;
+    bool                        fParseInProgress;
+    bool                        fHasExternalSubset;
+    unsigned int                fElemDepth;
+    unsigned int                fAdvDHCount;
+    unsigned int                fAdvDHListSize;
+    VecAttributesImpl		    fAttrList ;
+    ContentHandler*		        fDocHandler ;
+    RefVectorOf<XMLAttr>*       fTempAttrVec ;
+    XMLStringPool*              fPrefixesStorage ;
+    ValueStackOf<unsigned int>* fPrefixes ;
+    ValueStackOf<unsigned int>* fPrefixCounts ;
+    DTDHandler*                 fDTDHandler;
+    EntityResolver*             fEntityResolver;
+    XMLEntityResolver*          fXMLEntityResolver;
+    ErrorHandler*               fErrorHandler;
+    PSVIHandler*                fPSVIHandler;
+    LexicalHandler*             fLexicalHandler;
+    DeclHandler*                fDeclHandler;
+    XMLDocumentHandler**        fAdvDHList;
+    XMLScanner*                 fScanner;
+    GrammarResolver*            fGrammarResolver;
+    XMLStringPool*              fURIStringPool;
+    XMLValidator*               fValidator;
+    MemoryManager*              fMemoryManager;
+    XMLGrammarPool*             fGrammarPool;
+	
+    // -----------------------------------------------------------------------
+    // internal function used to set the state of the parser
+    // -----------------------------------------------------------------------
+    void setValidationScheme(const ValSchemes newScheme);
+    void setDoNamespaces(const bool newState);
+    bool getDoNamespaces() const;
+    void setDoSchema(const bool newState);
+    bool getDoSchema() const;
+};
+
+
+// ---------------------------------------------------------------------------
+//  SAX2XMLReader: Getter methods
+// ---------------------------------------------------------------------------
+inline ContentHandler* SAX2XMLReaderImpl::getContentHandler() const
+{
+    return fDocHandler;
+}
+
+inline DTDHandler* SAX2XMLReaderImpl::getDTDHandler() const
+{
+	return fDTDHandler ;
+}
+
+inline EntityResolver* SAX2XMLReaderImpl::getEntityResolver() const
+{
+	return fEntityResolver;
+}
+
+inline XMLEntityResolver* SAX2XMLReaderImpl::getXMLEntityResolver() const
+{
+	return fXMLEntityResolver;
+}
+
+inline ErrorHandler* SAX2XMLReaderImpl::getErrorHandler() const
+{
+	return fErrorHandler;
+}
+
+inline PSVIHandler* SAX2XMLReaderImpl::getPSVIHandler() const
+{
+	return fPSVIHandler;
+}
+
+inline LexicalHandler* SAX2XMLReaderImpl::getLexicalHandler() const
+{
+   return fLexicalHandler;
+}
+
+inline DeclHandler* SAX2XMLReaderImpl::getDeclarationHandler() const
+{
+   return fDeclHandler;
+}
+
+inline bool SAX2XMLReaderImpl::getExitOnFirstFatalError() const
+{
+    return fScanner->getExitOnFirstFatal();
+}
+
+inline bool SAX2XMLReaderImpl::getValidationConstraintFatal() const
+{
+    return fScanner->getValidationConstraintFatal();
+}
+
+inline Grammar* SAX2XMLReaderImpl::getRootGrammar()
+{
+    return fScanner->getRootGrammar();
+}
+
+inline const XMLCh* SAX2XMLReaderImpl::getURIText(unsigned int uriId) const
+{
+    return fScanner->getURIText(uriId);
+}
+
+inline unsigned int SAX2XMLReaderImpl::getSrcOffset() const
+{
+    return fScanner->getSrcOffset();
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/parsers/SAX2XMLFilterImpl.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/parsers/SAX2XMLFilterImpl.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/parsers/SAX2XMLFilterImpl.hpp	(revision 2674)
@@ -0,0 +1,1449 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: SAX2XMLFilterImpl.hpp 569031 2007-08-23 15:05:28Z amassari $
+ */
+
+#if !defined(SAX2XMLFilterImpl_HPP)
+#define SAX2XMLFilterImpl_HPP
+
+#include <xercesc/sax2/SAX2XMLFilter.hpp>
+#include <xercesc/sax/EntityResolver.hpp>
+#include <xercesc/sax/DTDHandler.hpp>
+#include <xercesc/sax2/ContentHandler.hpp>
+#include <xercesc/sax/ErrorHandler.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+/**
+  * This class implements the SAX2 'XMLFilterImpl' interface and should be
+  * used by applications as the base class for their SAX2 filters.
+  * This implementation simply forwards every call to the parent object.
+  *
+  */
+
+class PARSERS_EXPORT SAX2XMLFilterImpl : 
+    public SAX2XMLFilter
+    , public EntityResolver
+    , public DTDHandler
+    , public ContentHandler
+    , public ErrorHandler
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+    /** @name Constructors and Destructor */
+    //@{
+    /** The default constructor */
+	SAX2XMLFilterImpl(SAX2XMLReader* parent);
+
+    /** The destructor */	
+	~SAX2XMLFilterImpl() ;
+   //@}
+
+    //-----------------------------------------------------------------------
+    // Implementation of SAX2XMLReader Interface
+    //-----------------------------------------------------------------------
+    //-----------------------------------------------------------------------
+    // The XMLReader interface
+    //-----------------------------------------------------------------------
+    /** @name Implementation of SAX 2.0 XMLReader interface's. */
+    //@{
+
+    /**
+      * This method returns the installed content handler.
+      *
+      * @return A pointer to the installed content handler object.
+      */
+    virtual ContentHandler* getContentHandler() const ;
+
+    /**
+      * This method returns the installed DTD handler.
+      *
+      * @return A pointer to the installed DTD handler object.
+      */
+    virtual DTDHandler* getDTDHandler() const ;
+
+    /**
+      * This method returns the installed entity resolver.
+      *
+      * @return A pointer to the installed entity resolver object.
+      */
+    virtual EntityResolver* getEntityResolver() const ;
+
+    /**
+      * This method returns the installed error handler.
+      *
+      * @return A pointer to the installed error handler object.
+      */
+    virtual ErrorHandler* getErrorHandler() const ;
+
+	/**
+     * Query the current state of any feature in a SAX2 XMLReader.
+	  *
+	  * @param name The unique identifier (URI) of the feature being set.
+	  * @return The current state of the feature.
+     * @exception SAXNotRecognizedException If the requested feature is not known.
+	  */
+	virtual bool getFeature(const XMLCh* const name) const ;
+
+	/**
+     * Query the current value of a property in a SAX2 XMLReader.
+     *
+     * The parser owns the returned pointer.  The memory allocated for
+     * the returned pointer will be destroyed when the parser is deleted.
+     *
+     * To ensure assessiblity of the returned information after the parser
+     * is deleted, callers need to copy and store the returned information
+     * somewhere else; otherwise you may get unexpected result.  Since the returned
+     * pointer is a generic void pointer, see
+     * http://xerces.apache.org/xerces-c/program-sax2.html#SAX2Properties to learn
+     * exactly what type of property value each property returns for replication.
+     *
+     * @param name The unique identifier (URI) of the property being set.
+     * @return     The current value of the property.  The pointer spans the same
+     *             life-time as the parser.  A null pointer is returned if nothing
+     *             was specified externally.
+     * @exception  SAXNotRecognizedException If the requested property is not known.
+     */
+	virtual void* getProperty(const XMLCh* const name) const ;
+
+  /**
+    * Allow an application to register a document event handler.
+    *
+    * If the application does not register a document handler, all
+    * document events reported by the SAX parser will be silently
+    * ignored (this is the default behaviour implemented by
+    * HandlerBase).
+    *
+    * Applications may register a new or different handler in the
+    * middle of a parse, and the SAX parser must begin using the new
+    * handler immediately.
+    *
+    * @param handler The document handler.
+    * @see DocumentHandler#DocumentHandler
+    * @see HandlerBase#HandlerBase
+    */
+    virtual void setContentHandler(ContentHandler* const handler) ;
+
+  /**
+    * Allow an application to register a DTD event handler.
+    *
+    * If the application does not register a DTD handler, all DTD
+    * events reported by the SAX parser will be silently ignored (this
+    * is the default behaviour implemented by HandlerBase).
+    *
+    * Applications may register a new or different handler in the middle
+    * of a parse, and the SAX parser must begin using the new handler
+    * immediately.
+    *
+    * @param handler The DTD handler.
+    * @see DTDHandler#DTDHandler
+    * @see HandlerBase#HandlerBase
+    */
+    virtual void setDTDHandler(DTDHandler* const handler) ;
+
+  /**
+    * Allow an application to register a custom entity resolver.
+    *
+    * If the application does not register an entity resolver, the
+    * SAX parser will resolve system identifiers and open connections
+    * to entities itself (this is the default behaviour implemented in
+    * DefaultHandler).
+    *
+    * Applications may register a new or different entity resolver
+    * in the middle of a parse, and the SAX parser must begin using
+    * the new resolver immediately.
+    *
+    * @param resolver The object for resolving entities.
+    * @see EntityResolver#EntityResolver
+    * @see DefaultHandler#DefaultHandler
+    */
+    virtual void setEntityResolver(EntityResolver* const resolver) ;
+    
+  /**
+    * Allow an application to register an error event handler.
+    *
+    * If the application does not register an error event handler,
+    * all error events reported by the SAX parser will be silently
+    * ignored, except for fatalError, which will throw a SAXException
+    * (this is the default behaviour implemented by HandlerBase).
+    *
+    * Applications may register a new or different handler in the
+    * middle of a parse, and the SAX parser must begin using the new
+    * handler immediately.
+    *
+    * @param handler The error handler.
+    * @see ErrorHandler#ErrorHandler
+    * @see SAXException#SAXException
+    * @see HandlerBase#HandlerBase
+    */
+    virtual void setErrorHandler(ErrorHandler* const handler) ;
+
+  /**
+    * Set the state of any feature in a SAX2 XMLReader.
+    * Supported features in SAX2 for xerces-c are:
+    * <br>(See http://xerces.apache.org/xerces-c/program-sax2.html#SAX2Features for detail description).
+    *
+    * <br>http://xml.org/sax/features/validation (default: true)
+    * <br>http://xml.org/sax/features/namespaces (default: true)
+    * <br>http://xml.org/sax/features/namespace-prefixes (default: false)
+    * <br>http://apache.org/xml/features/validation/dynamic (default: false)
+    * <br>http://apache.org/xml/features/validation/reuse-grammar (default: false)
+    * <br>http://apache.org/xml/features/validation/schema (default: true)
+    * <br>http://apache.org/xml/features/validation/schema-full-checking (default: false)
+    * <br>http://apache.org/xml/features/nonvalidating/load-external-dtd (default: true)
+    * <br>http://apache.org/xml/features/continue-after-fatal-error (default: false)
+    * <br>http://apache.org/xml/features/validation-error-as-fatal (default: false)
+    * <br>http://apache.org/xml/features/validation/reuse-validator (Deprecated) (default: false)
+    *
+    * @param name The unique identifier (URI) of the feature.
+    * @param value The requested state of the feature (true or false).
+    * @exception SAXNotRecognizedException If the requested feature is not known.
+    * @exception SAXNotSupportedException Feature modification is not supported during parse
+    *
+    */
+	virtual void setFeature(const XMLCh* const name, const bool value) ;
+
+  /**
+    * Set the value of any property in a SAX2 XMLReader.
+    * Supported properties in SAX2 for xerces-c are:
+    * <br>(See http://xerces.apache.org/xerces-c/program-sax2.html#SAX2Properties for detail description).
+    *
+    * <br>http://apache.org/xml/properties/schema/external-schemaLocation
+    * <br>http://apache.org/xml/properties/schema/external-noNamespaceSchemaLocation.
+    *
+    * It takes a void pointer as the property value.  Application is required to initialize this void
+    * pointer to a correct type.  See http://xerces.apache.org/xerces-c/program-sax2.html#SAX2Properties
+    * to learn exactly what type of property value each property expects for processing.
+    * Passing a void pointer that was initialized with a wrong type will lead to unexpected result.
+    * If the same property is set more than once, the last one takes effect.
+    *
+    * @param name The unique identifier (URI) of the property being set.
+    * @param value The requested value for the property.  See
+    *            http://xerces.apache.org/xerces-c/program-sax2.html#SAX2Properties to learn
+    *            exactly what type of property value each property expects for processing.
+    *            Passing a void pointer that was initialized with a wrong type will lead
+    *            to unexpected result.
+    * @exception SAXNotRecognizedException If the requested property is not known.
+    * @exception SAXNotSupportedException Property modification is not supported during parse
+    */
+	virtual void setProperty(const XMLCh* const name, void* value) ;
+
+  /**
+    * Parse an XML document.
+    *
+    * The application can use this method to instruct the SAX parser
+    * to begin parsing an XML document from any valid input
+    * source (a character stream, a byte stream, or a URI).
+    *
+    * Applications may not invoke this method while a parse is in
+    * progress (they should create a new Parser instead for each
+    * additional XML document).  Once a parse is complete, an
+    * application may reuse the same Parser object, possibly with a
+    * different input source.
+    *
+    * @param source The input source for the top-level of the
+    *               XML document.
+    * @exception SAXException Any SAX exception, possibly
+    *            wrapping another exception.
+    * @exception XMLException An exception from the parser or client
+    *            handler code.
+    * @see InputSource#InputSource
+    * @see #setEntityResolver
+    * @see #setDTDHandler
+    * @see #setDocumentHandler
+    * @see #setErrorHandler
+    */
+    virtual void parse
+    (
+        const   InputSource&    source
+    ) ;
+
+  /**
+    * Parse an XML document from a system identifier (URI).
+    *
+    * This method is a shortcut for the common case of reading a
+    * document from a system identifier.  It is the exact equivalent
+    * of the following:
+    *
+    * parse(new URLInputSource(systemId));
+    *
+    * If the system identifier is a URL, it must be fully resolved
+    * by the application before it is passed to the parser.
+    *
+    * @param systemId The system identifier (URI).
+    * @exception SAXException Any SAX exception, possibly
+    *            wrapping another exception.
+    * @exception XMLException An exception from the parser or client
+    *            handler code.
+    * @see #parse(InputSource)
+    */
+    virtual void parse
+    (
+        const   XMLCh* const    systemId
+    ) ;
+
+  /**
+    * Parse an XML document from a system identifier (URI).
+    *
+    * This method is a shortcut for the common case of reading a
+    * document from a system identifier.  It is the exact equivalent
+    * of the following:
+    *
+    * parse(new URLInputSource(systemId));
+    *
+    * If the system identifier is a URL, it must be fully resolved
+    * by the application before it is passed to the parser.
+    *
+    * @param systemId The system identifier (URI).
+    * @exception SAXException Any SAX exception, possibly
+    *            wrapping another exception.
+    * @exception XMLException An exception from the parser or client
+    *            handler code.
+    * @see #parse(InputSource)
+    */
+    virtual void parse
+    (
+        const   char* const     systemId
+    ) ;
+	
+    //@}
+
+    // -----------------------------------------------------------------------
+    //  SAX 2.0-ext
+    // -----------------------------------------------------------------------
+    /** @name SAX 2.0-ext */
+    //@{
+    /**
+      * This method returns the installed declaration handler.
+      *
+      * @return A pointer to the installed declaration handler object.
+      */
+    virtual DeclHandler* getDeclarationHandler() const ;
+
+	/**
+      * This method returns the installed lexical handler.
+      *
+      * @return A pointer to the installed lexical handler object.
+      */
+    virtual LexicalHandler* getLexicalHandler() const ;
+
+   /**
+    * Allow an application to register a declaration event handler.
+    *
+    * If the application does not register a declaration handler,
+    * all events reported by the SAX parser will be silently
+    * ignored. (this is the default behaviour implemented by DefaultHandler).
+    *
+    * Applications may register a new or different handler in the
+    * middle of a parse, and the SAX parser must begin using the new
+    * handler immediately.
+    *
+    * @param handler The DTD declaration handler.
+    * @see DeclHandler#DeclHandler
+    * @see SAXException#SAXException
+    * @see DefaultHandler#DefaultHandler
+    */
+    virtual void setDeclarationHandler(DeclHandler* const handler) ;
+
+   /**
+    * Allow an application to register a lexical event handler.
+    *
+    * If the application does not register a lexical handler,
+    * all events reported by the SAX parser will be silently
+    * ignored. (this is the default behaviour implemented by HandlerBase).
+    *
+    * Applications may register a new or different handler in the
+    * middle of a parse, and the SAX parser must begin using the new
+    * handler immediately.
+    *
+    * @param handler The error handler.
+    * @see LexicalHandler#LexicalHandler
+    * @see SAXException#SAXException
+    * @see HandlerBase#HandlerBase
+    */
+    virtual void setLexicalHandler(LexicalHandler* const handler) ;
+
+    //@}
+
+    // -----------------------------------------------------------------------
+    //  Getter Methods
+    // -----------------------------------------------------------------------
+    /** @name Getter Methods (Xerces-C specific) */
+    //@{
+    /**
+	  * This method is used to get the current validator.
+	  *
+	  * <b>SAX2XMLReader assumes responsibility for the validator.  It will be
+	  * deleted when the XMLReader is destroyed.</b>
+	  *
+	  * @return A pointer to the validator.  An application should not deleted
+	  * the object returned.
+	  *
+	  */
+	virtual XMLValidator* getValidator() const ;
+
+    /** Get error count from the last parse operation.
+      *
+      * This method returns the error count from the last parse
+      * operation. Note that this count is actually stored in the
+      * scanner, so this method simply returns what the
+      * scanner reports.
+      *
+      * @return number of errors encountered during the latest
+      *			parse operation.
+      */
+    virtual int getErrorCount() const ;
+
+    /**
+      * This method returns the state of the parser's
+      * exit-on-First-Fatal-Error flag.
+      *
+      * <p>Or you can query the feature "http://apache.org/xml/features/continue-after-fatal-error"
+      * which indicates the opposite state.</p>
+      *
+      * @return true, if the parser is currently configured to
+      *         exit on the first fatal error, false otherwise.
+      *
+      * @see #setExitOnFirstFatalError
+      * @see #getFeature
+      */
+    virtual bool getExitOnFirstFatalError() const ;
+
+    /**
+      * This method returns the state of the parser's
+      * validation-constraint-fatal flag.
+      *
+      * <p>Or you can query the feature "http://apache.org/xml/features/validation-error-as-fatal"
+      * which means the same thing.
+      *
+      * @return true, if the parser is currently configured to
+      *         set validation constraint errors as fatal, false
+      *         otherwise.
+      *
+      * @see #setValidationContraintFatal
+      * @see #getFeature
+      */
+    virtual bool getValidationConstraintFatal() const ;
+
+    /**
+      * Retrieve the grammar that is associated with the specified namespace key
+      *
+      * @param  nameSpaceKey Namespace key
+      * @return Grammar associated with the Namespace key.
+      */
+    virtual Grammar* getGrammar(const XMLCh* const nameSpaceKey);
+
+    /**
+      * Retrieve the grammar where the root element is declared.
+      *
+      * @return Grammar where root element declared
+      */
+    virtual Grammar* getRootGrammar();
+
+    /**
+      * Returns the string corresponding to a URI id from the URI string pool.
+      *
+      * @param uriId id of the string in the URI string pool.
+      * @return URI string corresponding to the URI id.
+      */
+    virtual const XMLCh* getURIText(unsigned int uriId) const;
+
+    /**
+      * Returns the current src offset within the input source.
+      * To be used only while parsing is in progress.
+      *
+      * @return offset within the input source
+      */
+    virtual unsigned int getSrcOffset() const;
+
+    //@}
+
+    // -----------------------------------------------------------------------
+    //  Setter Methods
+    // -----------------------------------------------------------------------
+    /** @name Setter Methods (Xerces-C specific) */
+    //@{
+    /**
+	  * This method is used to set a validator.
+	  *
+	  * <b>SAX2XMLReader assumes responsibility for the validator.  It will be
+	  * deleted when the XMLReader is destroyed.</b>
+	  *
+	  * @param valueToAdopt A pointer to the validator that the reader should use.
+	  *
+	  */
+	virtual void setValidator(XMLValidator* valueToAdopt) ;
+
+    /**
+      * This method allows users to set the parser's behaviour when it
+      * encounters the first fatal error. If set to true, the parser
+      * will exit at the first fatal error. If false, then it will
+      * report the error and continue processing.
+      *
+      * <p>The default value is 'true' and the parser exits on the
+      * first fatal error.</p>
+      *
+      * <p>Or you can set the feature "http://apache.org/xml/features/continue-after-fatal-error"
+      * which has the opposite behaviour.</p>
+      *
+      * <p>If both the feature above and this function are used, the latter takes effect.</p>
+      *
+      * @param newState The value specifying whether the parser should
+      *                 continue or exit when it encounters the first
+      *                 fatal error.
+      *
+      * @see #getExitOnFirstFatalError
+      * @see #setFeature
+      */
+    virtual void setExitOnFirstFatalError(const bool newState) ;
+
+    /**
+      * This method allows users to set the parser's behaviour when it
+      * encounters a validtion constraint error. If set to true, and the
+      * the parser will treat validation error as fatal and will exit depends on the
+      * state of "getExitOnFirstFatalError". If false, then it will
+      * report the error and continue processing.
+      *
+      * Note: setting this true does not mean the validation error will be printed with
+      * the word "Fatal Error".   It is still printed as "Error", but the parser
+      * will exit if "setExitOnFirstFatalError" is set to true.
+      *
+      * <p>The default value is 'false'.</p>
+      *
+      * <p>Or you can set the feature "http://apache.org/xml/features/validation-error-as-fatal"
+      * which means the same thing.</p>
+      *
+      * <p>If both the feature above and this function are used, the latter takes effect.</p>
+      *
+      * @param newState If true, the parser will exit if "setExitOnFirstFatalError"
+      *                 is set to true.
+      *
+      * @see #getValidationConstraintFatal
+      * @see #setExitOnFirstFatalError
+      * @see #setFeature
+      */
+    virtual void setValidationConstraintFatal(const bool newState) ;
+    //@}
+
+
+    // -----------------------------------------------------------------------
+    //  Progressive scan methods
+    // -----------------------------------------------------------------------
+
+    /** @name Progressive scan methods */
+    //@{
+
+    /** Begin a progressive parse operation
+      *
+      * This method is used to start a progressive parse on a XML file.
+      * To continue parsing, subsequent calls must be to the parseNext
+      * method.
+      *
+      * It scans through the prolog and returns a token to be used on
+      * subsequent scanNext() calls. If the return value is true, then the
+      * token is legal and ready for further use. If it returns false, then
+      * the scan of the prolog failed and the token is not going to work on
+      * subsequent scanNext() calls.
+      *
+      * @param systemId A pointer to a Unicode string represting the path
+      *                 to the XML file to be parsed.
+      * @param toFill   A token maintaing state information to maintain
+      *                 internal consistency between invocation of 'parseNext'
+      *                 calls.
+      *
+      * @return 'true', if successful in parsing the prolog. It indicates the
+      *         user can go ahead with parsing the rest of the file. It
+      *         returns 'false' to indicate that the parser could parse the
+      *         prolog (which means the token will not be valid.)
+      *
+      * @see #parseNext
+      * @see #parseFirst(char*,...)
+      * @see #parseFirst(InputSource&,...)
+      */
+    virtual bool parseFirst
+    (
+        const   XMLCh* const    systemId
+        ,       XMLPScanToken&  toFill
+    ) ;
+
+    /** Begin a progressive parse operation
+      *
+      * This method is used to start a progressive parse on a XML file.
+      * To continue parsing, subsequent calls must be to the parseNext
+      * method.
+      *
+      * It scans through the prolog and returns a token to be used on
+      * subsequent scanNext() calls. If the return value is true, then the
+      * token is legal and ready for further use. If it returns false, then
+      * the scan of the prolog failed and the token is not going to work on
+      * subsequent scanNext() calls.
+      *
+      * @param systemId A pointer to a regular native string represting
+      *                 the path to the XML file to be parsed.
+      * @param toFill   A token maintaing state information to maintain
+      *                 internal consIstency between invocation of 'parseNext'
+      *                 calls.
+      *
+      * @return 'true', if successful in parsing the prolog. It indicates the
+      *         user can go ahead with parsing the rest of the file. It
+      *         returns 'false' to indicate that the parser could not parse
+      *         the prolog.
+      *
+      * @see #parseNext
+      * @see #parseFirst(XMLCh*,...)
+      * @see #parseFirst(InputSource&,...)
+      */
+    virtual bool parseFirst
+    (
+        const   char* const     systemId
+        ,       XMLPScanToken&  toFill
+    ) ;
+
+    /** Begin a progressive parse operation
+      *
+      * This method is used to start a progressive parse on a XML file.
+      * To continue parsing, subsequent calls must be to the parseNext
+      * method.
+      *
+      * It scans through the prolog and returns a token to be used on
+      * subsequent scanNext() calls. If the return value is true, then the
+      * token is legal and ready for further use. If it returns false, then
+      * the scan of the prolog failed and the token is not going to work on
+      * subsequent scanNext() calls.
+      *
+      * @param source   A const reference to the InputSource object which
+      *                 points to the XML file to be parsed.
+      * @param toFill   A token maintaing state information to maintain
+      *                 internal consistency between invocation of 'parseNext'
+      *                 calls.
+      *
+      * @return 'true', if successful in parsing the prolog. It indicates the
+      *         user can go ahead with parsing the rest of the file. It
+      *         returns 'false' to indicate that the parser could not parse
+      *         the prolog.
+      *
+      * @see #parseNext
+      * @see #parseFirst(XMLCh*,...)
+      * @see #parseFirst(char*,...)
+      */
+    virtual bool parseFirst
+    (
+        const   InputSource&    source
+        ,       XMLPScanToken&  toFill
+    ) ;
+
+    /** Continue a progressive parse operation
+      *
+      * This method is used to continue with progressive parsing of
+      * XML files started by a call to 'parseFirst' method.
+      *
+      * It parses the XML file and stops as soon as it comes across
+      * a XML token (as defined in the XML specification). Relevant
+      * callback handlers are invoked as required by the SAX
+      * specification.
+      *
+      * @param token A token maintaing state information to maintain
+      *              internal consistency between invocation of 'parseNext'
+      *              calls.
+      *
+      * @return 'true', if successful in parsing the next XML token.
+      *         It indicates the user can go ahead with parsing the rest
+      *         of the file. It returns 'false' to indicate that the parser
+      *         could not find next token as per the XML specification
+      *         production rule.
+      *
+      * @see #parseFirst(XMLCh*,...)
+      * @see #parseFirst(char*,...)
+      * @see #parseFirst(InputSource&,...)
+      */
+    virtual bool parseNext(XMLPScanToken& token) ;
+
+    /** Reset the parser after a progressive parse
+      *
+      * If a progressive parse loop exits before the end of the document
+      * is reached, the parser has no way of knowing this. So it will leave
+      * open any files or sockets or memory buffers that were in use at
+      * the time that the parse loop exited.
+      *
+      * The next parse operation will cause these open files and such to
+      * be closed, but the next parse operation might occur at some unknown
+      * future point. To avoid this problem, you should reset the parser if
+      * you exit the loop early.
+      *
+      * If you exited because of an error, then this cleanup will be done
+      * for you. Its only when you exit the file prematurely of your own
+      * accord, because you've found what you wanted in the file most
+      * likely.
+      *
+      * @param token A token maintaing state information to maintain
+      *              internal consistency between invocation of 'parseNext'
+      *              calls.
+      */
+    virtual void parseReset(XMLPScanToken& token) ;
+
+    //@}
+
+    // -----------------------------------------------------------------------
+    //  Implementation of the grammar preparsing interface
+    // -----------------------------------------------------------------------
+
+    /** @name Implementation of Grammar preparsing interface's. */
+    //@{
+    /**
+      * Preparse schema grammar (XML Schema, DTD, etc.) via an input source
+      * object.
+      *
+      * This method invokes the preparsing process on a schema grammar XML
+      * file specified by the SAX InputSource parameter. If the 'toCache' flag
+      * is enabled, the parser will cache the grammars for re-use. If a grammar
+      * key is found in the pool, no caching of any grammar will take place.
+      *
+      * <p><b>"Experimental - subject to change"</b></p>
+      *
+      * @param source A const reference to the SAX InputSource object which
+      *               points to the schema grammar file to be preparsed.
+      * @param grammarType The grammar type (Schema or DTD).
+      * @param toCache If <code>true</code>, we cache the preparsed grammar,
+      *                otherwise, no chaching. Default is <code>false</code>.
+      * @return The preparsed schema grammar object (SchemaGrammar or
+      *         DTDGrammar). That grammar object is owned by the parser.
+      *
+      * @exception SAXException Any SAX exception, possibly
+      *            wrapping another exception.
+      * @exception XMLException An exception from the parser or client
+      *            handler code.
+      * @exception DOMException A DOM exception as per DOM spec.
+      *
+      * @see InputSource#InputSource
+      */
+    virtual Grammar* loadGrammar(const InputSource& source,
+                                 const short grammarType,
+                                 const bool toCache = false);
+
+    /**
+      * Preparse schema grammar (XML Schema, DTD, etc.) via a file path or URL
+      *
+      * This method invokes the preparsing process on a schema grammar XML
+      * file specified by the file path parameter. If the 'toCache' flag
+      * is enabled, the parser will cache the grammars for re-use. If a grammar
+      * key is found in the pool, no caching of any grammar will take place.
+      *
+      * <p><b>"Experimental - subject to change"</b></p>
+      *
+      * @param systemId A const XMLCh pointer to the Unicode string which
+      *                 contains the path to the XML grammar file to be
+      *                 preparsed.
+      * @param grammarType The grammar type (Schema or DTD).
+      * @param toCache If <code>true</code>, we cache the preparsed grammar,
+      *                otherwise, no chaching. Default is <code>false</code>.
+      * @return The preparsed schema grammar object (SchemaGrammar or
+      *         DTDGrammar). That grammar object is owned by the parser.
+      *
+      * @exception SAXException Any SAX exception, possibly
+      *            wrapping another exception.
+      * @exception XMLException An exception from the parser or client
+      *            handler code.
+      * @exception DOMException A DOM exception as per DOM spec.
+      */
+    virtual Grammar* loadGrammar(const XMLCh* const systemId,
+                                 const short grammarType,
+                                 const bool toCache = false);
+
+    /**
+      * Preparse schema grammar (XML Schema, DTD, etc.) via a file path or URL
+      *
+      * This method invokes the preparsing process on a schema grammar XML
+      * file specified by the file path parameter. If the 'toCache' flag
+      * is enabled, the parser will cache the grammars for re-use. If a grammar
+      * key is found in the pool, no caching of any grammar will take place.
+      *
+      * <p><b>"Experimental - subject to change"</b></p>
+      *
+      * @param systemId A const char pointer to a native string which contains
+      *                 the path to the XML grammar file to be preparsed.
+      * @param grammarType The grammar type (Schema or DTD).
+      * @param toCache If <code>true</code>, we cache the preparsed grammar,
+      *                otherwise, no chaching. Default is <code>false</code>.
+      * @return The preparsed schema grammar object (SchemaGrammar or
+      *         DTDGrammar). That grammar object is owned by the parser.
+      *
+      * @exception SAXException Any SAX exception, possibly
+      *            wrapping another exception.
+      * @exception XMLException An exception from the parser or client
+      *            handler code.
+      * @exception DOMException A DOM exception as per DOM spec.
+      */
+    virtual Grammar* loadGrammar(const char* const systemId,
+                                 const short grammarType,
+                                 const bool toCache = false);
+
+    /**
+      * Clear the cached grammar pool
+      */
+    virtual void resetCachedGrammarPool();
+
+    /** Set maximum input buffer size
+      *
+      * This method allows users to limit the size of buffers used in parsing
+      * XML character data. The effect of setting this size is to limit the
+      * size of a ContentHandler::characters() call.
+      *
+      * The parser's default input buffer size is 1 megabyte.
+      *
+      * @param bufferSize The maximum input buffer size
+      */
+    void setInputBufferSize(const size_t bufferSize);
+
+    //@}
+
+
+    // -----------------------------------------------------------------------
+    //  Advanced document handler list maintenance methods
+    // -----------------------------------------------------------------------
+
+    /** @name Advanced document handler list maintenance methods */
+    //@{
+    /**
+      * This method installs the specified 'advanced' document callback
+      * handler, thereby allowing the user to customize the processing,
+      * if they choose to do so. Any number of advanced callback handlers
+      * maybe installed.
+      *
+      * <p>The methods in the advanced callback interface represent
+      * Xerces-C extensions. There is no specification for this interface.</p>
+      *
+      * @param toInstall A pointer to the users advanced callback handler.
+      *
+      * @see #removeAdvDocHandler
+      */
+    virtual void installAdvDocHandler(XMLDocumentHandler* const toInstall) ;
+
+    /**
+      * This method removes the 'advanced' document handler callback from
+      * the underlying parser scanner. If no handler is installed, advanced
+      * callbacks are not invoked by the scanner.
+      * @param toRemove A pointer to the advanced callback handler which
+      *                 should be removed.
+      *
+      * @see #installAdvDocHandler
+      */
+    virtual bool removeAdvDocHandler(XMLDocumentHandler* const toRemove) ;
+    //@}
+
+
+    // -----------------------------------------------------------------------
+    //  The XMLFilter interface
+    // -----------------------------------------------------------------------
+
+    /** @name Implementation of SAX 2.0 XMLFilter interface's. */
+    //@{
+    /**
+      * This method returns the parent XMLReader object.
+      *
+      * @return A pointer to the parent XMLReader object.
+      */
+    virtual SAX2XMLReader* getParent() const;
+
+    /**
+      * Sets the parent XMLReader object; parse requests will be forwarded to this
+      * object, and callback notifications coming from it will be postprocessed
+      *
+      * @param parent The new XMLReader parent.
+      * @see SAX2XMLReader#SAX2XMLReader
+      */
+    virtual void setParent(SAX2XMLReader* parent);
+    //@}
+
+    // -----------------------------------------------------------------------
+    //  Implementation of the EntityResolver interface
+    // -----------------------------------------------------------------------
+    /** @name The EntityResolver interface */
+    //@{
+
+  /**
+    * Allow the application to resolve external entities.
+    *
+    * <p>The Parser will call this method before opening any external
+    * entity except the top-level document entity (including the
+    * external DTD subset, external entities referenced within the
+    * DTD, and external entities referenced within the document
+    * element): the application may request that the parser resolve
+    * the entity itself, that it use an alternative URI, or that it
+    * use an entirely different input source.</p>
+    *
+    * <p>Application writers can use this method to redirect external
+    * system identifiers to secure and/or local URIs, to look up
+    * public identifiers in a catalogue, or to read an entity from a
+    * database or other input source (including, for example, a dialog
+    * box).</p>
+    *
+    * <p>If the system identifier is a URL, the SAX parser must
+    * resolve it fully before reporting it to the application.</p>
+    *
+    * @param publicId The public identifier of the external entity
+    *        being referenced, or null if none was supplied.
+    * @param systemId The system identifier of the external entity
+    *        being referenced.
+    * @return An InputSource object describing the new input source,
+    *         or null to request that the parser open a regular
+    *         URI connection to the system identifier.
+    *         The returned InputSource is owned by the parser which is
+    *         responsible to clean up the memory.
+    * @exception SAXException Any SAX exception, possibly
+    *            wrapping another exception.
+    * @exception IOException An IO exception,
+    *            possibly the result of creating a new InputStream
+    *            or Reader for the InputSource.
+    * @see InputSource#InputSource
+    */
+    virtual InputSource* resolveEntity
+    (
+        const   XMLCh* const    publicId
+        , const XMLCh* const    systemId
+    );
+
+    //@}
+
+    // -----------------------------------------------------------------------
+    //  Implementation of the DTDHandler interface
+    // -----------------------------------------------------------------------
+    /** @name The DTD handler interface */
+    //@{
+  /**
+    * Receive notification of a notation declaration event.
+    *
+    * <p>It is up to the application to record the notation for later
+    * reference, if necessary.</p>
+    *
+    * <p>If a system identifier is present, and it is a URL, the SAX
+    * parser must resolve it fully before passing it to the
+    * application.</p>
+    *
+    * @param name The notation name.
+    * @param publicId The notation's public identifier, or null if
+    *        none was given.
+    * @param systemId The notation's system identifier, or null if
+    *        none was given.
+    * @exception SAXException Any SAX exception, possibly
+    *            wrapping another exception.
+    * @see #unparsedEntityDecl
+    * @see AttributeList#AttributeList
+    */
+	virtual void notationDecl
+    (
+        const   XMLCh* const    name
+        , const XMLCh* const    publicId
+        , const XMLCh* const    systemId
+    );
+
+  /**
+    * Receive notification of an unparsed entity declaration event.
+    *
+    * <p>Note that the notation name corresponds to a notation
+    * reported by the notationDecl() event.  It is up to the
+    * application to record the entity for later reference, if
+    * necessary.</p>
+    *
+    * <p>If the system identifier is a URL, the parser must resolve it
+    * fully before passing it to the application.</p>
+    *
+    * @exception SAXException Any SAX exception, possibly
+    *            wrapping another exception.
+    * @param name The unparsed entity's name.
+    * @param publicId The entity's public identifier, or null if none
+    *        was given.
+    * @param systemId The entity's system identifier (it must always
+    *        have one).
+    * @param notationName The name of the associated notation.
+    * @see #notationDecl
+    * @see AttributeList#AttributeList
+    */
+    virtual void unparsedEntityDecl
+    (
+        const   XMLCh* const    name
+        , const XMLCh* const    publicId
+        , const XMLCh* const    systemId
+        , const XMLCh* const    notationName
+    );
+
+    /**
+    * Reset the DocType object on its reuse
+    *
+    * <p>This method helps in reseting the DTD object implementational
+    * defaults each time the DTD is begun.</p>
+    *
+    */
+    virtual void resetDocType();
+
+    //@}
+
+    // -----------------------------------------------------------------------
+    //  Implementation of the ContentHandler interface
+    // -----------------------------------------------------------------------
+    /** @name The virtual document handler interface */
+
+    //@{
+   /**
+    * Receive notification of character data.
+    *
+    * <p>The Parser will call this method to report each chunk of
+    * character data.  SAX parsers may return all contiguous character
+    * data in a single chunk, or they may split it into several
+    * chunks; however, all of the characters in any single event
+    * must come from the same external entity, so that the Locator
+    * provides useful information.</p>
+    *
+    * <p>The application must not attempt to read from the array
+    * outside of the specified range.</p>
+    *
+    * <p>Note that some parsers will report whitespace using the
+    * ignorableWhitespace() method rather than this one (validating
+    * parsers must do so).</p>
+    *
+    * @param chars The characters from the XML document.
+    * @param length The number of characters to read from the array.
+    * @exception SAXException Any SAX exception, possibly
+    *            wrapping another exception.
+    * @see #ignorableWhitespace
+    * @see Locator#Locator
+    */
+    virtual void characters
+    (
+        const   XMLCh* const    chars
+        , const unsigned int    length
+    );
+
+  /**
+    * Receive notification of the end of a document.
+    *
+    * <p>The SAX parser will invoke this method only once, and it will
+    * be the last method invoked during the parse.  The parser shall
+    * not invoke this method until it has either abandoned parsing
+    * (because of an unrecoverable error) or reached the end of
+    * input.</p>
+    *
+    * @exception SAXException Any SAX exception, possibly
+    *            wrapping another exception.
+    */
+    virtual void endDocument ();
+
+  /**
+    * Receive notification of the end of an element.
+    *
+    * <p>The SAX parser will invoke this method at the end of every
+    * element in the XML document; there will be a corresponding
+    * startElement() event for every endElement() event (even when the
+    * element is empty).</p>
+    *
+    * @param uri The URI of the asscioated namespace for this element
+	* @param localname The local part of the element name
+	* @param qname The QName of this element
+    * @exception SAXException Any SAX exception, possibly
+    *            wrapping another exception.
+    */
+    virtual void endElement
+	(
+		const XMLCh* const uri,
+		const XMLCh* const localname,
+		const XMLCh* const qname
+	);
+
+  /**
+    * Receive notification of ignorable whitespace in element content.
+    *
+    * <p>Validating Parsers must use this method to report each chunk
+    * of ignorable whitespace (see the W3C XML 1.0 recommendation,
+    * section 2.10): non-validating parsers may also use this method
+    * if they are capable of parsing and using content models.</p>
+    *
+    * <p>SAX parsers may return all contiguous whitespace in a single
+    * chunk, or they may split it into several chunks; however, all of
+    * the characters in any single event must come from the same
+    * external entity, so that the Locator provides useful
+    * information.</p>
+    *
+    * <p>The application must not attempt to read from the array
+    * outside of the specified range.</p>
+    *
+    * @param chars The characters from the XML document.
+    * @param length The number of characters to read from the array.
+    * @exception SAXException Any SAX exception, possibly
+    *            wrapping another exception.
+    * @see #characters
+    */
+    virtual void ignorableWhitespace
+    (
+        const   XMLCh* const    chars
+        , const unsigned int    length
+    );
+
+  /**
+    * Receive notification of a processing instruction.
+    *
+    * <p>The Parser will invoke this method once for each processing
+    * instruction found: note that processing instructions may occur
+    * before or after the main document element.</p>
+    *
+    * <p>A SAX parser should never report an XML declaration (XML 1.0,
+    * section 2.8) or a text declaration (XML 1.0, section 4.3.1)
+    * using this method.</p>
+    *
+    * @param target The processing instruction target.
+    * @param data The processing instruction data, or null if
+    *        none was supplied.
+    * @exception SAXException Any SAX exception, possibly
+    *            wrapping another exception.
+    */
+    virtual void processingInstruction
+    (
+        const   XMLCh* const    target
+        , const XMLCh* const    data
+    );
+
+  /**
+    * Receive an object for locating the origin of SAX document events.
+    *
+    * SAX parsers are strongly encouraged (though not absolutely
+    * required) to supply a locator: if it does so, it must supply
+    * the locator to the application by invoking this method before
+    * invoking any of the other methods in the DocumentHandler
+    * interface.
+    *
+    * The locator allows the application to determine the end
+    * position of any document-related event, even if the parser is
+    * not reporting an error.  Typically, the application will
+    * use this information for reporting its own errors (such as
+    * character content that does not match an application's
+    * business rules). The information returned by the locator
+    * is probably not sufficient for use with a search engine.
+    *
+    * Note that the locator will return correct information only
+    * during the invocation of the events in this interface. The
+    * application should not attempt to use it at any other time.
+    *
+    * @param locator An object that can return the location of
+    *                any SAX document event. The object is only
+    *                'on loan' to the client code and they are not
+    *                to attempt to delete or modify it in any way!
+    *
+    * @see Locator#Locator
+    */
+    virtual void setDocumentLocator(const Locator* const locator);
+
+  /**
+    * Receive notification of the beginning of a document.
+    *
+    * <p>The SAX parser will invoke this method only once, before any
+    * other methods in this interface or in DTDHandler (except for
+    * setDocumentLocator).</p>
+    *
+    * @exception SAXException Any SAX exception, possibly
+    *            wrapping another exception.
+    */
+    virtual void startDocument();
+
+  /**
+    * Receive notification of the beginning of an element.
+    *
+    * <p>The Parser will invoke this method at the beginning of every
+    * element in the XML document; there will be a corresponding
+    * endElement() event for every startElement() event (even when the
+    * element is empty). All of the element's content will be
+    * reported, in order, before the corresponding endElement()
+    * event.</p>
+    *
+    * <p>Note that the attribute list provided will
+    * contain only attributes with explicit values (specified or
+    * defaulted): #IMPLIED attributes will be omitted.</p>
+    *
+    * @param uri The URI of the asscioated namespace for this element
+	* @param localname The local part of the element name
+	* @param qname The QName of this element
+    * @param attrs The attributes attached to the element, if any.
+    * @exception SAXException Any SAX exception, possibly
+    *            wrapping another exception.
+    * @see #endElement
+    * @see Attributes#Attributes
+    */
+    virtual void startElement
+    (
+        const   XMLCh* const    uri,
+        const   XMLCh* const    localname,
+        const   XMLCh* const    qname,
+        const   Attributes&     attrs
+    );
+
+  /**
+    * Receive notification of the start of an namespace prefix mapping.
+    *
+    * <p>By default, do nothing.  Application writers may override this
+    * method in a subclass to take specific actions at the start of
+    * each namespace prefix mapping.</p>
+    *
+    * @param prefix The namespace prefix used
+    * @param uri The namespace URI used.
+    * @exception SAXException Any SAX exception, possibly
+    *            wrapping another exception.
+    */
+	virtual void startPrefixMapping
+	(
+		const	XMLCh* const	prefix,
+		const	XMLCh* const	uri
+	);
+
+  /**
+    * Receive notification of the end of an namespace prefix mapping.
+    *
+    * <p>By default, do nothing.  Application writers may override this
+    * method in a subclass to take specific actions at the end of
+    * each namespace prefix mapping.</p>
+    *
+    * @param prefix The namespace prefix used
+    * @exception SAXException Any SAX exception, possibly
+    *            wrapping another exception.
+    */
+	virtual void endPrefixMapping
+	(
+		const	XMLCh* const	prefix
+	);
+
+  /**
+    * Receive notification of a skipped entity
+    *
+    * <p>The parser will invoke this method once for each entity
+	* skipped.  All processors may skip external entities,
+	* depending on the values of the features:<br>
+	* http://xml.org/sax/features/external-general-entities<br>
+	* http://xml.org/sax/features/external-parameter-entities</p>
+	*
+	* <p>Note: Xerces (specifically) never skips any entities, regardless
+	* of the above features.  This function is never called in the
+	* Xerces implementation of SAX2.</p>
+    *
+	* <p>Introduced with SAX2</p>
+	*
+    * @param name The name of the skipped entity.  If it is a parameter entity,
+	* the name will begin with %, and if it is the external DTD subset,
+	* it will be the string [dtd].
+    * @exception SAXException Any SAX exception, possibly
+    *            wrapping another exception.
+    */
+	virtual void skippedEntity
+	(
+		const	XMLCh* const	name
+	);
+
+    //@}
+
+    // -----------------------------------------------------------------------
+    //  Implementation of the ErrorHandler interface
+    // -----------------------------------------------------------------------
+    /** @name The error handler interface */
+    //@{
+   /**
+    * Receive notification of a warning.
+    *
+    * <p>SAX parsers will use this method to report conditions that
+    * are not errors or fatal errors as defined by the XML 1.0
+    * recommendation.  The default behaviour is to take no action.</p>
+    *
+    * <p>The SAX parser must continue to provide normal parsing events
+    * after invoking this method: it should still be possible for the
+    * application to process the document through to the end.</p>
+    *
+    * @param exc The warning information encapsulated in a
+    *            SAX parse exception.
+    * @exception SAXException Any SAX exception, possibly
+    *            wrapping another exception.
+    * @see SAXParseException#SAXParseException
+    */
+    virtual void warning(const SAXParseException& exc);
+
+  /**
+    * Receive notification of a recoverable error.
+    *
+    * <p>This corresponds to the definition of "error" in section 1.2
+    * of the W3C XML 1.0 Recommendation.  For example, a validating
+    * parser would use this callback to report the violation of a
+    * validity constraint.  The default behaviour is to take no
+    * action.</p>
+    *
+    * <p>The SAX parser must continue to provide normal parsing events
+    * after invoking this method: it should still be possible for the
+    * application to process the document through to the end.  If the
+    * application cannot do so, then the parser should report a fatal
+    * error even if the XML 1.0 recommendation does not require it to
+    * do so.</p>
+    *
+    * @param exc The error information encapsulated in a
+    *            SAX parse exception.
+    * @exception SAXException Any SAX exception, possibly
+    *            wrapping another exception.
+    * @see SAXParseException#SAXParseException
+    */
+    virtual void error(const SAXParseException& exc);
+
+  /**
+    * Receive notification of a non-recoverable error.
+    *
+    * <p>This corresponds to the definition of "fatal error" in
+    * section 1.2 of the W3C XML 1.0 Recommendation.  For example, a
+    * parser would use this callback to report the violation of a
+    * well-formedness constraint.</p>
+    *
+    * <p>The application must assume that the document is unusable
+    * after the parser has invoked this method, and should continue
+    * (if at all) only for the sake of collecting addition error
+    * messages: in fact, SAX parsers are free to stop reporting any
+    * other events once this method has been invoked.</p>
+    *
+    * @param exc The error information encapsulated in a
+    *            SAX parse exception.
+    * @exception SAXException Any SAX exception, possibly
+    *            wrapping another exception.
+    * @see SAXParseException#SAXParseException
+    */
+    virtual void fatalError(const SAXParseException& exc);
+
+    /**
+    * Reset the Error handler object on its reuse
+    *
+    * <p>This method helps in reseting the Error handler object
+    * implementational defaults each time the Error handler is begun.</p>
+    *
+    */
+    virtual void resetErrors();
+
+    //@}
+
+
+private :
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    SAX2XMLFilterImpl(const SAX2XMLFilterImpl&);
+    SAX2XMLFilterImpl& operator=(const SAX2XMLFilterImpl&);
+
+    // -----------------------------------------------------------------------
+    //  Private data members
+    //
+    //  fParentReader
+    //      The object that we are filtering
+    //
+    //  fDocHandler
+    //      The installed SAX content handler, if any. Null if none.
+    //
+    //  fDTDHandler
+    //      The installed SAX DTD handler, if any. Null if none.
+    //
+    //  fEntityResolver
+    //      The installed SAX entity handler, if any. Null if none.
+    //
+    //  fErrorHandler
+    //      The installed SAX error handler, if any. Null if none.
+    //
+    // -----------------------------------------------------------------------
+    SAX2XMLReader*              fParentReader;
+    ContentHandler*		        fDocHandler;
+    DTDHandler*                 fDTDHandler;
+    EntityResolver*             fEntityResolver;
+    ErrorHandler*               fErrorHandler;
+};
+
+
+// ---------------------------------------------------------------------------
+//  SAX2XMLReader: Getter methods
+// ---------------------------------------------------------------------------
+inline SAX2XMLReader* SAX2XMLFilterImpl::getParent() const
+{
+    return fParentReader;
+}
+
+inline ContentHandler* SAX2XMLFilterImpl::getContentHandler() const
+{
+    return fDocHandler;
+}
+
+inline DTDHandler* SAX2XMLFilterImpl::getDTDHandler() const
+{
+	return fDTDHandler;
+}
+
+inline EntityResolver* SAX2XMLFilterImpl::getEntityResolver() const
+{
+	return fEntityResolver;
+}
+
+inline ErrorHandler* SAX2XMLFilterImpl::getErrorHandler() const
+{
+	return fErrorHandler;
+}
+
+inline LexicalHandler* SAX2XMLFilterImpl::getLexicalHandler() const
+{
+   return 0;
+}
+
+inline DeclHandler* SAX2XMLFilterImpl::getDeclarationHandler() const
+{
+   return 0;
+}
+
+inline void SAX2XMLFilterImpl::setContentHandler(ContentHandler* const handler)
+{
+	fDocHandler = handler;
+}
+
+inline void SAX2XMLFilterImpl::setDTDHandler(DTDHandler* const handler)
+{
+    fDTDHandler = handler;
+}
+
+inline void SAX2XMLFilterImpl::setErrorHandler(ErrorHandler* const handler)
+{
+    fErrorHandler = handler;
+}
+
+inline void SAX2XMLFilterImpl::setEntityResolver(EntityResolver* const resolver)
+{
+    fEntityResolver = resolver;
+}
+
+inline void SAX2XMLFilterImpl::setLexicalHandler(LexicalHandler* const /*handler*/)
+{
+}
+
+inline void SAX2XMLFilterImpl::setDeclarationHandler(DeclHandler* const /*handler*/)
+{
+}
+
+inline void SAX2XMLFilterImpl::installAdvDocHandler(XMLDocumentHandler* const /*toInstall*/)
+{
+}
+
+inline bool SAX2XMLFilterImpl::removeAdvDocHandler(XMLDocumentHandler* const /*toRemove*/)
+{
+    return false;
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/parsers/XercesDOMParser.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/parsers/XercesDOMParser.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/parsers/XercesDOMParser.hpp	(revision 2674)
@@ -0,0 +1,730 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: XercesDOMParser.hpp 568078 2007-08-21 11:43:25Z amassari $
+ *
+ */
+
+#if !defined(XercesDOMParser_HPP)
+#define XercesDOMParser_HPP
+
+
+#include <xercesc/parsers/AbstractDOMParser.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+
+class EntityResolver;
+class ErrorHandler;
+class Grammar;
+class XMLEntityResolver;
+class XMLResourceIdentifier;
+
+ /**
+  * This class implements the Document Object Model (DOM) interface.
+  * It should be used by applications which choose to parse and
+  * process the XML document using the DOM api's. This implementation
+  * also allows the applications to install an error and an entitty
+  * handler (useful extensions to the DOM specification).
+  *
+  * <p>It can be used to instantiate a validating or non-validating
+  * parser, by setting a member flag.</p>
+  */
+class PARSERS_EXPORT XercesDOMParser : public AbstractDOMParser
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Constructors and Detructor
+    // -----------------------------------------------------------------------
+
+    /** @name Constructors and Destructor */
+    //@{
+    /** Construct a XercesDOMParser, with an optional validator
+      *
+      * Constructor with an instance of validator class to use for
+      * validation. If you don't provide a validator, a default one will
+      * be created for you in the scanner.
+      *
+      * @param gramPool   Pointer to the grammar pool instance from 
+      *                   external application.
+      *                   The parser does NOT own it.
+      *
+      * @param valToAdopt Pointer to the validator instance to use. The
+      *                   parser is responsible for freeing the memory.
+      * @param  manager   Pointer to the memory manager to be used to
+      *                   allocate objects.
+      */
+    XercesDOMParser
+    (
+          XMLValidator* const   valToAdopt = 0
+        , MemoryManager* const  manager = XMLPlatformUtils::fgMemoryManager
+        , XMLGrammarPool* const gramPool = 0        
+    );
+
+    /**
+      * Destructor
+      */
+    virtual ~XercesDOMParser();
+
+    //@}
+
+
+    // -----------------------------------------------------------------------
+    //  Getter methods
+    // -----------------------------------------------------------------------
+
+    /** @name Getter methods */
+    //@{
+
+    /** Get a pointer to the error handler
+      *
+      * This method returns the installed error handler. If no handler
+      * has been installed, then it will be a zero pointer.
+      *
+      * @return The pointer to the installed error handler object.
+      */
+    ErrorHandler* getErrorHandler();
+
+    /** Get a const pointer to the error handler
+      *
+      * This method returns the installed error handler.  If no handler
+      * has been installed, then it will be a zero pointer.
+      *
+      * @return A const pointer to the installed error handler object.
+      */
+    const ErrorHandler* getErrorHandler() const;
+
+    /** Get a pointer to the entity resolver
+      *
+      * This method returns the installed entity resolver.  If no resolver
+      * has been installed, then it will be a zero pointer.
+      *
+      * @return The pointer to the installed entity resolver object.
+      */
+    EntityResolver* getEntityResolver();
+
+    /** Get a const pointer to the entity resolver
+      *
+      * This method returns the installed entity resolver. If no resolver
+      * has been installed, then it will be a zero pointer.
+      *
+      * @return A const pointer to the installed entity resolver object.
+      */
+    const EntityResolver* getEntityResolver() const;
+
+    /**
+      * Get a pointer to the entity resolver
+      *
+      * This method returns the installed entity resolver.  If no resolver
+      * has been installed, then it will be a zero pointer.
+      *
+      * @return The pointer to the installed entity resolver object.
+      */
+    XMLEntityResolver* getXMLEntityResolver();
+ 
+    /**
+      * Get a const pointer to the entity resolver
+      *
+      * This method returns the installed entity resolver. If no resolver
+      * has been installed, then it will be a zero pointer.
+      *
+      * @return A const pointer to the installed entity resolver object.
+      */
+    const XMLEntityResolver* getXMLEntityResolver() const;
+
+    /** Get the 'Grammar caching' flag
+      *
+      * This method returns the state of the parser's grammar caching when
+      * parsing an XML document.
+      *
+      * @return true, if the parser is currently configured to
+      *         cache grammars, false otherwise.
+      *
+      * @see #cacheGrammarFromParse
+      */
+    bool isCachingGrammarFromParse() const;
+
+    /** Get the 'Use cached grammar' flag
+      *
+      * This method returns the state of the parser's use of cached grammar
+      * when parsing an XML document.
+      *
+      * @return true, if the parser is currently configured to
+      *         use cached grammars, false otherwise.
+      *
+      * @see #useCachedGrammarInParse
+      */
+    bool isUsingCachedGrammarInParse() const;
+
+    /**
+     * Retrieve the grammar that is associated with the specified namespace key
+     *
+     * @param  nameSpaceKey Namespace key
+     * @return Grammar associated with the Namespace key.
+     */
+    Grammar* getGrammar(const XMLCh* const nameSpaceKey);
+
+    /**
+     * Retrieve the grammar where the root element is declared.
+     *
+     * @return Grammar where root element declared
+     */
+    Grammar* getRootGrammar();
+
+    /**
+     * Returns the string corresponding to a URI id from the URI string pool.
+     *
+     * @param uriId id of the string in the URI string pool.
+     * @return URI string corresponding to the URI id.
+     */
+    const XMLCh* getURIText(unsigned int uriId) const;
+
+    /**
+     * Returns the current src offset within the input source.
+     * To be used only while parsing is in progress.
+     *
+     * @return offset within the input source
+     */
+    unsigned int getSrcOffset() const;
+
+    /** Get the 'ignore cached DTD grammar' flag
+      *    
+      * @return true, if the parser is currently configured to
+      *         ignore cached DTD, false otherwise.
+      *
+      * @see #setIgnoreCachedDTD
+      */
+    bool getIgnoreCachedDTD() const;
+
+    //@}
+
+
+    // -----------------------------------------------------------------------
+    //  Setter methods
+    // -----------------------------------------------------------------------
+
+    /** @name Setter methods */
+    //@{
+
+    /** Set the error handler
+      *
+      * This method allows applications to install their own error handler
+      * to trap error and warning messages.
+      *
+      * <i>Any previously set handler is merely dropped, since the parser
+      * does not own them.</i>
+      *
+      * @param handler  A const pointer to the user supplied error
+      *                 handler.
+      *
+      * @see #getErrorHandler
+      */
+    void setErrorHandler(ErrorHandler* const handler);
+
+    /** Set the entity resolver
+      *
+      * This method allows applications to install their own entity
+      * resolver. By installing an entity resolver, the applications
+      * can trap and potentially redirect references to external
+      * entities.
+      *
+      * <i>Any previously set entity resolver is merely dropped, since the parser
+      * does not own them.  If both setEntityResolver and setXMLEntityResolver
+      * are called, then the last one is used.</i>
+      *
+      * @param handler  A const pointer to the user supplied entity
+      *                 resolver.
+      *
+      * @see #getEntityResolver
+      */
+    void setEntityResolver(EntityResolver* const handler);
+
+    /**
+      * Set the entity resolver
+      *
+      * This method allows applications to install their own entity
+      * resolver. By installing an entity resolver, the applications
+      * can trap and potentially redirect references to external
+      * entities.
+      *
+      * <i>Any previously set entity resolver is merely dropped, since the parser
+      * does not own them.  If both setEntityResolver and setXMLEntityResolver
+      * are called, then the last one set is used.</i>
+      *
+      * @param handler  A const pointer to the user supplied entity
+      *                 resolver.
+      *
+      * @see #getXMLEntityResolver
+      */
+    void setXMLEntityResolver(XMLEntityResolver* const handler);
+
+    /** Set the 'Grammar caching' flag
+      *
+      * This method allows users to enable or disable caching of grammar when
+      * parsing XML documents. When set to true, the parser will cache the
+      * resulting grammar for use in subsequent parses.
+      *
+      * If the flag is set to true, the 'Use cached grammar' flag will also be
+      * set to true.
+      *
+      * The parser's default state is: false.
+      *
+      * @param newState The value specifying whether we should cache grammars
+      *                 or not.
+      *
+      * @see #isCachingGrammarFromParse
+      * @see #useCachedGrammarInParse
+      */
+    void cacheGrammarFromParse(const bool newState);
+
+    /** Set the 'Use cached grammar' flag
+      *
+      * This method allows users to enable or disable the use of cached
+      * grammars.  When set to true, the parser will use the cached grammar,
+      * instead of building the grammar from scratch, to validate XML
+      * documents.
+      *
+      * If the 'Grammar caching' flag is set to true, this mehod ignore the
+      * value passed in.
+      *
+      * The parser's default state is: false.
+      *
+      * @param newState The value specifying whether we should use the cached
+      *                 grammar or not.
+      *
+      * @see #isUsingCachedGrammarInParse
+      * @see #cacheGrammarFromParse
+      */
+    void useCachedGrammarInParse(const bool newState);
+
+    /** Set the 'ignore cached DTD grammar' flag
+      *
+      * This method gives users the option to ignore a cached DTD grammar, when
+      * an XML document contains both an internal and external DTD, and the use
+      * cached grammar from parse option is enabled. Currently, we do not allow
+      * using cached DTD grammar when an internal subset is present in the
+      * document. This option will only affect the behavior of the parser when
+      * an internal and external DTD both exist in a document (i.e. no effect
+      * if document has no internal subset).
+      *
+      * The parser's default state is false
+      *
+      * @param newValue The state to set
+      */
+    void setIgnoreCachedDTD(const bool newValue);
+
+    //@}
+
+    // -----------------------------------------------------------------------
+    //  Utility methods
+    // -----------------------------------------------------------------------
+
+    /** @name Utility methods */
+    //@{
+    /** Reset the documents vector pool and release all the associated memory
+      * back to the system.
+      *
+      * When parsing a document using a DOM parser, all memory allocated
+      * for a DOM tree is associated to the DOM document.
+      *
+      * If you do multiple parse using the same DOM parser instance, then
+      * multiple DOM documents will be generated and saved in a vector pool.
+      * All these documents (and thus all the allocated memory)
+      * won't be deleted until the parser instance is destroyed.
+      *
+      * If you don't need these DOM documents anymore and don't want to
+      * destroy the DOM parser instance at this moment, then you can call this method
+      * to reset the document vector pool and release all the allocated memory
+      * back to the system.
+      *
+      * It is an error to call this method if you are in the middle of a
+      * parse (e.g. in the mid of a progressive parse).
+      *
+      * @exception IOException An exception from the parser if this function
+      *            is called when a parse is in progress.
+      *
+      */
+    void resetDocumentPool();
+
+    //@}
+
+    // -----------------------------------------------------------------------
+    //  Implementation of the XMLErrorReporter interface.
+    // -----------------------------------------------------------------------
+
+    /** @name Implementation of the XMLErrorReporter interface. */
+    //@{
+
+    /** Handle errors reported from the parser
+      *
+      * This method is used to report back errors found while parsing the
+      * XML file. This method is also borrowed from the SAX specification.
+      * It calls the corresponding user installed Error Handler method:
+      * 'fatal', 'error', 'warning' depending on the severity of the error.
+      * This classification is defined by the XML specification.
+      *
+      * @param errCode An integer code for the error.
+      * @param msgDomain A const pointer to an Unicode string representing
+      *                  the message domain to use.
+      * @param errType An enumeration classifying the severity of the error.
+      * @param errorText A const pointer to an Unicode string representing
+      *                  the text of the error message.
+      * @param systemId  A const pointer to an Unicode string representing
+      *                  the system id of the XML file where this error
+      *                  was discovered.
+      * @param publicId  A const pointer to an Unicode string representing
+      *                  the public id of the XML file where this error
+      *                  was discovered.
+      * @param lineNum   The line number where the error occurred.
+      * @param colNum    The column number where the error occurred.
+      * @see ErrorHandler
+      */
+    virtual void error
+    (
+        const   unsigned int                errCode
+        , const XMLCh* const                msgDomain
+        , const XMLErrorReporter::ErrTypes  errType
+        , const XMLCh* const                errorText
+        , const XMLCh* const                systemId
+        , const XMLCh* const                publicId
+        , const XMLSSize_t                  lineNum
+        , const XMLSSize_t                  colNum
+    );
+
+    /** Reset any error data before a new parse
+     *
+      * This method allows the user installed Error Handler callback to
+      * 'reset' itself.
+      *
+      * <b>This method is a no-op for this DOM
+      * implementation.</b>
+      */
+    virtual void resetErrors();
+    //@}
+
+
+    // -----------------------------------------------------------------------
+    //  Implementation of the XMLEntityHandler interface.
+    // -----------------------------------------------------------------------
+
+    /** @name Implementation of the XMLEntityHandler interface. */
+    //@{
+
+    /** Handle an end of input source event
+      *
+      * This method is used to indicate the end of parsing of an external
+      * entity file.
+      *
+      * <b>This method is a no-op for this DOM
+      * implementation.</b>
+      *
+      * @param inputSource A const reference to the InputSource object
+      *                    which points to the XML file being parsed.
+      * @see InputSource
+      */
+    virtual void endInputSource(const InputSource& inputSource);
+
+    /** Expand a system id
+      *
+      * This method allows an installed XMLEntityHandler to further
+      * process any system id's of enternal entities encountered in
+      * the XML file being parsed, such as redirection etc.
+      *
+      * <b>This method always returns 'false'
+      * for this DOM implementation.</b>
+      *
+      * @param systemId  A const pointer to an Unicode string representing
+      *                  the system id scanned by the parser.
+      * @param toFill    A pointer to a buffer in which the application
+      *                  processed system id is stored.
+      * @return 'true', if any processing is done, 'false' otherwise.
+      */
+    virtual bool expandSystemId
+    (
+        const   XMLCh* const    systemId
+        ,       XMLBuffer&      toFill
+    );
+
+    /** Reset any entity handler information
+      *
+      * This method allows the installed XMLEntityHandler to reset
+      * itself.
+      *
+      * <b>This method is a no-op for this DOM
+      * implementation.</b>
+      */
+    virtual void resetEntities();
+
+    /** Resolve a public/system id
+      *
+      * This method allows a user installed entity handler to further
+      * process any pointers to external entities. The applications can
+      * implement 'redirection' via this callback. This method is also
+      * borrowed from the SAX specification.
+      *
+      * @deprecated This method is no longer called (the other resolveEntity one is).
+      *
+      * @param publicId A const pointer to a Unicode string representing the
+      *                 public id of the entity just parsed.
+      * @param systemId A const pointer to a Unicode string representing the
+      *                 system id of the entity just parsed.
+      * @param baseURI  A const pointer to a Unicode string representing the
+      *                 base URI of the entity just parsed,
+      *                 or <code>null</code> if there is no base URI.
+      * @return The value returned by the user installed resolveEntity
+      *         method or NULL otherwise to indicate no processing was done.
+      *         The returned InputSource is owned by the parser which is
+      *         responsible to clean up the memory.
+      * @see DOMEntityResolver
+      * @see XMLEntityHandler
+      */
+    virtual InputSource* resolveEntity
+    (
+        const   XMLCh* const    publicId
+        , const XMLCh* const    systemId
+        , const XMLCh* const    baseURI = 0
+    );
+
+    /** Resolve a public/system id
+      *
+      * This method allows a user installed entity handler to further
+      * process any pointers to external entities. The applications can
+      * implement 'redirection' via this callback.  
+      *
+      * @param resourceIdentifier An object containing the type of
+      *        resource to be resolved and the associated data members
+      *        corresponding to this type.
+      * @return The value returned by the user installed resolveEntity
+      *         method or NULL otherwise to indicate no processing was done.
+      *         The returned InputSource is owned by the parser which is
+      *         responsible to clean up the memory.
+      * @see XMLEntityHandler
+      * @see XMLEntityResolver
+      */
+    virtual InputSource* resolveEntity
+    (
+        XMLResourceIdentifier* resourceIdentifier
+    );
+
+    /** Handle a 'start input source' event
+      *
+      * This method is used to indicate the start of parsing an external
+      * entity file.
+      *
+      * <b>This method is a no-op for this DOM parse
+      * implementation.</b>
+      *
+      * @param inputSource A const reference to the InputSource object
+      *                    which points to the external entity
+      *                    being parsed.
+      */
+    virtual void startInputSource(const InputSource& inputSource);
+
+    //@}
+
+    // -----------------------------------------------------------------------
+    //  Grammar preparsing interface
+    // -----------------------------------------------------------------------
+
+    /** @name Implementation of Grammar preparsing interface's. */
+    //@{
+    /**
+      * Preparse schema grammar (XML Schema, DTD, etc.) via an input source
+      * object.
+      *
+      * This method invokes the preparsing process on a schema grammar XML
+      * file specified by the SAX InputSource parameter. If the 'toCache' flag
+      * is enabled, the parser will cache the grammars for re-use. If a grammar
+      * key is found in the pool, no caching of any grammar will take place.
+      *
+      * <p><b>"Experimental - subject to change"</b></p>
+      *
+      * @param source A const reference to the SAX InputSource object which
+      *               points to the schema grammar file to be preparsed.
+      * @param grammarType The grammar type (Schema or DTD).
+      * @param toCache If <code>true</code>, we cache the preparsed grammar,
+      *                otherwise, no chaching. Default is <code>false</code>.
+      * @return The preparsed schema grammar object (SchemaGrammar or
+      *         DTDGrammar). That grammar object is owned by the parser.
+      *
+      * @exception SAXException Any SAX exception, possibly
+      *            wrapping another exception.
+      * @exception XMLException An exception from the parser or client
+      *            handler code.
+      * @exception DOMException A DOM exception as per DOM spec.
+      *
+      * @see InputSource#InputSource
+      */
+    Grammar* loadGrammar(const InputSource& source,
+                         const short grammarType,
+                         const bool toCache = false);
+
+    /**
+      * Preparse schema grammar (XML Schema, DTD, etc.) via a file path or URL
+      *
+      * This method invokes the preparsing process on a schema grammar XML
+      * file specified by the file path parameter. If the 'toCache' flag
+      * is enabled, the parser will cache the grammars for re-use. If a grammar
+      * key is found in the pool, no caching of any grammar will take place.
+      *
+      * <p><b>"Experimental - subject to change"</b></p>
+      *
+      * @param systemId A const XMLCh pointer to the Unicode string which
+      *                 contains the path to the XML grammar file to be
+      *                 preparsed.
+      * @param grammarType The grammar type (Schema or DTD).
+      * @param toCache If <code>true</code>, we cache the preparsed grammar,
+      *                otherwise, no chaching. Default is <code>false</code>.
+      * @return The preparsed schema grammar object (SchemaGrammar or
+      *         DTDGrammar). That grammar object is owned by the parser.
+      *
+      * @exception SAXException Any SAX exception, possibly
+      *            wrapping another exception.
+      * @exception XMLException An exception from the parser or client
+      *            handler code.
+      * @exception DOMException A DOM exception as per DOM spec.
+      */
+    Grammar* loadGrammar(const XMLCh* const systemId,
+                         const short grammarType,
+                         const bool toCache = false);
+
+    /**
+      * Preparse schema grammar (XML Schema, DTD, etc.) via a file path or URL
+      *
+      * This method invokes the preparsing process on a schema grammar XML
+      * file specified by the file path parameter. If the 'toCache' flag
+      * is enabled, the parser will cache the grammars for re-use. If a grammar
+      * key is found in the pool, no caching of any grammar will take place.
+      *
+      * <p><b>"Experimental - subject to change"</b></p>
+      *
+      * @param systemId A const char pointer to a native string which contains
+      *                 the path to the XML grammar file to be preparsed.
+      * @param grammarType The grammar type (Schema or DTD).
+      * @param toCache If <code>true</code>, we cache the preparsed grammar,
+      *                otherwise, no chaching. Default is <code>false</code>.
+      * @return The preparsed schema grammar object (SchemaGrammar or
+      *         DTDGrammar). That grammar object is owned by the parser.
+      *
+      * @exception SAXException Any SAX exception, possibly
+      *            wrapping another exception.
+      * @exception XMLException An exception from the parser or client
+      *            handler code.
+      * @exception DOMException A DOM exception as per DOM spec.
+      */
+    Grammar* loadGrammar(const char* const systemId,
+                         const short grammarType,
+                         const bool toCache = false);
+
+    /**
+      * This method allows the user to reset the pool of cached grammars.
+      */
+    void resetCachedGrammarPool();
+
+    //@}
+
+
+private :
+    // -----------------------------------------------------------------------
+    //  Initialize/Cleanup methods
+    // -----------------------------------------------------------------------
+    void resetParse();
+
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    XercesDOMParser(const XercesDOMParser&);
+    XercesDOMParser& operator=(const XercesDOMParser&);
+
+    // -----------------------------------------------------------------------
+    //  Private data members
+    //
+    //  fEntityResolver
+    //      The installed SAX entity resolver, if any. Null if none.
+    //
+    //  fErrorHandler
+    //      The installed SAX error handler, if any. Null if none.
+    //-----------------------------------------------------------------------
+    EntityResolver*          fEntityResolver;
+    XMLEntityResolver*       fXMLEntityResolver;
+    ErrorHandler*            fErrorHandler;
+};
+
+
+
+// ---------------------------------------------------------------------------
+//  XercesDOMParser: Handlers for the XMLEntityHandler interface
+// ---------------------------------------------------------------------------
+inline void XercesDOMParser::endInputSource(const InputSource&)
+{
+    // The DOM entity resolver doesn't handle this
+}
+
+inline bool XercesDOMParser::expandSystemId(const XMLCh* const, XMLBuffer&)
+{
+    // The DOM entity resolver doesn't handle this
+    return false;
+}
+
+inline void XercesDOMParser::resetEntities()
+{
+    // Nothing to do on this one
+}
+
+inline void XercesDOMParser::startInputSource(const InputSource&)
+{
+    // The DOM entity resolver doesn't handle this
+}
+
+
+// ---------------------------------------------------------------------------
+//  XercesDOMParser: Getter methods
+// ---------------------------------------------------------------------------
+inline ErrorHandler* XercesDOMParser::getErrorHandler()
+{
+    return fErrorHandler;
+}
+
+inline const ErrorHandler* XercesDOMParser::getErrorHandler() const
+{
+    return fErrorHandler;
+}
+
+inline EntityResolver* XercesDOMParser::getEntityResolver()
+{
+    return fEntityResolver;
+}
+
+inline const EntityResolver* XercesDOMParser::getEntityResolver() const
+{
+    return fEntityResolver;
+}
+
+inline XMLEntityResolver* XercesDOMParser::getXMLEntityResolver()
+{
+    return fXMLEntityResolver;
+}
+
+inline const XMLEntityResolver* XercesDOMParser::getXMLEntityResolver() const
+{
+    return fXMLEntityResolver;
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/parsers/DOMBuilderImpl.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/parsers/DOMBuilderImpl.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/parsers/DOMBuilderImpl.hpp	(revision 2674)
@@ -0,0 +1,954 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: DOMBuilderImpl.hpp 569031 2007-08-23 15:05:28Z amassari $
+ *
+ */
+
+#if !defined(DOMBUILDERIMPL_HPP)
+#define DOMBUILDERIMPL_HPP
+
+
+#include <xercesc/parsers/AbstractDOMParser.hpp>
+#include <xercesc/dom/DOMBuilder.hpp>
+#include <xercesc/util/XercesDefs.hpp>
+
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class XMLEntityResolver;
+class XMLResourceIdentifier;
+
+ /**
+  * Introduced in DOM Level 3
+  *
+  * DOMBuilderImpl provides an implementation of a DOMBuilder interface.
+  * A DOMBuilder instance is obtained from the DOMImplementationLS interface
+  * by invoking its createDOMBuilder method.
+  */
+class PARSERS_EXPORT DOMBuilderImpl : public AbstractDOMParser,
+                                      public DOMBuilder
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Constructors and Detructor
+    // -----------------------------------------------------------------------
+
+    /** @name Constructors and Destructor */
+    //@{
+    /** Construct a DOMBuilderImpl, with an optional validator
+      *
+      * Constructor with an instance of validator class to use for
+      * validation. If you don't provide a validator, a default one will
+      * be created for you in the scanner.
+      *
+      * @param gramPool   Pointer to the grammar pool instance from 
+      *                   external application.
+      *                   The parser does NOT own it.
+      *
+      * @param valToAdopt Pointer to the validator instance to use. The
+      *                   parser is responsible for freeing the memory.
+      */
+    DOMBuilderImpl
+    (
+          XMLValidator* const   valToAdopt = 0
+        , MemoryManager* const  manager = XMLPlatformUtils::fgMemoryManager
+        , XMLGrammarPool* const gramPool = 0        
+    );
+
+    /**
+      * Destructor
+      */
+    virtual ~DOMBuilderImpl();
+
+    //@}
+
+    // -----------------------------------------------------------------------
+    //  Implementation of DOMBuilder interface
+    // -----------------------------------------------------------------------
+    // -----------------------------------------------------------------------
+    //  Getter methods
+    // -----------------------------------------------------------------------
+
+    /** @name Getter methods */
+    //@{
+
+    /**
+      * <p><b>"Experimental - subject to change"</b></p>
+      *
+      * Get a pointer to the error handler
+      *
+      * This method returns the installed error handler. If no handler
+      * has been installed, then it will be a zero pointer.
+      *
+      * @return The pointer to the installed error handler object.
+      */
+    DOMErrorHandler* getErrorHandler();
+
+    /**
+      * <p><b>"Experimental - subject to change"</b></p>
+      *
+      * Get a const pointer to the error handler
+      *
+      * This method returns the installed error handler.  If no handler
+      * has been installed, then it will be a zero pointer.
+      *
+      * @return A const pointer to the installed error handler object.
+      */
+    const DOMErrorHandler* getErrorHandler() const;
+
+    /**
+      * <p><b>"Experimental - subject to change"</b></p>
+      *
+      * Get a pointer to the entity resolver
+      *
+      * This method returns the installed entity resolver.  If no resolver
+      * has been installed, then it will be a zero pointer.
+      *
+      * @return The pointer to the installed entity resolver object.
+      */
+    DOMEntityResolver* getEntityResolver();
+
+    /**
+      * Get a pointer to the entity resolver
+      *
+      * This method returns the installed entity resolver.  If no resolver
+      * has been installed, then it will be a zero pointer.
+      *
+      * @return The pointer to the installed entity resolver object.
+      */
+    XMLEntityResolver* getXMLEntityResolver();
+ 
+    /**
+      * Get a const pointer to the entity resolver
+      *
+      * This method returns the installed entity resolver. If no resolver
+      * has been installed, then it will be a zero pointer.
+      *
+      * @return A const pointer to the installed entity resolver object.
+      */
+    const XMLEntityResolver* getXMLEntityResolver() const;
+
+    /**
+      * <p><b>"Experimental - subject to change"</b></p>
+      *
+      * Get a const pointer to the entity resolver
+      *
+      * This method returns the installed entity resolver. If no resolver
+      * has been installed, then it will be a zero pointer.
+      *
+      * @return A const pointer to the installed entity resolver object.
+      */
+    const DOMEntityResolver* getEntityResolver() const;
+
+    /**
+      * <p><b>"Experimental - subject to change"</b></p>
+      *
+      * Get a pointer to the application filter
+      *
+      * This method returns the installed application filter. If no filter
+      * has been installed, then it will be a zero pointer.
+      *
+      * @return The pointer to the installed application filter.
+      */
+    DOMBuilderFilter* getFilter();
+
+    /**
+      * <p><b>"Experimental - subject to change"</b></p>
+      *
+      * Get a const pointer to the application filter
+      *
+      * This method returns the installed application filter. If no filter
+      * has been installed, then it will be a zero pointer.
+      *
+      * @return A const pointer to the installed application filter
+      */
+    const DOMBuilderFilter* getFilter() const;
+
+    //@}
+
+
+    // -----------------------------------------------------------------------
+    //  Setter methods
+    // -----------------------------------------------------------------------
+
+    /** @name Setter methods */
+    //@{
+
+    /**
+      * <p><b>"Experimental - subject to change"</b></p>
+      *
+      * Set the error handler
+      *
+      * This method allows applications to install their own error handler
+      * to trap error and warning messages.
+      *
+      * <i>Any previously set handler is merely dropped, since the parser
+      * does not own them.</i>
+      *
+      * @param handler  A const pointer to the user supplied error
+      *                 handler.
+      *
+      * @see #getErrorHandler
+      */
+    void setErrorHandler(DOMErrorHandler* const handler);
+
+    /**
+      * <p><b>"Experimental - subject to change"</b></p>
+      *
+      * Set the entity resolver
+      *
+      * This method allows applications to install their own entity
+      * resolver. By installing an entity resolver, the applications
+      * can trap and potentially redirect references to external
+      * entities.
+      *
+      * <i>Any previously set entity resolver is merely dropped, since the parser
+      * does not own them.  If both setEntityResolver and setXMLEntityResolver
+      * are called, then the last one is used.</i>
+      *
+      * @param handler  A const pointer to the user supplied entity
+      *                 resolver.
+      *
+      * @see #getEntityResolver
+      */
+    void setEntityResolver(DOMEntityResolver* const handler);
+
+    /**
+      * Set the entity resolver
+      *
+      * This method allows applications to install their own entity
+      * resolver. By installing an entity resolver, the applications
+      * can trap and potentially redirect references to external
+      * entities.
+      *
+      * <i>Any previously set entity resolver is merely dropped, since the parser
+      * does not own them.  If both setEntityResolver and setXMLEntityResolver
+      * are called, then the last one is used.</i>
+      *
+      * @param handler  A const pointer to the user supplied entity
+      *                 resolver.
+      *
+      * @see #getXMLEntityResolver
+      */
+    void setXMLEntityResolver(XMLEntityResolver* const handler);
+
+    /**
+      * <p><b>"Experimental - subject to change"</b></p>
+      *
+      * Set the application filter
+      *
+      * When the application provides a filter, the parser will call out to
+      * the filter at the completion of the construction of each Element node.
+      * The filter implementation can choose to remove the element from the
+      * document being constructed (unless the element is the document element)
+      * or to terminate the parse early. If the document is being validated
+      * when it's loaded the validation happens before the filter is called.
+      *
+      * <i>Any previously set filter is merely dropped, since the parser
+      * does not own them.</i>
+      *
+      * @param filter  A const pointer to the user supplied application
+      *                filter.
+      *
+      * @see #getFilter
+      */
+    void setFilter(DOMBuilderFilter* const filter);
+
+    //@}
+
+
+    // -----------------------------------------------------------------------
+    //  Feature methods
+    // -----------------------------------------------------------------------
+    /** @name Feature methods */
+    //@{
+
+    /**
+      * <p><b>"Experimental - subject to change"</b></p>
+      *
+      * Set the state of a feature
+      *
+      * It is possible for a DOMBuilder to recognize a feature name but to be
+      * unable to set its value.
+      *
+      * @param name  The feature name.
+      * @param state The requested state of the feature (true or false).
+      * @exception DOMException
+      *     NOT_SUPPORTED_ERR: Raised when the DOMBuilder recognizes the
+      *     feature name but cannot set the requested value.
+      *     <br>NOT_FOUND_ERR: Raised when the DOMBuilder does not recognize
+      *     the feature name.
+      *
+      * @see #getFeature
+      * @see #canSetFeature
+      */
+    void setFeature(const XMLCh* const name, const bool state);
+
+    /**
+      * <p><b>"Experimental - subject to change"</b></p>
+      *
+      * Look up the value of a feature.
+      *
+      * @param name The feature name.
+      * @return The current state of the feature (true or false)
+      * @exception DOMException
+      *     NOT_FOUND_ERR: Raised when the DOMBuilder does not recognize
+      *     the feature name.
+      *
+      * @see #setFeature
+      * @see #canSetFeature
+      */
+    bool getFeature(const XMLCh* const name) const;
+
+    /**
+      * <p><b>"Experimental - subject to change"</b></p>
+      *
+      * Query whether setting a feature to a specific value is supported.
+      *
+      * @param name  The feature name.
+      * @param state The requested state of the feature (true or false).
+      * @return <code>true</code> if the feature could be successfully set
+      *     to the specified value, or <code>false</code> if the feature
+      *     is not recognized or the requested value is not supported. The
+      *     value of the feature itself is not changed.
+      *
+      * @see #getFeature
+      * @see #setFeature
+      */
+    bool canSetFeature(const XMLCh* const name, const bool state) const;
+
+    //@}
+
+    // -----------------------------------------------------------------------
+    //  Parsing methods
+    // -----------------------------------------------------------------------
+    /** @name Parsing methods */
+    //@{
+
+    /**
+      * <p><b>"Experimental - subject to change"</b></p>
+      *
+      * Parse via an input source object
+      *
+      * This method invokes the parsing process on the XML file specified
+      * by the DOMInputSource parameter. This API is borrowed from the
+      * SAX Parser interface.
+      *
+      * @param source A const reference to the DOMInputSource object which
+      *               points to the XML file to be parsed.
+      * @return If the DOMBuilder is a synchronous DOMBuilder the newly created
+      *         and populated Document is returned. If the DOMBuilder is
+      *         asynchronous then <code>null</code> is returned since the
+      *         document object is not yet parsed when this method returns.
+      * @exception SAXException Any SAX exception, possibly
+      *            wrapping another exception.
+      * @exception XMLException An exception from the parser or client
+      *            handler code.
+      * @exception DOMException A DOM exception as per DOM spec.
+      *
+      * @see DOMInputSource#DOMInputSource
+      * @see #setEntityResolver
+      * @see #setErrorHandler
+      */
+    DOMDocument* parse(const DOMInputSource& source);
+
+    /**
+      * <p><b>"Experimental - subject to change"</b></p>
+      *
+      * Parse via a file path or URL
+      *
+      * This method invokes the parsing process on the XML file specified by
+      * the Unicode string parameter 'systemId'.
+      *
+      * @param systemId A const XMLCh pointer to the Unicode string which
+      *                 contains the path to the XML file to be parsed.
+      * @return If the DOMBuilder is a synchronous DOMBuilder the newly created
+      *         and populated Document is returned. If the DOMBuilder is
+      *         asynchronous then <code>null</code> is returned since the
+      *         document object is not yet parsed when this method returns.
+      * @exception SAXException Any SAX exception, possibly
+      *            wrapping another exception.
+      * @exception XMLException An exception from the parser or client
+      *            handler code.
+      * @exception DOM_DOMException A DOM exception as per DOM spec.
+      *
+      * @see #parse(DOMInputSource,...)
+      */
+    DOMDocument* parseURI(const XMLCh* const systemId);
+
+    /**
+      * <p><b>"Experimental - subject to change"</b></p>
+      *
+      * Parse via a file path or URL (in the local code page)
+      *
+      * This method invokes the parsing process on the XML file specified by
+      * the native char* string parameter 'systemId'.
+      *
+      * @param systemId A const char pointer to a native string which
+      *                 contains the path to the XML file to be parsed.
+      * @return If the DOMBuilder is a synchronous DOMBuilder the newly created
+      *         and populated Document is returned. If the DOMBuilder is
+      *         asynchronous then <code>null</code> is returned since the
+      *         document object is not yet parsed when this method returns.
+      * @exception SAXException Any SAX exception, possibly
+      *            wrapping another exception.
+      * @exception XMLException An exception from the parser or client
+      *            handler code.
+      * @exception DOM_DOMException A DOM exception as per DOM spec.
+      *
+      * @see #parse(DOMInputSource,...)
+      */
+    DOMDocument* parseURI(const char* const systemId);
+
+    /**
+      * <p><b>"Experimental - subject to change"</b></p>
+      *
+      * Parse via an input source object
+      *
+      * This method invokes the parsing process on the XML file specified
+      * by the DOMInputSource parameter, and inserts the content into an
+      * existing document at the position specified with the contextNode
+      * and action arguments. When parsing the input stream the context node
+      * is used for resolving unbound namespace prefixes.
+      *
+      * @param source A const reference to the DOMInputSource object which
+      *               points to the XML file to be parsed.
+      * @param contextNode The node that is used as the context for the data
+      *                    that is being parsed. This node must be a Document
+      *                    node, a DocumentFragment node, or a node of a type
+      *                    that is allowed as a child of an element, e.g. it
+      *                    can not be an attribute node.
+      * @param action This parameter describes which action should be taken
+      *               between the new set of node being inserted and the
+      *               existing children of the context node.
+      * @exception DOMException
+      *     NOT_SUPPORTED_ERR: Raised when the DOMBuilder doesn't support
+      *     this method.
+      *     <br>NO_MODIFICATION_ALLOWED_ERR: Raised if the context node is
+      *     readonly.
+      */
+    virtual void parseWithContext
+    (
+        const   DOMInputSource& source
+        ,       DOMNode* const contextNode
+        , const short action
+    );
+
+
+    // -----------------------------------------------------------------------
+    //  Non-standard Extension
+    // -----------------------------------------------------------------------
+    /** @name Non-standard Extension */
+    //@{
+
+    /**
+      * Query the current value of a property in a DOMBuilder.
+      *
+      * The builder owns the returned pointer.  The memory allocated for
+      * the returned pointer will be destroyed when the builder is deleted.
+      *
+      * To ensure assessiblity of the returned information after the builder
+      * is deleted, callers need to copy and store the returned information
+      * somewhere else; otherwise you may get unexpected result.  Since the returned
+      * pointer is a generic void pointer, see
+      * http://xerces.apache.org/xerces-c/program-dom.html#DOMBuilderProperties to learn
+      * exactly what type of property value each property returns for replication.
+      *
+      * @param name The unique identifier (URI) of the property being set.
+      * @return     The current value of the property.  The pointer spans the same
+      *             life-time as the parser.  A null pointer is returned if nothing
+      *             was specified externally.
+      * @exception DOMException
+      *     <br>NOT_FOUND_ERR: Raised when the DOMBuilder does not recognize
+      *     the requested property.
+      */
+    virtual void* getProperty(const XMLCh* const name) const;
+
+    /**
+      * Set the value of any property in a DOMBuilder.
+      * See http://xerces.apache.org/xerces-c/program-dom.html#DOMBuilderProperties for
+      * the list of supported properties.
+      *
+      * It takes a void pointer as the property value.  Application is required to initialize this void
+      * pointer to a correct type.  See http://xerces.apache.org/xerces-c/program-dom.html#DOMBuilderProperties
+      * to learn exactly what type of property value each property expects for processing.
+      * Passing a void pointer that was initialized with a wrong type will lead to unexpected result.
+      * If the same property is set more than once, the last one takes effect.
+      *
+      * @param name The unique identifier (URI) of the property being set.
+      * @param value The requested value for the property.
+      *            See http://xerces.apache.org/xerces-c/program-dom.html#DOMBuilderProperties to learn
+      *            exactly what type of property value each property expects for processing.
+      *            Passing a void pointer that was initialized with a wrong type will lead
+      *            to unexpected result.
+      * @exception DOMException
+      *     <br>NOT_FOUND_ERR: Raised when the DOMBuilder does not recognize
+      *     the requested property.
+      */
+    virtual void setProperty(const XMLCh* const name, void* value);
+
+    /**
+     * Called to indicate that this DOMBuilder is no longer in use
+     * and that the implementation may relinquish any resources associated with it.
+     *
+     */
+    virtual void              release();
+
+    /** Reset the documents vector pool and release all the associated memory
+      * back to the system.
+      *
+      * When parsing a document using a DOM parser, all memory allocated
+      * for a DOM tree is associated to the DOM document.
+      *
+      * If you do multiple parse using the same DOM parser instance, then
+      * multiple DOM documents will be generated and saved in a vector pool.
+      * All these documents (and thus all the allocated memory)
+      * won't be deleted until the parser instance is destroyed.
+      *
+      * If you don't need these DOM documents anymore and don't want to
+      * destroy the DOM parser instance at this moment, then you can call this method
+      * to reset the document vector pool and release all the allocated memory
+      * back to the system.
+      *
+      * It is an error to call this method if you are in the middle of a
+      * parse (e.g. in the mid of a progressive parse).
+      *
+      * @exception IOException An exception from the parser if this function
+      *            is called when a parse is in progress.
+      *
+      */
+    virtual void resetDocumentPool();
+
+    /**
+      * Preparse schema grammar (XML Schema, DTD, etc.) via an input source
+      * object.
+      *
+      * This method invokes the preparsing process on a schema grammar XML
+      * file specified by the DOMInputSource parameter. If the 'toCache' flag
+      * is enabled, the parser will cache the grammars for re-use. If a grammar
+      * key is found in the pool, no caching of any grammar will take place.
+      *
+      * <p><b>"Experimental - subject to change"</b></p>
+      *
+      * @param source A const reference to the DOMInputSource object which
+      *               points to the schema grammar file to be preparsed.
+      * @param grammarType The grammar type (Schema or DTD).
+      * @param toCache If <code>true</code>, we cache the preparsed grammar,
+      *                otherwise, no chaching. Default is <code>false</code>.
+      * @return The preparsed schema grammar object (SchemaGrammar or
+      *         DTDGrammar). That grammar object is owned by the parser.
+      *
+      * @exception SAXException Any SAX exception, possibly
+      *            wrapping another exception.
+      * @exception XMLException An exception from the parser or client
+      *            handler code.
+      * @exception DOMException A DOM exception as per DOM spec.
+      *
+      * @see DOMInputSource#DOMInputSource
+      */
+    virtual Grammar* loadGrammar(const DOMInputSource& source,
+                             const short grammarType,
+                             const bool toCache = false);
+
+    /**
+      * Preparse schema grammar (XML Schema, DTD, etc.) via a file path or URL
+      *
+      * This method invokes the preparsing process on a schema grammar XML
+      * file specified by the file path parameter. If the 'toCache' flag
+      * is enabled, the parser will cache the grammars for re-use. If a grammar
+      * key is found in the pool, no caching of any grammar will take place.
+      *
+      * <p><b>"Experimental - subject to change"</b></p>
+      *
+      * @param systemId A const XMLCh pointer to the Unicode string which
+      *                 contains the path to the XML grammar file to be
+      *                 preparsed.
+      * @param grammarType The grammar type (Schema or DTD).
+      * @param toCache If <code>true</code>, we cache the preparsed grammar,
+      *                otherwise, no chaching. Default is <code>false</code>.
+      * @return The preparsed schema grammar object (SchemaGrammar or
+      *         DTDGrammar). That grammar object is owned by the parser.
+      *
+      * @exception SAXException Any SAX exception, possibly
+      *            wrapping another exception.
+      * @exception XMLException An exception from the parser or client
+      *            handler code.
+      * @exception DOMException A DOM exception as per DOM spec.
+      */
+    virtual Grammar* loadGrammar(const XMLCh* const systemId,
+                             const short grammarType,
+                             const bool toCache = false);
+
+    /**
+      * Preparse schema grammar (XML Schema, DTD, etc.) via a file path or URL
+      *
+      * This method invokes the preparsing process on a schema grammar XML
+      * file specified by the file path parameter. If the 'toCache' flag
+      * is enabled, the parser will cache the grammars for re-use. If a grammar
+      * key is found in the pool, no caching of any grammar will take place.
+      *
+      * <p><b>"Experimental - subject to change"</b></p>
+      *
+      * @param systemId A const char pointer to a native string which contains
+      *                 the path to the XML grammar file to be preparsed.
+      * @param grammarType The grammar type (Schema or DTD).
+      * @param toCache If <code>true</code>, we cache the preparsed grammar,
+      *                otherwise, no chaching. Default is <code>false</code>.
+      * @return The preparsed schema grammar object (SchemaGrammar or
+      *         DTDGrammar). That grammar object is owned by the parser.
+      *
+      * @exception SAXException Any SAX exception, possibly
+      *            wrapping another exception.
+      * @exception XMLException An exception from the parser or client
+      *            handler code.
+      * @exception DOMException A DOM exception as per DOM spec.
+      */
+    virtual Grammar* loadGrammar(const char* const systemId,
+                                 const short grammarType,
+                                 const bool toCache = false);
+
+    /**
+     * Retrieve the grammar that is associated with the specified namespace key
+     *
+     * @param  nameSpaceKey Namespace key
+     * @return Grammar associated with the Namespace key.
+     */
+    virtual Grammar* getGrammar(const XMLCh* const nameSpaceKey) const;
+
+    /**
+     * Retrieve the grammar where the root element is declared.
+     *
+     * @return Grammar where root element declared
+     */
+    virtual Grammar* getRootGrammar() const;
+
+    /**
+     * Returns the string corresponding to a URI id from the URI string pool.
+     *
+     * @param uriId id of the string in the URI string pool.
+     * @return URI string corresponding to the URI id.
+     */
+    virtual const XMLCh* getURIText(unsigned int uriId) const;
+
+    /**
+      * Clear the cached grammar pool
+      */
+    virtual void resetCachedGrammarPool();
+
+    /**
+      * Returns the current src offset within the input source.
+      * To be used only while parsing is in progress.
+      *
+      * @return offset within the input source
+      */
+    virtual unsigned int getSrcOffset() const;
+
+    //@}
+
+    // -----------------------------------------------------------------------
+    //  Implementation of the XMLErrorReporter interface.
+    // -----------------------------------------------------------------------
+
+    /** @name Implementation of the XMLErrorReporter interface. */
+    //@{
+
+    /** Handle errors reported from the parser
+      *
+      * This method is used to report back errors found while parsing the
+      * XML file. This method is also borrowed from the SAX specification.
+      * It calls the corresponding user installed Error Handler method:
+      * 'fatal', 'error', 'warning' depending on the severity of the error.
+      * This classification is defined by the XML specification.
+      *
+      * @param errCode An integer code for the error.
+      * @param msgDomain A const pointer to an Unicode string representing
+      *                  the message domain to use.
+      * @param errType An enumeration classifying the severity of the error.
+      * @param errorText A const pointer to an Unicode string representing
+      *                  the text of the error message.
+      * @param systemId  A const pointer to an Unicode string representing
+      *                  the system id of the XML file where this error
+      *                  was discovered.
+      * @param publicId  A const pointer to an Unicode string representing
+      *                  the public id of the XML file where this error
+      *                  was discovered.
+      * @param lineNum   The line number where the error occurred.
+      * @param colNum    The column number where the error occurred.
+      * @see DOMErrorHandler
+      */
+    virtual void error
+    (
+        const   unsigned int                errCode
+        , const XMLCh* const                msgDomain
+        , const XMLErrorReporter::ErrTypes  errType
+        , const XMLCh* const                errorText
+        , const XMLCh* const                systemId
+        , const XMLCh* const                publicId
+        , const XMLSSize_t                  lineNum
+        , const XMLSSize_t                  colNum
+    );
+
+    /** Reset any error data before a new parse
+     *
+      * This method allows the user installed Error Handler callback to
+      * 'reset' itself.
+      *
+      * <b><font color="#FF0000">This method is a no-op for this DOM
+      * implementation.</font></b>
+      */
+    virtual void resetErrors();
+    //@}
+
+
+    // -----------------------------------------------------------------------
+    //  Implementation of the XMLEntityHandler interface.
+    // -----------------------------------------------------------------------
+
+    /** @name Implementation of the XMLEntityHandler interface. */
+    //@{
+
+    /** Handle an end of input source event
+      *
+      * This method is used to indicate the end of parsing of an external
+      * entity file.
+      *
+      * <b><font color="#FF0000">This method is a no-op for this DOM
+      * implementation.</font></b>
+      *
+      * @param inputSource A const reference to the InputSource object
+      *                    which points to the XML file being parsed.
+      * @see InputSource
+      */
+    virtual void endInputSource(const InputSource& inputSource);
+
+    /** Expand a system id
+      *
+      * This method allows an installed XMLEntityHandler to further
+      * process any system id's of enternal entities encountered in
+      * the XML file being parsed, such as redirection etc.
+      *
+      * <b><font color="#FF0000">This method always returns 'false'
+      * for this DOM implementation.</font></b>
+      *
+      * @param systemId  A const pointer to an Unicode string representing
+      *                  the system id scanned by the parser.
+      * @param toFill    A pointer to a buffer in which the application
+      *                  processed system id is stored.
+      * @return 'true', if any processing is done, 'false' otherwise.
+      */
+    virtual bool expandSystemId
+    (
+        const   XMLCh* const    systemId
+        ,       XMLBuffer&      toFill
+    );
+
+    /** Reset any entity handler information
+      *
+      * This method allows the installed XMLEntityHandler to reset
+      * itself.
+      *
+      * <b><font color="#FF0000">This method is a no-op for this DOM
+      * implementation.</font></b>
+      */
+    virtual void resetEntities();
+
+    /** Resolve a public/system id
+      *
+      * This method allows a user installed entity handler to further
+      * process any pointers to external entities. The applications can
+      * implement 'redirection' via this callback. This method is also
+      * borrowed from the SAX specification.
+      *
+      * @deprecated This method is no longer called (the other resolveEntity one is).
+      *
+      * @param publicId A const pointer to a Unicode string representing the
+      *                 public id of the entity just parsed.
+      * @param systemId A const pointer to a Unicode string representing the
+      *                 system id of the entity just parsed.
+      * @param baseURI  A const pointer to a Unicode string representing the
+      *                 base URI of the entity just parsed,
+      *                 or <code>null</code> if there is no base URI.
+      * @return The value returned by the user installed resolveEntity
+      *         method or NULL otherwise to indicate no processing was done.
+      *         The returned InputSource is owned by the DOMBuilder which is
+      *         responsible to clean up the memory.
+      * @see DOMEntityResolver
+      * @see XMLEntityHandler
+      */
+    virtual InputSource* resolveEntity
+    (
+        const   XMLCh* const    publicId
+        , const XMLCh* const    systemId
+        , const XMLCh* const    baseURI = 0
+    );
+
+    /** Resolve a public/system id
+      *
+      * This method allows a user installed entity handler to further
+      * process any pointers to external entities. The applications can
+      * implement 'redirection' via this callback.  
+      *
+      * @param resourceIdentifier An object containing the type of
+      *        resource to be resolved and the associated data members
+      *        corresponding to this type.
+      * @return The value returned by the user installed resolveEntity
+      *         method or NULL otherwise to indicate no processing was done.
+      *         The returned InputSource is owned by the parser which is
+      *         responsible to clean up the memory.
+      * @see XMLEntityHandler
+      * @see XMLEntityResolver
+      */
+    virtual InputSource* resolveEntity
+    (
+        XMLResourceIdentifier* resourceIdentifier
+    );
+
+    /** Handle a 'start input source' event
+      *
+      * This method is used to indicate the start of parsing an external
+      * entity file.
+      *
+      * <b><font color="#FF0000">This method is a no-op for this DOM parse
+      * implementation.</font></b>
+      *
+      * @param inputSource A const reference to the InputSource object
+      *                    which points to the external entity
+      *                    being parsed.
+      */
+    virtual void startInputSource(const InputSource& inputSource);
+
+    //@}
+
+
+private :
+    // -----------------------------------------------------------------------
+    //  Initialize/Cleanup methods
+    // -----------------------------------------------------------------------
+    void resetParse();
+
+    // -----------------------------------------------------------------------
+    //  Private data members
+    //
+    //  fEntityResolver
+    //      The installed DOM entity resolver, if any. Null if none.
+    //
+    //  fErrorHandler
+    //      The installed DOM error handler, if any. Null if none.
+    //
+    //  fFilter
+    //      The installed application filter, if any. Null if none.
+    //
+    //  fCharsetOverridesXMLEncoding
+    //      Indicates if the "charset-overrides-xml-encoding" is set or not
+    //
+    //  fUserAdoptsDocument
+    //      The DOMDocument ownership has been transferred to application
+    //      If set to true, the parser does not own the document anymore
+    //      and thus will not release its memory.
+    //-----------------------------------------------------------------------
+    bool                        fAutoValidation;
+    bool                        fValidation;
+    DOMEntityResolver*          fEntityResolver;
+    XMLEntityResolver*          fXMLEntityResolver;
+    DOMErrorHandler*            fErrorHandler;
+    DOMBuilderFilter*           fFilter;
+    bool                        fCharsetOverridesXMLEncoding;
+    bool                        fUserAdoptsDocument;
+
+    // -----------------------------------------------------------------------
+    // Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    DOMBuilderImpl(const DOMBuilderImpl &);
+    DOMBuilderImpl & operator = (const DOMBuilderImpl &);
+};
+
+
+
+// ---------------------------------------------------------------------------
+//  DOMBuilderImpl: Handlers for the XMLEntityHandler interface
+// ---------------------------------------------------------------------------
+inline void DOMBuilderImpl::endInputSource(const InputSource&)
+{
+    // The DOM entity resolver doesn't handle this
+}
+
+inline bool DOMBuilderImpl::expandSystemId(const XMLCh* const, XMLBuffer&)
+{
+    // The DOM entity resolver doesn't handle this
+    return false;
+}
+
+inline void DOMBuilderImpl::resetEntities()
+{
+    // Nothing to do on this one
+}
+
+inline void DOMBuilderImpl::startInputSource(const InputSource&)
+{
+    // The DOM entity resolver doesn't handle this
+}
+
+
+// ---------------------------------------------------------------------------
+//  DOMBuilderImpl: Getter methods
+// ---------------------------------------------------------------------------
+inline DOMErrorHandler* DOMBuilderImpl::getErrorHandler()
+{
+    return fErrorHandler;
+}
+
+inline const DOMErrorHandler* DOMBuilderImpl::getErrorHandler() const
+{
+    return fErrorHandler;
+}
+
+inline DOMEntityResolver* DOMBuilderImpl::getEntityResolver()
+{
+    return fEntityResolver;
+}
+
+inline const DOMEntityResolver* DOMBuilderImpl::getEntityResolver() const
+{
+    return fEntityResolver;
+}
+
+inline XMLEntityResolver* DOMBuilderImpl::getXMLEntityResolver()
+{
+    return fXMLEntityResolver;
+}
+
+inline const XMLEntityResolver* DOMBuilderImpl::getXMLEntityResolver() const
+{
+    return fXMLEntityResolver;
+}
+
+inline DOMBuilderFilter* DOMBuilderImpl::getFilter()
+{
+    return fFilter;
+}
+
+inline const DOMBuilderFilter* DOMBuilderImpl::getFilter() const
+{
+    return fFilter;
+}
+
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/parsers/SAXParser.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/parsers/SAXParser.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/parsers/SAXParser.hpp	(revision 2674)
@@ -0,0 +1,2181 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: SAXParser.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(SAXPARSER_HPP)
+#define SAXPARSER_HPP
+
+#include <xercesc/sax/Parser.hpp>
+#include <xercesc/internal/VecAttrListImpl.hpp>
+#include <xercesc/framework/XMLDocumentHandler.hpp>
+#include <xercesc/framework/XMLElementDecl.hpp>
+#include <xercesc/framework/XMLEntityHandler.hpp>
+#include <xercesc/framework/XMLErrorReporter.hpp>
+#include <xercesc/framework/XMLBuffer.hpp>
+#include <xercesc/util/SecurityManager.hpp>
+#include <xercesc/validators/DTD/DocTypeHandler.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+
+class DocumentHandler;
+class EntityResolver;
+class XMLPScanToken;
+class XMLScanner;
+class XMLValidator;
+class Grammar;
+class GrammarResolver;
+class XMLGrammarPool;
+class XMLEntityResolver;
+class XMLResourceIdentifier;
+class PSVIHandler;
+
+/**
+  * This class implements the SAX 'Parser' interface and should be
+  * used by applications wishing to parse the XML files using SAX.
+  * It allows the client program to install SAX handlers for event
+  * callbacks.
+  *
+  * <p>It can be used to instantiate a validating or non-validating
+  * parser, by setting a member flag.</p>
+  *
+  * @deprecated This interface has been replaced by the SAX2
+  *             interface, which includes Namespace support.
+  *             See SAX2XMLReader for more information.
+  */
+
+class PARSERS_EXPORT SAXParser :
+
+    public XMemory
+    , public Parser
+    , public XMLDocumentHandler
+    , public XMLErrorReporter
+    , public XMLEntityHandler
+    , public DocTypeHandler    
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Class types
+    // -----------------------------------------------------------------------
+    /** ValScheme enum used in setValidationScheme
+      *    Val_Never:  Do not report validation errors.
+      *    Val_Always: The parser will always report validation errors.
+      *    Val_Auto:   The parser will report validation errors only if a grammar is specified.
+      *
+      * @see #setValidationScheme
+      */
+
+    enum ValSchemes
+    {
+        Val_Never
+        , Val_Always
+        , Val_Auto
+    };
+
+
+    // -----------------------------------------------------------------------
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+    /** @name Constructors and Destructor */
+    //@{
+    /** Constructor with an instance of validator class to use for
+      * validation.
+      * @param valToAdopt Pointer to the validator instance to use. The
+      *                   parser is responsible for freeing the memory.
+      * @param manager    Pointer to the memory manager to be used to
+      *                   allocate objects.
+      * @param gramPool   The collection of cached grammers.
+      */
+    SAXParser
+    (
+          XMLValidator*   const valToAdopt = 0
+        , MemoryManager*  const manager = XMLPlatformUtils::fgMemoryManager
+        , XMLGrammarPool* const gramPool = 0 
+    );
+
+    /**
+      * Destructor
+      */
+    ~SAXParser();
+    //@}
+
+
+    // -----------------------------------------------------------------------
+    //  Getter Methods
+    // -----------------------------------------------------------------------
+    /** @name Getter methods */
+    //@{
+    /**
+      * This method returns the installed document handler. Suitable
+      * for 'lvalue' usages.
+      *
+      * @return The pointer to the installed document handler object.
+      */
+    DocumentHandler* getDocumentHandler();
+
+    /**
+      * This method returns the installed document handler. Suitable
+      * only for 'rvalue' usages.
+      *
+      * @return A const pointer to the installed document handler object.
+      */
+    const DocumentHandler* getDocumentHandler() const;
+
+    /**
+      * This method returns the installed entity resolver. Suitable
+      * for 'lvalue' usages.
+      *
+      * @return The pointer to the installed entity resolver object.
+      */
+    EntityResolver* getEntityResolver();
+
+    /**
+      * This method returns the installed entity resolver. Suitable
+      * for 'rvalue' usages.
+      *
+      * @return A const pointer to the installed entity resolver object.
+      */
+    const EntityResolver* getEntityResolver() const;
+
+    /**
+      * This method returns the installed entity resolver. Suitable
+      * for 'lvalue' usages.
+      *
+      * @return The pointer to the installed entity resolver object.
+      */
+    XMLEntityResolver* getXMLEntityResolver();
+
+    /**
+      * This method returns the installed entity resolver. Suitable
+      * for 'rvalue' usages.
+      *
+      * @return A const pointer to the installed entity resolver object.
+      */
+    const XMLEntityResolver* getXMLEntityResolver() const;
+
+    /**
+      * This method returns the installed error handler. Suitable
+      * for 'lvalue' usages.
+      *
+      * @return The pointer to the installed error handler object.
+      */
+    ErrorHandler* getErrorHandler();
+
+    /**
+      * This method returns the installed error handler. Suitable
+      * for 'rvalue' usages.
+      *
+      * @return A const pointer to the installed error handler object.
+      */
+    const ErrorHandler* getErrorHandler() const;
+
+    /**
+      * This method returns the installed PSVI handler. Suitable
+      * for 'lvalue' usages.
+      *
+      * @return The pointer to the installed PSVI handler object.
+      */
+    PSVIHandler* getPSVIHandler();
+
+    /**
+      * This method returns the installed PSVI handler. Suitable
+      * for 'rvalue' usages.
+      *
+      * @return A const pointer to the installed PSVI handler object.
+      */
+    const PSVIHandler* getPSVIHandler() const;
+
+    /**
+      * This method returns a reference to the parser's installed
+      * validator.
+      *
+      * @return A const reference to the installed validator object.
+      */
+    const XMLValidator& getValidator() const;
+
+    /**
+      * This method returns an enumerated value that indicates the current
+      * validation scheme set on this parser.
+      *
+      * @return The ValSchemes value current set on this parser.
+      * @see #setValidationScheme
+      */
+    ValSchemes getValidationScheme() const;
+
+    /** Get the 'do schema' flag
+      *
+      * This method returns the state of the parser's schema processing
+      * flag.
+      *
+      * @return true, if the parser is currently configured to
+      *         understand schema, false otherwise.
+      *
+      * @see #setDoSchema
+      */
+    bool getDoSchema() const;
+
+    /** Get the 'full schema constraint checking' flag
+      *
+      * This method returns the state of the parser's full schema constraint
+      * checking flag.
+      *
+      * @return true, if the parser is currently configured to
+      *         have full schema constraint checking, false otherwise.
+      *
+      * @see #setValidationSchemaFullChecking
+      */
+    bool getValidationSchemaFullChecking() const;
+
+    /** Get the 'identity constraint checking' flag
+      *
+      * This method returns the state of the parser's identity constraint
+      * checking flag.
+      *
+      * @return true, if the parser is currently configured to
+      *         have identity constraint checking, false otherwise.
+      *
+      * @see #setIdentityConstraintChecking
+      */
+    bool getIdentityConstraintChecking() const;
+
+    /** Get error count from the last parse operation.
+      *
+      * This method returns the error count from the last parse
+      * operation. Note that this count is actually stored in the
+      * scanner, so this method simply returns what the
+      * scanner reports.
+      *
+      * @return number of errors encountered during the latest
+      *			parse operation.
+      */
+    int getErrorCount() const;
+
+    /**
+      * This method returns the state of the parser's namespace
+      * handling capability.
+      *
+      * @return true, if the parser is currently configured to
+      *         understand namespaces, false otherwise.
+      *
+      * @see #setDoNamespaces
+      */
+    bool getDoNamespaces() const;
+
+    /**
+      * This method returns the state of the parser's
+      * exit-on-First-Fatal-Error flag.
+      *
+      * @return true, if the parser is currently configured to
+      *         exit on the first fatal error, false otherwise.
+      *
+      * @see #setExitOnFirstFatalError
+      */
+    bool getExitOnFirstFatalError() const;
+
+    /**
+      * This method returns the state of the parser's
+      * validation-constraint-fatal flag.
+      *
+      * @return true, if the parser is currently configured to
+      *         set validation constraint errors as fatal, false
+      *         otherwise.
+      *
+      * @see #setValidationContraintFatal
+      */
+    bool getValidationConstraintFatal() const;
+
+   /** Get the set of Namespace/SchemaLocation that is specified externaly.
+      *
+      * This method returns the list of Namespace/SchemaLocation that was
+      * specified using setExternalSchemaLocation.
+      *
+      * The parser owns the returned string, and the memory allocated for
+      * the returned string will be destroyed when the parser is deleted.
+      *
+      * To ensure assessiblity of the returned information after the parser
+      * is deleted, callers need to copy and store the returned information
+      * somewhere else.
+      *
+      * @return a pointer to the list of Namespace/SchemaLocation that was
+      *         specified externally.  The pointer spans the same life-time as
+      *         the parser.  A null pointer is returned if nothing
+      *         was specified externally.
+      *
+      * @see #setExternalSchemaLocation(const XMLCh* const)
+      */
+    XMLCh* getExternalSchemaLocation() const;
+
+   /** Get the noNamespace SchemaLocation that is specified externaly.
+      *
+      * This method returns the no target namespace XML Schema Location
+      * that was specified using setExternalNoNamespaceSchemaLocation.
+      *
+      * The parser owns the returned string, and the memory allocated for
+      * the returned string will be destroyed when the parser is deleted.
+      *
+      * To ensure assessiblity of the returned information after the parser
+      * is deleted, callers need to copy and store the returned information
+      * somewhere else.
+      *
+      * @return a pointer to the no target namespace Schema Location that was
+      *         specified externally.  The pointer spans the same life-time as
+      *         the parser.  A null pointer is returned if nothing
+      *         was specified externally.
+      *
+      * @see #setExternalNoNamespaceSchemaLocation(const XMLCh* const)
+      */
+    XMLCh* getExternalNoNamespaceSchemaLocation() const;
+
+   /** Get the SecurityManager instance attached to this parser.
+      *
+      * This method returns the security manager 
+      * that was specified using setSecurityManager.
+      *
+      * The SecurityManager instance must have been specified by the application; 
+      * this should not be deleted until after the parser has been deleted (or
+      * a new SecurityManager instance has been supplied to the parser).
+      * 
+      * @return a pointer to the SecurityManager instance 
+      *         specified externally.  A null pointer is returned if nothing
+      *         was specified externally.
+      *
+      * @see #setSecurityManager(const SecurityManager* const)
+      */
+    SecurityManager* getSecurityManager() const;
+
+    /** Get the 'Loading External DTD' flag
+      *
+      * This method returns the state of the parser's loading external DTD
+      * flag.
+      *
+      * @return false, if the parser is currently configured to
+      *         ignore external DTD completely, true otherwise.
+      *
+      * @see #setLoadExternalDTD
+      * @see #getValidationScheme
+      */
+    bool getLoadExternalDTD() const;
+
+    /** Get the 'Grammar caching' flag
+      *
+      * This method returns the state of the parser's grammar caching when
+      * parsing an XML document.
+      *
+      * @return true, if the parser is currently configured to
+      *         cache grammars, false otherwise.
+      *
+      * @see #cacheGrammarFromParse
+      */
+    bool isCachingGrammarFromParse() const;
+
+    /** Get the 'Use cached grammar' flag
+      *
+      * This method returns the state of the parser's use of cached grammar
+      * when parsing an XML document.
+      *
+      * @return true, if the parser is currently configured to
+      *         use cached grammars, false otherwise.
+      *
+      * @see #useCachedGrammarInParse
+      */
+    bool isUsingCachedGrammarInParse() const;
+
+    /**
+      * Get the 'calculate src offset flag'
+      *
+      * This method returns the state of the parser's src offset calculation
+      * when parsing an XML document.
+      *
+      * @return true, if the parser is currently configured to
+      *         calculate src offsets, false otherwise.
+      *
+      * @see #setCalculateSrcOfs
+      */
+    bool getCalculateSrcOfs() const;
+
+    /**
+      * Get the 'force standard uri flag'
+      *
+      * This method returns the state if the parser forces standard uri
+      *
+      * @return true, if the parser is currently configured to
+      *         force standard uri, i.e. malformed uri will be rejected.
+      *
+      * @see #setStandardUriConformant
+      */
+    bool getStandardUriConformant() const;
+
+    /**
+     * Retrieve the grammar that is associated with the specified namespace key
+     *
+     * @param  nameSpaceKey Namespace key
+     * @return Grammar associated with the Namespace key.
+     */
+    Grammar* getGrammar(const XMLCh* const nameSpaceKey);
+
+    /**
+     * Retrieve the grammar where the root element is declared.
+     *
+     * @return Grammar where root element declared
+     */
+    Grammar* getRootGrammar();
+
+    /**
+     * Returns the string corresponding to a URI id from the URI string pool.
+     *
+     * @param uriId id of the string in the URI string pool.
+     * @return URI string corresponding to the URI id.
+     */
+    const XMLCh* getURIText(unsigned int uriId) const;
+
+    /**
+     * Returns the current src offset within the input source.
+     * To be used only while parsing is in progress.
+     *
+     * @return offset within the input source
+     */
+    unsigned int getSrcOffset() const;
+
+    /** Get the 'generate synthetic annotations' flag
+      *    
+      * @return true, if the parser is currently configured to
+      *         generate synthetic annotations, false otherwise.
+      *         A synthetic XSAnnotation is created when a schema
+      *         component has non-schema attributes but has no
+      *         child annotations so that the non-schema attributes
+      *         can be recovered under PSVI.
+      *
+      * @see #setGenerateSyntheticAnnotations
+      */
+    bool getGenerateSyntheticAnnotations() const;
+
+    /** Get the 'validate annotations' flag
+      *    
+      * @return true, if the parser is currently configured to
+      *         validate annotations, false otherwise.
+      *
+      * @see #setValidateAnnotations
+      */
+    bool getValidateAnnotations() const;
+
+    /** Get the 'ignore cached DTD grammar' flag
+      *    
+      * @return true, if the parser is currently configured to
+      *         ignore cached DTD, false otherwise.
+      *
+      * @see #setIgnoreCachedDTD
+      */
+    bool getIgnoreCachedDTD() const;
+
+    /** Get the 'ignore annotations' flag
+      *    
+      * @return true, if the parser is currently configured to
+      *         ignore annotations, false otherwise.
+      *
+      * @see #setIgnoreAnnotations
+      */
+    bool getIgnoreAnnotations() const;
+
+    /** Get the 'disable default entity resolution' flag
+      *    
+      * @return true, if the parser is currently configured to
+      *         not perform default entity resolution, false otherwise.
+      *
+      * @see #setDisableDefaultEntityResolution
+      */
+    bool getDisableDefaultEntityResolution() const;
+
+    /** Get the 'skip DTD validation' flag
+      *    
+      * @return true, if the parser is currently configured to
+      *         skip DTD validation, false otherwise.
+      *
+      * @see #setSkipDTDValidation
+      */
+    bool getSkipDTDValidation() const;
+
+    //@}
+
+
+    // -----------------------------------------------------------------------
+    //  Setter methods
+    // -----------------------------------------------------------------------
+
+    /** @name Setter methods */
+    //@{
+    /** set the 'generate synthetic annotations' flag
+      *    
+      * @param newValue The value for specifying whether Synthetic Annotations
+      *        should be generated or not.
+      *        A synthetic XSAnnotation is created when a schema
+      *        component has non-schema attributes but has no
+      *        child annotations.
+      *
+      * @see #getGenerateSyntheticAnnotations
+      */
+    void setGenerateSyntheticAnnotations(const bool newValue);
+
+    /** set the 'validate annotations' flag
+      *    
+      * @param newValue The value for specifying whether annotations
+      *        should be validate or not.
+      *
+      * @see #getValidateAnnotations
+      */
+    void setValidateAnnotations(const bool newValue);
+
+    /**
+      * This method allows users to enable or disable the parser's
+      * namespace processing. When set to true, parser starts enforcing
+      * all the constraints / rules specified by the NameSpace
+      * specification.
+      *
+      * <p>The parser's default state is: false.</p>
+      *
+      * @param newState The value specifying whether NameSpace rules should
+      *                 be enforced or not.
+      *
+      * @see #getDoNamespaces
+      */
+    void setDoNamespaces(const bool newState);
+
+    /**
+      * This method allows users to set the validation scheme to be used
+      * by this parser. The value is one of the ValSchemes enumerated values
+      * defined by this class:
+      *
+      * <br>  Val_Never  - turn off validation
+      * <br>  Val_Always - turn on validation
+      * <br>  Val_Auto   - turn on validation if any internal/external
+      *                  DTD subset have been seen
+      *
+      * <p>The parser's default state is: Val_Never.</p>
+      *
+      * @param newScheme The new validation scheme to use.
+      *
+      * @see #getValidationScheme
+      */
+    void setValidationScheme(const ValSchemes newScheme);
+
+    /** Set the 'schema support' flag
+      *
+      * This method allows users to enable or disable the parser's
+      * schema processing. When set to false, parser will not process
+      * any schema found.
+      *
+      * The parser's default state is: false.
+      *
+      * Note: If set to true, namespace processing must also be turned on.
+      *
+      * @param newState The value specifying whether schema support should
+      *                 be enforced or not.
+      *
+      * @see #getDoSchema
+      */
+    void setDoSchema(const bool newState);
+
+    /**
+      * This method allows the user to turn full Schema constraint checking on/off.
+      * Only takes effect if Schema validation is enabled.
+      * If turned off, partial constraint checking is done.
+      *
+      * Full schema constraint checking includes those checking that may
+      * be time-consuming or memory intensive. Currently, particle unique
+      * attribution constraint checking and particle derivation resriction checking
+      * are controlled by this option.
+      *
+      * The parser's default state is: false.
+      *
+      * @param schemaFullChecking True to turn on full schema constraint checking.
+      *
+      * @see #getValidationSchemaFullChecking
+      */
+    void setValidationSchemaFullChecking(const bool schemaFullChecking);
+
+    /**
+      * This method allows the user to turn identity constraint checking on/off.
+      * Only takes effect if Schema validation is enabled.
+      * If turned off, identity constraint checking is not done.
+      *
+      * The parser's default state is: true.
+      *
+      * @param identityConstraintChecking True to turn on identity constraint checking.
+      *
+      * @see #getIdentityConstraintChecking
+      */
+    void setIdentityConstraintChecking(const bool identityConstraintChecking);
+
+    /**
+      * This method allows users to set the parser's behaviour when it
+      * encounters the first fatal error. If set to true, the parser
+      * will exit at the first fatal error. If false, then it will
+      * report the error and continue processing.
+      *
+      * <p>The default value is 'true' and the parser exits on the
+      * first fatal error.</p>
+      *
+      * @param newState The value specifying whether the parser should
+      *                 continue or exit when it encounters the first
+      *                 fatal error.
+      *
+      * @see #getExitOnFirstFatalError
+      */
+    void setExitOnFirstFatalError(const bool newState);
+
+    /**
+      * This method allows users to set the parser's behaviour when it
+      * encounters a validtion constraint error. If set to true, and the
+      * the parser will treat validation error as fatal and will exit depends on the
+      * state of "getExitOnFirstFatalError". If false, then it will
+      * report the error and continue processing.
+      *
+      * Note: setting this true does not mean the validation error will be printed with
+      * the word "Fatal Error".   It is still printed as "Error", but the parser
+      * will exit if "setExitOnFirstFatalError" is set to true.
+      *
+      * <p>The default value is 'false'.</p>
+      *
+      * @param newState If true, the parser will exit if "setExitOnFirstFatalError"
+      *                 is set to true.
+      *
+      * @see #getValidationConstraintFatal
+      * @see #setExitOnFirstFatalError
+      */
+    void setValidationConstraintFatal(const bool newState);
+
+    /**
+      * This method allows the user to specify a list of schemas to use.
+      * If the targetNamespace of a schema specified using this method matches
+      * the targetNamespace of a schema occuring in the instance document in
+      * the schemaLocation attribute, or if the targetNamespace matches the
+      * namespace attribute of the "import" element, the schema specified by the
+      * user using this method will be used (i.e., the schemaLocation attribute
+      * in the instance document or on the "import" element will be effectively ignored).
+      *
+      * If this method is called more than once, only the last one takes effect.
+      *
+      * The syntax is the same as for schemaLocation attributes in instance
+      * documents: e.g, "http://www.example.com file_name.xsd". The user can
+      * specify more than one XML Schema in the list.
+      *
+      * @param schemaLocation the list of schemas to use
+      *
+      * @see #getExternalSchemaLocation
+      */
+
+    void setExternalSchemaLocation(const XMLCh* const schemaLocation);
+
+    /**
+      * This method is same as setExternalSchemaLocation(const XMLCh* const).
+      * It takes native char string as parameter
+      *
+      * @param schemaLocation the list of schemas to use
+      *
+      * @see #setExternalSchemaLocation(const XMLCh* const)
+      */
+    void setExternalSchemaLocation(const char* const schemaLocation);
+
+    /**
+      * This method allows the user to specify the no target namespace XML
+      * Schema Location externally.  If specified, the instance document's
+      * noNamespaceSchemaLocation attribute will be effectively ignored.
+      *
+      * If this method is called more than once, only the last one takes effect.
+      *
+      * The syntax is the same as for the noNamespaceSchemaLocation attribute
+      * that may occur in an instance document: e.g."file_name.xsd".
+      *
+      * @param noNamespaceSchemaLocation the XML Schema Location with no target namespace
+      *
+      * @see #getExternalNoNamespaceSchemaLocation
+      */
+    void setExternalNoNamespaceSchemaLocation(const XMLCh* const noNamespaceSchemaLocation);
+
+    /**
+      * This method is same as setExternalNoNamespaceSchemaLocation(const XMLCh* const).
+      * It takes native char string as parameter
+      *
+      * @param noNamespaceSchemaLocation the XML Schema Location with no target namespace
+      *
+      * @see #setExternalNoNamespaceSchemaLocation(const XMLCh* const)
+      */
+    void setExternalNoNamespaceSchemaLocation(const char* const noNamespaceSchemaLocation);
+
+    /**
+      * This allows an application to set a SecurityManager on
+      * the parser; this object stores information that various
+      * components use to limit their consumption of system
+      * resources while processing documents.
+      *
+      * If this method is called more than once, only the last one takes effect.
+      * It may not be reset during a parse.
+      *
+      *
+      * @param securityManager  the SecurityManager instance to
+      * be used by this parser
+      *
+      * @see #getSecurityManager
+      */
+    void setSecurityManager(SecurityManager* const securityManager);
+
+    /** Set the 'Loading External DTD' flag
+      *
+      * This method allows users to enable or disable the loading of external DTD.
+      * When set to false, the parser will ignore any external DTD completely
+      * if the validationScheme is set to Val_Never.
+      *
+      * The parser's default state is: true.
+      *
+      * This flag is ignored if the validationScheme is set to Val_Always or Val_Auto.
+      *
+      * @param newState The value specifying whether external DTD should
+      *                 be loaded or not.
+      *
+      * @see #getLoadExternalDTD
+      * @see #setValidationScheme
+      */
+    void setLoadExternalDTD(const bool newState);
+
+    /** Set the 'Grammar caching' flag
+      *
+      * This method allows users to enable or disable caching of grammar when
+      * parsing XML documents. When set to true, the parser will cache the
+      * resulting grammar for use in subsequent parses.
+      *
+      * If the flag is set to true, the 'Use cached grammar' flag will also be
+      * set to true.
+      *
+      * The parser's default state is: false.
+      *
+      * @param newState The value specifying whether we should cache grammars
+      *                 or not.
+      *
+      * @see #isCachingGrammarFromParse
+      * @see #useCachedGrammarInParse
+      */
+    void cacheGrammarFromParse(const bool newState);
+
+    /** Set the 'Use cached grammar' flag
+      *
+      * This method allows users to enable or disable the use of cached
+      * grammars.  When set to true, the parser will use the cached grammar,
+      * instead of building the grammar from scratch, to validate XML
+      * documents.
+      *
+      * If the 'Grammar caching' flag is set to true, this method ignores the
+      * value passed in.
+      *
+      * The parser's default state is: false.
+      *
+      * @param newState The value specifying whether we should use the cached
+      *                 grammar or not.
+      *
+      * @see #isUsingCachedGrammarInParse
+      * @see #cacheGrammarFromParse
+      */
+    void useCachedGrammarInParse(const bool newState);
+
+    /** Enable/disable src offset calculation
+      *
+      * This method allows users to enable/disable src offset calculation.
+      * Disabling the calculation will improve performance.
+      *
+      * The parser's default state is: false.
+      *
+      * @param newState The value specifying whether we should enable or
+      *                 disable src offset calculation
+      *
+      * @see #getCalculateSrcOfs
+      */
+    void setCalculateSrcOfs(const bool newState);
+
+    /** Force standard uri
+      *
+      * This method allows users to tell the parser to force standard uri conformance.
+      *
+      * The parser's default state is: false.
+      *
+      * @param newState The value specifying whether the parser should reject malformed URI.
+      *
+      * @see #getStandardUriConformant
+      */
+    void setStandardUriConformant(const bool newState);
+
+    /** Set the scanner to use when scanning the XML document
+      *
+      * This method allows users to set the scanner to use
+      * when scanning a given XML document.
+      *
+      * @param scannerName The name of the desired scanner
+      */
+    void useScanner(const XMLCh* const scannerName);
+
+    /** Set maximum input buffer size
+      *
+      * This method allows users to limit the size of buffers used in parsing
+      * XML character data. The effect of setting this size is to limit the
+      * size of a ContentHandler::characters() call.
+      *
+      * The parser's default input buffer size is 1 megabyte.
+      *
+      * @param bufferSize The maximum input buffer size
+      */
+    void setInputBufferSize(const size_t bufferSize);
+
+    /** Set the 'ignore cached DTD grammar' flag
+      *
+      * This method gives users the option to ignore a cached DTD grammar, when
+      * an XML document contains both an internal and external DTD, and the use
+      * cached grammar from parse option is enabled. Currently, we do not allow
+      * using cached DTD grammar when an internal subset is present in the
+      * document. This option will only affect the behavior of the parser when
+      * an internal and external DTD both exist in a document (i.e. no effect
+      * if document has no internal subset).
+      *
+      * The parser's default state is false
+      *
+      * @param newValue The state to set
+      */
+    void setIgnoreCachedDTD(const bool newValue);
+
+    /** Set the 'ignore annotation' flag
+      *
+      * This method gives users the option to not generate XSAnnotations
+      * when "traversing" a schema.
+      *
+      * The parser's default state is false
+      *
+      * @param newValue The state to set
+      */
+    void setIgnoreAnnotations(const bool newValue);
+
+    /** Set the 'disable default entity resolution' flag
+      *
+      * This method gives users the option to not perform default entity
+      * resolution.  If the user's resolveEntity method returns NULL the
+      * parser will try to resolve the entity on its own.  When this option
+      * is set to true, the parser will not attempt to resolve the entity
+      * when the resolveEntity method returns NULL.
+      *    
+      * The parser's default state is false
+      *
+      * @param newValue The state to set
+      *
+      * @see #entityResolver
+      */
+    void setDisableDefaultEntityResolution(const bool newValue);
+
+    /** Set the 'skip DTD validation' flag
+      *
+      * This method gives users the option to skip DTD validation only when 
+      * schema validation is on (i.e. when performing validation,  we will
+      * ignore the DTD, except for entities, when schema validation is enabled).
+      *
+      * NOTE: This option is ignored if schema validation is disabled.
+      *
+      * The parser's default state is false
+      *
+      * @param newValue The state to set
+      */
+    void setSkipDTDValidation(const bool newValue);
+    //@}
+
+
+    // -----------------------------------------------------------------------
+    //  Advanced document handler list maintenance methods
+    // -----------------------------------------------------------------------
+
+    /** @name Advanced document handler list maintenance methods */
+    //@{
+    /**
+      * This method installs the specified 'advanced' document callback
+      * handler, thereby allowing the user to customize the processing,
+      * if they choose to do so. Any number of advanced callback handlers
+      * maybe installed.
+      *
+      * <p>The methods in the advanced callback interface represent
+      * Xerces-C extensions. There is no specification for this interface.</p>
+      *
+      * @param toInstall A pointer to the users advanced callback handler.
+      *
+      * @see #removeAdvDocHandler
+      */
+    void installAdvDocHandler(XMLDocumentHandler* const toInstall);
+
+    /**
+      * This method removes the 'advanced' document handler callback from
+      * the underlying parser scanner. If no handler is installed, advanced
+      * callbacks are not invoked by the scanner.
+      * @param toRemove A pointer to the advanced callback handler which
+      *                 should be removed.
+      *
+      * @see #installAdvDocHandler
+      */
+    bool removeAdvDocHandler(XMLDocumentHandler* const toRemove);
+    //@}
+
+
+    // -----------------------------------------------------------------------
+    //  Progressive scan methods
+    // -----------------------------------------------------------------------
+
+    /** @name Progressive scan methods */
+    //@{
+
+    /** Begin a progressive parse operation
+      *
+      * This method is used to start a progressive parse on a XML file.
+      * To continue parsing, subsequent calls must be to the parseNext
+      * method.
+      *
+      * It scans through the prolog and returns a token to be used on
+      * subsequent scanNext() calls. If the return value is true, then the
+      * token is legal and ready for further use. If it returns false, then
+      * the scan of the prolog failed and the token is not going to work on
+      * subsequent scanNext() calls.
+      *
+      * @param systemId A pointer to a Unicode string represting the path
+      *                 to the XML file to be parsed.
+      * @param toFill   A token maintaing state information to maintain
+      *                 internal consistency between invocation of 'parseNext'
+      *                 calls.
+      *
+      * @return 'true', if successful in parsing the prolog. It indicates the
+      *         user can go ahead with parsing the rest of the file. It
+      *         returns 'false' to indicate that the parser could parse the
+      *         prolog (which means the token will not be valid.)
+      *
+      * @see #parseNext
+      * @see #parseFirst(char*,...)
+      * @see #parseFirst(InputSource&,...)
+      */
+    bool parseFirst
+    (
+        const   XMLCh* const    systemId
+        ,       XMLPScanToken&  toFill
+    );
+
+    /** Begin a progressive parse operation
+      *
+      * This method is used to start a progressive parse on a XML file.
+      * To continue parsing, subsequent calls must be to the parseNext
+      * method.
+      *
+      * It scans through the prolog and returns a token to be used on
+      * subsequent scanNext() calls. If the return value is true, then the
+      * token is legal and ready for further use. If it returns false, then
+      * the scan of the prolog failed and the token is not going to work on
+      * subsequent scanNext() calls.
+      *
+      * @param systemId A pointer to a regular native string represting
+      *                 the path to the XML file to be parsed.
+      * @param toFill   A token maintaing state information to maintain
+      *                 internal consIstency between invocation of 'parseNext'
+      *                 calls.
+      *
+      * @return 'true', if successful in parsing the prolog. It indicates the
+      *         user can go ahead with parsing the rest of the file. It
+      *         returns 'false' to indicate that the parser could not parse
+      *         the prolog.
+      *
+      * @see #parseNext
+      * @see #parseFirst(XMLCh*,...)
+      * @see #parseFirst(InputSource&,...)
+      */
+    bool parseFirst
+    (
+        const   char* const     systemId
+        ,       XMLPScanToken&  toFill
+    );
+
+    /** Begin a progressive parse operation
+      *
+      * This method is used to start a progressive parse on a XML file.
+      * To continue parsing, subsequent calls must be to the parseNext
+      * method.
+      *
+      * It scans through the prolog and returns a token to be used on
+      * subsequent scanNext() calls. If the return value is true, then the
+      * token is legal and ready for further use. If it returns false, then
+      * the scan of the prolog failed and the token is not going to work on
+      * subsequent scanNext() calls.
+      *
+      * @param source   A const reference to the InputSource object which
+      *                 points to the XML file to be parsed.
+      * @param toFill   A token maintaing state information to maintain
+      *                 internal consistency between invocation of 'parseNext'
+      *                 calls.
+      *
+      * @return 'true', if successful in parsing the prolog. It indicates the
+      *         user can go ahead with parsing the rest of the file. It
+      *         returns 'false' to indicate that the parser could not parse
+      *         the prolog.
+      *
+      * @see #parseNext
+      * @see #parseFirst(XMLCh*,...)
+      * @see #parseFirst(char*,...)
+      */
+    bool parseFirst
+    (
+        const   InputSource&    source
+        ,       XMLPScanToken&  toFill
+    );
+
+    /** Continue a progressive parse operation
+      *
+      * This method is used to continue with progressive parsing of
+      * XML files started by a call to 'parseFirst' method.
+      *
+      * It parses the XML file and stops as soon as it comes across
+      * a XML token (as defined in the XML specification). Relevant
+      * callback handlers are invoked as required by the SAX
+      * specification.
+      *
+      * @param token A token maintaing state information to maintain
+      *              internal consistency between invocation of 'parseNext'
+      *              calls.
+      *
+      * @return 'true', if successful in parsing the next XML token.
+      *         It indicates the user can go ahead with parsing the rest
+      *         of the file. It returns 'false' to indicate that the parser
+      *         could not find next token as per the XML specification
+      *         production rule.
+      *
+      * @see #parseFirst(XMLCh*,...)
+      * @see #parseFirst(char*,...)
+      * @see #parseFirst(InputSource&,...)
+      */
+    bool parseNext(XMLPScanToken& token);
+
+    /** Reset the parser after a progressive parse
+      *
+      * If a progressive parse loop exits before the end of the document
+      * is reached, the parser has no way of knowing this. So it will leave
+      * open any files or sockets or memory buffers that were in use at
+      * the time that the parse loop exited.
+      *
+      * The next parse operation will cause these open files and such to
+      * be closed, but the next parse operation might occur at some unknown
+      * future point. To avoid this problem, you should reset the parser if
+      * you exit the loop early.
+      *
+      * If you exited because of an error, then this cleanup will be done
+      * for you. Its only when you exit the file prematurely of your own
+      * accord, because you've found what you wanted in the file most
+      * likely.
+      *
+      * @param token A token maintaing state information to maintain
+      *              internal consistency between invocation of 'parseNext'
+      *              calls.
+      */
+    void parseReset(XMLPScanToken& token);
+
+    //@}
+
+    // -----------------------------------------------------------------------
+    //  Grammar preparsing interface
+    // -----------------------------------------------------------------------
+
+    /** @name Implementation of Grammar preparsing interface's. */
+    //@{
+    /**
+      * Preparse schema grammar (XML Schema, DTD, etc.) via an input source
+      * object.
+      *
+      * This method invokes the preparsing process on a schema grammar XML
+      * file specified by the SAX InputSource parameter. If the 'toCache' flag
+      * is enabled, the parser will cache the grammars for re-use. If a grammar
+      * key is found in the pool, no caching of any grammar will take place.
+      *
+      * <p><b>"Experimental - subject to change"</b></p>
+      *
+      * @param source A const reference to the SAX InputSource object which
+      *               points to the schema grammar file to be preparsed.
+      * @param grammarType The grammar type (Schema or DTD).
+      * @param toCache If <code>true</code>, we cache the preparsed grammar,
+      *                otherwise, no chaching. Default is <code>false</code>.
+      * @return The preparsed schema grammar object (SchemaGrammar or
+      *         DTDGrammar). That grammar object is owned by the parser.
+      *
+      * @exception SAXException Any SAX exception, possibly
+      *            wrapping another exception.
+      * @exception XMLException An exception from the parser or client
+      *            handler code.
+      * @exception DOMException A DOM exception as per DOM spec.
+      *
+      * @see InputSource#InputSource
+      */
+    Grammar* loadGrammar(const InputSource& source,
+                         const short grammarType,
+                         const bool toCache = false);
+
+    /**
+      * Preparse schema grammar (XML Schema, DTD, etc.) via a file path or URL
+      *
+      * This method invokes the preparsing process on a schema grammar XML
+      * file specified by the file path parameter. If the 'toCache' flag
+      * is enabled, the parser will cache the grammars for re-use. If a grammar
+      * key is found in the pool, no caching of any grammar will take place.
+      *
+      * <p><b>"Experimental - subject to change"</b></p>
+      *
+      * @param systemId A const XMLCh pointer to the Unicode string which
+      *                 contains the path to the XML grammar file to be
+      *                 preparsed.
+      * @param grammarType The grammar type (Schema or DTD).
+      * @param toCache If <code>true</code>, we cache the preparsed grammar,
+      *                otherwise, no chaching. Default is <code>false</code>.
+      * @return The preparsed schema grammar object (SchemaGrammar or
+      *         DTDGrammar). That grammar object is owned by the parser.
+      *
+      * @exception SAXException Any SAX exception, possibly
+      *            wrapping another exception.
+      * @exception XMLException An exception from the parser or client
+      *            handler code.
+      * @exception DOMException A DOM exception as per DOM spec.
+      */
+    Grammar* loadGrammar(const XMLCh* const systemId,
+                         const short grammarType,
+                         const bool toCache = false);
+
+    /**
+      * Preparse schema grammar (XML Schema, DTD, etc.) via a file path or URL
+      *
+      * This method invokes the preparsing process on a schema grammar XML
+      * file specified by the file path parameter. If the 'toCache' flag
+      * is enabled, the parser will cache the grammars for re-use. If a grammar
+      * key is found in the pool, no caching of any grammar will take place.
+      *
+      * <p><b>"Experimental - subject to change"</b></p>
+      *
+      * @param systemId A const char pointer to a native string which contains
+      *                 the path to the XML grammar file to be preparsed.
+      * @param grammarType The grammar type (Schema or DTD).
+      * @param toCache If <code>true</code>, we cache the preparsed grammar,
+      *                otherwise, no chaching. Default is <code>false</code>.
+      * @return The preparsed schema grammar object (SchemaGrammar or
+      *         DTDGrammar). That grammar object is owned by the parser.
+      *
+      * @exception SAXException Any SAX exception, possibly
+      *            wrapping another exception.
+      * @exception XMLException An exception from the parser or client
+      *            handler code.
+      * @exception DOMException A DOM exception as per DOM spec.
+      */
+    Grammar* loadGrammar(const char* const systemId,
+                         const short grammarType,
+                         const bool toCache = false);
+
+    /**
+      * This method allows the user to reset the pool of cached grammars.
+      */
+    void resetCachedGrammarPool();
+
+    //@}
+
+
+    // -----------------------------------------------------------------------
+    //  Implementation of the SAX Parser interface
+    // -----------------------------------------------------------------------
+
+    /** @name Implementation of SAX 1.0 Parser interface's. */
+    //@{
+    /**
+      * This method invokes the parsing process on the XML file specified
+      * by the InputSource parameter.
+      *
+      * @param source A const reference to the InputSource object which
+      *               points to the XML file to be parsed.
+      *
+      * @see Parser#parse(InputSource)
+      */
+    virtual void parse(const InputSource& source);
+
+    /**
+      * This method invokes the parsing process on the XML file specified by
+      * the Unicode string parameter 'systemId'.
+      *
+      * @param systemId A const XMLCh pointer to the Unicode string which
+      *                 contains the path to the XML file to be parsed.
+      *
+      * @see Parser#parse(XMLCh*)
+      */
+    virtual void parse(const XMLCh* const systemId);
+
+    /**
+      * This method invokes the parsing process on the XML file specified by
+      * the native char* string parameter 'systemId'.
+      *
+      * @param systemId A const char pointer to a native string which
+      *                 contains the path to the XML file to be parsed.
+      */
+    virtual void parse(const char* const systemId);
+
+    /**
+      * This method installs the user specified SAX Document Handler
+      * callback function on parser.
+      *
+      * @param handler A pointer to the document handler to be called
+      *                when the parser comes across 'document' events
+      *                as per the SAX specification.
+      *
+      * @see Parser#parse(char*)
+      */
+    virtual void setDocumentHandler(DocumentHandler* const handler);
+
+    /**
+      * This method installs the user specified DTD handler on the parser.
+      *
+      * @param handler A pointer to the DTD handler to be called
+      *                when the parser comes across 'DTD' events
+      *                as per the SAX specification.
+      *
+      * @see Parser#setDTDHandler
+      */
+    virtual void setDTDHandler(DTDHandler* const handler);
+
+    /**
+      * This method installs the user specified error handler on
+      * the parser.
+      *
+      * @param handler A pointer to the error handler to be called
+      *                when the parser comes across 'error' events
+      *                as per the SAX specification.
+      *
+      * @see Parser#setErrorHandler
+      */
+    virtual void setErrorHandler(ErrorHandler* const handler);
+
+    /**
+      * This method installs the user specified PSVI handler on
+      * the parser.
+      *
+      * @param handler A pointer to the PSVI handler to be called
+      *                when the parser comes across 'PSVI' events
+      *                as per the schema specification.
+      *
+      * @see Parser#setPSVIHandler
+      */
+    virtual void setPSVIHandler(PSVIHandler* const handler);
+
+    /**
+      * This method installs the user specified entity resolver on the
+      * parser. It allows applications to trap and redirect calls to
+      * external entities.
+      *
+      * <i>Any previously set entity resolver is merely dropped, since the parser
+      * does not own them.  If both setEntityResolver and setXMLEntityResolver
+      * are called, then the last one is used.</i>
+      *
+      * @param resolver A pointer to the entity resolver to be called
+      *                 when the parser comes across references to
+      *                 entities in the XML file.
+      *
+      * @see Parser#setEntityResolver
+      */
+    virtual void setEntityResolver(EntityResolver* const resolver);
+
+    /**
+      * This method installs the user specified entity resolver on the
+      * parser. It allows applications to trap and redirect calls to
+      * external entities.
+      *
+      * <i>Any previously set entity resolver is merely dropped, since the parser
+      * does not own them.  If both setEntityResolver and setXMLEntityResolver
+      * are called, then the last one is used.</i>
+      *
+      * @param resolver A pointer to the entity resolver to be called
+      *                 when the parser comes across references to
+      *                 entities in the XML file.
+      *
+      * @see Parser#setXMLEntityResolver
+      */
+    virtual void setXMLEntityResolver(XMLEntityResolver* const resolver);
+
+    //@}
+
+
+    // -----------------------------------------------------------------------
+    //  Implementation of the XMLDocumentHandler interface
+    // -----------------------------------------------------------------------
+
+    /** @name Implementation of the XMLDocumentHandler Interface. */
+    //@{
+    /**
+      * This method is used to report all the characters scanned
+      * by the parser. The driver will invoke the 'characters'
+      * method of the user installed SAX Document Handler.
+      *
+      * <p>If any advanced callback handlers are installed, the
+      * corresponding 'docCharacters' method will also be invoked.</p>
+      *
+      * @param chars   A const pointer to a Unicode string representing the
+      *                character data.
+      * @param length  The length of the Unicode string returned in 'chars'.
+      * @param cdataSection  A flag indicating if the characters represent
+      *                      content from the CDATA section.
+      * @see DocumentHandler#characters
+      */
+    virtual void docCharacters
+    (
+        const   XMLCh* const    chars
+        , const unsigned int    length
+        , const bool            cdataSection
+    );
+
+    /**
+      * This method is used to report any comments scanned by the parser.
+      * This method is a no-op unless, unless an advanced callback handler
+      * is installed, in which case the corresponding 'docComment' method
+      * is invoked.
+      *
+      * @param comment A const pointer to a null terminated Unicode
+      *                string representing the comment text.
+      */
+    virtual void docComment
+    (
+        const   XMLCh* const    comment
+    );
+
+    /**
+      * This method is used to report any PI scanned by the parser.
+      *
+      * <p>Any PI's occurring before any 'content' are not reported
+      * to any SAX handler as per the specification. However, all
+      * PI's within content are reported via the SAX Document Handler's
+      * 'processingInstruction' method.
+      *
+      * <p>If any advanced callback handlers are installed, the
+      * corresponding 'docPI' method will be invoked.</p>
+      *
+      * @param target A const pointer to a Unicode string representing the
+      *               target of the PI declaration.
+      * @param data   A const pointer to a Unicode string representing the
+      *               data of the PI declaration. See the PI production rule
+      *               in the XML specification for details.
+      *
+      * @see DocumentHandler#processingInstruction
+      */
+    virtual void docPI
+    (
+        const   XMLCh* const    target
+        , const XMLCh* const    data
+    );
+
+    /**
+      * This method is used to indicate the end of root element
+      * was just scanned by the parser. Corresponding 'endDocument'
+      * method of the user installed SAX Document Handler will also
+      * be invoked.
+      *
+      * <p>In addition, if any advanced callback handlers are installed,
+      * the corresponding 'endDocument' method is invoked.</p>
+      *
+      * @see DocumentHandler#endDocument
+      */
+    virtual void endDocument();
+
+    /**
+      * This method is used to indicate the end tag of an element.
+      * The driver will invoke the corresponding 'endElement' method of
+      * the SAX Document Handler interface.
+      *
+      * <p>If any advanced callback handlers are installed, the
+      * corresponding 'endElement' method is also invoked.</p>
+      *
+      * @param elemDecl A const reference to the object containing element
+      *                 declaration information.
+      * @param urlId    An id referring to the namespace prefix, if
+      *                 namespaces setting is switched on.
+      * @param isRoot   A flag indicating whether this element was the
+      *                 root element.
+      * @param elemPrefix A const pointer to a Unicode string containing
+      *                   the namespace prefix for this element. Applicable
+      *                   only when namespace processing is enabled.
+      * @see DocumentHandler#endElement
+      */
+    virtual void endElement
+    (
+        const   XMLElementDecl& elemDecl
+        , const unsigned int    urlId
+        , const bool            isRoot
+        , const XMLCh* const    elemPrefix
+    );
+
+    /**
+      * This method is used to indicate that an end of an entity reference
+      * was just scanned.
+      *
+      * <p>If any advanced callback handlers are installed, the
+      * corresponding 'endEnityReference' method is invoked.</p>
+      *
+      * @param entDecl A const reference to the object containing the
+      *                entity declaration information.
+      */
+    virtual void endEntityReference
+    (
+        const   XMLEntityDecl&  entDecl
+    );
+
+    /**
+      * This method is used to report all the whitespace characters,
+      * which are determined to be 'ignorable'. This distinction
+      * between characters is only made, if validation is enabled.
+      * Corresponding 'ignorableWhitespace' method of the user installed
+      * SAX Document Handler interface is called.
+      *
+      * <p>Any whitespace before content is not reported to the SAX
+      * Document Handler method, as per the SAX specification.
+      * However, if any advanced callback handlers are installed, the
+      * corresponding 'ignorableWhitespace' method is invoked.</p>
+      *
+      * @param chars   A const pointer to a Unicode string representing the
+      *                ignorable whitespace character data.
+      * @param length  The length of the Unicode string 'chars'.
+      * @param cdataSection  A flag indicating if the characters represent
+      *                      content from the CDATA section.
+      * @see DocumentHandler#ignorableWhitespace
+      */
+    virtual void ignorableWhitespace
+    (
+        const   XMLCh* const    chars
+        , const unsigned int    length
+        , const bool            cdataSection
+    );
+
+    /**
+      * This method allows the user installed Document Handler and
+      * any advanced callback handlers to 'reset' themselves.
+      */
+    virtual void resetDocument();
+
+    /**
+      * This method is used to report the start of the parsing process.
+      * The corresponding user installed SAX Document Handler's method
+      * 'startDocument' is invoked.
+      *
+      * <p>If any advanced callback handlers are installed, then the
+      * corresponding 'startDocument' method is also called.</p>
+      *
+      * @see DocumentHandler#startDocument
+      */
+    virtual void startDocument();
+
+    /**
+      * This method is used to report the start of an element. It is
+      * called at the end of the element, by which time all attributes
+      * specified are also parsed. The corresponding user installed
+      * SAX Document Handler's method 'startElement' is invoked.
+      *
+      * <p>If any advanced callback handlers are installed, then the
+      * corresponding 'startElement' method is also called.</p>
+      *
+      * @param elemDecl A const reference to the object containing element
+      *                 declaration information.
+      * @param urlId    An id referring to the namespace prefix, if
+      *                 namespaces setting is switched on.
+      * @param elemPrefix A const pointer to a Unicode string containing
+      *                   the namespace prefix for this element. Applicable
+      *                   only when namespace processing is enabled.
+      * @param attrList  A const reference to the object containing the
+      *                  list of attributes just scanned for this element.
+      * @param attrCount A count of number of attributes in the list
+      *                  specified by the parameter 'attrList'.
+      * @param isEmpty  A flag indicating whether this is an empty element
+      *                 or not.
+      * @param isRoot   A flag indicating whether this element was the
+      *                 root element.
+      * @see DocumentHandler#startElement
+      */
+    virtual void startElement
+    (
+        const   XMLElementDecl&         elemDecl
+        , const unsigned int            urlId
+        , const XMLCh* const            elemPrefix
+        , const RefVectorOf<XMLAttr>&   attrList
+        , const unsigned int            attrCount
+        , const bool                    isEmpty
+        , const bool                    isRoot
+    );
+
+    /**
+      * This method is used to indicate the start of an entity reference.
+      *
+      * <p>If any advanced callback handlers are installed, the
+      * corresponding 'endEnityReference' method is invoked.</p>
+      *
+      * @param entDecl A const reference to the object containing the
+      *                entity declaration information.
+      */
+    virtual void startEntityReference
+    (
+        const   XMLEntityDecl&  entDecl
+    );
+
+    /**
+      * This method is used to report the XML decl scanned by the parser.
+      * Refer to the XML specification to see the meaning of parameters.
+      *
+      * <b>This method is a no-op for this SAX driver
+      * implementation.</b>
+      *
+      * @param versionStr A const pointer to a Unicode string representing
+      *                   version string value.
+      * @param encodingStr A const pointer to a Unicode string representing
+      *                    the encoding string value.
+      * @param standaloneStr A const pointer to a Unicode string
+      *                      representing the standalone string value.
+      * @param actualEncodingStr A const pointer to a Unicode string
+      *                          representing the actual encoding string
+      *                          value.
+      */
+    virtual void XMLDecl
+    (
+        const   XMLCh* const    versionStr
+        , const XMLCh* const    encodingStr
+        , const XMLCh* const    standaloneStr
+        , const XMLCh* const    actualEncodingStr
+    );
+    //@}
+
+
+    // -----------------------------------------------------------------------
+    //  Implementation of the XMLErrorReporter interface
+    // -----------------------------------------------------------------------
+
+    /** @name Implementation of the XMLErrorReporter Interface. */
+    //@{
+    /**
+      * This method is used to report back errors found while parsing the
+      * XML file. The driver will call the corresponding user installed
+      * SAX Error Handler methods: 'fatal', 'error', 'warning' depending
+      * on the severity of the error. This classification is defined by
+      * the XML specification.
+      *
+      * @param errCode An integer code for the error.
+      * @param msgDomain A const pointer to an Unicode string representing
+      *                  the message domain to use.
+      * @param errType An enumeration classifying the severity of the error.
+      * @param errorText A const pointer to an Unicode string representing
+      *                  the text of the error message.
+      * @param systemId  A const pointer to an Unicode string representing
+      *                  the system id of the XML file where this error
+      *                  was discovered.
+      * @param publicId  A const pointer to an Unicode string representing
+      *                  the public id of the XML file where this error
+      *                  was discovered.
+      * @param lineNum   The line number where the error occurred.
+      * @param colNum    The column number where the error occurred.
+      * @see ErrorHandler
+      */
+    virtual void error
+    (
+        const   unsigned int                errCode
+        , const XMLCh* const                msgDomain
+        , const XMLErrorReporter::ErrTypes  errType
+        , const XMLCh* const                errorText
+        , const XMLCh* const                systemId
+        , const XMLCh* const                publicId
+        , const XMLSSize_t                  lineNum
+        , const XMLSSize_t                  colNum
+    );
+
+    /**
+      * This method allows the user installed Error Handler
+      * callback to 'reset' itself.
+      *
+      * <b>This method is a no-op for this SAX driver
+      * implementation.</b>
+      *
+      */
+    virtual void resetErrors();
+    //@}
+
+
+    // -----------------------------------------------------------------------
+    //  Implementation of the XMLEntityHandler interface
+    // -----------------------------------------------------------------------
+
+    /** @name Implementation of the XMLEntityHandler Interface. */
+    //@{
+    /**
+      * This method is used to indicate the end of parsing of an external
+      * entity file.
+      *
+      * <b>This method is a no-op for this SAX driver
+      * implementation.</b>
+      *
+      * @param inputSource A const reference to the InputSource object
+      *                    which points to the XML file being parsed.
+      * @see InputSource
+      */
+    virtual void endInputSource(const InputSource& inputSource);
+
+    /**
+      * This method allows an installed XMLEntityHandler to further
+      * process any system id's of enternal entities encountered in
+      * the XML file being parsed, such as redirection etc.
+      *
+      * <b>This method always returns 'false'
+      * for this SAX driver implementation.</b>
+      *
+      * @param systemId  A const pointer to an Unicode string representing
+      *                  the system id scanned by the parser.
+      * @param toFill    A pointer to a buffer in which the application
+      *                  processed system id is stored.
+      * @return 'true', if any processing is done, 'false' otherwise.
+      */
+    virtual bool expandSystemId
+    (
+        const   XMLCh* const    systemId
+        ,       XMLBuffer&      toFill
+    );
+
+    /**
+      * This method allows the installed XMLEntityHandler to reset
+      * itself.
+      *
+      * <b>This method is a no-op for this SAX driver
+      * implementation.</b>
+      */
+    virtual void resetEntities();
+
+    /**
+      * This method allows a user installed entity handler to further
+      * process any pointers to external entities. The applications
+      * can implement 'redirection' via this callback. The driver
+      * should call the SAX EntityHandler 'resolveEntity' method.
+      *
+      * @deprecated This method is no longer called (the other resolveEntity one is).
+      *
+      * @param publicId A const pointer to a Unicode string representing the
+      *                 public id of the entity just parsed.
+      * @param systemId A const pointer to a Unicode string representing the
+      *                 system id of the entity just parsed.
+      * @param baseURI  A const pointer to a Unicode string representing the
+      *                 base URI of the entity just parsed,
+      *                 or <code>null</code> if there is no base URI.
+      * @return The value returned by the SAX resolveEntity method or
+      *         NULL otherwise to indicate no processing was done.
+      *         The returned InputSource is owned by the parser which is
+      *         responsible to clean up the memory.
+      * @see EntityResolver
+      * @see XMLEntityHandler
+      */
+    virtual InputSource* resolveEntity
+    (
+        const   XMLCh* const    publicId
+        , const XMLCh* const    systemId
+        , const XMLCh* const    baseURI = 0
+    );
+
+    /** Resolve a public/system id
+      *
+      * This method allows a user installed entity handler to further
+      * process any pointers to external entities. The applications can
+      * implement 'redirection' via this callback.  
+      *
+      * @param resourceIdentifier An object containing the type of
+      *        resource to be resolved and the associated data members
+      *        corresponding to this type.
+      * @return The value returned by the user installed resolveEntity
+      *         method or NULL otherwise to indicate no processing was done.
+      *         The returned InputSource is owned by the parser which is
+      *         responsible to clean up the memory.
+      * @see XMLEntityHandler
+      * @see XMLEntityResolver
+      */
+    virtual InputSource* resolveEntity
+    (
+        XMLResourceIdentifier* resourceIdentifier
+    );
+
+    /**
+      * This method is used to indicate the start of parsing an
+      * external entity file.
+      *
+      * <b>This method is a no-op for this SAX driver
+      * implementation.</b>
+      *
+      * @param inputSource A const reference to the InputSource object
+      *                    which points to the external entity
+      *                    being parsed.
+      */
+    virtual void startInputSource(const InputSource& inputSource);
+    //@}
+
+
+    // -----------------------------------------------------------------------
+    //  Implementation of the Deprecated DocTypeHandler Interface
+    // -----------------------------------------------------------------------
+    /** @name Implementation of the deprecated DocTypeHandler Interface */
+    //@{
+    /**
+      * This method is used to report an attribute definition.
+      *
+      * <b>This method is a no-op for this SAX
+      * driver implementation.</b>
+      *
+      * @param elemDecl A const reference to the object containing information
+      *                 about the element whose attribute definition was just
+      *                 parsed.
+      * @param attDef   A const reference to the object containing information
+      *                 attribute definition.
+      * @param ignore   The flag indicating whether this attribute definition
+      *                 was ignored by the parser or not.
+      */
+    virtual void attDef
+    (
+        const   DTDElementDecl& elemDecl
+        , const DTDAttDef&      attDef
+        , const bool            ignore
+    );
+
+    /**
+      * This method is used to report a comment occurring within the DTD.
+      *
+      * <b>This method is a no-op for this SAX driver
+      * implementation.</b>
+      *
+      * @param comment  A const pointer to a Unicode string representing the
+      *                 text of the comment just parsed.
+      */
+    virtual void doctypeComment
+    (
+        const   XMLCh* const    comment
+    );
+
+    /**
+      * This method is used to report the DOCTYPE declaration.
+      *
+      * <b>This method is a no-op for this SAX driver
+      * implementation.</b>
+      *
+      * @param elemDecl A const reference to the object containing information
+      *                 about the root element definition declaration of the
+      *                 XML document being parsed.
+      * @param publicId A const pointer to a Unicode string representing the
+      *                 public id of the DTD file.
+      * @param systemId A const pointer to a Unicode string representing the
+      *                 system id of the DTD file.
+      * @param hasIntSubset A flag indicating if this XML file contains any
+      *                     internal subset.
+      * @param hasExtSubset A flag indicating if this XML file contains any
+      *                     external subset. Default is false.
+      */
+    virtual void doctypeDecl
+    (
+        const   DTDElementDecl& elemDecl
+        , const XMLCh* const    publicId
+        , const XMLCh* const    systemId
+        , const bool            hasIntSubset
+        , const bool            hasExtSubset = false
+    );
+
+    /**
+      * This method is used to report any PI declarations
+      * occurring inside the DTD definition block.
+      *
+      * <b>This method is a no-op for this SAX driver
+      * implementation.</b>
+      *
+      * @param target A const pointer to a Unicode string representing the
+      *               target of the PI declaration.
+      * @param data   A const pointer to a Unicode string representing the
+      *               data of the PI declaration. See the PI production rule
+      *               in the XML specification for details.
+      */
+    virtual void doctypePI
+    (
+        const   XMLCh* const    target
+        , const XMLCh* const    data
+    );
+
+    /**
+      * This method is used to report any whitespaces
+      * occurring inside the DTD definition block.
+      *
+      * <b>This method is a no-op for this SAX driver
+      * implementation.</b>
+      *
+      * @param chars  A const pointer to a Unicode string representing the
+      *               whitespace characters.
+      * @param length The length of the whitespace Unicode string.
+      */
+    virtual void doctypeWhitespace
+    (
+        const   XMLCh* const    chars
+        , const unsigned int    length
+    );
+
+    /**
+      * This method is used to report an element declarations
+      * successfully scanned by the parser.
+      *
+      * <b>This method is a no-op for this SAX driver
+      * implementation.</b>
+      *
+      * @param decl   A const reference to the object containing element
+      *               declaration information.
+      * @param isIgnored The flag indicating whether this definition was
+      *                  ignored by the parser or not.
+      */
+    virtual void elementDecl
+    (
+        const   DTDElementDecl& decl
+        , const bool            isIgnored
+    );
+
+    /**
+      * This method is used to report the end of an attribute
+      * list declaration for an element.
+      *
+      * <b>This method is a no-op for this SAX driver
+      * implementation.</b>
+      *
+      * @param elemDecl A const reference to the object containing element
+      *                 declaration information.
+      */
+    virtual void endAttList
+    (
+        const   DTDElementDecl& elemDecl
+    );
+
+    /**
+      * This method is used to report the end of the internal subset.
+      *
+      * <b>This method is a no-op for this SAX driver
+      * implementation.</b>
+      */
+    virtual void endIntSubset();
+
+    /**
+      * This method is used to report the end of the external subset.
+      *
+      * <b>This method is a no-op for this SAX driver
+      * implementation.</b>
+      */
+    virtual void endExtSubset();
+
+    /**
+      * This method is used to report any entity declarations.
+      * For unparsed entities, this driver will invoke the
+      * SAX DTDHandler::unparsedEntityDecl callback.
+      *
+      * @param entityDecl A const reference to the object containing
+      *                   the entity declaration information.
+      * @param isPEDecl  The flag indicating whether this was a
+      *                  parameter entity declaration or not.
+      * @param isIgnored The flag indicating whether this definition
+      *                  was ignored by the parser or not.
+      *
+      * @see DTDHandler#unparsedEntityDecl
+      */
+    virtual void entityDecl
+    (
+        const   DTDEntityDecl&  entityDecl
+        , const bool            isPEDecl
+        , const bool            isIgnored
+    );
+
+    /**
+      * This method allows the user installed DTD handler to
+      * reset itself.
+      */
+    virtual void resetDocType();
+
+    /**
+      * This method is used to report any notation declarations.
+      * If there is a user installed DTDHandler, then the driver will
+      * invoke the SAX DTDHandler::notationDecl callback.
+      *
+      * @param notDecl A const reference to the object containing the notation
+      *                declaration information.
+      * @param isIgnored The flag indicating whether this definition was ignored
+      *                  by the parser or not.
+      *
+      * @see DTDHandler#notationDecl
+      */
+    virtual void notationDecl
+    (
+        const   XMLNotationDecl&    notDecl
+        , const bool                isIgnored
+    );
+
+    /**
+      * This method is used to indicate the start of an element's attribute
+      * list declaration.
+      *
+      * <b>This method is a no-op for this SAX driver
+      * implementation.</b>
+      *
+      * @param elemDecl A const reference to the object containing element
+      *                 declaration information.
+      */
+    virtual void startAttList
+    (
+        const   DTDElementDecl& elemDecl
+    );
+
+    /**
+      * This method is used indicate the start of the internal subset.
+      *
+      * <b>This method is a no-op for this SAX driver
+      * implementation.</b>
+      */
+    virtual void startIntSubset();
+
+    /**
+      * This method is used indicate the start of the external subset.
+      *
+      * <b>This method is a no-op for this SAX driver
+      * implementation.</b>
+      */
+    virtual void startExtSubset();
+
+    /**
+      * This method is used to report the TextDecl. Refer to the XML
+      * specification for the syntax of a TextDecl.
+      *
+      * <b>This method is a no-op for this SAX driver
+      * implementation.</b>
+      *
+      * @param versionStr A const pointer to a Unicode string representing
+      *                   the version number of the 'version' clause.
+      * @param encodingStr A const pointer to a Unicode string representing
+      *                    the encoding name of the 'encoding' clause.
+      */
+    virtual void TextDecl
+    (
+        const   XMLCh* const    versionStr
+        , const XMLCh* const    encodingStr
+    );
+    //@}
+
+
+    // -----------------------------------------------------------------------
+    //  Deprecated Methods
+    // -----------------------------------------------------------------------
+    /** @name Deprecated Methods */
+    //@{
+    /**
+      * This method returns the state of the parser's validation
+      * handling flag which controls whether validation checks
+      * are enforced or not.
+      *
+      * @return true, if the parser is currently configured to
+      *         do validation, false otherwise.
+      *
+      * @see #setDoValidation
+      */
+    bool getDoValidation() const;
+
+    /**
+      * This method allows users to enable or disable the parser's validation
+      * checks.
+      *
+      * <p>By default, the parser does not to any validation. The default
+      * value is false.</p>
+      *
+      * @param newState The value specifying whether the parser should
+      *                 do validity checks or not against the DTD in the
+      *                 input XML document.
+      *
+      * @see #getDoValidation
+      */
+    void setDoValidation(const bool newState);
+    //@}
+
+
+protected :
+    // -----------------------------------------------------------------------
+    //  Protected Methods
+    // -----------------------------------------------------------------------
+    /**
+      * This method returns a reference to the underlying scanner object.
+      * It allows read only access to data maintained in the scanner.
+      *
+      * @return A const reference to the underlying scanner object.
+      */
+    const XMLScanner& getScanner() const;
+
+    /** Get the Grammar resolver
+      *
+      * This provides derived classes with access to the grammar resolver.
+      */
+    GrammarResolver* getGrammarResolver() const;
+
+
+private:
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    SAXParser(const SAXParser&);
+    SAXParser& operator=(const SAXParser&);
+
+    // -----------------------------------------------------------------------
+    //  Initialize/Cleanup methods
+    // -----------------------------------------------------------------------
+    void initialize();
+    void cleanUp();
+    void resetInProgress();
+
+    // -----------------------------------------------------------------------
+    //  Private data members
+    //
+    //  fAttrList
+    //      A temporary implementation of the basic SAX attribute list
+    //      interface. We use this one over and over on each startElement
+    //      event to allow SAX-like access to the element attributes.
+    //
+    //  fDocHandler
+    //      The installed SAX doc handler, if any. Null if none.
+    //
+    //  fDTDHandler
+    //      The installed SAX DTD handler, if any. Null if none.
+    //
+    //  fElemDepth
+    //      This is used to track the element nesting depth, so that we can
+    //      know when we are inside content. This is so we can ignore char
+    //      data outside of content.
+    //
+    //  fEntityResolver
+    //      The installed SAX entity handler, if any. Null if none.
+    //
+    //  fErrorHandler
+    //      The installed SAX error handler, if any. Null if none.
+    //
+    //  fPSVIHandler
+    //      The installed PSVI handler, if any. Null if none.
+    //
+    //  fAdvDHCount
+    //  fAdvDHList
+    //  fAdvDHListSize
+    //      This is an array of pointers to XMLDocumentHandlers, which is
+    //      how we see installed advanced document handlers. There will
+    //      usually not be very many at all, so a simple array is used
+    //      instead of a collection, for performance. It will grow if needed,
+    //      but that is unlikely.
+    //
+    //      The count is how many handlers are currently installed. The size
+    //      is how big the array itself is (for expansion purposes.) When
+    //      count == size, is time to expand.
+    //
+    //  fParseInProgress
+    //      This flag is set once a parse starts. It is used to prevent
+    //      multiple entrance or reentrance of the parser.
+    //
+    //  fScanner
+    //      The scanner being used by this parser. It is created internally
+    //      during construction.
+    //
+    //   fGrammarPool
+    //      The grammar pool passed from external application (through derivatives).
+    //      which could be 0, not owned.
+    //
+    // -----------------------------------------------------------------------
+    bool                 fParseInProgress;
+    unsigned int         fElemDepth;
+    unsigned int         fAdvDHCount;
+    unsigned int         fAdvDHListSize;
+    VecAttrListImpl      fAttrList;
+    DocumentHandler*     fDocHandler;
+    DTDHandler*          fDTDHandler;
+    EntityResolver*      fEntityResolver;
+    XMLEntityResolver*   fXMLEntityResolver;
+    ErrorHandler*        fErrorHandler;
+    PSVIHandler*         fPSVIHandler;
+    XMLDocumentHandler** fAdvDHList;
+    XMLScanner*          fScanner;
+    GrammarResolver*     fGrammarResolver;
+    XMLStringPool*       fURIStringPool;
+    XMLValidator*        fValidator;
+    MemoryManager*       fMemoryManager;
+    XMLGrammarPool*      fGrammarPool;
+    XMLBuffer            fElemQNameBuf;
+};
+
+
+// ---------------------------------------------------------------------------
+//  SAXParser: Getter methods
+// ---------------------------------------------------------------------------
+inline DocumentHandler* SAXParser::getDocumentHandler()
+{
+    return fDocHandler;
+}
+
+inline const DocumentHandler* SAXParser::getDocumentHandler() const
+{
+    return fDocHandler;
+}
+
+inline EntityResolver* SAXParser::getEntityResolver()
+{
+    return fEntityResolver;
+}
+
+inline XMLEntityResolver* SAXParser::getXMLEntityResolver()
+{
+    return fXMLEntityResolver;
+}
+
+inline const XMLEntityResolver* SAXParser::getXMLEntityResolver() const
+{
+    return fXMLEntityResolver;
+}
+
+inline const EntityResolver* SAXParser::getEntityResolver() const
+{
+    return fEntityResolver;
+}
+
+inline ErrorHandler* SAXParser::getErrorHandler()
+{
+    return fErrorHandler;
+}
+
+inline const ErrorHandler* SAXParser::getErrorHandler() const
+{
+    return fErrorHandler;
+}
+
+inline PSVIHandler* SAXParser::getPSVIHandler()
+{
+    return fPSVIHandler;
+}
+
+inline const PSVIHandler* SAXParser::getPSVIHandler() const
+{
+    return fPSVIHandler;
+}
+
+inline const XMLScanner& SAXParser::getScanner() const
+{
+    return *fScanner;
+}
+
+inline GrammarResolver* SAXParser::getGrammarResolver() const
+{
+    return fGrammarResolver;
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/schema/XercesAttGroupInfo.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/schema/XercesAttGroupInfo.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/schema/XercesAttGroupInfo.hpp	(revision 2674)
@@ -0,0 +1,257 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: XercesAttGroupInfo.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(XERCESATTGROUPINFO_HPP)
+#define XERCESATTGROUPINFO_HPP
+
+
+/**
+  * The class act as a place holder to store attributeGroup information.
+  *
+  * The class is intended for internal use.
+  */
+
+// ---------------------------------------------------------------------------
+//  Includes
+// ---------------------------------------------------------------------------
+#include <xercesc/util/RefVectorOf.hpp>
+#include <xercesc/validators/schema/SchemaAttDef.hpp>
+
+#include <xercesc/internal/XSerializable.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class VALIDATORS_EXPORT XercesAttGroupInfo : public XSerializable, public XMemory
+{
+public:
+    // -----------------------------------------------------------------------
+    //  Public Constructors/Destructor
+    // -----------------------------------------------------------------------
+    XercesAttGroupInfo
+    (
+        unsigned int           attGroupNameId
+        , unsigned int         attGroupNamespaceId
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+    ~XercesAttGroupInfo();
+
+    // -----------------------------------------------------------------------
+    //  Getter methods
+    // -----------------------------------------------------------------------
+    bool                containsTypeWithId() const;
+    unsigned int        attributeCount() const;
+    unsigned int        anyAttributeCount() const;
+    unsigned int        getNameId() const;
+    unsigned int        getNamespaceId() const;
+    SchemaAttDef*       attributeAt(const unsigned int index);
+    const SchemaAttDef* attributeAt(const unsigned int index) const;
+    SchemaAttDef*       anyAttributeAt(const unsigned int index);
+    const SchemaAttDef* anyAttributeAt(const unsigned int index) const;
+    SchemaAttDef*       getCompleteWildCard() const;
+    const SchemaAttDef* getAttDef(const XMLCh* const baseName,
+                                  const int uriId) const;
+
+	// -----------------------------------------------------------------------
+    //  Setter methods
+    // -----------------------------------------------------------------------
+    void setTypeWithId(const bool other);
+    void addAttDef(SchemaAttDef* const toAdd, const bool toClone = false);
+    void addAnyAttDef(SchemaAttDef* const toAdd, const bool toClone = false);
+    void setCompleteWildCard(SchemaAttDef* const toSet);
+
+	// -----------------------------------------------------------------------
+    //  Query methods
+    // -----------------------------------------------------------------------
+    bool containsAttribute(const XMLCh* const name, const unsigned int uri);
+
+    /***
+     * Support for Serialization/De-serialization
+     ***/
+    DECL_XSERIALIZABLE(XercesAttGroupInfo)
+    XercesAttGroupInfo(MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+
+private:
+    // -----------------------------------------------------------------------
+    //  Unimplemented contstructors and operators
+    // -----------------------------------------------------------------------
+    XercesAttGroupInfo(const XercesAttGroupInfo& elemInfo);
+    XercesAttGroupInfo& operator= (const XercesAttGroupInfo& other);
+
+    // -----------------------------------------------------------------------
+    //  Private data members
+    // -----------------------------------------------------------------------
+    bool                       fTypeWithId;
+    unsigned int               fNameId;
+    unsigned int               fNamespaceId;
+    RefVectorOf<SchemaAttDef>* fAttributes;
+    RefVectorOf<SchemaAttDef>* fAnyAttributes;
+    SchemaAttDef*              fCompleteWildCard;
+    MemoryManager*             fMemoryManager;
+};
+
+// ---------------------------------------------------------------------------
+//  XercesAttGroupInfo: Getter methods
+// ---------------------------------------------------------------------------
+inline bool XercesAttGroupInfo::containsTypeWithId() const {
+
+    return fTypeWithId;
+}
+
+inline unsigned int XercesAttGroupInfo::attributeCount() const {
+
+    if (fAttributes) {
+        return fAttributes->size();
+    }
+
+    return 0;
+}
+
+inline unsigned int XercesAttGroupInfo::anyAttributeCount() const {
+
+    if (fAnyAttributes) {
+        return fAnyAttributes->size();
+    }
+
+    return 0;
+}
+
+inline unsigned int XercesAttGroupInfo::getNameId() const
+{
+    return fNameId;
+}
+
+inline unsigned int XercesAttGroupInfo::getNamespaceId() const
+{
+    return fNamespaceId;
+}
+
+inline SchemaAttDef*
+XercesAttGroupInfo::attributeAt(const unsigned int index) {
+
+    if (fAttributes) {
+        return fAttributes->elementAt(index);
+    }
+
+    return 0;
+}
+
+inline const SchemaAttDef*
+XercesAttGroupInfo::attributeAt(const unsigned int index) const {
+
+    if (fAttributes) {
+        return fAttributes->elementAt(index);
+    }
+
+    return 0;
+}
+
+inline SchemaAttDef*
+XercesAttGroupInfo::anyAttributeAt(const unsigned int index) {
+
+    if (fAnyAttributes) {
+        return fAnyAttributes->elementAt(index);
+    }
+
+    return 0;
+}
+
+inline const SchemaAttDef*
+XercesAttGroupInfo::anyAttributeAt(const unsigned int index) const {
+
+    if (fAnyAttributes) {
+        return fAnyAttributes->elementAt(index);
+    }
+
+    return 0;
+}
+
+inline SchemaAttDef*
+XercesAttGroupInfo::getCompleteWildCard() const {
+
+    return fCompleteWildCard;
+}
+
+// ---------------------------------------------------------------------------
+//  XercesAttGroupInfo: Setter methods
+// ---------------------------------------------------------------------------
+inline void XercesAttGroupInfo::setTypeWithId(const bool other) {
+
+    fTypeWithId = other;
+}
+
+inline void XercesAttGroupInfo::addAttDef(SchemaAttDef* const toAdd,
+                                             const bool toClone) {
+
+    if (!fAttributes) {
+        fAttributes = new (fMemoryManager) RefVectorOf<SchemaAttDef>(4, true, fMemoryManager);
+    }
+
+    if (toClone) {
+        SchemaAttDef* clonedAttDef = new (fMemoryManager) SchemaAttDef(toAdd);
+
+        if (!clonedAttDef->getBaseAttDecl())
+            clonedAttDef->setBaseAttDecl(toAdd);
+
+        fAttributes->addElement(clonedAttDef);
+    }
+    else {
+        fAttributes->addElement(toAdd);
+    }
+}
+
+inline void XercesAttGroupInfo::addAnyAttDef(SchemaAttDef* const toAdd,
+                                             const bool toClone) {
+
+    if (!fAnyAttributes) {
+        fAnyAttributes = new (fMemoryManager) RefVectorOf<SchemaAttDef>(2, true, fMemoryManager);
+    }
+
+    if (toClone) {
+        SchemaAttDef* clonedAttDef = new (fMemoryManager) SchemaAttDef(toAdd);
+
+        if (!clonedAttDef->getBaseAttDecl())
+            clonedAttDef->setBaseAttDecl(toAdd);
+
+        fAnyAttributes->addElement(clonedAttDef);
+    }
+    else {
+        fAnyAttributes->addElement(toAdd);
+    }
+}
+
+inline void
+XercesAttGroupInfo::setCompleteWildCard(SchemaAttDef* const toSet) {
+
+    if (fCompleteWildCard) {
+        delete fCompleteWildCard;
+    }
+
+    fCompleteWildCard = toSet;
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
+
+/**
+  * End of file XercesAttGroupInfo.hpp
+  */
+
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/schema/XSDErrorReporter.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/schema/XSDErrorReporter.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/schema/XSDErrorReporter.hpp	(revision 2674)
@@ -0,0 +1,111 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#if !defined(XSDERRORREPORTER_HPP)
+#define XSDERRORREPORTER_HPP
+
+#include <xercesc/util/XMemory.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class Locator;
+class XMLErrorReporter;
+
+
+/**
+ *  This class reports schema errors
+ */
+class VALIDATORS_EXPORT XSDErrorReporter : public XMemory
+{
+public:
+    // -----------------------------------------------------------------------
+    //  Constructors are hidden, only the virtual destructor is exposed
+    // -----------------------------------------------------------------------
+    XSDErrorReporter(XMLErrorReporter* const errorReporter = 0);
+
+    virtual ~XSDErrorReporter()
+    {
+    }
+
+    // -----------------------------------------------------------------------
+    //  Getter methods
+    // -----------------------------------------------------------------------
+    bool getExitOnFirstFatal() const;
+
+    // -----------------------------------------------------------------------
+    //  Setter methods
+    // -----------------------------------------------------------------------
+    void setErrorReporter(XMLErrorReporter* const errorReporter);
+    void setExitOnFirstFatal(const bool newValue);
+
+    // -----------------------------------------------------------------------
+    //  Report error methods
+    // -----------------------------------------------------------------------
+    void emitError(const unsigned int toEmit,
+                   const XMLCh* const msgDomain,
+                   const Locator* const aLocator);
+    void emitError(const unsigned int toEmit,
+                   const XMLCh* const msgDomain,
+                   const Locator* const aLocator,
+                   const XMLCh* const text1,
+                   const XMLCh* const text2 = 0,
+                   const XMLCh* const text3 = 0,
+                   const XMLCh* const text4 = 0,
+                   MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+                   );
+    void emitError(const XMLException&  except,
+                   const Locator* const aLocator);
+
+private:
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and destructor
+    // -----------------------------------------------------------------------
+    XSDErrorReporter(const XSDErrorReporter&);
+    XSDErrorReporter& operator=(const XSDErrorReporter&);
+
+    // -----------------------------------------------------------------------
+    //  Private data members
+    // -----------------------------------------------------------------------
+    bool              fExitOnFirstFatal;
+    XMLErrorReporter* fErrorReporter;
+};
+
+
+// ---------------------------------------------------------------------------
+//  XSDErrorReporter: Getter methods
+// ---------------------------------------------------------------------------
+inline bool XSDErrorReporter::getExitOnFirstFatal() const
+{
+    return fExitOnFirstFatal;
+}
+
+// ---------------------------------------------------------------------------
+//  XSDErrorReporter: Setter methods
+// ---------------------------------------------------------------------------
+inline void XSDErrorReporter::setExitOnFirstFatal(const bool newValue)
+{
+    fExitOnFirstFatal = newValue;
+}
+
+inline void XSDErrorReporter::setErrorReporter(XMLErrorReporter* const errorReporter)
+{
+    fErrorReporter = errorReporter;
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/schema/GeneralAttributeCheck.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/schema/GeneralAttributeCheck.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/schema/GeneralAttributeCheck.hpp	(revision 2674)
@@ -0,0 +1,289 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: GeneralAttributeCheck.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(GENERALATTRIBUTECHECK_HPP)
+#define GENERALATTRIBUTECHECK_HPP
+
+/**
+  * A general purpose class to check for valid values of attributes, as well
+  * as check for proper association with corresponding schema elements.
+  */
+
+// ---------------------------------------------------------------------------
+//  Includes
+// ---------------------------------------------------------------------------
+#include <xercesc/util/RefHashTableOf.hpp>
+#include <xercesc/util/ValueHashTableOf.hpp>
+#include <xercesc/validators/datatype/IDDatatypeValidator.hpp>
+#include <xercesc/framework/ValidationContext.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+// ---------------------------------------------------------------------------
+//  Forward declaration
+// ---------------------------------------------------------------------------
+class TraverseSchema;
+class DOMElement;
+class DOMNode;
+
+class VALIDATORS_EXPORT GeneralAttributeCheck : public XMemory
+{
+public:
+    // -----------------------------------------------------------------------
+    //  Constants
+    // -----------------------------------------------------------------------
+    //Elements
+    enum
+    {
+        E_All,
+        E_Annotation,
+        E_Any,
+        E_AnyAttribute,
+        E_Appinfo,
+        E_AttributeGlobal,
+        E_AttributeLocal,
+        E_AttributeRef,
+        E_AttributeGroupGlobal,
+        E_AttributeGroupRef,
+        E_Choice,
+        E_ComplexContent,
+        E_ComplexTypeGlobal,
+        E_ComplexTypeLocal,
+        E_Documentation,
+        E_ElementGlobal,
+        E_ElementLocal,
+        E_ElementRef,
+        E_Enumeration,
+        E_Extension,
+        E_Field,
+        E_FractionDigits,
+        E_GroupGlobal,
+        E_GroupRef,
+        E_Import,
+        E_Include,
+        E_Key,
+        E_KeyRef,
+        E_Length,
+        E_List,
+        E_MaxExclusive,
+        E_MaxInclusive,
+        E_MaxLength,
+        E_MinExclusive,
+        E_MinInclusive,
+        E_MinLength,
+        E_Notation,
+        E_Pattern,
+        E_Redefine,
+        E_Restriction,
+        E_Schema,
+        E_Selector,
+        E_Sequence,
+        E_SimpleContent,
+        E_SimpleTypeGlobal,
+        E_SimpleTypeLocal,
+        E_TotalDigits,
+        E_Union,
+        E_Unique,
+        E_WhiteSpace,
+
+        E_Count,
+        E_Invalid = -1
+    };
+
+    //Attributes
+    enum
+    {
+        A_Abstract,
+        A_AttributeFormDefault,
+        A_Base,
+        A_Block,
+        A_BlockDefault,
+        A_Default,
+        A_ElementFormDefault,
+        A_Final,
+        A_FinalDefault,
+        A_Fixed,
+        A_Form,
+        A_ID,
+        A_ItemType,
+        A_MaxOccurs,
+        A_MemberTypes,
+        A_MinOccurs,
+        A_Mixed,
+        A_Name,
+        A_Namespace,
+        A_Nillable,
+        A_ProcessContents,
+        A_Public,
+        A_Ref,
+        A_Refer,
+        A_SchemaLocation,
+        A_Source,
+        A_SubstitutionGroup,
+        A_System,
+        A_TargetNamespace,
+        A_Type,
+        A_Use,
+        A_Value,
+        A_Version,
+        A_XPath,
+
+        A_Count,
+        A_Invalid = -1
+    };
+
+    //Validators
+    enum {
+
+        DV_String = 0,
+        DV_AnyURI = 4,
+        DV_NonNegInt = 8,
+        DV_Boolean = 16,
+        DV_ID = 32,
+        DV_Form = 64,
+        DV_MaxOccurs = 128,
+        DV_MaxOccurs1 = 256,
+        DV_MinOccurs1 = 512,
+        DV_ProcessContents = 1024,
+        DV_Use = 2048,
+        DV_WhiteSpace = 4096,
+
+        DV_Mask = (DV_AnyURI | DV_NonNegInt | DV_Boolean | DV_ID | DV_Form |
+                   DV_MaxOccurs | DV_MaxOccurs1 | DV_MinOccurs1 |
+                   DV_ProcessContents | DV_Use | DV_WhiteSpace)
+    };
+
+    // generate element-attributes map table
+#if defined(NEED_TO_GEN_ELEM_ATT_MAP_TABLE)
+    static void initCharFlagTable();
+#endif
+
+    // -----------------------------------------------------------------------
+    //  Constructor/Destructor
+    // -----------------------------------------------------------------------
+    GeneralAttributeCheck(MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+    ~GeneralAttributeCheck();
+
+    // -----------------------------------------------------------------------
+    //  Getter methods
+    // -----------------------------------------------------------------------
+    unsigned short getFacetId(const XMLCh* const facetName, MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+
+    // -----------------------------------------------------------------------
+    //  Setter methods
+    // -----------------------------------------------------------------------
+
+    //deprecated
+    void setIDRefList(RefHashTableOf<XMLRefInfo>* const refList);
+
+    inline void setValidationContext(ValidationContext* const);
+
+    // -----------------------------------------------------------------------
+    //  Validation methods
+    // -----------------------------------------------------------------------
+    void checkAttributes(const DOMElement* const elem,
+                         const unsigned short elemContext,
+                         TraverseSchema* const schema,
+                         const bool isTopLevel = false,
+                         ValueVectorOf<DOMNode*>* const nonXSAttList = 0);
+
+    // -----------------------------------------------------------------------
+    //  Notification that lazy data has been deleted
+    // -----------------------------------------------------------------------
+	static void reinitGeneralAttCheck();
+
+private:
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    GeneralAttributeCheck(const GeneralAttributeCheck&);
+    GeneralAttributeCheck& operator=(const GeneralAttributeCheck&);
+
+    // -----------------------------------------------------------------------
+    //  Setup methods
+    // -----------------------------------------------------------------------
+    void setUpValidators();
+    void mapElements();
+    void mapAttributes();
+
+    // -----------------------------------------------------------------------
+    //  Validation methods
+    // -----------------------------------------------------------------------
+    void validate(const DOMElement* const elem, const XMLCh* const attName, const XMLCh* const attValue,
+                  const short dvIndex, TraverseSchema* const schema);
+
+    // -----------------------------------------------------------------------
+    //  Private Constants
+    // -----------------------------------------------------------------------
+    // optional vs. required attribute
+    enum {
+        Att_Required = 1,
+        Att_Optional = 2,
+        Att_Mask = 3
+    };
+
+    // -----------------------------------------------------------------------
+    //  Private data members
+    // -----------------------------------------------------------------------
+    static ValueHashTableOf<unsigned short>* fAttMap;
+    static ValueHashTableOf<unsigned short>* fFacetsMap;
+    static DatatypeValidator*                fNonNegIntDV;
+    static DatatypeValidator*                fBooleanDV;
+    static DatatypeValidator*                fAnyURIDV;
+    static unsigned short                    fgElemAttTable[E_Count][A_Count];
+    static const XMLCh*                      fAttNames[A_Count];
+    MemoryManager*                           fMemoryManager;
+    ValidationContext*                       fValidationContext;
+    IDDatatypeValidator                      fIDValidator;
+};
+
+
+// ---------------------------------------------------------------------------
+//  GeneralAttributeCheck: Getter methods
+// ---------------------------------------------------------------------------
+inline unsigned short
+GeneralAttributeCheck::getFacetId(const XMLCh* const facetName, MemoryManager* const manager) {
+
+    return fFacetsMap->get(facetName, manager);
+}
+
+// ---------------------------------------------------------------------------
+//  GeneralAttributeCheck: Setter methods
+// ---------------------------------------------------------------------------
+inline void GeneralAttributeCheck::setValidationContext(ValidationContext* const newValidationContext)
+{
+    fValidationContext = newValidationContext;
+}
+
+inline void
+GeneralAttributeCheck::setIDRefList(RefHashTableOf<XMLRefInfo>* const refList) {
+
+    fValidationContext->setIdRefList(refList);
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
+
+/**
+  * End of file GeneralAttributeCheck.hpp
+  */
+
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/schema/SchemaElementDecl.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/schema/SchemaElementDecl.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/schema/SchemaElementDecl.hpp	(revision 2674)
@@ -0,0 +1,863 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: SchemaElementDecl.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+#if !defined(SCHEMAELEMENTDECL_HPP)
+#define SCHEMAELEMENTDECL_HPP
+
+#include <xercesc/util/QName.hpp>
+#include <xercesc/validators/common/Grammar.hpp>
+#include <xercesc/validators/schema/ComplexTypeInfo.hpp>
+#include <xercesc/validators/schema/identity/IdentityConstraint.hpp>
+#include <xercesc/validators/datatype/DatatypeValidator.hpp>
+#include <xercesc/validators/datatype/UnionDatatypeValidator.hpp>
+#include <xercesc/validators/schema/PSVIDefs.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class ContentSpecNode;
+class SchemaAttDefList;
+
+//
+//  This class is a derivative of the basic element decl. This one implements
+//  the virtuals so that they work for a Schema.
+//
+class VALIDATORS_EXPORT SchemaElementDecl : public XMLElementDecl
+{
+public :
+
+    // -----------------------------------------------------------------------
+    //  Class specific types
+    //
+    //  ModelTypes
+    //      Indicates the type of content model that an element has. This
+    //      indicates how the content model is represented and validated.
+    // -----------------------------------------------------------------------
+    enum ModelTypes
+    {
+        Empty
+        , Any
+        , Mixed_Simple
+        , Mixed_Complex
+        , Children
+        , Simple
+
+        , ModelTypes_Count
+    };
+
+    // -----------------------------------------------------------------------
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+    SchemaElementDecl(MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+    SchemaElementDecl
+    (
+          const XMLCh* const   prefix
+        , const XMLCh* const   localPart
+        , const int            uriId
+        , const ModelTypes     modelType = Any
+        , const int            enclosingScope = Grammar::TOP_LEVEL_SCOPE
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    SchemaElementDecl
+    (
+          const QName* const   elementName
+        , const ModelTypes     modelType = Any
+        , const int            enclosingScope = Grammar::TOP_LEVEL_SCOPE
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    ~SchemaElementDecl();
+
+
+    // -----------------------------------------------------------------------
+    //  The virtual element decl interface
+    // -----------------------------------------------------------------------
+    virtual XMLAttDef* findAttr
+    (
+        const   XMLCh* const    qName
+        , const unsigned int    uriId
+        , const XMLCh* const    baseName
+        , const XMLCh* const    prefix
+        , const LookupOpts      options
+        ,       bool&           wasAdded
+    )   const;
+    virtual XMLAttDefList& getAttDefList() const;
+    virtual CharDataOpts getCharDataOpts() const;
+    virtual bool hasAttDefs() const;
+    // @deprecated; not thread-safe
+    virtual bool resetDefs();
+    virtual const ContentSpecNode* getContentSpec() const;
+    virtual ContentSpecNode* getContentSpec();
+    virtual void setContentSpec(ContentSpecNode* toAdopt);
+    virtual XMLContentModel* getContentModel();
+    virtual void setContentModel(XMLContentModel* const newModelToAdopt);
+    virtual const XMLCh* getFormattedContentModel ()   const;
+
+
+    // -----------------------------------------------------------------------
+    //  Getter methods
+    // -----------------------------------------------------------------------
+    const SchemaAttDef* getAttDef(const XMLCh* const baseName, const int uriId) const;
+    SchemaAttDef* getAttDef(const XMLCh* const baseName, const int uriId);
+    const SchemaAttDef* getAttWildCard() const;
+    SchemaAttDef* getAttWildCard();
+    ModelTypes getModelType() const;
+    PSVIDefs::PSVIScope getPSVIScope() const;
+    DatatypeValidator* getDatatypeValidator() const;
+    int getEnclosingScope() const;
+    int getFinalSet() const;
+    int getBlockSet() const;
+    int getMiscFlags() const;
+    XMLCh* getDefaultValue() const;
+    ComplexTypeInfo* getComplexTypeInfo() const;
+    virtual bool isGlobalDecl() const;
+    SchemaElementDecl* getSubstitutionGroupElem() const;
+
+
+    // ----------------------------------------------------------------------
+    // Partial implementation of PSVI
+    // The values these methods return are only accurate until the cleanUp method
+    // is called (in the end tag part of the scanner you are using)
+    // note that some of this information has dependancies. For example,
+    // if something is not valid then the information returned by the other 
+    // calls may be meaningless
+    // See http://www.w3.org/TR/xmlschema-1/ for detailed information
+    // ----------------------------------------------------------------------
+
+
+    /**
+     * The appropriate case among the following:
+     * 1 If it was strictly assessed, then the appropriate case among the following:
+     * 1.1 If all of the following are true
+     *    1.1.1
+     *    1.1.1.1 clause 1.1 of Schema-Validity Assessment (Element) (3.3.4) applied and the item was valid as defined by Element Locally Valid (Element) (3.3.4);
+     *    1.1.1.2 clause 1.2 of Schema-Validity Assessment (Element) (3.3.4) applied and the item was valid as defined by Element Locally Valid (Type) (3.3.4).
+     *    1.1.2 Neither its [children] nor its [attributes] contains an information item (element or attribute respectively) whose [validity] is invalid.
+     *    1.1.3 Neither its [children] nor its [attributes] contains an information item (element or attribute respectively) with a context-determined declaration of mustFind whose [validity] is unknown.
+     * , then valid;
+     *    1.2 otherwise invalid.
+     *    2 otherwise notKnown.
+     * @deprecated; not thread-safe
+     */
+    PSVIDefs::Validity getValidity() const;
+
+
+    /**
+     * The appropriate case among the following:
+     * 1 If it was strictly assessed and neither its [children] nor its [attributes] contains an information item (element or attribute respectively) whose [validation attempted] is not full, then full;
+     * 2 If it was not strictly assessed and neither its [children] nor its [attributes] contains an information item (element or attribute respectively) whose [validation attempted] is not none, then none;
+     *3 otherwise partial.
+     * @deprecated; not thread-safe
+     */
+    PSVIDefs::Validation getValidationAttempted() const;
+
+
+    /**
+     * @return the complexity. simple or complex, depending on the type definition.
+     * @deprecated; not thread-safe
+     */
+    PSVIDefs::Complexity getTypeType() const;
+
+    /**
+     * The target namespace of the type definition.
+     * @deprecated; not thread-safe (will not work with xsi:type and shared grammars)
+     */
+    const XMLCh* getTypeUri() const;
+
+    /**
+     * The {name} of the type definition, if it is not absent. 
+     * @deprecated; not thread-safe (will not work with xsi:type and shared grammars)
+     */
+    const XMLCh* getTypeName() const;
+
+    /**
+     * true if the {name} of the type definition is absent, otherwise false.
+     * @deprecated; not thread-safe (will not work with xsi:type and shared grammars)
+     */
+    bool getTypeAnonymous() const;
+
+    /**
+     * If this method returns true and validity is VALID then the next three 
+     * produce accurate results
+     * @return true if the element is validated using a union type
+     * @deprecated; not thread-safe (will not work with xsi:type and shared grammars)
+     */
+    bool isTypeDefinitionUnion() const;
+
+    /**
+     * The {target namespace} of the actual member type definition.
+     * @deprecated; not thread-safe (will not work with xsi:type and shared grammars)
+     */
+    const XMLCh* getMemberTypeUri() const;
+
+    /**
+     * @return true if the {name} of the actual member type definition is absent, otherwise false.
+     * @deprecated; not thread-safe (will not work with xsi:type and shared grammars)
+     */
+    bool getMemberTypeAnonymous() const;
+
+    /**
+     * @return the {name} of the actual member type definition, if it is not absent. 
+     * @deprecated; not thread-safe (will not work with xsi:type and shared grammars)
+     */
+    const XMLCh* getMemberTypeName() const;
+
+
+    /**
+     * @deprecated; not thread-safe (will not work with xsi:type and shared grammars)
+     */
+    virtual const XMLCh* getDOMTypeInfoUri() const;
+    /**
+     * @deprecated; not thread-safe (will not work with xsi:type and shared grammars)
+     */
+    virtual const XMLCh* getDOMTypeInfoName() const;
+
+
+    // -----------------------------------------------------------------------
+    //  Setter methods
+    // -----------------------------------------------------------------------
+    /**
+     * @deprecated; not actually used
+     */    
+    void setElemId(unsigned int elemId);
+    void setModelType(const SchemaElementDecl::ModelTypes toSet);
+    void setPSVIScope(const PSVIDefs::PSVIScope toSet);
+    void setDatatypeValidator(DatatypeValidator* newDatatypeValidator);
+    void setEnclosingScope(const int enclosingScope);
+    void setFinalSet(const int finalSet);
+    void setBlockSet(const int blockSet);
+    void setMiscFlags(const int flags);
+    void setDefaultValue(const XMLCh* const value);
+    void setComplexTypeInfo(ComplexTypeInfo* const typeInfo);
+    /**
+     * @deprecated; not thread-safe (will not work with xsi:type and shared grammars)
+     */
+    void setXsiComplexTypeInfo(ComplexTypeInfo* const typeInfo);
+    /**
+     * @deprecated; not thread-safe (will not work with xsi:type and shared grammars)
+     */
+    void setXsiSimpleTypeInfo(const DatatypeValidator* const dtv);
+    void setAttWildCard(SchemaAttDef* const attWildCard);
+    void setSubstitutionGroupElem(SchemaElementDecl* const elemDecl);
+    /**
+     * @deprecated; not thread-safe (will not work with xsi:type and shared grammars)
+     */
+    void setValidity(PSVIDefs::Validity valid);
+    /**
+     * @deprecated; not thread-safe (will not work with xsi:type and shared grammars)
+     */
+    void setValidationAttempted(PSVIDefs::Validation validation);
+    
+    /**
+     * called when element content of this element was validated
+     * @deprecated; not thread-safe (will not work with xsi:type and shared grammars)
+     */
+    void updateValidityFromElement(const XMLElementDecl *decl, Grammar::GrammarType eleGrammar);
+    
+    //called when attribute content of this element was validated    
+    // @deprecated; should not be needed in a thread-safe implementation
+    void updateValidityFromAttribute(const SchemaAttDef *def);
+
+    /**
+     * cleans up inbetween uses of the SchemaElementDecl. Resets xsiType, Validity etc.
+     * @deprecated; not thread-safe (will not work with xsi:type and shared grammars)
+     */
+    void reset();
+
+    // -----------------------------------------------------------------------
+    //  IC methods
+    // -----------------------------------------------------------------------
+    void addIdentityConstraint(IdentityConstraint* const ic);
+    unsigned int getIdentityConstraintCount() const;
+    IdentityConstraint* getIdentityConstraintAt(unsigned int index) const;
+
+    /***
+     * Support for Serialization/De-serialization
+     ***/
+    DECL_XSERIALIZABLE(SchemaElementDecl)
+
+    virtual XMLElementDecl::objectType  getObjectType() const;
+
+private :
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    SchemaElementDecl(const SchemaElementDecl&);
+    SchemaElementDecl& operator=(const SchemaElementDecl&);
+
+    // -----------------------------------------------------------------------
+    //  Private data members
+    //
+    //  fModelType
+    //      The content model type of this element. This tells us what kind
+    //      of content model to create.
+    //
+    //  fDatatypeValidator
+    //      The DatatypeValidator used to validate this element type.
+    //
+    //  fEnclosingScope
+    //      The enclosing scope where this element is declared.
+    //
+    //  fFinalSet
+    //      The value set of the 'final' attribute.
+    //
+    //  fBlockSet
+    //      The value set of the 'block' attribute.
+    //
+    //  fMiscFlags
+    //      Stores 'abstract/nullable' values
+    //
+    //  fDefaultValue
+    //      The defalut/fixed value
+    //
+    //  fComplexTypeInfo
+    //      Stores complex type information
+    //      (no need to delete - handled by schema grammar)
+    //
+    //  fAttDefs
+    //      The list of attributes that are faulted in for this element
+    //      when ComplexTypeInfo does not exist.  We want to keep track
+    //      of these faulted in attributes to avoid duplicate redundant
+    //      error.
+    //
+    //  fXsiComplexTypeInfo
+    //      Temporary store the xsi:type ComplexType here for validation
+    //      If it presents, then it takes precedence than its own fComplexTypeInfo.
+    //
+    //  fXsiSimpleTypeInfo
+    //      Temporary store the xsi:type SimpleType here for validation
+    //      If it present then the information from it will be returned rather than fDatatypeValidator
+    //
+    //  fIdentityConstraints
+    //      Store information about an element identity constraints.
+    //
+    //  fAttWildCard
+    //      Store wildcard attribute in the case of an element with a type of
+    //      'anyType'.
+    //
+    //  fSubstitutionGroupElem
+    //      The substitution group element declaration.
+    //
+    //  fValidity
+    //      After this attr has been validated this is its validity
+    //
+    //  fValidation
+    //      The type of validation that happened to this attr
+    //
+    //  fSeenValidation
+    //      set to true when a piece of content of this element is validated 
+    //
+    //  fSeenNoValidation
+    //      set to true when a piece of content of this element is laxly or skip validated
+    //
+    //  fHadContent
+    //      true when this element actually had content.
+    // -----------------------------------------------------------------------
+
+    // -----------------------------------------------------------------------
+    ModelTypes                         fModelType;
+    PSVIDefs::PSVIScope                fPSVIScope;
+    PSVIDefs::Validity                 fValidity;
+    PSVIDefs::Validation               fValidation;
+
+    int                                fEnclosingScope;
+    int                                fFinalSet;
+    int                                fBlockSet;
+    int                                fMiscFlags;    
+    XMLCh*                             fDefaultValue;
+    ComplexTypeInfo*                   fComplexTypeInfo;
+    RefHash2KeysTableOf<SchemaAttDef>* fAttDefs;
+    ComplexTypeInfo*                   fXsiComplexTypeInfo;
+    const DatatypeValidator*           fXsiSimpleTypeInfo;
+    RefVectorOf<IdentityConstraint>*   fIdentityConstraints;
+    SchemaAttDef*                      fAttWildCard;
+    SchemaElementDecl*                 fSubstitutionGroupElem;
+    DatatypeValidator*                 fDatatypeValidator;
+
+    bool                               fSeenValidation;
+    bool                               fSeenNoValidation;
+    bool                               fHadContent;
+};
+
+// ---------------------------------------------------------------------------
+//  SchemaElementDecl: XMLElementDecl virtual interface implementation
+// ---------------------------------------------------------------------------
+inline ContentSpecNode* SchemaElementDecl::getContentSpec()
+{
+    if (fComplexTypeInfo != 0) {
+        return fComplexTypeInfo->getContentSpec();
+    }
+
+    return 0;
+}
+
+inline const ContentSpecNode* SchemaElementDecl::getContentSpec() const
+{
+    if (fComplexTypeInfo != 0) {
+        return fComplexTypeInfo->getContentSpec();
+    }
+
+    return 0;
+}
+
+inline void
+SchemaElementDecl::setContentSpec(ContentSpecNode*)
+{
+    //Handled by complexType
+}
+
+inline XMLContentModel* SchemaElementDecl::getContentModel()
+{
+    if (fComplexTypeInfo != 0) {
+        return fComplexTypeInfo->getContentModel();
+    }
+    return 0;
+}
+
+inline void
+SchemaElementDecl::setContentModel(XMLContentModel* const)
+{
+    //Handled by complexType
+}
+
+
+// ---------------------------------------------------------------------------
+//  SchemaElementDecl: Getter methods
+// ---------------------------------------------------------------------------
+inline SchemaElementDecl::ModelTypes SchemaElementDecl::getModelType() const
+{
+    if (fComplexTypeInfo) {
+        return (SchemaElementDecl::ModelTypes) fComplexTypeInfo->getContentType();
+    }
+
+    return fModelType;
+}
+
+inline PSVIDefs::PSVIScope SchemaElementDecl::getPSVIScope() const
+{
+    return fPSVIScope;
+}
+
+inline DatatypeValidator* SchemaElementDecl::getDatatypeValidator() const
+{
+
+    return fDatatypeValidator;
+}
+
+inline int SchemaElementDecl::getEnclosingScope() const
+{
+    return fEnclosingScope;
+}
+
+inline int SchemaElementDecl::getFinalSet() const
+{
+    return fFinalSet;
+}
+
+inline int SchemaElementDecl::getBlockSet() const
+{
+    return fBlockSet;
+}
+
+inline int SchemaElementDecl::getMiscFlags() const
+{
+    return fMiscFlags;
+}
+
+inline XMLCh* SchemaElementDecl::getDefaultValue() const
+{
+    return fDefaultValue;
+}
+
+inline ComplexTypeInfo* SchemaElementDecl::getComplexTypeInfo() const
+{
+
+    return fComplexTypeInfo;
+}
+
+inline const SchemaAttDef* SchemaElementDecl::getAttWildCard() const {
+
+    return fAttWildCard;
+}
+
+inline SchemaAttDef* SchemaElementDecl::getAttWildCard() {
+
+    return fAttWildCard;
+}
+
+inline bool SchemaElementDecl::isGlobalDecl() const {
+
+    return (fEnclosingScope == Grammar::TOP_LEVEL_SCOPE);
+}
+
+inline SchemaElementDecl*
+SchemaElementDecl::getSubstitutionGroupElem() const {
+
+    return fSubstitutionGroupElem;
+}
+
+inline const XMLCh* SchemaElementDecl::getTypeName() const {
+    // removing fXsi* references would break DOMTypeInfo implementation completely;
+    // will have to wait for now
+    if (fXsiComplexTypeInfo)
+        return fXsiComplexTypeInfo->getTypeLocalName();
+    else if (fComplexTypeInfo) 
+        return fComplexTypeInfo->getTypeLocalName();
+    else if(fXsiSimpleTypeInfo)
+        return fXsiSimpleTypeInfo->getTypeLocalName();
+    else if(fDatatypeValidator)
+        return fDatatypeValidator->getTypeLocalName();
+
+    //its anyType if we have not done validation on it or none of the above exist
+    return SchemaSymbols::fgATTVAL_ANYTYPE;
+}
+
+inline PSVIDefs::Complexity SchemaElementDecl::getTypeType() const {
+    if(getModelType() == Simple) {
+        return PSVIDefs::SIMPLE;
+    }
+    else {
+        return PSVIDefs::COMPLEX;
+    }
+}
+
+
+inline const XMLCh* SchemaElementDecl::getTypeUri() const {
+    // removing fXsi* references would break DOMTypeInfo implementation completely;
+    // will have to wait for now
+    if (fXsiComplexTypeInfo)
+        return fXsiComplexTypeInfo->getTypeUri();
+    else if (fComplexTypeInfo)
+        return fComplexTypeInfo->getTypeUri();
+    else if(fXsiSimpleTypeInfo)
+        return fXsiSimpleTypeInfo->getTypeUri();
+    else if(fDatatypeValidator)
+        return fDatatypeValidator->getTypeUri();
+
+    //its anyType if we have not done validation on it or none of the above exist
+    return SchemaSymbols::fgURI_SCHEMAFORSCHEMA;
+}
+
+inline const XMLCh* SchemaElementDecl::getMemberTypeName() const {
+    // removing fXsi* references would break DOMTypeInfo implementation completely;
+    // will have to wait for now
+    if(fXsiSimpleTypeInfo && fXsiSimpleTypeInfo->getType() == DatatypeValidator::Union)
+        return ((UnionDatatypeValidator*)fXsiSimpleTypeInfo)->getMemberTypeName();
+    else if(fDatatypeValidator && fDatatypeValidator->getType() == DatatypeValidator::Union)
+        return ((UnionDatatypeValidator*)fDatatypeValidator)->getMemberTypeName();
+    return 0;
+}
+
+inline const XMLCh* SchemaElementDecl::getMemberTypeUri() const {
+    // removing fXsi* references would break DOMTypeInfo implementation completely;
+    // will have to wait for now
+    if(fXsiSimpleTypeInfo && fXsiSimpleTypeInfo->getType() == DatatypeValidator::Union)
+        return ((UnionDatatypeValidator*)fXsiSimpleTypeInfo)->getMemberTypeUri();
+    if(fDatatypeValidator && fDatatypeValidator->getType() == DatatypeValidator::Union)
+        return ((UnionDatatypeValidator*)fDatatypeValidator)->getMemberTypeUri();
+
+    return 0;
+}
+
+inline bool SchemaElementDecl::getMemberTypeAnonymous() const {
+    // removing fXsi* references would break DOMTypeInfo implementation completely;
+    // will have to wait for now
+    if(fXsiSimpleTypeInfo && fXsiSimpleTypeInfo->getType() == DatatypeValidator::Union)
+        return ((UnionDatatypeValidator*)fXsiSimpleTypeInfo)->getMemberTypeAnonymous();
+    else if(fDatatypeValidator && fDatatypeValidator->getType() == DatatypeValidator::Union)
+        return ((UnionDatatypeValidator*)fDatatypeValidator)->getMemberTypeAnonymous();
+    return false;
+}
+
+inline bool SchemaElementDecl::isTypeDefinitionUnion() const {
+    // removing fXsi* references would break DOMTypeInfo implementation completely;
+    // will have to wait for now
+   if(fXsiSimpleTypeInfo && fXsiSimpleTypeInfo->getType() == DatatypeValidator::Union ||
+      fDatatypeValidator && fDatatypeValidator->getType() == DatatypeValidator::Union)
+       return true;
+    return false;
+}
+
+inline PSVIDefs::Validity SchemaElementDecl::getValidity() const {
+    return fValidity;
+}
+
+inline PSVIDefs::Validation SchemaElementDecl::getValidationAttempted() const {
+    if(!fHadContent)
+        return fValidation;
+
+    if(!fSeenNoValidation && fSeenValidation)
+        return PSVIDefs::FULL;
+    else if(fSeenNoValidation && !fSeenValidation)
+        return PSVIDefs::NONE;
+    else
+        return PSVIDefs::PARTIAL;
+}
+
+inline bool SchemaElementDecl::getTypeAnonymous() const {
+    
+    //REVISIT - since xsi type have to be accessed through names 
+    //presumeably they cannot be anonymous
+    
+    if (fXsiComplexTypeInfo) {
+        return fXsiComplexTypeInfo->getAnonymous();
+    }
+    else if (fComplexTypeInfo) {
+        return fComplexTypeInfo->getAnonymous();
+    }
+    else if(fXsiSimpleTypeInfo) {
+        return fXsiSimpleTypeInfo->getAnonymous();
+    }
+    else if(fDatatypeValidator){
+        return fDatatypeValidator->getAnonymous();
+    }
+
+    return false;
+}
+
+inline const XMLCh* SchemaElementDecl::getDOMTypeInfoName() const {
+    // removing fXsi* references would break DOMTypeInfo implementation completely;
+    // will have to wait for now
+    if(fValidity != PSVIDefs::VALID) {
+        if(getTypeType() == PSVIDefs::SIMPLE)
+            return SchemaSymbols::fgDT_ANYSIMPLETYPE;
+        else
+            return SchemaSymbols::fgATTVAL_ANYTYPE;
+    }
+
+    if(getTypeAnonymous() || getMemberTypeAnonymous())
+        return 0;
+    if(fDatatypeValidator && fDatatypeValidator->getType() == DatatypeValidator::Union)
+        return ((UnionDatatypeValidator*)fDatatypeValidator)->getMemberTypeName();
+    if(fXsiSimpleTypeInfo && fXsiSimpleTypeInfo->getType() == DatatypeValidator::Union)
+        return ((UnionDatatypeValidator*)fXsiSimpleTypeInfo)->getMemberTypeName();
+    return getTypeName();
+}
+
+inline const XMLCh* SchemaElementDecl::getDOMTypeInfoUri() const {
+
+    // removing fXsi* references would break DOMTypeInfo implementation completely;
+    // will have to wait for now
+    if(fValidity != PSVIDefs::VALID)
+        return SchemaSymbols::fgURI_SCHEMAFORSCHEMA;
+
+    if(getTypeAnonymous() || getMemberTypeAnonymous())
+        return 0;
+
+    if(fDatatypeValidator && fDatatypeValidator->getType() == DatatypeValidator::Union)
+        return ((UnionDatatypeValidator*)fDatatypeValidator)->getMemberTypeUri();
+
+    if(fXsiSimpleTypeInfo && fXsiSimpleTypeInfo->getType() == DatatypeValidator::Union)
+        return ((UnionDatatypeValidator*)fXsiSimpleTypeInfo)->getMemberTypeUri();
+
+
+    return getTypeUri();
+}
+
+// ---------------------------------------------------------------------------
+//  SchemaElementDecl: Setter methods
+// ---------------------------------------------------------------------------
+inline void
+SchemaElementDecl::setElemId(unsigned int)
+{
+    //there is not getElemId so this is not needed. mark deprecated.
+    //fElemId = elemId;
+}
+
+inline void
+SchemaElementDecl::setModelType(const SchemaElementDecl::ModelTypes toSet)
+{
+    fModelType = toSet;
+}
+
+inline void
+SchemaElementDecl::setPSVIScope(const PSVIDefs::PSVIScope toSet)
+{
+    fPSVIScope = toSet;
+}
+
+inline void SchemaElementDecl::setDatatypeValidator(DatatypeValidator* newDatatypeValidator)
+{
+    fDatatypeValidator = newDatatypeValidator;
+}
+
+inline void SchemaElementDecl::setEnclosingScope(const int newEnclosingScope)
+{
+    fEnclosingScope = newEnclosingScope;
+}
+
+inline void SchemaElementDecl::setFinalSet(const int finalSet)
+{
+    fFinalSet = finalSet;
+}
+
+inline void SchemaElementDecl::setBlockSet(const int blockSet)
+{
+    fBlockSet = blockSet;
+}
+
+inline void SchemaElementDecl::setMiscFlags(const int flags)
+{
+    fMiscFlags = flags;
+}
+
+inline void SchemaElementDecl::setDefaultValue(const XMLCh* const value)
+{
+    if (fDefaultValue) {
+        getMemoryManager()->deallocate(fDefaultValue);//delete[] fDefaultValue;
+    }
+
+    fDefaultValue = XMLString::replicate(value, getMemoryManager());
+}
+
+inline void
+SchemaElementDecl::setComplexTypeInfo(ComplexTypeInfo* const typeInfo)
+{
+    fComplexTypeInfo = typeInfo;
+}
+
+inline void
+SchemaElementDecl::setXsiComplexTypeInfo(ComplexTypeInfo* const typeInfo)
+{
+    fXsiComplexTypeInfo = typeInfo;
+}
+
+inline void
+SchemaElementDecl::setXsiSimpleTypeInfo(const DatatypeValidator* const dtv)
+{
+    fXsiSimpleTypeInfo = dtv;
+}
+
+inline void
+SchemaElementDecl::setAttWildCard(SchemaAttDef* const attWildCard) {
+
+    if (fAttWildCard)
+        delete fAttWildCard;
+
+    fAttWildCard = attWildCard;
+}
+
+inline void
+SchemaElementDecl::setSubstitutionGroupElem(SchemaElementDecl* const elemDecl) {
+
+    fSubstitutionGroupElem = elemDecl;
+}
+
+inline void SchemaElementDecl::setValidity(PSVIDefs::Validity valid) {
+    fValidity = valid;
+}
+
+inline void SchemaElementDecl::setValidationAttempted(PSVIDefs::Validation validation) {
+    fValidation = validation;
+}
+
+inline void SchemaElementDecl::updateValidityFromAttribute(const SchemaAttDef *def) {
+
+    PSVIDefs::Validation curValAttemted = def->getValidationAttempted();
+    PSVIDefs::Validity curVal = def->getValidity();
+        
+    if(curValAttemted == PSVIDefs::NONE || curValAttemted == PSVIDefs::PARTIAL) {
+        fSeenNoValidation = true;
+        fValidity = PSVIDefs::UNKNOWN;
+    }
+    else {
+        fSeenValidation = true;
+    }
+        
+    if(curVal == PSVIDefs::INVALID)
+        fValidity = PSVIDefs::INVALID;
+
+    fHadContent = true;
+}
+
+inline void SchemaElementDecl::updateValidityFromElement(const XMLElementDecl *decl, Grammar::GrammarType eleGrammar) {
+
+    if (eleGrammar == Grammar::SchemaGrammarType) {                    
+        PSVIDefs::Validation curValAttemted = ((SchemaElementDecl *)decl)->getValidationAttempted();
+        PSVIDefs::Validity curVal = ((SchemaElementDecl *)decl)->getValidity();
+        
+        if(curValAttemted == PSVIDefs::NONE || curValAttemted == PSVIDefs::PARTIAL) {
+            fSeenNoValidation = true;
+            fValidity = PSVIDefs::UNKNOWN;
+        }
+        else {
+            fSeenValidation = true;
+        }
+        
+        if(curVal == PSVIDefs::INVALID)
+            fValidity = PSVIDefs::INVALID;
+    }
+
+    fHadContent = true;
+
+}
+
+inline void SchemaElementDecl::reset() {
+    if(fXsiSimpleTypeInfo && fXsiSimpleTypeInfo->getType() == DatatypeValidator::Union)
+        ((UnionDatatypeValidator *)fXsiSimpleTypeInfo)->reset();
+    if(fDatatypeValidator && fDatatypeValidator->getType() == DatatypeValidator::Union)
+        ((UnionDatatypeValidator *)fDatatypeValidator)->reset();
+
+    setXsiSimpleTypeInfo(0);
+    setXsiComplexTypeInfo(0);
+    fValidity = PSVIDefs::UNKNOWN;
+    fValidation = PSVIDefs::NONE;    
+    fSeenValidation = false;
+    fSeenNoValidation = false;
+    fHadContent = false;
+}
+
+// ---------------------------------------------------------------------------
+//  SchemaElementDecl: IC methods
+// ---------------------------------------------------------------------------
+inline void
+SchemaElementDecl::addIdentityConstraint(IdentityConstraint* const ic) {
+
+    if (!fIdentityConstraints) {
+        fIdentityConstraints = new (getMemoryManager()) RefVectorOf<IdentityConstraint>(16, true, getMemoryManager());
+    }
+
+    fIdentityConstraints->addElement(ic);
+}
+
+inline unsigned int SchemaElementDecl::getIdentityConstraintCount() const {
+
+    if (fIdentityConstraints) {
+        return fIdentityConstraints->size();
+    }
+
+    return 0;
+}
+
+inline IdentityConstraint*
+SchemaElementDecl::getIdentityConstraintAt(unsigned int index) const {
+
+    if (fIdentityConstraints) {
+        return fIdentityConstraints->elementAt(index);
+    }
+
+    return 0;
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/schema/identity/ValueStore.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/schema/identity/ValueStore.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/schema/identity/ValueStore.hpp	(revision 2674)
@@ -0,0 +1,144 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: ValueStore.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(VALUESTORE_HPP)
+#define VALUESTORE_HPP
+
+/**
+  * This class stores values associated to an identity constraint.
+  * Each value stored corresponds to a field declared for the identity
+  * constraint.
+  */
+
+// ---------------------------------------------------------------------------
+//  Includes
+// ---------------------------------------------------------------------------
+#include <xercesc/validators/schema/identity/FieldValueMap.hpp>
+#include <xercesc/util/RefVectorOf.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+// ---------------------------------------------------------------------------
+//  Forward Declaration
+// ---------------------------------------------------------------------------
+class FieldActivator;
+class IdentityConstraint;
+class XMLScanner;
+class ValueStoreCache;
+
+
+class VALIDATORS_EXPORT ValueStore : public XMemory
+{
+public:
+    // -----------------------------------------------------------------------
+    //  Constructors/Destructor
+    // -----------------------------------------------------------------------
+    ValueStore(IdentityConstraint* const ic,
+               XMLScanner* const scanner,
+               MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+	~ValueStore();
+
+    // -----------------------------------------------------------------------
+    //  Getter methods
+    // -----------------------------------------------------------------------
+    IdentityConstraint* getIdentityConstraint() const;
+
+    // -----------------------------------------------------------------------
+    //  Helper methods
+    // -----------------------------------------------------------------------
+    void append(const ValueStore* const other);
+    void startValueScope();
+    void endValueScope();
+    void addValue(FieldActivator* const fieldActivator,
+                  IC_Field* const field,
+                  DatatypeValidator* const dv,
+                  const XMLCh* const value);
+    bool contains(const FieldValueMap* const other);
+
+    /**
+      * @deprecated
+      */
+    void addValue(IC_Field* const field, DatatypeValidator* const dv,
+                  const XMLCh* const value);
+
+
+    // -----------------------------------------------------------------------
+    //  Document handling methods
+    // -----------------------------------------------------------------------
+    void endDcocumentFragment(ValueStoreCache* const valueStoreCache);
+
+    // -----------------------------------------------------------------------
+    //  Error reporting methods
+    // -----------------------------------------------------------------------
+    void duplicateValue();
+    void reportNilError(IdentityConstraint* const ic);
+
+private:
+    // -----------------------------------------------------------------------
+    //  Unimplemented contstructors and operators
+    // -----------------------------------------------------------------------
+    ValueStore(const ValueStore& other);
+    ValueStore& operator= (const ValueStore& other);
+
+    // -----------------------------------------------------------------------
+    //  Helper methods
+    // -----------------------------------------------------------------------
+    /**
+      * Returns whether a field associated <DatatypeValidator, String> value
+      * is a duplicate of another associated value.
+      * It is a duplicate only if either of these conditions are true:
+      * - The Datatypes are the same or related by derivation and the values
+      *   are in the same valuespace.
+      * - The datatypes are unrelated and the values are Stringwise identical.
+      */
+    bool isDuplicateOf(DatatypeValidator* const dv1, const XMLCh* const val1,
+                       DatatypeValidator* const dv2, const XMLCh* const val2);
+
+
+    // -----------------------------------------------------------------------
+    //  Data
+    // -----------------------------------------------------------------------
+    bool                        fDoReportError;
+    int                         fValuesCount;
+    IdentityConstraint*         fIdentityConstraint;
+    FieldValueMap               fValues;
+    RefVectorOf<FieldValueMap>* fValueTuples;
+    ValueStore*                 fKeyValueStore;
+    XMLScanner*                 fScanner; // for error reporting - REVISIT
+    MemoryManager*              fMemoryManager;
+};
+
+// ---------------------------------------------------------------------------
+//  ValueStore: Getter methods
+// ---------------------------------------------------------------------------
+inline IdentityConstraint*
+ValueStore::getIdentityConstraint() const {
+    return fIdentityConstraint;
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
+
+/**
+  * End of file ValueStore.hpp
+  */
+
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/schema/identity/IC_Selector.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/schema/identity/IC_Selector.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/schema/identity/IC_Selector.hpp	(revision 2674)
@@ -0,0 +1,152 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: IC_Selector.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(IC_SELECTOR_HPP)
+#define IC_SELECTOR_HPP
+
+
+// ---------------------------------------------------------------------------
+//  Includes
+// ---------------------------------------------------------------------------
+#include <xercesc/validators/schema/identity/XPathMatcher.hpp>
+
+#include <xercesc/internal/XSerializable.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+// ---------------------------------------------------------------------------
+//  Forward Declaration
+// ---------------------------------------------------------------------------
+class FieldActivator;
+
+
+class VALIDATORS_EXPORT IC_Selector : public XSerializable, public XMemory
+{
+public:
+    // -----------------------------------------------------------------------
+    //  Constructors/Destructor
+    // -----------------------------------------------------------------------
+    IC_Selector(XercesXPath* const xpath,
+                IdentityConstraint* const identityConstraint);
+	~IC_Selector();
+
+    // -----------------------------------------------------------------------
+    //  operators
+    // -----------------------------------------------------------------------
+    bool operator== (const IC_Selector& other) const;
+    bool operator!= (const IC_Selector& other) const;
+
+	// -----------------------------------------------------------------------
+    //  Getter methods
+    // -----------------------------------------------------------------------
+    XercesXPath* getXPath() const { return fXPath; }
+    IdentityConstraint* getIdentityConstraint() const { return fIdentityConstraint; }
+
+	// -----------------------------------------------------------------------
+    //  Factory methods
+    // -----------------------------------------------------------------------
+    XPathMatcher* createMatcher(FieldActivator* const fieldActivator,
+                                const int initialDepth,
+                                MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+
+    /***
+     * Support for Serialization/De-serialization
+     ***/
+    DECL_XSERIALIZABLE(IC_Selector)
+
+    IC_Selector(MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+
+private:
+    // -----------------------------------------------------------------------
+    //  Unimplemented contstructors and operators
+    // -----------------------------------------------------------------------
+    IC_Selector(const IC_Selector& other);
+    IC_Selector& operator= (const IC_Selector& other);
+
+    // -----------------------------------------------------------------------
+    //  Data members
+    // -----------------------------------------------------------------------
+    XercesXPath*        fXPath;
+    IdentityConstraint* fIdentityConstraint;
+};
+
+
+class VALIDATORS_EXPORT SelectorMatcher : public XPathMatcher
+{
+public:
+    // -----------------------------------------------------------------------
+    //  Constructors/Destructor
+    // -----------------------------------------------------------------------
+    ~SelectorMatcher() {}
+
+    int getInitialDepth() const { return fInitialDepth; }
+
+    // -----------------------------------------------------------------------
+    //  XMLDocumentHandler methods
+    // -----------------------------------------------------------------------
+    void startDocumentFragment();
+    void startElement(const XMLElementDecl& elemDecl,
+                      const unsigned int urlId,
+                      const XMLCh* const elemPrefix,
+		              const RefVectorOf<XMLAttr>& attrList,
+                      const unsigned int attrCount);
+    void endElement(const XMLElementDecl& elemDecl,
+                    const XMLCh* const elemContent);
+
+private:
+    // -----------------------------------------------------------------------
+    //  Constructors/Destructor
+    // -----------------------------------------------------------------------
+    SelectorMatcher(XercesXPath* const anXPath,
+                    IC_Selector* const selector,
+                    FieldActivator* const fieldActivator,
+                    const int initialDepth,
+                    MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+
+    // -----------------------------------------------------------------------
+    //  Unimplemented contstructors and operators
+    // -----------------------------------------------------------------------
+    SelectorMatcher(const SelectorMatcher& other);
+    SelectorMatcher& operator= (const SelectorMatcher& other);
+
+    // -----------------------------------------------------------------------
+    //  Friends
+    // -----------------------------------------------------------------------
+    friend class IC_Selector;
+
+    // -----------------------------------------------------------------------
+    //  Data members
+    // -----------------------------------------------------------------------
+    int             fInitialDepth;
+    int             fElementDepth;
+    int             fMatchedDepth;
+    IC_Selector*    fSelector;
+    FieldActivator* fFieldActivator;
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
+
+/**
+  * End of file IC_Selector.hpp
+  */
+
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/schema/identity/IdentityConstraintHandler.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/schema/identity/IdentityConstraintHandler.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/schema/identity/IdentityConstraintHandler.hpp	(revision 2674)
@@ -0,0 +1,158 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: IdentityConstraintHandler.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(IDENTITYCONSTRAINT_HANDLER_HPP)
+#define IDENTITYCONSTRAINT_HANDLER_HPP
+
+// ---------------------------------------------------------------------------
+//  Includes
+// ---------------------------------------------------------------------------
+#include <xercesc/validators/schema/identity/ValueStoreCache.hpp>
+#include <xercesc/validators/schema/identity/XPathMatcherStack.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+// ---------------------------------------------------------------------------
+//  Forward Declarations
+// ---------------------------------------------------------------------------
+
+class XMLScanner;
+class FieldActivator;
+class MemoryManager;
+class XMLElementDecl;
+
+class VALIDATORS_EXPORT IdentityConstraintHandler: public XMemory
+{
+public:
+
+    // -----------------------------------------------------------------------
+    //  Constructors/Destructor
+    // -----------------------------------------------------------------------
+	virtual ~IdentityConstraintHandler();
+
+    IdentityConstraintHandler
+              (
+               XMLScanner*   const scanner
+             , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+              );
+
+    // -----------------------------------------------------------------------
+    //  Getter methods
+    // -----------------------------------------------------------------------
+    inline  int          getMatcherCount() const;
+
+	// -----------------------------------------------------------------------
+    //  Setter methods
+    // -----------------------------------------------------------------------
+
+	// -----------------------------------------------------------------------
+    //  Access methods
+    // -----------------------------------------------------------------------
+    inline  void         endDocument();
+
+            void         deactivateContext
+                             (
+                                    SchemaElementDecl* const elem
+                            , const XMLCh*             const content
+                              );
+
+            void         activateIdentityConstraint
+                               (
+                                     SchemaElementDecl* const     elem
+                             ,       int                          elemDepth
+                             , const unsigned int                 uriId
+                             , const XMLCh*                 const elemPrefix
+                             , const RefVectorOf<XMLAttr>&        attrList
+                             , const unsigned int                 attrCount
+                               );
+
+            void         reset();
+
+private:
+    // -----------------------------------------------------------------------
+    //  Unimplemented contstructors and operators
+    // -----------------------------------------------------------------------
+    IdentityConstraintHandler(const IdentityConstraintHandler& other);
+    IdentityConstraintHandler& operator= (const IdentityConstraintHandler& other);
+
+    // -----------------------------------------------------------------------
+    //  CleanUp methods
+    // -----------------------------------------------------------------------
+    void    cleanUp();
+
+    // -----------------------------------------------------------------------
+    //  Helper
+    // -----------------------------------------------------------------------
+    void    activateSelectorFor(
+                                      IdentityConstraint* const ic
+                              , const int                       initialDepth
+                               ) ;
+
+    // -----------------------------------------------------------------------
+    //  Data members
+    //
+    //  fMatcherStack
+    //      Stack of active XPath matchers for identity constraints. All
+    //      active XPath matchers are notified of startElement, characters
+    //      and endElement callbacks in order to perform their matches.
+    //
+    //  fValueStoreCache
+    //      Cache of value stores for identity constraint fields.
+    //
+    //  fFieldActivator
+    //      Activates fields within a certain scope when a selector matches
+    //      its xpath.
+    //
+    // -----------------------------------------------------------------------
+    XMLScanner*                 fScanner;
+    MemoryManager*              fMemoryManager;
+
+    XPathMatcherStack*          fMatcherStack;
+    ValueStoreCache*            fValueStoreCache;
+    FieldActivator*             fFieldActivator;
+
+};
+
+
+// ---------------------------------------------------------------------------
+//  IdentityConstraintHandler: 
+// ---------------------------------------------------------------------------
+
+inline 
+void  IdentityConstraintHandler::endDocument()
+{
+    fValueStoreCache->endDocument();
+}
+
+inline
+int  IdentityConstraintHandler::getMatcherCount() const
+{
+    return fMatcherStack->getMatcherCount();
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
+
+/**
+  * End of file IdentityConstraintHandler.hpp
+  */
+
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/schema/identity/XPathSymbols.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/schema/identity/XPathSymbols.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/schema/identity/XPathSymbols.hpp	(revision 2674)
@@ -0,0 +1,75 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: XPathSymbols.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(XPATHSYMBOLS_HPP)
+#define XPATHSYMBOLS_HPP
+
+#include <xercesc/util/XercesDefs.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+/*
+ * Collection of symbols used to parse a Schema Grammar
+ */
+
+class VALIDATORS_EXPORT XPathSymbols
+{
+public :
+    // -----------------------------------------------------------------------
+    // Constant data
+    // -----------------------------------------------------------------------
+    static const XMLCh fgSYMBOL_AND[];
+    static const XMLCh fgSYMBOL_OR[];
+    static const XMLCh fgSYMBOL_MOD[];
+    static const XMLCh fgSYMBOL_DIV[];
+    static const XMLCh fgSYMBOL_COMMENT[];
+    static const XMLCh fgSYMBOL_TEXT[];
+    static const XMLCh fgSYMBOL_PI[];
+    static const XMLCh fgSYMBOL_NODE[];
+    static const XMLCh fgSYMBOL_ANCESTOR[];
+    static const XMLCh fgSYMBOL_ANCESTOR_OR_SELF[];
+    static const XMLCh fgSYMBOL_ATTRIBUTE[];
+    static const XMLCh fgSYMBOL_CHILD[];
+    static const XMLCh fgSYMBOL_DESCENDANT[];
+    static const XMLCh fgSYMBOL_DESCENDANT_OR_SELF[];
+    static const XMLCh fgSYMBOL_FOLLOWING[];
+    static const XMLCh fgSYMBOL_FOLLOWING_SIBLING[];
+    static const XMLCh fgSYMBOL_NAMESPACE[];
+    static const XMLCh fgSYMBOL_PARENT[];
+    static const XMLCh fgSYMBOL_PRECEDING[];
+    static const XMLCh fgSYMBOL_PRECEDING_SIBLING[];
+    static const XMLCh fgSYMBOL_SELF[];
+
+private:
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    XPathSymbols();
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
+
+/**
+  * End of file XPathSymbols.hpp
+  */
+
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/schema/identity/IC_Field.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/schema/identity/IC_Field.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/schema/identity/IC_Field.hpp	(revision 2674)
@@ -0,0 +1,171 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: IC_Field.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(IC_FIELD_HPP)
+#define IC_FIELD_HPP
+
+
+// ---------------------------------------------------------------------------
+//  Includes
+// ---------------------------------------------------------------------------
+#include <xercesc/validators/schema/identity/XPathMatcher.hpp>
+
+#include <xercesc/internal/XSerializable.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+// ---------------------------------------------------------------------------
+//  Forward Declaration
+// ---------------------------------------------------------------------------
+class ValueStore;
+class FieldActivator;
+
+
+class VALIDATORS_EXPORT IC_Field : public XSerializable, public XMemory
+{
+public:
+    // -----------------------------------------------------------------------
+    //  Constructors/Destructor
+    // -----------------------------------------------------------------------
+    IC_Field(XercesXPath* const xpath,
+             IdentityConstraint* const identityConstraint);
+	~IC_Field();
+
+    // -----------------------------------------------------------------------
+    //  operators
+    // -----------------------------------------------------------------------
+    bool operator== (const IC_Field& other) const;
+    bool operator!= (const IC_Field& other) const;
+
+    // -----------------------------------------------------------------------
+    //  Getter methods
+    // -----------------------------------------------------------------------
+    XercesXPath* getXPath() const { return fXPath; }
+    IdentityConstraint* getIdentityConstraint() const { return fIdentityConstraint; }
+
+    /**
+      * @deprecated
+      */
+    bool getMayMatch() const { return false; }
+
+    // -----------------------------------------------------------------------
+    //  Setter methods
+    // -----------------------------------------------------------------------
+    /**
+      * @deprecated
+      */
+    void setMayMatch(const bool) {}
+
+    // -----------------------------------------------------------------------
+    //  Factory methods
+    // -----------------------------------------------------------------------
+    XPathMatcher* createMatcher
+    (
+        FieldActivator* const fieldActivator
+        , ValueStore* const valueStore
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    /**
+      * @deprecated
+      */
+    XPathMatcher* createMatcher(ValueStore* const valueStore,
+                                MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+
+    /***
+     * Support for Serialization/De-serialization
+     ***/
+    DECL_XSERIALIZABLE(IC_Field)
+
+    IC_Field(MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+
+private:
+    // -----------------------------------------------------------------------
+    //  Unimplemented contstructors and operators
+    // -----------------------------------------------------------------------
+    IC_Field(const IC_Field& other);
+    IC_Field& operator= (const IC_Field& other);
+
+    // -----------------------------------------------------------------------
+    //  Data members
+    // -----------------------------------------------------------------------
+    XercesXPath*        fXPath;
+    IdentityConstraint* fIdentityConstraint;
+};
+
+
+class VALIDATORS_EXPORT FieldMatcher : public XPathMatcher
+{
+public:
+    // -----------------------------------------------------------------------
+    //  Constructors/Destructor
+    // -----------------------------------------------------------------------
+    ~FieldMatcher() {}
+
+    // -----------------------------------------------------------------------
+    //  Getter methods
+    // -----------------------------------------------------------------------
+    ValueStore* getValueStore() const { return fValueStore; }
+    IC_Field*   getField() const { return fField; }
+
+    // -----------------------------------------------------------------------
+    //  Virtual methods
+    // -----------------------------------------------------------------------
+    void matched(const XMLCh* const content, DatatypeValidator* const dv,
+                 const bool isNil);
+
+private:
+    // -----------------------------------------------------------------------
+    //  Constructors/Destructor
+    // -----------------------------------------------------------------------
+    FieldMatcher(XercesXPath* const anXPath,
+                 IC_Field* const aField,
+                 ValueStore* const valueStore,
+                 FieldActivator* const fieldActivator,
+                 MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+
+    // -----------------------------------------------------------------------
+    //  Unimplemented contstructors and operators
+    // -----------------------------------------------------------------------
+    FieldMatcher(const FieldMatcher& other);
+    FieldMatcher& operator= (const FieldMatcher& other);
+
+    // -----------------------------------------------------------------------
+    //  Friends
+    // -----------------------------------------------------------------------
+    friend class IC_Field;
+
+    // -----------------------------------------------------------------------
+    //  Data members
+    // -----------------------------------------------------------------------
+    ValueStore*     fValueStore;
+    IC_Field*       fField;
+    FieldActivator* fFieldActivator;
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
+
+/**
+  * End of file IC_Field.hpp
+  */
+
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/schema/identity/IdentityConstraint.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/schema/identity/IdentityConstraint.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/schema/identity/IdentityConstraint.hpp	(revision 2674)
@@ -0,0 +1,223 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: IdentityConstraint.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(IDENTITYCONSTRAINT_HPP)
+#define IDENTITYCONSTRAINT_HPP
+
+
+/**
+  * The class act as a base class for schema identity constraints.
+  */
+
+// ---------------------------------------------------------------------------
+//  Includes
+// ---------------------------------------------------------------------------
+#include <xercesc/util/RefVectorOf.hpp>
+#include <xercesc/validators/schema/identity/IC_Field.hpp>
+
+#include <xercesc/internal/XSerializable.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+// ---------------------------------------------------------------------------
+//  Forward Declarations
+// ---------------------------------------------------------------------------
+class IC_Selector;
+
+class VALIDATORS_EXPORT IdentityConstraint : public XSerializable, public XMemory
+{
+public:
+    // -----------------------------------------------------------------------
+    //  Constants
+    // -----------------------------------------------------------------------
+    enum ICType {
+        UNIQUE = 0,
+        KEY = 1,
+        KEYREF = 2,
+        UNKNOWN
+    };
+
+    // -----------------------------------------------------------------------
+    //  Constructors/Destructor
+    // -----------------------------------------------------------------------
+	virtual ~IdentityConstraint();
+
+    // -----------------------------------------------------------------------
+    //  operators
+    // -----------------------------------------------------------------------
+    bool operator== (const IdentityConstraint& other) const;
+    bool operator!= (const IdentityConstraint& other) const;
+
+	// -----------------------------------------------------------------------
+    //  Getter methods
+    // -----------------------------------------------------------------------
+    virtual short getType() const = 0;
+    int           getFieldCount() const;
+    XMLCh*        getIdentityConstraintName() const;
+    XMLCh*        getElementName() const;
+    IC_Selector*  getSelector() const;
+    int           getNamespaceURI() const;
+
+	// -----------------------------------------------------------------------
+    //  Setter methods
+    // -----------------------------------------------------------------------
+    void setSelector(IC_Selector* const selector);
+    void setNamespaceURI(int uri);
+
+	// -----------------------------------------------------------------------
+    //  Access methods
+    // -----------------------------------------------------------------------
+    void addField(IC_Field* const field);
+    const IC_Field* getFieldAt(const unsigned int index) const;
+    IC_Field* getFieldAt(const unsigned int index);
+
+    /***
+     * Support for Serialization/De-serialization
+     ***/
+    DECL_XSERIALIZABLE(IdentityConstraint)
+
+	static void                storeIC(XSerializeEngine&         serEng
+                                     , IdentityConstraint* const ic);
+
+	static IdentityConstraint* loadIC(XSerializeEngine& serEng);
+
+protected:
+    // -----------------------------------------------------------------------
+    //  Constructors/Destructor
+    // -----------------------------------------------------------------------
+    IdentityConstraint(const XMLCh* const identityConstraintName,
+                       const XMLCh* const elementName,
+					   MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+
+private:
+    // -----------------------------------------------------------------------
+    //  Unimplemented contstructors and operators
+    // -----------------------------------------------------------------------
+    IdentityConstraint(const IdentityConstraint& other);
+    IdentityConstraint& operator= (const IdentityConstraint& other);
+
+    // -----------------------------------------------------------------------
+    //  CleanUp methods
+    // -----------------------------------------------------------------------
+    void cleanUp();
+
+    // -----------------------------------------------------------------------
+    //  Data members
+    //
+    //  fIdentityConstraintName
+    //      The identity constraint name
+    //
+    //  fElemName
+    //      The element name
+    //
+    //  fSelector
+    //      The selector information
+    //
+    //  fFields
+    //      The field(s) information
+    // -----------------------------------------------------------------------
+    XMLCh*                 fIdentityConstraintName;
+    XMLCh*                 fElemName;
+    IC_Selector*           fSelector;
+    RefVectorOf<IC_Field>* fFields;
+    MemoryManager*         fMemoryManager;
+    int                    fNamespaceURI;
+};
+
+
+// ---------------------------------------------------------------------------
+//  IdentityConstraint: Getter methods
+// ---------------------------------------------------------------------------
+inline int IdentityConstraint::getFieldCount() const {
+
+    if (fFields) {
+        return fFields->size();
+    }
+
+    return 0;
+}
+
+inline XMLCh* IdentityConstraint::getIdentityConstraintName() const {
+
+    return fIdentityConstraintName;
+}
+
+inline XMLCh* IdentityConstraint::getElementName() const {
+
+    return fElemName;
+}
+
+inline IC_Selector* IdentityConstraint::getSelector() const {
+
+    return fSelector;
+}
+
+inline int IdentityConstraint::getNamespaceURI() const
+{
+    return fNamespaceURI;
+}
+
+// ---------------------------------------------------------------------------
+//  IdentityConstraint: Setter methods
+// ---------------------------------------------------------------------------
+inline void IdentityConstraint::setNamespaceURI(int uri)
+{
+    fNamespaceURI = uri;
+}
+
+// ---------------------------------------------------------------------------
+//  IdentityConstraint: Access methods
+// ---------------------------------------------------------------------------
+inline void IdentityConstraint::addField(IC_Field* const field) {
+
+    if (!fFields) {
+        fFields = new (fMemoryManager) RefVectorOf<IC_Field>(4, true, fMemoryManager);
+    }
+
+    fFields->addElement(field);
+}
+
+inline const IC_Field* IdentityConstraint::getFieldAt(const unsigned int index) const {
+
+    if (fFields) {
+        return (fFields->elementAt(index));
+    }
+
+    return 0;
+}
+
+inline IC_Field* IdentityConstraint::getFieldAt(const unsigned int index) {
+
+    if (fFields) {
+        return (fFields->elementAt(index));
+    }
+
+    return 0;
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
+
+/**
+  * End of file IdentityConstraint.hpp
+  */
+
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/schema/identity/XercesXPath.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/schema/identity/XercesXPath.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/schema/identity/XercesXPath.hpp	(revision 2674)
@@ -0,0 +1,501 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: XercesXPath.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(XERCESXPATH_HPP)
+#define XERCESXPATH_HPP
+
+
+// ---------------------------------------------------------------------------
+//  Includes
+// ---------------------------------------------------------------------------
+#include <xercesc/util/QName.hpp>
+#include <xercesc/util/RefVectorOf.hpp>
+#include <xercesc/util/ValueVectorOf.hpp>
+
+#include <xercesc/internal/XSerializable.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+// ---------------------------------------------------------------------------
+//  Forward Declarations
+// ---------------------------------------------------------------------------
+class XMLStringPool;
+class NamespaceScope;
+
+
+class VALIDATORS_EXPORT XercesNodeTest : public XSerializable, public XMemory
+{
+public:
+    // -----------------------------------------------------------------------
+    //  Constants
+    // -----------------------------------------------------------------------
+    enum {
+        QNAME = 1,
+        WILDCARD = 2,
+        NODE = 3,
+        NAMESPACE= 4,
+        UNKNOWN
+    };
+
+    // -----------------------------------------------------------------------
+    //  Constructors/Destructor
+    // -----------------------------------------------------------------------
+    XercesNodeTest(const short type,
+                   MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+    XercesNodeTest(const QName* const qName);
+    XercesNodeTest(const XMLCh* const prefix, const unsigned int uriId,
+                   MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+    XercesNodeTest(const XercesNodeTest& other);
+    ~XercesNodeTest() { delete fName; }
+
+    // -----------------------------------------------------------------------
+    //  Operators
+    // -----------------------------------------------------------------------
+    XercesNodeTest& operator= (const XercesNodeTest& other);
+    bool operator== (const XercesNodeTest& other) const;
+    bool operator!= (const XercesNodeTest& other) const;
+
+	// -----------------------------------------------------------------------
+    //  Getter methods
+    // -----------------------------------------------------------------------
+    short getType() const { return fType; }
+    QName* getName() const { return fName; }
+
+    /***
+     * Support for Serialization/De-serialization
+     ***/
+    DECL_XSERIALIZABLE(XercesNodeTest)
+
+    XercesNodeTest(MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+
+private:
+    // -----------------------------------------------------------------------
+    //  Data members
+    // -----------------------------------------------------------------------
+    short  fType;
+    QName* fName;
+};
+
+
+/**
+  * A location path step comprised of an axis and node test.
+  */
+class VALIDATORS_EXPORT XercesStep : public XSerializable, public XMemory
+{
+public:
+    // -----------------------------------------------------------------------
+    //  Constants
+    // -----------------------------------------------------------------------
+    enum { // Axis type
+        CHILD = 1,
+        ATTRIBUTE = 2,
+        SELF = 3,
+        DESCENDANT = 4,
+        UNKNOWN
+    };
+
+    // -----------------------------------------------------------------------
+    //  Constructors/Destructor
+    // -----------------------------------------------------------------------
+    XercesStep(const unsigned short axisType, XercesNodeTest* const nodeTest);
+    XercesStep(const XercesStep& other);
+    ~XercesStep() { delete fNodeTest; }
+
+    // -----------------------------------------------------------------------
+    //  Operators
+    // -----------------------------------------------------------------------
+    XercesStep& operator= (const XercesStep& other);
+    bool operator== (const XercesStep& other) const;
+    bool operator!= (const XercesStep& other) const;
+
+	// -----------------------------------------------------------------------
+    //  Getter methods
+    // -----------------------------------------------------------------------
+    unsigned short getAxisType() const { return fAxisType; }
+    XercesNodeTest* getNodeTest() const { return fNodeTest; }
+
+    /***
+     * Support for Serialization/De-serialization
+     ***/
+    DECL_XSERIALIZABLE(XercesStep)
+
+    XercesStep(MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+
+private:
+    // -----------------------------------------------------------------------
+    //  Data members
+    // -----------------------------------------------------------------------
+    unsigned short  fAxisType;
+    XercesNodeTest* fNodeTest;
+};
+
+
+/**
+  * A location path representation for an XPath expression.
+  */
+class VALIDATORS_EXPORT XercesLocationPath : public XSerializable, public XMemory
+{
+public:
+    // -----------------------------------------------------------------------
+    //  Constructors/Destructor
+    // -----------------------------------------------------------------------
+    XercesLocationPath(RefVectorOf<XercesStep>* const steps);
+    ~XercesLocationPath() { delete fSteps; }
+
+    // -----------------------------------------------------------------------
+    //  Operators
+    // -----------------------------------------------------------------------
+    bool operator== (const XercesLocationPath& other) const;
+    bool operator!= (const XercesLocationPath& other) const;
+
+    // -----------------------------------------------------------------------
+    //  Access methods
+    // -----------------------------------------------------------------------
+    unsigned int getStepSize() const;
+    void addStep(XercesStep* const aStep);
+    XercesStep* getStep(const unsigned int index) const;
+
+    /***
+     * Support for Serialization/De-serialization
+     ***/
+    DECL_XSERIALIZABLE(XercesLocationPath)
+
+    XercesLocationPath(MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+
+private:
+    // -----------------------------------------------------------------------
+    //  Unimplemented contstructors and operators
+    // -----------------------------------------------------------------------
+    XercesLocationPath(const XercesLocationPath& other);
+    XercesLocationPath& operator= (const XercesLocationPath& other);
+
+    // -----------------------------------------------------------------------
+    //  Data members
+    // -----------------------------------------------------------------------
+    RefVectorOf<XercesStep>* fSteps;
+};
+
+
+class VALIDATORS_EXPORT XercesXPath : public XSerializable, public XMemory
+{
+public:
+    // -----------------------------------------------------------------------
+    //  Constants
+    // -----------------------------------------------------------------------
+    /**
+      * [28] ExprToken ::= '(' | ')' | '[' | ']' | '.' | '..' | '@' | ',' | '::'
+      *                  | NameTest | NodeType | Operator | FunctionName
+      *                  | AxisName | Literal | Number | VariableReference
+      */
+    enum {
+        EXPRTOKEN_OPEN_PAREN                  =  0,
+        EXPRTOKEN_CLOSE_PAREN                 =  1,
+        EXPRTOKEN_OPEN_BRACKET                =  2,
+        EXPRTOKEN_CLOSE_BRACKET               =  3,
+        EXPRTOKEN_PERIOD                      =  4,
+        EXPRTOKEN_DOUBLE_PERIOD               =  5,
+        EXPRTOKEN_ATSIGN                      =  6,
+        EXPRTOKEN_COMMA                       =  7,
+        EXPRTOKEN_DOUBLE_COLON                =  8,
+        EXPRTOKEN_NAMETEST_ANY                =  9,
+        EXPRTOKEN_NAMETEST_NAMESPACE          = 10,
+        EXPRTOKEN_NAMETEST_QNAME              = 11,
+        EXPRTOKEN_NODETYPE_COMMENT            = 12,
+        EXPRTOKEN_NODETYPE_TEXT               = 13,
+        EXPRTOKEN_NODETYPE_PI                 = 14,
+        EXPRTOKEN_NODETYPE_NODE               = 15,
+        EXPRTOKEN_OPERATOR_AND                = 16,
+        EXPRTOKEN_OPERATOR_OR                 = 17,
+        EXPRTOKEN_OPERATOR_MOD                = 18,
+        EXPRTOKEN_OPERATOR_DIV                = 19,
+        EXPRTOKEN_OPERATOR_MULT               = 20,
+        EXPRTOKEN_OPERATOR_SLASH              = 21,
+        EXPRTOKEN_OPERATOR_DOUBLE_SLASH       = 22,
+        EXPRTOKEN_OPERATOR_UNION              = 23,
+        EXPRTOKEN_OPERATOR_PLUS               = 24,
+        EXPRTOKEN_OPERATOR_MINUS              = 25,
+        EXPRTOKEN_OPERATOR_EQUAL              = 26,
+        EXPRTOKEN_OPERATOR_NOT_EQUAL          = 27,
+        EXPRTOKEN_OPERATOR_LESS               = 28,
+        EXPRTOKEN_OPERATOR_LESS_EQUAL         = 29,
+        EXPRTOKEN_OPERATOR_GREATER            = 30,
+        EXPRTOKEN_OPERATOR_GREATER_EQUAL      = 31,
+        EXPRTOKEN_FUNCTION_NAME               = 32,
+        EXPRTOKEN_AXISNAME_ANCESTOR           = 33,
+        EXPRTOKEN_AXISNAME_ANCESTOR_OR_SELF   = 34,
+        EXPRTOKEN_AXISNAME_ATTRIBUTE          = 35,
+        EXPRTOKEN_AXISNAME_CHILD              = 36,
+        EXPRTOKEN_AXISNAME_DESCENDANT         = 37,
+        EXPRTOKEN_AXISNAME_DESCENDANT_OR_SELF = 38,
+        EXPRTOKEN_AXISNAME_FOLLOWING          = 39,
+        EXPRTOKEN_AXISNAME_FOLLOWING_SIBLING  = 40,
+        EXPRTOKEN_AXISNAME_NAMESPACE          = 41,
+        EXPRTOKEN_AXISNAME_PARENT             = 42,
+        EXPRTOKEN_AXISNAME_PRECEDING          = 43,
+        EXPRTOKEN_AXISNAME_PRECEDING_SIBLING  = 44,
+        EXPRTOKEN_AXISNAME_SELF               = 45,
+        EXPRTOKEN_LITERAL                     = 46,
+        EXPRTOKEN_NUMBER                      = 47,
+        EXPRTOKEN_VARIABLE_REFERENCE          = 48
+    };
+
+    // -----------------------------------------------------------------------
+    //  Constructors/Destructor
+    // -----------------------------------------------------------------------
+    XercesXPath(const XMLCh* const xpathExpr,
+                XMLStringPool* const stringPool,
+                NamespaceScope* const scopeContext,
+                const unsigned int emptyNamespaceId,
+                const bool isSelector = false,
+                MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+	~XercesXPath();
+
+    // -----------------------------------------------------------------------
+    //  Operators
+    // -----------------------------------------------------------------------
+    bool operator== (const XercesXPath& other) const;
+    bool operator!= (const XercesXPath& other) const;
+
+    // -----------------------------------------------------------------------
+    //  Constructors/Destructor
+    // -----------------------------------------------------------------------
+    RefVectorOf<XercesLocationPath>* getLocationPaths() const;
+
+    /***
+     * Support for Serialization/De-serialization
+     ***/
+    DECL_XSERIALIZABLE(XercesXPath)
+
+    XercesXPath(MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+
+    XMLCh* getExpression();
+
+private:
+    // -----------------------------------------------------------------------
+    //  Unimplemented contstructors and operators
+    // -----------------------------------------------------------------------
+    XercesXPath(const XercesXPath& other);
+    XercesXPath& operator= (const XercesXPath& other);
+
+    // -----------------------------------------------------------------------
+    //  Helper methods
+    // -----------------------------------------------------------------------
+    void cleanUp();
+    void checkForSelectedAttributes();
+    void parseExpression(XMLStringPool* const stringPool,
+                         NamespaceScope* const scopeContext);
+
+    // -----------------------------------------------------------------------
+    //  Data members
+    // -----------------------------------------------------------------------
+    unsigned int                     fEmptyNamespaceId;
+    XMLCh*                           fExpression;
+    RefVectorOf<XercesLocationPath>* fLocationPaths;
+    MemoryManager*                   fMemoryManager;
+};
+
+
+class VALIDATORS_EXPORT XPathScanner : public XMemory
+{
+public:
+    // -----------------------------------------------------------------------
+    //  Constants
+    // -----------------------------------------------------------------------
+    enum {
+        CHARTYPE_INVALID            =  0,   // invalid XML character
+        CHARTYPE_OTHER              =  1,   // not special - one of "#%&;?\^`{}~" or DEL
+        CHARTYPE_WHITESPACE         =  2,   // one of "\t\n\r " (0x09, 0x0A, 0x0D, 0x20)
+        CHARTYPE_EXCLAMATION        =  3,   // '!' (0x21)
+        CHARTYPE_QUOTE              =  4,   // '\"' or '\'' (0x22 and 0x27)
+        CHARTYPE_DOLLAR             =  5,   // '$' (0x24)
+        CHARTYPE_OPEN_PAREN         =  6,   // '(' (0x28)
+        CHARTYPE_CLOSE_PAREN        =  7,   // ')' (0x29)
+        CHARTYPE_STAR               =  8,   // '*' (0x2A)
+        CHARTYPE_PLUS               =  9,   // '+' (0x2B)
+        CHARTYPE_COMMA              = 10,   // ',' (0x2C)
+        CHARTYPE_MINUS              = 11,   // '-' (0x2D)
+        CHARTYPE_PERIOD             = 12,   // '.' (0x2E)
+        CHARTYPE_SLASH              = 13,   // '/' (0x2F)
+        CHARTYPE_DIGIT              = 14,   // '0'-'9' (0x30 to 0x39)
+        CHARTYPE_COLON              = 15,   // ':' (0x3A)
+        CHARTYPE_LESS               = 16,   // '<' (0x3C)
+        CHARTYPE_EQUAL              = 17,   // '=' (0x3D)
+        CHARTYPE_GREATER            = 18,   // '>' (0x3E)
+        CHARTYPE_ATSIGN             = 19,   // '@' (0x40)
+        CHARTYPE_LETTER             = 20,   // 'A'-'Z' or 'a'-'z' (0x41 to 0x5A and 0x61 to 0x7A)
+        CHARTYPE_OPEN_BRACKET       = 21,   // '[' (0x5B)
+        CHARTYPE_CLOSE_BRACKET      = 22,   // ']' (0x5D)
+        CHARTYPE_UNDERSCORE         = 23,   // '_' (0x5F)
+        CHARTYPE_UNION              = 24,   // '|' (0x7C)
+        CHARTYPE_NONASCII           = 25   // Non-ASCII Unicode codepoint (>= 0x80)
+    };
+
+    // -----------------------------------------------------------------------
+    //  Constructors/Destructor
+    // -----------------------------------------------------------------------
+    XPathScanner(XMLStringPool* const stringPool);
+    virtual ~XPathScanner() {}
+
+    // -----------------------------------------------------------------------
+    //  Scan methods
+    // -----------------------------------------------------------------------
+    bool scanExpression(const XMLCh* const data, int currentOffset,
+                        const int endOffset, ValueVectorOf<int>* const tokens);
+
+protected:
+    // -----------------------------------------------------------------------
+    //  Helper methods
+    // -----------------------------------------------------------------------
+    /**
+      * This method adds the specified token to the token list. By default,
+      * this method allows all tokens. However, subclasses can can override
+      * this method in order to disallow certain tokens from being used in the
+      * scanned XPath expression. This is a convenient way of allowing only
+      * a subset of XPath.
+      */
+    virtual void addToken(ValueVectorOf<int>* const tokens, const int aToken);
+
+private:
+    // -----------------------------------------------------------------------
+    //  Unimplemented contstructors and operators
+    // -----------------------------------------------------------------------
+    XPathScanner(const XPathScanner& other);
+    XPathScanner& operator= (const XPathScanner& other);
+
+    // -----------------------------------------------------------------------
+    //  Helper methods
+    // -----------------------------------------------------------------------
+    void init();
+
+    // -----------------------------------------------------------------------
+    //  Scan methods
+    // -----------------------------------------------------------------------
+    int scanNCName(const XMLCh* const data, const int endOffset,
+                   int currentOffset);
+    int scanNumber(const XMLCh* const data, const int endOffset,
+                   int currentOffset, ValueVectorOf<int>* const tokens);
+
+    // -----------------------------------------------------------------------
+    //  Data members
+    // -----------------------------------------------------------------------
+    int fAndSymbol;
+    int fOrSymbol;
+    int fModSymbol;
+    int fDivSymbol;
+    int fCommentSymbol;
+    int fTextSymbol;
+    int fPISymbol;
+    int fNodeSymbol;
+    int fAncestorSymbol;
+    int fAncestorOrSelfSymbol;
+    int fAttributeSymbol;
+    int fChildSymbol;
+    int fDescendantSymbol;
+    int fDescendantOrSelfSymbol;
+    int fFollowingSymbol;
+    int fFollowingSiblingSymbol;
+    int fNamespaceSymbol;
+    int fParentSymbol;
+    int fPrecedingSymbol;
+    int fPrecedingSiblingSymbol;
+    int fSelfSymbol;
+    XMLStringPool* fStringPool;
+
+    static const XMLByte fASCIICharMap[128];
+};
+
+
+class VALIDATORS_EXPORT XPathScannerForSchema: public XPathScanner
+{
+public:
+    // -----------------------------------------------------------------------
+    //  Constructors/Destructor
+    // -----------------------------------------------------------------------
+    XPathScannerForSchema(XMLStringPool* const stringPool);
+    ~XPathScannerForSchema() {}
+
+protected:
+    // -----------------------------------------------------------------------
+    //  Helper methods
+    // -----------------------------------------------------------------------
+    void addToken(ValueVectorOf<int>* const tokens, const int aToken);
+
+private:
+    // -----------------------------------------------------------------------
+    //  Unimplemented contstructors and operators
+    // -----------------------------------------------------------------------
+    XPathScannerForSchema(const XPathScannerForSchema& other);
+    XPathScannerForSchema& operator= (const XPathScannerForSchema& other);
+};
+
+// ---------------------------------------------------------------------------
+//  XercesLocationPath: Access methods
+// ---------------------------------------------------------------------------
+inline unsigned int XercesLocationPath::getStepSize() const {
+
+    if (fSteps)
+        return fSteps->size();
+
+    return 0;
+}
+
+inline void XercesLocationPath::addStep(XercesStep* const aStep) {
+
+    fSteps->addElement(aStep);
+}
+
+inline XercesStep* XercesLocationPath::getStep(const unsigned int index) const {
+
+    if (fSteps)
+        return fSteps->elementAt(index);
+
+    return 0;
+}
+
+// ---------------------------------------------------------------------------
+//  XercesScanner: Helper methods
+// ---------------------------------------------------------------------------
+inline void XPathScanner::addToken(ValueVectorOf<int>* const tokens,
+                                   const int aToken) {
+    tokens->addElement(aToken);
+}
+
+
+// ---------------------------------------------------------------------------
+//  XercesXPath: Getter methods
+// ---------------------------------------------------------------------------
+inline RefVectorOf<XercesLocationPath>* XercesXPath::getLocationPaths() const {
+
+    return fLocationPaths;
+}
+
+inline XMLCh* XercesXPath::getExpression() {
+    return fExpression;
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
+
+/**
+  * End of file XercesPath.hpp
+  */
+
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/schema/identity/FieldActivator.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/schema/identity/FieldActivator.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/schema/identity/FieldActivator.hpp	(revision 2674)
@@ -0,0 +1,142 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: FieldActivator.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(FIELDACTIVATOR_HPP)
+#define FIELDACTIVATOR_HPP
+
+/**
+  * This class is responsible for activating fields within a specific scope;
+  * the caller merely requests the fields to be activated.
+  */
+
+// ---------------------------------------------------------------------------
+//  Includes
+// ---------------------------------------------------------------------------
+#include <xercesc/util/ValueHashTableOf.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+// ---------------------------------------------------------------------------
+//  Forward Declaration
+// ---------------------------------------------------------------------------
+class IdentityConstraint;
+class XPathMatcher;
+class ValueStoreCache;
+class IC_Field;
+class XPathMatcherStack;
+
+
+class VALIDATORS_EXPORT FieldActivator : public XMemory
+{
+public:
+    // -----------------------------------------------------------------------
+    //  Constructors/Destructor
+    // -----------------------------------------------------------------------
+    FieldActivator(ValueStoreCache* const valueStoreCache,
+                   XPathMatcherStack* const matcherStack,
+                   MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+	FieldActivator(const FieldActivator& other);
+	~FieldActivator();
+
+    // -----------------------------------------------------------------------
+    //  Operator methods
+    // -----------------------------------------------------------------------
+    FieldActivator& operator =(const FieldActivator& other);
+
+    // -----------------------------------------------------------------------
+    //  Getter methods
+    // -----------------------------------------------------------------------
+    bool getMayMatch(IC_Field* const field);
+
+    // -----------------------------------------------------------------------
+    //  Setter methods
+    // -----------------------------------------------------------------------
+    void setValueStoreCache(ValueStoreCache* const other);
+    void setMatcherStack(XPathMatcherStack* const matcherStack);
+    void setMayMatch(IC_Field* const field, bool value);
+
+	// -----------------------------------------------------------------------
+    //  Activation methods
+    // -----------------------------------------------------------------------
+    /**
+      * Start the value scope for the specified identity constraint. This
+      * method is called when the selector matches in order to initialize
+      * the value store.
+      */
+    void startValueScopeFor(const IdentityConstraint* const ic, const int initialDepth);
+
+    /**
+      * Request to activate the specified field. This method returns the
+      * matcher for the field.
+      */
+    XPathMatcher* activateField(IC_Field* const field, const int initialDepth);
+
+    /**
+      * Ends the value scope for the specified identity constraint.
+      */
+    void endValueScopeFor(const IdentityConstraint* const ic, const int initialDepth);
+
+private:
+    // -----------------------------------------------------------------------
+    //  Data
+    // -----------------------------------------------------------------------
+    ValueStoreCache*        fValueStoreCache;
+    XPathMatcherStack*      fMatcherStack;
+    ValueHashTableOf<bool>* fMayMatch;
+    MemoryManager*          fMemoryManager;
+};
+
+
+// ---------------------------------------------------------------------------
+//  FieldActivator: Getter methods
+// ---------------------------------------------------------------------------
+inline bool FieldActivator::getMayMatch(IC_Field* const field) {
+
+    return fMayMatch->get(field);
+}
+
+// ---------------------------------------------------------------------------
+//  FieldActivator: Setter methods
+// ---------------------------------------------------------------------------
+inline void FieldActivator::setValueStoreCache(ValueStoreCache* const other) {
+
+    fValueStoreCache = other;
+}
+
+inline void
+FieldActivator::setMatcherStack(XPathMatcherStack* const matcherStack) {
+
+    fMatcherStack = matcherStack;
+}
+
+inline void FieldActivator::setMayMatch(IC_Field* const field, bool value) {
+
+    fMayMatch->put(field, value);
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
+
+/**
+  * End of file FieldActivator.hpp
+  */
+
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/schema/identity/IC_KeyRef.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/schema/identity/IC_KeyRef.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/schema/identity/IC_KeyRef.hpp	(revision 2674)
@@ -0,0 +1,92 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: IC_KeyRef.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(IC_KEYREF_HPP)
+#define IC_KEYREF_HPP
+
+
+// ---------------------------------------------------------------------------
+//  Includes
+// ---------------------------------------------------------------------------
+#include <xercesc/validators/schema/identity/IdentityConstraint.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class VALIDATORS_EXPORT IC_KeyRef: public IdentityConstraint
+{
+public:
+    // -----------------------------------------------------------------------
+    //  Constructors/Destructor
+    // -----------------------------------------------------------------------
+    IC_KeyRef(const XMLCh* const identityConstraintName,
+              const XMLCh* const elemName,
+              IdentityConstraint* const icKey,
+              MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+	~IC_KeyRef();
+
+	// -----------------------------------------------------------------------
+    //  Getter methods
+    // -----------------------------------------------------------------------
+    short getType() const;
+    IdentityConstraint* getKey() const;
+
+    /***
+     * Support for Serialization/De-serialization
+     ***/
+    DECL_XSERIALIZABLE(IC_KeyRef)
+
+    IC_KeyRef(MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+
+private:
+    // -----------------------------------------------------------------------
+    //  Unimplemented contstructors and operators
+    // -----------------------------------------------------------------------
+    IC_KeyRef(const IC_KeyRef& other);
+    IC_KeyRef& operator= (const IC_KeyRef& other);
+
+    // -----------------------------------------------------------------------
+    //  Data members
+    // -----------------------------------------------------------------------
+    IdentityConstraint* fKey;
+};
+
+
+// ---------------------------------------------------------------------------
+//  IC_KeyRef: Getter methods
+// ---------------------------------------------------------------------------
+inline short IC_KeyRef::getType() const {
+
+    return IdentityConstraint::KEYREF;
+}
+
+inline IdentityConstraint* IC_KeyRef::getKey() const {
+
+    return fKey;
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
+
+/**
+  * End of file IC_KeyRef.hpp
+  */
+
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/schema/identity/IC_Key.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/schema/identity/IC_Key.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/schema/identity/IC_Key.hpp	(revision 2674)
@@ -0,0 +1,80 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: IC_Key.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(IC_KEY_HPP)
+#define IC_KEY_HPP
+
+
+// ---------------------------------------------------------------------------
+//  Includes
+// ---------------------------------------------------------------------------
+#include <xercesc/validators/schema/identity/IdentityConstraint.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class VALIDATORS_EXPORT IC_Key: public IdentityConstraint
+{
+public:
+    // -----------------------------------------------------------------------
+    //  Constructors/Destructor
+    // -----------------------------------------------------------------------
+    IC_Key(const XMLCh* const identityConstraintName,
+           const XMLCh* const elemName,
+           MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+	~IC_Key();
+
+	// -----------------------------------------------------------------------
+    //  Getter methods
+    // -----------------------------------------------------------------------
+    short getType() const;
+
+    /***
+     * Support for Serialization/De-serialization
+     ***/
+    DECL_XSERIALIZABLE(IC_Key)
+
+    IC_Key(MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+
+private:
+    // -----------------------------------------------------------------------
+    //  Unimplemented contstructors and operators
+    // -----------------------------------------------------------------------
+    IC_Key(const IC_Key& other);
+    IC_Key& operator= (const IC_Key& other);
+};
+
+
+// ---------------------------------------------------------------------------
+//  IC_Key: Getter methods
+// ---------------------------------------------------------------------------
+inline short IC_Key::getType() const {
+
+    return IdentityConstraint::KEY;
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
+
+/**
+  * End of file IC_Key.hpp
+  */
+
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/schema/identity/XPathException.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/schema/identity/XPathException.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/schema/identity/XPathException.hpp	(revision 2674)
@@ -0,0 +1,35 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: XPathException.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+#if !defined(XPATHEXCEPTION_HPP)
+#define XPATHEXCEPTION_HPP
+
+#include <xercesc/util/XercesDefs.hpp>
+#include <xercesc/util/XMLException.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+MakeXMLException(XPathException, VALIDATORS_EXPORT)
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/schema/identity/ValueStoreCache.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/schema/identity/ValueStoreCache.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/schema/identity/ValueStoreCache.hpp	(revision 2674)
@@ -0,0 +1,173 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: ValueStoreCache.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(VALUESTORECACHE_HPP)
+#define VALUESTORECACHE_HPP
+
+/**
+  * This class is used to store the values for identity constraints.
+  *
+  * Sketch of algorithm:
+  *  - When a constraint is first encountered, its values are stored in the
+  *    (local) fIC2ValueStoreMap;
+  *  - Once it is validated (i.e., wen it goes out of scope), its values are
+  *    merged into the fGlobalICMap;
+  *  - As we encounter keyref's, we look at the global table to validate them.
+  *  - Validation always occurs against the fGlobalIDConstraintMap (which
+  *    comprises all the "eligible" id constraints). When an endelement is
+  *    found, this Hashtable is merged with the one below in the stack. When a
+  *    start tag is encountered, we create a new fGlobalICMap.
+  *    i.e., the top of the fGlobalIDMapStack always contains the preceding
+  *    siblings' eligible id constraints; the fGlobalICMap contains
+  *    descendants+self. Keyrefs can only match descendants+self.
+  */
+
+// ---------------------------------------------------------------------------
+//  Includes
+// ---------------------------------------------------------------------------
+#include <xercesc/util/RefVectorOf.hpp>
+#include <xercesc/util/RefHashTableOf.hpp>
+#include <xercesc/util/RefHash2KeysTableOf.hpp>
+#include <xercesc/util/RefStackOf.hpp>
+#include <xercesc/validators/schema/identity/IdentityConstraint.hpp>
+#include <xercesc/validators/schema/identity/IC_Field.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+// ---------------------------------------------------------------------------
+//  Forward Declcaration
+// ---------------------------------------------------------------------------
+class ValueStore;
+class SchemaElementDecl;
+class XMLScanner;
+
+
+class VALIDATORS_EXPORT ValueStoreCache : public XMemory
+{
+public:
+    // -----------------------------------------------------------------------
+    //  Constructors/Destructor
+    // -----------------------------------------------------------------------
+    ValueStoreCache(MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+	~ValueStoreCache();
+
+	// -----------------------------------------------------------------------
+    //  Setter Methods
+    // -----------------------------------------------------------------------
+    void setScanner(XMLScanner* const scanner);
+
+	// -----------------------------------------------------------------------
+    //  Document Handling methods
+    // -----------------------------------------------------------------------
+    void startDocument();
+    void startElement();
+    void endElement();
+    void endDocument();
+
+	// -----------------------------------------------------------------------
+    //  Initialization methods
+    // -----------------------------------------------------------------------
+    void initValueStoresFor(SchemaElementDecl* const elemDecl, const int initialDepth);
+
+
+	// -----------------------------------------------------------------------
+    //  Access methods
+    // -----------------------------------------------------------------------
+    ValueStore* getValueStoreFor(const IC_Field* const field, const int initialDepth);
+    ValueStore* getValueStoreFor(const IdentityConstraint* const ic, const int intialDepth);
+    ValueStore* getGlobalValueStoreFor(const IdentityConstraint* const ic);
+
+	// -----------------------------------------------------------------------
+    //  Helper methods
+    // -----------------------------------------------------------------------
+    /** This method takes the contents of the (local) ValueStore associated
+      * with ic and moves them into the global hashtable, if ic is a <unique>
+      * or a <key>. If it's a <keyRef>, then we leave it for later.
+      */
+    void transplant(IdentityConstraint* const ic, const int initialDepth);
+
+private:
+    // -----------------------------------------------------------------------
+    //  Unimplemented contstructors and operators
+    // -----------------------------------------------------------------------
+    ValueStoreCache(const ValueStoreCache& other);
+    ValueStoreCache& operator= (const ValueStoreCache& other);
+
+    // -----------------------------------------------------------------------
+    //  Helper methods
+    // -----------------------------------------------------------------------
+    void init();
+    void cleanUp();
+
+    // -----------------------------------------------------------------------
+    //  Data
+    // -----------------------------------------------------------------------
+    RefVectorOf<ValueStore>*                 fValueStores;
+    RefHashTableOf<ValueStore>*              fGlobalICMap;
+    RefHash2KeysTableOf<ValueStore>*         fIC2ValueStoreMap;
+    RefStackOf<RefHashTableOf<ValueStore> >* fGlobalMapStack;
+    XMLScanner*                              fScanner;
+    MemoryManager*                           fMemoryManager;
+};
+
+// ---------------------------------------------------------------------------
+//  ValueStoreCache: Access methods
+// ---------------------------------------------------------------------------
+inline void ValueStoreCache::setScanner(XMLScanner* const scanner) {
+
+    fScanner = scanner;
+}
+
+// ---------------------------------------------------------------------------
+//  ValueStoreCache: Access methods
+// ---------------------------------------------------------------------------
+inline ValueStore*
+ValueStoreCache::getValueStoreFor(const IC_Field* const field, const int initialDepth) {
+
+    return fIC2ValueStoreMap->get(field->getIdentityConstraint(), initialDepth);
+}
+
+inline ValueStore*
+ValueStoreCache::getValueStoreFor(const IdentityConstraint* const ic, const int initialDepth) {
+
+    return fIC2ValueStoreMap->get(ic, initialDepth);
+}
+
+inline ValueStore*
+ValueStoreCache::getGlobalValueStoreFor(const IdentityConstraint* const ic) {
+
+    return fGlobalICMap->get(ic);
+}
+
+// ---------------------------------------------------------------------------
+//  ValueStoreCache: Document handling methods
+// ---------------------------------------------------------------------------
+inline void ValueStoreCache::endDocument() {
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
+
+/**
+  * End of file ValueStoreCache.hpp
+  */
+
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/schema/identity/FieldValueMap.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/schema/identity/FieldValueMap.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/schema/identity/FieldValueMap.hpp	(revision 2674)
@@ -0,0 +1,194 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: FieldValueMap.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(FIELDVALUEMAP_HPP)
+#define FIELDVALUEMAP_HPP
+
+/**
+  * This class maps values associated with fields of an identity constraint
+  * that have successfully matched some string in an instance document.
+  */
+
+// ---------------------------------------------------------------------------
+//  Includes
+// ---------------------------------------------------------------------------
+#include <xercesc/util/XMLString.hpp>
+#include <xercesc/util/ValueVectorOf.hpp>
+#include <xercesc/util/RefArrayVectorOf.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+// ---------------------------------------------------------------------------
+//  Forward Declaration
+// ---------------------------------------------------------------------------
+class IC_Field;
+class DatatypeValidator;
+
+
+class VALIDATORS_EXPORT FieldValueMap : public XMemory
+{
+public:
+    // -----------------------------------------------------------------------
+    //  Constructors/Destructor
+    // -----------------------------------------------------------------------
+    FieldValueMap(MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+    FieldValueMap(const FieldValueMap& other);
+	~FieldValueMap();
+
+	// -----------------------------------------------------------------------
+    //  Getter methods
+    // -----------------------------------------------------------------------
+    DatatypeValidator* getDatatypeValidatorAt(const unsigned int index) const;
+    DatatypeValidator* getDatatypeValidatorFor(const IC_Field* const key) const;
+    XMLCh* getValueAt(const unsigned int index) const;
+    XMLCh* getValueFor(const IC_Field* const key) const;
+    IC_Field* keyAt(const unsigned int index) const;
+
+	// -----------------------------------------------------------------------
+    //  Setter methods
+    // -----------------------------------------------------------------------
+    void put(IC_Field* const key, DatatypeValidator* const dv,
+             const XMLCh* const value);
+
+	// -----------------------------------------------------------------------
+    //  Helper methods
+    // -----------------------------------------------------------------------
+    unsigned int size() const;
+    int indexOf(const IC_Field* const key) const;
+
+private:
+    // -----------------------------------------------------------------------
+    //  Private helper methods
+    // -----------------------------------------------------------------------
+    void cleanUp();
+
+    // -----------------------------------------------------------------------
+    //  Unimplemented operators
+    // -----------------------------------------------------------------------
+    FieldValueMap& operator= (const FieldValueMap& other);
+
+    // -----------------------------------------------------------------------
+    //  Data
+    // -----------------------------------------------------------------------
+    ValueVectorOf<IC_Field*>*          fFields;
+    ValueVectorOf<DatatypeValidator*>* fValidators;
+    RefArrayVectorOf<XMLCh>*           fValues;
+    MemoryManager*                     fMemoryManager;
+};
+
+
+// ---------------------------------------------------------------------------
+//  FieldValueMap: Getter methods
+// ---------------------------------------------------------------------------
+inline DatatypeValidator*
+FieldValueMap::getDatatypeValidatorAt(const unsigned int index) const {
+
+    if (fValidators) {
+        return fValidators->elementAt(index);
+    }
+
+    return 0;
+}
+
+inline DatatypeValidator*
+FieldValueMap::getDatatypeValidatorFor(const IC_Field* const key) const {
+
+    if (fValidators) {
+        return fValidators->elementAt(indexOf(key));
+    }
+
+    return 0;
+}
+
+inline XMLCh* FieldValueMap::getValueAt(const unsigned int index) const {
+
+    if (fValues) {
+        return fValues->elementAt(index);
+    }
+
+    return 0;
+}
+
+inline XMLCh* FieldValueMap::getValueFor(const IC_Field* const key) const {
+
+    if (fValues) {
+        return fValues->elementAt(indexOf(key));
+    }
+
+    return 0;
+}
+
+inline IC_Field* FieldValueMap::keyAt(const unsigned int index) const {
+
+    if (fFields) {
+        return fFields->elementAt(index);
+    }
+
+    return 0;
+}
+
+// ---------------------------------------------------------------------------
+//  FieldValueMap: Helper methods
+// ---------------------------------------------------------------------------
+inline unsigned int FieldValueMap::size() const {
+
+    if (fFields) {
+        return fFields->size();
+    }
+
+    return 0;
+}
+
+// ---------------------------------------------------------------------------
+//  FieldValueMap: Setter methods
+// ---------------------------------------------------------------------------
+inline void FieldValueMap::put(IC_Field* const key,
+                               DatatypeValidator* const dv,
+                               const XMLCh* const value) {
+
+    if (!fFields) {
+        fFields = new (fMemoryManager) ValueVectorOf<IC_Field*>(4, fMemoryManager);
+        fValidators = new (fMemoryManager) ValueVectorOf<DatatypeValidator*>(4, fMemoryManager);
+        fValues = new (fMemoryManager) RefArrayVectorOf<XMLCh>(4, true, fMemoryManager);
+    }
+
+    int keyIndex = indexOf(key);
+
+    if (keyIndex == -1) {
+
+        fFields->addElement(key);
+        fValidators->addElement(dv);
+        fValues->addElement(XMLString::replicate(value, fMemoryManager));
+    }
+    else {
+        fValidators->setElementAt(dv, keyIndex);
+        fValues->setElementAt(XMLString::replicate(value, fMemoryManager), keyIndex);
+    }
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
+
+/**
+  * End of file FieldValueMap.hpp
+  */
+
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/schema/identity/XPathMatcherStack.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/schema/identity/XPathMatcherStack.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/schema/identity/XPathMatcherStack.hpp	(revision 2674)
@@ -0,0 +1,139 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: XPathMatcherStack.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(XPATHMATCHERSTACK_HPP)
+#define XPATHMATCHERSTACK_HPP
+
+
+// ---------------------------------------------------------------------------
+//  Includes
+// ---------------------------------------------------------------------------
+#include <xercesc/validators/schema/identity/XPathMatcher.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class VALIDATORS_EXPORT XPathMatcherStack : public XMemory
+{
+public:
+    // -----------------------------------------------------------------------
+    //  Constructors/Destructor
+    // -----------------------------------------------------------------------
+    XPathMatcherStack(MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+	~XPathMatcherStack();
+
+	// -----------------------------------------------------------------------
+    //  Getter methods
+    // -----------------------------------------------------------------------
+    XPathMatcher* getMatcherAt(const unsigned int index) const;
+    unsigned int  getMatcherCount() const;
+    unsigned int  size() const;
+
+	// -----------------------------------------------------------------------
+    //  Access methods
+    // -----------------------------------------------------------------------
+    void addMatcher(XPathMatcher* const matcher);
+
+	// -----------------------------------------------------------------------
+    //  Stack methods
+    // -----------------------------------------------------------------------
+    void pushContext();
+    void popContext();
+
+	// -----------------------------------------------------------------------
+    //  Reset methods
+    // -----------------------------------------------------------------------
+    void clear();
+
+private:
+    // -----------------------------------------------------------------------
+    //  Private helper methods
+    // -----------------------------------------------------------------------
+    void cleanUp();
+
+    // -----------------------------------------------------------------------
+    //  Unimplemented contstructors and operators
+    // -----------------------------------------------------------------------
+    XPathMatcherStack(const XPathMatcherStack& other);
+    XPathMatcherStack& operator= (const XPathMatcherStack& other);
+
+    // -----------------------------------------------------------------------
+    //  Data members
+    // -----------------------------------------------------------------------
+    unsigned int                fMatchersCount;
+    ValueStackOf<int>*          fContextStack;
+    RefVectorOf<XPathMatcher>*  fMatchers;
+};
+
+// ---------------------------------------------------------------------------
+//  XPathMatcherStack: Getter methods
+// ---------------------------------------------------------------------------
+inline unsigned int XPathMatcherStack::size() const {
+
+    return fContextStack->size();
+}
+
+inline unsigned int XPathMatcherStack::getMatcherCount() const {
+
+    return fMatchersCount;
+}
+
+inline XPathMatcher*
+XPathMatcherStack::getMatcherAt(const unsigned int index) const {
+
+    return fMatchers->elementAt(index);
+}
+
+// ---------------------------------------------------------------------------
+//  XPathMatcherStack: Stack methods
+// ---------------------------------------------------------------------------
+inline void XPathMatcherStack::pushContext() {
+
+    fContextStack->push(fMatchersCount);
+}
+
+inline void XPathMatcherStack::popContext() {
+
+    fMatchersCount = fContextStack->pop();
+}
+
+// ---------------------------------------------------------------------------
+//  XPathMatcherStack: Access methods
+// ---------------------------------------------------------------------------
+inline void XPathMatcherStack::addMatcher(XPathMatcher* const matcher) {
+
+    if (fMatchersCount == fMatchers->size()) {
+
+        fMatchers->addElement(matcher);
+        fMatchersCount++;
+    }
+    else {
+        fMatchers->setElementAt(matcher, fMatchersCount++);
+    }
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
+
+/**
+  * End of file XPathMatcherStack.hpp
+  */
+
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/schema/identity/IC_Unique.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/schema/identity/IC_Unique.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/schema/identity/IC_Unique.hpp	(revision 2674)
@@ -0,0 +1,84 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: IC_Unique.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(IC_UNIQUE_HPP)
+#define IC_UNIQUE_HPP
+
+
+/**
+  * Schema unique identity constraint
+  */
+
+// ---------------------------------------------------------------------------
+//  Includes
+// ---------------------------------------------------------------------------
+#include <xercesc/validators/schema/identity/IdentityConstraint.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class VALIDATORS_EXPORT IC_Unique: public IdentityConstraint
+{
+public:
+    // -----------------------------------------------------------------------
+    //  Constructors/Destructor
+    // -----------------------------------------------------------------------
+    IC_Unique(const XMLCh* const identityConstraintName,
+              const XMLCh* const elemName,
+              MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+	~IC_Unique();
+
+	// -----------------------------------------------------------------------
+    //  Getter methods
+    // -----------------------------------------------------------------------
+    short getType() const;
+
+    /***
+     * Support for Serialization/De-serialization
+     ***/
+    DECL_XSERIALIZABLE(IC_Unique)
+
+    IC_Unique(MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+
+private:
+    // -----------------------------------------------------------------------
+    //  Unimplemented contstructors and operators
+    // -----------------------------------------------------------------------
+    IC_Unique(const IC_Unique& other);
+    IC_Unique& operator= (const IC_Unique& other);
+};
+
+
+// ---------------------------------------------------------------------------
+//  IC_Unique: Getter methods
+// ---------------------------------------------------------------------------
+inline short IC_Unique::getType() const {
+
+    return IdentityConstraint::UNIQUE;
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
+
+/**
+  * End of file IC_Unique.hpp
+  */
+
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/schema/identity/XPathMatcher.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/schema/identity/XPathMatcher.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/schema/identity/XPathMatcher.hpp	(revision 2674)
@@ -0,0 +1,174 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: XPathMatcher.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(XPATHMATCHER_HPP)
+#define XPATHMATCHER_HPP
+
+
+// ---------------------------------------------------------------------------
+//  Includes
+// ---------------------------------------------------------------------------
+#include <xercesc/util/ValueStackOf.hpp>
+#include <xercesc/util/RefVectorOf.hpp>
+#include <xercesc/framework/XMLBuffer.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+// ---------------------------------------------------------------------------
+//  Forward Declaration
+// ---------------------------------------------------------------------------
+class XMLElementDecl;
+class XercesXPath;
+class IdentityConstraint;
+class DatatypeValidator;
+class XMLStringPool;
+class XercesLocationPath;
+class XMLAttr;
+
+class VALIDATORS_EXPORT XPathMatcher : public XMemory
+{
+public:
+    // -----------------------------------------------------------------------
+    //  Constructors/Destructor
+    // -----------------------------------------------------------------------
+    XPathMatcher(XercesXPath* const xpath,
+                 MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+    XPathMatcher(XercesXPath* const xpath,
+                 IdentityConstraint* const ic,
+                 MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+    virtual ~XPathMatcher();
+
+    // -----------------------------------------------------------------------
+    //  Getter methods
+    // -----------------------------------------------------------------------
+    IdentityConstraint* getIdentityConstraint() const { return fIdentityConstraint; }
+    MemoryManager* getMemoryManager() const { return fMemoryManager; }
+
+    // -----------------------------------------------------------------------
+    //  Match methods
+    // -----------------------------------------------------------------------
+    /**
+      * Returns true if XPath has been matched.
+      */
+    int isMatched();
+    virtual int getInitialDepth() const;
+
+    // -----------------------------------------------------------------------
+    //  XMLDocumentHandler methods
+    // -----------------------------------------------------------------------
+    virtual void startDocumentFragment();
+    virtual void startElement(const XMLElementDecl& elemDecl,
+                              const unsigned int urlId,
+                              const XMLCh* const elemPrefix,
+                              const RefVectorOf<XMLAttr>& attrList,
+                              const unsigned int attrCount);
+    virtual void endElement(const XMLElementDecl& elemDecl,
+                            const XMLCh* const elemContent);
+
+protected:
+
+    enum
+    {
+        XP_MATCHED = 1        // matched any way
+        , XP_MATCHED_A = 3    // matched on the attribute axis
+        , XP_MATCHED_D = 5    // matched on the descendant-or-self axixs
+        , XP_MATCHED_DP = 13  // matched some previous (ancestor) node on the
+                              // descendant-or-self-axis, but not this node
+    };
+
+    // -----------------------------------------------------------------------
+    //  Match methods
+    // -----------------------------------------------------------------------
+    /**
+      * This method is called when the XPath handler matches the XPath
+      * expression. Subclasses can override this method to provide default
+      * handling upon a match.
+      */
+    virtual void matched(const XMLCh* const content,
+                         DatatypeValidator* const dv, const bool isNil);
+
+private:
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    XPathMatcher(const XPathMatcher&);
+    XPathMatcher& operator=(const XPathMatcher&);
+
+    // -----------------------------------------------------------------------
+    //  Helper methods
+    // -----------------------------------------------------------------------
+    void init(XercesXPath* const xpath);
+    void cleanUp();
+
+    // -----------------------------------------------------------------------
+    //  Data members
+    //
+    //  fMatched
+    //      Indicates whether XPath has been matched or not
+    //
+    //  fNoMatchDepth
+    //      Indicates whether matching is successful for the given xpath
+    //      expression.
+    //
+    //  fCurrentStep
+    //      Stores current step.
+    //
+    //  fStepIndexes
+    //      Integer stack of step indexes.
+    //
+    //  fLocationPaths
+    //  fLocationPathSize
+    //      XPath location path, and its size.
+    //
+    //  fIdentityConstraint
+    //      The identity constraint we're the matcher for.  Only used for
+    //      selectors.
+    //
+    // -----------------------------------------------------------------------
+    unsigned int                     fLocationPathSize;
+    int*                             fMatched;
+    int*                             fNoMatchDepth;
+    int*                             fCurrentStep;
+    RefVectorOf<ValueStackOf<int> >* fStepIndexes;
+    RefVectorOf<XercesLocationPath>* fLocationPaths;
+    IdentityConstraint*              fIdentityConstraint;
+    MemoryManager*                   fMemoryManager;
+};
+
+// ---------------------------------------------------------------------------
+//  XPathMatcher: Helper methods
+// ---------------------------------------------------------------------------
+inline void XPathMatcher::cleanUp() {
+
+    fMemoryManager->deallocate(fMatched);//delete [] fMatched;
+    fMemoryManager->deallocate(fNoMatchDepth);//delete [] fNoMatchDepth;
+    fMemoryManager->deallocate(fCurrentStep);//delete [] fCurrentStep;
+    delete fStepIndexes;
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
+
+/**
+  * End of file XPathMatcher.hpp
+  */
+
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/schema/XUtil.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/schema/XUtil.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/schema/XUtil.hpp	(revision 2674)
@@ -0,0 +1,71 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: XUtil.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(XUTIL_HPP)
+#define XUTIL_HPP
+
+#include <xercesc/dom/DOMElement.hpp>
+#include <xercesc/dom/DOMDocument.hpp>
+#include <xercesc/dom/DOMNamedNodeMap.hpp>
+#include <xercesc/dom/DOMNode.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class DOMNode;
+class DOMElement;
+
+/**
+ * Some useful utility methods.
+ */
+class VALIDATORS_EXPORT XUtil
+{
+public:
+
+    // Finds and returns the first child element node.
+    static DOMElement* getFirstChildElement(const DOMNode* const parent);
+
+    // Finds and returns the first child node with the given qualifiedname.
+    static DOMElement* getFirstChildElementNS(const DOMNode* const parent
+                                              , const XMLCh** const elemNames
+                                              , const XMLCh* const uriStr
+                                              , unsigned int       length);
+
+    // Finds and returns the next sibling element node.
+    static DOMElement* getNextSiblingElement(const DOMNode* const node);
+
+    static DOMElement* getNextSiblingElementNS(const DOMNode* const node
+                                               , const XMLCh** const elemNames
+                                               , const XMLCh* const uriStr
+                                               , unsigned int        length);
+
+private:
+    // -----------------------------------------------------------------------
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+
+	// This class cannot be instantiated.
+     XUtil() {};
+	~XUtil() {};
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/schema/SchemaValidator.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/schema/SchemaValidator.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/schema/SchemaValidator.hpp	(revision 2674)
@@ -0,0 +1,420 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: SchemaValidator.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+
+#if !defined(SCHEMAVALIDATOR_HPP)
+#define SCHEMAVALIDATOR_HPP
+
+#include <xercesc/framework/XMLValidator.hpp>
+#include <xercesc/framework/XMLBuffer.hpp>
+#include <xercesc/util/ValueStackOf.hpp>
+#include <xercesc/validators/common/ContentSpecNode.hpp>
+#include <xercesc/validators/schema/SchemaGrammar.hpp>
+#include <xercesc/validators/schema/XSDErrorReporter.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class GrammarResolver;
+class DatatypeValidator;
+class SchemaElementDecl;
+
+//
+//  This is a derivative of the abstract validator interface. This class
+//  implements a validator that supports standard XML Schema semantics.
+//  This class handles scanning the of the schema, and provides
+//  the standard validation services against the Schema info it found.
+//
+class VALIDATORS_EXPORT SchemaValidator : public XMLValidator
+{
+public:
+    // -----------------------------------------------------------------------
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+    SchemaValidator
+    (
+          XMLErrorReporter* const errReporter = 0
+          , MemoryManager* const  manager = XMLPlatformUtils::fgMemoryManager
+    );
+    virtual ~SchemaValidator();
+
+    // -----------------------------------------------------------------------
+    //  Implementation of the XMLValidator interface
+    // -----------------------------------------------------------------------
+    virtual int checkContent
+    (
+        XMLElementDecl* const   elemDecl
+        , QName** const         children
+        , const unsigned int    childCount
+    );
+
+    virtual void faultInAttr
+    (
+                XMLAttr&    toFill
+        , const XMLAttDef&  attDef
+    )   const;
+
+    virtual void preContentValidation(bool reuseGrammar,
+                                      bool validateDefAttr = false);
+
+    virtual void postParseValidation();
+
+    virtual void reset();
+
+    virtual bool requiresNamespaces() const;
+
+    virtual void validateAttrValue
+    (
+        const   XMLAttDef*                  attDef
+        , const XMLCh* const                attrValue
+        , bool                              preValidation = false
+        , const XMLElementDecl*             elemDecl = 0
+    );
+
+    virtual void validateElement
+    (
+        const   XMLElementDecl*             elemDef
+    );
+
+    virtual Grammar* getGrammar() const;
+    virtual void setGrammar(Grammar* aGrammar);
+
+    // -----------------------------------------------------------------------
+    //  Virtual DTD handler interface.
+    // -----------------------------------------------------------------------
+    virtual bool handlesDTD() const;
+
+    // -----------------------------------------------------------------------
+    //  Virtual Schema handler interface. handlesSchema() always return false.
+    // -----------------------------------------------------------------------
+    virtual bool handlesSchema() const;
+
+    // -----------------------------------------------------------------------
+    //  Schema Validator methods
+    // -----------------------------------------------------------------------
+    void normalizeWhiteSpace(DatatypeValidator* dV, const XMLCh* const value, XMLBuffer& toFill);
+
+    // -----------------------------------------------------------------------
+    //  Setter methods
+    // -----------------------------------------------------------------------
+    void setGrammarResolver(GrammarResolver* grammarResolver);
+
+    void setXsiType(const XMLCh* const        prefix
+      , const XMLCh* const        localPart
+       , const unsigned int        uriId);
+
+    void setNillable(bool isNil);
+    void setErrorReporter(XMLErrorReporter* const errorReporter);
+    void setExitOnFirstFatal(const bool newValue);
+    void setDatatypeBuffer(const XMLCh* const value);
+    void clearDatatypeBuffer();
+
+    // -----------------------------------------------------------------------
+    //  Getter methods
+    // -----------------------------------------------------------------------
+    ComplexTypeInfo* getCurrentTypeInfo() const;
+    DatatypeValidator *getCurrentDatatypeValidator() const;
+    DatatypeValidator *getMostRecentAttrValidator() const;
+    bool getErrorOccurred() const;
+    bool getIsElemSpecified() const;
+    const XMLCh* getNormalizedValue() const;
+
+private:
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    SchemaValidator(const SchemaValidator&);
+    SchemaValidator& operator=(const SchemaValidator&);
+
+    // -----------------------------------------------------------------------
+    //  Element Consitency Checking methods
+    // -----------------------------------------------------------------------
+    void checkRefElementConsistency(SchemaGrammar* const currentGrammar,
+                                    const ComplexTypeInfo* const curTypeInfo,
+                                    const XercesGroupInfo* const curGroup = 0);
+
+    // -----------------------------------------------------------------------
+    //  Particle Derivation Checking methods
+    // -----------------------------------------------------------------------
+    void checkParticleDerivation(SchemaGrammar* const currentGrammar,
+                                 const ComplexTypeInfo* const typeInfo);
+    void checkParticleDerivationOk(SchemaGrammar* const currentGrammar,
+                                   ContentSpecNode* const curNode,
+                                   const int derivedScope,
+                                   ContentSpecNode* const baseNode,
+                                   const int baseScope,
+                                   const ComplexTypeInfo* const baseInfo = 0,
+                                   const bool toCheckOccurrence = true);
+    ContentSpecNode* checkForPointlessOccurrences(ContentSpecNode* const specNode,
+                                                  const ContentSpecNode::NodeTypes nodeType,
+                                                  ValueVectorOf<ContentSpecNode*>* const nodes);
+    void gatherChildren(const ContentSpecNode::NodeTypes parentNodeType,
+                        ContentSpecNode* const specNode,
+                        ValueVectorOf<ContentSpecNode*>* const nodes);
+    bool isOccurrenceRangeOK(const int min1, const int max1, const int min2, const int max2);
+    void checkNSCompat(const ContentSpecNode* const derivedSpecNode,
+                       const ContentSpecNode* const baseSpecNode,
+                       const bool toCheckOccurence);
+    bool wildcardEltAllowsNamespace(const ContentSpecNode* const baseSpecNode,
+                                    const unsigned int derivedURI);
+    void checkNameAndTypeOK(SchemaGrammar* const currentGrammar,
+                            const ContentSpecNode* const derivedSpecNode,
+                            const int derivedScope,
+                            const ContentSpecNode* const baseSpecNode,
+                            const int baseScope,
+                            const ComplexTypeInfo* const baseInfo = 0);
+    SchemaElementDecl* findElement(const int scope,
+                                   const unsigned int uriIndex,
+                                   const XMLCh* const name,
+                                   SchemaGrammar* const grammar,
+                                   const ComplexTypeInfo* const typeInfo = 0);
+    void checkICRestriction(const SchemaElementDecl* const derivedElemDecl,
+                            const SchemaElementDecl* const baseElemDecl,
+                            const XMLCh* const derivedElemName,
+                            const XMLCh* const baseElemName);
+    void checkTypesOK(const SchemaElementDecl* const derivedElemDecl,
+                      const SchemaElementDecl* const baseElemDecl,
+                      const XMLCh* const derivedElemName);
+    void checkRecurseAsIfGroup(SchemaGrammar* const currentGrammar,
+                               ContentSpecNode* const derivedSpecNode,
+                               const int derivedScope,
+                               const ContentSpecNode* const baseSpecNode,
+                               const int baseScope,
+                               ValueVectorOf<ContentSpecNode*>* const nodes,
+                               const ComplexTypeInfo* const baseInfo);
+    void checkRecurse(SchemaGrammar* const currentGrammar,
+                      const ContentSpecNode* const derivedSpecNode,
+                      const int derivedScope,
+                      ValueVectorOf<ContentSpecNode*>* const derivedNodes,
+                      const ContentSpecNode* const baseSpecNode,
+                      const int baseScope,
+                      ValueVectorOf<ContentSpecNode*>* const baseNodes,
+                      const ComplexTypeInfo* const baseInfo,
+                      const bool toLax = false);
+    void checkNSSubset(const ContentSpecNode* const derivedSpecNode,
+                       const ContentSpecNode* const baseSpecNode);
+    bool isWildCardEltSubset(const ContentSpecNode* const derivedSpecNode,
+                             const ContentSpecNode* const baseSpecNode);
+    void checkNSRecurseCheckCardinality(SchemaGrammar* const currentGrammar,
+                                        const ContentSpecNode* const derivedSpecNode,
+                                        ValueVectorOf<ContentSpecNode*>* const derivedNodes,
+                                        const int derivedScope,
+                                        ContentSpecNode* const baseSpecNode,
+                                        const bool toCheckOccurence);
+    void checkRecurseUnordered(SchemaGrammar* const currentGrammar,
+                               const ContentSpecNode* const derivedSpecNode,
+                               ValueVectorOf<ContentSpecNode*>* const derivedNodes,
+                               const int derivedScope,
+                               ContentSpecNode* const baseSpecNode,
+                               ValueVectorOf<ContentSpecNode*>* const baseNodes,
+                               const int baseScope,
+                               const ComplexTypeInfo* const baseInfo);
+    void checkMapAndSum(SchemaGrammar* const currentGrammar,
+                        const ContentSpecNode* const derivedSpecNode,
+                        ValueVectorOf<ContentSpecNode*>* const derivedNodes,
+                        const int derivedScope,
+                        ContentSpecNode* const baseSpecNode,
+                        ValueVectorOf<ContentSpecNode*>* const baseNodes,
+                        const int baseScope,
+                        const ComplexTypeInfo* const baseInfo);
+    ContentSpecNode* getNonUnaryGroup(ContentSpecNode* const pNode);
+
+    // -----------------------------------------------------------------------
+    //  Private data members
+    //
+    // -----------------------------------------------------------------------
+    //  The following comes from or set by the Scanner
+    //  fSchemaGrammar
+    //      The current schema grammar used by the validator
+    //
+    //  fGrammarResolver
+    //      All the schema grammar stored
+    //
+    //  fXsiType
+    //      Store the Schema Type Attribute Value if schema type is specified
+    //
+    //  fNil
+    //      Indicates if Nillable has been set
+    // -----------------------------------------------------------------------
+    //  The following used internally in the validator
+    //
+    //  fCurrentDatatypeValidator
+    //      The validator used for validating the content of elements
+    //      with simple types
+    //
+    //  fDatatypeBuffer
+    //      Buffer for simple type element string content
+    //
+    //  fTrailing
+    //      Previous chunk had a trailing space
+    //
+    //  fSeenId
+    //      Indicate if an attribute of ID type has been seen already, reset per element.
+    //
+    //  fSchemaErrorReporter
+    //      Report schema process errors
+    //
+    //  fTypeStack
+    //      Stack of complex type declarations.
+    //
+    //  fMostRecentAttrValidator
+    //      DatatypeValidator that validated attribute most recently processed
+    //
+    //  fErrorOccurred
+    //      whether an error occurred in the most recent operation
+    // -----------------------------------------------------------------------
+    MemoryManager*                  fMemoryManager;
+    SchemaGrammar*                  fSchemaGrammar;
+    GrammarResolver*                fGrammarResolver;
+    QName*                          fXsiType;
+    bool                            fNil;
+    DatatypeValidator*              fCurrentDatatypeValidator;
+    XMLBuffer*                      fNotationBuf;
+    XMLBuffer                       fDatatypeBuffer;
+    bool                            fTrailing;
+    bool                            fSeenId;
+    XSDErrorReporter                fSchemaErrorReporter;
+    ValueStackOf<ComplexTypeInfo*>* fTypeStack;
+    DatatypeValidator *             fMostRecentAttrValidator;
+    bool                            fErrorOccurred;
+    bool                            fElemIsSpecified;
+};
+
+
+// ---------------------------------------------------------------------------
+//  SchemaValidator: Setter methods
+// ---------------------------------------------------------------------------
+inline void SchemaValidator::setGrammarResolver(GrammarResolver* grammarResolver) {
+    fGrammarResolver = grammarResolver;
+}
+
+inline void SchemaValidator::setXsiType(const XMLCh* const        prefix
+      , const XMLCh* const        localPart
+       , const unsigned int        uriId)
+{
+    delete fXsiType;
+    fXsiType = new (fMemoryManager) QName(prefix, localPart, uriId, fMemoryManager);
+}
+
+inline void SchemaValidator::setNillable(bool isNil) {
+    fNil = isNil;
+}
+
+inline void SchemaValidator::setExitOnFirstFatal(const bool newValue) {
+
+    fSchemaErrorReporter.setExitOnFirstFatal(newValue);
+}
+
+inline void SchemaValidator::setDatatypeBuffer(const XMLCh* const value)
+{
+    fDatatypeBuffer.append(value);
+}
+
+inline void SchemaValidator::clearDatatypeBuffer()
+{
+    fDatatypeBuffer.reset();
+}
+
+// ---------------------------------------------------------------------------
+//  SchemaValidator: Getter methods
+// ---------------------------------------------------------------------------
+inline ComplexTypeInfo* SchemaValidator::getCurrentTypeInfo() const {
+    if (fTypeStack->empty())
+        return 0;
+    return fTypeStack->peek();
+}
+
+inline DatatypeValidator * SchemaValidator::getCurrentDatatypeValidator() const 
+{
+    return fCurrentDatatypeValidator;
+}
+inline DatatypeValidator *SchemaValidator::getMostRecentAttrValidator() const
+{
+    return fMostRecentAttrValidator;
+}
+
+// ---------------------------------------------------------------------------
+//  Virtual interface
+// ---------------------------------------------------------------------------
+inline Grammar* SchemaValidator::getGrammar() const {
+    return fSchemaGrammar;
+}
+
+inline void SchemaValidator::setGrammar(Grammar* aGrammar) {
+    fSchemaGrammar = (SchemaGrammar*) aGrammar;
+}
+
+inline void SchemaValidator::setErrorReporter(XMLErrorReporter* const errorReporter) {
+
+    XMLValidator::setErrorReporter(errorReporter);
+    fSchemaErrorReporter.setErrorReporter(errorReporter);
+}
+
+// ---------------------------------------------------------------------------
+//  SchemaValidator: DTD handler interface
+// ---------------------------------------------------------------------------
+inline bool SchemaValidator::handlesDTD() const
+{
+    // No DTD scanning
+    return false;
+}
+
+// ---------------------------------------------------------------------------
+//  SchemaValidator: Schema handler interface
+// ---------------------------------------------------------------------------
+inline bool SchemaValidator::handlesSchema() const
+{
+    return true;
+}
+
+// ---------------------------------------------------------------------------
+//  SchemaValidator: Particle derivation checking
+// ---------------------------------------------------------------------------
+inline bool
+SchemaValidator::isOccurrenceRangeOK(const int min1, const int max1,
+                                     const int min2, const int max2) {
+
+    if (min1 >= min2 &&
+        (max2 == SchemaSymbols::XSD_UNBOUNDED ||
+         (max1 != SchemaSymbols::XSD_UNBOUNDED && max1 <= max2))) {
+        return true;
+    }
+    return false;
+}
+
+inline bool SchemaValidator::getErrorOccurred() const
+{
+    return fErrorOccurred;
+}
+
+inline bool SchemaValidator::getIsElemSpecified() const
+{
+    return fElemIsSpecified;
+}
+
+inline const XMLCh* SchemaValidator::getNormalizedValue() const
+{
+    return fDatatypeBuffer.getRawBuffer();
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/schema/SchemaGrammar.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/schema/SchemaGrammar.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/schema/SchemaGrammar.hpp	(revision 2674)
@@ -0,0 +1,623 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: SchemaGrammar.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+
+#if !defined(SCHEMAGRAMMAR_HPP)
+#define SCHEMAGRAMMAR_HPP
+
+#include <xercesc/framework/XMLNotationDecl.hpp>
+#include <xercesc/util/RefHash3KeysIdPool.hpp>
+#include <xercesc/util/NameIdPool.hpp>
+#include <xercesc/util/StringPool.hpp>
+#include <xercesc/validators/common/Grammar.hpp>
+#include <xercesc/validators/schema/SchemaElementDecl.hpp>
+#include <xercesc/util/ValueVectorOf.hpp>
+#include <xercesc/validators/datatype/IDDatatypeValidator.hpp>
+#include <xercesc/validators/datatype/DatatypeValidatorFactory.hpp>
+#include <xercesc/framework/XMLSchemaDescription.hpp>
+#include <xercesc/framework/ValidationContext.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+//
+// This class stores the Schema information
+//  NOTE: Schemas are not namespace aware, so we just use regular NameIdPool
+//  data structures to store element and attribute decls. They are all set
+//  to be in the global namespace and the full QName is used as the base name
+//  of the decl. This means that all the URI parameters below are expected
+//  to be null pointers (and anything else will cause an exception.)
+//
+
+// ---------------------------------------------------------------------------
+//  Forward Declarations
+// ---------------------------------------------------------------------------
+class ComplexTypeInfo;
+class NamespaceScope;
+class XercesGroupInfo;
+class XercesAttGroupInfo;
+class XSAnnotation;
+
+// ---------------------------------------------------------------------------
+//  typedef declaration
+// ---------------------------------------------------------------------------
+typedef ValueVectorOf<SchemaElementDecl*> ElemVector;
+
+
+class VALIDATORS_EXPORT SchemaGrammar : public Grammar
+{
+public:
+    // -----------------------------------------------------------------------
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+    SchemaGrammar(MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+    virtual ~SchemaGrammar();
+
+    // -----------------------------------------------------------------------
+    //  Implementation of Virtual Interface
+    // -----------------------------------------------------------------------
+    virtual Grammar::GrammarType getGrammarType() const;
+    virtual const XMLCh* getTargetNamespace() const;
+
+    // this method should only be used while the grammar is being
+    // constructed, not while it is being used
+    // in a validation episode!
+    virtual XMLElementDecl* findOrAddElemDecl
+    (
+        const   unsigned int    uriId
+        , const XMLCh* const    baseName
+        , const XMLCh* const    prefixName
+        , const XMLCh* const    qName
+        , unsigned int          scope
+        ,       bool&           wasAdded
+    ) ;
+
+    virtual unsigned int getElemId
+    (
+        const   unsigned int    uriId
+        , const XMLCh* const    baseName
+        , const XMLCh* const    qName
+        , unsigned int          scope
+    )   const ;
+
+    virtual const XMLElementDecl* getElemDecl
+    (
+        const   unsigned int    uriId
+        , const XMLCh* const    baseName
+        , const XMLCh* const    qName
+        , unsigned int          scope
+    )   const ;
+
+    virtual XMLElementDecl* getElemDecl
+    (
+        const   unsigned int    uriId
+        , const XMLCh* const    baseName
+        , const XMLCh* const    qName
+        , unsigned int          scope
+    );
+
+    virtual const XMLElementDecl* getElemDecl
+    (
+        const   unsigned int    elemId
+    )   const;
+
+    virtual XMLElementDecl* getElemDecl
+    (
+        const   unsigned int    elemId
+    );
+
+    virtual const XMLNotationDecl* getNotationDecl
+    (
+        const   XMLCh* const    notName
+    )   const;
+
+    virtual XMLNotationDecl* getNotationDecl
+    (
+        const   XMLCh* const    notName
+    );
+
+    virtual bool getValidated() const;
+
+    virtual XMLElementDecl* putElemDecl
+    (
+        const   unsigned int    uriId
+        , const XMLCh* const    baseName
+        , const XMLCh* const    prefixName
+        , const XMLCh* const    qName
+        , unsigned int          scope
+        , const bool            notDeclared = false
+    );
+
+    virtual unsigned int putElemDecl
+    (
+        XMLElementDecl* const elemDecl
+        , const bool          notDeclared = false
+    )   ;
+
+    virtual unsigned int putNotationDecl
+    (
+        XMLNotationDecl* const notationDecl
+    )   const;
+
+    virtual void setValidated(const bool newState);
+
+    virtual void reset();
+
+    // -----------------------------------------------------------------------
+    //  Getter methods
+    // -----------------------------------------------------------------------
+    RefHash3KeysIdPoolEnumerator<SchemaElementDecl> getElemEnumerator() const;
+    NameIdPoolEnumerator<XMLNotationDecl> getNotationEnumerator() const;
+    RefHashTableOf<XMLAttDef>* getAttributeDeclRegistry() const;
+    RefHashTableOf<ComplexTypeInfo>* getComplexTypeRegistry() const;
+    RefHashTableOf<XercesGroupInfo>* getGroupInfoRegistry() const;
+    RefHashTableOf<XercesAttGroupInfo>* getAttGroupInfoRegistry() const;
+    DatatypeValidatorFactory* getDatatypeRegistry();
+    NamespaceScope* getNamespaceScope() const;
+    RefHash2KeysTableOf<ElemVector>* getValidSubstitutionGroups() const;
+
+    //deprecated
+    RefHashTableOf<XMLRefInfo>* getIDRefList() const;
+
+    ValidationContext*          getValidationContext() const;
+
+    // -----------------------------------------------------------------------
+    //  Setter methods
+    // -----------------------------------------------------------------------
+    void setTargetNamespace(const XMLCh* const targetNamespace);
+    void setAttributeDeclRegistry(RefHashTableOf<XMLAttDef>* const attReg);
+    void setComplexTypeRegistry(RefHashTableOf<ComplexTypeInfo>* const other);
+    void setGroupInfoRegistry(RefHashTableOf<XercesGroupInfo>* const other);
+    void setAttGroupInfoRegistry(RefHashTableOf<XercesAttGroupInfo>* const other);
+    void setNamespaceScope(NamespaceScope* const nsScope);
+    void setValidSubstitutionGroups(RefHash2KeysTableOf<ElemVector>* const);
+
+    virtual void                    setGrammarDescription( XMLGrammarDescription*);
+    virtual XMLGrammarDescription*  getGrammarDescription() const;
+
+    // -----------------------------------------------------------------------
+    //  Helper methods
+    // -----------------------------------------------------------------------
+    unsigned int putGroupElemDecl
+    (
+        XMLElementDecl* const elemDecl
+    )   const;
+
+    // -----------------------------------------------------------------------
+    // Annotation management methods
+    // -----------------------------------------------------------------------
+    /**
+      * Add annotation to the list of annotations for a given key
+      */
+    void putAnnotation(void* key, XSAnnotation* const annotation);
+
+    /**
+      * Add global annotation
+      *
+      * Note: XSAnnotation acts as a linked list
+      */
+    void addAnnotation(XSAnnotation* const annotation);
+
+    /**
+     * Retrieve the annotation that is associated with the specified key
+     *
+     * @param  key   represents a schema component object (i.e. SchemaGrammar)
+     * @return XSAnnotation associated with the key object
+     */
+    XSAnnotation* getAnnotation(const void* const key);
+
+    /**
+     * Retrieve the annotation that is associated with the specified key
+     *
+     * @param  key   represents a schema component object (i.e. SchemaGrammar)
+     * @return XSAnnotation associated with the key object
+     */
+    const XSAnnotation* getAnnotation(const void* const key) const;
+
+    /**
+      * Get global annotation
+      */
+    XSAnnotation* getAnnotation();
+    const XSAnnotation* getAnnotation() const;
+
+    /** 
+      * Get annotation hash table, to enumerate through them
+      */
+    RefHashTableOf<XSAnnotation>*  getAnnotations();
+    const RefHashTableOf<XSAnnotation>*  getAnnotations() const;
+
+    /***
+     * Support for Serialization/De-serialization
+     ***/
+    DECL_XSERIALIZABLE(SchemaGrammar)
+
+private:
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    SchemaGrammar(const SchemaGrammar&);
+    SchemaGrammar& operator=(const SchemaGrammar&);
+
+    // -----------------------------------------------------------------------
+    //  Helper methods
+    // -----------------------------------------------------------------------
+    void cleanUp();
+
+    // -----------------------------------------------------------------------
+    //  Private data members
+    //
+    //  fElemDeclPool
+    //      This is the element decl pool. It contains all of the elements
+    //      declared in the Schema (and their associated attributes.)
+    //
+    //  fElemNonDeclPool
+    //      This is the element decl pool that is is populated as new elements
+    //      are seen in the XML document (not declared in the Schema), and they
+    //      are given default characteristics.
+    //
+    //  fGroupElemDeclPool
+    //      This is the element decl pool for elements in a group that are
+    //      referenced in different scope. It contains all of the elements
+    //      declared in the Schema (and their associated attributes.)
+    //
+    //  fNotationDeclPool
+    //      This is a pool of NotationDecl objects, which contains all of the
+    //      notations declared in the Schema.
+    //
+    //  fTargetNamespace
+    //      Target name space for this grammar.
+    //
+    //  fAttributeDeclRegistry
+    //      Global attribute declarations
+    //
+    //  fComplexTypeRegistry
+    //      Stores complexType declaration info
+    //
+    //  fGroupInfoRegistry
+    //      Stores global <group> declaration info
+    //
+    //  fAttGroupInfoRegistry
+    //      Stores global <attributeGroup> declaration info
+    //
+    //  fDatatypeRegistry
+    //      Datatype validator factory
+    //
+    //  fNamespaceScope
+    //      Prefix to Namespace map
+    //
+    //  fValidSubstitutionGroups
+    //      Valid list of elements that can substitute a given element
+    //
+    //  fIDRefList
+    //      List of ids of schema declarations extracted during schema grammar
+    //      traversal
+    //
+    //  fValidated
+    //      Indicates if the content of the Grammar has been pre-validated
+    //      or not (UPA checking, etc.). When using a cached grammar, no need
+    //      for pre content validation.
+    //
+    //  fGramDesc: adopted
+    //
+    // -----------------------------------------------------------------------
+    XMLCh*                                 fTargetNamespace;
+    RefHash3KeysIdPool<SchemaElementDecl>* fElemDeclPool;
+    RefHash3KeysIdPool<SchemaElementDecl>* fElemNonDeclPool;
+    RefHash3KeysIdPool<SchemaElementDecl>* fGroupElemDeclPool;
+    NameIdPool<XMLNotationDecl>*           fNotationDeclPool;
+    RefHashTableOf<XMLAttDef>*             fAttributeDeclRegistry;
+    RefHashTableOf<ComplexTypeInfo>*       fComplexTypeRegistry;
+    RefHashTableOf<XercesGroupInfo>*       fGroupInfoRegistry;
+    RefHashTableOf<XercesAttGroupInfo>*    fAttGroupInfoRegistry;
+    NamespaceScope*                        fNamespaceScope;
+    RefHash2KeysTableOf<ElemVector>*       fValidSubstitutionGroups;
+    ValidationContext*                     fValidationContext;
+    MemoryManager*                         fMemoryManager;
+    XMLSchemaDescription*                  fGramDesc;
+    RefHashTableOf<XSAnnotation>*          fAnnotations;
+
+    bool                                   fValidated;
+    DatatypeValidatorFactory               fDatatypeRegistry;
+};
+
+
+// ---------------------------------------------------------------------------
+//  SchemaGrammar: Getter methods
+// ---------------------------------------------------------------------------
+inline RefHash3KeysIdPoolEnumerator<SchemaElementDecl>
+SchemaGrammar::getElemEnumerator() const
+{
+    return RefHash3KeysIdPoolEnumerator<SchemaElementDecl>(fElemDeclPool, false, fMemoryManager);
+}
+
+inline NameIdPoolEnumerator<XMLNotationDecl>
+SchemaGrammar::getNotationEnumerator() const
+{
+    return NameIdPoolEnumerator<XMLNotationDecl>(fNotationDeclPool, fMemoryManager);
+}
+
+inline RefHashTableOf<XMLAttDef>* SchemaGrammar::getAttributeDeclRegistry() const {
+
+    return fAttributeDeclRegistry;
+}
+
+inline RefHashTableOf<ComplexTypeInfo>*
+SchemaGrammar::getComplexTypeRegistry() const {
+
+    return fComplexTypeRegistry;
+}
+
+inline RefHashTableOf<XercesGroupInfo>*
+SchemaGrammar::getGroupInfoRegistry() const {
+
+    return fGroupInfoRegistry;
+}
+
+inline RefHashTableOf<XercesAttGroupInfo>*
+SchemaGrammar::getAttGroupInfoRegistry() const {
+
+    return fAttGroupInfoRegistry;
+}
+
+inline DatatypeValidatorFactory* SchemaGrammar::getDatatypeRegistry() {
+
+    return &fDatatypeRegistry;
+}
+
+inline NamespaceScope* SchemaGrammar::getNamespaceScope() const {
+
+    return fNamespaceScope;
+}
+
+inline RefHash2KeysTableOf<ElemVector>*
+SchemaGrammar::getValidSubstitutionGroups() const {
+
+    return fValidSubstitutionGroups;
+}
+
+inline RefHashTableOf<XMLRefInfo>* SchemaGrammar::getIDRefList() const {
+
+    return fValidationContext->getIdRefList();
+}
+
+inline ValidationContext* SchemaGrammar::getValidationContext() const {
+
+    return fValidationContext;
+}
+
+inline XMLGrammarDescription* SchemaGrammar::getGrammarDescription() const
+{
+    return fGramDesc;
+}
+
+inline XSAnnotation* SchemaGrammar::getAnnotation(const void* const key)
+{
+    return fAnnotations->get(key);
+}
+
+inline const XSAnnotation* SchemaGrammar::getAnnotation(const void* const key) const
+{
+    return fAnnotations->get(key);
+}
+
+inline XSAnnotation* SchemaGrammar::getAnnotation()
+{
+    return fAnnotations->get(this);
+}
+
+inline const XSAnnotation* SchemaGrammar::getAnnotation() const
+{
+    return fAnnotations->get(this);
+}
+
+inline RefHashTableOf<XSAnnotation>* SchemaGrammar::getAnnotations()
+{
+    return fAnnotations;
+}
+
+inline const RefHashTableOf<XSAnnotation>* SchemaGrammar::getAnnotations() const
+{
+    return fAnnotations;
+}
+// -----------------------------------------------------------------------
+//  Setter methods
+// -----------------------------------------------------------------------
+inline void SchemaGrammar::setTargetNamespace(const XMLCh* const targetNamespace)
+{
+    if (fTargetNamespace)
+        fMemoryManager->deallocate(fTargetNamespace);//delete [] fTargetNamespace;
+    fTargetNamespace = XMLString::replicate(targetNamespace, fMemoryManager);
+}
+
+inline void
+SchemaGrammar::setAttributeDeclRegistry(RefHashTableOf<XMLAttDef>* const attReg) {
+
+    fAttributeDeclRegistry = attReg;
+}
+
+inline void
+SchemaGrammar::setComplexTypeRegistry(RefHashTableOf<ComplexTypeInfo>* const other) {
+
+    fComplexTypeRegistry = other;
+}
+
+inline void
+SchemaGrammar::setGroupInfoRegistry(RefHashTableOf<XercesGroupInfo>* const other) {
+
+    fGroupInfoRegistry = other;
+}
+
+inline void
+SchemaGrammar::setAttGroupInfoRegistry(RefHashTableOf<XercesAttGroupInfo>* const other) {
+
+    fAttGroupInfoRegistry = other;
+}
+
+inline void SchemaGrammar::setNamespaceScope(NamespaceScope* const nsScope) {
+
+    fNamespaceScope = nsScope;
+}
+
+inline void
+SchemaGrammar::setValidSubstitutionGroups(RefHash2KeysTableOf<ElemVector>* const other) {
+
+    fValidSubstitutionGroups = other;
+}
+
+
+// ---------------------------------------------------------------------------
+//  SchemaGrammar: Virtual methods
+// ---------------------------------------------------------------------------
+inline Grammar::GrammarType SchemaGrammar::getGrammarType() const {
+    return Grammar::SchemaGrammarType;
+}
+
+inline const XMLCh* SchemaGrammar::getTargetNamespace() const {
+    return fTargetNamespace;
+}
+
+// Element Decl
+inline unsigned int SchemaGrammar::getElemId (const   unsigned int  uriId
+                                              , const XMLCh* const    baseName
+                                              , const XMLCh* const
+                                              , unsigned int          scope ) const
+{
+    //
+    //  In this case, we don't return zero to mean 'not found', so we have to
+    //  map it to the official not found value if we don't find it.
+    //
+    const SchemaElementDecl* decl = fElemDeclPool->getByKey(baseName, uriId, scope);
+    if (!decl) {
+
+        decl = fGroupElemDeclPool->getByKey(baseName, uriId, scope);
+
+        if (!decl)
+            return XMLElementDecl::fgInvalidElemId;
+    }
+    return decl->getId();
+}
+
+inline const XMLElementDecl* SchemaGrammar::getElemDecl( const   unsigned int  uriId
+                                              , const XMLCh* const    baseName
+                                              , const XMLCh* const
+                                              , unsigned int          scope )   const
+{
+    const SchemaElementDecl* decl = fElemDeclPool->getByKey(baseName, uriId, scope);
+
+    if (!decl) {
+
+        decl = fGroupElemDeclPool->getByKey(baseName, uriId, scope);
+
+        if (!decl && fElemNonDeclPool)
+            decl = fElemNonDeclPool->getByKey(baseName, uriId, scope);
+    }
+
+    return decl;
+}
+
+inline XMLElementDecl* SchemaGrammar::getElemDecl (const   unsigned int  uriId
+                                              , const XMLCh* const    baseName
+                                              , const XMLCh* const
+                                              , unsigned int          scope )
+{
+    SchemaElementDecl* decl = fElemDeclPool->getByKey(baseName, uriId, scope);
+
+    if (!decl) {
+
+        decl = fGroupElemDeclPool->getByKey(baseName, uriId, scope);
+
+        if (!decl && fElemNonDeclPool)
+            decl = fElemNonDeclPool->getByKey(baseName, uriId, scope);
+    }
+
+    return decl;
+}
+
+inline const XMLElementDecl* SchemaGrammar::getElemDecl(const unsigned int elemId) const
+{
+    // Look up this element decl by id
+    const SchemaElementDecl* decl = fElemDeclPool->getById(elemId);
+
+    if (!decl)
+        decl = fGroupElemDeclPool->getById(elemId);
+
+    return decl;
+}
+
+inline XMLElementDecl* SchemaGrammar::getElemDecl(const unsigned int elemId)
+{
+    // Look up this element decl by id
+    SchemaElementDecl* decl = fElemDeclPool->getById(elemId);
+
+    if (!decl)
+        decl = fGroupElemDeclPool->getById(elemId);
+
+    return decl;
+}
+
+inline unsigned int
+SchemaGrammar::putElemDecl(XMLElementDecl* const elemDecl,
+                           const bool notDeclared) 
+{
+    if (notDeclared)
+    {
+        if(!fElemNonDeclPool)
+            fElemNonDeclPool = new (fMemoryManager) RefHash3KeysIdPool<SchemaElementDecl>(29, true, 128, fMemoryManager);
+        return fElemNonDeclPool->put(elemDecl->getBaseName(), elemDecl->getURI(), ((SchemaElementDecl* )elemDecl)->getEnclosingScope(), (SchemaElementDecl*) elemDecl);
+    }
+
+    return fElemDeclPool->put(elemDecl->getBaseName(), elemDecl->getURI(), ((SchemaElementDecl* )elemDecl)->getEnclosingScope(), (SchemaElementDecl*) elemDecl);
+}
+
+inline unsigned int SchemaGrammar::putGroupElemDecl (XMLElementDecl* const elemDecl)   const
+{
+    return fGroupElemDeclPool->put(elemDecl->getBaseName(), elemDecl->getURI(), ((SchemaElementDecl* )elemDecl)->getEnclosingScope(), (SchemaElementDecl*) elemDecl);
+}
+
+// Notation Decl
+inline const XMLNotationDecl* SchemaGrammar::getNotationDecl(const XMLCh* const notName) const
+{
+    return fNotationDeclPool->getByKey(notName);
+}
+
+inline XMLNotationDecl* SchemaGrammar::getNotationDecl(const XMLCh* const notName)
+{
+    return fNotationDeclPool->getByKey(notName);
+}
+
+inline unsigned int SchemaGrammar::putNotationDecl(XMLNotationDecl* const notationDecl)   const
+{
+    return fNotationDeclPool->put(notationDecl);
+}
+
+inline bool SchemaGrammar::getValidated() const
+{
+    return fValidated;
+}
+
+inline void SchemaGrammar::setValidated(const bool newState)
+{
+    fValidated = newState;
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/schema/XMLSchemaDescriptionImpl.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/schema/XMLSchemaDescriptionImpl.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/schema/XMLSchemaDescriptionImpl.hpp	(revision 2674)
@@ -0,0 +1,186 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: XMLSchemaDescriptionImpl.hpp 568078 2007-08-21 11:43:25Z amassari $
+ *
+ */
+
+#if !defined(XMLSchemaDescriptionImplIMPL_HPP)
+#define XMLSchemaDescriptionImplIMPL_HPP
+
+#include <xercesc/framework/XMLSchemaDescription.hpp>
+#include <xercesc/util/RefVectorOf.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class XMLAttDefs;
+
+class XMLPARSER_EXPORT XMLSchemaDescriptionImpl : public XMLSchemaDescription
+{
+public :
+    // -----------------------------------------------------------------------
+    /** @name constructor and destructor */
+    // -----------------------------------------------------------------------
+    //@{
+    XMLSchemaDescriptionImpl(
+                             const XMLCh* const   targetNamespace 
+                           , MemoryManager* const memMgr
+                             );
+
+    ~XMLSchemaDescriptionImpl();
+    //@}
+
+    // -----------------------------------------------------------------------
+    /** @name Implementation of GrammarDescription Interface */
+    // -----------------------------------------------------------------------
+    //@{
+    /**
+      * getGrammarKey
+      *
+      */
+    virtual const XMLCh*           getGrammarKey() const;
+    //@}
+
+    // -----------------------------------------------------------------------
+    /** @name Implementation of SchemaDescription Interface */
+    // -----------------------------------------------------------------------
+    //@{
+
+    /**
+      * getContextType
+      *
+      */	
+    virtual ContextType            getContextType() const;
+
+    /**
+      * getTargetNamespace
+      *
+      */	
+    virtual const XMLCh*           getTargetNamespace() const;
+
+    /**
+      * getLocationHints
+      *
+      */	
+    virtual RefArrayVectorOf<XMLCh>*   getLocationHints() const;
+
+    /**
+      * getTriggeringComponent
+      *
+      */	
+    virtual const QName*           getTriggeringComponent() const;
+
+    /**
+      * getenclosingElementName
+      *
+      */	
+    virtual const QName*           getEnclosingElementName() const;
+
+    /**
+      * getAttributes
+      *
+      */	
+    virtual const XMLAttDef*       getAttributes() const;
+
+    /**
+      * setContextType
+      *
+      */	
+    virtual void                   setContextType(ContextType);
+
+    /**
+      * setTargetNamespace
+      *
+      */	
+    virtual void                   setTargetNamespace(const XMLCh* const);
+
+    /**
+      * setLocationHints
+      *
+      */	
+    virtual void                   setLocationHints(const XMLCh* const);
+
+    /**
+      * setTriggeringComponent
+      *
+      */	
+    virtual void                   setTriggeringComponent(QName* const);
+
+    /**
+      * getenclosingElementName
+      *
+      */	
+    virtual void                   setEnclosingElementName(QName* const);
+
+    /**
+      * setAttributes
+      *
+      */	
+    virtual void                   setAttributes(XMLAttDef* const);          
+    //@}
+
+    /***
+     * Support for Serialization/De-serialization
+     ***/
+    DECL_XSERIALIZABLE(XMLSchemaDescriptionImpl)
+
+    XMLSchemaDescriptionImpl(MemoryManager* const memMgr = XMLPlatformUtils::fgMemoryManager);
+
+private :
+    // -----------------------------------------------------------------------
+    /** name  Unimplemented copy constructor and operator= */
+    // -----------------------------------------------------------------------
+    //@{
+    XMLSchemaDescriptionImpl(const XMLSchemaDescriptionImpl& );
+    XMLSchemaDescriptionImpl& operator=(const XMLSchemaDescriptionImpl& );
+    //@}
+
+    // -----------------------------------------------------------------------
+    //  Private data members
+    //
+    //  All data member in this implementation are owned to out survive
+    //  parser. Except for fNamespace which is replicated upon set, the
+    //  rest shall be created by the embedded memoryManager.
+    //
+    //  fContextType  
+    //
+    //  fNamespace            owned
+    //
+    //  fLocationHints        owned
+    //
+    //  fTriggeringComponent  owned
+    //
+    //  fEnclosingElementName owned
+    //                       
+    //  fAttributes           referenced
+    //
+    // -----------------------------------------------------------------------
+
+    XMLSchemaDescription::ContextType      fContextType;
+    const XMLCh*                           fNamespace;
+    RefArrayVectorOf<XMLCh>*               fLocationHints;
+    const QName*                           fTriggeringComponent;
+    const QName*                           fEnclosingElementName;
+    const XMLAttDef*                       fAttributes; 
+
+};
+
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/schema/SchemaSymbols.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/schema/SchemaSymbols.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/schema/SchemaSymbols.hpp	(revision 2674)
@@ -0,0 +1,250 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: SchemaSymbols.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(SCHEMASYMBOLS_HPP)
+#define SCHEMASYMBOLS_HPP
+
+#include <xercesc/util/XercesDefs.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+/*
+ * Collection of symbols used to parse a Schema Grammar
+ */
+
+class VALIDATORS_EXPORT SchemaSymbols
+{
+public :
+    // -----------------------------------------------------------------------
+    // Constant data
+    // -----------------------------------------------------------------------
+    static const XMLCh fgURI_XSI[];
+    static const XMLCh fgURI_SCHEMAFORSCHEMA[];
+    static const XMLCh fgXSI_SCHEMALOCACTION[];
+    static const XMLCh fgXSI_NONAMESPACESCHEMALOCACTION[];
+    static const XMLCh fgXSI_TYPE[];
+    static const XMLCh fgELT_ALL[];
+    static const XMLCh fgELT_ANNOTATION[];
+    static const XMLCh fgELT_ANY[];
+    static const XMLCh fgELT_WILDCARD[];
+    static const XMLCh fgELT_ANYATTRIBUTE[];
+    static const XMLCh fgELT_APPINFO[];
+    static const XMLCh fgELT_ATTRIBUTE[];
+    static const XMLCh fgELT_ATTRIBUTEGROUP[];
+    static const XMLCh fgELT_CHOICE[];
+    static const XMLCh fgELT_COMPLEXTYPE[];
+    static const XMLCh fgELT_CONTENT[];
+    static const XMLCh fgELT_DOCUMENTATION[];
+    static const XMLCh fgELT_DURATION[];
+    static const XMLCh fgELT_ELEMENT[];
+    static const XMLCh fgELT_ENCODING[];
+    static const XMLCh fgELT_ENUMERATION[];
+    static const XMLCh fgELT_FIELD[];
+    static const XMLCh fgELT_WHITESPACE[];
+    static const XMLCh fgELT_GROUP[];
+    static const XMLCh fgELT_IMPORT[];
+    static const XMLCh fgELT_INCLUDE[];
+    static const XMLCh fgELT_REDEFINE[];
+    static const XMLCh fgELT_KEY[];
+    static const XMLCh fgELT_KEYREF[];
+    static const XMLCh fgELT_LENGTH[];
+    static const XMLCh fgELT_MAXEXCLUSIVE[];
+    static const XMLCh fgELT_MAXINCLUSIVE[];
+    static const XMLCh fgELT_MAXLENGTH[];
+    static const XMLCh fgELT_MINEXCLUSIVE[];
+    static const XMLCh fgELT_MININCLUSIVE[];
+    static const XMLCh fgELT_MINLENGTH[];
+    static const XMLCh fgELT_NOTATION[];
+    static const XMLCh fgELT_PATTERN[];
+    static const XMLCh fgELT_PERIOD[];
+    static const XMLCh fgELT_TOTALDIGITS[];
+    static const XMLCh fgELT_FRACTIONDIGITS[];
+    static const XMLCh fgELT_SCHEMA[];
+    static const XMLCh fgELT_SELECTOR[];
+    static const XMLCh fgELT_SEQUENCE[];
+    static const XMLCh fgELT_SIMPLETYPE[];
+    static const XMLCh fgELT_UNION[];
+    static const XMLCh fgELT_LIST[];
+    static const XMLCh fgELT_UNIQUE[];
+    static const XMLCh fgELT_COMPLEXCONTENT[];
+    static const XMLCh fgELT_SIMPLECONTENT[];
+    static const XMLCh fgELT_RESTRICTION[];
+    static const XMLCh fgELT_EXTENSION[];
+    static const XMLCh fgATT_ABSTRACT[];
+    static const XMLCh fgATT_ATTRIBUTEFORMDEFAULT[];
+    static const XMLCh fgATT_BASE[];
+    static const XMLCh fgATT_ITEMTYPE[];
+    static const XMLCh fgATT_MEMBERTYPES[];
+    static const XMLCh fgATT_BLOCK[];
+    static const XMLCh fgATT_BLOCKDEFAULT[];
+    static const XMLCh fgATT_DEFAULT[];
+    static const XMLCh fgATT_ELEMENTFORMDEFAULT[];
+    static const XMLCh fgATT_SUBSTITUTIONGROUP[];
+    static const XMLCh fgATT_FINAL[];
+    static const XMLCh fgATT_FINALDEFAULT[];
+    static const XMLCh fgATT_FIXED[];
+    static const XMLCh fgATT_FORM[];
+    static const XMLCh fgATT_ID[];
+    static const XMLCh fgATT_MAXOCCURS[];
+    static const XMLCh fgATT_MINOCCURS[];
+    static const XMLCh fgATT_NAME[];
+    static const XMLCh fgATT_NAMESPACE[];
+    static const XMLCh fgATT_NILL[];
+    static const XMLCh fgATT_NILLABLE[];
+    static const XMLCh fgATT_PROCESSCONTENTS[];
+    static const XMLCh fgATT_REF[];
+    static const XMLCh fgATT_REFER[];
+    static const XMLCh fgATT_SCHEMALOCATION[];
+    static const XMLCh fgATT_SOURCE[];
+    static const XMLCh fgATT_SYSTEM[];
+    static const XMLCh fgATT_PUBLIC[];
+    static const XMLCh fgATT_TARGETNAMESPACE[];
+    static const XMLCh fgATT_TYPE[];
+    static const XMLCh fgATT_USE[];
+    static const XMLCh fgATT_VALUE[];
+    static const XMLCh fgATT_MIXED[];
+    static const XMLCh fgATT_VERSION[];
+    static const XMLCh fgATT_XPATH[];
+    static const XMLCh fgATTVAL_TWOPOUNDANY[];
+    static const XMLCh fgATTVAL_TWOPOUNDLOCAL[];
+    static const XMLCh fgATTVAL_TWOPOUNDOTHER[];
+    static const XMLCh fgATTVAL_TWOPOUNDTRAGETNAMESPACE[];
+    static const XMLCh fgATTVAL_POUNDALL[];
+    static const XMLCh fgATTVAL_BASE64[];
+    static const XMLCh fgATTVAL_BOOLEAN[];
+    static const XMLCh fgATTVAL_DEFAULT[];
+    static const XMLCh fgATTVAL_ELEMENTONLY[];
+    static const XMLCh fgATTVAL_EMPTY[];
+    static const XMLCh fgATTVAL_EXTENSION[];
+    static const XMLCh fgATTVAL_FALSE[];
+    static const XMLCh fgATTVAL_FIXED[];
+    static const XMLCh fgATTVAL_HEX[];
+    static const XMLCh fgATTVAL_ID[];
+    static const XMLCh fgATTVAL_LAX[];
+    static const XMLCh fgATTVAL_MAXLENGTH[];
+    static const XMLCh fgATTVAL_MINLENGTH[];
+    static const XMLCh fgATTVAL_MIXED[];
+    static const XMLCh fgATTVAL_NCNAME[];
+    static const XMLCh fgATTVAL_OPTIONAL[];
+    static const XMLCh fgATTVAL_PROHIBITED[];
+    static const XMLCh fgATTVAL_QNAME[];
+    static const XMLCh fgATTVAL_QUALIFIED[];
+    static const XMLCh fgATTVAL_REQUIRED[];
+    static const XMLCh fgATTVAL_RESTRICTION[];
+    static const XMLCh fgATTVAL_SKIP[];
+    static const XMLCh fgATTVAL_STRICT[];
+    static const XMLCh fgATTVAL_STRING[];
+    static const XMLCh fgATTVAL_TEXTONLY[];
+    static const XMLCh fgATTVAL_TIMEDURATION[];
+    static const XMLCh fgATTVAL_TRUE[];
+    static const XMLCh fgATTVAL_UNQUALIFIED[];
+    static const XMLCh fgATTVAL_URI[];
+    static const XMLCh fgATTVAL_URIREFERENCE[];
+    static const XMLCh fgATTVAL_SUBSTITUTIONGROUP[];
+    static const XMLCh fgATTVAL_SUBSTITUTION[];
+    static const XMLCh fgATTVAL_ANYTYPE[];
+    static const XMLCh fgWS_PRESERVE[];
+    static const XMLCh fgWS_COLLAPSE[];
+    static const XMLCh fgWS_REPLACE[];
+    static const XMLCh fgDT_STRING[];
+    static const XMLCh fgDT_TOKEN[];
+    static const XMLCh fgDT_LANGUAGE[];
+    static const XMLCh fgDT_NAME[];
+    static const XMLCh fgDT_NCNAME[];
+    static const XMLCh fgDT_INTEGER[];
+    static const XMLCh fgDT_DECIMAL[];
+    static const XMLCh fgDT_BOOLEAN[];
+    static const XMLCh fgDT_NONPOSITIVEINTEGER[];
+    static const XMLCh fgDT_NEGATIVEINTEGER[];
+    static const XMLCh fgDT_LONG[];
+    static const XMLCh fgDT_INT[];
+    static const XMLCh fgDT_SHORT[];
+    static const XMLCh fgDT_BYTE[];
+	static const XMLCh fgDT_NONNEGATIVEINTEGER[];
+    static const XMLCh fgDT_ULONG[];
+    static const XMLCh fgDT_UINT[];
+	static const XMLCh fgDT_USHORT[];
+	static const XMLCh fgDT_UBYTE[];
+    static const XMLCh fgDT_POSITIVEINTEGER[];
+//datetime
+    static const XMLCh fgDT_DATETIME[];
+    static const XMLCh fgDT_DATE[];
+	static const XMLCh fgDT_TIME[];
+    static const XMLCh fgDT_DURATION[];
+    static const XMLCh fgDT_DAY[];
+    static const XMLCh fgDT_MONTH[];
+    static const XMLCh fgDT_MONTHDAY[];
+    static const XMLCh fgDT_YEAR[];
+    static const XMLCh fgDT_YEARMONTH[];
+
+    static const XMLCh fgDT_BASE64BINARY[];
+    static const XMLCh fgDT_HEXBINARY[];
+    static const XMLCh fgDT_FLOAT[];
+    static const XMLCh fgDT_DOUBLE[];
+    static const XMLCh fgDT_URIREFERENCE[];
+    static const XMLCh fgDT_ANYURI[];
+    static const XMLCh fgDT_QNAME[];
+    static const XMLCh fgDT_NORMALIZEDSTRING[];
+    static const XMLCh fgDT_ANYSIMPLETYPE[];
+    static const XMLCh fgRegEx_XOption[];
+    static const XMLCh fgRedefIdentifier[];
+    static const int   fgINT_MIN_VALUE;
+    static const int   fgINT_MAX_VALUE;
+
+    enum {
+        XSD_EMPTYSET = 0,
+        XSD_SUBSTITUTION = 1,
+        XSD_EXTENSION = 2,
+        XSD_RESTRICTION = 4,
+        XSD_LIST = 8,
+        XSD_UNION = 16,
+        XSD_ENUMERATION = 32
+    };
+
+    // group orders
+    enum {
+        XSD_CHOICE = 0,
+        XSD_SEQUENCE= 1,
+        XSD_ALL = 2
+    };
+
+    enum {
+        XSD_UNBOUNDED = -1,
+        XSD_NILLABLE = 1,
+        XSD_ABSTRACT = 2,
+        XSD_FIXED = 4
+    };
+
+private:
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    SchemaSymbols();
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
+
+/**
+  * End of file SchemaSymbols.hpp
+  */
+
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/schema/XSDDOMParser.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/schema/XSDDOMParser.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/schema/XSDDOMParser.hpp	(revision 2674)
@@ -0,0 +1,330 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: XSDDOMParser.hpp 568078 2007-08-21 11:43:25Z amassari $
+ *
+ */
+
+#if !defined(XSDDOMPARSER_HPP)
+#define XSDDOMPARSER_HPP
+
+
+#include <xercesc/parsers/XercesDOMParser.hpp>
+#include <xercesc/validators/schema/XSDErrorReporter.hpp>
+#include <xercesc/validators/schema/XSDLocator.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class DOMElement;
+class XMLValidator;
+
+
+/**
+  * This class is used to parse schema documents into DOM trees
+  */
+class PARSERS_EXPORT XSDDOMParser : public XercesDOMParser
+{
+public :
+
+    // -----------------------------------------------------------------------
+    //  Constructors and Detructor
+    // -----------------------------------------------------------------------
+
+    /** @name Constructors and Destructor */
+    //@{
+    /** Construct a XSDDOMParser, with an optional validator
+      *
+      * Constructor with an instance of validator class to use for
+      * validation. If you don't provide a validator, a default one will
+      * be created for you in the scanner.
+      *
+      * @param gramPool   Pointer to the grammar pool instance from 
+      *                   external application.
+      *                   The parser does NOT own it.
+      *
+      * @param valToAdopt Pointer to the validator instance to use. The
+      *                   parser is responsible for freeing the memory.
+      */
+    XSDDOMParser
+    (
+          XMLValidator* const   valToAdopt = 0
+        , MemoryManager* const  manager = XMLPlatformUtils::fgMemoryManager
+        , XMLGrammarPool* const gramPool = 0        
+    );
+
+    /**
+      * Destructor
+      */
+    ~XSDDOMParser();
+
+    //@}
+
+    // -----------------------------------------------------------------------
+    //  Implementation of the XMLDocumentHandler interface.
+    // -----------------------------------------------------------------------
+
+    /** @name Implementation of the XMLDocumentHandler interface. */
+    //@{
+
+    /** Handle a start element event
+      *
+      * This method is used to report the start of an element. It is
+      * called at the end of the element, by which time all attributes
+      * specified are also parsed. A new DOM Element node is created
+      * along with as many attribute nodes as required. This new element
+      * is added appended as a child of the current node in the tree, and
+      * then replaces it as the current node (if the isEmpty flag is false.)
+      *
+      * @param elemDecl A const reference to the object containing element
+      *                 declaration information.
+      * @param urlId    An id referring to the namespace prefix, if
+      *                 namespaces setting is switched on.
+      * @param elemPrefix A const pointer to a Unicode string containing
+      *                 the namespace prefix for this element. Applicable
+      *                 only when namespace processing is enabled.
+      * @param attrList A const reference to the object containing the
+      *                 list of attributes just scanned for this element.
+      * @param attrCount A count of number of attributes in the list
+      *                 specified by the parameter 'attrList'.
+      * @param isEmpty  A flag indicating whether this is an empty element
+      *                 or not. If empty, then no endElement() call will
+      *                 be made.
+      * @param isRoot   A flag indicating whether this element was the
+      *                 root element.
+      * @see DocumentHandler#startElement
+      */
+    virtual void startElement
+    (
+        const   XMLElementDecl&         elemDecl
+        , const unsigned int            urlId
+        , const XMLCh* const            elemPrefix
+        , const RefVectorOf<XMLAttr>&   attrList
+        , const unsigned int            attrCount
+        , const bool                    isEmpty
+        , const bool                    isRoot
+    );
+
+    /** Handle and end of element event
+      *
+      * This method is used to indicate the end tag of an element. The
+      * DOM parser pops the current element off the top of the element
+      * stack, and make it the new current element.
+      *
+      * @param elemDecl A const reference to the object containing element
+      *                 declaration information.
+      * @param urlId    An id referring to the namespace prefix, if
+      *                 namespaces setting is switched on.
+      * @param isRoot   A flag indicating whether this element was the
+      *                 root element.
+      * @param elemPrefix A const pointer to a Unicode string containing
+      *                 the namespace prefix for this element. Applicable
+      *                 only when namespace processing is enabled.
+      */
+    virtual void endElement
+    (
+        const   XMLElementDecl& elemDecl
+        , const unsigned int    urlId
+        , const bool            isRoot
+        , const XMLCh* const    elemPrefix
+    );
+
+    /** Handle document character events
+      *
+      * This method is used to report all the characters scanned by the
+      * parser. This DOM implementation stores this data in the appropriate
+      * DOM node, creating one if necessary.
+      *
+      * @param chars   A const pointer to a Unicode string representing the
+      *                character data.
+      * @param length  The length of the Unicode string returned in 'chars'.
+      * @param cdataSection  A flag indicating if the characters represent
+      *                      content from the CDATA section.
+      */
+    virtual void docCharacters
+    (
+        const   XMLCh* const    chars
+        , const unsigned int    length
+        , const bool            cdataSection
+    );
+
+    /** Handle a document comment event
+      *
+      * This method is used to report any comments scanned by the parser.
+      * A new comment node is created which stores this data.
+      *
+      * @param comment A const pointer to a null terminated Unicode
+      *                string representing the comment text.
+      */
+    virtual void docComment
+    (
+        const   XMLCh* const    comment
+    );
+
+    /** Handle a start entity reference event
+      *
+      * This method is used to indicate the start of an entity reference.
+      * If the expand entity reference flag is true, then a new
+      * DOM Entity reference node is created.
+      *
+      * @param entDecl A const reference to the object containing the
+      *                entity declaration information.
+      */
+    virtual void startEntityReference
+    (
+        const   XMLEntityDecl&  entDecl
+    );
+
+    /** Handle and end of entity reference event
+      *
+      * This method is used to indicate that an end of an entity reference
+      * was just scanned.
+      *
+      * @param entDecl A const reference to the object containing the
+      *                entity declaration information.
+      */
+    virtual void endEntityReference
+    (
+        const   XMLEntityDecl&  entDecl
+    );
+
+    /** Handle an ignorable whitespace vent
+      *
+      * This method is used to report all the whitespace characters, which
+      * are determined to be 'ignorable'. This distinction between characters
+      * is only made, if validation is enabled.
+      *
+      * Any whitespace before content is ignored. If the current node is
+      * already of type DOMNode::TEXT_NODE, then these whitespaces are
+      * appended, otherwise a new Text node is created which stores this
+      * data. Essentially all contiguous ignorable characters are collected
+      * in one node.
+      *
+      * @param chars   A const pointer to a Unicode string representing the
+      *                ignorable whitespace character data.
+      * @param length  The length of the Unicode string 'chars'.
+      * @param cdataSection  A flag indicating if the characters represent
+      *                      content from the CDATA section.
+      */
+    virtual void ignorableWhitespace
+    (
+        const   XMLCh* const    chars
+        , const unsigned int    length
+        , const bool            cdataSection
+    );
+
+    //@}
+
+    // -----------------------------------------------------------------------
+    //  Get methods
+    // -----------------------------------------------------------------------
+    bool getSawFatal() const;
+
+
+    // -----------------------------------------------------------------------
+    //  Set methods
+    // -----------------------------------------------------------------------
+    void setUserErrorReporter(XMLErrorReporter* const errorReporter);
+    void setUserEntityHandler(XMLEntityHandler* const entityHandler);
+
+
+    // -----------------------------------------------------------------------
+    //  XMLErrorReporter interface
+    // -----------------------------------------------------------------------
+    virtual void error
+    (
+        const   unsigned int        errCode
+        , const XMLCh* const        errDomain
+        , const ErrTypes            type
+        , const XMLCh* const        errorText
+        , const XMLCh* const        systemId
+        , const XMLCh* const        publicId
+        , const XMLSSize_t          lineNum
+        , const XMLSSize_t          colNum
+    );
+
+    // -----------------------------------------------------------------------
+    //  XMLEntityHandler interface
+    // -----------------------------------------------------------------------
+    virtual InputSource* resolveEntity
+    (
+        const   XMLCh* const    publicId
+        , const XMLCh* const    systemId
+        , const XMLCh* const    baseURI = 0
+    );
+
+    virtual InputSource* resolveEntity(XMLResourceIdentifier* resourceIdentifier);
+
+protected :
+    // -----------------------------------------------------------------------
+    //  Protected Helper methods
+    // -----------------------------------------------------------------------
+    virtual DOMElement* createElementNSNode(const XMLCh *fNamespaceURI,
+                                            const XMLCh *qualifiedName);
+
+private:
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    XSDDOMParser(const XSDDOMParser&);
+    XSDDOMParser& operator=(const XSDDOMParser&);
+
+    // -----------------------------------------------------------------------
+    //  Private Helper methods
+    // -----------------------------------------------------------------------
+    void startAnnotation
+    (
+        const   XMLElementDecl&         elemDecl
+        , const RefVectorOf<XMLAttr>&   attrList
+        , const unsigned int            attrCount
+    );
+    void startAnnotationElement
+    (
+        const   XMLElementDecl&         elemDecl
+        , const RefVectorOf<XMLAttr>&   attrList
+        , const unsigned int            attrCount
+    );
+    void endAnnotationElement
+    (
+        const XMLElementDecl& elemDecl
+        ,     bool            complete
+    );
+
+    // -----------------------------------------------------------------------
+    //  Private data members
+    // -----------------------------------------------------------------------
+    bool                         fSawFatal;
+    int                          fAnnotationDepth;
+    int                          fInnerAnnotationDepth;
+    int                          fDepth;
+    XMLErrorReporter*            fUserErrorReporter;
+    XMLEntityHandler*            fUserEntityHandler;
+    ValueVectorOf<unsigned int>* fURIs;
+    XMLBuffer                    fAnnotationBuf;
+    XSDErrorReporter             fXSDErrorReporter;
+    XSDLocator                   fXSLocator;
+};
+
+
+inline bool XSDDOMParser::getSawFatal() const
+{
+    return fSawFatal;
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/schema/SchemaInfo.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/schema/SchemaInfo.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/schema/SchemaInfo.hpp	(revision 2674)
@@ -0,0 +1,438 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: SchemaInfo.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(SCHEMAINFO_HPP)
+#define SCHEMAINFO_HPP
+
+
+/** When in a <redefine>, type definitions being used (and indeed
+  * refs to <group>'s and <attributeGroup>'s) may refer to info
+  * items either in the schema being redefined, in the <redefine>,
+  * or else in the schema doing the redefining.  Because of this
+  * latter we have to be prepared sometimes to look for our type
+  * definitions outside the schema stored in fSchemaRootElement.
+  * This simple class does this; it's just a linked list that
+  * lets us look at the <schema>'s on the queue; note also that this
+  * should provide us with a mechanism to handle nested <redefine>'s.
+  * It's also a handy way of saving schema info when importing/including.
+  */
+
+// ---------------------------------------------------------------------------
+//  Includes
+// ---------------------------------------------------------------------------
+#include <xercesc/dom/DOMElement.hpp>
+#include <xercesc/util/RefVectorOf.hpp>
+#include <xercesc/util/ValueVectorOf.hpp>
+#include <xercesc/util/RefHashTableOf.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+// ---------------------------------------------------------------------------
+//  Forward Declarations
+// ---------------------------------------------------------------------------
+class ValidationContext;
+
+
+class VALIDATORS_EXPORT SchemaInfo : public XMemory
+{
+public:
+
+    enum ListType {
+        // Redefine is treated as an include
+        IMPORT = 1,
+        INCLUDE = 2
+    };
+
+    enum {
+        C_ComplexType,
+        C_SimpleType,
+        C_Group,
+        C_Attribute,
+        C_AttributeGroup,
+        C_Element,
+        C_Notation,
+
+        C_Count
+    };
+
+    // -----------------------------------------------------------------------
+    //  Constructor/Destructor
+    // -----------------------------------------------------------------------
+    SchemaInfo(const unsigned short fElemAttrDefaultQualified,
+               const int blockDefault,
+               const int finalDefault,
+               const int targetNSURI,
+               const int scopeCount,
+               const unsigned int namespaceScopeLevel,
+               XMLCh* const schemaURL,
+               const XMLCh* const targetNSURIString,
+               const DOMElement* const root,
+               MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+    ~SchemaInfo();
+
+
+    // -----------------------------------------------------------------------
+    //  Getter methods
+    // -----------------------------------------------------------------------
+    XMLCh*                            getCurrentSchemaURL() const;
+    const XMLCh* const                getTargetNSURIString() const;
+    const DOMElement*                 getRoot() const;
+    bool                              getProcessed() const;
+    int                               getBlockDefault() const;
+    int                               getFinalDefault() const;
+    int                               getTargetNSURI() const;
+    int                               getScopeCount() const;
+    unsigned int                      getNamespaceScopeLevel() const;
+    unsigned short                    getElemAttrDefaultQualified() const;
+    BaseRefVectorEnumerator<SchemaInfo>   getImportingListEnumerator() const;
+    ValueVectorOf<const DOMElement*>* getRecursingAnonTypes() const;
+    ValueVectorOf<const XMLCh*>*      getRecursingTypeNames() const;
+    ValueVectorOf<DOMNode*>*          getNonXSAttList() const;
+    ValidationContext*                getValidationContext() const;
+
+    // -----------------------------------------------------------------------
+    //  Setter methods
+    // -----------------------------------------------------------------------
+    void setProcessed(const bool aValue = true);
+    void setScopeCount(const int aValue);
+    void setBlockDefault(const int aValue);
+    void setFinalDefault(const int aValue);
+    void setElemAttrDefaultQualified(const unsigned short aValue);
+
+    // -----------------------------------------------------------------------
+    //  Access methods
+    // -----------------------------------------------------------------------
+    void addSchemaInfo(SchemaInfo* const toAdd, const ListType aListType);
+    bool containsInfo(const SchemaInfo* const toCheck, const ListType aListType) const;
+    SchemaInfo* getImportInfo(const unsigned int namespaceURI) const;
+    DOMElement* getTopLevelComponent(const unsigned short compCategory,
+                                     const XMLCh* const compName,
+                                     const XMLCh* const name);
+    DOMElement* getTopLevelComponent(const unsigned short compCategory,
+                                     const XMLCh* const compName,
+                                     const XMLCh* const name,
+                                     SchemaInfo** enclosingSchema);
+    void updateImportingInfo(SchemaInfo* const importingInfo);
+    bool circularImportExist(const unsigned int nameSpaceURI);
+    bool isFailedRedefine(const DOMElement* const anElem);
+    void addFailedRedefine(const DOMElement* const anElem);
+    bool isImportingNS(const int namespaceURI);
+    void addImportedNS(const int namespaceURI);
+    void addRecursingType(const DOMElement* const elem, const XMLCh* const name);
+
+private:
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    SchemaInfo(const SchemaInfo&);
+    SchemaInfo& operator=(const SchemaInfo&);
+
+    // -----------------------------------------------------------------------
+    //  Private helper methods
+    // -----------------------------------------------------------------------
+    void clearTopLevelComponents();
+
+    // -----------------------------------------------------------------------
+    //  Private data members
+    // -----------------------------------------------------------------------
+    bool                              fAdoptInclude;
+    bool                              fProcessed;
+    unsigned short                    fElemAttrDefaultQualified;
+    int                               fBlockDefault;
+    int                               fFinalDefault;
+    int                               fTargetNSURI;
+    int                               fScopeCount;
+    unsigned int                      fNamespaceScopeLevel;
+    XMLCh*                            fCurrentSchemaURL;
+    const XMLCh*                      fTargetNSURIString;
+    const DOMElement*                 fSchemaRootElement;
+    RefVectorOf<SchemaInfo>*          fIncludeInfoList;
+    RefVectorOf<SchemaInfo>*          fImportedInfoList;
+    RefVectorOf<SchemaInfo>*          fImportingInfoList;
+    ValueVectorOf<const DOMElement*>* fFailedRedefineList;
+    ValueVectorOf<int>*               fImportedNSList;
+    ValueVectorOf<const DOMElement*>* fRecursingAnonTypes;
+    ValueVectorOf<const XMLCh*>*      fRecursingTypeNames;
+    RefHashTableOf<DOMElement>*       fTopLevelComponents[C_Count];
+    DOMElement*                       fLastTopLevelComponent[C_Count];
+    ValueVectorOf<DOMNode*>*          fNonXSAttList;
+    ValidationContext*                fValidationContext;
+    MemoryManager*                    fMemoryManager;
+};
+
+// ---------------------------------------------------------------------------
+//  SchemaInfo: Getter methods
+// ---------------------------------------------------------------------------
+inline unsigned short SchemaInfo::getElemAttrDefaultQualified() const {
+
+    return fElemAttrDefaultQualified;
+}
+
+inline bool SchemaInfo::getProcessed() const {
+
+    return fProcessed;
+}
+
+inline int SchemaInfo::getBlockDefault() const {
+
+    return fBlockDefault;
+}
+
+inline int SchemaInfo::getFinalDefault() const {
+
+    return fFinalDefault;
+}
+
+inline unsigned int SchemaInfo::getNamespaceScopeLevel() const {
+    return fNamespaceScopeLevel;
+}
+
+inline XMLCh* SchemaInfo::getCurrentSchemaURL() const {
+
+    return fCurrentSchemaURL;
+}
+
+inline const XMLCh* const SchemaInfo::getTargetNSURIString() const {
+
+    return fTargetNSURIString;
+}
+
+inline const DOMElement* SchemaInfo::getRoot() const {
+
+    return fSchemaRootElement;
+}
+
+inline int SchemaInfo::getTargetNSURI() const {
+
+    return fTargetNSURI;
+}
+
+inline int SchemaInfo::getScopeCount() const {
+
+    return fScopeCount;
+}
+
+inline BaseRefVectorEnumerator<SchemaInfo>
+SchemaInfo::getImportingListEnumerator() const {
+
+    return BaseRefVectorEnumerator<SchemaInfo>(fImportingInfoList);
+}
+
+inline ValueVectorOf<const DOMElement*>*
+SchemaInfo::getRecursingAnonTypes() const {
+
+    return fRecursingAnonTypes;
+}
+
+
+inline ValueVectorOf<const XMLCh*>*
+SchemaInfo::getRecursingTypeNames() const {
+
+    return fRecursingTypeNames;
+}
+
+inline ValueVectorOf<DOMNode*>* SchemaInfo::getNonXSAttList() const
+{
+    return fNonXSAttList;
+}
+
+// ---------------------------------------------------------------------------
+//  Setter methods
+// ---------------------------------------------------------------------------
+inline void SchemaInfo::setScopeCount(const int aValue) {
+
+    fScopeCount = aValue;
+}
+
+inline void SchemaInfo::setBlockDefault(const int aValue) {
+
+    fBlockDefault = aValue;
+}
+
+inline void SchemaInfo::setFinalDefault(const int aValue) {
+
+    fFinalDefault = aValue;
+}
+
+inline void SchemaInfo::setElemAttrDefaultQualified(const unsigned short aValue) {
+
+    fElemAttrDefaultQualified = aValue;
+}
+
+inline void SchemaInfo::setProcessed(const bool aValue) {
+
+    fProcessed = aValue;
+
+/*    if (fProcessed && fIncludeInfoList) {
+
+        unsigned int includeListLen = fIncludeInfoList->size());
+        for (unsigned int i = 0; i < includeListLen; i++) {
+            fIncludeInfoList->elementAt(i)->clearTopLevelComponents();
+        }
+    }*/
+}
+
+// ---------------------------------------------------------------------------
+//  SchemaInfo: Access methods
+// ---------------------------------------------------------------------------
+inline void SchemaInfo::addImportedNS(const int namespaceURI) {
+
+    if (!fImportedNSList) {
+        fImportedNSList = new (fMemoryManager) ValueVectorOf<int>(4, fMemoryManager);
+    }
+
+    if (!fImportedNSList->containsElement(namespaceURI))
+        fImportedNSList->addElement(namespaceURI);
+}
+
+inline void SchemaInfo::addSchemaInfo(SchemaInfo* const toAdd,
+                                      const ListType aListType) {
+
+    if (aListType == IMPORT) {
+
+        if (!fImportedInfoList)
+            fImportedInfoList = new (fMemoryManager) RefVectorOf<SchemaInfo>(4, false, fMemoryManager);
+
+        if (!fImportedInfoList->containsElement(toAdd)) {
+
+            fImportedInfoList->addElement(toAdd);
+            addImportedNS(toAdd->getTargetNSURI());
+            toAdd->updateImportingInfo(this);
+        }
+    }
+    else {
+
+        if (!fIncludeInfoList) {
+
+            fIncludeInfoList = new (fMemoryManager) RefVectorOf<SchemaInfo>(8, false, fMemoryManager);
+            fAdoptInclude = true;
+        }
+
+        if (!fIncludeInfoList->containsElement(toAdd)) {
+
+		    fIncludeInfoList->addElement(toAdd);
+            toAdd->fIncludeInfoList = fIncludeInfoList;
+        }
+    }
+}
+
+inline SchemaInfo* SchemaInfo::getImportInfo(const unsigned int namespaceURI) const {
+
+    unsigned int importSize = (fImportedInfoList) ? fImportedInfoList->size() : 0;
+    SchemaInfo* currInfo = 0;
+
+    for (unsigned int i=0; i < importSize; i++) {
+
+        currInfo = fImportedInfoList->elementAt(i);
+
+        if (currInfo->getTargetNSURI() == (int) namespaceURI)
+            break;
+    }
+
+    return currInfo;
+}
+
+inline ValidationContext* SchemaInfo::getValidationContext() const {
+
+    return fValidationContext;
+}
+
+inline bool SchemaInfo::containsInfo(const SchemaInfo* const toCheck,
+                                     const ListType aListType) const {
+
+    if ((aListType == INCLUDE) && fIncludeInfoList) {
+        return fIncludeInfoList->containsElement(toCheck);
+    }
+    else if ((aListType == IMPORT) && fImportedInfoList) {
+        return fImportedInfoList->containsElement(toCheck);
+    }
+
+    return false;
+}
+
+inline bool SchemaInfo::circularImportExist(const unsigned int namespaceURI) {
+
+    unsigned int importSize = fImportingInfoList->size();
+
+    for (unsigned int i=0; i < importSize; i++) {
+        if (fImportingInfoList->elementAt(i)->getTargetNSURI() == (int) namespaceURI) {
+            return true;
+        }
+    }
+
+    return false;
+}
+
+inline bool SchemaInfo::isFailedRedefine(const DOMElement* const anElem) {
+
+    if (fFailedRedefineList)
+        return (fFailedRedefineList->containsElement(anElem));
+
+    return false;
+}
+
+inline void SchemaInfo::addFailedRedefine(const DOMElement* const anElem) {
+
+    if (!fFailedRedefineList) {
+        fFailedRedefineList = new (fMemoryManager) ValueVectorOf<const DOMElement*>(4, fMemoryManager);
+    }
+
+    fFailedRedefineList->addElement(anElem);
+}
+
+inline bool SchemaInfo::isImportingNS(const int namespaceURI) {
+
+    if (!fImportedNSList)
+        return false;
+
+    return (fImportedNSList->containsElement(namespaceURI));
+}
+
+inline void SchemaInfo::addRecursingType(const DOMElement* const elem,
+                                         const XMLCh* const name) {
+
+    if (!fRecursingAnonTypes) {
+        fRecursingAnonTypes = new (fMemoryManager) ValueVectorOf<const DOMElement*>(8, fMemoryManager);
+        fRecursingTypeNames = new (fMemoryManager) ValueVectorOf<const XMLCh*>(8, fMemoryManager);
+    }
+
+    fRecursingAnonTypes->addElement(elem);
+    fRecursingTypeNames->addElement(name);
+}
+
+inline void SchemaInfo::clearTopLevelComponents() {
+
+    for (unsigned int i = 0; i < C_Count; i++) {
+
+        delete fTopLevelComponents[i];
+        fTopLevelComponents[i] = 0;
+        fLastTopLevelComponent[i] = 0;
+    }
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
+
+/**
+  * End of file SchemaInfo.hpp
+  */
+
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/schema/TraverseSchema.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/schema/TraverseSchema.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/schema/TraverseSchema.hpp	(revision 2674)
@@ -0,0 +1,924 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#if !defined(TRAVERSESCHEMA_HPP)
+#define TRAVERSESCHEMA_HPP
+
+/**
+  * Instances of this class get delegated to Traverse the Schema and
+  * to populate the SchemaGrammar internal representation.
+  */
+
+// ---------------------------------------------------------------------------
+//  Includes
+// ---------------------------------------------------------------------------
+#include <xercesc/util/XMLUniDefs.hpp>
+#include <xercesc/dom/DOMElement.hpp>
+#include <xercesc/dom/DOMAttr.hpp>
+#include <xercesc/framework/XMLBuffer.hpp>
+#include <xercesc/framework/XMLErrorCodes.hpp>
+#include <xercesc/validators/schema/SchemaSymbols.hpp>
+#include <xercesc/util/ValueVectorOf.hpp>
+#include <xercesc/util/RefHash2KeysTableOf.hpp>
+#include <xercesc/validators/common/ContentSpecNode.hpp>
+#include <xercesc/validators/schema/SchemaGrammar.hpp>
+#include <xercesc/validators/schema/SchemaInfo.hpp>
+#include <xercesc/validators/schema/GeneralAttributeCheck.hpp>
+#include <xercesc/validators/schema/XSDErrorReporter.hpp>
+#include <xercesc/util/XMLResourceIdentifier.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+// ---------------------------------------------------------------------------
+//  Forward Declarations
+// ---------------------------------------------------------------------------
+class GrammarResolver;
+class XMLEntityHandler;
+class XMLScanner;
+class DatatypeValidator;
+class DatatypeValidatorFactory;
+class QName;
+class ComplexTypeInfo;
+class XMLAttDef;
+class NamespaceScope;
+class SchemaAttDef;
+class InputSource;
+class XercesGroupInfo;
+class XercesAttGroupInfo;
+class IdentityConstraint;
+class XSDLocator;
+class XSDDOMParser;
+class XMLErrorReporter;
+
+
+class VALIDATORS_EXPORT TraverseSchema : public XMemory
+{
+public:
+    // -----------------------------------------------------------------------
+    //  Public Constructors/Destructor
+    // -----------------------------------------------------------------------
+    TraverseSchema
+    (
+          DOMElement* const       schemaRoot
+        , XMLStringPool* const    uriStringPool
+        , SchemaGrammar* const    schemaGrammar
+        , GrammarResolver* const  grammarResolver
+        , XMLScanner* const       xmlScanner
+        , const XMLCh* const      schemaURL
+        , XMLEntityHandler* const entityHandler
+        , XMLErrorReporter* const errorReporter
+        , MemoryManager* const    manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    ~TraverseSchema();
+
+private:
+  	 // This enumeration is defined here for compatibility with the CodeWarrior
+  	 // compiler, which apparently doesn't like to accept default parameter
+  	 // arguments that it hasn't yet seen. The Not_All_Context argument is
+  	 // used in the declaration of checkMinMax, below.
+  	 //
+    // Flags indicate any special restrictions on minOccurs and maxOccurs
+    // relating to "all".
+    //    Not_All_Context    - not processing an <all>
+    //    All_Element        - processing an <element> in an <all>
+    //    Group_Ref_With_All - processing <group> reference that contained <all>
+    //    All_Group          - processing an <all> group itself
+    enum
+	{
+        Not_All_Context = 0
+        , All_Element = 1
+        , Group_Ref_With_All = 2
+        , All_Group = 4
+    };
+
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    TraverseSchema(const TraverseSchema&);
+    TraverseSchema& operator=(const TraverseSchema&);
+
+    // -----------------------------------------------------------------------
+    //  Init/CleanUp methods
+    // -----------------------------------------------------------------------
+    void init();
+    void cleanUp();
+
+    // -----------------------------------------------------------------------
+    //  Traversal methods
+    // -----------------------------------------------------------------------
+    /**
+      * Traverse the Schema DOM tree
+      */
+    void                doTraverseSchema(const DOMElement* const schemaRoot);
+    void                preprocessSchema(DOMElement* const schemaRoot,
+                                         const XMLCh* const schemaURL);
+    void                traverseSchemaHeader(const DOMElement* const schemaRoot);
+    XSAnnotation*       traverseAnnotationDecl(const DOMElement* const childElem,
+                                               ValueVectorOf<DOMNode*>* const nonXSAttList,
+                                               const bool topLevel = false);
+    void                traverseInclude(const DOMElement* const childElem);
+    void                traverseImport(const DOMElement* const childElem);
+    void                traverseRedefine(const DOMElement* const childElem);
+    void                traverseAttributeDecl(const DOMElement* const childElem,
+                                              ComplexTypeInfo* const typeInfo,
+                                              const bool topLevel = false);
+    void                traverseSimpleContentDecl(const XMLCh* const typeName,
+                                                  const XMLCh* const qualifiedName,
+                                                  const DOMElement* const contentDecl,
+                                                  ComplexTypeInfo* const typeInfo,
+                                                  Janitor<XSAnnotation>* const janAnnot);
+    void                traverseComplexContentDecl(const XMLCh* const typeName,
+                                                  const DOMElement* const contentDecl,
+                                                  ComplexTypeInfo* const typeInfo,
+                                                  const bool isMixed,
+                                                  Janitor<XSAnnotation>* const janAnnot);
+    DatatypeValidator*  traverseSimpleTypeDecl(const DOMElement* const childElem,
+                                               const bool topLevel = true,
+                                               int baseRefContext = SchemaSymbols::XSD_EMPTYSET);
+    int                 traverseComplexTypeDecl(const DOMElement* const childElem,
+                                                const bool topLevel = true,
+                                                const XMLCh* const recursingTypeName = 0);
+    DatatypeValidator*  traverseByList(const DOMElement* const rootElem,
+                                       const DOMElement* const contentElem,
+                                       const XMLCh* const typeName,
+                                       const XMLCh* const qualifiedName,
+                                       const int finalSet,
+                                       Janitor<XSAnnotation>* const janAnnot);
+    DatatypeValidator*  traverseByRestriction(const DOMElement* const rootElem,
+                                              const DOMElement* const contentElem,
+                                              const XMLCh* const typeName,
+                                              const XMLCh* const qualifiedName,
+                                              const int finalSet,
+                                              Janitor<XSAnnotation>* const janAnnot);
+    DatatypeValidator*  traverseByUnion(const DOMElement* const rootElem,
+                                        const DOMElement* const contentElem,
+                                        const XMLCh* const typeName,
+                                        const XMLCh* const qualifiedName,
+                                        const int finalSet,
+                                        int baseRefContext,
+                                        Janitor<XSAnnotation>* const janAnnot);
+    SchemaElementDecl*    traverseElementDecl(const DOMElement* const childElem,
+                                            const bool topLevel = false);
+    const XMLCh*        traverseNotationDecl(const DOMElement* const childElem);
+    const XMLCh*        traverseNotationDecl(const DOMElement* const childElem,
+                                             const XMLCh* const name,
+                                             const XMLCh* const uriStr);
+    ContentSpecNode*    traverseChoiceSequence(const DOMElement* const elemDecl,
+                                               const int modelGroupType);
+    ContentSpecNode*    traverseAny(const DOMElement* const anyDecl);
+    ContentSpecNode*    traverseAll(const DOMElement* const allElem);
+    XercesGroupInfo*    traverseGroupDecl(const DOMElement* const childElem,
+                                          const bool topLevel = true);
+    XercesAttGroupInfo* traverseAttributeGroupDecl(const DOMElement* const elem,
+                                                   ComplexTypeInfo* const typeInfo,
+                                                   const bool topLevel = false);
+    XercesAttGroupInfo* traverseAttributeGroupDeclNS(const DOMElement* const elem,
+                                                     const XMLCh* const uriStr,
+                                                     const XMLCh* const name);
+    SchemaAttDef*       traverseAnyAttribute(const DOMElement* const elem);
+    void                traverseKey(const DOMElement* const icElem,
+                                    SchemaElementDecl* const elemDecl);
+    void                traverseUnique(const DOMElement* const icElem,
+                                       SchemaElementDecl* const elemDecl);
+    void                traverseKeyRef(const DOMElement* const icElem,
+                                       SchemaElementDecl* const elemDecl,
+                                       const unsigned int namespaceDepth);
+    bool                traverseIdentityConstraint(IdentityConstraint* const ic,
+                                                   const DOMElement* const icElem);
+
+    // -----------------------------------------------------------------------
+    //  Error Reporting methods
+    // -----------------------------------------------------------------------
+    void reportSchemaError(const XSDLocator* const aLocator,
+                           const XMLCh* const msgDomain,
+                           const int errorCode);
+    void reportSchemaError(const XSDLocator* const aLocator,
+                           const XMLCh* const msgDomain,
+                           const int errorCode,
+                           const XMLCh* const text1,
+                           const XMLCh* const text2 = 0,
+                           const XMLCh* const text3 = 0,
+                           const XMLCh* const text4 = 0);
+    void reportSchemaError(const DOMElement* const elem,
+                           const XMLCh* const msgDomain,
+                           const int errorCode);
+    void reportSchemaError(const DOMElement* const elem,
+                           const XMLCh* const msgDomain,
+                           const int errorCode,
+                           const XMLCh* const text1,
+                           const XMLCh* const text2 = 0,
+                           const XMLCh* const text3 = 0,
+                           const XMLCh* const text4 = 0);
+    void reportSchemaError(const DOMElement* const elem,
+                           const XMLException&     except);
+
+    // -----------------------------------------------------------------------
+    //  Private Helper methods
+    // -----------------------------------------------------------------------
+    /**
+      * Retrived the Namespace mapping from the schema element
+      */
+    void retrieveNamespaceMapping(const DOMElement* const schemaRoot);
+
+    /**
+      * Loop through the children, and traverse the corresponding schema type
+      * type declaration (simpleType, complexType, import, ....)
+      */
+    void processChildren(const DOMElement* const root);
+    void preprocessChildren(const DOMElement* const root);
+
+    void preprocessImport(const DOMElement* const elemNode);
+    void preprocessInclude(const DOMElement* const elemNode);
+    void preprocessRedefine(const DOMElement* const elemNode);
+
+    /**
+      * Parameters:
+      *   rootElem - top element for a given type declaration
+      *   contentElem - content must be annotation? or some other simple content
+      *   isEmpty: - true if (annotation?, smth_else), false if (annotation?)
+      *   processAnnot - default is true, false if reprocessing a complex type
+      *                  since we have already processed the annotation.
+      *
+      * Check for Annotation if it is present, traverse it. If a sibling is
+      * found and it is not an annotation return it, otherwise return 0.
+      * Used by traverseSimpleTypeDecl.
+      */
+    DOMElement* checkContent(const DOMElement* const rootElem,
+                               DOMElement* const contentElem,
+                               const bool isEmpty, bool processAnnot = true);
+
+    /**
+      * Parameters:
+      *   contentElem - content element to check
+      *
+      * Check for identity constraints content.
+      */
+    const DOMElement* checkIdentityConstraintContent(const DOMElement* const contentElem);
+
+    DatatypeValidator* getDatatypeValidator(const XMLCh* const uriStr,
+                                            const XMLCh* const localPartStr);
+
+    /**
+      * Process simpleType content of a list|restriction|union
+      * Return a dataype validator if valid type, otherwise 0.
+      */
+    DatatypeValidator* checkForSimpleTypeValidator(const DOMElement* const content,
+                                                   int baseRefContext = SchemaSymbols::XSD_EMPTYSET);
+
+    /**
+      * Process complexType content of an element
+      * Return a ComplexTypeInfo if valid type, otherwise 0.
+      */
+    ComplexTypeInfo* checkForComplexTypeInfo(const DOMElement* const content);
+
+    /**
+      * Return DatatypeValidator available for the baseTypeStr.
+      */
+    DatatypeValidator* findDTValidator(const DOMElement* const elem,
+                                       const XMLCh* const derivedTypeName,
+                                       const XMLCh* const baseTypeName,
+                                       const int baseRefContext);
+
+    const XMLCh* resolvePrefixToURI(const DOMElement* const elem,
+                                    const XMLCh* const prefix);
+    const XMLCh* resolvePrefixToURI(const DOMElement* const elem,
+                                    const XMLCh* const prefix,
+                                    const unsigned int namespaceDepth);
+
+    /**
+      * Return the prefix for a given rawname string
+      *
+      * Function allocated, caller managed (facm) - pointer to be deleted by
+      * caller.
+      */
+    const XMLCh* getPrefix(const XMLCh* const rawName);
+
+    /**
+      * Return the local for a given rawname string
+      *
+      * caller allocated, caller managed (cacm)
+      */
+    const XMLCh* getLocalPart(const XMLCh* const rawName);
+
+    /**
+      * Process a 'ref' of an Element declaration
+      */
+    SchemaElementDecl* processElementDeclRef(const DOMElement* const elem,
+                                             const XMLCh* const refName);
+    void processElemDeclAttrs(const DOMElement* const elem,
+                              SchemaElementDecl* const elemDecl,
+                              const XMLCh*& valConstraint,
+                              bool isTopLevel = false);
+    void processElemDeclIC(DOMElement* const elem,
+                           SchemaElementDecl* const elemDecl);
+    bool checkElemDeclValueConstraint(const DOMElement* const elem,
+                                      SchemaElementDecl* const elemDecl,
+                                      const XMLCh* const valConstraint,
+                                      ComplexTypeInfo* const typeInfo,
+                                      DatatypeValidator* const validator);
+
+    /**
+      * Process a 'ref' of an Attribute declaration
+      */
+    void processAttributeDeclRef(const DOMElement* const elem,
+                                 ComplexTypeInfo* const typeInfo,
+                                 const XMLCh* const refName,
+                                 const XMLCh* const useVal,
+                                 const XMLCh* const defaultVal,
+                                 const XMLCh* const fixedVal);
+
+    /**
+      * Process a 'ref' on a group
+      */
+    XercesGroupInfo* processGroupRef(const DOMElement* const elem,
+                                     const XMLCh* const refName);
+
+    /**
+      * Process a 'ref' on a attributeGroup
+      */
+    XercesAttGroupInfo* processAttributeGroupRef(const DOMElement* const elem,
+                                                 const XMLCh* const refName,
+                                                 ComplexTypeInfo* const typeInfo);
+
+    /**
+      * Parse block & final items
+      */
+    int parseBlockSet(const DOMElement* const elem, const int blockType, const bool isRoot = false);
+    int parseFinalSet(const DOMElement* const elem, const int finalType, const bool isRoot = false);
+
+    /**
+      * Return true if a name is an identity constraint, otherwise false
+      */
+    bool isIdentityConstraintName(const XMLCh* const constraintName);
+
+    /**
+      * If 'typeStr' belongs to a different schema, return that schema URI,
+      * otherwise return 0;
+      */
+    const XMLCh* checkTypeFromAnotherSchema(const DOMElement* const elem,
+                                            const XMLCh* const typeStr);
+
+    /**
+      * Return the datatype validator for a given element type attribute if
+      * the type is a simple type
+      */
+    DatatypeValidator* getElementTypeValidator(const DOMElement* const elem,
+                                               const XMLCh* const typeStr,
+                                               bool& noErrorDetected,
+                                               const XMLCh* const otherSchemaURI);
+
+    /**
+      * Return the complexType info for a given element type attribute if
+      * the type is a complex type
+      */
+    ComplexTypeInfo* getElementComplexTypeInfo(const DOMElement* const elem,
+                                               const XMLCh* const typeStr,                                               
+                                               const XMLCh* const otherSchemaURI);
+
+    /**
+      * Return global schema element declaration for a given element name
+      */
+    SchemaElementDecl* getGlobalElemDecl(const DOMElement* const elem,
+                                         const XMLCh* const name);
+
+    /**
+      * Check validity constraint of a substitutionGroup attribute in
+      * an element declaration
+      */
+    bool isSubstitutionGroupValid(const DOMElement* const elem,
+                                  const SchemaElementDecl* const elemDecl,
+                                  const ComplexTypeInfo* const typeInfo,
+                                  const DatatypeValidator* const validator,
+                                  const XMLCh* const elemName,
+                                  const bool toEmit = true);
+
+    bool isSubstitutionGroupCircular(SchemaElementDecl* const elemDecl,
+                                     SchemaElementDecl* const subsElemDecl);
+
+    void processSubstitutionGroup(const DOMElement* const elem,
+                                  SchemaElementDecl* const elemDecl,
+                                  ComplexTypeInfo*& typeInfo,
+                                  DatatypeValidator*& validator,
+                                  const XMLCh* const subsElemQName);
+
+    /**
+      * Create a 'SchemaElementDecl' object and add it to SchemaGrammar
+      */
+    SchemaElementDecl* createSchemaElementDecl(const DOMElement* const elem,
+                                               const XMLCh* const name,
+                                               bool& isDuplicate,
+                                               const XMLCh*& valConstraint,
+                                               const bool topLevel);
+
+    /**
+      * Return the value of a given attribute name from an element node
+      */
+    const XMLCh* getElementAttValue(const DOMElement* const elem,
+                                    const XMLCh* const attName,
+                                    const bool toTrim = false);
+
+    void checkMinMax(ContentSpecNode* const specNode,
+                     const DOMElement* const elem,
+                     const int allContext = Not_All_Context);
+
+    /**
+      * Process complex content for a complexType
+      */
+    void processComplexContent(const DOMElement* const elem,
+                               const XMLCh* const typeName,
+                               const DOMElement* const childElem,
+                               ComplexTypeInfo* const typeInfo,                               
+                               const XMLCh* const baseLocalPart,                               
+                               const bool isMixed,
+                               const bool isBaseAnyType = false);
+
+    /**
+      * Process "base" information for a complexType
+      */
+    void processBaseTypeInfo(const DOMElement* const elem,
+                             const XMLCh* const baseName,
+                             const XMLCh* const localPart,
+                             const XMLCh* const uriStr,
+                             ComplexTypeInfo* const typeInfo);
+
+    /**
+      * Check if base is from another schema
+      */
+    bool isBaseFromAnotherSchema(const XMLCh* const baseURI);
+
+    /**
+      * Get complexType infp from another schema
+      */
+    ComplexTypeInfo* getTypeInfoFromNS(const DOMElement* const elem,
+                                       const XMLCh* const uriStr,
+                                       const XMLCh* const localPart);
+
+    DatatypeValidator*
+    getAttrDatatypeValidatorNS(const DOMElement* const elem,
+                               const XMLCh* localPart,
+                               const XMLCh* typeURI);
+
+    /**
+      * Returns true if a DOM Element is an attribute or attribute group
+      */
+    bool isAttrOrAttrGroup(const DOMElement* const elem);
+
+    /**
+      * Process attributes of a complex type
+      */
+    void processAttributes(const DOMElement* const elem,
+                           const DOMElement* const attElem,                           
+                           ComplexTypeInfo* const typeInfo,
+                           const bool isBaseAnyType = false);
+
+    /**
+      * Generate a name for an anonymous type
+      */
+    const XMLCh* genAnonTypeName(const XMLCh* const prefix);
+
+    void defaultComplexTypeInfo(ComplexTypeInfo* const typeInfo);
+
+    /**
+      * Resolve a schema location attribute value to an input source.
+      * Caller to delete the returned object.
+      */
+    InputSource* resolveSchemaLocation
+    (
+        const XMLCh* const loc
+        , const XMLResourceIdentifier::ResourceIdentifierType resourceIdentitiferType
+        , const XMLCh* const nameSpace=0
+    );
+
+    void restoreSchemaInfo(SchemaInfo* const toRestore,
+                           SchemaInfo::ListType const aListType = SchemaInfo::INCLUDE,
+                           const int saveScope = Grammar::TOP_LEVEL_SCOPE);
+    void  popCurrentTypeNameStack();
+
+    /**
+      * Check whether a mixed content is emptiable or not.
+      * Needed to validate element constraint values (defualt, fixed)
+      */
+    bool emptiableParticle(const ContentSpecNode* const specNode);
+
+    void checkFixedFacet(const DOMElement* const, const XMLCh* const,
+                         const DatatypeValidator* const, unsigned int&);
+    void buildValidSubstitutionListF(const DOMElement* const elem,
+                                     SchemaElementDecl* const,
+                                     SchemaElementDecl* const);
+    void buildValidSubstitutionListB(const DOMElement* const elem,
+                                     SchemaElementDecl* const,
+                                     SchemaElementDecl* const);
+
+    void checkEnumerationRequiredNotation(const DOMElement* const elem,
+                                          const XMLCh* const name,
+                                          const XMLCh* const typeStr);
+
+    void processElements(const DOMElement* const elem,
+                         ComplexTypeInfo* const baseTypeInfo,
+                         ComplexTypeInfo* const newTypeInfo);
+
+    void processElements(const DOMElement* const elem,
+                         XercesGroupInfo* const fromGroup,
+                         ComplexTypeInfo* const typeInfo);
+
+    void copyGroupElements(const DOMElement* const elem,
+                           XercesGroupInfo* const fromGroup,
+                           XercesGroupInfo* const toGroup,
+                           ComplexTypeInfo* const typeInfo);
+
+    void copyAttGroupAttributes(const DOMElement* const elem,
+                                XercesAttGroupInfo* const fromAttGroup,
+                                XercesAttGroupInfo* const toAttGroup,
+                                ComplexTypeInfo* const typeInfo);
+
+    void checkForEmptyTargetNamespace(const DOMElement* const elem);
+
+    /**
+      * Attribute wild card intersection.
+      *
+      * Note:
+      *    The first parameter will be the result of the intersection, so
+      *    we need to make sure that first parameter is a copy of the
+      *    actual attribute definition we need to intersect with.
+      *
+      *    What we need to wory about is: type, defaultType, namespace,
+      *    and URI. All remaining data members should be the same.
+      */
+    void attWildCardIntersection(SchemaAttDef* const resultWildCart,
+                                 const SchemaAttDef* const toCompareWildCard);
+
+    /**
+      * Attribute wild card union.
+      *
+      * Note:
+      *    The first parameter will be the result of the union, so
+      *    we need to make sure that first parameter is a copy of the
+      *    actual attribute definition we need to intersect with.
+      *
+      *    What we need to wory about is: type, defaultType, namespace,
+      *    and URI. All remaining data members should be the same.
+      */
+    void attWildCardUnion(SchemaAttDef* const resultWildCart,
+                          const SchemaAttDef* const toCompareWildCard);
+
+    void copyWildCardData(const SchemaAttDef* const srcWildCard,
+                          SchemaAttDef* const destWildCard);
+
+    /**
+      * Check that the attributes of a type derived by restriction satisfy
+      * the constraints of derivation valid restriction
+      */
+    void checkAttDerivationOK(const DOMElement* const elem,
+                              const ComplexTypeInfo* const baseTypeInfo,
+                              const ComplexTypeInfo* const childTypeInfo);
+    void checkAttDerivationOK(const DOMElement* const elem,
+                              const XercesAttGroupInfo* const baseAttGrpInfo,
+                              const XercesAttGroupInfo* const childAttGrpInfo);
+
+    /**
+      * Check whether a namespace value is valid with respect to wildcard
+      * constraint
+      */
+    bool wildcardAllowsNamespace(const SchemaAttDef* const baseAttWildCard,
+                                 const unsigned int nameURI);
+
+    /**
+      * Check whether a namespace constraint is an intensional subset of
+      * another namespace constraint
+      */
+    bool isWildCardSubset(const SchemaAttDef* const baseAttWildCard,
+                          const SchemaAttDef* const childAttWildCard);
+
+    bool openRedefinedSchema(const DOMElement* const redefineElem);
+
+    /**
+      * The purpose of this method is twofold:
+      * 1. To find and appropriately modify all information items
+      * in redefinedSchema with names that are redefined by children of
+      * redefineElem.
+      * 2.  To make sure the redefine element represented by
+      * redefineElem is valid as far as content goes and with regard to
+      * properly referencing components to be redefined.
+      *
+      *	No traversing is done here!
+      * This method also takes actions to find and, if necessary, modify
+      * the names of elements in <redefine>'s in the schema that's being
+      * redefined.
+      */
+    void renameRedefinedComponents(const DOMElement* const redefineElem,
+                                   SchemaInfo* const redefiningSchemaInfo,
+                                   SchemaInfo* const redefinedSchemaInfo);
+
+    /**
+      * This method returns true if the redefine component is valid, and if
+      * it was possible to revise it correctly.
+      */
+    bool validateRedefineNameChange(const DOMElement* const redefineChildElem,
+                                    const XMLCh* const redefineChildElemName,
+                                    const XMLCh* const redefineChildDeclName,
+                                    const int redefineNameCounter,
+                                    SchemaInfo* const redefiningSchemaInfo);
+
+	/**
+      * This function looks among the children of 'redefineChildElem' for a
+      * component of type 'redefineChildComponentName'. If it finds one, it
+      * evaluates whether its ref attribute contains a reference to
+      * 'refChildTypeName'. If it does, it returns 1 + the value returned by
+      * calls to itself on all other children.  In all other cases it returns
+      * 0 plus the sum of the values returned by calls to itself on
+      * redefineChildElem's children. It also resets the value of ref so that
+      * it will refer to the renamed type from the schema being redefined.
+      */
+    int changeRedefineGroup(const DOMElement* const redefineChildElem,
+                            const XMLCh* const redefineChildComponentName,
+                            const XMLCh* const redefineChildTypeName,
+                            const int redefineNameCounter);
+
+    /** This simple function looks for the first occurrence of a
+      * 'redefineChildTypeName' item in the redefined schema and appropriately
+      * changes the value of its name. If it turns out that what we're looking
+      * for is in a <redefine> though, then we just rename it--and it's
+      * reference--to be the same.
+      */
+    void fixRedefinedSchema(const DOMElement* const elem,
+                            SchemaInfo* const redefinedSchemaInfo,
+                            const XMLCh* const redefineChildComponentName,
+                            const XMLCh* const redefineChildTypeName,
+                            const int redefineNameCounter);
+
+    void getRedefineNewTypeName(const XMLCh* const oldTypeName,
+                                const int redefineCounter,
+                                XMLBuffer& newTypeName);
+
+    /**
+      * This purpose of this method is threefold:
+      * 1. To extract the schema information of included/redefined schema.
+      * 2. Rename redefined components.
+      * 3. Process components of included/redefined schemas
+      */
+    void preprocessRedefineInclude(SchemaInfo* const currSchemaInfo);
+
+    /**
+      * Update the list of valid substitution groups in the case of circular
+      * import.
+      */
+    void updateCircularSubstitutionList(SchemaInfo* const aSchemaInfo);
+
+    void processKeyRefFor(SchemaInfo* const aSchemaInfo,
+                          ValueVectorOf<SchemaInfo*>* const infoList);
+
+    void processAttValue(const XMLCh* const attVal, XMLBuffer& aBuf);
+
+    // routine to generate synthetic annotations
+    XSAnnotation* generateSyntheticAnnotation(const DOMElement* const elem
+                                             , ValueVectorOf<DOMNode*>* nonXSAttList);
+
+    // routine to validate annotations
+    void validateAnnotations();
+
+    // -----------------------------------------------------------------------
+    //  Private constants
+    // -----------------------------------------------------------------------
+    enum
+    {
+        ES_Block
+        , C_Block
+        , S_Final
+        , EC_Final
+        , ECS_Final
+    };
+
+    enum ExceptionCodes
+    {
+        NoException = 0,
+        InvalidComplexTypeInfo = 1,
+        RecursingElement = 2
+    };
+
+    enum
+    {
+        Elem_Def_Qualified = 1,
+        Attr_Def_Qualified = 2
+    };
+
+    // -----------------------------------------------------------------------
+    //  Private data members
+    // -----------------------------------------------------------------------
+    bool                                           fFullConstraintChecking;
+    int                                            fTargetNSURI;
+    int                                            fEmptyNamespaceURI;
+    int                                            fCurrentScope;
+    int                                            fScopeCount;
+    unsigned int                                   fAnonXSTypeCount;
+    unsigned int                                   fCircularCheckIndex;
+    const XMLCh*                                   fTargetNSURIString;
+    DatatypeValidatorFactory*                      fDatatypeRegistry;
+    GrammarResolver*                               fGrammarResolver;
+    SchemaGrammar*                                 fSchemaGrammar;
+    XMLEntityHandler*                              fEntityHandler;
+    XMLErrorReporter*                              fErrorReporter;
+    XMLStringPool*                                 fURIStringPool;
+    XMLStringPool*                                 fStringPool;
+    XMLBuffer                                      fBuffer;
+    XMLScanner*                                    fScanner;
+    NamespaceScope*                                fNamespaceScope;
+    RefHashTableOf<XMLAttDef>*                     fAttributeDeclRegistry;
+    RefHashTableOf<ComplexTypeInfo>*               fComplexTypeRegistry;
+    RefHashTableOf<XercesGroupInfo>*               fGroupRegistry;
+    RefHashTableOf<XercesAttGroupInfo>*            fAttGroupRegistry;
+    RefHashTableOf<ElemVector>*                    fIC_ElementsNS;
+    RefHashTableOf<SchemaInfo>*                    fPreprocessedNodes;
+    SchemaInfo*                                    fSchemaInfo;
+    XercesGroupInfo*                               fCurrentGroupInfo;
+    XercesAttGroupInfo*                            fCurrentAttGroupInfo;
+    ComplexTypeInfo*                               fCurrentComplexType;
+    ValueVectorOf<unsigned int>*                   fCurrentTypeNameStack;
+    ValueVectorOf<unsigned int>*                   fCurrentGroupStack;
+    ValueVectorOf<unsigned int>*                   fIC_NamespaceDepth;
+    ValueVectorOf<SchemaElementDecl*>*             fIC_Elements;
+    ValueVectorOf<const DOMElement*>*              fDeclStack;
+    ValueVectorOf<unsigned int>**                  fGlobalDeclarations;
+    ValueVectorOf<DOMNode*>*                       fNonXSAttList;
+    RefHashTableOf<ValueVectorOf<DOMElement*> >*   fIC_NodeListNS;
+    RefHashTableOf<ValueVectorOf<unsigned int> >*  fIC_NamespaceDepthNS;
+    RefHash2KeysTableOf<XMLCh>*                    fNotationRegistry;
+    RefHash2KeysTableOf<XMLCh>*                    fRedefineComponents;
+    RefHash2KeysTableOf<IdentityConstraint>*       fIdentityConstraintNames;
+    RefHash2KeysTableOf<ElemVector>*               fValidSubstitutionGroups;
+    RefHash2KeysTableOf<SchemaInfo>*               fSchemaInfoList;
+    XSDDOMParser*                                  fParser;
+    XSDErrorReporter                               fXSDErrorReporter;
+    XSDLocator*                                    fLocator;
+    MemoryManager*                                 fMemoryManager;
+    MemoryManager*                                 fGrammarPoolMemoryManager;
+    XSAnnotation*                                  fAnnotation;
+    GeneralAttributeCheck                          fAttributeCheck;
+
+    friend class GeneralAttributeCheck;
+};
+
+
+// ---------------------------------------------------------------------------
+//  TraverseSchema: Helper methods
+// ---------------------------------------------------------------------------
+inline const XMLCh* TraverseSchema::getPrefix(const XMLCh* const rawName) {
+
+    int colonIndex = XMLString::indexOf(rawName, chColon);
+
+    if (colonIndex == -1 || colonIndex == 0) {
+        return XMLUni::fgZeroLenString;
+    }
+
+    fBuffer.set(rawName, colonIndex);
+
+    return fStringPool->getValueForId(fStringPool->addOrFind(fBuffer.getRawBuffer()));
+}
+
+inline const XMLCh* TraverseSchema::getLocalPart(const XMLCh* const rawName) {
+
+    int    colonIndex = XMLString::indexOf(rawName, chColon);
+    int    rawNameLen = XMLString::stringLen(rawName);
+
+    if (colonIndex + 1 == rawNameLen) {
+        return XMLUni::fgZeroLenString;
+    }
+
+    if (colonIndex == -1) {
+        fBuffer.set(rawName, rawNameLen);
+    }
+    else {
+
+        fBuffer.set(rawName + colonIndex + 1, rawNameLen - colonIndex - 1);
+    }
+
+    return fStringPool->getValueForId(fStringPool->addOrFind(fBuffer.getRawBuffer()));
+}
+
+inline
+const XMLCh* TraverseSchema::getElementAttValue(const DOMElement* const elem,
+                                                const XMLCh* const attName,
+                                                const bool toTrim) {
+
+    DOMAttr* attNode = elem->getAttributeNode(attName);
+
+    if (attNode == 0) {
+        return 0;
+    }
+
+    const XMLCh* attValue = attNode->getValue();
+
+    if (toTrim) {
+
+        fBuffer.set(attValue);
+        XMLCh* bufValue = fBuffer.getRawBuffer();
+        XMLString::trim(bufValue);
+
+        if (!bufValue || !*bufValue) {
+            return XMLUni::fgZeroLenString;
+        }
+
+        return fStringPool->getValueForId(fStringPool->addOrFind(bufValue));
+    }
+
+    return attValue;
+}
+
+inline void
+TraverseSchema::checkForEmptyTargetNamespace(const DOMElement* const elem) {
+
+    const XMLCh* targetNS = getElementAttValue(elem, SchemaSymbols::fgATT_TARGETNAMESPACE);
+
+    if (targetNS && !*targetNS) {
+        reportSchemaError(elem, XMLUni::fgXMLErrDomain, XMLErrs::InvalidTargetNSValue);
+    }
+}
+
+inline bool TraverseSchema::isBaseFromAnotherSchema(const XMLCh* const baseURI)
+{
+    if (!XMLString::equals(baseURI,fTargetNSURIString)
+        && !XMLString::equals(baseURI, SchemaSymbols::fgURI_SCHEMAFORSCHEMA)
+        && (baseURI && *baseURI)) {
+        //REVISIT, !!!! a hack: for schema that has no
+        //target namespace, e.g. personal-schema.xml
+        return true;
+    }
+
+    return false;
+}
+
+inline bool TraverseSchema::isAttrOrAttrGroup(const DOMElement* const elem) {
+
+    const XMLCh* elementName = elem->getLocalName();
+
+    if (XMLString::equals(elementName, SchemaSymbols::fgELT_ATTRIBUTE) ||
+        XMLString::equals(elementName, SchemaSymbols::fgELT_ATTRIBUTEGROUP) ||
+        XMLString::equals(elementName, SchemaSymbols::fgELT_ANYATTRIBUTE)) {
+        return true;
+    }
+
+    return false;
+}
+
+inline const XMLCh* TraverseSchema::genAnonTypeName(const XMLCh* const prefix) {
+
+    XMLCh anonCountStr[16]; // a count of 15 digits should be enough
+
+    XMLString::binToText(fAnonXSTypeCount++, anonCountStr, 15, 10, fMemoryManager);
+    fBuffer.set(prefix);
+    fBuffer.append(anonCountStr);
+
+    return fStringPool->getValueForId(fStringPool->addOrFind(fBuffer.getRawBuffer()));
+}
+
+inline void TraverseSchema::popCurrentTypeNameStack() {
+
+    unsigned int stackSize = fCurrentTypeNameStack->size();
+
+    if (stackSize != 0) {
+        fCurrentTypeNameStack->removeElementAt(stackSize - 1);
+    }
+}
+
+inline void
+TraverseSchema::copyWildCardData(const SchemaAttDef* const srcWildCard,
+                                 SchemaAttDef* const destWildCard) {
+
+    destWildCard->getAttName()->setURI(srcWildCard->getAttName()->getURI());
+    destWildCard->setType(srcWildCard->getType());
+    destWildCard->setDefaultType(srcWildCard->getDefaultType());
+}
+
+inline void TraverseSchema::getRedefineNewTypeName(const XMLCh* const oldTypeName,
+                                                   const int redefineCounter,
+                                                   XMLBuffer& newTypeName) {
+
+    newTypeName.set(oldTypeName);
+
+    for (int i=0; i < redefineCounter; i++) {
+        newTypeName.append(SchemaSymbols::fgRedefIdentifier);
+    }
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
+
+/**
+  * End of file TraverseSchema.hpp
+  */
+
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/schema/XercesElementWildcard.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/schema/XercesElementWildcard.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/schema/XercesElementWildcard.hpp	(revision 2674)
@@ -0,0 +1,82 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: XercesElementWildcard.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+#if !defined(XERCESELEMENTWILDCARD_HPP)
+#define XERCESELEMENTWILDCARD_HPP
+
+#include <xercesc/util/QName.hpp>
+#include <xercesc/validators/common/ContentSpecNode.hpp>
+#include <xercesc/validators/schema/SubstitutionGroupComparator.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+// ---------------------------------------------------------------------------
+//  Forward declarations
+// ---------------------------------------------------------------------------
+class SchemaGrammar;
+
+
+class VALIDATORS_EXPORT XercesElementWildcard
+{
+
+public :
+
+    // -----------------------------------------------------------------------
+    //  Class static methods
+    // -----------------------------------------------------------------------
+    /*
+     * check whether two elements are in conflict
+     */
+    static bool conflict(SchemaGrammar* const         pGrammar,
+                         ContentSpecNode::NodeTypes   type1,
+                         QName*                       q1,
+                         ContentSpecNode::NodeTypes   type2,
+                         QName*                       q2,
+                         SubstitutionGroupComparator* comparator);
+
+private:
+
+    // -----------------------------------------------------------------------
+    //  private helper methods
+    // -----------------------------------------------------------------------
+    static bool uriInWildcard(SchemaGrammar* const         pGrammar,
+                              QName*                       qname,
+                              unsigned int                 wildcard,
+                              ContentSpecNode::NodeTypes   wtype,
+                              SubstitutionGroupComparator* comparator);
+
+    static bool wildcardIntersect(ContentSpecNode::NodeTypes t1,
+                                  unsigned int               w1,
+                                  ContentSpecNode::NodeTypes t2,
+                                  unsigned int               w2);
+
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    XercesElementWildcard();
+    ~XercesElementWildcard();
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif // XERCESELEMENTWILDCARD_HPP
+
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/schema/SubstitutionGroupComparator.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/schema/SubstitutionGroupComparator.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/schema/SubstitutionGroupComparator.hpp	(revision 2674)
@@ -0,0 +1,126 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: SubstitutionGroupComparator.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(SUBSTITUTIONGROUPCOMPARATOR_HPP)
+#define SUBSTITUTIONGROUPCOMPARATOR_HPP
+
+#include <xercesc/util/StringPool.hpp>
+#include <xercesc/util/QName.hpp>
+#include <xercesc/validators/common/GrammarResolver.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class SchemaGrammar;
+
+class VALIDATORS_EXPORT SubstitutionGroupComparator : public XMemory
+{
+public:
+
+    // -----------------------------------------------------------------------
+    //  Public Constructor
+    // -----------------------------------------------------------------------
+    /** @name Constructor. */
+    //@{
+
+    SubstitutionGroupComparator(GrammarResolver*  const pGrammarResolver
+                              , XMLStringPool*    const pStringPool);
+
+
+    //@}
+
+    // -----------------------------------------------------------------------
+    //  Public Destructor
+    // -----------------------------------------------------------------------
+    /** @name Destructor. */
+    //@{
+
+    ~SubstitutionGroupComparator();
+
+    //@}
+
+    // -----------------------------------------------------------------------
+    // Validation methods
+    // -----------------------------------------------------------------------
+    /** @name Validation Function */
+    //@{
+
+    /**
+	   * Checks that the "anElement" is within the subsitution group.
+	   *
+	   * @param  anElement   QName of the element
+	   *
+	   * @param  exeplar     QName of the head element in the group
+	   */
+    bool isEquivalentTo(QName* const anElement
+                       , QName* const exemplar);
+	 //@}
+
+    /*
+     * check whether one element or any element in its substitution group
+     * is allowed by a given wildcard uri
+     *
+     * @param pGrammar the grammar where the wildcard is declared
+     * @param element  the QName of a given element
+     * @param wuri     the uri of the wildcard
+     * @param wother   whether the uri is from ##other, so wuri is excluded
+     *
+     * @return whether the element is allowed by the wildcard
+     */
+    bool isAllowedByWildcard(SchemaGrammar* const pGrammar, QName* const element, unsigned int wuri, bool wother);
+
+private:
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    SubstitutionGroupComparator();
+    SubstitutionGroupComparator(const SubstitutionGroupComparator&);
+    SubstitutionGroupComparator& operator=(const SubstitutionGroupComparator&);
+    
+    // -----------------------------------------------------------------------
+    //  Private data members
+    //
+    //
+    // -----------------------------------------------------------------------
+    GrammarResolver     *fGrammarResolver;
+    XMLStringPool       *fStringPool;
+};
+
+
+// ---------------------------------------------------------------------------
+//  SubstitutionGroupComparator: Getters
+// ---------------------------------------------------------------------------
+inline SubstitutionGroupComparator::SubstitutionGroupComparator(GrammarResolver*  const pGrammarResolver
+                                                              , XMLStringPool*    const pStringPool)
+:fGrammarResolver(pGrammarResolver)
+,fStringPool(pStringPool)
+{}
+
+inline SubstitutionGroupComparator::~SubstitutionGroupComparator()
+{}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
+
+/**
+  * End of file SubstitutionGroupComparator.hpp
+  */
+
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/schema/XSDLocator.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/schema/XSDLocator.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/schema/XSDLocator.hpp	(revision 2674)
@@ -0,0 +1,142 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: XSDLocator.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+/**
+  * A Locator implementation
+  */
+
+#ifndef XSDLOCATOR_HPP
+#define XSDLOCATOR_HPP
+
+#include <xercesc/util/XMemory.hpp>
+#include <xercesc/sax/Locator.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class VALIDATORS_EXPORT XSDLocator: public XMemory, public Locator
+{
+public:
+
+    /** @name Constructors and Destructor */
+    //@{
+    /** Default constructor */
+    XSDLocator();
+
+    /** Destructor */
+    virtual ~XSDLocator()
+    {
+    }
+
+    //@}
+
+    /** @name The locator interface */
+    //@{
+  /**
+    * Return the public identifier for the current document event.
+    * <p>This will be the public identifier
+    * @return A string containing the public identifier, or
+    *         null if none is available.
+    * @see #getSystemId
+    */
+    virtual const XMLCh* getPublicId() const;
+
+  /**
+    * Return the system identifier for the current document event.
+    *
+    * <p>If the system identifier is a URL, the parser must resolve it
+    * fully before passing it to the application.</p>
+    *
+    * @return A string containing the system identifier, or null
+    *         if none is available.
+    * @see #getPublicId
+    */
+    virtual const XMLCh* getSystemId() const;
+
+  /**
+    * Return the line number where the current document event ends.
+    * Note that this is the line position of the first character
+    * after the text associated with the document event.
+    * @return The line number, or -1 if none is available.
+    * @see #getColumnNumber
+    */
+    virtual XMLSSize_t getLineNumber() const;
+
+  /**
+    * Return the column number where the current document event ends.
+    * Note that this is the column number of the first
+    * character after the text associated with the document
+    * event.  The first column in a line is position 1.
+    * @return The column number, or -1 if none is available.
+    * @see #getLineNumber
+    */
+    virtual XMLSSize_t getColumnNumber() const;
+    //@}
+
+    // -----------------------------------------------------------------------
+    //  Setter methods
+    // -----------------------------------------------------------------------
+    void setValues(const XMLCh* const systemId,
+                   const XMLCh* const publicId,
+                   const XMLSSize_t lineNo, const XMLSSize_t columnNo);
+
+private :
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and destructor
+    // -----------------------------------------------------------------------
+    XSDLocator(const XSDLocator&);
+    XSDLocator& operator=(const XSDLocator&);
+
+    // -----------------------------------------------------------------------
+    //  Private data members
+    // -----------------------------------------------------------------------
+    XMLSSize_t fLineNo;
+    XMLSSize_t fColumnNo;
+    const XMLCh* fSystemId;
+    const XMLCh* fPublicId;
+};
+
+// ---------------------------------------------------------------------------
+//  XSDLocator: Getter methods
+// ---------------------------------------------------------------------------
+inline XMLSSize_t XSDLocator::getLineNumber() const
+{
+    return fLineNo;
+}
+
+inline XMLSSize_t XSDLocator::getColumnNumber() const
+{
+    return fColumnNo;
+}
+
+inline const XMLCh* XSDLocator::getPublicId() const
+{
+    return fPublicId;
+}
+
+inline const XMLCh* XSDLocator::getSystemId() const
+{
+    return fSystemId;
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/schema/XercesGroupInfo.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/schema/XercesGroupInfo.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/schema/XercesGroupInfo.hpp	(revision 2674)
@@ -0,0 +1,204 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: XercesGroupInfo.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(XERCESGROUPINFO_HPP)
+#define XERCESGROUPINFO_HPP
+
+
+/**
+  * The class act as a place holder to store group information.
+  *
+  * The class is intended for internal use.
+  */
+
+// ---------------------------------------------------------------------------
+//  Includes
+// ---------------------------------------------------------------------------
+#include <xercesc/util/RefVectorOf.hpp>
+#include <xercesc/validators/schema/SchemaElementDecl.hpp>
+
+#include <xercesc/internal/XSerializable.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+// ---------------------------------------------------------------------------
+//  Forward Declarations
+// ---------------------------------------------------------------------------
+class ContentSpecNode;
+class XSDLocator;
+
+
+class VALIDATORS_EXPORT XercesGroupInfo : public XSerializable, public XMemory
+{
+public:
+    // -----------------------------------------------------------------------
+    //  Public Constructors/Destructor
+    // -----------------------------------------------------------------------
+    XercesGroupInfo
+    (
+        unsigned int groupNameId
+        , unsigned int groupNamespaceId
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+    ~XercesGroupInfo();
+
+    // -----------------------------------------------------------------------
+    //  Getter methods
+    // -----------------------------------------------------------------------
+    bool                     getCheckElementConsistency() const;
+    int                      getScope() const;
+    unsigned int             elementCount() const;
+    ContentSpecNode*         getContentSpec() const;
+    SchemaElementDecl*       elementAt(const unsigned int index);
+    const SchemaElementDecl* elementAt(const unsigned int index) const;
+    XSDLocator*              getLocator() const;
+    XercesGroupInfo*         getBaseGroup() const;
+    unsigned int             getNameId() const;
+    unsigned int             getNamespaceId() const;
+
+	// -----------------------------------------------------------------------
+    //  Setter methods
+    // -----------------------------------------------------------------------
+    void setScope(const int other);
+    void setContentSpec(ContentSpecNode* const other);
+    void addElement(SchemaElementDecl* const toAdd);
+    void setLocator(XSDLocator* const aLocator);
+    void setBaseGroup(XercesGroupInfo* const baseGroup);
+    void setCheckElementConsistency(const bool aValue);
+
+    /***
+     * Support for Serialization/De-serialization
+     ***/
+    DECL_XSERIALIZABLE(XercesGroupInfo)
+    XercesGroupInfo(MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+
+private:
+    // -----------------------------------------------------------------------
+    //  Unimplemented contstructors and operators
+    // -----------------------------------------------------------------------
+    XercesGroupInfo(const XercesGroupInfo& elemInfo);
+    XercesGroupInfo& operator= (const XercesGroupInfo& other);
+
+    // -----------------------------------------------------------------------
+    //  Private data members
+    // -----------------------------------------------------------------------
+    bool                            fCheckElementConsistency;
+    int                             fScope;
+    unsigned int                    fNameId;
+    unsigned int                    fNamespaceId;
+    ContentSpecNode*                fContentSpec;
+    RefVectorOf<SchemaElementDecl>* fElements;
+    XercesGroupInfo*                fBaseGroup; // redefine by restriction
+    XSDLocator*                     fLocator;
+};
+
+// ---------------------------------------------------------------------------
+//  XercesGroupInfo: Getter methods
+// ---------------------------------------------------------------------------
+inline int XercesGroupInfo::getScope() const {
+
+    return fScope;
+}
+
+inline unsigned int XercesGroupInfo::elementCount() const {
+
+    return fElements->size();
+}
+
+inline ContentSpecNode* XercesGroupInfo::getContentSpec() const {
+
+    return fContentSpec;
+}
+
+inline SchemaElementDecl*
+XercesGroupInfo::elementAt(const unsigned int index) {
+
+    return fElements->elementAt(index);
+}
+
+inline const SchemaElementDecl*
+XercesGroupInfo::elementAt(const unsigned int index) const {
+
+    return fElements->elementAt(index);
+}
+
+inline XSDLocator* XercesGroupInfo::getLocator() const {
+
+    return fLocator;
+}
+
+inline XercesGroupInfo* XercesGroupInfo::getBaseGroup() const {
+
+    return fBaseGroup;
+}
+
+inline bool XercesGroupInfo::getCheckElementConsistency() const {
+
+    return fCheckElementConsistency;
+}
+
+inline unsigned int XercesGroupInfo::getNameId() const
+{
+    return fNameId;
+}
+
+inline unsigned int XercesGroupInfo::getNamespaceId() const
+{
+    return fNamespaceId;
+}
+
+// ---------------------------------------------------------------------------
+//  XercesGroupInfo: Setter methods
+// ---------------------------------------------------------------------------}
+inline void XercesGroupInfo::setScope(const int other) {
+
+    fScope = other;
+}
+
+inline void XercesGroupInfo::setContentSpec(ContentSpecNode* const other) {
+
+    fContentSpec = other;
+}
+
+inline void XercesGroupInfo::addElement(SchemaElementDecl* const elem) {
+
+    if (!fElements->containsElement(elem))
+        fElements->addElement(elem);
+}
+
+inline void XercesGroupInfo::setBaseGroup(XercesGroupInfo* const baseGroup) {
+
+    fBaseGroup = baseGroup;
+}
+
+inline void XercesGroupInfo::setCheckElementConsistency(const bool aValue) {
+
+    fCheckElementConsistency = aValue;
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
+
+/**
+  * End of file XercesGroupInfo.hpp
+  */
+
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/schema/PSVIDefs.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/schema/PSVIDefs.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/schema/PSVIDefs.hpp	(revision 2674)
@@ -0,0 +1,53 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#if !defined(PSVIDEFS_HPP)
+#define PSVIDEFS_HPP
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class VALIDATORS_EXPORT PSVIDefs
+{
+public:
+    enum Validity {
+        UNKNOWN = 1,
+        INVALID = 2,
+        VALID   = 3
+    };
+    
+    enum Validation {
+        NONE    = 1,
+        PARTIAL = 2,
+        FULL    = 3
+    };
+
+    enum Complexity {
+        SIMPLE  = 1,
+        COMPLEX = 2
+    };
+
+    enum PSVIScope
+    {
+        SCP_ABSENT    // declared in group/attribute group
+	    , SCP_GLOBAL  // global decalarion or ref
+	    , SCP_LOCAL   // local declaration
+    };
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/schema/SchemaAttDefList.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/schema/SchemaAttDefList.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/schema/SchemaAttDefList.hpp	(revision 2674)
@@ -0,0 +1,197 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: SchemaAttDefList.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+#if !defined(SCHEMAATTDEFLIST_HPP)
+#define SCHEMAATTDEFLIST_HPP
+
+#include <xercesc/util/RefHash2KeysTableOf.hpp>
+#include <xercesc/validators/schema/SchemaElementDecl.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+//
+//  This is a derivative of the framework abstract class which defines the
+//  interface to a list of attribute defs that belong to a particular
+//  element. The scanner needs to be able to get a list of the attributes
+//  that an element supports, for use during the validation process and for
+//  fixed/default attribute processing.
+//
+//  For us, we just wrap the RefHash2KeysTableOf collection that the SchemaElementDecl
+//  class uses to store the attributes that belong to it.
+//
+//  This class does not adopt the hash table, it just references it. The
+//  hash table is owned by the element decl it is a member of.
+//
+class VALIDATORS_EXPORT SchemaAttDefList : public XMLAttDefList
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+    SchemaAttDefList
+    (
+         RefHash2KeysTableOf<SchemaAttDef>* const    listToUse,
+         MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    ~SchemaAttDefList();
+
+
+    // -----------------------------------------------------------------------
+    //  Implementation of the virtual interface
+    // -----------------------------------------------------------------------
+
+    /** 
+     * @deprecated This method is not thread-safe.
+     */
+    virtual bool hasMoreElements() const;
+
+    virtual bool isEmpty() const;
+    virtual XMLAttDef* findAttDef
+    (
+        const   unsigned long       uriID
+        , const XMLCh* const        attName
+    );
+    virtual const XMLAttDef* findAttDef
+    (
+        const   unsigned long       uriID
+        , const XMLCh* const        attName
+    )   const;
+    virtual XMLAttDef* findAttDef
+    (
+        const   XMLCh* const        attURI
+        , const XMLCh* const        attName
+    );
+    virtual const XMLAttDef* findAttDef
+    (
+        const   XMLCh* const        attURI
+        , const XMLCh* const        attName
+    )   const;
+
+    XMLAttDef* findAttDefLocalPart
+    (
+        const   unsigned long       uriID
+        , const XMLCh* const        attLocalPart
+    );
+
+    const XMLAttDef* findAttDefLocalPart
+    (
+        const   unsigned long       uriID
+        , const XMLCh* const        attLocalPart
+    )   const;
+
+    /** 
+     * @deprecated This method is not thread-safe.
+     */
+    virtual XMLAttDef& nextElement();
+
+    /** 
+     * @deprecated This method is not thread-safe.
+     */
+    virtual void Reset();
+
+    /**
+     * return total number of attributes in this list
+     */
+    virtual unsigned int getAttDefCount() const ;
+
+    /**
+     * return attribute at the index-th position in the list.
+     */
+    virtual XMLAttDef &getAttDef(unsigned int index) ;
+
+    /**
+     * return attribute at the index-th position in the list.
+     */
+    virtual const XMLAttDef &getAttDef(unsigned int index) const ;
+
+    /***
+     * Support for Serialization/De-serialization
+     ***/
+    DECL_XSERIALIZABLE(SchemaAttDefList)
+
+	SchemaAttDefList(MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+
+private :
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    SchemaAttDefList(const SchemaAttDefList&);
+    SchemaAttDefList& operator=(const SchemaAttDefList&);
+
+    void addAttDef(SchemaAttDef *toAdd);
+
+    // -----------------------------------------------------------------------
+    //  Private data members
+    //
+    //  fEnum
+    //      This is an enumerator for the list that we use to do the enumerator
+    //      type methods of this class.
+    //
+    //  fList
+    //      The list of SchemaAttDef objects that represent the attributes that
+    //      a particular element supports.
+    //  fArray
+    //      vector of pointers to the DTDAttDef objects contained in this list
+    //  fSize
+    //      size of fArray
+    //  fCount
+    //      number of DTDAttDef objects currently stored in this list
+    // -----------------------------------------------------------------------
+    RefHash2KeysTableOfEnumerator<SchemaAttDef>*    fEnum;
+    RefHash2KeysTableOf<SchemaAttDef>*              fList;
+    SchemaAttDef**                          fArray;
+    unsigned int                            fSize;
+    unsigned int                            fCount;
+
+    friend class ComplexTypeInfo;
+};
+
+inline void SchemaAttDefList::addAttDef(SchemaAttDef *toAdd)
+{
+    if(fCount == fSize)
+    {
+        // need to grow fArray
+        fSize <<= 1;
+        SchemaAttDef** newArray = (SchemaAttDef **)((getMemoryManager())->allocate( sizeof(SchemaAttDef*) * fSize ));
+        memcpy(newArray, fArray, fCount * sizeof(SchemaAttDef *));
+        (getMemoryManager())->deallocate(fArray);
+        fArray = newArray;
+    }
+    fArray[fCount++] = toAdd;
+}
+
+inline XMLAttDef* SchemaAttDefList::findAttDefLocalPart(const   unsigned long       uriID
+                                                      , const XMLCh* const        attLocalPart)
+{
+    return fList->get((void*)attLocalPart, uriID);
+}
+
+inline const XMLAttDef* SchemaAttDefList::findAttDefLocalPart(const   unsigned long       uriID
+                                                            , const XMLCh* const        attLocalPart)   const
+{
+    return fList->get((void*)attLocalPart, uriID);
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/schema/ComplexTypeInfo.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/schema/ComplexTypeInfo.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/schema/ComplexTypeInfo.hpp	(revision 2674)
@@ -0,0 +1,560 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: ComplexTypeInfo.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(COMPLEXTYPEINFO_HPP)
+#define COMPLEXTYPEINFO_HPP
+
+
+/**
+  * The class act as a place holder to store complex type information.
+  *
+  * The class is intended for internal use.
+  */
+
+// ---------------------------------------------------------------------------
+//  Includes
+// ---------------------------------------------------------------------------
+#include <xercesc/util/XMLString.hpp>
+#include <xercesc/util/RefHash2KeysTableOf.hpp>
+#include <xercesc/util/RefVectorOf.hpp>
+#include <xercesc/framework/XMLElementDecl.hpp>
+#include <xercesc/framework/XMLContentModel.hpp>
+#include <xercesc/validators/schema/SchemaAttDef.hpp>
+#include <xercesc/internal/XSerializable.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+
+// ---------------------------------------------------------------------------
+//  Forward Declarations
+// ---------------------------------------------------------------------------
+class DatatypeValidator;
+class ContentSpecNode;
+class SchemaAttDefList;
+class SchemaElementDecl;
+class XSDLocator;
+
+
+class VALIDATORS_EXPORT ComplexTypeInfo : public XSerializable, public XMemory
+{
+public:
+    // -----------------------------------------------------------------------
+    //  Public Constructors/Destructor
+    // -----------------------------------------------------------------------
+    ComplexTypeInfo(MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+    ~ComplexTypeInfo();
+
+    // -----------------------------------------------------------------------
+    //  Getter methods
+    // -----------------------------------------------------------------------
+    bool                     getAbstract() const;
+    bool                     getAdoptContentSpec() const;
+    bool                     containsAttWithTypeId() const;
+    bool                     getPreprocessed() const;
+    int                      getDerivedBy() const;
+    int                      getBlockSet() const;
+    int                      getFinalSet() const;
+    int                      getScopeDefined() const;
+    unsigned int             getElementId() const;
+    int                      getContentType() const;
+    unsigned int             elementCount() const;
+    XMLCh*                   getTypeName() const;
+    DatatypeValidator*       getBaseDatatypeValidator() const;
+    DatatypeValidator*       getDatatypeValidator() const;
+    ComplexTypeInfo*         getBaseComplexTypeInfo() const;
+    ContentSpecNode*         getContentSpec() const;
+    const SchemaAttDef*      getAttWildCard() const;
+    SchemaAttDef*            getAttWildCard();
+    const SchemaAttDef*      getAttDef(const XMLCh* const baseName,
+                                       const int uriId) const;
+    SchemaAttDef*            getAttDef(const XMLCh* const baseName,
+                                       const int uriId);
+    XMLAttDefList&           getAttDefList() const;
+    const SchemaElementDecl* elementAt(const unsigned int index) const;
+    SchemaElementDecl*       elementAt(const unsigned int index);
+    XMLContentModel*         getContentModel(const bool checkUPA = false);
+    const XMLCh*             getFormattedContentModel ()   const;
+    XSDLocator*              getLocator() const;
+    const XMLCh*             getTypeLocalName() const;
+    const XMLCh*             getTypeUri() const;
+
+    /**
+     * returns true if this type is anonymous
+     **/
+    bool getAnonymous() const;
+
+    // -----------------------------------------------------------------------
+    //  Setter methods
+    // -----------------------------------------------------------------------
+    void setAbstract(const bool isAbstract);
+    void setAdoptContentSpec(const bool toAdopt);
+    void setAttWithTypeId(const bool value);
+    void setPreprocessed(const bool aValue = true);
+    void setDerivedBy(const int derivedBy);
+    void setBlockSet(const int blockSet);
+    void setFinalSet(const int finalSet);
+    void setScopeDefined(const int scopeDefined);
+    void setElementId(const unsigned int elemId);
+    void setTypeName(const XMLCh* const typeName);
+    void setContentType(const int contentType);
+    void setBaseDatatypeValidator(DatatypeValidator* const baseValidator);
+    void setDatatypeValidator(DatatypeValidator* const validator);
+    void setBaseComplexTypeInfo(ComplexTypeInfo* const typeInfo);
+    void setContentSpec(ContentSpecNode* const toAdopt);
+    void setAttWildCard(SchemaAttDef* const toAdopt);
+    void addAttDef(SchemaAttDef* const toAdd);
+    void addElement(SchemaElementDecl* const toAdd);
+    /**     
+     * @deprecated; not thread-safe (will not work with shared grammars)
+     */
+    void setContentModel(XMLContentModel* const newModelToAdopt);
+    void setLocator(XSDLocator* const aLocator);
+
+    /**
+     * sets this type to be anonymous
+     **/
+    void setAnonymous();
+
+    // -----------------------------------------------------------------------
+    //  Helper methods
+    // -----------------------------------------------------------------------
+    bool hasAttDefs() const;
+    bool contains(const XMLCh* const attName);
+    XMLAttDef* findAttr
+    (
+        const   XMLCh* const    qName
+        , const unsigned int    uriId
+        , const XMLCh* const    baseName
+        , const XMLCh* const    prefix
+        , const XMLElementDecl::LookupOpts      options
+        ,       bool&           wasAdded
+    )   const;
+    bool resetDefs();
+    void checkUniqueParticleAttribution
+    (
+        SchemaGrammar*    const pGrammar
+      , GrammarResolver*  const pGrammarResolver
+      , XMLStringPool*    const pStringPool
+      , XMLValidator*     const pValidator
+    ) ;
+
+    /**
+      * Return a singleton that represents 'anyType'
+      *
+      * @param emptyNSId the uri id of the empty namespace 
+      */
+    static ComplexTypeInfo* getAnyType(unsigned int emptyNSId);
+
+    /**
+      *  Notification that lazy data has been deleted
+      */
+    static void reinitAnyType();
+
+    /***
+     * Support for Serialization/De-serialization
+     ***/
+    DECL_XSERIALIZABLE(ComplexTypeInfo)
+
+private:
+    // -----------------------------------------------------------------------
+    //  Unimplemented contstructors and operators
+    // -----------------------------------------------------------------------
+    ComplexTypeInfo(const ComplexTypeInfo& elemInfo);
+    ComplexTypeInfo& operator= (const ComplexTypeInfo& other);
+
+    // -----------------------------------------------------------------------
+    //  Private helper methods
+    // -----------------------------------------------------------------------
+    void faultInAttDefList() const;
+    XMLContentModel* createChildModel(ContentSpecNode* specNode, const bool isMixed);
+    XMLContentModel* makeContentModel(const bool checkUPA = false);
+    XMLContentModel* buildContentModel(ContentSpecNode* const specNode);
+    XMLCh* formatContentModel () const ;
+    ContentSpecNode* expandContentModel(ContentSpecNode* const curNode, const int minOccurs, const int maxOccurs);
+    ContentSpecNode* convertContentSpecTree(ContentSpecNode* const curNode, const bool checkUPA = false);
+    void resizeContentSpecOrgURI();
+
+    // -----------------------------------------------------------------------
+    //  Private data members
+    // -----------------------------------------------------------------------
+    bool                               fAnonymous;
+    bool                               fAbstract;
+    bool                               fAdoptContentSpec;
+    bool                               fAttWithTypeId;
+    bool                               fPreprocessed;
+    int                                fDerivedBy;
+    int                                fBlockSet;
+    int                                fFinalSet;
+    int                                fScopeDefined;
+    int                                fContentType;
+
+    unsigned int                       fElementId;
+    unsigned int                       fUniqueURI;
+    unsigned int                       fContentSpecOrgURISize;
+
+    XMLCh*                             fTypeName;
+    XMLCh*                             fTypeLocalName;
+    XMLCh*                             fTypeUri;
+    DatatypeValidator*                 fBaseDatatypeValidator;
+    DatatypeValidator*                 fDatatypeValidator;
+    ComplexTypeInfo*                   fBaseComplexTypeInfo;
+    ContentSpecNode*                   fContentSpec;
+    SchemaAttDef*                      fAttWildCard;
+    SchemaAttDefList*                  fAttList;
+    RefVectorOf<SchemaElementDecl>*    fElements;    
+    RefHash2KeysTableOf<SchemaAttDef>* fAttDefs;
+    XMLContentModel*                   fContentModel;
+    XMLCh*                             fFormattedModel;
+    unsigned int*                      fContentSpecOrgURI;
+    XSDLocator*                        fLocator;
+    MemoryManager*                     fMemoryManager;
+
+    static ComplexTypeInfo*            fAnyType;
+};
+
+// ---------------------------------------------------------------------------
+//  ComplexTypeInfo: Getter methods
+// ---------------------------------------------------------------------------
+inline bool ComplexTypeInfo::getAbstract() const {
+
+    return fAbstract;
+}
+
+inline bool ComplexTypeInfo::getAdoptContentSpec() const {
+
+    return fAdoptContentSpec;
+}
+
+inline bool ComplexTypeInfo::containsAttWithTypeId() const {
+
+    return fAttWithTypeId;
+}
+
+inline bool ComplexTypeInfo::getPreprocessed() const {
+
+    return fPreprocessed;
+}
+
+inline int ComplexTypeInfo::getDerivedBy() const {
+
+    return fDerivedBy;
+}
+
+inline int ComplexTypeInfo::getBlockSet() const {
+
+    return fBlockSet;
+}
+
+inline int ComplexTypeInfo::getFinalSet() const {
+
+    return fFinalSet;
+}
+
+inline int ComplexTypeInfo::getScopeDefined() const {
+
+    return fScopeDefined;
+}
+
+inline unsigned int ComplexTypeInfo::getElementId() const {
+
+    return fElementId;
+}
+
+inline int ComplexTypeInfo::getContentType() const {
+
+    return fContentType;
+}
+
+inline unsigned int ComplexTypeInfo::elementCount() const {
+
+    if (fElements) {
+        return fElements->size();
+    }
+
+    return 0;
+}
+
+inline XMLCh* ComplexTypeInfo::getTypeName() const {
+    return fTypeName;
+}
+
+inline DatatypeValidator* ComplexTypeInfo::getBaseDatatypeValidator() const {
+
+    return fBaseDatatypeValidator;
+}
+
+inline DatatypeValidator* ComplexTypeInfo::getDatatypeValidator() const {
+
+    return fDatatypeValidator;
+}
+
+inline ComplexTypeInfo* ComplexTypeInfo::getBaseComplexTypeInfo() const {
+
+    return fBaseComplexTypeInfo;
+}
+
+inline ContentSpecNode* ComplexTypeInfo::getContentSpec() const {
+
+    return fContentSpec;
+}
+
+inline const SchemaAttDef* ComplexTypeInfo::getAttWildCard() const {
+
+    return fAttWildCard;
+}
+
+inline SchemaAttDef* ComplexTypeInfo::getAttWildCard() {
+
+    return fAttWildCard;
+}
+
+inline const SchemaAttDef* ComplexTypeInfo::getAttDef(const XMLCh* const baseName,
+                                                      const int uriId) const {
+
+    return fAttDefs->get(baseName, uriId);
+}
+
+inline SchemaAttDef* ComplexTypeInfo::getAttDef(const XMLCh* const baseName,
+                                                const int uriId)
+{
+    return fAttDefs->get(baseName, uriId);
+}
+
+inline SchemaElementDecl*
+ComplexTypeInfo::elementAt(const unsigned int index) {
+
+    if (!fElements) {
+        return 0; // REVISIT - need to throw an exception
+    }
+
+    return fElements->elementAt(index);
+}
+
+inline const SchemaElementDecl*
+ComplexTypeInfo::elementAt(const unsigned int index) const {
+
+    if (!fElements) {
+        return 0; // REVISIT - need to throw an exception
+    }
+
+    return fElements->elementAt(index);
+}
+
+inline XMLContentModel* ComplexTypeInfo::getContentModel(const bool checkUPA)
+{
+    if (!fContentModel && fContentSpec)
+        fContentModel = makeContentModel(checkUPA);
+
+    return fContentModel;
+}
+
+inline XSDLocator* ComplexTypeInfo::getLocator() const
+{
+    return fLocator;
+}
+
+inline bool ComplexTypeInfo::getAnonymous() const {
+    return fAnonymous;
+}
+
+inline const XMLCh* ComplexTypeInfo::getTypeLocalName() const
+{
+    return fTypeLocalName;
+}
+
+inline const XMLCh* ComplexTypeInfo::getTypeUri() const
+{
+   return fTypeUri;
+}
+
+// ---------------------------------------------------------------------------
+//  ComplexTypeInfo: Setter methods
+// ---------------------------------------------------------------------------
+inline void ComplexTypeInfo::setAbstract(const bool isAbstract) {
+
+    fAbstract = isAbstract;
+}
+
+inline void ComplexTypeInfo::setAdoptContentSpec(const bool toAdopt) {
+
+    fAdoptContentSpec = toAdopt;
+}
+
+inline void ComplexTypeInfo::setAttWithTypeId(const bool value) {
+
+    fAttWithTypeId = value;
+}
+
+inline void ComplexTypeInfo::setPreprocessed(const bool aValue) {
+
+    fPreprocessed = aValue;
+}
+
+inline void ComplexTypeInfo::setDerivedBy(const int derivedBy) {
+
+    fDerivedBy = derivedBy;
+}
+
+inline void ComplexTypeInfo::setBlockSet(const int blockSet) {
+
+    fBlockSet = blockSet;
+}
+
+inline void ComplexTypeInfo::setFinalSet(const int finalSet) {
+
+    fFinalSet = finalSet;
+}
+
+inline void ComplexTypeInfo::setScopeDefined(const int scopeDefined) {
+
+    fScopeDefined = scopeDefined;
+}
+
+inline void ComplexTypeInfo::setElementId(const unsigned int elemId) {
+
+    fElementId = elemId;
+}
+
+inline void
+ComplexTypeInfo::setContentType(const int contentType) {
+
+    fContentType = contentType;
+}
+
+inline void ComplexTypeInfo::setTypeName(const XMLCh* const typeName) {
+
+    fMemoryManager->deallocate(fTypeName);//delete [] fTypeName;
+    fMemoryManager->deallocate(fTypeLocalName);//delete [] fTypeLocalName;
+    fMemoryManager->deallocate(fTypeUri);//delete [] fTypeUri;    
+
+    if (typeName)
+    {
+        fTypeName = XMLString::replicate(typeName, fMemoryManager);
+
+        int index = XMLString::indexOf(fTypeName, chComma);
+        int length = XMLString::stringLen(fTypeName);
+        fTypeLocalName = (XMLCh*) fMemoryManager->allocate
+        (
+            (length - index + 1) * sizeof(XMLCh)
+        ); //new XMLCh[length - index + 1];
+        XMLString::subString(fTypeLocalName, fTypeName, index + 1, length, fMemoryManager);
+        
+        fTypeUri = (XMLCh*) fMemoryManager->allocate
+        (
+            (index + 1) * sizeof(XMLCh)
+        ); //new XMLCh[index + 1];
+        XMLString::subString(fTypeUri, fTypeName, 0, index, fMemoryManager);        
+    }
+    else
+    {
+        fTypeName = fTypeLocalName = fTypeUri = 0;
+    }
+}
+
+inline void
+ComplexTypeInfo::setBaseDatatypeValidator(DatatypeValidator* const validator) {
+
+    fBaseDatatypeValidator = validator;
+}
+
+inline void
+ComplexTypeInfo::setDatatypeValidator(DatatypeValidator* const validator) {
+
+    fDatatypeValidator = validator;
+}
+
+inline void
+ComplexTypeInfo::setBaseComplexTypeInfo(ComplexTypeInfo* const typeInfo) {
+
+    fBaseComplexTypeInfo = typeInfo;
+}
+
+inline void ComplexTypeInfo::addElement(SchemaElementDecl* const elem) {
+
+    if (!fElements) {
+        fElements = new (fMemoryManager) RefVectorOf<SchemaElementDecl>(8, false, fMemoryManager);
+    }
+    else if (fElements->containsElement(elem)) {
+        return;
+    }
+
+    fElements->addElement(elem);
+}
+
+inline void ComplexTypeInfo::setAttWildCard(SchemaAttDef* const toAdopt) {
+
+    if (fAttWildCard) {
+       delete fAttWildCard;
+    }
+
+    fAttWildCard = toAdopt;
+}
+
+inline void
+ComplexTypeInfo::setContentModel(XMLContentModel* const newModelToAdopt)
+{
+    delete fContentModel;
+    fContentModel = newModelToAdopt;
+
+    // reset formattedModel
+    if (fFormattedModel)
+    {
+        fMemoryManager->deallocate(fFormattedModel);
+        fFormattedModel = 0;
+    }
+}
+
+
+
+inline void ComplexTypeInfo::setAnonymous() {
+    fAnonymous = true;
+}
+
+// ---------------------------------------------------------------------------
+//  ComplexTypeInfo: Helper methods
+// ---------------------------------------------------------------------------
+inline bool ComplexTypeInfo::hasAttDefs() const
+{
+    return !fAttDefs->isEmpty();
+}
+
+inline bool ComplexTypeInfo::contains(const XMLCh* const attName) {
+
+    RefHash2KeysTableOfEnumerator<SchemaAttDef> enumDefs(fAttDefs, false, fMemoryManager);
+
+    while (enumDefs.hasMoreElements()) {
+
+        if (XMLString::equals(attName, enumDefs.nextElement().getAttName()->getLocalPart())) {
+            return true;
+        }
+    }
+
+    return false;
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
+
+/**
+  * End of file ComplexTypeInfo.hpp
+  */
+
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/schema/NamespaceScope.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/schema/NamespaceScope.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/schema/NamespaceScope.hpp	(revision 2674)
@@ -0,0 +1,165 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: NamespaceScope.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(NAMESPACESCOPE_HPP)
+#define NAMESPACESCOPE_HPP
+
+#include <xercesc/util/StringPool.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+//
+// NamespaceScope provides a data structure for mapping namespace prefixes
+// to their URI's. The mapping accurately reflects the scoping of namespaces
+// at a particular instant in time.
+//
+
+class VALIDATORS_EXPORT NamespaceScope : public XMemory
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Class specific data types
+    //
+    //  These really should be private, but some of the compilers we have to
+    //  support are too dumb to deal with that.
+    //
+    //  PrefMapElem
+    //      fURIId is the id of the URI from the validator's URI map. The
+    //      fPrefId is the id of the prefix from our own prefix pool. The
+    //      namespace stack consists of these elements.
+    //
+    //  StackElem
+    //      The fMapCapacity is how large fMap has grown so far. fMapCount
+    //      is how many of them are valid right now.
+    // -----------------------------------------------------------------------
+    struct PrefMapElem : public XMemory
+    {
+        unsigned int        fPrefId;
+        unsigned int        fURIId;
+    };
+
+    struct StackElem : public XMemory
+    {
+        PrefMapElem*        fMap;
+        unsigned int        fMapCapacity;
+        unsigned int        fMapCount;
+    };
+
+
+    // -----------------------------------------------------------------------
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+    NamespaceScope(MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+    ~NamespaceScope();
+
+
+    // -----------------------------------------------------------------------
+    //  Stack access
+    // -----------------------------------------------------------------------
+    unsigned int increaseDepth();
+    unsigned int decreaseDepth();
+
+    // -----------------------------------------------------------------------
+    //  Prefix map methods
+    // -----------------------------------------------------------------------
+    void addPrefix(const XMLCh* const prefixToAdd,
+                   const unsigned int uriId);
+
+    unsigned int getNamespaceForPrefix(const XMLCh* const prefixToMap) const;
+    unsigned int getNamespaceForPrefix(const XMLCh* const prefixToMap,
+                                       const int depthLevel) const;
+
+
+    // -----------------------------------------------------------------------
+    //  Miscellaneous methods
+    // -----------------------------------------------------------------------
+    bool isEmpty() const;
+    void reset(const unsigned int emptyId);
+
+
+private :
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    NamespaceScope(const NamespaceScope&);
+    NamespaceScope& operator=(const NamespaceScope&);
+
+
+    // -----------------------------------------------------------------------
+    //  Private helper methods
+    // -----------------------------------------------------------------------
+    void expandMap(StackElem* const toExpand);
+    void expandStack();
+
+
+    // -----------------------------------------------------------------------
+    //  Data members
+    //
+    //  fEmptyNamespaceId
+    //      This is the special URI id for the "" namespace, which is magic
+    //      because of the xmlns="" operation.
+    //
+    //  fPrefixPool
+    //      This is the prefix pool where prefixes are hashed and given unique
+    //      ids. These ids are used to track prefixes in the element stack.
+    //
+    //  fStack
+    //  fStackCapacity
+    //  fStackTop
+    //      This the stack array. Its an array of pointers to StackElem
+    //      structures. The capacity is the current high water mark of the
+    //      stack. The top is the current top of stack (i.e. the part of it
+    //      being used.)
+    // -----------------------------------------------------------------------
+    unsigned int  fEmptyNamespaceId;
+    unsigned int  fStackCapacity;
+    unsigned int  fStackTop;
+    XMLStringPool fPrefixPool;
+    StackElem**   fStack;
+    MemoryManager* fMemoryManager;
+};
+
+
+// ---------------------------------------------------------------------------
+//  NamespaceScope: Stack access
+// ---------------------------------------------------------------------------
+inline unsigned int
+NamespaceScope::getNamespaceForPrefix(const XMLCh* const prefixToMap) const {
+
+    return getNamespaceForPrefix(prefixToMap, (int)(fStackTop - 1));
+}
+
+// ---------------------------------------------------------------------------
+//  NamespaceScope: Miscellaneous methods
+// ---------------------------------------------------------------------------
+inline bool NamespaceScope::isEmpty() const
+{
+    return (fStackTop == 0);
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
+
+/**
+  * End of file NameSpaceScope.hpp
+  */
+
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/schema/SchemaAttDef.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/schema/SchemaAttDef.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/schema/SchemaAttDef.hpp	(revision 2674)
@@ -0,0 +1,508 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: SchemaAttDef.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+#if !defined(SCHEMAATTDEF_HPP)
+#define SCHEMAATTDEF_HPP
+
+#include <xercesc/util/XMLString.hpp>
+#include <xercesc/framework/XMLAttDef.hpp>
+#include <xercesc/util/ValueVectorOf.hpp>
+#include <xercesc/validators/datatype/DatatypeValidator.hpp>
+#include <xercesc/validators/datatype/UnionDatatypeValidator.hpp>
+#include <xercesc/validators/schema/PSVIDefs.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class DatatypeValidator;
+class QName;
+class ComplexTypeInfo;
+//
+//  This class is a derivative of the core XMLAttDef class. This class adds
+//  any Schema specific data members and provides Schema specific implementations
+//  of any underlying attribute def virtual methods.
+//
+class VALIDATORS_EXPORT SchemaAttDef : public XMLAttDef
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Constructors and Destructors
+    // -----------------------------------------------------------------------
+    SchemaAttDef(MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+    SchemaAttDef
+    (
+          const XMLCh* const           prefix
+        , const XMLCh* const           localPart
+        , const int                    uriId
+        , const XMLAttDef::AttTypes    type = CData
+        , const XMLAttDef::DefAttTypes defType = Implied
+        , MemoryManager* const         manager = XMLPlatformUtils::fgMemoryManager
+    );
+    SchemaAttDef
+    (
+          const XMLCh* const           prefix
+        , const XMLCh* const           localPart
+        , const int                    uriId
+        , const XMLCh* const           attValue
+        , const XMLAttDef::AttTypes    type
+        , const XMLAttDef::DefAttTypes defType
+        , const XMLCh* const           enumValues = 0
+        , MemoryManager* const         manager = XMLPlatformUtils::fgMemoryManager
+    );
+    SchemaAttDef
+    (
+          const SchemaAttDef*                   other
+    );
+    virtual ~SchemaAttDef();
+
+    // -----------------------------------------------------------------------
+    //  Implementation of the XMLAttDef interface
+    // -----------------------------------------------------------------------
+    virtual const XMLCh* getFullName() const;
+    virtual void reset();
+
+
+    // ----------------------------------------------------------------------
+    // Partial implementation of PSVI
+    // The values these methods return are only accurate until the DOMAttr
+    // is created that uses the values. After this a clean up method is called
+    // and the SchemaAttDef may be used again.
+    // note that some of this information has dependancies. For example,
+    // if something is not valid then the information returned by the other 
+    // calls may be meaningless
+    // See http://www.w3.org/TR/xmlschema-1/ for detailed information
+    // ----------------------------------------------------------------------
+
+    /** 
+     * The appropriate case among the following:
+     * 1 If it was strictly assessed, then the appropriate case among the following:
+     * 1.1 If it was valid as defined by Attribute Locally Valid (3.2.4), then valid;
+     * 1.2 otherwise invalid.
+     * 2 otherwise notKnown.
+     * @deprecated
+     */
+    PSVIDefs::Validity getValidity() const;
+
+    /**
+     * The appropriate case among the following:
+     * 1 If it was strictly assessed, then full;
+     * 2 otherwise none.
+     * @deprecated
+     */
+    PSVIDefs::Validation getValidationAttempted() const;
+
+    /**
+     * @return the complexity. Always simple for attrs
+     * @deprecated
+     */
+    PSVIDefs::Complexity getTypeType() const;
+
+    /**
+     * The target namespace of the type definition.
+     * @deprecated
+     */
+    const XMLCh* getTypeUri() const;
+
+    /**
+     * The {name} of the type definition, if it is not absent. 
+     * @deprecated
+     */
+    const XMLCh* getTypeName() const;
+
+    /**
+     * true if the {name} of the type definition is absent, otherwise false.
+     * @deprecated
+     */
+    bool getTypeAnonymous() const;
+
+    /**
+     * If this method returns true and validity is VALID then the next three 
+     * produce accurate results
+     * @return true if the element is validated using a union type
+     * @deprecated
+     */
+    bool isTypeDefinitionUnion() const;
+
+    /**
+     * The {target namespace} of the actual member type definition.
+     * @deprecated
+     */
+    const XMLCh* getMemberTypeUri() const;
+
+    /**
+     * @return true if the {name} of the actual member type definition is absent, otherwise false.
+     * @deprecated
+     */
+    bool getMemberTypeAnonymous() const;
+
+    /**
+     * @return the {name} of the actual member type definition, if it is not absent. 
+     * @deprecated
+     */
+    const XMLCh* getMemberTypeName() const;
+
+    /*
+     * @deprecated
+     */
+    virtual const XMLCh* getDOMTypeInfoUri() const;
+    /*
+     * @deprecated
+     */
+    virtual const XMLCh* getDOMTypeInfoName() const;
+    
+    
+
+    // -----------------------------------------------------------------------
+    //  Getter methods
+    // -----------------------------------------------------------------------
+    unsigned int getElemId() const;
+    QName* getAttName() const;
+    DatatypeValidator* getDatatypeValidator() const;
+    ValueVectorOf<unsigned int>* getNamespaceList() const;
+    const SchemaAttDef* getBaseAttDecl() const;
+    SchemaAttDef* getBaseAttDecl();
+    PSVIDefs::PSVIScope getPSVIScope() const;
+
+    /*
+     * @deprecated
+     */
+    ComplexTypeInfo* getEnclosingCT() const;
+
+    // -----------------------------------------------------------------------
+    //  Setter methods
+    // -----------------------------------------------------------------------
+    void setElemId(const unsigned int newId);
+    void setAttName
+    (
+        const XMLCh* const        prefix
+       ,const XMLCh* const        localPart
+       ,const int                 uriId = -1
+    );
+    void setDatatypeValidator(DatatypeValidator* newDatatypeValidator);
+    /*
+     * @deprecated
+     */
+    void setAnyDatatypeValidator(DatatypeValidator* newDatatypeValidator);
+    void setBaseAttDecl(SchemaAttDef* const attDef);
+    void setPSVIScope(const PSVIDefs::PSVIScope toSet);
+
+    /*
+     * @deprecated
+     */
+    void setMembertypeValidator(const DatatypeValidator* newDatatypeValidator);
+    void setNamespaceList(const ValueVectorOf<unsigned int>* const toSet);
+    void resetNamespaceList();
+    /*
+     * @deprecated
+     */
+    void setValidity(PSVIDefs::Validity valid);
+    /*
+     * @deprecated
+     */
+    void setValidationAttempted(PSVIDefs::Validation validation);
+    void setEnclosingCT(ComplexTypeInfo* complexTypeInfo);
+    /***
+     * Support for Serialization/De-serialization
+     ***/
+    DECL_XSERIALIZABLE(SchemaAttDef)
+
+private :
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    SchemaAttDef(const SchemaAttDef&);
+    SchemaAttDef& operator=(const SchemaAttDef&);
+
+    // -----------------------------------------------------------------------
+    //  Private data members
+    //
+    //  fElemId
+    //      This is the id of the element (the id is into the element decl
+    //      pool) of the element this attribute def said it belonged to.
+    //      This is used later to link back to the element, mostly for
+    //      validation purposes.
+    //
+    //  fAttName
+    //      This is the name of the attribute.
+    //
+    //  fDatatypeValidator
+    //      The DatatypeValidator used to validate this attribute type.
+    //
+    //  fAnyDatatypeValidator
+    //      Tempory storage for the DatatypeValidator used to validate an any
+    //
+    //  fMemberTypeValidator
+    //      Tempory storage used when the validator being used is of union type.
+    //      This stores the actual member validator used to validate.
+    //
+    //  fNamespaceList
+    //      The list of namespace values for a wildcard attribute
+    //
+    //  fValidity
+    //      After this attr has been validated this is its validity
+    //
+    //  fValidation
+    //      The type of validation that happened to this attr
+    //
+    //  fBaseAttDecl
+    //      The base attribute declaration that this attribute is based on
+    //      NOTE: we do not have a notion of attribute use, so in the case
+    //      of ref'd attributes and inherited attributes, we make a copy
+    //      of the actual attribute declaration. The fBaseAttDecl stores that
+    //      declaration, and will be helpful when we build the XSModel (i.e
+    //      easy access the XSAnnotation object).
+    // -----------------------------------------------------------------------
+    unsigned int                 fElemId;
+
+    PSVIDefs::Validity           fValidity;
+    PSVIDefs::Validation         fValidation;
+    PSVIDefs::PSVIScope          fPSVIScope;
+
+    QName*                       fAttName;
+    DatatypeValidator*           fDatatypeValidator;
+    DatatypeValidator*           fAnyDatatypeValidator;
+    const DatatypeValidator*     fMemberTypeValidator;
+    ValueVectorOf<unsigned int>* fNamespaceList;
+    SchemaAttDef*                fBaseAttDecl;
+};
+
+
+// ---------------------------------------------------------------------------
+//  SchemaAttDef: Getter methods
+// ---------------------------------------------------------------------------
+inline unsigned int SchemaAttDef::getElemId() const
+{
+    return fElemId;
+}
+
+
+inline QName* SchemaAttDef::getAttName() const
+{
+    return fAttName;
+}
+
+inline DatatypeValidator* SchemaAttDef::getDatatypeValidator() const
+{
+    return fDatatypeValidator;
+}
+
+inline void SchemaAttDef::setValidity(PSVIDefs::Validity valid) {
+    fValidity = valid;
+}
+
+inline void SchemaAttDef::setValidationAttempted(PSVIDefs::Validation validation) {
+    fValidation = validation;
+}
+
+
+inline const XMLCh* SchemaAttDef::getTypeName() const {
+    if(fAnyDatatypeValidator) 
+        return fAnyDatatypeValidator->getTypeLocalName();
+    else if(fDatatypeValidator)
+        return fDatatypeValidator->getTypeLocalName();
+
+    //its anySimpleType if we have not done validation on it
+    if(getValidationAttempted() == PSVIDefs::NONE)
+        return SchemaSymbols::fgDT_ANYSIMPLETYPE;
+
+
+    return 0;
+}
+
+inline PSVIDefs::Complexity SchemaAttDef::getTypeType() const {
+    return PSVIDefs::SIMPLE;
+}
+
+inline const XMLCh* SchemaAttDef::getTypeUri() const {
+    if(fAnyDatatypeValidator) 
+        return fAnyDatatypeValidator->getTypeUri();
+    else if(fDatatypeValidator) 
+        return fDatatypeValidator->getTypeUri();
+
+    //its anySimpleType if we have not done validation on it
+    if(getValidationAttempted() == PSVIDefs::NONE)
+        return SchemaSymbols::fgURI_SCHEMAFORSCHEMA;
+
+    return 0;
+}
+
+
+inline const XMLCh* SchemaAttDef::getMemberTypeName() const {
+    if(fMemberTypeValidator) 
+        return fMemberTypeValidator->getTypeLocalName();
+    return 0;
+}
+
+inline const XMLCh* SchemaAttDef::getMemberTypeUri() const {
+    if(fMemberTypeValidator) 
+        return fMemberTypeValidator->getTypeUri();
+    return 0;
+}
+
+inline PSVIDefs::Validity SchemaAttDef::getValidity() const {
+    return fValidity;
+}
+
+inline PSVIDefs::Validation SchemaAttDef::getValidationAttempted() const {
+    return fValidation;
+}
+
+inline const XMLCh* SchemaAttDef::getDOMTypeInfoName() const {
+    if(fValidity != PSVIDefs::VALID)
+        return SchemaSymbols::fgDT_ANYSIMPLETYPE;
+    if(getTypeAnonymous() || getMemberTypeAnonymous())
+        return 0;
+    if(fMemberTypeValidator)
+        return getMemberTypeName();
+
+    return getTypeName();
+}
+
+inline const XMLCh* SchemaAttDef::getDOMTypeInfoUri() const {
+    if(fValidity != PSVIDefs::VALID)
+        return SchemaSymbols::fgURI_SCHEMAFORSCHEMA;
+    if(getTypeAnonymous() || getMemberTypeAnonymous())
+        return 0;
+    if(fMemberTypeValidator)
+        return getMemberTypeUri();
+    return getTypeUri();
+}
+
+inline bool SchemaAttDef::getTypeAnonymous() const {
+    if(fAnyDatatypeValidator) 
+        return fAnyDatatypeValidator->getAnonymous();
+    else if(fDatatypeValidator)
+        return fDatatypeValidator->getAnonymous();
+
+    return false;
+}
+
+inline bool SchemaAttDef::getMemberTypeAnonymous() const {
+    if(fMemberTypeValidator) 
+        return fMemberTypeValidator->getAnonymous();
+
+    return false;
+}
+
+inline bool SchemaAttDef::isTypeDefinitionUnion() const {
+   if(fAnyDatatypeValidator && fAnyDatatypeValidator->getType() == DatatypeValidator::Union ||
+      fDatatypeValidator && fDatatypeValidator->getType() == DatatypeValidator::Union)
+       return true;
+    return false;
+}
+
+inline ValueVectorOf<unsigned int>*
+SchemaAttDef::getNamespaceList() const {
+    return fNamespaceList;
+}
+
+inline ComplexTypeInfo* SchemaAttDef::getEnclosingCT() const
+{
+    return 0;
+}
+
+inline SchemaAttDef* SchemaAttDef::getBaseAttDecl()
+{
+    return fBaseAttDecl;
+}
+
+inline const SchemaAttDef* SchemaAttDef::getBaseAttDecl() const
+{
+    return fBaseAttDecl;
+}
+
+inline PSVIDefs::PSVIScope SchemaAttDef::getPSVIScope() const
+{
+    return fPSVIScope;
+}
+
+// ---------------------------------------------------------------------------
+//  SchemaAttDef: Setter methods
+// ---------------------------------------------------------------------------
+inline void SchemaAttDef::setElemId(const unsigned int newId)
+{
+    fElemId = newId;
+}
+
+inline void SchemaAttDef::setDatatypeValidator(DatatypeValidator* newDatatypeValidator)
+{
+    fDatatypeValidator = newDatatypeValidator;
+}
+
+inline void SchemaAttDef::setAnyDatatypeValidator(DatatypeValidator* newDatatypeValidator)
+{
+    fAnyDatatypeValidator = newDatatypeValidator;
+}
+
+inline void SchemaAttDef::setMembertypeValidator(const DatatypeValidator* newDatatypeValidator)
+{
+    fMemberTypeValidator = newDatatypeValidator;
+}
+
+inline void SchemaAttDef::resetNamespaceList() {
+
+    if (fNamespaceList && fNamespaceList->size()) {
+        fNamespaceList->removeAllElements();
+    }
+}
+
+inline void SchemaAttDef::setNamespaceList(const ValueVectorOf<unsigned int>* const toSet) {
+
+    if (toSet && toSet->size()) {
+
+        if (fNamespaceList) {
+            *fNamespaceList = *toSet;
+        }
+        else {
+            fNamespaceList = new (getMemoryManager()) ValueVectorOf<unsigned int>(*toSet);
+        }
+    }
+    else  {
+        resetNamespaceList();
+    }
+}
+
+inline void SchemaAttDef::reset() {
+    if(fAnyDatatypeValidator && fAnyDatatypeValidator->getType() == DatatypeValidator::Union)
+        ((UnionDatatypeValidator *)fAnyDatatypeValidator)->reset();
+    else if(fDatatypeValidator && fDatatypeValidator->getType() == DatatypeValidator::Union)
+        ((UnionDatatypeValidator *)fDatatypeValidator)->reset();
+    fAnyDatatypeValidator = 0;
+    fMemberTypeValidator = 0;
+    fValidity = PSVIDefs::UNKNOWN;
+    fValidation = PSVIDefs::NONE;    
+}
+
+inline void SchemaAttDef::setEnclosingCT(ComplexTypeInfo*)
+{
+}
+
+inline void SchemaAttDef::setBaseAttDecl(SchemaAttDef* const attDef)
+{
+    fBaseAttDecl = attDef;
+}
+
+inline void SchemaAttDef::setPSVIScope(const PSVIDefs::PSVIScope toSet)
+{
+    fPSVIScope = toSet;
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/common/ContentSpecNode.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/common/ContentSpecNode.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/common/ContentSpecNode.hpp	(revision 2674)
@@ -0,0 +1,467 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: ContentSpecNode.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+#if !defined(CONTENTSPECNODE_HPP)
+#define CONTENTSPECNODE_HPP
+
+#include <xercesc/framework/XMLElementDecl.hpp>
+#include <xercesc/framework/MemoryManager.hpp>
+
+#include <xercesc/internal/XSerializable.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class XMLBuffer;
+class Grammar;
+
+
+class XMLUTIL_EXPORT ContentSpecNode : public XSerializable, public XMemory
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Class specific types
+    // -----------------------------------------------------------------------
+    enum NodeTypes
+    {
+        Leaf = 0
+        , ZeroOrOne
+        , ZeroOrMore
+        , OneOrMore
+        , Choice
+        , Sequence
+        , Any
+        , Any_Other
+        , Any_NS = 8
+        , All = 9
+        , Any_NS_Choice = 20
+        , ModelGroupSequence = 21
+        , Any_Lax = 22
+        , Any_Other_Lax = 23
+        , Any_NS_Lax = 24
+        , ModelGroupChoice = 36
+        , Any_Skip = 38
+        , Any_Other_Skip = 39
+        , Any_NS_Skip = 40
+
+        , UnknownType = -1
+    };
+
+
+    // -----------------------------------------------------------------------
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+    ContentSpecNode(MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+    ContentSpecNode
+    (
+        QName* const toAdopt
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+    ContentSpecNode
+    (
+        XMLElementDecl* const elemDecl
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+    ContentSpecNode
+    (
+        QName* const toAdopt
+        , const bool copyQName
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+    ContentSpecNode
+    (
+        const   NodeTypes               type
+        ,       ContentSpecNode* const  firstToAdopt
+        ,       ContentSpecNode* const  secondToAdopt
+        , const bool                    adoptFirst = true
+        , const bool                    adoptSecond = true
+        ,       MemoryManager* const    manager = XMLPlatformUtils::fgMemoryManager
+    );
+    ContentSpecNode(const ContentSpecNode&);
+	~ContentSpecNode();
+
+    // -----------------------------------------------------------------------
+    //  Getter methods
+    // -----------------------------------------------------------------------
+    QName* getElement();
+    const QName* getElement() const;
+    XMLElementDecl* getElementDecl();
+    const XMLElementDecl* getElementDecl() const;
+    ContentSpecNode* getFirst();
+    const ContentSpecNode* getFirst() const;
+    ContentSpecNode* getSecond();
+    const ContentSpecNode* getSecond() const;
+    NodeTypes getType() const;
+    ContentSpecNode* orphanFirst();
+    ContentSpecNode* orphanSecond();
+    int getMinOccurs() const;
+    int getMaxOccurs() const;
+    bool isFirstAdopted() const;
+    bool isSecondAdopted() const;
+
+
+    // -----------------------------------------------------------------------
+    //  Setter methods
+    // -----------------------------------------------------------------------
+    void setElement(QName* const toAdopt);
+    void setFirst(ContentSpecNode* const toAdopt);
+    void setSecond(ContentSpecNode* const toAdopt);
+    void setType(const NodeTypes type);
+    void setMinOccurs(int min);
+    void setMaxOccurs(int max);
+    void setAdoptFirst(bool adoptFirst);
+    void setAdoptSecond(bool adoptSecond);
+
+
+    // -----------------------------------------------------------------------
+    //  Miscellaneous
+    // -----------------------------------------------------------------------
+    void formatSpec (XMLBuffer&      bufToFill)   const;
+    bool hasAllContent();
+    int  getMinTotalRange() const;
+    int  getMaxTotalRange() const;
+
+    /***
+     * Support for Serialization/De-serialization
+     ***/
+    DECL_XSERIALIZABLE(ContentSpecNode)
+
+private :
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    ContentSpecNode& operator=(const ContentSpecNode&);
+
+
+    // -----------------------------------------------------------------------
+    //  Private Data Members
+    //
+    //  fElement
+    //      If the type is Leaf/Any*, then this is the qName of the element. If the URI
+    //      is fgPCDataElemId, then its a PCData node.  Else, it is zero.
+    //
+    //  fFirst
+    //  fSecond
+    //      The optional first and second nodes. The fType field indicates
+    //      which of these are valid. The validaty constraints are:
+    //
+    //          Leaf = Neither valid
+    //          ZeroOrOne, ZeroOrMore = First
+    //          Choice, Sequence, All = First and Second
+    //          Any* = Neither valid
+    //
+    //  fType
+    //      The type of node. This controls how many of the child node fields
+    //      are used.
+    //
+    //  fAdoptFirst
+    //      Indicate if this ContentSpecNode adopts the fFirst, and is responsible
+    //      for deleting it.
+    //
+    //  fAdoptSecond
+    //      Indicate if this ContentSpecNode adopts the fSecond, and is responsible
+    //      for deleting it.
+    //
+    //  fMinOccurs
+    //      Indicate the minimum times that this node can occur
+    //
+    //  fMaxOccurs
+    //      Indicate the maximum times that this node can occur
+    //      -1 (Unbounded), default (1)
+    // -----------------------------------------------------------------------
+    MemoryManager*      fMemoryManager;
+    QName*              fElement;
+    XMLElementDecl*     fElementDecl;
+    ContentSpecNode*    fFirst;
+    ContentSpecNode*    fSecond;
+    NodeTypes           fType;
+    bool                fAdoptFirst;
+    bool                fAdoptSecond;
+    int                 fMinOccurs;
+    int                 fMaxOccurs;
+};
+
+// ---------------------------------------------------------------------------
+//  ContentSpecNode: Constructors and Destructor
+// ---------------------------------------------------------------------------
+inline ContentSpecNode::ContentSpecNode(MemoryManager* const manager) :
+
+    fMemoryManager(manager)
+    , fElement(0)
+    , fElementDecl(0)
+    , fFirst(0)
+    , fSecond(0)
+    , fType(ContentSpecNode::Leaf)
+    , fAdoptFirst(true)
+    , fAdoptSecond(true)
+    , fMinOccurs(1)
+    , fMaxOccurs(1)
+{
+}
+
+inline
+ContentSpecNode::ContentSpecNode(QName* const element,
+                                 MemoryManager* const manager) :
+
+    fMemoryManager(manager)
+    , fElement(0)
+    , fElementDecl(0)
+    , fFirst(0)
+    , fSecond(0)
+    , fType(ContentSpecNode::Leaf)
+    , fAdoptFirst(true)
+    , fAdoptSecond(true)
+    , fMinOccurs(1)
+    , fMaxOccurs(1)
+{
+    if (element)
+        fElement = new (fMemoryManager) QName(*element);
+}
+
+inline
+ContentSpecNode::ContentSpecNode(XMLElementDecl* const elemDecl,
+                                 MemoryManager* const manager) :
+
+    fMemoryManager(manager)
+    , fElement(0)
+    , fElementDecl(elemDecl)
+    , fFirst(0)
+    , fSecond(0)
+    , fType(ContentSpecNode::Leaf)
+    , fAdoptFirst(true)
+    , fAdoptSecond(true)
+    , fMinOccurs(1)
+    , fMaxOccurs(1)
+{
+    if (elemDecl)
+        fElement = new (manager) QName(*(elemDecl->getElementName()));
+}
+
+inline
+ContentSpecNode::ContentSpecNode( QName* const element
+                                , const bool copyQName
+                                , MemoryManager* const manager) :
+
+    fMemoryManager(manager)
+    , fElement(0)
+    , fElementDecl(0)
+    , fFirst(0)
+    , fSecond(0)
+    , fType(ContentSpecNode::Leaf)
+    , fAdoptFirst(true)
+    , fAdoptSecond(true)
+    , fMinOccurs(1)
+    , fMaxOccurs(1)
+{
+    if (copyQName)
+    {
+        if (element)
+            fElement = new (fMemoryManager) QName(*element);
+    }
+    else
+    {
+        fElement = element;
+    }
+}
+
+inline
+ContentSpecNode::ContentSpecNode(const  NodeTypes              type
+                                ,       ContentSpecNode* const firstAdopt
+                                ,       ContentSpecNode* const secondAdopt
+                                , const bool                   adoptFirst
+                                , const bool                   adoptSecond
+                                ,       MemoryManager* const   manager) :
+
+    fMemoryManager(manager)
+    , fElement(0)
+    , fElementDecl(0)
+    , fFirst(firstAdopt)
+    , fSecond(secondAdopt)
+    , fType(type)
+    , fAdoptFirst(adoptFirst)
+    , fAdoptSecond(adoptSecond)
+    , fMinOccurs(1)
+    , fMaxOccurs(1)
+{
+}
+
+inline ContentSpecNode::~ContentSpecNode()
+{
+    // Delete our children, which cause recursive cleanup
+    if (fAdoptFirst) {
+		delete fFirst;
+    }
+
+    if (fAdoptSecond) {
+		delete fSecond;
+    }
+
+    delete fElement;
+}
+
+// ---------------------------------------------------------------------------
+//  ContentSpecNode: Getter methods
+// ---------------------------------------------------------------------------
+inline QName* ContentSpecNode::getElement()
+{
+    return fElement;
+}
+
+inline const QName* ContentSpecNode::getElement() const
+{
+    return fElement;
+}
+
+inline XMLElementDecl* ContentSpecNode::getElementDecl()
+{
+    return fElementDecl;
+}
+
+inline const XMLElementDecl* ContentSpecNode::getElementDecl() const
+{
+    return fElementDecl;
+}
+
+inline ContentSpecNode* ContentSpecNode::getFirst()
+{
+    return fFirst;
+}
+
+inline const ContentSpecNode* ContentSpecNode::getFirst() const
+{
+    return fFirst;
+}
+
+inline ContentSpecNode* ContentSpecNode::getSecond()
+{
+    return fSecond;
+}
+
+inline const ContentSpecNode* ContentSpecNode::getSecond() const
+{
+    return fSecond;
+}
+
+inline ContentSpecNode::NodeTypes ContentSpecNode::getType() const
+{
+    return fType;
+}
+
+inline ContentSpecNode* ContentSpecNode::orphanFirst()
+{
+    ContentSpecNode* retNode = fFirst;
+    fFirst = 0;
+    return retNode;
+}
+
+inline ContentSpecNode* ContentSpecNode::orphanSecond()
+{
+    ContentSpecNode* retNode = fSecond;
+    fSecond = 0;
+    return retNode;
+}
+
+inline int ContentSpecNode::getMinOccurs() const
+{
+    return fMinOccurs;
+}
+
+inline int ContentSpecNode::getMaxOccurs() const
+{
+    return fMaxOccurs;
+}
+
+inline bool ContentSpecNode::isFirstAdopted() const
+{
+    return fAdoptFirst;
+}
+
+inline bool ContentSpecNode::isSecondAdopted() const
+{
+    return fAdoptSecond;
+}
+
+
+// ---------------------------------------------------------------------------
+//  ContentSpecType: Setter methods
+// ---------------------------------------------------------------------------
+inline void ContentSpecNode::setElement(QName* const element)
+{
+    delete fElement;
+    fElement = 0;
+    if (element)
+        fElement = new (fMemoryManager) QName(*element);
+}
+
+inline void ContentSpecNode::setFirst(ContentSpecNode* const toAdopt)
+{
+    if (fAdoptFirst)
+        delete fFirst;
+    fFirst = toAdopt;
+}
+
+inline void ContentSpecNode::setSecond(ContentSpecNode* const toAdopt)
+{
+    if (fAdoptSecond)
+        delete fSecond;
+    fSecond = toAdopt;
+}
+
+inline void ContentSpecNode::setType(const NodeTypes type)
+{
+    fType = type;
+}
+
+inline void ContentSpecNode::setMinOccurs(int min)
+{
+    fMinOccurs = min;
+}
+
+inline void ContentSpecNode::setMaxOccurs(int max)
+{
+    fMaxOccurs = max;
+}
+
+inline void ContentSpecNode::setAdoptFirst(bool newState)
+{
+    fAdoptFirst = newState;
+}
+
+inline void ContentSpecNode::setAdoptSecond(bool newState)
+{
+    fAdoptSecond = newState;
+}
+
+// ---------------------------------------------------------------------------
+//  ContentSpecNode: Miscellaneous
+// ---------------------------------------------------------------------------
+inline bool ContentSpecNode::hasAllContent() {
+
+    if (fType == ContentSpecNode::ZeroOrOne) {
+        return (fFirst->getType() == ContentSpecNode::All);
+    }
+
+    return (fType == ContentSpecNode::All);
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/common/CMStateSet.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/common/CMStateSet.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/common/CMStateSet.hpp	(revision 2674)
@@ -0,0 +1,324 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: CMStateSet.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+//  DESCRIPTION:
+//
+//  This class is a specialized bitset class for the content model code of
+//  the validator. It assumes that its never called with two objects of
+//  different bit counts, and that bit sets smaller than 64 bits are far
+//  and away the most common. So it can be a lot more optimized than a general
+//  purpose utility bitset class
+//
+
+#if !defined(CMSTATESET_HPP)
+#define CMSTATESET_HPP
+
+#include <xercesc/util/ArrayIndexOutOfBoundsException.hpp>
+#include <xercesc/util/RuntimeException.hpp>
+#include <xercesc/util/PlatformUtils.hpp>
+#include <xercesc/framework/MemoryManager.hpp>
+#include <string.h>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class CMStateSet : public XMemory
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+    CMStateSet( const unsigned int bitCount
+              , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager) :
+
+        fBitCount(bitCount)
+        , fByteArray(0)
+        , fMemoryManager(manager)
+    {
+        //
+        //  See if we need to allocate the byte array or whether we can live
+        //  within the 64 bit high performance scheme.
+        //
+        if (fBitCount > 64)
+        {
+            fByteCount = fBitCount / 8;
+            if (fBitCount % 8)
+                fByteCount++;
+            fByteArray = (XMLByte*) fMemoryManager->allocate(fByteCount*sizeof(XMLByte)); //new XMLByte[fByteCount];
+        }
+
+        // Init all the bits to zero
+        zeroBits();
+    }
+
+
+    /*
+     * This method with the 'for' statement (commented out) cannot be made inline
+     * because the antiquated CC (CFront) compiler under HPUX 10.20 does not allow
+     * the 'for' statement inside any inline method. Unfortunately,
+     * we have to support it. So instead, we use memcpy().
+     */
+
+    CMStateSet(const CMStateSet& toCopy) :
+        XMemory(toCopy)
+      , fBitCount(toCopy.fBitCount)
+      , fByteArray(0)
+      , fMemoryManager(toCopy.fMemoryManager)
+    {
+        //
+        //  See if we need to allocate the byte array or whether we can live
+        //  within the 64 bit high performance scheme.
+        //
+        if (fBitCount > 64)
+        {
+            fByteCount = fBitCount / 8;
+            if (fBitCount % 8)
+                fByteCount++;
+            fByteArray = (XMLByte*) fMemoryManager->allocate(fByteCount*sizeof(XMLByte)); //new XMLByte[fByteCount];
+
+            memcpy((void *) fByteArray,
+                   (const void *) toCopy.fByteArray,
+                   fByteCount * sizeof(XMLByte));
+
+            // for (unsigned int index = 0; index < fByteCount; index++)
+            //     fByteArray[index] = toCopy.fByteArray[index];
+        }
+         else
+        {
+            fBits1 = toCopy.fBits1;
+            fBits2 = toCopy.fBits2;
+        }
+    }
+
+    ~CMStateSet()
+    {
+        if (fByteArray)
+            fMemoryManager->deallocate(fByteArray); //delete [] fByteArray;
+    }
+
+
+    // -----------------------------------------------------------------------
+    //  Set manipulation methods
+    // -----------------------------------------------------------------------
+    void operator&=(const CMStateSet& setToAnd)
+    {
+        if (fBitCount < 65)
+        {
+            fBits1 &= setToAnd.fBits1;
+            fBits2 &= setToAnd.fBits2;
+        }
+         else
+        {
+            for (unsigned int index = 0; index < fByteCount; index++)
+                fByteArray[index] &= setToAnd.fByteArray[index];
+        }
+    }
+
+    void operator|=(const CMStateSet& setToOr)
+    {
+        if (fBitCount < 65)
+        {
+            fBits1 |= setToOr.fBits1;
+            fBits2 |= setToOr.fBits2;
+        }
+         else
+        {
+            for (unsigned int index = 0; index < fByteCount; index++)
+                fByteArray[index] |= setToOr.fByteArray[index];
+        }
+    }
+
+    bool operator==(const CMStateSet& setToCompare) const
+    {
+        if (fBitCount != setToCompare.fBitCount)
+            return false;
+
+        if (fBitCount < 65)
+        {
+            return ((fBits1 == setToCompare.fBits1)
+            &&      (fBits2 == setToCompare.fBits2));
+        }
+
+        for (unsigned int index = 0; index < fByteCount; index++)
+        {
+            if (fByteArray[index] != setToCompare.fByteArray[index])
+                return false;
+        }
+        return true;
+    }
+
+    CMStateSet& operator=(const CMStateSet& srcSet)
+    {
+        if (this == &srcSet)
+            return *this;
+
+        // They have to be the same size
+        if (fBitCount != srcSet.fBitCount)
+            ThrowXMLwithMemMgr(RuntimeException, XMLExcepts::Bitset_NotEqualSize, fMemoryManager);
+
+        if (fBitCount < 65)
+        {
+            fBits1 = srcSet.fBits1;
+            fBits2 = srcSet.fBits2;
+        }
+         else
+        {
+            for (unsigned int index = 0; index < fByteCount; index++)
+                fByteArray[index] = srcSet.fByteArray[index];
+        }
+        return *this;
+    }
+
+
+    bool getBit(const unsigned int bitToGet) const
+    {
+        if (bitToGet >= fBitCount)
+            ThrowXMLwithMemMgr(ArrayIndexOutOfBoundsException, XMLExcepts::Bitset_BadIndex, fMemoryManager);
+
+        if (fBitCount < 65)
+        {
+            unsigned int mask = (0x1UL << (bitToGet % 32));
+            if (bitToGet < 32)
+                return ((fBits1 & mask) != 0);
+            else
+                return ((fBits2 & mask) != 0);
+        }
+
+        // Create the mask and byte values
+        const XMLByte mask1 = XMLByte(0x1 << (bitToGet % 8));
+        const unsigned int byteOfs = bitToGet >> 3;
+
+        // And access the right bit and byte
+        return ((fByteArray[byteOfs] & mask1) != 0);
+    }
+
+    bool isEmpty() const
+    {
+        if (fBitCount < 65)
+            return ((fBits1 == 0) && (fBits2 == 0));
+
+        for (unsigned int index = 0; index < fByteCount; index++)
+        {
+            if (fByteArray[index] != 0)
+                return false;
+        }
+        return true;
+    }
+
+    void setBit(const unsigned int bitToSet)
+    {
+        if (bitToSet >= fBitCount)
+            ThrowXMLwithMemMgr(ArrayIndexOutOfBoundsException, XMLExcepts::Bitset_BadIndex, fMemoryManager);
+
+        if (fBitCount < 65)
+        {
+            const unsigned int mask = (0x1UL << (bitToSet % 32));
+            if (bitToSet < 32)
+            {
+                fBits1 &= ~mask;
+                fBits1 |= mask;
+            }
+             else
+            {
+                fBits2 &= ~mask;
+                fBits2 |= mask;
+            }
+        }
+         else
+        {
+            // Create the mask and byte values
+            const XMLByte mask1 = XMLByte(0x1 << (bitToSet % 8));
+            const unsigned int byteOfs = bitToSet >> 3;
+
+            // And access the right bit and byte
+            fByteArray[byteOfs] &= ~mask1;
+            fByteArray[byteOfs] |= mask1;
+        }
+    }
+
+    void zeroBits()
+    {
+        if (fBitCount < 65)
+        {
+            fBits1 = 0;
+            fBits2 = 0;
+        }
+         else
+        {
+            for (unsigned int index = 0; index < fByteCount; index++)
+                fByteArray[index] = 0;
+        }
+    }
+
+    int hashCode() const
+    {
+        if (fBitCount < 65)
+        {
+            return fBits1+ fBits2 * 31;
+        }
+        else
+        {
+            int hash = 0;
+            for (int index = fByteCount - 1; index >= 0; index--)
+                hash = fByteArray[index] + hash * 31;
+            return hash;
+        }
+
+    }
+
+private :
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    CMStateSet();
+
+
+    // -----------------------------------------------------------------------
+    //  Private data members
+    //
+    //  fBitCount
+    //      The count of bits that the outside world wants to support,
+    //      so its the max bit index plus one.
+    //
+    //  fByteCount
+    //      If the bit count is > 64, then we use the fByteArray member to
+    //      store the bits, and this indicates its size in bytes. Otherwise
+    //      its value is meaningless and unset.
+    //
+    //  fBits1
+    //  fBits2
+    //      When the bit count is <= 64 (very common), these hold the bits.
+    //      Otherwise, the fByteArray member holds htem.
+    //
+    //  fByteArray
+    //      The array of bytes used when the bit count is > 64. It is
+    //      allocated as required.
+    // -----------------------------------------------------------------------
+    unsigned int    fBitCount;
+    unsigned int    fByteCount;
+    unsigned int    fBits1;
+    unsigned int    fBits2;
+    XMLByte*        fByteArray;
+    MemoryManager*  fMemoryManager;
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/common/CMUnaryOp.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/common/CMUnaryOp.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/common/CMUnaryOp.hpp	(revision 2674)
@@ -0,0 +1,88 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: CMUnaryOp.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+#if !defined(CMUNARYOP_HPP)
+#define CMUNARYOP_HPP
+
+#include <xercesc/validators/common/CMNode.hpp>
+
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class CMStateSet;
+
+class CMUnaryOp : public CMNode
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+    CMUnaryOp
+    (
+          const ContentSpecNode::NodeTypes type
+        ,       CMNode* const              nodeToAdopt
+        ,       MemoryManager* const       manager = XMLPlatformUtils::fgMemoryManager
+    );
+    ~CMUnaryOp();
+
+
+    // -----------------------------------------------------------------------
+    //  Getter methods
+    // -----------------------------------------------------------------------
+    const CMNode* getChild() const;
+    CMNode* getChild();
+
+
+    // -----------------------------------------------------------------------
+    //  Implementation of the public CMNode virtual interface
+    // -----------------------------------------------------------------------
+    bool isNullable() const;
+
+
+protected :
+    // -----------------------------------------------------------------------
+    //  Implementation of the protected CMNode virtual interface
+    // -----------------------------------------------------------------------
+    void calcFirstPos(CMStateSet& toSet) const;
+    void calcLastPos(CMStateSet& toSet) const;
+
+
+private :
+    // -----------------------------------------------------------------------
+    //  Private data members
+    //
+    //  fChild
+    //      This is the reference to the one child that we have for this
+    //      unary operation. We own it.
+    // -----------------------------------------------------------------------
+    CMNode*     fChild;
+
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    CMUnaryOp(const CMUnaryOp&);
+    CMUnaryOp& operator=(const CMUnaryOp&);
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/common/MixedContentModel.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/common/MixedContentModel.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/common/MixedContentModel.hpp	(revision 2674)
@@ -0,0 +1,189 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: MixedContentModel.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+#if !defined(MIXEDCONTENTMODEL_HPP)
+#define MIXEDCONTENTMODEL_HPP
+
+#include <xercesc/util/ValueVectorOf.hpp>
+#include <xercesc/framework/XMLContentModel.hpp>
+#include <xercesc/validators/common/ContentLeafNameTypeVector.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class ContentSpecNode;
+
+//
+//  MixedContentModel is a derivative of the abstract content model base
+//  class that handles the special case of mixed model elements. If an element
+//  is mixed model, it has PCDATA as its first possible content, followed
+//  by an alternation of the possible children. The children cannot have any
+//  numeration or order, so it must look like this:
+//
+//  <!ELEMENT Foo ((#PCDATA|a|b|c|)*)>
+//
+//  So, all we have to do is to keep an array of the possible children and
+//  validate by just looking up each child being validated by looking it up
+//  in the list.
+//
+class MixedContentModel : public XMLContentModel
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+    MixedContentModel
+    (
+        const bool                dtd
+        , ContentSpecNode* const  parentContentSpec
+		, const bool              ordered = false
+        , MemoryManager* const    manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    ~MixedContentModel();
+
+
+    // -----------------------------------------------------------------------
+    //  Getter methods
+    // -----------------------------------------------------------------------
+    bool hasDups() const;
+
+    // -----------------------------------------------------------------------
+    //  Implementation of the ContentModel virtual interface
+    // -----------------------------------------------------------------------
+    virtual int validateContent
+    (
+        QName** const         children
+      , const unsigned int    childCount
+      , const unsigned int    emptyNamespaceId
+    )   const;
+
+	virtual int validateContentSpecial
+    (
+        QName** const         children
+      , const unsigned int    childCount
+      , const unsigned int    emptyNamespaceId
+      , GrammarResolver*  const pGrammarResolver
+      , XMLStringPool*    const pStringPool
+    ) const;
+
+    virtual ContentLeafNameTypeVector* getContentLeafNameTypeVector() const ;
+
+    virtual unsigned int getNextState(const unsigned int currentState,
+                                      const unsigned int elementIndex) const;
+
+    virtual void checkUniqueParticleAttribution
+    (
+        SchemaGrammar*    const pGrammar
+      , GrammarResolver*  const pGrammarResolver
+      , XMLStringPool*    const pStringPool
+      , XMLValidator*     const pValidator
+      , unsigned int*     const pContentSpecOrgURI
+      , const XMLCh*            pComplexTypeName = 0
+    ) ;
+
+private :
+    // -----------------------------------------------------------------------
+    //  Private helper methods
+    // -----------------------------------------------------------------------
+    void buildChildList
+    (
+        ContentSpecNode* const                     curNode
+      , ValueVectorOf<QName*>&                     toFill
+      , ValueVectorOf<ContentSpecNode::NodeTypes>& toType
+    );
+
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    MixedContentModel();
+    MixedContentModel(const MixedContentModel&);
+    MixedContentModel& operator=(const MixedContentModel&);
+
+
+    // -----------------------------------------------------------------------
+    //  Private data members
+    //
+    //  fCount
+    //      The count of possible children in the fChildren member.
+    //
+    //  fChildren
+    //      The list of possible children that we have to accept. This array
+    //      is allocated as large as needed in the constructor.
+    //
+    //  fChildTypes
+    //      The type of the children to support ANY.
+    //
+    //  fOrdered
+    //      True if mixed content model is ordered. DTD mixed content models
+    //      are <em>always</em> unordered.
+    //
+    //  fDTD
+    //      Boolean to allow DTDs to validate even with namespace support.
+    //
+    // -----------------------------------------------------------------------
+    unsigned int                fCount;
+    QName**                     fChildren;
+    ContentSpecNode::NodeTypes* fChildTypes;
+    bool                        fOrdered;
+    bool                        fDTD;
+    MemoryManager*              fMemoryManager;
+};
+
+inline ContentLeafNameTypeVector* MixedContentModel::getContentLeafNameTypeVector() const
+{
+	return 0;
+}
+
+inline unsigned int
+MixedContentModel::getNextState(const unsigned int,
+                                const unsigned int) const {
+
+    return XMLContentModel::gInvalidTrans;
+}
+
+inline void MixedContentModel::checkUniqueParticleAttribution
+    (
+        SchemaGrammar*    const 
+      , GrammarResolver*  const 
+      , XMLStringPool*    const 
+      , XMLValidator*     const
+      , unsigned int*     const pContentSpecOrgURI
+      , const XMLCh*            /*pComplexTypeName*/ /*= 0*/
+    )
+{
+    // rename back
+    unsigned int i = 0;
+    for (i = 0; i < fCount; i++) {
+        unsigned int orgURIIndex = fChildren[i]->getURI();
+        if ((orgURIIndex != XMLContentModel::gEOCFakeId) &&
+            (orgURIIndex != XMLElementDecl::fgInvalidElemId) &&
+            (orgURIIndex != XMLElementDecl::fgPCDataElemId))
+            fChildren[i]->setURI(pContentSpecOrgURI[orgURIIndex]);
+    }
+
+    // for mixed content model, it's only a sequence
+    // UPA checking is not necessary
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/common/CMBinaryOp.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/common/CMBinaryOp.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/common/CMBinaryOp.hpp	(revision 2674)
@@ -0,0 +1,91 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: CMBinaryOp.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(CMBINARYOP_HPP)
+#define CMBINARYOP_HPP
+
+#include <xercesc/validators/common/CMNode.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class CMStateSet;
+
+class CMBinaryOp : public CMNode
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Constructors
+    // -----------------------------------------------------------------------
+    CMBinaryOp
+    (
+        const ContentSpecNode::NodeTypes type
+        ,     CMNode* const              leftToAdopt
+        ,     CMNode* const              rightToAdopt
+        ,     MemoryManager* const       manager = XMLPlatformUtils::fgMemoryManager
+    );
+    ~CMBinaryOp();
+
+
+    // -----------------------------------------------------------------------
+    //  Getter methods
+    // -----------------------------------------------------------------------
+    const CMNode* getLeft() const;
+    CMNode* getLeft();
+    const CMNode* getRight() const;
+    CMNode* getRight();
+
+
+    // -----------------------------------------------------------------------
+    //  Implementation of the public CMNode virtual interface
+    // -----------------------------------------------------------------------
+    bool isNullable() const;
+
+
+protected :
+    // -----------------------------------------------------------------------
+    //  Implementation of the protected CMNode virtual interface
+    // -----------------------------------------------------------------------
+    void calcFirstPos(CMStateSet& toSet) const;
+    void calcLastPos(CMStateSet& toSet) const;
+
+
+private :
+    // -----------------------------------------------------------------------
+    //  Private data members
+    //
+    //  fLeftChild
+    //  fRightChild
+    //      These are the references to the two nodes that are on either side
+    //      of this binary operation. We own them both.
+    // -----------------------------------------------------------------------
+    CMNode* fLeftChild;
+    CMNode* fRightChild;
+
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    CMBinaryOp(const CMBinaryOp&);
+    CMBinaryOp& operator=(const CMBinaryOp&);
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/common/AllContentModel.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/common/AllContentModel.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/common/AllContentModel.hpp	(revision 2674)
@@ -0,0 +1,155 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: AllContentModel.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+#if !defined(ALLCONTENTMODEL_HPP)
+#define ALLCONTENTMODEL_HPP
+
+#include <xercesc/framework/XMLContentModel.hpp>
+#include <xercesc/util/ValueVectorOf.hpp>
+#include <xercesc/validators/common/ContentLeafNameTypeVector.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class ContentSpecNode;
+
+//
+//  AllContentModel is a derivative of the abstract content model base
+//  class that handles the special case of <all> feature in schema. If a model
+//  is <all>, all non-optional children must appear
+//
+//  So, all we have to do is to keep an array of the possible children and
+//  validate by just looking up each child being validated by looking it up
+//  in the list, and make sure all non-optional children appear.
+//
+class AllContentModel : public XMLContentModel
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+    AllContentModel
+    (
+          ContentSpecNode* const parentContentSpec
+		, const bool             isMixed
+        , MemoryManager* const   manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    ~AllContentModel();
+
+    // -----------------------------------------------------------------------
+    //  Implementation of the ContentModel virtual interface
+    // -----------------------------------------------------------------------
+    virtual int validateContent
+    (
+        QName** const         children
+      , const unsigned int    childCount
+      , const unsigned int    emptyNamespaceId
+    )   const;
+
+	virtual int validateContentSpecial
+    (
+        QName** const         children
+      , const unsigned int    childCount
+      , const unsigned int    emptyNamespaceId
+      , GrammarResolver*  const pGrammarResolver
+      , XMLStringPool*    const pStringPool
+    ) const;
+
+    virtual ContentLeafNameTypeVector* getContentLeafNameTypeVector() const ;
+
+    virtual unsigned int getNextState(const unsigned int currentState,
+                                      const unsigned int elementIndex) const;
+
+    virtual void checkUniqueParticleAttribution
+    (
+        SchemaGrammar*    const pGrammar
+      , GrammarResolver*  const pGrammarResolver
+      , XMLStringPool*    const pStringPool
+      , XMLValidator*     const pValidator
+      , unsigned int*     const pContentSpecOrgURI
+      , const XMLCh*            pComplexTypeName = 0
+    ) ;
+
+private :
+    // -----------------------------------------------------------------------
+    //  Private helper methods
+    // -----------------------------------------------------------------------
+    void buildChildList
+    (
+        ContentSpecNode* const                     curNode
+      , ValueVectorOf<QName*>&                     toFill
+      , ValueVectorOf<bool>&                       toType
+    );
+
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    AllContentModel();
+    AllContentModel(const AllContentModel&);
+    AllContentModel& operator=(const AllContentModel&);
+
+
+    // -----------------------------------------------------------------------
+    //  Private data members
+    //
+    //  fCount
+    //      The count of possible children in the fChildren member.
+    //
+    //  fChildren
+    //      The list of possible children that we have to accept. This array
+    //      is allocated as large as needed in the constructor.
+    //
+    //  fChildOptional
+    //      The corresponding list of optional state of each child in fChildren
+    //      True if the child is optional (i.e. minOccurs = 0).
+    //
+    //  fNumRequired
+    //      The number of required children in <all> (i.e. minOccurs = 1)
+    //
+    //  fIsMixed
+    //      AllContentModel with mixed PCDATA.
+    // -----------------------------------------------------------------------
+    MemoryManager* fMemoryManager;
+    unsigned int    fCount;
+    QName**         fChildren;
+    bool*           fChildOptional;
+    unsigned int    fNumRequired;
+    bool            fIsMixed;
+    bool            fHasOptionalContent;
+};
+
+inline ContentLeafNameTypeVector* AllContentModel::getContentLeafNameTypeVector() const
+{
+	return 0;
+}
+
+inline unsigned int
+AllContentModel::getNextState(const unsigned int,
+                              const unsigned int) const {
+
+    return XMLContentModel::gInvalidTrans;
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
+
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/common/CMNode.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/common/CMNode.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/common/CMNode.hpp	(revision 2674)
@@ -0,0 +1,190 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: CMNode.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(CMNODE_HPP)
+#define CMNODE_HPP
+
+#include <xercesc/validators/common/ContentSpecNode.hpp>
+#include <xercesc/validators/common/CMStateSet.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class CMNode : public XMemory
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Constructors and Destructors
+    // -----------------------------------------------------------------------
+    CMNode
+    (
+        const ContentSpecNode::NodeTypes type
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+    virtual ~CMNode();
+
+
+    // -----------------------------------------------------------------------
+    //  Virtual methods to be provided derived node classes
+    // -----------------------------------------------------------------------
+    virtual bool isNullable() const = 0;
+
+
+    // -----------------------------------------------------------------------
+    //  Getter methods
+    // -----------------------------------------------------------------------
+    ContentSpecNode::NodeTypes getType() const;
+    const CMStateSet& getFirstPos() const;
+    const CMStateSet& getLastPos() const;
+
+
+    // -----------------------------------------------------------------------
+    //  Setter methods
+    // -----------------------------------------------------------------------
+    void setMaxStates(const unsigned int maxStates);
+
+
+protected :
+    // -----------------------------------------------------------------------
+    //  Protected, abstract methods
+    // -----------------------------------------------------------------------
+    virtual void calcFirstPos(CMStateSet& toUpdate) const = 0;
+    virtual void calcLastPos(CMStateSet& toUpdate) const = 0;
+
+    // -----------------------------------------------------------------------
+    //  Protected data members
+    //
+    //  fMemoryManager
+    //      Pluggable memory manager for dynamic allocation/deallocation.
+    // -----------------------------------------------------------------------
+    MemoryManager*             fMemoryManager;
+
+
+private :
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    CMNode();
+    CMNode(const CMNode&);
+    CMNode& operator=(const CMNode&);
+
+
+    // -----------------------------------------------------------------------
+    //  Private data members
+    //
+    //  fType
+    //      The type of node. This indicates whether its a leaf or an
+    //      operation.
+    //
+    //  fFirstPos
+    //      The set of NFA states that represent the entry states of this
+    //      node in the DFA.
+    //
+    //  fLastPos
+    //      The set of NFA states that represent the final states of this
+    //      node in the DFA.
+    //
+    //  fMaxStates
+    //      The maximum number of states that the NFA has, which means the
+    //      max number of NFA states that have to be traced in the state
+    //      sets during the building of the DFA. Its unfortunate that it
+    //      has to be stored redundantly, but we need to fault in the
+    //      state set members and they have to be sized to this size.
+    // -----------------------------------------------------------------------
+    ContentSpecNode::NodeTypes fType;
+    CMStateSet*                fFirstPos;
+    CMStateSet*                fLastPos;
+    unsigned int               fMaxStates;
+};
+
+
+
+// ---------------------------------------------------------------------------
+//  CMNode: Constructors and Destructors
+// ---------------------------------------------------------------------------
+inline CMNode::CMNode(const ContentSpecNode::NodeTypes type,
+                      MemoryManager* const manager) :
+
+    fMemoryManager(manager)
+    , fType(type)
+    , fFirstPos(0)
+    , fLastPos(0)
+    , fMaxStates(~0)
+{
+}
+
+inline CMNode::~CMNode()
+{
+    // Clean up any position sets that got created
+    delete fFirstPos;
+    delete fLastPos;
+}
+
+
+// ---------------------------------------------------------------------------
+//  CMNode: Getter methods
+// ---------------------------------------------------------------------------
+inline ContentSpecNode::NodeTypes CMNode::getType() const
+{
+    return fType;
+}
+
+inline const CMStateSet& CMNode::getFirstPos() const
+{
+    //
+    //  Fault in the state set if needed. Since we can't use mutable members
+    //  cast off the const'ness.
+    //
+    if (!fFirstPos)
+    {
+        CMNode* unconstThis = (CMNode*)this;
+        unconstThis->fFirstPos = new (fMemoryManager) CMStateSet(fMaxStates, fMemoryManager);
+        unconstThis->calcFirstPos(*fFirstPos);
+    }
+    return *fFirstPos;
+}
+
+inline const CMStateSet& CMNode::getLastPos() const
+{
+    //
+    //  Fault in the state set if needed. Since we can't use mutable members
+    //  cast off the const'ness.
+    //
+    if (!fLastPos)
+    {
+        CMNode* unconstThis = (CMNode*)this;
+        unconstThis->fLastPos = new (fMemoryManager) CMStateSet(fMaxStates, fMemoryManager);
+        unconstThis->calcLastPos(*fLastPos);
+    }
+    return *fLastPos;
+}
+
+
+// ---------------------------------------------------------------------------
+//  CMNode: Setter methods
+// ---------------------------------------------------------------------------
+inline void CMNode::setMaxStates(const unsigned int maxStates)
+{
+    fMaxStates = maxStates;
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/common/SimpleContentModel.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/common/SimpleContentModel.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/common/SimpleContentModel.hpp	(revision 2674)
@@ -0,0 +1,189 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: SimpleContentModel.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+#if !defined(SIMPLECONTENTMODEL_HPP)
+#define SIMPLECONTENTMODEL_HPP
+
+#include <xercesc/framework/XMLContentModel.hpp>
+#include <xercesc/validators/common/ContentSpecNode.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+//
+//  SimpleContentModel is a derivative of the abstract content model base
+//  class that handles a small set of simple content models that are just
+//  way overkill to give the DFA treatment.
+//
+//  DESCRIPTION:
+//
+//  This guy handles the following scenarios:
+//
+//      a
+//      a?
+//      a*
+//      a+
+//      a,b
+//      a|b
+//
+//  These all involve a unary operation with one element type, or a binary
+//  operation with two elements. These are very simple and can be checked
+//  in a simple way without a DFA and without the overhead of setting up a
+//  DFA for such a simple check.
+//
+//  NOTE:   Pass the XMLElementDecl::fgPCDataElemId value to represent a
+//          PCData node. Pass XMLElementDecl::fgInvalidElemId for unused element
+//
+class SimpleContentModel : public XMLContentModel
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+    SimpleContentModel
+    (
+        const bool                        dtd
+      , QName* const                      firstChild
+      , QName* const                      secondChild
+      , const ContentSpecNode::NodeTypes  cmOp
+      , MemoryManager* const              manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    ~SimpleContentModel();
+
+
+    // -----------------------------------------------------------------------
+    //  Implementation of the ContentModel virtual interface
+    // -----------------------------------------------------------------------
+	virtual int validateContent
+    (
+        QName** const         children
+      , const unsigned int    childCount
+      , const unsigned int    emptyNamespaceId
+    ) const;
+
+	virtual int validateContentSpecial
+    (
+        QName** const           children
+      , const unsigned int      childCount
+      , const unsigned int      emptyNamespaceId
+      , GrammarResolver*  const pGrammarResolver
+      , XMLStringPool*    const pStringPool
+    ) const;
+
+    virtual ContentLeafNameTypeVector *getContentLeafNameTypeVector() const;
+
+    virtual unsigned int getNextState(const unsigned int currentState,
+                                      const unsigned int elementIndex) const;
+
+    virtual void checkUniqueParticleAttribution
+    (
+        SchemaGrammar*    const pGrammar
+      , GrammarResolver*  const pGrammarResolver
+      , XMLStringPool*    const pStringPool
+      , XMLValidator*     const pValidator
+      , unsigned int*     const pContentSpecOrgURI
+      , const XMLCh*            pComplexTypeName = 0
+    ) ;
+
+ private :
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    SimpleContentModel();
+    SimpleContentModel(const SimpleContentModel&);
+    SimpleContentModel& operator=(const SimpleContentModel&);
+
+
+    // -----------------------------------------------------------------------
+    //  Private data members
+    //
+    //  fFirstChild
+    //  fSecondChild
+    //      The first (and optional second) child node. The
+    //      operation code tells us whether the second child is used or not.
+    //
+    //  fOp
+    //      The operation that this object represents. Since this class only
+    //      does simple contents, there is only ever a single operation
+    //      involved (i.e. the children of the operation are always one or
+    //      two leafs.)
+    //
+    //  fDTD
+    //      Boolean to allow DTDs to validate even with namespace support. */
+    //
+    // -----------------------------------------------------------------------
+    QName*                     fFirstChild;
+    QName*                     fSecondChild;
+    ContentSpecNode::NodeTypes fOp;
+    bool                       fDTD;
+    MemoryManager* const       fMemoryManager;
+};
+
+
+// ---------------------------------------------------------------------------
+//  SimpleContentModel: Constructors and Destructor
+// ---------------------------------------------------------------------------
+inline SimpleContentModel::SimpleContentModel
+(
+      const bool                       dtd
+    , QName* const                     firstChild
+    , QName* const                     secondChild
+    , const ContentSpecNode::NodeTypes cmOp
+     , MemoryManager* const            manager
+)
+    : fFirstChild(0)
+    , fSecondChild(0)
+    , fOp(cmOp)
+	, fDTD(dtd)
+    , fMemoryManager(manager)
+{
+    if (firstChild)
+        fFirstChild = new (manager) QName(*firstChild);
+    else
+        fFirstChild = new (manager) QName(XMLUni::fgZeroLenString, XMLUni::fgZeroLenString, XMLElementDecl::fgInvalidElemId, manager);
+
+    if (secondChild)
+        fSecondChild = new (manager) QName(*secondChild);
+    else
+        fSecondChild = new (manager) QName(XMLUni::fgZeroLenString, XMLUni::fgZeroLenString, XMLElementDecl::fgInvalidElemId, manager);
+}
+
+inline SimpleContentModel::~SimpleContentModel()
+{
+    delete fFirstChild;
+    delete fSecondChild;
+}
+
+
+// ---------------------------------------------------------------------------
+//  SimpleContentModel: Virtual methods
+// ---------------------------------------------------------------------------
+inline unsigned int
+SimpleContentModel::getNextState(const unsigned int,
+                                 const unsigned int) const {
+
+    return XMLContentModel::gInvalidTrans;
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/common/DFAContentModel.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/common/DFAContentModel.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/common/DFAContentModel.hpp	(revision 2674)
@@ -0,0 +1,244 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: DFAContentModel.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(DFACONTENTMODEL_HPP)
+#define DFACONTENTMODEL_HPP
+
+#include <xercesc/util/XercesDefs.hpp>
+#include <xercesc/util/ArrayIndexOutOfBoundsException.hpp>
+#include <xercesc/framework/XMLContentModel.hpp>
+#include <xercesc/validators/common/ContentLeafNameTypeVector.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class ContentSpecNode;
+class CMLeaf;
+class CMNode;
+class CMStateSet;
+
+//
+//  DFAContentModel is the heavy weight derivative of ContentModel that does
+//  all of the non-trivial element content validation. This guy does the full
+//  bore regular expression to DFA conversion to create a DFA that it then
+//  uses in its validation algorithm.
+//
+//  NOTE:   Upstream work insures that this guy will never see a content model
+//          with PCDATA in it. Any model with PCDATA is 'mixed' and is handled
+//          via the MixedContentModel class, since mixed models are very
+//          constrained in form and easily handled via a special case. This
+//          also makes our life much easier here.
+//
+class DFAContentModel : public XMLContentModel
+{
+public:
+    // -----------------------------------------------------------------------
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+    DFAContentModel
+    ( 
+          const bool             dtd
+        , ContentSpecNode* const elemContentSpec
+        , MemoryManager* const   manager = XMLPlatformUtils::fgMemoryManager
+    );
+    DFAContentModel
+    (
+          const bool             dtd
+        , ContentSpecNode* const elemContentSpec
+        , const bool             isMixed
+        , MemoryManager* const   manager
+    );
+
+    virtual ~DFAContentModel();
+
+
+    // -----------------------------------------------------------------------
+    //  Implementation of the virtual content model interface
+    // -----------------------------------------------------------------------
+    virtual int validateContent
+    (
+        QName** const         children
+      , const unsigned int    childCount
+      , const unsigned int    emptyNamespaceId
+    ) const;
+
+    virtual int validateContentSpecial
+    (
+        QName** const           children
+      , const unsigned int      childCount
+      , const unsigned int      emptyNamespaceId
+      , GrammarResolver*  const pGrammarResolver
+      , XMLStringPool*    const pStringPool
+    ) const;
+
+    virtual void checkUniqueParticleAttribution
+    (
+        SchemaGrammar*    const pGrammar
+      , GrammarResolver*  const pGrammarResolver
+      , XMLStringPool*    const pStringPool
+      , XMLValidator*     const pValidator
+      , unsigned int*     const pContentSpecOrgURI
+      , const XMLCh*            pComplexTypeName = 0
+    ) ;
+
+    virtual ContentLeafNameTypeVector* getContentLeafNameTypeVector() const ;
+
+    virtual unsigned int getNextState(const unsigned int currentState,
+                                      const unsigned int elementIndex) const;
+
+private :
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    DFAContentModel();
+    DFAContentModel(const DFAContentModel&);
+    DFAContentModel& operator=(const DFAContentModel&);
+
+
+    // -----------------------------------------------------------------------
+    //  Private helper methods
+    // -----------------------------------------------------------------------
+    void buildDFA(ContentSpecNode* const curNode);
+    CMNode* buildSyntaxTree(ContentSpecNode* const curNode);
+    void calcFollowList(CMNode* const curNode);
+    unsigned int* makeDefStateList() const;
+    int postTreeBuildInit
+    (
+                CMNode* const   nodeCur
+        , const unsigned int    curIndex
+    );
+
+
+    // -----------------------------------------------------------------------
+    //  Private data members
+    //
+    //  fElemMap
+    //  fElemMapSize
+    //      This is the map of unique input symbol elements to indices into
+    //      each state's per-input symbol transition table entry. This is part
+    //      of the built DFA information that must be kept around to do the
+    //      actual validation.
+    //
+    //  fElemMapType
+    //      This is a map of whether the element map contains information
+    //      related to ANY models.
+    //
+    //  fEmptyOk
+    //      This is an optimization. While building the transition table we
+    //      can see whether this content model would approve of an empty
+    //      content (which could happen if everything was optional.) So we
+    //      set this flag and short circuit that check, which would otherwise
+    //      be ugly and time consuming if we tried to determine it at each
+    //      validation call.
+    //
+    //  fEOCPos
+    //      The NFA position of the special EOC (end of content) node. This
+    //      is saved away since its used during the DFA build.
+    //
+    //  fFinalStateFlags
+    //      This is an array of booleans, one per state (there are
+    //      fTransTableSize states in the DFA) that indicates whether that
+    //      state is a final state.
+    //
+    //  fFollowList
+    //      The list of follow positions for each NFA position (i.e. for each
+    //      non-epsilon leaf node.) This is only used during the building of
+    //      the DFA, and is let go afterwards.
+    //
+    //  fHeadNode
+    //      This is the head node of our intermediate representation. It is
+    //      only non-null during the building of the DFA (just so that it
+    //      does not have to be passed all around.) Once the DFA is built,
+    //      this is no longer required so its deleted.
+    //
+    //  fLeafCount
+    //      The count of leaf nodes. This is an important number that set some
+    //      limits on the sizes of data structures in the DFA process.
+    //
+    //  fLeafList
+    //      An array of non-epsilon leaf nodes, which is used during the DFA
+    //      build operation, then dropped. These are just references to nodes
+    //      pointed to by fHeadNode, so we don't have to clean them up, just
+    //      the actually leaf list array itself needs cleanup.
+    //
+    //  fLeafListType
+    //      Array mapping ANY types to the leaf list.
+    //
+    //  fTransTable
+    //  fTransTableSize
+    //      This is the transition table that is the main by product of all
+    //      of the effort here. It is an array of arrays of ints. The first
+    //      dimension is the number of states we end up with in the DFA. The
+    //      second dimensions is the number of unique elements in the content
+    //      model (fElemMapSize). Each entry in the second dimension indicates
+    //      the new state given that input for the first dimension's start
+    //      state.
+    //
+    //      The fElemMap array handles mapping from element indexes to
+    //      positions in the second dimension of the transition table.
+    //
+    //      fTransTableSize is the number of valid entries in the transition
+    //      table, and in the other related tables such as fFinalStateFlags.
+    //
+    //  fDTD
+    //      Boolean to allow DTDs to validate even with namespace support.
+    //
+    //  fIsMixed
+    //      DFA ContentModel with mixed PCDATA.
+    // -----------------------------------------------------------------------
+    QName**                 fElemMap;
+    ContentSpecNode::NodeTypes  *fElemMapType;
+    unsigned int            fElemMapSize;
+    bool                    fEmptyOk;
+    unsigned int            fEOCPos;
+    bool*                   fFinalStateFlags;
+    CMStateSet**            fFollowList;
+    CMNode*                 fHeadNode;
+    unsigned int            fLeafCount;
+    CMLeaf**                fLeafList;
+    ContentSpecNode::NodeTypes  *fLeafListType;
+    unsigned int**          fTransTable;
+    unsigned int            fTransTableSize;
+    bool                    fDTD;
+    bool                    fIsMixed;
+    ContentLeafNameTypeVector *fLeafNameTypeVector;
+    MemoryManager*             fMemoryManager;
+};
+
+
+inline unsigned int
+DFAContentModel::getNextState(const unsigned int currentState,
+                              const unsigned int elementIndex) const {
+
+    if (currentState == XMLContentModel::gInvalidTrans) {
+        return XMLContentModel::gInvalidTrans;
+    }
+
+    if (currentState >= fTransTableSize || elementIndex >= fElemMapSize) {
+        ThrowXMLwithMemMgr(ArrayIndexOutOfBoundsException, XMLExcepts::Array_BadIndex, fMemoryManager);
+    }
+
+    return fTransTable[currentState][elementIndex];
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
+
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/common/Grammar.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/common/Grammar.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/common/Grammar.hpp	(revision 2674)
@@ -0,0 +1,206 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: Grammar.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+
+#if !defined(GRAMMAR_HPP)
+#define GRAMMAR_HPP
+
+#include <limits.h>
+
+#include <xercesc/framework/XMLElementDecl.hpp>
+#include <xercesc/framework/XMLEntityDecl.hpp>
+#include <xercesc/framework/XMLNotationDecl.hpp>
+
+#include <xercesc/internal/XSerializable.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class XMLGrammarDescription;
+
+//
+// This abstract class specifies the interface for a Grammar
+//
+
+class VALIDATORS_EXPORT Grammar : public XSerializable, public XMemory
+{
+public:
+
+    // -----------------------------------------------------------------------
+    //  Class Specific Types
+    //
+    //  DTDGrammarType    - Indicate this Grammar is built from a DTD.
+    //  SchemaGrammarType - Indicate this Grammar is built from a Schema.
+    //
+    //  TOP_LEVEL_SCOPE - outermost scope level (i.e. global) of a declaration.
+    //                    For DTD, all element decls and attribute decls always
+    //                    have TOP_LEVEL_SCOPE.  For schema, it may varies if
+    //                    it is inside a complex type.
+    //
+    //  UNKNOWN_SCOPE   - unknown scope level.  None of the decls should have this.
+    //
+    // -----------------------------------------------------------------------
+    enum GrammarType {
+        DTDGrammarType
+      , SchemaGrammarType
+      , UnKnown
+    };
+
+    enum {
+    	// These are well-known values that must simply be larger
+    	// than any reasonable scope
+		 UNKNOWN_SCOPE		= UINT_MAX - 0
+	   , TOP_LEVEL_SCOPE	= UINT_MAX - 1
+    };
+
+    // -----------------------------------------------------------------------
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+    virtual ~Grammar(){};
+
+    // -----------------------------------------------------------------------
+    //  Virtual Getter methods
+    // -----------------------------------------------------------------------
+    virtual GrammarType getGrammarType() const =0;
+    virtual const XMLCh* getTargetNamespace() const =0;
+    virtual bool getValidated() const = 0;
+
+    // Element Decl
+
+    // this method should only be used while the grammar is being
+    // constructed, not while it is being used
+    // in a validation episode!
+    virtual XMLElementDecl* findOrAddElemDecl
+    (
+        const   unsigned int    uriId
+        , const XMLCh* const    baseName
+        , const XMLCh* const    prefixName
+        , const XMLCh* const    qName
+        , unsigned int          scope
+        ,       bool&           wasAdded
+    ) = 0;
+
+    virtual unsigned int getElemId
+    (
+        const   unsigned int    uriId
+        , const XMLCh* const    baseName
+        , const XMLCh* const    qName
+        , unsigned int          scope
+    )   const = 0;
+
+    virtual const XMLElementDecl* getElemDecl
+    (
+        const   unsigned int    uriId
+        , const XMLCh* const    baseName
+        , const XMLCh* const    qName
+        , unsigned int          scope
+    )   const = 0;
+
+    virtual XMLElementDecl* getElemDecl
+    (
+        const   unsigned int    uriId
+        , const XMLCh* const    baseName
+        , const XMLCh* const    qName
+        , unsigned int          scope
+    ) = 0;
+
+    virtual const XMLElementDecl* getElemDecl
+    (
+        const   unsigned int    elemId
+    )   const = 0;
+
+    virtual XMLElementDecl* getElemDecl
+    (
+        const   unsigned int    elemId
+    ) = 0;
+
+    // Notation
+    virtual const XMLNotationDecl* getNotationDecl
+    (
+        const   XMLCh* const    notName
+    )   const=0;
+
+    virtual XMLNotationDecl* getNotationDecl
+    (
+        const   XMLCh* const    notName
+    )=0;
+
+    // -----------------------------------------------------------------------
+    //  Virtual Setter methods
+    // -----------------------------------------------------------------------
+    virtual XMLElementDecl* putElemDecl
+    (
+        const   unsigned int    uriId
+        , const XMLCh* const    baseName
+        , const XMLCh* const    prefixName
+        , const XMLCh* const    qName
+        , unsigned int          scope
+        , const bool            notDeclared = false
+    ) = 0;
+
+    virtual unsigned int putElemDecl
+    (
+        XMLElementDecl* const elemDecl
+        , const bool          notDeclared = false
+    )   = 0;
+
+    virtual unsigned int putNotationDecl
+    (
+        XMLNotationDecl* const notationDecl
+    )   const=0;
+
+    virtual void setValidated(const bool newState) = 0;
+
+    // -----------------------------------------------------------------------
+    //  Virtual methods
+    // -----------------------------------------------------------------------
+    virtual void reset()=0;
+
+    virtual void                    setGrammarDescription( XMLGrammarDescription*) = 0;
+    virtual XMLGrammarDescription*  getGrammarDescription() const = 0;
+
+    /***
+     * Support for Serialization/De-serialization
+     ***/
+    DECL_XSERIALIZABLE(Grammar)
+
+	static void     storeGrammar(XSerializeEngine&        serEng
+                               , Grammar* const           grammar);
+
+	static Grammar* loadGrammar(XSerializeEngine& serEng);
+
+protected :
+    // -----------------------------------------------------------------------
+    //  Hidden constructors
+    // -----------------------------------------------------------------------
+    Grammar(){};
+
+private:
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    Grammar(const Grammar&);
+    Grammar& operator=(const Grammar&);
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/common/CMAny.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/common/CMAny.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/common/CMAny.hpp	(revision 2674)
@@ -0,0 +1,98 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: CMAny.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(CMANY_HPP)
+#define CMANY_HPP
+
+#include <xercesc/validators/common/CMNode.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class CMStateSet;
+
+class CMAny : public CMNode
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Constructors
+    // -----------------------------------------------------------------------
+    CMAny
+    (
+        const   ContentSpecNode::NodeTypes type
+        , const unsigned int               URI
+        , const unsigned int               position
+        ,       MemoryManager* const       manager = XMLPlatformUtils::fgMemoryManager
+    );
+    ~CMAny();
+
+    // -----------------------------------------------------------------------
+    //  Getter methods
+    // -----------------------------------------------------------------------
+    unsigned int getURI() const;
+
+    unsigned int getPosition() const;
+
+    // -----------------------------------------------------------------------
+    //  Setter methods
+    // -----------------------------------------------------------------------
+    void setPosition(const unsigned int newPosition);
+
+    // -----------------------------------------------------------------------
+    //  Implementation of the public CMNode virtual interface
+    // -----------------------------------------------------------------------
+    bool isNullable() const;
+
+
+protected :
+    // -----------------------------------------------------------------------
+    //  Implementation of the protected CMNode virtual interface
+    // -----------------------------------------------------------------------
+    void calcFirstPos(CMStateSet& toSet) const;
+    void calcLastPos(CMStateSet& toSet) const;
+
+private :
+    // -----------------------------------------------------------------------
+    //  Private data members
+    //
+    //  fURI;
+    //  URI of the any content model. This value is set if the type is
+    //  of the following:
+    //  XMLContentSpec.CONTENTSPECNODE_ANY,
+    //  XMLContentSpec.CONTENTSPECNODE_ANY_OTHER.
+    //
+	//  fPosition
+    //  Part of the algorithm to convert a regex directly to a DFA
+    //  numbers each leaf sequentially. If its -1, that means its an
+    //  epsilon node. Zero and greater are non-epsilon positions.
+    // -----------------------------------------------------------------------
+    unsigned int fURI;
+    unsigned int fPosition;
+
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    CMAny(const CMAny&);
+    CMAny& operator=(const CMAny&);
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/common/CMLeaf.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/common/CMLeaf.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/common/CMLeaf.hpp	(revision 2674)
@@ -0,0 +1,244 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: CMLeaf.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(CMLEAF_HPP)
+#define CMLEAF_HPP
+
+#include <xercesc/validators/common/CMNode.hpp>
+
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+//
+//  This class represents a leaf in the content spec node tree of an
+//  element's content model. It just has an element qname and a position value,
+//  the latter of which is used during the building of a DFA.
+//
+class CMLeaf : public CMNode
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Constructors
+    // -----------------------------------------------------------------------
+    CMLeaf
+    (
+          QName* const         element
+        , const unsigned int   position = (~0)
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+    CMLeaf
+    (
+          QName* const         element
+        , const unsigned int   position
+        , const bool           adopt
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+    ~CMLeaf();
+
+
+    // -----------------------------------------------------------------------
+    //  Getter methods
+    // -----------------------------------------------------------------------
+    QName* getElement();
+    const QName* getElement() const;
+    unsigned int getPosition() const;
+
+
+    // -----------------------------------------------------------------------
+    //  Setter methods
+    // -----------------------------------------------------------------------
+    void setPosition(const unsigned int newPosition);
+
+
+    // -----------------------------------------------------------------------
+    //  Implementation of public CMNode virtual interface
+    // -----------------------------------------------------------------------
+    bool isNullable() const;
+
+
+protected :
+    // -----------------------------------------------------------------------
+    //  Implementation of protected CMNode virtual interface
+    // -----------------------------------------------------------------------
+    void calcFirstPos(CMStateSet& toSet) const;
+    void calcLastPos(CMStateSet& toSet) const;
+
+
+private :
+    // -----------------------------------------------------------------------
+    //  Private data members
+    //
+    //  fElement
+    //      This is the element that this leaf represents.
+    //
+    //  fPosition
+    //      Part of the algorithm to convert a regex directly to a DFA
+    //      numbers each leaf sequentially. If its -1, that means its an
+    //      epsilon node. All others are non-epsilon positions.
+    //
+    //  fAdopt
+    //      This node is responsible for the storage of the fElement QName.
+    // -----------------------------------------------------------------------
+    QName*          fElement;
+    unsigned int    fPosition;
+    bool            fAdopt;
+
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    CMLeaf(const CMLeaf&);
+    CMLeaf& operator=(const CMLeaf&);
+};
+
+
+// -----------------------------------------------------------------------
+//  Constructors
+// -----------------------------------------------------------------------
+inline CMLeaf::CMLeaf(       QName* const         element
+                     , const unsigned int         position
+                     ,       MemoryManager* const manager) :
+    CMNode(ContentSpecNode::Leaf, manager)
+    , fElement(0)
+    , fPosition(position)
+    , fAdopt(false)
+{
+    if (!element)
+    {
+        fElement = new (fMemoryManager) QName
+        (
+              XMLUni::fgZeroLenString
+            , XMLUni::fgZeroLenString
+            , XMLElementDecl::fgInvalidElemId
+            , fMemoryManager
+        );
+        // We have to be responsible for this QName - override default fAdopt
+        fAdopt = true;
+    }
+    else
+    {
+        fElement = element;
+    }
+}
+
+inline CMLeaf::CMLeaf(       QName* const         element
+                     , const unsigned int         position
+                     , const bool                 adopt
+                     ,       MemoryManager* const manager) :
+    CMNode(ContentSpecNode::Leaf, manager)
+    , fElement(0)
+    , fPosition(position)
+    , fAdopt(adopt)
+{
+    if (!element)
+    {
+        fElement = new (fMemoryManager) QName
+        (
+              XMLUni::fgZeroLenString
+            , XMLUni::fgZeroLenString
+            , XMLElementDecl::fgInvalidElemId
+            , fMemoryManager
+        );
+        // We have to be responsible for this QName - override adopt parameter
+        fAdopt = true;
+    }
+    else
+    {
+        fElement = element;
+    }
+}
+
+inline CMLeaf::~CMLeaf()
+{
+    if (fAdopt)
+        delete fElement;
+}
+
+
+// ---------------------------------------------------------------------------
+//  Getter methods
+// ---------------------------------------------------------------------------
+inline QName* CMLeaf::getElement()
+{
+    return fElement;
+}
+
+inline const QName* CMLeaf::getElement() const
+{
+    return fElement;
+}
+
+inline unsigned int CMLeaf::getPosition() const
+{
+    return fPosition;
+}
+
+
+// ---------------------------------------------------------------------------
+//  Setter methods
+// ---------------------------------------------------------------------------
+inline void CMLeaf::setPosition(const unsigned int newPosition)
+{
+    fPosition = newPosition;
+}
+
+
+// ---------------------------------------------------------------------------
+//  Implementation of public CMNode virtual interface
+// ---------------------------------------------------------------------------
+inline bool CMLeaf::isNullable() const
+{
+    // Leaf nodes are never nullable unless its an epsilon node
+    return (fPosition == -1);
+}
+
+
+// ---------------------------------------------------------------------------
+//  Implementation of protected CMNode virtual interface
+// ---------------------------------------------------------------------------
+inline void CMLeaf::calcFirstPos(CMStateSet& toSet) const
+{
+    // If we are an epsilon node, then the first pos is an empty set
+    if (fPosition == -1)
+    {
+        toSet.zeroBits();
+        return;
+    }
+
+    // Otherwise, its just the one bit of our position
+    toSet.setBit(fPosition);
+}
+
+inline void CMLeaf::calcLastPos(CMStateSet& toSet) const
+{
+    // If we are an epsilon node, then the last pos is an empty set
+    if (fPosition == -1)
+    {
+        toSet.zeroBits();
+        return;
+    }
+
+    // Otherwise, its just the one bit of our position
+    toSet.setBit(fPosition);
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/common/ContentLeafNameTypeVector.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/common/ContentLeafNameTypeVector.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/common/ContentLeafNameTypeVector.hpp	(revision 2674)
@@ -0,0 +1,120 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: ContentLeafNameTypeVector.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+#if !defined(CONTENTLEAFNAMETYPEVECTOR_HPP)
+#define CONTENTLEAFNAMETYPEVECTOR_HPP
+
+#include <xercesc/validators/common/ContentSpecNode.hpp>
+#include <xercesc/framework/MemoryManager.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class XMLPARSER_EXPORT ContentLeafNameTypeVector : public XMemory
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Class specific types
+    // -----------------------------------------------------------------------
+
+
+    // -----------------------------------------------------------------------
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+    ContentLeafNameTypeVector
+    (
+        MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+    ContentLeafNameTypeVector
+    (
+        QName** const                     qName
+      , ContentSpecNode::NodeTypes* const types
+      , const unsigned int                count
+      , MemoryManager* const              manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    ~ContentLeafNameTypeVector();
+
+    ContentLeafNameTypeVector(const ContentLeafNameTypeVector&);
+
+    // -----------------------------------------------------------------------
+    //  Getter methods
+    // -----------------------------------------------------------------------
+    QName* getLeafNameAt(const unsigned int pos) const;
+
+    const ContentSpecNode::NodeTypes getLeafTypeAt(const unsigned int pos) const;
+    const unsigned int getLeafCount() const;
+
+    // -----------------------------------------------------------------------
+    //  Setter methods
+    // -----------------------------------------------------------------------
+    void setValues
+    (
+        QName** const                      qName
+      , ContentSpecNode::NodeTypes* const  types
+      , const unsigned int                       count
+    );
+
+    // -----------------------------------------------------------------------
+    //  Miscellaneous
+    // -----------------------------------------------------------------------
+
+private :
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    ContentLeafNameTypeVector& operator=(const ContentLeafNameTypeVector&);
+
+    // -----------------------------------------------------------------------
+    //  helper methods
+    // -----------------------------------------------------------------------
+    void cleanUp();
+    void init(const unsigned int);
+
+    // -----------------------------------------------------------------------
+    //  Private Data Members
+    //
+    // -----------------------------------------------------------------------
+    MemoryManager*                fMemoryManager;
+    QName**                       fLeafNames;
+    ContentSpecNode::NodeTypes   *fLeafTypes;
+    unsigned int                  fLeafCount;
+};
+
+inline void ContentLeafNameTypeVector::cleanUp()
+{
+	fMemoryManager->deallocate(fLeafNames); //delete [] fLeafNames;
+	fMemoryManager->deallocate(fLeafTypes); //delete [] fLeafTypes;
+}
+
+inline void ContentLeafNameTypeVector::init(const unsigned int size)
+{
+    fLeafNames = (QName**) fMemoryManager->allocate(size * sizeof(QName*));//new QName*[size];
+    fLeafTypes = (ContentSpecNode::NodeTypes *) fMemoryManager->allocate
+    (
+        size * sizeof(ContentSpecNode::NodeTypes)
+    ); //new ContentSpecNode::NodeTypes [size];
+    fLeafCount = size;
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/common/GrammarResolver.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/common/GrammarResolver.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/common/GrammarResolver.hpp	(revision 2674)
@@ -0,0 +1,259 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * $Id: GrammarResolver.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(GRAMMARRESOLVER_HPP)
+#define GRAMMARRESOLVER_HPP
+
+#include <xercesc/framework/XMLGrammarPool.hpp>
+#include <xercesc/util/RefHashTableOf.hpp>
+#include <xercesc/util/StringPool.hpp>
+#include <xercesc/validators/common/Grammar.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class DatatypeValidator;
+class DatatypeValidatorFactory;
+class XMLGrammarDescription;
+
+/**
+ * This class embodies the representation of a Grammar pool Resolver.
+ * This class is called from the validator.
+ *
+ */
+
+class VALIDATORS_EXPORT GrammarResolver : public XMemory
+{
+public:
+
+    /** @name Constructor and Destructor */
+    //@{
+    /**
+     *
+     * Default Constructor
+     */
+    GrammarResolver(
+                    XMLGrammarPool* const gramPool
+                  , MemoryManager*  const manager = XMLPlatformUtils::fgMemoryManager
+                    );
+    /**
+      * Destructor
+      */
+    ~GrammarResolver();
+
+    //@}
+
+    /** @name Getter methods */
+    //@{
+    /**
+     * Retrieve the DatatypeValidator
+     *
+     * @param uriStr the namespace URI
+     * @param typeName the type name
+     * @return the DatatypeValidator associated with namespace & type name
+     */
+    DatatypeValidator* getDatatypeValidator(const XMLCh* const uriStr,
+                                            const XMLCh* const typeName);
+
+    /**
+     * Retrieve the grammar that is associated with the specified namespace key
+     *
+     * @param  gramDesc   grammar description for the grammar
+     * @return Grammar abstraction associated with the grammar description
+     */
+    Grammar* getGrammar( XMLGrammarDescription* const gramDesc ) ;
+
+    /**
+     * Retrieve the grammar that is associated with the specified namespace key
+     *
+     * @param  namespaceKey   Namespace key into Grammar pool
+     * @return Grammar abstraction associated with the NameSpace key.
+     */
+    Grammar* getGrammar( const XMLCh* const namespaceKey ) ;
+
+    /**
+     * Get an enumeration of Grammar in the Grammar pool
+     *
+     * @return enumeration of Grammar in Grammar pool
+     */
+    RefHashTableOfEnumerator<Grammar> getGrammarEnumerator() const;
+
+    /**
+     * Get an enumeration of the referenced Grammars 
+     *
+     * @return enumeration of referenced Grammars
+     */
+    RefHashTableOfEnumerator<Grammar> getReferencedGrammarEnumerator() const;
+
+    /**
+     * Get an enumeration of the cached Grammars in the Grammar pool
+     *
+     * @return enumeration of the cached Grammars in Grammar pool
+     */
+    RefHashTableOfEnumerator<Grammar> getCachedGrammarEnumerator() const;
+
+    /**
+     * Get a string pool of schema grammar element/attribute names/prefixes
+     * (used by TraverseSchema)
+     *
+     * @return a string pool of schema grammar element/attribute names/prefixes
+     */
+    XMLStringPool* getStringPool();
+
+    /**
+     * Is the specified Namespace key in Grammar pool?
+     *
+     * @param  nameSpaceKey    Namespace key
+     * @return True if Namespace key association is in the Grammar pool.
+     */
+    bool containsNameSpace( const XMLCh* const nameSpaceKey );
+
+    inline XMLGrammarPool* getGrammarPool() const;
+
+    inline MemoryManager* getGrammarPoolMemoryManager() const;
+
+    //@}
+
+    /** @name Setter methods */
+    //@{
+
+    /**
+      * Set the 'Grammar caching' flag
+      */
+    void cacheGrammarFromParse(const bool newState);
+
+    /**
+      * Set the 'Use cached grammar' flag
+      */
+    void useCachedGrammarInParse(const bool newState);
+
+    //@}
+
+
+    /** @name GrammarResolver methods */
+    //@{
+    /**
+     * Add the Grammar with Namespace Key associated to the Grammar Pool.
+     * The Grammar will be owned by the Grammar Pool.
+     *
+     * @param  grammarToAdopt  Grammar abstraction used by validator.
+     */
+    void putGrammar(Grammar* const               grammarToAdopt );
+
+    /**
+     * Returns the Grammar with Namespace Key associated from the Grammar Pool
+     * The Key entry is removed from the table (grammar is not deleted if
+     * adopted - now owned by caller).
+     *
+     * @param  nameSpaceKey    Key to associate with Grammar abstraction
+     */
+    Grammar* orphanGrammar(const XMLCh* const nameSpaceKey);
+
+    /**
+     * Cache the grammars in fGrammarBucket to fCachedGrammarRegistry.
+     * If a grammar with the same key is already cached, an exception is
+     * thrown and none of the grammars will be cached.
+     */
+    void cacheGrammars();
+
+    /**
+     * Reset internal Namespace/Grammar registry.
+     */
+    void reset();
+    void resetCachedGrammar();
+
+    /**
+     * Returns an XSModel, either from the GrammarPool or by creating one
+     */
+    XSModel*    getXSModel();
+
+
+    ValueVectorOf<SchemaGrammar*>* getGrammarsToAddToXSModel();
+
+    //@}
+
+private:
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    GrammarResolver(const GrammarResolver&);
+    GrammarResolver& operator=(const GrammarResolver&);
+
+    // -----------------------------------------------------------------------
+    //  Private data members
+    //
+    //  fStringPool            The string pool used by TraverseSchema to store
+    //                         element/attribute names and prefixes.
+    //                         Always owned by Grammar pool implementation
+    //
+    //  fGrammarBucket         The parsed Grammar Pool, if no caching option.
+    //
+    //  fGrammarFromPool       Referenced Grammar Set, not owned
+    //
+    //  fGrammarPool           The Grammar Set either plugged or created. 
+    //
+    //  fDataTypeReg           DatatypeValidatorFactory registery
+    //
+    //  fMemoryManager         Pluggable memory manager for dynamic memory
+    //                         allocation/deallocation
+    // -----------------------------------------------------------------------
+    bool                            fCacheGrammar;
+    bool                            fUseCachedGrammar;
+    bool                            fGrammarPoolFromExternalApplication;
+    XMLStringPool*                  fStringPool;
+    RefHashTableOf<Grammar>*        fGrammarBucket;
+    RefHashTableOf<Grammar>*        fGrammarFromPool;
+    DatatypeValidatorFactory*       fDataTypeReg;
+    MemoryManager*                  fMemoryManager;
+    XMLGrammarPool*                 fGrammarPool;
+    XSModel*                        fXSModel;
+    XSModel*                        fGrammarPoolXSModel;
+    ValueVectorOf<SchemaGrammar*>*  fGrammarsToAddToXSModel;
+};
+
+inline XMLStringPool* GrammarResolver::getStringPool() {
+
+    return fStringPool;
+}
+
+
+inline void GrammarResolver::useCachedGrammarInParse(const bool aValue)
+{
+    fUseCachedGrammar = aValue;
+}
+
+inline XMLGrammarPool* GrammarResolver::getGrammarPool() const
+{
+    return fGrammarPool;
+}
+
+inline MemoryManager* GrammarResolver::getGrammarPoolMemoryManager() const
+{
+    return fGrammarPool->getMemoryManager();
+}
+
+inline ValueVectorOf<SchemaGrammar*>* GrammarResolver::getGrammarsToAddToXSModel()
+{
+    return fGrammarsToAddToXSModel;
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/DTD/DTDElementDecl.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/DTD/DTDElementDecl.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/DTD/DTDElementDecl.hpp	(revision 2674)
@@ -0,0 +1,276 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: DTDElementDecl.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+#if !defined(DTDELEMENTDECL_HPP)
+#define DTDELEMENTDECL_HPP
+
+#include <xercesc/util/RefHashTableOf.hpp>
+#include <xercesc/util/QName.hpp>
+#include <xercesc/framework/XMLElementDecl.hpp>
+#include <xercesc/framework/XMLContentModel.hpp>
+#include <xercesc/validators/DTD/DTDAttDef.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class ContentSpecNode;
+class DTDAttDefList;
+
+
+//
+//  This class is a derivative of the basic element decl. This one implements
+//  the virtuals so that they work for a DTD. THe big difference is that
+//  they don't live in any URL in the DTD. The names are just stored as full
+//  QNames, so they are not split out and element decls don't live within
+//  URL namespaces or anything like that.
+//
+
+class VALIDATORS_EXPORT DTDElementDecl : public XMLElementDecl
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Class specific types
+    //
+    //  ModelTypes
+    //      Indicates the type of content model that an element has. This
+    //      indicates how the content model is represented and validated.
+    // -----------------------------------------------------------------------
+    enum ModelTypes
+    {
+        Empty
+        , Any
+        , Mixed_Simple
+        , Children
+
+        , ModelTypes_Count
+    };
+
+
+    // -----------------------------------------------------------------------
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+    DTDElementDecl(MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+    DTDElementDecl
+    (
+          const XMLCh* const   elemRawName
+        , const unsigned int   uriId
+        , const ModelTypes     modelType
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+    DTDElementDecl
+    (
+          QName* const         elementName
+        , const ModelTypes     modelType = Any
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    ~DTDElementDecl();
+
+
+    // -----------------------------------------------------------------------
+    //  The virtual element decl interface
+    // -----------------------------------------------------------------------
+    virtual XMLAttDef* findAttr
+    (
+        const   XMLCh* const    qName
+        , const unsigned int    uriId
+        , const XMLCh* const    baseName
+        , const XMLCh* const    prefix
+        , const LookupOpts      options
+        ,       bool&           wasAdded
+    )   const;
+    virtual XMLAttDefList& getAttDefList() const;
+    virtual CharDataOpts getCharDataOpts() const;
+    virtual bool hasAttDefs() const;
+    virtual bool resetDefs();
+    virtual const ContentSpecNode* getContentSpec() const;
+    virtual ContentSpecNode* getContentSpec();
+    virtual void setContentSpec(ContentSpecNode* toAdopt);
+    virtual XMLContentModel* getContentModel();
+    virtual void setContentModel(XMLContentModel* const newModelToAdopt);
+    virtual const XMLCh* getFormattedContentModel ()   const;
+
+    // -----------------------------------------------------------------------
+    // Support keyed collections
+    //
+    // This method allows objects of this type be placed into one of the
+    // standard keyed collections. This method will return the full name of
+    // the element, which will vary depending upon the type of the grammar.
+    // -----------------------------------------------------------------------
+    const XMLCh* getKey() const;
+
+    // -----------------------------------------------------------------------
+    //  Getter methods
+    // -----------------------------------------------------------------------
+    const DTDAttDef* getAttDef(const XMLCh* const attName) const;
+    DTDAttDef* getAttDef(const XMLCh* const attName);
+    ModelTypes getModelType() const;
+
+    /**
+     * @deprecated
+    **/
+    const XMLCh* getDOMTypeInfoName() const;
+
+    /**
+     * @deprecated
+    **/
+    const XMLCh* getDOMTypeInfoUri() const;
+
+    // -----------------------------------------------------------------------
+    //  Setter methods
+    // -----------------------------------------------------------------------
+    void addAttDef(DTDAttDef* const toAdd);
+    void setModelType(const DTDElementDecl::ModelTypes toSet);
+
+    /***
+     * Support for Serialization/De-serialization
+     ***/
+    DECL_XSERIALIZABLE(DTDElementDecl)
+
+    virtual XMLElementDecl::objectType  getObjectType() const;
+
+private :
+    // -----------------------------------------------------------------------
+    //  Private helper methods
+    // -----------------------------------------------------------------------
+    void faultInAttDefList() const;
+    XMLContentModel* createChildModel() ;
+    XMLContentModel* makeContentModel() ;
+    XMLCh* formatContentModel () const ;
+
+    // -----------------------------------------------------------------------
+    // Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    DTDElementDecl(const DTDElementDecl &);
+    DTDElementDecl& operator = (const  DTDElementDecl&);
+
+    // -----------------------------------------------------------------------
+    //  Private data members
+    //
+    //  fAttDefs
+    //      The list of attributes that are defined for this element. Each
+    //      element is its own little 'namespace' for attributes, so each
+    //      element maintains its own list of owned attribute defs. It is
+    //      faulted in when an attribute is actually added.
+    //
+    //  fAttList
+    //      We have to return a view of our att defs via the abstract view
+    //      that the scanner understands. It may or may not ever be asked
+    //      for so we fault it in as needed.
+    //
+    //  fContentSpec
+    //      This is the content spec for the node. It contains the original
+    //      content spec that was read from the DTD, as a tree of nodes. This
+    //      one is always set up, and is used to build the fContentModel
+    //      version if we are validating.
+    //
+    //  fModelType
+    //      The content model type of this element. This tells us what kind
+    //      of content model to create.
+    //
+    //  fContentModel
+    //      The content model object for this element. It is stored here via
+    //      its abstract interface.
+    //
+    //  fFormattedModel
+    //      This is a faulted in member. When the outside world asks for
+    //      our content model as a string, we format it and fault it into
+    //      this field (to avoid doing the formatted over and over.)
+    // -----------------------------------------------------------------------
+    ModelTypes                  fModelType;
+
+    RefHashTableOf<DTDAttDef>*  fAttDefs;
+    DTDAttDefList*              fAttList;
+    ContentSpecNode*            fContentSpec;
+    XMLContentModel*            fContentModel;
+    XMLCh*                      fFormattedModel;
+};
+
+// ---------------------------------------------------------------------------
+//  DTDElementDecl: XMLElementDecl virtual interface implementation
+// ---------------------------------------------------------------------------
+inline ContentSpecNode* DTDElementDecl::getContentSpec()
+{
+    return fContentSpec;
+}
+
+inline const ContentSpecNode* DTDElementDecl::getContentSpec() const
+{
+    return fContentSpec;
+}
+
+inline XMLContentModel* DTDElementDecl::getContentModel()
+{
+    if (!fContentModel)
+        fContentModel = makeContentModel();
+    return fContentModel;
+}
+
+inline void
+DTDElementDecl::setContentModel(XMLContentModel* const newModelToAdopt)
+{
+    delete fContentModel;
+    fContentModel = newModelToAdopt;
+
+    // reset formattedModel
+    if (fFormattedModel)
+    {
+        getMemoryManager()->deallocate(fFormattedModel);
+        fFormattedModel = 0;
+    }
+}
+
+// ---------------------------------------------------------------------------
+//  DTDElementDecl: Miscellaneous methods
+// ---------------------------------------------------------------------------
+inline const XMLCh* DTDElementDecl::getKey() const
+{
+    return getFullName();
+}
+
+// ---------------------------------------------------------------------------
+//  DTDElementDecl: Getter methods
+// ---------------------------------------------------------------------------
+inline DTDElementDecl::ModelTypes DTDElementDecl::getModelType() const
+{
+    return fModelType;
+}
+
+inline const XMLCh* DTDElementDecl::getDOMTypeInfoName() const {
+    return 0;
+}
+
+inline const XMLCh* DTDElementDecl::getDOMTypeInfoUri() const {
+    return 0;
+}
+
+// ---------------------------------------------------------------------------
+//  DTDElementDecl: Setter methods
+// ---------------------------------------------------------------------------
+inline void
+DTDElementDecl::setModelType(const DTDElementDecl::ModelTypes toSet)
+{
+    fModelType = toSet;
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/DTD/DTDAttDefList.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/DTD/DTDAttDefList.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/DTD/DTDAttDefList.hpp	(revision 2674)
@@ -0,0 +1,176 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: DTDAttDefList.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+#if !defined(DTDATTDEFLIST_HPP)
+#define DTDATTDEFLIST_HPP
+
+#include <xercesc/util/RefHashTableOf.hpp>
+#include <xercesc/validators/DTD/DTDElementDecl.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+//
+//  This is a derivative of the framework abstract class which defines the
+//  interface to a list of attribute defs that belong to a particular
+//  element. The scanner needs to be able to get a list of the attributes
+//  that an element supports, for use during the validation process and for
+//  fixed/default attribute processing.
+//
+//  Since each validator can store attributes differently, this abstract
+//  interface allows each validator to provide an implementation of this
+//  data strucure that works best for it.
+//
+//  For us, we just wrap the RefHashTableOf collection that the DTDElementDecl
+//  class uses to store the attributes that belong to it.
+//
+//  This clss does not adopt the hash table, it just references it. The
+//  hash table is owned by the element decl it is a member of.
+//
+class VALIDATORS_EXPORT DTDAttDefList : public XMLAttDefList
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+    DTDAttDefList
+    (
+        RefHashTableOf<DTDAttDef>* const    listToUse,
+        MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    ~DTDAttDefList();
+
+
+    // -----------------------------------------------------------------------
+    //  Implementation of the virtual interface
+    // -----------------------------------------------------------------------
+
+    /** 
+     * @deprecated This method is not thread-safe.
+     */
+    virtual bool hasMoreElements() const;
+    virtual bool isEmpty() const;
+    virtual XMLAttDef* findAttDef
+    (
+        const   unsigned long       uriID
+        , const XMLCh* const        attName
+    );
+    virtual const XMLAttDef* findAttDef
+    (
+        const   unsigned long       uriID
+        , const XMLCh* const        attName
+    )   const;
+    virtual XMLAttDef* findAttDef
+    (
+        const   XMLCh* const        attURI
+        , const XMLCh* const        attName
+    );
+    virtual const XMLAttDef* findAttDef
+    (
+        const   XMLCh* const        attURI
+        , const XMLCh* const        attName
+    )   const;
+
+    /** 
+     * @deprecated This method is not thread-safe.
+     */
+    virtual XMLAttDef& nextElement();
+
+    /** 
+     * @deprecated This method is not thread-safe.
+     */
+    virtual void Reset();
+
+    /**
+     * return total number of attributes in this list
+     */
+    virtual unsigned int getAttDefCount() const ;
+
+    /**
+     * return attribute at the index-th position in the list.
+     */
+    virtual XMLAttDef &getAttDef(unsigned int index) ;
+
+    /**
+     * return attribute at the index-th position in the list.
+     */
+    virtual const XMLAttDef &getAttDef(unsigned int index) const ;
+
+    /***
+     * Support for Serialization/De-serialization
+     ***/
+    DECL_XSERIALIZABLE(DTDAttDefList)
+
+	DTDAttDefList(MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+
+private :
+
+    void addAttDef(DTDAttDef *toAdd);
+    // -----------------------------------------------------------------------
+    // Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    DTDAttDefList(const DTDAttDefList &);
+    DTDAttDefList& operator = (const  DTDAttDefList&);
+
+    // -----------------------------------------------------------------------
+    //  Private data members
+    //
+    //  fEnum
+    //      This is an enerator for the list that we use to do the enumerator
+    //      type methods of this class.
+    //
+    //  fList
+    //      The list of DTDAttDef objects that represent the attributes that
+    //      a particular element supports.
+    //  fArray
+    //      vector of pointers to the DTDAttDef objects contained in this list
+    //  fSize
+    //      size of fArray
+    //  fCount
+    //      number of DTDAttDef objects currently stored in this list
+    // -----------------------------------------------------------------------
+    RefHashTableOfEnumerator<DTDAttDef>*    fEnum;
+    RefHashTableOf<DTDAttDef>*              fList;
+    DTDAttDef**                             fArray;
+    unsigned int                            fSize;
+    unsigned int                            fCount;
+
+    friend class DTDElementDecl;
+};
+
+inline void DTDAttDefList::addAttDef(DTDAttDef *toAdd)
+{
+    if(fCount == fSize)
+    {
+        // need to grow fArray
+        fSize <<= 1;
+        DTDAttDef** newArray = (DTDAttDef **)((getMemoryManager())->allocate( sizeof(DTDAttDef*) * fSize ));
+        memcpy(newArray, fArray, fCount * sizeof(DTDAttDef *));
+        (getMemoryManager())->deallocate(fArray);
+        fArray = newArray;
+    }
+    fArray[fCount++] = toAdd;
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/DTD/DTDEntityDecl.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/DTD/DTDEntityDecl.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/DTD/DTDEntityDecl.hpp	(revision 2674)
@@ -0,0 +1,205 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: DTDEntityDecl.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+#if !defined(DTDENTITYDECL_HPP)
+#define DTDENTITYDECL_HPP
+
+#include <xercesc/framework/XMLEntityDecl.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+//
+//  This is a derivative of the abstract version of an entity decl in the
+//  framework directory. We just need to provide implementation of a couple
+//  of methods.
+//
+class VALIDATORS_EXPORT DTDEntityDecl : public XMLEntityDecl
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+    DTDEntityDecl(MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+    DTDEntityDecl
+    (
+        const   XMLCh* const   entName
+        , const bool           fromIntSubset = false
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+    DTDEntityDecl
+    (
+        const   XMLCh* const   entName
+        , const XMLCh* const   value
+        , const bool           fromIntSubset = false
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+    DTDEntityDecl
+    (
+        const   XMLCh* const    entName
+        , const XMLCh           value
+        , const bool            fromIntSubset = false
+        , const bool            specialChar = false
+    );
+    ~DTDEntityDecl();
+
+
+    // -----------------------------------------------------------------------
+    //  Implementation of the virtual XMLEntityDecl interface
+    // -----------------------------------------------------------------------
+    virtual bool getDeclaredInIntSubset() const;
+    virtual bool getIsParameter() const;
+    virtual bool getIsSpecialChar() const;
+
+
+    // -----------------------------------------------------------------------
+    //  Setter methods
+    // -----------------------------------------------------------------------
+    void setDeclaredInIntSubset(const bool newValue);
+    void setIsParameter(const bool newValue);
+    void setIsSpecialChar(const bool newValue);
+
+    /***
+     * Support for Serialization/De-serialization
+     ***/
+    DECL_XSERIALIZABLE(DTDEntityDecl)
+
+private :
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    DTDEntityDecl(const DTDEntityDecl&);
+    DTDEntityDecl& operator=(DTDEntityDecl&);
+
+
+    // -----------------------------------------------------------------------
+    //  Private data members
+    //
+    //  fDeclaredInIntSubset
+    //      Indicates whether the entity was declared in the internal subset
+    //      or not. If not, it cannot be referred to from a standalone
+    //      document.
+    //
+    //  fIsParameter
+    //      Indicates whether this is a parameter entity or a general entity.
+    //
+    //  fIsSpecialChar
+    //      This indicates that its one of the special character entities,
+    //      e.g. lt or gt or amp. We need to know this because there are
+    //      places where only a numeric char ref or special char ref is valid
+    //      and all others are ignored or illegal.
+    // -----------------------------------------------------------------------
+    bool    fDeclaredInIntSubset;
+    bool    fIsParameter;
+    bool    fIsSpecialChar;
+};
+
+
+// ---------------------------------------------------------------------------
+//  DTDEntityDecl: Constructors and Destructor
+// ---------------------------------------------------------------------------
+inline DTDEntityDecl::DTDEntityDecl(MemoryManager* const manager) :
+
+    XMLEntityDecl(manager)
+    , fDeclaredInIntSubset(false)
+    , fIsParameter(false)
+    , fIsSpecialChar(false)
+{
+}
+
+inline DTDEntityDecl::DTDEntityDecl( const XMLCh* const   entName
+                                   , const bool           fromIntSubset
+                                   , MemoryManager* const manager) :
+
+    XMLEntityDecl(entName, manager)
+    , fDeclaredInIntSubset(fromIntSubset)
+    , fIsParameter(false)
+    , fIsSpecialChar(false)
+{
+}
+
+inline DTDEntityDecl::DTDEntityDecl( const XMLCh* const   entName
+                                   , const XMLCh* const   value
+                                   , const bool           fromIntSubset
+                                   , MemoryManager* const manager) :
+    XMLEntityDecl(entName, value, manager)
+    , fDeclaredInIntSubset(fromIntSubset)
+    , fIsParameter(false)
+    , fIsSpecialChar(false)
+{
+}
+
+inline DTDEntityDecl::DTDEntityDecl(const   XMLCh* const    entName
+                                    , const XMLCh           value
+                                    , const bool            fromIntSubset
+                                    , const bool            specialChar) :
+    XMLEntityDecl(entName, value, XMLPlatformUtils::fgMemoryManager)
+    , fDeclaredInIntSubset(fromIntSubset)
+    , fIsParameter(false)
+    , fIsSpecialChar(specialChar)
+{
+}
+
+inline DTDEntityDecl::~DTDEntityDecl()
+{
+}
+
+
+// ---------------------------------------------------------------------------
+//  DTDEntityDecl: Getter methods
+// ---------------------------------------------------------------------------
+inline bool DTDEntityDecl::getDeclaredInIntSubset() const
+{
+    return fDeclaredInIntSubset;
+}
+
+inline bool DTDEntityDecl::getIsParameter() const
+{
+    return fIsParameter;
+}
+
+inline bool DTDEntityDecl::getIsSpecialChar() const
+{
+    return fIsSpecialChar;
+}
+
+
+// ---------------------------------------------------------------------------
+//  DTDEntityDecl: Setter methods
+// ---------------------------------------------------------------------------
+inline void DTDEntityDecl::setDeclaredInIntSubset(const bool newValue)
+{
+    fDeclaredInIntSubset = newValue;
+}
+
+inline void DTDEntityDecl::setIsParameter(const bool newValue)
+{
+    fIsParameter = newValue;
+}
+
+inline void DTDEntityDecl::setIsSpecialChar(const bool newValue)
+{
+    fIsSpecialChar = newValue;
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/DTD/DTDValidator.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/DTD/DTDValidator.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/DTD/DTDValidator.hpp	(revision 2674)
@@ -0,0 +1,159 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: DTDValidator.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+
+#if !defined(DTDVALIDATOR_HPP)
+#define DTDVALIDATOR_HPP
+
+#include <xercesc/util/NameIdPool.hpp>
+#include <xercesc/framework/XMLValidator.hpp>
+#include <xercesc/validators/DTD/DTDGrammar.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class XMLMsgLoader;
+
+
+//
+//  This is a derivative of the abstract validator interface. This class
+//  implements a validator that supports standard XML 1.0 DTD semantics.
+//  This class handles scanning the internal and external subsets of the
+//  DTD, and provides the standard validation services against the DTD info
+//  it found.
+//
+class VALIDATORS_EXPORT DTDValidator : public XMLValidator
+{
+public:
+    // -----------------------------------------------------------------------
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+    DTDValidator(XMLErrorReporter* const errReporter = 0);
+    virtual ~DTDValidator();
+
+    // -----------------------------------------------------------------------
+    //  Implementation of the XMLValidator interface
+    // -----------------------------------------------------------------------
+    virtual int checkContent
+    (
+        XMLElementDecl* const   elemDecl
+        , QName** const         children
+        , const unsigned int    childCount
+    );
+
+    virtual void faultInAttr
+    (
+                XMLAttr&    toFill
+        , const XMLAttDef&  attDef
+    )   const;
+
+    virtual void preContentValidation(bool reuseGrammar,
+                                      bool validateDefAttr = false);
+
+    virtual void postParseValidation();
+
+    virtual void reset();
+
+    virtual bool requiresNamespaces() const;
+
+    virtual void validateAttrValue
+    (
+        const   XMLAttDef*                  attDef
+        , const XMLCh* const                attrValue
+        , bool                              preValidation = false
+        , const XMLElementDecl*             elemDecl = 0
+    );
+    virtual void validateElement
+    (
+        const   XMLElementDecl*             elemDef
+    );
+    virtual Grammar* getGrammar() const;
+    virtual void setGrammar(Grammar* aGrammar);
+
+    // -----------------------------------------------------------------------
+    //  Virtual DTD handler interface.
+    // -----------------------------------------------------------------------
+    virtual bool handlesDTD() const;
+
+    // -----------------------------------------------------------------------
+    //  Virtual Schema handler interface. handlesSchema() always return false.
+    // -----------------------------------------------------------------------
+    virtual bool handlesSchema() const;
+
+private:
+    // -----------------------------------------------------------------------
+    // Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    DTDValidator(const DTDValidator &);
+    DTDValidator& operator = (const  DTDValidator&);
+
+    // -----------------------------------------------------------------------
+    //  Helper
+    // -----------------------------------------------------------------------
+    void   checkTokenList(const XMLAttDef&  attDef
+                        ,       bool        toValidateNotation);
+
+    // -----------------------------------------------------------------------
+    //  Private data members
+    //
+    //  fDTDGrammar
+    //      The DTD information stored.
+    //
+    // -----------------------------------------------------------------------
+    DTDGrammar*                     fDTDGrammar;
+};
+
+// ---------------------------------------------------------------------------
+//  Virtual interface
+// ---------------------------------------------------------------------------
+inline Grammar* DTDValidator::getGrammar() const {
+    return fDTDGrammar;
+}
+
+inline void DTDValidator::setGrammar(Grammar* aGrammar) {
+    fDTDGrammar = (DTDGrammar*) aGrammar;
+}
+
+inline void DTDValidator::validateElement (const   XMLElementDecl*) {
+    // no special DTD Element validation
+}
+
+// ---------------------------------------------------------------------------
+//  DTDValidator: DTD handler interface
+// ---------------------------------------------------------------------------
+inline bool DTDValidator::handlesDTD() const
+{
+    // We definitely want to handle DTD scanning
+    return true;
+}
+
+// ---------------------------------------------------------------------------
+//  DTDValidator: Schema handler interface
+// ---------------------------------------------------------------------------
+inline bool DTDValidator::handlesSchema() const
+{
+    // No Schema scanning
+    return false;
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/DTD/DTDGrammar.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/DTD/DTDGrammar.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/DTD/DTDGrammar.hpp	(revision 2674)
@@ -0,0 +1,429 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: DTDGrammar.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+
+#if !defined(DTDGRAMMAR_HPP)
+#define DTDGRAMMAR_HPP
+
+#include <xercesc/util/RefHashTableOf.hpp>
+#include <xercesc/util/NameIdPool.hpp>
+#include <xercesc/util/StringPool.hpp>
+#include <xercesc/validators/common/Grammar.hpp>
+#include <xercesc/validators/DTD/DTDElementDecl.hpp>
+#include <xercesc/validators/DTD/DTDEntityDecl.hpp>
+#include <xercesc/framework/XMLDTDDescription.hpp>
+
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+//
+// This class stores the DTD information
+//  NOTE: DTDs are not namespace aware, so we just use regular NameIdPool
+//  data structures to store element and attribute decls. They are all set
+//  to be in the global namespace and the full QName is used as the base name
+//  of the decl. This means that all the URI parameters below are expected
+//  to be null pointers (and anything else will cause an exception.)
+//
+
+class VALIDATORS_EXPORT DTDGrammar : public Grammar
+{
+public:
+    // -----------------------------------------------------------------------
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+    DTDGrammar(MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+    virtual ~DTDGrammar();
+
+    // -----------------------------------------------------------------------
+    //  Implementation of Virtual Interface
+    // -----------------------------------------------------------------------
+    virtual Grammar::GrammarType getGrammarType() const;
+    virtual const XMLCh* getTargetNamespace() const;
+
+    // this method should only be used while the grammar is being
+    // constructed, not while it is being used
+    // in a validation episode!
+    virtual XMLElementDecl* findOrAddElemDecl
+    (
+        const   unsigned int    uriId
+        , const XMLCh* const    baseName
+        , const XMLCh* const    prefixName
+        , const XMLCh* const    qName
+        , unsigned int          scope
+        ,       bool&           wasAdded
+    ) ;
+
+    virtual unsigned int getElemId
+    (
+        const   unsigned int    uriId
+        , const XMLCh* const    baseName
+        , const XMLCh* const    qName
+        , unsigned int          scope
+    )   const ;
+
+    virtual const XMLElementDecl* getElemDecl
+    (
+        const   unsigned int    uriId
+        , const XMLCh* const    baseName
+        , const XMLCh* const    qName
+        , unsigned int          scope
+    )   const ;
+
+    virtual XMLElementDecl* getElemDecl
+    (
+        const   unsigned int    uriId
+        , const XMLCh* const    baseName
+        , const XMLCh* const    qName
+        , unsigned int          scope
+    );
+
+    virtual const XMLElementDecl* getElemDecl
+    (
+        const   unsigned int    elemId
+    )   const;
+
+    virtual XMLElementDecl* getElemDecl
+    (
+        const   unsigned int    elemId
+    );
+
+    virtual const XMLNotationDecl* getNotationDecl
+    (
+        const   XMLCh* const    notName
+    )   const;
+
+    virtual XMLNotationDecl* getNotationDecl
+    (
+        const   XMLCh* const    notName
+    );
+
+    virtual bool getValidated() const;
+
+    virtual XMLElementDecl* putElemDecl
+    (
+        const   unsigned int    uriId
+        , const XMLCh* const    baseName
+        , const XMLCh* const    prefixName
+        , const XMLCh* const    qName
+        , unsigned int          scope
+        , const bool            notDeclared = false
+    );
+
+    virtual unsigned int putElemDecl
+    (
+        XMLElementDecl* const elemDecl
+        , const bool          notDeclared = false
+    )   ;
+
+    virtual unsigned int putNotationDecl
+    (
+        XMLNotationDecl* const notationDecl
+    )   const;
+
+    virtual void setValidated(const bool newState);
+
+    virtual void reset();
+
+    // -----------------------------------------------------------------------
+    //  Getter methods
+    // -----------------------------------------------------------------------
+    
+    // deprecated.  returns the ID of the root element; not
+    // useable in multithreaded environments!
+    unsigned int getRootElemId() const;
+    const DTDEntityDecl* getEntityDecl(const XMLCh* const entName) const;
+    DTDEntityDecl* getEntityDecl(const XMLCh* const entName);
+    NameIdPool<DTDEntityDecl>* getEntityDeclPool();
+    const NameIdPool<DTDEntityDecl>* getEntityDeclPool() const;
+    NameIdPoolEnumerator<DTDElementDecl> getElemEnumerator() const;
+    NameIdPoolEnumerator<DTDEntityDecl> getEntityEnumerator() const;
+    NameIdPoolEnumerator<XMLNotationDecl> getNotationEnumerator() const;
+
+    // -----------------------------------------------------------------------
+    //  Setter methods
+    // -----------------------------------------------------------------------
+
+    // deprecated.  Not usable in multithreaded environments
+    void setRootElemId(unsigned int rootElemId);
+
+    virtual void                    setGrammarDescription( XMLGrammarDescription*);
+    virtual XMLGrammarDescription*  getGrammarDescription() const;
+
+    // -----------------------------------------------------------------------
+    //  Content management methods
+    // -----------------------------------------------------------------------
+    unsigned int putEntityDecl(DTDEntityDecl* const entityDecl) const;
+
+
+    // -----------------------------------------------------------------------
+    //  Notification that lazy data has been deleted
+    // -----------------------------------------------------------------------
+    static void reinitDfltEntities();
+
+    /***
+     * Support for Serialization/De-serialization
+     ***/
+    DECL_XSERIALIZABLE(DTDGrammar)
+
+private:
+    // -----------------------------------------------------------------------
+    //  Private helper methods
+    // -----------------------------------------------------------------------
+    void resetEntityDeclPool();
+
+    // -----------------------------------------------------------------------
+    // Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    DTDGrammar(const DTDGrammar &);
+    DTDGrammar& operator = (const  DTDGrammar&);
+
+    // -----------------------------------------------------------------------
+    //  Private data members
+    //
+    //  fElemDeclPool
+    //      This is the element decl pool. It contains all of the elements
+    //      declared in the DTD (and their associated attributes.)
+    //
+    //  fElemNonDeclPool
+    //      This is the element decl pool that is is populated as new elements
+    //      are seen in the XML document (not declared in the DTD), and they
+    //      are given default characteristics.
+    //
+    //  fEntityDeclPool
+    //      This is a pool of EntityDecl objects, which contains all of the
+    //      general entities that are declared in the DTD subsets, plus the
+    //      default entities (such as &gt; &lt; ...) defined by the XML Standard.
+    //
+    //  fNotationDeclPool
+    //      This is a pool of NotationDecl objects, which contains all of the
+    //      notations declared in the DTD subsets.
+    //
+    //  fRootElemId
+    //      The id of the root element that we found in the DOCTYPE statement.
+    //      Its initialized to ContentModel::fgInvalidElemId, so that its
+    //      invalid unless we have a DOCTYPE.
+    //
+    //  fValidated
+    //      Indicates if the content of the Grammar has been pre-validated
+    //      or not. When using a cached grammar, no need for pre content
+    //      validation.
+    //
+    //  fGramDesc: adopted
+    //
+    // -----------------------------------------------------------------------
+    static NameIdPool<DTDEntityDecl>* fDefaultEntities;
+    MemoryManager*                    fMemoryManager;
+    NameIdPool<DTDElementDecl>*       fElemDeclPool;
+    NameIdPool<DTDElementDecl>*       fElemNonDeclPool;
+    NameIdPool<DTDEntityDecl>*        fEntityDeclPool;
+    NameIdPool<XMLNotationDecl>*      fNotationDeclPool;
+    XMLDTDDescription*                fGramDesc;
+
+    unsigned int                      fRootElemId;
+    bool                              fValidated;
+
+    friend class XMLInitializer;
+};
+
+
+// ---------------------------------------------------------------------------
+//  DTDGrammar: Getter methods
+// ---------------------------------------------------------------------------
+inline unsigned int DTDGrammar::getRootElemId() const
+{
+    return fRootElemId;
+}
+
+// ---------------------------------------------------------------------------
+//  DTDGrammar: Getter methods
+// ---------------------------------------------------------------------------
+inline NameIdPoolEnumerator<DTDElementDecl>
+DTDGrammar::getElemEnumerator() const
+{
+    return NameIdPoolEnumerator<DTDElementDecl>(fElemDeclPool, fMemoryManager);
+}
+
+inline NameIdPoolEnumerator<DTDEntityDecl>
+DTDGrammar::getEntityEnumerator() const
+{
+    return NameIdPoolEnumerator<DTDEntityDecl>(fEntityDeclPool, fMemoryManager);
+}
+
+inline NameIdPoolEnumerator<XMLNotationDecl>
+DTDGrammar::getNotationEnumerator() const
+{
+    return NameIdPoolEnumerator<XMLNotationDecl>(fNotationDeclPool, fMemoryManager);
+}
+
+inline const DTDEntityDecl*
+DTDGrammar::getEntityDecl(const XMLCh* const entName) const
+{
+    DTDEntityDecl* decl = fDefaultEntities->getByKey(entName);
+
+    if (!decl)
+        return fEntityDeclPool->getByKey(entName);
+
+    return decl;
+}
+
+inline DTDEntityDecl* DTDGrammar::getEntityDecl(const XMLCh* const entName)
+{
+    DTDEntityDecl* decl = fDefaultEntities->getByKey(entName);
+
+    if (!decl)
+        return fEntityDeclPool->getByKey(entName);
+
+    return decl;
+}
+
+
+inline NameIdPool<DTDEntityDecl>* DTDGrammar::getEntityDeclPool()
+{
+    return fEntityDeclPool;
+}
+
+inline const NameIdPool<DTDEntityDecl>* DTDGrammar::getEntityDeclPool() const
+{
+    return fEntityDeclPool;
+}
+
+// -----------------------------------------------------------------------
+//  Setter methods
+// -----------------------------------------------------------------------
+inline void DTDGrammar::setRootElemId(unsigned int rootElemId) {
+    fRootElemId = rootElemId;
+}
+
+inline unsigned int DTDGrammar::putEntityDecl(DTDEntityDecl* const entityDecl)   const
+{
+    return fEntityDeclPool->put(entityDecl);
+}
+
+
+// ---------------------------------------------------------------------------
+//  DTDGrammar: Virtual methods
+// ---------------------------------------------------------------------------
+inline Grammar::GrammarType DTDGrammar::getGrammarType() const {
+    return Grammar::DTDGrammarType;
+}
+
+inline const XMLCh* DTDGrammar::getTargetNamespace() const {
+    return XMLUni::fgZeroLenString;
+}
+
+// Element Decl
+inline unsigned int DTDGrammar::getElemId (const   unsigned int
+                                              , const XMLCh* const
+                                              , const XMLCh* const    qName
+                                              , unsigned int) const
+{
+    //
+    //  In this case, we don't return zero to mean 'not found', so we have to
+    //  map it to the official not found value if we don't find it.
+    //
+    const DTDElementDecl* decl = fElemDeclPool->getByKey(qName);
+    if (!decl)
+        return XMLElementDecl::fgInvalidElemId;
+    return decl->getId();
+}
+
+inline const XMLElementDecl* DTDGrammar::getElemDecl( const   unsigned int
+                                              , const XMLCh* const
+                                              , const XMLCh* const    qName
+                                              , unsigned int)   const
+{
+    const XMLElementDecl* elemDecl = fElemDeclPool->getByKey(qName);
+
+    if (!elemDecl && fElemNonDeclPool)
+        elemDecl = fElemNonDeclPool->getByKey(qName);
+
+    return elemDecl;
+}
+
+inline XMLElementDecl* DTDGrammar::getElemDecl (const   unsigned int
+                                              , const XMLCh* const
+                                              , const XMLCh* const    qName
+                                              , unsigned int)
+{
+    XMLElementDecl* elemDecl = fElemDeclPool->getByKey(qName);
+
+    if (!elemDecl && fElemNonDeclPool)
+        elemDecl = fElemNonDeclPool->getByKey(qName);
+
+    return elemDecl;
+}
+
+inline const XMLElementDecl* DTDGrammar::getElemDecl(const unsigned int elemId) const
+{
+    // Look up this element decl by id
+    return fElemDeclPool->getById(elemId);
+}
+
+inline XMLElementDecl* DTDGrammar::getElemDecl(const unsigned int elemId)
+{
+    // Look up this element decl by id
+    return fElemDeclPool->getById(elemId);
+}
+
+inline unsigned int
+DTDGrammar::putElemDecl(XMLElementDecl* const elemDecl,
+                        const bool notDeclared) 
+{
+    if (notDeclared)
+    {
+        if(!fElemNonDeclPool)
+            fElemNonDeclPool = new (fMemoryManager) NameIdPool<DTDElementDecl>(29, 128, fMemoryManager);
+        return fElemNonDeclPool->put((DTDElementDecl*) elemDecl);
+    }
+
+    return fElemDeclPool->put((DTDElementDecl*) elemDecl);
+}
+
+// Notation Decl
+inline const XMLNotationDecl* DTDGrammar::getNotationDecl(const XMLCh* const notName) const
+{
+    return fNotationDeclPool->getByKey(notName);
+}
+
+inline XMLNotationDecl* DTDGrammar::getNotationDecl(const XMLCh* const notName)
+{
+    return fNotationDeclPool->getByKey(notName);
+}
+
+inline unsigned int DTDGrammar::putNotationDecl(XMLNotationDecl* const notationDecl)   const
+{
+    return fNotationDeclPool->put(notationDecl);
+}
+
+inline bool DTDGrammar::getValidated() const
+{
+    return fValidated;
+}
+
+inline void DTDGrammar::setValidated(const bool newState)
+{
+    fValidated = newState;
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/DTD/XMLDTDDescriptionImpl.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/DTD/XMLDTDDescriptionImpl.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/DTD/XMLDTDDescriptionImpl.hpp	(revision 2674)
@@ -0,0 +1,108 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: XMLDTDDescriptionImpl.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(XMLDTDDescriptionImplIMPL_HPP)
+#define XMLDTDDescriptionImplIMPL_HPP
+
+#include <xercesc/framework/XMLDTDDescription.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class XMLPARSER_EXPORT XMLDTDDescriptionImpl : public XMLDTDDescription
+{
+public :
+    // -----------------------------------------------------------------------
+    /** @name constructor and destructor */
+    // -----------------------------------------------------------------------
+    //@{
+    XMLDTDDescriptionImpl(
+                          const XMLCh* const   systemId 
+                        , MemoryManager* const memMgr
+                          );
+
+    ~XMLDTDDescriptionImpl();
+    //@}
+
+    // -----------------------------------------------------------------------
+    /** @name Implementation of GrammarDescription Interface */
+    // -----------------------------------------------------------------------
+    //@{
+    /**
+      * getGrammarKey
+      *
+      */
+    virtual const XMLCh*           getGrammarKey() const ;
+    //@}
+
+    // -----------------------------------------------------------------------
+    /** @name Implementation of DTDDescription Interface */
+    // -----------------------------------------------------------------------
+    //@{
+    /**
+      * Getter
+      *
+      */
+    virtual const XMLCh*          getRootName() const;
+    virtual const XMLCh*          getSystemId() const;
+
+    /**
+      * Setter
+      *
+      */
+    virtual void                  setRootName(const XMLCh* const);
+    virtual void                  setSystemId(const XMLCh* const);
+    //@}
+    
+    /***
+     * Support for Serialization/De-serialization
+     ***/
+    DECL_XSERIALIZABLE(XMLDTDDescriptionImpl)
+
+    XMLDTDDescriptionImpl(MemoryManager* const memMgr = XMLPlatformUtils::fgMemoryManager);
+
+private :
+    // -----------------------------------------------------------------------
+    /** name  Unimplemented copy constructor and operator= */
+    // -----------------------------------------------------------------------
+    //@{
+    XMLDTDDescriptionImpl(const XMLDTDDescriptionImpl& );
+    XMLDTDDescriptionImpl& operator=(const XMLDTDDescriptionImpl& );
+    //@}
+
+    // -----------------------------------------------------------------------
+    //
+    // fSystemId:
+    //     SYSTEM ID of the grammar
+    //
+    // fRootName: 
+    //      root name of the grammar
+    //
+    // -----------------------------------------------------------------------
+
+    const XMLCh*      fSystemId;
+    const XMLCh*      fRootName;    
+
+};
+
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/DTD/DTDAttDef.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/DTD/DTDAttDef.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/DTD/DTDAttDef.hpp	(revision 2674)
@@ -0,0 +1,162 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: DTDAttDef.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(DTDATTDEF_HPP)
+#define DTDATTDEF_HPP
+
+#include <xercesc/framework/XMLAttDef.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+//
+//  This class is a derivative of the core XMLAttDef class. This class adds
+//  any DTD specific data members and provides DTD specific implementations
+//  of any underlying attribute def virtual methods.
+//
+//  In the DTD we don't do namespaces, so the attribute names are just the
+//  QName literally from the DTD. This is what we return as the full name,
+//  which is what is used to key these in any name keyed collections.
+//
+class VALIDATORS_EXPORT DTDAttDef : public XMLAttDef
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Constructors and Destructors
+    // -----------------------------------------------------------------------
+    DTDAttDef(MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+    DTDAttDef
+    (
+        const   XMLCh* const           attName
+        , const XMLAttDef::AttTypes    type = CData
+        , const XMLAttDef::DefAttTypes defType = Implied
+        , MemoryManager* const         manager = XMLPlatformUtils::fgMemoryManager
+    );
+    DTDAttDef
+    (
+        const   XMLCh* const           attName
+        , const XMLCh* const           attValue
+        , const XMLAttDef::AttTypes    type
+        , const XMLAttDef::DefAttTypes defType
+        , const XMLCh* const           enumValues = 0
+        , MemoryManager* const         manager = XMLPlatformUtils::fgMemoryManager
+    );
+    ~DTDAttDef();
+
+
+    // -----------------------------------------------------------------------
+    //  Implementation of the XMLAttDef interface
+    // -----------------------------------------------------------------------
+    virtual const XMLCh* getFullName() const;
+
+    //does nothing currently
+    virtual void reset() {};
+
+    // -----------------------------------------------------------------------
+    //  Getter methods
+    // -----------------------------------------------------------------------
+    unsigned int getElemId() const;
+
+    /**
+     * @deprecated
+    **/
+    virtual const XMLCh* getDOMTypeInfoName() const;
+
+    /**
+     * @deprecated
+    **/
+    virtual const XMLCh* getDOMTypeInfoUri() const;
+
+
+    // -----------------------------------------------------------------------
+    //  Setter methods
+    // -----------------------------------------------------------------------
+    void setElemId(const unsigned int newId);
+    void setName(const XMLCh* const newName);
+
+    /***
+     * Support for Serialization/De-serialization
+     ***/
+    DECL_XSERIALIZABLE(DTDAttDef)
+
+private :
+    // -----------------------------------------------------------------------
+    // Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    DTDAttDef(const DTDAttDef &);
+    DTDAttDef& operator = (const  DTDAttDef&);
+
+    // -----------------------------------------------------------------------
+    //  Private data members
+    //
+    //  fElemId
+    //      This is the id of the element (the id is into the element decl
+    //      pool) of the element this attribute def said it belonged to.
+    //      This is used later to link back to the element, mostly for
+    //      validation purposes.
+    //
+    //  fName
+    //      This is the name of the attribute. Since we don't do namespaces
+    //      in the DTD, its just the fully qualified name.
+    // -----------------------------------------------------------------------
+    unsigned int    fElemId;
+    XMLCh*          fName;
+};
+
+
+// ---------------------------------------------------------------------------
+//  DTDAttDef: Implementation of the XMLAttDef interface
+// ---------------------------------------------------------------------------
+inline const XMLCh* DTDAttDef::getFullName() const
+{
+    return fName;
+}
+
+
+// ---------------------------------------------------------------------------
+//  DTDAttDef: Getter methods
+// ---------------------------------------------------------------------------
+inline unsigned int DTDAttDef::getElemId() const
+{
+    return fElemId;
+}
+
+inline const XMLCh* DTDAttDef::getDOMTypeInfoName() const 
+{
+    return getAttTypeString(getType(), getMemoryManager());
+}
+
+inline const XMLCh* DTDAttDef::getDOMTypeInfoUri() const 
+{
+    return 0;
+}
+
+// ---------------------------------------------------------------------------
+//  DTDAttDef: Setter methods
+// ---------------------------------------------------------------------------
+inline void DTDAttDef::setElemId(const unsigned int newId)
+{
+    fElemId = newId;
+}
+
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/DTD/DTDScanner.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/DTD/DTDScanner.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/DTD/DTDScanner.hpp	(revision 2674)
@@ -0,0 +1,279 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: DTDScanner.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+
+#if !defined(DTDSCANNER_HPP)
+#define DTDSCANNER_HPP
+
+#include <xercesc/validators/DTD/DTDGrammar.hpp>
+#include <xercesc/validators/DTD/DTDEntityDecl.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class XMLScanner;
+
+/*
+ * Default implementation of an XML DTD scanner.
+ */
+class DocTypeHandler;
+
+class VALIDATORS_EXPORT DTDScanner : public XMemory
+{
+public:
+    // -----------------------------------------------------------------------
+    //  Class specific types
+    //
+    //  EntityExpRes
+    //      Returned from scanEntityRef() to indicate how the expanded text
+    //      was treated.
+    //
+    //  IDTypes
+    //      Type of the ID
+    // -----------------------------------------------------------------------
+    enum EntityExpRes
+    {
+        EntityExp_Failed
+        , EntityExp_Pushed
+        , EntityExp_Returned
+    };
+
+    enum IDTypes
+    {
+        IDType_Public
+        , IDType_External
+        , IDType_Either
+    };
+
+
+
+    // -----------------------------------------------------------------------
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+    DTDScanner
+    (
+          DTDGrammar*           dtdGrammar
+        , DocTypeHandler* const docTypeHandler
+        , MemoryManager* const  grammarPoolMemoryManager
+        , MemoryManager* const  manager = XMLPlatformUtils::fgMemoryManager
+    );
+    virtual ~DTDScanner();
+
+    // -----------------------------------------------------------------------
+    //  Getter methods
+    // -----------------------------------------------------------------------
+    DocTypeHandler* getDocTypeHandler();
+    const DocTypeHandler* getDocTypeHandler() const;
+
+    // -----------------------------------------------------------------------
+    //  Setter methods
+    //
+    //  setScannerInfo() is called by the scanner to tell the DTDScanner
+    //  about the stuff it needs to have access to.
+    // -----------------------------------------------------------------------
+    void setScannerInfo
+    (
+        XMLScanner* const           owningScanner
+        , ReaderMgr* const          readerMgr
+        , XMLBufferMgr* const       bufMgr
+    );
+
+    void setDocTypeHandler
+    (
+            DocTypeHandler* const handlerToSet
+    );
+
+    void scanExtSubsetDecl(const bool inIncludeSect, const bool isDTD);
+    bool scanInternalSubset();
+    bool scanId
+    (
+                XMLBuffer&  pubIdToFill
+        ,       XMLBuffer&  sysIdToFill
+        , const IDTypes     whatKind
+    );
+
+private:
+    // -----------------------------------------------------------------------
+    // Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    DTDScanner(const DTDScanner &);
+    DTDScanner& operator = (const  DTDScanner&);
+
+    // -----------------------------------------------------------------------
+    //  Private DTD scanning methods. These are all in XMLValidator2.cpp
+    // -----------------------------------------------------------------------
+    bool checkForPERef
+    (
+          const bool    inLiteral
+        , const bool    inMarkup
+    );
+    bool expandPERef
+    (
+        const   bool    scanExternal
+        , const bool    inLiteral
+        , const bool    inMarkup
+        , const bool    throwEndOfExt = false
+    );
+    bool getQuotedString(XMLBuffer& toFill);
+    XMLAttDef* scanAttDef(DTDElementDecl& elemDecl, XMLBuffer& bufToUse);
+    bool scanAttValue
+    (
+        const   XMLCh* const        attrName
+        ,       XMLBuffer&          toFill
+        , const XMLAttDef::AttTypes type
+    );
+    void scanAttListDecl();
+    ContentSpecNode* scanChildren
+    (
+        const   DTDElementDecl&     elemDecl
+        ,       XMLBuffer&          bufToUse
+    );
+    bool scanCharRef(XMLCh& toFill, XMLCh& second);
+    void scanComment();
+    bool scanContentSpec(DTDElementDecl& toFill);
+    void scanDefaultDecl(DTDAttDef& toFill);
+    void scanElementDecl();
+    void scanEntityDecl();
+    bool scanEntityDef();
+    bool scanEntityLiteral(XMLBuffer& toFill);
+    bool scanEntityDef(DTDEntityDecl& decl, const bool isPEDecl);
+    EntityExpRes scanEntityRef(XMLCh& firstCh, XMLCh& secondCh, bool& escaped);
+    bool scanEnumeration
+    (
+        const   DTDAttDef&  attDef
+        ,       XMLBuffer&  toFill
+        , const bool        notation
+    );
+    bool scanEq();
+    void scanIgnoredSection();
+    void scanMarkupDecl(const bool parseTextDecl);
+    bool scanMixed(DTDElementDecl& toFill);
+    void scanNotationDecl();
+    void scanPI();
+    bool scanPublicLiteral(XMLBuffer& toFill);
+    bool scanSystemLiteral(XMLBuffer& toFill);
+    void scanTextDecl();
+    bool isReadingExternalEntity();
+
+
+    // -----------------------------------------------------------------------
+    //  Private data members
+    //
+    //  fDocTypeHandler
+    //      This holds the optional doc type handler that can be installed
+    //      and used to call back for all markup events. It is DTD specific.
+    //
+    //  fDumAttDef
+    //  fDumElemDecl
+    //  fDumEntityDecl
+    //      These are dummy objects into which mark decls are parsed when
+    //      they are just overrides of previously declared markup decls. In
+    //      such situations, the first one wins but we need to have somewhere
+    //      to parse them into. So these are lazily created and used as needed
+    //      when such markup decls are seen.
+    //
+    //  fInternalSubset
+    //      This is used to track whether we are in the internal subset or not,
+    //      in which case we are in the external subset.
+    //
+    //  fNextAttrId
+    //      Since att defs are per-element, we don't have a validator wide
+    //      attribute def pool. So we use a simpler data structure in each
+    //      element decl to store its att defs, and we use this simple counter
+    //      to apply a unique id to each new attribute.
+    //
+    //  fDTDGrammar
+    //      The DTD information we scanned like element decl, attribute decl
+    //      are stored in this Grammar.
+    //
+    //  fBufMgr
+    //      This is the buffer manager of the scanner. This is provided as a
+    //      convenience so that the DTDScanner doesn't have to create its own
+    //      buffer manager during the parse process.
+    //
+    //  fReaderMgr
+    //      This is a pointer to the reader manager that is being used by the scanner.
+    //
+    //  fScanner
+    //      The pointer to the scanner to which this DTDScanner belongs
+    //
+    //  fPEntityDeclPool
+    //      This is a pool of EntityDecl objects, which contains all of the
+    //      parameter entities that are declared in the DTD subsets.
+    //
+    //  fEmptyNamespaceId
+    //      The uri for all DTD decls
+    //
+    //  fDocTypeReaderId
+    //      The original reader in the fReaderMgr - to be compared against the
+    //      current reader to decide whether we are processing an external/internal
+    //      declaration
+    // -----------------------------------------------------------------------
+    MemoryManager*                  fMemoryManager;
+    MemoryManager*                  fGrammarPoolMemoryManager;
+    DocTypeHandler*                 fDocTypeHandler;
+    DTDAttDef*                      fDumAttDef;
+    DTDElementDecl*                 fDumElemDecl;
+    DTDEntityDecl*                  fDumEntityDecl;
+    bool                            fInternalSubset;
+    unsigned int                    fNextAttrId;
+    DTDGrammar*                     fDTDGrammar;
+    XMLBufferMgr*                   fBufMgr;
+    ReaderMgr*                      fReaderMgr;
+    XMLScanner*                     fScanner;
+    NameIdPool<DTDEntityDecl>*      fPEntityDeclPool;
+    unsigned int                    fEmptyNamespaceId;
+    unsigned int                    fDocTypeReaderId;
+};
+
+
+// ---------------------------------------------------------------------------
+//  DTDScanner: Getter methods
+// ---------------------------------------------------------------------------
+inline DocTypeHandler* DTDScanner::getDocTypeHandler()
+{
+    return fDocTypeHandler;
+}
+
+inline const DocTypeHandler* DTDScanner::getDocTypeHandler() const
+{
+    return fDocTypeHandler;
+}
+
+
+// ---------------------------------------------------------------------------
+//  DTDScanner: Setter methods
+// ---------------------------------------------------------------------------
+inline void DTDScanner::setDocTypeHandler(DocTypeHandler* const handlerToSet)
+{
+    fDocTypeHandler = handlerToSet;
+}
+
+// -----------------------------------------------------------------------
+//  Helper methods
+// -----------------------------------------------------------------------
+inline bool DTDScanner::isReadingExternalEntity() {
+    return (fDocTypeReaderId != fReaderMgr->getCurrentReaderNum());
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/DTD/DocTypeHandler.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/DTD/DocTypeHandler.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/DTD/DocTypeHandler.hpp	(revision 2674)
@@ -0,0 +1,147 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: DocTypeHandler.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+
+#if !defined(DOCTYPEHANDLER_HPP)
+#define DOCTYPEHANDLER_HPP
+
+#include <xercesc/util/XercesDefs.hpp>
+#include <xercesc/framework/XMLNotationDecl.hpp>
+#include <xercesc/validators/DTD/DTDAttDef.hpp>
+#include <xercesc/validators/DTD/DTDElementDecl.hpp>
+#include <xercesc/validators/DTD/DTDEntityDecl.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+//
+//  This abstract class defines the document type handler API's which can be
+//  used to process the DTD events generated by the DTDScanner as it scans the
+//  internal and external subset.
+
+class VALIDATORS_EXPORT DocTypeHandler
+{
+public:
+    // -----------------------------------------------------------------------
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+    DocTypeHandler()
+    {
+    }
+
+    virtual ~DocTypeHandler()
+    {
+    }
+
+
+    // -----------------------------------------------------------------------
+    //  The document type handler virtual handler interface
+    // -----------------------------------------------------------------------
+    virtual void attDef
+    (
+        const   DTDElementDecl&     elemDecl
+        , const DTDAttDef&          attDef
+        , const bool                ignoring
+    ) = 0;
+
+    virtual void doctypeComment
+    (
+        const   XMLCh* const    comment
+    ) = 0;
+
+    virtual void doctypeDecl
+    (
+        const   DTDElementDecl& elemDecl
+        , const XMLCh* const    publicId
+        , const XMLCh* const    systemId
+        , const bool            hasIntSubset
+        , const bool            hasExtSubset = false
+    ) = 0;
+
+    virtual void doctypePI
+    (
+        const   XMLCh* const    target
+        , const XMLCh* const    data
+    ) = 0;
+
+    virtual void doctypeWhitespace
+    (
+        const   XMLCh* const    chars
+        , const unsigned int    length
+    ) = 0;
+
+    virtual void elementDecl
+    (
+        const   DTDElementDecl& decl
+        , const bool            isIgnored
+    ) = 0;
+
+    virtual void endAttList
+    (
+        const   DTDElementDecl& elemDecl
+    ) = 0;
+
+    virtual void endIntSubset() = 0;
+
+    virtual void endExtSubset() = 0;
+
+    virtual void entityDecl
+    (
+        const   DTDEntityDecl&  entityDecl
+        , const bool            isPEDecl
+        , const bool            isIgnored
+    ) = 0;
+
+    virtual void resetDocType() = 0;
+
+    virtual void notationDecl
+    (
+        const   XMLNotationDecl&    notDecl
+        , const bool                isIgnored
+    ) = 0;
+
+    virtual void startAttList
+    (
+        const   DTDElementDecl& elemDecl
+    ) = 0;
+
+    virtual void startIntSubset() = 0;
+
+    virtual void startExtSubset() = 0;
+
+    virtual void TextDecl
+    (
+        const   XMLCh* const    versionStr
+        , const XMLCh* const    encodingStr
+    ) = 0;
+
+
+private:
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    DocTypeHandler(const DocTypeHandler&);
+    DocTypeHandler& operator=(const DocTypeHandler&);
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/datatype/HexBinaryDatatypeValidator.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/datatype/HexBinaryDatatypeValidator.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/datatype/HexBinaryDatatypeValidator.hpp	(revision 2674)
@@ -0,0 +1,101 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: HexBinaryDatatypeValidator.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(HEXBINARY_DATATYPEVALIDATOR_HPP)
+#define HEXBINARY_DATATYPEVALIDATOR_HPP
+
+#include <xercesc/validators/datatype/AbstractStringValidator.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class VALIDATORS_EXPORT HexBinaryDatatypeValidator : public AbstractStringValidator
+{
+public:
+
+    // -----------------------------------------------------------------------
+    //  Public ctor/dtor
+    // -----------------------------------------------------------------------
+	/** @name Constructors and Destructor */
+    //@{
+
+    HexBinaryDatatypeValidator
+    (
+        MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+    HexBinaryDatatypeValidator
+    (
+        DatatypeValidator* const baseValidator
+        , RefHashTableOf<KVStringPair>* const facets
+        , RefArrayVectorOf<XMLCh>* const enums
+        , const int finalSet
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    virtual ~HexBinaryDatatypeValidator();
+
+	//@}
+
+    /**
+      * Returns an instance of the base datatype validator class
+	  * Used by the DatatypeValidatorFactory.
+      */
+    virtual DatatypeValidator* newInstance
+    (
+        RefHashTableOf<KVStringPair>* const facets
+        , RefArrayVectorOf<XMLCh>* const enums
+        , const int finalSet
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    /***
+     * Support for Serialization/De-serialization
+     ***/
+    DECL_XSERIALIZABLE(HexBinaryDatatypeValidator)
+
+protected:
+
+    virtual void checkValueSpace(const XMLCh* const content
+                                , MemoryManager* const manager);
+
+    virtual int  getLength(const XMLCh* const content
+                       , MemoryManager* const manager) const;
+
+private:
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    HexBinaryDatatypeValidator(const HexBinaryDatatypeValidator&);
+    HexBinaryDatatypeValidator& operator=(const HexBinaryDatatypeValidator&);
+
+    // -----------------------------------------------------------------------
+    //  Private data members
+    //
+	//		Nil.
+    // -----------------------------------------------------------------------
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
+
+/**
+  * End of file HexBinaryDatatypeValidator.hpp
+  */
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/datatype/Base64BinaryDatatypeValidator.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/datatype/Base64BinaryDatatypeValidator.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/datatype/Base64BinaryDatatypeValidator.hpp	(revision 2674)
@@ -0,0 +1,100 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: Base64BinaryDatatypeValidator.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(BASE64BINARY_DATATYPEVALIDATOR_HPP)
+#define BASE64BINARY_DATATYPEVALIDATOR_HPP
+
+#include <xercesc/validators/datatype/AbstractStringValidator.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class VALIDATORS_EXPORT Base64BinaryDatatypeValidator : public AbstractStringValidator
+{
+public:
+
+    // -----------------------------------------------------------------------
+    //  Public ctor/dtor
+    // -----------------------------------------------------------------------
+	/** @name Constructors and Destructor */
+    //@{
+
+    Base64BinaryDatatypeValidator
+    (
+        MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+    Base64BinaryDatatypeValidator
+    (
+        DatatypeValidator* const baseValidator
+        , RefHashTableOf<KVStringPair>* const facets
+        , RefArrayVectorOf<XMLCh>* const enums
+        , const int finalSet
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+    virtual ~Base64BinaryDatatypeValidator();
+
+	//@}
+
+    /**
+      * Returns an instance of the base datatype validator class
+	  * Used by the DatatypeValidatorFactory.
+      */
+    virtual DatatypeValidator* newInstance
+    (
+        RefHashTableOf<KVStringPair>* const facets
+        , RefArrayVectorOf<XMLCh>* const enums
+        , const int finalSet
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    /***
+     * Support for Serialization/De-serialization
+     ***/
+    DECL_XSERIALIZABLE(Base64BinaryDatatypeValidator)
+
+protected:
+
+    virtual void checkValueSpace(const XMLCh* const content
+                            , MemoryManager* const manager);
+
+    virtual int  getLength(const XMLCh* const content
+                       , MemoryManager* const manager) const;
+
+    virtual void normalizeEnumeration(MemoryManager* const manager);
+
+    virtual void normalizeContent(XMLCh* const, MemoryManager* const manager) const;
+
+private:
+
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    Base64BinaryDatatypeValidator(const Base64BinaryDatatypeValidator&);
+    Base64BinaryDatatypeValidator& operator=(const Base64BinaryDatatypeValidator&); 
+
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
+
+/**
+  * End of file Base64BinaryDatatypeValidator.hpp
+  */
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/datatype/AbstractNumericValidator.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/datatype/AbstractNumericValidator.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/datatype/AbstractNumericValidator.hpp	(revision 2674)
@@ -0,0 +1,109 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: AbstractNumericValidator.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(ABSTRACT_NUMERIC_VALIDATOR_HPP)
+#define ABSTRACT_NUMERIC_VALIDATOR_HPP
+
+#include <xercesc/validators/datatype/AbstractNumericFacetValidator.hpp>
+#include <xercesc/util/RefVectorOf.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class VALIDATORS_EXPORT AbstractNumericValidator : public AbstractNumericFacetValidator
+{
+public:
+
+    // -----------------------------------------------------------------------
+    //  Public ctor/dtor
+    // -----------------------------------------------------------------------
+	/** @name Constructor. */
+    //@{
+
+    virtual ~AbstractNumericValidator();
+
+	//@}
+
+	virtual void validate
+                 (
+                  const XMLCh*             const content
+                ,       ValidationContext* const context = 0
+                ,       MemoryManager*     const manager = XMLPlatformUtils::fgMemoryManager
+                  );
+
+    virtual const XMLCh* getCanonicalRepresentation
+                        (
+                          const XMLCh*         const rawData
+                        ,       MemoryManager* const memMgr = 0
+                        ,       bool                 toValidate = false
+                        ) const;
+
+    /***
+     * Support for Serialization/De-serialization
+     ***/
+    DECL_XSERIALIZABLE(AbstractNumericValidator)
+
+protected:
+
+    AbstractNumericValidator
+    (
+        DatatypeValidator* const baseValidator
+        , RefHashTableOf<KVStringPair>* const facets
+        , const int finalSet
+        , const ValidatorType type
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    inline void init(RefArrayVectorOf<XMLCh>*  const enums
+        , MemoryManager* const manager);
+
+    //
+    // Abstract interface
+    //
+    virtual void checkContent(const XMLCh*             const content
+                            ,       ValidationContext* const context
+                            , bool                           asBase
+                            , MemoryManager* const manager) = 0;
+
+    void boundsCheck(const XMLNumber* const
+                    , MemoryManager* const manager);
+
+private:
+
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    AbstractNumericValidator(const AbstractNumericValidator&);
+    AbstractNumericValidator& operator=(const AbstractNumericValidator&);
+};
+
+inline void AbstractNumericValidator::init(RefArrayVectorOf<XMLCh>*  const enums
+                                           , MemoryManager* const manager)
+{
+    AbstractNumericFacetValidator::init(enums, manager);
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
+
+/**
+  * End of file AbstractNumericValidator.hpp
+  */
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/datatype/InvalidDatatypeValueException.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/datatype/InvalidDatatypeValueException.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/datatype/InvalidDatatypeValueException.hpp	(revision 2674)
@@ -0,0 +1,35 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: InvalidDatatypeValueException.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+#if !defined(INVALIDDATATYPEVALUEEXCEPTION_HPP)
+#define INVALIDDATATYPEVALUEEXCEPTION_HPP
+
+#include <xercesc/util/XercesDefs.hpp>
+#include <xercesc/util/XMLException.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+MakeXMLException(InvalidDatatypeValueException, XMLUTIL_EXPORT)
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/datatype/DecimalDatatypeValidator.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/datatype/DecimalDatatypeValidator.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/datatype/DecimalDatatypeValidator.hpp	(revision 2674)
@@ -0,0 +1,218 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: DecimalDatatypeValidator.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(DECIMAL_DATATYPEVALIDATOR_HPP)
+#define DECIMAL_DATATYPEVALIDATOR_HPP
+
+#include <xercesc/validators/datatype/AbstractNumericValidator.hpp>
+#include <xercesc/util/RefVectorOf.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class XMLBigDecimal;
+
+class VALIDATORS_EXPORT DecimalDatatypeValidator : public AbstractNumericValidator
+{
+public:
+
+    // -----------------------------------------------------------------------
+    //  Public ctor/dtor
+    // -----------------------------------------------------------------------
+	/** @name Constructors and Destructor */
+    //@{
+
+    DecimalDatatypeValidator
+    (
+        MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+    DecimalDatatypeValidator
+    (
+        DatatypeValidator* const baseValidator
+        , RefHashTableOf<KVStringPair>* const facets
+        , RefArrayVectorOf<XMLCh>* const enums
+        , const int finalSet
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+    virtual ~DecimalDatatypeValidator();
+
+	//@}
+
+    // -----------------------------------------------------------------------
+    // Compare methods
+    // -----------------------------------------------------------------------
+    /** @name Compare Function */
+    //@{
+
+    /**
+     * Compare two boolean data types
+     *
+     * @param content1
+     * @param content2
+     * @return
+     */
+    virtual int compare(const XMLCh* const, const XMLCh* const
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+        );
+
+    //@}
+
+    /**
+      * Returns an instance of the base datatype validator class
+	  * Used by the DatatypeValidatorFactory.
+      */
+    virtual DatatypeValidator* newInstance
+    (
+        RefHashTableOf<KVStringPair>* const facets
+        , RefArrayVectorOf<XMLCh>* const enums
+        , const int finalSet
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    virtual const XMLCh* getCanonicalRepresentation
+                        (
+                          const XMLCh*         const rawData
+                        ,       MemoryManager* const memMgr = 0
+                        ,       bool                 toValidate = false
+                        ) const;
+
+    /***
+     * Support for Serialization/De-serialization
+     ***/
+    DECL_XSERIALIZABLE(DecimalDatatypeValidator)
+
+protected:
+
+// -----------------------------------------------------------------------
+// ctor provided to be used by derived classes
+// -----------------------------------------------------------------------
+    DecimalDatatypeValidator
+    (
+        DatatypeValidator* const baseValidator
+        , RefHashTableOf<KVStringPair>* const facets
+        , const int finalSet
+        , const ValidatorType type
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+// -----------------------------------------------------------------------
+// Abstract interface from AbstractNumericFacetValidator
+// -----------------------------------------------------------------------
+
+    virtual void assignAdditionalFacet(const XMLCh* const key
+                                     , const XMLCh* const value
+                                     , MemoryManager* const manager);
+
+    virtual void inheritAdditionalFacet();
+
+    virtual void checkAdditionalFacetConstraints(MemoryManager* const manager) const;
+
+    virtual void checkAdditionalFacetConstraintsBase(MemoryManager* const manager) const;
+
+    virtual int  compareValues(const XMLNumber* const lValue
+                             , const XMLNumber* const rValue);
+
+    virtual void  setMaxInclusive(const XMLCh* const);
+
+    virtual void  setMaxExclusive(const XMLCh* const);
+
+    virtual void  setMinInclusive(const XMLCh* const);
+
+    virtual void  setMinExclusive(const XMLCh* const);
+
+    virtual void  setEnumeration(MemoryManager* const manager);
+
+// -----------------------------------------------------------------------
+// Abstract interface from AbstractNumericValidator
+// -----------------------------------------------------------------------
+
+    virtual void checkContent(const XMLCh*             const content
+                            ,       ValidationContext* const context
+                            , bool                           asBase
+                            ,       MemoryManager*     const manager);
+public:
+
+// -----------------------------------------------------------------------
+// Getter methods
+// -----------------------------------------------------------------------
+
+    inline unsigned int                    getTotalDigits() const;
+
+    inline unsigned int                    getFractionDigits() const;
+
+private:
+// -----------------------------------------------------------------------
+// Setter methods
+// -----------------------------------------------------------------------
+
+    inline void  setTotalDigits(unsigned int);
+
+    inline void  setFractionDigits(unsigned int);
+
+    // -----------------------------------------------------------------------
+    //  Private data members
+    //
+    // -----------------------------------------------------------------------
+    unsigned int         fTotalDigits;
+    unsigned int         fFractionDigits;
+
+
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    DecimalDatatypeValidator(const DecimalDatatypeValidator&);
+    DecimalDatatypeValidator& operator=(const DecimalDatatypeValidator&);
+};
+
+// -----------------------------------------------------------------------
+// Getter methods
+// -----------------------------------------------------------------------
+
+inline unsigned int DecimalDatatypeValidator::getTotalDigits() const
+{
+    return fTotalDigits;
+}
+
+inline unsigned int DecimalDatatypeValidator::getFractionDigits() const
+{
+    return fFractionDigits;
+}
+
+// -----------------------------------------------------------------------
+// Setter methods
+// -----------------------------------------------------------------------
+
+inline void DecimalDatatypeValidator::setTotalDigits(unsigned int newTotalDigits)
+{
+    fTotalDigits = newTotalDigits;
+}
+
+inline void DecimalDatatypeValidator::setFractionDigits(unsigned int newFractionDigits)
+{
+    fFractionDigits = newFractionDigits;
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
+
+/**
+  * End of file DecimalDatatypeValidator.hpp
+  */
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/datatype/YearDatatypeValidator.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/datatype/YearDatatypeValidator.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/datatype/YearDatatypeValidator.hpp	(revision 2674)
@@ -0,0 +1,95 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: YearDatatypeValidator.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(YEAR_DATATYPE_VALIDATOR_HPP)
+#define YEAR_DATATYPE_VALIDATOR_HPP
+
+#include <xercesc/validators/datatype/DateTimeValidator.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class VALIDATORS_EXPORT YearDatatypeValidator : public DateTimeValidator
+{
+public:
+
+    // -----------------------------------------------------------------------
+    //  Public ctor/dtor
+    // -----------------------------------------------------------------------
+	/** @name Constructors and Destructor */
+    //@{
+
+    YearDatatypeValidator
+    (
+        MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+    YearDatatypeValidator
+    (
+        DatatypeValidator* const baseValidator
+        , RefHashTableOf<KVStringPair>* const facets
+        , RefArrayVectorOf<XMLCh>* const enums
+        , const int finalSet
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+    ~YearDatatypeValidator();
+
+	//@}
+
+    /**
+      * Returns an instance of the base datatype validator class
+	  * Used by the DatatypeValidatorFactory.
+      */
+    virtual DatatypeValidator* newInstance
+    (
+        RefHashTableOf<KVStringPair>* const facets
+        , RefArrayVectorOf<XMLCh>* const enums
+        , const int finalSet
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    /***
+     * Support for Serialization/De-serialization
+     ***/
+    DECL_XSERIALIZABLE(YearDatatypeValidator)
+
+protected:
+
+    // -----------------------------------------------------------------------
+    //  implementation of (DateTimeValidator's) virtual interface
+    // -----------------------------------------------------------------------
+    virtual XMLDateTime*          parse(const XMLCh* const, MemoryManager* const manager);
+    virtual void                  parse(XMLDateTime* const);
+
+private:
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    YearDatatypeValidator(const YearDatatypeValidator&);
+    YearDatatypeValidator& operator=(const YearDatatypeValidator&);
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
+
+/**
+  * End of file YearDatatypeValidator.hpp
+  */
+
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/datatype/QNameDatatypeValidator.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/datatype/QNameDatatypeValidator.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/datatype/QNameDatatypeValidator.hpp	(revision 2674)
@@ -0,0 +1,104 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: QNameDatatypeValidator.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(QNAME_DATATYPEVALIDATOR_HPP)
+#define QNAME_DATATYPEVALIDATOR_HPP
+
+#include <xercesc/validators/datatype/AbstractStringValidator.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class VALIDATORS_EXPORT QNameDatatypeValidator : public AbstractStringValidator
+{
+public:
+
+    // -----------------------------------------------------------------------
+    //  Public ctor/dtor
+    // -----------------------------------------------------------------------
+	/** @name Constructors and Destructor */
+    //@{
+
+    QNameDatatypeValidator
+    (
+        MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+    QNameDatatypeValidator
+    (
+        DatatypeValidator*            const baseValidator
+        , RefHashTableOf<KVStringPair>* const facets
+        , RefArrayVectorOf<XMLCh>*           const enums
+        , const int                           finalSet
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+    virtual ~QNameDatatypeValidator();
+
+	//@}
+
+    /**
+      * Returns an instance of the base datatype validator class
+	  * Used by the DatatypeValidatorFactory.
+      */
+    virtual DatatypeValidator* newInstance
+    (
+        RefHashTableOf<KVStringPair>* const facets
+        , RefArrayVectorOf<XMLCh>* const enums
+        , const int finalSet
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    /***
+     * Support for Serialization/De-serialization
+     ***/
+    DECL_XSERIALIZABLE(QNameDatatypeValidator)
+
+protected:
+
+    virtual void checkValueSpace(const XMLCh* const content
+                                , MemoryManager* const manager);
+
+    virtual void checkContent(const XMLCh*             const content
+                            ,       ValidationContext* const context
+                            , bool                           asBase
+                            , MemoryManager* const manager);
+
+private:
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    QNameDatatypeValidator(const QNameDatatypeValidator&);
+    QNameDatatypeValidator& operator=(const QNameDatatypeValidator&);
+
+    // -----------------------------------------------------------------------
+    //  Private data members
+    //
+	//		Nil
+    // -----------------------------------------------------------------------
+
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
+
+/**
+  * End of file QNameDatatypeValidator.hpp
+  */
+
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/datatype/NCNameDatatypeValidator.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/datatype/NCNameDatatypeValidator.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/datatype/NCNameDatatypeValidator.hpp	(revision 2674)
@@ -0,0 +1,152 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: NCNameDatatypeValidator.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(NCNAME_DATATYPEVALIDATOR_HPP)
+#define NCNAME_DATATYPEVALIDATOR_HPP
+
+#include <xercesc/validators/datatype/StringDatatypeValidator.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class VALIDATORS_EXPORT NCNameDatatypeValidator : public StringDatatypeValidator
+{
+public:
+
+    // -----------------------------------------------------------------------
+    //  Public ctor/dtor
+    // -----------------------------------------------------------------------
+	/** @name Constructors and Destructor */
+    //@{
+
+    NCNameDatatypeValidator
+    (
+        MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+    NCNameDatatypeValidator
+    (
+        DatatypeValidator* const baseValidator
+        , RefHashTableOf<KVStringPair>* const facets
+        , RefArrayVectorOf<XMLCh>* const enums
+        , const int finalSet
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    virtual ~NCNameDatatypeValidator();
+
+	//@}
+
+    // -----------------------------------------------------------------------
+    // Validation methods
+    // -----------------------------------------------------------------------
+    /** @name Validation Function */
+    //@{
+
+    /**
+     * validate that a string matches the boolean datatype
+     * @param content A string containing the content to be validated
+     *
+     * @exception throws InvalidDatatypeException if the content is
+     * is not valid.
+     */
+
+	virtual void validate
+                 (
+                  const XMLCh*             const content
+                ,       ValidationContext* const context = 0
+                ,       MemoryManager*     const manager = XMLPlatformUtils::fgMemoryManager
+                  );
+
+    //@}
+
+    // -----------------------------------------------------------------------
+    // Compare methods
+    // -----------------------------------------------------------------------
+    /** @name Compare Function */
+    //@{
+
+    /**
+     * Compare two boolean data types
+     *
+     * @param content1
+     * @param content2
+     * @return
+     */
+    virtual int compare(const XMLCh* const, const XMLCh* const
+        ,       MemoryManager*     const manager = XMLPlatformUtils::fgMemoryManager);
+
+    //@}
+
+    /**
+      * Returns an instance of the base datatype validator class
+	  * Used by the DatatypeValidatorFactory.
+      */
+    virtual DatatypeValidator* newInstance
+    (
+        RefHashTableOf<KVStringPair>* const facets
+        , RefArrayVectorOf<XMLCh>* const enums
+        , const int finalSet
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    /***
+     * Support for Serialization/De-serialization
+     ***/
+    DECL_XSERIALIZABLE(NCNameDatatypeValidator)
+
+protected:
+
+    //
+    // ctor provided to be used by derived classes
+    //
+    NCNameDatatypeValidator
+    (
+        DatatypeValidator* const baseValidator
+        , RefHashTableOf<KVStringPair>* const facets
+        , const int finalSet
+        , const ValidatorType type
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    virtual void checkValueSpace(const XMLCh* const content
+        , MemoryManager* const manager);
+
+private:
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    NCNameDatatypeValidator(const NCNameDatatypeValidator&);
+    NCNameDatatypeValidator& operator=(const NCNameDatatypeValidator&);
+    // -----------------------------------------------------------------------
+    //  Private data members
+    //
+	//		
+    // -----------------------------------------------------------------------
+
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
+
+/**
+  * End of file NCNameDatatypeValidator.hpp
+  */
+
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/datatype/AnySimpleTypeDatatypeValidator.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/datatype/AnySimpleTypeDatatypeValidator.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/datatype/AnySimpleTypeDatatypeValidator.hpp	(revision 2674)
@@ -0,0 +1,191 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: AnySimpleTypeDatatypeValidator.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(ANYSIMPLETYPEDATATYPEVALIDATOR_HPP)
+#define ANYSIMPLETYPEDATATYPEVALIDATOR_HPP
+
+#include <xercesc/validators/datatype/DatatypeValidator.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class VALIDATORS_EXPORT AnySimpleTypeDatatypeValidator : public DatatypeValidator
+{
+public:
+    // -----------------------------------------------------------------------
+    //  Public Constructor
+    // -----------------------------------------------------------------------
+	/** @name Constructor */
+    //@{
+
+    AnySimpleTypeDatatypeValidator
+    (
+        MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+	//@}
+
+    // -----------------------------------------------------------------------
+    //  Public Destructor
+    // -----------------------------------------------------------------------
+	/** @name Destructor. */
+    //@{
+
+    virtual ~AnySimpleTypeDatatypeValidator();
+
+	//@}
+
+	virtual const RefArrayVectorOf<XMLCh>* getEnumString() const;
+
+    // -----------------------------------------------------------------------
+    // Getter methods
+    // -----------------------------------------------------------------------
+    /** @name Getter Functions */
+    //@{
+
+    /**
+      * Returns whether the type is atomic or not
+      */
+    virtual bool isAtomic() const;
+
+    //@}
+
+    // -----------------------------------------------------------------------
+    // Validation methods
+    // -----------------------------------------------------------------------
+    /** @name Validation Function */
+    //@{
+
+     /**
+	   * Checks that the "content" string is valid datatype.
+       * If invalid, a Datatype validation exception is thrown.
+	   *
+	   * @param  content   A string containing the content to be validated
+	   *
+	   */
+	virtual void validate
+                 (
+                  const XMLCh*             const content
+                ,       ValidationContext* const context = 0
+                ,       MemoryManager*     const manager = XMLPlatformUtils::fgMemoryManager
+                  );
+
+    /**
+      * Checks whether a given type can be used as a substitute
+      *
+      * @param  toCheck    A datatype validator of the type to be used as a
+      *                    substitute
+      *
+      */
+
+    bool isSubstitutableBy(const DatatypeValidator* const toCheck);
+
+	 //@}
+
+    // -----------------------------------------------------------------------
+    // Compare methods
+    // -----------------------------------------------------------------------
+    /** @name Compare Function */
+    //@{
+
+    /**
+      * Compares content in the Domain value vs. lexical value.
+      *
+      * @param  value1    string to compare
+      *
+      * @param  value2    string to compare
+      *
+      */
+    int compare(const XMLCh* const value1, const XMLCh* const value2
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+        );
+
+    //@}
+
+    /**
+      * Returns an instance of the base datatype validator class
+	  * Used by the DatatypeValidatorFactory.
+      */
+	virtual DatatypeValidator* newInstance
+    (
+        RefHashTableOf<KVStringPair>* const facets
+        , RefArrayVectorOf<XMLCh>* const enums
+        , const int finalSet
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    /***
+     * Support for Serialization/De-serialization
+     ***/
+    DECL_XSERIALIZABLE(AnySimpleTypeDatatypeValidator)
+
+private:
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    AnySimpleTypeDatatypeValidator(const AnySimpleTypeDatatypeValidator&);
+    AnySimpleTypeDatatypeValidator& operator=(const AnySimpleTypeDatatypeValidator&);
+};
+
+
+// ---------------------------------------------------------------------------
+//  DatatypeValidator: Getters
+// ---------------------------------------------------------------------------
+inline bool AnySimpleTypeDatatypeValidator::isAtomic() const {
+
+    return false;
+}
+
+
+// ---------------------------------------------------------------------------
+//  DatatypeValidators: Compare methods
+// ---------------------------------------------------------------------------
+inline int AnySimpleTypeDatatypeValidator::compare(const XMLCh* const,
+                                                   const XMLCh* const
+                                                   , MemoryManager* const)
+{
+    return -1;
+}
+
+// ---------------------------------------------------------------------------
+//  DatatypeValidators: Validation methods
+// ---------------------------------------------------------------------------
+inline bool
+AnySimpleTypeDatatypeValidator::isSubstitutableBy(const DatatypeValidator* const)
+{
+    return true;
+}
+
+inline void 
+AnySimpleTypeDatatypeValidator::validate(const XMLCh*             const
+                                       ,       ValidationContext* const
+                                       ,       MemoryManager*     const)
+{
+    return;
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
+
+/**
+  * End of file AnySimpleTypeDatatypeValidator.hpp
+  */
+
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/datatype/StringDatatypeValidator.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/datatype/StringDatatypeValidator.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/datatype/StringDatatypeValidator.hpp	(revision 2674)
@@ -0,0 +1,114 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: StringDatatypeValidator.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(STRING_DATATYPEVALIDATOR_HPP)
+#define STRING_DATATYPEVALIDATOR_HPP
+
+#include <xercesc/validators/datatype/AbstractStringValidator.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class VALIDATORS_EXPORT StringDatatypeValidator : public AbstractStringValidator
+{
+public:
+
+    // -----------------------------------------------------------------------
+    //  Public ctor/dtor
+    // -----------------------------------------------------------------------
+	/** @name Constructors and Destructor */
+    //@{
+
+    StringDatatypeValidator
+    (
+        MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+    StringDatatypeValidator
+    (
+        DatatypeValidator* const baseValidator
+        , RefHashTableOf<KVStringPair>* const facets
+        , RefArrayVectorOf<XMLCh>* const enums
+        , const int finalSet
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+    virtual ~StringDatatypeValidator();
+
+	//@}
+
+    /**
+      * Returns an instance of the base datatype validator class
+	  * Used by the DatatypeValidatorFactory.
+      */
+    virtual DatatypeValidator* newInstance
+    (
+        RefHashTableOf<KVStringPair>* const facets
+        , RefArrayVectorOf<XMLCh>* const enums
+        , const int finalSet
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    /***
+     * Support for Serialization/De-serialization
+     ***/
+    DECL_XSERIALIZABLE(StringDatatypeValidator)
+
+protected:
+
+    //
+    // ctor provided to be used by derived classes
+    //
+    StringDatatypeValidator
+    (
+        DatatypeValidator* const baseValidator
+        , RefHashTableOf<KVStringPair>* const facets
+        , const int finalSet
+        , const ValidatorType type
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    virtual void assignAdditionalFacet(const XMLCh* const key
+                                     , const XMLCh* const value
+                                     , MemoryManager* const manager);
+
+    virtual void inheritAdditionalFacet();
+
+    virtual void checkAdditionalFacetConstraints(MemoryManager* const manager) const;
+
+    virtual void checkAdditionalFacet(const XMLCh* const content
+                        , MemoryManager* const manager) const;
+
+    virtual void checkValueSpace(const XMLCh* const content
+                        , MemoryManager* const manager);
+
+private:
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    StringDatatypeValidator(const StringDatatypeValidator&);
+    StringDatatypeValidator& operator=(const StringDatatypeValidator&);
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
+
+/**
+  * End of file StringDatatypeValidator.hpp
+  */
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/datatype/YearMonthDatatypeValidator.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/datatype/YearMonthDatatypeValidator.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/datatype/YearMonthDatatypeValidator.hpp	(revision 2674)
@@ -0,0 +1,95 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: YearMonthDatatypeValidator.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(YEARMONTH_DATATYPE_VALIDATOR_HPP)
+#define YEARMONTH_DATATYPE_VALIDATOR_HPP
+
+#include <xercesc/validators/datatype/DateTimeValidator.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class VALIDATORS_EXPORT YearMonthDatatypeValidator : public DateTimeValidator
+{
+public:
+
+    // -----------------------------------------------------------------------
+    //  Public ctor/dtor
+    // -----------------------------------------------------------------------
+	/** @name Constructors and Destructor */
+    //@{
+
+    YearMonthDatatypeValidator
+    (
+        MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+    YearMonthDatatypeValidator
+    (
+        DatatypeValidator* const baseValidator
+        , RefHashTableOf<KVStringPair>* const facets
+        , RefArrayVectorOf<XMLCh>* const enums
+        , const int finalSet
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+    ~YearMonthDatatypeValidator();
+
+	//@}
+
+    /**
+      * Returns an instance of the base datatype validator class
+	  * Used by the DatatypeValidatorFactory.
+      */
+    virtual DatatypeValidator* newInstance
+    (
+        RefHashTableOf<KVStringPair>* const facets
+        , RefArrayVectorOf<XMLCh>* const enums
+        , const int finalSet
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    /***
+     * Support for Serialization/De-serialization
+     ***/
+    DECL_XSERIALIZABLE(YearMonthDatatypeValidator)
+
+protected:
+
+    // -----------------------------------------------------------------------
+    //  implementation of (DateTimeValidator's) virtual interface
+    // -----------------------------------------------------------------------
+    virtual XMLDateTime*          parse(const XMLCh* const, MemoryManager* const manager);
+    virtual void                  parse(XMLDateTime* const);
+
+private:
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    YearMonthDatatypeValidator(const YearMonthDatatypeValidator&);
+    YearMonthDatatypeValidator& operator=(const YearMonthDatatypeValidator&);
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
+
+/**
+  * End of file YearMonthDatatypeValidator.hpp
+  */
+
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/datatype/DatatypeValidatorFactory.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/datatype/DatatypeValidatorFactory.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/datatype/DatatypeValidatorFactory.hpp	(revision 2674)
@@ -0,0 +1,296 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: DatatypeValidatorFactory.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(DATATYPEVALIDATORFACTORY_HPP)
+#define DATATYPEVALIDATORFACTORY_HPP
+
+/**
+ * This class implements a factory of Datatype Validators. Internally the
+ * DatatypeValidators are kept in a registry.
+ * There is one instance of DatatypeValidatorFactory per Parser.
+ * There is one datatype Registry per instance of DatatypeValidatorFactory,
+ * such registry is first allocated with the number DatatypeValidators needed.
+ * e.g.
+ * If Parser finds an XML document with a DTD, a registry of DTD validators (only
+ * 9 validators) get initialized in the registry.
+ * The initialization process consist of instantiating the Datatype and
+ * facets and registering the Datatype into registry table.
+ * This implementation uses a Hahtable as a registry. The datatype validators created
+ * by the factory will be deleted by the registry.
+ *
+ * As the Parser parses an instance document it knows if validation needs
+ * to be checked. If no validation is necesary we should not instantiate a
+ * DatatypeValidatorFactory.
+ * If validation is needed, we need to instantiate a DatatypeValidatorFactory.
+ */
+
+// ---------------------------------------------------------------------------
+//  Includes
+// ---------------------------------------------------------------------------
+#include <xercesc/validators/datatype/DatatypeValidator.hpp>
+#include <xercesc/validators/datatype/XMLCanRepGroup.hpp>
+#include <xercesc/util/RefVectorOf.hpp>
+
+#include <xercesc/internal/XSerializable.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+// ---------------------------------------------------------------------------
+//  DatatypeValidatorFactory: Local declaration
+// ---------------------------------------------------------------------------
+typedef RefHashTableOf<KVStringPair> KVStringPairHashTable;
+typedef RefHashTableOf<DatatypeValidator> DVHashTable;
+typedef RefArrayVectorOf<XMLCh> XMLChRefVector;
+
+
+class VALIDATORS_EXPORT DatatypeValidatorFactory : public XSerializable, public XMemory
+{
+public:
+
+    // -----------------------------------------------------------------------
+    //  Public Constructors and Destructor
+    // -----------------------------------------------------------------------
+    /** @name Constructors */
+    //@{
+
+    DatatypeValidatorFactory
+    (
+        MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    //@}
+
+    /** @name Destructor. */
+    //@{
+
+    ~DatatypeValidatorFactory();
+
+    //@}
+
+    // -----------------------------------------------------------------------
+    // Getter methods
+    // -----------------------------------------------------------------------
+    /** @name Getter Functions */
+    //@{
+
+    /**
+     * Returns the datatype validator
+     *
+     * @param  dvType   Datatype validator name/type
+     */
+    DatatypeValidator* getDatatypeValidator(const XMLCh* const dvType) const;
+
+    /**
+     * Returns the user defined registry of types
+     **/
+    DVHashTable* getUserDefinedRegistry() const;
+
+
+    /**
+     * Returns the built in  registry of types
+     **/
+    static DVHashTable* getBuiltInRegistry();
+
+    //@}
+
+    // -----------------------------------------------------------------------
+    // Registry Initialization methods
+    // -----------------------------------------------------------------------
+    /** @name Registry Initialization Functions */
+    //@{
+
+    /**
+     * Initializes registry with primitive and derived Simple types.
+     *
+     * This method does not clear the registry to clear the registry you
+     * have to call resetRegistry.
+     *
+     * The net effect of this method is to start with the smallest set of
+     * datatypes needed by the validator.
+     *
+     * If we start with Schema's then we initialize to full set of
+     * validators.	
+     */
+    void expandRegistryToFullSchemaSet();
+
+    //@}
+
+    // -----------------------------------------------------------------------
+    // Canonical Representation Group
+    // -----------------------------------------------------------------------
+           void                        initCanRepRegistory();
+
+    static XMLCanRepGroup::CanRepGroup getCanRepGroup(const DatatypeValidator* const);
+
+    static DatatypeValidator* getBuiltInBaseValidator(const DatatypeValidator* const);
+
+    // -----------------------------------------------------------------------
+    // Validator Factory methods
+    // -----------------------------------------------------------------------
+    /** @name Validator Factory Functions */
+    //@{
+
+    /**
+     * Creates a new datatype validator of type baseValidator's class and
+     * adds it to the registry
+     *
+     * @param  typeName        Datatype validator name
+     *
+     * @param  baseValidator   Base datatype validator
+     *
+     * @param  facets          datatype facets if any
+     *
+     * @param  enums           vector of values for enum facet
+     *
+     * @param  isDerivedByList Indicates whether the datatype is derived by
+     *                         list or not
+     *
+     * @param  finalSet       'final' values of the simpleType
+     *
+     * @param  isUserDefined  Indicates whether the datatype is built-in or
+     *                        user defined
+     */
+    DatatypeValidator* createDatatypeValidator
+    (
+        const XMLCh* const                    typeName
+        , DatatypeValidator* const            baseValidator
+        , RefHashTableOf<KVStringPair>* const facets
+        , RefArrayVectorOf<XMLCh>* const      enums
+        , const bool                          isDerivedByList
+        , const int                           finalSet = 0
+        , const bool                          isUserDefined = true
+        , MemoryManager* const                manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    /**
+     * Creates a new datatype validator of type UnionDatatypeValidator and
+     * adds it to the registry
+     *
+     * @param  typeName       Datatype validator name
+     *
+     * @param  validators     Vector of datatype validators
+     *
+     * @param  finalSet       'final' values of the simpleType
+     *
+     * @param  isUserDefined  Indicates whether the datatype is built-in or
+     *                        user defined
+     */
+    DatatypeValidator* createDatatypeValidator
+    (
+          const XMLCh* const                    typeName
+        , RefVectorOf<DatatypeValidator>* const validators
+        , const int                             finalSet
+        , const bool                            isUserDefined = true
+        , MemoryManager* const                  manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    //@}
+
+    /**
+      * Reset datatype validator registry
+      */
+    void resetRegistry();
+
+    // -----------------------------------------------------------------------
+    //  Notification that lazy data has been deleted
+    // -----------------------------------------------------------------------
+    static void reinitRegistry();
+
+    /***
+     * Support for Serialization/De-serialization
+     ***/
+    DECL_XSERIALIZABLE(DatatypeValidatorFactory)
+
+private:
+
+    // -----------------------------------------------------------------------
+    //  CleanUp methods
+    // -----------------------------------------------------------------------
+    void cleanUp();
+
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    DatatypeValidatorFactory(const DatatypeValidatorFactory&);
+    DatatypeValidatorFactory& operator=(const DatatypeValidatorFactory&);
+
+    // -----------------------------------------------------------------------
+    //  Private data members
+    //
+    //  fUserDefinedRegistry
+    //      This is a hashtable of user defined dataype validators.
+    //
+    //  fBuiltInRegistry
+    //      This is a hashtable of built-in primitive datatype validators.
+    // -----------------------------------------------------------------------
+    XERCES_CPP_NAMESPACE_QUALIFIER RefHashTableOf<XERCES_CPP_NAMESPACE_QUALIFIER DatatypeValidator>*        fUserDefinedRegistry;
+    static XERCES_CPP_NAMESPACE_QUALIFIER RefHashTableOf<DatatypeValidator>* fBuiltInRegistry;
+    static XERCES_CPP_NAMESPACE_QUALIFIER RefHashTableOf<XMLCanRepGroup>*    fCanRepRegistry;
+    XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager* const fMemoryManager;
+
+    friend class XPath2ContextImpl;
+};
+
+inline DatatypeValidator*
+DatatypeValidatorFactory::getDatatypeValidator(const XMLCh* const dvType) const
+{
+	if (dvType) {
+        if (fBuiltInRegistry && fBuiltInRegistry->containsKey(dvType)) {
+		    return fBuiltInRegistry->get(dvType);
+        }
+
+        if (fUserDefinedRegistry && fUserDefinedRegistry->containsKey(dvType)) {
+		    return fUserDefinedRegistry->get(dvType);
+
+        }
+    }
+	return 0;
+}
+
+inline DVHashTable*
+DatatypeValidatorFactory::getUserDefinedRegistry() const {
+    return fUserDefinedRegistry;
+}
+
+inline DVHashTable*
+DatatypeValidatorFactory::getBuiltInRegistry() {
+    return fBuiltInRegistry;
+}
+// ---------------------------------------------------------------------------
+//  DatatypeValidator: CleanUp methods
+// ---------------------------------------------------------------------------
+inline void DatatypeValidatorFactory::cleanUp() {
+
+    if (fUserDefinedRegistry)
+    {
+	    delete fUserDefinedRegistry;
+	    fUserDefinedRegistry = 0;
+    }
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
+
+/**
+  * End of file DatatypeValidatorFactory.hpp
+  */
+
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/datatype/ListDatatypeValidator.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/datatype/ListDatatypeValidator.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/datatype/ListDatatypeValidator.hpp	(revision 2674)
@@ -0,0 +1,226 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: ListDatatypeValidator.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(LIST_DATATYPEVALIDATOR_HPP)
+#define LIST_DATATYPEVALIDATOR_HPP
+
+#include <xercesc/validators/datatype/AbstractStringValidator.hpp>
+#include <xercesc/validators/schema/SchemaSymbols.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class VALIDATORS_EXPORT ListDatatypeValidator : public AbstractStringValidator
+{
+public:
+
+    // -----------------------------------------------------------------------
+    //  Public ctor/dtor
+    // -----------------------------------------------------------------------
+	/** @name Constructors and Destructor */
+    //@{
+
+    ListDatatypeValidator
+    (
+        MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+    ListDatatypeValidator
+    (
+        DatatypeValidator* const baseValidator
+        , RefHashTableOf<KVStringPair>* const facets
+        , RefArrayVectorOf<XMLCh>* const enums
+        , const int finalSet
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+    virtual ~ListDatatypeValidator();
+
+	//@}
+
+    /** @name Getter Functions */
+    //@{
+    /**
+      * Returns whether the type is atomic or not
+      */
+    virtual bool isAtomic() const;
+
+    virtual const XMLCh* getCanonicalRepresentation
+                        (
+                          const XMLCh*         const rawData
+                        ,       MemoryManager* const memMgr = 0
+                        ,       bool                 toValidate = false
+                        ) const;
+
+    //@}
+
+    // -----------------------------------------------------------------------
+    // Validation methods
+    // -----------------------------------------------------------------------
+    /** @name Validation Function */
+    //@{
+
+    /**
+     * validate that a string matches the boolean datatype
+     * @param content A string containing the content to be validated
+     *
+     * @exception throws InvalidDatatypeException if the content is
+     * is not valid.
+     */
+
+	virtual void validate
+                 (
+                  const XMLCh*             const content
+                ,       ValidationContext* const context = 0
+                ,       MemoryManager*     const manager = XMLPlatformUtils::fgMemoryManager
+                  );
+
+    //@}
+
+    // -----------------------------------------------------------------------
+    // Compare methods
+    // -----------------------------------------------------------------------
+    /** @name Compare Function */
+    //@{
+
+    /**
+     * Compare two boolean data types
+     *
+     * @param content1
+     * @param content2
+     * @return
+     */
+    int compare(const XMLCh* const, const XMLCh* const
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+        );
+
+    //@}
+
+    /**
+      * Returns an instance of the base datatype validator class
+	  * Used by the DatatypeValidatorFactory.
+      */
+    virtual DatatypeValidator* newInstance
+    (
+        RefHashTableOf<KVStringPair>* const facets
+        , RefArrayVectorOf<XMLCh>* const enums
+        , const int finalSet
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    DatatypeValidator* getItemTypeDTV() const;
+
+    /***
+     * Support for Serialization/De-serialization
+     ***/
+    DECL_XSERIALIZABLE(ListDatatypeValidator)
+
+protected:
+
+    //
+    // ctor provided to be used by derived classes: No
+    //
+
+    virtual void checkValueSpace(const XMLCh* const content
+                                , MemoryManager* const manager);
+
+    virtual int  getLength(const XMLCh* const content
+            , MemoryManager* const manager) const;
+
+    //
+    // Overwrite AbstractStringValidator's
+    //
+    virtual void inspectFacetBase(MemoryManager* const manager);
+
+    virtual void inheritFacet();
+
+    virtual void checkContent(const XMLCh*             const content
+                            ,       ValidationContext* const context
+                            , bool                           asBase
+                            ,       MemoryManager*     const manager);
+
+private:
+
+    void checkContent(      BaseRefVectorOf<XMLCh>*        tokenVector
+                    , const XMLCh*                  const  content
+                    ,       ValidationContext*      const  context
+                    ,       bool                           asBase
+                    ,       MemoryManager*          const  manager
+                    );
+
+    bool valueSpaceCheck(BaseRefVectorOf<XMLCh>* tokenVector
+                       , const XMLCh*   const enumStr
+                       , MemoryManager* const manager) const;
+
+// -----------------------------------------------------------------------
+// Getter methods
+// -----------------------------------------------------------------------
+
+    inline const XMLCh* const   getContent() const;
+
+// -----------------------------------------------------------------------
+// Setter methods
+// -----------------------------------------------------------------------
+
+    inline void                 setContent(const XMLCh* const content);
+
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    ListDatatypeValidator(const ListDatatypeValidator&);
+    ListDatatypeValidator& operator=(const ListDatatypeValidator&);
+
+    // -----------------------------------------------------------------------
+    //  Private data members
+    //
+    //  fContent
+    //      temporary var referenceing the content to be validated,
+    //      for error reporting purpose.
+    //
+    // -----------------------------------------------------------------------
+     const XMLCh*         fContent;
+};
+
+// -----------------------------------------------------------------------
+// Getter methods
+// -----------------------------------------------------------------------
+inline const XMLCh* const ListDatatypeValidator::getContent() const
+{
+    return fContent;
+}
+
+inline bool ListDatatypeValidator::isAtomic() const
+{
+    return false;
+}
+
+// -----------------------------------------------------------------------
+// Setter methods
+// -----------------------------------------------------------------------
+inline void ListDatatypeValidator::setContent(const XMLCh* const content)
+{
+    fContent = content;
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
+
+/**
+  * End of file ListDatatypeValidator.hpp
+  */
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/datatype/DateDatatypeValidator.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/datatype/DateDatatypeValidator.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/datatype/DateDatatypeValidator.hpp	(revision 2674)
@@ -0,0 +1,101 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: DateDatatypeValidator.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(DATE_DATATYPE_VALIDATOR_HPP)
+#define DATE_DATATYPE_VALIDATOR_HPP
+
+#include <xercesc/validators/datatype/DateTimeValidator.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class VALIDATORS_EXPORT DateDatatypeValidator : public DateTimeValidator
+{
+public:
+
+    // -----------------------------------------------------------------------
+    //  Public ctor/dtor
+    // -----------------------------------------------------------------------
+	/** @name Constructors and Destructor */
+    //@{
+
+    DateDatatypeValidator
+    (
+        MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+    DateDatatypeValidator
+    (
+        DatatypeValidator* const baseValidator
+        , RefHashTableOf<KVStringPair>* const facets
+        , RefArrayVectorOf<XMLCh>* const enums
+        , const int finalSet
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+    ~DateDatatypeValidator();
+
+	//@}
+
+    /**
+      * Returns an instance of the base datatype validator class
+	  * Used by the DatatypeValidatorFactory.
+      */
+    virtual DatatypeValidator* newInstance
+    (
+        RefHashTableOf<KVStringPair>* const facets
+        , RefArrayVectorOf<XMLCh>* const enums
+        , const int finalSet
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    virtual const XMLCh* getCanonicalRepresentation
+                        (
+                          const XMLCh*         const rawData
+                        ,       MemoryManager* const memMgr = 0
+                        ,       bool                 toValidate = false
+                        ) const;
+    /***
+     * Support for Serialization/De-serialization
+     ***/
+    DECL_XSERIALIZABLE(DateDatatypeValidator)
+
+protected:
+
+    // -----------------------------------------------------------------------
+    //  implementation of (DateTimeValidator's) virtual interface
+    // -----------------------------------------------------------------------
+    virtual XMLDateTime*          parse(const XMLCh* const, MemoryManager* const manager);
+    virtual void                  parse(XMLDateTime* const);
+
+private:
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    DateDatatypeValidator(const DateDatatypeValidator&);
+    DateDatatypeValidator& operator=(const DateDatatypeValidator&);
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
+
+/**
+  * End of file DateDatatypeValidator.hpp
+  */
+
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/datatype/DayDatatypeValidator.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/datatype/DayDatatypeValidator.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/datatype/DayDatatypeValidator.hpp	(revision 2674)
@@ -0,0 +1,95 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: DayDatatypeValidator.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(DAY_DATATYPE_VALIDATOR_HPP)
+#define DAY_DATATYPE_VALIDATOR_HPP
+
+#include <xercesc/validators/datatype/DateTimeValidator.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class VALIDATORS_EXPORT DayDatatypeValidator : public DateTimeValidator
+{
+public:
+
+    // -----------------------------------------------------------------------
+    //  Public ctor/dtor
+    // -----------------------------------------------------------------------
+	/** @name Constructors and Destructor*/
+    //@{
+
+    DayDatatypeValidator
+    (
+        MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+    DayDatatypeValidator
+    (
+        DatatypeValidator* const baseValidator
+        , RefHashTableOf<KVStringPair>* const facets
+        , RefArrayVectorOf<XMLCh>* const enums
+        , const int finalSet
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+    ~DayDatatypeValidator();
+
+	//@}
+
+    /**
+      * Returns an instance of the base datatype validator class
+	  * Used by the DatatypeValidatorFactory.
+      */
+    virtual DatatypeValidator* newInstance
+    (
+        RefHashTableOf<KVStringPair>* const facets
+        , RefArrayVectorOf<XMLCh>* const enums
+        , const int finalSet
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    /***
+     * Support for Serialization/De-serialization
+     ***/
+    DECL_XSERIALIZABLE(DayDatatypeValidator)
+
+protected:
+
+    // -----------------------------------------------------------------------
+    //  implementation of (DateTimeValidator's) virtual interface
+    // -----------------------------------------------------------------------
+    virtual XMLDateTime*          parse(const XMLCh* const, MemoryManager* const manager);
+    virtual void                  parse(XMLDateTime* const);
+
+private:
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    DayDatatypeValidator(const DayDatatypeValidator&);
+    DayDatatypeValidator& operator=(const DayDatatypeValidator&);
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
+
+/**
+  * End of file DayDatatypeValidator.hpp
+  */
+
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/datatype/DatatypeValidator.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/datatype/DatatypeValidator.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/datatype/DatatypeValidator.hpp	(revision 2674)
@@ -0,0 +1,750 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: DatatypeValidator.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(DATATYPEVALIDATOR_HPP)
+#define DATATYPEVALIDATOR_HPP
+
+#include <xercesc/util/PlatformUtils.hpp>
+#include <xercesc/util/RefHashTableOf.hpp>
+#include <xercesc/util/KVStringPair.hpp>
+#include <xercesc/util/XMLUniDefs.hpp>
+#include <xercesc/util/regx/RegularExpression.hpp>
+#include <xercesc/validators/schema/SchemaSymbols.hpp>
+#include <xercesc/internal/XSerializable.hpp>
+#include <xercesc/framework/psvi/XSSimpleTypeDefinition.hpp>
+#include <xercesc/framework/ValidationContext.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class MemoryManager;
+
+/**
+  * DataTypeValidator defines the interface that data type validators must
+  * obey. These validators can be supplied by the application writer and may
+  * be useful as standalone code as well as plugins to the validator
+  * architecture.
+  *
+  * Notice:
+  * The datatype validator will own the facets hashtable passed to it during
+  * construction, which means that the datatype validator will be responsible
+  * for the deletion. The facets hashtable will be created during parsing and
+  * passed to the appropriate datatype validator which in turn will delete it
+  * upon its destruction.
+  *
+  */
+
+
+class VALIDATORS_EXPORT DatatypeValidator : public XSerializable, public XMemory
+{
+public:
+    // -----------------------------------------------------------------------
+    // Constant data
+    // -----------------------------------------------------------------------
+	//facets
+	enum {
+        FACET_LENGTH         = 1,
+        FACET_MINLENGTH      = 1<<1,
+        FACET_MAXLENGTH      = 1<<2,
+        FACET_PATTERN        = 1<<3,
+        FACET_ENUMERATION    = 1<<4,
+        FACET_MAXINCLUSIVE   = 1<<5,
+        FACET_MAXEXCLUSIVE   = 1<<6,
+        FACET_MININCLUSIVE   = 1<<7,
+        FACET_MINEXCLUSIVE   = 1<<8,
+        FACET_TOTALDIGITS    = 1<<9,
+        FACET_FRACTIONDIGITS = 1<<10,
+        FACET_ENCODING       = 1<<11,
+        FACET_DURATION       = 1<<12,
+        FACET_PERIOD         = 1<<13,
+        FACET_WHITESPACE     = 1<<14
+    };
+
+    //2.4.2.6 whiteSpace - Datatypes
+	enum {
+        PRESERVE = 0,
+        REPLACE  = 1,
+        COLLAPSE = 2
+    };
+
+    enum ValidatorType {
+        String,
+        AnyURI,
+        QName,
+        Name,
+        NCName,
+        Boolean,
+        Float,
+        Double,
+        Decimal,
+        HexBinary,
+        Base64Binary,
+        Duration,
+        DateTime,
+        Date,
+        Time,
+        MonthDay,
+        YearMonth,
+        Year,
+        Month,
+        Day,
+        ID,
+        IDREF,
+        ENTITY,
+        NOTATION,
+        List,
+        Union,
+        AnySimpleType,
+        UnKnown
+    };
+
+    // -----------------------------------------------------------------------
+    //  Public Destructor
+    // -----------------------------------------------------------------------
+	/** @name Destructor. */
+    //@{
+
+    virtual ~DatatypeValidator();
+
+	//@}
+
+    // -----------------------------------------------------------------------
+    // Getter methods
+    // -----------------------------------------------------------------------
+    /** @name Getter Functions */
+    //@{
+
+    /**
+      * Returns the final values of the simpleType
+      */
+    int getFinalSet() const;
+
+    /**
+      * Returns the datatype facet if any is set.
+      */
+	RefHashTableOf<KVStringPair>* getFacets() const;
+
+    /**
+      * Returns default value (collapse) for whiteSpace facet.
+      * This function is overwritten in StringDatatypeValidator.
+      */
+    short getWSFacet () const;
+
+    /**
+      * Returns the base datatype validator if set.
+      */
+    DatatypeValidator* getBaseValidator() const;
+
+    /**
+      * Returns the 'class' type of datatype validator
+      */
+    ValidatorType getType() const;
+
+    /**
+      * Returns whether the type is atomic or not
+      *
+      * To be redefined in List/Union validators
+      */
+    virtual bool isAtomic() const;
+
+    /**
+      * Returns the datatype enumeration if any is set.
+	  * Derived class shall provide their own copy.
+      */
+	virtual const RefArrayVectorOf<XMLCh>* getEnumString() const = 0;
+
+    /**
+     * returns true if this type is anonymous
+     **/
+    bool getAnonymous() const;
+
+    /**
+     * sets this type to be anonymous
+     **/
+    void setAnonymous();
+
+    /**
+     *  Fundamental Facet: ordered 
+     */
+    XSSimpleTypeDefinition::ORDERING getOrdered() const;
+
+    /**
+     * Fundamental Facet: cardinality. 
+     */
+    bool getFinite() const;
+
+    /**
+     * Fundamental Facet: bounded. 
+     */
+    bool getBounded() const;
+
+    /**
+     * Fundamental Facet: numeric. 
+     */
+    bool getNumeric() const;
+
+    /**
+     *    Canonical Representation
+     *
+     *    Derivative datatype may overwrite this method once
+     *    it has its own canonical representation other than
+     *    the default one.
+     *
+     * @param rawData:    data in raw string
+     * @param memMgr:     memory manager
+     * @param toValiate:  to validate the raw string or not
+     *
+     * @return: canonical representation of the data
+     * 
+     * Note:  
+     *
+     *    1. the return value is kept in memory allocated
+     *       by the memory manager passed in or by dv's
+     *       if no memory manager is provided.
+     *
+     *    2. client application is responsible for the 
+     *       proper deallcation of the memory allocated
+     *       for the returned value.
+     *
+     *    3. In the case where the rawData is not valid
+     *       with regards to the fundamental datatype,
+     *       a null string is returned.
+     *
+     */
+    virtual const XMLCh* getCanonicalRepresentation
+                        (
+                          const XMLCh*         const rawData
+                        ,       MemoryManager* const memMgr = 0
+                        ,       bool                 toValidate = false
+                        ) const;
+
+    //@}
+
+    // -----------------------------------------------------------------------
+    // Validation methods
+    // -----------------------------------------------------------------------
+    /** @name Validation Function */
+    //@{
+
+     /**
+	   * Checks that the "content" string is valid datatype.
+       * If invalid, a Datatype validation exception is thrown.
+	   *
+	   * @param  content   A string containing the content to be validated
+	   *
+	   */
+	virtual void validate
+                 (
+                  const XMLCh*             const content
+                ,       ValidationContext* const context = 0
+                ,       MemoryManager*     const manager = XMLPlatformUtils::fgMemoryManager
+                  ) = 0;
+
+    /**
+      * Checks whether a given type can be used as a substitute
+      *
+      * @param  toCheck    A datatype validator of the type to be used as a
+      *                    substitute
+      *
+      * To be redefined in UnionDatatypeValidator
+      */
+
+    virtual bool isSubstitutableBy(const DatatypeValidator* const toCheck);
+
+	 //@}
+
+    // -----------------------------------------------------------------------
+    // Compare methods
+    // -----------------------------------------------------------------------
+    /** @name Compare Function */
+    //@{
+
+    /**
+      * Compares content in the Domain value vs. lexical value.
+      *
+      * e.g. If type is a float then 1.0 may be equivalent to 1 even though
+      * both are lexically different.
+      *
+      * @param  value1    string to compare
+      *
+      * @param  value2    string to compare
+      *
+      * We will provide a default behavior that should be redefined at the
+      * children level, if necessary (i.e. boolean case).
+      */
+    virtual int compare(const XMLCh* const value1, const XMLCh* const value2
+        ,       MemoryManager*     const manager = XMLPlatformUtils::fgMemoryManager
+        );
+
+    //@}
+
+    /**
+      * Returns an instance of the base datatype validator class
+	  * Used by the DatatypeValidatorFactory.
+      */
+	virtual DatatypeValidator* newInstance
+    (
+        RefHashTableOf<KVStringPair>* const facets
+        , RefArrayVectorOf<XMLCh>* const enums
+        , const int finalSet
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    ) = 0;
+
+    /**
+     * Returns the uri,name of the type this validator is for
+     */
+    const XMLCh* getTypeName() const;
+
+    /**
+     * sets the uri,name that this  validator is for - typeName is uri,name string.
+     * due to the internals of xerces this will set the uri to be the schema uri if
+     * there is no comma in typeName
+     */
+    void setTypeName(const XMLCh* const typeName);
+
+    /**
+     * sets the uri,name that this  validator is for
+     */
+    void setTypeName(const XMLCh* const name, const XMLCh* const uri);
+
+    /**
+     * Returns the uri of the type this validator is for
+     */
+    const XMLCh* getTypeUri() const;
+
+    /**
+     * Returns the name of the type this validator is for
+     */
+    const XMLCh* getTypeLocalName() const;
+
+    /**
+     * Returns the plugged-in memory manager
+     */
+    MemoryManager* getMemoryManager() const;
+
+    /***
+     * Support for Serialization/De-serialization
+     ***/
+    DECL_XSERIALIZABLE(DatatypeValidator)
+
+    /***
+      *
+      *  Serialzie DatatypeValidator derivative 
+      *
+      *  Param
+      *     serEng: serialize engine
+      *     dv:     DatatypeValidator derivative
+      *
+      *  Return:
+      *
+      ***/
+	static void storeDV(XSerializeEngine&        serEng
+                      , DatatypeValidator* const dv);
+
+    /***
+      *
+      *  Create a DatatypeValidator derivative from the binary
+      *  stream.
+      *
+      *  Param
+      *     serEng: serialize engine
+      *
+      *  Return:
+      *     DatatypeValidator derivative 
+      *
+      ***/
+	static DatatypeValidator* loadDV(XSerializeEngine& serEng);
+
+protected:
+    // -----------------------------------------------------------------------
+    //  Protected Constructors
+    // -----------------------------------------------------------------------
+    /** @name Constructors */
+    //@{
+
+    /**
+      *
+      * @param  baseValidator  The base datatype validator for derived
+      *                        validators. Null if native validator.
+      *
+      * @param  facets         A hashtable of datatype facets (except enum).
+      *
+      * @param  finalSet       'final' value of the simpleType
+      */
+
+	DatatypeValidator(DatatypeValidator* const baseValidator,
+                      RefHashTableOf<KVStringPair>* const facets,
+                      const int finalSet,
+                      const ValidatorType type,
+                      MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+
+    //@}
+
+
+	friend class DatatypeValidatorFactory;
+    friend class XSObjectFactory;
+
+    /**
+      * facetDefined
+	  */
+	int   getFacetsDefined() const;
+    void  setFacetsDefined(int);
+
+    /**
+      * fixed
+	  */
+	int   getFixed() const;
+    void  setFixed(int);
+
+
+    /**
+      * fPattern
+	  */
+    const XMLCh* getPattern() const;
+	void         setPattern(const XMLCh* );
+
+    /**
+      * fRegex
+	  */
+	RegularExpression* getRegex() const;
+	void               setRegex(RegularExpression* const);
+
+    /**
+      * set fType
+      */
+    void setType(ValidatorType);
+
+    /**
+      * set fWhiteSpace
+      */
+    void setWhiteSpace(short);
+
+    /**
+      * get WSString
+      */
+    const XMLCh*   getWSstring(const short WSType) const;
+
+    /**
+     *  Fundamental Facet: ordered 
+     */
+    void setOrdered(XSSimpleTypeDefinition::ORDERING ordered);
+
+    /**
+     * Fundamental Facet: cardinality. 
+     */
+    void setFinite(bool finite);
+
+    /**
+     * Fundamental Facet: bounded. 
+     */
+    void setBounded(bool bounded);
+
+    /**
+     * Fundamental Facet: numeric. 
+     */
+    void setNumeric(bool numeric);
+
+private:
+    // -----------------------------------------------------------------------
+    //  CleanUp methods
+    // -----------------------------------------------------------------------
+    void cleanUp();
+
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    DatatypeValidator(const DatatypeValidator&);
+    DatatypeValidator& operator=(const DatatypeValidator&);
+
+    // -----------------------------------------------------------------------
+    //  Private data members
+    //
+    //  fFinalSet
+    //      stores "final" values of simpleTypes
+    //
+    //  fBaseValidator
+    //      This is a pointer to a base datatype validator. If value is null,
+	//      it means we have a native datatype validator not a derived one.
+	//		
+    //  fFacets
+    //      This is a hashtable of dataype facets.
+    //
+    //  fType
+    //      Stores the class type of datatype validator
+    //
+    //  fFacetsDefined
+    //      Stores the constaiting facets flag
+    //
+    //  fPattern
+    //      the pointer to the String of the pattern. The actual data is
+    //      in the Facets.
+    //
+    //  fRegex
+    //      pointer to the RegularExpress object
+    //
+    //
+    //  fFixed
+    //      if {fixed} is true, then types for which this type is the
+    //      {base type definition} cannot specify a value for a specific
+    //      facet.
+    //
+    //  fTypeName
+    //      the uri,name of the type this validator will validate
+    //
+    //  fTypeLocalName
+    //      the name of the type this validator will validate
+    //
+    //  fTypeUri
+    //      the uri of the type this validator will validate
+    //  fAnonymous
+    //      true if this type is anonynous
+    //
+    // -----------------------------------------------------------------------
+    bool                                fAnonymous;
+    bool                                fFinite;
+    bool                                fBounded;
+    bool                                fNumeric;
+
+    short                               fWhiteSpace;
+    int                                 fFinalSet;
+    int                                 fFacetsDefined;
+    int                                 fFixed;
+
+    ValidatorType                       fType;
+    XSSimpleTypeDefinition::ORDERING    fOrdered;
+
+	DatatypeValidator*                  fBaseValidator;
+	RefHashTableOf<KVStringPair>*       fFacets;
+    XMLCh*                              fPattern;
+    RegularExpression*                  fRegex;
+    XMLCh*                              fTypeName;
+    const XMLCh*                        fTypeLocalName;
+    const XMLCh*                        fTypeUri;
+
+protected:
+    // -----------------------------------------------------------------------
+    //  Protected data members
+    //
+    //  fMemoryManager
+    //      Pluggable memory manager for dynamic allocation/deallocation.
+    // -----------------------------------------------------------------------
+    MemoryManager*                      fMemoryManager;
+
+};
+
+
+// ---------------------------------------------------------------------------
+//  DatatypeValidator: Getters
+// ---------------------------------------------------------------------------
+inline int DatatypeValidator::getFinalSet() const {
+
+    return fFinalSet;
+}
+
+inline RefHashTableOf<KVStringPair>* DatatypeValidator::getFacets() const {
+
+    return fFacets;
+}
+
+inline DatatypeValidator* DatatypeValidator::getBaseValidator() const {
+
+	return fBaseValidator;
+}
+
+inline short DatatypeValidator::getWSFacet() const {
+
+    return fWhiteSpace;
+}
+
+inline DatatypeValidator::ValidatorType DatatypeValidator::getType() const
+{
+    return fType;
+}
+
+inline int DatatypeValidator::getFacetsDefined() const
+{
+    return fFacetsDefined;
+}
+
+inline int DatatypeValidator::getFixed() const
+{
+    return fFixed;
+}
+
+inline const XMLCh* DatatypeValidator::getPattern() const
+{
+    return fPattern;
+}
+
+inline RegularExpression* DatatypeValidator::getRegex() const
+{
+    return fRegex;
+}
+
+inline const XMLCh* DatatypeValidator::getTypeName() const
+{
+    return fTypeName;
+}
+
+inline bool DatatypeValidator::getAnonymous() const
+{
+    return fAnonymous;
+}
+
+inline const XMLCh* DatatypeValidator::getTypeLocalName() const
+{
+    return fTypeLocalName;
+}
+
+inline const XMLCh* DatatypeValidator::getTypeUri() const
+{
+    return fTypeUri;
+}
+
+inline MemoryManager* DatatypeValidator::getMemoryManager() const
+{
+    return fMemoryManager;
+}
+
+inline XSSimpleTypeDefinition::ORDERING DatatypeValidator::getOrdered() const
+{
+    return fOrdered;
+}
+
+inline bool DatatypeValidator::getFinite() const
+{
+    return fFinite;
+}
+ 
+inline bool DatatypeValidator::getBounded() const
+{
+    return fBounded;
+}
+
+inline bool DatatypeValidator::getNumeric() const
+{
+    return fNumeric;
+}
+
+// ---------------------------------------------------------------------------
+//  DatatypeValidator: Setters
+// ---------------------------------------------------------------------------
+inline void DatatypeValidator::setType(ValidatorType theType)
+{
+    fType = theType;
+}
+
+inline void DatatypeValidator::setWhiteSpace(short newValue)
+{
+    fWhiteSpace = newValue;
+}
+
+inline void DatatypeValidator::setFacetsDefined(int facets)
+{
+    fFacetsDefined |= facets;
+}
+
+inline void DatatypeValidator::setFixed(int fixed)
+{
+    fFixed |= fixed;
+}
+
+inline void DatatypeValidator::setPattern(const XMLCh* pattern)
+{
+    if (fPattern) {
+        fMemoryManager->deallocate(fPattern);//delete [] fPattern;
+        delete fRegex;
+    }
+    fPattern = XMLString::replicate(pattern, fMemoryManager);
+    fRegex = new (fMemoryManager) RegularExpression(fPattern, SchemaSymbols::fgRegEx_XOption, fMemoryManager);
+}
+
+inline void DatatypeValidator::setRegex(RegularExpression* const regex)
+{
+    fRegex = regex;
+}
+
+inline bool DatatypeValidator::isAtomic() const {
+
+    return true;
+}
+
+inline void DatatypeValidator::setAnonymous() {
+    fAnonymous = true;
+}
+
+inline void DatatypeValidator::setOrdered(XSSimpleTypeDefinition::ORDERING ordered)
+{
+    fOrdered = ordered;
+}
+
+inline void DatatypeValidator::setFinite(bool finite)
+{
+    fFinite = finite;
+}
+
+inline void DatatypeValidator::setBounded(bool bounded)
+{
+    fBounded = bounded;
+}
+
+inline void DatatypeValidator::setNumeric(bool numeric)
+{
+    fNumeric = numeric;
+}
+
+// ---------------------------------------------------------------------------
+//  DatatypeValidators: Compare methods
+// ---------------------------------------------------------------------------
+inline int DatatypeValidator::compare(const XMLCh* const lValue,
+                                      const XMLCh* const rValue
+                                      , MemoryManager*     const)
+{
+    return XMLString::compareString(lValue, rValue);
+}
+
+// ---------------------------------------------------------------------------
+//  DatatypeValidators: Validation methods
+// ---------------------------------------------------------------------------
+inline bool
+DatatypeValidator::isSubstitutableBy(const DatatypeValidator* const toCheck)
+{
+    const DatatypeValidator* dv = toCheck;
+
+	while (dv != 0) {
+
+        if (dv == this) {
+            return true;
+        }
+
+        dv = dv->getBaseValidator();
+    }
+
+    return false;
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
+
+/**
+  * End of file DatatypeValidator.hpp
+  */
+
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/datatype/BooleanDatatypeValidator.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/datatype/BooleanDatatypeValidator.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/datatype/BooleanDatatypeValidator.hpp	(revision 2674)
@@ -0,0 +1,193 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: BooleanDatatypeValidator.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(BOOLEAN_DATATYPEVALIDATOR_HPP)
+#define BOOLEAN_DATATYPEVALIDATOR_HPP
+
+#include <xercesc/validators/datatype/DatatypeValidator.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class VALIDATORS_EXPORT BooleanDatatypeValidator : public DatatypeValidator
+{
+public:
+
+    // -----------------------------------------------------------------------
+    //  Public ctor/dtor
+    // -----------------------------------------------------------------------
+	/** @name Constructor. */
+    //@{
+
+    BooleanDatatypeValidator
+    (
+        MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+    BooleanDatatypeValidator
+    (
+        DatatypeValidator* const baseValidator
+        , RefHashTableOf<KVStringPair>* const facets
+        , RefArrayVectorOf<XMLCh>* const enums
+        , const int finalSet
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    virtual ~BooleanDatatypeValidator();
+
+	//@}
+
+	virtual const RefArrayVectorOf<XMLCh>* getEnumString() const;
+
+    // -----------------------------------------------------------------------
+    // Getter methods
+    // -----------------------------------------------------------------------
+    /** @name Getter Functions */
+    //@{
+
+    virtual const XMLCh* getCanonicalRepresentation
+                        (
+                          const XMLCh*         const rawData
+                        ,       MemoryManager* const memMgr = 0
+                        ,       bool                 toValidate = false
+                        ) const;
+    //@}
+
+    // -----------------------------------------------------------------------
+    // Validation methods
+    // -----------------------------------------------------------------------
+    /** @name Validation Function */
+    //@{
+
+    /**
+     * validate that a string matches the boolean datatype
+     * @param content A string containing the content to be validated
+     *
+     * @exception throws InvalidDatatypeException if the content is
+     * is not valid.
+     */
+
+	virtual void validate
+                 (
+                  const XMLCh*             const content
+                ,       ValidationContext* const context = 0
+                ,       MemoryManager*     const manager = XMLPlatformUtils::fgMemoryManager
+                  );
+
+    //@}
+
+    // -----------------------------------------------------------------------
+    // Compare methods
+    // -----------------------------------------------------------------------
+    /** @name Compare Function */
+    //@{
+
+    /**
+     * Compare two boolean data types
+     *
+     * @param content1
+     * @param content2
+     * @return
+     */
+    int compare(const XMLCh* const, const XMLCh* const
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+        );
+
+    //@}
+
+    /**
+      * Returns an instance of the base datatype validator class
+	  * Used by the DatatypeValidatorFactory.
+      */
+    DatatypeValidator* newInstance
+    (
+        RefHashTableOf<KVStringPair>* const facets
+        , RefArrayVectorOf<XMLCh>* const enums
+        , const int finalSet
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    /***
+     * Support for Serialization/De-serialization
+     ***/
+    DECL_XSERIALIZABLE(BooleanDatatypeValidator)
+
+private:
+
+    virtual void checkContent(const XMLCh*             const content
+                            ,       ValidationContext* const context
+                            , bool                           asBase
+                            , MemoryManager* const manager);
+
+    // -----------------------------------------------------------------------
+    //  Unimplemented methods.
+    // -----------------------------------------------------------------------
+    BooleanDatatypeValidator(const BooleanDatatypeValidator&);
+    BooleanDatatypeValidator& operator=(const BooleanDatatypeValidator&);
+
+};
+
+// ---------------------------------------------------------------------------
+//  Constructors and Destructor
+// ---------------------------------------------------------------------------
+inline BooleanDatatypeValidator::BooleanDatatypeValidator(MemoryManager* const manager)
+:DatatypeValidator(0, 0, 0, DatatypeValidator::Boolean, manager)
+{
+    setFinite(true);
+}
+
+inline BooleanDatatypeValidator::~BooleanDatatypeValidator()
+{
+}
+
+// -----------------------------------------------------------------------
+// Getter methods
+// -----------------------------------------------------------------------
+
+
+// -----------------------------------------------------------------------
+// Compare methods
+// -----------------------------------------------------------------------
+
+inline DatatypeValidator* BooleanDatatypeValidator::newInstance
+(
+      RefHashTableOf<KVStringPair>* const facets
+    , RefArrayVectorOf<XMLCh>* const      enums
+    , const int                           finalSet
+    , MemoryManager* const                manager
+)
+{
+    return (DatatypeValidator*) new (manager) BooleanDatatypeValidator(this, facets, enums, finalSet, manager);
+}
+
+inline void BooleanDatatypeValidator::validate( const XMLCh*             const content
+                                              ,       ValidationContext* const context
+                                              ,       MemoryManager*     const manager)
+{
+    checkContent(content, context, false, manager);
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
+
+/**
+  * End of file BooleanDatatypeValidator.hpp
+  */
+
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/datatype/NameDatatypeValidator.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/datatype/NameDatatypeValidator.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/datatype/NameDatatypeValidator.hpp	(revision 2674)
@@ -0,0 +1,151 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: NameDatatypeValidator.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(NAME_DATATYPEVALIDATOR_HPP)
+#define NAME_DATATYPEVALIDATOR_HPP
+
+#include <xercesc/validators/datatype/StringDatatypeValidator.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class VALIDATORS_EXPORT NameDatatypeValidator : public StringDatatypeValidator
+{
+public:
+
+    // -----------------------------------------------------------------------
+    //  Public ctor/dtor
+    // -----------------------------------------------------------------------
+	/** @name Constructors and Destructor */
+    //@{
+
+    NameDatatypeValidator
+    (
+        MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+    NameDatatypeValidator
+    (
+        DatatypeValidator* const baseValidator
+        , RefHashTableOf<KVStringPair>* const facets
+        , RefArrayVectorOf<XMLCh>* const enums
+        , const int finalSet
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+    virtual ~NameDatatypeValidator();
+
+	//@}
+
+    // -----------------------------------------------------------------------
+    // Validation methods
+    // -----------------------------------------------------------------------
+    /** @name Validation Function */
+    //@{
+
+    /**
+     * validate that a string matches the boolean datatype
+     * @param content A string containing the content to be validated
+     *
+     * @exception throws InvalidDatatypeException if the content is
+     * is not valid.
+     */
+
+	virtual void validate
+                 (
+                  const XMLCh*             const content
+                ,       ValidationContext* const context = 0
+                ,       MemoryManager*     const manager = XMLPlatformUtils::fgMemoryManager
+                  );
+
+    //@}
+
+    // -----------------------------------------------------------------------
+    // Compare methods
+    // -----------------------------------------------------------------------
+    /** @name Compare Function */
+    //@{
+
+    /**
+     * Compare two boolean data types
+     *
+     * @param content1
+     * @param content2
+     * @return
+     */
+    virtual int compare(const XMLCh* const, const XMLCh* const
+        ,       MemoryManager*     const manager = XMLPlatformUtils::fgMemoryManager);
+
+    //@}
+
+    /**
+      * Returns an instance of the base datatype validator class
+	  * Used by the DatatypeValidatorFactory.
+      */
+    virtual DatatypeValidator* newInstance
+    (
+        RefHashTableOf<KVStringPair>* const facets
+        , RefArrayVectorOf<XMLCh>* const enums
+        , const int finalSet
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    /***
+     * Support for Serialization/De-serialization
+     ***/
+    DECL_XSERIALIZABLE(NameDatatypeValidator)
+
+protected:
+
+    //
+    // ctor provided to be used by derived classes
+    //
+    NameDatatypeValidator
+    (
+        DatatypeValidator* const baseValidator
+        , RefHashTableOf<KVStringPair>* const facets
+        , const int finalSet
+        , const ValidatorType type
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    virtual void checkValueSpace(const XMLCh* const content
+                                , MemoryManager* const manager);
+
+private:
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    NameDatatypeValidator(const NameDatatypeValidator&);
+    NameDatatypeValidator& operator=(const NameDatatypeValidator&);
+    // -----------------------------------------------------------------------
+    //  Private data members
+    //
+	//		
+    // -----------------------------------------------------------------------
+
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
+
+/**
+  * End of file NameDatatypeValidator.hpp
+  */
+
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/datatype/UnionDatatypeValidator.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/datatype/UnionDatatypeValidator.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/datatype/UnionDatatypeValidator.hpp	(revision 2674)
@@ -0,0 +1,389 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: UnionDatatypeValidator.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(UNION_DATATYPEVALIDATOR_HPP)
+#define UNION_DATATYPEVALIDATOR_HPP
+
+#include <xercesc/validators/datatype/DatatypeValidator.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class VALIDATORS_EXPORT UnionDatatypeValidator : public DatatypeValidator
+{
+public:
+
+    // -----------------------------------------------------------------------
+    //  Public ctor/dtor
+    // -----------------------------------------------------------------------
+	/** @name Constructors and Destructor. */
+    //@{
+
+    UnionDatatypeValidator
+    (
+        MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    //
+    // constructor for native Union datatype validator
+    // <simpleType name="nativeUnion">
+    //      <union   memberTypes="member1 member2 ...">
+    // </simpleType>
+    //
+    UnionDatatypeValidator
+    (
+        RefVectorOf<DatatypeValidator>* const memberTypeValidators
+        , const int finalSet
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    //
+    // constructor for derived Union datatype validator
+    // <simpleType name="derivedUnion">
+    //      <restriction base="nativeUnion">
+    //          <pattern     value="patter_value"/>
+    //          <enumeration value="enum_value"/>
+    //      </restriction>
+    // </simpleType>
+    //
+    UnionDatatypeValidator
+    (
+        DatatypeValidator* const baseValidator
+        , RefHashTableOf<KVStringPair>* const facets
+        , RefArrayVectorOf<XMLCh>* const enums
+        , const int finalSet
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+        , RefVectorOf<DatatypeValidator>* const memberTypeValidators = 0
+        , const bool memberTypesInherited = true
+    );
+
+    virtual ~UnionDatatypeValidator();
+
+	//@}
+
+	virtual const RefArrayVectorOf<XMLCh>* getEnumString() const;
+
+    // -----------------------------------------------------------------------
+    // Getter methods
+    // -----------------------------------------------------------------------
+    /** @name Getter Functions */
+    //@{
+    /**
+      * Returns whether the type is atomic or not
+      */
+    virtual bool isAtomic() const;
+
+    virtual const XMLCh* getCanonicalRepresentation
+                        (
+                          const XMLCh*         const rawData
+                        ,       MemoryManager* const memMgr = 0
+                        ,       bool                 toValidate = false
+                        ) const;
+
+    //@}
+
+    // -----------------------------------------------------------------------
+    // Validation methods
+    // -----------------------------------------------------------------------
+    /** @name Validation Function */
+    //@{
+
+    /**
+     * validate that a string matches the boolean datatype
+     * @param content A string containing the content to be validated
+     *
+     * @exception throws InvalidDatatypeException if the content is
+     * is not valid.
+     */
+
+	virtual void validate
+                 (
+                  const XMLCh*             const content
+                ,       ValidationContext* const context = 0
+                ,       MemoryManager*     const manager = XMLPlatformUtils::fgMemoryManager
+                  );
+
+    /**
+      * Checks whether a given type can be used as a substitute
+      *
+      * @param  toCheck    A datatype validator of the type to be used as a
+      *                    substitute
+      *
+      * To be redefined in UnionDatatypeValidator
+      */
+
+    virtual bool isSubstitutableBy(const DatatypeValidator* const toCheck);
+
+    //@}
+
+    // -----------------------------------------------------------------------
+    // Compare methods
+    // -----------------------------------------------------------------------
+    /** @name Compare Function */
+    //@{
+
+    /**
+     * Compare two boolean data types
+     *
+     * @param content1
+     * @param content2
+     * @return
+     */
+    int compare(const XMLCh* const, const XMLCh* const
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+        );
+
+    //@}
+
+    /**
+      * Returns an instance of the base datatype validator class
+	  * Used by the DatatypeValidatorFactory.
+      */
+    virtual DatatypeValidator* newInstance
+    (
+        RefHashTableOf<KVStringPair>* const facets
+        , RefArrayVectorOf<XMLCh>* const enums
+        , const int finalSet
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    /***
+     * Support for Serialization/De-serialization
+     ***/
+    DECL_XSERIALIZABLE(UnionDatatypeValidator)
+
+
+    RefVectorOf<DatatypeValidator>* getMemberTypeValidators() const;
+
+
+    /**
+     * Returns the type name that was actually used to validate the last time validate was called
+     * note - this does not mean that it fully validated sucessfully
+     * @deprecated
+     **/
+    const XMLCh* getMemberTypeName() const;
+
+    /**
+     * Returns the type uri that was actually used to validate the last time validate was called
+     * note - this does not mean that it fully validated sucessfully
+     * @deprecated
+     **/
+    const XMLCh* getMemberTypeUri() const;
+
+    /**
+     * Returns true if the type that was actually used to validate the last time validate was called 
+     * is anonymous
+     * @deprecated
+     */
+    bool getMemberTypeAnonymous() const;
+
+
+    /**
+     * Returns the member DatatypeValidator used to validate the content the last time validate 
+     * was called
+     * @deprecated
+     */
+    const DatatypeValidator* getMemberTypeValidator() const;
+
+    /**
+     * Called inbetween uses of this validator to reset PSVI information
+     */
+    void reset();
+
+private:
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------    
+    UnionDatatypeValidator(const UnionDatatypeValidator&);
+    UnionDatatypeValidator& operator=(const UnionDatatypeValidator&);
+
+    virtual void checkContent(const XMLCh*             const content
+                            ,       ValidationContext* const context
+                            , bool                           asBase
+                            ,       MemoryManager*     const manager);
+
+    void init(DatatypeValidator*            const baseValidator
+            , RefHashTableOf<KVStringPair>* const facets
+            , RefArrayVectorOf<XMLCh>*      const enums
+            , MemoryManager*                const manager);
+
+    void cleanUp();
+    
+    RefArrayVectorOf<XMLCh>*  getEnumeration() const;
+
+    void                 setEnumeration(RefArrayVectorOf<XMLCh>*, bool);
+
+
+    // -----------------------------------------------------------------------
+    //  Private data members
+    //
+    //  fEnumeration
+    //      we own it (or not, depending on state of fEnumerationInherited).
+    //
+    //  fMemberTypeValidators
+    //      we own it (or not, depending on the state of fMemberTypesInherited).
+    //
+    //  fValidatedDatatype
+    //      the dataTypeValidator  that was actually used to validate the last time validate was called
+    //
+    // -----------------------------------------------------------------------
+
+     bool                             fEnumerationInherited;
+     bool                             fMemberTypesInherited;
+     RefArrayVectorOf<XMLCh>*         fEnumeration;
+     RefVectorOf<DatatypeValidator>*  fMemberTypeValidators;
+     DatatypeValidator*               fValidatedDatatype;
+};
+
+inline DatatypeValidator* UnionDatatypeValidator::newInstance
+(
+      RefHashTableOf<KVStringPair>* const facets
+    , RefArrayVectorOf<XMLCh>* const      enums
+    , const int                           finalSet
+    , MemoryManager* const                manager
+)
+{
+    return (DatatypeValidator*) new (manager) UnionDatatypeValidator(this, facets, enums, finalSet, manager, fMemberTypeValidators, true);
+}
+
+inline void UnionDatatypeValidator::validate( const XMLCh*             const content
+                                           ,        ValidationContext* const context
+                                           ,        MemoryManager*     const manager)
+{
+    checkContent(content, context, false, manager);
+}
+
+inline void UnionDatatypeValidator::cleanUp()
+{
+    //~RefVectorOf will delete all adopted elements
+    if ( !fEnumerationInherited && fEnumeration)
+        delete fEnumeration;
+
+    if (!fMemberTypesInherited && fMemberTypeValidators)
+        delete fMemberTypeValidators;
+    
+}
+
+inline RefArrayVectorOf<XMLCh>* UnionDatatypeValidator:: getEnumeration() const
+{
+    return fEnumeration;
+}
+
+inline void UnionDatatypeValidator::setEnumeration(RefArrayVectorOf<XMLCh>* enums
+                                                 , bool                inherited)
+{
+    if (enums)
+    {
+        if (  !fEnumerationInherited && fEnumeration)
+            delete fEnumeration;
+
+        fEnumeration = enums;
+        fEnumerationInherited = inherited;
+        setFacetsDefined(DatatypeValidator::FACET_ENUMERATION);
+    }
+}
+
+//
+// get the native UnionDTV's fMemberTypeValidators
+//
+inline
+RefVectorOf<DatatypeValidator>* UnionDatatypeValidator::getMemberTypeValidators() const
+{
+    return this->fMemberTypeValidators;
+}
+
+inline bool UnionDatatypeValidator::isAtomic() const {
+
+
+
+    if (!fMemberTypeValidators) {
+        return false;
+    }
+
+    unsigned int memberSize = fMemberTypeValidators->size();
+
+    for (unsigned int i=0; i < memberSize; i++) {
+        if (!fMemberTypeValidators->elementAt(i)->isAtomic()) {
+            return false;
+        }
+    }
+
+    return true;
+}
+
+inline bool UnionDatatypeValidator::isSubstitutableBy(const DatatypeValidator* const toCheck) {
+
+    if (toCheck == this) {
+        return true;
+    }
+
+    if (fMemberTypeValidators) {
+        unsigned int memberSize = fMemberTypeValidators->size();
+
+        for (unsigned int i=0; i < memberSize; i++) {
+            if ((fMemberTypeValidators->elementAt(i)->getType() == DatatypeValidator::Union) &&
+                (fMemberTypeValidators->elementAt(i) == toCheck))
+                return false;
+            if (fMemberTypeValidators->elementAt(i)->isSubstitutableBy(toCheck)) {
+                return true;
+            }
+        }
+    }
+    return false;
+}
+
+inline const XMLCh* UnionDatatypeValidator::getMemberTypeName() const {
+    if(fValidatedDatatype) {
+        return fValidatedDatatype->getTypeLocalName();
+    }
+    return 0;
+}
+
+inline const XMLCh* UnionDatatypeValidator::getMemberTypeUri() const 
+{
+    if(fValidatedDatatype) {
+        return fValidatedDatatype->getTypeUri();
+    }
+    return 0;
+}
+
+inline bool UnionDatatypeValidator::getMemberTypeAnonymous() const {
+    if(fValidatedDatatype) {
+        return fValidatedDatatype->getAnonymous();
+    }
+    return 0;
+}
+
+inline const DatatypeValidator* UnionDatatypeValidator::getMemberTypeValidator() const {
+    return fValidatedDatatype;
+}
+
+inline void UnionDatatypeValidator::reset() {
+    fValidatedDatatype = 0;
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
+
+/**
+  * End of file UnionDatatypeValidator.hpp
+  */
+
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/datatype/IDREFDatatypeValidator.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/datatype/IDREFDatatypeValidator.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/datatype/IDREFDatatypeValidator.hpp	(revision 2674)
@@ -0,0 +1,145 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: IDREFDatatypeValidator.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(IDREF_DATATYPEVALIDATOR_HPP)
+#define IDREF_DATATYPEVALIDATOR_HPP
+
+#include <xercesc/validators/datatype/StringDatatypeValidator.hpp>
+#include <xercesc/framework/XMLRefInfo.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class VALIDATORS_EXPORT IDREFDatatypeValidator : public StringDatatypeValidator
+{
+public:
+
+    // -----------------------------------------------------------------------
+    //  Public ctor/dtor
+    // -----------------------------------------------------------------------
+	/** @name Constructors and Destructor */
+    //@{
+
+    IDREFDatatypeValidator
+    (
+        MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+    IDREFDatatypeValidator
+    (
+        DatatypeValidator* const baseValidator
+        , RefHashTableOf<KVStringPair>* const facets
+        , RefArrayVectorOf<XMLCh>* const enums
+        , const int finalSet
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    virtual ~IDREFDatatypeValidator();
+
+	//@}
+
+    // -----------------------------------------------------------------------
+    // Validation methods
+    // -----------------------------------------------------------------------
+    /** @name Validation Function */
+    //@{
+
+    /**
+     * validate that a string matches the boolean datatype
+     * @param content A string containing the content to be validated
+     *
+     * @exception throws InvalidDatatypeException if the content is
+     * is not valid.
+     */
+
+	virtual void validate
+                 (
+                  const XMLCh*             const content
+                ,       ValidationContext* const context = 0
+                ,       MemoryManager*     const manager = XMLPlatformUtils::fgMemoryManager
+                  );
+
+    //@}
+
+    /**
+      * Returns an instance of the base datatype validator class
+	  * Used by the DatatypeValidatorFactory.
+      */
+    virtual DatatypeValidator* newInstance
+    (
+        RefHashTableOf<KVStringPair>* const facets
+        , RefArrayVectorOf<XMLCh>* const enums
+        , const int finalSet
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    //deprecated
+    inline void setIDRefList(RefHashTableOf<XMLRefInfo>* fIDRefList);
+
+    /***
+     * Support for Serialization/De-serialization
+     ***/
+    DECL_XSERIALIZABLE(IDREFDatatypeValidator)
+
+protected:
+
+    //
+    // ctor provided to be used by derived classes
+    //
+    IDREFDatatypeValidator
+    (
+        DatatypeValidator* const baseValidator
+        , RefHashTableOf<KVStringPair>* const facets
+        , const int finalSet
+        , const ValidatorType type
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    virtual void checkValueSpace(const XMLCh* const content
+                                , MemoryManager* const manager);
+
+private:
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    IDREFDatatypeValidator(const IDREFDatatypeValidator&);
+    IDREFDatatypeValidator& operator=(const IDREFDatatypeValidator&);
+
+    // -----------------------------------------------------------------------
+    //  Private data members
+    //
+    //
+    // -----------------------------------------------------------------------
+
+};
+
+// -----------------------------------------------------------------------
+// Validation methods
+// -----------------------------------------------------------------------
+inline void IDREFDatatypeValidator::setIDRefList(RefHashTableOf<XMLRefInfo>* )
+{
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
+
+/**
+  * End of file IDREFDatatypeValidator.hpp
+  */
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/datatype/NOTATIONDatatypeValidator.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/datatype/NOTATIONDatatypeValidator.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/datatype/NOTATIONDatatypeValidator.hpp	(revision 2674)
@@ -0,0 +1,103 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: NOTATIONDatatypeValidator.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(NOTATION_DATATYPEVALIDATOR_HPP)
+#define NOTATION_DATATYPEVALIDATOR_HPP
+
+#include <xercesc/validators/datatype/AbstractStringValidator.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class VALIDATORS_EXPORT NOTATIONDatatypeValidator : public AbstractStringValidator
+{
+public:
+
+    // -----------------------------------------------------------------------
+    //  Public ctor/dtor
+    // -----------------------------------------------------------------------
+	/** @name Constructors and Destructor */
+    //@{
+
+    NOTATIONDatatypeValidator
+    (
+        MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+    NOTATIONDatatypeValidator
+    (
+        DatatypeValidator* const baseValidator
+        , RefHashTableOf<KVStringPair>* const facets
+        , RefArrayVectorOf<XMLCh>* const enums
+        , const int finalSet
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    virtual ~NOTATIONDatatypeValidator();
+
+	//@}
+
+    /**
+      * Returns an instance of the base datatype validator class
+	  * Used by the DatatypeValidatorFactory.
+      */
+    virtual DatatypeValidator* newInstance
+    (
+        RefHashTableOf<KVStringPair>* const facets
+        , RefArrayVectorOf<XMLCh>* const enums
+        , const int finalSet
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    /***
+     * Support for Serialization/De-serialization
+     ***/
+    DECL_XSERIALIZABLE(NOTATIONDatatypeValidator)
+
+protected:
+
+    virtual void checkValueSpace(const XMLCh* const content
+                        , MemoryManager* const manager);
+
+    virtual void checkContent(const XMLCh*             const content
+                            ,       ValidationContext* const context
+                            , bool                           asBase
+                            , MemoryManager* const manager);
+
+private:
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    NOTATIONDatatypeValidator(const NOTATIONDatatypeValidator&);
+    NOTATIONDatatypeValidator& operator=(const NOTATIONDatatypeValidator&);
+
+    // -----------------------------------------------------------------------
+    //  Private data members
+    //
+	//		Nil
+    // -----------------------------------------------------------------------
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
+/**
+  * End of file NOTATIONDatatypeValidator.hpp
+  */
+
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/datatype/DateTimeDatatypeValidator.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/datatype/DateTimeDatatypeValidator.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/datatype/DateTimeDatatypeValidator.hpp	(revision 2674)
@@ -0,0 +1,102 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: DateTimeDatatypeValidator.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(DATETIME_DATATYPE_VALIDATOR_HPP)
+#define DATETIME_DATATYPE_VALIDATOR_HPP
+
+#include <xercesc/validators/datatype/DateTimeValidator.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class VALIDATORS_EXPORT DateTimeDatatypeValidator : public DateTimeValidator
+{
+public:
+
+    // -----------------------------------------------------------------------
+    //  Public ctor/dtor
+    // -----------------------------------------------------------------------
+	/** @name Constructors and Destructor */
+    //@{
+
+    DateTimeDatatypeValidator
+    (
+        MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+    DateTimeDatatypeValidator
+    (
+        DatatypeValidator* const baseValidator
+        , RefHashTableOf<KVStringPair>* const facets
+        , RefArrayVectorOf<XMLCh>* const enums
+        , const int finalSet
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+    ~DateTimeDatatypeValidator();
+
+	//@}
+
+    /**
+      * Returns an instance of the base datatype validator class
+	  * Used by the DatatypeValidatorFactory.
+      */
+    virtual DatatypeValidator* newInstance
+    (
+        RefHashTableOf<KVStringPair>* const facets
+        , RefArrayVectorOf<XMLCh>* const enums
+        , const int finalSet
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    virtual const XMLCh* getCanonicalRepresentation
+                        (
+                          const XMLCh*         const rawData
+                        ,       MemoryManager* const memMgr = 0
+                        ,       bool                 toValidate = false
+                        ) const;
+
+    /***
+     * Support for Serialization/De-serialization
+     ***/
+    DECL_XSERIALIZABLE(DateTimeDatatypeValidator)
+
+protected:
+
+    // -----------------------------------------------------------------------
+    //  implementation of (DateTimeValidator's) virtual interface
+    // -----------------------------------------------------------------------
+    virtual XMLDateTime*          parse(const XMLCh* const, MemoryManager* const manager);
+    virtual void                  parse(XMLDateTime* const);
+
+private:
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    DateTimeDatatypeValidator(const DateTimeDatatypeValidator&);
+    DateTimeDatatypeValidator& operator=(const DateTimeDatatypeValidator&);
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
+
+/**
+  * End of file DateTimeDatatypeValidator.hpp
+  */
+
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/datatype/IDDatatypeValidator.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/datatype/IDDatatypeValidator.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/datatype/IDDatatypeValidator.hpp	(revision 2674)
@@ -0,0 +1,139 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: IDDatatypeValidator.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(ID_DATATYPEVALIDATOR_HPP)
+#define ID_DATATYPEVALIDATOR_HPP
+
+#include <xercesc/validators/datatype/StringDatatypeValidator.hpp>
+#include <xercesc/framework/XMLRefInfo.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class VALIDATORS_EXPORT IDDatatypeValidator : public StringDatatypeValidator
+{
+public:
+
+    // -----------------------------------------------------------------------
+    //  Public ctor/dtor
+    // -----------------------------------------------------------------------
+	/** @name Constructors and Destructor */
+    //@{
+
+    IDDatatypeValidator
+    (
+        MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+    IDDatatypeValidator
+    (
+        DatatypeValidator*            const baseValidator
+        , RefHashTableOf<KVStringPair>* const facets
+        , RefArrayVectorOf<XMLCh>*           const enums
+        , const int                           finalSet
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+    virtual ~IDDatatypeValidator();
+
+	//@}
+
+    // -----------------------------------------------------------------------
+    // Validation methods
+    // -----------------------------------------------------------------------
+    /** @name Validation Function */
+    //@{
+
+    /**
+     * validate that a string matches the boolean datatype
+     * @param content A string containing the content to be validated
+     *
+     * @exception throws InvalidDatatypeException if the content is
+     * is not valid.
+     */
+
+	virtual void validate
+                 (
+                  const XMLCh*             const content
+                ,       ValidationContext* const context = 0
+                ,       MemoryManager*     const manager = XMLPlatformUtils::fgMemoryManager                
+                  );
+
+    /**
+      * Returns an instance of the base datatype validator class
+	  * Used by the DatatypeValidatorFactory.
+      */
+    virtual DatatypeValidator* newInstance
+    (
+        RefHashTableOf<KVStringPair>* const facets
+        , RefArrayVectorOf<XMLCh>* const enums
+        , const int finalSet
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    //@}
+
+    //deprecated
+	inline void setIDRefList(RefHashTableOf<XMLRefInfo>* fIDRefList);
+
+    /***
+     * Support for Serialization/De-serialization
+     ***/
+    DECL_XSERIALIZABLE(IDDatatypeValidator)
+
+protected:
+
+    //
+    // ctor provided to be used by derived classes
+    //
+    IDDatatypeValidator
+    (
+        DatatypeValidator*            const baseValidator
+        , RefHashTableOf<KVStringPair>* const facets
+        , const int                           finalSet
+        , const ValidatorType                 type
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    virtual void checkValueSpace(const XMLCh* const content
+                                , MemoryManager* const manager);
+
+private:
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    IDDatatypeValidator(const IDDatatypeValidator&);
+    IDDatatypeValidator& operator=(const IDDatatypeValidator&);
+    // -----------------------------------------------------------------------
+    //  Private data members
+    //
+    //
+    // -----------------------------------------------------------------------
+};
+
+inline void IDDatatypeValidator::setIDRefList(RefHashTableOf<XMLRefInfo>* )
+{
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
+/**
+  * End of file IDDatatypeValidator.hpp
+  */
+
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/datatype/AbstractNumericFacetValidator.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/datatype/AbstractNumericFacetValidator.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/datatype/AbstractNumericFacetValidator.hpp	(revision 2674)
@@ -0,0 +1,201 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: AbstractNumericFacetValidator.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(ABSTRACT_NUMERIC_FACET_VALIDATOR_HPP)
+#define ABSTRACT_NUMERIC_FACET_VALIDATOR_HPP
+
+#include <xercesc/validators/datatype/DatatypeValidator.hpp>
+#include <xercesc/util/RefArrayVectorOf.hpp>
+#include <xercesc/util/XMLNumber.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class VALIDATORS_EXPORT AbstractNumericFacetValidator : public DatatypeValidator
+{
+public:
+
+    // -----------------------------------------------------------------------
+    //  Public ctor/dtor
+    // -----------------------------------------------------------------------
+	/** @name Constructor. */
+    //@{
+
+    virtual ~AbstractNumericFacetValidator();
+
+	//@}
+
+	virtual const RefArrayVectorOf<XMLCh>* getEnumString() const;
+
+    /***
+     * Support for Serialization/De-serialization
+     ***/
+    DECL_XSERIALIZABLE(AbstractNumericFacetValidator)
+
+protected:
+
+    AbstractNumericFacetValidator
+    (
+        DatatypeValidator* const baseValidator
+        , RefHashTableOf<KVStringPair>* const facets
+        , const int finalSet
+        , const ValidatorType type
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    void init(RefArrayVectorOf<XMLCh>*  const enums
+        , MemoryManager* const manager);
+
+    //
+    // Abstract interface
+    //
+    virtual void assignAdditionalFacet(const XMLCh* const key
+                                     , const XMLCh* const value
+                                     , MemoryManager* const manager);
+
+    virtual void inheritAdditionalFacet();
+
+    virtual void checkAdditionalFacetConstraints(MemoryManager* const manager) const;
+
+    virtual void checkAdditionalFacetConstraintsBase(MemoryManager* const manager) const;
+
+    virtual int  compareValues(const XMLNumber* const lValue
+                             , const XMLNumber* const rValue) = 0;
+
+    virtual void checkContent(const XMLCh*             const content
+                            ,       ValidationContext* const context
+                            , bool                           asBase
+                            ,       MemoryManager*     const manager) = 0;
+
+// -----------------------------------------------------------------------
+// Setter methods
+// -----------------------------------------------------------------------
+
+    virtual void  setMaxInclusive(const XMLCh* const) = 0;
+
+    virtual void  setMaxExclusive(const XMLCh* const) = 0;
+
+    virtual void  setMinInclusive(const XMLCh* const) = 0;
+
+    virtual void  setMinExclusive(const XMLCh* const) = 0;
+
+    virtual void  setEnumeration(MemoryManager* const manager) = 0;
+
+    static const int INDETERMINATE;
+
+public:
+// -----------------------------------------------------------------------
+// Getter methods
+// -----------------------------------------------------------------------
+
+    inline XMLNumber* const            getMaxInclusive() const;
+
+    inline XMLNumber* const            getMaxExclusive() const;
+
+    inline XMLNumber* const            getMinInclusive() const;
+
+    inline XMLNumber* const            getMinExclusive() const;
+
+    inline RefVectorOf<XMLNumber>*     getEnumeration() const;
+
+protected:
+    // -----------------------------------------------------------------------
+    //  Protected data members
+    //
+    //      Allow access to derived class
+    //
+    // -----------------------------------------------------------------------
+    bool                     fMaxInclusiveInherited;
+    bool                     fMaxExclusiveInherited;
+    bool                     fMinInclusiveInherited;
+    bool                     fMinExclusiveInherited;
+    bool                     fEnumerationInherited;
+
+    XMLNumber*               fMaxInclusive;
+    XMLNumber*               fMaxExclusive;
+    XMLNumber*               fMinInclusive;
+    XMLNumber*               fMinExclusive;
+
+    RefVectorOf<XMLNumber>*  fEnumeration;    // save the actual value
+    RefArrayVectorOf<XMLCh>*      fStrEnumeration;
+
+private:
+
+    void assignFacet(MemoryManager* const manager);
+
+    void inspectFacet(MemoryManager* const manager);
+
+    void inspectFacetBase(MemoryManager* const manager);
+
+    void inheritFacet();
+
+    void storeClusive(XSerializeEngine&
+                    , bool
+                    , XMLNumber*);
+
+    void loadClusive(XSerializeEngine&
+                   , bool&
+                   , XMLNumber*&
+                   , XMLNumber::NumberType
+                   , int );
+
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    AbstractNumericFacetValidator(const AbstractNumericFacetValidator&);
+    AbstractNumericFacetValidator& operator=(const AbstractNumericFacetValidator&);
+};
+
+// -----------------------------------------------------------------------
+// Getter methods
+// -----------------------------------------------------------------------
+
+inline XMLNumber* const AbstractNumericFacetValidator::getMaxInclusive() const
+{
+    return fMaxInclusive;
+}
+
+inline XMLNumber* const AbstractNumericFacetValidator::getMaxExclusive() const
+{
+    return fMaxExclusive;
+}
+
+inline XMLNumber* const AbstractNumericFacetValidator::getMinInclusive() const
+{
+    return fMinInclusive;
+}
+
+inline XMLNumber* const AbstractNumericFacetValidator::getMinExclusive() const
+{
+    return fMinExclusive;
+}
+
+inline RefVectorOf<XMLNumber>* AbstractNumericFacetValidator::getEnumeration() const
+{
+    return fEnumeration;
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
+
+/**
+  * End of file AbstractNumericFacetValidator.hpp
+  */
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/datatype/AbstractStringValidator.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/datatype/AbstractStringValidator.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/datatype/AbstractStringValidator.hpp	(revision 2674)
@@ -0,0 +1,250 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: AbstractStringValidator.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(ABSTRACT_STRING_VALIDATOR_HPP)
+#define ABSTRACT_STRING_VALIDATOR_HPP
+
+#include <xercesc/validators/datatype/DatatypeValidator.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class VALIDATORS_EXPORT AbstractStringValidator : public DatatypeValidator
+{
+public:
+
+    // -----------------------------------------------------------------------
+    //  Public ctor/dtor
+    // -----------------------------------------------------------------------
+	/** @name Constructor. */
+    //@{
+
+    virtual ~AbstractStringValidator();
+
+	//@}
+
+	virtual const RefArrayVectorOf<XMLCh>* getEnumString() const;
+
+    // -----------------------------------------------------------------------
+    // Validation methods
+    // -----------------------------------------------------------------------
+    /** @name Validation Function */
+    //@{
+
+    /**
+     * validate that a string matches the boolean datatype
+     * @param content A string containing the content to be validated
+     *
+     * @exception throws InvalidDatatypeException if the content is
+     * is not valid.
+     */
+
+	virtual void validate
+                 (
+                  const XMLCh*             const content
+                ,       ValidationContext* const context = 0
+                ,       MemoryManager*     const manager = XMLPlatformUtils::fgMemoryManager
+                  );
+
+    //@}
+
+    // -----------------------------------------------------------------------
+    // Compare methods
+    // -----------------------------------------------------------------------
+    /** @name Compare Function */
+    //@{
+
+    virtual int compare(const XMLCh* const, const XMLCh* const
+        ,       MemoryManager*     const manager = XMLPlatformUtils::fgMemoryManager
+        );
+
+    //@}
+
+    /***
+     * Support for Serialization/De-serialization
+     ***/
+    DECL_XSERIALIZABLE(AbstractStringValidator)
+
+protected:
+
+    AbstractStringValidator
+    (
+        DatatypeValidator* const baseValidator
+        , RefHashTableOf<KVStringPair>* const facets
+        , const int finalSet
+        , const ValidatorType type
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    void init(RefArrayVectorOf<XMLCh>*           const enums
+        , MemoryManager* const manager);
+
+    //
+    // Abstract interface
+    //
+    virtual void assignAdditionalFacet(const XMLCh* const key
+                                     , const XMLCh* const value
+                                     , MemoryManager* const manager);
+
+    virtual void inheritAdditionalFacet();
+
+    virtual void checkAdditionalFacetConstraints(MemoryManager* const manager) const;
+
+    virtual void checkAdditionalFacet(const XMLCh* const content
+                                    , MemoryManager* const manager) const;
+
+    virtual int  getLength(const XMLCh* const content
+        , MemoryManager* const manager) const;
+    
+    virtual void checkValueSpace(const XMLCh* const content
+        , MemoryManager* const manager) = 0;
+
+    //
+    //   to Allow ListDTV to overwrite
+    //
+    virtual void inspectFacetBase(MemoryManager* const manager);
+
+    virtual void inheritFacet();
+
+    virtual void checkContent(const XMLCh*             const content
+                            ,       ValidationContext* const context
+                            , bool                           asBase
+                            , MemoryManager* const manager);
+
+    /*
+     **  Base64BinaryDatatypeValidator to overwrite
+     */
+    virtual void normalizeEnumeration(MemoryManager* const manager);
+
+    virtual void normalizeContent(XMLCh* const, MemoryManager* const manager) const;
+
+public:
+// -----------------------------------------------------------------------
+// Getter methods
+// -----------------------------------------------------------------------
+
+    inline unsigned int         getLength() const;
+
+    inline unsigned int         getMaxLength() const;
+
+    inline unsigned int         getMinLength() const;
+
+    inline RefArrayVectorOf<XMLCh>*  getEnumeration() const;
+
+protected:
+// -----------------------------------------------------------------------
+// Setter methods
+// -----------------------------------------------------------------------
+
+    inline void                 setLength(unsigned int);
+
+    inline void                 setMaxLength(unsigned int);
+
+    inline void                 setMinLength(unsigned int);
+
+    inline void                 setEnumeration(RefArrayVectorOf<XMLCh>*, bool);
+
+private:
+
+    void assignFacet(MemoryManager* const manager);
+
+    void inspectFacet(MemoryManager* const manager);
+
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    AbstractStringValidator(const AbstractStringValidator&);
+    AbstractStringValidator& operator=(const AbstractStringValidator&);
+
+    // -----------------------------------------------------------------------
+    //  Private data members
+    //
+    // -----------------------------------------------------------------------
+     unsigned int         fLength;
+     unsigned int         fMaxLength;
+     unsigned int         fMinLength;
+     bool                 fEnumerationInherited;
+     RefArrayVectorOf<XMLCh>*  fEnumeration;
+};
+
+// -----------------------------------------------------------------------
+// Getter methods
+// -----------------------------------------------------------------------
+
+inline unsigned int AbstractStringValidator::getLength() const
+{
+    return fLength;
+}
+
+inline unsigned int AbstractStringValidator::getMaxLength() const
+{
+    return fMaxLength;
+}
+
+inline unsigned int AbstractStringValidator::getMinLength() const
+{
+    return fMinLength;
+}
+
+inline RefArrayVectorOf<XMLCh>* AbstractStringValidator:: getEnumeration() const
+{
+    return fEnumeration;
+}
+
+// -----------------------------------------------------------------------
+// Setter methods
+// -----------------------------------------------------------------------
+
+inline void AbstractStringValidator::setLength(unsigned int newLength)
+{
+    fLength = newLength;
+}
+
+inline void AbstractStringValidator::setMaxLength(unsigned int newMaxLength)
+{
+    fMaxLength = newMaxLength;
+}
+
+inline void AbstractStringValidator::setMinLength(unsigned int newMinLength)
+{
+    fMinLength = newMinLength;
+}
+
+inline void AbstractStringValidator::setEnumeration(RefArrayVectorOf<XMLCh>* enums
+                                           , bool                inherited)
+{
+    if (enums)
+    {
+        if ( !fEnumerationInherited && fEnumeration)
+            delete fEnumeration;
+
+        fEnumeration = enums;
+        fEnumerationInherited = inherited;
+        setFacetsDefined(DatatypeValidator::FACET_ENUMERATION);
+    }
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
+
+/**
+  * End of file AbstractStringValidator.hpp
+  */
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/datatype/TimeDatatypeValidator.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/datatype/TimeDatatypeValidator.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/datatype/TimeDatatypeValidator.hpp	(revision 2674)
@@ -0,0 +1,104 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: TimeDatatypeValidator.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(TIME_DATATYPE_VALIDATOR_HPP)
+#define TIME_DATATYPE_VALIDATOR_HPP
+
+#include <xercesc/validators/datatype/DateTimeValidator.hpp>
+#include <xercesc/util/RefVectorOf.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class VALIDATORS_EXPORT TimeDatatypeValidator : public DateTimeValidator
+{
+public:
+
+    // -----------------------------------------------------------------------
+    //  Public ctor/dtor
+    // -----------------------------------------------------------------------
+	/** @name Constructors and Destructor */
+    //@{
+
+    TimeDatatypeValidator
+    (
+        MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+    TimeDatatypeValidator
+    (
+        DatatypeValidator* const baseValidator
+        , RefHashTableOf<KVStringPair>* const facets
+        , RefArrayVectorOf<XMLCh>* const enums
+        , const int finalSet
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+    ~TimeDatatypeValidator();
+
+
+	//@}
+
+    /**
+      * Returns an instance of the base datatype validator class
+	  * Used by the DatatypeValidatorFactory.
+      */
+    virtual DatatypeValidator* newInstance
+    (
+        RefHashTableOf<KVStringPair>* const facets
+        , RefArrayVectorOf<XMLCh>* const enums
+        , const int finalSet
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    virtual const XMLCh* getCanonicalRepresentation
+                        (
+                          const XMLCh*         const rawData
+                        ,       MemoryManager* const memMgr = 0
+                        ,       bool                 toValidate = false
+                        ) const;
+
+    /***
+     * Support for Serialization/De-serialization
+     ***/
+    DECL_XSERIALIZABLE(TimeDatatypeValidator)
+
+protected:
+
+    // -----------------------------------------------------------------------
+    //  implementation of (DateTimeValidator's) virtual interface
+    // -----------------------------------------------------------------------
+    virtual XMLDateTime*          parse(const XMLCh* const, MemoryManager* const manager);
+    virtual void                  parse(XMLDateTime* const);
+
+private:
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------    
+    TimeDatatypeValidator(const TimeDatatypeValidator&);
+    TimeDatatypeValidator& operator=(const TimeDatatypeValidator&);
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
+
+/**
+  * End of file TimeDatatypeValidator.hpp
+  */
+
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/datatype/DateTimeValidator.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/datatype/DateTimeValidator.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/datatype/DateTimeValidator.hpp	(revision 2674)
@@ -0,0 +1,126 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: DateTimeValidator.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(DATETIME_VALIDATOR_HPP)
+#define DATETIME_VALIDATOR_HPP
+
+#include <xercesc/validators/datatype/AbstractNumericFacetValidator.hpp>
+#include <xercesc/util/XMLDateTime.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class VALIDATORS_EXPORT DateTimeValidator : public AbstractNumericFacetValidator
+{
+public:
+
+    // -----------------------------------------------------------------------
+    //  Public dtor
+    // -----------------------------------------------------------------------
+	/** @name Constructor. */
+    //@{
+
+    virtual ~DateTimeValidator();
+
+	//@}
+
+	virtual void validate
+                 (
+                  const XMLCh*             const content
+                ,       ValidationContext* const context = 0
+                ,       MemoryManager*     const manager = XMLPlatformUtils::fgMemoryManager
+                  );
+
+    virtual int  compare(const XMLCh* const value1
+                       , const XMLCh* const value2
+                       , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+                       );
+
+    /***
+     * Support for Serialization/De-serialization
+     ***/
+    DECL_XSERIALIZABLE(DateTimeValidator)
+
+protected:
+
+    // -----------------------------------------------------------------------
+    //  ctor used by derived class
+    // -----------------------------------------------------------------------
+    DateTimeValidator
+    (
+        DatatypeValidator* const baseValidator
+        , RefHashTableOf<KVStringPair>* const facets
+        , const int finalSet
+        , const ValidatorType type
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    //
+    // Abstract interface
+    //
+
+    virtual int  compareValues(const XMLNumber* const lValue
+                             , const XMLNumber* const rValue);
+
+    virtual void checkContent(const XMLCh*             const content
+                            ,       ValidationContext* const context
+                            , bool                           asBase
+                            ,       MemoryManager*     const manager);
+
+    virtual void  setMaxInclusive(const XMLCh* const);
+
+    virtual void  setMaxExclusive(const XMLCh* const);
+
+    virtual void  setMinInclusive(const XMLCh* const);
+
+    virtual void  setMinExclusive(const XMLCh* const);
+
+    virtual void  setEnumeration(MemoryManager* const manager);
+
+protected:
+
+    // -----------------------------------------------------------------------
+    //  helper interface: to be implemented/overwritten by derived class
+    // -----------------------------------------------------------------------
+    virtual XMLDateTime*   parse(const XMLCh* const, MemoryManager* const manager) = 0;
+    virtual void parse(XMLDateTime* const) = 0;
+
+    // to be overwritten by duration
+    virtual int            compareDates(const XMLDateTime* const lValue
+                                      , const XMLDateTime* const rValue
+                                      , bool strict);
+
+private:
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    DateTimeValidator(const DateTimeValidator&);
+    DateTimeValidator& operator=(const DateTimeValidator&);
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
+
+/**
+  * End of file DateTimeValidator.hpp
+  */
+
+
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/datatype/InvalidDatatypeFacetException.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/datatype/InvalidDatatypeFacetException.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/datatype/InvalidDatatypeFacetException.hpp	(revision 2674)
@@ -0,0 +1,35 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: InvalidDatatypeFacetException.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+#if !defined(INVALIDDATATYPEFACETEXCEPTION_HPP)
+#define INVALIDDATATYPEFACETEXCEPTION_HPP
+
+#include <xercesc/util/XercesDefs.hpp>
+#include <xercesc/util/XMLException.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+MakeXMLException(InvalidDatatypeFacetException, XMLUTIL_EXPORT)
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/datatype/XMLCanRepGroup.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/datatype/XMLCanRepGroup.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/datatype/XMLCanRepGroup.hpp	(revision 2674)
@@ -0,0 +1,75 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: XMLCanRepGroup.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(XMLCANREPGROUP_HPP)
+#define XMLCANREPGROUP_HPP
+
+#include <xercesc/util/PlatformUtils.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class VALIDATORS_EXPORT XMLCanRepGroup : public XMemory
+{
+public:
+
+    enum CanRepGroup {
+        Boolean,
+        DoubleFloat,
+        DateTime,
+        Time,
+        Decimal,
+        Decimal_Derivated_signed,
+        Decimal_Derivated_unsigned,
+        Decimal_Derivated_npi,
+        String
+    };
+
+    ~XMLCanRepGroup();
+
+    XMLCanRepGroup(CanRepGroup val);
+
+    inline CanRepGroup    getGroup() const;
+
+private:
+
+    CanRepGroup    fData;
+
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    XMLCanRepGroup(const XMLCanRepGroup&);
+	XMLCanRepGroup& operator=(const XMLCanRepGroup&);
+
+};
+
+inline XMLCanRepGroup::CanRepGroup XMLCanRepGroup::getGroup() const
+{
+    return fData;
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
+
+/**
+  * End of file XMLCanRepGroup.hpp
+  */
+
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/datatype/FloatDatatypeValidator.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/datatype/FloatDatatypeValidator.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/datatype/FloatDatatypeValidator.hpp	(revision 2674)
@@ -0,0 +1,145 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: FloatDatatypeValidator.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(FLOAT_DATATYPEVALIDATOR_HPP)
+#define FLOAT_DATATYPEVALIDATOR_HPP
+
+#include <xercesc/validators/datatype/AbstractNumericValidator.hpp>
+#include <xercesc/util/RefVectorOf.hpp>
+#include <xercesc/util/XMLFloat.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class VALIDATORS_EXPORT FloatDatatypeValidator : public AbstractNumericValidator
+{
+public:
+
+    // -----------------------------------------------------------------------
+    //  Public ctor/dtor
+    // -----------------------------------------------------------------------
+	/** @name Constructors and Destructor */
+    //@{
+    FloatDatatypeValidator
+    (
+        MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+    FloatDatatypeValidator
+    (
+        DatatypeValidator* const baseValidator
+        , RefHashTableOf<KVStringPair>* const facets
+        , RefArrayVectorOf<XMLCh>* const enums
+        , const int finalSet
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+    virtual ~FloatDatatypeValidator();
+
+	//@}
+
+    // -----------------------------------------------------------------------
+    // Compare methods
+    // -----------------------------------------------------------------------
+    /** @name Compare Function */
+    //@{
+
+    /**
+     * Compare two boolean data types
+     *
+     * @param content1
+     * @param content2
+     * @return
+     */
+    virtual int compare(const XMLCh* const, const XMLCh* const
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+        );
+
+    //@}
+
+    /**
+      * Returns an instance of the base datatype validator class
+	  * Used by the DatatypeValidatorFactory.
+      */
+    virtual DatatypeValidator* newInstance
+    (
+        RefHashTableOf<KVStringPair>* const facets
+        , RefArrayVectorOf<XMLCh>* const enums
+        , const int finalSet
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    /***
+     * Support for Serialization/De-serialization
+     ***/
+    DECL_XSERIALIZABLE(FloatDatatypeValidator)
+
+protected:
+
+    // -----------------------------------------------------------------------
+    // ctor provided to be used by derived classes
+    // -----------------------------------------------------------------------
+    FloatDatatypeValidator
+    (
+        DatatypeValidator* const baseValidator
+        , RefHashTableOf<KVStringPair>* const facets
+        , const int finalSet
+        , const ValidatorType type
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    // -----------------------------------------------------------------------
+    // Abstract interface from AbstractNumericFacetValidator
+    // -----------------------------------------------------------------------
+
+    virtual int  compareValues(const XMLNumber* const lValue
+                             , const XMLNumber* const rValue);
+
+    virtual void  setMaxInclusive(const XMLCh* const);
+
+    virtual void  setMaxExclusive(const XMLCh* const);
+
+    virtual void  setMinInclusive(const XMLCh* const);
+
+    virtual void  setMinExclusive(const XMLCh* const);
+
+    virtual void  setEnumeration(MemoryManager* const manager);
+
+// -----------------------------------------------------------------------
+// Abstract interface from AbstractNumericValidator
+// -----------------------------------------------------------------------
+
+    virtual void checkContent(const XMLCh*             const content
+                            ,       ValidationContext* const context
+                            , bool                           asBase
+                            ,       MemoryManager*     const manager);
+private:
+    // -----------------------------------------------------------------------
+    // Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    FloatDatatypeValidator(const FloatDatatypeValidator&);
+    FloatDatatypeValidator& operator = (const  FloatDatatypeValidator&);
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
+
+/**
+  * End of file FloatDatatypeValidator.hpp
+  */
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/datatype/AnyURIDatatypeValidator.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/datatype/AnyURIDatatypeValidator.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/datatype/AnyURIDatatypeValidator.hpp	(revision 2674)
@@ -0,0 +1,92 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: AnyURIDatatypeValidator.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(ANYURI_DATATYPEVALIDATOR_HPP)
+#define ANYURI_DATATYPEVALIDATOR_HPP
+
+#include <xercesc/validators/datatype/AbstractStringValidator.hpp>
+#include <xercesc/util/XMLUri.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class VALIDATORS_EXPORT AnyURIDatatypeValidator : public AbstractStringValidator
+{
+public:
+
+    // -----------------------------------------------------------------------
+    //  Public ctor/dtor
+    // -----------------------------------------------------------------------
+	/** @name Constructors and Destructor */
+    //@{
+
+    AnyURIDatatypeValidator
+    (
+        MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+    AnyURIDatatypeValidator
+    (
+        DatatypeValidator* const baseValidator
+        , RefHashTableOf<KVStringPair>* const facets
+        , RefArrayVectorOf<XMLCh>* const enums
+        , const int finalSet
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+    virtual ~AnyURIDatatypeValidator();
+
+	//@}
+
+    /**
+      * Returns an instance of the base datatype validator class
+	  * Used by the DatatypeValidatorFactory.
+      */
+    virtual DatatypeValidator* newInstance
+    (
+        RefHashTableOf<KVStringPair>* const facets
+        , RefArrayVectorOf<XMLCh>* const enums
+        , const int finalSet
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    /***
+     * Support for Serialization/De-serialization
+     ***/
+    DECL_XSERIALIZABLE(AnyURIDatatypeValidator)
+
+protected:
+
+    virtual void checkValueSpace(const XMLCh* const content
+        , MemoryManager* const manager);
+
+private:
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    AnyURIDatatypeValidator(const AnyURIDatatypeValidator&);
+    AnyURIDatatypeValidator& operator=(const AnyURIDatatypeValidator&);    
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
+
+/**
+  * End of file AnyURIDatatypeValidator.hpp
+  */
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/datatype/DoubleDatatypeValidator.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/datatype/DoubleDatatypeValidator.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/datatype/DoubleDatatypeValidator.hpp	(revision 2674)
@@ -0,0 +1,146 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: DoubleDatatypeValidator.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(DOUBLE_DATATYPEVALIDATOR_HPP)
+#define DOUBLE_DATATYPEVALIDATOR_HPP
+
+#include <xercesc/validators/datatype/AbstractNumericValidator.hpp>
+#include <xercesc/util/RefVectorOf.hpp>
+#include <xercesc/util/XMLDouble.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class VALIDATORS_EXPORT DoubleDatatypeValidator : public AbstractNumericValidator
+{
+public:
+
+    // -----------------------------------------------------------------------
+    //  Public ctor/dtor
+    // -----------------------------------------------------------------------
+	/** @name Constructors and Destructor */
+    //@{
+
+    DoubleDatatypeValidator
+    (
+        MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+    DoubleDatatypeValidator
+    (
+        DatatypeValidator* const baseValidator
+        , RefHashTableOf<KVStringPair>* const facets
+        , RefArrayVectorOf<XMLCh>* const enums
+        , const int finalSet
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+    virtual ~DoubleDatatypeValidator();
+
+	//@}
+
+    // -----------------------------------------------------------------------
+    // Compare methods
+    // -----------------------------------------------------------------------
+    /** @name Compare Function */
+    //@{
+
+    /**
+     * Compare two boolean data types
+     *
+     * @param content1
+     * @param content2
+     * @return
+     */
+    virtual int compare(const XMLCh* const, const XMLCh* const
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+        );
+
+    //@}
+
+    /**
+      * Returns an instance of the base datatype validator class
+	  * Used by the DatatypeValidatorFactory.
+      */
+    virtual DatatypeValidator* newInstance
+    (
+        RefHashTableOf<KVStringPair>* const facets
+        , RefArrayVectorOf<XMLCh>* const enums
+        , const int finalSet
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    /***
+     * Support for Serialization/De-serialization
+     ***/
+    DECL_XSERIALIZABLE(DoubleDatatypeValidator)
+
+protected:
+
+// -----------------------------------------------------------------------
+// ctor provided to be used by derived classes
+// -----------------------------------------------------------------------
+    DoubleDatatypeValidator
+    (
+        DatatypeValidator* const baseValidator
+        , RefHashTableOf<KVStringPair>* const facets
+        , const int finalSet
+        , const ValidatorType type
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+// -----------------------------------------------------------------------
+// Abstract interface from AbstractNumericFacetValidator
+// -----------------------------------------------------------------------
+
+    virtual int  compareValues(const XMLNumber* const lValue
+                             , const XMLNumber* const rValue);
+
+    virtual void  setMaxInclusive(const XMLCh* const);
+
+    virtual void  setMaxExclusive(const XMLCh* const);
+
+    virtual void  setMinInclusive(const XMLCh* const);
+
+    virtual void  setMinExclusive(const XMLCh* const);
+
+    virtual void  setEnumeration(MemoryManager* const manager);
+
+// -----------------------------------------------------------------------
+// Abstract interface from AbstractNumericValidator
+// -----------------------------------------------------------------------
+
+    virtual void checkContent(const XMLCh*             const content
+                            ,       ValidationContext* const context
+                            , bool                           asBase
+                            ,       MemoryManager*     const manager);
+private:
+    // -----------------------------------------------------------------------
+    // Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    DoubleDatatypeValidator(const DoubleDatatypeValidator &);
+    DoubleDatatypeValidator& operator = (const  DoubleDatatypeValidator&);
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
+
+/**
+  * End of file DoubleDatatypeValidator.hpp
+  */
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/datatype/ENTITYDatatypeValidator.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/datatype/ENTITYDatatypeValidator.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/datatype/ENTITYDatatypeValidator.hpp	(revision 2674)
@@ -0,0 +1,162 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: ENTITYDatatypeValidator.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(ENTITY_DATATYPEVALIDATOR_HPP)
+#define ENTITY_DATATYPEVALIDATOR_HPP
+
+#include <xercesc/validators/datatype/StringDatatypeValidator.hpp>
+#include <xercesc/util/NameIdPool.hpp>
+#include <xercesc/validators/DTD/DTDEntityDecl.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class VALIDATORS_EXPORT ENTITYDatatypeValidator : public StringDatatypeValidator
+{
+public:
+
+    // -----------------------------------------------------------------------
+    //  Public ctor/dtor
+    // -----------------------------------------------------------------------
+	/** @name Constructors and Destructor. */
+    //@{
+
+    ENTITYDatatypeValidator
+    (
+        MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+    ENTITYDatatypeValidator
+    (
+        DatatypeValidator* const baseValidator
+        , RefHashTableOf<KVStringPair>* const facets
+        , RefArrayVectorOf<XMLCh>* const enums
+        , const int finalSet
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    virtual ~ENTITYDatatypeValidator();
+
+	//@}
+
+    // -----------------------------------------------------------------------
+    // Validation methods
+    // -----------------------------------------------------------------------
+    /** @name Validation Function */
+    //@{
+
+    /**
+     * validate that a string matches the boolean datatype
+     * @param content A string containing the content to be validated
+     *
+     * @exception throws InvalidDatatypeException if the content is
+     * is not valid.
+     */
+
+	virtual void validate
+                 (
+                  const XMLCh*             const content
+                ,       ValidationContext* const context = 0
+                ,       MemoryManager*     const manager = XMLPlatformUtils::fgMemoryManager
+                  );
+
+    //@}
+
+    // -----------------------------------------------------------------------
+    // Compare methods
+    // -----------------------------------------------------------------------
+    /** @name Compare Function */
+    //@{
+
+    /**
+     * Compare two boolean data types
+     *
+     * @param content1
+     * @param content2
+     * @return
+     */
+    virtual int compare(const XMLCh* const, const XMLCh* const
+        ,       MemoryManager*     const manager = XMLPlatformUtils::fgMemoryManager);
+
+    //@}
+
+    /**
+      * Returns an instance of the base datatype validator class
+	  * Used by the DatatypeValidatorFactory.
+      */
+    virtual DatatypeValidator* newInstance
+    (
+        RefHashTableOf<KVStringPair>* const facets
+        , RefArrayVectorOf<XMLCh>* const enums
+        , const int finalSet
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+// -----------------------------------------------------------------------
+// Setter methods
+// -----------------------------------------------------------------------
+    /** @name Setter Functions */
+    //@{
+
+    //deprecated
+    inline void    setEntityDeclPool(NameIdPool<DTDEntityDecl>* const entityDeclPool);
+
+    //@}
+
+    /***
+     * Support for Serialization/De-serialization
+     ***/
+    DECL_XSERIALIZABLE(ENTITYDatatypeValidator)
+
+protected:
+
+    //
+    // ctor provided to be used by derived classes
+    //
+    ENTITYDatatypeValidator(DatatypeValidator*            const baseValidator
+                          , RefHashTableOf<KVStringPair>* const facets
+                          , const int                           finalSet
+                          , const ValidatorType                 type);
+
+    virtual void checkValueSpace(const XMLCh* const content
+                                , MemoryManager* const manager);
+
+private:
+    // -----------------------------------------------------------------------
+    // Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    ENTITYDatatypeValidator(const ENTITYDatatypeValidator&);
+    ENTITYDatatypeValidator& operator = (const  ENTITYDatatypeValidator&);
+
+};
+
+// -----------------------------------------------------------------------
+// Setter methods
+// -----------------------------------------------------------------------
+inline void ENTITYDatatypeValidator::setEntityDeclPool(NameIdPool<DTDEntityDecl>* const )
+{
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
+
+/**
+  * End of file ENTITYDatatypeValidator.hpp
+  */
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/datatype/MonthDayDatatypeValidator.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/datatype/MonthDayDatatypeValidator.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/datatype/MonthDayDatatypeValidator.hpp	(revision 2674)
@@ -0,0 +1,95 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: MonthDayDatatypeValidator.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(MONTHDAY_DATATYPE_VALIDATOR_HPP)
+#define MONTHDAY_DATATYPE_VALIDATOR_HPP
+
+#include <xercesc/validators/datatype/DateTimeValidator.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class VALIDATORS_EXPORT MonthDayDatatypeValidator : public DateTimeValidator
+{
+public:
+
+    // -----------------------------------------------------------------------
+    //  Public ctor/dtor
+    // -----------------------------------------------------------------------
+	/** @name Constructors and Destructor */
+    //@{
+
+    MonthDayDatatypeValidator
+    (
+        MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+    MonthDayDatatypeValidator
+    (
+        DatatypeValidator* const baseValidator
+        , RefHashTableOf<KVStringPair>* const facets
+        , RefArrayVectorOf<XMLCh>* const enums
+        , const int finalSet
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+    ~MonthDayDatatypeValidator();
+
+	//@}
+
+    /**
+      * Returns an instance of the base datatype validator class
+	  * Used by the DatatypeValidatorFactory.
+      */
+    virtual DatatypeValidator* newInstance
+    (
+        RefHashTableOf<KVStringPair>* const facets
+        , RefArrayVectorOf<XMLCh>* const enums
+        , const int finalSet
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    /***
+     * Support for Serialization/De-serialization
+     ***/
+    DECL_XSERIALIZABLE(MonthDayDatatypeValidator)
+
+protected:
+
+    // -----------------------------------------------------------------------
+    //  implementation of (DateTimeValidator's) virtual interface
+    // -----------------------------------------------------------------------
+    virtual XMLDateTime*          parse(const XMLCh* const, MemoryManager* const manager);
+    virtual void                  parse(XMLDateTime* const);
+
+private:
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    MonthDayDatatypeValidator(const MonthDayDatatypeValidator&);
+    MonthDayDatatypeValidator& operator=(const MonthDayDatatypeValidator&);
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
+
+/**
+  * End of file MonthDayDatatypeValidator.hpp
+  */
+
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/datatype/MonthDatatypeValidator.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/datatype/MonthDatatypeValidator.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/datatype/MonthDatatypeValidator.hpp	(revision 2674)
@@ -0,0 +1,95 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: MonthDatatypeValidator.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(MONTH_DATATYPE_VALIDATOR_HPP)
+#define MONTH_DATATYPE_VALIDATOR_HPP
+
+#include <xercesc/validators/datatype/DateTimeValidator.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class VALIDATORS_EXPORT MonthDatatypeValidator : public DateTimeValidator
+{
+public:
+
+    // -----------------------------------------------------------------------
+    //  Public ctor/dtor
+    // -----------------------------------------------------------------------
+	/** @name Constructors and Destructor */
+    //@{
+
+    MonthDatatypeValidator
+    (
+        MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+    MonthDatatypeValidator
+    (
+        DatatypeValidator* const baseValidator
+        , RefHashTableOf<KVStringPair>* const facets
+        , RefArrayVectorOf<XMLCh>* const enums
+        , const int finalSet
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+    ~MonthDatatypeValidator();
+
+	//@}
+
+    /**
+      * Returns an instance of the base datatype validator class
+	  * Used by the DatatypeValidatorFactory.
+      */
+    virtual DatatypeValidator* newInstance
+    (
+        RefHashTableOf<KVStringPair>* const facets
+        , RefArrayVectorOf<XMLCh>* const enums
+        , const int finalSet
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    /***
+     * Support for Serialization/De-serialization
+     ***/
+    DECL_XSERIALIZABLE(MonthDatatypeValidator)
+
+protected:
+
+    // -----------------------------------------------------------------------
+    //  implementation of (DateTimeValidator's) virtual interface
+    // -----------------------------------------------------------------------
+    virtual XMLDateTime*          parse(const XMLCh* const, MemoryManager* const manager);
+    virtual void                  parse(XMLDateTime* const);
+
+private:
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    MonthDatatypeValidator(const MonthDatatypeValidator&);
+    MonthDatatypeValidator& operator=(const MonthDatatypeValidator&);
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
+
+/**
+  * End of file MonthDatatypeValidator.hpp
+  */
+
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/datatype/DurationDatatypeValidator.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/datatype/DurationDatatypeValidator.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/datatype/DurationDatatypeValidator.hpp	(revision 2674)
@@ -0,0 +1,98 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: DurationDatatypeValidator.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(DURATION_DATATYPE_VALIDATOR_HPP)
+#define DURATION_DATATYPE_VALIDATOR_HPP
+
+#include <xercesc/validators/datatype/DateTimeValidator.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class VALIDATORS_EXPORT DurationDatatypeValidator : public DateTimeValidator
+{
+public:
+
+    // -----------------------------------------------------------------------
+    //  Public ctor/dtor
+    // -----------------------------------------------------------------------
+	/** @name Constructors and Destructor. */
+    //@{
+
+    DurationDatatypeValidator
+    (
+        MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+    DurationDatatypeValidator
+    (
+        DatatypeValidator* const baseValidator
+        , RefHashTableOf<KVStringPair>* const facets
+        , RefArrayVectorOf<XMLCh>* const enums
+        , const int finalSet
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+    ~DurationDatatypeValidator();
+
+	//@}
+
+    /**
+      * Returns an instance of the base datatype validator class
+	  * Used by the DatatypeValidatorFactory.
+      */
+    virtual DatatypeValidator* newInstance
+    (
+        RefHashTableOf<KVStringPair>* const facets
+        , RefArrayVectorOf<XMLCh>* const enums
+        , const int finalSet
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    /***
+     * Support for Serialization/De-serialization
+     ***/
+    DECL_XSERIALIZABLE(DurationDatatypeValidator)
+
+protected:
+
+    // -----------------------------------------------------------------------
+    //  implementation of (DateTimeValidator's) virtual interface
+    // -----------------------------------------------------------------------
+    virtual XMLDateTime*          parse(const XMLCh* const, MemoryManager* const manager);
+    virtual void                  parse(XMLDateTime* const);
+    virtual int                   compareDates(const XMLDateTime* const
+                                             , const XMLDateTime* const
+                                             , bool                   );
+private:
+    // -----------------------------------------------------------------------
+    // Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    DurationDatatypeValidator(const DurationDatatypeValidator &);
+    DurationDatatypeValidator& operator = (const  DurationDatatypeValidator&);
+
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
+
+/**
+  * End of file DurationDatatypeValidator.hpp
+  */
+
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/sax/DTDHandler.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/sax/DTDHandler.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/sax/DTDHandler.hpp	(revision 2674)
@@ -0,0 +1,160 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: DTDHandler.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+#ifndef DTDHANDLER_HPP
+#define DTDHANDLER_HPP
+
+#include <xercesc/util/XercesDefs.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+/**
+  * Receive notification of basic DTD-related events.
+  *
+  * <p>If a SAX application needs information about notations and
+  * unparsed entities, then the application implements this
+  * interface and registers an instance with the SAX parser using
+  * the parser's setDTDHandler method.  The parser uses the
+  * instance to report notation and unparsed entity declarations to
+  * the application.</p>
+  *
+  * <p>The SAX parser may report these events in any order, regardless
+  * of the order in which the notations and unparsed entities were
+  * declared; however, all DTD events must be reported after the
+  * document handler's startDocument event, and before the first
+  * startElement event.</p>
+  *
+  * <p>It is up to the application to store the information for
+  * future use (perhaps in a hash table or object tree).
+  * If the application encounters attributes of type "NOTATION",
+  * "ENTITY", or "ENTITIES", it can use the information that it
+  * obtained through this interface to find the entity and/or
+  * notation corresponding with the attribute value.</p>
+  *
+  * <p>The HandlerBase class provides a default implementation
+  * of this interface, which simply ignores the events.</p>
+  *
+  * @see Parser#setDTDHandler
+  * @see HandlerBase#HandlerBase
+  */
+
+class SAX_EXPORT DTDHandler
+{
+public:
+    /** @name Constructors and Destructor */
+    //@{
+    /** Default Constructor */
+    DTDHandler()
+    {
+    }
+
+    /** Destructor */
+    virtual ~DTDHandler()
+    {
+    }
+
+    //@}
+
+    /** @name The DTD handler interface */
+    //@{
+  /**
+    * Receive notification of a notation declaration event.
+    *
+    * <p>It is up to the application to record the notation for later
+    * reference, if necessary.</p>
+    *
+    * <p>If a system identifier is present, and it is a URL, the SAX
+    * parser must resolve it fully before passing it to the
+    * application.</p>
+    *
+    * @param name The notation name.
+    * @param publicId The notation's public identifier, or null if
+    *        none was given.
+    * @param systemId The notation's system identifier, or null if
+    *        none was given.
+    * @exception SAXException Any SAX exception, possibly
+    *            wrapping another exception.
+    * @see #unparsedEntityDecl
+    * @see AttributeList#AttributeList
+    */
+	virtual void notationDecl
+    (
+        const   XMLCh* const    name
+        , const XMLCh* const    publicId
+        , const XMLCh* const    systemId
+    ) = 0;
+
+  /**
+    * Receive notification of an unparsed entity declaration event.
+    *
+    * <p>Note that the notation name corresponds to a notation
+    * reported by the notationDecl() event.  It is up to the
+    * application to record the entity for later reference, if
+    * necessary.</p>
+    *
+    * <p>If the system identifier is a URL, the parser must resolve it
+    * fully before passing it to the application.</p>
+    *
+    * @exception SAXException Any SAX exception, possibly
+    *            wrapping another exception.
+    * @param name The unparsed entity's name.
+    * @param publicId The entity's public identifier, or null if none
+    *        was given.
+    * @param systemId The entity's system identifier (it must always
+    *        have one).
+    * @param notationName The name of the associated notation.
+    * @see #notationDecl
+    * @see AttributeList#AttributeList
+    */
+    virtual void unparsedEntityDecl
+    (
+        const   XMLCh* const    name
+        , const XMLCh* const    publicId
+        , const XMLCh* const    systemId
+        , const XMLCh* const    notationName
+    ) = 0;
+
+    /**
+    * Reset the DocType object on its reuse
+    *
+    * <p>This method helps in reseting the DTD object implementational
+    * defaults each time the DTD is begun.</p>
+    *
+    */
+    virtual void resetDocType() = 0;
+
+    //@}
+
+private :
+    /* Unimplemented constructors and operators */
+
+    /* Copy constructor */
+    DTDHandler(const DTDHandler&);
+
+    /* Assignment operator */
+    DTDHandler& operator=(const DTDHandler&);
+
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/sax/SAXException.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/sax/SAXException.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/sax/SAXException.hpp	(revision 2674)
@@ -0,0 +1,231 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: SAXException.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+#ifndef SAXEXCEPTION_HPP
+#define SAXEXCEPTION_HPP
+
+#include <xercesc/util/XMLString.hpp>
+#include <xercesc/util/XMLUni.hpp>
+#include <xercesc/util/XMemory.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+
+/**
+  * Encapsulate a general SAX error or warning.
+  *
+  * <p>This class can contain basic error or warning information from
+  * either the XML SAX parser or the application: a parser writer or
+  * application writer can subclass it to provide additional
+  * functionality.  SAX handlers may throw this exception or
+  * any exception subclassed from it.</p>
+  *
+  * <p>If the application needs to pass through other types of
+  * exceptions, it must wrap those exceptions in a SAXException
+  * or an exception derived from a SAXException.</p>
+  *
+  * <p>If the parser or application needs to include information
+  * about a specific location in an XML document, it should use the
+  * SAXParseException subclass.</p>
+  *
+  * @see SAXParseException#SAXParseException
+  */
+class SAX_EXPORT SAXException : public XMemory
+{
+public:
+    /** @name Constructors and Destructor */
+    //@{
+    /** Default constructor
+     * @param manager    Pointer to the memory manager to be used to
+     *                   allocate objects.
+     */
+    SAXException(MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager) :
+
+        fMsg(XMLString::replicate(XMLUni::fgZeroLenString, manager))
+        , fMemoryManager(manager)
+    {
+    }
+
+  /**
+    * Create a new SAXException.
+    *
+    * @param msg The error or warning message.
+    * @param manager    Pointer to the memory manager to be used to
+    *                   allocate objects.
+    */
+    SAXException(const XMLCh* const msg,
+                 MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager) :
+
+        fMsg(XMLString::replicate(msg, manager))
+        , fMemoryManager(manager)
+    {
+    }
+
+  /**
+    * Create a new SAXException.
+    *
+    * @param msg The error or warning message.
+    * @param manager    Pointer to the memory manager to be used to
+    *                   allocate objects.
+    */
+    SAXException(const char* const msg,
+                 MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager) :
+
+        fMsg(XMLString::transcode(msg, manager))
+        , fMemoryManager(manager)
+    {
+    }
+
+  /**
+    * Copy constructor
+    *
+    * @param toCopy The exception to be copy constructed
+    */
+    SAXException(const SAXException& toCopy) :
+        XMemory(toCopy)
+        , fMsg(XMLString::replicate(toCopy.fMsg, toCopy.fMemoryManager))
+        , fMemoryManager(toCopy.fMemoryManager)
+    {
+    }
+
+    /** Destructor */
+    virtual ~SAXException()
+    {
+        fMemoryManager->deallocate(fMsg);//delete [] fMsg;
+    }
+
+    //@}
+
+
+    /** @name Public Operators */
+    //@{
+    /**
+      * Assignment operator
+      *
+      * @param toCopy The object to be copied
+      */
+    SAXException& operator=(const SAXException& toCopy)
+    {
+        if (this == &toCopy)
+            return *this;
+
+        fMemoryManager->deallocate(fMsg);//delete [] fMsg;
+        fMsg = XMLString::replicate(toCopy.fMsg, toCopy.fMemoryManager);
+        fMemoryManager = toCopy.fMemoryManager;
+        return *this;
+    }
+    //@}
+
+    /** @name Getter Methods */
+    //@{
+    /**
+      * Get the contents of the message
+      *
+      */
+    virtual const XMLCh* getMessage() const
+    {
+        return fMsg;
+    }
+    //@}
+
+
+protected :
+    // -----------------------------------------------------------------------
+    //  Protected data members
+    //
+    //  fMsg
+    //      This is the text of the error that is being thrown.
+    // -----------------------------------------------------------------------
+    XMLCh*  fMsg;
+    MemoryManager* fMemoryManager;
+};
+
+class SAX_EXPORT SAXNotSupportedException : public SAXException
+{
+
+public:
+	SAXNotSupportedException(MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+
+  /**
+    * Create a new SAXException.
+    *
+    * @param msg The error or warning message.
+    * @param manager    Pointer to the memory manager to be used to
+    *                   allocate objects.
+    */
+    SAXNotSupportedException(const XMLCh* const msg,
+                             MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+
+  /**
+    * Create a new SAXException.
+    *
+    * @param msg The error or warning message.
+    * @param manager    Pointer to the memory manager to be used to
+    *                   allocate objects.
+    */
+    SAXNotSupportedException(const char* const msg,
+                             MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+
+  /**
+    * Copy constructor
+    *
+    * @param toCopy The exception to be copy constructed
+    */
+    SAXNotSupportedException(const SAXException& toCopy);
+};
+
+class SAX_EXPORT SAXNotRecognizedException : public SAXException
+{
+public:
+	SAXNotRecognizedException(MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+
+  /**
+    * Create a new SAXException.
+    *
+    * @param msg The error or warning message.
+    * @param manager    Pointer to the memory manager to be used to
+    *                   allocate objects.
+    */
+    SAXNotRecognizedException(const XMLCh* const msg,
+                              MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+
+  /**
+    * Create a new SAXException.
+    *
+    * @param msg The error or warning message.
+    * @param manager    Pointer to the memory manager to be used to
+    *                   allocate objects.
+    */
+    SAXNotRecognizedException(const char* const msg,
+                              MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+
+  /**
+    * Copy constructor
+    *
+    * @param toCopy The exception to be copy constructed
+    */
+    SAXNotRecognizedException(const SAXException& toCopy);
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/sax/DocumentHandler.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/sax/DocumentHandler.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/sax/DocumentHandler.hpp	(revision 2674)
@@ -0,0 +1,284 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: DocumentHandler.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+#ifndef DOCUMENTHANDLER_HPP
+#define DOCUMENTHANDLER_HPP
+
+#include <xercesc/util/XercesDefs.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class AttributeList;
+class Locator;
+
+/**
+  * Receive notification of general document events.
+  *
+  * <p>This is the main interface that most SAX applications
+  * implement: if the application needs to be informed of basic parsing
+  * events, it implements this interface and registers an instance with
+  * the SAX parser using the setDocumentHandler method.  The parser
+  * uses the instance to report basic document-related events like
+  * the start and end of elements and character data.</p>
+  *
+  * <p>The order of events in this interface is very important, and
+  * mirrors the order of information in the document itself.  For
+  * example, all of an element's content (character data, processing
+  * instructions, and/or subelements) will appear, in order, between
+  * the startElement event and the corresponding endElement event.</p>
+  *
+  * <p>Application writers who do not want to implement the entire
+  * interface while can derive a class from HandlerBase, which implements
+  * the default functionality; parser writers can instantiate
+  * HandlerBase to obtain a default handler.  The application can find
+  * the location of any document event using the Locator interface
+  * supplied by the Parser through the setDocumentLocator method.</p>
+  *
+  * @see Parser#setDocumentHandler
+  * @see Locator#Locator
+  * @see HandlerBase#HandlerBase
+  */
+
+class SAX_EXPORT DocumentHandler
+{
+public:
+    /** @name Constructors and Destructor */
+    //@{
+    /** Default constructor */
+    DocumentHandler()
+    {
+    }
+
+    /** Destructor */
+    virtual ~DocumentHandler()
+    {
+    }
+    //@}
+
+    /** @name The virtual document handler interface */
+
+    //@{
+   /**
+    * Receive notification of character data.
+    *
+    * <p>The Parser will call this method to report each chunk of
+    * character data.  SAX parsers may return all contiguous character
+    * data in a single chunk, or they may split it into several
+    * chunks; however, all of the characters in any single event
+    * must come from the same external entity, so that the Locator
+    * provides useful information.</p>
+    *
+    * <p>The application must not attempt to read from the array
+    * outside of the specified range.</p>
+    *
+    * <p>Note that some parsers will report whitespace using the
+    * ignorableWhitespace() method rather than this one (validating
+    * parsers must do so).</p>
+    *
+    * @param chars The characters from the XML document.
+    * @param length The number of characters to read from the array.
+    * @exception SAXException Any SAX exception, possibly
+    *            wrapping another exception.
+    * @see #ignorableWhitespace
+    * @see Locator#Locator
+    */
+    virtual void characters
+    (
+        const   XMLCh* const    chars
+        , const unsigned int    length
+    ) = 0;
+
+  /**
+    * Receive notification of the end of a document.
+    *
+    * <p>The SAX parser will invoke this method only once, and it will
+    * be the last method invoked during the parse.  The parser shall
+    * not invoke this method until it has either abandoned parsing
+    * (because of an unrecoverable error) or reached the end of
+    * input.</p>
+    *
+    * @exception SAXException Any SAX exception, possibly
+    *            wrapping another exception.
+    */
+    virtual void endDocument () = 0;
+
+  /**
+    * Receive notification of the end of an element.
+    *
+    * <p>The SAX parser will invoke this method at the end of every
+    * element in the XML document; there will be a corresponding
+    * startElement() event for every endElement() event (even when the
+    * element is empty).</p>
+    *
+    * <p>If the element name has a namespace prefix, the prefix will
+    * still be attached to the name.</p>
+    *
+    * @param name The element type name
+    * @exception SAXException Any SAX exception, possibly
+    *            wrapping another exception.
+    */
+    virtual void endElement(const XMLCh* const name) = 0;
+
+  /**
+    * Receive notification of ignorable whitespace in element content.
+    *
+    * <p>Validating Parsers must use this method to report each chunk
+    * of ignorable whitespace (see the W3C XML 1.0 recommendation,
+    * section 2.10): non-validating parsers may also use this method
+    * if they are capable of parsing and using content models.</p>
+    *
+    * <p>SAX parsers may return all contiguous whitespace in a single
+    * chunk, or they may split it into several chunks; however, all of
+    * the characters in any single event must come from the same
+    * external entity, so that the Locator provides useful
+    * information.</p>
+    *
+    * <p>The application must not attempt to read from the array
+    * outside of the specified range.</p>
+    *
+    * @param chars The characters from the XML document.
+    * @param length The number of characters to read from the array.
+    * @exception SAXException Any SAX exception, possibly
+    *            wrapping another exception.
+    * @see #characters
+    */
+    virtual void ignorableWhitespace
+    (
+        const   XMLCh* const    chars
+        , const unsigned int    length
+    ) = 0;
+
+  /**
+    * Receive notification of a processing instruction.
+    *
+    * <p>The Parser will invoke this method once for each processing
+    * instruction found: note that processing instructions may occur
+    * before or after the main document element.</p>
+    *
+    * <p>A SAX parser should never report an XML declaration (XML 1.0,
+    * section 2.8) or a text declaration (XML 1.0, section 4.3.1)
+    * using this method.</p>
+    *
+    * @param target The processing instruction target.
+    * @param data The processing instruction data, or null if
+    *        none was supplied.
+    * @exception SAXException Any SAX exception, possibly
+    *            wrapping another exception.
+    */
+    virtual void processingInstruction
+    (
+        const   XMLCh* const    target
+        , const XMLCh* const    data
+    ) = 0;
+
+    /**
+    * Reset the Docuemnt object on its reuse
+    *
+    * <p>This method helps in reseting the document implementational
+    * defaults each time the document is begun.</p>
+    *
+    */
+    virtual void resetDocument() = 0;
+
+  /**
+    * Receive an object for locating the origin of SAX document events.
+    *
+    * SAX parsers are strongly encouraged (though not absolutely
+    * required) to supply a locator: if it does so, it must supply
+    * the locator to the application by invoking this method before
+    * invoking any of the other methods in the DocumentHandler
+    * interface.
+    *
+    * The locator allows the application to determine the end
+    * position of any document-related event, even if the parser is
+    * not reporting an error.  Typically, the application will
+    * use this information for reporting its own errors (such as
+    * character content that does not match an application's
+    * business rules). The information returned by the locator
+    * is probably not sufficient for use with a search engine.
+    *
+    * Note that the locator will return correct information only
+    * during the invocation of the events in this interface. The
+    * application should not attempt to use it at any other time.
+    *
+    * @param locator An object that can return the location of
+    *                any SAX document event. The object is only
+    *                'on loan' to the client code and they are not
+    *                to attempt to delete or modify it in any way!
+    *
+    * @see Locator#Locator
+    */
+    virtual void setDocumentLocator(const Locator* const locator) = 0;
+
+  /**
+    * Receive notification of the beginning of a document.
+    *
+    * <p>The SAX parser will invoke this method only once, before any
+    * other methods in this interface or in DTDHandler (except for
+    * setDocumentLocator).</p>
+    *
+    * @exception SAXException Any SAX exception, possibly
+    *            wrapping another exception.
+    */
+    virtual void startDocument() = 0;
+
+  /**
+    * Receive notification of the beginning of an element.
+    *
+    * <p>The Parser will invoke this method at the beginning of every
+    * element in the XML document; there will be a corresponding
+    * endElement() event for every startElement() event (even when the
+    * element is empty). All of the element's content will be
+    * reported, in order, before the corresponding endElement()
+    * event.</p>
+    *
+    * <p>If the element name has a namespace prefix, the prefix will
+    * still be attached.  Note that the attribute list provided will
+    * contain only attributes with explicit values (specified or
+    * defaulted): #IMPLIED attributes will be omitted.</p>
+    *
+    * @param name The element type name.
+    * @param attrs The attributes attached to the element, if any.
+    * @exception SAXException Any SAX exception, possibly
+    *            wrapping another exception.
+    * @see #endElement
+    * @see AttributeList#AttributeList
+    */
+    virtual void startElement
+    (
+        const   XMLCh* const    name
+        ,       AttributeList&  attrs
+    ) = 0;
+
+    //@}
+
+private :
+    /* Unimplemented Constructors and operators */
+    /* Copy constructor */
+    DocumentHandler(const DocumentHandler&);
+    /** Assignment operator */
+    DocumentHandler& operator=(const DocumentHandler&);
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/sax/Parser.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/sax/Parser.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/sax/Parser.hpp	(revision 2674)
@@ -0,0 +1,245 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: Parser.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#ifndef PARSER_HPP
+#define PARSER_HPP
+
+#include <xercesc/util/XercesDefs.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class DTDHandler;
+class EntityResolver;
+class DocumentHandler;
+class ErrorHandler;
+class InputSource;
+
+/**
+  * Basic interface for SAX (Simple API for XML) parsers.
+  *
+  * All SAX parsers must implement this basic interface: it allows
+  * applications to register handlers for different types of events
+  * and to initiate a parse from a URI, or a character stream.
+  *
+  * All SAX parsers must also implement a zero-argument constructor
+  * (though other constructors are also allowed).
+  *
+  * SAX parsers are reusable but not re-entrant: the application
+  * may reuse a parser object (possibly with a different input source)
+  * once the first parse has completed successfully, but it may not
+  * invoke the parse() methods recursively within a parse.
+  *
+  * @see EntityResolver#EntityResolver
+  * @see DTDHandler#DTDHandler
+  * @see DocumentHandler#DocumentHandler
+  * @see ErrorHandler#ErrorHandler
+  * @see HandlerBase#HandlerBase
+  * @see InputSource#InputSource
+  */
+
+#include <xercesc/util/XercesDefs.hpp>
+
+class SAX_EXPORT Parser
+{
+public:
+    /** @name Constructors and Destructor */
+    // -----------------------------------------------------------------------
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+    //@{
+    /** The default constructor */
+    Parser()
+    {
+    }
+    /** The destructor */
+    virtual ~Parser()
+    {
+    }
+    //@}
+
+    //-----------------------------------------------------------------------
+    // The parser interface
+    //-----------------------------------------------------------------------
+    /** @name The parser interfaces */
+    //@{
+  /**
+    * Allow an application to register a custom entity resolver.
+    *
+    * If the application does not register an entity resolver, the
+    * SAX parser will resolve system identifiers and open connections
+    * to entities itself (this is the default behaviour implemented in
+    * HandlerBase).
+    *
+    * Applications may register a new or different entity resolver
+    * in the middle of a parse, and the SAX parser must begin using
+    * the new resolver immediately.
+    *
+    * @param resolver The object for resolving entities.
+    * @see EntityResolver#EntityResolver
+    * @see HandlerBase#HandlerBase
+    */
+    virtual void setEntityResolver(EntityResolver* const resolver) = 0;
+
+  /**
+    * Allow an application to register a DTD event handler.
+    *
+    * If the application does not register a DTD handler, all DTD
+    * events reported by the SAX parser will be silently ignored (this
+    * is the default behaviour implemented by HandlerBase).
+    *
+    * Applications may register a new or different handler in the middle
+    * of a parse, and the SAX parser must begin using the new handler
+    * immediately.
+    *
+    * @param handler The DTD handler.
+    * @see DTDHandler#DTDHandler
+    * @see HandlerBase#HandlerBase
+    */
+    virtual void setDTDHandler(DTDHandler* const handler) = 0;
+
+  /**
+    * Allow an application to register a document event handler.
+    *
+    * If the application does not register a document handler, all
+    * document events reported by the SAX parser will be silently
+    * ignored (this is the default behaviour implemented by
+    * HandlerBase).
+    *
+    * Applications may register a new or different handler in the
+    * middle of a parse, and the SAX parser must begin using the new
+    * handler immediately.
+    *
+    * @param handler The document handler.
+    * @see DocumentHandler#DocumentHandler
+    * @see HandlerBase#HandlerBase
+    */
+    virtual void setDocumentHandler(DocumentHandler* const handler) = 0;
+
+  /**
+    * Allow an application to register an error event handler.
+    *
+    * If the application does not register an error event handler,
+    * all error events reported by the SAX parser will be silently
+    * ignored, except for fatalError, which will throw a SAXException
+    * (this is the default behaviour implemented by HandlerBase).
+    *
+    * Applications may register a new or different handler in the
+    * middle of a parse, and the SAX parser must begin using the new
+    * handler immediately.
+    *
+    * @param handler The error handler.
+    * @see ErrorHandler#ErrorHandler
+    * @see SAXException#SAXException
+    * @see HandlerBase#HandlerBase
+    */
+    virtual void setErrorHandler(ErrorHandler* const handler) = 0;
+
+  /**
+    * Parse an XML document.
+    *
+    * The application can use this method to instruct the SAX parser
+    * to begin parsing an XML document from any valid input
+    * source (a character stream, a byte stream, or a URI).
+    *
+    * Applications may not invoke this method while a parse is in
+    * progress (they should create a new Parser instead for each
+    * additional XML document).  Once a parse is complete, an
+    * application may reuse the same Parser object, possibly with a
+    * different input source.
+    *
+    * @param source The input source for the top-level of the
+    *               XML document.
+    * @exception SAXException Any SAX exception, possibly
+    *            wrapping another exception.
+    * @exception XMLException An exception from the parser or client
+    *            handler code.
+    * @see InputSource#InputSource
+    * @see #setEntityResolver
+    * @see #setDTDHandler
+    * @see #setDocumentHandler
+    * @see #setErrorHandler
+    */
+    virtual void parse
+    (
+        const   InputSource&    source
+    ) = 0;
+
+  /**
+    * Parse an XML document from a system identifier (URI).
+    *
+    * This method is a shortcut for the common case of reading a
+    * document from a system identifier.  It is the exact equivalent
+    * of the following:
+    *
+    * parse(new URLInputSource(systemId));
+    *
+    * If the system identifier is a URL, it must be fully resolved
+    * by the application before it is passed to the parser.
+    *
+    * @param systemId The system identifier (URI).
+    * @exception SAXException Any SAX exception, possibly
+    *            wrapping another exception.
+    * @exception XMLException An exception from the parser or client
+    *            handler code.
+    * @see #parse(InputSource)
+    */
+    virtual void parse
+    (
+        const   XMLCh* const    systemId
+    ) = 0;
+
+  /**
+    * Parse an XML document from a system identifier (URI).
+    *
+    * This method is a shortcut for the common case of reading a
+    * document from a system identifier.  It is the exact equivalent
+    * of the following:
+    *
+    * parse(new URLInputSource(systemId));
+    *
+    * If the system identifier is a URL, it must be fully resolved
+    * by the application before it is passed to the parser.
+    *
+    * @param systemId The system identifier (URI).
+    * @exception SAXException Any SAX exception, possibly
+    *            wrapping another exception.
+    * @exception XMLException An exception from the parser or client
+    *            handler code.
+    * @see #parse(InputSource)
+    */
+    virtual void parse
+    (
+        const   char* const     systemId
+    ) = 0;
+    //@}
+
+
+private :
+    /* The copy constructor, you cannot call this directly */
+    Parser(const Parser&);
+
+    /* The assignment operator, you cannot call this directly */
+    Parser& operator=(const Parser&);
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/sax/EntityResolver.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/sax/EntityResolver.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/sax/EntityResolver.hpp	(revision 2674)
@@ -0,0 +1,166 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: EntityResolver.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+#ifndef ENTITYRESOLVER_HPP
+#define ENTITYRESOLVER_HPP
+
+#include <xercesc/util/XercesDefs.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class InputSource;
+
+/**
+  * Basic interface for resolving entities.
+  *
+  * <p>If a SAX application needs to implement customized handling
+  * for external entities, it must implement this interface and
+  * register an instance with the SAX parser using the parser's
+  * setEntityResolver method.</p>
+  *
+  * <p>The parser will then allow the application to intercept any
+  * external entities (including the external DTD subset and external
+  * parameter entities, if any) before including them.</p>
+  *
+  * <p>Many SAX applications will not need to implement this interface,
+  * but it will be especially useful for applications that build
+  * XML documents from databases or other specialised input sources,
+  * or for applications that use URI types other than URLs.</p>
+  *
+  * <p>The following resolver would provide the application
+  * with a special character stream for the entity with the system
+  * identifier "http://www.myhost.com/today":</p>
+  *
+  *<code>
+  *#include <xercesc/sax/EntityResolver.hpp><br>
+  *#include <xercesc/sax/InputSource.hpp><br>
+  *<br>
+  *class MyResolver : public EntityResolver {<br>
+  *  public:<br>&nbsp;
+  *    InputSource resolveEntity (const XMLCh* const publicId, const XMLCh* const systemId);<br>&nbsp;&nbsp;
+  *    <br>
+  *   ...<br>&nbsp;&nbsp;
+  *   };<br>&nbsp;
+  *<br>
+  *&nbsp;MyResolver::resolveEntity {<br>
+  *&nbsp;&nbsp;if (XMLString::compareString(systemId, "http://www.myhost.com/today")) {<br>
+  *&nbsp;&nbsp;&nbsp;MyReader* reader = new MyReader();<br>
+  *&nbsp;&nbsp;&nbsp;return new InputSource(reader);<br>
+  *&nbsp;&nbsp;} else {<br>
+  *&nbsp;&nbsp;&nbsp;return null;<br>
+  *&nbsp;&nbsp;}<br>
+  *&nbsp;}<br>
+  *<br>
+  *</code>
+  *
+  * <p>The application can also use this interface to redirect system
+  * identifiers to local URIs or to look up replacements in a catalog
+  * (possibly by using the public identifier).</p>
+  *
+  * <p>The HandlerBase class implements the default behaviour for
+  * this interface, which is simply always to return null (to request
+  * that the parser use the default system identifier).</p>
+  *
+  * @see Parser#setEntityResolver
+  * @see InputSource#InputSource
+  * @see HandlerBase#HandlerBase
+  */
+class SAX_EXPORT EntityResolver
+{
+public:
+    /** @name Constructors and Destructor */
+    //@{
+
+    /** Default Constructor */
+    EntityResolver()
+    {
+    }
+
+    /** Destructor */
+    virtual ~EntityResolver()
+    {
+    }
+
+    //@}
+
+    /** @name The EntityResolver interface */
+    //@{
+
+  /**
+    * Allow the application to resolve external entities.
+    *
+    * <p>The Parser will call this method before opening any external
+    * entity except the top-level document entity (including the
+    * external DTD subset, external entities referenced within the
+    * DTD, and external entities referenced within the document
+    * element): the application may request that the parser resolve
+    * the entity itself, that it use an alternative URI, or that it
+    * use an entirely different input source.</p>
+    *
+    * <p>Application writers can use this method to redirect external
+    * system identifiers to secure and/or local URIs, to look up
+    * public identifiers in a catalogue, or to read an entity from a
+    * database or other input source (including, for example, a dialog
+    * box).</p>
+    *
+    * <p>If the system identifier is a URL, the SAX parser must
+    * resolve it fully before reporting it to the application.</p>
+    *
+    * @param publicId The public identifier of the external entity
+    *        being referenced, or null if none was supplied.
+    * @param systemId The system identifier of the external entity
+    *        being referenced.
+    * @return An InputSource object describing the new input source,
+    *         or null to request that the parser open a regular
+    *         URI connection to the system identifier.
+    *         The returned InputSource is owned by the parser which is
+    *         responsible to clean up the memory.
+    * @exception SAXException Any SAX exception, possibly
+    *            wrapping another exception.
+    * @exception IOException An IO exception,
+    *            possibly the result of creating a new InputStream
+    *            or Reader for the InputSource.
+    * @see InputSource#InputSource
+    */
+    virtual InputSource* resolveEntity
+    (
+        const   XMLCh* const    publicId
+        , const XMLCh* const    systemId
+    ) = 0;
+
+    //@}
+
+private :
+    /* Unimplemented constructors and operators */
+
+
+    /* Copy constructor */
+    EntityResolver(const EntityResolver&);
+
+    /* Assignment operator */
+    EntityResolver& operator=(const EntityResolver&);
+
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/sax/AttributeList.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/sax/AttributeList.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/sax/AttributeList.hpp	(revision 2674)
@@ -0,0 +1,232 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: AttributeList.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#ifndef ATTRIBUTELIST_HPP
+#define ATTRIBUTELIST_HPP
+
+#include <xercesc/util/XercesDefs.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+/**
+  * Interface for an element's attribute specifications.
+  *
+  * The SAX parser implements this interface and passes an instance
+  * to the SAX application as the second argument of each startElement
+  * event.
+  *
+  * The instance provided will return valid results only during the
+  * scope of the startElement invocation (to save it for future
+  * use, the application must make a copy: the AttributeListImpl
+  * helper class provides a convenient constructor for doing so).
+  *
+  * An AttributeList includes only attributes that have been
+  * specified or defaulted: #IMPLIED attributes will not be included.
+  *
+  * There are two ways for the SAX application to obtain information
+  * from the AttributeList.  First, it can iterate through the entire
+  * list:
+  *
+  * <code>
+  * public void startElement (String name, AttributeList atts) {<br>
+  * &nbsp;for (int i = 0; i < atts.getLength(); i++) {<br>
+  * &nbsp;&nbsp;String name = atts.getName(i);<br>
+  * &nbsp;&nbsp;String type = atts.getType(i);<br>
+  * &nbsp;&nbsp;String value = atts.getValue(i);<br>
+  * &nbsp;&nbsp;[...]<br>
+  * &nbsp;}<br>
+  * }
+  * </code>
+  *
+  * (Note that the result of getLength() will be zero if there
+  * are no attributes.)
+  *
+  * As an alternative, the application can request the value or
+  * type of specific attributes:
+  *
+  * <code>
+  * public void startElement (String name, AttributeList atts) {<br>
+  * &nbsp;String identifier = atts.getValue("id");<br>
+  * &nbsp;String label = atts.getValue("label");<br>
+  * &nbsp;[...]<br>
+  * }
+  * </code>
+  *
+  * The AttributeListImpl helper class provides a convenience
+  * implementation for use by parser or application writers.
+  *
+  * @see DocumentHandler#startElement
+  * @see AttributeListImpl#AttributeListImpl
+  */
+
+class SAX_EXPORT AttributeList
+{
+public:
+    // -----------------------------------------------------------------------
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+    /** @name Constructors and Destructor */
+    //@{
+    /** Default constructor */
+    AttributeList()
+    {
+    }
+
+    /** Destructor */
+    virtual ~AttributeList()
+    {
+    }
+    //@}
+
+    /** @name The virtual attribute list interface */
+    //@{
+  /**
+    * Return the number of attributes in this list.
+    *
+    * The SAX parser may provide attributes in any
+    * arbitrary order, regardless of the order in which they were
+    * declared or specified.  The number of attributes may be
+    * zero.
+    *
+    * @return The number of attributes in the list.
+    */
+    virtual unsigned int getLength() const = 0;
+
+  /**
+    * Return the name of an attribute in this list (by position).
+    *
+    * The names must be unique: the SAX parser shall not include the
+    * same attribute twice.  Attributes without values (those declared
+    * #IMPLIED without a value specified in the start tag) will be
+    * omitted from the list.
+    *
+    * If the attribute name has a namespace prefix, the prefix
+    * will still be attached.
+    *
+    * @param index The index of the attribute in the list (starting at 0).
+    * @return The name of the indexed attribute, or null
+    *         if the index is out of range.
+    * @see #getLength
+    */
+    virtual const XMLCh* getName(const unsigned int index) const = 0;
+
+  /**
+    * Return the type of an attribute in the list (by position).
+    *
+    * The attribute type is one of the strings "CDATA", "ID",
+    * "IDREF", "IDREFS", "NMTOKEN", "NMTOKENS", "ENTITY", "ENTITIES",
+    * or "NOTATION" (always in upper case).
+    *
+    * If the parser has not read a declaration for the attribute,
+    * or if the parser does not report attribute types, then it must
+    * return the value "CDATA" as stated in the XML 1.0 Recommentation
+    * (clause 3.3.3, "Attribute-Value Normalization").
+    *
+    * For an enumerated attribute that is not a notation, the
+    * parser will report the type as "NMTOKEN".
+    *
+    * @param index The index of the attribute in the list (starting at 0).
+    * @return The attribute type as a string, or
+    *         null if the index is out of range.
+    * @see #getLength
+    * @see #getType(String)
+    */
+    virtual const XMLCh* getType(const unsigned int index) const = 0;
+
+  /**
+    * Return the value of an attribute in the list (by position).
+    *
+    * If the attribute value is a list of tokens (IDREFS,
+    * ENTITIES, or NMTOKENS), the tokens will be concatenated
+    * into a single string separated by whitespace.
+    *
+    * @param index The index of the attribute in the list (starting at 0).
+    * @return The attribute value as a string, or
+    *         null if the index is out of range.
+    * @see #getLength
+    * @see #getValue(XMLCh*)
+    * @see #getValue(char *)
+    */
+    virtual const XMLCh* getValue(const unsigned int index) const = 0;
+
+  /**
+    * Return the type of an attribute in the list (by name).
+    *
+    * The return value is the same as the return value for
+    * getType(int).
+    *
+    * If the attribute name has a namespace prefix in the document,
+    * the application must include the prefix here.
+    *
+    * @param name The name of the attribute.
+    * @return The attribute type as a string, or null if no
+    *         such attribute exists.
+    * @see #getType(int)
+    */
+    virtual const XMLCh* getType(const XMLCh* const name) const = 0;
+
+  /**
+    * Return the value of an attribute in the list (by name).
+    *
+    * The return value is the same as the return value for
+    * getValue(int).
+    *
+    * If the attribute name has a namespace prefix in the document,
+    * the application must include the prefix here.
+    *
+    * @param name The name of the attribute in the list.
+    * @return The attribute value as a string, or null if
+    *         no such attribute exists.
+    * @see #getValue(int)
+    * @see #getValue(char *)
+    */
+    virtual const XMLCh* getValue(const XMLCh* const name) const = 0;
+
+  /**
+    * Return the value of an attribute in the list (by name).
+    *
+    * The return value is the same as the return value for
+    * getValue(int).
+    *
+    * If the attribute name has a namespace prefix in the document,
+    * the application must include the prefix here.
+    *
+    * @param name The name of the attribute in the list.
+    * @return The attribute value as a string, or null if
+    *         no such attribute exists.
+    * @see #getValue(int)
+    * @see #getValue(XMLCh*)
+    */
+    virtual const XMLCh* getValue(const char* const name) const = 0;
+    //@}
+
+private :
+    /* Constructors and operators */
+    /* Copy constructor */
+    AttributeList(const AttributeList&);
+    /* Assignment operator */
+    AttributeList& operator=(const AttributeList&);
+
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/sax/InputSource.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/sax/InputSource.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/sax/InputSource.hpp	(revision 2674)
@@ -0,0 +1,338 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: InputSource.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+#ifndef INPUTSOURCE_HPP
+#define INPUTSOURCE_HPP
+
+#include <xercesc/util/PlatformUtils.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class BinInputStream;
+
+
+/**
+  * A single input source for an XML entity.
+  *
+  * <p>This class encapsulates information about an input source in a
+  * single object, which may include a public identifier or a system
+  * identifier</p>
+  *
+  * <p>There are two places that the application will deliver this input
+  * source to the parser: as the argument to the Parser::parse method, or as
+  * the return value of the EntityResolver::resolveEntity method.</p>
+  *
+  * <p>InputSource is never used directly, but is the base class for a number
+  * of derived classes for particular types of input sources. Derivatives are
+  * provided (in the framework/ directory) for URL input sources, memory buffer
+  * input sources, and so on.</p>
+  *
+  * <p>When it is time to parse the input described by an input source, it
+  * will be asked to create a binary stream for that source. That stream will
+  * be used to input the data of the source. The derived class provides the
+  * implementation of the makeStream() method, and provides a type of stream
+  * of the correct type for the input source it represents.
+  *
+  * <p>An InputSource object belongs to the application: the parser never
+  * modifies them in any way. They are always passed by const reference so
+  * the parser will make a copy of any input sources that it must keep
+  * around beyond the call.</p>
+  *
+  * @see Parser#parse
+  * @see EntityResolver#resolveEntity
+  */
+class SAX_EXPORT InputSource : public XMemory
+{
+public:
+    // -----------------------------------------------------------------------
+    //  All constructors are hidden, just the destructor is available
+    // -----------------------------------------------------------------------
+    /** @name Destructor */
+    //@{
+  /**
+    * Destructor
+    *
+    */
+    virtual ~InputSource();
+    //@}
+
+
+    // -----------------------------------------------------------------------
+    /** @name Virtual input source interface */
+    //@{
+  /**
+    * Makes the byte stream for this input source.
+    *
+    * <p>The derived class must create and return a binary input stream of an
+    * appropriate type for its kind of data source. The returned stream must
+    * be dynamically allocated and becomes the parser's property.
+    * </p>
+    *
+    * @see BinInputStream
+    */
+    virtual BinInputStream* makeStream() const = 0;
+
+    //@}
+
+
+    // -----------------------------------------------------------------------
+    /** @name Getter methods */
+    //@{
+  /**
+    * An input source can be set to force the parser to assume a particular
+    * encoding for the data that input source reprsents, via the setEncoding()
+    * method. This method returns name of the encoding that is to be forced.
+    * If the encoding has never been forced, it returns a null pointer.
+    *
+    * @return The forced encoding, or null if none was supplied.
+    * @see #setEncoding
+    */
+    virtual const XMLCh* getEncoding() const;
+
+
+  /**
+    * Get the public identifier for this input source.
+    *
+    * @return The public identifier, or null if none was supplied.
+    * @see #setPublicId
+    */
+    virtual const XMLCh* getPublicId() const;
+
+
+  /**
+    * Get the system identifier for this input source.
+    *
+    * <p>If the system ID is a URL, it will be fully resolved.</p>
+    *
+    * @return The system identifier.
+    * @see #setSystemId
+    */
+    virtual const XMLCh* getSystemId() const;
+
+  /**
+    * Get the flag that indicates if the parser should issue fatal error if this input source
+    * is not found.
+    *
+    * @return True if the parser should issue fatal error if this input source is not found.
+    *         False if the parser issue warning message instead.
+    * @see #setIssueFatalErrorIfNotFound
+    */
+    virtual bool getIssueFatalErrorIfNotFound() const;
+
+    MemoryManager* getMemoryManager() const;
+
+    //@}
+
+
+    // -----------------------------------------------------------------------
+    /** @name Setter methods */
+    //@{
+
+  /**
+    * Set the encoding which will be required for use with the XML text read
+    * via a stream opened by this input source.
+    *
+    * <p>This is usually not set, allowing the encoding to be sensed in the
+    * usual XML way. However, in some cases, the encoding in the file is known
+    * to be incorrect because of intermediate transcoding, for instance
+    * encapsulation within a MIME document.
+    *
+    * @param encodingStr The name of the encoding to force.
+    */
+    virtual void setEncoding(const XMLCh* const encodingStr);
+
+
+  /**
+    * Set the public identifier for this input source.
+    *
+    * <p>The public identifier is always optional: if the application writer
+    * includes one, it will be provided as part of the location information.</p>
+    *
+    * @param publicId The public identifier as a string.
+    * @see Locator#getPublicId
+    * @see SAXParseException#getPublicId
+    * @see #getPublicId
+    */
+    virtual void setPublicId(const XMLCh* const publicId);
+
+  /**
+    * Set the system identifier for this input source.
+    *
+    * <p>Set the system identifier for this input source.
+    *
+    * </p>The system id is always required. The public id may be used to map
+    * to another system id, but the system id must always be present as a fall
+    * back.
+    *
+    * <p>If the system ID is a URL, it must be fully resolved.</p>
+    *
+    * @param systemId The system identifier as a string.
+    * @see #getSystemId
+    * @see Locator#getSystemId
+    * @see SAXParseException#getSystemId
+    */
+    virtual void setSystemId(const XMLCh* const systemId);
+
+  /**
+    * Indicates if the parser should issue fatal error if this input source
+    * is not found.  If set to false, the parser issue warning message instead.
+    *
+    * @param  flag True if the parser should issue fatal error if this input source is not found.
+    *               If set to false, the parser issue warning message instead.  (Default: true)
+    *
+    * @see #getIssueFatalErrorIfNotFound
+    */
+    virtual void setIssueFatalErrorIfNotFound(const bool flag);
+
+    //@}
+
+
+protected :
+    // -----------------------------------------------------------------------
+    //  Hidden constructors
+    // -----------------------------------------------------------------------
+    /** @name Constructors and Destructor */
+    //@{
+    /** Default constructor */
+    InputSource(MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+
+    /** Constructor with a system identifier as XMLCh type.
+      * @param systemId The system identifier (URI).
+      * @param manager    Pointer to the memory manager to be used to
+      *                   allocate objects.
+      */
+    InputSource(const XMLCh* const systemId,
+                MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+
+    /** Constructor with a system and public identifiers
+      * @param systemId The system identifier (URI).
+      * @param publicId The public identifier as in the entity definition.
+      * @param manager    Pointer to the memory manager to be used to
+      *                   allocate objects.
+      */
+    InputSource
+    (
+        const   XMLCh* const   systemId
+        , const XMLCh* const   publicId
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    /** Constructor witha system identifier as string
+      * @param systemId The system identifier (URI).
+      * @param manager    Pointer to the memory manager to be used to
+      *                   allocate objects.
+      */
+    InputSource(const char* const systemId,
+                MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+
+    /** Constructor witha system and public identifiers. Both as string
+      * @param systemId The system identifier (URI).
+      * @param publicId The public identifier as in the entity definition.
+      * @param manager    Pointer to the memory manager to be used to
+      *                   allocate objects.
+      */
+    InputSource
+    (
+        const   char* const systemId
+        , const char* const publicId
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    //@}
+
+
+
+
+
+private:
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    InputSource(const InputSource&);
+    InputSource& operator=(const InputSource&);
+
+
+    // -----------------------------------------------------------------------
+    //  Private data members
+    //
+    //  fEncoding
+    //      This is the encoding to use. Usually this is null, which means
+    //      to use the information found in the file itself. But, if set,
+    //      this encoding will be used without question.
+    //
+    //  fPublicId
+    //      This is the optional public id for the input source. It can be
+    //      null if none is desired.
+    //
+    //  fSystemId
+    //      This is the system id for the input source. This is what is
+    //      actually used to open the source.
+    //
+    //  fFatalErrorIfNotFound
+    // -----------------------------------------------------------------------
+    MemoryManager* const fMemoryManager;
+    XMLCh*         fEncoding;
+    XMLCh*         fPublicId;
+    XMLCh*         fSystemId;
+    bool           fFatalErrorIfNotFound;
+};
+
+
+// ---------------------------------------------------------------------------
+//  InputSource: Getter methods
+// ---------------------------------------------------------------------------
+inline const XMLCh* InputSource::getEncoding() const
+{
+    return fEncoding;
+}
+
+inline const XMLCh* InputSource::getPublicId() const
+{
+    return fPublicId;
+}
+
+inline const XMLCh* InputSource::getSystemId() const
+{
+    return fSystemId;
+}
+
+inline bool InputSource::getIssueFatalErrorIfNotFound() const
+{
+    return fFatalErrorIfNotFound;
+}
+
+inline MemoryManager* InputSource::getMemoryManager() const
+{
+    return fMemoryManager;
+}
+
+// ---------------------------------------------------------------------------
+//  InputSource: Setter methods
+// ---------------------------------------------------------------------------
+inline void InputSource::setIssueFatalErrorIfNotFound(const bool flag)
+{
+    fFatalErrorIfNotFound = flag;
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/sax/Locator.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/sax/Locator.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/sax/Locator.hpp	(revision 2674)
@@ -0,0 +1,126 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: Locator.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+#ifndef LOCATOR_HPP
+#define LOCATOR_HPP
+
+#include <xercesc/util/XercesDefs.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+/**
+  * Interface for associating a SAX event with a document location.
+  *
+  * <p>If a SAX parser provides location information to the SAX
+  * application, it does so by implementing this interface and then
+  * passing an instance to the application using the document
+  * handler's setDocumentLocator method.  The application can use the
+  * object to obtain the location of any other document handler event
+  * in the XML source document.</p>
+  *
+  * <p>Note that the results returned by the object will be valid only
+  * during the scope of each document handler method: the application
+  * will receive unpredictable results if it attempts to use the
+  * locator at any other time.</p>
+  *
+  * <p>SAX parsers are not required to supply a locator, but they are
+  * very strong encouraged to do so.  If the parser supplies a
+  * locator, it must do so before reporting any other document events.
+  * If no locator has been set by the time the application receives
+  * the startDocument event, the application should assume that a
+  * locator is not available.</p>
+  *
+  * @see DocumentHandler#setDocumentLocator
+  */
+
+class SAX_EXPORT Locator
+{
+public:
+
+    /** @name Constructors and Destructor */
+    //@{
+    /** Default constructor */
+    Locator()
+    {
+    }
+
+    /** Destructor */
+    virtual ~Locator()
+    {
+    }
+
+    //@}
+
+    /** @name The locator interface */
+    //@{
+  /**
+    * Return the public identifier for the current document event.
+    * <p>This will be the public identifier
+    * @return A string containing the public identifier, or
+    *         null if none is available.
+    * @see #getSystemId
+    */
+    virtual const XMLCh* getPublicId() const = 0;
+
+  /**
+    * Return the system identifier for the current document event.
+    *
+    * <p>If the system identifier is a URL, the parser must resolve it
+    * fully before passing it to the application.</p>
+    *
+    * @return A string containing the system identifier, or null
+    *         if none is available.
+    * @see #getPublicId
+    */
+    virtual const XMLCh* getSystemId() const = 0;
+
+  /**
+    * Return the line number where the current document event ends.
+    * Note that this is the line position of the first character
+    * after the text associated with the document event.
+    * @return The line number, or -1 if none is available.
+    * @see #getColumnNumber
+    */
+    virtual XMLSSize_t getLineNumber() const = 0;
+
+  /**
+    * Return the column number where the current document event ends.
+    * Note that this is the column number of the first
+    * character after the text associated with the document
+    * event.  The first column in a line is position 1.
+    * @return The column number, or -1 if none is available.
+    * @see #getLineNumber
+    */
+    virtual XMLSSize_t getColumnNumber() const = 0;
+    //@}
+
+private :
+    /* Copy constructor */
+    Locator(const Locator&);
+
+    /* Assignment operator */
+    Locator& operator=(const Locator&);
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/sax/SAXParseException.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/sax/SAXParseException.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/sax/SAXParseException.hpp	(revision 2674)
@@ -0,0 +1,186 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: SAXParseException.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+#ifndef SAXPARSEEXCEPTION_HPP
+#define SAXPARSEEXCEPTION_HPP
+
+#include <xercesc/sax/SAXException.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class Locator;
+
+/**
+  * Encapsulate an XML parse error or warning.
+  *
+  * <p>This exception will include information for locating the error
+  * in the original XML document.  Note that although the application
+  * will receive a SAXParseException as the argument to the handlers
+  * in the ErrorHandler interface, the application is not actually
+  * required to throw the exception; instead, it can simply read the
+  * information in it and take a different action.</p>
+  *
+  * <p>Since this exception is a subclass of SAXException, it
+  * inherits the ability to wrap another exception.</p>
+  *
+  * @see SAXException#SAXException
+  * @see Locator#Locator
+  * @see ErrorHandler#ErrorHandler
+  */
+class SAX_EXPORT SAXParseException : public SAXException
+{
+public:
+    /** @name Constructors and Destructor */
+    //@{
+  /**
+    * Create a new SAXParseException from a message and a Locator.
+    *
+    * <p>This constructor is especially useful when an application is
+    * creating its own exception from within a DocumentHandler
+    * callback.</p>
+    *
+    * @param message The error or warning message.
+    * @param locator The locator object for the error or warning.
+    * @param manager    Pointer to the memory manager to be used to
+    *                   allocate objects.
+    * @see Locator#Locator
+    * @see Parser#setLocale
+    */
+    SAXParseException(const XMLCh* const message, const Locator& locator,
+                      MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+
+
+  /**
+    * Create a new SAXParseException.
+    *
+    * <p>This constructor is most useful for parser writers.</p>
+    *
+    * <p>If the system identifier is a URL, the parser must resolve it
+    * fully before creating the exception.</p>
+    *
+    * @param message The error or warning message.
+    * @param publicId The public identifer of the entity that generated
+    *                 the error or warning.
+    * @param systemId The system identifer of the entity that generated
+    *                 the error or warning.
+    * @param lineNumber The line number of the end of the text that
+    *                   caused the error or warning.
+    * @param columnNumber The column number of the end of the text that
+    *                     caused the error or warning.
+    * @param manager    Pointer to the memory manager to be used to
+    *                   allocate objects.
+    * @see Parser#setLocale
+    */
+    SAXParseException
+    (
+        const   XMLCh* const    message
+        , const XMLCh* const    publicId
+        , const XMLCh* const    systemId
+        , const XMLSSize_t      lineNumber
+        , const XMLSSize_t      columnNumber
+        , MemoryManager* const  manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+  /**
+    * Copy constructor
+    *
+    * @param toCopy The object to be copied
+    */
+    SAXParseException(const SAXParseException& toCopy);
+
+    /**
+      * Destructor
+      */
+    ~SAXParseException();
+
+    //@}
+
+    /** @name Assignment operator */
+    //@{
+   /**
+    * Assignment operator
+    *
+    * @param toAssign The object to be copied through assignment
+    *
+    */
+    SAXParseException& operator=(const SAXParseException& toAssign);
+    //@}
+
+    /** @name Getter methods */
+    //@{
+   /**
+    * The column number of the end of the text where the exception occurred.
+    *
+    * <p>The first column in a line is position 1.</p>
+    *
+    * @return An integer representing the column number, or -1
+    *         if none is available.
+    * @see Locator#getColumnNumber
+    */
+    XMLSSize_t getColumnNumber() const;
+  /**
+    * The line number of the end of the text where the exception occurred.
+    *
+    * @return An integer representing the line number, or -1
+    *         if none is available.
+    * @see Locator#getLineNumber
+    */
+    XMLSSize_t getLineNumber() const;
+  /**
+    * Get the public identifier of the entity where the exception occurred.
+    *
+    * @return A string containing the public identifier, or null
+    *         if none is available.
+    * @see Locator#getPublicId
+    */
+    const XMLCh* getPublicId() const;
+  /**
+    * Get the system identifier of the entity where the exception occurred.
+    *
+    * <p>If the system identifier is a URL, it will be resolved
+    * fully.</p>
+    *
+    * @return A string containing the system identifier, or null
+    *         if none is available.
+    * @see Locator#getSystemId
+    */
+    const XMLCh* getSystemId() const;
+    //@}
+
+private:
+    /* Data Members */
+
+    /* The column in the source text where the error occured. */
+    XMLSSize_t      fColumnNumber;
+    /* The line in the source text where the error occured. */
+    XMLSSize_t      fLineNumber;
+    /* The public id of the file where the error occured. */
+    XMLCh*          fPublicId;
+    /* The system id of the file where the error occured. */
+    XMLCh*          fSystemId;
+
+
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/sax/ErrorHandler.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/sax/ErrorHandler.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/sax/ErrorHandler.hpp	(revision 2674)
@@ -0,0 +1,169 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: ErrorHandler.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+#ifndef ERRORHANDLER_HPP
+#define ERRORHANDLER_HPP
+
+#include <xercesc/util/XercesDefs.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class SAXParseException;
+
+
+/**
+  * Basic interface for SAX error handlers.
+  *
+  * <p>If a SAX application needs to implement customized error
+  * handling, it must implement this interface and then register an
+  * instance with the SAX parser using the parser's setErrorHandler
+  * method.  The parser will then report all errors and warnings
+  * through this interface.</p>
+  *
+  * <p> The parser shall use this interface instead of throwing an
+  * exception: it is up to the application whether to throw an
+  * exception for different types of errors and warnings.  Note,
+  * however, that there is no requirement that the parser continue to
+  * provide useful information after a call to fatalError (in other
+  * words, a SAX driver class could catch an exception and report a
+  * fatalError).</p>
+  *
+  * <p>The HandlerBase class provides a default implementation of this
+  * interface, ignoring warnings and recoverable errors and throwing a
+  * SAXParseException for fatal errors.  An application may extend
+  * that class rather than implementing the complete interface
+  * itself.</p>
+  *
+  * @see Parser#setErrorHandler
+  * @see SAXParseException#SAXParseException
+  * @see HandlerBase#HandlerBase
+  */
+
+class SAX_EXPORT ErrorHandler
+{
+public:
+    /** @name Constructors and Destructor */
+    //@{
+    /** Default constructor */
+    ErrorHandler()
+    {
+    }
+
+    /** Desctructor */
+    virtual ~ErrorHandler()
+    {
+    }
+    //@}
+
+    /** @name The error handler interface */
+    //@{
+   /**
+    * Receive notification of a warning.
+    *
+    * <p>SAX parsers will use this method to report conditions that
+    * are not errors or fatal errors as defined by the XML 1.0
+    * recommendation.  The default behaviour is to take no action.</p>
+    *
+    * <p>The SAX parser must continue to provide normal parsing events
+    * after invoking this method: it should still be possible for the
+    * application to process the document through to the end.</p>
+    *
+    * @param exc The warning information encapsulated in a
+    *            SAX parse exception.
+    * @exception SAXException Any SAX exception, possibly
+    *            wrapping another exception.
+    * @see SAXParseException#SAXParseException
+    */
+    virtual void warning(const SAXParseException& exc) = 0;
+
+  /**
+    * Receive notification of a recoverable error.
+    *
+    * <p>This corresponds to the definition of "error" in section 1.2
+    * of the W3C XML 1.0 Recommendation.  For example, a validating
+    * parser would use this callback to report the violation of a
+    * validity constraint.  The default behaviour is to take no
+    * action.</p>
+    *
+    * <p>The SAX parser must continue to provide normal parsing events
+    * after invoking this method: it should still be possible for the
+    * application to process the document through to the end.  If the
+    * application cannot do so, then the parser should report a fatal
+    * error even if the XML 1.0 recommendation does not require it to
+    * do so.</p>
+    *
+    * @param exc The error information encapsulated in a
+    *            SAX parse exception.
+    * @exception SAXException Any SAX exception, possibly
+    *            wrapping another exception.
+    * @see SAXParseException#SAXParseException
+    */
+    virtual void error(const SAXParseException& exc) = 0;
+
+  /**
+    * Receive notification of a non-recoverable error.
+    *
+    * <p>This corresponds to the definition of "fatal error" in
+    * section 1.2 of the W3C XML 1.0 Recommendation.  For example, a
+    * parser would use this callback to report the violation of a
+    * well-formedness constraint.</p>
+    *
+    * <p>The application must assume that the document is unusable
+    * after the parser has invoked this method, and should continue
+    * (if at all) only for the sake of collecting addition error
+    * messages: in fact, SAX parsers are free to stop reporting any
+    * other events once this method has been invoked.</p>
+    *
+    * @param exc The error information encapsulated in a
+    *            SAX parse exception.
+    * @exception SAXException Any SAX exception, possibly
+    *            wrapping another exception.
+    * @see SAXParseException#SAXParseException
+    */
+    virtual void fatalError(const SAXParseException& exc) = 0;
+
+    /**
+    * Reset the Error handler object on its reuse
+    *
+    * <p>This method helps in reseting the Error handler object
+    * implementational defaults each time the Error handler is begun.</p>
+    *
+    */
+    virtual void resetErrors() = 0;
+
+
+    //@}
+
+private :
+    /* Unimplemented constructors and operators */
+
+    /* Copy constructor */
+    ErrorHandler(const ErrorHandler&);
+
+    /* Assignment operator */
+    ErrorHandler& operator=(const ErrorHandler&);
+
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/sax/HandlerBase.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/sax/HandlerBase.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/sax/HandlerBase.hpp	(revision 2674)
@@ -0,0 +1,467 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: HandlerBase.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+#ifndef HANDLERBASE_HPP
+#define HANDLERBASE_HPP
+
+#include <xercesc/sax/DocumentHandler.hpp>
+#include <xercesc/sax/DTDHandler.hpp>
+#include <xercesc/sax/EntityResolver.hpp>
+#include <xercesc/sax/ErrorHandler.hpp>
+#include <xercesc/sax/SAXParseException.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class Locator;
+class AttributeList;
+
+/**
+  * Default base class for handlers.
+  *
+  * <p>This class implements the default behaviour for four SAX
+  * interfaces: EntityResolver, DTDHandler, DocumentHandler,
+  * and ErrorHandler.</p>
+  *
+  * <p>Application writers can extend this class when they need to
+  * implement only part of an interface; parser writers can
+  * instantiate this class to provide default handlers when the
+  * application has not supplied its own.</p>
+  *
+  * <p>Note that the use of this class is optional.</p>
+  *
+  * @see EntityResolver#EntityResolver
+  * @see DTDHandler#DTDHandler
+  * @see DocumentHandler#DocumentHandler
+  * @see ErrorHandler#ErrorHandler
+  */
+
+class SAX_EXPORT HandlerBase :
+
+    public EntityResolver, public DTDHandler, public DocumentHandler
+    , public ErrorHandler
+{
+public:
+    /** @name Default handlers for the DocumentHandler interface */
+    //@{
+  /**
+    * Receive notification of character data inside an element.
+    *
+    * <p>By default, do nothing.  Application writers may override this
+    * method to take specific actions for each chunk of character data
+    * (such as adding the data to a node or buffer, or printing it to
+    * a file).</p>
+    *
+    * @param chars The characters.
+    * @param length The number of characters to use from the
+    *               character array.
+    * @exception SAXException Any SAX exception, possibly
+    *            wrapping another exception.
+    * @see DocumentHandler#characters
+    */
+    virtual void characters
+    (
+        const   XMLCh* const    chars
+        , const unsigned int    length
+    );
+
+  /**
+    * Receive notification of the end of the document.
+    *
+    * <p>By default, do nothing.  Application writers may override this
+    * method in a subclass to take specific actions at the beginning
+    * of a document (such as finalising a tree or closing an output
+    * file).</p>
+    *
+    * @exception SAXException Any SAX exception, possibly
+    *            wrapping another exception.
+    * @see DocumentHandler#endDocument
+    */
+    virtual void endDocument();
+
+  /**
+    * Receive notification of the end of an element.
+    *
+    * <p>By default, do nothing.  Application writers may override this
+    * method in a subclass to take specific actions at the end of
+    * each element (such as finalising a tree node or writing
+    * output to a file).</p>
+    *
+    * @param name The element type name.
+    * @exception SAXException Any SAX exception, possibly
+    *            wrapping another exception.
+    * @see DocumentHandler#endElement
+    */
+    virtual void endElement(const XMLCh* const name);
+
+  /**
+    * Receive notification of ignorable whitespace in element content.
+    *
+    * <p>By default, do nothing.  Application writers may override this
+    * method to take specific actions for each chunk of ignorable
+    * whitespace (such as adding data to a node or buffer, or printing
+    * it to a file).</p>
+    *
+    * @param chars The whitespace characters.
+    * @param length The number of characters to use from the
+    *               character array.
+    * @exception SAXException Any SAX exception, possibly
+    *            wrapping another exception.
+    * @see DocumentHandler#ignorableWhitespace
+    */
+    virtual void ignorableWhitespace
+    (
+        const   XMLCh* const    chars
+        , const unsigned int    length
+    );
+
+  /**
+    * Receive notification of a processing instruction.
+    *
+    * <p>By default, do nothing.  Application writers may override this
+    * method in a subclass to take specific actions for each
+    * processing instruction, such as setting status variables or
+    * invoking other methods.</p>
+    *
+    * @param target The processing instruction target.
+    * @param data The processing instruction data, or null if
+    *             none is supplied.
+    * @exception SAXException Any SAX exception, possibly
+    *            wrapping another exception.
+    * @see DocumentHandler#processingInstruction
+    */
+    virtual void processingInstruction
+    (
+        const   XMLCh* const    target
+        , const XMLCh* const    data
+    );
+
+    /**
+    * Reset the Docuemnt object on its reuse
+    *
+    * @see DocumentHandler#resetDocument
+    */
+    virtual void resetDocument();
+    //@}
+
+    /** @name Default implementation of DocumentHandler interface */
+
+    //@{
+  /**
+    * Receive a Locator object for document events.
+    *
+    * <p>By default, do nothing.  Application writers may override this
+    * method in a subclass if they wish to store the locator for use
+    * with other document events.</p>
+    *
+    * @param locator A locator for all SAX document events.
+    * @see DocumentHandler#setDocumentLocator
+    * @see Locator
+    */
+    virtual void setDocumentLocator(const Locator* const locator);
+
+  /**
+    * Receive notification of the beginning of the document.
+    *
+    * <p>By default, do nothing.  Application writers may override this
+    * method in a subclass to take specific actions at the beginning
+    * of a document (such as allocating the root node of a tree or
+    * creating an output file).</p>
+    *
+    * @exception SAXException Any SAX exception, possibly
+    *            wrapping another exception.
+    * @see DocumentHandler#startDocument
+    */
+    virtual void startDocument();
+
+  /**
+    * Receive notification of the start of an element.
+    *
+    * <p>By default, do nothing.  Application writers may override this
+    * method in a subclass to take specific actions at the start of
+    * each element (such as allocating a new tree node or writing
+    * output to a file).</p>
+    *
+    * @param name The element type name.
+    * @param attributes The specified or defaulted attributes.
+    * @exception SAXException Any SAX exception, possibly
+    *            wrapping another exception.
+    * @see DocumentHandler#startElement
+    */
+    virtual void startElement
+    (
+        const   XMLCh* const    name
+        ,       AttributeList&  attributes
+    );
+
+    //@}
+
+    /** @name Default implementation of the EntityResolver interface. */
+
+    //@{
+  /**
+    * Resolve an external entity.
+    *
+    * <p>Always return null, so that the parser will use the system
+    * identifier provided in the XML document.  This method implements
+    * the SAX default behaviour: application writers can override it
+    * in a subclass to do special translations such as catalog lookups
+    * or URI redirection.</p>
+    *
+    * @param publicId The public identifer, or null if none is
+    *                 available.
+    * @param systemId The system identifier provided in the XML
+    *                 document.
+    * @return The new input source, or null to require the
+    *         default behaviour.
+    *         The returned InputSource is owned by the parser which is
+    *         responsible to clean up the memory.
+    * @exception SAXException Any SAX exception, possibly
+    *            wrapping another exception.
+    * @see EntityResolver#resolveEntity
+    */
+    virtual InputSource* resolveEntity
+    (
+        const   XMLCh* const    publicId
+        , const XMLCh* const    systemId
+    );
+
+    //@}
+
+    /** @name Default implementation of the ErrorHandler interface */
+    //@{
+   /**
+    * Receive notification of a recoverable parser error.
+    *
+    * <p>The default implementation does nothing.  Application writers
+    * may override this method in a subclass to take specific actions
+    * for each error, such as inserting the message in a log file or
+    * printing it to the console.</p>
+    *
+    * @param exc The warning information encoded as an exception.
+    * @exception SAXException Any SAX exception, possibly
+    *            wrapping another exception.
+    * @see ErrorHandler#warning
+    * @see SAXParseException#SAXParseException
+    */
+    virtual void error(const SAXParseException& exc);
+
+  /**
+    * Report a fatal XML parsing error.
+    *
+    * <p>The default implementation throws a SAXParseException.
+    * Application writers may override this method in a subclass if
+    * they need to take specific actions for each fatal error (such as
+    * collecting all of the errors into a single report): in any case,
+    * the application must stop all regular processing when this
+    * method is invoked, since the document is no longer reliable, and
+    * the parser may no longer report parsing events.</p>
+    *
+    * @param exc The error information encoded as an exception.
+    * @exception SAXException Any SAX exception, possibly
+    *            wrapping another exception.
+    * @see ErrorHandler#fatalError
+    * @see SAXParseException#SAXParseException
+    */
+    virtual void fatalError(const SAXParseException& exc);
+
+  /**
+    * Receive notification of a parser warning.
+    *
+    * <p>The default implementation does nothing.  Application writers
+    * may override this method in a subclass to take specific actions
+    * for each warning, such as inserting the message in a log file or
+    * printing it to the console.</p>
+    *
+    * @param exc The warning information encoded as an exception.
+    * @exception SAXException Any SAX exception, possibly
+    *            wrapping another exception.
+    * @see ErrorHandler#warning
+    * @see SAXParseException#SAXParseException
+    */
+    virtual void warning(const SAXParseException& exc);
+
+    /**
+    * Reset the Error handler object on its reuse
+    *
+    * @see ErrorHandler#resetErrors
+    */
+    virtual void resetErrors();
+
+    //@}
+
+
+    /** @name Default implementation of DTDHandler interface. */
+    //@{
+
+  /**
+    * Receive notification of a notation declaration.
+    *
+    * <p>By default, do nothing.  Application writers may override this
+    * method in a subclass if they wish to keep track of the notations
+    * declared in a document.</p>
+    *
+    * @param name The notation name.
+    * @param publicId The notation public identifier, or null if not
+    *                 available.
+    * @param systemId The notation system identifier.
+    * @see DTDHandler#notationDecl
+    */
+    virtual void notationDecl
+    (
+        const   XMLCh* const    name
+        , const XMLCh* const    publicId
+        , const XMLCh* const    systemId
+    );
+
+    /**
+    * Reset the DTD object on its reuse
+    *
+    * @see DTDHandler#resetDocType
+    */
+    virtual void resetDocType();
+
+  /**
+    * Receive notification of an unparsed entity declaration.
+    *
+    * <p>By default, do nothing.  Application writers may override this
+    * method in a subclass to keep track of the unparsed entities
+    * declared in a document.</p>
+    *
+    * @param name The entity name.
+    * @param publicId The entity public identifier, or null if not
+    *                 available.
+    * @param systemId The entity system identifier.
+    * @param notationName The name of the associated notation.
+    * @see DTDHandler#unparsedEntityDecl
+    */
+    virtual void unparsedEntityDecl
+    (
+        const   XMLCh* const    name
+        , const XMLCh* const    publicId
+        , const XMLCh* const    systemId
+        , const XMLCh* const    notationName
+    );
+    //@}
+
+    HandlerBase() {};
+    virtual ~HandlerBase() {};
+
+private:
+	// -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    HandlerBase(const HandlerBase&);
+    HandlerBase& operator=(const HandlerBase&);
+};
+
+
+// ---------------------------------------------------------------------------
+//  HandlerBase: Inline default implementations
+// ---------------------------------------------------------------------------
+inline void HandlerBase::characters(const   XMLCh* const
+                                    , const unsigned int)
+{
+}
+
+inline void HandlerBase::endDocument()
+{
+}
+
+inline void HandlerBase::endElement(const XMLCh* const)
+{
+}
+
+inline void HandlerBase::error(const SAXParseException&)
+{
+}
+
+inline void HandlerBase::fatalError(const SAXParseException& exc)
+{
+    throw exc;
+}
+
+inline void
+HandlerBase::ignorableWhitespace(   const   XMLCh* const
+                                    , const unsigned int)
+{
+}
+
+inline void HandlerBase::notationDecl(  const   XMLCh* const
+                                        , const XMLCh* const
+                                        , const XMLCh* const)
+{
+}
+
+inline void
+HandlerBase::processingInstruction( const   XMLCh* const
+                                    , const XMLCh* const)
+{
+}
+
+inline void HandlerBase::resetErrors()
+{
+}
+
+inline void HandlerBase::resetDocument()
+{
+}
+
+inline void HandlerBase::resetDocType()
+{
+}
+
+inline InputSource*
+HandlerBase::resolveEntity( const   XMLCh* const
+                            , const XMLCh* const)
+{
+    return 0;
+}
+
+inline void
+HandlerBase::unparsedEntityDecl(const   XMLCh* const
+                                , const XMLCh* const
+                                , const XMLCh* const
+                                , const XMLCh* const)
+{
+}
+
+inline void HandlerBase::setDocumentLocator(const Locator* const)
+{
+}
+
+inline void HandlerBase::startDocument()
+{
+}
+
+inline void
+HandlerBase::startElement(  const   XMLCh* const
+                            ,       AttributeList&)
+{
+}
+
+inline void HandlerBase::warning(const SAXParseException&)
+{
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/internal/IGXMLScanner.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/internal/IGXMLScanner.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/internal/IGXMLScanner.hpp	(revision 2674)
@@ -0,0 +1,326 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: IGXMLScanner.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+#if !defined(IGXMLSCANNER_HPP)
+#define IGXMLSCANNER_HPP
+
+#include <xercesc/internal/XMLScanner.hpp>
+#include <xercesc/util/KVStringPair.hpp>
+#include <xercesc/util/NameIdPool.hpp>
+#include <xercesc/util/RefHash3KeysIdPool.hpp>
+#include <xercesc/validators/common/Grammar.hpp>
+#include <xercesc/validators/schema/SchemaElementDecl.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class DTDElementDecl;
+class DTDGrammar;
+class DTDValidator;
+class SchemaValidator;
+class IdentityConstraintHandler;
+class IdentityConstraint;
+class ContentLeafNameTypeVector;
+class SchemaAttDef;
+class XMLContentModel;
+class XSModel;
+class PSVIAttributeList;
+class PSVIElement;
+
+//  This is an integrated scanner class, which does DTD/XML Schema grammar
+//  processing.
+class XMLPARSER_EXPORT IGXMLScanner : public XMLScanner
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+    IGXMLScanner
+    (
+        XMLValidator* const valToAdopt
+        , GrammarResolver* const grammarResolver
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+    IGXMLScanner
+    (
+          XMLDocumentHandler* const docHandler
+        , DocTypeHandler* const     docTypeHandler
+        , XMLEntityHandler* const   entityHandler
+        , XMLErrorReporter* const   errReporter
+        , XMLValidator* const       valToAdopt
+        , GrammarResolver* const    grammarResolver
+        , MemoryManager* const      manager = XMLPlatformUtils::fgMemoryManager
+    );
+    virtual ~IGXMLScanner();
+
+    // -----------------------------------------------------------------------
+    //  XMLScanner public virtual methods
+    // -----------------------------------------------------------------------
+    virtual const XMLCh* getName() const;
+    virtual NameIdPool<DTDEntityDecl>* getEntityDeclPool();
+    virtual const NameIdPool<DTDEntityDecl>* getEntityDeclPool() const;
+    virtual unsigned int resolveQName
+    (
+        const   XMLCh* const        qName
+        ,       XMLBuffer&          prefixBufToFill
+        , const short               mode
+        ,       int&                prefixColonPos
+    );
+    virtual void scanDocument
+    (
+        const   InputSource&    src
+    );
+    virtual bool scanNext(XMLPScanToken& toFill);
+    virtual Grammar* loadGrammar
+    (
+        const   InputSource&    src
+        , const short           grammarType
+        , const bool            toCache = false
+    );
+
+    virtual Grammar::GrammarType getCurrentGrammarType() const;
+
+private :
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    IGXMLScanner();
+    IGXMLScanner(const IGXMLScanner&);
+    IGXMLScanner& operator=(const IGXMLScanner&);
+
+    // -----------------------------------------------------------------------
+    //  XMLScanner virtual methods
+    // -----------------------------------------------------------------------
+    virtual void scanCDSection();
+    virtual void scanCharData(XMLBuffer& toToUse);
+    virtual EntityExpRes scanEntityRef
+    (
+        const   bool    inAttVal
+        ,       XMLCh&  firstCh
+        ,       XMLCh&  secondCh
+        ,       bool&   escaped
+    );
+    virtual void scanDocTypeDecl();
+    virtual void scanReset(const InputSource& src);
+    virtual void sendCharData(XMLBuffer& toSend);
+    virtual InputSource* resolveSystemId(const XMLCh* const sysId
+                                        ,const XMLCh* const pubId);
+
+    // -----------------------------------------------------------------------
+    //  Private helper methods
+    // -----------------------------------------------------------------------
+    void commonInit();
+    void cleanUp();
+
+    unsigned int buildAttList
+    (
+        const   RefVectorOf<KVStringPair>&  providedAttrs
+        , const unsigned int                attCount
+        ,       XMLElementDecl*             elemDecl
+        ,       RefVectorOf<XMLAttr>&       toFill
+    );
+    bool normalizeAttValue
+    (
+        const   XMLAttDef* const    attDef
+        , const XMLCh* const       name 
+        , const XMLCh* const        value
+        ,       XMLBuffer&          toFill
+    );
+    bool normalizeAttRawValue
+    (
+        const   XMLCh* const        attrName
+        , const XMLCh* const        value
+        ,       XMLBuffer&          toFill
+    );
+    unsigned int resolvePrefix
+    (
+        const   XMLCh* const        prefix
+        , const ElemStack::MapModes mode
+    );
+    unsigned int resolvePrefix
+    (
+        const   XMLCh* const        prefix
+        ,       XMLBuffer&          uriBufToFill
+        , const ElemStack::MapModes mode
+    );
+    void updateNSMap
+    (
+        const   XMLCh* const    attrName
+        , const XMLCh* const    attrValue        
+    );
+    void updateNSMap
+    (
+        const   XMLCh* const    attrName
+        , const XMLCh* const    attrValue
+        , const int             colonPosition
+    );
+    void scanRawAttrListforNameSpaces(int attCount);
+    void parseSchemaLocation(const XMLCh* const schemaLocationStr);
+    void resolveSchemaGrammar(const XMLCh* const loc, const XMLCh* const uri);
+    bool switchGrammar(const XMLCh* const newGrammarNameSpace);
+    bool laxElementValidation(QName* element, ContentLeafNameTypeVector* cv,
+                              const XMLContentModel* const cm,
+                              const unsigned int parentElemDepth);
+    bool anyAttributeValidation(SchemaAttDef* attWildCard,
+                                unsigned int uriId,
+                                bool& skipThisOne,
+                                bool& laxThisOne);
+    void resizeElemState();
+    void processSchemaLocation(XMLCh* const schemaLoc);
+
+    void resizeRawAttrColonList();
+
+    unsigned int resolveQNameWithColon
+    (
+        const   XMLCh* const        qName
+        ,       XMLBuffer&          prefixBufToFill
+        , const short               mode
+        , const int                 prefixColonPos
+    );
+    // -----------------------------------------------------------------------
+    //  Private scanning methods
+    // -----------------------------------------------------------------------
+    bool basicAttrValueScan
+    (
+        const   XMLCh* const    attrName
+        ,       XMLBuffer&      toFill
+    );
+    unsigned int rawAttrScan
+    (
+        const   XMLCh* const                elemName
+        ,       RefVectorOf<KVStringPair>&  toFill
+        ,       bool&                       isEmpty
+    );
+    bool scanAttValue
+    (
+        const   XMLAttDef* const    attDef
+        , const   XMLCh* const      attrName
+        ,       XMLBuffer&          toFill
+    );
+    bool scanContent();
+    void scanEndTag(bool& gotData);
+    bool scanStartTag(bool& gotData);
+    bool scanStartTagNS(bool& gotData);
+
+    // -----------------------------------------------------------------------
+    //  IdentityConstraints Activation methods
+    // -----------------------------------------------------------------------
+    inline bool toCheckIdentityConstraint()  const;
+
+    // -----------------------------------------------------------------------
+    //  Grammar preparsing methods
+    // -----------------------------------------------------------------------
+    Grammar* loadXMLSchemaGrammar(const InputSource& src, const bool toCache = false);
+    Grammar* loadDTDGrammar(const InputSource& src, const bool toCache = false);
+
+    // -----------------------------------------------------------------------
+    //  PSVI handling methods
+    // -----------------------------------------------------------------------
+    void endElementPSVI(SchemaElementDecl* const elemDecl,
+                        DatatypeValidator* const memberDV);
+    void resetPSVIElemContext();
+
+    // -----------------------------------------------------------------------
+    //  Data members
+    //
+    //  fRawAttrList
+    //      During the initial scan of the attributes we can only do a raw
+    //      scan for key/value pairs. So this vector is used to store them
+    //      until they can be processed (and put into fAttrList.)
+    //
+    //  fDTDValidator
+    //      The DTD validator instance.
+    //
+    //  fSchemaValidator
+    //      The Schema validator instance.
+    //
+    //  fSeeXsi
+    //      This flag indicates a schema has been seen.
+    //
+    //  fElemState
+    //  fElemStateSize
+    //      Stores an element next state from DFA content model - used for
+    //      wildcard validation
+    //
+    // fDTDElemNonDeclPool
+    //      registry of "faulted-in" DTD element decls
+    // fSchemaElemNonDeclPool
+    //      registry for elements without decls in the grammar
+    // fElemCount
+    //      count of the number of start tags seen so far (starts at 1).
+    //      Used for duplicate attribute detection/processing of required/defaulted attributes
+    // fAttDefRegistry
+    //      mapping from XMLAttDef instances to the count of the last
+    //      start tag where they were utilized.
+    // fUndeclaredAttrRegistry
+    //      mapping of attr QNames to the count of the last start tag in which they occurred
+    // fUndeclaredAttrRegistryNS
+    //      mapping of namespaceId/localName pairs to the count of the last
+    //      start tag in which they occurred.
+    //  fPSVIAttrList
+    //      PSVI attribute list implementation that needs to be
+    //      filled when a PSVIHandler is registered
+    //
+    // -----------------------------------------------------------------------
+    bool                                    fSeeXsi;
+    Grammar::GrammarType                    fGrammarType;
+    unsigned int                            fElemStateSize;
+    unsigned int*                           fElemState;
+    XMLBuffer                               fContent;
+    RefVectorOf<KVStringPair>*              fRawAttrList;
+    unsigned int                            fRawAttrColonListSize;
+    int*                                    fRawAttrColonList;
+    DTDValidator*                           fDTDValidator;
+    SchemaValidator*                        fSchemaValidator;
+    DTDGrammar*                             fDTDGrammar;
+    IdentityConstraintHandler*              fICHandler;
+    ValueVectorOf<XMLCh*>*                  fLocationPairs;
+    NameIdPool<DTDElementDecl>*             fDTDElemNonDeclPool;
+    RefHash3KeysIdPool<SchemaElementDecl>*  fSchemaElemNonDeclPool;
+    unsigned int                            fElemCount;
+    RefHashTableOf<unsigned int>*           fAttDefRegistry;
+    RefHashTableOf<unsigned int>*           fUndeclaredAttrRegistry;
+    RefHash2KeysTableOf<unsigned int>*      fUndeclaredAttrRegistryNS;
+    PSVIAttributeList *                     fPSVIAttrList;
+    XSModel*                                fModel;
+    PSVIElement*                            fPSVIElement;
+    ValueStackOf<bool>*                     fErrorStack;
+    PSVIElemContext                         fPSVIElemContext;
+};
+
+inline const XMLCh* IGXMLScanner::getName() const
+{
+    return XMLUni::fgIGXMLScanner;
+}
+
+inline bool IGXMLScanner::toCheckIdentityConstraint()  const
+{
+    return fValidate && fIdentityConstraintChecking && fICHandler;
+}
+
+inline Grammar::GrammarType IGXMLScanner::getCurrentGrammarType() const
+{
+    return fGrammarType;
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/internal/XMLScannerResolver.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/internal/XMLScannerResolver.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/internal/XMLScannerResolver.hpp	(revision 2674)
@@ -0,0 +1,79 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: XMLScannerResolver.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(XMLSCANNERRESOLVER_HPP)
+#define XMLSCANNERRESOLVER_HPP
+
+#include <xercesc/internal/XMLScanner.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class XMLValidator;
+class XMLDocumentHandler;
+class XMLErrorReporter;
+class DocTypeHandler;
+class XMLEntityHandler;
+
+class XMLPARSER_EXPORT XMLScannerResolver
+{
+public:
+    // -----------------------------------------------------------------------
+    //  Public class methods
+    // -----------------------------------------------------------------------
+    static XMLScanner* resolveScanner
+    (
+          const XMLCh* const   scannerName
+        , XMLValidator* const  valToAdopt
+        , GrammarResolver* const grammarResolver
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    static XMLScanner* resolveScanner
+    (
+          const XMLCh* const        scannerName
+        , XMLDocumentHandler* const docHandler
+        , DocTypeHandler* const     docTypeHandler
+        , XMLEntityHandler* const   entityHandler
+        , XMLErrorReporter* const   errReporter
+        , XMLValidator* const       valToAdopt
+        , GrammarResolver* const    grammarResolver
+        , MemoryManager* const      manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    static XMLScanner* getDefaultScanner
+    (
+          XMLValidator* const  valToAdopt
+        , GrammarResolver* const grammarResolver
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+private :
+
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructor and destructor
+    // -----------------------------------------------------------------------
+    XMLScannerResolver();
+    ~XMLScannerResolver();
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/internal/XTemplateSerializer.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/internal/XTemplateSerializer.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/internal/XTemplateSerializer.hpp	(revision 2674)
@@ -0,0 +1,365 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: XTemplateSerializer.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(XTEMPLATE_SERIALIZER_HPP)
+#define XTEMPLATE_SERIALIZER_HPP
+
+#include <xercesc/util/ValueVectorOf.hpp>
+#include <xercesc/util/RefArrayVectorOf.hpp>
+#include <xercesc/util/RefVectorOf.hpp>
+#include <xercesc/util/RefHashTableOf.hpp>
+#include <xercesc/util/RefHash2KeysTableOf.hpp>
+#include <xercesc/util/RefHash3KeysIdPool.hpp>
+#include <xercesc/util/NameIdPool.hpp>
+
+#include <xercesc/framework/XMLNotationDecl.hpp>
+#include <xercesc/framework/XMLRefInfo.hpp>
+#include <xercesc/util/XMLNumber.hpp>
+#include <xercesc/validators/common/ContentSpecNode.hpp>
+#include <xercesc/validators/DTD/DTDAttDef.hpp>
+#include <xercesc/validators/DTD/DTDElementDecl.hpp>
+#include <xercesc/validators/DTD/DTDEntityDecl.hpp>
+#include <xercesc/validators/schema/SchemaAttDef.hpp>
+#include <xercesc/validators/schema/SchemaElementDecl.hpp>
+#include <xercesc/validators/schema/XercesGroupInfo.hpp>
+#include <xercesc/validators/schema/XercesAttGroupInfo.hpp>
+#include <xercesc/validators/schema/SchemaGrammar.hpp>
+#include <xercesc/validators/schema/identity/IC_Field.hpp>
+#include <xercesc/validators/schema/identity/IdentityConstraint.hpp>
+#include <xercesc/validators/schema/identity/XercesXPath.hpp>
+#include <xercesc/framework/psvi/XSAnnotation.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class XMLUTIL_EXPORT XTemplateSerializer
+{
+public:
+
+    /**********************************************************
+     *
+     * ValueVectorOf
+     *
+     *   SchemaElementDecl*
+     *   unsigned int
+     *
+     ***********************************************************/   
+    static void           storeObject(ValueVectorOf<SchemaElementDecl*>* const tempObjToWrite
+                                    , XSerializeEngine&                        serEng);
+
+    static void           loadObject(ValueVectorOf<SchemaElementDecl*>**       tempObjToRead
+                                   , int                                       initSize
+                                   , bool                                      toCallDestructor
+                                   , XSerializeEngine&                         serEng);
+
+    static void           storeObject(ValueVectorOf<unsigned int>* const tempObjToWrite
+                                    , XSerializeEngine&                  serEng);
+
+    static void           loadObject(ValueVectorOf<unsigned int>**       tempObjToRead
+                                   , int                                 initSize
+                                   , bool                                toCallDestructor
+                                   , XSerializeEngine&                   serEng);
+
+    /**********************************************************
+     *
+     * RefArrayVectorOf
+     *
+     *   XMLCh
+     *
+     ***********************************************************/   
+    static void           storeObject(RefArrayVectorOf<XMLCh>* const tempObjToWrite
+                                    , XSerializeEngine&              serEng);
+
+    static void           loadObject(RefArrayVectorOf<XMLCh>**       tempObjToRead
+                                   , int                             initSize
+                                   , bool                            toAdopt
+                                   , XSerializeEngine&               serEng);
+
+    /**********************************************************
+     *
+     * RefVectorOf
+     *
+     *   SchemaAttDef
+     *   SchemaElementDecl
+     *   ContentSpecNode
+     *   IC_Field
+     *   DatatypeValidator
+     *   IdentityConstraint
+     *   XMLNumber
+     *   XercesLocationPath
+     *   XercesStep
+     *
+     ***********************************************************/
+    static void           storeObject(RefVectorOf<SchemaAttDef>* const tempObjToWrite
+                                    , XSerializeEngine&                serEng);
+
+    static void           loadObject(RefVectorOf<SchemaAttDef>**       tempObjToRead
+                                   , int                               initSize
+                                   , bool                              toAdopt
+                                   , XSerializeEngine&                 serEng);
+
+    static void           storeObject(RefVectorOf<SchemaElementDecl>* const tempObjToWrite
+                                    , XSerializeEngine&                     serEng);
+
+    static void           loadObject(RefVectorOf<SchemaElementDecl>**       tempObjToRead
+                                   , int                                    initSize
+                                   , bool                                   toAdopt
+                                   , XSerializeEngine&                      serEng);
+
+    static void           storeObject(RefVectorOf<ContentSpecNode>* const tempObjToWrite
+                                    , XSerializeEngine&                   serEng);
+
+    static void           loadObject(RefVectorOf<ContentSpecNode>**       tempObjToRead
+                                   , int                                  initSize
+                                   , bool                                 toAdopt
+                                   , XSerializeEngine&                    serEng);
+
+    static void           storeObject(RefVectorOf<IC_Field>* const tempObjToWrite
+                                    , XSerializeEngine&            serEng);
+
+    static void           loadObject(RefVectorOf<IC_Field>**       tempObjToRead
+                                   , int                           initSize
+                                   , bool                          toAdopt
+                                   , XSerializeEngine&             serEng);
+
+    static void           storeObject(RefVectorOf<DatatypeValidator>* const tempObjToWrite
+                                    , XSerializeEngine&                     serEng);
+
+    static void           loadObject(RefVectorOf<DatatypeValidator>**       tempObjToRead
+                                   , int                                    initSize
+                                   , bool                                   toAdopt
+                                   , XSerializeEngine&                      serEng);
+ 
+    static void           storeObject(RefVectorOf<IdentityConstraint>* const tempObjToWrite
+                                    , XSerializeEngine&                      serEng);
+
+    static void           loadObject(RefVectorOf<IdentityConstraint>**       tempObjToRead
+                                   , int                                     initSize
+                                   , bool                                    toAdopt
+                                   , XSerializeEngine&                       serEng);
+
+    static void           storeObject(RefVectorOf<XMLNumber>* const tempObjToWrite
+                                    , XSerializeEngine&             serEng);
+
+    static void           loadObject(RefVectorOf<XMLNumber>**       tempObjToRead
+                                   , int                            initSize
+                                   , bool                           toAdopt
+                                   , XMLNumber::NumberType          numType
+                                   , XSerializeEngine&              serEng);
+
+    static void           storeObject(RefVectorOf<XercesLocationPath>* const tempObjToWrite
+                                    , XSerializeEngine&                      serEng);
+
+    static void           loadObject(RefVectorOf<XercesLocationPath>**       tempObjToRead
+                                   , int                                     initSize
+                                   , bool                                    toAdopt
+                                   , XSerializeEngine&                       serEng);
+
+    static void           storeObject(RefVectorOf<XercesStep>* const tempObjToWrite
+                                    , XSerializeEngine&              serEng);
+
+    static void           loadObject(RefVectorOf<XercesStep>**       tempObjToRead
+                                   , int                             initSize
+                                   , bool                            toAdopt
+                                   , XSerializeEngine&               serEng);
+
+    /**********************************************************
+     *
+     * RefHashTableOf
+     *
+     *   KVStringPair
+     *   XMLAttDef
+     *   DTDAttDef
+     *   ComplexTypeInfo
+     *   XercesGroupInfo
+     *   XercesAttGroupInfo
+     *   XMLRefInfo
+     *   DatatypeValidator
+     *   Grammar
+     *   XSAnnotation
+     *
+     ***********************************************************/
+    static void           storeObject(RefHashTableOf<KVStringPair>* const tempObjToWrite
+                                    , XSerializeEngine&                   serEng);
+
+    static void           loadObject(RefHashTableOf<KVStringPair>**       tempObjToRead
+                                   , int                                  initSize
+                                   , bool                                 toAdopt
+                                   , XSerializeEngine&                    serEng);
+
+    static void           storeObject(RefHashTableOf<XMLAttDef>* const tempObjToWrite
+                                    , XSerializeEngine&                serEng);
+
+    static void           loadObject(RefHashTableOf<XMLAttDef>**       tempObjToRead
+                                   , int                               initSize
+                                   , bool                              toAdopt
+                                   , XSerializeEngine&                 serEng);
+
+    static void           storeObject(RefHashTableOf<DTDAttDef>* const tempObjToWrite
+                                    , XSerializeEngine&                serEng);
+
+    static void           loadObject(RefHashTableOf<DTDAttDef>**       tempObjToRead
+                                   , int                               initSize
+                                   , bool                              toAdopt
+                                   , XSerializeEngine&                 serEng);
+
+    static void           storeObject(RefHashTableOf<ComplexTypeInfo>* const tempObjToWrite
+                                    , XSerializeEngine&                      serEng);
+
+    static void           loadObject(RefHashTableOf<ComplexTypeInfo>**       tempObjToRead
+                                   , int                                     initSize
+                                   , bool                                    toAdopt
+                                   , XSerializeEngine&                       serEng);
+
+    static void           storeObject(RefHashTableOf<XercesGroupInfo>* const tempObjToWrite
+                                    , XSerializeEngine&                      serEng);
+
+    static void           loadObject(RefHashTableOf<XercesGroupInfo>**       tempObjToRead
+                                   , int                                     initSize
+                                   , bool                                    toAdopt
+                                   , XSerializeEngine&                       serEng);
+
+    static void           storeObject(RefHashTableOf<XercesAttGroupInfo>* const tempObjToWrite
+                                    , XSerializeEngine&                         serEng);
+
+    static void           loadObject(RefHashTableOf<XercesAttGroupInfo>**       tempObjToRead
+                                   , int                                        initSize
+                                   , bool                                       toAdopt
+                                   , XSerializeEngine&                          serEng);
+
+    static void           storeObject(RefHashTableOf<XMLRefInfo>* const tempObjToWrite
+                                    , XSerializeEngine&                 serEng);
+
+    static void           loadObject(RefHashTableOf<XMLRefInfo>**       tempObjToRead
+                                   , int                                initSize
+                                   , bool                               toAdopt
+                                   , XSerializeEngine&                  serEng);
+
+    static void           storeObject(RefHashTableOf<DatatypeValidator>* const tempObjToWrite
+                                    , XSerializeEngine&                        serEng);
+
+    static void           loadObject(RefHashTableOf<DatatypeValidator>**       tempObjToRead
+                                   , int                                       initSize
+                                   , bool                                      toAdopt
+                                   , XSerializeEngine&                         serEng);
+
+    static void           storeObject(RefHashTableOf<Grammar>* const tempObjToWrite
+                                    , XSerializeEngine&              serEng);
+
+    static void           loadObject(RefHashTableOf<Grammar>**       tempObjToRead
+                                   , int                             initSize
+                                   , bool                            toAdopt
+                                   , XSerializeEngine&               serEng);
+
+    static void           storeObject(RefHashTableOf<XSAnnotation>* const tempObjToWrite
+                                    , XSerializeEngine&                   serEng);
+
+    static void           loadObject(RefHashTableOf<XSAnnotation>**  tempObjToRead
+                                   , int                             initSize
+                                   , bool                            toAdopt
+                                   , XSerializeEngine&               serEng);
+
+    /**********************************************************
+     *
+     * RefHash2KeysTableOf
+     *
+     *   SchemaAttDef
+     *   ElemVector
+     *
+     ***********************************************************/
+    static void           storeObject(RefHash2KeysTableOf<SchemaAttDef>* const tempObjToWrite
+                                    , XSerializeEngine&                        serEng);
+
+    static void           loadObject(RefHash2KeysTableOf<SchemaAttDef>**       tempObjToRead
+                                   , int                                       initSize
+                                   , bool                                      toAdopt
+                                   , XSerializeEngine&                         serEng);
+
+    static void           storeObject(RefHash2KeysTableOf<ElemVector>* const tempObjToWrite
+                                    , XSerializeEngine&                      serEng);
+
+    static void           loadObject(RefHash2KeysTableOf<ElemVector>**       tempObjToRead
+                                   , int                                     initSize
+                                   , bool                                    toAdopt
+                                   , XSerializeEngine&                       serEng);
+
+    /**********************************************************
+     *
+     * RefHash3KeysIdPool
+     *
+     *   SchemaElementDecl
+     *
+     ***********************************************************/
+    static void           storeObject(RefHash3KeysIdPool<SchemaElementDecl>* const tempObjToWrite
+                                    , XSerializeEngine&                            serEng);
+
+    static void           loadObject(RefHash3KeysIdPool<SchemaElementDecl>**       tempObjToRead
+                                   , int                                           initSize
+                                   , bool                                          toAdopt
+                                   , int                                           initSize2
+                                   , XSerializeEngine&                             serEng);
+
+    /**********************************************************
+     *
+     * NameIdPool
+     *
+     *   DTDElementDecl
+     *   DTDEntityDecl
+     *   XMLNotationDecl
+     *
+     ***********************************************************/
+    static void           storeObject(NameIdPool<DTDElementDecl>* const tempObjToWrite
+                                    , XSerializeEngine&                 serEng);
+
+    static void           loadObject(NameIdPool<DTDElementDecl>**       tempObjToRead
+                                   , int                                initSize
+                                   , int                                initSize2
+                                   , XSerializeEngine&                  serEng);
+
+    static void           storeObject(NameIdPool<DTDEntityDecl>* const tempObjToWrite
+                                    , XSerializeEngine&                serEng);
+
+    static void           loadObject(NameIdPool<DTDEntityDecl>**       tempObjToRead
+                                   , int                               initSize
+                                   , int                               initSize2
+                                   , XSerializeEngine&                 serEng);
+
+    static void           storeObject(NameIdPool<XMLNotationDecl>* const tempObjToWrite
+                                    , XSerializeEngine&                  serEng);
+
+    static void           loadObject(NameIdPool<XMLNotationDecl>**      tempObjToRead
+                                   , int                                initSize
+                                   , int                                initSize2
+                                   , XSerializeEngine&                  serEng);
+
+private:
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+	~XTemplateSerializer();
+    XTemplateSerializer();
+    XTemplateSerializer(const XTemplateSerializer&);
+	XTemplateSerializer& operator=(const XTemplateSerializer&);
+
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/internal/XProtoType.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/internal/XProtoType.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/internal/XProtoType.hpp	(revision 2674)
@@ -0,0 +1,94 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: XProtoType.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+#if !defined(XPROTOTYPE_HPP)
+#define XPROTOTYPE_HPP
+
+#include <xercesc/util/PlatformUtils.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class XSerializeEngine;
+class XSerializable;
+
+class XMLUTIL_EXPORT XProtoType
+{
+public:
+
+           void       store(XSerializeEngine& serEng) const;
+
+    static void        load(XSerializeEngine&          serEng
+                          , XMLByte*          const    name
+                          , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+                          );
+
+    // -------------------------------------------------------------------------------
+    //  data
+    //
+    //  fClassName: 
+    //            name of the XSerializable derivatives
+    //
+    //  fCreateObject:
+    //            pointer to the factory method (createObject()) 
+    //            of the XSerializable derivatives
+    //
+    // -------------------------------------------------------------------------------
+
+    XMLByte*          fClassName;
+
+    XSerializable*    (*fCreateObject)(MemoryManager*);
+
+};
+
+#define DECL_XPROTOTYPE(class_name) \
+static  XProtoType        class##class_name;                   \
+static  XSerializable*    createObject(MemoryManager* manager);
+
+/***
+ * For non-abstract class
+ ***/
+#define IMPL_XPROTOTYPE_TOCREATE(class_name) \
+IMPL_XPROTOTYPE_INSTANCE(class_name) \
+XSerializable* class_name::createObject(MemoryManager* manager) \
+{return new (manager) class_name(manager);}
+
+/***
+* For abstract class
+ ***/
+#define IMPL_XPROTOTYPE_NOCREATE(class_name) \
+IMPL_XPROTOTYPE_INSTANCE(class_name) \
+XSerializable* class_name::createObject(MemoryManager*) \
+{return 0;}
+
+
+/***
+ * Helper Macro 
+ ***/
+#define XPROTOTYPE_CLASS(class_name) ((XProtoType*)(&class_name::class##class_name))
+
+#define IMPL_XPROTOTYPE_INSTANCE(class_name) \
+XProtoType class_name::class##class_name = \
+{(XMLByte*) #class_name, class_name::createObject };
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/internal/XSerializable.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/internal/XSerializable.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/internal/XSerializable.hpp	(revision 2674)
@@ -0,0 +1,117 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: XSerializable.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(XSERIALIZABLE_HPP)
+#define XSERIALIZABLE_HPP
+
+#include <xercesc/internal/XSerializeEngine.hpp>
+#include <xercesc/internal/XProtoType.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class XMLUTIL_EXPORT XSerializable
+{
+public :
+
+    // -----------------------------------------------------------------------
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+    virtual ~XSerializable() {} ;
+
+    // -----------------------------------------------------------------------
+    //  Serialization Interface
+    // -----------------------------------------------------------------------   
+    virtual bool        isSerializable()               const = 0;
+
+    virtual void        serialize(XSerializeEngine& )        = 0;
+
+    virtual XProtoType* getProtoType()                 const = 0;
+
+protected:
+    XSerializable() {}
+    XSerializable(const XSerializable& ) {}             
+
+private:
+    // -----------------------------------------------------------------------
+    //  Unimplemented assignment operator
+    // -----------------------------------------------------------------------
+	XSerializable& operator=(const XSerializable&);
+
+};
+
+inline void XSerializable::serialize(XSerializeEngine& )
+{
+}
+
+/***
+ * Macro to be included in XSerializable derivatives'
+ * declaration's public section
+ ***/
+#define DECL_XSERIALIZABLE(class_name) \
+public: \
+\
+DECL_XPROTOTYPE(class_name) \
+\
+virtual bool                    isSerializable()                  const ;  \
+virtual XProtoType*             getProtoType()                    const;   \
+virtual void                    serialize(XSerializeEngine&); \
+\
+inline friend XSerializeEngine& operator>>(XSerializeEngine& serEng  \
+                                         , class_name*&      objPtr) \
+{objPtr = (class_name*) serEng.read(XPROTOTYPE_CLASS(class_name));   \
+ return serEng; \
+};
+	
+/***
+ * Macro to be included in the implementation file
+ * of XSerializable derivatives' which is instantiable
+ ***/
+#define IMPL_XSERIALIZABLE_TOCREATE(class_name) \
+IMPL_XPROTOTYPE_TOCREATE(class_name) \
+IMPL_XSERIAL(class_name)
+
+/***
+ * Macro to be included in the implementation file
+ * of XSerializable derivatives' which is UN-instantiable
+ ***/
+#define IMPL_XSERIALIZABLE_NOCREATE(class_name) \
+IMPL_XPROTOTYPE_NOCREATE(class_name) \
+IMPL_XSERIAL(class_name)
+
+/***
+ * Helper Macro 
+ ***/
+#define IMPL_XSERIAL(class_name) \
+bool        class_name::isSerializable() const \
+{return true; } \
+XProtoType* class_name::getProtoType()   const \
+{return XPROTOTYPE_CLASS(class_name); } 
+
+#define IS_EQUIVALENT(lptr, rptr) \
+    if (lptr == rptr)             \
+        return true;              \
+    if (( lptr && !rptr) || (!lptr &&  rptr))  \
+        return false;
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
+
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/internal/IANAEncodings.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/internal/IANAEncodings.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/internal/IANAEncodings.hpp	(revision 2674)
@@ -0,0 +1,813 @@
+#if !defined(IANAENCODINGS_HPP)
+#define IANAENCODINGS_HPP
+
+#include <xercesc/util/XercesDefs.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+// ----------------------------------------------------------------
+//  This file was generated from the IANA charset source.
+//  so do not edit this file directly!!
+// ----------------------------------------------------------------
+
+const XMLCh gEncodingArray[][46] =
+{
+    { 0x0041,0x004E,0x0053,0x0049,0x005F,0x0058,0x0033,0x002E,0x0034,0x002D,0x0031,0x0039,0x0036,0x0038,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0036,0x00 }
+  , { 0x0041,0x004E,0x0053,0x0049,0x005F,0x0058,0x0033,0x002E,0x0034,0x002D,0x0031,0x0039,0x0038,0x0036,0x00 }
+  , { 0x0049,0x0053,0x004F,0x005F,0x0036,0x0034,0x0036,0x002E,0x0069,0x0072,0x0076,0x003A,0x0031,0x0039,0x0039,0x0031,0x00 }
+  , { 0x0041,0x0053,0x0043,0x0049,0x0049,0x00 }
+  , { 0x0049,0x0053,0x004F,0x0036,0x0034,0x0036,0x002D,0x0055,0x0053,0x00 }
+  , { 0x0055,0x0053,0x002D,0x0041,0x0053,0x0043,0x0049,0x0049,0x00 }
+  , { 0x0075,0x0073,0x00 }
+  , { 0x0049,0x0042,0x004D,0x0033,0x0036,0x0037,0x00 }
+  , { 0x0063,0x0070,0x0033,0x0036,0x0037,0x00 }
+  , { 0x0063,0x0073,0x0041,0x0053,0x0043,0x0049,0x0049,0x00 }
+  , { 0x0049,0x0053,0x004F,0x002D,0x0031,0x0030,0x0036,0x0034,0x0036,0x002D,0x0055,0x0054,0x0046,0x002D,0x0031,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0031,0x0030,0x0036,0x0034,0x0036,0x0055,0x0054,0x0046,0x0031,0x00 }
+  , { 0x0049,0x0053,0x004F,0x005F,0x0036,0x0034,0x0036,0x002E,0x0062,0x0061,0x0073,0x0069,0x0063,0x003A,0x0031,0x0039,0x0038,0x0033,0x00 }
+  , { 0x0072,0x0065,0x0066,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0036,0x0034,0x0036,0x0062,0x0061,0x0073,0x0069,0x0063,0x0031,0x0039,0x0038,0x0033,0x00 }
+  , { 0x0049,0x004E,0x0056,0x0041,0x0052,0x0049,0x0041,0x004E,0x0054,0x00 }
+  , { 0x0063,0x0073,0x0049,0x004E,0x0056,0x0041,0x0052,0x0049,0x0041,0x004E,0x0054,0x00 }
+  , { 0x0049,0x0053,0x004F,0x005F,0x0036,0x0034,0x0036,0x002E,0x0069,0x0072,0x0076,0x003A,0x0031,0x0039,0x0038,0x0033,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0032,0x00 }
+  , { 0x0069,0x0072,0x0076,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0032,0x0049,0x006E,0x0074,0x006C,0x0052,0x0065,0x0066,0x0056,0x0065,0x0072,0x0073,0x0069,0x006F,0x006E,0x00 }
+  , { 0x0042,0x0053,0x005F,0x0034,0x0037,0x0033,0x0030,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0034,0x00 }
+  , { 0x0049,0x0053,0x004F,0x0036,0x0034,0x0036,0x002D,0x0047,0x0042,0x00 }
+  , { 0x0067,0x0062,0x00 }
+  , { 0x0075,0x006B,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0034,0x0055,0x006E,0x0069,0x0074,0x0065,0x0064,0x004B,0x0069,0x006E,0x0067,0x0064,0x006F,0x006D,0x00 }
+  , { 0x004E,0x0041,0x0054,0x0053,0x002D,0x0053,0x0045,0x0046,0x0049,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0038,0x002D,0x0031,0x00 }
+  , { 0x0063,0x0073,0x004E,0x0041,0x0054,0x0053,0x0053,0x0045,0x0046,0x0049,0x00 }
+  , { 0x004E,0x0041,0x0054,0x0053,0x002D,0x0053,0x0045,0x0046,0x0049,0x002D,0x0041,0x0044,0x0044,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0038,0x002D,0x0032,0x00 }
+  , { 0x0063,0x0073,0x004E,0x0041,0x0054,0x0053,0x0053,0x0045,0x0046,0x0049,0x0041,0x0044,0x0044,0x00 }
+  , { 0x004E,0x0041,0x0054,0x0053,0x002D,0x0044,0x0041,0x004E,0x004F,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0039,0x002D,0x0031,0x00 }
+  , { 0x0063,0x0073,0x004E,0x0041,0x0054,0x0053,0x0044,0x0041,0x004E,0x004F,0x00 }
+  , { 0x004E,0x0041,0x0054,0x0053,0x002D,0x0044,0x0041,0x004E,0x004F,0x002D,0x0041,0x0044,0x0044,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0039,0x002D,0x0032,0x00 }
+  , { 0x0063,0x0073,0x004E,0x0041,0x0054,0x0053,0x0044,0x0041,0x004E,0x004F,0x0041,0x0044,0x0044,0x00 }
+  , { 0x0053,0x0045,0x004E,0x005F,0x0038,0x0035,0x0030,0x0032,0x0030,0x0030,0x005F,0x0042,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0030,0x00 }
+  , { 0x0046,0x0049,0x00 }
+  , { 0x0049,0x0053,0x004F,0x0036,0x0034,0x0036,0x002D,0x0046,0x0049,0x00 }
+  , { 0x0049,0x0053,0x004F,0x0036,0x0034,0x0036,0x002D,0x0053,0x0045,0x00 }
+  , { 0x0073,0x0065,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0031,0x0030,0x0053,0x0077,0x0065,0x0064,0x0069,0x0073,0x0068,0x00 }
+  , { 0x0053,0x0045,0x004E,0x005F,0x0038,0x0035,0x0030,0x0032,0x0030,0x0030,0x005F,0x0043,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0031,0x00 }
+  , { 0x0049,0x0053,0x004F,0x0036,0x0034,0x0036,0x002D,0x0053,0x0045,0x0032,0x00 }
+  , { 0x0073,0x0065,0x0032,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0031,0x0031,0x0053,0x0077,0x0065,0x0064,0x0069,0x0073,0x0068,0x0046,0x006F,0x0072,0x004E,0x0061,0x006D,0x0065,0x0073,0x00 }
+  , { 0x004B,0x0053,0x005F,0x0043,0x005F,0x0035,0x0036,0x0030,0x0031,0x002D,0x0031,0x0039,0x0038,0x0037,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0034,0x0039,0x00 }
+  , { 0x004B,0x0053,0x005F,0x0043,0x005F,0x0035,0x0036,0x0030,0x0031,0x002D,0x0031,0x0039,0x0038,0x0039,0x00 }
+  , { 0x004B,0x0053,0x0043,0x005F,0x0035,0x0036,0x0030,0x0031,0x00 }
+  , { 0x006B,0x006F,0x0072,0x0065,0x0061,0x006E,0x00 }
+  , { 0x0063,0x0073,0x004B,0x0053,0x0043,0x0035,0x0036,0x0030,0x0031,0x0031,0x0039,0x0038,0x0037,0x00 }
+  , { 0x0049,0x0053,0x004F,0x002D,0x0032,0x0030,0x0032,0x0032,0x002D,0x004B,0x0052,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0032,0x0030,0x0032,0x0032,0x004B,0x0052,0x00 }
+  , { 0x0045,0x0055,0x0043,0x002D,0x004B,0x0052,0x00 }
+  , { 0x0063,0x0073,0x0045,0x0055,0x0043,0x004B,0x0052,0x00 }
+  , { 0x0049,0x0053,0x004F,0x002D,0x0032,0x0030,0x0032,0x0032,0x002D,0x004A,0x0050,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0032,0x0030,0x0032,0x0032,0x004A,0x0050,0x00 }
+  , { 0x0049,0x0053,0x004F,0x002D,0x0032,0x0030,0x0032,0x0032,0x002D,0x004A,0x0050,0x002D,0x0032,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0032,0x0030,0x0032,0x0032,0x004A,0x0050,0x0032,0x00 }
+  , { 0x0049,0x0053,0x004F,0x002D,0x0032,0x0030,0x0032,0x0032,0x002D,0x0043,0x004E,0x00 }
+  , { 0x0049,0x0053,0x004F,0x002D,0x0032,0x0030,0x0032,0x0032,0x002D,0x0043,0x004E,0x002D,0x0045,0x0058,0x0054,0x00 }
+  , { 0x004A,0x0049,0x0053,0x005F,0x0043,0x0036,0x0032,0x0032,0x0030,0x002D,0x0031,0x0039,0x0036,0x0039,0x002D,0x006A,0x0070,0x00 }
+  , { 0x004A,0x0049,0x0053,0x005F,0x0043,0x0036,0x0032,0x0032,0x0030,0x002D,0x0031,0x0039,0x0036,0x0039,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0033,0x00 }
+  , { 0x006B,0x0061,0x0074,0x0061,0x006B,0x0061,0x006E,0x0061,0x00 }
+  , { 0x0078,0x0030,0x0032,0x0030,0x0031,0x002D,0x0037,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0031,0x0033,0x004A,0x0049,0x0053,0x0043,0x0036,0x0032,0x0032,0x0030,0x006A,0x0070,0x00 }
+  , { 0x004A,0x0049,0x0053,0x005F,0x0043,0x0036,0x0032,0x0032,0x0030,0x002D,0x0031,0x0039,0x0036,0x0039,0x002D,0x0072,0x006F,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0034,0x00 }
+  , { 0x006A,0x0070,0x00 }
+  , { 0x0049,0x0053,0x004F,0x0036,0x0034,0x0036,0x002D,0x004A,0x0050,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0031,0x0034,0x004A,0x0049,0x0053,0x0043,0x0036,0x0032,0x0032,0x0030,0x0072,0x006F,0x00 }
+  , { 0x0049,0x0054,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0035,0x00 }
+  , { 0x0049,0x0053,0x004F,0x0036,0x0034,0x0036,0x002D,0x0049,0x0054,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0031,0x0035,0x0049,0x0074,0x0061,0x006C,0x0069,0x0061,0x006E,0x00 }
+  , { 0x0050,0x0054,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0036,0x00 }
+  , { 0x0049,0x0053,0x004F,0x0036,0x0034,0x0036,0x002D,0x0050,0x0054,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0031,0x0036,0x0050,0x006F,0x0072,0x0074,0x0075,0x0067,0x0075,0x0065,0x0073,0x0065,0x00 }
+  , { 0x0045,0x0053,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0037,0x00 }
+  , { 0x0049,0x0053,0x004F,0x0036,0x0034,0x0036,0x002D,0x0045,0x0053,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0031,0x0037,0x0053,0x0070,0x0061,0x006E,0x0069,0x0073,0x0068,0x00 }
+  , { 0x0067,0x0072,0x0065,0x0065,0x006B,0x0037,0x002D,0x006F,0x006C,0x0064,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0038,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0031,0x0038,0x0047,0x0072,0x0065,0x0065,0x006B,0x0037,0x004F,0x006C,0x0064,0x00 }
+  , { 0x006C,0x0061,0x0074,0x0069,0x006E,0x002D,0x0067,0x0072,0x0065,0x0065,0x006B,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0039,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0031,0x0039,0x004C,0x0061,0x0074,0x0069,0x006E,0x0047,0x0072,0x0065,0x0065,0x006B,0x00 }
+  , { 0x0044,0x0049,0x004E,0x005F,0x0036,0x0036,0x0030,0x0030,0x0033,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0032,0x0031,0x00 }
+  , { 0x0064,0x0065,0x00 }
+  , { 0x0049,0x0053,0x004F,0x0036,0x0034,0x0036,0x002D,0x0044,0x0045,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0032,0x0031,0x0047,0x0065,0x0072,0x006D,0x0061,0x006E,0x00 }
+  , { 0x004E,0x0046,0x005F,0x005A,0x005F,0x0036,0x0032,0x002D,0x0030,0x0031,0x0030,0x005F,0x0028,0x0031,0x0039,0x0037,0x0033,0x0029,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0032,0x0035,0x00 }
+  , { 0x0049,0x0053,0x004F,0x0036,0x0034,0x0036,0x002D,0x0046,0x0052,0x0031,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0032,0x0035,0x0046,0x0072,0x0065,0x006E,0x0063,0x0068,0x00 }
+  , { 0x004C,0x0061,0x0074,0x0069,0x006E,0x002D,0x0067,0x0072,0x0065,0x0065,0x006B,0x002D,0x0031,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0032,0x0037,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0032,0x0037,0x004C,0x0061,0x0074,0x0069,0x006E,0x0047,0x0072,0x0065,0x0065,0x006B,0x0031,0x00 }
+  , { 0x0049,0x0053,0x004F,0x005F,0x0035,0x0034,0x0032,0x0037,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0033,0x0037,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0035,0x0034,0x0032,0x0037,0x0043,0x0079,0x0072,0x0069,0x006C,0x006C,0x0069,0x0063,0x00 }
+  , { 0x004A,0x0049,0x0053,0x005F,0x0043,0x0036,0x0032,0x0032,0x0036,0x002D,0x0031,0x0039,0x0037,0x0038,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0034,0x0032,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0034,0x0032,0x004A,0x0049,0x0053,0x0043,0x0036,0x0032,0x0032,0x0036,0x0031,0x0039,0x0037,0x0038,0x00 }
+  , { 0x0042,0x0053,0x005F,0x0076,0x0069,0x0065,0x0077,0x0064,0x0061,0x0074,0x0061,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0034,0x0037,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0034,0x0037,0x0042,0x0053,0x0056,0x0069,0x0065,0x0077,0x0064,0x0061,0x0074,0x0061,0x00 }
+  , { 0x0049,0x004E,0x0049,0x0053,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0034,0x0039,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0034,0x0039,0x0049,0x004E,0x0049,0x0053,0x00 }
+  , { 0x0049,0x004E,0x0049,0x0053,0x002D,0x0038,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0035,0x0030,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0035,0x0030,0x0049,0x004E,0x0049,0x0053,0x0038,0x00 }
+  , { 0x0049,0x004E,0x0049,0x0053,0x002D,0x0063,0x0079,0x0072,0x0069,0x006C,0x006C,0x0069,0x0063,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0035,0x0031,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0035,0x0031,0x0049,0x004E,0x0049,0x0053,0x0043,0x0079,0x0072,0x0069,0x006C,0x006C,0x0069,0x0063,0x00 }
+  , { 0x0049,0x0053,0x004F,0x005F,0x0035,0x0034,0x0032,0x0037,0x003A,0x0031,0x0039,0x0038,0x0031,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0035,0x0034,0x00 }
+  , { 0x0049,0x0053,0x004F,0x0035,0x0034,0x0032,0x0037,0x0043,0x0079,0x0072,0x0069,0x006C,0x006C,0x0069,0x0063,0x0031,0x0039,0x0038,0x0031,0x00 }
+  , { 0x0049,0x0053,0x004F,0x005F,0x0035,0x0034,0x0032,0x0038,0x003A,0x0031,0x0039,0x0038,0x0030,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0035,0x0035,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0035,0x0034,0x0032,0x0038,0x0047,0x0072,0x0065,0x0065,0x006B,0x00 }
+  , { 0x0047,0x0042,0x005F,0x0031,0x0039,0x0038,0x0038,0x002D,0x0038,0x0030,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0035,0x0037,0x00 }
+  , { 0x0063,0x006E,0x00 }
+  , { 0x0049,0x0053,0x004F,0x0036,0x0034,0x0036,0x002D,0x0043,0x004E,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0035,0x0037,0x0047,0x0042,0x0031,0x0039,0x0038,0x0038,0x00 }
+  , { 0x0047,0x0042,0x005F,0x0032,0x0033,0x0031,0x0032,0x002D,0x0038,0x0030,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0035,0x0038,0x00 }
+  , { 0x0063,0x0068,0x0069,0x006E,0x0065,0x0073,0x0065,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0035,0x0038,0x0047,0x0042,0x0032,0x0033,0x0031,0x0032,0x0038,0x0030,0x00 }
+  , { 0x004E,0x0053,0x005F,0x0034,0x0035,0x0035,0x0031,0x002D,0x0031,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0036,0x0030,0x00 }
+  , { 0x0049,0x0053,0x004F,0x0036,0x0034,0x0036,0x002D,0x004E,0x004F,0x00 }
+  , { 0x006E,0x006F,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0036,0x0030,0x0044,0x0061,0x006E,0x0069,0x0073,0x0068,0x004E,0x006F,0x0072,0x0077,0x0065,0x0067,0x0069,0x0061,0x006E,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0036,0x0030,0x004E,0x006F,0x0072,0x0077,0x0065,0x0067,0x0069,0x0061,0x006E,0x0031,0x00 }
+  , { 0x004E,0x0053,0x005F,0x0034,0x0035,0x0035,0x0031,0x002D,0x0032,0x00 }
+  , { 0x0049,0x0053,0x004F,0x0036,0x0034,0x0036,0x002D,0x004E,0x004F,0x0032,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0036,0x0031,0x00 }
+  , { 0x006E,0x006F,0x0032,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0036,0x0031,0x004E,0x006F,0x0072,0x0077,0x0065,0x0067,0x0069,0x0061,0x006E,0x0032,0x00 }
+  , { 0x004E,0x0046,0x005F,0x005A,0x005F,0x0036,0x0032,0x002D,0x0030,0x0031,0x0030,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0036,0x0039,0x00 }
+  , { 0x0049,0x0053,0x004F,0x0036,0x0034,0x0036,0x002D,0x0046,0x0052,0x00 }
+  , { 0x0066,0x0072,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0036,0x0039,0x0046,0x0072,0x0065,0x006E,0x0063,0x0068,0x00 }
+  , { 0x0076,0x0069,0x0064,0x0065,0x006F,0x0074,0x0065,0x0078,0x002D,0x0073,0x0075,0x0070,0x0070,0x006C,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0037,0x0030,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0037,0x0030,0x0056,0x0069,0x0064,0x0065,0x006F,0x0074,0x0065,0x0078,0x0053,0x0075,0x0070,0x0070,0x0031,0x00 }
+  , { 0x0050,0x0054,0x0032,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0038,0x0034,0x00 }
+  , { 0x0049,0x0053,0x004F,0x0036,0x0034,0x0036,0x002D,0x0050,0x0054,0x0032,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0038,0x0034,0x0050,0x006F,0x0072,0x0074,0x0075,0x0067,0x0075,0x0065,0x0073,0x0065,0x0032,0x00 }
+  , { 0x0045,0x0053,0x0032,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0038,0x0035,0x00 }
+  , { 0x0049,0x0053,0x004F,0x0036,0x0034,0x0036,0x002D,0x0045,0x0053,0x0032,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0038,0x0035,0x0053,0x0070,0x0061,0x006E,0x0069,0x0073,0x0068,0x0032,0x00 }
+  , { 0x004D,0x0053,0x005A,0x005F,0x0037,0x0037,0x0039,0x0035,0x002E,0x0033,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0038,0x0036,0x00 }
+  , { 0x0049,0x0053,0x004F,0x0036,0x0034,0x0036,0x002D,0x0048,0x0055,0x00 }
+  , { 0x0068,0x0075,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0038,0x0036,0x0048,0x0075,0x006E,0x0067,0x0061,0x0072,0x0069,0x0061,0x006E,0x00 }
+  , { 0x004A,0x0049,0x0053,0x005F,0x0043,0x0036,0x0032,0x0032,0x0036,0x002D,0x0031,0x0039,0x0038,0x0033,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0038,0x0037,0x00 }
+  , { 0x0078,0x0030,0x0032,0x0030,0x0038,0x00 }
+  , { 0x004A,0x0049,0x0053,0x005F,0x0058,0x0030,0x0032,0x0030,0x0038,0x002D,0x0031,0x0039,0x0038,0x0033,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0038,0x0037,0x004A,0x0049,0x0053,0x0058,0x0030,0x0032,0x0030,0x0038,0x00 }
+  , { 0x0067,0x0072,0x0065,0x0065,0x006B,0x0037,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0038,0x0038,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0038,0x0038,0x0047,0x0072,0x0065,0x0065,0x006B,0x0037,0x00 }
+  , { 0x0041,0x0053,0x004D,0x004F,0x005F,0x0034,0x0034,0x0039,0x00 }
+  , { 0x0049,0x0053,0x004F,0x005F,0x0039,0x0030,0x0033,0x0036,0x00 }
+  , { 0x0061,0x0072,0x0061,0x0062,0x0069,0x0063,0x0037,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0038,0x0039,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0038,0x0039,0x0041,0x0053,0x004D,0x004F,0x0034,0x0034,0x0039,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0039,0x0030,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0039,0x0030,0x00 }
+  , { 0x004A,0x0049,0x0053,0x005F,0x0043,0x0036,0x0032,0x0032,0x0039,0x002D,0x0031,0x0039,0x0038,0x0034,0x002D,0x0061,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0039,0x0031,0x00 }
+  , { 0x006A,0x0070,0x002D,0x006F,0x0063,0x0072,0x002D,0x0061,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0039,0x0031,0x004A,0x0049,0x0053,0x0043,0x0036,0x0032,0x0032,0x0039,0x0031,0x0039,0x0038,0x0034,0x0061,0x00 }
+  , { 0x004A,0x0049,0x0053,0x005F,0x0043,0x0036,0x0032,0x0032,0x0039,0x002D,0x0031,0x0039,0x0038,0x0034,0x002D,0x0062,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0039,0x0032,0x00 }
+  , { 0x0049,0x0053,0x004F,0x0036,0x0034,0x0036,0x002D,0x004A,0x0050,0x002D,0x004F,0x0043,0x0052,0x002D,0x0042,0x00 }
+  , { 0x006A,0x0070,0x002D,0x006F,0x0063,0x0072,0x002D,0x0062,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0039,0x0032,0x004A,0x0049,0x0053,0x0043,0x0036,0x0032,0x0039,0x0039,0x0031,0x0039,0x0038,0x0034,0x0062,0x00 }
+  , { 0x004A,0x0049,0x0053,0x005F,0x0043,0x0036,0x0032,0x0032,0x0039,0x002D,0x0031,0x0039,0x0038,0x0034,0x002D,0x0062,0x002D,0x0061,0x0064,0x0064,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0039,0x0033,0x00 }
+  , { 0x006A,0x0070,0x002D,0x006F,0x0063,0x0072,0x002D,0x0062,0x002D,0x0061,0x0064,0x0064,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0039,0x0033,0x004A,0x0049,0x0053,0x0036,0x0032,0x0032,0x0039,0x0031,0x0039,0x0038,0x0034,0x0062,0x0061,0x0064,0x0064,0x00 }
+  , { 0x004A,0x0049,0x0053,0x005F,0x0043,0x0036,0x0032,0x0032,0x0039,0x002D,0x0031,0x0039,0x0038,0x0034,0x002D,0x0068,0x0061,0x006E,0x0064,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0039,0x0034,0x00 }
+  , { 0x006A,0x0070,0x002D,0x006F,0x0063,0x0072,0x002D,0x0068,0x0061,0x006E,0x0064,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0039,0x0034,0x004A,0x0049,0x0053,0x0036,0x0032,0x0032,0x0039,0x0031,0x0039,0x0038,0x0034,0x0068,0x0061,0x006E,0x0064,0x00 }
+  , { 0x004A,0x0049,0x0053,0x005F,0x0043,0x0036,0x0032,0x0032,0x0039,0x002D,0x0031,0x0039,0x0038,0x0034,0x002D,0x0068,0x0061,0x006E,0x0064,0x002D,0x0061,0x0064,0x0064,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0039,0x0035,0x00 }
+  , { 0x006A,0x0070,0x002D,0x006F,0x0063,0x0072,0x002D,0x0068,0x0061,0x006E,0x0064,0x002D,0x0061,0x0064,0x0064,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0039,0x0035,0x004A,0x0049,0x0053,0x0036,0x0032,0x0032,0x0039,0x0031,0x0039,0x0038,0x0034,0x0068,0x0061,0x006E,0x0064,0x0061,0x0064,0x0064,0x00 }
+  , { 0x004A,0x0049,0x0053,0x005F,0x0043,0x0036,0x0032,0x0032,0x0039,0x002D,0x0031,0x0039,0x0038,0x0034,0x002D,0x006B,0x0061,0x006E,0x0061,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0039,0x0036,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0039,0x0036,0x004A,0x0049,0x0053,0x0043,0x0036,0x0032,0x0032,0x0039,0x0031,0x0039,0x0038,0x0034,0x006B,0x0061,0x006E,0x0061,0x00 }
+  , { 0x0049,0x0053,0x004F,0x005F,0x0032,0x0030,0x0033,0x0033,0x002D,0x0031,0x0039,0x0038,0x0033,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0039,0x0038,0x00 }
+  , { 0x0065,0x0031,0x0033,0x0062,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0032,0x0030,0x0033,0x0033,0x00 }
+  , { 0x0041,0x004E,0x0053,0x0049,0x005F,0x0058,0x0033,0x002E,0x0031,0x0031,0x0030,0x002D,0x0031,0x0039,0x0038,0x0033,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0039,0x0039,0x00 }
+  , { 0x0043,0x0053,0x0041,0x005F,0x0054,0x0035,0x0030,0x0030,0x002D,0x0031,0x0039,0x0038,0x0033,0x00 }
+  , { 0x004E,0x0041,0x0050,0x004C,0x0050,0x0053,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0039,0x0039,0x004E,0x0041,0x0050,0x004C,0x0050,0x0053,0x00 }
+  , { 0x0049,0x0053,0x004F,0x005F,0x0038,0x0038,0x0035,0x0039,0x002D,0x0031,0x003A,0x0031,0x0039,0x0038,0x0037,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0030,0x0030,0x00 }
+  , { 0x0049,0x0053,0x004F,0x005F,0x0038,0x0038,0x0035,0x0039,0x002D,0x0031,0x00 }
+  , { 0x0049,0x0053,0x004F,0x002D,0x0038,0x0038,0x0035,0x0039,0x002D,0x0031,0x00 }
+  , { 0x006C,0x0061,0x0074,0x0069,0x006E,0x0031,0x00 }
+  , { 0x006C,0x0031,0x00 }
+  , { 0x0049,0x0042,0x004D,0x0038,0x0031,0x0039,0x00 }
+  , { 0x0043,0x0050,0x0038,0x0031,0x0039,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x004C,0x0061,0x0074,0x0069,0x006E,0x0031,0x00 }
+  , { 0x0049,0x0053,0x004F,0x005F,0x0038,0x0038,0x0035,0x0039,0x002D,0x0032,0x003A,0x0031,0x0039,0x0038,0x0037,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0030,0x0031,0x00 }
+  , { 0x0049,0x0053,0x004F,0x005F,0x0038,0x0038,0x0035,0x0039,0x002D,0x0032,0x00 }
+  , { 0x0049,0x0053,0x004F,0x002D,0x0038,0x0038,0x0035,0x0039,0x002D,0x0032,0x00 }
+  , { 0x006C,0x0061,0x0074,0x0069,0x006E,0x0032,0x00 }
+  , { 0x006C,0x0032,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x004C,0x0061,0x0074,0x0069,0x006E,0x0032,0x00 }
+  , { 0x0054,0x002E,0x0036,0x0031,0x002D,0x0037,0x0062,0x0069,0x0074,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0030,0x0032,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0031,0x0030,0x0032,0x0054,0x0036,0x0031,0x0037,0x0062,0x0069,0x0074,0x00 }
+  , { 0x0054,0x002E,0x0036,0x0031,0x002D,0x0038,0x0062,0x0069,0x0074,0x00 }
+  , { 0x0054,0x002E,0x0036,0x0031,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0030,0x0033,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0031,0x0030,0x0033,0x0054,0x0036,0x0031,0x0038,0x0062,0x0069,0x0074,0x00 }
+  , { 0x0049,0x0053,0x004F,0x005F,0x0038,0x0038,0x0035,0x0039,0x002D,0x0033,0x003A,0x0031,0x0039,0x0038,0x0038,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0030,0x0039,0x00 }
+  , { 0x0049,0x0053,0x004F,0x005F,0x0038,0x0038,0x0035,0x0039,0x002D,0x0033,0x00 }
+  , { 0x0049,0x0053,0x004F,0x002D,0x0038,0x0038,0x0035,0x0039,0x002D,0x0033,0x00 }
+  , { 0x006C,0x0061,0x0074,0x0069,0x006E,0x0033,0x00 }
+  , { 0x006C,0x0033,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x004C,0x0061,0x0074,0x0069,0x006E,0x0033,0x00 }
+  , { 0x0049,0x0053,0x004F,0x005F,0x0038,0x0038,0x0035,0x0039,0x002D,0x0034,0x003A,0x0031,0x0039,0x0038,0x0038,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0031,0x0030,0x00 }
+  , { 0x0049,0x0053,0x004F,0x005F,0x0038,0x0038,0x0035,0x0039,0x002D,0x0034,0x00 }
+  , { 0x0049,0x0053,0x004F,0x002D,0x0038,0x0038,0x0035,0x0039,0x002D,0x0034,0x00 }
+  , { 0x006C,0x0061,0x0074,0x0069,0x006E,0x0034,0x00 }
+  , { 0x006C,0x0034,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x004C,0x0061,0x0074,0x0069,0x006E,0x0034,0x00 }
+  , { 0x0045,0x0043,0x004D,0x0041,0x002D,0x0063,0x0079,0x0072,0x0069,0x006C,0x006C,0x0069,0x0063,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0031,0x0031,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0031,0x0031,0x0031,0x0045,0x0043,0x004D,0x0041,0x0043,0x0079,0x0072,0x0069,0x006C,0x006C,0x0069,0x0063,0x00 }
+  , { 0x0043,0x0053,0x0041,0x005F,0x005A,0x0032,0x0034,0x0033,0x002E,0x0034,0x002D,0x0031,0x0039,0x0038,0x0035,0x002D,0x0031,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0032,0x0031,0x00 }
+  , { 0x0049,0x0053,0x004F,0x0036,0x0034,0x0036,0x002D,0x0043,0x0041,0x00 }
+  , { 0x0063,0x0073,0x0061,0x0037,0x002D,0x0031,0x00 }
+  , { 0x0063,0x0061,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0031,0x0032,0x0031,0x0043,0x0061,0x006E,0x0061,0x0064,0x0069,0x0061,0x006E,0x0031,0x00 }
+  , { 0x0043,0x0053,0x0041,0x005F,0x005A,0x0032,0x0034,0x0033,0x002E,0x0034,0x002D,0x0031,0x0039,0x0038,0x0035,0x002D,0x0032,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0032,0x0032,0x00 }
+  , { 0x0049,0x0053,0x004F,0x0036,0x0034,0x0036,0x002D,0x0043,0x0041,0x0032,0x00 }
+  , { 0x0063,0x0073,0x0061,0x0037,0x002D,0x0032,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0031,0x0032,0x0032,0x0043,0x0061,0x006E,0x0061,0x0064,0x0069,0x0061,0x006E,0x0032,0x00 }
+  , { 0x0043,0x0053,0x0041,0x005F,0x005A,0x0032,0x0034,0x0033,0x002E,0x0034,0x002D,0x0031,0x0039,0x0038,0x0035,0x002D,0x0067,0x0072,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0032,0x0033,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0031,0x0032,0x0033,0x0043,0x0053,0x0041,0x005A,0x0032,0x0034,0x0033,0x0034,0x0031,0x0039,0x0038,0x0035,0x0067,0x0072,0x00 }
+  , { 0x0049,0x0053,0x004F,0x005F,0x0038,0x0038,0x0035,0x0039,0x002D,0x0036,0x003A,0x0031,0x0039,0x0038,0x0037,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0032,0x0037,0x00 }
+  , { 0x0049,0x0053,0x004F,0x005F,0x0038,0x0038,0x0035,0x0039,0x002D,0x0036,0x00 }
+  , { 0x0049,0x0053,0x004F,0x002D,0x0038,0x0038,0x0035,0x0039,0x002D,0x0036,0x00 }
+  , { 0x0045,0x0043,0x004D,0x0041,0x002D,0x0031,0x0031,0x0034,0x00 }
+  , { 0x0041,0x0053,0x004D,0x004F,0x002D,0x0037,0x0030,0x0038,0x00 }
+  , { 0x0061,0x0072,0x0061,0x0062,0x0069,0x0063,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x004C,0x0061,0x0074,0x0069,0x006E,0x0041,0x0072,0x0061,0x0062,0x0069,0x0063,0x00 }
+  , { 0x0049,0x0053,0x004F,0x005F,0x0038,0x0038,0x0035,0x0039,0x002D,0x0036,0x002D,0x0045,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0038,0x0038,0x0035,0x0039,0x0036,0x0045,0x00 }
+  , { 0x0049,0x0053,0x004F,0x002D,0x0038,0x0038,0x0035,0x0039,0x002D,0x0036,0x002D,0x0045,0x00 }
+  , { 0x0049,0x0053,0x004F,0x005F,0x0038,0x0038,0x0035,0x0039,0x002D,0x0036,0x002D,0x0049,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0038,0x0038,0x0035,0x0039,0x0036,0x0049,0x00 }
+  , { 0x0049,0x0053,0x004F,0x002D,0x0038,0x0038,0x0035,0x0039,0x002D,0x0036,0x002D,0x0049,0x00 }
+  , { 0x0049,0x0053,0x004F,0x005F,0x0038,0x0038,0x0035,0x0039,0x002D,0x0037,0x003A,0x0031,0x0039,0x0038,0x0037,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0032,0x0036,0x00 }
+  , { 0x0049,0x0053,0x004F,0x005F,0x0038,0x0038,0x0035,0x0039,0x002D,0x0037,0x00 }
+  , { 0x0049,0x0053,0x004F,0x002D,0x0038,0x0038,0x0035,0x0039,0x002D,0x0037,0x00 }
+  , { 0x0045,0x004C,0x004F,0x0054,0x005F,0x0039,0x0032,0x0038,0x00 }
+  , { 0x0045,0x0043,0x004D,0x0041,0x002D,0x0031,0x0031,0x0038,0x00 }
+  , { 0x0067,0x0072,0x0065,0x0065,0x006B,0x00 }
+  , { 0x0067,0x0072,0x0065,0x0065,0x006B,0x0038,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x004C,0x0061,0x0074,0x0069,0x006E,0x0047,0x0072,0x0065,0x0065,0x006B,0x00 }
+  , { 0x0054,0x002E,0x0031,0x0030,0x0031,0x002D,0x0047,0x0032,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0032,0x0038,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0031,0x0032,0x0038,0x0054,0x0031,0x0030,0x0031,0x0047,0x0032,0x00 }
+  , { 0x0049,0x0053,0x004F,0x005F,0x0038,0x0038,0x0035,0x0039,0x002D,0x0038,0x003A,0x0031,0x0039,0x0038,0x0038,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0033,0x0038,0x00 }
+  , { 0x0049,0x0053,0x004F,0x005F,0x0038,0x0038,0x0035,0x0039,0x002D,0x0038,0x00 }
+  , { 0x0049,0x0053,0x004F,0x002D,0x0038,0x0038,0x0035,0x0039,0x002D,0x0038,0x00 }
+  , { 0x0068,0x0065,0x0062,0x0072,0x0065,0x0077,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x004C,0x0061,0x0074,0x0069,0x006E,0x0048,0x0065,0x0062,0x0072,0x0065,0x0077,0x00 }
+  , { 0x0049,0x0053,0x004F,0x005F,0x0038,0x0038,0x0035,0x0039,0x002D,0x0038,0x002D,0x0045,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0038,0x0038,0x0035,0x0039,0x0038,0x0045,0x00 }
+  , { 0x0049,0x0053,0x004F,0x002D,0x0038,0x0038,0x0035,0x0039,0x002D,0x0038,0x002D,0x0045,0x00 }
+  , { 0x0049,0x0053,0x004F,0x005F,0x0038,0x0038,0x0035,0x0039,0x002D,0x0038,0x002D,0x0049,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0038,0x0038,0x0035,0x0039,0x0038,0x0049,0x00 }
+  , { 0x0049,0x0053,0x004F,0x002D,0x0038,0x0038,0x0035,0x0039,0x002D,0x0038,0x002D,0x0049,0x00 }
+  , { 0x0043,0x0053,0x004E,0x005F,0x0033,0x0036,0x0039,0x0031,0x0030,0x0033,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0033,0x0039,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0031,0x0033,0x0039,0x0043,0x0053,0x004E,0x0033,0x0036,0x0039,0x0031,0x0030,0x0033,0x00 }
+  , { 0x004A,0x0055,0x0053,0x005F,0x0049,0x002E,0x0042,0x0031,0x002E,0x0030,0x0030,0x0032,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0034,0x0031,0x00 }
+  , { 0x0049,0x0053,0x004F,0x0036,0x0034,0x0036,0x002D,0x0059,0x0055,0x00 }
+  , { 0x006A,0x0073,0x00 }
+  , { 0x0079,0x0075,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0031,0x0034,0x0031,0x004A,0x0055,0x0053,0x0049,0x0042,0x0031,0x0030,0x0030,0x0032,0x00 }
+  , { 0x0049,0x0053,0x004F,0x005F,0x0036,0x0039,0x0033,0x0037,0x002D,0x0032,0x002D,0x0061,0x0064,0x0064,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0034,0x0032,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0054,0x0065,0x0078,0x0074,0x0043,0x006F,0x006D,0x006D,0x00 }
+  , { 0x0049,0x0045,0x0043,0x005F,0x0050,0x0032,0x0037,0x002D,0x0031,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0034,0x0033,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0031,0x0034,0x0033,0x0049,0x0045,0x0043,0x0050,0x0032,0x0037,0x0031,0x00 }
+  , { 0x0049,0x0053,0x004F,0x005F,0x0038,0x0038,0x0035,0x0039,0x002D,0x0035,0x003A,0x0031,0x0039,0x0038,0x0038,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0034,0x0034,0x00 }
+  , { 0x0049,0x0053,0x004F,0x005F,0x0038,0x0038,0x0035,0x0039,0x002D,0x0035,0x00 }
+  , { 0x0049,0x0053,0x004F,0x002D,0x0038,0x0038,0x0035,0x0039,0x002D,0x0035,0x00 }
+  , { 0x0063,0x0079,0x0072,0x0069,0x006C,0x006C,0x0069,0x0063,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x004C,0x0061,0x0074,0x0069,0x006E,0x0043,0x0079,0x0072,0x0069,0x006C,0x006C,0x0069,0x0063,0x00 }
+  , { 0x004A,0x0055,0x0053,0x005F,0x0049,0x002E,0x0042,0x0031,0x002E,0x0030,0x0030,0x0033,0x002D,0x0073,0x0065,0x0072,0x0062,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0034,0x0036,0x00 }
+  , { 0x0073,0x0065,0x0072,0x0062,0x0069,0x0061,0x006E,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0031,0x0034,0x0036,0x0053,0x0065,0x0072,0x0062,0x0069,0x0061,0x006E,0x00 }
+  , { 0x004A,0x0055,0x0053,0x005F,0x0049,0x002E,0x0042,0x0031,0x002E,0x0030,0x0030,0x0033,0x002D,0x006D,0x0061,0x0063,0x00 }
+  , { 0x006D,0x0061,0x0063,0x0065,0x0064,0x006F,0x006E,0x0069,0x0061,0x006E,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0034,0x0037,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0031,0x0034,0x0037,0x004D,0x0061,0x0063,0x0065,0x0064,0x006F,0x006E,0x0069,0x0061,0x006E,0x00 }
+  , { 0x0049,0x0053,0x004F,0x005F,0x0038,0x0038,0x0035,0x0039,0x002D,0x0039,0x003A,0x0031,0x0039,0x0038,0x0039,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0034,0x0038,0x00 }
+  , { 0x0049,0x0053,0x004F,0x005F,0x0038,0x0038,0x0035,0x0039,0x002D,0x0039,0x00 }
+  , { 0x0049,0x0053,0x004F,0x002D,0x0038,0x0038,0x0035,0x0039,0x002D,0x0039,0x00 }
+  , { 0x006C,0x0061,0x0074,0x0069,0x006E,0x0035,0x00 }
+  , { 0x006C,0x0035,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x004C,0x0061,0x0074,0x0069,0x006E,0x0035,0x00 }
+  , { 0x0067,0x0072,0x0065,0x0065,0x006B,0x002D,0x0063,0x0063,0x0069,0x0074,0x0074,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0035,0x0030,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0031,0x0035,0x0030,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0031,0x0035,0x0030,0x0047,0x0072,0x0065,0x0065,0x006B,0x0043,0x0043,0x0049,0x0054,0x0054,0x00 }
+  , { 0x004E,0x0043,0x005F,0x004E,0x0043,0x0030,0x0030,0x002D,0x0031,0x0030,0x003A,0x0038,0x0031,0x00 }
+  , { 0x0063,0x0075,0x0062,0x0061,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0035,0x0031,0x00 }
+  , { 0x0049,0x0053,0x004F,0x0036,0x0034,0x0036,0x002D,0x0043,0x0055,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0031,0x0035,0x0031,0x0043,0x0075,0x0062,0x0061,0x00 }
+  , { 0x0049,0x0053,0x004F,0x005F,0x0036,0x0039,0x0033,0x0037,0x002D,0x0032,0x002D,0x0032,0x0035,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0035,0x0032,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0036,0x0039,0x0033,0x0037,0x0041,0x0064,0x0064,0x00 }
+  , { 0x0047,0x004F,0x0053,0x0054,0x005F,0x0031,0x0039,0x0037,0x0036,0x0038,0x002D,0x0037,0x0034,0x00 }
+  , { 0x0053,0x0054,0x005F,0x0053,0x0045,0x0056,0x005F,0x0033,0x0035,0x0038,0x002D,0x0038,0x0038,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0035,0x0033,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0031,0x0035,0x0033,0x0047,0x004F,0x0053,0x0054,0x0031,0x0039,0x0037,0x0036,0x0038,0x0037,0x0034,0x00 }
+  , { 0x0049,0x0053,0x004F,0x005F,0x0038,0x0038,0x0035,0x0039,0x002D,0x0073,0x0075,0x0070,0x0070,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0035,0x0034,0x00 }
+  , { 0x006C,0x0061,0x0074,0x0069,0x006E,0x0031,0x002D,0x0032,0x002D,0x0035,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0038,0x0038,0x0035,0x0039,0x0053,0x0075,0x0070,0x0070,0x00 }
+  , { 0x0049,0x0053,0x004F,0x005F,0x0031,0x0030,0x0033,0x0036,0x0037,0x002D,0x0062,0x006F,0x0078,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0035,0x0035,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0031,0x0030,0x0033,0x0036,0x0037,0x0042,0x006F,0x0078,0x00 }
+  , { 0x0049,0x0053,0x004F,0x002D,0x0038,0x0038,0x0035,0x0039,0x002D,0x0031,0x0030,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0035,0x0037,0x00 }
+  , { 0x006C,0x0036,0x00 }
+  , { 0x0049,0x0053,0x004F,0x005F,0x0038,0x0038,0x0035,0x0039,0x002D,0x0031,0x0030,0x003A,0x0031,0x0039,0x0039,0x0032,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x004C,0x0061,0x0074,0x0069,0x006E,0x0036,0x00 }
+  , { 0x006C,0x0061,0x0074,0x0069,0x006E,0x0036,0x00 }
+  , { 0x006C,0x0061,0x0074,0x0069,0x006E,0x002D,0x006C,0x0061,0x0070,0x00 }
+  , { 0x006C,0x0061,0x0070,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0035,0x0038,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0031,0x0035,0x0038,0x004C,0x0061,0x0070,0x00 }
+  , { 0x004A,0x0049,0x0053,0x005F,0x0058,0x0030,0x0032,0x0031,0x0032,0x002D,0x0031,0x0039,0x0039,0x0030,0x00 }
+  , { 0x0078,0x0030,0x0032,0x0031,0x0032,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0035,0x0039,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0031,0x0035,0x0039,0x004A,0x0049,0x0053,0x0058,0x0030,0x0032,0x0031,0x0032,0x0031,0x0039,0x0039,0x0030,0x00 }
+  , { 0x0044,0x0053,0x005F,0x0032,0x0030,0x0038,0x0039,0x00 }
+  , { 0x0044,0x0053,0x0032,0x0030,0x0038,0x0039,0x00 }
+  , { 0x0049,0x0053,0x004F,0x0036,0x0034,0x0036,0x002D,0x0044,0x004B,0x00 }
+  , { 0x0064,0x006B,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0036,0x0034,0x0036,0x0044,0x0061,0x006E,0x0069,0x0073,0x0068,0x00 }
+  , { 0x0075,0x0073,0x002D,0x0064,0x006B,0x00 }
+  , { 0x0063,0x0073,0x0055,0x0053,0x0044,0x004B,0x00 }
+  , { 0x0064,0x006B,0x002D,0x0075,0x0073,0x00 }
+  , { 0x0063,0x0073,0x0044,0x004B,0x0055,0x0053,0x00 }
+  , { 0x004A,0x0049,0x0053,0x005F,0x0058,0x0030,0x0032,0x0030,0x0031,0x00 }
+  , { 0x0058,0x0030,0x0032,0x0030,0x0031,0x00 }
+  , { 0x0063,0x0073,0x0048,0x0061,0x006C,0x0066,0x0057,0x0069,0x0064,0x0074,0x0068,0x004B,0x0061,0x0074,0x0061,0x006B,0x0061,0x006E,0x0061,0x00 }
+  , { 0x004B,0x0053,0x0043,0x0035,0x0036,0x0033,0x0036,0x00 }
+  , { 0x0049,0x0053,0x004F,0x0036,0x0034,0x0036,0x002D,0x004B,0x0052,0x00 }
+  , { 0x0063,0x0073,0x004B,0x0053,0x0043,0x0035,0x0036,0x0033,0x0036,0x00 }
+  , { 0x0049,0x0053,0x004F,0x002D,0x0031,0x0030,0x0036,0x0034,0x0036,0x002D,0x0055,0x0043,0x0053,0x002D,0x0032,0x00 }
+  , { 0x0063,0x0073,0x0055,0x006E,0x0069,0x0063,0x006F,0x0064,0x0065,0x00 }
+  , { 0x0049,0x0053,0x004F,0x002D,0x0031,0x0030,0x0036,0x0034,0x0036,0x002D,0x0055,0x0043,0x0053,0x002D,0x0034,0x00 }
+  , { 0x0063,0x0073,0x0055,0x0043,0x0053,0x0034,0x00 }
+  , { 0x0044,0x0045,0x0043,0x002D,0x004D,0x0043,0x0053,0x00 }
+  , { 0x0064,0x0065,0x0063,0x00 }
+  , { 0x0063,0x0073,0x0044,0x0045,0x0043,0x004D,0x0043,0x0053,0x00 }
+  , { 0x0068,0x0070,0x002D,0x0072,0x006F,0x006D,0x0061,0x006E,0x0038,0x00 }
+  , { 0x0072,0x006F,0x006D,0x0061,0x006E,0x0038,0x00 }
+  , { 0x0072,0x0038,0x00 }
+  , { 0x0063,0x0073,0x0048,0x0050,0x0052,0x006F,0x006D,0x0061,0x006E,0x0038,0x00 }
+  , { 0x006D,0x0061,0x0063,0x0069,0x006E,0x0074,0x006F,0x0073,0x0068,0x00 }
+  , { 0x006D,0x0061,0x0063,0x00 }
+  , { 0x0063,0x0073,0x004D,0x0061,0x0063,0x0069,0x006E,0x0074,0x006F,0x0073,0x0068,0x00 }
+  , { 0x0049,0x0042,0x004D,0x0030,0x0033,0x0037,0x00 }
+  , { 0x0063,0x0070,0x0030,0x0033,0x0037,0x00 }
+  , { 0x0065,0x0062,0x0063,0x0064,0x0069,0x0063,0x002D,0x0063,0x0070,0x002D,0x0075,0x0073,0x00 }
+  , { 0x0065,0x0062,0x0063,0x0064,0x0069,0x0063,0x002D,0x0063,0x0070,0x002D,0x0063,0x0061,0x00 }
+  , { 0x0065,0x0062,0x0063,0x0064,0x0069,0x0063,0x002D,0x0063,0x0070,0x002D,0x0077,0x0074,0x00 }
+  , { 0x0065,0x0062,0x0063,0x0064,0x0069,0x0063,0x002D,0x0063,0x0070,0x002D,0x006E,0x006C,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0030,0x0033,0x0037,0x00 }
+  , { 0x0049,0x0042,0x004D,0x0030,0x0033,0x0038,0x00 }
+  , { 0x0045,0x0042,0x0043,0x0044,0x0049,0x0043,0x002D,0x0049,0x004E,0x0054,0x00 }
+  , { 0x0063,0x0070,0x0030,0x0033,0x0038,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0030,0x0033,0x0038,0x00 }
+  , { 0x0049,0x0042,0x004D,0x0032,0x0037,0x0033,0x00 }
+  , { 0x0043,0x0050,0x0032,0x0037,0x0033,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0032,0x0037,0x0033,0x00 }
+  , { 0x0049,0x0042,0x004D,0x0032,0x0037,0x0034,0x00 }
+  , { 0x0045,0x0042,0x0043,0x0044,0x0049,0x0043,0x002D,0x0042,0x0045,0x00 }
+  , { 0x0043,0x0050,0x0032,0x0037,0x0034,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0032,0x0037,0x0034,0x00 }
+  , { 0x0049,0x0042,0x004D,0x0032,0x0037,0x0035,0x00 }
+  , { 0x0045,0x0042,0x0043,0x0044,0x0049,0x0043,0x002D,0x0042,0x0052,0x00 }
+  , { 0x0063,0x0070,0x0032,0x0037,0x0035,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0032,0x0037,0x0035,0x00 }
+  , { 0x0049,0x0042,0x004D,0x0032,0x0037,0x0037,0x00 }
+  , { 0x0045,0x0042,0x0043,0x0044,0x0049,0x0043,0x002D,0x0043,0x0050,0x002D,0x0044,0x004B,0x00 }
+  , { 0x0045,0x0042,0x0043,0x0044,0x0049,0x0043,0x002D,0x0043,0x0050,0x002D,0x004E,0x004F,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0032,0x0037,0x0037,0x00 }
+  , { 0x0049,0x0042,0x004D,0x0032,0x0037,0x0038,0x00 }
+  , { 0x0043,0x0050,0x0032,0x0037,0x0038,0x00 }
+  , { 0x0065,0x0062,0x0063,0x0064,0x0069,0x0063,0x002D,0x0063,0x0070,0x002D,0x0066,0x0069,0x00 }
+  , { 0x0065,0x0062,0x0063,0x0064,0x0069,0x0063,0x002D,0x0063,0x0070,0x002D,0x0073,0x0065,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0032,0x0037,0x0038,0x00 }
+  , { 0x0049,0x0042,0x004D,0x0032,0x0038,0x0030,0x00 }
+  , { 0x0043,0x0050,0x0032,0x0038,0x0030,0x00 }
+  , { 0x0065,0x0062,0x0063,0x0064,0x0069,0x0063,0x002D,0x0063,0x0070,0x002D,0x0069,0x0074,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0032,0x0038,0x0030,0x00 }
+  , { 0x0049,0x0042,0x004D,0x0032,0x0038,0x0031,0x00 }
+  , { 0x0045,0x0042,0x0043,0x0044,0x0049,0x0043,0x002D,0x004A,0x0050,0x002D,0x0045,0x00 }
+  , { 0x0063,0x0070,0x0032,0x0038,0x0031,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0032,0x0038,0x0031,0x00 }
+  , { 0x0049,0x0042,0x004D,0x0032,0x0038,0x0034,0x00 }
+  , { 0x0043,0x0050,0x0032,0x0038,0x0034,0x00 }
+  , { 0x0065,0x0062,0x0063,0x0064,0x0069,0x0063,0x002D,0x0063,0x0070,0x002D,0x0065,0x0073,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0032,0x0038,0x0034,0x00 }
+  , { 0x0049,0x0042,0x004D,0x0032,0x0038,0x0035,0x00 }
+  , { 0x0043,0x0050,0x0032,0x0038,0x0035,0x00 }
+  , { 0x0065,0x0062,0x0063,0x0064,0x0069,0x0063,0x002D,0x0063,0x0070,0x002D,0x0067,0x0062,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0032,0x0038,0x0035,0x00 }
+  , { 0x0049,0x0042,0x004D,0x0032,0x0039,0x0030,0x00 }
+  , { 0x0063,0x0070,0x0032,0x0039,0x0030,0x00 }
+  , { 0x0045,0x0042,0x0043,0x0044,0x0049,0x0043,0x002D,0x004A,0x0050,0x002D,0x006B,0x0061,0x006E,0x0061,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0032,0x0039,0x0030,0x00 }
+  , { 0x0049,0x0042,0x004D,0x0032,0x0039,0x0037,0x00 }
+  , { 0x0063,0x0070,0x0032,0x0039,0x0037,0x00 }
+  , { 0x0065,0x0062,0x0063,0x0064,0x0069,0x0063,0x002D,0x0063,0x0070,0x002D,0x0066,0x0072,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0032,0x0039,0x0037,0x00 }
+  , { 0x0049,0x0042,0x004D,0x0034,0x0032,0x0030,0x00 }
+  , { 0x0063,0x0070,0x0034,0x0032,0x0030,0x00 }
+  , { 0x0065,0x0062,0x0063,0x0064,0x0069,0x0063,0x002D,0x0063,0x0070,0x002D,0x0061,0x0072,0x0031,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0034,0x0032,0x0030,0x00 }
+  , { 0x0049,0x0042,0x004D,0x0034,0x0032,0x0033,0x00 }
+  , { 0x0063,0x0070,0x0034,0x0032,0x0033,0x00 }
+  , { 0x0065,0x0062,0x0063,0x0064,0x0069,0x0063,0x002D,0x0063,0x0070,0x002D,0x0067,0x0072,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0034,0x0032,0x0033,0x00 }
+  , { 0x0049,0x0042,0x004D,0x0034,0x0032,0x0034,0x00 }
+  , { 0x0063,0x0070,0x0034,0x0032,0x0034,0x00 }
+  , { 0x0065,0x0062,0x0063,0x0064,0x0069,0x0063,0x002D,0x0063,0x0070,0x002D,0x0068,0x0065,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0034,0x0032,0x0034,0x00 }
+  , { 0x0049,0x0042,0x004D,0x0034,0x0033,0x0037,0x00 }
+  , { 0x0063,0x0070,0x0034,0x0033,0x0037,0x00 }
+  , { 0x0034,0x0033,0x0037,0x00 }
+  , { 0x0063,0x0073,0x0050,0x0043,0x0038,0x0043,0x006F,0x0064,0x0065,0x0050,0x0061,0x0067,0x0065,0x0034,0x0033,0x0037,0x00 }
+  , { 0x0049,0x0042,0x004D,0x0035,0x0030,0x0030,0x00 }
+  , { 0x0043,0x0050,0x0035,0x0030,0x0030,0x00 }
+  , { 0x0065,0x0062,0x0063,0x0064,0x0069,0x0063,0x002D,0x0063,0x0070,0x002D,0x0062,0x0065,0x00 }
+  , { 0x0065,0x0062,0x0063,0x0064,0x0069,0x0063,0x002D,0x0063,0x0070,0x002D,0x0063,0x0068,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0035,0x0030,0x0030,0x00 }
+  , { 0x0049,0x0042,0x004D,0x0037,0x0037,0x0035,0x00 }
+  , { 0x0063,0x0070,0x0037,0x0037,0x0035,0x00 }
+  , { 0x0063,0x0073,0x0050,0x0043,0x0037,0x0037,0x0035,0x0042,0x0061,0x006C,0x0074,0x0069,0x0063,0x00 }
+  , { 0x0049,0x0042,0x004D,0x0038,0x0035,0x0030,0x00 }
+  , { 0x0063,0x0070,0x0038,0x0035,0x0030,0x00 }
+  , { 0x0038,0x0035,0x0030,0x00 }
+  , { 0x0063,0x0073,0x0050,0x0043,0x0038,0x0035,0x0030,0x004D,0x0075,0x006C,0x0074,0x0069,0x006C,0x0069,0x006E,0x0067,0x0075,0x0061,0x006C,0x00 }
+  , { 0x0049,0x0042,0x004D,0x0038,0x0035,0x0031,0x00 }
+  , { 0x0063,0x0070,0x0038,0x0035,0x0031,0x00 }
+  , { 0x0038,0x0035,0x0031,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0038,0x0035,0x0031,0x00 }
+  , { 0x0049,0x0042,0x004D,0x0038,0x0035,0x0032,0x00 }
+  , { 0x0063,0x0070,0x0038,0x0035,0x0032,0x00 }
+  , { 0x0038,0x0035,0x0032,0x00 }
+  , { 0x0063,0x0073,0x0050,0x0043,0x0070,0x0038,0x0035,0x0032,0x00 }
+  , { 0x0049,0x0042,0x004D,0x0038,0x0035,0x0035,0x00 }
+  , { 0x0063,0x0070,0x0038,0x0035,0x0035,0x00 }
+  , { 0x0038,0x0035,0x0035,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0038,0x0035,0x0035,0x00 }
+  , { 0x0049,0x0042,0x004D,0x0038,0x0035,0x0037,0x00 }
+  , { 0x0063,0x0070,0x0038,0x0035,0x0037,0x00 }
+  , { 0x0038,0x0035,0x0037,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0038,0x0035,0x0037,0x00 }
+  , { 0x0049,0x0042,0x004D,0x0038,0x0036,0x0030,0x00 }
+  , { 0x0063,0x0070,0x0038,0x0036,0x0030,0x00 }
+  , { 0x0038,0x0036,0x0030,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0038,0x0036,0x0030,0x00 }
+  , { 0x0049,0x0042,0x004D,0x0038,0x0036,0x0031,0x00 }
+  , { 0x0063,0x0070,0x0038,0x0036,0x0031,0x00 }
+  , { 0x0038,0x0036,0x0031,0x00 }
+  , { 0x0063,0x0070,0x002D,0x0069,0x0073,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0038,0x0036,0x0031,0x00 }
+  , { 0x0049,0x0042,0x004D,0x0038,0x0036,0x0032,0x00 }
+  , { 0x0063,0x0070,0x0038,0x0036,0x0032,0x00 }
+  , { 0x0038,0x0036,0x0032,0x00 }
+  , { 0x0063,0x0073,0x0050,0x0043,0x0038,0x0036,0x0032,0x004C,0x0061,0x0074,0x0069,0x006E,0x0048,0x0065,0x0062,0x0072,0x0065,0x0077,0x00 }
+  , { 0x0049,0x0042,0x004D,0x0038,0x0036,0x0033,0x00 }
+  , { 0x0063,0x0070,0x0038,0x0036,0x0033,0x00 }
+  , { 0x0038,0x0036,0x0033,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0038,0x0036,0x0033,0x00 }
+  , { 0x0049,0x0042,0x004D,0x0038,0x0036,0x0034,0x00 }
+  , { 0x0063,0x0070,0x0038,0x0036,0x0034,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0038,0x0036,0x0034,0x00 }
+  , { 0x0049,0x0042,0x004D,0x0038,0x0036,0x0035,0x00 }
+  , { 0x0063,0x0070,0x0038,0x0036,0x0035,0x00 }
+  , { 0x0038,0x0036,0x0035,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0038,0x0036,0x0035,0x00 }
+  , { 0x0049,0x0042,0x004D,0x0038,0x0036,0x0036,0x00 }
+  , { 0x0063,0x0070,0x0038,0x0036,0x0036,0x00 }
+  , { 0x0038,0x0036,0x0036,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0038,0x0036,0x0036,0x00 }
+  , { 0x0049,0x0042,0x004D,0x0038,0x0036,0x0038,0x00 }
+  , { 0x0043,0x0050,0x0038,0x0036,0x0038,0x00 }
+  , { 0x0063,0x0070,0x002D,0x0061,0x0072,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0038,0x0036,0x0038,0x00 }
+  , { 0x0049,0x0042,0x004D,0x0038,0x0036,0x0039,0x00 }
+  , { 0x0063,0x0070,0x0038,0x0036,0x0039,0x00 }
+  , { 0x0038,0x0036,0x0039,0x00 }
+  , { 0x0063,0x0070,0x002D,0x0067,0x0072,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0038,0x0036,0x0039,0x00 }
+  , { 0x0049,0x0042,0x004D,0x0038,0x0037,0x0030,0x00 }
+  , { 0x0043,0x0050,0x0038,0x0037,0x0030,0x00 }
+  , { 0x0065,0x0062,0x0063,0x0064,0x0069,0x0063,0x002D,0x0063,0x0070,0x002D,0x0072,0x006F,0x0065,0x0063,0x0065,0x00 }
+  , { 0x0065,0x0062,0x0063,0x0064,0x0069,0x0063,0x002D,0x0063,0x0070,0x002D,0x0079,0x0075,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0038,0x0037,0x0030,0x00 }
+  , { 0x0049,0x0042,0x004D,0x0038,0x0037,0x0031,0x00 }
+  , { 0x0043,0x0050,0x0038,0x0037,0x0031,0x00 }
+  , { 0x0065,0x0062,0x0063,0x0064,0x0069,0x0063,0x002D,0x0063,0x0070,0x002D,0x0069,0x0073,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0038,0x0037,0x0031,0x00 }
+  , { 0x0049,0x0042,0x004D,0x0038,0x0038,0x0030,0x00 }
+  , { 0x0063,0x0070,0x0038,0x0038,0x0030,0x00 }
+  , { 0x0045,0x0042,0x0043,0x0044,0x0049,0x0043,0x002D,0x0043,0x0079,0x0072,0x0069,0x006C,0x006C,0x0069,0x0063,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0038,0x0038,0x0030,0x00 }
+  , { 0x0049,0x0042,0x004D,0x0038,0x0039,0x0031,0x00 }
+  , { 0x0063,0x0070,0x0038,0x0039,0x0031,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0038,0x0039,0x0031,0x00 }
+  , { 0x0049,0x0042,0x004D,0x0039,0x0030,0x0033,0x00 }
+  , { 0x0063,0x0070,0x0039,0x0030,0x0033,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0039,0x0030,0x0033,0x00 }
+  , { 0x0049,0x0042,0x004D,0x0039,0x0030,0x0034,0x00 }
+  , { 0x0063,0x0070,0x0039,0x0030,0x0034,0x00 }
+  , { 0x0039,0x0030,0x0034,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0042,0x0042,0x004D,0x0039,0x0030,0x0034,0x00 }
+  , { 0x0049,0x0042,0x004D,0x0039,0x0030,0x0035,0x00 }
+  , { 0x0043,0x0050,0x0039,0x0030,0x0035,0x00 }
+  , { 0x0065,0x0062,0x0063,0x0064,0x0069,0x0063,0x002D,0x0063,0x0070,0x002D,0x0074,0x0072,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0039,0x0030,0x0035,0x00 }
+  , { 0x0049,0x0042,0x004D,0x0039,0x0031,0x0038,0x00 }
+  , { 0x0043,0x0050,0x0039,0x0031,0x0038,0x00 }
+  , { 0x0065,0x0062,0x0063,0x0064,0x0069,0x0063,0x002D,0x0063,0x0070,0x002D,0x0061,0x0072,0x0032,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0039,0x0031,0x0038,0x00 }
+  , { 0x0049,0x0042,0x004D,0x0031,0x0030,0x0032,0x0036,0x00 }
+  , { 0x0043,0x0050,0x0031,0x0030,0x0032,0x0036,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0031,0x0030,0x0032,0x0036,0x00 }
+  , { 0x0045,0x0042,0x0043,0x0044,0x0049,0x0043,0x002D,0x0041,0x0054,0x002D,0x0044,0x0045,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0045,0x0042,0x0043,0x0044,0x0049,0x0043,0x0041,0x0054,0x0044,0x0045,0x00 }
+  , { 0x0045,0x0042,0x0043,0x0044,0x0049,0x0043,0x002D,0x0041,0x0054,0x002D,0x0044,0x0045,0x002D,0x0041,0x00 }
+  , { 0x0063,0x0073,0x0045,0x0042,0x0043,0x0044,0x0049,0x0043,0x0041,0x0054,0x0044,0x0045,0x0041,0x00 }
+  , { 0x0045,0x0042,0x0043,0x0044,0x0049,0x0043,0x002D,0x0043,0x0041,0x002D,0x0046,0x0052,0x00 }
+  , { 0x0063,0x0073,0x0045,0x0042,0x0043,0x0044,0x0049,0x0043,0x0043,0x0041,0x0046,0x0052,0x00 }
+  , { 0x0045,0x0042,0x0043,0x0044,0x0049,0x0043,0x002D,0x0044,0x004B,0x002D,0x004E,0x004F,0x00 }
+  , { 0x0063,0x0073,0x0045,0x0042,0x0043,0x0044,0x0049,0x0043,0x0044,0x004B,0x004E,0x004F,0x00 }
+  , { 0x0045,0x0042,0x0043,0x0044,0x0049,0x0043,0x002D,0x0044,0x004B,0x002D,0x004E,0x004F,0x002D,0x0041,0x00 }
+  , { 0x0063,0x0073,0x0045,0x0042,0x0043,0x0044,0x0049,0x0043,0x0044,0x004B,0x004E,0x004F,0x0041,0x00 }
+  , { 0x0045,0x0042,0x0043,0x0044,0x0049,0x0043,0x002D,0x0046,0x0049,0x002D,0x0053,0x0045,0x00 }
+  , { 0x0063,0x0073,0x0045,0x0042,0x0043,0x0044,0x0049,0x0043,0x0046,0x0049,0x0053,0x0045,0x00 }
+  , { 0x0045,0x0042,0x0043,0x0044,0x0049,0x0043,0x002D,0x0046,0x0049,0x002D,0x0053,0x0045,0x002D,0x0041,0x00 }
+  , { 0x0063,0x0073,0x0045,0x0042,0x0043,0x0044,0x0049,0x0043,0x0046,0x0049,0x0053,0x0045,0x0041,0x00 }
+  , { 0x0045,0x0042,0x0043,0x0044,0x0049,0x0043,0x002D,0x0046,0x0052,0x00 }
+  , { 0x0063,0x0073,0x0045,0x0042,0x0043,0x0044,0x0049,0x0043,0x0046,0x0052,0x00 }
+  , { 0x0045,0x0042,0x0043,0x0044,0x0049,0x0043,0x002D,0x0049,0x0054,0x00 }
+  , { 0x0063,0x0073,0x0045,0x0042,0x0043,0x0044,0x0049,0x0043,0x0049,0x0054,0x00 }
+  , { 0x0045,0x0042,0x0043,0x0044,0x0049,0x0043,0x002D,0x0050,0x0054,0x00 }
+  , { 0x0063,0x0073,0x0045,0x0042,0x0043,0x0044,0x0049,0x0043,0x0050,0x0054,0x00 }
+  , { 0x0045,0x0042,0x0043,0x0044,0x0049,0x0043,0x002D,0x0045,0x0053,0x00 }
+  , { 0x0063,0x0073,0x0045,0x0042,0x0043,0x0044,0x0049,0x0043,0x0045,0x0053,0x00 }
+  , { 0x0045,0x0042,0x0043,0x0044,0x0049,0x0043,0x002D,0x0045,0x0053,0x002D,0x0041,0x00 }
+  , { 0x0063,0x0073,0x0045,0x0042,0x0043,0x0044,0x0049,0x0043,0x0045,0x0053,0x0041,0x00 }
+  , { 0x0045,0x0042,0x0043,0x0044,0x0049,0x0043,0x002D,0x0045,0x0053,0x002D,0x0053,0x00 }
+  , { 0x0063,0x0073,0x0045,0x0042,0x0043,0x0044,0x0049,0x0043,0x0045,0x0053,0x0053,0x00 }
+  , { 0x0045,0x0042,0x0043,0x0044,0x0049,0x0043,0x002D,0x0055,0x004B,0x00 }
+  , { 0x0063,0x0073,0x0045,0x0042,0x0043,0x0044,0x0049,0x0043,0x0055,0x004B,0x00 }
+  , { 0x0045,0x0042,0x0043,0x0044,0x0049,0x0043,0x002D,0x0055,0x0053,0x00 }
+  , { 0x0063,0x0073,0x0045,0x0042,0x0043,0x0044,0x0049,0x0043,0x0055,0x0053,0x00 }
+  , { 0x0055,0x004E,0x004B,0x004E,0x004F,0x0057,0x004E,0x002D,0x0038,0x0042,0x0049,0x0054,0x00 }
+  , { 0x0063,0x0073,0x0055,0x006E,0x006B,0x006E,0x006F,0x0077,0x006E,0x0038,0x0042,0x0069,0x0054,0x00 }
+  , { 0x004D,0x004E,0x0045,0x004D,0x004F,0x004E,0x0049,0x0043,0x00 }
+  , { 0x0063,0x0073,0x004D,0x006E,0x0065,0x006D,0x006F,0x006E,0x0069,0x0063,0x00 }
+  , { 0x004D,0x004E,0x0045,0x004D,0x00 }
+  , { 0x0063,0x0073,0x004D,0x006E,0x0065,0x006D,0x00 }
+  , { 0x0056,0x0049,0x0053,0x0043,0x0049,0x0049,0x00 }
+  , { 0x0063,0x0073,0x0056,0x0049,0x0053,0x0043,0x0049,0x0049,0x00 }
+  , { 0x0056,0x0049,0x0051,0x0052,0x00 }
+  , { 0x0063,0x0073,0x0056,0x0049,0x0051,0x0052,0x00 }
+  , { 0x004B,0x004F,0x0049,0x0038,0x002D,0x0052,0x00 }
+  , { 0x0063,0x0073,0x004B,0x004F,0x0049,0x0038,0x0052,0x00 }
+  , { 0x004B,0x004F,0x0049,0x0038,0x002D,0x0055,0x00 }
+  , { 0x0049,0x0042,0x004D,0x0030,0x0030,0x0038,0x0035,0x0038,0x00 }
+  , { 0x0043,0x0043,0x0053,0x0049,0x0044,0x0030,0x0030,0x0038,0x0035,0x0038,0x00 }
+  , { 0x0043,0x0050,0x0030,0x0030,0x0038,0x0035,0x0038,0x00 }
+  , { 0x0050,0x0043,0x002D,0x004D,0x0075,0x006C,0x0074,0x0069,0x006C,0x0069,0x006E,0x0067,0x0075,0x0061,0x006C,0x002D,0x0038,0x0035,0x0030,0x002B,0x0065,0x0075,0x0072,0x006F,0x00 }
+  , { 0x0049,0x0042,0x004D,0x0030,0x0030,0x0039,0x0032,0x0034,0x00 }
+  , { 0x0043,0x0043,0x0053,0x0049,0x0044,0x0030,0x0030,0x0039,0x0032,0x0034,0x00 }
+  , { 0x0043,0x0050,0x0030,0x0030,0x0039,0x0032,0x0034,0x00 }
+  , { 0x0065,0x0062,0x0063,0x0064,0x0069,0x0063,0x002D,0x004C,0x0061,0x0074,0x0069,0x006E,0x0039,0x002D,0x002D,0x0065,0x0075,0x0072,0x006F,0x00 }
+  , { 0x0049,0x0042,0x004D,0x0030,0x0031,0x0031,0x0034,0x0030,0x00 }
+  , { 0x0043,0x0043,0x0053,0x0049,0x0044,0x0030,0x0031,0x0031,0x0034,0x0030,0x00 }
+  , { 0x0043,0x0050,0x0030,0x0031,0x0031,0x0034,0x0030,0x00 }
+  , { 0x0065,0x0062,0x0063,0x0064,0x0069,0x0063,0x002D,0x0075,0x0073,0x002D,0x0033,0x0037,0x002B,0x0065,0x0075,0x0072,0x006F,0x00 }
+  , { 0x0049,0x0042,0x004D,0x0030,0x0031,0x0031,0x0034,0x0031,0x00 }
+  , { 0x0043,0x0043,0x0053,0x0049,0x0044,0x0030,0x0031,0x0031,0x0034,0x0031,0x00 }
+  , { 0x0043,0x0050,0x0030,0x0031,0x0031,0x0034,0x0031,0x00 }
+  , { 0x0065,0x0062,0x0063,0x0064,0x0069,0x0063,0x002D,0x0064,0x0065,0x002D,0x0032,0x0037,0x0033,0x002B,0x0065,0x0075,0x0072,0x006F,0x00 }
+  , { 0x0049,0x0042,0x004D,0x0030,0x0031,0x0031,0x0034,0x0032,0x00 }
+  , { 0x0043,0x0043,0x0053,0x0049,0x0044,0x0030,0x0031,0x0031,0x0034,0x0032,0x00 }
+  , { 0x0043,0x0050,0x0030,0x0031,0x0031,0x0034,0x0032,0x00 }
+  , { 0x0065,0x0062,0x0063,0x0064,0x0069,0x0063,0x002D,0x0064,0x006B,0x002D,0x0032,0x0037,0x0037,0x002B,0x0065,0x0075,0x0072,0x006F,0x00 }
+  , { 0x0065,0x0062,0x0063,0x0064,0x0069,0x0063,0x002D,0x006E,0x006F,0x002D,0x0032,0x0037,0x0037,0x002B,0x0065,0x0075,0x0072,0x006F,0x00 }
+  , { 0x0049,0x0042,0x004D,0x0030,0x0031,0x0031,0x0034,0x0033,0x00 }
+  , { 0x0043,0x0043,0x0053,0x0049,0x0044,0x0030,0x0031,0x0031,0x0034,0x0033,0x00 }
+  , { 0x0043,0x0050,0x0030,0x0031,0x0031,0x0034,0x0033,0x00 }
+  , { 0x0065,0x0062,0x0063,0x0064,0x0069,0x0063,0x002D,0x0066,0x0069,0x002D,0x0032,0x0037,0x0038,0x002B,0x0065,0x0075,0x0072,0x006F,0x00 }
+  , { 0x0065,0x0062,0x0063,0x0064,0x0069,0x0063,0x002D,0x0073,0x0065,0x002D,0x0032,0x0037,0x0038,0x002B,0x0065,0x0075,0x0072,0x006F,0x00 }
+  , { 0x0049,0x0042,0x004D,0x0030,0x0031,0x0031,0x0034,0x0034,0x00 }
+  , { 0x0043,0x0043,0x0053,0x0049,0x0044,0x0030,0x0031,0x0031,0x0034,0x0034,0x00 }
+  , { 0x0043,0x0050,0x0030,0x0031,0x0031,0x0034,0x0034,0x00 }
+  , { 0x0065,0x0062,0x0063,0x0064,0x0069,0x0063,0x002D,0x0069,0x0074,0x002D,0x0032,0x0038,0x0030,0x002B,0x0065,0x0075,0x0072,0x006F,0x00 }
+  , { 0x0049,0x0042,0x004D,0x0030,0x0031,0x0031,0x0034,0x0035,0x00 }
+  , { 0x0043,0x0043,0x0053,0x0049,0x0044,0x0030,0x0031,0x0031,0x0034,0x0035,0x00 }
+  , { 0x0043,0x0050,0x0030,0x0031,0x0031,0x0034,0x0035,0x00 }
+  , { 0x0065,0x0062,0x0063,0x0064,0x0069,0x0063,0x002D,0x0065,0x0073,0x002D,0x0032,0x0038,0x0034,0x002B,0x0065,0x0075,0x0072,0x006F,0x00 }
+  , { 0x0049,0x0042,0x004D,0x0030,0x0031,0x0031,0x0034,0x0036,0x00 }
+  , { 0x0043,0x0043,0x0053,0x0049,0x0044,0x0030,0x0031,0x0031,0x0034,0x0036,0x00 }
+  , { 0x0043,0x0050,0x0030,0x0031,0x0031,0x0034,0x0036,0x00 }
+  , { 0x0065,0x0062,0x0063,0x0064,0x0069,0x0063,0x002D,0x0067,0x0062,0x002D,0x0032,0x0038,0x0035,0x002B,0x0065,0x0075,0x0072,0x006F,0x00 }
+  , { 0x0049,0x0042,0x004D,0x0030,0x0031,0x0031,0x0034,0x0037,0x00 }
+  , { 0x0043,0x0043,0x0053,0x0049,0x0044,0x0030,0x0031,0x0031,0x0034,0x0037,0x00 }
+  , { 0x0043,0x0050,0x0030,0x0031,0x0031,0x0034,0x0037,0x00 }
+  , { 0x0065,0x0062,0x0063,0x0064,0x0069,0x0063,0x002D,0x0066,0x0072,0x002D,0x0032,0x0039,0x0037,0x002B,0x0065,0x0075,0x0072,0x006F,0x00 }
+  , { 0x0049,0x0042,0x004D,0x0030,0x0031,0x0031,0x0034,0x0038,0x00 }
+  , { 0x0043,0x0043,0x0053,0x0049,0x0044,0x0030,0x0031,0x0031,0x0034,0x0038,0x00 }
+  , { 0x0043,0x0050,0x0030,0x0031,0x0031,0x0034,0x0038,0x00 }
+  , { 0x0065,0x0062,0x0063,0x0064,0x0069,0x0063,0x002D,0x0069,0x006E,0x0074,0x0065,0x0072,0x006E,0x0061,0x0074,0x0069,0x006F,0x006E,0x0061,0x006C,0x002D,0x0035,0x0030,0x0030,0x002B,0x0065,0x0075,0x0072,0x006F,0x00 }
+  , { 0x0049,0x0042,0x004D,0x0030,0x0031,0x0031,0x0034,0x0039,0x00 }
+  , { 0x0043,0x0043,0x0053,0x0049,0x0044,0x0030,0x0031,0x0031,0x0034,0x0039,0x00 }
+  , { 0x0043,0x0050,0x0030,0x0031,0x0031,0x0034,0x0039,0x00 }
+  , { 0x0065,0x0062,0x0063,0x0064,0x0069,0x0063,0x002D,0x0069,0x0073,0x002D,0x0038,0x0037,0x0031,0x002B,0x0065,0x0075,0x0072,0x006F,0x00 }
+  , { 0x0042,0x0069,0x0067,0x0035,0x002D,0x0048,0x004B,0x0053,0x0043,0x0053,0x00 }
+  , { 0x0055,0x004E,0x0049,0x0043,0x004F,0x0044,0x0045,0x002D,0x0031,0x002D,0x0031,0x00 }
+  , { 0x0063,0x0073,0x0055,0x006E,0x0069,0x0063,0x006F,0x0064,0x0065,0x0031,0x0031,0x00 }
+  , { 0x0053,0x0043,0x0053,0x0055,0x00 }
+  , { 0x0055,0x0054,0x0046,0x002D,0x0037,0x00 }
+  , { 0x0055,0x0054,0x0046,0x002D,0x0031,0x0036,0x0042,0x0045,0x00 }
+  , { 0x0055,0x0054,0x0046,0x002D,0x0031,0x0036,0x004C,0x0045,0x00 }
+  , { 0x0055,0x0054,0x0046,0x002D,0x0031,0x0036,0x00 }
+  , { 0x0043,0x0045,0x0053,0x0055,0x002D,0x0038,0x00 }
+  , { 0x0063,0x0073,0x0043,0x0045,0x0053,0x0055,0x002D,0x0038,0x00 }
+  , { 0x0055,0x0054,0x0046,0x002D,0x0033,0x0032,0x00 }
+  , { 0x0055,0x0054,0x0046,0x002D,0x0033,0x0032,0x0042,0x0045,0x00 }
+  , { 0x0055,0x0054,0x0046,0x002D,0x0033,0x0032,0x004C,0x0045,0x00 }
+  , { 0x0055,0x004E,0x0049,0x0043,0x004F,0x0044,0x0045,0x002D,0x0031,0x002D,0x0031,0x002D,0x0055,0x0054,0x0046,0x002D,0x0037,0x00 }
+  , { 0x0063,0x0073,0x0055,0x006E,0x0069,0x0063,0x006F,0x0064,0x0065,0x0031,0x0031,0x0055,0x0054,0x0046,0x0037,0x00 }
+  , { 0x0055,0x0054,0x0046,0x002D,0x0038,0x00 }
+  , { 0x0049,0x0053,0x004F,0x002D,0x0038,0x0038,0x0035,0x0039,0x002D,0x0031,0x0033,0x00 }
+  , { 0x0049,0x0053,0x004F,0x002D,0x0038,0x0038,0x0035,0x0039,0x002D,0x0031,0x0034,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0039,0x0039,0x00 }
+  , { 0x0049,0x0053,0x004F,0x005F,0x0038,0x0038,0x0035,0x0039,0x002D,0x0031,0x0034,0x003A,0x0031,0x0039,0x0039,0x0038,0x00 }
+  , { 0x0049,0x0053,0x004F,0x005F,0x0038,0x0038,0x0035,0x0039,0x002D,0x0031,0x0034,0x00 }
+  , { 0x006C,0x0061,0x0074,0x0069,0x006E,0x0038,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0063,0x0065,0x006C,0x0074,0x0069,0x0063,0x00 }
+  , { 0x006C,0x0038,0x00 }
+  , { 0x0049,0x0053,0x004F,0x002D,0x0038,0x0038,0x0035,0x0039,0x002D,0x0031,0x0035,0x00 }
+  , { 0x0049,0x0053,0x004F,0x005F,0x0038,0x0038,0x0035,0x0039,0x002D,0x0031,0x0035,0x00 }
+  , { 0x0049,0x0053,0x004F,0x002D,0x0038,0x0038,0x0035,0x0039,0x002D,0x0031,0x0036,0x00 }
+  , { 0x00 }
+  , { 0x0047,0x0042,0x004B,0x00 }
+  , { 0x0043,0x0050,0x0039,0x0033,0x0036,0x00 }
+  , { 0x004D,0x0053,0x0039,0x0033,0x0036,0x00 }
+  , { 0x0077,0x0069,0x006E,0x0064,0x006F,0x0077,0x0073,0x002D,0x0039,0x0033,0x0036,0x00 }
+  , { 0x0047,0x0042,0x0031,0x0038,0x0030,0x0033,0x0030,0x00 }
+  , { 0x004A,0x0049,0x0053,0x005F,0x0045,0x006E,0x0063,0x006F,0x0064,0x0069,0x006E,0x0067,0x00 }
+  , { 0x0063,0x0073,0x004A,0x0049,0x0053,0x0045,0x006E,0x0063,0x006F,0x0064,0x0069,0x006E,0x0067,0x00 }
+  , { 0x0053,0x0068,0x0069,0x0066,0x0074,0x005F,0x004A,0x0049,0x0053,0x00 }
+  , { 0x004D,0x0053,0x005F,0x004B,0x0061,0x006E,0x006A,0x0069,0x00 }
+  , { 0x0063,0x0073,0x0053,0x0068,0x0069,0x0066,0x0074,0x004A,0x0049,0x0053,0x00 }
+  , { 0x0045,0x0078,0x0074,0x0065,0x006E,0x0064,0x0065,0x0064,0x005F,0x0055,0x004E,0x0049,0x0058,0x005F,0x0043,0x006F,0x0064,0x0065,0x005F,0x0050,0x0061,0x0063,0x006B,0x0065,0x0064,0x005F,0x0046,0x006F,0x0072,0x006D,0x0061,0x0074,0x005F,0x0066,0x006F,0x0072,0x005F,0x004A,0x0061,0x0070,0x0061,0x006E,0x0065,0x0073,0x0065,0x00 }
+  , { 0x0063,0x0073,0x0045,0x0055,0x0043,0x0050,0x006B,0x0064,0x0046,0x006D,0x0074,0x004A,0x0061,0x0070,0x0061,0x006E,0x0065,0x0073,0x0065,0x00 }
+  , { 0x0045,0x0055,0x0043,0x002D,0x004A,0x0050,0x00 }
+  , { 0x0045,0x0078,0x0074,0x0065,0x006E,0x0064,0x0065,0x0064,0x005F,0x0055,0x004E,0x0049,0x0058,0x005F,0x0043,0x006F,0x0064,0x0065,0x005F,0x0046,0x0069,0x0078,0x0065,0x0064,0x005F,0x0057,0x0069,0x0064,0x0074,0x0068,0x005F,0x0066,0x006F,0x0072,0x005F,0x004A,0x0061,0x0070,0x0061,0x006E,0x0065,0x0073,0x0065,0x00 }
+  , { 0x0063,0x0073,0x0045,0x0055,0x0043,0x0046,0x0069,0x0078,0x0057,0x0069,0x0064,0x004A,0x0061,0x0070,0x0061,0x006E,0x0065,0x0073,0x0065,0x00 }
+  , { 0x0049,0x0053,0x004F,0x002D,0x0031,0x0030,0x0036,0x0034,0x0036,0x002D,0x0055,0x0043,0x0053,0x002D,0x0042,0x0061,0x0073,0x0069,0x0063,0x00 }
+  , { 0x0063,0x0073,0x0055,0x006E,0x0069,0x0063,0x006F,0x0064,0x0065,0x0041,0x0053,0x0043,0x0049,0x0049,0x00 }
+  , { 0x0049,0x0053,0x004F,0x002D,0x0031,0x0030,0x0036,0x0034,0x0036,0x002D,0x0055,0x006E,0x0069,0x0063,0x006F,0x0064,0x0065,0x002D,0x004C,0x0061,0x0074,0x0069,0x006E,0x0031,0x00 }
+  , { 0x0063,0x0073,0x0055,0x006E,0x0069,0x0063,0x006F,0x0064,0x0065,0x004C,0x0061,0x0074,0x0069,0x006E,0x0031,0x00 }
+  , { 0x0049,0x0053,0x004F,0x002D,0x0031,0x0030,0x0036,0x0034,0x0036,0x00 }
+  , { 0x0049,0x0053,0x004F,0x002D,0x0031,0x0030,0x0036,0x0034,0x0036,0x002D,0x004A,0x002D,0x0031,0x00 }
+  , { 0x0049,0x0053,0x004F,0x002D,0x0055,0x006E,0x0069,0x0063,0x006F,0x0064,0x0065,0x002D,0x0049,0x0042,0x004D,0x002D,0x0031,0x0032,0x0036,0x0031,0x00 }
+  , { 0x0063,0x0073,0x0055,0x006E,0x0069,0x0063,0x006F,0x0064,0x0065,0x0049,0x0042,0x004D,0x0031,0x0032,0x0036,0x0031,0x00 }
+  , { 0x0049,0x0053,0x004F,0x002D,0x0055,0x006E,0x0069,0x0063,0x006F,0x0064,0x0065,0x002D,0x0049,0x0042,0x004D,0x002D,0x0031,0x0032,0x0036,0x0038,0x00 }
+  , { 0x0063,0x0073,0x0055,0x006E,0x0069,0x0063,0x006F,0x0064,0x0065,0x0049,0x0042,0x004D,0x0031,0x0032,0x0036,0x0038,0x00 }
+  , { 0x0049,0x0053,0x004F,0x002D,0x0055,0x006E,0x0069,0x0063,0x006F,0x0064,0x0065,0x002D,0x0049,0x0042,0x004D,0x002D,0x0031,0x0032,0x0037,0x0036,0x00 }
+  , { 0x0063,0x0073,0x0055,0x006E,0x0069,0x0063,0x006F,0x0064,0x0065,0x0049,0x0042,0x004D,0x0031,0x0032,0x0037,0x0036,0x00 }
+  , { 0x0049,0x0053,0x004F,0x002D,0x0055,0x006E,0x0069,0x0063,0x006F,0x0064,0x0065,0x002D,0x0049,0x0042,0x004D,0x002D,0x0031,0x0032,0x0036,0x0034,0x00 }
+  , { 0x0063,0x0073,0x0055,0x006E,0x0069,0x0063,0x006F,0x0064,0x0065,0x0049,0x0042,0x004D,0x0031,0x0032,0x0036,0x0034,0x00 }
+  , { 0x0049,0x0053,0x004F,0x002D,0x0055,0x006E,0x0069,0x0063,0x006F,0x0064,0x0065,0x002D,0x0049,0x0042,0x004D,0x002D,0x0031,0x0032,0x0036,0x0035,0x00 }
+  , { 0x0063,0x0073,0x0055,0x006E,0x0069,0x0063,0x006F,0x0064,0x0065,0x0049,0x0042,0x004D,0x0031,0x0032,0x0036,0x0035,0x00 }
+  , { 0x0049,0x0053,0x004F,0x002D,0x0038,0x0038,0x0035,0x0039,0x002D,0x0031,0x002D,0x0057,0x0069,0x006E,0x0064,0x006F,0x0077,0x0073,0x002D,0x0033,0x002E,0x0030,0x002D,0x004C,0x0061,0x0074,0x0069,0x006E,0x002D,0x0031,0x00 }
+  , { 0x0063,0x0073,0x0057,0x0069,0x006E,0x0064,0x006F,0x0077,0x0073,0x0033,0x0030,0x004C,0x0061,0x0074,0x0069,0x006E,0x0031,0x00 }
+  , { 0x0049,0x0053,0x004F,0x002D,0x0038,0x0038,0x0035,0x0039,0x002D,0x0031,0x002D,0x0057,0x0069,0x006E,0x0064,0x006F,0x0077,0x0073,0x002D,0x0033,0x002E,0x0031,0x002D,0x004C,0x0061,0x0074,0x0069,0x006E,0x002D,0x0031,0x00 }
+  , { 0x0063,0x0073,0x0057,0x0069,0x006E,0x0064,0x006F,0x0077,0x0073,0x0033,0x0031,0x004C,0x0061,0x0074,0x0069,0x006E,0x0031,0x00 }
+  , { 0x0049,0x0053,0x004F,0x002D,0x0038,0x0038,0x0035,0x0039,0x002D,0x0032,0x002D,0x0057,0x0069,0x006E,0x0064,0x006F,0x0077,0x0073,0x002D,0x004C,0x0061,0x0074,0x0069,0x006E,0x002D,0x0032,0x00 }
+  , { 0x0063,0x0073,0x0057,0x0069,0x006E,0x0064,0x006F,0x0077,0x0073,0x0033,0x0031,0x004C,0x0061,0x0074,0x0069,0x006E,0x0032,0x00 }
+  , { 0x0049,0x0053,0x004F,0x002D,0x0038,0x0038,0x0035,0x0039,0x002D,0x0039,0x002D,0x0057,0x0069,0x006E,0x0064,0x006F,0x0077,0x0073,0x002D,0x004C,0x0061,0x0074,0x0069,0x006E,0x002D,0x0035,0x00 }
+  , { 0x0063,0x0073,0x0057,0x0069,0x006E,0x0064,0x006F,0x0077,0x0073,0x0033,0x0031,0x004C,0x0061,0x0074,0x0069,0x006E,0x0035,0x00 }
+  , { 0x0041,0x0064,0x006F,0x0062,0x0065,0x002D,0x0053,0x0074,0x0061,0x006E,0x0064,0x0061,0x0072,0x0064,0x002D,0x0045,0x006E,0x0063,0x006F,0x0064,0x0069,0x006E,0x0067,0x00 }
+  , { 0x0063,0x0073,0x0041,0x0064,0x006F,0x0062,0x0065,0x0053,0x0074,0x0061,0x006E,0x0064,0x0061,0x0072,0x0064,0x0045,0x006E,0x0063,0x006F,0x0064,0x0069,0x006E,0x0067,0x00 }
+  , { 0x0056,0x0065,0x006E,0x0074,0x0075,0x0072,0x0061,0x002D,0x0055,0x0053,0x00 }
+  , { 0x0063,0x0073,0x0056,0x0065,0x006E,0x0074,0x0075,0x0072,0x0061,0x0055,0x0053,0x00 }
+  , { 0x0056,0x0065,0x006E,0x0074,0x0075,0x0072,0x0061,0x002D,0x0049,0x006E,0x0074,0x0065,0x0072,0x006E,0x0061,0x0074,0x0069,0x006F,0x006E,0x0061,0x006C,0x00 }
+  , { 0x0063,0x0073,0x0056,0x0065,0x006E,0x0074,0x0075,0x0072,0x0061,0x0049,0x006E,0x0074,0x0065,0x0072,0x006E,0x0061,0x0074,0x0069,0x006F,0x006E,0x0061,0x006C,0x00 }
+  , { 0x0050,0x0043,0x0038,0x002D,0x0044,0x0061,0x006E,0x0069,0x0073,0x0068,0x002D,0x004E,0x006F,0x0072,0x0077,0x0065,0x0067,0x0069,0x0061,0x006E,0x00 }
+  , { 0x0063,0x0073,0x0050,0x0043,0x0038,0x0044,0x0061,0x006E,0x0069,0x0073,0x0068,0x004E,0x006F,0x0072,0x0077,0x0065,0x0067,0x0069,0x0061,0x006E,0x00 }
+  , { 0x0050,0x0043,0x0038,0x002D,0x0054,0x0075,0x0072,0x006B,0x0069,0x0073,0x0068,0x00 }
+  , { 0x0063,0x0073,0x0050,0x0043,0x0038,0x0054,0x0075,0x0072,0x006B,0x0069,0x0073,0x0068,0x00 }
+  , { 0x0049,0x0042,0x004D,0x002D,0x0053,0x0079,0x006D,0x0062,0x006F,0x006C,0x0073,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0053,0x0079,0x006D,0x0062,0x006F,0x006C,0x0073,0x00 }
+  , { 0x0049,0x0042,0x004D,0x002D,0x0054,0x0068,0x0061,0x0069,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0054,0x0068,0x0061,0x0069,0x00 }
+  , { 0x0048,0x0050,0x002D,0x004C,0x0065,0x0067,0x0061,0x006C,0x00 }
+  , { 0x0063,0x0073,0x0048,0x0050,0x004C,0x0065,0x0067,0x0061,0x006C,0x00 }
+  , { 0x0048,0x0050,0x002D,0x0050,0x0069,0x002D,0x0066,0x006F,0x006E,0x0074,0x00 }
+  , { 0x0063,0x0073,0x0048,0x0050,0x0050,0x0069,0x0046,0x006F,0x006E,0x0074,0x00 }
+  , { 0x0048,0x0050,0x002D,0x004D,0x0061,0x0074,0x0068,0x0038,0x00 }
+  , { 0x0063,0x0073,0x0048,0x0050,0x004D,0x0061,0x0074,0x0068,0x0038,0x00 }
+  , { 0x0041,0x0064,0x006F,0x0062,0x0065,0x002D,0x0053,0x0079,0x006D,0x0062,0x006F,0x006C,0x002D,0x0045,0x006E,0x0063,0x006F,0x0064,0x0069,0x006E,0x0067,0x00 }
+  , { 0x0063,0x0073,0x0048,0x0050,0x0050,0x0053,0x004D,0x0061,0x0074,0x0068,0x00 }
+  , { 0x0048,0x0050,0x002D,0x0044,0x0065,0x0073,0x006B,0x0054,0x006F,0x0070,0x00 }
+  , { 0x0063,0x0073,0x0048,0x0050,0x0044,0x0065,0x0073,0x006B,0x0074,0x006F,0x0070,0x00 }
+  , { 0x0056,0x0065,0x006E,0x0074,0x0075,0x0072,0x0061,0x002D,0x004D,0x0061,0x0074,0x0068,0x00 }
+  , { 0x0063,0x0073,0x0056,0x0065,0x006E,0x0074,0x0075,0x0072,0x0061,0x004D,0x0061,0x0074,0x0068,0x00 }
+  , { 0x004D,0x0069,0x0063,0x0072,0x006F,0x0073,0x006F,0x0066,0x0074,0x002D,0x0050,0x0075,0x0062,0x006C,0x0069,0x0073,0x0068,0x0069,0x006E,0x0067,0x00 }
+  , { 0x0063,0x0073,0x004D,0x0069,0x0063,0x0072,0x006F,0x0073,0x006F,0x0066,0x0074,0x0050,0x0075,0x0062,0x006C,0x0069,0x0073,0x0068,0x0069,0x006E,0x0067,0x00 }
+  , { 0x0057,0x0069,0x006E,0x0064,0x006F,0x0077,0x0073,0x002D,0x0033,0x0031,0x004A,0x00 }
+  , { 0x0063,0x0073,0x0057,0x0069,0x006E,0x0064,0x006F,0x0077,0x0073,0x0033,0x0031,0x004A,0x00 }
+  , { 0x0047,0x0042,0x0032,0x0033,0x0031,0x0032,0x00 }
+  , { 0x0063,0x0073,0x0047,0x0042,0x0032,0x0033,0x0031,0x0032,0x00 }
+  , { 0x0042,0x0069,0x0067,0x0035,0x00 }
+  , { 0x0063,0x0073,0x0042,0x0069,0x0067,0x0035,0x00 }
+  , { 0x0077,0x0069,0x006E,0x0064,0x006F,0x0077,0x0073,0x002D,0x0031,0x0032,0x0035,0x0030,0x00 }
+  , { 0x0077,0x0069,0x006E,0x0064,0x006F,0x0077,0x0073,0x002D,0x0031,0x0032,0x0035,0x0031,0x00 }
+  , { 0x0077,0x0069,0x006E,0x0064,0x006F,0x0077,0x0073,0x002D,0x0031,0x0032,0x0035,0x0032,0x00 }
+  , { 0x0077,0x0069,0x006E,0x0064,0x006F,0x0077,0x0073,0x002D,0x0031,0x0032,0x0035,0x0033,0x00 }
+  , { 0x0077,0x0069,0x006E,0x0064,0x006F,0x0077,0x0073,0x002D,0x0031,0x0032,0x0035,0x0034,0x00 }
+  , { 0x0077,0x0069,0x006E,0x0064,0x006F,0x0077,0x0073,0x002D,0x0031,0x0032,0x0035,0x0035,0x00 }
+  , { 0x0077,0x0069,0x006E,0x0064,0x006F,0x0077,0x0073,0x002D,0x0031,0x0032,0x0035,0x0036,0x00 }
+  , { 0x0077,0x0069,0x006E,0x0064,0x006F,0x0077,0x0073,0x002D,0x0031,0x0032,0x0035,0x0037,0x00 }
+  , { 0x0077,0x0069,0x006E,0x0064,0x006F,0x0077,0x0073,0x002D,0x0031,0x0032,0x0035,0x0038,0x00 }
+  , { 0x0054,0x0049,0x0053,0x002D,0x0036,0x0032,0x0030,0x00 }
+  , { 0x0048,0x005A,0x002D,0x0047,0x0042,0x002D,0x0032,0x0033,0x0031,0x0032,0x00 }
+
+};
+const unsigned int gEncodingArraySize = 791;
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
+
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/internal/BinMemOutputStream.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/internal/BinMemOutputStream.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/internal/BinMemOutputStream.hpp	(revision 2674)
@@ -0,0 +1,103 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: BinMemOutputStream.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#ifndef BINMEMOUTPUTSTREAM_HEADER_GUARD_
+#define BINMEMOUTPUTSTREAM_HEADER_GUARD_
+
+#include <xercesc/framework/BinOutputStream.hpp>
+#include <xercesc/util/PlatformUtils.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class XMLUTIL_EXPORT BinMemOutputStream : public BinOutputStream 
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+
+    ~BinMemOutputStream();
+
+    BinMemOutputStream
+    (
+         int                     initCapacity = 1023
+       , MemoryManager* const    manager      = XMLPlatformUtils::fgMemoryManager
+    );
+
+    // -----------------------------------------------------------------------
+    //  Implementation of the output stream interface
+    // -----------------------------------------------------------------------
+    virtual unsigned int curPos() const;
+
+    virtual void writeBytes
+    (
+      const XMLByte*     const      toGo
+    , const unsigned int            maxToWrite
+    ) ;
+
+    // -----------------------------------------------------------------------
+    //  Getter methods
+    // -----------------------------------------------------------------------
+    const XMLByte* getRawBuffer() const;
+
+    unsigned int getSize() const;
+    void reset();
+
+private :
+    // -----------------------------------------------------------------------
+    //  Unimplemented methods.
+    // -----------------------------------------------------------------------
+    BinMemOutputStream(const BinMemOutputStream&);
+    BinMemOutputStream& operator=(const BinMemOutputStream&);
+
+    // -----------------------------------------------------------------------
+    //  Private helpers
+    // -----------------------------------------------------------------------
+    void insureCapacity(const unsigned int extraNeeded);
+
+    // -----------------------------------------------------------------------
+    //  Private data members
+    //
+    //  fDataBuf
+    //      The pointer to the buffer data. Its grown as needed. Its always
+    //      one larger than fCapacity, to leave room for the null terminator.
+    //
+    //  fIndex
+    //      The current index into the buffer, as characters are appended
+    //      to it. If its zero, then the buffer is empty.
+    //
+    //  fCapacity
+    //      The current capacity of the buffer. Its actually always one
+    //      larger, to leave room for the null terminator.
+    //
+    // -----------------------------------------------------------------------
+    MemoryManager*  fMemoryManager;
+    XMLByte*        fDataBuf;
+    unsigned int    fIndex;
+    unsigned int    fCapacity;
+
+};
+
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
+
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/internal/SGXMLScanner.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/internal/SGXMLScanner.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/internal/SGXMLScanner.hpp	(revision 2674)
@@ -0,0 +1,321 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: SGXMLScanner.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+#if !defined(SGXMLSCANNER_HPP)
+#define SGXMLSCANNER_HPP
+
+#include <xercesc/internal/XMLScanner.hpp>
+#include <xercesc/util/KVStringPair.hpp>
+#include <xercesc/util/ValueHashTableOf.hpp>
+#include <xercesc/util/RefHash3KeysIdPool.hpp>
+#include <xercesc/validators/common/Grammar.hpp>
+#include <xercesc/validators/schema/SchemaElementDecl.hpp>
+
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class SchemaGrammar;
+class SchemaValidator;
+class IdentityConstraintHandler;
+class IdentityConstraint;
+class ContentLeafNameTypeVector;
+class SchemaAttDef;
+class XMLContentModel;
+class XSModel;
+class PSVIAttributeList;
+class PSVIElement;
+
+//  This is a scanner class, which process XML Schema grammar.
+class XMLPARSER_EXPORT SGXMLScanner : public XMLScanner
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+    SGXMLScanner
+    (
+        XMLValidator* const       valToAdopt
+        , GrammarResolver* const grammarResolver
+        , MemoryManager* const    manager = XMLPlatformUtils::fgMemoryManager
+    );
+    SGXMLScanner
+    (
+        XMLDocumentHandler* const docHandler
+        , DocTypeHandler* const   docTypeHandler
+        , XMLEntityHandler* const entityHandler
+        , XMLErrorReporter* const errReporter
+        , XMLValidator* const     valToAdopt
+        , GrammarResolver* const  grammarResolver
+        , MemoryManager* const    manager = XMLPlatformUtils::fgMemoryManager
+    );
+    virtual ~SGXMLScanner();
+
+    // -----------------------------------------------------------------------
+    //  XMLScanner public virtual methods
+    // -----------------------------------------------------------------------
+    virtual const XMLCh* getName() const;
+    virtual NameIdPool<DTDEntityDecl>* getEntityDeclPool();
+    virtual const NameIdPool<DTDEntityDecl>* getEntityDeclPool() const;
+    virtual unsigned int resolveQName
+    (
+        const   XMLCh* const        qName
+        ,       XMLBuffer&          prefixBufToFill
+        , const short               mode
+        ,       int&                prefixColonPos
+    );
+    virtual void scanDocument
+    (
+        const   InputSource&    src
+    );
+    virtual bool scanNext(XMLPScanToken& toFill);
+    virtual Grammar* loadGrammar
+    (
+        const   InputSource&    src
+        , const short           grammarType
+        , const bool            toCache = false
+    );
+    virtual Grammar::GrammarType getCurrentGrammarType() const;
+
+protected:
+    // -----------------------------------------------------------------------
+    //  XMLScanner virtual methods
+    // -----------------------------------------------------------------------
+    virtual void scanReset(const InputSource& src);
+
+    // -----------------------------------------------------------------------
+    //  SGXMLScanner virtual methods
+    // -----------------------------------------------------------------------
+    virtual bool scanStartTag(bool& gotData);
+    virtual void scanEndTag(bool& gotData);
+
+    // -----------------------------------------------------------------------
+    //  Helper methods
+    // -----------------------------------------------------------------------
+    unsigned int buildAttList
+    (
+        const   RefVectorOf<KVStringPair>&  providedAttrs
+        , const unsigned int                attCount
+        ,       XMLElementDecl*             elemDecl
+        ,       RefVectorOf<XMLAttr>&       toFill
+    );
+    bool laxElementValidation(QName* element, ContentLeafNameTypeVector* cv,
+                              const XMLContentModel* const cm,
+                              const unsigned int parentElemDepth);
+    unsigned int rawAttrScan
+    (
+        const   XMLCh* const                elemName
+        ,       RefVectorOf<KVStringPair>&  toFill
+        ,       bool&                       isEmpty
+    );
+    void updateNSMap
+    (
+        const   XMLCh* const    attrName
+        , const XMLCh* const    attrValue
+    );
+    unsigned int resolvePrefix
+    (
+        const   XMLCh* const        prefix
+        , const ElemStack::MapModes mode
+    );
+    void resizeElemState();
+
+    void updateNSMap
+    (
+        const   XMLCh* const    attrName
+        , const XMLCh* const    attrValue
+        , const int             colonPosition
+    );
+    void resizeRawAttrColonList();
+    unsigned int resolveQNameWithColon
+    (
+        const   XMLCh* const        qName
+        ,       XMLBuffer&          prefixBufToFill
+        , const short               mode
+        , const int                 prefixColonPos
+    );
+    // -----------------------------------------------------------------------
+    //  Data members
+    //
+    //  fRawAttrList
+    //      During the initial scan of the attributes we can only do a raw
+    //      scan for key/value pairs. So this vector is used to store them
+    //      until they can be processed (and put into fAttrList.)
+    //
+    //  fSchemaValidator
+    //      The Schema validator instance.
+    //
+    //  fSeeXsi
+    //      This flag indicates a schema has been seen.
+    //
+    //  fElemState
+    //  fElemStateSize
+    //      Stores an element next state from DFA content model - used for
+    //      wildcard validation
+    //
+    // fElemNonDeclPool
+    //      registry for elements without decls in the grammar
+    // fElemCount
+    //      count of the number of start tags seen so far (starts at 1).
+    //      Used for duplicate attribute detection/processing of required/defaulted attributes
+    // fAttDefRegistry
+    //      mapping from XMLAttDef instances to the count of the last
+    //      start tag where they were utilized.
+    // fUndeclaredAttrRegistryNS
+    //      mapping of namespaceId/localName pairs to the count of the last
+    //      start tag in which they occurred.
+    //  fPSVIAttrList
+    //      PSVI attribute list implementation that needs to be
+    //      filled when a PSVIHandler is registered
+    //
+    // -----------------------------------------------------------------------
+    bool                                    fSeeXsi;
+    Grammar::GrammarType                    fGrammarType;
+    unsigned int                            fElemStateSize;
+    unsigned int*                           fElemState;
+    XMLBuffer                               fContent;
+    ValueHashTableOf<XMLCh>*                fEntityTable;
+    RefVectorOf<KVStringPair>*              fRawAttrList;
+    unsigned int                            fRawAttrColonListSize;
+    int*                                    fRawAttrColonList;
+    SchemaGrammar*                          fSchemaGrammar;
+    SchemaValidator*                        fSchemaValidator;
+    IdentityConstraintHandler*              fICHandler;
+    RefHash3KeysIdPool<SchemaElementDecl>*  fElemNonDeclPool;
+    unsigned int                            fElemCount;
+    RefHashTableOf<unsigned int>*           fAttDefRegistry;
+    RefHash2KeysTableOf<unsigned int>*      fUndeclaredAttrRegistryNS;
+    PSVIAttributeList *                     fPSVIAttrList;
+    XSModel*                                fModel;
+    PSVIElement*                            fPSVIElement;
+    ValueStackOf<bool>*                     fErrorStack;
+    PSVIElemContext                         fPSVIElemContext;
+
+private :
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    SGXMLScanner();
+    SGXMLScanner(const SGXMLScanner&);
+    SGXMLScanner& operator=(const SGXMLScanner&);
+
+    // -----------------------------------------------------------------------
+    //  XMLScanner virtual methods
+    // -----------------------------------------------------------------------
+    virtual void scanCDSection();
+    virtual void scanCharData(XMLBuffer& toToUse);
+    virtual EntityExpRes scanEntityRef
+    (
+        const   bool    inAttVal
+        ,       XMLCh&  firstCh
+        ,       XMLCh&  secondCh
+        ,       bool&   escaped
+    );
+    virtual void scanDocTypeDecl();
+    virtual void sendCharData(XMLBuffer& toSend);
+    virtual InputSource* resolveSystemId(const XMLCh* const sysId
+                                        ,const XMLCh* const pubId);
+
+    // -----------------------------------------------------------------------
+    //  Private helper methods
+    // -----------------------------------------------------------------------
+    void commonInit();
+    void cleanUp();
+
+    bool normalizeAttValue
+    (
+        const   XMLAttDef* const    attDef
+        , const XMLCh* const        attrName 
+        , const XMLCh* const        value
+        ,       XMLBuffer&          toFill
+    );
+    bool normalizeAttRawValue
+    (
+        const   XMLCh* const        attrName
+        , const XMLCh* const        value
+        ,       XMLBuffer&          toFill
+    );
+    unsigned int resolvePrefix
+    (
+        const   XMLCh* const        prefix
+        ,       XMLBuffer&          uriBufToFill
+        , const ElemStack::MapModes mode
+    );
+    void scanRawAttrListforNameSpaces(int attCount);
+    void parseSchemaLocation(const XMLCh* const schemaLocationStr);
+    void resolveSchemaGrammar(const XMLCh* const loc, const XMLCh* const uri);
+    bool switchGrammar(const XMLCh* const newGrammarNameSpace);
+    bool anyAttributeValidation(SchemaAttDef* attWildCard,
+                                unsigned int uriId,
+                                bool& skipThisOne,
+                                bool& laxThisOne);
+
+    // -----------------------------------------------------------------------
+    //  Private scanning methods
+    // -----------------------------------------------------------------------
+    bool basicAttrValueScan
+    (
+        const   XMLCh* const    attrName
+        ,       XMLBuffer&      toFill
+    );
+    bool scanAttValue
+    (
+        const   XMLAttDef* const    attDef
+        ,       XMLBuffer&          toFill
+    );
+    bool scanContent();
+
+    // -----------------------------------------------------------------------
+    //  IdentityConstraints Activation methods
+    // -----------------------------------------------------------------------
+    inline bool toCheckIdentityConstraint()  const;
+
+    // -----------------------------------------------------------------------
+    //  Grammar preparsing methods
+    // -----------------------------------------------------------------------
+    Grammar* loadXMLSchemaGrammar(const InputSource& src, const bool toCache = false);
+
+    // -----------------------------------------------------------------------
+    //  PSVI handling methods
+    // -----------------------------------------------------------------------
+    void endElementPSVI(SchemaElementDecl* const elemDecl,
+                        DatatypeValidator* const memberDV);
+    void resetPSVIElemContext();
+};
+
+inline const XMLCh* SGXMLScanner::getName() const
+{
+    return XMLUni::fgSGXMLScanner;
+}
+
+inline bool SGXMLScanner::toCheckIdentityConstraint()  const
+{
+    return fValidate && fIdentityConstraintChecking && fICHandler;
+}
+
+inline Grammar::GrammarType SGXMLScanner::getCurrentGrammarType() const
+{
+    return fGrammarType;
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/internal/XSerializeEngine.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/internal/XSerializeEngine.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/internal/XSerializeEngine.hpp	(revision 2674)
@@ -0,0 +1,873 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: XSerializeEngine.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(XSERIALIZE_ENGINE_HPP)
+#define XSERIALIZE_ENGINE_HPP
+
+#include <xercesc/util/RefHashTableOf.hpp>
+#include <xercesc/util/ValueVectorOf.hpp>
+#include <xercesc/util/XMLExceptMsgs.hpp>
+
+#include <xercesc/internal/XSerializationException.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class XSerializable;
+class XProtoType;
+class MemoryManager;
+class XSerializedObjectId;
+class BinOutputStream;
+class BinInputStream;
+class XMLGrammarPool;
+class XMLGrammarPoolImpl;
+class XMLStringPool;
+
+class XMLUTIL_EXPORT XSerializeEngine
+{
+public:
+
+    enum { mode_Store
+         , mode_Load 
+    };
+    
+
+    static const bool toReadBufferLen;
+
+    typedef unsigned int   XSerializedObjectId_t;
+
+    /***
+      *
+      *  Destructor 
+      *
+      ***/
+    ~XSerializeEngine();
+
+    /***
+      *
+      *  Constructor for de-serialization(loading)
+      *
+      *  Application needs to make sure that the instance of
+      *  BinInputStream, persists beyond the life of this
+      *  SerializeEngine.
+      *
+      *  Param
+      *     inStream         input stream
+      *     gramPool         Grammar Pool
+      *     bufSize          the size of the internal buffer
+      *
+      ***/
+    XSerializeEngine(BinInputStream*         inStream
+                   , XMLGrammarPool* const   gramPool
+                   , unsigned long           bufSize = 8192 );
+
+
+    /***
+      *
+      *  Constructor for serialization(storing)
+      *
+      *  Application needs to make sure that the instance of
+      *  BinOutputStream, persists beyond the life of this
+      *  SerializeEngine.
+      *
+      *  Param
+      *     outStream        output stream
+      *     gramPool         Grammar Pool
+      *     bufSize          the size of the internal buffer
+      *
+      ***/
+    XSerializeEngine(BinOutputStream*        outStream
+                   , XMLGrammarPool* const   gramPool
+                   , unsigned long           bufSize = 8192 );
+
+
+    /***
+      *
+      *  Deprecated
+      *
+      *  Constructor for de-serialization(loading)
+      *
+      *  Application needs to make sure that the instance of
+      *  BinInputStream, persists beyond the life of this
+      *  SerializeEngine.
+      *
+      *  Param
+      *     inStream         input stream
+      *     manager          MemoryManager
+      *     bufSize          the size of the internal buffer
+      *
+      ***/
+    XSerializeEngine(BinInputStream*         inStream
+                   , MemoryManager* const    manager = XMLPlatformUtils::fgMemoryManager
+                   , unsigned long           bufSize = 8192 );
+
+    
+    /***
+      *
+      *  Deprecated
+      *
+      *  Constructor for serialization(storing)
+      *
+      *  Application needs to make sure that the instance of
+      *  BinOutputStream, persists beyond the life of this
+      *  SerializeEngine.
+      *
+      *  Param
+      *     outStream        output stream
+      *     manager          MemoryManager
+      *     bufSize          the size of the internal buffer
+      *
+      ***/
+    XSerializeEngine(BinOutputStream*        outStream
+                   , MemoryManager* const    manager = XMLPlatformUtils::fgMemoryManager
+                   , unsigned long           bufSize = 8192 );
+
+    /***
+      *
+      *  When serialization, flush out the internal buffer
+      *
+      *  Return: 
+      *
+      ***/
+    void flush();
+
+    /***
+      *
+      *  Checking if the serialize engine is doing serialization(storing)
+      *
+      *  Return: true, if it is 
+      *          false, otherwise
+      *
+      ***/
+    inline bool isStoring() const;
+
+    /***
+      *
+      *  Checking if the serialize engine is doing de-serialization(loading)
+      *
+      *  Return: true, if it is 
+      *          false, otherwise
+      *
+      ***/
+    inline bool isLoading() const;
+
+    /***
+      *
+      *  Get the GrammarPool
+      *
+      *  Return: XMLGrammarPool
+      *
+      ***/
+    XMLGrammarPool* getGrammarPool() const;
+
+    /***
+      *
+      *  Get the StringPool
+      *
+      *  Return: XMLStringPool
+      *
+      ***/
+    XMLStringPool* getStringPool() const;
+
+    /***
+      *
+      *  Get the embeded Memory Manager
+      *
+      *  Return: MemoryManager
+      *
+      ***/
+    MemoryManager* getMemoryManager() const;
+
+    /***
+      *
+      *  Get the storer level (the level of the serialize engine
+      *  which created the binary stream that this serialize engine
+      *  is loading).
+      *
+      *  The level returned is meaningful only when
+      *  the engine isLoading.
+      *
+      *  Return: level
+      *
+      ***/
+    inline unsigned short getStorerLevel() const;
+
+    /***
+      *
+      *  Write object to the internal buffer.
+      *
+      *  Param
+      *     objectToWrite:    the object to be serialized
+      *
+      *  Return:
+      *
+      ***/
+           void           write(XSerializable* const objectToWrite);
+
+    /***
+      *
+      *  Write prototype info to the internal buffer.
+      *
+      *  Param
+      *     protoType:    instance of prototype
+      *
+      *  Return:
+      *
+      ***/
+           void           write(XProtoType* const protoType);
+
+    /***
+      *
+      *  Write a stream of XMLByte to the internal buffer.
+      *
+      *  Param
+      *     toWrite:   the stream of XMLByte to write
+      *     writeLen:  the length of the stream
+      *
+      *  Return:
+      *
+      ***/
+           void           write(const XMLByte* const toWrite
+                               ,      int            writeLen);
+
+    /***
+      *
+      *  Write a stream of XMLCh to the internal buffer.
+      *
+      *  Param
+      *     toWrite:   the stream of XMLCh to write
+      *     writeLen:  the length of the stream
+      *
+      *  Return:
+      *
+      ***/
+           void           write(const XMLCh* const toWrite
+                               ,      int          writeLen);
+
+    /***
+      *
+      *  Write a stream of XMLCh to the internal buffer.
+      *
+      *  Write the bufferLen first if requested, then the length
+      *  of the stream followed by the stream.
+      *
+      *  Param
+      *     toWrite:        the stream of XMLCh to write
+      *     bufferLen:      the maximum size of the buffer
+      *     toWriteBufLen:  specify if the bufferLen need to be written or not
+      *
+      *  Return:
+      *
+      ***/
+           void           writeString(const XMLCh* const toWrite
+                                    , const int          bufferLen = 0
+                                    , bool               toWriteBufLen = false);
+
+    /***
+      *
+      *  Write a stream of XMLByte to the internal buffer.
+      *
+      *  Write the bufferLen first if requested, then the length
+      *  of the stream followed by the stream.
+      *
+      *  Param
+      *     toWrite:        the stream of XMLByte to write
+      *     bufferLen:      the maximum size of the buffer
+      *     toWriteBufLen:  specify if the bufferLen need to be written or not
+      *
+      *  Return:
+      *
+      ***/
+           void           writeString(const XMLByte* const toWrite
+                                    , const int            bufferLen = 0
+                                    , bool                 toWriteBufLen = false);
+
+    static const bool toWriteBufferLen;
+
+    /***
+      *
+      *  Read/Create object from the internal buffer.
+      *
+      *  Param
+      *     protoType:    an instance of prototype of the object anticipated
+      *
+      *  Return:          to object read/created
+      *
+      ***/
+	       XSerializable* read(XProtoType* const protoType);
+
+    /***
+      *
+      *  Read prototype object from the internal buffer.
+      *  Verify if the same prototype object found in buffer.
+      *
+      *  Param
+      *     protoType:    an instance of prototype of the object anticipated
+      *     objTag:       the object Tag to an existing object
+      *
+      *  Return:          true  : if matching found
+      *                   false : otherwise
+      *
+      ***/
+           bool           read(XProtoType* const    protoType
+		                     , XSerializedObjectId_t*       objTag);
+
+    /***
+      *
+      *  Read XMLByte stream from the internal buffer.
+      *
+      *  Param
+      *     toRead:   the buffer to hold the XMLByte stream
+      *     readLen:  the length of the XMLByte to read in
+      *
+      *  Return:
+      *
+      ***/
+           void           read(XMLByte* const toRead
+                             , int            readLen);
+
+    /***
+      *
+      *  Read XMLCh stream from the internal buffer.
+      *
+      *  Param
+      *     toRead:   the buffer to hold the XMLCh stream
+      *     readLen:  the length of the XMLCh to read in
+      *
+      *  Return:
+      *
+      ***/
+           void           read(XMLCh* const toRead
+                             , int          readLen);
+
+    /***
+      *
+      *  Read a stream of XMLCh from the internal buffer.
+      *
+      *  Read the bufferLen first if requested, then the length
+      *  of the stream followed by the stream.
+      *
+      *  Param
+      *     toRead:       the pointer to the buffer to hold the XMLCh stream
+      *     bufferLen:    the size of the buffer created
+      *     dataLen:       the length of the stream
+      *     toReadBufLen: specify if the bufferLen need to be read or not
+      *
+      *  Return:
+      *
+      ***/
+           void           readString(XMLCh*&        toRead
+                                   , int&           bufferLen
+                                   , int&           dataLen
+                                   , bool           toReadBufLen = false);
+
+     /***
+       *
+       *  Read a stream of XMLCh from the internal buffer.
+       *
+       *  Read the bufferLen first if requested, then the length
+       *  of the stream followed by the stream.
+       *
+       *  Param
+       *     toRead:       the pointer to the buffer to hold the XMLCh stream
+       *     bufferLen:    the size of the buffer created
+       *
+       *  Return:
+       *
+       ***/
+            inline void     readString(XMLCh*&        toRead
+                                    , int&            bufferLen);
+ 
+     /***
+       *
+       *  Read a stream of XMLCh from the internal buffer.
+       *
+       *  Param
+       *     toRead:       the pointer to the buffer to hold the XMLCh stream
+       *
+       *  Return:
+       *
+       ***/
+            inline void      readString(XMLCh*&        toRead);
+
+    /***
+      *
+      *  Read a stream of XMLByte from the internal buffer.
+      *
+      *  Read the bufferLen first if requested, then the length
+      *  of the stream followed by the stream.
+      *
+      *  Param
+      *     toRead:       the pointer to the buffer to hold the XMLByte stream
+      *     bufferLen:    the size of the buffer created
+      *     dataLen:       the length of the stream
+      *     toReadBufLen: specify if the bufferLen need to be read or not
+      *
+      *  Return:
+      *
+      ***/
+           void           readString(XMLByte*&      toRead
+                                   , int&           bufferLen
+                                   , int&           dataLen
+                                   , bool           toReadBufLen = false);
+
+
+     /***
+       *
+       *  Read a stream of XMLByte from the internal buffer.
+       *
+       *  Read the bufferLen first if requested, then the length
+       *  of the stream followed by the stream.
+       *
+       *  Param
+       *     toRead:       the pointer to the buffer to hold the XMLByte stream
+       *     bufferLen:    the size of the buffer created
+       *
+       *  Return:
+       *
+       ***/
+            inline void       readString(XMLByte*&      toRead
+                                       , int&           bufferLen);
+ 
+     /***
+       *
+       *  Read a stream of XMLByte from the internal buffer.
+       *
+       *  Read the bufferLen first if requested, then the length
+       *  of the stream followed by the stream.
+       *
+       *  Param
+       *     toRead:       the pointer to the buffer to hold the XMLByte stream
+       *     bufferLen:    the size of the buffer created
+       *     dataLen:       the length of the stream
+       *     toReadBufLen: specify if the bufferLen need to be read or not
+       *
+       *  Return:
+       *
+       ***/
+            inline void       readString(XMLByte*&      toRead);
+
+    /***
+      *
+      *  Check if the template object has been stored or not
+      *
+      *  Param
+      *    objectPtr:     the template object pointer
+      *
+      *  Return:          true  : the object has NOT been stored yet
+      *                   false : otherwise
+      *
+      ***/
+           bool           needToStoreObject(void* const templateObjectToWrite);
+
+    /***
+      *
+      *  Check if the template object has been loaded or not
+      *
+      *  Param
+      *    objectPtr:     the address of the template object pointer
+      *
+      *  Return:          true  : the object has NOT been loaded yet
+      *                   false : otherwise
+      *
+      ***/
+           bool           needToLoadObject(void**       templateObjectToRead);
+
+    /***
+      *
+      *  In the case of needToLoadObject() return true, the client
+      *  application needs to instantiate an expected template object, and
+      *  register the address to the engine.
+      *
+      *  Param
+      *    objectPtr:     the template object pointer newly instantiated
+      *
+      *  Return:  
+      *
+      ***/
+           void           registerObject(void* const templateObjectToRegister);
+
+    /***
+      *
+      *  Insertion operator for serializable classes
+      *
+      ***/
+
+	friend XSerializeEngine& operator<<(XSerializeEngine&
+                                      , XSerializable* const );
+
+    /***
+      *
+      *  Insertion operators for 
+      *     . basic Xerces data types
+      *     . built-in types 
+      *
+      ***/
+           XSerializeEngine& operator<<(XMLByte);
+           XSerializeEngine& operator<<(XMLCh);
+
+           XSerializeEngine& operator<<(char);
+           XSerializeEngine& operator<<(short);
+           XSerializeEngine& operator<<(int);
+           XSerializeEngine& operator<<(unsigned int);
+           XSerializeEngine& operator<<(long);
+           XSerializeEngine& operator<<(unsigned long);
+           XSerializeEngine& operator<<(float);
+           XSerializeEngine& operator<<(double);
+           XSerializeEngine& operator<<(bool);
+
+    /***
+      *
+      *  Extraction operators for 
+      *     . basic Xerces data types
+      *     . built-in types 
+      *
+      ***/
+           XSerializeEngine& operator>>(XMLByte&);
+           XSerializeEngine& operator>>(XMLCh&);
+
+           XSerializeEngine& operator>>(char&);
+           XSerializeEngine& operator>>(short&);
+           XSerializeEngine& operator>>(int&);
+           XSerializeEngine& operator>>(unsigned int&);
+           XSerializeEngine& operator>>(long&);
+           XSerializeEngine& operator>>(unsigned long&);
+           XSerializeEngine& operator>>(float&);
+           XSerializeEngine& operator>>(double&);
+           XSerializeEngine& operator>>(bool&);
+
+    /***
+      *
+      *  Getters
+      *
+      ***/
+    inline 
+    XMLSize_t   getBufSize()    const;
+
+    inline 
+    XMLSize_t   getBufCur()     const;
+
+    inline 
+    XMLSize_t   getBufCurAccumulated()     const;
+
+    inline 
+    XMLSize_t   getBufCount()    const;
+
+    void                  trace(char*)     const;
+
+private:
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+	XSerializeEngine();
+    XSerializeEngine(const XSerializeEngine&);
+	XSerializeEngine& operator=(const XSerializeEngine&);
+
+    /***
+      *
+      *   Store Pool Opertions
+      *
+      ***/
+           XSerializedObjectId_t  lookupStorePool(void* const objectPtr) const;
+           void                   addStorePool(void* const objectPtr);
+
+    /***
+      *
+      *   Load Pool Opertions
+      *
+      ***/
+           XSerializable* lookupLoadPool(XSerializedObjectId_t objectTag) const;
+           void           addLoadPool(void* const objectPtr);
+   
+    /***
+      *   
+      *    Intenal Buffer Operations
+      *
+      ***/
+    inline void           checkAndFillBuffer(int bytesNeedToRead);
+
+    inline void           checkAndFlushBuffer(int bytesNeedToWrite);
+
+           void           fillBuffer();
+
+           void           flushBuffer();
+
+           void           pumpCount();
+
+    inline void           resetBuffer();
+
+    /***
+      *   
+      *    Helper
+      *
+      ***/
+    inline void            ensureStoring()                          const;
+
+    inline void            ensureLoading()                          const;
+
+    inline void            ensureStoreBuffer()                      const;
+
+    inline void            ensureLoadBuffer()                       const;
+
+    inline void            ensurePointer(void* const)               const;
+
+    inline void            ensureBufferLen(int  bufferLen)          const;
+
+    inline void            Assert(bool  toEval
+                                , const XMLExcepts::Codes toThrow)  const;
+
+
+    inline XMLSize_t          calBytesNeeded(XMLSize_t)  const;
+
+    inline XMLSize_t          alignAdjust(XMLSize_t)     const;
+
+    inline void            alignBufCur(XMLSize_t);
+
+    // Make XTemplateSerializer friend of XSerializeEngine so that
+    // we can call lookupStorePool and lookupLoadPool in the case of
+    // annotations.
+    friend class XTemplateSerializer;
+
+    // -------------------------------------------------------------------------------
+    //  data
+    //
+    //  fStoreLoad: 
+    //               Indicator: storing(serialization) or loading(de-serialization)
+    //
+    //  fStorerLevel:
+    //              The level of the serialize engine which created the binary 
+    //              stream that this serialize engine is loading
+    //
+    //              It is set by GrammarPool when loading
+    //
+    //  fGrammarPool:
+    //               Thw owning GrammarPool which instantiate this SerializeEngine 
+    //               instance
+    //
+    //  fInputStream:
+    //               Binary stream to read from (de-serialization), provided
+    //               by client application, not owned.
+    //
+    //  fOutputStream:
+    //               Binary stream to write to (serialization), provided 
+    //               by client application, not owned.
+    //
+    //  fBufSize:
+    //               The size of the internal buffer
+    //
+    //  fBufStart/fBufEnd:
+    //               
+    //               The internal buffer.
+    //  fBufEnd:
+    //               one beyond the last valid cell
+    //               fBufEnd === (fBufStart + fBufSize)
+    //
+    //  fBufCur:
+    //               The cursor of the buffer
+    //
+    //  fBufLoadMax:
+    //               Indicating the end of the valid content in the buffer
+    //
+    //  fStorePool:
+    //                Object collection for storing
+    //
+    //  fLoadPool:
+    //                Object collection for loading
+    //
+    //  fMapCount:
+    // -------------------------------------------------------------------------------
+    const short                            fStoreLoad;
+    short                                  fStorerLevel;
+
+    XMLGrammarPool*  const                 fGrammarPool;
+    BinInputStream*  const                 fInputStream;
+    BinOutputStream* const                 fOutputStream;
+
+    XMLSize_t                              fBufCount;
+
+    //buffer
+    const XMLSize_t                        fBufSize;
+	XMLByte* const                         fBufStart;
+	XMLByte* const                         fBufEnd; 
+    XMLByte*                               fBufCur;
+    XMLByte*                               fBufLoadMax; 
+
+
+
+    /***
+     *   Map for storing object
+     *
+     *   key:   XSerializable*
+     *          XProtoType*
+     *
+     *   value: XMLInteger*, owned
+     *
+     ***/
+    RefHashTableOf<XSerializedObjectId>*   fStorePool;  
+
+    /***
+     *   Vector for loading object, objects are NOT owned
+     *
+     *   data:   XSerializable*
+     *           XProtoType*
+     *
+     ***/
+    ValueVectorOf<void*>*                  fLoadPool;    
+
+    /***
+     *   object counter
+     ***/
+	XSerializedObjectId_t                  fObjectCount;
+
+    //to allow grammar pool to set storer level when loading
+    friend class XMLGrammarPoolImpl;
+};
+
+inline bool XSerializeEngine::isStoring() const
+{
+    return (fStoreLoad == mode_Store);
+}
+
+inline bool XSerializeEngine::isLoading() const
+{
+    return (fStoreLoad == mode_Load);
+}
+
+inline XSerializeEngine& operator<<(XSerializeEngine&       serEng
+                                  , XSerializable* const    serObj)
+{
+	serEng.write(serObj); 
+    return serEng; 
+}
+
+inline void XSerializeEngine::ensureStoring() const
+{
+	Assert(isStoring(), XMLExcepts::XSer_Storing_Violation);
+}
+
+inline void XSerializeEngine::ensureLoading() const
+{
+	Assert(isLoading(), XMLExcepts::XSer_Loading_Violation);
+}
+
+
+
+inline void XSerializeEngine::Assert(bool toEval
+                                   , const XMLExcepts::Codes toThrow) const
+{
+    if (!toEval)
+    {
+        ThrowXMLwithMemMgr(XSerializationException, toThrow, getMemoryManager());  
+    }
+
+}
+
+inline void XSerializeEngine::readString(XMLCh*&        toRead
+                                       , int&           bufferLen)
+{
+    int  dummyDataLen;                
+    readString(toRead, bufferLen, dummyDataLen);
+}
+
+inline void XSerializeEngine::readString(XMLCh*&        toRead)
+{
+    int  dummyBufferLen;
+    int  dummyDataLen;
+    readString(toRead, dummyBufferLen, dummyDataLen);
+}
+
+inline void XSerializeEngine::readString(XMLByte*&      toRead
+                                       , int&           bufferLen)
+{
+    int  dummyDataLen;
+    readString(toRead, bufferLen, dummyDataLen);
+}
+
+inline void XSerializeEngine::readString(XMLByte*&      toRead)
+{
+    int  dummyBufferLen;
+    int  dummyDataLen;
+    readString(toRead, dummyBufferLen, dummyDataLen);
+}
+
+inline 
+XMLSize_t XSerializeEngine::getBufSize() const
+{
+    return fBufSize;
+}
+
+inline 
+XMLSize_t XSerializeEngine::getBufCur() const
+{
+    return XMLSize_t (fBufCur-fBufStart);
+}
+
+inline 
+XMLSize_t XSerializeEngine::getBufCurAccumulated() const
+{
+    return (fBufCount - (isStoring() ? 0: 1)) * fBufSize + (fBufCur-fBufStart);
+}
+
+inline 
+XMLSize_t XSerializeEngine::getBufCount() const
+{
+    return fBufCount;
+}
+
+inline 
+unsigned short XSerializeEngine::getStorerLevel() const
+{
+    return fStorerLevel;
+}
+
+/***
+ *  Ought to be nested class
+ ***/
+class XSerializedObjectId : public XMemory
+{
+public:
+
+    ~XSerializedObjectId(){};
+
+private:
+
+    inline XSerializedObjectId(XSerializeEngine::XSerializedObjectId_t val):
+        fData(val) { };
+
+    inline XSerializeEngine::XSerializedObjectId_t getValue() const {return fData; };
+
+    friend class XSerializeEngine;
+
+private:
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+	XSerializedObjectId();
+    XSerializedObjectId(const XSerializedObjectId&);
+	XSerializedObjectId& operator=(const XSerializedObjectId&);
+
+    XSerializeEngine::XSerializedObjectId_t    fData;
+
+};
+
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/internal/XMLInternalErrorHandler.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/internal/XMLInternalErrorHandler.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/internal/XMLInternalErrorHandler.hpp	(revision 2674)
@@ -0,0 +1,139 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: XMLInternalErrorHandler.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(XMLINTERNALERRORHANDLER_HPP)
+#define XMLINTERNALERRORHANDLER_HPP
+
+#include <xercesc/util/XercesDefs.hpp>
+#include <xercesc/sax/ErrorHandler.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class XMLInternalErrorHandler : public ErrorHandler
+{
+public:
+    // -----------------------------------------------------------------------
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+    XMLInternalErrorHandler(ErrorHandler* userHandler = 0) :
+       fSawWarning(false),
+       fSawError(false),
+       fSawFatal(false),
+       fUserErrorHandler(userHandler)
+    {
+    }
+
+    ~XMLInternalErrorHandler()
+    {
+    }
+
+    // -----------------------------------------------------------------------
+    //  Implementation of the error handler interface
+    // -----------------------------------------------------------------------
+    void warning(const SAXParseException& toCatch);
+    void error(const SAXParseException& toCatch);
+    void fatalError(const SAXParseException& toCatch);
+    void resetErrors();
+
+    // -----------------------------------------------------------------------
+    //  Getter methods
+    // -----------------------------------------------------------------------
+    bool getSawWarning() const;
+    bool getSawError() const;
+    bool getSawFatal() const;
+
+    // -----------------------------------------------------------------------
+    //  Private data members
+    //
+    //  fSawWarning
+    //      This is set if we get any warning, and is queryable via a getter
+    //      method.
+    //
+    //  fSawError
+    //      This is set if we get any errors, and is queryable via a getter
+    //      method.
+    //
+    //  fSawFatal
+    //      This is set if we get any fatal, and is queryable via a getter
+    //      method.
+    //
+    //  fUserErrorHandler
+    //      This is the error handler from user
+    // -----------------------------------------------------------------------
+    bool    fSawWarning;
+    bool    fSawError;
+    bool    fSawFatal;
+    ErrorHandler* fUserErrorHandler;
+
+private:
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    XMLInternalErrorHandler(const XMLInternalErrorHandler&);
+    XMLInternalErrorHandler& operator=(const XMLInternalErrorHandler&);
+};
+
+inline bool XMLInternalErrorHandler::getSawWarning() const
+{
+    return fSawWarning;
+}
+
+inline bool XMLInternalErrorHandler::getSawError() const
+{
+    return fSawError;
+}
+
+inline bool XMLInternalErrorHandler::getSawFatal() const
+{
+    return fSawFatal;
+}
+
+inline void XMLInternalErrorHandler::warning(const SAXParseException& toCatch)
+{
+    fSawWarning = true;
+    if (fUserErrorHandler)
+        fUserErrorHandler->warning(toCatch);
+}
+
+inline void XMLInternalErrorHandler::error(const SAXParseException& toCatch)
+{
+    fSawError = true;
+    if (fUserErrorHandler)
+        fUserErrorHandler->error(toCatch);
+}
+
+inline void XMLInternalErrorHandler::fatalError(const SAXParseException& toCatch)
+{
+    fSawFatal = true;
+    if (fUserErrorHandler)
+        fUserErrorHandler->fatalError(toCatch);
+}
+
+inline void XMLInternalErrorHandler::resetErrors()
+{
+    fSawWarning = false;
+    fSawError = false;
+    fSawFatal = false;
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/internal/BinFileOutputStream.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/internal/BinFileOutputStream.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/internal/BinFileOutputStream.hpp	(revision 2674)
@@ -0,0 +1,100 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: BinFileOutputStream.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(BINFILEOUTPUTSTREAM_HPP)
+#define BINFILEOUTPUTSTREAM_HPP
+
+#include <xercesc/framework/BinOutputStream.hpp>
+#include <xercesc/util/PlatformUtils.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class XMLUTIL_EXPORT BinFileOutputStream : public BinOutputStream
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+
+    ~BinFileOutputStream();
+
+    BinFileOutputStream
+    (
+        const   XMLCh* const    fileName
+        , MemoryManager* const  manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    BinFileOutputStream
+    (
+         const   char* const     fileName
+       , MemoryManager* const    manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    // -----------------------------------------------------------------------
+    //  Getter methods
+    // -----------------------------------------------------------------------
+    bool getIsOpen() const;
+    unsigned int getSize() const;
+    void reset();
+
+
+    // -----------------------------------------------------------------------
+    //  Implementation of the input stream interface
+    // -----------------------------------------------------------------------
+    virtual unsigned int curPos() const;
+
+    virtual void writeBytes
+    (
+          const XMLByte* const      toGo
+        , const unsigned int        maxToWrite
+    );
+
+
+private :
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    BinFileOutputStream(const BinFileOutputStream&);
+    BinFileOutputStream& operator=(const BinFileOutputStream&); 
+
+    // -----------------------------------------------------------------------
+    //  Private data members
+    //
+    //  fSource
+    //      The source file that we represent. The FileHandle type is defined
+    //      per platform.
+    // -----------------------------------------------------------------------
+    FileHandle              fSource;
+    MemoryManager* const    fMemoryManager;
+};
+
+
+// ---------------------------------------------------------------------------
+//  BinFileOutputStream: Getter methods
+// ---------------------------------------------------------------------------
+inline bool BinFileOutputStream::getIsOpen() const
+{
+    return (fSource != (FileHandle) XERCES_Invalid_File_Handle);
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/internal/VecAttributesImpl.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/internal/VecAttributesImpl.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/internal/VecAttributesImpl.hpp	(revision 2674)
@@ -0,0 +1,117 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: VecAttributesImpl.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+#if !defined(VECATTRIBUTESIMPL_HPP)
+#define VECATTRIBUTESIMPL_HPP
+
+#include <xercesc/sax2/Attributes.hpp>
+#include <xercesc/framework/XMLAttr.hpp>
+#include <xercesc/util/RefVectorOf.hpp>
+#include <xercesc/internal/XMLScanner.hpp>
+#include <xercesc/framework/XMLBuffer.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class XMLPARSER_EXPORT VecAttributesImpl : public Attributes
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+    VecAttributesImpl();
+    ~VecAttributesImpl();
+
+
+    // -----------------------------------------------------------------------
+    //  Implementation of the attributes interface
+    // -----------------------------------------------------------------------
+    virtual unsigned int getLength() const ;
+
+	virtual const XMLCh* getURI(const unsigned int index) const;
+    virtual const XMLCh* getLocalName(const unsigned int index) const ;
+    virtual const XMLCh* getQName(const unsigned int index) const ;
+    virtual const XMLCh* getType(const unsigned int index) const ;
+    virtual const XMLCh* getValue(const unsigned int index) const ;
+
+	virtual int getIndex(const XMLCh* const uri, const XMLCh* const localPart ) const  ;
+	virtual int getIndex(const XMLCh* const qName ) const  ;
+
+	virtual const XMLCh* getType(const XMLCh* const uri, const XMLCh* const localPart ) const  ;
+    virtual const XMLCh* getType(const XMLCh* const qName) const ;
+
+    virtual const XMLCh* getValue(const XMLCh* const qName) const;
+	virtual const XMLCh* getValue(const XMLCh* const uri, const XMLCh* const localPart ) const  ;
+
+
+    // -----------------------------------------------------------------------
+    //  Setter methods
+    // -----------------------------------------------------------------------
+    void setVector
+    (
+        const   RefVectorOf<XMLAttr>* const srcVec
+        , const unsigned int                count
+		, const XMLScanner * const		scanner
+        , const bool                        adopt = false
+    );
+
+private :
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    VecAttributesImpl(const VecAttributesImpl&);
+    VecAttributesImpl& operator=(const VecAttributesImpl&);
+
+
+    // -----------------------------------------------------------------------
+    //  Private data members
+    //
+    //  fAdopt
+    //      Indicates whether the passed vector is to be adopted or not. If
+    //      so, we destroy it when we are destroyed (and when a new vector is
+    //      set!)
+    //
+    //  fCount
+    //      The count of elements in the vector that should be considered
+    //      valid. This is an optimization to allow vector elements to be
+    //      reused over and over but a different count of them be valid for
+    //      each use.
+    //
+    //  fVector
+    //      The vector that provides the backing for the list.
+	//
+	//	fScanner
+	//		This is a pointer to the in use Scanner, so that we can resolve
+	//		namespace URIs from UriIds
+	//
+	//	fURIBuffer
+	//		A temporary buffer which is re-used when getting namespace URI's
+    // -----------------------------------------------------------------------
+    bool                        fAdopt;
+    unsigned int                fCount;
+    const RefVectorOf<XMLAttr>* fVector;
+	const XMLScanner *		fScanner ;
+	//XMLBuffer				    fURIBuffer ;
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif // ! VECATTRIBUTESIMPL_HPP
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/internal/EndOfEntityException.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/internal/EndOfEntityException.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/internal/EndOfEntityException.hpp	(revision 2674)
@@ -0,0 +1,117 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: EndOfEntityException.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+#if !defined(ENDOFENTITYEXCEPTION_HPP)
+#define ENDOFENTITYEXCEPTION_HPP
+
+#include <xercesc/util/XercesDefs.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class XMLEntityDecl;
+
+//
+//  This class is only used internally. Its thrown by the ReaderMgr class,
+//  when an entity ends, and is caught in the scanner. This tells the scanner
+//  that an entity has ended, and allows it to do the right thing according
+//  to what was going on when the entity ended.
+//
+//  Since its internal, it does not bother implementing XMLException.
+//
+class XMLPARSER_EXPORT EndOfEntityException
+{
+public:
+    // -----------------------------------------------------------------------
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+    EndOfEntityException(       XMLEntityDecl*  entityThatEnded
+                        , const unsigned int    readerNum) :
+
+        fEntity(entityThatEnded)
+        , fReaderNum(readerNum)
+    {
+    }
+
+    EndOfEntityException(const EndOfEntityException& toCopy) :
+
+        fEntity(toCopy.fEntity)
+        , fReaderNum(toCopy.fReaderNum)
+    {
+    }
+
+    ~EndOfEntityException()
+    {
+    }
+
+
+    // -----------------------------------------------------------------------
+    //  Getter methods
+    // -----------------------------------------------------------------------
+    XMLEntityDecl& getEntity();
+    const XMLEntityDecl& getEntity() const;
+    unsigned int getReaderNum() const;
+
+
+private :
+    // -----------------------------------------------------------------------
+    // Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    EndOfEntityException& operator = (const  EndOfEntityException&);
+
+    // -----------------------------------------------------------------------
+    //  Private data members
+    //
+    //  fEntity
+    //      This is a reference to the entity that ended, causing this
+    //      exception.
+    //
+    //  fReaderNum
+    //      The unique reader number of the reader that was handling this
+    //      entity. This is used to know whether a particular entity has
+    //      ended.
+    // -----------------------------------------------------------------------
+    XMLEntityDecl*  fEntity;
+    unsigned int    fReaderNum;
+};
+
+
+// ---------------------------------------------------------------------------
+//  EndOfEntityException: Getter methods
+// ---------------------------------------------------------------------------
+inline XMLEntityDecl& EndOfEntityException::getEntity()
+{
+    return *fEntity;
+}
+
+inline const XMLEntityDecl& EndOfEntityException::getEntity() const
+{
+    return *fEntity;
+}
+
+inline unsigned int EndOfEntityException::getReaderNum() const
+{
+    return fReaderNum;
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/internal/WFXMLScanner.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/internal/WFXMLScanner.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/internal/WFXMLScanner.hpp	(revision 2674)
@@ -0,0 +1,166 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: WFXMLScanner.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+#if !defined(WFXMLSCANNER_HPP)
+#define WFXMLSCANNER_HPP
+
+#include <xercesc/internal/XMLScanner.hpp>
+#include <xercesc/util/ValueHashTableOf.hpp>
+#include <xercesc/util/ValueVectorOf.hpp>
+#include <xercesc/validators/DTD/DTDElementDecl.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+
+//  This is a a non-validating scanner. No DOCTYPE or XML Schema processing
+//  will take place.
+class XMLPARSER_EXPORT WFXMLScanner : public XMLScanner
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+    WFXMLScanner
+    (
+        XMLValidator* const       valToAdopt
+        , GrammarResolver* const  grammarResolver
+        , MemoryManager* const    manager = XMLPlatformUtils::fgMemoryManager
+    );
+    WFXMLScanner
+    (
+        XMLDocumentHandler* const docHandler
+        , DocTypeHandler* const   docTypeHandler
+        , XMLEntityHandler* const entityHandler
+        , XMLErrorReporter* const errReporter
+        , XMLValidator* const     valToAdopt
+        , GrammarResolver* const  grammarResolver
+        , MemoryManager* const    manager = XMLPlatformUtils::fgMemoryManager
+    );
+    virtual ~WFXMLScanner();
+
+    // -----------------------------------------------------------------------
+    //  XMLScanner public virtual methods
+    // -----------------------------------------------------------------------
+    virtual const XMLCh* getName() const;
+    virtual NameIdPool<DTDEntityDecl>* getEntityDeclPool();
+    virtual const NameIdPool<DTDEntityDecl>* getEntityDeclPool() const;
+    virtual unsigned int resolveQName
+    (
+        const   XMLCh* const        qName
+        ,       XMLBuffer&          prefixBufToFill
+        , const short               mode
+        ,       int&                prefixColonPos
+    );
+    virtual void scanDocument
+    (
+        const   InputSource&    src
+    );
+    virtual bool scanNext(XMLPScanToken& toFill);
+    virtual Grammar* loadGrammar
+    (
+        const   InputSource&    src
+        , const short           grammarType
+        , const bool            toCache = false
+    );
+
+private :
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    WFXMLScanner();
+    WFXMLScanner(const WFXMLScanner&);
+    WFXMLScanner& operator=(const WFXMLScanner&);
+
+    // -----------------------------------------------------------------------
+    //  XMLScanner virtual methods
+    // -----------------------------------------------------------------------
+    virtual void scanCDSection();
+    virtual void scanCharData(XMLBuffer& toToUse);
+    virtual EntityExpRes scanEntityRef
+    (
+        const   bool    inAttVal
+        ,       XMLCh&  firstCh
+        ,       XMLCh&  secondCh
+        ,       bool&   escaped
+    );
+    virtual void scanDocTypeDecl();
+    virtual void scanReset(const InputSource& src);
+    virtual void sendCharData(XMLBuffer& toSend);
+    virtual InputSource* resolveSystemId(const XMLCh* const sysId
+                                        ,const XMLCh* const pubId);
+
+    // -----------------------------------------------------------------------
+    //  Private helper methods
+    // -----------------------------------------------------------------------
+    void commonInit();
+    void cleanUp();
+    unsigned int resolvePrefix
+    (
+        const   XMLCh* const        prefix
+        , const ElemStack::MapModes mode
+    );
+
+    // -----------------------------------------------------------------------
+    //  Private scanning methods
+    // -----------------------------------------------------------------------
+    bool scanAttValue
+    (
+        const   XMLCh* const    attrName
+        ,       XMLBuffer&      toFill
+    );
+    bool scanContent();
+    void scanEndTag(bool& gotData);
+    bool scanStartTag(bool& gotData);
+    bool scanStartTagNS(bool& gotData);
+
+    // -----------------------------------------------------------------------
+    //  Data members
+    //
+    //  fEntityTable
+    //      This the table that contains the default entity entries.
+    //
+    //  fAttrNameHashList
+    //      This contains the hash value for attribute names. It's used when
+    //      checking for duplicate attributes.
+    //
+    //  fAttrNSList
+    //      This contains XMLAttr objects that we need to map their prefixes
+    //      to URIs when namespace is enabled.
+    //
+    // -----------------------------------------------------------------------
+    unsigned int                       fElementIndex;
+    RefVectorOf<XMLElementDecl>*       fElements;
+    ValueHashTableOf<XMLCh>*           fEntityTable;
+    ValueVectorOf<unsigned int>*       fAttrNameHashList;
+    ValueVectorOf<XMLAttr*>*           fAttrNSList;
+    RefHashTableOf<XMLElementDecl>*    fElementLookup;  
+};
+
+inline const XMLCh* WFXMLScanner::getName() const
+{
+    return XMLUni::fgWFXMLScanner;
+}
+
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/internal/ElemStack.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/internal/ElemStack.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/internal/ElemStack.hpp	(revision 2674)
@@ -0,0 +1,587 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: ElemStack.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(ELEMSTACK_HPP)
+#define ELEMSTACK_HPP
+
+#include <xercesc/util/StringPool.hpp>
+#include <xercesc/util/QName.hpp>
+#include <xercesc/util/ValueVectorOf.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class XMLElementDecl;
+class Grammar;
+
+struct PrefMapElem : public XMemory
+{
+    unsigned int        fPrefId;
+    unsigned int        fURIId;
+};
+
+//
+//  During the scan of content, we have to keep up with the nesting of
+//  elements (for validation and wellformedness purposes) and we have to
+//  have places to remember namespace (prefix to URI) mappings.
+//
+//  We only have to keep a stack of the current path down through the tree
+//  that we are currently scanning, and keep track of any children of any
+//  elements along that path.
+//
+//  So, this data structure is a stack, which represents the current path
+//  through the tree that we've worked our way down to. For each node in
+//  the stack, there is an array of element ids that represent the ids of
+//  the child elements scanned so far. Upon exit from that element, its
+//  array of child elements is validated.
+//
+//  Since we have the actual XMLElementDecl in the stack nodes, when its time
+//  to validate, we just extract the content model from that element decl
+//  and validate. All the required data falls easily to hand. Note that we
+//  actually have some derivative of XMLElementDecl, which is specific to
+//  the validator used, but the abstract API is sufficient for the needs of
+//  the scanner.
+//
+//  Since the namespace support also requires the storage of information on
+//  a nested element basis, this structure also holds the namespace info. For
+//  each level, the prefixes defined at that level (and the namespaces that
+//  they map to) are stored.
+//
+class XMLPARSER_EXPORT ElemStack : public XMemory
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Class specific data types
+    //
+    //  These really should be private, but some of the compilers we have to
+    //  support are too dumb to deal with that.
+    //
+    //  PrefMapElem
+    //      fURIId is the id of the URI from the validator's URI map. The
+    //      fPrefId is the id of the prefix from our own prefix pool. The
+    //      namespace stack consists of these elements.
+    //
+    //  StackElem
+    //      fThisElement is the basic element decl for the current element.
+    //      The fRowCapacity is how large fChildIds has grown so far.
+    //      fChildCount is how many of them are valid right now.
+    //
+    //      The fMapCapacity is how large fMap has grown so far. fMapCount
+    //      is how many of them are valid right now.
+    //
+    //      Note that we store the reader number we were in when we found the
+    //      start tag. We'll use this at the end tag to test for unbalanced
+    //      markup in entities.
+    //
+    //  MapModes
+    //      When a prefix is mapped to a namespace id, it matters whether the
+    //      QName being mapped is an attribute or name. Attributes are not
+    //      affected by an sibling xmlns attributes, whereas elements are
+    //      affected by its own xmlns attributes.
+    // -----------------------------------------------------------------------
+    struct StackElem : public XMemory
+    {
+        XMLElementDecl*     fThisElement;
+        unsigned int        fReaderNum;
+
+        unsigned int        fChildCapacity;
+        unsigned int        fChildCount;
+        QName**             fChildren;
+
+        PrefMapElem*        fMap;
+        unsigned int        fMapCapacity;
+        unsigned int        fMapCount;
+
+        bool                fValidationFlag;
+        bool                fCommentOrPISeen;
+        bool                fReferenceEscaped;
+        int                 fCurrentScope;
+        Grammar*            fCurrentGrammar;
+        unsigned int        fCurrentURI;
+        XMLCh *             fSchemaElemName;
+        unsigned int        fSchemaElemNameMaxLen;
+        
+        int                 fPrefixColonPos;
+    };
+
+    enum MapModes
+    {
+        Mode_Attribute
+        , Mode_Element
+    };
+
+
+    // -----------------------------------------------------------------------
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+    ElemStack(MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+    ~ElemStack();
+
+
+    // -----------------------------------------------------------------------
+    //  Stack access
+    // -----------------------------------------------------------------------
+    unsigned int addLevel();
+    unsigned int addLevel(XMLElementDecl* const toSet, const unsigned int readerNum);
+    const StackElem* popTop();
+
+
+    // -----------------------------------------------------------------------
+    //  Stack top access
+    // -----------------------------------------------------------------------
+    unsigned int addChild(QName* const child, const bool toParent);
+    const StackElem* topElement() const;
+    void setElement(XMLElementDecl* const toSet, const unsigned int readerNum);
+
+    void setValidationFlag(bool validationFlag);
+    bool getValidationFlag();
+
+    inline void setCommentOrPISeen();
+    inline bool getCommentOrPISeen() const;
+
+    inline void setReferenceEscaped();
+    inline bool getReferenceEscaped() const;
+
+    void setCurrentScope(int currentScope);
+    int getCurrentScope();
+
+    void setCurrentGrammar(Grammar* currentGrammar);
+    Grammar* getCurrentGrammar();
+
+    void setCurrentURI(unsigned int uri);
+    unsigned int getCurrentURI();
+
+    inline void setCurrentSchemaElemName(const XMLCh * const schemaElemName);
+    inline XMLCh *getCurrentSchemaElemName();
+
+    void setPrefixColonPos(int colonPos);
+    int getPrefixColonPos() const;
+
+    // -----------------------------------------------------------------------
+    //  Prefix map methods
+    // -----------------------------------------------------------------------
+    void addPrefix
+    (
+        const   XMLCh* const    prefixToAdd
+        , const unsigned int    uriId
+    );
+    unsigned int mapPrefixToURI
+    (
+        const   XMLCh* const    prefixToMap
+        , const MapModes        mode
+        ,       bool&           unknown
+    )   const;
+    ValueVectorOf<PrefMapElem*>* getNamespaceMap() const;
+    unsigned int getPrefixId(const XMLCh* const prefix) const;
+    const XMLCh* getPrefixForId(unsigned int prefId) const;
+
+    // -----------------------------------------------------------------------
+    //  Miscellaneous methods
+    // -----------------------------------------------------------------------
+    bool isEmpty() const;
+    void reset
+    (
+        const   unsigned int    emptyId
+        , const unsigned int    unknownId
+        , const unsigned int    xmlId
+        , const unsigned int    xmlNSId
+    );
+
+
+private :
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    ElemStack(const ElemStack&);
+    ElemStack& operator=(const ElemStack&);
+
+
+    // -----------------------------------------------------------------------
+    //  Private helper methods
+    // -----------------------------------------------------------------------
+    void expandMap(StackElem* const toExpand);
+    void expandStack();
+
+
+    // -----------------------------------------------------------------------
+    //  Data members
+    //
+    //  fEmptyNamespaceId
+    //      This is the special URI id for the "" namespace, which is magic
+    //      because of the xmlns="" operation.
+    //
+    //  fGlobalPoolId
+    //      This is a special URI id that is returned when the namespace
+    //      prefix is "" and no one has explicitly mapped that prefix to an
+    //      explicit URI (or when they explicitly clear any such mapping,
+    //      which they can also do.) And also its prefix pool id, which is
+    //      stored here for fast access.
+    //
+    //  fPrefixPool
+    //      This is the prefix pool where prefixes are hashed and given unique
+    //      ids. These ids are used to track prefixes in the element stack.
+    //
+    //  fStack
+    //  fStackCapacity
+    //  fStackTop
+    //      This the stack array. Its an array of pointers to StackElem
+    //      structures. The capacity is the current high water mark of the
+    //      stack. The top is the current top of stack (i.e. the part of it
+    //      being used.)
+    //
+    //  fUnknownNamespaceId
+    //      This is the URI id for the special URI that is assigned to any
+    //      prefix which has not been mapped. This lets us keep going after
+    //      issuing the error.
+    //
+    //  fXMLNamespaceId
+    //  fXMLPoolId
+    //  fXMLNSNamespaceId
+    //  fXMLNSPoolId
+    //      These are the URI ids for the special URIs that are assigned to
+    //      the 'xml' and 'xmlns' namespaces. And also its prefix pool id,
+    //      which is stored here for fast access.
+    // -----------------------------------------------------------------------
+    unsigned int                 fEmptyNamespaceId;
+    unsigned int                 fGlobalPoolId;
+    XMLStringPool                fPrefixPool;
+    StackElem**                  fStack;
+    unsigned int                 fStackCapacity;
+    unsigned int                 fStackTop;
+    unsigned int                 fUnknownNamespaceId;
+    unsigned int                 fXMLNamespaceId;
+    unsigned int                 fXMLPoolId;
+    unsigned int                 fXMLNSNamespaceId;
+    unsigned int                 fXMLNSPoolId;
+    ValueVectorOf<PrefMapElem*>* fNamespaceMap;
+    MemoryManager*               fMemoryManager;
+};
+
+
+class XMLPARSER_EXPORT WFElemStack : public XMemory
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Class specific data types
+    //
+    //  These really should be private, but some of the compilers we have to
+    //  support are too dumb to deal with that.
+    //
+    //  PrefMapElem
+    //      fURIId is the id of the URI from the validator's URI map. The
+    //      fPrefId is the id of the prefix from our own prefix pool. The
+    //      namespace stack consists of these elements.
+    //
+    //  StackElem
+    //      fThisElement is the basic element decl for the current element.
+    //      The fRowCapacity is how large fChildIds has grown so far.
+    //      fChildCount is how many of them are valid right now.
+    //
+    //      The fMapCapacity is how large fMap has grown so far. fMapCount
+    //      is how many of them are valid right now.
+    //
+    //      Note that we store the reader number we were in when we found the
+    //      start tag. We'll use this at the end tag to test for unbalanced
+    //      markup in entities.
+    //
+    //  MapModes
+    //      When a prefix is mapped to a namespace id, it matters whether the
+    //      QName being mapped is an attribute or name. Attributes are not
+    //      affected by an sibling xmlns attributes, whereas elements are
+    //      affected by its own xmlns attributes.
+    // -----------------------------------------------------------------------
+    struct StackElem : public XMemory
+    {
+        int                 fTopPrefix;        
+        unsigned int        fCurrentURI;
+        unsigned int        fReaderNum;
+        unsigned int        fElemMaxLength;
+        XMLCh*              fThisElement;
+    };
+
+    enum MapModes
+    {
+        Mode_Attribute
+        , Mode_Element
+    };
+
+
+    // -----------------------------------------------------------------------
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+    WFElemStack(MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+    ~WFElemStack();
+
+
+    // -----------------------------------------------------------------------
+    //  Stack access
+    // -----------------------------------------------------------------------
+    unsigned int addLevel();
+    unsigned int addLevel(const XMLCh* const toSet, const unsigned int toSetLen,
+                          const unsigned int readerNum);
+    const StackElem* popTop();
+
+
+    // -----------------------------------------------------------------------
+    //  Stack top access
+    // -----------------------------------------------------------------------
+    const StackElem* topElement() const;
+    void setElement(const XMLCh* const toSet, const unsigned int toSetLen,
+                    const unsigned int readerNum);
+
+    void setCurrentURI(unsigned int uri);
+    unsigned int getCurrentURI();
+
+    // -----------------------------------------------------------------------
+    //  Prefix map methods
+    // -----------------------------------------------------------------------
+    void addPrefix
+    (
+        const   XMLCh* const    prefixToAdd
+        , const unsigned int    uriId
+    );
+    unsigned int mapPrefixToURI
+    (
+        const   XMLCh* const    prefixToMap
+        , const MapModes        mode
+        ,       bool&           unknown
+    )   const;
+
+
+    // -----------------------------------------------------------------------
+    //  Miscellaneous methods
+    // -----------------------------------------------------------------------
+    bool isEmpty() const;
+    void reset
+    (
+        const   unsigned int    emptyId
+        , const unsigned int    unknownId
+        , const unsigned int    xmlId
+        , const unsigned int    xmlNSId
+    );
+
+
+private :
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    WFElemStack(const WFElemStack&);
+    WFElemStack& operator=(const WFElemStack&);
+
+
+    // -----------------------------------------------------------------------
+    //  Private helper methods
+    // -----------------------------------------------------------------------
+    void expandMap();
+    void expandStack();
+
+
+    // -----------------------------------------------------------------------
+    //  Data members
+    //
+    //  fEmptyNamespaceId
+    //      This is the special URI id for the "" namespace, which is magic
+    //      because of the xmlns="" operation.
+    //
+    //  fGlobalPoolId
+    //      This is a special URI id that is returned when the namespace
+    //      prefix is "" and no one has explicitly mapped that prefix to an
+    //      explicit URI (or when they explicitly clear any such mapping,
+    //      which they can also do.) And also its prefix pool id, which is
+    //      stored here for fast access.
+    //
+    //  fPrefixPool
+    //      This is the prefix pool where prefixes are hashed and given unique
+    //      ids. These ids are used to track prefixes in the element stack.
+    //
+    //  fStack
+    //  fStackCapacity
+    //  fStackTop
+    //      This the stack array. Its an array of pointers to StackElem
+    //      structures. The capacity is the current high water mark of the
+    //      stack. The top is the current top of stack (i.e. the part of it
+    //      being used.)
+    //
+    //  fUnknownNamespaceId
+    //      This is the URI id for the special URI that is assigned to any
+    //      prefix which has not been mapped. This lets us keep going after
+    //      issuing the error.
+    //
+    //  fXMLNamespaceId
+    //  fXMLPoolId
+    //  fXMLNSNamespaceId
+    //  fXMLNSPoolId
+    //      These are the URI ids for the special URIs that are assigned to
+    //      the 'xml' and 'xmlns' namespaces. And also its prefix pool id,
+    //      which is stored here for fast access.
+    // -----------------------------------------------------------------------
+    unsigned int    fEmptyNamespaceId;
+    unsigned int    fGlobalPoolId;
+    unsigned int    fStackCapacity;
+    unsigned int    fStackTop;
+    unsigned int    fUnknownNamespaceId;
+    unsigned int    fXMLNamespaceId;
+    unsigned int    fXMLPoolId;
+    unsigned int    fXMLNSNamespaceId;
+    unsigned int    fXMLNSPoolId;
+    unsigned int    fMapCapacity;
+    PrefMapElem*    fMap;
+    StackElem**     fStack;
+    XMLStringPool   fPrefixPool;
+    MemoryManager*  fMemoryManager;
+};
+
+
+// ---------------------------------------------------------------------------
+//  ElemStack: Miscellaneous methods
+// ---------------------------------------------------------------------------
+inline bool ElemStack::isEmpty() const
+{
+    return (fStackTop == 0);
+}
+
+inline bool ElemStack::getValidationFlag()
+{
+    return fStack[fStackTop-1]->fValidationFlag;
+}
+
+inline void ElemStack::setValidationFlag(bool validationFlag)
+{
+    fStack[fStackTop-1]->fValidationFlag = validationFlag;
+    return;
+}
+
+inline bool ElemStack::getCommentOrPISeen() const
+{
+    return fStack[fStackTop-1]->fCommentOrPISeen;
+}
+
+inline void ElemStack::setCommentOrPISeen()
+{
+    fStack[fStackTop-1]->fCommentOrPISeen = true;
+    return;
+}
+
+inline bool ElemStack::getReferenceEscaped() const
+{
+    return fStack[fStackTop-1]->fReferenceEscaped;
+}
+
+inline void ElemStack::setReferenceEscaped()
+{
+    fStack[fStackTop-1]->fReferenceEscaped = true;
+    return;
+}
+
+inline void ElemStack::setCurrentSchemaElemName(const XMLCh * const schemaElemName)
+{
+    unsigned int schemaElemNameLen = XMLString::stringLen(schemaElemName);
+    unsigned int stackPos = fStackTop-1;
+    
+    if(fStack[stackPos]->fSchemaElemNameMaxLen <= schemaElemNameLen)
+    {
+        XMLCh *tempStr = fStack[stackPos]->fSchemaElemName;
+        fStack[stackPos]->fSchemaElemNameMaxLen = schemaElemNameLen << 1;
+        fStack[stackPos]->fSchemaElemName = (XMLCh *)fMemoryManager->allocate((fStack[stackPos]->fSchemaElemNameMaxLen)*sizeof(XMLCh));
+        fMemoryManager->deallocate(tempStr);
+    }
+    XMLString::copyString(fStack[stackPos]->fSchemaElemName, schemaElemName);
+}
+
+inline XMLCh *ElemStack::getCurrentSchemaElemName()
+{
+    return fStack[fStackTop-1]->fSchemaElemName;
+}
+
+inline int ElemStack::getCurrentScope()
+{
+    return fStack[fStackTop-1]->fCurrentScope;
+}
+
+inline void ElemStack::setCurrentScope(int currentScope)
+{
+    fStack[fStackTop-1]->fCurrentScope = currentScope;
+    return;
+}
+
+inline Grammar* ElemStack::getCurrentGrammar()
+{
+    return fStack[fStackTop-1]->fCurrentGrammar;
+}
+
+inline void ElemStack::setCurrentGrammar(Grammar* currentGrammar)
+{
+    fStack[fStackTop-1]->fCurrentGrammar = currentGrammar;
+    return;
+}
+
+inline unsigned int ElemStack::getCurrentURI()
+{
+    return fStack[fStackTop-1]->fCurrentURI;
+}
+
+inline void ElemStack::setCurrentURI(unsigned int uri)
+{
+    fStack[fStackTop-1]->fCurrentURI = uri;
+    return;
+}
+
+inline unsigned int ElemStack::getPrefixId(const XMLCh* const prefix) const
+{
+    return fPrefixPool.getId(prefix);
+}
+
+inline const XMLCh* ElemStack::getPrefixForId(unsigned int prefId) const
+{
+    return fPrefixPool.getValueForId(prefId);
+}
+
+inline void ElemStack::setPrefixColonPos(int colonPos)
+{
+    fStack[fStackTop-1]->fPrefixColonPos = colonPos;
+}
+ 
+inline int ElemStack::getPrefixColonPos() const {
+    return fStack[fStackTop-1]->fPrefixColonPos;
+}
+
+// ---------------------------------------------------------------------------
+//  WFElemStack: Miscellaneous methods
+// ---------------------------------------------------------------------------
+inline bool WFElemStack::isEmpty() const
+{
+    return (fStackTop == 0);
+}
+
+inline unsigned int WFElemStack::getCurrentURI()
+{
+    return fStack[fStackTop-1]->fCurrentURI;
+}
+
+inline void WFElemStack::setCurrentURI(unsigned int uri)
+{
+    fStack[fStackTop-1]->fCurrentURI = uri;
+    return;
+}
+
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/internal/ReaderMgr.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/internal/ReaderMgr.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/internal/ReaderMgr.hpp	(revision 2674)
@@ -0,0 +1,436 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: ReaderMgr.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(READERMGR_HPP)
+#define READERMGR_HPP
+
+#include <xercesc/internal/XMLReader.hpp>
+#include <xercesc/util/PlatformUtils.hpp>
+#include <xercesc/util/RefStackOf.hpp>
+#include <xercesc/sax/Locator.hpp>
+#include <xercesc/framework/XMLBuffer.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class XMLEntityDecl;
+class XMLEntityHandler;
+class XMLDocumentHandler;
+class XMLScanner;
+
+
+// ---------------------------------------------------------------------------
+//  This class is used by the scanner. The scanner must deal with expansion
+//  of entities, some of which are totally different files (external parsed
+//  entities.) It does so by pushing readers onto a stack. The top reader is
+//  the one it wants to read out of, but that one must be popped when it is
+//  empty. To keep that logic from being all over the place, the scanner
+//  talks to the reader manager, which handles the stack and popping off
+//  used up readers.
+// ---------------------------------------------------------------------------
+class XMLPARSER_EXPORT ReaderMgr :   public XMemory 
+                                   , public Locator
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Class specific types
+    // -----------------------------------------------------------------------
+    struct LastExtEntityInfo : public XMemory
+    {
+        const   XMLCh*          systemId;
+        const   XMLCh*          publicId;
+                XMLSSize_t      lineNumber;
+                XMLSSize_t      colNumber;
+    };
+
+
+    // -----------------------------------------------------------------------
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+    ReaderMgr(MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+    ~ReaderMgr();
+
+
+    // -----------------------------------------------------------------------
+    //  Convenience scanning methods
+    //
+    //  This are all convenience methods that work in terms of the core
+    //  character spooling methods.
+    // -----------------------------------------------------------------------
+    bool atEOF() const;
+    bool getName(XMLBuffer& toFill);
+    bool getQName(XMLBuffer& toFill, int* colonPosition);
+    bool getNameToken(XMLBuffer& toFill);
+    XMLCh getNextChar();
+    bool getNextCharIfNot(const XMLCh chNotToGet, XMLCh& chGotten);
+    void movePlainContentChars(XMLBuffer &dest);
+    void getSpaces(XMLBuffer& toFill);
+    void getUpToCharOrWS(XMLBuffer& toFill, const XMLCh toCheck);
+    bool isEmpty() const;
+    bool lookingAtChar(const XMLCh toCheck);
+    bool lookingAtSpace();
+    XMLCh peekNextChar();
+    bool skipIfQuote(XMLCh& chGotten);
+    void skipPastChar(const XMLCh toSkip);
+    bool skipPastSpaces(bool inDecl = false);
+    void skipToChar(const XMLCh toSkipTo);
+    bool skippedChar(const XMLCh toSkip);
+    bool skippedSpace();
+    bool skippedString(const XMLCh* const toSkip);
+    void skipQuotedString(const XMLCh quoteCh);
+    XMLCh skipUntilIn(const XMLCh* const listToSkip);
+    XMLCh skipUntilInOrWS(const XMLCh* const listToSkip);
+    bool peekString(const XMLCh* const toPeek);
+
+
+    // -----------------------------------------------------------------------
+    //  Control methods
+    // -----------------------------------------------------------------------
+    void cleanStackBackTo(const unsigned int readerNum);
+    XMLReader* createReader
+    (
+        const   InputSource&        src
+        , const bool                xmlDecl
+        , const XMLReader::RefFrom  refFrom
+        , const XMLReader::Types    type
+        , const XMLReader::Sources  source
+        , const bool                calcSrsOfs = true
+    );
+    XMLReader* createReader
+    (
+        const   XMLCh* const        sysId
+        , const XMLCh* const        pubId
+        , const bool                xmlDecl
+        , const XMLReader::RefFrom  refFrom
+        , const XMLReader::Types    type
+        , const XMLReader::Sources  source
+        ,       InputSource*&       srcToFill
+        , const bool                calcSrcOfs = true
+        , const bool                disableDefaultEntityResolution = false
+    );
+    XMLReader* createReader
+    (
+        const   XMLCh* const        baseURI
+        , const XMLCh* const        sysId
+        , const XMLCh* const        pubId
+        , const bool                xmlDecl
+        , const XMLReader::RefFrom  refFrom
+        , const XMLReader::Types    type
+        , const XMLReader::Sources  source
+        ,       InputSource*&       srcToFill
+        , const bool                calcSrcOfs = true
+        , const bool                disableDefaultEntityResolution = false
+    );
+    XMLReader* createIntEntReader
+    (
+        const   XMLCh* const        sysId
+        , const XMLReader::RefFrom  refFrom
+        , const XMLReader::Types    type
+        , const XMLCh* const        dataBuf
+        , const unsigned int        dataLen
+        , const bool                copyBuf
+        , const bool                calcSrcOfs = true
+    );
+    bool isScanningPERefOutOfLiteral() const;
+    bool pushReader
+    (
+                XMLReader* const        reader
+        ,       XMLEntityDecl* const    entity
+    );
+    void reset();
+
+
+    // -----------------------------------------------------------------------
+    //  Getter methods
+    // -----------------------------------------------------------------------
+    const XMLCh* getCurrentEncodingStr() const;
+    const XMLEntityDecl* getCurrentEntity() const;
+    XMLEntityDecl* getCurrentEntity();
+    const XMLReader* getCurrentReader() const;
+    XMLReader* getCurrentReader();
+    unsigned int getCurrentReaderNum() const;
+    unsigned int getReaderDepth() const;
+    void getLastExtEntityInfo(LastExtEntityInfo& lastInfo) const;
+    unsigned int getSrcOffset() const;
+    bool getThrowEOE() const;
+
+
+    // -----------------------------------------------------------------------
+    //  Setter methods
+    // -----------------------------------------------------------------------
+    void setEntityHandler(XMLEntityHandler* const newHandler);
+    void setThrowEOE(const bool newValue);
+    void setXMLVersion(const XMLReader::XMLVersion version);
+    void setStandardUriConformant(const bool newValue);
+
+    // -----------------------------------------------------------------------
+    //  Implement the SAX Locator interface
+    // -----------------------------------------------------------------------
+    virtual const XMLCh* getPublicId() const;
+    virtual const XMLCh* getSystemId() const;
+    virtual XMLSSize_t getLineNumber() const;
+    virtual XMLSSize_t getColumnNumber() const;
+
+
+private :
+    // -----------------------------------------------------------------------
+    //  Private helper methods
+    // -----------------------------------------------------------------------
+    const XMLReader* getLastExtEntity(const XMLEntityDecl*& itsEntity) const;
+    bool popReader();
+
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    ReaderMgr(const ReaderMgr&);
+    ReaderMgr& operator=(const ReaderMgr&);
+
+    // -----------------------------------------------------------------------
+    //  Private data members
+    //
+    //  fCurEntity
+    //      This is the current top of stack entity. We pull it off the stack
+    //      and store it here for efficiency.
+    //
+    //  fCurReader
+    //      This is the current top of stack reader. We pull it off the
+    //      stack and store it here for efficiency.
+    //
+    //  fEntityHandler
+    //      This is the installed entity handler. Its installed via the
+    //      scanner but he passes it on to us since we need it the most, in
+    //      process of creating external entity readers.
+    //
+    //  fEntityStack
+    //      We need to keep up with which of the pushed readers are pushed
+    //      entity values that are being spooled. This is done to avoid the
+    //      problem of recursive definitions. This stack consists of refs to
+    //      EntityDecl objects for the pushed entities.
+    //
+    //  fNextReaderNum
+    //      This is the reader serial number value. Each new reader that is
+    //      created from this reader is given a successive number. This lets
+    //      us catch things like partial markup errors and such.
+    //
+    //  fReaderStack
+    //      This is the stack of reader references. We own all the readers
+    //      and destroy them when they are used up.
+    //
+    //  fThrowEOE
+    //      This flag controls whether we throw an exception when we hit an
+    //      end of entity. The scanner doesn't really need to know about ends
+    //      of entities in the int/ext subsets, so it will turn this flag off
+    //      until it gets into the content usually.
+    //
+    //  fXMLVersion
+    //      Enum to indicate if each Reader should be created as XML 1.1 or
+    //      XML 1.0 conformant
+    //
+    //  fStandardUriConformant
+    //      This flag controls whether we force conformant URI
+    // -----------------------------------------------------------------------
+    XMLEntityDecl*              fCurEntity;
+    XMLReader*                  fCurReader;
+    XMLEntityHandler*           fEntityHandler;
+    RefStackOf<XMLEntityDecl>*  fEntityStack;
+    unsigned int                fNextReaderNum;
+    RefStackOf<XMLReader>*      fReaderStack;
+    bool                        fThrowEOE;
+    XMLReader::XMLVersion       fXMLVersion;
+    bool                        fStandardUriConformant;
+    MemoryManager*              fMemoryManager;
+};
+
+
+
+// ---------------------------------------------------------------------------
+//  ReaderMgr: Inlined methods
+//
+//  NOTE: We cannot put these in alphabetical and type order as we usually
+//  do because some of the compilers we have to support are too stupid to
+//  understand out of order inlines!
+// ---------------------------------------------------------------------------
+inline unsigned int ReaderMgr::getCurrentReaderNum() const
+{
+    return fCurReader->getReaderNum();
+}
+
+inline const XMLReader* ReaderMgr::getCurrentReader() const
+{
+    return fCurReader;
+}
+
+inline XMLReader* ReaderMgr::getCurrentReader()
+{
+    return fCurReader;
+}
+
+inline bool ReaderMgr::getName(XMLBuffer& toFill)
+{
+    toFill.reset();
+    return fCurReader->getName(toFill, false);
+}
+
+inline bool ReaderMgr::getQName(XMLBuffer& toFill, int *colonPosition)
+{
+    toFill.reset();
+    return fCurReader->getQName(toFill, colonPosition);
+}
+
+inline bool ReaderMgr::getNameToken(XMLBuffer& toFill)
+{
+    toFill.reset();
+    return fCurReader->getName(toFill, true);
+}
+
+inline bool ReaderMgr::getNextCharIfNot(const XMLCh chNotToGet, XMLCh& chGotten)
+{
+    return fCurReader->getNextCharIfNot(chNotToGet, chGotten);
+}
+
+inline void ReaderMgr::movePlainContentChars(XMLBuffer &dest)
+{
+    fCurReader->movePlainContentChars(dest);
+}
+
+inline bool ReaderMgr::getThrowEOE() const
+{
+    return fThrowEOE;
+}
+
+inline unsigned int ReaderMgr::getSrcOffset() const
+{
+    return fCurReader? fCurReader->getSrcOffset() : 0;
+}
+
+inline bool ReaderMgr::lookingAtChar(const XMLCh chToCheck)
+{
+    return (chToCheck == peekNextChar());
+}
+
+inline bool ReaderMgr::lookingAtSpace()
+{
+    XMLCh c = peekNextChar();
+    return fCurReader->isWhitespace(c);
+}
+
+inline void ReaderMgr::setThrowEOE(const bool newValue)
+{
+    fThrowEOE = newValue;
+}
+
+inline void ReaderMgr::setStandardUriConformant(const bool newValue)
+{
+    fStandardUriConformant = newValue;
+}
+
+inline bool ReaderMgr::skippedString(const XMLCh* const toSkip)
+{
+    return fCurReader->skippedString(toSkip);
+}
+
+inline void ReaderMgr::skipToChar(const XMLCh toSkipTo)
+{
+	XMLCh nextCh = 0;
+    do
+    {
+        // Get chars until we find the one to skip
+        nextCh = getNextChar();
+	} 
+    // Break out at end of input or the char to skip
+	while((nextCh != toSkipTo) && nextCh!=0);
+}
+
+inline void ReaderMgr::skipPastChar(const XMLCh toSkipPast)
+{
+	XMLCh nextCh = 0;
+    do
+    {
+        // Get chars until we find the one to skip
+        nextCh = getNextChar();
+	} 
+	while((nextCh != toSkipPast) && nextCh!=0);
+}
+
+inline bool ReaderMgr::peekString(const XMLCh* const toPeek)
+{
+    return fCurReader->peekString(toPeek);
+}
+
+inline void ReaderMgr::setEntityHandler(XMLEntityHandler* const newHandler)
+{
+    fEntityHandler = newHandler;
+}
+
+inline void ReaderMgr::setXMLVersion(const XMLReader::XMLVersion version)
+{
+    fXMLVersion = version;
+    fCurReader->setXMLVersion(version);
+}
+
+//
+//  This is a simple class to temporarily change the 'throw at end of entity'
+//  flag of the reader manager. There are some places where we need to
+//  turn this on and off on a scoped basis.
+//
+class XMLPARSER_EXPORT ThrowEOEJanitor
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Constructors and destructor
+    // -----------------------------------------------------------------------
+    ThrowEOEJanitor(ReaderMgr* mgrTarget, const bool newValue) :
+
+        fOld(mgrTarget->getThrowEOE())
+        , fMgr(mgrTarget)
+    {
+        mgrTarget->setThrowEOE(newValue);
+    }
+
+    ~ThrowEOEJanitor()
+    {
+        fMgr->setThrowEOE(fOld);
+    };
+
+private :
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------    
+    ThrowEOEJanitor(const ThrowEOEJanitor&);
+    ThrowEOEJanitor& operator=(const ThrowEOEJanitor&);
+
+    // -----------------------------------------------------------------------
+    //  Private data members
+    //
+    //  fOld
+    //      The previous value of the flag, which we replaced during ctor,
+    //      and will replace during dtor.
+    //
+    //  fMgr
+    //      A pointer to the reader manager we are going to set/reset the
+    //      flag on.
+    // -----------------------------------------------------------------------
+    bool        fOld;
+    ReaderMgr*  fMgr;
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/internal/XSObjectFactory.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/internal/XSObjectFactory.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/internal/XSObjectFactory.hpp	(revision 2674)
@@ -0,0 +1,237 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: XSObjectFactory.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(XSOBJECTFACTORY_HPP)
+#define XSOBJECTFACTORY_HPP
+
+#include <xercesc/framework/psvi/XSConstants.hpp>
+#include <xercesc/util/RefHashTableOf.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class XSObject;
+class XSAttributeUse;
+class XSAttributeDeclaration;
+class XSModel;
+class XSElementDeclaration;
+class XSSimpleTypeDefinition;
+class XSComplexTypeDefinition;
+class XSModelGroupDefinition;
+class XSAttributeGroupDefinition;
+class XSWildcard;
+class XSParticle;
+class XSAnnotation;
+class XSNamespaceItem;
+class XSNotationDeclaration;
+class SchemaAttDef;
+class SchemaElementDecl;
+class DatatypeValidator;
+class ContentSpecNode;
+class ComplexTypeInfo;
+class XercesGroupInfo;
+class XercesAttGroupInfo;
+class XSIDCDefinition;
+class IdentityConstraint;
+class XMLNotationDecl;
+
+/**
+ * Factory class to create various XSObject(s)
+ * Used by XSModel
+ */
+class XMLPARSER_EXPORT XSObjectFactory : public XMemory
+{
+public:
+    // -----------------------------------------------------------------------
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+    XSObjectFactory(MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+    ~XSObjectFactory();
+
+private:
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and destructor
+    // -----------------------------------------------------------------------
+    XSObjectFactory(const XSObjectFactory&);
+    XSObjectFactory& operator=(const XSObjectFactory&);
+
+    // -----------------------------------------------------------------------
+    //  factory methods
+    // -----------------------------------------------------------------------
+    XSParticle* createModelGroupParticle
+    (
+        const ContentSpecNode* const node
+        , XSModel* const             xsModel
+    );
+
+    XSAttributeDeclaration* addOrFind
+    (
+        SchemaAttDef* const attDef
+        , XSModel* const xsModel
+        , XSComplexTypeDefinition* const enclosingTypeDef = 0
+    );
+
+    XSSimpleTypeDefinition* addOrFind
+    (
+        DatatypeValidator* const validator
+        , XSModel* const xsModel
+        , bool isAnySimpleType = false
+    );
+
+    XSElementDeclaration* addOrFind
+    (
+        SchemaElementDecl* const elemDecl
+        , XSModel* const xsModel
+        , XSComplexTypeDefinition* const enclosingTypeDef = 0
+    );
+
+    XSComplexTypeDefinition* addOrFind
+    (
+        ComplexTypeInfo* const typeInfo
+        , XSModel* const xsModel
+    );
+
+    XSIDCDefinition* addOrFind
+    (
+        IdentityConstraint* const ic
+        , XSModel* const xsModel
+    );
+
+    XSNotationDeclaration* addOrFind
+    (
+        XMLNotationDecl* const notDecl
+        , XSModel* const xsModel
+    );
+
+    XSAttributeUse* createXSAttributeUse
+    (
+        XSAttributeDeclaration* const xsAttDecl
+        , XSModel* const xsModel
+    );
+    XSWildcard* createXSWildcard
+    (
+        SchemaAttDef* const attDef
+        , XSModel* const xsModel
+    );
+
+    XSWildcard* createXSWildcard
+    (
+        const ContentSpecNode* const rootNode
+        , XSModel* const xsModel
+    );
+
+    XSModelGroupDefinition* createXSModelGroupDefinition
+    (
+        XercesGroupInfo* const groupInfo
+        , XSModel* const xsModel
+    );
+
+    XSAttributeGroupDefinition* createXSAttGroupDefinition
+    (
+        XercesAttGroupInfo* const attGroupInfo
+        , XSModel* const xsModel
+    );
+
+    // -----------------------------------------------------------------------
+    //  Helper methods
+    // -----------------------------------------------------------------------
+    // creates a particle corresponding to an element
+    XSParticle* createElementParticle
+    (
+        const ContentSpecNode* const rootNode
+        , XSModel* const             xsModel
+    );
+
+    // creates a particle corresponding to a wildcard
+    XSParticle* createWildcardParticle
+    (
+        const ContentSpecNode* const rootNode
+        , XSModel* const             xsModel
+    );
+
+    XSAnnotation* getAnnotationFromModel
+    (
+        XSModel* const xsModel
+        , const void* const key
+    );
+
+    void buildAllParticles
+    (
+        const ContentSpecNode* const rootNode
+        , XSParticleList* const particleList
+        , XSModel* const xsModel
+    );
+
+    void buildChoiceSequenceParticles
+    (
+        const ContentSpecNode* const rootNode
+        , XSParticleList* const particleList
+        , XSModel* const xsModel
+    );
+
+    void putObjectInMap
+    (
+        void* key
+        , XSObject* const object
+    );
+
+    XSObject* getObjectFromMap
+    (
+        void* key
+    );
+
+    void processFacets
+    (
+        DatatypeValidator* const dv
+        , XSModel* const xsModel
+        , XSSimpleTypeDefinition* const xsST
+    );
+
+    void processAttUse
+    (
+        SchemaAttDef* const attDef
+        , XSAttributeUse* const xsAttUse
+    );
+
+    bool isMultiValueFacetDefined(DatatypeValidator* const dv);
+
+    // make XSModel our friend
+    friend class XSModel;
+
+    // -----------------------------------------------------------------------
+    //  Private Data Members
+    //
+    //  fMemoryManager
+    //      The memory manager used to create various XSObject(s).
+    // -----------------------------------------------------------------------
+    MemoryManager*            fMemoryManager;
+    RefHashTableOf<XSObject>* fXercesToXSMap;
+    RefVectorOf<XSObject>*    fDeleteVector;
+};
+
+inline XSObject* XSObjectFactory::getObjectFromMap(void* key)
+{
+    return fXercesToXSMap->get(key);
+}
+
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/internal/CharTypeTables.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/internal/CharTypeTables.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/internal/CharTypeTables.hpp	(revision 2674)
@@ -0,0 +1,255 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: CharTypeTables.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(CHARTYPETABLES_HPP)
+#define CHARTYPETABLES_HPP
+
+#include <xercesc/util/XercesDefs.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+// ---------------------------------------------------------------------------
+//  These are character type lookup tables. They are included into XMLReader
+//  but are in their own private header in order to keep from making that
+//  file unreadable.
+//
+//  THE RANGES and SINGLES MUST BE IN NUMERICAL ORDER, because the lookup
+//  method will use this info to short circuit the search!
+// ---------------------------------------------------------------------------
+static const XMLCh gBaseChars[] =
+{
+    // Ranges
+        0x0041, 0x005A, 0x0061, 0x007A, 0x00C0, 0x00D6, 0x00D8, 0x00F6
+    ,   0x00F8, 0x00FF
+    ,   0x0100, 0x0131, 0x0134, 0x013E, 0x0141, 0x0148, 0x014A, 0x017E
+    ,   0x0180, 0x01C3, 0x01CD, 0x01F0, 0x01F4, 0x01F5, 0x01FA, 0x0217
+    ,   0x0250, 0x02A8, 0x02BB, 0x02C1, 0x0388, 0x038A, 0x038E, 0x03A1
+    ,   0x03A3, 0x03CE, 0x03D0, 0x03D6, 0x03E2, 0x03F3, 0x0401, 0x040C
+    ,   0x040E, 0x044F, 0x0451, 0x045C, 0x045E, 0x0481, 0x0490, 0x04C4
+    ,   0x04C7, 0x04C8, 0x04CB, 0x04CC, 0x04D0, 0x04EB, 0x04EE, 0x04F5
+    ,   0x04F8, 0x04F9, 0x0531, 0x0556, 0x0561, 0x0586, 0x05D0, 0x05EA
+    ,   0x05F0, 0x05F2, 0x0621, 0x063A, 0x0641, 0x064A, 0x0671, 0x06B7
+    ,   0x06BA, 0x06BE, 0x06C0, 0x06CE, 0x06D0, 0x06D3, 0x06E5, 0x06E6
+    ,   0x0905, 0x0939, 0x0958, 0x0961, 0x0985, 0x098C, 0x098F, 0x0990
+    ,   0x0993, 0x09A8, 0x09AA, 0x09B0, 0x09B6, 0x09B9, 0x09DC, 0x09DD
+    ,   0x09DF, 0x09E1, 0x09F0, 0x09F1, 0x0A05, 0x0A0A, 0x0A0F, 0x0A10
+    ,   0x0A13, 0x0A28, 0x0A2A, 0x0A30, 0x0A32, 0x0A33, 0x0A35, 0x0A36
+    ,   0x0A38, 0x0A39, 0x0A59, 0x0A5C, 0x0A72, 0x0A74, 0x0A85, 0x0A8B
+    ,   0x0A8F, 0x0A91, 0x0A93, 0x0AA8, 0x0AAA, 0x0AB0, 0x0AB2, 0x0AB3
+    ,   0x0AB5, 0x0AB9, 0x0B05, 0x0B0C, 0x0B0F, 0x0B10, 0x0B13, 0x0B28
+    ,   0x0B2A, 0x0B30, 0x0B32, 0x0B33, 0x0B36, 0x0B39, 0x0B5C, 0x0B5D
+    ,   0x0B5F, 0x0B61, 0x0B85, 0x0B8A, 0x0B8E, 0x0B90, 0x0B92, 0x0B95
+    ,   0x0B99, 0x0B9A, 0x0B9E, 0x0B9F, 0x0BA3, 0x0BA4, 0x0BA8, 0x0BAA
+    ,   0x0BAE, 0x0BB5, 0x0BB7, 0x0BB9, 0x0C05, 0x0C0C, 0x0C0E, 0x0C10
+    ,   0x0C12, 0x0C28, 0x0C2A, 0x0C33, 0x0C35, 0x0C39, 0x0C60, 0x0C61
+    ,   0x0C85, 0x0C8C, 0x0C8E, 0x0C90, 0x0C92, 0x0CA8, 0x0CAA, 0x0CB3
+    ,   0x0CB5, 0x0CB9, 0x0CE0, 0x0CE1, 0x0D05, 0x0D0C, 0x0D0E, 0x0D10
+    ,   0x0D12, 0x0D28, 0x0D2A, 0x0D39, 0x0D60, 0x0D61, 0x0E01, 0x0E2E
+    ,   0x0E32, 0x0E33, 0x0E40, 0x0E45, 0x0E81, 0x0E82, 0x0E87, 0x0E88
+    ,   0x0E94, 0x0E97, 0x0E99, 0x0E9F, 0x0EA1, 0x0EA3, 0x0EAA, 0x0EAB
+    ,   0x0EAD, 0x0EAE, 0x0EB2, 0x0EB3, 0x0EC0, 0x0EC4, 0x0F40, 0x0F47
+    ,   0x0F49, 0x0F69, 0x10A0, 0x10C5, 0x10D0, 0x10F6, 0x1102, 0x1103
+    ,   0x1105, 0x1107, 0x110B, 0x110C, 0x110E, 0x1112, 0x1154, 0x1155
+    ,   0x115F, 0x1161, 0x116D, 0x116E, 0x1172, 0x1173, 0x11AE, 0x11AF
+    ,   0x11B7, 0x11B8, 0x11BC, 0x11C2, 0x1E00, 0x1E9B, 0x1EA0, 0x1EF9
+    ,   0x1F00, 0x1F15, 0x1F18, 0x1F1D, 0x1F20, 0x1F45, 0x1F48, 0x1F4D
+    ,   0x1F50, 0x1F57, 0x1F5F, 0x1F7D, 0x1F80, 0x1FB4, 0x1FB6, 0x1FBC
+    ,   0x1FC2, 0x1FC4, 0x1FC6, 0x1FCC, 0x1FD0, 0x1FD3, 0x1FD6, 0x1FDB
+    ,   0x1FE0, 0x1FEC, 0x1FF2, 0x1FF4, 0x1FF6, 0x1FFC, 0x212A, 0x212B
+    ,   0x2180, 0x2182, 0x3041, 0x3094, 0x30A1, 0x30FA, 0x3105, 0x312C
+    ,   0xAC00, 0xD7A3
+    ,   0x00
+
+    // Singles
+    ,   0x0386, 0x038C, 0x03DA, 0x03DC, 0x03DE, 0x03E0, 0x0559, 0x06D5
+    ,   0x093D, 0x09B2, 0x0A5E, 0x0A8D, 0x0ABD, 0x0AE0, 0x0B3D, 0x0B9C
+    ,   0x0CDE, 0x0E30, 0x0E84, 0x0E8A, 0x0E8D, 0x0EA5, 0x0EA7, 0x0EB0
+    ,   0x0EBD, 0x1100, 0x1109, 0x113C, 0x113E, 0x1140, 0x114C, 0x114E
+    ,   0x1150, 0x1159, 0x1163, 0x1165, 0x1167, 0x1169, 0x1175, 0x119E
+    ,   0x11A8, 0x11AB, 0x11BA, 0x11EB, 0x11F0, 0x11F9, 0x1F59, 0x1F5B
+    ,   0x1F5D, 0x1FBE, 0x2126, 0x212E
+    ,   0x00
+};
+
+
+static const XMLCh gCombiningChars[] =
+{
+    // Ranges
+        0x0300, 0x0345, 0x0360, 0x0361, 0x0483, 0x0486, 0x0591, 0x05A1
+    ,   0x05A3, 0x05B9, 0x05BB, 0x05BD, 0x05C1, 0x05C2, 0x064B, 0x0652
+    ,   0x06D6, 0x06DC, 0x06DD, 0x06DF, 0x06E0, 0x06E4
+    ,   0x06E7, 0x06E8, 0x06EA, 0x06ED, 0x0901, 0x0903, 0x093E, 0x094C
+    ,   0x0951, 0x0954, 0x0962, 0x0963, 0x0981, 0x0983, 0x09C0, 0x09C4
+    ,   0x09C7, 0x09C8, 0x09CB, 0x09CD, 0x09E2, 0x09E3, 0x0A40, 0x0A42
+    ,   0x0A47, 0x0A48, 0x0A4B, 0x0A4D, 0x0A70, 0x0A71, 0x0A81, 0x0A83
+    ,   0x0ABE, 0x0AC5, 0x0AC7, 0x0AC9, 0x0ACB, 0x0ACD, 0x0B01, 0x0B03
+    ,   0x0B3E, 0x0B43, 0x0B47, 0x0B48, 0x0B4B, 0x0B4D, 0x0B56, 0x0B57
+    ,   0x0B82, 0x0B83, 0x0BBE, 0x0BC2, 0x0BC6, 0x0BC8, 0x0BCA, 0x0BCD
+    ,   0x0C01, 0x0C03, 0x0C3E, 0x0C44, 0x0C46, 0x0C48, 0x0C4A, 0x0C4D
+    ,   0x0C55, 0x0C56, 0x0C82, 0x0C83, 0x0CBE, 0x0CC4, 0x0CC6, 0x0CC8
+    ,   0x0CCA, 0x0CCD, 0x0CD5, 0x0CD6, 0x0D02, 0x0D03, 0x0D3E, 0x0D43
+    ,   0x0D46, 0x0D48, 0x0D4A, 0x0D4D, 0x0E34, 0x0E3A, 0x0E47, 0x0E4E
+    ,   0x0EB4, 0x0EB9, 0x0EBB, 0x0EBC, 0x0EC8, 0x0ECD, 0x0F18, 0x0F19
+    ,   0x0F71, 0x0F84, 0x0F86, 0x0F8B, 0x0F90, 0x0F95, 0x0F99, 0x0FAD
+    ,   0x0FB1, 0x0FB7, 0x20D0, 0x20DC, 0x302A, 0x302F
+    ,   0x00
+
+    // Singles
+    ,   0x05BF, 0x05C4, 0x0670
+    ,   0x093C, 0x094D, 0x09BC, 0x09BE, 0x09BF, 0x09D7, 0x0A02
+    ,   0x0A3C, 0x0A3E, 0x0A3F, 0x0ABC, 0x0B3C, 0x0BD7, 0x0D57, 0x0E31
+    ,   0x0EB1, 0x0F35, 0x0F37, 0x0F39, 0x0F3E, 0x0F3F, 0x0F97, 0x0FB9
+    ,   0x20E1, 0x3099, 0x309A
+    ,   0x00
+};
+
+
+static const XMLCh gDigitChars[] =
+{
+    // Ranges
+        0x0030, 0x0039, 0x0660, 0x0669, 0x06F0, 0x06F9, 0x0966, 0x096F
+    ,   0x09E6, 0x09EF, 0x0A66, 0x0A6F, 0x0AE6, 0x0AEF, 0x0B66, 0x0B6F
+    ,   0x0BE7, 0x0BEF, 0x0C66, 0x0C6F, 0x0CE6, 0x0CEF, 0x0D66, 0x0D6F
+    ,   0x0E50, 0x0E59, 0x0ED0, 0x0ED9, 0x0F20, 0x0F29
+    ,   0x00
+
+    // Singles
+    ,   0x00
+};
+
+
+static const XMLCh gIdeographicChars[] =
+{
+    // Ranges
+        0x3021, 0x3029, 0x4E00, 0x9FA5
+    ,   0x00
+
+    // Singles
+    ,   0x3007
+    ,   0x00
+};
+
+static const XMLCh gExtenderChars[] =
+{
+    // Ranges
+        0x3031, 0x3035, 0x309D, 0x309E, 0x30FC, 0x30FE
+    ,   0x00
+
+    // Singles
+    ,   0x00B7, 0x02D0, 0x02D1, 0x0387, 0x0640, 0x0E46, 0x0EC6, 0x3005
+    ,   0x00
+};
+
+
+static const XMLCh gPublicIdChars[] =
+{
+    // Ranges
+        0x0023, 0x0025, 0x0027, 0x003B, 0x003F, 0x005A, 0x0061, 0x007A
+    ,   0x00
+
+    // Singles
+    ,   0x000A, 0x000D, 0x0020, 0x0021, 0x003D, 0x005F
+    ,   0x00
+};
+
+
+static const XMLCh gWhitespaceChars[] =
+{
+    // Ranges
+        0x00
+
+    ,   0x0020, 0x0009, 0x000D, 0x000A
+    ,   0x00
+};
+
+
+static const XMLCh gXMLChars[] =
+{
+    // Ranges
+        0x0020, 0xD7FF, 0xE000, 0xFFFD
+    ,   0x00
+
+    ,   0x0009, 0x000D, 0x000A
+    ,   0x00
+};
+
+// The following are for XML 1.1
+static const XMLCh gWhitespaceChars1_1[] =
+{
+    // Ranges
+        0x00
+
+    ,   0x0020, 0x0009, 0x000D, 0x000A, 0x0085, 0x2028
+    ,   0x00
+};
+
+static const XMLCh gFirstNameChars1_1[] =
+{
+    // Ranges
+    // Note: 0x10000 to 0xEFFFF are also allowed, need to separately check
+        0x0041, 0x005A, 0x0061, 0x007A, 0x00C0, 0x00D6, 0x00D8, 0x00F6
+    ,   0x00F8, 0x02FF, 0x0370, 0x037D, 0x037F, 0x1FFF, 0x200C, 0x200D
+    ,   0x2070, 0x218F, 0x2C00, 0x2FEF, 0x3001, 0xD7FF, 0xF900, 0xFDCF
+    ,   0xFDF0, 0xFFFD
+    ,   0x00
+
+    ,   0x003A, 0x005F
+    ,   0x00
+
+};
+
+static const XMLCh gNameChars1_1[] =
+{
+    // Ranges
+    // Note: 0x10000 to 0xEFFFF are also allowed, need to separately check
+        0x0030, 0x0039, 0x0041, 0x005A, 0x0061, 0x007A, 0x00C0, 0x00D6
+    ,   0x00D8, 0x00F6, 0x00F8, 0x037D, 0x037F, 0x1FFF, 0x200C, 0x200D
+    ,   0x203F, 0x2040, 0x2070, 0x218F, 0x2C00, 0x2FEF, 0x3001, 0xD7FF
+    ,   0xF900, 0xFDCF, 0xFDF0, 0xFFFD
+    ,   0x00
+
+    ,   0x002D, 0x002E, 0x003A, 0x005F, 0x00B7
+    ,   0x00
+};
+
+static const XMLCh gXMLChars1_1[] =
+{
+    // Ranges
+        0x0020, 0x007E, 0x00A0, 0xD7FF, 0xE000, 0xFFFD
+    ,   0x00
+
+    ,   0x0009, 0x000D, 0x000A, 0x0085
+    ,   0x00
+};
+
+static const XMLCh gControl_Chars1_1[] =
+{
+    // Ranges
+        0x0001, 0x001F, 0x007F, 0x009F
+    ,   0x00
+
+    ,   0x00
+};
+
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/internal/XMLScanner.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/internal/XMLScanner.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/internal/XMLScanner.hpp	(revision 2674)
@@ -0,0 +1,1388 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: XMLScanner.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(XMLSCANNER_HPP)
+#define XMLSCANNER_HPP
+
+#include <xercesc/framework/XMLBufferMgr.hpp>
+#include <xercesc/framework/XMLErrorCodes.hpp>
+#include <xercesc/framework/XMLRefInfo.hpp>
+#include <xercesc/util/PlatformUtils.hpp>
+#include <xercesc/util/NameIdPool.hpp>
+#include <xercesc/util/RefHashTableOf.hpp>
+#include <xercesc/util/SecurityManager.hpp>
+#include <xercesc/internal/ReaderMgr.hpp>
+#include <xercesc/internal/ElemStack.hpp>
+#include <xercesc/validators/DTD/DTDEntityDecl.hpp>
+#include <xercesc/framework/XMLAttr.hpp>
+#include <xercesc/framework/ValidationContext.hpp>
+#include <xercesc/validators/common/GrammarResolver.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class InputSource;
+class XMLDocumentHandler;
+class XMLEntityHandler;
+class ErrorHandler;
+class DocTypeHandler;
+class XMLPScanToken;
+class XMLStringPool;
+class Grammar;
+class XMLValidator;
+class MemoryManager;
+class PSVIHandler;
+
+
+struct PSVIElemContext
+{
+    bool               fIsSpecified;
+    bool               fErrorOccurred;
+    int                fElemDepth;
+    int                fFullValidationDepth;
+    int                fNoneValidationDepth;
+    DatatypeValidator* fCurrentDV;
+    ComplexTypeInfo*   fCurrentTypeInfo;
+    const XMLCh*       fNormalizedValue;
+};
+
+//  This is the mondo scanner class, which does the vast majority of the
+//  work of parsing. It handles reading in input and spitting out events
+//  to installed handlers.
+class XMLPARSER_EXPORT XMLScanner : public XMemory, public XMLBufferFullHandler
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Public class types
+    //
+    //  NOTE: These should really be private, but some of the compilers we
+    //  have to deal with are too stupid to understand this.
+    //
+    //  DeclTypes
+    //      Used by scanXMLDecl() to know what type of decl it should scan.
+    //      Text decls have slightly different rules from XMLDecls.
+    //
+    //  EntityExpRes
+    //      These are the values returned from the entity expansion method,
+    //      to indicate how it went.
+    //
+    //  XMLTokens
+    //      These represent the possible types of input we can get while
+    //      scanning content.
+    //
+    //  ValScheme
+    //      This indicates what the scanner should do in terms of validation.
+    //      'Auto' means if there is any int/ext subset, then validate. Else,
+    //      don't.
+    // -----------------------------------------------------------------------
+    enum DeclTypes
+    {
+        Decl_Text
+        , Decl_XML
+    };
+
+    enum EntityExpRes
+    {
+        EntityExp_Pushed
+        , EntityExp_Returned
+        , EntityExp_Failed
+    };
+
+    enum XMLTokens
+    {
+        Token_CData
+        , Token_CharData
+        , Token_Comment
+        , Token_EndTag
+        , Token_EOF
+        , Token_PI
+        , Token_StartTag
+        , Token_Unknown
+    };
+
+    enum ValSchemes
+    {
+        Val_Never
+        , Val_Always
+        , Val_Auto
+    };
+
+
+    // -----------------------------------------------------------------------
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+    XMLScanner
+    (
+        XMLValidator* const valToAdopt
+        , GrammarResolver* const grammarResolver
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+    XMLScanner
+    (
+        XMLDocumentHandler* const  docHandler
+        , DocTypeHandler* const    docTypeHandler
+        , XMLEntityHandler* const  entityHandler
+        , XMLErrorReporter* const  errReporter
+        , XMLValidator* const      valToAdopt
+        , GrammarResolver* const grammarResolver
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+    virtual ~XMLScanner();
+
+
+    // -----------------------------------------------------------------------
+    //  Error emitter methods
+    // -----------------------------------------------------------------------
+    bool emitErrorWillThrowException(const XMLErrs::Codes toEmit);
+    void emitError(const XMLErrs::Codes toEmit);
+    void emitError
+    (
+        const   XMLErrs::Codes    toEmit
+        , const XMLCh* const        text1
+        , const XMLCh* const        text2 = 0
+        , const XMLCh* const        text3 = 0
+        , const XMLCh* const        text4 = 0
+    );
+    void emitError
+    (
+        const   XMLErrs::Codes    toEmit
+        , const char* const         text1
+        , const char* const         text2 = 0
+        , const char* const         text3 = 0
+        , const char* const         text4 = 0
+    );
+    void emitError
+    (
+        const   XMLErrs::Codes    toEmit
+        , const XMLExcepts::Codes   originalErrorCode
+        , const XMLCh* const        text1 = 0
+        , const XMLCh* const        text2 = 0
+        , const XMLCh* const        text3 = 0
+        , const XMLCh* const        text4 = 0
+    );
+
+    // -----------------------------------------------------------------------
+    //  Implementation of XMLBufferFullHandler interface
+    // -----------------------------------------------------------------------
+
+    virtual bool bufferFull(XMLBuffer& toSend)
+    {
+        sendCharData(toSend);
+        return true;
+    }
+
+    virtual Grammar::GrammarType getCurrentGrammarType() const;
+
+    // -----------------------------------------------------------------------
+    //  Public pure virtual methods
+    // -----------------------------------------------------------------------
+    virtual const XMLCh* getName() const = 0;
+    virtual NameIdPool<DTDEntityDecl>* getEntityDeclPool() = 0;
+    virtual const NameIdPool<DTDEntityDecl>* getEntityDeclPool() const = 0;
+    virtual unsigned int resolveQName
+    (
+        const   XMLCh* const        qName
+        ,       XMLBuffer&          prefixBufToFill
+        , const short               mode
+        ,       int&                prefixColonPos
+    ) = 0;
+    virtual void scanDocument
+    (
+        const   InputSource&    src
+    ) = 0;
+    virtual bool scanNext(XMLPScanToken& toFill) = 0;
+    virtual Grammar* loadGrammar
+    (
+        const   InputSource&    src
+        , const short           grammarType
+        , const bool            toCache = false
+    ) = 0;
+
+    // -----------------------------------------------------------------------
+    //  Getter methods
+    // -----------------------------------------------------------------------
+    const XMLDocumentHandler* getDocHandler() const;
+    XMLDocumentHandler* getDocHandler();
+    const DocTypeHandler* getDocTypeHandler() const;
+    DocTypeHandler* getDocTypeHandler();
+    bool getDoNamespaces() const;
+    ValSchemes getValidationScheme() const;
+    bool getDoSchema() const;
+    bool getValidationSchemaFullChecking() const;
+    bool getIdentityConstraintChecking() const;
+    const XMLEntityHandler* getEntityHandler() const;
+    XMLEntityHandler* getEntityHandler();
+    const XMLErrorReporter* getErrorReporter() const;
+    XMLErrorReporter* getErrorReporter();
+    const ErrorHandler* getErrorHandler() const;
+    ErrorHandler* getErrorHandler();
+    const PSVIHandler* getPSVIHandler() const;
+    PSVIHandler* getPSVIHandler();
+    bool getExitOnFirstFatal() const;
+    bool getValidationConstraintFatal() const;
+    RefHashTableOf<XMLRefInfo>* getIDRefList();
+    const RefHashTableOf<XMLRefInfo>* getIDRefList() const;
+
+    ValidationContext*   getValidationContext();
+
+    bool getInException() const;
+    /*bool getLastExtLocation
+    (
+                XMLCh* const    sysIdToFill
+        , const unsigned int    maxSysIdChars
+        ,       XMLCh* const    pubIdToFill
+        , const unsigned int    maxPubIdChars
+        ,       XMLSSize_t&     lineToFill
+        ,       XMLSSize_t&     colToFill
+    ) const;*/
+    const Locator* getLocator() const;
+    const ReaderMgr* getReaderMgr() const;
+    unsigned int getSrcOffset() const;
+    bool getStandalone() const;
+    const XMLValidator* getValidator() const;
+    XMLValidator* getValidator();
+    int getErrorCount();
+    const XMLStringPool* getURIStringPool() const;
+    XMLStringPool* getURIStringPool();
+    bool getHasNoDTD() const;
+    XMLCh* getExternalSchemaLocation() const;
+    XMLCh* getExternalNoNamespaceSchemaLocation() const;
+    SecurityManager* getSecurityManager() const;
+    bool getLoadExternalDTD() const;
+    bool getNormalizeData() const;
+    bool isCachingGrammarFromParse() const;
+    bool isUsingCachedGrammarInParse() const;
+    bool getCalculateSrcOfs() const;
+    Grammar* getRootGrammar() const;
+    XMLReader::XMLVersion getXMLVersion() const;
+    MemoryManager* getMemoryManager() const;
+    ValueVectorOf<PrefMapElem*>* getNamespaceContext() const;
+    unsigned int getPrefixId(const XMLCh* const prefix) const;
+    const XMLCh* getPrefixForId(unsigned int prefId) const;
+
+    bool getGenerateSyntheticAnnotations() const;
+    bool getValidateAnnotations() const;
+    bool getIgnoreCachedDTD() const;
+    bool getIgnoreAnnotations() const;
+    bool getDisableDefaultEntityResolution() const;
+    bool getSkipDTDValidation() const;
+
+    // -----------------------------------------------------------------------
+    //  Getter methods
+    // -----------------------------------------------------------------------
+    /**
+      * When an attribute name has no prefix, unlike elements, it is not mapped
+      * to the global namespace. So, in order to have something to map it to
+      * for practical purposes, a id for an empty URL is created and used for
+      * such names.
+      *
+      * @return The URL pool id of the URL for an empty URL "".
+      */
+    unsigned int getEmptyNamespaceId() const;
+
+    /**
+      * When a prefix is found that has not been mapped, an error is issued.
+      * However, if the parser has been instructed not to stop on the first
+      * fatal error, it needs to be able to continue. To do so, it will map
+      * that prefix tot his magic unknown namespace id.
+      *
+      * @return The URL pool id of the URL for the unknown prefix
+      *         namespace.
+      */
+    unsigned int getUnknownNamespaceId() const;
+
+    /**
+      * The prefix 'xml' is a magic prefix, defined by the XML spec and
+      * requiring no prior definition. This method returns the id for the
+      * intrinsically defined URL for this prefix.
+      *
+      * @return The URL pool id of the URL for the 'xml' prefix.
+      */
+    unsigned int getXMLNamespaceId() const;
+
+    /**
+      * The prefix 'xmlns' is a magic prefix, defined by the namespace spec
+      * and requiring no prior definition. This method returns the id for the
+      * intrinsically defined URL for this prefix.
+      *
+      * @return The URL pool id of the URL for the 'xmlns' prefix.
+      */
+    unsigned int getXMLNSNamespaceId() const;
+
+    /**
+      * This method find the passed URI id in its URI pool and
+      * copy the text of that URI into the passed buffer.
+      */
+    bool getURIText
+    (
+        const   unsigned int    uriId
+        ,       XMLBuffer&      uriBufToFill
+    )   const;
+
+    const XMLCh* getURIText(const   unsigned int    uriId) const;
+
+    /* tell if the validator comes from user */
+    bool isValidatorFromUser();
+
+    /* tell if standard URI are forced */
+    bool getStandardUriConformant() const;
+
+    // -----------------------------------------------------------------------
+    //  Setter methods
+    // -----------------------------------------------------------------------
+    void setDocHandler(XMLDocumentHandler* const docHandler);
+    void setDocTypeHandler(DocTypeHandler* const docTypeHandler);
+    void setDoNamespaces(const bool doNamespaces);
+    void setEntityHandler(XMLEntityHandler* const docTypeHandler);
+    void setErrorReporter(XMLErrorReporter* const errHandler);
+    void setErrorHandler(ErrorHandler* const handler);
+    void setPSVIHandler(PSVIHandler* const handler);
+    void setURIStringPool(XMLStringPool* const stringPool);
+    void setExitOnFirstFatal(const bool newValue);
+    void setValidationConstraintFatal(const bool newValue);
+    void setValidationScheme(const ValSchemes newScheme);
+    void setValidator(XMLValidator* const valToAdopt);
+    void setDoSchema(const bool doSchema);
+    void setValidationSchemaFullChecking(const bool schemaFullChecking);
+    void setIdentityConstraintChecking(const bool identityConstraintChecking);
+    void setHasNoDTD(const bool hasNoDTD);
+    void cacheGrammarFromParse(const bool newValue);
+    void useCachedGrammarInParse(const bool newValue);
+    void setRootElemName(XMLCh* rootElemName);
+    void setExternalSchemaLocation(const XMLCh* const schemaLocation);
+    void setExternalNoNamespaceSchemaLocation(const XMLCh* const noNamespaceSchemaLocation);
+    void setExternalSchemaLocation(const char* const schemaLocation);
+    void setExternalNoNamespaceSchemaLocation(const char* const noNamespaceSchemaLocation);
+    void setSecurityManager(SecurityManager* const securityManager);
+    void setLoadExternalDTD(const bool loadDTD);
+    void setNormalizeData(const bool normalizeData);
+    void setCalculateSrcOfs(const bool newValue);
+    void setParseSettings(XMLScanner* const refScanner);
+    void setStandardUriConformant(const bool newValue);
+    void setInputBufferSize(const size_t bufferSize);
+
+    void setGenerateSyntheticAnnotations(const bool newValue);
+    void setValidateAnnotations(const bool newValue);
+    void setIgnoredCachedDTD(const bool newValue);
+    void setIgnoreAnnotations(const bool newValue);
+    void setDisableDefaultEntityResolution(const bool newValue);
+    void setSkipDTDValidation(const bool newValue);
+
+    // -----------------------------------------------------------------------
+    //  Mutator methods
+    // -----------------------------------------------------------------------
+    void incrementErrorCount(void);			// For use by XMLValidator
+
+    // -----------------------------------------------------------------------
+    //  Deprecated methods as of 3.2.0. Use getValidationScheme() and
+    //  setValidationScheme() instead.
+    // -----------------------------------------------------------------------
+    bool getDoValidation() const;
+    void setDoValidation(const bool validate);
+
+    // -----------------------------------------------------------------------
+    //  Document scanning methods
+    //
+    //  scanDocument() does the entire source document. scanFirst(),
+    //  scanNext(), and scanReset() support a progressive parse.
+    // -----------------------------------------------------------------------
+    void scanDocument
+    (
+        const   XMLCh* const    systemId
+    );
+    void scanDocument
+    (
+        const   char* const     systemId
+    );
+
+    bool scanFirst
+    (
+        const   InputSource&    src
+        ,       XMLPScanToken&  toFill
+    );
+    bool scanFirst
+    (
+        const   XMLCh* const    systemId
+        ,       XMLPScanToken&  toFill
+    );
+    bool scanFirst
+    (
+        const   char* const     systemId
+        ,       XMLPScanToken&  toFill
+    );
+
+    void scanReset(XMLPScanToken& toFill);
+
+    bool checkXMLDecl(bool startWithAngle);
+
+    // -----------------------------------------------------------------------
+    //  Grammar preparsing methods
+    // -----------------------------------------------------------------------
+    Grammar* loadGrammar
+    (
+        const   XMLCh* const    systemId
+        , const short           grammarType
+        , const bool            toCache = false
+    );
+    Grammar* loadGrammar
+    (
+        const   char* const     systemId
+        , const short           grammarType
+        , const bool            toCache = false
+    );
+
+    // -----------------------------------------------------------------------
+    //  Notification that lazy data has been deleted
+    // -----------------------------------------------------------------------
+	static void reinitScannerMutex();
+	static void reinitMsgLoader();
+
+protected:
+    // -----------------------------------------------------------------------
+    //  Protected pure virtual methods
+    // -----------------------------------------------------------------------
+    virtual void scanCDSection() = 0;
+    virtual void scanCharData(XMLBuffer& toToUse) = 0;
+    virtual EntityExpRes scanEntityRef
+    (
+        const   bool    inAttVal
+        ,       XMLCh&  firstCh
+        ,       XMLCh&  secondCh
+        ,       bool&   escaped
+    ) = 0;
+    virtual void scanDocTypeDecl() = 0;
+    virtual void scanReset(const InputSource& src) = 0;
+    virtual void sendCharData(XMLBuffer& toSend) = 0;
+
+    //return owned by the caller
+    virtual InputSource* resolveSystemId(const XMLCh* const /*sysId*/
+                                        ,const XMLCh* const /*pubId*/) {return 0;};
+
+    // -----------------------------------------------------------------------
+    //  Protected scanning methods
+    // -----------------------------------------------------------------------
+    bool scanCharRef(XMLCh& toFill, XMLCh& second);
+    void scanComment();
+    bool scanEq(bool inDecl = false);
+    void scanMiscellaneous();
+    void scanPI();
+    void scanProlog();
+    void scanXMLDecl(const DeclTypes type);
+
+    // -----------------------------------------------------------------------
+    //  Private helper methods
+    // -----------------------------------------------------------------------
+    void checkInternalDTD(bool hasExtSubset, const XMLCh* const sysId, const XMLCh* const pubId);
+    void checkIDRefs();
+    bool isLegalToken(const XMLPScanToken& toCheck);
+    XMLTokens senseNextToken(unsigned int& orgReader);
+    void initValidator(XMLValidator* theValidator);
+    inline void resetValidationContext();
+    unsigned int *getNewUIntPtr();
+    void resetUIntPool();
+    void recreateUIntPool();
+
+    inline
+    void setAttrDupChkRegistry
+         (
+            const unsigned int &attrNumber
+          ,       bool         &toUseHashTable
+         );
+
+    // -----------------------------------------------------------------------
+    //  Data members
+    //
+    //  fBufferSize
+    //      Maximum input buffer size
+    //
+    //  fAttrList
+    //      Every time we get a new element start tag, we have to pass to
+    //      the document handler the attributes found. To make it more
+    //      efficient we keep this ref vector of XMLAttr objects around. We
+    //      just reuse it over and over, allowing it to grow to meet the
+    //      peak need.
+    //
+    //  fBufMgr
+    //      This is a manager for temporary buffers used during scanning.
+    //      For efficiency we must use a set of static buffers, but we have
+    //      to insure that they are not incorrectly reused. So this manager
+    //      provides the smarts to hand out buffers as required.
+    //
+    //  fDocHandler
+    //      The client code's document handler. If zero, then no document
+    //      handler callouts are done. We don't adopt it.
+    //
+    //  fDocTypeHandler
+    //      The client code's document type handler (used by DTD Validator).
+    //
+    //  fDoNamespaces
+    //      This flag indicates whether the client code wants us to do
+    //      namespaces or not. If the installed validator indicates that it
+    //      has to do namespaces, then this is ignored.
+    //
+    //  fEntityHandler
+    //      The client code's entity handler. If zero, then no entity handler
+    //      callouts are done. We don't adopt it.
+    //
+    //  fErrorReporter
+    //      The client code's error reporter. If zero, then no error reporter
+    //      callouts are done. We don't adopt it.
+    //
+    //  fErrorHandler
+    //      The client code's error handler.  Need to store this info for
+    //      Schema parse error handling.
+    //
+    //  fPSVIHandler
+    //      The client code's PSVI handler.
+    //
+    //  fExitOnFirstFatal
+    //      This indicates whether we bail out on the first fatal XML error
+    //      or not. It defaults to true, which is the strict XML way, but it
+    //      can be changed.
+    //
+    //  fValidationConstraintFatal
+    //      This indicates whether we treat validation constraint errors as
+    //      fatal errors or not. It defaults to false, but it can be changed.
+    //
+    //  fIDRefList
+    //      This is a list of XMLRefInfo objects. This member lets us do all
+    //      needed ID-IDREF balancing checks.
+    //
+    //  fInException
+    //      To avoid a circular freakout when we catch an exception and emit
+    //      it, which would normally throw again if the 'fail on first error'
+    //      flag is one.
+    //
+    //  fReaderMgr
+    //      This is the reader manager, from which we get characters. It
+    //      manages the reader stack for us, and provides a lot of convenience
+    //      methods to do specialized checking for chars, sequences of chars,
+    //      skipping chars, etc...
+    //
+    //  fScannerId
+    //  fSequenceId
+    //      These are used for progressive parsing, to make sure that the
+    //      client code does the right thing at the right time.
+    //
+    //  fStandalone
+    //      Indicates whether the document is standalone or not. Defaults to
+    //      no, but can be overridden in the XMLDecl.
+    //
+    //  fHasNoDTD
+    //      Indicates the document has no DTD or has only an internal DTD subset
+    //      which contains no parameter entity references.
+    //
+    //  fValidate
+    //      Indicates whether any validation should be done. This is defined
+    //      by the existence of a Grammar together with fValScheme.
+    //
+    //  fValidator
+    //      The installed validator. We look at them via the abstract
+    //      validator interface, and don't know what it actual is.
+    //      Either point to user's installed validator, or fDTDValidator
+    //      or fSchemaValidator.
+    //
+    //  fValidatorFromUser
+    //      This flag indicates whether the validator was installed from
+    //      user.  If false, then the validator was created by the Scanner.
+    //
+    //  fValScheme
+    //      This is the currently set validation scheme. It defaults to
+    //      'never', but can be set by the client.
+    //
+    //  fErrorCount
+    //		The number of errors we've encountered.
+    //
+    //  fDoSchema
+    //      This flag indicates whether the client code wants Schema to
+    //      be processed or not.
+    //
+    //  fSchemaFullChecking
+    //      This flag indicates whether the client code wants full Schema
+    //      constraint checking.
+    //
+    //  fIdentityConstraintChecking
+    //      This flag indicates whether the client code wants Identity
+    //      Constraint checking, defaulted to true to maintain backward
+    //      compatibility (to minimize supprise)
+    //
+    //  fAttName
+    //  fAttValue
+    //  fCDataBuf
+    //  fNameBuf
+    //  fQNameBuf
+    //  fPrefixBuf
+    //      For the most part, buffers are obtained from the fBufMgr object
+    //      on the fly. However, for the start tag scan, we have a set of
+    //      fixed buffers for performance reasons. These are used a lot and
+    //      there are a number of them, so asking the buffer manager each
+    //      time for new buffers is a bit too much overhead.
+    //
+    //  fEmptyNamespaceId
+    //      This is the id of the empty namespace URI. This is a special one
+    //      because of the xmlns="" type of deal. We have to quickly sense
+    //      that its the empty namespace.
+    //
+    //  fUnknownNamespaceId
+    //      This is the id of the namespace URI which is assigned to the
+    //      global namespace. Its for debug purposes only, since there is no
+    //      real global namespace URI. Its set by the derived class.
+    //
+    //  fXMLNamespaceId
+    //  fXMLNSNamespaceId
+    //      These are the ids of the namespace URIs which are assigned to the
+    //      'xml' and 'xmlns' special prefixes. The former is officially
+    //      defined but the latter is not, so we just provide one for debug
+    //      purposes.
+    //
+    //  fSchemaNamespaceId
+    //      This is the id of the schema namespace URI.
+    //
+    //  fGrammarResolver
+    //      Grammar Pool that stores all the grammars. Key is namespace for
+    //      schema and system id for external DTD. When caching a grammar, if
+    //      a grammar is already in the pool, it will be replaced with the
+    //      new parsed one.
+    //
+    //  fGrammar
+    //      Current Grammar used by the Scanner and Validator
+    //
+    //  fRootGrammar
+    //      The grammar where the root element is declared.
+    //
+    //  fGrammarType
+    //      Current Grammar Type.  Store this value instead of calling getGrammarType
+    //      all the time for faster performance.
+    //
+    //  fURIStringPool
+    //      This is a pool for URIs with unique ids assigned. We use a standard
+    //      string pool class.  This pool is going to be shared by all Grammar.
+    //      Use only if namespace is turned on.
+    //
+    //  fRootElemName
+    //      No matter we are using DTD or Schema Grammar, if a DOCTYPE exists,
+    //      we need to verify the root element name.  So store the rootElement
+    //      that is used in the DOCTYPE in the Scanner instead of in the DTDGrammar
+    //      where it used to
+    //
+    //  fExternalSchemaLocation
+    //      The list of Namespace/SchemaLocation that was specified externally
+    //      using setExternalSchemaLocation.
+    //
+    //  fExternalNoNamespaceSchemaLocation
+    //      The no target namespace XML Schema Location that was specified
+    //      externally using setExternalNoNamespaceSchemaLocation.
+    //
+    //  fSecurityManager
+    //      The SecurityManager instance; as and when set by the application.
+    //
+    //  fEntityExpansionLimit
+    //      The number of entity expansions to be permitted while processing this document
+    //      Only meaningful when fSecurityManager != 0
+    //
+    //  fEntityExpansionCount
+    //      The number of general entities expanded so far in this document.
+    //      Only meaningful when fSecurityManager != null
+    //
+    //  fLoadExternalDTD
+    //      This flag indicates whether the external DTD be loaded or not
+    //
+    //  fNormalizeData
+    //      This flag indicates whether the parser should perform datatype
+    //      normalization that is defined in the schema.
+    //
+    //  fCalculateSrcOfs
+    //      This flag indicates the parser should calculate the source offset.
+    //      Turning this on may impact performance.
+    //
+    //  fStandardUriConformant
+    //      This flag controls whether we force conformant URI
+    //
+    //  fXMLVersion
+    //      Enum to indicate if the main doc is XML 1.1 or XML 1.0 conformant    
+    //  fUIntPool
+    //      pool of unsigned integers to help with duplicate attribute
+    //      detection and filling in default/fixed attributes
+    //  fUIntPoolRow
+    //      current row in fUIntPool
+    //  fUIntPoolCol
+    //      current column i row
+    //  fUIntPoolRowTotal
+    //      total number of rows in table
+    //
+    //  fMemoryManager
+    //      Pluggable memory manager for dynamic allocation/deallocation.
+    //
+    // -----------------------------------------------------------------------
+    size_t                      fBufferSize;
+    bool                        fStandardUriConformant;
+    bool                        fCalculateSrcOfs;
+    bool                        fDoNamespaces;
+    bool                        fExitOnFirstFatal;
+    bool                        fValidationConstraintFatal;
+    bool                        fInException;
+    bool                        fStandalone;
+    bool                        fHasNoDTD;
+    bool                        fValidate;
+    bool                        fValidatorFromUser;
+    bool                        fDoSchema;
+    bool                        fSchemaFullChecking;
+    bool                        fIdentityConstraintChecking;
+    bool                        fToCacheGrammar;
+    bool                        fUseCachedGrammar;
+    bool                        fLoadExternalDTD;
+    bool                        fNormalizeData;
+    bool                        fGenerateSyntheticAnnotations;
+    bool                        fValidateAnnotations;
+    bool                        fIgnoreCachedDTD;
+    bool                        fIgnoreAnnotations;
+    bool                        fDisableDefaultEntityResolution;
+    bool                        fSkipDTDValidation;
+    int                         fErrorCount;
+    unsigned int                fEntityExpansionLimit;
+    unsigned int                fEntityExpansionCount;
+    unsigned int                fEmptyNamespaceId;
+    unsigned int                fUnknownNamespaceId;
+    unsigned int                fXMLNamespaceId;
+    unsigned int                fXMLNSNamespaceId;
+    unsigned int                fSchemaNamespaceId;
+    unsigned int **             fUIntPool;
+    unsigned int                fUIntPoolRow;
+    unsigned int                fUIntPoolCol;
+    unsigned int                fUIntPoolRowTotal;
+    XMLUInt32                   fScannerId;
+    XMLUInt32                   fSequenceId;
+    RefVectorOf<XMLAttr>*       fAttrList;
+    RefHash2KeysTableOf<XMLAttr>*  fAttrDupChkRegistry;    
+    XMLDocumentHandler*         fDocHandler;
+    DocTypeHandler*             fDocTypeHandler;
+    XMLEntityHandler*           fEntityHandler;
+    XMLErrorReporter*           fErrorReporter;
+    ErrorHandler*               fErrorHandler;
+    PSVIHandler*                fPSVIHandler;
+    ValidationContext           *fValidationContext;
+    bool                        fEntityDeclPoolRetrieved;
+    ReaderMgr                   fReaderMgr;
+    XMLValidator*               fValidator;
+    ValSchemes                  fValScheme;
+    GrammarResolver* const      fGrammarResolver;
+    MemoryManager* const        fGrammarPoolMemoryManager;
+    Grammar*                    fGrammar;
+    Grammar*                    fRootGrammar;
+    XMLStringPool*              fURIStringPool;
+    XMLCh*                      fRootElemName;
+    XMLCh*                      fExternalSchemaLocation;
+    XMLCh*                      fExternalNoNamespaceSchemaLocation;
+    SecurityManager*            fSecurityManager;
+    XMLReader::XMLVersion       fXMLVersion;
+    MemoryManager*              fMemoryManager;
+    XMLBufferMgr                fBufMgr;
+    XMLBuffer                   fAttNameBuf;
+    XMLBuffer                   fAttValueBuf;
+    XMLBuffer                   fCDataBuf;
+    XMLBuffer                   fQNameBuf;
+    XMLBuffer                   fPrefixBuf;
+    XMLBuffer                   fURIBuf;
+    XMLBuffer                   fWSNormalizeBuf;
+    ElemStack                   fElemStack;
+
+
+private :
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    XMLScanner();
+    XMLScanner(const XMLScanner&);
+    XMLScanner& operator=(const XMLScanner&);
+
+    // -----------------------------------------------------------------------
+    //  Private helper methods
+    // -----------------------------------------------------------------------
+    void commonInit();
+    void cleanUp();
+
+    // -----------------------------------------------------------------------
+    //  Private scanning methods
+    // -----------------------------------------------------------------------
+    bool getQuotedString(XMLBuffer& toFill);
+    unsigned int scanUpToWSOr
+    (
+                XMLBuffer&  toFill
+        , const XMLCh       chEndChar
+    );
+};
+
+// ---------------------------------------------------------------------------
+//  XMLScanner: Getter methods
+// ---------------------------------------------------------------------------
+inline const XMLDocumentHandler* XMLScanner::getDocHandler() const
+{
+    return fDocHandler;
+}
+
+inline XMLDocumentHandler* XMLScanner::getDocHandler()
+{
+    return fDocHandler;
+}
+
+inline const DocTypeHandler* XMLScanner::getDocTypeHandler() const
+{
+    return fDocTypeHandler;
+}
+
+inline DocTypeHandler* XMLScanner::getDocTypeHandler()
+{
+    return fDocTypeHandler;
+}
+
+inline bool XMLScanner::getDoNamespaces() const
+{
+    return fDoNamespaces;
+}
+
+inline const XMLEntityHandler* XMLScanner::getEntityHandler() const
+{
+    return fEntityHandler;
+}
+
+inline XMLEntityHandler* XMLScanner::getEntityHandler()
+{
+    return fEntityHandler;
+}
+
+inline const XMLErrorReporter* XMLScanner::getErrorReporter() const
+{
+    return fErrorReporter;
+}
+
+inline XMLErrorReporter* XMLScanner::getErrorReporter()
+{
+    return fErrorReporter;
+}
+
+inline const ErrorHandler* XMLScanner::getErrorHandler() const
+{
+    return fErrorHandler;
+}
+
+inline ErrorHandler* XMLScanner::getErrorHandler()
+{
+    return fErrorHandler;
+}
+
+inline const PSVIHandler* XMLScanner::getPSVIHandler() const
+{
+    return fPSVIHandler;
+}
+
+inline PSVIHandler* XMLScanner::getPSVIHandler()
+{
+    return fPSVIHandler;
+}
+
+inline bool XMLScanner::getExitOnFirstFatal() const
+{
+    return fExitOnFirstFatal;
+}
+
+inline bool XMLScanner::getValidationConstraintFatal() const
+{
+    return fValidationConstraintFatal;
+}
+
+inline bool XMLScanner::getInException() const
+{
+    return fInException;
+}
+
+inline RefHashTableOf<XMLRefInfo>* XMLScanner::getIDRefList()
+{
+    return fValidationContext->getIdRefList();
+}
+
+inline const RefHashTableOf<XMLRefInfo>* XMLScanner::getIDRefList() const
+{
+    return fValidationContext->getIdRefList();
+}
+
+inline ValidationContext*  XMLScanner::getValidationContext()
+{
+    if (!fEntityDeclPoolRetrieved)
+    {
+        fValidationContext->setEntityDeclPool(getEntityDeclPool());
+        fEntityDeclPoolRetrieved = true;
+    }
+
+    return fValidationContext;
+}
+
+inline const Locator* XMLScanner::getLocator() const
+{
+    return &fReaderMgr;
+}
+
+inline const ReaderMgr* XMLScanner::getReaderMgr() const
+{
+    return &fReaderMgr;
+}
+
+inline unsigned int XMLScanner::getSrcOffset() const
+{
+    return fReaderMgr.getSrcOffset();
+}
+
+inline bool XMLScanner::getStandalone() const
+{
+    return fStandalone;
+}
+
+inline XMLScanner::ValSchemes XMLScanner::getValidationScheme() const
+{
+    return fValScheme;
+}
+
+inline const XMLValidator* XMLScanner::getValidator() const
+{
+    return fValidator;
+}
+
+inline XMLValidator* XMLScanner::getValidator()
+{
+    return fValidator;
+}
+
+inline bool XMLScanner::getDoSchema() const
+{
+    return fDoSchema;
+}
+
+inline bool XMLScanner::getValidationSchemaFullChecking() const
+{
+    return fSchemaFullChecking;
+}
+
+inline bool XMLScanner::getIdentityConstraintChecking() const
+{
+    return fIdentityConstraintChecking;
+}
+
+inline int XMLScanner::getErrorCount()
+{
+    return fErrorCount;
+}
+
+inline bool XMLScanner::isValidatorFromUser()
+{
+    return fValidatorFromUser;
+}
+
+inline unsigned int XMLScanner::getEmptyNamespaceId() const
+{
+    return fEmptyNamespaceId;
+}
+
+inline unsigned int XMLScanner::getUnknownNamespaceId() const
+{
+    return fUnknownNamespaceId;
+}
+
+inline unsigned int XMLScanner::getXMLNamespaceId() const
+{
+    return fXMLNamespaceId;
+}
+
+inline unsigned int XMLScanner::getXMLNSNamespaceId() const
+{
+    return fXMLNSNamespaceId;
+}
+
+inline const XMLStringPool* XMLScanner::getURIStringPool() const
+{
+    return fURIStringPool;
+}
+
+inline XMLStringPool* XMLScanner::getURIStringPool()
+{
+    return fURIStringPool;
+}
+
+inline bool XMLScanner::getHasNoDTD() const
+{
+    return fHasNoDTD;
+}
+
+inline XMLCh* XMLScanner::getExternalSchemaLocation() const
+{
+    return fExternalSchemaLocation;
+}
+
+inline XMLCh* XMLScanner::getExternalNoNamespaceSchemaLocation() const
+{
+    return fExternalNoNamespaceSchemaLocation;
+}
+
+inline SecurityManager* XMLScanner::getSecurityManager() const
+{
+    return fSecurityManager;
+}
+
+inline bool XMLScanner::getLoadExternalDTD() const
+{
+    return fLoadExternalDTD;
+}
+
+inline bool XMLScanner::getNormalizeData() const
+{
+    return fNormalizeData;
+}
+
+inline bool XMLScanner::isCachingGrammarFromParse() const
+{
+    return fToCacheGrammar;
+}
+
+inline bool XMLScanner::isUsingCachedGrammarInParse() const
+{
+    return fUseCachedGrammar;
+}
+
+inline bool XMLScanner::getCalculateSrcOfs() const
+{
+    return fCalculateSrcOfs;
+}
+
+inline Grammar* XMLScanner::getRootGrammar() const
+{
+    return fRootGrammar;
+}
+
+inline bool XMLScanner::getStandardUriConformant() const
+{
+    return fStandardUriConformant;
+}
+
+inline XMLReader::XMLVersion XMLScanner::getXMLVersion() const
+{
+	return fXMLVersion;
+}
+
+inline MemoryManager* XMLScanner::getMemoryManager() const
+{
+    return fMemoryManager;
+}
+
+inline ValueVectorOf<PrefMapElem*>* XMLScanner::getNamespaceContext() const
+{
+    return fElemStack.getNamespaceMap();
+}
+
+inline unsigned int XMLScanner::getPrefixId(const XMLCh* const prefix) const
+{
+    return fElemStack.getPrefixId(prefix);
+}
+
+inline const XMLCh* XMLScanner::getPrefixForId(unsigned int prefId) const
+{
+    return fElemStack.getPrefixForId(prefId);
+}
+
+inline bool XMLScanner::getGenerateSyntheticAnnotations() const
+{
+    return fGenerateSyntheticAnnotations;
+}
+
+inline bool XMLScanner::getValidateAnnotations() const
+{
+    return fValidateAnnotations;
+}
+
+inline bool XMLScanner::getIgnoreCachedDTD() const
+{
+    return fIgnoreCachedDTD;
+}
+
+inline bool XMLScanner::getIgnoreAnnotations() const
+{
+    return fIgnoreAnnotations;
+}
+
+inline bool XMLScanner::getDisableDefaultEntityResolution() const
+{
+    return fDisableDefaultEntityResolution;
+}
+
+inline bool XMLScanner::getSkipDTDValidation() const
+{
+    return fSkipDTDValidation;
+}
+
+// ---------------------------------------------------------------------------
+//  XMLScanner: Setter methods
+// ---------------------------------------------------------------------------
+inline void XMLScanner::setDocHandler(XMLDocumentHandler* const docHandler)
+{
+    fDocHandler = docHandler;
+}
+
+inline void XMLScanner::setDocTypeHandler(DocTypeHandler* const docTypeHandler)
+{
+    fDocTypeHandler = docTypeHandler;
+}
+
+inline void XMLScanner::setErrorHandler(ErrorHandler* const handler)
+{
+    fErrorHandler = handler;
+}
+
+inline void XMLScanner::setPSVIHandler(PSVIHandler* const handler)
+{
+    fPSVIHandler = handler;
+}
+
+inline void XMLScanner::setEntityHandler(XMLEntityHandler* const entityHandler)
+{
+    fEntityHandler = entityHandler;
+    fReaderMgr.setEntityHandler(entityHandler);
+}
+
+inline void XMLScanner::setErrorReporter(XMLErrorReporter* const errHandler)
+{
+    fErrorReporter = errHandler;
+}
+
+inline void XMLScanner::setExitOnFirstFatal(const bool newValue)
+{
+    fExitOnFirstFatal = newValue;
+}
+
+
+inline void XMLScanner::setValidationConstraintFatal(const bool newValue)
+{
+    fValidationConstraintFatal = newValue;
+}
+
+inline void XMLScanner::setValidationScheme(const ValSchemes newScheme)
+{
+    fValScheme = newScheme;
+
+    // validation flag for Val_Auto is set to false by default,
+    //   and will be turned to true if a grammar is seen
+    if (fValScheme == Val_Always)
+        fValidate = true;
+    else
+        fValidate = false;
+}
+
+inline void XMLScanner::setDoSchema(const bool doSchema)
+{
+    fDoSchema = doSchema;
+}
+
+inline void XMLScanner::setDoNamespaces(const bool doNamespaces)
+{
+    fDoNamespaces = doNamespaces;
+}
+
+inline void XMLScanner::setValidationSchemaFullChecking(const bool schemaFullChecking)
+{
+    fSchemaFullChecking = schemaFullChecking;
+}
+
+inline void XMLScanner::setIdentityConstraintChecking(const bool identityConstraintChecking)
+{
+    fIdentityConstraintChecking = identityConstraintChecking;
+}
+
+inline void XMLScanner::setHasNoDTD(const bool hasNoDTD)
+{
+    fHasNoDTD = hasNoDTD;
+}
+
+inline void XMLScanner::setRootElemName(XMLCh* rootElemName)
+{
+    fMemoryManager->deallocate(fRootElemName);//delete [] fRootElemName;
+    fRootElemName = XMLString::replicate(rootElemName, fMemoryManager);
+}
+
+inline void XMLScanner::setExternalSchemaLocation(const XMLCh* const schemaLocation)
+{
+    fMemoryManager->deallocate(fExternalSchemaLocation);//delete [] fExternalSchemaLocation;
+    fExternalSchemaLocation = XMLString::replicate(schemaLocation, fMemoryManager);
+}
+
+inline void XMLScanner::setExternalNoNamespaceSchemaLocation(const XMLCh* const noNamespaceSchemaLocation)
+{
+    fMemoryManager->deallocate(fExternalNoNamespaceSchemaLocation);//delete [] fExternalNoNamespaceSchemaLocation;
+    fExternalNoNamespaceSchemaLocation = XMLString::replicate(noNamespaceSchemaLocation, fMemoryManager);
+}
+
+inline void XMLScanner::setExternalSchemaLocation(const char* const schemaLocation)
+{
+    fMemoryManager->deallocate(fExternalSchemaLocation);//delete [] fExternalSchemaLocation;
+    fExternalSchemaLocation = XMLString::transcode(schemaLocation, fMemoryManager);
+}
+
+inline void XMLScanner::setExternalNoNamespaceSchemaLocation(const char* const noNamespaceSchemaLocation)
+{
+    fMemoryManager->deallocate(fExternalNoNamespaceSchemaLocation);//delete [] fExternalNoNamespaceSchemaLocation;
+    fExternalNoNamespaceSchemaLocation = XMLString::transcode(noNamespaceSchemaLocation, fMemoryManager);
+}
+
+inline void XMLScanner::setSecurityManager(SecurityManager* const securityManager)
+{
+    fSecurityManager = securityManager;
+    if(securityManager != 0) 
+    {
+        fEntityExpansionLimit = securityManager->getEntityExpansionLimit();
+        fEntityExpansionCount = 0;
+    }
+}
+
+inline void XMLScanner::setLoadExternalDTD(const bool loadDTD)
+{
+    fLoadExternalDTD = loadDTD;
+}
+
+inline void XMLScanner::setNormalizeData(const bool normalizeData)
+{
+    fNormalizeData = normalizeData;
+}
+
+inline void XMLScanner::cacheGrammarFromParse(const bool newValue)
+{
+    fToCacheGrammar = newValue;
+}
+
+inline void XMLScanner::useCachedGrammarInParse(const bool newValue)
+{
+    fUseCachedGrammar = newValue;
+}
+
+inline void XMLScanner::setCalculateSrcOfs(const bool newValue)
+{
+    fCalculateSrcOfs = newValue;
+}
+
+inline void XMLScanner::setStandardUriConformant(const bool newValue)
+{
+    fStandardUriConformant = newValue;
+    fReaderMgr.setStandardUriConformant(newValue);
+}
+
+inline void XMLScanner::setGenerateSyntheticAnnotations(const bool newValue)
+{
+    fGenerateSyntheticAnnotations = newValue;
+}
+
+inline void XMLScanner::setValidateAnnotations(const bool newValue)
+{
+    fValidateAnnotations = newValue;
+}
+
+inline void XMLScanner::setInputBufferSize(const size_t bufferSize)
+{
+    fBufferSize = bufferSize;
+    fCDataBuf.setFullHandler(this, (unsigned int)fBufferSize);
+}
+
+inline void XMLScanner::setIgnoredCachedDTD(const bool newValue)
+{
+    fIgnoreCachedDTD = newValue;
+}
+
+inline void XMLScanner::setIgnoreAnnotations(const bool newValue)
+{
+    fIgnoreAnnotations = newValue;
+}
+
+inline void XMLScanner::setDisableDefaultEntityResolution(const bool newValue)
+{
+    fDisableDefaultEntityResolution = newValue;
+}
+
+inline void XMLScanner::setSkipDTDValidation(const bool newValue)
+{
+    fSkipDTDValidation = newValue;
+}
+
+// ---------------------------------------------------------------------------
+//  XMLScanner: Mutator methods
+// ---------------------------------------------------------------------------
+inline void XMLScanner::incrementErrorCount()
+{
+    ++fErrorCount;
+}
+
+// ---------------------------------------------------------------------------
+//  XMLScanner: Deprecated methods
+// ---------------------------------------------------------------------------
+inline bool XMLScanner::getDoValidation() const
+{
+    return fValidate;
+}
+
+inline void XMLScanner::setDoValidation(const bool validate)
+{
+    fValidate = validate;
+    if (fValidate)
+        fValScheme = Val_Always;
+    else
+        fValScheme = Val_Never;
+}
+
+inline void XMLScanner::resetValidationContext()
+{
+    fValidationContext->clearIdRefList();
+    fValidationContext->setEntityDeclPool(0);
+    fEntityDeclPoolRetrieved = false;
+}
+
+inline void XMLScanner::setAttrDupChkRegistry(const unsigned int &attrNumber
+                                            ,       bool         &toUseHashTable)
+{
+   // once the attribute exceed 100, we use hash table to check duplication
+    if (attrNumber > 100)
+   {
+        toUseHashTable = true;
+
+        if (!fAttrDupChkRegistry)
+        {
+            fAttrDupChkRegistry = new (fMemoryManager) RefHash2KeysTableOf<XMLAttr>
+            (
+              2*attrNumber+1, false, new (fMemoryManager)HashXMLCh(), fMemoryManager
+            );
+        }
+        else
+        {
+            fAttrDupChkRegistry->removeAll();
+        }
+    }
+
+}
+
+inline Grammar::GrammarType XMLScanner::getCurrentGrammarType() const
+{
+    return Grammar::UnKnown;
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
+
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/internal/ValidationContextImpl.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/internal/ValidationContextImpl.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/internal/ValidationContextImpl.hpp	(revision 2674)
@@ -0,0 +1,156 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: ValidationContextImpl.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(VALIDATION_CONTEXTIMPL_HPP)
+#define VALIDATION_CONTEXTIMPL_HPP
+
+#include <xercesc/framework/ValidationContext.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+class ElemStack;
+
+class XMLPARSER_EXPORT ValidationContextImpl : public ValidationContext
+{
+public :
+    // -----------------------------------------------------------------------
+    /** @name Virtual destructor for derived classes */
+    // -----------------------------------------------------------------------
+    //@{
+
+    /**
+      * virtual destructor
+      *
+      */
+    virtual ~ValidationContextImpl();
+
+    ValidationContextImpl(MemoryManager* const memMgr = XMLPlatformUtils::fgMemoryManager);
+
+    //@}
+
+    // -----------------------------------------------------------------------
+    /** @name The ValidationContextImpl Interface */
+    // -----------------------------------------------------------------------
+    //@{
+
+    /**
+      * IDRefList
+      *
+      */
+    virtual RefHashTableOf<XMLRefInfo>*  getIdRefList() const;
+
+    virtual void                         setIdRefList(RefHashTableOf<XMLRefInfo>* const);
+
+    virtual void                         clearIdRefList();
+
+    virtual void                         addId(const XMLCh * const );
+
+    virtual void                         addIdRef(const XMLCh * const );
+
+    virtual void                         toCheckIdRefList(bool);
+
+    /**
+      * EntityDeclPool
+      *
+      */
+    virtual const NameIdPool<DTDEntityDecl>* getEntityDeclPool() const;
+
+    virtual const NameIdPool<DTDEntityDecl>* setEntityDeclPool(const NameIdPool<DTDEntityDecl>* const);    
+           
+    virtual void                             checkEntity(const XMLCh * const ) const;
+
+
+    /**
+      * Union datatype handling
+      *
+      */
+
+    virtual DatatypeValidator * getValidatingMemberType() const;
+    virtual void setValidatingMemberType(DatatypeValidator * validatingMemberType) ;
+
+    /**
+      * QName datatype handling
+      * Create default implementations for source code compatibility
+      */
+    virtual bool isPrefixUnknown(XMLCh* prefix);
+    virtual void setElemStack(ElemStack* elemStack);
+
+    //@}
+  
+private:
+    // -----------------------------------------------------------------------
+    /** name  Unimplemented copy constructor and operator= */
+    // -----------------------------------------------------------------------
+    //@{
+    ValidationContextImpl(const ValidationContextImpl& );
+    ValidationContextImpl& operator=(const ValidationContextImpl& );
+    //@}
+
+    // -----------------------------------------------------------------------
+    //  Data members
+    //
+    //  fIDRefList:  owned/adopted
+    //      This is a list of XMLRefInfo objects. This member lets us do all
+    //      needed ID-IDREF balancing checks.
+    //
+    //  fEntityDeclPool: referenced only
+    //      This is a pool of EntityDecl objects, which contains all of the
+    //      general entities that are declared in the DTD subsets, plus the
+    //      default entities (such as &gt; &lt; ...) defined by the XML Standard.
+    //
+    //  fToAddToList
+    //  fValidatingMemberType
+    //      The member type in a union that actually
+    //      validated some text.  Note that the validationContext does not
+    //      own this object, and the value of getValidatingMemberType
+    //      will not be accurate unless the type of the most recently-validated
+    //      element/attribute is in fact a union datatype.
+    //  fElemStack
+    //      Need access to elemstack to look up URI's that are inscope.
+    // -----------------------------------------------------------------------
+
+    RefHashTableOf<XMLRefInfo>*         fIdRefList;
+    const NameIdPool<DTDEntityDecl>*    fEntityDeclPool;
+    bool                                fToCheckIdRefList;
+    DatatypeValidator *                 fValidatingMemberType;    
+    ElemStack*      fElemStack;
+
+};
+
+
+
+inline DatatypeValidator * ValidationContextImpl::getValidatingMemberType() const
+{
+    return fValidatingMemberType;
+}
+
+inline void ValidationContextImpl::setValidatingMemberType(DatatypeValidator * validatingMemberType) 
+{
+    fValidatingMemberType = validatingMemberType;
+}
+
+inline void ValidationContextImpl::setElemStack(ElemStack* elemStack) {
+    fElemStack = elemStack;
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
+
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/internal/XMLGrammarPoolImpl.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/internal/XMLGrammarPoolImpl.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/internal/XMLGrammarPoolImpl.hpp	(revision 2674)
@@ -0,0 +1,303 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: XMLGrammarPoolImpl.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(XMLGrammarPoolImplIMPL_HPP)
+#define XMLGrammarPoolImplIMPL_HPP
+
+#include <xercesc/framework/XMLGrammarPool.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class XMLSynchronizedStringPool;
+
+class XMLUTIL_EXPORT XMLGrammarPoolImpl : public XMLGrammarPool
+{
+public :
+    // -----------------------------------------------------------------------
+    /** @name constructor and destructor */
+    // -----------------------------------------------------------------------
+    //@{
+
+    XMLGrammarPoolImpl(MemoryManager* const memMgr);
+
+    ~XMLGrammarPoolImpl();
+    //@}
+
+    // -----------------------------------------------------------------------
+    /** @name Implementation of Grammar Pool Interface */
+    // -----------------------------------------------------------------------
+    //@{
+   
+    /**
+      * cacheGrammar
+      *
+      * Provide the grammar pool with an opportunity
+      * to cache the given grammar.  If the pool does not choose to do so,
+      * it should return false; otherwise, it should return true, so that
+      * the caller knows whether the grammar has been adopted.
+      *
+      * @param gramToCache: the Grammar to be cached in the grammar pool
+      * @return true if the grammar pool has elected to cache the grammar (in which case
+      * it is assumed to have adopted it); false if it does not cache it
+	  *
+      */
+    virtual bool           cacheGrammar(Grammar* const               gramToCache);
+    
+
+    /**
+      * retrieveGrammar
+      *
+      * @param gramDesc: the Grammar Description used to search for grammar
+	  *                  cached in the grammar pool
+	  *
+      */
+    virtual Grammar*       retrieveGrammar(XMLGrammarDescription* const gramDesc);
+    
+        
+    /**
+      * orphanGrammar
+      *
+	  * grammar removed from the grammar pool and owned by the caller
+      *
+      * @param nameSpaceKey: Key used to search for grammar in the grammar pool
+	  *
+      */
+    virtual Grammar*       orphanGrammar(const XMLCh* const nameSpaceKey);  
+
+
+    /**
+     * Get an enumeration of the cached Grammars in the Grammar pool
+     *
+     * @return enumeration of the cached Grammars in Grammar pool
+     */
+    virtual RefHashTableOfEnumerator<Grammar> getGrammarEnumerator() const;
+
+    /**
+      * clear
+      *
+	  * all grammars are removed from the grammar pool and deleted.
+      * @return true if the grammar pool was cleared. false if it did not.
+      */
+    virtual bool           clear();
+        
+    /**
+      * lockPool
+      *
+	  * When this method is called by the application, the 
+      * grammar pool should stop adding new grammars to the cache.
+      */
+    virtual void           lockPool();
+    
+    /**
+      * unlockPool
+      *
+	  * After this method has been called, the grammar pool implementation
+      * should return to its default behaviour when cacheGrammars(...) is called.
+      *
+      * For PSVI support any previous XSModel that was produced will be deleted.
+      */
+    virtual void           unlockPool();
+
+    //@}
+
+    // -----------------------------------------------------------------------
+    /** @name  Implementation of Factory interface */
+    // -----------------------------------------------------------------------
+    //@{
+
+    /**
+      * createDTDGrammar
+      *
+      */
+    virtual DTDGrammar*            createDTDGrammar();
+
+    /**
+      * createSchemaGrammar
+      *
+      */
+    virtual SchemaGrammar*         createSchemaGrammar();
+                    
+    /**
+      * createDTDDescription
+      *
+      */	
+    virtual XMLDTDDescription*     createDTDDescription(const XMLCh* const systemId);
+    /**
+      * createSchemaDescription
+      *
+      */		
+    virtual XMLSchemaDescription*  createSchemaDescription(const XMLCh* const targetNamespace);
+    //@}
+	
+    // -----------------------------------------------------------------------
+    /** @name  schema component model support */
+    // -----------------------------------------------------------------------                                                        
+    //@{
+
+    /***
+      * Return an XSModel derived from the components of all SchemaGrammars
+      * in the grammar pool.  If the pool is locked, this should
+      * be a thread-safe operation.  It should return null if and only if
+      * the pool is empty.
+      *
+      * Calling getXSModel() on an unlocked grammar pool may result in the
+      * creation of a new XSModel with the old XSModel being deleted.  The
+      * function will return a different address for the XSModel if it has
+      * changed.
+      *
+      * In this implementation, when the pool is not locked a new XSModel will be
+      * computed each this time the pool is called if the pool has changed (and the
+      * previous one will be destroyed at that time).  When the lockPool()
+      * method is called, an XSModel will be generated and returned whenever this method is called
+      * while the pool is in the locked state.  This will be destroyed if the unlockPool()
+      * operation is called.  The XSModel will not be serialized,
+      * but will be recreated if a deserialized pool is in the 
+      * locked state.
+      *
+      * @deprecated (shouldn't use address to determine if XSModel changed)
+      */
+    virtual XSModel *getXSModel();
+
+    /***
+      * Return an XSModel derived from the components of all SchemaGrammars
+      * in the grammar pool.  If the pool is locked, this should
+      * be a thread-safe operation.  
+      *
+      * NOTE: The function should NEVER return NULL.  If there are no grammars in
+      *       the pool it should return an XSModel containing the Schema for Schema.
+      *
+      * Calling getXSModel() on an unlocked grammar pool may result in the
+      * creation of a new XSModel with the old XSModel being deleted.
+      * The bool parameter will indicate if the XSModel was changed.
+      *  
+      * In this implementation, when the pool is not locked a new XSModel will be
+      * computed each this time the pool is called if the pool has changed (and the
+      * previous one will be destroyed at that time).  When the lockPool()
+      * method is called, an XSModel will be generated and returned whenever this method is called
+      * while the pool is in the locked state.  This will be destroyed if the unlockPool()
+      * operation is called.  The XSModel will not be serialized,
+      * but will be recreated if a deserialized pool is in the 
+      * locked state.
+      *      
+      */
+    virtual XSModel *getXSModel(bool& XSModelWasChanged);
+
+    // @}
+    // -----------------------------------------------------------------------
+    /** @name  Getter */
+    // -----------------------------------------------------------------------                                                        
+    //@{
+
+    /**
+      * Return an XMLStringPool for use by validation routines.  
+      * Implementations should not create a string pool on each call to this
+      * method, but should maintain one string pool for all grammars
+      * for which this pool is responsible.
+      */
+    virtual XMLStringPool *getURIStringPool();
+
+    // @}
+
+    // -----------------------------------------------------------------------
+    // serialization and deserialization support
+    // -----------------------------------------------------------------------
+
+    /***
+      *
+      * Multiple serializations
+      *
+      *    For multiple serializations, if the same file name is given, then the 
+      *    last result will be in the file (overwriting mode), if different file 
+      *    names are given, then there are multiple data stores for each serialization.
+      *
+      * Multiple deserializations
+      * 
+      *    Not supported
+      *
+      * Versioning
+      *
+      *    Only binary data serialized with the current XercesC Version and
+      *    SerializationLevel is supported.
+      *
+      * Clean up
+      *
+      *    In the event of an exception thrown due to a corrupted data store during 
+      *    deserialization, this implementation may not be able to clean up all resources 
+      *    allocated, and therefore it is the client application's responsibility to 
+      *    clean up those unreleased resources.
+      *
+      * Coupling of Grammars and StringPool
+      *
+      *    This implementation assumes that StringPool shall always be 
+      *    serialized/deserialized together with the grammars. In the case that such a
+      *    coupling is not desired, client application can modify this behaviour by 
+      *    either derivate from this imlementation and overwrite the serializeGrammars()
+      *    and/or deserializeGrammars() to decouple grammars and string pool, or
+      *    Once deserializeGrammars() is done, insert another StringPool through
+      *    setStringPool().
+      *
+      *    Client application shall be aware of the unpredicatable/undefined consequence 
+      *    of this decoupling.
+      */
+
+    virtual void     serializeGrammars(BinOutputStream* const); 
+    virtual void     deserializeGrammars(BinInputStream* const); 
+
+private:
+
+    virtual void    createXSModel();
+
+    void
+    cleanUp();
+
+    // -----------------------------------------------------------------------
+    /** name  Unimplemented copy constructor and operator= */
+    // -----------------------------------------------------------------------
+    //@{
+    XMLGrammarPoolImpl(const XMLGrammarPoolImpl& );
+    XMLGrammarPoolImpl& operator=(const XMLGrammarPoolImpl& );
+    //@}
+
+    // -----------------------------------------------------------------------
+    //
+    // fGrammarRegistry: 
+    //
+	//    container
+    // fStringPool
+    //    grammars need a string pool for URI -> int mappings
+    // fSynchronizedStringPool
+    //      When the grammar pool is locked, provide a string pool
+    //      that can be updated in a thread-safe manner.
+    // fLocked
+    //      whether the pool has been locked
+    //
+    // -----------------------------------------------------------------------
+    RefHashTableOf<Grammar>*            fGrammarRegistry; 
+    XMLStringPool*                      fStringPool;
+    XMLSynchronizedStringPool*          fSynchronizedStringPool;
+    XSModel*                            fXSModel;
+    bool                                fLocked;
+    bool                                fXSModelIsValid;
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/internal/XMLReader.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/internal/XMLReader.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/internal/XMLReader.hpp	(revision 2674)
@@ -0,0 +1,783 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: XMLReader.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(XMLREADER_HPP)
+#define XMLREADER_HPP
+
+#include <xercesc/util/XMLChar.hpp>
+#include <xercesc/framework/XMLRecognizer.hpp>
+#include <xercesc/framework/XMLBuffer.hpp>
+#include <xercesc/util/TranscodingException.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class InputSource;
+class BinInputStream;
+class ReaderMgr;
+class XMLScanner;
+class XMLTranscoder;
+
+
+// ---------------------------------------------------------------------------
+//  Instances of this class are used to manage the content of entities. The
+//  scanner maintains a stack of these, one for each entity (this means entity
+//  in the sense of any parsed file or internal entity) currently being
+//  scanned. This class, given a binary input stream will handle reading in
+//  the data and decoding it from its external decoding into the internal
+//  Unicode format. Once internallized, this class provides the access
+//  methods to read in the data in various ways, maintains line and column
+//  information, and provides high performance character attribute checking
+//  methods.
+//
+//  This is NOT to be derived from.
+//
+// ---------------------------------------------------------------------------
+class XMLPARSER_EXPORT XMLReader : public XMemory
+{
+public:
+    // -----------------------------------------------------------------------
+    //  Public types
+    // -----------------------------------------------------------------------
+    enum Types
+    {
+        Type_PE
+        , Type_General
+    };
+
+    enum Sources
+    {
+        Source_Internal
+        , Source_External
+    };
+
+    enum RefFrom
+    {
+        RefFrom_Literal
+        , RefFrom_NonLiteral
+    };
+
+    enum XMLVersion
+    {
+        XMLV1_0
+        , XMLV1_1
+        , XMLV_Unknown
+    };
+
+
+    // -----------------------------------------------------------------------
+    //  Public, query methods
+    // -----------------------------------------------------------------------
+    bool isAllSpaces
+    (
+        const   XMLCh* const    toCheck
+        , const unsigned int    count
+    ) const;
+
+    bool containsWhiteSpace
+    (
+        const   XMLCh* const    toCheck
+        , const unsigned int    count
+    ) const;
+
+
+    bool isXMLLetter(const XMLCh toCheck) const;
+    bool isFirstNameChar(const XMLCh toCheck) const;
+    bool isNameChar(const XMLCh toCheck) const;    
+    bool isPlainContentChar(const XMLCh toCheck) const;
+    bool isSpecialStartTagChar(const XMLCh toCheck) const;
+    bool isXMLChar(const XMLCh toCheck) const;
+    bool isWhitespace(const XMLCh toCheck) const;
+    bool isControlChar(const XMLCh toCheck) const;
+    bool isPublicIdChar(const XMLCh toCheck) const;
+    bool isFirstNCNameChar(const XMLCh toCheck) const;
+    bool isNCNameChar(const XMLCh toCheck) const;    
+
+    // -----------------------------------------------------------------------
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+    XMLReader
+    (
+        const   XMLCh* const          pubId
+        , const XMLCh* const          sysId
+        ,       BinInputStream* const streamToAdopt
+        , const RefFrom               from
+        , const Types                 type
+        , const Sources               source
+        , const bool                  throwAtEnd = false
+        , const bool                  calculateSrcOfs = true
+        , const XMLVersion            xmlVersion = XMLV1_0
+        ,       MemoryManager* const  manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    XMLReader
+    (
+        const   XMLCh* const          pubId
+        , const XMLCh* const          sysId
+        ,       BinInputStream* const streamToAdopt
+        , const XMLCh* const          encodingStr
+        , const RefFrom               from
+        , const Types                 type
+        , const Sources               source
+        , const bool                  throwAtEnd = false
+        , const bool                  calculateSrcOfs = true
+        , const XMLVersion            xmlVersion = XMLV1_0
+        ,       MemoryManager* const  manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    XMLReader
+    (
+        const   XMLCh* const          pubId
+        , const XMLCh* const          sysId
+        ,       BinInputStream* const streamToAdopt
+        , XMLRecognizer::Encodings    encodingEnum
+        , const RefFrom               from
+        , const Types                 type
+        , const Sources               source
+        , const bool                  throwAtEnd = false
+        , const bool                  calculateSrcOfs = true
+        , const XMLVersion            xmlVersion = XMLV1_0
+        ,       MemoryManager* const  manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    ~XMLReader();
+
+
+    // -----------------------------------------------------------------------
+    //  Character buffer management methods
+    // -----------------------------------------------------------------------
+    unsigned long charsLeftInBuffer() const;
+    bool refreshCharBuffer();
+
+
+    // -----------------------------------------------------------------------
+    //  Scanning methods
+    // -----------------------------------------------------------------------
+    bool getName(XMLBuffer& toFill, const bool token);
+    bool getQName(XMLBuffer& toFill, int* colonPosition);
+    bool getNextChar(XMLCh& chGotten);
+    bool getNextCharIfNot(const XMLCh chNotToGet, XMLCh& chGotten);
+    void movePlainContentChars(XMLBuffer &dest);
+    bool getSpaces(XMLBuffer& toFill);
+    bool getUpToCharOrWS(XMLBuffer& toFill, const XMLCh toCheck);
+    bool peekNextChar(XMLCh& chGotten);
+    bool skipIfQuote(XMLCh& chGotten);
+    bool skipSpaces(bool& skippedSomething, bool inDecl = false);
+    bool skippedChar(const XMLCh toSkip);
+    bool skippedSpace();
+    bool skippedString(const XMLCh* const toSkip);
+    bool peekString(const XMLCh* const toPeek);
+
+
+    // -----------------------------------------------------------------------
+    //  Getter methods
+    // -----------------------------------------------------------------------
+    XMLSSize_t getColumnNumber() const;
+    const XMLCh* getEncodingStr() const;
+    XMLSSize_t getLineNumber() const;
+    bool getNoMoreFlag() const;
+    const XMLCh* getPublicId() const;
+    unsigned int getReaderNum() const;
+    RefFrom getRefFrom() const;
+    Sources getSource() const;
+    unsigned int getSrcOffset() const;
+    const XMLCh* getSystemId() const;
+    bool getThrowAtEnd() const;
+    Types getType() const;
+
+
+    // -----------------------------------------------------------------------
+    //  Setter methods
+    // -----------------------------------------------------------------------
+    bool setEncoding
+    (
+        const   XMLCh* const    newEncoding
+    );
+    void setReaderNum(const unsigned int newNum);
+    void setThrowAtEnd(const bool newValue);
+    void setXMLVersion(const XMLVersion version);
+
+
+private:
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    XMLReader(const XMLReader&);
+    XMLReader& operator=(const XMLReader&);
+
+    // ---------------------------------------------------------------------------
+    //  Class Constants
+    //
+    //  kCharBufSize
+    //      The size of the character spool buffer that we use. Its not terribly
+    //      large because its just getting filled with data from a raw byte
+    //      buffer as we go along. We don't want to decode all the text at
+    //      once before we find out that there is an error.
+    //
+    //      NOTE: This is a size in characters, not bytes.
+    //
+    //  kRawBufSize
+    //      The size of the raw buffer from which raw bytes are spooled out
+    //      as we transcode chunks of data. As it is emptied, it is filled back
+    //      in again from the source stream.
+    // ---------------------------------------------------------------------------
+    enum Constants
+    {
+        kCharBufSize        = 16 * 1024
+        , kRawBufSize       = 48 * 1024
+    };
+
+
+    // -----------------------------------------------------------------------
+    //  Private helper methods
+    // -----------------------------------------------------------------------
+    void checkForSwapped();
+
+    void doInitCharSizeChecks();
+
+    void doInitDecode();
+
+    XMLByte getNextRawByte
+    (
+        const   bool            eoiOk
+    );
+
+    void refreshRawBuffer();
+
+    void setTranscoder
+    (
+        const   XMLCh* const    newEncoding
+    );
+
+    unsigned int xcodeMoreChars
+    (
+                XMLCh* const            bufToFill
+        ,       unsigned char* const    charSizes
+        , const unsigned int            maxChars
+    );
+
+    void handleEOL
+    (
+              XMLCh&   curCh
+            , bool     inDecl = false
+    );
+
+    // -----------------------------------------------------------------------
+    //  Data members
+    //
+    //  fCharIndex
+    //      The index into the character buffer. When this hits fCharsAvail
+    //      then its time to refill.
+    //
+    //  fCharBuf
+    //      A buffer that the reader manager fills up with transcoded
+    //      characters a small amount at a time.
+    //
+    //  fCharsAvail
+    //      The characters currently available in the character buffer.
+    //
+    //  fCharSizeBuf
+    //      This buffer is an array that contains the number of source chars
+    //      eaten to create each char in the fCharBuf buffer. So the entry
+    //      fCharSizeBuf[x] is the number of source chars that were eaten
+    //      to make the internalized char fCharBuf[x]. This only contains
+    //      useful data if fSrcOfsSupported is true.
+    //
+    //  fCharOfsBuf
+    //      This buffer is an array that contains the offset in the
+    //      fRawByteBuf buffer of each char in the fCharBuf buffer. It
+    //      only contains useful data if fSrcOfsSupported is true.
+    //
+    //  fCurCol
+    //  fCurLine
+    //      The current line and column that we are in within this reader's
+    //      text.
+    //
+    //  fEncoding
+    //      This is the rough encoding setting. This enum is set during
+    //      construction and just tells us the rough family of encoding that
+    //      we are doing.
+    //
+    //  fEncodingStr
+    //      This is the name of the encoding we are using. It will be
+    //      provisionally set during construction, from the auto-sensed
+    //      encoding. But it might be overridden when the XMLDecl is finally
+    //      seen by the scanner. It can also be forced to a particular
+    //      encoding, in which case fForcedEncoding is set.
+    //
+    //  fForcedEncoding
+    //      If the encoding if forced then this is set and all other
+    //      information will be ignored. This encoding will be taken as
+    //      gospel. This is done by calling an alternate constructor.
+    //
+    //  fNoMore
+    //      This is set when the source text is exhausted. It lets us know
+    //      quickly that no more text is available.
+    //
+    //  fRawBufIndex
+    //      The current index into the raw byte buffer. When its equal to
+    //      fRawBytesAvail then we need to read another buffer.
+    //
+    //  fRawByteBuf
+    //      This is the raw byte buffer that is used to spool out bytes
+    //      from into the fCharBuf buffer, as we transcode in blocks.
+    //
+    //  fRawBytesAvail
+    //      The number of bytes currently available in the raw buffer. This
+    //      helps deal with the last buffer's worth, which will usually not
+    //      be a full one.
+    //
+    //  fReaderNum
+    //      Each reader from a particular reader manager (which means from a
+    //      particular document) is given a unique number. The reader manager
+    //      sets these numbers. They are used to catch things like partial
+    //      markup errors.
+    //
+    //  fRefFrom
+    //      This flag is provided in the ctor, and tells us if we represent
+    //      some entity being expanded inside a literal. Sometimes things
+    //      happen differently inside and outside literals.
+    //
+    //  fPublicId
+    //  fSystemId
+    //      These are the system and public ids of the source that this
+    //      reader is reading.
+    //
+    //  fSentTrailingSpace
+    //      If we are a PE entity being read and we not referenced from a
+    //      literal, then a leading and trailing space must be faked into the
+    //      data. This lets us know we've done the trailing space already (so
+    //      we don't just keep doing it again and again.)
+    //
+    //  fSource
+    //      Indicates whether the content this reader is spooling as already
+    //      been internalized. This will prevent multiple processing of
+    //      whitespace when an already internalized entity is being spooled
+    //      out.
+    //
+    //  fSpareChar
+    //      Some encodings can create two chars in an atomic way, e.g.
+    //      surrogate pairs. We might not be able to store both, so we store
+    //      it here until the next buffer transcoding operation.
+    //
+    //  fSrcOfsBase
+    //      This is the base offset within the source of this entity. Values
+    //      in the curent fCharSizeBuf array are relative to this value.
+    //
+    //  fSrcOfsSupported
+    //      This flag is set to indicate whether source byte offset info
+    //      is supported. For intrinsic encodings, its always set since we
+    //      can always support it. For transcoder based encodings, we ask
+    //      the transcoder if it supports it or not.
+    //
+    //  fStream
+    //      This is the input stream that provides the data for the reader.
+    //      Its always treated as a raw byte stream. The derived class will
+    //      ask for buffers of text from it and will handle making some
+    //      sense of it.
+    //
+    //  fSwapped
+    //      If the encoding is one of the ones we do intrinsically, and its
+    //      in a different byte order from our native order, then this is
+    //      set to remind us to byte swap it during transcoding.
+    //
+    //  fThrowAtEnd
+    //      Indicates whether the reader manager should throw an end of entity
+    //      exception at the end of this reader instance. This is usually
+    //      set for top level external entity references. It overrides the
+    //      reader manager's global flag that controls throwing at the end
+    //      of entities. Defaults to false.
+    //
+    //  fTranscoder
+    //      If the encoding is not one that we handle intrinsically, then
+    //      we use an an external transcoder to do it. This class is an
+    //      abstraction that allows us to use pluggable external transcoding
+    //      services (via XMLTransService in util.)
+    //
+    //  fType
+    //      Indicates whether this reader represents a PE or not. If this
+    //      flag is true and the fInLiteral flag is false, then we will put
+    //      out an extra space at the end.
+    //
+    //  fgCharCharsTable;
+    //      Pointer to XMLChar table, depends on XML version
+    //
+    //  fNEL
+    //      Boolean indicates if NEL and LSEP should be recognized as NEL
+    //
+    //  fXMLVersion
+    //      Enum to indicate if this Reader is conforming to XML 1.0 or XML 1.1
+    // -----------------------------------------------------------------------
+    unsigned int                fCharIndex;
+    XMLCh                       fCharBuf[kCharBufSize];
+    unsigned int                fCharsAvail;
+    unsigned char               fCharSizeBuf[kCharBufSize];
+    unsigned int                fCharOfsBuf[kCharBufSize];
+    XMLSSize_t                  fCurCol;
+    XMLSSize_t                  fCurLine;
+    XMLRecognizer::Encodings    fEncoding;
+    XMLCh*                      fEncodingStr;
+    bool                        fForcedEncoding;
+    bool                        fNoMore;
+    XMLCh*                      fPublicId;
+    unsigned int                fRawBufIndex;
+    XMLByte                     fRawByteBuf[kRawBufSize];
+    unsigned int                fRawBytesAvail;
+    unsigned int                fReaderNum;
+    RefFrom                     fRefFrom;
+    bool                        fSentTrailingSpace;
+    Sources                     fSource;
+    unsigned int                fSrcOfsBase;
+    bool                        fSrcOfsSupported;
+    bool                        fCalculateSrcOfs;
+    XMLCh*                      fSystemId;
+    BinInputStream*             fStream;
+    bool                        fSwapped;
+    bool                        fThrowAtEnd;
+    XMLTranscoder*              fTranscoder;
+    Types                       fType;
+    XMLByte*                    fgCharCharsTable;
+    bool                        fNEL;
+    XMLVersion                  fXMLVersion;
+    MemoryManager*              fMemoryManager;
+};
+
+
+// ---------------------------------------------------------------------------
+//  XMLReader: Public, query methods
+// ---------------------------------------------------------------------------
+inline bool XMLReader::isNameChar(const XMLCh toCheck) const
+{
+    return ((fgCharCharsTable[toCheck] & gNameCharMask) != 0);
+}
+
+inline bool XMLReader::isNCNameChar(const XMLCh toCheck) const
+{
+    return ((fgCharCharsTable[toCheck] & gNCNameCharMask) != 0);
+}
+
+inline bool XMLReader::isPlainContentChar(const XMLCh toCheck) const
+{
+    return ((fgCharCharsTable[toCheck] & gPlainContentCharMask) != 0);
+}
+
+
+inline bool XMLReader::isFirstNameChar(const XMLCh toCheck) const
+{
+    return ((fgCharCharsTable[toCheck] & gFirstNameCharMask) != 0);
+}
+
+inline bool XMLReader::isFirstNCNameChar(const XMLCh toCheck) const
+{
+    return (((fgCharCharsTable[toCheck] & gFirstNameCharMask) != 0) 
+            && (toCheck != chColon));
+}
+
+inline bool XMLReader::isSpecialStartTagChar(const XMLCh toCheck) const
+{
+    return ((fgCharCharsTable[toCheck] & gSpecialStartTagCharMask) != 0);
+}
+
+inline bool XMLReader::isXMLChar(const XMLCh toCheck) const
+{
+    return ((fgCharCharsTable[toCheck] & gXMLCharMask) != 0);
+}
+
+inline bool XMLReader::isXMLLetter(const XMLCh toCheck) const
+{
+    return (((fgCharCharsTable[toCheck] & gFirstNameCharMask) != 0)
+            && (toCheck != chColon) && (toCheck != chUnderscore));
+}
+
+inline bool XMLReader::isWhitespace(const XMLCh toCheck) const
+{
+    return ((fgCharCharsTable[toCheck] & gWhitespaceCharMask) != 0);
+}
+
+inline bool XMLReader::isControlChar(const XMLCh toCheck) const
+{
+    return ((fgCharCharsTable[toCheck] & gControlCharMask) != 0);
+}
+
+// ---------------------------------------------------------------------------
+//  XMLReader: Buffer management methods
+// ---------------------------------------------------------------------------
+inline unsigned long XMLReader::charsLeftInBuffer() const
+{
+    return fCharsAvail - fCharIndex;
+}
+
+
+// ---------------------------------------------------------------------------
+//  XMLReader: Getter methods
+// ---------------------------------------------------------------------------
+inline XMLSSize_t XMLReader::getColumnNumber() const
+{
+    return fCurCol;
+}
+
+inline const XMLCh* XMLReader::getEncodingStr() const
+{
+    return fEncodingStr;
+}
+
+inline XMLSSize_t XMLReader::getLineNumber() const
+{
+    return fCurLine;
+}
+
+inline bool XMLReader::getNoMoreFlag() const
+{
+    return fNoMore;
+}
+
+inline const XMLCh* XMLReader::getPublicId() const
+{
+    return fPublicId;
+}
+
+inline unsigned int XMLReader::getReaderNum() const
+{
+    return fReaderNum;
+}
+
+inline XMLReader::RefFrom XMLReader::getRefFrom() const
+{
+    return fRefFrom;
+}
+
+inline XMLReader::Sources XMLReader::getSource() const
+{
+    return fSource;
+}
+
+inline const XMLCh* XMLReader::getSystemId() const
+{
+    return fSystemId;
+}
+
+inline bool XMLReader::getThrowAtEnd() const
+{
+    return fThrowAtEnd;
+}
+
+inline XMLReader::Types XMLReader::getType() const
+{
+    return fType;
+}
+
+// ---------------------------------------------------------------------------
+//  XMLReader: Setter methods
+// ---------------------------------------------------------------------------
+inline void XMLReader::setReaderNum(const unsigned int newNum)
+{
+    fReaderNum = newNum;
+}
+
+inline void XMLReader::setThrowAtEnd(const bool newValue)
+{
+    fThrowAtEnd = newValue;
+}
+
+inline void XMLReader::setXMLVersion(const XMLVersion version)
+{
+    fXMLVersion = version;
+    if (version == XMLV1_1) {
+        fNEL = true;
+        fgCharCharsTable = XMLChar1_1::fgCharCharsTable1_1;
+    }
+    else {
+        fNEL = XMLChar1_0::enableNEL;
+        fgCharCharsTable = XMLChar1_0::fgCharCharsTable1_0;
+    }
+
+}
+
+
+
+// ---------------------------------------------------------------------------
+//
+//  XMLReader: movePlainContentChars()
+//
+//       Move as many plain (no special handling of any sort required) content
+//       characters as possible from this reader to the supplied destination buffer.
+//
+//       This is THE hottest performance spot in the parser.
+//
+// ---------------------------------------------------------------------------
+inline void XMLReader::movePlainContentChars(XMLBuffer &dest)
+{
+    unsigned int count = fCharIndex;
+
+    while (fCharIndex < fCharsAvail)
+    {
+        if (!isPlainContentChar(fCharBuf[fCharIndex]))
+            break;
+        fCharIndex++;
+    }
+
+    if (count != fCharIndex)
+    {
+        fCurCol    += (fCharIndex - count);
+        dest.append(&fCharBuf[count], fCharIndex - count);
+    }
+}
+
+
+// ---------------------------------------------------------------------------
+//  XMLReader: getNextCharIfNot() method inlined for speed
+// ---------------------------------------------------------------------------
+inline bool XMLReader::getNextCharIfNot(const XMLCh chNotToGet, XMLCh& chGotten)
+{
+    //
+    //  See if there is at least a char in the buffer. Else, do the buffer
+    //  reload logic.
+    //
+    if (fCharIndex >= fCharsAvail)
+    {
+        // If fNoMore is set, then we have nothing else to give
+        if (fNoMore)
+            return false;
+
+        // Try to refresh
+        if (!refreshCharBuffer())
+            return false;
+    }
+
+    // Check the next char
+    if (fCharBuf[fCharIndex] == chNotToGet)
+        return false;
+
+    // Its not the one we want to skip so bump the index
+    chGotten = fCharBuf[fCharIndex++];
+
+    // Handle end of line normalization and line/col member maintenance.
+    //
+    // we can have end-of-line combinations with a leading
+    // chCR(xD), chLF(xA), chNEL(x85), or chLineSeparator(x2028)
+    //
+    // 0000000000001101 chCR
+    // 0000000000001010 chLF
+    // 0000000010000101 chNEL
+    // 0010000000101000 chLineSeparator
+    // -----------------------
+    // 1101111101010000 == ~(chCR|chLF|chNEL|chLineSeparator)
+    //
+    // if the result of the logical-& operation is
+    // true  : 'curCh' can not be chCR, chLF, chNEL or chLineSeparator
+    // false : 'curCh' can be chCR, chLF, chNEL or chLineSeparator
+    //
+    if ( chGotten & (XMLCh) ~(chCR|chLF|chNEL|chLineSeparator) )
+    {
+        fCurCol++;
+    } else
+    {
+        handleEOL(chGotten, false);
+    }
+
+    return true;
+}
+
+// ---------------------------------------------------------------------------
+//  XMLReader: getNextChar() method inlined for speed
+// ---------------------------------------------------------------------------
+inline bool XMLReader::getNextChar(XMLCh& chGotten)
+{
+    //
+    //  See if there is at least a char in the buffer. Else, do the buffer
+    //  reload logic.
+    //
+    if (fCharIndex >= fCharsAvail)
+    {
+        // If fNoMore is set, then we have nothing else to give
+        if (fNoMore)
+            return false;
+
+        // Try to refresh
+        if (!refreshCharBuffer())
+            return false;
+    }
+
+    chGotten = fCharBuf[fCharIndex++];
+
+    // Handle end of line normalization and line/col member maintenance.
+    //
+    // we can have end-of-line combinations with a leading
+    // chCR(xD), chLF(xA), chNEL(x85), or chLineSeparator(x2028)
+    //
+    // 0000000000001101 chCR
+    // 0000000000001010 chLF
+    // 0000000010000101 chNEL
+    // 0010000000101000 chLineSeparator
+    // -----------------------
+    // 1101111101010000 == ~(chCR|chLF|chNEL|chLineSeparator)
+    //
+    // if the result of the logical-& operation is
+    // true  : 'curCh' can not be chCR, chLF, chNEL or chLineSeparator
+    // false : 'curCh' can be chCR, chLF, chNEL or chLineSeparator
+    //
+    if ( chGotten & (XMLCh) ~(chCR|chLF|chNEL|chLineSeparator) )
+    {
+        fCurCol++;
+    } else
+    {
+        handleEOL(chGotten, false);
+    }
+
+    return true;
+}
+
+
+// ---------------------------------------------------------------------------
+//  XMLReader: peekNextChar() method inlined for speed
+// ---------------------------------------------------------------------------
+inline bool XMLReader::peekNextChar(XMLCh& chGotten)
+{
+    //
+    //  If there is something still in the buffer, get it. Else do the reload
+    //  scenario.
+    //
+    if (fCharIndex >= fCharsAvail)
+    {
+        // Try to refresh the buffer
+        if (!refreshCharBuffer())
+        {
+            chGotten = chNull;
+            return false;
+        }
+    }
+
+    chGotten = fCharBuf[fCharIndex];
+
+    //
+    //  Even though we are only peeking, we have to act the same as the
+    //  normal char get method in regards to newline normalization, though
+    //  its not as complicated as the actual character getting method's.
+    //
+    if ((chGotten == chCR || (fNEL && (chGotten == chNEL || chGotten == chLineSeparator)))
+        && (fSource == Source_External))
+        chGotten = chLF;
+
+    return true;
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/internal/MemoryManagerArrayImpl.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/internal/MemoryManagerArrayImpl.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/internal/MemoryManagerArrayImpl.hpp	(revision 2674)
@@ -0,0 +1,101 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: MemoryManagerArrayImpl.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+#if !defined(MEMORYMANAGERARRAYIMPL_HPP)
+#define MEMORYMANAGERARRAYIMPL_HPP
+
+#include <xercesc/framework/MemoryManager.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+/**
+  * Configurable memory manager
+  *
+  * <p>This is specialized version of a Xerces
+  *    memory manager, which allocates memory using
+  *    using new[](size) syntax. Such memory may
+  *    legally be deleted with delete[].
+  * </p>
+  * <p>This version is used in special cases where it is desired
+  *    that allocated memory be able to be delete[]d.
+  * </p>
+  */
+
+class XMLUTIL_EXPORT MemoryManagerArrayImpl : public MemoryManager
+{
+public:
+
+    /** @name Constructor */
+    //@{
+
+    /**
+      * Default constructor
+      */
+    MemoryManagerArrayImpl()
+    {
+    }
+    //@}
+
+    /** @name Destructor */
+    //@{
+
+    /**
+      * Default destructor
+      */
+    virtual ~MemoryManagerArrayImpl()
+    {
+    }
+    //@}
+
+    /** @name The virtual methods in MemoryManager */
+    //@{
+
+    /**
+      * This method allocates requested memory.
+      *
+      * @param size The requested memory size
+      *
+      * @return A pointer to the allocated memory
+      */
+    virtual void* allocate(size_t size);
+
+    /**
+      * This method deallocates memory
+      *
+      * @param p The pointer to the allocated memory to be deleted
+      */
+    virtual void deallocate(void* p);
+
+    //@}
+
+private:
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    MemoryManagerArrayImpl(const MemoryManagerArrayImpl&);
+    MemoryManagerArrayImpl& operator=(const MemoryManagerArrayImpl&);
+
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/internal/XSerializationException.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/internal/XSerializationException.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/internal/XSerializationException.hpp	(revision 2674)
@@ -0,0 +1,35 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: XSerializationException.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+#if !defined(XSERIALIZATION_EXCEPTION_HPP)
+#define XSERIALIZATION_EXCEPTION_HPP
+
+#include <xercesc/util/XercesDefs.hpp>
+#include <xercesc/util/XMLException.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+MakeXMLException(XSerializationException, XMLUTIL_EXPORT)
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/internal/MemoryManagerImpl.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/internal/MemoryManagerImpl.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/internal/MemoryManagerImpl.hpp	(revision 2674)
@@ -0,0 +1,97 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: MemoryManagerImpl.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+#if !defined(MEMORYMANAGERIMPL_HPP)
+#define MEMORYMANAGERIMPL_HPP
+
+#include <xercesc/framework/MemoryManager.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+/**
+  * Configurable memory manager
+  *
+  * <p>This is Xerces default implementation of the memory
+  *    manager interface, which will be instantiated and used
+  *    in the absence of an application's memory manager.
+  * </p>
+  */
+
+class XMLUTIL_EXPORT MemoryManagerImpl : public MemoryManager
+{
+public:
+
+    /** @name Constructor */
+    //@{
+
+    /**
+      * Default constructor
+      */
+    MemoryManagerImpl()
+    {
+    }
+    //@}
+
+    /** @name Destructor */
+    //@{
+
+    /**
+      * Default destructor
+      */
+    virtual ~MemoryManagerImpl()
+    {
+    }
+    //@}
+
+    /** @name The virtual methods in MemoryManager */
+    //@{
+
+    /**
+      * This method allocates requested memory.
+      *
+      * @param size The requested memory size
+      *
+      * @return A pointer to the allocated memory
+      */
+    virtual void* allocate(size_t size);
+
+    /**
+      * This method deallocates memory
+      *
+      * @param p The pointer to the allocated memory to be deleted
+      */
+    virtual void deallocate(void* p);
+
+    //@}
+
+private:
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    MemoryManagerImpl(const MemoryManagerImpl&);
+    MemoryManagerImpl& operator=(const MemoryManagerImpl&);
+
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/internal/DGXMLScanner.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/internal/DGXMLScanner.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/internal/DGXMLScanner.hpp	(revision 2674)
@@ -0,0 +1,209 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: DGXMLScanner.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+#if !defined(DGXMLSCANNER_HPP)
+#define DGXMLSCANNER_HPP
+
+#include <xercesc/internal/XMLScanner.hpp>
+#include <xercesc/util/ValueVectorOf.hpp>
+#include <xercesc/util/NameIdPool.hpp>
+#include <xercesc/validators/common/Grammar.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class DTDElementDecl;
+class DTDGrammar;
+class DTDValidator;
+
+//  This is an integrated scanner class, which does DTD/XML Schema grammar
+//  processing.
+class XMLPARSER_EXPORT DGXMLScanner : public XMLScanner
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+    DGXMLScanner
+    (
+          XMLValidator* const  valToAdopt
+        , GrammarResolver* const grammarResolver
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+    DGXMLScanner
+    (
+          XMLDocumentHandler* const docHandler
+        , DocTypeHandler* const     docTypeHandler
+        , XMLEntityHandler* const   entityHandler
+        , XMLErrorReporter* const   errReporter
+        , XMLValidator* const       valToAdopt
+        , GrammarResolver* const    grammarResolver
+        , MemoryManager* const      manager = XMLPlatformUtils::fgMemoryManager
+    );
+    virtual ~DGXMLScanner();
+
+    // -----------------------------------------------------------------------
+    //  XMLScanner public virtual methods
+    // -----------------------------------------------------------------------
+    virtual const XMLCh* getName() const;
+    virtual NameIdPool<DTDEntityDecl>* getEntityDeclPool();
+    virtual const NameIdPool<DTDEntityDecl>* getEntityDeclPool() const;
+    virtual unsigned int resolveQName
+    (
+        const   XMLCh* const        qName
+        ,       XMLBuffer&          prefixBufToFill
+        , const short               mode
+        ,       int&                prefixColonPos
+    );
+    virtual void scanDocument
+    (
+        const   InputSource&    src
+    );
+    virtual bool scanNext(XMLPScanToken& toFill);
+    virtual Grammar* loadGrammar
+    (
+        const   InputSource&    src
+        , const short           grammarType
+        , const bool            toCache = false
+    );
+
+    virtual Grammar::GrammarType getCurrentGrammarType() const;
+
+private :
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    DGXMLScanner();
+    DGXMLScanner(const DGXMLScanner&);
+    DGXMLScanner& operator=(const DGXMLScanner&);
+
+    // -----------------------------------------------------------------------
+    //  XMLScanner virtual methods
+    // -----------------------------------------------------------------------
+    virtual void scanCDSection();
+    virtual void scanCharData(XMLBuffer& toToUse);
+    virtual EntityExpRes scanEntityRef
+    (
+        const   bool    inAttVal
+        ,       XMLCh&  firstCh
+        ,       XMLCh&  secondCh
+        ,       bool&   escaped
+    );
+    virtual void scanDocTypeDecl();
+    virtual void scanReset(const InputSource& src);
+    virtual void sendCharData(XMLBuffer& toSend);
+    virtual InputSource* resolveSystemId(const XMLCh* const sysId
+                                        ,const XMLCh* const pubId); 
+
+    // -----------------------------------------------------------------------
+    //  Private helper methods
+    // -----------------------------------------------------------------------
+    void commonInit();
+    void cleanUp();
+
+    unsigned int buildAttList
+    (
+        const unsigned int                attCount
+        ,       XMLElementDecl*             elemDecl
+        ,       RefVectorOf<XMLAttr>&       toFill
+    );
+    unsigned int resolvePrefix
+    (
+        const   XMLCh* const        prefix
+        , const ElemStack::MapModes mode
+    );
+    void updateNSMap
+    (
+        const   XMLCh* const attrPrefix
+        , const XMLCh* const attrLocalName
+        , const XMLCh* const attrValue
+    );
+    void scanAttrListforNameSpaces(RefVectorOf<XMLAttr>* theAttrList, int attCount, XMLElementDecl* elemDecl);
+
+    // -----------------------------------------------------------------------
+    //  Private scanning methods
+    // -----------------------------------------------------------------------
+    bool scanAttValue
+    (
+        const   XMLAttDef* const    attDef
+        , const XMLCh *const        attrName
+        ,       XMLBuffer&          toFill
+    );
+    bool scanContent();
+    void scanEndTag(bool& gotData);
+    bool scanStartTag(bool& gotData);
+    bool scanStartTagNS(bool& gotData);
+
+    // -----------------------------------------------------------------------
+    //  Grammar preparsing methods
+    // -----------------------------------------------------------------------
+    Grammar* loadDTDGrammar(const InputSource& src, const bool toCache = false);
+
+    // -----------------------------------------------------------------------
+    //  Data members
+    //
+    //  fRawAttrList
+    //      During the initial scan of the attributes we can only do a raw
+    //      scan for key/value pairs. So this vector is used to store them
+    //      until they can be processed (and put into fAttrList.)
+    //
+    //  fDTDValidator
+    //      The DTD validator instance.
+    //
+    //  fElemState
+    //  fElemStateSize
+    //      Stores an element next state from DFA content model - used for
+    //      wildcard validation
+    //
+    // fDTDElemNonDeclPool
+    //     registry of "faulted-in" DTD element decls
+    // fElemCount
+    //      count of the number of start tags seen so far (starts at 1).
+    //      Used for duplicate attribute detection/processing of required/defaulted attributes
+    // fAttDefRegistry
+    //      mapping from XMLAttDef instances to the count of the last
+    //      start tag where they were utilized.
+    // fUndeclaredAttrRegistry
+    //      mapping of attr QNames to the count of the last start tag in which they occurred
+    //
+    // -----------------------------------------------------------------------
+    ValueVectorOf<XMLAttr*>*    fAttrNSList;
+    DTDValidator*               fDTDValidator;
+    DTDGrammar*                 fDTDGrammar;
+    NameIdPool<DTDElementDecl>* fDTDElemNonDeclPool;
+    unsigned int                fElemCount;
+    RefHashTableOf<unsigned int>* fAttDefRegistry;
+    RefHashTableOf<unsigned int>* fUndeclaredAttrRegistry;
+};
+
+inline const XMLCh* DGXMLScanner::getName() const
+{
+    return XMLUni::fgDGXMLScanner;
+}
+
+inline Grammar::GrammarType DGXMLScanner::getCurrentGrammarType() const
+{
+    return Grammar::DTDGrammarType;
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/internal/VecAttrListImpl.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/internal/VecAttrListImpl.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/internal/VecAttrListImpl.hpp	(revision 2674)
@@ -0,0 +1,97 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: VecAttrListImpl.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+#if !defined(VECATTRLISTIMPL_HPP)
+#define VECATTRLISTIMPL_HPP
+
+#include <xercesc/sax/AttributeList.hpp>
+#include <xercesc/framework/XMLAttr.hpp>
+#include <xercesc/util/RefVectorOf.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class XMLPARSER_EXPORT VecAttrListImpl : public XMemory, public AttributeList
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+    VecAttrListImpl();
+    ~VecAttrListImpl();
+
+
+    // -----------------------------------------------------------------------
+    //  Implementation of the attribute list interface
+    // -----------------------------------------------------------------------
+    virtual unsigned int getLength() const;
+    virtual const XMLCh* getName(const unsigned int index) const;
+    virtual const XMLCh* getType(const unsigned int index) const;
+    virtual const XMLCh* getValue(const unsigned int index) const;
+    virtual const XMLCh* getType(const XMLCh* const name) const;
+    virtual const XMLCh* getValue(const XMLCh* const name) const;
+    virtual const XMLCh* getValue(const char* const name) const;
+
+
+    // -----------------------------------------------------------------------
+    //  Setter methods
+    // -----------------------------------------------------------------------
+    void setVector
+    (
+        const   RefVectorOf<XMLAttr>* const srcVec
+        , const unsigned int                count
+        , const bool                        adopt = false
+    );
+
+
+private :
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    VecAttrListImpl(const VecAttrListImpl&);
+    VecAttrListImpl& operator=(const VecAttrListImpl&);
+
+
+    // -----------------------------------------------------------------------
+    //  Private data members
+    //
+    //  fAdopt
+    //      Indicates whether the passed vector is to be adopted or not. If
+    //      so, we destroy it when we are destroyed (and when a new vector is
+    //      set!)
+    //
+    //  fCount
+    //      The count of elements in the vector that should be considered
+    //      valid. This is an optimization to allow vector elements to be
+    //      reused over and over but a different count of them be valid for
+    //      each use.
+    //
+    //  fVector
+    //      The vector that provides the backing for the list.
+    // -----------------------------------------------------------------------
+    bool                        fAdopt;
+    unsigned int                fCount;
+    const RefVectorOf<XMLAttr>* fVector;
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/internal/XSAXMLScanner.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/internal/XSAXMLScanner.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/internal/XSAXMLScanner.hpp	(revision 2674)
@@ -0,0 +1,99 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: XSAXMLScanner.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+#if !defined(XSAXMLSCANNER_HPP)
+#define XSAXMLSCANNER_HPP
+
+#include <xercesc/internal/SGXMLScanner.hpp>
+
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+//
+//  This is a scanner class, which processes/validates contents of XML Schema
+//  Annotations. It's intended for internal use only.
+//
+class XMLPARSER_EXPORT XSAXMLScanner : public SGXMLScanner
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Destructor
+    // -----------------------------------------------------------------------
+    virtual ~XSAXMLScanner();
+
+    // -----------------------------------------------------------------------
+    //  XMLScanner public virtual methods
+    // -----------------------------------------------------------------------
+    virtual const XMLCh* getName() const;
+
+protected:
+    // -----------------------------------------------------------------------
+    //  Constructors
+    // -----------------------------------------------------------------------
+    /**
+     * The grammar representing the XML Schema annotation (xsaGrammar) is
+     * passed in by the caller. The scanner will own it and is responsible
+     * for deleting it.
+     */
+    XSAXMLScanner
+    (
+        GrammarResolver* const grammarResolver
+        , XMLStringPool* const   uriStringPool
+        , SchemaGrammar* const   xsaGrammar
+        , MemoryManager* const   manager = XMLPlatformUtils::fgMemoryManager
+    );
+    friend class TraverseSchema;
+
+    // -----------------------------------------------------------------------
+    //  XMLScanner virtual methods
+    // -----------------------------------------------------------------------
+    virtual void scanReset(const InputSource& src);
+
+    // -----------------------------------------------------------------------
+    //  SGXMLScanner virtual methods
+    // -----------------------------------------------------------------------
+    virtual bool scanStartTag(bool& gotData);
+    virtual void scanEndTag(bool& gotData);
+
+private :
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    XSAXMLScanner();
+    XSAXMLScanner(const XSAXMLScanner&);
+    XSAXMLScanner& operator=(const XSAXMLScanner&);
+
+    // -----------------------------------------------------------------------
+    //  Private helper methods
+    // -----------------------------------------------------------------------
+    void scanRawAttrListforNameSpaces(int attCount);
+    void switchGrammar(const XMLCh* const newGrammarNameSpace, bool laxValidate);
+};
+
+inline const XMLCh* XSAXMLScanner::getName() const
+{
+    return XMLUni::fgXSAXMLScanner;
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/XMLBuffer.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/XMLBuffer.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/XMLBuffer.hpp	(revision 2674)
@@ -0,0 +1,282 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: XMLBuffer.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+#if !defined(XMLBUFFER_HPP)
+#define XMLBUFFER_HPP
+
+#include <xercesc/util/XMemory.hpp>
+#include <xercesc/util/PlatformUtils.hpp>
+#include <xercesc/framework/MemoryManager.hpp>
+#include <string.h>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class XMLBufferFullHandler;
+
+/**
+ *  XMLBuffer is a lightweight, expandable Unicode text buffer. Since XML is
+ *  inherently theoretically unbounded in terms of the sizes of things, we
+ *  very often need to have expandable buffers. The primary concern here is
+ *  that appends of characters and other buffers or strings be very fast, so
+ *  it always maintains the current buffer size.
+ *
+ *  The buffer is not null terminated until some asks to see the raw buffer
+ *  contents. This also avoids overhead during append operations.
+ */
+class XMLPARSER_EXPORT XMLBuffer : public XMemory
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+
+    /** @name Constructor */
+    //@{
+    XMLBuffer(const unsigned int capacity = 1023
+              , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager) :
+        
+        fIndex(0)
+        , fCapacity(capacity)
+        , fFullSize(0)
+        , fUsed(false)
+        , fMemoryManager(manager)
+        , fFullHandler(0)       
+        , fBuffer(0)
+    {
+        // Buffer is one larger than capacity, to allow for zero term
+        fBuffer = (XMLCh*) manager->allocate((capacity+1) * sizeof(XMLCh)); //new XMLCh[fCapacity+1];
+
+        // Keep it null terminated
+        fBuffer[0] = XMLCh(0);
+    }
+    //@}
+
+    /** @name Destructor */
+    //@{
+    ~XMLBuffer()
+    {
+        fMemoryManager->deallocate(fBuffer); //delete [] fBuffer;
+    }
+    //@}
+
+    // -----------------------------------------------------------------------
+    //  Buffer Full Handler Management
+    // -----------------------------------------------------------------------
+    void setFullHandler(XMLBufferFullHandler* handler, const unsigned int fullSize)
+    {
+        if (handler && fullSize) {            
+            fFullHandler = handler;
+            fFullSize = fullSize;
+
+            // Need to consider the case that the fullsize is less than the current capacity.
+            // For example, say fullSize = 100 and fCapacity is 1023 (the default).
+            // If the fIndex is less than the fullSize, then no problem.  We can just carry
+            // on by resetting fCapacity to fullsize and proceed business as usual.            
+            // If the fIndex is already bigger than the fullSize then we call insureCapacity
+            // to see if it can handle emptying the current buffer (it will throw an
+            // exception if it can't).
+            if (fullSize < fCapacity) {
+                fCapacity = fullSize;
+                if (fIndex >= fullSize) {
+                    insureCapacity(0); 
+                }               
+            }
+        }
+        else {
+            // reset fFullHandler to zero because setFullHandler had bad input
+            fFullHandler = 0;            
+        }
+    }
+
+    // -----------------------------------------------------------------------
+    //  Buffer Management
+    // -----------------------------------------------------------------------
+    void append(const XMLCh toAppend)
+    {
+        // Put in char and bump the index
+        if (fIndex == fCapacity)
+            insureCapacity(1);
+        fBuffer[fIndex++] = toAppend;
+    }
+
+    void append (const XMLCh* const chars, const unsigned int count)
+    {        
+        if (count) {
+            if (fIndex + count >= fCapacity) {
+                insureCapacity(count);
+            }            
+            memcpy(&fBuffer[fIndex], chars, count * sizeof(XMLCh));
+            fIndex += count;
+        }
+        else {
+            append(chars);
+        }
+    }
+
+    void append (const XMLCh* const chars)
+    {
+        if (chars != 0 && *chars != 0) {
+            // get length of chars
+            unsigned int count = 0;
+            for (; *(chars+count); count++ );
+
+            if (fIndex + count >= fCapacity) {
+                insureCapacity(count);
+            }  
+            memcpy(&fBuffer[fIndex], chars, count * sizeof(XMLCh));
+            fIndex += count;
+        }
+    }
+
+    void set (const XMLCh* const chars, const unsigned int count)
+    {
+        fIndex = 0;
+        append(chars, count);
+    }
+
+    void set (const XMLCh* const chars)
+    {
+        fIndex = 0;
+        append(chars);
+    }
+
+    const XMLCh* getRawBuffer() const
+    {
+        fBuffer[fIndex] = 0;
+        return fBuffer;
+    }
+
+    XMLCh* getRawBuffer()
+    {
+        fBuffer[fIndex] = 0;
+        return fBuffer;
+    }
+
+    void reset()
+    {
+        fIndex = 0;
+        fBuffer[0] = 0;
+    }
+
+    // -----------------------------------------------------------------------
+    //  Getters
+    // -----------------------------------------------------------------------
+    bool getInUse() const
+    {
+        return fUsed;
+    }
+
+    unsigned int getLen() const
+    {
+        return fIndex;
+    }
+
+    bool isEmpty() const
+    {
+        return (fIndex == 0);
+    }
+
+    // -----------------------------------------------------------------------
+    //  Setters
+    // -----------------------------------------------------------------------
+    void setInUse(const bool newValue)
+    {
+        fUsed = newValue;
+    }
+
+private :
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    XMLBuffer(const XMLBuffer&);
+    XMLBuffer& operator=(const XMLBuffer&);
+
+    // -----------------------------------------------------------------------
+    //  Declare our friends
+    // -----------------------------------------------------------------------
+    friend class XMLBufBid;
+
+    // -----------------------------------------------------------------------
+    //  Private helpers
+    // -----------------------------------------------------------------------
+    void insureCapacity(const unsigned int extraNeeded);
+
+
+    // -----------------------------------------------------------------------
+    //  Private data members
+    //
+    //  fBuffer
+    //      The pointer to the buffer data. Its grown as needed. Its always
+    //      one larger than fCapacity, to leave room for the null terminator.
+    //
+    //  fIndex
+    //      The current index into the buffer, as characters are appended
+    //      to it. If its zero, then the buffer is empty.
+    //
+    //  fCapacity
+    //      The current capacity of the buffer. Its actually always one
+    //      larger, to leave room for the null terminator.
+    //
+    //  fUsed
+    //      Indicates whether this buffer is in use or not.
+    //
+    //  fFullHandler, fFullSize
+    //      If fFullHandler is non-null, the buffer has a maximum size
+    //      indicated by fFullSize. If writing to the buffer would exceed the
+    //      buffer's maximum size, fFullHandler's bufferFull callback is
+    //      invoked, to empty the buffer.
+    // -----------------------------------------------------------------------    
+    unsigned int                fIndex;
+    unsigned int                fCapacity;
+    unsigned int                fFullSize;
+    bool                        fUsed;
+    MemoryManager* const        fMemoryManager;
+    XMLBufferFullHandler*       fFullHandler;    
+    XMLCh*                      fBuffer;
+};
+
+/**
+ *  XMLBufferFullHandler is a callback interface for clients of
+ *  XMLBuffers that impose a size restriction (e.g. XMLScanner).
+ *  Note that this is intended solely as a mix-in for internal
+ *  use, and therefore does not derive from XMemory (to avoid
+ *  the ambiguous base class problem).
+ */
+class XMLPARSER_EXPORT XMLBufferFullHandler
+{
+public :
+
+    virtual ~XMLBufferFullHandler() {}
+
+    /**
+     * Callback method, intended to allow clients of an XMLBuffer which has
+     * become full to empty it appropriately.
+     * @return true if the handler was able to empty the buffer (either
+     * partially or completely), otherwise false to indicate an error.
+     */
+    virtual bool bufferFull(XMLBuffer&) = 0;
+
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/LocalFileInputSource.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/LocalFileInputSource.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/LocalFileInputSource.hpp	(revision 2674)
@@ -0,0 +1,152 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: LocalFileInputSource.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+#if !defined(LOCALFILEINPUTSOURCE_HPP)
+#define LOCALFILEINPUTSOURCE_HPP
+
+#include <xercesc/sax/InputSource.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class BinInputStream;
+
+/**
+ *  This class is a derivative of the standard InputSource class. It provides
+ *  for the parser access to data which is referenced via a local file path,
+ *  as apposed to remote file or URL. This is the most efficacious mechanism
+ *  by which local files can be parsed, since the parse knows that it refers
+ *  to a local file and will make no other attempts to interpret the passed
+ *  path.
+ *
+ *  The path provided can either be a fully qualified path or a relative path.
+ *  If relative, it will be completed either relative to a passed base path
+ *  or relative to the current working directory of the process.
+ *
+ *  As with all InputSource derivatives. The primary objective of an input
+ *  source is to create an input stream via which the parser can spool in
+ *  data from the referenced source.
+ */
+class XMLPARSER_EXPORT LocalFileInputSource : public InputSource
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+
+    /** @name Constructors */
+    //@{
+
+    /**
+      * A local file input source requires a path to the file to load. This
+      * can be provided either as a fully qualified path, a path relative to
+      * the current working directly, or a path relative to a provided base
+      * path.
+      *
+      * The completed path will become the system id of this input source.
+      * The constructors don't take any public id for local files, but you
+      * still set them via the parent class' setPublicId() method of course.
+      *
+      * This constructor takes an explicit base path and a possibly relative
+      * path. If the relative path is seen to be fully qualified, it is used
+      * as is. Otherwise, it is made relative to the passed base path.
+      *
+      * @param  basePath    The base path from which the passed relative path
+      *                     will be based, if the relative part is indeed
+      *                     relative.
+      *
+      * @param  relativePath    The relative part of the path. It can actually
+      *                         be fully qualified, in which case it is taken
+      *                         as is.
+      *
+      * @param  manager    Pointer to the memory manager to be used to
+      *                    allocate objects.
+      *
+      * @exception XMLException If the path is relative and doesn't properly
+      *            resolve to a file.
+      */
+    LocalFileInputSource
+    (
+        const   XMLCh* const   basePath
+        , const XMLCh* const   relativePath
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    /**
+      * This constructor takes a single parameter which is the fully qualified
+      * or relative path. If it is fully qualified, it is taken as is. If it is
+      * relative, then it is completed relative to the current working directory
+      * (or the equivalent on the local host machine.)
+      *
+      * The completed path will become the system id of this input source.
+      * The constructors don't take any public id for local files, but you
+      * still set them via the parent class' setPublicId() method of course.
+      *
+      * @param  filePath    The relative or fully qualified path.
+      *
+      * @param  manager     Pointer to the memory manager to be used to
+      *                     allocate objects.
+      *
+      * @exception XMLException If the path is relative and doesn't properly
+      *            resolve to a file.
+      */
+    LocalFileInputSource
+    (
+        const   XMLCh* const   filePath
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+    //@}
+
+    /** @name Destructor */
+    //@{
+    ~LocalFileInputSource();
+    //@}
+
+
+    // -----------------------------------------------------------------------
+    //  Virtual input source interface
+    // -----------------------------------------------------------------------
+
+    /** @name Virtual methods */
+    //@{
+
+    /**
+    * This method will return a binary input stream derivative that will
+    * parse from the local file indicatedby the system id.
+    *
+    * @return A dynamically allocated binary input stream derivative that
+    *         can parse from the file indicated by the system id.
+    */
+    virtual BinInputStream* makeStream() const;
+
+    //@}
+private:
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    LocalFileInputSource(const LocalFileInputSource&);
+    LocalFileInputSource& operator=(const LocalFileInputSource&);
+
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/XMLAttr.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/XMLAttr.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/XMLAttr.hpp	(revision 2674)
@@ -0,0 +1,586 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: XMLAttr.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(XMLATTR_HPP)
+#define XMLATTR_HPP
+
+#include <xercesc/util/PlatformUtils.hpp>
+#include <xercesc/util/QName.hpp>
+#include <xercesc/framework/XMLAttDef.hpp>
+#include <xercesc/validators/datatype/DatatypeValidator.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+/**
+ *  This class defines the information about an attribute that will come out
+ *  of the scanner during parsing. This information does not depend upon the
+ *  type of validator because it is not tied to any scheme/DTD type info. Its
+ *  just the raw XML 1.0 information that will be reported about an attribute
+ *  in the startElement() callback method of the XMLDocumentHandler class.
+ *  Hence it is not intended to be extended or derived from. Its designed to
+ *  be used as is.
+ *
+ *  The 'specified' field of this class indicates whether the attribute was
+ *  actually present or whether it was faulted in because it had a fixed or
+ *  default value.
+ *
+ *  The code receiving this information can ask its validator for more info
+ *  about the attribute, i.e. get its declaration from the DTD/Schema info.
+ *
+ *  Because of the heavy use (and reuse) of instances of this class, and the
+ *  number of string members it has, this class takes pains to not reallocate
+ *  string members unless it has to. It keeps up with how long each buffer
+ *  is and only reallocates if the new value won't fit.
+ */
+class XMLPARSER_EXPORT XMLAttr : public XMemory
+{
+public:
+    // -----------------------------------------------------------------------
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+    /** @name Constructors */
+    //@{
+
+    /**
+      * The default constructor just setsup an empty attribute to be filled
+      * in the later. Though the initial state is a reasonable one, it is
+      * not documented because it should not be depended on.
+      *
+      * @param  manager     The configurable memory manager
+      */
+    XMLAttr(MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+
+    /**
+      * This is the primary constructor which takes all of the information
+      * required to construct a complete attribute object.
+      *
+      * @param  uriId       The id into the validator's URI pool of the URI
+      *                     that the prefix mapped to. Only used if namespaces
+      *                     are enabled/supported.
+      *
+      * @param  attrName    The base name of the attribute, i.e. the part
+      *                     after any prefix.
+      *
+      * @param  attrPrefix  The prefix, if any, of this attribute's name. If
+      *                     this is empty, then uriID is meaningless as well.
+      *
+      * @param  attrValue   The value string of the attribute, which should
+      *                     be fully normalized by XML rules!
+      *
+      * @param  type        The type of the attribute. This will indicate
+      *                     the type of normalization done and constrains
+      *                     the value content. Make sure that the value
+      *                     set meets the constraints!
+      *
+      * @param  specified   Indicates whether the attribute was explicitly
+      *                     specified or not. If not, then it was faulted
+      *                     in from a FIXED or DEFAULT value.
+      *
+      * @param  manager     The configurable memory manager
+      * @param datatypeValidator type used to validate the attribute, 
+      *                         if it was validated by an XML Schema
+      * @param isSchema         true if and only if this attribute was validated
+      *                         by an XML Schema
+      */
+    XMLAttr
+    (
+          const unsigned int        uriId
+        , const XMLCh* const        attrName
+        , const XMLCh* const        attrPrefix
+        , const XMLCh* const        attrValue
+        , const XMLAttDef::AttTypes type = XMLAttDef::CData
+        , const bool                specified = true
+        , MemoryManager* const      manager = XMLPlatformUtils::fgMemoryManager
+        , DatatypeValidator * datatypeValidator = 0
+        , const bool isSchema = false
+    );
+
+    /**
+      * This is the primary constructor which takes all of the information
+      * required to construct a complete attribute object.
+      *
+      * @param  uriId       The id into the validator's URI pool of the URI
+      *                     that the prefix mapped to. Only used if namespaces
+      *                     are enabled/supported.
+      *
+      * @param  rawName     The raw name of the attribute.
+      *
+      * @param  attrValue   The value string of the attribute, which should
+      *                     be fully normalized by XML rules!
+      *
+      * @param  type        The type of the attribute. This will indicate
+      *                     the type of normalization done and constrains
+      *                     the value content. Make sure that the value
+      *                     set meets the constraints!
+      *
+      * @param  specified   Indicates whether the attribute was explicitly
+      *                     specified or not. If not, then it was faulted
+      *                     in from a FIXED or DEFAULT value.
+      *
+      * @param  manager     The configurable memory manager
+      * @param datatypeValidator type used to validate the attribute, 
+      *                         if it was validated by an XML Schema
+      * @param isSchema         true if and only if this attribute was validated
+      *                         by an XML Schema
+      */
+    XMLAttr
+    (
+        const unsigned int uriId
+        , const XMLCh* const rawName
+        , const XMLCh* const attrValue
+        , const XMLAttDef::AttTypes type = XMLAttDef::CData
+        , const bool specified = true
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+        , DatatypeValidator * datatypeValidator = 0
+        , const bool isSchema = false
+    );
+
+    //@}
+
+    /** @name Destructor */
+    //@{
+    ~XMLAttr();
+    //@}
+
+
+    // -----------------------------------------------------------------------
+    //  Getter methods
+    // -----------------------------------------------------------------------
+
+    /** @name Getter methods */
+    //@{
+
+    /**
+      * This methode returns the attribute name in a QName format.
+      */
+    QName* getAttName() const;
+
+    /**
+      * This method gets a const pointer tot he name of the attribute. The
+      * form of this name is defined by the validator in use.
+      */
+    const XMLCh* getName() const;
+
+    /**
+      * This method will get a const pointer to the prefix string of this
+      * attribute. Since prefixes are optional, it may be zero.
+      */
+    const XMLCh* getPrefix() const;
+
+    /**
+      * This method will get the QName of this attribute, which will be the
+      * prefix if any, then a colon, then the base name. If there was no
+      * prefix, its the same as the getName() method.
+      */
+    const XMLCh* getQName() const;
+
+    /**
+      * This method will get the specified flag, which indicates whether
+      * the attribute was explicitly specified or just faulted in.
+      */
+    bool getSpecified() const;
+
+    /**
+      * This method will get the type of the attribute. The available types
+      * are defined by the XML specification.
+      */
+    XMLAttDef::AttTypes getType() const;
+
+    /**
+      * This method will get the value of the attribute. The value can be
+      * be an empty string, but never null if the object is correctly
+      * set up.
+      */
+    const XMLCh* getValue() const;
+
+    /**
+      * This method will get the id of the URI that this attribute's prefix
+      * mapped to. If namespaces are not on, then its value is meaningless.
+      */
+    unsigned int getURIId() const;
+
+    /**
+     * @return the uri part of DOM Level 3 TypeInfo
+     * @deprecated
+     */
+    const XMLCh* getValidatingTypeURI() const;
+
+    /**
+     * @return the name part of DOM Level 3 TypeInfo
+     * @deprecated
+     */
+    const XMLCh* getValidatingTypeName() const;
+
+    //@}
+
+
+    // -----------------------------------------------------------------------
+    //  Setter methods
+    // -----------------------------------------------------------------------
+
+    /** @name Setter methods */
+    //@{
+
+    /**
+      * This method is called to set up a default constructed object after
+      * the fact, or to reuse a previously used object.
+      *
+      * @param  uriId       The id into the validator's URI pool of the URI
+      *                     that the prefix mapped to. Only used if namespaces
+      *                     are enabled/supported.
+      *
+      * @param  attrName    The base name of the attribute, i.e. the part
+      *                     after any prefix.
+      *
+      * @param  attrPrefix  The prefix, if any, of this attribute's name. If
+      *                     this is empty, then uriID is meaningless as well.
+      *
+      * @param  attrValue   The value string of the attribute, which should
+      *                     be fully normalized by XML rules according to the
+      *                     attribute type.
+      *
+      * @param  type        The type of the attribute. This will indicate
+      *                     the type of normalization done and constrains
+      *                     the value content. Make sure that the value
+      *                     set meets the constraints!
+      * @param datatypeValidator type used to validate the attribute, 
+      *                         if it was validated by an XML Schema
+      * @param isSchema         true if and only if this attribute was validated
+      *                         by an XML Schema
+      *
+      */
+    void set
+    (
+        const   unsigned int        uriId
+        , const XMLCh* const        attrName
+        , const XMLCh* const        attrPrefix
+        , const XMLCh* const        attrValue
+        , const XMLAttDef::AttTypes type = XMLAttDef::CData
+        , DatatypeValidator * datatypeValidator = 0
+        , const bool isSchema = false
+    );
+
+    /**
+      * This method is called to set up a default constructed object after
+      * the fact, or to reuse a previously used object.
+      *
+      * @param  uriId       The id into the validator's URI pool of the URI
+      *                     that the prefix mapped to. Only used if namespaces
+      *                     are enabled/supported.
+      *
+      * @param  attrRawName The raw name of the attribute.
+      *
+      * @param  attrValue   The value string of the attribute, which should
+      *                     be fully normalized by XML rules according to the
+      *                     attribute type.
+      *
+      * @param  type        The type of the attribute. This will indicate
+      *                     the type of normalization done and constrains
+      *                     the value content. Make sure that the value
+      *                     set meets the constraints!
+      * @param datatypeValidator type used to validate the attribute, 
+      *                         if it was validated by an XML Schema
+      * @param isSchema         true if and only if this attribute was validated
+      *                         by an XML Schema
+      */
+    void set
+    (
+        const   unsigned int        uriId
+        , const XMLCh* const        attrRawName
+        , const XMLCh* const        attrValue
+        , const XMLAttDef::AttTypes type = XMLAttDef::CData
+        , DatatypeValidator * datatypeValidator = 0
+        , const bool isSchema = false
+    );
+
+    /**
+      * This method will update just the name related fields of the
+      * attribute object. The other fields are left as is.
+      *
+      * @param  uriId       The id into the validator's URI pool of the URI
+      *                     that the prefix mapped to. Only used if namespaces
+      *                     are enabled/supported.
+      *
+      * @param  attrName    The base name of the attribute, i.e. the part
+      *                     after any prefix.
+      *
+      * @param  attrPrefix  The prefix, if any, of this attribute's name. If
+      *                     this is empty, then uriID is meaningless as well.
+      */
+    void setName
+    (
+        const   unsigned int        uriId
+        , const XMLCh* const        attrName
+        , const XMLCh* const        attrPrefix
+    );
+
+    /**
+      * This method will update the specified state of the object.
+      *
+      * @param  newValue    Indicates whether the attribute was explicitly
+      *                     specified or not. If not, then it was faulted
+      *                     in from a FIXED or DEFAULT value.
+      */
+    void setSpecified(const bool newValue);
+
+    /**
+      * This method will update the attribute type of the object.
+      *
+      * @param  newType     The type of the attribute. This will indicate
+      *                     the type of normalization done and constrains
+      *                     the value content. Make sure that the value
+      *                     set meets the constraints!
+      */
+    void setType(const XMLAttDef::AttTypes newType);
+
+    /**
+      * This method will update the value field of the attribute.
+      *
+      * @param  newValue    The value string of the attribute, which should
+      *                     be fully normalized by XML rules according to the
+      *                     attribute type.
+      */
+    void setValue(const XMLCh* const newValue);
+
+    /**
+      * This method will set the URI id field of this attribute. This is
+      * generally only ever called internally by the parser itself during
+      * the parsing process.
+      *
+      * @param  uriId       The uriId of the attribute.
+      */
+    void setURIId(const unsigned int uriId);
+
+    /**
+      * This method will update the datatype validator that was used
+      * to assess the validity of the value of this attribute.
+      * @param datatypeValidator        DatatypeValidator used to assess the validity
+      *             of this attribute's value
+      * @deprecated
+      */
+    void setDatatypeValidator(DatatypeValidator * datatypeValidator);
+
+    /**
+      * This method will define whether the attribute was
+      * validated by an XML Schema
+      * @param isSchema     true indicates that this attribute was validated
+      *         by an XML Schema; false indicates otherwise
+      * @deprecated
+      */
+    void setSchemaValidated(const bool isSchema);
+
+    //@}
+
+
+
+private :
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    XMLAttr(const XMLAttr&);
+    XMLAttr& operator=(const XMLAttr&);
+
+
+    // -----------------------------------------------------------------------
+    //  Private, helper methods
+    // -----------------------------------------------------------------------
+    void cleanUp();
+
+
+    // -----------------------------------------------------------------------
+    //  Private instance variables
+    //
+    //  fAttName
+    //      The Attribute Name;
+    //
+    //  fSpecified
+    //      True if this attribute appeared in the element; else, false if
+    //      it was defaulted from an AttDef.
+    //
+    //  fType
+    //      The attribute type enum value for this attribute. Indicates what
+    //      type of attribute it was.
+    //
+    //  fValue
+    //  fValueBufSz
+    //      The attribute value that was given in the attribute instance, and
+    //      its current buffer size (minus one, where the null is.)
+    //
+    //  fMemoryManager
+    //      The memory manager used for dynamic memory allocation/deallocation
+    //  fDatatypeValidator
+    //      The validator used to validate the value of this attribute.
+    //      The attribute does not own this object, and it is only
+    //      used in the calculation of DOMTypeInfo information.
+    //  fIsSchemaValidated
+    //      whether this attribute was validated by an XML Schema
+    //
+    // -----------------------------------------------------------------------
+    bool                fSpecified;
+    XMLAttDef::AttTypes fType;
+    unsigned int        fValueBufSz;
+    XMLCh*              fValue;
+    QName*              fAttName;
+    MemoryManager*      fMemoryManager;
+    DatatypeValidator * fDatatypeValidator;
+    bool                fIsSchemaValidated;
+};
+
+// ---------------------------------------------------------------------------
+//  XMLAttr: Constructors and Destructor
+// ---------------------------------------------------------------------------
+inline XMLAttr::~XMLAttr()
+{
+    cleanUp();
+}
+
+
+// ---------------------------------------------------------------------------
+//  XMLAttr: Getter methods
+// ---------------------------------------------------------------------------
+inline QName* XMLAttr::getAttName() const
+{
+    return fAttName;
+}
+
+inline const XMLCh* XMLAttr::getName() const
+{
+    return fAttName->getLocalPart();
+}
+
+inline const XMLCh* XMLAttr::getPrefix() const
+{
+    return fAttName->getPrefix();
+}
+
+inline bool XMLAttr::getSpecified() const
+{
+    return fSpecified;
+}
+
+inline XMLAttDef::AttTypes XMLAttr::getType() const
+{
+    return fType;
+}
+
+inline const XMLCh* XMLAttr::getValue() const
+{
+    return fValue;
+}
+
+inline unsigned int XMLAttr::getURIId() const
+{
+    return fAttName->getURI();
+}
+
+inline const XMLCh* XMLAttr::getValidatingTypeName() const
+{
+    if(fIsSchemaValidated)
+    {
+        if(!fDatatypeValidator || fDatatypeValidator->getAnonymous())
+            return 0; 
+        return fDatatypeValidator->getTypeLocalName();
+    }
+    else
+    {
+        return XMLAttDef::getAttTypeString(fType, fMemoryManager);
+    }
+}
+
+inline const XMLCh* XMLAttr::getValidatingTypeURI() const
+{
+    if(fIsSchemaValidated)
+    {
+        if(!fDatatypeValidator || fDatatypeValidator->getAnonymous())
+            return 0; 
+        return fDatatypeValidator->getTypeUri();
+    }
+    else
+    {
+        return 0;
+    }
+}
+
+// ---------------------------------------------------------------------------
+//  XMLAttr: Setter methods
+// ---------------------------------------------------------------------------
+inline void XMLAttr::set(const  unsigned int        uriId
+                        , const XMLCh* const        attrName
+                        , const XMLCh* const        attrPrefix
+                        , const XMLCh* const        attrValue
+                        , const XMLAttDef::AttTypes type
+                        , DatatypeValidator * datatypeValidator 
+                        , const bool isSchema )
+{
+    // Set the name info and the value via their respective calls
+    fAttName->setName(attrPrefix, attrName, uriId);
+    setValue(attrValue);
+
+    // And store the type
+    fType = type;
+
+    // and set up info for DOM type info 
+    fIsSchemaValidated = isSchema;
+    fDatatypeValidator = datatypeValidator;
+}
+
+inline void XMLAttr::set(const  unsigned int        uriId
+                        , const XMLCh* const        attrRawName
+                        , const XMLCh* const        attrValue
+                        , const XMLAttDef::AttTypes type
+                        , DatatypeValidator * datatypeValidator 
+                        , const bool isSchema )
+{
+    // Set the name info and the value via their respective calls
+    fAttName->setName(attrRawName, uriId);
+    setValue(attrValue);
+
+    // And store the type
+    fType = type;
+
+    // and set up info for DOM type info 
+    fIsSchemaValidated = isSchema;
+    fDatatypeValidator = datatypeValidator;
+}
+
+inline void XMLAttr::setType(const XMLAttDef::AttTypes newValue)
+{
+    fType = newValue;
+}
+
+inline void XMLAttr::setSpecified(const bool newValue)
+{
+    fSpecified = newValue;
+}
+
+inline void XMLAttr::setDatatypeValidator(DatatypeValidator *datatypeValidator)
+{
+    fDatatypeValidator = datatypeValidator;
+}
+
+inline void XMLAttr::setSchemaValidated(const bool isSchema)
+{
+    fIsSchemaValidated = isSchema;
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/psvi/PSVIElement.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/psvi/PSVIElement.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/psvi/PSVIElement.hpp	(revision 2674)
@@ -0,0 +1,174 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: PSVIElement.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(PSVIELEMENT_HPP)
+#define PSVIELEMENT_HPP
+
+#include <xercesc/framework/psvi/PSVIItem.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+/**
+ * Represent the PSVI contributions for one element information item.
+ * This is *always* owned by the scanner/parser object from which
+ * it is obtained.  The validator will specify 
+ * under what conditions it may be relied upon to have meaningful contents.
+ */
+
+// forward declarations
+class XSElementDeclaration;
+class XSNotationDeclaration;
+class XSModel;
+
+class XMLPARSER_EXPORT PSVIElement : public PSVIItem  
+{
+public:
+
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+    /** @name Constructors */
+    //@{
+
+    /**
+      * The default constructor 
+      *
+      * @param  manager     The configurable memory manager
+      */
+    PSVIElement( MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+
+    //@};
+
+    /** @name Destructor */
+    //@{
+    ~PSVIElement();
+    //@}
+
+    //---------------------
+    /** @name PSVIElement methods */
+
+    //@{
+
+    /**
+     * An item isomorphic to the element declaration used to validate
+     * this element.
+     * 
+     * @return  an element declaration
+     */
+    XSElementDeclaration *getElementDeclaration();
+    
+    /**
+     * [notation] 
+     * @see <a href="http://www.w3.org/TR/xmlschema-1/#e-notation">XML Schema Part 1: Structures [notation]</a>
+     * @return The notation declaration. 
+     */
+    XSNotationDeclaration *getNotationDeclaration();
+
+    /**
+     * [schema information]
+     * @see <a href="http://www.w3.org/TR/xmlschema-1/#e-schema_information">XML Schema Part 1: Structures [schema information]</a>
+     * @return The schema information property if it's the validation root,
+     *         null otherwise.
+     */
+    XSModel *getSchemaInformation();
+    
+    /**
+     * An item isomorphic to the type definition used to validate this element.
+     * 
+     * @return  a type declaration
+     */
+    XSTypeDefinition *getTypeDefinition();
+    
+    /**
+     * If and only if that type definition is a simple type definition
+     * with {variety} union, or a complex type definition whose {content type}
+     * is a simple type definition with {variety} union, then an item isomorphic
+     * to that member of the union's {member type definitions} which actually
+     * validated the element item's normalized value.
+     * 
+     * @return  a simple type declaration
+     */
+    XSSimpleTypeDefinition *getMemberTypeDefinition();
+    
+    //@}
+
+    //----------------------------------
+    /** methods needed by implementation */
+
+    //@{
+    void reset
+    (
+        const VALIDITY_STATE            validityState
+        , const ASSESSMENT_TYPE         assessmentType
+        , const XMLCh* const            validationContext
+        , bool                          isSpecified
+        , XSElementDeclaration* const   elemDecl
+        , XSTypeDefinition* const       typeDef
+        , XSSimpleTypeDefinition* const memberType
+        , XSModel* const                schemaInfo
+        , const XMLCh* const            defaultValue
+        , const XMLCh* const            normalizedValue = 0
+        , XMLCh* const                  canonicalValue = 0
+        , XSNotationDeclaration* const  notationDecl = 0
+    );
+
+    //@}
+
+private:
+
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    PSVIElement(const PSVIElement&);
+    PSVIElement & operator=(const PSVIElement &);
+
+
+    // -----------------------------------------------------------------------
+    //  data members
+    // -----------------------------------------------------------------------
+    // fElementDecl
+    //  element declaration component that validated this element
+    // fNotationDecl
+    //  (optional) notation decl associated with this element
+    // fSchemaInfo
+    //  Schema Information Item with which this validation episode is associated
+    XSElementDeclaration *fElementDecl;
+    XSNotationDeclaration *fNotationDecl;
+    XSModel *fSchemaInfo;
+};
+
+inline XSElementDeclaration *PSVIElement::getElementDeclaration() 
+{
+    return fElementDecl;
+}
+
+inline XSNotationDeclaration* PSVIElement::getNotationDeclaration() 
+{
+    return fNotationDecl;
+}
+
+inline XSModel* PSVIElement::getSchemaInformation() 
+{
+    return fSchemaInfo;
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/psvi/XSAttributeUse.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/psvi/XSAttributeUse.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/psvi/XSAttributeUse.hpp	(revision 2674)
@@ -0,0 +1,156 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: XSAttributeUse.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(XSATTRIBUTEUSE_HPP)
+#define XSATTRIBUTEUSE_HPP
+
+#include <xercesc/framework/psvi/XSObject.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+/**
+ * This class describes all properties of a Schema Attribute
+ * Use component.
+ * This is *always* owned by the validator /parser object from which
+ * it is obtained.  
+ */
+
+// forward declarations
+class XSAttributeDeclaration;
+
+class XMLPARSER_EXPORT XSAttributeUse : public XSObject
+{
+public:
+
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+    /** @name Constructors */
+    //@{
+
+    /**
+      * The default constructor 
+      * @param  xsAttDecl
+      * @param  xsModel
+      * @param  manager     The configurable memory manager
+      */
+    XSAttributeUse
+    (
+        XSAttributeDeclaration* const xsAttDecl,
+        XSModel* const xsModel,
+        MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    //@};
+
+    /** @name Destructor */
+    //@{
+    ~XSAttributeUse();
+    //@}
+
+    //---------------------
+    /** @name XSAttributeUse methods */
+
+    //@{
+
+    /**
+     * [required]: determines whether this use of an attribute declaration 
+     * requires an appropriate attribute information item to be present, or 
+     * merely allows it. 
+     */
+    bool getRequired() const;
+
+    /**
+     * [attribute declaration]: provides the attribute declaration itself, 
+     * which will in turn determine the simple type definition used. 
+     */
+    XSAttributeDeclaration *getAttrDeclaration() const;
+
+    /**
+     * Value Constraint: one of default, fixed. 
+     */
+    XSConstants::VALUE_CONSTRAINT getConstraintType() const;
+
+    /**
+     * Value Constraint: The actual value. 
+     */
+    const XMLCh *getConstraintValue();
+
+    //@}
+
+    //----------------------------------
+    /** methods needed by implementation */
+
+    //@{
+
+    //@}
+
+private:
+
+    // set data
+    void set
+    (
+        const bool isRequired
+        , XSConstants::VALUE_CONSTRAINT constraintType
+        , const XMLCh* const constraintValue
+    );
+
+    friend class XSObjectFactory;
+    
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    XSAttributeUse(const XSAttributeUse&);
+    XSAttributeUse & operator=(const XSAttributeUse &);
+
+protected:
+
+    // -----------------------------------------------------------------------
+    //  data members
+    // -----------------------------------------------------------------------
+    bool                          fRequired;
+    XSConstants::VALUE_CONSTRAINT fConstraintType;   
+    const XMLCh*                  fConstraintValue;
+    XSAttributeDeclaration*       fXSAttributeDeclaration;
+};
+
+inline XSAttributeDeclaration *XSAttributeUse::getAttrDeclaration() const
+{
+    return fXSAttributeDeclaration;
+}
+
+inline bool XSAttributeUse::getRequired() const
+{
+    return fRequired;
+}
+
+inline XSConstants::VALUE_CONSTRAINT XSAttributeUse::getConstraintType() const
+{
+    return fConstraintType;
+}
+
+inline const XMLCh *XSAttributeUse::getConstraintValue()
+{
+    return fConstraintValue;
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/psvi/XSNamedMap.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/psvi/XSNamedMap.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/psvi/XSNamedMap.hpp	(revision 2674)
@@ -0,0 +1,138 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: XSNamedMap.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+#if !defined(XSNAMEDMAP_HPP)
+#define XSNAMEDMAP_HPP
+
+
+#include <xercesc/util/XMemory.hpp>
+#include <xercesc/util/RefHash2KeysTableOf.hpp>
+#include <xercesc/util/RefVectorOf.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class XMLStringPool;
+
+/*
+ * This template provides convenient mappings between name,namespace
+ * pairs and individual components, as well as means to iterate through all the 
+ * named components on some object.
+ */
+
+template <class TVal> class XSNamedMap: public XMemory
+{
+public:
+    // -----------------------------------------------------------------------
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+    /** @name Constructors */
+    //@{
+
+    XSNamedMap(const unsigned int maxElems,
+        const unsigned int modulus,
+        XMLStringPool* uriStringPool,
+        const bool adoptElems,
+        MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+    //@}
+
+    /** @name Destructor */
+    //@{
+    ~XSNamedMap();
+
+    //@}
+
+    // -----------------------------------------------------------------------
+    //  XSNamedMap methods
+    // -----------------------------------------------------------------------
+    /** @name XSNamedMap methods */ 
+    //@{
+
+    /**
+     * The number of <code>XSObjects</code> in the <code>XSObjectList</code>. 
+     * The range of valid child object indices is 0 to 
+     * <code>mapLength-1</code> inclusive. 
+     */
+    unsigned int getLength();
+
+    /**
+     *  Returns the <code>index</code>th item in the collection. The index 
+     * starts at 0. If <code>index</code> is greater than or equal to the 
+     * number of objects in the list, this returns <code>null</code>. 
+     * @param index  index into the collection. 
+     * @return  The <code>XSObject</code> at the <code>index</code>th 
+     *   position in the <code>XSObjectList</code>, or <code>null</code> if 
+     *   that is not a valid index. 
+     */
+    TVal *item(unsigned int index);
+
+    /**
+     * Retrieves a component specified by local name and namespace URI.
+     * <br>applications must use the value null as the 
+     * <code>compNamespace</code> parameter for components whose targetNamespace property
+     * is absent.
+     * @param compNamespace The namespace URI of the component to retrieve.
+     * @param localName The local name of the component to retrieve.
+     * @return A component (of any type) with the specified local 
+     *   name and namespace URI, or <code>null</code> if they do not 
+     *   identify any node in this map.
+     */
+    TVal *itemByName(const XMLCh *compNamespace, 
+                              const XMLCh *localName);
+
+    //@}
+
+    //----------------------------------
+    /** methods needed by implementation */
+
+    //@{
+    void addElement(TVal* const toAdd, const XMLCh* key1, const XMLCh* key2);
+    //@}
+    
+
+private :
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    XSNamedMap(const XSNamedMap<TVal>&);
+    XSNamedMap<TVal>& operator=(const XSNamedMap<TVal>&);
+
+    // -----------------------------------------------------------------------
+    //  Data members
+    //
+    // fMemoryManager
+    //  manager used to allocate memory needed by this object
+    MemoryManager *const        fMemoryManager;
+    XMLStringPool*              fURIStringPool;
+    RefVectorOf<TVal>*          fVector;
+    RefHash2KeysTableOf<TVal>*  fHash;
+};
+
+
+
+XERCES_CPP_NAMESPACE_END
+
+#if !defined(XERCES_TMPLSINC)
+#include <xercesc/framework/psvi/XSNamedMap.c>
+#endif
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/psvi/XSComplexTypeDefinition.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/psvi/XSComplexTypeDefinition.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/psvi/XSComplexTypeDefinition.hpp	(revision 2674)
@@ -0,0 +1,294 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: XSComplexTypeDefinition.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(XSCOMPLEXTYPEDEFINITION_HPP)
+#define XSCOMPLEXTYPEDEFINITION_HPP
+
+#include <xercesc/framework/psvi/XSTypeDefinition.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+/**
+ * This class represents a complexType definition
+ * schema component.
+ * This is *always* owned by the validator /parser object from which
+ * it is obtained.  
+ *
+ */
+
+// forward declarations
+class XSAnnotation;
+class XSAttributeUse;
+class XSSimpleTypeDefinition;
+class XSParticle;
+class XSWildcard;
+class ComplexTypeInfo;
+
+class XMLPARSER_EXPORT XSComplexTypeDefinition : public XSTypeDefinition
+{
+public:
+
+	// Content Model Types
+    enum CONTENT_TYPE {
+	    /**
+	     * Represents an empty content type. A content type with the distinguished 
+	     * value empty validates elements with no character or element 
+	     * information item children. 
+	     */
+	     CONTENTTYPE_EMPTY         = 0,
+	    /**
+	     * Represents a simple content type. A content type which is a simple 
+	     * validates elements with character-only children. 
+	     */
+	     CONTENTTYPE_SIMPLE        = 1,
+	    /**
+	     * Represents an element-only content type. An element-only content type 
+	     * validates elements with children that conform to the supplied content 
+	     * model. 
+	     */
+	     CONTENTTYPE_ELEMENT       = 2,
+	    /**
+	     * Represents a mixed content type.
+	     */
+	     CONTENTTYPE_MIXED         = 3
+	};
+
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+    /** @name Constructors */
+    //@{
+
+    /**
+      * The default constructor 
+      *
+      * @param  complexTypeInfo
+      * @param  xsWildcard
+      * @param  xsSimpleType
+      * @param  xsAttList
+      * @param  xsBaseType
+      * @param  xsParticle
+      * @param  headAnnot
+      * @param  xsModel
+      * @param  manager     The configurable memory manager
+      */
+    XSComplexTypeDefinition
+    (
+        ComplexTypeInfo* const          complexTypeInfo
+        , XSWildcard* const             xsWildcard
+        , XSSimpleTypeDefinition* const xsSimpleType
+        , XSAttributeUseList* const     xsAttList
+        , XSTypeDefinition* const       xsBaseType
+        , XSParticle* const             xsParticle
+        , XSAnnotation* const           headAnnot
+        , XSModel* const                xsModel
+        , MemoryManager* const          manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    //@};
+
+    /** @name Destructor */
+    //@{
+    ~XSComplexTypeDefinition();
+    //@}
+
+    //---------------------
+    /** @name XSComplexTypeDefinition methods */
+
+    //@{
+
+    /**
+     * [derivation method]: either <code>DERIVATION_EXTENSION</code>, 
+     * <code>DERIVATION_RESTRICTION</code>, or <code>DERIVATION_NONE</code> 
+     * (see <code>XSObject</code>). 
+     */
+    XSConstants::DERIVATION_TYPE getDerivationMethod() const;
+
+    /**
+     * [abstract]: a boolean. Complex types for which <code>abstract</code> is 
+     * true must not be used as the type definition for the validation of 
+     * element information items. 
+     */
+    bool getAbstract() const;
+
+    /**
+     *  A set of attribute uses. 
+     */
+    XSAttributeUseList *getAttributeUses();
+
+    /**
+     * Optional.An attribute wildcard. 
+     */
+    XSWildcard *getAttributeWildcard() const;
+
+    /**
+     * [content type]: one of empty (<code>CONTENTTYPE_EMPTY</code>), a simple 
+     * type definition (<code>CONTENTTYPE_SIMPLE</code>), mixed (
+     * <code>CONTENTTYPE_MIXED</code>), or element-only (
+     * <code>CONTENTTYPE_ELEMENT</code>). 
+     */
+    CONTENT_TYPE getContentType() const;
+
+    /**
+     * A simple type definition corresponding to simple content model, 
+     * otherwise <code>null</code> 
+     */
+    XSSimpleTypeDefinition *getSimpleType() const;
+
+    /**
+     * A particle for mixed or element-only content model, otherwise 
+     * <code>null</code> 
+     */
+    XSParticle *getParticle() const;
+
+    /**
+     * [prohibited substitutions]: a subset of {extension, restriction}
+     * @param toTest  Extention or restriction constants (see 
+     *   <code>XSObject</code>). 
+     * @return True if toTest is a prohibited substitution, otherwise 
+     *   false.
+     */
+    bool isProhibitedSubstitution(XSConstants::DERIVATION_TYPE toTest);
+
+    /**
+     *  [prohibited substitutions]: A subset of {extension, restriction} or 
+     * <code>DERIVATION_NONE</code> represented as a bit flag (see 
+     * <code>XSObject</code>). 
+     */
+    short getProhibitedSubstitutions() const;
+
+    /**
+     * A set of [annotations]. 
+     */
+    XSAnnotationList *getAnnotations();
+    
+    /**
+     * The name of type <code>NCName</code> of this declaration as defined in 
+     * XML Namespaces.
+     */
+    const XMLCh* getName();
+
+    /**
+     *  The [target namespace] of this object, or <code>null</code> if it is 
+     * unspecified. 
+     */
+    const XMLCh* getNamespace();
+
+    /**
+     * A namespace schema information item corresponding to the target 
+     * namespace of the component, if it's globally declared; or null 
+     * otherwise.
+     */
+    XSNamespaceItem *getNamespaceItem();
+
+    /**
+     *  A boolean that specifies if the type definition is 
+     * anonymous. Convenience attribute. 
+     */
+    bool getAnonymous() const;
+
+    /**
+     * {base type definition}: either a simple type definition or a complex 
+     * type definition. 
+     */
+    XSTypeDefinition *getBaseType();
+
+    /**
+     * Convenience method: check if this type is derived from the given 
+     * <code>ancestorType</code>. 
+     * @param ancestorType  An ancestor type definition. 
+     * @return  Return true if this type is derived from 
+     *   <code>ancestorType</code>.
+     */
+    bool derivedFromType(const XSTypeDefinition* const ancestorType);
+
+    //@}
+
+    //----------------------------------
+    /** methods needed by implementation */
+
+    //@{
+
+
+    //@}
+
+private:
+
+    /**
+     * Set the base type
+     */
+    void setBaseType(XSTypeDefinition* const xsBaseType);
+    friend class XSObjectFactory;
+
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    XSComplexTypeDefinition(const XSComplexTypeDefinition&);
+    XSComplexTypeDefinition & operator=(const XSComplexTypeDefinition &);
+
+protected:
+
+    // -----------------------------------------------------------------------
+    //  data members
+    // -----------------------------------------------------------------------
+    ComplexTypeInfo*        fComplexTypeInfo;
+    XSWildcard*             fXSWildcard;
+    XSAttributeUseList*     fXSAttributeUseList;
+    XSSimpleTypeDefinition* fXSSimpleTypeDefinition;
+    XSAnnotationList*       fXSAnnotationList;
+    XSParticle*             fParticle;
+    short                   fProhibitedSubstitution;
+};
+
+
+inline XSAttributeUseList* XSComplexTypeDefinition::getAttributeUses()
+{
+    return fXSAttributeUseList;
+}
+
+inline XSWildcard* XSComplexTypeDefinition::getAttributeWildcard() const
+{
+    return fXSWildcard;
+}
+
+inline XSSimpleTypeDefinition* XSComplexTypeDefinition::getSimpleType() const
+{
+    return fXSSimpleTypeDefinition;
+}
+
+inline short XSComplexTypeDefinition::getProhibitedSubstitutions() const
+{
+    return fProhibitedSubstitution;
+}
+
+inline XSParticle *XSComplexTypeDefinition::getParticle() const
+{
+    return fParticle;
+}
+
+inline void
+XSComplexTypeDefinition::setBaseType(XSTypeDefinition* const xsBaseType)
+{
+    fBaseType = xsBaseType;
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/psvi/XSFacet.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/psvi/XSFacet.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/psvi/XSFacet.hpp	(revision 2674)
@@ -0,0 +1,151 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: XSFacet.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(XSFACET_HPP)
+#define XSFACET_HPP
+
+#include <xercesc/framework/psvi/XSSimpleTypeDefinition.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+/**
+ * This represents all Schema Facet components with the exception 
+ * of Enumeration and Pattern Facets, which are represented by the 
+ * XSMultiValueFacet interface.
+ * This is *always* owned by the validator /parser object from which
+ * it is obtained.  
+ */
+
+// forward declarations
+class XSAnnotation;
+
+class XMLPARSER_EXPORT XSFacet : public XSObject
+{
+public:
+
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+    /** @name Constructors */
+    //@{
+
+    /**
+      * The default constructor 
+      *
+      * @param  facetKind
+      * @param  lexicalValue
+      * @param  isFixed
+      * @param  annot
+      * @param  xsModel
+      * @param  manager     The configurable memory manager
+      */
+    XSFacet
+    (
+        XSSimpleTypeDefinition::FACET facetKind
+        , const XMLCh* const          lexicalValue
+        , bool                        isFixed
+        , XSAnnotation* const         annot
+        , XSModel* const              xsModel
+        , MemoryManager* const        manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    //@};
+
+    /** @name Destructor */
+    //@{
+    ~XSFacet();
+    //@}
+
+    //---------------------
+    /** @name XSFacet methods */
+
+    //@{
+
+    /**
+     * @return An indication as to the facet's type; see <code>XSSimpleTypeDefinition::FACET</code>
+     */
+    XSSimpleTypeDefinition::FACET getFacetKind() const;
+
+    /**
+     * @return Returns a value of a constraining facet. 
+     */
+    const XMLCh *getLexicalFacetValue() const;
+
+    /**
+     * Check whether a facet value is fixed. 
+     */
+    bool isFixed() const;
+
+    /**
+     * @return an annotation
+     */
+    XSAnnotation *getAnnotation() const;
+
+    //@}
+
+    //----------------------------------
+    /** methods needed by implementation */
+
+    //@{
+
+    //@}
+private:
+
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    XSFacet(const XSFacet&);
+    XSFacet & operator=(const XSFacet &);
+
+protected:
+
+    // -----------------------------------------------------------------------
+    //  data members
+    // -----------------------------------------------------------------------
+    XSSimpleTypeDefinition::FACET fFacetKind;
+    bool                          fIsFixed;
+    const XMLCh*                  fLexicalValue;
+    XSAnnotation*                 fAnnotation;
+};
+
+inline XSSimpleTypeDefinition::FACET XSFacet::getFacetKind() const
+{   
+    return fFacetKind;
+}
+
+inline const XMLCh* XSFacet::getLexicalFacetValue() const
+{
+    return fLexicalValue;    
+}
+
+inline bool XSFacet::isFixed() const
+{
+    return fIsFixed;
+}
+
+inline XSAnnotation* XSFacet::getAnnotation() const
+{
+    return fAnnotation;
+}
+
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/psvi/PSVIItem.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/psvi/PSVIItem.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/psvi/PSVIItem.hpp	(revision 2674)
@@ -0,0 +1,309 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: PSVIItem.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(PSVIITEM_HPP)
+#define PSVIITEM_HPP
+
+#include <xercesc/util/PlatformUtils.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+/**
+ * Represent the PSVI contributions for one element or one attribute information item.
+ * This is *always* owned by the validator /parser object from which
+ * it is obtained.  It is designed to be subclassed; subclasses will
+ * specify under what conditions it may be relied upon to have meaningful contents.
+ */
+
+// forward declarations
+class XSTypeDefinition; 
+class XSSimpleTypeDefinition;
+class XSValue;
+
+class XMLPARSER_EXPORT PSVIItem : public XMemory
+{
+public:
+
+    enum VALIDITY_STATE {
+	    /** Validity value indicating that validation has either not 
+	    been performed or that a strict assessment of validity could 
+	    not be performed  
+	    */
+	    VALIDITY_NOTKNOWN               = 0,
+	
+	    /** Validity value indicating that validation has been strictly
+	     assessed and the element in question is invalid according to the 
+	     rules of schema validation.
+	    */
+	    VALIDITY_INVALID               = 1,
+	
+	    /** Validity value indicating that validation has been strictly 
+	     assessed and the element in question is valid according to the rules 
+	     of schema validation.
+	     */
+	    VALIDITY_VALID                 = 2
+    };
+
+    enum ASSESSMENT_TYPE {
+	    /** Validation status indicating that schema validation has been 
+	     performed and the element in question has specifically been skipped.   
+	     */
+	    VALIDATION_NONE                = 0,
+	
+	    /** Validation status indicating that schema validation has been 
+	    performed on the element in question under the rules of lax validation.
+	    */
+	    VALIDATION_PARTIAL             = 1,
+	
+	    /**  Validation status indicating that full schema validation has been 
+	    performed on the element.  */
+	    VALIDATION_FULL                = 2
+    };
+
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+    /** @name Constructors */
+    //@{
+
+    /**
+      * The default constructor 
+      *
+      * @param  manager     The configurable memory manager
+      */
+    PSVIItem(MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+
+    //@};
+
+    /** @name Destructor */
+    //@{
+    virtual ~PSVIItem();
+    //@}
+
+    //---------------------
+    /** @name PSVIItem methods */
+
+    //@{
+
+    /**
+     * [validation context]
+     * 
+     * @return A string identifying the nearest ancestor element 
+     *          information item with a [schema information] property
+     *         (or this element item itself if it has such a property)
+     *          (form to be determined)
+     * @see <a href="http://www.w3.org/TR/xmlschema-1/#e-validation_context">XML Schema Part 1: Structures [validation context]</a>
+     */
+    const XMLCh *getValidationContext();
+
+    /**
+     * Determine the validity of the node with respect 
+     * to the validation being attempted
+     * 
+     * @return return the [validity] property. Possible values are: 
+     *         VALIDITY_UNKNOWN, VALIDITY_INVALID, VALIDITY_VALID
+     */
+    VALIDITY_STATE getValidity() const;
+
+    /**
+     * Determines the extent to which the item has been validated
+     * 
+     * @return return the [validation attempted] property. The possible values are 
+     *         VALIDATION_NONE, VALIDATION_ORDERED_PARTIAL and VALIDATION_FULL
+     */
+    ASSESSMENT_TYPE getValidationAttempted() const;
+
+    /**
+     * A list of error codes generated from validation attempts. 
+     * Need to find all the possible subclause reports that need reporting
+     * 
+     * @return list of error codes
+     */
+    /***
+    const XMLCh ** getErrorCodes();
+    ****/
+    
+    /**
+     * [schema normalized value] 
+     * 
+     * @see <a href="http://www.w3.org/TR/xmlschema-1/#e-schema_normalized_value">XML Schema Part 1: Structures [schema normalized value]</a>
+     * @return the normalized value of this item after validation
+     */
+    const XMLCh *getSchemaNormalizedValue();
+
+    /**
+     * An item isomorphic to the type definition used to validate this element.
+     * 
+     * @return  a type declaration
+     */
+    virtual XSTypeDefinition *getTypeDefinition() = 0;
+    
+    /**
+     * If and only if that type definition is a simple type definition
+     * with {variety} union, or a complex type definition whose {content type}
+     * is a simple thype definition with {variety} union, then an item isomorphic
+     * to that member of the union's {member type definitions} which actually
+     * validated the element item's normalized value.
+     * 
+     * @return  a simple type declaration
+     */
+    virtual XSSimpleTypeDefinition *getMemberTypeDefinition() = 0;
+    
+    /**
+     * [schema default]
+     * 
+     * @return The canonical lexical representation of the declaration's {value constraint} value.
+     * @see <a href="http://www.w3.org/TR/xmlschema-1/#e-schema_default">XML Schema Part 1: Structures [schema default]</a>
+     */
+    const XMLCh *getSchemaDefault();
+
+    /**
+     * [schema specified] 
+     * @see <a href="http://www.w3.org/TR/xmlschema-1/#e-schema_specified">XML Schema Part 1: Structures [schema specified]</a>
+     * @return true - value was specified in schema, false - value comes from the infoset
+     */
+    bool getIsSchemaSpecified() const;
+
+    /**
+     * Return the canonical representation of this value.
+     * Note that, formally, this is not a PSVI property.
+     * @return string representing the canonical representation, if this item
+     * was validated by a simple type definition for which canonical
+     * representations of values are defined.
+     */
+    const XMLCh *getCanonicalRepresentation() const;
+
+    //@}
+
+    /**
+     * 
+     * Get actual value in the form of XSValue,
+     * caller needs to delete the object returned.
+     *
+     * @return  an XSValue 
+     */
+    virtual XSValue *getActualValue() const;
+
+    //----------------------------------
+    /** methods needed by implementation */
+
+    //@{
+
+    void setValidationAttempted(PSVIItem::ASSESSMENT_TYPE attemptType);
+    void setValidity(PSVIItem::VALIDITY_STATE validity);
+
+    /** reset the object
+     * @param validationContext  corresponds to schema validation context property
+     * @param normalizedValue  corresponds to schema normalized value property
+     * @param validityState  state of item's validity
+     * @param assessmentType  type of assessment carried out on item
+     */
+    void reset(
+            const XMLCh* const validationContext
+            , const XMLCh* const normalizedValue
+            , const VALIDITY_STATE validityState
+            , const ASSESSMENT_TYPE assessmentType
+        );
+    //@}
+private:
+
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    PSVIItem(const PSVIItem&);
+    PSVIItem & operator=(const PSVIItem &);
+
+
+protected:
+    // -----------------------------------------------------------------------
+    //  data members
+    // -----------------------------------------------------------------------
+    // fMemoryManager:
+    //  used for any memory allocations
+    // fValidationContext
+    //  corresponds to the schema [validation context] property
+    // fNormalizedValue
+    //  The schema normalized value (when present)
+    // fDefaultValue
+    //  default value specified in the schema, if any
+    // fCanonicalValue
+    //  canonicalized version of normalizedValue
+    // fValidityState
+    //  Whether this item is valid or not
+    // fAssessmentType
+    //  The kind of assessment that produced the given validity outcome
+    // fIsSpecified
+    //  Whether this item exists because a default was specified in the schema
+    // fType
+    //  type responsible for validating this item
+    // fMemberType
+    //  If fType is a union type, the member type that validated this item
+    MemoryManager* const        fMemoryManager;
+    const XMLCh*                fValidationContext;
+    const XMLCh*                fNormalizedValue;
+    const XMLCh*                fDefaultValue;
+    XMLCh*                      fCanonicalValue;
+    VALIDITY_STATE              fValidityState;
+    ASSESSMENT_TYPE             fAssessmentType;
+    bool                        fIsSpecified;
+    XSTypeDefinition *          fType;
+    XSSimpleTypeDefinition*     fMemberType;
+};
+
+inline PSVIItem::~PSVIItem() {}
+
+inline const XMLCh *PSVIItem::getValidationContext() 
+{
+    return fValidationContext;
+}
+
+inline const XMLCh* PSVIItem::getSchemaNormalizedValue() 
+{
+    return fNormalizedValue;
+}
+
+inline const XMLCh* PSVIItem::getSchemaDefault() 
+{
+    return fDefaultValue;
+}
+
+inline const XMLCh* PSVIItem::getCanonicalRepresentation() const
+{
+    return fCanonicalValue;
+}
+
+inline PSVIItem::VALIDITY_STATE PSVIItem::getValidity() const
+{
+    return fValidityState;
+}
+
+inline bool PSVIItem::getIsSchemaSpecified() const
+{
+    return fIsSpecified;
+}
+
+inline PSVIItem::ASSESSMENT_TYPE PSVIItem::getValidationAttempted() const
+{
+    return fAssessmentType;
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/psvi/XSModelGroupDefinition.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/psvi/XSModelGroupDefinition.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/psvi/XSModelGroupDefinition.hpp	(revision 2674)
@@ -0,0 +1,150 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: XSModelGroupDefinition.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(XSMODELGROUPDEFINITION_HPP)
+#define XSMODELGROUPDEFINITION_HPP
+
+#include <xercesc/framework/psvi/XSObject.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+/**
+ * This class describes all properties of a Schema Model Group
+ * Definition component.
+ * This is *always* owned by the validator /parser object from which
+ * it is obtained.  
+ */
+
+// forward declarations
+class XSAnnotation;
+class XSModelGroup;
+class XSParticle;
+class XercesGroupInfo;
+
+class XMLPARSER_EXPORT XSModelGroupDefinition : public XSObject
+{
+public:
+
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+    /** @name Constructors */
+    //@{
+
+    /**
+      * The default constructor 
+      *
+      * @param  groupInfo
+      * @param  groupParticle
+      * @param  annot
+      * @param  xsModel
+      * @param  manager     The configurable memory manager
+      */
+    XSModelGroupDefinition
+    (
+        XercesGroupInfo* const groupInfo
+        , XSParticle* const    groupParticle
+        , XSAnnotation* const  annot
+        , XSModel* const       xsModel
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    //@};
+
+    /** @name Destructor */
+    //@{
+    ~XSModelGroupDefinition();
+    //@}
+
+    //---------------------
+    /** @name overridden XSXSObject methods */
+    //@{
+
+    /**
+     * The name of type <code>NCName</code> of this declaration as defined in 
+     * XML Namespaces.
+     */
+    const XMLCh* getName();
+
+    /**
+     *  The [target namespace] of this object, or <code>null</code> if it is 
+     * unspecified. 
+     */
+    const XMLCh* getNamespace();
+
+    /**
+     * A namespace schema information item corresponding to the target 
+     * namespace of the component, if it's globally declared; or null 
+     * otherwise.
+     */
+    XSNamespaceItem *getNamespaceItem();
+
+    //@}
+
+    //---------------------
+    /** @name XSModelGroupDefinition methods */
+
+    //@{
+
+    /**
+     * A model group. 
+     */
+    XSModelGroup *getModelGroup();
+
+    /**
+     * Optional. An [annotation]. 
+     */
+    XSAnnotation *getAnnotation() const;
+
+    //@}
+
+    //----------------------------------
+    /** methods needed by implementation */
+    //@{
+
+    //@}
+private:
+
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    XSModelGroupDefinition(const XSModelGroupDefinition&);
+    XSModelGroupDefinition & operator=(const XSModelGroupDefinition &);
+
+protected:
+
+    // -----------------------------------------------------------------------
+    //  data members
+    // -----------------------------------------------------------------------
+    XercesGroupInfo* fGroupInfo;
+    XSParticle*      fModelGroupParticle;
+    XSAnnotation*    fAnnotation;
+};
+
+inline XSAnnotation* XSModelGroupDefinition::getAnnotation() const
+{
+    return fAnnotation;
+}
+
+
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/psvi/PSVIAttributeList.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/psvi/PSVIAttributeList.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/psvi/PSVIAttributeList.hpp	(revision 2674)
@@ -0,0 +1,206 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: PSVIAttributeList.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(PSVIATTRIBUTEDERIVATION_LIST_HPP)
+#define PSVIATTRIBUTEDERIVATION_LIST_HPP
+
+#include <xercesc/util/PlatformUtils.hpp>
+#include <xercesc/framework/psvi/PSVIAttribute.hpp>
+#include <xercesc/util/ValueVectorOf.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+/**
+ * A container for the PSVI contributions to attributes that occur
+ * on a particular element.
+ * This is always owned by the parser/validator from
+ * which it is obtained.  The parser/validator will specify 
+ * under what conditions it may be relied upon to have meaningful contents.
+ */
+
+
+class XMLPARSER_EXPORT PSVIAttributeList : public XMemory
+{
+public:
+
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+    /** @name Constructors */
+    //@{
+
+    /**
+      * The default constructor 
+      *
+      * @param  manager     The configurable memory manager
+      */
+    PSVIAttributeList( MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+
+    //@};
+
+    /** @name Destructor */
+    //@{
+    ~PSVIAttributeList();
+    //@}
+
+    //---------------------
+    /** @name PSVIAttributeList methods */
+
+    //@{
+
+    /*
+     * Get the number of attributes whose PSVI contributions
+     * are contained in this list.
+     */
+    unsigned int getLength() const;
+
+    /*
+     * Get the PSVI contribution of attribute at position i
+     * in this list.  Indeces start from 0.
+     * @param index index from which the attribute PSVI contribution
+     * is to come.  
+     * @return PSVIAttribute containing the attributes PSVI contributions;
+     * null is returned if the index is out of range.
+     */
+    PSVIAttribute *getAttributePSVIAtIndex(const unsigned int index);
+
+    /*
+     * Get local part of attribute name at position index in the list.
+     * Indeces start from 0.
+     * @param index index from which the attribute name 
+     * is to come.  
+     * @return local part of the attribute's name; null is returned if the index
+     * is out of range.
+     */
+    const XMLCh *getAttributeNameAtIndex(const unsigned int index);
+
+    /*
+     * Get namespace of attribute at position index in the list.
+     * Indeces start from 0.
+     * @param index index from which the attribute namespace 
+     * is to come.  
+     * @return namespace of the attribute; 
+     * null is returned if the index is out of range.
+     */
+    const XMLCh *getAttributeNamespaceAtIndex(const unsigned int index);
+
+    /*
+     * Get the PSVI contribution of attribute with given 
+     * local name and namespace.
+     * @param attrName  local part of the attribute's name
+     * @param attrNamespace  namespace of the attribute
+     * @return null if the attribute PSVI does not exist
+     */
+    PSVIAttribute *getAttributePSVIByName(const XMLCh *attrName
+                    , const XMLCh * attrNamespace);
+
+    //@}
+
+    //----------------------------------
+    /** methods needed by implementation */
+
+    //@{
+
+    /**
+      * returns a PSVI attribute of undetermined state and given name/namespace and 
+      * makes that object part of the internal list.  Intended to be called
+      * during validation of an element.
+      * @param attrName     name of this attribute
+      * @param attrNS       URI of the attribute
+      * @return             new, uninitialized, PSVIAttribute object
+      */
+    PSVIAttribute *getPSVIAttributeToFill(
+            const XMLCh * attrName
+            , const XMLCh * attrNS);
+
+    /**
+      * reset the list
+      */
+    void reset();
+
+    //@}
+
+private:
+
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    PSVIAttributeList(const PSVIAttributeList&);
+    PSVIAttributeList & operator=(const PSVIAttributeList &);
+
+
+    // -----------------------------------------------------------------------
+    //  data members
+    // -----------------------------------------------------------------------
+    // fMemoryManager
+    //  handler to provide dynamically-need memory
+    // fAttrList
+    //  list of PSVIAttributes contained by this object
+    // fAttrNameList
+    //  list of the names of the initialized PSVIAttribute objects contained
+    //  in this listing
+    // fAttrNSList
+    //  list of the namespaces of the initialized PSVIAttribute objects contained
+    //  in this listing
+    // fAttrPos
+    //  current number of initialized PSVIAttributes in fAttrList
+    MemoryManager*                  fMemoryManager;    
+    RefVectorOf<PSVIAttribute>*     fAttrList;
+    RefArrayVectorOf<XMLCh>*        fAttrNameList;
+    RefArrayVectorOf<XMLCh>*        fAttrNSList;
+    unsigned int                    fAttrPos;
+};
+inline PSVIAttributeList::~PSVIAttributeList() 
+{
+    delete fAttrList;
+    delete fAttrNameList;
+    delete fAttrNSList;
+}
+
+inline PSVIAttribute *PSVIAttributeList::getPSVIAttributeToFill(
+            const XMLCh *attrName
+            , const XMLCh * attrNS)
+{
+    PSVIAttribute *retAttr = 0;
+    if(fAttrPos == fAttrList->size())
+    {
+        retAttr = new (fMemoryManager)PSVIAttribute(fMemoryManager);
+        fAttrList->addElement(retAttr);
+        fAttrNameList->addElement((XMLCh *)attrName);
+        fAttrNSList->addElement((XMLCh *)attrNS);
+    }
+    else
+    {
+        retAttr = fAttrList->elementAt(fAttrPos);
+        fAttrNameList->setElementAt((XMLCh *)attrName, fAttrPos);
+        fAttrNSList->setElementAt((XMLCh *)attrNS, fAttrPos);
+    }
+    fAttrPos++;
+    return retAttr;
+}
+
+inline void PSVIAttributeList::reset()
+{
+    fAttrPos = 0;
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/psvi/XSWildcard.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/psvi/XSWildcard.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/psvi/XSWildcard.hpp	(revision 2674)
@@ -0,0 +1,201 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: XSWildcard.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(XSWILDCARD_HPP)
+#define XSWILDCARD_HPP
+
+#include <xercesc/framework/psvi/XSObject.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+/**
+ * This class describes all properties of a Schema Wildcard
+ * component.
+ * This is *always* owned by the validator /parser object from which
+ * it is obtained.  
+ */
+
+// forward declarations
+class XSAnnotation;
+class SchemaAttDef;
+class ContentSpecNode;
+
+class XMLPARSER_EXPORT XSWildcard : public XSObject
+{
+public:
+
+    // Namespace Constraint
+    enum NAMESPACE_CONSTRAINT {
+	    /**
+	     * Namespace Constraint: any namespace is allowed.
+	     */
+	    NSCONSTRAINT_ANY          = 1,
+	    /**
+	     * Namespace Constraint: namespaces in the list are not allowed.
+	     */
+	    NSCONSTRAINT_NOT          = 2,
+	    /**
+	     * Namespace Constraint: namespaces in the list are allowed.
+	     */
+	    NSCONSTRAINT_DERIVATION_LIST         = 3
+    };
+
+    // Process contents
+    enum PROCESS_CONTENTS {
+	    /**
+	     * There must be a top-level declaration for the item available, or the 
+	     * item must have an xsi:type, and the item must be valid as appropriate.
+	     */
+	    PC_STRICT                 = 1,
+	    /**
+	     * No constraints at all: the item must simply be well-formed XML. 
+	     */
+	    PC_SKIP                   = 2,
+	    /**
+	     * If the item, or any items among its [children] is an element 
+	     * information item, has a uniquely determined declaration available, it 
+	     * must be valid with respect to that definition, that is, validate 
+	     * where you can, don't worry when you can't.
+	     */
+	    PC_LAX                    = 3
+    };
+
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+    /** @name Constructors */
+    //@{
+
+    /**
+      * The default constructor 
+      *
+      * @param  attWildCard
+      * @param  annot
+      * @param  xsModel
+      * @param  manager     The configurable memory manager
+      */
+    XSWildcard
+    (
+        SchemaAttDef* const attWildCard
+        , XSAnnotation* const annot
+        , XSModel* const xsModel
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+    
+    XSWildcard
+    (
+        const ContentSpecNode* const elmWildCard
+        , XSAnnotation* const annot
+        , XSModel* const xsModel
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    //@}
+
+    /** @name Destructor */
+    //@{
+    ~XSWildcard();
+    //@}
+
+    //---------------------
+    /** @name XSWildcard methods */
+
+    //@{
+
+    /**
+     * Namespace constraint: A constraint type: any, not, list. 
+     */
+    NAMESPACE_CONSTRAINT getConstraintType() const;
+
+    /**
+     * Namespace constraint. For <code>constraintType</code> 
+     * <code>NSCONSTRAINT_DERIVATION_LIST</code>, the list contains allowed namespaces. 
+     * For <code>constraintType</code> <code>NSCONSTRAINT_NOT</code>, the 
+     * list contains disallowed namespaces. 
+     */
+    StringList *getNsConstraintList();
+
+    /**
+     * [process contents]: one of skip, lax or strict. Valid constants values 
+     * are: <code>PC_SKIP, PC_LAX, PC_STRICT</code>. 
+     */
+    PROCESS_CONTENTS getProcessContents() const;
+
+    /**
+     * Optional. An [annotation]. 
+     */
+    XSAnnotation *getAnnotation() const;
+
+    //@}
+
+    //----------------------------------
+    /** methods needed by implementation */
+
+    //@{
+
+    //@}
+private:
+
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    XSWildcard(const XSWildcard&);
+    XSWildcard & operator=(const XSWildcard &);
+
+   /**
+     * Build namespace list
+     */
+   void buildNamespaceList(const ContentSpecNode* const rootNode);
+
+protected:
+
+    // -----------------------------------------------------------------------
+    //  data members
+    // -----------------------------------------------------------------------
+    NAMESPACE_CONSTRAINT fConstraintType;
+    PROCESS_CONTENTS     fProcessContents;
+    StringList*          fNsConstraintList;
+    XSAnnotation*        fAnnotation;
+};
+
+inline XSAnnotation *XSWildcard::getAnnotation() const
+{
+    return fAnnotation;
+}
+
+inline XSWildcard::PROCESS_CONTENTS XSWildcard::getProcessContents() const
+{
+    return fProcessContents;
+}
+
+inline StringList* XSWildcard::getNsConstraintList()
+{
+    return fNsConstraintList;
+}
+
+inline XSWildcard::NAMESPACE_CONSTRAINT XSWildcard::getConstraintType() const
+{
+    return fConstraintType;
+}
+
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/psvi/XSAttributeGroupDefinition.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/psvi/XSAttributeGroupDefinition.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/psvi/XSAttributeGroupDefinition.hpp	(revision 2674)
@@ -0,0 +1,167 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: XSAttributeGroupDefinition.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(XSATTRIBUTEGROUPDEFINITION_HPP)
+#define XSATTRIBUTEGROUPDEFINITION_HPP
+
+#include <xercesc/framework/psvi/XSObject.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+/**
+ * This class describes all properties of a Schema Attribute
+ * Group Definition component.
+ * This is *always* owned by the validator /parser object from which
+ * it is obtained.  
+ */
+
+// forward declarations
+class XSAnnotation;
+class XSAttributeUse;
+class XSWildcard;
+class XercesAttGroupInfo;
+
+class XMLPARSER_EXPORT XSAttributeGroupDefinition : public XSObject
+{
+public:
+
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+    /** @name Constructors */
+    //@{
+
+    /**
+      * The default constructor 
+      *
+      * @param  xercesAttGroupInfo
+      * @param  xsAttList
+      * @param  xsWildcard
+      * @param  xsAnnot
+      * @param  xsModel
+      * @param  manager     The configurable memory manager
+      */
+    XSAttributeGroupDefinition
+    (
+        XercesAttGroupInfo* const   xercesAttGroupInfo
+        , XSAttributeUseList* const xsAttList
+        , XSWildcard* const         xsWildcard
+        , XSAnnotation* const       xsAnnot
+        , XSModel* const            xsModel
+        , MemoryManager* const      manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    //@};
+
+    /** @name Destructor */
+    //@{
+    ~XSAttributeGroupDefinition();
+    //@}
+
+    //---------------------
+    /** @name overridden XSObject methods */
+    //@{
+
+    /**
+     * The name of type <code>NCName</code> of this declaration as defined in 
+     * XML Namespaces.
+     */
+    const XMLCh* getName();
+
+    /**
+     *  The [target namespace] of this object, or <code>null</code> if it is 
+     * unspecified. 
+     */
+    const XMLCh* getNamespace();
+
+    /**
+     * A namespace schema information item corresponding to the target 
+     * namespace of the component, if it's globally declared; or null 
+     * otherwise.
+     */
+    XSNamespaceItem* getNamespaceItem();
+
+    //@}
+
+    //--------------------- 
+    /** @name XSAttributeGroupDefinition methods */
+
+    //@{
+
+    /**
+     * A set of [attribute uses]. 
+     */
+    XSAttributeUseList *getAttributeUses();
+
+    /**
+     * Optional. A [wildcard]. 
+     */
+    XSWildcard *getAttributeWildcard() const;
+
+    /**
+     * Optional. An [annotation]. 
+     */
+    XSAnnotation *getAnnotation() const;
+
+    //@}
+
+    //----------------------------------
+    /** methods needed by implementation */
+
+    //@{
+
+    //@}
+private:
+
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    XSAttributeGroupDefinition(const XSAttributeGroupDefinition&);
+    XSAttributeGroupDefinition & operator=(const XSAttributeGroupDefinition &);
+
+protected:
+
+    // -----------------------------------------------------------------------
+    //  data members
+    // -----------------------------------------------------------------------
+    XercesAttGroupInfo*     fXercesAttGroupInfo;
+    XSAttributeUseList*     fXSAttributeUseList;
+    XSWildcard*             fXSWildcard;
+    XSAnnotation*           fAnnotation;
+};
+
+inline XSAttributeUseList* XSAttributeGroupDefinition::getAttributeUses()
+{
+    return fXSAttributeUseList;
+}
+
+inline XSWildcard* XSAttributeGroupDefinition::getAttributeWildcard() const
+{
+    return fXSWildcard;
+}
+
+inline XSAnnotation* XSAttributeGroupDefinition::getAnnotation() const
+{
+    return fAnnotation;
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/psvi/XSTypeDefinition.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/psvi/XSTypeDefinition.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/psvi/XSTypeDefinition.hpp	(revision 2674)
@@ -0,0 +1,214 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: XSTypeDefinition.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(XSTYPEDEFINITION_HPP)
+#define XSTYPEDEFINITION_HPP
+
+#include <xercesc/framework/psvi/XSObject.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+// forward declarations
+class XSNamespaceItem;
+
+/**
+ * This class represents a complexType or simpleType definition.
+ * This is *always* owned by the validator /parser object from which
+ * it is obtained.  
+ *
+ */
+
+class XMLPARSER_EXPORT XSTypeDefinition : public XSObject
+{
+public:
+
+    enum TYPE_CATEGORY {
+        /**
+        * This constant value signifies a complex type.
+        */
+        COMPLEX_TYPE              = 15,
+	    /**
+	     * This constant value signifies a simple type.
+	     */
+	    SIMPLE_TYPE               = 16
+    };
+
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+    /** @name Constructors */
+    //@{
+
+    /**
+      * The default constructor 
+      *
+      * @param  typeCategory
+      * @param  xsBaseType
+      * @param  xsModel
+      * @param  manager     The configurable memory manager
+      */
+    XSTypeDefinition
+    (
+        TYPE_CATEGORY             typeCategory
+        , XSTypeDefinition* const xsBaseType
+        , XSModel* const          xsModel
+        , MemoryManager* const    manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    //@};
+
+    /** @name Destructor */
+    //@{
+    virtual ~XSTypeDefinition();
+    //@}
+
+    //---------------------
+    /** @name overloaded XSObject methods */
+    //@{
+
+    /**
+     * The name of type <code>NCName</code> of this declaration as defined in 
+     * XML Namespaces.
+     */
+    virtual const XMLCh* getName() = 0;
+
+    /**
+     *  The [target namespace] of this object, or <code>null</code> if it is 
+     * unspecified. 
+     */
+    virtual const XMLCh* getNamespace() = 0;
+
+    /**
+     * A namespace schema information item corresponding to the target 
+     * namespace of the component, if it's globally declared; or null 
+     * otherwise.
+     */
+    virtual XSNamespaceItem *getNamespaceItem() = 0;
+
+    //@}
+
+    //---------------------
+    /** @name XSTypeDefinition methods */
+
+    //@{
+
+    /**
+     * Return whether this type definition is a simple type or complex type.
+     */
+    TYPE_CATEGORY getTypeCategory() const;
+
+    /**
+     * {base type definition}: either a simple type definition or a complex 
+     * type definition. 
+     */
+    virtual XSTypeDefinition *getBaseType() = 0;
+
+    /**
+     * {final}. For complex type definition it is a subset of {extension, 
+     * restriction}. For simple type definition it is a subset of 
+     * {extension, list, restriction, union}. 
+     * @param toTest       Extension, restriction, list, union constants 
+     *   (defined in <code>XSObject</code>). 
+     * @return True if toTest is in the final set, otherwise false.
+     */
+    bool isFinal(short toTest);
+
+    /**
+     * For complex types the returned value is a bit combination of the subset 
+     * of {<code>DERIVATION_EXTENSION, DERIVATION_RESTRICTION</code>} 
+     * corresponding to <code>final</code> set of this type or 
+     * <code>DERIVATION_NONE</code>. For simple types the returned value is 
+     * a bit combination of the subset of { 
+     * <code>DERIVATION_RESTRICTION, DERIVATION_EXTENSION, DERIVATION_UNION, DERIVATION_LIST</code>
+     * } corresponding to <code>final</code> set of this type or 
+     * <code>DERIVATION_NONE</code>. 
+     */
+    short getFinal() const;
+
+    /**
+     *  A boolean that specifies if the type definition is 
+     * anonymous. Convenience attribute. 
+     */
+    virtual bool getAnonymous() const = 0;
+
+    /**
+     * Convenience method: check if this type is derived from the given 
+     * <code>ancestorType</code>. 
+     * @param ancestorType  An ancestor type definition. 
+     * @return  Return true if this type is derived from 
+     *   <code>ancestorType</code>.
+     */
+    virtual bool derivedFromType(const XSTypeDefinition* const ancestorType) = 0;
+
+    /**
+     * Convenience method: check if this type is derived from the given 
+     * ancestor type. 
+     * @param typeNamespace  An ancestor type namespace. 
+     * @param name  An ancestor type name. 
+     * @return  Return true if this type is derived from 
+     *   the ancestor defined by <code>typeNamespace</code> and <code>name</code>.
+     */
+    bool derivedFrom(const XMLCh* typeNamespace, 
+                               const XMLCh* name);
+
+    //@}
+
+    //----------------------------------
+    /** methods needed by implementation */
+
+    //@{
+
+    //@}
+private:
+
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    XSTypeDefinition(const XSTypeDefinition&);
+    XSTypeDefinition & operator=(const XSTypeDefinition &);
+
+protected:
+
+    // -----------------------------------------------------------------------
+    //  data members
+    // -----------------------------------------------------------------------
+    // fTypeCategory
+    //  whether this is a simpleType or complexType
+    // fFinal
+    //  the final properties which is set by the derived class.
+    TYPE_CATEGORY     fTypeCategory;
+    short             fFinal;
+    XSTypeDefinition* fBaseType; // owned by XSModel
+};
+
+inline XSTypeDefinition::TYPE_CATEGORY XSTypeDefinition::getTypeCategory() const
+{
+    return fTypeCategory;
+}
+
+inline short XSTypeDefinition::getFinal() const
+{
+    return fFinal;
+}
+
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/psvi/XSMultiValueFacet.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/psvi/XSMultiValueFacet.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/psvi/XSMultiValueFacet.hpp	(revision 2674)
@@ -0,0 +1,152 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: XSMultiValueFacet.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(XSMULTIVALUEFACET_HPP)
+#define XSMULTIVALUEFACET_HPP
+
+#include <xercesc/framework/psvi/XSObject.hpp>
+#include <xercesc/framework/psvi/XSSimpleTypeDefinition.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+/**
+ * This class represents all Schema Facets which may possess multiple
+ * lexical values/annotations (i.e., Pattern and Enumeration facets).
+ * This is *always* owned by the validator /parser object from which
+ * it is obtained.  
+ */
+
+// forward declarations
+class XSAnnotation;
+
+class XMLPARSER_EXPORT XSMultiValueFacet : public XSObject
+{
+public:
+
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+    /** @name Constructors */
+    //@{
+
+    /**
+      * The default constructor 
+      *
+      * @param  facetKind
+      * @param  lexicalValues
+      * @param  isFixed
+      * @param  headAnnot
+      * @param  xsModel
+      * @param  manager     The configurable memory manager
+      */
+    XSMultiValueFacet
+    (
+        XSSimpleTypeDefinition::FACET facetKind
+        , StringList*                 lexicalValues
+        , bool                        isFixed
+        , XSAnnotation* const         headAnnot
+        , XSModel* const              xsModel
+        , MemoryManager* const        manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    //@};
+
+    /** @name Destructor */
+    //@{
+    ~XSMultiValueFacet();
+    //@}
+
+    //---------------------
+    /** @name XSMultiValueFacet methods */
+
+    //@{
+
+    /**
+     * @return An indication as to the facet's type; see <code>XSSimpleTypeDefinition::FACET</code>
+     */
+    XSSimpleTypeDefinition::FACET getFacetKind() const;
+
+    /**
+     * @return Returns the values of a constraining facet. 
+     */
+    StringList *getLexicalFacetValues();   
+
+    /**
+     * Check whether a facet value is fixed. 
+     */
+    bool isFixed() const;
+
+    /**
+     * @return the annotations belonging to this facet's values
+     */
+    XSAnnotationList *getAnnotations();
+
+    //@}
+
+    //----------------------------------
+    /** methods needed by implementation */
+
+    //@{
+
+    //@}
+private:
+
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    XSMultiValueFacet(const XSMultiValueFacet&);
+    XSMultiValueFacet & operator=(const XSMultiValueFacet &);
+
+protected:
+
+    // -----------------------------------------------------------------------
+    //  data members
+    // -----------------------------------------------------------------------
+    XSSimpleTypeDefinition::FACET fFacetKind;
+    bool                          fIsFixed;
+    StringList*                   fLexicalValues;  // not owned by this class
+    XSAnnotationList*             fXSAnnotationList;
+};
+
+
+inline XSSimpleTypeDefinition::FACET XSMultiValueFacet::getFacetKind() const
+{
+    return fFacetKind;
+}
+
+inline bool XSMultiValueFacet::isFixed() const
+{
+    return fIsFixed;
+}
+
+inline StringList *XSMultiValueFacet::getLexicalFacetValues()
+{
+    return fLexicalValues; 
+}
+
+inline XSAnnotationList *XSMultiValueFacet::getAnnotations()
+{
+    return fXSAnnotationList;
+}
+
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/psvi/PSVIAttribute.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/psvi/PSVIAttribute.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/psvi/PSVIAttribute.hpp	(revision 2674)
@@ -0,0 +1,179 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: PSVIAttribute.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(PSVIATTRIBUTE_HPP)
+#define PSVIATTRIBUTE_HPP
+
+#include <xercesc/framework/psvi/PSVIItem.hpp>
+#include <xercesc/framework/psvi/XSSimpleTypeDefinition.hpp>
+#include <xercesc/validators/datatype/DatatypeValidator.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+/**
+ * Represent the PSVI contributions for one attribute information item.
+ * This is *always* owned by the scanner/parser object from which
+ * it is obtained.  The validator will specify 
+ * under what conditions it may be relied upon to have meaningful contents.
+ */
+
+// forward declarations
+class XSAttributeDeclaration;
+
+class XMLPARSER_EXPORT PSVIAttribute : public PSVIItem  
+{
+public:
+
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+    /** @name Constructors */
+    //@{
+
+    /**
+      * The default constructor 
+      *
+      * @param  manager     The configurable memory manager
+      */
+    PSVIAttribute( MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+
+    //@};
+
+    /** @name Destructor */
+    //@{
+    ~PSVIAttribute();
+    //@}
+
+    //---------------------
+    /** @name PSVIAttribute methods */
+
+    //@{
+
+    /**
+     * An item isomorphic to the attribute declaration used to validate
+     * this attribute.
+     * 
+     * @return  an attribute declaration
+     */
+    XSAttributeDeclaration *getAttributeDeclaration();
+    
+    /**
+     * An item isomorphic to the type definition used to validate this element.
+     * 
+     * @return  a type declaration
+     */
+    XSTypeDefinition *getTypeDefinition();
+    
+    /**
+     * If and only if that type definition is a simple type definition
+     * with {variety} union, or a complex type definition whose {content type}
+     * is a simple thype definition with {variety} union, then an item isomorphic
+     * to that member of the union's {member type definitions} which actually
+     * validated the element item's normalized value.
+     * 
+     * @return  a simple type declaration
+     */
+    XSSimpleTypeDefinition *getMemberTypeDefinition();
+    
+    //@}
+
+    //----------------------------------
+    /** methods needed by implementation */
+
+    //@{
+
+    /**
+      * reset this object.  Intended to be called by
+      * the implementation.
+      */
+    void reset(
+            const XMLCh * const         valContext
+            , PSVIItem::VALIDITY_STATE  state
+            , PSVIItem::ASSESSMENT_TYPE assessmentType
+            , XSSimpleTypeDefinition *  validatingType
+            , XSSimpleTypeDefinition *  memberType
+            , const XMLCh * const       defaultValue
+            , const bool                isSpecified
+            , XSAttributeDeclaration *  attrDecl
+            , DatatypeValidator *       dv
+        );
+
+    /**
+      * set the schema normalized value (and
+      * implicitly the canonical value) of this object; intended to be used
+      * by the implementation.
+      */
+    void setValue(const XMLCh * const       normalizedValue);
+
+    /**
+      * set VALIDITY_STATE to specified value; intended to be
+      * called by implementation.
+      */
+    void updateValidity(VALIDITY_STATE newValue);
+
+    //@}
+
+private:
+
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    PSVIAttribute(const PSVIAttribute&);
+    PSVIAttribute & operator=(const PSVIAttribute &);
+
+
+    // -----------------------------------------------------------------------
+    //  data members
+    // -----------------------------------------------------------------------
+    // fAttributeDecl
+    //      attribute declaration component that validated this attribute 
+    // fDV
+    //      implementation-specific datatype validator used to validate this attribute
+    XSAttributeDeclaration *    fAttributeDecl;
+    DatatypeValidator *         fDV;
+};
+inline PSVIAttribute::~PSVIAttribute() 
+{
+    fMemoryManager->deallocate((void *)fCanonicalValue);
+}
+
+inline XSAttributeDeclaration *PSVIAttribute::getAttributeDeclaration() 
+{
+    return fAttributeDecl;
+}
+
+inline XSTypeDefinition* PSVIAttribute::getTypeDefinition()
+{
+    return fType;
+}
+
+inline XSSimpleTypeDefinition* PSVIAttribute::getMemberTypeDefinition() 
+{
+    return fMemberType;
+}
+
+inline void PSVIAttribute::updateValidity(VALIDITY_STATE newValue)
+{
+    fValidityState = newValue;
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/psvi/XSElementDeclaration.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/psvi/XSElementDeclaration.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/psvi/XSElementDeclaration.hpp	(revision 2674)
@@ -0,0 +1,307 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: XSElementDeclaration.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(XSELEMENTDECLARATION_HPP)
+#define XSELEMENTDECLARATION_HPP
+
+#include <xercesc/framework/psvi/XSObject.hpp>
+#include <xercesc/framework/psvi/XSNamedMap.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+/**
+ * This class describes all properties of a Schema Element Declaration
+ * component.
+ * This is *always* owned by the validator /parser object from which
+ * it is obtained.  
+ */
+
+// forward declarations
+class XSAnnotation;
+class XSComplexTypeDefinition;
+class XSIDCDefinition;
+class XSTypeDefinition;
+class SchemaElementDecl;
+
+class XMLPARSER_EXPORT XSElementDeclaration : public XSObject
+{
+public:
+
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+    /** @name Constructors */
+    //@{
+
+    /**
+      * The default constructor 
+      *
+      * @param  schemaElementDecl
+      * @param  typeDefinition
+      * @param  substitutionGroupAffiliation
+      * @param  annot
+      * @param  identityConstraints
+      * @param  xsModel
+      * @param  elemScope
+      * @param  enclosingTypeDefinition
+      * @param  manager     The configurable memory manager
+      */
+    XSElementDeclaration
+    (
+        SchemaElementDecl* const             schemaElementDecl
+        , XSTypeDefinition* const            typeDefinition
+        , XSElementDeclaration* const        substitutionGroupAffiliation
+        , XSAnnotation* const                annot
+        , XSNamedMap<XSIDCDefinition>* const identityConstraints
+        , XSModel* const                     xsModel
+        , XSConstants::SCOPE                 elemScope = XSConstants::SCOPE_ABSENT
+        , XSComplexTypeDefinition* const     enclosingTypeDefinition = 0
+        , MemoryManager* const               manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    //@};
+
+    /** @name Destructor */
+    //@{
+    ~XSElementDeclaration();
+    //@}
+
+    //---------------------
+    /** @name overridden XSXSObject methods */
+
+    //@{
+
+    /**
+     * The name of type <code>NCName</code> of this declaration as defined in 
+     * XML Namespaces.
+     */
+    const XMLCh* getName();
+
+    /**
+     *  The [target namespace] of this object, or <code>null</code> if it is 
+     * unspecified. 
+     */
+    const XMLCh* getNamespace();
+
+    /**
+     * A namespace schema information item corresponding to the target 
+     * namespace of the component, if it's globally declared; or null 
+     * otherwise.
+     */
+    XSNamespaceItem *getNamespaceItem();
+
+    //@}
+
+    //---------------------
+    /** @name XSElementDeclaration methods */
+
+    //@{
+
+    /**
+     * [type definition]: either a simple type definition or a complex type 
+     * definition. 
+     */
+    XSTypeDefinition *getTypeDefinition() const;
+
+    /**
+     * Optional. One of <code>SCOPE_GLOBAL</code>, <code>SCOPE_LOCAL</code>, 
+     * or <code>SCOPE_ABSENT</code>. If the scope is local, then the 
+     * <code>enclosingCTDefinition</code> is present. 
+     */
+    XSConstants::SCOPE getScope() const;
+
+    /**
+     * The complex type definition for locally scoped declarations (see 
+     * <code>scope</code>). 
+     */
+    XSComplexTypeDefinition *getEnclosingCTDefinition() const;
+
+    /**
+     * [Value constraint]: one of <code>VC_NONE, VC_DEFAULT, VC_FIXED</code>. 
+     */
+    XSConstants::VALUE_CONSTRAINT getConstraintType() const;
+
+    /**
+     * [Value constraint]: the actual value with respect to the [type 
+     * definition]. 
+     */
+    const XMLCh *getConstraintValue();
+
+    /**
+     * If nillable is true, then an element may also be valid if it carries 
+     * the namespace qualified attribute with local name <code>nil</code> 
+     * from namespace <code>http://www.w3.org/2001/XMLSchema-instance</code> 
+     * and value <code>true</code> (xsi:nil) even if it has no text or 
+     * element content despite a <code>content type</code> which would 
+     * otherwise require content. 
+     */
+    bool getNillable() const;
+
+    /**
+     * identity-constraint definitions: a set of constraint definitions. 
+     */
+    XSNamedMap <XSIDCDefinition> *getIdentityConstraints();
+
+    /**
+     * [substitution group affiliation]: optional. A top-level element 
+     * definition. 
+     */
+    XSElementDeclaration *getSubstitutionGroupAffiliation() const;
+
+    /**
+     * Convenience method. Check if <code>exclusion</code> is a substitution 
+     * group exclusion for this element declaration. 
+     * @param exclusion  
+     *   <code>DERIVATION_EXTENSION, DERIVATION_RESTRICTION</code> or 
+     *   <code>DERIVATION_NONE</code>. Represents final set for the element.
+     * @return True if <code>exclusion</code> is a part of the substitution 
+     *   group exclusion subset. 
+     */
+    bool isSubstitutionGroupExclusion(XSConstants::DERIVATION_TYPE exclusion);
+
+    /**
+     * [substitution group exclusions]: the returned value is a bit 
+     * combination of the subset of {
+     * <code>DERIVATION_EXTENSION, DERIVATION_RESTRICTION</code>} or 
+     * <code>DERIVATION_NONE</code>. 
+     */
+    short getSubstitutionGroupExclusions() const;
+
+    /**
+     * Convenience method. Check if <code>disallowed</code> is a disallowed 
+     * substitution for this element declaration. 
+     * @param disallowed {
+     *   <code>DERIVATION_SUBSTITUTION, DERIVATION_EXTENSION, DERIVATION_RESTRICTION</code>
+     *   } or <code>DERIVATION_NONE</code>. Represents a block set for the 
+     *   element.
+     * @return True if <code>disallowed</code> is a part of the substitution 
+     *   group exclusion subset. 
+     */
+    bool isDisallowedSubstitution(XSConstants::DERIVATION_TYPE disallowed);
+
+    /**
+     * [disallowed substitutions]: the returned value is a bit combination of 
+     * the subset of {
+     * <code>DERIVATION_SUBSTITUTION, DERIVATION_EXTENSION, DERIVATION_RESTRICTION</code>
+     * } corresponding to substitutions disallowed by this 
+     * <code>XSElementDeclaration</code> or <code>DERIVATION_NONE</code>. 
+     */
+    short getDisallowedSubstitutions() const;
+
+    /**
+     * {abstract} A boolean. 
+     */
+    bool getAbstract() const;
+
+    /**
+     * Optional. Annotation. 
+     */
+    XSAnnotation *getAnnotation() const;
+
+    //@}
+
+    //----------------------------------
+    /** methods needed by implementation */
+
+    //@{
+
+    void setTypeDefinition(XSTypeDefinition* typeDefinition);
+
+    //@}
+private:
+
+    void setEnclosingCTDefinition(XSComplexTypeDefinition* const toSet);
+    friend class XSObjectFactory;
+
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    XSElementDeclaration(const XSElementDeclaration&);
+    XSElementDeclaration & operator=(const XSElementDeclaration &);
+
+protected:
+
+    // -----------------------------------------------------------------------
+    //  data members
+    // -----------------------------------------------------------------------
+    short                         fDisallowedSubstitutions;
+    short                         fSubstitutionGroupExclusions;    
+    XSConstants::SCOPE            fScope;
+    SchemaElementDecl*            fSchemaElementDecl;
+    XSTypeDefinition*             fTypeDefinition;
+    XSComplexTypeDefinition*      fEnclosingTypeDefinition;
+    XSElementDeclaration*         fSubstitutionGroupAffiliation;
+    XSAnnotation*                 fAnnotation;
+    XSNamedMap<XSIDCDefinition>*  fIdentityConstraints;
+};
+
+inline XSTypeDefinition* XSElementDeclaration::getTypeDefinition() const
+{
+    return fTypeDefinition;
+}
+
+inline XSNamedMap<XSIDCDefinition>* XSElementDeclaration::getIdentityConstraints()
+{
+    return fIdentityConstraints;
+}
+
+inline XSElementDeclaration* XSElementDeclaration::getSubstitutionGroupAffiliation() const
+{
+    return fSubstitutionGroupAffiliation;
+}
+
+inline short XSElementDeclaration::getSubstitutionGroupExclusions() const
+{
+    return fSubstitutionGroupExclusions;
+}
+
+inline short XSElementDeclaration::getDisallowedSubstitutions() const
+{
+    return fDisallowedSubstitutions;
+}
+
+inline XSAnnotation *XSElementDeclaration::getAnnotation() const
+{
+    return fAnnotation;
+}
+
+inline XSConstants::SCOPE XSElementDeclaration::getScope() const
+{
+    return fScope;
+}
+
+inline XSComplexTypeDefinition *XSElementDeclaration::getEnclosingCTDefinition() const
+{
+    return fEnclosingTypeDefinition;
+}
+
+inline void XSElementDeclaration::setTypeDefinition(XSTypeDefinition* typeDefinition)
+{
+    fTypeDefinition = typeDefinition;
+}
+
+inline void XSElementDeclaration::setEnclosingCTDefinition(XSComplexTypeDefinition* const toSet)
+{
+    fEnclosingTypeDefinition = toSet;
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/psvi/XSModel.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/psvi/XSModel.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/psvi/XSModel.hpp	(revision 2674)
@@ -0,0 +1,338 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: XSModel.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(XSMODEL_HPP)
+#define XSMODEL_HPP
+
+#include <xercesc/util/PlatformUtils.hpp>
+#include <xercesc/framework/psvi/XSObject.hpp>
+#include <xercesc/framework/psvi/XSNamedMap.hpp>
+
+#include <xercesc/util/ValueVectorOf.hpp>
+#include <xercesc/validators/schema/SchemaElementDecl.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+/**
+ * This class contains all properties of the Schema infoitem as determined
+ * after an entire validation episode.  That is, it contains all the properties
+ * of all the Schema Namespace Information objects that went into
+ * the validation episode.
+ * Since it is not like other components, it  does not 
+ * inherit from the XSObject interface.
+ * This is *always* owned by the validator /parser object from which
+ * it is obtained.  It is designed to be subclassed; subclasses will
+ * specify under what conditions it may be relied upon to have meaningful contents.
+ */
+
+// forward declarations
+class Grammar;
+class XMLGrammarPool;
+class XSAnnotation;
+class XSAttributeDeclaration;
+class XSAttributeGroupDefinition;
+class XSElementDeclaration;
+class XSModelGroupDefinition;
+class XSNamespaceItem;
+class XSNotationDeclaration;
+class XSTypeDefinition;
+class XSObjectFactory;
+
+class XMLPARSER_EXPORT XSModel : public XMemory
+{
+public:
+
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+    /** @name Constructors */
+    //@{
+
+    /**
+      * The constructor to be used when a grammar pool contains all needed info
+      * @param grammarPool  the grammar pool containing the underlying data structures
+      * @param manager      The configurable memory manager
+      */
+    XSModel( XMLGrammarPool *grammarPool
+                , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+
+    /**
+      * The constructor to be used when the XSModel must represent all
+      * components in the union of an existing XSModel and a newly-created
+      * Grammar(s) from the GrammarResolver
+      *
+      * @param baseModel  the XSModel upon which this one is based
+      * @param grammarResolver  the grammar(s) whose components are to be merged
+      * @param manager     The configurable memory manager
+      */
+    XSModel( XSModel *baseModel
+                , GrammarResolver *grammarResolver
+                , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+
+    //@};
+
+    /** @name Destructor */
+    //@{
+    ~XSModel();
+    //@}
+
+    //---------------------
+    /** @name XSModel methods */
+
+    //@{
+
+    /**
+     * Convenience method. Returns a list of all namespaces that belong to 
+     * this schema. The value <code>null</code> is not a valid namespace 
+     * name, but if there are components that don't have a target namespace, 
+     * <code>null</code> is included in this list. 
+     */
+    StringList *getNamespaces();
+
+    /**
+     * A set of namespace schema information information items ( of type 
+     * <code>XSNamespaceItem</code>), one for each namespace name which 
+     * appears as the target namespace of any schema component in the schema 
+     * used for that assessment, and one for absent if any schema component 
+     * in the schema had no target namespace. For more information see 
+     * schema information. 
+     */
+    XSNamespaceItemList *getNamespaceItems();
+
+    /**
+     * [schema components]: a list of top-level components, i.e. element 
+     * declarations, attribute declarations, etc. 
+     * @param objectType The type of the declaration, i.e. 
+     *   <code>ELEMENT_DECLARATION</code>, 
+     *   <code>TYPE_DEFINITION</code> and any other component type that
+     * may be a property of a schema component.
+     * @return A list of top-level definition of the specified type in 
+     *   <code>objectType</code> or <code>null</code>. 
+     */
+    XSNamedMap<XSObject> *getComponents(XSConstants::COMPONENT_TYPE objectType);
+
+    /**
+     * Convenience method. Returns a list of top-level component declarations 
+     * that are defined within the specified namespace, i.e. element 
+     * declarations, attribute declarations, etc. 
+     * @param objectType The type of the declaration, i.e. 
+     *   <code>ELEMENT_DECLARATION</code>.
+     * @param compNamespace The namespace to which declaration belongs or 
+     *   <code>null</code> (for components with no target namespace).
+     * @return A list of top-level definitions of the specified type in 
+     *   <code>objectType</code> and defined in the specified 
+     *   <code>namespace</code> or <code>null</code>. 
+     */
+    XSNamedMap<XSObject> *getComponentsByNamespace(XSConstants::COMPONENT_TYPE objectType, 
+                                               const XMLCh *compNamespace);
+
+    /**
+     *  [annotations]: a set of annotations.
+     */
+    XSAnnotationList *getAnnotations();
+
+    /**
+     * Convenience method. Returns a top-level element declaration. 
+     * @param name The name of the declaration.
+     * @param compNamespace The namespace of the declaration, null if absent.
+     * @return A top-level element declaration or <code>null</code> if such 
+     *   declaration does not exist. 
+     */
+    XSElementDeclaration *getElementDeclaration(const XMLCh *name
+            , const XMLCh *compNamespace);
+
+    /**
+     * Convenience method. Returns a top-level attribute declaration. 
+     * @param name The name of the declaration.
+     * @param compNamespace The namespace of the declaration, null if absent.
+     * @return A top-level attribute declaration or <code>null</code> if such 
+     *   declaration does not exist. 
+     */
+    XSAttributeDeclaration *getAttributeDeclaration(const XMLCh *name
+            , const XMLCh *compNamespace);
+
+    /**
+     * Convenience method. Returns a top-level simple or complex type 
+     * definition. 
+     * @param name The name of the definition.
+     * @param compNamespace The namespace of the declaration, null if absent.
+     * @return An <code>XSTypeDefinition</code> or <code>null</code> if such 
+     *   definition does not exist. 
+     */
+    XSTypeDefinition *getTypeDefinition(const XMLCh *name
+            , const XMLCh *compNamespace);
+
+    /**
+     * Convenience method. Returns a top-level attribute group definition. 
+     * @param name The name of the definition.
+     * @param compNamespace The namespace of the declaration, null if absent.
+     * @return A top-level attribute group definition or <code>null</code> if 
+     *   such definition does not exist. 
+     */
+    XSAttributeGroupDefinition *getAttributeGroup(const XMLCh *name
+            , const XMLCh *compNamespace);
+
+    /**
+     * Convenience method. Returns a top-level model group definition. 
+     * @param name The name of the definition.
+     * @param compNamespace The namespace of the declaration, null if absent.
+     * @return A top-level model group definition definition or 
+     *   <code>null</code> if such definition does not exist. 
+     */
+    XSModelGroupDefinition *getModelGroupDefinition(const XMLCh *name
+            , const XMLCh *compNamespace);
+
+    /**
+     * Convenience method. Returns a top-level notation declaration. 
+     * @param name The name of the declaration.
+     * @param compNamespace The namespace of the declaration, null if absent.
+     * @return A top-level notation declaration or <code>null</code> if such 
+     *   declaration does not exist. 
+     */
+    XSNotationDeclaration *getNotationDeclaration(const XMLCh *name
+            , const XMLCh *compNamespace);
+
+    /**
+      * Optional.  Return a component given a component type and a unique Id.  
+      * May not be supported for all component types.
+      * @param compId unique Id of the component within its type
+      * @param compType type of the component
+      * @return the component of the given type with the given Id, or 0
+      * if no such component exists or this is unsupported for
+      * this type of component.
+      */
+    XSObject *getXSObjectById(unsigned int  compId
+                , XSConstants::COMPONENT_TYPE compType);
+
+    //@}
+
+    //----------------------------------
+    /** methods needed by implementation */
+
+    //@{
+    XMLStringPool*  getURIStringPool();
+
+    XSNamespaceItem* getNamespaceItem(const XMLCh* const key);
+
+    /**
+      * Get the XSObject (i.e. XSElementDeclaration) that corresponds to
+      * to a schema grammar component (i.e. SchemaElementDecl)
+      * @param key schema component object
+      *
+      * @return the corresponding XSObject
+      */
+    XSObject* getXSObject(void* key);
+
+    //@}
+private:
+
+    // -----------------------------------------------------------------------
+    //  Helper methods
+    // -----------------------------------------------------------------------
+    void addGrammarToXSModel
+    (
+        XSNamespaceItem* namespaceItem
+    );
+    void addS4SToXSModel
+    (
+        XSNamespaceItem* const namespaceItem
+        , RefHashTableOf<DatatypeValidator>* const builtInDV
+    );
+    void addComponentToNamespace
+    (
+         XSNamespaceItem* const namespaceItem
+         , XSObject* const component
+         , int componentIndex
+         , bool addToXSModel = true
+    );
+
+    void addComponentToIdVector
+    (
+        XSObject* const component
+        , int componentIndex
+    );
+
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    XSModel(const XSModel&);
+    XSModel & operator=(const XSModel &);
+
+protected:
+    friend class XSObjectFactory;
+    friend class XSObject;
+
+    // -----------------------------------------------------------------------
+    //  data members
+    // -----------------------------------------------------------------------
+    // fMemoryManager:
+    //  used for any memory allocations
+    MemoryManager* const                    fMemoryManager;
+ 
+    StringList*                             fNamespaceStringList;
+    XSNamespaceItemList*                    fXSNamespaceItemList;
+
+    RefVectorOf<XSObject>*                  fIdVector[XSConstants::MULTIVALUE_FACET];    
+
+    /* Need a XSNamedMap for each component    top-level?
+	      ATTRIBUTE_DECLARATION     = 1,	   
+	      ELEMENT_DECLARATION       = 2,	    
+	      TYPE_DEFINITION           = 3,	    
+	      ATTRIBUTE_USE             = 4,	   no 
+	      ATTRIBUTE_GROUP_DEFINITION= 5,	    
+	      MODEL_GROUP_DEFINITION    = 6,	   
+	      MODEL_GROUP               = 7,	   no 
+	      PARTICLE                  = 8,	   no
+	      WILDCARD                  = 9,	   no
+	      IDENTITY_CONSTRAINT       = 10,	   no
+	      NOTATION_DECLARATION      = 11,	    
+	      ANNOTATION                = 12,	   no 
+	      FACET                     = 13,      no
+	      MULTIVALUE_FACET          = 14       no
+    */
+    XSNamedMap<XSObject>*                   fComponentMap[XSConstants::MULTIVALUE_FACET];
+    XMLStringPool*                          fURIStringPool;
+    XSAnnotationList*                       fXSAnnotationList;
+    RefHashTableOf<XSNamespaceItem>*        fHashNamespace;
+    XSObjectFactory*                        fObjFactory;
+    RefVectorOf<XSNamespaceItem>*           fDeleteNamespace;
+    XSModel*                                fParent;
+    bool                                    fDeleteParent;
+    bool                                    fAddedS4SGrammar;
+};
+
+inline XMLStringPool*  XSModel::getURIStringPool()
+{
+    return fURIStringPool;
+}
+
+inline StringList *XSModel::getNamespaces()
+{
+    return fNamespaceStringList;
+}
+
+inline XSNamespaceItemList *XSModel::getNamespaceItems()
+{
+    return fXSNamespaceItemList;
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/psvi/XSNotationDeclaration.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/psvi/XSNotationDeclaration.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/psvi/XSNotationDeclaration.hpp	(revision 2674)
@@ -0,0 +1,154 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: XSNotationDeclaration.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(XSNOTATIONDECLARATION_HPP)
+#define XSNOTATIONDECLARATION_HPP
+
+#include <xercesc/framework/psvi/XSObject.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+/**
+ * This class describes all properties of a Schema Notation Declaration
+ * component.
+ * This is *always* owned by the validator /parser object from which
+ * it is obtained.  
+ */
+
+// forward declarations
+class XSAnnotation;
+class XMLNotationDecl;
+
+class XMLPARSER_EXPORT XSNotationDeclaration : public XSObject
+{
+public:
+
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+    /** @name Constructors */
+    //@{
+
+    /**
+      * The default constructor 
+      *
+      * @param  xmlNotationDecl
+      * @param  annot
+      * @param  xsModel
+      * @param  manager     The configurable memory manager
+      */
+    XSNotationDeclaration
+    (
+        XMLNotationDecl*  const xmlNotationDecl
+        , XSAnnotation* const   annot
+        , XSModel* const        xsModel
+        , MemoryManager* const  manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    //@};
+
+    /** @name Destructor */
+    //@{
+    ~XSNotationDeclaration();
+    //@}
+
+    //---------------------
+    /** @name overridden XSXSObject methods */
+
+    //@{
+
+    /**
+     * The name of type <code>NCName</code> of this declaration as defined in 
+     * XML Namespaces.
+     */
+    const XMLCh* getName();
+
+    /**
+     *  The [target namespace] of this object, or <code>null</code> if it is 
+     * unspecified. 
+     */
+    const XMLCh* getNamespace();
+
+    /**
+     * A namespace schema information item corresponding to the target 
+     * namespace of the component, if it's globally declared; or null 
+     * otherwise.
+     */
+    XSNamespaceItem *getNamespaceItem();
+
+    //@}
+
+    //---------------------
+    /** @name XSNotationDeclaration methods */
+
+    //@{
+
+    /**
+     *  The URI reference representing the system identifier for the notation 
+     * declaration, if present, <code>null</code> otherwise. 
+     */
+    const XMLCh *getSystemId();
+
+    /**
+     *  The string representing the public identifier for this notation 
+     * declaration, if present; <code>null</code> otherwise. 
+     */
+    const XMLCh *getPublicId();
+
+    /**
+     * Optional. An [annotation]. 
+     */
+    XSAnnotation *getAnnotation() const;
+
+    //@}
+
+    //----------------------------------
+    /** methods needed by implementation */
+
+    //@{
+
+    //@}
+private:
+
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    XSNotationDeclaration(const XSNotationDeclaration&);
+    XSNotationDeclaration & operator=(const XSNotationDeclaration &);
+
+protected:
+
+    // -----------------------------------------------------------------------
+    //  data members
+    // -----------------------------------------------------------------------
+    XMLNotationDecl* fXMLNotationDecl;
+    XSAnnotation*    fAnnotation;
+};
+
+inline XSAnnotation* XSNotationDeclaration::getAnnotation() const
+{
+    return fAnnotation;
+}
+
+
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/psvi/XSParticle.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/psvi/XSParticle.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/psvi/XSParticle.hpp	(revision 2674)
@@ -0,0 +1,195 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: XSParticle.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(XSPARTICLE_HPP)
+#define XSPARTICLE_HPP
+
+#include <xercesc/framework/psvi/XSObject.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+/**
+ * This class describes all properties of a Schema Particle
+ * component.
+ * This is *always* owned by the validator /parser object from which
+ * it is obtained.  
+ */
+
+// forward declarations
+class XSElementDeclaration;
+class XSModelGroup;
+class XSWildcard;
+
+class XMLPARSER_EXPORT XSParticle : public XSObject
+{
+public:
+
+    // possible terms of this particle
+    enum TERM_TYPE {
+        /*
+         * an empty particle
+         */
+        TERM_EMPTY          = 0,
+        /*
+         * the particle has element content
+         */
+        TERM_ELEMENT        = XSConstants::ELEMENT_DECLARATION,
+        /*
+         * the particle's content is a model group 
+         */
+        TERM_MODELGROUP     = XSConstants::MODEL_GROUP_DEFINITION,
+        /*
+         * the particle's content is a wildcard
+         */
+        TERM_WILDCARD       = XSConstants::WILDCARD
+    };
+
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+    /** @name Constructors */
+    //@{
+
+    /**
+      * The default constructor 
+      *
+      * @param  termType
+      * @param  xsModel
+      * @param  particleTerm
+      * @param  minOccurs
+      * @param  maxOccurs
+      * @param  manager     The configurable memory manager
+      */
+    XSParticle
+    (
+        TERM_TYPE              termType
+        , XSModel* const       xsModel
+        , XSObject* const      particleTerm
+        , int                  minOccurs
+        , int                  maxOccurs
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    //@};
+
+    /** @name Destructor */
+    //@{
+    ~XSParticle();
+    //@}
+
+    //---------------------
+    /** @name XSParticle methods */
+    //@{
+
+    /**
+     * [min occurs]: determines the minimum number of terms that can occur. 
+     */
+    int getMinOccurs() const;
+
+    /**
+     * [max occurs] determines the maximum number of terms that can occur. To 
+     * query for value of unbounded use <code>maxOccursUnbounded</code>. 
+     */
+    int getMaxOccurs() const;
+
+    /**
+     * [max occurs] whether the maxOccurs value is unbounded.
+     */
+    bool getMaxOccursUnbounded() const;
+
+    /**
+     * Returns the type of the [term]: one of 
+     * TERM_EMPTY, TERM_ELEMENT, TERM_MODELGROUP, or TERM_WILDCARD.
+     */
+    TERM_TYPE getTermType() const;
+
+    /**
+     * If this particle has an [element declaration] for its term,
+     * this method returns that declaration; otherwise, it returns 0.
+     * @returns The element declaration that is the [term] of this Particle
+     * if and only if getTermType() == TERM_ELEMENT.
+     */ 
+    XSElementDeclaration *getElementTerm();
+
+    /**
+     * If this particle has a [model group] for its term,
+     * this method returns that definition; otherwise, it returns 0.
+     * @returns The model group that is the [term] of this Particle
+     * if and only if getTermType() == TERM_MODELGROUP.
+     */ 
+    XSModelGroup *getModelGroupTerm();
+
+    /**
+     * If this particle has an [wildcard] for its term,
+     * this method returns that declaration; otherwise, it returns 0.
+     * @returns The wildcard declaration that is the [term] of this Particle
+     * if and only if getTermType() == TERM_WILDCARD.
+     */ 
+    XSWildcard *getWildcardTerm();
+
+    //@}
+
+    //----------------------------------
+    /** methods needed by implementation */
+    //@{
+
+    //@}
+private:
+
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    XSParticle(const XSParticle&);
+    XSParticle & operator=(const XSParticle &);
+
+protected:
+
+    // -----------------------------------------------------------------------
+    //  data members
+    // -----------------------------------------------------------------------
+    TERM_TYPE fTermType;
+    int       fMinOccurs;
+    int       fMaxOccurs;
+    XSObject* fTerm;
+};
+
+inline int XSParticle::getMinOccurs() const
+{
+    return fMinOccurs;
+}
+
+inline int XSParticle::getMaxOccurs() const
+{
+    return fMaxOccurs;
+}
+
+inline bool XSParticle::getMaxOccursUnbounded() const
+{
+    return (fMaxOccurs == -1);
+}
+
+inline XSParticle::TERM_TYPE XSParticle::getTermType() const
+{
+    return fTermType;
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/psvi/PSVIHandler.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/psvi/PSVIHandler.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/psvi/PSVIHandler.hpp	(revision 2674)
@@ -0,0 +1,147 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+ /*
+ * $Id: PSVIHandler.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+#if !defined(PSVIHANDLER_HPP)
+#define PSVIHANDLER_HPP
+
+#include <xercesc/framework/psvi/PSVIElement.hpp>
+#include <xercesc/framework/psvi/PSVIAttributeList.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+
+/**
+  * This abstract class provides the interface for the scanner to return
+  * PSVI information to the application.
+  *
+  */
+class XMLPARSER_EXPORT PSVIHandler
+{
+public:
+    // -----------------------------------------------------------------------
+    //  Constructors are hidden, just the virtual destructor is exposed
+    // -----------------------------------------------------------------------
+    /** @name Destructor */
+    //@{
+    virtual ~PSVIHandler()
+    {
+    }
+    //@}
+
+    /** @name The PSVI handler interface */
+    //@{
+    /** Receive notification of the PSVI properties of an element.
+      * The scanner will issue this call after the XMLDocumentHandler
+      * endElement call.  Since the scanner will issue the psviAttributes
+      * call immediately after reading the start tag of an element, all element
+      * content will be effectively bracketed by these two calls.
+      * @param  localName The name of the element whose end tag was just
+      *                     parsed.
+      * @param  uri       The namespace to which the element is bound
+      * @param  elementInfo    Object containing the element's PSVI properties
+      */
+    virtual void handleElementPSVI
+    (
+        const   XMLCh* const            localName 
+        , const XMLCh* const            uri
+        ,       PSVIElement *           elementInfo
+    ) = 0;
+
+    /** 
+      * Receive notification of partial PSVI properties of an element.
+      * This callback is made right after the psviAttributes
+      * call for non-empty element. 
+      *
+      *  The PSVIElement passed in has all fields properly set and it
+      *  can be safely accessed the same way as the one passed in handleElementPSVI.
+      *  However, fields listed below always have default values.
+      *
+      *  getValidity()	              PSVIItem::VALIDITY_NOTKNOWN
+      *  getValidationAttemped()      PSVIItem::VALIDATION_NONE
+      *  getMemberTypeDefinition()    0
+      *  getSchemaNormalizedValue()   0
+      *  getCanonicalRepresentation() 0
+      *  getNotationDeclaration()     0
+      *
+      *
+      * @param  localName    The name of the element upon which start tag 
+      *                      these attributes were encountered.
+      * @param  uri          The namespace to which the element is bound
+      * @param  elementInfo  Object containing the element's partial PSVI properties
+      */
+    virtual void handlePartialElementPSVI
+    (
+          const XMLCh*        const localName 
+        , const XMLCh*        const uri
+        ,       PSVIElement *       elementInfo
+    );
+
+    /**
+      * Enables PSVI information about attributes to be passed back to the
+      * application.  This callback will be made on *all*
+      * elements; on elements with no attributes, the final parameter will
+      * be null.
+      * @param  localName The name of the element upon which start tag 
+      *          these attributes were encountered.
+      * @param  uri       The namespace to which the element is bound
+      * @param  psviAttributes   Object containing the attributes' PSVI properties
+      *          with information to identify them.
+      */
+    virtual void handleAttributesPSVI
+    (
+        const   XMLCh* const            localName 
+        , const XMLCh* const            uri
+        ,       PSVIAttributeList *     psviAttributes
+    ) = 0;
+
+
+    //@}
+
+
+
+protected :
+    // -----------------------------------------------------------------------
+    //  Hidden Constructors
+    // -----------------------------------------------------------------------
+    PSVIHandler()
+    {
+    }
+
+
+private:
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    PSVIHandler(const PSVIHandler&);
+    PSVIHandler& operator=(const PSVIHandler&);
+};
+
+inline void PSVIHandler::handlePartialElementPSVI(const XMLCh*        const /*localName*/
+                                                , const XMLCh*        const /*uri*/
+                                                ,       PSVIElement *       /*elementInfo*/
+                                                 )
+{
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/psvi/XSSimpleTypeDefinition.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/psvi/XSSimpleTypeDefinition.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/psvi/XSSimpleTypeDefinition.hpp	(revision 2674)
@@ -0,0 +1,458 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: XSSimpleTypeDefinition.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(XSSIMPLETYPEDEFINITION_HPP)
+#define XSSIMPLETYPEDEFINITION_HPP
+
+#include <xercesc/framework/psvi/XSTypeDefinition.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+/**
+ * This class represents a simpleType definition
+ * schema component.
+ * This is *always* owned by the validator /parser object from which
+ * it is obtained.  
+ *
+ */
+
+// forward declarations
+class XSAnnotation;
+class XSFacet;
+class XSMultiValueFacet;
+class DatatypeValidator;
+
+class XMLPARSER_EXPORT XSSimpleTypeDefinition : public XSTypeDefinition
+{
+public:
+
+    // Variety definitions
+    enum VARIETY {
+	    /**
+	     * The variety is absent for the anySimpleType definition.
+	     */
+	    VARIETY_ABSENT            = 0,
+	    /**
+	     * <code>Atomic</code> type.
+	     */
+	    VARIETY_ATOMIC            = 1,
+	    /**
+	     * <code>List</code> type.
+	     */
+	    VARIETY_LIST              = 2,
+	    /**
+	     * <code>Union</code> type.
+	     */
+	    VARIETY_UNION             = 3
+    };
+
+    // Facets
+    enum FACET {
+	    /**
+	     * No facets defined.
+	     */
+	    FACET_NONE                = 0,
+	    /**
+	     * 4.3.1 Length
+	     */
+	    FACET_LENGTH              = 1,
+	    /**
+	     * 4.3.2 minLength. 
+	     */
+	    FACET_MINLENGTH           = 2,
+	    /**
+	     * 4.3.3 maxLength.
+	     */
+	    FACET_MAXLENGTH           = 4,
+	    /**
+	     * 4.3.4 pattern.
+	     */
+	    FACET_PATTERN             = 8,
+	    /**
+	     * 4.3.5 whitespace.
+	     */
+	    FACET_WHITESPACE          = 16,
+	    /**
+	     * 4.3.7 maxInclusive.
+	     */
+	    FACET_MAXINCLUSIVE        = 32,
+	    /**
+	     * 4.3.9 maxExclusive.
+	     */
+	    FACET_MAXEXCLUSIVE        = 64,
+	    /**
+	     * 4.3.9 minExclusive.
+	     */
+	    FACET_MINEXCLUSIVE        = 128,
+	    /**
+	     * 4.3.10 minInclusive.
+	     */
+	    FACET_MININCLUSIVE        = 256,
+	    /**
+	     * 4.3.11 totalDigits .
+	     */
+	    FACET_TOTALDIGITS         = 512,
+	    /**
+	     * 4.3.12 fractionDigits.
+	     */
+	    FACET_FRACTIONDIGITS      = 1024,
+	    /**
+	     * 4.3.5 enumeration.
+	     */
+	    FACET_ENUMERATION         = 2048
+    };
+
+    // possible order relations
+    enum ORDERING {
+	    /**
+	     * A constant defined for the 'ordered' fundamental facet: Not ordered.
+	     */
+	    ORDERED_FALSE             = 0,
+	    /**
+	     * A constant defined for the 'ordered' fundamental facet: partially 
+	     * ordered.
+	     */
+	    ORDERED_PARTIAL           = 1,
+	    /**
+	     * A constant defined for the 'ordered' fundamental facet: total ordered.
+	     */
+        ORDERED_TOTAL             = 2
+    };
+
+	//  Constructors and Destructor
+    // -----------------------------------------------------------------------
+    /** @name Constructors */
+    //@{
+
+    /**
+      * The default constructor 
+      *
+      * @param  datatypeValidator
+      * @param  stVariety
+      * @param  xsBaseType
+      * @param  primitiveOrItemType
+      * @param  memberTypes
+      * @param  headAnnot
+      * @param  xsModel
+      * @param  manager     The configurable memory manager
+      */
+    XSSimpleTypeDefinition
+    (
+        DatatypeValidator* const            datatypeValidator
+        , VARIETY                           stVariety
+        , XSTypeDefinition* const           xsBaseType
+        , XSSimpleTypeDefinition* const     primitiveOrItemType
+        , XSSimpleTypeDefinitionList* const memberTypes
+        , XSAnnotation*                     headAnnot
+        , XSModel* const                    xsModel
+        , MemoryManager* const              manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    //@};
+
+    /** @name Destructor */
+    //@{
+    ~XSSimpleTypeDefinition();
+    //@}
+
+    //---------------------
+    /** @name XSSimpleTypeDefinition methods */
+
+    //@{
+
+    /**
+     * [variety]: one of {atomic, list, union} or absent 
+     */
+    VARIETY getVariety() const;
+
+    /**
+     * If variety is <code>atomic</code> the primitive type definition (a 
+     * built-in primitive datatype definition or the simple ur-type 
+     * definition) is available, otherwise <code>null</code>. 
+     */
+    XSSimpleTypeDefinition *getPrimitiveType();
+
+    /**
+     * If variety is <code>list</code> the item type definition (an atomic or 
+     * union simple type definition) is available, otherwise 
+     * <code>null</code>. 
+     */
+    XSSimpleTypeDefinition *getItemType();
+
+    /**
+     * If variety is <code>union</code> the list of member type definitions (a 
+     * non-empty sequence of simple type definitions) is available, 
+     * otherwise <code>null</code>. 
+     */
+    XSSimpleTypeDefinitionList *getMemberTypes() const;
+
+    /**
+     * [facets]: get all facets defined on this type. The value is a bit 
+     * combination of FACET_XXX constants of all defined facets. 
+     */
+    int getDefinedFacets() const;
+
+    /**
+     * Convenience method. [Facets]: check whether a facet is defined on this 
+     * type.
+     * @param facetName  The name of the facet. 
+     * @return  True if the facet is defined, false otherwise.
+     */
+    bool isDefinedFacet(FACET facetName);
+
+    /**
+     * [facets]: get all facets defined and fixed on this type.
+     */
+    int getFixedFacets() const;
+
+    /**
+     * Convenience method. [Facets]: check whether a facet is defined and 
+     * fixed on this type. 
+     * @param facetName  The name of the facet. 
+     * @return  True if the facet is fixed, false otherwise.
+     */
+    bool isFixedFacet(FACET facetName);
+
+    /**
+     * Convenience method. Returns a value of a single constraining facet for 
+     * this simple type definition. This method must not be used to retrieve 
+     * values for <code>enumeration</code> and <code>pattern</code> facets. 
+     * @param facetName The name of the facet, i.e. 
+     *   <code>FACET_LENGTH, FACET_TOTALDIGITS </code> (see 
+     *   <code>XSConstants</code>).To retrieve value for pattern or 
+     *   enumeration, see <code>enumeration</code> and <code>pattern</code>.
+     * @return A value of the facet specified in <code>facetName</code> for 
+     *   this simple type definition or <code>null</code>. 
+     */
+    const XMLCh *getLexicalFacetValue(FACET facetName);
+
+    /**
+     * Returns a list of enumeration values. 
+     */
+    StringList *getLexicalEnumeration();
+
+    /**
+     * Returns a list of pattern values. 
+     */
+    StringList *getLexicalPattern();
+
+    /**
+     *  Fundamental Facet: ordered 
+     */
+    ORDERING getOrdered() const;
+
+    /**
+     * Fundamental Facet: cardinality. 
+     */
+    bool getFinite() const;
+
+    /**
+     * Fundamental Facet: bounded. 
+     */
+    bool getBounded() const;
+
+    /**
+     * Fundamental Facet: numeric. 
+     */
+    bool getNumeric() const;
+
+    /**
+     * Optional. A set of [annotation]s. 
+     */
+    XSAnnotationList *getAnnotations();
+    /** 
+     * @return list of constraining facets.
+     * This method must not be used to retrieve 
+     * values for <code>enumeration</code> and <code>pattern</code> facets.
+     */
+    XSFacetList *getFacets();
+    
+    /** 
+     * @return list of enumeration and pattern facets.
+     */
+    XSMultiValueFacetList *getMultiValueFacets();
+    
+    /**
+     * The name of type <code>NCName</code> of this declaration as defined in 
+     * XML Namespaces.
+     */
+    const XMLCh* getName();
+
+    /**
+     *  The [target namespace] of this object, or <code>null</code> if it is 
+     * unspecified. 
+     */
+    const XMLCh* getNamespace();
+
+    /**
+     * A namespace schema information item corresponding to the target 
+     * namespace of the component, if it's globally declared; or null 
+     * otherwise.
+     */
+    XSNamespaceItem *getNamespaceItem();
+
+    /**
+     *  A boolean that specifies if the type definition is 
+     * anonymous. Convenience attribute. 
+     */
+    bool getAnonymous() const;
+
+    /**
+     * {base type definition}: either a simple type definition or a complex 
+     * type definition. 
+     */
+    XSTypeDefinition *getBaseType();
+
+    /**
+     * Convenience method: check if this type is derived from the given 
+     * <code>ancestorType</code>. 
+     * @param ancestorType  An ancestor type definition. 
+     * @return  Return true if this type is derived from 
+     *   <code>ancestorType</code>.
+     */
+    bool derivedFromType(const XSTypeDefinition* const ancestorType);
+
+    /**
+     * 
+     */
+    inline DatatypeValidator* getDatatypeValidator() const;
+
+    //@}
+
+    //----------------------------------
+    /** methods needed by implementation */
+
+    //@{
+
+
+    //@}
+
+private:
+
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    XSSimpleTypeDefinition(const XSSimpleTypeDefinition&);
+    XSSimpleTypeDefinition & operator=(const XSSimpleTypeDefinition &);
+
+    /**
+      * Helper method for construct
+      */
+    void setFacetInfo
+    (
+        int                            definedFacets
+        , int                          fixedFacets
+        , XSFacetList* const           xsFacetList
+        , XSMultiValueFacetList* const xsMultiValueFacetList
+        , StringList* const            patternList
+    );
+    void setPrimitiveType(XSSimpleTypeDefinition*  const toSet);
+
+    friend class XSObjectFactory;
+
+protected:
+
+    // -----------------------------------------------------------------------
+    //  data members
+    // -----------------------------------------------------------------------
+    int                         fDefinedFacets;
+    int                         fFixedFacets;
+    VARIETY                     fVariety;
+    DatatypeValidator*          fDatatypeValidator;
+    XSFacetList*                fXSFacetList;
+    XSMultiValueFacetList*      fXSMultiValueFacetList;
+    StringList*                 fPatternList;
+    XSSimpleTypeDefinition*     fPrimitiveOrItemType;
+    XSSimpleTypeDefinitionList* fMemberTypes;
+    XSAnnotationList*           fXSAnnotationList;
+};
+
+inline XSSimpleTypeDefinition::VARIETY XSSimpleTypeDefinition::getVariety() const
+{
+    return fVariety;
+}
+
+inline XSSimpleTypeDefinition* XSSimpleTypeDefinition::getPrimitiveType()
+{
+    if (fVariety == VARIETY_ATOMIC)
+        return fPrimitiveOrItemType;
+
+    return 0;
+}
+
+inline XSSimpleTypeDefinition* XSSimpleTypeDefinition::getItemType()
+{
+    if (fVariety == VARIETY_LIST)
+        return fPrimitiveOrItemType;
+
+    return 0;
+}
+
+inline XSSimpleTypeDefinitionList* XSSimpleTypeDefinition::getMemberTypes() const
+{
+    return fMemberTypes;
+}
+
+inline int XSSimpleTypeDefinition::getDefinedFacets() const
+{
+    return fDefinedFacets;
+}
+
+inline int XSSimpleTypeDefinition::getFixedFacets() const
+{
+    return fFixedFacets;
+}
+
+inline StringList* XSSimpleTypeDefinition::getLexicalPattern()
+{
+    return fPatternList;
+}
+
+inline XSFacetList* XSSimpleTypeDefinition::getFacets()
+{
+    return fXSFacetList;
+}
+
+inline XSMultiValueFacetList* XSSimpleTypeDefinition::getMultiValueFacets()
+{
+    return fXSMultiValueFacetList;
+}
+
+inline XSAnnotationList *XSSimpleTypeDefinition::getAnnotations()
+{
+    return fXSAnnotationList;
+}
+
+inline void
+XSSimpleTypeDefinition::setPrimitiveType(XSSimpleTypeDefinition* const toSet)
+{
+    fPrimitiveOrItemType = toSet;
+}
+
+inline DatatypeValidator* 
+XSSimpleTypeDefinition::getDatatypeValidator() const
+{
+    return fDatatypeValidator;
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/psvi/XSObject.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/psvi/XSObject.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/psvi/XSObject.hpp	(revision 2674)
@@ -0,0 +1,152 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: XSObject.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(XSOBJECT_HPP)
+#define XSOBJECT_HPP
+
+#include <xercesc/util/PlatformUtils.hpp>
+#include <xercesc/framework/psvi/XSConstants.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+/**
+ * The XSObject forms the base of the Schema Component Model.  It contains
+ * all properties common to the majority of XML Schema components.
+ * This is *always* owned by the validator /parser object from which
+ * it is obtained.  It is designed to be subclassed; subclasses will
+ * specify under what conditions it may be relied upon to have meaningful contents.
+ */
+
+// forward declarations
+class XSNamespaceItem;
+class XSModel;
+
+class XMLPARSER_EXPORT XSObject : public XMemory
+{
+public:
+
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+    /** @name Constructors */
+    //@{
+
+    /**
+      * The default constructor 
+      *
+      * @param  compType
+      * @param  xsModel
+      * @param  manager     The configurable memory manager
+      */
+    XSObject
+    (
+        XSConstants::COMPONENT_TYPE compType
+        , XSModel* const xsModel
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    //@};
+
+    /** @name Destructor */
+    //@{
+    virtual ~XSObject();
+    //@}
+
+    //---------------------
+    /** @name XSObject methods */
+
+    //@{
+
+    /**
+     *  The <code>type</code> of this object, i.e. 
+     * <code>ELEMENT_DECLARATION</code>. 
+     */
+    XSConstants::COMPONENT_TYPE getType() const;
+
+    /**
+     * The name of type <code>NCName</code> of this declaration as defined in 
+     * XML Namespaces.
+     */
+    virtual const XMLCh* getName();
+
+    /**
+     *  The [target namespace] of this object, or <code>null</code> if it is 
+     * unspecified. 
+     */
+    virtual const XMLCh* getNamespace();
+
+    /**
+     * A namespace schema information item corresponding to the target 
+     * namespace of the component, if it's globally declared; or null 
+     * otherwise.
+     */
+    virtual XSNamespaceItem *getNamespaceItem();
+
+    /**
+      * Optional.  Return a unique identifier for a component within this XSModel, to
+      * optimize querying.  May not be defined for all types of component.
+      * @return id unique for this type of component within this XSModel or 0
+      *     to indicate that this is not supported for this type of component.
+      */
+    virtual unsigned int getId() const;
+
+    //@}
+
+    //----------------------------------
+    /** methods needed by implementation */
+
+    //@{
+    /**
+      * Set the id to be returned on getId().
+      */
+    void setId(unsigned int id);
+    //@}
+
+private:
+
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    XSObject(const XSObject&);
+    XSObject & operator=(const XSObject &);
+
+protected:
+
+    // -----------------------------------------------------------------------
+    //  data members
+    // -----------------------------------------------------------------------
+    // fMemoryManager:
+    //  used for any memory allocations
+    // fComponentType
+    //  the type of the actual component
+    XSConstants::COMPONENT_TYPE fComponentType;
+    XSModel*                    fXSModel;
+    MemoryManager*              fMemoryManager;
+    unsigned int                fId;
+};
+
+inline XSConstants::COMPONENT_TYPE XSObject::getType() const
+{
+    return fComponentType;
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/psvi/XSIDCDefinition.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/psvi/XSIDCDefinition.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/psvi/XSIDCDefinition.hpp	(revision 2674)
@@ -0,0 +1,190 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: XSIDCDefinition.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(XSIDCDEFINITION_HPP)
+#define XSIDCDEFINITION_HPP
+
+#include <xercesc/framework/psvi/XSObject.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+/**
+ * This class describes all properties of a Schema Identity Constraint
+ * Definition component.
+ * This is *always* owned by the validator /parser object from which
+ * it is obtained.  
+ */
+
+// forward declarations
+class XSAnnotation;
+class IdentityConstraint;
+
+class XMLPARSER_EXPORT XSIDCDefinition : public XSObject
+{
+public:
+
+    // Identity Constraints
+    enum IC_CATEGORY {
+	    /**
+	     * 
+	     */
+	    IC_KEY                    = 1,
+	    /**
+	     * 
+	     */
+	    IC_KEYREF                 = 2,
+	    /**
+	     * 
+	     */
+	    IC_UNIQUE                 = 3
+    };
+
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+    /** @name Constructors */
+    //@{
+
+    /**
+      * The default constructor 
+      *
+      * @param  identityConstraint
+      * @param  keyIC
+      * @param  headAnnot
+      * @param  stringList
+      * @param  xsModel
+      * @param  manager     The configurable memory manager
+      */
+    XSIDCDefinition
+    (
+        IdentityConstraint* const identityConstraint
+        , XSIDCDefinition*  const keyIC
+        , XSAnnotation* const     headAnnot
+        , StringList* const       stringList
+        , XSModel* const          xsModel
+        , MemoryManager* const    manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    //@};
+
+    /** @name Destructor */
+    //@{
+    ~XSIDCDefinition();
+    //@}
+
+    //---------------------
+    /** @name overridden XSXSObject methods */
+
+    //@{
+
+    /**
+     * The name of type <code>NCName</code> of this declaration as defined in 
+     * XML Namespaces.
+     */
+    const XMLCh* getName();
+
+    /**
+     *  The [target namespace] of this object, or <code>null</code> if it is 
+     * unspecified. 
+     */
+    const XMLCh* getNamespace();
+
+    /**
+     * A namespace schema information item corresponding to the target 
+     * namespace of the component, if it's globally declared; or null 
+     * otherwise.
+     */
+    XSNamespaceItem *getNamespaceItem();
+
+    //@}
+
+    //---------------------
+    /** @name XSIDCDefinition methods */
+
+    //@{
+
+    /**
+     * [identity-constraint category]: one of IC_KEY, IC_KEYREF or IC_UNIQUE. 
+     */
+    IC_CATEGORY getCategory() const;
+
+    /**
+     * [selector]: a restricted XPath expression. 
+     */
+    const XMLCh *getSelectorStr();
+
+    /**
+     * [fields]: a non-empty list of restricted XPath ([XPath]) expressions. 
+     */
+    StringList *getFieldStrs();
+
+    /**
+     * [referenced key]: required if [identity-constraint category] is IC_KEYREF, 
+     * forbidden otherwise (when an identity-constraint definition with [
+     * identity-constraint category] equal to IC_KEY or IC_UNIQUE). 
+     */
+    XSIDCDefinition *getRefKey() const;
+
+    /**
+     * A set of [annotations]. 
+     */
+    XSAnnotationList *getAnnotations();
+
+    //@}
+
+    //----------------------------------
+    /** methods needed by implementation */
+
+    //@{
+
+    //@}
+private:
+
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    XSIDCDefinition(const XSIDCDefinition&);
+    XSIDCDefinition & operator=(const XSIDCDefinition &);
+
+protected:
+
+    // -----------------------------------------------------------------------
+    //  data members
+    // -----------------------------------------------------------------------
+    IdentityConstraint* fIdentityConstraint;
+    XSIDCDefinition*    fKey;
+    StringList*         fStringList;
+    XSAnnotationList*   fXSAnnotationList;
+};
+
+
+inline StringList* XSIDCDefinition::getFieldStrs()
+{
+    return fStringList;
+}
+
+inline XSIDCDefinition* XSIDCDefinition::getRefKey() const
+{
+    return fKey;
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/psvi/XSAttributeDeclaration.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/psvi/XSAttributeDeclaration.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/psvi/XSAttributeDeclaration.hpp	(revision 2674)
@@ -0,0 +1,245 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Log$
+ * Revision 1.10  2004/09/08 13:56:07  peiyongz
+ * Apache License Version 2.0
+ *
+ * Revision 1.9  2004/05/04 19:02:40  cargilld
+ * Enable IDs to work on all kinds of schema components
+ *
+ * Revision 1.8  2003/12/24 17:42:02  knoaman
+ * Misc. PSVI updates
+ *
+ * Revision 1.7  2003/12/01 23:23:26  neilg
+ * fix for bug 25118; thanks to Jeroen Witmond
+ *
+ * Revision 1.6  2003/11/21 22:34:45  neilg
+ * More schema component model implementation, thanks to David Cargill.
+ * In particular, this cleans up and completes the XSModel, XSNamespaceItem,
+ * XSAttributeDeclaration and XSAttributeGroup implementations.
+ *
+ * Revision 1.5  2003/11/21 17:19:30  knoaman
+ * PSVI update.
+ *
+ * Revision 1.4  2003/11/14 22:47:53  neilg
+ * fix bogus log message from previous commit...
+ *
+ * Revision 1.3  2003/11/14 22:33:30  neilg
+ * Second phase of schema component model implementation.  
+ * Implement XSModel, XSNamespaceItem, and the plumbing necessary
+ * to connect them to the other components.
+ * Thanks to David Cargill.
+ *
+ * Revision 1.2  2003/11/06 15:30:04  neilg
+ * first part of PSVI/schema component model implementation, thanks to David Cargill.  This covers setting the PSVIHandler on parser objects, as well as implementing XSNotation, XSSimpleTypeDefinition, XSIDCDefinition, and most of XSWildcard, XSComplexTypeDefinition, XSElementDeclaration, XSAttributeDeclaration and XSAttributeUse.
+ *
+ * Revision 1.1  2003/09/16 14:33:36  neilg
+ * PSVI/schema component model classes, with Makefile/configuration changes necessary to build them
+ *
+ */
+
+#if !defined(XSATTRIBUTEDECLARATION_HPP)
+#define XSATTRIBUTEDECLARATION_HPP
+
+#include <xercesc/framework/psvi/XSObject.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+/**
+ * This class describes all properties of a Schema Attribute
+ * Declaration component.
+ * This is *always* owned by the validator /parser object from which
+ * it is obtained.  
+ */
+
+// forward declarations
+class XSAnnotation;
+class XSComplexTypeDefinition;
+class XSSimpleTypeDefinition;
+class SchemaAttDef;
+
+class XMLPARSER_EXPORT XSAttributeDeclaration : public XSObject
+{
+public:
+
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+    /** @name Constructors */
+    //@{
+
+    /**
+      * The default constructor 
+      *
+      * @param  attDef      
+      * @param  typeDef     
+      * @param  annot       
+      * @param  xsModel     
+      * @param  scope       
+      * @param  enclosingCTDefinition
+      * @param  manager     The configurable memory manager
+      */
+    XSAttributeDeclaration
+    (
+        SchemaAttDef* const             attDef
+        , XSSimpleTypeDefinition* const typeDef
+        , XSAnnotation* const           annot
+        , XSModel* const                xsModel
+        , XSConstants::SCOPE            scope
+        , XSComplexTypeDefinition*      enclosingCTDefinition
+        , MemoryManager* const          manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    //@};
+
+    /** @name Destructor */
+    //@{
+    ~XSAttributeDeclaration();
+    //@}
+
+    //---------------------
+    /** @name overridden XSObject methods */
+
+    //@{
+
+    /**
+     * The name of type <code>NCName</code> of this declaration as defined in 
+     * XML Namespaces.
+     */
+    const XMLCh* getName();
+
+    /**
+     *  The [target namespace] of this object, or <code>null</code> if it is 
+     * unspecified. 
+     */
+    const XMLCh* getNamespace();
+
+    /**
+     * A namespace schema information item corresponding to the target 
+     * namespace of the component, if it's globally declared; or null 
+     * otherwise.
+     */
+    XSNamespaceItem* getNamespaceItem();
+
+    //@}
+
+    /** @name XSAttributeDeclaration methods **/
+
+    //@{
+
+    /**
+     * [type definition]: A simple type definition 
+     */
+    XSSimpleTypeDefinition *getTypeDefinition() const;
+
+    /**
+     * Optional. One of <code>SCOPE_GLOBAL</code>, <code>SCOPE_LOCAL</code>, 
+     * or <code>SCOPE_ABSENT</code>. If the scope is local, then the 
+     * <code>enclosingCTDefinition</code> is present. 
+     */
+    XSConstants::SCOPE getScope() const;
+
+    /**
+     * The complex type definition for locally scoped declarations (see 
+     * <code>scope</code>). 
+     */
+    XSComplexTypeDefinition *getEnclosingCTDefinition();
+
+    /**
+     * Value constraint: one of <code>VC_NONE, VC_DEFAULT, VC_FIXED</code>. 
+     */
+    XSConstants::VALUE_CONSTRAINT getConstraintType() const;
+
+    /**
+     * Value constraint: The actual value with respect to the [type definition
+     * ]. 
+     */
+    const XMLCh *getConstraintValue();
+
+    /**
+     * Optional. Annotation. 
+     */
+    XSAnnotation *getAnnotation() const;
+
+    //@}
+
+    //----------------------------------
+    /** methods needed by implementation */
+
+    //@{
+
+    bool getRequired() const;
+    //@}
+
+private:
+
+    void setEnclosingCTDefinition(XSComplexTypeDefinition* const toSet);
+    friend class XSObjectFactory;
+
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    XSAttributeDeclaration(const XSAttributeDeclaration&);
+    XSAttributeDeclaration & operator=(const XSAttributeDeclaration &);
+
+protected:
+
+    // -----------------------------------------------------------------------
+    //  data members
+    // -----------------------------------------------------------------------
+    SchemaAttDef*               fAttDef;
+    XSSimpleTypeDefinition*     fTypeDefinition;
+    XSAnnotation*               fAnnotation;
+    XSConstants::SCOPE          fScope;
+    XSComplexTypeDefinition*    fEnclosingCTDefinition;
+};
+
+// ---------------------------------------------------------------------------
+//  XSAttributeDeclaration: inline methods
+// ---------------------------------------------------------------------------
+inline XSSimpleTypeDefinition* XSAttributeDeclaration::getTypeDefinition() const
+{
+    return fTypeDefinition;
+}
+
+inline XSAnnotation *XSAttributeDeclaration::getAnnotation() const
+{
+    return fAnnotation;
+}
+
+inline XSConstants::SCOPE XSAttributeDeclaration::getScope() const
+{   
+    return fScope;
+}
+
+inline XSComplexTypeDefinition *XSAttributeDeclaration::getEnclosingCTDefinition()
+{
+    return fEnclosingCTDefinition;
+}
+
+inline void XSAttributeDeclaration::setEnclosingCTDefinition
+(
+    XSComplexTypeDefinition* const toSet
+)
+{
+    fEnclosingCTDefinition = toSet;
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/psvi/XSAnnotation.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/psvi/XSAnnotation.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/psvi/XSAnnotation.hpp	(revision 2674)
@@ -0,0 +1,195 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: XSAnnotation.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(XSANNOTATION_HPP)
+#define XSANNOTATION_HPP
+
+#include <xercesc/framework/psvi/XSObject.hpp>
+#include <xercesc/internal/XSerializable.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+/**
+ * This class describes all properties of a Schema Annotation
+ * component.
+ * This is *always* owned by the validator /parser object from which
+ * it is obtained.  
+ */
+
+// forward declarations
+class DOMNode;
+class ContentHandler;
+
+class XMLPARSER_EXPORT XSAnnotation : public XSerializable, public XSObject
+{
+public:
+
+    // TargetType
+    enum ANNOTATION_TARGET {
+	    /**
+	     * The object type is <code>org.w3c.dom.Element</code>.
+	     */
+	    W3C_DOM_ELEMENT           = 1,
+	    /**
+	     * The object type is <code>org.w3c.dom.Document</code>.
+	     */
+	    W3C_DOM_DOCUMENT          = 2
+    };
+
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+    /** @name Constructors */
+    //@{
+
+    /**
+      * The default constructor 
+      *
+      * @param  contents    The string that is to be the content of this XSAnnotation
+      * @param  manager     The configurable memory manager
+      */
+    XSAnnotation
+    (
+        const XMLCh* const contents
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    //@};
+
+    /** @name Destructor */
+    //@{
+    ~XSAnnotation();
+    //@}
+
+    //---------------------
+    /** @name XSAnnotation methods */
+
+    //@{
+
+    /**
+     * Write contents of the annotation to the specified DOM object. In-scope 
+     * namespace declarations for <code>annotation</code> element are added as 
+     * attribute nodes of the serialized <code>annotation</code>. 
+     * @param node  A target pointer to the annotation target object, i.e.
+     * either <code>DOMDocument</code> or <code>DOMElement</code> cast as 
+     * <code>DOMNode</code>. 
+     * @param targetType  A target type.    
+     */
+ 
+    void writeAnnotation(DOMNode* node, ANNOTATION_TARGET targetType);  
+
+    /**
+     * Write contents of the annotation to the specified object. 
+     * The corresponding events for all in-scope namespace declarations are 
+     * sent via the specified document handler. 
+     * @param handler  A target pointer to the annotation target object, i.e. 
+     *   <code>ContentHandler</code>.
+     */    
+    void writeAnnotation(ContentHandler* handler);
+
+    /**
+     * A text representation of annotation.
+     */
+    const XMLCh *getAnnotationString() const;
+    XMLCh *getAnnotationString();
+
+    //@}
+
+    //----------------------------------
+    /** methods needed by implementation */
+    //@{
+    void            setNext(XSAnnotation* const nextAnnotation);
+    XSAnnotation*   getNext();
+    //@}
+
+    //-----------------------------
+    /** Getter */
+    //@{
+    inline void           getLineCol(int& line, int& col)  const;
+    inline const XMLCh*   getSystemId()                    const;    
+    //@}
+
+    //-----------------------------
+    /** Setter */
+    //@{
+    inline void           setLineCol(int line, int col);
+           void           setSystemId(const XMLCh* const systemId);    
+    //@}
+
+    /***
+     * Support for Serialization/De-serialization
+     ***/
+    DECL_XSERIALIZABLE(XSAnnotation)
+    XSAnnotation(MemoryManager* const manager);
+
+private:
+
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    XSAnnotation(const XSAnnotation&);
+    XSAnnotation & operator=(const XSAnnotation &);
+
+protected:
+
+    // -----------------------------------------------------------------------
+    //  data members
+    // -----------------------------------------------------------------------
+    XMLCh*        fContents;
+    XSAnnotation* fNext;
+
+private:
+
+    XMLCh*        fSystemId;
+    int           fLine;
+    int           fCol;
+
+};
+
+inline const XMLCh *XSAnnotation::getAnnotationString() const
+{
+    return fContents;
+}
+
+inline XMLCh *XSAnnotation::getAnnotationString()
+{
+    return fContents;
+}
+
+inline void XSAnnotation::getLineCol(int& line, int& col) const
+{
+    line = fLine;
+    col  = fCol;
+}
+
+inline const XMLCh* XSAnnotation::getSystemId() const
+{
+    return fSystemId;
+}
+
+inline void XSAnnotation::setLineCol(int line, int col)
+{
+    fLine = line;
+    fCol  = col;
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/psvi/XSNamespaceItem.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/psvi/XSNamespaceItem.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/psvi/XSNamespaceItem.hpp	(revision 2674)
@@ -0,0 +1,239 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: XSNamespaceItem.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(XSNAMESPACEITEM_HPP)
+#define XSNAMESPACEITEM_HPP
+
+#include <xercesc/util/PlatformUtils.hpp>
+#include <xercesc/framework/psvi/XSObject.hpp>
+#include <xercesc/framework/psvi/XSNamedMap.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+/**
+ * This class contains all properties of the Schema Namespace Information infoitem.  
+ * These items correspond to the result of processing a schema document
+ * and all its included/redefined schema documents.  It corresponds to the
+ * schema component discussed in the schema specifications, but since it
+ * is not like other components does not inherit from the XSObject interface.
+ * This is *always* owned by the validator /parser object from which
+ * it is obtained.  It is designed to be subclassed; subclasses will
+ * specify under what conditions it may be relied upon to have meaningful contents.
+ */
+
+// forward declarations
+class XSAnnotation;
+class XSAttributeDeclaration;
+class XSAttributeGroupDefinition;
+class XSElementDeclaration;
+class XSModelGroupDefinition;
+class XSNotationDeclaration;
+class XSTypeDefinition;
+class SchemaGrammar;
+class XSModel;
+
+class XMLPARSER_EXPORT XSNamespaceItem : public XMemory
+{
+public:
+
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+    /** @name Constructors */
+    //@{
+
+    /**
+      * The default constructor 
+      *
+      * @param  xsModel
+      * @param  grammar
+      * @param  manager     The configurable memory manager
+      */
+    XSNamespaceItem
+    (
+        XSModel* const         xsModel
+        , SchemaGrammar* const grammar
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    XSNamespaceItem
+    (
+        XSModel* const         xsModel
+        , const XMLCh* const   schemaNamespace
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    //@};
+
+    /** @name Destructor */
+    //@{
+    ~XSNamespaceItem();
+    //@}
+
+    //---------------------
+    /** @name XSNamespaceItem methods */
+
+    //@{
+
+    /**
+     * [schema namespace]: A namespace name or <code>null</code>
+     * corresponding to the target namespace of the schema document.
+     */
+    const XMLCh *getSchemaNamespace();
+
+    /**
+     * [schema components]: a list of top-level components, i.e. element 
+     * declarations, attribute declarations, etc. 
+     * @param objectType The type of the declaration, i.e. 
+     *   <code>ELEMENT_DECLARATION</code>, 
+     *   <code>TYPE_DEFINITION</code> and any other component type that
+     * may be a property of a schema component.
+     * @return A list of top-level definition of the specified type in 
+     *   <code>objectType</code> or <code>null</code>. 
+     */
+    XSNamedMap<XSObject> *getComponents(XSConstants::COMPONENT_TYPE objectType);
+
+    /**
+     *  [annotations]: a set of annotations.
+     */
+    XSAnnotationList *getAnnotations();
+
+    /**
+     * Convenience method. Returns a top-level element declaration. 
+     * @param name The name of the declaration.
+     * @return A top-level element declaration or <code>null</code> if such 
+     *   declaration does not exist. 
+     */
+    XSElementDeclaration *getElementDeclaration(const XMLCh *name);
+
+    /**
+     * Convenience method. Returns a top-level attribute declaration. 
+     * @param name The name of the declaration.
+     * @return A top-level attribute declaration or <code>null</code> if such 
+     *   declaration does not exist. 
+     */
+    XSAttributeDeclaration *getAttributeDeclaration(const XMLCh *name);
+
+    /**
+     * Convenience method. Returns a top-level simple or complex type 
+     * definition. 
+     * @param name The name of the definition.
+     * @return An <code>XSTypeDefinition</code> or <code>null</code> if such 
+     *   definition does not exist. 
+     */
+    XSTypeDefinition *getTypeDefinition(const XMLCh *name);
+
+    /**
+     * Convenience method. Returns a top-level attribute group definition. 
+     * @param name The name of the definition.
+     * @return A top-level attribute group definition or <code>null</code> if 
+     *   such definition does not exist. 
+     */
+    XSAttributeGroupDefinition *getAttributeGroup(const XMLCh *name);
+
+    /**
+     * Convenience method. Returns a top-level model group definition. 
+     * @param name The name of the definition.
+     * @return A top-level model group definition definition or 
+     *   <code>null</code> if such definition does not exist. 
+     */
+    XSModelGroupDefinition *getModelGroupDefinition(const XMLCh *name);
+
+    /**
+     * Convenience method. Returns a top-level notation declaration. 
+     * @param name The name of the declaration.
+     * @return A top-level notation declaration or <code>null</code> if such 
+     *   declaration does not exist. 
+     */
+    XSNotationDeclaration *getNotationDeclaration(const XMLCh *name);
+
+    /**
+     * [document location] - a list of locations URI for the documents that 
+     * contributed to the XSModel.
+     */
+    StringList *getDocumentLocations();
+
+    //@}
+
+    //----------------------------------
+    /** methods needed by implementation */
+
+    //@{
+
+
+    //@}
+private:
+
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    XSNamespaceItem(const XSNamespaceItem&);
+    XSNamespaceItem & operator=(const XSNamespaceItem &);
+
+protected:
+    friend class XSModel;
+    friend class XSObjectFactory;
+    // -----------------------------------------------------------------------
+    //  data members
+    // -----------------------------------------------------------------------
+    // fMemoryManager:
+    //  used for any memory allocations
+    MemoryManager* const    fMemoryManager;
+    SchemaGrammar*          fGrammar;
+    XSModel*                fXSModel;
+
+    /* Need a XSNamedMap for each component    top-level?
+       that is top level.
+	      ATTRIBUTE_DECLARATION     = 1,	   
+	      ELEMENT_DECLARATION       = 2,	    
+	      TYPE_DEFINITION           = 3,	    
+	      ATTRIBUTE_USE             = 4,	   no 
+	      ATTRIBUTE_GROUP_DEFINITION= 5,	    
+	      MODEL_GROUP_DEFINITION    = 6,	   
+	      MODEL_GROUP               = 7,	   no 
+	      PARTICLE                  = 8,	   no
+	      WILDCARD                  = 9,	   no
+	      IDENTITY_CONSTRAINT       = 10,	   no
+	      NOTATION_DECLARATION      = 11,	    
+	      ANNOTATION                = 12,	   no
+	      FACET                     = 13,      no
+	      MULTIVALUE_FACET          = 14       no
+    */
+    XSNamedMap<XSObject>*                   fComponentMap[XSConstants::MULTIVALUE_FACET];
+    XSAnnotationList*                       fXSAnnotationList;
+    RefHashTableOf<XSObject>*               fHashMap[XSConstants::MULTIVALUE_FACET];
+    const XMLCh*                            fSchemaNamespace;
+};
+
+inline XSAnnotationList* XSNamespaceItem::getAnnotations()
+{
+    return fXSAnnotationList;
+}
+
+inline const XMLCh *XSNamespaceItem::getSchemaNamespace()
+{
+    return fSchemaNamespace;
+}
+
+
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/psvi/XSConstants.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/psvi/XSConstants.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/psvi/XSConstants.hpp	(revision 2674)
@@ -0,0 +1,196 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: XSConstants.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(XSCONSTANTS_HPP)
+#define XSCONSTANTS_HPP
+
+#include <xercesc/util/RefVectorOf.hpp>
+#include <xercesc/util/RefArrayVectorOf.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+/**
+ * This contains constants needed in the schema component model.
+ */
+
+// forward definitions for typedefs
+class XSAnnotation;
+class XSAttributeUse;
+class XSFacet;
+class XSMultiValueFacet;
+class XSNamespaceItem;
+class XSParticle;
+class XSSimpleTypeDefinition;
+
+// these typedefs are intended to help hide dependence on utility
+// classes, as well as to define more intuitive names for commonly
+// used concepts.
+
+typedef RefVectorOf <XSAnnotation> XSAnnotationList;
+typedef RefVectorOf <XSAttributeUse> XSAttributeUseList;
+typedef RefVectorOf <XSFacet> XSFacetList;
+typedef RefVectorOf <XSMultiValueFacet> XSMultiValueFacetList;
+typedef RefVectorOf <XSNamespaceItem> XSNamespaceItemList;
+typedef RefVectorOf <XSParticle> XSParticleList;
+typedef RefVectorOf <XSSimpleTypeDefinition> XSSimpleTypeDefinitionList;
+typedef RefArrayVectorOf <XMLCh> StringList;
+
+class XMLPARSER_EXPORT XSConstants 
+{
+public:
+
+    // XML Schema Components
+    enum COMPONENT_TYPE {
+	    /**
+	     * The object describes an attribute declaration.
+	     */
+	      ATTRIBUTE_DECLARATION     = 1,
+	    /**
+	     * The object describes an element declaration.
+	     */
+	      ELEMENT_DECLARATION       = 2,
+	    /**
+	     * The object describes a complex type or simple type definition.
+	     */
+	      TYPE_DEFINITION           = 3,
+	    /**
+	     * The object describes an attribute use definition.
+	     */
+	      ATTRIBUTE_USE             = 4,
+	    /**
+	     * The object describes an attribute group definition.
+	     */
+	      ATTRIBUTE_GROUP_DEFINITION= 5,
+	    /**
+	     * The object describes a model group definition.
+	     */
+	      MODEL_GROUP_DEFINITION    = 6,
+	    /**
+	     * A model group.
+	     */
+	      MODEL_GROUP               = 7,
+	    /**
+	     * The object describes a particle.
+	     */
+	      PARTICLE                  = 8,
+	    /**
+	     * The object describes a wildcard.
+	     */
+	      WILDCARD                  = 9,
+	    /**
+	     * The object describes an identity constraint definition.
+	     */
+	      IDENTITY_CONSTRAINT       = 10,
+	    /**
+	     * The object describes a notation declaration.
+	     */
+	      NOTATION_DECLARATION      = 11,
+	    /**
+	     * The object describes an annotation.
+	     */
+	      ANNOTATION                = 12,
+	    /**
+	     * The object describes a constraining facet.
+	     */
+	      FACET                     = 13,
+	    
+	    /**
+	     * The object describes enumeration/pattern facets.
+	     */
+	      MULTIVALUE_FACET           = 14
+    };
+
+    // Derivation constants
+    enum DERIVATION_TYPE {
+	    /**
+	     * No constraint is available.
+	     */
+	     DERIVATION_NONE     = 0,
+	    /**
+	     * <code>XSTypeDefinition</code> final set or 
+	     * <code>XSElementDeclaration</code> disallowed substitution group.
+	     */
+	     DERIVATION_EXTENSION      = 1,
+	    /**
+	     * <code>XSTypeDefinition</code> final set or 
+	     * <code>XSElementDeclaration</code> disallowed substitution group.
+	     */
+	     DERIVATION_RESTRICTION    = 2,
+	    /**
+	     * <code>XSTypeDefinition</code> final set.
+	     */
+	     DERIVATION_SUBSTITUTION   = 4,
+	    /**
+	     * <code>XSTypeDefinition</code> final set.
+	     */
+	     DERIVATION_UNION          = 8,
+	    /**
+	     * <code>XSTypeDefinition</code> final set.
+	     */
+	     DERIVATION_LIST           = 16
+    };
+
+    // Scope
+    enum SCOPE {
+	    /**
+	     * The scope of a declaration within named model groups or attribute 
+	     * groups is <code>absent</code>. The scope of such declaration is 
+	     * determined when it is used in the construction of complex type 
+	     * definitions. 
+	     */
+	     SCOPE_ABSENT              = 0,
+	    /**
+	     * A scope of <code>global</code> identifies top-level declarations. 
+	     */
+	     SCOPE_GLOBAL              = 1,
+	    /**
+	     * <code>Locally scoped</code> declarations are available for use only 
+	     * within the complex type.
+	     */
+	     SCOPE_LOCAL               = 2
+    };
+
+    // Value Constraint
+    enum VALUE_CONSTRAINT {
+	    /**
+	     * Indicates that the component does not have any value constraint.
+	     */
+	     VALUE_CONSTRAINT_NONE          = 0,
+	    /**
+	     * Indicates that there is a default value constraint.
+	     */
+	     VALUE_CONSTRAINT_DEFAULT       = 1,
+	    /**
+	     * Indicates that there is a fixed value constraint for this attribute.
+	     */
+	     VALUE_CONSTRAINT_FIXED         = 2
+    };
+
+private:
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    XSConstants();
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/psvi/XSValue.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/psvi/XSValue.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/psvi/XSValue.hpp	(revision 2674)
@@ -0,0 +1,415 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: XSValue.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(XSVALUE_HPP)
+#define XSVALUE_HPP
+
+#include <xercesc/util/PlatformUtils.hpp>
+#include <xercesc/util/ValueHashTableOf.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class RegularExpression;
+
+class XMLPARSER_EXPORT XSValue : public XMemory
+{
+public:
+
+    enum DataType {
+              dt_string               = 0,
+              dt_boolean              = 1,
+              dt_decimal              = 2,
+              dt_float                = 3,
+              dt_double               = 4,
+              dt_duration             = 5,
+              dt_dateTime             = 6,
+              dt_time                 = 7,
+              dt_date                 = 8,
+              dt_gYearMonth           = 9,
+              dt_gYear                = 10,
+              dt_gMonthDay            = 11,
+              dt_gDay                 = 12,
+              dt_gMonth               = 13,
+              dt_hexBinary            = 14,
+              dt_base64Binary         = 15,
+              dt_anyURI               = 16,
+              dt_QName                = 17,
+              dt_NOTATION             = 18,
+              dt_normalizedString     = 19,
+              dt_token                = 20,
+              dt_language             = 21,
+              dt_NMTOKEN              = 22,
+              dt_NMTOKENS             = 23,
+              dt_Name                 = 24,
+              dt_NCName               = 25,
+              dt_ID                   = 26,
+              dt_IDREF                = 27,
+              dt_IDREFS               = 28,
+              dt_ENTITY               = 29,
+              dt_ENTITIES             = 30,
+              dt_integer              = 31,
+              dt_nonPositiveInteger   = 32,
+              dt_negativeInteger      = 33,
+              dt_long                 = 34,
+              dt_int                  = 35,
+              dt_short                = 36,
+              dt_byte                 = 37,
+              dt_nonNegativeInteger   = 38,
+              dt_unsignedLong         = 39,
+              dt_unsignedInt          = 40,
+              dt_unsignedShort        = 41,
+              dt_unsignedByte         = 42,
+              dt_positiveInteger      = 43,
+              dt_MAXCOUNT             = 44
+    };
+
+    enum XMLVersion {
+            ver_10,
+            ver_11
+    };
+
+    enum Status {
+            st_Init,
+            st_NoContent,
+            st_NoCanRep,
+            st_NoActVal,
+            st_NotSupported,
+            st_CantCreateRegEx,
+            st_FOCA0002,        //invalid lexical value 
+            st_FOCA0001,        //input value too large/too small for decimal 
+            st_FOCA0003,        //input value too large for integer 
+            st_FODT0003,        //invalid timezone value 
+            st_UnknownType
+    };
+
+    enum DataGroup {
+            dg_numerics,            
+            dg_datetimes,
+            dg_strings
+    };
+
+    enum DoubleFloatType
+    {
+        DoubleFloatType_NegINF,
+        DoubleFloatType_PosINF,
+        DoubleFloatType_NaN,
+        DoubleFloatType_Zero,
+        DoubleFloatType_Normal
+    };
+
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+    /** @name Destructor */
+    //@{
+    ~XSValue();
+    //@}
+
+    //---------------------------------
+    /** @name Externalization methods */
+    //@{
+
+    /** 
+      * Validate a given string of the data type specified
+      *
+      * @param  content    data to be validated
+      * @param  datatype   schema datatype
+      * @param  status     validation status which is set upon validation fails
+      * @param  version    xml version
+      * @param  manager    memory manager provided
+      */
+    static
+    bool     validate
+             (
+                const XMLCh*          const content    
+              ,       DataType              datatype
+              ,       Status&               status
+              ,       XMLVersion            version    = ver_10
+              ,       MemoryManager*  const manager    = XMLPlatformUtils::fgMemoryManager
+             );
+
+    /** 
+      * Get the canonical representation for a given string of the 
+      * data type specified
+      *
+      * @param  content    raw data
+      * @param  datatype   schema datatype
+      * @param  status     validation status which is set upon validation fails
+      * @param  version    xml version
+      * @param  toValidate to validate the content before generate canonical representation
+      * @param  manager    memory manager provided
+      */
+    static
+    XMLCh*   getCanonicalRepresentation
+             (
+                const XMLCh*          const content    
+              ,       DataType              datatype
+              ,       Status&               status
+              ,       XMLVersion            version    = ver_10
+              ,       bool                  toValidate = true 
+              ,       MemoryManager*  const manager    = XMLPlatformUtils::fgMemoryManager
+             );
+
+    /** 
+      * Get the actual value, in the form of XSValue, for a given string of the 
+      * data type specified
+      *
+      * Client application is responsible for the deleletion of the XSValue returned.
+      *
+      * @param  content    raw data
+      * @param  datatype   schema datatype
+      * @param  status     validation status which is set upon validation fails
+      * @param  version    xml version
+      * @param  toValidate to validate the content before generate actual value
+      * @param  manager    memory manager provided
+      */
+    static
+    XSValue* getActualValue
+             (
+                const XMLCh*          const content    
+              ,       DataType              datatype
+              ,       Status&               status
+              ,       XMLVersion            version    = ver_10
+              ,       bool                  toValidate = true 
+              ,       MemoryManager*  const manager    = XMLPlatformUtils::fgMemoryManager
+             );
+
+    static
+    DataType  getDataType  (const XMLCh* const dtString);
+
+    //@}
+
+    //----------------------------------
+    /** public data */
+
+    struct XSValue_Data {
+
+        DataType f_datatype;
+        
+        union {
+                         bool      f_bool;
+                         char      f_char;                    
+                unsigned char      f_uchar;
+                         short     f_short;
+                unsigned short     f_ushort;
+                         int       f_int;
+                unsigned int       f_uint;
+                         long      f_long;
+                unsigned long      f_ulong;
+                         float     f_float;
+                         double    f_double;
+                         XMLCh*    f_strVal;
+                         XMLByte*  f_byteVal;
+
+                struct decimal {
+                                double           f_dvalue;
+                } f_decimal;
+
+                struct datetime {
+                                int       f_year;
+                                int       f_month;
+                                int       f_day;
+                                int       f_hour;
+                                int       f_min;
+                                int       f_second;
+                                double    f_milisec;
+
+                } f_datetime;
+
+                struct doubletype {
+                                double          f_double;
+                                DoubleFloatType f_doubleEnum;
+                } f_doubleType;
+
+                struct floattype {
+                                float           f_float;
+                                DoubleFloatType f_floatEnum;
+                } f_floatType;
+
+
+
+        } fValue;
+
+    } fData;
+
+    static
+    void reinitMutex();
+
+    static
+    void reinitRegEx();
+
+    static
+    void reinitRegistry();
+
+private:
+
+    typedef union
+    {
+                long  f_long;
+       unsigned long  f_ulong;
+    } t_value;
+
+    /** @name Constructors */
+    //@{
+    /**
+      * The default constructor 
+      *
+      */
+    XSValue(
+             DataType        const dt
+           , MemoryManager*  const manager = XMLPlatformUtils::fgMemoryManager
+           );
+
+    //@};
+
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    XSValue(const XSValue&);
+    XSValue & operator=(const XSValue &);
+
+    //---------------------------------
+    /** @name Helpers */
+
+    //@{
+
+    static const XSValue::DataGroup inGroup[];
+    static const bool numericSign[];
+
+    //@}
+
+    static
+    bool     validateNumerics
+             (
+                const XMLCh*          const content    
+              ,       DataType              datatype
+              ,       Status&               status              
+              ,       MemoryManager*  const manager
+             );
+
+    static
+    bool     validateDateTimes
+             (
+                const XMLCh*          const content    
+              ,       DataType              datatype
+              ,       Status&               status              
+              ,       MemoryManager*  const manager
+             );
+
+    static
+    bool     validateStrings
+             (
+                const XMLCh*          const content    
+              ,       DataType              datatype
+              ,       Status&               status
+              ,       XMLVersion            version
+              ,       MemoryManager*  const manager
+             );
+
+    static
+    XMLCh*   getCanRepNumerics
+             (
+                const XMLCh*          const content    
+              ,       DataType              datatype
+              ,       Status&               status             
+              ,       bool                  toValidate
+              ,       MemoryManager*  const manager
+             );
+
+    static
+    XMLCh*   getCanRepDateTimes
+             (
+                const XMLCh*          const content    
+              ,       DataType              datatype
+              ,       Status&               status             
+              ,       bool                  toValidate
+              ,       MemoryManager*  const manager
+             );
+
+    static
+    XMLCh*   getCanRepStrings
+             (
+                const XMLCh*          const content    
+              ,       DataType              datatype
+              ,       Status&               status
+              ,       XMLVersion            version
+              ,       bool                  toValidate
+              ,       MemoryManager*  const manager
+             );
+
+    static
+    XSValue*  getActValNumerics
+             (
+                const XMLCh*          const content    
+              ,       DataType              datatype
+              ,       Status&               status   
+              ,       bool                  toValidate
+              ,       MemoryManager*  const manager
+             );
+
+    static
+    XSValue*  getActValDateTimes
+             (
+                const XMLCh*          const content    
+              ,       DataType              datatype
+              ,       Status&               status              
+              ,       MemoryManager*  const manager
+             );
+
+    static
+    XSValue*  getActValStrings
+             (
+                const XMLCh*          const content    
+              ,       DataType              datatype
+              ,       Status&               status
+              ,       XMLVersion            version
+              ,       bool                  toValidate
+              ,       MemoryManager*  const manager
+             );
+
+    static
+    bool      getActualNumericValue
+              (
+                 const XMLCh*         const content
+               ,       Status&               status                                
+               ,       t_value&              retVal                              
+               ,       MemoryManager* const  manager
+               ,       DataType              datatype
+               );
+
+    static ValueHashTableOf<DataType>*    fDataTypeRegistry;
+
+    // -----------------------------------------------------------------------
+    //  static helper methods
+    // -----------------------------------------------------------------------
+    static void initializeRegistry();
+    friend class XMLInitializer;
+
+    // -----------------------------------------------------------------------
+    //  data members
+    // -----------------------------------------------------------------------
+    bool                fMemAllocated;
+    MemoryManager*      fMemoryManager;
+
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/psvi/XSModelGroup.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/psvi/XSModelGroup.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/psvi/XSModelGroup.hpp	(revision 2674)
@@ -0,0 +1,156 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: XSModelGroup.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(XSMODELGROUP_HPP)
+#define XSMODELGROUP_HPP
+
+#include <xercesc/framework/psvi/XSObject.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+/**
+ * This class describes all properties of a Schema Model Group
+ * component.
+ * This is *always* owned by the validator /parser object from which
+ * it is obtained.  
+ */
+
+// forward declarations
+class XSAnnotation;
+class XSParticle;
+
+class XMLPARSER_EXPORT XSModelGroup : public XSObject
+{
+public:
+
+    // Content model compositors
+    enum COMPOSITOR_TYPE {
+	    /**
+	     * This constant value signifies a sequence operator.
+	     */
+	    COMPOSITOR_SEQUENCE       = 1,
+	    /**
+	     * This constant value signifies a choice operator.
+	     */
+	    COMPOSITOR_CHOICE         = 2,
+	    /**
+	     * This content model represents a simplified version of the SGML 
+	     * &amp;-Connector and is limited to the top-level of any content model. 
+	     * No element in the all content model may appear more than once.
+	     */
+	    COMPOSITOR_ALL            = 3
+    };
+	
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+    /** @name Constructors */
+    //@{
+
+    /**
+      * The default constructor 
+      *
+      * @param  compositorType
+      * @param  particleList
+      * @param  annot
+      * @param  xsModel
+      * @param  manager     The configurable memory manager
+      */
+    XSModelGroup
+    (
+        COMPOSITOR_TYPE compositorType
+        , XSParticleList* const particleList
+        , XSAnnotation* const annot
+        , XSModel* const xsModel
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    //@};
+
+    /** @name Destructor */
+    //@{
+    ~XSModelGroup();
+    //@}
+
+    //---------------------
+    /** @name XSModelGroup methods */
+    //@{
+
+    /**
+     * [compositor]: one of all, choice or sequence. The valid constants 
+     * values are: 
+     * <code>COMPOSITOR_SEQUENCE, COMPOSITOR_CHOICE, COMPOSITOR_ALL</code>. 
+     */
+    COMPOSITOR_TYPE getCompositor() const;
+
+    /**
+     *  A list of [particles]. 
+     */
+    XSParticleList *getParticles() const;
+
+    /**
+     * Optional. An [annotation]. 
+     */
+    XSAnnotation *getAnnotation() const;
+
+    //@}
+
+    //----------------------------------
+    /** methods needed by implementation */
+
+    //@{
+
+    //@}
+private:
+
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    XSModelGroup(const XSModelGroup&);
+    XSModelGroup & operator=(const XSModelGroup &);
+
+protected:
+
+    // -----------------------------------------------------------------------
+    //  data members
+    // -----------------------------------------------------------------------
+    COMPOSITOR_TYPE fCompositorType;
+    XSParticleList* fParticleList;
+    XSAnnotation*   fAnnotation;
+};
+
+inline XSModelGroup::COMPOSITOR_TYPE XSModelGroup::getCompositor() const
+{
+    return fCompositorType;
+}
+
+inline XSParticleList* XSModelGroup::getParticles() const
+{
+    return fParticleList;
+}
+
+inline XSAnnotation* XSModelGroup::getAnnotation() const
+{
+    return fAnnotation;
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/psvi/XSNamedMap.c
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/psvi/XSNamedMap.c	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/psvi/XSNamedMap.c	(revision 2674)
@@ -0,0 +1,114 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * $Id: XSNamedMap.c 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+// ---------------------------------------------------------------------------
+//  Include
+// ---------------------------------------------------------------------------
+#if defined(XERCES_TMPLSINC)
+#include <xercesc/framework/psvi/XSNamedMap.hpp>
+#endif
+
+#include <xercesc/util/RefVectorOf.hpp>
+#include <xercesc/util/StringPool.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+// ---------------------------------------------------------------------------
+//  XSNamedMap: Constructors and Destructor
+// ---------------------------------------------------------------------------
+template <class TVal>
+XSNamedMap<TVal>::XSNamedMap(const unsigned int maxElems,
+                             const unsigned int modulus,
+                             XMLStringPool* uriStringPool,
+                             const bool adoptElems,
+                             MemoryManager* const manager) 
+    : fMemoryManager(manager) 
+    , fURIStringPool(uriStringPool)
+{
+    // allow one of the Vector or Hash to own the data... but not both...
+    fVector = new (manager) RefVectorOf<TVal> (maxElems, false, manager);
+    fHash = new (manager) RefHash2KeysTableOf<TVal> (modulus, adoptElems, manager);
+}
+template <class TVal> XSNamedMap<TVal>::~XSNamedMap()
+{
+    delete fVector;
+    delete fHash;
+}
+
+
+/**
+ * The number of <code>XSObjects</code> in the <code>XSObjectList</code>. 
+ * The range of valid child object indices is 0 to 
+ * <code>mapLength-1</code> inclusive. 
+ */
+template <class TVal> 
+unsigned int XSNamedMap<TVal>::getLength()
+{
+    return fVector->size();
+}
+
+/**
+ * Returns the <code>index</code>th item in the collection. The index 
+ * starts at 0. If <code>index</code> is greater than or equal to the 
+ * number of objects in the list, this returns <code>null</code>. 
+ * @param index  index into the collection. 
+ * @return  The <code>XSObject</code> at the <code>index</code>th 
+ *   position in the <code>XSObjectList</code>, or <code>null</code> if 
+ *   that is not a valid index. 
+ */
+template <class TVal> 
+TVal* XSNamedMap<TVal>::item(unsigned int index)
+{
+    if (index >= fVector->size()) 
+    {
+        return 0;
+    }
+    return fVector->elementAt(index);
+}
+
+/**
+ * Retrieves a component specified by local name and namespace URI.
+ * <br>applications must use the value null as the 
+ * <code>compNamespace</code> parameter for components whose targetNamespace property
+ * is absent.
+ * @param compNamespace The namespace URI of the component to retrieve.
+ * @param localName The local name of the component to retrieve.
+ * @return A component (of any type) with the specified local 
+ *   name and namespace URI, or <code>null</code> if they do not 
+ *   identify any node in this map.
+ */
+template <class TVal> 
+TVal *XSNamedMap<TVal>::itemByName(const XMLCh *compNamespace, 
+                          const XMLCh *localName)
+{
+    return fHash->get((void*)localName, fURIStringPool->getId(compNamespace));
+}
+
+
+template <class TVal>
+void XSNamedMap<TVal>::addElement(TVal* const toAdd, const XMLCh* key1, const XMLCh* key2)
+{
+    fVector->addElement(toAdd);
+    fHash->put((void*)key1, fURIStringPool->getId(key2), toAdd);
+}
+
+XERCES_CPP_NAMESPACE_END
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/XMLErrorReporter.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/XMLErrorReporter.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/XMLErrorReporter.hpp	(revision 2674)
@@ -0,0 +1,163 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+ /*
+ * $Id: XMLErrorReporter.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+#if !defined(XMLERRORREPORTER_HPP)
+#define XMLERRORREPORTER_HPP
+
+#include <xercesc/util/XercesDefs.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+
+/**
+ *  This abstract class defines a callback mechanism for the scanner. By
+ *  creating a class that implements this interface and plugging an instance
+ *  of that class into the scanner, the scanner will call back on the object's
+ *  virtual methods to report error events. This class is also used with the
+ *  validator, to allow it to report errors.
+ *
+ *  This class is primarily for use by those writing their own parser classes.
+ *  If you use the standard parser classes, DOMParser and SAXParser, you won't
+ *  use this API. You will instead use a similar mechanism defined by the SAX
+ *  API, called ErrorHandler.
+ */
+class XMLPARSER_EXPORT XMLErrorReporter
+{
+public:
+    // -----------------------------------------------------------------------
+    //  The types of errors we can issue
+    // -----------------------------------------------------------------------
+    enum ErrTypes
+    {
+        ErrType_Warning
+        , ErrType_Error
+        , ErrType_Fatal
+
+        , ErrTypes_Unknown
+    };
+
+
+    // -----------------------------------------------------------------------
+    //  Constructors are hidden, only the virtual destructor is exposed
+    // -----------------------------------------------------------------------
+
+    /** @name Destructor */
+    //@{
+
+    /**
+      *   Default destructor
+      */
+    virtual ~XMLErrorReporter()
+    {
+    }
+    //@}
+
+
+    // -----------------------------------------------------------------------
+    //  The error handler interface
+    // -----------------------------------------------------------------------
+
+    /** @name Error Handler interface */
+    //@{
+
+    /** Called to report errors from the scanner or validator
+      *
+      * This method is called back on by the scanner or validator (or any other
+      * internal parser component which might need to report an error in the
+      * future.) It contains all the information that the client code might
+      * need to report or log the error.
+      *
+      * @param  errCode     The error code of the error being reported. What
+      *                     this means is dependent on the domain it is from.
+      *
+      * @param  errDomain   The domain from which the error occured. The domain
+      *                     is a means of providing a hierarchical layering to
+      *                     the error system, so that a single set of error id
+      *                     numbers don't have to be split up.
+      *
+      * @param  type        The error type, which is defined mostly by XML which
+      *                     categorizes errors into warning, errors and validity
+      *                     constraints.
+      *
+      * @param  errorText   The actual text of the error. This is translatable,
+      *                     so can possibly be in the local language if a
+      *                     translation has been provided.
+      *
+      * @param  systemId    The system id of the entity where the error occured,
+      *                     fully qualified.
+      *
+      * @param  publicId    The optional public id of the entity were the error
+      *                     occured. It can be an empty string if non was provided.
+      *
+      * @param  lineNum     The line number within the source XML of the error.
+      *
+      * @param  colNum      The column number within the source XML of the error.
+      *                     Because of the parsing style, this is usually just
+      *                     after the actual offending text.
+      */
+    virtual void error
+    (
+        const   unsigned int        errCode
+        , const XMLCh* const        errDomain
+        , const ErrTypes            type
+        , const XMLCh* const        errorText
+        , const XMLCh* const        systemId
+        , const XMLCh* const        publicId
+        , const XMLSSize_t          lineNum
+        , const XMLSSize_t          colNum
+    ) = 0;
+
+    /** Called before a new parse event to allow the handler to reset
+      *
+      * This method is called by the scanner before a new parse event is
+      * about to start. It gives the error handler a chance to reset its
+      * internal state.
+      */
+    virtual void resetErrors() = 0;
+
+    //@}
+
+
+protected :
+
+    /** @name Constructor */
+    //@{
+
+    /**
+      *   Default constructor
+      */
+    XMLErrorReporter()
+    {
+    }
+    //@}
+
+private:
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and destructor
+    // -----------------------------------------------------------------------
+    XMLErrorReporter(const XMLErrorReporter&);
+    XMLErrorReporter& operator=(const XMLErrorReporter&);
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/XMLDocumentHandler.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/XMLDocumentHandler.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/XMLDocumentHandler.hpp	(revision 2674)
@@ -0,0 +1,308 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+ /*
+ * $Id: XMLDocumentHandler.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+#if !defined(XMLDOCUMENTHANDLER_HPP)
+#define XMLDOCUMENTHANDLER_HPP
+
+#include <xercesc/util/XercesDefs.hpp>
+#include <xercesc/util/RefVectorOf.hpp>
+#include <xercesc/framework/XMLAttr.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class XMLElementDecl;
+class XMLEntityDecl;
+
+/**
+  * This abstract class provides the interface for the scanner to return
+  * XML document information up to the parser as it scans through the
+  * document.
+  *
+  * The interface is very similar to org.sax.DocumentHandler, but
+  * has some extra methods required to get all the data out.
+  */
+class XMLPARSER_EXPORT XMLDocumentHandler
+{
+public:
+    // -----------------------------------------------------------------------
+    //  Constructors are hidden, just the virtual destructor is exposed
+    // -----------------------------------------------------------------------
+    /** @name Destructor */
+    //@{
+    virtual ~XMLDocumentHandler()
+    {
+    }
+    //@}
+
+    /** @name The document handler interface */
+    //@{
+    /** Receive notification of character data.
+      *
+      * <p>The scanner will call this method to report each chunk of
+      * character data. The scanner may return all contiguous character
+      * data in a single chunk, or they may split it into several
+      * chunks; however, all of the characters in any single event
+      * will come from the same external entity, so that the Locator
+      * provides useful information.</p>
+      *
+      * <p>The parser must not attempt to read from the array
+      * outside of the specified range.</p>
+      *
+      * @param  chars           The content (characters) between markup from the XML
+      *                         document.
+      * @param  length          The number of characters to read from the array.
+      * @param  cdataSection    Indicates that this data is inside a CDATA
+      *                         section.
+      * @see #ignorableWhitespace
+      * @see Locator
+      */
+    virtual void docCharacters
+    (
+        const   XMLCh* const    chars
+        , const unsigned int    length
+        , const bool            cdataSection
+    ) = 0;
+
+    /** Receive notification of comments in the XML content being parsed.
+      *
+      * This scanner will call this method for any comments found in the
+      * content of the document.
+      *
+      * @param comment The text of the comment.
+      */
+    virtual void docComment
+    (
+        const   XMLCh* const    comment
+    ) = 0;
+
+    /** Receive notification of PI's parsed in the XML content.
+      *
+      * The scanner will call this method for any PIs it finds within the
+      * content of the document.
+      *
+      * @param  target  The name of the PI.
+      * @param  data    The body of the PI. This may be an empty string since
+      *                 the body is optional.
+      */
+    virtual void docPI
+    (
+        const   XMLCh* const    target
+        , const XMLCh* const    data
+    ) = 0;
+
+    /** Receive notification after the scanner has parsed the end of the
+      * document.
+      *
+      * The scanner will call this method when the current document has been
+      * fully parsed. The handler may use this opportunity to do something with
+      * the data, clean up temporary data, etc...
+      */
+    virtual void endDocument() = 0;
+
+    /** Receive notification of the end of an element.
+      *
+      * This method is called when scanner encounters the end of element tag.
+      * There will be a corresponding startElement() event for every
+      * endElement() event, but not necessarily the other way around. For
+      * empty tags, there is only a startElement() call.
+      *
+      * @param  elemDecl The name of the element whose end tag was just
+      *                     parsed.
+      * @param  uriId       The ID of the URI in the URI pool (only valid if
+      *                     name spaces is enabled)
+      * @param  isRoot      Indicates if this is the root element.
+      * @param  prefixName  The string representing the prefix name
+      */
+    virtual void endElement
+    (
+        const   XMLElementDecl& elemDecl
+        , const unsigned int    uriId
+        , const bool            isRoot
+        , const XMLCh* const    prefixName = 0
+    ) = 0;
+
+    /** Receive notification when a referenced entity's content ends
+      *
+      * This method is called when scanner encounters the end of an entity
+      * reference.
+      *
+      * @param  entDecl  The name of the entity reference just scanned.
+      */
+    virtual void endEntityReference
+    (
+        const   XMLEntityDecl&  entDecl
+    ) = 0;
+
+    /** Receive notification of ignorable whitespace in element content.
+      *
+      * <p>Validating Parsers must use this method to report each chunk
+      * of ignorable whitespace (see the W3C XML 1.0 recommendation,
+      * section 2.10): non-validating parsers may also use this method
+      * if they are capable of parsing and using content models.</p>
+      *
+      * <p>The scanner may return all contiguous whitespace in a single
+      * chunk, or it may split it into several chunks; however, all of
+      * the characters in any single event will come from the same
+      * external entity, so that the Locator provides useful
+      * information.</p>
+      *
+      * <p>The parser must not attempt to read from the array
+      * outside of the specified range.</p>
+      *
+      * @param  chars       The whitespace characters from the XML document.
+      * @param  length      The number of characters to read from the array.
+      * @param  cdataSection Indicates that this data is inside a CDATA
+      *                     section.
+      * @see #characters
+      */
+    virtual void ignorableWhitespace
+    (
+        const   XMLCh* const    chars
+        , const unsigned int    length
+        , const bool            cdataSection
+    ) = 0;
+
+    /** Reset the document handler's state, if required
+      *
+      * This method is used to give the registered document handler a
+      * chance to reset itself. Its called by the scanner at the start of
+      * every parse.
+      */
+    virtual void resetDocument() = 0;
+
+    /** Receive notification of the start of a new document
+      *
+      * This method is the first callback called the scanner at the
+      * start of every parse. This is before any content is parsed.
+      */
+    virtual void startDocument() = 0;
+
+    /** Receive notification of a new start tag
+      *
+      * This method is called when scanner encounters the start of an element tag.
+      * All elements must always have a startElement() tag. Empty tags will
+      * only have the startElement() tag and no endElement() tag.
+      *
+      * @param  elemDecl The name of the element whose start tag was just
+      *                     parsed.
+      * @param  uriId       The ID of the URI in the URI pool (only valid if
+      *                     name spaces is enabled)
+      * @param  prefixName  The string representing the prefix name
+      * @param  attrList    List of attributes in the element
+      * @param  attrCount   Count of the attributes in the element
+      * @param  isEmpty     Indicates if the element is empty, in which case
+      *                     you should not expect an endElement() event.
+      * @param  isRoot      Indicates if this is the root element.
+      */
+    virtual void startElement
+    (
+        const   XMLElementDecl&         elemDecl
+        , const unsigned int            uriId
+        , const XMLCh* const            prefixName
+        , const RefVectorOf<XMLAttr>&   attrList
+        , const unsigned int            attrCount
+        , const bool                    isEmpty
+        , const bool                    isRoot
+    ) = 0;
+
+    /** Receive notification when the scanner hits an entity reference.
+      *
+      * This is currently useful only to DOM parser configurations as SAX
+      * does not provide any api to return this information.
+      *
+      * @param  entDecl  The name of the entity that was referenced.
+      */
+    virtual void startEntityReference(const XMLEntityDecl& entDecl) = 0;
+
+    /** Receive notification of an XML declaration
+      *
+      * Currently neither DOM nor SAX provide API's to return back this
+      * information.
+      *
+      * @param  versionStr      The value of the <code>version</code> pseudoattribute
+      *                         of the XML decl.
+      * @param  encodingStr     The value of the <code>encoding</code> pseudoattribute
+      *                         of the XML decl.
+      * @param  standaloneStr   The value of the <code>standalone</code>
+      *                         pseudoattribute of the XML decl.
+      * @param  autoEncodingStr The encoding string auto-detected by the
+      *                         scanner. In absence of any 'encoding' attribute in the
+      *                         XML decl, the XML standard specifies how a parser can
+      *                         auto-detect. If there is no <code>encodingStr</code>
+      *                         this is what will be used to try to decode the file.
+      */
+    virtual void XMLDecl
+    (
+        const   XMLCh* const    versionStr
+        , const XMLCh* const    encodingStr
+        , const XMLCh* const    standaloneStr
+        , const XMLCh* const    autoEncodingStr
+    ) = 0;
+
+    /** Receive notification of the name and namespace of the type that validated 
+      * the element corresponding to the most recent endElement event.
+      * This event will be fired immediately after the
+      * endElement() event that signifies the end of the element
+      * to which it applies; no other events will intervene.
+      * This method is <em>EXPERIMENTAL</em> and may change, disappear 
+      * or become pure virtual at any time.
+      *
+      * This corresponds to a part of the information required by DOM Core
+      * level 3's TypeInfo interface.
+      *
+      * @param  typeName        local name of the type that actually validated
+      *                         the content of the element corresponding to the
+      *                         most recent endElement() callback
+      * @param  typeURI         namespace of the type that actually validated
+      *                         the content of the element corresponding to the
+      *                         most recent endElement() callback
+      * @deprecated
+      */
+    virtual void elementTypeInfo
+    (
+        const   XMLCh* const /* typeName */
+        , const XMLCh* const /* typeURI */
+    ) { /* non pure virtual to permit backward compatibility of implementations.  */  };
+    //@}
+
+
+
+protected :
+    // -----------------------------------------------------------------------
+    //  Hidden Constructors
+    // -----------------------------------------------------------------------
+    XMLDocumentHandler()
+    {
+    }
+
+
+private:
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    XMLDocumentHandler(const XMLDocumentHandler&);
+    XMLDocumentHandler& operator=(const XMLDocumentHandler&);
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/ValidationContext.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/ValidationContext.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/ValidationContext.hpp	(revision 2674)
@@ -0,0 +1,133 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: ValidationContext.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(VALIDATION_CONTEXT_HPP)
+#define VALIDATION_CONTEXT_HPP
+
+#include <xercesc/util/PlatformUtils.hpp>
+#include <xercesc/util/RefHashTableOf.hpp>
+#include <xercesc/util/NameIdPool.hpp>
+#include <xercesc/util/XMemory.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class XMLRefInfo;
+class DTDEntityDecl;
+class DatatypeValidator;
+class ElemStack;
+
+class XMLPARSER_EXPORT ValidationContext : public XMemory
+{
+public :
+    // -----------------------------------------------------------------------
+    /** @name Virtual destructor for derived classes */
+    // -----------------------------------------------------------------------
+    //@{
+
+    /**
+      * virtual destructor
+      *
+      */
+    virtual ~ValidationContext(){};
+    //@}
+
+    // -----------------------------------------------------------------------
+    /** @name The ValidationContext Interface */
+    // -----------------------------------------------------------------------
+    //@{
+
+    /**
+      * IDRefList
+      *
+      */
+    virtual RefHashTableOf<XMLRefInfo>*  getIdRefList() const = 0;
+
+    virtual void                         setIdRefList(RefHashTableOf<XMLRefInfo>* const) = 0;
+
+    virtual void                         clearIdRefList() = 0;
+
+    virtual void                         addId(const XMLCh * const ) = 0;
+
+    virtual void                         addIdRef(const XMLCh * const ) = 0;
+
+    virtual void                         toCheckIdRefList(bool) = 0;
+
+    /**
+      * EntityDeclPool
+      *
+      */
+    virtual const NameIdPool<DTDEntityDecl>* getEntityDeclPool() const = 0;
+
+    virtual const NameIdPool<DTDEntityDecl>* setEntityDeclPool(const NameIdPool<DTDEntityDecl>* const) = 0;    
+           
+    virtual void                             checkEntity(const XMLCh * const ) const = 0 ;
+
+    /**
+      * Union datatype handling
+      *
+      */
+
+    virtual DatatypeValidator * getValidatingMemberType() const = 0 ;
+    virtual void setValidatingMemberType(DatatypeValidator * validatingMemberType) = 0 ;
+
+    /**
+      * QName datatype handling
+      * Create default implementations for source code compatibility
+      */
+    virtual bool isPrefixUnknown(XMLCh* /* prefix */) { return true; };
+    virtual void setElemStack(ElemStack* /* elemStack */) {};
+    //@}
+
+   
+protected :
+    // -----------------------------------------------------------------------
+    /**  Hidden Constructors */
+    // -----------------------------------------------------------------------
+    //@{
+    ValidationContext(MemoryManager* const memMgr = XMLPlatformUtils::fgMemoryManager)
+    :fMemoryManager(memMgr)
+    {
+    };
+    //@}
+
+    // -----------------------------------------------------------------------
+    //  Data members
+    //
+    //  fMemoryManager
+    //      Pluggable memory manager for dynamic allocation/deallocation.
+    // -----------------------------------------------------------------------
+    MemoryManager*                    fMemoryManager;
+
+private :
+    // -----------------------------------------------------------------------
+    /** name  Unimplemented copy constructor and operator= */
+    // -----------------------------------------------------------------------
+    //@{
+    ValidationContext(const ValidationContext& );
+    ValidationContext& operator=(const ValidationContext& );
+    //@}
+
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
+
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/URLInputSource.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/URLInputSource.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/URLInputSource.hpp	(revision 2674)
@@ -0,0 +1,238 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: URLInputSource.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+
+#if !defined(URLINPUTSOURCE_HPP)
+#define URLINPUTSOURCE_HPP
+
+#include <xercesc/util/XMLURL.hpp>
+#include <xercesc/sax/InputSource.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class BinInputStream;
+
+/**
+ *  This class is a derivative of the standard InputSource class. It provides
+ *  for the parser access to data which is referenced via a URL, as apposed to
+ *  a local file name. The URL can be provided via an XMLURL class, as a fully
+ *  qualified system id, or a base system id and a system id which may be
+ *  fully qualified or may be relative to the base.
+ *
+ *  As with all InputSource derivatives. The primary objective of an input
+ *  source is to create an input stream via which the parser can spool in
+ *  data from the referenced source.
+ *
+ *  Note that the parse system does not necessarily support URL based XML
+ *  entities out of the box. Support for socket based access is optional and
+ *  controlled by the per-platform support.
+ */
+class XMLPARSER_EXPORT URLInputSource : public InputSource
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+
+    /** @name Constructors */
+    //@{
+
+    /**
+      * This constructor accepts an already built URL. It is assumed that
+      * it is correct and it will be used as is. In this case, no public id
+      * accepted, but it can still be set via the parent class' setPublicId()
+      * method.
+      *
+      * @param  urlId   The URL which holds the system id of the entity
+      *                 to parse.
+      * @param  manager Pointer to the memory manager to be used to
+      *                 allocate objects.
+      */
+    URLInputSource
+    (
+        const XMLURL& urlId
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+
+    /**
+     *  This constructor takes a base system id URL and a possibly relative
+     *  system id. The relative part is parsed and, if it is indeed relative,
+     *  it will be made relative to the passed base id. Otherwise, it will be
+     *  taken as is.
+     *
+     *  @param  baseId      The base system id URL which provides the base
+     *                      for any relative id part.
+     *
+     *  @param  systemId    The possibly relative system id URL. If its relative
+     *                      its based on baseId, else its taken as is.
+     *  @param  manager     Pointer to the memory manager to be used to
+     *                      allocate objects.
+     */
+    URLInputSource
+    (
+        const   XMLCh* const    baseId
+        , const XMLCh* const    systemId
+        , MemoryManager* const  manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    /**
+     *  This constructor is indentical to the previous one, except that it also
+     *  allows you to set a public id if you want to.
+     *
+     *  @param  baseId      The base system id URL which provides the base
+     *                      for any relative id part.
+     *
+     *  @param  systemId    The possibly relative system id URL. If its relative
+     *                      its based on baseId, else its taken as is.
+     *
+     *  @param  publicId    The optional public id to set. This is just passed
+     *                      on to the parent class for storage.
+     *
+     * @param  manager      Pointer to the memory manager to be used to
+     *                      allocate objects.
+     */
+    URLInputSource
+    (
+        const   XMLCh* const    baseId
+        , const XMLCh* const    systemId
+        , const XMLCh* const    publicId
+        , MemoryManager* const  manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+
+    /**
+     *  This constructor is identical to the second constructor above, except that
+     *  it accepts the relative system id part as a local code page string and
+     *  just transcodes it internally, as a convenience.
+     *
+     *  @param  baseId      The base system id URL which provides the base
+     *                      for any relative id part.
+     *
+     *  @param  systemId    The possibly relative system id URL. If its relative
+     *                      its based on baseId, else its taken as is.
+     *
+     *  @param  manager     Pointer to the memory manager to be used to
+     *                      allocate objects.
+     */
+    URLInputSource
+    (
+        const   XMLCh* const    baseId
+        , const char* const     systemId
+        , MemoryManager* const  manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    /**
+     *  This constructor is identical to the third constructor above, except that
+     *  it accepts the relative and public ids as local code page strings and just
+     *  transcodes them internally, as a convenience.
+     *
+     *  @param  baseId      The base system id URL which provides the base
+     *                      for any relative id part.
+     *
+     *  @param  systemId    The possibly relative system id URL. If its relative
+     *                      its based on baseId, else its taken as is.
+     *
+     *  @param  publicId    The optional public id to set. This is just passed
+     *                      on to the parent class for storage.
+     *                      on to the parent class for storage.
+     *
+     *  @param  manager     Pointer to the memory manager to be used to
+     *                      allocate objects.
+     */
+    URLInputSource
+    (
+        const   XMLCh* const    baseId
+        , const char* const     systemId
+        , const char* const     publicId
+        , MemoryManager* const  manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    //@}
+
+    /** @name Destructor */
+    //@{
+    ~URLInputSource();
+    //@}
+
+
+    // -----------------------------------------------------------------------
+    //  Virtual input source interface
+    // -----------------------------------------------------------------------
+
+    /** @name Virtual methods */
+    //@{
+
+    /**
+     * This method will return a binary input stream derivative that will
+     * parse from the source refered to by the URL system id.
+     */
+    BinInputStream* makeStream() const;
+
+    //@}
+
+
+    // -----------------------------------------------------------------------
+    //  Getter methods
+    // -----------------------------------------------------------------------
+
+    /** @name Getter methods */
+    //@{
+
+    /**
+      * This method will return a const reference to the URL member which
+      * contains the system id in pre-parsed URL form. If you just want the
+      * string format, call getSystemId() on the parent class.
+      *
+      * @return A const reference to a URL object that contains the current
+      *         system id set for this input source.
+      */
+    const XMLURL& urlSrc() const;
+
+    //@}
+
+
+private :
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------    
+    URLInputSource(const URLInputSource&);
+    URLInputSource& operator=(const URLInputSource&);
+
+    // -----------------------------------------------------------------------
+    //  Private data members
+    //
+    //  fURL
+    //      This is the URL created from the passed ids.
+    // -----------------------------------------------------------------------
+    XMLURL fURL;
+};
+
+
+inline const XMLURL& URLInputSource::urlSrc() const
+{
+    return fURL;
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/XMLNotationDecl.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/XMLNotationDecl.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/XMLNotationDecl.hpp	(revision 2674)
@@ -0,0 +1,231 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: XMLNotationDecl.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(XMLNOTATIONDECL_HPP)
+#define XMLNOTATIONDECL_HPP
+
+#include <xercesc/util/XMemory.hpp>
+#include <xercesc/util/PlatformUtils.hpp>
+#include <xercesc/util/XMLString.hpp>
+#include <xercesc/internal/XSerializable.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+/**
+ *  This class represents the core information about a notation declaration
+ *  that all validators must at least support. Each validator will create a
+ *  derivative of this class which adds any information it requires for its
+ *  own extra needs.
+ *
+ *  At this common level, the information supported is the notation name
+ *  and the public and sysetm ids indicated in the notation declaration.
+ */
+class XMLPARSER_EXPORT XMLNotationDecl : public XSerializable, public XMemory
+{
+public:
+    // -----------------------------------------------------------------------
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+
+    /** @name Constructors */
+    //@{
+    XMLNotationDecl(MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+    XMLNotationDecl
+    (
+        const   XMLCh* const    notName
+        , const XMLCh* const    pubId
+        , const XMLCh* const    sysId
+        , const XMLCh* const    baseURI = 0
+        , MemoryManager* const  manager = XMLPlatformUtils::fgMemoryManager
+    );
+    //@}
+
+    /** @name Destructor */
+    //@{
+    ~XMLNotationDecl();
+    //@}
+
+
+    // -----------------------------------------------------------------------
+    //  Getter methods
+    // -----------------------------------------------------------------------
+    unsigned int getId() const;
+    const XMLCh* getName() const;
+    const XMLCh* getPublicId() const;
+    const XMLCh* getSystemId() const;
+    const XMLCh* getBaseURI() const;
+    unsigned int getNameSpaceId() const;
+    MemoryManager* getMemoryManager() const;
+
+
+    // -----------------------------------------------------------------------
+    //  Setter methods
+    // -----------------------------------------------------------------------
+    void setId(const unsigned int newId);
+    void setName
+    (
+        const   XMLCh* const    notName
+    );
+    void setPublicId(const XMLCh* const newId);
+    void setSystemId(const XMLCh* const newId);
+    void setBaseURI(const XMLCh* const newId);
+    void setNameSpaceId(const unsigned int newId);
+
+    // -----------------------------------------------------------------------
+    //  Support named collection element semantics
+    // -----------------------------------------------------------------------
+    const XMLCh* getKey() const;
+
+    /***
+     * Support for Serialization/De-serialization
+     ***/
+    DECL_XSERIALIZABLE(XMLNotationDecl)
+
+private :
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    XMLNotationDecl(const XMLNotationDecl&);
+    XMLNotationDecl& operator=(const XMLNotationDecl&);
+
+
+    // -----------------------------------------------------------------------
+    //  XMLNotationDecl: Private helper methods
+    // -----------------------------------------------------------------------
+    void cleanUp();
+
+
+    // -----------------------------------------------------------------------
+    //  Private data members
+    //
+    //  fId
+    //      This is the unique id given to this notation decl.
+    //
+    //  fName
+    //      The notation's name, which identifies the type of notation it
+    //      applies to.
+    //
+    //  fPublicId
+    //      The text of the notation's public id, if any.
+    //
+    //  fSystemId
+    //      The text of the notation's system id, if any.
+    //
+    //  fBaseURI
+    //      The text of the notation's base URI
+    // -----------------------------------------------------------------------
+    unsigned int    fId;
+    unsigned int    fNameSpaceId;
+	XMLCh*          fName;
+    XMLCh*          fPublicId;
+    XMLCh*          fSystemId;
+    XMLCh*          fBaseURI;
+    MemoryManager*  fMemoryManager;
+};
+
+
+// -----------------------------------------------------------------------
+//  Getter methods
+// -----------------------------------------------------------------------
+inline unsigned int XMLNotationDecl::getId() const
+{
+    return fId;
+}
+
+inline const XMLCh* XMLNotationDecl::getName() const
+{
+    return fName;
+}
+
+inline unsigned int XMLNotationDecl::getNameSpaceId() const
+{
+    return fNameSpaceId;
+}
+
+inline const XMLCh* XMLNotationDecl::getPublicId() const
+{
+    return fPublicId;
+}
+
+inline const XMLCh* XMLNotationDecl::getSystemId() const
+{
+    return fSystemId;
+}
+
+inline const XMLCh* XMLNotationDecl::getBaseURI() const
+{
+    return fBaseURI;
+}
+
+inline MemoryManager* XMLNotationDecl::getMemoryManager() const
+{
+    return fMemoryManager;
+}
+
+// -----------------------------------------------------------------------
+//  Setter methods
+// -----------------------------------------------------------------------
+inline void XMLNotationDecl::setId(const unsigned int newId)
+{
+    fId = newId;
+}
+
+inline void XMLNotationDecl::setNameSpaceId(const unsigned int newId)
+{
+    fNameSpaceId = newId;
+}
+
+inline void XMLNotationDecl::setPublicId(const XMLCh* const newId)
+{
+    if (fPublicId)
+        fMemoryManager->deallocate(fPublicId);
+
+    fPublicId = XMLString::replicate(newId, fMemoryManager);
+}
+
+inline void XMLNotationDecl::setSystemId(const XMLCh* const newId)
+{
+    if (fSystemId)
+        fMemoryManager->deallocate(fSystemId);
+
+    fSystemId = XMLString::replicate(newId, fMemoryManager);
+}
+
+inline void XMLNotationDecl::setBaseURI(const XMLCh* const newId)
+{
+    if (fBaseURI)
+        fMemoryManager->deallocate(fBaseURI);
+
+    fBaseURI = XMLString::replicate(newId, fMemoryManager);
+}
+
+
+// ---------------------------------------------------------------------------
+//  XMLNotationDecl: Support named pool element semantics
+// ---------------------------------------------------------------------------
+inline const XMLCh* XMLNotationDecl::getKey() const
+{
+    return fName;
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/Wrapper4DOMInputSource.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/Wrapper4DOMInputSource.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/Wrapper4DOMInputSource.hpp	(revision 2674)
@@ -0,0 +1,236 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: Wrapper4DOMInputSource.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+#ifndef WRAPPER4DOMINPUTSOURCE_HPP
+#define WRAPPER4DOMINPUTSOURCE_HPP
+
+#include <xercesc/sax/InputSource.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class DOMInputSource;
+
+
+/**
+  * Wrap a DOMInputSource object to a SAX InputSource.
+  */
+class XMLPARSER_EXPORT Wrapper4DOMInputSource: public InputSource
+{
+public:
+    /** @name Constructors and Destructor */
+    //@{
+
+  /**
+    * Constructor
+    *
+    * Wrap a DOMInputSource and pretend it to be a SAX InputSource.
+    * By default, the wrapper will adopt the DOMInputSource that is wrapped.
+    *
+    * @param  inputSource  The DOMInputSource to be wrapped
+    * @param  adoptFlag    Indicates if the wrapper should adopt the wrapped
+    *                      DOMInputSource. Default is true.
+    * @param  manager      Pointer to the memory manager to be used to
+    *                      allocate objects.
+    */
+    Wrapper4DOMInputSource
+    (
+        DOMInputSource* const inputSource
+        , const bool adoptFlag = true
+        , MemoryManager* const  manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+  /**
+    * Destructor
+    *
+    */
+    virtual ~Wrapper4DOMInputSource();
+    //@}
+
+
+    // -----------------------------------------------------------------------
+    /** @name Virtual input source interface */
+    //@{
+  /**
+    * <p><b>"Experimental - subject to change"</b></p>
+    *
+    * Makes the byte stream for this input source.
+    *
+    * <p>The function will call the makeStream of the wrapped input source.
+    * The returned stream becomes the parser's property.</p>
+    *
+    * @see BinInputStream
+    */
+    BinInputStream* makeStream() const;
+
+    //@}
+
+    // -----------------------------------------------------------------------
+    /** @name Getter methods */
+    //@{
+  /**
+    * <p><b>"Experimental - subject to change"</b></p>
+    *
+    * An input source can be set to force the parser to assume a particular
+    * encoding for the data that input source reprsents, via the setEncoding()
+    * method. This method will delegate to the wrapped input source to return
+    * name of the encoding that is to be forced. If the encoding has never
+    * been forced, it returns a null pointer.
+    *
+    * @return The forced encoding, or null if none was supplied.
+    * @see #setEncoding
+    */
+    const XMLCh* getEncoding() const;
+
+
+  /**
+    * <p><b>"Experimental - subject to change"</b></p>
+    *
+    * Get the public identifier for this input source. Delegated to the
+    * wrapped input source object.
+    *
+    * @return The public identifier, or null if none was supplied.
+    * @see #setPublicId
+    */
+    const XMLCh* getPublicId() const;
+
+
+  /**
+    * <p><b>"Experimental - subject to change"</b></p>
+    *
+    * Get the system identifier for this input source. Delegated to the
+    * wrapped input source object.
+    *
+    * <p>If the system ID is a URL, it will be fully resolved.</p>
+    *
+    * @return The system identifier.
+    * @see #setSystemId
+    */
+    const XMLCh* getSystemId() const;
+
+ /**
+    * <p><b>"Experimental - subject to change"</b></p>
+    *
+    * Get the flag that indicates if the parser should issue fatal error if
+    * this input source is not found. Delegated to the wrapped input source
+    * object.
+    *
+    * @return True  if the parser should issue fatal error if this input source
+    *               is not found.
+    *         False if the parser issue warning message instead.
+    * @see #setIssueFatalErrorIfNotFound
+    */
+    bool getIssueFatalErrorIfNotFound() const;
+
+    //@}
+
+
+    // -----------------------------------------------------------------------
+    /** @name Setter methods */
+    //@{
+
+  /**
+    * <p><b>"Experimental - subject to change"</b></p>
+    *
+    * Set the encoding which will be required for use with the XML text read
+    * via a stream opened by this input source. This will update the wrapped
+    * input source object.
+    *
+    * <p>This is usually not set, allowing the encoding to be sensed in the
+    * usual XML way. However, in some cases, the encoding in the file is known
+    * to be incorrect because of intermediate transcoding, for instance
+    * encapsulation within a MIME document.
+    *
+    * @param encodingStr The name of the encoding to force.
+    */
+    void setEncoding(const XMLCh* const encodingStr);
+
+
+  /**
+    * <p><b>"Experimental - subject to change"</b></p>
+    *
+    * Set the public identifier for this input source. This will update the
+    * wrapped input source object.
+    *
+    * <p>The public identifier is always optional: if the application writer
+    * includes one, it will be provided as part of the location information.</p>
+    *
+    * @param publicId The public identifier as a string.
+    * @see Locator#getPublicId
+    * @see SAXParseException#getPublicId
+    * @see #getPublicId
+    */
+    void setPublicId(const XMLCh* const publicId);
+
+  /**
+    * <p><b>"Experimental - subject to change"</b></p>
+    *
+    * Set the system identifier for this input source. This will update the
+    * wrapped input source object.
+    *
+    * <p>The system id is always required. The public id may be used to map
+    * to another system id, but the system id must always be present as a fall
+    * back.</p>
+    *
+    * <p>If the system ID is a URL, it must be fully resolved.</p>
+    *
+    * @param systemId The system identifier as a string.
+    * @see #getSystemId
+    * @see Locator#getSystemId
+    * @see SAXParseException#getSystemId
+    */
+    void setSystemId(const XMLCh* const systemId);
+
+  /**
+    * <p><b>"Experimental - subject to change"</b></p>
+    *
+    * Indicates if the parser should issue fatal error if this input source
+    * is not found.  If set to false, the parser issue warning message instead.
+    * This will update the wrapped input source object.
+    *
+    * @param  flag True if the parser should issue fatal error if this input source is not found.
+    *               If set to false, the parser issue warning message instead.  (Default: true)
+    *
+    * @see #getIssueFatalErrorIfNotFound
+    */
+    void setIssueFatalErrorIfNotFound(const bool flag);
+
+    //@}
+
+
+private:
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    Wrapper4DOMInputSource(const Wrapper4DOMInputSource&);
+    Wrapper4DOMInputSource& operator=(const Wrapper4DOMInputSource&);
+
+    // -----------------------------------------------------------------------
+    //  Private data members
+    // -----------------------------------------------------------------------
+    bool            fAdoptInputSource;
+    DOMInputSource* fInputSource;
+};
+
+XERCES_CPP_NAMESPACE_END
+
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/XMLValidator.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/XMLValidator.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/XMLValidator.hpp	(revision 2674)
@@ -0,0 +1,443 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+ /*
+ * $Id: XMLValidator.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+#if !defined(XMLVALIDATOR_HPP)
+#define XMLVALIDATOR_HPP
+
+#include <xercesc/framework/XMLAttr.hpp>
+#include <xercesc/framework/XMLValidityCodes.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class ReaderMgr;
+class XMLBufferMgr;
+class XMLElementDecl;
+class XMLScanner;
+class Grammar;
+
+
+/**
+ *  This abstract class provides the interface for all validators. This is
+ *  the simple amount of API that all validators must honor, in order for
+ *  the scanner to use them to do validation. All validators will actually
+ *  contain much more functionality than is accessible via this common API,
+ *  but that functionality requires that you know what type of validator you
+ *  are dealing with.
+ *
+ *  Basically, at this level, the primary concern is to be able to query
+ *  core information about elements and attributes. Adding decls to the
+ *  validator requires that you go through the derived interface because they
+ *  all have their own decl types. At this level, we can return information
+ *  via the base decl classes, from which each validator derives its own
+ *  decl classes.
+ */
+class XMLPARSER_EXPORT XMLValidator : public XMemory
+{
+public:
+    // -----------------------------------------------------------------------
+    //  Constructors are hidden, just the virtual destructor is exposed
+    // -----------------------------------------------------------------------
+
+    /** @name Destructor */
+    //@{
+
+    /**
+     *  The derived class should clean up its allocated data, then this class
+     *  will do the same for data allocated at this level.
+     */
+    virtual ~XMLValidator()
+    {
+    }
+    //@}
+
+
+    // -----------------------------------------------------------------------
+    //  The virtual validator interface
+    // -----------------------------------------------------------------------
+
+    /** @name Virtual validator interface */
+    //@{
+
+    /**
+      * The derived class should look up its declaration of the passed element
+      * from its element pool. It should then use the content model description
+      * contained in that element declaration to validate that the passed list
+      * of child elements are valid for that content model. The count can be
+      * zero, indicating no child elements.
+      *
+      * Note that whitespace and text content are not validated here. Those are
+      * handled by the scanner. So only element ids are provided here.
+      *
+      * @param  elemDecl    The element whose content is to be checked.
+      *
+      * @param  children    An array of element QName which represent the elements
+      *                     found within the parent element, i.e. the content
+      *                     to be validated.
+      *
+      * @param  childCount  The number of elements in the childIds array. It can
+      *                     be zero if the element had none.
+      */
+    virtual int checkContent
+    (
+        XMLElementDecl* const   elemDecl
+        , QName** const         children
+        , const unsigned int    childCount
+    ) = 0;
+
+    /**
+      * The derived class should fault in the passed XMLAttr value. It should
+      * use the passeed attribute definition (which is passed via the base
+      * type so it must often be downcast to the appropriate type for the
+      * derived validator class), to fill in the passed attribute. This is done
+      * as a performance enhancement since the derived class has more direct
+      * access to the information.
+      */
+    virtual void faultInAttr
+    (
+                XMLAttr&    toFill
+        , const XMLAttDef&  attDef
+    )   const = 0;
+
+    /**
+      * This method is called by the scanner after a Grammar is scanned.
+      */
+    virtual void preContentValidation(bool reuseGrammar,
+                                      bool validateDefAttr = false) = 0;
+
+    /**
+      * This method is called by the scanner after the parse has completed. It
+      * gives the validator a chance to check certain things that can only be
+      * checked after the whole document has been parsed, such as referential
+      * integrity of ID/IDREF pairs and so forth. The validator should just
+      * issue errors for any problems it finds.
+      */
+    virtual void postParseValidation() = 0;
+
+    /**
+      * This method is called by the scanner before a new document is about
+      * to start. It gives the validator a change to reset itself in preperation
+      * for another validation pass.
+      */
+    virtual void reset() = 0;
+
+    /**
+      * The derived class should return a boolean that indicates whether it
+      * requires namespace processing or not. Some do and some allow it to be
+      * optional. This flag is used to control whether the client code's
+      * requests to disable namespace processing can be honored or not.
+      */
+    virtual bool requiresNamespaces() const = 0;
+
+    /**
+      * The derived class should apply any rules to the passed attribute value
+      * that are above and beyond those defined by XML 1.0. The scanner itself
+      * will impose XML 1.0 rules, based on the type of the attribute. This
+      * will generally be used to check things such as range checks and other
+      * datatype related validation.
+      *
+      * If the value breaks any rules as defined by the derived class, it
+      * should just issue errors as usual.
+      */
+    virtual void validateAttrValue
+    (
+        const   XMLAttDef*                  attDef
+        , const XMLCh* const                attrValue
+        , bool                              preValidation = false
+        , const XMLElementDecl*             elemDecl = 0
+    ) = 0;
+
+    /**
+      * The derived class should apply any rules to the passed element decl
+      * that are above and beyond those defined by XML 1.0.
+      *
+      * If the value breaks any rules as defined by the derived class, it
+      * should just issue errors as usual.
+      */
+    virtual void validateElement
+    (
+        const   XMLElementDecl*             elemDef
+    ) = 0;
+
+    /**
+      * Retrieve the Grammar used
+      */
+    virtual Grammar* getGrammar() const =0;
+
+    /**
+      * Set the Grammar
+      */
+    virtual void setGrammar(Grammar* aGrammar) =0;
+
+
+    //@}
+
+    // -----------------------------------------------------------------------
+    //  Virtual DTD handler interface.
+    // -----------------------------------------------------------------------
+
+    /** @name Virtual DTD handler interface */
+    //@{
+
+    /**
+      * This method allows the scanner to ask the validator if it handles
+      * DTDs or not.
+      */
+    virtual bool handlesDTD() const = 0;
+
+    // -----------------------------------------------------------------------
+    //  Virtual Schema handler interface.
+    // -----------------------------------------------------------------------
+
+    /** @name Virtual Schema handler interface */
+
+    /**
+      * This method allows the scanner to ask the validator if it handles
+      * Schema or not.
+      */
+    virtual bool handlesSchema() const = 0;
+
+    //@}
+
+    // -----------------------------------------------------------------------
+    //  Setter methods
+    //
+    //  setScannerInfo() is called by the scanner to tell the validator
+    //  about the stuff it needs to have access to.
+    // -----------------------------------------------------------------------
+
+    /** @name Setter methods */
+    //@{
+
+    /**
+      * @param  owningScanner   This is a pointer to the scanner to which the
+      *                         validator belongs. The validator will often
+      *                         need to query state data from the scanner.
+      *
+      * @param  readerMgr       This is a pointer to the reader manager that is
+      *                         being used by the scanner.
+      *
+      * @param  bufMgr          This is the buffer manager of the scanner. This
+      *                         is provided as a convenience so that the validator
+      *                         doesn't have to create its own buffer manager
+      *                         during the parse process.
+      */
+    void setScannerInfo
+    (
+        XMLScanner* const           owningScanner
+        , ReaderMgr* const          readerMgr
+        , XMLBufferMgr* const       bufMgr
+    );
+
+    /**
+      * This method is called to set an error reporter on the validator via
+      * which it will report any errors it sees during parsing or validation.
+      * This is generally called by the owning scanner.
+      *
+      * @param  errorReporter   A pointer to the error reporter to use. This
+      *                         is not adopted, just referenced so the caller
+      *                         remains responsible for its cleanup, if any.
+      */
+    void setErrorReporter
+    (
+        XMLErrorReporter* const errorReporter
+    );
+
+    //@}
+
+
+    // -----------------------------------------------------------------------
+    //  Error emitter methods
+    // -----------------------------------------------------------------------
+
+    /** @name Error emittor methods */
+    //@{
+
+    /**
+     *  This call is a convenience by which validators can emit errors. Most
+     *  of the grunt work of loading the text, getting the current source
+     *  location, ect... is handled here.
+     *
+     *  If the loaded text has replacement parameters, then text strings can be
+     *  passed. These will be used to replace the tokens {0}, {1}, {2}, and {3}
+     *  in the order passed. So text1 will replace {0}, text2 will replace {1},
+     *  and so forth.
+     *
+     *  textX   Up to four replacement parameters. They can be provided
+     *          as either XMLCh strings, or local code page strings which
+     *          will be transcoded internally.
+     *
+     *  @param toEmit   The error code to emit. it must be one of the defined
+     *                  validator error codes.
+     *
+     */
+    void emitError(const XMLValid::Codes toEmit);
+    void emitError
+    (
+        const   XMLValid::Codes toEmit
+        , const XMLCh* const    text1
+        , const XMLCh* const    text2 = 0
+        , const XMLCh* const    text3 = 0
+        , const XMLCh* const    text4 = 0
+    );
+    void emitError
+    (
+        const   XMLValid::Codes toEmit
+        , const char* const     text1
+        , const char* const     text2 = 0
+        , const char* const     text3 = 0
+        , const char* const     text4 = 0
+    );    
+    void emitError
+    (
+        const   XMLValid::Codes toEmit
+        , const XMLExcepts::Codes   originalErrorCode
+        , const XMLCh* const        text1 = 0
+        , const XMLCh* const        text2 = 0
+        , const XMLCh* const        text3 = 0
+        , const XMLCh* const        text4 = 0
+        
+    );
+
+    //@}
+
+    // -----------------------------------------------------------------------
+    //  Deprecated XMLValidator interface
+    // -----------------------------------------------------------------------
+    /**
+      *
+      * DEPRECATED.
+      * For those validators that contrain the possible root elements of a
+      * document to only particular elements, they should use this call to
+      * validate that the passed root element id is a legal root element.
+      */
+    bool checkRootElement
+    (
+        const   unsigned int
+    ) { return true;};
+
+    // -----------------------------------------------------------------------
+    //  Notification that lazy data has been deleted
+    // -----------------------------------------------------------------------
+	static void reinitMsgMutex();
+
+	static void reinitMsgLoader();
+
+protected :
+    // -----------------------------------------------------------------------
+    //  Hidden constructors
+    // -----------------------------------------------------------------------
+    XMLValidator
+    (
+        XMLErrorReporter* const errReporter = 0
+    );
+
+
+    // -----------------------------------------------------------------------
+    //  Protected getters
+    // -----------------------------------------------------------------------
+    const XMLBufferMgr* getBufMgr() const;
+    XMLBufferMgr* getBufMgr();
+    const ReaderMgr* getReaderMgr() const;
+    ReaderMgr* getReaderMgr();
+    const XMLScanner* getScanner() const;
+    XMLScanner* getScanner();
+
+
+private :
+    // -----------------------------------------------------------------------
+    //  Unimplemented Constructors and Operators
+    // -----------------------------------------------------------------------
+    XMLValidator(const XMLValidator&);
+    XMLValidator& operator=(const XMLValidator&);
+
+
+    // -----------------------------------------------------------------------
+    //  Private data members
+    //
+    //  fErrorReporter
+    //      The error reporter we are to use, if any.
+    //
+    // -----------------------------------------------------------------------
+    XMLBufferMgr*       fBufMgr;
+    XMLErrorReporter*   fErrorReporter;
+    ReaderMgr*          fReaderMgr;
+    XMLScanner*         fScanner;
+};
+
+
+// -----------------------------------------------------------------------
+//  Setter methods
+// -----------------------------------------------------------------------
+inline void
+XMLValidator::setScannerInfo(XMLScanner* const      owningScanner
+                            , ReaderMgr* const      readerMgr
+                            , XMLBufferMgr* const   bufMgr)
+{
+    // We don't own any of these, we just reference them
+    fScanner = owningScanner;
+    fReaderMgr = readerMgr;
+    fBufMgr = bufMgr;
+}
+
+inline void
+XMLValidator::setErrorReporter(XMLErrorReporter* const errorReporter)
+{
+    fErrorReporter = errorReporter;
+}
+
+
+// ---------------------------------------------------------------------------
+//  XMLValidator: Protected getter
+// ---------------------------------------------------------------------------
+inline const XMLBufferMgr* XMLValidator::getBufMgr() const
+{
+    return fBufMgr;
+}
+
+inline XMLBufferMgr* XMLValidator::getBufMgr()
+{
+    return fBufMgr;
+}
+
+inline const ReaderMgr* XMLValidator::getReaderMgr() const
+{
+    return fReaderMgr;
+}
+
+inline ReaderMgr* XMLValidator::getReaderMgr()
+{
+    return fReaderMgr;
+}
+
+inline const XMLScanner* XMLValidator::getScanner() const
+{
+    return fScanner;
+}
+
+inline XMLScanner* XMLValidator::getScanner()
+{
+    return fScanner;
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/XMLRefInfo.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/XMLRefInfo.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/XMLRefInfo.hpp	(revision 2674)
@@ -0,0 +1,182 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: XMLRefInfo.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+#if !defined(XMLIDREFINFO_HPP)
+#define XMLIDREFINFO_HPP
+
+#include <xercesc/util/XMemory.hpp>
+#include <xercesc/util/PlatformUtils.hpp>
+#include <xercesc/util/XMLString.hpp>
+
+#include <xercesc/internal/XSerializable.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+/**
+ *  This class provides a simple means to track ID Ref usage. Since id/idref
+ *  semamatics are part of XML 1.0, any validator will likely to be able to
+ *  track them. Instances of this class represent a reference and two markers,
+ *  one for its being declared and another for its being used. When the
+ *  document is done, one can look at each instance and, if used but not
+ *  declared, its an error.
+ *
+ *  The getKey() method allows it to support keyed collection semantics. It
+ *  returns the referenced name, so these objects will be stored via the hash
+ *  of the name. This name will either be a standard QName if namespaces are
+ *  not enabled/supported by the validator, or it will be in the form
+ *  {url}name if namespace processing is enabled.
+ */
+class XMLPARSER_EXPORT XMLRefInfo : public XSerializable, public XMemory
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+
+    /** @name Constructor */
+    //@{
+    XMLRefInfo
+    (
+        const   XMLCh* const   refName
+        , const bool           fDeclared = false
+        , const bool           fUsed = false
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+    //@}
+
+    /** @name Destructor */
+    //@{
+    ~XMLRefInfo();
+    //@}
+
+
+    // -----------------------------------------------------------------------
+    //  Getter methods
+    // -----------------------------------------------------------------------
+    bool getDeclared() const;
+    const XMLCh* getRefName() const;
+    bool getUsed() const;
+
+
+    // -----------------------------------------------------------------------
+    //  Setter methods
+    // -----------------------------------------------------------------------
+    void setDeclared(const bool newValue);
+    void setUsed(const bool newValue);
+
+    /***
+     * Support for Serialization/De-serialization
+     ***/
+    DECL_XSERIALIZABLE(XMLRefInfo)
+
+    XMLRefInfo
+    (
+      MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+private :
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    XMLRefInfo(const XMLRefInfo&);
+    XMLRefInfo& operator=(XMLRefInfo&);
+
+
+    // -----------------------------------------------------------------------
+    //  Private data members
+    //
+    //  fDeclared
+    //      The name was declared somewhere as an ID attribute.
+    //
+    //  fRefName
+    //      The name of the ref that this object represents. This is not a
+    //      name of the attribute, but of the value of an ID or IDREF attr
+    //      in content.
+    //
+    //  fUsed
+    //      The name was used somewhere in an IDREF/IDREFS attribute. If this
+    //      is true, but fDeclared is false, then the ref does not refer to
+    //      a declared ID.
+    // -----------------------------------------------------------------------
+    bool        fDeclared;
+    bool        fUsed;
+    XMLCh*      fRefName;
+    MemoryManager* fMemoryManager;
+};
+
+
+// ---------------------------------------------------------------------------
+//  XMLRefInfo: Constructors and Destructor
+// ---------------------------------------------------------------------------
+inline XMLRefInfo::XMLRefInfo( const XMLCh* const   refName
+                             , const bool           declared
+                             , const bool           used
+                             , MemoryManager* const manager) :
+    fDeclared(declared)
+    , fUsed(used)
+    , fRefName(0)
+    , fMemoryManager(manager)
+{
+    fRefName = XMLString::replicate(refName, fMemoryManager);
+}
+
+inline XMLRefInfo::~XMLRefInfo()
+{
+    fMemoryManager->deallocate(fRefName);
+}
+
+
+// ---------------------------------------------------------------------------
+//  XMLRefInfo: Getter methods
+// ---------------------------------------------------------------------------
+inline bool XMLRefInfo::getDeclared() const
+{
+    return fDeclared;
+}
+
+inline const XMLCh* XMLRefInfo::getRefName() const
+{
+    return fRefName;
+}
+
+inline bool XMLRefInfo::getUsed() const
+{
+    return fUsed;
+}
+
+
+// ---------------------------------------------------------------------------
+//  XMLRefInfo: Setter methods
+// ---------------------------------------------------------------------------
+inline void XMLRefInfo::setDeclared(const bool newValue)
+{
+    fDeclared = newValue;
+}
+
+inline void XMLRefInfo::setUsed(const bool newValue)
+{
+    fUsed = newValue;
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/XMLContentModel.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/XMLContentModel.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/XMLContentModel.hpp	(revision 2674)
@@ -0,0 +1,133 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: XMLContentModel.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+#if !defined(CONTENTMODEL_HPP)
+#define CONTENTMODEL_HPP
+
+#include <xercesc/util/XMemory.hpp>
+#include <xercesc/util/QName.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class ContentLeafNameTypeVector;
+class GrammarResolver;
+class XMLStringPool;
+class XMLValidator;
+class SchemaGrammar;
+
+/**
+ *  This class defines the abstract interface for all content models. All
+ *  elements have a content model against which (if validating) its content
+ *  is checked. Each type of validator (DTD, Schema, etc...) can have
+ *  different types of content models, and even with each type of validator
+ *  there can be specialized content models. So this simple class provides
+ *  the abstract API via which all the types of contents models are dealt
+ *  with generically. Its pretty simple.
+ */
+class XMLPARSER_EXPORT XMLContentModel : public XMemory
+{
+public:
+    // ---------------------------------------------------------------------------
+    //  Public static data
+    //
+    //  gInvalidTrans
+    //      This value represents an invalid transition in each line of the
+    //      transition table.
+    //
+    //  gEOCFakeId
+    //  gEpsilonFakeId
+    //      We have to put in a couple of special CMLeaf nodes to represent
+    //      special values, using fake element ids that we know won't conflict
+    //      with real element ids.
+    //
+    //
+    // ---------------------------------------------------------------------------
+    static const unsigned int   gInvalidTrans;
+    static const unsigned int   gEOCFakeId;
+    static const unsigned int   gEpsilonFakeId;
+
+    // -----------------------------------------------------------------------
+    //  Constructors are hidden, only the virtual Destructor is exposed
+    // -----------------------------------------------------------------------
+    /** @name Destructor */
+    //@{
+    virtual ~XMLContentModel()
+    {
+    }
+    //@}
+
+
+    // -----------------------------------------------------------------------
+    //  The virtual content model interface provided by derived classes
+    // -----------------------------------------------------------------------
+	virtual int validateContent
+    (
+        QName** const         children
+      , const unsigned int    childCount
+      , const unsigned int    emptyNamespaceId
+    ) const = 0;
+
+	virtual int validateContentSpecial
+    (
+        QName** const           children
+      , const unsigned int      childCount
+      , const unsigned int      emptyNamespaceId
+      , GrammarResolver*  const pGrammarResolver
+      , XMLStringPool*    const pStringPool
+    ) const =0;
+
+	virtual void checkUniqueParticleAttribution
+    (
+        SchemaGrammar*    const pGrammar
+      , GrammarResolver*  const pGrammarResolver
+      , XMLStringPool*    const pStringPool
+      , XMLValidator*     const pValidator
+      , unsigned int*     const pContentSpecOrgURI
+      , const XMLCh*            pComplexTypeName = 0
+    ) =0;
+
+    virtual ContentLeafNameTypeVector* getContentLeafNameTypeVector()
+	  const = 0;
+
+    virtual unsigned int getNextState(const unsigned int currentState,
+                                      const unsigned int elementIndex) const = 0;
+
+protected :
+    // -----------------------------------------------------------------------
+    //  Hidden Constructors
+    // -----------------------------------------------------------------------
+    XMLContentModel()
+    {
+    }
+
+
+private :
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    XMLContentModel(const XMLContentModel&);
+    XMLContentModel& operator=(const XMLContentModel&);
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/MemBufInputSource.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/MemBufInputSource.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/MemBufInputSource.hpp	(revision 2674)
@@ -0,0 +1,230 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: MemBufInputSource.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+#if !defined(MEMBUFINPUTSOURCE_HPP)
+#define MEMBUFINPUTSOURCE_HPP
+
+#include <xercesc/sax/InputSource.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class BinInputStream;
+
+
+/**
+ *  This class is a derivative of the standard InputSource class. It provides
+ *  for the parser access to data stored in a memory buffer. The type of
+ *  buffer and its host specific attributes are of little concern here. The
+ *  only real requirement is that the memory be readable by the current
+ *  process.
+ *
+ *  Note that the memory buffer size is expressed in <b>bytes</b>, not in
+ *  characters. If you pass it text data, you must account for the bytes
+ *  per character when indicating the buffer size.
+ *
+ *  As with all InputSource derivatives. The primary objective of an input
+ *  source is to create an input stream via which the parser can spool in
+ *  data from the referenced source. In this case, there are two options
+ *  available.
+ *
+ *  The passed buffer can be adopted or merely referenced. If it is adopted,
+ *  then it must be dynamically allocated and will be destroyed when the
+ *  input source is destroyed (no reference counting!.) If not adopted, the
+ *  caller must insure that it remains valid until the input source object
+ *  is destroyed.
+ *
+ *  The other option indicates whether each stream created for this input
+ *  source should get its own copy of the data, or whether it should just
+ *  stream the data directly from this object's copy of the data. The same
+ *  rules apply here, in that the buffer must either be copied by the
+ *  stream or it must remain valid until the stream is destroyed.
+ */
+class XMLPARSER_EXPORT MemBufInputSource : public InputSource
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+
+    /** @name Constructors */
+    //@{
+
+    /**
+      * A memory buffer input source is constructed from a buffer of byte
+      * data, and the count of bytes in that buffer. The parser will parse
+      * from this memory buffer until it has eaten the indicated number of
+      * bytes.
+      *
+      * Note that the system id provided serves two purposes. Firstly it is
+      * going to be displayed in error messages as the source of the error.
+      * And secondly, any entities which are refered to from this entity
+      * via relative paths/URLs will be relative to this fake system id.
+      *
+      * @param  srcDocBytes     The actual data buffer to be parsed from.
+      * @param  byteCount       The count of bytes (not characters, bytes!)
+      *                         in the buffer.
+      * @param  bufId           A fake system id for the buffer.
+      * @param  adoptBuffer     Indicates whether this object should adopt
+      *                         the buffer (i.e. become responsible for 
+      * deletion) or just
+      *                         use it in place.
+      * @param  manager         Pointer to the memory manager to be used to
+      *                         allocate objects.
+      */
+    MemBufInputSource
+    (
+        const   XMLByte* const  srcDocBytes
+        , const unsigned int    byteCount
+        , const XMLCh* const    bufId
+        , const bool            adoptBuffer = false
+        , MemoryManager* const  manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    /**
+      * This constructor is identical to the previous one, except that it takes
+      * the fake system id in local code page form and transcodes it internally.
+      */
+    MemBufInputSource
+    (
+        const   XMLByte* const  srcDocBytes
+        , const unsigned int    byteCount
+        , const char* const     bufId
+        , const bool            adoptBuffer = false
+        , MemoryManager* const  manager = XMLPlatformUtils::fgMemoryManager
+    );
+    //@}
+
+    /** @name Destructor */
+    //@{
+    /**
+      * If the buffer was adopted, the copy made during construction is deleted
+      * at this point.
+      */
+    ~MemBufInputSource();
+    //@}
+
+
+    // -----------------------------------------------------------------------
+    //  Virtual input source interface
+    // -----------------------------------------------------------------------
+
+    /** @name Virtual methods */
+    //@{
+
+    /**
+      * This method will return a binary input stream derivative that will
+      * parse from the memory buffer. If setCopyBufToStream() has been set,
+      * then the stream will make its own copy. Otherwise, it will use the
+      * buffer as is (in which case it must remain valid until the stream
+      * is no longer in use, i.e. the parse completes.)
+      *
+      * @return A dynamically allocated binary input stream derivative that
+      *         can parse from the memory buffer.
+      */
+    BinInputStream* makeStream() const;
+
+    //@}
+
+
+    // -----------------------------------------------------------------------
+    //  Setter methods
+    // -----------------------------------------------------------------------
+
+    /** @name Setter methods */
+
+    //@{
+
+    /**
+      * By default, for safety's sake, each newly created stream from this
+      * input source will make its own copy of the buffer to stream from. This
+      * avoids having to deal with aliasing of the buffer for simple work. But,
+      * for higher performance applications or for large buffers, this is
+      * obviously not optimal.
+      *
+      * In such cases, you can call this method to turn off that default
+      * action. Once turned off, the streams will just get a pointer to the
+      * buffer and parse directly from that. In this case, you must insure that
+      * the buffer remains valid for as long as any parse events are still
+      * using it.
+      *
+      * @param  newState    The new boolean flag state to set.
+      */
+    void setCopyBufToStream(const bool newState);
+
+    /**
+      * This methods allows the MemBufInputSource to be used for more than
+      * one input source, instead of destructing/constructing another
+      * MemBufInputSource.
+      *
+      * @param  srcDocBytes     The actual data buffer to be parsed from.
+      * @param  byteCount       The count of bytes (not characters, bytes!)
+      *                         in the buffer.     
+      */
+    void resetMemBufInputSource(const   XMLByte* const  srcDocBytes
+                                , const unsigned int    byteCount);
+    //@}
+
+
+private :
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    MemBufInputSource(const MemBufInputSource&);
+    MemBufInputSource& operator=(const MemBufInputSource&);
+
+    // -----------------------------------------------------------------------
+    //  Private data members
+    //
+    //  fAdopted
+    //      Indicates whether the buffer is adopted or not. If so, then it
+    //      is destroyed when the input source is destroyed.
+    //
+    //  fByteCount
+    //      The size of the source document.
+    //
+    //  fCopyBufToStream
+    //      This defaults to true (the safe option), which causes it to
+    //      give a copy of the buffer to any streams it creates. If you set
+    //      it to false, it will allow the streams to just reference the
+    //      buffer (in which case this input source must stay alive as long
+    //      as the buffer is in use by the stream.)
+    //
+    //  fSrcBytes
+    //      The source memory buffer that is being spooled from. Whether it
+    //      belongs to the this input source or not is controlled by the
+    //      fAdopted flag.
+    // -----------------------------------------------------------------------
+    bool            fAdopted;
+    unsigned int    fByteCount;
+    bool            fCopyBufToStream;
+    const XMLByte*  fSrcBytes;
+};
+
+
+inline void MemBufInputSource::setCopyBufToStream(const bool newState)
+{
+    fCopyBufToStream = newState;
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/XMLValidityCodes.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/XMLValidityCodes.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/XMLValidityCodes.hpp	(revision 2674)
@@ -0,0 +1,182 @@
+// This file is generated, don't edit it!!
+
+#if !defined(ERRHEADER_XMLValid)
+#define ERRHEADER_XMLValid
+
+#include <xercesc/framework/XMLErrorReporter.hpp>
+#include <xercesc/util/XercesDefs.hpp>
+#include <xercesc/dom/DOMError.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class XMLValid
+{
+public :
+    enum Codes
+    {
+        NoError                            = 0
+      , E_LowBounds                        = 1
+      , ElementNotDefined                  = 2
+      , AttNotDefined                      = 3
+      , NotationNotDeclared                = 4
+      , RootElemNotLikeDocType             = 5
+      , RequiredAttrNotProvided            = 6
+      , ElementNotValidForContent          = 7
+      , BadIDAttrDefType                   = 8
+      , InvalidEmptyAttValue               = 9
+      , ElementAlreadyExists               = 10
+      , MultipleIdAttrs                    = 11
+      , ReusedIDValue                      = 12
+      , IDNotDeclared                      = 13
+      , UnknownNotRefAttr                  = 14
+      , UndeclaredElemInDocType            = 15
+      , EmptyNotValidForContent            = 16
+      , AttNotDefinedForElement            = 17
+      , BadEntityRefAttr                   = 18
+      , UnknownEntityRefAttr               = 19
+      , ColonNotValidWithNS                = 20
+      , NotEnoughElemsForCM                = 21
+      , NoCharDataInCM                     = 22
+      , DoesNotMatchEnumList               = 23
+      , AttrValNotName                     = 24
+      , NoMultipleValues                   = 25
+      , NotSameAsFixedValue                = 26
+      , RepElemInMixed                     = 27
+      , NoValidatorFor                     = 28
+      , IncorrectDatatype                  = 29
+      , NotADatatype                       = 30
+      , TextOnlyContentWithType            = 31
+      , FeatureUnsupported                 = 32
+      , NestedOnlyInElemOnly               = 33
+      , EltRefOnlyInMixedElemOnly          = 34
+      , OnlyInEltContent                   = 35
+      , OrderIsAll                         = 36
+      , DatatypeWithType                   = 37
+      , DatatypeQualUnsupported            = 38
+      , GroupContentRestricted             = 39
+      , UnknownBaseDatatype                = 40
+      , OneOfTypeRefArchRef                = 41
+      , NoContentForRef                    = 42
+      , IncorrectDefaultType               = 43
+      , IllegalAttContent                  = 44
+      , ValueNotInteger                    = 45
+      , DatatypeError                      = 46
+      , SchemaError                        = 47
+      , TypeAlreadySet                     = 48
+      , ProhibitedAttributePresent         = 49
+      , IllegalXMLSpace                    = 50
+      , NotBoolean                         = 51
+      , NotDecimal                         = 52
+      , FacetsInconsistent                 = 53
+      , IllegalFacetValue                  = 54
+      , IllegalDecimalFacet                = 55
+      , UnknownFacet                       = 56
+      , InvalidEnumValue                   = 57
+      , OutOfBounds                        = 58
+      , NotAnEnumValue                     = 59
+      , NotInteger                         = 60
+      , IllegalIntegerFacet                = 61
+      , NotReal                            = 62
+      , IllegalRealFacet                   = 63
+      , ScaleLargerThanPrecision           = 64
+      , PrecisionExceeded                  = 65
+      , ScaleExceeded                      = 66
+      , NotFloat                           = 67
+      , SchemaRootError                    = 68
+      , WrongTargetNamespace               = 69
+      , SimpleTypeHasChild                 = 70
+      , NoDatatypeValidatorForSimpleType   = 71
+      , GrammarNotFound                    = 72
+      , DisplayErrorMessage                = 73
+      , NillNotAllowed                     = 74
+      , NilAttrNotEmpty                    = 75
+      , FixedDifferentFromActual           = 76
+      , NoDatatypeValidatorForAttribute    = 77
+      , GenericError                       = 78
+      , ElementNotQualified                = 79
+      , ElementNotUnQualified              = 80
+      , VC_IllegalRefInStandalone          = 81
+      , NoDefAttForStandalone              = 82
+      , NoAttNormForStandalone             = 83
+      , NoWSForStandalone                  = 84
+      , VC_EntityNotFound                  = 85
+      , PartialMarkupInPE                  = 86
+      , DatatypeValidationFailure          = 87
+      , UniqueParticleAttributionFail      = 88
+      , NoAbstractInXsiType                = 89
+      , NoDirectUseAbstractElement         = 90
+      , NoUseAbstractType                  = 91
+      , BadXsiType                         = 92
+      , NonDerivedXsiType                  = 93
+      , NoSubforBlock                      = 94
+      , AttributeNotQualified              = 95
+      , AttributeNotUnQualified            = 96
+      , IC_FieldMultipleMatch              = 97
+      , IC_UnknownField                    = 98
+      , IC_AbsentKeyValue                  = 99
+      , IC_UniqueNotEnoughValues           = 100
+      , IC_KeyNotEnoughValues              = 101
+      , IC_KeyRefNotEnoughValues           = 102
+      , IC_KeyMatchesNillable              = 103
+      , IC_DuplicateUnique                 = 104
+      , IC_DuplicateKey                    = 105
+      , IC_KeyRefOutOfScope                = 106
+      , IC_KeyNotFound                     = 107
+      , NonWSContent                       = 108
+      , EmptyElemNotationAttr              = 109
+      , EmptyElemHasContent                = 110
+      , ElemOneNotationAttr                = 111
+      , AttrDupToken                       = 112
+      , ElemChildrenHasInvalidWS           = 113
+      , E_HighBounds                       = 114
+      , W_LowBounds                        = 115
+      , W_HighBounds                       = 116
+      , F_LowBounds                        = 117
+      , F_HighBounds                       = 118
+    };
+
+    static bool isFatal(const XMLValid::Codes toCheck)
+    {
+        return ((toCheck >= F_LowBounds) && (toCheck <= F_HighBounds));
+    }
+
+    static bool isWarning(const XMLValid::Codes toCheck)
+    {
+        return ((toCheck >= W_LowBounds) && (toCheck <= W_HighBounds));
+    }
+
+    static bool isError(const XMLValid::Codes toCheck)
+    {
+        return ((toCheck >= E_LowBounds) && (toCheck <= E_HighBounds));
+    }
+
+    static XMLErrorReporter::ErrTypes errorType(const XMLValid::Codes toCheck)
+    {
+       if ((toCheck >= W_LowBounds) && (toCheck <= W_HighBounds))
+           return XMLErrorReporter::ErrType_Warning;
+       else if ((toCheck >= F_LowBounds) && (toCheck <= F_HighBounds))
+            return XMLErrorReporter::ErrType_Fatal;
+       else if ((toCheck >= E_LowBounds) && (toCheck <= E_HighBounds))
+            return XMLErrorReporter::ErrType_Error;
+       return XMLErrorReporter::ErrTypes_Unknown;
+    }
+    static DOMError::ErrorSeverity  DOMErrorType(const XMLValid::Codes toCheck)
+    {
+       if ((toCheck >= W_LowBounds) && (toCheck <= W_HighBounds))
+           return DOMError::DOM_SEVERITY_WARNING;
+       else if ((toCheck >= F_LowBounds) && (toCheck <= F_HighBounds))
+            return DOMError::DOM_SEVERITY_FATAL_ERROR;
+       else return DOMError::DOM_SEVERITY_ERROR;
+    }
+
+private:
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    XMLValid();
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
+
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/XMLSchemaDescription.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/XMLSchemaDescription.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/XMLSchemaDescription.hpp	(revision 2674)
@@ -0,0 +1,179 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: XMLSchemaDescription.hpp 568078 2007-08-21 11:43:25Z amassari $
+ *
+ */
+
+#if !defined(XMLSCHEMADESCRIPTION_HPP)
+#define XMLSCHEMADESCRIPTION_HPP
+
+#include <xercesc/framework/XMLGrammarDescription.hpp>
+#include <xercesc/util/RefArrayVectorOf.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+typedef const XMLCh* const LocationHint;
+
+class XMLPARSER_EXPORT XMLSchemaDescription : public XMLGrammarDescription
+{
+public :
+    // -----------------------------------------------------------------------
+    /** @name Virtual destructor for derived classes */
+    // -----------------------------------------------------------------------
+    //@{
+    /**
+      * virtual destructor
+      *
+      */
+    virtual ~XMLSchemaDescription();
+    //@}
+
+    // -----------------------------------------------------------------------
+    /** @name Implementation of Grammar Description Interface */
+    // -----------------------------------------------------------------------
+    //@{     
+    /**
+      * getGrammarType
+      *
+      */
+    virtual Grammar::GrammarType   getGrammarType() const
+    {
+        return Grammar::SchemaGrammarType;
+    }
+    //@}
+
+    // -----------------------------------------------------------------------
+    /** @name The SchemaDescription Interface */
+    // -----------------------------------------------------------------------
+    //@{
+
+    enum ContextType 
+         {
+            CONTEXT_INCLUDE,
+            CONTEXT_REDEFINE,
+            CONTEXT_IMPORT,
+            CONTEXT_PREPARSE,
+            CONTEXT_INSTANCE,
+            CONTEXT_ELEMENT,
+            CONTEXT_ATTRIBUTE,
+            CONTEXT_XSITYPE,
+            CONTEXT_UNKNOWN
+         };
+
+    /**
+      * getContextType
+      *
+      */	
+    virtual ContextType                getContextType() const = 0;
+
+    /**
+      * getTargetNamespace
+      *
+      */	
+    virtual const XMLCh*               getTargetNamespace() const = 0;
+
+    /**
+      * getLocationHints
+      *
+      */	
+    virtual RefArrayVectorOf<XMLCh>*   getLocationHints() const = 0;
+
+    /**
+      * getTriggeringComponent
+      *
+      */	
+    virtual const QName*               getTriggeringComponent() const = 0;
+
+    /**
+      * getenclosingElementName
+      *
+      */	
+    virtual const QName*               getEnclosingElementName() const = 0;
+
+    /**
+      * getAttributes
+      *
+      */	
+    virtual const XMLAttDef*           getAttributes() const = 0;
+
+    /**
+      * setContextType
+      *
+      */	
+    virtual void                       setContextType(ContextType) = 0;
+
+    /**
+      * setTargetNamespace
+      *
+      */	
+    virtual void                       setTargetNamespace(const XMLCh* const) = 0;
+
+    /**
+      * setLocationHints
+      *
+      */	
+    virtual void                       setLocationHints(const XMLCh* const) = 0;
+
+    /**
+      * setTriggeringComponent
+      *
+      */	
+    virtual void                       setTriggeringComponent(QName* const) = 0;
+
+    /**
+      * getenclosingElementName
+      *
+      */	
+    virtual void                       setEnclosingElementName(QName* const) = 0;
+
+    /**
+      * setAttributes
+      *
+      */	
+    virtual void                       setAttributes(XMLAttDef* const) = 0;
+    //@}	          
+	          
+    /***
+     * Support for Serialization/De-serialization
+     ***/
+    DECL_XSERIALIZABLE(XMLSchemaDescription)
+
+protected :
+    // -----------------------------------------------------------------------
+    /**  Hidden Constructors */
+    // -----------------------------------------------------------------------
+    //@{
+    XMLSchemaDescription(MemoryManager* const memMgr = XMLPlatformUtils::fgMemoryManager);
+    //@}
+
+private :
+    // -----------------------------------------------------------------------
+    /** name  Unimplemented copy constructor and operator= */
+    // -----------------------------------------------------------------------
+    //@{
+    XMLSchemaDescription(const XMLSchemaDescription& );
+    XMLSchemaDescription& operator=(const XMLSchemaDescription& );
+    //@}
+
+};
+
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/XMLErrorCodes.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/XMLErrorCodes.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/XMLErrorCodes.hpp	(revision 2674)
@@ -0,0 +1,376 @@
+// This file is generated, don't edit it!!
+
+#if !defined(ERRHEADER_XMLErrs)
+#define ERRHEADER_XMLErrs
+
+#include <xercesc/framework/XMLErrorReporter.hpp>
+#include <xercesc/util/XercesDefs.hpp>
+#include <xercesc/dom/DOMError.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class XMLErrs
+{
+public :
+    enum Codes
+    {
+        NoError                            = 0
+      , W_LowBounds                        = 1
+      , NotationAlreadyExists              = 2
+      , AttListAlreadyExists               = 3
+      , ContradictoryEncoding              = 4
+      , UndeclaredElemInCM                 = 5
+      , UndeclaredElemInAttList            = 6
+      , XMLException_Warning               = 7
+      , W_HighBounds                       = 8
+      , E_LowBounds                        = 9
+      , FeatureUnsupported                 = 10
+      , TopLevelNoNameComplexType          = 11
+      , TopLevelNoNameAttribute            = 12
+      , NoNameRefAttribute                 = 13
+      , GlobalNoNameElement                = 14
+      , NoNameRefElement                   = 15
+      , NoNameRefGroup                     = 16
+      , NoNameRefAttGroup                  = 17
+      , AnonComplexTypeWithName            = 18
+      , AnonSimpleTypeWithName             = 19
+      , InvalidElementContent              = 20
+      , UntypedElement                     = 21
+      , SimpleTypeContentError             = 22
+      , ExpectedSimpleTypeInList           = 23
+      , ListUnionRestrictionError          = 24
+      , SimpleTypeDerivationByListError    = 25
+      , ExpectedSimpleTypeInRestriction    = 26
+      , DuplicateFacet                     = 27
+      , ExpectedSimpleTypeInUnion          = 28
+      , EmptySimpleTypeContent             = 29
+      , InvalidSimpleContent               = 30
+      , UnspecifiedBase                    = 31
+      , InvalidComplexContent              = 32
+      , SchemaElementContentError          = 33
+      , ContentError                       = 34
+      , UnknownSimpleType                  = 35
+      , UnknownComplexType                 = 36
+      , UnresolvedPrefix                   = 37
+      , RefElementNotFound                 = 38
+      , TypeNotFound                       = 39
+      , TopLevelAttributeNotFound          = 40
+      , InvalidChildInComplexType          = 41
+      , BaseTypeNotFound                   = 42
+      , NoAttributeInSchema                = 43
+      , DatatypeValidatorCreationError     = 44
+      , InvalidChildFollowingSimpleContent   = 45
+      , InvalidChildFollowingConplexContent   = 46
+      , InvalidComplexTypeBlockValue       = 47
+      , InvalidComplexTypeFinalValue       = 48
+      , AttributeDefaultFixedValue         = 49
+      , NotOptionalDefaultAttValue         = 50
+      , LocalAttributeWithNameRef          = 51
+      , GlobalAttributeWithNameRef         = 52
+      , DuplicateAttribute                 = 53
+      , AttributeWithTypeAndSimpleType     = 54
+      , AttributeSimpleTypeNotFound        = 55
+      , ElementWithFixedAndDefault         = 56
+      , DeclarationWithNameRef             = 57
+      , BadAttWithRef                      = 58
+      , InvalidDeclarationName             = 59
+      , GlobalElementWithRef               = 60
+      , ElementWithTypeAndAnonType         = 61
+      , NotSimpleOrMixedElement            = 62
+      , DisallowedSimpleTypeExtension      = 63
+      , InvalidSimpleContentBase           = 64
+      , InvalidComplexTypeBase             = 65
+      , InvalidChildInSimpleContent        = 66
+      , InvalidChildInComplexContent       = 67
+      , AnnotationError                    = 68
+      , DisallowedBaseDerivation           = 69
+      , SubstitutionRepeated               = 70
+      , UnionRepeated                      = 71
+      , ExtensionRepeated                  = 72
+      , ListRepeated                       = 73
+      , RestrictionRepeated                = 74
+      , InvalidBlockValue                  = 75
+      , InvalidFinalValue                  = 76
+      , InvalidSubstitutionGroupElement    = 77
+      , SubstitutionGroupTypeMismatch      = 78
+      , DuplicateElementDeclaration        = 79
+      , InvalidElementBlockValue           = 80
+      , InvalidElementFinalValue           = 81
+      , InvalidAttValue                    = 82
+      , AttributeRefContentError           = 83
+      , DuplicateRefAttribute              = 84
+      , ForbiddenDerivationByRestriction   = 85
+      , ForbiddenDerivationByExtension     = 86
+      , BaseNotComplexType                 = 87
+      , ImportNamespaceDifference          = 88
+      , ImportRootError                    = 89
+      , DeclarationNoSchemaLocation        = 90
+      , IncludeNamespaceDifference         = 91
+      , OnlyAnnotationExpected             = 92
+      , InvalidAttributeContent            = 93
+      , AttributeRequired                  = 94
+      , AttributeDisallowed                = 95
+      , InvalidMin2MaxOccurs               = 96
+      , AnyAttributeContentError           = 97
+      , NoNameGlobalElement                = 98
+      , NoCircularDefinition               = 99
+      , DuplicateGlobalType                = 100
+      , DuplicateGlobalDeclaration         = 101
+      , WS_CollapseExpected                = 102
+      , Import_1_1                         = 103
+      , Import_1_2                         = 104
+      , ElemIDValueConstraint              = 105
+      , NoNotationType                     = 106
+      , EmptiableMixedContent              = 107
+      , EmptyComplexRestrictionDerivation   = 108
+      , MixedOrElementOnly                 = 109
+      , InvalidContentRestriction          = 110
+      , ForbiddenDerivation                = 111
+      , AtomicItemType                     = 112
+      , MemberTypeNoUnion                  = 113
+      , GroupContentError                  = 114
+      , AttGroupContentError               = 115
+      , MinMaxOnGroupChild                 = 116
+      , DeclarationNotFound                = 117
+      , AllContentLimited                  = 118
+      , BadMinMaxAllCT                     = 119
+      , BadMinMaxAllElem                   = 120
+      , NoCircularAttGroup                 = 121
+      , DuplicateAttInDerivation           = 122
+      , NotExpressibleWildCardIntersection   = 123
+      , BadAttDerivation_1                 = 124
+      , BadAttDerivation_2                 = 125
+      , BadAttDerivation_3                 = 126
+      , BadAttDerivation_4                 = 127
+      , BadAttDerivation_5                 = 128
+      , BadAttDerivation_6                 = 129
+      , BadAttDerivation_7                 = 130
+      , BadAttDerivation_8                 = 131
+      , BadAttDerivation_9                 = 132
+      , AllContentError                    = 133
+      , RedefineNamespaceDifference        = 134
+      , Redefine_InvalidSimpleType         = 135
+      , Redefine_InvalidSimpleTypeBase     = 136
+      , Redefine_InvalidComplexType        = 137
+      , Redefine_InvalidComplexTypeBase    = 138
+      , Redefine_InvalidGroupMinMax        = 139
+      , Redefine_DeclarationNotFound       = 140
+      , Redefine_GroupRefCount             = 141
+      , Redefine_AttGroupRefCount          = 142
+      , Redefine_InvalidChild              = 143
+      , Notation_InvalidDecl               = 144
+      , Notation_DeclNotFound              = 145
+      , IC_DuplicateDecl                   = 146
+      , IC_BadContent                      = 147
+      , IC_KeyRefReferNotFound             = 148
+      , IC_KeyRefCardinality               = 149
+      , IC_XPathExprMissing                = 150
+      , AttUseCorrect                      = 151
+      , AttDeclPropCorrect3                = 152
+      , AttDeclPropCorrect5                = 153
+      , AttGrpPropCorrect3                 = 154
+      , InvalidTargetNSValue               = 155
+      , DisplayErrorMessage                = 156
+      , XMLException_Error                 = 157
+      , InvalidRedefine                    = 158
+      , InvalidNSReference                 = 159
+      , NotAllContent                      = 160
+      , InvalidAnnotationContent           = 161
+      , InvalidFacetName                   = 162
+      , InvalidXMLSchemaRoot               = 163
+      , CircularSubsGroup                  = 164
+      , SubsGroupMemberAbstract            = 165
+      , ELTSchemaNS                        = 166
+      , InvalidAttTNS                      = 167
+      , NSDeclInvalid                      = 168
+      , DOMLevel1Node                      = 169
+      , E_HighBounds                       = 170
+      , F_LowBounds                        = 171
+      , EntityExpansionLimitExceeded       = 172
+      , ExpectedCommentOrCDATA             = 173
+      , ExpectedAttrName                   = 174
+      , ExpectedNotationName               = 175
+      , NoRepInMixed                       = 176
+      , BadDefAttrDecl                     = 177
+      , ExpectedDefAttrDecl                = 178
+      , AttListSyntaxError                 = 179
+      , ExpectedEqSign                     = 180
+      , DupAttrName                        = 181
+      , BadIdForXMLLangAttr                = 182
+      , ExpectedElementName                = 183
+      , MustStartWithXMLDecl               = 184
+      , CommentsMustStartWith              = 185
+      , InvalidDocumentStructure           = 186
+      , ExpectedDeclString                 = 187
+      , BadXMLVersion                      = 188
+      , UnsupportedXMLVersion              = 189
+      , UnterminatedXMLDecl                = 190
+      , BadXMLEncoding                     = 191
+      , BadStandalone                      = 192
+      , UnterminatedComment                = 193
+      , PINameExpected                     = 194
+      , UnterminatedPI                     = 195
+      , InvalidCharacter                   = 196
+      , UnexpectedTextBeforeRoot           = 197
+      , UnterminatedStartTag               = 198
+      , ExpectedAttrValue                  = 199
+      , UnterminatedEndTag                 = 200
+      , ExpectedAttributeType              = 201
+      , ExpectedEndOfTagX                  = 202
+      , ExpectedMarkup                     = 203
+      , NotValidAfterContent               = 204
+      , ExpectedComment                    = 205
+      , ExpectedCommentOrPI                = 206
+      , ExpectedWhitespace                 = 207
+      , NoRootElemInDOCTYPE                = 208
+      , ExpectedQuotedString               = 209
+      , ExpectedPublicId                   = 210
+      , InvalidPublicIdChar                = 211
+      , UnterminatedDOCTYPE                = 212
+      , InvalidCharacterInIntSubset        = 213
+      , ExpectedCDATA                      = 214
+      , InvalidInitialNameChar             = 215
+      , InvalidNameChar                    = 216
+      , UnexpectedWhitespace               = 217
+      , InvalidCharacterInAttrValue        = 218
+      , ExpectedMarkupDecl                 = 219
+      , TextDeclNotLegalHere               = 220
+      , ConditionalSectInIntSubset         = 221
+      , ExpectedPEName                     = 222
+      , UnterminatedEntityDecl             = 223
+      , InvalidCharacterRef                = 224
+      , UnterminatedCharRef                = 225
+      , ExpectedEntityRefName              = 226
+      , EntityNotFound                     = 227
+      , NoUnparsedEntityRefs               = 228
+      , UnterminatedEntityRef              = 229
+      , RecursiveEntity                    = 230
+      , PartialMarkupInEntity              = 231
+      , UnterminatedElementDecl            = 232
+      , ExpectedContentSpecExpr            = 233
+      , ExpectedAsterisk                   = 234
+      , UnterminatedContentModel           = 235
+      , ExpectedSystemId                   = 236
+      , ExpectedSystemOrPublicId           = 237
+      , UnterminatedNotationDecl           = 238
+      , ExpectedSeqChoiceLeaf              = 239
+      , ExpectedChoiceOrCloseParen         = 240
+      , ExpectedSeqOrCloseParen            = 241
+      , ExpectedEnumValue                  = 242
+      , ExpectedEnumSepOrParen             = 243
+      , UnterminatedEntityLiteral          = 244
+      , MoreEndThanStartTags               = 245
+      , ExpectedOpenParen                  = 246
+      , AttrAlreadyUsedInSTag              = 247
+      , BracketInAttrValue                 = 248
+      , Expected2ndSurrogateChar           = 249
+      , ExpectedEndOfConditional           = 250
+      , ExpectedIncOrIgn                   = 251
+      , ExpectedINCLUDEBracket             = 252
+      , ExpectedTextDecl                   = 253
+      , ExpectedXMLDecl                    = 254
+      , UnexpectedEOE                      = 255
+      , PEPropogated                       = 256
+      , ExtraCloseSquare                   = 257
+      , PERefInMarkupInIntSubset           = 258
+      , EntityPropogated                   = 259
+      , ExpectedNumericalCharRef           = 260
+      , ExpectedOpenSquareBracket          = 261
+      , BadSequenceInCharData              = 262
+      , IllegalSequenceInComment           = 263
+      , UnterminatedCDATASection           = 264
+      , ExpectedNDATA                      = 265
+      , NDATANotValidForPE                 = 266
+      , HexRadixMustBeLowerCase            = 267
+      , DeclStringRep                      = 268
+      , DeclStringsInWrongOrder            = 269
+      , NoExtRefsInAttValue                = 270
+      , XMLDeclMustBeLowerCase             = 271
+      , ExpectedEntityValue                = 272
+      , BadDigitForRadix                   = 273
+      , EndedWithTagsOnStack               = 274
+      , AmbiguousContentModel              = 275
+      , NestedCDATA                        = 276
+      , UnknownPrefix                      = 277
+      , PartialTagMarkupError              = 278
+      , EmptyMainEntity                    = 279
+      , CDATAOutsideOfContent              = 280
+      , OnlyCharRefsAllowedHere            = 281
+      , Unexpected2ndSurrogateChar         = 282
+      , NoPIStartsWithXML                  = 283
+      , XMLDeclMustBeFirst                 = 284
+      , XMLVersionRequired                 = 285
+      , StandaloneNotLegal                 = 286
+      , EncodingRequired                   = 287
+      , TooManyColonsInName                = 288
+      , InvalidColonPos                    = 289
+      , ColonNotLegalWithNS                = 290
+      , SysException                       = 291
+      , XMLException_Fatal                 = 292
+      , UnexpectedEOF                      = 293
+      , UnexpectedError                    = 294
+      , BadSchemaLocation                  = 295
+      , NoGrammarResolver                  = 296
+      , SchemaScanFatalError               = 297
+      , IllegalRefInStandalone             = 298
+      , PEBetweenDecl                      = 299
+      , NoEmptyStrNamespace                = 300
+      , NoUseOfxmlnsAsPrefix               = 301
+      , NoUseOfxmlnsURI                    = 302
+      , PrefixXMLNotMatchXMLURI            = 303
+      , XMLURINotMatchXMLPrefix            = 304
+      , NoXMLNSAsElementPrefix             = 305
+      , CT_SimpleTypeChildRequired         = 306
+      , InvalidRootElemInDOCTYPE           = 307
+      , InvalidElementName                 = 308
+      , InvalidAttrName                    = 309
+      , InvalidEntityRefName               = 310
+      , DuplicateDocTypeDecl               = 311
+      , F_HighBounds                       = 312
+    };
+
+    static bool isFatal(const XMLErrs::Codes toCheck)
+    {
+        return ((toCheck >= F_LowBounds) && (toCheck <= F_HighBounds));
+    }
+
+    static bool isWarning(const XMLErrs::Codes toCheck)
+    {
+        return ((toCheck >= W_LowBounds) && (toCheck <= W_HighBounds));
+    }
+
+    static bool isError(const XMLErrs::Codes toCheck)
+    {
+        return ((toCheck >= E_LowBounds) && (toCheck <= E_HighBounds));
+    }
+
+    static XMLErrorReporter::ErrTypes errorType(const XMLErrs::Codes toCheck)
+    {
+       if ((toCheck >= W_LowBounds) && (toCheck <= W_HighBounds))
+           return XMLErrorReporter::ErrType_Warning;
+       else if ((toCheck >= F_LowBounds) && (toCheck <= F_HighBounds))
+            return XMLErrorReporter::ErrType_Fatal;
+       else if ((toCheck >= E_LowBounds) && (toCheck <= E_HighBounds))
+            return XMLErrorReporter::ErrType_Error;
+       return XMLErrorReporter::ErrTypes_Unknown;
+    }
+    static DOMError::ErrorSeverity  DOMErrorType(const XMLErrs::Codes toCheck)
+    {
+       if ((toCheck >= W_LowBounds) && (toCheck <= W_HighBounds))
+           return DOMError::DOM_SEVERITY_WARNING;
+       else if ((toCheck >= F_LowBounds) && (toCheck <= F_HighBounds))
+            return DOMError::DOM_SEVERITY_FATAL_ERROR;
+       else return DOMError::DOM_SEVERITY_ERROR;
+    }
+
+private:
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    XMLErrs();
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
+
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/XMLRecognizer.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/XMLRecognizer.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/XMLRecognizer.hpp	(revision 2674)
@@ -0,0 +1,148 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ *  $Id: XMLRecognizer.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(XMLRECOGNIZER_HPP)
+#define XMLRECOGNIZER_HPP
+
+#include <xercesc/util/XercesDefs.hpp>
+#include <xercesc/util/PlatformUtils.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+/**
+ *  This class provides some simple code to recognize the encodings of
+ *  XML files. This recognition only does very basic sensing of the encoding
+ *  in a broad sense. Basically its just enough to let us get started and
+ *  read the XMLDecl line. The scanner, once it reads the XMLDecl, will
+ *  tell the reader any actual encoding string it found and the reader can
+ *  update itself to be more specific at that point.
+ */
+class XMLPARSER_EXPORT XMLRecognizer
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Class types
+    //
+    //  This enum represents the various encoding families that we have to
+    //  deal with individually at the scanner level. This does not indicate
+    //  the exact encoding, just the rough family that would let us scan
+    //  the XML/TextDecl to find the encoding string.
+    //
+    //  The 'L's and 'B's stand for little or big endian. We conditionally
+    //  create versions that will automatically map to the local UTF-16 and
+    //  UCS-4 endian modes.
+    //
+    //  OtherEncoding means that its some transcoder based encoding, i.e. not
+    //  one of the ones that we do internally. Its a special case and should
+    //  never be used directly outside of the reader.
+    //
+    //  NOTE: Keep this in sync with the name map array in the Cpp file!!
+    // -----------------------------------------------------------------------
+    enum Encodings
+    {
+        EBCDIC          = 0
+        , UCS_4B        = 1
+        , UCS_4L        = 2
+        , US_ASCII      = 3
+        , UTF_8         = 4
+        , UTF_16B       = 5
+        , UTF_16L       = 6
+        , XERCES_XMLCH  = 7
+
+        , Encodings_Count
+        , Encodings_Min = EBCDIC
+        , Encodings_Max = XERCES_XMLCH
+
+        , OtherEncoding = 999
+
+        #if defined(ENDIANMODE_BIG)
+        , Def_UTF16     = UTF_16B
+        , Def_UCS4      = UCS_4B
+        #else
+        , Def_UTF16     = UTF_16L
+        , Def_UCS4      = UCS_4L
+        #endif
+    };
+
+
+    // -----------------------------------------------------------------------
+    //  Public, const static data
+    //
+    //  These are the byte sequences for each of the encodings that we can
+    //  auto sense, and their lengths.
+    // -----------------------------------------------------------------------
+    static const char           fgASCIIPre[];
+    static const unsigned int   fgASCIIPreLen;
+    static const XMLByte        fgEBCDICPre[];
+    static const unsigned int   fgEBCDICPreLen;
+    static const XMLByte        fgUTF16BPre[];
+    static const XMLByte        fgUTF16LPre[];
+    static const unsigned int   fgUTF16PreLen;
+    static const XMLByte        fgUCS4BPre[];
+    static const XMLByte        fgUCS4LPre[];
+    static const unsigned int   fgUCS4PreLen;
+    static const char           fgUTF8BOM[];
+    static const unsigned int   fgUTF8BOMLen;
+
+
+    // -----------------------------------------------------------------------
+    //  Encoding recognition methods
+    // -----------------------------------------------------------------------
+    static Encodings basicEncodingProbe
+    (
+        const   XMLByte* const      rawBuffer
+        , const unsigned int        rawByteCount
+    );
+
+    static Encodings encodingForName
+    (
+        const   XMLCh* const    theEncName
+    );
+
+    static const XMLCh* nameForEncoding(const Encodings theEncoding
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+
+
+protected :
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors, operators, and destructor
+    //
+    //  This class is effectively being used as a namespace for some static
+    //  methods.
+    //
+    //   (these functions are protected rather than private only to get rid of
+    //    some annoying compiler warnings.)
+    //
+    // -----------------------------------------------------------------------
+    XMLRecognizer();
+    ~XMLRecognizer();
+
+private:
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    XMLRecognizer(const XMLRecognizer&);    
+    XMLRecognizer& operator=(const XMLRecognizer&);
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/MemBufFormatTarget.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/MemBufFormatTarget.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/MemBufFormatTarget.hpp	(revision 2674)
@@ -0,0 +1,136 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: MemBufFormatTarget.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#ifndef MemBufFormatTarget_HEADER_GUARD_
+#define MemBufFormatTarget_HEADER_GUARD_
+
+#include <xercesc/framework/XMLFormatter.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+/*
+ * The MemBufFormatTarget is a derivative from XMLFormatTarget, which user code
+ * may plug into DOMWriter to retrieve the serialized XML stream (from DOM Tree)
+ * in a memory buffer.
+ *
+ * The MemBufFormatTarget is initalized to have a memory buffer of 1023 upon
+ * construction, which grows as needed. The buffer will be deleted when
+ * MemBufFormatTarget is destructed; or will be reset when the reset() function
+ * is called.
+ *
+ * The MemBufFormatTarget returns a NULL terminated XMLByte stream upon request,
+ * through the method getRawBuffer(), and user should make its own copy of the
+ * returned buffer if it intends to keep it independent on the state of the
+ * MemBufFormatTarget.
+ */
+
+class XMLPARSER_EXPORT MemBufFormatTarget : public XMLFormatTarget {
+public:
+
+    /** @name constructors and destructor */
+    //@{
+    MemBufFormatTarget
+    (
+          int                  initCapacity = 1023
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    ) ;
+    ~MemBufFormatTarget();
+    //@}
+
+    // -----------------------------------------------------------------------
+    //  Implementations of the format target interface
+    // -----------------------------------------------------------------------
+    virtual void writeChars(const XMLByte* const toWrite
+                          , const unsigned int   count
+                          , XMLFormatter* const  formatter);
+
+    // -----------------------------------------------------------------------
+    //  Getter
+    // -----------------------------------------------------------------------
+    /** @name getRawBuffer */
+    //@{
+    /**
+     * Returned the internal raw buffer.
+     *
+     */
+    //@}
+    const XMLByte* getRawBuffer() const;
+
+    /** @name getLen */
+    //@{
+    /**
+     * Returned the length of the raw buffer.
+     *
+     */
+    //@}
+    unsigned int getLen() const
+    {
+        return fIndex;
+    }
+
+    /** @name reset */
+    //@{
+    /**
+     * Reset the internal string buffer.
+     *
+     */
+    void reset();
+    //@}
+
+private:
+    // -----------------------------------------------------------------------
+    //  Unimplemented methods.
+    // -----------------------------------------------------------------------
+    MemBufFormatTarget(const MemBufFormatTarget&);
+    MemBufFormatTarget& operator=(const MemBufFormatTarget&);
+
+    // -----------------------------------------------------------------------
+    //  Private helpers
+    // -----------------------------------------------------------------------
+    void insureCapacity(const unsigned int extraNeeded);
+
+    // -----------------------------------------------------------------------
+    //  Private data members
+    //
+    //  fDataBuf
+    //      The pointer to the buffer data. Its grown as needed. Its always
+    //      one larger than fCapacity, to leave room for the null terminator.
+    //
+    //  fIndex
+    //      The current index into the buffer, as characters are appended
+    //      to it. If its zero, then the buffer is empty.
+    //
+    //  fCapacity
+    //      The current capacity of the buffer. Its actually always one
+    //      larger, to leave room for the null terminator.
+    //
+    // -----------------------------------------------------------------------
+    MemoryManager*  fMemoryManager;
+    XMLByte*        fDataBuf;
+    unsigned int    fIndex;
+    unsigned int    fCapacity;
+
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
+
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/XMLEntityHandler.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/XMLEntityHandler.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/XMLEntityHandler.hpp	(revision 2674)
@@ -0,0 +1,185 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+ /*
+ * $Id: XMLEntityHandler.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+#if !defined(XMLENTITYHANDLER_HPP)
+#define XMLENTITYHANDLER_HPP
+
+#include <xercesc/util/XercesDefs.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class InputSource;
+class XMLBuffer;
+class XMLResourceIdentifier;
+
+/**
+ *  This abstract class is a callback mechanism for the scanner. By creating
+ *  a derivative of this class and plugging into the scanner, the scanner
+ *  will call back on the object's methods to entity events.
+ *
+ *  This class is primarily for use by those writing their own parser classes.
+ *  If you use the standard parser classes, DOMParser and SAXParser, you won't
+ *  use this API. You will instead use a similar mechanism defined by the SAX
+ *  API, called EntityResolver.
+ */
+class XMLPARSER_EXPORT XMLEntityHandler
+{
+public:
+    // -----------------------------------------------------------------------
+    //  Constructors are hidden, only the virtual destructor is exposed
+    // -----------------------------------------------------------------------
+
+    /** @name Destructor */
+    //@{
+
+    /**
+      * Default destructor
+      */
+    virtual ~XMLEntityHandler()
+    {
+    }
+    //@}
+
+
+    // -----------------------------------------------------------------------
+    //  The virtual entity handler interface
+    // -----------------------------------------------------------------------
+    /** @name The pure virtual methods in this interface. */
+    //@{
+
+    /**
+      * This method get called after the scanner has finished reading from
+      * the given input source while processing external entity references.
+      *
+      * @param inputSource The input source for the entity
+      */
+    virtual void endInputSource(const InputSource& inputSource) = 0;
+
+    /**
+      * This method allows the passes the scanned systemId to the entity
+      * handler, thereby giving it a chance to provide any customized
+      * handling like resolving relative path names. The scanner first
+      * calls this method before calling <code>resolveEntity</code>.
+      *
+      * @param systemId The system id extracted by the scanner from the
+      *                 input source.
+      * @param toFill The buffer in which the fully expanded system id needs
+      *               to be stored.
+      */
+    virtual bool expandSystemId
+    (
+        const   XMLCh* const    systemId
+        ,       XMLBuffer&      toFill
+    ) = 0;
+
+    /**
+      * This method allows the entity handler to reset itself, so that
+      * it can be used again. It is called prior to a new document parse
+      * operation.
+      */
+    virtual void resetEntities() = 0;
+
+    /**
+      * This method allows the entity handler to provide customized
+      * application specific entity resolution. This method is defined
+      * by SAX 1.0 API.
+      *
+      * <i>Only one resolveEntity method will be used.  If both setEntityResolver and 
+      * setXMLEntityResolver are called, then the last one is used.</i>
+      *
+      * @param publicId A const pointer to a Unicode string representing the
+      *                 public id of the entity just parsed.
+      * @param systemId A const pointer to a Unicode string representing the
+      *                 system id of the entity just parsed.
+      * @param baseURI  A const pointer to a Unicode string representing the
+      *                 base URI of the entity just parsed,
+      *                 or <code>null</code> if there is no base URI.
+      * @return The value returned by the SAX resolveEntity method or
+      *         NULL otherwise to indicate no processing was done.
+      *         The returned InputSource is owned by the parser which is
+      *         responsible to clean up the memory.
+      */
+    virtual InputSource* resolveEntity
+    (
+        const   XMLCh* const    publicId
+        , const XMLCh* const    systemId
+        , const XMLCh* const    baseURI = 0
+    ) = 0;
+
+    /**
+      * This method allows the entity handler to provide customized
+      * application specific entity resolution. 
+      *
+      * <i>Only one resolveEntity method will be used.  If both setEntityResolver and 
+      * setXMLEntityResolver are called, then the last one is used.</i>
+      *
+      * @param resourceIdentifier An object containing the type of
+      *        resource to be resolved and the associated data members
+      *        corresponding to this type.
+      * @return The value returned by the resolveEntity method or
+      *         NULL otherwise to indicate no processing was done.
+      *         The returned InputSource is owned by the parser which is
+      *         responsible to clean up the memory.
+      */
+    virtual InputSource* resolveEntity
+    (
+        XMLResourceIdentifier* resourceIdentifier
+    ) = 0;
+
+    /**
+      * This method will be called before the scanner starts reading
+      * from an input source while processing external entity references.
+      *
+      * @param inputSource The external input source.
+      */
+    virtual void startInputSource(const InputSource& inputSource) = 0;
+    //@}
+
+
+protected :
+    // -----------------------------------------------------------------------
+    //  Hidden Constructors
+    // -----------------------------------------------------------------------
+    /** @name Constructor */
+    //@{
+
+    /**
+      * Protected default constructor
+      */
+    XMLEntityHandler()
+    {
+    }
+    //@}
+
+
+
+private:
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and destructor
+    // -----------------------------------------------------------------------
+    XMLEntityHandler(const XMLEntityHandler&);
+    XMLEntityHandler& operator=(const XMLEntityHandler&);
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/XMLBufferMgr.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/XMLBufferMgr.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/XMLBufferMgr.hpp	(revision 2674)
@@ -0,0 +1,208 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#if !defined(XMLBUFFERMGR_HPP)
+#define XMLBUFFERMGR_HPP
+
+#include <xercesc/framework/XMLBuffer.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class XMLBufBid;
+
+/**
+ *  There are many places where XMLBuffer objects are needed. In order to
+ *  avoid either constantly creating and destroying them or maintaining a
+ *  fixed set and worrying about accidental reuse, a buffer manager can
+ *  provide a pool of buffers which can be temporarily used and then put
+ *  back into the pool. This provides a good compromise between performance
+ *  and easier maintenance.
+ */
+class XMLPARSER_EXPORT XMLBufferMgr : public XMemory
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+
+    /** @name Constructor */
+    //@{
+    XMLBufferMgr(MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+    //@}
+
+    /** @name Destructor */
+    //@{
+    ~XMLBufferMgr();
+    //@}
+
+
+    // -----------------------------------------------------------------------
+    //  Buffer management
+    // -----------------------------------------------------------------------
+    XMLBuffer& bidOnBuffer();
+    void releaseBuffer(XMLBuffer& toRelease);
+
+	// -----------------------------------------------------------------------
+    //  Getter methods
+    // -----------------------------------------------------------------------
+    unsigned int getBufferCount() const;
+    unsigned int getAvailableBufferCount() const;
+
+private :
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    XMLBufferMgr(const XMLBufferMgr&);
+    XMLBufferMgr& operator=(const XMLBufferMgr&);
+
+    // -----------------------------------------------------------------------
+    //  Private data members
+    //
+    //  fBufCount
+    //      The count of buffers that have been allocated so far.
+    //
+    //  fBufList;
+    //      The list of pointers to buffers that are loaned out. There will
+    //      never be a lot of them, so a flat list is good enough.
+    // -----------------------------------------------------------------------
+    unsigned int    fBufCount;
+    MemoryManager*  fMemoryManager;
+    XMLBuffer**     fBufList;
+};
+
+inline unsigned int XMLBufferMgr::getBufferCount() const
+{
+    return fBufCount;
+}
+
+inline unsigned int XMLBufferMgr::getAvailableBufferCount() const
+{
+    unsigned available = fBufCount;
+    for (unsigned int index = 0; index < fBufCount && fBufList[index]; index++)
+    {
+        if (fBufList[index]->getInUse())
+            --available;
+    }
+    return available;
+}
+
+
+/**
+ *  XMLBufBid is a scoped based janitor that allows the scanner code to ask
+ *  for a buffer on a scoped basis and then insure that it gets freed back
+ *  into the pool no matter how the scope is exited (exception or normal exit.)
+ */
+class XMLBufBid : public XMemory
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+    XMLBufBid(XMLBufferMgr* const srcMgr) :
+
+        fBuffer(srcMgr->bidOnBuffer())
+        , fMgr(srcMgr)
+    {
+    }
+
+    ~XMLBufBid()
+    {
+        fMgr->releaseBuffer(fBuffer);
+    }
+
+
+
+    // -----------------------------------------------------------------------
+    //  Buffer access
+    // -----------------------------------------------------------------------
+    void append(const XMLCh toAppend)
+    {
+        fBuffer.append(toAppend);
+    }
+
+    void append(const XMLCh* const toAppend, const unsigned int count = 0)
+    {
+        fBuffer.append(toAppend, count);
+    }
+
+    const XMLBuffer& getBuffer() const
+    {
+        return fBuffer;
+    }
+
+    XMLBuffer& getBuffer()
+    {
+        return fBuffer;
+    }
+
+    const XMLCh* getRawBuffer() const
+    {
+        fBuffer.fBuffer[fBuffer.fIndex] = 0;
+        return fBuffer.fBuffer;
+    }
+
+    XMLCh* getRawBuffer()
+    {
+        fBuffer.fBuffer[fBuffer.fIndex] = 0;
+        return fBuffer.fBuffer;
+    }
+
+    unsigned int getLen() const
+    {
+        return fBuffer.fIndex;
+    }
+
+    bool isEmpty() const
+    {
+        return (fBuffer.fIndex == 0);
+    }
+
+    void reset()
+    {
+        fBuffer.reset();
+    }
+
+    void set(const XMLCh* const chars, const unsigned int count = 0)
+    {
+        fBuffer.set(chars, count);
+    }
+
+
+private :
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    XMLBufBid(const XMLBufBid&);
+    XMLBufBid& operator=(const XMLBufBid&);
+
+    // -----------------------------------------------------------------------
+    //  Private data members
+    //
+    //  fBuffer
+    //      This is the buffer we got, and which we will release.
+    //
+    //  fMgr
+    //      This is the buffer manager we got the buffer from. This is needed
+    //      to release the buffer later.
+    // -----------------------------------------------------------------------
+    XMLBuffer&          fBuffer;
+    XMLBufferMgr* const fMgr;
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/XMLDTDDescription.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/XMLDTDDescription.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/XMLDTDDescription.hpp	(revision 2674)
@@ -0,0 +1,103 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: XMLDTDDescription.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(XMLDTDDESCRIPTION_HPP)
+#define XMLDTDDESCRIPTION_HPP
+
+#include <xercesc/framework/XMLGrammarDescription.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class XMLPARSER_EXPORT XMLDTDDescription : public XMLGrammarDescription
+{
+public :
+    // -----------------------------------------------------------------------
+    /** @name Virtual destructor for derived classes */
+    // -----------------------------------------------------------------------
+    //@{
+    /**
+      * virtual destructor
+      *
+      */
+    virtual ~XMLDTDDescription();
+    //@}
+
+    // -----------------------------------------------------------------------
+    /** @name Implementation of Grammar Description Interface */
+    // -----------------------------------------------------------------------
+    //@{     
+    /**
+      * getGrammarType
+      *
+      */
+    virtual Grammar::GrammarType   getGrammarType() const
+    {
+        return Grammar::DTDGrammarType;
+    }
+    //@}
+
+    // -----------------------------------------------------------------------
+    /** @name The DTDDescription Interface */
+    // -----------------------------------------------------------------------
+    //@{      
+    /**
+      * Getter
+      *
+      */
+    virtual const XMLCh*          getRootName() const = 0;
+    virtual const XMLCh*          getSystemId() const {return 0;};
+
+    /**
+      * Setter
+      *
+      */
+    virtual void                  setRootName(const XMLCh* const) = 0;
+    virtual void                  setSystemId(const XMLCh* const) {};
+    //@}
+    
+    /***
+     * Support for Serialization/De-serialization
+     ***/
+    DECL_XSERIALIZABLE(XMLDTDDescription)
+
+protected :
+    // -----------------------------------------------------------------------
+    /**  Hidden Constructors */
+    // -----------------------------------------------------------------------
+    //@{
+    XMLDTDDescription(MemoryManager* const memMgr = XMLPlatformUtils::fgMemoryManager);
+    //@}
+
+private :
+    // -----------------------------------------------------------------------
+    /** name  Unimplemented copy constructor and operator= */
+    // -----------------------------------------------------------------------
+    //@{
+    XMLDTDDescription(const XMLDTDDescription& );
+    XMLDTDDescription& operator=(const XMLDTDDescription& );
+    //@}
+
+};
+
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/XMLGrammarPool.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/XMLGrammarPool.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/XMLGrammarPool.hpp	(revision 2674)
@@ -0,0 +1,343 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: XMLGrammarPool.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(XMLGRAMMARPOOL_HPP)
+#define XMLGRAMMARPOOL_HPP
+
+#include <xercesc/util/PlatformUtils.hpp>
+#include <xercesc/util/RefHashTableOf.hpp>
+#include <xercesc/util/XMemory.hpp>
+#include <xercesc/framework/psvi/XSModel.hpp>
+
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class Grammar;
+class XMLGrammarDescription;
+class DTDGrammar;
+class SchemaGrammar;
+class XMLDTDDescription;
+class XMLSchemaDescription;
+class XMLStringPool;
+class BinInputStream;
+class BinOutputStream;
+
+class XMLPARSER_EXPORT XMLGrammarPool : public XMemory
+{
+public :
+    // -----------------------------------------------------------------------
+    /** @name Virtual destructor for derived classes */
+    // -----------------------------------------------------------------------
+    //@{
+
+    /**
+      * virtual destructor
+      *
+      */
+    virtual ~XMLGrammarPool(){};
+    //@}
+
+    // -----------------------------------------------------------------------
+    /** @name The Grammar Pool Interface */
+    // -----------------------------------------------------------------------
+    //@{
+
+    /**
+      * cacheGrammar
+      *
+      * Provide the grammar pool with an opportunity
+      * to cache the given grammar.  If the pool does not choose to do so,
+      * it should return false; otherwise, it should return true, so that
+      * the caller knows whether the grammar has been adopted.
+      *
+      * @param gramToCache the Grammar to be cached in the grammar pool
+      * @return true if the grammar pool has elected to cache the grammar (in which case
+      * it is assumed to have adopted it); false if it does not cache it
+	  *
+      */
+    virtual bool           cacheGrammar(Grammar* const               gramToCache) = 0;
+    
+    /**
+      * retrieveGrammar
+      *
+      * @param gramDesc the Grammar Description used to search for grammar
+	  *                  cached in the grammar pool
+	  *
+      */
+    virtual Grammar*       retrieveGrammar(XMLGrammarDescription* const gramDesc) = 0;
+    
+        
+    /**
+      * orphanGrammar
+      *
+      * grammar removed from the grammar pool and owned by the caller
+      *
+      * @param nameSpaceKey Key used to search for grammar in the grammar pool
+      * @return the grammar that was removed from the pool (0 if none)
+      */
+    virtual Grammar*       orphanGrammar(const XMLCh* const nameSpaceKey) = 0;  
+
+
+    /**
+     * Get an enumeration of the cached Grammars in the Grammar pool
+     *
+     * @return enumeration of the cached Grammars in Grammar pool
+     */
+    virtual RefHashTableOfEnumerator<Grammar> getGrammarEnumerator() const = 0;
+
+    /**
+      * clear
+      *
+      * all grammars are removed from the grammar pool and deleted.
+      * @return true if the grammar pool was cleared. false if it did not.
+      */
+    virtual bool           clear() = 0;
+        
+    /**
+      * lockPool
+      *
+	  * When this method is called by the application, the 
+      * grammar pool should stop adding new grammars to the cache.
+      * This should result in the grammar pool being sharable
+      * among parsers operating in different threads.
+      *
+      */
+    virtual void           lockPool() = 0;
+    
+    /**
+      * unlockPool
+      *
+	  * After this method has been called, the grammar pool implementation
+      * should return to its default behaviour when cacheGrammars(...) is called.
+      * One effect, depending on the underlying implementation, is that the grammar pool
+      * may no longer be thread-safe (even on read operations).
+      *
+      * For PSVI support any previous XSModel that was produced will be deleted.
+      */
+    virtual void           unlockPool() = 0;
+
+    //@}
+
+    // -----------------------------------------------------------------------
+    /** @name  Factory interface */
+    // -----------------------------------------------------------------------
+    //@{
+
+    /**
+      * createDTDGrammar
+      *
+      */
+    virtual DTDGrammar*            createDTDGrammar() = 0;
+
+    /**
+      * createSchemaGrammar
+      *
+      */
+    virtual SchemaGrammar*         createSchemaGrammar() = 0;
+                    
+    /**
+      * createDTDDescription
+      *
+      */	
+    virtual XMLDTDDescription*     createDTDDescription(const XMLCh* const systemId) = 0;
+    /**
+      * createSchemaDescription
+      *
+      */		
+    virtual XMLSchemaDescription*  createSchemaDescription(const XMLCh* const targetNamespace) = 0;
+
+    //@}
+
+    // -----------------------------------------------------------------------
+    /** @name  schema component model support */
+    // -----------------------------------------------------------------------                                                        
+    //@{
+
+    /***
+      * Return an XSModel derived from the components of all SchemaGrammars
+      * in the grammar pool.  If the pool is locked, this should
+      * be a thread-safe operation.  It should return null if and only if
+      * the pool is empty.
+      *
+      * Calling getXSModel() on an unlocked grammar pool may result in the
+      * creation of a new XSModel with the old XSModel being deleted.  The
+      * function will return a different address for the XSModel if it has
+      * changed.
+      * 
+      * @deprecated (shouldn't use address to determine if XSModel changed)
+      */
+    virtual XSModel *getXSModel() = 0;
+
+    /***
+      * Return an XSModel derived from the components of all SchemaGrammars
+      * in the grammar pool.  If the pool is locked, this should
+      * be a thread-safe operation.
+      *
+      * NOTE: The function should NEVER return NULL.  If there are no grammars in
+      *       the pool it should return an XSModel containing the Schema for Schema.      
+      *
+      * Calling getXSModel() on an unlocked grammar pool may result in the
+      * creation of a new XSModel with the old XSModel being deleted.
+      * The bool parameter will indicate if the XSModel was changed.
+      *     
+      * For source code compatibility, default implementation is to say
+      * XSModelWasChanged.
+      */
+    virtual XSModel *getXSModel(bool& XSModelWasChanged)
+    {
+        XSModelWasChanged = true;
+        return getXSModel();
+    }
+	
+    // @}
+
+    // -----------------------------------------------------------------------
+    /** @name  Getter */
+    // -----------------------------------------------------------------------                                                        
+    //@{
+
+    /**
+      * getMemoryManager
+      *
+      */    
+	inline MemoryManager*    getMemoryManager()
+    {
+        return fMemMgr;
+    }
+
+    /**
+      * Return an XMLStringPool for use by validation routines.  
+      * Implementations should not create a string pool on each call to this
+      * method, but should maintain one string pool for all grammars
+      * for which this pool is responsible.
+      */
+    virtual XMLStringPool *getURIStringPool() = 0;
+    //@}
+
+    // -----------------------------------------------------------------------
+    /** serialization and deserialization support */
+    // -----------------------------------------------------------------------                                                        
+
+    /***
+      *
+      * 1. Context: Serialize/Deserialize All Grammars In One Session
+      *
+      *    Since it is common that a declaration in one grammar may reference 
+      *    to definitions in other grammars, it is required to serialize those 
+      *    related (or interdependent) grammars in to one persistent data store 
+      *    in one serialization session (storing), and deserialize them from the
+      *    persistent data store in one deserialization session (loading) back
+      *    to the grammar pool.    
+      *
+      * 2. Multiple serializations
+      *
+      *    It is acceptable that client application requests more than one 
+      *    grammar serialization on a particular grammar pool, to track the 
+      *    different grammars cached, or for whatever reasons that client 
+      *    application is interested in. 
+      *
+      * 3. Multiple deserializations
+      * 
+      *    Request for grammar deserialization either after the grammar pool has 
+      *    its own cached grammars, or request for more than one grammar 
+      *    deserialization, may cause undesired and unpredictable consequence
+      *    and therefore client application shall be aware that individual 
+      *    implementationis may NOT support this.
+      *
+      *    However it is strongly recommended that the client application requests 
+      *    no more than one grammar deserialization even a particular implementation
+      *    may allow multiple deserializations.
+      *
+      * 4. Locking
+      *
+      *    Both serialization and deserialization requires to lock the grammar pool
+      *    before operation and unlock after operation. In the case the grammar pool
+      *    is locked by a third party, the request for serialization/deserialization
+      *    will NOT be entertained.
+      *
+      * 5. Versioning
+      *
+      *    The Persistent data store has a version tag to be verified during 
+      *    deserialization, thus a grammar pool may decide if it supports
+      *    a binary data created by a different release of Xerces.
+      * 
+      * 6. Clean up
+      *
+      *    The client application shall be aware that in the event of an exception
+      *    thrown due to a corrupted data store during deserialization, implementation
+      *    may not be able to clean up all resources allocated, and therefore it is 
+      *    client application's responsibility to clean up those unreleased resources.
+      *
+      *
+      */
+    virtual void     serializeGrammars(BinOutputStream* const)  = 0; 
+    virtual void     deserializeGrammars(BinInputStream* const) = 0;       
+	   
+    /*
+     * Set/get a flag to not create XSAnnotations when deserializing the grammar.
+     * Defaults to false (create XSAnnotations when deserializing the grammar).
+     */
+    inline void setIgnoreSerializedAnnotations(const bool flag)
+    {
+        fIgnoreSerializedAnnotations = flag;
+    };
+    inline bool getIgnoreSerializedAnnotations() const
+    {
+        return fIgnoreSerializedAnnotations;
+    };
+
+protected :
+    // -----------------------------------------------------------------------
+    /**  Hidden Constructors */
+    // -----------------------------------------------------------------------
+    //@{
+    XMLGrammarPool(MemoryManager* const memMgr = XMLPlatformUtils::fgMemoryManager)
+    :fMemMgr(memMgr)
+    ,fIgnoreSerializedAnnotations(false)
+    {
+    };
+    //@}
+
+private :
+    // -----------------------------------------------------------------------
+    /** name  Unimplemented copy constructor and operator= */
+    // -----------------------------------------------------------------------
+    //@{
+    XMLGrammarPool(const XMLGrammarPool& );
+    XMLGrammarPool& operator=(const XMLGrammarPool& );
+    //@}
+
+    // -----------------------------------------------------------------------
+    //
+    // fMemMgr: plugged-in (or defaulted-in) memory manager
+    //          not owned 
+    //          no reset after initialization
+    //
+    // -----------------------------------------------------------------------
+    
+    MemoryManager* const  fMemMgr;
+    bool fIgnoreSerializedAnnotations;
+
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/StdOutFormatTarget.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/StdOutFormatTarget.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/StdOutFormatTarget.hpp	(revision 2674)
@@ -0,0 +1,57 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: StdOutFormatTarget.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#ifndef StdOutFormatTarget_HEADER_GUARD_
+#define StdOutFormatTarget_HEADER_GUARD_
+
+#include <xercesc/framework/XMLFormatter.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class XMLPARSER_EXPORT StdOutFormatTarget : public XMLFormatTarget {
+public:
+
+    /** @name constructors and destructor */
+    //@{
+    StdOutFormatTarget() ;
+    ~StdOutFormatTarget();
+    //@}
+
+    // -----------------------------------------------------------------------
+    //  Implementations of the format target interface
+    // -----------------------------------------------------------------------
+    virtual void writeChars(const XMLByte* const toWrite
+                          , const unsigned int   count
+                          , XMLFormatter* const  formatter);
+
+    virtual void flush();
+
+private:
+    // -----------------------------------------------------------------------
+    //  Unimplemented methods.
+    // -----------------------------------------------------------------------
+    StdOutFormatTarget(const StdOutFormatTarget&);
+    StdOutFormatTarget& operator=(const StdOutFormatTarget&);
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/XMLElementDecl.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/XMLElementDecl.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/XMLElementDecl.hpp	(revision 2674)
@@ -0,0 +1,625 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: XMLElementDecl.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(XMLELEMENTDECL_HPP)
+#define XMLELEMENTDECL_HPP
+
+#include <xercesc/framework/XMLAttr.hpp>
+#include <xercesc/framework/XMLAttDefList.hpp>
+#include <xercesc/util/XMLString.hpp>
+#include <xercesc/util/PlatformUtils.hpp>
+#include <xercesc/internal/XSerializable.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class ContentSpecNode;
+class XMLContentModel;
+
+/**
+ *  This class defines the core information of an element declaration. Each
+ *  validator (DTD, Schema, etc...) will have its own information that it
+ *  associations with the declaration of an element, but they must all share
+ *  at least this core information, i.e. they must all derive from this
+ *  class. The set of info enforced at this level is driven by the needs of
+ *  XML 1.0 spec validation and well formedness checks.
+ *
+ *  This class defines some special element id values for invalid elements
+ *  and PCDATA elements, as well as a string for the special PCDATA element
+ *  name. All validators must honor these special values in order to allow
+ *  content models to work generically (i.e. to let code know when its dealing
+ *  with invalid or PCDATA element ids without having to know what type of
+ *  validator its messing with.)
+ */
+class XMLPARSER_EXPORT XMLElementDecl : public XSerializable, public XMemory
+{
+ public:
+    // -----------------------------------------------------------------------
+    //  Class specific types
+    //
+    //  CreateReasons
+    //      This type is used to store how an element declaration got into
+    //      the grammar's element pool. They are faulted in for various
+    //      reasons.
+    //
+    //  LookupOpts
+    //      These are the values used by the attribute lookup methods.
+    //
+    //  CharDataOpts
+    //      This is used to indicate how this type of element reacts to
+    //      character data as content.
+    // -----------------------------------------------------------------------
+    enum CreateReasons
+    {
+        NoReason
+        , Declared
+        , AttList
+        , InContentModel
+        , AsRootElem
+        , JustFaultIn
+    };
+
+    /**
+     * @deprecated Use of addIfNotFound couldl produce undefined 
+     * behaviour in multithreaded environments.
+     */
+    enum LookupOpts
+    {
+        AddIfNotFound
+        , FailIfNotFound
+    };
+
+    enum CharDataOpts
+    {
+        NoCharData
+        , SpacesOk
+        , AllCharData
+    };
+
+
+    // -----------------------------------------------------------------------
+    //  Public static data
+    //
+    //  fgInvalidElemId
+    //      A value to represent an invalid element node id.
+    //
+    //  fgPCDataElemId
+    //      This is the value to use to represent a PCDATA node when an
+    //      element id is required.
+    //
+    //  fgPCDataElemName
+    //      This is the value to use to represent a PCDATA node when an
+    //      element name is required.
+    // -----------------------------------------------------------------------
+    static const unsigned int   fgInvalidElemId;
+    static const unsigned int   fgPCDataElemId;
+    static const XMLCh          fgPCDataElemName[];
+
+
+
+    // -----------------------------------------------------------------------
+    //  Destructor
+    // -----------------------------------------------------------------------
+    /** @name Destructor */
+    //@{
+    virtual ~XMLElementDecl();
+    //@}
+
+
+    // -----------------------------------------------------------------------
+    //  The virtual element decl interface
+    // -----------------------------------------------------------------------
+
+    /** @name Virual ElementDecl interface */
+    //@{
+
+    /** Find an attribute by name or optionally fault it in.
+      *
+      * The derived class should look up the passed attribute in the list of
+      * of attributes for this element. If namespaces are enabled, then it
+      * should use the uriId/baseName pair, else it should use the qName. The
+      * options allow the caller to indicate whether the attribute should be
+      * defaulted in if not found. If it is defaulted in, then wasAdded should
+      * be set, else it should be cleared. If its not found and the caller does
+      * not want defaulting, then return a null pointer.
+      * Note that, in a multithreaded environment, it is dangerous for a 
+      * caller to invoke this method with options set to AddIfNotFound.
+      *
+      * @param  qName       This is the qName of the attribute, i.e. the actual
+      *                     lexical name found.
+      *
+      * @param  uriId       This is the id of the URI of the namespace to which
+      *                     this attribute mapped. Only valid if namespaces are
+      *                     enabled.
+      *
+      * @param  baseName    This is the base part of the name, i.e. after any
+      *                     prefix.
+      *
+      * @param  prefix      The prefix, if any, of this attribute's name. If
+      *                     this is empty, then uriID is meaningless as well.
+      *
+      * @param  options     Indicates the lookup options.
+      *
+      * @param  wasAdded    Should be set if the attribute is faulted in, else
+      *                     cleared.
+      */
+    virtual XMLAttDef* findAttr
+    (
+        const   XMLCh* const    qName
+        , const unsigned int    uriId
+        , const XMLCh* const    baseName
+        , const XMLCh* const    prefix
+        , const LookupOpts      options
+        ,       bool&           wasAdded
+    )   const = 0;
+
+    /** Get a list of attributes defined for this element.
+      *
+      * The derived class should return a reference to some member object which
+      * implements the XMLAttDefList interface. This object gives the scanner the
+      * ability to look through the attributes defined for this element.
+      *
+      * It is done this way for efficiency, though of course this is not thread
+      * safe. The scanner guarantees that it won't ever call this method in any
+      * nested way, but the outside world must be careful about when it calls
+      * this method, and optimally never would.
+      */
+    virtual XMLAttDefList& getAttDefList() const = 0;
+
+    /** The character data options for this element type
+      *
+      * The derived class should return an appropriate character data opts value
+      * which correctly represents its tolerance towards whitespace or character
+      * data inside of its instances. This allows the scanner to do all of the
+      * validation of character data.
+      */
+    virtual CharDataOpts getCharDataOpts() const = 0;
+
+    /** Indicate whether this element type defined any attributes
+      *
+      * The derived class should return a boolean that indicates whether this
+      * element has any attributes defined for it or not. This is an optimization
+      * that allows the scanner to skip some work if no attributes exist.
+      */
+    virtual bool hasAttDefs() const = 0;
+
+    /** Reset the flags on the attribute definitions.
+      *
+      * This method is called by the scanner at the beginning of each scan
+      * of a start tag, asking this element decl to reset the 'declared' flag
+      * of each of its attribute defs. This allows the scanner to mark each
+      * one as declared yet or not.
+      */
+    virtual bool resetDefs() = 0;
+
+    /** Get a pointer to the content spec node
+      *
+      * This method will return a const pointer to the content spec node object
+      * of this element.
+      *
+      * @return A const pointer to the element's content spec node
+      */
+    virtual const ContentSpecNode* getContentSpec() const = 0;
+
+    /** Get a pointer to the content spec node
+      *
+      * This method is identical to the previous one, except that it is non
+      * const.
+      */
+    virtual ContentSpecNode* getContentSpec() = 0;
+
+    /** Set the content spec node object for this element type
+      *
+      * This method will adopt the based content spec node object. This is called
+      * by the actual validator which is parsing its DTD or Schema or whatever
+      * and store it on the element decl object via this method.
+      *
+      * @param  toAdopt This method will adopt the passed content node spec
+      *         object. Any previous object is destroyed.
+      */
+    virtual void setContentSpec(ContentSpecNode* toAdopt) = 0;
+
+    /** Get a pointer to the abstract content model
+      *
+      * This method will return a const pointer to the content model object
+      * of this element. This class is a simple abstraction that allows an
+      * element to define and use multiple, specialized content model types
+      * internally but still allow the outside world to do simple stuff with
+      * them.
+      *
+      * @return A pointer to the element's content model, via the basic
+      * abstract content model type.
+      */
+    virtual XMLContentModel* getContentModel() = 0;
+
+    /** Set the content model object for this element type
+      *
+      * This method will adopt the based content model object. This is called
+      * by the actual validator which is parsing its DTD or Schema or whatever
+      * a creating an element decl. It will build what it feels is the correct
+      * content model type object and store it on the element decl object via
+      * this method.
+      *
+      * @param  newModelToAdopt This method will adopt the passed content model
+      *         object. Any previous object is destroyed.
+      */
+    virtual void setContentModel(XMLContentModel* const newModelToAdopt) = 0;
+
+    /** Geta formatted string of the content model
+      *
+      * This method is a convenience method which will create a formatted
+      * representation of the content model of the element. It will not always
+      * exactly recreate the original model, since some normalization or
+      * or reformatting may occur. But, it will be a technically accurate
+      * representation of the original content model.
+      *
+      * @return A pointer to an internal buffer which contains the formatted
+      *         content model. The caller does not own this buffer and should
+      *         copy it if it needs to be kept around.
+      */
+    virtual const XMLCh* getFormattedContentModel ()   const = 0;
+
+    //@}
+
+
+    // -----------------------------------------------------------------------
+    //  Getter methods
+    // -----------------------------------------------------------------------
+
+    /** @name Getter methods */
+    //@{
+
+    /** Get the base name of this element type.
+      *
+      * Return the base name part of the element's name. This is the
+      * same regardless of whether namespaces are enabled or not.
+      *
+      * @return A const pointer to the base name of the element decl.
+      */
+    const XMLCh* getBaseName() const;
+    XMLCh* getBaseName();
+
+    /** Get the URI id of this element type.
+      *
+      * Return the URI Id of this element.
+      *
+      * @return The URI Id of the element decl, or the emptyNamespaceId if not applicable.
+      */
+    unsigned int getURI() const;
+
+    /** Get the QName of this element type.
+      *
+      * Return the QName part of the element's name.  This is the
+      * same regardless of whether namespaces are enabled or not.
+      *
+      * @return A const pointer to the QName of the element decl.
+      */
+    const QName* getElementName() const;
+    QName* getElementName();
+
+    /** Get the full name of this element type.
+      *
+      * Return the full name of the element. If namespaces
+      * are not enabled, then this is the qName. Else it is the {uri}baseName
+      * form. For those validators that always require namespace processing, it
+      * will always be in the latter form because namespace processing will always
+      * be on.
+      */
+    const XMLCh* getFullName() const;
+
+    /** Get the create reason for this element type
+      *
+      * This method returns an enumeration which indicates why this element
+      * declaration exists. Elements can be used before they are actually
+      * declared, so they will often be faulted into the pool and marked as
+      * to why they are there.
+      *
+      * @return An enumerated value that indicates the reason why this element
+      * was added to the element decl pool.
+      */
+
+    CreateReasons getCreateReason() const;
+
+    /** Get the element decl pool id for this element type
+      *
+      * This method will return the element decl pool id of this element
+      * declaration. This uniquely identifies this element type within the
+      * parse event that it is declared within. This value is assigned by the
+      * grammar whose decl pool this object belongs to.
+      *
+      * @return The element decl id of this element declaration.
+      */
+    unsigned int getId() const;
+
+
+    /**
+     * @return the uri part of DOM Level 3 TypeInfo
+     * @deprecated
+     */
+    virtual const XMLCh* getDOMTypeInfoUri() const = 0;
+
+    /**
+     * @return the name part of DOM Level 3 TypeInfo
+     * @deprecated
+     */
+    virtual const XMLCh* getDOMTypeInfoName() const = 0;
+
+
+    /** Indicate whether this element type has been declared yet
+      *
+      * This method returns a boolean that indicates whether this element
+      * has been declared yet. There are a number of reasons why an element
+      * declaration can be faulted in, but eventually it must be declared or
+      * its an error. See the CreateReasons enumeration.
+      *
+      * @return true if this element has been declared, else false.
+      */
+    bool isDeclared() const;
+
+    /** Indicate whether this element type has been declared externally
+      *
+      * This method returns a boolean that indicates whether this element
+      * has been declared externally.
+      *
+      * @return true if this element has been declared externally, else false.
+      */
+
+    bool isExternal() const;
+
+    /** Get the memory manager
+      *
+      * This method returns the configurable memory manager used by the
+      * element declaration for dynamic allocation/deacllocation.
+      *
+      * @return the memory manager
+      */
+    MemoryManager* getMemoryManager() const;
+
+    //@}
+
+
+    // -----------------------------------------------------------------------
+    //  Setter methods
+    // -----------------------------------------------------------------------
+
+    /** @name Setter methods */
+    //@{
+
+    /** Set the element name object for this element type
+      *
+      * This method will adopt the based content spec node object. This is called
+      * by the actual validator which is parsing its DTD or Schema or whatever
+      * and store it on the element decl object via this method.
+      *
+      * @param  prefix       Prefix of the element
+      * @param  localPart    Base Name of the element
+      * @param  uriId        The uriId of the element
+      */
+      void setElementName(const XMLCh* const       prefix
+                        , const XMLCh* const       localPart
+                        , const int                uriId );
+
+    /** Set the element name object for this element type
+      *
+      * This method will adopt the based content spec node object. This is called
+      * by the actual validator which is parsing its DTD or Schema or whatever
+      * and store it on the element decl object via this method.
+      *
+      * @param  rawName      Full Name of the element
+      * @param  uriId        The uriId of the element
+      */
+      void setElementName(const XMLCh* const    rawName
+                        , const int             uriId );
+
+    /** Set the element name object for this element type
+      *
+      * This method will adopt the based content spec node object. This is called
+      * by the actual validator which is parsing its DTD or Schema or whatever
+      * and store it on the element decl object via this method.
+      *
+      * @param  elementName  QName of the element
+      */
+      void setElementName(const QName* const    elementName);
+
+    /** Update the create reason for this element type.
+      *
+      * This method will update the 'create reason' field for this element
+      * decl object. As the validator parses its DTD, Schema, etc... it will
+      * encounter various references to an element declaration, which will
+      * cause the element declaration to either be declared or to be faulted
+      * into the pool in preperation for some future declaration. As it does
+      * so,it will update this field to indicate the current satus of the
+      * decl object.
+      */
+    void setCreateReason(const CreateReasons newReason);
+
+    /** Set the element decl pool id for this element type
+      *
+      * This method will set the pool id of this element decl. This is called
+      * by the grammar which created this object, and will provide this
+      * decl object with a unique id within the parse event that created it.
+      */
+    void setId(const unsigned int newId);
+
+
+    /** Set the element decl to indicate external declaration
+      *
+      */
+    void setExternalElemDeclaration(const bool aValue);
+
+    //@}
+
+
+    // -----------------------------------------------------------------------
+    //  Miscellaneous methods
+    // -----------------------------------------------------------------------
+
+    /** @name Miscellenous methods */
+    //@{
+
+    //@}
+
+    /***
+     * Support for Serialization/De-serialization
+     ***/
+    DECL_XSERIALIZABLE(XMLElementDecl)
+
+    enum objectType
+    {
+        Schema
+      , DTD
+      , UnKnown
+    };
+
+    virtual XMLElementDecl::objectType  getObjectType() const = 0;
+
+    static void            storeElementDecl(XSerializeEngine&        serEng
+                                          , XMLElementDecl*    const element);
+
+    static XMLElementDecl* loadElementDecl(XSerializeEngine& serEng);
+
+protected :
+    // -----------------------------------------------------------------------
+    //  Hidden constructors
+    // -----------------------------------------------------------------------
+    XMLElementDecl(MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+
+private :
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    XMLElementDecl(const XMLElementDecl&);
+    XMLElementDecl& operator=(const XMLElementDecl&);
+
+
+    // -----------------------------------------------------------------------
+    //  Data members
+    //
+    //  fElementName
+    //      This is the name of the element decl.
+    //
+    //  fCreateReason
+    //      We sometimes have to put an element decl object into the elem
+    //      decl pool before the element's declaration is seen, such as when
+    //      its used in another element's content model or an att list is
+    //      seen for it. This flag tells us whether its been declared, and
+    //      if not why it had to be created.
+    //
+    //  fId
+    //      The unique id of this element. This is created by the derived
+    //      class, or more accurately the grammar that owns the objects
+    //      of the derived types. But, since they all have to have them, we
+    //      let them all store the id here. It is defaulted to have the
+    //      value fgInvalidElem until explicitly set.
+    //
+    //  fExternalElement
+    //      This flag indicates whether or the element was declared externally.
+    // -----------------------------------------------------------------------
+    MemoryManager*      fMemoryManager;
+    QName*              fElementName;
+    CreateReasons       fCreateReason;
+    unsigned int        fId;
+    bool                fExternalElement;
+};
+
+
+// ---------------------------------------------------------------------------
+//  XMLElementDecl: Getter methods
+// ---------------------------------------------------------------------------
+inline const XMLCh* XMLElementDecl::getBaseName() const
+{
+    return fElementName->getLocalPart();
+}
+
+inline XMLCh* XMLElementDecl::getBaseName()
+{
+    return fElementName->getLocalPart();
+}
+
+inline unsigned int XMLElementDecl::getURI() const
+{
+    return fElementName->getURI();
+}
+
+inline const QName* XMLElementDecl::getElementName() const
+{
+    return fElementName;
+}
+
+inline QName* XMLElementDecl::getElementName()
+{
+    return fElementName;
+}
+
+inline const XMLCh* XMLElementDecl::getFullName() const
+{
+    return fElementName->getRawName();
+}
+
+inline XMLElementDecl::CreateReasons XMLElementDecl::getCreateReason() const
+{
+    return fCreateReason;
+}
+
+inline unsigned int XMLElementDecl::getId() const
+{
+    return fId;
+}
+
+inline bool XMLElementDecl::isDeclared() const
+{
+    return (fCreateReason == Declared);
+}
+
+
+inline bool XMLElementDecl::isExternal() const
+{
+    return fExternalElement;
+}
+
+inline MemoryManager* XMLElementDecl::getMemoryManager() const
+{
+    return fMemoryManager;
+}
+
+
+// ---------------------------------------------------------------------------
+//  XMLElementDecl: Setter methods
+// ---------------------------------------------------------------------------
+inline void
+XMLElementDecl::setCreateReason(const XMLElementDecl::CreateReasons newReason)
+{
+    fCreateReason = newReason;
+}
+
+inline void XMLElementDecl::setId(const unsigned int newId)
+{
+    fId = newId;
+}
+
+
+inline void XMLElementDecl::setExternalElemDeclaration(const bool aValue)
+{
+    fExternalElement = aValue;
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/MemoryManager.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/MemoryManager.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/MemoryManager.hpp	(revision 2674)
@@ -0,0 +1,110 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+ /*
+ * $Id: MemoryManager.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+#if !defined(MEMORYMANAGER_HPP)
+#define MEMORYMANAGER_HPP
+
+#include <xercesc/util/XercesDefs.hpp>
+#include <stdlib.h>
+
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+
+/**
+ *  Configurable memory manager
+ *
+ *  <p>This interface allows outside applications to plug in their own memory
+ *  manager to be used by Xerces for memory allocation/deallocation.</p> 
+ */
+class XMLPARSER_EXPORT MemoryManager
+{
+public:
+    // -----------------------------------------------------------------------
+    //  Constructors are hidden, only the virtual destructor is exposed
+    // -----------------------------------------------------------------------
+
+    /** @name Destructor */
+    //@{
+
+    /**
+      * Default destructor
+      */
+    virtual ~MemoryManager()
+    {
+    }
+    //@}
+
+
+    // -----------------------------------------------------------------------
+    //  The virtual memory manager interface
+    // -----------------------------------------------------------------------
+    /** @name The pure virtual methods in this interface. */
+    //@{
+
+    /**
+      * This method allocates requested memory.
+      *
+      * @param size The requested memory size
+      *
+      * @return A pointer to the allocated memory
+      */
+    virtual void* allocate(size_t size) = 0;
+
+    /**
+      * This method deallocates memory
+      *
+      * @param p The pointer to the allocated memory to be deleted
+      */
+    virtual void deallocate(void* p) = 0;
+
+    //@}
+
+
+protected :
+    // -----------------------------------------------------------------------
+    //  Hidden Constructors
+    // -----------------------------------------------------------------------
+    /** @name Constructor */
+    //@{
+
+    /**
+      * Protected default constructor
+      */
+    MemoryManager()
+    {
+    }
+    //@}
+
+
+
+private:
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    MemoryManager(const MemoryManager&);
+    MemoryManager& operator=(const MemoryManager&);
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/Wrapper4InputSource.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/Wrapper4InputSource.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/Wrapper4InputSource.hpp	(revision 2674)
@@ -0,0 +1,284 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: Wrapper4InputSource.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+#ifndef WRAPPER4INPUTSOURCE_HPP
+#define WRAPPER4INPUTSOURCE_HPP
+
+#include <xercesc/dom/DOMInputSource.hpp>
+#include <xercesc/util/PlatformUtils.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class InputSource;
+
+
+/**
+  * Wrap a SAX InputSource object to a DOM InputSource.
+  */
+class XMLPARSER_EXPORT Wrapper4InputSource: public DOMInputSource
+{
+public:
+    /** @name Constructors and Destructor */
+    //@{
+
+  /**
+    * Constructor
+    *
+    * Wrap a SAX InputSource and pretend it to be a DOMInputSource.
+    * By default, the wrapper will adopt the SAX InputSource that is wrapped.
+    *
+    * @param  inputSource  The SAX InputSource to be wrapped
+    * @param  adoptFlag    Indicates if the wrapper should adopt the wrapped
+    *                      SAX InputSource. Default is true.
+    * @param manager The MemoryManager to use to allocate objects
+    */
+    Wrapper4InputSource(InputSource* const inputSource
+                        , const bool adoptFlag = true
+                        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+
+  /**
+    * Destructor
+    *
+    */
+    virtual ~Wrapper4InputSource();
+    //@}
+
+
+    // -----------------------------------------------------------------------
+    /** @name Virtual input source interface */
+    //@{
+  /**
+    * <p><b>"Experimental - subject to change"</b></p>
+    *
+    * Makes the byte stream for this input source.
+    *
+    * <p>The function will call the makeStream of the wrapped input source.
+    * The returned stream becomes the parser's property.</p>
+    *
+    * @see BinInputStream
+    */
+    BinInputStream* makeStream() const;
+
+    //@}
+
+    // -----------------------------------------------------------------------
+    /** @name Getter methods */
+    //@{
+  /**
+    * <p><b>"Experimental - subject to change"</b></p>
+    *
+    * An input source can be set to force the parser to assume a particular
+    * encoding for the data that input source reprsents, via the setEncoding()
+    * method. This method will delegate to the wrapped input source to return
+    * name of the encoding that is to be forced. If the encoding has never
+    * been forced, it returns a null pointer.
+    *
+    * @return The forced encoding, or null if none was supplied.
+    * @see #setEncoding
+    */
+    const XMLCh* getEncoding() const;
+
+
+  /**
+    * <p><b>"Experimental - subject to change"</b></p>
+    *
+    * Get the public identifier for this input source. Delegated to the
+    * wrapped input source object.
+    *
+    * @return The public identifier, or null if none was supplied.
+    * @see #setPublicId
+    */
+    const XMLCh* getPublicId() const;
+
+
+  /**
+    * <p><b>"Experimental - subject to change"</b></p>
+    *
+    * Get the system identifier for this input source. Delegated to the
+    * wrapped input source object.
+    *
+    * <p>If the system ID is a URL, it will be fully resolved.</p>
+    *
+    * @return The system identifier.
+    * @see #setSystemId
+    */
+    const XMLCh* getSystemId() const;
+
+   /**
+     * Get the base URI to be used for resolving relative URIs to absolute
+     * URIs. If the baseURI is itself a relative URI, the behavior is
+     * implementation dependent. Delegated to the wrapped intput source
+     * object.
+     *
+     * <p><b>"Experimental - subject to change"</b></p>
+     *
+     * @return The base URI.
+     * @see #setBaseURI
+     * @since DOM Level 3
+     */
+    const XMLCh* getBaseURI() const;
+
+ /**
+    * <p><b>"Experimental - subject to change"</b></p>
+    *
+    * Get the flag that indicates if the parser should issue fatal error if this input source
+    * is not found. Delegated to the wrapped input source object.
+    *
+    * @return True if the parser should issue fatal error if this input source is not found.
+    *         False if the parser issue warning message instead.
+    * @see #setIssueFatalErrorIfNotFound
+    */
+    bool getIssueFatalErrorIfNotFound() const;
+
+    //@}
+
+
+    // -----------------------------------------------------------------------
+    /** @name Setter methods */
+    //@{
+
+  /**
+    * <p><b>"Experimental - subject to change"</b></p>
+    *
+    * Set the encoding which will be required for use with the XML text read
+    * via a stream opened by this input source. This will update the wrapped
+    * input source object.
+    *
+    * <p>This is usually not set, allowing the encoding to be sensed in the
+    * usual XML way. However, in some cases, the encoding in the file is known
+    * to be incorrect because of intermediate transcoding, for instance
+    * encapsulation within a MIME document.
+    *
+    * @param encodingStr The name of the encoding to force.
+    */
+    void setEncoding(const XMLCh* const encodingStr);
+
+
+  /**
+    * <p><b>"Experimental - subject to change"</b></p>
+    *
+    * Set the public identifier for this input source. This will update the
+    * wrapped input source object.
+    *
+    * <p>The public identifier is always optional: if the application writer
+    * includes one, it will be provided as part of the location information.</p>
+    *
+    * @param publicId The public identifier as a string.
+    * @see Locator#getPublicId
+    * @see SAXParseException#getPublicId
+    * @see #getPublicId
+    */
+    void setPublicId(const XMLCh* const publicId);
+
+  /**
+    * <p><b>"Experimental - subject to change"</b></p>
+    *
+    * Set the system identifier for this input source. This will update the
+    * wrapped input source object.
+    *
+    * <p>The system id is always required. The public id may be used to map
+    * to another system id, but the system id must always be present as a fall
+    * back.</p>
+    *
+    * <p>If the system ID is a URL, it must be fully resolved.</p>
+    *
+    * @param systemId The system identifier as a string.
+    * @see #getSystemId
+    * @see Locator#getSystemId
+    * @see SAXParseException#getSystemId
+    */
+    void setSystemId(const XMLCh* const systemId);
+
+   /**
+    * Set the base URI to be used for resolving relative URIs to absolute
+    * URIs. If the baseURI is itself a relative URI, the behavior is
+    * implementation dependent. This will update the wrapped input source
+    * object.
+    *
+    * <p><b>"Experimental - subject to change"</b></p>
+    *
+    * @param baseURI The base URI.
+    * @see #getBaseURI
+    * @since DOM Level 3
+    */
+    void setBaseURI(const XMLCh* const baseURI);
+
+  /**
+    * <p><b>"Experimental - subject to change"</b></p>
+    *
+    * Indicates if the parser should issue fatal error if this input source
+    * is not found.  If set to false, the parser issue warning message
+    * instead. This will update the wrapped input source object.
+    *
+    * @param flag  True if the parser should issue fatal error if this input
+    *              source is not found.
+    *              If set to false, the parser issue warning message instead.
+    *              (Default: true)
+    *
+    * @see #getIssueFatalErrorIfNotFound
+    */
+    void setIssueFatalErrorIfNotFound(const bool flag);
+
+   /**
+    * Called to indicate that this DOMInputSource is no longer in use
+    * and that the implementation may relinquish any resources associated with it.
+    *
+    * Access to a released object will lead to unexpected result.
+    */
+    void              release();
+
+    //@}
+
+
+private:
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    Wrapper4InputSource(const Wrapper4InputSource&);
+    Wrapper4InputSource& operator=(const Wrapper4InputSource&);
+
+    // -----------------------------------------------------------------------
+    //  Private data members
+    // -----------------------------------------------------------------------
+    bool         fAdoptInputSource;
+    InputSource* fInputSource;
+};
+
+
+// ---------------------------------------------------------------------------
+//  Wrapper4InputSource: Getter methods
+// ---------------------------------------------------------------------------
+inline const XMLCh* Wrapper4InputSource::getBaseURI() const
+{
+    return 0; // REVISIT - should we return an empty string?
+}
+
+// ---------------------------------------------------------------------------
+//  Wrapper4InputSource: Setter methods
+// ---------------------------------------------------------------------------
+inline void Wrapper4InputSource::setBaseURI(const XMLCh* const)
+{
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/BinOutputStream.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/BinOutputStream.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/BinOutputStream.hpp	(revision 2674)
@@ -0,0 +1,65 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: BinOutputStream.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(BIN_OUTPUT_STREAM_HPP)
+#define BIN_OUTPUT_STREAM_HPP
+
+#include <xercesc/util/XMemory.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class XMLUTIL_EXPORT BinOutputStream : public XMemory
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Virtual destructor for derived classes
+    // -----------------------------------------------------------------------
+    virtual ~BinOutputStream();
+
+    // -----------------------------------------------------------------------
+    //  The virtual output stream interface
+    // -----------------------------------------------------------------------
+    virtual unsigned int curPos() const = 0;
+
+    virtual void writeBytes
+    (
+          const XMLByte* const      toGo
+        , const unsigned int        maxToWrite
+    ) = 0;
+
+protected :
+    // -----------------------------------------------------------------------
+    //  Hidden Constructors
+    // -----------------------------------------------------------------------
+    BinOutputStream();
+
+
+private :
+    // -----------------------------------------------------------------------
+    //  Unimplemented Constructors
+    // -----------------------------------------------------------------------
+    BinOutputStream(const BinOutputStream&);
+    BinOutputStream& operator=(const BinOutputStream&);
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/LocalFileFormatTarget.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/LocalFileFormatTarget.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/LocalFileFormatTarget.hpp	(revision 2674)
@@ -0,0 +1,101 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: LocalFileFormatTarget.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#ifndef LocalFileFormatTarget_HEADER_GUARD_
+#define LocalFileFormatTarget_HEADER_GUARD_
+
+#include <xercesc/framework/XMLFormatter.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class XMLPARSER_EXPORT LocalFileFormatTarget : public XMLFormatTarget {
+public:
+
+    /** @name constructors and destructor */
+    //@{
+    LocalFileFormatTarget
+    (
+        const XMLCh* const
+        , MemoryManager* const  manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    LocalFileFormatTarget
+    (
+        const char* const
+        , MemoryManager* const  manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    ~LocalFileFormatTarget();
+    //@}
+
+    // -----------------------------------------------------------------------
+    //  Implementations of the format target interface
+    // -----------------------------------------------------------------------
+    virtual void writeChars(const XMLByte* const toWrite
+                          , const unsigned int   count
+                          , XMLFormatter* const  formatter);
+
+    virtual void flush();
+
+private:
+    // -----------------------------------------------------------------------
+    //  Unimplemented methods.
+    // -----------------------------------------------------------------------
+    LocalFileFormatTarget(const LocalFileFormatTarget&);
+    LocalFileFormatTarget& operator=(const LocalFileFormatTarget&);
+
+    // -----------------------------------------------------------------------
+    //  Private helpers
+    // -----------------------------------------------------------------------
+    void flushBuffer();
+    bool insureCapacity(const unsigned int extraNeeded);
+
+    // -----------------------------------------------------------------------
+    //  Private data members
+    //
+    //  fSource
+    //      The source file that we represent. The FileHandle type is defined
+    //      per platform.
+    //
+    //  fDataBuf
+    //      The pointer to the buffer data. Its always
+    //      one larger than fCapacity, to leave room for the null terminator.
+    //
+    //  fIndex
+    //      The current index into the buffer, as characters are appended
+    //      to it. If its zero, then the buffer is empty.
+    //
+    //  fCapacity
+    //      The current capacity of the buffer. Its actually always one
+    //      larger, to leave room for the null terminator.
+    // -----------------------------------------------------------------------
+    FileHandle      fSource;
+    XMLByte*        fDataBuf;
+    unsigned int    fIndex;
+    unsigned int    fCapacity;
+    MemoryManager*  fMemoryManager;
+};
+
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
+
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/XMLGrammarDescription.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/XMLGrammarDescription.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/XMLGrammarDescription.hpp	(revision 2674)
@@ -0,0 +1,105 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: XMLGrammarDescription.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(XMLGRAMMARDESCRIPTION_HPP)
+#define XMLGRAMMARDESCRIPTION_HPP
+
+#include <xercesc/util/XMemory.hpp>
+#include <xercesc/validators/common/Grammar.hpp>
+
+#include <xercesc/internal/XSerializable.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class XMLPARSER_EXPORT XMLGrammarDescription : public XSerializable, public XMemory
+{
+public :
+    // -----------------------------------------------------------------------
+    /** @name Virtual destructor for derived classes */
+    // -----------------------------------------------------------------------
+    //@{
+    /**
+      * virtual destructor
+      *
+      */
+    virtual ~XMLGrammarDescription();
+    //@}
+
+    // -----------------------------------------------------------------------
+    /** @name The Grammar Description Interface */
+    // -----------------------------------------------------------------------
+    //@{     
+    /**
+      * getGrammarType
+      *
+      */
+    virtual Grammar::GrammarType   getGrammarType() const = 0;
+    
+    /**
+      * getGrammarKey
+      *
+      */
+    virtual const XMLCh*           getGrammarKey() const = 0;    
+    //@}
+    
+    inline MemoryManager*          getMemoryManager() const;
+
+    /***
+     * Support for Serialization/De-serialization
+     ***/
+    DECL_XSERIALIZABLE(XMLGrammarDescription)
+
+protected :
+    // -----------------------------------------------------------------------
+    /**  Hidden Constructors */
+    // -----------------------------------------------------------------------
+    //@{
+    XMLGrammarDescription(MemoryManager* const memMgr = XMLPlatformUtils::fgMemoryManager);
+    //@}
+
+private :
+    // -----------------------------------------------------------------------
+    /** name  Unimplemented copy constructor and operator= */
+    // -----------------------------------------------------------------------
+    //@{
+    XMLGrammarDescription(const XMLGrammarDescription& );
+    XMLGrammarDescription& operator=(const XMLGrammarDescription& );
+    //@}
+
+    // -----------------------------------------------------------------------
+    //
+    // fMemMgr: plugged-in (or defaulted-in) memory manager, 
+    //          not owned 
+    //          no reset after initialization
+	//          allow derivatives to access directly
+    //
+    // -----------------------------------------------------------------------    
+    MemoryManager* const  fMemMgr;     
+};
+
+inline MemoryManager* XMLGrammarDescription::getMemoryManager() const
+{
+    return fMemMgr;
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/StdInInputSource.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/StdInInputSource.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/StdInInputSource.hpp	(revision 2674)
@@ -0,0 +1,108 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: StdInInputSource.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+#if !defined(STDININPUTSOURCE_HPP)
+#define STDININPUTSOURCE_HPP
+
+#include <xercesc/sax/InputSource.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class BinInputStream;
+
+
+/**
+ *  This class is a derivative of the standard InputSource class. It provides
+ *  for the parser access to data via the standard input. This input source
+ *  is not commonly used, but can be useful when implementing such things
+ *  as pipe based tools which exchange XML data.
+ *
+ *  As with all InputSource derivatives. The primary objective of an input
+ *  source is to create an input stream via which the parser can spool in
+ *  data from the referenced source.
+ */
+class XMLPARSER_EXPORT StdInInputSource : public InputSource
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+
+    /** @name Constructor */
+    //@{
+
+    /**
+      * Since the standard input is a canned source, the constructor is very
+      * simple. It just uses local platform services to open up the standard
+      * input source as file, a new handleof which it gives to each new stream
+      * it creates.
+      */
+    StdInInputSource(MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+    //@}
+
+    /** @name Destructor */
+    //@{
+    ~StdInInputSource();
+    //@}
+
+
+    // -----------------------------------------------------------------------
+    //  Virtual input source interface
+    // -----------------------------------------------------------------------
+
+
+    /** @name Virtual methods */
+    //@{
+
+    /**
+     * This method will return a binary input stream derivative that will
+     * parse from the standard input of the local host.
+     *
+     * @return A dynamically allocated binary input stream derivative that
+     *         can parse from the standardinput.
+     */
+    BinInputStream* makeStream() const;
+
+    //@}
+
+private:
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    StdInInputSource(const StdInInputSource&);
+    StdInInputSource& operator=(const StdInInputSource&);
+
+};
+
+inline StdInInputSource::StdInInputSource(MemoryManager* const manager) :
+
+    InputSource("stdin", manager)
+{
+}
+
+inline StdInInputSource::~StdInInputSource()
+{
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/XMLFormatter.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/XMLFormatter.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/XMLFormatter.hpp	(revision 2674)
@@ -0,0 +1,529 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: XMLFormatter.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(XMLFORMATTER_HPP)
+#define XMLFORMATTER_HPP
+
+#include <xercesc/util/PlatformUtils.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class XMLFormatTarget;
+class XMLTranscoder;
+
+/**
+ *  This class provides the basic formatting capabilities that are required
+ *  to turn the Unicode based XML data from the parsers into a form that can
+ *  be used on non-Unicode based systems, that is, into local or generic text
+ *  encodings.
+ *
+ *  A number of flags are provided to control whether various optional
+ *  formatting operations are performed.
+ */
+class XMLPARSER_EXPORT XMLFormatter : public XMemory
+{
+public:
+    // -----------------------------------------------------------------------
+    //  Class types
+    // -----------------------------------------------------------------------
+    /** @name Public Contants */
+    //@{
+    /**
+     * EscapeFlags - Different styles of escape flags to control various formatting.
+     *
+     * <p><code>NoEscapes:</code>
+     * No character needs to be escaped.   Just write them out as is.</p>
+     * <p><code>StdEscapes:</code>
+     * The following characters need to be escaped:</p>
+     * <table border='1'>
+     * <tr>
+     * <td>character</td>
+     * <td>should be escaped and written as</td>
+     * </tr>
+     * <tr>
+     * <td valign='top' rowspan='1' colspan='1'>&amp;</td>
+     * <td valign='top' rowspan='1' colspan='1'>&amp;amp;</td>
+     * </tr>
+     * <tr>
+     * <td valign='top' rowspan='1' colspan='1'>&gt;</td>
+     * <td valign='top' rowspan='1' colspan='1'>&amp;gt;</td>
+     * </tr>
+     * <tr>
+     * <td valign='top' rowspan='1' colspan='1'>&quot;</td>
+     * <td valign='top' rowspan='1' colspan='1'>&amp;quot;</td>
+     * </tr>
+     * <tr>
+     * <td valign='top' rowspan='1' colspan='1'>&lt;</td>
+     * <td valign='top' rowspan='1' colspan='1'>&amp;lt;</td>
+     * </tr>
+     * <tr>
+     * <td valign='top' rowspan='1' colspan='1'>&apos;</td>
+     * <td valign='top' rowspan='1' colspan='1'>&amp;apos;</td>
+     * </tr>
+     * </table>
+     * <p><code>AttrEscapes:</code>
+     * The following characters need to be escaped:</p>
+     * <table border='1'>
+     * <tr>
+     * <td>character</td>
+     * <td>should be escaped and written as</td>
+     * </tr>
+     * <tr>
+     * <td valign='top' rowspan='1' colspan='1'>&amp;</td>
+     * <td valign='top' rowspan='1' colspan='1'>&amp;amp;</td>
+     * </tr>
+     * <tr>
+     * <td valign='top' rowspan='1' colspan='1'>&gt;</td>
+     * <td valign='top' rowspan='1' colspan='1'>&amp;gt;</td>
+     * </tr>
+     * <tr>
+     * <td valign='top' rowspan='1' colspan='1'>&quot;</td>
+     * <td valign='top' rowspan='1' colspan='1'>&amp;quot;</td>
+     * </tr>
+     * </table>
+     * <p><code>CharEscapes:</code>
+     * The following characters need to be escaped:</p>
+     * <table border='1'>
+     * <tr>
+     * <td>character</td>
+     * <td>should be escaped and written as</td>
+     * </tr>
+     * <tr>
+     * <td valign='top' rowspan='1' colspan='1'>&amp;</td>
+     * <td valign='top' rowspan='1' colspan='1'>&amp;amp;</td>
+     * </tr>
+     * <tr>
+     * <td valign='top' rowspan='1' colspan='1'>&gt;</td>
+     * <td valign='top' rowspan='1' colspan='1'>&amp;gt;</td>
+     * </tr>
+     * </table>
+     * <p><code>EscapeFlags_Count:</code>
+     * Special value, do not use directly.</p>
+     * <p><code>DefaultEscape:</code>
+     * Special value, do not use directly.</p>
+     *
+     */
+    enum EscapeFlags
+    {
+        NoEscapes
+        , StdEscapes
+        , AttrEscapes
+        , CharEscapes
+
+        // Special values, don't use directly
+        , EscapeFlags_Count
+        , DefaultEscape     = 999
+    };
+
+    /**
+     * UnRepFlags
+     *
+     * The unrepresentable flags that indicate how to react when a
+     * character cannot be represented in the target encoding.
+     *
+     * <p><code>UnRep_Fail:</code>
+     * Fail the operation.</p>
+     * <p><code>UnRep_CharRef:</code>
+     * Display the unrepresented character as reference.</p>
+     * <p><code>UnRep_Replace:</code>
+     * Replace the unrepresented character with the replacement character.</p>
+     * <p><code>DefaultUnRep:</code>
+     * Special value, do not use directly.</p>
+     *
+     */
+    enum UnRepFlags
+    {
+        UnRep_Fail
+        , UnRep_CharRef
+        , UnRep_Replace
+
+        , DefaultUnRep      = 999
+    };
+    //@}
+
+
+    // -----------------------------------------------------------------------
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+    /** @name Constructor and Destructor */
+    //@{
+    /**
+     * @param outEncoding the encoding for the formatted content
+     * @param docVersion  
+     * @param target      the formatTarget where the formatted content is written to
+     * @param escapeFlags the escape style for certain character
+     * @param unrepFlags  the reaction to unrepresentable character
+     * @param manager     Pointer to the memory manager to be used to
+     *                    allocate objects.
+     */
+    XMLFormatter
+    (
+        const   XMLCh* const            outEncoding
+        , const XMLCh* const            docVersion
+        ,       XMLFormatTarget* const  target
+        , const EscapeFlags             escapeFlags = NoEscapes
+        , const UnRepFlags              unrepFlags = UnRep_Fail
+        ,       MemoryManager* const    manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    XMLFormatter
+    (
+        const   char* const             outEncoding
+        , const char* const             docVersion
+        ,       XMLFormatTarget* const  target
+        , const EscapeFlags             escapeFlags = NoEscapes
+        , const UnRepFlags              unrepFlags = UnRep_Fail
+        ,       MemoryManager* const    manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    XMLFormatter
+    (
+        const   XMLCh* const            outEncoding
+        ,       XMLFormatTarget* const  target
+        , const EscapeFlags             escapeFlags = NoEscapes
+        , const UnRepFlags              unrepFlags = UnRep_Fail
+        ,       MemoryManager* const    manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    XMLFormatter
+    (
+        const   char* const             outEncoding
+        ,       XMLFormatTarget* const  target
+        , const EscapeFlags             escapeFlags = NoEscapes
+        , const UnRepFlags              unrepFlags = UnRep_Fail
+        ,       MemoryManager* const    manager = XMLPlatformUtils::fgMemoryManager
+    );
+    
+    ~XMLFormatter();
+    //@}
+
+
+    // -----------------------------------------------------------------------
+    //  Formatting methods
+    // -----------------------------------------------------------------------
+    /** @name Formatting methods */
+    //@{
+    /**
+     * @param toFormat the string to be formatted
+     * @param count    length of the string
+     * @param escapeFlags the escape style for formatting toFormat
+     * @param unrepFlags the reaction for any unrepresentable character in toFormat
+     *
+     */
+    void formatBuf
+    (
+        const   XMLCh* const    toFormat
+        , const unsigned int    count
+        , const EscapeFlags     escapeFlags = DefaultEscape
+        , const UnRepFlags      unrepFlags = DefaultUnRep
+    );
+
+    /**
+     * @see formatBuf
+     */
+    XMLFormatter& operator<<
+    (
+        const   XMLCh* const    toFormat
+    );
+
+    XMLFormatter& operator<<
+    (
+        const   XMLCh           toFormat
+    );
+
+    void writeBOM(const XMLByte* const toFormat
+                , const unsigned int   count);
+
+    //@}
+
+    // -----------------------------------------------------------------------
+    //  Getter methods
+    // -----------------------------------------------------------------------
+    /** @name Getter methods */
+    //@{
+    /**
+     * @return return the encoding set for the formatted content
+     */
+
+    const XMLCh* getEncodingName() const;
+
+    /**
+     * @return return the transcoder used internally for transcoding the formatter conent
+     */
+    inline const XMLTranscoder*   getTranscoder() const;
+
+   //@}
+
+    // -----------------------------------------------------------------------
+    //  Setter methods
+    // -----------------------------------------------------------------------
+    /** @name Setter methods */
+    //@{
+    /**
+     * @param newFlags set the escape style for the follow-on formatted content
+     */
+    void setEscapeFlags
+    (
+        const   EscapeFlags     newFlags
+    );
+
+    /**
+     * @param newFlags set the reaction for unrepresentable character
+     */
+    void setUnRepFlags
+    (
+        const   UnRepFlags      newFlags
+    );
+
+    /**
+     * @param newFlags set the escape style for the follow-on formatted content
+     * @see setEscapeFlags
+     */
+    XMLFormatter& operator<<
+    (
+        const   EscapeFlags     newFlags
+    );
+
+    /**
+     * @param newFlags set the reaction for unrepresentable character
+     * @see setUnRepFlags
+     */
+    XMLFormatter& operator<<
+    (
+        const   UnRepFlags      newFlags
+    );
+    //@}
+
+
+    // -----------------------------------------------------------------------
+    //  Getter methods
+    // -----------------------------------------------------------------------
+    /** @name Setter methods */
+    //@{
+    /**
+     * @return return the escape style for the formatted content
+     */
+    EscapeFlags getEscapeFlags() const;
+
+    /**
+     * @return return the reaction for unrepresentable character
+     */
+    UnRepFlags getUnRepFlags() const;
+    //@}
+
+private :
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    XMLFormatter();
+    XMLFormatter(const XMLFormatter&);
+    XMLFormatter& operator=(const XMLFormatter&);
+
+
+    // -----------------------------------------------------------------------
+    //  Private class constants
+    // -----------------------------------------------------------------------
+    enum Constants
+    {
+        kTmpBufSize     = 16 * 1024
+    };
+
+
+    // -----------------------------------------------------------------------
+    //  Private helper methods
+    // -----------------------------------------------------------------------
+    const XMLByte* getCharRef(unsigned int & count, 
+                              XMLByte*      &ref, 
+                              const XMLCh *  stdRef);  
+ 
+    void writeCharRef(const XMLCh &toWrite);
+    void writeCharRef(unsigned long toWrite);
+
+    bool inEscapeList(const XMLFormatter::EscapeFlags escStyle
+                    , const XMLCh                     toCheck);
+                              
+
+    unsigned int handleUnEscapedChars(const XMLCh *                  srcPtr, 
+                                      const unsigned int             count, 
+                                      const UnRepFlags               unrepFlags);
+
+    void specialFormat
+    (
+        const   XMLCh* const    toFormat
+        , const unsigned int    count
+        , const EscapeFlags     escapeFlags
+    );
+
+
+    // -----------------------------------------------------------------------
+    //  Private, non-virtual methods
+    //
+    //  fEscapeFlags
+    //      The escape flags we were told to use in formatting. These are
+    //      defaults set in the ctor, which can be overridden on a particular
+    //      call.
+    //
+    //  fOutEncoding
+    //      This the name of the output encoding. Saved mainly for meaningful
+    //      error messages.
+    //
+    //  fTarget
+    //      This is the target object for the formatting operation.
+    //
+    //  fUnRepFlags
+    //      The unrepresentable flags that indicate how to react when a
+    //      character cannot be represented in the target encoding.
+    //
+    //  fXCoder
+    //      This the transcoder that we will use. It is created using the
+    //      encoding name we were told to use.
+    //
+    //  fTmpBuf
+    //      An output buffer that we use to transcode chars into before we
+    //      send them off to be output.
+    //
+    //  fAposRef
+    //  fAmpRef
+    //  fGTRef
+    //  fLTRef
+    //  fQuoteRef
+    //      These are character refs for the standard char refs, in the
+    //      output encoding. They are faulted in as required, by transcoding
+    //      them from fixed Unicode versions.
+    //
+    //  fIsXML11
+    //      for performance reason, we do not store the actual version string
+    //      and do the string comparison again and again.
+    //
+    // -----------------------------------------------------------------------
+    EscapeFlags                 fEscapeFlags;
+    XMLCh*                      fOutEncoding;
+    XMLFormatTarget*            fTarget;
+    UnRepFlags                  fUnRepFlags;
+    XMLTranscoder*              fXCoder;
+    XMLByte                     fTmpBuf[kTmpBufSize + 4];
+    XMLByte*                    fAposRef;
+    unsigned int                fAposLen;
+    XMLByte*                    fAmpRef;
+    unsigned int                fAmpLen;
+    XMLByte*                    fGTRef;
+    unsigned int                fGTLen;
+    XMLByte*                    fLTRef;
+    unsigned int                fLTLen;
+    XMLByte*                    fQuoteRef;
+    unsigned int                fQuoteLen;
+    bool                        fIsXML11;
+    MemoryManager*              fMemoryManager;
+};
+
+
+class XMLPARSER_EXPORT XMLFormatTarget : public XMemory
+{
+public:
+    // -----------------------------------------------------------------------
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+    virtual ~XMLFormatTarget() {}
+
+
+    // -----------------------------------------------------------------------
+    //  Virtual interface
+    // -----------------------------------------------------------------------
+    virtual void writeChars
+    (
+          const XMLByte* const      toWrite
+        , const unsigned int        count
+        ,       XMLFormatter* const formatter
+    ) = 0;
+
+    virtual void flush() {};
+
+
+protected :
+    // -----------------------------------------------------------------------
+    //  Hidden constructors and operators
+    // -----------------------------------------------------------------------
+    XMLFormatTarget() {};
+
+private:
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    XMLFormatTarget(const XMLFormatTarget&);
+    XMLFormatTarget& operator=(const XMLFormatTarget&);
+};
+
+
+// ---------------------------------------------------------------------------
+//  XMLFormatter: Getter methods
+// ---------------------------------------------------------------------------
+inline const XMLCh* XMLFormatter::getEncodingName() const
+{
+    return fOutEncoding;
+}
+
+inline const XMLTranscoder* XMLFormatter::getTranscoder() const
+{
+    return fXCoder;
+}
+
+// ---------------------------------------------------------------------------
+//  XMLFormatter: Setter methods
+// ---------------------------------------------------------------------------
+inline void XMLFormatter::setEscapeFlags(const EscapeFlags newFlags)
+{
+    fEscapeFlags = newFlags;
+}
+
+inline void XMLFormatter::setUnRepFlags(const UnRepFlags newFlags)
+{
+    fUnRepFlags = newFlags;
+}
+
+
+inline XMLFormatter& XMLFormatter::operator<<(const EscapeFlags newFlags)
+{
+    fEscapeFlags = newFlags;
+    return *this;
+}
+
+inline XMLFormatter& XMLFormatter::operator<<(const UnRepFlags newFlags)
+{
+    fUnRepFlags = newFlags;
+    return *this;
+}
+
+// ---------------------------------------------------------------------------
+//  XMLFormatter: Getter methods
+// ---------------------------------------------------------------------------
+inline XMLFormatter::EscapeFlags XMLFormatter::getEscapeFlags() const
+{
+    return fEscapeFlags;
+}
+
+inline XMLFormatter::UnRepFlags XMLFormatter::getUnRepFlags() const
+{
+    return fUnRepFlags;
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/XMLAttDefList.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/XMLAttDefList.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/XMLAttDefList.hpp	(revision 2674)
@@ -0,0 +1,185 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: XMLAttDefList.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(XMLATTDEFLIST_HPP)
+#define XMLATTDEFLIST_HPP
+
+#include <xercesc/util/XercesDefs.hpp>
+#include <xercesc/util/XMemory.hpp>
+#include <xercesc/internal/XSerializable.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class XMLAttDef;
+
+/**
+ *  This class defines an abstract interface that all validators must support.
+ *  When the scanner scans the attributes in a start tag, it must have a list
+ *  of the defined attributes for that element. This is used to fault in
+ *  defaulted and fixed attributes, to know which ones are required, and to
+ *  know the their types in order to do the correct normalization.
+ *
+ *  Since each validator will have its own derivatives of XMLAttDef and will
+ *  have its own specialized storage mechanisms for elements and the att
+ *  defs that they own, there must be an abstracted way for the scanner to
+ *  deal with this list.
+ *
+ *  It does not derive from the generic Enumerator template class, because
+ *  there are portability issues with deriving from a template class in a
+ *  DLL. It does though provide a similar enumerator interface.
+ */
+
+class XMLPARSER_EXPORT XMLAttDefList : public XSerializable, public XMemory
+{
+public:
+    // -----------------------------------------------------------------------
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+
+    /** @name Destructor */
+    //@{
+    virtual ~XMLAttDefList();
+    //@}
+
+
+    // -----------------------------------------------------------------------
+    //  The virtual interface
+    // -----------------------------------------------------------------------
+
+    /** 
+     * @deprecated This method is not thread-safe.
+     */
+    virtual bool hasMoreElements() const = 0;
+    virtual bool isEmpty() const = 0;
+    virtual XMLAttDef* findAttDef
+    (
+        const   unsigned long       uriID
+        , const XMLCh* const        attName
+    ) = 0;
+    virtual const XMLAttDef* findAttDef
+    (
+        const   unsigned long       uriID
+        , const XMLCh* const        attName
+    )   const = 0;
+    virtual XMLAttDef* findAttDef
+    (
+        const   XMLCh* const        attURI
+        , const XMLCh* const        attName
+    ) = 0;
+    virtual const XMLAttDef* findAttDef
+    (
+        const   XMLCh* const        attURI
+        , const XMLCh* const        attName
+    )   const = 0;
+
+    /** 
+     * @deprecated This method is not thread-safe.
+     */
+    virtual XMLAttDef& nextElement() = 0;
+
+    /** 
+     * @deprecated This method is not thread-safe.
+     */
+    virtual void Reset() = 0;
+
+    /**
+     * return total number of attributes in this list
+     */
+    virtual unsigned int getAttDefCount() const = 0;
+
+    /**
+     * return attribute at the index-th position in the list.
+     */
+    virtual XMLAttDef &getAttDef(unsigned int index) = 0;
+
+    /**
+     * return attribute at the index-th position in the list.
+     */
+    virtual const XMLAttDef &getAttDef(unsigned int index) const = 0;
+
+    /***
+     * Support for Serialization/De-serialization
+     ***/
+    DECL_XSERIALIZABLE(XMLAttDefList)
+
+
+    // -----------------------------------------------------------------------
+    //  Getter methods
+    // -----------------------------------------------------------------------
+
+    /** @name Getter methods */
+    //@{
+
+    /** Get the memory manager
+      *
+      * This method returns the configurable memory manager used by the
+      * element declaration for dynamic allocation/deacllocation.
+      *
+      * @return the memory manager
+      */
+    MemoryManager* getMemoryManager() const;
+
+    //@}
+
+protected :
+    // -----------------------------------------------------------------------
+    //  Hidden constructors and operators
+    // -----------------------------------------------------------------------
+    XMLAttDefList(MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+
+private:
+    // unimplemented
+    XMLAttDefList(const XMLAttDefList&);
+    XMLAttDefList& operator=(const XMLAttDefList&);
+
+    MemoryManager*      fMemoryManager;
+};
+
+
+
+// ---------------------------------------------------------------------------
+//  XMLAttDefList: Getter methods
+// ---------------------------------------------------------------------------
+
+inline MemoryManager* XMLAttDefList::getMemoryManager() const
+{
+    return fMemoryManager;
+}
+
+// ---------------------------------------------------------------------------
+//  XMLAttDefList: Constructors and Destructor
+// ---------------------------------------------------------------------------
+inline XMLAttDefList::~XMLAttDefList()
+{
+}
+
+
+// ---------------------------------------------------------------------------
+//  XMLAttDefList: Protected Constructor
+// ---------------------------------------------------------------------------
+inline XMLAttDefList::XMLAttDefList(MemoryManager* const manager):
+fMemoryManager(manager)
+{
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/XMLEntityDecl.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/XMLEntityDecl.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/XMLEntityDecl.hpp	(revision 2674)
@@ -0,0 +1,500 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: XMLEntityDecl.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(XMLENTITYDECL_HPP)
+#define XMLENTITYDECL_HPP
+
+#include <xercesc/util/XMemory.hpp>
+#include <xercesc/util/PlatformUtils.hpp>
+#include <xercesc/util/XMLString.hpp>
+#include <xercesc/internal/XSerializable.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+/**
+ *  This class defines that core information that defines an XML entity, no
+ *  matter what validator is used. Each validator will create a derivative
+ *  of this class which adds any extra information it requires.
+ *
+ *  This class supports keyed collection semantics via the getKey() method
+ *  which extracts the key field, the entity name in this case. The name will
+ *  have whatever form is deemed appropriate for the type of validator in
+ *  use.
+ *
+ *  When setting the fields of this class, you must make sure that you do
+ *  not set conflicting values. For instance, an internal entity cannot have
+ *  a notation name. And an external entity cannot have a value string.
+ *  These rules are defined by the XML specification. In most cases, these
+ *  objects are created by validator objects as they parse a DTD or Schema
+ *  or whatever, at which time they confirm the correctness of the data before
+ *  creating the entity decl object.
+ */
+class XMLPARSER_EXPORT XMLEntityDecl : public XSerializable, public XMemory
+{
+public:
+    // -----------------------------------------------------------------------
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+
+    /** @name Constructors */
+    //@{
+
+    /**
+      *  Deafult Constructor
+      */
+    XMLEntityDecl(MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+
+    /** Constructor with a const entity name
+      *
+      * @param  entName The new name to give to this entity.
+      * @param  manager Pointer to the memory manager to be used to
+      *                 allocate objects.
+      */
+    XMLEntityDecl
+    (
+        const   XMLCh* const    entName
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    /**
+      * Constructor with a const entity name and value
+      *
+      * @param  entName The new name to give to this entity.
+      * @param  value   The new value to give to this entity name.
+      * @param  manager Pointer to the memory manager to be used to
+      *                 allocate objects.
+      */
+    XMLEntityDecl
+    (
+        const   XMLCh* const    entName
+        , const XMLCh* const    value
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    /**
+      * Constructor with a const entity name and single XMLCh value
+      *
+      * @param  entName The new name to give to this entity.
+      * @param  value   The new value to give to this entity name.
+      * @param manager  Pointer to the memory manager to be used to
+      *                 allocate objects.
+      */
+    XMLEntityDecl
+    (
+        const   XMLCh* const    entName
+        , const XMLCh           value
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+    //@}
+
+    /** @name Destructor */
+    //@{
+
+    /**
+      *  Default destructor
+      */
+    virtual ~XMLEntityDecl();
+
+    //@}
+
+
+    // -----------------------------------------------------------------------
+    //  Virtual entity decl interface
+    // -----------------------------------------------------------------------
+
+    /** @name The pure virtual methods in this interface. */
+    //@{
+
+    /** Get the 'declared in internal subset' flag
+      *
+      * Gets the state of the flag which indicates whether the entity was
+      * declared in the internal or external subset. Some structural
+      * description languages might not have an internal subset concept, in
+      * which case this will always return false.
+      */
+    virtual bool getDeclaredInIntSubset() const = 0;
+
+    /** Get the 'is parameter entity' flag
+      *
+      * Gets the state of the flag which indicates whether this entity is
+      * a parameter entity. If not, then its a general entity.
+      */
+    virtual bool getIsParameter() const = 0;
+
+    /** Get the 'is special char entity' flag
+      *
+      * Gets the state of the flag that indicates whether this entity is
+      * one of the special, intrinsically supported character entities.
+      */
+    virtual bool getIsSpecialChar() const = 0;
+
+    //@}
+
+
+    // -----------------------------------------------------------------------
+    //  Getter methods
+    // -----------------------------------------------------------------------
+
+    /** @name Getter methods */
+    //@{
+
+    /**
+      * Gets the pool id of this entity. Validators maintain all decls in
+      * pools, from which they can be quickly extracted via id.
+      */
+    unsigned int getId() const;
+
+    /**
+      * Returns a const pointer to the name of this entity decl. This name
+      * will be in whatever format is appropriate for the type of validator
+      * in use.
+      */
+    const XMLCh* getName() const;
+
+    /**
+      * Gets the notation name, if any, declared for this entity. If this
+      * entity is not a notation type entity, it will be a null pointer.
+      */
+    const XMLCh* getNotationName() const;
+
+    /**
+      * Gets the public id declared for this entity. Public ids are optional
+      * so it can be a null pointer.
+      */
+    const XMLCh* getPublicId() const;
+
+    /**
+      * Gets the system id declared for this entity. The system id is required
+      * so this method should never return a null pointers.
+      */
+    const XMLCh* getSystemId() const;
+
+    /**
+      * Gets the base URI for this entity.
+      */
+    const XMLCh* getBaseURI() const;
+
+    /**
+      * This method returns the value of an internal entity. If this is not
+      * an internal entity (i.e. its external), then this will be a null
+      * pointer.
+      */
+    const XMLCh* getValue() const;
+
+    /**
+     *  This method returns the number of characters in the value returned
+     *  by getValue(). If this entity is external, this will be zero since
+     *  an external entity has no internal value.
+     */
+    unsigned int getValueLen() const;
+
+    /**
+      * Indicates that this entity is an external entity. If not, then it is
+      * assumed to be an internal entity, suprise.
+      */
+    bool isExternal() const;
+
+    /**
+      * Indicates whether this entity is unparsed. This is meaningless for
+      * internal entities. Some external entities are unparsed in that they
+      * refer to something other than XML source.
+      */
+    bool isUnparsed() const;
+
+    /** Get the plugged-in memory manager
+      *
+      * This method returns the plugged-in memory manager user for dynamic
+      * memory allocation/deallocation.
+      *
+      * @return the plugged-in memory manager
+      */
+    MemoryManager* getMemoryManager() const;
+
+    //@}
+
+
+    // -----------------------------------------------------------------------
+    //  Setter methods
+    // -----------------------------------------------------------------------
+
+    /** @name Setter methods */
+    //@{
+
+    /**
+     *  This method will set the entity name. The format of this name is
+     *  defined by the particular validator in use, since it will be the
+     *  one who creates entity definitions as it parses the DTD, Schema,
+     *  ect...
+     *
+     *  @param  entName   The new name to give to this entity.
+     */
+    void setName
+    (
+        const   XMLCh* const    entName
+    );
+
+    /**
+     *  This method will set the notation name for this entity. By setting
+     *  this, you are indicating that this is an unparsed external entity.
+     *
+     *  @param  newName   The new notation name to give to this entity.
+     */
+    void setNotationName(const XMLCh* const newName);
+
+    /**
+     *  This method will set a new public id on this entity. The public id
+     *  has no particular form and is purely for client consumption.
+     *
+     *  @param  newId     The new public id to give to this entity.
+     */
+    void setPublicId(const XMLCh* const newId);
+
+    /**
+     *  This method will set a new sysetm id on this entity. This will
+     *  then control where the source for this entity lives. If it is
+     *  an internal entity, then the system id is only for bookkeeping
+     *  purposes, and to allow any external entities referenced from
+     *  within the entity to be correctly resolved.
+     *
+     *  @param  newId     The new system id to give to the entity.
+     */
+    void setSystemId(const XMLCh* const newId);
+
+    /**
+     *  This method will set a new baseURI on this entity. This will
+     *  then control the URI used to resolve the relative system Id.
+     *
+     *  @param  newId     The new base URI to give to the entity.
+     */
+    void setBaseURI(const XMLCh* const newId);
+
+    /**
+     *  This method will set a new value for this entity. This is only
+     *  valid if the entity is to be an internal entity. By setting this
+     *  field, you are indicating that the entity is internal.
+     *
+     *  @param  newValue  The new value to give to this entity.
+     */
+    void setValue(const XMLCh* const newValue);
+
+    //@}
+
+    /* For internal use only */
+    void setId(const unsigned int newId);
+
+
+    // -----------------------------------------------------------------------
+    //  Support named pool syntax
+    // -----------------------------------------------------------------------
+
+    /** @name Setter methods */
+    //@{
+
+    /**
+      * This method allows objects of this class to be used within a standard
+      * keyed collection used commonly within the parser system. The collection
+      * calls this method to get the key (usually to hash it) by which the
+      * object is to be stored.
+      */
+    const XMLCh* getKey() const;
+
+    //@}
+
+    /***
+     * Support for Serialization/De-serialization
+     ***/
+    DECL_XSERIALIZABLE(XMLEntityDecl)
+
+private :
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    XMLEntityDecl(const XMLEntityDecl&);
+    XMLEntityDecl& operator=(XMLEntityDecl&);
+
+
+    // -----------------------------------------------------------------------
+    //  XMLEntityDecl: Private helper methods
+    // -----------------------------------------------------------------------
+    void cleanUp();
+
+
+    // -----------------------------------------------------------------------
+    //  Private data members
+    //
+    //  fId
+    //      This is the unique id given to this entity decl.
+    //
+    //  fName
+    //      The name of the enitity. Entity names are never namespace based.
+    //
+    //  fNotationName
+    //      The optional notation of the entity. If there was none, then its
+    //      empty.
+    //
+    //  fPublicId
+    //      The public id of the entity, which can be empty.
+    //
+    //  fSystemId
+    //      The system id of the entity.
+    //
+    //  fValue
+    //  fValueLen
+    //      The entity's value and length, which is only valid if its an
+    //      internal style entity.
+    //
+    //  fBaseURI
+    //      The base URI of the entity.   According to XML InfoSet, such value
+    //      is the URI where it is declared (NOT referenced).
+    // -----------------------------------------------------------------------
+    unsigned int    fId;
+    unsigned int    fValueLen;
+    XMLCh*          fValue;
+    XMLCh*          fName;
+    XMLCh*          fNotationName;
+    XMLCh*          fPublicId;
+    XMLCh*          fSystemId;
+    XMLCh*          fBaseURI;
+    MemoryManager*  fMemoryManager;
+};
+
+
+// ---------------------------------------------------------------------------
+//  XMLEntityDecl: Getter methods
+// ---------------------------------------------------------------------------
+inline unsigned int XMLEntityDecl::getId() const
+{
+    return fId;
+}
+
+inline const XMLCh* XMLEntityDecl::getName() const
+{
+    return fName;
+}
+
+inline const XMLCh* XMLEntityDecl::getNotationName() const
+{
+    return fNotationName;
+}
+
+inline const XMLCh* XMLEntityDecl::getPublicId() const
+{
+    return fPublicId;
+}
+
+inline const XMLCh* XMLEntityDecl::getSystemId() const
+{
+    return fSystemId;
+}
+
+inline const XMLCh* XMLEntityDecl::getBaseURI() const
+{
+    return fBaseURI;
+}
+
+inline const XMLCh* XMLEntityDecl::getValue() const
+{
+    return fValue;
+}
+
+inline unsigned int XMLEntityDecl::getValueLen() const
+{
+    return fValueLen;
+}
+
+inline bool XMLEntityDecl::isExternal() const
+{
+    // If it has a system or public id, its external
+    return ((fPublicId != 0) || (fSystemId != 0));
+}
+
+inline bool XMLEntityDecl::isUnparsed() const
+{
+    // If it has a notation, its unparsed
+    return (fNotationName != 0);
+}
+
+inline MemoryManager* XMLEntityDecl::getMemoryManager() const
+{
+    return fMemoryManager;
+}
+
+// ---------------------------------------------------------------------------
+//  XMLEntityDecl: Setter methods
+// ---------------------------------------------------------------------------
+inline void XMLEntityDecl::setId(const unsigned int newId)
+{
+    fId = newId;
+}
+
+inline void XMLEntityDecl::setNotationName(const XMLCh* const newName)
+{
+    if (fNotationName)
+        fMemoryManager->deallocate(fNotationName);
+
+    fNotationName = XMLString::replicate(newName, fMemoryManager);
+}
+
+inline void XMLEntityDecl::setPublicId(const XMLCh* const newId)
+{
+    if (fPublicId)
+        fMemoryManager->deallocate(fPublicId);
+
+    fPublicId = XMLString::replicate(newId, fMemoryManager);
+}
+
+inline void XMLEntityDecl::setSystemId(const XMLCh* const newId)
+{
+    if (fSystemId)
+        fMemoryManager->deallocate(fSystemId);
+
+    fSystemId = XMLString::replicate(newId, fMemoryManager);
+}
+
+inline void XMLEntityDecl::setBaseURI(const XMLCh* const newId)
+{
+    if (fBaseURI)
+        fMemoryManager->deallocate(fBaseURI);
+
+    fBaseURI = XMLString::replicate(newId, fMemoryManager);
+}
+
+inline void XMLEntityDecl::setValue(const XMLCh* const newValue)
+{
+    if (fValue)
+        fMemoryManager->deallocate(fValue);
+
+    fValue = XMLString::replicate(newValue, fMemoryManager);
+    fValueLen = XMLString::stringLen(newValue);
+}
+
+
+// ---------------------------------------------------------------------------
+//  XMLEntityDecl: Support named pool syntax
+// ---------------------------------------------------------------------------
+inline const XMLCh* XMLEntityDecl::getKey() const
+{
+    return fName;
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/XMLPScanToken.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/XMLPScanToken.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/XMLPScanToken.hpp	(revision 2674)
@@ -0,0 +1,152 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: XMLPScanToken.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+#if !defined(XMLPSCANTOKEN_HPP)
+#define XMLPSCANTOKEN_HPP
+
+#include <xercesc/util/XMemory.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class XMLScanner;
+
+/**
+ *  This simple class is used as a sanity check when the scanner is used to
+ *  do progressive parsing. It insures that things are not done out of
+ *  sequence and that sequences of scan calls are made correctly to the
+ *  right scanner instances.
+ *
+ *  To client code, it is just a magic cookie which is obtained when a
+ *  progressive parse is begun, and which is passed back in on each subsequent
+ *  call of the progressive parse.
+ */
+class XMLPARSER_EXPORT XMLPScanToken : public XMemory
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+    /** @name Constructor */
+    //@{
+    XMLPScanToken();
+    XMLPScanToken(const XMLPScanToken& toCopy);
+    //@}
+
+    /** @name Destructor */
+    //@{
+    ~XMLPScanToken();
+    //@}
+
+
+    // -----------------------------------------------------------------------
+    //  Public operators
+    // -----------------------------------------------------------------------
+    XMLPScanToken& operator=(const XMLPScanToken& toCopy);
+
+
+protected :
+    // -----------------------------------------------------------------------
+    //  XMLScanner is our friend, can you say friend? Sure...
+    // -----------------------------------------------------------------------
+    friend class XMLScanner;
+
+
+    // -----------------------------------------------------------------------
+    //  Hidden methods for use by XMLScanner
+    // -----------------------------------------------------------------------
+    void set
+    (
+        const   XMLUInt32   scannerId
+        , const XMLUInt32   sequenceId
+    );
+
+
+private :
+    // -----------------------------------------------------------------------
+    //  Private data members
+    //
+    //  fScannerId
+    //      This field is set to the id of the scanner, to catch problems
+    //      where a token is gotten from one scanner and passed to another.
+    //      Each scanner is assigned an incrementing id.
+    //
+    //  fSequenceId
+    //      In order to avoid problems such as calling scanNext() without
+    //      a call to scanFirst() and such, this value is set when scanFirst()
+    //      is called and matches this token to the current sequence id of
+    //      the scanner.
+    // -----------------------------------------------------------------------
+    XMLUInt32   fScannerId;
+    XMLUInt32   fSequenceId;
+};
+
+
+// ---------------------------------------------------------------------------
+//  XMLPScanToken: Constructors and Operators
+// ---------------------------------------------------------------------------
+inline XMLPScanToken::XMLPScanToken() :
+
+    fScannerId(0)
+    , fSequenceId(0)
+{
+}
+
+inline XMLPScanToken::XMLPScanToken(const XMLPScanToken& toCopy) :
+    XMemory(toCopy)
+    , fScannerId(toCopy.fScannerId)
+    , fSequenceId(toCopy.fSequenceId)
+{
+}
+
+inline XMLPScanToken::~XMLPScanToken()
+{
+}
+
+
+// ---------------------------------------------------------------------------
+//  XMLPScanToken: Public operators
+// ---------------------------------------------------------------------------
+inline XMLPScanToken& XMLPScanToken::operator=(const XMLPScanToken& toCopy)
+{
+    if (this == &toCopy)
+        return *this;
+
+    fScannerId = toCopy.fScannerId;
+    fSequenceId = toCopy.fSequenceId;
+
+    return *this;
+}
+
+
+// ---------------------------------------------------------------------------
+//  XMLPScanToken: Hidden methods
+// ---------------------------------------------------------------------------
+inline void XMLPScanToken::set( const   XMLUInt32   scannerId
+                                , const XMLUInt32   sequenceId)
+{
+    fScannerId = scannerId;
+    fSequenceId = sequenceId;
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/XMLAttDef.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/XMLAttDef.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/XMLAttDef.hpp	(revision 2674)
@@ -0,0 +1,596 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: XMLAttDef.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(ATTDEF_HPP)
+#define ATTDEF_HPP
+
+#include <xercesc/util/PlatformUtils.hpp>
+#include <xercesc/util/XMLString.hpp>
+#include <xercesc/util/XMemory.hpp>
+#include <xercesc/internal/XSerializable.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class XMLAttr;
+
+/** Represents the core information of an atribute definition
+ *
+ *  This class defines the basic characteristics of an attribute, no matter
+ *  what type of validator is used. If a particular schema associates more
+ *  information with an attribute it will create a derivative of this class.
+ *  So this class provides an abstract way to get basic information on
+ *  attributes from any type of validator.
+ *
+ *  This class supports keyed collection semantics on the fully qualified
+ *  attribute name, by providing a getKey() method to extract the key string.
+ *  getKey(), in this case, just calls the virtual method getFullName() to
+ *  get the fully qualified name, as defined by the derived class.
+ *
+ *  Note that the 'value' of an attribute type definition is the default or
+ *  of fixed value given to it in its definition. If the attribute is of the
+ *  enumerated or notation type, it will have an 'enumeration value' as well
+ *  which is a space separated list of its possible vlaues.
+ */
+class XMLPARSER_EXPORT XMLAttDef : public XSerializable, public XMemory
+{
+public:
+    // -----------------------------------------------------------------------
+    //  Class specific types
+    //
+    //  AttTypes
+    //      The list of possible types that an attribute can have, according
+    //      to the XML 1.0 spec and schema.
+    //
+    //  DefAttTypes
+    //      The modifiers that an attribute decl can have, which indicates
+    //      whether instances of that attributes are required, implied, etc..
+    //
+    //  CreateReasons
+    //      This type is used to store how an attribute declaration got into
+    //      the elementdecl's attribute pool.
+    //
+    // -----------------------------------------------------------------------
+	enum AttTypes
+    {
+        CData               = 0
+        , ID                = 1
+        , IDRef             = 2
+        , IDRefs            = 3
+        , Entity            = 4
+        , Entities          = 5
+        , NmToken           = 6
+        , NmTokens          = 7
+        , Notation          = 8
+        , Enumeration       = 9
+        , Simple            = 10
+        , Any_Any           = 11
+        , Any_Other         = 12
+        , Any_List          = 13
+
+        , AttTypes_Count
+        , AttTypes_Min      = 0
+        , AttTypes_Max      = 13
+        , AttTypes_Unknown  = -1
+	};
+
+    enum DefAttTypes
+    {
+        Default                  = 0
+        , Fixed                  = 1
+        , Required               = 2
+        , Required_And_Fixed     = 3
+        , Implied                = 4
+        , ProcessContents_Skip   = 5
+        , ProcessContents_Lax    = 6
+        , ProcessContents_Strict = 7
+        , Prohibited             = 8
+
+        , DefAttTypes_Count
+        , DefAttTypes_Min   = 0
+        , DefAttTypes_Max   = 8
+        , DefAttTypes_Unknown = -1
+	};
+
+    enum CreateReasons
+    {
+        NoReason
+        , JustFaultIn
+    };
+
+    // -----------------------------------------------------------------------
+    //  Public static data members
+    // -----------------------------------------------------------------------
+    static const unsigned int fgInvalidAttrId;
+
+
+    // -----------------------------------------------------------------------
+    //  Public, static methods
+    // -----------------------------------------------------------------------
+
+    /** @name Public, static methods */
+    //@{
+
+    /** Get a string representation of the passed attribute type enum
+      *
+      * This method allows you to get a textual representation of an attriubte
+      * type, mostly for debug or display.
+      *
+      * @param attrType The attribute type value to get the string for.
+      * @param manager The MemoryManager to use to allocate objects
+      * @return A const pointer to the static string that holds the text
+      *         description of the passed type.
+      */
+    static const XMLCh* getAttTypeString(const AttTypes attrType
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+
+    /** Get a string representation of the passed def attribute type enum
+      *
+      * This method allows you to get a textual representation of an default
+      * attributetype, mostly for debug or display.
+      *
+      * @param attrType The default attribute type value to get the string for.
+      * @param manager The MemoryManager to use to allocate objects
+      * @return A const pointer to the static string that holds the text
+      *         description of the passed default type.
+      */
+    static const XMLCh* getDefAttTypeString(const DefAttTypes attrType
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+
+    //@}
+
+
+    // -----------------------------------------------------------------------
+    //  Destructor
+    // -----------------------------------------------------------------------
+
+    /** @name Destructor */
+    //@{
+
+    /**
+      *  Destructor
+      */
+    virtual ~XMLAttDef();
+    //@}
+
+
+    // -----------------------------------------------------------------------
+    //  The virtual attribute def interface
+    // -----------------------------------------------------------------------
+
+    /** @name Virtual interface */
+    //@{
+
+    /** Get the full name of this attribute type
+      *
+      * The derived class should return a const pointer to the full name of
+      * this attribute. This will vary depending on the type of validator in
+      * use.
+      *
+      * @return A const pointer to the full name of this attribute type.
+      */
+    virtual const XMLCh* getFullName() const = 0;
+
+    /**
+     * The derived class should implement any cleaning up required between
+     * each use of an instance of this class for validation
+     */
+    virtual void reset() = 0;
+
+    //@}
+
+
+    // -----------------------------------------------------------------------
+    //  Getter methods
+    // -----------------------------------------------------------------------
+
+    /** @name Getter methods */
+    //@{
+
+    /** Get the default type of this attribute type
+      *
+      * This method returns the 'default type' of the attribute. Default
+      * type in this case refers to the XML concept of a default type for
+      * an attribute, i.e. #FIXED, #IMPLIED, etc...
+      *
+      * @return The default type enum for this attribute type.
+      */
+    DefAttTypes getDefaultType() const;
+
+    /** Get the enumeration value (if any) of this attribute type
+      *
+      * If the attribute is of an enumeration or notatin type, then this
+      * method will return a const reference to a string that contains the
+      * space separated values that can the attribute can have.
+      *
+      * @return A const pointer to a string that contains the space separated
+      *         legal values for this attribute.
+      */
+    const XMLCh* getEnumeration() const;
+
+    /** Get the pool id of this attribute type
+      *
+      * This method will return the id of this attribute in the validator's
+      * attribute pool. It was set by the validator when this attribute was
+      * created.
+      *
+      * @return The pool id of this attribute type.
+      */
+    unsigned int getId() const;
+
+    /** Query whether the attribute was explicitly provided.
+      *
+      * When the scanner scans a start tag, it will ask the element decl
+      * object of the element type of that start tag to clear the 'provided'
+      * flag on all its attributes. As the scanner sees explicitly provided
+      * attributes, its turns on this flag to indicate that this attribute
+      * has been provided. In this way, the scanner can catch duplicated
+      * attributes and required attributes that aren't provided, and default
+      * in fixed/default valued attributes that are not explicitly provided.
+      *
+      * @return Returns a boolean value that indicates whether this attribute
+      *         was explicitly provided.
+      * @deprecated
+      */
+    bool getProvided() const;
+
+    /** Get the type of this attribute
+      *
+      * Gets the type of this attribute. This type is represented by an enum
+      * that convers the types of attributes allowed by XML, e.g. CDATA, NMTOKEN,
+      * NOTATION, etc...
+      *
+      * @return The attribute type enumeration value for this type of
+      *         attribute.
+      */
+    AttTypes getType() const;
+
+    /** Get the default/fixed value of this attribute (if any.)
+      *
+      * If the attribute defined a default/fixed value, then it is stored
+      * and this method will retrieve it. If it has non, then a null pointer
+      * is returned.
+      *
+      * @return A const pointer to the default/fixed value for this attribute
+      *         type.
+      */
+    const XMLCh* getValue() const;
+
+    /** Get the create reason for this attribute
+      *
+      * This method returns an enumeration which indicates why this attribute
+      * declaration exists.
+      *
+      * @return An enumerated value that indicates the reason why this attribute
+      * was added to the attribute table.
+      */
+    CreateReasons getCreateReason() const;
+
+    /** Indicate whether this attribute has been declared externally
+      *
+      * This method returns a boolean that indicates whether this attribute
+      * has been declared externally.
+      *
+      * @return true if this attribute has been declared externally, else false.
+      */
+    bool isExternal() const;
+
+    /** Get the plugged-in memory manager
+      *
+      * This method returns the plugged-in memory manager user for dynamic
+      * memory allocation/deallocation.
+      *
+      * @return the plugged-in memory manager
+      */
+    MemoryManager* getMemoryManager() const;
+
+
+    /**
+     * @return the uri part of DOM Level 3 TypeInfo
+     * @deprecated
+     */
+    virtual const XMLCh* getDOMTypeInfoUri() const = 0;
+
+    /**
+     * @return the name part of DOM Level 3 TypeInfo
+     * @deprecated
+     */
+    virtual const XMLCh* getDOMTypeInfoName() const = 0;
+
+    //@}
+
+
+    // -----------------------------------------------------------------------
+    //  Setter methods
+    // -----------------------------------------------------------------------
+
+    /** @name Setter methods */
+    //@{
+
+    /** Set the default attribute type
+      *
+      * This method sets the default attribute type for this attribute.
+      * This setting controls whether the attribute is required, fixed,
+      * implied, etc...
+      *
+      * @param  newValue The new default attribute to set
+      */
+    void setDefaultType(const XMLAttDef::DefAttTypes newValue);
+
+    /** Set the pool id for this attribute type.
+      *
+      * This method sets the pool id of this attribute type. This is usually
+      * called by the validator that creates the actual instance (which is of
+      * a derived type known only by the validator.)
+      *
+      * @param  newId The new pool id to set.
+      */
+    void setId(const unsigned int newId);
+
+    /** Set or clear the 'provided' flag.
+      *
+      * This method will set or clear the 'provided' flag. This is called
+      * by the scanner as it is scanning a start tag and marking off the
+      * attributes that have been explicitly provided.
+      *
+      * @param  newValue The new provided state to set
+      * @deprecated
+      */
+    void setProvided(const bool newValue);
+
+    /** Set the type of this attribute type.
+      *
+      * This method will set the type of the attribute. The type of an attribute
+      * controls how it is normalized and what kinds of characters it can hold.
+      *
+      * @param  newValue The new attribute type to set
+      */
+    void setType(const XMLAttDef::AttTypes newValue);
+
+    /** Set the default/fixed value of this attribute type.
+      *
+      * This method set the fixed/default value for the attribute. This value
+      * will be used when instances of this attribute type are faulted in. It
+      * <b>must</b> be a valid value for the type set by setType(). If the
+      * type is enumeration or notation, this must be one of the valid values
+      * set in the setEnumeration() call.
+      *
+      * @param  newValue The new fixed/default value to set.
+      */
+    void setValue(const XMLCh* const newValue);
+
+    /** Set the enumerated value of this attribute type.
+      *
+      * This method sets the enumerated/notation value list for this attribute
+      * type. It is a space separated set of possible values. These values must
+      * meet the constrains of the XML spec for such values of this type of
+      * attribute. This should only be set if the setType() method is used to
+      * set the type to the enumeration or notation types.
+      *
+      * @param  newValue The new enumerated/notation value list to set.
+      */
+    void setEnumeration(const XMLCh* const newValue);
+
+    /** Update the create reason for this attribute type.
+      *
+      * This method will update the 'create reason' field for this attribute
+      * decl object.
+      *
+      * @param  newReason The new create reason.
+      */
+    void setCreateReason(const CreateReasons newReason);
+
+    /**
+      * Set the attribute decl to indicate external declaration
+      *
+      * @param  aValue The new value to indicate external declaration.
+      */
+    void setExternalAttDeclaration(const bool aValue);
+
+    //@}
+
+    /***
+     * Support for Serialization/De-serialization
+     ***/
+    DECL_XSERIALIZABLE(XMLAttDef)
+
+protected :
+    // -----------------------------------------------------------------------
+    //  Hidden constructors
+    // -----------------------------------------------------------------------
+    XMLAttDef
+    (
+        const   AttTypes       type = CData
+        , const DefAttTypes    defType= Implied
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+    XMLAttDef
+    (
+        const   XMLCh* const        attValue
+        , const AttTypes            type
+        , const DefAttTypes         defType
+        , const XMLCh* const        enumValues = 0
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+
+private :
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    XMLAttDef(const XMLAttDef&);
+    XMLAttDef& operator=(const XMLAttDef&);
+
+
+    // -----------------------------------------------------------------------
+    //  Private helper methods
+    // -----------------------------------------------------------------------
+    void cleanUp();
+
+
+    // -----------------------------------------------------------------------
+    //  Private data members
+    //
+    //  fDefaultType
+    //      Indicates what, if any, default stuff this attribute has.
+    //
+    //  fEnumeration
+    //      If its an enumeration, this is the list of values as space
+    //      separated values.
+    //
+    //  fId
+    //      This is the unique id of this attribute, given to it when its put
+    //      into the validator's attribute decl pool. It defaults to the
+    //      special value XMLAttrDef::fgInvalidAttrId.
+    //
+    //  fProvided
+    //      This field is really for use by the scanner. It is used to track
+    //      which of the attributes of an element were provided. Any marked
+    //      as not provided (after scanning the start tag) and having a
+    //      default type of Required, is in error.
+    //
+    //  fType
+    //      The type of attribute, which is one of the AttTypes values.
+    //
+    //  fValue
+    //      This is the value of the attribute, which is the default value
+    //      given in the attribute declaration.
+    //
+    //  fCreateReason
+    //      This flag tells us how this attribute got created.  Sometimes even
+    //      the attribute was not declared for the element, we want to fault
+    //      fault it into the pool to avoid lots of redundant errors.
+    //
+    //  fExternalAttribute
+    //      This flag indicates whether or not the attribute was declared externally.
+    // -----------------------------------------------------------------------
+    DefAttTypes     fDefaultType;
+    AttTypes        fType;
+    CreateReasons   fCreateReason;
+    bool            fProvided;
+    bool            fExternalAttribute;
+    unsigned int    fId;
+    XMLCh*          fValue;
+    XMLCh*          fEnumeration;
+    MemoryManager*  fMemoryManager;
+};
+
+
+// ---------------------------------------------------------------------------
+//  Getter methods
+// ---------------------------------------------------------------------------
+inline XMLAttDef::DefAttTypes XMLAttDef::getDefaultType() const
+{
+    return fDefaultType;
+}
+
+inline const XMLCh* XMLAttDef::getEnumeration() const
+{
+    return fEnumeration;
+}
+
+inline unsigned int XMLAttDef::getId() const
+{
+    return fId;
+}
+
+inline bool XMLAttDef::getProvided() const
+{
+    return fProvided;
+}
+
+inline XMLAttDef::AttTypes XMLAttDef::getType() const
+{
+    return fType;
+}
+
+inline const XMLCh* XMLAttDef::getValue() const
+{
+    return fValue;
+}
+
+inline XMLAttDef::CreateReasons XMLAttDef::getCreateReason() const
+{
+    return fCreateReason;
+}
+
+inline bool XMLAttDef::isExternal() const
+{
+    return fExternalAttribute;
+}
+
+inline MemoryManager* XMLAttDef::getMemoryManager() const
+{
+    return fMemoryManager;
+}
+
+// ---------------------------------------------------------------------------
+//  XMLAttDef: Setter methods
+// ---------------------------------------------------------------------------
+inline void XMLAttDef::setDefaultType(const XMLAttDef::DefAttTypes newValue)
+{
+    fDefaultType = newValue;
+}
+
+inline void XMLAttDef::setEnumeration(const XMLCh* const newValue)
+{
+    if (fEnumeration)
+        fMemoryManager->deallocate(fEnumeration);
+
+    fEnumeration = XMLString::replicate(newValue, fMemoryManager);
+}
+
+inline void XMLAttDef::setId(const unsigned int newId)
+{
+    fId = newId;
+}
+
+inline void XMLAttDef::setProvided(const bool newValue)
+{
+    fProvided = newValue;
+}
+
+inline void XMLAttDef::setType(const XMLAttDef::AttTypes newValue)
+{
+    fType = newValue;
+}
+
+inline void XMLAttDef::setValue(const XMLCh* const newValue)
+{
+    if (fValue)
+       fMemoryManager->deallocate(fValue);
+
+    fValue = XMLString::replicate(newValue, fMemoryManager);
+}
+
+inline void
+XMLAttDef::setCreateReason(const XMLAttDef::CreateReasons newReason)
+{
+    fCreateReason = newReason;
+}
+
+inline void XMLAttDef::setExternalAttDeclaration(const bool aValue)
+{
+    fExternalAttribute = aValue;
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/sax2/XMLReaderFactory.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/sax2/XMLReaderFactory.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/sax2/XMLReaderFactory.hpp	(revision 2674)
@@ -0,0 +1,71 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: XMLReaderFactory.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#ifndef XMLREADERFACTORY_HPP
+#define XMLREADERFACTORY_HPP
+
+#include <xercesc/sax2/SAX2XMLReader.hpp>
+#include <xercesc/sax/SAXException.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class MemoryManager;
+class XMLGrammarPool;
+
+/**
+  * Creates a SAX2 parser (SAX2XMLReader).
+  *
+  * <p>Note: The parser object returned by XMLReaderFactory is owned by the
+  * calling users, and it's the responsiblity of the users to delete that
+  * parser object, once they no longer need it.</p>
+  *
+  * @see SAX2XMLReader#SAX2XMLReader
+  */
+class SAX2_EXPORT XMLReaderFactory
+{
+protected:                // really should be private, but that causes compiler warnings.
+	XMLReaderFactory() ;
+	~XMLReaderFactory() ;
+
+public:
+	static SAX2XMLReader * createXMLReader(  MemoryManager* const  manager = XMLPlatformUtils::fgMemoryManager
+                                           , XMLGrammarPool* const gramPool = 0
+                                          ) ;
+	static SAX2XMLReader * createXMLReader(const XMLCh* className)  ;
+
+private:
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    XMLReaderFactory(const XMLReaderFactory&);
+    XMLReaderFactory& operator=(const XMLReaderFactory&);
+};
+
+inline SAX2XMLReader * XMLReaderFactory::createXMLReader(const XMLCh *)
+{	
+	throw SAXNotSupportedException();
+	// unimplemented
+	return 0;
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/sax2/LexicalHandler.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/sax2/LexicalHandler.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/sax2/LexicalHandler.hpp	(revision 2674)
@@ -0,0 +1,173 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: LexicalHandler.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+#ifndef LEXICALHANDLER_HPP
+#define LEXICALHANDLER_HPP
+
+#include <xercesc/util/XercesDefs.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+/**
+  * Receive notification of lexical events.
+  *
+  * <p>This is an extension handler for that provides lexical information
+  * about an XML document.  It does not provide information about document
+  * content.  For those events, an application must register an instance of
+  * a ContentHandler.</p>
+  *
+  * <p>The order of events in this interface is very important, and
+  * mirrors the order of information in the document itself.  For
+  * example, startDTD() and endDTD() events will occur before the
+  * first element in the document.</p>
+  *
+  * @see SAX2XMLReader#setLexicalHandler
+  * @see SAX2XMLReader#setContentHandler
+  */
+
+class SAX2_EXPORT LexicalHandler
+{
+public:
+    /** @name Constructors and Destructor */
+    //@{
+    /** Default constructor */
+    LexicalHandler()
+    {
+    }
+
+    /** Destructor */
+    virtual ~LexicalHandler()
+    {
+    }
+    //@}
+
+    /** @name The virtual document handler interface */
+
+    //@{
+   /**
+    * Receive notification of comments.
+    *
+    * <p>The Parser will call this method to report each occurence of
+    * a comment in the XML document.</p>
+    *
+    * <p>The application must not attempt to read from the array
+    * outside of the specified range.</p>
+    *
+    * @param chars The characters from the XML document.
+    * @param length The number of characters to read from the array.
+    * @exception SAXException Any SAX exception, possibly
+    *            wrapping another exception.
+    */
+    virtual void comment
+    (
+        const   XMLCh* const    chars
+        , const unsigned int    length
+    ) = 0;
+
+  /**
+    * Receive notification of the end of a CDATA section.
+    *
+    * <p>The SAX parser will invoke this method at the end of
+    * each CDATA parsed.</p>
+    *
+    * @exception SAXException Any SAX exception, possibly
+    *            wrapping another exception.
+    */
+    virtual void endCDATA () = 0;
+
+  /**
+    * Receive notification of the end of the DTD declarations.
+    *
+    * <p>The SAX parser will invoke this method at the end of the
+    * DTD</p>
+    *
+    * @exception SAXException Any SAX exception, possibly
+    *            wrapping another exception.
+    */
+    virtual void endDTD () = 0;
+
+  /**
+    * Receive notification of the end of an entity.
+    *
+    * <p>The SAX parser will invoke this method at the end of an
+    * entity</p>
+    *
+    * @param name The name of the entity that is ending.
+    * @exception SAXException Any SAX exception, possibly
+    *            wrapping another exception.
+    */
+    virtual void endEntity (const XMLCh* const name) = 0;
+
+  /**
+    * Receive notification of the start of a CDATA section.
+    *
+    * <p>The SAX parser will invoke this method at the start of
+    * each CDATA parsed.</p>
+    *
+    * @exception SAXException Any SAX exception, possibly
+    *            wrapping another exception.
+    */
+    virtual void startCDATA () = 0;
+
+  /**
+    * Receive notification of the start of the DTD declarations.
+    *
+    * <p>The SAX parser will invoke this method at the start of the
+    * DTD</p>
+    *
+    * @param name The document type name.
+    * @param publicId The declared public identifier for the external DTD subset, or null if none was declared.
+    * @param systemId The declared system identifier for the external DTD subset, or null if none was declared.
+    * @exception SAXException Any SAX exception, possibly
+    *            wrapping another exception.
+    */
+    virtual void startDTD
+    (
+        const   XMLCh* const    name
+        , const   XMLCh* const    publicId
+        , const   XMLCh* const    systemId
+    ) = 0;
+
+  /**
+    * Receive notification of the start of an entity.
+    *
+    * <p>The SAX parser will invoke this method at the start of an
+    * entity</p>
+    *
+    * @param name The name of the entity that is starting.
+    * @exception SAXException Any SAX exception, possibly
+    *            wrapping another exception.
+    */
+    virtual void startEntity (const XMLCh* const name) = 0;
+
+    //@}
+private :
+    /* Unimplemented Constructors and operators */
+    /* Copy constructor */
+    LexicalHandler(const LexicalHandler&);
+    /** Assignment operator */
+    LexicalHandler& operator=(const LexicalHandler&);
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/sax2/SAX2XMLReader.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/sax2/SAX2XMLReader.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/sax2/SAX2XMLReader.hpp	(revision 2674)
@@ -0,0 +1,885 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: SAX2XMLReader.hpp 569031 2007-08-23 15:05:28Z amassari $
+ */
+
+#ifndef SAX2XMLReader_HPP
+#define SAX2XMLReader_HPP
+
+#include <xercesc/util/XercesDefs.hpp>
+#include <xercesc/util/XMLUniDefs.hpp>
+#include <xercesc/framework/XMLValidator.hpp>
+#include <xercesc/framework/XMLPScanToken.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class ContentHandler ;
+class DTDHandler;
+class EntityResolver;
+class ErrorHandler;
+class InputSource;
+class LexicalHandler;
+class DeclHandler;
+class XMLDocumentHandler;
+class Grammar;
+
+class SAX2_EXPORT SAX2XMLReader
+{
+public:
+    // -----------------------------------------------------------------------
+    //  Class types
+    // -----------------------------------------------------------------------
+    /** @name Public constants */
+    //@{
+
+    /** ValScheme enum used in setValidationScheme
+      *    Val_Never:  Do not report validation errors.
+      *    Val_Always: The parser will always report validation errors.
+      *    Val_Auto:   The parser will report validation errors only if a grammar is specified.
+      *
+      * @see #setValidationScheme
+      */
+    enum ValSchemes
+    {
+        Val_Never
+        , Val_Always
+        , Val_Auto
+    };
+    //@}
+
+
+    // -----------------------------------------------------------------------
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+    /** @name Constructors and Destructor */
+    //@{
+    /** The default constructor */
+    SAX2XMLReader()
+    {
+    }
+    /** The destructor */
+    virtual ~SAX2XMLReader()
+    {
+    }
+    //@}
+
+    //-----------------------------------------------------------------------
+    // The XMLReader interface
+    //-----------------------------------------------------------------------
+    /** @name Implementation of SAX 2.0 XMLReader interface's. */
+    //@{
+
+    /**
+      * This method returns the installed content handler.
+      *
+      * @return A pointer to the installed content handler object.
+      */
+    virtual ContentHandler* getContentHandler() const = 0 ;
+
+    /**
+      * This method returns the installed DTD handler.
+      *
+      * @return A pointer to the installed DTD handler object.
+      */
+    virtual DTDHandler* getDTDHandler() const = 0;
+
+    /**
+      * This method returns the installed entity resolver.
+      *
+      * @return A pointer to the installed entity resolver object.
+      */
+    virtual EntityResolver* getEntityResolver() const = 0 ;
+
+    /**
+      * This method returns the installed error handler.
+      *
+      * @return A pointer to the installed error handler object.
+      */
+    virtual ErrorHandler* getErrorHandler() const = 0 ;
+
+	/**
+     * Query the current state of any feature in a SAX2 XMLReader.
+	  *
+	  * @param name The unique identifier (URI) of the feature being set.
+	  * @return The current state of the feature.
+     * @exception SAXNotRecognizedException If the requested feature is not known.
+	  */
+	virtual bool getFeature(const XMLCh* const name) const = 0;
+
+	/**
+     * Query the current value of a property in a SAX2 XMLReader.
+     *
+     * The parser owns the returned pointer.  The memory allocated for
+     * the returned pointer will be destroyed when the parser is deleted.
+     *
+     * To ensure assessiblity of the returned information after the parser
+     * is deleted, callers need to copy and store the returned information
+     * somewhere else; otherwise you may get unexpected result.  Since the returned
+     * pointer is a generic void pointer, see
+     * http://xerces.apache.org/xerces-c/program-sax2.html#SAX2Properties to learn
+     * exactly what type of property value each property returns for replication.
+     *
+     * @param name The unique identifier (URI) of the property being set.
+     * @return     The current value of the property.  The pointer spans the same
+     *             life-time as the parser.  A null pointer is returned if nothing
+     *             was specified externally.
+     * @exception  SAXNotRecognizedException If the requested property is not known.
+     */
+	virtual void* getProperty(const XMLCh* const name) const = 0 ;
+
+  /**
+    * Allow an application to register a document event handler.
+    *
+    * If the application does not register a document handler, all
+    * document events reported by the SAX parser will be silently
+    * ignored (this is the default behaviour implemented by
+    * HandlerBase).
+    *
+    * Applications may register a new or different handler in the
+    * middle of a parse, and the SAX parser must begin using the new
+    * handler immediately.
+    *
+    * @param handler The document handler.
+    * @see DocumentHandler#DocumentHandler
+    * @see HandlerBase#HandlerBase
+    */
+    virtual void setContentHandler(ContentHandler* const handler) = 0;
+
+  /**
+    * Allow an application to register a DTD event handler.
+    *
+    * If the application does not register a DTD handler, all DTD
+    * events reported by the SAX parser will be silently ignored (this
+    * is the default behaviour implemented by HandlerBase).
+    *
+    * Applications may register a new or different handler in the middle
+    * of a parse, and the SAX parser must begin using the new handler
+    * immediately.
+    *
+    * @param handler The DTD handler.
+    * @see DTDHandler#DTDHandler
+    * @see HandlerBase#HandlerBase
+    */
+    virtual void setDTDHandler(DTDHandler* const handler) = 0;
+
+  /**
+    * Allow an application to register a custom entity resolver.
+    *
+    * If the application does not register an entity resolver, the
+    * SAX parser will resolve system identifiers and open connections
+    * to entities itself (this is the default behaviour implemented in
+    * DefaultHandler).
+    *
+    * Applications may register a new or different entity resolver
+    * in the middle of a parse, and the SAX parser must begin using
+    * the new resolver immediately.
+    *
+    * @param resolver The object for resolving entities.
+    * @see EntityResolver#EntityResolver
+    * @see DefaultHandler#DefaultHandler
+    */
+    virtual void setEntityResolver(EntityResolver* const resolver) = 0;
+
+  /**
+    * Allow an application to register an error event handler.
+    *
+    * If the application does not register an error event handler,
+    * all error events reported by the SAX parser will be silently
+    * ignored, except for fatalError, which will throw a SAXException
+    * (this is the default behaviour implemented by HandlerBase).
+    *
+    * Applications may register a new or different handler in the
+    * middle of a parse, and the SAX parser must begin using the new
+    * handler immediately.
+    *
+    * @param handler The error handler.
+    * @see ErrorHandler#ErrorHandler
+    * @see SAXException#SAXException
+    * @see HandlerBase#HandlerBase
+    */
+    virtual void setErrorHandler(ErrorHandler* const handler) = 0;
+
+  /**
+    * Set the state of any feature in a SAX2 XMLReader.
+    * Supported features in SAX2 for xerces-c are:
+    * <br>(See http://xerces.apache.org/xerces-c/program-sax2.html#SAX2Features for detail description).
+    *
+    * <br>http://xml.org/sax/features/validation (default: true)
+    * <br>http://xml.org/sax/features/namespaces (default: true)
+    * <br>http://xml.org/sax/features/namespace-prefixes (default: false)
+    * <br>http://apache.org/xml/features/validation/dynamic (default: false)
+    * <br>http://apache.org/xml/features/validation/reuse-grammar (default: false)
+    * <br>http://apache.org/xml/features/validation/schema (default: true)
+    * <br>http://apache.org/xml/features/validation/schema-full-checking (default: false)
+    * <br>http://apache.org/xml/features/nonvalidating/load-external-dtd (default: true)
+    * <br>http://apache.org/xml/features/continue-after-fatal-error (default: false)
+    * <br>http://apache.org/xml/features/validation-error-as-fatal (default: false)
+    * <br>http://apache.org/xml/features/validation/reuse-validator (Deprecated) (default: false)
+    *
+    * @param name The unique identifier (URI) of the feature.
+    * @param value The requested state of the feature (true or false).
+    * @exception SAXNotRecognizedException If the requested feature is not known.
+    * @exception SAXNotSupportedException Feature modification is not supported during parse
+    *
+    */
+	virtual void setFeature(const XMLCh* const name, const bool value) = 0;
+
+  /**
+    * Set the value of any property in a SAX2 XMLReader.
+    * Supported properties in SAX2 for xerces-c are:
+    * <br>(See http://xerces.apache.org/xerces-c/program-sax2.html#SAX2Properties for detail description).
+    *
+    * <br>http://apache.org/xml/properties/schema/external-schemaLocation
+    * <br>http://apache.org/xml/properties/schema/external-noNamespaceSchemaLocation.
+    *
+    * It takes a void pointer as the property value.  Application is required to initialize this void
+    * pointer to a correct type.  See http://xerces.apache.org/xerces-c/program-sax2.html#SAX2Properties
+    * to learn exactly what type of property value each property expects for processing.
+    * Passing a void pointer that was initialized with a wrong type will lead to unexpected result.
+    * If the same property is set more than once, the last one takes effect.
+    *
+    * @param name The unique identifier (URI) of the property being set.
+    * @param value The requested value for the property.  See
+    *            http://xerces.apache.org/xerces-c/program-sax2.html#SAX2Properties to learn
+    *            exactly what type of property value each property expects for processing.
+    *            Passing a void pointer that was initialized with a wrong type will lead
+    *            to unexpected result.
+    * @exception SAXNotRecognizedException If the requested property is not known.
+    * @exception SAXNotSupportedException Property modification is not supported during parse
+    */
+	virtual void setProperty(const XMLCh* const name, void* value) = 0 ;
+
+  /**
+    * Parse an XML document.
+    *
+    * The application can use this method to instruct the SAX parser
+    * to begin parsing an XML document from any valid input
+    * source (a character stream, a byte stream, or a URI).
+    *
+    * Applications may not invoke this method while a parse is in
+    * progress (they should create a new Parser instead for each
+    * additional XML document).  Once a parse is complete, an
+    * application may reuse the same Parser object, possibly with a
+    * different input source.
+    *
+    * @param source The input source for the top-level of the
+    *               XML document.
+    * @exception SAXException Any SAX exception, possibly
+    *            wrapping another exception.
+    * @exception XMLException An exception from the parser or client
+    *            handler code.
+    * @see InputSource#InputSource
+    * @see #setEntityResolver
+    * @see #setDTDHandler
+    * @see #setDocumentHandler
+    * @see #setErrorHandler
+    */
+    virtual void parse
+    (
+        const   InputSource&    source
+    ) = 0;
+
+  /**
+    * Parse an XML document from a system identifier (URI).
+    *
+    * This method is a shortcut for the common case of reading a
+    * document from a system identifier.  It is the exact equivalent
+    * of the following:
+    *
+    * parse(new URLInputSource(systemId));
+    *
+    * If the system identifier is a URL, it must be fully resolved
+    * by the application before it is passed to the parser.
+    *
+    * @param systemId The system identifier (URI).
+    * @exception SAXException Any SAX exception, possibly
+    *            wrapping another exception.
+    * @exception XMLException An exception from the parser or client
+    *            handler code.
+    * @see #parse(InputSource)
+    */
+    virtual void parse
+    (
+        const   XMLCh* const    systemId
+    ) = 0;
+
+  /**
+    * Parse an XML document from a system identifier (URI).
+    *
+    * This method is a shortcut for the common case of reading a
+    * document from a system identifier.  It is the exact equivalent
+    * of the following:
+    *
+    * parse(new URLInputSource(systemId));
+    *
+    * If the system identifier is a URL, it must be fully resolved
+    * by the application before it is passed to the parser.
+    *
+    * @param systemId The system identifier (URI).
+    * @exception SAXException Any SAX exception, possibly
+    *            wrapping another exception.
+    * @exception XMLException An exception from the parser or client
+    *            handler code.
+    * @see #parse(InputSource)
+    */
+    virtual void parse
+    (
+        const   char* const     systemId
+    ) = 0;
+	
+    //@}
+
+    // -----------------------------------------------------------------------
+    //  SAX 2.0-ext
+    // -----------------------------------------------------------------------
+    /** @name SAX 2.0-ext */
+    //@{
+    /**
+      * This method returns the installed declaration handler.
+      *
+      * @return A pointer to the installed declaration handler object.
+      */
+    virtual DeclHandler* getDeclarationHandler() const = 0 ;
+
+	/**
+      * This method returns the installed lexical handler.
+      *
+      * @return A pointer to the installed lexical handler object.
+      */
+    virtual LexicalHandler* getLexicalHandler() const = 0 ;
+
+   /**
+    * Allow an application to register a declaration event handler.
+    *
+    * If the application does not register a declaration handler,
+    * all events reported by the SAX parser will be silently
+    * ignored. (this is the default behaviour implemented by DefaultHandler).
+    *
+    * Applications may register a new or different handler in the
+    * middle of a parse, and the SAX parser must begin using the new
+    * handler immediately.
+    *
+    * @param handler The DTD declaration handler.
+    * @see DeclHandler#DeclHandler
+    * @see SAXException#SAXException
+    * @see DefaultHandler#DefaultHandler
+    */
+    virtual void setDeclarationHandler(DeclHandler* const handler) = 0;
+
+   /**
+    * Allow an application to register a lexical event handler.
+    *
+    * If the application does not register a lexical handler,
+    * all events reported by the SAX parser will be silently
+    * ignored. (this is the default behaviour implemented by HandlerBase).
+    *
+    * Applications may register a new or different handler in the
+    * middle of a parse, and the SAX parser must begin using the new
+    * handler immediately.
+    *
+    * @param handler The error handler.
+    * @see LexicalHandler#LexicalHandler
+    * @see SAXException#SAXException
+    * @see HandlerBase#HandlerBase
+    */
+    virtual void setLexicalHandler(LexicalHandler* const handler) = 0;
+
+    //@}
+
+    // -----------------------------------------------------------------------
+    //  Getter Methods
+    // -----------------------------------------------------------------------
+    /** @name Getter Methods (Xerces-C specific) */
+    //@{
+    /**
+	  * This method is used to get the current validator.
+	  *
+	  * <b>SAX2XMLReader assumes responsibility for the validator.  It will be
+	  * deleted when the XMLReader is destroyed.</b>
+	  *
+	  * @return A pointer to the validator.  An application should not deleted
+	  * the object returned.
+	  *
+	  */
+	virtual XMLValidator* getValidator() const = 0;
+
+    /** Get error count from the last parse operation.
+      *
+      * This method returns the error count from the last parse
+      * operation. Note that this count is actually stored in the
+      * scanner, so this method simply returns what the
+      * scanner reports.
+      *
+      * @return number of errors encountered during the latest
+      *			parse operation.
+      */
+    virtual int getErrorCount() const = 0 ;
+
+    /**
+      * This method returns the state of the parser's
+      * exit-on-First-Fatal-Error flag.
+      *
+      * <p>Or you can query the feature "http://apache.org/xml/features/continue-after-fatal-error"
+      * which indicates the opposite state.</p>
+      *
+      * @return true, if the parser is currently configured to
+      *         exit on the first fatal error, false otherwise.
+      *
+      * @see #setExitOnFirstFatalError
+      * @see #getFeature
+      */
+    virtual bool getExitOnFirstFatalError() const = 0;
+
+    /**
+      * This method returns the state of the parser's
+      * validation-constraint-fatal flag.
+      *
+      * <p>Or you can query the feature "http://apache.org/xml/features/validation-error-as-fatal"
+      * which means the same thing.
+      *
+      * @return true, if the parser is currently configured to
+      *         set validation constraint errors as fatal, false
+      *         otherwise.
+      *
+      * @see #setValidationContraintFatal
+      * @see #getFeature
+      */
+    virtual bool getValidationConstraintFatal() const = 0;
+
+    /**
+      * Retrieve the grammar that is associated with the specified namespace key
+      *
+      * @param  nameSpaceKey Namespace key
+      * @return Grammar associated with the Namespace key.
+      */
+    virtual Grammar* getGrammar(const XMLCh* const nameSpaceKey) = 0;
+
+    /**
+      * Retrieve the grammar where the root element is declared.
+      *
+      * @return Grammar where root element declared
+      */
+    virtual Grammar* getRootGrammar() = 0;
+
+    /**
+      * Returns the string corresponding to a URI id from the URI string pool.
+      *
+      * @param uriId id of the string in the URI string pool.
+      * @return URI string corresponding to the URI id.
+      */
+    virtual const XMLCh* getURIText(unsigned int uriId) const = 0;
+
+    /**
+      * Returns the current src offset within the input source.
+      * To be used only while parsing is in progress.
+      *
+      * @return offset within the input source
+      */
+    virtual unsigned int getSrcOffset() const = 0;
+
+    //@}
+
+    // -----------------------------------------------------------------------
+    //  Setter Methods
+    // -----------------------------------------------------------------------
+    /** @name Setter Methods (Xerces-C specific) */
+    //@{
+    /**
+	  * This method is used to set a validator.
+	  *
+	  * <b>SAX2XMLReader assumes responsibility for the validator.  It will be
+	  * deleted when the XMLReader is destroyed.</b>
+	  *
+	  * @param valueToAdopt A pointer to the validator that the reader should use.
+	  *
+	  */
+	virtual void setValidator(XMLValidator* valueToAdopt) = 0;
+
+    /**
+      * This method allows users to set the parser's behaviour when it
+      * encounters the first fatal error. If set to true, the parser
+      * will exit at the first fatal error. If false, then it will
+      * report the error and continue processing.
+      *
+      * <p>The default value is 'true' and the parser exits on the
+      * first fatal error.</p>
+      *
+      * <p>Or you can set the feature "http://apache.org/xml/features/continue-after-fatal-error"
+      * which has the opposite behaviour.</p>
+      *
+      * <p>If both the feature above and this function are used, the latter takes effect.</p>
+      *
+      * @param newState The value specifying whether the parser should
+      *                 continue or exit when it encounters the first
+      *                 fatal error.
+      *
+      * @see #getExitOnFirstFatalError
+      * @see #setFeature
+      */
+    virtual void setExitOnFirstFatalError(const bool newState) = 0;
+
+    /**
+      * This method allows users to set the parser's behaviour when it
+      * encounters a validtion constraint error. If set to true, and the
+      * the parser will treat validation error as fatal and will exit depends on the
+      * state of "getExitOnFirstFatalError". If false, then it will
+      * report the error and continue processing.
+      *
+      * Note: setting this true does not mean the validation error will be printed with
+      * the word "Fatal Error".   It is still printed as "Error", but the parser
+      * will exit if "setExitOnFirstFatalError" is set to true.
+      *
+      * <p>The default value is 'false'.</p>
+      *
+      * <p>Or you can set the feature "http://apache.org/xml/features/validation-error-as-fatal"
+      * which means the same thing.</p>
+      *
+      * <p>If both the feature above and this function are used, the latter takes effect.</p>
+      *
+      * @param newState If true, the parser will exit if "setExitOnFirstFatalError"
+      *                 is set to true.
+      *
+      * @see #getValidationConstraintFatal
+      * @see #setExitOnFirstFatalError
+      * @see #setFeature
+      */
+    virtual void setValidationConstraintFatal(const bool newState) = 0;
+    //@}
+
+
+    // -----------------------------------------------------------------------
+    //  Progressive scan methods
+    // -----------------------------------------------------------------------
+
+    /** @name Progressive scan methods */
+    //@{
+
+    /** Begin a progressive parse operation
+      *
+      * This method is used to start a progressive parse on a XML file.
+      * To continue parsing, subsequent calls must be to the parseNext
+      * method.
+      *
+      * It scans through the prolog and returns a token to be used on
+      * subsequent scanNext() calls. If the return value is true, then the
+      * token is legal and ready for further use. If it returns false, then
+      * the scan of the prolog failed and the token is not going to work on
+      * subsequent scanNext() calls.
+      *
+      * @param systemId A pointer to a Unicode string represting the path
+      *                 to the XML file to be parsed.
+      * @param toFill   A token maintaing state information to maintain
+      *                 internal consistency between invocation of 'parseNext'
+      *                 calls.
+      *
+      * @return 'true', if successful in parsing the prolog. It indicates the
+      *         user can go ahead with parsing the rest of the file. It
+      *         returns 'false' to indicate that the parser could parse the
+      *         prolog (which means the token will not be valid.)
+      *
+      * @see #parseNext
+      * @see #parseFirst(char*,...)
+      * @see #parseFirst(InputSource&,...)
+      */
+    virtual bool parseFirst
+    (
+        const   XMLCh* const    systemId
+        ,       XMLPScanToken&  toFill
+    ) = 0;
+
+    /** Begin a progressive parse operation
+      *
+      * This method is used to start a progressive parse on a XML file.
+      * To continue parsing, subsequent calls must be to the parseNext
+      * method.
+      *
+      * It scans through the prolog and returns a token to be used on
+      * subsequent scanNext() calls. If the return value is true, then the
+      * token is legal and ready for further use. If it returns false, then
+      * the scan of the prolog failed and the token is not going to work on
+      * subsequent scanNext() calls.
+      *
+      * @param systemId A pointer to a regular native string represting
+      *                 the path to the XML file to be parsed.
+      * @param toFill   A token maintaing state information to maintain
+      *                 internal consIstency between invocation of 'parseNext'
+      *                 calls.
+      *
+      * @return 'true', if successful in parsing the prolog. It indicates the
+      *         user can go ahead with parsing the rest of the file. It
+      *         returns 'false' to indicate that the parser could not parse
+      *         the prolog.
+      *
+      * @see #parseNext
+      * @see #parseFirst(XMLCh*,...)
+      * @see #parseFirst(InputSource&,...)
+      */
+    virtual bool parseFirst
+    (
+        const   char* const     systemId
+        ,       XMLPScanToken&  toFill
+    ) = 0;
+
+    /** Begin a progressive parse operation
+      *
+      * This method is used to start a progressive parse on a XML file.
+      * To continue parsing, subsequent calls must be to the parseNext
+      * method.
+      *
+      * It scans through the prolog and returns a token to be used on
+      * subsequent scanNext() calls. If the return value is true, then the
+      * token is legal and ready for further use. If it returns false, then
+      * the scan of the prolog failed and the token is not going to work on
+      * subsequent scanNext() calls.
+      *
+      * @param source   A const reference to the InputSource object which
+      *                 points to the XML file to be parsed.
+      * @param toFill   A token maintaing state information to maintain
+      *                 internal consistency between invocation of 'parseNext'
+      *                 calls.
+      *
+      * @return 'true', if successful in parsing the prolog. It indicates the
+      *         user can go ahead with parsing the rest of the file. It
+      *         returns 'false' to indicate that the parser could not parse
+      *         the prolog.
+      *
+      * @see #parseNext
+      * @see #parseFirst(XMLCh*,...)
+      * @see #parseFirst(char*,...)
+      */
+    virtual bool parseFirst
+    (
+        const   InputSource&    source
+        ,       XMLPScanToken&  toFill
+    ) = 0;
+
+    /** Continue a progressive parse operation
+      *
+      * This method is used to continue with progressive parsing of
+      * XML files started by a call to 'parseFirst' method.
+      *
+      * It parses the XML file and stops as soon as it comes across
+      * a XML token (as defined in the XML specification). Relevant
+      * callback handlers are invoked as required by the SAX
+      * specification.
+      *
+      * @param token A token maintaing state information to maintain
+      *              internal consistency between invocation of 'parseNext'
+      *              calls.
+      *
+      * @return 'true', if successful in parsing the next XML token.
+      *         It indicates the user can go ahead with parsing the rest
+      *         of the file. It returns 'false' to indicate that the parser
+      *         could not find next token as per the XML specification
+      *         production rule.
+      *
+      * @see #parseFirst(XMLCh*,...)
+      * @see #parseFirst(char*,...)
+      * @see #parseFirst(InputSource&,...)
+      */
+    virtual bool parseNext(XMLPScanToken& token) = 0;
+
+    /** Reset the parser after a progressive parse
+      *
+      * If a progressive parse loop exits before the end of the document
+      * is reached, the parser has no way of knowing this. So it will leave
+      * open any files or sockets or memory buffers that were in use at
+      * the time that the parse loop exited.
+      *
+      * The next parse operation will cause these open files and such to
+      * be closed, but the next parse operation might occur at some unknown
+      * future point. To avoid this problem, you should reset the parser if
+      * you exit the loop early.
+      *
+      * If you exited because of an error, then this cleanup will be done
+      * for you. Its only when you exit the file prematurely of your own
+      * accord, because you've found what you wanted in the file most
+      * likely.
+      *
+      * @param token A token maintaing state information to maintain
+      *              internal consistency between invocation of 'parseNext'
+      *              calls.
+      */
+    virtual void parseReset(XMLPScanToken& token) = 0;
+
+    //@}
+
+    // -----------------------------------------------------------------------
+    //  Grammar preparsing interface
+    // -----------------------------------------------------------------------
+
+    /** @name Grammar preparsing interface's. */
+    //@{
+    /**
+      * Preparse schema grammar (XML Schema, DTD, etc.) via an input source
+      * object.
+      *
+      * This method invokes the preparsing process on a schema grammar XML
+      * file specified by the SAX InputSource parameter. If the 'toCache' flag
+      * is enabled, the parser will cache the grammars for re-use. If a grammar
+      * key is found in the pool, no caching of any grammar will take place.
+      *
+      * <p><b>"Experimental - subject to change"</b></p>
+      *
+      * @param source A const reference to the SAX InputSource object which
+      *               points to the schema grammar file to be preparsed.
+      * @param grammarType The grammar type (Schema or DTD).
+      * @param toCache If <code>true</code>, we cache the preparsed grammar,
+      *                otherwise, no chaching. Default is <code>false</code>.
+      * @return The preparsed schema grammar object (SchemaGrammar or
+      *         DTDGrammar). That grammar object is owned by the parser.
+      *
+      * @exception SAXException Any SAX exception, possibly
+      *            wrapping another exception.
+      * @exception XMLException An exception from the parser or client
+      *            handler code.
+      * @exception DOMException A DOM exception as per DOM spec.
+      *
+      * @see InputSource#InputSource
+      */
+    virtual Grammar* loadGrammar(const InputSource& source,
+                                 const short grammarType,
+                                 const bool toCache = false) = 0;
+
+    /**
+      * Preparse schema grammar (XML Schema, DTD, etc.) via a file path or URL
+      *
+      * This method invokes the preparsing process on a schema grammar XML
+      * file specified by the file path parameter. If the 'toCache' flag
+      * is enabled, the parser will cache the grammars for re-use. If a grammar
+      * key is found in the pool, no caching of any grammar will take place.
+      *
+      * <p><b>"Experimental - subject to change"</b></p>
+      *
+      * @param systemId A const XMLCh pointer to the Unicode string which
+      *                 contains the path to the XML grammar file to be
+      *                 preparsed.
+      * @param grammarType The grammar type (Schema or DTD).
+      * @param toCache If <code>true</code>, we cache the preparsed grammar,
+      *                otherwise, no chaching. Default is <code>false</code>.
+      * @return The preparsed schema grammar object (SchemaGrammar or
+      *         DTDGrammar). That grammar object is owned by the parser.
+      *
+      * @exception SAXException Any SAX exception, possibly
+      *            wrapping another exception.
+      * @exception XMLException An exception from the parser or client
+      *            handler code.
+      * @exception DOMException A DOM exception as per DOM spec.
+      */
+    virtual Grammar* loadGrammar(const XMLCh* const systemId,
+                                 const short grammarType,
+                                 const bool toCache = false) = 0;
+
+    /**
+      * Preparse schema grammar (XML Schema, DTD, etc.) via a file path or URL
+      *
+      * This method invokes the preparsing process on a schema grammar XML
+      * file specified by the file path parameter. If the 'toCache' flag
+      * is enabled, the parser will cache the grammars for re-use. If a grammar
+      * key is found in the pool, no caching of any grammar will take place.
+      *
+      * <p><b>"Experimental - subject to change"</b></p>
+      *
+      * @param systemId A const char pointer to a native string which contains
+      *                 the path to the XML grammar file to be preparsed.
+      * @param grammarType The grammar type (Schema or DTD).
+      * @param toCache If <code>true</code>, we cache the preparsed grammar,
+      *                otherwise, no chaching. Default is <code>false</code>.
+      * @return The preparsed schema grammar object (SchemaGrammar or
+      *         DTDGrammar). That grammar object is owned by the parser.
+      *
+      * @exception SAXException Any SAX exception, possibly
+      *            wrapping another exception.
+      * @exception XMLException An exception from the parser or client
+      *            handler code.
+      * @exception DOMException A DOM exception as per DOM spec.
+      */
+    virtual Grammar* loadGrammar(const char* const systemId,
+                                 const short grammarType,
+                                 const bool toCache = false) = 0;
+
+    /**
+      * Clear the cached grammar pool
+      */
+    virtual void resetCachedGrammarPool() = 0;
+
+    /** Set maximum input buffer size
+      *
+      * This method allows users to limit the size of buffers used in parsing
+      * XML character data. The effect of setting this size is to limit the
+      * size of a ContentHandler::characters() call.
+      *
+      * The parser's default input buffer size is 1 megabyte.
+      *
+      * @param bufferSize The maximum input buffer size
+      */
+    virtual void setInputBufferSize(const size_t bufferSize);
+
+    //@}
+
+
+    // -----------------------------------------------------------------------
+    //  Advanced document handler list maintenance methods
+    // -----------------------------------------------------------------------
+
+    /** @name Advanced document handler list maintenance methods */
+    //@{
+    /**
+      * This method installs the specified 'advanced' document callback
+      * handler, thereby allowing the user to customize the processing,
+      * if they choose to do so. Any number of advanced callback handlers
+      * maybe installed.
+      *
+      * <p>The methods in the advanced callback interface represent
+      * Xerces-C extensions. There is no specification for this interface.</p>
+      *
+      * @param toInstall A pointer to the users advanced callback handler.
+      *
+      * @see #removeAdvDocHandler
+      */
+    virtual void installAdvDocHandler(XMLDocumentHandler* const toInstall) = 0;
+
+    /**
+      * This method removes the 'advanced' document handler callback from
+      * the underlying parser scanner. If no handler is installed, advanced
+      * callbacks are not invoked by the scanner.
+      * @param toRemove A pointer to the advanced callback handler which
+      *                 should be removed.
+      *
+      * @see #installAdvDocHandler
+      */
+    virtual bool removeAdvDocHandler(XMLDocumentHandler* const toRemove) = 0;
+    //@}
+
+private :
+    /* The copy constructor, you cannot call this directly */
+    SAX2XMLReader(const SAX2XMLReader&);
+
+    /* The assignment operator, you cannot call this directly */
+    SAX2XMLReader& operator=(const SAX2XMLReader&);
+
+};
+
+inline void SAX2XMLReader::setInputBufferSize(const size_t /*bufferSize*/) 
+{
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/sax2/DefaultHandler.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/sax2/DefaultHandler.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/sax2/DefaultHandler.hpp	(revision 2674)
@@ -0,0 +1,807 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: DefaultHandler.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+#ifndef DEFAULTHANDLER_HPP
+#define DEFAULTHANDLER_HPP
+
+#include <xercesc/sax2/ContentHandler.hpp>
+#include <xercesc/sax2/LexicalHandler.hpp>
+#include <xercesc/sax2/DeclHandler.hpp>
+#include <xercesc/sax/DTDHandler.hpp>
+#include <xercesc/sax/EntityResolver.hpp>
+#include <xercesc/sax/ErrorHandler.hpp>
+#include <xercesc/sax/SAXParseException.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class Locator;
+class Attributes;
+
+/**
+  * Default base class for SAX2 handlers.
+  *
+  * <p>This class implements the default behaviour for SAX2
+  * interfaces: EntityResolver, DTDHandler, ContentHandler,
+  * ErrorHandler, LexicalHandler, and DeclHandler.</p>
+  *
+  * <p>Application writers can extend this class when they need to
+  * implement only part of an interface; parser writers can
+  * instantiate this class to provide default handlers when the
+  * application has not supplied its own.</p>
+  *
+  * <p>Note that the use of this class is optional.</p>
+  *
+  * @see EntityResolver#EntityResolver
+  * @see DTDHandler#DTDHandler
+  * @see ContentHandler#ContentHandler
+  * @see ErrorHandler#ErrorHandler
+  * @see LexicalHandler#LexicalHandler
+  * @see DeclHandler#DeclHandler
+  */
+
+class SAX2_EXPORT DefaultHandler :
+
+    public EntityResolver,
+	public DTDHandler,
+	public ContentHandler,
+    public ErrorHandler,
+    public LexicalHandler,
+    public DeclHandler
+{
+public:
+  /** @name Default handlers for the DocumentHandler interface */
+    //@{
+  /**
+    * Receive notification of character data inside an element.
+    *
+    * <p>By default, do nothing.  Application writers may override this
+    * method to take specific actions for each chunk of character data
+    * (such as adding the data to a node or buffer, or printing it to
+    * a file).</p>
+    *
+    * @param chars The characters.
+    * @param length The number of characters to use from the
+    *               character array.
+    * @exception SAXException Any SAX exception, possibly
+    *            wrapping another exception.
+    * @see DocumentHandler#characters
+    */
+    virtual void characters
+    (
+        const   XMLCh* const    chars
+        , const unsigned int    length
+    );
+
+  /**
+    * Receive notification of the end of the document.
+    *
+    * <p>By default, do nothing.  Application writers may override this
+    * method in a subclass to take specific actions at the beginning
+    * of a document (such as finalising a tree or closing an output
+    * file).</p>
+    *
+    * @exception SAXException Any SAX exception, possibly
+    *            wrapping another exception.
+    * @see DocumentHandler#endDocument
+    */
+    virtual void endDocument();
+
+  /**
+    * Receive notification of the end of an element.
+    *
+    * <p>By default, do nothing.  Application writers may override this
+    * method in a subclass to take specific actions at the end of
+    * each element (such as finalising a tree node or writing
+    * output to a file).</p>
+    *
+    * @param uri The URI of the asscioated namespace for this element
+	* @param localname The local part of the element name
+	* @param qname The QName of this element
+    * @exception SAXException Any SAX exception, possibly
+    *            wrapping another exception.
+    * @see DocumentHandler#endElement
+    */
+    virtual void endElement
+	(
+		const XMLCh* const uri,
+		const XMLCh* const localname,
+		const XMLCh* const qname
+	);
+
+  /**
+    * Receive notification of ignorable whitespace in element content.
+    *
+    * <p>By default, do nothing.  Application writers may override this
+    * method to take specific actions for each chunk of ignorable
+    * whitespace (such as adding data to a node or buffer, or printing
+    * it to a file).</p>
+    *
+    * @param chars The whitespace characters.
+    * @param length The number of characters to use from the
+    *               character array.
+    * @exception SAXException Any SAX exception, possibly
+    *            wrapping another exception.
+    * @see DocumentHandler#ignorableWhitespace
+    */
+    virtual void ignorableWhitespace
+    (
+        const   XMLCh* const    chars
+        , const unsigned int    length
+    );
+
+  /**
+    * Receive notification of a processing instruction.
+    *
+    * <p>By default, do nothing.  Application writers may override this
+    * method in a subclass to take specific actions for each
+    * processing instruction, such as setting status variables or
+    * invoking other methods.</p>
+    *
+    * @param target The processing instruction target.
+    * @param data The processing instruction data, or null if
+    *             none is supplied.
+    * @exception SAXException Any SAX exception, possibly
+    *            wrapping another exception.
+    * @see DocumentHandler#processingInstruction
+    */
+    virtual void processingInstruction
+    (
+        const   XMLCh* const    target
+        , const XMLCh* const    data
+    );
+
+    /**
+    * Reset the Docuemnt object on its reuse
+    *
+    * @see DocumentHandler#resetDocument
+    */
+    virtual void resetDocument();
+    //@}
+
+    /** @name Default implementation of DocumentHandler interface */
+
+    //@{
+  /**
+    * Receive a Locator object for document events.
+    *
+    * <p>By default, do nothing.  Application writers may override this
+    * method in a subclass if they wish to store the locator for use
+    * with other document events.</p>
+    *
+    * @param locator A locator for all SAX document events.
+    * @see DocumentHandler#setDocumentLocator
+    * @see Locator
+    */
+    virtual void setDocumentLocator(const Locator* const locator);
+
+  /**
+    * Receive notification of the beginning of the document.
+    *
+    * <p>By default, do nothing.  Application writers may override this
+    * method in a subclass to take specific actions at the beginning
+    * of a document (such as allocating the root node of a tree or
+    * creating an output file).</p>
+    *
+    * @exception SAXException Any SAX exception, possibly
+    *            wrapping another exception.
+    * @see DocumentHandler#startDocument
+    */
+    virtual void startDocument();
+
+  /**
+    * Receive notification of the start of an element.
+    *
+    * <p>By default, do nothing.  Application writers may override this
+    * method in a subclass to take specific actions at the start of
+    * each element (such as allocating a new tree node or writing
+    * output to a file).</p>
+    *
+    * @param uri The URI of the asscioated namespace for this element
+	* @param localname the local part of the element name
+	* @param qname the QName of this element
+    * @param attrs The specified or defaulted attributes.
+    * @exception SAXException Any SAX exception, possibly
+    *            wrapping another exception.
+    * @see DocumentHandler#startElement
+    */
+    virtual void startElement
+    (
+        const   XMLCh* const    uri,
+        const   XMLCh* const    localname,
+        const   XMLCh* const    qname
+        , const Attributes&	attrs
+    );
+
+  /**
+    * Receive notification of the start of an namespace prefix mapping.
+    *
+    * <p>By default, do nothing.  Application writers may override this
+    * method in a subclass to take specific actions at the start of
+    * each namespace prefix mapping.</p>
+    *
+    * @param prefix The namespace prefix used
+    * @param uri The namespace URI used.
+    * @exception SAXException Any SAX exception, possibly
+    *            wrapping another exception.
+    * @see DocumentHandler#startPrefixMapping
+    */
+	virtual void startPrefixMapping
+	(
+		const	XMLCh* const	prefix,
+		const	XMLCh* const	uri
+	) ;
+
+  /**
+    * Receive notification of the end of an namespace prefix mapping.
+    *
+    * <p>By default, do nothing.  Application writers may override this
+    * method in a subclass to take specific actions at the end of
+    * each namespace prefix mapping.</p>
+    *
+    * @param prefix The namespace prefix used
+    * @exception SAXException Any SAX exception, possibly
+    *            wrapping another exception.
+    * @see DocumentHandler#endPrefixMapping
+    */
+	virtual void endPrefixMapping
+	(
+		const	XMLCh* const	prefix
+	) ;
+
+  /**
+    * Receive notification of a skipped entity
+    *
+    * <p>The parser will invoke this method once for each entity
+	* skipped.  All processors may skip external entities,
+	* depending on the values of the features:<br>
+	* http://xml.org/sax/features/external-general-entities<br>
+	* http://xml.org/sax/features/external-parameter-entities</p>
+    *
+	* <p>Introduced with SAX2</p>
+	*
+    * @param name The name of the skipped entity.  If it is a parameter entity,
+	* the name will begin with %, and if it is the external DTD subset,
+	* it will be the string [dtd].
+    * @exception SAXException Any SAX exception, possibly
+    *            wrapping another exception.
+    */
+	virtual void skippedEntity
+	(
+		const	XMLCh* const	name
+	) ;
+
+    //@}
+
+    /** @name Default implementation of the EntityResolver interface. */
+
+    //@{
+  /**
+    * Resolve an external entity.
+    *
+    * <p>Always return null, so that the parser will use the system
+    * identifier provided in the XML document.  This method implements
+    * the SAX default behaviour: application writers can override it
+    * in a subclass to do special translations such as catalog lookups
+    * or URI redirection.</p>
+    *
+    * @param publicId The public identifer, or null if none is
+    *                 available.
+    * @param systemId The system identifier provided in the XML
+    *                 document.
+    * @return The new input source, or null to require the
+    *         default behaviour.
+    *         The returned InputSource is owned by the parser which is
+    *         responsible to clean up the memory.
+    * @exception SAXException Any SAX exception, possibly
+    *            wrapping another exception.
+    * @see EntityResolver#resolveEntity
+    */
+    virtual InputSource* resolveEntity
+    (
+        const   XMLCh* const    publicId
+        , const XMLCh* const    systemId
+    );
+
+    //@}
+
+    /** @name Default implementation of the ErrorHandler interface */
+    //@{
+   /**
+    * Receive notification of a recoverable parser error.
+    *
+    * <p>The default implementation does nothing.  Application writers
+    * may override this method in a subclass to take specific actions
+    * for each error, such as inserting the message in a log file or
+    * printing it to the console.</p>
+    *
+    * @param exc The warning information encoded as an exception.
+    * @exception SAXException Any SAX exception, possibly
+    *            wrapping another exception.
+    * @see ErrorHandler#warning
+    * @see SAXParseException#SAXParseException
+    */
+    virtual void error(const SAXParseException& exc);
+
+  /**
+    * Report a fatal XML parsing error.
+    *
+    * <p>The default implementation throws a SAXParseException.
+    * Application writers may override this method in a subclass if
+    * they need to take specific actions for each fatal error (such as
+    * collecting all of the errors into a single report): in any case,
+    * the application must stop all regular processing when this
+    * method is invoked, since the document is no longer reliable, and
+    * the parser may no longer report parsing events.</p>
+    *
+    * @param exc The error information encoded as an exception.
+    * @exception SAXException Any SAX exception, possibly
+    *            wrapping another exception.
+    * @see ErrorHandler#fatalError
+    * @see SAXParseException#SAXParseException
+    */
+    virtual void fatalError(const SAXParseException& exc);
+
+  /**
+    * Receive notification of a parser warning.
+    *
+    * <p>The default implementation does nothing.  Application writers
+    * may override this method in a subclass to take specific actions
+    * for each warning, such as inserting the message in a log file or
+    * printing it to the console.</p>
+    *
+    * @param exc The warning information encoded as an exception.
+    * @exception SAXException Any SAX exception, possibly
+    *            wrapping another exception.
+    * @see ErrorHandler#warning
+    * @see SAXParseException#SAXParseException
+    */
+    virtual void warning(const SAXParseException& exc);
+
+    /**
+    * Reset the Error handler object on its reuse
+    *
+    * @see ErrorHandler#resetErrors
+    */
+    virtual void resetErrors();
+
+    //@}
+
+
+    /** @name Default implementation of DTDHandler interface. */
+    //@{
+
+  /**
+    * Receive notification of a notation declaration.
+    *
+    * <p>By default, do nothing.  Application writers may override this
+    * method in a subclass if they wish to keep track of the notations
+    * declared in a document.</p>
+    *
+    * @param name The notation name.
+    * @param publicId The notation public identifier, or null if not
+    *                 available.
+    * @param systemId The notation system identifier.
+    * @see DTDHandler#notationDecl
+    */
+    virtual void notationDecl
+    (
+        const   XMLCh* const    name
+        , const XMLCh* const    publicId
+        , const XMLCh* const    systemId
+    );
+
+    /**
+    * Reset the DTD object on its reuse
+    *
+    * @see DTDHandler#resetDocType
+    */
+    virtual void resetDocType();
+
+  /**
+    * Receive notification of an unparsed entity declaration.
+    *
+    * <p>By default, do nothing.  Application writers may override this
+    * method in a subclass to keep track of the unparsed entities
+    * declared in a document.</p>
+    *
+    * @param name The entity name.
+    * @param publicId The entity public identifier, or null if not
+    *                 available.
+    * @param systemId The entity system identifier.
+    * @param notationName The name of the associated notation.
+    * @see DTDHandler#unparsedEntityDecl
+    */
+    virtual void unparsedEntityDecl
+    (
+        const   XMLCh* const    name
+        , const XMLCh* const    publicId
+        , const XMLCh* const    systemId
+        , const XMLCh* const    notationName
+    );
+    //@}
+
+
+    /** @name Default implementation of LexicalHandler interface. */
+
+    //@{
+   /**
+    * Receive notification of comments.
+    *
+    * <p>The Parser will call this method to report each occurence of
+    * a comment in the XML document.</p>
+    *
+    * <p>The application must not attempt to read from the array
+    * outside of the specified range.</p>
+    *
+    * @param chars The characters from the XML document.
+    * @param length The number of characters to read from the array.
+    * @exception SAXException Any SAX exception, possibly
+    *            wrapping another exception.
+    */
+    virtual void comment
+    (
+        const   XMLCh* const    chars
+        , const unsigned int    length
+    );
+
+  /**
+    * Receive notification of the end of a CDATA section.
+    *
+    * <p>The SAX parser will invoke this method at the end of
+    * each CDATA parsed.</p>
+    *
+    * @exception SAXException Any SAX exception, possibly
+    *            wrapping another exception.
+    */
+    virtual void endCDATA ();
+
+  /**
+    * Receive notification of the end of the DTD declarations.
+    *
+    * <p>The SAX parser will invoke this method at the end of the
+    * DTD</p>
+    *
+    * @exception SAXException Any SAX exception, possibly
+    *            wrapping another exception.
+    */
+    virtual void endDTD ();
+
+  /**
+    * Receive notification of the end of an entity.
+    *
+    * <p>The SAX parser will invoke this method at the end of an
+    * entity</p>
+    *
+    * @param name The name of the entity that is ending.
+    * @exception SAXException Any SAX exception, possibly
+    *            wrapping another exception.
+    */
+    virtual void endEntity (const XMLCh* const name);
+
+  /**
+    * Receive notification of the start of a CDATA section.
+    *
+    * <p>The SAX parser will invoke this method at the start of
+    * each CDATA parsed.</p>
+    *
+    * @exception SAXException Any SAX exception, possibly
+    *            wrapping another exception.
+    */
+    virtual void startCDATA ();
+
+  /**
+    * Receive notification of the start of the DTD declarations.
+    *
+    * <p>The SAX parser will invoke this method at the start of the
+    * DTD</p>
+    *
+    * @param name The document type name.
+    * @param publicId The declared public identifier for the external DTD subset, or null if none was declared.
+    * @param systemId The declared system identifier for the external DTD subset, or null if none was declared.
+    * @exception SAXException Any SAX exception, possibly
+    *            wrapping another exception.
+    */
+    virtual void startDTD
+    (
+        const   XMLCh* const    name
+        , const   XMLCh* const    publicId
+        , const   XMLCh* const    systemId
+    );
+
+  /**
+    * Receive notification of the start of an entity.
+    *
+    * <p>The SAX parser will invoke this method at the start of an
+    * entity</p>
+    *
+    * @param name The name of the entity that is starting.
+    * @exception SAXException Any SAX exception, possibly
+    *            wrapping another exception.
+    */
+    virtual void startEntity (const XMLCh* const name);
+
+    //@}
+
+    /** @name Default implementation of DeclHandler interface. */
+
+    //@{
+
+   /**
+    * Report an element type declaration.
+    *
+    * <p>The content model will consist of the string "EMPTY", the string
+    * "ANY", or a parenthesised group, optionally followed by an occurrence
+    * indicator. The model will be normalized so that all parameter entities
+    * are fully resolved and all whitespace is removed,and will include the
+    * enclosing parentheses. Other normalization (such as removing redundant
+    * parentheses or simplifying occurrence indicators) is at the discretion
+    * of the parser.</p>
+    *
+    * @param name The element type name.
+    * @param model The content model as a normalized string.
+    * @exception SAXException Any SAX exception, possibly
+    *            wrapping another exception.
+    */
+    virtual void elementDecl
+    (
+        const   XMLCh* const    name
+        , const XMLCh* const    model
+    );
+
+   /**
+    * Report an attribute type declaration.
+    *
+    * <p>Only the effective (first) declaration for an attribute will
+    * be reported.</p>
+    *
+    * @param eName The name of the associated element.
+    * @param aName The name of the attribute.
+    * @param type A string representing the attribute type.
+    * @param mode A string representing the attribute defaulting mode ("#IMPLIED", "#REQUIRED", or "#FIXED") or null if none of these applies.
+    * @param value A string representing the attribute's default value, or null if there is none.
+    * @exception SAXException Any SAX exception, possibly
+    *            wrapping another exception.
+    */
+    virtual void attributeDecl
+    (
+        const   XMLCh* const    eName
+        , const XMLCh* const    aName
+        , const XMLCh* const    type
+        , const XMLCh* const    mode
+        , const XMLCh* const    value
+    );
+
+   /**
+    * Report an internal entity declaration.
+    *
+    * <p>Only the effective (first) declaration for each entity will be
+    * reported. All parameter entities in the value will be expanded, but
+    * general entities will not.</p>
+    *
+    * @param name The name of the entity. If it is a parameter entity, the name will begin with '%'.
+    * @param value The replacement text of the entity.
+    * @exception SAXException Any SAX exception, possibly
+    *            wrapping another exception.
+    */
+    virtual void internalEntityDecl
+    (
+        const   XMLCh* const    name
+        , const XMLCh* const    value
+    );
+
+   /**
+    * Report a parsed external entity declaration.
+    *
+    * <p>Only the effective (first) declaration for each entity will
+    * be reported.</p>
+    *
+    * @param name The name of the entity. If it is a parameter entity, the name will begin with '%'.
+    * @param publicId The The declared public identifier of the entity, or null if none was declared.
+    * @param systemId The declared system identifier of the entity.
+    * @exception SAXException Any SAX exception, possibly
+    *            wrapping another exception.
+    */
+    virtual void externalEntityDecl
+    (
+        const   XMLCh* const    name
+        , const XMLCh* const    publicId
+        , const XMLCh* const    systemId
+    );
+
+    //@}
+
+    DefaultHandler() {};
+    virtual ~DefaultHandler() {};
+
+private:
+	// -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    DefaultHandler(const DefaultHandler&);
+    DefaultHandler& operator=(const DefaultHandler&);    
+};
+
+
+// ---------------------------------------------------------------------------
+//  HandlerBase: Inline default implementations
+// ---------------------------------------------------------------------------
+inline void DefaultHandler::characters(const   XMLCh* const
+                                       ,const   unsigned int)
+{
+}
+
+inline void DefaultHandler::endDocument()
+{
+}
+
+inline void DefaultHandler::endElement(const	XMLCh* const
+										, const XMLCh* const
+										, const XMLCh* const)
+{
+}
+
+inline void DefaultHandler::error(const SAXParseException&)
+{
+}
+
+inline void DefaultHandler::fatalError(const SAXParseException& exc)
+{
+    throw exc;
+}
+
+inline void
+DefaultHandler::ignorableWhitespace( const   XMLCh* const
+                                    , const unsigned int)
+{
+}
+
+inline void DefaultHandler::notationDecl(  const   XMLCh* const
+											, const XMLCh* const
+											, const XMLCh* const)
+{
+}
+
+inline void
+DefaultHandler::processingInstruction( const   XMLCh* const
+										, const XMLCh* const)
+{
+}
+
+inline void DefaultHandler::resetErrors()
+{
+}
+
+inline void DefaultHandler::resetDocument()
+{
+}
+
+inline void DefaultHandler::resetDocType()
+{
+}
+
+inline InputSource*
+DefaultHandler::resolveEntity( const   XMLCh* const
+								, const XMLCh* const)
+{
+    return 0;
+}
+
+inline void
+DefaultHandler::unparsedEntityDecl(const   XMLCh* const
+									, const XMLCh* const
+									, const XMLCh* const
+									, const XMLCh* const)
+{
+}
+
+inline void DefaultHandler::setDocumentLocator(const Locator* const)
+{
+}
+
+inline void DefaultHandler::startDocument()
+{
+}
+
+inline void
+DefaultHandler::startElement(  const     XMLCh* const
+								, const   XMLCh* const
+								, const   XMLCh* const
+								, const   Attributes&
+)
+{
+}
+
+inline void DefaultHandler::warning(const SAXParseException&)
+{
+}
+
+inline void DefaultHandler::startPrefixMapping ( const	XMLCh* const
+												,const	XMLCh* const)
+{
+}
+
+inline void DefaultHandler::endPrefixMapping ( const	XMLCh* const)
+{
+}
+
+inline void DefaultHandler::skippedEntity ( const	XMLCh* const)
+{
+}
+
+inline void DefaultHandler::comment(  const   XMLCh* const
+                                       , const unsigned int)
+{
+}
+
+inline void DefaultHandler::endCDATA ()
+{
+}
+
+inline void DefaultHandler::endDTD ()
+{
+}
+
+inline void DefaultHandler::endEntity (const XMLCh* const)
+{
+}
+
+inline void DefaultHandler::startCDATA ()
+{
+}
+
+inline void DefaultHandler::startDTD(  const   XMLCh* const
+                                        , const   XMLCh* const
+                                        , const   XMLCh* const)
+{
+}
+
+inline void DefaultHandler::startEntity (const XMLCh* const)
+{
+}
+
+inline void DefaultHandler::attributeDecl(const XMLCh* const,
+                                          const XMLCh* const,
+                                          const XMLCh* const,
+                                          const XMLCh* const,
+                                          const XMLCh* const)
+{
+}
+
+inline void DefaultHandler::elementDecl(const XMLCh* const,
+                                        const XMLCh* const)
+{
+}
+
+inline void DefaultHandler::externalEntityDecl(const XMLCh* const,
+                                               const XMLCh* const,
+                                               const XMLCh* const)
+{
+}
+
+inline void DefaultHandler::internalEntityDecl(const XMLCh* const,
+                                               const XMLCh* const)
+{
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif // ! DEFAULTHANDLER_HPP
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/sax2/SAX2XMLFilter.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/sax2/SAX2XMLFilter.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/sax2/SAX2XMLFilter.hpp	(revision 2674)
@@ -0,0 +1,82 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: SAX2XMLFilter.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#ifndef SAX2XMLFilter_HPP
+#define SAX2XMLFilter_HPP
+
+#include <xercesc/sax2/SAX2XMLReader.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class SAX2_EXPORT SAX2XMLFilter : public SAX2XMLReader
+{
+public:
+    // -----------------------------------------------------------------------
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+    /** @name Constructors and Destructor */
+    //@{
+    /** The default constructor */
+    SAX2XMLFilter()
+    {
+    }
+    /** The destructor */
+    virtual ~SAX2XMLFilter()
+    {
+    }
+    //@}
+
+    //-----------------------------------------------------------------------
+    // The XMLFilter interface
+    //-----------------------------------------------------------------------
+    /** @name Implementation of SAX 2.0 XMLFilter interface's. */
+    //@{
+
+    /**
+      * This method returns the parent XMLReader object.
+      *
+      * @return A pointer to the parent XMLReader object.
+      */
+    virtual SAX2XMLReader* getParent() const = 0 ;
+
+    /**
+      * Sets the parent XMLReader object; parse requests will be forwarded to this
+      * object, and callback notifications coming from it will be postprocessed
+      *
+      * @param parent The new XMLReader parent.
+      * @see SAX2XMLReader#SAX2XMLReader
+      */
+    virtual void setParent(SAX2XMLReader* parent) = 0;
+
+    //@}
+
+private :
+    /* The copy constructor, you cannot call this directly */
+    SAX2XMLFilter(const SAX2XMLFilter&);
+
+    /* The assignment operator, you cannot call this directly */
+    SAX2XMLFilter& operator=(const SAX2XMLFilter&);
+
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/sax2/DeclHandler.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/sax2/DeclHandler.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/sax2/DeclHandler.hpp	(revision 2674)
@@ -0,0 +1,164 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: DeclHandler.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+#ifndef DECLHANDLER_HPP
+#define DECLHANDLER_HPP
+
+#include <xercesc/util/XercesDefs.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+/**
+  * Receive notification of DTD declaration events.
+  *
+  * <p>This is an optional extension handler for SAX2 to provide more
+  * complete information about DTD declarations in an XML document.
+  * XML readers are not required to recognize this handler, and it is not
+  * part of core-only SAX2 distributions.</p>
+  *
+  * <p>Note that data-related DTD declarations (unparsed entities and
+  * notations) are already reported through the DTDHandler interface.</p>
+  *
+  * <p>If you are using the declaration handler together with a lexical
+  * handler, all of the events will occur between the startDTD and the endDTD
+  * events.</p>
+  *
+  * @see SAX2XMLReader#setLexicalHandler
+  * @see SAX2XMLReader#setDeclarationHandler
+  */
+
+class SAX2_EXPORT DeclHandler
+{
+public:
+    /** @name Constructors and Destructor */
+    //@{
+    /** Default constructor */
+    DeclHandler()
+    {
+    }
+
+    /** Destructor */
+    virtual ~DeclHandler()
+    {
+    }
+    //@}
+
+    /** @name The virtual declaration handler interface */
+
+    //@{
+   /**
+    * Report an element type declaration.
+    *
+    * <p>The content model will consist of the string "EMPTY", the string
+    * "ANY", or a parenthesised group, optionally followed by an occurrence
+    * indicator. The model will be normalized so that all parameter entities
+    * are fully resolved and all whitespace is removed,and will include the
+    * enclosing parentheses. Other normalization (such as removing redundant
+    * parentheses or simplifying occurrence indicators) is at the discretion
+    * of the parser.</p>
+    *
+    * @param name The element type name.
+    * @param model The content model as a normalized string.
+    * @exception SAXException Any SAX exception, possibly
+    *            wrapping another exception.
+    */
+    virtual void elementDecl
+    (
+        const   XMLCh* const    name
+        , const XMLCh* const    model
+    ) = 0;
+
+   /**
+    * Report an attribute type declaration.
+    *
+    * <p>The Parser will call this method to report each occurence of
+    * a comment in the XML document.</p>
+    *
+    * <p>The application must not attempt to read from the array
+    * outside of the specified range.</p>
+    *
+    * @param eName The name of the associated element.
+    * @param aName The name of the attribute.
+    * @param type A string representing the attribute type.
+    * @param mode A string representing the attribute defaulting mode ("#IMPLIED", "#REQUIRED", or "#FIXED") or null if none of these applies.
+    * @param value A string representing the attribute's default value, or null if there is none.
+    * @exception SAXException Any SAX exception, possibly
+    *            wrapping another exception.
+    */
+    virtual void attributeDecl
+    (
+        const   XMLCh* const    eName
+        , const XMLCh* const    aName
+        , const XMLCh* const    type
+        , const XMLCh* const    mode
+        , const XMLCh* const    value
+    ) = 0;
+
+   /**
+    * Report an internal entity declaration.
+    *
+    * <p>Only the effective (first) declaration for each entity will be
+    * reported. All parameter entities in the value will be expanded, but
+    * general entities will not.</p>
+    *
+    * @param name The name of the entity. If it is a parameter entity, the name will begin with '%'.
+    * @param value The replacement text of the entity.
+    * @exception SAXException Any SAX exception, possibly
+    *            wrapping another exception.
+    */
+    virtual void internalEntityDecl
+    (
+        const   XMLCh* const    name
+        , const XMLCh* const    value
+    ) = 0;
+
+   /**
+    * Report a parsed external entity declaration.
+    *
+    * <p>Only the effective (first) declaration for each entity will
+    * be reported.</p>
+    *
+    * @param name The name of the entity. If it is a parameter entity, the name will begin with '%'.
+    * @param publicId The The declared public identifier of the entity, or null if none was declared.
+    * @param systemId The declared system identifier of the entity.
+    * @exception SAXException Any SAX exception, possibly
+    *            wrapping another exception.
+    */
+    virtual void externalEntityDecl
+    (
+        const   XMLCh* const    name
+        , const XMLCh* const    publicId
+        , const XMLCh* const    systemId
+    ) = 0;
+
+    //@}
+private :
+    /* Unimplemented Constructors and operators */
+    /* Copy constructor */
+    DeclHandler(const DeclHandler&);
+    /** Assignment operator */
+    DeclHandler& operator=(const DeclHandler&);
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/sax2/Attributes.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/sax2/Attributes.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/sax2/Attributes.hpp	(revision 2674)
@@ -0,0 +1,286 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: Attributes.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#ifndef ATTRIBUTES_HPP
+#define ATTRIBUTES_HPP
+
+#include <xercesc/util/XercesDefs.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+/**
+  * Interface for an element's attribute specifications.
+  *
+  * The SAX2 parser implements this interface and passes an instance
+  * to the SAX2 application as the last argument of each startElement
+  * event.
+  *
+  * The instance provided will return valid results only during the
+  * scope of the startElement invocation (to save it for future
+  * use, the application must make a copy: the AttributesImpl
+  * helper class provides a convenient constructor for doing so).
+  *
+  * An Attributes includes only attributes that have been
+  * specified or defaulted: #IMPLIED attributes will not be included.
+  *
+  * There are two ways for the SAX application to obtain information
+  * from the Attributes.  First, it can iterate through the entire
+  * list:
+  *
+  * <code>
+  * public void startElement (String uri, String localpart, String qName, Attributes atts) {<br>
+  * &nbsp;for (int i = 0; i < atts.getLength(); i++) {<br>
+  * &nbsp;&nbsp;String Qname = atts.getQName(i);<br>
+  * &nbsp;&nbsp;String URI   = atts.getURI(i)<br>
+  * &nbsp;&nbsp;String local = atts.GetLocalName(i)<br>
+  * &nbsp;&nbsp;String type  = atts.getType(i);<br>
+  * &nbsp;&nbsp;String value = atts.getValue(i);<br>
+  * &nbsp;&nbsp;[...]<br>
+  * &nbsp;}<br>
+  * }
+  * </code>
+  *
+  * (Note that the result of getLength() will be zero if there
+  * are no attributes.)
+  *
+  * As an alternative, the application can request the value or
+  * type of specific attributes:
+  *
+  * <code>
+  * public void startElement (String uri, String localpart, String qName, Attributes atts) {<br>
+  * &nbsp;String identifier = atts.getValue("id");<br>
+  * &nbsp;String label = atts.getValue("label");<br>
+  * &nbsp;[...]<br>
+  * }
+  * </code>
+  *
+  * The AttributesImpl helper class provides a convenience
+  * implementation for use by parser or application writers.
+  *
+  * @see Sax2DocumentHandler#startElement
+  * @see AttributesImpl#AttributesImpl
+  */
+
+class SAX2_EXPORT Attributes
+{
+public:
+    // -----------------------------------------------------------------------
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+    /** @name Constructors and Destructor */
+    //@{
+    /** Default constructor */
+    Attributes()
+    {
+    }
+
+    /** Destructor */
+    virtual ~Attributes()
+    {
+    }
+    //@}
+
+    /** @name The virtual attribute list interface */
+    //@{
+  /**
+    * Return the number of attributes in this list.
+    *
+    * The SAX parser may provide attributes in any
+    * arbitrary order, regardless of the order in which they were
+    * declared or specified.  The number of attributes may be
+    * zero.
+    *
+    * @return The number of attributes in the list.
+    */
+    virtual unsigned int getLength() const = 0;
+
+  /**
+    * Return the namespace URI of an attribute in this list (by position).
+    *
+    * The QNames must be unique: the SAX parser shall not include the
+    * same attribute twice.  Attributes without values (those declared
+    * #IMPLIED without a value specified in the start tag) will be
+    * omitted from the list.
+    *
+    * @param index The index of the attribute in the list (starting at 0).
+    * @return The URI of the indexed attribute, or null
+    *         if the index is out of range.
+    * @see #getLength
+    */
+	virtual const XMLCh* getURI(const unsigned int index) const = 0;
+
+  /**
+    * Return the local name of an attribute in this list (by position).
+    *
+    * The QNames must be unique: the SAX parser shall not include the
+    * same attribute twice.  Attributes without values (those declared
+    * #IMPLIED without a value specified in the start tag) will be
+    * omitted from the list.
+    *
+    * @param index The index of the attribute in the list (starting at 0).
+    * @return The local name of the indexed attribute, or null
+    *         if the index is out of range.
+    * @see #getLength
+    */
+    virtual const XMLCh* getLocalName(const unsigned int index) const = 0;
+
+  /**
+    * Return the qName of an attribute in this list (by position).
+    *
+    * The QNames must be unique: the SAX parser shall not include the
+    * same attribute twice.  Attributes without values (those declared
+    * #IMPLIED without a value specified in the start tag) will be
+    * omitted from the list.
+    *
+    * @param index The index of the attribute in the list (starting at 0).
+    * @return The qName of the indexed attribute, or null
+    *         if the index is out of range.
+    * @see #getLength
+    */
+    virtual const XMLCh* getQName(const unsigned int index) const = 0;
+
+  /**
+    * Return the type of an attribute in the list (by position).
+    *
+    * The attribute type is one of the strings "CDATA", "ID",
+    * "IDREF", "IDREFS", "NMTOKEN", "NMTOKENS", "ENTITY", "ENTITIES",
+    * or "NOTATION" (always in upper case).
+    *
+    * If the parser has not read a declaration for the attribute,
+    * or if the parser does not report attribute types, then it must
+    * return the value "CDATA" as stated in the XML 1.0 Recommentation
+    * (clause 3.3.3, "Attribute-Value Normalization").
+    *
+    * For an enumerated attribute that is not a notation, the
+    * parser will report the type as "NMTOKEN".
+    *
+    * @param index The index of the attribute in the list (starting at 0).
+    * @return The attribute type as a string, or
+    *         null if the index is out of range.
+    * @see #getLength
+    * @see #getType(String)
+    */
+    virtual const XMLCh* getType(const unsigned int index) const = 0;
+
+  /**
+    * Return the value of an attribute in the list (by position).
+    *
+    * If the attribute value is a list of tokens (IDREFS,
+    * ENTITIES, or NMTOKENS), the tokens will be concatenated
+    * into a single string separated by whitespace.
+    *
+    * @param index The index of the attribute in the list (starting at 0).
+    * @return The attribute value as a string, or
+    *         null if the index is out of range.
+    * @see #getLength
+    * @see #getValue(XMLCh*)
+    */
+    virtual const XMLCh* getValue(const unsigned int index) const = 0;
+
+    ////////////////////////////////////////////////////////////////////
+    // Name-based query.
+    ////////////////////////////////////////////////////////////////////
+
+   /**
+     * Look up the index of an attribute by Namespace name.
+     *
+     * @param uri The Namespace URI, or the empty string if
+     *        the name has no Namespace URI.
+     * @param localPart The attribute's local name.
+     * @return The index of the attribute, or -1 if it does not
+     *         appear in the list.
+     */
+	virtual int getIndex(const XMLCh* const uri, const XMLCh* const localPart ) const = 0 ;
+
+   /**
+     * Look up the index of an attribute by XML 1.0 qualified name.
+     *
+     * @param qName The qualified (prefixed) name.
+     * @return The index of the attribute, or -1 if it does not
+     *         appear in the list.
+     */
+	virtual int getIndex(const XMLCh* const qName ) const = 0 ;
+
+   /**
+     * Look up an attribute's type by Namespace name.
+     *
+     * <p>See #getType for a description of the possible types.</p>
+     *
+     * @param uri The Namespace URI, or the empty String if the
+     *        name has no Namespace URI.
+     * @param localPart The local name of the attribute.
+     * @return The attribute type as a string, or null if the
+     *         attribute is not in the list or if Namespace
+     *         processing is not being performed.
+     */
+	virtual const XMLCh* getType(const XMLCh* const uri, const XMLCh* const localPart ) const = 0 ;
+
+   /**
+     * Look up an attribute's type by XML 1.0 qualified name.
+     *
+     * <p>See #getType for a description of the possible types.</p>
+     *
+     * @param qName The XML 1.0 qualified name.
+     * @return The attribute type as a string, or null if the
+     *         attribute is not in the list or if qualified names
+     *         are not available.
+     */
+    virtual const XMLCh* getType(const XMLCh* const qName) const = 0;
+
+   /**
+     * Look up an attribute's value by Namespace name.
+     *
+     * <p>See #getValue for a description of the possible values.</p>
+     *
+     * @param uri The Namespace URI, or the empty String if the
+     *        name has no Namespace URI.
+     * @param localPart The local name of the attribute.
+     * @return The attribute value as a string, or null if the
+     *         attribute is not in the list.
+     */
+	virtual const XMLCh* getValue(const XMLCh* const uri, const XMLCh* const localPart ) const = 0 ;
+
+   /**
+     * Look up an attribute's value by XML 1.0 qualified name.
+     *
+     * <p>See #getValue for a description of the possible values.</p>
+     *
+     * @param qName The XML 1.0 qualified name.
+     * @return The attribute value as a string, or null if the
+     *         attribute is not in the list or if qualified names
+     *         are not available.
+     */
+    virtual const XMLCh* getValue(const XMLCh* const qName) const = 0;
+
+    //@}
+
+private :
+    /* Constructors and operators */
+    /* Copy constructor */
+    Attributes(const Attributes&);
+    /* Assignment operator */
+    Attributes& operator=(const Attributes&);
+
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/sax2/ContentHandler.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/sax2/ContentHandler.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/sax2/ContentHandler.hpp	(revision 2674)
@@ -0,0 +1,341 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: ContentHandler.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+#ifndef CONTENTHANDLER_HPP
+#define CONTENTHANDLER_HPP
+
+#include <xercesc/util/XercesDefs.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class Attributes;
+class Locator;
+
+/**
+  * Receive notification of general document events.
+  *
+  * <p>This is the main interface that most SAX2 applications
+  * implement: if the application needs to be informed of basic parsing
+  * events, it implements this interface and registers an instance with
+  * the SAX2 parser using the setDocumentHandler method.  The parser
+  * uses the instance to report basic document-related events like
+  * the start and end of elements and character data.</p>
+  *
+  * <p>The order of events in this interface is very important, and
+  * mirrors the order of information in the document itself.  For
+  * example, all of an element's content (character data, processing
+  * instructions, and/or subelements) will appear, in order, between
+  * the startElement event and the corresponding endElement event.</p>
+  *
+  * <p>Application writers who do not want to implement the entire
+  * interface while can derive a class from Sax2HandlerBase, which implements
+  * the default functionality; parser writers can instantiate
+  * Sax2HandlerBase to obtain a default handler.  The application can find
+  * the location of any document event using the Locator interface
+  * supplied by the Parser through the setDocumentLocator method.</p>
+  *
+  * @see Parser#setDocumentHandler
+  * @see Locator#Locator
+  * @see Sax2HandlerBase#Sax2HandlerBase
+  */
+
+class SAX2_EXPORT ContentHandler
+{
+public:
+    /** @name Constructors and Destructor */
+    //@{
+    /** Default constructor */
+    ContentHandler()
+    {
+    }
+
+    /** Destructor */
+    virtual ~ContentHandler()
+    {
+    }
+    //@}
+
+    /** @name The virtual document handler interface */
+
+    //@{
+   /**
+    * Receive notification of character data.
+    *
+    * <p>The Parser will call this method to report each chunk of
+    * character data.  SAX parsers may return all contiguous character
+    * data in a single chunk, or they may split it into several
+    * chunks; however, all of the characters in any single event
+    * must come from the same external entity, so that the Locator
+    * provides useful information.</p>
+    *
+    * <p>The application must not attempt to read from the array
+    * outside of the specified range.</p>
+    *
+    * <p>Note that some parsers will report whitespace using the
+    * ignorableWhitespace() method rather than this one (validating
+    * parsers must do so).</p>
+    *
+    * @param chars The characters from the XML document.
+    * @param length The number of characters to read from the array.
+    * @exception SAXException Any SAX exception, possibly
+    *            wrapping another exception.
+    * @see #ignorableWhitespace
+    * @see Locator#Locator
+    */
+    virtual void characters
+    (
+        const   XMLCh* const    chars
+        , const unsigned int    length
+    ) = 0;
+
+  /**
+    * Receive notification of the end of a document.
+    *
+    * <p>The SAX parser will invoke this method only once, and it will
+    * be the last method invoked during the parse.  The parser shall
+    * not invoke this method until it has either abandoned parsing
+    * (because of an unrecoverable error) or reached the end of
+    * input.</p>
+    *
+    * @exception SAXException Any SAX exception, possibly
+    *            wrapping another exception.
+    */
+    virtual void endDocument () = 0;
+
+  /**
+    * Receive notification of the end of an element.
+    *
+    * <p>The SAX parser will invoke this method at the end of every
+    * element in the XML document; there will be a corresponding
+    * startElement() event for every endElement() event (even when the
+    * element is empty).</p>
+    *
+    * @param uri The URI of the asscioated namespace for this element
+	* @param localname The local part of the element name
+	* @param qname The QName of this element
+    * @exception SAXException Any SAX exception, possibly
+    *            wrapping another exception.
+    */
+    virtual void endElement
+	(
+		const XMLCh* const uri,
+		const XMLCh* const localname,
+		const XMLCh* const qname
+	) = 0;
+
+  /**
+    * Receive notification of ignorable whitespace in element content.
+    *
+    * <p>Validating Parsers must use this method to report each chunk
+    * of ignorable whitespace (see the W3C XML 1.0 recommendation,
+    * section 2.10): non-validating parsers may also use this method
+    * if they are capable of parsing and using content models.</p>
+    *
+    * <p>SAX parsers may return all contiguous whitespace in a single
+    * chunk, or they may split it into several chunks; however, all of
+    * the characters in any single event must come from the same
+    * external entity, so that the Locator provides useful
+    * information.</p>
+    *
+    * <p>The application must not attempt to read from the array
+    * outside of the specified range.</p>
+    *
+    * @param chars The characters from the XML document.
+    * @param length The number of characters to read from the array.
+    * @exception SAXException Any SAX exception, possibly
+    *            wrapping another exception.
+    * @see #characters
+    */
+    virtual void ignorableWhitespace
+    (
+        const   XMLCh* const    chars
+        , const unsigned int    length
+    ) = 0;
+
+  /**
+    * Receive notification of a processing instruction.
+    *
+    * <p>The Parser will invoke this method once for each processing
+    * instruction found: note that processing instructions may occur
+    * before or after the main document element.</p>
+    *
+    * <p>A SAX parser should never report an XML declaration (XML 1.0,
+    * section 2.8) or a text declaration (XML 1.0, section 4.3.1)
+    * using this method.</p>
+    *
+    * @param target The processing instruction target.
+    * @param data The processing instruction data, or null if
+    *        none was supplied.
+    * @exception SAXException Any SAX exception, possibly
+    *            wrapping another exception.
+    */
+    virtual void processingInstruction
+    (
+        const   XMLCh* const    target
+        , const XMLCh* const    data
+    ) = 0;
+
+  /**
+    * Receive an object for locating the origin of SAX document events.
+    *
+    * SAX parsers are strongly encouraged (though not absolutely
+    * required) to supply a locator: if it does so, it must supply
+    * the locator to the application by invoking this method before
+    * invoking any of the other methods in the DocumentHandler
+    * interface.
+    *
+    * The locator allows the application to determine the end
+    * position of any document-related event, even if the parser is
+    * not reporting an error.  Typically, the application will
+    * use this information for reporting its own errors (such as
+    * character content that does not match an application's
+    * business rules). The information returned by the locator
+    * is probably not sufficient for use with a search engine.
+    *
+    * Note that the locator will return correct information only
+    * during the invocation of the events in this interface. The
+    * application should not attempt to use it at any other time.
+    *
+    * @param locator An object that can return the location of
+    *                any SAX document event. The object is only
+    *                'on loan' to the client code and they are not
+    *                to attempt to delete or modify it in any way!
+    *
+    * @see Locator#Locator
+    */
+    virtual void setDocumentLocator(const Locator* const locator) = 0;
+
+  /**
+    * Receive notification of the beginning of a document.
+    *
+    * <p>The SAX parser will invoke this method only once, before any
+    * other methods in this interface or in DTDHandler (except for
+    * setDocumentLocator).</p>
+    *
+    * @exception SAXException Any SAX exception, possibly
+    *            wrapping another exception.
+    */
+    virtual void startDocument() = 0;
+
+  /**
+    * Receive notification of the beginning of an element.
+    *
+    * <p>The Parser will invoke this method at the beginning of every
+    * element in the XML document; there will be a corresponding
+    * endElement() event for every startElement() event (even when the
+    * element is empty). All of the element's content will be
+    * reported, in order, before the corresponding endElement()
+    * event.</p>
+    *
+    * <p>Note that the attribute list provided will
+    * contain only attributes with explicit values (specified or
+    * defaulted): #IMPLIED attributes will be omitted.</p>
+    *
+    * @param uri The URI of the asscioated namespace for this element
+	* @param localname The local part of the element name
+	* @param qname The QName of this element
+    * @param attrs The attributes attached to the element, if any.
+    * @exception SAXException Any SAX exception, possibly
+    *            wrapping another exception.
+    * @see #endElement
+    * @see Attributes#Attributes
+    */
+    virtual void startElement
+    (
+        const   XMLCh* const    uri,
+        const   XMLCh* const    localname,
+        const   XMLCh* const    qname,
+        const   Attributes&     attrs
+    ) = 0;
+
+  /**
+    * Receive notification of the start of an namespace prefix mapping.
+    *
+    * <p>By default, do nothing.  Application writers may override this
+    * method in a subclass to take specific actions at the start of
+    * each namespace prefix mapping.</p>
+    *
+    * @param prefix The namespace prefix used
+    * @param uri The namespace URI used.
+    * @exception SAXException Any SAX exception, possibly
+    *            wrapping another exception.
+    */
+	virtual void startPrefixMapping
+	(
+		const	XMLCh* const	prefix,
+		const	XMLCh* const	uri
+	) = 0 ;
+
+  /**
+    * Receive notification of the end of an namespace prefix mapping.
+    *
+    * <p>By default, do nothing.  Application writers may override this
+    * method in a subclass to take specific actions at the end of
+    * each namespace prefix mapping.</p>
+    *
+    * @param prefix The namespace prefix used
+    * @exception SAXException Any SAX exception, possibly
+    *            wrapping another exception.
+    */
+	virtual void endPrefixMapping
+	(
+		const	XMLCh* const	prefix
+	) = 0 ;
+
+  /**
+    * Receive notification of a skipped entity
+    *
+    * <p>The parser will invoke this method once for each entity
+	* skipped.  All processors may skip external entities,
+	* depending on the values of the features:<br>
+	* http://xml.org/sax/features/external-general-entities<br>
+	* http://xml.org/sax/features/external-parameter-entities</p>
+	*
+	* <p>Note: Xerces (specifically) never skips any entities, regardless
+	* of the above features.  This function is never called in the
+	* Xerces implementation of SAX2.</p>
+    *
+	* <p>Introduced with SAX2</p>
+	*
+    * @param name The name of the skipped entity.  If it is a parameter entity,
+	* the name will begin with %, and if it is the external DTD subset,
+	* it will be the string [dtd].
+    * @exception SAXException Any SAX exception, possibly
+    *            wrapping another exception.
+    */
+	virtual void skippedEntity
+	(
+		const	XMLCh* const	name
+	) = 0 ;
+
+    //@}
+private :
+    /* Unimplemented Constructors and operators */
+    /* Copy constructor */
+    ContentHandler(const ContentHandler&);
+    /** Assignment operator */
+    ContentHandler& operator=(const ContentHandler&);
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/XMLIBM1047Transcoder.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/XMLIBM1047Transcoder.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/XMLIBM1047Transcoder.hpp	(revision 2674)
@@ -0,0 +1,68 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef XMLIBM1047TRANSCODER_HPP
+#define XMLIBM1047TRANSCODER_HPP
+
+#include <xercesc/util/XercesDefs.hpp>
+#include <xercesc/util/XML256TableTranscoder.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+//
+//  This class provides an implementation of the XMLTranscoder interface
+//  for a simple 1047-US transcoder. The parser does some encodings
+//  intrinsically without depending upon external transcoding services.
+//  To make everything more orthagonal, we implement these internal
+//  transcoders using the same transcoder abstraction as the pluggable
+//  transcoding services do.
+//
+//
+class XMLUTIL_EXPORT XMLIBM1047Transcoder : public XML256TableTranscoder
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Public, static methods
+    // -----------------------------------------------------------------------
+    static XMLCh xlatThisOne(const XMLByte toXlat);
+
+
+    // -----------------------------------------------------------------------
+    //  Public constructors and destructor
+    // -----------------------------------------------------------------------
+    XMLIBM1047Transcoder
+    (
+        const   XMLCh* const    encodingName
+        , const unsigned int    blockSize
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    virtual ~XMLIBM1047Transcoder();
+
+
+private :
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    XMLIBM1047Transcoder();
+    XMLIBM1047Transcoder(const XMLIBM1047Transcoder&);
+    void operator=(const XMLIBM1047Transcoder&);
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/ParseException.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/ParseException.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/ParseException.hpp	(revision 2674)
@@ -0,0 +1,35 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: ParseException.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+#if !defined(PARSEEXCEPTION_HPP)
+#define PARSEEXCEPTION_HPP
+
+#include <xercesc/util/XercesDefs.hpp>
+#include <xercesc/util/XMLException.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+MakeXMLException(ParseException, XMLUTIL_EXPORT)
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/XML256TableTranscoder.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/XML256TableTranscoder.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/XML256TableTranscoder.hpp	(revision 2674)
@@ -0,0 +1,147 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: XML256TableTranscoder.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+#ifndef XML256TABLETRANSCODER_HPP
+#define XML256TABLETRANSCODER_HPP
+
+#include <xercesc/util/TransService.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+//
+//  This class implements the functionality of a common type of transcoder
+//  for an 8 bit, single byte encoding based on a set of 'to' and 'from'
+//  translation tables. Actual derived classes are trivial and just have to
+//  provide us with pointers to their tables and we do all the work.
+//
+class XMLUTIL_EXPORT XML256TableTranscoder : public XMLTranscoder
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Public constructors and destructor
+    // -----------------------------------------------------------------------
+    virtual ~XML256TableTranscoder();
+
+
+    // -----------------------------------------------------------------------
+    //  The virtual transcoding interface
+    // -----------------------------------------------------------------------
+    virtual unsigned int transcodeFrom
+    (
+        const   XMLByte* const          srcData
+        , const unsigned int            srcCount
+        ,       XMLCh* const            toFill
+        , const unsigned int            maxChars
+        ,       unsigned int&           bytesEaten
+        ,       unsigned char* const    charSizes
+    );
+
+    virtual unsigned int transcodeTo
+    (
+        const   XMLCh* const    srcData
+        , const unsigned int    srcCount
+        ,       XMLByte* const  toFill
+        , const unsigned int    maxBytes
+        ,       unsigned int&   charsEaten
+        , const UnRepOpts       options
+    );
+
+    virtual bool canTranscodeTo
+    (
+        const   unsigned int    toCheck
+    )   const;
+
+
+protected :
+    // -----------------------------------------------------------------------
+    //  Hidden constructors
+    // -----------------------------------------------------------------------
+    XML256TableTranscoder
+    (
+        const   XMLCh* const                        encodingName
+        , const unsigned int                        blockSize
+        , const XMLCh* const                        fromTable
+        , const XMLTransService::TransRec* const    toTable
+        , const unsigned int                        toTableSize
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+
+    // -----------------------------------------------------------------------
+    //  Protected helper methods
+    // -----------------------------------------------------------------------
+    XMLByte xlatOneTo
+    (
+        const   XMLCh       toXlat
+    )   const;
+
+
+private :
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    XML256TableTranscoder();
+    XML256TableTranscoder(const XML256TableTranscoder&);
+    XML256TableTranscoder& operator=(const XML256TableTranscoder&);
+
+
+    // -----------------------------------------------------------------------
+    //  Private data members
+    //
+    //  fFromTable
+    //      This is the 'from' table that we were given during construction.
+    //      It is a 256 entry table of XMLCh chars. Each entry is the
+    //      Unicode code point for the external encoding point of that value.
+    //      So fFromTable[N] is the Unicode translation of code point N of
+    //      the source encoding.
+    //
+    //      We don't own this table, we just refer to it. It is assumed that
+    //      the table is static, for performance reasons.
+    //
+    //  fToSize
+    //      The 'to' table is variable sized. This indicates how many records
+    //      are in it.
+    //
+    //  fToTable
+    //      This is a variable sized table of TransRec structures. It must
+    //      be sorted by the intCh field, i.e. the XMLCh field. It is searched
+    //      binarily to find the record for a particular Unicode char. Then
+    //      that record's extch field is the translation record.
+    //
+    //      We don't own this table, we just refer to it. It is assumed that
+    //      the table is static, for performance reasons.
+    //
+    //      NOTE: There may be dups of the extCh field, since there might be
+    //      multiple Unicode code points which map to the same external code
+    //      point. Normally this won't happen, since the parser assumes that
+    //      internalization is normalized, but we have to be prepared to do
+    //      the right thing if some client code gives us non-normalized data
+    //      itself.
+    // -----------------------------------------------------------------------
+    const XMLCh*                        fFromTable;
+    unsigned int                        fToSize;
+    const XMLTransService::TransRec*    fToTable;
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/TranscodingException.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/TranscodingException.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/TranscodingException.hpp	(revision 2674)
@@ -0,0 +1,34 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: TranscodingException.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(TRANSCODINGEXCEPTION_HPP)
+#define TRANSCODINGEXCEPTION_HPP
+
+#include <xercesc/util/XercesDefs.hpp>
+#include <xercesc/util/XMLException.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+MakeXMLException(TranscodingException, XMLUTIL_EXPORT)
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Mutexes.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Mutexes.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Mutexes.hpp	(revision 2674)
@@ -0,0 +1,106 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: Mutexes.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+#if !defined(MUTEXES_HPP)
+#define MUTEXES_HPP
+
+#include <xercesc/util/XMemory.hpp>
+#include <xercesc/util/PlatformUtils.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class XMLUTIL_EXPORT XMLMutex : public XMemory
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+    XMLMutex(MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+
+    ~XMLMutex();
+
+
+    // -----------------------------------------------------------------------
+    //  Lock control methods
+    // -----------------------------------------------------------------------
+    void lock();
+    void unlock();
+
+
+private :
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    XMLMutex(const XMLMutex&);
+    XMLMutex& operator=(const XMLMutex&);
+
+
+    // -----------------------------------------------------------------------
+    //  Private data members
+    //
+    //  fHandle
+    //      The raw mutex handle. Its just a void pointer so we do not
+    //      pass judgement on its value at all. We just pass it into the
+    //      platform utilities methods which knows what's really in it.
+    // -----------------------------------------------------------------------
+    void*   fHandle;
+
+
+    // -----------------------------------------------------------------------
+    //  Sun PlatformUtils needs acess to fHandle to initialize the
+    //  atomicOpsMutex at startup.
+    // -----------------------------------------------------------------------
+    friend class XMLPlatformUtils;
+};
+
+
+class XMLUTIL_EXPORT XMLMutexLock : public XMemory
+{
+    // -----------------------------------------------------------------------
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+public:
+    XMLMutexLock(XMLMutex* const toLock);
+    ~XMLMutexLock();
+
+
+private :
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    XMLMutexLock();
+    XMLMutexLock(const XMLMutexLock&);
+    XMLMutexLock& operator=(const XMLMutexLock&);
+
+
+    // -----------------------------------------------------------------------
+    //  Private data members
+    //
+    //  fToLock
+    //      The mutex object that we are locking
+    // -----------------------------------------------------------------------
+    XMLMutex*   fToLock;
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/RefHash2KeysTableOf.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/RefHash2KeysTableOf.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/RefHash2KeysTableOf.hpp	(revision 2674)
@@ -0,0 +1,263 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: RefHash2KeysTableOf.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+#if !defined(REFHASH2KEYSTABLEOF_HPP)
+#define REFHASH2KEYSTABLEOF_HPP
+
+
+#include <xercesc/util/HashBase.hpp>
+#include <xercesc/util/IllegalArgumentException.hpp>
+#include <xercesc/util/NoSuchElementException.hpp>
+#include <xercesc/util/RuntimeException.hpp>
+#include <xercesc/util/XMLString.hpp>
+#include <xercesc/util/HashXMLCh.hpp>
+#include <xercesc/util/PlatformUtils.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+// This hash table is similar to RefHashTableOf with an additional integer as key2
+
+//
+//  Forward declare the enumerator so he can be our friend. Can you say
+//  friend? Sure...
+//
+template <class TVal> class RefHash2KeysTableOfEnumerator;
+template <class TVal> struct RefHash2KeysTableBucketElem;
+
+
+//
+//  This should really be a nested class, but some of the compilers we
+//  have to support cannot deal with that!
+//
+template <class TVal> struct RefHash2KeysTableBucketElem
+{
+    RefHash2KeysTableBucketElem(void* key1, int key2, TVal* const value, RefHash2KeysTableBucketElem<TVal>* next)
+		: fData(value), fNext(next), fKey1(key1), fKey2(key2)
+        {
+        }
+    ~RefHash2KeysTableBucketElem() {};
+
+    TVal*                           fData;
+    RefHash2KeysTableBucketElem<TVal>*   fNext;
+	void*							fKey1;
+	int							fKey2;
+
+private:
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    RefHash2KeysTableBucketElem(const RefHash2KeysTableBucketElem<TVal>&);
+    RefHash2KeysTableBucketElem<TVal>& operator=(const RefHash2KeysTableBucketElem<TVal>&);
+};
+
+
+template <class TVal> class RefHash2KeysTableOf : public XMemory
+{
+public:
+    // -----------------------------------------------------------------------
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+	// backwards compatability - default hasher is HashXMLCh
+    RefHash2KeysTableOf
+    (
+        const unsigned int modulus
+		, MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+	// backwards compatability - default hasher is HashXMLCh
+    RefHash2KeysTableOf
+    (
+        const unsigned int modulus
+        , const bool adoptElems
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+	// if a hash function is passed in, it will be deleted when the hashtable is deleted.
+	// use a new instance of the hasher class for each hashtable, otherwise one hashtable
+	// may delete the hasher of a different hashtable if both use the same hasher.
+    RefHash2KeysTableOf
+    (
+        const unsigned int modulus
+        , const bool adoptElems
+        , HashBase* hashBase
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+    ~RefHash2KeysTableOf();
+
+
+    // -----------------------------------------------------------------------
+    //  Element management
+    // -----------------------------------------------------------------------
+    bool isEmpty() const;
+    bool containsKey(const void* const key1, const int key2) const;
+    void removeKey(const void* const key1, const int key2);
+    void removeKey(const void* const key1);
+    void removeAll();
+    void transferElement(const void* const key1, void* key2);
+
+    // -----------------------------------------------------------------------
+    //  Getters
+    // -----------------------------------------------------------------------
+    TVal* get(const void* const key1, const int key2);
+    const TVal* get(const void* const key1, const int key2) const;
+
+    MemoryManager* getMemoryManager() const;
+    unsigned int   getHashModulus()   const;
+
+    // -----------------------------------------------------------------------
+    //  Putters
+    // -----------------------------------------------------------------------
+	void put(void* key1, int key2, TVal* const valueToAdopt);
+
+private :
+    // -----------------------------------------------------------------------
+    //  Declare our friends
+    // -----------------------------------------------------------------------
+    friend class RefHash2KeysTableOfEnumerator<TVal>;
+
+    
+private:
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    RefHash2KeysTableOf(const RefHash2KeysTableOf<TVal>&);
+    RefHash2KeysTableOf<TVal>& operator=(const RefHash2KeysTableOf<TVal>&);
+
+    // -----------------------------------------------------------------------
+    //  Private methods
+    // -----------------------------------------------------------------------
+    RefHash2KeysTableBucketElem<TVal>* findBucketElem(const void* const key1, const int key2, unsigned int& hashVal);
+    const RefHash2KeysTableBucketElem<TVal>* findBucketElem(const void* const key1, const int key2, unsigned int& hashVal) const;
+    void initialize(const unsigned int modulus);
+    void rehash();
+
+
+    // -----------------------------------------------------------------------
+    //  Data members
+    //
+    //  fAdoptedElems
+    //      Indicates whether the values added are adopted or just referenced.
+    //      If adopted, then they are deleted when they are removed from the
+    //      hash table.
+    //
+    //  fBucketList
+    //      This is the array that contains the heads of all of the list
+    //      buckets, one for each possible hash value.
+    //
+    //  fHashModulus
+    //      The modulus used for this hash table, to hash the keys. This is
+    //      also the number of elements in the bucket list.
+    //
+    //  fCount
+    //      The number of elements currently in the map
+    //
+    //  fHash
+    //      The hasher for the key1 data type.
+    // -----------------------------------------------------------------------
+    MemoryManager*                      fMemoryManager;
+    bool                                fAdoptedElems;
+    RefHash2KeysTableBucketElem<TVal>** fBucketList;
+    unsigned int                        fHashModulus;
+    unsigned int                        fCount;
+    HashBase*							fHash;
+};
+
+
+
+//
+//  An enumerator for a value array. It derives from the basic enumerator
+//  class, so that value vectors can be generically enumerated.
+//
+template <class TVal> class RefHash2KeysTableOfEnumerator : public XMLEnumerator<TVal>, public XMemory
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+    RefHash2KeysTableOfEnumerator(RefHash2KeysTableOf<TVal>* const toEnum
+        , const bool adopt = false
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+    virtual ~RefHash2KeysTableOfEnumerator();
+
+
+    // -----------------------------------------------------------------------
+    //  Enum interface
+    // -----------------------------------------------------------------------
+    bool hasMoreElements() const;
+    TVal& nextElement();
+    void Reset();
+
+    // -----------------------------------------------------------------------
+    //  New interface 
+    // -----------------------------------------------------------------------
+    void nextElementKey(void*&, int&);
+    void setPrimaryKey(const void* key);
+
+private :
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    RefHash2KeysTableOfEnumerator(const RefHash2KeysTableOfEnumerator<TVal>&);
+    RefHash2KeysTableOfEnumerator<TVal>& operator=(const RefHash2KeysTableOfEnumerator<TVal>&);
+
+    // -----------------------------------------------------------------------
+    //  Private methods
+    // -----------------------------------------------------------------------
+    void findNext();
+
+
+    // -----------------------------------------------------------------------
+    //  Data Members
+    //
+    //  fAdopted
+    //      Indicates whether we have adopted the passed vector. If so then
+    //      we delete the vector when we are destroyed.
+    //
+    //  fCurElem
+    //      This is the current bucket bucket element that we are on.
+    //
+    //  fCurHash
+    //      The is the current hash buck that we are working on. Once we hit
+    //      the end of the bucket that fCurElem is in, then we have to start
+    //      working this one up to the next non-empty bucket.
+    //
+    //  fToEnum
+    //      The value array being enumerated.
+    //
+    //  fLockPrimaryKey
+    //      Indicates that we are requested to iterate over the secondary keys
+    //      associated with the given primary key
+    //
+    // -----------------------------------------------------------------------
+    bool                                    fAdopted;
+    RefHash2KeysTableBucketElem<TVal>*      fCurElem;
+    unsigned int                            fCurHash;
+    RefHash2KeysTableOf<TVal>*              fToEnum;
+    MemoryManager* const                    fMemoryManager;
+    const void*                             fLockPrimaryKey;
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#if !defined(XERCES_TMPLSINC)
+#include <xercesc/util/RefHash2KeysTableOf.c>
+#endif
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/XMLHolder.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/XMLHolder.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/XMLHolder.hpp	(revision 2674)
@@ -0,0 +1,57 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#if !defined(XMLHOLDER_HPP)
+#define XMLHOLDER_HPP
+
+#include <xercesc/util/XMemory.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+template<class Type>
+class XMLUTIL_EXPORT XMLHolder : public XMemory
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+    XMLHolder();
+
+    ~XMLHolder();
+
+    Type    fInstance;
+
+    static XMLHolder<Type>*
+    castTo(void* handle);
+
+private :
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    XMLHolder(const XMLHolder<Type>&);
+    XMLHolder<Type>& operator=(const XMLHolder<Type>&);
+
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#if !defined(XERCES_TMPLSINC)
+#include <xercesc/util/XMLHolder.c>
+#endif
+
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/XMLChar.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/XMLChar.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/XMLChar.hpp	(revision 2674)
@@ -0,0 +1,442 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: XMLChar.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(XMLCHAR_HPP)
+#define XMLCHAR_HPP
+
+#include <xercesc/util/XMLUniDefs.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+// ---------------------------------------------------------------------------
+//  This file defines Char and utility that conforms to XML 1.0 and XML 1.1
+// ---------------------------------------------------------------------------
+// Masks for the fgCharCharsTable1_0 array
+const XMLByte   gNCNameCharMask             = 0x1;
+const XMLByte   gFirstNameCharMask          = 0x2;
+const XMLByte   gNameCharMask               = 0x4;
+const XMLByte   gPlainContentCharMask       = 0x8;
+const XMLByte   gSpecialStartTagCharMask    = 0x10;
+const XMLByte   gControlCharMask            = 0x20;
+const XMLByte   gXMLCharMask                = 0x40;
+const XMLByte   gWhitespaceCharMask         = 0x80;
+
+// ---------------------------------------------------------------------------
+//  This class is for XML 1.0
+// ---------------------------------------------------------------------------
+class XMLUTIL_EXPORT XMLChar1_0
+{
+public:
+    // -----------------------------------------------------------------------
+    //  Public, static methods, check the string
+    // -----------------------------------------------------------------------
+    static bool isAllSpaces
+    (
+        const   XMLCh* const    toCheck
+        , const unsigned int    count
+    );
+
+    static bool containsWhiteSpace
+    (
+        const   XMLCh* const    toCheck
+        , const unsigned int    count
+    );
+
+    static bool isValidNmtoken
+    (
+        const   XMLCh*        const    toCheck
+      , const   unsigned int           count
+    );
+
+    static bool isValidName
+    (
+        const   XMLCh* const    toCheck
+        , const unsigned int    count
+    );
+
+    static bool isValidName
+    (
+        const   XMLCh* const    toCheck
+    );
+
+    static bool isValidNCName
+    (
+        const   XMLCh* const    toCheck
+        , const unsigned int    count
+    );
+
+    static bool isValidQName
+    (
+        const   XMLCh* const    toCheck
+        , const unsigned int    count
+    );
+
+    // -----------------------------------------------------------------------
+    //  Public, static methods, check the XMLCh
+    //  surrogate pair is assumed if second parameter is not null
+    // -----------------------------------------------------------------------
+    static bool isXMLLetter(const XMLCh toCheck, const XMLCh toCheck2 = 0);
+    static bool isFirstNameChar(const XMLCh toCheck, const XMLCh toCheck2 = 0);
+    static bool isNameChar(const XMLCh toCheck, const XMLCh toCheck2 = 0);
+    static bool isPlainContentChar(const XMLCh toCheck, const XMLCh toCheck2 = 0);
+    static bool isSpecialStartTagChar(const XMLCh toCheck, const XMLCh toCheck2 = 0);
+    static bool isXMLChar(const XMLCh toCheck, const XMLCh toCheck2 = 0);
+    static bool isWhitespace(const XMLCh toCheck);
+    static bool isWhitespace(const XMLCh toCheck, const XMLCh toCheck2);
+    static bool isControlChar(const XMLCh toCheck, const XMLCh toCheck2 = 0);
+
+    static bool isPublicIdChar(const XMLCh toCheck, const XMLCh toCheck2 = 0);
+    static bool isFirstNCNameChar(const XMLCh toCheck, const XMLCh toCheck2 = 0);
+    static bool isNCNameChar(const XMLCh toCheck, const XMLCh toCheck2 = 0);
+
+    // -----------------------------------------------------------------------
+    //  Special Non-conformant Public, static methods
+    // -----------------------------------------------------------------------
+    /**
+      * Return true if NEL (0x85) and LSEP (0x2028) to be treated as white space char.
+      */
+    static bool isNELRecognized();
+
+    /**
+      * Method to enable NEL (0x85) and LSEP (0x2028) to be treated as white space char.
+      */
+    static void enableNELWS();
+
+private:
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    XMLChar1_0();
+
+    // -----------------------------------------------------------------------
+    //  Static data members
+    //
+    //  fgCharCharsTable1_0
+    //      The character characteristics table. Bits in each byte, represent
+    //      the characteristics of each character. It is generated via some
+    //      code and then hard coded into the cpp file for speed.
+    //
+    //  fNEL
+    //      Flag to respresents whether NEL and LSEP newline recognition is enabled
+    //      or disabled
+    // -----------------------------------------------------------------------
+    static XMLByte  fgCharCharsTable1_0[0x10000];
+    static bool     enableNEL;
+
+    friend class XMLReader;
+};
+
+
+// ---------------------------------------------------------------------------
+//  XMLReader: Public, static methods
+// ---------------------------------------------------------------------------
+inline bool XMLChar1_0::isXMLLetter(const XMLCh toCheck, const XMLCh toCheck2)
+{
+    // An XML letter is a FirstNameChar minus ':' and '_'.
+    if (!toCheck2) {
+        return (((fgCharCharsTable1_0[toCheck] & gFirstNameCharMask) != 0)
+                && (toCheck != chColon) && (toCheck != chUnderscore));
+    }
+    return false;
+}
+
+inline bool XMLChar1_0::isFirstNameChar(const XMLCh toCheck, const XMLCh toCheck2)
+{
+    if (!toCheck2)
+        return ((fgCharCharsTable1_0[toCheck] & gFirstNameCharMask) != 0);
+    return false;
+}
+
+inline bool XMLChar1_0::isFirstNCNameChar(const XMLCh toCheck, const XMLCh toCheck2)
+{
+    if (!toCheck2) {
+        return (((fgCharCharsTable1_0[toCheck] & gFirstNameCharMask) != 0) && (toCheck != chColon));
+    }
+
+    return false;
+}
+
+inline bool XMLChar1_0::isNameChar(const XMLCh toCheck, const XMLCh toCheck2)
+{
+    if (!toCheck2)
+        return ((fgCharCharsTable1_0[toCheck] & gNameCharMask) != 0);
+    return false;
+}
+
+inline bool XMLChar1_0::isNCNameChar(const XMLCh toCheck, const XMLCh toCheck2)
+{
+    if (!toCheck2)
+        return ((fgCharCharsTable1_0[toCheck] & gNCNameCharMask) != 0);
+    return false;
+}
+
+inline bool XMLChar1_0::isPlainContentChar(const XMLCh toCheck, const XMLCh toCheck2)
+{
+    if (!toCheck2)
+        return ((fgCharCharsTable1_0[toCheck] & gPlainContentCharMask) != 0);
+    else {
+        if ((toCheck >= 0xD800) && (toCheck <= 0xDBFF))
+           if ((toCheck2 >= 0xDC00) && (toCheck2 <= 0xDFFF))
+               return true;
+    }
+    return false;
+}
+
+
+inline bool XMLChar1_0::isSpecialStartTagChar(const XMLCh toCheck, const XMLCh toCheck2)
+{
+    if (!toCheck2)
+        return ((fgCharCharsTable1_0[toCheck] & gSpecialStartTagCharMask) != 0);
+    return false;
+}
+
+inline bool XMLChar1_0::isXMLChar(const XMLCh toCheck, const XMLCh toCheck2)
+{
+    if (!toCheck2)
+        return ((fgCharCharsTable1_0[toCheck] & gXMLCharMask) != 0);
+    else {
+        if ((toCheck >= 0xD800) && (toCheck <= 0xDBFF))
+           if ((toCheck2 >= 0xDC00) && (toCheck2 <= 0xDFFF))
+               return true;
+    }
+    return false;
+}
+
+inline bool XMLChar1_0::isWhitespace(const XMLCh toCheck)
+{
+    return ((fgCharCharsTable1_0[toCheck] & gWhitespaceCharMask) != 0);
+}
+
+inline bool XMLChar1_0::isWhitespace(const XMLCh toCheck, const XMLCh toCheck2)
+{
+    if (!toCheck2)
+        return ((fgCharCharsTable1_0[toCheck] & gWhitespaceCharMask) != 0);
+    return false;
+}
+
+inline bool XMLChar1_0::isControlChar(const XMLCh toCheck, const XMLCh toCheck2)
+{
+    if (!toCheck2)
+        return ((fgCharCharsTable1_0[toCheck] & gControlCharMask) != 0);
+    return false;
+}
+
+inline bool XMLChar1_0::isNELRecognized() {
+
+    return enableNEL;
+}
+
+
+// ---------------------------------------------------------------------------
+//  This class is for XML 1.1
+// ---------------------------------------------------------------------------
+class XMLUTIL_EXPORT XMLChar1_1
+{
+public:
+    // -----------------------------------------------------------------------
+    //  Public, static methods, check the string
+    // -----------------------------------------------------------------------
+    static bool isAllSpaces
+    (
+        const   XMLCh* const    toCheck
+        , const unsigned int    count
+    );
+
+    static bool containsWhiteSpace
+    (
+        const   XMLCh* const    toCheck
+        , const unsigned int    count
+    );
+
+    static bool isValidNmtoken
+    (
+        const   XMLCh*        const    toCheck
+      , const   unsigned int           count
+    );
+
+    static bool isValidName
+    (
+        const   XMLCh* const    toCheck
+        , const unsigned int    count
+    );
+
+    static bool isValidName
+    (
+        const   XMLCh* const    toCheck
+    );
+
+    static bool isValidNCName
+    (
+        const   XMLCh* const    toCheck
+        , const unsigned int    count
+    );
+
+    static bool isValidQName
+    (
+        const   XMLCh* const    toCheck
+        , const unsigned int    count
+    );
+
+    // -----------------------------------------------------------------------
+    //  Public, static methods, check the XMLCh
+    // -----------------------------------------------------------------------
+    static bool isXMLLetter(const XMLCh toCheck, const XMLCh toCheck2 = 0);
+    static bool isFirstNameChar(const XMLCh toCheck, const XMLCh toCheck2 = 0);
+    static bool isNameChar(const XMLCh toCheck, const XMLCh toCheck2 = 0);
+    static bool isPlainContentChar(const XMLCh toCheck, const XMLCh toCheck2 = 0);
+    static bool isSpecialStartTagChar(const XMLCh toCheck, const XMLCh toCheck2 = 0);
+    static bool isXMLChar(const XMLCh toCheck, const XMLCh toCheck2 = 0);
+    static bool isWhitespace(const XMLCh toCheck, const XMLCh toCheck2 = 0);
+    static bool isControlChar(const XMLCh toCheck, const XMLCh toCheck2 = 0);
+
+    static bool isPublicIdChar(const XMLCh toCheck, const XMLCh toCheck2 = 0);
+    static bool isFirstNCNameChar(const XMLCh toCheck, const XMLCh toCheck2 = 0);
+    static bool isNCNameChar(const XMLCh toCheck, const XMLCh toCheck2 = 0);
+
+private:
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    XMLChar1_1();
+
+    // -----------------------------------------------------------------------
+    //  Static data members
+    //
+    //  fgCharCharsTable1_1
+    //      The character characteristics table. Bits in each byte, represent
+    //      the characteristics of each character. It is generated via some
+    //      code and then hard coded into the cpp file for speed.
+    //
+    // -----------------------------------------------------------------------
+    static XMLByte  fgCharCharsTable1_1[0x10000];
+
+    friend class XMLReader;
+};
+
+
+// ---------------------------------------------------------------------------
+//  XMLReader: Public, static methods
+// ---------------------------------------------------------------------------
+inline bool XMLChar1_1::isXMLLetter(const XMLCh toCheck, const XMLCh toCheck2)
+{
+    /** XML 1.1 does not define a letter, so we use the 1.0 definition */
+    return XMLChar1_0::isXMLLetter(toCheck, toCheck2);
+}
+
+inline bool XMLChar1_1::isFirstNameChar(const XMLCh toCheck, const XMLCh toCheck2)
+{
+    if (!toCheck2)
+        return ((fgCharCharsTable1_1[toCheck] & gFirstNameCharMask) != 0);
+    else {
+        if ((toCheck >= 0xD800) && (toCheck <= 0xDB7F))
+           if ((toCheck2 >= 0xDC00) && (toCheck2 <= 0xDFFF))
+               return true;
+    }
+    return false;
+}
+
+inline bool XMLChar1_1::isFirstNCNameChar(const XMLCh toCheck, const XMLCh toCheck2)
+{
+    if (!toCheck2) {
+        return (((fgCharCharsTable1_1[toCheck] & gFirstNameCharMask) != 0) && (toCheck != chColon));
+    }
+    else {
+        if ((toCheck >= 0xD800) && (toCheck <= 0xDB7F))
+           if ((toCheck2 >= 0xDC00) && (toCheck2 <= 0xDFFF))
+               return true;
+    }
+    return false;
+}
+
+inline bool XMLChar1_1::isNameChar(const XMLCh toCheck, const XMLCh toCheck2)
+{
+    if (!toCheck2)
+        return ((fgCharCharsTable1_1[toCheck] & gNameCharMask) != 0);
+    else {
+        if ((toCheck >= 0xD800) && (toCheck <= 0xDB7F))
+           if ((toCheck2 >= 0xDC00) && (toCheck2 <= 0xDFFF))
+               return true;
+    }
+    return false;
+}
+
+inline bool XMLChar1_1::isNCNameChar(const XMLCh toCheck, const XMLCh toCheck2)
+{
+    if (!toCheck2)
+        return ((fgCharCharsTable1_1[toCheck] & gNCNameCharMask) != 0);
+    else {
+        if ((toCheck >= 0xD800) && (toCheck <= 0xDB7F))
+           if ((toCheck2 >= 0xDC00) && (toCheck2 <= 0xDFFF))
+               return true;
+    }
+    return false;
+}
+
+inline bool XMLChar1_1::isPlainContentChar(const XMLCh toCheck, const XMLCh toCheck2)
+{
+    if (!toCheck2)
+        return ((fgCharCharsTable1_1[toCheck] & gPlainContentCharMask) != 0);
+    else {
+        if ((toCheck >= 0xD800) && (toCheck <= 0xDBFF))
+           if ((toCheck2 >= 0xDC00) && (toCheck2 <= 0xDFFF))
+               return true;
+    }
+    return false;
+}
+
+
+inline bool XMLChar1_1::isSpecialStartTagChar(const XMLCh toCheck, const XMLCh toCheck2)
+{
+    if (!toCheck2)
+        return ((fgCharCharsTable1_1[toCheck] & gSpecialStartTagCharMask) != 0);
+    return false;
+}
+
+inline bool XMLChar1_1::isXMLChar(const XMLCh toCheck, const XMLCh toCheck2)
+{
+    if (!toCheck2)
+        return ((fgCharCharsTable1_1[toCheck] & gXMLCharMask) != 0);
+    else {
+        if ((toCheck >= 0xD800) && (toCheck <= 0xDBFF))
+           if ((toCheck2 >= 0xDC00) && (toCheck2 <= 0xDFFF))
+               return true;
+    }
+    return false;
+}
+
+inline bool XMLChar1_1::isWhitespace(const XMLCh toCheck, const XMLCh toCheck2)
+{
+    if (!toCheck2)
+        return ((fgCharCharsTable1_1[toCheck] & gWhitespaceCharMask) != 0);
+    return false;
+}
+
+inline bool XMLChar1_1::isControlChar(const XMLCh toCheck, const XMLCh toCheck2)
+{
+    if (!toCheck2)
+        return ((fgCharCharsTable1_1[toCheck] & gControlCharMask) != 0);
+    return false;
+}
+
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/XMemory.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/XMemory.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/XMemory.hpp	(revision 2674)
@@ -0,0 +1,146 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: XMemory.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+#if !defined(XMEMORY_HPP)
+#define XMEMORY_HPP
+
+#include <xercesc/util/XercesDefs.hpp>
+#include <stdlib.h>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class MemoryManager;
+
+/**
+ *  This class makes it possible to override the C++ memory management by
+ *  adding new/delete operators to this base class.
+ *
+ *  This class is used in conjuction with the pluggable memory manager. It
+ *  allows applications to control Xerces memory management.
+ */
+
+class XMLUTIL_EXPORT XMemory
+{
+public :
+    // -----------------------------------------------------------------------
+    //  The C++ memory management
+    // -----------------------------------------------------------------------
+    /** @name The C++ memory management */
+    //@{
+
+    /**
+      * This method overrides operator new
+      *
+      * @param size The requested memory size
+      */
+    void* operator new(size_t size);
+
+#if defined(XML_VISUALCPP)
+    /**
+      * This method overrides the MFC debug version of the operator new
+      * 
+      * @param size   The requested memory size
+      * @param file   The file where the allocation was requested
+      * @param line   The line where the allocation was requested 
+      */ 
+    void* operator new(size_t size, const char* file, int line);
+    /**
+      * This method provides a matching delete for the MFC debug new
+      * 
+      * @param p      The pointer to the allocated memory
+      * @param file   The file where the allocation was requested
+      * @param line   The line where the allocation was requested 
+      */ 
+    void operator delete(void* p, const char* file, int line);
+#endif
+
+    /**
+      * This method defines a custom operator new, that will use the provided
+      * memory manager to perform the allocation
+      *
+      * @param size   The requested memory size
+      * @param memMgr An application's memory manager
+      */
+    void* operator new(size_t size, MemoryManager* memMgr);
+
+    /**
+      * This method overrides placement operator new
+      *
+      * @param size   The requested memory size
+      * @param ptr    The memory location where the object should be allocated
+      */
+    void* operator new(size_t size, void* ptr);
+
+    /**
+      * This method overrides operator delete
+      *
+      * @param p The pointer to the allocated memory
+      */
+    void operator delete(void* p);
+
+     //The Borland compiler is complaining about duplicate overloading of delete
+#if !defined(XML_BORLAND)
+    /**
+      * This method provides a matching delete for the custom operator new
+      *
+      * @param p      The pointer to the allocated memory
+      * @param memMgr An application's memory manager 
+      */
+    void operator delete(void* p, MemoryManager* memMgr);
+
+    /**
+      * This method provides a matching delete for the placement new
+      *
+      * @param p      The pointer to the allocated memory
+      * @param ptr    The memory location where the object had to be allocated
+      */
+    void operator delete(void* p, void* ptr);
+#endif
+
+    //@}
+
+protected :
+    // -----------------------------------------------------------------------
+    //  Hidden Constructors
+    // -----------------------------------------------------------------------
+    /** @name Constructor */
+    //@{
+
+    /**
+      * Protected default constructor
+      */
+    XMemory()
+    {
+    }
+    //@}
+
+#if defined(XML_BORLAND)
+    virtual ~XMemory()
+    {
+    }
+#endif
+
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/XMLBigInteger.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/XMLBigInteger.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/XMLBigInteger.hpp	(revision 2674)
@@ -0,0 +1,194 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: XMLBigInteger.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#ifndef XML_BIGINTEGER_HPP
+#define XML_BIGINTEGER_HPP
+
+#include <xercesc/util/XMemory.hpp>
+#include <xercesc/util/XMLString.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class XMLUTIL_EXPORT XMLBigInteger : public XMemory
+{
+public:
+
+    /**
+     * Constructs a newly allocated <code>XMLBigInteger</code> object that
+     * represents the value represented by the string. The string is
+     * converted to an int value as if by the <code>valueOf</code> method.
+     *
+     * @param      strValue   the <code>String</code> to be converted to an
+     *                       <code>XMLBigInteger</code>.
+     * @param manager    Pointer to the memory manager to be used to
+     *                   allocate objects.
+     * @exception  NumberFormatException  if the <code>String</code> does not
+     *               contain a parsable XMLBigInteger.
+     */
+
+    XMLBigInteger
+    (
+        const XMLCh* const strValue
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+    ~XMLBigInteger();
+
+    XMLBigInteger(const XMLBigInteger& toCopy);
+
+    static XMLCh* getCanonicalRepresentation
+                        (
+                          const XMLCh*         const rawData
+                        ,       MemoryManager* const memMgr = XMLPlatformUtils::fgMemoryManager
+                        ,       bool                 isNonPositiveInteger = false
+                        );
+
+    static void parseBigInteger(const XMLCh* const toConvert
+                              , XMLCh* const       retBuffer
+                              , int&   signValue
+                              , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+
+    static int  compareValues(const XMLBigInteger* const lValue
+                             ,const XMLBigInteger* const rValue
+                             , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+
+
+    static int  compareValues(const XMLCh*         const lString
+                            , const int&                 lSign
+                            , const XMLCh*         const rString
+                            , const int&                 rSign
+                            ,       MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+
+    void        multiply(const unsigned int byteToShift);
+
+    void        divide(const unsigned int byteToShift);
+
+    int         getTotalDigit() const;
+
+    /**
+     *
+     *  Deprecated: please use getRawData
+     *
+     *  Return a copy of the fMagnitue.
+     *  A leading sign is ALWAYS in place and the caller of this method
+     *  is responsible for the de-allocation of the memory.
+     */
+    inline XMLCh*      toString() const;
+    
+    /**
+     *  Return a copy of the fMagnitue.
+     *  This is similar to toString, except the internal buffer is returned directly
+     *  Caller is not required to delet the returned memory.
+     */
+    inline XMLCh*      getRawData() const;
+
+    /**
+     * Compares this object to the specified object.
+     * The result is <code>true</code> if and only if the argument is not
+     * <code>null</code> and is an <code>XMLBigInteger</code> object that contains
+     * the same <code>int</code> value as this object.
+     *
+     * @param   toCompare   the object to compare with.
+     * @return  <code>true</code> if the objects are the same;
+     *          <code>false</code> otherwise.
+     */
+    bool operator==(const XMLBigInteger& toCompare) const;
+
+    /**
+     * Returns the signum function of this number (i.e., -1, 0 or 1 as
+     * the value of this number is negative, zero or positive).
+     */
+    int getSign() const;
+
+    int intValue() const;
+
+private:
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------    
+    XMLBigInteger& operator=(const XMLBigInteger&);
+
+
+    void setSign(int);
+
+    /*
+     * The number is internally stored in "minimal" sign-fMagnitude format
+     * (i.e., no BigIntegers have a leading zero byte in their magnitudes).
+     * Zero is represented with a signum of 0 (and a zero-length fMagnitude).
+     * Thus, there is exactly one representation for each value.
+     */
+    // -----------------------------------------------------------------------
+    //  Private data members
+    //
+    //  fSign
+    //     to represent the sign of the number.
+    //
+    //  fMagnitude
+    //     the buffer holding the number.
+    //
+    //  fRawData
+    //     to preserve the original string used to construct this object,
+    //     needed for pattern matching.
+    //
+    // -----------------------------------------------------------------------
+
+    int         fSign;
+    XMLCh*      fMagnitude;  //null terminated
+    XMLCh*      fRawData;
+    MemoryManager* fMemoryManager;
+};
+
+inline int XMLBigInteger::getSign() const
+{    
+    return fSign;
+}
+
+inline int XMLBigInteger::getTotalDigit() const
+{
+    return ((getSign() ==0) ? 0 : XMLString::stringLen(fMagnitude));
+}
+
+inline bool XMLBigInteger::operator==(const XMLBigInteger& toCompare) const
+{
+    return ( compareValues(this, &toCompare, fMemoryManager) ==0 ? true : false);
+}
+
+inline void XMLBigInteger::setSign(int newSign)
+{
+    fSign = newSign;
+}
+
+inline XMLCh*  XMLBigInteger::getRawData() const
+{
+    return fRawData;
+}
+
+//
+// The caller needs to de-allocate the memory allocated by this function
+//
+inline XMLCh*  XMLBigInteger::toString() const
+{
+    // Return data using global operator new
+    return XMLString::replicate(fRawData, fMemoryManager);
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/SynchronizedStringPool.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/SynchronizedStringPool.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/SynchronizedStringPool.hpp	(revision 2674)
@@ -0,0 +1,86 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: SynchronizedStringPool.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(SYNCHRONIZEDSTRINGPOOL_HPP)
+#define SYNCHRONIZEDSTRINGPOOL_HPP
+
+#include <xercesc/framework/MemoryManager.hpp>
+#include <xercesc/util/StringPool.hpp>
+#include <xercesc/util/Mutexes.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+//
+//  This class provides a synchronized string pool implementation.
+//  This will necessarily be slower than the regular StringPool, so it
+//  should only be used when updates need to be made in a thread-safe
+//  way.  Updates will be made on datastructures local to this object;
+//  all queries that don't involve mutation will first be directed at
+//  the StringPool implementation with which this object is
+//  constructed.
+class XMLUTIL_EXPORT XMLSynchronizedStringPool : public XMLStringPool
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+    XMLSynchronizedStringPool
+    (
+        const XMLStringPool *  constPool
+        , const unsigned int   modulus = 109
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+    virtual ~XMLSynchronizedStringPool();
+
+
+    // -----------------------------------------------------------------------
+    //  Pool management methods
+    // -----------------------------------------------------------------------
+    virtual unsigned int addOrFind(const XMLCh* const newString);
+    virtual bool exists(const XMLCh* const newString) const;
+    virtual bool exists(const unsigned int id) const;
+    virtual void flushAll();
+    virtual unsigned int getId(const XMLCh* const toFind) const;
+    virtual const XMLCh* getValueForId(const unsigned int id) const;
+    virtual unsigned int getStringCount() const;
+
+
+private :
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    XMLSynchronizedStringPool(const XMLSynchronizedStringPool&);
+    XMLSynchronizedStringPool& operator=(const XMLSynchronizedStringPool&);
+
+
+    // -----------------------------------------------------------------------
+    // private data members
+    //  fConstPool
+    //      the pool whose immutability we're protecting
+    // fMutex
+    //      mutex to permit synchronous updates of our StringPool
+    const XMLStringPool* fConstPool;
+    XMLMutex             fMutex;
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/StringPool.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/StringPool.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/StringPool.hpp	(revision 2674)
@@ -0,0 +1,179 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: StringPool.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(STRINGPOOL_HPP)
+#define STRINGPOOL_HPP
+
+#include <xercesc/util/RefHashTableOf.hpp>
+
+#include <xercesc/internal/XSerializable.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+//
+//  This class implements a string pool, in which strings can be added and
+//  given a unique id by which they can be refered. It has to provide fast
+//  access both mapping from a string to its id and mapping from an id to
+//  its string. This requires that it provide two separate data structures.
+//  The map one is a hash table for quick storage and look up by name. The
+//  other is an array ordered by unique id which maps to the element in the
+//  hash table.
+//
+//  This works because strings cannot be removed from the pool once added,
+//  other than flushing it completely, and because ids are assigned
+//  sequentially from 1.
+//
+class XMLUTIL_EXPORT XMLStringPool : public XSerializable, public XMemory
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+    XMLStringPool
+    (
+          const unsigned int   modulus = 109
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+    virtual ~XMLStringPool();
+
+
+    // -----------------------------------------------------------------------
+    //  Pool management methods
+    // -----------------------------------------------------------------------
+    virtual unsigned int addOrFind(const XMLCh* const newString);
+    virtual bool exists(const XMLCh* const newString) const;
+    virtual bool exists(const unsigned int id) const;
+    virtual void flushAll();
+    virtual unsigned int getId(const XMLCh* const toFind) const;
+    virtual const XMLCh* getValueForId(const unsigned int id) const;
+    virtual unsigned int getStringCount() const;
+
+    /***
+     * Support for Serialization/De-serialization
+     ***/
+    DECL_XSERIALIZABLE(XMLStringPool)
+
+    XMLStringPool(MemoryManager* const manager);
+
+private :
+    // -----------------------------------------------------------------------
+    //  Private data types
+    // -----------------------------------------------------------------------
+    struct PoolElem
+    {
+        unsigned int  fId;
+        XMLCh*        fString;
+    };
+
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    XMLStringPool(const XMLStringPool&);
+    XMLStringPool& operator=(const XMLStringPool&);
+
+
+    // -----------------------------------------------------------------------
+    //  Private helper methods
+    // -----------------------------------------------------------------------
+    unsigned int addNewEntry(const XMLCh* const newString);
+
+
+    // -----------------------------------------------------------------------
+    //  Private data members
+    //
+    //  fIdMap
+    //      This is an array of pointers to the pool elements. It is ordered
+    //      by unique id, so using an id to index it gives instant access to
+    //      the string of that id. This is grown as required.
+    //
+    //  fHashTable
+    //      This is the hash table used to store and quickly access the
+    //      strings.
+    //
+    //  fMapCapacity
+    //      The current capacity of the id map. When the current id hits this
+    //      value the map must must be expanded.
+    //
+    // -----------------------------------------------------------------------
+    MemoryManager*              fMemoryManager;
+    PoolElem**                  fIdMap;
+    RefHashTableOf<PoolElem>*   fHashTable;
+    unsigned int                fMapCapacity;
+
+protected:
+    // protected data members
+    //  fCurId
+    //      This is the counter used to assign unique ids. It is just bumped
+    //      up one for each new string added.
+    unsigned int                fCurId;
+};
+
+
+// Provid inline versions of some of the simple functions to improve performance.
+inline unsigned int XMLStringPool::addOrFind(const XMLCh* const newString)
+{
+    PoolElem* elemToFind = fHashTable->get(newString);
+    if (elemToFind)
+        return elemToFind->fId;
+
+    return addNewEntry(newString);
+}
+
+inline unsigned int XMLStringPool::getId(const XMLCh* const toFind) const
+{
+    PoolElem* elemToFind = fHashTable->get(toFind);
+    if (elemToFind)
+        return elemToFind->fId;
+
+    // Not found, so return zero, which is never a legal id
+    return 0;
+}
+
+inline bool XMLStringPool::exists(const XMLCh* const newString) const
+{
+    return fHashTable->containsKey(newString);
+}
+
+inline bool XMLStringPool::exists(const unsigned int id) const
+{
+    if (!id || (id >= fCurId))
+        return false;
+
+    return true;
+}
+
+inline const XMLCh* XMLStringPool::getValueForId(const unsigned int id) const
+{
+    if (!id || (id >= fCurId))
+        ThrowXMLwithMemMgr(IllegalArgumentException, XMLExcepts::StrPool_IllegalId, fMemoryManager);
+
+    // Just index the id map and return that element's string
+    return fIdMap[id]->fString;
+}
+
+inline unsigned int XMLStringPool::getStringCount() const
+{
+    return fCurId-1;
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/FlagJanitor.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/FlagJanitor.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/FlagJanitor.hpp	(revision 2674)
@@ -0,0 +1,74 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: FlagJanitor.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+#if !defined(FLAGJANITOR_HPP)
+#define FLAGJANITOR_HPP
+
+#include <xercesc/util/XercesDefs.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+template <class T> class FlagJanitor
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+    FlagJanitor(T* const valPtr, const T newVal);
+    ~FlagJanitor();
+
+
+    // -----------------------------------------------------------------------
+    //  Value management methods
+    // -----------------------------------------------------------------------
+    void release();
+
+
+private :
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    FlagJanitor();
+    FlagJanitor(const FlagJanitor<T>&);
+    FlagJanitor<T>& operator=(const FlagJanitor<T>&);
+
+
+    // -----------------------------------------------------------------------
+    //  Private data members
+    //
+    //  fOldVal
+    //      The old value that was in the flag when we were constructed.
+    //
+    //  fValPtr
+    //      A pointer to the flag that we are to restore the value of
+    // -----------------------------------------------------------------------
+    T   fOldVal;
+    T*  fValPtr;
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#if !defined(XERCES_TMPLSINC)
+#include <xercesc/util/FlagJanitor.c>
+#endif
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/BitOps.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/BitOps.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/BitOps.hpp	(revision 2674)
@@ -0,0 +1,67 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: BitOps.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(BITOPS_HPP)
+#define BITOPS_HPP
+
+#include <xercesc/util/XercesDefs.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class XMLUTIL_EXPORT BitOps
+{
+public:
+    // -----------------------------------------------------------------------
+    //  Public static methods
+    // -----------------------------------------------------------------------
+    static inline XMLCh swapBytes(const XMLUInt16 toSwap)
+    {
+        //The mask is required to overcome a compiler error on solaris
+        return XMLCh(((toSwap >> 8) | (toSwap << 8)) & 0xFFFF);
+    }
+
+    static inline unsigned int swapBytes(const XMLUInt32 toSwap)
+    {
+        return
+        (
+            (toSwap >> 24)
+            | (toSwap << 24)
+            | ((toSwap & 0xFF00) << 8)
+            | ((toSwap & 0xFF0000) >> 8)
+        );
+    }
+
+
+
+protected :
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators.  (These ought to be private,
+    //                                  but that produces spurious compiler warnings
+    //                                  on some platforms.)
+    // -----------------------------------------------------------------------
+    BitOps();
+    BitOps(const BitOps&);
+    BitOps& operator=(const BitOps&);
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/RefArrayOf.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/RefArrayOf.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/RefArrayOf.hpp	(revision 2674)
@@ -0,0 +1,151 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: RefArrayOf.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+#if !defined(REFARRAY_HPP)
+#define REFARRAY_HPP
+
+#include <xercesc/util/PlatformUtils.hpp>
+#include <xercesc/util/ArrayIndexOutOfBoundsException.hpp>
+#include <xercesc/util/IllegalArgumentException.hpp>
+#include <xercesc/util/XMLEnumerator.hpp>
+#include <xercesc/framework/MemoryManager.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+template <class TElem> class RefArrayOf : public XMemory
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Contructors and Destructor
+    // -----------------------------------------------------------------------
+    RefArrayOf
+    (
+          const unsigned int size
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+	RefArrayOf
+    (
+          TElem* values[]
+        , const unsigned int size
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+	RefArrayOf(const RefArrayOf<TElem>& source);
+	~RefArrayOf();
+
+
+    // -----------------------------------------------------------------------
+    //  Public operators
+    // -----------------------------------------------------------------------
+	TElem*& operator[](const unsigned int index);
+	const TElem* operator[](const unsigned int index) const;
+	RefArrayOf<TElem>& operator=(const RefArrayOf<TElem>& toAssign);
+	bool operator==(const RefArrayOf<TElem>& toCompare) const;
+	bool operator!=(const RefArrayOf<TElem>& toCompare) const;
+
+
+    // -----------------------------------------------------------------------
+    //  Copy operations
+    // -----------------------------------------------------------------------
+    unsigned int copyFrom(const RefArrayOf<TElem>& srcArray);
+
+
+    // -----------------------------------------------------------------------
+    //  Getter methods
+    // -----------------------------------------------------------------------
+	unsigned int length() const;
+	TElem** rawData() const;
+
+
+    // -----------------------------------------------------------------------
+    //  Element management methods
+    // -----------------------------------------------------------------------
+    void deleteAt(const unsigned int index);
+    void deleteAllElements();
+    void resize(const unsigned int newSize);
+
+
+private :
+    // -----------------------------------------------------------------------
+    //  Data members
+    // -----------------------------------------------------------------------
+	unsigned int    fSize;
+	TElem**         fArray;
+    MemoryManager*  fMemoryManager;
+};
+
+
+//
+//  An enumerator for a reference array. It derives from the basic enumerator
+//  class, so that value vectors can be generically enumerated.
+//
+template <class TElem> class RefArrayEnumerator : public XMLEnumerator<TElem>, public XMemory
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+    RefArrayEnumerator
+    (
+                RefArrayOf<TElem>* const    toEnum
+        , const bool                        adopt = false
+    );
+    virtual ~RefArrayEnumerator();
+
+
+    // -----------------------------------------------------------------------
+    //  Enum interface
+    // -----------------------------------------------------------------------
+    bool hasMoreElements() const;
+    TElem& nextElement();
+    void Reset();
+
+
+private :
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    RefArrayEnumerator(const RefArrayEnumerator<TElem>&);
+    RefArrayEnumerator<TElem>& operator=(const RefArrayEnumerator<TElem>&);
+
+    // -----------------------------------------------------------------------
+    //  Data Members
+    //
+    //  fAdopted
+    //      Indicates whether we have adopted the passed array. If so then
+    //      we delete it when we are destroyed.
+    //
+    //  fCurIndex
+    //      This is the current index into the array.
+    //
+    //  fToEnum
+    //      The reference array being enumerated.
+    // -----------------------------------------------------------------------
+    bool                fAdopted;
+    unsigned int        fCurIndex;
+    RefArrayOf<TElem>*  fToEnum;
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#if !defined(XERCES_TMPLSINC)
+#include <xercesc/util/RefArrayOf.c>
+#endif
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/XMLBigDecimal.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/XMLBigDecimal.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/XMLBigDecimal.hpp	(revision 2674)
@@ -0,0 +1,222 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: XMLBigDecimal.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#ifndef XML_BIGDECIMAL_HPP
+#define XML_BIGDECIMAL_HPP
+
+#include <xercesc/util/XMLNumber.hpp>
+#include <xercesc/util/XMLString.hpp>
+#include <xercesc/util/PlatformUtils.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class XMLUTIL_EXPORT XMLBigDecimal : public XMLNumber
+{
+public:
+
+    /**
+     * Constructs a newly allocated <code>XMLBigDecimal</code> object that
+     * represents the value represented by the string.
+     *
+     * @param  strValue the <code>String</code> to be converted to an
+     *                  <code>XMLBigDecimal</code>.
+     * @param  manager  Pointer to the memory manager to be used to
+     *                  allocate objects.
+     * @exception  NumberFormatException  if the <code>String</code> does not
+     *               contain a parsable XMLBigDecimal.
+     */
+
+    XMLBigDecimal
+    (
+        const XMLCh* const strValue
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    ~XMLBigDecimal();
+
+    static int            compareValues(const XMLBigDecimal* const lValue
+                                      , const XMLBigDecimal* const rValue
+                                      , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+
+    static XMLCh* getCanonicalRepresentation
+                  (
+                   const XMLCh*         const rawData
+                 ,       MemoryManager* const memMgr = XMLPlatformUtils::fgMemoryManager
+                  );
+
+    static void  parseDecimal
+                ( 
+                   const XMLCh* const toParse
+                ,        XMLCh* const retBuffer
+                ,        int&         sign
+                ,        int&         totalDigits
+                ,        int&         fractDigits
+                ,        MemoryManager* const manager
+                );
+
+    static void  parseDecimal
+                ( 
+                   const XMLCh*         const toParse
+                ,        MemoryManager* const manager
+                );
+
+    /**
+     *
+     *  Deprecated: please use getRawData
+     *
+     */
+    virtual XMLCh*        toString() const;
+    
+    virtual XMLCh*        getRawData() const;
+
+    virtual const XMLCh*  getFormattedString() const;
+
+    virtual int           getSign() const;
+
+    const XMLCh*          getValue() const;
+
+    unsigned int          getScale() const;
+
+    unsigned int          getTotalDigit() const;
+
+    inline XMLCh*         getIntVal() const;
+
+    /**
+     * Compares this object to the specified object.
+     *
+     * @param   other   the object to compare with.
+     * @return  <code>-1</code> value is less than other's
+     *          <code>0</code>  value equals to other's
+     *          <code>+1</code> value is greater than other's
+     */
+     int toCompare(const XMLBigDecimal& other) const;
+
+    /*
+     * Sets the value to be converted
+     *
+     * @param   strValue the value to convert
+     */
+    void setDecimalValue(const XMLCh* const strValue);
+
+    MemoryManager* getMemoryManager() const;
+
+    /***
+     * Support for Serialization/De-serialization
+     ***/
+    DECL_XSERIALIZABLE(XMLBigDecimal)
+
+    XMLBigDecimal(MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+
+private:
+
+    void  cleanUp();
+    
+    // -----------------------------------------------------------------------
+    //  Unimplemented contstructors and operators
+    // -----------------------------------------------------------------------       
+    XMLBigDecimal(const XMLBigDecimal& other);
+    XMLBigDecimal& operator=(const XMLBigDecimal& other);        
+    
+    // -----------------------------------------------------------------------
+    //  Private data members
+    //
+    //  fSign
+    //     sign
+    //
+    //  fTotalDigits
+    //     the total number of didits 
+    //
+    //  fScale
+    //     the number of digits to the right of the decimal point
+    //
+    //  fIntVal
+    //     The value of this BigDecimal, w/o
+    //         leading whitespace, leading zero
+    //         decimal point
+    //         trailing zero, trailing whitespace
+    //
+    //  fRawData
+    //     to preserve the original string used to construct this object,
+    //     needed for pattern matching.
+    //
+    // -----------------------------------------------------------------------
+    int            fSign;
+    unsigned int   fTotalDigits;
+    unsigned int   fScale;
+    unsigned int   fRawDataLen;
+    XMLCh*         fRawData;
+    XMLCh*         fIntVal;
+    MemoryManager* fMemoryManager;
+
+};
+
+inline int XMLBigDecimal::getSign() const
+{
+    return fSign;
+}
+
+inline const XMLCh* XMLBigDecimal::getValue() const
+{
+    return fIntVal;
+}
+
+inline unsigned int XMLBigDecimal::getScale() const
+{
+    return fScale;
+}
+
+inline unsigned int XMLBigDecimal::getTotalDigit() const
+{
+    return fTotalDigits;
+}
+
+inline XMLCh*  XMLBigDecimal::getRawData() const
+{
+    return fRawData;
+}
+
+inline const XMLCh*  XMLBigDecimal::getFormattedString() const
+{
+    return fRawData;
+}
+
+inline MemoryManager* XMLBigDecimal::getMemoryManager() const
+{
+    return fMemoryManager;
+}
+
+inline XMLCh*  XMLBigDecimal::getIntVal() const
+{
+    return fIntVal;
+}
+
+//
+// The caller needs to de-allocate the memory allocated by this function
+//
+inline XMLCh*  XMLBigDecimal::toString() const
+{
+    // Return data using global operator new
+    return XMLString::replicate(fRawData);
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/XMLExceptMsgs.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/XMLExceptMsgs.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/XMLExceptMsgs.hpp	(revision 2674)
@@ -0,0 +1,434 @@
+// This file is generated, don't edit it!!
+
+#if !defined(ERRHEADER_XMLExcepts)
+#define ERRHEADER_XMLExcepts
+
+#include <xercesc/util/XercesDefs.hpp>
+#include <xercesc/dom/DOMError.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class XMLExcepts
+{
+public :
+    enum Codes
+    {
+        NoError                            = 0
+      , W_LowBounds                        = 1
+      , Scan_CouldNotOpenSource_Warning    = 2
+      , GC_ExistingGrammar                 = 3
+      , W_HighBounds                       = 4
+      , F_LowBounds                        = 5
+      , Array_BadIndex                     = 6
+      , Array_BadNewSize                   = 7
+      , AttrList_BadIndex                  = 8
+      , AttDef_BadAttType                  = 9
+      , AttDef_BadDefAttType               = 10
+      , Bitset_BadIndex                    = 11
+      , Bitset_NotEqualSize                = 12
+      , BufMgr_NoMoreBuffers               = 13
+      , BufMgr_BufferNotInPool             = 14
+      , CPtr_PointerIsZero                 = 15
+      , CM_BinOpHadUnaryType               = 16
+      , CM_MustBeMixedOrChildren           = 17
+      , CM_NoPCDATAHere                    = 18
+      , CM_NotValidForSpecType             = 19
+      , CM_UnaryOpHadBinType               = 20
+      , CM_UnknownCMType                   = 21
+      , CM_UnknownCMSpecType               = 22
+      , CM_NoParentCSN                     = 23
+      , CM_NotValidSpecTypeForNode         = 24
+      , DTD_UnknownCreateReason            = 25
+      , ElemStack_EmptyStack               = 26
+      , ElemStack_BadIndex                 = 27
+      , ElemStack_StackUnderflow           = 28
+      , ElemStack_NoParentPushed           = 29
+      , Enum_NoMoreElements                = 30
+      , File_CouldNotOpenFile              = 31
+      , File_CouldNotGetCurPos             = 32
+      , File_CouldNotCloseFile             = 33
+      , File_CouldNotSeekToEnd             = 34
+      , File_CouldNotSeekToPos             = 35
+      , File_CouldNotDupHandle             = 36
+      , File_CouldNotReadFromFile          = 37
+      , File_CouldNotWriteToFile           = 38
+      , File_CouldNotResetFile             = 39
+      , File_CouldNotGetSize               = 40
+      , File_CouldNotGetBasePathName       = 41
+      , File_BasePathUnderflow             = 42
+      , Gen_ParseInProgress                = 43
+      , Gen_NoDTDValidator                 = 44
+      , Gen_CouldNotOpenDTD                = 45
+      , Gen_CouldNotOpenExtEntity          = 46
+      , Gen_UnexpectedEOF                  = 47
+      , HshTbl_ZeroModulus                 = 48
+      , HshTbl_BadHashFromKey              = 49
+      , HshTbl_NoSuchKeyExists             = 50
+      , Mutex_CouldNotCreate               = 51
+      , Mutex_CouldNotClose                = 52
+      , Mutex_CouldNotLock                 = 53
+      , Mutex_CouldNotUnlock               = 54
+      , Mutex_CouldNotDestroy              = 55
+      , NetAcc_InternalError               = 56
+      , NetAcc_LengthError                 = 57
+      , NetAcc_InitFailed                  = 58
+      , NetAcc_TargetResolution            = 59
+      , NetAcc_CreateSocket                = 60
+      , NetAcc_ConnSocket                  = 61
+      , NetAcc_WriteSocket                 = 62
+      , NetAcc_ReadSocket                  = 63
+      , NetAcc_UnsupportedMethod           = 64
+      , Pool_ElemAlreadyExists             = 65
+      , Pool_BadHashFromKey                = 66
+      , Pool_InvalidId                     = 67
+      , Pool_ZeroModulus                   = 68
+      , RdrMgr_ReaderIdNotFound            = 69
+      , Reader_BadAutoEncoding             = 70
+      , Reader_CouldNotDecodeFirstLine     = 71
+      , Reader_NelLsepinDecl               = 72
+      , Reader_EOIInMultiSeq               = 73
+      , Reader_SrcOfsNotSupported          = 74
+      , Reader_EncodingStrRequired         = 75
+      , Scan_CouldNotOpenSource            = 76
+      , Scan_UnbalancedStartEnd            = 77
+      , Scan_BadPScanToken                 = 78
+      , Stack_BadIndex                     = 79
+      , Stack_EmptyStack                   = 80
+      , Str_ZeroSizedTargetBuf             = 81
+      , Str_UnknownRadix                   = 82
+      , Str_TargetBufTooSmall              = 83
+      , Str_StartIndexPastEnd              = 84
+      , Str_ConvertOverflow                = 85
+      , Strm_StdErrWriteFailure            = 86
+      , Strm_StdOutWriteFailure            = 87
+      , Strm_ConWriteFailure               = 88
+      , StrPool_IllegalId                  = 89
+      , Trans_CouldNotCreateDefCvtr        = 90
+      , Trans_InvalidSizeReq               = 91
+      , Trans_Unrepresentable              = 92
+      , Trans_NotValidForEncoding          = 93
+      , Trans_BadBlockSize                 = 94
+      , Trans_BadSrcSeq                    = 95
+      , Trans_BadSrcCP                     = 96
+      , Trans_BadTrailingSurrogate         = 97
+      , Trans_CantCreateCvtrFor            = 98
+      , URL_MalformedURL                   = 99
+      , URL_UnsupportedProto               = 100
+      , URL_UnsupportedProto1              = 101
+      , URL_OnlyLocalHost                  = 102
+      , URL_NoProtocolPresent              = 103
+      , URL_ExpectingTwoSlashes            = 104
+      , URL_IncorrectEscapedCharRef        = 105
+      , URL_UnterminatedHostComponent      = 106
+      , URL_RelativeBaseURL                = 107
+      , URL_BaseUnderflow                  = 108
+      , URL_BadPortField                   = 109
+      , UTF8_FormatError                   = 110
+      , UTF8_Invalid_2BytesSeq             = 111
+      , UTF8_Invalid_3BytesSeq             = 112
+      , UTF8_Irregular_3BytesSeq           = 113
+      , UTF8_Invalid_4BytesSeq             = 114
+      , UTF8_Exceede_BytesLimit            = 115
+      , Vector_BadIndex                    = 116
+      , Val_InvalidElemId                  = 117
+      , Val_CantHaveIntSS                  = 118
+      , XMLRec_UnknownEncoding             = 119
+      , Parser_Parse1                      = 120
+      , Parser_Parse2                      = 121
+      , Parser_Next1                       = 122
+      , Parser_Next2                       = 123
+      , Parser_Next3                       = 124
+      , Parser_Next4                       = 125
+      , Parser_Factor1                     = 126
+      , Parser_Factor2                     = 127
+      , Parser_Factor3                     = 128
+      , Parser_Factor4                     = 129
+      , Parser_Factor5                     = 130
+      , Parser_Factor6                     = 131
+      , Parser_Atom1                       = 132
+      , Parser_Atom2                       = 133
+      , Parser_Atom3                       = 134
+      , Parser_Atom4                       = 135
+      , Parser_Atom5                       = 136
+      , Parser_CC1                         = 137
+      , Parser_CC2                         = 138
+      , Parser_CC3                         = 139
+      , Parser_CC4                         = 140
+      , Parser_CC5                         = 141
+      , Parser_CC6                         = 142
+      , Parser_Ope1                        = 143
+      , Parser_Ope2                        = 144
+      , Parser_Ope3                        = 145
+      , Parser_Descape1                    = 146
+      , Parser_Descape2                    = 147
+      , Parser_Descape3                    = 148
+      , Parser_Descape4                    = 149
+      , Parser_Descape5                    = 150
+      , Parser_Process1                    = 151
+      , Parser_Process2                    = 152
+      , Parser_Quantifier1                 = 153
+      , Parser_Quantifier2                 = 154
+      , Parser_Quantifier3                 = 155
+      , Parser_Quantifier4                 = 156
+      , Parser_Quantifier5                 = 157
+      , Gen_NoSchemaValidator              = 158
+      , XUTIL_UnCopyableNodeType           = 159
+      , SubGrpComparator_NGR               = 160
+      , FACET_Invalid_Len                  = 161
+      , FACET_Invalid_maxLen               = 162
+      , FACET_Invalid_minLen               = 163
+      , FACET_NonNeg_Len                   = 164
+      , FACET_NonNeg_maxLen                = 165
+      , FACET_NonNeg_minLen                = 166
+      , FACET_Len_maxLen                   = 167
+      , FACET_Len_minLen                   = 168
+      , FACET_maxLen_minLen                = 169
+      , FACET_bool_Pattern                 = 170
+      , FACET_Invalid_Tag                  = 171
+      , FACET_Len_baseLen                  = 172
+      , FACET_minLen_baseminLen            = 173
+      , FACET_minLen_basemaxLen            = 174
+      , FACET_maxLen_basemaxLen            = 175
+      , FACET_maxLen_baseminLen            = 176
+      , FACET_Len_baseMinLen               = 177
+      , FACET_Len_baseMaxLen               = 178
+      , FACET_minLen_baseLen               = 179
+      , FACET_maxLen_baseLen               = 180
+      , FACET_enum_base                    = 181
+      , FACET_Invalid_WS                   = 182
+      , FACET_WS_collapse                  = 183
+      , FACET_WS_replace                   = 184
+      , FACET_Invalid_MaxIncl              = 185
+      , FACET_Invalid_MaxExcl              = 186
+      , FACET_Invalid_MinIncl              = 187
+      , FACET_Invalid_MinExcl              = 188
+      , FACET_Invalid_TotalDigit           = 189
+      , FACET_Invalid_FractDigit           = 190
+      , FACET_PosInt_TotalDigit            = 191
+      , FACET_NonNeg_FractDigit            = 192
+      , FACET_max_Incl_Excl                = 193
+      , FACET_min_Incl_Excl                = 194
+      , FACET_maxExcl_minExcl              = 195
+      , FACET_maxExcl_minIncl              = 196
+      , FACET_maxIncl_minExcl              = 197
+      , FACET_maxIncl_minIncl              = 198
+      , FACET_TotDigit_FractDigit          = 199
+      , FACET_maxIncl_base_maxExcl         = 200
+      , FACET_maxIncl_base_maxIncl         = 201
+      , FACET_maxIncl_base_minIncl         = 202
+      , FACET_maxIncl_base_minExcl         = 203
+      , FACET_maxExcl_base_maxExcl         = 204
+      , FACET_maxExcl_base_maxIncl         = 205
+      , FACET_maxExcl_base_minIncl         = 206
+      , FACET_maxExcl_base_minExcl         = 207
+      , FACET_minExcl_base_maxExcl         = 208
+      , FACET_minExcl_base_maxIncl         = 209
+      , FACET_minExcl_base_minIncl         = 210
+      , FACET_minExcl_base_minExcl         = 211
+      , FACET_minIncl_base_maxExcl         = 212
+      , FACET_minIncl_base_maxIncl         = 213
+      , FACET_minIncl_base_minIncl         = 214
+      , FACET_minIncl_base_minExcl         = 215
+      , FACET_maxIncl_notFromBase          = 216
+      , FACET_maxExcl_notFromBase          = 217
+      , FACET_minIncl_notFromBase          = 218
+      , FACET_minExcl_notFromBase          = 219
+      , FACET_totalDigit_base_totalDigit   = 220
+      , FACET_fractDigit_base_totalDigit   = 221
+      , FACET_fractDigit_base_fractDigit   = 222
+      , FACET_maxIncl_base_fixed           = 223
+      , FACET_maxExcl_base_fixed           = 224
+      , FACET_minIncl_base_fixed           = 225
+      , FACET_minExcl_base_fixed           = 226
+      , FACET_totalDigit_base_fixed        = 227
+      , FACET_fractDigit_base_fixed        = 228
+      , FACET_maxLen_base_fixed            = 229
+      , FACET_minLen_base_fixed            = 230
+      , FACET_len_base_fixed               = 231
+      , FACET_whitespace_base_fixed        = 232
+      , FACET_internalError_fixed          = 233
+      , FACET_List_Null_baseValidator      = 234
+      , FACET_Union_Null_memberTypeValidators   = 235
+      , FACET_Union_Null_baseValidator     = 236
+      , FACET_Union_invalid_baseValidatorType   = 237
+      , VALUE_NotMatch_Pattern             = 238
+      , VALUE_Not_Base64                   = 239
+      , VALUE_Not_HexBin                   = 240
+      , VALUE_GT_maxLen                    = 241
+      , VALUE_LT_minLen                    = 242
+      , VALUE_NE_Len                       = 243
+      , VALUE_NotIn_Enumeration            = 244
+      , VALUE_exceed_totalDigit            = 245
+      , VALUE_exceed_fractDigit            = 246
+      , VALUE_exceed_maxIncl               = 247
+      , VALUE_exceed_maxExcl               = 248
+      , VALUE_exceed_minIncl               = 249
+      , VALUE_exceed_minExcl               = 250
+      , VALUE_WS_replaced                  = 251
+      , VALUE_WS_collapsed                 = 252
+      , VALUE_Invalid_NCName               = 253
+      , VALUE_Invalid_Name                 = 254
+      , VALUE_ID_Not_Unique                = 255
+      , VALUE_ENTITY_Invalid               = 256
+      , VALUE_QName_Invalid                = 257
+      , VALUE_NOTATION_Invalid             = 258
+      , VALUE_no_match_memberType          = 259
+      , VALUE_URI_Malformed                = 260
+      , XMLNUM_emptyString                 = 261
+      , XMLNUM_WSString                    = 262
+      , XMLNUM_2ManyDecPoint               = 263
+      , XMLNUM_Inv_chars                   = 264
+      , XMLNUM_null_ptr                    = 265
+      , XMLNUM_URI_Component_Empty         = 266
+      , XMLNUM_URI_Component_for_GenURI_Only   = 267
+      , XMLNUM_URI_Component_Invalid_EscapeSequence   = 268
+      , XMLNUM_URI_Component_Invalid_Char   = 269
+      , XMLNUM_URI_Component_Set_Null      = 270
+      , XMLNUM_URI_Component_Not_Conformant   = 271
+      , XMLNUM_URI_No_Scheme               = 272
+      , XMLNUM_URI_NullHost                = 273
+      , XMLNUM_URI_NullPath                = 274
+      , XMLNUM_URI_Component_inPath        = 275
+      , XMLNUM_URI_PortNo_Invalid          = 276
+      , XMLNUM_DBL_FLT_maxNeg              = 277
+      , XMLNUM_DBL_FLT_maxPos              = 278
+      , XMLNUM_DBL_FLT_minNegPos           = 279
+      , XMLNUM_DBL_FLT_InvalidType         = 280
+      , XMLNUM_DBL_FLT_No_Exponent         = 281
+      , Regex_Result_Not_Set               = 282
+      , Regex_CompactRangesError           = 283
+      , Regex_MergeRangesTypeMismatch      = 284
+      , Regex_SubtractRangesError          = 285
+      , Regex_IntersectRangesError         = 286
+      , Regex_ComplementRangesInvalidArg   = 287
+      , Regex_InvalidCategoryName          = 288
+      , Regex_KeywordNotFound              = 289
+      , Regex_BadRefNo                     = 290
+      , Regex_UnknownOption                = 291
+      , Regex_UnknownTokenType             = 292
+      , Regex_RangeTokenGetError           = 293
+      , Regex_NotSupported                 = 294
+      , Regex_InvalidChildIndex            = 295
+      , Regex_RepPatMatchesZeroString      = 296
+      , Regex_InvalidRepPattern            = 297
+      , NEL_RepeatedCalls                  = 298
+      , RethrowError                       = 299
+      , Out_Of_Memory                      = 300
+      , DV_InvalidOperation                = 301
+      , XPath_NoAttrSelector               = 302
+      , XPath_NoUnionAtStart               = 303
+      , XPath_NoMultipleUnion              = 304
+      , XPath_MissingAttr                  = 305
+      , XPath_ExpectedToken1               = 306
+      , XPath_PrefixNoURI                  = 307
+      , XPath_NoDoubleColon                = 308
+      , XPath_ExpectedStep1                = 309
+      , XPath_ExpectedStep2                = 310
+      , XPath_ExpectedStep3                = 311
+      , XPath_NoForwardSlash               = 312
+      , XPath_NoDoubleForwardSlash         = 313
+      , XPath_NoForwardSlashAtStart        = 314
+      , XPath_NoSelectionOfRoot            = 315
+      , XPath_EmptyExpr                    = 316
+      , XPath_NoUnionAtEnd                 = 317
+      , XPath_InvalidChar                  = 318
+      , XPath_TokenNotSupported            = 319
+      , XPath_FindSolution                 = 320
+      , DateTime_Assert_Buffer_Fail        = 321
+      , DateTime_dt_missingT               = 322
+      , DateTime_gDay_invalid              = 323
+      , DateTime_gMth_invalid              = 324
+      , DateTime_gMthDay_invalid           = 325
+      , DateTime_dur_Start_dashP           = 326
+      , DateTime_dur_noP                   = 327
+      , DateTime_dur_DashNotFirst          = 328
+      , DateTime_dur_inv_b4T               = 329
+      , DateTime_dur_NoTimeAfterT          = 330
+      , DateTime_dur_NoElementAtAll        = 331
+      , DateTime_dur_inv_seconds           = 332
+      , DateTime_date_incomplete           = 333
+      , DateTime_date_invalid              = 334
+      , DateTime_time_incomplete           = 335
+      , DateTime_time_invalid              = 336
+      , DateTime_ms_noDigit                = 337
+      , DateTime_ym_incomplete             = 338
+      , DateTime_ym_invalid                = 339
+      , DateTime_year_tooShort             = 340
+      , DateTime_year_leadingZero          = 341
+      , DateTime_ym_noMonth                = 342
+      , DateTime_tz_noUTCsign              = 343
+      , DateTime_tz_stuffAfterZ            = 344
+      , DateTime_tz_invalid                = 345
+      , DateTime_year_zero                 = 346
+      , DateTime_mth_invalid               = 347
+      , DateTime_day_invalid               = 348
+      , DateTime_hour_invalid              = 349
+      , DateTime_min_invalid               = 350
+      , DateTime_second_invalid            = 351
+      , DateTime_tz_hh_invalid             = 352
+      , PD_EmptyBase                       = 353
+      , PD_NSCompat1                       = 354
+      , PD_OccurRangeE                     = 355
+      , PD_NameTypeOK1                     = 356
+      , PD_NameTypeOK2                     = 357
+      , PD_NameTypeOK3                     = 358
+      , PD_NameTypeOK4                     = 359
+      , PD_NameTypeOK5                     = 360
+      , PD_NameTypeOK6                     = 361
+      , PD_NameTypeOK7                     = 362
+      , PD_RecurseAsIfGroup                = 363
+      , PD_Recurse1                        = 364
+      , PD_Recurse2                        = 365
+      , PD_ForbiddenRes1                   = 366
+      , PD_ForbiddenRes2                   = 367
+      , PD_ForbiddenRes3                   = 368
+      , PD_ForbiddenRes4                   = 369
+      , PD_NSSubset1                       = 370
+      , PD_NSSubset2                       = 371
+      , PD_NSRecurseCheckCardinality1      = 372
+      , PD_RecurseUnordered                = 373
+      , PD_MapAndSum                       = 374
+      , PD_InvalidContentType              = 375
+      , NodeIDMap_GrowErr                  = 376
+      , XSer_ProtoType_Null_ClassName      = 377
+      , XSer_ProtoType_NameLen_Dif         = 378
+      , XSer_ProtoType_Name_Dif            = 379
+      , XSer_InStream_Read_LT_Req          = 380
+      , XSer_InStream_Read_OverFlow        = 381
+      , XSer_Storing_Violation             = 382
+      , XSer_StoreBuffer_Violation         = 383
+      , XSer_LoadPool_UppBnd_Exceed        = 384
+      , XSer_LoadPool_NoTally_ObjCnt       = 385
+      , XSer_Loading_Violation             = 386
+      , XSer_LoadBuffer_Violation          = 387
+      , XSer_Inv_ClassIndex                = 388
+      , XSer_Inv_FillBuffer_Size           = 389
+      , XSer_Inv_checkFillBuffer_Size      = 390
+      , XSer_Inv_checkFlushBuffer_Size     = 391
+      , XSer_Inv_Null_Pointer              = 392
+      , XSer_Inv_Buffer_Len                = 393
+      , XSer_CreateObject_Fail             = 394
+      , XSer_ObjCount_UppBnd_Exceed        = 395
+      , XSer_GrammarPool_Locked            = 396
+      , XSer_GrammarPool_Empty             = 397
+      , XSer_GrammarPool_NotEmpty          = 398
+      , XSer_StringPool_NotEmpty           = 399
+      , XSer_Storer_NewerThan_Loader       = 400
+      , VALUE_QName_Invalid2               = 401
+      , F_HighBounds                       = 402
+      , E_LowBounds                        = 403
+      , E_HighBounds                       = 404
+    };
+
+
+private:
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    XMLExcepts();
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
+
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/OutOfMemoryException.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/OutOfMemoryException.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/OutOfMemoryException.hpp	(revision 2674)
@@ -0,0 +1,95 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: OutOfMemoryException.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(OUT_OF_MEMORY_EXCEPTION_HPP)
+#define OUT_OF_MEMORY_EXCEPTION_HPP
+
+#include <xercesc/util/XMemory.hpp>
+#include <xercesc/util/XMLExceptMsgs.hpp>
+#include <xercesc/util/XMLUniDefs.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+static const XMLCh gDefOutOfMemoryErrMsg[] =
+{
+        chLatin_O, chLatin_u, chLatin_t, chLatin_O
+    ,   chLatin_f, chLatin_M, chLatin_e, chLatin_m
+    ,   chLatin_o, chLatin_r, chLatin_y, chNull
+};
+
+class XMLUTIL_EXPORT OutOfMemoryException : public XMemory
+{
+public:
+  
+    OutOfMemoryException();
+    ~OutOfMemoryException();
+    // -----------------------------------------------------------------------
+    //  Getter methods
+    // -----------------------------------------------------------------------
+    XMLExcepts::Codes getCode() const;
+    const XMLCh* getMessage() const;
+    const XMLCh* getType() const;
+    const char* getSrcFile() const;
+    unsigned int getSrcLine() const;
+
+    OutOfMemoryException(const OutOfMemoryException& toCopy);
+    OutOfMemoryException& operator=(const OutOfMemoryException& toAssign);
+};
+
+// constructors/destructors...
+inline OutOfMemoryException::OutOfMemoryException() {}
+inline OutOfMemoryException::~OutOfMemoryException() {}
+inline OutOfMemoryException::OutOfMemoryException(const OutOfMemoryException& other) : XMemory(other) {}
+inline OutOfMemoryException& OutOfMemoryException::operator=(const OutOfMemoryException&) 
+{
+    return *this;
+}
+
+// ---------------------------------------------------------------------------
+//  OutOfMemoryException: Getter methods
+// ---------------------------------------------------------------------------
+inline XMLExcepts::Codes OutOfMemoryException::getCode() const
+{
+    return XMLExcepts::Out_Of_Memory;
+}
+
+inline const XMLCh* OutOfMemoryException::getMessage() const
+{
+    return gDefOutOfMemoryErrMsg;
+}
+
+inline const XMLCh* OutOfMemoryException::getType() const
+{
+    return gDefOutOfMemoryErrMsg;
+}
+
+inline const char* OutOfMemoryException::getSrcFile() const
+{
+    return "";
+}
+    
+inline unsigned int OutOfMemoryException::getSrcLine() const {
+    return 0;
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/XMLInitializer.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/XMLInitializer.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/XMLInitializer.hpp	(revision 2674)
@@ -0,0 +1,89 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: XMLInitializer.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+#if !defined(XMLINITIALIZER_HPP)
+#define XMLINITIALIZER_HPP
+
+#include <xercesc/util/XercesDefs.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+
+/**
+  * Utilities that must be implemented in a class-specific way.
+  *
+  * This class contains methods that must be implemented by different
+  * classes that have static data (class or local) that they need
+  * to initialize when XMLPlatformUtils::Initialize is invoked.
+  */
+class XMLUTIL_EXPORT XMLInitializer
+{
+protected :
+    /** @name Initialization methods */
+    //@{
+
+    /** Perform per-class initialization of static data
+      *
+      * Initialization <b>must</b> be called in XMLPlatformUtils::Initialize.
+      */
+    static void InitializeAllStaticData();
+
+    //@}
+
+    friend class XMLPlatformUtils;
+
+private :
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    XMLInitializer();
+    XMLInitializer(const XMLInitializer& toCopy);
+    XMLInitializer& operator=(const XMLInitializer&);
+
+    /** @name Private static initialization methods */
+    //@{
+
+    static void initializeMsgLoader4DOM();
+    static void initializeDOMImplementationImpl();
+    static void initializeDOMImplementationRegistry();
+    static void initializeEmptyNodeList();
+    static void initializeDOMNormalizerMsgLoader();
+    static void initializeValidatorMsgLoader();
+    static void initializeXSValueStatics();
+    static void initializeScannerMsgLoader();
+    static void initializeEncodingValidator();
+    static void initializeExceptionMsgLoader();
+    static void initializeDVFactory();
+    static void initializeGeneralAttrCheckMap();
+    static void initializeXSDErrReporterMsgLoader();
+    static void initializeDTDGrammarDfltEntities();
+    static void initializeRangeTokenMap();
+    static void initializeRegularExpression();
+    static void initializeAnyType();
+
+    //@}
+};
+
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/RefHash3KeysIdPool.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/RefHash3KeysIdPool.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/RefHash3KeysIdPool.hpp	(revision 2674)
@@ -0,0 +1,285 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: RefHash3KeysIdPool.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+#if !defined(REFHASH3KEYSIDPOOL_HPP)
+#define REFHASH3KEYSIDPOOL_HPP
+
+
+#include <xercesc/util/HashBase.hpp>
+#include <xercesc/util/IllegalArgumentException.hpp>
+#include <xercesc/util/NoSuchElementException.hpp>
+#include <xercesc/util/RuntimeException.hpp>
+#include <xercesc/util/PlatformUtils.hpp>
+#include <xercesc/util/XMLString.hpp>
+#include <xercesc/util/HashXMLCh.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+// This hash table is a combination of RefHash2KeyTableOf (with an additional integer as key3)
+// and NameIdPool with an id as index
+
+//
+//  Forward declare the enumerator so he can be our friend. Can you say
+//  friend? Sure...
+//
+template <class TVal> class RefHash3KeysIdPoolEnumerator;
+template <class TVal> struct RefHash3KeysTableBucketElem;
+
+
+//
+//  This should really be a nested class, but some of the compilers we
+//  have to support cannot deal with that!
+//
+template <class TVal> struct RefHash3KeysTableBucketElem
+{
+    RefHash3KeysTableBucketElem(
+              void* key1
+              , int key2
+              , int key3
+              , TVal* const value
+              , RefHash3KeysTableBucketElem<TVal>* next) :
+		fData(value)
+    , fNext(next)
+    , fKey1(key1)
+    , fKey2(key2)
+    , fKey3(key3)
+    {
+    }
+    
+    RefHash3KeysTableBucketElem() {};
+    ~RefHash3KeysTableBucketElem() {};
+
+    TVal*  fData;
+    RefHash3KeysTableBucketElem<TVal>*   fNext;
+    void*  fKey1;
+    int    fKey2;
+    int    fKey3;
+
+private:
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    RefHash3KeysTableBucketElem(const RefHash3KeysTableBucketElem<TVal>&);
+    RefHash3KeysTableBucketElem<TVal>& operator=(const RefHash3KeysTableBucketElem<TVal>&);
+};
+
+
+template <class TVal> class RefHash3KeysIdPool : public XMemory
+{
+public:
+    // -----------------------------------------------------------------------
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+    // backwards compatability - default hasher is HashXMLCh
+    RefHash3KeysIdPool
+    (
+          const unsigned int   modulus
+        , const unsigned int   initSize = 128
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    // backwards compatability - default hasher is HashXMLCh
+    RefHash3KeysIdPool
+    (
+          const unsigned int   modulus
+        , const bool           adoptElems
+        , const unsigned int   initSize = 128
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    // if a hash function is passed in, it will be deleted when the hashtable is deleted.
+    // use a new instance of the hasher class for each hashtable, otherwise one hashtable
+    // may delete the hasher of a different hashtable if both use the same hasher.
+    RefHash3KeysIdPool
+    (
+          const unsigned int   modulus
+        , const bool           adoptElems
+        , HashBase* hashBase
+        , const unsigned int initSize = 128
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    ~RefHash3KeysIdPool();
+
+    // -----------------------------------------------------------------------
+    //  Element management
+    // -----------------------------------------------------------------------
+    bool isEmpty() const;
+    bool containsKey(const void* const key1, const int key2, const int key3) const;
+    void removeAll();
+
+
+    // -----------------------------------------------------------------------
+    //  Getters
+    // -----------------------------------------------------------------------
+    TVal* getByKey(const void* const key1, const int key2, const int key3);
+    const TVal* getByKey(const void* const key1, const int key2, const int key3) const;
+
+    TVal* getById(const unsigned elemId);
+    const TVal* getById(const unsigned elemId) const;
+
+    MemoryManager* getMemoryManager() const;
+    unsigned int   getHashModulus()   const;
+
+    // -----------------------------------------------------------------------
+    //  Putters
+    // -----------------------------------------------------------------------
+	unsigned int put(void* key1, int key2, int key3, TVal* const valueToAdopt);
+
+
+private :
+    // -----------------------------------------------------------------------
+    //  Declare our friends
+    // -----------------------------------------------------------------------
+    friend class RefHash3KeysIdPoolEnumerator<TVal>;
+
+private:
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    RefHash3KeysIdPool(const RefHash3KeysIdPool<TVal>&);
+    RefHash3KeysIdPool<TVal>& operator=(const RefHash3KeysIdPool<TVal>&);
+
+    // -----------------------------------------------------------------------
+    //  Private methods
+    // -----------------------------------------------------------------------
+    RefHash3KeysTableBucketElem<TVal>* findBucketElem(const void* const key1, const int key2, const int key3, unsigned int& hashVal);
+    const RefHash3KeysTableBucketElem<TVal>* findBucketElem(const void* const key1, const int key2, const int key3, unsigned int& hashVal) const;
+    void initialize(const unsigned int modulus);
+
+
+    // -----------------------------------------------------------------------
+    //  Data members
+    //
+    //  fAdoptedElems
+    //      Indicates whether the values added are adopted or just referenced.
+    //      If adopted, then they are deleted when they are removed from the
+    //      hash table.
+    //
+    //  fBucketList
+    //      This is the array that contains the heads of all of the list
+    //      buckets, one for each possible hash value.
+    //
+    //  fHashModulus
+    //      The modulus used for this hash table, to hash the keys. This is
+    //      also the number of elements in the bucket list.
+    //
+    //  fHash
+    //      The hasher for the key1 data type.
+    //
+    //  fIdPtrs
+    //  fIdPtrsCount
+    //      This is the array of pointers to the bucket elements in order of
+    //      their assigned ids. So taking id N and referencing this array
+    //      gives you the element with that id. The count field indicates
+    //      the current size of this list. When fIdCounter+1 reaches this
+    //      value the list must be expanded.
+    //
+    //  fIdCounter
+    //      This is used to give out unique ids to added elements. It starts
+    //      at zero (which means empty), and is bumped up for each newly added
+    //      element. So the first element is 1, the next is 2, etc... This
+    //      means that this value is set to the top index of the fIdPtrs array.
+    // -----------------------------------------------------------------------
+    MemoryManager*                      fMemoryManager;
+    bool                                fAdoptedElems;
+    RefHash3KeysTableBucketElem<TVal>** fBucketList;
+    unsigned int                        fHashModulus;
+    HashBase*                           fHash;
+    TVal**                              fIdPtrs;
+    unsigned int                        fIdPtrsCount;
+    unsigned int                        fIdCounter;
+};
+
+
+
+//
+//  An enumerator for a value array. It derives from the basic enumerator
+//  class, so that value vectors can be generically enumerated.
+//
+template <class TVal> class RefHash3KeysIdPoolEnumerator : public XMLEnumerator<TVal>, public XMemory
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+    RefHash3KeysIdPoolEnumerator(RefHash3KeysIdPool<TVal>* const toEnum
+        , const bool adopt = false
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+    virtual ~RefHash3KeysIdPoolEnumerator();
+
+    RefHash3KeysIdPoolEnumerator(const RefHash3KeysIdPoolEnumerator<TVal>&);
+    // -----------------------------------------------------------------------
+    //  Enum interface
+    // -----------------------------------------------------------------------
+    bool hasMoreElements() const;
+    TVal& nextElement();
+    void Reset();
+    int  size() const;
+
+    // -----------------------------------------------------------------------
+    //  New interface 
+    // -----------------------------------------------------------------------
+    void resetKey();
+    void nextElementKey(void*&, int&, int&);
+    bool hasMoreKeys()   const;
+
+private :
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------    
+    RefHash3KeysIdPoolEnumerator<TVal>& operator=(const RefHash3KeysIdPoolEnumerator<TVal>&);
+
+    // -----------------------------------------------------------------------
+    //  Private methods
+    // -----------------------------------------------------------------------
+    void findNext();
+
+    // -----------------------------------------------------------------------
+    //  Data Members
+    //  fAdoptedElems
+    //      Indicates whether the values added are adopted or just referenced.
+    //      If adopted, then they are deleted when they are removed from the
+    //      hash table
+    //
+    //  fCurIndex
+    //      This is the current index into the pool's id mapping array. This
+    //      is now we enumerate it.
+    //
+    //  fToEnum
+    //      The name id pool that is being enumerated.
+    // -----------------------------------------------------------------------
+    bool                                fAdoptedElems;
+    unsigned int                        fCurIndex;
+    RefHash3KeysIdPool<TVal>*           fToEnum;
+    RefHash3KeysTableBucketElem<TVal>*  fCurElem;
+    unsigned int                        fCurHash;
+    MemoryManager* const                fMemoryManager;
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#if !defined(XERCES_TMPLSINC)
+#include <xercesc/util/RefHash3KeysIdPool.c>
+#endif
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Compilers/MIPSproDefs.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Compilers/MIPSproDefs.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Compilers/MIPSproDefs.hpp	(revision 2674)
@@ -0,0 +1,114 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: MIPSproDefs.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(MIPSPRODEFS_HPP)
+#define MIPSPRODEFS_HPP
+
+// ---------------------------------------------------------------------------
+//  Include some runtime files that will be needed product wide
+// ---------------------------------------------------------------------------
+#include <sys/types.h>  // for size_t and ssize_t
+#include <limits.h>  // for MAX of size_t and ssize_t
+
+// ---------------------------------------------------------------------------
+//  A define in the build for each project is also used to control whether
+//  the export keyword is from the project's viewpoint or the client's.
+//  These defines provide the platform specific keywords that they need
+//  to do this.
+// ---------------------------------------------------------------------------
+#define PLATFORM_EXPORT
+#define PLATFORM_IMPORT
+
+// ---------------------------------------------------------------------------
+//  Indicate that we do not support native bools
+//  If the compiler can handle boolean itself, do not define it
+// ---------------------------------------------------------------------------
+// #define NO_NATIVE_BOOL
+
+// ---------------------------------------------------------------------------
+//  Each compiler might support L"" prefixed constants. There are places
+//  where it is advantageous to use the L"" where it supported, to avoid
+//  unnecessary transcoding.
+//  If your compiler does not support it, don't define this.
+// ---------------------------------------------------------------------------
+// #define XML_LSTRSUPPORT
+
+// ---------------------------------------------------------------------------
+//  Indicate that we support C++ namespace
+//  Do not define it if the compile cannot handle C++ namespace
+// ---------------------------------------------------------------------------
+#define XERCES_HAS_CPP_NAMESPACE
+
+// ---------------------------------------------------------------------------
+//  Define our version of the XML character
+// ---------------------------------------------------------------------------
+typedef unsigned short XMLCh;
+
+// ---------------------------------------------------------------------------
+//  Define unsigned 16 and 32 bits integers
+// ---------------------------------------------------------------------------
+typedef unsigned short  XMLUInt16;
+typedef unsigned int    XMLUInt32;
+
+// ---------------------------------------------------------------------------
+//  Define signed 32 bits integers
+// ---------------------------------------------------------------------------
+typedef int             XMLInt32;
+
+// ---------------------------------------------------------------------------
+//  XMLSize_t is the unsigned integral type.
+// ---------------------------------------------------------------------------
+#if defined(_SIZE_T) && defined(SIZE_MAX) && defined(_SSIZE_T) && defined(SSIZE_MAX)
+    typedef size_t              XMLSize_t;
+    #define XML_SIZE_MAX        SIZE_MAX
+    typedef ssize_t             XMLSSize_t;
+    #define XML_SSIZE_MAX       SSIZE_MAX
+#else
+    typedef unsigned long       XMLSize_t;
+    #define XML_SIZE_MAX        ULONG_MAX
+    typedef long                XMLSSize_t;
+    #define XML_SSIZE_MAX       LONG_MAX
+#endif
+
+// ---------------------------------------------------------------------------
+//  Force on the Xerces debug token if it was on in the build environment
+// ---------------------------------------------------------------------------
+#if defined(_DEBUG)
+#define XERCES_DEBUG
+#endif
+
+
+// ---------------------------------------------------------------------------
+//  Provide prototypes for some string methods that are not always available
+//  on all platforms.
+// ---------------------------------------------------------------------------
+int stricmp(const char* const str1, const char* const  str2);
+int strnicmp(const char* const str1, const char* const  str2, const unsigned int count);
+
+// ---------------------------------------------------------------------------
+//  The name of the DSO that is built by the MIPSpro C++ version of the
+//  system. We append a previously defined token which holds the DSO
+//  versioning string. This is defined in XercesDefs.hpp which is what this
+//  file is included into.
+// ---------------------------------------------------------------------------
+const char* const Xerces_DLLName = "libxerces-c";
+
+#endif //MIPSPRODEFS_HPP
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Compilers/IBMVAW32Defs.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Compilers/IBMVAW32Defs.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Compilers/IBMVAW32Defs.hpp	(revision 2674)
@@ -0,0 +1,107 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: IBMVAW32Defs.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(IBMVAW32DEFS_HPP)
+#define IBMVAW32DEFS_HPP
+
+// ---------------------------------------------------------------------------
+//  Include some runtime files that will be needed product wide
+// ---------------------------------------------------------------------------
+#include <sys/types.h>  // for size_t and ssize_t
+#include <limits.h>  // for MAX of size_t and ssize_t
+
+// ---------------------------------------------------------------------------
+//  A define in the build for each project is also used to control whether
+//  the export keyword is from the project's viewpoint or the client's.
+//  These defines provide the platform specific keywords that they need
+//  to do this.
+// ---------------------------------------------------------------------------
+#define PLATFORM_EXPORT     __declspec(dllexport)
+#define PLATFORM_IMPORT
+
+// ---------------------------------------------------------------------------
+//  Indicate that we do not support native bools
+//  If the compiler can handle boolean itself, do not define it
+// ---------------------------------------------------------------------------
+// #define NO_NATIVE_BOOL
+
+// ---------------------------------------------------------------------------
+//  Each compiler might support L"" prefixed constants. There are places
+//  where it is advantageous to use the L"" where it supported, to avoid
+//  unnecessary transcoding.
+//  If your compiler does not support it, don't define this.
+// ---------------------------------------------------------------------------
+// #define XML_LSTRSUPPORT
+
+// ---------------------------------------------------------------------------
+//  Indicate that we support C++ namespace
+//  Do not define it if the compile cannot handle C++ namespace
+// ---------------------------------------------------------------------------
+// #define XERCES_HAS_CPP_NAMESPACE
+
+// ---------------------------------------------------------------------------
+//  Define our version of the XML character
+// ---------------------------------------------------------------------------
+typedef unsigned short XMLCh;
+
+// ---------------------------------------------------------------------------
+//  Define unsigned 16 and 32 bits integers
+// ---------------------------------------------------------------------------
+typedef unsigned short XMLUInt16;
+typedef unsigned int   XMLUInt32;
+
+// ---------------------------------------------------------------------------
+//  Define signed 32 bits integers
+// ---------------------------------------------------------------------------
+typedef int            XMLInt32;
+
+// ---------------------------------------------------------------------------
+//  XMLSize_t is the unsigned integral type.
+// ---------------------------------------------------------------------------
+#if defined(_SIZE_T) && defined(SIZE_MAX) && defined(_SSIZE_T) && defined(SSIZE_MAX)
+    typedef size_t              XMLSize_t;
+    #define XML_SIZE_MAX        SIZE_MAX
+    typedef ssize_t             XMLSSize_t;
+    #define XML_SSIZE_MAX       SSIZE_MAX
+#else
+    typedef unsigned long       XMLSize_t;
+    #define XML_SIZE_MAX        ULONG_MAX
+    typedef long                XMLSSize_t;
+    #define XML_SSIZE_MAX       LONG_MAX
+#endif
+
+// ---------------------------------------------------------------------------
+//  Force on the Xerces debug token if it was on in the build environment
+// ---------------------------------------------------------------------------
+#ifdef _DEBUG
+#define XERCES_DEBUG
+#endif
+
+
+// ---------------------------------------------------------------------------
+//  The name of the DLL that is built by the Visual Age C++ version of the
+//  system. We append a previously defined token which holds the DLL
+//  versioning string. This is defined in XercesDefs.hpp which is what this
+//  file is included into.
+// ---------------------------------------------------------------------------
+const char* const Xerces_DLLName = "VAWXERCESC" Xerces_DLLVersionStr;
+
+#endif //IBMVAW32DEFS_HPP
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Compilers/SCOCCDefs.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Compilers/SCOCCDefs.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Compilers/SCOCCDefs.hpp	(revision 2674)
@@ -0,0 +1,110 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: SCOCCDefs.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(SCOCCDEFS_HPP)
+#define SCOCCDEFS_HPP
+
+// ---------------------------------------------------------------------------
+//  Include some runtime files that will be needed product wide
+// ---------------------------------------------------------------------------
+#include <sys/types.h>  // for size_t and ssize_t
+#include <limits.h>  // for MAX of size_t and ssize_t
+
+// ---------------------------------------------------------------------------
+//  A define in the build for each project is also used to control whether
+//  the export keyword is from the project's viewpoint or the client's.
+//  These defines provide the platform specific keywords that they need
+//  to do this.
+// ---------------------------------------------------------------------------
+#define PLATFORM_EXPORT
+#define PLATFORM_IMPORT
+
+// ---------------------------------------------------------------------------
+//  Indicate that we do not support native bools
+//  If the compiler can handle boolean itself, do not define it
+// ---------------------------------------------------------------------------
+// #define NO_NATIVE_BOOL
+
+// ---------------------------------------------------------------------------
+//  Each compiler might support L"" prefixed constants. There are places
+//  where it is advantageous to use the L"" where it supported, to avoid
+//  unnecessary transcoding.
+//  If your compiler does not support it, don't define this.
+// ---------------------------------------------------------------------------
+// #define XML_LSTRSUPPORT
+
+// ---------------------------------------------------------------------------
+//  Indicate that we support C++ namespace
+//  Do not define it if the compile cannot handle C++ namespace
+// ---------------------------------------------------------------------------
+#define XERCES_HAS_CPP_NAMESPACE
+
+// ---------------------------------------------------------------------------
+//  Define our version of the XML character
+// ---------------------------------------------------------------------------
+typedef unsigned short XMLCh;
+
+// ---------------------------------------------------------------------------
+//  Define unsigned 16 and 32 bits integers
+// ---------------------------------------------------------------------------
+typedef unsigned short  XMLUInt16;
+typedef unsigned int    XMLUInt32;
+
+// ---------------------------------------------------------------------------
+//  Define signed 32 bits integers
+// ---------------------------------------------------------------------------
+typedef int             XMLInt32;
+
+// ---------------------------------------------------------------------------
+//  XMLSize_t is the unsigned integral type.
+// ---------------------------------------------------------------------------
+#if defined(_SIZE_T) && defined(SIZE_MAX) && defined(_SSIZE_T) && defined(SSIZE_MAX)
+    typedef size_t              XMLSize_t;
+    #define XML_SIZE_MAX        SIZE_MAX
+    typedef ssize_t             XMLSSize_t;
+    #define XML_SSIZE_MAX       SSIZE_MAX
+#else
+    typedef unsigned long       XMLSize_t;
+    #define XML_SIZE_MAX        ULONG_MAX
+    typedef long                XMLSSize_t;
+    #define XML_SSIZE_MAX       LONG_MAX
+#endif
+
+
+// ---------------------------------------------------------------------------
+//  Force on the Xerces debug token if it was on in the build environment
+// ---------------------------------------------------------------------------
+#if defined(_DEBUG)
+#define XERCES_DEBUG
+#endif
+
+#define XERCES_NEW_IOSTREAMS
+#define XERCES_STD_NAMESPACE
+
+int stricmp(const char* const str1, const char* const  str2);
+int strnicmp(const char* const str1, const char* const  str2, const unsigned int count);
+
+// ---------------------------------------------------------------------------
+//  The name of the DLL that is built by the CC version of the system.
+// ---------------------------------------------------------------------------
+const char* const Xerces_DLLName = "libxerces-c";
+
+#endif //SCOCCDEFS_HPP
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Compilers/SunKaiDefs.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Compilers/SunKaiDefs.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Compilers/SunKaiDefs.hpp	(revision 2674)
@@ -0,0 +1,117 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: SunKaiDefs.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(SUNKAIDEFS_HPP)
+#define SUNKAIDEFS_HPP
+
+
+// ---------------------------------------------------------------------------
+//  Include some runtime files that will be needed product wide
+// ---------------------------------------------------------------------------
+#include <memory.h>
+#include <strings.h>
+#include <sys/types.h>  // for size_t and ssize_t
+#include <limits.h>  // for MAX of size_t and ssize_t
+
+// ---------------------------------------------------------------------------
+//  A define in the build for each project is also used to control whether
+//  the export keyword is from the project's viewpoint or the client's.
+//  These defines provide the platform specific keywords that they need
+//  to do this.
+// ---------------------------------------------------------------------------
+#define PLATFORM_EXPORT
+#define PLATFORM_IMPORT
+
+// ---------------------------------------------------------------------------
+//  Indicate that we do not support native bools
+//  If the compiler can handle boolean itself, do not define it
+// ---------------------------------------------------------------------------
+// #define NO_NATIVE_BOOL
+
+// ---------------------------------------------------------------------------
+//  Each compiler might support L"" prefixed constants. There are places
+//  where it is advantageous to use the L"" where it supported, to avoid
+//  unnecessary transcoding.
+//  If your compiler does not support it, don't define this.
+// ---------------------------------------------------------------------------
+// #define XML_LSTRSUPPORT
+
+// ---------------------------------------------------------------------------
+//  Indicate that we support C++ namespace
+//  Do not define it if the compile cannot handle C++ namespace
+// ---------------------------------------------------------------------------
+// #define XERCES_HAS_CPP_NAMESPACE
+
+// ---------------------------------------------------------------------------
+//  Define our version of the XML character
+// ---------------------------------------------------------------------------
+typedef unsigned short XMLCh;
+
+// ---------------------------------------------------------------------------
+//  Define unsigned 16 and 32 bits integers
+// ---------------------------------------------------------------------------
+typedef unsigned short  XMLUInt16;
+typedef unsigned int    XMLUInt32;
+
+// ---------------------------------------------------------------------------
+//  Define signed 32 bits integers
+// ---------------------------------------------------------------------------
+typedef int             XMLInt32;
+
+// ---------------------------------------------------------------------------
+//  XMLSize_t is the unsigned integral type.
+// ---------------------------------------------------------------------------
+#if defined(_SIZE_T) && defined(SIZE_MAX) && defined(_SSIZE_T) && defined(SSIZE_MAX)
+    typedef size_t              XMLSize_t;
+    #define XML_SIZE_MAX        SIZE_MAX
+    typedef ssize_t             XMLSSize_t;
+    #define XML_SSIZE_MAX       SSIZE_MAX
+#else
+    typedef unsigned long       XMLSize_t;
+    #define XML_SIZE_MAX        ULONG_MAX
+    typedef long                XMLSSize_t;
+    #define XML_SSIZE_MAX       LONG_MAX
+#endif
+
+
+// ---------------------------------------------------------------------------
+//  Force on the Xerces debug token if it was on in the build environment
+// ---------------------------------------------------------------------------
+#if defined(_DEBUG)
+#define XERCES_DEBUG
+#endif
+
+// ---------------------------------------------------------------------------
+//  The name of the DLL that is built by the system.
+//  We append a previously defined token which holds the DLL
+//  versioning string. This is defined in XercesDefs.hpp which is what this
+//  file is included into.
+// ---------------------------------------------------------------------------
+const char* const Xerces_DLLName = "KAIXERCESC" Xerces_DLLVersionStr;
+
+// ---------------------------------------------------------------------------
+//  Provide prototypes for some string functions that are not provided on all
+//  platforms.
+// ---------------------------------------------------------------------------
+int stricmp(const char* const str1, const char* const  str2);
+int strnicmp(const char* const str1, const char* const  str2, const unsigned int count);
+
+#endif //SUNKAIDEFS_HPP
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Compilers/GCCDefs.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Compilers/GCCDefs.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Compilers/GCCDefs.hpp	(revision 2674)
@@ -0,0 +1,145 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: GCCDefs.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(GCCDEFS_HPP)
+#define GCCDEFS_HPP
+
+// ---------------------------------------------------------------------------
+//  Include some runtime files that will be needed product wide
+// ---------------------------------------------------------------------------
+#include <sys/types.h>  // for size_t and ssize_t
+#include <limits.h>  // for MAX of size_t and ssize_t
+
+// ---------------------------------------------------------------------------
+//  A define in the build for each project is also used to control whether
+//  the export keyword is from the project's viewpoint or the client's.
+//  These defines provide the platform specific keywords that they need
+//  to do this.
+// ---------------------------------------------------------------------------
+#if defined(__MINGW32__) && !defined (XML_LIBRARY)
+#define PLATFORM_EXPORT __declspec(dllexport)
+#define PLATFORM_IMPORT __declspec(dllimport)
+#else
+#define PLATFORM_EXPORT 
+#define PLATFORM_IMPORT 
+#endif
+
+// ---------------------------------------------------------------------------
+//  Indicate that we do not support native bools
+//  If the compiler can handle boolean itself, do not define it
+// ---------------------------------------------------------------------------
+// #define NO_NATIVE_BOOL
+
+// ---------------------------------------------------------------------------
+//  Each compiler might support L"" prefixed constants. There are places
+//  where it is advantageous to use the L"" where it supported, to avoid
+//  unnecessary transcoding.
+//  If your compiler does not support it, don't define this.
+// ---------------------------------------------------------------------------
+// #define XML_LSTRSUPPORT
+
+// ---------------------------------------------------------------------------
+//  Indicate that we support C++ namespace
+//  Do not define it if the compile cannot handle C++ namespace
+// ---------------------------------------------------------------------------
+#define XERCES_HAS_CPP_NAMESPACE
+
+// ---------------------------------------------------------------------------
+//  Define our version of the XML character
+// ---------------------------------------------------------------------------
+#if defined(__MINGW32__) && defined(_WCHAR_T_DEFINED)
+typedef wchar_t         XMLCh;
+#else
+typedef unsigned short  XMLCh;
+#endif
+
+// ---------------------------------------------------------------------------
+//  Define unsigned 16 and 32 bits integers
+// ---------------------------------------------------------------------------
+typedef unsigned short  XMLUInt16;
+typedef unsigned int    XMLUInt32;
+
+// ---------------------------------------------------------------------------
+//  Define signed 32 bits integers
+// ---------------------------------------------------------------------------
+typedef int             XMLInt32;
+
+// ---------------------------------------------------------------------------
+//  XMLSize_t is the unsigned integral type.
+// ---------------------------------------------------------------------------
+#if defined(_SIZE_T) && defined(SIZE_MAX) && defined(_SSIZE_T) && defined(SSIZE_MAX)
+    typedef size_t              XMLSize_t;
+    #define XML_SIZE_MAX        SIZE_MAX
+    typedef ssize_t             XMLSSize_t;
+    #define XML_SSIZE_MAX       SSIZE_MAX
+#else
+    typedef unsigned long       XMLSize_t;
+    #define XML_SIZE_MAX        ULONG_MAX
+    typedef long                XMLSSize_t;
+    #define XML_SSIZE_MAX       LONG_MAX
+#endif
+
+// ---------------------------------------------------------------------------
+//  Force on the Xerces debug token if it was on in the build environment
+// ---------------------------------------------------------------------------
+#if defined(_DEBUG)
+#define XERCES_DEBUG
+#endif
+
+#if __GNUC__ >= 3
+#define XERCES_NEW_IOSTREAMS
+#define XERCES_STD_NAMESPACE
+#endif
+
+// ---------------------------------------------------------------------------
+//  Provide some common string ops that are different/notavail on GCC
+// ---------------------------------------------------------------------------
+#if !defined(XML_TRU64) && !defined(XML_GCC)
+inline char toupper(const char toUpper)
+{
+    if ((toUpper >= 'a') && (toUpper <= 'z'))
+        return char(toUpper - 0x20);
+    return toUpper;
+}
+
+inline char tolower(const char toLower)
+{
+    if ((toLower >= 'A') && (toLower <= 'Z'))
+        return char(toLower + 0x20);
+    return toLower;
+}
+#endif
+
+#if !defined(__CYGWIN__) && !defined(__MINGW32__)
+
+int stricmp(const char* const str1, const char* const  str2);
+int strnicmp(const char* const str1, const char* const  str2, const unsigned int count);
+
+#endif // ! __CYGWIN__
+
+
+// ---------------------------------------------------------------------------
+//  The name of the DLL that is built by the GCC version of the system.
+// ---------------------------------------------------------------------------
+const char* const Xerces_DLLName = "libxerces-c";
+
+#endif  // GCCDEFS_HPP
+
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Compilers/CSetDefs.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Compilers/CSetDefs.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Compilers/CSetDefs.hpp	(revision 2674)
@@ -0,0 +1,136 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: CSetDefs.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(CSETDEFS_HPP)
+#define CSETDEFS_HPP
+
+// ---------------------------------------------------------------------------
+//  Include some runtime files that will be needed product wide
+// ---------------------------------------------------------------------------
+#include <sys/types.h>  // for size_t and ssize_t
+#include <limits.h>  // for MAX of size_t and ssize_t
+
+// ---------------------------------------------------------------------------
+//  A define in the build for each project is also used to control whether
+//  the export keyword is from the project's viewpoint or the client's.
+//  These defines provide the platform specific keywords that they need
+//  to do this.
+// ---------------------------------------------------------------------------
+#define PLATFORM_EXPORT
+#define PLATFORM_IMPORT
+
+// ---------------------------------------------------------------------------
+//  Indicate that we do not support native bools
+//  If the compiler can handle boolean itself, do not define it
+// ---------------------------------------------------------------------------
+#if !defined(__BOOL__)
+#define NO_NATIVE_BOOL
+#endif
+
+// ---------------------------------------------------------------------------
+//  Each compiler might support L"" prefixed constants. There are places
+//  where it is advantageous to use the L"" where it supported, to avoid
+//  unnecessary transcoding.
+//  If your compiler does not support it, don't define this.
+// ---------------------------------------------------------------------------
+#define XML_LSTRSUPPORT
+
+// ---------------------------------------------------------------------------
+//  Indicate that we support C++ namespace
+//  Do not define it if the compile cannot handle C++ namespace
+// ---------------------------------------------------------------------------
+#if __IBMCPP__ >= 400
+#define XERCES_HAS_CPP_NAMESPACE
+#endif
+
+// ---------------------------------------------------------------------------
+//  Define our version of the XML character
+// ---------------------------------------------------------------------------
+typedef unsigned short XMLCh;
+
+// ---------------------------------------------------------------------------
+//  Define unsigned 16 and 32 bits integers
+// ---------------------------------------------------------------------------
+typedef unsigned short XMLUInt16;
+typedef unsigned int   XMLUInt32;
+
+// ---------------------------------------------------------------------------
+//  Define signed 32 bits integers
+// ---------------------------------------------------------------------------
+typedef int             XMLInt32;
+
+// ---------------------------------------------------------------------------
+//  XMLSize_t is the unsigned integral type.
+// ---------------------------------------------------------------------------
+#if defined(_SIZE_T) && defined(SIZE_MAX) && defined(_SSIZE_T) && defined(SSIZE_MAX)
+    typedef size_t              XMLSize_t;
+    #define XML_SIZE_MAX        SIZE_MAX
+    typedef ssize_t             XMLSSize_t;
+    #define XML_SSIZE_MAX       SSIZE_MAX
+#else
+    typedef unsigned long       XMLSize_t;
+    #define XML_SIZE_MAX        ULONG_MAX
+    typedef long                XMLSSize_t;
+    #define XML_SSIZE_MAX       LONG_MAX
+#endif
+
+
+// ---------------------------------------------------------------------------
+//  Force on the Xerces debug token if it was on in the build environment
+// ---------------------------------------------------------------------------
+#if defined(_DEBUG)
+#define XERCES_DEBUG
+#endif
+
+#if __IBMCPP__ >= 400
+#define XERCES_NEW_IOSTREAMS
+#define XERCES_STD_NAMESPACE
+#endif
+
+// ---------------------------------------------------------------------------
+//  Provide some common string ops that are different/notavail on CSet
+// ---------------------------------------------------------------------------
+inline char toupper(const char toUpper)
+{
+    if ((toUpper >= 'a') && (toUpper <= 'z'))
+        return char(toUpper - 0x20);
+    return toUpper;
+}
+
+inline char tolower(const char toLower)
+{
+    if ((toLower >= 'A') && (toLower <= 'Z'))
+        return char(toLower + 0x20);
+    return toLower;
+}
+
+int stricmp(const char* const str1, const char* const  str2);
+int strnicmp(const char* const str1, const char* const  str2, const unsigned int count);
+
+
+
+// ---------------------------------------------------------------------------
+//  The name of the DLL that is built by the CSet C++ version of the system.
+// ---------------------------------------------------------------------------
+const char* const Xerces_DLLName = "libxerces-c";
+
+#endif // CSETDEFS_HPP
+
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Compilers/QCCDefs.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Compilers/QCCDefs.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Compilers/QCCDefs.hpp	(revision 2674)
@@ -0,0 +1,99 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: QCCDefs.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(QCCDEFS_HPP)
+#define QCCDEFS_HPP
+
+// ---------------------------------------------------------------------------
+//  Include some runtime files that will be needed product wide
+// ---------------------------------------------------------------------------
+#include <sys/types.h>  
+#include <limits.h>  
+#include <inttypes.h>
+
+// ---------------------------------------------------------------------------
+//  A define in the build for each project is also used to control whether
+//  the export keyword is from the project's viewpoint or the client's.
+//  These defines provide the platform specific keywords that they need
+//  to do this.
+// ---------------------------------------------------------------------------
+#define PLATFORM_EXPORT
+#define PLATFORM_IMPORT
+
+// ---------------------------------------------------------------------------
+//  Indicate that we do not support native bools
+//  If the compiler can handle boolean itself, do not define it
+// ---------------------------------------------------------------------------
+// #define NO_NATIVE_BOOL
+
+// ---------------------------------------------------------------------------
+//  Each compiler might support L"" prefixed constants. There are places
+//  where it is advantageous to use the L"" where it supported, to avoid
+//  unnecessary transcoding.
+//  If your compiler does not support it, don't define this.
+// ---------------------------------------------------------------------------
+// #define XML_LSTRSUPPORT
+
+// ---------------------------------------------------------------------------
+//  Indicate that we support C++ namespace
+//  Do not define it if the compile cannot handle C++ namespace
+// ---------------------------------------------------------------------------
+#define XERCES_HAS_CPP_NAMESPACE
+
+// ---------------------------------------------------------------------------
+//  Define our version of the XML character
+// ---------------------------------------------------------------------------
+typedef uint16_t XMLCh;
+
+// ---------------------------------------------------------------------------
+//  Define unsigned 16 and 32 bits integers
+// ---------------------------------------------------------------------------
+typedef uint16_t XMLUInt16;
+typedef uint32_t XMLUInt32;
+
+// ---------------------------------------------------------------------------
+//  Define signed 32 bits integers
+// ---------------------------------------------------------------------------
+typedef int32_t  XMLInt32;
+
+// ---------------------------------------------------------------------------
+//  XMLSize_t is the unsigned integral type.
+// ---------------------------------------------------------------------------
+typedef size_t              XMLSize_t;
+#define XML_SIZE_MAX        SIZE_MAX
+typedef ssize_t             XMLSSize_t;
+#define XML_SSIZE_MAX       SSIZE_MAX
+
+// ---------------------------------------------------------------------------
+//  Force on the Xerces debug token if it was on in the build environment
+// ---------------------------------------------------------------------------
+// #if defined(_DEBUG)
+// #define XERCES_DEBUG
+// #endif
+
+
+// ---------------------------------------------------------------------------
+//  The name of the DLL that is built by the QCC version of the system.
+// ---------------------------------------------------------------------------
+const char* const Xerces_DLLName = "libxerces-c";
+
+#endif  // QCCDEFS_HPP
+
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Compilers/VCPPDefs.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Compilers/VCPPDefs.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Compilers/VCPPDefs.hpp	(revision 2674)
@@ -0,0 +1,131 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: VCPPDefs.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(VCPPDEFS_HPP)
+#define VCPPDEFS_HPP
+
+// ---------------------------------------------------------------------------
+//  Include some runtime files that will be needed product wide
+// ---------------------------------------------------------------------------
+#include <sys/types.h>  // for size_t and ssize_t
+#include <limits.h>  // for MAX of size_t and ssize_t
+
+// ---------------------------------------------------------------------------
+//  A define in the build for each project is also used to control whether
+//  the export keyword is from the project's viewpoint or the client's.
+//  These defines provide the platform specific keywords that they need
+//  to do this.
+// ---------------------------------------------------------------------------
+#ifdef XML_LIBRARY
+  #define PLATFORM_EXPORT
+  #define PLATFORM_IMPORT
+#else
+  #define PLATFORM_EXPORT     __declspec(dllexport)
+  #define PLATFORM_IMPORT     __declspec(dllimport)
+#endif
+
+// ---------------------------------------------------------------------------
+//  Indicate that we do not support native bools
+//  If the compiler can handle boolean itself, do not define it
+// ---------------------------------------------------------------------------
+// #define NO_NATIVE_BOOL
+
+// ---------------------------------------------------------------------------
+//  Each compiler might support L"" prefixed constants. There are places
+//  where it is advantageous to use the L"" where it supported, to avoid
+//  unnecessary transcoding.
+//  If your compiler does not support it, don't define this.
+// ---------------------------------------------------------------------------
+#define XML_LSTRSUPPORT
+
+// ---------------------------------------------------------------------------
+//  Indicate that we support C++ namespace
+//  Do not define it if the compile cannot handle C++ namespace
+// ---------------------------------------------------------------------------
+#define XERCES_HAS_CPP_NAMESPACE
+
+// ---------------------------------------------------------------------------
+//  Define our version of the XML character
+// ---------------------------------------------------------------------------
+#ifdef _NATIVE_WCHAR_T_DEFINED 
+typedef wchar_t  XMLCh;
+#else
+typedef unsigned short  XMLCh;
+#endif
+
+// ---------------------------------------------------------------------------
+//  Define unsigned 16 and 32 bits integers
+// ---------------------------------------------------------------------------
+typedef unsigned short  XMLUInt16;
+typedef unsigned int    XMLUInt32;
+
+// ---------------------------------------------------------------------------
+//  Define signed 32 bits integers
+// ---------------------------------------------------------------------------
+typedef int             XMLInt32;
+
+// ---------------------------------------------------------------------------
+//  XMLSize_t is the unsigned integral type.
+// ---------------------------------------------------------------------------
+#if defined(_SIZE_T) && defined(SIZE_MAX) && defined(_SSIZE_T) && defined(SSIZE_MAX)
+    typedef size_t              XMLSize_t;
+    #define XML_SIZE_MAX        SIZE_MAX
+    typedef ssize_t             XMLSSize_t;
+    #define XML_SSIZE_MAX       SSIZE_MAX
+#elif defined(_M_AMD64) || defined(_M_IA64)
+    typedef unsigned __int64    XMLSize_t;
+    #define XML_SIZE_MAX        _UI64_MAX
+    typedef __int64             XMLSSize_t;
+    #define XML_SSIZE_MAX       _I64_MAX
+#else
+    typedef unsigned long       XMLSize_t;
+    #define XML_SIZE_MAX        ULONG_MAX
+    typedef long                XMLSSize_t;
+    #define XML_SSIZE_MAX       LONG_MAX
+#endif
+
+// ---------------------------------------------------------------------------
+//  Force on the Xerces debug token if it was on in the build environment
+// ---------------------------------------------------------------------------
+#if defined(_DEBUG)
+#define XERCES_DEBUG
+#endif
+
+#if _MSC_VER > 1300
+#define XERCES_NEW_IOSTREAMS
+#define XERCES_STD_NAMESPACE
+#endif
+
+// ---------------------------------------------------------------------------
+//  The name of the DLL that is built by the Visual C++ version of the
+//  system. We append a previously defined token which holds the DLL
+//  versioning string. This is defined in XercesDefs.hpp which is what this
+//  file is included into.
+// ---------------------------------------------------------------------------
+#if defined(XERCES_DEBUG)
+const char* const Xerces_DLLName = "xerces-c_" Xerces_DLLVersionStr "D";
+#else
+const char* const Xerces_DLLName = "xerces-c_" Xerces_DLLVersionStr;
+#endif
+
+
+#endif //VCPPDEFS_HPP
+
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Compilers/MVSCPPDefs.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Compilers/MVSCPPDefs.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Compilers/MVSCPPDefs.hpp	(revision 2674)
@@ -0,0 +1,149 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: MVSCPPDefs.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(MVSCPPDEFS_HPP)
+#define MVSCPPDEFS_HPP
+
+// ---------------------------------------------------------------------------
+//  Include some runtime files that will be needed product wide
+// ---------------------------------------------------------------------------
+#include <sys/types.h>  // for size_t and ssize_t
+#include <limits.h>  // for MAX of size_t and ssize_t
+
+// ---------------------------------------------------------------------------
+//  A define in the build for each project is also used to control whether
+//  the export keyword is from the project's viewpoint or the client's.
+//  These defines provide the platform specific keywords that they need
+//  to do this.
+// ---------------------------------------------------------------------------
+#define PLATFORM_EXPORT _Export
+#define PLATFORM_IMPORT
+
+// ---------------------------------------------------------------------------
+//  Indicate that we do not support native bools
+//  If the compiler can handle boolean itself, do not define it
+// ---------------------------------------------------------------------------
+//#define NO_NATIVE_BOOL
+
+// ---------------------------------------------------------------------------
+//  Each compiler might support L"" prefixed constants. There are places
+//  where it is advantageous to use the L"" where it supported, to avoid
+//  unnecessary transcoding.
+//  If your compiler does not support it, don't define this.
+// ---------------------------------------------------------------------------
+#define XML_LSTRSUPPORT
+
+// ---------------------------------------------------------------------------
+//  Indicate that we support C++ namespace
+//  Do not define it if the compile cannot handle C++ namespace
+// ---------------------------------------------------------------------------
+#define XERCES_HAS_CPP_NAMESPACE
+
+// ---------------------------------------------------------------------------
+//  Define our version of the XML character
+// ---------------------------------------------------------------------------
+typedef unsigned short XMLCh;
+// typedef wchar_t XMLCh;
+
+// ---------------------------------------------------------------------------
+//  Define unsigned 16 and 32 bits integers
+// ---------------------------------------------------------------------------
+typedef unsigned short XMLUInt16;
+typedef unsigned int   XMLUInt32;
+
+// ---------------------------------------------------------------------------
+//  Define signed 32 bits integers
+// ---------------------------------------------------------------------------
+typedef int            XMLInt32;
+
+// ---------------------------------------------------------------------------
+//  XMLSize_t is the unsigned integral type.
+// ---------------------------------------------------------------------------
+#if defined(_SIZE_T) && defined(SIZE_MAX) && defined(_SSIZE_T) && defined(SSIZE_MAX)
+    typedef size_t              XMLSize_t;
+    #define XML_SIZE_MAX        SIZE_MAX
+    typedef ssize_t             XMLSSize_t;
+    #define XML_SSIZE_MAX       SSIZE_MAX
+#else
+    typedef unsigned long       XMLSize_t;
+    #define XML_SIZE_MAX        ULONG_MAX
+    typedef long                XMLSSize_t;
+    #define XML_SSIZE_MAX       LONG_MAX
+#endif
+
+// ---------------------------------------------------------------------------
+//  Force on the Xerces debug token if it was on in the build environment
+// ---------------------------------------------------------------------------
+#if defined(_DEBUG)
+#define XERCES_DEBUG
+#endif
+
+
+// ---------------------------------------------------------------------------
+//  Provide some common string ops that are different/notavail on MVSCPP
+// ---------------------------------------------------------------------------
+
+//
+// This is a upper casing function. Note that this will not cover
+// all NLS cases such as European accents etc. but there aren't
+// any of these in the current uses of this function in Xerces.
+// If this changes in the future, than we can re-address the issue
+// at that time.
+//
+inline char mytoupper(const char toUpper)
+{
+    if ((toUpper >= 0x61) && (toUpper <= 0x7A))
+        return char(toUpper - 0x20);
+    return toUpper;
+}
+
+inline char mytolower(const char toLower)
+{
+    if ((toLower >= 0x41) && (toLower <= 0x5A))
+        return char(toLower + 0x20);
+    return toLower;
+}
+
+inline XMLCh mytowupper(const XMLCh toUpper)
+{
+    if ((toUpper >= 0x61) && (toUpper <= 0x7A))
+       return XMLCh(toUpper - 0x20);
+    return toUpper;
+}
+
+inline XMLCh mytowlower(const XMLCh toLower)
+{
+    if ((toLower >= 0x41) && (toLower <= 0x5A))
+       return XMLCh(toLower + 0x20);
+    return toLower;
+}
+
+int stricmp(const char* const str1, const char* const  str2);
+int strnicmp(const char* const str1, const char* const  str2, const unsigned int count);
+
+
+
+// ---------------------------------------------------------------------------
+//  The name of the DLL that is built by the MVSCPP version of the system.
+// ---------------------------------------------------------------------------
+const char* const Xerces_DLLName = "libxerces-c";
+
+#endif  // MVSCPPDEFS_HPP
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Compilers/SunCCDefs.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Compilers/SunCCDefs.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Compilers/SunCCDefs.hpp	(revision 2674)
@@ -0,0 +1,132 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: SunCCDefs.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(SUNCCDEFS_HPP)
+#define SUNCCDEFS_HPP
+
+// ---------------------------------------------------------------------------
+//  Include some runtime files that will be needed product wide
+// ---------------------------------------------------------------------------
+#include <sys/types.h>  // for size_t and ssize_t
+#include <limits.h>  // for MAX of size_t and ssize_t
+
+// ---------------------------------------------------------------------------
+//  A define in the build for each project is also used to control whether
+//  the export keyword is from the project's viewpoint or the client's.
+//  These defines provide the platform specific keywords that they need
+//  to do this.
+// ---------------------------------------------------------------------------
+#define PLATFORM_EXPORT
+#define PLATFORM_IMPORT
+
+// ---------------------------------------------------------------------------
+//  Indicate that we do not support native bools
+//  If the compiler can handle boolean itself, do not define it
+// ---------------------------------------------------------------------------
+#if !defined(_BOOL)
+#define NO_NATIVE_BOOL
+#endif
+
+// ---------------------------------------------------------------------------
+//  Each compiler might support L"" prefixed constants. There are places
+//  where it is advantageous to use the L"" where it supported, to avoid
+//  unnecessary transcoding.
+//  If your compiler does not support it, don't define this.
+// ---------------------------------------------------------------------------
+// #define XML_LSTRSUPPORT
+
+// ---------------------------------------------------------------------------
+//  Indicate that we support C++ namespace
+//  Do not define it if the compile cannot handle C++ namespace
+// ---------------------------------------------------------------------------
+#define XERCES_HAS_CPP_NAMESPACE
+
+// ---------------------------------------------------------------------------
+//  Define our version of the XML character
+// ---------------------------------------------------------------------------
+typedef unsigned short XMLCh;
+
+// ---------------------------------------------------------------------------
+//  Define unsigned 16 and 32 bits integers
+// ---------------------------------------------------------------------------
+typedef unsigned short  XMLUInt16;
+typedef unsigned int    XMLUInt32;
+
+// ---------------------------------------------------------------------------
+//  Define signed 32 bits integers
+// ---------------------------------------------------------------------------
+typedef int             XMLInt32;
+
+// ---------------------------------------------------------------------------
+//  XMLSize_t is the unsigned integral type.
+// ---------------------------------------------------------------------------
+#if defined(_SIZE_T) && defined(SIZE_MAX) && defined(_SSIZE_T) && defined(SSIZE_MAX)
+    typedef size_t              XMLSize_t;
+    #define XML_SIZE_MAX        SIZE_MAX
+    typedef ssize_t             XMLSSize_t;
+    #define XML_SSIZE_MAX       SSIZE_MAX
+#else
+    typedef unsigned long       XMLSize_t;
+    #define XML_SIZE_MAX        ULONG_MAX
+    typedef long                XMLSSize_t;
+    #define XML_SSIZE_MAX       LONG_MAX
+#endif
+
+
+// ---------------------------------------------------------------------------
+//  Force on the Xerces debug token if it was on in the build environment
+// ---------------------------------------------------------------------------
+#if defined(_DEBUG)
+#define XERCES_DEBUG
+#endif
+
+#if __SUNPRO_CC >= 0x500
+#define XERCES_NEW_IOSTREAMS
+#define XERCES_STD_NAMESPACE
+#endif
+
+// ---------------------------------------------------------------------------
+//  Provide some common string ops that are different/notavail on CC
+// ---------------------------------------------------------------------------
+inline char toupper(const char toUpper)
+{
+    if ((toUpper >= 'a') && (toUpper <= 'z'))
+        return char(toUpper - 0x20);
+    return toUpper;
+}
+
+inline char tolower(const char toLower)
+{
+    if ((toLower >= 'A') && (toLower <= 'Z'))
+        return char(toLower + 0x20);
+    return toLower;
+}
+
+int stricmp(const char* const str1, const char* const  str2);
+int strnicmp(const char* const str1, const char* const  str2, const unsigned int count);
+
+
+// ---------------------------------------------------------------------------
+//  The name of the DLL that is built by the CC version of the system.
+// ---------------------------------------------------------------------------
+const char* const Xerces_DLLName = "libxerces-c";
+
+#endif  // SUNCCDEFS_HPP
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Compilers/HPCCDefs.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Compilers/HPCCDefs.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Compilers/HPCCDefs.hpp	(revision 2674)
@@ -0,0 +1,112 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: HPCCDefs.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(HPCCDEFS_HPP)
+#define HPCCDEFS_HPP
+
+// ---------------------------------------------------------------------------
+//  Include some runtime files that will be needed product wide
+// ---------------------------------------------------------------------------
+#include <sys/types.h>  // for size_t and ssize_t
+#include <limits.h>  // for MAX of size_t and ssize_t
+
+// ---------------------------------------------------------------------------
+//  A define in the build for each project is also used to control whether
+//  the export keyword is from the project's viewpoint or the client's.
+//  These defines provide the platform specific keywords that they need
+//  to do this.
+// ---------------------------------------------------------------------------
+#define PLATFORM_EXPORT
+#define PLATFORM_IMPORT
+
+// ---------------------------------------------------------------------------
+//  Indicate that we do not support native bools
+//  If the compiler can handle boolean itself, do not define it
+// ---------------------------------------------------------------------------
+// #define NO_NATIVE_BOOL
+
+// ---------------------------------------------------------------------------
+//  Each compiler might support L"" prefixed constants. There are places
+//  where it is advantageous to use the L"" where it supported, to avoid
+//  unnecessary transcoding.
+//  If your compiler does not support it, don't define this.
+// ---------------------------------------------------------------------------
+// #define XML_LSTRSUPPORT
+
+// ---------------------------------------------------------------------------
+//  Indicate that we support C++ namespace
+//  Do not define it if the compile cannot handle C++ namespace
+// ---------------------------------------------------------------------------
+#define XERCES_HAS_CPP_NAMESPACE
+
+// ---------------------------------------------------------------------------
+//  Define our version of the XML character
+// ---------------------------------------------------------------------------
+typedef unsigned short XMLCh;
+
+// ---------------------------------------------------------------------------
+//  Define unsigned 16 and 32 bits integers
+// ---------------------------------------------------------------------------
+typedef unsigned short  XMLUInt16;
+typedef unsigned int    XMLUInt32;
+
+// ---------------------------------------------------------------------------
+//  Define signed 32 bits integers
+// ---------------------------------------------------------------------------
+typedef int             XMLInt32;
+
+// ---------------------------------------------------------------------------
+//  XMLSize_t is the unsigned integral type.
+// ---------------------------------------------------------------------------
+#if defined(_SIZE_T) && defined(SIZE_MAX) && defined(_SSIZE_T) && defined(SSIZE_MAX)
+    typedef size_t              XMLSize_t;
+    #define XML_SIZE_MAX        SIZE_MAX
+    typedef ssize_t             XMLSSize_t;
+    #define XML_SSIZE_MAX       SSIZE_MAX
+#else
+    typedef unsigned long       XMLSize_t;
+    #define XML_SIZE_MAX        ULONG_MAX
+    typedef long                XMLSSize_t;
+    #define XML_SSIZE_MAX       LONG_MAX
+#endif
+
+
+// ---------------------------------------------------------------------------
+//  Force on the Xerces debug token if it was on in the build environment
+// ---------------------------------------------------------------------------
+#if defined(_DEBUG)
+#define XERCES_DEBUG
+#endif
+
+// ---------------------------------------------------------------------------
+//  Provide prototypes for some string methods that are not always available
+//  on all platforms.
+// ---------------------------------------------------------------------------
+int stricmp(const char* const str1, const char* const  str2);
+int strnicmp(const char* const str1, const char* const  str2, const unsigned int count);
+
+
+// ---------------------------------------------------------------------------
+//  The name of the DLL that is built by the system.
+// ---------------------------------------------------------------------------
+const char* const Xerces_DLLName = "libxerces-c";
+
+#endif //HPCCDEFS_HPP
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Compilers/TandemCCDefs.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Compilers/TandemCCDefs.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Compilers/TandemCCDefs.hpp	(revision 2674)
@@ -0,0 +1,125 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: TandemCCDefs.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(TANDEMCCDEFS_HPP)
+#define TANDEMCCDEFS_HPP
+
+// ---------------------------------------------------------------------------
+//  Include some runtime files that will be needed product wide
+// ---------------------------------------------------------------------------
+#include <sys/types.h>  // for size_t and ssize_t
+#include <limits.h>  // for MAX of size_t and ssize_t
+
+// ---------------------------------------------------------------------------
+//  A define in the build for each project is also used to control whether
+//  the export keyword is from the project's viewpoint or the client's.
+//  These defines provide the platform specific keywords that they need
+//  to do this.
+// ---------------------------------------------------------------------------
+#define PLATFORM_EXPORT
+#define PLATFORM_IMPORT
+
+// ---------------------------------------------------------------------------
+//  Indicate that we do not support native bools
+//  If the compiler can handle boolean itself, do not define it
+// ---------------------------------------------------------------------------
+// #define NO_NATIVE_BOOL
+
+// ---------------------------------------------------------------------------
+//  Each compiler might support L"" prefixed constants. There are places
+//  where it is advantageous to use the L"" where it supported, to avoid
+//  unnecessary transcoding.
+//  If your compiler does not support it, don't define this.
+// ---------------------------------------------------------------------------
+// #define XML_LSTRSUPPORT
+
+// ---------------------------------------------------------------------------
+//  Indicate that we support C++ namespace
+//  Do not define it if the compile cannot handle C++ namespace
+// ---------------------------------------------------------------------------
+// #define XERCES_HAS_CPP_NAMESPACE
+
+// ---------------------------------------------------------------------------
+//  Define our version of the XML character
+// ---------------------------------------------------------------------------
+typedef unsigned short XMLCh;
+
+// ---------------------------------------------------------------------------
+//  Define unsigned 16 and 32 bits integers
+// ---------------------------------------------------------------------------
+typedef unsigned short  XMLUInt16;
+typedef unsigned int    XMLUInt32;
+
+// ---------------------------------------------------------------------------
+//  Define signed 32 bits integers
+// ---------------------------------------------------------------------------
+typedef int             XMLInt32;
+
+// ---------------------------------------------------------------------------
+//  XMLSize_t is the unsigned integral type.
+// ---------------------------------------------------------------------------
+#if defined(_SIZE_T) && defined(SIZE_MAX) && defined(_SSIZE_T) && defined(SSIZE_MAX)
+    typedef size_t              XMLSize_t;
+    #define XML_SIZE_MAX        SIZE_MAX
+    typedef ssize_t             XMLSSize_t;
+    #define XML_SSIZE_MAX       SSIZE_MAX
+#else
+    typedef unsigned long       XMLSize_t;
+    #define XML_SIZE_MAX        ULONG_MAX
+    typedef long                XMLSSize_t;
+    #define XML_SSIZE_MAX       LONG_MAX
+#endif
+
+// ---------------------------------------------------------------------------
+//  Force on the Xerces debug token if it was on in the build environment
+// ---------------------------------------------------------------------------
+#if defined(_DEBUG)
+#define XERCES_DEBUG
+#endif
+
+
+// ---------------------------------------------------------------------------
+//  Provide some common string ops that are different.
+// ---------------------------------------------------------------------------
+inline char toupper(const char toUpper)
+{
+    if ((toUpper >= 'a') && (toUpper <= 'z'))
+        return char(toUpper - 0x20);
+    return toUpper;
+}
+
+inline char tolower(const char toLower)
+{
+    if ((toLower >= 'A') && (toLower <= 'Z'))
+        return char(toLower + 0x20);
+    return toLower;
+}
+
+int stricmp(const char* const str1, const char* const  str2);
+int strnicmp(const char* const str1, const char* const  str2, const unsigned int count);
+
+
+// ---------------------------------------------------------------------------
+//  The name of the DLL that is built by the system.
+// ---------------------------------------------------------------------------
+const char* const Xerces_DLLName = "libxerces-c";
+
+#endif  // TANDEMCCDEFS_HPP
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Compilers/DECCXXDefs.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Compilers/DECCXXDefs.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Compilers/DECCXXDefs.hpp	(revision 2674)
@@ -0,0 +1,108 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: DECCXXDefs.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(DECCXXDEFS_HPP)
+#define	DECCXXDEFS_HPP
+
+// ---------------------------------------------------------------------------
+//  Include some runtime files that will be needed product wide
+// ---------------------------------------------------------------------------
+#include <sys/types.h>  // for size_t and ssize_t
+#include <limits.h>  // for MAX of size_t and ssize_t
+
+// ---------------------------------------------------------------------------
+//  A define in the build for each project is also used to control whether
+//  the export keyword is from the project's viewpoint or the client's.
+//  These defines provide the platform specific keywords that they need
+//  to do this.
+// ---------------------------------------------------------------------------
+#define PLATFORM_EXPORT
+#define PLATFORM_IMPORT
+
+// ---------------------------------------------------------------------------
+//  Indicate that we do not support native bools
+//  If the compiler can handle boolean itself, do not define it
+// ---------------------------------------------------------------------------
+// #define NO_NATIVE_BOOL
+
+// ---------------------------------------------------------------------------
+//  Each compiler might support L"" prefixed constants. There are places
+//  where it is advantageous to use the L"" where it supported, to avoid
+//  unnecessary transcoding.
+//  If your compiler does not support it, don't define this.
+// ---------------------------------------------------------------------------
+// #define XML_LSTRSUPPORT
+
+// ---------------------------------------------------------------------------
+//  Indicate that we support C++ namespace
+//  Do not define it if the compile cannot handle C++ namespace
+// ---------------------------------------------------------------------------
+// #define XERCES_HAS_CPP_NAMESPACE
+
+// ---------------------------------------------------------------------------
+//  Define our version of the XML character
+// ---------------------------------------------------------------------------
+typedef unsigned short XMLCh;
+
+// ---------------------------------------------------------------------------
+//  Define unsigned 16 and 32 bits integers
+// ---------------------------------------------------------------------------
+typedef unsigned short  XMLUInt16;
+typedef unsigned int    XMLUInt32;
+
+// ---------------------------------------------------------------------------
+//  Define signed 32 bits integers
+// ---------------------------------------------------------------------------
+typedef int             XMLInt32;
+
+// ---------------------------------------------------------------------------
+//  XMLSize_t is the unsigned integral type.
+// ---------------------------------------------------------------------------
+#if defined(_SIZE_T) && defined(SIZE_MAX) && defined(_SSIZE_T) && defined(SSIZE_MAX)
+    typedef size_t              XMLSize_t;
+    #define XML_SIZE_MAX        SIZE_MAX
+    typedef ssize_t             XMLSSize_t;
+    #define XML_SSIZE_MAX       SSIZE_MAX
+#else
+    typedef unsigned long       XMLSize_t;
+    #define XML_SIZE_MAX        ULONG_MAX
+    typedef long                XMLSSize_t;
+    #define XML_SSIZE_MAX       LONG_MAX
+#endif
+
+// ---------------------------------------------------------------------------
+//  Force on the Xerces debug token if it was on in the build environment
+// ---------------------------------------------------------------------------
+#if defined(_DEBUG)
+#define XERCES_DEBUG
+#endif
+
+
+int stricmp(const char* const str1, const char* const  str2);
+int strnicmp(const char* const str1, const char* const  str2,
+	     const unsigned int count);
+
+// ---------------------------------------------------------------------------
+//  The name of the DLL that is built by the CC version of the system.
+// ---------------------------------------------------------------------------
+const char* const Xerces_DLLName = "libxerces-c";
+
+#endif	// #if !defined(DECCXXDEFS_HPP)
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Compilers/CodeWarriorDefs.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Compilers/CodeWarriorDefs.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Compilers/CodeWarriorDefs.hpp	(revision 2674)
@@ -0,0 +1,138 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: CodeWarriorDefs.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(CODEWARRIORDEFS_HPP)
+#define CODEWARRIORDEFS_HPP
+
+// ---------------------------------------------------------------------------
+//  Include some runtime files that will be needed product wide
+// ---------------------------------------------------------------------------
+//#include <sys/types.h>  	// for size_t and ssize_t
+//#include <limits.h>		// for MAX of size_t and ssize_t
+//#include <extras.h>
+
+#if defined(_WIN32) || defined(WIN32)
+#include <wchar.h>
+#include <wctype.h>
+#endif
+ 
+
+// ---------------------------------------------------------------------------
+//  A define in the build for each project is also used to control whether
+//  the export keyword is from the project's viewpoint or the client's.
+//  These defines provide the platform specific keywords that they need
+//  to do this.
+// ---------------------------------------------------------------------------
+#if defined(XML_MACOS)
+#define PLATFORM_EXPORT		__declspec(export)
+#define PLATFORM_IMPORT		__declspec(import)
+#elif defined(_WIN32) || defined(WIN32)
+#define PLATFORM_EXPORT     __declspec(dllexport)
+#define PLATFORM_IMPORT     __declspec(dllimport)
+#endif
+ 
+// ---------------------------------------------------------------------------
+//  Indicate that we do not support native bools
+//  If the compiler can handle boolean itself, do not define it
+// ---------------------------------------------------------------------------
+// #define NO_NATIVE_BOOL
+
+// ---------------------------------------------------------------------------
+//  Each compiler might support L"" prefixed constants. There are places
+//  where it is advantageous to use the L"" where it supported, to avoid
+//  unnecessary transcoding.
+//  If your compiler does not support it, don't define this.
+// ---------------------------------------------------------------------------
+#define XML_LSTRSUPPORT
+
+// ---------------------------------------------------------------------------
+//  Indicate that we support C++ namespace
+//  Do not define it if the compile cannot handle C++ namespace
+// ---------------------------------------------------------------------------
+#define XERCES_HAS_CPP_NAMESPACE
+
+// ---------------------------------------------------------------------------
+//  Define our version of the XML character
+// ---------------------------------------------------------------------------
+#if defined(XML_MACOS)
+typedef unsigned short  XMLCh;
+#elif defined(_WIN32) || defined(WIN32)
+typedef wchar_t			XMLCh;
+#endif
+
+// ---------------------------------------------------------------------------
+//  Define unsigned 16 and 32 bits integers
+// ---------------------------------------------------------------------------
+typedef unsigned short  XMLUInt16;
+typedef unsigned int    XMLUInt32;
+
+// ---------------------------------------------------------------------------
+//  Define signed 32 bits integers
+// ---------------------------------------------------------------------------
+typedef int             XMLInt32;
+
+// ---------------------------------------------------------------------------
+//  XMLSize_t is the unsigned integral type.
+// ---------------------------------------------------------------------------
+#if defined(_SIZE_T) && defined(SIZE_MAX) && defined(_SSIZE_T) && defined(SSIZE_MAX)
+    typedef size_t              XMLSize_t;
+    #define XML_SIZE_MAX        SIZE_MAX
+    typedef ssize_t             XMLSSize_t;
+    #define XML_SSIZE_MAX       SSIZE_MAX
+#else
+    typedef unsigned long       XMLSize_t;
+    #define XML_SIZE_MAX        ULONG_MAX
+    typedef long                XMLSSize_t;
+    #define XML_SSIZE_MAX       LONG_MAX
+#endif
+
+// ---------------------------------------------------------------------------
+//  Force on the Xerces debug token if it was on in the build environment
+// ---------------------------------------------------------------------------
+#ifdef _DEBUG
+#define XERCES_DEBUG
+#endif
+
+// ---------------------------------------------------------------------------
+//  Provide some common string ops that are different/notavail for CodeWarrior.
+//	(these routines are defined in CW 8 by extras.h, but there is no MachO
+//	library for extras).
+// ---------------------------------------------------------------------------
+#if __MACH__
+int stricmp(const char* const str1, const char* const  str2);
+int strnicmp(const char* const str1, const char* const  str2, const unsigned int count);
+#endif
+
+#if defined(_WIN32) || defined(WIN32)
+/* used in place of calling mbstowcs or wcstombs with a NULL destination */
+int mbswcslen(const char * s, const unsigned int n);
+int wcsmbslen(const wchar_t * pwcs, const unsigned int n);
+#endif
+
+// ---------------------------------------------------------------------------
+//  The name of the DLL that is built by the Codewarrior version of the
+//  system. We append a previously defined token which holds the DLL
+//  versioning string. This is defined in XercesDefs.hpp which is what this
+//  file is included into.
+// ---------------------------------------------------------------------------
+const char* const Xerces_DLLName = "xerces-c" Xerces_DLLVersionStr;
+
+#endif //CODEWARRIORDEFS_HPP
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Compilers/OS400SetDefs.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Compilers/OS400SetDefs.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Compilers/OS400SetDefs.hpp	(revision 2674)
@@ -0,0 +1,118 @@
+#if (__OS400_TGTVRM__>=510)                               /* @01a */
+    #pragma datamodel(P128)                               /* @01a */
+#endif                                                    /* @01a */
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: OS400SetDefs.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+#ifndef OS400SETDEFS_H
+#define OS400SETDEFS_H
+
+// ---------------------------------------------------------------------------
+//  Include some runtime files that will be needed product wide
+// ---------------------------------------------------------------------------
+#include <sys/types.h>  // for size_t and ssize_t
+#include <limits.h>  // for MAX of size_t and ssize_t
+
+// ---------------------------------------------------------------------------
+//  A define in the build for each project is also used to control whether
+//  the export keyword is from the project's viewpoint or the client's.
+//  These defines provide the platform specific keywords that they need
+//  to do this.
+// ---------------------------------------------------------------------------
+#define PLATFORM_EXPORT
+#define PLATFORM_IMPORT
+
+// ---------------------------------------------------------------------------
+//  Indicate that we do not support native bools
+//  If the compiler can handle boolean itself, do not define it
+// ---------------------------------------------------------------------------
+#if !defined(__BOOL__)
+  #define NO_NATIVE_BOOL
+#endif
+
+// ---------------------------------------------------------------------------
+//  Each compiler might support L"" prefixed constants. There are places
+//  where it is advantageous to use the L"" where it supported, to avoid
+//  unnecessary transcoding.
+//  If your compiler does not support it, don't define this.
+// ---------------------------------------------------------------------------
+// #define XML_LSTRSUPPORT
+
+// ---------------------------------------------------------------------------
+//  Indicate that we support C++ namespace
+//  Do not define it if the compile cannot handle C++ namespace
+// ---------------------------------------------------------------------------
+#define XERCES_HAS_CPP_NAMESPACE
+
+// ---------------------------------------------------------------------------
+//  Define our version of the XML character
+// ---------------------------------------------------------------------------
+typedef unsigned short XMLCh;
+
+// ---------------------------------------------------------------------------
+//  Define unsigned 16 and 32 bits integers
+// ---------------------------------------------------------------------------
+typedef unsigned short XMLUInt16;
+typedef unsigned int   XMLUInt32;
+
+// ---------------------------------------------------------------------------
+//  Define signed 32 bits integers
+// ---------------------------------------------------------------------------
+typedef int            XMLInt32;
+
+// ---------------------------------------------------------------------------
+//  XMLSize_t is the unsigned integral type.
+// ---------------------------------------------------------------------------
+#if defined(_SIZE_T) && defined(SIZE_MAX) && defined(_SSIZE_T) && defined(SSIZE_MAX)
+    typedef size_t              XMLSize_t;
+    #define XML_SIZE_MAX        SIZE_MAX
+    typedef ssize_t             XMLSSize_t;
+    #define XML_SSIZE_MAX       SSIZE_MAX
+#else
+    typedef unsigned long       XMLSize_t;
+    #define XML_SIZE_MAX        ULONG_MAX
+    typedef long                XMLSSize_t;
+    #define XML_SSIZE_MAX       LONG_MAX
+#endif
+
+// ---------------------------------------------------------------------------
+//  Force on the Xerces debug token if it was on in the build environment
+// ---------------------------------------------------------------------------
+#if defined(_DEBUG)
+#define XERCES_DEBUG
+#endif
+
+
+// ---------------------------------------------------------------------------
+//  The name of the DLL that is built by the CSet C++ version of the
+//  system. We append a previously defined token which holds the DLL
+//  versioning string. This is defined in XercesDefs.hpp which is what this
+//  file is included into.
+// ---------------------------------------------------------------------------
+const char* const Xerces_DLLName = "libxercesc";
+
+#endif //OS400SETDEFS_H
+#if (__OS400_TGTVRM__>=510)                                /* @01a */  
+     #pragma datamodel(pop)                                /* @01a */ 
+#endif                                                     /* @01a */
+
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Compilers/PTXCCDefs.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Compilers/PTXCCDefs.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Compilers/PTXCCDefs.hpp	(revision 2674)
@@ -0,0 +1,109 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: PTXCCDefs.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(PTXCCDEFS_HPP)
+#define PTXCCDEFS_HPP
+
+// ---------------------------------------------------------------------------
+//  Include some runtime files that will be needed product wide
+// ---------------------------------------------------------------------------
+#include <sys/types.h>  // for size_t and ssize_t
+#include <limits.h>  // for MAX of size_t and ssize_t
+
+// ---------------------------------------------------------------------------
+//  A define in the build for each project is also used to control whether
+//  the export keyword is from the project's viewpoint or the client's.
+//  These defines provide the platform specific keywords that they need
+//  to do this.
+// ---------------------------------------------------------------------------
+#define PLATFORM_EXPORT
+#define PLATFORM_IMPORT
+
+// ---------------------------------------------------------------------------
+//  Indicate that we do not support native bools
+//  If the compiler can handle boolean itself, do not define it
+// ---------------------------------------------------------------------------
+// #define NO_NATIVE_BOOL
+
+// ---------------------------------------------------------------------------
+//  Each compiler might support L"" prefixed constants. There are places
+//  where it is advantageous to use the L"" where it supported, to avoid
+//  unnecessary transcoding.
+//  If your compiler does not support it, don't define this.
+// ---------------------------------------------------------------------------
+// #define XML_LSTRSUPPORT
+
+// ---------------------------------------------------------------------------
+//  Indicate that we support C++ namespace
+//  Do not define it if the compile cannot handle C++ namespace
+// ---------------------------------------------------------------------------
+// #define XERCES_HAS_CPP_NAMESPACE
+
+// ---------------------------------------------------------------------------
+//  Define our version of the XML character
+// ---------------------------------------------------------------------------
+typedef unsigned short XMLCh;
+
+// ---------------------------------------------------------------------------
+//  Define unsigned 16 and 32 bits integers
+// ---------------------------------------------------------------------------
+typedef unsigned short  XMLUInt16;
+typedef unsigned int    XMLUInt32;
+
+// ---------------------------------------------------------------------------
+//  Define signed 32 bits integers
+// ---------------------------------------------------------------------------
+typedef int             XMLInt32;
+
+// ---------------------------------------------------------------------------
+//  XMLSize_t is the unsigned integral type.
+// ---------------------------------------------------------------------------
+#if defined(_SIZE_T) && defined(SIZE_MAX) && defined(_SSIZE_T) && defined(SSIZE_MAX)
+    typedef size_t              XMLSize_t;
+    #define XML_SIZE_MAX        SIZE_MAX
+    typedef ssize_t             XMLSSize_t;
+    #define XML_SSIZE_MAX       SSIZE_MAX
+#else
+    typedef unsigned long       XMLSize_t;
+    #define XML_SIZE_MAX        ULONG_MAX
+    typedef long                XMLSSize_t;
+    #define XML_SSIZE_MAX       LONG_MAX
+#endif
+
+
+// ---------------------------------------------------------------------------
+//  Force on the Xerces debug token if it was on in the build environment
+// ---------------------------------------------------------------------------
+#if defined(_DEBUG)
+#define XERCES_DEBUG
+#endif
+
+
+int stricmp(const char* const str1, const char* const  str2);
+int strnicmp(const char* const str1, const char* const  str2, const unsigned int count);
+
+
+// ---------------------------------------------------------------------------
+//  The name of the DLL that is built by the system
+// ---------------------------------------------------------------------------
+const char* const Xerces_DLLName = "libxerces-c";
+
+#endif //PTXCCDEFS_HPP
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Compilers/IBMVAOS2Defs.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Compilers/IBMVAOS2Defs.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Compilers/IBMVAOS2Defs.hpp	(revision 2674)
@@ -0,0 +1,106 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: IBMVAOS2Defs.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(IBMVAOS2DEFS_HPP)
+#define IBMVAOS2DEFS_HPP
+
+// ---------------------------------------------------------------------------
+//  Include some runtime files that will be needed product wide
+// ---------------------------------------------------------------------------
+#include <sys/types.h>  // for size_t and ssize_t
+#include <limits.h>  // for MAX of size_t and ssize_t
+
+// ---------------------------------------------------------------------------
+//  A define in the build for each project is also used to control whether
+//  the export keyword is from the project's viewpoint or the client's.
+//  These defines provide the platform specific keywords that they need
+//  to do this.
+// ---------------------------------------------------------------------------
+#define PLATFORM_EXPORT     _Export
+#define PLATFORM_IMPORT
+
+// ---------------------------------------------------------------------------
+//  Indicate that we do not support native bools
+//  If the compiler can handle boolean itself, do not define it
+// ---------------------------------------------------------------------------
+// #define NO_NATIVE_BOOL
+
+// ---------------------------------------------------------------------------
+//  Each compiler might support L"" prefixed constants. There are places
+//  where it is advantageous to use the L"" where it supported, to avoid
+//  unnecessary transcoding.
+//  If your compiler does not support it, don't define this.
+// ---------------------------------------------------------------------------
+#define XML_LSTRSUPPORT
+
+// ---------------------------------------------------------------------------
+//  Indicate that we support C++ namespace
+//  Do not define it if the compile cannot handle C++ namespace
+// ---------------------------------------------------------------------------
+// #define XERCES_HAS_CPP_NAMESPACE
+
+// ---------------------------------------------------------------------------
+//  Define our version of the XML character
+// ---------------------------------------------------------------------------
+typedef unsigned short XMLCh;
+
+// ---------------------------------------------------------------------------
+//  Define unsigned 16 and 32 bits integers
+// ---------------------------------------------------------------------------
+typedef unsigned short XMLUInt16;
+typedef unsigned int   XMLUInt32;
+
+// ---------------------------------------------------------------------------
+//  Define signed 32 bits integers
+// ---------------------------------------------------------------------------
+typedef int             XMLInt32;
+
+// ---------------------------------------------------------------------------
+//  XMLSize_t is the unsigned integral type.
+// ---------------------------------------------------------------------------
+#if defined(_SIZE_T) && defined(SIZE_MAX) && defined(_SSIZE_T) && defined(SSIZE_MAX)
+    typedef size_t              XMLSize_t;
+    #define XML_SIZE_MAX        SIZE_MAX
+    typedef ssize_t             XMLSSize_t;
+    #define XML_SSIZE_MAX       SSIZE_MAX
+#else
+    typedef unsigned long       XMLSize_t;
+    #define XML_SIZE_MAX        ULONG_MAX
+    typedef long                XMLSSize_t;
+    #define XML_SSIZE_MAX       LONG_MAX
+#endif
+
+// ---------------------------------------------------------------------------
+//  Force on the Xerces debug token if it was on in the build environment
+// ---------------------------------------------------------------------------
+#ifdef _DEBUG
+#define XERCES_DEBUG
+#endif
+
+
+// ---------------------------------------------------------------------------
+//  The name of the DLL that is built by the Visual Age C++ version of the
+//  system. OS/2 supports only 8.3 names for DLLs.
+// ---------------------------------------------------------------------------
+const char* const Xerces_DLLName = "xerces-c";
+
+
+#endif //IBMVAOS2DEFS_HPP
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Compilers/BorlandCDefs.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Compilers/BorlandCDefs.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Compilers/BorlandCDefs.hpp	(revision 2674)
@@ -0,0 +1,131 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: BorlandCDefs.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(BORLANDCDEFS_HPP)
+#define BORLANDCDEFS_HPP
+
+// ---------------------------------------------------------------------------
+// The following values represent various compiler version levels stored in
+// the precompiler macro __BORLANDC__, along with the associated C++Builder
+// IDE and compiler versions.
+//
+//      __BORLANDC__         IDE             Compiler
+//      ------------    --------------  ------------------
+//         0x510        BCB1            Borland C++ 5.1
+//         0x530        BCB3            Borland C++ 5.3
+//         0x540        BCB4            Borland C++ 5.4
+//         0x550        BCB5            Borland C++ 5.5
+//         0x551        BCB5 (patch 1)  Borland C++ 5.5.1
+//
+// Thus, a single copy of this file may be used to define a build environment
+// for any Borland C++Builder compiler.
+// ---------------------------------------------------------------------------
+
+// ---------------------------------------------------------------------------
+//  Include some runtime files that will be needed product wide
+// ---------------------------------------------------------------------------
+#include <sys/types.h>  // for size_t and ssize_t
+#include <limits.h>  // for MAX of size_t and ssize_t
+
+// ---------------------------------------------------------------------------
+//  A define in the build for each project is also used to control whether
+//  the export keyword is from the project's viewpoint or the client's.
+//  These defines provide the platform specific keywords that they need
+//  to do this.
+// ---------------------------------------------------------------------------
+#define PLATFORM_EXPORT     __declspec(dllexport)
+#define PLATFORM_IMPORT     __declspec(dllimport)
+
+// ---------------------------------------------------------------------------
+//  Indicate that we do not support native bools
+//  If the compiler can handle boolean itself, do not define it
+// ---------------------------------------------------------------------------
+// #define NO_NATIVE_BOOL
+
+// ---------------------------------------------------------------------------
+//  Each compiler might support L"" prefixed constants. There are places
+//  where it is advantageous to use the L"" where it supported, to avoid
+//  unnecessary transcoding.
+//  If your compiler does not support it, don't define this.
+// ---------------------------------------------------------------------------
+#define XML_LSTRSUPPORT
+
+// ---------------------------------------------------------------------------
+//  Indicate that we support C++ namespace
+//  Do not define it if the compile cannot handle C++ namespace
+// ---------------------------------------------------------------------------
+#define XERCES_HAS_CPP_NAMESPACE
+
+// ---------------------------------------------------------------------------
+//  Define our version of the XML character
+// ---------------------------------------------------------------------------
+#if (__BORLANDC__ < 0x540)
+typedef unsigned short  XMLCh;
+#else
+typedef wchar_t  XMLCh;
+#endif (__BORLANDC__ < 0x540)
+
+// ---------------------------------------------------------------------------
+//  Define unsigned 16 and 32 bits integers
+// ---------------------------------------------------------------------------
+typedef unsigned short  XMLUInt16;
+typedef unsigned int    XMLUInt32;
+
+// ---------------------------------------------------------------------------
+//  Define signed 32 bits integers
+// ---------------------------------------------------------------------------
+typedef int             XMLInt32;
+
+// ---------------------------------------------------------------------------
+//  XMLSize_t is the unsigned integral type.
+// ---------------------------------------------------------------------------
+#if defined(_SIZE_T) && defined(SIZE_MAX) && defined(_SSIZE_T) && defined(SSIZE_MAX)
+    typedef size_t              XMLSize_t;
+    #define XML_SIZE_MAX        SIZE_MAX
+    typedef ssize_t             XMLSSize_t;
+    #define XML_SSIZE_MAX       SSIZE_MAX
+#else
+    typedef unsigned long       XMLSize_t;
+    #define XML_SIZE_MAX        ULONG_MAX
+    typedef long                XMLSSize_t;
+    #define XML_SSIZE_MAX       LONG_MAX
+#endif
+
+
+//WLH-2000-08-18 -- Add more compiler quirk cross-defines
+#define _itoa  std::itoa
+
+
+// ---------------------------------------------------------------------------
+//  Force on the Xerces debug token if it was on in the build environment
+// ---------------------------------------------------------------------------
+#ifdef _DEBUG
+#define XERCES_DEBUG
+#endif
+
+
+// ---------------------------------------------------------------------------
+//  The name of the DLL as built by the Borland projects. At this time, it
+//  does not use the versioning stuff.
+// ---------------------------------------------------------------------------
+const char* const Xerces_DLLName = "XercesLib";
+
+#endif //BORLANDCDEFS_HPP
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/XMLDOMMsg.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/XMLDOMMsg.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/XMLDOMMsg.hpp	(revision 2674)
@@ -0,0 +1,93 @@
+// This file is generated, don't edit it!!
+
+#if !defined(ERRHEADER_XMLDOMMsg)
+#define ERRHEADER_XMLDOMMsg
+
+#include <xercesc/framework/XMLErrorReporter.hpp>
+#include <xercesc/util/XercesDefs.hpp>
+#include <xercesc/dom/DOMError.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class XMLDOMMsg
+{
+public :
+    enum Codes
+    {
+        NoError                            = 0
+      , F_LowBounds                        = 1
+      , DOMEXCEPTION_ERRX                  = 2
+      , INDEX_SIZE_ERR                     = 3
+      , DOMSTRING_SIZE_ERR                 = 4
+      , HIERARCHY_REQUEST_ERR              = 5
+      , WRONG_DOCUMENT_ERR                 = 6
+      , INVALID_CHARACTER_ERR              = 7
+      , NO_DATA_ALLOWED_ERR                = 8
+      , NO_MODIFICATION_ALLOWED_ERR        = 9
+      , NOT_FOUND_ERR                      = 10
+      , NOT_SUPPORTED_ERR                  = 11
+      , INUSE_ATTRIBUTE_ERR                = 12
+      , INVALID_STATE_ERR                  = 13
+      , SYNTAX_ERR                         = 14
+      , INVALID_MODIFICATION_ERR           = 15
+      , NAMESPACE_ERR                      = 16
+      , INVALID_ACCESS_ERR                 = 17
+      , VALIDATION_ERR                     = 18
+      , DOMRANGEEXCEPTION_ERRX             = 19
+      , BAD_BOUNDARYPOINTS_ERR             = 20
+      , INVALID_NODE_TYPE_ERR              = 21
+      , Writer_NestedCDATA                 = 22
+      , Writer_NotRepresentChar            = 23
+      , Writer_NotRecognizedType           = 24
+      , F_HighBounds                       = 25
+      , W_LowBounds                        = 26
+      , W_HighBounds                       = 27
+      , E_LowBounds                        = 28
+      , E_HighBounds                       = 29
+    };
+
+    static bool isFatal(const XMLDOMMsg::Codes toCheck)
+    {
+        return ((toCheck >= F_LowBounds) && (toCheck <= F_HighBounds));
+    }
+
+    static bool isWarning(const XMLDOMMsg::Codes toCheck)
+    {
+        return ((toCheck >= W_LowBounds) && (toCheck <= W_HighBounds));
+    }
+
+    static bool isError(const XMLDOMMsg::Codes toCheck)
+    {
+        return ((toCheck >= E_LowBounds) && (toCheck <= E_HighBounds));
+    }
+
+    static XMLErrorReporter::ErrTypes errorType(const XMLDOMMsg::Codes toCheck)
+    {
+       if ((toCheck >= W_LowBounds) && (toCheck <= W_HighBounds))
+           return XMLErrorReporter::ErrType_Warning;
+       else if ((toCheck >= F_LowBounds) && (toCheck <= F_HighBounds))
+            return XMLErrorReporter::ErrType_Fatal;
+       else if ((toCheck >= E_LowBounds) && (toCheck <= E_HighBounds))
+            return XMLErrorReporter::ErrType_Error;
+       return XMLErrorReporter::ErrTypes_Unknown;
+    }
+    static DOMError::ErrorSeverity  DOMErrorType(const XMLDOMMsg::Codes toCheck)
+    {
+       if ((toCheck >= W_LowBounds) && (toCheck <= W_HighBounds))
+           return DOMError::DOM_SEVERITY_WARNING;
+       else if ((toCheck >= F_LowBounds) && (toCheck <= F_HighBounds))
+            return DOMError::DOM_SEVERITY_FATAL_ERROR;
+       else return DOMError::DOM_SEVERITY_ERROR;
+    }
+
+private:
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    XMLDOMMsg();
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
+
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/TransService.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/TransService.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/TransService.hpp	(revision 2674)
@@ -0,0 +1,489 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: TransService.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#ifndef TRANSSERVICE_HPP
+#define TRANSSERVICE_HPP
+
+#include <xercesc/util/XMemory.hpp>
+#include <xercesc/util/PlatformUtils.hpp>
+#include <xercesc/framework/XMLRecognizer.hpp>
+#include <xercesc/util/RefHashTableOf.hpp>
+#include <xercesc/util/RefVectorOf.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+// Forward references
+//class XMLPlatformUtils;
+class XMLLCPTranscoder;
+class XMLTranscoder;
+class ENameMap;
+
+
+//
+//  This class is an abstract base class which are used to abstract the
+//  transcoding services that Xerces uses. The parser's actual transcoding
+//  needs are small so it is desirable to allow different implementations
+//  to be provided.
+//
+//  The transcoding service has to provide a couple of required string
+//  and character operations, but its most important service is the creation
+//  of transcoder objects. There are two types of transcoders, which are
+//  discussed below in the XMLTranscoder class' description.
+//
+class XMLUTIL_EXPORT XMLTransService : public XMemory
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Class specific types
+    // -----------------------------------------------------------------------
+    enum Codes
+    {
+        Ok
+        , UnsupportedEncoding
+        , InternalFailure
+        , SupportFilesNotFound
+    };
+
+    struct TransRec
+    {
+        XMLCh       intCh;
+        XMLByte     extCh;
+    };
+
+
+    // -----------------------------------------------------------------------
+    //  Public constructors and destructor
+    // -----------------------------------------------------------------------
+    virtual ~XMLTransService();
+
+
+    // -----------------------------------------------------------------------
+    //  Non-virtual API
+    // -----------------------------------------------------------------------
+    XMLTranscoder* makeNewTranscoderFor
+    (
+        const   XMLCh* const            encodingName
+        ,       XMLTransService::Codes& resValue
+        , const unsigned int            blockSize
+        , MemoryManager* const          manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    XMLTranscoder* makeNewTranscoderFor
+    (
+        const   char* const             encodingName
+        ,       XMLTransService::Codes& resValue
+        , const unsigned int            blockSize
+        , MemoryManager* const          manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    XMLTranscoder* makeNewTranscoderFor
+    (
+        XMLRecognizer::Encodings        encodingEnum
+        ,       XMLTransService::Codes& resValue
+        , const unsigned int            blockSize
+        , MemoryManager* const          manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+
+    // -----------------------------------------------------------------------
+    //  The virtual transcoding service API
+    // -----------------------------------------------------------------------
+    virtual int compareIString
+    (
+        const   XMLCh* const    comp1
+        , const XMLCh* const    comp2
+    ) = 0;
+
+    virtual int compareNIString
+    (
+        const   XMLCh* const    comp1
+        , const XMLCh* const    comp2
+        , const unsigned int    maxChars
+    ) = 0;
+
+    virtual const XMLCh* getId() const = 0;
+
+    virtual bool isSpace(const XMLCh toCheck) const = 0;
+
+    virtual XMLLCPTranscoder* makeNewLCPTranscoder() = 0;
+
+    virtual bool supportsSrcOfs() const = 0;
+
+    virtual void upperCase(XMLCh* const toUpperCase) const = 0;
+    virtual void lowerCase(XMLCh* const toLowerCase) const = 0;
+
+	// -----------------------------------------------------------------------
+    //	Allow users to add their own encodings to the intrinsinc mapping
+	//	table
+	//	Usage:
+	//		XMLTransService::addEncoding (
+	//			gMyEncodingNameString
+    //			, new ENameMapFor<MyTransClassType>(gMyEncodingNameString)
+	//		);
+    // -----------------------------------------------------------------------
+	static void addEncoding(const XMLCh* const encoding, ENameMap* const ownMapping);
+
+
+protected :
+    // -----------------------------------------------------------------------
+    //  Hidden constructors
+    // -----------------------------------------------------------------------
+    XMLTransService();
+
+
+    // -----------------------------------------------------------------------
+    //  Protected virtual methods.
+    // -----------------------------------------------------------------------
+#ifdef OS390
+    friend class Uniconv390TransService;
+#endif
+    virtual XMLTranscoder* makeNewXMLTranscoder
+    (
+        const   XMLCh* const            encodingName
+        ,       XMLTransService::Codes& resValue
+        , const unsigned int            blockSize
+        , MemoryManager* const          manager
+    ) = 0;
+
+    // -----------------------------------------------------------------------
+    //  Protected init method for platform utils to call
+    // -----------------------------------------------------------------------
+    friend class XMLPlatformUtils;
+    virtual void initTransService();
+
+    // -----------------------------------------------------------------------
+    // protected static members
+    //  gMappings
+    //      This is a hash table of ENameMap objects. It is created and filled
+    //      in when the platform init calls our initTransService() method.
+    //
+    //  gMappingsRecognizer
+    //      This is an array of ENameMap objects, predefined for those
+    //      already recognized by XMLRecognizer::Encodings.
+    //
+
+    static RefHashTableOf<ENameMap>*    gMappings;
+    static RefVectorOf<ENameMap>*       gMappingsRecognizer;
+
+private :
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    XMLTransService(const XMLTransService&);
+    XMLTransService& operator=(const XMLTransService&);
+
+    // -----------------------------------------------------------------------
+    //  Hidden method to enable/disable strict IANA encoding check
+    //  Caller: XMLPlatformUtils
+    // -----------------------------------------------------------------------
+    void strictIANAEncoding(const bool newState);
+    bool isStrictIANAEncoding();
+    static void reinitMappings();
+    static void reinitMappingsRecognizer();
+
+};
+
+
+
+/**
+  * <code>DOMString</code> is the generic string class that stores all strings
+  * used in the DOM C++ API.
+  *
+  * Though this class supports most of the common string operations to manipulate
+  * strings, it is not meant to be a comphrehensive string class.
+  */
+
+/**
+  *   <code>XMLTranscoder</code> is for transcoding non-local code
+  *   page encodings, i.e.  named encodings. These are used internally
+  *   by the scanner to internalize raw XML into the internal Unicode
+  *   format, and by writer classes to convert that internal Unicode
+  *   format (which comes out of the parser) back out to a format that
+  *   the receiving client code wants to use.
+  */
+class XMLUTIL_EXPORT XMLTranscoder : public XMemory
+{
+public :
+
+	/**
+	 * This enum is used by the <code>transcodeTo()</code> method
+	 * to indicate how to react to unrepresentable characters. The
+	 * <code>transcodeFrom()</code> method always works the
+	 * same. It will consider any invalid data to be an error and
+	 * throw.
+	 */
+    enum UnRepOpts
+    {
+        UnRep_Throw		/**< Throw an exception */
+        , UnRep_RepChar		/**< Use the replacement char */
+    };
+
+
+	/** @name Destructor. */
+	//@{
+
+	 /**
+	  * Destructor for XMLTranscoder
+	  *
+	  */
+    virtual ~XMLTranscoder();
+	//@}
+
+
+
+    /** @name The virtual transcoding interface */
+    //@{
+
+    /** Converts from the encoding of the service to the internal XMLCh* encoding
+      *
+      * @param srcData the source buffer to be transcoded
+      * @param srcCount number of bytes in the source buffer
+      * @param toFill the destination buffer
+      * @param maxChars the max number of characters in the destination buffer
+      * @param bytesEaten after transcoding, this will hold the number of bytes
+      *    that were processed from the source buffer
+      * @param charSizes an array which must be at least as big as maxChars
+      *    into which will be inserted values that indicate how many
+      *    bytes from the input went into each XMLCh that was created
+      *    into toFill. Since many encodings use variable numbers of
+      *    byte per character, this provides a means to find out what
+      *    bytes in the input went into making a particular output
+      *    UTF-16 character.
+      * @return Returns the number of chars put into the target buffer
+      */
+
+
+    virtual unsigned int transcodeFrom
+    (
+        const   XMLByte* const          srcData
+        , const unsigned int            srcCount
+        ,       XMLCh* const            toFill
+        , const unsigned int            maxChars
+        ,       unsigned int&           bytesEaten
+        ,       unsigned char* const    charSizes
+    ) = 0;
+
+    /** Converts from the internal XMLCh* encoding to the encoding of the service
+      *
+      * @param srcData    the source buffer to be transcoded
+      * @param srcCount   number of characters in the source buffer
+      * @param toFill     the destination buffer
+      * @param maxBytes   the max number of bytes in the destination buffer
+      * @param charsEaten after transcoding, this will hold the number of chars
+      *    that were processed from the source buffer
+      * @param options    options to pass to the transcoder that explain how to
+      *    respond to an unrepresentable character
+      * @return Returns the number of chars put into the target buffer
+      */
+
+    virtual unsigned int transcodeTo
+    (
+        const   XMLCh* const    srcData
+        , const unsigned int    srcCount
+        ,       XMLByte* const  toFill
+        , const unsigned int    maxBytes
+        ,       unsigned int&   charsEaten
+        , const UnRepOpts       options
+    ) = 0;
+
+    /** Query whether the transcoder can handle a given character
+      *
+      * @param toCheck   the character code point to check
+      */
+
+    virtual bool canTranscodeTo
+    (
+        const   unsigned int    toCheck
+    )   const = 0;
+
+    //@}
+
+    /** @name Getter methods */
+    //@{
+
+    /** Get the internal block size
+     *
+       * @return The block size indicated in the constructor.
+       */
+    unsigned int getBlockSize() const;
+
+    /** Get the encoding name
+      *
+      * @return the name of the encoding that this
+      *    <code>XMLTranscoder</code> object is for
+      */
+    const XMLCh* getEncodingName() const;
+	//@}
+
+    /** @name Getter methods*/
+    //@{
+
+    /** Get the plugged-in memory manager
+      *
+      * This method returns the plugged-in memory manager user for dynamic
+      * memory allocation/deallocation.
+      *
+      * @return the plugged-in memory manager
+      */
+    MemoryManager* getMemoryManager() const;
+
+	//@}
+
+protected :
+    // -----------------------------------------------------------------------
+    //  Hidden constructors
+    // -----------------------------------------------------------------------
+    XMLTranscoder
+    (
+        const   XMLCh* const    encodingName
+        , const unsigned int    blockSize
+        , MemoryManager* const  manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+
+    // -----------------------------------------------------------------------
+    //  Protected helper methods
+    // -----------------------------------------------------------------------
+    // As the body of this function is commented out it could be removed.
+    // However, currently all calls to it are guarded by #if defined(XERCES_DEBUG)
+    // so will leave it for now.
+    void checkBlockSize(const unsigned int toCheck);
+
+
+private :
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    XMLTranscoder(const XMLTranscoder&);
+    XMLTranscoder& operator=(const XMLTranscoder&);
+
+    // -----------------------------------------------------------------------
+    //  Private data members
+    //
+    //  fBlockSize
+    //      This is the block size indicated in the constructor.
+    //
+    //  fEncodingName
+    //      This is the name of the encoding this encoder is for. All basic
+    //      XML transcoder's are for named encodings.
+    // -----------------------------------------------------------------------
+    unsigned int    fBlockSize;
+    XMLCh*          fEncodingName;
+    MemoryManager*  fMemoryManager;
+};
+
+
+//
+//  This class is a specialized transcoder that only transcodes between
+//  the internal XMLCh format and the local code page. It is specialized
+//  for the very common job of translating data from the client app's
+//  native code page to the internal format and vice versa.
+//
+class XMLUTIL_EXPORT XMLLCPTranscoder : public XMemory
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Public constructors and destructor
+    // -----------------------------------------------------------------------
+    virtual ~XMLLCPTranscoder();
+
+
+    // -----------------------------------------------------------------------
+    //  The virtual transcoder API
+    //
+    //  NOTE:   All these APIs don't include null terminator characters in
+    //          their parameters. So calcRequiredSize() returns the number
+    //          of actual chars, not including the null. maxBytes and maxChars
+    //          parameters refer to actual chars, not including the null so
+    //          its assumed that the buffer is physically one char or byte
+    //          larger.
+    // -----------------------------------------------------------------------
+    virtual unsigned int calcRequiredSize(const char* const srcText
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager) = 0;
+
+    virtual unsigned int calcRequiredSize(const XMLCh* const srcText
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager) = 0;
+
+    virtual char* transcode(const XMLCh* const toTranscode) = 0;
+    virtual char* transcode(const XMLCh* const toTranscode,
+                            MemoryManager* const manager) = 0;
+
+    virtual XMLCh* transcode(const char* const toTranscode) = 0;
+    virtual XMLCh* transcode(const char* const toTranscode,
+                             MemoryManager* const manager) = 0;
+
+    virtual bool transcode
+    (
+        const   char* const     toTranscode
+        ,       XMLCh* const    toFill
+        , const unsigned int    maxChars
+        , MemoryManager* const  manager = XMLPlatformUtils::fgMemoryManager
+    ) = 0;
+
+    virtual bool transcode
+    (
+        const   XMLCh* const    toTranscode
+        ,       char* const     toFill
+        , const unsigned int    maxBytes
+        , MemoryManager* const  manager = XMLPlatformUtils::fgMemoryManager
+    ) = 0;
+
+
+protected :
+    // -----------------------------------------------------------------------
+    //  Hidden constructors
+    // -----------------------------------------------------------------------
+    XMLLCPTranscoder();
+
+
+private :
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    XMLLCPTranscoder(const XMLLCPTranscoder&);
+    XMLLCPTranscoder& operator=(const XMLLCPTranscoder&);
+};
+
+
+// ---------------------------------------------------------------------------
+//  XMLTranscoder: Getter methods
+// ---------------------------------------------------------------------------
+inline MemoryManager* XMLTranscoder::getMemoryManager() const
+{
+    return fMemoryManager;
+}
+
+// ---------------------------------------------------------------------------
+//  XMLTranscoder: Protected helper methods
+// ---------------------------------------------------------------------------
+inline unsigned int XMLTranscoder::getBlockSize() const
+{
+    return fBlockSize;
+}
+
+inline const XMLCh* XMLTranscoder::getEncodingName() const
+{
+    return fEncodingName;
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/HashPtr.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/HashPtr.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/HashPtr.hpp	(revision 2674)
@@ -0,0 +1,51 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#if !defined(HASHPTR_HPP)
+#define HASHPTR_HPP
+
+#include <xercesc/util/HashBase.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+/**
+ * The <code>HashPtr</code> class inherits from <code>HashBase</code>.
+ * This is a generic hasher class designed to hash the pointers of the
+ * objects themselves.  Useful if you want to hash objects instead of
+ * strings so long as the objects don't move to a different memory location.
+ * See <code>HashBase</code> for more information.
+ */
+
+class XMLUTIL_EXPORT HashPtr : public HashBase
+{
+public:
+	HashPtr();
+	virtual ~HashPtr();
+	virtual unsigned int getHashVal(const void *const key, unsigned int mod
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+	virtual bool equals(const void *const key1, const void *const key2);
+private:
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    HashPtr(const HashPtr&);
+    HashPtr& operator=(const HashPtr&);
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/MsgLoaders/InMemory/XercesMessages_en_US.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/MsgLoaders/InMemory/XercesMessages_en_US.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/MsgLoaders/InMemory/XercesMessages_en_US.hpp	(revision 2674)
@@ -0,0 +1,1741 @@
+// ----------------------------------------------------------------
+//  This file was generated from the XML error message source.
+//  so do not edit this file directly!!
+// ----------------------------------------------------------------
+
+#include <xercesc/util/XercesDefs.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+const XMLCh gXMLErrArray[][128] = 
+{
+    { 0x0057,0x005F,0x0053,0x0074,0x0061,0x0072,0x0074,0x00 }
+  , { 0x004E,0x006F,0x0074,0x0061,0x0074,0x0069,0x006F,0x006E,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0068,0x0061,0x0073,0x0020,0x0061,0x006C,0x0072,0x0065,0x0061,0x0064,0x0079,0x0020,0x0062,0x0065,0x0065,0x006E,0x0020,0x0064,0x0065,0x0063,
+      0x006C,0x0061,0x0072,0x0065,0x0064,0x00 }
+  , { 0x0041,0x0074,0x0074,0x0072,0x0069,0x0062,0x0075,0x0074,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0068,0x0061,0x0073,0x0020,0x0061,0x006C,0x0072,0x0065,0x0061,0x0064,0x0079,0x0020,0x0062,0x0065,0x0065,0x006E,0x0020,0x0064,0x0065,
+      0x0063,0x006C,0x0061,0x0072,0x0065,0x0064,0x0020,0x0066,0x006F,0x0072,0x0020,0x0065,0x006C,0x0065,0x006D,0x0065,0x006E,0x0074,0x0020,0x0027,0x007B,0x0031,0x007D,0x0027,0x00 }
+  , { 0x0045,0x006E,0x0063,0x006F,0x0064,0x0069,0x006E,0x0067,0x0020,0x0028,0x007B,0x0030,0x007D,0x002C,0x0020,0x0066,0x0072,0x006F,0x006D,0x0020,0x0058,0x004D,0x004C,0x0044,0x0065,0x0063,0x006C,0x0020,0x006F,0x0072,0x0020,0x006D,0x0061,0x006E,0x0075,
+      0x0061,0x006C,0x006C,0x0079,0x0020,0x0073,0x0065,0x0074,0x0029,0x0020,0x0063,0x006F,0x006E,0x0074,0x0072,0x0061,0x0064,0x0069,0x0063,0x0074,0x0073,0x0020,0x0074,0x0068,0x0065,0x0020,0x0061,0x0075,0x0074,0x006F,0x002D,0x0073,0x0065,0x006E,0x0073,
+      0x0065,0x0064,0x0020,0x0065,0x006E,0x0063,0x006F,0x0064,0x0069,0x006E,0x0067,0x002C,0x0020,0x0069,0x0067,0x006E,0x006F,0x0072,0x0069,0x006E,0x0067,0x0020,0x0069,0x0074,0x00 }
+  , { 0x0045,0x006C,0x0065,0x006D,0x0065,0x006E,0x0074,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0077,0x0061,0x0073,0x0020,0x0072,0x0065,0x0066,0x0065,0x0072,0x0065,0x006E,0x0063,0x0065,0x0064,0x0020,0x0069,0x006E,0x0020,0x0061,0x0020,0x0063,
+      0x006F,0x006E,0x0074,0x0065,0x006E,0x0074,0x0020,0x006D,0x006F,0x0064,0x0065,0x006C,0x0020,0x0062,0x0075,0x0074,0x0020,0x006E,0x0065,0x0076,0x0065,0x0072,0x0020,0x0064,0x0065,0x0063,0x006C,0x0061,0x0072,0x0065,0x0064,0x00 }
+  , { 0x0045,0x006C,0x0065,0x006D,0x0065,0x006E,0x0074,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0077,0x0061,0x0073,0x0020,0x0072,0x0065,0x0066,0x0065,0x0072,0x0065,0x006E,0x0063,0x0065,0x0064,0x0020,0x0069,0x006E,0x0020,0x0061,0x006E,0x0020,
+      0x0061,0x0074,0x0074,0x006C,0x0069,0x0073,0x0074,0x0020,0x0062,0x0075,0x0074,0x0020,0x006E,0x0065,0x0076,0x0065,0x0072,0x0020,0x0064,0x0065,0x0063,0x006C,0x0061,0x0072,0x0065,0x0064,0x00 }
+  , { 0x0041,0x006E,0x0020,0x0065,0x0078,0x0063,0x0065,0x0070,0x0074,0x0069,0x006F,0x006E,0x0020,0x006F,0x0063,0x0063,0x0075,0x0072,0x0072,0x0065,0x0064,0x0021,0x0020,0x0054,0x0079,0x0070,0x0065,0x003A,0x007B,0x0030,0x007D,0x002C,0x0020,0x004D,0x0065,
+      0x0073,0x0073,0x0061,0x0067,0x0065,0x003A,0x007B,0x0031,0x007D,0x00 }
+  , { 0x0057,0x005F,0x0045,0x006E,0x0064,0x00 }
+  , { 0x0045,0x005F,0x0053,0x0074,0x0061,0x0072,0x0074,0x00 }
+  , { 0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0069,0x0073,0x0020,0x006E,0x006F,0x0074,0x0020,0x0061,0x006C,0x006C,0x006F,0x0077,0x0065,0x0064,0x0020,0x0066,0x006F,0x0072,0x0020,0x0074,0x0068,0x0065,0x0020,0x0063,0x006F,0x006E,0x0074,0x0065,0x006E,
+      0x0074,0x0020,0x006F,0x0066,0x0020,0x0061,0x0020,0x0073,0x0069,0x006D,0x0070,0x006C,0x0065,0x0054,0x0079,0x0070,0x0065,0x002E,0x0020,0x0020,0x004F,0x006E,0x006C,0x0079,0x0020,0x006C,0x0069,0x0073,0x0074,0x002C,0x0020,0x0075,0x006E,0x0069,0x006F,
+      0x006E,0x0020,0x0061,0x006E,0x0064,0x0020,0x0072,0x0065,0x0073,0x0074,0x0072,0x0069,0x0063,0x0074,0x0069,0x006F,0x006E,0x0020,0x0061,0x0072,0x0065,0x0020,0x0061,0x006C,0x006C,0x006F,0x0077,0x0065,0x0064,0x002E,0x00 }
+  , { 0x0045,0x0072,0x0072,0x006F,0x0072,0x003A,0x0020,0x0054,0x006F,0x0070,0x0020,0x006C,0x0065,0x0076,0x0065,0x006C,0x0020,0x0063,0x006F,0x006D,0x0070,0x006C,0x0065,0x0078,0x0054,0x0079,0x0070,0x0065,0x0020,0x0068,0x0061,0x0073,0x0020,0x006E,0x006F,
+      0x0020,0x006E,0x0061,0x006D,0x0065,0x0020,0x002D,0x0020,0x0064,0x0065,0x0063,0x006C,0x0061,0x0072,0x0061,0x0074,0x0069,0x006F,0x006E,0x0020,0x0069,0x0067,0x006E,0x006F,0x0072,0x0065,0x0064,0x00 }
+  , { 0x0047,0x006C,0x006F,0x0062,0x0061,0x006C,0x006C,0x0079,0x002D,0x0064,0x0065,0x0063,0x006C,0x0061,0x0072,0x0065,0x0064,0x0020,0x0061,0x0074,0x0074,0x0072,0x0069,0x0062,0x0075,0x0074,0x0065,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0068,0x0061,
+      0x0076,0x0065,0x0020,0x0061,0x0020,0x006E,0x0061,0x006D,0x0065,0x0020,0x002D,0x0020,0x0061,0x0074,0x0074,0x0072,0x0069,0x0062,0x0075,0x0074,0x0065,0x0020,0x0064,0x0065,0x0063,0x006C,0x0061,0x0072,0x0061,0x0074,0x0069,0x006F,0x006E,0x0020,0x0069,
+      0x0067,0x006E,0x006F,0x0072,0x0065,0x0064,0x00 }
+  , { 0x0041,0x0074,0x0074,0x0072,0x0069,0x0062,0x0075,0x0074,0x0065,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0068,0x0061,0x0076,0x0065,0x0020,0x0061,0x0020,0x006E,0x0061,0x006D,0x0065,0x0020,0x006F,0x0072,0x0020,0x0061,0x0020,0x0072,0x0065,0x0066,
+      0x0020,0x002D,0x0020,0x0061,0x0074,0x0074,0x0072,0x0069,0x0062,0x0075,0x0074,0x0065,0x0020,0x0064,0x0065,0x0063,0x006C,0x0061,0x0072,0x0061,0x0074,0x0069,0x006F,0x006E,0x0020,0x0069,0x0067,0x006E,0x006F,0x0072,0x0065,0x0064,0x00 }
+  , { 0x0047,0x006C,0x006F,0x0062,0x0061,0x006C,0x006C,0x0079,0x002D,0x0064,0x0065,0x0063,0x006C,0x0061,0x0072,0x0065,0x0064,0x0020,0x0065,0x006C,0x0065,0x006D,0x0065,0x006E,0x0074,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0068,0x0061,0x0076,0x0065,
+      0x0020,0x0061,0x0020,0x006E,0x0061,0x006D,0x0065,0x0020,0x002D,0x0020,0x0065,0x006C,0x0065,0x006D,0x0065,0x006E,0x0074,0x0020,0x0064,0x0065,0x0063,0x006C,0x0061,0x0072,0x0061,0x0074,0x0069,0x006F,0x006E,0x0020,0x0069,0x0067,0x006E,0x006F,0x0072,
+      0x0065,0x0064,0x00 }
+  , { 0x0045,0x006C,0x0065,0x006D,0x0065,0x006E,0x0074,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0068,0x0061,0x0076,0x0065,0x0020,0x0061,0x0020,0x006E,0x0061,0x006D,0x0065,0x0020,0x006F,0x0072,0x0020,0x0061,0x0020,0x0072,0x0065,0x0066,0x0020,0x0061,
+      0x0074,0x0074,0x0072,0x0069,0x0062,0x0075,0x0074,0x0065,0x0020,0x002D,0x0020,0x0065,0x006C,0x0065,0x006D,0x0065,0x006E,0x0074,0x0020,0x0069,0x0067,0x006E,0x006F,0x0072,0x0065,0x0064,0x00 }
+  , { 0x003C,0x0067,0x0072,0x006F,0x0075,0x0070,0x003E,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0068,0x0061,0x0076,0x0065,0x0020,0x0061,0x0020,0x006E,0x0061,0x006D,0x0065,0x0020,0x006F,0x0072,0x0020,0x0061,0x0020,0x0072,0x0065,0x0066,0x0020,0x0061,
+      0x0074,0x0074,0x0072,0x0069,0x0062,0x0075,0x0074,0x0065,0x0020,0x002D,0x0020,0x0064,0x0065,0x0063,0x006C,0x0061,0x0072,0x0061,0x0074,0x0069,0x006F,0x006E,0x0020,0x0069,0x0067,0x006E,0x006F,0x0072,0x0065,0x0064,0x00 }
+  , { 0x003C,0x0061,0x0074,0x0074,0x0072,0x0069,0x0062,0x0075,0x0074,0x0065,0x0047,0x0072,0x006F,0x0075,0x0070,0x003E,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0068,0x0061,0x0076,0x0065,0x0020,0x0061,0x0020,0x006E,0x0061,0x006D,0x0065,0x0020,0x006F,
+      0x0072,0x0020,0x0061,0x0020,0x0072,0x0065,0x0066,0x0020,0x0061,0x0074,0x0074,0x0072,0x0069,0x0062,0x0075,0x0074,0x0065,0x0020,0x002D,0x0020,0x0064,0x0065,0x0063,0x006C,0x0061,0x0072,0x0061,0x0074,0x0069,0x006F,0x006E,0x0020,0x0069,0x0067,0x006E,
+      0x006F,0x0072,0x0065,0x0064,0x00 }
+  , { 0x0041,0x006E,0x006F,0x006E,0x0079,0x006D,0x006F,0x0075,0x0073,0x0020,0x0063,0x006F,0x006D,0x0070,0x006C,0x0065,0x0078,0x0054,0x0079,0x0070,0x0065,0x0020,0x0069,0x006E,0x0020,0x0065,0x006C,0x0065,0x006D,0x0065,0x006E,0x0074,0x0020,0x007B,0x0030,
+      0x007D,0x0020,0x0068,0x0061,0x0073,0x0020,0x0061,0x0020,0x006E,0x0061,0x006D,0x0065,0x0020,0x0061,0x0074,0x0074,0x0072,0x0069,0x0062,0x0075,0x0074,0x0065,0x00 }
+  , { 0x0041,0x006E,0x006F,0x006E,0x0079,0x006D,0x006F,0x0075,0x0073,0x0020,0x0073,0x0069,0x006D,0x0070,0x006C,0x0065,0x0054,0x0079,0x0070,0x0065,0x0020,0x0069,0x006E,0x0020,0x0065,0x006C,0x0065,0x006D,0x0065,0x006E,0x0074,0x0020,0x007B,0x0030,0x007D,
+      0x0020,0x0068,0x0061,0x0073,0x0020,0x0061,0x0020,0x006E,0x0061,0x006D,0x0065,0x0020,0x0061,0x0074,0x0074,0x0072,0x0069,0x0062,0x0075,0x0074,0x0065,0x00 }
+  , { 0x0054,0x0068,0x0065,0x0020,0x0063,0x006F,0x006E,0x0074,0x0065,0x006E,0x0074,0x0020,0x006F,0x0066,0x0020,0x0061,0x006E,0x0020,0x0065,0x006C,0x0065,0x006D,0x0065,0x006E,0x0074,0x0020,0x0069,0x006E,0x0066,0x006F,0x0072,0x006D,0x0061,0x0074,0x0069,
+      0x006F,0x006E,0x0020,0x0069,0x0074,0x0065,0x006D,0x0020,0x0064,0x006F,0x0065,0x0073,0x0020,0x006E,0x006F,0x0074,0x0020,0x006D,0x0061,0x0074,0x0063,0x0068,0x0020,0x0028,0x0061,0x006E,0x006E,0x006F,0x0074,0x0061,0x0074,0x0069,0x006F,0x006E,0x003F,
+      0x002C,0x0020,0x0028,0x0073,0x0069,0x006D,0x0070,0x006C,0x0065,0x0054,0x0079,0x0070,0x0065,0x0020,0x007C,0x0020,0x0063,0x006F,0x006D,0x0070,0x006C,0x0065,0x0078,0x0054,0x0079,0x0070,0x0065,0x0029,0x003F,0x002C,0x0020,0x0028,0x0075,0x006E,0x0069,
+      0x0071,0x0075,0x0065,0x0020,0x007C,0x0020,0x006B,0x0065,0x0079,0x0020,0x007C,0x0020,0x006B,0x0065,0x0079,0x0072,0x0065,0x0066,0x0029,0x002A,0x0029,0x00 }
+  , { 0x0055,0x006E,0x0074,0x0079,0x0070,0x0065,0x0064,0x0020,0x0065,0x006C,0x0065,0x006D,0x0065,0x006E,0x0074,0x003A,0x0020,0x007B,0x0030,0x007D,0x00 }
+  , { 0x0045,0x0072,0x0072,0x006F,0x0072,0x0020,0x0069,0x006E,0x0020,0x0063,0x006F,0x006E,0x0074,0x0065,0x006E,0x0074,0x0020,0x006F,0x0066,0x0020,0x0073,0x0069,0x006D,0x0070,0x006C,0x0065,0x0054,0x0079,0x0070,0x0065,0x002C,0x0020,0x0027,0x007B,0x0030,
+      0x007D,0x0027,0x0020,0x0069,0x0073,0x0020,0x0069,0x006E,0x0076,0x0061,0x006C,0x0069,0x0064,0x002E,0x0020,0x0020,0x004F,0x006E,0x006C,0x0079,0x0020,0x0061,0x006C,0x006C,0x006F,0x0077,0x0065,0x0064,0x0020,0x006F,0x006E,0x0065,0x0020,0x006F,0x0066,
+      0x0020,0x0028,0x0072,0x0065,0x0073,0x0074,0x0072,0x0069,0x0063,0x0074,0x0069,0x006F,0x006E,0x0020,0x007C,0x0020,0x006C,0x0069,0x0073,0x0074,0x0020,0x007C,0x0020,0x0075,0x006E,0x0069,0x006F,0x006E,0x0029,0x002E,0x00 }
+  , { 0x0045,0x0078,0x0070,0x0065,0x0063,0x0074,0x0065,0x0064,0x0020,0x0073,0x0069,0x006D,0x0070,0x006C,0x0065,0x0054,0x0079,0x0070,0x0065,0x0020,0x0069,0x006E,0x0020,0x0027,0x006C,0x0069,0x0073,0x0074,0x0027,0x0020,0x0064,0x0065,0x0063,0x006C,0x0061,
+      0x0072,0x0061,0x0074,0x0069,0x006F,0x006E,0x0020,0x0066,0x006F,0x0072,0x0020,0x007B,0x0030,0x007D,0x00 }
+  , { 0x004C,0x0069,0x0073,0x0074,0x0020,0x007C,0x0020,0x0055,0x006E,0x0069,0x006F,0x006E,0x0020,0x007C,0x0020,0x0052,0x0065,0x0073,0x0074,0x0072,0x0069,0x0063,0x0074,0x0069,0x006F,0x006E,0x0020,0x0063,0x006F,0x006E,0x0074,0x0065,0x006E,0x0074,0x0020,
+      0x0069,0x0073,0x0020,0x0069,0x006E,0x0076,0x0061,0x006C,0x0069,0x0064,0x0020,0x0066,0x006F,0x0072,0x0020,0x0074,0x0079,0x0070,0x0065,0x0020,0x007B,0x0030,0x007D,0x00 }
+  , { 0x0045,0x0072,0x0072,0x006F,0x0072,0x0020,0x0069,0x006E,0x0020,0x0063,0x006F,0x006E,0x0074,0x0065,0x006E,0x0074,0x0020,0x006F,0x0066,0x0020,0x0064,0x0065,0x0072,0x0069,0x0076,0x0061,0x0074,0x0069,0x006F,0x006E,0x0020,0x0062,0x0079,0x0020,0x006C,
+      0x0069,0x0073,0x0074,0x0020,0x0066,0x006F,0x0072,0x0020,0x007B,0x0030,0x007D,0x00 }
+  , { 0x0045,0x0078,0x0070,0x0065,0x0063,0x0074,0x0065,0x0064,0x0020,0x0073,0x0069,0x006D,0x0070,0x006C,0x0065,0x0054,0x0079,0x0070,0x0065,0x0020,0x0069,0x006E,0x0020,0x0027,0x0072,0x0065,0x0073,0x0074,0x0072,0x0069,0x0063,0x0074,0x0069,0x006F,0x006E,
+      0x0027,0x0020,0x0064,0x0065,0x0063,0x006C,0x0061,0x0072,0x0061,0x0074,0x0069,0x006F,0x006E,0x0020,0x0066,0x006F,0x0072,0x0020,0x007B,0x0030,0x007D,0x00 }
+  , { 0x0046,0x0061,0x0063,0x0065,0x0074,0x0020,0x007B,0x0030,0x007D,0x0020,0x0061,0x006C,0x0072,0x0065,0x0061,0x0064,0x0079,0x0020,0x0064,0x0065,0x0066,0x0069,0x006E,0x0065,0x0064,0x0020,0x002D,0x0020,0x0069,0x0067,0x006E,0x006F,0x0072,0x0069,0x006E,
+      0x0067,0x00 }
+  , { 0x0045,0x0078,0x0070,0x0065,0x0063,0x0074,0x0065,0x0064,0x0020,0x0073,0x0069,0x006D,0x0070,0x006C,0x0065,0x0054,0x0079,0x0070,0x0065,0x0020,0x0069,0x006E,0x0020,0x0027,0x0075,0x006E,0x0069,0x006F,0x006E,0x0027,0x0020,0x0064,0x0065,0x0063,0x006C,
+      0x0061,0x0072,0x0061,0x0074,0x0069,0x006F,0x006E,0x0020,0x0066,0x006F,0x0072,0x0020,0x007B,0x0030,0x007D,0x00 }
+  , { 0x0053,0x0069,0x006D,0x0070,0x006C,0x0065,0x0054,0x0079,0x0070,0x0065,0x0020,0x0063,0x006F,0x006E,0x0074,0x0065,0x006E,0x0074,0x0020,0x0069,0x0073,0x0020,0x0065,0x006D,0x0070,0x0074,0x0079,0x00 }
+  , { 0x0054,0x0068,0x0065,0x0020,0x0063,0x006F,0x006E,0x0074,0x0065,0x006E,0x0074,0x0020,0x006F,0x0066,0x0020,0x0074,0x0068,0x0065,0x0020,0x0073,0x0069,0x006D,0x0070,0x006C,0x0065,0x0043,0x006F,0x006E,0x0074,0x0065,0x006E,0x0074,0x0020,0x0065,0x006C,
+      0x0065,0x006D,0x0065,0x006E,0x0074,0x0020,0x0069,0x0073,0x0020,0x0069,0x006E,0x0076,0x0061,0x006C,0x0069,0x0064,0x002E,0x0020,0x0054,0x0068,0x0065,0x0020,0x0063,0x006F,0x006E,0x0074,0x0065,0x006E,0x0074,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,
+      0x0062,0x0065,0x0020,0x0052,0x0045,0x0053,0x0054,0x0052,0x0049,0x0043,0x0054,0x0049,0x004F,0x004E,0x0020,0x006F,0x0072,0x0020,0x0045,0x0058,0x0054,0x0045,0x004E,0x0053,0x0049,0x004F,0x004E,0x00 }
+  , { 0x0054,0x0068,0x0065,0x0020,0x0042,0x0041,0x0053,0x0045,0x0020,0x0061,0x0074,0x0074,0x0072,0x0069,0x0062,0x0075,0x0074,0x0065,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0062,0x0065,0x0020,0x0073,0x0070,0x0065,0x0063,0x0069,0x0066,0x0069,0x0065,
+      0x0064,0x0020,0x0066,0x006F,0x0072,0x0020,0x0074,0x0068,0x0065,0x0020,0x0052,0x0045,0x0053,0x0054,0x0052,0x0049,0x0043,0x0054,0x0049,0x004F,0x004E,0x0020,0x006F,0x0072,0x0020,0x0045,0x0058,0x0054,0x0045,0x004E,0x0053,0x0049,0x004F,0x004E,0x0020,
+      0x0065,0x006C,0x0065,0x006D,0x0065,0x006E,0x0074,0x00 }
+  , { 0x0054,0x0068,0x0065,0x0020,0x0063,0x006F,0x006E,0x0074,0x0065,0x006E,0x0074,0x0020,0x006F,0x0066,0x0020,0x0074,0x0068,0x0065,0x0020,0x0063,0x006F,0x006D,0x0070,0x006C,0x0065,0x0078,0x0043,0x006F,0x006E,0x0074,0x0065,0x006E,0x0074,0x0020,0x0065,
+      0x006C,0x0065,0x006D,0x0065,0x006E,0x0074,0x0020,0x0069,0x0073,0x0020,0x0069,0x006E,0x0076,0x0061,0x006C,0x0069,0x0064,0x002E,0x0020,0x0054,0x0068,0x0065,0x0020,0x0063,0x006F,0x006E,0x0074,0x0065,0x006E,0x0074,0x0020,0x006D,0x0075,0x0073,0x0074,
+      0x0020,0x0062,0x0065,0x0020,0x0052,0x0045,0x0053,0x0054,0x0052,0x0049,0x0043,0x0054,0x0049,0x004F,0x004E,0x0020,0x006F,0x0072,0x0020,0x0045,0x0058,0x0054,0x0045,0x004E,0x0053,0x0049,0x004F,0x004E,0x00 }
+  , { 0x0045,0x0072,0x0072,0x006F,0x0072,0x0020,0x0069,0x006E,0x0020,0x0063,0x006F,0x006E,0x0074,0x0065,0x006E,0x0074,0x0020,0x006F,0x0066,0x0020,0x003C,0x0073,0x0063,0x0068,0x0065,0x006D,0x0061,0x003E,0x0020,0x0065,0x006C,0x0065,0x006D,0x0065,0x006E,
+      0x0074,0x0020,0x0069,0x006E,0x0066,0x006F,0x0072,0x006D,0x0061,0x0074,0x0069,0x006F,0x006E,0x0020,0x0069,0x0074,0x0065,0x006D,0x00 }
+  , { 0x0043,0x006F,0x006E,0x0074,0x0065,0x006E,0x0074,0x0020,0x0028,0x0061,0x006E,0x006E,0x006F,0x0074,0x0061,0x0074,0x0069,0x006F,0x006E,0x003F,0x002C,0x002E,0x002E,0x0029,0x0020,0x0069,0x0073,0x0020,0x0069,0x006E,0x0063,0x006F,0x0072,0x0072,0x0065,
+      0x0063,0x0074,0x0020,0x0066,0x006F,0x0072,0x0020,0x0074,0x0079,0x0070,0x0065,0x0020,0x007B,0x0030,0x007D,0x00 }
+  , { 0x0055,0x006E,0x006B,0x006E,0x006F,0x0077,0x006E,0x0020,0x0073,0x0069,0x006D,0x0070,0x006C,0x0065,0x0054,0x0079,0x0070,0x0065,0x003A,0x0020,0x007B,0x0030,0x007D,0x00 }
+  , { 0x0055,0x006E,0x006B,0x006E,0x006F,0x0077,0x006E,0x0020,0x0063,0x006F,0x006D,0x0070,0x006C,0x0065,0x0078,0x0054,0x0079,0x0070,0x0065,0x003A,0x0020,0x007B,0x0030,0x007D,0x00 }
+  , { 0x0050,0x0072,0x0065,0x0066,0x0069,0x0078,0x003A,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0063,0x0061,0x006E,0x0020,0x006E,0x006F,0x0074,0x0020,0x0062,0x0065,0x0020,0x0072,0x0065,0x0073,0x006F,0x006C,0x0076,0x0065,0x0064,0x0020,0x0074,
+      0x006F,0x0020,0x0061,0x0020,0x0055,0x0052,0x0049,0x00 }
+  , { 0x0052,0x0065,0x0066,0x0020,0x0065,0x006C,0x0065,0x006D,0x0065,0x006E,0x0074,0x0020,0x007B,0x0030,0x007D,0x0020,0x006E,0x006F,0x0074,0x0020,0x0066,0x006F,0x0075,0x006E,0x0064,0x0020,0x0069,0x006E,0x0020,0x0074,0x0068,0x0065,0x0020,0x0053,0x0063,
+      0x0068,0x0065,0x006D,0x0061,0x00 }
+  , { 0x0054,0x0079,0x0070,0x0065,0x0020,0x006E,0x006F,0x0074,0x0020,0x0066,0x006F,0x0075,0x006E,0x0064,0x0020,0x0069,0x006E,0x0020,0x007B,0x0030,0x007D,0x003A,0x007B,0x0031,0x007D,0x00 }
+  , { 0x0043,0x006F,0x0075,0x006C,0x0064,0x0020,0x006E,0x006F,0x0074,0x0020,0x0066,0x0069,0x006E,0x0064,0x0020,0x0074,0x006F,0x0070,0x0020,0x006C,0x0065,0x0076,0x0065,0x006C,0x0020,0x0061,0x0074,0x0074,0x0072,0x0069,0x0062,0x0075,0x0074,0x0065,0x003A,
+      0x0020,0x007B,0x0030,0x007D,0x00 }
+  , { 0x0049,0x006E,0x0076,0x0061,0x006C,0x0069,0x0064,0x0020,0x0063,0x0068,0x0069,0x006C,0x0064,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0069,0x006E,0x0020,0x0074,0x0068,0x0065,0x0020,0x0063,0x006F,0x006D,0x0070,0x006C,0x0065,0x0078,0x0020,
+      0x0074,0x0079,0x0070,0x0065,0x00 }
+  , { 0x0042,0x0061,0x0073,0x0065,0x0020,0x0074,0x0079,0x0070,0x0065,0x0020,0x0063,0x006F,0x0075,0x006C,0x0064,0x0020,0x006E,0x006F,0x0074,0x0020,0x0062,0x0065,0x0020,0x0066,0x006F,0x0075,0x006E,0x0064,0x003A,0x0020,0x007B,0x0030,0x007D,0x00 }
+  , { 0x004E,0x006F,0x0020,0x0061,0x0074,0x0074,0x0072,0x0069,0x0062,0x0075,0x0074,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0077,0x0061,0x0073,0x0020,0x0064,0x0065,0x0066,0x0069,0x006E,0x0065,0x0064,0x0020,0x0069,0x006E,0x0020,0x0073,
+      0x0063,0x0068,0x0065,0x006D,0x0061,0x003A,0x0020,0x007B,0x0031,0x007D,0x00 }
+  , { 0x0045,0x0072,0x0072,0x006F,0x0072,0x0020,0x0063,0x0072,0x0065,0x0061,0x0074,0x0069,0x006E,0x0067,0x0020,0x0064,0x0061,0x0074,0x0061,0x0074,0x0079,0x0070,0x0065,0x0020,0x0076,0x0061,0x006C,0x0069,0x0064,0x0061,0x0074,0x006F,0x0072,0x003A,0x0020,
+      0x007B,0x0030,0x007D,0x00 }
+  , { 0x0049,0x006E,0x0076,0x0061,0x006C,0x0069,0x0064,0x0020,0x0063,0x0068,0x0069,0x006C,0x0064,0x0020,0x0066,0x006F,0x006C,0x006C,0x006F,0x0077,0x0069,0x006E,0x0067,0x0020,0x0074,0x0068,0x0065,0x0020,0x0073,0x0069,0x006D,0x0070,0x006C,0x0065,0x0043,
+      0x006F,0x006E,0x0074,0x0065,0x006E,0x0074,0x0020,0x0063,0x0068,0x0069,0x006C,0x0064,0x0020,0x0069,0x006E,0x0020,0x0074,0x0068,0x0065,0x0020,0x0063,0x006F,0x006D,0x0070,0x006C,0x0065,0x0078,0x0054,0x0079,0x0070,0x0065,0x00 }
+  , { 0x0049,0x006E,0x0076,0x0061,0x006C,0x0069,0x0064,0x0020,0x0063,0x0068,0x0069,0x006C,0x0064,0x0020,0x0066,0x006F,0x006C,0x006C,0x006F,0x0077,0x0069,0x006E,0x0067,0x0020,0x0074,0x0068,0x0065,0x0020,0x0063,0x006F,0x006D,0x0070,0x006C,0x0065,0x0078,
+      0x0043,0x006F,0x006E,0x0074,0x0065,0x006E,0x0074,0x0020,0x0063,0x0068,0x0069,0x006C,0x0064,0x0020,0x0069,0x006E,0x0020,0x0074,0x0068,0x0065,0x0020,0x0063,0x006F,0x006D,0x0070,0x006C,0x0065,0x0078,0x0054,0x0079,0x0070,0x0065,0x00 }
+  , { 0x0054,0x0068,0x0065,0x0020,0x0027,0x0062,0x006C,0x006F,0x0063,0x006B,0x0027,0x0020,0x0061,0x0074,0x0074,0x0072,0x0069,0x0062,0x0075,0x0074,0x0065,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0073,0x0020,0x006F,0x0066,0x0020,0x0061,0x0020,0x0063,
+      0x006F,0x006D,0x0070,0x006C,0x0065,0x0078,0x0054,0x0079,0x0070,0x0065,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0062,0x0065,0x0020,0x0023,0x0061,0x006C,0x006C,0x0020,0x007C,0x0020,0x006C,0x0069,0x0073,0x0074,0x0028,0x0072,0x0065,0x0073,0x0074,
+      0x0072,0x0069,0x0063,0x0074,0x0069,0x006F,0x006E,0x002C,0x0065,0x0078,0x0074,0x0065,0x006E,0x0073,0x0069,0x006F,0x006E,0x0029,0x003B,0x0020,0x007B,0x0030,0x007D,0x0020,0x0077,0x0061,0x0073,0x0020,0x0066,0x006F,0x0075,0x006E,0x0064,0x00 }
+  , { 0x0054,0x0068,0x0065,0x0020,0x0027,0x0066,0x0069,0x006E,0x0061,0x006C,0x0027,0x0020,0x0061,0x0074,0x0074,0x0072,0x0069,0x0062,0x0075,0x0074,0x0065,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0073,0x0020,0x006F,0x0066,0x0020,0x0061,0x0020,0x0063,
+      0x006F,0x006D,0x0070,0x006C,0x0065,0x0078,0x0054,0x0079,0x0070,0x0065,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0062,0x0065,0x0020,0x0023,0x0061,0x006C,0x006C,0x0020,0x007C,0x0020,0x006C,0x0069,0x0073,0x0074,0x0028,0x0072,0x0065,0x0073,0x0074,
+      0x0072,0x0069,0x0063,0x0074,0x0069,0x006F,0x006E,0x002C,0x0065,0x0078,0x0074,0x0065,0x006E,0x0073,0x0069,0x006F,0x006E,0x0029,0x003B,0x0020,0x007B,0x0030,0x007D,0x0020,0x0077,0x0061,0x0073,0x0020,0x0066,0x006F,0x0075,0x006E,0x0064,0x00 }
+  , { 0x0041,0x0074,0x0074,0x0072,0x0069,0x0062,0x0075,0x0074,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x003D,0x007B,0x0031,0x007D,0x0027,0x0020,0x0063,0x0061,0x006E,0x006E,0x006F,0x0074,0x0020,0x0068,0x0061,0x0076,0x0065,0x0020,0x0062,0x006F,0x0074,
+      0x0068,0x0020,0x0027,0x0066,0x0069,0x0078,0x0065,0x0064,0x0027,0x0020,0x0061,0x006E,0x0064,0x0020,0x0027,0x0064,0x0065,0x0066,0x0061,0x0075,0x006C,0x0074,0x0027,0x0020,0x0070,0x0072,0x0065,0x0073,0x0065,0x006E,0x0074,0x0020,0x0061,0x0074,0x0020,
+      0x0074,0x0068,0x0065,0x0020,0x0073,0x0061,0x006D,0x0065,0x0020,0x0074,0x0069,0x006D,0x0065,0x002E,0x00 }
+  , { 0x0046,0x006F,0x0072,0x0020,0x0061,0x0074,0x0074,0x0072,0x0069,0x0062,0x0075,0x0074,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x003D,0x007B,0x0031,0x007D,0x0027,0x0020,0x0064,0x0065,0x0066,0x0061,0x0075,0x006C,0x0074,0x0020,0x0061,0x006E,0x0064,
+      0x0020,0x0075,0x0073,0x0065,0x0020,0x0061,0x0072,0x0065,0x0020,0x0062,0x006F,0x0074,0x0068,0x0020,0x0070,0x0072,0x0065,0x0073,0x0065,0x006E,0x0074,0x0020,0x0073,0x006F,0x0020,0x0075,0x0073,0x0065,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0068,
+      0x0061,0x0076,0x0065,0x0020,0x0074,0x0068,0x0065,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x006F,0x0070,0x0074,0x0069,0x006F,0x006E,0x0061,0x006C,0x0027,0x002E,0x00 }
+  , { 0x004C,0x006F,0x0063,0x0061,0x006C,0x0020,0x0061,0x0074,0x0074,0x0072,0x0069,0x0062,0x0075,0x0074,0x0065,0x003A,0x007B,0x0030,0x007D,0x0020,0x0068,0x0061,0x0073,0x0020,0x0061,0x006C,0x0073,0x006F,0x0020,0x0061,0x0020,0x0072,0x0065,0x0066,0x0020,
+      0x0064,0x0065,0x0066,0x0069,0x006E,0x0065,0x0064,0x0020,0x002D,0x0020,0x006E,0x0061,0x006D,0x0065,0x0020,0x0069,0x0067,0x006E,0x006F,0x0072,0x0065,0x0064,0x00 }
+  , { 0x0047,0x006C,0x006F,0x0062,0x0061,0x006C,0x0020,0x0061,0x0074,0x0074,0x0072,0x0069,0x0062,0x0075,0x0074,0x0065,0x003A,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0063,0x0061,0x006E,0x006E,0x006F,0x0074,0x0020,0x0068,0x0061,0x0076,0x0065,0x0020,
+      0x0061,0x0020,0x0072,0x0065,0x0066,0x0020,0x0064,0x0065,0x0066,0x0069,0x006E,0x0065,0x0064,0x00 }
+  , { 0x0045,0x0072,0x0072,0x006F,0x0072,0x003A,0x0020,0x0041,0x0074,0x0074,0x0072,0x0069,0x0062,0x0075,0x0074,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0064,0x0065,0x0063,0x006C,0x0061,0x0072,0x0065,0x0064,0x0020,0x006D,0x006F,0x0072,
+      0x0065,0x0020,0x0074,0x0068,0x0061,0x006E,0x0020,0x006F,0x006E,0x0063,0x0065,0x0020,0x0069,0x006E,0x0020,0x0074,0x0068,0x0065,0x0020,0x0073,0x0061,0x006D,0x0065,0x0020,0x0073,0x0063,0x006F,0x0070,0x0065,0x002D,0x0020,0x0069,0x0067,0x006E,0x006F,
+      0x0072,0x0069,0x006E,0x0067,0x00 }
+  , { 0x0041,0x0074,0x0074,0x0072,0x0069,0x0062,0x0075,0x0074,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x006D,0x0061,0x0079,0x0020,0x006E,0x006F,0x0074,0x0020,0x0063,0x006F,0x006E,0x0074,0x0061,0x0069,0x006E,0x0020,0x0062,0x006F,0x0074,
+      0x0068,0x0020,0x0061,0x0020,0x0074,0x0079,0x0070,0x0065,0x0020,0x0061,0x006E,0x0064,0x0020,0x0061,0x0020,0x0073,0x0069,0x006D,0x0070,0x006C,0x0065,0x0054,0x0079,0x0070,0x0065,0x0020,0x0064,0x0065,0x0063,0x006C,0x0061,0x0072,0x0061,0x0074,0x0069,
+      0x006F,0x006E,0x002E,0x00 }
+  , { 0x0053,0x0069,0x006D,0x0070,0x006C,0x0065,0x0054,0x0079,0x0070,0x0065,0x0020,0x0028,0x007B,0x0030,0x007D,0x003A,0x007B,0x0031,0x007D,0x0029,0x0020,0x0066,0x006F,0x0072,0x0020,0x0061,0x0074,0x0074,0x0072,0x0069,0x0062,0x0075,0x0074,0x0065,0x003A,
+      0x0020,0x007B,0x0032,0x007D,0x0020,0x006E,0x006F,0x0074,0x0020,0x0066,0x006F,0x0075,0x006E,0x0064,0x00 }
+  , { 0x0045,0x006C,0x0065,0x006D,0x0065,0x006E,0x0074,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0063,0x0061,0x006E,0x006E,0x006F,0x0074,0x0020,0x0068,0x0061,0x0076,0x0065,0x0020,0x0062,0x006F,0x0074,0x0068,0x0020,0x0027,0x0066,0x0069,0x0078,
+      0x0065,0x0064,0x0027,0x0020,0x0061,0x006E,0x0064,0x0020,0x0027,0x0064,0x0065,0x0066,0x0061,0x0075,0x006C,0x0074,0x0027,0x0020,0x0070,0x0072,0x0065,0x0073,0x0065,0x006E,0x0074,0x0020,0x0061,0x0074,0x0020,0x0074,0x0068,0x0065,0x0020,0x0073,0x0061,
+      0x006D,0x0065,0x0020,0x0074,0x0069,0x006D,0x0065,0x002E,0x00 }
+  , { 0x007B,0x0030,0x007D,0x003A,0x0027,0x007B,0x0031,0x007D,0x0027,0x0020,0x0068,0x0061,0x0073,0x0020,0x0061,0x006C,0x0073,0x006F,0x0020,0x0061,0x0020,0x0072,0x0065,0x0066,0x0020,0x0064,0x0065,0x0066,0x0069,0x006E,0x0065,0x0064,0x0020,0x002D,0x0020,
+      0x006E,0x0061,0x006D,0x0065,0x0020,0x0069,0x0067,0x006E,0x006F,0x0072,0x0065,0x0064,0x00 }
+  , { 0x0072,0x0065,0x0066,0x0020,0x0063,0x0061,0x006E,0x006E,0x006F,0x0074,0x0020,0x0061,0x0070,0x0070,0x0065,0x0061,0x0072,0x0020,0x0077,0x0069,0x0074,0x0068,0x0020,0x0061,0x006E,0x0079,0x0020,0x006F,0x0066,0x0020,0x0074,0x0079,0x0070,0x0065,0x002C,
+      0x0020,0x0061,0x0062,0x0073,0x0074,0x0072,0x0061,0x0063,0x0074,0x002C,0x0020,0x0062,0x006C,0x006F,0x0063,0x006B,0x002C,0x0020,0x0066,0x0069,0x006E,0x0061,0x006C,0x002C,0x0020,0x006E,0x0069,0x006C,0x006C,0x0061,0x0062,0x006C,0x0065,0x002C,0x0020,
+      0x0064,0x0065,0x0066,0x0061,0x0075,0x006C,0x0074,0x0020,0x006F,0x0072,0x0020,0x0066,0x0069,0x0078,0x0065,0x0064,0x00 }
+  , { 0x0049,0x006E,0x0076,0x0061,0x006C,0x0069,0x0064,0x0020,0x007B,0x0030,0x007D,0x0020,0x006E,0x0061,0x006D,0x0065,0x003A,0x0027,0x007B,0x0031,0x007D,0x0027,0x0020,0x002D,0x0020,0x0064,0x0065,0x0063,0x006C,0x0061,0x0072,0x0061,0x0074,0x0069,0x006F,
+      0x006E,0x0020,0x0069,0x0067,0x006E,0x006F,0x0072,0x0065,0x0064,0x00 }
+  , { 0x0047,0x006C,0x006F,0x0062,0x0061,0x006C,0x006C,0x0079,0x002D,0x0064,0x0065,0x0063,0x006C,0x0061,0x0072,0x0065,0x0064,0x0020,0x0065,0x006C,0x0065,0x006D,0x0065,0x006E,0x0074,0x0020,0x007B,0x0030,0x007D,0x0020,0x0063,0x0061,0x006E,0x006E,0x006F,
+      0x0074,0x0020,0x0068,0x0061,0x0076,0x0065,0x0020,0x0061,0x0020,0x0072,0x0065,0x0066,0x0020,0x0061,0x0074,0x0074,0x0072,0x0069,0x0062,0x0075,0x0074,0x0065,0x0020,0x002D,0x0020,0x0072,0x0065,0x0066,0x0020,0x0069,0x0067,0x006E,0x006F,0x0072,0x0065,
+      0x0064,0x00 }
+  , { 0x0045,0x006C,0x0065,0x006D,0x0065,0x006E,0x0074,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0063,0x0061,0x006E,0x006E,0x006F,0x0074,0x0020,0x0068,0x0061,0x0076,0x0065,0x0020,0x0062,0x006F,0x0074,0x0068,0x0020,0x0061,0x0020,0x0074,0x0079,
+      0x0070,0x0065,0x0020,0x0061,0x0074,0x0074,0x0072,0x0069,0x0062,0x0075,0x0074,0x0065,0x0020,0x0061,0x006E,0x0064,0x0020,0x0061,0x0020,0x0073,0x0069,0x006D,0x0070,0x006C,0x0065,0x0054,0x0079,0x0070,0x0065,0x002F,0x0063,0x006F,0x006D,0x0070,0x006C,
+      0x0065,0x0078,0x0054,0x0079,0x0070,0x0065,0x0020,0x0074,0x0079,0x0070,0x0065,0x0020,0x0063,0x0068,0x0069,0x006C,0x0064,0x00 }
+  , { 0x0045,0x006C,0x0065,0x006D,0x0065,0x006E,0x0074,0x0020,0x007B,0x0030,0x007D,0x0020,0x0068,0x0061,0x0073,0x0020,0x0061,0x0020,0x0066,0x0069,0x0078,0x0065,0x0064,0x0020,0x006F,0x0072,0x0020,0x0064,0x0065,0x0066,0x0061,0x0075,0x006C,0x0074,0x0020,
+      0x0076,0x0061,0x006C,0x0075,0x0065,0x0020,0x0061,0x006E,0x0064,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0068,0x0061,0x0076,0x0065,0x0020,0x0061,0x0020,0x006D,0x0069,0x0078,0x0065,0x0064,0x0020,0x0073,0x0069,0x006D,0x0070,0x006C,0x0065,0x0020,
+      0x006F,0x0072,0x0020,0x0073,0x0069,0x006D,0x0070,0x006C,0x0065,0x0020,0x0063,0x006F,0x006E,0x0074,0x0065,0x006E,0x0074,0x0020,0x006D,0x006F,0x0064,0x0065,0x006C,0x00 }
+  , { 0x0054,0x0068,0x0065,0x0020,0x0073,0x0069,0x006D,0x0070,0x006C,0x0065,0x0054,0x0079,0x0070,0x0065,0x0020,0x007B,0x0030,0x007D,0x0020,0x0074,0x0068,0x0061,0x0074,0x0020,0x007B,0x0031,0x007D,0x0020,0x0075,0x0073,0x0065,0x0073,0x0020,0x0068,0x0061,
+      0x0073,0x0020,0x0061,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0020,0x006F,0x0066,0x0020,0x0027,0x0066,0x0069,0x006E,0x0061,0x006C,0x0027,0x0020,0x0077,0x0068,0x0069,0x0063,0x0068,0x0020,0x0064,0x006F,0x0065,0x0073,0x0020,0x006E,0x006F,0x0074,
+      0x0020,0x0070,0x0065,0x0072,0x006D,0x0069,0x0074,0x0020,0x0065,0x0078,0x0074,0x0065,0x006E,0x0073,0x0069,0x006F,0x006E,0x00 }
+  , { 0x0054,0x0068,0x0065,0x0020,0x0074,0x0079,0x0070,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0073,0x0070,0x0065,0x0063,0x0069,0x0066,0x0069,0x0065,0x0064,0x0020,0x0061,0x0073,0x0020,0x0074,0x0068,0x0065,0x0020,0x0062,0x0061,0x0073,
+      0x0065,0x0020,0x0069,0x006E,0x0020,0x0074,0x0068,0x0065,0x0020,0x0073,0x0069,0x006D,0x0070,0x006C,0x0065,0x0043,0x006F,0x006E,0x0074,0x0065,0x006E,0x0074,0x0020,0x0065,0x006C,0x0065,0x006D,0x0065,0x006E,0x0074,0x0020,0x006D,0x0075,0x0073,0x0074,
+      0x0020,0x006E,0x006F,0x0074,0x0020,0x0068,0x0061,0x0076,0x0065,0x0020,0x0063,0x006F,0x006D,0x0070,0x006C,0x0065,0x0078,0x0043,0x006F,0x006E,0x0074,0x0065,0x006E,0x0074,0x00 }
+  , { 0x0054,0x0068,0x0065,0x0020,0x0074,0x0079,0x0070,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0069,0x0073,0x0020,0x0061,0x0020,0x0073,0x0069,0x006D,0x0070,0x006C,0x0065,0x0020,0x0074,0x0079,0x0070,0x0065,0x002E,0x0020,0x0049,0x0074,
+      0x0020,0x0063,0x0061,0x006E,0x006E,0x006F,0x0074,0x0020,0x0062,0x0065,0x0020,0x0075,0x0073,0x0065,0x0064,0x0020,0x0069,0x006E,0x0020,0x0061,0x0020,0x0064,0x0065,0x0072,0x0069,0x0076,0x0061,0x0074,0x0069,0x006F,0x006E,0x0020,0x0062,0x0079,0x0020,
+      0x0052,0x0045,0x0053,0x0054,0x0052,0x0049,0x0043,0x0054,0x0049,0x004F,0x004E,0x0020,0x0066,0x006F,0x0072,0x0020,0x0061,0x0020,0x0063,0x006F,0x006D,0x0070,0x006C,0x0065,0x0078,0x0054,0x0079,0x0070,0x0065,0x00 }
+  , { 0x0049,0x006E,0x0076,0x0061,0x006C,0x0069,0x0064,0x0020,0x0063,0x0068,0x0069,0x006C,0x0064,0x0020,0x0066,0x006F,0x006C,0x006C,0x006F,0x0077,0x0069,0x006E,0x0067,0x0020,0x0074,0x0068,0x0065,0x0020,0x0052,0x0045,0x0053,0x0054,0x0052,0x0049,0x0043,
+      0x0054,0x0049,0x004F,0x004E,0x0020,0x006F,0x0072,0x0020,0x0045,0x0058,0x0054,0x0045,0x004E,0x0053,0x0049,0x004F,0x004E,0x0020,0x0065,0x006C,0x0065,0x006D,0x0065,0x006E,0x0074,0x0020,0x0069,0x006E,0x0020,0x0074,0x0068,0x0065,0x0020,0x0073,0x0069,
+      0x006D,0x0070,0x006C,0x0065,0x0043,0x006F,0x006E,0x0074,0x0065,0x006E,0x0074,0x0020,0x0064,0x0065,0x0066,0x0069,0x006E,0x0069,0x0074,0x0069,0x006F,0x006E,0x00 }
+  , { 0x0049,0x006E,0x0076,0x0061,0x006C,0x0069,0x0064,0x0020,0x0063,0x0068,0x0069,0x006C,0x0064,0x0020,0x0066,0x006F,0x006C,0x006C,0x006F,0x0077,0x0069,0x006E,0x0067,0x0020,0x0074,0x0068,0x0065,0x0020,0x0052,0x0045,0x0053,0x0054,0x0052,0x0049,0x0043,
+      0x0054,0x0049,0x004F,0x004E,0x0020,0x006F,0x0072,0x0020,0x0045,0x0058,0x0054,0x0045,0x004E,0x0053,0x0049,0x004F,0x004E,0x0020,0x0065,0x006C,0x0065,0x006D,0x0065,0x006E,0x0074,0x0020,0x0069,0x006E,0x0020,0x0074,0x0068,0x0065,0x0020,0x0063,0x006F,
+      0x006D,0x0070,0x006C,0x0065,0x0078,0x0043,0x006F,0x006E,0x0074,0x0065,0x006E,0x0074,0x0020,0x0064,0x0065,0x0066,0x0069,0x006E,0x0069,0x0074,0x0069,0x006F,0x006E,0x00 }
+  , { 0x0041,0x006E,0x006E,0x006F,0x0074,0x0061,0x0074,0x0069,0x006F,0x006E,0x0020,0x0063,0x0061,0x006E,0x0020,0x006F,0x006E,0x006C,0x0079,0x0020,0x0061,0x0070,0x0070,0x0065,0x0061,0x0072,0x0020,0x006F,0x006E,0x0063,0x0065,0x003A,0x0020,0x0074,0x0079,
+      0x0070,0x0065,0x0020,0x007B,0x0030,0x007D,0x00 }
+  , { 0x0054,0x0068,0x0065,0x0020,0x0062,0x0061,0x0073,0x0065,0x0020,0x0074,0x0079,0x0070,0x0065,0x0020,0x007B,0x0030,0x007D,0x0020,0x0064,0x006F,0x0065,0x0073,0x0020,0x006E,0x006F,0x0074,0x0020,0x0061,0x006C,0x006C,0x006F,0x0077,0x0020,0x0069,0x0074,
+      0x0073,0x0065,0x006C,0x0066,0x0020,0x0074,0x006F,0x0020,0x0062,0x0065,0x0020,0x0075,0x0073,0x0065,0x0064,0x0020,0x0061,0x0073,0x0020,0x0074,0x0068,0x0065,0x0020,0x0062,0x0061,0x0073,0x0065,0x0020,0x0066,0x006F,0x0072,0x0020,0x0061,0x0020,0x0072,
+      0x0065,0x0073,0x0074,0x0072,0x0069,0x0063,0x0074,0x0069,0x006F,0x006E,0x0020,0x0061,0x006E,0x0064,0x002F,0x006F,0x0072,0x0020,0x0061,0x0073,0x0020,0x0061,0x0020,0x0074,0x0079,0x0070,0x0065,0x0020,0x0069,0x006E,0x0020,0x0061,0x0020,0x006C,0x0069,
+      0x0073,0x0074,0x0020,0x0061,0x006E,0x0064,0x002F,0x006F,0x0072,0x0020,0x0075,0x006E,0x0069,0x006F,0x006E,0x00 }
+  , { 0x0054,0x0068,0x0065,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x0073,0x0075,0x0062,0x0073,0x0074,0x0069,0x0074,0x0075,0x0074,0x0069,0x006F,0x006E,0x0027,0x0020,0x0061,0x006C,0x0072,0x0065,0x0061,0x0064,0x0079,0x0020,0x0069,0x006E,
+      0x0020,0x0074,0x0068,0x0065,0x0020,0x006C,0x0069,0x0073,0x0074,0x00 }
+  , { 0x0054,0x0068,0x0065,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x0075,0x006E,0x0069,0x006F,0x006E,0x0027,0x0020,0x0069,0x0073,0x0020,0x0061,0x006C,0x0072,0x0065,0x0061,0x0064,0x0079,0x0020,0x0069,0x006E,0x0020,0x0074,0x0068,0x0065,
+      0x0020,0x006C,0x0069,0x0073,0x0074,0x00 }
+  , { 0x0054,0x0068,0x0065,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x0065,0x0078,0x0074,0x0065,0x006E,0x0073,0x0069,0x006F,0x006E,0x0027,0x0020,0x0069,0x0073,0x0020,0x0061,0x006C,0x0072,0x0065,0x0061,0x0064,0x0079,0x0020,0x0069,0x006E,
+      0x0020,0x0074,0x0068,0x0065,0x0020,0x006C,0x0069,0x0073,0x0074,0x00 }
+  , { 0x0054,0x0068,0x0065,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x006C,0x0069,0x0073,0x0074,0x0027,0x0020,0x0069,0x0073,0x0020,0x0061,0x006C,0x0072,0x0065,0x0061,0x0064,0x0079,0x0020,0x0069,0x006E,0x0020,0x0074,0x0068,0x0065,0x0020,
+      0x006C,0x0069,0x0073,0x0074,0x00 }
+  , { 0x0054,0x0068,0x0065,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x0072,0x0065,0x0073,0x0074,0x0072,0x0069,0x0063,0x0074,0x0069,0x006F,0x006E,0x0027,0x0020,0x0069,0x0073,0x0020,0x0061,0x006C,0x0072,0x0065,0x0061,0x0064,0x0079,0x0020,
+      0x0069,0x006E,0x0020,0x0074,0x0068,0x0065,0x0020,0x006C,0x0069,0x0073,0x0074,0x00 }
+  , { 0x0049,0x006E,0x0076,0x0061,0x006C,0x0069,0x0064,0x0020,0x0062,0x006C,0x006F,0x0063,0x006B,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x003A,0x0020,0x007B,0x0030,0x007D,0x00 }
+  , { 0x0049,0x006E,0x0076,0x0061,0x006C,0x0069,0x0064,0x0020,0x0066,0x0069,0x006E,0x0061,0x006C,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x003A,0x0020,0x007B,0x0030,0x007D,0x00 }
+  , { 0x0045,0x006C,0x0065,0x006D,0x0065,0x006E,0x0074,0x0020,0x007B,0x0030,0x007D,0x0020,0x0063,0x0061,0x006E,0x006E,0x006F,0x0074,0x0020,0x0062,0x0065,0x0020,0x0070,0x0061,0x0072,0x0074,0x0020,0x006F,0x0066,0x0020,0x0074,0x0068,0x0065,0x0020,0x0073,
+      0x0075,0x0062,0x0073,0x0074,0x0069,0x0074,0x0075,0x0074,0x0069,0x006F,0x006E,0x0020,0x0067,0x0072,0x006F,0x0075,0x0070,0x0020,0x0068,0x0065,0x0061,0x0064,0x0065,0x0064,0x0020,0x0062,0x0079,0x0020,0x007B,0x0031,0x007D,0x00 }
+  , { 0x0045,0x006C,0x0065,0x006D,0x0065,0x006E,0x0074,0x0020,0x007B,0x0030,0x007D,0x0020,0x0068,0x0061,0x0073,0x0020,0x0061,0x0020,0x0074,0x0079,0x0070,0x0065,0x0020,0x0077,0x0068,0x0069,0x0063,0x0068,0x0020,0x0064,0x006F,0x0065,0x0073,0x0020,0x006E,
+      0x006F,0x0074,0x0020,0x0064,0x0065,0x0072,0x0069,0x0076,0x0065,0x0020,0x0066,0x0072,0x006F,0x006D,0x0020,0x0074,0x0068,0x0065,0x0020,0x0074,0x0079,0x0070,0x0065,0x0020,0x006F,0x0066,0x0020,0x0074,0x0068,0x0065,0x0020,0x0065,0x006C,0x0065,0x006D,
+      0x0065,0x006E,0x0074,0x0020,0x0061,0x0074,0x0020,0x0074,0x0068,0x0065,0x0020,0x0068,0x0065,0x0061,0x0064,0x0020,0x006F,0x0066,0x0020,0x0074,0x0068,0x0065,0x0020,0x0073,0x0075,0x0062,0x0073,0x0074,0x0069,0x0074,0x0075,0x0074,0x0069,0x006F,0x006E,
+      0x0020,0x0067,0x0072,0x006F,0x0075,0x0070,0x00 }
+  , { 0x0044,0x0075,0x0070,0x006C,0x0069,0x0063,0x0061,0x0074,0x0065,0x0020,0x0065,0x006C,0x0065,0x006D,0x0065,0x006E,0x0074,0x0020,0x0064,0x0065,0x0063,0x006C,0x0020,0x0069,0x006E,0x0020,0x0074,0x0068,0x0065,0x0020,0x0073,0x0061,0x006D,0x0065,0x0020,
+      0x0073,0x0063,0x006F,0x0070,0x0065,0x003A,0x0020,0x007B,0x0030,0x007D,0x00 }
+  , { 0x0054,0x0068,0x0065,0x0020,0x0027,0x0062,0x006C,0x006F,0x0063,0x006B,0x0027,0x0020,0x0061,0x0074,0x0074,0x0072,0x0069,0x0062,0x0075,0x0074,0x0065,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0073,0x0020,0x006F,0x0066,0x0020,0x0061,0x006E,0x0020,
+      0x0065,0x006C,0x0065,0x006D,0x0065,0x006E,0x0074,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0062,0x0065,0x0020,0x0023,0x0061,0x006C,0x006C,0x0020,0x007C,0x0020,0x006C,0x0069,0x0073,0x0074,0x0028,0x0073,0x0075,0x0062,0x0073,0x0074,0x0069,0x0074,
+      0x0075,0x0074,0x0069,0x006F,0x006E,0x002C,0x0072,0x0065,0x0073,0x0074,0x0072,0x0069,0x0063,0x0074,0x0069,0x006F,0x006E,0x002C,0x0065,0x0078,0x0074,0x0065,0x006E,0x0073,0x0069,0x006F,0x006E,0x0029,0x003B,0x0020,0x007B,0x0030,0x007D,0x0020,0x0077,
+      0x0061,0x0073,0x0020,0x0066,0x006F,0x0075,0x006E,0x0064,0x00 }
+  , { 0x0054,0x0068,0x0065,0x0020,0x0027,0x0066,0x0069,0x006E,0x0061,0x006C,0x0027,0x0020,0x0061,0x0074,0x0074,0x0072,0x0069,0x0062,0x0075,0x0074,0x0065,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0073,0x0020,0x006F,0x0066,0x0020,0x0061,0x006E,0x0020,
+      0x0065,0x006C,0x0065,0x006D,0x0065,0x006E,0x0074,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0062,0x0065,0x0020,0x0023,0x0061,0x006C,0x006C,0x0020,0x007C,0x0020,0x006C,0x0069,0x0073,0x0074,0x0028,0x0072,0x0065,0x0073,0x0074,0x0072,0x0069,0x0063,
+      0x0074,0x0069,0x006F,0x006E,0x002C,0x0065,0x0078,0x0074,0x0065,0x006E,0x0073,0x0069,0x006F,0x006E,0x0029,0x003B,0x0020,0x007B,0x0030,0x007D,0x0020,0x0077,0x0061,0x0073,0x0020,0x0066,0x006F,0x0075,0x006E,0x0064,0x00 }
+  , { 0x0049,0x006E,0x0076,0x0061,0x006C,0x0069,0x0064,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0066,0x006F,0x0072,0x0020,0x0061,0x0074,0x0074,0x0072,0x0069,0x0062,0x0075,0x0074,0x0065,0x003A,0x0020,
+      0x0027,0x007B,0x0031,0x007D,0x0027,0x002E,0x00 }
+  , { 0x0052,0x0065,0x0066,0x0020,0x0069,0x0073,0x0020,0x0070,0x0072,0x0065,0x0073,0x0065,0x006E,0x0074,0x002C,0x0020,0x0061,0x006E,0x0064,0x0020,0x0073,0x0069,0x006D,0x0070,0x006C,0x0065,0x0054,0x0079,0x0070,0x0065,0x002F,0x0066,0x006F,0x0072,0x006D,
+      0x002F,0x0074,0x0079,0x0070,0x0065,0x0020,0x0066,0x006F,0x0075,0x006E,0x0064,0x0020,0x0066,0x006F,0x0072,0x0020,0x0061,0x0074,0x0074,0x0072,0x0069,0x0062,0x0075,0x0074,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x003D,0x007B,0x0031,0x007D,0x0027,
+      0x00 }
+  , { 0x0044,0x0075,0x0070,0x006C,0x0069,0x0063,0x0061,0x0074,0x0065,0x0020,0x0072,0x0065,0x0066,0x0065,0x0072,0x0065,0x006E,0x0063,0x0065,0x0020,0x0061,0x0074,0x0074,0x0072,0x0069,0x0062,0x0075,0x0074,0x0065,0x0020,0x007B,0x0030,0x007D,0x003A,0x007B,
+      0x0031,0x007D,0x0020,0x0069,0x006E,0x0020,0x0063,0x006F,0x006D,0x0070,0x006C,0x0065,0x0078,0x0054,0x0079,0x0070,0x0065,0x00 }
+  , { 0x0044,0x0065,0x0072,0x0069,0x0076,0x0061,0x0074,0x0069,0x006F,0x006E,0x0020,0x0062,0x0079,0x0020,0x0072,0x0065,0x0073,0x0074,0x0072,0x0069,0x0063,0x0074,0x0069,0x006F,0x006E,0x0020,0x0069,0x0073,0x0020,0x0066,0x006F,0x0072,0x0062,0x0069,0x0064,
+      0x0064,0x0065,0x006E,0x0020,0x0062,0x0079,0x0020,0x0065,0x0069,0x0074,0x0068,0x0065,0x0072,0x0020,0x0074,0x0068,0x0065,0x0020,0x0062,0x0061,0x0073,0x0065,0x0020,0x0074,0x0079,0x0070,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x006F,
+      0x0072,0x0020,0x0074,0x0068,0x0065,0x0020,0x0073,0x0063,0x0068,0x0065,0x006D,0x0061,0x00 }
+  , { 0x0044,0x0065,0x0072,0x0069,0x0076,0x0061,0x0074,0x0069,0x006F,0x006E,0x0020,0x0062,0x0079,0x0020,0x0065,0x0078,0x0074,0x0065,0x006E,0x0073,0x0069,0x006F,0x006E,0x0020,0x0069,0x0073,0x0020,0x0066,0x006F,0x0072,0x0062,0x0069,0x0064,0x0064,0x0065,
+      0x006E,0x0020,0x0062,0x0079,0x0020,0x0065,0x0069,0x0074,0x0068,0x0065,0x0072,0x0020,0x0074,0x0068,0x0065,0x0020,0x0062,0x0061,0x0073,0x0065,0x0020,0x0074,0x0079,0x0070,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x006F,0x0072,0x0020,
+      0x0074,0x0068,0x0065,0x0020,0x0073,0x0063,0x0068,0x0065,0x006D,0x0061,0x00 }
+  , { 0x0054,0x0068,0x0065,0x0020,0x0062,0x0061,0x0073,0x0065,0x0020,0x0074,0x0079,0x0070,0x0065,0x0020,0x0073,0x0070,0x0065,0x0063,0x0069,0x0066,0x0069,0x0065,0x0064,0x0020,0x0069,0x006E,0x0020,0x0074,0x0068,0x0065,0x0020,0x0063,0x006F,0x006D,0x0070,
+      0x006C,0x0065,0x0078,0x0043,0x006F,0x006E,0x0074,0x0065,0x006E,0x0074,0x0020,0x0065,0x006C,0x0065,0x006D,0x0065,0x006E,0x0074,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0062,0x0065,0x0020,0x0061,0x0020,0x0063,0x006F,0x006D,0x0070,0x006C,0x0065,
+      0x0078,0x0054,0x0079,0x0070,0x0065,0x00 }
+  , { 0x0049,0x006D,0x0070,0x006F,0x0072,0x0074,0x0065,0x0064,0x0020,0x0073,0x0063,0x0068,0x0065,0x006D,0x0061,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0068,0x0061,0x0073,0x0020,0x0061,0x0020,0x0064,0x0069,0x0066,0x0066,0x0065,0x0072,0x0065,
+      0x006E,0x0074,0x0020,0x0074,0x0061,0x0072,0x0067,0x0065,0x0074,0x004E,0x0061,0x006D,0x0065,0x0053,0x0070,0x0061,0x0063,0x0065,0x0020,0x0027,0x007B,0x0031,0x007D,0x0027,0x0020,0x0066,0x0072,0x006F,0x006D,0x0020,0x0077,0x0068,0x0061,0x0074,0x0027,
+      0x0073,0x0020,0x0064,0x0065,0x0063,0x006C,0x0061,0x0072,0x0065,0x0064,0x0020,0x0027,0x007B,0x0032,0x007D,0x0027,0x00 }
+  , { 0x0043,0x006F,0x0075,0x006C,0x0064,0x0020,0x006E,0x006F,0x0074,0x0020,0x0067,0x0065,0x0074,0x0020,0x0074,0x0068,0x0065,0x0020,0x0064,0x006F,0x0063,0x0020,0x0072,0x006F,0x006F,0x0074,0x0020,0x0066,0x006F,0x0072,0x0020,0x0069,0x006D,0x0070,0x006F,
+      0x0072,0x0074,0x0065,0x0064,0x0020,0x0053,0x0063,0x0068,0x0065,0x006D,0x0061,0x003A,0x0020,0x007B,0x0030,0x007D,0x00 }
+  , { 0x0041,0x0020,0x0073,0x0063,0x0068,0x0065,0x006D,0x0061,0x004C,0x006F,0x0063,0x0061,0x0074,0x0069,0x006F,0x006E,0x0020,0x0061,0x0074,0x0074,0x0072,0x0069,0x0062,0x0075,0x0074,0x0065,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0062,0x0065,0x0020,
+      0x0073,0x0070,0x0065,0x0063,0x0069,0x0066,0x0069,0x0065,0x0064,0x0020,0x006F,0x006E,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0065,0x006C,0x0065,0x006D,0x0065,0x006E,0x0074,0x002E,0x00 }
+  , { 0x0049,0x006E,0x0063,0x006C,0x0075,0x0064,0x0065,0x0064,0x0020,0x0073,0x0063,0x0068,0x0065,0x006D,0x0061,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0068,0x0061,0x0073,0x0020,0x0061,0x0020,0x0064,0x0069,0x0066,0x0066,0x0065,0x0072,0x0065,
+      0x006E,0x0074,0x0020,0x0074,0x0061,0x0072,0x0067,0x0065,0x0074,0x004E,0x0061,0x006D,0x0065,0x0053,0x0070,0x0061,0x0063,0x0065,0x0020,0x0027,0x007B,0x0031,0x007D,0x0027,0x00 }
+  , { 0x0041,0x0074,0x0020,0x006D,0x006F,0x0073,0x0074,0x0020,0x006F,0x006E,0x0065,0x0020,0x003C,0x0061,0x006E,0x006E,0x006F,0x0074,0x0061,0x0074,0x0069,0x006F,0x006E,0x003E,0x0020,0x0065,0x006C,0x0065,0x006D,0x0065,0x006E,0x0074,0x0020,0x0069,0x0073,
+      0x0020,0x0065,0x0078,0x0070,0x0065,0x0063,0x0074,0x0065,0x0064,0x0020,0x0069,0x006E,0x0020,0x0074,0x0068,0x0065,0x0020,0x0063,0x006F,0x006E,0x0074,0x0065,0x006E,0x0074,0x002E,0x00 }
+  , { 0x0054,0x0068,0x0065,0x0020,0x0063,0x006F,0x006E,0x0074,0x0065,0x006E,0x0074,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0062,0x0065,0x0020,0x0028,0x0061,0x006E,0x006E,0x006F,0x0074,0x0061,0x0074,0x0069,0x006F,0x006E,0x003F,0x002C,0x0020,0x0073,
+      0x0069,0x006D,0x0070,0x006C,0x0065,0x0054,0x0079,0x0070,0x0065,0x003F,0x0029,0x0020,0x0066,0x006F,0x0072,0x0020,0x0061,0x0074,0x0074,0x0072,0x0069,0x0062,0x0075,0x0074,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x003D,0x007B,0x0031,0x007D,0x0027,
+      0x00 }
+  , { 0x0041,0x0074,0x0074,0x0072,0x0069,0x0062,0x0075,0x0074,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0061,0x0070,0x0070,0x0065,0x0061,0x0072,0x0020,0x0069,0x006E,0x0020,0x007B,0x0031,0x007D,0x0020,
+      0x007B,0x0032,0x007D,0x0020,0x0064,0x0065,0x0063,0x006C,0x0061,0x0072,0x0061,0x0074,0x0069,0x006F,0x006E,0x0073,0x00 }
+  , { 0x0041,0x0074,0x0074,0x0072,0x0069,0x0062,0x0075,0x0074,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0063,0x0061,0x006E,0x006E,0x006F,0x0074,0x0020,0x0061,0x0070,0x0070,0x0065,0x0061,0x0072,0x0020,0x0069,0x006E,0x0020,0x007B,0x0031,
+      0x007D,0x0020,0x007B,0x0032,0x007D,0x0020,0x0064,0x0065,0x0063,0x006C,0x0061,0x0072,0x0061,0x0074,0x0069,0x006F,0x006E,0x0073,0x00 }
+  , { 0x0056,0x0061,0x006C,0x0075,0x0065,0x0020,0x006F,0x0066,0x0020,0x006D,0x0069,0x006E,0x004F,0x0063,0x0063,0x0075,0x0072,0x0073,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x006E,0x006F,0x0074,0x0020,0x0062,
+      0x0065,0x0020,0x0067,0x0072,0x0065,0x0061,0x0074,0x0065,0x0072,0x0020,0x0074,0x0068,0x0061,0x006E,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0020,0x006F,0x0066,0x0020,0x006D,0x0061,0x0078,0x004F,0x0063,0x0063,0x0075,0x0072,0x0073,0x0020,0x0027,
+      0x007B,0x0031,0x007D,0x0027,0x00 }
+  , { 0x0027,0x0061,0x006E,0x0079,0x0041,0x0074,0x0074,0x0072,0x0069,0x0062,0x0075,0x0074,0x0065,0x0027,0x0020,0x0065,0x006C,0x0065,0x006D,0x0065,0x006E,0x0074,0x0073,0x0020,0x0063,0x0061,0x006E,0x0020,0x0063,0x006F,0x006E,0x0074,0x0061,0x0069,0x006E,
+      0x0020,0x0061,0x0074,0x0020,0x006D,0x006F,0x0073,0x0074,0x0020,0x006F,0x006E,0x0065,0x0020,0x0027,0x0061,0x006E,0x006E,0x006F,0x0074,0x0061,0x0074,0x0069,0x006F,0x006E,0x0027,0x0020,0x0065,0x006C,0x0065,0x006D,0x0065,0x006E,0x0074,0x0020,0x0069,
+      0x006E,0x0020,0x0074,0x0068,0x0065,0x0069,0x0072,0x0020,0x0063,0x0068,0x0069,0x006C,0x0064,0x0072,0x0065,0x006E,0x00 }
+  , { 0x0047,0x006C,0x006F,0x0062,0x0061,0x006C,0x0020,0x003C,0x007B,0x0030,0x007D,0x003E,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0068,0x0061,0x0076,0x0065,0x0020,0x0061,0x0020,0x006E,0x0061,0x006D,0x0065,0x0020,0x002D,0x0020,0x0064,0x0065,0x0063,
+      0x006C,0x0061,0x0072,0x0061,0x0074,0x0069,0x006F,0x006E,0x0020,0x0069,0x0067,0x006E,0x006F,0x0072,0x0065,0x0064,0x00 }
+  , { 0x004E,0x006F,0x0020,0x0063,0x0069,0x0072,0x0063,0x0075,0x006C,0x0061,0x0072,0x0020,0x0064,0x0065,0x0066,0x0069,0x006E,0x0069,0x0074,0x0069,0x006F,0x006E,0x0073,0x0020,0x0061,0x0072,0x0065,0x0020,0x0061,0x006C,0x006C,0x006F,0x0077,0x0065,0x0064,
+      0x003A,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x00 }
+  , { 0x0047,0x006C,0x006F,0x0062,0x0061,0x006C,0x0020,0x007B,0x0030,0x007D,0x003A,0x0027,0x007B,0x0031,0x007D,0x0027,0x0020,0x0064,0x0065,0x0063,0x006C,0x0061,0x0072,0x0065,0x0064,0x0020,0x006D,0x006F,0x0072,0x0065,0x0020,0x0074,0x0068,0x0061,0x006E,
+      0x0020,0x006F,0x006E,0x0063,0x0065,0x0020,0x006F,0x0072,0x0020,0x0061,0x006C,0x0073,0x006F,0x0020,0x0064,0x0065,0x0063,0x006C,0x0061,0x0072,0x0065,0x0064,0x0020,0x0061,0x0073,0x0020,0x007B,0x0032,0x007D,0x00 }
+  , { 0x0047,0x006C,0x006F,0x0062,0x0061,0x006C,0x0020,0x007B,0x0030,0x007D,0x003A,0x0027,0x007B,0x0031,0x007D,0x0027,0x0020,0x0064,0x0065,0x0063,0x006C,0x0061,0x0072,0x0065,0x0064,0x0020,0x006D,0x006F,0x0072,0x0065,0x0020,0x0074,0x0068,0x0061,0x006E,
+      0x0020,0x006F,0x006E,0x0063,0x0065,0x00 }
+  , { 0x0049,0x006E,0x0076,0x0061,0x006C,0x0069,0x0064,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0066,0x006F,0x0072,0x0020,0x0066,0x0061,0x0063,0x0065,0x0074,0x0020,0x0027,0x0077,0x0068,0x0069,0x0074,
+      0x0065,0x0053,0x0070,0x0061,0x0063,0x0065,0x0027,0x002E,0x0020,0x0056,0x0061,0x006C,0x0075,0x0065,0x0020,0x0073,0x0068,0x006F,0x0075,0x006C,0x0064,0x0020,0x0062,0x0065,0x0020,0x0027,0x0063,0x006F,0x006C,0x006C,0x0061,0x0070,0x0073,0x0065,0x0027,
+      0x002E,0x00 }
+  , { 0x0054,0x0068,0x0065,0x0020,0x006E,0x0061,0x006D,0x0065,0x0073,0x0070,0x0061,0x0063,0x0065,0x0020,0x006F,0x0066,0x0020,0x0061,0x006E,0x0020,0x003C,0x0069,0x006D,0x0070,0x006F,0x0072,0x0074,0x003E,0x0020,0x0065,0x006C,0x0065,0x006D,0x0065,0x006E,
+      0x0074,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0062,0x0065,0x0020,0x0064,0x0069,0x0066,0x0066,0x0065,0x0072,0x0065,0x006E,0x0074,0x0020,0x0066,0x0072,0x006F,0x006D,0x0020,0x0074,0x0068,0x0065,0x0020,0x0074,0x0061,0x0072,0x0067,0x0065,0x0074,
+      0x004E,0x0061,0x006D,0x0065,0x0073,0x0070,0x0061,0x0063,0x0065,0x0020,0x006F,0x0066,0x0020,0x0074,0x0068,0x0065,0x0020,0x003C,0x0069,0x006D,0x0070,0x006F,0x0072,0x0074,0x003E,0x0069,0x006E,0x0067,0x0020,0x0073,0x0063,0x0068,0x0065,0x006D,0x0061,
+      0x00 }
+  , { 0x0049,0x0066,0x0020,0x0074,0x0068,0x0065,0x0020,0x006E,0x0061,0x006D,0x0065,0x0073,0x0070,0x0061,0x0063,0x0065,0x0020,0x006F,0x006E,0x0020,0x0061,0x006E,0x0020,0x003C,0x0069,0x006D,0x0070,0x006F,0x0072,0x0074,0x003E,0x0020,0x0065,0x006C,0x0065,
+      0x006D,0x0065,0x006E,0x0074,0x0020,0x0069,0x0073,0x0020,0x006E,0x006F,0x0074,0x0020,0x0070,0x0072,0x0065,0x0073,0x0065,0x006E,0x0074,0x002C,0x0020,0x0074,0x0068,0x0065,0x0020,0x003C,0x0069,0x006D,0x0070,0x006F,0x0072,0x0074,0x003E,0x0069,0x006E,
+      0x0067,0x0020,0x0073,0x0063,0x0068,0x0065,0x006D,0x0061,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0068,0x0061,0x0076,0x0065,0x0020,0x0061,0x0020,0x0074,0x0061,0x0072,0x0067,0x0065,0x0074,0x004E,0x0061,0x006D,0x0065,0x0073,0x0070,0x0061,0x0063,
+      0x0065,0x00 }
+  , { 0x0045,0x006C,0x0065,0x006D,0x0065,0x006E,0x0074,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x006E,0x006F,0x0074,0x0020,0x0068,0x0061,0x0076,0x0065,0x0020,0x0061,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,
+      0x0020,0x0063,0x006F,0x006E,0x0073,0x0074,0x0072,0x0061,0x0069,0x006E,0x0074,0x003A,0x0027,0x007B,0x0031,0x007D,0x0027,0x0020,0x0061,0x0073,0x0020,0x0069,0x0074,0x0073,0x0020,0x0074,0x0079,0x0070,0x0065,0x0020,0x0069,0x0073,0x0020,0x0064,0x0065,
+      0x0072,0x0069,0x0076,0x0065,0x0064,0x0020,0x0066,0x0072,0x006F,0x006D,0x0020,0x0049,0x0044,0x00 }
+  , { 0x0049,0x0074,0x0020,0x0069,0x0073,0x0020,0x0061,0x006E,0x0020,0x0065,0x0072,0x0072,0x006F,0x0072,0x0020,0x0066,0x006F,0x0072,0x0020,0x004E,0x004F,0x0054,0x0041,0x0054,0x0049,0x004F,0x004E,0x0020,0x0074,0x006F,0x0020,0x0062,0x0065,0x0020,0x0075,
+      0x0073,0x0065,0x0064,0x0020,0x0064,0x0069,0x0072,0x0065,0x0063,0x0074,0x006C,0x0079,0x0020,0x0069,0x006E,0x0020,0x0061,0x0020,0x0073,0x0063,0x0068,0x0065,0x006D,0x0061,0x0020,0x0069,0x006E,0x0020,0x0065,0x006C,0x0065,0x006D,0x0065,0x006E,0x0074,
+      0x002F,0x0061,0x0074,0x0074,0x0072,0x0069,0x0062,0x0075,0x0074,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x00 }
+  , { 0x0046,0x006F,0x0072,0x0020,0x0065,0x006C,0x0065,0x006D,0x0065,0x006E,0x0074,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x002C,0x0020,0x0074,0x0068,0x0065,0x0020,0x007B,0x0063,0x006F,0x006E,0x0074,0x0065,0x006E,0x0074,0x0020,0x0074,0x0079,0x0070,
+      0x0065,0x007D,0x0020,0x0069,0x0073,0x0020,0x006D,0x0069,0x0078,0x0065,0x0064,0x002C,0x0020,0x0074,0x0068,0x0065,0x006E,0x0020,0x0074,0x0068,0x0065,0x0020,0x007B,0x0063,0x006F,0x006E,0x0074,0x0065,0x006E,0x0074,0x0020,0x0074,0x0079,0x0070,0x0065,
+      0x007D,0x0027,0x0073,0x0020,0x0070,0x0061,0x0072,0x0074,0x0069,0x0063,0x006C,0x0065,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0062,0x0065,0x0020,0x0065,0x006D,0x0070,0x0074,0x0069,0x0061,0x0062,0x006C,0x0065,0x00 }
+  , { 0x0054,0x0068,0x0065,0x0020,0x0063,0x006F,0x006E,0x0074,0x0065,0x006E,0x0074,0x0020,0x006F,0x0066,0x0020,0x0063,0x006F,0x006D,0x0070,0x006C,0x0065,0x0078,0x0054,0x0079,0x0070,0x0065,0x0020,0x0069,0x0073,0x0020,0x0045,0x004D,0x0050,0x0054,0x0059,
+      0x002C,0x0020,0x0062,0x0075,0x0074,0x0020,0x0062,0x0061,0x0073,0x0065,0x0020,0x0069,0x0073,0x0020,0x006E,0x006F,0x0074,0x0020,0x0065,0x006D,0x0070,0x0074,0x0079,0x0020,0x006F,0x0072,0x0020,0x0064,0x006F,0x0065,0x0073,0x0020,0x006E,0x006F,0x0074,
+      0x0020,0x0068,0x0061,0x0076,0x0065,0x0020,0x0065,0x006D,0x0070,0x0074,0x0069,0x0061,0x0062,0x006C,0x0065,0x0020,0x0070,0x0061,0x0072,0x0074,0x0069,0x0063,0x006C,0x0065,0x002E,0x00 }
+  , { 0x0054,0x0068,0x0065,0x0020,0x0063,0x006F,0x006E,0x0074,0x0065,0x006E,0x0074,0x0020,0x0074,0x0079,0x0070,0x0065,0x0020,0x006F,0x0066,0x0020,0x0074,0x0068,0x0065,0x0020,0x0062,0x0061,0x0073,0x0065,0x0020,0x0074,0x0079,0x0070,0x0065,0x003A,0x0027,
+      0x007B,0x0030,0x007D,0x0027,0x0020,0x0061,0x006E,0x0064,0x0020,0x0064,0x0065,0x0072,0x0069,0x0076,0x0065,0x0064,0x0020,0x0074,0x0079,0x0070,0x0065,0x003A,0x0027,0x007B,0x0031,0x007D,0x0027,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0062,0x006F,
+      0x0074,0x0068,0x0020,0x0062,0x0065,0x0020,0x006D,0x0069,0x0078,0x0065,0x0064,0x0020,0x006F,0x0072,0x0020,0x0065,0x006C,0x0065,0x006D,0x0065,0x006E,0x0074,0x002D,0x006F,0x006E,0x006C,0x0079,0x002E,0x00 }
+  , { 0x0054,0x0068,0x0065,0x0020,0x0063,0x006F,0x006E,0x0074,0x0065,0x006E,0x0074,0x0020,0x0074,0x0079,0x0070,0x0065,0x0020,0x0069,0x0073,0x0020,0x006E,0x006F,0x0074,0x0020,0x0061,0x0020,0x0076,0x0061,0x006C,0x0069,0x0064,0x0020,0x0072,0x0065,0x0073,
+      0x0074,0x0072,0x0069,0x0063,0x0074,0x0069,0x006F,0x006E,0x0020,0x006F,0x0066,0x0020,0x0074,0x0068,0x0065,0x0020,0x0063,0x006F,0x006E,0x0074,0x0065,0x006E,0x0074,0x0020,0x0074,0x0079,0x0070,0x0065,0x0020,0x006F,0x0066,0x0020,0x0074,0x0068,0x0065,
+      0x0020,0x0062,0x0061,0x0073,0x0065,0x002E,0x00 }
+  , { 0x0044,0x0065,0x0072,0x0069,0x0076,0x0061,0x0074,0x0069,0x006F,0x006E,0x0020,0x0062,0x0079,0x0020,0x0065,0x0078,0x0074,0x0065,0x006E,0x0073,0x0069,0x006F,0x006E,0x0020,0x006F,0x0072,0x0020,0x0072,0x0065,0x0073,0x0074,0x0072,0x0069,0x0063,0x0074,
+      0x0069,0x006F,0x006E,0x0020,0x0069,0x0073,0x0020,0x0066,0x006F,0x0072,0x0062,0x0069,0x0064,0x0064,0x0065,0x006E,0x0020,0x0062,0x0079,0x0020,0x0065,0x0069,0x0074,0x0068,0x0065,0x0072,0x0020,0x0074,0x0068,0x0065,0x0020,0x0062,0x0061,0x0073,0x0065,
+      0x0020,0x0074,0x0079,0x0070,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x006F,0x0072,0x0020,0x0074,0x0068,0x0065,0x0020,0x0073,0x0063,0x0068,0x0065,0x006D,0x0061,0x00 }
+  , { 0x0054,0x0068,0x0065,0x0020,0x007B,0x0069,0x0074,0x0065,0x006D,0x0020,0x0074,0x0079,0x0070,0x0065,0x0020,0x0064,0x0065,0x0066,0x0069,0x006E,0x0069,0x0074,0x0069,0x006F,0x006E,0x007D,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0068,0x0061,0x0076,
+      0x0065,0x0020,0x007B,0x0076,0x0061,0x0072,0x0069,0x0065,0x0074,0x0079,0x007D,0x0020,0x006F,0x0066,0x0020,0x0061,0x0074,0x006F,0x006D,0x0069,0x0063,0x0020,0x006F,0x0072,0x0020,0x0075,0x006E,0x0069,0x006F,0x006E,0x0020,0x0028,0x0077,0x0068,0x0065,
+      0x0072,0x0065,0x0020,0x0061,0x006C,0x006C,0x0020,0x006D,0x0065,0x006D,0x0062,0x0065,0x0072,0x0020,0x0074,0x0079,0x0070,0x0065,0x0073,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0062,0x0065,0x0020,0x0061,0x0074,0x006F,0x006D,0x0069,0x0063,0x0029,
+      0x00 }
+  , { 0x0054,0x0068,0x0065,0x0020,0x007B,0x006D,0x0065,0x006D,0x0062,0x0065,0x0072,0x0020,0x0074,0x0079,0x0070,0x0065,0x0020,0x0064,0x0065,0x0066,0x0069,0x006E,0x0069,0x0074,0x0069,0x006F,0x006E,0x0073,0x007D,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,
+      0x0061,0x006C,0x006C,0x0020,0x0068,0x0061,0x0076,0x0065,0x0020,0x007B,0x0076,0x0061,0x0072,0x0069,0x0065,0x0074,0x0079,0x007D,0x0020,0x006F,0x0066,0x0020,0x0061,0x0074,0x006F,0x006D,0x0069,0x0063,0x0020,0x006F,0x0072,0x0020,0x006C,0x0069,0x0073,
+      0x0074,0x00 }
+  , { 0x0054,0x0068,0x0065,0x0020,0x0067,0x0072,0x006F,0x0075,0x0070,0x003A,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0063,0x006F,0x006E,0x0074,0x0061,0x0069,0x006E,0x0020,0x0028,0x0061,0x006C,0x006C,0x0020,0x007C,
+      0x0020,0x0063,0x0068,0x006F,0x0069,0x0063,0x0065,0x0020,0x007C,0x0020,0x0073,0x0065,0x0071,0x0075,0x0065,0x006E,0x0063,0x0065,0x0029,0x00 }
+  , { 0x0054,0x0068,0x0065,0x0020,0x0061,0x0074,0x0074,0x0072,0x0069,0x0062,0x0075,0x0074,0x0065,0x0047,0x0072,0x006F,0x0075,0x0070,0x003A,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x006D,0x0061,0x0074,0x0063,0x0068,
+      0x0020,0x0028,0x0061,0x006E,0x006E,0x006F,0x0074,0x0061,0x0074,0x0069,0x006F,0x006E,0x003F,0x002E,0x0020,0x0028,0x0028,0x0061,0x0074,0x0074,0x0072,0x0069,0x0062,0x0075,0x0074,0x0065,0x0020,0x007C,0x0020,0x0061,0x0074,0x0074,0x0072,0x0069,0x0062,
+      0x0075,0x0074,0x0065,0x0047,0x0072,0x006F,0x0075,0x0070,0x0029,0x002A,0x002C,0x0020,0x0061,0x006E,0x0079,0x0041,0x0074,0x0074,0x0072,0x0069,0x0062,0x0075,0x0074,0x0065,0x003F,0x0029,0x0029,0x00 }
+  , { 0x0054,0x0068,0x0065,0x0020,0x0063,0x0068,0x0069,0x006C,0x0064,0x0020,0x006F,0x0066,0x0020,0x0061,0x0020,0x006D,0x006F,0x0064,0x0065,0x006C,0x0020,0x0067,0x0072,0x006F,0x0075,0x0070,0x0020,0x0064,0x0065,0x0066,0x0069,0x006E,0x0069,0x0074,0x0069,
+      0x006F,0x006E,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x006E,0x006F,0x0074,0x0020,0x0073,0x0070,0x0065,0x0063,0x0069,0x0066,0x0079,0x0020,0x0065,0x0069,0x0074,0x0068,0x0065,0x0072,0x0020,0x0074,0x0068,0x0065,0x0020,0x006D,0x0069,0x006E,0x004F,
+      0x0063,0x0063,0x0075,0x0072,0x0073,0x0020,0x006F,0x0072,0x0020,0x006D,0x0061,0x0078,0x004F,0x0063,0x0063,0x0075,0x0072,0x0073,0x0020,0x0061,0x0074,0x0074,0x0072,0x0069,0x0062,0x0075,0x0074,0x0065,0x002E,0x00 }
+  , { 0x0054,0x0068,0x0065,0x0020,0x007B,0x0030,0x007D,0x0020,0x002D,0x0027,0x007B,0x0031,0x007D,0x003A,0x007B,0x0032,0x007D,0x0027,0x002D,0x0020,0x006E,0x006F,0x0074,0x0020,0x0066,0x006F,0x0075,0x006E,0x0064,0x0020,0x0069,0x006E,0x0020,0x0074,0x0068,
+      0x0065,0x0020,0x0073,0x0063,0x0068,0x0065,0x006D,0x0061,0x00 }
+  , { 0x0041,0x0020,0x0067,0x0072,0x006F,0x0075,0x0070,0x0020,0x0077,0x0068,0x006F,0x0073,0x0065,0x0020,0x0063,0x006F,0x006E,0x0074,0x0065,0x006E,0x0074,0x0020,0x0069,0x0073,0x0020,0x0027,0x0061,0x006C,0x006C,0x0027,0x0020,0x006D,0x0075,0x0073,0x0074,
+      0x0020,0x006F,0x006E,0x006C,0x0079,0x0020,0x0061,0x0070,0x0070,0x0065,0x0061,0x0072,0x0020,0x0061,0x0073,0x0020,0x0074,0x0068,0x0065,0x0020,0x0063,0x006F,0x006E,0x0074,0x0065,0x006E,0x0074,0x0020,0x0074,0x0079,0x0070,0x0065,0x0020,0x006F,0x0066,
+      0x0020,0x0061,0x0020,0x0063,0x006F,0x006D,0x0070,0x006C,0x0065,0x0078,0x0020,0x0074,0x0079,0x0070,0x0065,0x0020,0x0064,0x0065,0x0066,0x0069,0x006E,0x0069,0x0074,0x0069,0x006F,0x006E,0x002E,0x00 }
+  , { 0x0057,0x0068,0x0065,0x006E,0x0020,0x0061,0x0020,0x006D,0x006F,0x0064,0x0065,0x006C,0x0020,0x0067,0x0072,0x006F,0x0075,0x0070,0x0020,0x0068,0x0061,0x0073,0x0020,0x007B,0x0063,0x006F,0x006D,0x0070,0x006F,0x0073,0x0069,0x0074,0x006F,0x0072,0x007D,
+      0x0020,0x0027,0x0061,0x006C,0x006C,0x0027,0x0020,0x0077,0x0068,0x0069,0x0063,0x0068,0x0020,0x0063,0x006F,0x006E,0x0073,0x0074,0x0069,0x0074,0x0075,0x0074,0x0065,0x0073,0x0020,0x0074,0x0068,0x0065,0x0020,0x007B,0x0063,0x006F,0x006E,0x0074,0x0065,
+      0x006E,0x0074,0x0020,0x0074,0x0079,0x0070,0x0065,0x007D,0x0020,0x006F,0x0066,0x0020,0x0061,0x0020,0x0063,0x006F,0x006D,0x0070,0x006C,0x0065,0x0078,0x0020,0x0074,0x0079,0x0070,0x0065,0x002C,0x0020,0x006D,0x0069,0x006E,0x004F,0x0063,0x0063,0x0075,
+      0x0072,0x0073,0x003D,0x006D,0x0061,0x0078,0x004F,0x0063,0x0063,0x0075,0x0072,0x0073,0x003D,0x0031,0x00 }
+  , { 0x0049,0x006E,0x0020,0x0061,0x006E,0x0020,0x0027,0x0061,0x006C,0x006C,0x0027,0x0020,0x0073,0x0063,0x0068,0x0065,0x006D,0x0061,0x0020,0x0063,0x006F,0x006D,0x0070,0x006F,0x006E,0x0065,0x006E,0x0074,0x002C,0x0020,0x0074,0x0068,0x0065,0x0020,0x0076,
+      0x0061,0x006C,0x0075,0x0065,0x0020,0x006F,0x0066,0x0020,0x006D,0x0069,0x006E,0x004F,0x0063,0x0063,0x0075,0x0072,0x0073,0x002F,0x006D,0x0061,0x0078,0x004F,0x0063,0x0063,0x0075,0x0072,0x0073,0x0020,0x006F,0x0066,0x0020,0x0061,0x006E,0x0020,0x0065,
+      0x006C,0x0065,0x006D,0x0065,0x006E,0x0074,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0062,0x0065,0x0020,0x0027,0x0030,0x0027,0x0020,0x006F,0x0072,0x0020,0x0027,0x0031,0x0027,0x002E,0x00 }
+  , { 0x0043,0x0069,0x0072,0x0063,0x0075,0x006C,0x0061,0x0072,0x0020,0x0061,0x0074,0x0074,0x0072,0x0069,0x0062,0x0075,0x0074,0x0065,0x0047,0x0072,0x006F,0x0075,0x0070,0x0020,0x0072,0x0065,0x0066,0x0065,0x0072,0x0065,0x006E,0x0063,0x0065,0x0020,0x002D,
+      0x007B,0x0030,0x007D,0x002D,0x0020,0x0069,0x0073,0x0020,0x0064,0x0069,0x0073,0x0061,0x006C,0x006C,0x006F,0x0077,0x0065,0x0064,0x0020,0x006F,0x0075,0x0074,0x0073,0x0069,0x0064,0x0065,0x0020,0x003C,0x0072,0x0065,0x0064,0x0065,0x0066,0x0069,0x006E,
+      0x0065,0x003E,0x00 }
+  , { 0x0041,0x0074,0x0074,0x0072,0x0069,0x0062,0x0075,0x0074,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0061,0x006C,0x0072,0x0065,0x0061,0x0064,0x0079,0x0020,0x0064,0x0065,0x0066,0x0069,0x006E,0x0065,0x0064,0x0020,0x0069,0x006E,0x0020,
+      0x0062,0x0061,0x0073,0x0065,0x0020,0x0061,0x006E,0x0064,0x0020,0x0073,0x0068,0x006F,0x0075,0x006C,0x0064,0x0020,0x006E,0x006F,0x0074,0x0020,0x0061,0x0070,0x0070,0x0065,0x0061,0x0072,0x0020,0x0069,0x006E,0x0020,0x0064,0x0065,0x0072,0x0069,0x0076,
+      0x0061,0x0074,0x0069,0x006F,0x006E,0x0020,0x0062,0x0079,0x0020,0x0065,0x0078,0x0074,0x0065,0x006E,0x0073,0x0069,0x006F,0x006E,0x002E,0x00 }
+  , { 0x0054,0x0068,0x0065,0x0020,0x0069,0x006E,0x0074,0x0065,0x006E,0x0073,0x0069,0x006F,0x006E,0x0061,0x006C,0x0020,0x0069,0x006E,0x0074,0x0065,0x0072,0x0073,0x0065,0x0063,0x0074,0x0069,0x006F,0x006E,0x0020,0x006F,0x0066,0x0020,0x007B,0x0061,0x0074,
+      0x0074,0x0072,0x0069,0x0062,0x0075,0x0074,0x0065,0x0073,0x0020,0x0077,0x0069,0x006C,0x0064,0x0063,0x0061,0x0072,0x0064,0x007D,0x0073,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0062,0x0065,0x0020,0x0065,0x0078,0x0070,0x0072,0x0065,0x0073,0x0073,
+      0x0069,0x0062,0x006C,0x0065,0x00 }
+  , { 0x0042,0x0061,0x0073,0x0065,0x0020,0x0074,0x0079,0x0070,0x0065,0x0020,0x0064,0x0065,0x0066,0x0069,0x006E,0x0069,0x0074,0x0069,0x006F,0x006E,0x0020,0x0064,0x006F,0x0065,0x0073,0x0020,0x006E,0x006F,0x0074,0x0020,0x0068,0x0061,0x0076,0x0065,0x0020,
+      0x0061,0x006E,0x0079,0x0020,0x0061,0x0074,0x0074,0x0072,0x0069,0x0062,0x0075,0x0074,0x0065,0x0073,0x00 }
+  , { 0x0041,0x0074,0x0074,0x0072,0x0069,0x0062,0x0075,0x0074,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0068,0x0061,0x0073,0x0020,0x0061,0x006E,0x0020,0x0069,0x006E,0x0063,0x006F,0x006E,0x0073,0x0069,0x0073,0x0074,0x0065,0x006E,0x0074,
+      0x0020,0x0052,0x0045,0x0051,0x0055,0x0049,0x0052,0x0045,0x0044,0x0020,0x0073,0x0065,0x0074,0x0074,0x0069,0x006E,0x0067,0x0020,0x0077,0x0069,0x0074,0x0068,0x0020,0x0074,0x0068,0x0061,0x0074,0x0020,0x006F,0x0066,0x0020,0x0074,0x0068,0x0065,0x0020,
+      0x0062,0x0061,0x0073,0x0065,0x00 }
+  , { 0x0054,0x0079,0x0070,0x0065,0x0020,0x006F,0x0066,0x0020,0x0061,0x0074,0x0074,0x0072,0x0069,0x0062,0x0075,0x0074,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0062,0x0065,0x0020,0x0076,0x0061,0x006C,
+      0x0069,0x0064,0x006C,0x0079,0x0020,0x0064,0x0065,0x0072,0x0069,0x0076,0x0065,0x0064,0x0020,0x0066,0x0072,0x006F,0x006D,0x0020,0x0074,0x0079,0x0070,0x0065,0x0020,0x006F,0x0066,0x0020,0x0061,0x0074,0x0074,0x0072,0x0069,0x0062,0x0075,0x0074,0x0065,
+      0x0020,0x0069,0x006E,0x0020,0x0062,0x0061,0x0073,0x0065,0x00 }
+  , { 0x0041,0x0074,0x0074,0x0072,0x0069,0x0062,0x0075,0x0074,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0069,0x0073,0x0020,0x0065,0x0069,0x0074,0x0068,0x0065,0x0072,0x0020,0x006E,0x006F,0x0074,0x0020,0x0066,0x0069,0x0078,0x0065,0x0064,
+      0x002C,0x0020,0x006F,0x0072,0x0020,0x0068,0x0061,0x0073,0x0020,0x0061,0x0020,0x0064,0x0069,0x0066,0x0066,0x0065,0x0072,0x0065,0x006E,0x0074,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0020,0x0066,0x0072,0x006F,0x006D,0x0020,0x0074,0x0068,0x0061,
+      0x0074,0x0020,0x006F,0x0066,0x0020,0x0074,0x0068,0x0065,0x0020,0x0062,0x0061,0x0073,0x0065,0x00 }
+  , { 0x0041,0x0074,0x0074,0x0072,0x0069,0x0062,0x0075,0x0074,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0068,0x0061,0x0073,0x0020,0x0069,0x006E,0x0076,0x0061,0x006C,0x0069,0x0064,0x0020,0x0074,0x0061,0x0072,0x0067,0x0065,0x0074,0x0020,
+      0x006E,0x0061,0x006D,0x0065,0x0073,0x0070,0x0061,0x0063,0x0065,0x0020,0x0077,0x0069,0x0074,0x0068,0x0020,0x0072,0x0065,0x0073,0x0070,0x0065,0x0063,0x0074,0x0020,0x0074,0x006F,0x0020,0x0061,0x0020,0x0062,0x0061,0x0073,0x0065,0x0020,0x0077,0x0069,
+      0x006C,0x0064,0x0063,0x0061,0x0072,0x0064,0x0020,0x0063,0x006F,0x006E,0x0073,0x0074,0x0072,0x0061,0x0069,0x006E,0x0074,0x0020,0x006F,0x0072,0x002C,0x0020,0x0062,0x0061,0x0073,0x0065,0x0020,0x0068,0x0061,0x0073,0x0020,0x006E,0x006F,0x0020,0x0077,
+      0x0069,0x006C,0x0064,0x0063,0x0061,0x0072,0x0064,0x00 }
+  , { 0x0041,0x006E,0x0020,0x0061,0x0074,0x0074,0x0072,0x0069,0x0062,0x0075,0x0074,0x0065,0x0020,0x0077,0x0069,0x006C,0x0064,0x0063,0x0061,0x0072,0x0064,0x0020,0x0069,0x0073,0x0020,0x0070,0x0072,0x0065,0x0073,0x0065,0x006E,0x0074,0x0020,0x0069,0x006E,
+      0x0020,0x0074,0x0068,0x0065,0x0020,0x0064,0x0065,0x0072,0x0069,0x0076,0x0065,0x0064,0x0020,0x0074,0x0079,0x0070,0x0065,0x002C,0x0020,0x0062,0x0075,0x0074,0x0020,0x006E,0x006F,0x0074,0x0020,0x0069,0x006E,0x0020,0x0074,0x0068,0x0065,0x0020,0x0062,
+      0x0061,0x0073,0x0065,0x00 }
+  , { 0x0054,0x0068,0x0065,0x0020,0x0061,0x0074,0x0074,0x0072,0x0069,0x0062,0x0075,0x0074,0x0065,0x0020,0x0077,0x0069,0x006C,0x0064,0x0063,0x0061,0x0072,0x0064,0x0020,0x0069,0x006E,0x0020,0x0074,0x0068,0x0065,0x0020,0x0064,0x0065,0x0072,0x0069,0x0076,
+      0x0065,0x0064,0x0020,0x0074,0x0079,0x0070,0x0065,0x0020,0x0069,0x0073,0x0020,0x006E,0x006F,0x0074,0x0020,0x0061,0x0020,0x0076,0x0061,0x006C,0x0069,0x0064,0x0020,0x0073,0x0075,0x0062,0x0073,0x0065,0x0074,0x0020,0x006F,0x0066,0x0020,0x0074,0x0068,
+      0x0061,0x0074,0x0020,0x0069,0x006E,0x0020,0x0074,0x0068,0x0065,0x0020,0x0062,0x0061,0x0073,0x0065,0x00 }
+  , { 0x0041,0x0074,0x0074,0x0072,0x0069,0x0062,0x0075,0x0074,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0063,0x0061,0x006E,0x006E,0x006F,0x0074,0x0020,0x006D,0x006F,0x0064,0x0069,0x0066,0x0079,0x0020,0x0074,0x0068,0x0065,0x0020,0x0027,
+      0x0075,0x0073,0x0065,0x0027,0x0020,0x0061,0x0074,0x0074,0x0072,0x0069,0x0062,0x0075,0x0074,0x0065,0x0020,0x0069,0x006E,0x0020,0x0061,0x0020,0x0064,0x0065,0x0072,0x0069,0x0076,0x0065,0x0064,0x0020,0x0074,0x0079,0x0070,0x0065,0x002C,0x0020,0x0069,
+      0x0066,0x0020,0x0062,0x0061,0x0073,0x0065,0x0020,0x0061,0x0074,0x0074,0x0072,0x0069,0x0062,0x0075,0x0074,0x0065,0x0020,0x0075,0x0073,0x0065,0x0020,0x0069,0x0073,0x0020,0x0070,0x0072,0x006F,0x0068,0x0069,0x0062,0x0069,0x0074,0x0065,0x0064,0x00 }
+  , { 0x0054,0x0068,0x0065,0x0020,0x0077,0x0069,0x006C,0x0064,0x0063,0x0061,0x0072,0x0064,0x0020,0x0061,0x0074,0x0074,0x0072,0x0069,0x0062,0x0075,0x0074,0x0065,0x0020,0x0069,0x006E,0x0020,0x0074,0x0068,0x0065,0x0020,0x0064,0x0065,0x0072,0x0069,0x0076,
+      0x0065,0x0064,0x0020,0x0074,0x0079,0x0070,0x0065,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0062,0x0065,0x0020,0x0069,0x0064,0x0065,0x006E,0x0074,0x0069,0x0063,0x0061,0x006C,0x0020,0x0074,0x006F,0x0020,0x006F,0x0072,0x0020,0x0073,0x0074,0x0072,
+      0x006F,0x006E,0x0067,0x0065,0x0072,0x0020,0x0074,0x0068,0x0061,0x006E,0x0020,0x0074,0x0068,0x0065,0x0020,0x006F,0x006E,0x0065,0x0020,0x0069,0x006E,0x0020,0x0074,0x0068,0x0065,0x0020,0x0062,0x0061,0x0073,0x0065,0x002E,0x00 }
+  , { 0x0043,0x006F,0x006E,0x0074,0x0065,0x006E,0x0074,0x0020,0x006F,0x0066,0x0020,0x003C,0x0061,0x006C,0x006C,0x003E,0x0020,0x0069,0x0073,0x0020,0x0072,0x0065,0x0073,0x0074,0x0072,0x0069,0x0063,0x0074,0x0065,0x0064,0x0020,0x0074,0x006F,0x0020,0x0065,
+      0x006C,0x0065,0x006D,0x0065,0x006E,0x0074,0x0073,0x0020,0x006F,0x006E,0x006C,0x0079,0x002E,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0065,0x006E,0x0063,0x006F,0x0075,0x006E,0x0074,0x0065,0x0072,0x0065,0x0064,0x0020,0x0061,0x006E,0x0064,
+      0x0020,0x0069,0x0067,0x006E,0x006F,0x0072,0x0065,0x0064,0x002E,0x00 }
+  , { 0x0052,0x0065,0x0064,0x0065,0x0066,0x0069,0x006E,0x0065,0x0064,0x0020,0x0073,0x0063,0x0068,0x0065,0x006D,0x0061,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0068,0x0061,0x0073,0x0020,0x0061,0x0020,0x0064,0x0069,0x0066,0x0066,0x0065,0x0072,
+      0x0065,0x006E,0x0074,0x0020,0x0074,0x0061,0x0072,0x0067,0x0065,0x0074,0x004E,0x0061,0x006D,0x0065,0x0053,0x0070,0x0061,0x0063,0x0065,0x0020,0x0027,0x007B,0x0031,0x007D,0x0027,0x002E,0x00 }
+  , { 0x0041,0x0020,0x0073,0x0069,0x006D,0x0070,0x006C,0x0065,0x0054,0x0079,0x0070,0x0065,0x0020,0x0063,0x0068,0x0069,0x006C,0x0064,0x0020,0x006F,0x0066,0x0020,0x0061,0x0020,0x003C,0x0072,0x0065,0x0064,0x0065,0x0066,0x0069,0x006E,0x0065,0x003E,0x0020,
+      0x006D,0x0075,0x0073,0x0074,0x0020,0x0068,0x0061,0x0076,0x0065,0x0020,0x0061,0x0020,0x0072,0x0065,0x0073,0x0074,0x0072,0x0069,0x0063,0x0074,0x0069,0x006F,0x006E,0x0020,0x0065,0x006C,0x0065,0x006D,0x0065,0x006E,0x0074,0x0020,0x0061,0x0073,0x0020,
+      0x0061,0x0020,0x0063,0x0068,0x0069,0x006C,0x0064,0x00 }
+  , { 0x0054,0x0068,0x0065,0x0020,0x0062,0x0061,0x0073,0x0065,0x0020,0x0061,0x0074,0x0074,0x0072,0x0069,0x0062,0x0075,0x0074,0x0065,0x0020,0x006F,0x0066,0x0020,0x0074,0x0068,0x0065,0x0020,0x0072,0x0065,0x0073,0x0074,0x0072,0x0069,0x0063,0x0074,0x0069,
+      0x006F,0x006E,0x0020,0x0063,0x0068,0x0069,0x006C,0x0064,0x0020,0x006F,0x0066,0x0020,0x0061,0x0020,0x0073,0x0069,0x006D,0x0070,0x006C,0x0065,0x0054,0x0079,0x0070,0x0065,0x002C,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0062,0x0065,0x0020,0x0074,
+      0x0068,0x0065,0x0020,0x0073,0x0061,0x006D,0x0065,0x0020,0x0061,0x0073,0x0020,0x0074,0x0068,0x0065,0x0020,0x0072,0x0065,0x0064,0x0065,0x0066,0x0069,0x006E,0x0065,0x0020,0x0073,0x0069,0x006D,0x0070,0x006C,0x0065,0x0054,0x0079,0x0070,0x0065,0x0027,
+      0x0073,0x0020,0x006E,0x0061,0x006D,0x0065,0x0020,0x0061,0x0074,0x0074,0x0072,0x0069,0x0062,0x0075,0x0074,0x0065,0x00 }
+  , { 0x0041,0x0020,0x0063,0x006F,0x006D,0x0070,0x006C,0x0065,0x0078,0x0054,0x0079,0x0070,0x0065,0x0020,0x0063,0x0068,0x0069,0x006C,0x0064,0x0020,0x006F,0x0066,0x0020,0x0061,0x0020,0x003C,0x0072,0x0065,0x0064,0x0065,0x0066,0x0069,0x006E,0x0065,0x003E,
+      0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0068,0x0061,0x0076,0x0065,0x0020,0x0061,0x0020,0x0072,0x0065,0x0073,0x0074,0x0072,0x0069,0x0063,0x0074,0x0069,0x006F,0x006E,0x0020,0x006F,0x0072,0x0020,0x0065,0x0078,0x0074,0x0065,0x006E,0x0073,0x0069,
+      0x006F,0x006E,0x0020,0x0065,0x006C,0x0065,0x006D,0x0065,0x006E,0x0074,0x0020,0x0061,0x0073,0x0020,0x0061,0x0020,0x0067,0x0072,0x0061,0x006E,0x0064,0x0063,0x0068,0x0069,0x006C,0x0064,0x00 }
+  , { 0x0054,0x0068,0x0065,0x0020,0x0062,0x0061,0x0073,0x0065,0x0020,0x0061,0x0074,0x0074,0x0072,0x0069,0x0062,0x0075,0x0074,0x0065,0x0020,0x006F,0x0066,0x0020,0x0061,0x0020,0x0072,0x0065,0x0073,0x0074,0x0072,0x0069,0x0063,0x0074,0x0069,0x006F,0x006E,
+      0x002F,0x0065,0x0078,0x0074,0x0065,0x006E,0x0073,0x0069,0x006F,0x006E,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0062,0x0065,0x0020,0x0074,0x0068,0x0065,0x0020,0x0073,0x0061,0x006D,0x0065,0x0020,0x0061,0x0073,0x0020,0x0074,0x0068,0x0065,0x0020,
+      0x0063,0x006F,0x006D,0x0070,0x006C,0x0065,0x0078,0x0054,0x0079,0x0070,0x0065,0x0027,0x0073,0x0020,0x006E,0x0061,0x006D,0x0065,0x0020,0x0061,0x0074,0x0074,0x0072,0x0069,0x0062,0x0075,0x0074,0x0065,0x0020,0x0069,0x006E,0x0020,0x003C,0x0072,0x0065,
+      0x0064,0x0065,0x0066,0x0069,0x006E,0x0065,0x003E,0x00 }
+  , { 0x0054,0x0068,0x0065,0x0020,0x0067,0x0072,0x006F,0x0075,0x0070,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0077,0x0068,0x0069,0x0063,0x0068,0x0020,0x0063,0x006F,0x006E,0x0074,0x0061,0x0069,0x006E,0x0073,0x0020,0x0061,0x0020,0x0072,0x0065,
+      0x0066,0x0065,0x0072,0x0065,0x006E,0x0063,0x0065,0x0020,0x0074,0x006F,0x0020,0x0061,0x0020,0x0067,0x0072,0x006F,0x0075,0x0070,0x0020,0x0062,0x0065,0x0069,0x006E,0x0067,0x0020,0x0072,0x0065,0x0064,0x0065,0x0066,0x0069,0x006E,0x0065,0x0064,0x0020,
+      0x006D,0x0075,0x0073,0x0074,0x0020,0x0068,0x0061,0x0076,0x0065,0x0020,0x006D,0x0069,0x006E,0x004F,0x0063,0x0063,0x0075,0x0072,0x0073,0x0020,0x003D,0x0020,0x006D,0x0061,0x0078,0x004F,0x0063,0x0063,0x0075,0x0072,0x0073,0x0020,0x003D,0x0020,0x0031,
+      0x00 }
+  , { 0x0043,0x006F,0x0075,0x006C,0x0064,0x0020,0x006E,0x006F,0x0074,0x0020,0x0066,0x0069,0x006E,0x0064,0x0020,0x0061,0x0020,0x0064,0x0065,0x0063,0x006C,0x0061,0x0072,0x0061,0x0074,0x0069,0x006F,0x006E,0x0020,0x0069,0x006E,0x0020,0x0074,0x0068,0x0065,
+      0x0020,0x0073,0x0063,0x0068,0x0065,0x006D,0x0061,0x0020,0x0074,0x006F,0x0020,0x0062,0x0065,0x0020,0x0072,0x0065,0x0064,0x0065,0x0066,0x0069,0x006E,0x0065,0x0064,0x0020,0x0063,0x006F,0x0072,0x0072,0x0065,0x0073,0x0070,0x006F,0x006E,0x0064,0x0069,
+      0x006E,0x0067,0x0020,0x0074,0x006F,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x00 }
+  , { 0x0049,0x0066,0x0020,0x0061,0x0020,0x0067,0x0072,0x006F,0x0075,0x0070,0x0020,0x0063,0x0068,0x0069,0x006C,0x0064,0x0020,0x006F,0x0066,0x0020,0x0061,0x0020,0x003C,0x0072,0x0065,0x0064,0x0065,0x0066,0x0069,0x006E,0x0065,0x003E,0x0020,0x0065,0x006C,
+      0x0065,0x006D,0x0065,0x006E,0x0074,0x0020,0x0063,0x006F,0x006E,0x0074,0x0061,0x0069,0x006E,0x0073,0x0020,0x0061,0x0020,0x0067,0x0072,0x006F,0x0075,0x0070,0x0020,0x0072,0x0065,0x0066,0x0027,0x0069,0x006E,0x0067,0x0020,0x0069,0x0074,0x0073,0x0065,
+      0x006C,0x0066,0x002C,0x0020,0x0069,0x0074,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0068,0x0061,0x0076,0x0065,0x0020,0x0065,0x0078,0x0061,0x0063,0x0074,0x006C,0x0079,0x0020,0x0031,0x0020,0x0072,0x0065,0x0066,0x0065,0x0072,0x0065,0x006E,0x0063,
+      0x0065,0x002E,0x00 }
+  , { 0x0049,0x0066,0x0020,0x0061,0x006E,0x0020,0x0061,0x0074,0x0074,0x0072,0x0069,0x0062,0x0075,0x0074,0x0065,0x0047,0x0072,0x006F,0x0075,0x0070,0x0020,0x006F,0x0066,0x0020,0x0061,0x0020,0x003C,0x0072,0x0065,0x0064,0x0065,0x0066,0x0069,0x006E,0x0065,
+      0x003E,0x0020,0x0065,0x006C,0x0065,0x006D,0x0065,0x006E,0x0074,0x0020,0x0063,0x006F,0x006E,0x0074,0x0061,0x0069,0x006E,0x0073,0x0020,0x0061,0x0020,0x0072,0x0065,0x0066,0x0065,0x0072,0x0065,0x006E,0x0063,0x0065,0x0020,0x0074,0x006F,0x0020,0x0069,
+      0x0074,0x0073,0x0065,0x006C,0x0066,0x002C,0x0020,0x0073,0x0075,0x0063,0x0068,0x0020,0x0072,0x0065,0x0066,0x0065,0x0072,0x0065,0x006E,0x0063,0x0065,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0062,0x0065,0x0020,0x0065,0x0078,0x0061,0x0063,0x0074,
+      0x006C,0x0079,0x0020,0x0031,0x00 }
+  , { 0x0041,0x0020,0x003C,0x0072,0x0065,0x0064,0x0065,0x0066,0x0069,0x006E,0x0065,0x003E,0x0020,0x0065,0x006C,0x0065,0x006D,0x0065,0x006E,0x0074,0x0020,0x0063,0x0061,0x006E,0x006E,0x006F,0x0074,0x0020,0x0063,0x006F,0x006E,0x0074,0x0061,0x0069,0x006E,
+      0x0020,0x0061,0x0020,0x0063,0x0068,0x0069,0x006C,0x0064,0x0020,0x006F,0x0066,0x0020,0x0074,0x0079,0x0070,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x00 }
+  , { 0x0054,0x0068,0x0065,0x0020,0x0064,0x0065,0x0063,0x006C,0x0061,0x0072,0x0061,0x0074,0x0069,0x006F,0x006E,0x0020,0x0066,0x006F,0x0072,0x0020,0x006E,0x006F,0x0074,0x0061,0x0074,0x0069,0x006F,0x006E,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,
+      0x0069,0x0073,0x0020,0x0069,0x006E,0x0076,0x0061,0x006C,0x0069,0x0064,0x00 }
+  , { 0x0054,0x0068,0x0065,0x0020,0x006E,0x006F,0x0074,0x0061,0x0074,0x0069,0x006F,0x006E,0x0020,0x0064,0x0065,0x0063,0x006C,0x0061,0x0072,0x0061,0x0074,0x0069,0x006F,0x006E,0x0020,0x0027,0x007B,0x0030,0x007D,0x003A,0x007B,0x0031,0x007D,0x0027,0x0020,
+      0x0069,0x0073,0x0020,0x006E,0x006F,0x0074,0x0020,0x0066,0x006F,0x0075,0x006E,0x0064,0x00 }
+  , { 0x004D,0x006F,0x0072,0x0065,0x0020,0x0074,0x0068,0x0061,0x006E,0x0020,0x006F,0x006E,0x0065,0x0020,0x0069,0x0064,0x0065,0x006E,0x0074,0x0069,0x0074,0x0079,0x0020,0x0063,0x006F,0x006E,0x0073,0x0074,0x0072,0x0061,0x0069,0x006E,0x0074,0x0020,0x006E,
+      0x0061,0x006D,0x0065,0x0064,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x002E,0x00 }
+  , { 0x0054,0x0068,0x0065,0x0020,0x0063,0x006F,0x006E,0x0074,0x0065,0x006E,0x0074,0x0020,0x006F,0x0066,0x0020,0x0061,0x006E,0x0020,0x0069,0x0064,0x0065,0x006E,0x0074,0x0069,0x0074,0x0079,0x0020,0x0063,0x006F,0x006E,0x0073,0x0074,0x0072,0x0061,0x0069,
+      0x006E,0x0074,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x006D,0x0061,0x0074,0x0063,0x0068,0x0020,0x0028,0x0061,0x006E,0x006E,0x006F,0x0074,0x0061,0x0074,0x0069,0x006F,0x006E,0x003F,0x002C,0x0020,0x0073,0x0065,0x006C,0x0065,0x0063,0x0074,0x006F,
+      0x0072,0x002C,0x0020,0x0066,0x0069,0x0065,0x006C,0x0064,0x002B,0x0029,0x00 }
+  , { 0x004B,0x0065,0x0079,0x0020,0x0072,0x0065,0x0066,0x0065,0x0072,0x0065,0x006E,0x0063,0x0065,0x0020,0x0064,0x0065,0x0063,0x006C,0x0061,0x0072,0x0061,0x0074,0x0069,0x006F,0x006E,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0072,0x0065,0x0066,
+      0x0065,0x0072,0x0073,0x0020,0x0074,0x006F,0x0020,0x0075,0x006E,0x006B,0x006E,0x006F,0x0077,0x006E,0x0020,0x006B,0x0065,0x0079,0x0020,0x0077,0x0069,0x0074,0x0068,0x0020,0x006E,0x0061,0x006D,0x0065,0x0020,0x0027,0x007B,0x0031,0x007D,0x0027,0x002E,
+      0x00 }
+  , { 0x0043,0x0061,0x0072,0x0064,0x0069,0x006E,0x0061,0x006C,0x0069,0x0074,0x0079,0x0020,0x006F,0x0066,0x0020,0x0066,0x0069,0x0065,0x006C,0x0064,0x0073,0x0020,0x0066,0x006F,0x0072,0x0020,0x006B,0x0065,0x0079,0x0072,0x0065,0x0066,0x0020,0x0027,0x007B,
+      0x0030,0x007D,0x0027,0x0020,0x0061,0x006E,0x0064,0x0020,0x006B,0x0065,0x0079,0x0020,0x0027,0x007B,0x0031,0x007D,0x0027,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x006D,0x0061,0x0074,0x0063,0x0068,0x002E,0x00 }
+  , { 0x0058,0x0070,0x0061,0x0074,0x0068,0x0020,0x0065,0x0078,0x0070,0x0072,0x0065,0x0073,0x0073,0x0069,0x006F,0x006E,0x0020,0x0069,0x0073,0x0020,0x0065,0x0069,0x0074,0x0068,0x0065,0x0072,0x0020,0x006D,0x0069,0x0073,0x0073,0x0069,0x006E,0x0067,0x0020,
+      0x006F,0x0072,0x0020,0x0065,0x006D,0x0070,0x0074,0x0079,0x00 }
+  , { 0x0054,0x0068,0x0065,0x0020,0x007B,0x0076,0x0061,0x006C,0x0075,0x0065,0x0020,0x0063,0x006F,0x006E,0x0073,0x0074,0x0072,0x0061,0x0069,0x006E,0x0074,0x007D,0x0020,0x006F,0x0066,0x0020,0x0061,0x006E,0x0020,0x0061,0x0074,0x0074,0x0072,0x0069,0x0062,
+      0x0075,0x0074,0x0065,0x0020,0x0072,0x0065,0x0066,0x0020,0x0069,0x0073,0x0020,0x006E,0x006F,0x0074,0x0020,0x0066,0x0069,0x0078,0x0065,0x0064,0x0020,0x006F,0x0072,0x0020,0x0064,0x0069,0x0066,0x0066,0x0065,0x0072,0x0065,0x006E,0x0074,0x0020,0x0066,
+      0x0072,0x006F,0x006D,0x0020,0x0074,0x0068,0x0065,0x0020,0x0066,0x0069,0x0078,0x0065,0x0064,0x0020,0x007B,0x0076,0x0061,0x006C,0x0075,0x0065,0x0020,0x0063,0x006F,0x006E,0x0073,0x0074,0x0072,0x0061,0x0069,0x006E,0x0074,0x007D,0x0020,0x006F,0x0066,
+      0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x00 }
+  , { 0x0054,0x0068,0x0065,0x0020,0x007B,0x0074,0x0079,0x0070,0x0065,0x0020,0x0064,0x0065,0x0066,0x0069,0x006E,0x0069,0x0074,0x0069,0x006F,0x006E,0x007D,0x0020,0x0066,0x006F,0x0072,0x0020,0x0061,0x0074,0x0074,0x0072,0x0069,0x0062,0x0075,0x0074,0x0065,
+      0x0020,0x0027,0x007B,0x0030,0x007D,0x003D,0x007B,0x0031,0x007D,0x0027,0x0020,0x0069,0x0073,0x0020,0x006F,0x0072,0x0020,0x0069,0x0073,0x0020,0x0064,0x0065,0x0072,0x0069,0x0076,0x0065,0x0064,0x0020,0x0066,0x0072,0x006F,0x006D,0x0020,0x0049,0x0044,
+      0x002C,0x0020,0x0061,0x006E,0x0064,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x006E,0x006F,0x0074,0x0020,0x0068,0x0061,0x0076,0x0065,0x0020,0x007B,0x0076,0x0061,0x006C,0x0075,0x0065,0x0020,0x0063,0x006F,0x006E,0x0073,0x0074,0x0072,0x0061,0x0069,
+      0x006E,0x0074,0x007D,0x00 }
+  , { 0x004D,0x006F,0x0072,0x0065,0x0020,0x0074,0x0068,0x0061,0x006E,0x0020,0x006F,0x006E,0x0065,0x0020,0x0061,0x0074,0x0074,0x0072,0x0069,0x0062,0x0075,0x0074,0x0065,0x0020,0x0064,0x0065,0x0072,0x0069,0x0076,0x0065,0x0064,0x0020,0x0066,0x0072,0x006F,
+      0x006D,0x0020,0x0074,0x0079,0x0070,0x0065,0x0020,0x0049,0x0044,0x0020,0x0063,0x0061,0x006E,0x006E,0x006F,0x0074,0x0020,0x0061,0x0070,0x0070,0x0065,0x0061,0x0072,0x0020,0x0069,0x006E,0x0020,0x0074,0x0068,0x0065,0x0020,0x0073,0x0061,0x006D,0x0065,
+      0x0020,0x0063,0x006F,0x006D,0x0070,0x006C,0x0065,0x0078,0x0020,0x0074,0x0079,0x0070,0x0065,0x0020,0x002D,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0069,0x0067,0x006E,0x006F,0x0072,0x0065,0x0064,0x00 }
+  , { 0x004D,0x006F,0x0072,0x0065,0x0020,0x0074,0x0068,0x0061,0x006E,0x0020,0x006F,0x006E,0x0065,0x0020,0x0061,0x0074,0x0074,0x0072,0x0069,0x0062,0x0075,0x0074,0x0065,0x0020,0x0064,0x0065,0x0072,0x0069,0x0076,0x0065,0x0064,0x0020,0x0066,0x0072,0x006F,
+      0x006D,0x0020,0x0074,0x0079,0x0070,0x0065,0x0020,0x0049,0x0044,0x0020,0x0063,0x0061,0x006E,0x006E,0x006F,0x0074,0x0020,0x0061,0x0070,0x0070,0x0065,0x0061,0x0072,0x0020,0x0069,0x006E,0x0020,0x0074,0x0068,0x0065,0x0020,0x0073,0x0061,0x006D,0x0065,
+      0x0020,0x0061,0x0074,0x0074,0x0072,0x0069,0x0062,0x0075,0x0074,0x0065,0x0020,0x0067,0x0072,0x006F,0x0075,0x0070,0x0020,0x002D,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0069,0x0067,0x006E,0x006F,0x0072,0x0065,0x0064,0x00 }
+  , { 0x0027,0x0027,0x0020,0x0069,0x0073,0x0020,0x006E,0x006F,0x0074,0x0020,0x0061,0x0020,0x006C,0x0065,0x0067,0x0061,0x006C,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0020,0x0066,0x006F,0x0072,0x0020,0x0074,0x0068,0x0065,0x0020,0x0074,0x0061,0x0072,
+      0x0067,0x0065,0x0074,0x004E,0x0061,0x006D,0x0065,0x0073,0x0070,0x0061,0x0063,0x0065,0x0020,0x0061,0x0074,0x0074,0x0072,0x0069,0x0062,0x0075,0x0074,0x0065,0x003B,0x0020,0x0074,0x0068,0x0065,0x0020,0x0061,0x0074,0x0074,0x0072,0x0069,0x0062,0x0075,
+      0x0074,0x0065,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0062,0x0065,0x0020,0x0061,0x0062,0x0073,0x0065,0x006E,0x0074,0x0020,0x006F,0x0072,0x0020,0x0063,0x006F,0x006E,0x0074,0x0061,0x0069,0x006E,0x0020,0x0061,0x0020,0x006E,0x006F,0x006E,0x0065,
+      0x006D,0x0070,0x0074,0x0079,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x00 }
+  , { 0x007B,0x0030,0x007D,0x00 }
+  , { 0x0041,0x006E,0x0020,0x0065,0x0078,0x0063,0x0065,0x0070,0x0074,0x0069,0x006F,0x006E,0x0020,0x006F,0x0063,0x0063,0x0075,0x0072,0x0072,0x0065,0x0064,0x0021,0x0020,0x0054,0x0079,0x0070,0x0065,0x003A,0x007B,0x0030,0x007D,0x002C,0x0020,0x004D,0x0065,
+      0x0073,0x0073,0x0061,0x0067,0x0065,0x003A,0x007B,0x0031,0x007D,0x00 }
+  , { 0x0049,0x006E,0x0076,0x0061,0x006C,0x0069,0x0064,0x0020,0x0052,0x0065,0x0064,0x0065,0x0066,0x0069,0x006E,0x0065,0x003A,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0068,0x0061,0x0073,0x0020,0x0061,0x006C,0x0072,0x0065,0x0061,0x0064,0x0079,
+      0x0020,0x0062,0x0065,0x0065,0x006E,0x0020,0x0069,0x006E,0x0063,0x006C,0x0075,0x0064,0x0065,0x0064,0x0020,0x006F,0x0072,0x0020,0x0072,0x0065,0x0064,0x0065,0x0066,0x0069,0x006E,0x0065,0x0064,0x00 }
+  , { 0x0053,0x0063,0x0068,0x0065,0x006D,0x0061,0x0020,0x0052,0x0065,0x0070,0x0072,0x0065,0x0073,0x0065,0x006E,0x0074,0x0061,0x0074,0x0069,0x006F,0x006E,0x0020,0x0043,0x006F,0x006E,0x0073,0x0074,0x0072,0x0061,0x0069,0x006E,0x0074,0x003A,0x0020,0x004E,
+      0x0061,0x006D,0x0065,0x0073,0x0070,0x0061,0x0063,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0069,0x0073,0x0020,0x0072,0x0065,0x0066,0x0065,0x0072,0x0065,0x006E,0x0063,0x0065,0x0064,0x0020,0x0077,0x0069,0x0074,0x0068,0x006F,0x0075,
+      0x0074,0x0020,0x003C,0x0069,0x006D,0x0070,0x006F,0x0072,0x0074,0x003E,0x0020,0x0064,0x0065,0x0063,0x006C,0x0061,0x0072,0x0061,0x0074,0x0069,0x006F,0x006E,0x00 }
+  , { 0x0041,0x006E,0x0020,0x0027,0x0061,0x006C,0x006C,0x0027,0x0020,0x006D,0x006F,0x0064,0x0065,0x006C,0x0020,0x0067,0x0072,0x006F,0x0075,0x0070,0x0020,0x0074,0x0068,0x0061,0x0074,0x0027,0x0073,0x0020,0x0070,0x0061,0x0072,0x0074,0x0020,0x006F,0x0066,
+      0x0020,0x0061,0x0020,0x0063,0x006F,0x006D,0x0070,0x006C,0x0065,0x0078,0x0020,0x0074,0x0079,0x0070,0x0065,0x0020,0x0064,0x0065,0x0066,0x0069,0x006E,0x0069,0x0074,0x0069,0x006F,0x006E,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0063,0x006F,0x006E,
+      0x0073,0x0074,0x0069,0x0074,0x0075,0x0074,0x0065,0x0020,0x0074,0x0068,0x0065,0x0020,0x0065,0x006E,0x0074,0x0069,0x0072,0x0065,0x0020,0x0063,0x006F,0x006E,0x0074,0x0065,0x006E,0x0074,0x0020,0x0074,0x0079,0x0070,0x0065,0x0020,0x006F,0x0066,0x0020,
+      0x0074,0x0068,0x0065,0x0020,0x0064,0x0065,0x0066,0x0069,0x006E,0x0069,0x0074,0x0069,0x006F,0x006E,0x00 }
+  , { 0x0041,0x006E,0x0020,0x003C,0x0061,0x006E,0x006E,0x006F,0x0074,0x0061,0x0074,0x0069,0x006F,0x006E,0x003E,0x0020,0x0063,0x0061,0x006E,0x0020,0x006F,0x006E,0x006C,0x0079,0x0020,0x0063,0x006F,0x006E,0x0074,0x0061,0x0069,0x006E,0x0020,0x003C,0x0061,
+      0x0070,0x0070,0x0069,0x006E,0x0066,0x006F,0x003E,0x0020,0x0061,0x006E,0x0064,0x0020,0x003C,0x0064,0x006F,0x0063,0x0075,0x006D,0x0065,0x006E,0x0074,0x0061,0x0074,0x0069,0x006F,0x006E,0x003E,0x0020,0x0065,0x006C,0x0065,0x006D,0x0065,0x006E,0x0074,
+      0x0073,0x00 }
+  , { 0x0049,0x006E,0x0076,0x0061,0x006C,0x0069,0x0064,0x0020,0x0066,0x0061,0x0063,0x0065,0x0074,0x0020,0x006E,0x0061,0x006D,0x0065,0x003A,0x0020,0x007B,0x0030,0x007D,0x00 }
+  , { 0x0054,0x0068,0x0065,0x0020,0x0072,0x006F,0x006F,0x0074,0x0020,0x0065,0x006C,0x0065,0x006D,0x0065,0x006E,0x0074,0x0020,0x006E,0x0061,0x006D,0x0065,0x0020,0x006F,0x0066,0x0020,0x0061,0x006E,0x0020,0x0058,0x004D,0x004C,0x0020,0x0053,0x0063,0x0068,
+      0x0065,0x006D,0x0061,0x0020,0x0073,0x0068,0x006F,0x0075,0x006C,0x0064,0x0020,0x0062,0x0065,0x0020,0x0027,0x0073,0x0063,0x0068,0x0065,0x006D,0x0061,0x0027,0x002E,0x00 }
+  , { 0x0043,0x0069,0x0072,0x0063,0x0075,0x006C,0x0061,0x0072,0x0020,0x0073,0x0075,0x0062,0x0073,0x0074,0x0069,0x0074,0x0075,0x0074,0x0069,0x006F,0x006E,0x0020,0x0067,0x0072,0x006F,0x0075,0x0070,0x0073,0x0020,0x0061,0x0072,0x0065,0x0020,0x0064,0x0069,
+      0x0073,0x0061,0x006C,0x006C,0x006F,0x0077,0x0065,0x0064,0x0020,0x0066,0x006F,0x0072,0x0020,0x0065,0x006C,0x0065,0x006D,0x0065,0x006E,0x0074,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x002E,0x00 }
+  , { 0x0046,0x006F,0x0072,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0074,0x006F,0x0020,0x0062,0x0065,0x0020,0x0061,0x0020,0x006D,0x0065,0x006D,0x0062,0x0065,0x0072,0x0020,0x006F,0x0066,0x0020,0x0074,0x0068,0x0065,0x0020,0x0073,0x0075,0x0062,
+      0x0073,0x0074,0x0069,0x0074,0x0075,0x0074,0x0069,0x006F,0x006E,0x0020,0x0067,0x0072,0x006F,0x0075,0x0070,0x0020,0x0073,0x0065,0x0074,0x0020,0x006F,0x0066,0x0020,0x0027,0x007B,0x0031,0x007D,0x0027,0x002C,0x0020,0x0069,0x0074,0x0073,0x0020,0x007B,
+      0x0061,0x0062,0x0073,0x0074,0x0072,0x0061,0x0063,0x0074,0x007D,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0062,0x0065,0x0020,0x0066,0x0061,0x006C,0x0073,0x0065,0x002E,0x00 }
+  , { 0x0054,0x0068,0x0065,0x0020,0x006E,0x0061,0x006D,0x0065,0x0073,0x0070,0x0061,0x0063,0x0065,0x0020,0x006F,0x0066,0x0020,0x0065,0x006C,0x0065,0x006D,0x0065,0x006E,0x0074,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x006D,0x0075,0x0073,0x0074,
+      0x0020,0x0062,0x0065,0x0020,0x0066,0x0072,0x006F,0x006D,0x0020,0x0074,0x0068,0x0065,0x0020,0x0073,0x0063,0x0068,0x0065,0x006D,0x0061,0x0020,0x006E,0x0061,0x006D,0x0065,0x0073,0x0070,0x0061,0x0063,0x0065,0x002E,0x00 }
+  , { 0x0054,0x0068,0x0065,0x0020,0x007B,0x0074,0x0061,0x0072,0x0067,0x0065,0x0074,0x0020,0x006E,0x0061,0x006D,0x0065,0x0073,0x0070,0x0061,0x0063,0x0065,0x007D,0x0020,0x006F,0x0066,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x006D,0x0075,0x0073,
+      0x0074,0x0020,0x006E,0x006F,0x0074,0x0020,0x006D,0x0061,0x0074,0x0063,0x0068,0x0020,0x0027,0x0068,0x0074,0x0074,0x0070,0x003A,0x002F,0x002F,0x0077,0x0077,0x0077,0x002E,0x0077,0x0033,0x002E,0x006F,0x0072,0x0067,0x002F,0x0032,0x0030,0x0030,0x0031,
+      0x002F,0x0058,0x004D,0x004C,0x0053,0x0063,0x0068,0x0065,0x006D,0x0061,0x002D,0x0069,0x006E,0x0073,0x0074,0x0061,0x006E,0x0063,0x0065,0x0027,0x002E,0x00 }
+  , { 0x0054,0x0068,0x0065,0x0020,0x006E,0x0061,0x006D,0x0065,0x0073,0x0070,0x0061,0x0063,0x0065,0x0020,0x0064,0x0065,0x0063,0x006C,0x0061,0x0072,0x0061,0x0074,0x0069,0x006F,0x006E,0x0020,0x0069,0x0073,0x0020,0x0069,0x006E,0x0076,0x0061,0x006C,0x0069,
+      0x0064,0x002E,0x00 }
+  , { 0x004E,0x0061,0x006D,0x0065,0x0073,0x0070,0x0061,0x0063,0x0065,0x0020,0x0066,0x0069,0x0078,0x0075,0x0070,0x0020,0x0063,0x0061,0x006E,0x006E,0x006F,0x0074,0x0020,0x0062,0x0065,0x0020,0x0070,0x0065,0x0072,0x0066,0x006F,0x0072,0x006D,0x0065,0x0064,
+      0x0020,0x006F,0x006E,0x0020,0x0061,0x0020,0x0044,0x004F,0x004D,0x0020,0x004C,0x0065,0x0076,0x0065,0x006C,0x0020,0x0031,0x0020,0x004E,0x006F,0x0064,0x0065,0x002E,0x00 }
+  , { 0x0045,0x005F,0x0045,0x006E,0x0064,0x00 }
+  , { 0x0046,0x005F,0x0053,0x0074,0x0061,0x0072,0x0074,0x00 }
+  , { 0x0054,0x0068,0x0065,0x0020,0x0070,0x0061,0x0072,0x0073,0x0065,0x0072,0x0020,0x0068,0x0061,0x0073,0x0020,0x0065,0x006E,0x0063,0x006F,0x0075,0x006E,0x0074,0x0065,0x0072,0x0065,0x0064,0x0020,0x006D,0x006F,0x0072,0x0065,0x0020,0x0074,0x0068,0x0061,
+      0x006E,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0065,0x006E,0x0074,0x0069,0x0074,0x0079,0x0020,0x0065,0x0078,0x0070,0x0061,0x006E,0x0073,0x0069,0x006F,0x006E,0x0073,0x0020,0x0069,0x006E,0x0020,0x0074,0x0068,0x0069,0x0073,0x0020,0x0064,
+      0x006F,0x0063,0x0075,0x006D,0x0065,0x006E,0x0074,0x003B,0x0020,0x0074,0x0068,0x0069,0x0073,0x0020,0x0069,0x0073,0x0020,0x0074,0x0068,0x0065,0x0020,0x006C,0x0069,0x006D,0x0069,0x0074,0x0020,0x0069,0x006D,0x0070,0x006F,0x0073,0x0065,0x0064,0x0020,
+      0x0062,0x0079,0x0020,0x0074,0x0068,0x0065,0x0020,0x0061,0x0070,0x0070,0x006C,0x0069,0x0063,0x0061,0x0074,0x0069,0x006F,0x006E,0x002E,0x00 }
+  , { 0x0045,0x0078,0x0070,0x0065,0x0063,0x0074,0x0065,0x0064,0x0020,0x0063,0x006F,0x006D,0x006D,0x0065,0x006E,0x0074,0x0020,0x006F,0x0072,0x0020,0x0043,0x0044,0x0041,0x0054,0x0041,0x00 }
+  , { 0x0045,0x0078,0x0070,0x0065,0x0063,0x0074,0x0065,0x0064,0x0020,0x0061,0x006E,0x0020,0x0061,0x0074,0x0074,0x0072,0x0069,0x0062,0x0075,0x0074,0x0065,0x0020,0x006E,0x0061,0x006D,0x0065,0x00 }
+  , { 0x0045,0x0078,0x0070,0x0065,0x0063,0x0074,0x0065,0x0064,0x0020,0x0061,0x0020,0x006E,0x006F,0x0074,0x0061,0x0074,0x0069,0x006F,0x006E,0x0020,0x006E,0x0061,0x006D,0x0065,0x00 }
+  , { 0x0052,0x0065,0x0070,0x0065,0x0074,0x0069,0x0074,0x0069,0x006F,0x006E,0x0020,0x006F,0x0066,0x0020,0x0069,0x006E,0x0064,0x0069,0x0076,0x0069,0x0064,0x0075,0x0061,0x006C,0x0020,0x0065,0x006C,0x0065,0x006D,0x0065,0x006E,0x0074,0x0073,0x0020,0x0069,
+      0x0073,0x0020,0x006E,0x006F,0x0074,0x0020,0x006C,0x0065,0x0067,0x0061,0x006C,0x0020,0x0066,0x006F,0x0072,0x0020,0x006D,0x0069,0x0078,0x0065,0x0064,0x0020,0x0063,0x006F,0x006E,0x0074,0x0065,0x006E,0x0074,0x0020,0x006D,0x006F,0x0064,0x0065,0x006C,
+      0x0073,0x00 }
+  , { 0x0042,0x0061,0x0064,0x0020,0x0064,0x0065,0x0066,0x0061,0x0075,0x006C,0x0074,0x0020,0x0061,0x0074,0x0074,0x0072,0x0069,0x0062,0x0075,0x0074,0x0065,0x0020,0x0064,0x0065,0x0063,0x006C,0x0061,0x0072,0x0061,0x0074,0x0069,0x006F,0x006E,0x00 }
+  , { 0x0045,0x0078,0x0070,0x0065,0x0063,0x0074,0x0065,0x0064,0x0020,0x0064,0x0065,0x0066,0x0061,0x0075,0x006C,0x0074,0x0020,0x0061,0x0074,0x0074,0x0072,0x0069,0x0062,0x0075,0x0074,0x0065,0x0020,0x0064,0x0065,0x0063,0x006C,0x0061,0x0072,0x0061,0x0074,
+      0x0069,0x006F,0x006E,0x002C,0x0020,0x0061,0x0073,0x0073,0x0075,0x006D,0x0069,0x006E,0x0067,0x0020,0x0023,0x0049,0x004D,0x0050,0x004C,0x0049,0x0045,0x0044,0x0020,0x00 }
+  , { 0x0041,0x0074,0x0074,0x0072,0x0069,0x0062,0x0075,0x0074,0x0065,0x0020,0x006C,0x0069,0x0073,0x0074,0x0020,0x0073,0x0079,0x006E,0x0074,0x0061,0x0078,0x0020,0x0065,0x0072,0x0072,0x006F,0x0072,0x00 }
+  , { 0x0045,0x0078,0x0070,0x0065,0x0063,0x0074,0x0065,0x0064,0x0020,0x0065,0x0071,0x0075,0x0061,0x006C,0x0020,0x0073,0x0069,0x0067,0x006E,0x00 }
+  , { 0x0044,0x0075,0x0070,0x006C,0x0069,0x0063,0x0061,0x0074,0x0069,0x006F,0x006E,0x0020,0x0061,0x0074,0x0074,0x0072,0x0069,0x0062,0x0075,0x0074,0x0065,0x0020,0x006E,0x0061,0x006D,0x0065,0x00 }
+  , { 0x0042,0x0061,0x0064,0x0020,0x0049,0x0044,0x002C,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x002C,0x0020,0x0066,0x006F,0x0072,0x0020,0x0078,0x006D,0x006C,0x003A,0x006C,0x0061,0x006E,0x0067,0x0020,0x0061,0x0074,0x0074,0x0072,0x0069,0x0062,0x0075,
+      0x0074,0x0065,0x00 }
+  , { 0x0045,0x0078,0x0070,0x0065,0x0063,0x0074,0x0065,0x0064,0x0020,0x0061,0x006E,0x0020,0x0065,0x006C,0x0065,0x006D,0x0065,0x006E,0x0074,0x0020,0x006E,0x0061,0x006D,0x0065,0x00 }
+  , { 0x004D,0x0075,0x0073,0x0074,0x0020,0x0073,0x0074,0x0061,0x0072,0x0074,0x0020,0x0077,0x0069,0x0074,0x0068,0x0020,0x0061,0x006E,0x0020,0x0058,0x004D,0x004C,0x0044,0x0065,0x0063,0x006C,0x00 }
+  , { 0x0043,0x006F,0x006D,0x006D,0x0065,0x006E,0x0074,0x0073,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0073,0x0074,0x0061,0x0072,0x0074,0x0020,0x0077,0x0069,0x0074,0x0068,0x0020,0x003C,0x0021,0x002D,0x002D,0x00 }
+  , { 0x0049,0x006E,0x0076,0x0061,0x006C,0x0069,0x0064,0x0020,0x0064,0x006F,0x0063,0x0075,0x006D,0x0065,0x006E,0x0074,0x0020,0x0073,0x0074,0x0072,0x0075,0x0063,0x0074,0x0075,0x0072,0x0065,0x00 }
+  , { 0x0045,0x0078,0x0070,0x0065,0x0063,0x0074,0x0065,0x0064,0x0020,0x0061,0x0020,0x0027,0x0076,0x0065,0x0072,0x0073,0x0069,0x006F,0x006E,0x003D,0x0027,0x002C,0x0020,0x0027,0x0065,0x006E,0x0063,0x006F,0x0064,0x0069,0x006E,0x0067,0x003D,0x0027,0x002C,
+      0x0020,0x006F,0x0072,0x0020,0x0027,0x0073,0x0074,0x0061,0x006E,0x0064,0x0061,0x006C,0x006F,0x006E,0x0065,0x003D,0x0027,0x00 }
+  , { 0x0042,0x0061,0x0064,0x0020,0x0058,0x004D,0x004C,0x0020,0x0076,0x0065,0x0072,0x0073,0x0069,0x006F,0x006E,0x0020,0x0073,0x0074,0x0072,0x0069,0x006E,0x0067,0x00 }
+  , { 0x0055,0x006E,0x0073,0x0075,0x0070,0x0070,0x006F,0x0072,0x0074,0x0065,0x0064,0x0020,0x0058,0x004D,0x004C,0x0020,0x0076,0x0065,0x0072,0x0073,0x0069,0x006F,0x006E,0x002C,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x00 }
+  , { 0x0055,0x006E,0x0074,0x0065,0x0072,0x006D,0x0069,0x006E,0x0061,0x0074,0x0065,0x0064,0x0020,0x0058,0x004D,0x004C,0x0020,0x0064,0x0065,0x0063,0x006C,0x00 }
+  , { 0x0042,0x0061,0x0064,0x0020,0x0058,0x004D,0x004C,0x0020,0x0065,0x006E,0x0063,0x006F,0x0064,0x0069,0x006E,0x0067,0x0020,0x0064,0x0065,0x0063,0x006C,0x0061,0x0072,0x0061,0x0074,0x0069,0x006F,0x006E,0x002C,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,
+      0x00 }
+  , { 0x0042,0x0061,0x0064,0x0020,0x0073,0x0074,0x0061,0x006E,0x0064,0x0061,0x006C,0x006F,0x006E,0x0065,0x0020,0x0064,0x0065,0x0063,0x006C,0x0061,0x0072,0x0061,0x0074,0x0069,0x006F,0x006E,0x00 }
+  , { 0x0055,0x006E,0x0074,0x0065,0x0072,0x006D,0x0069,0x006E,0x0061,0x0074,0x0065,0x0064,0x0020,0x0063,0x006F,0x006D,0x006D,0x0065,0x006E,0x0074,0x00 }
+  , { 0x0050,0x0072,0x006F,0x0063,0x0065,0x0073,0x0073,0x0069,0x006E,0x0067,0x0020,0x0069,0x006E,0x0073,0x0074,0x0072,0x0075,0x0063,0x0074,0x0069,0x006F,0x006E,0x0020,0x006E,0x0061,0x006D,0x0065,0x0020,0x0065,0x0078,0x0070,0x0065,0x0063,0x0074,0x0065,
+      0x0064,0x00 }
+  , { 0x0055,0x006E,0x0074,0x0065,0x0072,0x006D,0x0069,0x006E,0x0061,0x0074,0x0065,0x0064,0x0020,0x0070,0x0072,0x006F,0x0063,0x0065,0x0073,0x0073,0x0069,0x006E,0x0067,0x0020,0x0069,0x006E,0x0073,0x0074,0x0072,0x0075,0x0063,0x0074,0x0069,0x006F,0x006E,
+      0x00 }
+  , { 0x0049,0x006E,0x0076,0x0061,0x006C,0x0069,0x0064,0x0020,0x0063,0x0068,0x0061,0x0072,0x0061,0x0063,0x0074,0x0065,0x0072,0x0020,0x0028,0x0055,0x006E,0x0069,0x0063,0x006F,0x0064,0x0065,0x003A,0x0020,0x0030,0x0078,0x007B,0x0030,0x007D,0x0029,0x00 }
+  , { 0x0055,0x006E,0x0065,0x0078,0x0070,0x0065,0x0063,0x0074,0x0065,0x0064,0x0020,0x0074,0x0065,0x0078,0x0074,0x0020,0x0062,0x0065,0x0066,0x006F,0x0072,0x0065,0x0020,0x0072,0x006F,0x006F,0x0074,0x0020,0x0065,0x006C,0x0065,0x006D,0x0065,0x006E,0x0074,
+      0x00 }
+  , { 0x0055,0x006E,0x0074,0x0065,0x0072,0x006D,0x0069,0x006E,0x0061,0x0074,0x0065,0x0064,0x0020,0x0073,0x0074,0x0061,0x0072,0x0074,0x0020,0x0074,0x0061,0x0067,0x002C,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x00 }
+  , { 0x0045,0x0078,0x0070,0x0065,0x0063,0x0074,0x0065,0x0064,0x0020,0x0061,0x006E,0x0020,0x0061,0x0074,0x0074,0x0072,0x0069,0x0062,0x0075,0x0074,0x0065,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x00 }
+  , { 0x0055,0x006E,0x0074,0x0065,0x0072,0x006D,0x0069,0x006E,0x0061,0x0074,0x0065,0x0064,0x0020,0x0065,0x006E,0x0064,0x0020,0x0074,0x0061,0x0067,0x002C,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x00 }
+  , { 0x0045,0x0078,0x0070,0x0065,0x0063,0x0074,0x0065,0x0064,0x0020,0x0074,0x0079,0x0070,0x0065,0x0020,0x0028,0x0043,0x0044,0x0041,0x0054,0x0041,0x002C,0x0020,0x0049,0x0044,0x002C,0x0020,0x004E,0x004D,0x0054,0x004F,0x004B,0x0045,0x004E,0x002C,0x0020,
+      0x002E,0x002E,0x0029,0x002C,0x0020,0x0066,0x006F,0x0072,0x0020,0x0061,0x0074,0x0074,0x0072,0x0069,0x0062,0x0075,0x0074,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x006F,0x0066,0x0020,0x0065,0x006C,0x0065,0x006D,0x0065,0x006E,0x0074,
+      0x0020,0x0027,0x007B,0x0031,0x007D,0x0027,0x00 }
+  , { 0x0045,0x0078,0x0070,0x0065,0x0063,0x0074,0x0065,0x0064,0x0020,0x0065,0x006E,0x0064,0x0020,0x006F,0x0066,0x0020,0x0074,0x0061,0x0067,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x00 }
+  , { 0x0045,0x0078,0x0070,0x0065,0x0063,0x0074,0x0065,0x0064,0x0020,0x0074,0x0061,0x0067,0x0020,0x006E,0x0061,0x006D,0x0065,0x002C,0x0020,0x0063,0x006F,0x006D,0x006D,0x0065,0x006E,0x0074,0x002C,0x0020,0x0050,0x0049,0x002C,0x0020,0x006F,0x0072,0x0020,
+      0x006F,0x0074,0x0068,0x0065,0x0072,0x0020,0x006D,0x0061,0x0072,0x006B,0x0075,0x0070,0x00 }
+  , { 0x004E,0x006F,0x0074,0x0020,0x0076,0x0061,0x006C,0x0069,0x0064,0x0020,0x0061,0x0066,0x0074,0x0065,0x0072,0x0020,0x0063,0x006F,0x006E,0x0074,0x0065,0x006E,0x0074,0x00 }
+  , { 0x0045,0x0078,0x0070,0x0065,0x0063,0x0074,0x0065,0x0064,0x0020,0x0063,0x006F,0x006D,0x006D,0x0065,0x006E,0x0074,0x00 }
+  , { 0x0045,0x0078,0x0070,0x0065,0x0063,0x0074,0x0065,0x0064,0x0020,0x0063,0x006F,0x006D,0x006D,0x0065,0x006E,0x0074,0x0020,0x006F,0x0072,0x0020,0x0070,0x0072,0x006F,0x0063,0x0065,0x0073,0x0073,0x0069,0x006E,0x0067,0x0020,0x0069,0x006E,0x0073,0x0074,
+      0x0072,0x0075,0x0063,0x0074,0x0069,0x006F,0x006E,0x00 }
+  , { 0x0045,0x0078,0x0070,0x0065,0x0063,0x0074,0x0065,0x0064,0x0020,0x0077,0x0068,0x0069,0x0074,0x0065,0x0073,0x0070,0x0061,0x0063,0x0065,0x00 }
+  , { 0x004E,0x006F,0x0020,0x0072,0x006F,0x006F,0x0074,0x0020,0x0065,0x006C,0x0065,0x006D,0x0065,0x006E,0x0074,0x0020,0x0069,0x006E,0x0020,0x0044,0x004F,0x0043,0x0054,0x0059,0x0050,0x0045,0x00 }
+  , { 0x0045,0x0078,0x0070,0x0065,0x0063,0x0074,0x0065,0x0064,0x0020,0x0071,0x0075,0x006F,0x0074,0x0065,0x0064,0x0020,0x0073,0x0074,0x0072,0x0069,0x006E,0x0067,0x00 }
+  , { 0x0045,0x0078,0x0070,0x0065,0x0063,0x0074,0x0065,0x0064,0x0020,0x0070,0x0075,0x0062,0x006C,0x0069,0x0063,0x0020,0x0069,0x0064,0x00 }
+  , { 0x0049,0x006E,0x0076,0x0061,0x006C,0x0069,0x0064,0x0020,0x0063,0x0068,0x0061,0x0072,0x0061,0x0063,0x0074,0x0065,0x0072,0x0020,0x0069,0x006E,0x0020,0x0070,0x0075,0x0062,0x006C,0x0069,0x0063,0x0020,0x0069,0x0064,0x0020,0x0028,0x0055,0x006E,0x0069,
+      0x0063,0x006F,0x0064,0x0065,0x003A,0x0020,0x0030,0x0078,0x007B,0x0030,0x007D,0x0029,0x00 }
+  , { 0x0055,0x006E,0x0074,0x0065,0x0072,0x006D,0x0069,0x006E,0x0061,0x0074,0x0065,0x0064,0x0020,0x0044,0x004F,0x0043,0x0054,0x0059,0x0050,0x0045,0x0020,0x0064,0x0065,0x0063,0x006C,0x0061,0x0072,0x0061,0x0074,0x0069,0x006F,0x006E,0x00 }
+  , { 0x0049,0x006E,0x0076,0x0061,0x006C,0x0069,0x0064,0x0020,0x0063,0x0068,0x0061,0x0072,0x0061,0x0063,0x0074,0x0065,0x0072,0x0020,0x0069,0x006E,0x0020,0x0069,0x006E,0x0074,0x0065,0x0072,0x006E,0x0061,0x006C,0x0020,0x0073,0x0075,0x0062,0x0073,0x0065,
+      0x0074,0x0020,0x0028,0x0055,0x006E,0x0069,0x0063,0x006F,0x0064,0x0065,0x003A,0x0020,0x0030,0x0078,0x007B,0x0030,0x007D,0x0029,0x00 }
+  , { 0x0045,0x0078,0x0070,0x0065,0x0063,0x0074,0x0065,0x0064,0x0020,0x0043,0x0044,0x0041,0x0054,0x0041,0x0020,0x0073,0x0065,0x0063,0x0074,0x0069,0x006F,0x006E,0x00 }
+  , { 0x0049,0x006E,0x0076,0x0061,0x006C,0x0069,0x0064,0x0020,0x0069,0x006E,0x0069,0x0074,0x0069,0x0061,0x006C,0x0020,0x006E,0x0061,0x006D,0x0065,0x0020,0x0063,0x0068,0x0061,0x0072,0x0061,0x0063,0x0074,0x0065,0x0072,0x00 }
+  , { 0x0049,0x006E,0x0076,0x0061,0x006C,0x0069,0x0064,0x0020,0x006E,0x0061,0x006D,0x0065,0x0020,0x0063,0x0068,0x0061,0x0072,0x0061,0x0063,0x0074,0x0065,0x0072,0x00 }
+  , { 0x0055,0x006E,0x0065,0x0078,0x0070,0x0065,0x0063,0x0074,0x0065,0x0064,0x0020,0x0077,0x0068,0x0069,0x0074,0x0065,0x0073,0x0070,0x0061,0x0063,0x0065,0x00 }
+  , { 0x0049,0x006E,0x0076,0x0061,0x006C,0x0069,0x0064,0x0020,0x0063,0x0068,0x0061,0x0072,0x0061,0x0063,0x0074,0x0065,0x0072,0x0020,0x0069,0x006E,0x0020,0x0061,0x0074,0x0074,0x0072,0x0069,0x0062,0x0075,0x0074,0x0065,0x0020,0x0076,0x0061,0x006C,0x0075,
+      0x0065,0x0020,0x007B,0x0030,0x007D,0x0020,0x0028,0x0055,0x006E,0x0069,0x0063,0x006F,0x0064,0x0065,0x003A,0x0020,0x0030,0x0078,0x007B,0x0031,0x007D,0x0029,0x00 }
+  , { 0x0045,0x0078,0x0070,0x0065,0x0063,0x0074,0x0065,0x0064,0x0020,0x0061,0x0020,0x006D,0x0061,0x0072,0x006B,0x0075,0x0070,0x0020,0x0064,0x0065,0x0063,0x006C,0x0061,0x0072,0x0061,0x0074,0x0069,0x006F,0x006E,0x00 }
+  , { 0x0054,0x0065,0x0078,0x0074,0x0020,0x0064,0x0065,0x0063,0x006C,0x0061,0x0072,0x0061,0x0074,0x0069,0x006F,0x006E,0x0020,0x006E,0x006F,0x0074,0x0020,0x006C,0x0065,0x0067,0x0061,0x006C,0x0020,0x0068,0x0065,0x0072,0x0065,0x00 }
+  , { 0x0043,0x006F,0x006E,0x0064,0x0069,0x0074,0x0069,0x006F,0x006E,0x0061,0x006C,0x0020,0x0073,0x0065,0x0063,0x0074,0x0069,0x006F,0x006E,0x0020,0x0069,0x006E,0x0020,0x0069,0x006E,0x0074,0x0065,0x0072,0x006E,0x0061,0x006C,0x0020,0x0073,0x0075,0x0062,
+      0x0073,0x0065,0x0074,0x00 }
+  , { 0x0045,0x0078,0x0070,0x0065,0x0063,0x0074,0x0065,0x0064,0x0020,0x0070,0x0061,0x0072,0x0061,0x006D,0x0065,0x0074,0x0065,0x0072,0x0020,0x0065,0x006E,0x0074,0x0069,0x0074,0x0079,0x0020,0x006E,0x0061,0x006D,0x0065,0x00 }
+  , { 0x0055,0x006E,0x0074,0x0065,0x0072,0x006D,0x0069,0x006E,0x0061,0x0074,0x0065,0x0064,0x0020,0x0065,0x006E,0x0074,0x0069,0x0074,0x0079,0x0020,0x0064,0x0065,0x0063,0x006C,0x0061,0x0072,0x0061,0x0074,0x0069,0x006F,0x006E,0x002C,0x0020,0x0027,0x007B,
+      0x0030,0x007D,0x0027,0x00 }
+  , { 0x0049,0x006E,0x0076,0x0061,0x006C,0x0069,0x0064,0x0020,0x0063,0x0068,0x0061,0x0072,0x0061,0x0063,0x0074,0x0065,0x0072,0x0020,0x0072,0x0065,0x0066,0x0065,0x0072,0x0065,0x006E,0x0063,0x0065,0x00 }
+  , { 0x0055,0x006E,0x0074,0x0065,0x0072,0x006D,0x0069,0x006E,0x0061,0x0074,0x0065,0x0064,0x0020,0x0063,0x0068,0x0061,0x0072,0x0061,0x0063,0x0074,0x0065,0x0072,0x0020,0x0072,0x0065,0x0066,0x0065,0x0072,0x0065,0x006E,0x0063,0x0065,0x00 }
+  , { 0x0045,0x0078,0x0070,0x0065,0x0063,0x0074,0x0065,0x0064,0x0020,0x0065,0x006E,0x0074,0x0069,0x0074,0x0079,0x0020,0x006E,0x0061,0x006D,0x0065,0x0020,0x0066,0x006F,0x0072,0x0020,0x0072,0x0065,0x0066,0x0065,0x0072,0x0065,0x006E,0x0063,0x0065,0x00 }
+  , { 0x0045,0x006E,0x0074,0x0069,0x0074,0x0079,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0077,0x0061,0x0073,0x0020,0x006E,0x006F,0x0074,0x0020,0x0066,0x006F,0x0075,0x006E,0x0064,0x00 }
+  , { 0x0055,0x006E,0x0070,0x0061,0x0072,0x0073,0x0065,0x0064,0x0020,0x0065,0x006E,0x0074,0x0069,0x0074,0x0079,0x0020,0x0072,0x0065,0x0066,0x0065,0x0072,0x0065,0x006E,0x0063,0x0065,0x0073,0x002C,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x002C,0x0020,
+      0x006E,0x006F,0x0074,0x0020,0x0076,0x0061,0x006C,0x0069,0x0064,0x0020,0x0068,0x0065,0x0072,0x0065,0x00 }
+  , { 0x0055,0x006E,0x0074,0x0065,0x0072,0x006D,0x0069,0x006E,0x0061,0x0074,0x0065,0x0064,0x0020,0x0065,0x006E,0x0074,0x0069,0x0074,0x0079,0x0020,0x0072,0x0065,0x0066,0x0065,0x0072,0x0065,0x006E,0x0063,0x0065,0x002C,0x0020,0x0027,0x007B,0x0030,0x007D,
+      0x0027,0x00 }
+  , { 0x0052,0x0065,0x0063,0x0075,0x0072,0x0073,0x0069,0x0076,0x0065,0x0020,0x0065,0x006E,0x0074,0x0069,0x0074,0x0079,0x0020,0x0065,0x0078,0x0070,0x0061,0x006E,0x0073,0x0069,0x006F,0x006E,0x002C,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x00 }
+  , { 0x0050,0x0061,0x0072,0x0074,0x0069,0x0061,0x006C,0x0020,0x006D,0x0061,0x0072,0x006B,0x0075,0x0070,0x0020,0x0069,0x006E,0x0020,0x0065,0x006E,0x0074,0x0069,0x0074,0x0079,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x00 }
+  , { 0x0055,0x006E,0x0074,0x0065,0x0072,0x006D,0x0069,0x006E,0x0061,0x0074,0x0065,0x0064,0x0020,0x0065,0x006C,0x0065,0x006D,0x0065,0x006E,0x0074,0x0020,0x0064,0x0065,0x0063,0x006C,0x0061,0x0072,0x0061,0x0074,0x0069,0x006F,0x006E,0x002C,0x0020,0x0027,
+      0x007B,0x0030,0x007D,0x0027,0x00 }
+  , { 0x0045,0x0078,0x0070,0x0065,0x0063,0x0074,0x0065,0x0064,0x0020,0x0063,0x006F,0x006E,0x0074,0x0065,0x006E,0x0074,0x0020,0x0073,0x0070,0x0065,0x0063,0x0069,0x0066,0x0069,0x0063,0x0061,0x0074,0x0069,0x006F,0x006E,0x0020,0x0065,0x0078,0x0070,0x0072,
+      0x0065,0x0073,0x0073,0x0069,0x006F,0x006E,0x0020,0x0066,0x006F,0x0072,0x0020,0x0065,0x006C,0x0065,0x006D,0x0065,0x006E,0x0074,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x00 }
+  , { 0x0045,0x0078,0x0070,0x0065,0x0063,0x0074,0x0065,0x0064,0x0020,0x0061,0x0073,0x0074,0x0065,0x0072,0x0069,0x0073,0x006B,0x00 }
+  , { 0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0069,0x0073,0x0020,0x0061,0x0020,0x006D,0x0069,0x0078,0x0065,0x0064,0x0020,0x0063,0x006F,0x006E,0x0074,0x0065,0x006E,0x0074,0x0020,0x006D,0x006F,0x0064,0x0065,0x006C,0x0020,0x0074,0x0068,0x0061,0x0074,
+      0x0020,0x0069,0x0073,0x0020,0x006E,0x006F,0x0074,0x0020,0x0074,0x0065,0x0072,0x006D,0x0069,0x006E,0x0061,0x0074,0x0065,0x0064,0x0020,0x0070,0x0072,0x006F,0x0070,0x0065,0x0072,0x006C,0x0079,0x002E,0x00 }
+  , { 0x0045,0x0078,0x0070,0x0065,0x0063,0x0074,0x0065,0x0064,0x0020,0x0073,0x0079,0x0073,0x0074,0x0065,0x006D,0x0020,0x0069,0x0064,0x00 }
+  , { 0x0045,0x0078,0x0070,0x0065,0x0063,0x0074,0x0065,0x0064,0x0020,0x0073,0x0079,0x0073,0x0074,0x0065,0x006D,0x0020,0x006F,0x0072,0x0020,0x0070,0x0075,0x0062,0x006C,0x0069,0x0063,0x0020,0x0069,0x0064,0x00 }
+  , { 0x0055,0x006E,0x0074,0x0065,0x0072,0x006D,0x0069,0x006E,0x0061,0x0074,0x0065,0x0064,0x0020,0x006E,0x006F,0x0074,0x0061,0x0074,0x0069,0x006F,0x006E,0x0020,0x0064,0x0065,0x0063,0x006C,0x0061,0x0072,0x0061,0x0074,0x0069,0x006F,0x006E,0x00 }
+  , { 0x0045,0x0078,0x0070,0x0065,0x0063,0x0074,0x0065,0x0064,0x0020,0x0027,0x002C,0x0027,0x002C,0x0020,0x0027,0x007C,0x0027,0x002C,0x0020,0x006F,0x0072,0x0020,0x0027,0x0029,0x0027,0x0020,0x0063,0x0068,0x0061,0x0072,0x0061,0x0063,0x0074,0x0065,0x0072,
+      0x0073,0x00 }
+  , { 0x0045,0x0078,0x0070,0x0065,0x0063,0x0074,0x0065,0x0064,0x0020,0x0027,0x007C,0x0027,0x0020,0x006F,0x0072,0x0020,0x0027,0x0029,0x0027,0x0020,0x0063,0x0068,0x0061,0x0072,0x0061,0x0063,0x0074,0x0065,0x0072,0x0073,0x00 }
+  , { 0x0045,0x0078,0x0070,0x0065,0x0063,0x0074,0x0065,0x0064,0x0020,0x0027,0x002C,0x0027,0x0020,0x006F,0x0072,0x0020,0x0027,0x0029,0x0027,0x0020,0x0063,0x0068,0x0061,0x0072,0x0061,0x0063,0x0074,0x0065,0x0072,0x0073,0x0020,0x006F,0x0072,0x0020,0x0063,
+      0x006C,0x006F,0x0073,0x0065,0x0020,0x0070,0x0061,0x0072,0x0065,0x006E,0x0074,0x0068,0x0065,0x0073,0x0069,0x0073,0x0020,0x0069,0x006E,0x0020,0x0063,0x006F,0x006E,0x0074,0x0065,0x006E,0x0074,0x0020,0x006D,0x006F,0x0064,0x0065,0x006C,0x0020,0x006F,
+      0x0066,0x0020,0x0065,0x006C,0x0065,0x006D,0x0065,0x006E,0x0074,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x00 }
+  , { 0x0045,0x0078,0x0070,0x0065,0x0063,0x0074,0x0065,0x0064,0x0020,0x0065,0x006E,0x0075,0x006D,0x0065,0x0072,0x0061,0x0074,0x0069,0x006F,0x006E,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0020,0x0066,0x006F,0x0072,0x0020,0x0061,0x0074,0x0074,0x0072,
+      0x0069,0x0062,0x0075,0x0074,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x00 }
+  , { 0x0045,0x0078,0x0070,0x0065,0x0063,0x0074,0x0065,0x0064,0x0020,0x007C,0x0020,0x0065,0x006E,0x0075,0x006D,0x0065,0x0072,0x0061,0x0074,0x0069,0x006F,0x006E,0x0020,0x0073,0x0065,0x0070,0x0061,0x0072,0x0061,0x0074,0x006F,0x0072,0x002C,0x0020,0x006F,
+      0x0072,0x0020,0x0063,0x006C,0x006F,0x0073,0x0069,0x006E,0x0067,0x0020,0x0070,0x0061,0x0072,0x0065,0x006E,0x00 }
+  , { 0x0055,0x006E,0x0074,0x0065,0x0072,0x006D,0x0069,0x006E,0x0061,0x0074,0x0065,0x0064,0x0020,0x0065,0x006E,0x0074,0x0069,0x0074,0x0079,0x0020,0x006C,0x0069,0x0074,0x0065,0x0072,0x0061,0x006C,0x00 }
+  , { 0x0054,0x0068,0x0065,0x0072,0x0065,0x0020,0x0061,0x0072,0x0065,0x0020,0x006D,0x006F,0x0072,0x0065,0x0020,0x0065,0x006E,0x0064,0x0020,0x0074,0x0061,0x0067,0x0073,0x0020,0x0074,0x0068,0x0061,0x006E,0x0020,0x0073,0x0074,0x0061,0x0072,0x0074,0x0020,
+      0x0074,0x0061,0x0067,0x0073,0x00 }
+  , { 0x0045,0x0078,0x0070,0x0065,0x0063,0x0074,0x0065,0x0064,0x0020,0x0061,0x006E,0x0020,0x006F,0x0070,0x0065,0x006E,0x0020,0x0070,0x0061,0x0072,0x0065,0x006E,0x0074,0x0068,0x0065,0x0073,0x0069,0x0073,0x00 }
+  , { 0x0054,0x0068,0x0065,0x0020,0x0061,0x0074,0x0074,0x0072,0x0069,0x0062,0x0075,0x0074,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0069,0x0073,0x0020,0x0061,0x006C,0x0072,0x0065,0x0061,0x0064,0x0079,0x0020,0x0075,0x0073,0x0065,0x0064,
+      0x0020,0x0069,0x006E,0x0020,0x0065,0x006C,0x0065,0x006D,0x0065,0x006E,0x0074,0x0020,0x0027,0x007B,0x0031,0x007D,0x0027,0x00 }
+  , { 0x0041,0x0020,0x0027,0x003C,0x0027,0x0020,0x0063,0x0068,0x0061,0x0072,0x0061,0x0063,0x0074,0x0065,0x0072,0x0020,0x0063,0x0061,0x006E,0x006E,0x006F,0x0074,0x0020,0x0062,0x0065,0x0020,0x0075,0x0073,0x0065,0x0064,0x0020,0x0069,0x006E,0x0020,0x0061,
+      0x0074,0x0074,0x0072,0x0069,0x0062,0x0075,0x0074,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x002C,0x0020,0x0065,0x0078,0x0063,0x0065,0x0070,0x0074,0x0020,0x0074,0x0068,0x0072,0x006F,0x0075,0x0067,0x0068,0x0020,0x0026,0x006C,0x0074,0x003B,
+      0x00 }
+  , { 0x0041,0x0020,0x006C,0x0065,0x0061,0x0064,0x0069,0x006E,0x0067,0x0020,0x0073,0x0075,0x0072,0x0072,0x006F,0x0067,0x0061,0x0074,0x0065,0x0020,0x0063,0x0068,0x0061,0x0072,0x0061,0x0063,0x0074,0x0065,0x0072,0x0020,0x0077,0x0061,0x0073,0x0020,0x006E,
+      0x006F,0x0074,0x0020,0x0066,0x006F,0x006C,0x006C,0x006F,0x0077,0x0065,0x0064,0x0020,0x0062,0x0079,0x0020,0x0061,0x0020,0x006C,0x0065,0x0067,0x0061,0x006C,0x0020,0x0073,0x0065,0x0063,0x006F,0x006E,0x0064,0x0020,0x0063,0x0068,0x0061,0x0072,0x0061,
+      0x0063,0x0074,0x0065,0x0072,0x00 }
+  , { 0x0045,0x0078,0x0070,0x0065,0x0063,0x0074,0x0065,0x0064,0x0020,0x0027,0x005D,0x005D,0x003E,0x0027,0x0020,0x0074,0x006F,0x0020,0x0065,0x006E,0x0064,0x0020,0x0061,0x0020,0x0063,0x006F,0x006E,0x0064,0x0069,0x0074,0x0069,0x006F,0x006E,0x0061,0x006C,
+      0x0020,0x0073,0x0065,0x0063,0x0074,0x0069,0x006F,0x006E,0x00 }
+  , { 0x0045,0x0078,0x0070,0x0065,0x0063,0x0074,0x0065,0x0064,0x0020,0x0049,0x004E,0x0043,0x004C,0x0055,0x0044,0x0045,0x0020,0x006F,0x0072,0x0020,0x0049,0x0047,0x004E,0x004F,0x0052,0x0045,0x0020,0x0068,0x0065,0x0072,0x0065,0x00 }
+  , { 0x0045,0x0078,0x0070,0x0065,0x0063,0x0074,0x0065,0x0064,0x0020,0x005B,0x0020,0x0074,0x006F,0x0020,0x0066,0x006F,0x006C,0x006C,0x006F,0x0077,0x0020,0x0049,0x004E,0x0043,0x004C,0x0055,0x0044,0x0045,0x0020,0x006F,0x0072,0x0020,0x0049,0x0047,0x004E,
+      0x004F,0x0052,0x0045,0x00 }
+  , { 0x0045,0x0078,0x0070,0x0065,0x0063,0x0074,0x0065,0x0064,0x0020,0x0061,0x0020,0x0054,0x0065,0x0078,0x0074,0x0044,0x0065,0x0063,0x006C,0x0020,0x0068,0x0065,0x0072,0x0065,0x003A,0x0020,0x003C,0x003F,0x0078,0x006D,0x006C,0x0020,0x002E,0x002E,0x002E,
+      0x002E,0x00 }
+  , { 0x0045,0x0078,0x0070,0x0065,0x0063,0x0074,0x0065,0x0064,0x0020,0x0061,0x0020,0x0058,0x004D,0x004C,0x0044,0x0065,0x0063,0x006C,0x0020,0x0068,0x0065,0x0072,0x0065,0x003A,0x0020,0x003C,0x003F,0x0078,0x006D,0x006C,0x0020,0x002E,0x002E,0x002E,0x002E,
+      0x00 }
+  , { 0x0055,0x006E,0x0065,0x0078,0x0070,0x0065,0x0063,0x0074,0x0065,0x0064,0x0020,0x0065,0x006E,0x0064,0x0020,0x006F,0x0066,0x0020,0x0065,0x006E,0x0074,0x0069,0x0074,0x0079,0x0020,0x007B,0x0030,0x007D,0x00 }
+  , { 0x0041,0x0020,0x0050,0x0045,0x0020,0x0070,0x0072,0x006F,0x0070,0x0061,0x0067,0x0061,0x0074,0x0065,0x0064,0x0020,0x006F,0x0075,0x0074,0x0020,0x006F,0x0066,0x0020,0x0074,0x0068,0x0065,0x0020,0x0069,0x006E,0x0074,0x002F,0x0065,0x0078,0x0074,0x0020,
+      0x0073,0x0075,0x0062,0x0073,0x0065,0x0074,0x002C,0x0020,0x0064,0x0069,0x0073,0x0063,0x0061,0x0072,0x0064,0x0069,0x006E,0x0067,0x0020,0x0065,0x0078,0x0074,0x0072,0x0061,0x0020,0x0074,0x0065,0x0078,0x0074,0x00 }
+  , { 0x0041,0x006E,0x0020,0x0065,0x0078,0x0074,0x0072,0x0061,0x0020,0x005D,0x0020,0x0063,0x0068,0x0061,0x0072,0x0061,0x0063,0x0074,0x0065,0x0072,0x0020,0x0077,0x0061,0x0073,0x0020,0x0066,0x006F,0x0075,0x006E,0x0064,0x0020,0x0061,0x006E,0x0020,0x0069,
+      0x0067,0x006E,0x006F,0x0072,0x0065,0x0064,0x00 }
+  , { 0x0050,0x0045,0x0020,0x0072,0x0065,0x0066,0x0073,0x0020,0x0061,0x0072,0x0065,0x0020,0x006E,0x006F,0x0074,0x0020,0x0061,0x006C,0x006C,0x006F,0x0077,0x0065,0x0064,0x0020,0x0069,0x006E,0x0073,0x0069,0x0064,0x0065,0x0020,0x006D,0x0061,0x0072,0x006B,
+      0x0075,0x0070,0x0020,0x0069,0x006E,0x0020,0x0074,0x0068,0x0065,0x0020,0x0069,0x006E,0x0074,0x0065,0x0072,0x006E,0x0061,0x006C,0x0020,0x0073,0x0075,0x0062,0x0073,0x0065,0x0074,0x00 }
+  , { 0x0041,0x006E,0x0020,0x0065,0x006E,0x0074,0x0069,0x0074,0x0079,0x0020,0x0070,0x0072,0x006F,0x0070,0x0061,0x0067,0x0061,0x0074,0x0065,0x0064,0x0020,0x006F,0x0075,0x0074,0x0020,0x006F,0x0066,0x0020,0x0074,0x0068,0x0065,0x0020,0x0063,0x006F,0x006E,
+      0x0074,0x0065,0x006E,0x0074,0x0020,0x0073,0x0065,0x0063,0x0074,0x0069,0x006F,0x006E,0x0020,0x0069,0x006E,0x0074,0x006F,0x0020,0x004D,0x0069,0x0073,0x0063,0x0065,0x006C,0x006C,0x0061,0x006E,0x0065,0x006F,0x0075,0x0073,0x00 }
+  , { 0x0045,0x0078,0x0070,0x0065,0x0063,0x0074,0x0065,0x0064,0x0020,0x0026,0x0023,0x0020,0x0074,0x006F,0x0020,0x0062,0x0065,0x0020,0x0066,0x006F,0x006C,0x006C,0x006F,0x0077,0x0065,0x0064,0x0020,0x0062,0x0079,0x0020,0x0061,0x0020,0x006E,0x0075,0x006D,
+      0x0065,0x0072,0x0069,0x0063,0x0020,0x0063,0x0068,0x0061,0x0072,0x0061,0x0063,0x0074,0x0065,0x0072,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x00 }
+  , { 0x0045,0x0078,0x0070,0x0065,0x0063,0x0074,0x0065,0x0064,0x0020,0x0061,0x006E,0x0020,0x006F,0x0070,0x0065,0x006E,0x0020,0x0062,0x0072,0x0061,0x0063,0x006B,0x0065,0x0074,0x0020,0x0028,0x0027,0x005B,0x0027,0x0029,0x0020,0x0068,0x0065,0x0072,0x0065,
+      0x00 }
+  , { 0x0054,0x0068,0x0065,0x0020,0x0073,0x0065,0x0071,0x0075,0x0065,0x006E,0x0063,0x0065,0x0020,0x0027,0x005D,0x005D,0x003E,0x0027,0x0020,0x0069,0x0073,0x0020,0x006E,0x006F,0x0074,0x0020,0x0061,0x006C,0x006C,0x006F,0x0077,0x0065,0x0064,0x0020,0x0069,
+      0x006E,0x0020,0x0063,0x0068,0x0061,0x0072,0x0061,0x0063,0x0074,0x0065,0x0072,0x0020,0x0064,0x0061,0x0074,0x0061,0x00 }
+  , { 0x0049,0x006C,0x006C,0x0065,0x0067,0x0061,0x006C,0x0020,0x0073,0x0065,0x0071,0x0075,0x0065,0x006E,0x0063,0x0065,0x0020,0x0027,0x002D,0x002D,0x0027,0x0020,0x0069,0x006E,0x0020,0x0063,0x006F,0x006D,0x006D,0x0065,0x006E,0x0074,0x00 }
+  , { 0x0055,0x006E,0x0074,0x0065,0x0072,0x006D,0x0069,0x006E,0x0061,0x0074,0x0065,0x0064,0x0020,0x0043,0x0044,0x0041,0x0054,0x0041,0x0020,0x0073,0x0065,0x0063,0x0074,0x0069,0x006F,0x006E,0x00 }
+  , { 0x0045,0x0078,0x0070,0x0065,0x0063,0x0074,0x0065,0x0064,0x0020,0x004E,0x0044,0x0041,0x0054,0x0041,0x00 }
+  , { 0x004E,0x0044,0x0041,0x0054,0x0041,0x0020,0x0069,0x0073,0x0020,0x006E,0x006F,0x0074,0x0020,0x006C,0x0065,0x0067,0x0061,0x006C,0x0020,0x0066,0x006F,0x0072,0x0020,0x0070,0x0061,0x0072,0x0061,0x006D,0x0065,0x0074,0x0065,0x0072,0x0020,0x0065,0x006E,
+      0x0074,0x0069,0x0074,0x0069,0x0065,0x0073,0x00 }
+  , { 0x0048,0x0065,0x0078,0x0020,0x0072,0x0061,0x0064,0x0069,0x0078,0x0020,0x0063,0x0068,0x0061,0x0072,0x0061,0x0063,0x0074,0x0065,0x0072,0x0020,0x0072,0x0065,0x0066,0x0073,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0075,0x0073,0x0065,0x0020,0x0027,
+      0x0078,0x0027,0x002C,0x0020,0x006E,0x006F,0x0074,0x0020,0x0027,0x0058,0x0027,0x00 }
+  , { 0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0068,0x0061,0x0073,0x0020,0x0061,0x006C,0x0072,0x0065,0x0061,0x0064,0x0079,0x0020,0x0062,0x0065,0x0065,0x006E,0x0020,0x0073,0x0065,0x0074,0x002E,0x0020,0x0049,0x0067,0x006E,0x006F,0x0072,0x0069,0x006E,
+      0x0067,0x0020,0x0072,0x0065,0x0064,0x0075,0x006E,0x0064,0x0061,0x006E,0x0074,0x0020,0x0073,0x0065,0x0074,0x0074,0x0069,0x006E,0x0067,0x00 }
+  , { 0x0054,0x0068,0x0065,0x0020,0x0058,0x004D,0x004C,0x0044,0x0065,0x0063,0x006C,0x0020,0x0073,0x0074,0x0072,0x0069,0x006E,0x0067,0x0073,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0062,0x0065,0x0020,0x0069,0x006E,0x0020,0x0074,0x0068,0x0065,0x0020,
+      0x006F,0x0072,0x0064,0x0065,0x0072,0x003A,0x0020,0x0076,0x0065,0x0072,0x0073,0x0069,0x006F,0x006E,0x002C,0x0020,0x0065,0x006E,0x0063,0x006F,0x0064,0x0069,0x006E,0x0067,0x002C,0x0020,0x0073,0x0074,0x0061,0x006E,0x0064,0x0061,0x006C,0x006F,0x006E,
+      0x0065,0x00 }
+  , { 0x0045,0x0078,0x0074,0x0065,0x0072,0x006E,0x0061,0x006C,0x0020,0x0065,0x006E,0x0074,0x0069,0x0074,0x0069,0x0065,0x0073,0x0020,0x0063,0x0061,0x006E,0x006E,0x006F,0x0074,0x0020,0x0062,0x0065,0x0020,0x0072,0x0065,0x0066,0x0065,0x0072,0x0072,0x0065,
+      0x0064,0x0020,0x0074,0x006F,0x0020,0x0066,0x0072,0x006F,0x006D,0x0020,0x0061,0x0074,0x0074,0x0072,0x0069,0x0062,0x0075,0x0074,0x0065,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0073,0x00 }
+  , { 0x0054,0x0068,0x0065,0x0020,0x0058,0x004D,0x004C,0x0020,0x006F,0x0072,0x0020,0x0054,0x0065,0x0078,0x0074,0x0020,0x0064,0x0065,0x0063,0x006C,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0073,0x0074,0x0061,0x0072,0x0074,0x0020,0x0077,0x0069,0x0074,
+      0x0068,0x0020,0x0027,0x003C,0x003F,0x0078,0x006D,0x006C,0x0020,0x0027,0x002C,0x0020,0x006E,0x006F,0x0074,0x0020,0x0027,0x003C,0x003F,0x0058,0x004D,0x004C,0x0020,0x0027,0x00 }
+  , { 0x0045,0x0078,0x0070,0x0065,0x0063,0x0074,0x0065,0x0064,0x0020,0x0061,0x0020,0x006C,0x0069,0x0074,0x0065,0x0072,0x0061,0x006C,0x0020,0x0065,0x006E,0x0074,0x0069,0x0074,0x0079,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0020,0x006F,0x0072,0x0020,
+      0x0050,0x0055,0x0042,0x004C,0x0049,0x0043,0x002F,0x0053,0x0059,0x0053,0x0054,0x0045,0x004D,0x0020,0x0069,0x0064,0x00 }
+  , { 0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0069,0x0073,0x0020,0x006E,0x006F,0x0074,0x0020,0x0061,0x0020,0x0076,0x0061,0x006C,0x0069,0x0064,0x0020,0x0064,0x0069,0x0067,0x0069,0x0074,0x0020,0x0066,0x006F,0x0072,0x0020,0x0074,0x0068,0x0065,0x0020,
+      0x0069,0x006E,0x0064,0x0069,0x0063,0x0061,0x0074,0x0065,0x0064,0x0020,0x0072,0x0061,0x0064,0x0069,0x0078,0x00 }
+  , { 0x0054,0x0068,0x0065,0x0020,0x0069,0x006E,0x0070,0x0075,0x0074,0x0020,0x0065,0x006E,0x0064,0x0065,0x0064,0x0020,0x0062,0x0065,0x0066,0x006F,0x0072,0x0065,0x0020,0x0061,0x006C,0x006C,0x0020,0x0073,0x0074,0x0061,0x0072,0x0074,0x0065,0x0064,0x0020,
+      0x0074,0x0061,0x0067,0x0073,0x0020,0x0077,0x0065,0x0072,0x0065,0x0020,0x0065,0x006E,0x0064,0x0065,0x0064,0x002E,0x0020,0x004C,0x0061,0x0073,0x0074,0x0020,0x0074,0x0061,0x0067,0x0020,0x0073,0x0074,0x0061,0x0072,0x0074,0x0065,0x0064,0x0020,0x0077,
+      0x0061,0x0073,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x00 }
+  , { 0x0054,0x0068,0x0065,0x0020,0x0063,0x006F,0x006E,0x0074,0x0065,0x006E,0x0074,0x0020,0x006D,0x006F,0x0064,0x0065,0x006C,0x0020,0x0066,0x006F,0x0072,0x0020,0x0065,0x006C,0x0065,0x006D,0x0065,0x006E,0x0074,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,
+      0x0020,0x0069,0x0073,0x0020,0x0061,0x006D,0x0062,0x0069,0x0067,0x0075,0x006F,0x0075,0x0073,0x00 }
+  , { 0x004E,0x0065,0x0073,0x0074,0x0065,0x0064,0x0020,0x0043,0x0044,0x0041,0x0054,0x0041,0x0020,0x0073,0x0065,0x0063,0x0074,0x0069,0x006F,0x006E,0x0073,0x0020,0x0061,0x0072,0x0065,0x0020,0x006E,0x006F,0x0074,0x0020,0x0061,0x006C,0x006C,0x006F,0x0077,
+      0x0065,0x0064,0x00 }
+  , { 0x0054,0x0068,0x0065,0x0020,0x0070,0x0072,0x0065,0x0066,0x0069,0x0078,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0068,0x0061,0x0073,0x0020,0x006E,0x006F,0x0074,0x0020,0x0062,0x0065,0x0065,0x006E,0x0020,0x006D,0x0061,0x0070,0x0070,0x0065,
+      0x0064,0x0020,0x0074,0x006F,0x0020,0x0061,0x006E,0x0079,0x0020,0x0055,0x0052,0x0049,0x00 }
+  , { 0x0054,0x0068,0x0065,0x0020,0x0073,0x0074,0x0061,0x0072,0x0074,0x0020,0x0061,0x006E,0x0064,0x0020,0x0074,0x0068,0x0065,0x0020,0x0065,0x006E,0x0064,0x0020,0x0074,0x0061,0x0067,0x0020,0x0077,0x0065,0x0072,0x0065,0x0020,0x0069,0x006E,0x0020,0x0074,
+      0x0068,0x0065,0x0020,0x0064,0x0069,0x0066,0x0066,0x0065,0x0072,0x0065,0x006E,0x0074,0x0020,0x0065,0x006E,0x0074,0x0069,0x0074,0x0069,0x0065,0x0073,0x00 }
+  , { 0x0054,0x0068,0x0065,0x0020,0x006D,0x0061,0x0069,0x006E,0x0020,0x0058,0x004D,0x004C,0x0020,0x0064,0x006F,0x0063,0x0075,0x006D,0x0065,0x006E,0x0074,0x0020,0x0063,0x0061,0x006E,0x006E,0x006F,0x0074,0x0020,0x0062,0x0065,0x0020,0x0065,0x006D,0x0070,
+      0x0074,0x0079,0x00 }
+  , { 0x0043,0x0044,0x0041,0x0054,0x0041,0x0020,0x0069,0x0073,0x0020,0x006E,0x006F,0x0074,0x0020,0x0061,0x006C,0x006C,0x006F,0x0077,0x0065,0x0064,0x0020,0x006F,0x0075,0x0074,0x0073,0x0069,0x0064,0x0065,0x0020,0x0074,0x0068,0x0065,0x0020,0x0072,0x006F,
+      0x006F,0x0074,0x0020,0x0065,0x006C,0x0065,0x006D,0x0065,0x006E,0x0074,0x00 }
+  , { 0x004F,0x006E,0x006C,0x0079,0x0020,0x006E,0x0075,0x006D,0x0065,0x0072,0x0069,0x0063,0x0020,0x0063,0x0068,0x0061,0x0072,0x0061,0x0063,0x0074,0x0065,0x0072,0x0020,0x0065,0x006E,0x0074,0x0069,0x0074,0x0069,0x0065,0x0073,0x0020,0x006F,0x0072,0x0020,
+      0x0073,0x0070,0x0065,0x0063,0x0069,0x0061,0x006C,0x0020,0x0063,0x0068,0x0061,0x0072,0x0061,0x0063,0x0074,0x0065,0x0072,0x0020,0x0065,0x006E,0x0074,0x0069,0x0074,0x0069,0x0065,0x0073,0x0020,0x0061,0x0072,0x0065,0x0020,0x006C,0x0065,0x0067,0x0061,
+      0x006C,0x0020,0x0068,0x0065,0x0072,0x0065,0x00 }
+  , { 0x0047,0x006F,0x0074,0x0020,0x0061,0x006E,0x0020,0x0075,0x006E,0x0065,0x0078,0x0070,0x0065,0x0063,0x0074,0x0065,0x0064,0x0020,0x0074,0x0072,0x0061,0x0069,0x006C,0x0069,0x006E,0x0067,0x0020,0x0073,0x0075,0x0072,0x0072,0x006F,0x0067,0x0061,0x0074,
+      0x0065,0x0020,0x0063,0x0068,0x0061,0x0072,0x0061,0x0063,0x0074,0x0065,0x0072,0x00 }
+  , { 0x004E,0x006F,0x0020,0x0070,0x0072,0x006F,0x0063,0x0065,0x0073,0x0073,0x0069,0x006E,0x0067,0x0020,0x0069,0x006E,0x0073,0x0074,0x0072,0x0075,0x0063,0x0074,0x0069,0x006F,0x006E,0x0020,0x0073,0x0074,0x0061,0x0072,0x0074,0x0073,0x0020,0x0077,0x0069,
+      0x0074,0x0068,0x0020,0x0027,0x0078,0x006D,0x006C,0x0027,0x00 }
+  , { 0x0054,0x0068,0x0065,0x0020,0x0058,0x004D,0x004C,0x0020,0x006F,0x0072,0x0020,0x0054,0x0065,0x0078,0x0074,0x0020,0x0064,0x0065,0x0063,0x006C,0x0061,0x0072,0x0061,0x0074,0x0069,0x006F,0x006E,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0073,0x0074,
+      0x0061,0x0072,0x0074,0x0020,0x0061,0x0074,0x0020,0x006C,0x0069,0x006E,0x0065,0x002F,0x0063,0x006F,0x006C,0x0075,0x006D,0x006E,0x0020,0x0031,0x002F,0x0031,0x00 }
+  , { 0x0054,0x0068,0x0065,0x0020,0x0027,0x0076,0x0065,0x0072,0x0073,0x0069,0x006F,0x006E,0x003D,0x0027,0x0020,0x0073,0x0074,0x0072,0x0069,0x006E,0x0067,0x0020,0x0069,0x0073,0x0020,0x0072,0x0065,0x0071,0x0075,0x0069,0x0072,0x0065,0x0064,0x0020,0x0069,
+      0x006E,0x0020,0x0061,0x006E,0x0020,0x0058,0x004D,0x004C,0x0044,0x0065,0x0063,0x006C,0x00 }
+  , { 0x0054,0x0068,0x0065,0x0020,0x0027,0x0073,0x0074,0x0061,0x006E,0x0064,0x0061,0x006C,0x006F,0x006E,0x0065,0x003D,0x0027,0x0020,0x0073,0x0074,0x0072,0x0069,0x006E,0x0067,0x0020,0x0069,0x0073,0x0020,0x006F,0x006E,0x006C,0x0079,0x0020,0x0061,0x006C,
+      0x006C,0x006F,0x0077,0x0065,0x0064,0x0020,0x0069,0x006E,0x0020,0x0074,0x0068,0x0065,0x0020,0x006D,0x0061,0x0069,0x006E,0x0020,0x0058,0x004D,0x004C,0x0020,0x0065,0x006E,0x0074,0x0069,0x0074,0x0079,0x00 }
+  , { 0x0054,0x0068,0x0065,0x0020,0x0027,0x0065,0x006E,0x0063,0x006F,0x0064,0x0069,0x006E,0x0067,0x003D,0x0027,0x0020,0x0073,0x0074,0x0072,0x0069,0x006E,0x0067,0x0020,0x0069,0x0073,0x0020,0x0072,0x0065,0x0071,0x0075,0x0069,0x0072,0x0065,0x0064,0x0020,
+      0x0069,0x006E,0x0020,0x0061,0x006E,0x0020,0x0054,0x0065,0x0078,0x0074,0x0020,0x0044,0x0065,0x0063,0x006C,0x00 }
+  , { 0x0057,0x0068,0x0065,0x006E,0x0020,0x006E,0x0061,0x006D,0x0065,0x0073,0x0070,0x0061,0x0063,0x0065,0x0073,0x0020,0x0061,0x0072,0x0065,0x0020,0x0065,0x006E,0x0061,0x0062,0x006C,0x0065,0x0064,0x002C,0x0020,0x0061,0x0020,0x006E,0x0061,0x006D,0x0065,
+      0x0020,0x0063,0x0061,0x006E,0x0020,0x0068,0x0061,0x0076,0x0065,0x0020,0x006F,0x006E,0x006C,0x0079,0x0020,0x006F,0x006E,0x0065,0x0020,0x0063,0x006F,0x006C,0x006F,0x006E,0x0020,0x0063,0x0068,0x0061,0x0072,0x0061,0x0063,0x0074,0x0065,0x0072,0x00 }
+  , { 0x0057,0x0068,0x0065,0x006E,0x0020,0x006E,0x0061,0x006D,0x0065,0x0073,0x0070,0x0061,0x0063,0x0065,0x0073,0x0020,0x0061,0x0072,0x0065,0x0020,0x0065,0x006E,0x0061,0x0062,0x006C,0x0065,0x0064,0x002C,0x0020,0x0074,0x0068,0x0065,0x0020,0x0063,0x006F,
+      0x006C,0x006F,0x006E,0x0020,0x0063,0x0061,0x006E,0x006E,0x006F,0x0074,0x0020,0x0062,0x0065,0x0020,0x0074,0x0068,0x0065,0x0020,0x0066,0x0069,0x0072,0x0073,0x0074,0x0020,0x006F,0x0072,0x0020,0x006C,0x0061,0x0073,0x0074,0x0020,0x0063,0x0068,0x0061,
+      0x0072,0x0061,0x0063,0x0074,0x0065,0x0072,0x00 }
+  , { 0x0043,0x006F,0x006C,0x006F,0x006E,0x0073,0x0020,0x0061,0x0072,0x0065,0x0020,0x006E,0x006F,0x0074,0x0020,0x0061,0x006C,0x006C,0x006F,0x0077,0x0065,0x0064,0x0020,0x0069,0x006E,0x0020,0x0074,0x0068,0x0069,0x0073,0x0020,0x006E,0x0061,0x006D,0x0065,
+      0x0020,0x0077,0x0068,0x0065,0x006E,0x0020,0x006E,0x0061,0x006D,0x0065,0x0073,0x0070,0x0061,0x0063,0x0065,0x0073,0x0020,0x0061,0x0072,0x0065,0x0020,0x0065,0x006E,0x0061,0x0062,0x006C,0x0065,0x0064,0x00 }
+  , { 0x0041,0x0020,0x0073,0x0079,0x0073,0x0074,0x0065,0x006D,0x0020,0x0065,0x0078,0x0063,0x0065,0x0070,0x0074,0x0069,0x006F,0x006E,0x0020,0x006F,0x0063,0x0063,0x0075,0x0072,0x0072,0x0065,0x0064,0x0020,0x0064,0x0075,0x0072,0x0069,0x006E,0x0067,0x0020,
+      0x0070,0x0072,0x006F,0x0063,0x0065,0x0073,0x0073,0x0069,0x006E,0x0067,0x00 }
+  , { 0x0041,0x006E,0x0020,0x0065,0x0078,0x0063,0x0065,0x0070,0x0074,0x0069,0x006F,0x006E,0x0020,0x006F,0x0063,0x0063,0x0075,0x0072,0x0072,0x0065,0x0064,0x0021,0x0020,0x0054,0x0079,0x0070,0x0065,0x003A,0x007B,0x0030,0x007D,0x002C,0x0020,0x004D,0x0065,
+      0x0073,0x0073,0x0061,0x0067,0x0065,0x003A,0x007B,0x0031,0x007D,0x00 }
+  , { 0x0055,0x006E,0x0065,0x0078,0x0070,0x0065,0x0063,0x0074,0x0065,0x0064,0x0020,0x0065,0x006E,0x0064,0x0020,0x006F,0x0066,0x0020,0x0066,0x0069,0x006C,0x0065,0x0020,0x0065,0x0078,0x0063,0x0065,0x0070,0x0074,0x0069,0x006F,0x006E,0x002E,0x0020,0x004D,
+      0x0065,0x0073,0x0073,0x0061,0x0067,0x0065,0x003A,0x0020,0x007B,0x0030,0x007D,0x00 }
+  , { 0x0055,0x006E,0x0065,0x0078,0x0070,0x0065,0x0063,0x0074,0x0065,0x0064,0x0045,0x0072,0x0072,0x006F,0x0072,0x00 }
+  , { 0x0054,0x0068,0x0065,0x0020,0x0073,0x0063,0x0068,0x0065,0x006D,0x0061,0x004C,0x006F,0x0063,0x0061,0x0074,0x0069,0x006F,0x006E,0x0020,0x0061,0x0074,0x0074,0x0072,0x0069,0x0062,0x0075,0x0074,0x0065,0x0020,0x0064,0x006F,0x0065,0x0073,0x0020,0x006E,
+      0x006F,0x0074,0x0020,0x0063,0x006F,0x006E,0x0074,0x0061,0x0069,0x006E,0x0020,0x0070,0x0061,0x0069,0x0072,0x0073,0x0020,0x006F,0x0066,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0073,0x002E,0x00 }
+  , { 0x0049,0x006E,0x0074,0x0065,0x0072,0x006E,0x0061,0x006C,0x0020,0x0065,0x0072,0x0072,0x006F,0x0072,0x003A,0x0020,0x0064,0x006F,0x006E,0x0027,0x0074,0x0020,0x0068,0x0061,0x0076,0x0065,0x0020,0x0061,0x0020,0x0047,0x0072,0x0061,0x006D,0x006D,0x0061,
+      0x0072,0x0052,0x0065,0x0073,0x006F,0x006C,0x0076,0x0065,0x0072,0x0020,0x0066,0x006F,0x0072,0x0020,0x0054,0x0072,0x0061,0x0076,0x0065,0x0072,0x0073,0x0065,0x0053,0x0063,0x0068,0x0065,0x006D,0x0061,0x00 }
+  , { 0x0046,0x0061,0x0074,0x0061,0x006C,0x0020,0x0065,0x0072,0x0072,0x006F,0x0072,0x0020,0x0065,0x006E,0x0063,0x006F,0x0075,0x006E,0x0074,0x0065,0x0072,0x0065,0x0064,0x0020,0x0064,0x0075,0x0072,0x0069,0x006E,0x0067,0x0020,0x0073,0x0063,0x0068,0x0065,
+      0x006D,0x0061,0x0020,0x0073,0x0063,0x0061,0x006E,0x00 }
+  , { 0x0052,0x0065,0x0066,0x0065,0x0072,0x0065,0x006E,0x0063,0x0065,0x0020,0x0074,0x006F,0x0020,0x0065,0x0078,0x0074,0x0065,0x0072,0x006E,0x0061,0x006C,0x0020,0x0065,0x006E,0x0074,0x0069,0x0074,0x0079,0x0020,0x0064,0x0065,0x0063,0x006C,0x0061,0x0072,
+      0x0061,0x0074,0x0069,0x006F,0x006E,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0069,0x0073,0x0020,0x006E,0x006F,0x0074,0x0020,0x0061,0x006C,0x006C,0x006F,0x0077,0x0065,0x0064,0x0020,0x0069,0x006E,0x0020,0x0061,0x0020,0x0073,0x0074,0x0061,
+      0x006E,0x0064,0x0061,0x006C,0x006F,0x006E,0x0065,0x0020,0x0064,0x006F,0x0063,0x0075,0x006D,0x0065,0x006E,0x0074,0x002E,0x00 }
+  , { 0x0050,0x0061,0x0072,0x0074,0x0069,0x0061,0x006C,0x0020,0x006D,0x0061,0x0072,0x006B,0x0075,0x0070,0x0020,0x0069,0x006E,0x0020,0x0070,0x0061,0x0072,0x0061,0x006D,0x0065,0x0074,0x0065,0x0072,0x0020,0x0065,0x006E,0x0074,0x0069,0x0074,0x0079,0x0020,
+      0x0072,0x0065,0x0070,0x006C,0x0061,0x0063,0x0065,0x006D,0x0065,0x006E,0x0074,0x0020,0x0074,0x0065,0x0078,0x0074,0x0020,0x0069,0x006E,0x0020,0x0061,0x0020,0x0063,0x006F,0x006D,0x0070,0x006C,0x0065,0x0074,0x0065,0x0020,0x0064,0x0065,0x0063,0x006C,
+      0x0061,0x0072,0x0061,0x0074,0x0069,0x006F,0x006E,0x002E,0x00 }
+  , { 0x0054,0x0068,0x0065,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0020,0x006F,0x0066,0x0020,0x0074,0x0068,0x0065,0x0020,0x0061,0x0074,0x0074,0x0072,0x0069,0x0062,0x0075,0x0074,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0069,0x0073,
+      0x0020,0x0069,0x006E,0x0076,0x0061,0x006C,0x0069,0x0064,0x002E,0x0020,0x0050,0x0072,0x0065,0x0066,0x0069,0x0078,0x0065,0x0064,0x0020,0x006E,0x0061,0x006D,0x0065,0x0073,0x0070,0x0061,0x0063,0x0065,0x0020,0x0062,0x0069,0x006E,0x0064,0x0069,0x006E,
+      0x0067,0x0073,0x0020,0x006D,0x0061,0x0079,0x0020,0x006E,0x006F,0x0074,0x0020,0x0062,0x0065,0x0020,0x0065,0x006D,0x0070,0x0074,0x0079,0x002E,0x00 }
+  , { 0x0054,0x0068,0x0065,0x0020,0x0070,0x0072,0x0065,0x0066,0x0069,0x0078,0x0020,0x0027,0x0078,0x006D,0x006C,0x006E,0x0073,0x0027,0x0020,0x0063,0x0061,0x006E,0x006E,0x006F,0x0074,0x0020,0x0062,0x0065,0x0020,0x0062,0x006F,0x0075,0x006E,0x0064,0x0020,
+      0x0074,0x006F,0x0020,0x0061,0x006E,0x0079,0x0020,0x006E,0x0061,0x006D,0x0065,0x0073,0x0070,0x0061,0x0063,0x0065,0x0020,0x0065,0x0078,0x0070,0x006C,0x0069,0x0063,0x0069,0x0074,0x006C,0x0079,0x002E,0x00 }
+  , { 0x0054,0x0068,0x0065,0x0020,0x006E,0x0061,0x006D,0x0065,0x0073,0x0070,0x0061,0x0063,0x0065,0x0020,0x0066,0x006F,0x0072,0x0020,0x0027,0x0078,0x006D,0x006C,0x006E,0x0073,0x0027,0x0020,0x0063,0x0061,0x006E,0x006E,0x006F,0x0074,0x0020,0x0062,0x0065,
+      0x0020,0x0062,0x006F,0x0075,0x006E,0x0064,0x0020,0x0074,0x006F,0x0020,0x0061,0x006E,0x0079,0x0020,0x0070,0x0072,0x0065,0x0066,0x0069,0x0078,0x0020,0x0065,0x0078,0x0070,0x006C,0x0069,0x0063,0x0069,0x0074,0x006C,0x0079,0x002E,0x00 }
+  , { 0x0054,0x0068,0x0065,0x0020,0x0070,0x0072,0x0065,0x0066,0x0069,0x0078,0x0020,0x0027,0x0078,0x006D,0x006C,0x0027,0x0020,0x0063,0x0061,0x006E,0x006E,0x006F,0x0074,0x0020,0x0062,0x0065,0x0020,0x0062,0x006F,0x0075,0x006E,0x0064,0x0020,0x0074,0x006F,
+      0x0020,0x0061,0x006E,0x0079,0x0020,0x006E,0x0061,0x006D,0x0065,0x0073,0x0070,0x0061,0x0063,0x0065,0x0020,0x006F,0x0074,0x0068,0x0065,0x0072,0x0020,0x0074,0x0068,0x0061,0x006E,0x0020,0x0069,0x0074,0x0073,0x0020,0x0075,0x0073,0x0075,0x0061,0x006C,
+      0x0020,0x006E,0x0061,0x006D,0x0065,0x0073,0x0070,0x0061,0x0063,0x0065,0x002E,0x00 }
+  , { 0x0054,0x0068,0x0065,0x0020,0x006E,0x0061,0x006D,0x0065,0x0073,0x0070,0x0061,0x0063,0x0065,0x0020,0x0066,0x006F,0x0072,0x0020,0x0027,0x0078,0x006D,0x006C,0x0027,0x0020,0x0063,0x0061,0x006E,0x006E,0x006F,0x0074,0x0020,0x0062,0x0065,0x0020,0x0062,
+      0x006F,0x0075,0x006E,0x0064,0x0020,0x0074,0x006F,0x0020,0x0061,0x006E,0x0079,0x0020,0x0070,0x0072,0x0065,0x0066,0x0069,0x0078,0x0020,0x006F,0x0074,0x0068,0x0065,0x0072,0x0020,0x0074,0x0068,0x0061,0x006E,0x0020,0x0027,0x0078,0x006D,0x006C,0x0027,
+      0x002E,0x00 }
+  , { 0x0045,0x006C,0x0065,0x006D,0x0065,0x006E,0x0074,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0063,0x0061,0x006E,0x006E,0x006F,0x0074,0x0020,0x0068,0x0061,0x0076,0x0065,0x0020,0x0027,0x0078,0x006D,0x006C,0x006E,0x0073,0x0027,0x0020,0x0061,
+      0x0073,0x0020,0x0069,0x0074,0x0073,0x0020,0x0070,0x0072,0x0065,0x0066,0x0069,0x0078,0x002E,0x00 }
+  , { 0x0043,0x006F,0x006D,0x0070,0x006C,0x0065,0x0078,0x0020,0x0054,0x0079,0x0070,0x0065,0x0020,0x0044,0x0065,0x0066,0x0069,0x006E,0x0069,0x0074,0x0069,0x006F,0x006E,0x0020,0x0052,0x0065,0x0070,0x0072,0x0065,0x0073,0x0065,0x006E,0x0074,0x0061,0x0074,
+      0x0069,0x006F,0x006E,0x0020,0x004F,0x004B,0x0020,0x002D,0x0020,0x0032,0x002E,0x0032,0x003A,0x0020,0x003C,0x0072,0x0065,0x0073,0x0074,0x0072,0x0069,0x0063,0x0074,0x0069,0x006F,0x006E,0x003E,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0068,0x0061,
+      0x0076,0x0065,0x0020,0x0061,0x0020,0x003C,0x0073,0x0069,0x006D,0x0070,0x006C,0x0065,0x0054,0x0079,0x0070,0x0065,0x003E,0x0020,0x0063,0x0068,0x0069,0x006C,0x0064,0x002E,0x00 }
+  , { 0x0044,0x004F,0x0043,0x0054,0x0059,0x0050,0x0045,0x0020,0x0072,0x006F,0x006F,0x0074,0x0020,0x0065,0x006C,0x0065,0x006D,0x0065,0x006E,0x0074,0x0020,0x0071,0x006E,0x0061,0x006D,0x0065,0x0020,0x0062,0x0065,0x0067,0x0069,0x006E,0x006E,0x0069,0x006E,
+      0x0067,0x0020,0x0077,0x0069,0x0074,0x0068,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0069,0x006E,0x0076,0x0061,0x006C,0x0069,0x0064,0x00 }
+  , { 0x0045,0x006C,0x0065,0x006D,0x0065,0x006E,0x0074,0x0020,0x0071,0x006E,0x0061,0x006D,0x0065,0x0020,0x0062,0x0065,0x0067,0x0069,0x006E,0x006E,0x0069,0x006E,0x0067,0x0020,0x0077,0x0069,0x0074,0x0068,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,
+      0x0069,0x006E,0x0076,0x0061,0x006C,0x0069,0x0064,0x00 }
+  , { 0x0041,0x0074,0x0074,0x0072,0x0069,0x0062,0x0075,0x0074,0x0065,0x0020,0x0071,0x006E,0x0061,0x006D,0x0065,0x0020,0x0062,0x0065,0x0067,0x0069,0x006E,0x006E,0x0069,0x006E,0x0067,0x0020,0x0077,0x0069,0x0074,0x0068,0x0020,0x0027,0x007B,0x0030,0x007D,
+      0x0027,0x0020,0x0069,0x006E,0x0076,0x0061,0x006C,0x0069,0x0064,0x00 }
+  , { 0x0045,0x006E,0x0074,0x0069,0x0074,0x0079,0x0020,0x0071,0x006E,0x0061,0x006D,0x0065,0x0020,0x0066,0x006F,0x0072,0x0020,0x0072,0x0065,0x0066,0x0065,0x0072,0x0065,0x006E,0x0063,0x0065,0x0020,0x0062,0x0065,0x0067,0x0069,0x006E,0x006E,0x0069,0x006E,
+      0x0067,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0069,0x006E,0x0076,0x0061,0x006C,0x0069,0x0064,0x00 }
+  , { 0x0041,0x006C,0x0072,0x0065,0x0061,0x0064,0x0079,0x0020,0x0073,0x0065,0x0065,0x006E,0x0020,0x0064,0x006F,0x0063,0x0074,0x0079,0x0070,0x0065,0x00 }
+  , { 0x0046,0x005F,0x0045,0x006E,0x0064,0x00 }
+
+};
+const unsigned int gXMLErrArraySize = 313;
+
+const XMLCh gXMLValidityArray[][128] = 
+{
+    { 0x0045,0x005F,0x0053,0x0074,0x0061,0x0072,0x0074,0x00 }
+  , { 0x0055,0x006E,0x006B,0x006E,0x006F,0x0077,0x006E,0x0020,0x0065,0x006C,0x0065,0x006D,0x0065,0x006E,0x0074,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x00 }
+  , { 0x0041,0x0074,0x0074,0x0072,0x0069,0x0062,0x0075,0x0074,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x006E,0x006F,0x0074,0x0020,0x0064,0x0065,0x0066,0x0069,0x006E,0x0065,0x0064,0x00 }
+  , { 0x004E,0x006F,0x0074,0x0061,0x0074,0x0069,0x006F,0x006E,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0077,0x0061,0x0073,0x0020,0x0072,0x0065,0x0066,0x0065,0x0072,0x0065,0x006E,0x0063,0x0065,0x0064,0x0020,0x0062,0x0075,0x0074,0x0020,0x006E,
+      0x0065,0x0076,0x0065,0x0072,0x0020,0x0064,0x0065,0x0063,0x006C,0x0061,0x0072,0x0065,0x0064,0x00 }
+  , { 0x0052,0x006F,0x006F,0x0074,0x0020,0x0065,0x006C,0x0065,0x006D,0x0065,0x006E,0x0074,0x0020,0x0064,0x0069,0x0066,0x0066,0x0065,0x0072,0x0065,0x006E,0x0074,0x0020,0x0066,0x0072,0x006F,0x006D,0x0020,0x0044,0x004F,0x0043,0x0054,0x0059,0x0050,0x0045,
+      0x00 }
+  , { 0x0052,0x0065,0x0071,0x0075,0x0069,0x0072,0x0065,0x0064,0x0020,0x0061,0x0074,0x0074,0x0072,0x0069,0x0062,0x0075,0x0074,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0077,0x0061,0x0073,0x0020,0x006E,0x006F,0x0074,0x0020,0x0070,0x0072,
+      0x006F,0x0076,0x0069,0x0064,0x0065,0x0064,0x00 }
+  , { 0x0045,0x006C,0x0065,0x006D,0x0065,0x006E,0x0074,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0069,0x0073,0x0020,0x006E,0x006F,0x0074,0x0020,0x0076,0x0061,0x006C,0x0069,0x0064,0x0020,0x0066,0x006F,0x0072,0x0020,0x0063,0x006F,0x006E,0x0074,
+      0x0065,0x006E,0x0074,0x0020,0x006D,0x006F,0x0064,0x0065,0x006C,0x003A,0x0020,0x0027,0x007B,0x0031,0x007D,0x0027,0x00 }
+  , { 0x0049,0x0044,0x0020,0x0061,0x0074,0x0074,0x0072,0x0069,0x0062,0x0075,0x0074,0x0065,0x0073,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0062,0x0065,0x0020,0x0023,0x0049,0x004D,0x0050,0x004C,0x0049,0x0045,0x0044,0x0020,0x006F,0x0072,0x0020,0x0023,
+      0x0052,0x0045,0x0051,0x0055,0x0049,0x0052,0x0045,0x0044,0x00 }
+  , { 0x0054,0x0068,0x0069,0x0073,0x0020,0x0074,0x0079,0x0070,0x0065,0x0020,0x006F,0x0066,0x0020,0x0061,0x0074,0x0074,0x0072,0x0069,0x0062,0x0075,0x0074,0x0065,0x0020,0x0063,0x0061,0x006E,0x006E,0x006F,0x0074,0x0020,0x0068,0x0061,0x0076,0x0065,0x0020,
+      0x0061,0x006E,0x0020,0x0065,0x006D,0x0070,0x0074,0x0079,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x00 }
+  , { 0x0045,0x006C,0x0065,0x006D,0x0065,0x006E,0x0074,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0068,0x0061,0x0073,0x0020,0x0061,0x006C,0x0072,0x0065,0x0061,0x0064,0x0079,0x0020,0x0062,0x0065,0x0065,0x006E,0x0020,0x0064,0x0065,0x0063,0x006C,
+      0x0061,0x0072,0x0065,0x0064,0x00 }
+  , { 0x0045,0x006C,0x0065,0x006D,0x0065,0x006E,0x0074,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0068,0x0061,0x0073,0x0020,0x006D,0x006F,0x0072,0x0065,0x0020,0x0074,0x0068,0x0061,0x006E,0x0020,0x006F,0x006E,0x0065,0x0020,0x0049,0x0044,0x0020,
+      0x0061,0x0074,0x0074,0x0072,0x0069,0x0062,0x0075,0x0074,0x0065,0x00 }
+  , { 0x0049,0x0044,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0068,0x0061,0x0073,0x0020,0x0061,0x006C,0x0072,0x0065,0x0061,0x0064,0x0079,0x0020,0x0062,0x0065,0x0065,0x006E,0x0020,0x0075,0x0073,0x0065,0x0064,0x00 }
+  , { 0x0049,0x0044,0x0020,0x0061,0x0074,0x0074,0x0072,0x0069,0x0062,0x0075,0x0074,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0077,0x0061,0x0073,0x0020,0x0072,0x0065,0x0066,0x0065,0x0072,0x0065,0x006E,0x0063,0x0065,0x0064,0x0020,0x0062,
+      0x0075,0x0074,0x0020,0x006E,0x0065,0x0076,0x0065,0x0072,0x0020,0x0064,0x0065,0x0063,0x006C,0x0061,0x0072,0x0065,0x0064,0x00 }
+  , { 0x0041,0x0074,0x0074,0x0072,0x0069,0x0062,0x0075,0x0074,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0072,0x0065,0x0066,0x0065,0x0072,0x0073,0x0020,0x0074,0x006F,0x0020,0x0061,0x006E,0x0020,0x0075,0x006E,0x006B,0x006E,0x006F,0x0077,
+      0x006E,0x0020,0x006E,0x006F,0x0074,0x0061,0x0074,0x0069,0x006F,0x006E,0x0020,0x0027,0x007B,0x0031,0x007D,0x0027,0x00 }
+  , { 0x0045,0x006C,0x0065,0x006D,0x0065,0x006E,0x0074,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0077,0x0061,0x0073,0x0020,0x0075,0x0073,0x0065,0x0064,0x0020,0x0069,0x006E,0x0020,0x0074,0x0068,0x0065,0x0020,0x0044,0x004F,0x0043,0x0054,0x0059,
+      0x0050,0x0045,0x0020,0x0062,0x0075,0x0074,0x0020,0x006E,0x0065,0x0076,0x0065,0x0072,0x0020,0x0064,0x0065,0x0063,0x006C,0x0061,0x0072,0x0065,0x0064,0x00 }
+  , { 0x0045,0x006D,0x0070,0x0074,0x0079,0x0020,0x0063,0x006F,0x006E,0x0074,0x0065,0x006E,0x0074,0x0020,0x006E,0x006F,0x0074,0x0020,0x0076,0x0061,0x006C,0x0069,0x0064,0x0020,0x0066,0x006F,0x0072,0x0020,0x0063,0x006F,0x006E,0x0074,0x0065,0x006E,0x0074,
+      0x0020,0x006D,0x006F,0x0064,0x0065,0x006C,0x003A,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x00 }
+  , { 0x0041,0x0074,0x0074,0x0072,0x0069,0x0062,0x0075,0x0074,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0069,0x0073,0x0020,0x006E,0x006F,0x0074,0x0020,0x0064,0x0065,0x0063,0x006C,0x0061,0x0072,0x0065,0x0064,0x0020,0x0066,0x006F,0x0072,
+      0x0020,0x0065,0x006C,0x0065,0x006D,0x0065,0x006E,0x0074,0x0020,0x0027,0x007B,0x0031,0x007D,0x0027,0x00 }
+  , { 0x0054,0x0068,0x0065,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0066,0x006F,0x0072,0x0020,0x0061,0x0074,0x0074,0x0072,0x0069,0x0062,0x0075,0x0074,0x0065,0x0020,0x0027,0x007B,0x0031,0x007D,0x0027,
+      0x0020,0x006F,0x0066,0x0020,0x0074,0x0079,0x0070,0x0065,0x0020,0x0045,0x004E,0x0054,0x0049,0x0054,0x0059,0x002F,0x0045,0x004E,0x0054,0x0049,0x0054,0x0049,0x0045,0x0053,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0072,0x0065,0x0066,0x0065,0x0072,
+      0x0020,0x0074,0x006F,0x0020,0x0061,0x006E,0x0020,0x0065,0x0078,0x0074,0x0065,0x0072,0x006E,0x0061,0x006C,0x002C,0x0020,0x0075,0x006E,0x0070,0x0061,0x0072,0x0073,0x0065,0x0064,0x0020,0x0065,0x006E,0x0074,0x0069,0x0074,0x0079,0x00 }
+  , { 0x0041,0x0074,0x0074,0x0072,0x0069,0x0062,0x0075,0x0074,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0072,0x0065,0x0066,0x0065,0x0072,0x0073,0x0020,0x0074,0x006F,0x0020,0x0061,0x006E,0x0020,0x0075,0x006E,0x006B,0x006E,0x006F,0x0077,
+      0x006E,0x0020,0x0065,0x006E,0x0074,0x0069,0x0074,0x0079,0x0020,0x0027,0x007B,0x0031,0x007D,0x0027,0x00 }
+  , { 0x0049,0x0066,0x0020,0x006E,0x0061,0x006D,0x0065,0x0073,0x0070,0x0061,0x0063,0x0065,0x0073,0x0020,0x0061,0x0072,0x0065,0x0020,0x0065,0x006E,0x0061,0x0062,0x006C,0x0065,0x0064,0x002C,0x0020,0x0069,0x0074,0x0027,0x0073,0x0020,0x0069,0x006E,0x0076,
+      0x0061,0x006C,0x0069,0x0064,0x0020,0x0066,0x006F,0x0072,0x0020,0x0061,0x006E,0x0020,0x0061,0x0074,0x0074,0x0072,0x0069,0x0062,0x0075,0x0074,0x0065,0x0020,0x006F,0x0066,0x0020,0x0074,0x0079,0x0070,0x0065,0x0020,0x0049,0x0044,0x002F,0x0049,0x0044,
+      0x0052,0x0045,0x0046,0x002F,0x0049,0x0044,0x0052,0x0045,0x0046,0x0053,0x002F,0x0045,0x004E,0x0054,0x0049,0x0054,0x0059,0x002F,0x0045,0x004E,0x0054,0x0049,0x0054,0x0049,0x0045,0x0053,0x002F,0x004E,0x004F,0x0054,0x0041,0x0054,0x0049,0x004F,0x004E,
+      0x0020,0x0074,0x006F,0x0020,0x0063,0x006F,0x006E,0x0074,0x0061,0x0069,0x006E,0x0020,0x0061,0x0020,0x0063,0x006F,0x006C,0x006F,0x006E,0x002E,0x00 }
+  , { 0x004E,0x006F,0x0074,0x0020,0x0065,0x006E,0x006F,0x0075,0x0067,0x0068,0x0020,0x0065,0x006C,0x0065,0x006D,0x0065,0x006E,0x0074,0x0073,0x0020,0x0074,0x006F,0x0020,0x006D,0x0061,0x0074,0x0063,0x0068,0x0020,0x0063,0x006F,0x006E,0x0074,0x0065,0x006E,
+      0x0074,0x0020,0x006D,0x006F,0x0064,0x0065,0x006C,0x0020,0x003A,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x00 }
+  , { 0x004E,0x006F,0x0020,0x0063,0x0068,0x0061,0x0072,0x0061,0x0063,0x0074,0x0065,0x0072,0x0020,0x0064,0x0061,0x0074,0x0061,0x0020,0x0069,0x0073,0x0020,0x0061,0x006C,0x006C,0x006F,0x0077,0x0065,0x0064,0x0020,0x0062,0x0079,0x0020,0x0063,0x006F,0x006E,
+      0x0074,0x0065,0x006E,0x0074,0x0020,0x006D,0x006F,0x0064,0x0065,0x006C,0x00 }
+  , { 0x0054,0x0068,0x0065,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0066,0x006F,0x0072,0x0020,0x0061,0x0074,0x0074,0x0072,0x0069,0x0062,0x0075,0x0074,0x0065,0x0020,0x0027,0x007B,0x0031,0x007D,0x0027,
+      0x0020,0x0064,0x006F,0x0065,0x0073,0x0020,0x006E,0x006F,0x0074,0x0020,0x006D,0x0061,0x0074,0x0063,0x0068,0x0020,0x0069,0x0074,0x0073,0x0020,0x0064,0x0065,0x0066,0x0069,0x006E,0x0065,0x0064,0x0020,0x0065,0x006E,0x0075,0x006D,0x0065,0x0072,0x0061,
+      0x0074,0x0069,0x006F,0x006E,0x0020,0x006F,0x0072,0x0020,0x006E,0x006F,0x0074,0x0061,0x0074,0x0069,0x006F,0x006E,0x0020,0x006C,0x0069,0x0073,0x0074,0x00 }
+  , { 0x0054,0x0068,0x0065,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0066,0x006F,0x0072,0x0020,0x0061,0x0074,0x0074,0x0072,0x0069,0x0062,0x0075,0x0074,0x0065,0x0020,0x0027,0x007B,0x0031,0x007D,0x0027,
+      0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0062,0x0065,0x0020,0x004E,0x0061,0x006D,0x0065,0x0020,0x006F,0x0072,0x0020,0x004E,0x006D,0x0074,0x006F,0x006B,0x0065,0x006E,0x00 }
+  , { 0x0041,0x0074,0x0074,0x0072,0x0069,0x0062,0x0075,0x0074,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0064,0x006F,0x0065,0x0073,0x0020,0x006E,0x006F,0x0074,0x0020,0x0073,0x0075,0x0070,0x0070,0x006F,0x0072,0x0074,0x0020,0x006D,0x0075,
+      0x006C,0x0074,0x0069,0x0070,0x006C,0x0065,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0073,0x00 }
+  , { 0x0041,0x0074,0x0074,0x0072,0x0069,0x0062,0x0075,0x0074,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0068,0x0061,0x0073,0x0020,0x0061,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x002C,0x0020,0x0027,0x007B,0x0031,0x007D,0x0027,0x002C,
+      0x0020,0x0074,0x0068,0x0061,0x0074,0x0020,0x0064,0x006F,0x0065,0x0073,0x0020,0x006E,0x006F,0x0074,0x0020,0x006D,0x0061,0x0074,0x0063,0x0068,0x0020,0x0069,0x0074,0x0073,0x0020,0x0023,0x0046,0x0049,0x0058,0x0045,0x0044,0x0020,0x0076,0x0061,0x006C,
+      0x0075,0x0065,0x002C,0x0020,0x0027,0x007B,0x0032,0x007D,0x0027,0x00 }
+  , { 0x0045,0x006C,0x0065,0x006D,0x0065,0x006E,0x0074,0x0020,0x0074,0x0079,0x0070,0x0065,0x0073,0x0020,0x0063,0x0061,0x006E,0x006E,0x006F,0x0074,0x0020,0x0062,0x0065,0x0020,0x0064,0x0075,0x0070,0x006C,0x0069,0x0063,0x0061,0x0074,0x0065,0x0064,0x0020,
+      0x0069,0x006E,0x0020,0x004D,0x0069,0x0078,0x0065,0x0064,0x0020,0x0063,0x006F,0x006E,0x0074,0x0065,0x006E,0x0074,0x0020,0x006D,0x006F,0x0064,0x0065,0x006C,0x0073,0x00 }
+  , { 0x004E,0x006F,0x0020,0x0076,0x0061,0x006C,0x0069,0x0064,0x0061,0x0074,0x006F,0x0072,0x0020,0x0066,0x006F,0x0072,0x0020,0x0064,0x0061,0x0074,0x0061,0x0074,0x0079,0x0070,0x0065,0x0020,0x007B,0x0030,0x007D,0x00 }
+  , { 0x0049,0x006E,0x0063,0x006F,0x0072,0x0072,0x0065,0x0063,0x0074,0x0020,0x0064,0x0061,0x0074,0x0061,0x0074,0x0079,0x0070,0x0065,0x003A,0x0020,0x007B,0x0030,0x007D,0x00 }
+  , { 0x007B,0x0030,0x007D,0x0020,0x0069,0x0073,0x0020,0x006E,0x006F,0x0074,0x0020,0x0061,0x0020,0x0064,0x0061,0x0074,0x0061,0x0074,0x0079,0x0070,0x0065,0x002E,0x00 }
+  , { 0x0054,0x0068,0x0065,0x0020,0x0063,0x006F,0x006E,0x0074,0x0065,0x006E,0x0074,0x0020,0x0061,0x0074,0x0074,0x0072,0x0069,0x0062,0x0075,0x0074,0x0065,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0062,0x0065,0x0020,0x0027,0x0074,0x0065,0x0078,0x0074,
+      0x004F,0x006E,0x006C,0x0079,0x0027,0x0020,0x0069,0x0066,0x0020,0x0079,0x006F,0x0075,0x0020,0x0073,0x0070,0x0065,0x0063,0x0069,0x0066,0x0079,0x0020,0x0061,0x0020,0x0074,0x0079,0x0070,0x0065,0x0020,0x0061,0x0074,0x0074,0x0072,0x0069,0x0062,0x0075,
+      0x0074,0x0065,0x002E,0x00 }
+  , { 0x007B,0x0030,0x007D,0x0020,0x0069,0x0073,0x0020,0x0075,0x006E,0x0073,0x0075,0x0070,0x0070,0x006F,0x0072,0x0074,0x0065,0x0064,0x00 }
+  , { 0x004E,0x0065,0x0073,0x0074,0x0065,0x0064,0x0020,0x0045,0x006C,0x0065,0x006D,0x0065,0x006E,0x0074,0x0020,0x0064,0x0065,0x0063,0x006C,0x0073,0x0020,0x006F,0x006E,0x006C,0x0079,0x0020,0x0061,0x006C,0x006C,0x006F,0x0077,0x0065,0x0064,0x0020,0x0069,
+      0x006E,0x0020,0x0065,0x006C,0x0065,0x006D,0x0065,0x006E,0x0074,0x004F,0x006E,0x006C,0x0079,0x0020,0x0063,0x006F,0x006E,0x0074,0x0065,0x006E,0x0074,0x00 }
+  , { 0x0045,0x006C,0x0065,0x006D,0x0065,0x006E,0x0074,0x0020,0x0072,0x0065,0x0066,0x0065,0x0072,0x0065,0x006E,0x0063,0x0065,0x0073,0x0020,0x006F,0x006E,0x006C,0x0079,0x0020,0x0061,0x006C,0x006C,0x006F,0x0077,0x0065,0x0064,0x0020,0x0069,0x006E,0x0020,
+      0x006D,0x0069,0x0078,0x0065,0x0064,0x0020,0x006F,0x0072,0x0020,0x0065,0x006C,0x0065,0x006D,0x0065,0x006E,0x0074,0x004F,0x006E,0x006C,0x0079,0x0020,0x0063,0x006F,0x006E,0x0074,0x0065,0x006E,0x0074,0x00 }
+  , { 0x007B,0x0030,0x007D,0x0020,0x006F,0x006E,0x006C,0x0079,0x0020,0x0061,0x006C,0x006C,0x006F,0x0077,0x0065,0x0064,0x0020,0x0069,0x006E,0x0020,0x0065,0x006C,0x0065,0x006D,0x0065,0x006E,0x0074,0x004F,0x006E,0x006C,0x0079,0x0020,0x0063,0x006F,0x006E,
+      0x0074,0x0065,0x006E,0x0074,0x002E,0x00 }
+  , { 0x007B,0x0030,0x007D,0x0020,0x006E,0x006F,0x0074,0x0020,0x0061,0x006C,0x006C,0x006F,0x0077,0x0065,0x0064,0x0020,0x0069,0x0066,0x0020,0x0074,0x0068,0x0065,0x0020,0x006F,0x0072,0x0064,0x0065,0x0072,0x0020,0x0069,0x0073,0x0020,0x0061,0x006C,0x006C,
+      0x002E,0x00 }
+  , { 0x0044,0x0061,0x0074,0x0061,0x0074,0x0079,0x0070,0x0065,0x0020,0x0071,0x0075,0x0061,0x006C,0x0069,0x0066,0x0069,0x0065,0x0072,0x0073,0x0020,0x0063,0x0061,0x006E,0x0020,0x006F,0x006E,0x006C,0x0079,0x0020,0x0062,0x0065,0x0020,0x0075,0x0073,0x0065,
+      0x0064,0x0020,0x0069,0x0066,0x0020,0x0079,0x006F,0x0075,0x0020,0x0073,0x0070,0x0065,0x0063,0x0069,0x0066,0x0079,0x0020,0x0061,0x0020,0x0074,0x0079,0x0070,0x0065,0x0020,0x0061,0x0074,0x0074,0x0072,0x0069,0x0062,0x0075,0x0074,0x0065,0x002E,0x00 }
+  , { 0x0054,0x0068,0x0065,0x0020,0x0064,0x0061,0x0074,0x0061,0x0074,0x0079,0x0070,0x0065,0x0020,0x0071,0x0075,0x0061,0x006C,0x0069,0x0066,0x0069,0x0065,0x0072,0x0020,0x007B,0x0030,0x007D,0x0020,0x0069,0x0073,0x0020,0x006E,0x006F,0x0074,0x0020,0x0073,
+      0x0075,0x0070,0x0070,0x006F,0x0072,0x0074,0x0065,0x0064,0x002E,0x00 }
+  , { 0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0069,0x0073,0x0020,0x006E,0x006F,0x0074,0x0020,0x0061,0x006C,0x006C,0x006F,0x0077,0x0065,0x0064,0x0020,0x0066,0x006F,0x0072,0x0020,0x0074,0x0068,0x0065,0x0020,0x0063,0x006F,0x006E,0x0074,0x0065,0x006E,
+      0x0074,0x0020,0x006F,0x0066,0x0020,0x0061,0x0020,0x0027,0x007B,0x0031,0x007D,0x0027,0x0020,0x006D,0x006F,0x0064,0x0065,0x006C,0x0020,0x0067,0x0072,0x006F,0x0075,0x0070,0x002E,0x0020,0x0020,0x004F,0x006E,0x006C,0x0079,0x0020,0x0065,0x006C,0x0065,
+      0x006D,0x0065,0x006E,0x0074,0x002C,0x0020,0x0067,0x0072,0x006F,0x0075,0x0070,0x002C,0x0020,0x0063,0x0068,0x006F,0x0069,0x0063,0x0065,0x002C,0x0020,0x0073,0x0065,0x0071,0x0075,0x0065,0x006E,0x0063,0x0065,0x0020,0x0061,0x006E,0x0064,0x0020,0x0061,
+      0x006E,0x0079,0x0020,0x0061,0x0072,0x0065,0x0020,0x0061,0x006C,0x006C,0x006F,0x0077,0x0065,0x0064,0x002E,0x00 }
+  , { 0x0055,0x006E,0x006B,0x006E,0x006F,0x0077,0x006E,0x0020,0x0062,0x0061,0x0073,0x0065,0x0020,0x0074,0x0079,0x0070,0x0065,0x0020,0x007B,0x0030,0x007D,0x0020,0x0066,0x006F,0x0072,0x0020,0x0074,0x0079,0x0070,0x0065,0x0020,0x007B,0x0031,0x007D,0x002E,
+      0x00 }
+  , { 0x0043,0x0061,0x006E,0x0020,0x006F,0x006E,0x006C,0x0079,0x0020,0x0068,0x0061,0x0076,0x0065,0x0020,0x006F,0x006E,0x0065,0x0020,0x006F,0x0066,0x0020,0x0074,0x0079,0x0070,0x0065,0x0020,0x0061,0x006E,0x0064,0x0020,0x0072,0x0065,0x0066,0x0020,0x0061,
+      0x0074,0x0074,0x0072,0x0069,0x0062,0x0075,0x0074,0x0065,0x0073,0x002E,0x00 }
+  , { 0x0041,0x0020,0x003C,0x007B,0x0030,0x007D,0x003E,0x0020,0x0064,0x0065,0x0063,0x006C,0x0061,0x0072,0x0061,0x0074,0x0069,0x006F,0x006E,0x0020,0x0074,0x0068,0x0061,0x0074,0x0020,0x0068,0x0061,0x0073,0x0020,0x0061,0x0020,0x0072,0x0065,0x0066,0x0020,
+      0x0061,0x0074,0x0074,0x0072,0x0069,0x0062,0x0075,0x0074,0x0065,0x002C,0x0020,0x0063,0x0061,0x006E,0x006E,0x006F,0x0074,0x0020,0x0068,0x0061,0x0076,0x0065,0x0020,0x0063,0x0068,0x0069,0x006C,0x0064,0x0020,0x0063,0x006F,0x006E,0x0074,0x0065,0x006E,
+      0x0074,0x002E,0x00 }
+  , { 0x0049,0x006E,0x0063,0x006F,0x0072,0x0072,0x0065,0x0063,0x0074,0x0020,0x0074,0x0079,0x0070,0x0065,0x0020,0x0066,0x006F,0x0072,0x0020,0x007B,0x0030,0x007D,0x0027,0x0073,0x0020,0x0064,0x0065,0x0066,0x0061,0x0075,0x006C,0x0074,0x0020,0x0076,0x0061,
+      0x006C,0x0075,0x0065,0x003A,0x0020,0x007B,0x0031,0x007D,0x00 }
+  , { 0x0049,0x006C,0x006C,0x0065,0x0067,0x0061,0x006C,0x0020,0x0063,0x006F,0x006E,0x0074,0x0065,0x006E,0x0074,0x0020,0x007B,0x0030,0x007D,0x0020,0x0069,0x006E,0x0020,0x0061,0x0074,0x0074,0x0072,0x0069,0x0062,0x0075,0x0074,0x0065,0x0020,0x0067,0x0072,
+      0x006F,0x0075,0x0070,0x00 }
+  , { 0x0056,0x0061,0x006C,0x0075,0x0065,0x0020,0x006F,0x0066,0x0020,0x007B,0x0030,0x007D,0x0020,0x0069,0x0073,0x0020,0x006E,0x006F,0x0074,0x0020,0x0061,0x006E,0x0020,0x0069,0x006E,0x0074,0x0065,0x0067,0x0065,0x0072,0x002E,0x00 }
+  , { 0x0044,0x0061,0x0074,0x0061,0x0074,0x0079,0x0070,0x0065,0x0020,0x0065,0x0072,0x0072,0x006F,0x0072,0x003A,0x0020,0x0054,0x0079,0x0070,0x0065,0x003A,0x007B,0x0030,0x007D,0x002C,0x0020,0x004D,0x0065,0x0073,0x0073,0x0061,0x0067,0x0065,0x003A,0x007B,
+      0x0031,0x007D,0x002E,0x00 }
+  , { 0x0053,0x0063,0x0068,0x0065,0x006D,0x0061,0x0020,0x0065,0x0072,0x0072,0x006F,0x0072,0x003A,0x0020,0x0054,0x0079,0x0070,0x0065,0x003A,0x007B,0x0030,0x007D,0x002C,0x0020,0x004D,0x0065,0x0073,0x0073,0x0061,0x0067,0x0065,0x003A,0x007B,0x0031,0x007D,
+      0x00 }
+  , { 0x0054,0x0068,0x0065,0x0020,0x0074,0x0079,0x0070,0x0065,0x0020,0x006F,0x0066,0x0020,0x0074,0x0068,0x0065,0x0020,0x0065,0x006C,0x0065,0x006D,0x0065,0x006E,0x0074,0x0020,0x0068,0x0061,0x0073,0x0020,0x0061,0x006C,0x0072,0x0065,0x0061,0x0064,0x0079,
+      0x0020,0x0062,0x0065,0x0065,0x006E,0x0020,0x0064,0x0065,0x0063,0x006C,0x0061,0x0072,0x0065,0x0064,0x002E,0x00 }
+  , { 0x0050,0x0072,0x006F,0x0068,0x0069,0x0062,0x0069,0x0074,0x0065,0x0064,0x0020,0x0041,0x0074,0x0074,0x0072,0x0069,0x0062,0x0075,0x0074,0x0065,0x0020,0x007B,0x0030,0x007D,0x0020,0x0069,0x0073,0x0020,0x0066,0x006F,0x0075,0x006E,0x0064,0x002E,0x00 }
+  , { 0x0049,0x006C,0x006C,0x0065,0x0067,0x0061,0x006C,0x0020,0x0078,0x006D,0x006C,0x003A,0x0073,0x0070,0x0061,0x0063,0x0065,0x0020,0x0064,0x0065,0x0063,0x006C,0x0061,0x0072,0x0061,0x0074,0x0069,0x006F,0x006E,0x002E,0x00 }
+  , { 0x007B,0x0030,0x007D,0x0020,0x0069,0x0073,0x0020,0x006E,0x006F,0x0074,0x0020,0x0061,0x0020,0x0062,0x006F,0x006F,0x006C,0x0065,0x0061,0x006E,0x002E,0x00 }
+  , { 0x007B,0x0030,0x007D,0x0020,0x0069,0x0073,0x0020,0x006E,0x006F,0x0074,0x0020,0x0061,0x0020,0x0064,0x0065,0x0063,0x0069,0x006D,0x0061,0x006C,0x002E,0x00 }
+  , { 0x0046,0x0061,0x0063,0x0065,0x0074,0x0073,0x0020,0x0061,0x0072,0x0065,0x0020,0x0069,0x006E,0x0063,0x006F,0x006E,0x0073,0x0069,0x0073,0x0074,0x0065,0x006E,0x0074,0x0020,0x0077,0x0069,0x0074,0x0068,0x0020,0x0062,0x0061,0x0073,0x0065,0x0020,0x0074,
+      0x0079,0x0070,0x0065,0x002E,0x00 }
+  , { 0x0049,0x006C,0x006C,0x0065,0x0067,0x0061,0x006C,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0020,0x007B,0x0030,0x007D,0x0020,0x0066,0x006F,0x0072,0x0020,0x0066,0x0061,0x0063,0x0065,0x0074,0x0020,0x007B,0x0031,0x007D,0x002E,0x00 }
+  , { 0x0049,0x006C,0x006C,0x0065,0x0067,0x0061,0x006C,0x0020,0x0046,0x0061,0x0063,0x0065,0x0074,0x0020,0x0066,0x006F,0x0072,0x0020,0x0064,0x0065,0x0063,0x0069,0x006D,0x0061,0x006C,0x0020,0x0074,0x0079,0x0070,0x0065,0x002E,0x00 }
+  , { 0x0055,0x006E,0x006B,0x006E,0x006F,0x0077,0x006E,0x0020,0x0046,0x0061,0x0063,0x0065,0x0074,0x003A,0x0020,0x007B,0x0030,0x007D,0x002E,0x00 }
+  , { 0x0049,0x006E,0x0076,0x0061,0x006C,0x0069,0x0064,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0020,0x0066,0x006F,0x0072,0x0020,0x0045,0x006E,0x0075,0x006D,0x0020,0x0063,0x006F,0x006E,0x0073,0x0074,0x0061,0x006E,0x0074,0x003A,0x0020,0x007B,0x0030,
+      0x007D,0x002E,0x00 }
+  , { 0x007B,0x0030,0x007D,0x0020,0x0069,0x0073,0x0020,0x006F,0x0075,0x0074,0x0020,0x006F,0x0066,0x0020,0x0062,0x006F,0x0075,0x006E,0x0064,0x0073,0x003A,0x005B,0x0020,0x007B,0x0031,0x007D,0x0020,0x007B,0x0033,0x007D,0x0020,0x0058,0x0020,0x0020,0x007B,
+      0x0034,0x007D,0x0020,0x007B,0x0032,0x007D,0x0020,0x005D,0x002E,0x00 }
+  , { 0x007B,0x0030,0x007D,0x0020,0x0069,0x0073,0x0020,0x006E,0x006F,0x0074,0x0020,0x006F,0x006E,0x0065,0x0020,0x006F,0x0066,0x0020,0x0074,0x0068,0x0065,0x0020,0x0073,0x0070,0x0065,0x0063,0x0069,0x0066,0x0069,0x0065,0x0064,0x0020,0x0065,0x006E,0x0075,
+      0x006D,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0073,0x002E,0x00 }
+  , { 0x007B,0x0030,0x007D,0x0020,0x0069,0x0073,0x0020,0x006E,0x006F,0x0074,0x0020,0x0061,0x006E,0x0020,0x0069,0x006E,0x0074,0x0065,0x0067,0x0065,0x0072,0x002E,0x00 }
+  , { 0x0049,0x006C,0x006C,0x0065,0x0067,0x0061,0x006C,0x0020,0x0046,0x0061,0x0063,0x0065,0x0074,0x0020,0x0066,0x006F,0x0072,0x0020,0x0049,0x006E,0x0074,0x0065,0x0067,0x0065,0x0072,0x0020,0x0074,0x0079,0x0070,0x0065,0x002E,0x00 }
+  , { 0x007B,0x0030,0x007D,0x0020,0x0069,0x0073,0x0020,0x006E,0x006F,0x0074,0x0020,0x0061,0x0020,0x0064,0x006F,0x0075,0x0062,0x006C,0x0065,0x002E,0x00 }
+  , { 0x0049,0x006C,0x006C,0x0065,0x0067,0x0061,0x006C,0x0020,0x0046,0x0061,0x0063,0x0065,0x0074,0x0020,0x0066,0x006F,0x0072,0x0020,0x0052,0x0065,0x0061,0x006C,0x0020,0x0074,0x0079,0x0070,0x0065,0x002E,0x00 }
+  , { 0x0053,0x0063,0x0061,0x006C,0x0065,0x0020,0x0046,0x0061,0x0063,0x0065,0x0074,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0062,0x0065,0x0020,0x006C,0x0065,0x0073,0x0073,0x0020,0x0074,0x0068,0x0061,0x006E,0x0020,0x006F,0x0072,0x0020,0x0065,0x0071,
+      0x0075,0x0061,0x006C,0x0020,0x0074,0x006F,0x0020,0x0050,0x0072,0x0065,0x0063,0x0069,0x0073,0x0069,0x006F,0x006E,0x0020,0x0046,0x0061,0x0063,0x0065,0x0074,0x00 }
+  , { 0x007B,0x0030,0x007D,0x0020,0x0068,0x0061,0x0073,0x0020,0x0065,0x0078,0x0063,0x0065,0x0065,0x0064,0x0065,0x0064,0x0020,0x0074,0x0068,0x0065,0x0020,0x0070,0x0072,0x0065,0x0063,0x0069,0x0073,0x0069,0x006F,0x006E,0x0020,0x0046,0x0061,0x0063,0x0065,
+      0x0074,0x0020,0x007B,0x0031,0x007D,0x00 }
+  , { 0x007B,0x0030,0x007D,0x0020,0x0068,0x0061,0x0073,0x0020,0x0065,0x0078,0x0063,0x0065,0x0065,0x0064,0x0065,0x0064,0x0020,0x0074,0x0068,0x0065,0x0020,0x0073,0x0063,0x0061,0x006C,0x0065,0x0020,0x0046,0x0061,0x0063,0x0065,0x0074,0x0020,0x007B,0x0031,
+      0x007D,0x00 }
+  , { 0x007B,0x0030,0x007D,0x0020,0x0069,0x0073,0x0020,0x006E,0x006F,0x0074,0x0020,0x0061,0x0020,0x0066,0x006C,0x006F,0x0061,0x0074,0x002E,0x00 }
+  , { 0x0043,0x0061,0x006E,0x0027,0x0074,0x0020,0x0067,0x0065,0x0074,0x0020,0x0062,0x0061,0x0063,0x006B,0x0020,0x0053,0x0063,0x0068,0x0065,0x006D,0x0061,0x0020,0x0064,0x006F,0x0063,0x0075,0x006D,0x0065,0x006E,0x0074,0x0027,0x0073,0x0020,0x0072,0x006F,
+      0x006F,0x0074,0x0020,0x0065,0x006C,0x0065,0x006D,0x0065,0x006E,0x0074,0x0020,0x007B,0x0030,0x007D,0x002E,0x00 }
+  , { 0x0053,0x0063,0x0068,0x0065,0x006D,0x0061,0x0020,0x0069,0x006E,0x0020,0x007B,0x0030,0x007D,0x0020,0x0068,0x0061,0x0073,0x0020,0x0061,0x0020,0x0064,0x0069,0x0066,0x0066,0x0065,0x0072,0x0065,0x006E,0x0074,0x0020,0x0074,0x0061,0x0072,0x0067,0x0065,
+      0x0074,0x0020,0x006E,0x0061,0x006D,0x0065,0x0073,0x0070,0x0061,0x0063,0x0065,0x0020,0x0066,0x0072,0x006F,0x006D,0x0020,0x0074,0x0068,0x0065,0x0020,0x006F,0x006E,0x0065,0x0020,0x0073,0x0070,0x0065,0x0063,0x0069,0x0066,0x0069,0x0065,0x0064,0x0020,
+      0x0069,0x006E,0x0020,0x0074,0x0068,0x0065,0x0020,0x0069,0x006E,0x0073,0x0074,0x0061,0x006E,0x0063,0x0065,0x0020,0x0064,0x006F,0x0063,0x0075,0x006D,0x0065,0x006E,0x0074,0x0020,0x007B,0x0031,0x007D,0x002E,0x00 }
+  , { 0x0049,0x006E,0x0020,0x0065,0x006C,0x0065,0x006D,0x0065,0x006E,0x0074,0x0020,0x007B,0x0030,0x007D,0x003A,0x0020,0x0043,0x0061,0x006E,0x0020,0x006E,0x006F,0x0074,0x0020,0x0068,0x0061,0x0076,0x0065,0x0020,0x0065,0x006C,0x0065,0x006D,0x0065,0x006E,
+      0x0074,0x0020,0x0063,0x0068,0x0069,0x006C,0x0064,0x0072,0x0065,0x006E,0x0020,0x0077,0x0069,0x0074,0x0068,0x0069,0x006E,0x0020,0x0061,0x0020,0x0073,0x0069,0x006D,0x0070,0x006C,0x0065,0x0020,0x0074,0x0079,0x0070,0x0065,0x0020,0x0063,0x006F,0x006E,
+      0x0074,0x0065,0x006E,0x0074,0x002E,0x00 }
+  , { 0x0054,0x0068,0x0069,0x0073,0x0020,0x0065,0x006C,0x0065,0x006D,0x0065,0x006E,0x0074,0x0020,0x007B,0x0030,0x007D,0x0020,0x0068,0x0061,0x0073,0x0020,0x0061,0x0020,0x0073,0x0069,0x006D,0x0070,0x006C,0x0065,0x0074,0x0079,0x0070,0x0065,0x0020,0x0062,
+      0x0075,0x0074,0x0020,0x006E,0x006F,0x0020,0x0064,0x0061,0x0074,0x0061,0x0074,0x0079,0x0070,0x0065,0x0020,0x0076,0x0061,0x006C,0x0069,0x0064,0x0061,0x0074,0x006F,0x0072,0x0020,0x0077,0x0061,0x0073,0x0020,0x0066,0x006F,0x0075,0x006E,0x0064,0x002E,
+      0x00 }
+  , { 0x0054,0x0068,0x0065,0x0072,0x0065,0x0020,0x0069,0x0073,0x0020,0x006E,0x006F,0x0020,0x0047,0x0072,0x0061,0x006D,0x006D,0x0061,0x0072,0x0020,0x0066,0x006F,0x0072,0x0020,0x0075,0x0072,0x0069,0x003A,0x0020,0x007B,0x0030,0x007D,0x002E,0x00 }
+  , { 0x007B,0x0030,0x007D,0x00 }
+  , { 0x0078,0x0073,0x0069,0x003A,0x006E,0x0069,0x006C,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x006E,0x006F,0x0074,0x0020,0x0062,0x0065,0x0020,0x0073,0x0070,0x0065,0x0063,0x0069,0x0066,0x0069,0x0065,0x0064,0x0020,0x0066,0x006F,0x0072,0x0020,0x0074,
+      0x0068,0x0065,0x0020,0x0065,0x006C,0x0065,0x006D,0x0065,0x006E,0x0074,0x0020,0x007B,0x0030,0x007D,0x0020,0x0077,0x0069,0x0074,0x0068,0x0020,0x006E,0x0069,0x006C,0x006C,0x0061,0x0062,0x006C,0x0065,0x0020,0x0065,0x0071,0x0075,0x0061,0x006C,0x0073,
+      0x0020,0x0066,0x0061,0x006C,0x0073,0x0065,0x00 }
+  , { 0x0045,0x006C,0x0065,0x006D,0x0065,0x006E,0x0074,0x0020,0x007B,0x0030,0x007D,0x0020,0x0077,0x0069,0x0074,0x0068,0x0020,0x0061,0x0074,0x0074,0x0072,0x0069,0x0062,0x0075,0x0074,0x0065,0x0020,0x0078,0x0073,0x0069,0x003A,0x006E,0x0069,0x006C,0x003D,
+      0x0074,0x0072,0x0075,0x0065,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0062,0x0065,0x0020,0x0065,0x006D,0x0070,0x0074,0x0079,0x00 }
+  , { 0x0043,0x006F,0x006E,0x0074,0x0065,0x006E,0x0074,0x0020,0x006F,0x0066,0x0020,0x0065,0x006C,0x0065,0x006D,0x0065,0x006E,0x0074,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0069,0x0073,0x0020,0x0064,0x0069,0x0066,0x0066,0x0065,0x0072,0x0065,
+      0x006E,0x0074,0x0020,0x0066,0x0072,0x006F,0x006D,0x0020,0x0074,0x0068,0x0065,0x0020,0x0066,0x0069,0x0078,0x0065,0x0064,0x0020,0x0061,0x0074,0x0074,0x0072,0x0069,0x0062,0x0075,0x0074,0x0065,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0020,0x0069,
+      0x006E,0x0020,0x0074,0x0068,0x0065,0x0020,0x0065,0x006C,0x0065,0x006D,0x0065,0x006E,0x0074,0x0027,0x0073,0x0020,0x0073,0x0063,0x0068,0x0065,0x006D,0x0061,0x0020,0x0064,0x0065,0x0063,0x006C,0x0061,0x0072,0x0061,0x0074,0x0069,0x006F,0x006E,0x002E,
+      0x00 }
+  , { 0x004E,0x006F,0x0020,0x0064,0x0061,0x0074,0x0061,0x0074,0x0079,0x0070,0x0065,0x0020,0x0076,0x0061,0x006C,0x0069,0x0064,0x0061,0x0074,0x006F,0x0072,0x0020,0x0077,0x0061,0x0073,0x0020,0x0066,0x006F,0x0075,0x006E,0x0064,0x0020,0x0066,0x006F,0x0072,
+      0x0020,0x0074,0x0068,0x0069,0x0073,0x0020,0x0061,0x0074,0x0074,0x0072,0x0069,0x0062,0x0075,0x0074,0x0065,0x0020,0x007B,0x0030,0x007D,0x002E,0x00 }
+  , { 0x0053,0x0063,0x0068,0x0065,0x006D,0x0061,0x0020,0x0065,0x0072,0x0072,0x006F,0x0072,0x0020,0x0064,0x0075,0x0072,0x0069,0x006E,0x0067,0x0020,0x0070,0x0061,0x0072,0x0073,0x0069,0x006E,0x0067,0x00 }
+  , { 0x0045,0x006C,0x0065,0x006D,0x0065,0x006E,0x0074,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0073,0x0068,0x006F,0x0075,0x006C,0x0064,0x0020,0x0062,0x0065,0x0020,0x0071,0x0075,0x0061,0x006C,0x0069,0x0066,0x0069,0x0065,0x0064,0x00 }
+  , { 0x0045,0x006C,0x0065,0x006D,0x0065,0x006E,0x0074,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0073,0x0068,0x006F,0x0075,0x006C,0x0064,0x0020,0x0062,0x0065,0x0020,0x0075,0x006E,0x002D,0x0071,0x0075,0x0061,0x006C,0x0069,0x0066,0x0069,0x0065,
+      0x0064,0x00 }
+  , { 0x0052,0x0065,0x0066,0x0065,0x0072,0x0065,0x006E,0x0063,0x0065,0x0020,0x0074,0x006F,0x0020,0x0065,0x0078,0x0074,0x0065,0x0072,0x006E,0x0061,0x006C,0x0020,0x0065,0x006E,0x0074,0x0069,0x0074,0x0079,0x0020,0x0064,0x0065,0x0063,0x006C,0x0061,0x0072,
+      0x0061,0x0074,0x0069,0x006F,0x006E,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0069,0x0073,0x0020,0x006E,0x006F,0x0074,0x0020,0x0061,0x006C,0x006C,0x006F,0x0077,0x0065,0x0064,0x0020,0x0069,0x006E,0x0020,0x0061,0x0020,0x0073,0x0074,0x0061,
+      0x006E,0x0064,0x0061,0x006C,0x006F,0x006E,0x0065,0x0020,0x0064,0x006F,0x0063,0x0075,0x006D,0x0065,0x006E,0x0074,0x002E,0x00 }
+  , { 0x0041,0x0074,0x0074,0x0072,0x0069,0x0062,0x0075,0x0074,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0066,0x006F,0x0072,0x0020,0x0065,0x006C,0x0065,0x006D,0x0065,0x006E,0x0074,0x0020,0x0027,0x007B,0x0031,0x007D,0x0027,0x0020,0x0068,
+      0x0061,0x0073,0x0020,0x0061,0x0020,0x0064,0x0065,0x0066,0x0061,0x0075,0x006C,0x0074,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0020,0x0061,0x006E,0x0064,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0062,0x0065,0x0020,0x0073,0x0070,0x0065,0x0063,
+      0x0069,0x0066,0x0069,0x0065,0x0064,0x0020,0x0069,0x006E,0x0020,0x0061,0x0020,0x0073,0x0074,0x0061,0x006E,0x0064,0x0061,0x006C,0x006F,0x006E,0x0065,0x0020,0x0064,0x006F,0x0063,0x0075,0x006D,0x0065,0x006E,0x0074,0x002E,0x00 }
+  , { 0x0041,0x0074,0x0074,0x0072,0x0069,0x0062,0x0075,0x0074,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x006E,0x006F,0x0074,0x0020,0x0062,0x0065,0x0020,0x0063,0x0068,0x0061,0x006E,0x0067,0x0065,0x0064,
+      0x0020,0x0062,0x0079,0x0020,0x006E,0x006F,0x0072,0x006D,0x0061,0x006C,0x0069,0x007A,0x0061,0x0074,0x0069,0x006F,0x006E,0x0020,0x0069,0x006E,0x0020,0x0061,0x0020,0x0073,0x0074,0x0061,0x006E,0x0064,0x0061,0x006C,0x006F,0x006E,0x0065,0x0020,0x0064,
+      0x006F,0x0063,0x0075,0x006D,0x0065,0x006E,0x0074,0x002E,0x00 }
+  , { 0x0057,0x0068,0x0069,0x0074,0x0065,0x0020,0x0073,0x0070,0x0061,0x0063,0x0065,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x006E,0x006F,0x0074,0x0020,0x006F,0x0063,0x0063,0x0075,0x0072,0x0020,0x0062,0x0065,0x0074,0x0077,0x0065,0x0065,0x006E,0x0020,
+      0x0065,0x0078,0x0074,0x0065,0x0072,0x006E,0x0061,0x006C,0x006C,0x0079,0x0020,0x0064,0x0065,0x0063,0x006C,0x0061,0x0072,0x0065,0x0064,0x0020,0x0065,0x006C,0x0065,0x006D,0x0065,0x006E,0x0074,0x0073,0x0020,0x0077,0x0069,0x0074,0x0068,0x0020,0x0065,
+      0x006C,0x0065,0x006D,0x0065,0x006E,0x0074,0x0020,0x0063,0x006F,0x006E,0x0074,0x0065,0x006E,0x0074,0x0020,0x0069,0x006E,0x0020,0x0061,0x0020,0x0073,0x0074,0x0061,0x006E,0x0064,0x0061,0x006C,0x006F,0x006E,0x0065,0x0020,0x0064,0x006F,0x0063,0x0075,
+      0x006D,0x0065,0x006E,0x0074,0x002E,0x00 }
+  , { 0x0045,0x006E,0x0074,0x0069,0x0074,0x0079,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0077,0x0061,0x0073,0x0020,0x006E,0x006F,0x0074,0x0020,0x0066,0x006F,0x0075,0x006E,0x0064,0x00 }
+  , { 0x0050,0x0061,0x0072,0x0074,0x0069,0x0061,0x006C,0x0020,0x006D,0x0061,0x0072,0x006B,0x0075,0x0070,0x0020,0x0069,0x006E,0x0020,0x0070,0x0061,0x0072,0x0061,0x006D,0x0065,0x0074,0x0065,0x0072,0x0020,0x0065,0x006E,0x0074,0x0069,0x0074,0x0079,0x0020,
+      0x0072,0x0065,0x0070,0x006C,0x0061,0x0063,0x0065,0x006D,0x0065,0x006E,0x0074,0x0020,0x0074,0x0065,0x0078,0x0074,0x002E,0x00 }
+  , { 0x0046,0x0061,0x0069,0x006C,0x0065,0x0064,0x0020,0x0074,0x006F,0x0020,0x0076,0x0061,0x006C,0x0069,0x0064,0x0061,0x0074,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x00 }
+  , { 0x0043,0x006F,0x006D,0x0070,0x006C,0x0065,0x0078,0x0020,0x0074,0x0079,0x0070,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0076,0x0069,0x006F,0x006C,0x0061,0x0074,0x0065,0x0073,0x0020,0x0074,0x0068,0x0065,0x0020,0x0055,0x006E,0x0069,
+      0x0071,0x0075,0x0065,0x0020,0x0050,0x0061,0x0072,0x0074,0x0069,0x0063,0x006C,0x0065,0x0020,0x0041,0x0074,0x0074,0x0072,0x0069,0x0062,0x0075,0x0074,0x0069,0x006F,0x006E,0x0020,0x0072,0x0075,0x006C,0x0065,0x0020,0x0069,0x006E,0x0020,0x0069,0x0074,
+      0x0073,0x0020,0x0063,0x006F,0x006D,0x0070,0x006F,0x006E,0x0065,0x006E,0x0074,0x0073,0x0020,0x0027,0x007B,0x0031,0x007D,0x0027,0x0020,0x0061,0x006E,0x0064,0x0020,0x0027,0x007B,0x0032,0x007D,0x0027,0x00 }
+  , { 0x0041,0x0062,0x0073,0x0074,0x0072,0x0061,0x0063,0x0074,0x0020,0x0074,0x0079,0x0070,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0073,0x0068,0x006F,0x0075,0x006C,0x0064,0x0020,0x006E,0x006F,0x0074,0x0020,0x0062,0x0065,0x0020,0x0075,
+      0x0073,0x0065,0x0064,0x0020,0x0069,0x006E,0x0020,0x0078,0x0073,0x0069,0x003A,0x0074,0x0079,0x0070,0x0065,0x00 }
+  , { 0x0041,0x0020,0x006D,0x0065,0x006D,0x0062,0x0065,0x0072,0x0020,0x006F,0x0066,0x0020,0x0061,0x0062,0x0073,0x0074,0x0072,0x0061,0x0063,0x0074,0x0020,0x0065,0x006C,0x0065,0x006D,0x0065,0x006E,0x0074,0x0020,0x007B,0x0030,0x007D,0x0020,0x0073,0x0075,
+      0x0062,0x0073,0x0074,0x0069,0x0074,0x0075,0x0074,0x0069,0x006F,0x006E,0x0020,0x0067,0x0072,0x006F,0x0075,0x0070,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0062,0x0065,0x0020,0x0073,0x0070,0x0065,0x0063,0x0069,0x0066,0x0069,0x0065,0x0064,0x00 }
+  , { 0x0045,0x006C,0x0065,0x006D,0x0065,0x006E,0x0074,0x0020,0x007B,0x0030,0x007D,0x0020,0x0069,0x0073,0x0020,0x0064,0x0065,0x0063,0x006C,0x0061,0x0072,0x0065,0x0064,0x0020,0x0077,0x0069,0x0074,0x0068,0x0020,0x0061,0x0020,0x0074,0x0079,0x0070,0x0065,
+      0x0020,0x0074,0x0068,0x0061,0x0074,0x0020,0x0069,0x0073,0x0020,0x0061,0x0062,0x0073,0x0074,0x0072,0x0061,0x0063,0x0074,0x002E,0x0020,0x0020,0x0055,0x0073,0x0065,0x0020,0x0078,0x0073,0x0069,0x003A,0x0074,0x0079,0x0070,0x0065,0x0020,0x0074,0x006F,
+      0x0020,0x0073,0x0070,0x0065,0x0063,0x0069,0x0066,0x0079,0x0020,0x0061,0x0020,0x006E,0x006F,0x006E,0x002D,0x0061,0x0062,0x0073,0x0074,0x0072,0x0061,0x0063,0x0074,0x0020,0x0074,0x0079,0x0070,0x0065,0x00 }
+  , { 0x0055,0x006E,0x0072,0x0065,0x0073,0x006F,0x006C,0x0076,0x0065,0x0064,0x0020,0x0074,0x0079,0x0070,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0066,0x006F,0x0075,0x006E,0x0064,0x0020,0x0069,0x006E,0x0020,0x0078,0x0073,0x0069,0x003A,
+      0x0074,0x0079,0x0070,0x0065,0x0020,0x0068,0x0061,0x006E,0x0064,0x006C,0x0069,0x006E,0x0067,0x00 }
+  , { 0x0054,0x0079,0x0070,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0074,0x0068,0x0061,0x0074,0x0020,0x0069,0x0073,0x0020,0x0075,0x0073,0x0065,0x0064,0x0020,0x0069,0x006E,0x0020,0x0078,0x0073,0x0069,0x003A,0x0074,0x0079,0x0070,0x0065,
+      0x0020,0x0069,0x0073,0x0020,0x006E,0x006F,0x0074,0x0020,0x0064,0x0065,0x0072,0x0069,0x0076,0x0065,0x0064,0x0020,0x0066,0x0072,0x006F,0x006D,0x0020,0x0074,0x0068,0x0065,0x0020,0x0074,0x0079,0x0070,0x0065,0x0020,0x006F,0x0066,0x0020,0x0065,0x006C,
+      0x0065,0x006D,0x0065,0x006E,0x0074,0x0020,0x0027,0x007B,0x0031,0x007D,0x0027,0x00 }
+  , { 0x0045,0x006C,0x0065,0x006D,0x0065,0x006E,0x0074,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0068,0x0061,0x0073,0x0020,0x0062,0x006C,0x006F,0x0063,0x006B,0x0069,0x006E,0x0067,0x0020,0x0063,0x006F,0x006E,0x0073,0x0074,0x0072,0x0061,0x0069,
+      0x006E,0x0074,0x0020,0x0061,0x006E,0x0064,0x0020,0x0064,0x006F,0x0065,0x0073,0x0020,0x006E,0x006F,0x0074,0x0020,0x0070,0x0065,0x0072,0x006D,0x0069,0x0074,0x0020,0x0073,0x0075,0x0062,0x0073,0x0074,0x0069,0x0074,0x0075,0x0074,0x0069,0x006F,0x006E,
+      0x00 }
+  , { 0x0041,0x0074,0x0074,0x0072,0x0069,0x0062,0x0075,0x0074,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0073,0x0068,0x006F,0x0075,0x006C,0x0064,0x0020,0x0062,0x0065,0x0020,0x0071,0x0075,0x0061,0x006C,0x0069,0x0066,0x0069,0x0065,0x0064,
+      0x00 }
+  , { 0x0041,0x0074,0x0074,0x0072,0x0069,0x0062,0x0075,0x0074,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0073,0x0068,0x006F,0x0075,0x006C,0x0064,0x0020,0x0062,0x0065,0x0020,0x0075,0x006E,0x002D,0x0071,0x0075,0x0061,0x006C,0x0069,0x0066,
+      0x0069,0x0065,0x0064,0x00 }
+  , { 0x0046,0x0069,0x0065,0x006C,0x0064,0x0020,0x006D,0x0061,0x0074,0x0063,0x0068,0x0065,0x0073,0x0020,0x006D,0x006F,0x0072,0x0065,0x0020,0x0074,0x0068,0x0061,0x006E,0x0020,0x006F,0x006E,0x0065,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0020,0x0077,
+      0x0069,0x0074,0x0068,0x0069,0x006E,0x0020,0x0074,0x0068,0x0065,0x0020,0x0073,0x0063,0x006F,0x0070,0x0065,0x0020,0x006F,0x0066,0x0020,0x0069,0x0074,0x0073,0x0020,0x0073,0x0065,0x006C,0x0065,0x0063,0x0074,0x006F,0x0072,0x003B,0x0020,0x0066,0x0069,
+      0x0065,0x006C,0x0064,0x0073,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x006D,0x0061,0x0074,0x0063,0x0068,0x0020,0x0075,0x006E,0x0069,0x0071,0x0075,0x0065,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0073,0x00 }
+  , { 0x0049,0x006E,0x0074,0x0065,0x0072,0x006E,0x0061,0x006C,0x0020,0x0069,0x0064,0x0065,0x006E,0x0074,0x0069,0x0074,0x0079,0x0020,0x0063,0x006F,0x006E,0x0073,0x0074,0x0072,0x0061,0x0069,0x006E,0x0074,0x0020,0x0065,0x0072,0x0072,0x006F,0x0072,0x003B,
+      0x0020,0x0075,0x006E,0x006B,0x006E,0x006F,0x0077,0x006E,0x0020,0x0066,0x0069,0x0065,0x006C,0x0064,0x002E,0x00 }
+  , { 0x0049,0x0064,0x0065,0x006E,0x0074,0x0069,0x0074,0x0079,0x002D,0x0063,0x006F,0x006E,0x0073,0x0074,0x0072,0x0061,0x0069,0x006E,0x0074,0x0020,0x0034,0x002E,0x0032,0x002E,0x0031,0x003A,0x0020,0x0065,0x006C,0x0065,0x006D,0x0065,0x006E,0x0074,0x0020,
+      0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0068,0x0061,0x0073,0x0020,0x0061,0x0020,0x006B,0x0065,0x0079,0x0020,0x0077,0x0069,0x0074,0x0068,0x0020,0x006E,0x006F,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x002E,0x00 }
+  , { 0x004E,0x006F,0x0074,0x0020,0x0065,0x006E,0x006F,0x0075,0x0067,0x0068,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0073,0x0020,0x0073,0x0070,0x0065,0x0063,0x0069,0x0066,0x0069,0x0065,0x0064,0x0020,0x0066,0x006F,0x0072,0x0020,0x003C,0x0075,0x006E,
+      0x0069,0x0071,0x0075,0x0065,0x003E,0x0020,0x0069,0x0064,0x0065,0x006E,0x0074,0x0069,0x0074,0x0079,0x0020,0x0063,0x006F,0x006E,0x0073,0x0074,0x0072,0x0061,0x0069,0x006E,0x0074,0x0020,0x0066,0x006F,0x0072,0x0020,0x0065,0x006C,0x0065,0x006D,0x0065,
+      0x006E,0x0074,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x002E,0x00 }
+  , { 0x004E,0x006F,0x0074,0x0020,0x0065,0x006E,0x006F,0x0075,0x0067,0x0068,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0073,0x0020,0x0073,0x0070,0x0065,0x0063,0x0069,0x0066,0x0069,0x0065,0x0064,0x0020,0x0066,0x006F,0x0072,0x0020,0x003C,0x006B,0x0065,
+      0x0079,0x0020,0x006E,0x0061,0x006D,0x0065,0x003D,0x007B,0x0031,0x007D,0x003E,0x0020,0x0069,0x0064,0x0065,0x006E,0x0074,0x0069,0x0074,0x0079,0x0020,0x0063,0x006F,0x006E,0x0073,0x0074,0x0072,0x0061,0x0069,0x006E,0x0074,0x0020,0x0066,0x006F,0x0072,
+      0x0020,0x0065,0x006C,0x0065,0x006D,0x0065,0x006E,0x0074,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x002E,0x00 }
+  , { 0x004E,0x006F,0x0074,0x0020,0x0065,0x006E,0x006F,0x0075,0x0067,0x0068,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0073,0x0020,0x0073,0x0070,0x0065,0x0063,0x0069,0x0066,0x0069,0x0065,0x0064,0x0020,0x0066,0x006F,0x0072,0x0020,0x003C,0x006B,0x0065,
+      0x0079,0x0072,0x0065,0x0066,0x0020,0x006E,0x0061,0x006D,0x0065,0x003D,0x007B,0x0031,0x007D,0x003E,0x0020,0x0069,0x0064,0x0065,0x006E,0x0074,0x0069,0x0074,0x0079,0x0020,0x0063,0x006F,0x006E,0x0073,0x0074,0x0072,0x0061,0x0069,0x006E,0x0074,0x0020,
+      0x0066,0x006F,0x0072,0x0020,0x0065,0x006C,0x0065,0x006D,0x0065,0x006E,0x0074,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x002E,0x00 }
+  , { 0x0049,0x0064,0x0065,0x006E,0x0074,0x0069,0x0074,0x0079,0x002D,0x0063,0x006F,0x006E,0x0073,0x0074,0x0072,0x0061,0x0069,0x006E,0x0074,0x0020,0x0034,0x002E,0x0032,0x002E,0x0033,0x003A,0x0020,0x0065,0x006C,0x0065,0x006D,0x0065,0x006E,0x0074,0x0020,
+      0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0068,0x0061,0x0073,0x0020,0x0061,0x0020,0x006B,0x0065,0x0079,0x0020,0x0074,0x0068,0x0061,0x0074,0x0020,0x006D,0x0061,0x0074,0x0063,0x0068,0x0065,0x0073,0x0020,0x0061,0x006E,0x0020,0x0065,0x006C,0x0065,
+      0x006D,0x0065,0x006E,0x0074,0x0020,0x0074,0x0068,0x0061,0x0074,0x0020,0x0068,0x0061,0x0073,0x0020,0x006E,0x0069,0x006C,0x006C,0x0061,0x0062,0x006C,0x0065,0x0020,0x0073,0x0065,0x0074,0x0020,0x0074,0x006F,0x0020,0x0074,0x0072,0x0075,0x0065,0x002E,
+      0x00 }
+  , { 0x0044,0x0075,0x0070,0x006C,0x0069,0x0063,0x0061,0x0074,0x0065,0x0020,0x0075,0x006E,0x0069,0x0071,0x0075,0x0065,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0020,0x0064,0x0065,0x0063,0x006C,0x0061,0x0072,0x0065,0x0064,0x0020,0x0066,0x006F,0x0072,
+      0x0020,0x0069,0x0064,0x0065,0x006E,0x0074,0x0069,0x0074,0x0079,0x0020,0x0063,0x006F,0x006E,0x0073,0x0074,0x0072,0x0061,0x0069,0x006E,0x0074,0x0020,0x006F,0x0066,0x0020,0x0065,0x006C,0x0065,0x006D,0x0065,0x006E,0x0074,0x0020,0x0027,0x007B,0x0030,
+      0x007D,0x0027,0x002E,0x00 }
+  , { 0x0044,0x0075,0x0070,0x006C,0x0069,0x0063,0x0061,0x0074,0x0065,0x0020,0x006B,0x0065,0x0079,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0020,0x0064,0x0065,0x0063,0x006C,0x0061,0x0072,0x0065,0x0064,0x0020,0x0066,0x006F,0x0072,0x0020,0x0069,0x0064,
+      0x0065,0x006E,0x0074,0x0069,0x0074,0x0079,0x0020,0x0063,0x006F,0x006E,0x0073,0x0074,0x0072,0x0061,0x0069,0x006E,0x0074,0x0020,0x006F,0x0066,0x0020,0x0065,0x006C,0x0065,0x006D,0x0065,0x006E,0x0074,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x002E,
+      0x00 }
+  , { 0x0054,0x0068,0x0065,0x0020,0x006B,0x0065,0x0079,0x0072,0x0065,0x0066,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0072,0x0065,0x0066,0x0065,0x0072,0x0073,0x0020,0x0074,0x006F,0x0020,0x0061,0x0020,0x006B,0x0065,0x0079,0x002F,0x0075,0x006E,
+      0x0069,0x0071,0x0075,0x0065,0x0020,0x0074,0x0068,0x0061,0x0074,0x0020,0x0069,0x0073,0x0020,0x006F,0x0075,0x0074,0x0020,0x006F,0x0066,0x0020,0x0073,0x0063,0x006F,0x0070,0x0065,0x002E,0x00 }
+  , { 0x0054,0x0068,0x0065,0x0020,0x006B,0x0065,0x0079,0x0020,0x0066,0x006F,0x0072,0x0020,0x0069,0x0064,0x0065,0x006E,0x0074,0x0069,0x0074,0x0079,0x0020,0x0063,0x006F,0x006E,0x0073,0x0074,0x0072,0x0061,0x0069,0x006E,0x0074,0x0020,0x006F,0x0066,0x0020,
+      0x0065,0x006C,0x0065,0x006D,0x0065,0x006E,0x0074,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0069,0x0073,0x0020,0x006E,0x006F,0x0074,0x0020,0x0066,0x006F,0x0075,0x006E,0x0064,0x002E,0x00 }
+  , { 0x004E,0x006F,0x006E,0x002D,0x0077,0x0068,0x0069,0x0074,0x0065,0x0073,0x0070,0x0061,0x0063,0x0065,0x0020,0x0063,0x0068,0x0061,0x0072,0x0061,0x0063,0x0074,0x0065,0x0072,0x0073,0x0020,0x0061,0x0072,0x0065,0x0020,0x006E,0x006F,0x0074,0x0020,0x0061,
+      0x006C,0x006C,0x006F,0x0077,0x0065,0x0064,0x0020,0x0069,0x006E,0x0020,0x0073,0x0063,0x0068,0x0065,0x006D,0x0061,0x0020,0x0065,0x006C,0x0065,0x006D,0x0065,0x006E,0x0074,0x0073,0x0020,0x006F,0x0074,0x0068,0x0065,0x0072,0x0020,0x0074,0x0068,0x0061,
+      0x006E,0x0020,0x0027,0x0061,0x0070,0x0070,0x0069,0x006E,0x0066,0x006F,0x0027,0x0020,0x0061,0x006E,0x0064,0x0020,0x0027,0x0064,0x006F,0x0063,0x0075,0x006D,0x0065,0x006E,0x0074,0x0061,0x0074,0x0069,0x006F,0x006E,0x0027,0x002E,0x00 }
+  , { 0x0045,0x004D,0x0050,0x0054,0x0059,0x0020,0x0045,0x006C,0x0065,0x006D,0x0065,0x006E,0x0074,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0068,0x0061,0x0073,0x0020,0x0041,0x0074,0x0074,0x0072,0x0069,0x0062,0x0075,0x0074,0x0065,0x0020,0x0027,
+      0x007B,0x0031,0x007D,0x0027,0x0020,0x006F,0x0066,0x0020,0x0074,0x0079,0x0070,0x0065,0x0020,0x004E,0x004F,0x0054,0x0041,0x0054,0x0049,0x004F,0x004E,0x0020,0x00 }
+  , { 0x0045,0x004D,0x0050,0x0054,0x0059,0x0020,0x0045,0x006C,0x0065,0x006D,0x0065,0x006E,0x0074,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0063,0x0061,0x006E,0x0027,0x0074,0x0020,0x0068,0x0061,0x0076,0x0065,0x0020,0x0063,0x006F,0x006E,0x0074,
+      0x0065,0x006E,0x0074,0x0028,0x006E,0x006F,0x0074,0x0020,0x0065,0x0076,0x0065,0x006E,0x0020,0x0065,0x006E,0x0074,0x0069,0x0074,0x0079,0x0020,0x0072,0x0065,0x0066,0x0065,0x0072,0x0065,0x006E,0x0063,0x0065,0x0073,0x002C,0x0020,0x0063,0x006F,0x006D,
+      0x006D,0x0065,0x006E,0x0074,0x0073,0x002C,0x0020,0x0050,0x0049,0x0073,0x0020,0x006F,0x0072,0x0020,0x0077,0x0068,0x0069,0x0074,0x0065,0x0020,0x0073,0x0070,0x0061,0x0063,0x0065,0x0029,0x002E,0x0020,0x00 }
+  , { 0x0045,0x006C,0x0065,0x006D,0x0065,0x006E,0x0074,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0068,0x0061,0x0073,0x0020,0x006D,0x006F,0x0072,0x0065,0x0020,0x0074,0x0068,0x0061,0x006E,0x0020,0x006F,0x006E,0x0065,0x0020,0x0041,0x0074,0x0074,
+      0x0072,0x0069,0x0062,0x0075,0x0074,0x0065,0x0020,0x006F,0x0066,0x0020,0x0074,0x0079,0x0070,0x0065,0x0020,0x004E,0x004F,0x0054,0x0041,0x0054,0x0049,0x004F,0x004E,0x0020,0x00 }
+  , { 0x0041,0x0074,0x0074,0x0072,0x0069,0x0062,0x0075,0x0074,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0068,0x0061,0x0073,0x0020,0x006E,0x006F,0x006E,0x0020,0x0064,0x0069,0x0073,0x0074,0x0069,0x006E,0x0063,0x0074,0x0020,0x0074,0x006F,
+      0x006B,0x0065,0x006E,0x0020,0x0027,0x007B,0x0031,0x007D,0x0027,0x0020,0x00 }
+  , { 0x0045,0x006C,0x0065,0x006D,0x0065,0x006E,0x0074,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0027,0x0073,0x0020,0x0063,0x006F,0x006E,0x0074,0x0065,0x006E,0x0074,0x0020,0x006D,0x006F,0x0064,0x0065,0x006C,0x0028,0x0063,0x0068,0x0069,0x006C,
+      0x0064,0x0072,0x0065,0x006E,0x0029,0x0020,0x0064,0x006F,0x0065,0x0073,0x0020,0x006E,0x006F,0x0074,0x0020,0x0061,0x006C,0x006C,0x006F,0x0077,0x0020,0x0065,0x0073,0x0063,0x0061,0x0070,0x0065,0x0064,0x0020,0x0077,0x0068,0x0069,0x0074,0x0065,0x0020,
+      0x0073,0x0070,0x0061,0x0063,0x0065,0x002E,0x0020,0x00 }
+  , { 0x0045,0x005F,0x0045,0x006E,0x0064,0x00 }
+
+};
+const unsigned int gXMLValidityArraySize = 119;
+
+const XMLCh gXMLExceptArray[][128] = 
+{
+    { 0x0057,0x005F,0x0053,0x0074,0x0061,0x0072,0x0074,0x00 }
+  , { 0x0057,0x0061,0x0072,0x006E,0x0069,0x006E,0x0067,0x003A,0x0020,0x0054,0x0068,0x0065,0x0020,0x0070,0x0072,0x0069,0x006D,0x0061,0x0072,0x0079,0x0020,0x0064,0x006F,0x0063,0x0075,0x006D,0x0065,0x006E,0x0074,0x0020,0x0065,0x006E,0x0074,0x0069,0x0074,
+      0x0079,0x0020,0x0063,0x006F,0x0075,0x006C,0x0064,0x0020,0x006E,0x006F,0x0074,0x0020,0x0062,0x0065,0x0020,0x006F,0x0070,0x0065,0x006E,0x0065,0x0064,0x002E,0x0020,0x0049,0x0064,0x003D,0x007B,0x0030,0x007D,0x00 }
+  , { 0x0057,0x0061,0x0072,0x006E,0x0069,0x006E,0x0067,0x003A,0x0020,0x004E,0x006F,0x0020,0x0063,0x0061,0x0063,0x0068,0x0069,0x006E,0x0067,0x0020,0x006F,0x0066,0x0020,0x0067,0x0072,0x0061,0x006D,0x006D,0x0061,0x0072,0x0020,0x0073,0x0065,0x0074,0x002C,
+      0x0020,0x0061,0x0020,0x0067,0x0072,0x0061,0x006D,0x006D,0x0061,0x0072,0x0020,0x0077,0x0069,0x0074,0x0068,0x0020,0x0073,0x0061,0x006D,0x0065,0x0020,0x006B,0x0065,0x0079,0x0020,0x0066,0x006F,0x0075,0x006E,0x0064,0x0020,0x0069,0x006E,0x0020,0x0074,
+      0x0068,0x0065,0x0020,0x0063,0x0061,0x0063,0x0068,0x0065,0x0020,0x0070,0x006F,0x006F,0x006C,0x002E,0x00 }
+  , { 0x0057,0x005F,0x0045,0x006E,0x0064,0x00 }
+  , { 0x0046,0x005F,0x0053,0x0074,0x0061,0x0072,0x0074,0x00 }
+  , { 0x0054,0x0068,0x0065,0x0020,0x0069,0x006E,0x0064,0x0065,0x0078,0x0020,0x0069,0x0073,0x0020,0x0062,0x0065,0x0079,0x006F,0x006E,0x0064,0x0020,0x0074,0x0068,0x0065,0x0020,0x0061,0x0072,0x0072,0x0061,0x0079,0x0020,0x0062,0x006F,0x0075,0x006E,0x0064,
+      0x0073,0x0020,0x00 }
+  , { 0x0054,0x0068,0x0065,0x0020,0x006E,0x0065,0x0077,0x0020,0x0073,0x0069,0x007A,0x0065,0x0020,0x0069,0x0073,0x0020,0x006C,0x0065,0x0073,0x0073,0x0020,0x0074,0x0068,0x0061,0x006E,0x0020,0x0074,0x0068,0x0065,0x0020,0x006F,0x006C,0x0064,0x0020,0x006F,
+      0x006E,0x0065,0x00 }
+  , { 0x0054,0x0068,0x0065,0x0020,0x0069,0x006E,0x0064,0x0065,0x0078,0x0020,0x0067,0x0069,0x0076,0x0065,0x006E,0x0020,0x0077,0x0061,0x0073,0x0020,0x0062,0x0065,0x0079,0x006F,0x006E,0x0064,0x0020,0x0074,0x0068,0x0065,0x0020,0x006D,0x0061,0x0078,0x0020,
+      0x0061,0x0074,0x0074,0x0072,0x0069,0x0062,0x0075,0x0074,0x0065,0x0020,0x0069,0x006E,0x0064,0x0065,0x0078,0x00 }
+  , { 0x0054,0x0068,0x0065,0x0020,0x0070,0x0061,0x0073,0x0073,0x0065,0x0064,0x0020,0x0041,0x0074,0x0074,0x0054,0x0079,0x0070,0x0065,0x0073,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0020,0x0069,0x0073,0x0020,0x006E,0x006F,0x0074,0x0020,0x006B,0x006E,
+      0x006F,0x0077,0x006E,0x00 }
+  , { 0x0054,0x0068,0x0065,0x0020,0x0070,0x0061,0x0073,0x0073,0x0065,0x0064,0x0020,0x0044,0x0065,0x0066,0x0041,0x0074,0x0074,0x0054,0x0079,0x0070,0x0065,0x0073,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0020,0x0069,0x0073,0x0020,0x006E,0x006F,0x0074,
+      0x0020,0x006B,0x006E,0x006F,0x0077,0x006E,0x00 }
+  , { 0x0054,0x0068,0x0065,0x0020,0x0062,0x0069,0x0074,0x0020,0x0069,0x006E,0x0064,0x0065,0x0078,0x0020,0x0077,0x0061,0x0073,0x0020,0x0062,0x0065,0x0079,0x006F,0x006E,0x0064,0x0020,0x0074,0x0068,0x0065,0x0020,0x0073,0x0065,0x0074,0x0020,0x0073,0x0069,
+      0x007A,0x0065,0x00 }
+  , { 0x0054,0x0068,0x0065,0x0020,0x0062,0x0069,0x0074,0x0020,0x0073,0x0065,0x0074,0x0073,0x0020,0x0061,0x0072,0x0065,0x0020,0x006E,0x006F,0x0074,0x0020,0x006F,0x0066,0x0020,0x0074,0x0068,0x0065,0x0020,0x0073,0x0061,0x006D,0x0065,0x0020,0x0073,0x0069,
+      0x007A,0x0065,0x00 }
+  , { 0x0054,0x0068,0x0065,0x0020,0x0062,0x0075,0x0066,0x0066,0x0065,0x0072,0x0020,0x006D,0x0061,0x006E,0x0061,0x0067,0x0065,0x0072,0x0020,0x0063,0x0061,0x006E,0x006E,0x006F,0x0074,0x0020,0x0070,0x0072,0x006F,0x0076,0x0069,0x0064,0x0065,0x0020,0x0061,
+      0x006E,0x0079,0x0020,0x006D,0x006F,0x0072,0x0065,0x0020,0x0062,0x0075,0x0066,0x0066,0x0065,0x0072,0x0073,0x00 }
+  , { 0x0054,0x0068,0x0065,0x0020,0x0070,0x0061,0x0073,0x0073,0x0065,0x0064,0x0020,0x0062,0x0075,0x0066,0x0066,0x0065,0x0072,0x0020,0x0077,0x0061,0x0073,0x0020,0x006E,0x006F,0x0074,0x0020,0x0066,0x006F,0x0075,0x006E,0x0064,0x0020,0x0069,0x006E,0x0020,
+      0x0074,0x0068,0x0069,0x0073,0x0020,0x006D,0x0061,0x006E,0x0061,0x0067,0x0065,0x0072,0x0027,0x0073,0x0020,0x0070,0x006F,0x006F,0x006C,0x00 }
+  , { 0x0054,0x0068,0x0065,0x0020,0x0070,0x006F,0x0069,0x006E,0x0074,0x0065,0x0072,0x0020,0x0068,0x0061,0x0073,0x0020,0x006E,0x006F,0x0074,0x0020,0x0062,0x0065,0x0065,0x006E,0x0020,0x0073,0x0065,0x0074,0x00 }
+  , { 0x0054,0x0068,0x0065,0x0020,0x0062,0x0069,0x006E,0x0061,0x0072,0x0079,0x0020,0x006F,0x0070,0x0065,0x0072,0x0061,0x0074,0x0069,0x006F,0x006E,0x0020,0x006E,0x006F,0x0064,0x0065,0x0020,0x0068,0x0061,0x0064,0x0020,0x0061,0x0020,0x0075,0x006E,0x0061,
+      0x0072,0x0079,0x0020,0x006E,0x006F,0x0064,0x0065,0x0020,0x0074,0x0079,0x0070,0x0065,0x00 }
+  , { 0x0054,0x0068,0x0065,0x0020,0x0063,0x006F,0x006E,0x0074,0x0065,0x006E,0x0074,0x0020,0x0074,0x0079,0x0070,0x0065,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0062,0x0065,0x0020,0x006D,0x0069,0x0078,0x0065,0x0064,0x0020,0x006F,0x0072,0x0020,0x0063,
+      0x0068,0x0069,0x006C,0x0064,0x0072,0x0065,0x006E,0x00 }
+  , { 0x0050,0x0043,0x0044,0x0041,0x0054,0x0041,0x0020,0x006E,0x006F,0x0064,0x0065,0x0073,0x0020,0x0061,0x0072,0x0065,0x0020,0x006E,0x006F,0x0074,0x0020,0x0076,0x0061,0x006C,0x0069,0x0064,0x0020,0x0068,0x0065,0x0072,0x0065,0x00 }
+  , { 0x0054,0x0068,0x0065,0x0020,0x007B,0x0030,0x007D,0x0020,0x006F,0x0070,0x0065,0x0072,0x0061,0x0074,0x0069,0x006F,0x006E,0x0020,0x0069,0x0073,0x0020,0x0069,0x006E,0x0076,0x0061,0x006C,0x0069,0x0064,0x0020,0x0066,0x006F,0x0072,0x0020,0x0074,0x0068,
+      0x0065,0x0020,0x0073,0x0070,0x0065,0x0063,0x0020,0x0074,0x0079,0x0070,0x0065,0x00 }
+  , { 0x0054,0x0068,0x0065,0x0020,0x0075,0x006E,0x0061,0x0072,0x0079,0x0020,0x006F,0x0070,0x0065,0x0072,0x0061,0x0074,0x0069,0x006F,0x006E,0x0020,0x006E,0x006F,0x0064,0x0065,0x0020,0x0068,0x0061,0x0064,0x0020,0x0061,0x0020,0x0062,0x0069,0x006E,0x0061,
+      0x0072,0x0079,0x0020,0x006E,0x006F,0x0064,0x0065,0x0020,0x0074,0x0079,0x0070,0x0065,0x00 }
+  , { 0x0055,0x006E,0x006B,0x006E,0x006F,0x0077,0x006E,0x0020,0x0063,0x006F,0x006E,0x0074,0x0065,0x006E,0x0074,0x0020,0x006D,0x006F,0x0064,0x0065,0x006C,0x0020,0x0074,0x0079,0x0070,0x0065,0x00 }
+  , { 0x0055,0x006E,0x006B,0x006E,0x006F,0x0077,0x006E,0x0020,0x0063,0x006F,0x006E,0x0074,0x0065,0x006E,0x0074,0x0020,0x0073,0x0070,0x0065,0x0063,0x0020,0x0074,0x0079,0x0070,0x0065,0x00 }
+  , { 0x0054,0x0068,0x0065,0x0020,0x0070,0x0061,0x0072,0x0065,0x006E,0x0074,0x0020,0x0065,0x006C,0x0065,0x006D,0x0065,0x006E,0x0074,0x0020,0x0068,0x0061,0x0073,0x0020,0x006E,0x006F,0x0020,0x0063,0x006F,0x006E,0x0074,0x0065,0x006E,0x0074,0x0020,0x0073,
+      0x0070,0x0065,0x0063,0x0020,0x006E,0x006F,0x0064,0x0065,0x00 }
+  , { 0x0054,0x0068,0x0065,0x0020,0x0073,0x0070,0x0065,0x0063,0x0020,0x0074,0x0079,0x0070,0x0065,0x0020,0x0069,0x0073,0x0020,0x006E,0x006F,0x0074,0x0020,0x0076,0x0061,0x006C,0x0069,0x0064,0x0020,0x0066,0x006F,0x0072,0x0020,0x007B,0x0030,0x007D,0x00 }
+  , { 0x0054,0x0068,0x0065,0x0020,0x0063,0x0072,0x0065,0x0061,0x0074,0x0069,0x006F,0x006E,0x0020,0x0072,0x0065,0x0061,0x0073,0x006F,0x006E,0x0020,0x0065,0x006E,0x0075,0x006D,0x0020,0x0068,0x0061,0x0073,0x0020,0x0061,0x006E,0x0020,0x0075,0x006E,0x006B,
+      0x006E,0x006F,0x0077,0x006E,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x00 }
+  , { 0x0054,0x0068,0x0065,0x0020,0x0065,0x006C,0x0065,0x006D,0x0065,0x006E,0x0074,0x0020,0x0073,0x0074,0x0061,0x0063,0x006B,0x0020,0x0069,0x0073,0x0020,0x0065,0x006D,0x0070,0x0074,0x0079,0x00 }
+  , { 0x0054,0x0068,0x0065,0x0020,0x0065,0x006C,0x0065,0x006D,0x0065,0x006E,0x0074,0x0020,0x0073,0x0074,0x0061,0x0063,0x006B,0x0020,0x0069,0x006E,0x0064,0x0065,0x0078,0x0020,0x0067,0x0069,0x0076,0x0065,0x006E,0x0020,0x0077,0x0061,0x0073,0x0020,0x0062,
+      0x0065,0x0079,0x006F,0x006E,0x0064,0x0020,0x0074,0x0068,0x0065,0x0020,0x0073,0x0074,0x0061,0x0063,0x006B,0x0020,0x0074,0x006F,0x0070,0x00 }
+  , { 0x0054,0x0068,0x0065,0x0020,0x0065,0x006C,0x0065,0x006D,0x0065,0x006E,0x0074,0x0020,0x0073,0x0074,0x0061,0x0063,0x006B,0x0020,0x0077,0x0061,0x0073,0x0020,0x0061,0x006C,0x0072,0x0065,0x0061,0x0064,0x0079,0x0020,0x0065,0x006D,0x0070,0x0074,0x0079,
+      0x0020,0x0077,0x0068,0x0065,0x006E,0x0020,0x0061,0x0020,0x0070,0x006F,0x0070,0x0020,0x0072,0x0065,0x0071,0x0075,0x0065,0x0073,0x0074,0x0020,0x006F,0x0063,0x0063,0x0075,0x0072,0x0072,0x0065,0x0064,0x00 }
+  , { 0x0041,0x0020,0x0070,0x0061,0x0072,0x0065,0x006E,0x0074,0x0020,0x006F,0x0070,0x0065,0x0072,0x0061,0x0074,0x0069,0x006F,0x006E,0x0020,0x0077,0x0061,0x0073,0x0020,0x0072,0x0065,0x0071,0x0075,0x0065,0x0073,0x0074,0x0065,0x0064,0x002C,0x0020,0x0062,
+      0x0075,0x0074,0x0020,0x006F,0x006E,0x006C,0x0079,0x0020,0x006F,0x006E,0x0065,0x0020,0x0065,0x006C,0x0065,0x006D,0x0065,0x006E,0x0074,0x0020,0x0069,0x0073,0x0020,0x006F,0x006E,0x0020,0x0074,0x0068,0x0065,0x0020,0x0073,0x0074,0x0061,0x0063,0x006B,
+      0x00 }
+  , { 0x0054,0x0068,0x0065,0x0020,0x0065,0x006E,0x0075,0x006D,0x0065,0x0072,0x0061,0x0074,0x006F,0x0072,0x0020,0x0063,0x006F,0x006E,0x0074,0x0061,0x0069,0x006E,0x0073,0x0020,0x006E,0x006F,0x0020,0x006D,0x006F,0x0072,0x0065,0x0020,0x0065,0x006C,0x0065,
+      0x006D,0x0065,0x006E,0x0074,0x0073,0x00 }
+  , { 0x0043,0x006F,0x0075,0x006C,0x0064,0x0020,0x006E,0x006F,0x0074,0x0020,0x006F,0x0070,0x0065,0x006E,0x0020,0x0066,0x0069,0x006C,0x0065,0x003A,0x0020,0x007B,0x0030,0x007D,0x00 }
+  , { 0x0043,0x006F,0x0075,0x006C,0x0064,0x0020,0x006E,0x006F,0x0074,0x0020,0x0071,0x0075,0x0065,0x0072,0x0079,0x0020,0x0074,0x0068,0x0065,0x0020,0x0063,0x0075,0x0072,0x0072,0x0065,0x006E,0x0074,0x0020,0x0066,0x0069,0x006C,0x0065,0x0020,0x0070,0x006F,
+      0x0073,0x0069,0x0074,0x0069,0x006F,0x006E,0x00 }
+  , { 0x0043,0x006F,0x0075,0x006C,0x0064,0x0020,0x006E,0x006F,0x0074,0x0020,0x0063,0x006C,0x006F,0x0073,0x0065,0x0020,0x0074,0x0068,0x0065,0x0020,0x0066,0x0069,0x006C,0x0065,0x00 }
+  , { 0x0043,0x006F,0x0075,0x006C,0x0064,0x0020,0x006E,0x006F,0x0074,0x0020,0x0073,0x0065,0x0065,0x006B,0x0020,0x0074,0x006F,0x0020,0x0065,0x006E,0x0064,0x0020,0x006F,0x0066,0x0020,0x0066,0x0069,0x006C,0x0065,0x00 }
+  , { 0x0043,0x006F,0x0075,0x006C,0x0064,0x0020,0x006E,0x006F,0x0074,0x0020,0x0073,0x0065,0x0065,0x006B,0x0020,0x0074,0x006F,0x0020,0x0072,0x0065,0x0071,0x0075,0x0069,0x0072,0x0065,0x0064,0x0020,0x0070,0x006F,0x0073,0x0069,0x0074,0x0069,0x006F,0x006E,
+      0x0020,0x0069,0x006E,0x0020,0x0066,0x0069,0x006C,0x0065,0x00 }
+  , { 0x0043,0x006F,0x0075,0x006C,0x0064,0x0020,0x006E,0x006F,0x0074,0x0020,0x0064,0x0075,0x0070,0x006C,0x0069,0x0063,0x0061,0x0074,0x0065,0x0020,0x0074,0x0068,0x0065,0x0020,0x0068,0x0061,0x006E,0x0064,0x006C,0x0065,0x00 }
+  , { 0x0043,0x006F,0x0075,0x006C,0x0064,0x0020,0x006E,0x006F,0x0074,0x0020,0x0072,0x0065,0x0061,0x0064,0x0020,0x0064,0x0061,0x0074,0x0061,0x0020,0x0066,0x0072,0x006F,0x006D,0x0020,0x0066,0x0069,0x006C,0x0065,0x00 }
+  , { 0x0043,0x006F,0x0075,0x006C,0x0064,0x0020,0x006E,0x006F,0x0074,0x0020,0x0077,0x0072,0x0069,0x0074,0x0065,0x0020,0x0064,0x0061,0x0074,0x0061,0x0020,0x0074,0x006F,0x0020,0x0066,0x0069,0x006C,0x0065,0x00 }
+  , { 0x0043,0x006F,0x0075,0x006C,0x0064,0x0020,0x006E,0x006F,0x0074,0x0020,0x0072,0x0065,0x0073,0x0065,0x0074,0x0020,0x0066,0x0069,0x006C,0x0065,0x0020,0x0074,0x006F,0x0020,0x0062,0x0065,0x0067,0x0069,0x006E,0x006E,0x0069,0x006E,0x0067,0x00 }
+  , { 0x0043,0x006F,0x0075,0x006C,0x0064,0x0020,0x006E,0x006F,0x0074,0x0020,0x0061,0x0073,0x0063,0x0065,0x0072,0x0074,0x0061,0x0069,0x006E,0x0020,0x0074,0x0068,0x0065,0x0020,0x0066,0x0069,0x006C,0x0065,0x0020,0x0073,0x0069,0x007A,0x0065,0x00 }
+  , { 0x0043,0x006F,0x0075,0x006C,0x0064,0x0020,0x006E,0x006F,0x0074,0x0020,0x0064,0x0065,0x0074,0x0065,0x0072,0x006D,0x0069,0x006E,0x0065,0x0020,0x0062,0x0061,0x0073,0x0065,0x0020,0x0070,0x0061,0x0074,0x0068,0x006E,0x0061,0x006D,0x0065,0x0020,0x006F,
+      0x0066,0x0020,0x0074,0x0068,0x0065,0x0020,0x0066,0x0069,0x006C,0x0065,0x00 }
+  , { 0x0054,0x0068,0x0065,0x0020,0x0062,0x0061,0x0073,0x0065,0x0020,0x0070,0x0061,0x0074,0x0068,0x0020,0x0068,0x0061,0x0064,0x0020,0x0074,0x006F,0x006F,0x0020,0x0066,0x0065,0x0077,0x0020,0x006C,0x0065,0x0076,0x0065,0x006C,0x0073,0x0020,0x0074,0x006F,
+      0x0020,0x0077,0x0065,0x0061,0x0076,0x0065,0x0020,0x0069,0x006E,0x0020,0x0072,0x0065,0x006C,0x0061,0x0074,0x0069,0x0076,0x0065,0x0020,0x0070,0x0061,0x0072,0x0074,0x00 }
+  , { 0x0050,0x0061,0x0072,0x0073,0x0065,0x0020,0x006D,0x0061,0x0079,0x0020,0x006E,0x006F,0x0074,0x0020,0x0062,0x0065,0x0020,0x0063,0x0061,0x006C,0x006C,0x0065,0x0064,0x0020,0x0077,0x0068,0x0069,0x006C,0x0065,0x0020,0x0070,0x0061,0x0072,0x0073,0x0069,
+      0x006E,0x0067,0x00 }
+  , { 0x0041,0x0020,0x0044,0x004F,0x0043,0x0054,0x0059,0x0050,0x0045,0x0020,0x0077,0x0061,0x0073,0x0020,0x0073,0x0065,0x0065,0x006E,0x0020,0x0062,0x0075,0x0074,0x0020,0x0074,0x0068,0x0065,0x0020,0x0069,0x006E,0x0073,0x0074,0x0061,0x006C,0x006C,0x0065,
+      0x0064,0x0020,0x0076,0x0061,0x006C,0x0069,0x0064,0x0061,0x0074,0x006F,0x0072,0x0020,0x0064,0x006F,0x0065,0x0073,0x0020,0x006E,0x006F,0x0074,0x0020,0x0075,0x006E,0x0064,0x0065,0x0072,0x0073,0x0074,0x0061,0x006E,0x0064,0x0020,0x0044,0x0054,0x0044,
+      0x0073,0x00 }
+  , { 0x0043,0x006F,0x0075,0x006C,0x0064,0x0020,0x006E,0x006F,0x0074,0x0020,0x006F,0x0070,0x0065,0x006E,0x0020,0x0044,0x0054,0x0044,0x0020,0x0066,0x0069,0x006C,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x00 }
+  , { 0x0043,0x006F,0x0075,0x006C,0x0064,0x0020,0x006E,0x006F,0x0074,0x0020,0x006F,0x0070,0x0065,0x006E,0x0020,0x0065,0x0078,0x0074,0x0065,0x0072,0x006E,0x0061,0x006C,0x0020,0x0065,0x006E,0x0074,0x0069,0x0074,0x0079,0x0020,0x0027,0x007B,0x0030,0x007D,
+      0x0027,0x00 }
+  , { 0x0054,0x0068,0x0065,0x0020,0x0065,0x006E,0x0064,0x0020,0x006F,0x0066,0x0020,0x0069,0x006E,0x0070,0x0075,0x0074,0x0020,0x0077,0x0061,0x0073,0x0020,0x006E,0x006F,0x0074,0x0020,0x0065,0x0078,0x0070,0x0065,0x0063,0x0074,0x0065,0x0064,0x00 }
+  , { 0x0054,0x0068,0x0065,0x0020,0x0068,0x0061,0x0073,0x0068,0x0020,0x006D,0x006F,0x0064,0x0075,0x006C,0x0075,0x0073,0x0020,0x0063,0x0061,0x006E,0x006E,0x006F,0x0074,0x0020,0x0062,0x0065,0x0020,0x007A,0x0065,0x0072,0x006F,0x00 }
+  , { 0x0048,0x0061,0x0073,0x0068,0x0069,0x006E,0x0067,0x0020,0x0074,0x0068,0x0065,0x0020,0x006B,0x0065,0x0079,0x0020,0x0072,0x0065,0x0074,0x0075,0x0072,0x006E,0x0065,0x0064,0x0020,0x0061,0x006E,0x0020,0x0069,0x006E,0x0076,0x0061,0x006C,0x0069,0x0064,
+      0x0020,0x0062,0x0061,0x0064,0x0020,0x0068,0x0061,0x0073,0x0068,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x00 }
+  , { 0x0054,0x0068,0x0065,0x0020,0x006B,0x0065,0x0079,0x0020,0x0063,0x006F,0x0075,0x006C,0x0064,0x0020,0x006E,0x006F,0x0074,0x0020,0x0062,0x0065,0x0020,0x0066,0x006F,0x0075,0x006E,0x0064,0x0020,0x0069,0x006E,0x0020,0x0074,0x0068,0x0065,0x0020,0x0068,
+      0x0061,0x0073,0x0068,0x0020,0x0074,0x0061,0x0062,0x006C,0x0065,0x00 }
+  , { 0x0043,0x006F,0x0075,0x006C,0x0064,0x0020,0x006E,0x006F,0x0074,0x0020,0x0063,0x0072,0x0065,0x0061,0x0074,0x0065,0x0020,0x006D,0x0075,0x0074,0x0065,0x0078,0x00 }
+  , { 0x0043,0x006F,0x0075,0x006C,0x0064,0x0020,0x006E,0x006F,0x0074,0x0020,0x0063,0x006C,0x006F,0x0073,0x0065,0x0020,0x006D,0x0075,0x0074,0x0065,0x0078,0x00 }
+  , { 0x0043,0x006F,0x0075,0x006C,0x0064,0x0020,0x006E,0x006F,0x0074,0x0020,0x006C,0x006F,0x0063,0x006B,0x0020,0x006D,0x0075,0x0074,0x0065,0x0078,0x00 }
+  , { 0x0043,0x006F,0x0075,0x006C,0x0064,0x0020,0x006E,0x006F,0x0074,0x0020,0x0075,0x006E,0x006C,0x006F,0x0063,0x006B,0x0020,0x006D,0x0075,0x0074,0x0065,0x0078,0x00 }
+  , { 0x0043,0x006F,0x0075,0x006C,0x0064,0x0020,0x006E,0x006F,0x0074,0x0020,0x0064,0x0065,0x0073,0x0074,0x0072,0x006F,0x0079,0x0020,0x006D,0x0075,0x0074,0x0065,0x0078,0x00 }
+  , { 0x0049,0x006E,0x0074,0x0065,0x0072,0x006E,0x0061,0x006C,0x0020,0x0045,0x0072,0x0072,0x006F,0x0072,0x0020,0x006F,0x006E,0x0020,0x004E,0x0065,0x0074,0x0041,0x0063,0x0063,0x0065,0x0073,0x0073,0x006F,0x0072,0x00 }
+  , { 0x0045,0x0072,0x0072,0x006F,0x0072,0x0020,0x006F,0x006E,0x0020,0x004E,0x0065,0x0074,0x0041,0x0063,0x0063,0x0065,0x0073,0x0073,0x006F,0x0072,0x002E,0x0020,0x0043,0x0061,0x006E,0x006E,0x006F,0x0074,0x0020,0x0064,0x0065,0x0074,0x0065,0x0072,0x006D,
+      0x0069,0x006E,0x0065,0x0020,0x006C,0x0065,0x006E,0x0067,0x0074,0x0068,0x0020,0x006F,0x0066,0x0020,0x0072,0x0065,0x006D,0x006F,0x0074,0x0065,0x0020,0x0066,0x0069,0x006C,0x0065,0x00 }
+  , { 0x0054,0x0068,0x0065,0x0020,0x004E,0x0065,0x0074,0x0041,0x0063,0x0063,0x0065,0x0073,0x0073,0x006F,0x0072,0x0020,0x0063,0x006F,0x0075,0x006C,0x0064,0x0020,0x006E,0x006F,0x0074,0x0020,0x0062,0x0065,0x0020,0x0069,0x006E,0x0069,0x0074,0x0069,0x0061,
+      0x006C,0x0069,0x007A,0x0065,0x0064,0x002E,0x00 }
+  , { 0x0054,0x0068,0x0065,0x0020,0x0068,0x006F,0x0073,0x0074,0x002F,0x0061,0x0064,0x0064,0x0072,0x0065,0x0073,0x0073,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0063,0x006F,0x0075,0x006C,0x0064,0x0020,0x006E,0x006F,0x0074,0x0020,0x0062,0x0065,
+      0x0020,0x0072,0x0065,0x0073,0x006F,0x006C,0x0076,0x0065,0x0064,0x00 }
+  , { 0x0043,0x006F,0x0075,0x006C,0x0064,0x0020,0x006E,0x006F,0x0074,0x0020,0x0063,0x0072,0x0065,0x0061,0x0074,0x0065,0x0020,0x0074,0x0068,0x0065,0x0020,0x0073,0x006F,0x0063,0x006B,0x0065,0x0074,0x0020,0x0066,0x006F,0x0072,0x0020,0x0055,0x0052,0x004C,
+      0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x00 }
+  , { 0x0043,0x006F,0x0075,0x006C,0x0064,0x0020,0x006E,0x006F,0x0074,0x0020,0x0063,0x006F,0x006E,0x006E,0x0065,0x0063,0x0074,0x0020,0x0074,0x006F,0x0020,0x0074,0x0068,0x0065,0x0020,0x0073,0x006F,0x0063,0x006B,0x0065,0x0074,0x0020,0x0066,0x006F,0x0072,
+      0x0020,0x0055,0x0052,0x004C,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x00 }
+  , { 0x0043,0x006F,0x0075,0x006C,0x0064,0x0020,0x006E,0x006F,0x0074,0x0020,0x0077,0x0072,0x0069,0x0074,0x0065,0x0020,0x0074,0x006F,0x0020,0x0074,0x0068,0x0065,0x0020,0x0073,0x006F,0x0063,0x006B,0x0065,0x0074,0x0020,0x0066,0x006F,0x0072,0x0020,0x0055,
+      0x0052,0x004C,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x00 }
+  , { 0x0043,0x006F,0x0075,0x006C,0x0064,0x0020,0x006E,0x006F,0x0074,0x0020,0x0072,0x0065,0x0061,0x0064,0x0020,0x0066,0x0072,0x006F,0x006D,0x0020,0x0074,0x0068,0x0065,0x0020,0x0073,0x006F,0x0063,0x006B,0x0065,0x0074,0x0020,0x0066,0x006F,0x0072,0x0020,
+      0x0055,0x0052,0x004C,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x00 }
+  , { 0x0054,0x0068,0x0065,0x0020,0x0073,0x0070,0x0065,0x0063,0x0069,0x0066,0x0069,0x0065,0x0064,0x0020,0x0048,0x0054,0x0054,0x0050,0x0020,0x006D,0x0065,0x0074,0x0068,0x006F,0x0064,0x0020,0x0069,0x0073,0x0020,0x006E,0x006F,0x0074,0x0020,0x0073,0x0075,
+      0x0070,0x0070,0x006F,0x0072,0x0074,0x0065,0x0064,0x0020,0x0062,0x0079,0x0020,0x0074,0x0068,0x0069,0x0073,0x0020,0x004E,0x0065,0x0074,0x0041,0x0063,0x0063,0x0065,0x0073,0x0073,0x006F,0x0072,0x002E,0x00 }
+  , { 0x0054,0x0068,0x0065,0x0020,0x0065,0x006C,0x0065,0x006D,0x0065,0x006E,0x0074,0x0020,0x007B,0x0030,0x007D,0x0020,0x0061,0x006C,0x0072,0x0065,0x0061,0x0064,0x0079,0x0020,0x0065,0x0078,0x0069,0x0073,0x0074,0x0073,0x00 }
+  , { 0x0048,0x0061,0x0073,0x0068,0x0069,0x006E,0x0067,0x0020,0x0074,0x0068,0x0065,0x0020,0x006B,0x0065,0x0079,0x0020,0x0072,0x0065,0x0074,0x0075,0x0072,0x006E,0x0065,0x0064,0x0020,0x0061,0x006E,0x0020,0x0069,0x006E,0x0076,0x0061,0x006C,0x0069,0x0064,
+      0x0020,0x0062,0x0061,0x0064,0x0020,0x0068,0x0061,0x0073,0x0068,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x00 }
+  , { 0x0054,0x0068,0x0065,0x0020,0x0070,0x0061,0x0073,0x0073,0x0065,0x0064,0x0020,0x0069,0x0064,0x0020,0x0069,0x0073,0x0020,0x006E,0x006F,0x0074,0x0020,0x0076,0x0061,0x006C,0x0069,0x0064,0x0020,0x0066,0x006F,0x0072,0x0020,0x0074,0x0068,0x0069,0x0073,
+      0x0020,0x0070,0x006F,0x006F,0x006C,0x00 }
+  , { 0x0054,0x0068,0x0065,0x0020,0x006D,0x006F,0x0064,0x0075,0x006C,0x0075,0x0073,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0020,0x0063,0x0061,0x006E,0x006E,0x006F,0x0074,0x0020,0x0062,0x0065,0x0020,0x007A,0x0065,0x0072,0x006F,0x00 }
+  , { 0x0054,0x0068,0x0065,0x0020,0x0069,0x006E,0x0064,0x0069,0x0063,0x0061,0x0074,0x0065,0x0064,0x0020,0x0072,0x0065,0x0061,0x0064,0x0065,0x0072,0x0020,0x0069,0x0064,0x0020,0x0077,0x0061,0x0073,0x0020,0x006E,0x0065,0x0076,0x0065,0x0072,0x0020,0x0066,
+      0x006F,0x0075,0x006E,0x0064,0x00 }
+  , { 0x0054,0x0068,0x0065,0x0020,0x0061,0x0075,0x0074,0x006F,0x0020,0x0065,0x006E,0x0063,0x006F,0x0064,0x0069,0x006E,0x0067,0x0020,0x0065,0x006E,0x0075,0x006D,0x0020,0x0068,0x0061,0x0073,0x0020,0x0061,0x006E,0x0020,0x0075,0x006E,0x006B,0x006E,0x006F,
+      0x0077,0x006E,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x00 }
+  , { 0x0043,0x006F,0x0075,0x006C,0x0064,0x0020,0x006E,0x006F,0x0074,0x0020,0x0064,0x0065,0x0063,0x006F,0x0064,0x0065,0x0020,0x0066,0x0069,0x0072,0x0073,0x0074,0x0020,0x006C,0x0069,0x006E,0x0065,0x0020,0x006F,0x0066,0x0020,0x0065,0x006E,0x0074,0x0069,
+      0x0074,0x0079,0x003A,0x0020,0x007B,0x0030,0x007D,0x00 }
+  , { 0x0058,0x004D,0x004C,0x0044,0x0065,0x0063,0x006C,0x0020,0x006F,0x0072,0x0020,0x0054,0x0065,0x0078,0x0074,0x0044,0x0065,0x0063,0x006C,0x0020,0x0063,0x0061,0x006E,0x0020,0x006E,0x006F,0x0074,0x0020,0x0068,0x0061,0x0076,0x0065,0x0020,0x004E,0x0045,
+      0x004C,0x0020,0x006F,0x0072,0x0020,0x006C,0x0073,0x0065,0x0070,0x003A,0x0020,0x007B,0x0030,0x007D,0x00 }
+  , { 0x0045,0x006E,0x0064,0x0020,0x006F,0x0066,0x0020,0x0069,0x006E,0x0070,0x0075,0x0074,0x0020,0x0077,0x0061,0x0073,0x0020,0x0068,0x0069,0x0074,0x0020,0x0069,0x006E,0x0020,0x0074,0x0068,0x0065,0x0020,0x006D,0x0069,0x0064,0x0064,0x006C,0x0065,0x0020,
+      0x006F,0x0066,0x0020,0x0061,0x0020,0x006D,0x0075,0x006C,0x0074,0x0069,0x0062,0x0079,0x0074,0x0065,0x0020,0x0073,0x0065,0x0071,0x0075,0x0065,0x006E,0x0063,0x0065,0x00 }
+  , { 0x0054,0x0068,0x0065,0x0020,0x0063,0x0075,0x0072,0x0072,0x0065,0x006E,0x0074,0x0020,0x0074,0x0072,0x0061,0x006E,0x0073,0x0063,0x006F,0x0064,0x0069,0x006E,0x0067,0x0020,0x0073,0x0065,0x0072,0x0076,0x0069,0x0063,0x0065,0x0020,0x0064,0x006F,0x0065,
+      0x0073,0x0020,0x006E,0x006F,0x0074,0x0020,0x0073,0x0075,0x0070,0x0070,0x006F,0x0072,0x0074,0x0020,0x0073,0x006F,0x0075,0x0072,0x0063,0x0065,0x0020,0x006F,0x0066,0x0066,0x0073,0x0065,0x0074,0x0020,0x0069,0x006E,0x0066,0x006F,0x0072,0x006D,0x0061,
+      0x0074,0x0069,0x006F,0x006E,0x00 }
+  , { 0x0045,0x0042,0x0043,0x0044,0x0049,0x0043,0x0020,0x0066,0x0069,0x006C,0x0065,0x0073,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0070,0x0072,0x006F,0x0076,0x0069,0x0064,0x0065,0x0020,0x0061,0x006E,0x0020,0x0065,0x006E,0x0063,0x006F,0x0064,0x0069,
+      0x006E,0x0067,0x003D,0x0020,0x0073,0x0074,0x0072,0x0069,0x006E,0x0067,0x00 }
+  , { 0x0054,0x0068,0x0065,0x0020,0x0070,0x0072,0x0069,0x006D,0x0061,0x0072,0x0079,0x0020,0x0064,0x006F,0x0063,0x0075,0x006D,0x0065,0x006E,0x0074,0x0020,0x0065,0x006E,0x0074,0x0069,0x0074,0x0079,0x0020,0x0063,0x006F,0x0075,0x006C,0x0064,0x0020,0x006E,
+      0x006F,0x0074,0x0020,0x0062,0x0065,0x0020,0x006F,0x0070,0x0065,0x006E,0x0065,0x0064,0x002E,0x0020,0x0049,0x0064,0x003D,0x007B,0x0030,0x007D,0x00 }
+  , { 0x0055,0x006E,0x0062,0x0061,0x006C,0x0061,0x006E,0x0063,0x0065,0x0064,0x0020,0x0073,0x0074,0x0061,0x0072,0x0074,0x002F,0x0065,0x006E,0x0064,0x0020,0x0074,0x0061,0x0067,0x0073,0x0020,0x0066,0x006F,0x0075,0x006E,0x0064,0x002C,0x0020,0x0063,0x0061,
+      0x006E,0x006E,0x006F,0x0074,0x0020,0x0063,0x006F,0x006E,0x0074,0x0069,0x006E,0x0075,0x0065,0x00 }
+  , { 0x0054,0x0068,0x0065,0x0020,0x0063,0x0061,0x006C,0x006C,0x0020,0x0074,0x006F,0x0020,0x0073,0x0063,0x0061,0x006E,0x004E,0x0065,0x0078,0x0074,0x0028,0x0029,0x0020,0x0069,0x0073,0x0020,0x0069,0x006C,0x006C,0x0065,0x0067,0x0061,0x006C,0x0020,0x0061,
+      0x0074,0x0020,0x0074,0x0068,0x0069,0x0073,0x0020,0x0074,0x0069,0x006D,0x0065,0x00 }
+  , { 0x0054,0x0068,0x0065,0x0020,0x0069,0x006E,0x0064,0x0065,0x0078,0x0020,0x0069,0x0073,0x0020,0x0070,0x0061,0x0073,0x0074,0x0020,0x0074,0x0068,0x0065,0x0020,0x0074,0x006F,0x0070,0x0020,0x006F,0x0066,0x0020,0x0073,0x0074,0x0061,0x0063,0x006B,0x00 }
+  , { 0x0054,0x0068,0x0065,0x0020,0x0073,0x0074,0x0061,0x0063,0x006B,0x0020,0x0069,0x0073,0x0020,0x0065,0x006D,0x0070,0x0074,0x0079,0x002C,0x0020,0x0063,0x0061,0x006E,0x006E,0x006F,0x0074,0x0020,0x0061,0x0063,0x0063,0x0065,0x0073,0x0073,0x0020,0x006D,
+      0x0065,0x006D,0x0062,0x0065,0x0072,0x0073,0x00 }
+  , { 0x0054,0x0068,0x0065,0x0020,0x0074,0x0061,0x0072,0x0067,0x0065,0x0074,0x0020,0x0062,0x0075,0x0066,0x0066,0x0065,0x0072,0x0020,0x0063,0x0061,0x006E,0x006E,0x006F,0x0074,0x0020,0x0068,0x0061,0x0076,0x0065,0x0020,0x0061,0x0020,0x006D,0x0061,0x0078,
+      0x0020,0x0073,0x0069,0x007A,0x0065,0x0020,0x006F,0x0066,0x0020,0x007A,0x0065,0x0072,0x006F,0x00 }
+  , { 0x0054,0x0068,0x0065,0x0020,0x0067,0x0069,0x0076,0x0065,0x006E,0x0020,0x0072,0x0061,0x0064,0x0069,0x0078,0x0020,0x0069,0x0073,0x0020,0x006E,0x006F,0x0074,0x0020,0x0073,0x0075,0x0070,0x0070,0x006F,0x0072,0x0074,0x0065,0x0064,0x002E,0x0020,0x0055,
+      0x0073,0x0065,0x0020,0x0032,0x002C,0x0020,0x0038,0x002C,0x0020,0x0031,0x0030,0x002C,0x0020,0x006F,0x0072,0x0020,0x0031,0x0036,0x00 }
+  , { 0x0054,0x0068,0x0065,0x0020,0x0074,0x0061,0x0072,0x0067,0x0065,0x0074,0x0020,0x0062,0x0075,0x0066,0x0066,0x0065,0x0072,0x0020,0x0069,0x0073,0x0020,0x0074,0x006F,0x006F,0x0020,0x0073,0x006D,0x0061,0x006C,0x006C,0x0020,0x0074,0x006F,0x0020,0x0061,
+      0x0063,0x0063,0x0065,0x0070,0x0074,0x0020,0x0074,0x0068,0x0065,0x0020,0x0072,0x0065,0x0073,0x0075,0x006C,0x0074,0x0073,0x00 }
+  , { 0x0054,0x0068,0x0065,0x0020,0x0073,0x0074,0x0061,0x0072,0x0074,0x0020,0x0069,0x006E,0x0064,0x0065,0x0078,0x0020,0x0069,0x0073,0x0020,0x0070,0x0061,0x0073,0x0074,0x0020,0x0074,0x0068,0x0065,0x0020,0x0065,0x006E,0x0064,0x0020,0x006F,0x0066,0x0020,
+      0x0074,0x0068,0x0065,0x0020,0x0073,0x0074,0x0072,0x0069,0x006E,0x0067,0x00 }
+  , { 0x0054,0x0068,0x0065,0x0020,0x0072,0x0065,0x0070,0x0072,0x0065,0x0073,0x0065,0x006E,0x0074,0x0065,0x0064,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0020,0x006F,0x0076,0x0065,0x0072,0x0066,0x006C,0x006F,0x0077,0x0065,0x0064,0x0020,0x0074,0x0068,
+      0x0065,0x0020,0x006F,0x0075,0x0074,0x0070,0x0075,0x0074,0x0020,0x0062,0x0069,0x006E,0x0061,0x0072,0x0079,0x0020,0x0072,0x0065,0x0073,0x0075,0x006C,0x0074,0x00 }
+  , { 0x0043,0x006F,0x0075,0x006C,0x0064,0x0020,0x006E,0x006F,0x0074,0x0020,0x0077,0x0072,0x0069,0x0074,0x0065,0x0020,0x0074,0x006F,0x0020,0x0073,0x0074,0x0061,0x006E,0x0064,0x0061,0x0072,0x0064,0x0020,0x0065,0x0072,0x0072,0x00 }
+  , { 0x0043,0x006F,0x0075,0x006C,0x0064,0x0020,0x006E,0x006F,0x0074,0x0020,0x0077,0x0072,0x0069,0x0074,0x0065,0x0020,0x0074,0x006F,0x0020,0x0073,0x0074,0x0061,0x006E,0x0064,0x0061,0x0072,0x0064,0x0020,0x006F,0x0075,0x0074,0x00 }
+  , { 0x0043,0x006F,0x0075,0x006C,0x0064,0x0020,0x006E,0x006F,0x0074,0x0020,0x0077,0x0072,0x0069,0x0074,0x0065,0x0020,0x0074,0x006F,0x0020,0x0063,0x006F,0x006E,0x0073,0x006F,0x006C,0x0065,0x00 }
+  , { 0x0053,0x0074,0x0072,0x0069,0x006E,0x0067,0x0020,0x0070,0x006F,0x006F,0x006C,0x0020,0x0069,0x0064,0x0020,0x0077,0x0061,0x0073,0x0020,0x006E,0x006F,0x0074,0x0020,0x006C,0x0065,0x0067,0x0061,0x006C,0x00 }
+  , { 0x0043,0x006F,0x0075,0x006C,0x0064,0x0020,0x006E,0x006F,0x0074,0x0020,0x0063,0x0072,0x0065,0x0061,0x0074,0x0065,0x0020,0x0061,0x0020,0x0064,0x0065,0x0066,0x0061,0x0075,0x006C,0x0074,0x0020,0x0074,0x0072,0x0061,0x006E,0x0073,0x0063,0x006F,0x0064,
+      0x0065,0x0072,0x00 }
+  , { 0x0054,0x0068,0x0065,0x0020,0x006D,0x0061,0x0078,0x0069,0x006D,0x0075,0x006D,0x0020,0x0073,0x0069,0x007A,0x0065,0x0020,0x0074,0x006F,0x0020,0x0078,0x006C,0x0061,0x0074,0x0020,0x0069,0x0073,0x0020,0x006C,0x0061,0x0072,0x0067,0x0065,0x0072,0x0020,
+      0x0074,0x0068,0x0061,0x006E,0x0020,0x0074,0x0068,0x0065,0x0020,0x0064,0x0065,0x0063,0x006C,0x0061,0x0072,0x0065,0x0064,0x0020,0x0062,0x006C,0x006F,0x0063,0x006B,0x0020,0x0073,0x0069,0x007A,0x0065,0x00 }
+  , { 0x0055,0x006E,0x0069,0x0063,0x006F,0x0064,0x0065,0x0020,0x0063,0x0068,0x0061,0x0072,0x0020,0x0030,0x0078,0x007B,0x0030,0x007D,0x0020,0x0069,0x0073,0x0020,0x006E,0x006F,0x0074,0x0020,0x0072,0x0065,0x0070,0x0072,0x0065,0x0073,0x0065,0x006E,0x0074,
+      0x0061,0x0062,0x006C,0x0065,0x0020,0x0069,0x006E,0x0020,0x0065,0x006E,0x0063,0x006F,0x0064,0x0069,0x006E,0x0067,0x0020,0x007B,0x0031,0x007D,0x00 }
+  , { 0x0043,0x0068,0x0061,0x0072,0x0061,0x0063,0x0074,0x0065,0x0072,0x0020,0x007B,0x0030,0x007D,0x0020,0x0069,0x0073,0x0020,0x006E,0x006F,0x0074,0x0020,0x0076,0x0061,0x006C,0x0069,0x0064,0x0020,0x0066,0x006F,0x0072,0x0020,0x0065,0x006E,0x0063,0x006F,
+      0x0064,0x0069,0x006E,0x0067,0x0020,0x007B,0x0031,0x007D,0x00 }
+  , { 0x0054,0x0068,0x0065,0x0020,0x0072,0x0065,0x0071,0x0075,0x0065,0x0073,0x0074,0x0065,0x0064,0x0020,0x0062,0x006C,0x006F,0x0063,0x006B,0x0020,0x0073,0x0069,0x007A,0x0065,0x0020,0x0069,0x0073,0x0020,0x006E,0x006F,0x0074,0x0020,0x0065,0x0071,0x0075,
+      0x0061,0x006C,0x0020,0x0074,0x006F,0x0020,0x0074,0x0068,0x0065,0x0020,0x0073,0x0069,0x007A,0x0065,0x0020,0x0073,0x0065,0x0074,0x0020,0x0064,0x0075,0x0072,0x0069,0x006E,0x0067,0x0020,0x0063,0x006F,0x006E,0x0073,0x0074,0x0072,0x0075,0x0063,0x0074,
+      0x0069,0x006F,0x006E,0x00 }
+  , { 0x0041,0x006E,0x0020,0x0069,0x006E,0x0076,0x0061,0x006C,0x0069,0x0064,0x0020,0x006D,0x0075,0x006C,0x0074,0x0069,0x002D,0x0062,0x0079,0x0074,0x0065,0x0020,0x0073,0x006F,0x0075,0x0072,0x0063,0x0065,0x0020,0x0074,0x0065,0x0078,0x0074,0x0020,0x0073,
+      0x0065,0x0071,0x0075,0x0065,0x006E,0x0063,0x0065,0x0020,0x0077,0x0061,0x0073,0x0020,0x0065,0x006E,0x0063,0x006F,0x0075,0x006E,0x0074,0x0065,0x0072,0x0065,0x0064,0x00 }
+  , { 0x007B,0x0030,0x007D,0x0020,0x0069,0x0073,0x0020,0x006E,0x006F,0x0074,0x0020,0x0061,0x0020,0x0076,0x0061,0x006C,0x0069,0x0064,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0020,0x0066,0x006F,0x0072,0x0020,0x0065,0x006E,0x0063,0x006F,0x0064,0x0069,
+      0x006E,0x0067,0x0020,0x007B,0x0031,0x007D,0x00 }
+  , { 0x004C,0x0065,0x0061,0x0064,0x0069,0x006E,0x0067,0x0020,0x0073,0x0075,0x0072,0x0072,0x006F,0x0067,0x0061,0x0074,0x0065,0x0020,0x0077,0x0061,0x0073,0x0020,0x006E,0x006F,0x0074,0x0020,0x0066,0x006F,0x006C,0x006C,0x006F,0x0077,0x0065,0x0064,0x0020,
+      0x0062,0x0079,0x0020,0x0074,0x0072,0x0061,0x0069,0x006C,0x0069,0x006E,0x0067,0x00 }
+  , { 0x0043,0x006F,0x0075,0x006C,0x0064,0x0020,0x006E,0x006F,0x0074,0x0020,0x0063,0x0072,0x0065,0x0061,0x0074,0x0065,0x0020,0x0061,0x0020,0x0063,0x006F,0x006E,0x0076,0x0065,0x0072,0x0074,0x0065,0x0072,0x0020,0x0066,0x006F,0x0072,0x0020,0x0065,0x006E,
+      0x0063,0x006F,0x0064,0x0069,0x006E,0x0067,0x003A,0x0020,0x007B,0x0030,0x007D,0x00 }
+  , { 0x0054,0x0068,0x0065,0x0020,0x0055,0x0052,0x004C,0x0020,0x0077,0x0061,0x0073,0x0020,0x006E,0x006F,0x0074,0x0020,0x0063,0x006F,0x0072,0x0072,0x0065,0x0063,0x0074,0x006C,0x0079,0x0020,0x0066,0x006F,0x0072,0x006D,0x0065,0x0064,0x00 }
+  , { 0x0054,0x0068,0x0065,0x0020,0x0055,0x0052,0x004C,0x0020,0x0075,0x0073,0x0065,0x0064,0x0020,0x0061,0x006E,0x0020,0x0075,0x006E,0x0073,0x0075,0x0070,0x0070,0x006F,0x0072,0x0074,0x0065,0x0064,0x0020,0x0070,0x0072,0x006F,0x0074,0x006F,0x0063,0x006F,
+      0x006C,0x00 }
+  , { 0x0055,0x006E,0x0073,0x0075,0x0070,0x0070,0x006F,0x0072,0x0074,0x0065,0x0064,0x0020,0x0055,0x0052,0x004C,0x0020,0x0070,0x0072,0x006F,0x0074,0x006F,0x0063,0x006F,0x006C,0x003A,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x00 }
+  , { 0x004F,0x006E,0x006C,0x0079,0x0020,0x006C,0x006F,0x0063,0x0061,0x006C,0x0068,0x006F,0x0073,0x0074,0x0020,0x0069,0x0073,0x0020,0x0073,0x0075,0x0070,0x0070,0x006F,0x0072,0x0074,0x0065,0x0064,0x0020,0x0061,0x0074,0x0020,0x0074,0x0068,0x0069,0x0073,
+      0x0020,0x0074,0x0069,0x006D,0x0065,0x00 }
+  , { 0x004E,0x006F,0x0020,0x0070,0x0072,0x006F,0x0074,0x006F,0x0063,0x006F,0x006C,0x0020,0x0070,0x0072,0x0065,0x0066,0x0069,0x0078,0x0020,0x0070,0x0072,0x0065,0x0073,0x0065,0x006E,0x0074,0x00 }
+  , { 0x0045,0x0078,0x0070,0x0065,0x0063,0x0074,0x0065,0x0064,0x0020,0x002F,0x002F,0x0020,0x0061,0x0066,0x0074,0x0065,0x0072,0x0020,0x0070,0x0072,0x006F,0x0074,0x006F,0x0063,0x006F,0x006C,0x00 }
+  , { 0x0025,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0062,0x0065,0x0020,0x0066,0x006F,0x006C,0x006C,0x006F,0x0077,0x0065,0x0064,0x0020,0x0062,0x0079,0x0020,0x0074,0x0077,0x006F,0x0020,0x0068,0x0065,0x0078,0x0020,0x0064,0x0069,0x0067,0x0069,0x0074,
+      0x0073,0x00 }
+  , { 0x0055,0x006E,0x0074,0x0065,0x0072,0x006D,0x0069,0x006E,0x0061,0x0074,0x0065,0x0064,0x0020,0x0068,0x006F,0x0073,0x0074,0x0020,0x0063,0x006F,0x006D,0x0070,0x006F,0x006E,0x0065,0x006E,0x0074,0x00 }
+  , { 0x0054,0x0068,0x0065,0x0020,0x0062,0x0061,0x0073,0x0065,0x0020,0x0070,0x0061,0x0072,0x0074,0x0020,0x006F,0x0066,0x0020,0x0074,0x0068,0x0065,0x0020,0x0055,0x0052,0x004C,0x0020,0x0063,0x0061,0x006E,0x006E,0x006F,0x0074,0x0020,0x0062,0x0065,0x0020,
+      0x0072,0x0065,0x006C,0x0061,0x0074,0x0069,0x0076,0x0065,0x00 }
+  , { 0x0054,0x0068,0x0065,0x0020,0x0062,0x0061,0x0073,0x0065,0x0020,0x0070,0x0061,0x0072,0x0074,0x0020,0x0068,0x0061,0x0073,0x0020,0x0074,0x006F,0x006F,0x0020,0x0066,0x0065,0x0077,0x0020,0x006C,0x0065,0x0076,0x0065,0x006C,0x0073,0x0020,0x0074,0x006F,
+      0x0020,0x0077,0x0065,0x0061,0x0076,0x0065,0x0020,0x0069,0x006E,0x0020,0x0072,0x0065,0x006C,0x0061,0x0074,0x0069,0x0076,0x0065,0x0020,0x0070,0x0061,0x0072,0x0074,0x00 }
+  , { 0x0054,0x0068,0x0065,0x0020,0x0070,0x006F,0x0072,0x0074,0x0020,0x0066,0x0069,0x0065,0x006C,0x0064,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0062,0x0065,0x0020,0x0061,0x0020,0x0031,0x0036,0x0020,0x0062,0x0069,0x0074,0x0020,0x0064,0x0065,0x0063,
+      0x0069,0x006D,0x0061,0x006C,0x0020,0x006E,0x0075,0x006D,0x0062,0x0065,0x0072,0x00 }
+  , { 0x0069,0x006E,0x0076,0x0061,0x006C,0x0069,0x0064,0x0020,0x0062,0x0079,0x0074,0x0065,0x0020,0x007B,0x0030,0x007D,0x0020,0x0028,0x007B,0x0031,0x007D,0x0029,0x0020,0x006F,0x0066,0x0020,0x0061,0x0020,0x007B,0x0032,0x007D,0x002D,0x0062,0x0079,0x0074,
+      0x0065,0x0020,0x0073,0x0065,0x0071,0x0075,0x0065,0x006E,0x0063,0x0065,0x002E,0x00 }
+  , { 0x0069,0x006E,0x0076,0x0061,0x006C,0x0069,0x0064,0x0020,0x0062,0x0079,0x0074,0x0065,0x0020,0x007B,0x0030,0x007D,0x0020,0x006F,0x0066,0x0020,0x0032,0x002D,0x0062,0x0079,0x0074,0x0065,0x0020,0x0073,0x0065,0x0071,0x0075,0x0065,0x006E,0x0063,0x0065,
+      0x002E,0x00 }
+  , { 0x0069,0x006E,0x0076,0x0061,0x006C,0x0069,0x0064,0x0020,0x0062,0x0079,0x0074,0x0065,0x0073,0x0020,0x007B,0x0030,0x007D,0x002C,0x0020,0x007B,0x0031,0x007D,0x0020,0x006F,0x0066,0x0020,0x0033,0x002D,0x0062,0x0079,0x0074,0x0065,0x0020,0x0073,0x0065,
+      0x0071,0x0075,0x0065,0x006E,0x0063,0x0065,0x002E,0x00 }
+  , { 0x0069,0x0072,0x0072,0x0065,0x0067,0x0075,0x006C,0x0061,0x0072,0x0020,0x0062,0x0079,0x0074,0x0065,0x0073,0x0020,0x007B,0x0030,0x007D,0x002C,0x0020,0x007B,0x0031,0x007D,0x0020,0x006F,0x0066,0x0020,0x0033,0x002D,0x0062,0x0079,0x0074,0x0065,0x0020,
+      0x0073,0x0065,0x0071,0x0075,0x0065,0x006E,0x0063,0x0065,0x002E,0x00 }
+  , { 0x0069,0x006E,0x0076,0x0061,0x006C,0x0069,0x0064,0x0020,0x0062,0x0079,0x0074,0x0065,0x0073,0x0020,0x007B,0x0030,0x007D,0x002C,0x0020,0x007B,0x0031,0x007D,0x0020,0x006F,0x0066,0x0020,0x0034,0x002D,0x0062,0x0079,0x0074,0x0065,0x0020,0x0073,0x0065,
+      0x0071,0x0075,0x0065,0x006E,0x0063,0x0065,0x002E,0x00 }
+  , { 0x0045,0x0078,0x0063,0x0065,0x0065,0x0064,0x0065,0x0020,0x0062,0x0079,0x0074,0x0065,0x0073,0x0020,0x006C,0x0069,0x006D,0x0069,0x0074,0x0073,0x0020,0x007B,0x0030,0x007D,0x002C,0x0020,0x007B,0x0031,0x007D,0x002D,0x0062,0x0079,0x0074,0x0065,0x0020,
+      0x0073,0x0065,0x0071,0x0075,0x0065,0x006E,0x0063,0x0065,0x002E,0x00 }
+  , { 0x0054,0x0068,0x0065,0x0020,0x0070,0x0061,0x0073,0x0073,0x0065,0x0064,0x0020,0x0069,0x006E,0x0064,0x0065,0x0078,0x0020,0x0069,0x0073,0x0020,0x0070,0x0061,0x0073,0x0074,0x0020,0x0074,0x0068,0x0065,0x0020,0x0065,0x006E,0x0064,0x0020,0x006F,0x0066,
+      0x0020,0x0074,0x0068,0x0065,0x0020,0x0076,0x0065,0x0063,0x0074,0x006F,0x0072,0x00 }
+  , { 0x0054,0x0068,0x0065,0x0020,0x0065,0x006C,0x0065,0x006D,0x0065,0x006E,0x0074,0x0020,0x0069,0x0064,0x0020,0x0077,0x0061,0x0073,0x0020,0x0069,0x006E,0x0076,0x0061,0x006C,0x0069,0x0064,0x00 }
+  , { 0x0057,0x0068,0x0065,0x006E,0x0020,0x0072,0x0065,0x0075,0x0073,0x0069,0x006E,0x0067,0x0020,0x0074,0x0068,0x0065,0x0020,0x0047,0x0072,0x0061,0x006D,0x006D,0x0061,0x0072,0x002C,0x0020,0x006E,0x006F,0x0020,0x0069,0x006E,0x0074,0x0065,0x0072,0x006E,
+      0x0061,0x006C,0x0020,0x0073,0x0075,0x0062,0x0073,0x0065,0x0074,0x0020,0x0069,0x0073,0x0020,0x0061,0x006C,0x006C,0x006F,0x0077,0x0065,0x0064,0x00 }
+  , { 0x0054,0x0068,0x0065,0x0020,0x0070,0x0061,0x0073,0x0073,0x0065,0x0064,0x0020,0x0072,0x0065,0x0063,0x006F,0x0067,0x006E,0x0069,0x007A,0x0065,0x0072,0x0020,0x0065,0x006E,0x0063,0x006F,0x0064,0x0069,0x006E,0x0067,0x0020,0x0077,0x0061,0x0073,0x0020,
+      0x006E,0x006F,0x0074,0x0020,0x006B,0x006E,0x006F,0x0077,0x006E,0x00 }
+  , { 0x0054,0x0068,0x0065,0x0020,0x0070,0x0061,0x0072,0x0073,0x0065,0x0072,0x0020,0x0066,0x006F,0x0075,0x006E,0x0064,0x0020,0x0061,0x006E,0x0020,0x0069,0x006C,0x006C,0x0065,0x0067,0x0061,0x006C,0x0020,0x0063,0x0068,0x0061,0x0072,0x0061,0x0063,0x0074,
+      0x0065,0x0072,0x0020,0x0061,0x0074,0x0020,0x006F,0x0066,0x0066,0x0073,0x0065,0x0074,0x0020,0x007B,0x0030,0x007D,0x0020,0x0069,0x006E,0x0020,0x0074,0x0068,0x0065,0x0020,0x0072,0x0065,0x0067,0x0075,0x006C,0x0061,0x0072,0x0020,0x0065,0x0078,0x0070,
+      0x0072,0x0065,0x0073,0x0073,0x0069,0x006F,0x006E,0x0020,0x0027,0x007B,0x0031,0x007D,0x0027,0x002E,0x00 }
+  , { 0x0049,0x006E,0x0076,0x0061,0x006C,0x0069,0x0064,0x0020,0x0072,0x0065,0x0066,0x0065,0x0072,0x0065,0x006E,0x0063,0x0065,0x0020,0x006E,0x0075,0x006D,0x0062,0x0065,0x0072,0x00 }
+  , { 0x0041,0x0020,0x0063,0x0068,0x0061,0x0072,0x0061,0x0063,0x0074,0x0065,0x0072,0x0020,0x0069,0x0073,0x0020,0x0072,0x0065,0x0071,0x0075,0x0069,0x0072,0x0065,0x0064,0x0020,0x0061,0x0066,0x0074,0x0065,0x0072,0x0020,0x005C,0x00 }
+  , { 0x0027,0x003F,0x0027,0x0020,0x0069,0x0073,0x0020,0x006E,0x006F,0x0074,0x0020,0x0065,0x0078,0x0070,0x0065,0x0063,0x0074,0x0065,0x0064,0x002E,0x0020,0x0020,0x0027,0x0028,0x003F,0x003A,0x0027,0x0020,0x006F,0x0072,0x0020,0x0027,0x0028,0x003F,0x003D,
+      0x0027,0x0020,0x006F,0x0072,0x0020,0x0027,0x0028,0x003F,0x0021,0x0027,0x0020,0x006F,0x0072,0x0020,0x0027,0x0028,0x003F,0x003C,0x0027,0x0020,0x006F,0x0072,0x0020,0x0027,0x0028,0x003F,0x0023,0x0027,0x0020,0x006F,0x0072,0x0020,0x0027,0x0028,0x003F,
+      0x003E,0x0027,0x003F,0x00 }
+  , { 0x0027,0x0028,0x003F,0x003C,0x003D,0x0027,0x0020,0x006F,0x0072,0x0020,0x0027,0x0028,0x003F,0x003C,0x0021,0x0027,0x0020,0x0069,0x0073,0x0020,0x0065,0x0078,0x0070,0x0065,0x0063,0x0074,0x0065,0x0064,0x00 }
+  , { 0x0041,0x0020,0x0063,0x006F,0x006D,0x006D,0x0065,0x006E,0x0074,0x0020,0x0069,0x0073,0x0020,0x006E,0x006F,0x0074,0x0020,0x0074,0x0065,0x0072,0x006D,0x0069,0x006E,0x0061,0x0074,0x0065,0x0064,0x00 }
+  , { 0x0027,0x0029,0x0027,0x0020,0x0069,0x0073,0x0020,0x0065,0x0078,0x0070,0x0065,0x0063,0x0074,0x0065,0x0064,0x00 }
+  , { 0x0055,0x006E,0x0065,0x0078,0x0070,0x0065,0x0063,0x0074,0x0065,0x0064,0x0020,0x0065,0x006E,0x0064,0x0020,0x006F,0x0066,0x0020,0x0074,0x0068,0x0065,0x0020,0x0070,0x0061,0x0074,0x0074,0x0065,0x0072,0x006E,0x0020,0x0069,0x006E,0x0020,0x0061,0x0020,
+      0x006D,0x006F,0x0064,0x0069,0x0066,0x0069,0x0065,0x0072,0x0020,0x0067,0x0072,0x006F,0x0075,0x0070,0x00 }
+  , { 0x0027,0x003A,0x0027,0x0020,0x0069,0x0073,0x0020,0x0065,0x0078,0x0070,0x0065,0x0063,0x0074,0x0065,0x0064,0x00 }
+  , { 0x0055,0x006E,0x0065,0x0078,0x0070,0x0065,0x0063,0x0074,0x0065,0x0064,0x0020,0x0065,0x006E,0x0064,0x0020,0x006F,0x0066,0x0020,0x0074,0x0068,0x0065,0x0020,0x0070,0x0061,0x0074,0x0074,0x0065,0x0072,0x006E,0x0020,0x0069,0x006E,0x0020,0x0061,0x0020,
+      0x0063,0x006F,0x006E,0x0064,0x0069,0x0074,0x0069,0x006F,0x006E,0x0061,0x006C,0x0020,0x0067,0x0072,0x006F,0x0075,0x0070,0x00 }
+  , { 0x0041,0x0020,0x0062,0x0061,0x0063,0x006B,0x0020,0x0072,0x0065,0x0066,0x0065,0x0072,0x0065,0x006E,0x0063,0x0065,0x0020,0x006F,0x0072,0x0020,0x0061,0x006E,0x0020,0x0061,0x006E,0x0063,0x0068,0x006F,0x0072,0x0020,0x006F,0x0072,0x0020,0x0061,0x0020,
+      0x006C,0x006F,0x006F,0x006B,0x0061,0x0068,0x0065,0x0061,0x0064,0x0020,0x006F,0x0072,0x0020,0x0061,0x0020,0x006C,0x006F,0x006F,0x006B,0x0062,0x0065,0x0068,0x0069,0x006E,0x0064,0x0020,0x0069,0x0073,0x0020,0x0065,0x0078,0x0070,0x0065,0x0063,0x0074,
+      0x0065,0x0064,0x0020,0x0069,0x006E,0x0020,0x0061,0x0020,0x0063,0x006F,0x006E,0x0064,0x0069,0x0074,0x0069,0x006F,0x006E,0x0061,0x006C,0x0020,0x0070,0x0061,0x0074,0x0074,0x0065,0x0072,0x006E,0x00 }
+  , { 0x0054,0x0068,0x0065,0x0072,0x0065,0x0020,0x0061,0x0072,0x0065,0x0020,0x006D,0x006F,0x0072,0x0065,0x0020,0x0074,0x0068,0x0061,0x006E,0x0020,0x0074,0x0068,0x0072,0x0065,0x0065,0x0020,0x0063,0x0068,0x006F,0x0069,0x0063,0x0065,0x0073,0x0020,0x0069,
+      0x006E,0x0020,0x0061,0x0020,0x0063,0x006F,0x006E,0x0064,0x0069,0x0074,0x0069,0x006F,0x006E,0x0061,0x006C,0x0020,0x0067,0x0072,0x006F,0x0075,0x0070,0x00 }
+  , { 0x0041,0x0020,0x0063,0x0068,0x0061,0x0072,0x0061,0x0063,0x0074,0x0065,0x0072,0x0020,0x0069,0x006E,0x0020,0x0055,0x002B,0x0030,0x0030,0x0034,0x0030,0x002D,0x0055,0x002B,0x0030,0x0030,0x0035,0x0066,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0066,
+      0x006F,0x006C,0x006C,0x006F,0x0077,0x0020,0x005C,0x0063,0x00 }
+  , { 0x0041,0x0020,0x0027,0x007B,0x0027,0x0020,0x0069,0x0073,0x0020,0x0072,0x0065,0x0071,0x0075,0x0069,0x0072,0x0065,0x0064,0x0020,0x0062,0x0065,0x0066,0x006F,0x0072,0x0065,0x0020,0x0061,0x0020,0x0063,0x0061,0x0074,0x0065,0x0067,0x006F,0x0072,0x0079,
+      0x0020,0x0063,0x0068,0x0061,0x0072,0x0061,0x0063,0x0074,0x0065,0x0072,0x002E,0x00 }
+  , { 0x0041,0x0020,0x0070,0x0072,0x006F,0x0070,0x0065,0x0072,0x0074,0x0079,0x0020,0x006E,0x0061,0x006D,0x0065,0x0020,0x0069,0x0073,0x0020,0x006E,0x006F,0x0074,0x0020,0x0063,0x006C,0x006F,0x0073,0x0065,0x0064,0x0020,0x0062,0x0079,0x0020,0x0027,0x007D,
+      0x0027,0x00 }
+  , { 0x0055,0x006E,0x0065,0x0078,0x0070,0x0065,0x0063,0x0074,0x0065,0x0064,0x0020,0x006D,0x0065,0x0074,0x0061,0x0020,0x0063,0x0068,0x0061,0x0072,0x0061,0x0063,0x0074,0x0065,0x0072,0x00 }
+  , { 0x0055,0x006E,0x006B,0x006E,0x006F,0x0077,0x006E,0x0020,0x0070,0x0072,0x006F,0x0070,0x0065,0x0072,0x0074,0x0079,0x00 }
+  , { 0x0041,0x0020,0x0050,0x004F,0x0053,0x0049,0x0058,0x0020,0x0063,0x0068,0x0061,0x0072,0x0061,0x0063,0x0074,0x0065,0x0072,0x0020,0x0063,0x006C,0x0061,0x0073,0x0073,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0062,0x0065,0x0020,0x0063,0x006C,0x006F,
+      0x0073,0x0065,0x0064,0x0020,0x0062,0x0079,0x0020,0x0027,0x003A,0x005D,0x0027,0x00 }
+  , { 0x0055,0x006E,0x0065,0x0078,0x0070,0x0065,0x0063,0x0074,0x0065,0x0064,0x0020,0x0065,0x006E,0x0064,0x0020,0x006F,0x0066,0x0020,0x0074,0x0068,0x0065,0x0020,0x0070,0x0061,0x0074,0x0074,0x0065,0x0072,0x006E,0x0020,0x0069,0x006E,0x0020,0x0061,0x0020,
+      0x0063,0x0068,0x0061,0x0072,0x0061,0x0063,0x0074,0x0065,0x0072,0x0020,0x0063,0x006C,0x0061,0x0073,0x0073,0x00 }
+  , { 0x0055,0x006E,0x006B,0x006E,0x006F,0x0077,0x006E,0x0020,0x006E,0x0061,0x006D,0x0065,0x0020,0x0066,0x006F,0x0072,0x0020,0x0061,0x0020,0x0050,0x004F,0x0053,0x0049,0x0058,0x0020,0x0063,0x0068,0x0061,0x0072,0x0061,0x0063,0x0074,0x0065,0x0072,0x0020,
+      0x0063,0x006C,0x0061,0x0073,0x0073,0x00 }
+  , { 0x0027,0x002D,0x0027,0x0020,0x0069,0x0073,0x0020,0x0069,0x006E,0x0076,0x0061,0x006C,0x0069,0x0064,0x0020,0x0068,0x0065,0x0072,0x0065,0x00 }
+  , { 0x0027,0x005D,0x0027,0x0020,0x0069,0x0073,0x0020,0x0065,0x0078,0x0070,0x0065,0x0063,0x0074,0x0065,0x0064,0x00 }
+  , { 0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0069,0x0073,0x0020,0x006E,0x006F,0x0074,0x0020,0x0061,0x0020,0x0076,0x0061,0x006C,0x0069,0x0064,0x0020,0x0063,0x0068,0x0061,0x0072,0x0061,0x0063,0x0074,0x0065,0x0072,0x0020,0x0072,0x0061,0x006E,0x0067,
+      0x0065,0x003B,0x0020,0x0075,0x0073,0x0065,0x0020,0x0027,0x005C,0x007B,0x0031,0x007D,0x0027,0x0020,0x0069,0x006E,0x0073,0x0074,0x0065,0x0061,0x0064,0x00 }
+  , { 0x003D,0x0027,0x005B,0x0027,0x0020,0x0069,0x0073,0x0020,0x0065,0x0078,0x0070,0x0065,0x0063,0x0074,0x0065,0x0064,0x00 }
+  , { 0x0027,0x0029,0x0027,0x0020,0x006F,0x0072,0x0020,0x0027,0x002D,0x005B,0x0027,0x0020,0x006F,0x0072,0x0020,0x0027,0x002B,0x005B,0x0027,0x0020,0x006F,0x0072,0x0020,0x0027,0x0026,0x005B,0x0027,0x0020,0x0069,0x0073,0x0020,0x0065,0x0078,0x0070,0x0065,
+      0x0063,0x0074,0x0065,0x0064,0x00 }
+  , { 0x0054,0x0068,0x0065,0x0020,0x0072,0x0061,0x006E,0x0067,0x0065,0x0020,0x0065,0x006E,0x0064,0x0020,0x0063,0x006F,0x0064,0x0065,0x0020,0x0070,0x006F,0x0069,0x006E,0x0074,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0069,0x0073,0x0020,0x006C,
+      0x0065,0x0073,0x0073,0x0020,0x0074,0x0068,0x0061,0x006E,0x0020,0x0074,0x0068,0x0065,0x0020,0x0073,0x0074,0x0061,0x0072,0x0074,0x0020,0x0063,0x006F,0x0064,0x0065,0x0020,0x0070,0x006F,0x0069,0x006E,0x0074,0x0020,0x0027,0x007B,0x0031,0x007D,0x0027,
+      0x00 }
+  , { 0x0049,0x006E,0x0076,0x0061,0x006C,0x0069,0x0064,0x0020,0x0055,0x006E,0x0069,0x0063,0x006F,0x0064,0x0065,0x0020,0x0068,0x0065,0x0078,0x0020,0x006E,0x006F,0x0074,0x0061,0x0074,0x0069,0x006F,0x006E,0x00 }
+  , { 0x004F,0x0076,0x0065,0x0072,0x0066,0x006C,0x006F,0x0077,0x0020,0x0069,0x006E,0x0020,0x0061,0x0020,0x0068,0x0065,0x0078,0x0020,0x006E,0x006F,0x0074,0x0061,0x0074,0x0069,0x006F,0x006E,0x00 }
+  , { 0x0027,0x005C,0x0020,0x0078,0x007B,0x0027,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0062,0x0065,0x0020,0x0063,0x006C,0x006F,0x0073,0x0065,0x0064,0x0020,0x0062,0x0079,0x0020,0x0027,0x007D,0x0027,0x00 }
+  , { 0x0049,0x006E,0x0076,0x0061,0x006C,0x0069,0x0064,0x0020,0x0055,0x006E,0x0069,0x0063,0x006F,0x0064,0x0065,0x0020,0x0063,0x006F,0x0064,0x0065,0x0020,0x0070,0x006F,0x0069,0x006E,0x0074,0x00 }
+  , { 0x0041,0x006E,0x0020,0x0061,0x006E,0x0063,0x0068,0x006F,0x0072,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x006E,0x006F,0x0074,0x0020,0x0062,0x0065,0x0020,0x0068,0x0065,0x0072,0x0065,0x00 }
+  , { 0x0054,0x0068,0x0069,0x0073,0x0020,0x0065,0x0078,0x0070,0x0072,0x0065,0x0073,0x0073,0x0069,0x006F,0x006E,0x0020,0x0069,0x0073,0x0020,0x006E,0x006F,0x0074,0x0020,0x0073,0x0075,0x0070,0x0070,0x006F,0x0072,0x0074,0x0065,0x0064,0x0020,0x0069,0x006E,
+      0x0020,0x0074,0x0068,0x0065,0x0020,0x0063,0x0075,0x0072,0x0072,0x0065,0x006E,0x0074,0x0020,0x006F,0x0070,0x0074,0x0069,0x006F,0x006E,0x0020,0x0073,0x0065,0x0074,0x0074,0x0069,0x006E,0x0067,0x00 }
+  , { 0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0069,0x0073,0x0020,0x006E,0x006F,0x0074,0x0020,0x0061,0x0020,0x0076,0x0061,0x006C,0x0069,0x0064,0x0020,0x0063,0x0068,0x0061,0x0072,0x0061,0x0063,0x0074,0x0065,0x0072,0x0020,0x0065,0x0073,0x0063,0x0061,
+      0x0070,0x0065,0x00 }
+  , { 0x0049,0x006E,0x0076,0x0061,0x006C,0x0069,0x0064,0x0020,0x0071,0x0075,0x0061,0x006E,0x0074,0x0069,0x0066,0x0069,0x0065,0x0072,0x0020,0x0069,0x006E,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x002E,0x0020,0x0041,0x0020,0x0064,0x0069,0x0067,0x0069,
+      0x0074,0x0020,0x0069,0x0073,0x0020,0x0065,0x0078,0x0070,0x0065,0x0063,0x0074,0x0065,0x0064,0x00 }
+  , { 0x0049,0x006E,0x0076,0x0061,0x006C,0x0069,0x0064,0x0020,0x0071,0x0075,0x0061,0x006E,0x0074,0x0069,0x0066,0x0069,0x0065,0x0072,0x0020,0x0069,0x006E,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x002E,0x0020,0x0049,0x006E,0x0076,0x0061,0x006C,0x0069,
+      0x0064,0x0020,0x0071,0x0075,0x0061,0x006E,0x0074,0x0069,0x0074,0x0079,0x0020,0x006F,0x0072,0x0020,0x0061,0x0020,0x0027,0x007D,0x0027,0x0020,0x0069,0x0073,0x0020,0x006D,0x0069,0x0073,0x0073,0x0069,0x006E,0x0067,0x00 }
+  , { 0x0049,0x006E,0x0076,0x0061,0x006C,0x0069,0x0064,0x0020,0x0071,0x0075,0x0061,0x006E,0x0074,0x0069,0x0066,0x0069,0x0065,0x0072,0x0020,0x0069,0x006E,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x002E,0x0020,0x0041,0x0020,0x0064,0x0069,0x0067,0x0069,
+      0x0074,0x0020,0x006F,0x0072,0x0020,0x0027,0x007D,0x0027,0x0020,0x0069,0x0073,0x0020,0x0065,0x0078,0x0070,0x0065,0x0078,0x0074,0x0065,0x0064,0x00 }
+  , { 0x0049,0x006E,0x0076,0x0061,0x006C,0x0069,0x0064,0x0020,0x0071,0x0075,0x0061,0x006E,0x0074,0x0069,0x0066,0x0069,0x0065,0x0072,0x0020,0x0069,0x006E,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x002E,0x0020,0x0041,0x0020,0x006D,0x0069,0x006E,0x0020,
+      0x0071,0x0075,0x0061,0x006E,0x0074,0x0069,0x0074,0x0079,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0062,0x0065,0x0020,0x003C,0x003D,0x0020,0x0061,0x0020,0x006D,0x0061,0x0078,0x0020,0x0071,0x0075,0x0061,0x006E,0x0074,0x0069,0x0074,0x0079,0x00 }
+  , { 0x0049,0x006E,0x0076,0x0061,0x006C,0x0069,0x0064,0x0020,0x0071,0x0075,0x0061,0x006E,0x0074,0x0069,0x0066,0x0069,0x0065,0x0072,0x0020,0x0069,0x006E,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x002E,0x0020,0x0041,0x0020,0x0071,0x0075,0x0061,0x006E,
+      0x0074,0x0069,0x0074,0x0079,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0020,0x006F,0x0076,0x0065,0x0072,0x0066,0x006C,0x006F,0x0077,0x00 }
+  , { 0x0041,0x0020,0x0073,0x0063,0x0068,0x0065,0x006D,0x0061,0x0020,0x0077,0x0061,0x0073,0x0020,0x0073,0x0065,0x0065,0x006E,0x0020,0x0062,0x0075,0x0074,0x0020,0x0074,0x0068,0x0065,0x0020,0x0069,0x006E,0x0073,0x0074,0x0061,0x006C,0x006C,0x0065,0x0064,
+      0x0020,0x0076,0x0061,0x006C,0x0069,0x0064,0x0061,0x0074,0x006F,0x0072,0x0020,0x0064,0x006F,0x0065,0x0073,0x0020,0x006E,0x006F,0x0074,0x0020,0x0075,0x006E,0x0064,0x0065,0x0072,0x0073,0x0074,0x0061,0x006E,0x0064,0x0020,0x0073,0x0063,0x0068,0x0065,
+      0x006D,0x0061,0x00 }
+  , { 0x0054,0x0068,0x0065,0x0020,0x007B,0x0030,0x007D,0x0020,0x006E,0x006F,0x0064,0x0065,0x0020,0x0074,0x0079,0x0070,0x0065,0x0020,0x0069,0x0073,0x0020,0x006E,0x006F,0x0074,0x0020,0x0076,0x0061,0x006C,0x0069,0x0064,0x0020,0x0066,0x006F,0x0072,0x0020,
+      0x0063,0x006F,0x0070,0x0079,0x00 }
+  , { 0x0053,0x0075,0x0062,0x0073,0x0074,0x0069,0x0074,0x0075,0x0074,0x0069,0x006F,0x006E,0x0047,0x0072,0x006F,0x0075,0x0070,0x0043,0x006F,0x006D,0x0070,0x0061,0x0072,0x0061,0x0074,0x006F,0x0072,0x0020,0x0068,0x0061,0x0073,0x0020,0x006E,0x006F,0x0020,
+      0x0067,0x0072,0x0061,0x006D,0x006D,0x0061,0x0072,0x0020,0x0072,0x0065,0x0073,0x006F,0x006C,0x0076,0x0065,0x0072,0x00 }
+  , { 0x004C,0x0065,0x006E,0x0067,0x0074,0x0068,0x0020,0x0056,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0069,0x0073,0x0020,0x0069,0x006E,0x0076,0x0061,0x006C,0x0069,0x0064,0x00 }
+  , { 0x006D,0x0061,0x0078,0x004C,0x0065,0x006E,0x0067,0x0074,0x0068,0x0020,0x0056,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0069,0x0073,0x0020,0x0069,0x006E,0x0076,0x0061,0x006C,0x0069,0x0064,0x00 }
+  , { 0x006D,0x0069,0x006E,0x004C,0x0065,0x006E,0x0067,0x0074,0x0068,0x0020,0x0056,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0069,0x0073,0x0020,0x0069,0x006E,0x0076,0x0061,0x006C,0x0069,0x0064,0x00 }
+  , { 0x004C,0x0065,0x006E,0x0067,0x0074,0x0068,0x0020,0x0056,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0062,0x0065,0x0020,0x0061,0x0020,0x006E,0x006F,0x006E,0x004E,0x0065,0x0067,
+      0x0061,0x0074,0x0069,0x0076,0x0065,0x0049,0x006E,0x0074,0x0065,0x0067,0x0065,0x0072,0x00 }
+  , { 0x006D,0x0061,0x0078,0x004C,0x0065,0x006E,0x0067,0x0074,0x0068,0x0020,0x0056,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0062,0x0065,0x0020,0x0061,0x0020,0x006E,0x006F,0x006E,
+      0x004E,0x0065,0x0067,0x0061,0x0074,0x0069,0x0076,0x0065,0x0049,0x006E,0x0074,0x0065,0x0067,0x0065,0x0072,0x00 }
+  , { 0x006D,0x0069,0x006E,0x004C,0x0065,0x006E,0x0067,0x0074,0x0068,0x0020,0x0056,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0062,0x0065,0x0020,0x0061,0x0020,0x006E,0x006F,0x006E,
+      0x004E,0x0065,0x0067,0x0061,0x0074,0x0069,0x0076,0x0065,0x0049,0x006E,0x0074,0x0065,0x0067,0x0065,0x0072,0x00 }
+  , { 0x0049,0x0074,0x0020,0x0069,0x0073,0x0020,0x0061,0x006E,0x0020,0x0065,0x0072,0x0072,0x006F,0x0072,0x0020,0x0066,0x006F,0x0072,0x0020,0x0062,0x006F,0x0074,0x0068,0x0020,0x006C,0x0065,0x006E,0x0067,0x0074,0x0068,0x0020,0x0061,0x006E,0x0064,0x0020,
+      0x006D,0x0061,0x0078,0x004C,0x0065,0x006E,0x0067,0x0074,0x0068,0x0020,0x0074,0x006F,0x0020,0x0062,0x0065,0x0020,0x006D,0x0065,0x006D,0x0062,0x0065,0x0072,0x0073,0x0020,0x006F,0x0066,0x0020,0x0066,0x0061,0x0063,0x0065,0x0074,0x0073,0x00 }
+  , { 0x0049,0x0074,0x0020,0x0069,0x0073,0x0020,0x0061,0x006E,0x0020,0x0065,0x0072,0x0072,0x006F,0x0072,0x0020,0x0066,0x006F,0x0072,0x0020,0x0062,0x006F,0x0074,0x0068,0x0020,0x006C,0x0065,0x006E,0x0067,0x0074,0x0068,0x0020,0x0061,0x006E,0x0064,0x0020,
+      0x006D,0x0069,0x006E,0x004C,0x0065,0x006E,0x0067,0x0074,0x0068,0x0020,0x0074,0x006F,0x0020,0x0062,0x0065,0x0020,0x006D,0x0065,0x006D,0x0062,0x0065,0x0072,0x0073,0x0020,0x006F,0x0066,0x0020,0x0066,0x0061,0x0063,0x0065,0x0074,0x0073,0x00 }
+  , { 0x0056,0x0061,0x006C,0x0075,0x0065,0x0020,0x006F,0x0066,0x0020,0x006D,0x0061,0x0078,0x004C,0x0065,0x006E,0x0067,0x0074,0x0068,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0062,0x0065,0x0020,0x0067,0x0072,
+      0x0065,0x0061,0x0074,0x0065,0x0072,0x0020,0x0074,0x0068,0x0061,0x006E,0x0020,0x0074,0x0068,0x0065,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0020,0x006F,0x0066,0x0020,0x006D,0x0069,0x006E,0x004C,0x0065,0x006E,0x0067,0x0074,0x0068,0x0020,0x0027,
+      0x007B,0x0031,0x007D,0x0027,0x00 }
+  , { 0x004F,0x006E,0x006C,0x0079,0x0020,0x0063,0x006F,0x006E,0x0073,0x0074,0x0072,0x0061,0x0069,0x006E,0x0069,0x006E,0x0067,0x0020,0x0066,0x0061,0x0063,0x0065,0x0074,0x0020,0x0069,0x006E,0x0020,0x0062,0x006F,0x006F,0x006C,0x0065,0x0061,0x006E,0x0020,
+      0x0064,0x0061,0x0074,0x0061,0x0074,0x0079,0x0070,0x0065,0x0020,0x0069,0x0073,0x0020,0x0050,0x0041,0x0054,0x0054,0x0045,0x0052,0x004E,0x00 }
+  , { 0x0049,0x006E,0x0076,0x0061,0x006C,0x0069,0x0064,0x0020,0x0046,0x0061,0x0063,0x0065,0x0074,0x0020,0x0054,0x0061,0x0067,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x00 }
+  , { 0x0056,0x0061,0x006C,0x0075,0x0065,0x0020,0x006F,0x0066,0x0020,0x004C,0x0065,0x006E,0x0067,0x0074,0x0068,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0062,0x0065,0x0020,0x0065,0x0071,0x0075,0x0061,0x006C,
+      0x0020,0x0074,0x006F,0x0020,0x0074,0x0068,0x0065,0x0020,0x0062,0x0061,0x0073,0x0065,0x0020,0x004C,0x0065,0x006E,0x0067,0x0074,0x0068,0x0020,0x0027,0x007B,0x0031,0x007D,0x0027,0x00 }
+  , { 0x0056,0x0061,0x006C,0x0075,0x0065,0x0020,0x006F,0x0066,0x0020,0x006D,0x0069,0x006E,0x004C,0x0065,0x006E,0x0067,0x0074,0x0068,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0062,0x0065,0x0020,0x0067,0x0072,
+      0x0065,0x0061,0x0074,0x0065,0x0072,0x0020,0x0074,0x0068,0x0061,0x006E,0x0020,0x006F,0x0072,0x0020,0x0065,0x0071,0x0075,0x0061,0x006C,0x0020,0x0074,0x006F,0x0020,0x0074,0x0068,0x0065,0x0020,0x0062,0x0061,0x0073,0x0065,0x0020,0x006D,0x0069,0x006E,
+      0x004C,0x0065,0x006E,0x0067,0x0074,0x0068,0x0020,0x0027,0x007B,0x0031,0x007D,0x0027,0x00 }
+  , { 0x0056,0x0061,0x006C,0x0075,0x0065,0x0020,0x006F,0x0066,0x0020,0x006D,0x0069,0x006E,0x004C,0x0065,0x006E,0x0067,0x0074,0x0068,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0062,0x0065,0x0020,0x006C,0x0065,
+      0x0073,0x0073,0x0020,0x0074,0x0068,0x0061,0x006E,0x0020,0x006F,0x0072,0x0020,0x0065,0x0071,0x0075,0x0061,0x006C,0x0020,0x0074,0x006F,0x0020,0x0074,0x0068,0x0065,0x0020,0x0062,0x0061,0x0073,0x0065,0x0020,0x006D,0x0061,0x0078,0x004C,0x0065,0x006E,
+      0x0067,0x0074,0x0068,0x0020,0x0027,0x007B,0x0031,0x007D,0x0027,0x00 }
+  , { 0x0056,0x0061,0x006C,0x0075,0x0065,0x0020,0x006F,0x0066,0x0020,0x006D,0x0061,0x0078,0x004C,0x0065,0x006E,0x0067,0x0074,0x0068,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0062,0x0065,0x0020,0x006C,0x0065,
+      0x0073,0x0073,0x0020,0x0074,0x0068,0x0061,0x006E,0x0020,0x006F,0x0072,0x0020,0x0065,0x0071,0x0075,0x0061,0x006C,0x0020,0x0074,0x006F,0x0020,0x0074,0x0068,0x0065,0x0020,0x0062,0x0061,0x0073,0x0065,0x0020,0x006D,0x0061,0x0078,0x004C,0x0065,0x006E,
+      0x0067,0x0074,0x0068,0x0020,0x0027,0x007B,0x0031,0x007D,0x0027,0x00 }
+  , { 0x0056,0x0061,0x006C,0x0075,0x0065,0x0020,0x006F,0x0066,0x0020,0x006D,0x0061,0x0078,0x004C,0x0065,0x006E,0x0067,0x0074,0x0068,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0062,0x0065,0x0020,0x0067,0x0072,
+      0x0065,0x0061,0x0074,0x0065,0x0072,0x0020,0x0074,0x0068,0x0061,0x006E,0x0020,0x006F,0x0072,0x0020,0x0065,0x0071,0x0075,0x0061,0x006C,0x0020,0x0074,0x006F,0x0020,0x0074,0x0068,0x0065,0x0020,0x0062,0x0061,0x0073,0x0065,0x0020,0x006D,0x0069,0x006E,
+      0x004C,0x0065,0x006E,0x0067,0x0074,0x0068,0x0020,0x0027,0x007B,0x0031,0x007D,0x0027,0x00 }
+  , { 0x0056,0x0061,0x006C,0x0075,0x0065,0x0020,0x006F,0x0066,0x0020,0x004C,0x0065,0x006E,0x0067,0x0074,0x0068,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0062,0x0065,0x0020,0x0067,0x0072,0x0065,0x0061,0x0074,
+      0x0065,0x0072,0x0020,0x0074,0x0068,0x0061,0x006E,0x0020,0x006F,0x0072,0x0020,0x0065,0x0071,0x0075,0x0061,0x006C,0x0020,0x0074,0x006F,0x0020,0x0074,0x0068,0x0065,0x0020,0x0062,0x0061,0x0073,0x0065,0x0020,0x006D,0x0069,0x006E,0x004C,0x0065,0x006E,
+      0x0067,0x0074,0x0068,0x0020,0x0027,0x007B,0x0031,0x007D,0x0027,0x00 }
+  , { 0x0056,0x0061,0x006C,0x0075,0x0065,0x0020,0x006F,0x0066,0x0020,0x004C,0x0065,0x006E,0x0067,0x0074,0x0068,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0062,0x0065,0x0020,0x006C,0x0065,0x0073,0x0073,0x0020,
+      0x0074,0x0068,0x0061,0x006E,0x0020,0x006F,0x0072,0x0020,0x0065,0x0071,0x0075,0x0061,0x006C,0x0020,0x0074,0x006F,0x0020,0x0074,0x0068,0x0065,0x0020,0x0062,0x0061,0x0073,0x0065,0x0020,0x006D,0x0061,0x0078,0x004C,0x0065,0x006E,0x0067,0x0074,0x0068,
+      0x0020,0x0027,0x007B,0x0031,0x007D,0x0027,0x00 }
+  , { 0x0056,0x0061,0x006C,0x0075,0x0065,0x0020,0x006F,0x0066,0x0020,0x006D,0x0069,0x006E,0x004C,0x0065,0x006E,0x0067,0x0074,0x0068,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0062,0x0065,0x0020,0x006C,0x0065,
+      0x0073,0x0073,0x0020,0x0074,0x0068,0x0061,0x006E,0x0020,0x006F,0x0072,0x0020,0x0065,0x0071,0x0075,0x0061,0x006C,0x0020,0x0074,0x006F,0x0020,0x0074,0x0068,0x0065,0x0020,0x0062,0x0061,0x0073,0x0065,0x0020,0x004C,0x0065,0x006E,0x0067,0x0074,0x0068,
+      0x0020,0x0027,0x007B,0x0031,0x007D,0x0027,0x00 }
+  , { 0x0056,0x0061,0x006C,0x0075,0x0065,0x0020,0x006F,0x0066,0x0020,0x006D,0x0061,0x0078,0x004C,0x0065,0x006E,0x0067,0x0074,0x0068,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0062,0x0065,0x0020,0x0067,0x0072,
+      0x0065,0x0061,0x0074,0x0065,0x0072,0x0020,0x0074,0x0068,0x0061,0x006E,0x0020,0x006F,0x0072,0x0020,0x0065,0x0071,0x0075,0x0061,0x006C,0x0020,0x0074,0x006F,0x0020,0x0074,0x0068,0x0065,0x0020,0x0062,0x0061,0x0073,0x0065,0x0020,0x004C,0x0065,0x006E,
+      0x0067,0x0074,0x0068,0x0020,0x0027,0x007B,0x0031,0x007D,0x0027,0x00 }
+  , { 0x0056,0x0061,0x006C,0x0075,0x0065,0x0020,0x006F,0x0066,0x0020,0x0065,0x006E,0x0075,0x006D,0x0065,0x0072,0x0061,0x0074,0x0069,0x006F,0x006E,0x0020,0x003D,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0062,
+      0x0065,0x0020,0x0066,0x0072,0x006F,0x006D,0x0020,0x0074,0x0068,0x0065,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0020,0x0073,0x0070,0x0061,0x0063,0x0065,0x0020,0x006F,0x0066,0x0020,0x0062,0x0061,0x0073,0x0065,0x00 }
+  , { 0x0056,0x0061,0x006C,0x0075,0x0065,0x0020,0x006F,0x0066,0x0020,0x0077,0x0068,0x0069,0x0074,0x0065,0x0073,0x0070,0x0061,0x0063,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0062,0x0065,0x0020,0x006F,
+      0x006E,0x0065,0x0020,0x006F,0x0066,0x0020,0x0027,0x0070,0x0072,0x0065,0x0073,0x0065,0x0072,0x0076,0x0065,0x0027,0x002C,0x0020,0x0027,0x0072,0x0065,0x0070,0x006C,0x0061,0x0063,0x0065,0x0027,0x002C,0x0020,0x0027,0x0063,0x006F,0x006C,0x006C,0x0061,
+      0x0070,0x0073,0x0065,0x0027,0x00 }
+  , { 0x0049,0x0074,0x0020,0x0069,0x0073,0x0020,0x0061,0x006E,0x0020,0x0065,0x0072,0x0072,0x006F,0x0072,0x0020,0x0069,0x0066,0x0020,0x0077,0x0068,0x0069,0x0074,0x0065,0x0053,0x0070,0x0061,0x0063,0x0065,0x0020,0x003D,0x0020,0x0027,0x0070,0x0072,0x0065,
+      0x0073,0x0065,0x0072,0x0076,0x0065,0x0027,0x0020,0x006F,0x0072,0x0020,0x0027,0x0072,0x0065,0x0070,0x006C,0x0061,0x0063,0x0065,0x0027,0x0020,0x0061,0x006E,0x0064,0x0020,0x0062,0x0061,0x0073,0x0065,0x002E,0x0077,0x0068,0x0069,0x0074,0x0065,0x0053,
+      0x0070,0x0061,0x0063,0x0065,0x0020,0x003D,0x0020,0x0027,0x0063,0x006F,0x006C,0x006C,0x0061,0x0070,0x0073,0x0065,0x0027,0x002E,0x00 }
+  , { 0x0049,0x0074,0x0020,0x0069,0x0073,0x0020,0x0061,0x006E,0x0020,0x0065,0x0072,0x0072,0x006F,0x0072,0x0020,0x0069,0x0066,0x0020,0x0077,0x0068,0x0069,0x0074,0x0065,0x0053,0x0070,0x0061,0x0063,0x0065,0x0020,0x003D,0x0020,0x0027,0x0070,0x0072,0x0065,
+      0x0073,0x0065,0x0072,0x0076,0x0065,0x0027,0x0020,0x0061,0x006E,0x0064,0x0020,0x0062,0x0061,0x0073,0x0065,0x002E,0x0077,0x0068,0x0069,0x0074,0x0065,0x0053,0x0070,0x0061,0x0063,0x0065,0x0020,0x003D,0x0020,0x0027,0x0072,0x0065,0x0070,0x006C,0x0061,
+      0x0063,0x0065,0x0027,0x002E,0x00 }
+  , { 0x004D,0x0061,0x0078,0x0049,0x006E,0x0063,0x006C,0x0075,0x0073,0x0069,0x0076,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0069,0x0073,0x0020,0x0069,0x006E,0x0076,0x0061,0x006C,0x0069,0x0064,0x00 }
+  , { 0x004D,0x0061,0x0078,0x0045,0x0078,0x0063,0x006C,0x0075,0x0073,0x0069,0x0076,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0069,0x0073,0x0020,0x0069,0x006E,0x0076,0x0061,0x006C,0x0069,0x0064,0x00 }
+  , { 0x004D,0x0069,0x006E,0x0049,0x006E,0x0063,0x006C,0x0075,0x0073,0x0069,0x0076,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0069,0x0073,0x0020,0x0069,0x006E,0x0076,0x0061,0x006C,0x0069,0x0064,0x00 }
+  , { 0x004D,0x0069,0x006E,0x0045,0x0078,0x0063,0x006C,0x0075,0x0073,0x0069,0x0076,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0069,0x0073,0x0020,0x0069,0x006E,0x0076,0x0061,0x006C,0x0069,0x0064,0x00 }
+  , { 0x0054,0x006F,0x0074,0x0061,0x006C,0x0044,0x0069,0x0067,0x0069,0x0074,0x0020,0x0056,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0069,0x0073,0x0020,0x0069,0x006E,0x0076,0x0061,0x006C,0x0069,0x0064,0x00 }
+  , { 0x0046,0x0072,0x0061,0x0063,0x0074,0x0069,0x006F,0x006E,0x0044,0x0069,0x0067,0x0069,0x0074,0x0020,0x0056,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0069,0x0073,0x0020,0x0069,0x006E,0x0076,0x0061,0x006C,0x0069,
+      0x0064,0x00 }
+  , { 0x0054,0x006F,0x0074,0x0061,0x006C,0x0044,0x0069,0x0067,0x0069,0x0074,0x0020,0x0056,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0062,0x0065,0x0020,0x0061,0x0020,0x0050,0x006F,
+      0x0073,0x0069,0x0074,0x0069,0x0076,0x0065,0x0049,0x006E,0x0074,0x0065,0x0067,0x0065,0x0072,0x00 }
+  , { 0x0046,0x0072,0x0061,0x0063,0x0074,0x0069,0x006F,0x006E,0x0044,0x0069,0x0067,0x0069,0x0074,0x0020,0x0056,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0062,0x0065,0x0020,0x0061,
+      0x0020,0x006E,0x006F,0x006E,0x004E,0x0065,0x0067,0x0061,0x0074,0x0069,0x0076,0x0065,0x0049,0x006E,0x0074,0x0065,0x0067,0x0065,0x0072,0x00 }
+  , { 0x0049,0x0074,0x0020,0x0069,0x0073,0x0020,0x0061,0x006E,0x0020,0x0065,0x0072,0x0072,0x006F,0x0072,0x0020,0x0066,0x006F,0x0072,0x0020,0x0062,0x006F,0x0074,0x0068,0x0020,0x006D,0x0061,0x0078,0x0049,0x006E,0x0063,0x006C,0x0075,0x0073,0x0069,0x0076,
+      0x0065,0x0020,0x0061,0x006E,0x0064,0x0020,0x006D,0x0061,0x0078,0x0045,0x0078,0x0063,0x006C,0x0075,0x0073,0x0069,0x0076,0x0065,0x0020,0x0074,0x006F,0x0020,0x0062,0x0065,0x0020,0x0073,0x0070,0x0065,0x0063,0x0069,0x0066,0x0069,0x0065,0x0064,0x0020,
+      0x0066,0x006F,0x0072,0x0020,0x0074,0x0068,0x0065,0x0020,0x0073,0x0061,0x006D,0x0065,0x0020,0x0064,0x0061,0x0074,0x0061,0x0074,0x0079,0x0070,0x0065,0x00 }
+  , { 0x0049,0x0074,0x0020,0x0069,0x0073,0x0020,0x0061,0x006E,0x0020,0x0065,0x0072,0x0072,0x006F,0x0072,0x0020,0x0066,0x006F,0x0072,0x0020,0x0062,0x006F,0x0074,0x0068,0x0020,0x006D,0x0069,0x006E,0x0049,0x006E,0x0063,0x006C,0x0075,0x0073,0x0069,0x0076,
+      0x0065,0x0020,0x0061,0x006E,0x0064,0x0020,0x006D,0x0069,0x006E,0x0045,0x0078,0x0063,0x006C,0x0075,0x0073,0x0069,0x0076,0x0065,0x0020,0x0074,0x006F,0x0020,0x0062,0x0065,0x0020,0x0073,0x0070,0x0065,0x0063,0x0069,0x0066,0x0069,0x0065,0x0064,0x0020,
+      0x0066,0x006F,0x0072,0x0020,0x0074,0x0068,0x0065,0x0020,0x0073,0x0061,0x006D,0x0065,0x0020,0x0064,0x0061,0x0074,0x0061,0x0074,0x0079,0x0070,0x0065,0x00 }
+  , { 0x006D,0x0061,0x0078,0x0045,0x0078,0x0063,0x006C,0x0075,0x0073,0x0069,0x0076,0x0065,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0062,0x0065,0x0020,0x0067,0x0072,
+      0x0065,0x0061,0x0074,0x0065,0x0072,0x0020,0x0074,0x0068,0x0061,0x006E,0x0020,0x006D,0x0069,0x006E,0x0045,0x0078,0x0063,0x006C,0x0075,0x0073,0x0069,0x0076,0x0065,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x007B,0x0031,0x007D,0x0027,
+      0x00 }
+  , { 0x006D,0x0061,0x0078,0x0045,0x0078,0x0063,0x006C,0x0075,0x0073,0x0069,0x0076,0x0065,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0062,0x0065,0x0020,0x0067,0x0072,
+      0x0065,0x0061,0x0074,0x0065,0x0072,0x0020,0x0074,0x0068,0x0061,0x006E,0x0020,0x006D,0x0069,0x006E,0x0049,0x006E,0x0063,0x006C,0x0075,0x0073,0x0069,0x0076,0x0065,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x007B,0x0031,0x007D,0x0027,
+      0x00 }
+  , { 0x006D,0x0061,0x0078,0x0049,0x006E,0x0063,0x006C,0x0075,0x0073,0x0069,0x0076,0x0065,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0062,0x0065,0x0020,0x0067,0x0072,
+      0x0065,0x0061,0x0074,0x0065,0x0072,0x0020,0x0074,0x0068,0x0061,0x006E,0x0020,0x006D,0x0069,0x006E,0x0045,0x0078,0x0063,0x006C,0x0075,0x0073,0x0069,0x0076,0x0065,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x007B,0x0031,0x007D,0x0027,
+      0x00 }
+  , { 0x006D,0x0061,0x0078,0x0049,0x006E,0x0063,0x006C,0x0075,0x0073,0x0069,0x0076,0x0065,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0062,0x0065,0x0020,0x0067,0x0072,
+      0x0065,0x0061,0x0074,0x0065,0x0072,0x0020,0x0074,0x0068,0x0061,0x006E,0x0020,0x006D,0x0069,0x006E,0x0049,0x006E,0x0063,0x006C,0x0075,0x0073,0x0069,0x0076,0x0065,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x007B,0x0031,0x007D,0x0027,
+      0x00 }
+  , { 0x0054,0x006F,0x0074,0x0061,0x006C,0x0044,0x0069,0x0067,0x0069,0x0074,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0062,0x0065,0x0020,0x0067,0x0072,0x0065,0x0061,
+      0x0074,0x0065,0x0072,0x0020,0x0074,0x0068,0x0061,0x006E,0x0020,0x0046,0x0072,0x0061,0x0063,0x0074,0x0069,0x006F,0x006E,0x0044,0x0069,0x0067,0x0069,0x0074,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x007B,0x0031,0x007D,0x0027,0x00 }
+  , { 0x006D,0x0061,0x0078,0x0049,0x006E,0x0063,0x006C,0x0075,0x0073,0x0069,0x0076,0x0065,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0062,0x0065,0x0020,0x006C,0x0065,
+      0x0073,0x0073,0x0020,0x0074,0x0068,0x0061,0x006E,0x0020,0x0062,0x0061,0x0073,0x0065,0x0027,0x0073,0x0020,0x006D,0x0061,0x0078,0x0045,0x0078,0x0063,0x006C,0x0075,0x0073,0x0069,0x0076,0x0065,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,
+      0x007B,0x0031,0x007D,0x0027,0x00 }
+  , { 0x006D,0x0061,0x0078,0x0049,0x006E,0x0063,0x006C,0x0075,0x0073,0x0069,0x0076,0x0065,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0062,0x0065,0x0020,0x006C,0x0065,
+      0x0073,0x0073,0x0020,0x0074,0x0068,0x0061,0x006E,0x0020,0x006F,0x0072,0x0020,0x0065,0x0071,0x0075,0x0061,0x006C,0x0020,0x0074,0x006F,0x0020,0x0062,0x0061,0x0073,0x0065,0x0027,0x0073,0x0020,0x006D,0x0061,0x0078,0x0049,0x006E,0x0063,0x006C,0x0075,
+      0x0073,0x0069,0x0076,0x0065,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x007B,0x0031,0x007D,0x0027,0x00 }
+  , { 0x006D,0x0061,0x0078,0x0049,0x006E,0x0063,0x006C,0x0075,0x0073,0x0069,0x0076,0x0065,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0062,0x0065,0x0020,0x0067,0x0072,
+      0x0065,0x0061,0x0074,0x0065,0x0072,0x0020,0x0074,0x0068,0x0061,0x006E,0x0020,0x006F,0x0072,0x0020,0x0065,0x0071,0x0075,0x0061,0x006C,0x0020,0x0074,0x006F,0x0020,0x0062,0x0061,0x0073,0x0065,0x0027,0x0073,0x0020,0x006D,0x0069,0x006E,0x0049,0x006E,
+      0x0063,0x006C,0x0075,0x0073,0x0069,0x0076,0x0065,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x007B,0x0031,0x007D,0x0027,0x00 }
+  , { 0x006D,0x0061,0x0078,0x0049,0x006E,0x0063,0x006C,0x0075,0x0073,0x0069,0x0076,0x0065,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0062,0x0065,0x0020,0x0067,0x0072,
+      0x0065,0x0061,0x0074,0x0065,0x0072,0x0020,0x0074,0x0068,0x0061,0x006E,0x0020,0x0062,0x0061,0x0073,0x0065,0x0027,0x0073,0x0020,0x006D,0x0069,0x006E,0x0045,0x0078,0x0063,0x006C,0x0075,0x0073,0x0069,0x0076,0x0065,0x0020,0x0076,0x0061,0x006C,0x0075,
+      0x0065,0x0020,0x0027,0x007B,0x0031,0x007D,0x0027,0x00 }
+  , { 0x006D,0x0061,0x0078,0x0045,0x0078,0x0063,0x006C,0x0075,0x0073,0x0069,0x0076,0x0065,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0062,0x0065,0x0020,0x006C,0x0065,
+      0x0073,0x0073,0x0020,0x0074,0x0068,0x0061,0x006E,0x0020,0x006F,0x0072,0x0020,0x0065,0x0071,0x0075,0x0061,0x006C,0x0020,0x0074,0x006F,0x0020,0x0062,0x0061,0x0073,0x0065,0x0027,0x0073,0x0020,0x006D,0x0061,0x0078,0x0045,0x0078,0x0063,0x006C,0x0075,
+      0x0073,0x0069,0x0076,0x0065,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x007B,0x0031,0x007D,0x0027,0x00 }
+  , { 0x006D,0x0061,0x0078,0x0045,0x0078,0x0063,0x006C,0x0075,0x0073,0x0069,0x0076,0x0065,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0062,0x0065,0x0020,0x006C,0x0065,
+      0x0073,0x0073,0x0020,0x0074,0x0068,0x0061,0x006E,0x0020,0x006F,0x0072,0x0020,0x0065,0x0071,0x0075,0x0061,0x006C,0x0020,0x0074,0x006F,0x0020,0x0062,0x0061,0x0073,0x0065,0x0027,0x0073,0x0020,0x006D,0x0061,0x0078,0x0049,0x006E,0x0063,0x006C,0x0075,
+      0x0073,0x0069,0x0076,0x0065,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x007B,0x0031,0x007D,0x0027,0x00 }
+  , { 0x006D,0x0061,0x0078,0x0045,0x0078,0x0063,0x006C,0x0075,0x0073,0x0069,0x0076,0x0065,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0062,0x0065,0x0020,0x0067,0x0072,
+      0x0065,0x0061,0x0074,0x0065,0x0072,0x0020,0x0074,0x0068,0x0061,0x006E,0x0020,0x0062,0x0061,0x0073,0x0065,0x0027,0x0073,0x0020,0x006D,0x0069,0x006E,0x0049,0x006E,0x0063,0x006C,0x0075,0x0073,0x0069,0x0076,0x0065,0x0020,0x0076,0x0061,0x006C,0x0075,
+      0x0065,0x0020,0x0027,0x007B,0x0031,0x007D,0x0027,0x00 }
+  , { 0x006D,0x0061,0x0078,0x0045,0x0078,0x0063,0x006C,0x0075,0x0073,0x0069,0x0076,0x0065,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0062,0x0065,0x0020,0x0067,0x0072,
+      0x0065,0x0061,0x0074,0x0065,0x0072,0x0020,0x0074,0x0068,0x0061,0x006E,0x0020,0x0062,0x0061,0x0073,0x0065,0x0027,0x0073,0x0020,0x006D,0x0069,0x006E,0x0045,0x0078,0x0063,0x006C,0x0075,0x0073,0x0069,0x0076,0x0065,0x0020,0x0076,0x0061,0x006C,0x0075,
+      0x0065,0x0020,0x0027,0x007B,0x0031,0x007D,0x0027,0x00 }
+  , { 0x006D,0x0069,0x006E,0x0045,0x0078,0x0063,0x006C,0x0075,0x0073,0x0069,0x0076,0x0065,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0062,0x0065,0x0020,0x006C,0x0065,
+      0x0073,0x0073,0x0020,0x0074,0x0068,0x0061,0x006E,0x0020,0x0062,0x0061,0x0073,0x0065,0x0027,0x0073,0x0020,0x006D,0x0061,0x0078,0x0045,0x0078,0x0063,0x006C,0x0075,0x0073,0x0069,0x0076,0x0065,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,
+      0x007B,0x0031,0x007D,0x0027,0x00 }
+  , { 0x006D,0x0069,0x006E,0x0045,0x0078,0x0063,0x006C,0x0075,0x0073,0x0069,0x0076,0x0065,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0062,0x0065,0x0020,0x006C,0x0065,
+      0x0073,0x0073,0x0020,0x0074,0x0068,0x0061,0x006E,0x0020,0x006F,0x0072,0x0020,0x0065,0x0071,0x0075,0x0061,0x006C,0x0020,0x0074,0x006F,0x0020,0x0062,0x0061,0x0073,0x0065,0x0027,0x0073,0x0020,0x006D,0x0061,0x0078,0x0049,0x006E,0x0063,0x006C,0x0075,
+      0x0073,0x0069,0x0076,0x0065,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x007B,0x0031,0x007D,0x0027,0x00 }
+  , { 0x006D,0x0069,0x006E,0x0045,0x0078,0x0063,0x006C,0x0075,0x0073,0x0069,0x0076,0x0065,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0062,0x0065,0x0020,0x0067,0x0072,
+      0x0065,0x0061,0x0074,0x0065,0x0072,0x0020,0x0074,0x0068,0x0061,0x006E,0x0020,0x0062,0x0061,0x0073,0x0065,0x0027,0x0073,0x0020,0x006D,0x0069,0x006E,0x0049,0x006E,0x0063,0x006C,0x0075,0x0073,0x0069,0x0076,0x0065,0x0020,0x0076,0x0061,0x006C,0x0075,
+      0x0065,0x0020,0x0027,0x007B,0x0031,0x007D,0x0027,0x00 }
+  , { 0x006D,0x0069,0x006E,0x0045,0x0078,0x0063,0x006C,0x0075,0x0073,0x0069,0x0076,0x0065,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0062,0x0065,0x0020,0x0067,0x0072,
+      0x0065,0x0061,0x0074,0x0065,0x0072,0x0020,0x0074,0x0068,0x0061,0x006E,0x0020,0x0062,0x0061,0x0073,0x0065,0x0027,0x0073,0x0020,0x006D,0x0069,0x006E,0x0045,0x0078,0x0063,0x006C,0x0075,0x0073,0x0069,0x0076,0x0065,0x0020,0x0076,0x0061,0x006C,0x0075,
+      0x0065,0x0020,0x0027,0x007B,0x0031,0x007D,0x0027,0x00 }
+  , { 0x006D,0x0069,0x006E,0x0049,0x006E,0x0063,0x006C,0x0075,0x0073,0x0069,0x0076,0x0065,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0062,0x0065,0x0020,0x006C,0x0065,
+      0x0073,0x0073,0x0020,0x0074,0x0068,0x0061,0x006E,0x0020,0x0062,0x0061,0x0073,0x0065,0x0027,0x0073,0x0020,0x006D,0x0061,0x0078,0x0045,0x0078,0x0063,0x006C,0x0075,0x0073,0x0069,0x0076,0x0065,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,
+      0x007B,0x0031,0x007D,0x0027,0x00 }
+  , { 0x006D,0x0069,0x006E,0x0049,0x006E,0x0063,0x006C,0x0075,0x0073,0x0069,0x0076,0x0065,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0062,0x0065,0x0020,0x006C,0x0065,
+      0x0073,0x0073,0x0020,0x0074,0x0068,0x0061,0x006E,0x0020,0x006F,0x0072,0x0020,0x0065,0x0071,0x0075,0x0061,0x006C,0x0020,0x0074,0x006F,0x0020,0x0062,0x0061,0x0073,0x0065,0x0027,0x0073,0x0020,0x006D,0x0061,0x0078,0x0049,0x006E,0x0063,0x006C,0x0075,
+      0x0073,0x0069,0x0076,0x0065,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x007B,0x0031,0x007D,0x0027,0x00 }
+  , { 0x006D,0x0069,0x006E,0x0049,0x006E,0x0063,0x006C,0x0075,0x0073,0x0069,0x0076,0x0065,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0062,0x0065,0x0020,0x0067,0x0072,
+      0x0065,0x0061,0x0074,0x0065,0x0072,0x0020,0x0074,0x0068,0x0061,0x006E,0x0020,0x006F,0x0072,0x0020,0x0065,0x0071,0x0075,0x0061,0x006C,0x0020,0x0074,0x006F,0x0020,0x0062,0x0061,0x0073,0x0065,0x0027,0x0073,0x0020,0x006D,0x0069,0x006E,0x0049,0x006E,
+      0x0063,0x006C,0x0075,0x0073,0x0069,0x0076,0x0065,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x007B,0x0031,0x007D,0x0027,0x00 }
+  , { 0x006D,0x0069,0x006E,0x0049,0x006E,0x0063,0x006C,0x0075,0x0073,0x0069,0x0076,0x0065,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0062,0x0065,0x0020,0x0067,0x0072,
+      0x0065,0x0061,0x0074,0x0065,0x0072,0x0020,0x0074,0x0068,0x0061,0x006E,0x0020,0x0062,0x0061,0x0073,0x0065,0x0027,0x0073,0x0020,0x006D,0x0069,0x006E,0x0045,0x0078,0x0063,0x006C,0x0075,0x0073,0x0069,0x0076,0x0065,0x0020,0x0076,0x0061,0x006C,0x0075,
+      0x0065,0x0020,0x0027,0x007B,0x0031,0x007D,0x0027,0x00 }
+  , { 0x006D,0x0061,0x0078,0x0049,0x006E,0x0063,0x006C,0x0075,0x0073,0x0069,0x0076,0x0065,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0062,0x0065,0x0020,0x0066,0x0072,
+      0x006F,0x006D,0x0020,0x0074,0x0068,0x0065,0x0020,0x0062,0x0061,0x0073,0x0065,0x0027,0x0073,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0020,0x0073,0x0070,0x0061,0x0063,0x0065,0x00 }
+  , { 0x006D,0x0061,0x0078,0x0045,0x0078,0x0063,0x006C,0x0075,0x0073,0x0069,0x0076,0x0065,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0062,0x0065,0x0020,0x0066,0x0072,
+      0x006F,0x006D,0x0020,0x0074,0x0068,0x0065,0x0020,0x0062,0x0061,0x0073,0x0065,0x0027,0x0073,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0020,0x0073,0x0070,0x0061,0x0063,0x0065,0x00 }
+  , { 0x006D,0x0069,0x006E,0x0049,0x006E,0x0063,0x006C,0x0075,0x0073,0x0069,0x0076,0x0065,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0062,0x0065,0x0020,0x0066,0x0072,
+      0x006F,0x006D,0x0020,0x0074,0x0068,0x0065,0x0020,0x0062,0x0061,0x0073,0x0065,0x0027,0x0073,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0020,0x0073,0x0070,0x0061,0x0063,0x0065,0x00 }
+  , { 0x006D,0x0069,0x006E,0x0045,0x0078,0x0063,0x006C,0x0075,0x0073,0x0069,0x0076,0x0065,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0062,0x0065,0x0020,0x0066,0x0072,
+      0x006F,0x006D,0x0020,0x0074,0x0068,0x0065,0x0020,0x0062,0x0061,0x0073,0x0065,0x0027,0x0073,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0020,0x0073,0x0070,0x0061,0x0063,0x0065,0x00 }
+  , { 0x0074,0x006F,0x0074,0x0061,0x006C,0x0044,0x0069,0x0067,0x0069,0x0074,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0062,0x0065,0x0020,0x006C,0x0065,0x0073,0x0073,
+      0x0020,0x0074,0x0068,0x0061,0x006E,0x0020,0x006F,0x0072,0x0020,0x0065,0x0071,0x0075,0x0061,0x006C,0x0020,0x0074,0x006F,0x0020,0x0062,0x0061,0x0073,0x0065,0x0027,0x0073,0x0020,0x0074,0x006F,0x0074,0x0061,0x006C,0x0044,0x0069,0x0067,0x0069,0x0074,
+      0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x007B,0x0031,0x007D,0x0027,0x00 }
+  , { 0x0066,0x0072,0x0061,0x0063,0x0074,0x0044,0x0069,0x0067,0x0069,0x0074,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0062,0x0065,0x0020,0x006C,0x0065,0x0073,0x0073,
+      0x0020,0x0074,0x0068,0x0061,0x006E,0x0020,0x006F,0x0072,0x0020,0x0065,0x0071,0x0075,0x0061,0x006C,0x0020,0x0074,0x006F,0x0020,0x0062,0x0061,0x0073,0x0065,0x0027,0x0073,0x0020,0x0074,0x006F,0x0074,0x0061,0x006C,0x0044,0x0069,0x0067,0x0069,0x0074,
+      0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x007B,0x0031,0x007D,0x0027,0x00 }
+  , { 0x0066,0x0072,0x0061,0x0063,0x0074,0x0044,0x0069,0x0067,0x0069,0x0074,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0062,0x0065,0x0020,0x006C,0x0065,0x0073,0x0073,
+      0x0020,0x0074,0x0068,0x0061,0x006E,0x0020,0x006F,0x0072,0x0020,0x0065,0x0071,0x0075,0x0061,0x006C,0x0020,0x0074,0x006F,0x0020,0x0062,0x0061,0x0073,0x0065,0x0027,0x0073,0x0020,0x0066,0x0072,0x0061,0x0063,0x0074,0x0044,0x0069,0x0067,0x0069,0x0074,
+      0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x007B,0x0031,0x007D,0x0027,0x00 }
+  , { 0x006D,0x0061,0x0078,0x0049,0x006E,0x0063,0x006C,0x0075,0x0073,0x0069,0x0076,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0062,0x0065,0x0020,0x0065,0x0071,0x0075,0x0061,0x006C,0x0020,0x0074,0x006F,
+      0x0020,0x0062,0x0061,0x0073,0x0065,0x0027,0x0073,0x0020,0x006D,0x0061,0x0078,0x0049,0x006E,0x0063,0x006C,0x0075,0x0073,0x0069,0x0076,0x0065,0x0020,0x0027,0x007B,0x0031,0x007D,0x0027,0x0020,0x002C,0x0020,0x0066,0x0069,0x0078,0x0065,0x0064,0x00 }
+  , { 0x006D,0x0061,0x0078,0x0045,0x0078,0x0063,0x006C,0x0075,0x0073,0x0069,0x0076,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0062,0x0065,0x0020,0x0065,0x0071,0x0075,0x0061,0x006C,0x0020,0x0074,0x006F,
+      0x0020,0x0062,0x0061,0x0073,0x0065,0x0027,0x0073,0x0020,0x006D,0x0061,0x0078,0x0045,0x0078,0x0063,0x006C,0x0075,0x0073,0x0069,0x0076,0x0065,0x0020,0x0027,0x007B,0x0031,0x007D,0x0027,0x0020,0x002C,0x0020,0x0066,0x0069,0x0078,0x0065,0x0064,0x00 }
+  , { 0x006D,0x0069,0x006E,0x0049,0x006E,0x0063,0x006C,0x0075,0x0073,0x0069,0x0076,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0062,0x0065,0x0020,0x0065,0x0071,0x0075,0x0061,0x006C,0x0020,0x0074,0x006F,
+      0x0020,0x0062,0x0061,0x0073,0x0065,0x0027,0x0073,0x0020,0x006D,0x0069,0x006E,0x0049,0x006E,0x0063,0x006C,0x0075,0x0073,0x0069,0x0076,0x0065,0x0020,0x0027,0x007B,0x0031,0x007D,0x0027,0x0020,0x002C,0x0020,0x0066,0x0069,0x0078,0x0065,0x0064,0x00 }
+  , { 0x006D,0x0069,0x006E,0x0045,0x0078,0x0063,0x006C,0x0075,0x0073,0x0069,0x0076,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0062,0x0065,0x0020,0x0065,0x0071,0x0075,0x0061,0x006C,0x0020,0x0074,0x006F,
+      0x0020,0x0062,0x0061,0x0073,0x0065,0x0027,0x0073,0x0020,0x006D,0x0069,0x006E,0x0045,0x0078,0x0063,0x006C,0x0075,0x0073,0x0069,0x0076,0x0065,0x0020,0x0027,0x007B,0x0031,0x007D,0x0027,0x0020,0x002C,0x0020,0x0066,0x0069,0x0078,0x0065,0x0064,0x00 }
+  , { 0x0074,0x006F,0x0074,0x0061,0x006C,0x0044,0x0069,0x0067,0x0069,0x0074,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0062,0x0065,0x0020,0x0065,0x0071,0x0075,0x0061,0x006C,0x0020,0x0074,0x006F,0x0020,0x0062,
+      0x0061,0x0073,0x0065,0x0027,0x0073,0x0020,0x0074,0x006F,0x0074,0x0061,0x006C,0x0044,0x0069,0x0067,0x0069,0x0074,0x0020,0x0027,0x007B,0x0031,0x007D,0x0027,0x0020,0x0020,0x002C,0x0020,0x0066,0x0069,0x0078,0x0065,0x0064,0x00 }
+  , { 0x0066,0x0072,0x0061,0x0063,0x0074,0x0044,0x0069,0x0067,0x0069,0x0074,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0062,0x0065,0x0020,0x0065,0x0071,0x0075,0x0061,0x006C,0x0020,0x0074,0x006F,0x0020,0x0062,
+      0x0061,0x0073,0x0065,0x0027,0x0073,0x0020,0x0066,0x0072,0x0061,0x0063,0x0074,0x0044,0x0069,0x0067,0x0069,0x0074,0x0020,0x0027,0x007B,0x0031,0x007D,0x0027,0x0020,0x002C,0x0020,0x0066,0x0069,0x0078,0x0065,0x0064,0x00 }
+  , { 0x006D,0x0061,0x0078,0x004C,0x0065,0x006E,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0062,0x0065,0x0020,0x0065,0x0071,0x0075,0x0061,0x006C,0x0020,0x0074,0x006F,0x0020,0x0062,0x0061,0x0073,0x0065,0x0027,
+      0x0073,0x0020,0x006D,0x0061,0x0078,0x004C,0x0065,0x006E,0x0020,0x0027,0x007B,0x0031,0x007D,0x0027,0x0020,0x002C,0x0020,0x0066,0x0069,0x0078,0x0065,0x0064,0x00 }
+  , { 0x006D,0x0069,0x006E,0x004C,0x0065,0x006E,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0062,0x0065,0x0020,0x0065,0x0071,0x0075,0x0061,0x006C,0x0020,0x0074,0x006F,0x0020,0x0062,0x0061,0x0073,0x0065,0x0027,
+      0x0073,0x0020,0x006D,0x0069,0x006E,0x004C,0x0065,0x006E,0x0020,0x0027,0x007B,0x0031,0x007D,0x0027,0x0020,0x002C,0x0020,0x0066,0x0069,0x0078,0x0065,0x0064,0x00 }
+  , { 0x006C,0x0065,0x006E,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0062,0x0065,0x0020,0x0065,0x0071,0x0075,0x0061,0x006C,0x0020,0x0074,0x006F,0x0020,0x0062,0x0061,0x0073,0x0065,0x0027,0x0073,0x0020,0x006C,
+      0x0065,0x006E,0x0020,0x0027,0x007B,0x0031,0x007D,0x0027,0x0020,0x002C,0x0020,0x0066,0x0069,0x0078,0x0065,0x0064,0x00 }
+  , { 0x0077,0x0068,0x0069,0x0074,0x0065,0x0073,0x0070,0x0061,0x0063,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0062,0x0065,0x0020,0x0065,0x0071,0x0075,0x0061,0x006C,0x0020,0x0074,0x006F,0x0020,0x0062,
+      0x0061,0x0073,0x0065,0x0027,0x0073,0x0020,0x0077,0x0068,0x0069,0x0074,0x0065,0x0073,0x0070,0x0061,0x0063,0x0065,0x0020,0x0027,0x007B,0x0031,0x007D,0x0027,0x0020,0x002C,0x0020,0x0066,0x0069,0x0078,0x0065,0x0064,0x00 }
+  , { 0x0069,0x006E,0x0074,0x0065,0x0072,0x006E,0x0061,0x006C,0x0020,0x0045,0x0072,0x0072,0x006F,0x0072,0x003A,0x0020,0x0066,0x0069,0x0078,0x0065,0x0064,0x00 }
+  , { 0x0073,0x0069,0x006D,0x0070,0x006C,0x0065,0x0054,0x0079,0x0070,0x0065,0x0020,0x006C,0x0069,0x0073,0x0074,0x0027,0x0073,0x0020,0x0027,0x0069,0x0074,0x0065,0x006D,0x0054,0x0079,0x0070,0x0065,0x0027,0x0020,0x0069,0x0073,0x0020,0x0065,0x006D,0x0070,
+      0x0074,0x0079,0x002E,0x00 }
+  , { 0x0073,0x0069,0x006D,0x0070,0x006C,0x0065,0x0054,0x0079,0x0070,0x0065,0x0020,0x0075,0x006E,0x0069,0x006F,0x006E,0x0027,0x0073,0x0020,0x0027,0x006D,0x0065,0x006D,0x0062,0x0065,0x0072,0x0054,0x0079,0x0070,0x0065,0x0073,0x0027,0x0020,0x0069,0x0073,
+      0x0020,0x0065,0x006D,0x0070,0x0074,0x0079,0x002E,0x00 }
+  , { 0x0073,0x0069,0x006D,0x0070,0x006C,0x0065,0x0054,0x0079,0x0070,0x0065,0x0020,0x0072,0x0065,0x0073,0x0074,0x0072,0x0069,0x0063,0x0074,0x0069,0x006F,0x006E,0x0027,0x0073,0x0020,0x0075,0x006E,0x0069,0x006F,0x006E,0x0020,0x0027,0x0062,0x0061,0x0073,
+      0x0065,0x0027,0x0020,0x0069,0x0073,0x0020,0x0065,0x006D,0x0070,0x0074,0x0079,0x002E,0x00 }
+  , { 0x0073,0x0069,0x006D,0x0070,0x006C,0x0065,0x0054,0x0079,0x0070,0x0065,0x0020,0x0072,0x0065,0x0073,0x0074,0x0072,0x0069,0x0063,0x0074,0x0069,0x006F,0x006E,0x0027,0x0073,0x0020,0x0075,0x006E,0x0069,0x006F,0x006E,0x0020,0x0027,0x0062,0x0061,0x0073,
+      0x0065,0x0027,0x0020,0x0074,0x0079,0x0070,0x0065,0x0020,0x0069,0x0073,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0069,0x006E,0x0073,0x0074,0x0065,0x0061,0x0064,0x0020,0x006F,0x0066,0x0020,0x0075,0x006E,0x0069,0x006F,0x006E,0x002E,0x00 }
+  , { 0x0056,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0064,0x006F,0x0065,0x0073,0x0020,0x006E,0x006F,0x0074,0x0020,0x006D,0x0061,0x0074,0x0063,0x0068,0x0020,0x0072,0x0065,0x0067,0x0075,0x006C,0x0061,0x0072,0x0020,
+      0x0065,0x0078,0x0070,0x0072,0x0065,0x0073,0x0073,0x0069,0x006F,0x006E,0x0020,0x0066,0x0061,0x0063,0x0065,0x0074,0x0020,0x0027,0x007B,0x0031,0x007D,0x0027,0x00 }
+  , { 0x0056,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0069,0x0073,0x0020,0x006E,0x006F,0x0074,0x0020,0x0065,0x006E,0x0063,0x006F,0x0064,0x0065,0x0064,0x0020,0x0069,0x006E,0x0020,0x0042,0x0061,0x0073,0x0065,0x0036,
+      0x0034,0x0020,0x00 }
+  , { 0x0056,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0069,0x0073,0x0020,0x006E,0x006F,0x0074,0x0020,0x0065,0x006E,0x0063,0x006F,0x0064,0x0065,0x0064,0x0020,0x0069,0x006E,0x0020,0x0048,0x0065,0x0078,0x0042,0x0069,
+      0x006E,0x0020,0x00 }
+  , { 0x0056,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0077,0x0069,0x0074,0x0068,0x0020,0x006C,0x0065,0x006E,0x0067,0x0074,0x0068,0x0020,0x0027,0x007B,0x0031,0x007D,0x0027,0x0020,0x0065,0x0078,0x0063,0x0065,0x0065,
+      0x0064,0x0073,0x0020,0x006D,0x0061,0x0078,0x0069,0x006D,0x0075,0x006D,0x0020,0x006C,0x0065,0x006E,0x0067,0x0074,0x0068,0x0020,0x0066,0x0061,0x0063,0x0065,0x0074,0x0020,0x006F,0x0066,0x0020,0x0027,0x007B,0x0032,0x007D,0x0027,0x0020,0x00 }
+  , { 0x0056,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0077,0x0069,0x0074,0x0068,0x0020,0x006C,0x0065,0x006E,0x0067,0x0074,0x0068,0x0020,0x0027,0x007B,0x0031,0x007D,0x0027,0x0020,0x0069,0x0073,0x0020,0x006C,0x0065,
+      0x0073,0x0073,0x0020,0x0074,0x0068,0x0061,0x006E,0x0020,0x006D,0x0069,0x006E,0x0069,0x006D,0x0075,0x006D,0x0020,0x006C,0x0065,0x006E,0x0067,0x0074,0x0068,0x0020,0x0066,0x0061,0x0063,0x0065,0x0074,0x0020,0x006F,0x0066,0x0020,0x0027,0x007B,0x0032,
+      0x007D,0x0027,0x0020,0x00 }
+  , { 0x0056,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0077,0x0069,0x0074,0x0068,0x0020,0x006C,0x0065,0x006E,0x0067,0x0074,0x0068,0x0020,0x0027,0x007B,0x0031,0x007D,0x0027,0x0020,0x0069,0x0073,0x0020,0x006E,0x006F,
+      0x0074,0x0020,0x0065,0x0071,0x0075,0x0061,0x006C,0x0020,0x0074,0x006F,0x0020,0x006C,0x0065,0x006E,0x0067,0x0074,0x0068,0x0020,0x0066,0x0061,0x0063,0x0065,0x0074,0x0020,0x006F,0x0066,0x0020,0x0027,0x007B,0x0032,0x007D,0x0027,0x0020,0x00 }
+  , { 0x0056,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0069,0x0073,0x0020,0x006E,0x006F,0x0074,0x0020,0x0069,0x006E,0x0020,0x0065,0x006E,0x0075,0x006D,0x0065,0x0072,0x0061,0x0074,0x0069,0x006F,0x006E,0x0020,0x00 }
+  , { 0x0056,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0077,0x0069,0x0074,0x0068,0x0020,0x0074,0x006F,0x0074,0x0061,0x006C,0x0020,0x0064,0x0069,0x0067,0x0069,0x0074,0x0073,0x0020,0x0027,0x007B,0x0031,0x007D,0x0027,
+      0x0020,0x0065,0x0078,0x0063,0x0065,0x0065,0x0064,0x0073,0x0020,0x0074,0x006F,0x0074,0x0061,0x006C,0x0020,0x0064,0x0069,0x0067,0x0069,0x0074,0x0020,0x0066,0x0061,0x0063,0x0065,0x0074,0x0020,0x006F,0x0066,0x0020,0x0027,0x007B,0x0032,0x007D,0x0027,
+      0x0020,0x00 }
+  , { 0x0056,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0077,0x0069,0x0074,0x0068,0x0020,0x0066,0x0072,0x0061,0x0063,0x0074,0x0069,0x006F,0x006E,0x0020,0x0064,0x0069,0x0067,0x0069,0x0074,0x0073,0x0020,0x0027,0x007B,
+      0x0031,0x007D,0x0027,0x0020,0x0065,0x0078,0x0063,0x0065,0x0065,0x0064,0x0073,0x0020,0x0066,0x0072,0x0061,0x0063,0x0074,0x0069,0x006F,0x006E,0x0020,0x0064,0x0069,0x0067,0x0069,0x0074,0x0020,0x0066,0x0061,0x0063,0x0065,0x0074,0x0020,0x006F,0x0066,
+      0x0020,0x0027,0x007B,0x0032,0x007D,0x0027,0x0020,0x00 }
+  , { 0x0056,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0062,0x0065,0x0020,0x006C,0x0065,0x0073,0x0073,0x0020,0x0074,0x0068,0x0061,0x006E,0x0020,0x006F,0x0072,0x0020,0x0065,0x0071,
+      0x0075,0x0061,0x006C,0x0020,0x0074,0x006F,0x0020,0x004D,0x0061,0x0078,0x0049,0x006E,0x0063,0x006C,0x0075,0x0073,0x0069,0x0076,0x0065,0x0020,0x0027,0x007B,0x0031,0x007D,0x0027,0x0020,0x00 }
+  , { 0x0056,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0062,0x0065,0x0020,0x006C,0x0065,0x0073,0x0073,0x0020,0x0074,0x0068,0x0061,0x006E,0x0020,0x004D,0x0061,0x0078,0x0045,0x0078,
+      0x0063,0x006C,0x0075,0x0073,0x0069,0x0076,0x0065,0x0020,0x0027,0x007B,0x0031,0x007D,0x0027,0x0020,0x00 }
+  , { 0x0056,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0062,0x0065,0x0020,0x0067,0x0072,0x0065,0x0061,0x0074,0x0065,0x0072,0x0020,0x0074,0x0068,0x0061,0x006E,0x0020,0x006F,0x0072,
+      0x0020,0x0065,0x0071,0x0075,0x0061,0x006C,0x0020,0x0074,0x006F,0x0020,0x004D,0x0069,0x006E,0x0049,0x006E,0x0063,0x006C,0x0075,0x0073,0x0069,0x0076,0x0065,0x0020,0x0027,0x007B,0x0031,0x007D,0x0027,0x0020,0x00 }
+  , { 0x0056,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0062,0x0065,0x0020,0x0067,0x0072,0x0065,0x0061,0x0074,0x0065,0x0072,0x0020,0x0074,0x0068,0x0061,0x006E,0x0020,0x004D,0x0069,
+      0x006E,0x0045,0x0078,0x0063,0x006C,0x0075,0x0073,0x0069,0x0076,0x0065,0x0020,0x0027,0x007B,0x0031,0x007D,0x0027,0x0020,0x00 }
+  , { 0x0056,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0069,0x0073,0x0020,0x006E,0x006F,0x0074,0x0020,0x0077,0x0068,0x0069,0x0074,0x0065,0x0073,0x0070,0x0061,0x0063,0x0065,0x0020,0x0072,0x0065,0x0070,0x006C,0x0061,
+      0x0063,0x0065,0x0064,0x0020,0x00 }
+  , { 0x0056,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0069,0x0073,0x0020,0x006E,0x006F,0x0074,0x0020,0x0061,0x0020,0x0077,0x0068,0x0069,0x0074,0x0065,0x0073,0x0070,0x0061,0x0063,0x0065,0x0020,0x0063,0x006F,0x006C,
+      0x006C,0x0061,0x0070,0x0073,0x0065,0x0064,0x0020,0x00 }
+  , { 0x0056,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0069,0x0073,0x0020,0x006E,0x006F,0x0074,0x0020,0x0076,0x0061,0x006C,0x0069,0x0064,0x0020,0x004E,0x0043,0x004E,0x0061,0x006D,0x0065,0x0020,0x00 }
+  , { 0x0056,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0069,0x0073,0x0020,0x006E,0x006F,0x0074,0x0020,0x0076,0x0061,0x006C,0x0069,0x0064,0x0020,0x0027,0x007B,0x0031,0x007D,0x0027,0x0020,0x00 }
+  , { 0x0049,0x0044,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0069,0x0073,0x0020,0x006E,0x006F,0x0074,0x0020,0x0075,0x006E,0x0069,0x0071,0x0075,0x0065,0x0020,0x00 }
+  , { 0x0056,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0069,0x0073,0x0020,0x006E,0x006F,0x0074,0x0020,0x0076,0x0061,0x006C,0x0069,0x0064,0x0020,0x0045,0x004E,0x0054,0x0049,0x0054,0x0059,0x0020,0x00 }
+  , { 0x0056,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0069,0x0073,0x0020,0x006E,0x006F,0x0074,0x0020,0x0076,0x0061,0x006C,0x0069,0x0064,0x0020,0x0051,0x004E,0x0061,0x006D,0x0065,0x0020,0x00 }
+  , { 0x004E,0x004F,0x0054,0x0041,0x0054,0x0049,0x004F,0x004E,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0062,0x0065,0x0020,0x0061,0x0020,0x0076,0x0061,0x006C,0x0069,0x0064,0x0020,0x0051,0x004E,0x0061,0x006D,
+      0x0065,0x0020,0x00 }
+  , { 0x0056,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0064,0x006F,0x0065,0x0073,0x0020,0x006E,0x006F,0x0074,0x0020,0x006D,0x0061,0x0074,0x0063,0x0068,0x0020,0x0061,0x006E,0x0079,0x0020,0x006D,0x0065,0x006D,0x0062,
+      0x0065,0x0072,0x0020,0x0074,0x0079,0x0070,0x0065,0x0073,0x0020,0x0028,0x006F,0x0066,0x0020,0x0074,0x0068,0x0065,0x0020,0x0075,0x006E,0x0069,0x006F,0x006E,0x0029,0x0020,0x00 }
+  , { 0x0056,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0069,0x0073,0x0020,0x004E,0x004F,0x0054,0x0020,0x0061,0x0020,0x0076,0x0061,0x006C,0x0069,0x0064,0x0020,0x0055,0x0052,0x0049,0x0020,0x00 }
+  , { 0x0020,0x0045,0x006D,0x0070,0x0074,0x0079,0x0020,0x0073,0x0074,0x0072,0x0069,0x006E,0x0067,0x0020,0x0065,0x006E,0x0063,0x006F,0x0075,0x006E,0x0074,0x0065,0x0072,0x0065,0x0064,0x002E,0x00 }
+  , { 0x0020,0x0053,0x0074,0x0072,0x0069,0x006E,0x0067,0x0020,0x0063,0x006F,0x006E,0x0074,0x0061,0x0069,0x006E,0x0073,0x0020,0x0077,0x0068,0x0069,0x0074,0x0065,0x0073,0x0070,0x0061,0x0063,0x0065,0x0073,0x0020,0x006F,0x006E,0x006C,0x0079,0x002E,0x00 }
+  , { 0x0020,0x004D,0x006F,0x0072,0x0065,0x0020,0x0074,0x0068,0x0061,0x006E,0x0020,0x006F,0x006E,0x0065,0x0020,0x0064,0x0065,0x0063,0x0069,0x006D,0x0061,0x006C,0x0020,0x0070,0x006F,0x0069,0x006E,0x0074,0x0073,0x0020,0x0065,0x006E,0x0063,0x006F,0x0075,
+      0x006E,0x0074,0x0065,0x0072,0x0065,0x0064,0x002E,0x00 }
+  , { 0x0020,0x0049,0x006E,0x0076,0x0061,0x006C,0x0069,0x0064,0x0020,0x0063,0x0068,0x0061,0x0072,0x0073,0x0020,0x0065,0x006E,0x0063,0x006F,0x0075,0x006E,0x0074,0x0065,0x0072,0x0065,0x0064,0x002E,0x00 }
+  , { 0x0020,0x004E,0x0075,0x006C,0x006C,0x0020,0x0070,0x006F,0x0069,0x006E,0x0074,0x0065,0x0072,0x0020,0x0065,0x006E,0x0063,0x006F,0x0075,0x006E,0x0074,0x0065,0x0072,0x0065,0x0064,0x002E,0x00 }
+  , { 0x0020,0x0043,0x0061,0x006E,0x006E,0x006F,0x0074,0x0020,0x0063,0x006F,0x006E,0x0073,0x0074,0x0072,0x0075,0x0063,0x0074,0x0020,0x0055,0x0052,0x0049,0x0020,0x0077,0x0069,0x0074,0x0068,0x0020,0x006E,0x0075,0x006C,0x006C,0x002F,0x0065,0x006D,0x0070,
+      0x0074,0x0079,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x00 }
+  , { 0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x002C,0x0020,0x0027,0x007B,0x0031,0x007D,0x0027,0x0020,0x0063,0x0061,0x006E,0x0020,0x006F,0x006E,0x006C,0x0079,0x0020,0x0062,0x0065,0x0020,0x0073,0x0065,0x0074,0x0020,0x0066,0x006F,0x0072,0x0020,0x0061,
+      0x0020,0x0067,0x0065,0x006E,0x0065,0x0072,0x0069,0x0063,0x0020,0x0055,0x0052,0x0049,0x0021,0x0020,0x00 }
+  , { 0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0063,0x006F,0x006E,0x0074,0x0061,0x0069,0x006E,0x0073,0x0020,0x0069,0x006E,0x0076,0x0061,0x006C,0x0069,0x0064,0x0020,0x0065,0x0073,0x0063,0x0061,0x0070,0x0065,0x0020,0x0073,0x0065,0x0071,0x0075,
+      0x0065,0x006E,0x0063,0x0065,0x0020,0x0027,0x007B,0x0031,0x007D,0x0027,0x00 }
+  , { 0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0063,0x006F,0x006E,0x0074,0x0061,0x0069,0x006E,0x0073,0x0020,0x0069,0x006E,0x0076,0x0061,0x006C,0x0069,0x0064,0x0020,0x0063,0x0068,0x0061,0x0072,0x0020,0x0027,0x007B,0x0031,0x007D,0x0027,0x00 }
+  , { 0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0063,0x0061,0x006E,0x0020,0x006E,0x006F,0x0074,0x0020,0x0062,0x0065,0x0020,0x0073,0x0065,0x0074,0x0020,0x0074,0x006F,0x0020,0x006E,0x0075,0x006C,0x006C,0x0020,0x00 }
+  , { 0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0069,0x0073,0x0020,0x004E,0x004F,0x0054,0x0020,0x0063,0x006F,0x006E,0x0066,0x006F,0x0072,0x006D,0x0061,0x006E,0x0063,0x0065,0x0020,0x0027,0x007B,0x0031,0x007D,0x0027,0x0020,0x00 }
+  , { 0x0020,0x004E,0x006F,0x0020,0x0073,0x0063,0x0068,0x0065,0x006D,0x0065,0x0020,0x0066,0x006F,0x0075,0x006E,0x0064,0x0020,0x0069,0x006E,0x0020,0x0055,0x0052,0x0049,0x00 }
+  , { 0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x002C,0x0020,0x0027,0x007B,0x0031,0x007D,0x0027,0x0020,0x006D,0x0061,0x0079,0x0020,0x006E,0x006F,0x0074,0x0020,0x0062,0x0065,0x0020,0x0073,0x0070,0x0065,0x0063,0x0069,0x0066,0x0069,0x0065,0x0064,0x0020,
+      0x0069,0x0066,0x0020,0x0068,0x006F,0x0073,0x0074,0x0020,0x0069,0x0073,0x0020,0x006E,0x006F,0x0074,0x0020,0x0073,0x0070,0x0065,0x0063,0x0069,0x0066,0x0069,0x0065,0x0064,0x0020,0x00 }
+  , { 0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x002C,0x0020,0x0027,0x007B,0x0031,0x007D,0x0027,0x0020,0x006D,0x0061,0x0079,0x0020,0x006E,0x006F,0x0074,0x0020,0x0062,0x0065,0x0020,0x0073,0x0070,0x0065,0x0063,0x0069,0x0066,0x0069,0x0065,0x0064,0x0020,
+      0x0069,0x0066,0x0020,0x0070,0x0061,0x0074,0x0068,0x0020,0x0069,0x0073,0x0020,0x006E,0x006F,0x0074,0x0020,0x0073,0x0070,0x0065,0x0063,0x0069,0x0066,0x0069,0x0065,0x0064,0x0020,0x00 }
+  , { 0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x002C,0x0020,0x0027,0x007B,0x0031,0x007D,0x0027,0x0020,0x0063,0x0061,0x006E,0x006E,0x006F,0x0074,0x0020,0x0062,0x0065,0x0020,0x0073,0x0070,0x0065,0x0063,0x0069,0x0066,0x0069,0x0065,0x0064,0x0020,0x0069,
+      0x006E,0x0020,0x0070,0x0061,0x0074,0x0068,0x00 }
+  , { 0x0020,0x0050,0x006F,0x0072,0x0074,0x0020,0x006E,0x006F,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0073,0x0068,0x0061,0x006C,0x006C,0x0020,0x0062,0x0065,0x0020,0x0069,0x006E,0x0020,0x0028,0x0030,0x002C,0x0020,0x0036,0x0035,0x0035,0x0033,
+      0x0035,0x0029,0x0020,0x00 }
+  , { 0x0020,0x0056,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0073,0x0068,0x0061,0x006C,0x006C,0x0020,0x0062,0x0065,0x0020,0x0067,0x0072,0x0065,0x0061,0x0074,0x0065,0x0072,0x0020,0x0074,0x0068,0x0061,0x006E,0x0020,
+      0x0074,0x0068,0x0065,0x0020,0x006D,0x0061,0x0078,0x0020,0x004E,0x0065,0x0067,0x0061,0x0074,0x0069,0x0076,0x0065,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x007B,0x0031,0x007D,0x0027,0x0020,0x00 }
+  , { 0x0020,0x0056,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0073,0x0068,0x0061,0x006C,0x006C,0x0020,0x0062,0x0065,0x0020,0x006C,0x0065,0x0073,0x0073,0x0020,0x0074,0x0068,0x0061,0x006E,0x0020,0x0074,0x0068,0x0065,
+      0x0020,0x006D,0x0061,0x0078,0x0020,0x004E,0x0065,0x0067,0x0061,0x0074,0x0069,0x0076,0x0065,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x007B,0x0031,0x007D,0x0027,0x0020,0x00 }
+  , { 0x0020,0x0056,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0073,0x0068,0x0061,0x006C,0x006C,0x0020,0x0062,0x0065,0x0020,0x0069,0x006E,0x0020,0x0074,0x0068,0x0065,0x0020,0x0072,0x0061,0x006E,0x0067,0x0065,0x0020,
+      0x006F,0x0066,0x0020,0x0027,0x007B,0x0031,0x007D,0x0027,0x002C,0x0020,0x0027,0x007B,0x0032,0x007D,0x0027,0x0020,0x00 }
+  , { 0x0020,0x0054,0x0079,0x0070,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0069,0x0073,0x0020,0x0069,0x006E,0x0076,0x0061,0x006C,0x0069,0x0064,0x003A,0x0020,0x0069,0x006E,0x0074,0x0065,0x0072,0x006E,0x0061,0x006C,0x0020,0x0065,0x0072,
+      0x0072,0x006F,0x0072,0x0020,0x00 }
+  , { 0x0020,0x0056,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0073,0x0068,0x0061,0x006C,0x006C,0x0020,0x0068,0x0061,0x0076,0x0065,0x0020,0x0065,0x0078,0x0070,0x006F,0x006E,0x0065,0x006E,0x0074,0x002E,0x0020,0x00 }
+  , { 0x0041,0x0020,0x0072,0x0065,0x0073,0x0075,0x006C,0x0074,0x0020,0x0069,0x0073,0x0020,0x006E,0x006F,0x0074,0x0020,0x0073,0x0065,0x0074,0x002E,0x00 }
+  , { 0x0043,0x006F,0x006D,0x0070,0x0061,0x0063,0x0074,0x0052,0x0061,0x006E,0x0067,0x0065,0x0073,0x0020,0x002D,0x0020,0x0049,0x006E,0x0074,0x0065,0x0072,0x006E,0x0061,0x006C,0x0020,0x0045,0x0072,0x0072,0x006F,0x0072,0x00 }
+  , { 0x004D,0x0065,0x0072,0x0067,0x0065,0x0020,0x0052,0x0061,0x006E,0x0067,0x0065,0x0073,0x0020,0x002D,0x0020,0x004D,0x0069,0x0073,0x006D,0x0061,0x0074,0x0063,0x0068,0x0065,0x0064,0x0020,0x0074,0x0079,0x0070,0x0065,0x00 }
+  , { 0x0053,0x0075,0x0062,0x0074,0x0072,0x0061,0x0063,0x0074,0x0052,0x0061,0x006E,0x0067,0x0065,0x0073,0x0020,0x002D,0x0020,0x0049,0x006E,0x0074,0x0065,0x0072,0x006E,0x0061,0x006C,0x0020,0x0045,0x0072,0x0072,0x006F,0x0072,0x00 }
+  , { 0x0049,0x006E,0x0074,0x0065,0x0072,0x0073,0x0065,0x0063,0x0074,0x0052,0x0061,0x006E,0x0067,0x0065,0x0073,0x0020,0x002D,0x0020,0x0049,0x006E,0x0074,0x0065,0x0072,0x006E,0x0061,0x006C,0x0020,0x0045,0x0072,0x0072,0x006F,0x0072,0x00 }
+  , { 0x0043,0x006F,0x006D,0x0070,0x006C,0x0065,0x006D,0x0065,0x006E,0x0074,0x0052,0x0061,0x006E,0x0067,0x0065,0x0073,0x0020,0x002D,0x0020,0x0041,0x0072,0x0067,0x0075,0x006D,0x0065,0x006E,0x0074,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0062,0x0065,
+      0x0020,0x0061,0x0020,0x0052,0x0061,0x006E,0x0067,0x0065,0x0054,0x006F,0x006B,0x0065,0x006E,0x00 }
+  , { 0x0049,0x006E,0x0076,0x0061,0x006C,0x0069,0x0064,0x0020,0x0063,0x0061,0x0074,0x0065,0x0067,0x006F,0x0072,0x0079,0x0020,0x006E,0x0061,0x006D,0x0065,0x003A,0x0020,0x007B,0x0030,0x007D,0x00 }
+  , { 0x004B,0x0065,0x0079,0x0077,0x006F,0x0072,0x0064,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x006E,0x006F,0x0074,0x0020,0x0066,0x006F,0x0075,0x006E,0x0064,0x00 }
+  , { 0x0052,0x0065,0x0066,0x0065,0x0072,0x0065,0x006E,0x0063,0x0065,0x0020,0x006E,0x006F,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0062,0x0065,0x0020,0x006D,0x006F,0x0072,0x0065,0x0020,0x0074,0x0068,0x0061,0x006E,0x0020,0x007A,0x0065,0x0072,0x006F,
+      0x00 }
+  , { 0x0055,0x006E,0x006B,0x006E,0x006F,0x0077,0x006E,0x0020,0x006F,0x0070,0x0074,0x0069,0x006F,0x006E,0x003A,0x0020,0x007B,0x0030,0x007D,0x00 }
+  , { 0x0055,0x006E,0x006B,0x006E,0x006F,0x0077,0x006E,0x0020,0x0074,0x006F,0x006B,0x0065,0x006E,0x0020,0x0074,0x0079,0x0070,0x0065,0x00 }
+  , { 0x0046,0x0061,0x0069,0x006C,0x0065,0x0064,0x0020,0x0074,0x006F,0x0020,0x0067,0x0065,0x0074,0x0020,0x0052,0x0061,0x006E,0x0067,0x0065,0x0054,0x006F,0x006B,0x0065,0x006E,0x0020,0x0066,0x006F,0x0072,0x003A,0x0020,0x007B,0x0030,0x007D,0x00 }
+  , { 0x004E,0x006F,0x0074,0x0020,0x0073,0x0075,0x0070,0x0070,0x006F,0x0072,0x0074,0x0065,0x0064,0x00 }
+  , { 0x0049,0x006E,0x0076,0x0061,0x006C,0x0069,0x0064,0x0020,0x0063,0x0068,0x0069,0x006C,0x0064,0x0020,0x0069,0x006E,0x0064,0x0065,0x0078,0x00 }
+  , { 0x0052,0x0065,0x0070,0x006C,0x0061,0x0063,0x0065,0x0020,0x0070,0x0061,0x0074,0x0074,0x0065,0x0072,0x006E,0x0020,0x0063,0x0061,0x006E,0x006E,0x006F,0x0074,0x0020,0x006D,0x0061,0x0074,0x0063,0x0068,0x0020,0x007A,0x0065,0x0072,0x006F,0x0020,0x006C,
+      0x0065,0x006E,0x0067,0x0074,0x0068,0x0020,0x0073,0x0074,0x0072,0x0069,0x006E,0x0067,0x00 }
+  , { 0x0049,0x006E,0x0076,0x0061,0x006C,0x0069,0x0064,0x0020,0x0072,0x0065,0x0070,0x006C,0x0061,0x0063,0x0065,0x0020,0x0070,0x0061,0x0074,0x0074,0x0065,0x0072,0x006E,0x00 }
+  , { 0x0045,0x006E,0x0061,0x0062,0x006C,0x0069,0x006E,0x0067,0x0020,0x0074,0x0068,0x0065,0x0020,0x004E,0x0045,0x004C,0x0020,0x006F,0x0070,0x0074,0x0069,0x006F,0x006E,0x0020,0x0063,0x0061,0x006E,0x0020,0x006F,0x006E,0x006C,0x0079,0x0020,0x0062,0x0065,
+      0x0020,0x0063,0x0061,0x006C,0x006C,0x0065,0x0064,0x0020,0x006F,0x006E,0x0063,0x0065,0x0020,0x0070,0x0065,0x0072,0x0020,0x0070,0x0072,0x006F,0x0063,0x0065,0x0073,0x0073,0x002E,0x00 }
+  , { 0x007B,0x0030,0x007D,0x00 }
+  , { 0x006F,0x0070,0x0065,0x0072,0x0061,0x0074,0x006F,0x0072,0x0020,0x006E,0x0065,0x0077,0x0020,0x0066,0x0061,0x0069,0x006C,0x0073,0x002E,0x0020,0x0020,0x0050,0x006F,0x0073,0x0073,0x0069,0x0062,0x006C,0x0079,0x0020,0x0072,0x0075,0x006E,0x006E,0x0069,
+      0x006E,0x0067,0x0020,0x004F,0x0066,0x0020,0x006D,0x0065,0x006D,0x006F,0x0072,0x0079,0x00 }
+  , { 0x004F,0x0070,0x0065,0x0072,0x0061,0x0074,0x0069,0x006F,0x006E,0x0020,0x0069,0x0073,0x0020,0x006E,0x006F,0x0074,0x0020,0x0061,0x006C,0x006C,0x006F,0x0077,0x0065,0x0064,0x00 }
+  , { 0x0053,0x0065,0x006C,0x0065,0x0063,0x0074,0x006F,0x0072,0x0073,0x0020,0x0063,0x0061,0x006E,0x006E,0x006F,0x0074,0x0020,0x0073,0x0065,0x006C,0x0065,0x0063,0x0074,0x0020,0x0061,0x0074,0x0074,0x0072,0x0069,0x0062,0x0075,0x0074,0x0065,0x0073,0x00 }
+  , { 0x004E,0x006F,0x0074,0x0020,0x0061,0x006C,0x006C,0x006F,0x0077,0x0065,0x0064,0x0020,0x0074,0x006F,0x0020,0x0068,0x0061,0x0076,0x0065,0x0020,0x0027,0x007C,0x0027,0x0020,0x0061,0x0074,0x0020,0x0074,0x0068,0x0065,0x0020,0x0062,0x0065,0x0067,0x0069,
+      0x006E,0x006E,0x0069,0x006E,0x0067,0x0020,0x006F,0x0066,0x0020,0x0061,0x006E,0x0020,0x0078,0x0070,0x0061,0x0074,0x0068,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x00 }
+  , { 0x004E,0x006F,0x0074,0x0020,0x0061,0x006C,0x006C,0x006F,0x0077,0x0065,0x0064,0x0020,0x0074,0x006F,0x0020,0x0068,0x0061,0x0076,0x0065,0x0020,0x0027,0x007C,0x007C,0x0027,0x0020,0x0069,0x006E,0x0020,0x0061,0x006E,0x0020,0x0078,0x0070,0x0061,0x0074,
+      0x0068,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x00 }
+  , { 0x004D,0x0069,0x0073,0x0073,0x0069,0x006E,0x0067,0x0020,0x0061,0x0074,0x0074,0x0072,0x0069,0x0062,0x0075,0x0074,0x0065,0x0020,0x006E,0x0061,0x006D,0x0065,0x0020,0x0069,0x006E,0x0020,0x0078,0x0070,0x0061,0x0074,0x0068,0x00 }
+  , { 0x0045,0x0078,0x0070,0x0065,0x0063,0x0074,0x0065,0x0064,0x0020,0x0078,0x0070,0x0061,0x0074,0x0068,0x0020,0x0074,0x006F,0x006B,0x0065,0x006E,0x0020,0x0027,0x004E,0x0041,0x004D,0x0045,0x0054,0x0045,0x0053,0x0054,0x005F,0x0051,0x004E,0x0041,0x004D,
+      0x0045,0x0027,0x0020,0x006F,0x0072,0x0020,0x0027,0x004E,0x0041,0x004D,0x0045,0x0054,0x0045,0x0053,0x0054,0x005F,0x0041,0x004E,0x0059,0x0027,0x0020,0x006F,0x0072,0x0020,0x0027,0x004E,0x0041,0x004D,0x0045,0x0054,0x0045,0x0053,0x0054,0x005F,0x004E,
+      0x0041,0x004D,0x0045,0x0053,0x0050,0x0041,0x0043,0x0045,0x0027,0x00 }
+  , { 0x0050,0x0072,0x0065,0x0066,0x0069,0x0078,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x006E,0x006F,0x0074,0x0020,0x0062,0x006F,0x0075,0x006E,0x0064,0x0020,0x0074,0x006F,0x0020,0x006E,0x0061,0x006D,0x0065,0x0073,0x0070,0x0061,0x0063,0x0065,
+      0x0020,0x0055,0x0052,0x0049,0x0020,0x0069,0x006E,0x0020,0x0061,0x006E,0x0020,0x0078,0x0070,0x0061,0x0074,0x0068,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x00 }
+  , { 0x004E,0x006F,0x0074,0x0020,0x0061,0x006C,0x006C,0x006F,0x0077,0x0065,0x0064,0x0020,0x0074,0x006F,0x0020,0x0068,0x0061,0x0076,0x0065,0x0020,0x0064,0x006F,0x0075,0x0062,0x006C,0x0065,0x0020,0x0063,0x006F,0x006C,0x006F,0x006E,0x0020,0x0069,0x006E,
+      0x0020,0x0074,0x0068,0x0065,0x0020,0x0078,0x0070,0x0061,0x0074,0x0068,0x0020,0x0065,0x0078,0x0070,0x0072,0x0065,0x0073,0x0073,0x0069,0x006F,0x006E,0x00 }
+  , { 0x0045,0x0078,0x0070,0x0065,0x0063,0x0074,0x0065,0x0064,0x0020,0x0073,0x0074,0x0065,0x0070,0x0020,0x0066,0x006F,0x006C,0x006C,0x006F,0x0077,0x0069,0x006E,0x0067,0x0020,0x0074,0x006F,0x006B,0x0065,0x006E,0x0020,0x0027,0x0041,0x0058,0x0049,0x0053,
+      0x004E,0x0041,0x004D,0x0045,0x005F,0x0043,0x0048,0x0049,0x004C,0x0044,0x003A,0x003A,0x0027,0x00 }
+  , { 0x0045,0x0078,0x0070,0x0065,0x0063,0x0074,0x0065,0x0064,0x0020,0x0073,0x0074,0x0065,0x0070,0x0020,0x0066,0x006F,0x006C,0x006C,0x006F,0x0077,0x0069,0x006E,0x0067,0x0020,0x0027,0x002F,0x002F,0x0027,0x0020,0x0069,0x006E,0x0020,0x0078,0x0070,0x0061,
+      0x0074,0x0068,0x00 }
+  , { 0x0045,0x0078,0x0070,0x0065,0x0063,0x0074,0x0065,0x0064,0x0020,0x0073,0x0074,0x0065,0x0070,0x0020,0x0066,0x006F,0x006C,0x006C,0x006F,0x0077,0x0069,0x006E,0x0067,0x0020,0x0027,0x002F,0x0027,0x0020,0x0069,0x006E,0x0020,0x0078,0x0070,0x0061,0x0074,
+      0x0068,0x00 }
+  , { 0x0027,0x002F,0x0027,0x0020,0x006E,0x006F,0x0074,0x0020,0x0061,0x006C,0x006C,0x006F,0x0077,0x0065,0x0064,0x0020,0x0061,0x0066,0x0074,0x0065,0x0072,0x0020,0x0027,0x002F,0x002F,0x0027,0x0020,0x0069,0x006E,0x0020,0x0078,0x0070,0x0061,0x0074,0x0068,
+      0x00 }
+  , { 0x0027,0x002F,0x002F,0x0027,0x0020,0x006F,0x006E,0x006C,0x0079,0x0020,0x0061,0x006C,0x006C,0x006F,0x0077,0x0065,0x0064,0x0020,0x0061,0x0066,0x0074,0x0065,0x0072,0x0020,0x0027,0x002E,0x0027,0x0020,0x0061,0x0074,0x0020,0x0074,0x0068,0x0065,0x0020,
+      0x0062,0x0065,0x0067,0x0069,0x006E,0x006E,0x0069,0x006E,0x0067,0x0020,0x006F,0x0066,0x0020,0x0061,0x006E,0x0020,0x0078,0x0070,0x0061,0x0074,0x0068,0x00 }
+  , { 0x004E,0x006F,0x0074,0x0020,0x0061,0x006C,0x006C,0x006F,0x0077,0x0065,0x0064,0x0020,0x0074,0x006F,0x0020,0x0068,0x0061,0x0076,0x0065,0x0020,0x0027,0x002F,0x0027,0x0020,0x0061,0x0074,0x0020,0x0074,0x0068,0x0065,0x0020,0x0062,0x0065,0x0067,0x0069,
+      0x006E,0x006E,0x0069,0x006E,0x0067,0x0020,0x006F,0x0066,0x0020,0x0061,0x006E,0x0020,0x0078,0x0070,0x0061,0x0074,0x0068,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x00 }
+  , { 0x004E,0x006F,0x0074,0x0020,0x0061,0x006C,0x006C,0x006F,0x0077,0x0065,0x0064,0x0020,0x0074,0x006F,0x0020,0x0073,0x0065,0x006C,0x0065,0x0063,0x0074,0x0020,0x0074,0x0068,0x0065,0x0020,0x0072,0x006F,0x006F,0x0074,0x0020,0x006F,0x0066,0x0020,0x0061,
+      0x006E,0x0020,0x0078,0x0070,0x0061,0x0074,0x0068,0x00 }
+  , { 0x0045,0x006D,0x0070,0x0074,0x0079,0x0020,0x0078,0x0070,0x0061,0x0074,0x0068,0x0020,0x0065,0x0078,0x0070,0x0072,0x0065,0x0073,0x0073,0x0069,0x006F,0x006E,0x00 }
+  , { 0x0054,0x0068,0x0065,0x0020,0x0078,0x0070,0x0061,0x0074,0x0068,0x0020,0x0065,0x0078,0x0070,0x0072,0x0065,0x0073,0x0073,0x0069,0x006F,0x006E,0x0020,0x0063,0x0061,0x006E,0x006E,0x006F,0x0074,0x0020,0x0065,0x006E,0x0064,0x0020,0x0077,0x0069,0x0074,
+      0x0068,0x0020,0x0027,0x007C,0x0027,0x00 }
+  , { 0x0049,0x006E,0x0076,0x0061,0x006C,0x0069,0x0064,0x0020,0x0063,0x0068,0x0061,0x0072,0x0061,0x0063,0x0074,0x0065,0x0072,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0069,0x006E,0x0020,0x0078,0x0070,0x0061,0x0074,0x0068,0x00 }
+  , { 0x0058,0x0050,0x0061,0x0074,0x0068,0x0020,0x0074,0x006F,0x006B,0x0065,0x006E,0x0020,0x006E,0x006F,0x0074,0x0020,0x0073,0x0075,0x0070,0x0070,0x006F,0x0072,0x0074,0x0065,0x0064,0x00 }
+  , { 0x0046,0x0069,0x006E,0x0064,0x0020,0x0061,0x0020,0x0073,0x006F,0x006C,0x0075,0x0074,0x0069,0x006F,0x006E,0x0021,0x00 }
+  , { 0x0062,0x0075,0x0066,0x0066,0x0065,0x0072,0x0020,0x006E,0x006F,0x0074,0x0020,0x0069,0x006E,0x0069,0x0074,0x0069,0x0061,0x006C,0x0069,0x007A,0x0065,0x0064,0x0020,0x0079,0x0065,0x0074,0x0021,0x00 }
+  , { 0x0027,0x0054,0x0027,0x0020,0x0069,0x0073,0x0020,0x006D,0x0069,0x0073,0x0073,0x0069,0x006E,0x0067,0x0021,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x00 }
+  , { 0x0069,0x006E,0x0076,0x0061,0x006C,0x0069,0x0064,0x0020,0x0067,0x0044,0x0061,0x0079,0x0021,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x00 }
+  , { 0x0069,0x006E,0x0076,0x0061,0x006C,0x0069,0x0064,0x0020,0x0067,0x004D,0x006F,0x006E,0x0074,0x0068,0x0021,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x00 }
+  , { 0x0069,0x006E,0x0076,0x0061,0x006C,0x0069,0x0064,0x0020,0x0067,0x004D,0x006F,0x006E,0x0074,0x0068,0x0044,0x0061,0x0079,0x0021,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x00 }
+  , { 0x0044,0x0075,0x0072,0x0061,0x0074,0x0069,0x006F,0x006E,0x0020,0x0073,0x0068,0x0061,0x006C,0x006C,0x0020,0x0073,0x0074,0x0061,0x0072,0x0074,0x0020,0x0077,0x0069,0x0074,0x0068,0x0020,0x0027,0x002D,0x0027,0x0020,0x006F,0x0072,0x0020,0x0027,0x0050,
+      0x0027,0x0021,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x00 }
+  , { 0x0044,0x0075,0x0072,0x0061,0x0074,0x0069,0x006F,0x006E,0x0020,0x0073,0x0068,0x0061,0x006C,0x006C,0x0020,0x0061,0x006C,0x0077,0x0061,0x0079,0x0073,0x0020,0x0068,0x0061,0x0076,0x0065,0x0020,0x0027,0x0050,0x0027,0x0021,0x0020,0x0027,0x007B,0x0030,
+      0x007D,0x0027,0x0020,0x00 }
+  , { 0x0027,0x002D,0x0027,0x0020,0x0063,0x0061,0x006E,0x0020,0x006F,0x006E,0x006C,0x0079,0x0020,0x0061,0x0070,0x0070,0x0065,0x0061,0x0072,0x0020,0x0061,0x0074,0x0020,0x0066,0x0069,0x0072,0x0073,0x0074,0x0021,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,
+      0x0020,0x00 }
+  , { 0x0044,0x0075,0x0072,0x0061,0x0074,0x0069,0x006F,0x006E,0x0020,0x0068,0x0061,0x0073,0x0020,0x0069,0x006E,0x0076,0x0061,0x006C,0x0069,0x0064,0x0020,0x0073,0x0074,0x0075,0x0066,0x0066,0x0020,0x0062,0x0065,0x0066,0x006F,0x0072,0x0065,0x0020,0x0027,
+      0x0054,0x0027,0x0021,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x00 }
+  , { 0x0044,0x0075,0x0072,0x0061,0x0074,0x0069,0x006F,0x006E,0x0020,0x0068,0x0061,0x0073,0x0020,0x006E,0x006F,0x0020,0x0074,0x0069,0x006D,0x0065,0x0020,0x0065,0x006C,0x0065,0x006D,0x0065,0x006E,0x0074,0x0073,0x0020,0x0061,0x0066,0x0074,0x0065,0x0072,
+      0x0020,0x0027,0x0054,0x0027,0x0021,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x00 }
+  , { 0x0044,0x0075,0x0072,0x0061,0x0074,0x0069,0x006F,0x006E,0x0020,0x0073,0x0068,0x0061,0x006C,0x006C,0x0020,0x0068,0x0061,0x0076,0x0065,0x0020,0x0061,0x0074,0x0020,0x006C,0x0065,0x0061,0x0073,0x0074,0x0020,0x0065,0x006C,0x0065,0x006D,0x0065,0x006E,
+      0x0074,0x0020,0x0021,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x00 }
+  , { 0x0044,0x0075,0x0072,0x0061,0x0074,0x0069,0x006F,0x006E,0x0020,0x0073,0x0068,0x0061,0x006C,0x006C,0x0020,0x0068,0x0061,0x0076,0x0065,0x0020,0x0061,0x0074,0x0020,0x006C,0x0065,0x0061,0x0073,0x0074,0x0020,0x006F,0x006E,0x0065,0x0020,0x0064,0x0069,
+      0x0067,0x0069,0x0074,0x0020,0x0061,0x0066,0x0074,0x0065,0x0072,0x0020,0x0074,0x0068,0x0065,0x0020,0x002E,0x0020,0x0021,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x00 }
+  , { 0x0049,0x006E,0x0063,0x006F,0x006D,0x0070,0x006C,0x0065,0x0074,0x0065,0x0020,0x0044,0x0061,0x0074,0x0065,0x0020,0x0021,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x00 }
+  , { 0x0049,0x006E,0x0076,0x0061,0x006C,0x0069,0x0064,0x0020,0x0044,0x0061,0x0074,0x0065,0x0020,0x0021,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x00 }
+  , { 0x0049,0x006E,0x0063,0x006F,0x006D,0x0070,0x006C,0x0065,0x0074,0x0065,0x0020,0x0054,0x0069,0x006D,0x0065,0x0020,0x0021,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x00 }
+  , { 0x0049,0x006E,0x0076,0x0061,0x006C,0x0069,0x0064,0x0020,0x0054,0x0069,0x006D,0x0065,0x0020,0x0021,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x00 }
+  , { 0x006D,0x0073,0x0020,0x0073,0x0068,0x0061,0x006C,0x006C,0x0020,0x0062,0x0065,0x0020,0x0070,0x0072,0x0065,0x0073,0x0065,0x006E,0x0074,0x0020,0x006F,0x006E,0x0063,0x0065,0x0020,0x0027,0x002E,0x0027,0x0020,0x0069,0x0073,0x0020,0x0070,0x0072,0x0065,
+      0x0073,0x0065,0x006E,0x0074,0x0020,0x0021,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x00 }
+  , { 0x0049,0x006E,0x0063,0x006F,0x006D,0x0070,0x006C,0x0065,0x0074,0x0065,0x0020,0x0059,0x0065,0x0061,0x0072,0x004D,0x006F,0x006E,0x0074,0x0068,0x0021,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x00 }
+  , { 0x0059,0x0065,0x0061,0x0072,0x0020,0x0073,0x0065,0x0070,0x0061,0x0072,0x0061,0x0074,0x006F,0x0072,0x0020,0x0069,0x0073,0x0020,0x006D,0x0069,0x0073,0x0073,0x0069,0x006E,0x0067,0x0020,0x006F,0x0072,0x0020,0x006D,0x0069,0x0073,0x0070,0x006C,0x0061,
+      0x0063,0x0065,0x0064,0x0020,0x0021,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x00 }
+  , { 0x0059,0x0065,0x0061,0x0072,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0068,0x0061,0x0076,0x0065,0x0020,0x0027,0x0043,0x0043,0x0059,0x0059,0x0027,0x0020,0x0066,0x006F,0x0072,0x006D,0x0061,0x0074,0x0020,0x0021,0x0020,0x0027,0x007B,0x0030,0x007D,
+      0x0027,0x0020,0x00 }
+  , { 0x0049,0x006E,0x0076,0x0061,0x006C,0x0069,0x0064,0x0020,0x006C,0x0065,0x0061,0x0064,0x0069,0x006E,0x0067,0x0020,0x007A,0x0065,0x0072,0x006F,0x0020,0x0069,0x006E,0x0020,0x0079,0x0065,0x0061,0x0072,0x0021,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,
+      0x0020,0x00 }
+  , { 0x006E,0x006F,0x0020,0x006D,0x006F,0x006E,0x0074,0x0068,0x0020,0x0069,0x006E,0x0020,0x0059,0x0065,0x0061,0x0072,0x004D,0x006F,0x006E,0x0074,0x0068,0x0020,0x0021,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x00 }
+  , { 0x0054,0x0069,0x006D,0x0065,0x005A,0x006F,0x006E,0x0065,0x0020,0x0069,0x0073,0x0020,0x0065,0x0078,0x0070,0x0065,0x0063,0x0074,0x0065,0x0064,0x0020,0x0021,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x00 }
+  , { 0x0045,0x0078,0x0070,0x0065,0x0063,0x0074,0x0069,0x006E,0x0067,0x0020,0x006E,0x006F,0x0074,0x0068,0x0069,0x006E,0x0067,0x0020,0x0061,0x0066,0x0074,0x0065,0x0072,0x0020,0x0027,0x005A,0x0027,0x0021,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,
+      0x00 }
+  , { 0x0049,0x006E,0x0076,0x0061,0x006C,0x0069,0x0064,0x0020,0x0054,0x0069,0x006D,0x0065,0x005A,0x006F,0x006E,0x0065,0x0021,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x00 }
+  , { 0x0054,0x0068,0x0065,0x0020,0x0079,0x0065,0x0061,0x0072,0x0020,0x0028,0x0030,0x0030,0x0030,0x0030,0x0029,0x0020,0x0069,0x0073,0x0020,0x0061,0x006E,0x0020,0x0069,0x006C,0x006C,0x0065,0x0067,0x0061,0x006C,0x0020,0x0079,0x0065,0x0061,0x0072,0x0020,
+      0x0076,0x0061,0x006C,0x0075,0x0065,0x0021,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x00 }
+  , { 0x0054,0x0068,0x0065,0x0020,0x006D,0x006F,0x006E,0x0074,0x0068,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0068,0x0061,0x0076,0x0065,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0073,0x0020,0x0031,0x0020,0x0074,0x006F,0x0020,0x0031,0x0032,0x0021,
+      0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x00 }
+  , { 0x0054,0x0068,0x0065,0x0020,0x0064,0x0061,0x0079,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0068,0x0061,0x0076,0x0065,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0073,0x0020,0x0031,0x0020,0x0074,0x006F,0x0020,0x0033,0x0031,0x0021,0x0020,0x0027,
+      0x007B,0x0030,0x007D,0x0027,0x0020,0x00 }
+  , { 0x0048,0x006F,0x0075,0x0072,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0068,0x0061,0x0076,0x0065,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0073,0x0020,0x0030,0x002D,0x0032,0x0033,0x0021,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x00 }
+  , { 0x004D,0x0069,0x006E,0x0075,0x0074,0x0065,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0068,0x0061,0x0076,0x0065,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0073,0x0020,0x0030,0x002D,0x0035,0x0039,0x0021,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,
+      0x0020,0x00 }
+  , { 0x0053,0x0065,0x0063,0x006F,0x006E,0x0064,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0068,0x0061,0x0076,0x0065,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0073,0x0020,0x0030,0x002D,0x0036,0x0030,0x0021,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,
+      0x0020,0x00 }
+  , { 0x004D,0x0069,0x006E,0x0075,0x0074,0x0065,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0068,0x0061,0x0076,0x0065,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0073,0x0020,0x0030,0x002D,0x0035,0x0039,0x0021,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,
+      0x0020,0x00 }
+  , { 0x0050,0x0061,0x0072,0x0074,0x0069,0x0063,0x006C,0x0065,0x0020,0x0044,0x0065,0x0072,0x0069,0x0076,0x0061,0x0074,0x0069,0x006F,0x006E,0x0020,0x0052,0x0065,0x0073,0x0074,0x0072,0x0069,0x0063,0x0074,0x0069,0x006F,0x006E,0x003A,0x0020,0x0054,0x0068,
+      0x0065,0x0020,0x0064,0x0065,0x0072,0x0069,0x0076,0x0065,0x0064,0x0020,0x0063,0x006F,0x006D,0x0070,0x006C,0x0065,0x0078,0x0054,0x0079,0x0070,0x0065,0x0020,0x0068,0x0061,0x0073,0x0020,0x0063,0x006F,0x006E,0x0074,0x0065,0x006E,0x0074,0x002C,0x0020,
+      0x0077,0x0068,0x0069,0x006C,0x0065,0x0020,0x0062,0x0061,0x0073,0x0065,0x0020,0x0069,0x0073,0x0020,0x0065,0x006D,0x0070,0x0074,0x0079,0x002E,0x00 }
+  , { 0x004E,0x0053,0x0043,0x006F,0x006D,0x0070,0x0061,0x0074,0x003A,0x0020,0x0054,0x0068,0x0065,0x0020,0x006E,0x0061,0x006D,0x0065,0x0073,0x0070,0x0061,0x0063,0x0065,0x0020,0x006F,0x0066,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0069,0x0073,
+      0x0020,0x006E,0x006F,0x0074,0x0020,0x0061,0x006C,0x006C,0x006F,0x0077,0x0065,0x0064,0x0020,0x0062,0x0079,0x0020,0x0077,0x0069,0x006C,0x0064,0x0063,0x0061,0x0072,0x0064,0x0020,0x0069,0x006E,0x0020,0x0062,0x0061,0x0073,0x0065,0x00 }
+  , { 0x0054,0x0068,0x0065,0x0020,0x006F,0x0063,0x0063,0x0075,0x0072,0x0072,0x0065,0x006E,0x0063,0x0065,0x0020,0x0072,0x0061,0x006E,0x0067,0x0065,0x0020,0x006F,0x0066,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0069,0x0073,0x0020,0x006E,0x006F,
+      0x0074,0x0020,0x0061,0x0020,0x0076,0x0061,0x006C,0x0069,0x0064,0x0020,0x0072,0x0065,0x0073,0x0074,0x0072,0x0069,0x0063,0x0074,0x0069,0x006F,0x006E,0x0020,0x006F,0x0066,0x0020,0x0062,0x0061,0x0073,0x0065,0x0020,0x0065,0x006C,0x0065,0x006D,0x0065,
+      0x006E,0x0074,0x0027,0x0073,0x0020,0x0072,0x0061,0x006E,0x0067,0x0065,0x00 }
+  , { 0x004E,0x0061,0x006D,0x0065,0x0041,0x006E,0x0064,0x0054,0x0079,0x0070,0x0065,0x004F,0x004B,0x003A,0x0020,0x0054,0x0068,0x0065,0x0020,0x0045,0x006C,0x0065,0x006D,0x0065,0x006E,0x0074,0x0020,0x006E,0x0061,0x006D,0x0065,0x002F,0x0075,0x0072,0x0069,
+      0x0020,0x0069,0x006E,0x0020,0x0072,0x0065,0x0073,0x0074,0x0072,0x0069,0x0063,0x0074,0x0069,0x006F,0x006E,0x0020,0x0064,0x006F,0x0065,0x0073,0x0020,0x006E,0x006F,0x0074,0x0020,0x006D,0x0061,0x0074,0x0063,0x0068,0x0020,0x0074,0x0068,0x0061,0x0074,
+      0x0020,0x006F,0x0066,0x0020,0x0063,0x006F,0x0072,0x0072,0x0065,0x0073,0x0070,0x006F,0x006E,0x0064,0x0069,0x006E,0x0067,0x0020,0x0062,0x0061,0x0073,0x0065,0x0020,0x0065,0x006C,0x0065,0x006D,0x0065,0x006E,0x0074,0x00 }
+  , { 0x004E,0x0061,0x006D,0x0065,0x0041,0x006E,0x0064,0x0054,0x0079,0x0070,0x0065,0x004F,0x004B,0x003A,0x0020,0x0045,0x006C,0x0065,0x006D,0x0065,0x006E,0x0074,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0069,0x0073,0x0020,0x006E,0x0069,0x006C,
+      0x006C,0x0061,0x0062,0x006C,0x0065,0x0020,0x0069,0x006E,0x0020,0x0074,0x0068,0x0065,0x0020,0x0072,0x0065,0x0073,0x0074,0x0072,0x0069,0x0063,0x0074,0x0069,0x006F,0x006E,0x002C,0x0020,0x0077,0x0068,0x0069,0x006C,0x0065,0x0020,0x0069,0x0074,0x0027,
+      0x0073,0x0020,0x006E,0x006F,0x0074,0x0020,0x0069,0x006E,0x0020,0x0074,0x0068,0x0065,0x0020,0x0062,0x0061,0x0073,0x0065,0x00 }
+  , { 0x004E,0x0061,0x006D,0x0065,0x0041,0x006E,0x0064,0x0054,0x0079,0x0070,0x0065,0x004F,0x004B,0x003A,0x0020,0x0045,0x006C,0x0065,0x006D,0x0065,0x006E,0x0074,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0069,0x0073,0x0020,0x0065,0x0069,0x0074,
+      0x0068,0x0065,0x0072,0x0020,0x006E,0x006F,0x0074,0x0020,0x0066,0x0069,0x0078,0x0065,0x0064,0x002C,0x0020,0x006F,0x0072,0x0020,0x0069,0x0073,0x0020,0x006E,0x006F,0x0074,0x0020,0x0066,0x0069,0x0078,0x0065,0x0064,0x0020,0x0077,0x0069,0x0074,0x0068,
+      0x0020,0x0074,0x0068,0x0065,0x0020,0x0073,0x0061,0x006D,0x0065,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x0020,0x0061,0x0073,0x0020,0x0069,0x006E,0x0020,0x0074,0x0068,0x0065,0x0020,0x0062,0x0061,0x0073,0x0065,0x00 }
+  , { 0x004E,0x0061,0x006D,0x0065,0x0041,0x006E,0x0064,0x0054,0x0079,0x0070,0x0065,0x004F,0x004B,0x003A,0x0020,0x0054,0x0068,0x0065,0x0020,0x0064,0x0069,0x0073,0x0061,0x006C,0x006C,0x006F,0x0077,0x0065,0x0064,0x0020,0x0073,0x0075,0x0062,0x0073,0x0074,
+      0x0069,0x0074,0x0075,0x0074,0x0069,0x006F,0x006E,0x0073,0x002C,0x0020,0x0066,0x006F,0x0072,0x0020,0x0065,0x006C,0x0065,0x006D,0x0065,0x006E,0x0074,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x002C,0x0020,0x0061,0x0072,0x0065,0x0020,0x006E,0x006F,
+      0x0074,0x0020,0x0061,0x0020,0x0073,0x0075,0x0070,0x0065,0x0072,0x0073,0x0065,0x0074,0x0020,0x006F,0x0066,0x0020,0x0074,0x0068,0x006F,0x0073,0x0065,0x0020,0x006F,0x0066,0x0020,0x0074,0x0068,0x0065,0x0020,0x0062,0x0061,0x0073,0x0065,0x0020,0x0065,
+      0x006C,0x0065,0x006D,0x0065,0x006E,0x0074,0x00 }
+  , { 0x004E,0x0061,0x006D,0x0065,0x0041,0x006E,0x0064,0x0054,0x0079,0x0070,0x0065,0x004F,0x004B,0x003A,0x0020,0x0045,0x006C,0x0065,0x006D,0x0065,0x006E,0x0074,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0068,0x0061,0x0073,0x0020,0x0061,0x0020,
+      0x0074,0x0079,0x0070,0x0065,0x0020,0x0074,0x0068,0x0061,0x0074,0x0020,0x0064,0x006F,0x0065,0x0073,0x0020,0x006E,0x006F,0x0074,0x0020,0x0064,0x0065,0x0072,0x0069,0x0076,0x0065,0x0020,0x0066,0x0072,0x006F,0x006D,0x0020,0x0074,0x0068,0x0061,0x0074,
+      0x0020,0x006F,0x0066,0x0020,0x0074,0x0068,0x0065,0x0020,0x0062,0x0061,0x0073,0x0065,0x00 }
+  , { 0x004E,0x0061,0x006D,0x0065,0x0041,0x006E,0x0064,0x0054,0x0079,0x0070,0x0065,0x004F,0x004B,0x003A,0x0020,0x0044,0x0065,0x0072,0x0069,0x0076,0x0065,0x0064,0x0020,0x0065,0x006C,0x0065,0x006D,0x0065,0x006E,0x0074,0x0020,0x0027,0x007B,0x0030,0x007D,
+      0x0027,0x0020,0x0068,0x0061,0x0073,0x0020,0x0066,0x0065,0x0077,0x0065,0x0072,0x0020,0x0049,0x0064,0x0065,0x006E,0x0074,0x0069,0x0074,0x0079,0x0020,0x0043,0x006F,0x006E,0x0073,0x0074,0x0072,0x0061,0x0069,0x006E,0x0074,0x0073,0x0020,0x0074,0x0068,
+      0x0061,0x006E,0x0020,0x0062,0x0061,0x0073,0x0065,0x0020,0x0065,0x006C,0x0065,0x006D,0x0065,0x006E,0x0074,0x0020,0x0027,0x007B,0x0031,0x007D,0x0027,0x00 }
+  , { 0x004E,0x0061,0x006D,0x0065,0x0041,0x006E,0x0064,0x0054,0x0079,0x0070,0x0065,0x004F,0x004B,0x003A,0x0020,0x0044,0x0065,0x0072,0x0069,0x0076,0x0065,0x0064,0x0020,0x0065,0x006C,0x0065,0x006D,0x0065,0x006E,0x0074,0x0020,0x0027,0x007B,0x0030,0x007D,
+      0x0027,0x0020,0x0068,0x0061,0x0073,0x0020,0x0061,0x006E,0x0020,0x0049,0x0064,0x0065,0x006E,0x0074,0x0069,0x0074,0x0079,0x0020,0x0043,0x006F,0x006E,0x0073,0x0074,0x0072,0x0061,0x0069,0x006E,0x0074,0x0020,0x0074,0x0068,0x0061,0x0074,0x0020,0x0064,
+      0x006F,0x0065,0x0073,0x0020,0x006E,0x006F,0x0074,0x0020,0x0061,0x0070,0x0070,0x0065,0x0061,0x0072,0x0020,0x006F,0x006E,0x0020,0x0062,0x0061,0x0073,0x0065,0x0020,0x0065,0x006C,0x0065,0x006D,0x0065,0x006E,0x0074,0x0020,0x0027,0x007B,0x0031,0x007D,
+      0x0027,0x00 }
+  , { 0x0052,0x0065,0x0063,0x0075,0x0072,0x0073,0x0065,0x0041,0x0073,0x0049,0x0066,0x0047,0x0072,0x006F,0x0075,0x0070,0x003A,0x0020,0x0045,0x006C,0x0065,0x006D,0x0065,0x006E,0x0074,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0062,0x0065,0x006C,
+      0x006F,0x006E,0x0067,0x0073,0x0020,0x0074,0x006F,0x0020,0x0061,0x0020,0x0067,0x0072,0x006F,0x0075,0x0070,0x0020,0x006F,0x0066,0x0020,0x0061,0x0020,0x0076,0x0061,0x0072,0x0069,0x0065,0x0074,0x0079,0x0020,0x0064,0x0069,0x0066,0x0066,0x0065,0x0072,
+      0x0065,0x006E,0x0074,0x0020,0x0066,0x0072,0x006F,0x006D,0x0020,0x0074,0x0068,0x0061,0x0074,0x0020,0x006F,0x0066,0x0020,0x0074,0x0068,0x0065,0x0020,0x0062,0x0061,0x0073,0x0065,0x00 }
+  , { 0x004F,0x0063,0x0063,0x0075,0x0072,0x0072,0x0065,0x006E,0x0063,0x0065,0x0020,0x0072,0x0061,0x006E,0x0067,0x0065,0x0020,0x006F,0x0066,0x0020,0x0067,0x0072,0x006F,0x0075,0x0070,0x0020,0x0069,0x0073,0x0020,0x006E,0x006F,0x0074,0x0020,0x0061,0x0020,
+      0x0076,0x0061,0x006C,0x0069,0x0064,0x0020,0x0072,0x0065,0x0073,0x0074,0x0072,0x0069,0x0063,0x0074,0x0069,0x006F,0x006E,0x0020,0x006F,0x0066,0x0020,0x006F,0x0063,0x0063,0x0075,0x0072,0x0072,0x0065,0x006E,0x0063,0x0065,0x0020,0x0072,0x0061,0x006E,
+      0x0067,0x0065,0x0020,0x006F,0x0066,0x0020,0x0062,0x0061,0x0073,0x0065,0x0020,0x0067,0x0072,0x006F,0x0075,0x0070,0x00 }
+  , { 0x0052,0x0065,0x0063,0x0075,0x0072,0x0073,0x0065,0x003A,0x0020,0x0054,0x0068,0x0065,0x0072,0x0065,0x0020,0x0069,0x0073,0x0020,0x006E,0x006F,0x0074,0x0020,0x0061,0x0020,0x0063,0x006F,0x006D,0x0070,0x006C,0x0065,0x0074,0x0065,0x0020,0x0066,0x0075,
+      0x006E,0x0063,0x0074,0x0069,0x006F,0x006E,0x0061,0x006C,0x0020,0x006D,0x0061,0x0070,0x0070,0x0069,0x006E,0x0067,0x0020,0x0062,0x0065,0x0074,0x0077,0x0065,0x0065,0x006E,0x0020,0x0074,0x0068,0x0065,0x0020,0x0070,0x0061,0x0072,0x0074,0x0069,0x0063,
+      0x006C,0x0065,0x0073,0x00 }
+  , { 0x0046,0x006F,0x0072,0x0062,0x0069,0x0064,0x0064,0x0065,0x006E,0x0020,0x0072,0x0065,0x0073,0x0074,0x0072,0x0069,0x0063,0x0074,0x0069,0x006F,0x006E,0x0020,0x006F,0x0066,0x0020,0x0027,0x0061,0x006E,0x0079,0x0027,0x003A,0x0020,0x0043,0x0068,0x006F,
+      0x0069,0x0063,0x0065,0x002C,0x0053,0x0065,0x0071,0x002C,0x0041,0x006C,0x006C,0x002C,0x0045,0x006C,0x0074,0x00 }
+  , { 0x0046,0x006F,0x0072,0x0062,0x0069,0x0064,0x0064,0x0065,0x006E,0x0020,0x0072,0x0065,0x0073,0x0074,0x0072,0x0069,0x0063,0x0074,0x0069,0x006F,0x006E,0x0020,0x006F,0x0066,0x0020,0x0027,0x0061,0x006C,0x006C,0x0027,0x003A,0x0020,0x0043,0x0068,0x006F,
+      0x0069,0x0063,0x0065,0x002C,0x0053,0x0065,0x0071,0x002C,0x0045,0x006C,0x0074,0x00 }
+  , { 0x0046,0x006F,0x0072,0x0062,0x0069,0x0064,0x0064,0x0065,0x006E,0x0020,0x0072,0x0065,0x0073,0x0074,0x0072,0x0069,0x0063,0x0074,0x0069,0x006F,0x006E,0x0020,0x006F,0x0066,0x0020,0x0027,0x0063,0x0068,0x006F,0x0069,0x0063,0x0065,0x0027,0x003A,0x0020,
+      0x0041,0x006C,0x006C,0x002C,0x0053,0x0065,0x0071,0x002C,0x004C,0x0065,0x0061,0x0066,0x00 }
+  , { 0x0046,0x006F,0x0072,0x0062,0x0069,0x0064,0x0064,0x0065,0x006E,0x0020,0x0072,0x0065,0x0073,0x0074,0x0072,0x0069,0x0063,0x0074,0x0069,0x006F,0x006E,0x0020,0x006F,0x0066,0x0020,0x0027,0x0073,0x0065,0x0071,0x0075,0x0065,0x006E,0x0063,0x0065,0x0027,
+      0x003A,0x0020,0x0045,0x006C,0x0074,0x00 }
+  , { 0x0057,0x0069,0x006C,0x0064,0x0063,0x0061,0x0072,0x0064,0x0027,0x0073,0x0020,0x006F,0x0063,0x0063,0x0075,0x0072,0x0072,0x0065,0x006E,0x0063,0x0065,0x0020,0x0072,0x0061,0x006E,0x0067,0x0065,0x0020,0x006E,0x006F,0x0074,0x0020,0x0061,0x0020,0x0072,
+      0x0065,0x0073,0x0074,0x0072,0x0069,0x0063,0x0074,0x0069,0x006F,0x006E,0x0020,0x006F,0x0066,0x0020,0x0062,0x0061,0x0073,0x0065,0x0020,0x0077,0x0069,0x006C,0x0064,0x0063,0x0061,0x0072,0x0064,0x0027,0x0073,0x0020,0x0072,0x0061,0x006E,0x0067,0x0065,
+      0x00 }
+  , { 0x0057,0x0069,0x006C,0x0064,0x0063,0x0061,0x0072,0x0064,0x0020,0x0069,0x0073,0x0020,0x006E,0x006F,0x0074,0x0020,0x0061,0x0020,0x0073,0x0075,0x0062,0x0073,0x0065,0x0074,0x0020,0x006F,0x0066,0x0020,0x0063,0x006F,0x0072,0x0072,0x0065,0x0073,0x0070,
+      0x006F,0x006E,0x0064,0x0069,0x006E,0x0067,0x0020,0x0077,0x0069,0x006C,0x0064,0x0063,0x0061,0x0072,0x0064,0x0020,0x0069,0x006E,0x0020,0x0062,0x0061,0x0073,0x0065,0x00 }
+  , { 0x0047,0x0072,0x006F,0x0075,0x0070,0x0027,0x0073,0x0020,0x006F,0x0063,0x0063,0x0075,0x0072,0x0072,0x0065,0x006E,0x0063,0x0065,0x0020,0x0072,0x0061,0x006E,0x0067,0x0065,0x0020,0x006E,0x006F,0x0074,0x0020,0x0061,0x0020,0x0072,0x0065,0x0073,0x0074,
+      0x0072,0x0069,0x0063,0x0074,0x0069,0x006F,0x006E,0x0020,0x006F,0x0066,0x0020,0x0062,0x0061,0x0073,0x0065,0x0020,0x0077,0x0069,0x006C,0x0064,0x0063,0x0061,0x0072,0x0064,0x0027,0x0073,0x0020,0x0072,0x0061,0x006E,0x0067,0x0065,0x00 }
+  , { 0x0052,0x0065,0x0063,0x0075,0x0072,0x0073,0x0065,0x0055,0x006E,0x006F,0x0072,0x0064,0x0065,0x0072,0x0065,0x0064,0x003A,0x0020,0x0054,0x0068,0x0065,0x0072,0x0065,0x0020,0x0069,0x0073,0x0020,0x006E,0x006F,0x0074,0x0020,0x0061,0x0020,0x0063,0x006F,
+      0x006D,0x0070,0x006C,0x0065,0x0074,0x0065,0x0020,0x0066,0x0075,0x006E,0x0063,0x0074,0x0069,0x006F,0x006E,0x0061,0x006C,0x0020,0x006D,0x0061,0x0070,0x0070,0x0069,0x006E,0x0067,0x0020,0x0062,0x0065,0x0074,0x0077,0x0065,0x0065,0x006E,0x0020,0x0074,
+      0x0068,0x0065,0x0020,0x0070,0x0061,0x0072,0x0074,0x0069,0x0063,0x006C,0x0065,0x0073,0x00 }
+  , { 0x004D,0x0061,0x0070,0x0041,0x006E,0x0064,0x0053,0x0075,0x006D,0x003A,0x0020,0x0054,0x0068,0x0065,0x0072,0x0065,0x0020,0x0069,0x0073,0x0020,0x006E,0x006F,0x0074,0x0020,0x0061,0x0020,0x0063,0x006F,0x006D,0x0070,0x006C,0x0065,0x0074,0x0065,0x0020,
+      0x0066,0x0075,0x006E,0x0063,0x0074,0x0069,0x006F,0x006E,0x0061,0x006C,0x0020,0x006D,0x0061,0x0070,0x0070,0x0069,0x006E,0x0067,0x0020,0x0062,0x0065,0x0074,0x0077,0x0065,0x0065,0x006E,0x0020,0x0074,0x0068,0x0065,0x0020,0x0070,0x0061,0x0072,0x0074,
+      0x0069,0x0063,0x006C,0x0065,0x0073,0x00 }
+  , { 0x0050,0x0061,0x0072,0x0074,0x0069,0x0063,0x006C,0x0065,0x0020,0x0064,0x0065,0x0072,0x0069,0x0076,0x0061,0x0074,0x0069,0x006F,0x006E,0x003A,0x0020,0x0049,0x006E,0x0076,0x0061,0x006C,0x0069,0x0064,0x0020,0x0063,0x006F,0x006E,0x0074,0x0065,0x006E,
+      0x0074,0x0020,0x0073,0x0070,0x0065,0x0063,0x0020,0x006E,0x006F,0x0064,0x0065,0x0020,0x0074,0x0079,0x0070,0x0065,0x00 }
+  , { 0x004E,0x006F,0x0064,0x0065,0x0049,0x0044,0x004D,0x0061,0x0070,0x0020,0x006F,0x0076,0x0065,0x0072,0x0066,0x006C,0x006F,0x0077,0x0073,0x0020,0x0061,0x006E,0x0064,0x0020,0x0065,0x0078,0x0063,0x0065,0x0065,0x0064,0x0073,0x0020,0x0074,0x0068,0x0065,
+      0x0020,0x006C,0x0061,0x0072,0x0067,0x0065,0x0073,0x0074,0x0020,0x0061,0x0076,0x0061,0x0069,0x006C,0x0061,0x0062,0x006C,0x0065,0x0020,0x0073,0x0069,0x007A,0x0065,0x00 }
+  , { 0x0050,0x0072,0x006F,0x0074,0x006F,0x0054,0x0079,0x0070,0x0065,0x0020,0x0068,0x0061,0x0073,0x0020,0x006E,0x0075,0x006C,0x006C,0x0020,0x0063,0x006C,0x0061,0x0073,0x0073,0x0020,0x006E,0x0061,0x006D,0x0065,0x00 }
+  , { 0x0050,0x0072,0x006F,0x0074,0x006F,0x0054,0x0079,0x0070,0x0065,0x0020,0x006E,0x0061,0x006D,0x0065,0x0020,0x006C,0x0065,0x006E,0x0067,0x0074,0x0068,0x0020,0x0064,0x0069,0x0066,0x0066,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0076,0x0073,
+      0x0020,0x0027,0x007B,0x0031,0x007D,0x0027,0x00 }
+  , { 0x0050,0x0072,0x006F,0x0074,0x006F,0x0054,0x0079,0x0070,0x0065,0x0020,0x006E,0x0061,0x006D,0x0065,0x0020,0x0064,0x0069,0x0066,0x0066,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0076,0x0073,0x0020,0x0027,0x007B,0x0031,0x007D,0x0027,0x00 }
+  , { 0x0049,0x006E,0x0070,0x0075,0x0074,0x0053,0x0074,0x0072,0x0065,0x0061,0x006D,0x0020,0x0072,0x0065,0x0061,0x0064,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x006C,0x0065,0x0073,0x0073,0x0020,0x0074,0x0068,0x0061,0x006E,0x0020,0x0072,0x0065,
+      0x0071,0x0075,0x0069,0x0072,0x0065,0x0064,0x0020,0x0027,0x007B,0x0031,0x007D,0x0027,0x00 }
+  , { 0x0049,0x006E,0x0070,0x0075,0x0074,0x0053,0x0074,0x0072,0x0065,0x0061,0x006D,0x0020,0x0072,0x0065,0x0061,0x0064,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0062,0x0065,0x0079,0x006F,0x006E,0x0064,0x0020,0x0062,0x0075,0x0066,0x0066,0x0065,
+      0x0072,0x0020,0x0061,0x0076,0x0061,0x0069,0x006C,0x0061,0x0062,0x006C,0x0065,0x0020,0x0027,0x007B,0x0031,0x007D,0x0027,0x00 }
+  , { 0x0053,0x0074,0x006F,0x0072,0x0069,0x006E,0x0067,0x0020,0x0076,0x0069,0x006F,0x006C,0x0061,0x0074,0x0069,0x006F,0x006E,0x00 }
+  , { 0x0053,0x0074,0x006F,0x0072,0x0065,0x0020,0x0062,0x0075,0x0066,0x0066,0x0065,0x0072,0x0020,0x0076,0x0069,0x006F,0x006C,0x0061,0x0074,0x0069,0x006F,0x006E,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x002C,0x0020,0x0027,0x007B,0x0031,0x007D,0x0027,
+      0x00 }
+  , { 0x004F,0x0062,0x006A,0x0065,0x0063,0x0074,0x0020,0x0054,0x0061,0x0067,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0065,0x0078,0x0063,0x0065,0x0065,0x0064,0x0020,0x006C,0x006F,0x0061,0x0064,0x0020,0x0070,0x006F,0x006F,0x006C,0x0020,0x0075,
+      0x0070,0x0070,0x0070,0x0065,0x0072,0x0020,0x0042,0x006F,0x0075,0x006E,0x0064,0x0061,0x0072,0x0079,0x0020,0x0027,0x007B,0x0031,0x007D,0x0027,0x00 }
+  , { 0x004C,0x006F,0x0061,0x0064,0x0020,0x0070,0x006F,0x006F,0x006C,0x0020,0x0073,0x0069,0x007A,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x006E,0x006F,0x0074,0x0020,0x0074,0x0061,0x006C,0x006C,0x0079,0x0020,0x0077,0x0069,0x0074,0x0068,
+      0x0020,0x006F,0x0062,0x006A,0x0065,0x0063,0x0074,0x0020,0x0063,0x006F,0x0075,0x006E,0x0074,0x0020,0x0027,0x007B,0x0031,0x007D,0x0027,0x00 }
+  , { 0x004C,0x006F,0x0061,0x0064,0x0069,0x006E,0x0067,0x0020,0x0076,0x0069,0x006F,0x006C,0x0061,0x0074,0x0069,0x006F,0x006E,0x00 }
+  , { 0x004C,0x006F,0x0061,0x0064,0x0020,0x0062,0x0075,0x0066,0x0066,0x0065,0x0072,0x0020,0x0076,0x0069,0x006F,0x006C,0x0061,0x0074,0x0069,0x006F,0x006E,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x002C,0x0020,0x0027,0x007B,0x0031,0x007D,0x0027,0x00 }
+  , { 0x0049,0x006E,0x0076,0x0061,0x006C,0x0069,0x0064,0x0020,0x0063,0x006C,0x0061,0x0073,0x0073,0x0020,0x0069,0x006E,0x0064,0x0065,0x0078,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x002C,0x0020,0x0027,0x007B,0x0031,0x007D,0x0027,0x00 }
+  , { 0x0049,0x006E,0x0076,0x0061,0x006C,0x0069,0x0064,0x0020,0x0066,0x0069,0x006C,0x006C,0x0042,0x0075,0x0066,0x0066,0x0065,0x0072,0x0020,0x0073,0x0069,0x007A,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x002C,0x0020,0x0027,0x007B,0x0031,0x007D,
+      0x0027,0x00 }
+  , { 0x0049,0x006E,0x0076,0x0061,0x006C,0x0069,0x0064,0x0020,0x0063,0x0068,0x0065,0x0063,0x006B,0x0046,0x0069,0x006C,0x006C,0x0042,0x0075,0x0066,0x0066,0x0065,0x0072,0x0020,0x0073,0x0069,0x007A,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x00 }
+  , { 0x0049,0x006E,0x0076,0x0061,0x006C,0x0069,0x0064,0x0020,0x0063,0x0068,0x0065,0x0063,0x006B,0x0046,0x006C,0x0075,0x0073,0x0068,0x0042,0x0075,0x0066,0x0066,0x0065,0x0072,0x0020,0x0073,0x0069,0x007A,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,
+      0x00 }
+  , { 0x0049,0x006E,0x0076,0x0061,0x006C,0x0069,0x0064,0x0020,0x006E,0x0075,0x006C,0x006C,0x0020,0x0070,0x006F,0x0069,0x006E,0x0074,0x0065,0x0072,0x0020,0x0065,0x006E,0x0063,0x006F,0x0075,0x006E,0x0074,0x0065,0x0072,0x0065,0x0064,0x0020,0x0027,0x007B,
+      0x0030,0x007D,0x0027,0x00 }
+  , { 0x0049,0x006E,0x0076,0x0061,0x006C,0x0069,0x0064,0x0020,0x0062,0x0075,0x0066,0x0066,0x0065,0x0072,0x0020,0x006C,0x0065,0x006E,0x0067,0x0074,0x0068,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x00 }
+  , { 0x0043,0x0072,0x0065,0x0061,0x0074,0x0065,0x004F,0x0062,0x006A,0x0065,0x0063,0x0074,0x0020,0x0066,0x0061,0x0069,0x006C,0x0073,0x0020,0x00 }
+  , { 0x004F,0x0062,0x006A,0x0065,0x0063,0x0074,0x0020,0x0063,0x006F,0x0075,0x006E,0x0074,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0065,0x0078,0x0063,0x0065,0x0065,0x0064,0x0020,0x0075,0x0070,0x0070,0x0065,0x0072,0x0020,0x0062,0x006F,0x0075,
+      0x006E,0x0064,0x0061,0x0072,0x0079,0x0020,0x0027,0x007B,0x0031,0x007D,0x0027,0x00 }
+  , { 0x0047,0x0072,0x0061,0x006D,0x006D,0x0061,0x0072,0x0020,0x0050,0x006F,0x006F,0x006C,0x0020,0x0069,0x0073,0x0020,0x006C,0x006F,0x0063,0x006B,0x0065,0x0064,0x0020,0x0062,0x0079,0x0020,0x006F,0x0074,0x0068,0x0065,0x0072,0x0020,0x0070,0x0061,0x0072,
+      0x0074,0x0079,0x00 }
+  , { 0x0047,0x0072,0x0061,0x006D,0x006D,0x0061,0x0072,0x0020,0x0050,0x006F,0x006F,0x006C,0x0020,0x0069,0x0073,0x0020,0x0065,0x006D,0x0070,0x0074,0x0079,0x00 }
+  , { 0x0047,0x0072,0x0061,0x006D,0x006D,0x0061,0x0072,0x0020,0x0050,0x006F,0x006F,0x006C,0x0020,0x0069,0x0073,0x0020,0x004E,0x004F,0x0054,0x0020,0x0065,0x006D,0x0070,0x0074,0x0079,0x00 }
+  , { 0x0053,0x0074,0x0072,0x0069,0x006E,0x0067,0x0020,0x0050,0x006F,0x006F,0x006C,0x0020,0x0069,0x0073,0x0020,0x004E,0x004F,0x0054,0x0020,0x0065,0x006D,0x0070,0x0074,0x0079,0x00 }
+  , { 0x0053,0x0074,0x006F,0x0072,0x0065,0x0072,0x0020,0x004C,0x0065,0x0076,0x0065,0x006C,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0069,0x0073,0x0020,0x006E,0x0065,0x0077,0x0065,0x0072,0x0020,0x0074,0x0068,0x0061,0x006E,0x0020,0x004C,0x006F,
+      0x0061,0x0064,0x0065,0x0072,0x0020,0x004C,0x0065,0x0076,0x0065,0x006C,0x0027,0x007B,0x0031,0x007D,0x0027,0x0020,0x00 }
+  , { 0x0056,0x0061,0x006C,0x0075,0x0065,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0069,0x0073,0x0020,0x006E,0x006F,0x0074,0x0020,0x0076,0x0061,0x006C,0x0069,0x0064,0x0020,0x0051,0x004E,0x0061,0x006D,0x0065,0x0020,0x0062,0x0065,0x0063,0x0061,
+      0x0075,0x0073,0x0065,0x0020,0x0074,0x0068,0x0065,0x0020,0x0070,0x0072,0x0065,0x0066,0x0069,0x0078,0x0020,0x0069,0x0073,0x0020,0x006E,0x006F,0x0074,0x0020,0x0064,0x0065,0x0066,0x0069,0x006E,0x0065,0x0064,0x00 }
+  , { 0x0046,0x005F,0x0045,0x006E,0x0064,0x00 }
+
+};
+const unsigned int gXMLExceptArraySize = 405;
+
+const XMLCh gXMLDOMMsgArray[][128] = 
+{
+    { 0x0046,0x005F,0x0053,0x0074,0x0061,0x0072,0x0074,0x00 }
+  , { 0x004A,0x0075,0x0073,0x0074,0x0020,0x0061,0x006E,0x0020,0x0069,0x006E,0x0064,0x0065,0x0078,0x00 }
+  , { 0x0054,0x0068,0x0065,0x0020,0x0069,0x006E,0x0064,0x0065,0x0078,0x0020,0x006F,0x0072,0x0020,0x0073,0x0069,0x007A,0x0065,0x0020,0x0069,0x0073,0x0020,0x006E,0x0065,0x0067,0x0061,0x0074,0x0069,0x0076,0x0065,0x002C,0x0020,0x006F,0x0072,0x0020,0x0067,
+      0x0072,0x0065,0x0061,0x0074,0x0065,0x0072,0x0020,0x0074,0x0068,0x0061,0x006E,0x0020,0x0074,0x0068,0x0065,0x0020,0x0061,0x006C,0x006C,0x006F,0x0077,0x0065,0x0064,0x0020,0x0076,0x0061,0x006C,0x0075,0x0065,0x00 }
+  , { 0x0054,0x0068,0x0065,0x0020,0x0073,0x0070,0x0065,0x0063,0x0069,0x0066,0x0069,0x0065,0x0064,0x0020,0x0072,0x0061,0x006E,0x0067,0x0065,0x0020,0x006F,0x0066,0x0020,0x0074,0x0065,0x0078,0x0074,0x0020,0x0064,0x006F,0x0065,0x0073,0x0020,0x006E,0x006F,
+      0x0074,0x0020,0x0066,0x0069,0x0074,0x0020,0x0069,0x006E,0x0074,0x006F,0x0020,0x0074,0x0068,0x0065,0x0020,0x0053,0x0074,0x0072,0x0069,0x006E,0x0067,0x00 }
+  , { 0x0041,0x006E,0x0020,0x0061,0x0074,0x0074,0x0065,0x006D,0x0070,0x0074,0x0020,0x0077,0x0061,0x0073,0x0020,0x006D,0x0061,0x0064,0x0065,0x0020,0x0074,0x006F,0x0020,0x0069,0x006E,0x0073,0x0065,0x0072,0x0074,0x0020,0x0061,0x0020,0x006E,0x006F,0x0064,
+      0x0065,0x0020,0x0077,0x0068,0x0065,0x0072,0x0065,0x0020,0x0069,0x0074,0x0020,0x0069,0x0073,0x0020,0x006E,0x006F,0x0074,0x0020,0x0070,0x0065,0x0072,0x006D,0x0069,0x0074,0x0074,0x0065,0x0064,0x00 }
+  , { 0x0041,0x0020,0x006E,0x006F,0x0064,0x0065,0x0020,0x0069,0x0073,0x0020,0x0075,0x0073,0x0065,0x0064,0x0020,0x0069,0x006E,0x0020,0x0061,0x0020,0x0064,0x0069,0x0066,0x0066,0x0065,0x0072,0x0065,0x006E,0x0074,0x0020,0x0064,0x006F,0x0063,0x0075,0x006D,
+      0x0065,0x006E,0x0074,0x0020,0x0074,0x0068,0x0061,0x006E,0x0020,0x0074,0x0068,0x0065,0x0020,0x006F,0x006E,0x0065,0x0020,0x0074,0x0068,0x0061,0x0074,0x0020,0x0063,0x0072,0x0065,0x0061,0x0074,0x0065,0x0064,0x0020,0x0069,0x0074,0x00 }
+  , { 0x0041,0x006E,0x0020,0x0069,0x006E,0x0076,0x0061,0x006C,0x0069,0x0064,0x0020,0x006F,0x0072,0x0020,0x0069,0x006C,0x006C,0x0065,0x0067,0x0061,0x006C,0x0020,0x0058,0x004D,0x004C,0x0020,0x0063,0x0068,0x0061,0x0072,0x0061,0x0063,0x0074,0x0065,0x0072,
+      0x0020,0x0069,0x0073,0x0020,0x0073,0x0070,0x0065,0x0063,0x0069,0x0066,0x0069,0x0065,0x0064,0x00 }
+  , { 0x0044,0x0061,0x0074,0x0061,0x0020,0x0069,0x0073,0x0020,0x0073,0x0070,0x0065,0x0063,0x0069,0x0066,0x0069,0x0065,0x0064,0x0020,0x0066,0x006F,0x0072,0x0020,0x0061,0x0020,0x006E,0x006F,0x0064,0x0065,0x0020,0x0077,0x0068,0x0069,0x0063,0x0068,0x0020,
+      0x0064,0x006F,0x0065,0x0073,0x0020,0x006E,0x006F,0x0074,0x0020,0x0073,0x0075,0x0070,0x0070,0x006F,0x0072,0x0074,0x0020,0x0064,0x0061,0x0074,0x0061,0x00 }
+  , { 0x0041,0x006E,0x0020,0x0061,0x0074,0x0074,0x0065,0x006D,0x0070,0x0074,0x0020,0x0069,0x0073,0x0020,0x006D,0x0061,0x0064,0x0065,0x0020,0x0074,0x006F,0x0020,0x006D,0x006F,0x0064,0x0069,0x0066,0x0079,0x0020,0x0061,0x006E,0x0020,0x006F,0x0062,0x006A,
+      0x0065,0x0063,0x0074,0x0020,0x0077,0x0068,0x0065,0x0072,0x0065,0x0020,0x006D,0x006F,0x0064,0x0069,0x0066,0x0069,0x0063,0x0061,0x0074,0x0069,0x006F,0x006E,0x0073,0x0020,0x0061,0x0072,0x0065,0x0020,0x006E,0x006F,0x0074,0x0020,0x0061,0x006C,0x006C,
+      0x006F,0x0077,0x0065,0x0064,0x00 }
+  , { 0x0041,0x006E,0x0020,0x0061,0x0074,0x0074,0x0065,0x006D,0x0070,0x0074,0x0020,0x0069,0x0073,0x0020,0x006D,0x0061,0x0064,0x0065,0x0020,0x0074,0x006F,0x0020,0x0072,0x0065,0x0066,0x0065,0x0072,0x0065,0x006E,0x0063,0x0065,0x0020,0x0061,0x0020,0x006E,
+      0x006F,0x0064,0x0065,0x0020,0x0069,0x006E,0x0020,0x0061,0x0020,0x0063,0x006F,0x006E,0x0074,0x0065,0x0078,0x0074,0x0020,0x0077,0x0068,0x0065,0x0072,0x0065,0x0020,0x0069,0x0074,0x0020,0x0064,0x006F,0x0065,0x0073,0x0020,0x006E,0x006F,0x0074,0x0020,
+      0x0065,0x0078,0x0069,0x0073,0x0074,0x00 }
+  , { 0x0054,0x0068,0x0065,0x0020,0x0069,0x006D,0x0070,0x006C,0x0065,0x006D,0x0065,0x006E,0x0074,0x0061,0x0074,0x0069,0x006F,0x006E,0x0020,0x0064,0x006F,0x0065,0x0073,0x0020,0x006E,0x006F,0x0074,0x0020,0x0073,0x0075,0x0070,0x0070,0x006F,0x0072,0x0074,
+      0x0020,0x0074,0x0068,0x0065,0x0020,0x0072,0x0065,0x0071,0x0075,0x0065,0x0073,0x0074,0x0065,0x0064,0x0020,0x0074,0x0079,0x0070,0x0065,0x0020,0x006F,0x0066,0x0020,0x006F,0x0062,0x006A,0x0065,0x0063,0x0074,0x0020,0x006F,0x0072,0x0020,0x006F,0x0070,
+      0x0065,0x0072,0x0061,0x0074,0x0069,0x006F,0x006E,0x00 }
+  , { 0x0041,0x006E,0x0020,0x0061,0x0074,0x0074,0x0065,0x006D,0x0070,0x0074,0x0020,0x0069,0x0073,0x0020,0x006D,0x0061,0x0064,0x0065,0x0020,0x0074,0x006F,0x0020,0x0061,0x0064,0x0064,0x0020,0x0061,0x006E,0x0020,0x0061,0x0074,0x0074,0x0072,0x0069,0x0062,
+      0x0075,0x0074,0x0065,0x0020,0x0074,0x0068,0x0061,0x0074,0x0020,0x0069,0x0073,0x0020,0x0061,0x006C,0x0072,0x0065,0x0061,0x0064,0x0079,0x0020,0x0069,0x006E,0x0020,0x0075,0x0073,0x0065,0x0020,0x0065,0x006C,0x0073,0x0065,0x0077,0x0068,0x0065,0x0072,
+      0x0065,0x00 }
+  , { 0x0041,0x0020,0x0070,0x0061,0x0072,0x0061,0x006D,0x0065,0x0074,0x0065,0x0072,0x0020,0x006F,0x0072,0x0020,0x0061,0x006E,0x0020,0x006F,0x0070,0x0065,0x0072,0x0061,0x0074,0x0069,0x006F,0x006E,0x0020,0x0069,0x0073,0x0020,0x006E,0x006F,0x0074,0x0020,
+      0x0073,0x0075,0x0070,0x0070,0x006F,0x0072,0x0074,0x0065,0x0064,0x0020,0x0062,0x0079,0x0020,0x0074,0x0068,0x0065,0x0020,0x0075,0x006E,0x0064,0x0065,0x0072,0x006C,0x0079,0x0069,0x006E,0x0067,0x0020,0x006F,0x0062,0x006A,0x0065,0x0063,0x0074,0x00 }
+  , { 0x0041,0x006E,0x0020,0x0069,0x006E,0x0076,0x0061,0x006C,0x0069,0x0064,0x0020,0x006F,0x0072,0x0020,0x0069,0x006C,0x006C,0x0065,0x0067,0x0061,0x006C,0x0020,0x0073,0x0074,0x0072,0x0069,0x006E,0x0067,0x0020,0x0069,0x0073,0x0020,0x0073,0x0070,0x0065,
+      0x0063,0x0069,0x0066,0x0069,0x0065,0x0064,0x00 }
+  , { 0x0041,0x006E,0x0020,0x0061,0x0074,0x0074,0x0065,0x006D,0x0070,0x0074,0x0020,0x0069,0x0073,0x0020,0x006D,0x0061,0x0064,0x0065,0x0020,0x0074,0x006F,0x0020,0x006D,0x006F,0x0064,0x0069,0x0066,0x0079,0x0020,0x0074,0x0068,0x0065,0x0020,0x0074,0x0079,
+      0x0070,0x0065,0x0020,0x006F,0x0066,0x0020,0x0074,0x0068,0x0065,0x0020,0x0075,0x006E,0x0064,0x0065,0x0072,0x006C,0x0079,0x0069,0x006E,0x0067,0x0020,0x006F,0x0062,0x006A,0x0065,0x0063,0x0074,0x00 }
+  , { 0x0041,0x006E,0x0020,0x0061,0x0074,0x0074,0x0065,0x006D,0x0070,0x0074,0x0020,0x0069,0x0073,0x0020,0x006D,0x0061,0x0064,0x0065,0x0020,0x0074,0x006F,0x0020,0x0063,0x0072,0x0065,0x0061,0x0074,0x0065,0x0020,0x006F,0x0072,0x0020,0x0063,0x0068,0x0061,
+      0x006E,0x0067,0x0065,0x0020,0x0061,0x006E,0x0020,0x006F,0x0062,0x006A,0x0065,0x0063,0x0074,0x0020,0x0069,0x006E,0x0020,0x0061,0x0020,0x0077,0x0061,0x0079,0x0020,0x0077,0x0068,0x0069,0x0063,0x0068,0x0020,0x0069,0x0073,0x0020,0x0069,0x006E,0x0063,
+      0x006F,0x0072,0x0072,0x0065,0x0063,0x0074,0x0020,0x0077,0x0069,0x0074,0x0068,0x0020,0x0072,0x0065,0x0067,0x0061,0x0072,0x0064,0x0020,0x0074,0x006F,0x0020,0x006E,0x0061,0x006D,0x0065,0x0073,0x0070,0x0061,0x0063,0x0065,0x0073,0x00 }
+  , { 0x0041,0x006E,0x0020,0x0061,0x0074,0x0074,0x0065,0x006D,0x0070,0x0074,0x0020,0x0069,0x0073,0x0020,0x006D,0x0061,0x0064,0x0065,0x0020,0x0074,0x006F,0x0020,0x0075,0x0073,0x0065,0x0020,0x0061,0x006E,0x0020,0x006F,0x0062,0x006A,0x0065,0x0063,0x0074,
+      0x0020,0x0074,0x0068,0x0061,0x0074,0x0020,0x0069,0x0073,0x0020,0x006E,0x006F,0x0074,0x002C,0x0020,0x006F,0x0072,0x0020,0x0069,0x0073,0x0020,0x006E,0x006F,0x0020,0x006C,0x006F,0x006E,0x0067,0x0065,0x0072,0x002C,0x0020,0x0075,0x0073,0x0061,0x0062,
+      0x006C,0x0065,0x00 }
+  , { 0x0041,0x0020,0x0063,0x0061,0x006C,0x006C,0x0020,0x0074,0x006F,0x0020,0x0061,0x0020,0x006D,0x0065,0x0074,0x0068,0x006F,0x0064,0x0020,0x0073,0x0075,0x0063,0x0068,0x0020,0x0061,0x0073,0x0020,0x0069,0x006E,0x0073,0x0065,0x0072,0x0074,0x0042,0x0065,
+      0x0066,0x006F,0x0072,0x0065,0x0020,0x006F,0x0072,0x0020,0x0072,0x0065,0x006D,0x006F,0x0076,0x0065,0x0043,0x0068,0x0069,0x006C,0x0064,0x0020,0x0077,0x006F,0x0075,0x006C,0x0064,0x0020,0x006D,0x0061,0x006B,0x0065,0x0020,0x0074,0x0068,0x0065,0x0020,
+      0x004E,0x006F,0x0064,0x0065,0x0020,0x0069,0x006E,0x0076,0x0061,0x006C,0x0069,0x0064,0x0020,0x0077,0x0069,0x0074,0x0068,0x0020,0x0072,0x0065,0x0073,0x0070,0x0065,0x0063,0x0074,0x0020,0x0074,0x006F,0x0020,0x0064,0x006F,0x0063,0x0075,0x006D,0x0065,
+      0x006E,0x0074,0x0020,0x0067,0x0072,0x0061,0x006D,0x006D,0x0061,0x0072,0x00 }
+  , { 0x004A,0x0075,0x0073,0x0074,0x0020,0x0061,0x006E,0x0020,0x0069,0x006E,0x0064,0x0065,0x0078,0x00 }
+  , { 0x0054,0x0068,0x0065,0x0020,0x0062,0x006F,0x0075,0x006E,0x0064,0x0061,0x0072,0x0079,0x002D,0x0070,0x006F,0x0069,0x006E,0x0074,0x0073,0x0020,0x006F,0x0066,0x0020,0x0061,0x0020,0x0052,0x0061,0x006E,0x0067,0x0065,0x0020,0x0064,0x006F,0x0020,0x006E,
+      0x006F,0x0074,0x0020,0x006D,0x0065,0x0065,0x0074,0x0020,0x0073,0x0070,0x0065,0x0063,0x0069,0x0066,0x0069,0x0063,0x0020,0x0072,0x0065,0x0071,0x0075,0x0069,0x0072,0x0065,0x006D,0x0065,0x006E,0x0074,0x0073,0x00 }
+  , { 0x0054,0x0068,0x0065,0x0020,0x0063,0x006F,0x006E,0x0074,0x0061,0x0069,0x006E,0x0065,0x0072,0x0020,0x006F,0x0066,0x0020,0x0061,0x0020,0x0052,0x0061,0x006E,0x0067,0x0065,0x0027,0x0073,0x0020,0x0062,0x006F,0x0075,0x006E,0x0064,0x0061,0x0072,0x0079,
+      0x002D,0x0070,0x006F,0x0069,0x006E,0x0074,0x0020,0x0069,0x0073,0x0020,0x0073,0x0065,0x0074,0x0020,0x0074,0x006F,0x0020,0x0061,0x0020,0x006E,0x006F,0x0064,0x0065,0x0020,0x006F,0x0066,0x0020,0x0061,0x006E,0x0020,0x0069,0x006E,0x0076,0x0061,0x006C,
+      0x0069,0x0064,0x0020,0x0074,0x0079,0x0070,0x0065,0x0020,0x006F,0x0072,0x0020,0x0074,0x006F,0x0020,0x0061,0x0020,0x006E,0x006F,0x0064,0x0065,0x0020,0x0077,0x0069,0x0074,0x0068,0x0020,0x0061,0x006E,0x0020,0x0061,0x006E,0x0063,0x0065,0x0073,0x0074,
+      0x006F,0x0072,0x0020,0x006F,0x0066,0x0020,0x0061,0x006E,0x0020,0x0069,0x006E,0x0076,0x0061,0x006C,0x0069,0x0064,0x0020,0x0074,0x0079,0x0070,0x0065,0x00 }
+  , { 0x004E,0x0065,0x0073,0x0074,0x0065,0x0064,0x0020,0x0043,0x0044,0x0041,0x0054,0x0041,0x0020,0x0073,0x0065,0x0063,0x0074,0x0069,0x006F,0x006E,0x0073,0x00 }
+  , { 0x0055,0x006E,0x0072,0x0065,0x0070,0x0072,0x0065,0x0073,0x0065,0x006E,0x0074,0x0061,0x0062,0x006C,0x0065,0x0020,0x0063,0x0068,0x0061,0x0072,0x0061,0x0063,0x0074,0x0065,0x0072,0x0020,0x0064,0x0061,0x0074,0x0061,0x00 }
+  , { 0x0055,0x006E,0x0072,0x0065,0x0063,0x006F,0x0067,0x006E,0x0069,0x007A,0x0065,0x0064,0x0020,0x004E,0x006F,0x0064,0x0065,0x0020,0x0054,0x0079,0x0070,0x0065,0x00 }
+  , { 0x0046,0x005F,0x0045,0x006E,0x0064,0x00 }
+
+};
+const unsigned int gXMLDOMMsgArraySize = 30;
+
+XERCES_CPP_NAMESPACE_END
+
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/MsgLoaders/InMemory/InMemMsgLoader.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/MsgLoaders/InMemory/InMemMsgLoader.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/MsgLoaders/InMemory/InMemMsgLoader.hpp	(revision 2674)
@@ -0,0 +1,102 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: InMemMsgLoader.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+#if !defined(INMEMMSGLOADER_HPP)
+#define INMEMMSGLOADER_HPP
+
+#include <xercesc/util/XercesDefs.hpp>
+#include <xercesc/util/XMLMsgLoader.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+//
+//  This is a simple in memory message loader implementation. For those
+//  folks who just want a single language and want something very fast and
+//  efficient, can basically just provide a couple of arrays of Unicode
+//  strings that can be looked up by the message id.
+//
+class XMLUTIL_EXPORT InMemMsgLoader : public XMLMsgLoader
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Public Constructors and Destructor
+    // -----------------------------------------------------------------------
+    InMemMsgLoader(const XMLCh* const msgDomain);
+    ~InMemMsgLoader();
+
+
+    // -----------------------------------------------------------------------
+    //  Implementation of the virtual message loader API
+    // -----------------------------------------------------------------------
+    virtual bool loadMsg
+    (
+        const   XMLMsgLoader::XMLMsgId  msgToLoad
+        ,       XMLCh* const            toFill
+        , const unsigned int            maxChars
+    );
+
+    virtual bool loadMsg
+    (
+        const   XMLMsgLoader::XMLMsgId  msgToLoad
+        ,       XMLCh* const            toFill
+        , const unsigned int            maxChars
+        , const XMLCh* const            repText1
+        , const XMLCh* const            repText2 = 0
+        , const XMLCh* const            repText3 = 0
+        , const XMLCh* const            repText4 = 0
+        , MemoryManager* const          manager  = XMLPlatformUtils::fgMemoryManager
+    );
+
+    virtual bool loadMsg
+    (
+        const   XMLMsgLoader::XMLMsgId  msgToLoad
+        ,       XMLCh* const            toFill
+        , const unsigned int            maxChars
+        , const char* const             repText1
+        , const char* const             repText2 = 0
+        , const char* const             repText3 = 0
+        , const char* const             repText4 = 0
+        , MemoryManager * const         manager  = XMLPlatformUtils::fgMemoryManager
+    );
+
+
+private :
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    InMemMsgLoader();
+    InMemMsgLoader(const InMemMsgLoader&);
+    InMemMsgLoader& operator=(const InMemMsgLoader&);
+
+
+    // -----------------------------------------------------------------------
+    //  Private data members
+    //
+    //  fMsgDomain
+    //      This is the message domain that we are for loading message from.
+    // -----------------------------------------------------------------------
+    XMLCh*  fMsgDomain;
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/MsgLoaders/ICU/ICUMsgLoader.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/MsgLoaders/ICU/ICUMsgLoader.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/MsgLoaders/ICU/ICUMsgLoader.hpp	(revision 2674)
@@ -0,0 +1,108 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: ICUMsgLoader.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+#if !defined(ICUMSGLOADER_HPP)
+#define ICUMSGLOADER_HPP
+
+#include <xercesc/util/XMLMsgLoader.hpp>
+#include "unicode/ures.h"
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+//
+//  This is the ICU specific implementation of the XMLMsgLoader interface.
+//  This one uses ICU resource bundles to store its messages.
+//
+class XMLUTIL_EXPORT ICUMsgLoader : public XMLMsgLoader
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Public Constructors and Destructor
+    // -----------------------------------------------------------------------
+    ICUMsgLoader(const XMLCh* const  msgDomain);
+    ~ICUMsgLoader();
+
+
+    // -----------------------------------------------------------------------
+    //  Implementation of the virtual message loader API
+    // -----------------------------------------------------------------------
+    virtual bool loadMsg
+    (
+        const   XMLMsgLoader::XMLMsgId  msgToLoad
+        ,       XMLCh* const            toFill
+        , const unsigned int           maxChars
+    );
+
+    virtual bool loadMsg
+    (
+        const   XMLMsgLoader::XMLMsgId  msgToLoad
+        ,       XMLCh* const            toFill
+        , const unsigned int            maxChars
+        , const XMLCh* const            repText1
+        , const XMLCh* const            repText2 = 0
+        , const XMLCh* const            repText3 = 0
+        , const XMLCh* const            repText4 = 0
+        , MemoryManager* const          manager  = XMLPlatformUtils::fgMemoryManager
+    );
+
+    virtual bool loadMsg
+    (
+        const   XMLMsgLoader::XMLMsgId  msgToLoad
+        ,       XMLCh* const            toFill
+        , const unsigned int            maxChars
+        , const char* const             repText1
+        , const char* const             repText2 = 0
+        , const char* const             repText3 = 0
+        , const char* const             repText4 = 0
+        , MemoryManager * const         manager  = XMLPlatformUtils::fgMemoryManager
+    );
+
+
+private :
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    ICUMsgLoader();
+    ICUMsgLoader(const ICUMsgLoader&);
+    ICUMsgLoader& operator=(const ICUMsgLoader&);
+
+
+    // -----------------------------------------------------------------------
+    //  Private data members
+    //
+    //  fLocaleBundle
+    //      pointer to the required locale specific resource bundle,
+	//           or to the default locale resrouce bundle in case the required
+	//              locale specific resource bundle unavailable.
+    //
+    //  fDomainBundle
+    //      pointer to the domain specific resource bundle with in the
+	//              required locale specific (or default locale) resource bundle.
+    //
+    // -----------------------------------------------------------------------
+    UResourceBundle*      fLocaleBundle;
+    UResourceBundle*      fDomainBundle;
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/MsgLoaders/MsgCatalog/XMLMsgCat_Ids.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/MsgLoaders/MsgCatalog/XMLMsgCat_Ids.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/MsgLoaders/MsgCatalog/XMLMsgCat_Ids.hpp	(revision 2674)
@@ -0,0 +1,16 @@
+// ----------------------------------------------------------------
+//  This file was generated from the XML error message source.
+//  so do not edit this file directly!!
+// ----------------------------------------------------------------
+
+#include <xercesc/util/XercesDefs.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+const unsigned int CatId_XMLErrs = 1;
+const unsigned int CatId_XMLValid = 2;
+const unsigned int CatId_XMLExcepts = 3;
+const unsigned int CatId_XMLDOMMsg = 4;
+
+XERCES_CPP_NAMESPACE_END
+
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/MsgLoaders/MsgCatalog/MsgCatalogLoader.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/MsgLoaders/MsgCatalog/MsgCatalogLoader.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/MsgLoaders/MsgCatalog/MsgCatalogLoader.hpp	(revision 2674)
@@ -0,0 +1,106 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: MsgCatalogLoader.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(ICONVMSGLOADER_HPP)
+#define ICONVMSGLOADER_HPP
+
+#include <xercesc/util/XercesDefs.hpp>
+#include <xercesc/util/XMLMsgLoader.hpp>
+
+#include <nl_types.h>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+//
+//  This is a simple in Iconv RC message loader implementation.
+//
+class XMLUTIL_EXPORT MsgCatalogLoader : public XMLMsgLoader
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Public Constructors and Destructor
+    // -----------------------------------------------------------------------
+    MsgCatalogLoader(const XMLCh* const msgDomain);
+    ~MsgCatalogLoader();
+
+
+    // -----------------------------------------------------------------------
+    //  Implementation of the virtual message loader API
+    // -----------------------------------------------------------------------
+    virtual bool loadMsg
+    (
+        const   XMLMsgLoader::XMLMsgId  msgToLoad
+        ,       XMLCh* const            toFill
+        , const unsigned int            maxChars
+    );
+
+    virtual bool loadMsg
+    (
+        const   XMLMsgLoader::XMLMsgId  msgToLoad
+        ,       XMLCh* const            toFill
+        , const unsigned int            maxChars
+        , const XMLCh* const            repText1
+        , const XMLCh* const            repText2 = 0
+        , const XMLCh* const            repText3 = 0
+        , const XMLCh* const            repText4 = 0
+        , MemoryManager* const          manager  = XMLPlatformUtils::fgMemoryManager
+    );
+
+    virtual bool loadMsg
+    (
+        const   XMLMsgLoader::XMLMsgId  msgToLoad
+        ,       XMLCh* const            toFill
+        , const unsigned int            maxChars
+        , const char* const             repText1
+        , const char* const             repText2 = 0
+        , const char* const             repText3 = 0
+        , const char* const             repText4 = 0
+        , MemoryManager * const         manager  = XMLPlatformUtils::fgMemoryManager
+    );
+
+
+private :
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    MsgCatalogLoader();
+    MsgCatalogLoader(const MsgCatalogLoader&);
+    MsgCatalogLoader& operator=(const MsgCatalogLoader&);
+
+
+    // -----------------------------------------------------------------------
+    //  Private data members
+    //
+    //  fModHandle
+    //      This is our DLL module handle that we need in order to load
+    //      resource messages. This is set during construction.
+    //
+    //  fMsgSet
+    //      This is the message set id for the error domain that this loader is for.
+    // -----------------------------------------------------------------------
+    nl_catd       fCatalogHandle;
+    unsigned int  fMsgSet;
+	
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/MsgLoaders/Win32/Win32MsgLoader.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/MsgLoaders/Win32/Win32MsgLoader.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/MsgLoaders/Win32/Win32MsgLoader.hpp	(revision 2674)
@@ -0,0 +1,112 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: Win32MsgLoader.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+#if !defined(WIN32MSGLOADER_HPP)
+#define WIN32MSGLOADER_HPP
+
+#include <xercesc/util/XercesDefs.hpp>
+#include <xercesc/util/XMLMsgLoader.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+//
+//  This is a simple in Win32 RC message loader implementation.
+//
+class XMLUTIL_EXPORT Win32MsgLoader : public XMLMsgLoader
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Public Constructors and Destructor
+    // -----------------------------------------------------------------------
+    Win32MsgLoader(const XMLCh* const msgDomain);
+    ~Win32MsgLoader();
+
+
+    // -----------------------------------------------------------------------
+    //  Implementation of the virtual message loader API
+    // -----------------------------------------------------------------------
+    virtual bool loadMsg
+    (
+        const   XMLMsgLoader::XMLMsgId  msgToLoad
+        ,       XMLCh* const            toFill
+        , const unsigned int            maxChars
+    );
+
+    virtual bool loadMsg
+    (
+        const   XMLMsgLoader::XMLMsgId  msgToLoad
+        ,       XMLCh* const            toFill
+        , const unsigned int            maxChars
+        , const XMLCh* const            repText1
+        , const XMLCh* const            repText2 = 0
+        , const XMLCh* const            repText3 = 0
+        , const XMLCh* const            repText4 = 0
+        , MemoryManager* const          manger   = XMLPlatformUtils::fgMemoryManager
+    );
+
+    virtual bool loadMsg
+    (
+        const   XMLMsgLoader::XMLMsgId  msgToLoad
+        ,       XMLCh* const            toFill
+        , const unsigned int            maxChars
+        , const char* const             repText1
+        , const char* const             repText2 = 0
+        , const char* const             repText3 = 0
+        , const char* const             repText4 = 0
+        , MemoryManager* const          manager  = XMLPlatformUtils::fgMemoryManager
+    );
+
+
+private :
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    Win32MsgLoader();
+    Win32MsgLoader(const Win32MsgLoader&);
+    Win32MsgLoader& operator=(const Win32MsgLoader&);
+
+
+    // -----------------------------------------------------------------------
+    //  Private data members
+    //
+    //  fDomainOfs
+    //      This is the id offset for the current domain. Its used to bias
+    //      the zero based id of each domain, since they are stored in the
+    //      same file and have to have unique ids internally. This is set
+    //      in the ctor from the domain name. We just have to agree with
+    //      what our formatter in the NLSXlat program does.
+    //
+    //  fModHandle
+    //      This is our DLL module handle that we need in order to load
+    //      resource messages. This is set during construction.
+    //
+    //  fMsgDomain
+    //      This is the name of the error domain that this loader is for.
+    // -----------------------------------------------------------------------
+    unsigned int    fDomainOfs;
+    HINSTANCE       fModHandle;
+    XMLCh*          fMsgDomain;
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/MsgLoaders/MsgFile/MsgLoader.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/MsgLoaders/MsgFile/MsgLoader.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/MsgLoaders/MsgFile/MsgLoader.hpp	(revision 2674)
@@ -0,0 +1,106 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: MsgLoader.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(ICONVMSGLOADER_HPP)
+#define ICONVMSGLOADER_HPP
+
+#include <xercesc/util/XercesDefs.hpp>
+#include <xercesc/util/XMLMsgLoader.hpp>
+
+#include <nl_types.h>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+//
+//  This is a simple in Iconv RC message loader implementation.
+//
+class XMLUTIL_EXPORT MsgCatalogLoader : public XMLMsgLoader
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Public Constructors and Destructor
+    // -----------------------------------------------------------------------
+    MsgCatalogLoader(const XMLCh* const msgDomain);
+    ~MsgCatalogLoader();
+
+
+    // -----------------------------------------------------------------------
+    //  Implementation of the virtual message loader API
+    // -----------------------------------------------------------------------
+    virtual bool loadMsg
+    (
+        const   XMLMsgLoader::XMLMsgId  msgToLoad
+        ,       XMLCh* const            toFill
+        , const unsigned int            maxChars
+    );
+
+    virtual bool loadMsg
+    (
+        const   XMLMsgLoader::XMLMsgId  msgToLoad
+        ,       XMLCh* const            toFill
+        , const unsigned int            maxChars
+        , const XMLCh* const            repText1
+        , const XMLCh* const            repText2 = 0
+        , const XMLCh* const            repText3 = 0
+        , const XMLCh* const            repText4 = 0
+        , MemoryManager* const          manager  = XMLPlatformUtils::fgMemoryManager
+    );
+
+    virtual bool loadMsg
+    (
+        const   XMLMsgLoader::XMLMsgId  msgToLoad
+        ,       XMLCh* const            toFill
+        , const unsigned int            maxChars
+        , const char* const             repText1
+        , const char* const             repText2 = 0
+        , const char* const             repText3 = 0
+        , const char* const             repText4 = 0
+        , MemoryManager * const         manager  = XMLPlatformUtils::fgMemoryManager
+    );
+
+
+private :
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    MsgCatalogLoader();
+    MsgCatalogLoader(const MsgCatalogLoader&);
+    MsgCatalogLoader& operator=(const MsgCatalogLoader&);
+
+
+    // -----------------------------------------------------------------------
+    //  Private data members
+    //
+    //  fModHandle
+    //      This is our DLL module handle that we need in order to load
+    //      resource messages. This is set during construction.
+    //
+    //  fMsgDomain
+    //      This is the name of the error domain that this loader is for.
+    // -----------------------------------------------------------------------
+    nl_catd 	fCatalogHandle;
+    XMLCh*      fMsgDomain;
+	
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/MsgLoaders/MsgFile/XMLMessages.h
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/MsgLoaders/MsgFile/XMLMessages.h	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/MsgLoaders/MsgFile/XMLMessages.h	(revision 2674)
@@ -0,0 +1,532 @@
+#ifndef XML_ERROR_MESSAGES_H
+#define XML_ERROR_MESSAGES_H
+
+#include <xercesc/util/XercesDefs.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+// These are Fatal error messages
+
+#define E_ExpectedCommentOrCDATA					"XMLBE00"
+#define E_ExpectedAttrName						"XMLBE01"
+#define E_ExpectedNotationName						"XMLBE02"
+#define E_NoRepInMixed							"XMLBE03"
+#define E_BadDefAttrDecl						"XMLBE04"
+#define E_ExpectedDefAttrDecl						"XMLBE05"
+#define E_AttListSyntaxError						"XMLBE06"
+#define E_ExpectedEqSign						"XMLBE07"
+#define E_DupAttrName							"XMLBE08"
+#define E_BadIdForXMLLangAttr						"XMLBE09"
+#define E_ExpectedElementName						"XMLBE0A"
+#define E_MustStartWithXMLDecl						"XMLBE0B"
+#define E_CommentsMustStartWith						"XMLBE0C"
+#define E_InvalidDocumentStructure					"XMLBE0D"
+#define E_ExpectedDeclString						"XMLBE0E"
+#define E_BadXMLVersion							"XMLBE0F"
+#define E_UnsupportedXMLVersion						"XMLBE10"
+#define E_UnterminatedXMLDecl						"XMLBE11"
+#define E_BadXMLEncoding						"XMLBE12"
+#define E_BadStandalone							"XMLBE13"
+#define E_UnterminatedComment						"XMLBE14"
+#define E_PINameExpected						"XMLBE15"
+#define E_UnterminatedPI						"XMLBE16"
+#define E_InvalidCharacter						"XMLBE17"
+#define E_UnexpectedEOF							"XMLBE18"
+#define E_UnexpectedTextBeforeRoot					"XMLBE19"
+#define E_UnterminatedStartTag						"XMLBE1A"
+#define E_ExpectedAttrValue						"XMLBE1B"
+#define E_UnterminatedEndTag						"XMLBE1C"
+#define E_ExpectedAttributeType						"XMLBE1D"
+#define E_ExpectedEndOfTagX						"XMLBE1E"
+#define E_ExpectedMarkup						"XMLBE1F"
+#define E_NotValidAfterContent						"XMLBE20"
+#define E_ExpectedComment						"XMLBE21"
+#define E_ExpectedCommentOrPI						"XMLBE22"
+#define E_ExpectedWhitespace						"XMLBE23"
+#define E_NoRootElemInDOCTYPE						"XMLBE24"
+#define E_ExpectedQuotedString						"XMLBE25"
+#define E_ExpectedPublicId						"XMLBE26"
+#define E_InvalidPublicIdChar						"XMLBE27"
+#define E_UnterminatedDOCTYPE						"XMLBE28"
+#define E_InvalidCharacterInIntSubset					"XMLBE29"
+#define E_ExpectedCDATA							"XMLBE2A"
+#define E_InvalidInitialNameChar					"XMLBE2B"
+#define E_InvalidNameChar						"XMLBE2C"
+#define E_UnexpectedWhitespace						"XMLBE2D"
+#define E_InvalidCharacterInAttrValue					"XMLBE2E"
+#define E_ExpectedMarkupDecl						"XMLBE2F"
+#define E_TextDeclNotLegalHere						"XMLBE30"
+#define E_ConditionalSectInIntSubset					"XMLBE31"
+#define E_ExpectedPEName						"XMLBE32"
+#define E_UnterminatedEntityDecl					"XMLBE33"
+#define E_InvalidCharacterRef						"XMLBE34"
+#define E_UnterminatedCharRef						"XMLBE35"
+#define E_ExpectedEntityRefName						"XMLBE36"
+#define E_EntityNotFound						"XMLBE37"
+#define E_NoUnparsedEntityRefs						"XMLBE38"
+#define E_UnterminatedEntityRef						"XMLBE39"
+#define E_RecursiveEntity						"XMLBE3A"
+#define E_PartialMarkupInEntity						"XMLBE3B"
+#define E_UnterminatedElementDecl					"XMLBE3C"
+#define E_ExpectedContentSpecExpr					"XMLBE3D"
+#define E_ExpectedAsterisk						"XMLBE3E"
+#define E_UnterminatedContentModel					"XMLBE3F"
+#define E_ExpectedSystemId						"XMLBE40"
+#define E_ExpectedSystemOrPublicId					"XMLBE41"
+#define E_UnterminatedNotationDecl					"XMLBE42"
+#define E_ExpectedSeqChoiceLeaf						"XMLBE43"
+#define E_ExpectedChoiceOrCloseParen					"XMLBE44"
+#define E_ExpectedSeqOrCloseParen					"XMLBE45"
+#define Gen_CouldNotOpenDTD						"XMLBE46"
+#define V_NotSameAsFixedValue						"XMLBE47"
+#define E_ExpectedEnumValue						"XMLBE48"
+#define E_ExpectedEnumSepOrParen					"XMLBE49"
+#define Gen_CouldNotOpenExtEntity					"XMLBE4A"
+#define E_UnterminatedEntityLiteral					"XMLBE4B"
+#define E_MoreEndThanStartTags						"XMLBE4C"
+#define E_IllegalRefInStandalone					"XMLBE4D"
+#define E_ExpectedOpenParen						"XMLBE4E"
+#define E_SysException							"XMLBE4F"
+#define E_AttrAlreadyUsedInSTag						"XMLBE50"
+#define E_BracketInAttrValue						"XMLBE51"
+#define E_XMLException							"XMLBE52"
+#define E_Expected2ndSurrogateChar					"XMLBE53"
+#define E_ExpectedEndOfConditional					"XMLBE54"
+#define E_ExpectedIncOrIgn						"XMLBE55"
+#define E_ExpectedINCLUDEBracket					"XMLBE56"
+#define E_ExpectedTextDecl						"XMLBE57"
+#define E_ExpectedXMLDecl						"XMLBE58"
+#define E_UnexpectedEOE							"XMLBE59"
+#define E_PEPropogated							"XMLBE5A"
+#define E_ExtraCloseSquare						"XMLBE5B"
+#define E_PERefInMarkupInIntSubset					"XMLBE5C"
+#define E_EntityPropogated						"XMLBE5D"
+#define E_ExpectedNumericalCharRef					"XMLBE5E"
+#define E_ExpectedOpenSquareBracket					"XMLBE5F"
+#define E_BadSequenceInCharData						"XMLBE60"
+#define E_IllegalSequenceInComment					"XMLBE61"
+#define E_UnterminatedCDATASection					"XMLBE62"
+#define E_ExpectedNDATA							"XMLBE63"
+#define E_NDATANotValidForPE						"XMLBE64"
+#define E_HexRadixMustBeLowerCase					"XMLBE65"
+#define E_DeclStringRep							"XMLBE66"
+#define E_DeclStringsInWrongOrder					"XMLBE67"
+#define E_NoExtRefsInAttValue						"XMLBE68"
+#define E_XMLDeclMustBeLowerCase					"XMLBE69"
+#define E_ExpectedEntityValue						"XMLBE6A"
+#define E_BadDigitForRadix						"XMLBE6B"
+#define E_EndedWithTagsOnStack						"XMLBE6C"
+#define E_AmbiguousContentModel						"XMLBE6D"
+#define E_NestedCDATA							"XMLBE6E"
+#define Gen_NoDTDValidator						"XMLBE6F"
+#define E_UnknownPrefix							"XMLBE70"
+
+
+
+// These are Validity messages
+
+#define V_ElementNotDefined						"XMLBE71"
+#define V_AttNotDefined							"XMLBE72"
+#define V_NotationNotDeclared						"XMLBE73"
+#define V_RootElemNotLikeDocType					"XMLBE74"
+#define V_RequiredAttrNotProvided					"XMLBE75"
+#define V_ElementNotValidForContent					"XMLBE76"
+#define V_BadIDAttrDefType						"XMLBE77"
+#define V_InvalidEmptyAttValue						"XMLBE78"
+#define V_ElementAlreadyExists						"XMLBE79"
+#define V_MultipleIdAttrs						"XMLBE7A"
+#define V_ReusedIDValue							"XMLBE7B"
+#define V_IDNotDeclared							"XMLBE7C"
+#define V_UnknownNotRefAttr						"XMLBE7D"
+#define V_UndeclaredElemInDocType					"XMLBE7E"
+#define V_EmptyNotValidForContent					"XMLBE7F"
+#define V_AttNotDefinedForElement					"XMLBE80"
+#define V_BadEntityRefAttr						"XMLBE81"
+#define V_UnknownEntityRefAttr						"XMLBE82"
+#define V_NotEnoughElemsForCM						"XMLBE83"
+
+
+
+#define E_NoPIStartsWithXML						"XMLBE84"
+
+// These are Warnings messages
+
+#define W_NotationAlreadyExists						"XMLBE85"
+#define W_AttListAlreadyExists						"XMLBE86"
+#define W_ContradictoryEncoding						"XMLBE87"
+#define W_UndeclaredElemInCM						"XMLBE88"
+#define W_UndeclaredElemInAttList					"XMLBE89"
+
+
+// These are Exception Messages
+
+#define Array_BadIndex							"XMLBE8A"
+#define Array_BadNewSize						"XMLBE8B"
+#define CPtr_PointerIsZero						"XMLBE8C"
+#define Enum_NoMoreElements						"XMLBE8D"
+#define File_CouldNotOpenFile						"XMLBE8E"
+#define File_CouldNotGetCurPos						"XMLBE8F"
+#define File_CouldNotCloseFile						"XMLBE90"
+#define File_CouldNotSeekToEnd						"XMLBE91"
+#define File_CouldNotSeekToPos						"XMLBE92"
+#define File_CouldNotDupHandle						"XMLBE93"
+#define File_CouldNotReadFromFile					"XMLBE94"
+#define File_CouldNotResetFile						"XMLBE95"
+#define File_CouldNotGetSize						"XMLBE96"
+#define File_CouldNotGetBasePathName					"XMLBE97"
+#define HshTbl_ZeroModulus						"XMLBE98"
+#define HshTbl_BadHashFromKey						"XMLBE99"
+#define HshTbl_NoSuchKeyExists						"XMLBE9A"
+#define Mutex_CouldNotCreate						"XMLBE9B"
+#define Mutex_CouldNotClose						"XMLBE9C"
+#define Mutex_CouldNotLock						"XMLBE9D"
+#define Mutex_CouldNotUnlock						"XMLBE9E"
+#define Mutex_CouldNotDestroy						"XMLBE9F"
+#define Pool_ElemAlreadyExists						"XMLBEA0"
+#define Pool_BadHashFromKey						"XMLBEA1"
+#define Pool_InvalidId							"XMLBEA2"
+#define Pool_ZeroModulus						"XMLBEA3"
+#define Stack_BadIndex							"XMLBEA4"
+#define Stack_EmptyStack						"XMLBEA5"
+#define Str_ZeroSizedTargetBuf						"XMLBEA6"
+#define Str_UnknownRadix						"XMLBEA7"
+#define Str_TargetBufTooSmall						"XMLBEA8"
+#define Str_StartIndexPastEnd						"XMLBEA9"
+#define Strm_StdErrWriteFailure						"XMLBEAA"
+#define Strm_StdOutWriteFailure						"XMLBEAB"
+#define Strm_ConWriteFailure						"XMLBEAC"
+#define StrPool_IllegalId						"XMLBEAD"
+#define URL_MalformedURL						"XMLBEAE"
+#define URL_UnsupportedProto						"XMLBEAF"
+#define URL_OnlyLocalHost						"XMLBEB0"
+#define Vector_BadIndex							"XMLBEB1"
+#define Gen_UnexpectedEOF						"XMLBEB2"
+#define Gen_ParseInProgress						"XMLBEB3"
+#define AttrList_BadIndex						"XMLBEB4"
+#define ElemStack_EmptyStack						"XMLBEB5"
+#define ElemStack_BadIndex						"XMLBEB6"
+#define ElemStack_StackUnderflow					"XMLBEB7"
+#define ElemStack_NoParentPushed					"XMLBEB8"
+#define RdrMgr_ReaderIdNotFound						"XMLBEB9"
+#define Reader_BadAutoEncoding						"XMLBEBA"
+#define Reader_CantCreateCvtrFor					"XMLBEBB"
+#define Reader_CouldNotDecodeFirstLine					"XMLBEBC"
+#define Reader_EOIInMultiSeq						"XMLBEBD"
+/* #define Reader_EncodingNeedsCvtr					"XMLBEBE"   THIS GUY IS GONE */
+#define Reader_BadUTF8Seq						"XMLBEBF"
+#define Reader_BadSurrogateInUTF8					"XMLBEC0"
+#define Scan_CouldNotOpenSource						"XMLBEC1"
+#define Scan_UnbalancedStartEnd						"XMLBEC2"
+#define AttDef_BadAttType						"XMLBEC3"
+#define AttDef_BadDefAttType						"XMLBEC4"
+#define BufMgr_NoMoreBuffers						"XMLBEC5"
+#define BufMgr_BufferNotInPool						"XMLBEC6"
+#define XMLRec_UnknownEncoding						"XMLBEC7"
+#define Trans_CouldNotXCodeXMLData					"XMLBEC8"
+#define Trans_CouldNotCreateDefCvtr					"XMLBEC9"
+#define Bitset_BadIndex							"XMLBECA"
+#define CM_BinOpHadUnaryType						"XMLBECB"
+#define CM_MustBeMixedOrChildren					"XMLBECC"
+#define CM_NoPCDATAHere							"XMLBECD"
+#define CM_NotValidForSpecType						"XMLBECE"
+#define CM_UnaryOpHadBinType						"XMLBECF"
+#define CM_UnknownCMType						"XMLBED0"
+#define CM_UnknownCMSpecType						"XMLBED1"
+#define Val_InvalidElemId						"XMLBED2"
+
+// These are the new messages for 3.0 code base
+// Note ALL CAPITALIZED DEFINES ARE AS/400 UNIQUE MESSAGES
+#define FILE_OPEN_PROBLEMS						"XMLBED3"
+#define ICONV_CONVERT_PROBLEM						"XMLBED4"
+#define ICONV_CCSID_PROBLEM						"XMLBED5"
+#define E_Unexpected2ndSurrogateChar					"XMLBED6"
+#define E_XMLDeclMustBeFirst						"XMLBED7"
+#define E_XMLVersionRequired						"XMLBED8"
+#define E_StandaloneNotLegal						"XMLBED9"
+#define E_TooManyColonsInName						"XMLBEDA"
+#define E_InvalidColonPos						"XMLBEDB"
+#define E_ColonNotLegalWithNS						"XMLBEDC"
+#define V_RepElemInMixed						"XMLBEDD"
+#define Val_CantHaveIntSS						"XMLBEDE"
+#define Scan_BadPScanToken						"XMLBEDF"
+#define URL_NoProtocolPresent						"XMLBEE0"
+#define URL_ExpectingTwoSlashes						"XMLBEE1"
+#define URL_IncorrectEscapedCharRef					"XMLBEE2"
+#define URL_UnterminatedHostComponent					"XMLBEE3"
+#define URL_UnsupportedProto1						"XMLBEE4"
+#define V_NoCharDataInCM						"XMLBEE5"
+#define V_DoesNotMatchEnumList						"XMLBEE6"
+#define V_AttrValNotName						"XMLBEE7"
+#define V_NoMultipleValues						"XMLBEE8"
+#define E_PartialTagMarkupError						"XMLBEE9"
+#define E_EmptyMainEntity						"XMLBEEA"
+#define E_CDATAOutsideOfContent						"XMLBEEB"
+#define E_OnlyCharRefsAllowedHere					"XMLBEEC"
+#define GENERAL_PANIC_MESSAGE   					"XMLBEED"
+
+// NEW 3.1 MESSAGES					Woops, forgot XMLBEEE
+#define NetAcc_InternalError						"XMLBEEF"
+#define Reader_SrcOfsNotSupported					"XMLBEF0"
+#define Trans_InvalidSizeReq						"XMLBEF1"
+#define Trans_Unrepresentable						"XMLBEF2"
+#define Trans_NotInSourceSet						"XMLBEF3"
+
+
+char Errors[][8] =  {
+
+  E_ExpectedCommentOrCDATA
+ ,E_ExpectedAttrName	
+ ,E_ExpectedNotationName
+ ,E_NoRepInMixed
+ ,E_BadDefAttrDecl
+ ,E_ExpectedDefAttrDecl
+ ,E_AttListSyntaxError
+ ,E_ExpectedEqSign	
+ ,E_DupAttrName	
+ ,E_BadIdForXMLLangAttr	
+ ,E_ExpectedElementName	
+ ,E_MustStartWithXMLDecl
+ ,E_CommentsMustStartWith
+ ,E_InvalidDocumentStructure
+ ,E_ExpectedDeclString	
+ ,E_BadXMLVersion
+ ,E_UnsupportedXMLVersion
+ ,E_UnterminatedXMLDecl	
+ ,E_BadXMLEncoding
+ ,E_BadStandalone
+ ,E_UnterminatedComment	
+ ,E_PINameExpected
+ ,E_UnterminatedPI
+ ,E_InvalidCharacter
+ ,E_UnexpectedTextBeforeRoot
+ ,E_UnterminatedStartTag
+ ,E_ExpectedAttrValue
+ ,E_UnterminatedEndTag
+ ,E_ExpectedAttributeType
+ ,E_ExpectedEndOfTagX
+ ,E_ExpectedMarkup
+ ,E_NotValidAfterContent
+ ,E_ExpectedComment
+ ,E_ExpectedCommentOrPI	
+ ,E_ExpectedWhitespace
+ ,E_NoRootElemInDOCTYPE
+ ,E_ExpectedQuotedString
+ ,E_ExpectedPublicId
+ ,E_InvalidPublicIdChar
+ ,E_UnterminatedDOCTYPE	
+ ,E_InvalidCharacterInIntSubset	
+ ,E_ExpectedCDATA
+ ,E_InvalidInitialNameChar
+ ,E_InvalidNameChar
+ ,E_UnexpectedWhitespace
+ ,E_InvalidCharacterInAttrValue	
+ ,E_ExpectedMarkupDecl
+ ,E_TextDeclNotLegalHere
+ ,E_ConditionalSectInIntSubset
+ ,E_ExpectedPEName
+ ,E_UnterminatedEntityDecl
+ ,E_InvalidCharacterRef
+ ,E_UnterminatedCharRef
+ ,E_ExpectedEntityRefName
+ ,E_EntityNotFound
+ ,E_NoUnparsedEntityRefs
+ ,E_UnterminatedEntityRef
+ ,E_RecursiveEntity
+ ,E_PartialMarkupInEntity
+ ,E_UnterminatedElementDecl
+ ,E_ExpectedContentSpecExpr
+ ,E_ExpectedAsterisk
+ ,E_UnterminatedContentModel
+ ,E_ExpectedSystemId
+ ,E_ExpectedSystemOrPublicId
+ ,E_UnterminatedNotationDecl
+ ,E_ExpectedSeqChoiceLeaf
+ ,E_ExpectedChoiceOrCloseParen
+ ,E_ExpectedSeqOrCloseParen
+ ,E_ExpectedEnumValue
+ ,E_ExpectedEnumSepOrParen
+ ,E_UnterminatedEntityLiteral
+ ,E_MoreEndThanStartTags
+ ,E_IllegalRefInStandalone
+ ,E_ExpectedOpenParen
+ ,E_AttrAlreadyUsedInSTag
+ ,E_BracketInAttrValue
+ ,E_Expected2ndSurrogateChar
+ ,E_ExpectedEndOfConditional
+ ,E_ExpectedIncOrIgn
+ ,E_ExpectedINCLUDEBracket
+ ,E_ExpectedTextDecl
+ ,E_ExpectedXMLDecl
+ ,E_UnexpectedEOE
+ ,E_PEPropogated
+ ,E_ExtraCloseSquare
+ ,E_PERefInMarkupInIntSubset
+ ,E_EntityPropogated
+ ,E_ExpectedNumericalCharRef
+ ,E_ExpectedOpenSquareBracket
+ ,E_BadSequenceInCharData
+ ,E_IllegalSequenceInComment
+ ,E_UnterminatedCDATASection
+ ,E_ExpectedNDATA
+ ,E_NDATANotValidForPE
+ ,E_HexRadixMustBeLowerCase
+ ,E_DeclStringRep
+ ,E_DeclStringsInWrongOrder
+ ,E_NoExtRefsInAttValue
+ ,E_XMLDeclMustBeLowerCase
+ ,E_ExpectedEntityValue
+ ,E_BadDigitForRadix
+ ,E_EndedWithTagsOnStack
+ ,E_AmbiguousContentModel
+ ,E_NestedCDATA
+ ,E_UnknownPrefix
+ ,E_PartialTagMarkupError
+ ,E_EmptyMainEntity
+ ,E_CDATAOutsideOfContent
+ ,E_OnlyCharRefsAllowedHere
+ ,E_Unexpected2ndSurrogateChar
+ ,E_NoPIStartsWithXML
+ ,E_XMLDeclMustBeFirst
+ ,E_XMLVersionRequired
+ ,E_StandaloneNotLegal
+ ,E_TooManyColonsInName
+ ,E_InvalidColonPos
+ ,E_ColonNotLegalWithNS
+ ,E_SysException
+ ,E_XMLException
+ ,E_UnexpectedEOF
+};
+
+char Invalid[][8] = {
+ V_ElementNotDefined,
+ V_AttNotDefined,
+ V_NotationNotDeclared,
+ V_RootElemNotLikeDocType,
+ V_RequiredAttrNotProvided,
+ V_ElementNotValidForContent,
+ V_BadIDAttrDefType,
+ V_InvalidEmptyAttValue,
+ V_ElementAlreadyExists,
+ V_MultipleIdAttrs,
+ V_ReusedIDValue,
+ V_IDNotDeclared,
+ V_UnknownNotRefAttr,
+ V_UndeclaredElemInDocType,
+ V_EmptyNotValidForContent,
+ V_AttNotDefinedForElement,
+ V_BadEntityRefAttr,
+ V_UnknownEntityRefAttr,
+ V_NotEnoughElemsForCM
+ ,V_NoCharDataInCM
+ ,V_DoesNotMatchEnumList
+ ,V_AttrValNotName
+ ,V_NoMultipleValues
+ ,V_NotSameAsFixedValue
+ ,V_RepElemInMixed
+};						
+
+
+char Warnings[][8] = {
+// W_NoPIStartsWithXML,
+ W_NotationAlreadyExists,
+ W_AttListAlreadyExists,
+ W_ContradictoryEncoding,
+ W_UndeclaredElemInCM,
+ W_UndeclaredElemInAttList
+};
+
+char Exceptions[][8]= {
+ Array_BadIndex,
+ Array_BadNewSize,
+ AttrList_BadIndex,
+ AttDef_BadAttType,
+ AttDef_BadDefAttType,
+ Bitset_BadIndex,
+ BufMgr_NoMoreBuffers,
+ BufMgr_BufferNotInPool,
+ CPtr_PointerIsZero,
+ CM_BinOpHadUnaryType,
+ CM_MustBeMixedOrChildren,
+ CM_NoPCDATAHere,
+ CM_NotValidForSpecType,
+ CM_UnaryOpHadBinType,
+ CM_UnknownCMType,
+ CM_UnknownCMSpecType,
+ ElemStack_EmptyStack,
+ ElemStack_BadIndex,
+ ElemStack_StackUnderflow,
+ ElemStack_NoParentPushed,
+ Enum_NoMoreElements,
+ File_CouldNotOpenFile,
+ File_CouldNotGetCurPos,
+ File_CouldNotCloseFile	,
+ File_CouldNotSeekToEnd	,
+ File_CouldNotSeekToPos	,
+ File_CouldNotDupHandle	,
+ File_CouldNotReadFromFile,
+ File_CouldNotResetFile	,
+ File_CouldNotGetSize	,
+ File_CouldNotGetBasePathName,
+ Gen_ParseInProgress,
+ Gen_NoDTDValidator,
+ Gen_CouldNotOpenDTD,
+ Gen_CouldNotOpenExtEntity,
+ Gen_UnexpectedEOF,
+ HshTbl_ZeroModulus,
+ HshTbl_BadHashFromKey,
+ HshTbl_NoSuchKeyExists,
+ Mutex_CouldNotCreate,
+ Mutex_CouldNotClose,
+ Mutex_CouldNotLock,
+ Mutex_CouldNotUnlock,
+ Mutex_CouldNotDestroy,
+ NetAcc_InternalError,
+ Pool_ElemAlreadyExists,
+ Pool_BadHashFromKey,
+ Pool_InvalidId,
+ Pool_ZeroModulus,
+ RdrMgr_ReaderIdNotFound,
+ Reader_BadAutoEncoding,
+ Reader_CantCreateCvtrFor,
+ Reader_CouldNotDecodeFirstLine,
+ Reader_EOIInMultiSeq,
+ Reader_BadUTF8Seq,
+ Reader_BadSurrogateInUTF8,
+ Reader_SrcOfsNotSupported,
+ Scan_CouldNotOpenSource,
+ Scan_UnbalancedStartEnd,
+ Scan_BadPScanToken,
+ Stack_BadIndex,
+ Stack_EmptyStack,
+ Str_ZeroSizedTargetBuf,
+ Str_UnknownRadix,
+ Str_TargetBufTooSmall,
+ Str_StartIndexPastEnd,
+ Strm_StdErrWriteFailure,
+ Strm_StdOutWriteFailure,
+ Strm_ConWriteFailure,
+ StrPool_IllegalId,
+ Trans_CouldNotXCodeXMLData,
+ Trans_CouldNotCreateDefCvtr,
+ Trans_InvalidSizeReq,
+ Trans_Unrepresentable,
+ Trans_NotInSourceSet,
+ URL_MalformedURL,
+ URL_UnsupportedProto,
+ URL_UnsupportedProto1,
+ URL_OnlyLocalHost,
+ URL_NoProtocolPresent,
+ URL_ExpectingTwoSlashes,
+ URL_IncorrectEscapedCharRef,
+ URL_UnterminatedHostComponent,
+ Vector_BadIndex,
+ Val_InvalidElemId,
+ Val_CantHaveIntSS,
+ XMLRec_UnknownEncoding
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
+
+
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/BaseRefVectorOf.c
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/BaseRefVectorOf.c	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/BaseRefVectorOf.c	(revision 2674)
@@ -0,0 +1,344 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+// ---------------------------------------------------------------------------
+//  Includes
+// ---------------------------------------------------------------------------
+#if defined(XERCES_TMPLSINC)
+#include <xercesc/util/BaseRefVectorOf.hpp>
+#endif
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+// ---------------------------------------------------------------------------
+//  BaseRefVectorOf: Constructors and Destructor
+// ---------------------------------------------------------------------------
+template <class TElem>
+BaseRefVectorOf<TElem>::BaseRefVectorOf( const unsigned int maxElems
+                                       , const bool adoptElems
+                                       , MemoryManager* const manager) :
+
+    fAdoptedElems(adoptElems)
+    , fCurCount(0)
+    , fMaxCount(maxElems)
+    , fElemList(0)
+    , fMemoryManager(manager)
+{
+    // Allocate and initialize the array
+    fElemList = (TElem**) fMemoryManager->allocate(maxElems * sizeof(TElem*));//new TElem*[maxElems];
+    for (unsigned int index = 0; index < maxElems; index++)
+        fElemList[index] = 0;
+}
+
+
+//implemented so code will link
+template <class TElem> BaseRefVectorOf<TElem>::~BaseRefVectorOf()
+{
+}
+
+
+// ---------------------------------------------------------------------------
+//  BaseRefVectorOf: Element management
+// ---------------------------------------------------------------------------
+template <class TElem> void BaseRefVectorOf<TElem>::addElement(TElem* const toAdd)
+{
+    ensureExtraCapacity(1);
+    fElemList[fCurCount] = toAdd;
+    fCurCount++;
+}
+
+
+template <class TElem> void
+BaseRefVectorOf<TElem>::setElementAt(TElem* const toSet, const unsigned int setAt)
+{
+    if (setAt >= fCurCount)
+        ThrowXMLwithMemMgr(ArrayIndexOutOfBoundsException, XMLExcepts::Vector_BadIndex, fMemoryManager);
+
+    if (fAdoptedElems)
+        delete fElemList[setAt];
+    fElemList[setAt] = toSet;
+}
+
+template <class TElem> void BaseRefVectorOf<TElem>::
+insertElementAt(TElem* const toInsert, const unsigned int insertAt)
+{
+    if (insertAt == fCurCount)
+    {
+        addElement(toInsert);
+        return;
+    }
+
+    if (insertAt > fCurCount)
+        ThrowXMLwithMemMgr(ArrayIndexOutOfBoundsException, XMLExcepts::Vector_BadIndex, fMemoryManager);
+
+    ensureExtraCapacity(1);
+
+    // Make room for the newbie
+    for (unsigned int index = fCurCount; index > insertAt; index--)
+        fElemList[index] = fElemList[index-1];
+
+    // And stick it in and bump the count
+    fElemList[insertAt] = toInsert;
+    fCurCount++;
+}
+
+template <class TElem> TElem* BaseRefVectorOf<TElem>::
+orphanElementAt(const unsigned int orphanAt)
+{
+    if (orphanAt >= fCurCount)
+        ThrowXMLwithMemMgr(ArrayIndexOutOfBoundsException, XMLExcepts::Vector_BadIndex, fMemoryManager);
+
+    // Get the element we are going to orphan
+    TElem* retVal = fElemList[orphanAt];
+
+    // Optimize if its the last element
+    if (orphanAt == fCurCount-1)
+    {
+        fElemList[orphanAt] = 0;
+        fCurCount--;
+        return retVal;
+    }
+
+    // Copy down every element above orphan point
+    for (unsigned int index = orphanAt; index < fCurCount-1; index++)
+        fElemList[index] = fElemList[index+1];
+
+    // Keep unused elements zero for sanity's sake
+    fElemList[fCurCount-1] = 0;
+
+    // And bump down count
+    fCurCount--;
+
+    return retVal;
+}
+
+template <class TElem> void BaseRefVectorOf<TElem>::removeAllElements()
+{
+    for (unsigned int index = 0; index < fCurCount; index++)
+    {
+        if (fAdoptedElems)
+          delete fElemList[index];
+
+        // Keep unused elements zero for sanity's sake
+        fElemList[index] = 0;
+    }
+    fCurCount = 0;
+}
+
+template <class TElem> void BaseRefVectorOf<TElem>::
+removeElementAt(const unsigned int removeAt)
+{
+    if (removeAt >= fCurCount)
+        ThrowXMLwithMemMgr(ArrayIndexOutOfBoundsException, XMLExcepts::Vector_BadIndex, fMemoryManager);
+
+    if (fAdoptedElems)
+        delete fElemList[removeAt];
+
+    // Optimize if its the last element
+    if (removeAt == fCurCount-1)
+    {
+        fElemList[removeAt] = 0;
+        fCurCount--;
+        return;
+    }
+
+    // Copy down every element above remove point
+    for (unsigned int index = removeAt; index < fCurCount-1; index++)
+        fElemList[index] = fElemList[index+1];
+
+    // Keep unused elements zero for sanity's sake
+    fElemList[fCurCount-1] = 0;
+
+    // And bump down count
+    fCurCount--;
+}
+
+template <class TElem> void BaseRefVectorOf<TElem>::removeLastElement()
+{
+    if (!fCurCount)
+        return;
+    fCurCount--;
+
+    if (fAdoptedElems)
+        delete fElemList[fCurCount];
+}
+
+template <class TElem>
+bool BaseRefVectorOf<TElem>::containsElement(const TElem* const toCheck) {
+
+    for (unsigned int i = 0; i < fCurCount; i++) {
+        if (fElemList[i] == toCheck) {
+            return true;
+        }
+    }
+
+    return false;
+}
+
+//
+// cleanup():
+//   similar to destructor
+//   called to cleanup the memory, in case destructor cannot be called
+//
+template <class TElem> void BaseRefVectorOf<TElem>::cleanup()
+{
+    if (fAdoptedElems)
+    {
+        for (unsigned int index = 0; index < fCurCount; index++)
+            delete fElemList[index];
+    }
+    fMemoryManager->deallocate(fElemList);//delete [] fElemList;
+}
+
+//
+// reinitialize():
+//   similar to constructor
+//   called to re-construct the fElemList from scratch again
+//
+template <class TElem> void BaseRefVectorOf<TElem>::reinitialize()
+{
+    // reinitialize the array
+    if (fElemList)
+        cleanup();
+
+    fElemList = (TElem**) fMemoryManager->allocate(fMaxCount * sizeof(TElem*));//new TElem*[fMaxCount];
+    for (unsigned int index = 0; index < fMaxCount; index++)
+        fElemList[index] = 0;
+
+}
+
+template <class TElem>
+MemoryManager* BaseRefVectorOf<TElem>::getMemoryManager() const
+{
+    return fMemoryManager;
+}
+
+
+// ---------------------------------------------------------------------------
+//  BaseRefVectorOf: Getter methods
+// ---------------------------------------------------------------------------
+template <class TElem> unsigned int BaseRefVectorOf<TElem>::curCapacity() const
+{
+    return fMaxCount;
+}
+
+template <class TElem> const TElem* BaseRefVectorOf<TElem>::
+elementAt(const unsigned int getAt) const
+{
+    if (getAt >= fCurCount)
+        ThrowXMLwithMemMgr(ArrayIndexOutOfBoundsException, XMLExcepts::Vector_BadIndex, fMemoryManager);
+    return fElemList[getAt];
+}
+
+template <class TElem> TElem*
+BaseRefVectorOf<TElem>::elementAt(const unsigned int getAt)
+{
+    if (getAt >= fCurCount)
+        ThrowXMLwithMemMgr(ArrayIndexOutOfBoundsException, XMLExcepts::Vector_BadIndex, fMemoryManager);
+    return fElemList[getAt];
+}
+
+template <class TElem> unsigned int BaseRefVectorOf<TElem>::size() const
+{
+    return fCurCount;
+}
+
+
+// ---------------------------------------------------------------------------
+//  BaseRefVectorOf: Miscellaneous
+// ---------------------------------------------------------------------------
+template <class TElem> void BaseRefVectorOf<TElem>::
+ensureExtraCapacity(const unsigned int length)
+{
+    unsigned int newMax = fCurCount + length;
+
+    if (newMax <= fMaxCount)
+        return;
+
+	// Choose how much bigger based on the current size.
+	// This will grow half as much again.
+    if (newMax < fMaxCount + fMaxCount/2)
+        newMax = fMaxCount + fMaxCount/2;
+
+    // Allocate the new array and copy over the existing stuff
+    TElem** newList = (TElem**) fMemoryManager->allocate
+    (
+        newMax * sizeof(TElem*)
+    );//new TElem*[newMax];
+    unsigned int index = 0;
+    for (; index < fCurCount; index++)
+        newList[index] = fElemList[index];
+
+    // Zero out the rest of them
+    for (; index < newMax; index++)
+        newList[index] = 0;
+
+    // Clean up the old array and update our members
+    fMemoryManager->deallocate(fElemList);//delete [] fElemList;
+    fElemList = newList;
+    fMaxCount = newMax;
+}
+
+
+
+// ---------------------------------------------------------------------------
+//  AbstractBaseRefVectorEnumerator: Constructors and Destructor
+// ---------------------------------------------------------------------------
+template <class TElem> BaseRefVectorEnumerator<TElem>::
+BaseRefVectorEnumerator(        BaseRefVectorOf<TElem>* const   toEnum
+                    , const bool                        adopt) :
+    fAdopted(adopt)
+    , fCurIndex(0)
+    , fToEnum(toEnum)
+{
+}
+
+template <class TElem> BaseRefVectorEnumerator<TElem>::~BaseRefVectorEnumerator()
+{
+    if (fAdopted)
+        delete fToEnum;
+}
+
+template <class TElem> BaseRefVectorEnumerator<TElem>::
+BaseRefVectorEnumerator(const BaseRefVectorEnumerator<TElem>& toCopy) :
+    XMLEnumerator<TElem>(toCopy)
+    , XMemory(toCopy)
+    , fAdopted(toCopy.fAdopted)
+    , fCurIndex(toCopy.fCurIndex)
+    , fToEnum(toCopy.fToEnum)    
+{
+}
+// ---------------------------------------------------------------------------
+//  RefBaseRefVectorEnumerator: Enum interface
+// ---------------------------------------------------------------------------
+template <class TElem> bool BaseRefVectorEnumerator<TElem>::hasMoreElements() const
+{
+    if (fCurIndex >= fToEnum->size())
+        return false;
+    return true;
+}
+
+template <class TElem> TElem& BaseRefVectorEnumerator<TElem>::nextElement()
+{
+    return *(fToEnum->elementAt(fCurIndex++));
+}
+
+template <class TElem> void BaseRefVectorEnumerator<TElem>::Reset()
+{
+    fCurIndex = 0;
+}
+
+XERCES_CPP_NAMESPACE_END
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/XMLResourceIdentifier.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/XMLResourceIdentifier.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/XMLResourceIdentifier.hpp	(revision 2674)
@@ -0,0 +1,214 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: XMLResourceIdentifier.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#ifndef XMLRESOURCEIDENTIFIER_HPP
+#define XMLRESOURCEIDENTIFIER_HPP
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class Locator;
+
+/**
+  * <p>This class is used along with XMLEntityResolver to resolve entities.
+  * Instead of passing publicId and systemId on the resolveEntity call, 
+  * as is done with the SAX entity resolver, an object of type XMLResourceIdentifier
+  * is passed.  By calling the getResourceIdentifierType() method the user can
+  * determine which data members are available for inspection:</p>
+  *
+  * <table border='1'>
+  * <tr>
+  *  <td>ResourceIdentifierType</td>
+  *  <td>Available Data Members</td>
+  * </tr>
+  * <tr>
+  *  <td>SchemaGrammar</td>
+  *  <td>schemaLocation, nameSpace & baseURI (current document)</td>
+  * </tr>
+  * <tr>
+  *  <td>SchemaImport</td>
+  *  <td>schemaLocation, nameSpace & baseURI (current document)</td>
+  * </tr>
+  * <tr>
+  *  <td>SchemaInclude</td>
+  *  <td>schemaLocation & baseURI (current document)</td>
+  * </tr>
+  * <tr>
+  *  <td>SchemaRedefine</td>
+  *  <td>schemaLocation & baseURI (current document)</td>
+  * </tr>
+  * <tr>
+  *  <td>ExternalEntity</td>
+  *  <td>systemId, publicId & baseURI (some items may be NULL)</td>
+  * </tr>
+  * </table>
+  *
+  * <p>The following resolver would provide the application
+  * with a special character stream for the entity with the system
+  * identifier "http://www.myhost.com/today":</p>
+  *
+  *<code>
+  * #include <xercesc/util/XMLEntityResolver.hpp><br>
+  * #include <xercesc/sax/InputSource.hpp><br>
+  *<br>
+  *&nbsp;class MyResolver : public XMLEntityResolver {<br>
+  *&nbsp;&nbsp;public:<br>
+  *&nbsp;&nbsp;&nbsp;InputSource resolveEntity (XMLResourceIdentifier* xmlri);<br>
+  *&nbsp;&nbsp;&nbsp;...<br>
+  *&nbsp;&nbsp;};<br>
+  *<br>
+  *&nbsp;&nbsp;MyResolver::resolveEntity(XMLResourceIdentifier* xmlri) {<br>
+  *&nbsp;&nbsp;&nbsp;switch(xmlri->getResourceIdentifierType()) {<br>
+  *&nbsp;&nbsp;&nbsp;&nbsp;case XMLResourceIdentifier::SystemId:<br>
+  *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (XMLString::compareString(xmlri->getSystemId(), "http://www.myhost.com/today")) {<br>
+  *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MyReader* reader = new MyReader();<br>
+  *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return new InputSource(reader);<br>
+  *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} else {<br>
+  *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return null;<br>
+  *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>
+  *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;<br>
+  *&nbsp;&nbsp;&nbsp;&nbsp;default:<br>
+  *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return null;<br>
+  *&nbsp;&nbsp;&nbsp;}<br>
+  *&nbsp;&nbsp;}</code>
+  *
+  * @see SAXParser#setXMLEntityResolver
+  * @see InputSource#InputSource
+  */
+class XMLUTIL_EXPORT XMLResourceIdentifier
+{
+public:
+
+    /** @name Public Constants */
+    //@{
+    enum ResourceIdentifierType {
+        SchemaGrammar = 0,
+        SchemaImport,
+        SchemaInclude,
+        SchemaRedefine ,
+        ExternalEntity,
+        UnKnown = 255    
+    };
+    //@}
+   
+    /** @name Constructors and Destructor */
+    //@{
+    /** Constructor */
+
+    XMLResourceIdentifier(const ResourceIdentifierType resourceIdentitiferType
+                            , const XMLCh* const  systemId
+                            , const XMLCh* const  nameSpace = 0
+                            , const XMLCh* const  publicId = 0
+                            , const XMLCh* const  baseURI = 0
+                            , const Locator*      locator = 0);
+
+    /** Destructor */
+    ~XMLResourceIdentifier()
+    {
+    }
+
+    //@}
+
+    // -----------------------------------------------------------------------
+    //  Getter methods
+    // -----------------------------------------------------------------------
+    /** @name Public Methods */
+    //@{
+    ResourceIdentifierType getResourceIdentifierType() const;
+    const XMLCh* getPublicId()          const;
+    const XMLCh* getSystemId()          const;
+    const XMLCh* getSchemaLocation()    const;
+    const XMLCh* getBaseURI()           const;
+    const XMLCh* getNameSpace()         const;
+    const Locator* getLocator()         const;
+    //@}
+
+private :
+
+    const ResourceIdentifierType    fResourceIdentifierType;
+    const XMLCh*                    fPublicId;
+    const XMLCh*                    fSystemId;
+    const XMLCh*                    fBaseURI;
+    const XMLCh*                    fNameSpace;
+    const Locator*                  fLocator;
+
+    /* Unimplemented constructors and operators */
+
+    /* Copy constructor */
+    XMLResourceIdentifier(const XMLResourceIdentifier&);
+
+    /* Assignment operator */
+    XMLResourceIdentifier& operator=(const XMLResourceIdentifier&);
+
+};
+
+inline XMLResourceIdentifier::ResourceIdentifierType XMLResourceIdentifier::getResourceIdentifierType() const 
+{
+    return fResourceIdentifierType;
+}
+
+inline const XMLCh* XMLResourceIdentifier::getPublicId() const
+{
+    return fPublicId;
+}
+
+inline const XMLCh* XMLResourceIdentifier::getSystemId() const
+{
+    return fSystemId;
+}
+
+inline const XMLCh* XMLResourceIdentifier::getSchemaLocation() const
+{
+    return fSystemId;
+}
+
+inline const XMLCh* XMLResourceIdentifier::getBaseURI() const
+{
+    return fBaseURI;
+}
+
+inline const XMLCh* XMLResourceIdentifier::getNameSpace() const
+{
+    return fNameSpace;
+}
+
+inline const Locator* XMLResourceIdentifier::getLocator() const
+{
+    return fLocator;
+}
+
+inline XMLResourceIdentifier::XMLResourceIdentifier(const ResourceIdentifierType resourceIdentifierType
+                            , const XMLCh* const  systemId
+                            , const XMLCh* const  nameSpace
+                            , const XMLCh* const  publicId
+                            , const XMLCh* const  baseURI
+                            , const Locator*      locator )
+    : fResourceIdentifierType(resourceIdentifierType)
+    , fPublicId(publicId)
+    , fSystemId(systemId)
+    , fBaseURI(baseURI)     
+    , fNameSpace(nameSpace)
+    , fLocator(locator)
+{
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/HexBin.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/HexBin.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/HexBin.hpp	(revision 2674)
@@ -0,0 +1,158 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: HexBin.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#ifndef HEXBIN_HPP
+#define HEXBIN_HPP
+
+#include <xercesc/util/PlatformUtils.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class XMLUTIL_EXPORT HexBin
+{
+public :
+    //@{
+
+    /**
+     * return the length of hexData in terms of HexBinary.
+     *
+     * @param hexData A string containing the HexBinary
+     *
+     * return: -1 if it contains any invalid HexBinary
+     *         the length of the HexNumber otherwise.
+     */
+
+    static int  getDataLength(const XMLCh* const hexData);
+
+     /**
+     * check an array of data against the Hex table.
+     *
+     * @param hexData A string containing the HexBinary
+     *
+     * return: false if it contains any invalid HexBinary
+     *         true otherwise.
+     */
+
+    static bool isArrayByteHex(const XMLCh* const hexData);
+
+     /**
+     * get canonical representation
+     *
+     * Caller is responsible for the proper deallcation
+     * of the string returned.
+     * 
+     * @param hexData A string containing the HexBinary
+     * @param manager The MemoryManager to use to allocate the string
+     *
+     * return: the canonical representation of the HexBinary
+     *         if it is a valid HexBinary, 
+     *         0 otherwise
+     */
+
+    static XMLCh* getCanonicalRepresentation
+                  (
+                      const XMLCh*          const hexData
+                    ,       MemoryManager*  const manager = XMLPlatformUtils::fgMemoryManager
+                  );
+
+    /**
+     * Decodes HexBinary data into XMLCh
+     *
+     * NOTE: The returned buffer is dynamically allocated and is the
+     * responsibility of the caller to delete it when not longer needed.
+     * You can call XMLString::release to release this returned buffer.
+     *
+     * If a memory manager is provided, ask the memory manager to de-allocate
+     * the returned buffer.
+     *
+     * @param hexData HexBinary data in XMLCh stream.
+     * @param manager client provided memory manager
+     * @return Decoded binary data in XMLCh stream,
+     *      or NULL if input data can not be decoded.
+     * @see   XMLString::release(XMLCh**)
+     * @deprecated use decodeToXMLByte instead.
+     */
+
+    static XMLCh* decode(
+                         const XMLCh*          const    hexData
+                       ,       MemoryManager*  const    manager = XMLPlatformUtils::fgMemoryManager
+                        );
+
+   /**
+     * Decodes HexBinary data into XMLByte
+     *
+     * NOTE: The returned buffer is dynamically allocated and is the
+     * responsibility of the caller to delete it when not longer needed.
+     * You can call XMLString::release to release this returned buffer.
+     *
+     * If a memory manager is provided, ask the memory manager to de-allocate
+     * the returned buffer.
+     *
+     * @param hexData HexBinary data in XMLCh stream.
+     * @param manager client provided memory manager
+     * @return Decoded binary data in XMLByte stream,
+     *      or NULL if input data can not be decoded.
+     * @see   XMLString::release(XMLByte**)
+     */
+    static XMLByte* decodeToXMLByte(
+                         const XMLCh*          const    hexData
+                       ,       MemoryManager*  const    manager = XMLPlatformUtils::fgMemoryManager
+                        );
+
+
+    //@}
+
+private :
+
+    // -----------------------------------------------------------------------
+    //  Helper methods
+    // -----------------------------------------------------------------------
+
+    static void init();
+
+    static bool isHex(const XMLCh& octect);
+
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    HexBin();
+    HexBin(const HexBin&);
+    HexBin& operator=(const HexBin&);
+
+    // -----------------------------------------------------------------------
+    //  Private data members
+    //
+    //  isInitialized
+    //
+    //     set once hexNumberTable is initalized.
+    //
+    //  hexNumberTable
+    //
+    //     arrany holding valid hexNumber character.
+    //
+    // -----------------------------------------------------------------------
+    static bool       isInitialized;
+    static XMLByte    hexNumberTable[];
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/ValueHashTableOf.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/ValueHashTableOf.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/ValueHashTableOf.hpp	(revision 2674)
@@ -0,0 +1,234 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: ValueHashTableOf.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+#if !defined(VALUEHASHTABLEOF_HPP)
+#define VALUEHASHTABLEOF_HPP
+
+
+#include <xercesc/util/HashBase.hpp>
+#include <xercesc/util/IllegalArgumentException.hpp>
+#include <xercesc/util/NoSuchElementException.hpp>
+#include <xercesc/util/RuntimeException.hpp>
+#include <xercesc/util/PlatformUtils.hpp>
+#include <xercesc/util/XMLString.hpp>
+#include <xercesc/util/HashXMLCh.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+//
+//  Forward declare the enumerator so he can be our friend. Can you say
+//  friend? Sure...
+//
+template <class TVal> class ValueHashTableOfEnumerator;
+template <class TVal> struct ValueHashTableBucketElem;
+
+
+//
+//  This should really be a nested class, but some of the compilers we
+//  have to support cannot deal with that!
+//
+template <class TVal> struct ValueHashTableBucketElem
+{
+    ValueHashTableBucketElem(void* key, const TVal& value, ValueHashTableBucketElem<TVal>* next)
+		: fData(value), fNext(next), fKey(key)
+        {
+        }
+    ValueHashTableBucketElem(){};
+    ~ValueHashTableBucketElem(){};
+
+    TVal                           fData;
+    ValueHashTableBucketElem<TVal>* fNext;
+	void*                          fKey;
+
+private:
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------    
+    ValueHashTableBucketElem(const ValueHashTableBucketElem<TVal>&);
+    ValueHashTableBucketElem<TVal>& operator=(const ValueHashTableBucketElem<TVal>&);
+};
+
+
+template <class TVal> class ValueHashTableOf : public XMemory
+{
+public:
+    // -----------------------------------------------------------------------
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+	// backwards compatability - default hasher is HashXMLCh
+    ValueHashTableOf
+    (
+          const unsigned int   modulus
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+	// if a hash function is passed in, it will be deleted when the hashtable is deleted.
+	// use a new instance of the hasher class for each hashtable, otherwise one hashtable
+	// may delete the hasher of a different hashtable if both use the same hasher.
+    ValueHashTableOf
+    (
+          const unsigned int   modulus
+        , HashBase*            hashBase
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+    ~ValueHashTableOf();
+
+
+    // -----------------------------------------------------------------------
+    //  Element management
+    // -----------------------------------------------------------------------
+    bool isEmpty() const;
+    bool containsKey(const void* const key) const;
+    void removeKey(const void* const key);
+    void removeAll();
+
+
+    // -----------------------------------------------------------------------
+    //  Getters
+    // -----------------------------------------------------------------------
+    TVal& get(const void* const key, MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+    const TVal& get(const void* const key) const;
+
+
+    // -----------------------------------------------------------------------
+    //  Putters
+    // -----------------------------------------------------------------------
+	void put(void* key, const TVal& valueToAdopt);
+
+
+private :
+    // -----------------------------------------------------------------------
+    //  Declare our friends
+    // -----------------------------------------------------------------------
+    friend class ValueHashTableOfEnumerator<TVal>;
+
+private:
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------    
+    ValueHashTableOf(const ValueHashTableOf<TVal>&);
+    ValueHashTableOf<TVal>& operator=(const ValueHashTableOf<TVal>&);
+
+    // -----------------------------------------------------------------------
+    //  Private methods
+    // -----------------------------------------------------------------------
+    ValueHashTableBucketElem<TVal>* findBucketElem(const void* const key, unsigned int& hashVal);
+    const ValueHashTableBucketElem<TVal>* findBucketElem(const void* const key, unsigned int& hashVal) const;
+    void removeBucketElem(const void* const key, unsigned int& hashVal);
+	void initialize(const unsigned int modulus);
+
+
+    // -----------------------------------------------------------------------
+    //  Data members
+    //
+    //  fBucketList
+    //      This is the array that contains the heads of all of the list
+    //      buckets, one for each possible hash value.
+    //
+    //  fHashModulus
+    //      The modulus used for this hash table, to hash the keys. This is
+    //      also the number of elements in the bucket list.
+	//
+	//  fHash
+	//      The hasher for the key data type.
+    // -----------------------------------------------------------------------
+    MemoryManager*                   fMemoryManager;
+    ValueHashTableBucketElem<TVal>** fBucketList;
+    unsigned int                     fHashModulus;
+	HashBase*                        fHash;
+};
+
+
+
+//
+//  An enumerator for a value array. It derives from the basic enumerator
+//  class, so that value vectors can be generically enumerated.
+//
+template <class TVal> class ValueHashTableOfEnumerator : public XMLEnumerator<TVal>, public XMemory
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+    ValueHashTableOfEnumerator(ValueHashTableOf<TVal>* const toEnum
+        , const bool adopt = false
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+    virtual ~ValueHashTableOfEnumerator();
+
+
+    // -----------------------------------------------------------------------
+    //  Enum interface
+    // -----------------------------------------------------------------------
+    bool hasMoreElements() const;
+    TVal& nextElement();
+    void Reset();
+
+    // -----------------------------------------------------------------------
+    //  New interface specific for key used in ValueHashable
+    // -----------------------------------------------------------------------
+    void* nextElementKey();
+
+
+private :
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------    
+    ValueHashTableOfEnumerator(const ValueHashTableOfEnumerator<TVal>&);
+    ValueHashTableOfEnumerator<TVal>& operator=(const ValueHashTableOfEnumerator<TVal>&);
+
+    // -----------------------------------------------------------------------
+    //  Private methods
+    // -----------------------------------------------------------------------
+    void findNext();
+
+
+    // -----------------------------------------------------------------------
+    //  Data Members
+    //
+    //  fAdopted
+    //      Indicates whether we have adopted the passed vector. If so then
+    //      we delete the vector when we are destroyed.
+    //
+    //  fCurElem
+    //      This is the current bucket bucket element that we are on.
+    //
+    //  fCurHash
+    //      The is the current hash buck that we are working on. Once we hit
+    //      the end of the bucket that fCurElem is in, then we have to start
+    //      working this one up to the next non-empty bucket.
+    //
+    //  fToEnum
+    //      The value array being enumerated.
+    // -----------------------------------------------------------------------
+    bool                            fAdopted;
+    ValueHashTableBucketElem<TVal>* fCurElem;
+    unsigned int                    fCurHash;
+    ValueHashTableOf<TVal>*         fToEnum;
+    MemoryManager* const            fMemoryManager;
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#if !defined(XERCES_TMPLSINC)
+#include <xercesc/util/ValueHashTableOf.c>
+#endif
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/RefArrayVectorOf.c
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/RefArrayVectorOf.c	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/RefArrayVectorOf.c	(revision 2674)
@@ -0,0 +1,122 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+// ---------------------------------------------------------------------------
+//  Includes
+// ---------------------------------------------------------------------------
+#if defined(XERCES_TMPLSINC)
+#include "RefArrayVectorOf.hpp"
+#endif
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+// ---------------------------------------------------------------------------
+//  RefArrayVectorOf: Constructor and Destructor
+// ---------------------------------------------------------------------------
+template <class TElem>
+RefArrayVectorOf<TElem>::RefArrayVectorOf( const unsigned int maxElems
+                                         , const bool adoptElems
+                                         , MemoryManager* const manager)
+    : BaseRefVectorOf<TElem>(maxElems, adoptElems, manager)
+{
+}
+
+
+template <class TElem> RefArrayVectorOf<TElem>::~RefArrayVectorOf()
+{
+    if (this->fAdoptedElems)
+    {
+      for (unsigned int index = 0; index < this->fCurCount; index++)
+            this->fMemoryManager->deallocate(this->fElemList[index]);//delete[] fElemList[index];
+    }
+    this->fMemoryManager->deallocate(this->fElemList);//delete [] fElemList;
+}
+
+template <class TElem> void
+RefArrayVectorOf<TElem>::setElementAt(TElem* const toSet, const unsigned int setAt)
+{
+    if (setAt >= this->fCurCount)
+        ThrowXMLwithMemMgr(ArrayIndexOutOfBoundsException, XMLExcepts::Vector_BadIndex, this->fMemoryManager);
+
+    if (this->fAdoptedElems)
+        this->fMemoryManager->deallocate(this->fElemList[setAt]);
+
+    this->fElemList[setAt] = toSet;
+}
+
+template <class TElem> void RefArrayVectorOf<TElem>::removeAllElements()
+{
+    for (unsigned int index = 0; index < this->fCurCount; index++)
+    {
+        if (this->fAdoptedElems)
+          this->fMemoryManager->deallocate(this->fElemList[index]);
+
+        // Keep unused elements zero for sanity's sake
+        this->fElemList[index] = 0;
+    }
+    this->fCurCount = 0;
+}
+
+template <class TElem> void RefArrayVectorOf<TElem>::
+removeElementAt(const unsigned int removeAt)
+{
+    if (removeAt >= this->fCurCount)
+        ThrowXMLwithMemMgr(ArrayIndexOutOfBoundsException, XMLExcepts::Vector_BadIndex, this->fMemoryManager);
+
+    if (this->fAdoptedElems)
+        this->fMemoryManager->deallocate(this->fElemList[removeAt]);
+
+    // Optimize if its the last element
+    if (removeAt == this->fCurCount-1)
+    {
+        this->fElemList[removeAt] = 0;
+        this->fCurCount--;
+        return;
+    }
+
+    // Copy down every element above remove point
+    for (unsigned int index = removeAt; index < this->fCurCount-1; index++)
+        this->fElemList[index] = this->fElemList[index+1];
+
+    // Keep unused elements zero for sanity's sake
+    this->fElemList[this->fCurCount-1] = 0;
+
+    // And bump down count
+    this->fCurCount--;
+}
+
+template <class TElem> void RefArrayVectorOf<TElem>::removeLastElement()
+{
+    if (!this->fCurCount)
+        return;
+    this->fCurCount--;
+
+    if (this->fAdoptedElems)
+        this->fMemoryManager->deallocate(this->fElemList[this->fCurCount]);
+}
+
+template <class TElem> void RefArrayVectorOf<TElem>::cleanup()
+{
+    if (this->fAdoptedElems)
+    {
+        for (unsigned int index = 0; index < this->fCurCount; index++)
+            this->fMemoryManager->deallocate(this->fElemList[index]);
+    }
+    this->fMemoryManager->deallocate(this->fElemList);//delete [] fElemList;
+}
+
+XERCES_CPP_NAMESPACE_END
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/regx/XMLUniCharacter.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/regx/XMLUniCharacter.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/regx/XMLUniCharacter.hpp	(revision 2674)
@@ -0,0 +1,101 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: XMLUniCharacter.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(XMLUNICHARACTER_HPP)
+#define XMLUNICHARACTER_HPP
+
+#include <xercesc/util/XercesDefs.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+/**
+  * Class for representing unicode characters
+  */
+class XMLUTIL_EXPORT XMLUniCharacter
+{
+public:
+    // -----------------------------------------------------------------------
+    //  Public Constants
+    // -----------------------------------------------------------------------
+    // Unicode chara types
+    enum {
+        UNASSIGNED              = 0,
+        UPPERCASE_LETTER        = 1,
+        LOWERCASE_LETTER        = 2,
+        TITLECASE_LETTER        = 3,
+        MODIFIER_LETTER         = 4,
+        OTHER_LETTER            = 5,
+        NON_SPACING_MARK        = 6,
+        ENCLOSING_MARK          = 7,
+        COMBINING_SPACING_MARK  = 8,
+        DECIMAL_DIGIT_NUMBER    = 9,
+        LETTER_NUMBER           = 10,
+        OTHER_NUMBER            = 11,
+        SPACE_SEPARATOR         = 12,
+        LINE_SEPARATOR          = 13,
+        PARAGRAPH_SEPARATOR     = 14,
+        CONTROL                 = 15,
+        FORMAT                  = 16,
+        PRIVATE_USE             = 17,
+        SURROGATE               = 18,
+        DASH_PUNCTUATION        = 19,
+        START_PUNCTUATION       = 20,
+        END_PUNCTUATION         = 21,
+		CONNECTOR_PUNCTUATION   = 22,
+        OTHER_PUNCTUATION       = 23,
+        MATH_SYMBOL             = 24,
+        CURRENCY_SYMBOL         = 25,
+        MODIFIER_SYMBOL         = 26,
+        OTHER_SYMBOL            = 27,
+		INITIAL_PUNCTUATION     = 28,
+		FINAL_PUNCTUATION       = 29
+	};
+
+	/** destructor */
+    ~XMLUniCharacter() {}
+
+    /* Static methods for getting unicode character type */
+    /** @name Getter functions */
+    //@{
+
+    /** Gets the unicode type of a given character
+      *
+      * @param ch The character we want to get its unicode type
+      */
+    static unsigned short getType(const XMLCh ch);
+	//@}
+
+private :
+
+    /** @name Constructors and Destructor */
+    //@{
+    /** Unimplemented default constructor */
+    XMLUniCharacter();
+    //@}
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
+
+/**
+  * End of file XMLUniCharacter.hpp
+  */
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/regx/UnionToken.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/regx/UnionToken.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/regx/UnionToken.hpp	(revision 2674)
@@ -0,0 +1,91 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: UnionToken.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(UNIONTOKEN_HPP)
+#define UNIONTOKEN_HPP
+
+// ---------------------------------------------------------------------------
+//  Includes
+// ---------------------------------------------------------------------------
+#include <xercesc/util/regx/Token.hpp>
+#include <xercesc/util/RefVectorOf.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class XMLUTIL_EXPORT UnionToken : public Token {
+public:
+	// -----------------------------------------------------------------------
+    //  Public Constructors and Destructor
+    // -----------------------------------------------------------------------
+	UnionToken(const unsigned short tokType
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+    ~UnionToken();
+
+	// -----------------------------------------------------------------------
+    //  Getter methods
+    // -----------------------------------------------------------------------
+    int size() const;
+    Token* getChild(const int index) const;
+
+	// -----------------------------------------------------------------------
+    //  Children manipulation methods
+    // -----------------------------------------------------------------------
+    void addChild(Token* const child, TokenFactory* const tokFactory);
+
+private:
+	// -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    UnionToken(const UnionToken&);
+    UnionToken& operator=(const UnionToken&);
+
+	// -----------------------------------------------------------------------
+    //  Private Constants
+    // -----------------------------------------------------------------------
+	static const unsigned short INITIALSIZE;
+
+	// -----------------------------------------------------------------------
+    //  Private data members
+	// -----------------------------------------------------------------------
+	RefVectorOf<Token>* fChildren;
+};
+
+
+// ---------------------------------------------------------------------------
+//  UnionToken: getter methods
+// ---------------------------------------------------------------------------
+inline int UnionToken::size() const {
+
+    return fChildren == 0 ? 0 : fChildren->size();
+}
+
+inline Token* UnionToken::getChild(const int index) const {
+
+    return fChildren->elementAt(index);
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
+
+/**
+  * End of file UnionToken.hpp
+  */
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/regx/UnicodeRangeFactory.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/regx/UnicodeRangeFactory.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/regx/UnicodeRangeFactory.hpp	(revision 2674)
@@ -0,0 +1,71 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: UnicodeRangeFactory.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(UNICODERANGEFACTORY_HPP)
+#define UNICODERANGEFACTORY_HPP
+
+// ---------------------------------------------------------------------------
+//  Includes
+// ---------------------------------------------------------------------------
+#include <xercesc/util/regx/RangeFactory.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class XMLUTIL_EXPORT UnicodeRangeFactory: public RangeFactory {
+
+public:
+    // -----------------------------------------------------------------------
+    //  Constructors and operators
+    // -----------------------------------------------------------------------
+    UnicodeRangeFactory();
+    ~UnicodeRangeFactory();
+
+    // -----------------------------------------------------------------------
+    //  Initialization methods
+    // -----------------------------------------------------------------------
+	void initializeKeywordMap(RangeTokenMap *rangeTokMap = 0);
+
+protected:
+    // -----------------------------------------------------------------------
+    //  Private Helper methods
+    // -----------------------------------------------------------------------
+	void buildRanges(RangeTokenMap *rangeTokMap = 0);
+
+private:
+	// -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    UnicodeRangeFactory(const UnicodeRangeFactory&);
+    UnicodeRangeFactory& operator=(const UnicodeRangeFactory&);
+
+    // -----------------------------------------------------------------------
+    //  Helper methods
+    // -----------------------------------------------------------------------
+    unsigned short getUniCategory(const unsigned short type);
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
+
+/**
+  *	End file UnicodeRangeFactory.hpp
+  */
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/regx/RangeTokenMap.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/regx/RangeTokenMap.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/regx/RangeTokenMap.hpp	(revision 2674)
@@ -0,0 +1,237 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: RangeTokenMap.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(RANGETOKENMAP_HPP)
+#define RANGETOKENMAP_HPP
+
+// ---------------------------------------------------------------------------
+//  Includes
+// ---------------------------------------------------------------------------
+#include <xercesc/util/Mutexes.hpp>
+#include <xercesc/util/RefHashTableOf.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+// ---------------------------------------------------------------------------
+//  Forward Declaration
+// ---------------------------------------------------------------------------
+class RangeToken;
+class RangeFactory;
+class TokenFactory;
+class XMLStringPool;
+
+class XMLUTIL_EXPORT RangeTokenElemMap : public XMemory
+{
+
+public:
+    RangeTokenElemMap(unsigned int categoryId);
+    ~RangeTokenElemMap();
+
+    // -----------------------------------------------------------------------
+    //  Getter methods
+    // -----------------------------------------------------------------------
+	unsigned int getCategoryId() const;
+	RangeToken*  getRangeToken(const bool complement = false) const;
+
+	// -----------------------------------------------------------------------
+    //  Setter methods
+    // -----------------------------------------------------------------------
+	void setRangeToken(RangeToken* const tok, const bool complement = false);
+	void setCategoryId(const unsigned int categId);
+
+private:
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    RangeTokenElemMap(const RangeTokenElemMap&);
+    RangeTokenElemMap& operator=(const RangeTokenElemMap&);
+
+    // Data members
+    unsigned int fCategoryId;
+    RangeToken*  fRange;
+    RangeToken*  fNRange;
+};
+
+
+class XMLUTIL_EXPORT RangeTokenMap : public XMemory
+{
+public:
+    // -----------------------------------------------------------------------
+    //  Putter methods
+    // -----------------------------------------------------------------------
+    void addCategory(const XMLCh* const categoryName);
+	void addRangeMap(const XMLCh* const categoryName,
+                     RangeFactory* const rangeFactory);
+    void addKeywordMap(const XMLCh* const keyword,
+                       const XMLCh* const categoryName);
+
+    // -----------------------------------------------------------------------
+    //  Instance methods
+    // -----------------------------------------------------------------------
+	static RangeTokenMap* instance();
+
+    // -----------------------------------------------------------------------
+    //  Setter methods
+    // -----------------------------------------------------------------------
+	void setRangeToken(const XMLCh* const keyword, RangeToken* const tok,
+                       const bool complement = false);
+
+    // -----------------------------------------------------------------------
+    //  Getter methods
+    // -----------------------------------------------------------------------
+	TokenFactory* getTokenFactory() const;
+
+	// -----------------------------------------------------------------------
+    //  Notification that lazy data has been deleted
+    // -----------------------------------------------------------------------
+	static void reinitInstance();
+
+protected:
+    // -----------------------------------------------------------------------
+    //  Constructor and destructors
+    // -----------------------------------------------------------------------
+    RangeTokenMap(MemoryManager* manager);
+    ~RangeTokenMap();
+
+    // -----------------------------------------------------------------------
+    //  Getter methods
+    // -----------------------------------------------------------------------
+    /*
+     *  Gets a commonly used RangeToken from the token registry based on the
+     *  range name - Called by TokenFactory.
+     */
+	 RangeToken* getRange(const XMLCh* const name,
+                          const bool complement = false);
+
+     RefHashTableOf<RangeTokenElemMap>* getTokenRegistry() const;
+     RefHashTableOf<RangeFactory>* getRangeMap() const;
+	 XMLStringPool* getCategories() const;
+
+private:
+	// -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    RangeTokenMap(const RangeTokenMap&);
+    RangeTokenMap& operator=(const RangeTokenMap&);
+
+    // -----------------------------------------------------------------------
+    //  Private Helpers methods
+    // -----------------------------------------------------------------------
+    /*
+     *  Initializes the registry with a set of commonly used RangeToken
+     *  objects.
+     */
+    void initializeRegistry();
+    void buildTokenRanges();
+    void cleanUp();
+	friend class TokenFactory;
+
+    // -----------------------------------------------------------------------
+    //  Private data members
+    //
+    //  fTokenRegistry
+    //      Contains a set of commonly used tokens
+	//
+    //  fRangeMap
+    //      Contains a map between a category name and a RangeFactory object.
+    //
+    //  fCategories
+    //      Contains range categories names
+    //
+    //  fTokenFactory
+    //      Token factory object
+    //
+    //  fInstance
+    //      A RangeTokenMap instance
+    //
+    //  fMutex
+    //      A mutex object for synchronization
+    // -----------------------------------------------------------------------	
+    RefHashTableOf<RangeTokenElemMap>* fTokenRegistry;
+    RefHashTableOf<RangeFactory>*      fRangeMap;
+	XMLStringPool*                     fCategories;
+    TokenFactory*                      fTokenFactory;
+    XMLMutex                           fMutex;
+    static RangeTokenMap*              fInstance;
+
+    friend class XMLInitializer;
+};
+
+// ---------------------------------------------------------------------------
+//  RangeTokenElemMap: Getter methods
+// ---------------------------------------------------------------------------
+inline unsigned int RangeTokenElemMap::getCategoryId() const {
+
+    return fCategoryId;
+}
+
+inline RangeToken* RangeTokenElemMap::getRangeToken(const bool complement) const {
+
+	return complement ? fNRange : fRange;
+}
+
+// ---------------------------------------------------------------------------
+//  RangeTokenElemMap: Setter methods
+// ---------------------------------------------------------------------------
+inline void RangeTokenElemMap::setCategoryId(const unsigned int categId) {
+
+    fCategoryId = categId;
+}
+
+inline void RangeTokenElemMap::setRangeToken(RangeToken* const tok,
+                                      const bool complement) {
+
+    if (complement)
+        fNRange = tok;
+	else
+        fRange = tok;
+}
+
+// ---------------------------------------------------------------------------
+//  RangeTokenMap: Getter methods
+// ---------------------------------------------------------------------------
+inline RefHashTableOf<RangeTokenElemMap>* RangeTokenMap::getTokenRegistry() const {
+
+    return fTokenRegistry;
+}
+
+inline RefHashTableOf<RangeFactory>* RangeTokenMap::getRangeMap() const {
+
+    return fRangeMap;
+}
+
+inline XMLStringPool* RangeTokenMap::getCategories() const {
+
+    return fCategories;
+}
+
+inline TokenFactory* RangeTokenMap::getTokenFactory() const {
+
+    return fTokenFactory;
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
+
+/**
+  *	End file RangeToken.hpp
+  */
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/regx/BMPattern.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/regx/BMPattern.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/regx/BMPattern.hpp	(revision 2674)
@@ -0,0 +1,156 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: BMPattern.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(BMPATTERN_HPP)
+#define BMPATTERN_HPP
+// ---------------------------------------------------------------------------
+//  Includes
+// ---------------------------------------------------------------------------
+#include <xercesc/util/XMemory.hpp>
+#include <xercesc/util/PlatformUtils.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class XMLUTIL_EXPORT BMPattern : public XMemory
+{
+public:
+	// -----------------------------------------------------------------------
+	//  Public Constructors and Destructor
+    // -----------------------------------------------------------------------
+	/** @name Constructors */
+    //@{
+
+	/**
+      * This is the onstructor which takes the pattern information. A default
+      * shift table size is used.
+      *
+      * @param  pattern     The pattern to match against.
+      *
+      * @param  ignoreCase  A flag to indicate whether to ignore case
+	  *						matching or not.
+      *
+      * @param  manager     The configurable memory manager
+      */
+	BMPattern
+    (
+        const XMLCh* const pattern
+        , bool ignoreCase
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+	/**
+      * This is the constructor which takes all of the information
+      * required to construct a BM pattern object.
+      *
+      * @param  pattern     The pattern to match against.
+      *
+	  * @param	tableSize	Indicates the size of the shift table.
+	  *
+      * @param  ignoreCase  A flag to indicate whether to ignore case
+	  *						matching or not.
+      *
+      * @param  manager     The configurable memory manager
+      */
+	BMPattern
+    (
+        const XMLCh* const pattern
+        , int tableSize
+        , bool ignoreCase
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+	//@}
+
+	/** @name Destructor. */
+    //@{
+
+	/**
+	  * Destructor of BMPattern
+	  */
+	~BMPattern();
+
+	//@}
+
+	// -----------------------------------------------------------------------
+	// Matching functions
+	// -----------------------------------------------------------------------
+	/** @name Matching Functions */
+	//@{
+
+	/**
+	  *	This method will perform a match of the given content against a
+	  *	predefined pattern.
+	  */
+	int matches(const XMLCh* const content, int start, int limit);
+
+	//@}
+
+private :
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    BMPattern();
+    BMPattern(const BMPattern&);
+    BMPattern& operator=(const BMPattern&);
+
+		// -----------------------------------------------------------------------
+	// This method will perform a case insensitive match
+	// -----------------------------------------------------------------------
+	bool matchesIgnoreCase(const XMLCh ch1, const XMLCh ch2);
+
+	// -----------------------------------------------------------------------
+	// Initialize/Clean up methods
+	// -----------------------------------------------------------------------
+	void initialize();
+	void cleanUp();
+
+	// -----------------------------------------------------------------------
+    //  Private data members
+    //
+    //  fPattern
+	//	fUppercasePattern
+    //      This is the pattern to match against, and its upper case form.
+	//		
+    //  fIgnoreCase
+    //      This is an indicator whether cases should be ignored during
+	//		matching.
+    //
+    //  fShiftTable
+	//	fShiftTableLen
+    //      This is a table of offsets for shifting purposes used by the BM
+	//		search algorithm, and its length.
+    // -----------------------------------------------------------------------
+	bool           fIgnoreCase;
+	unsigned int   fShiftTableLen;
+	int*           fShiftTable;
+	XMLCh*         fPattern;
+	XMLCh*         fUppercasePattern;
+    MemoryManager* fMemoryManager; 
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
+
+/*
+ * End of file BMPattern.hpp
+ */
+
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/regx/Match.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/regx/Match.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/regx/Match.hpp	(revision 2674)
@@ -0,0 +1,163 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: Match.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(MATCH_HPP)
+#define MATCH_HPP
+
+// ---------------------------------------------------------------------------
+//  Includes
+// ---------------------------------------------------------------------------
+#include <xercesc/util/PlatformUtils.hpp>
+#include <xercesc/util/ArrayIndexOutOfBoundsException.hpp>
+#include <xercesc/util/RuntimeException.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+/**
+  * An instance of this class has ranges captured in matching
+  */
+  class XMLUTIL_EXPORT Match : public XMemory
+{
+public:
+
+	// -----------------------------------------------------------------------
+  //  Public Constructors and Destructor
+  // -----------------------------------------------------------------------
+	Match(MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+	
+  /**
+  * Copy constructor
+  */
+  Match(const Match& toCopy);
+  Match& operator=(const Match& toAssign);
+
+	virtual ~Match();
+
+	// -----------------------------------------------------------------------
+	// Getter functions
+	// -----------------------------------------------------------------------
+	int getNoGroups() const;
+	int getStartPos(int index) const;
+	int getEndPos(int index) const;
+
+	// -----------------------------------------------------------------------
+	// Setter functions
+	// -----------------------------------------------------------------------
+	void setNoGroups(const int n);
+	void setStartPos(const int index, const int value);
+	void setEndPos(const int index, const int value);
+
+private:
+	// -----------------------------------------------------------------------
+	// Initialize/Clean up methods
+	// -----------------------------------------------------------------------
+  void initialize(const Match& toCopy);
+	void cleanUp();
+
+	// -----------------------------------------------------------------------
+    //  Private data members
+    //
+    //  fNoGroups
+    //  Represents no of regular expression groups
+	//		
+    //  fStartPositions
+    //  Array of start positions in the target text matched to specific
+	//		regular expression group
+	//
+	//	fEndPositions
+	//		Array of end positions in the target text matched to specific
+	//		regular expression group
+	//
+	//	fPositionsSize
+	//		Actual size of Start/EndPositions array.
+    // -----------------------------------------------------------------------
+	int fNoGroups;
+	int fPositionsSize;
+	int* fStartPositions;
+	int* fEndPositions;
+    MemoryManager* fMemoryManager;
+};
+
+/**
+  * Inline Methods
+  */
+
+// ---------------------------------------------------------------------------
+//  Match: getter methods
+// ---------------------------------------------------------------------------
+inline int Match::getNoGroups() const {
+
+	if (fNoGroups < 0)
+		ThrowXMLwithMemMgr(RuntimeException, XMLExcepts::Regex_Result_Not_Set, fMemoryManager);
+
+	return fNoGroups;
+}
+
+inline int Match::getStartPos(int index) const {
+
+	if (!fStartPositions)
+		ThrowXMLwithMemMgr(RuntimeException, XMLExcepts::Regex_Result_Not_Set, fMemoryManager);
+
+	if (index < 0 || fNoGroups <= index)
+		ThrowXMLwithMemMgr(ArrayIndexOutOfBoundsException, XMLExcepts::Array_BadIndex, fMemoryManager);
+
+	return fStartPositions[index];
+}
+
+inline int Match::getEndPos(int index) const {
+
+	if (!fEndPositions)
+		ThrowXMLwithMemMgr(RuntimeException, XMLExcepts::Regex_Result_Not_Set, fMemoryManager);
+
+	if (index < 0 || fNoGroups <= index)
+		ThrowXMLwithMemMgr(ArrayIndexOutOfBoundsException, XMLExcepts::Array_BadIndex, fMemoryManager);
+
+	return fEndPositions[index];
+}
+
+// ---------------------------------------------------------------------------
+//  Match: setter methods
+// ---------------------------------------------------------------------------
+inline void Match::setStartPos(const int index, const int value) {
+
+	if (!fStartPositions)
+        ThrowXMLwithMemMgr(RuntimeException, XMLExcepts::Regex_Result_Not_Set, fMemoryManager);
+
+	if (index < 0 || fNoGroups <= index)
+		ThrowXMLwithMemMgr(ArrayIndexOutOfBoundsException, XMLExcepts::Array_BadIndex, fMemoryManager);
+
+	fStartPositions[index] = value;
+}
+
+inline void Match::setEndPos(const int index, const int value) {
+
+	if (!fEndPositions)
+        ThrowXMLwithMemMgr(RuntimeException, XMLExcepts::Regex_Result_Not_Set, fMemoryManager);
+
+	if (index < 0 || fNoGroups <= index)
+		ThrowXMLwithMemMgr(ArrayIndexOutOfBoundsException, XMLExcepts::Array_BadIndex, fMemoryManager);
+
+	fEndPositions[index] = value;
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/regx/ASCIIRangeFactory.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/regx/ASCIIRangeFactory.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/regx/ASCIIRangeFactory.hpp	(revision 2674)
@@ -0,0 +1,66 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: ASCIIRangeFactory.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(ASCIIRANGEFACTORY_HPP)
+#define ASCIIRANGEFACTORY_HPP
+
+// ---------------------------------------------------------------------------
+//  Includes
+// ---------------------------------------------------------------------------
+#include <xercesc/util/regx/RangeFactory.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class XMLUTIL_EXPORT ASCIIRangeFactory: public RangeFactory {
+
+public:
+    // -----------------------------------------------------------------------
+    //  Constructors and operators
+    // -----------------------------------------------------------------------
+    ASCIIRangeFactory();
+    ~ASCIIRangeFactory();
+
+    // -----------------------------------------------------------------------
+    //  Initialization methods
+    // -----------------------------------------------------------------------
+	void initializeKeywordMap(RangeTokenMap *rangeTokMap = 0);
+
+protected:
+    // -----------------------------------------------------------------------
+    //  Private Helper methods
+    // -----------------------------------------------------------------------
+	void buildRanges(RangeTokenMap *rangeTokMap = 0);
+
+private:
+	// -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    ASCIIRangeFactory(const ASCIIRangeFactory&);
+    ASCIIRangeFactory& operator=(const ASCIIRangeFactory&);
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
+
+/**
+  *	End file ASCIIRangeFactory.hpp
+  */
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/regx/RangeToken.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/regx/RangeToken.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/regx/RangeToken.hpp	(revision 2674)
@@ -0,0 +1,141 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: RangeToken.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(RANGETOKEN_HPP)
+#define RANGETOKEN_HPP
+
+// ---------------------------------------------------------------------------
+//  Includes
+// ---------------------------------------------------------------------------
+#include <xercesc/util/PlatformUtils.hpp>
+#include <xercesc/util/regx/Token.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+// ---------------------------------------------------------------------------
+//  Forward Declaration
+// ---------------------------------------------------------------------------
+class TokenFactory;
+
+
+class XMLUTIL_EXPORT RangeToken : public Token {
+public:
+    // -----------------------------------------------------------------------
+    //  Public Constructors and Destructor
+    // -----------------------------------------------------------------------
+    RangeToken(const unsigned short tokType,
+               MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+    ~RangeToken();
+
+    // -----------------------------------------------------------------------
+    //  Public Constants
+    // -----------------------------------------------------------------------
+    static const int MAPSIZE;
+    static const unsigned int INITIALSIZE;
+
+    // -----------------------------------------------------------------------
+    //  Getter methods
+    // -----------------------------------------------------------------------
+    RangeToken* getCaseInsensitiveToken(TokenFactory* const tokFactory);
+
+    void setCaseInsensitiveToken(RangeToken* tok);
+
+    // -----------------------------------------------------------------------
+    //  Setter methods
+    // -----------------------------------------------------------------------
+    void setRangeValues(XMLInt32* const rangeValues, const unsigned int count);
+
+    // -----------------------------------------------------------------------
+    //  Range manipulation methods
+    // -----------------------------------------------------------------------
+    void addRange(const XMLInt32 start, const XMLInt32 end);
+    void mergeRanges(const Token *const tok);
+    void sortRanges();
+    void compactRanges();
+    void subtractRanges(RangeToken* const tok);
+    void intersectRanges(RangeToken* const tok);
+    static Token* complementRanges(RangeToken* const tok,
+                                   TokenFactory* const tokFactory,
+                                   MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+
+    // -----------------------------------------------------------------------
+    //  Match methods
+    // -----------------------------------------------------------------------
+    bool match(const XMLInt32 ch);
+
+    // -----------------------------------------------------------------------
+    //  Creates the map.  This will happen automatically,
+    //  necessary.
+    // -----------------------------------------------------------------------
+    void
+    createMap();
+
+private:
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    RangeToken(const RangeToken&);
+    RangeToken& operator=(const RangeToken&);
+
+    // -----------------------------------------------------------------------
+    // Private Helper methods
+    // -----------------------------------------------------------------------
+    void expand(const unsigned int length);
+
+    void doCreateMap();
+
+    // -----------------------------------------------------------------------
+    //  Private data members
+    // -----------------------------------------------------------------------
+    bool         fSorted;
+    bool         fCompacted;
+    int          fNonMapIndex;
+    unsigned int fElemCount;
+    unsigned int fMaxCount;
+    int*         fMap;
+    XMLInt32*    fRanges;
+    RangeToken*  fCaseIToken;
+    MemoryManager* fMemoryManager;
+};
+
+
+inline void RangeToken::setCaseInsensitiveToken(RangeToken* tok)
+{
+    fCaseIToken = tok;
+}
+
+inline void RangeToken::createMap()
+{
+    if (!fMap)
+    {
+        doCreateMap();
+    }
+}
+
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
+
+/**
+  * End of file RangeToken.hpp
+  */
+
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/regx/BlockRangeFactory.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/regx/BlockRangeFactory.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/regx/BlockRangeFactory.hpp	(revision 2674)
@@ -0,0 +1,66 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: BlockRangeFactory.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(BLOCKRANGEFACTORY_HPP)
+#define BLOCKRANGEFACTORY_HPP
+
+// ---------------------------------------------------------------------------
+//  Includes
+// ---------------------------------------------------------------------------
+#include <xercesc/util/regx/RangeFactory.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class XMLUTIL_EXPORT BlockRangeFactory: public RangeFactory {
+
+public:
+    // -----------------------------------------------------------------------
+    //  Constructors and operators
+    // -----------------------------------------------------------------------
+    BlockRangeFactory();
+    ~BlockRangeFactory();
+
+    // -----------------------------------------------------------------------
+    //  Initialization methods
+    // -----------------------------------------------------------------------
+	void initializeKeywordMap(RangeTokenMap *rangeTokMap = 0);
+
+protected:
+    // -----------------------------------------------------------------------
+    //  Private Helper methods
+    // -----------------------------------------------------------------------
+	void buildRanges(RangeTokenMap *rangeTokMap = 0);
+
+private:
+	// -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    BlockRangeFactory(const BlockRangeFactory&);
+    BlockRangeFactory& operator=(const BlockRangeFactory&);
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
+
+/**
+  *	End file BlockRangeFactory.hpp
+  */
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/regx/ModifierToken.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/regx/ModifierToken.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/regx/ModifierToken.hpp	(revision 2674)
@@ -0,0 +1,94 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: ModifierToken.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(MODIFIERTOKEN_HPP)
+#define MODIFIERTOKEN_HPP
+
+// ---------------------------------------------------------------------------
+//  Includes
+// ---------------------------------------------------------------------------
+#include <xercesc/util/regx/Token.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class XMLUTIL_EXPORT ModifierToken : public Token {
+public:
+	// -----------------------------------------------------------------------
+    //  Public Constructors and Destructor
+    // -----------------------------------------------------------------------
+	ModifierToken(Token* const child, const int options, const int mask
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+    ~ModifierToken();
+
+	// -----------------------------------------------------------------------
+    //  Getter methods
+    // -----------------------------------------------------------------------
+    int size() const;
+	int getOptions() const;
+	int getOptionsMask() const;
+    Token* getChild(const int index) const;
+
+private:
+	// -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    ModifierToken(const ModifierToken&);
+    ModifierToken& operator=(const ModifierToken&);
+
+	// -----------------------------------------------------------------------
+    //  Private data members
+	// -----------------------------------------------------------------------
+	int    fOptions;
+	int    fOptionsMask;
+	Token* fChild;
+};
+
+
+// ---------------------------------------------------------------------------
+//  ModifierToken: getter methods
+// ---------------------------------------------------------------------------
+inline int ModifierToken::size() const {
+
+    return 1;
+}
+
+inline int ModifierToken::getOptions() const {
+
+    return fOptions;
+}
+
+inline int ModifierToken::getOptionsMask() const {
+
+    return fOptionsMask;
+}
+
+inline Token* ModifierToken::getChild(const int) const {
+
+    return fChild;
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
+
+/**
+  * End of file ModifierToken.hpp
+  */
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/regx/UniCharTable.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/regx/UniCharTable.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/regx/UniCharTable.hpp	(revision 2674)
@@ -0,0 +1,4131 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <xercesc/util/XercesDefs.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+// ---------------------------------------------------------------------------
+//  These are Unicode character type lookup table. The table is used by the
+//  XMLUniCharacter class to return the type of a given XMLCh char
+//  (i.e LowercaseLetter, TitlecaseLetter, DigitOther, etc...) in case
+//  ICU is not used.
+//
+//  The table is generated by invoking the TokenFactory::printUnicode() 
+//  method (which is commented out).
+// ---------------------------------------------------------------------------
+const XMLByte fgUniCharsTable[0x10000] =
+{     0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F
+    , 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F
+    , 0x0C, 0x17, 0x17, 0x17, 0x19, 0x17, 0x17, 0x17, 0x14, 0x15, 0x17, 0x18, 0x17, 0x13, 0x17, 0x17
+    , 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x17, 0x17, 0x18, 0x18, 0x18, 0x17
+    , 0x17, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01
+    , 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x14, 0x17, 0x15, 0x1A, 0x16
+    , 0x1A, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02
+    , 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x14, 0x18, 0x15, 0x18, 0x0F
+    , 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F
+    , 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F
+    , 0x0C, 0x17, 0x19, 0x19, 0x19, 0x19, 0x1B, 0x1B, 0x1A, 0x1B, 0x02, 0x1C, 0x18, 0x10, 0x1B, 0x1A
+    , 0x1B, 0x18, 0x0B, 0x0B, 0x1A, 0x02, 0x1B, 0x17, 0x1A, 0x0B, 0x02, 0x1D, 0x0B, 0x0B, 0x0B, 0x17
+    , 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01
+    , 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x18, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02
+    , 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02
+    , 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x18, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02
+    , 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02
+    , 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02
+    , 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02
+    , 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01
+    , 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02
+    , 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02
+    , 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02
+    , 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x02
+    , 0x02, 0x01, 0x01, 0x02, 0x01, 0x02, 0x01, 0x01, 0x02, 0x01, 0x01, 0x01, 0x02, 0x02, 0x01, 0x01
+    , 0x01, 0x01, 0x02, 0x01, 0x01, 0x02, 0x01, 0x01, 0x01, 0x02, 0x02, 0x02, 0x01, 0x01, 0x02, 0x01
+    , 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x01, 0x02, 0x01, 0x02, 0x02, 0x01, 0x02, 0x01, 0x01
+    , 0x02, 0x01, 0x01, 0x01, 0x02, 0x01, 0x02, 0x01, 0x01, 0x02, 0x02, 0x05, 0x01, 0x02, 0x02, 0x02
+    , 0x05, 0x05, 0x05, 0x05, 0x01, 0x03, 0x02, 0x01, 0x03, 0x02, 0x01, 0x03, 0x02, 0x01, 0x02, 0x01
+    , 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x02, 0x01, 0x02
+    , 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02
+    , 0x02, 0x01, 0x03, 0x02, 0x01, 0x02, 0x01, 0x01, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02
+    , 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02
+    , 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02
+    , 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02
+    , 0x01, 0x02, 0x01, 0x02, 0x02, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02
+    , 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02
+    , 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02
+    , 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02
+    , 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02
+    , 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02
+    , 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04
+    , 0x04, 0x04, 0x1A, 0x1A, 0x1A, 0x1A, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04
+    , 0x04, 0x04, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A
+    , 0x04, 0x04, 0x04, 0x04, 0x04, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x04, 0x1A
+    , 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A
+    , 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06
+    , 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06
+    , 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06
+    , 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06
+    , 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06
+    , 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x06, 0x06
+    , 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06
+    , 0x00, 0x00, 0x00, 0x00, 0x1A, 0x1A, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x17, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x1A, 0x1A, 0x01, 0x17, 0x01, 0x01, 0x01, 0x00, 0x01, 0x00, 0x01, 0x01
+    , 0x02, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01
+    , 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x02, 0x02, 0x02
+    , 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02
+    , 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x00
+    , 0x02, 0x02, 0x01, 0x01, 0x01, 0x02, 0x02, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02
+    , 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02
+    , 0x02, 0x02, 0x02, 0x02, 0x01, 0x02, 0x18, 0x01, 0x02, 0x01, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00
+    , 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01
+    , 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01
+    , 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01
+    , 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02
+    , 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02
+    , 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02
+    , 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02
+    , 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02
+    , 0x01, 0x02, 0x1B, 0x06, 0x06, 0x06, 0x06, 0x00, 0x07, 0x07, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02
+    , 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02
+    , 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02
+    , 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02
+    , 0x01, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x00
+    , 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02
+    , 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02
+    , 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01
+    , 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01
+    , 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x04, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17
+    , 0x00, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02
+    , 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02
+    , 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x00, 0x17, 0x13, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06
+    , 0x06, 0x06, 0x00, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06
+    , 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x00, 0x06, 0x06, 0x06, 0x17, 0x06
+    , 0x17, 0x06, 0x06, 0x17, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x05, 0x05, 0x05, 0x17, 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x10, 0x10, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x17, 0x1B, 0x1B
+    , 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x17
+    , 0x00, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x04, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x06, 0x06, 0x06, 0x06, 0x06
+    , 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x17, 0x17, 0x17, 0x17, 0x05, 0x05
+    , 0x06, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x17, 0x05, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x10, 0x07, 0x06
+    , 0x06, 0x06, 0x06, 0x06, 0x06, 0x04, 0x04, 0x06, 0x06, 0x1B, 0x06, 0x06, 0x06, 0x06, 0x05, 0x05
+    , 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x05, 0x05, 0x05, 0x1B, 0x1B, 0x05
+    , 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x00, 0x10
+    , 0x05, 0x06, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06
+    , 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x00, 0x00, 0x05, 0x05, 0x05
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06
+    , 0x06, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x06, 0x06, 0x08, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x00, 0x00, 0x06, 0x05, 0x08, 0x08
+    , 0x08, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x08, 0x08, 0x08, 0x08, 0x06, 0x00, 0x00
+    , 0x05, 0x06, 0x06, 0x06, 0x06, 0x00, 0x00, 0x00, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x06, 0x06, 0x17, 0x17, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09
+    , 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x06, 0x08, 0x08, 0x00, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x00, 0x00, 0x05
+    , 0x05, 0x00, 0x00, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x00, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x05, 0x05, 0x05, 0x00, 0x00, 0x06, 0x05, 0x08, 0x08
+    , 0x08, 0x06, 0x06, 0x06, 0x06, 0x00, 0x00, 0x08, 0x08, 0x00, 0x00, 0x08, 0x08, 0x06, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x05, 0x05, 0x00, 0x05
+    , 0x05, 0x05, 0x06, 0x06, 0x00, 0x00, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09
+    , 0x05, 0x05, 0x19, 0x19, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x06, 0x06, 0x08, 0x00, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x00, 0x00, 0x00, 0x00, 0x05
+    , 0x05, 0x00, 0x00, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x00, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x00, 0x05, 0x05, 0x00, 0x05, 0x05, 0x00, 0x05, 0x05, 0x00, 0x00, 0x06, 0x00, 0x08, 0x08
+    , 0x08, 0x06, 0x06, 0x00, 0x00, 0x00, 0x00, 0x06, 0x06, 0x00, 0x00, 0x06, 0x06, 0x06, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x05, 0x05, 0x05, 0x00, 0x05, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09
+    , 0x06, 0x06, 0x05, 0x05, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x06, 0x06, 0x08, 0x00, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x00, 0x05
+    , 0x05, 0x05, 0x00, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x00, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x00, 0x05, 0x05, 0x00, 0x05, 0x05, 0x05, 0x05, 0x05, 0x00, 0x00, 0x06, 0x05, 0x08, 0x08
+    , 0x08, 0x06, 0x06, 0x06, 0x06, 0x06, 0x00, 0x06, 0x06, 0x08, 0x00, 0x08, 0x08, 0x06, 0x00, 0x00
+    , 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x05, 0x05, 0x06, 0x06, 0x00, 0x00, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09
+    , 0x00, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x06, 0x08, 0x08, 0x00, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x00, 0x00, 0x05
+    , 0x05, 0x00, 0x00, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x00, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x00, 0x05, 0x05, 0x00, 0x05, 0x05, 0x05, 0x05, 0x05, 0x00, 0x00, 0x06, 0x05, 0x08, 0x06
+    , 0x08, 0x06, 0x06, 0x06, 0x00, 0x00, 0x00, 0x08, 0x08, 0x00, 0x00, 0x08, 0x08, 0x06, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x08, 0x00, 0x00, 0x00, 0x00, 0x05, 0x05, 0x00, 0x05
+    , 0x05, 0x05, 0x00, 0x00, 0x00, 0x00, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09
+    , 0x1B, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x06, 0x05, 0x00, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x00, 0x00, 0x00, 0x05, 0x05
+    , 0x05, 0x00, 0x05, 0x05, 0x05, 0x05, 0x00, 0x00, 0x00, 0x05, 0x05, 0x00, 0x05, 0x00, 0x05, 0x05
+    , 0x00, 0x00, 0x00, 0x05, 0x05, 0x00, 0x00, 0x00, 0x05, 0x05, 0x05, 0x00, 0x00, 0x00, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x00, 0x05, 0x05, 0x05, 0x00, 0x00, 0x00, 0x00, 0x08, 0x08
+    , 0x06, 0x08, 0x08, 0x00, 0x00, 0x00, 0x08, 0x08, 0x08, 0x00, 0x08, 0x08, 0x08, 0x06, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09
+    , 0x0B, 0x0B, 0x0B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x19, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x08, 0x08, 0x08, 0x00, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x00, 0x05, 0x05
+    , 0x05, 0x00, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x00, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x00, 0x05, 0x05, 0x05, 0x05, 0x05, 0x00, 0x00, 0x00, 0x00, 0x06, 0x06
+    , 0x06, 0x08, 0x08, 0x08, 0x08, 0x00, 0x06, 0x06, 0x06, 0x00, 0x06, 0x06, 0x06, 0x06, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x05, 0x05, 0x00, 0x00, 0x00, 0x00, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x08, 0x08, 0x00, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x00, 0x05, 0x05
+    , 0x05, 0x00, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x00, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x00, 0x05, 0x05, 0x05, 0x05, 0x05, 0x00, 0x00, 0x06, 0x05, 0x08, 0x06
+    , 0x08, 0x08, 0x08, 0x08, 0x08, 0x00, 0x06, 0x08, 0x08, 0x00, 0x08, 0x08, 0x06, 0x06, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00
+    , 0x05, 0x05, 0x00, 0x00, 0x00, 0x00, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x08, 0x08, 0x00, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x00, 0x05, 0x05
+    , 0x05, 0x00, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x00, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x00, 0x00, 0x00, 0x00, 0x08, 0x08
+    , 0x08, 0x06, 0x06, 0x06, 0x00, 0x00, 0x08, 0x08, 0x08, 0x00, 0x08, 0x08, 0x08, 0x06, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x05, 0x05, 0x00, 0x00, 0x00, 0x00, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x08, 0x08, 0x00, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x00, 0x00, 0x00, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x00, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x00, 0x05, 0x00, 0x00
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x08
+    , 0x08, 0x08, 0x06, 0x06, 0x06, 0x00, 0x06, 0x00, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x08, 0x08, 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x06, 0x05, 0x05, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x00, 0x00, 0x00, 0x00, 0x19
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x04, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x17
+    , 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x17, 0x17, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x05, 0x05, 0x00, 0x05, 0x00, 0x00, 0x05, 0x05, 0x00, 0x05, 0x00, 0x00, 0x05, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x05, 0x05, 0x05, 0x05, 0x00, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x00, 0x05, 0x05, 0x05, 0x00, 0x05, 0x00, 0x05, 0x00, 0x00, 0x05, 0x05, 0x00, 0x05, 0x05, 0x05
+    , 0x05, 0x06, 0x05, 0x05, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x00, 0x06, 0x06, 0x05, 0x00, 0x00
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x00, 0x04, 0x00, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x00, 0x00
+    , 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x00, 0x00, 0x05, 0x05, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x05, 0x1B, 0x1B, 0x1B, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17
+    , 0x17, 0x17, 0x17, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x06, 0x06, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
+    , 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B
+    , 0x0B, 0x0B, 0x0B, 0x0B, 0x1B, 0x06, 0x1B, 0x06, 0x1B, 0x06, 0x14, 0x15, 0x14, 0x15, 0x08, 0x08
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x00, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x08
+    , 0x06, 0x06, 0x06, 0x06, 0x06, 0x17, 0x06, 0x06, 0x05, 0x05, 0x05, 0x05, 0x00, 0x00, 0x00, 0x00
+    , 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x00, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06
+    , 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06
+    , 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x00, 0x1B, 0x1B
+    , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x06, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x00, 0x00, 0x1B
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x00, 0x05, 0x05, 0x05, 0x05, 0x05, 0x00, 0x05, 0x05, 0x00, 0x08, 0x06, 0x06, 0x06
+    , 0x06, 0x08, 0x06, 0x00, 0x00, 0x00, 0x06, 0x06, 0x08, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x08, 0x08, 0x06, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01
+    , 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01
+    , 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x00
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x00, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x00, 0x05, 0x00, 0x05, 0x05, 0x05, 0x05, 0x00, 0x00
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x00, 0x05, 0x00, 0x05, 0x05, 0x05, 0x05, 0x00, 0x00
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x00, 0x05, 0x00, 0x05, 0x05, 0x05, 0x05, 0x00, 0x00
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x00
+    , 0x05, 0x00, 0x05, 0x05, 0x05, 0x05, 0x00, 0x00, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x00
+    , 0x05, 0x00, 0x05, 0x05, 0x05, 0x05, 0x00, 0x00, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x00
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x00, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x00
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x00
+    , 0x05, 0x00, 0x05, 0x05, 0x05, 0x05, 0x00, 0x00, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x00
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x00, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09
+    , 0x09, 0x09, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x17, 0x17, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x0C, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x14, 0x15, 0x00, 0x00, 0x00
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x17, 0x17, 0x17, 0x0A, 0x0A
+    , 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x00, 0x05, 0x05
+    , 0x05, 0x05, 0x06, 0x06, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x06, 0x06, 0x06, 0x17, 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x06, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x00, 0x05, 0x05
+    , 0x05, 0x00, 0x06, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x10, 0x10, 0x08, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x08, 0x08
+    , 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x06, 0x08, 0x08, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06
+    , 0x06, 0x06, 0x06, 0x06, 0x17, 0x17, 0x17, 0x04, 0x17, 0x17, 0x17, 0x19, 0x05, 0x06, 0x00, 0x00
+    , 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x13, 0x17, 0x17, 0x17, 0x17, 0x06, 0x06, 0x06, 0x0C, 0x00
+    , 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x04, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x00, 0x00, 0x00
+    , 0x06, 0x06, 0x06, 0x08, 0x08, 0x08, 0x08, 0x06, 0x06, 0x08, 0x08, 0x08, 0x00, 0x00, 0x00, 0x00
+    , 0x08, 0x08, 0x06, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x06, 0x06, 0x06, 0x00, 0x00, 0x00, 0x00
+    , 0x1B, 0x00, 0x00, 0x00, 0x17, 0x17, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x00, 0x00
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
+    , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02
+    , 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02
+    , 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x04, 0x04, 0x04, 0x04
+    , 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04
+    , 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04
+    , 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04
+    , 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02
+    , 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02
+    , 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02
+    , 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02
+    , 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02
+    , 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02
+    , 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02
+    , 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02
+    , 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02
+    , 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00
+    , 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02
+    , 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02
+    , 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02
+    , 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02
+    , 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02
+    , 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01
+    , 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00
+    , 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01
+    , 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01
+    , 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00
+    , 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01
+    , 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01
+    , 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x00, 0x00
+    , 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03
+    , 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03
+    , 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03
+    , 0x02, 0x02, 0x02, 0x02, 0x02, 0x00, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x03, 0x1A, 0x02, 0x1A
+    , 0x1A, 0x1A, 0x02, 0x02, 0x02, 0x00, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x03, 0x1A, 0x1A, 0x1A
+    , 0x02, 0x02, 0x02, 0x02, 0x00, 0x00, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x00, 0x1A, 0x1A, 0x1A
+    , 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x01, 0x1A, 0x1A, 0x1A
+    , 0x00, 0x00, 0x02, 0x02, 0x02, 0x00, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x03, 0x1A, 0x1A, 0x00
+    , 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x10, 0x10, 0x10, 0x10, 0x10
+    , 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x17, 0x17, 0x1C, 0x1D, 0x14, 0x1C, 0x1C, 0x1D, 0x14, 0x1C
+    , 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x0D, 0x0E, 0x10, 0x10, 0x10, 0x10, 0x10, 0x0C
+    , 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x1C, 0x1D, 0x17, 0x17, 0x17, 0x17, 0x16
+    , 0x16, 0x17, 0x17, 0x17, 0x18, 0x14, 0x15, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17
+    , 0x17, 0x17, 0x18, 0x17, 0x16, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C
+    , 0x10, 0x10, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10
+    , 0x0B, 0x02, 0x00, 0x00, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x18, 0x18, 0x18, 0x14, 0x15, 0x02
+    , 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x18, 0x18, 0x18, 0x14, 0x15, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19
+    , 0x19, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x07, 0x07, 0x07
+    , 0x07, 0x06, 0x07, 0x07, 0x07, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x1B, 0x1B, 0x01, 0x1B, 0x1B, 0x1B, 0x1B, 0x01, 0x1B, 0x1B, 0x02, 0x01, 0x01, 0x01, 0x02, 0x02
+    , 0x01, 0x01, 0x01, 0x02, 0x1B, 0x01, 0x1B, 0x1B, 0x1B, 0x01, 0x01, 0x01, 0x01, 0x01, 0x1B, 0x1B
+    , 0x1B, 0x1B, 0x1B, 0x1B, 0x01, 0x1B, 0x01, 0x1B, 0x01, 0x1B, 0x01, 0x01, 0x01, 0x01, 0x1B, 0x02
+    , 0x01, 0x01, 0x1B, 0x01, 0x02, 0x05, 0x05, 0x05, 0x05, 0x02, 0x1B, 0x1B, 0x00, 0x02, 0x01, 0x01
+    , 0x18, 0x18, 0x18, 0x18, 0x18, 0x01, 0x02, 0x02, 0x02, 0x02, 0x1B, 0x18, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B
+    , 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A
+    , 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A
+    , 0x0A, 0x0A, 0x0A, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x18, 0x18, 0x18, 0x18, 0x18, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x18, 0x18, 0x1B, 0x1B, 0x1B, 0x1B
+    , 0x18, 0x1B, 0x1B, 0x18, 0x1B, 0x1B, 0x18, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x18, 0x1B
+    , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
+    , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x18, 0x18
+    , 0x1B, 0x1B, 0x18, 0x1B, 0x18, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
+    , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
+    , 0x1B, 0x1B, 0x1B, 0x1B, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18
+    , 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18
+    , 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18
+    , 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18
+    , 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18
+    , 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18
+    , 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18
+    , 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18
+    , 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18
+    , 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18
+    , 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18
+    , 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18
+    , 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18
+    , 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18
+    , 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18
+    , 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18
+    , 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18
+    , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x18, 0x18, 0x18, 0x18, 0x1B, 0x1B, 0x1B, 0x1B
+    , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
+    , 0x18, 0x18, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x14, 0x15, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
+    , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
+    , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
+    , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
+    , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
+    , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x18, 0x1B, 0x1B, 0x1B
+    , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
+    , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x18, 0x18, 0x18, 0x18, 0x18
+    , 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18
+    , 0x18, 0x18, 0x18, 0x18, 0x14, 0x15, 0x17, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
+    , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
+    , 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
+    , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
+    , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B
+    , 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B
+    , 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B
+    , 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x1B, 0x1B, 0x1B, 0x1B
+    , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
+    , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
+    , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
+    , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
+    , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B
+    , 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B
+    , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
+    , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
+    , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
+    , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
+    , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
+    , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
+    , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
+    , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
+    , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
+    , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
+    , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
+    , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x18, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
+    , 0x1B, 0x18, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
+    , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
+    , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
+    , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18
+    , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
+    , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x00, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
+    , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
+    , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
+    , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
+    , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
+    , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x18
+    , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x00, 0x00
+    , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
+    , 0x1B, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x1B, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x1B, 0x1B, 0x1B, 0x1B, 0x00, 0x1B, 0x1B, 0x1B, 0x1B, 0x00, 0x00, 0x1B, 0x1B, 0x1B, 0x1B
+    , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
+    , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x00, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
+    , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
+    , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x00, 0x1B, 0x00, 0x1B
+    , 0x1B, 0x1B, 0x1B, 0x00, 0x00, 0x00, 0x1B, 0x00, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x00
+    , 0x00, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x14, 0x15, 0x14, 0x15, 0x14, 0x15, 0x14, 0x15
+    , 0x14, 0x15, 0x14, 0x15, 0x14, 0x15, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B
+    , 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B
+    , 0x0B, 0x0B, 0x0B, 0x0B, 0x1B, 0x00, 0x00, 0x00, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
+    , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
+    , 0x00, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18
+    , 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x14, 0x15, 0x14, 0x15, 0x14, 0x15, 0x00, 0x00, 0x00, 0x00
+    , 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18
+    , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
+    , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
+    , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
+    , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
+    , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
+    , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
+    , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
+    , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
+    , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
+    , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
+    , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
+    , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
+    , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
+    , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
+    , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
+    , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
+    , 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18
+    , 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18
+    , 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18
+    , 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18
+    , 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18
+    , 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18
+    , 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18
+    , 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18
+    , 0x18, 0x18, 0x18, 0x14, 0x15, 0x14, 0x15, 0x14, 0x15, 0x14, 0x15, 0x14, 0x15, 0x14, 0x15, 0x14
+    , 0x15, 0x14, 0x15, 0x14, 0x15, 0x14, 0x15, 0x14, 0x15, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18
+    , 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18
+    , 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18
+    , 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18
+    , 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x14, 0x15, 0x14, 0x15, 0x18, 0x18, 0x18, 0x18
+    , 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18
+    , 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x14, 0x15, 0x18, 0x18
+    , 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18
+    , 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18
+    , 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18
+    , 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18
+    , 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18
+    , 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18
+    , 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18
+    , 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18
+    , 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18
+    , 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18
+    , 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18
+    , 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18
+    , 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18
+    , 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18
+    , 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18
+    , 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18
+    , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
+    , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x00, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
+    , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
+    , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
+    , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
+    , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
+    , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
+    , 0x1B, 0x1B, 0x1B, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
+    , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
+    , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
+    , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
+    , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
+    , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
+    , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
+    , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
+    , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
+    , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
+    , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
+    , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
+    , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
+    , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x00, 0x00, 0x00, 0x00
+    , 0x0C, 0x17, 0x17, 0x17, 0x1B, 0x04, 0x05, 0x0A, 0x14, 0x15, 0x14, 0x15, 0x14, 0x15, 0x14, 0x15
+    , 0x14, 0x15, 0x1B, 0x1B, 0x14, 0x15, 0x14, 0x15, 0x14, 0x15, 0x14, 0x15, 0x13, 0x14, 0x15, 0x15
+    , 0x1B, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06
+    , 0x13, 0x04, 0x04, 0x04, 0x04, 0x04, 0x1B, 0x1B, 0x0A, 0x0A, 0x0A, 0x04, 0x05, 0x17, 0x1B, 0x1B
+    , 0x00, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x00, 0x00, 0x06, 0x06, 0x1A, 0x1A, 0x04, 0x04, 0x05
+    , 0x13, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x16, 0x04, 0x04, 0x04, 0x05
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x00, 0x00, 0x00
+    , 0x00, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x00
+    , 0x1B, 0x1B, 0x0B, 0x0B, 0x0B, 0x0B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
+    , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x00
+    , 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
+    , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
+    , 0x1B, 0x1B, 0x1B, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x1B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B
+    , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
+    , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x00, 0x1B
+    , 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
+    , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
+    , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
+    , 0x1B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B
+    , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
+    , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
+    , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
+    , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x00
+    , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
+    , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
+    , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
+    , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
+    , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
+    , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
+    , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
+    , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
+    , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
+    , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
+    , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
+    , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
+    , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
+    , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
+    , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
+    , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
+    , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
+    , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
+    , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x00, 0x00, 0x00
+    , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
+    , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
+    , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
+    , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12
+    , 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12
+    , 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12
+    , 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12
+    , 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12
+    , 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12
+    , 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12
+    , 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12
+    , 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12
+    , 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12
+    , 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12
+    , 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12
+    , 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12
+    , 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12
+    , 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12
+    , 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12
+    , 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12
+    , 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12
+    , 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12
+    , 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12
+    , 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12
+    , 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12
+    , 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12
+    , 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12
+    , 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12
+    , 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12
+    , 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12
+    , 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12
+    , 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12
+    , 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12
+    , 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12
+    , 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12
+    , 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12
+    , 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12
+    , 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12
+    , 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12
+    , 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12
+    , 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12
+    , 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12
+    , 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12
+    , 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12
+    , 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12
+    , 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12
+    , 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12
+    , 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12
+    , 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12
+    , 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12
+    , 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12
+    , 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12
+    , 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12
+    , 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12
+    , 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12
+    , 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12
+    , 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12
+    , 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12
+    , 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12
+    , 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12
+    , 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12
+    , 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12
+    , 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12
+    , 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12
+    , 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12
+    , 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12
+    , 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12
+    , 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12
+    , 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12
+    , 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12
+    , 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12
+    , 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12
+    , 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12
+    , 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12
+    , 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12
+    , 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12
+    , 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12
+    , 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12
+    , 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12
+    , 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12
+    , 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12
+    , 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12
+    , 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12
+    , 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12
+    , 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12
+    , 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12
+    , 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12
+    , 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12
+    , 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12
+    , 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12
+    , 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12
+    , 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12
+    , 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12
+    , 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12
+    , 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12
+    , 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12
+    , 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12
+    , 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12
+    , 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12
+    , 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12
+    , 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12
+    , 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12
+    , 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12
+    , 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12
+    , 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12
+    , 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12
+    , 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12
+    , 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12
+    , 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12
+    , 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12
+    , 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12
+    , 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12
+    , 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12
+    , 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12
+    , 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12
+    , 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12
+    , 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12
+    , 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12
+    , 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12
+    , 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12
+    , 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12
+    , 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12
+    , 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12
+    , 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12
+    , 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12
+    , 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12
+    , 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12
+    , 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12
+    , 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12
+    , 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12
+    , 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x00, 0x00
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x02, 0x02, 0x02, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x06, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x18, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x00, 0x05, 0x05, 0x05, 0x05, 0x05, 0x00, 0x05, 0x00
+    , 0x05, 0x05, 0x00, 0x05, 0x05, 0x00, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x14, 0x15
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x00, 0x00, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x19, 0x1B, 0x00, 0x00
+    , 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x06, 0x06, 0x06, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    , 0x17, 0x13, 0x13, 0x16, 0x16, 0x14, 0x15, 0x14, 0x15, 0x14, 0x15, 0x14, 0x15, 0x14, 0x15, 0x14
+    , 0x15, 0x14, 0x15, 0x14, 0x15, 0x17, 0x17, 0x14, 0x15, 0x17, 0x17, 0x17, 0x17, 0x16, 0x16, 0x16
+    , 0x17, 0x17, 0x17, 0x00, 0x17, 0x17, 0x17, 0x17, 0x13, 0x14, 0x15, 0x14, 0x15, 0x14, 0x15, 0x17
+    , 0x17, 0x17, 0x18, 0x13, 0x18, 0x18, 0x18, 0x00, 0x17, 0x19, 0x17, 0x17, 0x00, 0x00, 0x00, 0x00
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x00, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x00, 0x00, 0x10
+    , 0x00, 0x17, 0x17, 0x17, 0x19, 0x17, 0x17, 0x17, 0x14, 0x15, 0x17, 0x18, 0x17, 0x13, 0x17, 0x17
+    , 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x17, 0x17, 0x18, 0x18, 0x18, 0x17
+    , 0x17, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01
+    , 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x14, 0x17, 0x15, 0x1A, 0x16
+    , 0x1A, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02
+    , 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x14, 0x18, 0x15, 0x18, 0x14
+    , 0x15, 0x17, 0x14, 0x15, 0x17, 0x16, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x04, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x04, 0x04
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x00
+    , 0x00, 0x00, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x00, 0x00, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+    , 0x00, 0x00, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x00, 0x00, 0x05, 0x05, 0x05, 0x00, 0x00, 0x00
+    , 0x19, 0x19, 0x18, 0x1A, 0x1B, 0x19, 0x19, 0x00, 0x1B, 0x18, 0x18, 0x18, 0x18, 0x1B, 0x1B, 0x00
+    , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x10, 0x10, 0x1B, 0x1B, 0x00, 0x00
+};
+
+
+XERCES_CPP_NAMESPACE_END
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/regx/RegxUtil.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/regx/RegxUtil.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/regx/RegxUtil.hpp	(revision 2674)
@@ -0,0 +1,108 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: RegxUtil.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(REGXUTIL_HPP)
+#define REGXUTIL_HPP
+
+// ---------------------------------------------------------------------------
+//  Includes
+// ---------------------------------------------------------------------------
+#include <xercesc/util/XMLUniDefs.hpp>
+
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class MemoryManager;
+
+class XMLUTIL_EXPORT RegxUtil {
+public:
+
+	// -----------------------------------------------------------------------
+    //  Constructors and destructors
+    // -----------------------------------------------------------------------
+	~RegxUtil() {}
+
+	static XMLInt32 composeFromSurrogate(const XMLCh high, const XMLCh low);
+	static bool isEOLChar(const XMLCh);
+	static bool isWordChar(const XMLCh);
+	static bool isLowSurrogate(const XMLCh ch);
+	static bool isHighSurrogate(const XMLCh ch);
+	static void decomposeToSurrogates(XMLInt32 ch, XMLCh& high, XMLCh& low);
+
+	static XMLCh* decomposeToSurrogates(XMLInt32 ch,
+                                        MemoryManager* const manager);
+	static XMLCh* stripExtendedComment(const XMLCh* const expression,
+                                       MemoryManager* const manager = 0);
+
+private:
+	// -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    RegxUtil();
+};
+
+
+inline bool RegxUtil::isEOLChar(const XMLCh ch) {
+
+	return (ch == chLF || ch == chCR || ch == chLineSeparator
+           || ch == chParagraphSeparator);
+}
+
+inline XMLInt32 RegxUtil::composeFromSurrogate(const XMLCh high, const XMLCh low) {
+
+	return 0x10000 + ((high - 0xD800) << 10) + (low - 0xDC00);
+}
+
+inline bool RegxUtil::isLowSurrogate(const XMLCh ch) {
+
+	return (ch & 0xFC00) == 0xDC00;
+}
+
+inline bool RegxUtil::isHighSurrogate(const XMLCh ch) {
+
+	return (ch & 0xFC00) == 0xD800;
+}
+
+inline void RegxUtil::decomposeToSurrogates(XMLInt32 ch, XMLCh& high, XMLCh& low) {
+
+    ch -= 0x10000;
+	high = XMLCh((ch >> 10) + 0xD800);
+	low = XMLCh((ch & 0x03FF) + 0xDC00);
+}
+
+inline bool RegxUtil::isWordChar(const XMLCh ch) {
+
+	if ((ch == chUnderscore)
+		|| (ch >= chDigit_0 && ch <= chDigit_9)
+		|| (ch >= chLatin_A && ch <= chLatin_Z)
+		|| (ch >= chLatin_a && ch <= chLatin_z))
+		return true;
+
+	return false;
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
+
+/**
+  * End of file RegxUtil.hpp
+  */
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/regx/XMLRangeFactory.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/regx/XMLRangeFactory.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/regx/XMLRangeFactory.hpp	(revision 2674)
@@ -0,0 +1,66 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: XMLRangeFactory.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(XMLRANGEFACTORY_HPP)
+#define XMLRANGEFACTORY_HPP
+
+// ---------------------------------------------------------------------------
+//  Includes
+// ---------------------------------------------------------------------------
+#include <xercesc/util/regx/RangeFactory.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class XMLUTIL_EXPORT XMLRangeFactory: public RangeFactory {
+
+public:
+    // -----------------------------------------------------------------------
+    //  Constructors and operators
+    // -----------------------------------------------------------------------
+    XMLRangeFactory();
+    ~XMLRangeFactory();
+
+    // -----------------------------------------------------------------------
+    //  Initialization methods
+    // -----------------------------------------------------------------------
+	void initializeKeywordMap(RangeTokenMap *rangeTokMap = 0);
+
+protected:
+    // -----------------------------------------------------------------------
+    //  Protected Helper methods
+    // -----------------------------------------------------------------------
+	void buildRanges(RangeTokenMap *rangeTokMap = 0);
+
+private:
+	// -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    XMLRangeFactory(const XMLRangeFactory&);
+    XMLRangeFactory& operator=(const XMLRangeFactory&);
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
+
+/**
+  *	End file XMLRangeFactory.hpp
+  */
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/regx/ParserForXMLSchema.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/regx/ParserForXMLSchema.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/regx/ParserForXMLSchema.hpp	(revision 2674)
@@ -0,0 +1,113 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: ParserForXMLSchema.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(PARSERFORXMLSCHEMA_HPP)
+#define PARSERFORXMLSCHEMA_HPP
+
+// ---------------------------------------------------------------------------
+//  Includes
+// ---------------------------------------------------------------------------
+#include <xercesc/util/regx/RegxParser.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+// ---------------------------------------------------------------------------
+//  Forward Declaration
+// ---------------------------------------------------------------------------
+class Token;
+class RangeToken;
+
+class XMLUTIL_EXPORT ParserForXMLSchema : public RegxParser {
+public:
+    // -----------------------------------------------------------------------
+    //  Public Constructors and Destructor
+    // -----------------------------------------------------------------------
+    ParserForXMLSchema(MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+    ~ParserForXMLSchema();
+
+    // -----------------------------------------------------------------------
+    //  Getter methods
+    // -----------------------------------------------------------------------
+
+protected:
+    // -----------------------------------------------------------------------
+    //  Parsing/Processing methods
+    // -----------------------------------------------------------------------
+    XMLInt32    processCInCharacterClass(RangeToken* const tok,
+                                         const XMLInt32 ch);
+    Token*      processCaret();
+    Token*      processDollar();
+	Token*		processLook(const unsigned short tokType);
+    Token*      processBacksolidus_A();
+    Token*      processBacksolidus_Z();
+    Token*      processBacksolidus_z();
+    Token*      processBacksolidus_b();
+    Token*      processBacksolidus_B();
+    Token*      processBacksolidus_c();
+    Token*      processBacksolidus_C();
+    Token*      processBacksolidus_i();
+    Token*      processBacksolidus_I();
+    Token*      processBacksolidus_g();
+    Token*      processBacksolidus_X();
+    Token*      processBacksolidus_lt();
+    Token*      processBacksolidus_gt();
+    Token*      processStar(Token* const tok);
+    Token*      processPlus(Token* const tok);
+	Token*      processQuestion(Token* const tok);
+	Token*      processParen();
+	Token*      processParen2();
+	Token*      processCondition();
+	Token*      processModifiers();
+	Token*      processIndependent();
+	Token*      processBackReference();
+	RangeToken* parseCharacterClass(const bool useNRange);
+	RangeToken* parseSetOperations();
+
+    // -----------------------------------------------------------------------
+    //  Getter methods
+    // -----------------------------------------------------------------------
+	Token* getTokenForShorthand(const XMLInt32 ch);
+
+    // -----------------------------------------------------------------------
+    //  Helper methods
+    // -----------------------------------------------------------------------
+    bool checkQuestion(const int off);
+	XMLInt32 decodeEscaped();
+
+private:
+	// -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    ParserForXMLSchema(const ParserForXMLSchema&);
+    ParserForXMLSchema& operator=(const ParserForXMLSchema&);
+
+    // -----------------------------------------------------------------------
+    //  Private data members
+	// -----------------------------------------------------------------------
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
+
+/**
+  * End of file ParserForXMLSchema.hpp
+  */
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/regx/OpFactory.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/regx/OpFactory.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/regx/OpFactory.hpp	(revision 2674)
@@ -0,0 +1,127 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: OpFactory.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(OPFACTORY_HPP)
+#define OPFACTORY_HPP
+
+// ---------------------------------------------------------------------------
+//  Includes
+// ---------------------------------------------------------------------------
+#include <xercesc/util/XMemory.hpp>
+#include <xercesc/util/RefVectorOf.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+// ---------------------------------------------------------------------------
+//  Forward Declaration
+// ---------------------------------------------------------------------------
+class Op;
+class CharOp;
+class UnionOp;
+class ChildOp;
+class RangeOp;
+class StringOp;
+class ModifierOp;
+class ConditionOp;
+class Token;
+
+/*
+ * A Factory class used by 'RegularExpression' to create different types of
+ * operations (Op) objects. The class will keep track of all objects created
+ * for cleanup purposes. Each 'RegularExpression' object will have its own
+ * instance of OpFactory and when a 'RegularExpression' object is deleted
+ * all associated Op objects will be deleted.
+ */
+
+class XMLUTIL_EXPORT OpFactory : public XMemory
+{
+public:
+	// -----------------------------------------------------------------------
+    //  Constructors and destructors
+    // -----------------------------------------------------------------------
+	OpFactory(MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+    ~OpFactory();
+
+    // -----------------------------------------------------------------------
+    //  Factory methods
+    // -----------------------------------------------------------------------
+    Op* createDotOp();
+	CharOp* createCharOp(XMLInt32 data);
+	CharOp* createAnchorOp(XMLInt32 data);
+	CharOp* createCaptureOp(int number, const Op* const next);
+	UnionOp* createUnionOp(int size);
+	ChildOp* createClosureOp(int id);
+	ChildOp* createNonGreedyClosureOp();
+	ChildOp* createQuestionOp(bool nonGreedy);
+	RangeOp* createRangeOp(const Token* const token);
+	ChildOp* createLookOp(const short type, const Op* const next,
+                          const Op* const branch);
+	CharOp* createBackReferenceOp(int refNo);
+	StringOp* createStringOp(const XMLCh* const literal);
+	ChildOp* createIndependentOp(const Op* const next,
+								 const Op* const branch);
+	ModifierOp* createModifierOp(const Op* const next, const Op* const branch,
+								 const int add, const int mask);
+	ConditionOp* createConditionOp(const Op* const next, const int ref,
+                                   const Op* const conditionFlow,
+                                   const Op* const yesFlow,
+                                   const Op* const noFlow);
+
+    // -----------------------------------------------------------------------
+    //  Reset methods
+    // -----------------------------------------------------------------------
+	/*
+	 *	Remove all created Op objects from Vector
+	 */
+	void reset();
+
+private:
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    OpFactory(const OpFactory&);
+    OpFactory& operator=(const OpFactory&);
+
+    // -----------------------------------------------------------------------
+    //  Private data members
+    //
+    //  fOpVector
+    //      Contains Op objects. Used for memory cleanup.
+    // -----------------------------------------------------------------------
+    RefVectorOf<Op>* fOpVector;
+    MemoryManager*   fMemoryManager;
+};
+
+// ---------------------------------------------------------------------------
+//  OpFactory - Factory methods
+// ---------------------------------------------------------------------------
+inline void OpFactory::reset() {
+
+	fOpVector->removeAllElements();
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
+
+/**
+  *	End file OpFactory
+  */
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/regx/ParenToken.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/regx/ParenToken.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/regx/ParenToken.hpp	(revision 2674)
@@ -0,0 +1,87 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: ParenToken.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(PARENTOKEN_HPP)
+#define PARENTOKEN_HPP
+
+// ---------------------------------------------------------------------------
+//  Includes
+// ---------------------------------------------------------------------------
+#include <xercesc/util/regx/Token.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class XMLUTIL_EXPORT ParenToken : public Token {
+public:
+	// -----------------------------------------------------------------------
+    //  Public Constructors and Destructor
+    // -----------------------------------------------------------------------
+	ParenToken(const unsigned short tokType, Token* const tok,
+               const int noParen, MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+    ~ParenToken();
+
+	// -----------------------------------------------------------------------
+    //  Getter methods
+    // -----------------------------------------------------------------------
+    int size() const;
+	int getNoParen() const;
+    Token* getChild(const int index) const;
+
+private:
+	// -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    ParenToken(const ParenToken&);
+    ParenToken& operator=(const ParenToken&);
+
+	// -----------------------------------------------------------------------
+    //  Private data members
+	// -----------------------------------------------------------------------
+	int    fNoParen;
+	Token* fChild;
+};
+
+
+// ---------------------------------------------------------------------------
+//  ParenToken: getter methods
+// ---------------------------------------------------------------------------
+inline int ParenToken::size() const {
+
+    return 1;
+}
+
+inline int ParenToken::getNoParen() const {
+
+    return fNoParen;
+}
+
+inline Token* ParenToken::getChild(const int) const {
+
+    return fChild;
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
+
+/**
+  * End of file ParenToken.hpp
+  */
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/regx/RegxDefs.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/regx/RegxDefs.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/regx/RegxDefs.hpp	(revision 2674)
@@ -0,0 +1,239 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: RegxDefs.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(REGXDEFS_HPP)
+#define REGXDEFS_HPP
+
+// ---------------------------------------------------------------------------
+//  Includes
+// ---------------------------------------------------------------------------
+#include <xercesc/util/XercesDefs.hpp>
+#include <xercesc/util/XMLUniDefs.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+static const XMLCh fgXMLCategory[] =
+{
+    chLatin_X, chLatin_M, chLatin_L, chNull
+};
+
+static const XMLCh fgASCIICategory[] =
+{
+    chLatin_A, chLatin_S, chLatin_C, chLatin_I, chLatin_I, chNull
+};
+
+static const XMLCh fgUnicodeCategory[] =
+{
+    chLatin_U, chLatin_N, chLatin_I, chLatin_C, chLatin_O, chLatin_D,
+    chLatin_E, chNull
+};
+
+static const XMLCh fgBlockCategory[] =
+{
+    chLatin_B, chLatin_L, chLatin_O, chLatin_C, chLatin_K, chNull
+};
+
+static const XMLCh fgXMLSpace[] =
+{
+    chLatin_x, chLatin_m, chLatin_l, chColon, chLatin_i, chLatin_s, chLatin_S,
+    chLatin_p, chLatin_a, chLatin_c, chLatin_e, chNull
+};
+
+static const XMLCh fgXMLDigit[] =
+{
+    chLatin_x, chLatin_m, chLatin_l, chColon, chLatin_i, chLatin_s, chLatin_D,
+    chLatin_i, chLatin_g, chLatin_i, chLatin_t, chNull
+};
+
+static const XMLCh fgXMLWord[] =
+{
+    chLatin_x, chLatin_m, chLatin_l, chColon, chLatin_i, chLatin_s, chLatin_W,
+    chLatin_o, chLatin_r, chLatin_d, chNull
+};
+
+static const XMLCh fgXMLNameChar[] =
+{
+    chLatin_x, chLatin_m, chLatin_l, chColon, chLatin_i, chLatin_s, chLatin_N,
+    chLatin_a, chLatin_m, chLatin_e, chLatin_C, chLatin_h, chLatin_a,
+	chLatin_r, chNull
+};
+
+static const XMLCh fgXMLInitialNameChar[] =
+{
+    chLatin_x, chLatin_m, chLatin_l, chColon, chLatin_i, chLatin_s, chLatin_I,
+    chLatin_n, chLatin_i, chLatin_t, chLatin_i, chLatin_a, chLatin_l,
+    chLatin_N, chLatin_a, chLatin_m, chLatin_e, chLatin_C, chLatin_h,
+    chLatin_a, chLatin_r, chNull
+};
+
+static const XMLCh fgASCII[] =
+{
+    chLatin_a, chLatin_s, chLatin_c, chLatin_i, chLatin_i, chColon, chLatin_i,
+    chLatin_s, chLatin_A, chLatin_s, chLatin_c, chLatin_i, chLatin_i, chNull
+};
+
+static const XMLCh fgASCIIDigit[] =
+{
+    chLatin_a, chLatin_s, chLatin_c, chLatin_i, chLatin_i, chColon, chLatin_i,
+    chLatin_s, chLatin_D, chLatin_i, chLatin_g, chLatin_i, chLatin_t, chNull
+};
+
+static const XMLCh fgASCIIWord[] =
+{
+    chLatin_a, chLatin_s, chLatin_c, chLatin_i, chLatin_i, chColon, chLatin_i,
+    chLatin_s, chLatin_W, chLatin_o, chLatin_r, chLatin_d, chNull
+};
+
+static const XMLCh fgASCIISpace[] =
+{
+    chLatin_a, chLatin_s, chLatin_c, chLatin_i, chLatin_i, chColon, chLatin_i,
+    chLatin_s, chLatin_S, chLatin_p, chLatin_a, chLatin_c, chLatin_e, chNull
+};
+
+static const XMLCh fgASCIIXDigit[] =
+{
+    chLatin_a, chLatin_s, chLatin_c, chLatin_i, chLatin_i, chColon, chLatin_i,
+    chLatin_s, chLatin_X, chLatin_D, chLatin_i, chLatin_g, chLatin_i,
+    chLatin_t, chNull
+};
+
+
+static const XMLCh fgUniAll[] =
+{
+    chLatin_A, chLatin_L, chLatin_L, chNull
+};
+
+static const XMLCh fgUniIsAlpha[] =
+{
+    chLatin_I, chLatin_s, chLatin_A, chLatin_l, chLatin_p, chLatin_h,
+    chLatin_a, chNull
+};
+
+static const XMLCh fgUniIsAlnum[] =
+{
+    chLatin_I, chLatin_s, chLatin_A, chLatin_l, chLatin_n, chLatin_u,
+    chLatin_m, chNull
+};
+
+static const XMLCh fgUniIsWord[] =
+{
+    chLatin_I, chLatin_s, chLatin_W, chLatin_o, chLatin_r, chLatin_d,
+    chNull
+};
+
+
+static const XMLCh fgUniIsDigit[] =
+{
+    chLatin_I, chLatin_s, chLatin_D, chLatin_i, chLatin_g, chLatin_i,
+    chLatin_t, chNull
+};
+
+static const XMLCh fgUniIsUpper[] =
+{
+    chLatin_I, chLatin_s, chLatin_U, chLatin_p, chLatin_p, chLatin_e,
+    chLatin_r, chNull
+};
+
+static const XMLCh fgUniIsLower[] =
+{
+    chLatin_I, chLatin_s, chLatin_L, chLatin_o, chLatin_w, chLatin_e,
+    chLatin_r, chNull
+};
+
+static const XMLCh fgUniIsPunct[] =
+{
+    chLatin_I, chLatin_s, chLatin_P, chLatin_u, chLatin_n, chLatin_c,
+    chLatin_t, chNull
+};
+
+static const XMLCh fgUniIsSpace[] =
+{
+	chLatin_I, chLatin_s, chLatin_S, chLatin_p, chLatin_a, chLatin_c,
+    chLatin_e, chNull
+};
+
+static const XMLCh fgUniAssigned[] =
+{
+    chLatin_A, chLatin_S, chLatin_S, chLatin_I, chLatin_G, chLatin_N,
+    chLatin_E, chLatin_D, chNull
+};
+
+
+static const XMLCh fgUniDecimalDigit[] =
+{
+    chLatin_N, chLatin_d, chNull
+};
+
+static const XMLCh fgBlockIsSpecials[] =
+{
+    chLatin_I, chLatin_s, chLatin_S, chLatin_p, chLatin_e, chLatin_c, chLatin_i, chLatin_a,
+    chLatin_l, chLatin_s, chNull
+};
+
+static const XMLCh fgBlockIsPrivateUse[] =
+{
+    chLatin_I, chLatin_s, chLatin_P, chLatin_r, chLatin_i, chLatin_v, chLatin_a, chLatin_t, chLatin_e,
+    chLatin_U, chLatin_s, chLatin_e,  chNull
+};
+
+static const XMLCh fgUniLetter[] =
+{
+    chLatin_L, chNull
+};
+
+static const XMLCh fgUniNumber[] =
+{
+    chLatin_N, chNull
+};
+
+static const XMLCh fgUniMark[] =
+{
+    chLatin_M, chNull
+};
+
+static const XMLCh fgUniSeparator[] =
+{
+    chLatin_Z, chNull
+};
+
+static const XMLCh fgUniPunctuation[] =
+{
+    chLatin_P, chNull
+};
+
+static const XMLCh fgUniControl[] =
+{
+    chLatin_C, chNull
+};
+
+static const XMLCh fgUniSymbol[] =
+{
+    chLatin_S, chNull
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
+
+/**
+  * End of file RegxDefs.hpp
+  */
+
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/regx/StringToken.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/regx/StringToken.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/regx/StringToken.hpp	(revision 2674)
@@ -0,0 +1,100 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: StringToken.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(STRINGTOKEN_HPP)
+#define STRINGTOKEN_HPP
+
+// ---------------------------------------------------------------------------
+//  Includes
+// ---------------------------------------------------------------------------
+#include <xercesc/util/regx/Token.hpp>
+#include <xercesc/util/XMLString.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class XMLUTIL_EXPORT StringToken : public Token {
+public:
+	// -----------------------------------------------------------------------
+    //  Public Constructors and Destructor
+    // -----------------------------------------------------------------------
+	StringToken(const unsigned short tokType,
+                const XMLCh* const literal,
+                const int refNo,
+                MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+	~StringToken();
+
+	// -----------------------------------------------------------------------
+    //  Getter methods
+    // -----------------------------------------------------------------------
+	int getReferenceNo() const;
+	const XMLCh* getString() const;
+
+    // -----------------------------------------------------------------------
+    //  Setter methods
+    // -----------------------------------------------------------------------
+	void setString(const XMLCh* const literal);
+
+private:
+	// -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    StringToken(const StringToken&);
+    StringToken& operator=(const StringToken&);
+
+	// -----------------------------------------------------------------------
+    //  Private data members
+	// -----------------------------------------------------------------------
+	int    fRefNo;
+	XMLCh* fString;
+    MemoryManager* fMemoryManager;
+};
+
+
+// ---------------------------------------------------------------------------
+//  StringToken: getter methods
+// ---------------------------------------------------------------------------
+inline int StringToken::getReferenceNo() const {
+
+	return fRefNo;
+}
+
+inline const XMLCh* StringToken::getString() const {
+
+	return fString;
+}
+
+// ---------------------------------------------------------------------------
+//  StringToken: Setter methods
+// ---------------------------------------------------------------------------
+inline void StringToken::setString(const XMLCh* const literal) {
+
+	fMemoryManager->deallocate(fString);//delete [] fString;
+    fString = 0;
+	fString = XMLString::replicate(literal, fMemoryManager);
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
+
+/**
+  * End of file StringToken.hpp
+  */
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/regx/ConcatToken.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/regx/ConcatToken.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/regx/ConcatToken.hpp	(revision 2674)
@@ -0,0 +1,81 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: ConcatToken.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(CONCATTOKEN_HPP)
+#define CONCATTOKEN_HPP
+
+// ---------------------------------------------------------------------------
+//  Includes
+// ---------------------------------------------------------------------------
+#include <xercesc/util/regx/Token.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class XMLUTIL_EXPORT ConcatToken : public Token {
+public:
+	// -----------------------------------------------------------------------
+    //  Public Constructors and Destructor
+    // -----------------------------------------------------------------------
+	ConcatToken(Token* const tok1, Token* const tok2
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+	~ConcatToken();
+
+	// -----------------------------------------------------------------------
+    //  Getter methods
+    // -----------------------------------------------------------------------
+	Token* getChild(const int index) const;
+	int    size() const;
+
+private:
+	// -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    ConcatToken(const ConcatToken&);
+    ConcatToken& operator=(const ConcatToken&);
+
+	// -----------------------------------------------------------------------
+    //  Private data members
+	// -----------------------------------------------------------------------
+	Token* fChild1;
+	Token* fChild2;
+};
+
+
+// ---------------------------------------------------------------------------
+//  StringToken: getter methods
+// ---------------------------------------------------------------------------
+inline int ConcatToken::size() const {
+
+	return 2;
+}
+
+inline Token* ConcatToken::getChild(const int index) const {
+
+	return index == 0 ? fChild1 : fChild2;
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
+
+/**
+  * End of file ConcatToken.hpp
+  */
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/regx/TokenFactory.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/regx/TokenFactory.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/regx/TokenFactory.hpp	(revision 2674)
@@ -0,0 +1,161 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: TokenFactory.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(TOKENFACTORY_HPP)
+#define TOKENFACTORY_HPP
+
+// ---------------------------------------------------------------------------
+//  Includes
+// ---------------------------------------------------------------------------
+#include <xercesc/util/RefVectorOf.hpp>
+#include <xercesc/util/regx/Token.hpp>
+#include <xercesc/util/Mutexes.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+// ---------------------------------------------------------------------------
+//  Forward Declaration
+// ---------------------------------------------------------------------------
+class RangeToken;
+class CharToken;
+class ClosureToken;
+class ConditionToken;
+class ConcatToken;
+class ModifierToken;
+class ParenToken;
+class StringToken;
+class UnionToken;
+
+class XMLUTIL_EXPORT TokenFactory : public XMemory
+{
+
+public:
+	// -----------------------------------------------------------------------
+    //  Constructors and destructors
+    // -----------------------------------------------------------------------
+    TokenFactory(MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+    ~TokenFactory();
+
+    // -----------------------------------------------------------------------
+    //  Factory methods
+    // -----------------------------------------------------------------------
+    Token* createToken(const unsigned short tokType);
+
+    ParenToken* createLook(const unsigned short tokType, Token* const token);
+    ParenToken* createParenthesis(Token* const token, const int noGroups);
+    ClosureToken* createClosure(Token* const token, bool isNonGreedy = false);
+    ConcatToken* createConcat(Token* const token1, Token* const token2);
+    UnionToken* createUnion(const bool isConcat = false);
+    RangeToken* createRange(const bool isNegRange = false);
+    CharToken* createChar(const XMLUInt32 ch, const bool isAnchor = false);
+    StringToken* createBackReference(const int refNo);
+    StringToken* createString(const XMLCh* const literal);
+    ModifierToken* createModifierGroup(Token* const child,
+                                       const int add, const int mask);
+    ConditionToken* createCondition(const int refNo, Token* const condition,
+                                    Token* const yesFlow, Token* const noFlow);
+
+
+	//static void printUnicode();
+
+    // -----------------------------------------------------------------------
+    //  Getter methods
+    // -----------------------------------------------------------------------
+    /*
+     *  Gets a commonly used RangeToken from the token registry based on the
+     *  range name.
+     */
+    RangeToken* getRange(const XMLCh* const name,const bool complement=false);
+    Token* getLineBegin();
+	Token* getLineBegin2();
+    Token* getLineEnd();
+    Token* getStringBegin();
+    Token* getStringEnd();
+    Token* getStringEnd2();
+    Token* getWordEdge();
+    Token* getNotWordEdge();
+    Token* getWordBegin();
+    Token* getWordEnd();
+    Token* getDot();
+	Token* getCombiningCharacterSequence();
+	Token* getGraphemePattern();
+    MemoryManager* getMemoryManager() const;
+
+    static RangeToken* staticGetRange(const XMLCh* const name,const bool complement=false);
+
+    // -----------------------------------------------------------------------
+    //  Notification that lazy data has been deleted
+    // -----------------------------------------------------------------------
+	static void reinitTokenFactoryMutex();
+
+private:
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    TokenFactory(const TokenFactory&);
+    TokenFactory& operator=(const TokenFactory&);
+
+    // -----------------------------------------------------------------------
+    //  Private data members
+    //
+    //  fRangeInitialized
+    //      Indicates whether we have initialized the RangeFactory instance or
+    //      not
+	//		
+    //  fToken
+    //      Contains user created Token objects. Used for memory cleanup.
+    // -----------------------------------------------------------------------
+    RefVectorOf<Token>* fTokens;
+    Token*              fEmpty;
+    Token*              fLineBegin;
+    Token*              fLineBegin2;
+    Token*              fLineEnd;
+    Token*              fStringBegin;
+    Token*              fStringEnd;
+    Token*              fStringEnd2;
+    Token*              fWordEdge;
+    Token*              fNotWordEdge;
+    Token*              fWordEnd;
+    Token*              fWordBegin;
+    Token*              fDot;
+    Token*              fCombiningChar;
+    Token*              fGrapheme;
+    MemoryManager*      fMemoryManager;
+};
+
+inline RangeToken* TokenFactory::getRange(const XMLCh* const name,const bool complement)
+{
+    return staticGetRange(name, complement);
+}
+
+inline MemoryManager* TokenFactory::getMemoryManager() const
+{
+    return fMemoryManager;
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
+
+/**
+  *	End file TokenFactory
+  */
+
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/regx/TokenInc.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/regx/TokenInc.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/regx/TokenInc.hpp	(revision 2674)
@@ -0,0 +1,45 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: TokenInc.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(TOKENINC_HPP)
+#define TOKENINC_HPP
+
+// ---------------------------------------------------------------------------
+//  Includes
+// ---------------------------------------------------------------------------
+#include <xercesc/util/regx/RangeToken.hpp>
+#include <xercesc/util/regx/CharToken.hpp>
+#include <xercesc/util/regx/ClosureToken.hpp>
+#include <xercesc/util/regx/ConcatToken.hpp>
+#include <xercesc/util/regx/ConditionToken.hpp>
+#include <xercesc/util/regx/ModifierToken.hpp>
+#include <xercesc/util/regx/ParenToken.hpp>
+#include <xercesc/util/regx/StringToken.hpp>
+#include <xercesc/util/regx/UnionToken.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+XERCES_CPP_NAMESPACE_END
+
+#endif
+
+/**
+  * End of file TokenInc.hpp
+  */
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/regx/ClosureToken.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/regx/ClosureToken.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/regx/ClosureToken.hpp	(revision 2674)
@@ -0,0 +1,114 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: ClosureToken.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(CLOSURETOKEN_HPP)
+#define CLOSURETOKEN_HPP
+
+// ---------------------------------------------------------------------------
+//  Includes
+// ---------------------------------------------------------------------------
+#include <xercesc/util/regx/Token.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class XMLUTIL_EXPORT ClosureToken : public Token {
+public:
+	// -----------------------------------------------------------------------
+    //  Public Constructors and Destructor
+    // -----------------------------------------------------------------------
+	ClosureToken(const unsigned short tokType, Token* const tok
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+	~ClosureToken();
+
+	// -----------------------------------------------------------------------
+    //  Getter methods
+    // -----------------------------------------------------------------------
+	int size() const;
+	int getMin() const;
+	int getMax() const;
+	Token* getChild(const int index) const;
+
+	// -----------------------------------------------------------------------
+    //  Setter methods
+    // -----------------------------------------------------------------------
+	void setMin(const int minVal);
+	void setMax(const int maxVal);
+
+private:
+	// -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    ClosureToken(const ClosureToken&);
+    ClosureToken& operator=(const ClosureToken&);
+
+	// -----------------------------------------------------------------------
+    //  Private data members
+	// -----------------------------------------------------------------------
+	int    fMin;
+	int    fMax;
+	Token* fChild;
+};
+
+
+// ---------------------------------------------------------------------------
+//  ClosureToken: getter methods
+// ---------------------------------------------------------------------------
+inline int ClosureToken::size() const {
+
+	return 1;
+}
+
+
+inline int ClosureToken::getMax() const {
+
+	return fMax;
+}
+
+inline int ClosureToken::getMin() const {
+
+	return fMin;
+}
+
+inline Token* ClosureToken::getChild(const int) const {
+
+	return fChild;
+}
+
+// ---------------------------------------------------------------------------
+//  ClosureToken: setter methods
+// ---------------------------------------------------------------------------
+inline void ClosureToken::setMax(const int maxVal) {
+
+	fMax = maxVal;
+}
+
+inline void ClosureToken::setMin(const int minVal) {
+
+	fMin = minVal;
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
+
+/**
+  * End of file ClosureToken.hpp
+  */
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/regx/Op.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/regx/Op.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/regx/Op.hpp	(revision 2674)
@@ -0,0 +1,347 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: Op.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(OP_HPP)
+#define OP_HPP
+
+// ---------------------------------------------------------------------------
+//  Includes
+// ---------------------------------------------------------------------------
+#include <xercesc/util/RefVectorOf.hpp>
+#include <xercesc/util/RuntimeException.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+// ---------------------------------------------------------------------------
+//  Forward Declaration
+// ---------------------------------------------------------------------------
+class Token;
+
+
+class XMLUTIL_EXPORT Op : public XMemory
+{
+public:
+
+    enum {
+        O_DOT                = 0,
+        O_CHAR               = 1,
+        O_RANGE              = 3,
+        O_NRANGE             = 4,
+        O_ANCHOR             = 5,
+        O_STRING             = 6,
+        O_CLOSURE            = 7,
+        O_NONGREEDYCLOSURE   = 8,
+        O_QUESTION           = 9,
+        O_NONGREEDYQUESTION  = 10,
+        O_UNION              = 11,
+        O_CAPTURE            = 15,
+        O_BACKREFERENCE      = 16,
+        O_LOOKAHEAD          = 20,
+        O_NEGATIVELOOKAHEAD  = 21,
+        O_LOOKBEHIND         = 22,
+        O_NEGATIVELOOKBEHIND = 23,
+        O_INDEPENDENT        = 24,
+        O_MODIFIER           = 25,
+        O_CONDITION          = 26
+    };
+
+    // -----------------------------------------------------------------------
+    //  Public Constructors and Destructor
+    // -----------------------------------------------------------------------
+    virtual ~Op() { }
+
+    // -----------------------------------------------------------------------
+    // Getter functions
+    // -----------------------------------------------------------------------
+            short        getOpType() const;
+            const Op*    getNextOp() const;
+    virtual XMLInt32     getData() const;
+    virtual XMLInt32     getData2() const;
+    virtual int          getSize() const;
+    virtual int          getRefNo() const;
+    virtual const Op*    getConditionFlow() const;
+    virtual const Op*    getYesFlow() const;
+    virtual const Op*    getNoFlow() const;
+    virtual const Op*    elementAt(int index) const;
+    virtual const Op*    getChild() const;
+    virtual const Token* getToken() const;
+    virtual const XMLCh* getLiteral() const;
+
+    // -----------------------------------------------------------------------
+    // Setter functions
+    // -----------------------------------------------------------------------
+    void setOpType(const short type);
+    void setNextOp(const Op* const next);
+
+protected:
+    // -----------------------------------------------------------------------
+    //  Protected Constructors
+    // -----------------------------------------------------------------------
+    Op(const short type, MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+    friend class OpFactory;
+
+    MemoryManager* const fMemoryManager;
+
+private:
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    Op(const Op&);
+    Op& operator=(const Op&);
+
+    // -----------------------------------------------------------------------
+    //  Private data members
+    //
+    //  fOpType
+    //      Indicates the type of operation
+    //
+    //  fNextOp
+    //      Points to the next operation in the chain
+    // -----------------------------------------------------------------------
+    short fOpType;
+    const Op*   fNextOp;
+};
+
+
+class XMLUTIL_EXPORT CharOp: public Op {
+public:
+	// -----------------------------------------------------------------------
+    //  Public Constructors and Destructor
+    // -----------------------------------------------------------------------
+	CharOp(const short type, const XMLInt32 charData, MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+	~CharOp() {}
+
+	// -----------------------------------------------------------------------
+	// Getter functions
+	// -----------------------------------------------------------------------
+	XMLInt32 getData() const;
+
+private:
+	// Private data members
+	XMLInt32 fCharData;
+
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    CharOp(const CharOp&);
+    CharOp& operator=(const CharOp&);
+};
+
+class XMLUTIL_EXPORT UnionOp : public Op {
+public:
+	// -----------------------------------------------------------------------
+    //  Public Constructors and Destructor
+    // -----------------------------------------------------------------------
+	UnionOp(const short type, const int size,
+            MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+	~UnionOp() { delete fBranches; }
+
+	// -----------------------------------------------------------------------
+	// Getter functions
+	// -----------------------------------------------------------------------
+	int getSize() const;
+	const Op* elementAt(int index) const;
+
+	// -----------------------------------------------------------------------
+	// Setter functions
+	// -----------------------------------------------------------------------
+	void addElement(Op* const op);
+
+private:
+	// Private Data memebers
+	RefVectorOf<Op>* fBranches;
+
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    UnionOp(const UnionOp&);
+    UnionOp& operator=(const UnionOp&);
+};
+
+
+class XMLUTIL_EXPORT ChildOp: public Op {
+public:
+	// -----------------------------------------------------------------------
+    //  Public Constructors and Destructor
+    // -----------------------------------------------------------------------
+	ChildOp(const short type, MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+	~ChildOp() {}
+
+	// -----------------------------------------------------------------------
+	// Getter functions
+	// -----------------------------------------------------------------------
+	const Op* getChild() const;
+
+	// -----------------------------------------------------------------------
+	// Setter functions
+	// -----------------------------------------------------------------------
+	void setChild(const Op* const child);
+
+private:
+	// Private data members
+	const Op* fChild;
+
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    ChildOp(const ChildOp&);
+    ChildOp& operator=(const ChildOp&);
+};
+
+class XMLUTIL_EXPORT ModifierOp: public ChildOp {
+public:
+	// -----------------------------------------------------------------------
+    //  Public Constructors and Destructor
+    // -----------------------------------------------------------------------
+	ModifierOp(const short type, const XMLInt32 v1, const XMLInt32 v2, MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+	~ModifierOp() {}
+
+	// -----------------------------------------------------------------------
+	// Getter functions
+	// -----------------------------------------------------------------------
+	XMLInt32 getData() const;
+	XMLInt32 getData2() const;
+
+private:
+	// Private data members
+	XMLInt32 fVal1;
+	XMLInt32 fVal2;
+
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    ModifierOp(const ModifierOp&);
+    ModifierOp& operator=(const ModifierOp&);
+};
+
+class XMLUTIL_EXPORT RangeOp: public Op {
+public:
+	// -----------------------------------------------------------------------
+    //  Public Constructors and Destructor
+    // -----------------------------------------------------------------------
+	RangeOp(const short type, const Token* const token, MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+	~RangeOp() {}
+
+	// -----------------------------------------------------------------------
+	// Getter functions
+	// -----------------------------------------------------------------------
+	const Token* getToken() const;
+
+private:
+	// Private data members
+	const Token* fToken;
+
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    RangeOp(const RangeOp&);
+    RangeOp& operator=(const RangeOp&);
+};
+
+class XMLUTIL_EXPORT StringOp: public Op {
+public:
+	// -----------------------------------------------------------------------
+    //  Public Constructors and Destructor
+    // -----------------------------------------------------------------------
+	StringOp(const short type, const XMLCh* const literal, MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+	~StringOp() { fMemoryManager->deallocate(fLiteral);}
+
+	// -----------------------------------------------------------------------
+	// Getter functions
+	// -----------------------------------------------------------------------
+	const XMLCh* getLiteral() const;
+
+private:
+	// Private data members
+	XMLCh* fLiteral;
+
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    StringOp(const StringOp&);
+    StringOp& operator=(const StringOp&);
+};
+
+class XMLUTIL_EXPORT ConditionOp: public Op {
+public:
+	// -----------------------------------------------------------------------
+    //  Public Constructors and Destructor
+    // -----------------------------------------------------------------------
+	ConditionOp(const short type, const int refNo,
+				const Op* const condFlow, const Op* const yesFlow,
+				const Op* const noFlow, MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+	~ConditionOp() {}
+
+	// -----------------------------------------------------------------------
+	// Getter functions
+	// -----------------------------------------------------------------------
+	int			getRefNo() const;
+	const Op*	getConditionFlow() const;
+	const Op*	getYesFlow() const;
+	const Op*	getNoFlow() const;
+	
+private:
+	// Private data members
+	int fRefNo;
+	const Op* fConditionOp;
+	const Op* fYesOp;
+	const Op* fNoOp;
+
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    ConditionOp(const ConditionOp&);
+    ConditionOp& operator=(const ConditionOp&);
+};
+
+// ---------------------------------------------------------------------------
+//  Op: getter methods
+// ---------------------------------------------------------------------------
+inline short Op::getOpType() const {
+
+	return fOpType;
+}
+
+inline const Op* Op::getNextOp() const {
+
+	return fNextOp;
+}
+
+// ---------------------------------------------------------------------------
+//  Op: setter methods
+// ---------------------------------------------------------------------------
+inline void Op::setOpType(const short type) {
+
+	fOpType = type;
+}
+
+inline void Op::setNextOp(const Op* const nextOp) {
+	
+	fNextOp = nextOp;
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
+
+/**
+  * End of file Op.hpp
+  */
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/regx/CharToken.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/regx/CharToken.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/regx/CharToken.hpp	(revision 2674)
@@ -0,0 +1,88 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: CharToken.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(CHARTOKEN_HPP)
+#define CHARTOKEN_HPP
+
+// ---------------------------------------------------------------------------
+//  Includes
+// ---------------------------------------------------------------------------
+#include <xercesc/util/regx/Token.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class XMLUTIL_EXPORT CharToken : public Token {
+public:
+	// -----------------------------------------------------------------------
+    //  Public Constructors and Destructor
+    // -----------------------------------------------------------------------
+	CharToken(const unsigned short tokType, const XMLInt32 ch
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+	~CharToken();
+
+	// -----------------------------------------------------------------------
+    //  Getter methods
+    // -----------------------------------------------------------------------
+	XMLInt32 getChar() const;
+
+	// -----------------------------------------------------------------------
+    //  Match methods
+    // -----------------------------------------------------------------------
+	bool match(const XMLInt32 ch);
+
+private:
+	// -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    CharToken(const CharToken&);
+    CharToken& operator=(const CharToken&);
+
+	// -----------------------------------------------------------------------
+    //  Private data members
+	// -----------------------------------------------------------------------
+	XMLInt32 fCharData;
+};
+
+
+// ---------------------------------------------------------------------------
+//  CharToken: getter methods
+// ---------------------------------------------------------------------------
+inline XMLInt32 CharToken::getChar() const {
+
+	return fCharData;
+}
+
+
+// ---------------------------------------------------------------------------
+//  CharToken: getter methods
+// ---------------------------------------------------------------------------
+inline bool CharToken::match(const XMLInt32 ch){
+
+	return ch == fCharData;
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
+
+/**
+  * End of file CharToken.hpp
+  */
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/regx/Token.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/regx/Token.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/regx/Token.hpp	(revision 2674)
@@ -0,0 +1,266 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: Token.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(TOKEN_HPP)
+#define TOKEN_HPP
+
+// ---------------------------------------------------------------------------
+//  Includes
+// ---------------------------------------------------------------------------
+#include <xercesc/util/RuntimeException.hpp>
+#include <xercesc/util/PlatformUtils.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+// ---------------------------------------------------------------------------
+//  Forward Declaration
+// ---------------------------------------------------------------------------
+class RangeToken;
+class TokenFactory;
+
+
+class XMLUTIL_EXPORT Token : public XMemory
+{
+public:
+	// -----------------------------------------------------------------------
+    //  Public Constructors and Destructor
+    // -----------------------------------------------------------------------
+	Token(const unsigned short tokType
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+        );
+	virtual ~Token();
+
+	// -----------------------------------------------------------------------
+    //  Public Constants
+    // -----------------------------------------------------------------------
+	// Token types
+	enum {
+		T_CHAR = 0,
+		T_CONCAT = 1,
+		T_UNION = 2,
+		T_CLOSURE = 3,
+		T_RANGE = 4,
+		T_NRANGE = 5,
+		T_PAREN = 6,
+		T_EMPTY = 7,
+		T_ANCHOR = 8,
+		T_NONGREEDYCLOSURE = 9,
+		T_STRING = 10,
+		T_DOT = 11,
+		T_BACKREFERENCE = 12,
+		T_LOOKAHEAD = 20,
+		T_NEGATIVELOOKAHEAD = 21,
+		T_LOOKBEHIND = 22,
+		T_NEGATIVELOOKBEHIND = 23,
+		T_INDEPENDENT = 24,
+		T_MODIFIERGROUP = 25,
+		T_CONDITION = 26
+	};
+
+	static const XMLInt32		UTF16_MAX;
+	static const unsigned short FC_CONTINUE;
+	static const unsigned short FC_TERMINAL;
+	static const unsigned short FC_ANY;
+
+	// -----------------------------------------------------------------------
+    //  Getter methods
+    // -----------------------------------------------------------------------
+	unsigned short       getTokenType() const;
+	int                  getMinLength() const;
+    int                  getMaxLength() const;
+	virtual Token*       getChild(const int index) const;
+	virtual int          size() const;
+    virtual int          getMin() const;
+    virtual int          getMax() const;
+    virtual int          getNoParen() const;
+	virtual int          getReferenceNo() const;
+    virtual const XMLCh* getString() const;
+	virtual XMLInt32     getChar() const;
+
+	// -----------------------------------------------------------------------
+    //  Setter methods
+    // -----------------------------------------------------------------------
+	void setTokenType(const unsigned short tokType);
+	virtual void setMin(const int minVal);
+	virtual void setMax(const int maxVal);
+
+    // -----------------------------------------------------------------------
+    //  Range manipulation methods
+    // -----------------------------------------------------------------------
+	virtual void addRange(const XMLInt32 start, const XMLInt32 end);
+	virtual void mergeRanges(const Token *const tok);
+	virtual void sortRanges();
+	virtual void compactRanges();
+	virtual void subtractRanges(RangeToken* const tok);
+	virtual void intersectRanges(RangeToken* const tok);
+
+	// -----------------------------------------------------------------------
+    //  Putter methods
+    // -----------------------------------------------------------------------
+	virtual void addChild(Token* const child, TokenFactory* const tokFactory);
+
+	// -----------------------------------------------------------------------
+    //  Helper methods
+    // -----------------------------------------------------------------------
+	int analyzeFirstCharacter(RangeToken* const rangeTok, const int options,
+                              TokenFactory* const tokFactory);
+    Token* findFixedString(int options, int& outOptions);
+
+private:
+	// -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    Token(const Token&);
+    Token& operator=(const Token&);
+
+    // -----------------------------------------------------------------------
+    //  Private Helper methods
+    // -----------------------------------------------------------------------
+	bool isSet(const int options, const unsigned int flag);
+    bool isShorterThan(Token* const tok);
+
+	// -----------------------------------------------------------------------
+    //  Private data members
+	// -----------------------------------------------------------------------
+	unsigned short fTokenType;
+protected:
+    MemoryManager* const    fMemoryManager;
+};
+
+
+// ---------------------------------------------------------------------------
+//  Token: getter methods
+// ---------------------------------------------------------------------------
+inline unsigned short Token::getTokenType() const {
+
+	return fTokenType;
+}
+
+inline int Token::size() const {
+
+	return 0;
+}
+
+inline Token* Token::getChild(const int) const {
+
+	return 0;
+}
+
+inline int Token::getMin() const {
+
+    return -1;
+}
+
+inline int Token::getMax() const {
+
+    return -1;
+}
+
+inline int Token::getReferenceNo() const {
+
+    return 0;
+}
+
+inline int Token::getNoParen() const {
+
+    return 0;
+}
+
+inline const XMLCh* Token::getString() const {
+
+    return 0;
+}
+
+inline XMLInt32 Token::getChar() const {
+
+    return -1;
+}
+
+// ---------------------------------------------------------------------------
+//  Token: setter methods
+// ---------------------------------------------------------------------------
+inline void Token::setTokenType(const unsigned short tokType) {
+	
+	fTokenType = tokType;
+}
+
+inline void Token::setMax(const int) {
+	// ClosureToken
+}
+
+inline void Token::setMin(const int) {
+	// ClosureToken
+}
+
+inline bool Token::isSet(const int options, const unsigned int flag) {
+
+	return (options & flag) == flag;
+}
+
+// ---------------------------------------------------------------------------
+//  Token: setter methods
+// ---------------------------------------------------------------------------
+inline void Token::addChild(Token* const, TokenFactory* const) {
+
+    ThrowXMLwithMemMgr(RuntimeException, XMLExcepts::Regex_NotSupported, fMemoryManager);
+}
+
+// ---------------------------------------------------------------------------
+//  Token: Range manipulation methods
+// ---------------------------------------------------------------------------
+inline void Token::addRange(const XMLInt32, const XMLInt32) {
+
+    ThrowXMLwithMemMgr(RuntimeException, XMLExcepts::Regex_NotSupported, fMemoryManager);
+}
+
+inline void Token::mergeRanges(const Token *const) {
+
+    ThrowXMLwithMemMgr(RuntimeException, XMLExcepts::Regex_NotSupported, fMemoryManager);
+}
+
+inline void Token::sortRanges() {
+
+    ThrowXMLwithMemMgr(RuntimeException, XMLExcepts::Regex_NotSupported, fMemoryManager);
+}
+
+inline void Token::compactRanges() {
+
+    ThrowXMLwithMemMgr(RuntimeException, XMLExcepts::Regex_NotSupported, fMemoryManager);
+}
+
+inline void Token::subtractRanges(RangeToken* const) {
+
+    ThrowXMLwithMemMgr(RuntimeException, XMLExcepts::Regex_NotSupported, fMemoryManager);
+}
+
+inline void Token::intersectRanges(RangeToken* const) {
+
+    ThrowXMLwithMemMgr(RuntimeException, XMLExcepts::Regex_NotSupported, fMemoryManager);
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
+
+/**
+  * End of file Token.hpp
+  */
+
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/regx/RegularExpression.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/regx/RegularExpression.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/regx/RegularExpression.hpp	(revision 2674)
@@ -0,0 +1,601 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: RegularExpression.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(REGULAREXPRESSION_HPP)
+#define REGULAREXPRESSION_HPP
+
+// ---------------------------------------------------------------------------
+//  Includes
+// ---------------------------------------------------------------------------
+#include <xercesc/util/RefArrayVectorOf.hpp>
+#include <xercesc/util/XMLString.hpp>
+#include <xercesc/util/Janitor.hpp>
+#include <xercesc/util/regx/Op.hpp>
+#include <xercesc/util/regx/TokenFactory.hpp>
+#include <xercesc/util/regx/BMPattern.hpp>
+#include <xercesc/util/regx/ModifierToken.hpp>
+#include <xercesc/util/regx/ConditionToken.hpp>
+#include <xercesc/util/regx/OpFactory.hpp>
+#include <xercesc/util/regx/RegxUtil.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+// ---------------------------------------------------------------------------
+//  Forward Declaration
+// ---------------------------------------------------------------------------
+class RangeToken;
+class Match;
+
+class XMLUTIL_EXPORT RegularExpression : public XMemory
+{
+public:
+    // -----------------------------------------------------------------------
+    //  Public Constructors and Destructor
+    // -----------------------------------------------------------------------
+    RegularExpression
+    (
+        const char* const pattern
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+    RegularExpression
+    (
+        const char* const pattern
+        , const char* const options
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+    RegularExpression
+    (
+        const XMLCh* const pattern
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+    RegularExpression
+    (
+        const XMLCh* const pattern
+        , const XMLCh* const options
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+    ~RegularExpression();
+
+    // -----------------------------------------------------------------------
+    //  Public Constants
+    // -----------------------------------------------------------------------
+    static const unsigned int   MARK_PARENS;
+    static const unsigned int   IGNORE_CASE;
+    static const unsigned int   SINGLE_LINE;
+    static const unsigned int   MULTIPLE_LINE;
+    static const unsigned int   EXTENDED_COMMENT;
+    static const unsigned int   USE_UNICODE_CATEGORY;
+    static const unsigned int   UNICODE_WORD_BOUNDARY;
+    static const unsigned int   PROHIBIT_HEAD_CHARACTER_OPTIMIZATION;
+    static const unsigned int   PROHIBIT_FIXED_STRING_OPTIMIZATION;
+    static const unsigned int   XMLSCHEMA_MODE;
+    static const unsigned int   SPECIAL_COMMA;
+    static const unsigned short WT_IGNORE;
+    static const unsigned short WT_LETTER;
+    static const unsigned short WT_OTHER;
+
+    // -----------------------------------------------------------------------
+    //  Public Helper methods
+    // -----------------------------------------------------------------------
+    static int getOptionValue(const XMLCh ch);
+
+    // -----------------------------------------------------------------------
+    //  Matching methods
+    // -----------------------------------------------------------------------
+    bool matches(const char* const matchString, MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+    bool matches(const char* const matchString, const int start,
+                 const int end, MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+    bool matches(const char* const matchString, Match* const pMatch, MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+    bool matches(const char* const matchString, const int start,
+                 const int end, Match* const pMatch, MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+
+    bool matches(const XMLCh* const matchString, MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+    bool matches(const XMLCh* const matchString, const int start,
+                 const int end, MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+    bool matches(const XMLCh* const matchString, Match* const pMatch, MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+    bool matches(const XMLCh* const matchString, const int start,
+                 const int end, Match* const pMatch, MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+
+    // -----------------------------------------------------------------------
+    //  Tokenize methods
+    // -----------------------------------------------------------------------
+    // Note: The caller owns the string vector that is returned, and is responsible
+    //       for deleting it.
+    RefArrayVectorOf<XMLCh> *tokenize(const char* const matchString);
+    RefArrayVectorOf<XMLCh> *tokenize(const char* const matchString, const int start,
+                                      const int end);
+
+    RefArrayVectorOf<XMLCh> *tokenize(const XMLCh* const matchString);
+    RefArrayVectorOf<XMLCh> *tokenize(const XMLCh* const matchString,
+                                      const int start, const int end);
+
+    // -----------------------------------------------------------------------
+    //  Replace methods
+    // -----------------------------------------------------------------------
+    // Note: The caller owns the XMLCh* that is returned, and is responsible for
+    //       deleting it.
+    XMLCh *replace(const char* const matchString, const char* const replaceString);
+    XMLCh *replace(const char* const matchString, const char* const replaceString,
+                   const int start, const int end);
+
+    XMLCh *replace(const XMLCh* const matchString, const XMLCh* const replaceString);
+    XMLCh *replace(const XMLCh* const matchString, const XMLCh* const replaceString,
+                   const int start, const int end);
+
+    // -----------------------------------------------------------------------
+    //  Static initialize and cleanup methods
+    // -----------------------------------------------------------------------
+    static void
+    staticInitialize(MemoryManager*  memoryManager);
+
+    static void
+    staticCleanup();
+
+    static bool isSet(const int options, const int flag);
+
+private:
+    // -----------------------------------------------------------------------
+    //  Private data types
+    // -----------------------------------------------------------------------
+    class XMLUTIL_EXPORT Context : public XMemory
+    {
+        public :
+            Context(MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+            Context(Context* src);
+            ~Context();
+
+            Context& operator= (const Context& other);
+            inline const XMLCh* getString() const { return fString; }
+            void reset(const XMLCh* const string, const int stringLen,
+                       const int start, const int limit, const int noClosures);
+            bool nextCh(XMLInt32& ch, int& offset, const short direction);
+            
+            bool           fAdoptMatch;
+            int            fStart;
+            int            fLimit;
+            int            fLength;    // fLimit - fStart
+            int            fSize;
+            int            fStringMaxLen;
+            int*           fOffsets;
+            Match*         fMatch;
+            const XMLCh*   fString;
+            MemoryManager* fMemoryManager;
+    };
+
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    RegularExpression(const RegularExpression&);
+    RegularExpression& operator=(const RegularExpression&);
+
+    // -----------------------------------------------------------------------
+    //  Cleanup methods
+    // -----------------------------------------------------------------------
+    void cleanUp();
+
+    // -----------------------------------------------------------------------
+    //  Setter methods
+    // -----------------------------------------------------------------------
+    void setPattern(const XMLCh* const pattern, const XMLCh* const options=0);
+
+    // -----------------------------------------------------------------------
+    //  Private Helper methods
+    // -----------------------------------------------------------------------
+    void prepare();
+    int parseOptions(const XMLCh* const options);
+    unsigned short getWordType(const XMLCh* const target, const int begin,
+                               const int end, const int offset);
+    unsigned short getCharType(const XMLCh ch);
+    unsigned short getPreviousWordType(const XMLCh* const target,
+                                       const int start, const int end,
+                                       int offset);
+
+    /**
+      *    Matching helpers
+      */
+    int match(Context* const context, const Op* const operations, int offset,
+              const short direction);
+    bool matchIgnoreCase(const XMLInt32 ch1, const XMLInt32 ch2);
+
+    /**
+      *    Helper methods used by match(Context* ...)
+      */
+    bool matchChar(Context* const context, const XMLInt32 ch, int& offset,
+                   const short direction, const bool ignoreCase);
+    bool matchDot(Context* const context, int& offset, const short direction);
+    bool matchRange(Context* const context, const Op* const op,
+                    int& offset, const short direction, const bool ignoreCase);
+    bool matchAnchor(Context* const context, const XMLInt32 ch,
+                     const int offset);
+    bool matchBackReference(Context* const context, const XMLInt32 ch,
+                            int& offset, const short direction,
+                            const bool ignoreCase);
+    bool matchString(Context* const context, const XMLCh* const literal,
+                     int& offset, const short direction, const bool ignoreCase);
+    int  matchUnion(Context* const context, const Op* const op, int offset,
+                    const short direction);
+    int matchCapture(Context* const context, const Op* const op, int offset,
+                     const short direction);
+    bool matchCondition(Context* const context, const Op* const op, int offset,
+                        const short direction);
+    int matchModifier(Context* const context, const Op* const op, int offset,
+                      const short direction);
+
+    /**
+     *    Tokenize helper
+     *
+     *    This overloaded tokenize is for internal use only. It provides a way to
+     *    keep track of the sub-expressions in each match of the pattern.
+     *
+     *    It is called by the other tokenize methods, and by the replace method.
+     *    The caller is responsible for the deletion of the returned
+     *    RefArrayVectorOf<XMLCh*>
+     */
+    RefArrayVectorOf<XMLCh> *tokenize(const XMLCh* const matchString,
+                                      const int start, const int end,
+                                      RefVectorOf<Match> *subEx);
+    /**
+     *    Replace helpers
+     *
+     *    Note: the caller owns the XMLCh* that is returned
+     */
+    const XMLCh *subInExp(const XMLCh* const repString,
+                          const XMLCh* const origString,
+                          const Match* subEx);
+    /**
+     *    Converts a token tree into an operation tree
+     */
+    void compile(const Token* const token);
+    Op*  compile(const Token* const token, Op* const next,
+                 const bool reverse);
+    /**
+      *    Helper methods used by compile
+      */
+    Op* compileSingle(const Token* const token, Op* const next,
+                      const unsigned short tokType);
+    Op* compileUnion(const Token* const token, Op* const next,
+                     const bool reverse);
+    Op* compileCondition(const Token* const token, Op* const next,
+                         const bool reverse);
+    Op* compileParenthesis(const Token* const token, Op* const next,
+                           const bool reverse);
+    Op* compileLook(const Token* const token, const Op* const next,
+                    const bool reverse, const unsigned short tokType);
+    Op* compileConcat(const Token* const token, Op* const next,
+                      const bool reverse);
+    Op* compileClosure(const Token* const token, Op* const next,
+                       const bool reverse, const unsigned short tokType);
+
+    // -----------------------------------------------------------------------
+    //  Private data members
+    // -----------------------------------------------------------------------
+    bool               fHasBackReferences;
+    bool               fFixedStringOnly;
+    int                fNoGroups;
+    int                fMinLength;
+    int                fNoClosures;
+    unsigned int       fOptions;
+    BMPattern*         fBMPattern;
+    XMLCh*             fPattern;
+    XMLCh*             fFixedString;
+    Op*                fOperations;
+    Token*             fTokenTree;
+    RangeToken*        fFirstChar;
+    static RangeToken* fWordRange;
+    OpFactory          fOpFactory;
+    TokenFactory*      fTokenFactory;
+    MemoryManager*     fMemoryManager;
+};
+
+
+
+  // -----------------------------------------------------------------------
+  //  RegularExpression: Static initialize and cleanup methods
+  // -----------------------------------------------------------------------
+  inline void RegularExpression::staticCleanup()
+  {
+      fWordRange = 0;
+  }
+
+  // ---------------------------------------------------------------------------
+  //  RegularExpression: Cleanup methods
+  // ---------------------------------------------------------------------------
+  inline void RegularExpression::cleanUp() {
+
+      fMemoryManager->deallocate(fPattern);//delete [] fPattern;
+      fMemoryManager->deallocate(fFixedString);//delete [] fFixedString;      
+      delete fBMPattern;
+      delete fTokenFactory;
+  }
+
+  // ---------------------------------------------------------------------------
+  //  RegularExpression: Helper methods
+  // ---------------------------------------------------------------------------
+  inline bool RegularExpression::isSet(const int options, const int flag) {
+
+      return (options & flag) == flag;
+  }
+
+  inline Op* RegularExpression::compileLook(const Token* const token,
+                                            const Op* const next,
+                                            const bool reverse,
+                                            const unsigned short tokType) {
+
+      Op*    ret = 0;
+      Op*    result = compile(token->getChild(0), 0, reverse);
+
+      switch(tokType) {
+      case Token::T_LOOKAHEAD:
+          ret = fOpFactory.createLookOp(Op::O_LOOKAHEAD, next, result);
+          break;
+      case Token::T_NEGATIVELOOKAHEAD:
+          ret = fOpFactory.createLookOp(Op::O_NEGATIVELOOKAHEAD, next, result);
+          break;
+      case Token::T_LOOKBEHIND:
+          ret = fOpFactory.createLookOp(Op::O_LOOKBEHIND, next, result);
+          break;
+      case Token::T_NEGATIVELOOKBEHIND:
+          ret = fOpFactory.createLookOp(Op::O_NEGATIVELOOKBEHIND, next, result);
+          break;
+      case Token::T_INDEPENDENT:
+          ret = fOpFactory.createIndependentOp(next, result);
+          break;
+      case Token::T_MODIFIERGROUP:
+          ret = fOpFactory.createModifierOp(next, result,
+                                     ((const ModifierToken *) token)->getOptions(),
+                                     ((const ModifierToken *) token)->getOptionsMask());
+          break;
+      }
+
+
+      return ret;
+  }
+
+  inline Op* RegularExpression::compileSingle(const Token* const token,
+                                              Op* const next,
+                                              const unsigned short tokType) {
+
+      Op* ret = 0;
+
+      switch (tokType) {
+      case Token::T_DOT:
+          ret = fOpFactory.createDotOp();
+          break;
+      case Token::T_CHAR:
+          ret = fOpFactory.createCharOp(token->getChar());
+          break;
+      case Token::T_ANCHOR:
+          ret = fOpFactory.createAnchorOp(token->getChar());
+          break;
+      case Token::T_RANGE:
+      case Token::T_NRANGE:
+          ret = fOpFactory.createRangeOp(token);
+          break;
+      case Token::T_EMPTY:
+          ret = next;
+          break;
+      case Token::T_STRING:
+          ret = fOpFactory.createStringOp(token->getString());
+          break;
+      case Token::T_BACKREFERENCE:
+          ret = fOpFactory.createBackReferenceOp(token->getReferenceNo());
+          break;
+      }
+
+      if (tokType != Token::T_EMPTY)
+          ret->setNextOp(next);
+
+      return ret;
+  }
+
+
+  inline Op* RegularExpression::compileUnion(const Token* const token,
+                                             Op* const next,
+                                             const bool reverse) {
+
+      int tokSize = token->size();
+      UnionOp* uniOp = fOpFactory.createUnionOp(tokSize);
+
+      for (int i=0; i<tokSize; i++) {
+
+          uniOp->addElement(compile(token->getChild(i), next, reverse));
+      }
+
+      return uniOp;
+  }
+
+
+  inline Op* RegularExpression::compileCondition(const Token* const token,
+                                                 Op* const next,
+                                                 const bool reverse) {
+
+      Token* condTok = ((const ConditionToken*) token)->getConditionToken();
+      Token* yesTok  = token->getChild(0);
+      Token* noTok   = token->getChild(1);
+      int    refNo   = token->getReferenceNo();
+      Op*    condOp  = (condTok == 0) ? 0 : compile(condTok, 0, reverse);
+      Op*    yesOp   = compile(yesTok, next, reverse);
+      Op*    noOp    = (noTok == 0) ? 0 : compile(noTok, next, reverse);
+
+      return fOpFactory.createConditionOp(next, refNo, condOp, yesOp, noOp);
+  }
+
+
+  inline Op* RegularExpression::compileParenthesis(const Token* const token,
+                                                   Op* const next,
+                                                   const bool reverse) {
+
+      if (token->getNoParen() == 0)
+          return compile(token->getChild(0), next, reverse);
+
+      Op* captureOp    = 0;
+
+      if (reverse) {
+
+          captureOp = fOpFactory.createCaptureOp(token->getNoParen(), next);
+          captureOp = compile(token->getChild(0), captureOp, reverse);
+
+          return fOpFactory.createCaptureOp(-token->getNoParen(), captureOp);
+      }
+
+      captureOp = fOpFactory.createCaptureOp(-token->getNoParen(), next);
+      captureOp = compile(token->getChild(0), captureOp, reverse);
+
+      return fOpFactory.createCaptureOp(token->getNoParen(), captureOp);
+  }
+
+  inline Op* RegularExpression::compileConcat(const Token* const token,
+                                              Op*  const next,
+                                              const bool reverse) {
+
+      Op* ret = next;
+      int tokSize = token->size();
+
+      if (!reverse) {
+
+          for (int i= tokSize - 1; i>=0; i--) {
+              ret = compile(token->getChild(i), ret, false);
+          }
+      }
+      else {
+
+          for (int i= 0; i< tokSize; i++) {
+              ret = compile(token->getChild(i), ret, true);
+          }
+      }
+
+      return ret;
+  }
+
+  inline Op* RegularExpression::compileClosure(const Token* const token,
+                                               Op* const next,
+                                               const bool reverse,
+                                               const unsigned short tokType) {
+
+      Op*    ret      = 0;
+      Token* childTok = token->getChild(0);
+      int    min      = token->getMin();
+      int    max      = token->getMax();
+
+      if (min >= 0 && min == max) {
+
+          ret = next;
+          for (int i=0; i< min; i++) {
+              ret = compile(childTok, ret, reverse);
+          }
+
+          return ret;
+      }
+
+      if (min > 0 && max > 0)
+          max -= min;
+
+      if (max > 0) {
+
+          ret = next;
+          for (int i=0; i<max; i++) {
+
+              ChildOp* childOp = fOpFactory.createQuestionOp(
+                  tokType == Token::T_NONGREEDYCLOSURE);
+
+              childOp->setNextOp(next);
+              childOp->setChild(compile(childTok, ret, reverse));
+              ret = childOp;
+          }
+      }
+      else {
+
+          ChildOp* childOp = 0;
+
+          if (tokType == Token::T_NONGREEDYCLOSURE) {
+              childOp = fOpFactory.createNonGreedyClosureOp();
+          }
+          else {
+
+              if (childTok->getMinLength() == 0)
+                  childOp = fOpFactory.createClosureOp(fNoClosures++);
+              else
+                  childOp = fOpFactory.createClosureOp(-1);
+          }
+
+          childOp->setNextOp(next);
+          childOp->setChild(compile(childTok, childOp, reverse));
+          ret = childOp;
+      }
+
+      if (min > 0) {
+
+          for (int i=0; i< min; i++) {
+              ret = compile(childTok, ret, reverse);
+          }
+      }
+
+      return ret;
+  }
+
+  inline int RegularExpression::matchModifier(Context* const context,
+                                              const Op* const op, int offset,
+                                              const short direction)
+  {
+      int saveOptions = fOptions;
+      fOptions |= (int) op->getData();
+      fOptions &= (int) ~op->getData2();
+
+      int ret = match(context, op->getChild(), offset, direction);
+
+      fOptions = saveOptions;
+
+      return ret;
+  }
+
+  inline unsigned short RegularExpression::getWordType(const XMLCh* const target
+                                                       , const int begin
+                                                       , const int end
+                                                       , const int offset)
+  {
+      if (offset < begin || offset >= end)
+          return WT_OTHER;
+
+      return getCharType(target[offset]);
+  }
+
+  inline
+  unsigned short RegularExpression::getPreviousWordType(const XMLCh* const target
+                                                        , const int start
+                                                        , const int end
+                                                        , int offset)
+  {
+      unsigned short ret = getWordType(target, start, end, --offset);
+
+      while (ret == WT_IGNORE) {
+          ret = getWordType(target, start, end, --offset);
+      }
+
+      return ret;
+  }
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
+/**
+  * End of file RegularExpression.hpp
+  */
+
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/regx/RegxParser.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/regx/RegxParser.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/regx/RegxParser.hpp	(revision 2674)
@@ -0,0 +1,299 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: RegxParser.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+/*
+ *	A regular expression parser
+ */
+#if !defined(REGXPARSER_HPP)
+#define REGXPARSER_HPP
+
+// ---------------------------------------------------------------------------
+//  Includes
+// ---------------------------------------------------------------------------
+#include <xercesc/util/RefVectorOf.hpp>
+#include <xercesc/util/XMLUniDefs.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+// ---------------------------------------------------------------------------
+//  Forward Declaration
+// ---------------------------------------------------------------------------
+class Token;
+class RangeToken;
+class TokenFactory;
+
+class XMLUTIL_EXPORT RegxParser : public XMemory
+{
+public:
+
+	// -----------------------------------------------------------------------
+    //  Public constant data
+    // -----------------------------------------------------------------------
+    // Parse tokens
+	enum {
+		REGX_T_CHAR                     = 0,
+		REGX_T_EOF                      = 1,
+		REGX_T_OR                       = 2,
+		REGX_T_STAR                     = 3,
+		REGX_T_PLUS                     = 4,
+		REGX_T_QUESTION                 = 5,
+		REGX_T_LPAREN                   = 6,
+		REGX_T_RPAREN                   = 7,
+		REGX_T_DOT                      = 8,
+		REGX_T_LBRACKET                 = 9,
+		REGX_T_BACKSOLIDUS              = 10,
+		REGX_T_CARET                    = 11,
+		REGX_T_DOLLAR                   = 12,
+		REGX_T_LPAREN2                  = 13,
+		REGX_T_LOOKAHEAD                = 14,
+		REGX_T_NEGATIVELOOKAHEAD        = 15,
+		REGX_T_LOOKBEHIND               = 16,
+		REGX_T_NEGATIVELOOKBEHIND       = 17,
+		REGX_T_INDEPENDENT              = 18,
+		REGX_T_SET_OPERATIONS           = 19,
+		REGX_T_POSIX_CHARCLASS_START    = 20,
+		REGX_T_COMMENT                  = 21,
+		REGX_T_MODIFIERS                = 22,
+		REGX_T_CONDITION                = 23,
+		REGX_T_XMLSCHEMA_CC_SUBTRACTION	= 24
+	};
+
+	static const unsigned short S_NORMAL;
+	static const unsigned short S_INBRACKETS;
+	static const unsigned short S_INXBRACKETS;
+
+	// -----------------------------------------------------------------------
+    //  Public Constructors and Destructor
+    // -----------------------------------------------------------------------
+	RegxParser(MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+	virtual ~RegxParser();
+
+    // -----------------------------------------------------------------------
+    //  Getter methods
+    // -----------------------------------------------------------------------
+    unsigned short getParseContext() const;
+    unsigned short getState() const;
+    XMLInt32       getCharData() const;
+    int            getNoParen() const;
+	int            getOffset() const;
+	bool           hasBackReferences() const;
+    TokenFactory*  getTokenFactory() const;
+
+	// -----------------------------------------------------------------------
+    //  Setter methods
+    // -----------------------------------------------------------------------
+	void setParseContext(const unsigned short value);
+    void setTokenFactory(TokenFactory* const tokFactory);
+
+	// -----------------------------------------------------------------------
+    //  Public Parsing methods
+    // -----------------------------------------------------------------------
+	Token* parse(const XMLCh* const regxStr, const int options);
+
+protected:
+    // -----------------------------------------------------------------------
+    //  Protected Helper methods
+    // -----------------------------------------------------------------------
+    virtual bool        checkQuestion(const int off);
+	virtual XMLInt32    decodeEscaped();
+    MemoryManager*      getMemoryManager() const;
+    // -----------------------------------------------------------------------
+    //  Protected Parsing/Processing methods
+    // -----------------------------------------------------------------------
+	void                processNext();
+	Token*              parseRegx(const bool matchingRParen = false);
+	virtual Token*      processCaret();
+    virtual Token*      processDollar();
+	virtual Token*      processLook(const unsigned short tokType);
+    virtual Token*      processBacksolidus_A();
+    virtual Token*      processBacksolidus_z();
+    virtual Token*      processBacksolidus_Z();
+    virtual Token*      processBacksolidus_b();
+    virtual Token*      processBacksolidus_B();
+    virtual Token*      processBacksolidus_lt();
+    virtual Token*      processBacksolidus_gt();
+    virtual Token*      processBacksolidus_c();
+    virtual Token*      processBacksolidus_C();
+    virtual Token*      processBacksolidus_i();
+    virtual Token*      processBacksolidus_I();
+    virtual Token*      processBacksolidus_g();
+    virtual Token*      processBacksolidus_X();
+    virtual Token*      processBackReference();
+	virtual Token*      processStar(Token* const tok);
+	virtual Token*      processPlus(Token* const tok);
+	virtual Token*      processQuestion(Token* const tok);
+    virtual Token*      processParen();
+    virtual Token*      processParen2();
+    virtual Token*      processCondition();
+    virtual Token*      processModifiers();
+    virtual Token*      processIndependent();
+    virtual RangeToken* parseCharacterClass(const bool useNRange);
+    virtual RangeToken* parseSetOperations();
+	virtual XMLInt32    processCInCharacterClass(RangeToken* const tok,
+                                                 const XMLInt32 ch);
+    RangeToken*         processBacksolidus_pP(const XMLInt32 ch);
+
+    // -----------------------------------------------------------------------
+    //  Protected PreCreated RangeToken access methods
+    // -----------------------------------------------------------------------
+	virtual Token*      getTokenForShorthand(const XMLInt32 ch);
+
+private:
+    // -----------------------------------------------------------------------
+    //  Private parsing/processing methods
+    // -----------------------------------------------------------------------
+    Token* parseTerm(const bool matchingRParen = false);
+	Token* parseFactor();
+	Token* parseAtom();
+
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    RegxParser(const RegxParser&);
+    RegxParser& operator=(const RegxParser&);
+
+	// -----------------------------------------------------------------------
+    //  Private data types
+    // -----------------------------------------------------------------------
+    class ReferencePosition : public XMemory
+    {
+        public :
+            ReferencePosition(const int refNo, const int position);
+
+            int	fReferenceNo;
+			int	fPosition;
+    };
+
+    // -----------------------------------------------------------------------
+    //  Private Helper methods
+    // -----------------------------------------------------------------------
+    bool isSet(const int flag);
+	int hexChar(const XMLInt32 ch);
+
+	// -----------------------------------------------------------------------
+    //  Private data members
+	// -----------------------------------------------------------------------
+    MemoryManager*                  fMemoryManager;
+	bool                            fHasBackReferences;
+	int                             fOptions;
+	int                             fOffset;
+	int                             fNoGroups;
+	unsigned short                  fParseContext;
+	int                             fStringLen;
+	unsigned short                  fState;
+	XMLInt32                        fCharData;
+	XMLCh*                          fString;
+	RefVectorOf<ReferencePosition>* fReferences;
+    TokenFactory*                   fTokenFactory;
+};
+
+
+// ---------------------------------------------------------------------------
+//  RegxParser: Getter Methods
+// ---------------------------------------------------------------------------
+inline unsigned short RegxParser::getParseContext() const {
+
+    return fParseContext;
+}
+
+inline unsigned short RegxParser::getState() const {
+
+	return fState;
+}
+
+inline XMLInt32 RegxParser::getCharData() const {
+
+    return fCharData;
+}
+
+inline int RegxParser::getNoParen() const {
+
+    return fNoGroups;
+}
+
+inline int RegxParser::getOffset() const {
+
+	return fOffset;
+}
+
+inline bool RegxParser::hasBackReferences() const {
+
+	return fHasBackReferences;
+}
+
+inline TokenFactory* RegxParser::getTokenFactory() const {
+
+    return fTokenFactory;
+}
+
+inline MemoryManager* RegxParser::getMemoryManager() const {
+    return fMemoryManager;
+}
+// ---------------------------------------------------------------------------
+//  RegxParser: Setter Methods
+// ---------------------------------------------------------------------------
+inline void RegxParser::setParseContext(const unsigned short value) {
+
+	fParseContext = value;
+}
+
+inline void RegxParser::setTokenFactory(TokenFactory* const tokFactory) {
+
+    fTokenFactory = tokFactory;
+}
+
+// ---------------------------------------------------------------------------
+//  RegxParser: Helper Methods
+// ---------------------------------------------------------------------------
+inline bool RegxParser::isSet(const int flag) {
+
+    return (fOptions & flag) == flag;
+}
+
+
+inline int RegxParser::hexChar(const XMLInt32 ch) {
+
+	if (ch < chDigit_0 || ch > chLatin_f)
+		return -1;
+
+	if (ch <= chDigit_9)
+		return ch - chDigit_0;
+
+	if (ch < chLatin_A)
+		return -1;
+
+	if (ch <= chLatin_F)
+		return ch - chLatin_A + 10;
+
+	if (ch < chLatin_a)
+		return -1;
+
+	return ch - chLatin_a + 10;
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
+
+/**
+  *	End file RegxParser.hpp
+  */
+
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/regx/RangeFactory.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/regx/RangeFactory.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/regx/RangeFactory.hpp	(revision 2674)
@@ -0,0 +1,89 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: RangeFactory.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(RANGEFACTORY_HPP)
+#define RANGEFACTORY_HPP
+
+// ---------------------------------------------------------------------------
+//  Includes
+// ---------------------------------------------------------------------------
+#include <xercesc/util/XMemory.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+// ---------------------------------------------------------------------------
+//  Forward Declaration
+// ---------------------------------------------------------------------------
+class RangeTokenMap;
+
+class XMLUTIL_EXPORT RangeFactory : public XMemory
+{
+public:
+    // -----------------------------------------------------------------------
+    //  Constructors and destructors
+    // -----------------------------------------------------------------------
+    virtual ~RangeFactory();
+
+    //-----------------------------------------------------------------------
+    //  Initialization methods
+    // -----------------------------------------------------------------------
+    /**
+     * To maintain src code compatibility, we added a default parameter.
+     * The caller is expected to pass in a valid RangeTokenMap instance.
+     */
+    virtual void initializeKeywordMap(RangeTokenMap *rangeTokMap = 0) = 0;
+
+    /*
+     * Used by children to build commonly used ranges
+     * To maintain src code compatibility, we added a default parameter.
+     * The caller is expected to pass in a valid RangeTokenMap instance.
+     */
+    virtual void buildRanges(RangeTokenMap *rangeTokMap = 0) = 0;
+
+protected:
+    // -----------------------------------------------------------------------
+    //  Constructor and destructors
+    // -----------------------------------------------------------------------
+    RangeFactory();
+
+    //friend class RangeTokenMap;
+
+    // -----------------------------------------------------------------------
+    //  Data
+    // -----------------------------------------------------------------------
+    bool fRangesCreated;
+    bool fKeywordsInitialized;
+
+private:
+	// -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    RangeFactory(const RangeFactory&);
+    RangeFactory& operator=(const RangeFactory&);
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
+
+/**
+  *	End file RangeFactory.hpp
+  */
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/regx/ConditionToken.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/regx/ConditionToken.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/regx/ConditionToken.hpp	(revision 2674)
@@ -0,0 +1,102 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: ConditionToken.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(CONDITIONTOKEN_HPP)
+#define CONDITIONTOKEN_HPP
+
+// ---------------------------------------------------------------------------
+//  Includes
+// ---------------------------------------------------------------------------
+#include <xercesc/util/regx/Token.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class XMLUTIL_EXPORT ConditionToken : public Token {
+public:
+	// -----------------------------------------------------------------------
+    //  Public Constructors and Destructor
+    // -----------------------------------------------------------------------
+	ConditionToken(const unsigned int refNo, Token* const condTok,
+                   Token* const yesTok, Token* const noTok
+                   , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+    ~ConditionToken();
+
+	// -----------------------------------------------------------------------
+    //  Getter methods
+    // -----------------------------------------------------------------------
+    int size() const;
+	int getReferenceNo() const;
+    Token* getChild(const int index) const;
+    Token* getConditionToken() const;
+
+private:
+	// -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    ConditionToken(const ConditionToken&);
+    ConditionToken& operator=(const ConditionToken&);
+
+	// -----------------------------------------------------------------------
+    //  Private data members
+	// -----------------------------------------------------------------------
+	int    fRefNo;
+	Token* fConditionToken;
+	Token* fYesToken;
+	Token* fNoToken;
+};
+
+
+// ---------------------------------------------------------------------------
+//  ConditionToken: getter methods
+// ---------------------------------------------------------------------------
+inline int ConditionToken::size() const {
+
+    return fNoToken == 0 ? 1 : 2;
+}
+
+inline int ConditionToken::getReferenceNo() const {
+
+    return fRefNo;
+}
+
+inline Token* ConditionToken::getChild(const int index) const {
+
+    if (index < 0 || index > 1)
+        ThrowXMLwithMemMgr(RuntimeException, XMLExcepts::Regex_InvalidChildIndex, fMemoryManager);
+
+    if (index == 0)
+        return fYesToken;
+	
+    return fNoToken;
+}
+
+inline Token* ConditionToken::getConditionToken() const {
+
+	return fConditionToken;
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
+
+/**
+  * End of file ConditionToken.hpp
+  */
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/ValueVectorOf.c
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/ValueVectorOf.c	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/ValueVectorOf.c	(revision 2674)
@@ -0,0 +1,302 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: ValueVectorOf.c 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+// ---------------------------------------------------------------------------
+//  Includes
+// ---------------------------------------------------------------------------
+#if defined(XERCES_TMPLSINC)
+#include <xercesc/util/ValueVectorOf.hpp>
+#endif
+#include <string.h>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+// ---------------------------------------------------------------------------
+//  ValueVectorOf: Constructors and Destructor
+// ---------------------------------------------------------------------------
+template <class TElem>
+ValueVectorOf<TElem>::ValueVectorOf(const unsigned int maxElems,
+                                    MemoryManager* const manager,
+                                    const bool toCallDestructor) :
+
+    fCallDestructor(toCallDestructor)
+    , fCurCount(0)
+    , fMaxCount(maxElems)
+    , fElemList(0)
+    , fMemoryManager(manager)
+{
+    fElemList = (TElem*) fMemoryManager->allocate
+    (
+        fMaxCount * sizeof(TElem)
+    ); //new TElem[fMaxCount];
+
+    memset(fElemList, 0, fMaxCount * sizeof(TElem));
+}
+
+template <class TElem>
+ValueVectorOf<TElem>::ValueVectorOf(const ValueVectorOf<TElem>& toCopy) :
+    XMemory(toCopy)
+    , fCallDestructor(toCopy.fCallDestructor)
+    , fCurCount(toCopy.fCurCount)
+    , fMaxCount(toCopy.fMaxCount)
+    , fElemList(0)
+    , fMemoryManager(toCopy.fMemoryManager)
+{
+    fElemList = (TElem*) fMemoryManager->allocate
+    (
+        fMaxCount * sizeof(TElem)
+    ); //new TElem[fMaxCount];
+
+    memset(fElemList, 0, fMaxCount * sizeof(TElem));
+    for (unsigned int index = 0; index < fCurCount; index++)
+        fElemList[index] = toCopy.fElemList[index];
+}
+
+template <class TElem> ValueVectorOf<TElem>::~ValueVectorOf()
+{
+    if (fCallDestructor) {
+        for (int index= fMaxCount - 1; index >= 0; index--)
+            fElemList[index].~TElem();
+    }
+    fMemoryManager->deallocate(fElemList); //delete [] fElemList;
+}
+
+
+
+// ---------------------------------------------------------------------------
+//  ValueVectorOf: Operators
+// ---------------------------------------------------------------------------
+template <class TElem> ValueVectorOf<TElem>&
+ValueVectorOf<TElem>::operator=(const ValueVectorOf<TElem>& toAssign)
+{
+    if (this == &toAssign)
+        return *this;
+
+    // Reallocate if required
+    if (fMaxCount < toAssign.fCurCount)
+    {
+        fMemoryManager->deallocate(fElemList); //delete [] fElemList;
+        fElemList = (TElem*) fMemoryManager->allocate
+        (
+            toAssign.fMaxCount * sizeof(TElem)
+        ); //new TElem[toAssign.fMaxCount];
+        fMaxCount = toAssign.fMaxCount;
+    }
+
+    fCurCount = toAssign.fCurCount;
+    for (unsigned int index = 0; index < fCurCount; index++)
+        fElemList[index] = toAssign.fElemList[index];
+
+    return *this;
+}
+
+
+// ---------------------------------------------------------------------------
+//  ValueVectorOf: Element management
+// ---------------------------------------------------------------------------
+template <class TElem> void ValueVectorOf<TElem>::addElement(const TElem& toAdd)
+{
+    ensureExtraCapacity(1);
+    fElemList[fCurCount] = toAdd;
+    fCurCount++;
+}
+
+template <class TElem> void ValueVectorOf<TElem>::
+setElementAt(const TElem& toSet, const unsigned int setAt)
+{
+    if (setAt >= fCurCount)
+        ThrowXMLwithMemMgr(ArrayIndexOutOfBoundsException, XMLExcepts::Vector_BadIndex, fMemoryManager);
+    fElemList[setAt] = toSet;
+}
+
+template <class TElem> void ValueVectorOf<TElem>::
+insertElementAt(const TElem& toInsert, const unsigned int insertAt)
+{
+    if (insertAt == fCurCount)
+    {
+        addElement(toInsert);
+        return;
+    }
+
+    if (insertAt > fCurCount)
+        ThrowXMLwithMemMgr(ArrayIndexOutOfBoundsException, XMLExcepts::Vector_BadIndex, fMemoryManager);
+
+    // Make room for the newbie
+    ensureExtraCapacity(1);
+    for (unsigned int index = fCurCount; index > insertAt; index--)
+        fElemList[index] = fElemList[index-1];
+
+    // And stick it in and bump the count
+    fElemList[insertAt] = toInsert;
+    fCurCount++;
+}
+
+template <class TElem> void ValueVectorOf<TElem>::
+removeElementAt(const unsigned int removeAt)
+{
+    if (removeAt >= fCurCount)
+        ThrowXMLwithMemMgr(ArrayIndexOutOfBoundsException, XMLExcepts::Vector_BadIndex, fMemoryManager);
+
+    if (removeAt == fCurCount-1)
+    {
+        fCurCount--;
+        return;
+    }
+
+    // Copy down every element above remove point
+    for (unsigned int index = removeAt; index < fCurCount-1; index++)
+        fElemList[index] = fElemList[index+1];
+
+    // And bump down count
+    fCurCount--;
+}
+
+template <class TElem> void ValueVectorOf<TElem>::removeAllElements()
+{
+    fCurCount = 0;
+}
+
+template <class TElem>
+bool ValueVectorOf<TElem>::containsElement(const TElem& toCheck,
+                                           const unsigned int startIndex) {
+
+    for (unsigned int i = startIndex; i < fCurCount; i++) {
+        if (fElemList[i] == toCheck) {
+            return true;
+        }
+    }
+
+    return false;
+}
+
+
+// ---------------------------------------------------------------------------
+//  ValueVectorOf: Getter methods
+// ---------------------------------------------------------------------------
+template <class TElem> const TElem& ValueVectorOf<TElem>::
+elementAt(const unsigned int getAt) const
+{
+    if (getAt >= fCurCount)
+        ThrowXMLwithMemMgr(ArrayIndexOutOfBoundsException, XMLExcepts::Vector_BadIndex, fMemoryManager);
+    return fElemList[getAt];
+}
+
+template <class TElem> TElem& ValueVectorOf<TElem>::
+elementAt(const unsigned int getAt)
+{
+    if (getAt >= fCurCount)
+        ThrowXMLwithMemMgr(ArrayIndexOutOfBoundsException, XMLExcepts::Vector_BadIndex, fMemoryManager);
+    return fElemList[getAt];
+}
+
+template <class TElem> unsigned int ValueVectorOf<TElem>::curCapacity() const
+{
+    return fMaxCount;
+}
+
+template <class TElem> unsigned int ValueVectorOf<TElem>::size() const
+{
+    return fCurCount;
+}
+
+template <class TElem>
+MemoryManager* ValueVectorOf<TElem>::getMemoryManager() const
+{
+    return fMemoryManager;
+}
+
+// ---------------------------------------------------------------------------
+//  ValueVectorOf: Miscellaneous
+// ---------------------------------------------------------------------------
+template <class TElem> void ValueVectorOf<TElem>::
+ensureExtraCapacity(const unsigned int length)
+{
+    unsigned int newMax = fCurCount + length;
+
+    if (newMax <= fMaxCount)
+        return;
+
+    // Avoid too many reallocations by expanding by a percentage
+    unsigned int minNewMax = (unsigned int)((double)fCurCount * 1.25);
+    if (newMax < minNewMax)
+        newMax = minNewMax;
+
+    TElem* newList = (TElem*) fMemoryManager->allocate
+    (
+        newMax * sizeof(TElem)
+    ); //new TElem[newMax];
+    for (unsigned int index = 0; index < fCurCount; index++)
+        newList[index] = fElemList[index];
+
+    fMemoryManager->deallocate(fElemList); //delete [] fElemList;
+    fElemList = newList;
+    fMaxCount = newMax;
+}
+
+template <class TElem> const TElem* ValueVectorOf<TElem>::rawData() const
+{
+    return fElemList;
+}
+
+
+
+// ---------------------------------------------------------------------------
+//  ValueVectorEnumerator: Constructors and Destructor
+// ---------------------------------------------------------------------------
+template <class TElem> ValueVectorEnumerator<TElem>::
+ValueVectorEnumerator(       ValueVectorOf<TElem>* const toEnum
+                     , const bool                        adopt) :
+    fAdopted(adopt)
+    , fCurIndex(0)
+    , fToEnum(toEnum)
+{
+}
+
+template <class TElem> ValueVectorEnumerator<TElem>::~ValueVectorEnumerator()
+{
+    if (fAdopted)
+        delete fToEnum;
+}
+
+
+// ---------------------------------------------------------------------------
+//  ValueVectorEnumerator: Enum interface
+// ---------------------------------------------------------------------------
+template <class TElem> bool
+ValueVectorEnumerator<TElem>::hasMoreElements() const
+{
+    if (fCurIndex >= fToEnum->size())
+        return false;
+    return true;
+}
+
+template <class TElem> TElem& ValueVectorEnumerator<TElem>::nextElement()
+{
+    return fToEnum->elementAt(fCurIndex++);
+}
+
+template <class TElem> void ValueVectorEnumerator<TElem>::Reset()
+{
+    fCurIndex = 0;
+}
+
+XERCES_CPP_NAMESPACE_END
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/XMLException.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/XMLException.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/XMLException.hpp	(revision 2674)
@@ -0,0 +1,282 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: XMLException.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(EXCEPTION_HPP)
+#define EXCEPTION_HPP
+
+#include <xercesc/util/XMemory.hpp>
+#include <xercesc/util/XMLExceptMsgs.hpp>
+#include <xercesc/util/XMLUni.hpp>
+#include <xercesc/framework/XMLErrorReporter.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+// ---------------------------------------------------------------------------
+//  This is the base class from which all the XML parser exceptions are
+//  derived. The virtual interface is very simple and most of the functionality
+//  is in this class.
+//
+//  Because all derivatives are EXACTLY the same except for the static
+//  string that is used to hold the name of the class, a macro is provided
+//  below via which they are all created.
+// ---------------------------------------------------------------------------
+class XMLUTIL_EXPORT XMLException : public XMemory
+{
+public:
+    // -----------------------------------------------------------------------
+    //  Virtual Destructor
+    // -----------------------------------------------------------------------
+    virtual ~XMLException();
+
+
+    // -----------------------------------------------------------------------
+    //  The XML exception virtual interface
+    // -----------------------------------------------------------------------
+    virtual const XMLCh* getType() const = 0;
+
+
+    // -----------------------------------------------------------------------
+    //  Getter methods
+    // -----------------------------------------------------------------------
+    XMLExcepts::Codes getCode() const;
+    const XMLCh* getMessage() const;
+    const char* getSrcFile() const;
+    unsigned int getSrcLine() const;
+    XMLErrorReporter::ErrTypes getErrorType() const;
+
+
+    // -----------------------------------------------------------------------
+    //  Setter methods
+    // -----------------------------------------------------------------------
+    void setPosition(const char* const file, const unsigned int line);
+
+
+    // -----------------------------------------------------------------------
+    //  Hidden constructors and operators
+    //
+    //  NOTE:   Technically, these should be protected, since this is a
+    //          base class that is never used directly. However, VC++ 6.0 will
+    //          fail to catch via a reference to base class if the ctors are
+    //          not public!! This seems to have been caused by the install
+    //          of IE 5.0.
+    // -----------------------------------------------------------------------
+    XMLException();
+    XMLException(const char* const srcFile, const unsigned int srcLine, MemoryManager* const memoryManager = 0);
+    XMLException(const XMLException& toCopy);
+    XMLException& operator=(const XMLException& toAssign);
+
+    // -----------------------------------------------------------------------
+    //  Notification that lazy data has been deleted
+    // -----------------------------------------------------------------------
+	static void reinitMsgMutex();
+
+	static void reinitMsgLoader();
+
+protected :
+    // -----------------------------------------------------------------------
+    //  Protected methods
+    // -----------------------------------------------------------------------
+    void loadExceptText
+    (
+        const   XMLExcepts::Codes toLoad
+    );
+    void loadExceptText
+    (
+        const   XMLExcepts::Codes toLoad
+        , const XMLCh* const        text1
+        , const XMLCh* const        text2 = 0
+        , const XMLCh* const        text3 = 0
+        , const XMLCh* const        text4 = 0
+    );
+    void loadExceptText
+    (
+        const   XMLExcepts::Codes toLoad
+        , const char* const         text1
+        , const char* const         text2 = 0
+        , const char* const         text3 = 0
+        , const char* const         text4 = 0
+    );
+
+
+private :
+    // -----------------------------------------------------------------------
+    //  Data members
+    //
+    //  fCode
+    //      The error code that this exception represents.
+    //
+    //  fSrcFile
+    //  fSrcLine
+    //      These are the file and line information from the source where the
+    //      exception was thrown from.
+    //
+    //  fMsg
+    //      The loaded message text for this exception.
+    // -----------------------------------------------------------------------
+    XMLExcepts::Codes       fCode;
+    char*                   fSrcFile;
+    unsigned int            fSrcLine;
+    XMLCh*                  fMsg;
+
+protected:
+    MemoryManager*          fMemoryManager;
+};
+
+// ---------------------------------------------------------------------------
+//  XMLException: Getter methods
+// ---------------------------------------------------------------------------
+inline XMLExcepts::Codes XMLException::getCode() const
+{
+    return fCode;
+}
+
+inline const XMLCh* XMLException::getMessage() const
+{
+    return fMsg;
+}
+
+inline const char* XMLException::getSrcFile() const
+{
+    if (!fSrcFile)
+        return "";
+    return fSrcFile;
+}
+
+inline unsigned int XMLException::getSrcLine() const
+{
+    return fSrcLine;
+}
+
+inline XMLErrorReporter::ErrTypes XMLException::getErrorType() const
+{
+   if ((fCode >= XMLExcepts::W_LowBounds) && (fCode <= XMLExcepts::W_HighBounds))
+       return XMLErrorReporter::ErrType_Warning;
+   else if ((fCode >= XMLExcepts::F_LowBounds) && (fCode <= XMLExcepts::F_HighBounds))
+        return XMLErrorReporter::ErrType_Fatal;
+   else if ((fCode >= XMLExcepts::E_LowBounds) && (fCode <= XMLExcepts::E_HighBounds))
+        return XMLErrorReporter::ErrType_Error;
+   return XMLErrorReporter::ErrTypes_Unknown;
+}
+
+// ---------------------------------------------------------------------------
+//  This macro is used to create derived classes. They are all identical
+//  except the name of the exception, so it crazy to type them in over and
+//  over.
+// ---------------------------------------------------------------------------
+#define MakeXMLException(theType, expKeyword) \
+class expKeyword theType : public XMLException \
+{ \
+public: \
+ \
+    theType(const   char* const         srcFile \
+            , const unsigned int        srcLine \
+            , const XMLExcepts::Codes toThrow \
+            , MemoryManager*            memoryManager = 0) : \
+        XMLException(srcFile, srcLine, memoryManager) \
+    { \
+        loadExceptText(toThrow); \
+    } \
+ \
+    theType(const theType& toCopy) : \
+ \
+        XMLException(toCopy) \
+    { \
+    } \
+  \
+    theType(const   char* const         srcFile \
+            , const unsigned int        srcLine \
+            , const XMLExcepts::Codes   toThrow \
+            , const XMLCh* const        text1 \
+            , const XMLCh* const        text2 = 0 \
+            , const XMLCh* const        text3 = 0 \
+            , const XMLCh* const        text4 = 0 \
+            , MemoryManager*            memoryManager = 0) : \
+        XMLException(srcFile, srcLine, memoryManager) \
+    { \
+        loadExceptText(toThrow, text1, text2, text3, text4); \
+    } \
+ \
+    theType(const   char* const         srcFile \
+            , const unsigned int        srcLine \
+            , const XMLExcepts::Codes   toThrow \
+            , const char* const         text1 \
+            , const char* const         text2 = 0 \
+            , const char* const         text3 = 0 \
+            , const char* const         text4 = 0 \
+            , MemoryManager*            memoryManager = 0) : \
+        XMLException(srcFile, srcLine, memoryManager) \
+    { \
+        loadExceptText(toThrow, text1, text2, text3, text4); \
+    } \
+ \
+    virtual ~theType() {} \
+ \
+    theType& operator=(const theType& toAssign) \
+    { \
+        XMLException::operator=(toAssign); \
+        return *this; \
+    } \
+ \
+    virtual XMLException* duplicate() const \
+    { \
+        return new (fMemoryManager) theType(*this); \
+    } \
+ \
+    virtual const XMLCh* getType() const \
+    { \
+        return XMLUni::fg##theType##_Name; \
+    } \
+ \
+private : \
+    theType(); \
+};
+
+
+
+// ---------------------------------------------------------------------------
+//  This macros is used to actually throw an exception. It is used in order
+//  to make sure that source code line/col info is stored correctly, and to
+//  give flexibility for other stuff in the future.
+// ---------------------------------------------------------------------------
+
+#define ThrowXML(type,code) throw type(__FILE__, __LINE__, code)
+
+#define ThrowXML1(type,code,p1) throw type(__FILE__, __LINE__, code, p1)
+
+#define ThrowXML2(type,code,p1,p2) throw type(__FILE__, __LINE__, code, p1, p2)
+
+#define ThrowXML3(type,code,p1,p2,p3) throw type(__FILE__, __LINE__, code, p1, p2, p3)
+
+#define ThrowXML4(type,code,p1,p2,p3,p4) throw type(__FILE__, __LINE__, code, p1, p2, p3, p4)
+
+#define ThrowXMLwithMemMgr(type,code,memMgr) throw type(__FILE__, __LINE__, code, memMgr)
+
+#define ThrowXMLwithMemMgr1(type,code,p1,memMgr) throw type(__FILE__, __LINE__, code, p1, 0, 0, 0, memMgr)
+
+#define ThrowXMLwithMemMgr2(type,code,p1,p2,memMgr) throw type(__FILE__, __LINE__, code, p1, p2, 0, 0, memMgr)
+
+#define ThrowXMLwithMemMgr3(type,code,p1,p2,p3,memMgr) throw type(__FILE__, __LINE__, code, p1, p2, p3, 0, memMgr)
+
+#define ThrowXMLwithMemMgr4(type,code,p1,p2,p3,p4,memMgr) throw type(__FILE__, __LINE__, code, p1, p2, p3, p4, memMgr)
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/UTFDataFormatException.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/UTFDataFormatException.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/UTFDataFormatException.hpp	(revision 2674)
@@ -0,0 +1,35 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: UTFDataFormatException.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(UTFDATAFORMATEXCEPTION_HPP)
+#define UTFDATAFORMATEXCEPTION_HPP
+
+
+#include <xercesc/util/XercesDefs.hpp>
+#include <xercesc/util/XMLException.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+MakeXMLException(UTFDataFormatException, XMLUTIL_EXPORT)
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/RefStackOf.c
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/RefStackOf.c	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/RefStackOf.c	(revision 2674)
@@ -0,0 +1,151 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: RefStackOf.c 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+// ---------------------------------------------------------------------------
+//  Includes
+// ---------------------------------------------------------------------------
+#if defined(XERCES_TMPLSINC)
+#include <xercesc/util/RefStackOf.hpp>
+#endif
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+// ---------------------------------------------------------------------------
+//  RefStackOf: Constructors and Destructor
+// ---------------------------------------------------------------------------
+template <class TElem>
+RefStackOf<TElem>::RefStackOf(const unsigned int initElems,
+                              const bool adoptElems,
+                              MemoryManager* const manager) :
+
+    fVector(initElems, adoptElems, manager)
+{
+}
+
+template <class TElem> RefStackOf<TElem>::~RefStackOf()
+{
+}
+
+
+// ---------------------------------------------------------------------------
+//  RefStackOf: Element management methods
+// ---------------------------------------------------------------------------
+template <class TElem> const TElem* RefStackOf<TElem>::
+elementAt(const unsigned int index) const
+{
+    if (index > fVector.size())
+        ThrowXMLwithMemMgr(ArrayIndexOutOfBoundsException, XMLExcepts::Stack_BadIndex, fVector.getMemoryManager());
+    return fVector.elementAt(index);
+}
+
+template <class TElem> void RefStackOf<TElem>::push(TElem* const toPush)
+{
+    fVector.addElement(toPush);
+}
+
+template <class TElem> const TElem* RefStackOf<TElem>::peek() const
+{
+    const int curSize = fVector.size();
+    if (curSize == 0)
+        ThrowXMLwithMemMgr(EmptyStackException, XMLExcepts::Stack_EmptyStack, fVector.getMemoryManager());
+
+    return fVector.elementAt(curSize-1);
+}
+
+template <class TElem> TElem* RefStackOf<TElem>::pop()
+{
+    const int curSize = fVector.size();
+    if (curSize == 0)
+        ThrowXMLwithMemMgr(EmptyStackException, XMLExcepts::Stack_EmptyStack, fVector.getMemoryManager());
+
+    // Orphan off the element from the last slot in the vector
+    return fVector.orphanElementAt(curSize-1);
+}
+
+template <class TElem> void RefStackOf<TElem>::removeAllElements()
+{
+    fVector.removeAllElements();
+}
+
+
+// ---------------------------------------------------------------------------
+//  RefStackOf: Getter methods
+// ---------------------------------------------------------------------------
+template <class TElem> bool RefStackOf<TElem>::empty()
+{
+    return (fVector.size() == 0);
+}
+
+template <class TElem> unsigned int RefStackOf<TElem>::curCapacity()
+{
+    return fVector.curCapacity();
+}
+
+template <class TElem> unsigned int RefStackOf<TElem>::size()
+{
+    return fVector.size();
+}
+
+
+
+
+// ---------------------------------------------------------------------------
+//  RefStackEnumerator: Constructors and Destructor
+// ---------------------------------------------------------------------------
+template <class TElem> RefStackEnumerator<TElem>::
+RefStackEnumerator(         RefStackOf<TElem>* const    toEnum
+                    , const bool                        adopt) :
+    fAdopted(adopt)
+    , fCurIndex(0)
+    , fToEnum(toEnum)
+    , fVector(&toEnum->fVector)
+{
+}
+
+template <class TElem> RefStackEnumerator<TElem>::~RefStackEnumerator()
+{
+    if (fAdopted)
+        delete fToEnum;
+}
+
+
+// ---------------------------------------------------------------------------
+//  RefStackEnumerator: Enum interface
+// ---------------------------------------------------------------------------
+template <class TElem> bool RefStackEnumerator<TElem>::hasMoreElements() const
+{
+    if (fCurIndex >= fVector->size())
+        return false;
+    return true;
+}
+
+template <class TElem> TElem& RefStackEnumerator<TElem>::nextElement()
+{
+    return *fVector->elementAt(fCurIndex++);
+}
+
+template <class TElem> void RefStackEnumerator<TElem>::Reset()
+{
+    fCurIndex = 0;
+}
+
+XERCES_CPP_NAMESPACE_END
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/XMLURL.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/XMLURL.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/XMLURL.hpp	(revision 2674)
@@ -0,0 +1,292 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: XMLURL.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(XMLURL_HPP)
+#define XMLURL_HPP
+
+#include <xercesc/util/PlatformUtils.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class BinInputStream;
+
+//
+//  This class supports file, http, and ftp style URLs. All others are
+//  rejected
+//
+class XMLUTIL_EXPORT XMLURL : public XMemory
+{
+public:
+    // -----------------------------------------------------------------------
+    //  Class types
+    //
+    //  And they must remain in this order because they are indexes into an
+    //  array internally!
+    // -----------------------------------------------------------------------
+    enum Protocols
+    {
+        File
+        , HTTP
+        , FTP
+        , HTTPS
+
+        , Protocols_Count
+        , Unknown
+    };
+
+
+    // -----------------------------------------------------------------------
+    //  Public static methods
+    // -----------------------------------------------------------------------
+    static Protocols lookupByName(const XMLCh* const protoName);
+    static bool parse(const XMLCh* const urlText, XMLURL& xmlURL);
+
+    // -----------------------------------------------------------------------
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+    XMLURL(MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+    XMLURL
+    (
+        const   XMLCh* const    baseURL
+        , const XMLCh* const    relativeURL
+        , MemoryManager* const manager  = XMLPlatformUtils::fgMemoryManager
+    );
+    XMLURL
+    (
+        const   XMLCh* const    baseURL
+        , const char* const     relativeURL
+        , MemoryManager* const manager  = XMLPlatformUtils::fgMemoryManager
+    );
+    XMLURL
+    (
+        const   XMLURL&         baseURL
+        , const XMLCh* const    relativeURL
+    );
+    XMLURL
+    (
+        const   XMLURL&         baseURL
+        , const char* const     relativeURL
+    );
+    XMLURL
+    (
+        const   XMLCh* const    urlText
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+    XMLURL
+    (
+        const   char* const     urlText
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+    XMLURL(const XMLURL& toCopy);
+    virtual ~XMLURL();
+
+
+    // -----------------------------------------------------------------------
+    //  Operators
+    // -----------------------------------------------------------------------
+    XMLURL& operator=(const XMLURL& toAssign);
+    bool operator==(const XMLURL& toCompare) const;
+    bool operator!=(const XMLURL& toCompare) const;
+
+
+    // -----------------------------------------------------------------------
+    //  Getter methods
+    // -----------------------------------------------------------------------
+    const XMLCh* getFragment() const;
+    const XMLCh* getHost() const;
+    const XMLCh* getPassword() const;
+    const XMLCh* getPath() const;
+    unsigned int getPortNum() const;
+    Protocols getProtocol() const;
+    const XMLCh* getProtocolName() const;
+    const XMLCh* getQuery() const;
+    const XMLCh* getURLText() const;
+    const XMLCh* getUser() const;
+    MemoryManager* getMemoryManager() const;
+
+
+    // -----------------------------------------------------------------------
+    //  Setter methods
+    // -----------------------------------------------------------------------
+    void setURL(const XMLCh* const urlText);
+    void setURL
+    (
+        const   XMLCh* const    baseURL
+        , const XMLCh* const    relativeURL
+    );
+    void setURL
+    (
+        const   XMLURL&         baseURL
+        , const XMLCh* const    relativeURL
+    );
+    // a version of setURL that doesn't throw malformed url exceptions
+    bool setURL(
+        const XMLCh* const    baseURL
+        , const XMLCh* const    relativeURL
+        , XMLURL& xmlURL);
+    // -----------------------------------------------------------------------
+    //  Miscellaneous methods
+    // -----------------------------------------------------------------------
+    bool isRelative() const;
+    bool hasInvalidChar() const;
+    BinInputStream* makeNewStream() const;
+    void makeRelativeTo(const XMLCh* const baseURLText);
+    void makeRelativeTo(const XMLURL& baseURL);
+
+
+private:
+    // -----------------------------------------------------------------------
+    //  Private helper methods
+    // -----------------------------------------------------------------------
+    void buildFullText();
+    void cleanUp();
+    bool conglomerateWithBase(const XMLURL& baseURL, bool useExceptions=true);
+    void parse
+    (
+        const   XMLCh* const    urlText
+    );
+
+
+    // -----------------------------------------------------------------------
+    //  Data members
+    //
+    //  fFragment
+    //      The fragment part of the URL, if any. If none, its a null.
+    //
+    //  fHost
+    //      The host part of the URL that was parsed out. This one will often
+    //      be null (or "localhost", which also means the current machine.)
+    //
+    //  fPassword
+    //      The password found, if any. If none then its a null.
+    //
+    //  fPath
+    //      The path part of the URL that was parsed out, if any. If none,
+    //      then its a null.
+    //
+    //  fPortNum
+    //      The port that was indicated in the URL. If no port was provided
+    //      explicitly, then its left zero.
+    //
+    //  fProtocol
+    //      Indicates the type of the URL's source. The text of the prefix
+    //      can be gotten from this.
+    //
+    //  fQuery
+    //      The query part of the URL, if any. If none, then its a null.
+    //
+    //  fUser
+    //      The username found, if any. If none, then its a null.
+    //
+    //  fURLText
+    //      This is a copy of the URL text, after it has been taken apart,
+    //      made relative if needed, canonicalized, and then put back
+    //      together. Its only created upon demand.
+    //
+    //  fHasInvalidChar
+    //      This indicates if the URL Text contains invalid characters as per
+    //      RFC 2396 standard.
+    // -----------------------------------------------------------------------
+    MemoryManager*  fMemoryManager;
+    XMLCh*          fFragment;
+    XMLCh*          fHost;
+    XMLCh*          fPassword;
+    XMLCh*          fPath;
+    unsigned int    fPortNum;
+    Protocols       fProtocol;
+    XMLCh*          fQuery;
+    XMLCh*          fUser;
+    XMLCh*          fURLText;
+    bool            fHasInvalidChar;
+};
+
+
+// ---------------------------------------------------------------------------
+//  XMLURL: Public operators
+// ---------------------------------------------------------------------------
+inline bool XMLURL::operator!=(const XMLURL& toCompare) const
+{
+    return !operator==(toCompare);
+}
+
+
+// ---------------------------------------------------------------------------
+//  XMLURL: Getter methods
+// ---------------------------------------------------------------------------
+inline const XMLCh* XMLURL::getFragment() const
+{
+    return fFragment;
+}
+
+inline const XMLCh* XMLURL::getHost() const
+{
+    return fHost;
+}
+
+inline const XMLCh* XMLURL::getPassword() const
+{
+    return fPassword;
+}
+
+inline const XMLCh* XMLURL::getPath() const
+{
+    return fPath;
+}
+
+inline XMLURL::Protocols XMLURL::getProtocol() const
+{
+    return fProtocol;
+}
+
+inline const XMLCh* XMLURL::getQuery() const
+{
+    return fQuery;
+}
+
+inline const XMLCh* XMLURL::getUser() const
+{
+    return fUser;
+}
+
+inline const XMLCh* XMLURL::getURLText() const
+{
+    //
+    //  Fault it in if not already. Since this is a const method and we
+    //  can't use mutable members due the compilers we have to support,
+    //  we have to cast off the constness.
+    //
+    if (!fURLText)
+        ((XMLURL*)this)->buildFullText();
+
+    return fURLText;
+}
+
+inline MemoryManager* XMLURL::getMemoryManager() const
+{
+    return fMemoryManager;
+}
+
+MakeXMLException(MalformedURLException, XMLUTIL_EXPORT)
+
+XERCES_CPP_NAMESPACE_END
+
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/IOException.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/IOException.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/IOException.hpp	(revision 2674)
@@ -0,0 +1,35 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: IOException.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+#if !defined(IOEXCEPTION_HPP)
+#define IOEXCEPTION_HPP
+
+#include <xercesc/util/XercesDefs.hpp>
+#include <xercesc/util/XMLException.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+MakeXMLException(IOException, XMLUTIL_EXPORT)
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/RefHash2KeysTableOf.c
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/RefHash2KeysTableOf.c	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/RefHash2KeysTableOf.c	(revision 2674)
@@ -0,0 +1,656 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: RefHash2KeysTableOf.c 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+// ---------------------------------------------------------------------------
+//  Include
+// ---------------------------------------------------------------------------
+#if defined(XERCES_TMPLSINC)
+#include <xercesc/util/RefHash2KeysTableOf.hpp>
+#endif
+
+#include <xercesc/util/Janitor.hpp>
+#include <xercesc/util/NullPointerException.hpp>
+#include <assert.h>
+#include <new>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+// ---------------------------------------------------------------------------
+//  RefHash2KeysTableOf: Constructors and Destructor
+// ---------------------------------------------------------------------------
+template <class TVal>
+RefHash2KeysTableOf<TVal>::RefHash2KeysTableOf( const unsigned int   modulus
+                                              , const bool           adoptElems
+                                              , MemoryManager* const manager)
+    : fMemoryManager(manager)
+	, fAdoptedElems(adoptElems)
+    , fBucketList(0)
+    , fHashModulus(modulus)
+    , fCount(0)
+    , fHash(0)
+{
+    initialize(modulus);
+	
+	// create default hasher
+	fHash = new (fMemoryManager) HashXMLCh();
+}
+
+template <class TVal>
+RefHash2KeysTableOf<TVal>::RefHash2KeysTableOf( const unsigned int   modulus
+                                              , const bool           adoptElems
+                                              , HashBase*            hashBase
+                                              , MemoryManager* const manager)
+	: fMemoryManager(manager)
+    , fAdoptedElems(adoptElems)
+    , fBucketList(0)
+    , fHashModulus(modulus)
+    , fCount(0)
+    , fHash(0)
+{
+	initialize(modulus);
+	// set hasher
+	fHash = hashBase;
+}
+
+template <class TVal>
+RefHash2KeysTableOf<TVal>::RefHash2KeysTableOf(const unsigned int modulus,
+                                               MemoryManager* const manager)
+	: fMemoryManager(manager)
+    , fAdoptedElems(true)
+    , fBucketList(0)
+    , fHashModulus(modulus)
+    , fCount(0)
+    , fHash(0)
+{
+	initialize(modulus);
+
+	// create default hasher
+	fHash = new (fMemoryManager) HashXMLCh();
+}
+
+template <class TVal>
+void RefHash2KeysTableOf<TVal>::initialize(const unsigned int modulus)
+{
+	if (modulus == 0)
+        ThrowXMLwithMemMgr(IllegalArgumentException, XMLExcepts::HshTbl_ZeroModulus, fMemoryManager);
+
+    // Allocate the bucket list and zero them
+    fBucketList = (RefHash2KeysTableBucketElem<TVal>**) fMemoryManager->allocate
+    (
+        fHashModulus * sizeof(RefHash2KeysTableBucketElem<TVal>*)
+    ); //new RefHash2KeysTableBucketElem<TVal>*[fHashModulus];
+    memset(fBucketList, 0, sizeof(fBucketList[0]) * fHashModulus);
+}
+
+template <class TVal> RefHash2KeysTableOf<TVal>::~RefHash2KeysTableOf()
+{
+    removeAll();
+
+    // Then delete the bucket list & hasher
+    fMemoryManager->deallocate(fBucketList); //delete [] fBucketList;
+	delete fHash;
+}
+
+
+// ---------------------------------------------------------------------------
+//  RefHash2KeysTableOf: Element management
+// ---------------------------------------------------------------------------
+template <class TVal> bool RefHash2KeysTableOf<TVal>::isEmpty() const
+{
+    return (fCount==0);
+}
+
+template <class TVal> bool RefHash2KeysTableOf<TVal>::
+containsKey(const void* const key1, const int key2) const
+{
+    unsigned int hashVal;
+    const RefHash2KeysTableBucketElem<TVal>* findIt = findBucketElem(key1, key2, hashVal);
+    return (findIt != 0);
+}
+
+template <class TVal> void RefHash2KeysTableOf<TVal>::
+removeKey(const void* const key1, const int key2)
+{
+    // Hash the key
+    unsigned int hashVal = fHash->getHashVal(key1, fHashModulus);
+    assert(hashVal < fHashModulus);
+
+    //
+    //  Search the given bucket for this key. Keep up with the previous
+    //  element so we can patch around it.
+    //
+    RefHash2KeysTableBucketElem<TVal>* curElem = fBucketList[hashVal];
+    RefHash2KeysTableBucketElem<TVal>* lastElem = 0;
+
+    while (curElem)
+    {
+        if (fHash->equals(key1, curElem->fKey1) && (key2==curElem->fKey2))
+        {
+            if (!lastElem)
+            {
+                // It was the first in the bucket
+                fBucketList[hashVal] = curElem->fNext;
+            }
+            else
+            {
+                // Patch around the current element
+                lastElem->fNext = curElem->fNext;
+            }
+
+            // If we adopted the elements, then delete the data
+            if (fAdoptedElems)
+                delete curElem->fData;
+
+            // Delete the current element
+            // delete curElem;
+            // destructor is empty...
+            // curElem->~RefHash2KeysTableBucketElem();
+            fMemoryManager->deallocate(curElem);            
+            fCount--;
+            return;
+        }
+
+        // Move both pointers upwards
+        lastElem = curElem;
+        curElem = curElem->fNext;
+    }
+
+    // We never found that key
+    ThrowXMLwithMemMgr(NoSuchElementException, XMLExcepts::HshTbl_NoSuchKeyExists, fMemoryManager);
+}
+
+template <class TVal> void RefHash2KeysTableOf<TVal>::
+removeKey(const void* const key1)
+{
+    // Hash the key
+    unsigned int hashVal = fHash->getHashVal(key1, fHashModulus);
+    assert(hashVal < fHashModulus);
+
+    //
+    //  Search the given bucket for this key. Keep up with the previous
+    //  element so we can patch around it.
+    //
+    RefHash2KeysTableBucketElem<TVal>* curElem = fBucketList[hashVal];
+    RefHash2KeysTableBucketElem<TVal>* lastElem = 0;
+
+    while (curElem)
+    {
+        if (fHash->equals(key1, curElem->fKey1))
+        {
+            if (!lastElem)
+            {
+                // It was the first in the bucket
+                fBucketList[hashVal] = curElem->fNext;
+            }
+            else
+            {
+                // Patch around the current element
+                lastElem->fNext = curElem->fNext;
+            }
+
+            // If we adopted the elements, then delete the data
+            if (fAdoptedElems)
+                delete curElem->fData;
+
+            RefHash2KeysTableBucketElem<TVal>* toBeDeleted=curElem;
+            curElem = curElem->fNext;
+
+            // Delete the current element
+            // delete curElem;
+            // destructor is empty...
+            // curElem->~RefHash2KeysTableBucketElem();
+            fMemoryManager->deallocate(toBeDeleted);
+            fCount--;
+        }
+        else
+        {
+            // Move both pointers upwards
+            lastElem = curElem;
+            curElem = curElem->fNext;
+        }
+    }
+}
+
+template <class TVal> void RefHash2KeysTableOf<TVal>::removeAll()
+{
+    if(isEmpty())
+        return;
+
+    // Clean up the buckets first
+    for (unsigned int buckInd = 0; buckInd < fHashModulus; buckInd++)
+    {
+        // Get the bucket list head for this entry
+        RefHash2KeysTableBucketElem<TVal>* curElem = fBucketList[buckInd];
+        RefHash2KeysTableBucketElem<TVal>* nextElem;
+        while (curElem)
+        {
+            // Save the next element before we hose this one
+            nextElem = curElem->fNext;
+
+            // If we adopted the data, then delete it too
+            //    (Note:  the userdata hash table instance has data type of void *.
+            //    This will generate compiler warnings here on some platforms, but they
+            //    can be ignored since fAdoptedElements is false.
+            if (fAdoptedElems)
+                delete curElem->fData;
+
+            // Then delete the current element and move forward
+            // destructor is empty...
+            // curElem->~RefHash2KeysTableBucketElem();
+            fMemoryManager->deallocate(curElem);
+            curElem = nextElem;
+        }
+
+        // Clean out this entry
+        fBucketList[buckInd] = 0;
+    }
+    fCount=0;
+}
+
+// this function transfer the data from key1 to key2
+template <class TVal> void RefHash2KeysTableOf<TVal>::transferElement(const void* const key1, void* key2)
+{
+    // Hash the key
+    unsigned int hashVal = fHash->getHashVal(key1, fHashModulus);
+    assert(hashVal < fHashModulus);
+
+    //
+    //  Search the given bucket for this key. Keep up with the previous
+    //  element so we can patch around it.
+    //
+    RefHash2KeysTableBucketElem<TVal>* curElem = fBucketList[hashVal];
+    RefHash2KeysTableBucketElem<TVal>* lastElem = 0;
+
+    while (curElem)
+    {
+        // if this element has the same primary key, remove it and add it using the new primary key
+        if (fHash->equals(key1, curElem->fKey1))
+        {
+            if (!lastElem)
+            {
+                // It was the first in the bucket
+                fBucketList[hashVal] = curElem->fNext;
+            }
+            else
+            {
+                // Patch around the current element
+                lastElem->fNext = curElem->fNext;
+            }
+
+            // this code comes from put(), but it doesn't update fCount
+            unsigned int hashVal2;
+            RefHash2KeysTableBucketElem<TVal>* newBucket = findBucketElem(key2, curElem->fKey2, hashVal2);
+            if (newBucket)
+            {
+                if (fAdoptedElems)
+                    delete newBucket->fData;
+                newBucket->fData = curElem->fData;
+		        newBucket->fKey1 = key2;
+		        newBucket->fKey2 = curElem->fKey2;
+            }
+             else
+            {
+                newBucket =
+                    new (fMemoryManager->allocate(sizeof(RefHash2KeysTableBucketElem<TVal>)))
+                    RefHash2KeysTableBucketElem<TVal>(key2, curElem->fKey2, curElem->fData, fBucketList[hashVal2]);
+                fBucketList[hashVal2] = newBucket;
+            }
+
+            RefHash2KeysTableBucketElem<TVal>* elemToDelete = curElem;
+            
+            // Update just curElem; lastElem must stay the same
+            curElem = curElem->fNext;
+
+            // Delete the current element
+            // delete elemToDelete;
+            // destructor is empty...
+            // curElem->~RefHash2KeysTableBucketElem();
+            fMemoryManager->deallocate(elemToDelete);
+        }
+        else
+        {
+            // Move both pointers upwards
+            lastElem = curElem;
+            curElem = curElem->fNext;
+        }
+    }
+}
+
+
+
+// ---------------------------------------------------------------------------
+//  RefHash2KeysTableOf: Getters
+// ---------------------------------------------------------------------------
+template <class TVal> TVal* RefHash2KeysTableOf<TVal>::get(const void* const key1, const int key2)
+{
+    unsigned int hashVal;
+    RefHash2KeysTableBucketElem<TVal>* findIt = findBucketElem(key1, key2, hashVal);
+    if (!findIt)
+        return 0;
+    return findIt->fData;
+}
+
+template <class TVal> const TVal* RefHash2KeysTableOf<TVal>::
+get(const void* const key1, const int key2) const
+{
+    unsigned int hashVal;
+    const RefHash2KeysTableBucketElem<TVal>* findIt = findBucketElem(key1, key2, hashVal);
+    if (!findIt)
+        return 0;
+    return findIt->fData;
+}
+
+template <class TVal>
+MemoryManager* RefHash2KeysTableOf<TVal>::getMemoryManager() const
+{
+    return fMemoryManager;
+}
+
+template <class TVal>
+unsigned int RefHash2KeysTableOf<TVal>::getHashModulus() const
+{
+    return fHashModulus;
+}
+
+// ---------------------------------------------------------------------------
+//  RefHash2KeysTableOf: Putters
+// ---------------------------------------------------------------------------
+template <class TVal> void RefHash2KeysTableOf<TVal>::put(void* key1, int key2, TVal* const valueToAdopt)
+{
+    // Apply 4 load factor to find threshold.
+    unsigned int threshold = fHashModulus * 4;
+    
+    // If we've grown too big, expand the table and rehash.
+    if (fCount >= threshold)
+        rehash();
+
+    // First see if the key exists already
+    unsigned int hashVal;
+    RefHash2KeysTableBucketElem<TVal>* newBucket = findBucketElem(key1, key2, hashVal);
+
+    //
+    //  If so,then update its value. If not, then we need to add it to
+    //  the right bucket
+    //
+    if (newBucket)
+    {
+        if (fAdoptedElems)
+            delete newBucket->fData;
+        newBucket->fData = valueToAdopt;
+		newBucket->fKey1 = key1;
+		newBucket->fKey2 = key2;
+    }
+     else
+    {
+        newBucket =
+            new (fMemoryManager->allocate(sizeof(RefHash2KeysTableBucketElem<TVal>)))
+            RefHash2KeysTableBucketElem<TVal>(key1, key2, valueToAdopt, fBucketList[hashVal]);
+        fBucketList[hashVal] = newBucket;
+        fCount++;
+    }
+}
+
+
+
+// ---------------------------------------------------------------------------
+//  RefHash2KeysTableOf: Private methods
+// ---------------------------------------------------------------------------
+template <class TVal> RefHash2KeysTableBucketElem<TVal>* RefHash2KeysTableOf<TVal>::
+findBucketElem(const void* const key1, const int key2, unsigned int& hashVal)
+{
+    // Hash the key
+    hashVal = fHash->getHashVal(key1, fHashModulus, fMemoryManager);
+    assert(hashVal < fHashModulus);
+
+    // Search that bucket for the key
+    RefHash2KeysTableBucketElem<TVal>* curElem = fBucketList[hashVal];
+    while (curElem)
+    {
+		if (key2==curElem->fKey2 && fHash->equals(key1, curElem->fKey1))
+            return curElem;
+
+        curElem = curElem->fNext;
+    }
+    return 0;
+}
+
+template <class TVal> const RefHash2KeysTableBucketElem<TVal>* RefHash2KeysTableOf<TVal>::
+findBucketElem(const void* const key1, const int key2, unsigned int& hashVal) const
+{
+    // Hash the key
+    hashVal = fHash->getHashVal(key1, fHashModulus, fMemoryManager);
+    assert(hashVal < fHashModulus);
+
+    // Search that bucket for the key
+    const RefHash2KeysTableBucketElem<TVal>* curElem = fBucketList[hashVal];
+    while (curElem)
+    {
+        if (fHash->equals(key1, curElem->fKey1) && (key2==curElem->fKey2))
+            return curElem;
+
+        curElem = curElem->fNext;
+    }
+    return 0;
+}
+
+
+template <class TVal> void RefHash2KeysTableOf<TVal>::
+rehash()
+{
+    const unsigned int newMod = (fHashModulus * 8)+1;
+
+    RefHash2KeysTableBucketElem<TVal>** newBucketList =
+        (RefHash2KeysTableBucketElem<TVal>**) fMemoryManager->allocate
+    (
+        newMod * sizeof(RefHash2KeysTableBucketElem<TVal>*)
+    );//new RefHash2KeysTableBucketElem<TVal>*[fHashModulus];
+
+    // Make sure the new bucket list is destroyed if an
+    // exception is thrown.
+    ArrayJanitor<RefHash2KeysTableBucketElem<TVal>*>  guard(newBucketList, fMemoryManager);
+
+    memset(newBucketList, 0, newMod * sizeof(newBucketList[0]));
+
+    // Rehash all existing entries.
+    for (unsigned int index = 0; index < fHashModulus; index++)
+    {
+        // Get the bucket list head for this entry
+        RefHash2KeysTableBucketElem<TVal>* curElem = fBucketList[index];
+        while (curElem)
+        {
+            // Save the next element before we detach this one
+            RefHash2KeysTableBucketElem<TVal>* nextElem = curElem->fNext;
+
+            const unsigned int hashVal = fHash->getHashVal(curElem->fKey1, newMod, fMemoryManager);
+            assert(hashVal < newMod);
+            
+            RefHash2KeysTableBucketElem<TVal>* newHeadElem = newBucketList[hashVal];
+            
+            // Insert at the start of this bucket's list.
+            curElem->fNext = newHeadElem;
+            newBucketList[hashVal] = curElem;
+            
+            curElem = nextElem;
+        }
+    }
+            
+    RefHash2KeysTableBucketElem<TVal>** const oldBucketList = fBucketList;
+
+    // Everything is OK at this point, so update the
+    // member variables.
+    fBucketList = guard.release();
+    fHashModulus = newMod;
+
+    // Delete the old bucket list.
+    fMemoryManager->deallocate(oldBucketList);//delete[] oldBucketList;
+    
+}
+
+
+
+// ---------------------------------------------------------------------------
+//  RefHash2KeysTableOfEnumerator: Constructors and Destructor
+// ---------------------------------------------------------------------------
+template <class TVal> RefHash2KeysTableOfEnumerator<TVal>::
+RefHash2KeysTableOfEnumerator(RefHash2KeysTableOf<TVal>* const toEnum
+                              , const bool adopt
+                              , MemoryManager* const manager)
+	: fAdopted(adopt), fCurElem(0), fCurHash((unsigned int)-1), fToEnum(toEnum)
+    , fMemoryManager(manager)
+    , fLockPrimaryKey(0)
+{
+    if (!toEnum)
+        ThrowXMLwithMemMgr(NullPointerException, XMLExcepts::CPtr_PointerIsZero, fMemoryManager);
+
+    //
+    //  Find the next available bucket element in the hash table. If it
+    //  comes back zero, that just means the table is empty.
+    //
+    //  Note that the -1 in the current hash tells it to start from the
+    //  beginning.
+    //
+    findNext();
+}
+
+template <class TVal> RefHash2KeysTableOfEnumerator<TVal>::~RefHash2KeysTableOfEnumerator()
+{
+    if (fAdopted)
+        delete fToEnum;
+}
+
+
+// ---------------------------------------------------------------------------
+//  RefHash2KeysTableOfEnumerator: Enum interface
+// ---------------------------------------------------------------------------
+template <class TVal> bool RefHash2KeysTableOfEnumerator<TVal>::hasMoreElements() const
+{
+    //
+    //  If our current has is at the max and there are no more elements
+    //  in the current bucket, then no more elements.
+    //
+    if (!fCurElem && (fCurHash == fToEnum->fHashModulus))
+        return false;
+    return true;
+}
+
+template <class TVal> TVal& RefHash2KeysTableOfEnumerator<TVal>::nextElement()
+{
+    // Make sure we have an element to return
+    if (!hasMoreElements())
+        ThrowXMLwithMemMgr(NoSuchElementException, XMLExcepts::Enum_NoMoreElements, fMemoryManager);
+
+    //
+    //  Save the current element, then move up to the next one for the
+    //  next time around.
+    //
+    RefHash2KeysTableBucketElem<TVal>* saveElem = fCurElem;
+    findNext();
+
+    return *saveElem->fData;
+}
+
+template <class TVal> void RefHash2KeysTableOfEnumerator<TVal>::nextElementKey(void*& retKey1, int& retKey2)
+{
+    // Make sure we have an element to return
+    if (!hasMoreElements())
+        ThrowXMLwithMemMgr(NoSuchElementException, XMLExcepts::Enum_NoMoreElements, fMemoryManager);
+
+    //
+    //  Save the current element, then move up to the next one for the
+    //  next time around.
+    //
+    RefHash2KeysTableBucketElem<TVal>* saveElem = fCurElem;
+    findNext();
+
+    retKey1 = saveElem->fKey1;
+    retKey2 = saveElem->fKey2;
+
+    return;
+}
+
+template <class TVal> void RefHash2KeysTableOfEnumerator<TVal>::Reset()
+{
+    if(fLockPrimaryKey)
+        fCurHash=fToEnum->fHash->getHashVal(fLockPrimaryKey, fToEnum->fHashModulus, fMemoryManager);
+    else
+        fCurHash = (unsigned int)-1;
+    fCurElem = 0;
+    findNext();
+}
+
+
+template <class TVal> void RefHash2KeysTableOfEnumerator<TVal>::setPrimaryKey(const void* key)
+{
+    fLockPrimaryKey=key;
+    Reset();
+}
+
+// ---------------------------------------------------------------------------
+//  RefHash2KeysTableOfEnumerator: Private helper methods
+// ---------------------------------------------------------------------------
+template <class TVal> void RefHash2KeysTableOfEnumerator<TVal>::findNext()
+{
+    //  Code to execute if we have to return only values with the primary key
+    if(fLockPrimaryKey)
+    {
+        if(!fCurElem)
+            fCurElem = fToEnum->fBucketList[fCurHash];
+        else
+            fCurElem = fCurElem->fNext;
+        while (fCurElem && !fToEnum->fHash->equals(fLockPrimaryKey, fCurElem->fKey1) )
+            fCurElem = fCurElem->fNext;
+        // if we didn't found it, make so hasMoreElements() returns false
+        if(!fCurElem)
+            fCurHash = fToEnum->fHashModulus;
+        return;
+    }
+    //
+    //  If there is a current element, move to its next element. If this
+    //  hits the end of the bucket, the next block will handle the rest.
+    //
+    if (fCurElem)
+        fCurElem = fCurElem->fNext;
+
+    //
+    //  If the current element is null, then we have to move up to the
+    //  next hash value. If that is the hash modulus, then we cannot
+    //  go further.
+    //
+    if (!fCurElem)
+    {
+        fCurHash++;
+        if (fCurHash == fToEnum->fHashModulus)
+            return;
+
+        // Else find the next non-empty bucket
+        while (fToEnum->fBucketList[fCurHash]==0)
+        {
+            // Bump to the next hash value. If we max out return
+            fCurHash++;
+            if (fCurHash == fToEnum->fHashModulus)
+                return;
+        }
+        fCurElem = fToEnum->fBucketList[fCurHash];
+    }
+}
+
+XERCES_CPP_NAMESPACE_END
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/XMLString.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/XMLString.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/XMLString.hpp	(revision 2674)
@@ -0,0 +1,1602 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: XMLString.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(XMLSTRING_HPP)
+#define XMLSTRING_HPP
+
+#include <xercesc/util/BaseRefVectorOf.hpp>
+#include <xercesc/framework/XMLBuffer.hpp>
+#include <xercesc/framework/MemoryManager.hpp>
+#include <string.h>
+#include <assert.h>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class XMLLCPTranscoder;
+/**
+  * Class for representing native character strings and handling common string
+  * operations
+  *
+  * This class is Unicode compliant. This class is designed primarily
+  * for internal use, but due to popular demand, it is being made
+  * publicly available. Users of this class must understand that this
+  * is not an officially supported class. All public methods of this
+  * class are <i>static functions</i>.
+  *
+  */
+class XMLUTIL_EXPORT XMLString
+{
+public:
+    /* Static methods for native character mode string manipulation */
+
+
+    /** @name String concatenation functions */
+    //@{
+    /** Concatenates two strings.
+      *
+      * <code>catString</code> appends <code>src</code> to <code>target</code> and
+      * terminates the resulting string with a null character. The initial character
+      * of <code>src</code> overwrites the terminating character of <code>target
+      * </code>.
+      *
+      * No overflow checking is performed when strings are copied or appended.
+      * The behavior of <code>catString</code> is undefined if source and
+      * destination strings overlap.
+      *
+      * @param target Null-terminated destination string
+      * @param src Null-terminated source string
+      */
+    static void catString
+    (
+                char* const     target
+        , const char* const     src
+    );
+
+    /** Concatenates two strings.
+      *
+      * <code>catString</code> appends <code>src</code> to <code>target</code> and
+      * terminates the resulting string with a null character. The initial character of
+      * <code>src</code> overwrites the terminating character of <code>target</code>.
+      * No overflow checking is performed when strings are copied or appended.
+      * The behavior of <code>catString</code> is undefined if source and destination
+      * strings overlap.
+      *
+      * @param target Null-terminated destination string
+      * @param src Null-terminated source string
+      */
+    static void catString
+    (
+                XMLCh* const    target
+        , const XMLCh* const    src
+    );
+    //@}
+
+    /** @name String comparison functions */
+    //@{
+    /** Lexicographically compares lowercase versions of <code>str1</code> and
+      * <code>str2</code> and returns a value indicating their relationship.
+      * @param str1 Null-terminated string to compare
+      * @param str2 Null-terminated string to compare
+      *
+      * @return The return value indicates the relation of <code>str1</code> to
+      * <code>str2</code> as follows
+      *  Less than 0 means <code>str1</code> is less than <code>str2</code>
+      *  Equal to 0 means <code>str1</code> is identical to <code>str2</code>
+      *  Greater than 0 means <code>str1</code> is more than <code>str2</code>
+      */
+    static int compareIString
+    (
+        const   char* const     str1
+        , const char* const     str2
+    );
+
+    /** Lexicographically compares lowercase versions of <code>str1</code> and
+      * <code>str2</code> and returns a value indicating their relationship.
+      * @param str1 Null-terminated string to compare
+      * @param str2 Null-terminated string to compare
+      * @return The return value indicates the relation of <code>str1</code> to
+      * <code>str2</code> as follows
+      *  Less than 0 means <code>str1</code> is less than <code>str2</code>
+      *  Equal to 0 means <code>str1</code> is identical to <code>str2</code>
+      *  Greater than 0 means <code>str1</code> is more than <code>str2</code>
+      */
+    static int compareIString
+    (
+        const   XMLCh* const    str1
+        , const XMLCh* const    str2
+    );
+
+    /** Lexicographically compares lowercase versions of <code>str1</code> and
+      * <code>str2</code> and returns a value indicating their relationship.
+      * The routine only lowercases A to Z.
+      * @param str1 Null-terminated ASCII string to compare
+      * @param str2 Null-terminated ASCII string to compare
+      * @return The return value indicates the relation of <code>str1</code> to
+      * <code>str2</code> as follows
+      *  Less than 0 means <code>str1</code> is less than <code>str2</code>
+      *  Equal to 0 means <code>str1</code> is identical to <code>str2</code>
+      *  Greater than 0 means <code>str1</code> is more than <code>str2</code>
+      */
+    static int compareIStringASCII
+    (
+        const   XMLCh* const    str1
+        , const XMLCh* const    str2
+    );
+
+
+
+    /** Lexicographically compares, at most, the first count characters in
+      * <code>str1</code> and <code>str2</code> and returns a value indicating the
+      * relationship between the substrings.
+      * @param str1 Null-terminated string to compare
+      * @param str2 Null-terminated string to compare
+      * @param count The number of characters to compare
+      *
+      * @return The return value indicates the relation of <code>str1</code> to
+      * <code>str2</code> as follows
+      *  Less than 0 means <code>str1</code> is less than <code>str2</code>
+      *  Equal to 0 means <code>str1</code> is identical to <code>str2</code>
+      *  Greater than 0 means <code>str1</code> is more than <code>str2</code>
+      */
+    static int compareNString
+    (
+        const   char* const     str1
+        , const char* const     str2
+        , const unsigned int    count
+    );
+
+    /** Lexicographically compares, at most, the first count characters in
+      * <code>str1</code> and <code>str2</code> and returns a value indicating
+      * the relationship between the substrings.
+      * @param str1 Null-terminated string to compare
+      * @param str2 Null-terminated string to compare
+      * @param count The number of characters to compare
+      *
+      * @return The return value indicates the relation of <code>str1</code> to
+      * <code>str2</code> as follows
+      *  Less than 0 means <code>str1</code> is less than <code>str2</code>
+      *  Equal to 0 means <code>str1</code> is identical to <code>str2</code>
+      *  Greater than 0 means <code>str1</code> is more than <code>str2</code>
+      */
+    static int compareNString
+    (
+        const   XMLCh* const    str1
+        , const XMLCh* const    str2
+        , const unsigned int    count
+    );
+
+
+    /** Lexicographically compares, at most, the first count characters in
+      * <code>str1</code> and <code>str2</code> without regard to case and
+      * returns a value indicating the relationship between the substrings.
+      *
+      * @param str1 Null-terminated string to compare
+      * @param str2 Null-terminated string to compare
+      * @param count The number of characters to compare
+      * @return The return value indicates the relation of <code>str1</code> to
+      * <code>str2</code> as follows
+      *  Less than 0 means <code>str1</code> is less than <code>str2</code>
+      *  Equal to 0 means <code>str1</code> is identical to <code>str2</code>
+      *  Greater than 0 means <code>str1</code> is more than <code>str2</code>
+      */
+    static int compareNIString
+    (
+        const   char* const     str1
+        , const char* const     str2
+        , const unsigned int    count
+    );
+
+    /** Lexicographically compares, at most, the first count characters in
+      * <code>str1</code> and <code>str2</code> without regard to case and
+      * returns a value indicating the relationship between the substrings.
+      *
+      * @param str1 Null-terminated string to compare
+      * @param str2 Null-terminated string to compare
+      * @param count The number of characters to compare
+      *
+      * @return The return value indicates the relation of <code>str1</code> to
+      * <code>str2</code> as follows
+      *  Less than 0 means <code>str1</code> is less than <code>str2</code>
+      *  Equal to 0 means <code>str1</code> is identical to <code>str2</code>
+      *  Greater than 0 means <code>str1</code> is more than <code>str2</code>
+      */
+    static int compareNIString
+    (
+        const   XMLCh* const    str1
+        , const XMLCh* const    str2
+        , const unsigned int    count
+    );
+
+    /** Lexicographically compares <code>str1</code> and <code>str2</code> and
+      * returns a value indicating their relationship.
+      *
+      * @param str1 Null-terminated string to compare
+      * @param str2 Null-terminated string to compare
+      *
+      * @return The return value indicates the relation of <code>str1</code> to
+      * <code>str2</code> as follows
+      *  Less than 0 means <code>str1</code> is less than <code>str2</code>
+      *  Equal to 0 means <code>str1</code> is identical to <code>str2</code>
+      *  Greater than 0 means <code>str1</code> is more than <code>str2</code>
+      */
+    static int compareString
+    (
+        const   char* const     str1
+        , const char* const     str2
+    );
+
+    /** Lexicographically compares <code>str1</code> and <code>str2</code> and
+      * returns a value indicating their relationship.
+      *
+      * @param str1 Null-terminated string to compare
+      * @param str2 Null-terminated string to compare
+      * @return The return value indicates the relation of <code>str1</code> to
+      * <code>str2</code> as follows
+      *  Less than 0 means <code>str1</code> is less than <code>str2</code>
+      *  Equal to 0 means <code>str1</code> is identical to <code>str2</code>
+      *  Greater than 0 means <code>str1</code> is more than <code>str2</code>
+      */
+    static int compareString
+    (
+        const   XMLCh* const    str1
+        , const XMLCh* const    str2
+    );
+
+    /** compares <code>str1</code> and <code>str2</code>
+      *
+      * @param str1 Null-terminated string to compare
+      * @param str2 Null-terminated string to compare
+      * @return true if two strings are equal, false if not
+      *  If one string is null, while the other is zero-length string,
+      *  it is considered as equal.
+      */
+    static bool equals
+    (
+          const XMLCh* const    str1
+        , const XMLCh* const    str2
+    );
+
+    static bool equals
+    (
+          const char* const    str1
+        , const char* const    str2
+    );
+
+	/** Lexicographically compares <code>str1</code> and <code>str2</code>
+	  * regions and returns true if they are equal, otherwise false.
+	  *
+      * A substring of <code>str1</code> is compared to a substring of
+	  * <code>str2</code>. The result is true if these substrings represent
+	  * identical character sequences. The substring of <code>str1</code>
+      * to be compared begins at offset1 and has length charCount. The
+	  * substring of <code>str2</code> to be compared begins at offset2 and
+	  * has length charCount. The result is false if and only if at least
+      * one of the following is true:
+      *   offset1 is negative.
+      *   offset2 is negative.
+      *   offset1+charCount is greater than the length of str1.
+      *   offset2+charCount is greater than the length of str2.
+      *   There is some nonnegative integer k less than charCount such that:
+      *   str1.charAt(offset1+k) != str2.charAt(offset2+k)
+      *
+      * @param str1 Null-terminated string to compare
+	  * @param offset1 Starting offset of str1
+      * @param str2 Null-terminated string to compare
+	  * @param offset2 Starting offset of str2
+	  * @param charCount The number of characters to compare
+      * @return true if the specified subregion of <code>str1</code> exactly
+	  *  matches the specified subregion of <code>str2></code>; false
+	  *  otherwise.
+      */
+    static bool regionMatches
+    (
+        const   XMLCh* const    str1
+		, const	int				offset1
+        , const XMLCh* const    str2
+		, const int				offset2
+		, const unsigned int	charCount
+    );
+
+	/** Lexicographically compares <code>str1</code> and <code>str2</code>
+	  * regions without regard to case and returns true if they are equal,
+	  * otherwise false.
+	  *
+      * A substring of <code>str1</code> is compared to a substring of
+	  * <code>str2</code>. The result is true if these substrings represent
+	  * identical character sequences. The substring of <code>str1</code>
+      * to be compared begins at offset1 and has length charCount. The
+	  * substring of <code>str2</code> to be compared begins at offset2 and
+	  * has length charCount. The result is false if and only if at least
+      * one of the following is true:
+      *   offset1 is negative.
+      *   offset2 is negative.
+      *   offset1+charCount is greater than the length of str1.
+      *   offset2+charCount is greater than the length of str2.
+      *   There is some nonnegative integer k less than charCount such that:
+      *   str1.charAt(offset1+k) != str2.charAt(offset2+k)
+      *
+      * @param str1 Null-terminated string to compare
+	  * @param offset1 Starting offset of str1
+      * @param str2 Null-terminated string to compare
+	  * @param offset2 Starting offset of str2
+	  * @param charCount The number of characters to compare
+      * @return true if the specified subregion of <code>str1</code> exactly
+	  *  matches the specified subregion of <code>str2></code>; false
+	  *  otherwise.
+      */
+    static bool regionIMatches
+    (
+        const   XMLCh* const    str1
+		, const	int				offset1
+        , const XMLCh* const    str2
+		, const int				offset2
+		, const unsigned int	charCount
+    );
+    //@}
+
+    /** @name String copy functions */
+    //@{
+    /** Copies <code>src</code>, including the terminating null character, to the
+      * location specified by <code>target</code>.
+      *
+      * No overflow checking is performed when strings are copied or appended.
+      * The behavior of strcpy is undefined if the source and destination strings
+      * overlap.
+      *
+      * @param target Destination string
+      * @param src Null-terminated source string
+      */
+    static void copyString
+    (
+                char* const     target
+        , const char* const     src
+    );
+
+    /** Copies <code>src</code>, including the terminating null character, to
+      *   the location specified by <code>target</code>.
+      *
+      * No overflow checking is performed when strings are copied or appended.
+      * The behavior of <code>copyString</code> is undefined if the source and
+      * destination strings overlap.
+      *
+      * @param target Destination string
+      * @param src Null-terminated source string
+      */
+    static void copyString
+    (
+                XMLCh* const    target
+        , const XMLCh* const    src
+    );
+
+    /** Copies <code>src</code>, upto a fixed number of characters, to the
+      * location specified by <code>target</code>.
+      *
+      * No overflow checking is performed when strings are copied or appended.
+      * The behavior of <code>copyNString</code> is undefined if the source and
+      * destination strings overlap.
+      *
+      * @param target Destination string. The size of the buffer should
+      *        atleast be 'maxChars + 1'.
+      * @param src Null-terminated source string
+      * @param maxChars The maximum number of characters to copy
+      */
+    static bool copyNString
+    (
+                XMLCh* const    target
+        , const XMLCh* const    src
+        , const unsigned int    maxChars
+    );
+    //@}
+
+    /** @name Hash functions */
+    //@{
+    /** Hashes a string given a modulus
+      *
+      * @param toHash The string to hash
+      * @param hashModulus The divisor to be used for hashing
+      * @param manager The MemoryManager to use to allocate objects
+      * @return Returns the hash value
+      */
+    static unsigned int hash
+    (
+        const   char* const     toHash
+        , const unsigned int    hashModulus
+        , MemoryManager* const  manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    /** Hashes a string given a modulus
+      *
+      * @param toHash The string to hash
+      * @param hashModulus The divisor to be used for hashing
+      * @param manager The MemoryManager to use to allocate objects
+      * @return Returns the hash value
+      */
+    static unsigned int hash
+    (
+        const   XMLCh* const    toHash
+        , const unsigned int    hashModulus
+        , MemoryManager* const  manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    /** Hashes a string given a modulus taking a maximum number of characters
+      * as the limit
+      *
+      * @param toHash The string to hash
+      * @param numChars The maximum number of characters to consider for hashing
+      * @param hashModulus The divisor to be used for hashing
+      * @param manager The MemoryManager to use to allocate objects
+      * @return Returns the hash value
+      */
+    static unsigned int hashN
+    (
+        const   XMLCh* const    toHash
+        , const unsigned int    numChars
+        , const unsigned int    hashModulus
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    //@}
+
+    /** @name Search functions */
+    //@{
+    /**
+      * Provides the index of the first occurance of a character within a string
+      *
+      * @param toSearch The string to search
+      * @param ch The character to search within the string
+      * @return If found, returns the index of the character within the string,
+      * else returns -1.
+      */
+    static int indexOf(const char* const toSearch, const char ch);
+
+    /**
+      * Provides the index of the first occurance of a character within a string
+      *
+      * @param toSearch The string to search
+      * @param ch The character to search within the string
+      * @return If found, returns the index of the character within the string,
+      * else returns -1.
+      */
+    static int indexOf(const XMLCh* const toSearch, const XMLCh ch);
+
+	    /**
+      * Provides the index of the first occurance of a character within a string
+      * starting from a given index
+      *
+      * @param toSearch The string to search
+      * @param chToFind The character to search within the string
+      * @param fromIndex The index to start searching from
+      * @param manager The MemoryManager to use to allocate objects
+      * @return If found, returns the index of the character within the string,
+      * else returns -1.
+      */
+    static int indexOf
+    (
+        const   char* const     toSearch
+        , const char            chToFind
+        , const unsigned int    fromIndex
+        , MemoryManager* const  manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    /**
+      * Provides the index of the first occurance of a character within a string
+      * starting from a given index
+      *
+      * @param toSearch The string to search
+      * @param chToFind The character to search within the string
+      * @param fromIndex The index to start searching from
+      * @param manager The MemoryManager to use to allocate objects
+      * @return If found, returns the index of the character within the string,
+      * else returns -1.
+      */
+    static int indexOf
+    (
+        const   XMLCh* const    toSearch
+        , const XMLCh           chToFind
+        , const unsigned int    fromIndex
+        , MemoryManager* const  manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    /**
+      * Provides the index of the last occurance of a character within a string
+      *
+      * @param toSearch The string to search
+      * @param ch The character to search within the string
+      * @return If found, returns the index of the character within the string,
+      * else returns -1.
+      */
+    static int lastIndexOf(const char* const toSearch, const char ch);
+
+    /**
+      * Provides the index of the last occurance of a character within a string
+      *
+      * @param toSearch The string to search
+      * @param ch The character to search within the string
+      * @return If found, returns the index of the character within the string,
+      * else returns -1.
+      */
+    static int lastIndexOf(const XMLCh* const toSearch, const XMLCh ch);
+
+    /**
+      * Provides the index of the last occurance of a character within a string
+      *
+      * @param ch The character to search within the string
+      * @param toSearch The string to search
+      * @param toSearchLen The length of the string to search
+      * @return If found, returns the index of the character within the string,
+      * else returns -1.
+      */
+    static int lastIndexOf
+    (
+        const XMLCh ch
+        , const XMLCh* const toSearch
+        , const unsigned int toSearchLen
+    );
+
+    /**
+      * Provides the index of the last occurance of a character within a string
+      * starting backward from a given index
+      *
+      * @param toSearch The string to search
+      * @param chToFind The character to search within the string
+      * @param fromIndex The index to start backward search from
+      * @param manager The MemoryManager to use to allocate objects
+      * @return If found, returns the index of the character within the string,
+      * else returns -1.
+      */
+    static int lastIndexOf
+    (
+        const   char* const     toSearch
+        , const char            chToFind
+        , const unsigned int    fromIndex
+        , MemoryManager* const  manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    /**
+      * Provides the index of the last occurance of a character within a string
+      * starting backward from a given index
+      *
+      * @param toSearch The string to search
+      * @param ch       The character to search within the string
+      * @param fromIndex The index to start backward search from
+      * @param manager The MemoryManager to use to allocate objects
+      * @return If found, returns the index of the character within the string,
+      * else returns -1.
+      */
+    static int lastIndexOf
+    (
+        const   XMLCh* const    toSearch
+        , const XMLCh           ch
+        , const unsigned int    fromIndex
+        , MemoryManager* const  manager = XMLPlatformUtils::fgMemoryManager
+    );
+    //@}
+
+    /** @name Fixed size string movement */
+    //@{
+    /** Moves X number of chars
+      * @param targetStr The string to copy the chars to
+      * @param srcStr The string to copy the chars from
+      * @param count The number of chars to move
+      */
+    static void moveChars
+    (
+                XMLCh* const    targetStr
+        , const XMLCh* const    srcStr
+        , const unsigned int    count
+    );
+
+    //@}
+
+    /** @name Substring function */
+    //@{
+    /** Create a substring of a given string. The substring begins at the
+      * specified beginIndex and extends to the character at index
+      * endIndex - 1.
+      * @param targetStr The string to copy the chars to
+      * @param srcStr The string to copy the chars from
+      * @param startIndex beginning index, inclusive.
+      * @param endIndex the ending index, exclusive.
+      * @param manager The MemoryManager to use to allocate objects
+      */
+    static void subString
+    (
+                char* const    targetStr
+        , const char* const    srcStr
+        , const int            startIndex
+        , const int            endIndex
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    /** Create a substring of a given string. The substring begins at the
+      * specified beginIndex and extends to the character at index
+      * endIndex - 1.
+      * @param targetStr The string to copy the chars to
+      * @param srcStr The string to copy the chars from
+      * @param startIndex beginning index, inclusive.
+      * @param endIndex the ending index, exclusive.
+      * @param manager The MemoryManager to use to allocate objects
+      */
+    static void subString
+    (
+                XMLCh* const    targetStr
+        , const XMLCh* const    srcStr
+        , const int             startIndex
+        , const int             endIndex
+        , MemoryManager* const  manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    /** Create a substring of a given string. The substring begins at the
+      * specified beginIndex and extends to the character at index
+      * endIndex - 1.
+      * @param targetStr The string to copy the chars to
+      * @param srcStr The string to copy the chars from
+      * @param startIndex beginning index, inclusive.
+      * @param endIndex the ending index, exclusive.
+      * @param srcStrLength the length of srcStr
+      * @param manager The MemoryManager to use to allocate objects
+      */
+    static void subString
+    (
+                XMLCh* const    targetStr
+        , const XMLCh* const    srcStr
+        , const int             startIndex
+        , const int             endIndex
+        , const int             srcStrLength
+        , MemoryManager* const  manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    //@}
+
+    /** @name Replication function */
+    //@{
+    /** Replicates a string
+      * NOTE: The returned buffer is dynamically allocated and is the
+      * responsibility of the caller to delete it when not longer needed.
+      * You can call XMLString::release to release this returned buffer.
+      *
+      * @param toRep The string to replicate
+      * @return Returns a pointer to the replicated string
+      * @see   XMLString::release(char**)
+      */
+    static char* replicate(const char* const toRep);
+
+    /** Replicates a string
+      * NOTE: The returned buffer is allocated with the MemoryManager. It is the
+      * responsibility of the caller to delete it when not longer needed.
+      *
+      * @param toRep The string to replicate
+      * @param manager The MemoryManager to use to allocate the string
+      * @return Returns a pointer to the replicated string
+      */
+    static char* replicate(const char* const toRep,
+                           MemoryManager* const manager);
+
+    /** Replicates a string
+      * NOTE: The returned buffer is dynamically allocated and is the
+      * responsibility of the caller to delete it when not longer needed.
+      * You can call XMLString::release to release this returned buffer.
+
+      * @param toRep The string to replicate
+      * @return Returns a pointer to the replicated string
+      * @see   XMLString::release(XMLCh**)
+      */
+    static XMLCh* replicate(const XMLCh* const toRep);
+
+    /** Replicates a string
+      * NOTE: The returned buffer is allocated with the MemoryManager. It is the
+      * responsibility of the caller to delete it when not longer needed.
+      *
+      * @param toRep The string to replicate
+      * @param manager The MemoryManager to use to allocate the string
+      * @return Returns a pointer to the replicated string
+      */
+    static XMLCh* replicate(const XMLCh* const toRep,
+                            MemoryManager* const manager);
+
+    //@}
+
+    /** @name String query function */
+    //@{
+    /** Tells if the sub-string appears within a string at the beginning
+      * @param toTest The string to test
+      * @param prefix The sub-string that needs to be checked
+      * @return Returns true if the sub-string was found at the beginning of
+      * <code>toTest</code>, else false
+      */
+    static bool startsWith
+    (
+        const   char* const     toTest
+        , const char* const     prefix
+    );
+
+    /** Tells if the sub-string appears within a string at the beginning
+      * @param toTest The string to test
+      * @param prefix The sub-string that needs to be checked
+      * @return Returns true if the sub-string was found at the beginning of
+      * <code>toTest</code>, else false
+      */
+    static bool startsWith
+    (
+        const   XMLCh* const    toTest
+        , const XMLCh* const    prefix
+    );
+
+    /** Tells if the sub-string appears within a string at the beginning
+      * without regard to case
+      *
+      * @param toTest The string to test
+      * @param prefix The sub-string that needs to be checked
+      * @return Returns true if the sub-string was found at the beginning of
+      * <code>toTest</code>, else false
+      */
+    static bool startsWithI
+    (
+        const   char* const     toTest
+        , const char* const     prefix
+    );
+
+    /** Tells if the sub-string appears within a string at the beginning
+      * without regard to case
+      *
+      * @param toTest The string to test
+      * @param prefix The sub-string that needs to be checked
+      *
+      * @return Returns true if the sub-string was found at the beginning
+      * of <code>toTest</code>, else false
+      */
+    static bool startsWithI
+    (
+        const   XMLCh* const    toTest
+        , const XMLCh* const    prefix
+    );
+
+    /** Tells if the sub-string appears within a string at the end.
+      * @param toTest The string to test
+      * @param suffix The sub-string that needs to be checked
+      * @return Returns true if the sub-string was found at the end of
+      * <code>toTest</code>, else false
+      */
+    static bool endsWith
+    (
+        const   XMLCh* const    toTest
+        , const XMLCh* const    suffix
+    );
+
+
+    /** Tells if a string has any occurance of any character of another 
+      * string within itself
+      * @param toSearch The string to be searched
+      * @param searchList The string from which characters to be searched for are drawn 
+      * @return Returns the pointer to the location where the first occurrence of any
+      * character from searchList is found,
+      * else returns 0
+      */
+    static const XMLCh* findAny
+    (
+        const   XMLCh* const    toSearch
+        , const XMLCh* const    searchList
+    );
+
+    /** Tells if a string has any occurance of any character of another 
+      * string within itself
+      * @param toSearch The string to be searched
+      * @param searchList The string from which characters to be searched for are drawn 
+      * @return Returns the pointer to the location where the first occurrence of any
+      * character from searchList is found,
+      * else returns 0
+      */
+    static XMLCh* findAny
+    (
+                XMLCh* const    toSearch
+        , const XMLCh* const    searchList
+    );
+
+    /** Tells if a string has pattern within itself
+      * @param toSearch The string to be searched
+      * @param pattern The pattern to be located within the string
+      * @return Returns index to the location where the pattern was
+      * found, else returns -1
+      */
+    static int patternMatch
+    (
+          const XMLCh* const    toSearch
+        , const XMLCh* const    pattern
+    );
+
+    /** Get the length of the string
+      * @param src The string whose length is to be determined
+      * @return Returns the length of the string
+      */
+    static unsigned int stringLen(const char* const src);
+
+    /** Get the length of the string
+      * @param src The string whose length is to be determined
+      * @return Returns the length of the string
+      */
+    static unsigned int stringLen(const XMLCh* const src);
+
+    /**
+      *
+      * Checks whether an name is a valid NOTATION according to XML 1.0
+      * @param name    The string to check its NOTATION validity
+      * @param manager The memory manager
+      * @return Returns true if name is NOTATION valid, otherwise false
+      */
+    static bool isValidNOTATION(const XMLCh*         const name
+                              ,       MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+
+    /**
+      * Deprecated: please use XMLChar1_0::isValidNCName
+      *
+      * Checks whether an name is a valid NCName according to XML 1.0
+      * @param name The string to check its NCName validity
+      * @return Returns true if name is NCName valid, otherwise false
+      */
+    static bool isValidNCName(const XMLCh* const name);
+
+    /**
+      * Deprecated: please use XMLChar1_0::isValidName
+      *
+      * Checks whether an name is a valid Name according to XML 1.0
+      * @param name The string to check its Name validity
+      * @return Returns true if name is Name valid, otherwise false
+      */
+    static bool isValidName(const XMLCh* const name);
+
+    /**
+      * Checks whether an name is a valid EncName.
+      * @param name The string to check its EncName validity
+      * @return Returns true if name is EncName valid, otherwise false
+      */
+    static bool isValidEncName(const XMLCh* const name);
+
+    /**
+      * Deprecated: please use XMLChar1_0::isValidQName
+      *
+      * Checks whether an name is a valid QName according to XML 1.0
+      * @param name The string to check its QName validity
+      * @return Returns true if name is QName valid, otherwise false
+      */
+    static bool isValidQName(const XMLCh* const name);
+
+    /**
+      * Checks whether a character is within [a-zA-Z].
+      * @param theChar the character to check
+      * @return Returns true if within the range, otherwise false
+      */
+
+    static bool isAlpha(XMLCh const theChar);
+
+    /**
+      * Checks whether a character is within [0-9].
+      * @param theChar the character to check
+      * @return Returns true if within the range, otherwise false
+      */
+    static bool isDigit(XMLCh const theChar);
+
+    /**
+      * Checks whether a character is within [0-9a-zA-Z].
+      * @param theChar the character to check
+      * @return Returns true if within the range, otherwise false
+      */
+    static bool isAlphaNum(XMLCh const theChar);
+
+    /**
+      * Checks whether a character is within [0-9a-fA-F].
+      * @param theChar the character to check
+      * @return Returns true if within the range, otherwise false
+      */
+    static bool isHex(XMLCh const theChar);
+
+    /**
+      * Deprecated: please use XMLChar1_0::isAllWhiteSpace
+      *
+      * Checks whether aa string contains only whitespace according to XML 1.0
+      * @param toCheck the string to check
+      * @return Returns true if it is, otherwise false
+      */
+    static bool isAllWhiteSpace(const XMLCh* const toCheck);
+
+    /** Find is the string appears in the enum list
+      * @param toFind the string to be found
+      * @param enumList the list
+      * return true if found
+      */
+    static bool isInList(const XMLCh* const toFind, const XMLCh* const enumList);
+
+    //@}
+
+    /** @name Conversion functions */
+    //@{
+
+    /** Converts binary data to a text string based a given radix
+      *
+      * @param toFormat The number to convert
+      * @param toFill The buffer that will hold the output on return. The
+      *        size of this buffer should at least be 'maxChars + 1'.
+      * @param maxChars The maximum number of output characters that can be
+      *         accepted. If the result will not fit, it is an error.
+      * @param radix The radix of the input data, based on which the conversion
+      * @param manager The MemoryManager to use to allocate objects
+      * will be done
+      */
+    static void binToText
+    (
+        const   unsigned int    toFormat
+        ,       char* const     toFill
+        , const unsigned int    maxChars
+        , const unsigned int    radix
+        , MemoryManager* const  manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    /** Converts binary data to a text string based a given radix
+      *
+      * @param toFormat The number to convert
+      * @param toFill The buffer that will hold the output on return. The
+      *        size of this buffer should at least be 'maxChars + 1'.
+      * @param maxChars The maximum number of output characters that can be
+      *         accepted. If the result will not fit, it is an error.
+      * @param radix The radix of the input data, based on which the conversion
+      * @param manager The MemoryManager to use to allocate objects
+      * will be done
+      */
+    static void binToText
+    (
+        const   unsigned int    toFormat
+        ,       XMLCh* const    toFill
+        , const unsigned int    maxChars
+        , const unsigned int    radix
+        , MemoryManager* const  manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    /** Converts binary data to a text string based a given radix
+      *
+      * @param toFormat The number to convert
+      * @param toFill The buffer that will hold the output on return. The
+      *        size of this buffer should at least be 'maxChars + 1'.
+      * @param maxChars The maximum number of output characters that can be
+      *         accepted. If the result will not fit, it is an error.
+      * @param radix The radix of the input data, based on which the conversion
+      * @param manager The MemoryManager to use to allocate objects
+      * will be done
+      */
+    static void binToText
+    (
+        const   unsigned long   toFormat
+        ,       char* const     toFill
+        , const unsigned int    maxChars
+        , const unsigned int    radix
+        , MemoryManager* const  manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    /** Converts binary data to a text string based a given radix
+      *
+      * @param toFormat The number to convert
+      * @param toFill The buffer that will hold the output on return. The
+      *        size of this buffer should at least be 'maxChars + 1'.
+      * @param maxChars The maximum number of output characters that can be
+      *         accepted. If the result will not fit, it is an error.
+      * @param radix The radix of the input data, based on which the conversion
+      * @param manager The MemoryManager to use to allocate objects
+      * will be done
+      */
+    static void binToText
+    (
+        const   unsigned long   toFormat
+        ,       XMLCh* const    toFill
+        , const unsigned int    maxChars
+        , const unsigned int    radix
+        , MemoryManager* const  manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    /** Converts binary data to a text string based a given radix
+      *
+      * @param toFormat The number to convert
+      * @param toFill The buffer that will hold the output on return. The
+      *        size of this buffer should at least be 'maxChars + 1'.
+      * @param maxChars The maximum number of output characters that can be
+      *         accepted. If the result will not fit, it is an error.
+      * @param radix The radix of the input data, based on which the conversion
+      * @param manager The MemoryManager to use to allocate objects
+      * will be done
+      */
+    static void binToText
+    (
+        const   long            toFormat
+        ,       char* const     toFill
+        , const unsigned int    maxChars
+        , const unsigned int    radix
+        , MemoryManager* const  manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    /** Converts binary data to a text string based a given radix
+      *
+      * @param toFormat The number to convert
+      * @param toFill The buffer that will hold the output on return. The
+      *        size of this buffer should at least be 'maxChars + 1'.
+      * @param maxChars The maximum number of output characters that can be
+      *         accepted. If the result will not fit, it is an error.
+      * @param radix The radix of the input data, based on which the conversion
+      * @param manager The MemoryManager to use to allocate objects
+      * will be done
+      */
+    static void binToText
+    (
+        const   long            toFormat
+        ,       XMLCh* const    toFill
+        , const unsigned int    maxChars
+        , const unsigned int    radix
+        , MemoryManager* const  manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    /** Converts binary data to a text string based a given radix
+      *
+      * @param toFormat The number to convert
+      * @param toFill The buffer that will hold the output on return. The
+      *        size of this buffer should at least be 'maxChars + 1'.
+      * @param maxChars The maximum number of output characters that can be
+      *         accepted. If the result will not fit, it is an error.
+      * @param radix The radix of the input data, based on which the conversion
+      * @param manager The MemoryManager to use to allocate objects
+      * will be done
+      */
+    static void binToText
+    (
+        const   int             toFormat
+        ,       char* const     toFill
+        , const unsigned int    maxChars
+        , const unsigned int    radix
+        , MemoryManager* const  manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    /** Converts binary data to a text string based a given radix
+      *
+      * @param toFormat The number to convert
+      * @param toFill The buffer that will hold the output on return. The
+      *        size of this buffer should at least be 'maxChars + 1'.
+      * @param maxChars The maximum number of output characters that can be
+      *         accepted. If the result will not fit, it is an error.
+      * @param radix The radix of the input data, based on which the conversion
+      * @param manager The MemoryManager to use to allocate objects
+      * will be done
+      */
+    static void binToText
+    (
+        const   int             toFormat
+        ,       XMLCh* const    toFill
+        , const unsigned int    maxChars
+        , const unsigned int    radix
+        , MemoryManager* const  manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    /**
+      * Converts a string of decimal chars to a binary value
+      *
+      * Note that leading and trailng whitespace is legal and will be ignored
+      * but the remainder must be all decimal digits.
+      *
+      * @param toConvert The string of digits to convert
+      * @param toFill    The unsigned int value to fill with the converted
+      *                  value.
+      * @param manager The MemoryManager to use to allocate objects
+      */
+    static bool textToBin
+    (
+        const   XMLCh* const    toConvert
+        ,       unsigned int&   toFill
+        ,       MemoryManager*  const manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    /**
+      * Converts a string of decimal chars to a binary value
+      *
+      * Note that leading and trailng whitespace is legal and will be ignored,
+      *
+      * Only one and either of (+,-) after the leading whitespace, before
+      * any other characters are allowed.
+      *
+      * but the remainder must be all decimal digits.
+      *
+      * @param toConvert The string of digits to convert
+      * @param manager The MemoryManager to use to allocate objects
+      */
+    static int parseInt
+    (
+        const   XMLCh* const    toConvert
+      , MemoryManager* const    manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    /** Cut leading chars from a string
+      *
+      * @param toCutFrom The string to cut chars from
+      * @param count     The count of leading chars to cut
+      */
+    static void cut
+    (
+                XMLCh* const    toCutFrom
+        , const unsigned int    count
+    );
+
+    /** Transcodes a string to native code-page
+      *
+      * NOTE: The returned buffer is dynamically allocated and is the
+      * responsibility of the caller to delete it when not longer needed.
+      * You can call XMLString::release to release this returned buffer.
+      *
+      * @param toTranscode The string to be transcoded      
+      * @return Returns the transcoded string
+      * @see   XMLString::release(XMLCh**)
+      */
+    static char* transcode
+    (
+        const   XMLCh* const    toTranscode
+    );
+    static char* transcode
+    (
+        const   XMLCh* const         toTranscode
+        ,       MemoryManager* const manager
+    );
+
+    /** Transcodes a string to native code-page
+      *
+      * Be aware that when transcoding to an external encoding, that each
+      * Unicode char can create multiple output bytes. So you cannot assume
+      * a one to one correspondence of input chars to output bytes.
+      *
+      * @param toTranscode The string tobe transcoded
+      * @param toFill The buffer that is filled with the transcoded value.
+      *        The size of this buffer should atleast be 'maxChars + 1'.
+      * @param maxChars The maximum number of bytes that the output
+      *         buffer can hold (not including the null, which is why
+      *         toFill should be at least maxChars+1.).
+      * @param manager The MemoryManager to use to allocate objects
+      * @return Returns true if successful, false if there was an error
+      */
+    static bool transcode
+    (
+        const   XMLCh* const    toTranscode
+        ,       char* const     toFill
+        , const unsigned int    maxChars
+        , MemoryManager* const  manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    /** Transcodes a string to native code-page
+      *
+      * NOTE: The returned buffer is dynamically allocated and is the
+      * responsibility of the caller to delete it when not longer needed.
+      * You can call XMLString::release to release this returned buffer.
+      *
+      * @param toTranscode The string to be transcoded     
+      * @return Returns the transcoded string
+      * @see   XMLString::release(char**)
+      */
+    static XMLCh* transcode
+    (
+        const   char* const     toTranscode
+    );
+    static XMLCh* transcode
+    (
+        const   char* const          toTranscode
+        ,       MemoryManager* const manager
+    );
+
+    /** Transcodes a string to native code-page
+      * @param toTranscode The string tobe transcoded
+      * @param toFill The buffer that is filled with the transcoded value.
+      *        The size of this buffer should atleast be 'maxChars + 1'.
+      * @param maxChars The maximum number of characters that the output
+      *         buffer can hold (not including the null, which is why
+      *         toFill should be at least maxChars+1.).
+      * @param manager The MemoryManager to use to allocate objects
+      * @return Returns true if successful, false if there was an error
+      */
+    static bool transcode
+    (
+        const   char* const     toTranscode
+        ,       XMLCh* const    toFill
+        , const unsigned int    maxChars
+        , MemoryManager* const  manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    /** Trims off extra space characters from the start and end of the string,
+      * moving the non-space string content back to the start.
+      * @param toTrim The string to be trimmed. On return this contains the
+      * trimmed string
+      */
+    static void trim(char* const toTrim);
+
+    /** Trims off extra space characters from the start and end of the string,
+      * moving the non-space string content back to the start.
+      * @param toTrim The string to be trimmed. On return this contains
+      * the trimmed string
+      */
+    static void trim(XMLCh* const toTrim);
+
+    /** Break a string into tokens with space as delimiter, and
+      * stored in a string vector.  The caller owns the string vector
+      * that is returned, and is responsible for deleting it.
+      * @param tokenizeSrc String to be tokenized
+      * @param manager The MemoryManager to use to allocate objects
+      * @return a vector of all the tokenized string
+      */
+    static BaseRefVectorOf<XMLCh>* tokenizeString(const XMLCh* const tokenizeSrc
+                                        , MemoryManager*       const manager = XMLPlatformUtils::fgMemoryManager);
+
+    //@}
+
+    /** @name Formatting functions */
+    //@{
+    /** Creates a UName from a URI and base name. It is in the form
+      * {url}name, and is commonly used internally to represent fully
+      * qualified names when namespaces are enabled.
+      *
+      * @param pszURI The URI part of the name
+      * @param pszName The base part of the name
+      * @return Returns the complete formatted UName
+      */
+    static XMLCh* makeUName
+    (
+        const   XMLCh* const    pszURI
+        , const XMLCh* const    pszName      
+    );
+
+    /**
+      * Internal function to perform token replacement for strings.
+      *
+      * @param errText The text (NULL terminated) where the replacement
+      *        is to be done. The size of this buffer should be
+      *        'maxChars + 1' to account for the final NULL.
+      * @param maxChars The size of the output buffer, i.e. the maximum
+      *         number of characters that it will hold. If the result is
+      *         larger, it will be truncated.
+      * @param text1 Replacement text-one
+      * @param text2 Replacement text-two
+      * @param text3 Replacement text-three
+      * @param text4 Replacement text-four
+      * @param manager The MemoryManager to use to allocate objects
+      * @return Returns the count of characters that are outputted
+      */
+    static unsigned int replaceTokens
+    (
+                XMLCh* const    errText
+        , const unsigned int    maxChars
+        , const XMLCh* const    text1
+        , const XMLCh* const    text2
+        , const XMLCh* const    text3
+        , const XMLCh* const    text4
+        , MemoryManager* const  manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    /** Converts a string to uppercase
+      * @param toUpperCase The string which needs to be converted to uppercase.
+      *        On return, this buffer also holds the converted uppercase string
+      */
+    static void upperCase(XMLCh* const toUpperCase);
+
+    /** Converts a string to uppercase
+      * The routine only uppercases A to Z (other characters not changed).
+      * @param toUpperCase The string which needs to be converted to uppercase.
+      *        On return, this buffer also holds the converted uppercase string
+      */
+    static void upperCaseASCII(XMLCh* const toUpperCase);
+
+	/** Converts a string to lowercase
+      * @param toLowerCase The string which needs to be converted to lowercase.
+      *        On return, this buffer also holds the converted lowercase string
+      */
+    static void lowerCase(XMLCh* const toLowerCase);
+
+    /** Converts a string to lowercase
+      * The routine only lowercases a to z (other characters not changed).
+      * @param toLowerCase The string which needs to be converted to lowercase.
+      *        On return, this buffer also holds the converted lowercase string
+      */
+    static void lowerCaseASCII(XMLCh* const toLowerCase);
+
+	/** Check if string is WhiteSpace:replace
+      * @param toCheck The string which needs to be checked.
+      */
+    static bool isWSReplaced(const XMLCh* const toCheck);
+
+	/** Check if string is WhiteSpace:collapse
+      * @param toCheck The string which needs to be checked.
+      */
+    static bool isWSCollapsed(const XMLCh* const toCheck);
+
+	/** Replace whitespace
+      * @param toConvert The string which needs to be whitespace replaced.
+      *        On return , this buffer also holds the converted string
+      * @param manager The MemoryManager to use to allocate objects
+      */
+    static void replaceWS(XMLCh* const toConvert
+        , MemoryManager* const  manager = XMLPlatformUtils::fgMemoryManager);
+
+	/** Collapse whitespace
+      * @param toConvert The string which needs to be whitespace collapsed.
+      *        On return , this buffer also holds the converted string
+      * @param manager The MemoryManager to use to allocate objects
+      */
+    static void collapseWS(XMLCh* const toConvert
+        , MemoryManager* const  manager = XMLPlatformUtils::fgMemoryManager);
+
+    /** Remove whitespace
+      * @param toConvert The string which needs to be whitespace removed.
+      *        On return , this buffer also holds the converted string
+      * @param manager The MemoryManager to use to allocate objects
+      */
+    static void removeWS(XMLCh* const toConvert
+    , MemoryManager*       const manager = XMLPlatformUtils::fgMemoryManager);
+
+
+    /** Remove character
+      * @param srcString The string 
+      * @param toRemove  The character needs to be removed from the string
+      * @param dstBuffer The buffer containning the result
+      */
+    static void removeChar(const XMLCh*     const srcString
+                         , const XMLCh&           toRemove
+                         ,       XMLBuffer&       dstBuffer);
+
+    /**
+     * Fixes a platform dependent absolute path filename to standard URI form.
+     * 1. Windows: fix 'x:' to 'file:///x:' and convert any backslash to forward slash
+     * 2. UNIX: fix '/blah/blahblah' to 'file:///blah/blahblah'
+     * @param str    The string that has the absolute path filename
+     * @param target The target string pre-allocated to store the fixed uri
+     */
+    static void fixURI(const XMLCh* const str, XMLCh* const target);
+
+    //@}
+    /** @name String Memory Management functions */
+    //@{
+    /**
+     * Release the parameter char string that was allocated by the implementation (i.e.the parser).
+     *   The implementation will call operator delete[] and then turn the string to a null pointer.
+     *
+     * @param buf  The string to be deleted and become a null pointer.
+     */
+    static void release(char** buf);
+
+    /**
+     * Release the parameter XMLCh string that was allocated by the implementation (i.e.the parser).
+     *   The implementation will call operator delete[] and then turn the string to a null pointer.
+     *
+     * @param buf  The string to be deleted and become a null pointer.
+     */
+    static void release(XMLCh** buf);
+
+    /**
+     * Release the parameter XMLByte string that was allocated by the implementation (i.e.the parser).
+     *   The implementation will call operator delete[] and then turn the string to a null pointer.
+     *
+     * @param buf  The string to be deleted and become a null pointer.
+     */
+    static void release(XMLByte** buf);
+
+    /**
+     * Release the parameter string that was allocated using the version of XMLString::transcode
+     * that accepts a MemoryManager.
+     * The implementation will call MemoryManager::deallocate and then turn the string to a null pointer.
+     *
+     * @param buf  The string to be deleted and become a null pointer.
+     * @param manager The MemoryManager to use to allocate objects
+     */
+    static void release
+    (
+        void**  buf
+        ,       MemoryManager* const manager
+    );
+
+    //@}
+
+
+private :
+
+    /** @name Constructors and Destructor */
+    //@{
+    /** Unimplemented default constructor */
+    XMLString();
+    /** Unimplemented destructor */
+    ~XMLString();
+    //@}
+
+
+    /** @name Initialization */
+    //@{
+    /** Init/Term methods called from XMLPlatformUtils class */
+    static void initString(XMLLCPTranscoder* const defToUse,
+                           MemoryManager* const manager);
+    static void termString();
+    //@}
+
+	/**
+	  * Called by regionMatches/regionIMatches to validate that we
+	  * have a valid input
+	  */
+	static bool validateRegion(const XMLCh* const str1, const int offset1,
+						const XMLCh* const str2, const int offset2,
+						const unsigned int charCount);
+
+    static MemoryManager* fgMemoryManager;
+
+    friend class XMLPlatformUtils;
+};
+
+
+// ---------------------------------------------------------------------------
+//  Inline some methods that are either just passthroughs to other string
+//  methods, or which are key for performance.
+// ---------------------------------------------------------------------------
+inline void XMLString::moveChars(       XMLCh* const targetStr
+                                , const XMLCh* const srcStr
+                                , const unsigned int count)
+{
+    memcpy(targetStr, srcStr, count * sizeof(XMLCh));
+}
+
+inline unsigned int XMLString::stringLen(const XMLCh* const src)
+{
+    if (src == 0 || *src == 0)
+    {
+        return 0;
+   }
+    else
+   {
+        const XMLCh* pszTmp = src + 1;
+
+        while (*pszTmp)
+            ++pszTmp;
+
+        return (unsigned int)(pszTmp - src);
+    }
+}
+
+inline XMLCh* XMLString::replicate(const XMLCh* const toRep,
+                                   MemoryManager* const manager)
+{
+    // If a null string, return a null string!
+    XMLCh* ret = 0;
+    if (toRep)
+    {
+        const unsigned int len = stringLen(toRep);
+        ret = (XMLCh*) manager->allocate((len+1) * sizeof(XMLCh)); //new XMLCh[len + 1];
+        memcpy(ret, toRep, (len + 1) * sizeof(XMLCh));
+    }
+    return ret;
+}
+
+inline bool XMLString::startsWith(  const   XMLCh* const    toTest
+                                    , const XMLCh* const    prefix)
+{
+    return (compareNString(toTest, prefix, stringLen(prefix)) == 0);
+}
+
+inline bool XMLString::startsWithI( const   XMLCh* const    toTest
+                                    , const XMLCh* const    prefix)
+{
+    return (compareNIString(toTest, prefix, stringLen(prefix)) == 0);
+}
+
+inline bool XMLString::endsWith(const XMLCh* const toTest,
+                                const XMLCh* const suffix)
+{
+
+    unsigned int suffixLen = XMLString::stringLen(suffix);
+
+    return regionMatches(toTest, XMLString::stringLen(toTest) - suffixLen,
+                         suffix, 0, suffixLen);
+}
+
+inline bool XMLString::validateRegion(const XMLCh* const str1,
+									  const int offset1,
+									  const XMLCh* const str2,
+									  const int offset2,
+									  const unsigned int charCount)
+{
+
+	if (offset1 < 0 || offset2 < 0 ||
+		(offset1 + charCount) > XMLString::stringLen(str1) ||
+		(offset2 + charCount) > XMLString::stringLen(str2) )
+		return false;
+
+	return true;
+}
+
+inline bool XMLString::equals(   const XMLCh* const    str1
+                               , const XMLCh* const    str2)
+{
+    const XMLCh* psz1 = str1;
+    const XMLCh* psz2 = str2;
+
+    if (psz1 == 0 || psz2 == 0) {
+        if ((psz1 != 0 && *psz1) || (psz2 != 0 && *psz2))
+            return false;
+        else
+            return true;
+    }
+
+    while (*psz1 == *psz2)
+    {
+        // If either has ended, then they both ended, so equal
+        if (!*psz1)
+            return true;
+
+        // Move upwards for the next round
+        psz1++;
+        psz2++;
+    }
+    return false;
+}
+
+inline bool XMLString::equals(   const char* const    str1
+                               , const char* const    str2)
+{
+    const char* psz1 = str1;
+    const char* psz2 = str2;
+
+    if (psz1 == 0 || psz2 == 0) {
+        if ((psz1 != 0 && *psz1) || (psz2 != 0 && *psz2))
+            return false;
+        else
+            return true;
+    }
+
+    while (*psz1 == *psz2)
+    {
+        // If either has ended, then they both ended, so equal
+        if (!*psz1)
+            return true;
+
+        // Move upwards for the next round
+        psz1++;
+        psz2++;
+    }
+    return false;
+}
+
+inline int XMLString::lastIndexOf(const XMLCh* const toSearch, const XMLCh ch)
+{
+    return XMLString::lastIndexOf(ch, toSearch, stringLen(toSearch));
+}
+
+inline unsigned int XMLString::hash(   const   XMLCh* const    tohash
+                                , const unsigned int    hashModulus
+                                , MemoryManager* const)
+{  
+    assert(hashModulus);
+
+    if (tohash == 0 || *tohash == 0)
+        return 0;
+
+    const XMLCh* curCh = tohash;
+    unsigned int hashVal = (unsigned int)(*curCh++);
+
+    while (*curCh)
+        hashVal = (hashVal * 38) + (hashVal >> 24) + (unsigned int)(*curCh++);
+
+    // Divide by modulus
+    return hashVal % hashModulus;
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/NameIdPool.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/NameIdPool.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/NameIdPool.hpp	(revision 2674)
@@ -0,0 +1,252 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: NameIdPool.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+#if !defined(NAMEIDPOOL_HPP)
+#define NAMEIDPOOL_HPP
+
+#include <xercesc/util/XMemory.hpp>
+#include <xercesc/util/XMLString.hpp>
+#include <xercesc/util/PlatformUtils.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+//
+//  Forward declare the enumerator so he can be our friend. Can you say
+//  friend? Sure...
+//
+template <class TElem> class NameIdPoolEnumerator;
+
+
+//
+//  This class is provided to serve as the basis of many of the pools that
+//  are used by the scanner and validators. They often need to be able to
+//  store objects in such a way that they can be quickly accessed by the
+//  name field of the object, and such that each element added is assigned
+//  a unique id via which it can be accessed almost instantly.
+//
+//  Object names are enforced as being unique, since that's what all these
+//  pools require. So its effectively a hash table in conjunction with an
+//  array of references into the hash table by id. Ids are assigned such that
+//  id N can be used to get the Nth element from the array of references.
+//  This provides very fast access by id.
+//
+//  The way these pools are used, elements are never removed except when the
+//  whole thing is flushed. This makes it very easy to maintain the two
+//  access methods in sync.
+//
+//  For efficiency reasons, the id refererence array is never flushed until
+//  the dtor. This way, it does not have to be regrown every time its reused.
+//
+//  All elements are assumed to be owned by the pool!
+//
+//  We have to have a bucket element structure to use to maintain the linked
+//  lists for each bucket. Because some of the compilers we have to support
+//  are totally brain dead, it cannot be a nested class as it should be.
+//
+template <class TElem> struct NameIdPoolBucketElem
+{
+public :
+    NameIdPoolBucketElem
+    (
+        TElem* const                            value
+        , NameIdPoolBucketElem<TElem>* const    next
+    );
+    ~NameIdPoolBucketElem();
+
+    TElem*                          fData;
+    NameIdPoolBucketElem<TElem>*    fNext;
+private:
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    NameIdPoolBucketElem(const NameIdPoolBucketElem<TElem>&);
+    NameIdPoolBucketElem<TElem>& operator=(const NameIdPoolBucketElem<TElem>&);
+};
+
+
+template <class TElem> class NameIdPool : public XMemory
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Contructors and Destructor
+    // -----------------------------------------------------------------------
+    NameIdPool
+    (
+        const   unsigned int    hashModulus
+        , const unsigned int    initSize = 128
+        , MemoryManager* const  manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    ~NameIdPool();
+
+
+    // -----------------------------------------------------------------------
+    //  Element management
+    // -----------------------------------------------------------------------
+    bool containsKey(const XMLCh* const key) const;
+    void removeAll();
+
+
+    // -----------------------------------------------------------------------
+    //  Getters
+    // -----------------------------------------------------------------------
+    TElem* getByKey(const XMLCh* const key);
+    const TElem* getByKey(const XMLCh* const key) const;
+    TElem* getById(const unsigned elemId);
+    const TElem* getById(const unsigned elemId) const;
+
+    MemoryManager* getMemoryManager() const;
+    // -----------------------------------------------------------------------
+    //  Putters
+    //
+    //  Dups are not allowed and cause an IllegalArgumentException. The id
+    //  of the new element is returned.
+    // -----------------------------------------------------------------------
+    unsigned int put(TElem* const valueToAdopt);
+
+
+protected :
+    // -----------------------------------------------------------------------
+    //  Declare the enumerator our friend so he can see our members
+    // -----------------------------------------------------------------------
+    friend class NameIdPoolEnumerator<TElem>;
+
+
+private :
+    // -----------------------------------------------------------------------
+    //  Unused constructors and operators
+    // -----------------------------------------------------------------------
+    NameIdPool(const NameIdPool<TElem>&);
+    NameIdPool<TElem>& operator=(const NameIdPool<TElem>&);
+
+
+    // -----------------------------------------------------------------------
+    //  Private helper methods
+    // -----------------------------------------------------------------------
+    NameIdPoolBucketElem<TElem>* findBucketElem
+    (
+        const XMLCh* const      key
+        ,     unsigned int&     hashVal
+    );
+    const NameIdPoolBucketElem<TElem>* findBucketElem
+    (
+        const   XMLCh* const    key
+        ,       unsigned int&   hashVal
+    )   const;
+
+
+    // -----------------------------------------------------------------------
+    //  Data members
+    //
+    //  fBucketList
+    //      This is the array that contains the heads of all of the list
+    //      buckets, one for each possible hash value.
+    //
+    //  fIdPtrs
+    //  fIdPtrsCount
+    //      This is the array of pointers to the bucket elements in order of
+    //      their assigned ids. So taking id N and referencing this array
+    //      gives you the element with that id. The count field indicates
+    //      the current size of this list. When fIdCounter+1 reaches this
+    //      value the list must be expanded.
+    //
+    //  fIdCounter
+    //      This is used to give out unique ids to added elements. It starts
+    //      at zero (which means empty), and is bumped up for each newly added
+    //      element. So the first element is 1, the next is 2, etc... This
+    //      means that this value is set to the top index of the fIdPtrs array.
+    //
+    //  fHashModulus
+    //      This is the modulus to use in this pool. The fBucketList array
+    //      is of this size. It should be a prime number.
+    // -----------------------------------------------------------------------
+    MemoryManager*                  fMemoryManager;
+    NameIdPoolBucketElem<TElem>**   fBucketList;
+    TElem**                         fIdPtrs;
+    unsigned int                    fIdPtrsCount;
+    unsigned int                    fIdCounter;
+    unsigned int                    fHashModulus;
+};
+
+
+//
+//  An enumerator for a name id pool. It derives from the basic enumerator
+//  class, so that pools can be generically enumerated.
+//
+template <class TElem> class NameIdPoolEnumerator : public XMLEnumerator<TElem>, public XMemory
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+    NameIdPoolEnumerator
+    (
+                NameIdPool<TElem>* const    toEnum
+                , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    NameIdPoolEnumerator
+    (
+        const   NameIdPoolEnumerator<TElem>& toCopy
+    );
+
+    virtual ~NameIdPoolEnumerator();
+
+    // -----------------------------------------------------------------------
+    //  Public operators
+    // -----------------------------------------------------------------------
+    NameIdPoolEnumerator<TElem>& operator=
+    (
+        const   NameIdPoolEnumerator<TElem>& toAssign
+    );
+   
+    // -----------------------------------------------------------------------
+    //  Enum interface
+    // -----------------------------------------------------------------------
+    bool hasMoreElements() const;
+    TElem& nextElement();
+    void Reset();
+    int  size()  const;
+
+private :
+    // -----------------------------------------------------------------------
+    //  Data Members
+    //
+    //  fCurIndex
+    //      This is the current index into the pool's id mapping array. This
+    //      is now we enumerate it.
+    //
+    //  fToEnum
+    //      The name id pool that is being enumerated.
+    // -----------------------------------------------------------------------
+    unsigned int            fCurIndex;
+    NameIdPool<TElem>*      fToEnum;
+    MemoryManager*          fMemoryManager;
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#if !defined(XERCES_TMPLSINC)
+#include <xercesc/util/NameIdPool.c>
+#endif
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/BitSet.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/BitSet.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/BitSet.hpp	(revision 2674)
@@ -0,0 +1,107 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: BitSet.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(BITSET_HPP)
+#define BITSET_HPP
+
+#include <xercesc/util/XMemory.hpp>
+#include <xercesc/util/PlatformUtils.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class XMLUTIL_EXPORT BitSet : public XMemory
+{
+public:
+    // -----------------------------------------------------------------------
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+    BitSet( const unsigned int size
+          , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+    BitSet(const BitSet& toCopy);
+    ~BitSet();
+
+
+    // -----------------------------------------------------------------------
+    //  Equality methods
+    // -----------------------------------------------------------------------
+    bool equals(const BitSet& other) const;
+
+
+    // -----------------------------------------------------------------------
+    //  Getter methods
+    // -----------------------------------------------------------------------
+    bool allAreCleared() const;
+    bool allAreSet() const;
+    unsigned int size() const;
+    bool get(const unsigned int index) const;
+
+
+    // -----------------------------------------------------------------------
+    //  Setter methods
+    // -----------------------------------------------------------------------
+    void clear(const unsigned int index);
+    void clearAll();
+    void set(const unsigned int index);
+
+
+    // -----------------------------------------------------------------------
+    //  Bitwise logical operations
+    // -----------------------------------------------------------------------
+    void andWith(const BitSet& other);
+    void orWith(const BitSet& other);
+    void xorWith(const BitSet& other);
+
+
+    // -----------------------------------------------------------------------
+    //  Miscellaneous
+    // -----------------------------------------------------------------------
+    unsigned int hash(const unsigned int hashModulus) const;
+
+
+private :
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors
+    // -----------------------------------------------------------------------
+    BitSet();    
+    BitSet& operator=(const BitSet&);
+    // -----------------------------------------------------------------------
+    //  Private methods
+    // -----------------------------------------------------------------------
+    void ensureCapacity(const unsigned int bits);
+
+
+    // -----------------------------------------------------------------------
+    //  Data members
+    //
+    //  fBits
+    //      The array of unsigned longs used to store the bits.
+    //
+    //  fUnitLen
+    //      The length of the storage array, in storage units not bits.
+    // -----------------------------------------------------------------------
+    MemoryManager*  fMemoryManager;
+    unsigned long*  fBits;
+    unsigned int    fUnitLen;
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/ValueArrayOf.c
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/ValueArrayOf.c	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/ValueArrayOf.c	(revision 2674)
@@ -0,0 +1,252 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: ValueArrayOf.c 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+// ---------------------------------------------------------------------------
+//  Includes
+// ---------------------------------------------------------------------------
+#if defined(XERCES_TMPLSINC)
+#include <xercesc/util/ValueArrayOf.hpp>
+#endif
+
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+// ---------------------------------------------------------------------------
+//  ValueArrayOf: Contructors and Destructor
+// ---------------------------------------------------------------------------
+template <class TElem>
+ValueArrayOf<TElem>::ValueArrayOf(const unsigned int size,
+                                  MemoryManager* const manager) :
+
+    fSize(size)
+    , fArray(0)
+    , fMemoryManager(manager)
+{
+    fArray = (TElem*) fMemoryManager->allocate(fSize * sizeof(TElem)); //new TElem[fSize];
+}
+
+template <class TElem>
+ValueArrayOf<TElem>::ValueArrayOf( const TElem* values
+                                 , const unsigned int size
+                                 , MemoryManager* const manager) :
+
+    fSize(size)
+    , fArray(0)
+    , fMemoryManager(manager)
+{
+    fArray = (TElem*) fMemoryManager->allocate(fSize * sizeof(TElem)); //new TElem[fSize];
+    for (unsigned int index = 0; index < fSize; index++)
+        fArray[index] = values[index];
+}
+
+template <class TElem>
+ValueArrayOf<TElem>::ValueArrayOf(const ValueArrayOf<TElem>& source) :
+    XMemory(source)
+    , fSize(source.fSize)
+    , fArray(0)
+    , fMemoryManager(source.fMemoryManager)
+{
+    fArray = (TElem*) fMemoryManager->allocate(fSize * sizeof(TElem)); //new TElem[fSize];
+    for (unsigned int index = 0; index < fSize; index++)
+        fArray[index] = source.fArray[index];
+}
+
+template <class TElem> ValueArrayOf<TElem>::~ValueArrayOf()
+{
+    fMemoryManager->deallocate(fArray); //delete [] fArray;
+}
+
+
+// ---------------------------------------------------------------------------
+//  ValueArrayOf: Public operators
+// ---------------------------------------------------------------------------
+template <class TElem> TElem& ValueArrayOf<TElem>::
+operator[](const unsigned int index)
+{
+    if (index >= fSize)
+        ThrowXMLwithMemMgr(ArrayIndexOutOfBoundsException, XMLExcepts::Array_BadIndex, fMemoryManager);
+    return fArray[index];
+}
+
+template <class TElem> const TElem& ValueArrayOf<TElem>::
+operator[](const unsigned int index) const
+{
+    if (index >= fSize)
+        ThrowXMLwithMemMgr(ArrayIndexOutOfBoundsException, XMLExcepts::Array_BadIndex, fMemoryManager);
+    return fArray[index];
+}
+
+template <class TElem> ValueArrayOf<TElem>& ValueArrayOf<TElem>::
+operator=(const ValueArrayOf<TElem>& toAssign)
+{
+    if (this == &toAssign)
+        return *this;
+
+    // Reallocate if not the same size
+    if (toAssign.fSize != fSize)
+    {
+        fMemoryManager->deallocate(fArray); //delete [] fArray;
+        fSize = toAssign.fSize;
+        fArray = (TElem*) fMemoryManager->allocate(fSize * sizeof(TElem)); //new TElem[fSize];
+    }
+
+    // Copy over the source elements
+    for (unsigned int index = 0; index < fSize; index++)
+        fArray[index] = toAssign.fArray[index];
+
+    return *this;
+}
+
+template <class TElem> bool ValueArrayOf<TElem>::
+operator==(const ValueArrayOf<TElem>& toCompare) const
+{
+    if (this == &toCompare)
+        return true;
+
+    if (fSize != toCompare.fSize)
+        return false;
+
+    for (unsigned int index = 0; index < fSize; index++)
+    {
+        if (fArray[index] != toCompare.fArray[index])
+            return false;
+    }
+
+    return true;
+}
+
+template <class TElem> bool ValueArrayOf<TElem>::
+operator!=(const ValueArrayOf<TElem>& toCompare) const
+{
+    return !operator==(toCompare);
+}
+
+
+// ---------------------------------------------------------------------------
+//  ValueArrayOf: Copy operations
+// ---------------------------------------------------------------------------
+template <class TElem> unsigned int ValueArrayOf<TElem>::
+copyFrom(const ValueArrayOf<TElem>& srcArray)
+{
+    //
+    //  Copy over as many of the source elements as will fit into
+    //  this array.
+    //
+    const unsigned int count = fSize < srcArray.fSize ?
+                                fSize : srcArray.fSize;
+
+    for (unsigned int index = 0; index < count; index++)
+        fArray[index] = srcArray.fArray[index];
+
+    return count;
+}
+
+
+// ---------------------------------------------------------------------------
+//  ValueArrayOf: Getter methods
+// ---------------------------------------------------------------------------
+template <class TElem> unsigned int ValueArrayOf<TElem>::
+length() const
+{
+    return fSize;
+}
+
+template <class TElem> TElem* ValueArrayOf<TElem>::
+rawData() const
+{
+    return fArray;
+}
+
+
+// ---------------------------------------------------------------------------
+//  ValueArrayOf: Miscellaneous methods
+// ---------------------------------------------------------------------------
+template <class TElem> void ValueArrayOf<TElem>::
+resize(const unsigned int newSize)
+{
+    if (newSize == fSize)
+        return;
+
+    if (newSize < fSize)
+        ThrowXMLwithMemMgr(IllegalArgumentException, XMLExcepts::Array_BadNewSize, fMemoryManager);
+
+    // Allocate the new array
+    TElem* newArray = (TElem*) fMemoryManager->allocate
+    (
+        newSize * sizeof(TElem)
+    ); //new TElem[newSize];
+
+    // Copy the existing values
+    unsigned int index = 0;
+    for (; index < fSize; index++)
+        newArray[index] = fArray[index];
+
+    for (; index < newSize; index++)
+        newArray[index] = TElem(0);
+
+    // Delete the old array and udpate our members
+    fMemoryManager->deallocate(fArray); //delete [] fArray;
+    fArray = newArray;
+    fSize = newSize;
+}
+
+
+
+// ---------------------------------------------------------------------------
+//  ValueArrayEnumerator: Constructors and Destructor
+// ---------------------------------------------------------------------------
+template <class TElem> ValueArrayEnumerator<TElem>::
+ValueArrayEnumerator(ValueArrayOf<TElem>* const toEnum, const bool adopt) :
+    fAdopted(adopt)
+    , fCurIndex(0)
+    , fToEnum(toEnum)
+{
+}
+
+template <class TElem> ValueArrayEnumerator<TElem>::~ValueArrayEnumerator()
+{
+    if (fAdopted)
+        delete fToEnum;
+}
+
+
+// ---------------------------------------------------------------------------
+//  ValueArrayEnumerator: Enum interface
+// ---------------------------------------------------------------------------
+template <class TElem> bool ValueArrayEnumerator<TElem>::hasMoreElements() const
+{
+    if (fCurIndex >= fToEnum->length())
+        return false;
+    return true;
+}
+
+template <class TElem> TElem& ValueArrayEnumerator<TElem>::nextElement()
+{
+    return (*fToEnum)[fCurIndex++];
+}
+
+template <class TElem> void ValueArrayEnumerator<TElem>::Reset()
+{
+    fCurIndex = 0;
+}
+
+XERCES_CPP_NAMESPACE_END
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/TransENameMap.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/TransENameMap.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/TransENameMap.hpp	(revision 2674)
@@ -0,0 +1,163 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+#if !defined(TRANSENAMEMAP_HPP)
+#define TRANSENAMEMAP_HPP
+
+#include <xercesc/util/TransService.hpp>
+#include <xercesc/util/XMLString.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+//
+//  This class is really private to the TransService class. However, some
+//  compilers are too dumb to allow us to hide this class there in the Cpp
+//  file that uses it.
+//
+class ENameMap : public XMemory
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Destructor
+    // -----------------------------------------------------------------------
+    virtual ~ENameMap()
+    {
+        //delete [] fEncodingName;
+        XMLPlatformUtils::fgMemoryManager->deallocate(fEncodingName);
+    }
+
+
+
+    // -----------------------------------------------------------------------
+    //  Virtual factory method
+    // -----------------------------------------------------------------------
+    virtual XMLTranscoder* makeNew
+    (
+        const   unsigned int    blockSize
+        , MemoryManager*  const manager = XMLPlatformUtils::fgMemoryManager
+    )   const = 0;
+
+
+    // -----------------------------------------------------------------------
+    //  Getter methods
+    // -----------------------------------------------------------------------
+    const XMLCh* getKey() const
+    {
+        return fEncodingName;
+    }
+
+
+protected :
+    // -----------------------------------------------------------------------
+    //  Hidden constructors
+    // -----------------------------------------------------------------------
+    ENameMap(const XMLCh* const encodingName) :
+          fEncodingName(XMLString::replicate(encodingName, XMLPlatformUtils::fgMemoryManager))
+    {
+    }
+
+
+private :
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    ENameMap();
+    ENameMap(const ENameMap&);
+    ENameMap& operator=(const ENameMap&);
+
+
+    // -----------------------------------------------------------------------
+    //  Private data members
+    //
+    //  fEncodingName
+    //      This is the encoding name for the transcoder that is controlled
+    //      by this map instance.
+    // -----------------------------------------------------------------------
+    XMLCh*  fEncodingName;
+};
+
+
+template <class TType> class ENameMapFor : public ENameMap
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+    ENameMapFor(const XMLCh* const encodingName);
+    ~ENameMapFor();
+
+
+    // -----------------------------------------------------------------------
+    //  Implementation of virtual factory method
+    // -----------------------------------------------------------------------
+    virtual XMLTranscoder* makeNew(const unsigned int blockSize,
+                                   MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager) const;
+
+
+private :
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    ENameMapFor();
+    ENameMapFor(const ENameMapFor<TType>&);
+    ENameMapFor<TType>& operator=(const ENameMapFor<TType>&);
+};
+
+
+template <class TType> class EEndianNameMapFor : public ENameMap
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+    EEndianNameMapFor(const XMLCh* const encodingName, const bool swapped);
+    ~EEndianNameMapFor();
+
+
+    // -----------------------------------------------------------------------
+    //  Implementation of virtual factory method
+    // -----------------------------------------------------------------------
+    virtual XMLTranscoder* makeNew(const unsigned int blockSize,
+                                   MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager) const;
+
+
+private :
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    EEndianNameMapFor(const EEndianNameMapFor<TType>&);
+    EEndianNameMapFor<TType>& operator=(const EEndianNameMapFor<TType>&);
+
+
+    // -----------------------------------------------------------------------
+    //  Private data members
+    //
+    //  fSwapped
+    //      Indicates whether the endianess of the encoding is opposite of
+    //      that of the local host.
+    // -----------------------------------------------------------------------
+    bool    fSwapped;
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#if !defined(XERCES_TMPLSINC)
+#include <xercesc/util/TransENameMap.c>
+#endif
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/IllegalArgumentException.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/IllegalArgumentException.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/IllegalArgumentException.hpp	(revision 2674)
@@ -0,0 +1,35 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: IllegalArgumentException.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+#if !defined(ILLEGALARGUMENTEXCEPTION_HPP)
+#define ILLEGALARGUMENTEXCEPTION_HPP
+
+#include <xercesc/util/XercesDefs.hpp>
+#include <xercesc/util/XMLException.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+MakeXMLException(IllegalArgumentException, XMLUTIL_EXPORT)
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/XMLUTF8Transcoder.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/XMLUTF8Transcoder.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/XMLUTF8Transcoder.hpp	(revision 2674)
@@ -0,0 +1,114 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef XMLUTF8TRANSCODER_HPP
+#define XMLUTF8TRANSCODER_HPP
+
+#include <xercesc/util/XercesDefs.hpp>
+#include <xercesc/util/TransService.hpp>
+#include <xercesc/util/UTFDataFormatException.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+//
+//  This class provides an implementation of the XMLTranscoder interface
+//  for a simple UTF8 transcoder. The parser does some encodings
+//  intrinsically without depending upon external transcoding services.
+//  To make everything more orthagonal, we implement these internal
+//  transcoders using the same transcoder abstraction as the pluggable
+//  transcoding services do.
+//
+class XMLUTIL_EXPORT XMLUTF8Transcoder : public XMLTranscoder
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Public constructors and destructor
+    // -----------------------------------------------------------------------
+    XMLUTF8Transcoder
+    (
+        const   XMLCh* const    encodingName
+        , const unsigned int    blockSize
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    virtual ~XMLUTF8Transcoder();
+
+
+    // -----------------------------------------------------------------------
+    //  Implementation of the XMLTranscoder interface
+    // -----------------------------------------------------------------------
+    virtual unsigned int transcodeFrom
+    (
+        const   XMLByte* const          srcData
+        , const unsigned int            srcCount
+        ,       XMLCh* const            toFill
+        , const unsigned int            maxChars
+        ,       unsigned int&           bytesEaten
+        ,       unsigned char* const    charSizes
+    );
+
+    virtual unsigned int transcodeTo
+    (
+        const   XMLCh* const    srcData
+        , const unsigned int    srcCount
+        ,       XMLByte* const  toFill
+        , const unsigned int    maxBytes
+        ,       unsigned int&   charsEaten
+        , const UnRepOpts       options
+    );
+
+    virtual bool canTranscodeTo
+    (
+        const   unsigned int    toCheck
+    )   const;
+
+
+private :
+
+    inline void checkTrailingBytes(
+                                    const XMLByte      toCheck
+                                  , const unsigned int trailingBytes
+                                  , const unsigned int position       
+                                  ) const;
+
+private :
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    XMLUTF8Transcoder(const XMLUTF8Transcoder&);
+    XMLUTF8Transcoder& operator=(const XMLUTF8Transcoder&);
+};
+
+inline 
+void XMLUTF8Transcoder::checkTrailingBytes(const XMLByte      toCheck
+                                          , const unsigned int trailingBytes
+                                          , const unsigned int position) const
+{
+
+    if((toCheck & 0xC0) != 0x80) 
+    {
+        char len[2]  = {(char)(trailingBytes+0x31), 0};
+        char pos[2]  = {(char)(position+0x31), 0};
+        char byte[2] = {toCheck,0};
+        ThrowXMLwithMemMgr3(UTFDataFormatException, XMLExcepts::UTF8_FormatError, pos, byte, len, getMemoryManager());
+    }
+
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/XMLChTranscoder.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/XMLChTranscoder.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/XMLChTranscoder.hpp	(revision 2674)
@@ -0,0 +1,86 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef XMLCHTRANSCODER_HPP
+#define XMLCHTRANSCODER_HPP
+
+#include <xercesc/util/XercesDefs.hpp>
+#include <xercesc/util/TransService.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+//
+//  This class provides an implementation of the XMLTranscoder interface
+//  for a simple XMLCh transcoder. This is used for internal entities, which
+//  are already in the native XMLCh format.
+//
+class XMLUTIL_EXPORT XMLChTranscoder : public XMLTranscoder
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Public constructors and destructor
+    // -----------------------------------------------------------------------
+    XMLChTranscoder
+    (
+        const   XMLCh* const    encodingName
+        , const unsigned int    blockSize
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    virtual ~XMLChTranscoder();
+
+
+    // -----------------------------------------------------------------------
+    //  Implementation of the XMLTranscoder interface
+    // -----------------------------------------------------------------------
+    virtual unsigned int transcodeFrom
+    (
+        const   XMLByte* const          srcData
+        , const unsigned int            srcCount
+        ,       XMLCh* const            toFill
+        , const unsigned int            maxChars
+        ,       unsigned int&           bytesEaten
+        ,       unsigned char* const    charSizes
+    );
+
+    virtual unsigned int transcodeTo
+    (
+        const   XMLCh* const    srcData
+        , const unsigned int    srcCount
+        ,       XMLByte* const  toFill
+        , const unsigned int    maxBytes
+        ,       unsigned int&   charsEaten
+        , const UnRepOpts       options
+    );
+
+    virtual bool canTranscodeTo
+    (
+        const   unsigned int    toCheck
+    )   const;
+
+
+private :
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    XMLChTranscoder(const XMLChTranscoder&);
+    XMLChTranscoder& operator=(const XMLChTranscoder&);
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Transcoders/Cygwin/CygwinTransService.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Transcoders/Cygwin/CygwinTransService.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Transcoders/Cygwin/CygwinTransService.hpp	(revision 2674)
@@ -0,0 +1,259 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+#ifndef CYGWINTRANSSERVICE_HPP
+#define CYGWINTRANSSERVICE_HPP
+
+#include <xercesc/util/TransService.hpp>
+#include <xercesc/util/RefHashTableOf.hpp>
+#include <windows.h>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class CPMapEntry;
+
+
+
+//---------------------------------------------------------------------------
+//
+//  class CygwinTransService
+//
+//---------------------------------------------------------------------------
+class XMLUTIL_EXPORT CygwinTransService : public XMLTransService
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+    CygwinTransService();
+    virtual ~CygwinTransService();
+
+
+    // -----------------------------------------------------------------------
+    //  Implementation of the virtual transcoding service API
+    // -----------------------------------------------------------------------
+    virtual int compareIString
+    (
+        const   XMLCh* const    comp1
+        , const XMLCh* const    comp2
+    );
+
+    virtual int compareNIString
+    (
+        const   XMLCh* const    comp1
+        , const XMLCh* const    comp2
+        , const unsigned int    maxChars
+    );
+
+    virtual const XMLCh* getId() const;
+
+    virtual bool isSpace(const XMLCh toCheck) const;
+
+    virtual XMLLCPTranscoder* makeNewLCPTranscoder();
+
+    virtual bool supportsSrcOfs() const;
+
+    virtual void upperCase(XMLCh* const toUpperCase) const;
+    virtual void lowerCase(XMLCh* const toLowerCase) const;
+
+
+protected :
+    // -----------------------------------------------------------------------
+    //  Protected virtual methods, implemented in CygwinTransService.cpp
+    // -----------------------------------------------------------------------
+    virtual XMLTranscoder* makeNewXMLTranscoder
+    (
+        const   XMLCh* const            encodingName
+        ,       XMLTransService::Codes& resValue
+        , const unsigned int            blockSize
+        ,       MemoryManager* const    manager
+    );
+
+private :
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    CygwinTransService(const CygwinTransService&);
+    CygwinTransService& operator=(const CygwinTransService&);
+
+    int auxCompareString
+    (
+        const   XMLCh* const  comp1
+        , const XMLCh* const  comp2
+        , signed long         maxChars
+        , const  bool         ignoreCase
+    );
+
+    static bool isAlias(const HKEY          encodingKey
+                    ,       char* const     aliasBuf = 0
+                    , const unsigned int    nameBufSz = 0);
+
+
+    //      This is a hash table of entries which map encoding names to their
+    //      Windows specific code pages. The code page allows us to create
+    //      transcoders for those encodings. The encoding names come from XML
+    //      files.
+    //
+    //      This map is shared unsynchronized among all threads of the process,
+    //      which is cool since it will be read only once its initialized.
+
+    RefHashTableOf<CPMapEntry>    *fCPMap;
+};
+
+
+
+
+
+
+
+//---------------------------------------------------------------------------
+//
+//  class CygwinTranscoder
+//
+//---------------------------------------------------------------------------
+
+class XMLUTIL_EXPORT CygwinTranscoder : public XMLTranscoder
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+    CygwinTranscoder
+    (
+        const   XMLCh* const    encodingName
+        , const unsigned int    winCP
+        , const unsigned int    ieCP
+        , const unsigned int    blockSize
+        , MemoryManager* const  manager = XMLPlatformUtils::fgMemoryManager);
+    ~CygwinTranscoder();
+
+
+    // -----------------------------------------------------------------------
+    //  Implementation of the virtual transcoder interface
+    // -----------------------------------------------------------------------
+    virtual unsigned int transcodeFrom
+    (
+        const   XMLByte* const          srcData
+        , const unsigned int            srcCount
+        ,       XMLCh* const            toFill
+        , const unsigned int            maxChars
+        ,       unsigned int&           bytesEaten
+        ,       unsigned char* const    charSizes
+    );
+
+    virtual unsigned int transcodeTo
+    (
+        const   XMLCh* const    srcData
+        , const unsigned int    srcCount
+        ,       XMLByte* const  toFill
+        , const unsigned int    maxBytes
+        ,       unsigned int&   charsEaten
+        , const UnRepOpts       options
+    );
+
+    virtual bool canTranscodeTo
+    (
+        const   unsigned int    toCheck
+    )   const;
+
+
+private :
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    CygwinTranscoder(const CygwinTranscoder&);
+    CygwinTranscoder& operator=(const CygwinTranscoder&);
+
+
+    // -----------------------------------------------------------------------
+    //  Private data members
+    //
+    //  fIECP
+    //      This is the internet explorer code page for this encoding.
+    //
+    //  fWinCP
+    //      This is the windows code page for this encoding.
+    // -----------------------------------------------------------------------
+    unsigned int    fIECP;
+    unsigned int    fWinCP;
+};
+
+
+
+
+
+//---------------------------------------------------------------------------
+//
+//  class CygwinLCPTranscoder
+//
+//---------------------------------------------------------------------------
+class XMLUTIL_EXPORT CygwinLCPTranscoder : public XMLLCPTranscoder
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+    CygwinLCPTranscoder();
+    ~CygwinLCPTranscoder();
+
+
+    // -----------------------------------------------------------------------
+    //  Implementation of the virtual transcoder interface
+    // -----------------------------------------------------------------------
+    virtual unsigned int calcRequiredSize(const char* const srcText
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+
+    virtual unsigned int calcRequiredSize(const XMLCh* const srcText
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+
+    virtual char* transcode(const XMLCh* const toTranscode);
+    virtual char* transcode(const XMLCh* const toTranscode,
+                            MemoryManager* const manager);
+
+    virtual XMLCh* transcode(const char* const toTranscode);
+    virtual XMLCh* transcode(const char* const toTranscode,
+                             MemoryManager* const manager);
+
+    virtual bool transcode
+    (
+        const   char* const     toTranscode
+        ,       XMLCh* const    toFill
+        , const unsigned int    maxChars
+        , MemoryManager* const  manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    virtual bool transcode
+    (
+        const   XMLCh* const    toTranscode
+        ,       char* const     toFill
+        , const unsigned int    maxChars
+        , MemoryManager* const  manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+
+private :
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    CygwinLCPTranscoder(const CygwinLCPTranscoder&);
+    CygwinLCPTranscoder& operator=(const CygwinLCPTranscoder&);
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Transcoders/ICU/ICUTransService.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Transcoders/ICU/ICUTransService.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Transcoders/ICU/ICUTransService.hpp	(revision 2674)
@@ -0,0 +1,242 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: ICUTransService.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#ifndef ICUTRANSSERVICE_HPP
+#define ICUTRANSSERVICE_HPP
+
+#include <xercesc/util/Mutexes.hpp>
+#include <xercesc/util/TransService.hpp>
+
+struct UConverter;
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class XMLUTIL_EXPORT ICUTransService : public XMLTransService
+{
+public :
+    friend class Uniconv390TransService;
+    // -----------------------------------------------------------------------
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+    ICUTransService();
+    ~ICUTransService();
+
+
+    // -----------------------------------------------------------------------
+    //  Implementation of the virtual transcoding service API
+    // -----------------------------------------------------------------------
+    virtual int compareIString
+    (
+        const   XMLCh* const    comp1
+        , const XMLCh* const    comp2
+    );
+
+    virtual int compareNIString
+    (
+        const   XMLCh* const    comp1
+        , const XMLCh* const    comp2
+        , const unsigned int    maxChars
+    );
+
+    virtual const XMLCh* getId() const;
+
+    virtual bool isSpace(const XMLCh toCheck) const;
+
+    virtual XMLLCPTranscoder* makeNewLCPTranscoder();
+
+    virtual bool supportsSrcOfs() const;
+
+    virtual void upperCase(XMLCh* const toUpperCase) const;
+    virtual void lowerCase(XMLCh* const toLowerCase) const;
+
+
+protected :
+    // -----------------------------------------------------------------------
+    //  Protected virtual methods
+    // -----------------------------------------------------------------------
+    virtual XMLTranscoder* makeNewXMLTranscoder
+    (
+        const   XMLCh* const            encodingName
+        ,       XMLTransService::Codes& resValue
+        , const unsigned int            blockSize
+        ,       MemoryManager* const    manager
+    );
+
+
+private :
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    ICUTransService(const ICUTransService&);
+    ICUTransService& operator=(const ICUTransService&);
+};
+
+
+
+class XMLUTIL_EXPORT ICUTranscoder : public XMLTranscoder
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+    ICUTranscoder
+    (
+        const   XMLCh* const        encodingName
+        ,       UConverter* const   toAdopt
+        , const unsigned int        blockSize
+        , MemoryManager* const      manager = XMLPlatformUtils::fgMemoryManager
+    );
+    ~ICUTranscoder();
+
+
+    // -----------------------------------------------------------------------
+    //  Implementation of the virtual transcoder interface
+    // -----------------------------------------------------------------------
+    virtual unsigned int transcodeFrom
+    (
+        const   XMLByte* const          srcData
+        , const unsigned int            srcCount
+        ,       XMLCh* const            toFill
+        , const unsigned int            maxChars
+        ,       unsigned int&           bytesEaten
+        ,       unsigned char* const    charSizes
+    );
+
+    virtual unsigned int transcodeTo
+    (
+        const   XMLCh* const    srcData
+        , const unsigned int    srcCount
+        ,       XMLByte* const  toFill
+        , const unsigned int    maxBytes
+        ,       unsigned int&   charsEaten
+        , const UnRepOpts       options
+    );
+
+    virtual bool canTranscodeTo
+    (
+        const   unsigned int    toCheck
+    )   const;
+
+
+
+private :
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    ICUTranscoder();
+    ICUTranscoder(const ICUTranscoder&);
+    ICUTranscoder& operator=(const ICUTranscoder&);
+
+
+    // -----------------------------------------------------------------------
+    //  Private data members
+    //
+    //  fConverter
+    //      This is a pointer to the ICU converter that this transcoder
+    //      uses.
+    //
+    //  fFixed
+    //      This is set to true if the encoding is a fixed size one. This
+    //      can be used to optimize some operations.
+    //
+    //  fSrcOffsets
+    //      This is an array of longs, which are allocated to the size of
+    //      the trancoding block (if any) indicated in the ctor. It is used
+    //      to get the character offsets from ICU, which are then translated
+    //      into an array of char sizes for return.
+    // -----------------------------------------------------------------------
+    UConverter*     fConverter;
+    bool            fFixed;
+    XMLUInt32*      fSrcOffsets;
+};
+
+
+class XMLUTIL_EXPORT ICULCPTranscoder : public XMLLCPTranscoder
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+    ICULCPTranscoder(UConverter* const toAdopt);
+    ~ICULCPTranscoder();
+
+
+    // -----------------------------------------------------------------------
+    //  Implementation of the virtual transcoder interface
+    // -----------------------------------------------------------------------
+    virtual unsigned int calcRequiredSize(const char* const srcText
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+
+    virtual unsigned int calcRequiredSize(const XMLCh* const srcText
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+
+    virtual char* transcode(const XMLCh* const toTranscode);
+    virtual char* transcode(const XMLCh* const toTranscode,
+                            MemoryManager* const manager);
+
+    virtual XMLCh* transcode(const char* const toTranscode);
+    virtual XMLCh* transcode(const char* const toTranscode,
+                             MemoryManager* const manager);
+
+    virtual bool transcode
+    (
+        const   char* const     toTranscode
+        ,       XMLCh* const    toFill
+        , const unsigned int    maxChars
+        , MemoryManager* const  manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    virtual bool transcode
+    (
+        const   XMLCh* const    toTranscode
+        ,       char* const     toFill
+        , const unsigned int    maxChars
+        , MemoryManager* const  manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+
+
+private :
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    ICULCPTranscoder();
+    ICULCPTranscoder(const ICULCPTranscoder&);
+    ICULCPTranscoder& operator=(const ICULCPTranscoder&);
+
+
+    // -----------------------------------------------------------------------
+    //  Private data members
+    //
+    //  fConverter
+    //      This is a pointer to the ICU converter that this transcoder
+    //      uses.
+    //
+    //  fMutex
+    //      We have to synchronize threaded calls to the converter.
+    // -----------------------------------------------------------------------
+    UConverter*     fConverter;
+    XMLMutex        fMutex;
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Transcoders/MacOSUnicodeConverter/MacOSUnicodeConverter.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Transcoders/MacOSUnicodeConverter/MacOSUnicodeConverter.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Transcoders/MacOSUnicodeConverter/MacOSUnicodeConverter.hpp	(revision 2674)
@@ -0,0 +1,279 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: MacOSUnicodeConverter.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#ifndef MACOSUNICODECONVERTER_HPP
+#define MACOSUNICODECONVERTER_HPP
+
+#include <cstddef>
+#include <xercesc/util/TransService.hpp>
+#include <xercesc/util/Mutexes.hpp>
+
+#if defined(__APPLE__)
+    //	Framework includes from ProjectBuilder
+    #include <CoreServices/CoreServices.h>
+#else
+    //	Classic includes otherwise
+    #include <UnicodeConverter.h>
+#endif
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+//
+//  The transcoding service has to provide a couple of required string
+//  and character operations, but its most important service is the creation
+//  of transcoder objects. There are two types of transcoders, which are
+//  discussed below in the XMLTranscoder class' description.
+//
+class XMLUTIL_EXPORT MacOSUnicodeConverter : public XMLTransService
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Public Constructors and Destructor
+    // -----------------------------------------------------------------------
+    ~MacOSUnicodeConverter();
+
+    // -----------------------------------------------------------------------
+    //  Implementation of the virtual transcoding service API
+    // -----------------------------------------------------------------------
+    virtual int compareIString
+    (
+        const   XMLCh* const    comp1
+        , const XMLCh* const    comp2
+    );
+
+    virtual int compareNIString
+    (
+        const   XMLCh* const    comp1
+        , const XMLCh* const    comp2
+        , const unsigned int    maxChars
+    );
+
+    virtual const XMLCh* getId() const;
+
+    virtual bool isSpace(const XMLCh toCheck) const;
+
+    virtual XMLLCPTranscoder* makeNewLCPTranscoder();
+
+    virtual bool supportsSrcOfs() const;
+
+    virtual void upperCase(XMLCh* const toUpperCase) const;
+    virtual void lowerCase(XMLCh* const toLowerCase) const;
+
+protected :
+    // -----------------------------------------------------------------------
+    //  Hidden constructors
+    // -----------------------------------------------------------------------
+    MacOSUnicodeConverter();
+
+    // -----------------------------------------------------------------------
+    //  Protected virtual methods
+    // -----------------------------------------------------------------------
+    virtual XMLTranscoder* makeNewXMLTranscoder
+    (
+        const   XMLCh* const            encodingName
+        ,       XMLTransService::Codes& resValue
+        , const unsigned int            blockSize
+        ,       MemoryManager* const    manager
+    );
+    virtual XMLTranscoder* makeNewXMLTranscoder
+    (
+        const   XMLCh* const            encodingName
+        ,       XMLTransService::Codes& resValue
+        , const unsigned int            blockSize
+        ,		TextEncoding			textEncoding
+        ,       MemoryManager* const    manager
+    );
+
+    //	Sniff for available functionality
+    static bool IsMacOSUnicodeConverterSupported(void);
+
+
+private :
+	friend class XMLPlatformUtils;
+	
+	static const XMLCh fgMyServiceId[];			// Name of the our unicode converter
+	static const XMLCh fgMacLCPEncodingName[];	// Name of the LCP transcoder we create
+
+	bool		fHasUnicodeCollation;			// True if unicode collation is available
+	CollatorRef	fCollator;						// Our collator
+	
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    MacOSUnicodeConverter(const MacOSUnicodeConverter&);
+    MacOSUnicodeConverter& operator=(const MacOSUnicodeConverter&);
+
+    // -----------------------------------------------------------------------
+    //  Private methods
+    // -----------------------------------------------------------------------
+	void ConvertWideToNarrow(const XMLCh* wide, char* narrow, std::size_t maxChars);
+	
+	//  Figure out what text encoding to use for LCP transcoder
+	TextEncoding discoverLCPEncoding();
+
+};
+
+
+//
+//  This type of transcoder is for non-local code page encodings, i.e.
+//  named encodings. These are used internally by the scanner to internalize
+//  raw XML into the internal Unicode format, and by writer classes to
+//  convert that internal Unicode format (which comes out of the parser)
+//  back out to a format that the receiving client code wants to use.
+//
+class XMLUTIL_EXPORT MacOSTranscoder : public XMLTranscoder
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+    MacOSTranscoder(
+	    const XMLCh* const		encodingName,
+	    TECObjectRef			textToUnicode,
+	    TECObjectRef			unicodeToText,
+	    const unsigned int		blockSize,
+	    MemoryManager* const    manager = XMLPlatformUtils::fgMemoryManager
+		);
+    ~MacOSTranscoder();
+
+
+    // -----------------------------------------------------------------------
+    //  The virtual transcoding interface
+    // -----------------------------------------------------------------------
+    virtual unsigned int transcodeFrom
+    (
+        const   XMLByte* const          srcData
+        , const unsigned int            srcCount
+        ,       XMLCh* const            toFill
+        , const unsigned int            maxChars
+        ,       unsigned int&           bytesEaten
+        ,       unsigned char* const    charSizes
+    );
+
+    virtual unsigned int transcodeTo
+    (
+        const   XMLCh* const    srcData
+        , const unsigned int    srcCount
+        ,       XMLByte* const  toFill
+        , const unsigned int    maxBytes
+        ,       unsigned int&   charsEaten
+        , const UnRepOpts       options
+    );
+
+    virtual bool canTranscodeTo
+    (
+        const   unsigned int    toCheck
+    )   const;
+
+
+
+
+private :
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    MacOSTranscoder(const MacOSTranscoder&);
+    MacOSTranscoder& operator=(const MacOSTranscoder&);
+
+    // -----------------------------------------------------------------------
+    //  Private members
+    // -----------------------------------------------------------------------
+    TECObjectRef	mTextToUnicode;
+    TECObjectRef	mUnicodeToText;
+};
+
+
+
+//
+//  This class is a specialized transcoder that only transcodes between
+//  the internal XMLCh format and the local code page. It is specialized
+//  for the very common job of translating data from the client app's
+//  native code page to the internal format and vice versa.
+//
+class XMLUTIL_EXPORT MacOSLCPTranscoder : public XMLLCPTranscoder
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+    MacOSLCPTranscoder(XMLTranscoder* const	transcoder, MemoryManager* const manager);
+    ~MacOSLCPTranscoder();
+
+
+    // -----------------------------------------------------------------------
+    //  The virtual transcoder API
+    //
+    //  NOTE:   All these APIs don't include null terminator characters in
+    //          their parameters. So calcRequiredSize() returns the number
+    //          of actual chars, not including the null. maxBytes and maxChars
+    //          parameters refer to actual chars, not including the null so
+    //          its assumed that the buffer is physically one char or byte
+    //          larger.
+    // -----------------------------------------------------------------------
+    virtual unsigned int calcRequiredSize(const char* const srcText
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+
+    virtual unsigned int calcRequiredSize(const XMLCh* const srcText
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+
+    virtual char* transcode(const XMLCh* const toTranscode);
+    virtual char* transcode(const XMLCh* const toTranscode,
+                            MemoryManager* const manager);
+
+    virtual XMLCh* transcode(const char* const toTranscode);
+    virtual XMLCh* transcode(const char* const toTranscode,
+                            MemoryManager* const manager);
+
+    virtual bool transcode
+    (
+        const   char* const     toTranscode
+        ,       XMLCh* const    toFill
+        , const unsigned int    maxChars
+        , MemoryManager* const  manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    virtual bool transcode
+    (
+        const   XMLCh* const    toTranscode
+        ,       char* const     toFill
+        , const unsigned int    maxChars
+        , MemoryManager* const  manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+
+private :
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    MacOSLCPTranscoder(const MacOSLCPTranscoder&);
+    MacOSLCPTranscoder& operator=(const MacOSLCPTranscoder&);
+
+    // -----------------------------------------------------------------------
+    //  Private data members
+    // -----------------------------------------------------------------------
+    XMLTranscoder* const	mTranscoder;
+	MemoryManager* const	mManager;
+	XMLMutex				mMutex;			// Mutex to enable rentrancy of LCP transcoder
+ };
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Transcoders/Iconv400/utypes.h
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Transcoders/Iconv400/utypes.h	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Transcoders/Iconv400/utypes.h	(revision 2674)
@@ -0,0 +1,231 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: utypes.h 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#ifndef UTYPES_H
+#define UTYPES_H
+#include <wchar.h>
+#include <stdlib.h>
+
+/*===========================================================================*/
+/* Include platform-dependent definitions                                    */
+/* which are contained in the platform-specific file platform.h              */
+/*===========================================================================*/
+
+#include "pos400.h"
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+/* XP_CPLUSPLUS is a cross-platform symbol which should be defined when
+   using C++.  It should not be defined when compiling under C. */
+#ifdef __cplusplus
+#   ifndef XP_CPLUSPLUS
+#       define XP_CPLUSPLUS
+#   endif
+#else
+#   undef XP_CPLUSPLUS
+#endif
+
+/*===========================================================================*/
+/* Boolean data type                                                         */
+/*===========================================================================*/
+
+#if ! HAVE_BOOL_T
+typedef int8_t bool_t;
+#endif
+
+#ifndef TRUE
+#   define TRUE  1
+#endif
+#ifndef FALSE
+#   define FALSE 0
+#endif
+
+/*===========================================================================*/
+/* Unicode string offset                                                     */
+/*===========================================================================*/
+typedef int32_t UTextOffset;
+
+/*===========================================================================*/
+/* Unicode character                                                         */
+/*===========================================================================*/
+typedef uint16_t UChar;
+
+
+/*===========================================================================*/
+/* For C wrappers, we use the symbol U_CAPI.                                 */
+/* This works properly if the includer is C or C++.                          */
+/* Functions are declared   U_CAPI return-type U_EXPORT2 function-name() ... */
+/*===========================================================================*/
+
+#ifdef XP_CPLUSPLUS
+#   define U_CFUNC extern "C"
+#   define U_CDECL_BEGIN extern "C" {
+#   define U_CDECL_END   }
+#else
+#   define U_CFUNC
+#   define U_CDECL_BEGIN
+#   define U_CDECL_END
+#endif
+#define U_CAPI U_CFUNC U_EXPORT
+
+
+/* Define NULL pointer value  if it isn't already defined */
+
+#ifndef NULL
+#ifdef XP_CPLUSPLUS
+#define NULL    0
+#else
+#define NULL    ((void *)0)
+#endif
+#endif
+
+/* Maximum value of a (void*) - use to indicate the limit of
+   an 'infinite' buffer.  */
+#define U_MAX_PTR ((void*)-1)
+
+
+
+/*===========================================================================*/
+/* UErrorCode                                                                */
+/*===========================================================================*/
+
+/** Error code to replace exception handling */
+#ifdef __OS400__
+enum UErrorCode1 {
+#else
+enum UErrorCode {
+#endif
+    U_ERROR_INFO_START        = -128,     /* Start of information results (semantically successful) */
+    U_USING_FALLBACK_ERROR    = -128,
+    U_USING_DEFAULT_ERROR     = -127,
+    U_ERROR_INFO_LIMIT,
+
+    U_ZERO_ERROR              =  0,       /* success */
+
+    U_ILLEGAL_ARGUMENT_ERROR  =  1,       /* Start of codes indicating failure */
+    U_MISSING_RESOURCE_ERROR  =  2,
+    U_INVALID_FORMAT_ERROR    =  3,
+    U_FILE_ACCESS_ERROR       =  4,
+    U_INTERNAL_PROGRAM_ERROR  =  5,       /* Indicates a bug in the library code */
+    U_MESSAGE_PARSE_ERROR     =  6,
+    U_MEMORY_ALLOCATION_ERROR =  7,       /* Memory allocation error */
+    U_INDEX_OUTOFBOUNDS_ERROR =  8,
+    U_PARSE_ERROR             =  9,       /* Equivalent to Java ParseException */
+    U_INVALID_CHAR_FOUND      = 10,       /* In the Character conversion routines: Invalid character or sequence was encountered*/
+    U_TRUNCATED_CHAR_FOUND    = 11,       /* In the Character conversion routines: More bytes are required to complete the conversion successfully*/
+    U_ILLEGAL_CHAR_FOUND      = 12,       /* In codeset conversion: a sequence that does NOT belong in the codepage has been encountered*/
+    U_INVALID_TABLE_FORMAT    = 13,       /* Conversion table file found, but corrupted*/
+    U_INVALID_TABLE_FILE      = 14,       /* Conversion table file not found*/
+    U_BUFFER_OVERFLOW_ERROR   = 15,       /* A result would not fit in the supplied buffer */
+    U_UNSUPPORTED_ERROR       = 16,       /* Requested operation not supported in current context */
+    U_ERROR_LIMIT
+};
+#ifdef __OS400__
+typedef int UErrorCode;
+#define U_SUCCESS(x) ((x)<=U_ZERO_ERROR)
+#define U_FAILURE(x) ((x)>U_ZERO_ERROR)
+#else
+#ifndef XP_CPLUSPLUS
+typedef enum UErrorCode UErrorCode;
+#endif
+#endif
+
+
+/* Use the following to determine if an UErrorCode represents */
+/* operational success or failure. */
+#ifndef __OS400__
+#ifdef XP_CPLUSPLUS
+inline bool_t U_SUCCESS(UErrorCode code) { return (bool_t)(code<=U_ZERO_ERROR); }
+inline bool_t U_FAILURE(UErrorCode code) { return (bool_t)(code>U_ZERO_ERROR); }
+#else
+#define U_SUCCESS(x) ((x)<=U_ZERO_ERROR)
+#define U_FAILURE(x) ((x)>U_ZERO_ERROR)
+#endif
+#endif
+
+/* Casting function for int32_t (backward compatibility version, here until
+   T_INT32 is replaced) */
+#define T_INT32(i) ((int32_t)i)
+
+
+/*===========================================================================*/
+/* Debugging                                                                 */
+/*===========================================================================*/
+
+/* remove this */
+
+/* This function is useful for debugging; it returns the text name */
+/* of an UErrorCode result.  This is not the most efficient way of */
+/* doing this but it's just for Debug builds anyway. */
+
+/* Do not use these arrays directly: they will move to a .c file! */
+static const char *
+_uErrorInfoName[U_ERROR_INFO_LIMIT-U_ERROR_INFO_START]={
+    "U_USING_FALLBACK_ERROR",
+    "U_USING_DEFAULT_ERROR"
+};
+
+static const char *
+_uErrorName[U_ERROR_LIMIT]={
+    "U_ZERO_ERROR",
+
+    "U_ILLEGAL_ARGUMENT_ERROR",
+    "U_MISSING_RESOURCE_ERROR",
+    "U_INVALID_FORMAT_ERROR",
+    "U_FILE_ACCESS_ERROR",
+    "U_INTERNAL_PROGRAM_ERROR",
+    "U_MESSAGE_PARSE_ERROR",
+    "U_MEMORY_ALLOCATION_ERROR",
+    "U_INDEX_OUTOFBOUNDS_ERROR",
+    "U_PARSE_ERROR",
+    "U_INVALID_CHAR_FOUND",
+    "U_TRUNCATED_CHAR_FOUND",
+    "U_ILLEGAL_CHAR_FOUND",
+    "U_INVALID_TABLE_FORMAT",
+    "U_INVALID_TABLE_FILE",
+    "U_BUFFER_OVERFLOW_ERROR",
+    "U_UNSUPPORTED_ERROR"
+};
+
+#ifdef XP_CPLUSPLUS
+inline const char *
+errorName(UErrorCode code)
+{
+    if(code>=0 && code<U_ERROR_LIMIT) {
+        return _uErrorName[code];
+    } else if(code>=U_ERROR_INFO_START && code<U_ERROR_INFO_LIMIT) {
+        return _uErrorInfoName[code-U_ERROR_INFO_START];
+    } else {
+        return "[BOGUS UErrorCode]";
+    }
+}
+#else
+#   define errorName(code) \
+        ((code)>=0 && (code)<U_ERROR_LIMIT) ? \
+            _uErrorName[code] : \
+            ((code)>=U_ERROR_INFO_START && (code)<U_ERROR_INFO_LIMIT) ? \
+                _uErrorInfoName[code-U_ERROR_INFO_START] : \
+                "[BOGUS UErrorCode]"
+#endif
+
+XERCES_CPP_NAMESPACE_END
+
+#endif /* _UTYPES */
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Transcoders/Iconv400/Iconv400TransService.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Transcoders/Iconv400/Iconv400TransService.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Transcoders/Iconv400/Iconv400TransService.hpp	(revision 2674)
@@ -0,0 +1,263 @@
+#if (__OS400_TGTVRM__>=510)                               /* @01a */
+    #pragma datamodel(P128)                               /* @01a */
+#endif                                                    /* @01a */
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * @02A           V5R2M0    200419   jrhansen : support lowercase function
+ * $Id: Iconv400TransService.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#ifndef ICONV400TRANSSERVICE_HPP
+#define ICONV400TRANSSERVICE_HPP
+
+#include <xercesc/util/Mutexes.hpp>
+#include <xercesc/util/TransService.hpp>
+#include <qlg.h>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+struct UConverter;
+
+class XMLUTIL_EXPORT Iconv400TransService : public XMLTransService
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Public, static methods
+    // -----------------------------------------------------------------------
+
+
+    // -----------------------------------------------------------------------
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+    Iconv400TransService();
+    ~Iconv400TransService();
+
+
+    // -----------------------------------------------------------------------
+    //  Implementation of the virtual transcoding service API
+    // -----------------------------------------------------------------------
+    virtual int compareIString
+    (
+        const   XMLCh* const    comp1
+        , const XMLCh* const    comp2
+    );
+
+    virtual int compareNIString
+    (
+        const   XMLCh* const    comp1
+        , const XMLCh* const    comp2
+        , const unsigned int    maxChars
+    );
+
+    virtual const XMLCh* getId() const;
+
+    virtual bool isSpace(const XMLCh toCheck) const;
+
+    virtual XMLLCPTranscoder* makeNewLCPTranscoder();
+
+    virtual bool supportsSrcOfs() const;
+
+    virtual void upperCase(XMLCh* const toUpperCase) const;
+    virtual void lowerCase(XMLCh* const toLowerCase) const;
+
+
+protected :
+    // -----------------------------------------------------------------------
+    //  Protected virtual methods
+    // -----------------------------------------------------------------------
+    virtual XMLTranscoder* makeNewXMLTranscoder
+    (
+        const   XMLCh* const            encodingName
+        ,       XMLTransService::Codes& resValue
+        , const unsigned int            blockSize
+        ,       MemoryManager* const    manager
+    );
+
+
+private :
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    Iconv400TransService(const Iconv400TransService&);
+    Iconv400TransService& operator=(const Iconv400TransService&);
+
+    XMLCh toUnicodeUpper(XMLCh toupper) const;
+    XMLCh toUnicodeLower(XMLCh tolower) const;
+
+    Qlg_CCSID_ReqCtlBlk_T convertCtlblkUpper;
+    Qlg_CCSID_ReqCtlBlk_T convertCtlblkLower;
+
+};
+
+
+
+class XMLUTIL_EXPORT Iconv400Transcoder : public XMLTranscoder
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+    Iconv400Transcoder
+    (
+        const   XMLCh* const      encodingName
+        ,       UConverter* const toAdopt
+        , const unsigned int      blockSize
+        , MemoryManager* const    manager = XMLPlatformUtils::fgMemoryManager
+    );
+    ~Iconv400Transcoder();
+
+    // -----------------------------------------------------------------------
+    //  Implementation of the virtual transcoder interface
+    // -----------------------------------------------------------------------
+    virtual unsigned int transcodeFrom
+    (
+        const   XMLByte* const          srcData
+        , const unsigned int            srcCount
+        ,       XMLCh* const            toFill
+        , const unsigned int            maxChars
+        ,       unsigned int&           bytesEaten
+        ,       unsigned char* const    charSizes
+    );
+
+    virtual unsigned int transcodeTo
+    (
+        const   XMLCh* const	srcData
+        , const unsigned int	srcCount
+        ,       XMLByte* const	toFill
+        , const unsigned int	maxBytes
+        ,       unsigned int&	charsEaten
+        , const UnRepOpts	options
+    );
+
+    virtual bool canTranscodeTo
+    (
+        const   unsigned int	toCheck
+    )   const;
+
+
+
+private :
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    Iconv400Transcoder();
+    Iconv400Transcoder(const Iconv400Transcoder&);
+    Iconv400Transcoder& operator=(const Iconv400Transcoder&);
+
+
+    // -----------------------------------------------------------------------
+    //  Private data members
+    //
+    //  fConverter
+    //      This is a pointer to the Iconv400 converter that this transcoder
+    //      uses.
+    //
+    //  fFixed
+    //      This is set to true if the encoding is a fixed size one. This
+    //      can be used to optimize some operations.
+    //
+    //  fSrcOffsets
+    //      This is an array of longs, which are allocated to the size of
+    //      the trancoding block (if any) indicated in the ctor. It is used
+    //      to get the character offsets from Iconv400, which are then translated
+    //      into an array of char sizes for return.
+    // -----------------------------------------------------------------------
+    UConverter*     fConverter;
+    bool            fFixed;
+    long*           fSrcOffsets;
+
+};
+
+
+class XMLUTIL_EXPORT Iconv400LCPTranscoder : public XMLLCPTranscoder
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+    Iconv400LCPTranscoder(UConverter* const toAdopt);
+    ~Iconv400LCPTranscoder();
+
+
+    // -----------------------------------------------------------------------
+    //  Implementation of the virtual transcoder interface
+    // -----------------------------------------------------------------------
+    virtual unsigned int calcRequiredSize(const char* const srcText
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+
+    virtual unsigned int calcRequiredSize(const XMLCh* const srcText
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+
+    virtual char* transcode(const XMLCh* const toTranscode);
+    virtual char* transcode(const XMLCh* const toTranscode,
+                            MemoryManager* const manager);
+
+    virtual XMLCh* transcode(const char* const toTranscode);
+    virtual XMLCh* transcode(const char* const toTranscode,
+                             MemoryManager* const manager);
+
+    virtual bool transcode
+    (
+        const   char* const     toTranscode
+        ,       XMLCh* const    toFill
+        , const unsigned int    maxChars
+        , MemoryManager* const  manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    virtual bool transcode
+    (
+        const   XMLCh* const    toTranscode
+        ,       char* const     toFill
+        , const unsigned int    maxChars
+        , MemoryManager* const  manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+
+
+private :
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    Iconv400LCPTranscoder();
+    Iconv400LCPTranscoder(const Iconv400LCPTranscoder&);
+    Iconv400LCPTranscoder& operator=(const Iconv400LCPTranscoder&);
+
+
+    // -----------------------------------------------------------------------
+    //  Private data members
+    //
+    //  fConverter
+    //      This is a pointer to the Iconv converter that this transcoder
+    //      uses.
+    //
+    //  fMutex
+    //      We have to synchronize threaded calls to the converter.
+    // -----------------------------------------------------------------------
+    UConverter*     fConverter;
+    XMLMutex        fMutex;
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
+#if (__OS400_TGTVRM__>=510)                                /* @01a */  
+     #pragma datamodel(pop)                                /* @01a */ 
+#endif                                                     /* @01a */
+
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Transcoders/Iconv400/iconv_util.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Transcoders/Iconv400/iconv_util.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Transcoders/Iconv400/iconv_util.hpp	(revision 2674)
@@ -0,0 +1,124 @@
+#if (__OS400_TGTVRM__>=510)                               /* @01a */
+    #pragma datamodel(P128)                               /* @01a */
+#endif                                                    /* @01a */
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: iconv_util.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+#include "utypes.h"
+#include <iconv.h>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+const char* iconv_getDefaultCodepage(void);
+
+// extern "C" int QlgCvtTextDescToDesc (int, int, char *, int, char*, int, int);
+
+#define MAX_CONVERTER_NAME_LENGTH 60
+#define MAX_SUBCHAR_LEN 4
+#define ERROR_BUFFER_LENGTH 20
+typedef enum {UNKNOWN = -1, IBM = 0}
+UCNV_PLATFORM;
+typedef enum
+{
+  UNSUPPORTED_CONVERTER = -1,
+  SBCS = 0,
+  DBCS = 1,
+  MBCS = 2,
+  LATIN_1 = 3,
+  UTF8 = 4,
+  UTF16_BigEndian = 5,
+  UTF16_LittleEndian = 6,
+  EBCDIC_STATEFUL = 7,
+  ISO_2022 = 8,
+  JIS = 9,
+  EUC = 10,
+  GB = 11
+}
+UCNV_TYPE;
+int32_t
+u_strlen(const UChar *s);
+
+/* note sure if needed -  think that this is needed in cnv.c */
+char* u_austrcpy(char *s1,
+         const UChar *ucs2 );
+
+/*Defines the struct of a UConverterSharedData the immutable, shared part of
+ *UConverter
+ */
+typedef struct
+  {
+    uint32_t referenceCounter;	/*used to count number of clients */
+    char name[MAX_CONVERTER_NAME_LENGTH];	/*internal name of the converter */
+    UCNV_PLATFORM platform;	/*platform of the converter (only IBM now */
+    int32_t codepage;		/*codepage # (now IBM-$codepage) */
+    UCNV_TYPE conversionType;	/*conversion type */
+    int8_t minBytesPerChar;	/*Minimum # bytes per char in this codepage */
+    int8_t maxBytesPerChar;	/*Maximum # bytes per char in this codepage */
+
+    struct
+      {				/*initial values of some members of the mutable part of object */
+
+	int8_t subCharLen;
+	unsigned char subChar[MAX_SUBCHAR_LEN];
+      } defaultConverterValues ;
+
+    iconv_t toiconv_handle ;     /* handle to convert to unicode*/
+    iconv_t fromiconv_handle;   /* handle to convert from unicode*/
+  }
+UConverterSharedData;
+
+
+/*Defines a UConverter, the lightweight mutable part the user sees */
+struct UConverter
+  {
+
+
+
+    int8_t pad;
+    int32_t mode;
+    int8_t subCharLen;		/*length of the codepage specific character sequence */
+    unsigned char subChar[MAX_SUBCHAR_LEN];	/*codepage specific character sequence */
+
+
+    UConverterSharedData *sharedData;	/*Pointer to the shared immutable part of the
+					 *converter object
+					 */
+
+
+  };
+
+typedef struct UConverter UConverter;
+
+UConverter* createNewConverter(const char *name, UErrorCode *err);
+
+/*Initializes the mutable lightweight portion of the object
+ *By copying data from UConverter->sharedData->defaultConverter
+ */
+static void   initializeDataConverter (UConverter * myUConverter);
+UConverter *createConverter (const char *converterName, UErrorCode * err);
+
+XERCES_CPP_NAMESPACE_END
+#if (__OS400_TGTVRM__>=510)                                /* @01a */  
+     #pragma datamodel(pop)                                /* @01a */ 
+#endif                                                     /* @01a */
+
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Transcoders/Iconv400/iconv_cnv.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Transcoders/Iconv400/iconv_cnv.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Transcoders/Iconv400/iconv_cnv.hpp	(revision 2674)
@@ -0,0 +1,311 @@
+#if (__OS400_TGTVRM__>=510)                               /* @01a */
+    #pragma datamodel(P128)                               /* @01a */
+#endif                                                    /* @01a */
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: iconv_cnv.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#ifndef UCNV_H
+#define UCNV_H
+
+#include "utypes.h"
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+/**
+ * Creates a UConverter object with the names specified as a C string.
+ * The actual name will be resolved with the alias file.
+ * if <TT>NULL</TT> is passed for the converter name, it will create one with the
+ * getDefaultName return value.
+ * @param converterName : name of the uconv table
+ * @param err outgoing error status <TT>MEMORY_ALLOCATION_ERROR, TABLE_NOT_FOUND</TT>
+ * @return the created Unicode converter object, or <TT>NULL</TT> if an error occured
+ * @see ucnv_openU
+ * @see ucnv_openCCSID
+ * @see ucnv_close
+ */
+
+U_CAPI
+UConverter* U_EXPORT2 ucnv_open   (const char *converterName,
+				   UErrorCode * err);
+
+
+/**
+ * Creates a Unicode converter with the names specified as unicode string. The name should be limited to
+ * the ASCII-7 alphanumerics range. The actual name will be resolved with the alias file.
+ * if <TT>NULL</TT> is passed for the converter name, it will create one with the
+ * getDefaultName return value.
+ * @param converterName : name of the uconv table in a zero terminated Unicode string
+ * @param err outgoing error status <TT>MEMORY_ALLOCATION_ERROR, TABLE_NOT_FOUND</TT>
+ * @return the created Unicode converter object, or <TT>NULL</TT> if an error occured
+ * @see ucnv_open
+ * @see ucnv_openCCSID
+ * @see ucnv_close
+ */
+U_CAPI UConverter* U_EXPORT2 ucnv_openU (const UChar * name,
+				       UErrorCode * err);
+
+
+
+/**
+ * Creates a UConverter object using a CCSID number.
+ * @param codepage : codepage # of the uconv table
+ * @param platform : codepage's platform (now only <TT>IBM</TT> supported)
+ * @param err error status <TT>MEMORY_ALLOCATION_ERROR, TABLE_NOT_FOUND</TT>
+ * @return the created Unicode converter object, or <TT>NULL</TT> if and error occured
+ * @see ucnv_open
+ * @see ucnv_openU
+ * @see ucnv_close
+ */
+
+
+U_CAPI void  U_EXPORT2 ucnv_close (UConverter * converter);
+
+
+
+
+/**
+ * Returns the maximum length of bytes used by a character. This varies between 1 and 4
+ * @param converter the Unicode converter
+ * @return the maximum number of bytes allowed by this particular converter
+ * @see ucnv_getMinCharSize
+ */
+U_CAPI int8_t U_EXPORT2
+    ucnv_getMaxCharSize (const UConverter * converter);
+
+
+/**
+ * Returns the minimum byte length for characters in this codepage. This is either
+ * 1 or 2 for all supported codepages.
+ * @param converter the Unicode converter
+ * @return the minimum number of bytes allowed by this particular converter
+ * @see ucnv_getMaxCharSize
+ */
+U_CAPI int8_t U_EXPORT2
+    ucnv_getMinCharSize (const UConverter * converter);
+
+
+/**
+ * Transcodes an array of unicode characters to an array of codepage characters.
+ * The source pointer is an I/O parameter, it starts out pointing where the function is
+ * to begin transcoding, and ends up pointing after the first sequence of the bytes
+ * that it encounters that are semantically invalid.
+ * if ucnv_setToUCallBack is called with an action other than <TT>STOP</TT>
+ * before a call is made to this API, <TT>consumed</TT> and <TT>source</TT> should point to the same place
+ * (unless <TT>target</TT> ends with an imcomplete sequence of bytes and <TT>flush</TT> is <TT>FALSE</TT>).
+ * the <TT>target</TT> buffer buffer needs to be a least the size of the maximum # of bytes per characters
+ * allowed by the target codepage.
+ * @param converter the Unicode converter
+ * @param converter the Unicode converter
+ * @param target : I/O parameter. Input : Points to the beginning of the buffer to copy
+ *  codepage characters to. Output : points to after the last codepage character copied
+ *  to <TT>target</TT>.
+ * @param targetLimit the pointer to the end of the <TT>target</TT> array
+ * @param source the source Unicode character array
+ * @param sourceLimit the pointer to the end of the source array
+ * @param offsets if NULL is passed, nothing will happen to it, otherwise it needs to have the same number
+ * of allocated cells as <TT>target</TT>. Will fill in offsets from target to source pointer
+ * e.g: <TT>offsets[3]</TT> is equal to 6, it means that the <TT>target[3]</TT> was a result of transcoding <TT>source[6]</TT>
+ * For output data carried across calls -1 will be placed for offsets.
+ * @param flush <TT>TRUE</TT> if the buffer is the last buffer of the conversion interation
+ * and the conversion will finish with this call, FALSE otherwise.
+ * @param err the error status.  <TT>ILLEGAL_ARGUMENT_ERROR</TT> will be returned if the
+ * converter is <TT>NULL</TT>.
+ * @see ucnv_fromUChars
+ * @see ucnv_convert
+ * @see ucnv_getMinCharSize
+ * @see ucnv_setToUCallBack
+ */
+
+U_CAPI
+  void U_EXPORT2 ucnv_fromUnicode (UConverter * converter,
+			 char **target,
+			 const char *targetLimit,
+			 const UChar ** source,
+			 const UChar * sourceLimit,
+			 int32_t* offsets,
+			 int flush,
+			 UErrorCode * err);
+
+
+/**
+ * Converts an array of codepage characters into an array of unicode characters.
+ * The source pointer is an I/O parameter, it starts out pointing at the place
+ * to begin translating, and ends up pointing after the first sequence of the bytes
+ * that it encounters that are semantically invalid.
+ * if ucnv_setFromUCallBack is called with an action other than STOP
+ * before a call is made to this API, consumed and source should point to the same place
+ * (unless target ends with an imcomplete sequence of bytes and flush is FALSE).
+ * @param converter the Unicode converter
+ * @param target : I/O parameter. Input : Points to the beginning of the buffer to copy
+ *  Unicode characters to. Output : points to after the last UChar copied to target.
+ * @param targetLimit the pointer to the end of the target array
+ * @param source the source codepage character array
+ * @param sourceLimit the pointer to the end of the source array
+ * @param offsets if NULL is passed, nothing will happen to it, otherwise it needs to have the same number
+ * of allocated cells as <TT>target</TT>. Will fill in offsets from target to source pointer
+ * e.g: <TT>offsets[3]</TT> is equal to 6, it means that the <TT>target[3]</TT> was a result of transcoding <TT>source[6]</TT>
+ * For output data carried across calls -1 will be placed for offsets.
+ * @param flush TRUE if the buffer is the last buffer and the conversion will finish
+ * in this call, FALSE otherwise.
+ * @param err the error code status  <TT>ILLEGAL_ARGUMENT_ERROR</TT> will be returned if the
+ * converter is <TT>NULL</TT>, or if <TT>targetLimit</TT> and <TT>sourceLimit</TT> are misaligned.
+ * @see ucnv_toUChars
+ * @see ucnv_getNextUChar
+ * @see ucnv_convert
+ * @see ucnv_setFromUCallBack
+ */
+
+U_CAPI
+  void U_EXPORT2 ucnv_toUnicode (UConverter * converter,
+		       UChar ** target,
+		       const UChar * targetLimit,
+		       const char **source,
+		       const char *sourceLimit,
+		       int32_t* offsets,
+		       int flush,
+		       UErrorCode * err);
+
+
+/**
+ * Transcodes the source Unicode string to the target string in a codepage encoding
+ * with the specified Unicode converter.  For example, if a Unicode to/from JIS
+ * converter is specified, the source string in Unicode will be transcoded to JIS
+ * encoding.  The result will be stored in JIS encoding.
+ * if any problems during conversion are encountered it will SUBSTITUTE with the default (initial)
+ * substitute characters.
+ * This function is a more convenient but less efficient version of \Ref{ucnv_fromUnicode}.
+ * @param converter the Unicode converter
+ * @param source the <TT>source</TT> Unicode string (zero Terminated)
+ * @param target the <TT>target</TT> string in codepage encoding (<STRONG>not zero-terminated</STRONG> because some
+ * codepage do not use '\0' as a string terminator
+ * @param targetCapacity Input the number of bytes available in the <TT>target</TT> buffer
+ * @param err the error status code.
+ * <TT>INDEX_OUTOFBOUNDS_ERROR</TT> will be returned if the
+ * the # of bytes provided are not enough for transcoding.
+ * <TT>ILLEGAL_ARGUMENT_ERROR</TT> is returned if the converter is <TT>NULL</TT> or the source or target string is empty.
+ * <TT>BUFFER_OVERFLOW_ERROR</TT> when <TT>targetSize</TT> turns out to be bigger than <TT>targetCapacity</TT>
+ * @return number of bytes needed in target, regardless of <TT>targetCapacity</TT>
+ * @see ucnv_fromUnicode
+ * @see ucnv_convert
+ */
+U_CAPI
+  int32_t U_EXPORT2 ucnv_fromUChars (const UConverter * converter,
+			   char *target,
+			   int32_t targetCapacity,
+			   const UChar * source,
+			   UErrorCode * err);
+
+
+
+
+
+/**
+ * Transcode the source string in codepage encoding to the target string in
+ * Unicode encoding.  For example, if a Unicode to/from JIS
+ * converter is specified, the source string in JIS encoding will be transcoded
+ * to Unicode and placed into a provided target buffer.
+ * if any problems during conversion are encountered it will SUBSTITUTE with the Unicode REPLACEMENT char
+ * We recomment, the size of the target buffer needs to be at least as long as the maximum # of bytes per char
+ * in this character set.
+ * A zero-terminator will be placed at the end of the target buffer
+ * This function is a more convenient but less efficient version of \Ref{ucnv_toUnicode}.
+ * @param converter the Unicode converter
+ * @param source the source string in codepage encoding
+ * @param target the target string in Unicode encoding
+ * @param targetCapacity capacity of the target buffer
+ * @param sourceSize : Number of bytes in <TT>source</TT> to be transcoded
+ * @param err the error status code
+ * <TT>MEMORY_ALLOCATION_ERROR</TT> will be returned if the
+ * the internal process buffer cannot be allocated for transcoding.
+ * <TT>ILLEGAL_ARGUMENT_ERROR</TT> is returned if the converter is <TT>NULL</TT> or
+ * if the source or target string is empty.
+ * <TT>BUFFER_OVERFLOW_ERROR</TT> when the input buffer is prematurely exhausted and targetSize non-<TT>NULL</TT>.
+ * @return the number of UChar needed in target (including the zero terminator)
+ * @see ucnv_getNextUChar
+ * @see ucnv_toUnicode
+ * @see ucnv_convert
+ */
+U_CAPI
+  int32_t U_EXPORT2 ucnv_toUChars (const UConverter * converter,
+			 UChar * target,
+			 int32_t targetCapacity,
+			 const char *source,
+			 int32_t sourceSize,
+			 UErrorCode * err);
+
+/********************************
+ * Will convert a codepage buffer one character at a time.
+ * This function was written to be efficient when transcoding small amounts of data at a time.
+ * In that case it will be more efficient than \Ref{ucnv_toUnicode}.
+ * When converting large buffers use \Ref{ucnv_toUnicode}.
+ *@param converter an open UConverter
+ *@param source the address of a pointer to the codepage buffer, will be updated to point after
+ *the bytes consumed in the conversion call.
+ *@param points to the end of the input buffer
+ *@param err fills in error status (see ucnv_toUnicode)
+ *@return a UChar resulting from the partial conversion of source
+ *@see ucnv_toUnicode
+ *@see ucnv_toUChars
+ *@see ucnv_convert
+ */
+U_CAPI
+  UChar U_EXPORT2 ucnv_getNextUChar (UConverter * converter,
+			   const char **source,
+			   const char *sourceLimit,
+			   UErrorCode * err);
+
+
+/**************************
+* Will convert a sequence of bytes from one codepage to another.
+* This is <STRONG>NOT AN EFFICIENT</STRONG> way to transcode.
+* use \Ref{ucnv_toUnicode} and \Ref{ucnv_fromUnicode} for efficiency
+* @param toConverterName: The name of the converter that will be used to encode the output buffer
+* @param fromConverterName: The name of the converter that will be used to decode the input buffer
+* @param target: Pointer to the output buffer to write to
+* @param targetCapacity: on input contains the capacity of target
+* @param source: Pointer to the input buffer
+* @param sourceLength: on input contains the capacity of source
+* @param err: fills in an error status
+* @return  will be filled in with the number of bytes needed in target
+* @see ucnv_fromUnicode
+* @see ucnv_toUnicode
+* @see ucnv_fromUChars
+* @see ucnv_toUChars
+* @see ucnv_getNextUChar
+*/
+U_CAPI
+  int32_t U_EXPORT2 ucnv_convert (const char *toConverterName,
+			const char *fromConverterName,
+			char *target,
+			int32_t targetCapacity,
+			const char *source,
+			int32_t sourceLength,
+			UErrorCode * err);
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
+
+#if (__OS400_TGTVRM__>=510)                                /* @01a */  
+     #pragma datamodel(pop)                                /* @01a */ 
+#endif                                                     /* @01a */
+
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Transcoders/Iconv400/pos400.h
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Transcoders/Iconv400/pos400.h	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Transcoders/Iconv400/pos400.h	(revision 2674)
@@ -0,0 +1,87 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: pos400.h 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+/* Define the platform we're on. */
+#ifndef OS400
+#define OS400
+#endif
+
+/* Define whether inttypes.h is available */
+#define HAVE_INTTYPES_H 0
+
+/* Determines whether specific types are available */
+#define HAVE_INT8_T 0
+#define HAVE_UINT8_T 0
+#define HAVE_INT16_T 0
+#define HAVE_UINT16_T 0
+#define HAVE_INT32_T 0
+#define HAVE_UINT32_T 0
+#define HAVE_BOOL_T 0
+
+/* Determines the endianness of the platform */
+#define U_IS_BIG_ENDIAN 1
+
+/*===========================================================================*/
+/* Generic data types                                                        */
+/*===========================================================================*/
+
+/* If your platform does not have the <inttypes.h> header, you may
+   need to edit the typedefs below. */
+#if HAVE_INTTYPES_H
+#include <inttypes.h>
+#else
+
+#if ! HAVE_INT8_T
+typedef signed char int8_t;
+#endif
+
+#if ! HAVE_UINT8_T
+typedef unsigned char uint8_t;
+#endif
+
+#if ! HAVE_INT16_T
+typedef signed short int16_t;
+#endif
+
+#if ! HAVE_UINT16_T
+typedef unsigned short uint16_t;
+#endif
+
+#if ! HAVE_INT32_T
+typedef signed long int32_t;
+#endif
+
+#if ! HAVE_UINT32_T
+typedef unsigned long uint32_t;
+#endif
+
+#endif
+
+#include <limits.h>
+#define T_INT32_MAX (LONG_MAX)
+
+/*===========================================================================*/
+/* Symbol import-export control                                              */
+/*===========================================================================*/
+
+#define U_EXPORT
+#define U_EXPORT2
+#define U_IMPORT
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Transcoders/Win32/Win32TransService.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Transcoders/Win32/Win32TransService.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Transcoders/Win32/Win32TransService.hpp	(revision 2674)
@@ -0,0 +1,257 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: Win32TransService.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#ifndef WIN32TRANSSERVICE_HPP
+#define WIN32TRANSSERVICE_HPP
+
+#include <xercesc/util/TransService.hpp>
+#include <xercesc/util/RefHashTableOf.hpp>
+#include <windows.h>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class CPMapEntry;
+
+
+
+//---------------------------------------------------------------------------
+//
+//  class Win32TransService
+//
+//---------------------------------------------------------------------------
+class XMLUTIL_EXPORT Win32TransService : public XMLTransService
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+    Win32TransService();
+    virtual ~Win32TransService();
+
+
+    // -----------------------------------------------------------------------
+    //  Implementation of the virtual transcoding service API
+    // -----------------------------------------------------------------------
+    virtual int compareIString
+    (
+        const   XMLCh* const    comp1
+        , const XMLCh* const    comp2
+    );
+
+    virtual int compareNIString
+    (
+        const   XMLCh* const    comp1
+        , const XMLCh* const    comp2
+        , const unsigned int    maxChars
+    );
+
+    virtual const XMLCh* getId() const;
+
+    virtual bool isSpace(const XMLCh toCheck) const;
+
+    virtual XMLLCPTranscoder* makeNewLCPTranscoder();
+
+    virtual bool supportsSrcOfs() const;
+
+    virtual void upperCase(XMLCh* const toUpperCase) const;
+    virtual void lowerCase(XMLCh* const toLowerCase) const;
+
+
+protected :
+    // -----------------------------------------------------------------------
+    //  Protected virtual methods, implemented in Win32TransService2.cpp
+    // -----------------------------------------------------------------------
+    virtual XMLTranscoder* makeNewXMLTranscoder
+    (
+        const   XMLCh* const            encodingName
+        ,       XMLTransService::Codes& resValue
+        , const unsigned int            blockSize
+        ,       MemoryManager* const    manager
+    );
+
+
+private :
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    Win32TransService(const Win32TransService&);
+    Win32TransService& operator=(const Win32TransService&);
+
+    //      This is a hash table of entries which map encoding names to their
+    //      Windows specific code pages. The code page allows us to create
+    //      transcoders for those encodings. The encoding names come from XML
+    //      files.
+    //
+    //      This map is shared unsynchronized among all threads of the process,
+    //      which is cool since it will be read only once its initialized.
+
+
+
+    static bool isAlias(const   HKEY            encodingKey
+                    ,       char* const     aliasBuf = 0
+                    , const unsigned int    nameBufSz = 0);
+
+
+    RefHashTableOf<CPMapEntry>    *fCPMap;
+};
+
+
+
+
+
+
+
+//---------------------------------------------------------------------------
+//
+//  class Win32Transcoder
+//
+//---------------------------------------------------------------------------
+
+class XMLUTIL_EXPORT Win32Transcoder : public XMLTranscoder
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+    Win32Transcoder
+    (
+        const   XMLCh* const    encodingName
+        , const unsigned int    winCP
+        , const unsigned int    ieCP
+        , const unsigned int    blockSize
+        , MemoryManager* const  manager = XMLPlatformUtils::fgMemoryManager);
+    ~Win32Transcoder();
+
+
+    // -----------------------------------------------------------------------
+    //  Implementation of the virtual transcoder interface
+    // -----------------------------------------------------------------------
+    virtual unsigned int transcodeFrom
+    (
+        const   XMLByte* const          srcData
+        , const unsigned int            srcCount
+        ,       XMLCh* const            toFill
+        , const unsigned int            maxChars
+        ,       unsigned int&           bytesEaten
+        ,       unsigned char* const    charSizes
+    );
+
+    virtual unsigned int transcodeTo
+    (
+        const   XMLCh* const    srcData
+        , const unsigned int    srcCount
+        ,       XMLByte* const  toFill
+        , const unsigned int    maxBytes
+        ,       unsigned int&   charsEaten
+        , const UnRepOpts       options
+    );
+
+    virtual bool canTranscodeTo
+    (
+        const   unsigned int    toCheck
+    )   const;
+
+
+private :
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    Win32Transcoder(const Win32Transcoder&);
+    Win32Transcoder& operator=(const Win32Transcoder&);
+
+
+    // -----------------------------------------------------------------------
+    //  Private data members
+    //
+    //  fIECP
+    //      This is the internet explorer code page for this encoding.
+    //
+    //  fWinCP
+    //      This is the windows code page for this encoding.
+    // -----------------------------------------------------------------------
+    unsigned int    fIECP;
+    unsigned int    fWinCP;
+};
+
+
+
+
+
+//---------------------------------------------------------------------------
+//
+//  class Win32LCPTranscoder
+//
+//---------------------------------------------------------------------------
+class XMLUTIL_EXPORT Win32LCPTranscoder : public XMLLCPTranscoder
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+    Win32LCPTranscoder();
+    ~Win32LCPTranscoder();
+
+
+    // -----------------------------------------------------------------------
+    //  Implementation of the virtual transcoder interface
+    // -----------------------------------------------------------------------
+    virtual unsigned int calcRequiredSize(const char* const srcText
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+
+    virtual unsigned int calcRequiredSize(const XMLCh* const srcText
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+
+    virtual char* transcode(const XMLCh* const toTranscode);
+    virtual char* transcode(const XMLCh* const toTranscode,
+                            MemoryManager* const manager);
+
+    virtual XMLCh* transcode(const char* const toTranscode);
+    virtual XMLCh* transcode(const char* const toTranscode,
+                             MemoryManager* const manager);
+
+    virtual bool transcode
+    (
+        const   char* const     toTranscode
+        ,       XMLCh* const    toFill
+        , const unsigned int    maxChars
+        , MemoryManager* const  manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    virtual bool transcode
+    (
+        const   XMLCh* const    toTranscode
+        ,       char* const     toFill
+        , const unsigned int    maxChars
+        , MemoryManager* const  manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+
+private :
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    Win32LCPTranscoder(const Win32LCPTranscoder&);
+    Win32LCPTranscoder& operator=(const Win32LCPTranscoder&);
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Transcoders/IconvGNU/IconvGNUTransService.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Transcoders/IconvGNU/IconvGNUTransService.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Transcoders/IconvGNU/IconvGNUTransService.hpp	(revision 2674)
@@ -0,0 +1,353 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: IconvGNUTransService.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#ifndef ICONVGNUTRANSSERVICE_HPP
+#define ICONVGNUTRANSSERVICE_HPP
+
+#include <xercesc/util/TransService.hpp>
+
+
+#include <iconv.h>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+// ---------------------------------------------------------------------------
+//  Libiconv wrapper (low-level conversion utilities collection)
+// ---------------------------------------------------------------------------
+
+class XMLUTIL_EXPORT IconvGNUWrapper
+{
+public:
+    // -----------------------------------------------------------------------
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+    IconvGNUWrapper
+    (
+  iconv_t		cd_from,
+  iconv_t		cd_to,
+  size_t		uchsize,
+  unsigned int	ubo
+    );
+    virtual ~IconvGNUWrapper();
+
+    // Convert "native unicode" character into XMLCh
+    void	mbcToXMLCh (const char *mbc, XMLCh *toRet) const;
+
+    // Convert XMLCh into "native unicode" character
+    void	xmlChToMbc (XMLCh xch, char *mbc) const;
+
+    // Return uppercase equivalent for XMLCh
+    XMLCh 	toUpper (const XMLCh ch) const;
+
+    // Return uppercase equivalent for XMLCh
+    XMLCh 	toLower (const XMLCh ch) const;
+
+    // Check if passed characters belongs to the :space: class
+    virtual bool isSpace(const XMLCh toCheck) const;
+
+    // Fill array of XMLCh characters with data, supplyed in the array
+    // of "native unicode" characters.
+    XMLCh*	mbsToXML (
+  const char*	mbs_str,
+  size_t		mbs_cnt,
+  XMLCh*		xml_str,
+  size_t		xml_cnt
+    ) const;
+
+
+    // Fill array of "native unicode" characters with data, supplyed
+    // in the array of XMLCh characters.
+    char*	xmlToMbs
+    (
+  const XMLCh*	xml_str,
+  size_t		xml_cnt,
+  char*		mbs_str,
+  size_t		mbs_cnt
+    ) const;
+
+    // Wrapper aroung the iconv() for transcoding from the local charset
+    size_t	iconvFrom
+    (
+  const char	*fromPtr,
+  size_t		*fromLen,
+  char		**toPtr,
+  size_t		toLen
+    ) const;
+
+    // Wrapper aroung the iconv() for transcoding to the local charset
+    size_t	iconvTo
+    (
+  const char	*fromPtr,
+  size_t		*fromLen,
+  char		**toPtr,
+  size_t		toLen
+    ) const;
+
+    // Private data accessors
+    inline iconv_t	cdTo () const { return fCDTo; }
+    inline iconv_t	cdFrom () const { return fCDFrom; }
+    inline size_t	uChSize () const { return fUChSize; }
+    inline unsigned int	UBO () const { return fUBO; }
+
+protected:
+
+    // Hiden defaull constructor
+    IconvGNUWrapper();
+
+    // Private data accessors
+    inline void	setCDTo (iconv_t cd) { fCDTo = cd; }
+    inline void	setCDFrom (iconv_t cd) { fCDFrom = cd; }
+    inline void	setUChSize (size_t sz) { fUChSize = sz; }
+    inline void	setUBO (unsigned int u) { fUBO = u; }
+
+private:
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    IconvGNUWrapper(const IconvGNUWrapper&);
+    IconvGNUWrapper& operator=(const IconvGNUWrapper&);
+
+    // -----------------------------------------------------------------------
+    //  Private data members
+    //
+    //  fCDTo
+    //	    Characterset conversion descriptor TO the local-host encoding
+    //  fCDFrom
+    //	    Characterset conversion descriptor FROM the local-host encoding
+    //  fUChSize
+    //      Sizeof the "native unicode" character in bytes
+    //  fUBO
+    //      "Native unicode" characters byte order
+    // -----------------------------------------------------------------------
+    size_t	fUChSize;
+    unsigned int fUBO;
+    iconv_t	fCDTo;
+    iconv_t	fCDFrom;
+};
+
+
+
+// ---------------------------------------------------------------------------
+//  FreeBSD-specific Transcoding Service implementation
+// ---------------------------------------------------------------------------
+
+class XMLUTIL_EXPORT IconvGNUTransService : public XMLTransService, IconvGNUWrapper
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+    IconvGNUTransService();
+    ~IconvGNUTransService();
+
+
+    // -----------------------------------------------------------------------
+    //  Implementation of the virtual transcoding service API
+    // -----------------------------------------------------------------------
+    virtual int compareIString
+    (
+        const   XMLCh* const    comp1
+        , const XMLCh* const    comp2
+    );
+
+    virtual int compareNIString
+    (
+        const   XMLCh* const    comp1
+        , const XMLCh* const    comp2
+        , const unsigned int    maxChars
+    );
+
+    virtual const XMLCh* getId() const;
+
+    virtual bool isSpace(const XMLCh toCheck) const;
+
+    virtual XMLLCPTranscoder* makeNewLCPTranscoder();
+
+    virtual bool supportsSrcOfs() const;
+
+    virtual void upperCase(XMLCh* const toUpperCase) const;
+    virtual void lowerCase(XMLCh* const toUpperCase) const;
+
+protected :
+    // -----------------------------------------------------------------------
+    //  Protected virtual methods
+    // -----------------------------------------------------------------------
+    virtual XMLTranscoder* makeNewXMLTranscoder
+    (
+        const   XMLCh* const            encodingName
+        ,       XMLTransService::Codes& resValue
+        , const unsigned int            blockSize
+        ,       MemoryManager* const    manager
+    );
+
+
+private :
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    IconvGNUTransService(const IconvGNUTransService&);
+    IconvGNUTransService& operator=(const IconvGNUTransService&);
+
+
+    // -----------------------------------------------------------------------
+    //  Private data members
+    //
+    //  fUnicodeCP
+    //      Unicode encoding schema name
+    // -----------------------------------------------------------------------
+    const char*	fUnicodeCP;
+
+};
+
+
+//----------------------------------------------------------------------------
+// Implementation of the transcoders for arbitrary input characterset is
+// supported ONLY through libiconv interface
+//----------------------------------------------------------------------------
+
+class XMLUTIL_EXPORT IconvGNUTranscoder : public XMLTranscoder, IconvGNUWrapper
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+    IconvGNUTranscoder(const	XMLCh* const	encodingName
+  		, const unsigned int	blockSize
+  		,	iconv_t		cd_from
+  		,	iconv_t		cd_to
+  		,	size_t		uchsize
+  		,	unsigned int	ubo
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+    ~IconvGNUTranscoder();
+
+
+    // -----------------------------------------------------------------------
+    //  Implementation of the virtual transcoder interface
+    // -----------------------------------------------------------------------
+    virtual unsigned int transcodeFrom
+    (
+        const   XMLByte* const          srcData
+        , const unsigned int            srcCount
+        ,       XMLCh* const            toFill
+        , const unsigned int            maxChars
+        ,       unsigned int&           bytesEaten
+        ,       unsigned char* const    charSizes
+    );
+
+    virtual unsigned int transcodeTo
+    (
+        const   XMLCh* const	srcData
+        , const unsigned int	srcCount
+        ,       XMLByte* const	toFill
+        , const unsigned int	maxBytes
+        ,       unsigned int&	charsEaten
+        , const UnRepOpts	options
+    );
+
+    virtual bool canTranscodeTo
+    (
+        const   unsigned int	toCheck
+    )   const;
+
+private :
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    IconvGNUTranscoder();
+    IconvGNUTranscoder(const IconvGNUTranscoder&);
+    IconvGNUTranscoder& operator=(const IconvGNUTranscoder&);
+};
+
+
+// ---------------------------------------------------------------------------
+//  GNU-specific XMLCh <-> local (host) characterset transcoder
+// ---------------------------------------------------------------------------
+
+class XMLUTIL_EXPORT IconvGNULCPTranscoder : public XMLLCPTranscoder, IconvGNUWrapper
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+
+    IconvGNULCPTranscoder
+    (
+  iconv_t		from,
+  iconv_t		to,
+  size_t		uchsize,
+  unsigned int	ubo
+    );
+
+protected:
+    IconvGNULCPTranscoder();	// Unimplemented
+
+public:
+
+    ~IconvGNULCPTranscoder();
+
+
+    // -----------------------------------------------------------------------
+    //  Implementation of the virtual transcoder interface
+    // -----------------------------------------------------------------------
+    virtual unsigned int calcRequiredSize(const char* const srcText
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+
+    virtual unsigned int calcRequiredSize(const XMLCh* const srcText
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+
+    virtual char* transcode(const XMLCh* const toTranscode);
+    virtual char* transcode(const XMLCh* const toTranscode,
+                            MemoryManager* const manager);
+
+    virtual bool transcode
+    (
+        const   XMLCh* const    toTranscode
+        ,       char* const     toFill
+        , const unsigned int    maxBytes
+        , MemoryManager* const  manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    virtual XMLCh* transcode(const char* const toTranscode);
+    virtual XMLCh* transcode(const char* const toTranscode,
+                             MemoryManager* const manager);
+
+    virtual bool transcode
+    (
+        const   char* const     toTranscode
+        ,       XMLCh* const    toFill
+        , const unsigned int    maxChars
+        , MemoryManager* const  manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+
+private :
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    IconvGNULCPTranscoder(const IconvGNULCPTranscoder&);
+    IconvGNULCPTranscoder& operator=(const IconvGNULCPTranscoder&);
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif /* ICONVGNUTRANSSERVICE */
+
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Transcoders/Iconv390/Iconv390TransService.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Transcoders/Iconv390/Iconv390TransService.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Transcoders/Iconv390/Iconv390TransService.hpp	(revision 2674)
@@ -0,0 +1,154 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: Iconv390TransService.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#ifndef ICONV390TRANSSERVICE_HPP
+#define ICONV390TRANSSERVICE_HPP
+
+#include <xercesc/util/TransService.hpp>
+#include <xercesc/util/Mutexes.hpp>
+#include <iconv.h>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+/* Max encoding name in characters. */
+#define UCNV_MAX_CONVERTER_NAME_LENGTH 60
+typedef struct iconvconverter {
+   struct iconvconverter *nextconverter;
+   char                   name [UCNV_MAX_CONVERTER_NAME_LENGTH];
+   XMLMutex               fMutex;
+   iconv_t                fIconv390Descriptor;
+   int                    usecount;
+} iconvconverter_t;
+
+class XMLUTIL_EXPORT Iconv390TransService : public XMLTransService
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+    Iconv390TransService();
+    ~Iconv390TransService();
+
+
+    // -----------------------------------------------------------------------
+    //  Implementation of the virtual transcoding service API
+    // -----------------------------------------------------------------------
+    virtual int compareIString
+    (
+        const   XMLCh* const    comp1
+        , const XMLCh* const    comp2
+    );
+
+    virtual int compareNIString
+    (
+        const   XMLCh* const    comp1
+        , const XMLCh* const    comp2
+        , const unsigned int    maxChars
+    );
+
+    virtual const XMLCh* getId() const;
+
+    virtual bool isSpace(const XMLCh toCheck) const;
+
+    virtual XMLLCPTranscoder* makeNewLCPTranscoder();
+
+    virtual bool supportsSrcOfs() const;
+
+    virtual void upperCase(XMLCh* const toUpperCase) const;
+    virtual void lowerCase(XMLCh* const toLowerCase) const;
+
+protected :
+    // -----------------------------------------------------------------------
+    //  Protected virtual methods
+    // -----------------------------------------------------------------------
+    virtual XMLTranscoder* makeNewXMLTranscoder
+    (
+        const   XMLCh* const            encodingName
+        ,       XMLTransService::Codes& resValue
+        , const unsigned int            blockSize
+        ,       MemoryManager* const    manager
+    );
+
+
+private :
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    Iconv390TransService(const Iconv390TransService&);
+    Iconv390TransService& operator=(const Iconv390TransService&);
+};
+
+class XMLUTIL_EXPORT Iconv390LCPTranscoder : public XMLLCPTranscoder
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+    Iconv390LCPTranscoder();
+    Iconv390LCPTranscoder(iconvconverter_t* const toAdopt);
+    ~Iconv390LCPTranscoder();
+
+    // -----------------------------------------------------------------------
+    //  Implementation of the virtual transcoder interface
+    // -----------------------------------------------------------------------
+    virtual unsigned int calcRequiredSize(const char* const srcText
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+
+    virtual unsigned int calcRequiredSize(const XMLCh* const srcText
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+
+    virtual char* transcode(const XMLCh* const toTranscode);
+    virtual char* transcode(const XMLCh* const toTranscode,
+                            MemoryManager* const manager);
+
+    virtual bool transcode
+    (
+        const   XMLCh* const    toTranscode
+        ,       char* const     toFill
+        , const unsigned int    maxBytes
+        , MemoryManager* const  manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    virtual XMLCh* transcode(const char* const toTranscode);
+    virtual XMLCh* transcode(const char* const toTranscode,
+                             MemoryManager* const manager);
+
+    virtual bool transcode
+    (
+        const   char* const     toTranscode
+        ,       XMLCh* const    toFill
+        , const unsigned int    maxChars
+        , MemoryManager* const  manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+
+private :
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    Iconv390LCPTranscoder(const Iconv390LCPTranscoder&);
+    Iconv390LCPTranscoder& operator=(const Iconv390LCPTranscoder&);
+    iconvconverter_t *converter;
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Transcoders/IconvFBSD/IconvFBSDTransService.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Transcoders/IconvFBSD/IconvFBSDTransService.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Transcoders/IconvFBSD/IconvFBSDTransService.hpp	(revision 2674)
@@ -0,0 +1,375 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: IconvFBSDTransService.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#ifndef ICONVFBSDTRANSSERVICE_HPP
+#define ICONVFBSDTRANSSERVICE_HPP
+
+#include <xercesc/util/TransService.hpp>
+
+#ifdef XML_USE_LIBICONV
+#  include <iconv.h>
+#endif
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+#ifdef XML_USE_LIBICONV
+
+// ---------------------------------------------------------------------------
+//  Libiconv wrapper (low-level conversion utilities collection)
+// ---------------------------------------------------------------------------
+
+class XMLUTIL_EXPORT IconvFBSDCD
+{
+public:
+    // -----------------------------------------------------------------------
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+    IconvFBSDCD
+    (
+	iconv_t		cd_from,
+	iconv_t		cd_to,
+	size_t		uchsize,
+	unsigned int	ubo
+    );
+    virtual ~IconvFBSDCD();
+
+    // Convert "native unicode" character into XMLCh
+    void	mbcToXMLCh (const char *mbc, XMLCh *toRet) const;
+
+    // Convert XMLCh into "native unicode" character
+    void	xmlChToMbc (XMLCh xch, char *mbc) const;
+
+    // Return uppercase equivalent for XMLCh
+    XMLCh 	toUpper (const XMLCh ch) const;
+
+    // Return uppercase equivalent for XMLCh
+    XMLCh 	toLower (const XMLCh ch) const;
+
+    // Check if passed characters belongs to the :space: class
+    virtual bool isSpace(const XMLCh toCheck) const;
+
+    // Fill array of XMLCh characters with data, supplyed in the array
+    // of "native unicode" characters.
+    XMLCh*	mbsToXML (
+	const char*	mbs_str,
+	size_t		mbs_cnt,
+	XMLCh*		xml_str,
+	size_t		xml_cnt
+    ) const;
+
+
+    // Fill array of "native unicode" characters with data, supplyed
+    // in the array of XMLCh characters.
+    char*	xmlToMbs
+    (
+	const XMLCh*	xml_str,
+	size_t		xml_cnt,
+	char*		mbs_str,
+	size_t		mbs_cnt
+    ) const;
+
+    // Wrapper aroung the iconv() for transcoding from the local charset
+    size_t	iconvFrom
+    (
+	const char	*fromPtr,
+	size_t		*fromLen,
+	char		**toPtr,
+	size_t		toLen
+    ) const;
+
+    // Wrapper aroung the iconv() for transcoding to the local charset
+    size_t	iconvTo
+    (
+	const char	*fromPtr,
+	size_t		*fromLen,
+	char		**toPtr,
+	size_t		toLen
+    ) const;
+
+    // Private data accessors
+    inline iconv_t	cdTo () const { return fCDTo; }
+    inline iconv_t	cdFrom () const { return fCDFrom; }
+    inline size_t	uChSize () const { return fUChSize; }
+    inline unsigned int	UBO () const { return fUBO; }
+
+protected:
+
+    // Hiden defaull constructor
+    IconvFBSDCD();
+
+    // Private data accessors
+    inline void	setCDTo (iconv_t cd) { fCDTo = cd; }
+    inline void	setCDFrom (iconv_t cd) { fCDFrom = cd; }
+    inline void	setUChSize (size_t sz) { fUChSize = sz; }
+    inline void	setUBO (unsigned int u) { fUBO = u; }
+
+private:
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    IconvFBSDCD(const IconvFBSDCD&);
+    IconvFBSDCD& operator=(const IconvFBSDCD&);
+
+    // -----------------------------------------------------------------------
+    //  Private data members
+    //
+    //  fCDTo
+    //	    Characterset conversion descriptor TO the local-host encoding
+    //  fCDFrom
+    //	    Characterset conversion descriptor FROM the local-host encoding
+    //  fUChSize
+    //      Sizeof the "native unicode" character in bytes
+    //  fUBO
+    //      "Native unicode" characters byte order
+    // -----------------------------------------------------------------------
+    size_t	fUChSize;
+    unsigned int fUBO;
+    iconv_t	fCDTo;
+    iconv_t	fCDFrom;
+};
+
+#endif /* XML_USE_LIBICONV */
+
+
+
+// ---------------------------------------------------------------------------
+//  FreeBSD-specific Transcoding Service implementation
+// ---------------------------------------------------------------------------
+
+class XMLUTIL_EXPORT IconvFBSDTransService : public XMLTransService
+#ifdef XML_USE_LIBICONV
+, IconvFBSDCD
+#endif
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+    IconvFBSDTransService();
+    ~IconvFBSDTransService();
+
+
+    // -----------------------------------------------------------------------
+    //  Implementation of the virtual transcoding service API
+    // -----------------------------------------------------------------------
+    virtual int compareIString
+    (
+        const   XMLCh* const    comp1
+        , const XMLCh* const    comp2
+    );
+
+    virtual int compareNIString
+    (
+        const   XMLCh* const    comp1
+        , const XMLCh* const    comp2
+        , const unsigned int    maxChars
+    );
+
+    virtual const XMLCh* getId() const;
+
+    virtual bool isSpace(const XMLCh toCheck) const;
+
+    virtual XMLLCPTranscoder* makeNewLCPTranscoder();
+
+    virtual bool supportsSrcOfs() const;
+
+    virtual void upperCase(XMLCh* const toUpperCase) const;
+    virtual void lowerCase(XMLCh* const toUpperCase) const;
+
+protected :
+    // -----------------------------------------------------------------------
+    //  Protected virtual methods
+    // -----------------------------------------------------------------------
+    virtual XMLTranscoder* makeNewXMLTranscoder
+    (
+        const   XMLCh* const            encodingName
+        ,       XMLTransService::Codes& resValue
+        , const unsigned int            blockSize
+        ,       MemoryManager* const    manager
+    );
+
+
+private :
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    IconvFBSDTransService(const IconvFBSDTransService&);
+    IconvFBSDTransService& operator=(const IconvFBSDTransService&);
+
+#ifdef XML_USE_LIBICONV
+
+    // -----------------------------------------------------------------------
+    //  Private data members
+    //
+    //  fUnicodeCP
+    //      Unicode encoding schema name
+    // -----------------------------------------------------------------------
+    const char*	fUnicodeCP;
+
+#endif /* XML_USE_LIBICONV */
+};
+
+
+#ifdef XML_USE_LIBICONV
+//----------------------------------------------------------------------------
+// Implementation of the transcoders for arbitrary input characterset is
+// supported ONLY through libiconv interface
+//----------------------------------------------------------------------------
+
+class XMLUTIL_EXPORT IconvFBSDTranscoder : public XMLTranscoder, IconvFBSDCD
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+    IconvFBSDTranscoder(const	XMLCh* const	encodingName
+			, const unsigned int	blockSize
+			,	iconv_t		cd_from
+			,	iconv_t		cd_to
+			,	size_t		uchsize
+			,	unsigned int	ubo
+			, MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+    ~IconvFBSDTranscoder();
+
+
+    // -----------------------------------------------------------------------
+    //  Implementation of the virtual transcoder interface
+    // -----------------------------------------------------------------------
+    virtual unsigned int transcodeFrom
+    (
+        const   XMLByte* const          srcData
+        , const unsigned int            srcCount
+        ,       XMLCh* const            toFill
+        , const unsigned int            maxChars
+        ,       unsigned int&           bytesEaten
+        ,       unsigned char* const    charSizes
+    );
+
+    virtual unsigned int transcodeTo
+    (
+        const   XMLCh* const	srcData
+        , const unsigned int	srcCount
+        ,       XMLByte* const	toFill
+        , const unsigned int	maxBytes
+        ,       unsigned int&	charsEaten
+        , const UnRepOpts	options
+    );
+
+    virtual bool canTranscodeTo
+    (
+        const   unsigned int	toCheck
+    )   const;
+
+private :
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    IconvFBSDTranscoder();
+    IconvFBSDTranscoder(const IconvFBSDTranscoder&);
+    IconvFBSDTranscoder& operator=(const IconvFBSDTranscoder&);
+};
+
+#endif /* XML_USE_LIBICONV */
+
+
+// ---------------------------------------------------------------------------
+//  FreeBSD-specific XMLCh <-> local (host) characterset transcoder
+// ---------------------------------------------------------------------------
+
+class XMLUTIL_EXPORT IconvFBSDLCPTranscoder : public XMLLCPTranscoder
+#ifdef XML_USE_LIBICONV
+, IconvFBSDCD
+#endif
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+#ifdef XML_USE_LIBICONV
+
+    IconvFBSDLCPTranscoder
+    (
+	iconv_t		from,
+	iconv_t		to,
+	size_t		uchsize,
+	unsigned int	ubo
+    );
+
+protected:
+    IconvFBSDLCPTranscoder();	// Unimplemented
+
+public:
+
+#else /* !XML_USE_LIBICONV */
+
+    IconvFBSDLCPTranscoder();
+
+#endif /* XML_USE_LIBICONV */
+
+    ~IconvFBSDLCPTranscoder();
+
+
+    // -----------------------------------------------------------------------
+    //  Implementation of the virtual transcoder interface
+    // -----------------------------------------------------------------------
+    virtual unsigned int calcRequiredSize(const char* const srcText
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+
+    virtual unsigned int calcRequiredSize(const XMLCh* const srcText
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+
+    virtual char* transcode(const XMLCh* const toTranscode);
+    virtual char* transcode(const XMLCh* const toTranscode,
+                            MemoryManager* const manager);
+
+    virtual bool transcode
+    (
+        const   XMLCh* const    toTranscode
+        ,       char* const     toFill
+        , const unsigned int    maxBytes
+        , MemoryManager* const  manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    virtual XMLCh* transcode(const char* const toTranscode);
+    virtual XMLCh* transcode(const char* const toTranscode,
+                             MemoryManager* const manager);
+
+    virtual bool transcode
+    (
+        const   char* const     toTranscode
+        ,       XMLCh* const    toFill
+        , const unsigned int    maxChars
+        , MemoryManager* const  manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+
+private :
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    IconvFBSDLCPTranscoder(const IconvFBSDLCPTranscoder&);
+    IconvFBSDLCPTranscoder& operator=(const IconvFBSDLCPTranscoder&);
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif /* ICONVFBSDTRANSSERVICE */
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Transcoders/Uniconv390/XMLWin1252Transcoder390.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Transcoders/Uniconv390/XMLWin1252Transcoder390.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Transcoders/Uniconv390/XMLWin1252Transcoder390.hpp	(revision 2674)
@@ -0,0 +1,63 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: XMLWin1252Transcoder390.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#ifndef XMLWIN1252TRANSCODER390_HPP
+#define XMLWIN1252TRANSCODER390_HPP
+
+#include <xercesc/util/XercesDefs.hpp>
+#include <xercesc/util/Transcoders/Uniconv390/XML256TableTranscoder390.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+
+//
+//  This class provides an implementation of the XMLTranscoder interface
+//  for the Windows variant of Latin1, called Windows-1252. Its close to
+//  Latin1, but is somewhat different.
+//
+class XMLUTIL_EXPORT XMLWin1252Transcoder390 : public XML256TableTranscoder390
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Public constructors and destructor
+    // -----------------------------------------------------------------------
+    XMLWin1252Transcoder390
+    (
+        const   XMLCh* const    encodingName
+        , const unsigned int    blockSize
+        , MemoryManager* const  manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    virtual ~XMLWin1252Transcoder390();
+
+
+private :
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    XMLWin1252Transcoder390();
+    XMLWin1252Transcoder390(const XMLWin1252Transcoder390&);
+    XMLWin1252Transcoder390& operator=(const XMLWin1252Transcoder390&);
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Transcoders/Uniconv390/XMLASCIITranscoder390.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Transcoders/Uniconv390/XMLASCIITranscoder390.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Transcoders/Uniconv390/XMLASCIITranscoder390.hpp	(revision 2674)
@@ -0,0 +1,93 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: XMLASCIITranscoder390.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#ifndef XMLASCIITRANSCODER390_HPP
+#define XMLASCIITRANSCODER390_HPP
+
+#include <xercesc/util/XercesDefs.hpp>
+#include <xercesc/util/TransService.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+//
+//  This class provides an implementation of the XMLTranscoder interface
+//  for a simple ASCII transcoder. The parser does some encodings
+//  intrinsically without depending upon external transcoding services.
+//  To make everything more orthagonal, we implement these internal
+//  transcoders using the same transcoder abstraction as the pluggable
+//  transcoding services do.
+//
+class XMLUTIL_EXPORT XMLASCIITranscoder390 : public XMLTranscoder
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Constructors and destructor
+    // -----------------------------------------------------------------------
+    XMLASCIITranscoder390
+    (
+        const   XMLCh* const    encodingName
+        , const unsigned int    blockSize
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    virtual ~XMLASCIITranscoder390();
+
+
+    // -----------------------------------------------------------------------
+    //  Implementation of the XMLTranscoder interface
+    // -----------------------------------------------------------------------
+    virtual unsigned int transcodeFrom
+    (
+        const   XMLByte* const          srcData
+        , const unsigned int            srcCount
+        ,       XMLCh* const            toFill
+        , const unsigned int            maxChars
+        ,       unsigned int&           bytesEaten
+        ,       unsigned char* const    charSizes
+    );
+
+    virtual unsigned int transcodeTo
+    (
+        const   XMLCh* const    srcData
+        , const unsigned int    srcCount
+        ,       XMLByte* const  toFill
+        , const unsigned int    maxBytes
+        ,       unsigned int&   charsEaten
+        , const UnRepOpts       options
+    );
+
+    virtual bool canTranscodeTo
+    (
+        const   unsigned int    toCheck
+    )   const;
+
+
+private :
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    XMLASCIITranscoder390(const XMLASCIITranscoder390&);
+    XMLASCIITranscoder390& operator=(const XMLASCIITranscoder390&);
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Transcoders/Uniconv390/XMLEBCDICTranscoder390.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Transcoders/Uniconv390/XMLEBCDICTranscoder390.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Transcoders/Uniconv390/XMLEBCDICTranscoder390.hpp	(revision 2674)
@@ -0,0 +1,73 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: XMLEBCDICTranscoder390.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#ifndef XMLEBCDICTRANSCODER390_HPP
+#define XMLEBCDICTRANSCODER390_HPP
+
+#include <xercesc/util/XercesDefs.hpp>
+#include <xercesc/util/Transcoders/Uniconv390/XML256TableTranscoder390.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+//
+//  This class provides an implementation of the XMLTranscoder interface
+//  for a simple EBCDIC-US transcoder. The parser does some encodings
+//  intrinsically without depending upon external transcoding services.
+//  To make everything more orthagonal, we implement these internal
+//  transcoders using the same transcoder abstraction as the pluggable
+//  transcoding services do.
+//
+//  EBCDIC-US is the same as IBM037, CP37, EBCDIC-CP-US, etc...
+//
+class XMLUTIL_EXPORT XMLEBCDICTranscoder390 : public XML256TableTranscoder390
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Public, static methods
+    // -----------------------------------------------------------------------
+    static XMLCh xlatThisOne(const XMLByte toXlat);
+
+
+    // -----------------------------------------------------------------------
+    //  Public constructors and destructor
+    // -----------------------------------------------------------------------
+    XMLEBCDICTranscoder390
+    (
+        const   XMLCh* const    encodingName
+        , const unsigned int    blockSize
+        , MemoryManager* const  manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    virtual ~XMLEBCDICTranscoder390();
+
+
+private :
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    XMLEBCDICTranscoder390();
+    XMLEBCDICTranscoder390(const XMLEBCDICTranscoder390&);
+    XMLEBCDICTranscoder390& operator=(const XMLEBCDICTranscoder390&);
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Transcoders/Uniconv390/XMLIBM1140Transcoder390.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Transcoders/Uniconv390/XMLIBM1140Transcoder390.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Transcoders/Uniconv390/XMLIBM1140Transcoder390.hpp	(revision 2674)
@@ -0,0 +1,71 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: XMLIBM1140Transcoder390.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#ifndef XMLIBM1140TRANSCODER390_HPP
+#define XMLIBM1140TRANSCODER390_HPP
+
+#include <xercesc/util/XercesDefs.hpp>
+#include <xercesc/util/Transcoders/Uniconv390/XML256TableTranscoder390.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+//
+//  This class provides an implementation of the XMLTranscoder interface
+//  for a simple ibm-1140 transcoder. The parser does some encodings
+//  intrinsically without depending upon external transcoding services.
+//  To make everything more orthagonal, we implement these internal
+//  transcoders using the same transcoder abstraction as the pluggable
+//  transcoding services do.
+//
+class XMLUTIL_EXPORT XMLIBM1140Transcoder390 : public XML256TableTranscoder390
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Public, static methods
+    // -----------------------------------------------------------------------
+    static XMLCh xlatThisOne(const XMLByte toXlat);
+
+
+    // -----------------------------------------------------------------------
+    //  Public constructors and destructor
+    // -----------------------------------------------------------------------
+    XMLIBM1140Transcoder390
+    (
+        const   XMLCh* const    encodingName
+        , const unsigned int    blockSize
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    virtual ~XMLIBM1140Transcoder390();
+
+
+private :
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    XMLIBM1140Transcoder390();
+    XMLIBM1140Transcoder390(const XMLIBM1140Transcoder390&);
+    XMLIBM1140Transcoder390& operator=(const XMLIBM1140Transcoder390&);
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Transcoders/Uniconv390/XML88591Transcoder390.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Transcoders/Uniconv390/XML88591Transcoder390.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Transcoders/Uniconv390/XML88591Transcoder390.hpp	(revision 2674)
@@ -0,0 +1,93 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: XML88591Transcoder390.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#ifndef XML88591TRANSCODER390_HPP
+#define XML88591TRANSCODER390_HPP
+
+#include <xercesc/util/XercesDefs.hpp>
+#include <xercesc/util/TransService.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+//
+//  This class provides an implementation of the XMLTranscoder interface
+//  for a simple 8859-1 transcoder. The parser does some encodings
+//  intrinsically without depending upon external transcoding services.
+//  To make everything more orthagonal, we implement these internal
+//  transcoders using the same transcoder abstraction as the pluggable
+//  transcoding services do.
+//
+class XMLUTIL_EXPORT XML88591Transcoder390 : public XMLTranscoder
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Public constructors and destructor
+    // -----------------------------------------------------------------------
+    XML88591Transcoder390
+    (
+        const   XMLCh* const    encodingName
+        , const unsigned int    blockSize
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    virtual ~XML88591Transcoder390();
+
+
+    // -----------------------------------------------------------------------
+    //  Implementation of the XMLTranscoder interface
+    // -----------------------------------------------------------------------
+    virtual unsigned int transcodeFrom
+    (
+        const   XMLByte* const          srcData
+        , const unsigned int            srcCount
+        ,       XMLCh* const            toFill
+        , const unsigned int            maxChars
+        ,       unsigned int&           bytesEaten
+        ,       unsigned char* const    charSizes
+    );
+
+    virtual unsigned int transcodeTo
+    (
+        const   XMLCh* const    srcData
+        , const unsigned int    srcCount
+        ,       XMLByte* const  toFill
+        , const unsigned int    maxBytes
+        ,       unsigned int&   charsEaten
+        , const UnRepOpts       options
+    );
+
+    virtual bool canTranscodeTo
+    (
+        const   unsigned int    toCheck
+    )   const;
+
+
+private :
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    XML88591Transcoder390(const XML88591Transcoder390&);
+    XML88591Transcoder390& operator=(const XML88591Transcoder390&);
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Transcoders/Uniconv390/uniconv.h
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Transcoders/Uniconv390/uniconv.h	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Transcoders/Uniconv390/uniconv.h	(revision 2674)
@@ -0,0 +1,53 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: uniconv.h 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#ifndef UNICONV_HPP
+#define UNICONV_HPP
+
+#include <xercesc/util/XercesDefs.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+// This is the type for the returned handles
+typedef void * uniconv_t;
+#define UNICONV_ERROR (uniconv_t)-1
+#define UNICONV_NOHANDLE (uniconv_t)0
+
+// These are the character conversion services APIs. They are modeled
+// after the iconv() APIs.
+uniconv_t uniconv_open(const char *,const char *);
+int uniconv_close(uniconv_t);
+int uniconv(uniconv_t cd, char **inbuf,  size_t *inbytesleft,
+                          char **outbuf, size_t *outbytesleft);
+
+// These are the case conversion APIs. They use the same handle type as the
+// conversion APIs above.
+typedef unsigned short unichar_t;
+uniconv_t uniconv_toupper_open();
+uniconv_t uniconv_tolower_open();
+#define uniconv_toupper_close(_a) _uniconv_case_close(_a)
+#define uniconv_tolower_close(_a) _uniconv_case_close(_a)
+int _uniconv_case_close(uniconv_t handle_area);
+unichar_t uniconv_caseit(uniconv_t cd, unichar_t inchar);
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Transcoders/Uniconv390/XMLIBM1047Transcoder390.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Transcoders/Uniconv390/XMLIBM1047Transcoder390.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Transcoders/Uniconv390/XMLIBM1047Transcoder390.hpp	(revision 2674)
@@ -0,0 +1,72 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: XMLIBM1047Transcoder390.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#ifndef XMLIBM1047TRANSCODER390_HPP
+#define XMLIBM1047TRANSCODER390_HPP
+
+#include <xercesc/util/XercesDefs.hpp>
+#include <xercesc/util/Transcoders/Uniconv390/XML256TableTranscoder390.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+//
+//  This class provides an implementation of the XMLTranscoder interface
+//  for a simple 1047-US transcoder. The parser does some encodings
+//  intrinsically without depending upon external transcoding services.
+//  To make everything more orthagonal, we implement these internal
+//  transcoders using the same transcoder abstraction as the pluggable
+//  transcoding services do.
+//
+//
+class XMLUTIL_EXPORT XMLIBM1047Transcoder390 : public XML256TableTranscoder390
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Public, static methods
+    // -----------------------------------------------------------------------
+    static XMLCh xlatThisOne(const XMLByte toXlat);
+
+
+    // -----------------------------------------------------------------------
+    //  Public constructors and destructor
+    // -----------------------------------------------------------------------
+    XMLIBM1047Transcoder390
+    (
+        const   XMLCh* const    encodingName
+        , const unsigned int    blockSize
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    virtual ~XMLIBM1047Transcoder390();
+
+
+private :
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    XMLIBM1047Transcoder390();
+    XMLIBM1047Transcoder390(const XMLIBM1047Transcoder390&);
+    void operator=(const XMLIBM1047Transcoder390&);
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Transcoders/Uniconv390/ccsid.h
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Transcoders/Uniconv390/ccsid.h	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Transcoders/Uniconv390/ccsid.h	(revision 2674)
@@ -0,0 +1,648 @@
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * $Id: ccsid.h 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+/*****************************************************************
+ * Do not manually change this file. It is generated automatically.
+ *****************************************************************/
+ 
+#define _AE_MAX_CODESET_NAME_LENGTH    40
+#define _AE_NUM_OF_CODESETS   613
+
+struct ccsid_mapping {
+   char NAME[_AE_MAX_CODESET_NAME_LENGTH];
+   int CCSID;
+};
+
+struct ccsid_mapping CCSID_MAPPING[_AE_NUM_OF_CODESETS] =
+{ {"ADOBELATIN1ENCODING", 1277}, 
+{"ADOBESTANDARDENCODING", 1276}, 
+{"ARABIC", 1089}, 
+{"ASMO708", 1089}, 
+{"BIG5", 1370}, 
+{"CCSID00858", 858}, 
+{"CCSID01140", 1140}, 
+{"CCSID01141", 1141}, 
+{"CCSID01142", 1142}, 
+{"CCSID01143", 1143}, 
+{"CCSID01144", 1144}, 
+{"CCSID01145", 1145}, 
+{"CCSID01146", 1146}, 
+{"CCSID01147", 1147}, 
+{"CCSID01148", 1148}, 
+{"CCSID01149", 1149}, 
+{"CHINESE", 1383}, 
+{"CP00858", 858}, 
+{"CP01140", 1140}, 
+{"CP01141", 1141}, 
+{"CP01142", 1142}, 
+{"CP01143", 1143}, 
+{"CP01144", 1144}, 
+{"CP01145", 1145}, 
+{"CP01146", 1146}, 
+{"CP01147", 1147}, 
+{"CP01148", 1148}, 
+{"CP01149", 1149}, 
+{"CP037", 37}, 
+{"CP1006", 1006}, 
+{"CP1008", 5104}, 
+{"CP1025", 1025}, 
+{"CP1027", 5123}, 
+{"CP1046", 9238}, 
+{"CP1089", 1089}, 
+{"CP1097", 1097}, 
+{"CP1098", 1098}, 
+{"CP1112", 1112}, 
+{"CP1122", 1122}, 
+{"CP1123", 1123}, 
+{"CP1124", 1124}, 
+{"CP1125", 1125}, 
+{"CP1130", 1164}, 
+{"CP1131", 1131}, 
+{"CP1140", 1140}, 
+{"CP1141", 1141}, 
+{"CP1142", 1142}, 
+{"CP1143", 1143}, 
+{"CP1144", 1144}, 
+{"CP1145", 1145}, 
+{"CP1146", 1146}, 
+{"CP1147", 1147}, 
+{"CP1148", 1148}, 
+{"CP1149", 1149}, 
+{"CP1208", 1208}, 
+{"CP1250", 5346}, 
+{"CP1251", 5347}, 
+{"CP1252", 5348}, 
+{"CP1253", 1253}, 
+{"CP1254", 5350}, 
+{"CP1255", 5351}, 
+{"CP1256", 5352}, 
+{"CP1257", 5353}, 
+{"CP1258", 5354}, 
+{"CP1363", 1363}, 
+{"CP1364", 1364}, 
+{"CP1383", 1383}, 
+{"CP1386", 1386}, 
+{"CP273", 273}, 
+{"CP277", 277}, 
+{"CP278", 278}, 
+{"CP280", 280}, 
+{"CP284", 284}, 
+{"CP285", 285}, 
+{"CP28709", 1159}, 
+{"CP297", 297}, 
+{"CP33722", 33722}, 
+{"CP37", 37}, 
+{"CP420", 420}, 
+{"CP424", 424}, 
+{"CP437", 437}, 
+{"CP500", 500}, 
+{"CP65001", 1208}, 
+{"CP813", 813}, 
+{"CP819", 819}, 
+{"CP838", 9030}, 
+{"CP850", 850}, 
+{"CP851", 851}, 
+{"CP852", 852}, 
+{"CP855", 855}, 
+{"CP856", 856}, 
+{"CP857", 857}, 
+{"CP858", 858}, 
+{"CP859", 859}, 
+{"CP860", 860}, 
+{"CP861", 861}, 
+{"CP862", 862}, 
+{"CP863", 863}, 
+{"CP864", 864}, 
+{"CP865", 865}, 
+{"CP866", 866}, 
+{"CP867", 867}, 
+{"CP868", 868}, 
+{"CP869", 869}, 
+{"CP870", 870}, 
+{"CP871", 871}, 
+{"CP874", 874}, 
+{"CP875", 875}, 
+{"CP878", 878}, 
+{"CP9030", 1160}, 
+{"CP9066", 874}, 
+{"CP912", 912}, 
+{"CP913", 913}, 
+{"CP914", 914}, 
+{"CP915", 915}, 
+{"CP916", 916}, 
+{"CP918", 918}, 
+{"CP920", 920}, 
+{"CP921", 921}, 
+{"CP922", 922}, 
+{"CP923", 923}, 
+{"CP932", 942}, 
+{"CP933", 933}, 
+{"CP935", 935}, 
+{"CP936", 1386}, 
+{"CP937", 937}, 
+{"CP939", 939}, 
+{"CP943", 943}, 
+{"CP943C", 943}, 
+{"CP949", 949}, 
+{"CP949C", 949}, 
+{"CP950", 1370}, 
+{"CPAR", 868}, 
+{"CPGR", 869}, 
+{"CPIBM1047", 1047}, 
+{"CPIBM1123", 1123}, 
+{"CPIBM1140", 1140}, 
+{"CPIBM1141", 1141}, 
+{"CPIBM1142", 1142}, 
+{"CPIBM1143", 1143}, 
+{"CPIBM1144", 1144}, 
+{"CPIBM1145", 1145}, 
+{"CPIBM1146", 1146}, 
+{"CPIBM1147", 1147}, 
+{"CPIBM1148", 1148}, 
+{"CPIBM1149", 1149}, 
+{"CPIBM1153", 1153}, 
+{"CPIBM1154", 1154}, 
+{"CPIBM1156", 1156}, 
+{"CPIBM1157", 1157}, 
+{"CPIBM1158", 1123}, 
+{"CPIBM1160", 1160}, 
+{"CPIBM1164", 1164}, 
+{"CPIBM12712", 12712}, 
+{"CPIBM1371", 1371}, 
+{"CPIBM16804", 16804}, 
+{"CPIBM273", 273}, 
+{"CPIBM277", 277}, 
+{"CPIBM278", 278}, 
+{"CPIBM280", 280}, 
+{"CPIBM284", 284}, 
+{"CPIBM285", 285}, 
+{"CPIBM297", 297}, 
+{"CPIBM37", 37}, 
+{"CPIBM4971", 4971}, 
+{"CPIBM500", 500}, 
+{"CPIBM871", 871}, 
+{"CPIBM933", 933}, 
+{"CPIBM935", 935}, 
+{"CPIBM937", 937}, 
+{"CPIS", 861}, 
+{"CSADOBESTANDARDENCODING", 1276}, 
+{"CSBIG5", 1370}, 
+{"CSEUCKR", 970}, 
+{"CSEUCPKDFMTJAPANESE", 33722}, 
+{"CSGB2312", 1383}, 
+{"CSHALFWIDTHKATAKANA", 897}, 
+{"CSHPROMAN8", 1051}, 
+{"CSIBM037", 37}, 
+{"CSIBM273", 273}, 
+{"CSIBM277", 277}, 
+{"CSIBM278", 278}, 
+{"CSIBM280", 280}, 
+{"CSIBM284", 284}, 
+{"CSIBM285", 285}, 
+{"CSIBM297", 297}, 
+{"CSIBM420", 420}, 
+{"CSIBM424", 424}, 
+{"CSIBM500", 500}, 
+{"CSIBM855", 855}, 
+{"CSIBM857", 857}, 
+{"CSIBM860", 860}, 
+{"CSIBM861", 861}, 
+{"CSIBM863", 863}, 
+{"CSIBM864", 864}, 
+{"CSIBM865", 865}, 
+{"CSIBM866", 866}, 
+{"CSIBM868", 868}, 
+{"CSIBM869", 869}, 
+{"CSIBM870", 870}, 
+{"CSIBM871", 871}, 
+{"CSIBM918", 918}, 
+{"CSIBMTHAI", 9030}, 
+{"CSISO58GB231280", 1383}, 
+{"CSISOLATIN0", 923}, 
+{"CSISOLATIN1", 819}, 
+{"CSISOLATIN2", 912}, 
+{"CSISOLATIN3", 913}, 
+{"CSISOLATIN4", 914}, 
+{"CSISOLATIN5", 920}, 
+{"CSISOLATIN9", 923}, 
+{"CSISOLATINARABIC", 1089}, 
+{"CSISOLATINCYRILLIC", 915}, 
+{"CSISOLATINGREEK", 813}, 
+{"CSISOLATINHEBREW", 916}, 
+{"CSKOI8R", 878}, 
+{"CSKSC56011987", 1363}, 
+{"CSMACINTOSH", 1275}, 
+{"CSPC850MULTILINGUAL", 850}, 
+{"CSPC851", 851}, 
+{"CSPC862LATINHEBREW", 862}, 
+{"CSPC8CODEPAGE437", 437}, 
+{"CSPCP852", 852}, 
+{"CSPCP855", 855}, 
+{"CSSHIFTJIS", 943}, 
+{"CSUNICODE", 1200}, 
+{"CSWINDOWS31J", 943}, 
+{"CYRILLIC", 915}, 
+{"DOS862", 862}, 
+{"EBCDICAR", 16804}, 
+{"EBCDICCPAR1", 420}, 
+{"EBCDICCPAR2", 918}, 
+{"EBCDICCPBE", 500}, 
+{"EBCDICCPCA", 37}, 
+{"EBCDICCPCH", 500}, 
+{"EBCDICCPDK", 277}, 
+{"EBCDICCPES", 284}, 
+{"EBCDICCPFI", 278}, 
+{"EBCDICCPFR", 297}, 
+{"EBCDICCPGB", 285}, 
+{"EBCDICCPHE", 424}, 
+{"EBCDICCPIS", 871}, 
+{"EBCDICCPIT", 280}, 
+{"EBCDICCPNL", 37}, 
+{"EBCDICCPNO", 277}, 
+{"EBCDICCPROECE", 870}, 
+{"EBCDICCPSE", 278}, 
+{"EBCDICCPUS", 37}, 
+{"EBCDICCPWT", 37}, 
+{"EBCDICCPYU", 870}, 
+{"EBCDICDE", 273}, 
+{"EBCDICDK", 277}, 
+{"EBCDICGB", 285}, 
+{"EBCDICHE", 12712}, 
+{"EBCDICIS", 871}, 
+{"EBCDICSV", 278}, 
+{"ECMA114", 1089}, 
+{"ECMA118", 813}, 
+{"ECMA128", 920}, 
+{"ELOT928", 813}, 
+{"EUCCN", 1383}, 
+{"EUCJIS", 33722}, 
+{"EUCJP", 33722}, 
+{"EUCKR", 970}, 
+{"EUCTH", 874}, 
+{"EXTENDEDUNIXCODEPACKEDFORMATFORJAPANESE", 33722}, 
+{"GB", 1383}, 
+{"GB2312", 1383}, 
+{"GB23121980", 1383}, 
+{"GB231280", 1383}, 
+{"GBK", 1386}, 
+{"GREEK", 813}, 
+{"GREEK8", 813}, 
+{"HEBREW", 916}, 
+{"HP15CN", 1383}, 
+{"HPROMAN8", 1051}, 
+{"IBM00858", 858}, 
+{"IBM01140", 1140}, 
+{"IBM01141", 1141}, 
+{"IBM01142", 1142}, 
+{"IBM01143", 1143}, 
+{"IBM01144", 1144}, 
+{"IBM01145", 1145}, 
+{"IBM01146", 1146}, 
+{"IBM01147", 1147}, 
+{"IBM01148", 1148}, 
+{"IBM01149", 1149}, 
+{"IBM037", 37}, 
+{"IBM037S390", 37}, 
+{"IBM1006", 1006}, 
+{"IBM1006VPUA", 1006}, 
+{"IBM1025", 1025}, 
+{"IBM1025STD", 1025}, 
+{"IBM1047", 1047}, 
+{"IBM1047S390", 1047}, 
+{"IBM1051", 1051}, 
+{"IBM1089", 1089}, 
+{"IBM1097", 1097}, 
+{"IBM1097VPUA", 1097}, 
+{"IBM1098", 1098}, 
+{"IBM1098VSUBVPUA", 1098}, 
+{"IBM1112", 1112}, 
+{"IBM1112STD", 1112}, 
+{"IBM1122", 1122}, 
+{"IBM1122STD", 1122}, 
+{"IBM1123", 1123}, 
+{"IBM1123STD", 1123}, 
+{"IBM1124", 1124}, 
+{"IBM1124STD", 1124}, 
+{"IBM1125", 1125}, 
+{"IBM1125VSUB", 1125}, 
+{"IBM1129", 1129}, 
+{"IBM1129STD", 1129}, 
+{"IBM1130", 1130}, 
+{"IBM1130STD", 1130}, 
+{"IBM1131", 1131}, 
+{"IBM1131VSUB", 1131}, 
+{"IBM1132", 1132}, 
+{"IBM1132STD", 1132}, 
+{"IBM1133", 1133}, 
+{"IBM1133STD", 1133}, 
+{"IBM1137", 1137}, 
+{"IBM1137STD", 1137}, 
+{"IBM1140", 1140}, 
+{"IBM1140S390", 1140}, 
+{"IBM1141", 1141}, 
+{"IBM1142", 1142}, 
+{"IBM1142S390", 1142}, 
+{"IBM1143", 1143}, 
+{"IBM1143S390", 1143}, 
+{"IBM1144", 1144}, 
+{"IBM1144S390", 1144}, 
+{"IBM1145", 1145}, 
+{"IBM1145S390", 1145}, 
+{"IBM1146", 1146}, 
+{"IBM1146S390", 1146}, 
+{"IBM1147", 1147}, 
+{"IBM1147S390", 1147}, 
+{"IBM1148", 1148}, 
+{"IBM1148S390", 1148}, 
+{"IBM1149", 1149}, 
+{"IBM1149S390", 1149}, 
+{"IBM1153", 1153}, 
+{"IBM1154", 1154}, 
+{"IBM1156", 1156}, 
+{"IBM1157", 1157}, 
+{"IBM1158", 1123}, 
+{"IBM1159", 1159}, 
+{"IBM1160", 1160}, 
+{"IBM1164", 1164}, 
+{"IBM1208", 1208}, 
+{"IBM1209", 1208}, 
+{"IBM1250", 1250}, 
+{"IBM1251", 1251}, 
+{"IBM1252", 1252}, 
+{"IBM1253", 1253}, 
+{"IBM1254", 1254}, 
+{"IBM1255", 1255}, 
+{"IBM1256", 1256}, 
+{"IBM1257", 1257}, 
+{"IBM1258", 1258}, 
+{"IBM12712", 12712}, 
+{"IBM1275", 1275}, 
+{"IBM1276", 1276}, 
+{"IBM1277", 1277}, 
+{"IBM1280", 1280}, 
+{"IBM1281", 1281}, 
+{"IBM1282", 1282}, 
+{"IBM1283", 1283}, 
+{"IBM1363", 1363}, 
+{"IBM1363VASCIIVSUBVPUA", 1363}, 
+{"IBM1364", 1364}, 
+{"IBM1364VPUA", 1364}, 
+{"IBM1370", 1370}, 
+{"IBM1371", 1371}, 
+{"IBM1381", 1381}, 
+{"IBM1381VSUBVPUA", 1381}, 
+{"IBM1383", 1383}, 
+{"IBM1386", 1386}, 
+{"IBM1386P1002002", 1386}, 
+{"IBM1386VSUBVPUA", 1386}, 
+{"IBM1388", 1388}, 
+{"IBM1388VPUA", 1388}, 
+{"IBM1399", 1399}, 
+{"IBM16804", 16804}, 
+{"IBM17248", 17248}, 
+{"IBM273", 273}, 
+{"IBM277", 277}, 
+{"IBM278", 278}, 
+{"IBM280", 280}, 
+{"IBM284", 284}, 
+{"IBM285", 285}, 
+{"IBM297", 297}, 
+{"IBM33722", 33722}, 
+{"IBM33722VPUA", 33722}, 
+{"IBM367", 367}, 
+{"IBM37", 37}, 
+{"IBM37S390", 37}, 
+{"IBM420", 420}, 
+{"IBM424", 424}, 
+{"IBM437", 437}, 
+{"IBM4909", 4909}, 
+{"IBM4971", 4971}, 
+{"IBM500", 500}, 
+{"IBM5035", 939}, 
+{"IBM5050", 33722}, 
+{"IBM5104", 5104}, 
+{"IBM5123", 5123}, 
+{"IBM5304", 1208}, 
+{"IBM5305", 1208}, 
+{"IBM5346", 5346}, 
+{"IBM5347", 5347}, 
+{"IBM5348", 5348}, 
+{"IBM5349", 5349}, 
+{"IBM5350", 5350}, 
+{"IBM5351", 5351}, 
+{"IBM5352", 5352}, 
+{"IBM5353", 5353}, 
+{"IBM5354", 5354}, 
+{"IBM808", 808}, 
+{"IBM813", 813}, 
+{"IBM819", 819}, 
+{"IBM838", 9030}, 
+{"IBM848", 848}, 
+{"IBM849", 849}, 
+{"IBM850", 850}, 
+{"IBM851", 851}, 
+{"IBM852", 852}, 
+{"IBM855", 855}, 
+{"IBM856", 856}, 
+{"IBM857", 857}, 
+{"IBM858", 858}, 
+{"IBM859", 859}, 
+{"IBM860", 860}, 
+{"IBM861", 861}, 
+{"IBM862", 862}, 
+{"IBM863", 863}, 
+{"IBM864", 864}, 
+{"IBM865", 865}, 
+{"IBM866", 866}, 
+{"IBM867", 867}, 
+{"IBM868", 868}, 
+{"IBM869", 869}, 
+{"IBM870", 870}, 
+{"IBM870STD", 870}, 
+{"IBM871", 871}, 
+{"IBM872", 872}, 
+{"IBM874", 874}, 
+{"IBM875", 875}, 
+{"IBM875STD", 875}, 
+{"IBM878", 878}, 
+{"IBM897", 897}, 
+{"IBM901", 901}, 
+{"IBM902", 902}, 
+{"IBM9030", 9030}, 
+{"IBM9030STD", 9030}, 
+{"IBM9044", 9044}, 
+{"IBM9049", 9049}, 
+{"IBM9061", 9061}, 
+{"IBM9066", 874}, 
+{"IBM912", 912}, 
+{"IBM913", 913}, 
+{"IBM914", 914}, 
+{"IBM915", 915}, 
+{"IBM916", 916}, 
+{"IBM918", 918}, 
+{"IBM918VPUA", 918}, 
+{"IBM920", 920}, 
+{"IBM921", 921}, 
+{"IBM922", 922}, 
+{"IBM923", 923}, 
+{"IBM9238", 9238}, 
+{"IBM931", 939}, 
+{"IBM932", 942}, 
+{"IBM932VSUBVPUA", 942}, 
+{"IBM933", 933}, 
+{"IBM935", 935}, 
+{"IBM937", 937}, 
+{"IBM939", 939}, 
+{"IBM942", 942}, 
+{"IBM942VSUBVPUA", 942}, 
+{"IBM943", 943}, 
+{"IBM943C", 943}, 
+{"IBM943VSUBVPUA", 943}, 
+{"IBM949", 949}, 
+{"IBM949VSUBVPUA", 949}, 
+{"IBM950", 950}, 
+{"IBM9580", 1388}, 
+{"IBM970", 970}, 
+{"IBM970P1102000", 970}, 
+{"IBMEUCCN", 1383}, 
+{"IBMEUCJP", 33722}, 
+{"IBMEUCKR", 970}, 
+{"IBMTHAI", 9030}, 
+{"ISO10646UCS2", 1200}, 
+{"ISO88591", 819}, 
+{"ISO885913", 921}, 
+{"ISO885915", 923}, 
+{"ISO885915FDIS", 923}, 
+{"ISO88592", 912}, 
+{"ISO88593", 913}, 
+{"ISO88594", 914}, 
+{"ISO88595", 915}, 
+{"ISO88596", 1089}, 
+{"ISO88596E", 1089}, 
+{"ISO88596I", 1089}, 
+{"ISO88597", 813}, 
+{"ISO88598", 916}, 
+{"ISO88598E", 916}, 
+{"ISO88598I", 916}, 
+{"ISO88599", 920}, 
+{"ISOIR100", 819}, 
+{"ISOIR101", 912}, 
+{"ISOIR109", 913}, 
+{"ISOIR110", 914}, 
+{"ISOIR126", 813}, 
+{"ISOIR127", 1089}, 
+{"ISOIR138", 916}, 
+{"ISOIR144", 915}, 
+{"ISOIR148", 920}, 
+{"ISOIR149", 1363}, 
+{"ISOIR58", 1383}, 
+{"JISX0201", 897}, 
+{"KOI8", 878}, 
+{"KOI8R", 878}, 
+{"KOREAN", 1363}, 
+{"KSC", 1363}, 
+{"KSC5601", 970}, 
+{"KSC56011987", 970}, 
+{"KSC56011989", 1363}, 
+{"KSC56011992", 949}, 
+{"L1", 819}, 
+{"L2", 912}, 
+{"L3", 913}, 
+{"L4", 914}, 
+{"L5", 920}, 
+{"L9", 923}, 
+{"LATIN0", 923}, 
+{"LATIN1", 819}, 
+{"LATIN2", 912}, 
+{"LATIN3", 913}, 
+{"LATIN4", 914}, 
+{"LATIN5", 920}, 
+{"LATIN9", 923}, 
+{"MAC", 1275}, 
+{"MACCE", 1282}, 
+{"MACCY", 1283}, 
+{"MACGR", 1280}, 
+{"MACINTOSH", 1275}, 
+{"MACTR", 1281}, 
+{"MS932", 943}, 
+{"MSKANJI", 943}, 
+{"PCK", 943}, 
+{"R8", 1051}, 
+{"ROMAN8", 1051}, 
+{"SHIFTJIS", 943}, 
+{"SHIFTJIS78", 942}, 
+{"SJIS", 943}, 
+{"SJIS78", 942}, 
+{"TIS620", 874}, 
+{"TIS620.2533", 874}, 
+{"UCS2", 1200}, 
+{"UNICODE", 1200}, 
+{"UTF8", 1208}, 
+{"WINDOWS10000", 1275}, 
+{"WINDOWS10006", 1280}, 
+{"WINDOWS10007", 1283}, 
+{"WINDOWS10029", 1282}, 
+{"WINDOWS10081", 1281}, 
+{"WINDOWS1250", 1250}, 
+{"WINDOWS1251", 1251}, 
+{"WINDOWS1252", 1252}, 
+{"WINDOWS1253", 1253}, 
+{"WINDOWS1254", 1254}, 
+{"WINDOWS1255", 5351}, 
+{"WINDOWS1256", 5352}, 
+{"WINDOWS1257", 5353}, 
+{"WINDOWS1258", 1258}, 
+{"WINDOWS28592", 912}, 
+{"WINDOWS28593", 913}, 
+{"WINDOWS28594", 914}, 
+{"WINDOWS28595", 915}, 
+{"WINDOWS28596", 1089}, 
+{"WINDOWS28597", 813}, 
+{"WINDOWS28598", 916}, 
+{"WINDOWS28599", 920}, 
+{"WINDOWS28605", 923}, 
+{"WINDOWS31J", 943}, 
+{"WINDOWS437", 437}, 
+{"WINDOWS51932", 33722}, 
+{"WINDOWS51949", 970}, 
+{"WINDOWS65001", 1208}, 
+{"WINDOWS850", 850}, 
+{"WINDOWS852", 852}, 
+{"WINDOWS857", 857}, 
+{"WINDOWS861", 861}, 
+{"WINDOWS862", 862}, 
+{"WINDOWS866", 866}, 
+{"WINDOWS869", 869}, 
+{"WINDOWS936", 1386}, 
+{"WINDOWS949", 1363}, 
+{"X0201", 897}, 
+{"XBIG5", 1370}, 
+{"XEUCJP", 33722}, 
+{"XMACCE", 1282}, 
+{"XMACCENTRALEURROMAN", 1282}, 
+{"XMACCYRILLIC", 1283}, 
+{"XMACGREEK", 1280}, 
+{"XMACTURKISH", 1281}, 
+{"XMSCP932", 943}, 
+{"XSJIS", 943}, 
+{"ZHCN", 1386}, 
+{"", 0} };
+
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Transcoders/Uniconv390/Uniconv390TransService.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Transcoders/Uniconv390/Uniconv390TransService.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Transcoders/Uniconv390/Uniconv390TransService.hpp	(revision 2674)
@@ -0,0 +1,243 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: Uniconv390TransService.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#ifndef UNICONV390TRANSSERVICE_HPP
+#define UNICONV390TRANSSERVICE_HPP
+
+#include <xercesc/util/Mutexes.hpp>
+#include <xercesc/util/TransService.hpp>
+#include <xercesc/util/Transcoders/ICU/ICUTransService.hpp>
+#include "uniconv.h"
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+typedef struct uniconvconverter {
+   XMLMutex               fMutex;
+   uniconv_t                fIconv390DescriptorFrom;
+   uniconv_t                fIconv390DescriptorTo;
+} uniconvconverter_t;
+
+typedef struct uniconvcaseconverter {
+   XMLMutex  fcaseMutex;
+   uniconv_t ftoupperhand;
+   uniconv_t ftolowerhand;
+} uniconvcaseconverter_t;
+
+class XMLUTIL_EXPORT Uniconv390TransService : public XMLTransService
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+    Uniconv390TransService();
+    ~Uniconv390TransService();
+
+
+    // -----------------------------------------------------------------------
+    //  Implementation of the virtual transcoding service API
+    // -----------------------------------------------------------------------
+    virtual int compareIString
+    (
+        const   XMLCh* const    comp1
+        , const XMLCh* const    comp2
+    );
+
+    virtual int compareNIString
+    (
+        const   XMLCh* const    comp1
+        , const XMLCh* const    comp2
+        , const unsigned int    maxChars
+    );
+
+    virtual const XMLCh* getId() const;
+
+    virtual bool isSpace(const XMLCh toCheck) const;
+
+    virtual XMLLCPTranscoder* makeNewLCPTranscoder();
+
+    virtual bool supportsSrcOfs() const;
+
+    virtual void upperCase(XMLCh* const toUpperCase) const;
+    virtual void lowerCase(XMLCh* const toLowerCase) const;
+
+protected :
+    // -----------------------------------------------------------------------
+    //  Protected virtual methods
+    // -----------------------------------------------------------------------
+    virtual XMLTranscoder* makeNewXMLTranscoder
+    (
+        const   XMLCh* const            encodingName
+        ,       XMLTransService::Codes& resValue
+        , const unsigned int            blockSize
+        ,       MemoryManager* const    manager
+    );
+
+    virtual void initTransService();
+
+private :
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    Uniconv390TransService(const Uniconv390TransService&);
+    Uniconv390TransService& operator=(const Uniconv390TransService&);
+    ICUTransService * fICUService;
+    XMLLCPTranscoder* fLCPTranscoder;
+    uniconvcaseconverter_t *fCaseConverter;
+};
+
+
+
+class XMLUTIL_EXPORT Uniconv390Transcoder : public XMLTranscoder
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+    Uniconv390Transcoder
+    (
+        const   XMLCh* const        encodingName
+        ,        uniconvconverter_t* const   toAdopt
+        , const unsigned int        blockSize
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+    ~Uniconv390Transcoder();
+
+
+    // -----------------------------------------------------------------------
+    //  Implementation of the virtual transcoder interface
+    // -----------------------------------------------------------------------
+    virtual unsigned int transcodeFrom
+    (
+        const   XMLByte* const          srcData
+        , const unsigned int            srcCount
+        ,       XMLCh* const            toFill
+        , const unsigned int            maxChars
+        ,       unsigned int&           bytesEaten
+        ,       unsigned char* const    charSizes
+    );
+
+    virtual unsigned int transcodeTo
+    (
+        const   XMLCh* const    srcData
+        , const unsigned int    srcCount
+        ,       XMLByte* const  toFill
+        , const unsigned int    maxBytes
+        ,       unsigned int&   charsEaten
+        , const UnRepOpts       options
+    );
+
+    virtual bool canTranscodeTo
+    (
+        const   unsigned int    toCheck
+    )   const;
+
+
+
+private :
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    Uniconv390Transcoder();
+    Uniconv390Transcoder(const Uniconv390Transcoder&);
+    Uniconv390Transcoder& operator=(const Uniconv390Transcoder&);
+
+    ICUTranscoder * fICUTranscoder;
+
+    // -----------------------------------------------------------------------
+    //  Private data members
+    //
+    //  fConverter
+    //      This is a pointer to the converter structure that this transcoder
+    //      uses.
+    //
+    // -----------------------------------------------------------------------
+    uniconvconverter_t *fConverter;
+};
+
+
+class XMLUTIL_EXPORT Uniconv390LCPTranscoder : public XMLLCPTranscoder
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+    Uniconv390LCPTranscoder( uniconvconverter_t* const toAdopt);
+    ~Uniconv390LCPTranscoder();
+
+
+    // -----------------------------------------------------------------------
+    //  Implementation of the virtual transcoder interface
+    // -----------------------------------------------------------------------
+    virtual unsigned int calcRequiredSize(const char* const srcText
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+
+    virtual unsigned int calcRequiredSize(const XMLCh* const srcText
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+
+    virtual char* transcode(const XMLCh* const toTranscode);
+    virtual char* transcode(const XMLCh* const toTranscode,
+                            MemoryManager* const manager);
+
+    virtual XMLCh* transcode(const char* const toTranscode);
+    virtual XMLCh* transcode(const char* const toTranscode,
+                             MemoryManager* const manager);
+
+    virtual bool transcode
+    (
+        const   char* const     toTranscode
+        ,       XMLCh* const    toFill
+        , const unsigned int    maxChars
+        , MemoryManager* const  manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    virtual bool transcode
+    (
+        const   XMLCh* const    toTranscode
+        ,       char* const     toFill
+        , const unsigned int    maxChars
+        , MemoryManager* const  manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+
+
+private :
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    Uniconv390LCPTranscoder();
+    Uniconv390LCPTranscoder(const Uniconv390LCPTranscoder&);
+    Uniconv390LCPTranscoder& operator=(const Uniconv390LCPTranscoder&);
+
+    ICULCPTranscoder * fICULCPTranscoder;
+
+    // -----------------------------------------------------------------------
+    //  Private data members
+    //
+    //  fConverter
+    //      This is a pointer to the converter structure that this transcoder
+    //      uses.
+    // -----------------------------------------------------------------------
+    uniconvconverter_t *fConverter;
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Transcoders/Uniconv390/XML256TableTranscoder390.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Transcoders/Uniconv390/XML256TableTranscoder390.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Transcoders/Uniconv390/XML256TableTranscoder390.hpp	(revision 2674)
@@ -0,0 +1,146 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: XML256TableTranscoder390.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#ifndef XML256TABLETRANSCODER390_HPP
+#define XML256TABLETRANSCODER390_HPP
+
+#include <xercesc/util/TransService.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+//
+//  This class implements the functionality of a common type of transcoder
+//  for an 8 bit, single byte encoding based on a set of 'to' and 'from'
+//  translation tables. Actual derived classes are trivial and just have to
+//  provide us with pointers to their tables and we do all the work.
+//
+class XMLUTIL_EXPORT XML256TableTranscoder390 : public XMLTranscoder
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Public constructors and destructor
+    // -----------------------------------------------------------------------
+    virtual ~XML256TableTranscoder390();
+
+
+    // -----------------------------------------------------------------------
+    //  The virtual transcoding interface
+    // -----------------------------------------------------------------------
+    virtual unsigned int transcodeFrom
+    (
+        const   XMLByte* const          srcData
+        , const unsigned int            srcCount
+        ,       XMLCh* const            toFill
+        , const unsigned int            maxChars
+        ,       unsigned int&           bytesEaten
+        ,       unsigned char* const    charSizes
+    );
+
+    virtual unsigned int transcodeTo
+    (
+        const   XMLCh* const    srcData
+        , const unsigned int    srcCount
+        ,       XMLByte* const  toFill
+        , const unsigned int    maxBytes
+        ,       unsigned int&   charsEaten
+        , const UnRepOpts       options
+    );
+
+    virtual bool canTranscodeTo
+    (
+        const   unsigned int    toCheck
+    )   const;
+
+
+protected :
+    // -----------------------------------------------------------------------
+    //  Hidden constructors
+    // -----------------------------------------------------------------------
+    XML256TableTranscoder390
+    (
+        const   XMLCh* const                        encodingName
+        , const unsigned int                        blockSize
+        , const XMLCh* const                        fromTable
+        , const XMLTransService::TransRec* const    toTable
+        , const unsigned int                        toTableSize
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+
+    // -----------------------------------------------------------------------
+    //  Protected helper methods
+    // -----------------------------------------------------------------------
+    XMLByte xlatOneTo
+    (
+        const   XMLCh       toXlat
+    )   const;
+
+
+private :
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    XML256TableTranscoder390();
+    XML256TableTranscoder390(const XML256TableTranscoder390&);
+    XML256TableTranscoder390& operator=(const XML256TableTranscoder390&);
+
+
+    // -----------------------------------------------------------------------
+    //  Private data members
+    //
+    //  fFromTable
+    //      This is the 'from' table that we were given during construction.
+    //      It is a 256 entry table of XMLCh chars. Each entry is the
+    //      Unicode code point for the external encoding point of that value.
+    //      So fFromTable[N] is the Unicode translation of code point N of
+    //      the source encoding.
+    //
+    //      We don't own this table, we just refer to it. It is assumed that
+    //      the table is static, for performance reasons.
+    //
+    //  fToSize
+    //      The 'to' table is variable sized. This indicates how many records
+    //      are in it.
+    //
+    //  fToTable
+    //      This is a variable sized table of TransRec structures. It must
+    //      be sorted by the intCh field, i.e. the XMLCh field. It is searched
+    //      binarily to find the record for a particular Unicode char. Then
+    //      that record's extch field is the translation record.
+    //
+    //      We don't own this table, we just refer to it. It is assumed that
+    //      the table is static, for performance reasons.
+    //
+    //      NOTE: There may be dups of the extCh field, since there might be
+    //      multiple Unicode code points which map to the same external code
+    //      point. Normally this won't happen, since the parser assumes that
+    //      internalization is normalized, but we have to be prepared to do
+    //      the right thing if some client code gives us non-normalized data
+    //      itself.
+    // -----------------------------------------------------------------------
+    const XMLCh*                        fFromTable;
+    unsigned int                        fToSize;
+    const XMLTransService::TransRec*    fToTable;
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Transcoders/Uniconv390/XMLUTF8Transcoder390.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Transcoders/Uniconv390/XMLUTF8Transcoder390.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Transcoders/Uniconv390/XMLUTF8Transcoder390.hpp	(revision 2674)
@@ -0,0 +1,118 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: XMLUTF8Transcoder390.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#ifndef XMLUTF8TRANSCODER390_HPP
+#define XMLUTF8TRANSCODER390_HPP
+
+#include <xercesc/util/XercesDefs.hpp>
+#include <xercesc/util/TransService.hpp>
+#include <xercesc/util/UTFDataFormatException.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+//
+//  This class provides an implementation of the XMLTranscoder interface
+//  for a simple UTF8 transcoder. The parser does some encodings
+//  intrinsically without depending upon external transcoding services.
+//  To make everything more orthagonal, we implement these internal
+//  transcoders using the same transcoder abstraction as the pluggable
+//  transcoding services do.
+//
+class XMLUTIL_EXPORT XMLUTF8Transcoder390 : public XMLTranscoder
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Public constructors and destructor
+    // -----------------------------------------------------------------------
+    XMLUTF8Transcoder390
+    (
+        const   XMLCh* const    encodingName
+        , const unsigned int    blockSize
+        , MemoryManager* const  manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    virtual ~XMLUTF8Transcoder390();
+
+
+    // -----------------------------------------------------------------------
+    //  Implementation of the XMLTranscoder interface
+    // -----------------------------------------------------------------------
+    virtual unsigned int transcodeFrom
+    (
+        const   XMLByte* const          srcData
+        , const unsigned int            srcCount
+        ,       XMLCh* const            toFill
+        , const unsigned int            maxChars
+        ,       unsigned int&           bytesEaten
+        ,       unsigned char* const    charSizes
+    );
+
+    virtual unsigned int transcodeTo
+    (
+        const   XMLCh* const    srcData
+        , const unsigned int    srcCount
+        ,       XMLByte* const  toFill
+        , const unsigned int    maxBytes
+        ,       unsigned int&   charsEaten
+        , const UnRepOpts       options
+    );
+
+    virtual bool canTranscodeTo
+    (
+        const   unsigned int    toCheck
+    )   const;
+
+
+private :
+
+    inline void checkTrailingBytes(
+                                    const XMLByte      toCheck
+                                  , const unsigned int trailingBytes
+                                  , const unsigned int position       
+                                  ) const;
+
+private :
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    XMLUTF8Transcoder390(const XMLUTF8Transcoder390&);
+    XMLUTF8Transcoder390& operator=(const XMLUTF8Transcoder390&);
+};
+
+inline 
+void XMLUTF8Transcoder390::checkTrailingBytes(const XMLByte      toCheck
+                                            , const unsigned int trailingBytes
+                                            , const unsigned int position) const
+{
+
+    if((toCheck & 0xC0) != 0x80) 
+    {
+        char len[2]  = {(char)(trailingBytes+0x31), 0};
+        char pos[2]  = {(char)(position+0x31), 0};
+        char byte[2] = {toCheck,0};
+        ThrowXMLwithMemMgr3(UTFDataFormatException, XMLExcepts::UTF8_FormatError, pos, byte, len, getMemoryManager());
+    }
+
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Transcoders/Iconv/IconvTransService.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Transcoders/Iconv/IconvTransService.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Transcoders/Iconv/IconvTransService.hpp	(revision 2674)
@@ -0,0 +1,142 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: IconvTransService.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#ifndef ICONVTRANSSERVICE_HPP
+#define ICONVTRANSSERVICE_HPP
+
+#include <xercesc/util/TransService.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class XMLUTIL_EXPORT IconvTransService : public XMLTransService
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+    IconvTransService();
+    ~IconvTransService();
+
+
+    // -----------------------------------------------------------------------
+    //  Implementation of the virtual transcoding service API
+    // -----------------------------------------------------------------------
+    virtual int compareIString
+    (
+        const   XMLCh* const    comp1
+        , const XMLCh* const    comp2
+    );
+
+    virtual int compareNIString
+    (
+        const   XMLCh* const    comp1
+        , const XMLCh* const    comp2
+        , const unsigned int    maxChars
+    );
+
+    virtual const XMLCh* getId() const;
+
+    virtual bool isSpace(const XMLCh toCheck) const;
+
+    virtual XMLLCPTranscoder* makeNewLCPTranscoder();
+
+    virtual bool supportsSrcOfs() const;
+
+    virtual void upperCase(XMLCh* const toUpperCase) const;
+    virtual void lowerCase(XMLCh* const toLowerCase) const;
+
+protected :
+    // -----------------------------------------------------------------------
+    //  Protected virtual methods
+    // -----------------------------------------------------------------------
+    virtual XMLTranscoder* makeNewXMLTranscoder
+    (
+        const   XMLCh* const            encodingName
+        ,       XMLTransService::Codes& resValue
+        , const unsigned int            blockSize
+        ,       MemoryManager* const    manager
+    );
+
+
+private :
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    IconvTransService(const IconvTransService&);
+    IconvTransService& operator=(const IconvTransService&);
+};
+
+
+class XMLUTIL_EXPORT IconvLCPTranscoder : public XMLLCPTranscoder
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+    IconvLCPTranscoder();
+    ~IconvLCPTranscoder();
+
+
+    // -----------------------------------------------------------------------
+    //  Implementation of the virtual transcoder interface
+    // -----------------------------------------------------------------------
+    virtual unsigned int calcRequiredSize(const char* const srcText
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+
+    virtual unsigned int calcRequiredSize(const XMLCh* const srcText
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+
+    virtual char* transcode(const XMLCh* const toTranscode);
+    virtual char* transcode(const XMLCh* const toTranscode,
+                            MemoryManager* const manager);
+
+    virtual bool transcode
+    (
+        const   XMLCh* const    toTranscode
+        ,       char* const     toFill
+        , const unsigned int    maxBytes
+        , MemoryManager* const  manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    virtual XMLCh* transcode(const char* const toTranscode);
+    virtual XMLCh* transcode(const char* const toTranscode,
+                             MemoryManager* const manager);
+
+    virtual bool transcode
+    (
+        const   char* const     toTranscode
+        ,       XMLCh* const    toFill
+        , const unsigned int    maxChars
+        , MemoryManager* const  manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+
+private :
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    IconvLCPTranscoder(const IconvLCPTranscoder&);
+    IconvLCPTranscoder& operator=(const IconvLCPTranscoder&);
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/QName.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/QName.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/QName.hpp	(revision 2674)
@@ -0,0 +1,207 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: QName.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(QNAME_HPP)
+#define QNAME_HPP
+
+#include <xercesc/util/XMLString.hpp>
+#include <xercesc/util/XMLUniDefs.hpp>
+#include <xercesc/util/XMemory.hpp>
+#include <xercesc/util/PlatformUtils.hpp>
+
+#include <xercesc/internal/XSerializable.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class XMLUTIL_EXPORT QName : public XSerializable, public XMemory
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Contructors and Destructor
+    // -----------------------------------------------------------------------
+    /** Default constructor. */
+    QName(MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+
+    /** Constructs a specified qname using prefix, and localpart. */
+    QName
+    (
+          const XMLCh* const   prefix
+        , const XMLCh* const   localPart
+	    , const unsigned int   uriId
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    /** Constructs a specified qname using rawName. */
+    QName
+    (
+          const XMLCh* const   rawName
+	    , const unsigned int   uriId
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    /** Copy constructor. */
+    QName(const QName& qname);
+
+    ~QName();
+
+    // -----------------------------------------------------------------------
+    //  Getters
+    // -----------------------------------------------------------------------
+    const XMLCh* getPrefix() const;
+    XMLCh* getPrefix();
+
+    const XMLCh* getLocalPart() const;
+    XMLCh* getLocalPart();
+
+    unsigned int getURI() const;
+
+    const XMLCh* getRawName() const;
+    XMLCh* getRawName();
+
+    MemoryManager* getMemoryManager() const;
+
+    // -----------------------------------------------------------------------
+    //  Setters
+    // -----------------------------------------------------------------------
+    void setName
+    (
+        const XMLCh* const        prefix
+      , const XMLCh* const        localPart
+	   , const unsigned int        uriId
+    );
+
+    void setName
+    (
+        const XMLCh* const        rawName
+	   , const unsigned int        uriId
+    );
+
+    void setPrefix(const XMLCh*) ;
+    void setLocalPart(const XMLCh*) ;
+    void setNPrefix(const XMLCh*, const unsigned int) ;
+    void setNLocalPart(const XMLCh*, const unsigned int) ;
+    void setURI(const unsigned int) ;
+
+    void setValues(const QName& qname);
+
+    // -----------------------------------------------------------------------
+    //  comparison
+    // -----------------------------------------------------------------------
+    bool operator==(const QName&) const;
+
+    // -----------------------------------------------------------------------
+    //  Misc
+    // -----------------------------------------------------------------------
+    void cleanUp();
+
+    /***
+     * Support for Serialization/De-serialization
+     ***/
+    DECL_XSERIALIZABLE(QName)
+
+private :
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------    
+    QName& operator=(const QName&);
+
+    // -----------------------------------------------------------------------
+    //  Private instance variables
+    //
+    //  We copy the followings from XMLAttr.hpp, but stick to Java version's
+    //  naming convention
+    //
+    //  fPrefix
+    //  fPrefixBufSz
+    //      The prefix that was applied to this attribute's name, and the
+    //      current size of the buffer (minus one for the null.) Prefixes
+    //      really don't matter technically but it might be required for
+    //      pratical reasons, to recreate the original document for instance.
+    //
+    //  fLocalPart
+    //  fLocalPartBufSz
+    //      The base part of the name of the attribute, and the current size
+    //      of the buffer (minus one, where the null is.)
+    //
+    //  fRawName
+    //  fRawNameBufSz
+    //      This is the QName form of the name, which is faulted in (from the
+    //      prefix and name) upon request. The size field indicates the
+    //      current size of the buffer (minus one for the null.) It will be
+    //      zero until fauled in.
+    //
+    //  fURIId
+    //      The id of the URI that this attribute belongs to.
+    // -----------------------------------------------------------------------
+    unsigned int        fPrefixBufSz;
+    unsigned int        fLocalPartBufSz;
+    unsigned int        fRawNameBufSz;
+    unsigned int        fURIId;
+    XMLCh*              fPrefix;
+    XMLCh*              fLocalPart;
+    XMLCh*              fRawName;
+    MemoryManager*      fMemoryManager;
+};
+
+// ---------------------------------------------------------------------------
+//  QName: Getter methods
+// ---------------------------------------------------------------------------
+inline const XMLCh* QName::getPrefix() const
+{
+	return fPrefix;
+}
+
+inline XMLCh* QName::getPrefix()
+{
+	return fPrefix;
+}
+
+inline const XMLCh* QName::getLocalPart() const
+{
+	return fLocalPart;
+}
+
+inline XMLCh* QName::getLocalPart()
+{
+	return fLocalPart;
+}
+
+inline unsigned int QName::getURI() const
+{
+	return fURIId;
+}
+
+inline MemoryManager* QName::getMemoryManager() const
+{
+    return fMemoryManager;
+}
+
+// ---------------------------------------------------------------------------
+//  QName: Setter methods
+// ---------------------------------------------------------------------------
+inline void QName::setURI(const unsigned int uriId)
+{
+    fURIId = uriId;
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/SecurityManager.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/SecurityManager.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/SecurityManager.hpp	(revision 2674)
@@ -0,0 +1,116 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: SecurityManager.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#ifndef SECURITYMANAGER_HPP
+#define SECURITYMANAGER_HPP
+
+#include <xercesc/util/XercesDefs.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+/**
+  * Allow application to force the parser to behave in a security-conscious
+  * way.
+  *
+  * <p> There are cases in which an XML- or XmL-schema-
+  * conformant processor can be presented with documents the
+  * processing of which can involve the consumption of
+  * prohibitive amounts of system resources.  Applications can
+  * attach instances of this class to parsers that they've
+  * created, via the
+  * http://apache.org/xml/properties/security-manager property.  
+  * </p>
+  *
+  * <p> Defaults will be provided for all known security holes.
+  * Setter methods will be provided on this class to ensure that
+  * an application can customize each limit as it chooses.
+  * Components that are vulnerable to any given hole need to be
+  * written to act appropriately when an instance of this class
+  * has been set on the calling parser.
+  * </p>
+  */
+
+class XMLUTIL_EXPORT SecurityManager
+{
+public:
+
+    enum { ENTITY_EXPANSION_LIMIT = 50000};
+
+    /** @name default Constructors */
+    //@{
+    /** Default constructor */
+    SecurityManager()
+        : fEntityExpansionLimit(ENTITY_EXPANSION_LIMIT)
+    {        
+    }
+
+    /** Destructor */
+    virtual ~SecurityManager(){};   
+    //@}
+
+    /** @name The Security Manager */
+    //@{
+   /**
+    * An application should call this method when it wishes to specify a particular
+    * limit to the number of entity expansions the parser will permit in a
+    * particular document.  The default behaviour should allow the parser
+    * to validate nearly all XML non-malicious XML documents; if an
+    * application knows that it is operating in a domain where entities are
+    * uncommon, for instance, it may wish to provide a limit lower than the
+    * parser's default.
+    *
+    * @param newLimit  the new entity expansion limit
+    *
+    */
+    virtual void setEntityExpansionLimit(unsigned int newLimit) 
+    {
+        fEntityExpansionLimit = newLimit;
+    }
+
+   /**
+    * Permits the application or a parser component to query the current
+    * limit for entity expansions.
+    *
+    * @return   the current setting of the entity expansion limit
+    *
+    */
+    virtual unsigned int getEntityExpansionLimit() const
+    { 
+        return fEntityExpansionLimit;
+    }
+    //@}
+
+protected:
+    unsigned int fEntityExpansionLimit;
+
+private:
+
+    /* Unimplemented Constructors and operators */
+    /* Copy constructor */
+    SecurityManager(const SecurityManager&);
+    
+    /** Assignment operator */
+    SecurityManager& operator=(const SecurityManager&);
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/BinMemInputStream.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/BinMemInputStream.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/BinMemInputStream.hpp	(revision 2674)
@@ -0,0 +1,159 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ *
+ * Revision 1.5  2004/09/08 13:56:21  peiyongz
+ * Apache License Version 2.0
+ *
+ * Revision 1.4  2004/01/29 11:48:46  cargilld
+ * Code cleanup changes to get rid of various compiler diagnostic messages.
+ *
+ * Revision 1.3  2003/05/16 03:11:22  knoaman
+ * Partial implementation of the configurable memory manager.
+ *
+ * Revision 1.2  2002/11/04 15:22:03  tng
+ * C++ Namespace Support.
+ *
+ * Revision 1.1.1.1  2002/02/01 22:22:10  peiyongz
+ * sane_include
+ *
+ * Revision 1.3  2000/02/24 20:05:24  abagchi
+ * Swat for removing Log from API docs
+ *
+ * Revision 1.2  2000/02/06 07:48:01  rahulj
+ * Year 2K copyright swat.
+ *
+ * Revision 1.1.1.1  1999/11/09 01:04:07  twl
+ * Initial checkin
+ *
+ * Revision 1.3  1999/11/08 20:45:04  rahul
+ * Swat for adding in Product name and CVS comment log variable.
+ *
+ */
+
+#if !defined(BINMEMINPUTSTREAM_HPP)
+#define BINMEMINPUTSTREAM_HPP
+
+#include <xercesc/util/BinInputStream.hpp>
+#include <xercesc/util/PlatformUtils.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class XMLUTIL_EXPORT BinMemInputStream : public BinInputStream
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Class specific types
+    // -----------------------------------------------------------------------
+    enum BufOpts
+    {
+        BufOpt_Adopt
+        , BufOpt_Copy
+        , BufOpt_Reference
+    };
+
+
+    // -----------------------------------------------------------------------
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+    BinMemInputStream
+    (
+        const   XMLByte* const  initData
+        , const unsigned int    capacity
+        , const BufOpts         bufOpt = BufOpt_Copy
+        , MemoryManager* const  manager = XMLPlatformUtils::fgMemoryManager
+    );
+    virtual ~BinMemInputStream();
+
+
+    // -----------------------------------------------------------------------
+    //  Stream management methods
+    // -----------------------------------------------------------------------
+    void reset();
+
+
+    // -----------------------------------------------------------------------
+    //  Implementation of the input stream interface
+    // -----------------------------------------------------------------------
+    virtual unsigned int curPos() const;
+
+    virtual unsigned int readBytes
+    (
+                XMLByte* const  toFill
+        , const unsigned int    maxToRead
+    );
+
+    inline unsigned int getSize() const;
+    
+private :
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    BinMemInputStream(const BinMemInputStream&);
+    BinMemInputStream& operator=(const BinMemInputStream&); 
+    // -----------------------------------------------------------------------
+    //  Private data members
+    //
+    //  fBuffer
+    //      The buffer of bytes that we are streaming.
+    //
+    //  fBufOpt
+    //      Indicates the ownership status of the buffer. The caller can have
+    //      us adopt it (we delete it), reference it, or just make our own
+    //      copy of it.
+    //
+    //  fCapacity
+    //      The size of the buffer being streamed.
+    //
+    //  fCurIndex
+    //      The current index where the next byte will be read from. When it
+    //      hits fCapacity, we are done.
+    // -----------------------------------------------------------------------
+    const XMLByte*  fBuffer;
+    BufOpts         fBufOpt;
+    unsigned int    fCapacity;
+    unsigned int    fCurIndex;
+    MemoryManager*  fMemoryManager;
+};
+
+
+// ---------------------------------------------------------------------------
+//  BinMemInputStream: Stream management methods
+// ---------------------------------------------------------------------------
+inline void BinMemInputStream::reset()
+{
+    fCurIndex = 0;
+}
+
+
+// ---------------------------------------------------------------------------
+//  BinMemInputStream: Implementation of the input stream interface
+// ---------------------------------------------------------------------------
+inline unsigned int BinMemInputStream::curPos() const
+{
+    return fCurIndex;
+}
+
+inline unsigned int BinMemInputStream::getSize() const
+{
+    return fCapacity;
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/BinFileInputStream.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/BinFileInputStream.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/BinFileInputStream.hpp	(revision 2674)
@@ -0,0 +1,106 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: BinFileInputStream.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(BINFILEINPUTSTREAM_HPP)
+#define BINFILEINPUTSTREAM_HPP
+
+#include <xercesc/util/BinInputStream.hpp>
+#include <xercesc/util/PlatformUtils.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class XMLUTIL_EXPORT BinFileInputStream : public BinInputStream
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+    BinFileInputStream
+    (
+        const   XMLCh* const    fileName
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    BinFileInputStream
+    (
+        const   char* const     fileName
+        , MemoryManager* const  manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    BinFileInputStream
+    (
+        const   FileHandle      toUse
+        , MemoryManager* const  manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    virtual ~BinFileInputStream();
+
+
+    // -----------------------------------------------------------------------
+    //  Getter methods
+    // -----------------------------------------------------------------------
+    bool getIsOpen() const;
+    unsigned int getSize() const;
+    void reset();
+
+
+    // -----------------------------------------------------------------------
+    //  Implementation of the input stream interface
+    // -----------------------------------------------------------------------
+    virtual unsigned int curPos() const;
+
+    virtual unsigned int readBytes
+    (
+                XMLByte* const      toFill
+        , const unsigned int        maxToRead
+    );
+
+
+private :
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    BinFileInputStream(const BinFileInputStream&);
+    BinFileInputStream& operator=(const BinFileInputStream&);   
+
+    // -----------------------------------------------------------------------
+    //  Private data members
+    //
+    //  fSource
+    //      The source file that we represent. The FileHandle type is defined
+    //      per platform.
+    // -----------------------------------------------------------------------
+    FileHandle              fSource;
+    MemoryManager* const    fMemoryManager;
+};
+
+
+// ---------------------------------------------------------------------------
+//  BinFileInputStream: Getter methods
+// ---------------------------------------------------------------------------
+inline bool BinFileInputStream::getIsOpen() const
+{
+    return (fSource != (FileHandle) XERCES_Invalid_File_Handle);
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/BinInputStream.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/BinInputStream.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/BinInputStream.hpp	(revision 2674)
@@ -0,0 +1,67 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: BinInputStream.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(BININPUTSTREAM_HPP)
+#define BININPUTSTREAM_HPP
+
+#include <xercesc/util/XMemory.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class XMLUTIL_EXPORT BinInputStream : public XMemory
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Virtual destructor for derived classes
+    // -----------------------------------------------------------------------
+    virtual ~BinInputStream();
+
+
+    // -----------------------------------------------------------------------
+    //  The virtual input stream interface
+    // -----------------------------------------------------------------------
+    virtual unsigned int curPos() const = 0;
+
+    virtual unsigned int readBytes
+    (
+                XMLByte* const      toFill
+        , const unsigned int        maxToRead
+    ) = 0;
+
+
+protected :
+    // -----------------------------------------------------------------------
+    //  Hidden Constructors
+    // -----------------------------------------------------------------------
+    BinInputStream();
+
+
+private :
+    // -----------------------------------------------------------------------
+    //  Unimplemented Constructors
+    // -----------------------------------------------------------------------
+    BinInputStream(const BinInputStream&);
+    BinInputStream& operator=(const BinInputStream&);
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/XMLDeleterFor.c
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/XMLDeleterFor.c	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/XMLDeleterFor.c	(revision 2674)
@@ -0,0 +1,46 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: XMLDeleterFor.c 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+// ---------------------------------------------------------------------------
+//  Includes
+// ---------------------------------------------------------------------------
+#if defined(XERCES_TMPLSINC)
+#include <xercesc/util/XMLDeleterFor.hpp>
+#endif
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+// ---------------------------------------------------------------------------
+//  XMLDeleterFor: Constructors and Destructor
+// ---------------------------------------------------------------------------
+template <class T> XMLDeleterFor<T>::XMLDeleterFor(T* const toDelete) :
+
+    fToDelete(toDelete)
+{
+}
+
+template <class T> XMLDeleterFor<T>::~XMLDeleterFor()
+{
+   delete fToDelete;
+}
+
+XERCES_CPP_NAMESPACE_END
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/ValueHashTableOf.c
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/ValueHashTableOf.c	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/ValueHashTableOf.c	(revision 2674)
@@ -0,0 +1,411 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: ValueHashTableOf.c 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+// ---------------------------------------------------------------------------
+//  Include
+// ---------------------------------------------------------------------------
+#if defined(XERCES_TMPLSINC)
+#include <xercesc/util/ValueHashTableOf.hpp>
+#endif
+
+#include <xercesc/util/NullPointerException.hpp>
+#include <assert.h>
+#include <new>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+// ---------------------------------------------------------------------------
+//  ValueHashTableOf: Constructors and Destructor
+// ---------------------------------------------------------------------------
+template <class TVal>
+ValueHashTableOf<TVal>::ValueHashTableOf( const unsigned int modulus
+                                        , HashBase* hashBase
+                                        , MemoryManager* const manager)
+    : fMemoryManager(manager)
+    , fBucketList(0)
+    , fHashModulus(modulus)
+    , fHash(0)
+{
+	initialize(modulus);
+	// set hasher
+	fHash = hashBase;
+}
+
+template <class TVal>
+ValueHashTableOf<TVal>::ValueHashTableOf( const unsigned int modulus
+                                        , MemoryManager* const manager)
+	: fMemoryManager(manager)
+    , fBucketList(0)
+    , fHashModulus(modulus)
+    , fHash(0)
+{
+	initialize(modulus);
+
+	// create default hasher
+	fHash = new (fMemoryManager) HashXMLCh();
+}
+
+template <class TVal> void ValueHashTableOf<TVal>::initialize(const unsigned int modulus)
+{
+	if (modulus == 0)
+        ThrowXMLwithMemMgr(IllegalArgumentException, XMLExcepts::HshTbl_ZeroModulus, fMemoryManager);
+
+    // Allocate the bucket list and zero them
+    fBucketList = (ValueHashTableBucketElem<TVal>**) fMemoryManager->allocate
+    (
+        fHashModulus * sizeof(ValueHashTableBucketElem<TVal>*)
+    ); //new ValueHashTableBucketElem<TVal>*[fHashModulus];
+    memset(fBucketList, 0, sizeof(fBucketList[0]) * fHashModulus);
+}
+
+template <class TVal> ValueHashTableOf<TVal>::~ValueHashTableOf()
+{
+    removeAll();
+
+    // Then delete the bucket list & hasher
+    fMemoryManager->deallocate(fBucketList); //delete [] fBucketList;
+	delete fHash;
+}
+
+
+// ---------------------------------------------------------------------------
+//  ValueHashTableOf: Element management
+// ---------------------------------------------------------------------------
+template <class TVal> bool ValueHashTableOf<TVal>::isEmpty() const
+{
+    // Just check the bucket list for non-empty elements
+    for (unsigned int buckInd = 0; buckInd < fHashModulus; buckInd++)
+    {
+        if (fBucketList[buckInd] != 0)
+            return false;
+    }
+    return true;
+}
+
+template <class TVal> bool ValueHashTableOf<TVal>::
+containsKey(const void* const key) const
+{
+    unsigned int hashVal;
+    const ValueHashTableBucketElem<TVal>* findIt = findBucketElem(key, hashVal);
+    return (findIt != 0);
+}
+
+template <class TVal> void ValueHashTableOf<TVal>::
+removeKey(const void* const key)
+{
+    unsigned int hashVal;
+    removeBucketElem(key, hashVal);
+}
+
+template <class TVal> void ValueHashTableOf<TVal>::removeAll()
+{
+    // Clean up the buckets first
+    for (unsigned int buckInd = 0; buckInd < fHashModulus; buckInd++)
+    {
+        // Get the bucket list head for this entry
+        ValueHashTableBucketElem<TVal>* curElem = fBucketList[buckInd];
+        ValueHashTableBucketElem<TVal>* nextElem;
+        while (curElem)
+        {
+            // Save the next element before we hose this one
+            nextElem = curElem->fNext;
+
+            // delete the current element and move forward
+            // destructor is empty...
+            // curElem->~ValueHashTableBucketElem();
+            fMemoryManager->deallocate(curElem);
+            curElem = nextElem;
+        }
+
+        // Clean out this entry
+        fBucketList[buckInd] = 0;
+    }
+}
+
+
+// ---------------------------------------------------------------------------
+//  ValueHashTableOf: Getters
+// ---------------------------------------------------------------------------
+template <class TVal> TVal& ValueHashTableOf<TVal>::get(const void* const key, MemoryManager* const manager)
+{
+    unsigned int hashVal;
+    ValueHashTableBucketElem<TVal>* findIt = findBucketElem(key, hashVal);
+    if (!findIt)
+        ThrowXMLwithMemMgr(NoSuchElementException, XMLExcepts::HshTbl_NoSuchKeyExists, manager);
+
+    return findIt->fData;
+}
+
+template <class TVal> const TVal& ValueHashTableOf<TVal>::
+get(const void* const key) const
+{
+    unsigned int hashVal;
+    const ValueHashTableBucketElem<TVal>* findIt = findBucketElem(key, hashVal);
+    if (!findIt)
+        ThrowXMLwithMemMgr(NoSuchElementException, XMLExcepts::HshTbl_NoSuchKeyExists, fMemoryManager);
+
+    return findIt->fData;
+}
+
+
+// ---------------------------------------------------------------------------
+//  ValueHashTableOf: Putters
+// ---------------------------------------------------------------------------
+template <class TVal> void ValueHashTableOf<TVal>::put(void* key, const TVal& valueToAdopt)
+{
+    // First see if the key exists already
+    unsigned int hashVal;
+    ValueHashTableBucketElem<TVal>* newBucket = findBucketElem(key, hashVal);
+
+    //
+    //  If so,then update its value. If not, then we need to add it to
+    //  the right bucket
+    //
+    if (newBucket)
+    {
+        newBucket->fData = valueToAdopt;
+		newBucket->fKey = key;
+    }
+     else
+    {
+        newBucket =            
+            new (fMemoryManager->allocate(sizeof(ValueHashTableBucketElem<TVal>)))
+            ValueHashTableBucketElem<TVal>(key, valueToAdopt, fBucketList[hashVal]);
+        fBucketList[hashVal] = newBucket;
+    }
+}
+
+
+
+// ---------------------------------------------------------------------------
+//  ValueHashTableOf: Private methods
+// ---------------------------------------------------------------------------
+template <class TVal> ValueHashTableBucketElem<TVal>* ValueHashTableOf<TVal>::
+findBucketElem(const void* const key, unsigned int& hashVal)
+{
+    // Hash the key
+    hashVal = fHash->getHashVal(key, fHashModulus, fMemoryManager);
+    assert(hashVal < fHashModulus);
+
+    // Search that bucket for the key
+    ValueHashTableBucketElem<TVal>* curElem = fBucketList[hashVal];
+    while (curElem)
+    {
+		if (fHash->equals(key, curElem->fKey))
+            return curElem;
+
+        curElem = curElem->fNext;
+    }
+    return 0;
+}
+
+template <class TVal> const ValueHashTableBucketElem<TVal>* ValueHashTableOf<TVal>::
+findBucketElem(const void* const key, unsigned int& hashVal) const
+{
+    // Hash the key
+    hashVal = fHash->getHashVal(key, fHashModulus, fMemoryManager);
+    assert(hashVal < fHashModulus);
+
+    // Search that bucket for the key
+    const ValueHashTableBucketElem<TVal>* curElem = fBucketList[hashVal];
+    while (curElem)
+    {
+        if (fHash->equals(key, curElem->fKey))
+            return curElem;
+
+        curElem = curElem->fNext;
+    }
+    return 0;
+}
+
+
+template <class TVal> void ValueHashTableOf<TVal>::
+removeBucketElem(const void* const key, unsigned int& hashVal)
+{
+    // Hash the key
+    hashVal = fHash->getHashVal(key, fHashModulus);
+    assert(hashVal < fHashModulus);
+
+    //
+    //  Search the given bucket for this key. Keep up with the previous
+    //  element so we can patch around it.
+    //
+    ValueHashTableBucketElem<TVal>* curElem = fBucketList[hashVal];
+    ValueHashTableBucketElem<TVal>* lastElem = 0;
+
+    while (curElem)
+    {
+        if (fHash->equals(key, curElem->fKey))
+        {
+            if (!lastElem)
+            {
+                // It was the first in the bucket
+                fBucketList[hashVal] = curElem->fNext;
+            }
+             else
+            {
+                // Patch around the current element
+                lastElem->fNext = curElem->fNext;
+            }
+
+            // Delete the current element
+            // delete curElem;
+			// destructor is empty...
+            // curElem->~ValueHashTableBucketElem();
+            fMemoryManager->deallocate(curElem);                        
+
+            return;
+        }
+
+        // Move both pointers upwards
+        lastElem = curElem;
+        curElem = curElem->fNext;
+    }
+
+    // We never found that key
+    ThrowXMLwithMemMgr(NoSuchElementException, XMLExcepts::HshTbl_NoSuchKeyExists, fMemoryManager);
+}
+
+
+
+
+// ---------------------------------------------------------------------------
+//  ValueHashTableOfEnumerator: Constructors and Destructor
+// ---------------------------------------------------------------------------
+template <class TVal> ValueHashTableOfEnumerator<TVal>::
+ValueHashTableOfEnumerator(ValueHashTableOf<TVal>* const toEnum
+                           , const bool adopt
+                           , MemoryManager* const manager)
+	: fAdopted(adopt), fCurElem(0), fCurHash((unsigned int)-1), fToEnum(toEnum), fMemoryManager(manager)
+{
+    if (!toEnum)
+        ThrowXMLwithMemMgr(NullPointerException, XMLExcepts::CPtr_PointerIsZero, manager);
+
+    //
+    //  Find the next available bucket element in the hash table. If it
+    //  comes back zero, that just means the table is empty.
+    //
+    //  Note that the -1 in the current hash tells it to start from the
+    //  beginning.
+    //
+    findNext();
+}
+
+template <class TVal> ValueHashTableOfEnumerator<TVal>::~ValueHashTableOfEnumerator()
+{
+    if (fAdopted)
+        delete fToEnum;
+}
+
+
+// ---------------------------------------------------------------------------
+//  ValueHashTableOfEnumerator: Enum interface
+// ---------------------------------------------------------------------------
+template <class TVal> bool ValueHashTableOfEnumerator<TVal>::hasMoreElements() const
+{
+    //
+    //  If our current has is at the max and there are no more elements
+    //  in the current bucket, then no more elements.
+    //
+    if (!fCurElem && (fCurHash == fToEnum->fHashModulus))
+        return false;
+    return true;
+}
+
+template <class TVal> TVal& ValueHashTableOfEnumerator<TVal>::nextElement()
+{
+    // Make sure we have an element to return
+    if (!hasMoreElements())
+        ThrowXMLwithMemMgr(NoSuchElementException, XMLExcepts::Enum_NoMoreElements, fMemoryManager);
+
+    //
+    //  Save the current element, then move up to the next one for the
+    //  next time around.
+    //
+    ValueHashTableBucketElem<TVal>* saveElem = fCurElem;
+    findNext();
+
+    return saveElem->fData;
+}
+
+template <class TVal> void* ValueHashTableOfEnumerator<TVal>::nextElementKey()
+{
+    // Make sure we have an element to return
+    if (!hasMoreElements())
+        ThrowXMLwithMemMgr(NoSuchElementException, XMLExcepts::Enum_NoMoreElements, fMemoryManager);
+
+    //
+    //  Save the current element, then move up to the next one for the
+    //  next time around.
+    //
+    ValueHashTableBucketElem<TVal>* saveElem = fCurElem;
+    findNext();
+
+    return saveElem->fKey;
+}
+
+
+template <class TVal> void ValueHashTableOfEnumerator<TVal>::Reset()
+{
+    fCurHash = (unsigned int)-1;
+    fCurElem = 0;
+    findNext();
+}
+
+
+
+// ---------------------------------------------------------------------------
+//  ValueHashTableOfEnumerator: Private helper methods
+// ---------------------------------------------------------------------------
+template <class TVal> void ValueHashTableOfEnumerator<TVal>::findNext()
+{
+    //
+    //  If there is a current element, move to its next element. If this
+    //  hits the end of the bucket, the next block will handle the rest.
+    //
+    if (fCurElem)
+        fCurElem = fCurElem->fNext;
+
+    //
+    //  If the current element is null, then we have to move up to the
+    //  next hash value. If that is the hash modulus, then we cannot
+    //  go further.
+    //
+    if (!fCurElem)
+    {
+        fCurHash++;
+        if (fCurHash == fToEnum->fHashModulus)
+            return;
+
+        // Else find the next non-empty bucket
+        while (fToEnum->fBucketList[fCurHash]==0)
+        {
+            // Bump to the next hash value. If we max out return
+            fCurHash++;
+            if (fCurHash == fToEnum->fHashModulus)
+                return;
+        }
+        fCurElem = fToEnum->fBucketList[fCurHash];
+    }
+}
+
+XERCES_CPP_NAMESPACE_END
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/XMLNumber.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/XMLNumber.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/XMLNumber.hpp	(revision 2674)
@@ -0,0 +1,112 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: XMLNumber.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#ifndef XMLNUMBER_HPP
+#define XMLNUMBER_HPP
+
+#include <xercesc/internal/XSerializable.hpp>
+#include <xercesc/util/XMemory.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class XMLUTIL_EXPORT XMLNumber : public XSerializable, public XMemory
+{
+public:
+
+    enum
+    {
+        LESS_THAN     = -1,
+        EQUAL         = 0,
+        GREATER_THAN  = 1,
+        INDETERMINATE = 2
+    };
+
+    enum NumberType {
+        Float,
+        Double,
+        BigDecimal,
+        DateTime,
+        UnKnown
+    };
+
+    virtual ~XMLNumber();
+
+    /**
+     *  Deprecated: please use getRawData
+     *
+     *  Return string representation of the decimal value.
+     *  A decimal point will be included as necessary,
+     *  the caller of this method is responsible for the
+     *  de-allocation of the memory.
+     */
+    virtual XMLCh*     toString() const = 0;
+    
+	/**
+	 *  Return string representation of the decimal value.
+     *  A decimal point will be included as necessary.
+     *  Similar to toString above, but the internal buffer is
+     *  returned directly, user is not required to delete
+     *  the returned buffer
+	 */
+    virtual XMLCh*     getRawData() const = 0;    
+
+    /**
+     *  Return the original and converted value of the original data.
+     *  (applicable to double/float)
+     *
+     *  The internal buffer is returned directly, user is not required 
+     *  to delete the returned buffer
+     */
+    virtual const XMLCh*     getFormattedString() const = 0;    
+
+	/**
+	 * Returns the sign of this number
+     *
+     * -1   negative
+     *  0   zero
+     *  1   positive
+	 *
+	 */
+    virtual int        getSign() const = 0;
+
+    /***
+     * Support for Serialization/De-serialization
+     ***/
+    DECL_XSERIALIZABLE(XMLNumber)
+
+    static XMLNumber*          loadNumber(XMLNumber::NumberType   numType
+                                        , XSerializeEngine&       serEng);
+
+protected:
+
+    XMLNumber();
+    XMLNumber(const XMLNumber&);
+
+private:
+    // -----------------------------------------------------------------------
+    //  Unimplemented operators
+    // -----------------------------------------------------------------------
+    XMLNumber& operator=(const XMLNumber&);
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/XMLUTF16Transcoder.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/XMLUTF16Transcoder.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/XMLUTF16Transcoder.hpp	(revision 2674)
@@ -0,0 +1,101 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef XMLUTF16TRANSCODER_HPP
+#define XMLUTF16TRANSCODER_HPP
+
+#include <xercesc/util/XercesDefs.hpp>
+#include <xercesc/util/TransService.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+
+//
+//  This class provides an implementation of the XMLTranscoder interface
+//  for a simple UTF16 transcoder. The parser does some encodings
+//  intrinsically without depending upon external transcoding services.
+//  To make everything more orthagonal, we implement these internal
+//  transcoders using the same transcoder abstraction as the pluggable
+//  transcoding services do.
+//
+class XMLUTIL_EXPORT XMLUTF16Transcoder : public XMLTranscoder
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Public constructors and destructor
+    // -----------------------------------------------------------------------
+    XMLUTF16Transcoder
+    (
+        const   XMLCh* const    encodingName
+        , const unsigned int    blockSize
+        , const bool            swapped
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    virtual ~XMLUTF16Transcoder();
+
+
+    // -----------------------------------------------------------------------
+    //  Implementation of the XMLTranscoder interface
+    // -----------------------------------------------------------------------
+    virtual unsigned int transcodeFrom
+    (
+        const   XMLByte* const          srcData
+        , const unsigned int            srcCount
+        ,       XMLCh* const            toFill
+        , const unsigned int            maxChars
+        ,       unsigned int&           bytesEaten
+        ,       unsigned char* const    charSizes
+    );
+
+    virtual unsigned int transcodeTo
+    (
+        const   XMLCh* const    srcData
+        , const unsigned int    srcCount
+        ,       XMLByte* const  toFill
+        , const unsigned int    maxBytes
+        ,       unsigned int&   charsEaten
+        , const UnRepOpts       options
+    );
+
+    virtual bool canTranscodeTo
+    (
+        const   unsigned int    toCheck
+    )   const;
+
+
+private :
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    XMLUTF16Transcoder(const XMLUTF16Transcoder&);
+    XMLUTF16Transcoder& operator=(const XMLUTF16Transcoder&);
+
+
+    // -----------------------------------------------------------------------
+    //  Private data members
+    //
+    //  fSwapped
+    //      Indicates whether the encoding is of the opposite endianness from
+    //      the local host.
+    // -----------------------------------------------------------------------
+    bool    fSwapped;
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/XMLInteger.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/XMLInteger.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/XMLInteger.hpp	(revision 2674)
@@ -0,0 +1,82 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: XMLInteger.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#ifndef XML_INTEGER_HPP
+#define XML_INTEGER_HPP
+
+#include <xercesc/util/XMemory.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class XMLUTIL_EXPORT XMLInteger : public XMemory
+{
+public:
+
+	/**
+	 * Constructs a newly allocated <code>XMLInteger</code> object
+     *
+	 * @param      intVal   the <code>integer</code>
+	 */
+
+	XMLInteger(const int intVal);
+
+	~XMLInteger();
+
+	/**
+	 * Returns the built in integer value.
+	 */
+    int intValue() const;
+
+private:
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    XMLInteger(const XMLInteger&);
+    XMLInteger& operator=(const XMLInteger&);
+
+    // -----------------------------------------------------------------------
+    //  Private data members
+    //
+	//  fData
+    //     the value
+    //
+    // -----------------------------------------------------------------------
+    int         fData;
+
+};
+
+inline XMLInteger::XMLInteger(const int intVal)
+:fData(intVal)
+{
+}
+
+inline XMLInteger::~XMLInteger()
+{
+}
+
+inline int XMLInteger::intValue() const
+{
+    return fData;
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/UnsupportedEncodingException.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/UnsupportedEncodingException.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/UnsupportedEncodingException.hpp	(revision 2674)
@@ -0,0 +1,34 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: UnsupportedEncodingException.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(UNSUPPORTEDENCODINGEXCEPTION_HPP)
+#define UNSUPPORTEDENCODINGEXCEPTION_HPP
+
+#include <xercesc/util/XercesDefs.hpp>
+#include <xercesc/util/XMLException.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+MakeXMLException(UnsupportedEncodingException, XMLUTIL_EXPORT)
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/HashBase.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/HashBase.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/HashBase.hpp	(revision 2674)
@@ -0,0 +1,71 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#if !defined(HASHBASE_HPP)
+#define HASHBASE_HPP
+
+#include <xercesc/util/XMemory.hpp>
+#include <xercesc/util/PlatformUtils.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+/**
+ * The <code>HashBase</code> interface is the general outline of a hasher.
+ * Hashers are used in <code>RefHashTableOf</code> hashtables to hash any
+ * type of key.  An examples is the <code>HashXMLCh</code> class which is
+ * designed to produce hash values for XMLCh* strings.  Any hasher inheriting
+ * from <code>HashBase</code> may be specified when the RefHashTableOf hashtable is constructed.
+ */
+class XMLUTIL_EXPORT HashBase : public XMemory
+{
+
+public:
+	
+	/**
+      * Returns a hash value based on the key
+      *
+      * @param key the key to be hashed
+	  * @param mod the modulus the hasher should use
+      */
+	virtual unsigned int getHashVal(const void *const key, unsigned int mod
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager) = 0;
+
+	/**
+      * Compares two keys and determines if they are semantically equal
+      *
+      * @param key1 the first key to be compared
+	  * @param key2 the second key to be compared
+	  *
+	  * @return true if they are equal
+      */
+	virtual bool equals(const void *const key1, const void *const key2) = 0;
+
+    virtual ~HashBase() {};
+
+    HashBase() {};
+
+private:
+	// -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    HashBase(const HashBase&);
+    HashBase& operator=(const HashBase&);    
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/XMLEntityResolver.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/XMLEntityResolver.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/XMLEntityResolver.hpp	(revision 2674)
@@ -0,0 +1,178 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: XMLEntityResolver.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#ifndef XMLENTITYRESOLVER_HPP
+#define XMLENTITYRESOLVER_HPP
+
+#include <xercesc/util/XercesDefs.hpp>
+#include <xercesc/util/XMemory.hpp>
+#include <xercesc/util/XMLResourceIdentifier.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class InputSource;
+
+/**
+  * Revised interface for resolving entities.
+  *
+  * <p>If an application needs to implement customized handling
+  * for external entities, it can implement this interface and
+  * register an instance with the parser using the parser's
+  * setXMLEntityResolver method or it can use the basic SAX interface 
+  * (EntityResolver).  The difference between the two interfaces is
+  * the arguments to the resolveEntity() method.  With the SAX
+  * EntityResolve the arguments are systemId and publicId.  With this
+  * interface the argument is a XMLResourceIdentifier object.  <i>Only
+  * one EntityResolver can be set using setEntityResolver() or 
+  * setXMLEntityResolver, if both are set the last one set is 
+  * used.</i></p>
+  *
+  * <p>The parser will then allow the application to intercept any
+  * external entities (including the external DTD subset and external
+  * parameter entities, if any) before including them.</p>
+  *
+  * <p>Many applications will not need to implement this interface,
+  * but it will be especially useful for applications that build
+  * XML documents from databases or other specialised input sources,
+  * or for applications that use URI types other than URLs.</p>
+  *
+  * <p>The following resolver would provide the application
+  * with a special character stream for the entity with the system
+  * identifier "http://www.myhost.com/today":</p>
+  *
+  *<code>
+  * #include <xercesc/util/XMLEntityResolver.hpp><br>
+  * #include <xercesc/sax/InputSource.hpp><br>
+  *<br>
+  *&nbsp;class MyResolver : public XMLEntityResolver {<br>
+  *&nbsp;&nbsp;public:<br>
+  *&nbsp;&nbsp;&nbsp;InputSource resolveEntity (XMLResourceIdentifier* xmlri);<br>
+  *&nbsp;&nbsp;&nbsp;...<br>
+  *&nbsp;&nbsp;};<br>
+  *<br>
+  *&nbsp;MyResolver::resolveEntity(XMLResourceIdentifier* xmlri) {<br>
+  *&nbsp;&nbsp;switch(xmlri->getResourceIdentifierType()) {<br>
+  *&nbsp;&nbsp;&nbsp;case XMLResourceIdentifier::SystemId:<br>
+  *&nbsp;&nbsp;&nbsp;&nbsp;if (XMLString::compareString(xmlri->getSystemId(), "http://www.myhost.com/today")) {<br>
+  *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MyReader* reader = new MyReader();<br>
+  *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return new InputSource(reader);<br>
+  *&nbsp;&nbsp;&nbsp;&nbsp;} else {<br>
+  *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return null;<br>
+  *&nbsp;&nbsp;&nbsp;&nbsp;}<br>
+  *&nbsp;&nbsp;&nbsp;&nbsp;break;<br>
+  *&nbsp;&nbsp;&nbsp;default:<br>
+  *&nbsp;&nbsp;&nbsp;&nbsp;return null;<br>
+  *&nbsp;&nbsp;}<br>
+  *&nbsp;}</code>
+  *
+  * <p>The application can also use this interface to redirect system
+  * identifiers to local URIs or to look up replacements in a catalog
+  * (possibly by using the public identifier).</p>
+  *
+  * <p>The HandlerBase class implements the default behaviour for
+  * this interface, which is simply always to return null (to request
+  * that the parser use the default system identifier).</p>
+  *
+  * @see XMLResourceIdentifier
+  * @see Parser#setXMLEntityResolver
+  * @see InputSource#InputSource
+  * @see HandlerBase#HandlerBase
+  */
+class XMLUTIL_EXPORT XMLEntityResolver
+{
+public:
+    /** @name Constructors and Destructor */
+    //@{
+
+
+    /** Destructor */
+    virtual ~XMLEntityResolver()
+    {
+    }
+
+    //@}
+
+    /** @name The XMLEntityResolver interface */
+    //@{
+
+  /**
+    * Allow the application to resolve external entities.
+    *
+    * <p>The Parser will call this method before opening any external
+    * entity except the top-level document entity (including the
+    * external DTD subset, external entities referenced within the
+    * DTD, and external entities referenced within the document
+    * element): the application may request that the parser resolve
+    * the entity itself, that it use an alternative URI, or that it
+    * use an entirely different input source.</p>
+    *
+    * <p>Application writers can use this method to redirect external
+    * system identifiers to secure and/or local URIs, to look up
+    * public identifiers in a catalogue, or to read an entity from a
+    * database or other input source (including, for example, a dialog
+    * box).</p>
+    *
+    * <p>If the system identifier is a URL, the SAX parser must
+    * resolve it fully before reporting it to the application.</p>
+    *
+    * @param resourceIdentifier An object containing the type of
+    *        resource to be resolved and the associated data members
+    *        corresponding to this type.
+    * @return An InputSource object describing the new input source,
+    *         or null to request that the parser open a regular
+    *         URI connection to the system identifier.
+    *         The returned InputSource is owned by the parser which is
+    *         responsible to clean up the memory.
+    * @exception SAXException Any SAX exception, possibly
+    *            wrapping another exception.
+    * @exception IOException An IO exception,
+    *            possibly the result of creating a new InputStream
+    *            or Reader for the InputSource.
+    *
+    * @see InputSource#InputSource
+    * @see XMLResourceIdentifier
+    */
+    virtual InputSource* resolveEntity
+    (
+        XMLResourceIdentifier* resourceIdentifier
+    ) = 0;
+
+    //@}
+protected: 
+    /** Default Constructor */
+    XMLEntityResolver()
+    {
+    }
+
+private :
+    /* Unimplemented constructors and operators */
+
+    /* Copy constructor */
+    XMLEntityResolver(const XMLEntityResolver&);
+
+    /* Assignment operator */
+    XMLEntityResolver& operator=(const XMLEntityResolver&);
+
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/HashXMLCh.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/HashXMLCh.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/HashXMLCh.hpp	(revision 2674)
@@ -0,0 +1,51 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#if !defined(HASHXMLCH_HPP)
+#define HASHXMLCH_HPP
+
+#include <xercesc/util/HashBase.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+/**
+ * The <code>HashXMLCh</code> class inherits from <code>HashBase</code>.
+ * This is a XMLCh* string specific hasher class designed to hash the values
+ * of XMLCh* strings with a given modulo.  References the XMLString hash
+ * function.
+ * See <code>HashBase</code> for more information.
+ */
+
+class XMLUTIL_EXPORT HashXMLCh : public HashBase
+{
+public:
+	HashXMLCh();
+	virtual ~HashXMLCh();
+	virtual unsigned int getHashVal(const void *const key, unsigned int mod
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+	virtual bool equals(const void *const key1, const void *const key2);
+private:
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    HashXMLCh(const HashXMLCh&);
+    HashXMLCh& operator=(const HashXMLCh&);
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/InvalidCastException.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/InvalidCastException.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/InvalidCastException.hpp	(revision 2674)
@@ -0,0 +1,35 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: InvalidCastException.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+#if !defined(INVALIDCASTEXCEPTION_HPP)
+#define INVALIDCASTEXCEPTION_HPP
+
+#include <xercesc/util/XercesDefs.hpp>
+#include <xercesc/util/XMLException.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+MakeXMLException(InvalidCastException, XMLUTIL_EXPORT)
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Platforms/NetBSD/NetBSDDefs.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Platforms/NetBSD/NetBSDDefs.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Platforms/NetBSD/NetBSDDefs.hpp	(revision 2674)
@@ -0,0 +1,37 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * 
+ *
+ */
+
+
+// ---------------------------------------------------------------------------
+//  NetBSD runs on 29 hardware plateforms...
+// ---------------------------------------------------------------------------
+#ifdef __i386__
+#define ENDIANMODE_LITTLE
+#else
+#define ENDIANMODE_BIG
+#endif
+
+typedef void* FileHandle;
+
+#ifndef NETBSD
+#define NETBSD
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Platforms/AIX/AIXDefs.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Platforms/AIX/AIXDefs.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Platforms/AIX/AIXDefs.hpp	(revision 2674)
@@ -0,0 +1,32 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: AIXDefs.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+// ---------------------------------------------------------------------------
+//  AIX runs in big endian mode
+// ---------------------------------------------------------------------------
+#define ENDIANMODE_BIG
+
+
+// ---------------------------------------------------------------------------
+//  And define our file handle abstraction
+// ---------------------------------------------------------------------------
+typedef void* FileHandle;
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Platforms/Interix/InterixDefs.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Platforms/Interix/InterixDefs.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Platforms/Interix/InterixDefs.hpp	(revision 2674)
@@ -0,0 +1,29 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: InterixDefs.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+// ---------------------------------------------------------------------------
+//  Interix runs in little endian mode
+// ---------------------------------------------------------------------------
+
+#define ENDIANMODE_LITTLE
+typedef void* FileHandle;
+
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Platforms/Tru64/Tru64Defs.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Platforms/Tru64/Tru64Defs.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Platforms/Tru64/Tru64Defs.hpp	(revision 2674)
@@ -0,0 +1,35 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: Tru64Defs.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+// ---------------------------------------------------------------------------
+// The Alpha runs the CPU in little endian mode
+// ---------------------------------------------------------------------------
+#define	ENDIANMODE_LITTLE
+
+
+// ---------------------------------------------------------------------------
+// Define all the required platform types.
+// ---------------------------------------------------------------------------
+typedef void* FileHandle;
+
+#ifndef TRU64
+#define	TRU64
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Platforms/HPUX/HPUXDefs.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Platforms/HPUX/HPUXDefs.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Platforms/HPUX/HPUXDefs.hpp	(revision 2674)
@@ -0,0 +1,33 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: HPUXDefs.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+// ---------------------------------------------------------------------------
+//  HPUX runs in big endian mode
+// ---------------------------------------------------------------------------
+#define ENDIANMODE_BIG
+typedef void* FileHandle;
+
+#ifndef HPUX
+#define HPUX
+#endif
+
+//#define _PTHREADS_DRAFT4
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Platforms/BeOS/BeOSDefs.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Platforms/BeOS/BeOSDefs.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Platforms/BeOS/BeOSDefs.hpp	(revision 2674)
@@ -0,0 +1,31 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: BeOSDefs.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+// ---------------------------------------------------------------------------
+//  BeOS runs in little endian mode
+// ---------------------------------------------------------------------------
+#define ENDIANMODE_LITTLE
+typedef void* FileHandle;
+
+#ifndef BEOS
+#define BEOS
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Platforms/OpenServer/OpenServerDefs.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Platforms/OpenServer/OpenServerDefs.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Platforms/OpenServer/OpenServerDefs.hpp	(revision 2674)
@@ -0,0 +1,28 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: OpenServerDefs.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+// ---------------------------------------------------------------------------
+//  OpenServer runs in little endian mode
+// ---------------------------------------------------------------------------
+#define ENDIANMODE_LITTLE
+typedef void* FileHandle;
+
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Platforms/Linux/LinuxDefs.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Platforms/Linux/LinuxDefs.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Platforms/Linux/LinuxDefs.hpp	(revision 2674)
@@ -0,0 +1,43 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: LinuxDefs.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+// ---------------------------------------------------------------------------
+//  Detect endian mode
+// ---------------------------------------------------------------------------
+#include <endian.h>
+#ifdef __BYTE_ORDER
+    #if __BYTE_ORDER == __LITTLE_ENDIAN
+        #define ENDIANMODE_LITTLE
+    #else
+        #if __BYTE_ORDER == __BIG_ENDIAN
+            #define ENDIANMODE_BIG
+        #else
+            #error: unknown byte order!
+        #endif
+    #endif
+#endif /* __BYTE_ORDER */
+
+typedef void* FileHandle;
+
+#ifndef LINUX
+#define LINUX
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Platforms/Cygwin/CygwinDefs.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Platforms/Cygwin/CygwinDefs.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Platforms/Cygwin/CygwinDefs.hpp	(revision 2674)
@@ -0,0 +1,28 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: CygwinDefs.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+// ---------------------------------------------------------------------------
+//  NT and Win98 always run the CPU in little endian mode.
+// ---------------------------------------------------------------------------
+#define ENDIANMODE_LITTLE
+
+typedef void* FileHandle;
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Platforms/Win32/Win32Defs.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Platforms/Win32/Win32Defs.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Platforms/Win32/Win32Defs.hpp	(revision 2674)
@@ -0,0 +1,33 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: Win32Defs.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+// ---------------------------------------------------------------------------
+//  NT and Win98 always run the CPU in little endian mode.
+// ---------------------------------------------------------------------------
+#define ENDIANMODE_LITTLE
+
+
+// ---------------------------------------------------------------------------
+//  Define all the required platform types. For Win32, void* is interoperable
+//  with the HANDLE type.
+// ---------------------------------------------------------------------------
+typedef void* FileHandle;
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Platforms/Win32/resource.h
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Platforms/Win32/resource.h	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Platforms/Win32/resource.h	(revision 2674)
@@ -0,0 +1,16 @@
+//{{NO_DEPENDENCIES}}
+// Microsoft Developer Studio generated include file.
+// Used by Version.rc
+//
+#define DummyString                     1
+
+// Next default values for new objects
+// 
+#ifdef APSTUDIO_INVOKED
+#ifndef APSTUDIO_READONLY_SYMBOLS
+#define _APS_NEXT_RESOURCE_VALUE        101
+#define _APS_NEXT_COMMAND_VALUE         40001
+#define _APS_NEXT_CONTROL_VALUE         1000
+#define _APS_NEXT_SYMED_VALUE           101
+#endif
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Platforms/UnixWare/UnixWareDefs.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Platforms/UnixWare/UnixWareDefs.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Platforms/UnixWare/UnixWareDefs.hpp	(revision 2674)
@@ -0,0 +1,30 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: UnixWareDefs.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+// ---------------------------------------------------------------------------
+//  UnixWare runs in little endian mode
+// ---------------------------------------------------------------------------
+#define ENDIANMODE_LITTLE
+typedef void* FileHandle;
+
+
+
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Platforms/MacOS/MacPosixFile.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Platforms/MacOS/MacPosixFile.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Platforms/MacOS/MacPosixFile.hpp	(revision 2674)
@@ -0,0 +1,51 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: MacPosixFile.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#pragma once
+
+#include <xercesc/util/XercesDefs.hpp>
+#include <xercesc/util/Platforms/MacOS/MacOSPlatformUtils.hpp>
+
+#include <stdio.h>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+//	Concrete file class implemented using raw Carbon file system calls.
+class XMLMacPosixFile : public XMLMacAbstractFile
+{
+    public:
+        XMLMacPosixFile();
+        virtual ~XMLMacPosixFile();
+
+        unsigned int currPos();
+        void close();
+        unsigned int size();
+        bool open(const XMLCh* path, bool toWrite = false);
+        bool open(const char* path, bool toWrite = false);
+        unsigned int read(unsigned int byteCount, XMLByte* buffer);
+        void write(long byteCount, const XMLByte* buffer);
+        void reset();
+
+    protected:
+        FILE*	mFile;
+};
+
+XERCES_CPP_NAMESPACE_END
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Platforms/MacOS/MacAbstractFile.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Platforms/MacOS/MacAbstractFile.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Platforms/MacOS/MacAbstractFile.hpp	(revision 2674)
@@ -0,0 +1,45 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: MacAbstractFile.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#pragma once
+
+#include <xercesc/util/XMemory.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+//	Abstract class for files. This could be used to allow multiple file paradigms.
+class XMLMacAbstractFile : public XMemory
+{
+    public:
+        XMLMacAbstractFile() {}
+        virtual ~XMLMacAbstractFile() {}
+
+        virtual unsigned int currPos() = 0;
+        virtual void close() = 0;
+        virtual unsigned int size() = 0;
+        virtual bool open(const XMLCh* path, bool toWrite = false) = 0;
+        virtual bool open(const char* path, bool toWrite = false) = 0;
+        virtual unsigned int read(unsigned int byteCount, XMLByte* buffer) = 0;
+        virtual void write(long byteCount, const XMLByte* buffer) = 0;
+        virtual void reset() = 0;
+};
+
+XERCES_CPP_NAMESPACE_END
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Platforms/MacOS/MacOSDefs.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Platforms/MacOS/MacOSDefs.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Platforms/MacOS/MacOSDefs.hpp	(revision 2674)
@@ -0,0 +1,39 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: MacOSDefs.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+#ifndef MACOS_DEFS_HPP
+#define MACOS_DEFS_HPP
+
+// ---------------------------------------------------------------------------
+//  MacOS runs in big endian mode.
+// ---------------------------------------------------------------------------
+#define ENDIANMODE_BIG
+
+// ---------------------------------------------------------------------------
+//  Define all the required platform types
+//
+//	FileHandle is a pointer to XMLMacAbstractFile. Due to namespace
+//	declaration issues, it is declared here as a void*.
+// ---------------------------------------------------------------------------
+typedef void*   FileHandle;
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Platforms/MacOS/MacCarbonFile.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Platforms/MacOS/MacCarbonFile.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Platforms/MacOS/MacCarbonFile.hpp	(revision 2674)
@@ -0,0 +1,53 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: MacCarbonFile.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#pragma once
+
+#include <xercesc/util/XercesDefs.hpp>
+#include <xercesc/util/Platforms/MacOS/MacOSPlatformUtils.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+//	Concrete file class implemented using raw Carbon file system calls.
+class XMLMacCarbonFile : public XMLMacAbstractFile
+{
+    public:
+        XMLMacCarbonFile() : mFileRefNum(0), mFileValid(false) {}
+        virtual ~XMLMacCarbonFile();
+
+        unsigned int currPos();
+        void close();
+        unsigned int size();
+        bool open(const XMLCh* path, bool toWrite);
+        bool open(const char* path, bool toWrite);
+        unsigned int read(unsigned int byteCount, XMLByte* buffer);
+        void write(long byteCount, const XMLByte* buffer);
+        void reset();
+
+    protected:
+        void create(const XMLCh* const);
+        bool openWithPermission(const XMLCh* const, int macPermission);
+
+        short	mFileRefNum;
+        bool	mFileValid;
+};
+
+XERCES_CPP_NAMESPACE_END
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Platforms/MacOS/MacOSPlatformUtils.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Platforms/MacOS/MacOSPlatformUtils.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Platforms/MacOS/MacOSPlatformUtils.hpp	(revision 2674)
@@ -0,0 +1,106 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: MacOSPlatformUtils.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#pragma once
+
+#include <cstdlib>
+#include <xercesc/util/XercesDefs.hpp>
+#include <xercesc/util/PlatformUtils.hpp>
+#include <xercesc/util/Platforms/MacOS/MacAbstractFile.hpp>
+
+
+#if defined(__APPLE__)
+    //	Framework includes from ProjectBuilder
+    #include <CoreServices/CoreServices.h>
+#else
+    //	Classic includes otherwise
+    #include <Files.h>
+#endif
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+//	Notes on our Xerces/Mac paths:
+//
+//	Wherever paths are used in Xerces, this Macintosh port assumes that they'll
+//	be in "unix" format, or at least as close as you can get to that on the particular
+//	OS. On classic, this means that a path will be a unix style path, separated by '/' and
+//	starting with the Mac OS volume name. Since slash is used as the segment separator,
+//	any slashes that actually exist in the segment name will be converted to colons
+//	(since colon is the Mac OS path separator and would be illegal in a segment name).
+//	For Mac OS X, paths are created and parsed using the FSRefMakePath, etc, routines:
+//	the major difference will be location of the volume name within the path.
+//
+//	The routines below help to create and interpret these pathnames for these cases.
+//	While the port itself never creates such paths, it does use these same routines to
+//	parse them.
+
+//	Factory method to create an appropriate concrete object
+//	descended from XMLMacAbstractFile.
+XMLUTIL_EXPORT XMLMacAbstractFile* XMLMakeMacFile(MemoryManager* manager);
+
+//	Convert fom FSRef/FSSpec to a Unicode character string path.
+//	Note that you'll need to delete [] that string after you're done with it!
+XMLUTIL_EXPORT XMLCh*	XMLCreateFullPathFromFSRef(const FSRef& startingRef,
+                            MemoryManager* const manager = XMLPlatformUtils::fgArrayMemoryManager);
+XMLUTIL_EXPORT XMLCh*	XMLCreateFullPathFromFSSpec(const FSSpec& startingSpec,
+                            MemoryManager* const manager = XMLPlatformUtils::fgArrayMemoryManager);
+
+//	Convert from path to FSRef/FSSpec
+//	You retain ownership of the pathName.
+//	Note: in the general case, these routines will fail if the specified file
+//	      does not exist when the routine is called.
+XMLUTIL_EXPORT bool	XMLParsePathToFSRef(const XMLCh* const pathName, FSRef& ref,
+                            MemoryManager* const manager = XMLPlatformUtils::fgArrayMemoryManager);
+XMLUTIL_EXPORT bool	XMLParsePathToFSSpec(const XMLCh* const pathName, FSSpec& spec,
+                            MemoryManager* const manager = XMLPlatformUtils::fgArrayMemoryManager);
+
+//	These routines copy characters between their representation in the Unicode Converter
+//	and the representation used by XMLCh. Until a recent change in Xerces, these were
+//	sometimes different on the Macintosh (with GCC), but XMLCh is now fixed at 16 bits.
+//	Code utilitizing these routines may be phased out in time, as a conversion is no
+//	longer necessary.
+XMLUTIL_EXPORT XMLCh*
+CopyUniCharsToXMLChs(const UniChar* src, XMLCh* dst, std::size_t charCount, std::size_t maxChars);
+XMLUTIL_EXPORT UniChar*
+CopyXMLChsToUniChars(const XMLCh* src, UniChar* dst, std::size_t charCount, std::size_t maxChars);
+
+//	UTF8/UniChar transcoding utilities
+XMLUTIL_EXPORT std::size_t
+TranscodeUniCharsToUTF8(const UniChar* src, char* dst, std::size_t srcCnt, std::size_t maxChars);
+XMLUTIL_EXPORT std::size_t
+TranscodeUTF8ToUniChars(const char* src, UniChar* dst, std::size_t maxChars);
+
+// Size of our statically allocated path buffers
+const std::size_t kMaxMacStaticPathChars = 512;
+
+//	Global variables set in platformInit()
+extern bool gFileSystemCompatible;
+extern bool gMacOSXOrBetter;
+extern bool gHasFSSpecAPIs;
+extern bool gHasFS2TBAPIs;
+extern bool gHasHFSPlusAPIs;
+extern bool gHasFSPathAPIs;
+extern bool gPathAPIsUsePosixPaths;
+extern bool gHasMPAPIs;
+extern bool gUsePosixFiles;
+
+XERCES_CPP_NAMESPACE_END
+
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Platforms/OS2/OS2Defs.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Platforms/OS2/OS2Defs.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Platforms/OS2/OS2Defs.hpp	(revision 2674)
@@ -0,0 +1,32 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: OS2Defs.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+// ---------------------------------------------------------------------------
+//  OS2 always run the CPU in little endian mode.
+// ---------------------------------------------------------------------------
+#define ENDIANMODE_LITTLE
+
+
+// ---------------------------------------------------------------------------
+//  Define all the required platform types
+// ---------------------------------------------------------------------------
+typedef void*   FileHandle;
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Platforms/OS400/OS400PlatformUtils.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Platforms/OS400/OS400PlatformUtils.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Platforms/OS400/OS400PlatformUtils.hpp	(revision 2674)
@@ -0,0 +1,46 @@
+#if (__OS400_TGTVRM__>=510)                               /* @01a */
+    #pragma datamodel(P128)                               /* @01a */
+#endif                                                    /* @01a */
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: OS400PlatformUtils.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#ifndef _OS400PLATFORMUTILS_H
+#define _OS400PLATFORMUTILS_H
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+void  send_message (char * text, char * messageid, char type);
+void  convert_errno(char *,int);
+
+#define FILE_OPEN_PROBLEMS      "XMLBED3" /* file open failure           */
+#define ICONV_CONVERT_PROBLEM	"XMLBED4" /* failed to convert ICONV     */
+#define ICONV_CCSID_PROBLEM     "XMLBED5"
+#define GENERAL_PANIC_MESSAGE   "XMLBEED" /* iconv initialization problem     */
+
+XERCES_CPP_NAMESPACE_END
+
+#endif /* _OS400PLATFORMUTILS_H */
+
+#if (__OS400_TGTVRM__>=510)                                /* @01a */  
+     #pragma datamodel(pop)                                /* @01a */ 
+#endif                                                     /* @01a */
+
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Platforms/OS400/OS400Defs.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Platforms/OS400/OS400Defs.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Platforms/OS400/OS400Defs.hpp	(revision 2674)
@@ -0,0 +1,40 @@
+#if (__OS400_TGTVRM__>=510)                               /* @01a */
+    #pragma datamodel(P128)                               /* @01a */
+#endif                                                    /* @01a */
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: OS400Defs.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+// ---------------------------------------------------------------------------
+//  AIX runs in big endian mode
+// ---------------------------------------------------------------------------
+#define ENDIANMODE_BIG
+
+
+// ---------------------------------------------------------------------------
+//  And define our file handle abstraction
+// ---------------------------------------------------------------------------
+typedef void* FileHandle;
+#if (__OS400_TGTVRM__>=510)                                /* @01a */  
+     #pragma datamodel(pop)                                /* @01a */ 
+#endif                                                     /* @01a */
+
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Platforms/QNX/QNXDefs.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Platforms/QNX/QNXDefs.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Platforms/QNX/QNXDefs.hpp	(revision 2674)
@@ -0,0 +1,38 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: QNXDefs.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+// ---------------------------------------------------------------------------
+//  Detect endian mode
+// ---------------------------------------------------------------------------
+#include <gulliver.h>
+
+#if defined(__LITTLEENDIAN__)
+  #define ENDIANMODE_LITTLE
+#elif defined(__BIGENDIAN__)
+  #define ENDIANMODE_BIG
+#else
+  #error: unknown byte order!
+#endif 
+
+#include <stdio.h>
+typedef FILE* FileHandle;
+
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Platforms/Tandem/TandemDefs.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Platforms/Tandem/TandemDefs.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Platforms/Tandem/TandemDefs.hpp	(revision 2674)
@@ -0,0 +1,28 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: TandemDefs.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+// ---------------------------------------------------------------------------
+//  Tandem machines runs in big endian mode
+// ---------------------------------------------------------------------------
+#define ENDIANMODE_BIG
+typedef void* FileHandle;
+
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Platforms/FreeBSD/FreeBSDDefs.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Platforms/FreeBSD/FreeBSDDefs.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Platforms/FreeBSD/FreeBSDDefs.hpp	(revision 2674)
@@ -0,0 +1,31 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: FreeBSDDefs.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+// ---------------------------------------------------------------------------
+//  FreeBSD runs in little endian mode
+// ---------------------------------------------------------------------------
+#define ENDIANMODE_LITTLE
+typedef void* FileHandle;
+
+#ifndef FREEBSD
+#define FREEBSD
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Platforms/PTX/PTXDefs.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Platforms/PTX/PTXDefs.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Platforms/PTX/PTXDefs.hpp	(revision 2674)
@@ -0,0 +1,31 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: PTXDefs.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+// ---------------------------------------------------------------------------
+//  Dynix/PTX runs in little endian mode
+// ---------------------------------------------------------------------------
+#define ENDIANMODE_LITTLE
+typedef void* FileHandle;
+
+#ifndef PTX
+#define PTX
+#endif
+
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Platforms/IRIX/IRIXDefs.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Platforms/IRIX/IRIXDefs.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Platforms/IRIX/IRIXDefs.hpp	(revision 2674)
@@ -0,0 +1,29 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: IRIXDefs.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+// ---------------------------------------------------------------------------
+//  IRIX runs in big endian mode
+// ---------------------------------------------------------------------------
+
+#define ENDIANMODE_BIG
+typedef void* FileHandle;
+
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Platforms/Solaris/SolarisDefs.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Platforms/Solaris/SolarisDefs.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Platforms/Solaris/SolarisDefs.hpp	(revision 2674)
@@ -0,0 +1,43 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: SolarisDefs.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+ // --------------------------------------------------------------------------- 
+ // Detect endian mode 
+ // --------------------------------------------------------------------------- 
+#include <sys/isa_defs.h> 
+
+#ifdef _LITTLE_ENDIAN 
+  #define ENDIANMODE_LITTLE 
+#elif defined(_BIG_ENDIAN) 
+  #define ENDIANMODE_BIG 
+#else 
+  #error : unknown byte order! 
+#endif 
+ 
+typedef int FileHandle;
+
+#undef  XERCES_Invalid_File_Handle
+#define XERCES_Invalid_File_Handle -1
+ 
+#ifndef SOLARIS
+#define SOLARIS
+#endif
+
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Platforms/OS390/FileHandleImpl.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Platforms/OS390/FileHandleImpl.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Platforms/OS390/FileHandleImpl.hpp	(revision 2674)
@@ -0,0 +1,64 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: FileHandleImpl.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#ifndef FILEHANDLEIMPL_HPP
+#define FILEHANDLEIMPL_HPP
+#include <xercesc/util/PlatformUtils.hpp>
+#include <xercesc/util/XMemory.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class FileHandleImpl : public XMemory
+{
+  private:
+  FILE*      Handle;       // handle from fopen
+  XMLByte*   stgBufferPtr; // address of staging buffer
+  int        nextByte;     // NAB in staging buffer
+  int        openType;     // 0=write, 1=read
+  int        lrecl;        // LRECL if openType is write
+  bool       recordType;   // true if "type=record"
+  MemoryManager* const fMemoryManager;
+
+  public:
+      FileHandleImpl(FILE* open_handle, int o_type, bool r_type, int fileLrecl=0, MemoryManager* const manager=XMLPlatformUtils::fgMemoryManager);
+ ~FileHandleImpl();
+  void  setHandle(FILE* newHandlePtr) { Handle = newHandlePtr; }
+  void* getHandle() { return Handle; }
+  XMLByte* getStgBufferPtr() { return stgBufferPtr; }
+  int   getNextByte() { return nextByte; }
+  void  setNextByte(int newNextByte)  { nextByte = newNextByte; }
+  int   getOpenType() { return openType; }
+  bool  isRecordType() { return recordType; }
+  void  setRecordType(bool newType) { recordType = newType; }
+  int   getLrecl() { return lrecl; }
+  void  setLrecl(int newLrecl)  { lrecl = newLrecl; }
+};
+
+// Constants for the openType member
+#define _FHI_WRITE 0
+#define _FHI_READ 1
+// Constant for the typeRecord member
+#define _FHI_NOT_TYPE_RECORD 0
+#define _FHI_TYPE_RECORD 1
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Platforms/OS390/OS390Defs.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Platforms/OS390/OS390Defs.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Platforms/OS390/OS390Defs.hpp	(revision 2674)
@@ -0,0 +1,31 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: OS390Defs.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+// ---------------------------------------------------------------------------
+//  OS390OE runs in big endian mode
+// ---------------------------------------------------------------------------
+#define ENDIANMODE_BIG
+typedef void* FileHandle;
+
+#ifdef EXM_OS390
+#define APP_NO_THREADS
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Platforms/OS390/Path390.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Platforms/OS390/Path390.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Platforms/OS390/Path390.hpp	(revision 2674)
@@ -0,0 +1,126 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: Path390.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#ifndef PATH390_HPP
+#define PATH390_HPP
+
+#include <xercesc/util/XercesDefs.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class  Path390
+{
+ public:
+    // Constructors and Destructor
+    Path390();
+    ~Path390();
+    Path390(char *s);
+
+    // Set a new path in the object. This will overlay any existing path and
+    // re-initialize the object.
+    void setPath(char *s);
+
+    // This performs a complete parse of the path. It returns the error code or 0
+    // if there was no error.
+    int  fullParse();
+
+    // This returns the path in a format as required by fopen
+    char * getfopenPath();
+
+    // This returns the parameters in a format as required by fopen
+    char * getfopenParms();
+
+    // This returns the type of the path. See the constants defined below.
+    int  getPathType();
+
+    // This returns the error code that was found during the parse
+    int  getError();
+
+    // Returns whether the path is relative or absolute
+    bool isRelative();
+
+    // Returns whether or not type=record shows up in the path.
+    bool isRecordType();
+
+ private:
+    int _pathtype;
+    char * _orgpath;
+    int _orglen;
+    char * _resultpath;
+    bool _absolute;
+    bool _uriabsolute;
+    bool _dsnabsolute;
+    char * _curpos;
+    int _parsestate;
+    int _numperiods;
+    int _numsemicolons;
+
+    int _error;
+    char * _orgparms;
+    int _orgparmlen;
+
+    char * _lastsemi;
+    char * _lastslash;
+    char * _lastparen;
+    char * _parmStart;
+    char * _pathEnd;
+    char * _extStart;
+
+    int _typerecord;
+    // internal only methods:
+    void _determine_uri_abs();
+    void _determine_type();
+    void _determine_punct();
+    void _determine_parms();
+    void _parse_rest();
+
+};
+
+// Internal constants for the _parsestate variable:
+#define PARSE_NONE         0
+#define PARSE_ABSOLUTE_URI 1
+#define PARSE_PATHTYPE     2
+#define PARSE_PUNCT        3
+#define PARSE_PARMS        4
+#define PARSE_PARSED       5
+
+// These are the possible error return codes:
+#define NO_ERROR                        0
+#define ERROR_SEMICOLON_NOT_ALLOWED    101
+#define ERROR_PERIOD_NOT_ALLOWED       102
+#define ERROR_NO_PAREN_ALLOWED         103
+#define ERROR_ABS_PATH_REQUIRED        104
+#define ERROR_NO_EXTRA_PERIODS_ALLOWED 105
+#define ERROR_MUST_BE_ABSOLUTE         106
+#define ERROR_BAD_DD                   107
+#define ERROR_BAD_DSN2                 108
+#define ERROR_NO_EXTRA_SEMIS_ALLOWED   109
+
+// Constants for the _pathtype variable and the return value from getPathType() method:
+#define PATH390_HFS      1
+#define PATH390_DSN1     2 // format is dsn:/chrisl/data/xml/member1.
+#define PATH390_DSN2     3 // format is dsn://'chrisl.data.xml(member1)'
+#define PATH390_DD       4
+#define PATH390_OTHER    5
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/NameIdPool.c
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/NameIdPool.c	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/NameIdPool.c	(revision 2674)
@@ -0,0 +1,386 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: NameIdPool.c 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+// ---------------------------------------------------------------------------
+//  Includes
+// ---------------------------------------------------------------------------
+#if defined(XERCES_TMPLSINC)
+#include <xercesc/util/NameIdPool.hpp>
+#endif
+
+#include <xercesc/util/IllegalArgumentException.hpp>
+#include <xercesc/util/NoSuchElementException.hpp>
+#include <xercesc/util/RuntimeException.hpp>
+#include <new>
+#include <assert.h>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+// ---------------------------------------------------------------------------
+//  NameIdPoolBucketElem: Constructors and Destructor
+// ---------------------------------------------------------------------------
+template <class TElem> NameIdPoolBucketElem<TElem>::
+NameIdPoolBucketElem(TElem* const                           value
+                    , NameIdPoolBucketElem<TElem>* const    next) :
+    fData(value)
+    , fNext(next)
+{
+}
+
+template <class TElem> NameIdPoolBucketElem<TElem>::~NameIdPoolBucketElem()
+{
+    // Nothing to do
+}
+
+
+// ---------------------------------------------------------------------------
+//  NameIdPool: Constructors and Destructor
+// ---------------------------------------------------------------------------
+template <class TElem>
+NameIdPool<TElem>::NameIdPool( const unsigned int hashModulus
+                             , const unsigned int initSize
+                             , MemoryManager* const manager) :
+    fMemoryManager(manager)
+    , fBucketList(0)
+    , fIdPtrs(0)
+    , fIdPtrsCount(initSize)
+    , fIdCounter(0)
+    , fHashModulus(hashModulus)
+{
+    if (!fHashModulus)
+        ThrowXMLwithMemMgr(IllegalArgumentException, XMLExcepts::Pool_ZeroModulus, fMemoryManager);
+
+    // Allocate the bucket list and zero them
+    fBucketList = (NameIdPoolBucketElem<TElem>**) fMemoryManager->allocate
+    (
+        fHashModulus * sizeof(NameIdPoolBucketElem<TElem>*)
+    ); //new NameIdPoolBucketElem<TElem>*[fHashModulus];
+    memset(fBucketList, 0, sizeof(fBucketList[0]) * fHashModulus);
+
+    //
+    //  Allocate the initial id pointers array. We don't have to zero them
+    //  out since the fIdCounter value tells us which ones are valid. The
+    //  zeroth element is never used (and represents an invalid pool id.)
+    //
+    if (!fIdPtrsCount)
+        fIdPtrsCount = 256;
+    fIdPtrs = (TElem**) fMemoryManager->allocate
+    (
+        fIdPtrsCount * sizeof(TElem*)
+    ); //new TElem*[fIdPtrsCount];
+    fIdPtrs[0] = 0;
+}
+
+template <class TElem> NameIdPool<TElem>::~NameIdPool()
+{
+    //
+    //  Delete the id pointers list. The stuff it points to will be cleaned
+    //  up when we clean the bucket lists.
+    //
+    fMemoryManager->deallocate(fIdPtrs); //delete [] fIdPtrs;
+
+    // Remove all elements then delete the bucket list
+    removeAll();
+    fMemoryManager->deallocate(fBucketList); //delete [] fBucketList;
+}
+
+
+// ---------------------------------------------------------------------------
+//  NameIdPool: Element management
+// ---------------------------------------------------------------------------
+template <class TElem> bool
+NameIdPool<TElem>::containsKey(const XMLCh* const key) const
+{
+    unsigned int hashVal;
+    const NameIdPoolBucketElem<TElem>* findIt = findBucketElem(key, hashVal);
+    return (findIt != 0);
+}
+
+
+template <class TElem> void NameIdPool<TElem>::removeAll()
+{
+    if (fIdCounter == 0) return;
+
+    // Clean up the buckets first
+    for (unsigned int buckInd = 0; buckInd < fHashModulus; buckInd++)
+    {
+        NameIdPoolBucketElem<TElem>* curElem = fBucketList[buckInd];
+        NameIdPoolBucketElem<TElem>* nextElem;
+        while (curElem)
+        {
+            // Save the next element before we hose this one
+            nextElem = curElem->fNext;
+
+            delete curElem->fData;
+            // destructor is empty...
+            // curElem->~NameIdPoolBucketElem();
+            fMemoryManager->deallocate(curElem);
+
+            curElem = nextElem;
+        }
+
+        // Empty out the bucket
+        fBucketList[buckInd] = 0;
+    }
+
+    // Reset the id counter
+    fIdCounter = 0;
+}
+
+
+// ---------------------------------------------------------------------------
+//  NameIdPool: Getters
+// ---------------------------------------------------------------------------
+template <class TElem> TElem*
+NameIdPool<TElem>::getByKey(const XMLCh* const key)
+{
+    unsigned int hashVal;
+    NameIdPoolBucketElem<TElem>* findIt = findBucketElem(key, hashVal);
+    if (!findIt)
+        return 0;
+    return findIt->fData;
+}
+
+template <class TElem> const TElem*
+NameIdPool<TElem>::getByKey(const XMLCh* const key) const
+{
+    unsigned int hashVal;
+    const NameIdPoolBucketElem<TElem>* findIt = findBucketElem(key, hashVal);
+    if (!findIt)
+        return 0;
+    return findIt->fData;
+}
+
+template <class TElem> TElem*
+NameIdPool<TElem>::getById(const unsigned int elemId)
+{
+    // If its either zero or beyond our current id, its an error
+    if (!elemId || (elemId > fIdCounter))
+        ThrowXMLwithMemMgr(IllegalArgumentException, XMLExcepts::Pool_InvalidId, fMemoryManager);
+
+    return fIdPtrs[elemId];
+}
+
+template <class TElem>
+const TElem* NameIdPool<TElem>::getById(const unsigned int elemId) const
+{
+    // If its either zero or beyond our current id, its an error
+    if (!elemId || (elemId > fIdCounter))
+        ThrowXMLwithMemMgr(IllegalArgumentException, XMLExcepts::Pool_InvalidId, fMemoryManager);
+
+    return fIdPtrs[elemId];
+}
+
+template <class TElem>
+MemoryManager* NameIdPool<TElem>::getMemoryManager() const
+{
+    return fMemoryManager;
+}
+
+// ---------------------------------------------------------------------------
+//  NameIdPool: Setters
+// ---------------------------------------------------------------------------
+template <class TElem>
+unsigned int NameIdPool<TElem>::put(TElem* const elemToAdopt)
+{
+    // First see if the key exists already. If so, its an error
+    unsigned int hashVal;
+    if (findBucketElem(elemToAdopt->getKey(), hashVal))
+    {
+        ThrowXMLwithMemMgr1
+        (
+            IllegalArgumentException
+            , XMLExcepts::Pool_ElemAlreadyExists
+            , elemToAdopt->getKey()
+            , fMemoryManager
+        );
+    }
+
+    // Create a new bucket element and add it to the appropriate list
+    NameIdPoolBucketElem<TElem>* newBucket =
+        new (fMemoryManager->allocate(sizeof(NameIdPoolBucketElem<TElem>)))
+        NameIdPoolBucketElem<TElem>(elemToAdopt,fBucketList[hashVal]);
+    fBucketList[hashVal] = newBucket;
+
+    //
+    //  Give this new one the next available id and add to the pointer list.
+    //  Expand the list if that is now required.
+    //
+    if (fIdCounter + 1 == fIdPtrsCount)
+    {
+        // Create a new count 1.5 times larger and allocate a new array
+        unsigned int newCount = (unsigned int)(fIdPtrsCount * 1.5);
+        TElem** newArray = (TElem**) fMemoryManager->allocate
+        (
+            newCount * sizeof(TElem*)
+        ); //new TElem*[newCount];
+
+        // Copy over the old contents to the new array
+        memcpy(newArray, fIdPtrs, fIdPtrsCount * sizeof(TElem*));
+
+        // Ok, toss the old array and store the new data
+        fMemoryManager->deallocate(fIdPtrs); //delete [] fIdPtrs;
+        fIdPtrs = newArray;
+        fIdPtrsCount = newCount;
+    }
+    const unsigned int retId = ++fIdCounter;
+    fIdPtrs[retId] = elemToAdopt;
+
+    // Set the id on the passed element
+    elemToAdopt->setId(retId);
+
+    // Return the id that we gave to this element
+    return retId;
+}
+
+
+// ---------------------------------------------------------------------------
+//  NameIdPool: Private methods
+// ---------------------------------------------------------------------------
+template <class TElem>
+NameIdPoolBucketElem<TElem>* NameIdPool<TElem>::
+findBucketElem(const XMLCh* const key, unsigned int& hashVal)
+{
+    // Hash the key
+    hashVal = XMLString::hash(key, fHashModulus, fMemoryManager);
+
+    assert(hashVal < fHashModulus);        
+
+    // Search that bucket for the key
+    NameIdPoolBucketElem<TElem>* curElem = fBucketList[hashVal];
+    while (curElem)
+    {
+        if (XMLString::equals(key, curElem->fData->getKey()))
+            return curElem;
+        curElem = curElem->fNext;
+    }
+    return 0;
+}
+
+template <class TElem>
+const NameIdPoolBucketElem<TElem>* NameIdPool<TElem>::
+findBucketElem(const XMLCh* const key, unsigned int& hashVal) const
+{
+    // Hash the key
+    hashVal = XMLString::hash(key, fHashModulus, fMemoryManager);
+
+    assert(hashVal < fHashModulus);
+
+    // Search that bucket for the key
+    const NameIdPoolBucketElem<TElem>* curElem = fBucketList[hashVal];
+    while (curElem)
+    {
+        if (XMLString::equals(key, curElem->fData->getKey()))
+            return curElem;
+
+        curElem = curElem->fNext;
+    }
+    return 0;
+}
+
+
+
+// ---------------------------------------------------------------------------
+//  NameIdPoolEnumerator: Constructors and Destructor
+// ---------------------------------------------------------------------------
+template <class TElem> NameIdPoolEnumerator<TElem>::
+NameIdPoolEnumerator(NameIdPool<TElem>* const toEnum
+                     , MemoryManager* const manager) :
+
+    XMLEnumerator<TElem>()
+    , fCurIndex(0)
+    , fToEnum(toEnum)
+    , fMemoryManager(manager)
+{
+        Reset();
+}
+
+template <class TElem> NameIdPoolEnumerator<TElem>::
+NameIdPoolEnumerator(const NameIdPoolEnumerator<TElem>& toCopy) :
+    XMLEnumerator<TElem>(toCopy)
+    , XMemory(toCopy)
+    , fCurIndex(toCopy.fCurIndex)
+    , fToEnum(toCopy.fToEnum)
+    , fMemoryManager(toCopy.fMemoryManager)
+{
+}
+
+template <class TElem> NameIdPoolEnumerator<TElem>::~NameIdPoolEnumerator()
+{
+    // We don't own the pool being enumerated, so no cleanup required
+}
+
+
+// ---------------------------------------------------------------------------
+//  NameIdPoolEnumerator: Public operators
+// ---------------------------------------------------------------------------
+template <class TElem> NameIdPoolEnumerator<TElem>& NameIdPoolEnumerator<TElem>::
+operator=(const NameIdPoolEnumerator<TElem>& toAssign)
+{
+    if (this == &toAssign)
+        return *this;
+    fMemoryManager = toAssign.fMemoryManager;
+    fCurIndex      = toAssign.fCurIndex;
+    fToEnum        = toAssign.fToEnum;
+    return *this;
+}
+
+// ---------------------------------------------------------------------------
+//  NameIdPoolEnumerator: Enum interface
+// ---------------------------------------------------------------------------
+template <class TElem> bool NameIdPoolEnumerator<TElem>::
+hasMoreElements() const
+{
+    // If our index is zero or past the end, then we are done
+    if (!fCurIndex || (fCurIndex > fToEnum->fIdCounter))
+        return false;
+    return true;
+}
+
+template <class TElem> TElem& NameIdPoolEnumerator<TElem>::nextElement()
+{
+    // If our index is zero or past the end, then we are done
+    if (!fCurIndex || (fCurIndex > fToEnum->fIdCounter))
+        ThrowXMLwithMemMgr(NoSuchElementException, XMLExcepts::Enum_NoMoreElements, fMemoryManager);
+
+    // Return the current element and bump the index
+    return *fToEnum->fIdPtrs[fCurIndex++];
+}
+
+
+template <class TElem> void NameIdPoolEnumerator<TElem>::Reset()
+{
+    //
+    //  Find the next available bucket element in the pool. We use the id
+    //  array since its very easy to enumerator through by just maintaining
+    //  an index. If the id counter is zero, then its empty and we leave the
+    //  current index to zero.
+    //
+    fCurIndex = fToEnum->fIdCounter ? 1:0;
+}
+
+template <class TElem> int NameIdPoolEnumerator<TElem>::size() const
+{
+    return fToEnum->fIdCounter;
+}
+
+XERCES_CPP_NAMESPACE_END
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/XMLIBM1140Transcoder.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/XMLIBM1140Transcoder.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/XMLIBM1140Transcoder.hpp	(revision 2674)
@@ -0,0 +1,67 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef XMLIBM1140TRANSCODER_HPP
+#define XMLIBM1140TRANSCODER_HPP
+
+#include <xercesc/util/XercesDefs.hpp>
+#include <xercesc/util/XML256TableTranscoder.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+//
+//  This class provides an implementation of the XMLTranscoder interface
+//  for a simple ibm-1140 transcoder. The parser does some encodings
+//  intrinsically without depending upon external transcoding services.
+//  To make everything more orthagonal, we implement these internal
+//  transcoders using the same transcoder abstraction as the pluggable
+//  transcoding services do.
+//
+class XMLUTIL_EXPORT XMLIBM1140Transcoder : public XML256TableTranscoder
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Public, static methods
+    // -----------------------------------------------------------------------
+    static XMLCh xlatThisOne(const XMLByte toXlat);
+
+
+    // -----------------------------------------------------------------------
+    //  Public constructors and destructor
+    // -----------------------------------------------------------------------
+    XMLIBM1140Transcoder
+    (
+        const   XMLCh* const    encodingName
+        , const unsigned int    blockSize
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    virtual ~XMLIBM1140Transcoder();
+
+
+private :
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    XMLIBM1140Transcoder();
+    XMLIBM1140Transcoder(const XMLIBM1140Transcoder&);
+    XMLIBM1140Transcoder& operator=(const XMLIBM1140Transcoder&);
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/ValueVectorOf.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/ValueVectorOf.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/ValueVectorOf.hpp	(revision 2674)
@@ -0,0 +1,163 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: ValueVectorOf.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+#if !defined(VALUEVECTOROF_HPP)
+#define VALUEVECTOROF_HPP
+
+#include <xercesc/util/ArrayIndexOutOfBoundsException.hpp>
+#include <xercesc/util/XMLEnumerator.hpp>
+#include <xercesc/util/PlatformUtils.hpp>
+#include <xercesc/framework/MemoryManager.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+template <class TElem> class ValueVectorOf : public XMemory
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+    ValueVectorOf
+    (
+        const unsigned int maxElems
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+        , const bool toCallDestructor = false
+    );
+    ValueVectorOf(const ValueVectorOf<TElem>& toCopy);
+    ~ValueVectorOf();
+
+
+    // -----------------------------------------------------------------------
+    //  Operators
+    // -----------------------------------------------------------------------
+    ValueVectorOf<TElem>& operator=(const ValueVectorOf<TElem>& toAssign);
+
+
+    // -----------------------------------------------------------------------
+    //  Element management
+    // -----------------------------------------------------------------------
+    void addElement(const TElem& toAdd);
+    void setElementAt(const TElem& toSet, const unsigned int setAt);
+    void insertElementAt(const TElem& toInsert, const unsigned int insertAt);
+    void removeElementAt(const unsigned int removeAt);
+    void removeAllElements();
+    bool containsElement(const TElem& toCheck, const unsigned int startIndex = 0);
+
+
+    // -----------------------------------------------------------------------
+    //  Getter methods
+    // -----------------------------------------------------------------------
+    const TElem& elementAt(const unsigned int getAt) const;
+    TElem& elementAt(const unsigned int getAt);
+    unsigned int curCapacity() const;
+    unsigned int size() const;
+    MemoryManager* getMemoryManager() const;
+
+
+    // -----------------------------------------------------------------------
+    //  Miscellaneous
+    // -----------------------------------------------------------------------
+    void ensureExtraCapacity(const unsigned int length);
+    const TElem* rawData() const;
+
+
+private:
+    // -----------------------------------------------------------------------
+    //  Data members
+    //
+    //  fCurCount
+    //      The count of values current added to the vector, which may be
+    //      less than the internal capacity.
+    //
+    //  fMaxCount
+    //      The current capacity of the vector.
+    //
+    //  fElemList
+    //      The list of elements, which is dynamically allocated to the needed
+    //      size.
+    // -----------------------------------------------------------------------
+    bool            fCallDestructor;
+    unsigned int    fCurCount;
+    unsigned int    fMaxCount;
+    TElem*          fElemList;
+    MemoryManager*  fMemoryManager;
+};
+
+
+//
+//  An enumerator for a value vector. It derives from the basic enumerator
+//  class, so that value vectors can be generically enumerated.
+//
+template <class TElem> class ValueVectorEnumerator : public XMLEnumerator<TElem>, public XMemory
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+    ValueVectorEnumerator
+    (
+                ValueVectorOf<TElem>* const toEnum
+        , const bool                        adopt = false
+    );
+    virtual ~ValueVectorEnumerator();
+
+
+    // -----------------------------------------------------------------------
+    //  Enum interface
+    // -----------------------------------------------------------------------
+    bool hasMoreElements() const;
+    TElem& nextElement();
+    void Reset();
+
+
+private :
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------    
+    ValueVectorEnumerator(const ValueVectorEnumerator<TElem>&);
+    ValueVectorEnumerator<TElem>& operator=(const ValueVectorEnumerator<TElem>&);
+
+    // -----------------------------------------------------------------------
+    //  Data Members
+    //
+    //  fAdopted
+    //      Indicates whether we have adopted the passed vector. If so then
+    //      we delete the vector when we are destroyed.
+    //
+    //  fCurIndex
+    //      This is the current index into the vector.
+    //
+    //  fToEnum
+    //      The value vector being enumerated.
+    // -----------------------------------------------------------------------
+    bool                    fAdopted;
+    unsigned int            fCurIndex;
+    ValueVectorOf<TElem>*   fToEnum;
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#if !defined(XERCES_TMPLSINC)
+#include <xercesc/util/ValueVectorOf.c>
+#endif
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/TransENameMap.c
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/TransENameMap.c	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/TransENameMap.c	(revision 2674)
@@ -0,0 +1,81 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+// ---------------------------------------------------------------------------
+//  Includes
+// ---------------------------------------------------------------------------
+#if defined(XERCES_TMPLSINC)
+#include <xercesc/util/TransENameMap.hpp>
+#endif
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+// ---------------------------------------------------------------------------
+//  ENameMapFor: Constructors and Destructor
+// ---------------------------------------------------------------------------
+template <class TType>
+ENameMapFor<TType>::ENameMapFor(const XMLCh* const encodingName) :
+
+    ENameMap(encodingName)
+{
+}
+
+template <class TType> ENameMapFor<TType>::~ENameMapFor()
+{
+}
+
+
+// ---------------------------------------------------------------------------
+//  ENameMapFor: Implementation of virtual factory method
+// ---------------------------------------------------------------------------
+template <class TType> XMLTranscoder*
+ENameMapFor<TType>::makeNew(const unsigned int blockSize,
+                            MemoryManager* const manager) const
+{
+    return new (manager) TType(getKey(), blockSize, manager);
+}
+
+
+
+
+// ---------------------------------------------------------------------------
+//  ENameMapFor: Constructors and Destructor
+// ---------------------------------------------------------------------------
+template <class TType> EEndianNameMapFor<TType>::EEndianNameMapFor(const XMLCh* const encodingName, const bool swapped) :
+
+    ENameMap(encodingName)
+    , fSwapped(swapped)
+{
+}
+
+template <class TType> EEndianNameMapFor<TType>::~EEndianNameMapFor()
+{
+}
+
+
+// ---------------------------------------------------------------------------
+//  ENameMapFor: Implementation of virtual factory method
+// ---------------------------------------------------------------------------
+template <class TType> XMLTranscoder*
+EEndianNameMapFor<TType>::makeNew(const unsigned int blockSize,
+                                  MemoryManager* const manager) const
+{
+    return new (manager) TType(getKey(), blockSize, fSwapped, manager);
+}
+
+XERCES_CPP_NAMESPACE_END
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/XMLFloat.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/XMLFloat.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/XMLFloat.hpp	(revision 2674)
@@ -0,0 +1,97 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: XMLFloat.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#ifndef XML_FLOAT_HPP
+#define XML_FLOAT_HPP
+
+#include <xercesc/util/XMLAbstractDoubleFloat.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class XMLUTIL_EXPORT XMLFloat : public XMLAbstractDoubleFloat
+{
+public:
+
+	/**
+	 * Constructs a newly allocated <code>XMLFloat</code> object that
+	 * represents the value represented by the string.
+	 *
+	 * @param      strValue the <code>String</code> to be converted to an
+	 *                      <code>XMLFloat</code>.
+         * @param manager    Pointer to the memory manager to be used to
+         *                   allocate objects.
+	 * @exception  NumberFormatException  if the <code>String</code> does not
+	 *               contain a parsable XMLFloat.
+	 */
+
+    XMLFloat(const XMLCh* const strValue,
+             MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+
+    ~XMLFloat();
+
+	/**
+	 * Compares the two specified XMLFloat objects.
+	 * The result is <code>true</code> if and only if the argument is not
+	 * <code>null</code> and that contains the same <code>int</code> value.
+	 *
+	 * @param   lValue the object to compare with.
+	 * @param   rValue the object to compare against.
+	 * @return  <code>true</code> if the objects are the same;
+	 *          <code>false</code> otherwise.
+	 */
+
+    inline static int            compareValues(const XMLFloat* const lValue
+                                             , const XMLFloat* const rValue);
+
+    /***
+     * Support for Serialization/De-serialization
+     ***/
+    DECL_XSERIALIZABLE(XMLFloat)
+
+    XMLFloat(MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+
+protected:
+
+    virtual void          checkBoundary(char* const strValue);
+
+private:
+    //
+    // Unimplemented
+    //
+    // copy ctor
+    // assignment ctor
+    //
+    XMLFloat(const XMLFloat& toCopy);
+    XMLFloat& operator=(const XMLFloat& toAssign);
+
+};
+
+inline int XMLFloat::compareValues(const XMLFloat* const lValue
+                                 , const XMLFloat* const rValue)
+{
+    return XMLAbstractDoubleFloat::compareValues((const XMLAbstractDoubleFloat* const) lValue,
+                                                 (const XMLAbstractDoubleFloat* const) rValue 
+                                                 , ((XMLAbstractDoubleFloat*)lValue)->getMemoryManager());
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/ValueStackOf.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/ValueStackOf.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/ValueStackOf.hpp	(revision 2674)
@@ -0,0 +1,155 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: ValueStackOf.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(VALUESTACKOF_HPP)
+#define VALUESTACKOF_HPP
+
+#include <xercesc/util/EmptyStackException.hpp>
+#include <xercesc/util/ValueVectorOf.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+//
+//  Forward declare the enumerator so he can be our friend. Can you say
+//  friend? Sure...
+//
+template <class TElem> class ValueStackEnumerator;
+
+
+template <class TElem> class ValueStackOf : public XMemory
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+    ValueStackOf
+    (
+          const unsigned int fInitCapacity
+          , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+          , const bool toCallDestructor = false
+    );
+    ~ValueStackOf();
+
+
+    // -----------------------------------------------------------------------
+    //  Element management methods
+    // -----------------------------------------------------------------------
+    void push(const TElem& toPush);
+    const TElem& peek() const;
+    TElem pop();
+    void removeAllElements();
+
+
+    // -----------------------------------------------------------------------
+    //  Getter methods
+    // -----------------------------------------------------------------------
+    bool empty();
+    unsigned int curCapacity();
+    unsigned int size();
+
+
+private :
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------    
+    ValueStackOf(const ValueStackOf<TElem>&);
+    ValueStackOf<TElem>& operator=(const ValueStackOf<TElem>&);
+
+    // -----------------------------------------------------------------------
+    //  Declare our friends
+    // -----------------------------------------------------------------------
+    friend class ValueStackEnumerator<TElem>;
+
+
+    // -----------------------------------------------------------------------
+    //  Data Members
+    //
+    //  fVector
+    //      The vector that is used as the backing data structure for the
+    //      stack.
+    // -----------------------------------------------------------------------
+    ValueVectorOf<TElem>    fVector;
+};
+
+
+
+//
+//  An enumerator for a value stack. It derives from the basic enumerator
+//  class, so that value stacks can be generically enumerated.
+//
+template <class TElem> class ValueStackEnumerator : public XMLEnumerator<TElem>, public XMemory
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+    ValueStackEnumerator
+    (
+                ValueStackOf<TElem>* const  toEnum
+        , const bool                        adopt = false
+    );
+    virtual ~ValueStackEnumerator();
+
+
+    // -----------------------------------------------------------------------
+    //  Enum interface
+    // -----------------------------------------------------------------------
+    bool hasMoreElements() const;
+    TElem& nextElement();
+    void Reset();
+
+
+private :
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------    
+    ValueStackEnumerator(const ValueStackEnumerator<TElem>&);
+    ValueStackEnumerator<TElem>& operator=(const ValueStackEnumerator<TElem>&);
+
+    // -----------------------------------------------------------------------
+    //  Data Members
+    //
+    //  fAdopted
+    //      Indicates whether we have adopted the passed stack. If so then
+    //      we delete the stack when we are destroyed.
+    //
+    //  fCurIndex
+    //      This is the current index into the vector inside the stack being
+    //      enumerated.
+    //
+    //  fToEnum
+    //      The stack that is being enumerated. This is just kept for
+    //      adoption purposes, since we really are enumerating the vector
+    //      inside of it.
+    // -----------------------------------------------------------------------
+    bool                    fAdopted;
+    unsigned int            fCurIndex;
+    ValueVectorOf<TElem>*   fVector;
+    ValueStackOf<TElem>*    fToEnum;
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#if !defined(XERCES_TMPLSINC)
+#include <xercesc/util/ValueStackOf.c>
+#endif
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/PanicHandler.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/PanicHandler.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/PanicHandler.hpp	(revision 2674)
@@ -0,0 +1,112 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: PanicHandler.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#ifndef PANICHANDLER_HPP
+#define PANICHANDLER_HPP
+
+#include <xercesc/util/XMemory.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+/**
+  * Receive notification of panic.
+  *
+  * <p>This is the interface, through which the Xercesc reports
+  *    a panic to the application. 
+  * </p>
+  *
+  * <p>Application may implement this interface, instantiate an
+  *    object of the derivative, and plug it to Xercesc in the
+  *    invocation to XMLPlatformUtils::Initialize(), if it prefers 
+  *    to handling panic itself rather than Xercesc doing it.
+  * </p>
+  *
+  */
+
+class XMLUTIL_EXPORT PanicHandler
+{
+public:
+
+    /** @name Public Types */
+    //@{
+    enum PanicReasons
+    {
+          Panic_NoTransService
+        , Panic_NoDefTranscoder
+        , Panic_CantFindLib
+        , Panic_UnknownMsgDomain
+        , Panic_CantLoadMsgDomain
+        , Panic_SynchronizationErr
+        , Panic_SystemInit
+        , Panic_AllStaticInitErr
+        , Panic_MutexErr
+        , PanicReasons_Count
+    };
+    //@}
+
+protected:
+
+    /** @name hidden Constructors */
+    //@{
+    /** Default constructor */
+    PanicHandler(){};
+
+public:
+
+    /** Destructor */
+    virtual ~PanicHandler(){};   
+    //@}
+
+    /** @name The virtual panic handler interface */
+    //@{
+   /**
+    * Receive notification of panic
+    *
+    * This method is called when an unrecoverable error has occurred in the Xerces library.  
+    *
+    * This method must not return normally, otherwise, the results are undefined. 
+    * 
+    * Ways of handling this call could include throwing an exception or exiting the process.
+    *
+    * Once this method has been called, the results of calling any other Xerces API, 
+    * or using any existing Xerces objects are undefined.    
+    *
+    * @param reason The reason of panic
+    *
+    */
+    virtual void panic(const PanicHandler::PanicReasons reason) = 0;
+    //@}
+
+    static const char* getPanicReasonString(const PanicHandler::PanicReasons reason);
+    
+private:
+
+    /* Unimplemented Constructors and operators */
+    /* Copy constructor */
+    PanicHandler(const PanicHandler&);
+    
+    /** Assignment operator */
+    PanicHandler& operator=(const PanicHandler&);
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/NullPointerException.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/NullPointerException.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/NullPointerException.hpp	(revision 2674)
@@ -0,0 +1,35 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: NullPointerException.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(NULLPOINTEREXCEPTION_HPP)
+#define NULLPOINTEREXCEPTION_HPP
+
+
+#include <xercesc/util/XercesDefs.hpp>
+#include <xercesc/util/XMLException.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+MakeXMLException(NullPointerException, XMLUTIL_EXPORT)
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/XMLDouble.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/XMLDouble.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/XMLDouble.hpp	(revision 2674)
@@ -0,0 +1,99 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: XMLDouble.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#ifndef XML_DOUBLE_HPP
+#define XML_DOUBLE_HPP
+
+#include <xercesc/util/XMLAbstractDoubleFloat.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class XMLUTIL_EXPORT XMLDouble : public XMLAbstractDoubleFloat
+{
+public:
+
+	/**
+	 * Constructs a newly allocated <code>XMLDouble</code> object that
+	 * represents the value represented by the string.
+	 *
+	 * @param      strValue the <code>String</code> to be converted to an
+	 *                 <code>XMLDouble</code>.
+         * @param manager    Pointer to the memory manager to be used to
+         *                   allocate objects.
+	 * @exception  NumberFormatException  if the <code>String</code> does not
+	 *               contain a parsable XMLDouble.
+	 */
+
+    XMLDouble(const XMLCh* const strValue,
+              MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+
+    ~XMLDouble();
+
+	/**
+	 * Compares this object to the specified object.
+	 * The result is <code>true</code> if and only if the argument is not
+	 * <code>null</code> and is an <code>XMLDouble</code> object that contains
+	 * the same <code>int</code> value as this object.
+	 *
+	 * @param   lValue the object to compare with.
+	 * @param   rValue the object to compare against.
+	 * @return  <code>true</code> if the objects are the same;
+	 *          <code>false</code> otherwise.
+	 */
+
+    inline static int            compareValues(const XMLDouble* const lValue
+                                             , const XMLDouble* const rValue);
+
+    /***
+     * Support for Serialization/De-serialization
+     ***/
+    DECL_XSERIALIZABLE(XMLDouble)
+
+    XMLDouble(MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+
+protected:
+
+    virtual void          checkBoundary(char* const strValue);
+
+private:
+    //
+    // Unimplemented
+    //
+    // copy ctor
+    // assignment ctor
+    //
+     XMLDouble(const XMLDouble& toCopy);
+     XMLDouble& operator=(const XMLDouble& toAssign);
+
+};
+
+inline int XMLDouble::compareValues(const XMLDouble* const lValue
+                                  , const XMLDouble* const rValue)
+{
+    return XMLAbstractDoubleFloat::compareValues((const XMLAbstractDoubleFloat* const) lValue,
+                                                 (const XMLAbstractDoubleFloat* const) rValue 
+                                                 , ((XMLAbstractDoubleFloat*)lValue)->getMemoryManager());
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
+
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/XercesDefs.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/XercesDefs.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/XercesDefs.hpp	(revision 2674)
@@ -0,0 +1,331 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: XercesDefs.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+#if !defined(XERCESDEFS_HPP)
+#define XERCESDEFS_HPP
+
+// ---------------------------------------------------------------------------
+//  Include the Xerces version information; this is kept in a separate file to
+//  make modification simple and obvious. Updates to the version header file
+// ---------------------------------------------------------------------------
+#include    <xercesc/util/XercesVersion.hpp>
+
+
+// ---------------------------------------------------------------------------
+//  Include the header that does automatic sensing of the current platform
+//  and compiler.
+// ---------------------------------------------------------------------------
+#include    <xercesc/util/AutoSense.hpp>
+
+#define XERCES_Invalid_File_Handle 0
+
+// ---------------------------------------------------------------------------
+//  According to the platform we include a platform specific file. This guy
+//  will set up any platform specific stuff, such as character mode.
+// ---------------------------------------------------------------------------
+#if defined(XML_WIN32)
+#include    <xercesc/util/Platforms/Win32/Win32Defs.hpp>
+#endif
+
+#if defined(XML_CYGWIN)
+#include    <xercesc/util/Platforms/Cygwin/CygwinDefs.hpp>
+#endif
+
+#if defined(XML_AIX)
+#include    <xercesc/util/Platforms/AIX/AIXDefs.hpp>
+#endif
+
+#if defined(XML_SOLARIS)
+#include    <xercesc/util/Platforms/Solaris/SolarisDefs.hpp>
+#endif
+
+#if defined(XML_OPENSERVER)
+#include    <xercesc/util/Platforms/OpenServer/OpenServerDefs.hpp>
+#endif
+
+#if defined(XML_UNIXWARE)
+#include    <xercesc/util/Platforms/UnixWare/UnixWareDefs.hpp>
+#endif
+
+#if defined(XML_HPUX)
+#include    <xercesc/util/Platforms/HPUX/HPUXDefs.hpp>
+#endif
+
+#if defined(XML_IRIX)
+#include    <xercesc/util/Platforms/IRIX/IRIXDefs.hpp>
+#endif
+
+#if defined(XML_INTERIX)
+#include    <xercesc/util/Platforms/Interix/InterixDefs.hpp>
+#endif
+
+#if defined(XML_TANDEM)
+#include    <xercesc/util/Platforms/Tandem/TandemDefs.hpp>
+#endif
+
+#if defined(XML_BEOS)
+#include    <xercesc/util/Platforms/BeOS/BeOSDefs.hpp>
+#endif
+
+#if defined(XML_LINUX)
+#include    <xercesc/util/Platforms/Linux/LinuxDefs.hpp>
+#endif
+
+#if defined(XML_FREEBSD)
+#include    <xercesc/util/Platforms/FreeBSD/FreeBSDDefs.hpp>
+#endif
+
+#if defined(XML_OS390)
+#include    <xercesc/util/Platforms/OS390/OS390Defs.hpp>
+#endif
+
+#if defined(XML_PTX)
+#include    <xercesc/util/Platforms/PTX/PTXDefs.hpp>
+#endif
+
+#if defined(XML_OS2)
+#include    <xercesc/util/Platforms/OS2/OS2Defs.hpp>
+#endif
+
+#if defined(XML_MACOS)
+#include	<xercesc/util/Platforms/MacOS/MacOSDefs.hpp>
+#endif
+
+#if defined(XML_AS400)
+#include	<xercesc/util/Platforms/OS400/OS400Defs.hpp>
+#endif
+
+#if defined(XML_TRU64)
+#include	<xercesc/util/Platforms/Tru64/Tru64Defs.hpp>
+#endif
+
+#if defined(XML_QNX)
+#include	<xercesc/util/Platforms/QNX/QNXDefs.hpp>
+#endif
+
+// ---------------------------------------------------------------------------
+//  And now we subinclude a header according to the development environment
+//  we are on. This guy defines for each platform some basic stuff that is
+//  specific to the development environment.
+// ---------------------------------------------------------------------------
+#if defined(XML_VISUALCPP)
+#include    <xercesc/util/Compilers/VCPPDefs.hpp>
+#endif
+
+#if defined(XML_CSET)
+#include    <xercesc/util/Compilers/CSetDefs.hpp>
+#endif
+
+#if defined(XML_BORLAND)
+#include    <xercesc/util/Compilers/BorlandCDefs.hpp>
+#endif
+
+#if defined(XML_SUNCC) || defined(XML_SUNCC5)
+#include    <xercesc/util/Compilers/SunCCDefs.hpp>
+#endif
+
+#if defined(XML_SCOCC)
+#include    <xercesc/util/Compilers/SCOCCDefs.hpp>
+#endif
+
+#if defined(XML_SOLARIS_KAICC)
+#include    <xercesc/util/Compilers/SunKaiDefs.hpp>
+#endif
+
+#if defined(XML_HPUX_CC) || defined(XML_HPUX_aCC) || defined(XML_HPUX_KAICC)
+#include    <xercesc/util/Compilers/HPCCDefs.hpp>
+#endif
+
+#if defined(XML_MIPSPRO_CC)
+#include    <xercesc/util/Compilers/MIPSproDefs.hpp>
+#endif
+
+#if defined(XML_TANDEMCC)
+#include    <xercesc/util/Compilers/TandemCCDefs.hpp>
+#endif
+
+#if defined(XML_GCC)
+#include    <xercesc/util/Compilers/GCCDefs.hpp>
+#endif
+
+#if defined(XML_MVSCPP)
+#include    <xercesc/util/Compilers/MVSCPPDefs.hpp>
+#endif
+
+#if defined(XML_IBMVAW32)
+#include    <xercesc/util/Compilers/IBMVAW32Defs.hpp>
+#endif
+
+#if defined(XML_IBMVAOS2)
+#include    <xercesc/util/Compilers/IBMVAOS2Defs.hpp>
+#endif
+
+#if defined(XML_METROWERKS)
+#include	<xercesc/util/Compilers/CodeWarriorDefs.hpp>
+#endif
+
+#if defined(XML_PTX_CC)
+#include	<xercesc/util/Compilers/PTXCCDefs.hpp>
+#endif
+
+#if defined(XML_AS400)
+#include	<xercesc/util/Compilers/OS400SetDefs.hpp>
+#endif
+
+#if defined(XML_DECCXX)
+#include	<xercesc/util/Compilers/DECCXXDefs.hpp>
+#endif
+
+#if defined(XML_QCC)
+#include	<xercesc/util/Compilers/QCCDefs.hpp>
+#endif
+
+// ---------------------------------------------------------------------------
+//  Some general typedefs that are defined for internal flexibility.
+//
+//  Note  that UTF16Ch is fixed at 16 bits, whereas XMLCh floats in size per
+//  platform, to whatever is the native wide char format there. UCS4Ch is
+//  fixed at 32 bits. The types we defined them in terms of are defined per
+//  compiler, using whatever types are the right ones for them to get these
+//  16/32 bit sizes.
+//
+// ---------------------------------------------------------------------------
+typedef unsigned char       XMLByte;
+typedef XMLUInt16           UTF16Ch;
+typedef XMLUInt32           UCS4Ch;
+
+
+// ---------------------------------------------------------------------------
+//  Handle boolean. If the platform can handle booleans itself, then we
+//  map our boolean type to the native type. Otherwise we create a default
+//  one as an int and define const values for true and false.
+//
+//  This flag will be set in the per-development environment stuff above.
+// ---------------------------------------------------------------------------
+#if defined(NO_NATIVE_BOOL)
+  #ifndef bool
+    typedef int     bool;
+  #endif
+  #ifndef true
+    #define  true     1
+  #endif
+  #ifndef false
+    #define false 0
+  #endif
+#endif
+
+#if defined(XML_NETBSD)
+#include       <xercesc/util/Platforms/NetBSD/NetBSDDefs.hpp>
+#endif
+
+// ---------------------------------------------------------------------------
+//  According to whether the compiler suports L"" type strings, we define
+//  the XMLStrL() macro one way or another.
+// ---------------------------------------------------------------------------
+#if defined(XML_LSTRSUPPORT)
+#define XMLStrL(str)  L##str
+#else
+#define XMLStrL(str)  str
+#endif
+
+
+// ---------------------------------------------------------------------------
+// Define namespace symbols if the compiler supports it.
+// ---------------------------------------------------------------------------
+#if defined(XERCES_HAS_CPP_NAMESPACE)
+    #define XERCES_CPP_NAMESPACE_BEGIN namespace XERCES_CPP_NAMESPACE {
+    #define XERCES_CPP_NAMESPACE_END  }
+    #define XERCES_CPP_NAMESPACE_USE using namespace XERCES_CPP_NAMESPACE;
+    #define XERCES_CPP_NAMESPACE_QUALIFIER XERCES_CPP_NAMESPACE::
+
+    namespace XERCES_CPP_NAMESPACE { }
+    namespace xercesc = XERCES_CPP_NAMESPACE;
+#else
+    #define XERCES_CPP_NAMESPACE_BEGIN
+    #define XERCES_CPP_NAMESPACE_END
+    #define XERCES_CPP_NAMESPACE_USE
+    #define XERCES_CPP_NAMESPACE_QUALIFIER
+#endif
+
+#if defined(XERCES_STD_NAMESPACE)
+	#define XERCES_USING_STD(NAME) using std :: NAME;
+	#define XERCES_STD_QUALIFIER  std ::
+#else
+	#define XERCES_USING_STD(NAME)
+	#define XERCES_STD_QUALIFIER 
+#endif
+
+
+// ---------------------------------------------------------------------------
+//  Set up the import/export keyword  for our core projects. The
+//  PLATFORM_XXXX keywords are set in the per-development environment
+//  include above.
+// ---------------------------------------------------------------------------
+#if defined(PROJ_XMLUTIL)
+#define XMLUTIL_EXPORT PLATFORM_EXPORT
+#else
+#define XMLUTIL_EXPORT PLATFORM_IMPORT
+#endif
+
+#if defined(PROJ_XMLPARSER)
+#define XMLPARSER_EXPORT PLATFORM_EXPORT
+#else
+#define XMLPARSER_EXPORT PLATFORM_IMPORT
+#endif
+
+#if defined(PROJ_SAX4C)
+#define SAX_EXPORT PLATFORM_EXPORT
+#else
+#define SAX_EXPORT PLATFORM_IMPORT
+#endif
+
+#if defined(PROJ_SAX2)
+#define SAX2_EXPORT PLATFORM_EXPORT
+#else
+#define SAX2_EXPORT PLATFORM_IMPORT
+#endif
+
+#if defined(PROJ_DOM)
+#define CDOM_EXPORT PLATFORM_EXPORT
+#else
+#define CDOM_EXPORT PLATFORM_IMPORT
+#endif
+
+#if defined(PROJ_DEPRECATED_DOM)
+#define DEPRECATED_DOM_EXPORT PLATFORM_EXPORT
+#else
+#define DEPRECATED_DOM_EXPORT PLATFORM_IMPORT
+#endif
+
+#if defined(PROJ_PARSERS)
+#define PARSERS_EXPORT  PLATFORM_EXPORT
+#else
+#define PARSERS_EXPORT  PLATFORM_IMPORT
+#endif
+
+#if defined(PROJ_VALIDATORS)
+#define VALIDATORS_EXPORT  PLATFORM_EXPORT
+#else
+#define VALIDATORS_EXPORT  PLATFORM_IMPORT
+#endif
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/DefaultPanicHandler.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/DefaultPanicHandler.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/DefaultPanicHandler.hpp	(revision 2674)
@@ -0,0 +1,81 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: DefaultPanicHandler.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+#ifndef DEFAULT_PANICHANDLER_HPP
+#define DEFAULT_PANICHANDLER_HPP
+
+#include <xercesc/util/PanicHandler.hpp>
+#include <xercesc/util/PlatformUtils.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+/**
+  * Receive notification of panic.
+  *
+  * <p>This is Xerces' default implementation of the PanicHanlder 
+  *    interface, which will be instantiated and used in the 
+  *    absence of an application's panic handler.
+  * </p>
+  */
+
+class XMLUTIL_EXPORT DefaultPanicHandler : public XMemory, public PanicHandler
+{
+public:
+
+    /** @name hidden Constructors */
+    //@{
+    /** Default constructor */
+    DefaultPanicHandler(){};
+
+    /** Destructor */
+    virtual ~DefaultPanicHandler(){};
+    //@}
+
+    /** @name Implement virtual panic handler interface */
+    //@{
+   /**
+    * Receive notification of panic
+    *
+    * <p>Upon invocation, a corresponding error message will be output 
+    *    to the stderr, and program exit.
+    * </p>
+    *
+    * @param reason The reason of panic
+    *
+    */
+    virtual void panic(const PanicHandler::PanicReasons reason);
+    //@}
+
+private:
+
+    /* Unimplemented Constructors and operators */
+    /* Copy constructor */
+    DefaultPanicHandler(const PanicHandler&);
+    
+    /** Assignment operator */
+    DefaultPanicHandler& operator=(const DefaultPanicHandler&);
+
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/CountedPointer.c
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/CountedPointer.c	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/CountedPointer.c	(revision 2674)
@@ -0,0 +1,107 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: CountedPointer.c 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+// ---------------------------------------------------------------------------
+//  Includes
+// ---------------------------------------------------------------------------
+#if defined(XERCES_TMPLSINC)
+#include <xercesc/util/CountedPointer.hpp>
+#endif
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+// ---------------------------------------------------------------------------
+//  CountedPointerTo: Constructors and Destructor
+// ---------------------------------------------------------------------------
+template <class T> CountedPointerTo<T>::
+CountedPointerTo(const CountedPointerTo<T>& toCopy) :
+
+    fPtr(toCopy.fPtr)
+{
+    if (fPtr)
+        fPtr->addRef();
+}
+
+template <class T> CountedPointerTo<T>::CountedPointerTo(T* p) :
+
+    fPtr(p)
+{
+    if (fPtr)
+        fPtr->addRef();
+}
+
+template <class T> CountedPointerTo<T>::~CountedPointerTo()
+{
+    if (fPtr)
+        fPtr->removeRef();
+}
+
+
+// ---------------------------------------------------------------------------
+//  CountedPointerTo: Operators
+// ---------------------------------------------------------------------------
+template <class T> CountedPointerTo<T>&
+CountedPointerTo<T>::operator=(const CountedPointerTo<T>& other)
+{
+    if (this == &other)
+        return *this;
+
+    if (other.fPtr)
+        other.fPtr->addRef();
+
+    if (fPtr)
+        fPtr->removeRef();
+
+    fPtr = other.fPtr;
+    return *this;
+}
+
+template <class T> CountedPointerTo<T>::operator T*()
+{
+    return fPtr;
+}
+
+template <class T> const T* CountedPointerTo<T>::operator->() const
+{
+    return fPtr;
+}
+
+template <class T> T* CountedPointerTo<T>::operator->()
+{
+    return fPtr;
+}
+
+template <class T> const T& CountedPointerTo<T>::operator*() const
+{
+    if (!fPtr)
+        ThrowXMLwithMemMgr(NullPointerException, XMLExcepts::CPtr_PointerIsZero, 0);
+    return *fPtr;
+}
+
+template <class T> T& CountedPointerTo<T>::operator*()
+{
+    if (!fPtr)
+        ThrowXMLwithMemMgr(NullPointerException, XMLExcepts::CPtr_PointerIsZero, 0);
+    return *fPtr;
+}
+
+XERCES_CPP_NAMESPACE_END
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/XMLMsgLoader.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/XMLMsgLoader.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/XMLMsgLoader.hpp	(revision 2674)
@@ -0,0 +1,195 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: XMLMsgLoader.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+#if !defined(XMLMSGLOADER_HPP)
+#define XMLMSGLOADER_HPP
+
+#include <xercesc/util/XMemory.hpp>
+#include <xercesc/util/PlatformUtils.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+//
+//  This header defines an abstract message loading API. This is the API via
+//  which the parser system loads translatable text, and there can be multiple
+//  actual implementations of this mechanism. The API is very simple because
+//  there can be many kinds of underlying systems on which implementations are
+//  based and we don't want to get into portability trouble by being overly
+//  smart.
+//
+//  Each instance of the message loader loads a file of messages, which are
+//  accessed by key and which are associated with a particular language. The
+//  actual source information may be in many forms, but by the time it is
+//  extracted for use it will be in Unicode format. The language is always
+//  the default language for the local machine.
+//
+//  Msg loader derivatives are not required to be thread safe. The parser will
+//  never use a single instance in more than one thread.
+//
+class XMLUTIL_EXPORT XMLMsgLoader : public XMemory
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Class specific types
+    //
+    //  XMLMsgId
+    //      A simple typedef to give us flexibility about the representation
+    //      of a message id.
+    // -----------------------------------------------------------------------
+    typedef unsigned int    XMLMsgId;
+
+
+    // -----------------------------------------------------------------------
+    //  Public Constructors and Destructor
+    // -----------------------------------------------------------------------
+    virtual ~XMLMsgLoader();
+
+
+    // -----------------------------------------------------------------------
+    //  The virtual message loader API
+    // -----------------------------------------------------------------------
+    virtual bool loadMsg
+    (
+        const   XMLMsgId        msgToLoad
+        ,       XMLCh* const    toFill
+        , const unsigned int    maxChars
+    ) = 0;
+
+    virtual bool loadMsg
+    (
+        const   XMLMsgId        msgToLoad
+        ,       XMLCh* const    toFill
+        , const unsigned int    maxChars
+        , const XMLCh* const    repText1
+        , const XMLCh* const    repText2 = 0
+        , const XMLCh* const    repText3 = 0
+        , const XMLCh* const    repText4 = 0
+        , MemoryManager* const  manager   = XMLPlatformUtils::fgMemoryManager
+    ) = 0;
+
+    virtual bool loadMsg
+    (
+        const   XMLMsgId        msgToLoad
+        ,       XMLCh* const    toFill
+        , const unsigned int    maxChars
+        , const char* const     repText1
+        , const char* const     repText2 = 0
+        , const char* const     repText3 = 0
+        , const char* const     repText4 = 0
+        , MemoryManager* const  manager  = XMLPlatformUtils::fgMemoryManager
+    ) = 0;
+
+    /** @name Locale Handling  */
+    //@{
+    /**
+      * This function enables set the locale information which
+      * all concrete message loaders shall refer to during instantiation.
+      *
+      * Note: for detailed discussion, refer to PlatformUtils::initalize()
+      */
+    static void           setLocale(const char* const localeToAdopt);
+
+    /**
+      * For the derived to retrieve locale info during construction
+      */
+    static const char*    getLocale();
+
+    //@}
+
+    /** @name NLSHome Handling  */
+    //@{
+    /**
+      * This function enables set the NLSHome information which
+      * all concrete message loaders shall refer to during instantiation.
+      *
+      * Note: for detailed discussion, refer to PlatformUtils::initalize()
+      */
+    static void           setNLSHome(const char* const nlsHomeToAdopt);
+
+    /**
+      * For the derived to retrieve NLSHome info during construction
+      */
+    static const char*    getNLSHome();
+
+    //@}
+
+    // -----------------------------------------------------------------------
+    //  Deprecated: Getter methods
+    // -----------------------------------------------------------------------
+    virtual const XMLCh* getLanguageName() const;
+
+
+protected :
+    // -----------------------------------------------------------------------
+    //  Hidden Constructors
+    // -----------------------------------------------------------------------
+    XMLMsgLoader();
+
+    // -----------------------------------------------------------------------
+    //  Deprecated: Protected helper methods
+    // -----------------------------------------------------------------------
+    void setLanguageName(XMLCh* const nameToAdopt);
+
+private :
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    XMLMsgLoader(const XMLMsgLoader&);
+    XMLMsgLoader& operator=(const XMLMsgLoader&);
+
+
+    // -----------------------------------------------------------------------
+    //  Private data members
+    //
+    //  fLocale
+    //      Locale info set through PlatformUtils::init().
+    //      The derived class may refer to this for locale information.
+    //
+    //  fPath
+    //      NLSHome info set through PlatformUtils::init().
+    //      The derived class may refer to this for NLSHome information.
+    //
+    // -----------------------------------------------------------------------
+    static char*    fLocale;
+    static char*    fPath;
+    static XMLCh    fLanguage[];
+};
+
+
+// ---------------------------------------------------------------------------
+//  XMLMsgLoader: Public Constructors and Destructor
+// ---------------------------------------------------------------------------
+inline XMLMsgLoader::~XMLMsgLoader()
+{
+}
+
+
+// ---------------------------------------------------------------------------
+//  XMLMsgLoader: Hidden Constructors
+// ---------------------------------------------------------------------------
+inline XMLMsgLoader::XMLMsgLoader()
+{
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/XercesVersion.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/XercesVersion.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/XercesVersion.hpp	(revision 2674)
@@ -0,0 +1,210 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#if !defined(XERCESVERSION_HPP)
+#define XERCESVERSION_HPP
+
+// ---------------------------------------------------------------------------
+// X E R C E S   V E R S I O N   H E A D E R   D O C U M E N T A T I O N
+
+/**
+ * User Documentation for Xerces Version Values:
+ *
+ *
+ *
+ * Xerces  Notes:
+ *
+ * Xerces Committers Documentation:
+ *
+ *    Xerces committers normally only need to modify one or two of the
+ *    following macros:
+ *
+ *      XERCES_VERSION_MAJOR
+ *      XERCES_VERSION_MINOR
+ *      XERCES_VERSION_REVISION
+ *
+ *    The integer values of these macros define the Xerces version number. All
+ *    other constants and preprocessor macros are automatically generated from
+ *    these three definitions.
+ *
+ *    The macro XERCES_GRAMMAR_SERIALIZATION_LEVEL has been added so that during
+ *    development if users are using the latest code they can use the grammar
+ *    serialization/desialization features.  Whenever a change is made to the
+ *    serialization code this macro should be incremented.
+ *
+ * Xerces User Documentation:
+ *
+ *  The following sections in the user documentation have examples based upon
+ *  the following three version input values:
+ *
+ *    #define XERCES_VERSION_MAJOR 19
+ *    #define XERCES_VERSION_MINOR 3
+ *    #define XERCES_VERSION_REVISION 74
+ *
+ *  The minor and revision (patch level) numbers have two digits of resolution
+ *  which means that '3' becomes '03' in this example. This policy guarantees
+ *  that when using preprocessor macros, version 19.3.74 will be greater than
+ *  version 1.94.74 since the first will expand to 190374 and the second to
+ *  19474.
+ *
+ *  Preprocessor Macros:
+ *
+ *    _XERCES_VERSION defines the primary preprocessor macro that users will
+ *    introduce into their code to perform conditional compilation where the
+ *    version of Xerces is detected in order to enable or disable version
+ *    specific capabilities. The value of _XERCES_VERSION for the above example
+ *    will be 190374. To use it a user would perform an operation such as the
+ *    following:
+ *
+ *      #if _XERCES_VERSION >= 190374
+ *        // code specific to new version of Xerces...
+ *      #else
+ *        // old code here...
+ *      #endif
+ *
+ *    XERCES_FULLVERSIONSTR is a preprocessor macro that expands to a string
+ *    constant whose value, for the above example, will be "19_3_74".
+ *
+ *    XERCES_FULLVERSIONDOT is a preprocessor macro that expands to a string
+ *    constant whose value, for the above example, will be "19.3.74".
+ *
+ *    XERCES_VERSIONSTR is a preprocessor macro that expands to a string
+ *    constant whose value, for the above example, will be "19_3". This
+ *    particular macro is very dangerous if it were to be used for comparing
+ *    version numbers since ordering will not be guaranteed.
+ *
+ *    Xerces_DLLVersionStr is a preprocessor macro that expands to a string
+ *    constant whose value, for the above example, will be "19_3_74". This
+ *    macro is provided for backwards compatibility to pre-1.7 versions of
+ *    Xerces.
+ *
+ *  String Constants:
+ *
+ *    gXercesVersionStr is a global string constant whose value corresponds to
+ *    the value "19_3" for the above example.
+ *
+ *    gXercesFullVersionStr is a global string constant whose value corresponds
+ *    to the value "19_3_74" for the above example.
+ *
+ *  Numeric Constants:
+ *
+ *    gXercesMajVersion is a global integer constant whose value corresponds to
+ *    the major version number. For the above example its value will be 19.
+ *
+ *    gXercesMinVersion is a global integer constant whose value corresponds to
+ *    the minor version number. For the above example its value will be 3.
+ *
+ *    gXercesRevision is a global integer constant whose value corresponds to
+ *    the revision (patch) version number. For the above example its value will
+ *    be 74.
+ *
+ */
+
+// ---------------------------------------------------------------------------
+// X E R C E S   V E R S I O N   S P E C I F I C A T I O N
+
+/**
+ * MODIFY THESE NUMERIC VALUES TO COINCIDE WITH XERCES VERSION
+ * AND DO NOT MODIFY ANYTHING ELSE IN THIS VERSION HEADER FILE
+ */
+
+#define XERCES_VERSION_MAJOR 2
+#define XERCES_VERSION_MINOR 8
+#define XERCES_VERSION_REVISION 0
+
+/***
+ * data member added to XSAnnotation
+ ***/
+#define XERCES_GRAMMAR_SERIALIZATION_LEVEL 5
+
+/** DO NOT MODIFY BELOW THIS LINE */
+
+/**
+ * MAGIC THAT AUTOMATICALLY GENERATES THE FOLLOWING:
+ *
+ *	Xerces_DLLVersionStr, gXercesVersionStr, gXercesFullVersionStr,
+ *	gXercesMajVersion, gXercesMinVersion, gXercesRevision
+ */
+
+// ---------------------------------------------------------------------------
+// T W O   A R G U M E N T   C O N C A T E N A T I O N   M A C R O S
+
+// two argument concatenation routines
+#define CAT2_SEP_UNDERSCORE(a, b) #a "_" #b
+#define CAT2_SEP_PERIOD(a, b) #a "." #b
+#define CAT2_SEP_NIL(a, b) #a #b
+#define CAT2_RAW_NUMERIC(a, b) a ## b
+
+// two argument macro invokers
+#define INVK_CAT2_SEP_UNDERSCORE(a,b) CAT2_SEP_UNDERSCORE(a,b)
+#define INVK_CAT2_SEP_PERIOD(a,b)     CAT2_SEP_PERIOD(a,b)
+#define INVK_CAT2_STR_SEP_NIL(a,b)    CAT2_SEP_NIL(a,b)
+#define INVK_CAT2_RAW_NUMERIC(a,b)    CAT2_RAW_NUMERIC(a,b)
+
+// ---------------------------------------------------------------------------
+// T H R E E   A R G U M E N T   C O N C A T E N A T I O N   M A C R O S
+
+// three argument concatenation routines
+#define CAT3_SEP_UNDERSCORE(a, b, c) #a "_" #b "_" #c
+#define CAT3_SEP_PERIOD(a, b, c) #a "." #b "." #c
+#define CAT3_SEP_NIL(a, b, c) #a #b #c
+#define CAT3_RAW_NUMERIC(a, b, c) a ## b ## c
+#define CAT3_RAW_NUMERIC_SEP_UNDERSCORE(a, b, c) a ## _ ## b ## _ ## c
+
+// three argument macro invokers
+#define INVK_CAT3_SEP_UNDERSCORE(a,b,c) CAT3_SEP_UNDERSCORE(a,b,c)
+#define INVK_CAT3_SEP_PERIOD(a,b,c)     CAT3_SEP_PERIOD(a,b,c)
+#define INVK_CAT3_SEP_NIL(a,b,c)        CAT3_SEP_NIL(a,b,c)
+#define INVK_CAT3_RAW_NUMERIC(a,b,c)    CAT3_RAW_NUMERIC(a,b,c)
+#define INVK_CAT3_RAW_NUMERIC_SEP_UNDERSCORE(a,b,c)    CAT3_RAW_NUMERIC_SEP_UNDERSCORE(a,b,c)
+
+// ---------------------------------------------------------------------------
+// C A L C U L A T E   V E R S I O N   -   E X P A N D E D   F O R M
+
+#define MULTIPLY(factor,value) factor * value
+#define CALC_EXPANDED_FORM(a,b,c) ( MULTIPLY(10000,a) + MULTIPLY(100,b) + MULTIPLY(1,c) )
+
+// ---------------------------------------------------------------------------
+// X E R C E S   V E R S I O N   I N F O R M A T I O N
+
+// Xerces version strings; these particular macros cannot be used for
+// conditional compilation as they are not numeric constants
+
+#define XERCES_FULLVERSIONSTR INVK_CAT3_SEP_UNDERSCORE(XERCES_VERSION_MAJOR,XERCES_VERSION_MINOR,XERCES_VERSION_REVISION)
+#define XERCES_FULLVERSIONDOT INVK_CAT3_SEP_PERIOD(XERCES_VERSION_MAJOR,XERCES_VERSION_MINOR,XERCES_VERSION_REVISION)
+#define XERCES_FULLVERSIONNUM INVK_CAT3_SEP_NIL(XERCES_VERSION_MAJOR,XERCES_VERSION_MINOR,XERCES_VERSION_REVISION)
+#define XERCES_VERSIONSTR     INVK_CAT2_SEP_UNDERSCORE(XERCES_VERSION_MAJOR,XERCES_VERSION_MINOR)
+
+// Xerces C++ Namespace string, concatenated with full version string
+#define XERCES_PRODUCT xercesc
+#define XERCES_CPP_NAMESPACE INVK_CAT3_RAW_NUMERIC_SEP_UNDERSCORE(XERCES_PRODUCT,XERCES_VERSION_MAJOR,XERCES_VERSION_MINOR)
+
+// original from Xerces header
+#define Xerces_DLLVersionStr XERCES_FULLVERSIONSTR
+
+const char* const    gXercesVersionStr = XERCES_VERSIONSTR;
+const char* const    gXercesFullVersionStr = XERCES_FULLVERSIONSTR;
+const unsigned int   gXercesMajVersion = XERCES_VERSION_MAJOR;
+const unsigned int   gXercesMinVersion = XERCES_VERSION_MINOR;
+const unsigned int   gXercesRevision   = XERCES_VERSION_REVISION;
+
+// Xerces version numeric constants that can be used for conditional
+// compilation purposes.
+
+#define _XERCES_VERSION CALC_EXPANDED_FORM (XERCES_VERSION_MAJOR,XERCES_VERSION_MINOR,XERCES_VERSION_REVISION)
+
+#endif // XERCESVERSION_HPP
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/ValueArrayOf.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/ValueArrayOf.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/ValueArrayOf.hpp	(revision 2674)
@@ -0,0 +1,151 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: ValueArrayOf.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+#if !defined(VALUEARRAY_HPP)
+#define VALUEARRAY_HPP
+
+#include <xercesc/util/XMLEnumerator.hpp>
+#include <xercesc/util/ArrayIndexOutOfBoundsException.hpp>
+#include <xercesc/util/IllegalArgumentException.hpp>
+#include <xercesc/util/PlatformUtils.hpp>
+#include <xercesc/framework/MemoryManager.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+template <class TElem> class ValueArrayOf : public XMemory
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Contructors and Destructor
+    // -----------------------------------------------------------------------
+    ValueArrayOf
+    (
+           const unsigned int   size
+         , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+	ValueArrayOf
+    (
+          const TElem*         values
+        , const unsigned int   size
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+	ValueArrayOf(const ValueArrayOf<TElem>& source);
+	~ValueArrayOf();
+
+
+    // -----------------------------------------------------------------------
+    //  Public operators
+    // -----------------------------------------------------------------------
+	TElem& operator[](const unsigned int index);
+	const TElem& operator[](const unsigned int index) const;
+	ValueArrayOf<TElem>& operator=(const ValueArrayOf<TElem>& toAssign);
+	bool operator==(const ValueArrayOf<TElem>& toCompare) const;
+	bool operator!=(const ValueArrayOf<TElem>& toCompare) const;
+
+
+    // -----------------------------------------------------------------------
+    //  Copy operations
+    // -----------------------------------------------------------------------
+    unsigned int copyFrom(const ValueArrayOf<TElem>& srcArray);
+
+
+    // -----------------------------------------------------------------------
+    //  Getter methods
+    // -----------------------------------------------------------------------
+	unsigned int length() const;
+	TElem* rawData() const;
+
+
+    // -----------------------------------------------------------------------
+    //  Miscellaneous methods
+    // -----------------------------------------------------------------------
+    void resize(const unsigned int newSize);
+
+
+private :
+    // -----------------------------------------------------------------------
+    //  Data members
+    // -----------------------------------------------------------------------
+	unsigned int    fSize;
+	TElem*          fArray;
+    MemoryManager*  fMemoryManager;
+};
+
+
+//
+//  An enumerator for a value array. It derives from the basic enumerator
+//  class, so that value vectors can be generically enumerated.
+//
+template <class TElem> class ValueArrayEnumerator : public XMLEnumerator<TElem>, public XMemory
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+    ValueArrayEnumerator
+    (
+                ValueArrayOf<TElem>* const toEnum
+        , const bool                       adopt = false
+    );
+    virtual ~ValueArrayEnumerator();
+
+
+    // -----------------------------------------------------------------------
+    //  Enum interface
+    // -----------------------------------------------------------------------
+    bool hasMoreElements() const;
+    TElem& nextElement();
+    void Reset();
+
+
+private :
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------    
+    ValueArrayEnumerator(const ValueArrayEnumerator<TElem>&);
+    ValueArrayEnumerator<TElem>& operator=(const ValueArrayEnumerator<TElem>&);
+
+    // -----------------------------------------------------------------------
+    //  Data Members
+    //
+    //  fAdopted
+    //      Indicates whether we have adopted the passed vector. If so then
+    //      we delete the vector when we are destroyed.
+    //
+    //  fCurIndex
+    //      This is the current index into the vector.
+    //
+    //  fToEnum
+    //      The value array being enumerated.
+    // -----------------------------------------------------------------------
+    bool                    fAdopted;
+    unsigned int            fCurIndex;
+    ValueArrayOf<TElem>*    fToEnum;
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#if !defined(XERCES_TMPLSINC)
+#include <xercesc/util/ValueArrayOf.c>
+#endif
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/KeyValuePair.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/KeyValuePair.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/KeyValuePair.hpp	(revision 2674)
@@ -0,0 +1,81 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: KeyValuePair.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(KEYVALUEPAIR_HPP)
+#define KEYVALUEPAIR_HPP
+
+
+#include <xercesc/util/XMemory.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+template <class TKey, class TValue> class KeyValuePair : public XMemory
+{
+    public  :
+        // -------------------------------------------------------------------
+        //  Constructors and Destructor
+        // -------------------------------------------------------------------
+        KeyValuePair();
+        KeyValuePair(const TKey& key, const TValue& value);
+        KeyValuePair(const KeyValuePair<TKey,TValue>& toCopy);
+        ~KeyValuePair();
+
+
+        // -------------------------------------------------------------------
+        //  Getters
+        // -------------------------------------------------------------------
+        const TKey& getKey() const;
+        TKey& getKey();
+        const TValue& getValue() const;
+        TValue& getValue();
+
+
+        // -------------------------------------------------------------------
+        //  Setters
+        // -------------------------------------------------------------------
+        TKey& setKey(const TKey& newKey);
+        TValue& setValue(const TValue& newValue);
+
+
+    private :
+        // unimplemented:
+        KeyValuePair<TKey,TValue>& operator=(const KeyValuePair<TKey,TValue>&);
+
+        // -------------------------------------------------------------------
+        //  Private data members
+        //
+        //  fKey
+        //      The object that represents the key of the pair
+        //
+        //  fValue
+        //      The object that represents the value of the pair
+        // -------------------------------------------------------------------
+        TKey    fKey;
+        TValue  fValue;
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#if !defined(XERCES_TMPLSINC)
+#include <xercesc/util/KeyValuePair.c>
+#endif
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Janitor.c
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Janitor.c	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Janitor.c	(revision 2674)
@@ -0,0 +1,224 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: Janitor.c 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+// ---------------------------------------------------------------------------
+//  Includes
+// ---------------------------------------------------------------------------
+#if defined(XERCES_TMPLSINC)
+#include <xercesc/util/Janitor.hpp>
+#endif
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+// ---------------------------------------------------------------------------
+//  Janitor: Constructors and Destructor
+// ---------------------------------------------------------------------------
+template <class T> Janitor<T>::Janitor(T* const toDelete) :
+    fData(toDelete)
+{
+}
+
+
+template <class T> Janitor<T>::~Janitor()
+{
+    reset();
+}
+
+
+// ---------------------------------------------------------------------------
+//  Janitor: Public, non-virtual methods
+// ---------------------------------------------------------------------------
+template <class T> void
+Janitor<T>::orphan()
+{
+   release();
+}
+
+
+template <class T> T&
+Janitor<T>::operator*() const
+{
+	return *fData;
+}
+
+
+template <class T> T*
+Janitor<T>::operator->() const
+{
+	return fData;
+}
+
+
+template <class T> T*
+Janitor<T>::get() const
+{
+	return fData;
+}
+
+
+template <class T> T*
+Janitor<T>::release()
+{
+	T* p = fData;
+	fData = 0;
+	return p;
+}
+
+
+template <class T> void Janitor<T>::reset(T* p)
+{
+    if (fData)
+        delete fData;
+
+    fData = p;
+}
+
+template <class T> bool Janitor<T>::isDataNull()
+{
+    return (fData == 0);
+}
+
+
+// -----------------------------------------------------------------------
+//  ArrayJanitor: Constructors and Destructor
+// -----------------------------------------------------------------------
+template <class T> ArrayJanitor<T>::ArrayJanitor(T* const toDelete) :
+    fData(toDelete)
+    , fMemoryManager(0)
+{
+}
+
+template <class T>
+ArrayJanitor<T>::ArrayJanitor(T* const toDelete,
+                              MemoryManager* const manager) :
+    fData(toDelete)
+    , fMemoryManager(manager)
+{
+}
+
+
+template <class T> ArrayJanitor<T>::~ArrayJanitor()
+{
+	reset();
+}
+
+
+// -----------------------------------------------------------------------
+//  ArrayJanitor: Public, non-virtual methods
+// -----------------------------------------------------------------------
+template <class T> void
+ArrayJanitor<T>::orphan()
+{
+   release();
+}
+
+
+//	Look, Ma! No hands! Don't call this with null data!
+template <class T> T&
+ArrayJanitor<T>::operator[](int index) const
+{
+	//	TODO: Add appropriate exception
+	return fData[index];
+}
+
+
+template <class T> T*
+ArrayJanitor<T>::get() const
+{
+	return fData;
+}
+
+
+template <class T> T*
+ArrayJanitor<T>::release()
+{
+	T* p = fData;
+	fData = 0;
+	return p;
+}
+
+
+template <class T> void
+ArrayJanitor<T>::reset(T* p)
+{
+	if (fData) {
+
+		if (fMemoryManager)
+            fMemoryManager->deallocate((void*)fData);
+        else
+            delete [] fData;
+    }
+
+	fData = p;
+    fMemoryManager = 0;
+}
+
+template <class T> void
+ArrayJanitor<T>::reset(T* p, MemoryManager* const manager)
+{
+	if (fData) {
+
+		if (fMemoryManager)
+            fMemoryManager->deallocate((void*)fData);
+        else
+            delete [] fData;
+    }
+
+	fData = p;
+    fMemoryManager = manager;
+}
+
+
+
+template <class T>
+JanitorMemFunCall<T>::JanitorMemFunCall(
+            T*      object,
+            MFPT    toCall) :
+    fObject(object),
+    fToCall(toCall)
+{
+}
+
+
+template <class T>
+JanitorMemFunCall<T>::~JanitorMemFunCall()
+{
+    if (fObject != 0 && fToCall != 0)
+    {
+        (fObject->*fToCall)();
+    }
+}
+
+
+// ---------------------------------------------------------------------------
+//  Janitor: Public, non-virtual methods
+// ---------------------------------------------------------------------------
+template <class T> void
+JanitorMemFunCall<T>::release()
+{
+    fObject = 0;
+    fToCall = 0;
+}
+
+
+
+XERCES_CPP_NAMESPACE_END
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/KeyRefPair.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/KeyRefPair.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/KeyRefPair.hpp	(revision 2674)
@@ -0,0 +1,81 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: KeyRefPair.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(KEYREFPAIR_HPP)
+#define KEYREFPAIR_HPP
+
+
+#include <xercesc/util/XMemory.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+template <class TKey, class TValue> class KeyRefPair : public XMemory
+{
+    public  :
+        // -------------------------------------------------------------------
+        //  Constructors and Destructor
+        // -------------------------------------------------------------------
+        KeyRefPair();
+        KeyRefPair(TKey* key, TValue* value);
+        KeyRefPair(const KeyRefPair<TKey,TValue>* toCopy);
+        KeyRefPair(const KeyRefPair<TKey,TValue>& toCopy);
+        ~KeyRefPair();
+
+
+        // -------------------------------------------------------------------
+        //  Getters
+        // -------------------------------------------------------------------
+        const TKey* getKey() const;
+        TKey* getKey();
+        const TValue* getValue() const;
+        TValue* getValue();
+
+
+        // -------------------------------------------------------------------
+        //  Setters
+        // -------------------------------------------------------------------
+        TKey* setKey(TKey* newKey);
+        TValue* setValue(TValue* newValue);
+
+
+    private :
+        // unimplemented:        
+        KeyRefPair<TKey,TValue>& operator=(const KeyRefPair<TKey,TValue>&);
+        // -------------------------------------------------------------------
+        //  Private data members
+        //
+        //  fKey
+        //      The object that represents the key of the pair
+        //
+        //  fValue
+        //      The object that represents the value of the pair
+        // -------------------------------------------------------------------
+        TKey*    fKey;
+        TValue*  fValue;
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#if !defined(XERCES_TMPLSINC)
+#include <xercesc/util/KeyRefPair.c>
+#endif
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/RuntimeException.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/RuntimeException.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/RuntimeException.hpp	(revision 2674)
@@ -0,0 +1,35 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: RuntimeException.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(RUNTIMEEXCEPTION_HPP)
+#define RUNTIMEEXCEPTION_HPP
+
+
+#include <xercesc/util/XercesDefs.hpp>
+#include <xercesc/util/XMLException.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+MakeXMLException(RuntimeException, XMLUTIL_EXPORT)
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/XMLEnumerator.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/XMLEnumerator.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/XMLEnumerator.hpp	(revision 2674)
@@ -0,0 +1,57 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: XMLEnumerator.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+#if !defined(XMLENUMERATOR_HPP)
+#define XMLENUMERATOR_HPP
+
+#include <xercesc/util/XercesDefs.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+template <class TElem> class XMLEnumerator
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Destructor
+    // -----------------------------------------------------------------------
+    virtual ~XMLEnumerator() {};
+
+    // -----------------------------------------------------------------------
+    //  XMLEnumerator interface
+    // -----------------------------------------------------------------------
+    virtual bool hasMoreElements() const = 0;
+    virtual TElem& nextElement() = 0;
+    virtual void Reset() = 0;
+
+    XMLEnumerator() {}
+    XMLEnumerator(const XMLEnumerator<TElem>&) {}
+
+private:
+	// -----------------------------------------------------------------------
+    //  Unimplemented operators
+    // -----------------------------------------------------------------------
+    XMLEnumerator<TElem>& operator=(const XMLEnumerator<TElem>&);    
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/PlatformUtils.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/PlatformUtils.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/PlatformUtils.hpp	(revision 2674)
@@ -0,0 +1,862 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: PlatformUtils.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+#if !defined(PLATFORMUTILS_HPP)
+#define PLATFORMUTILS_HPP
+
+#include <xercesc/util/XMLException.hpp>
+#include <xercesc/util/PanicHandler.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class XMLMsgLoader;
+class XMLNetAccessor;
+class XMLTransService;
+class MemoryManager;
+class XMLMutex;
+
+//
+//  For internal use only
+//
+//  This class provides a simple abstract API via which lazily evaluated
+//  data can be cleaned up.
+//
+class XMLUTIL_EXPORT XMLDeleter
+{
+public :
+    virtual ~XMLDeleter();
+
+protected :
+    XMLDeleter();
+
+private :
+    XMLDeleter(const XMLDeleter&);
+    XMLDeleter& operator=(const XMLDeleter&);
+};
+
+
+/**
+  * Utilities that must be implemented in a platform-specific way.
+  *
+  * This class contains methods that must be implemented in a platform
+  * specific manner. The actual implementations of these methods are
+  * available in the per-platform files indide <code>src/util/Platforms
+  * </code>.
+  */
+class XMLUTIL_EXPORT XMLPlatformUtils
+{
+public :
+
+    /** @name Public Static Data */
+    //@{
+
+    /** The network accessor
+      *
+      * This is provided by the per-platform driver, so each platform can
+      * choose what actual implementation it wants to use. The object must
+      * be dynamically allocated.
+      *
+      * <i>Note that you may optionally, if your platform driver does not
+      * install a network accessor, set it manually from your client code
+      * after calling Initialize(). This works because this object is
+      * not required during initialization, and only comes into play during
+      * actual XML parsing.</i>
+      */
+    static XMLNetAccessor*      fgNetAccessor;
+
+    /** The transcoding service.
+      *
+      * This is provided by the per platform driver, so each platform can
+      * choose what implemenation it wants to use. When the platform
+      * independent initialization code needs to get a transcoding service
+      * object, it will call <code>makeTransService()</code> to ask the
+      * per-platform code to create one. Only one transcoding service
+      * object is reqeusted per-process, so it is shared and synchronized
+      * among parser instances within that process.
+      */
+    static XMLTransService*     fgTransService;
+#ifdef OS390
+    static XMLTransService*     fgTransService2;
+#endif
+
+    /** The Panic Handler
+      *
+      *   This is the application provided panic handler. 
+      */
+    static PanicHandler*        fgUserPanicHandler;
+    
+    /** The Panic Handler
+      *
+      *   This is the default panic handler. 
+      */    
+    static PanicHandler*        fgDefaultPanicHandler;
+
+    /** The configurable memory manager
+      *
+      *   This is the pluggable memory manager. If it is not provided by an
+      *   application, a default implementation is used.
+      */
+    static MemoryManager*       fgMemoryManager;
+    
+    /** The array-allocating memory manager
+      *
+      *   This memory manager always allocates memory by calling the
+      *   global new[] operator. It may be used to allocate memory
+      *   where such memory needs to be deletable by calling delete [].
+      *   Since this allocator is always guaranteed to do the same thing
+      *   there is no reason, nor facility, to override it.
+      */
+    static MemoryManager*       fgArrayMemoryManager;
+
+    static XMLMutex*            fgAtomicMutex;
+    
+    //@}
+
+
+    /** @name Initialization amd Panic methods */
+    //@{
+
+    /** Perform per-process parser initialization
+      *
+      * Initialization <b>must</b> be called first in any client code.
+      *
+      * The locale is set iff the Initialize() is invoked for the very first time,
+      * to ensure that each and every message loaders, in the process space, share
+      * the same locale.
+      *
+      * All subsequent invocations of Initialize(), with a different locale, have
+      * no effect on the message loaders, either instantiated, or to be instantiated.
+      *
+      * To set to a different locale, client application needs to Terminate() (or
+      * multiple Terminate() in the case where multiple Initialize() have been invoked
+      * before), followed by Initialize(new_locale).
+      *
+      * The default locale is "en_US".
+      *
+      * nlsHome: user specified location where MsgLoader retrieves error message files.
+      *          the discussion above with regard to locale, applies to this nlsHome
+      *          as well.
+      *
+      * panicHandler: application's panic handler, application owns this handler.
+      *               Application shall make sure that the plugged panic handler persists 
+      *               through the call to XMLPlatformUtils::terminate().       
+      *
+      * memoryManager: plugged-in memory manager which is owned by user
+      *                applications. Applications must make sure that the
+      *                plugged-in memory manager persist through the call to
+      *                XMLPlatformUtils::terminate()
+      */
+    static void Initialize(const char*          const locale = XMLUni::fgXercescDefaultLocale
+                         , const char*          const nlsHome = 0
+                         ,       PanicHandler*  const panicHandler = 0
+                         ,       MemoryManager* const memoryManager = 0
+                         ,       bool                 toInitStatics = false);
+
+    /** Perform per-process parser termination
+      *
+      * The termination call is currently optional, to aid those dynamically
+      * loading the parser to clean up before exit, or to avoid spurious
+      * reports from leak detectors.
+      */
+    static void Terminate();
+
+    /** The panic mechanism.
+      *
+      * If, during initialization, we cannot even get far enough along
+      * to get transcoding up or get message loading working, we call
+      * this method.</p>
+      *
+      * Each platform can implement it however they want. This method will
+      * delegate the panic handling to a user specified panic handler or
+      * in the absence of it, the default panic handler.
+      *
+      * In case the default panic handler does not support a particular
+      * platform, the platform specific panic hanlding shall be implemented
+      * here </p>.
+      * 
+      * @param reason The enumeration that defines the cause of the failure
+      */
+    static void panic
+    (
+        const   PanicHandler::PanicReasons    reason
+    );
+    
+    //@}
+
+    /** @name File Methods */
+    //@{
+
+    /** Get the current file position
+      *
+      * This must be implemented by the per-platform driver, which should
+      * use local file services to deterine the current position within
+      * the passed file.
+      *
+      * Since the file API provided here only reads, if the host platform
+      * supports separate read/write positions, only the read position is
+      * of any interest, and hence should be the one returned.
+      *
+      * @param theFile The file handle
+      * @param manager The MemoryManager to use to allocate objects
+      */
+    static unsigned int curFilePos(FileHandle theFile
+        , MemoryManager* const manager  = XMLPlatformUtils::fgMemoryManager);
+
+    /** Closes the file handle
+      *
+      * This must be implemented by the per-platform driver, which should
+      * use local file services to close the passed file handle, and to
+      * destroy the passed file handle and any allocated data or system
+      * resources it contains.
+      *
+      * @param theFile The file handle to close
+      * @param manager The MemoryManager to use to allocate objects
+      */
+    static void closeFile(FileHandle theFile
+        , MemoryManager* const manager  = XMLPlatformUtils::fgMemoryManager);
+
+    /** Returns the file size
+      *
+      * This must be implemented by the per-platform driver, which should
+      * use local file services to determine the current size of the file
+      * represented by the passed handle.
+      *
+      * @param theFile The file handle whose size you want
+      * @param manager The MemoryManager to use to allocate objects
+      * @return Returns the size of the file in bytes
+      */
+    static unsigned int fileSize(FileHandle theFile
+        , MemoryManager* const manager  = XMLPlatformUtils::fgMemoryManager);
+
+    /** Opens the file
+      *
+      * This must be implemented by the per-platform driver, which should
+      * use local file services to open passed file. If it fails, a
+      * null handle pointer should be returned.
+      *
+      * @param fileName The string containing the name of the file
+      * @param manager The MemoryManager to use to allocate objects
+      * @return The file handle of the opened file
+      */
+    static FileHandle openFile(const char* const fileName
+        , MemoryManager* const manager  = XMLPlatformUtils::fgMemoryManager);
+
+    /** Opens a named file
+      *
+      * This must be implemented by the per-platform driver, which should
+      * use local file services to open the passed file. If it fails, a
+      * null handle pointer should be returned.
+      *
+      * @param fileName The string containing the name of the file
+      * @param manager The MemoryManager to use to allocate objects
+      * @return The file handle of the opened file
+      */
+    static FileHandle openFile(const XMLCh* const fileName
+        , MemoryManager* const manager  = XMLPlatformUtils::fgMemoryManager);
+
+    /** Open a named file to write
+      *
+      * This must be implemented by the per-platform driver, which should
+      * use local file services to open passed file. If it fails, a
+      * null handle pointer should be returned.
+      *
+      * @param fileName The string containing the name of the file
+      * @param manager The MemoryManager to use to allocate objects
+      * @return The file handle of the opened file
+      */
+    static FileHandle openFileToWrite(const char* const fileName
+        , MemoryManager* const manager  = XMLPlatformUtils::fgMemoryManager);
+
+    /** Open a named file to write
+      *
+      * This must be implemented by the per-platform driver, which should
+      * use local file services to open the passed file. If it fails, a
+      * null handle pointer should be returned.
+      *
+      * @param fileName The string containing the name of the file
+      * @param manager The MemoryManager to use to allocate objects
+      * @return The file handle of the opened file
+      */
+    static FileHandle openFileToWrite(const XMLCh* const fileName
+        , MemoryManager* const manager  = XMLPlatformUtils::fgMemoryManager);
+
+    /** Opens the standard input as a file
+      *
+      * This must be implemented by the per-platform driver, which should
+      * use local file services to open a handle to the standard input.
+      * It should be a copy of the standard input handle, since it will
+      * be closed later!
+      *
+      * @param manager The MemoryManager to use to allocate objects
+      * @return The file handle of the standard input stream
+      */
+    static FileHandle openStdInHandle(MemoryManager* const manager  = XMLPlatformUtils::fgMemoryManager);
+
+    /** Reads the file buffer
+      *
+      * This must be implemented by the per-platform driver, which should
+      * use local file services to read up to 'toRead' bytes of data from
+      * the passed file, and return those bytes in the 'toFill' buffer. It
+      * is not an error not to read the requested number of bytes. When the
+      * end of file is reached, zero should be returned.
+      *
+      * @param theFile The file handle to be read from.
+      * @param toRead The maximum number of byte to read from the current
+      * position
+      * @param toFill The byte buffer to fill
+      * @param manager The MemoryManager to use to allocate objects
+      *
+      * @return Returns the number of bytes read from the stream or file
+      */
+    static unsigned int readFileBuffer
+    (
+                FileHandle      theFile
+        , const unsigned int    toRead
+        ,       XMLByte* const  toFill
+        , MemoryManager* const manager  = XMLPlatformUtils::fgMemoryManager
+    );
+
+    /** Writes the buffer to the file
+      *
+      * This must be implemented by the per-platform driver, which should
+      * use local file services to write up to 'toWrite' bytes of data to
+      * the passed file. Unless exception raised by local file services,
+      * 'toWrite' bytes of data is to be written to the passed file.
+      *
+      * @param theFile The file handle to be written to.
+      * @param toWrite The maximum number of byte to write from the current
+      * position
+      * @param toFlush The byte buffer to flush
+      * @param manager The MemoryManager to use to allocate objects
+      * @return void
+      */
+    static void writeBufferToFile
+    (
+          FileHandle     const  theFile
+        , long                  toWrite
+        , const XMLByte* const  toFlush
+        , MemoryManager* const manager  = XMLPlatformUtils::fgMemoryManager
+    );
+
+    /** Resets the file handle
+      *
+      * This must be implemented by the per-platform driver which will use
+      * local file services to reset the file position to the start of the
+      * the file.
+      *
+      * @param theFile The file handle that you want to reset
+      * @param manager The MemoryManager to use to allocate objects
+      */
+    static void resetFile(FileHandle theFile
+        , MemoryManager* const manager  = XMLPlatformUtils::fgMemoryManager);
+
+    //@}
+
+
+    /** @name File System Methods */
+    //@{
+    /** Gets the full path from a relative path
+      *
+      * This must be implemented by the per-platform driver. It should
+      * complete a relative path using the 'current directory', or whatever
+      * the local equivalent of a current directory is. If the passed
+      * source path is actually fully qualified, then a straight copy of it
+      * will be returned.
+      *
+      * @param srcPath The path of the file for which you want the full path
+      *
+      * @param manager Pointer to the memory manager to be used to
+      *                allocate objects.
+      *
+      * @return Returns the fully qualified path of the file name including
+      *         the file name. This is dyanmically allocated and must be
+      *         deleted  by the caller when its no longer needed! The memory
+      *         returned will beallocated using the static memory manager, if
+      *         user do not supply a memory manager. Users then need to make
+      *         sure to use either the default or user specific memory manager
+      *         to deallocate the memory.
+      */
+    static XMLCh* getFullPath
+    (
+        const XMLCh* const srcPath
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    /** Gets the current working directory 
+      *
+      * This must be implemented by the per-platform driver. It returns 
+      * the current working directory is. 
+      * @param manager The MemoryManager to use to allocate objects
+      * @return Returns the current working directory. 
+      *         This is dyanmically allocated and must be deleted
+      *         by the caller when its no longer needed! The memory returned
+      *         will be allocated using the static memory manager, if users
+      *         do not supply a memory manager. Users then need to make sure
+      *         to use either the default or user specific memory manager to
+      *         deallocate the memory.
+      */
+    static XMLCh* getCurrentDirectory
+    (
+        MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    /** Check if a charater is a slash
+      *
+      * This must be implemented by the per-platform driver. 
+      *
+      * @param c the character to be examined
+      *
+      * @return true  if the character examined is a slash
+      *         false otherwise
+      */
+    static inline bool isAnySlash(XMLCh c);
+    
+    /** Remove occurences of the pair of dot slash 
+      *
+      * To remove the sequence, dot slash if it is part of the sequence,
+      * slash dot slash.
+      *
+      * @param srcPath The path for which you want to remove the dot slash sequence.
+      * @param manager The MemoryManager to use to allocate objects
+      * @return 
+      */
+    static void   removeDotSlash(XMLCh* const srcPath
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+
+    /** Remove occurences of the dot dot slash 
+      *
+      * To remove the sequence, slash dot dot slash and its preceding path segment
+      * if and only if the preceding path segment is not slash dot dot slash.
+      *
+      * @param srcPath The path for which you want to remove the slash dot
+      *        dot slash sequence and its preceding path segment.
+      * @param manager The MemoryManager to use to allocate objects
+      * @return 
+      */
+    static void   removeDotDotSlash(XMLCh* const srcPath
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+
+    /** Determines if a path is relative or absolute
+      *
+      * This must be implemented by the per-platform driver, which should
+      * determine whether the passed path is relative or not. The concept
+      * of relative and absolute might be... well relative on different
+      * platforms. But, as long as the determination is made consistently
+      * and in coordination with the weavePaths() method, it should work
+      * for any platform.
+      *
+      * @param toCheck The file name which you want to check
+      * @param manager The MemoryManager to use to allocate objects
+      * @return Returns true if the filename appears to be relative
+      */
+    static bool isRelative(const XMLCh* const toCheck
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+        );
+
+    /** Utility to join two paths
+      *
+      * This must be implemented by the per-platform driver, and should
+      * weave the relative path part together with the base part and return
+      * a new path that represents this combination.
+      *
+      * If the relative part turns out to be fully qualified, it will be
+      * returned as is. If it is not, then it will be woven onto the
+      * passed base path, by removing one path component for each leading
+      * "../" (or whatever is the equivalent in the local system) in the
+      * relative path.
+      *
+      * @param basePath The string containing the base path
+      * @param relativePath The string containing the relative path
+      * @param manager The MemoryManager to use to allocate objects
+      * @return Returns a string containing the 'woven' path. It should
+      * be dynamically allocated and becomes the responsibility of the
+      * caller to delete.
+      */
+    static XMLCh* weavePaths
+    (
+        const   XMLCh* const    basePath
+        , const XMLCh* const    relativePath
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+    //@}
+
+    /** @name Timing Methods */
+    //@{
+
+    /** Gets the system time in milliseconds
+      *
+      * This must be implemented by the per-platform driver, which should
+      * use local services to return the current value of a running
+      * millisecond timer. Note that the value returned is only as accurate
+      * as the millisecond time of the underyling host system.
+      *
+      * @return Returns the system time as an unsigned long
+      */
+    static unsigned long getCurrentMillis();
+    //@}
+
+    /** @name Mutex Methods */
+    //@{
+
+    /** Closes a mutex handle
+      *
+      * Each per-platform driver must implement this. Only it knows what
+      * the actual content of the passed mutex handle is.
+      *
+      * @param mtxHandle The mutex handle that you want to close
+      */
+    static void closeMutex(void* const mtxHandle);
+
+    /** Locks a mutex handle
+      *
+      * Each per-platform driver must implement this. Only it knows what
+      * the actual content of the passed mutex handle is.
+      *
+      * @param mtxHandle The mutex handle that you want to lock
+      */
+    static void lockMutex(void* const mtxHandle);
+
+    /** Make a new mutex
+      *
+      * Each per-platform driver must implement this. Only it knows what
+      * the actual content of the passed mutex handle is. The returned
+      * handle pointer will be eventually passed to closeMutex() which is
+      * also implemented by the platform driver.
+      *
+      * @param manager The MemoryManager to use to allocate objects
+      */
+    static void* makeMutex(MemoryManager* manager = XMLPlatformUtils::fgMemoryManager);
+
+    /** Unlocks a mutex
+      *
+      * Each per-platform driver must implement this. Only it knows what
+      * the actual content of the passed mutex handle is.
+      *
+      * Note that, since the underlying system synchronization services
+      * are used, Xerces cannot guarantee that lock/unlock operations are
+      * correctly enforced on a per-thread basis or that incorrect nesting
+      * of lock/unlock operations will be caught.
+      *
+      * @param mtxHandle The mutex handle that you want to unlock
+      */
+    static void unlockMutex(void* const mtxHandle);
+
+    //@}
+
+
+    /** @name External Message Support */
+    //@{
+
+    /** Loads the message set from among the available domains
+      *
+      * The returned object must be dynamically allocated and the caller
+      * becomes responsible for cleaning it up.
+      *
+      * @param msgDomain The message domain which you want to load
+      */
+    static XMLMsgLoader* loadMsgSet(const XMLCh* const msgDomain);
+
+    //@}
+
+    /** @name Miscellaneous synchronization methods */
+    //@{
+
+    /** Conditionally updates or returns a single word variable atomically
+      *
+      * This must be implemented by the per-platform driver. The
+      * compareAndSwap subroutine performs an atomic operation which
+      * compares the contents of a single word variable with a stored old
+      * value. If the values are equal, a new value is stored in the single
+      * word variable and TRUE is returned; otherwise, the old value is set
+      * to the current value of the single word variable and FALSE is
+      * returned.
+      *
+      * The compareAndSwap subroutine is useful when a word value must be
+      * updated only if it has not been changed since it was last read.
+      *
+      * Note: The word containing the single word variable must be aligned
+      * on a full word boundary.
+      *
+      * @param toFill Specifies the address of the single word variable
+      * @param newValue Specifies the new value to be conditionally assigned
+      * to the single word variable.
+      * @param toCompare Specifies the address of the old value to be checked
+      * against (and conditionally updated with) the value of the single word
+      * variable.
+      *
+      * @return Returns the new value assigned to the single word variable
+      */
+    static void* compareAndSwap
+    (
+                void**      toFill
+        , const void* const newValue
+        , const void* const toCompare
+    );
+
+    //@}
+
+
+    /** @name Atomic Increment and Decrement */
+    //@{
+
+    /** Increments a single word variable atomically.
+      *
+      * This must be implemented by the per-platform driver. The
+      * atomicIncrement subroutine increments one word in a single atomic
+      * operation. This operation is useful when a counter variable is shared
+      * between several threads or processes. When updating such a counter
+      * variable, it is important to make sure that the fetch, update, and
+      * store operations occur atomically (are not interruptible).
+      *
+      * @param location Specifies the address of the word variable to be
+      * incremented.
+      *
+      * @return The function return value is positive if the result of the
+      * operation was positive. Zero if the result of the operation was zero.
+      * Negative if the result of the operation was negative. Except for the
+      * zero case, the value returned may differ from the actual result of
+      * the operation - only the sign and zero/nonzero state is guaranteed
+      * to be correct.
+      */
+    static int atomicIncrement(int& location);
+
+    /** Decrements a single word variable atomically.
+      *
+      * This must be implemented by the per-platform driver. The
+      * atomicDecrement subroutine increments one word in a single atomic
+      * operation. This operation is useful when a counter variable is shared
+      * between several threads or processes. When updating such a counter
+      * variable, it is important to make sure that the fetch, update, and
+      * store operations occur atomically (are not interruptible).
+      *
+      * @param location Specifies the address of the word variable to be
+      * decremented.
+      *
+      * @return The function return value is positive if the result of the
+      * operation was positive. Zero if the result of the operation was zero.
+      * Negative if the result of the operation was negative. Except for the
+      * zero case, the value returned may differ from the actual result of the
+      * operation - only the sign and zero/nonzero state is guaranteed to be
+      * correct.
+      */
+    static int atomicDecrement(int& location);
+
+    //@}
+
+    /** @name NEL Character Handling  */
+    //@{
+	/**
+      * This function enables the recognition of NEL(0x85) char and LSEP (0x2028) as newline chars
+      * which is disabled by default.
+      * It is only called once per process. Once it is set, any subsequent calls
+      * will result in exception being thrown.
+      *
+      * Note: 1. Turning this option on will make the parser non compliant to XML 1.0.
+      *       2. This option has no effect to document conforming to XML 1.1 compliant,
+      *          which always recognize these two chars (0x85 and 0x2028) as newline characters.
+      *
+      */
+    static void recognizeNEL(bool state
+        , MemoryManager* const manager  = XMLPlatformUtils::fgMemoryManager);
+
+    /**
+      * Return the value of fgNEL flag.
+      */
+    static bool isNELRecognized();
+    //@}
+
+    /** @name Strict IANA Encoding Checking */
+    //@{
+	/**
+      * This function enables/disables strict IANA encoding names checking.
+      *
+      * The strict checking is disabled by default.
+      *
+      * @param state If true, a strict IANA encoding name check is performed,
+      *              otherwise, no checking.
+      *
+      */
+    static void strictIANAEncoding(const bool state);
+
+    /**
+      * Returns whether a strict IANA encoding name check is enabled or
+      * disabled.
+      */
+    static bool isStrictIANAEncoding();
+    //@}
+		
+    /**
+      * Aligns the specified pointer per platform block allocation
+	  * requirements.
+	  *
+	  *	The results of this function may be altered by defining
+	  * XML_PLATFORM_NEW_BLOCK_ALIGNMENT.
+	  */
+	static inline size_t alignPointerForNewBlockAllocation(size_t ptrSize);
+
+private :
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    XMLPlatformUtils();
+
+    /** @name Private static methods */
+    //@{
+
+    /** Loads a message set from the available domains
+      *
+      * @param msgDomain The message domain containing the message to be
+      * loaded
+      */
+    static XMLMsgLoader* loadAMsgSet(const XMLCh* const msgDomain);
+
+    /** Creates a net accessor object.
+      *
+      * Each per-platform driver must implement this method. However,
+      * having a Net Accessor is optional and this method can return a
+      * null pointer if remote access via HTTP and FTP URLs is not required.
+      *
+      * @return An object derived from XMLNetAccessor. It must be dynamically
+      *         allocated, since it will be deleted later.
+      */
+    static XMLNetAccessor* makeNetAccessor();
+
+    /** Creates a Transoding service
+      *
+      * Each per-platform driver must implement this method and return some
+      * derivative of the XMLTransService class. This object serves as the
+      * transcoder factory for this process. The object must be dynamically
+      * allocated and the caller is responsible for cleaning it up.
+      *
+      * @return A dynamically allocated object of some class derived from
+      *         the XMLTransService class.
+      */
+    static XMLTransService* makeTransService();
+
+    /** Does initialization for a particular platform
+      *
+      * Each per-platform driver must implement this to do any low level
+      * system initialization required. It <b>cannot</b> use any XML
+      * parser or utilities services!
+      */
+    static void platformInit();
+
+    /** Does termination for a particular platform
+      *
+      * Each per-platform driver must implement this to do any low level
+      * system resource cleanup required. It <b>cannot</b> use any XML
+      * parser or utilities services!
+      */
+    static void platformTerm();
+
+    /** Search for sequence, slash dot dot slash
+      *
+      * @param srcPath the path to search
+      *
+      * @return   the position of the first occurence of slash dot dot slash
+      *            -1 if no such sequence is found
+      */
+    static int  searchSlashDotDotSlash(XMLCh* const srcPath);
+
+    //@}
+
+    /** @name Private static methods */
+    //@{
+
+    /**
+      * Indicates whether the memory manager was supplied by the user
+      * or not. Users own the memory manager, and if none is supplied,
+      * Xerces uses a default one that it owns and is responsible for
+      * deleting in Terminate().
+      */
+    static bool fgMemMgrAdopted;
+
+    //@}
+};
+
+
+MakeXMLException(XMLPlatformUtilsException, XMLUTIL_EXPORT)
+
+
+// ---------------------------------------------------------------------------
+//  XMLPlatformUtils: alignPointerForNewBlockAllocation
+// ---------------------------------------------------------------------------
+//  Calculate alignment required by platform for a new
+//	block allocation. We use this in our custom allocators
+//	to ensure that returned blocks are properly aligned.
+//  Note that, although this will take a pointer and return the position
+//  at which it should be placed for correct alignment, in our code
+//  we normally use size_t parameters to discover what the alignment
+//  of header blocks should be.  Thus, if this is to be
+//  used for the former purpose, to make compilers happy
+//  some casting will be necessary - neilg.
+//
+//  Note: XML_PLATFORM_NEW_BLOCK_ALIGNMENT may be specified on a
+//        per-architecture basis to dictate the alignment requirements
+//        of the architecture. In the absense of this specification,
+//        this routine guesses at the correct alignment value.
+//
+//        A XML_PLATFORM_NEW_BLOCK_ALIGNMENT value of zero is illegal.
+//        If a platform requires absolutely no alignment, a value
+//        of 1 should be specified ("align pointers on 1 byte boundaries").
+//
+inline size_t
+XMLPlatformUtils::alignPointerForNewBlockAllocation(size_t ptrSize)
+{
+	//	Macro XML_PLATFORM_NEW_BLOCK_ALIGNMENT may be defined
+	//	as needed to dictate alignment requirements on a
+	//	per-architecture basis. In the absense of that we
+	//	take an educated guess.
+	#ifdef XML_PLATFORM_NEW_BLOCK_ALIGNMENT
+		size_t alignment = XML_PLATFORM_NEW_BLOCK_ALIGNMENT;
+	#else
+		size_t alignment = (sizeof(void*) >= sizeof(double)) ? sizeof(void*) : sizeof(double);
+	#endif
+	
+	//	Calculate current alignment of pointer
+	size_t current = ptrSize % alignment;
+	
+	//	Adjust pointer alignment as needed
+	return (current == 0)
+		 ? ptrSize
+		 : (ptrSize + alignment - current);
+}
+
+
+
+// ---------------------------------------------------------------------------
+//  XMLDeleter: Public Destructor
+// ---------------------------------------------------------------------------
+inline XMLDeleter::~XMLDeleter()
+{
+}
+
+// ---------------------------------------------------------------------------
+//  XMLDeleter: Hidden constructors and operators
+// ---------------------------------------------------------------------------
+inline XMLDeleter::XMLDeleter()
+{
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/AutoSense.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/AutoSense.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/AutoSense.hpp	(revision 2674)
@@ -0,0 +1,198 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: AutoSense.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#ifndef AUTOSENSE_HPP
+#define AUTOSENSE_HPP
+
+// ---------------------------------------------------------------------------
+//  This section attempts to auto detect the operating system. It will set
+//  up XercesC specific defines that are used by the rest of the code.
+// ---------------------------------------------------------------------------
+#if defined(_AIX)
+    #define XML_AIX
+    #define XML_UNIX
+    #if defined(_AIXVERSION_430)
+        #define XML_AIX43  // for use of POSIX compliant pthread functions
+    #endif
+#elif defined(_SEQUENT_)
+    #define XML_PTX
+    #define XML_UNIX
+#elif defined(_HP_UX) || defined(__hpux) || defined(_HPUX_SOURCE)
+    #define XML_HPUX
+    #define XML_UNIX
+#elif defined(SOLARIS) || defined(__SVR4)
+    #define XML_SOLARIS
+    #define XML_UNIX
+#elif defined(_SCO_DS)
+    #define XML_OPENSERVER
+    #define XML_UNIX
+#elif defined(__UNIXWARE__) || defined(__USLC__)
+    #define XML_UNIXWARE
+    #define XML_UNIX
+#elif defined(__BEOS__)
+    #define XML_BEOS
+    #define XML_UNIX
+#elif defined(__QNXNTO__)
+    #define XML_QNX
+    #define XML_UNIX
+#elif defined(__linux__)
+    #define XML_LINUX
+    #define XML_UNIX
+    #if defined(__s390__)
+        #define XML_LINUX_390
+    #endif
+#elif defined(__FreeBSD__)
+    #define XML_FREEBSD
+    #define XML_UNIX
+#elif defined(IRIX) || defined(__sgi)
+    #define XML_IRIX
+    #define XML_UNIX
+#elif defined(__MVS__)
+    #define XML_OS390
+    #define XML_UNIX
+#elif defined(EXM_OS390)
+    #define XML_OS390
+    #define XML_UNIX
+#elif defined(__OS400__)
+    #define XML_AS400
+    #define XML_UNIX
+#elif defined(__OS2__)
+    #define XML_OS2
+#elif defined(__TANDEM)
+    #define XML_TANDEM
+    #define XML_UNIX
+    #define XML_CSET
+#elif defined(__CYGWIN__)
+    #define XML_CYGWIN
+    #ifndef WIN32
+      #define WIN32
+    #endif
+#elif defined(_WIN32) || defined(WIN32)
+    #define XML_WIN32
+    #ifndef WIN32
+      #define WIN32
+    #endif
+#elif defined(__WINDOWS__)
+
+    // IBM VisualAge special handling
+    #if defined(__32BIT__)
+        #define XML_WIN32
+    #else
+        #define XML_WIN16
+    #endif
+#elif defined(__MSDXML__)
+    #define XML_DOS
+
+#elif defined(macintosh) || (defined(__APPLE__) && defined(__MACH__))
+    #define XML_MACOS
+#elif defined(__alpha) && defined(__osf__)
+    #define XML_TRU64
+#elif defined(__NetBSD__)
+    #define XML_NETBSD
+#elif defined(__INTERIX)
+    #define XML_INTERIX
+    #define XML_UNIX
+#else
+    #error Code requires port to host OS!
+#endif
+
+
+// ---------------------------------------------------------------------------
+//  This section attempts to autodetect the compiler being used. It will set
+//  up Xerces specific defines that can be used by the rest of the code.
+// ---------------------------------------------------------------------------
+#if defined(__BORLANDC__)
+    #define XML_BORLAND
+#elif defined(_MSC_VER)
+    #define XML_VISUALCPP
+#elif defined(XML_SOLARIS)
+    #if defined(__SUNPRO_CC) && (__SUNPRO_CC >=0x500)
+        #define XML_SUNCC5
+	#elif defined(__SUNPRO_CC) && (__SUNPRO_CC <0x500)
+        #define XML_SUNCC
+    #elif defined(_EDG_RUNTIME_USES_NAMESPACES)
+        #define XML_SOLARIS_KAICC
+    #elif defined(__GNUG__)
+		#define XML_GCC
+    #else
+        #error Code requires port to current development environment
+    #endif
+#elif defined (__QNXNTO__)
+    #define XML_QCC
+#elif defined(__IBMC__) || defined(__IBMCPP__)
+    #if defined(XML_WIN32)
+        #define XML_IBMVAW32
+    #elif defined(XML_OS2)
+        #define XML_IBMVAOS2
+        #if (__IBMC__ >= 400 || __IBMCPP__ >= 400)
+            #define XML_IBMVA4_OS2
+        #endif
+    #elif defined(XML_AIX) || defined(__linux__)
+        #define XML_CSET              
+    #elif defined(__MVS__) && defined(__cplusplus)
+        #define XML_MVSCPP
+    #elif defined(EXM_OS390) && defined(__cplusplus)
+        #define XML_MVSCPP
+    #endif
+#elif defined (__GNUG__) || defined(__BEOS__) || defined(__linux__) || defined(__CYGWIN__)
+    #define XML_GCC
+#elif defined(XML_HPUX)
+    #if defined(EXM_HPUX)
+        #define XML_HPUX_KAICC
+    #elif (__cplusplus == 1)
+        #define XML_HPUX_CC
+    #elif (__cplusplus == 199707 || __cplusplus == 199711)
+        #define XML_HPUX_aCC
+    #endif
+#elif defined(XML_IRIX)
+    #define XML_MIPSPRO_CC
+#elif defined(XML_PTX)
+    #define XML_PTX_CC
+#elif defined(XML_TANDEM)
+    #define XML_TANDEMCC
+#elif defined(__MVS__) && defined(__cplusplus)
+    #define XML_MVSCPP
+#elif defined(EXM_OS390) && defined(__cplusplus)
+    #define XML_MVSCPP
+#elif defined(XML_TRU64) && defined(__DECCXX)
+    #define XML_DECCXX
+#elif defined(__MWERKS__)
+    #define XML_METROWERKS
+#elif defined(__OS400__)
+#elif defined(XML_UNIXWARE)
+    #define XML_SCOCC
+#else
+    #error Code requires port to current development environment
+#endif
+
+// ---------------------------------------------------------------------------
+//  The gcc compiler 2.95... is generating an internal error for some template
+//  definitions. So, if we are compiling with gcc, have a specific define that
+//  we can later use in the code.
+// ---------------------------------------------------------------------------
+#if defined(__GNUC__)
+#define XML_GCC_VERSION (__GNUC__ * 10000 \
+                         + __GNUC_MINOR__ * 100 \
+                         + __GNUC_PATCHLEVEL__)
+#endif
+
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/XMLDeleterFor.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/XMLDeleterFor.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/XMLDeleterFor.hpp	(revision 2674)
@@ -0,0 +1,75 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: XMLDeleterFor.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+#if !defined(XMLDELETERFOR_HPP)
+#define XMLDELETERFOR_HPP
+
+#include <xercesc/util/XercesDefs.hpp>
+#include <xercesc/util/PlatformUtils.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+//
+//  For internal use only.
+//
+//  This class is used by the platform utilities class to support cleanup
+//  of global/static data which is lazily created. Since that data is
+//  widely spread out, and in higher level DLLs, the platform utilities
+//  class cannot know about them directly. So, the code that creates such
+//  objects creates an registers a deleter for the object. The platform
+//  termination call will iterate the list and delete the objects.
+//
+template <class T> class XMLDeleterFor : public XMLDeleter
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+    XMLDeleterFor(T* const toDelete);
+    ~XMLDeleterFor();
+
+
+private :
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    XMLDeleterFor();
+    XMLDeleterFor(const XMLDeleterFor<T>&);
+    XMLDeleterFor<T>& operator=(const XMLDeleterFor<T>&);
+
+
+    // -----------------------------------------------------------------------
+    //  Private data members
+    //
+    //  fToDelete
+    //      This is a pointer to the data to destroy
+    // -----------------------------------------------------------------------
+    T*  fToDelete;
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#if !defined(XERCES_TMPLSINC)
+#include <xercesc/util/XMLDeleterFor.c>
+#endif
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/XMLUni.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/XMLUni.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/XMLUni.hpp	(revision 2674)
@@ -0,0 +1,310 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: XMLUni.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+// ---------------------------------------------------------------------------
+//  This file contains the grunt work constants for Unicode characters and
+//  common Unicode constant strings. These cannot be created normally because
+//  we have to compile on systems that cannot do the L"" style prefix. So
+//  they must be created as constant values for Unicode code points and the
+//  strings built up as arrays of those constants.
+// ---------------------------------------------------------------------------
+
+#if !defined(XMLUNI_HPP)
+#define XMLUNI_HPP
+
+#include <xercesc/util/XercesDefs.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class XMLUTIL_EXPORT XMLUni
+{
+public :
+    // -----------------------------------------------------------------------
+    //  These are constant strings that are common in XML data. Because
+    //  of the limitation of the compilers we have to work with, these are
+    //  done as arrays of XMLCh characters, not as constant strings.
+    // -----------------------------------------------------------------------
+    static const XMLCh fgAnyString[];
+    static const XMLCh fgAttListString[];
+    static const XMLCh fgCommentString[];
+    static const XMLCh fgCDATAString[];
+    static const XMLCh fgDefaultString[];
+    static const XMLCh fgDocTypeString[];
+    static const XMLCh fgEBCDICEncodingString[];
+    static const XMLCh fgElemString[];
+    static const XMLCh fgEmptyString[];
+    static const XMLCh fgEncodingString[];
+    static const XMLCh fgEntitString[];
+    static const XMLCh fgEntityString[];
+    static const XMLCh fgEntitiesString[];
+    static const XMLCh fgEnumerationString[];
+    static const XMLCh fgExceptDomain[];
+    static const XMLCh fgFixedString[];
+    static const XMLCh fgIBM037EncodingString[];
+    static const XMLCh fgIBM037EncodingString2[];
+    static const XMLCh fgIBM1047EncodingString[];
+    static const XMLCh fgIBM1047EncodingString2[];
+    static const XMLCh fgIBM1140EncodingString[];
+    static const XMLCh fgIBM1140EncodingString2[];
+    static const XMLCh fgIBM1140EncodingString3[];
+    static const XMLCh fgIBM1140EncodingString4[];
+    static const XMLCh fgIESString[];
+    static const XMLCh fgIDString[];
+    static const XMLCh fgIDRefString[];
+    static const XMLCh fgIDRefsString[];
+    static const XMLCh fgImpliedString[];
+    static const XMLCh fgIgnoreString[];
+    static const XMLCh fgIncludeString[];
+    static const XMLCh fgISO88591EncodingString[];
+    static const XMLCh fgISO88591EncodingString2[];
+    static const XMLCh fgISO88591EncodingString3[];
+    static const XMLCh fgISO88591EncodingString4[];
+    static const XMLCh fgISO88591EncodingString5[];
+    static const XMLCh fgISO88591EncodingString6[];
+    static const XMLCh fgISO88591EncodingString7[];
+    static const XMLCh fgISO88591EncodingString8[];
+    static const XMLCh fgISO88591EncodingString9[];
+    static const XMLCh fgISO88591EncodingString10[];
+    static const XMLCh fgISO88591EncodingString11[];
+    static const XMLCh fgISO88591EncodingString12[];
+    static const XMLCh fgLocalHostString[];
+    static const XMLCh fgNoString[];
+    static const XMLCh fgNotationString[];
+    static const XMLCh fgNDATAString[];
+    static const XMLCh fgNmTokenString[];
+    static const XMLCh fgNmTokensString[];
+    static const XMLCh fgPCDATAString[];
+    static const XMLCh fgPIString[];
+    static const XMLCh fgPubIDString[];
+    static const XMLCh fgRefString[];
+    static const XMLCh fgRequiredString[];
+    static const XMLCh fgStandaloneString[];
+    static const XMLCh fgVersion1_0[];
+    static const XMLCh fgVersion1_1[];
+    static const XMLCh fgSysIDString[];
+    static const XMLCh fgUnknownURIName[];
+    static const XMLCh fgUCS4EncodingString[];
+    static const XMLCh fgUCS4EncodingString2[];
+    static const XMLCh fgUCS4EncodingString3[];
+    static const XMLCh fgUCS4EncodingString4[];
+    static const XMLCh fgUCS4BEncodingString[];
+    static const XMLCh fgUCS4BEncodingString2[];
+    static const XMLCh fgUCS4LEncodingString[];
+    static const XMLCh fgUCS4LEncodingString2[];
+    static const XMLCh fgUSASCIIEncodingString[];
+    static const XMLCh fgUSASCIIEncodingString2[];
+    static const XMLCh fgUSASCIIEncodingString3[];
+    static const XMLCh fgUSASCIIEncodingString4[];
+    static const XMLCh fgUTF8EncodingString[];
+    static const XMLCh fgUTF8EncodingString2[];
+    static const XMLCh fgUTF16EncodingString[];
+    static const XMLCh fgUTF16EncodingString2[];
+    static const XMLCh fgUTF16EncodingString3[];
+    static const XMLCh fgUTF16EncodingString4[];
+    static const XMLCh fgUTF16EncodingString5[];
+    static const XMLCh fgUTF16EncodingString6[];
+    static const XMLCh fgUTF16EncodingString7[];
+    static const XMLCh fgUTF16BEncodingString[];
+    static const XMLCh fgUTF16BEncodingString2[];
+    static const XMLCh fgUTF16LEncodingString[];
+    static const XMLCh fgUTF16LEncodingString2[];
+    static const XMLCh fgVersionString[];
+    static const XMLCh fgValidityDomain[];
+    static const XMLCh fgWin1252EncodingString[];
+    static const XMLCh fgXMLChEncodingString[];
+    static const XMLCh fgXMLDOMMsgDomain[];
+    static const XMLCh fgXMLString[];
+    static const XMLCh fgXMLStringSpace[];
+    static const XMLCh fgXMLStringHTab[];
+    static const XMLCh fgXMLStringCR[];
+    static const XMLCh fgXMLStringLF[];
+    static const XMLCh fgXMLStringSpaceU[];
+    static const XMLCh fgXMLStringHTabU[];
+    static const XMLCh fgXMLStringCRU[];
+    static const XMLCh fgXMLStringLFU[];
+    static const XMLCh fgXMLDeclString[];
+    static const XMLCh fgXMLDeclStringSpace[];
+    static const XMLCh fgXMLDeclStringHTab[];
+    static const XMLCh fgXMLDeclStringLF[];
+    static const XMLCh fgXMLDeclStringCR[];
+    static const XMLCh fgXMLDeclStringSpaceU[];
+    static const XMLCh fgXMLDeclStringHTabU[];
+    static const XMLCh fgXMLDeclStringLFU[];
+    static const XMLCh fgXMLDeclStringCRU[];
+    static const XMLCh fgXMLNSString[];
+    static const XMLCh fgXMLNSColonString[];
+    static const XMLCh fgXMLNSURIName[];
+    static const XMLCh fgXMLErrDomain[];
+    static const XMLCh fgXMLURIName[];
+    static const XMLCh fgInfosetURIName[];
+    static const XMLCh fgYesString[];
+    static const XMLCh fgZeroLenString[];
+    static const XMLCh fgDTDEntityString[];
+    static const XMLCh fgAmp[];
+    static const XMLCh fgLT[];
+    static const XMLCh fgGT[];
+    static const XMLCh fgQuot[];
+    static const XMLCh fgApos[];
+    static const XMLCh fgWFXMLScanner[];
+    static const XMLCh fgIGXMLScanner[];
+    static const XMLCh fgSGXMLScanner[];
+    static const XMLCh fgDGXMLScanner[];
+    static const XMLCh fgXSAXMLScanner[];
+    static const XMLCh fgCDataStart[];
+    static const XMLCh fgCDataEnd[];
+
+    // Exception Name
+    static const XMLCh fgArrayIndexOutOfBoundsException_Name[];
+    static const XMLCh fgEmptyStackException_Name[];
+    static const XMLCh fgIllegalArgumentException_Name[];
+    static const XMLCh fgInvalidCastException_Name[];
+    static const XMLCh fgIOException_Name[];
+    static const XMLCh fgNoSuchElementException_Name[];
+    static const XMLCh fgNullPointerException_Name[];
+    static const XMLCh fgXMLPlatformUtilsException_Name[];
+    static const XMLCh fgRuntimeException_Name[];
+    static const XMLCh fgTranscodingException_Name[];
+    static const XMLCh fgUnexpectedEOFException_Name[];
+    static const XMLCh fgUnsupportedEncodingException_Name[];
+    static const XMLCh fgUTFDataFormatException_Name[];
+    static const XMLCh fgNetAccessorException_Name[];
+    static const XMLCh fgMalformedURLException_Name[];
+    static const XMLCh fgNumberFormatException_Name[];
+    static const XMLCh fgParseException_Name[];
+    static const XMLCh fgInvalidDatatypeFacetException_Name[];
+    static const XMLCh fgInvalidDatatypeValueException_Name[];
+    static const XMLCh fgSchemaDateTimeException_Name[];
+    static const XMLCh fgXPathException_Name[];
+    static const XMLCh fgXSerializationException_Name[];
+
+    // Numerical String
+    static const XMLCh fgNegINFString[];
+    static const XMLCh fgNegZeroString[];
+    static const XMLCh fgPosZeroString[];
+    static const XMLCh fgPosINFString[];
+    static const XMLCh fgNaNString[];
+    static const XMLCh fgEString[];
+    static const XMLCh fgZeroString[];
+    static const XMLCh fgNullString[];
+
+    // Xerces features/properties names
+    static const XMLCh fgXercesDynamic[];
+    static const XMLCh fgXercesSchema[];
+    static const XMLCh fgXercesSchemaFullChecking[];
+    static const XMLCh fgXercesIdentityConstraintChecking[];
+    static const XMLCh fgXercesSchemaExternalSchemaLocation[];
+    static const XMLCh fgXercesSchemaExternalNoNameSpaceSchemaLocation[];
+    static const XMLCh fgXercesSecurityManager[];
+    static const XMLCh fgXercesLoadExternalDTD[];
+    static const XMLCh fgXercesContinueAfterFatalError[];
+    static const XMLCh fgXercesValidationErrorAsFatal[];
+    static const XMLCh fgXercesUserAdoptsDOMDocument[];
+    static const XMLCh fgXercesCacheGrammarFromParse[];
+    static const XMLCh fgXercesUseCachedGrammarInParse[];
+    static const XMLCh fgXercesScannerName[];
+    static const XMLCh fgXercesParserUseDocumentFromImplementation[];
+    static const XMLCh fgXercesCalculateSrcOfs[];
+    static const XMLCh fgXercesStandardUriConformant[];
+    static const XMLCh fgXercesDOMHasPSVIInfo[];
+    static const XMLCh fgXercesGenerateSyntheticAnnotations[];
+    static const XMLCh fgXercesValidateAnnotations[];
+    static const XMLCh fgXercesIgnoreCachedDTD[];
+    static const XMLCh fgXercesIgnoreAnnotations[];
+    static const XMLCh fgXercesDisableDefaultEntityResolution[];
+    static const XMLCh fgXercesSkipDTDValidation[];
+
+
+    // SAX2 features/properties names
+    static const XMLCh fgSAX2CoreValidation[];
+    static const XMLCh fgSAX2CoreNameSpaces[];
+    static const XMLCh fgSAX2CoreNameSpacePrefixes[];
+
+    // Introduced in DOM Level 3
+    // DOMBuilder features
+    static const XMLCh fgDOMCanonicalForm[];
+    static const XMLCh fgDOMCDATASections[];
+    static const XMLCh fgDOMComments[];
+    static const XMLCh fgDOMCharsetOverridesXMLEncoding[];
+    static const XMLCh fgDOMDatatypeNormalization[];
+    static const XMLCh fgDOMEntities[];
+    static const XMLCh fgDOMInfoset[];
+    static const XMLCh fgDOMNamespaces[];
+    static const XMLCh fgDOMNamespaceDeclarations[];
+    static const XMLCh fgDOMSupportedMediatypesOnly[];
+    static const XMLCh fgDOMValidateIfSchema[];
+    static const XMLCh fgDOMValidation[];
+    static const XMLCh fgDOMWhitespaceInElementContent[];
+
+    // Introduced in DOM Level 3
+    // DOMWriter feature
+    static const XMLCh fgDOMWRTCanonicalForm[];
+    static const XMLCh fgDOMWRTDiscardDefaultContent[];
+    static const XMLCh fgDOMWRTEntities[];
+    static const XMLCh fgDOMWRTFormatPrettyPrint[];
+    static const XMLCh fgDOMWRTNormalizeCharacters[];
+    static const XMLCh fgDOMWRTSplitCdataSections[];
+    static const XMLCh fgDOMWRTValidation[];
+    static const XMLCh fgDOMWRTWhitespaceInElementContent[];
+    static const XMLCh fgDOMWRTBOM[];
+    static const XMLCh fgDOMXMLDeclaration[];
+
+    // Private interface names
+    static const XMLCh fgXercescInterfacePSVITypeInfo[];
+    static const XMLCh fgXercescInterfaceDOMDocumentTypeImpl[];
+
+    // Locale
+    static const char  fgXercescDefaultLocale[];
+
+    // Default Exception String
+    static const XMLCh  fgDefErrMsg[];
+
+    // Datatype
+    static const XMLCh fgValueZero[];
+    static const XMLCh fgNegOne[];
+    static const XMLCh fgValueOne[];
+    static const XMLCh fgLongMaxInc[];
+    static const XMLCh fgLongMinInc[];
+    static const XMLCh fgIntMaxInc[];
+    static const XMLCh fgIntMinInc[];
+    static const XMLCh fgShortMaxInc[];
+    static const XMLCh fgShortMinInc[];
+    static const XMLCh fgByteMaxInc[];
+    static const XMLCh fgByteMinInc[];
+    static const XMLCh fgULongMaxInc[];
+    static const XMLCh fgUIntMaxInc[];
+    static const XMLCh fgUShortMaxInc[];
+    static const XMLCh fgUByteMaxInc[];
+    static const XMLCh fgLangPattern[];
+
+    static const XMLCh fgBooleanValueSpace[][8];
+    static const unsigned int fgBooleanValueSpaceArraySize;
+        
+private:
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    XMLUni();
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/RefHashTableOf.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/RefHashTableOf.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/RefHashTableOf.hpp	(revision 2674)
@@ -0,0 +1,262 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: RefHashTableOf.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+#if !defined(REFHASHTABLEOF_HPP)
+#define REFHASHTABLEOF_HPP
+
+
+#include <xercesc/util/HashBase.hpp>
+#include <xercesc/util/IllegalArgumentException.hpp>
+#include <xercesc/util/NoSuchElementException.hpp>
+#include <xercesc/util/RuntimeException.hpp>
+#include <xercesc/util/XMLString.hpp>
+#include <xercesc/util/HashXMLCh.hpp>
+#include <xercesc/util/PlatformUtils.hpp>
+#include <xercesc/framework/MemoryManager.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+//
+//  Forward declare the enumerator so he can be our friend. Can you say
+//  friend? Sure...
+//
+template <class TVal> class RefHashTableOfEnumerator;
+template <class TVal> struct RefHashTableBucketElem;
+
+
+//
+//  This should really be a nested class, but some of the compilers we
+//  have to support cannot deal with that!
+//
+template <class TVal> struct RefHashTableBucketElem
+{
+    RefHashTableBucketElem(void* key, TVal* const value, RefHashTableBucketElem<TVal>* next)
+		: fData(value), fNext(next), fKey(key)
+        {
+        }
+
+    RefHashTableBucketElem(){};
+    ~RefHashTableBucketElem(){};
+
+    TVal*                           fData;
+    RefHashTableBucketElem<TVal>*   fNext;
+	void*							fKey;
+
+private:
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    RefHashTableBucketElem(const RefHashTableBucketElem<TVal>&);
+    RefHashTableBucketElem<TVal>& operator=(const RefHashTableBucketElem<TVal>&);
+};
+
+
+template <class TVal> class RefHashTableOf : public XMemory
+{
+public:
+    // -----------------------------------------------------------------------
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+	// backwards compatability - default hasher is HashXMLCh
+    RefHashTableOf
+    (
+        const unsigned int modulus
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+	// backwards compatability - default hasher is HashXMLCh
+    RefHashTableOf
+    (
+        const unsigned int modulus
+        , const bool adoptElems
+        , MemoryManager* const manager =  XMLPlatformUtils::fgMemoryManager
+    );
+	// if a hash function is passed in, it will be deleted when the hashtable is deleted.
+	// use a new instance of the hasher class for each hashtable, otherwise one hashtable
+	// may delete the hasher of a different hashtable if both use the same hasher.
+    RefHashTableOf
+    (
+        const unsigned int modulus
+        , const bool adoptElems
+        , HashBase* hashBase
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+    ~RefHashTableOf();
+
+
+    // -----------------------------------------------------------------------
+    //  Element management
+    // -----------------------------------------------------------------------
+    bool isEmpty() const;
+    bool containsKey(const void* const key) const;
+    void removeKey(const void* const key);
+    void removeAll();
+    void cleanup();
+    void reinitialize(HashBase* hashBase);
+    void transferElement(const void* const key1, void* key2);
+    TVal* orphanKey(const void* const key);
+
+    // -----------------------------------------------------------------------
+    //  Getters
+    // -----------------------------------------------------------------------
+    TVal* get(const void* const key);
+    const TVal* get(const void* const key) const;
+    MemoryManager* getMemoryManager() const;   
+    unsigned int   getHashModulus()   const;
+    unsigned int   getCount() const;
+
+    // -----------------------------------------------------------------------
+    //  Setters
+    // -----------------------------------------------------------------------
+    void setAdoptElements(const bool aValue);
+
+
+    // -----------------------------------------------------------------------
+    //  Putters
+    // -----------------------------------------------------------------------
+	void put(void* key, TVal* const valueToAdopt);
+
+
+private :
+    // -----------------------------------------------------------------------
+    //  Declare our friends
+    // -----------------------------------------------------------------------
+    friend class RefHashTableOfEnumerator<TVal>;
+
+private:
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    RefHashTableOf(const RefHashTableOf<TVal>&);
+    RefHashTableOf<TVal>& operator=(const RefHashTableOf<TVal>&);
+
+    // -----------------------------------------------------------------------
+    //  Private methods
+    // -----------------------------------------------------------------------
+    RefHashTableBucketElem<TVal>* findBucketElem(const void* const key, unsigned int& hashVal);
+    const RefHashTableBucketElem<TVal>* findBucketElem(const void* const key, unsigned int& hashVal) const;
+    void initialize(const unsigned int modulus);
+    void rehash();
+
+
+    // -----------------------------------------------------------------------
+    //  Data members
+    //
+    //  fAdoptedElems
+    //      Indicates whether the values added are adopted or just referenced.
+    //      If adopted, then they are deleted when they are removed from the
+    //      hash table.
+    //
+    //  fBucketList
+    //      This is the array that contains the heads of all of the list
+    //      buckets, one for each possible hash value.
+    //
+    //  fHashModulus
+    //      The modulus used for this hash table, to hash the keys. This is
+    //      also the number of elements in the bucket list.
+    //
+    //  fHash
+    //      The hasher for the key data type.
+    // -----------------------------------------------------------------------
+    MemoryManager*                 fMemoryManager;
+    bool                           fAdoptedElems;
+    RefHashTableBucketElem<TVal>** fBucketList;
+    unsigned int                   fHashModulus;
+    unsigned int                   fInitialModulus;
+    unsigned int                   fCount;
+    HashBase*                      fHash;
+};
+
+
+
+//
+//  An enumerator for a value array. It derives from the basic enumerator
+//  class, so that value vectors can be generically enumerated.
+//
+template <class TVal> class RefHashTableOfEnumerator : public XMLEnumerator<TVal>, public XMemory
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+    RefHashTableOfEnumerator(RefHashTableOf<TVal>* const toEnum
+        , const bool adopt = false
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+    virtual ~RefHashTableOfEnumerator();
+
+    RefHashTableOfEnumerator(const RefHashTableOfEnumerator<TVal>&);
+    // -----------------------------------------------------------------------
+    //  Enum interface
+    // -----------------------------------------------------------------------
+    bool hasMoreElements() const;
+    TVal& nextElement();
+    void Reset();
+
+    // -----------------------------------------------------------------------
+    //  New interface specific for key used in RefHashable
+    // -----------------------------------------------------------------------
+    void* nextElementKey();
+
+private :
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    RefHashTableOfEnumerator<TVal>& operator=(const RefHashTableOfEnumerator<TVal>&);
+
+    // -----------------------------------------------------------------------
+    //  Private methods
+    // -----------------------------------------------------------------------
+    void findNext();
+
+
+    // -----------------------------------------------------------------------
+    //  Data Members
+    //
+    //  fAdopted
+    //      Indicates whether we have adopted the passed vector. If so then
+    //      we delete the vector when we are destroyed.
+    //
+    //  fCurElem
+    //      This is the current bucket bucket element that we are on.
+    //
+    //  fCurHash
+    //      The is the current hash buck that we are working on. Once we hit
+    //      the end of the bucket that fCurElem is in, then we have to start
+    //      working this one up to the next non-empty bucket.
+    //
+    //  fToEnum
+    //      The value array being enumerated.
+    // -----------------------------------------------------------------------
+    bool                                  fAdopted;
+    RefHashTableBucketElem<TVal>*         fCurElem;
+    unsigned int                          fCurHash;
+    RefHashTableOf<TVal>*                 fToEnum;
+    MemoryManager* const                  fMemoryManager;
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#if !defined(XERCES_TMPLSINC)
+#include <xercesc/util/RefHashTableOf.c>
+#endif
+
+#endif
+
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/XMLWin1252Transcoder.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/XMLWin1252Transcoder.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/XMLWin1252Transcoder.hpp	(revision 2674)
@@ -0,0 +1,59 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef XMLWIN1252TRANSCODER_HPP
+#define XMLWIN1252TRANSCODER_HPP
+
+#include <xercesc/util/XercesDefs.hpp>
+#include <xercesc/util/XML256TableTranscoder.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+
+//
+//  This class provides an implementation of the XMLTranscoder interface
+//  for the Windows variant of Latin1, called Windows-1252. Its close to
+//  Latin1, but is somewhat different.
+//
+class XMLUTIL_EXPORT XMLWin1252Transcoder : public XML256TableTranscoder
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Public constructors and destructor
+    // -----------------------------------------------------------------------
+    XMLWin1252Transcoder
+    (
+        const   XMLCh* const    encodingName
+        , const unsigned int    blockSize
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    virtual ~XMLWin1252Transcoder();
+
+
+private :
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    XMLWin1252Transcoder();
+    XMLWin1252Transcoder(const XMLWin1252Transcoder&);
+    XMLWin1252Transcoder& operator=(const XMLWin1252Transcoder&);
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/XMLUniDefs.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/XMLUniDefs.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/XMLUniDefs.hpp	(revision 2674)
@@ -0,0 +1,153 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: XMLUniDefs.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+#if !defined(XMLUNIDEFS_HPP)
+#define XMLUNIDEFS_HPP
+
+#include <xercesc/util/XercesDefs.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+// ---------------------------------------------------------------------------
+//  Constants for the Unicode characters of interest to us in an XML parser
+//  We don't put these inside the class because then they could not be const
+//  inline values, which would have significant performance ramifications.
+//
+//  We cannot use a namespace because of the requirement to support old
+//  compilers.
+// ---------------------------------------------------------------------------
+const XMLCh chNull                  = 0x00;
+const XMLCh chHTab                  = 0x09;
+const XMLCh chLF                    = 0x0A;
+const XMLCh chVTab                  = 0x0B;
+const XMLCh chFF                    = 0x0C;
+const XMLCh chCR                    = 0x0D;
+const XMLCh chAmpersand             = 0x26;
+const XMLCh chAsterisk              = 0x2A;
+const XMLCh chAt                    = 0x40;
+const XMLCh chBackSlash             = 0x5C;
+const XMLCh chBang                  = 0x21;
+const XMLCh chCaret                 = 0x5E;
+const XMLCh chCloseAngle            = 0x3E;
+const XMLCh chCloseCurly            = 0x7D;
+const XMLCh chCloseParen            = 0x29;
+const XMLCh chCloseSquare           = 0x5D;
+const XMLCh chColon                 = 0x3A;
+const XMLCh chComma                 = 0x2C;
+const XMLCh chDash                  = 0x2D;
+const XMLCh chDollarSign            = 0x24;
+const XMLCh chDoubleQuote           = 0x22;
+const XMLCh chEqual                 = 0x3D;
+const XMLCh chForwardSlash          = 0x2F;
+const XMLCh chGrave                 = 0x60;
+const XMLCh chNEL                   = 0x85;
+const XMLCh chOpenAngle             = 0x3C;
+const XMLCh chOpenCurly             = 0x7B;
+const XMLCh chOpenParen             = 0x28;
+const XMLCh chOpenSquare            = 0x5B;
+const XMLCh chPercent               = 0x25;
+const XMLCh chPeriod                = 0x2E;
+const XMLCh chPipe                  = 0x7C;
+const XMLCh chPlus                  = 0x2B;
+const XMLCh chPound                 = 0x23;
+const XMLCh chQuestion              = 0x3F;
+const XMLCh chSingleQuote           = 0x27;
+const XMLCh chSpace                 = 0x20;
+const XMLCh chSemiColon             = 0x3B;
+const XMLCh chTilde                 = 0x7E;
+const XMLCh chUnderscore            = 0x5F;
+
+const XMLCh chSwappedUnicodeMarker  = XMLCh(0xFFFE);
+const XMLCh chUnicodeMarker         = XMLCh(0xFEFF);
+
+const XMLCh chDigit_0               = 0x30;
+const XMLCh chDigit_1               = 0x31;
+const XMLCh chDigit_2               = 0x32;
+const XMLCh chDigit_3               = 0x33;
+const XMLCh chDigit_4               = 0x34;
+const XMLCh chDigit_5               = 0x35;
+const XMLCh chDigit_6               = 0x36;
+const XMLCh chDigit_7               = 0x37;
+const XMLCh chDigit_8               = 0x38;
+const XMLCh chDigit_9               = 0x39;
+
+const XMLCh chLatin_A               = 0x41;
+const XMLCh chLatin_B               = 0x42;
+const XMLCh chLatin_C               = 0x43;
+const XMLCh chLatin_D               = 0x44;
+const XMLCh chLatin_E               = 0x45;
+const XMLCh chLatin_F               = 0x46;
+const XMLCh chLatin_G               = 0x47;
+const XMLCh chLatin_H               = 0x48;
+const XMLCh chLatin_I               = 0x49;
+const XMLCh chLatin_J               = 0x4A;
+const XMLCh chLatin_K               = 0x4B;
+const XMLCh chLatin_L               = 0x4C;
+const XMLCh chLatin_M               = 0x4D;
+const XMLCh chLatin_N               = 0x4E;
+const XMLCh chLatin_O               = 0x4F;
+const XMLCh chLatin_P               = 0x50;
+const XMLCh chLatin_Q               = 0x51;
+const XMLCh chLatin_R               = 0x52;
+const XMLCh chLatin_S               = 0x53;
+const XMLCh chLatin_T               = 0x54;
+const XMLCh chLatin_U               = 0x55;
+const XMLCh chLatin_V               = 0x56;
+const XMLCh chLatin_W               = 0x57;
+const XMLCh chLatin_X               = 0x58;
+const XMLCh chLatin_Y               = 0x59;
+const XMLCh chLatin_Z               = 0x5A;
+
+const XMLCh chLatin_a               = 0x61;
+const XMLCh chLatin_b               = 0x62;
+const XMLCh chLatin_c               = 0x63;
+const XMLCh chLatin_d               = 0x64;
+const XMLCh chLatin_e               = 0x65;
+const XMLCh chLatin_f               = 0x66;
+const XMLCh chLatin_g               = 0x67;
+const XMLCh chLatin_h               = 0x68;
+const XMLCh chLatin_i               = 0x69;
+const XMLCh chLatin_j               = 0x6A;
+const XMLCh chLatin_k               = 0x6B;
+const XMLCh chLatin_l               = 0x6C;
+const XMLCh chLatin_m               = 0x6D;
+const XMLCh chLatin_n               = 0x6E;
+const XMLCh chLatin_o               = 0x6F;
+const XMLCh chLatin_p               = 0x70;
+const XMLCh chLatin_q               = 0x71;
+const XMLCh chLatin_r               = 0x72;
+const XMLCh chLatin_s               = 0x73;
+const XMLCh chLatin_t               = 0x74;
+const XMLCh chLatin_u               = 0x75;
+const XMLCh chLatin_v               = 0x76;
+const XMLCh chLatin_w               = 0x77;
+const XMLCh chLatin_x               = 0x78;
+const XMLCh chLatin_y               = 0x79;
+const XMLCh chLatin_z               = 0x7A;
+
+const XMLCh chYenSign               = 0xA5;
+const XMLCh chWonSign               = 0x20A9;
+
+const XMLCh chLineSeparator         = 0x2028;
+const XMLCh chParagraphSeparator    = 0x2029;
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/RefVectorOf.c
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/RefVectorOf.c	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/RefVectorOf.c	(revision 2674)
@@ -0,0 +1,54 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: RefVectorOf.c 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+// ---------------------------------------------------------------------------
+//  Includes
+// ---------------------------------------------------------------------------
+#if defined(XERCES_TMPLSINC)
+#include <xercesc/util/RefVectorOf.hpp>
+#endif
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+// ---------------------------------------------------------------------------
+//  RefVectorOf: Constructors and Destructor
+// ---------------------------------------------------------------------------
+template <class TElem>
+RefVectorOf<TElem>::RefVectorOf(const unsigned int maxElems,
+                                const bool adoptElems,
+                                MemoryManager* const manager)
+    : BaseRefVectorOf<TElem>(maxElems, adoptElems, manager)
+{
+}
+
+template <class TElem> RefVectorOf<TElem>::~RefVectorOf()
+{
+    if (this->fAdoptedElems)
+    {
+       for (unsigned int index = 0; index < this->fCurCount; index++)
+        delete this->fElemList[index];
+    }
+    this->fMemoryManager->deallocate(this->fElemList);//delete [] this->fElemList;
+}
+
+
+XERCES_CPP_NAMESPACE_END
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/XMLEBCDICTranscoder.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/XMLEBCDICTranscoder.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/XMLEBCDICTranscoder.hpp	(revision 2674)
@@ -0,0 +1,69 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef XMLEBCDICTRANSCODER_HPP
+#define XMLEBCDICTRANSCODER_HPP
+
+#include <xercesc/util/XercesDefs.hpp>
+#include <xercesc/util/XML256TableTranscoder.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+//
+//  This class provides an implementation of the XMLTranscoder interface
+//  for a simple EBCDIC-US transcoder. The parser does some encodings
+//  intrinsically without depending upon external transcoding services.
+//  To make everything more orthagonal, we implement these internal
+//  transcoders using the same transcoder abstraction as the pluggable
+//  transcoding services do.
+//
+//  EBCDIC-US is the same as IBM037, CP37, EBCDIC-CP-US, etc...
+//
+class XMLUTIL_EXPORT XMLEBCDICTranscoder : public XML256TableTranscoder
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Public, static methods
+    // -----------------------------------------------------------------------
+    static XMLCh xlatThisOne(const XMLByte toXlat);
+
+
+    // -----------------------------------------------------------------------
+    //  Public constructors and destructor
+    // -----------------------------------------------------------------------
+    XMLEBCDICTranscoder
+    (
+        const   XMLCh* const    encodingName
+        , const unsigned int    blockSize
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    virtual ~XMLEBCDICTranscoder();
+
+
+private :
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    XMLEBCDICTranscoder();
+    XMLEBCDICTranscoder(const XMLEBCDICTranscoder&);
+    XMLEBCDICTranscoder& operator=(const XMLEBCDICTranscoder&);
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/NumberFormatException.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/NumberFormatException.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/NumberFormatException.hpp	(revision 2674)
@@ -0,0 +1,35 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: NumberFormatException.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+#if !defined(NUMBERFORMATEXCEPTION_HPP)
+#define NUMBERFORMATEXCEPTION_HPP
+
+#include <xercesc/util/XercesDefs.hpp>
+#include <xercesc/util/XMLException.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+MakeXMLException(NumberFormatException, XMLUTIL_EXPORT)
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/XMLUri.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/XMLUri.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/XMLUri.hpp	(revision 2674)
@@ -0,0 +1,661 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: XMLUri.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(XMLURI_HPP)
+#define XMLURI_HPP
+
+#include <xercesc/util/XMemory.hpp>
+#include <xercesc/util/XMLString.hpp>
+
+#include <xercesc/internal/XSerializable.hpp>
+#include <xercesc/framework/XMLBuffer.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+/*
+ * This class is a direct port of Java's URI class, to distinguish
+ * itself from the XMLURL, we use the name XMLUri instead of
+ * XMLURI.
+ *
+ * TODO: how to relate XMLUri and XMLURL since URL is part of URI.
+ *
+ */
+
+class XMLUTIL_EXPORT XMLUri : public XSerializable, public XMemory
+{
+public:
+
+    // -----------------------------------------------------------------------
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+
+    /**
+     * Construct a new URI from a URI specification string.
+     *
+     * If the specification follows the "generic URI" syntax, (two slashes
+     * following the first colon), the specification will be parsed
+     * accordingly - setting the
+     *                           scheme,
+     *                           userinfo,
+     *                           host,
+     *                           port,
+     *                           path,
+     *                           querystring and
+     *                           fragment
+     * fields as necessary.
+     *
+     * If the specification does not follow the "generic URI" syntax,
+     * the specification is parsed into a
+     *                           scheme and
+     *                           scheme-specific part (stored as the path) only.
+     *
+     * @param uriSpec the URI specification string (cannot be null or empty)
+     *
+     * @param manager Pointer to the memory manager to be used to
+     *                allocate objects.
+     *
+     * ctor# 2
+     *
+     */
+    XMLUri(const XMLCh* const    uriSpec,
+           MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+
+    /**
+     * Construct a new URI from a base URI and a URI specification string.
+     * The URI specification string may be a relative URI.
+     *
+     * @param baseURI the base URI (cannot be null if uriSpec is null or
+     *                empty)
+     *
+     * @param uriSpec the URI specification string (cannot be null or
+     *                empty if base is null)
+     *
+     * @param manager Pointer to the memory manager to be used to
+     *                allocate objects.
+     *
+     * ctor# 7 relative ctor
+     *
+     */
+    XMLUri(const XMLUri* const  baseURI
+         , const XMLCh* const   uriSpec
+         , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+
+    /**
+     * Copy constructor
+     */
+    XMLUri(const XMLUri& toCopy);
+    XMLUri& operator=(const XMLUri& toAssign);
+
+    virtual ~XMLUri();
+
+    // -----------------------------------------------------------------------
+    //  Getter methods
+    // -----------------------------------------------------------------------
+    /**
+     * Get the URI as a string specification. See RFC 2396 Section 5.2.
+     *
+     * @return the URI string specification
+     */
+    const XMLCh* getUriText() const;
+
+    /**
+     * Get the scheme for this URI.
+     *
+     * @return the scheme for this URI
+     */
+     const XMLCh* getScheme() const;
+
+    /**
+     * Get the userinfo for this URI.
+     *
+     * @return the userinfo for this URI (null if not specified).
+     */
+     const XMLCh* getUserInfo() const;
+
+
+    /**
+     * Get the host for this URI.
+     *
+     * @return the host for this URI (null if not specified).
+     */
+     const XMLCh* getHost() const;
+
+    /**
+     * Get the port for this URI.
+     *
+     * @return the port for this URI (-1 if not specified).
+     */
+     int getPort() const;
+     
+    /**
+     * Get the registry based authority for this URI.
+     * 
+     * @return the registry based authority (null if not specified).
+     */
+     const XMLCh* getRegBasedAuthority() const;
+
+    /**
+     * Get the path for this URI. Note that the value returned is the path
+     * only and does not include the query string or fragment.
+     *
+     * @return the path for this URI.
+     */
+     const XMLCh* getPath() const;
+
+    /**
+     * Get the query string for this URI.
+     *
+     * @return the query string for this URI. Null is returned if there
+     *         was no "?" in the URI spec, empty string if there was a
+     *         "?" but no query string following it.
+     */
+     const XMLCh* getQueryString() const;
+
+    /**
+     * Get the fragment for this URI.
+     *
+     * @return the fragment for this URI. Null is returned if there
+     *         was no "#" in the URI spec, empty string if there was a
+     *         "#" but no fragment following it.
+     */
+     const XMLCh* getFragment() const;
+
+    // -----------------------------------------------------------------------
+    //  Setter methods
+    // -----------------------------------------------------------------------
+
+    /**
+     * Set the scheme for this URI. The scheme is converted to lowercase
+     * before it is set.
+     *
+     * @param newScheme the scheme for this URI (cannot be null)
+     *
+     */
+     void setScheme(const XMLCh* const newScheme);
+
+    /**
+     * Set the userinfo for this URI. If a non-null value is passed in and
+     * the host value is null, then an exception is thrown.
+     *
+     * @param newUserInfo the userinfo for this URI
+     *
+     */
+     void setUserInfo(const XMLCh* const newUserInfo);
+
+    /**
+     * Set the host for this URI. If null is passed in, the userinfo
+     * field is also set to null and the port is set to -1.
+     *
+     * Note: This method overwrites registry based authority if it
+     * previously existed in this URI.
+     *
+     * @param newHost the host for this URI
+     *
+     */
+     void setHost(const XMLCh* const newHost);
+
+    /**
+     * Set the port for this URI. -1 is used to indicate that the port is
+     * not specified, otherwise valid port numbers are  between 0 and 65535.
+     * If a valid port number is passed in and the host field is null,
+     * an exception is thrown.
+     *
+     * @param newPort the port number for this URI
+     *
+     */
+     void setPort(int newPort);
+     
+    /**
+     * Sets the registry based authority for this URI.
+     * 
+     * Note: This method overwrites server based authority
+     * if it previously existed in this URI.
+     * 
+     * @param newRegAuth the registry based authority for this URI
+     */
+     void setRegBasedAuthority(const XMLCh* const newRegAuth);
+
+    /**
+     * Set the path for this URI.
+     *
+     * If the supplied path is null, then the
+     * query string and fragment are set to null as well.
+     *
+     * If the supplied path includes a query string and/or fragment,
+     * these fields will be parsed and set as well.
+     *
+     * Note:
+     *
+     * For URIs following the "generic URI" syntax, the path
+     * specified should start with a slash.
+     *
+     * For URIs that do not follow the generic URI syntax, this method
+     * sets the scheme-specific part.
+     *
+     * @param newPath the path for this URI (may be null)
+     *
+     */
+     void setPath(const XMLCh* const newPath);
+
+    /**
+     * Set the query string for this URI. A non-null value is valid only
+     * if this is an URI conforming to the generic URI syntax and
+     * the path value is not null.
+     *
+     * @param newQueryString the query string for this URI
+     *
+     */
+     void setQueryString(const XMLCh* const newQueryString);
+
+    /**
+     * Set the fragment for this URI. A non-null value is valid only
+     * if this is a URI conforming to the generic URI syntax and
+     * the path value is not null.
+     *
+     * @param newFragment the fragment for this URI
+     *
+     */
+     void setFragment(const XMLCh* const newFragment);
+
+     // -----------------------------------------------------------------------
+    //  Miscellaneous methods
+    // -----------------------------------------------------------------------
+
+    /**
+     * Determine whether a given string contains only URI characters (also
+     * called "uric" in RFC 2396). uric consist of all reserved
+     * characters, unreserved characters and escaped characters.
+     *
+     * @return true if the string is comprised of uric, false otherwise
+     */
+    static bool isURIString(const XMLCh* const uric);
+
+    /**
+     * Determine whether a given string is a valid URI
+     */
+    static bool isValidURI( const XMLUri* const baseURI
+                          , const XMLCh* const uriStr);
+    /**
+     * Determine whether a given string is a valid URI
+     */
+    static bool isValidURI( bool haveBaseURI
+                          , const XMLCh* const uriStr);
+
+
+    static void normalizeURI(const XMLCh*     const systemURI,
+                                   XMLBuffer&       normalizedURI);
+
+    /***
+     * Support for Serialization/De-serialization
+     ***/
+    DECL_XSERIALIZABLE(XMLUri)
+
+    XMLUri(MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+
+private:
+
+    static const XMLCh MARK_OR_RESERVED_CHARACTERS[];
+    static const XMLCh RESERVED_CHARACTERS[];
+    static const XMLCh MARK_CHARACTERS[];
+    static const XMLCh SCHEME_CHARACTERS[];
+    static const XMLCh USERINFO_CHARACTERS[];
+    static const XMLCh REG_NAME_CHARACTERS[];
+    static const XMLCh PATH_CHARACTERS[];
+
+    //helper method for getUriText
+    void buildFullText();
+
+    // -----------------------------------------------------------------------
+    //  Private helper methods
+    // -----------------------------------------------------------------------
+
+    /**
+     * Determine whether a character is a reserved character:
+     *
+     * @return true if the string contains any reserved characters
+     */
+    static bool isReservedCharacter(const XMLCh theChar);
+    
+    /**
+     * Determine whether a character is a path character:
+     *
+     * @return true if the character is path character
+     */
+    static bool isPathCharacter(const XMLCh theChar);
+
+    /**
+     * Determine whether a char is an unreserved character.
+     *
+     * @return true if the char is unreserved, false otherwise
+     */
+    static bool isUnreservedCharacter(const XMLCh theChar);
+
+    /**
+     * Determine whether a char is an reserved or unreserved character.
+     *
+     * @return true if the char is reserved or unreserved, false otherwise
+     */                
+    static bool isReservedOrUnreservedCharacter(const XMLCh theChar);
+
+    /**
+     * Determine whether a scheme conforms to the rules for a scheme name.
+     * A scheme is conformant if it starts with an alphanumeric, and
+     * contains only alphanumerics, '+','-' and '.'.
+     *
+     * @return true if the scheme is conformant, false otherwise
+     */
+    static bool isConformantSchemeName(const XMLCh* const scheme);
+
+    /**
+     * Determine whether a userInfo conforms to the rules for a userinfo.
+     *
+     * @return true if the scheme is conformant, false otherwise
+     */
+    static void isConformantUserInfo(const XMLCh* const userInfo
+        , MemoryManager* const manager);
+    
+    /**
+     * Determines whether the components host, port, and user info
+     * are valid as a server authority.
+     *
+     * @return true if the given host, port, and userinfo compose
+     * a valid server authority
+     */
+    static bool isValidServerBasedAuthority(const XMLCh* const host
+                                           , const int hostLen
+                                           , const int port
+                                           , const XMLCh* const userinfo
+                                           , const int userLen);
+                                           
+    /**
+     * Determines whether the components host, port, and user info
+     * are valid as a server authority.
+     *
+     * @return true if the given host, port, and userinfo compose
+     * a valid server authority
+     */
+    static bool isValidServerBasedAuthority(const XMLCh* const host
+                                           , const int port
+                                           , const XMLCh* const userinfo
+                                           , MemoryManager* const manager);
+      
+   /**
+    * Determines whether the given string is a registry based authority.
+    * 
+    * @param authority the authority component of a URI
+    * 
+    * @return true if the given string is a registry based authority
+    */
+    static bool isValidRegistryBasedAuthority(const XMLCh* const authority
+                                             , const int authLen);
+
+   /**
+    * Determines whether the given string is a registry based authority.
+    * 
+    * @param authority the authority component of a URI
+    * 
+    * @return true if the given string is a registry based authority
+    */
+    static bool isValidRegistryBasedAuthority(const XMLCh* const authority);
+
+    /**
+     * Determine whether a string is syntactically capable of representing
+     * a valid IPv4 address, IPv6 reference or the domain name of a network host.
+     *
+     * A valid IPv4 address consists of four decimal digit groups
+     * separated by a '.'.
+     *
+     * See RFC 2732 Section 3, and RFC 2373 Section 2.2, for the 
+     * definition of IPv6 references.
+     *
+     * A hostname consists of domain labels (each of which must begin and
+     * end with an alphanumeric but may contain '-') separated by a '.'.
+     * See RFC 2396 Section 3.2.2.
+     *
+     * @return true if the string is a syntactically valid IPv4 address
+     *              or hostname
+     */
+     static bool isWellFormedAddress(const XMLCh* const addr
+         , MemoryManager* const manager);
+     
+    /**
+     * Determines whether a string is an IPv4 address as defined by 
+     * RFC 2373, and under the further constraint that it must be a 32-bit
+     * address. Though not expressed in the grammar, in order to satisfy 
+     * the 32-bit address constraint, each segment of the address cannot 
+     * be greater than 255 (8 bits of information).
+     *
+     * @return true if the string is a syntactically valid IPv4 address
+     */
+     static bool isWellFormedIPv4Address(const XMLCh* const addr, const int length);
+     
+    /**
+     * Determines whether a string is an IPv6 reference as defined
+     * by RFC 2732, where IPv6address is defined in RFC 2373. The 
+     * IPv6 address is parsed according to Section 2.2 of RFC 2373,
+     * with the additional constraint that the address be composed of
+     * 128 bits of information.
+     *
+     * Note: The BNF expressed in RFC 2373 Appendix B does not 
+     * accurately describe section 2.2, and was in fact removed from
+     * RFC 3513, the successor of RFC 2373.
+     *
+     * @return true if the string is a syntactically valid IPv6 reference
+     */
+     static bool isWellFormedIPv6Reference(const XMLCh* const addr, const int length);
+     
+    /**
+     * Helper function for isWellFormedIPv6Reference which scans the 
+     * hex sequences of an IPv6 address. It returns the index of the 
+     * next character to scan in the address, or -1 if the string 
+     * cannot match a valid IPv6 address. 
+     *
+     * @param address the string to be scanned
+     * @param index the beginning index (inclusive)
+     * @param end the ending index (exclusive)
+     * @param counter a counter for the number of 16-bit sections read
+     * in the address
+     *
+     * @return the index of the next character to scan, or -1 if the
+     * string cannot match a valid IPv6 address
+     */
+     static int scanHexSequence (const XMLCh* const addr, int index, int end, int& counter);
+
+    /**
+     * Get the indicator as to whether this URI uses the "generic URI"
+     * syntax.
+     *
+     * @return true if this URI uses the "generic URI" syntax, false
+     *         otherwise
+     */
+     bool isGenericURI();
+
+    // -----------------------------------------------------------------------
+    //  Miscellaneous methods
+    // -----------------------------------------------------------------------
+
+    /**
+     * Initialize all fields of this URI from another URI.
+     *
+     * @param toCopy the URI to copy (cannot be null)
+     */
+     void initialize(const XMLUri& toCopy);
+
+    /**
+     * Initializes this URI from a base URI and a URI specification string.
+     * See RFC 2396 Section 4 and Appendix B for specifications on parsing
+     * the URI and Section 5 for specifications on resolving relative URIs
+     * and relative paths.
+     *
+     * @param baseURI the base URI (may be null if uriSpec is an absolute
+     *               URI)
+     *
+     * @param uriSpec the URI spec string which may be an absolute or
+     *                  relative URI (can only be null/empty if base
+     *                  is not null)
+     *
+     */
+     void initialize(const XMLUri* const baseURI
+                   , const XMLCh*  const uriSpec);
+
+    /**
+     * Initialize the scheme for this URI from a URI string spec.
+     *
+     * @param uriSpec the URI specification (cannot be null)
+     *
+     */
+     void initializeScheme(const XMLCh* const uriSpec);
+
+    /**
+     * Initialize the authority (userinfo, host and port) for this
+     * URI from a URI string spec.
+     *
+     * @param uriSpec the URI specification (cannot be null)
+     *
+     */
+     void initializeAuthority(const XMLCh* const uriSpec);
+
+    /**
+     * Initialize the path for this URI from a URI string spec.
+     *
+     * @param uriSpec the URI specification (cannot be null)
+     *
+     */
+     void initializePath(const XMLCh* const uriSpec);
+
+     /**
+      * cleanup the data variables
+      *
+      */
+     void cleanUp();
+
+    static bool isConformantSchemeName(const XMLCh* const scheme,
+                                       const int schemeLen);
+    static bool processScheme(const XMLCh* const uriStr, int& index);
+    static bool processAuthority(const XMLCh* const uriStr, const int authLen);
+    static bool isWellFormedAddress(const XMLCh* const addr, const int addrLen);
+    static bool processPath(const XMLCh* const pathStr, const int pathStrLen,
+                            const bool isSchemePresent);
+
+    // -----------------------------------------------------------------------
+    //  Data members
+    //
+    //  for all the data member, we own it,
+    //  responsible for the creation and/or deletion for
+    //  the memory allocated.
+    //
+    // -----------------------------------------------------------------------
+    int             fPort;
+    XMLCh*          fScheme;
+    XMLCh*          fUserInfo;
+    XMLCh*          fHost;
+    XMLCh*          fRegAuth;
+    XMLCh*          fPath;
+    XMLCh*          fQueryString;
+    XMLCh*          fFragment;
+    XMLCh*          fURIText;
+    MemoryManager*  fMemoryManager;
+};
+
+// ---------------------------------------------------------------------------
+//  XMLUri: Getter methods
+// ---------------------------------------------------------------------------
+inline const XMLCh* XMLUri::getScheme() const
+{
+    return fScheme;
+}
+
+inline const XMLCh* XMLUri::getUserInfo() const
+{
+	return fUserInfo;
+}
+
+inline const XMLCh* XMLUri::getHost() const
+{
+	return fHost;
+}
+
+inline int XMLUri::getPort() const
+{
+	return fPort;
+}
+
+inline const XMLCh* XMLUri::getRegBasedAuthority() const
+{
+	return fRegAuth;
+}
+
+inline const XMLCh* XMLUri::getPath() const
+{
+	return fPath;
+}
+
+inline const XMLCh* XMLUri::getQueryString() const
+{
+	return fQueryString;
+}
+
+inline const XMLCh* XMLUri::getFragment() const
+{
+	return fFragment;
+}
+
+inline const XMLCh* XMLUri::getUriText() const
+{
+    //
+    //  Fault it in if not already. Since this is a const method and we
+    //  can't use mutable members due the compilers we have to support,
+    //  we have to cast off the constness.
+    //
+    if (!fURIText)
+        ((XMLUri*)this)->buildFullText();
+
+    return fURIText;
+}
+
+// ---------------------------------------------------------------------------
+//  XMLUri: Helper methods
+// ---------------------------------------------------------------------------
+inline bool XMLUri::isReservedOrUnreservedCharacter(const XMLCh theChar)
+{
+   return (XMLString::isAlphaNum(theChar) ||
+           XMLString::indexOf(MARK_OR_RESERVED_CHARACTERS, theChar) != -1);
+}
+
+inline bool XMLUri::isReservedCharacter(const XMLCh theChar)
+{
+    return (XMLString::indexOf(RESERVED_CHARACTERS, theChar) != -1);
+}
+
+inline bool XMLUri::isPathCharacter(const XMLCh theChar)
+{
+    return (XMLString::indexOf(PATH_CHARACTERS, theChar) != -1);
+}
+
+inline bool XMLUri::isUnreservedCharacter(const XMLCh theChar)
+{
+    return (XMLString::isAlphaNum(theChar) ||
+            XMLString::indexOf(MARK_CHARACTERS, theChar) != -1);
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/ValueStackOf.c
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/ValueStackOf.c	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/ValueStackOf.c	(revision 2674)
@@ -0,0 +1,146 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: ValueStackOf.c 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+// ---------------------------------------------------------------------------
+//  Includes
+// ---------------------------------------------------------------------------
+#if defined(XERCES_TMPLSINC)
+#include <xercesc/util/ValueStackOf.hpp>
+#endif
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+
+// ---------------------------------------------------------------------------
+//  ValueStackOf: Constructors and Destructor
+// ---------------------------------------------------------------------------
+template <class TElem>
+ValueStackOf<TElem>::ValueStackOf(const unsigned int fInitCapacity,
+                                  MemoryManager* const manager,
+                                  const bool toCallDestructor) :
+
+    fVector(fInitCapacity, manager, toCallDestructor)
+{
+}
+
+template <class TElem> ValueStackOf<TElem>::~ValueStackOf()
+{
+}
+
+
+// ---------------------------------------------------------------------------
+//  ValueStackOf: Element management methods
+// ---------------------------------------------------------------------------
+template <class TElem> void ValueStackOf<TElem>::push(const TElem& toPush)
+{
+    fVector.addElement(toPush);
+}
+
+template <class TElem> const TElem& ValueStackOf<TElem>::peek() const
+{
+    const int curSize = fVector.size();
+    if (curSize == 0)
+        ThrowXMLwithMemMgr(EmptyStackException, XMLExcepts::Stack_EmptyStack, fVector.getMemoryManager());
+
+    return fVector.elementAt(curSize-1);
+}
+
+template <class TElem> TElem ValueStackOf<TElem>::pop()
+{
+    const int curSize = fVector.size();
+    if (curSize == 0)
+        ThrowXMLwithMemMgr(EmptyStackException, XMLExcepts::Stack_EmptyStack, fVector.getMemoryManager());
+
+    TElem retVal = fVector.elementAt(curSize-1);
+    fVector.removeElementAt(curSize-1);
+    return retVal;
+}
+
+template <class TElem> void ValueStackOf<TElem>::removeAllElements()
+{
+    fVector.removeAllElements();
+}
+
+
+// ---------------------------------------------------------------------------
+//  ValueStackOf: Getter methods
+// ---------------------------------------------------------------------------
+template <class TElem> bool ValueStackOf<TElem>::empty()
+{
+    return (fVector.size() == 0);
+}
+
+template <class TElem> unsigned int ValueStackOf<TElem>::curCapacity()
+{
+    return fVector.curCapacity();
+}
+
+template <class TElem> unsigned int ValueStackOf<TElem>::size()
+{
+    return fVector.size();
+}
+
+
+
+
+// ---------------------------------------------------------------------------
+//  ValueStackEnumerator: Constructors and Destructor
+// ---------------------------------------------------------------------------
+template <class TElem> ValueStackEnumerator<TElem>::
+ValueStackEnumerator(       ValueStackOf<TElem>* const  toEnum
+                    , const bool                        adopt) :
+
+    fAdopted(adopt)
+    , fCurIndex(0)
+    , fToEnum(toEnum)
+    , fVector(&toEnum->fVector)
+{
+}
+
+template <class TElem> ValueStackEnumerator<TElem>::~ValueStackEnumerator()
+{
+    if (fAdopted)
+        delete fToEnum;
+}
+
+
+// ---------------------------------------------------------------------------
+//  ValueStackEnumerator: Enum interface
+// ---------------------------------------------------------------------------
+template <class TElem> bool ValueStackEnumerator<TElem>::hasMoreElements() const
+{
+    if (fCurIndex >= fVector->size())
+        return false;
+    return true;
+}
+
+template <class TElem> TElem& ValueStackEnumerator<TElem>::nextElement()
+{
+    return fVector->elementAt(fCurIndex++);
+}
+
+template <class TElem> void ValueStackEnumerator<TElem>::Reset()
+{
+    fCurIndex = 0;
+}
+
+XERCES_CPP_NAMESPACE_END
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/XMLStringTokenizer.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/XMLStringTokenizer.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/XMLStringTokenizer.hpp	(revision 2674)
@@ -0,0 +1,218 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: XMLStringTokenizer.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(XMLSTRINGTOKENIZER_HPP)
+#define XMLSTRINGTOKENIZER_HPP
+
+#include <xercesc/util/RefArrayVectorOf.hpp>
+#include <xercesc/util/XMLString.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+/**
+  * The string tokenizer class breaks a string into tokens.
+  *
+  * The XMLStringTokenizer methods do not distinguish among identifiers,
+  * numbers, and quoted strings, nor do they recognize and skip comments
+  *
+  * A XMLStringTokenizer object internally maintains a current position within
+  * the string to be tokenized. Some operations advance this current position
+  * past the characters processed.
+  */
+
+
+  class XMLUTIL_EXPORT XMLStringTokenizer :public XMemory
+{
+public:
+    // -----------------------------------------------------------------------
+    //  Public Constructors
+    // -----------------------------------------------------------------------
+    /** @name Constructors */
+    //@{
+
+    /**
+      * Constructs a string tokenizer for the specified string. The tokenizer
+      * uses the default delimiter set, which is "\t\n\r\f": the space
+      * character, the tab character, the newline character, the
+      * carriage-return character, and the form-feed character. Delimiter
+      * characters themselves will not be treated as tokens.
+      *
+      * @param  srcStr  The string to be parsed.
+      * @param  manager Pointer to the memory manager to be used to
+      *                 allocate objects.
+      *
+      */
+	XMLStringTokenizer(const XMLCh* const srcStr,
+                       MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+
+    /**
+      * Constructs a string tokenizer for the specified string. The characters
+      * in the delim argument are the delimiters for separating tokens.
+      * Delimiter characters themselves will not be treated as tokens.
+      *
+      * @param  srcStr  The string to be parsed.
+      * @param  delim   The set of delimiters.
+      * @param  manager Pointer to the memory manager to be used to
+      *                 allocate objects.
+      */
+    XMLStringTokenizer(const XMLCh* const srcStr
+                       , const XMLCh* const delim
+                       , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+
+    //@}
+
+	// -----------------------------------------------------------------------
+    //  Public Destructor
+    // -----------------------------------------------------------------------
+	/** @name Destructor. */
+    //@{
+
+    ~XMLStringTokenizer();
+
+    //@}
+
+    // -----------------------------------------------------------------------
+    // Management methods
+    // -----------------------------------------------------------------------
+    /** @name Management Function */
+    //@{
+
+     /**
+       * Tests if there are more tokens available from this tokenizer's string.
+       *
+       * Returns true if and only if there is at least one token in the string
+       * after the current position; false otherwise.
+       */
+	bool hasMoreTokens();
+
+    /**
+      * Calculates the number of times that this tokenizer's nextToken method
+      * can be called to return a valid token. The current position is not
+      * advanced.
+      *
+      * Returns the number of tokens remaining in the string using the current
+      * delimiter set.
+      */
+    int countTokens();
+
+    /**
+      * Returns the next token from this string tokenizer.
+      *
+      * Function allocated, function managed (fafm). The calling function
+      * does not need to worry about deleting the returned pointer.
+	  */
+	XMLCh* nextToken();
+
+    //@}
+
+private:
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    XMLStringTokenizer(const XMLStringTokenizer&);
+    XMLStringTokenizer& operator=(const XMLStringTokenizer&);
+
+    // -----------------------------------------------------------------------
+    //  CleanUp methods
+    // -----------------------------------------------------------------------
+	void cleanUp();
+
+    // -----------------------------------------------------------------------
+    //  Helper methods
+    // -----------------------------------------------------------------------
+    bool isDelimeter(const XMLCh ch);
+
+    // -----------------------------------------------------------------------
+    //  Private data members
+    //
+    //  fOffset
+    //      The current position in the parsed string.
+    //
+    //  fStringLen
+    //      The length of the string parsed (for convenience).
+    //
+    //  fString
+    //      The string to be parsed
+	//
+    //  fDelimeters
+    //      A set of delimeter characters
+    //
+    //  fTokens
+    //      A vector of the token strings
+    // -----------------------------------------------------------------------
+    int                 fOffset;
+    int                 fStringLen;
+	XMLCh*              fString;
+    const XMLCh*        fDelimeters;
+	RefArrayVectorOf<XMLCh>* fTokens;
+    MemoryManager*           fMemoryManager;
+};
+
+// ---------------------------------------------------------------------------
+//  XMLStringTokenizer: Helper methods
+// ---------------------------------------------------------------------------
+inline bool XMLStringTokenizer::isDelimeter(const XMLCh ch) {
+
+    return XMLString::indexOf(fDelimeters, ch) == -1 ? false : true;
+}
+
+
+// ---------------------------------------------------------------------------
+//  XMLStringTokenizer: Management methods
+// ---------------------------------------------------------------------------
+inline int XMLStringTokenizer::countTokens() {
+
+    if (fStringLen == 0)
+		return 0;
+
+    int  tokCount = 0;
+    bool inToken = false;
+
+    for (int i= fOffset; i< fStringLen; i++) {
+
+        if (isDelimeter(fString[i])) {
+
+            if (inToken) {
+                inToken = false;
+            }
+
+            continue;
+        }
+
+		if (!inToken) {
+
+            tokCount++;
+            inToken = true;
+        }
+
+    } // end for
+
+    return tokCount;
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
+
+/**
+  * End of file XMLStringTokenizer.hpp
+  */
+
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/NoSuchElementException.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/NoSuchElementException.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/NoSuchElementException.hpp	(revision 2674)
@@ -0,0 +1,35 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: NoSuchElementException.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+#if !defined(NOSUCHELEMENTEXCEPTION_HPP)
+#define NOSUCHELEMENTEXCEPTION_HPP
+
+#include <xercesc/util/XercesDefs.hpp>
+#include <xercesc/util/XMLException.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+MakeXMLException(NoSuchElementException, XMLUTIL_EXPORT)
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/XMLHolder.c
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/XMLHolder.c	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/XMLHolder.c	(revision 2674)
@@ -0,0 +1,53 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+// ---------------------------------------------------------------------------
+//  Include
+// ---------------------------------------------------------------------------
+#if defined(XERCES_TMPLSINC)
+#include <xercesc/util/XMLHolder.hpp>
+#endif
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+
+// -----------------------------------------------------------------------
+// XMLHolder:  Constructors and Destructor
+// -----------------------------------------------------------------------
+
+template<class Type>
+XMLHolder<Type>::XMLHolder() :
+    XMemory(),
+    fInstance()
+{
+}
+
+template<class Type>
+XMLHolder<Type>::~XMLHolder()
+{
+}
+
+
+template<class Type>
+XMLHolder<Type>*
+XMLHolder<Type>::castTo(void* handle)
+{
+    return (XMLHolder<Type>*)handle;
+}
+
+
+XERCES_CPP_NAMESPACE_END
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/XMLNetAccessor.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/XMLNetAccessor.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/XMLNetAccessor.hpp	(revision 2674)
@@ -0,0 +1,138 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: XMLNetAccessor.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(XMLNETACCESSOR_HPP)
+#define XMLNETACCESSOR_HPP
+
+#include <xercesc/util/XMLURL.hpp>
+#include <xercesc/util/XMLException.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class BinInputStream;
+
+//  This class holds advanced informations about the HTTP connection
+class XMLUTIL_EXPORT XMLNetHTTPInfo
+{
+public:
+    XMLNetHTTPInfo();
+
+    typedef enum {
+        GET,
+        PUT,
+        POST
+    } HTTPMethod;
+
+    // -----------------------------------------------------------------------
+    //  Data members
+    //
+    //  fHTTPMethod
+    //      The type of the HTTP request
+    //
+    //  fHeaders
+    //      The extra headers that will be sent as part of the request; the format is
+    //      Header1: Value\r\nHeader2: Value\r\n
+    //
+    //  fHeadersLen
+    //      The length of the string pointed by fHeaders, in bytes
+    //
+    //  fPayload
+    //      The extra data that will be sent after the headers; in the case of a PUT
+    //      operation, this is the content of the resource being posted. It can be binary data
+    //
+    //  fPayloadLen
+    //      The length of the binary buffer pointed by fPayload, in bytes
+    //
+    HTTPMethod      fHTTPMethod;
+    const char*     fHeaders;
+    int             fHeadersLen;
+    const char*     fPayload;
+    int             fPayloadLen;
+};
+
+inline XMLNetHTTPInfo::XMLNetHTTPInfo()
+:fHTTPMethod(XMLNetHTTPInfo::GET),
+ fHeaders(0),
+ fHeadersLen(0),
+ fPayload(0),
+ fPayloadLen(0)
+{
+}
+
+
+//
+//  This class is an abstract interface via which the URL class accesses
+//  net access services. When any source URL is not in effect a local file
+//  path, then the URL class is used to look at it. Then the URL class can
+//  be asked to make a binary input stream via which the referenced resource
+//  can be read in.
+//
+//  The URL class will use an object derived from this class to create a
+//  binary stream for the URL to return. The object it uses is provided by
+//  the platform utils, and is actually provided by the per-platform init
+//  code so each platform can decide what actual implementation it wants to
+//  use.
+//
+class XMLUTIL_EXPORT XMLNetAccessor : public XMemory
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Virtual destructor
+    // -----------------------------------------------------------------------
+    virtual ~XMLNetAccessor()
+    {
+    }
+
+
+    // -----------------------------------------------------------------------
+    //  The virtual net accessor interface
+    // -----------------------------------------------------------------------
+    virtual const XMLCh* getId() const = 0;
+
+    virtual BinInputStream* makeNew
+    (
+        const   XMLURL&                 urlSrc,
+        const   XMLNetHTTPInfo*         httpInfo=0
+    ) = 0;
+
+
+protected :
+    // -----------------------------------------------------------------------
+    //  Hidden constructors
+    // -----------------------------------------------------------------------
+    XMLNetAccessor()
+    {
+    }
+
+
+private :
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    XMLNetAccessor(const XMLNetAccessor&);
+    XMLNetAccessor& operator=(const XMLNetAccessor&);
+};
+
+MakeXMLException(NetAccessorException, XMLUTIL_EXPORT)
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/RefArrayOf.c
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/RefArrayOf.c	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/RefArrayOf.c	(revision 2674)
@@ -0,0 +1,269 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: RefArrayOf.c 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+// ---------------------------------------------------------------------------
+//  Includes
+// ---------------------------------------------------------------------------
+#if defined(XERCES_TMPLSINC)
+#include <xercesc/util/RefArrayOf.hpp>
+#endif
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+// ---------------------------------------------------------------------------
+//  RefArrayOf: Contructors and Destructor
+// ---------------------------------------------------------------------------
+template <class TElem>
+RefArrayOf<TElem>::RefArrayOf(const unsigned int size,
+                              MemoryManager* const manager) :
+
+    fSize(size)
+    , fArray(0)
+    , fMemoryManager(manager)
+{
+    fArray = (TElem**) fMemoryManager->allocate(fSize * sizeof(TElem*));//new TElem*[fSize];
+    for (unsigned int index = 0; index < fSize; index++)
+        fArray[index] = 0;
+}
+
+template <class TElem>
+RefArrayOf<TElem>::RefArrayOf(TElem* values[],
+                              const unsigned int size,
+                              MemoryManager* const manager) :
+
+    fSize(size)
+    , fArray(0)
+    , fMemoryManager(manager)
+{
+    fArray = (TElem**) fMemoryManager->allocate(fSize * sizeof(TElem*));//new TElem*[fSize];
+    for (unsigned int index = 0; index < fSize; index++)
+        fArray[index] = values[index];
+}
+
+template <class TElem> RefArrayOf<TElem>::
+RefArrayOf(const RefArrayOf<TElem>& source) :
+
+    fSize(source.fSize)
+    , fArray(0)
+    , fMemoryManager(source.fMemoryManager)
+{
+    fArray = (TElem**) fMemoryManager->allocate(fSize * sizeof(TElem*));//new TElem*[fSize];
+    for (unsigned int index = 0; index < fSize; index++)
+        fArray[index] = source.fArray[index];
+}
+
+template <class TElem> RefArrayOf<TElem>::~RefArrayOf()
+{
+    fMemoryManager->deallocate(fArray);//delete [] fArray;
+}
+
+
+// ---------------------------------------------------------------------------
+//  RefArrayOf: Public operators
+// ---------------------------------------------------------------------------
+template <class TElem> TElem*& RefArrayOf<TElem>::
+operator[](const unsigned int index)
+{
+    if (index >= fSize)
+        ThrowXMLwithMemMgr(ArrayIndexOutOfBoundsException, XMLExcepts::Array_BadIndex, fMemoryManager);
+    return fArray[index];
+}
+
+template <class TElem> const TElem* RefArrayOf<TElem>::
+operator[](const unsigned int index) const
+{
+    if (index >= fSize)
+        ThrowXMLwithMemMgr(ArrayIndexOutOfBoundsException, XMLExcepts::Array_BadIndex, fMemoryManager);
+    return fArray[index];
+}
+
+template <class TElem> RefArrayOf<TElem>& RefArrayOf<TElem>::
+operator=(const RefArrayOf<TElem>& toAssign)
+{
+    if (this == &toAssign)
+        return *this;
+
+    // Reallocate if not the same size
+    if (toAssign.fSize != fSize)
+    {
+        fMemoryManager->deallocate(fArray);//delete [] fArray;
+        fSize = toAssign.fSize;
+        fArray = (TElem**) fMemoryManager->allocate(fSize * sizeof(TElem*));//new TElem*[fSize];
+    }
+
+    // Copy over the source elements
+    for (unsigned int index = 0; index < fSize; index++)
+        fArray[index] = toAssign.fArray[index];
+
+    return *this;
+}
+
+template <class TElem> bool RefArrayOf<TElem>::
+operator==(const RefArrayOf<TElem>& toCompare) const
+{
+    if (this == &toCompare)
+        return true;
+
+    if (fSize != toCompare.fSize)
+        return false;
+
+    for (unsigned int index = 0; index < fSize; index++)
+    {
+        if (fArray[index] != toCompare.fArray[index])
+            return false;
+    }
+    return true;
+}
+
+template <class TElem> bool RefArrayOf<TElem>::
+operator!=(const RefArrayOf<TElem>& toCompare) const
+{
+    return !operator==(toCompare);
+}
+
+
+// ---------------------------------------------------------------------------
+//  RefArrayOf: Copy operations
+// ---------------------------------------------------------------------------
+template <class TElem> unsigned int RefArrayOf<TElem>::
+copyFrom(const RefArrayOf<TElem>& srcArray)
+{
+    //
+    //  Copy over as many of the source elements as will fit into
+    //  this array.
+    //
+    const unsigned int count = fSize < srcArray.fSize ?
+                                    fSize : srcArray.fSize;
+
+    for (unsigned int index = 0; index < fSize; index++)
+        fArray[index] = srcArray.fArray[index];
+
+    return count;
+}
+
+
+// ---------------------------------------------------------------------------
+//  RefArrayOf: Getter methods
+// ---------------------------------------------------------------------------
+template <class TElem> unsigned int RefArrayOf<TElem>::length() const
+{
+    return fSize;
+}
+
+template <class TElem> TElem** RefArrayOf<TElem>::rawData() const
+{
+    return fArray;
+}
+
+
+// ---------------------------------------------------------------------------
+//  RefArrayOf: Element management methods
+// ---------------------------------------------------------------------------
+template <class TElem> void RefArrayOf<TElem>::deleteAt(const unsigned int index)
+{
+    if (index >= fSize)
+        ThrowXMLwithMemMgr(ArrayIndexOutOfBoundsException, XMLExcepts::Array_BadIndex, fMemoryManager);
+
+    delete fArray[index];
+    fArray[index] = 0;
+}
+
+template <class TElem> void RefArrayOf<TElem>::deleteAllElements()
+{
+    for (unsigned int index = 0; index < fSize; index++)
+    {
+        delete fArray[index];
+        fArray[index] = 0;
+    }
+}
+
+template <class TElem> void RefArrayOf<TElem>::resize(const unsigned int newSize)
+{
+    if (newSize == fSize)
+        return;
+
+    if (newSize < fSize)
+        ThrowXMLwithMemMgr(IllegalArgumentException, XMLExcepts::Array_BadNewSize, fMemoryManager);
+
+    // Allocate the new array
+    TElem** newArray = (TElem**) fMemoryManager->allocate
+    (
+        newSize * sizeof(TElem*)
+    );//new TElem*[newSize];
+
+    // Copy the existing values
+    unsigned int index = 0;
+    for (; index < fSize; index++)
+        newArray[index] = fArray[index];
+
+    for (; index < newSize; index++)
+        newArray[index] = 0;
+
+    // Delete the old array and udpate our members
+    fMemoryManager->deallocate(fArray);//delete [] fArray;
+    fArray = newArray;
+    fSize = newSize;
+}
+
+
+
+
+// ---------------------------------------------------------------------------
+//  RefArrayEnumerator: Constructors and Destructor
+// ---------------------------------------------------------------------------
+template <class TElem> RefArrayEnumerator<TElem>::
+RefArrayEnumerator(         RefArrayOf<TElem>* const    toEnum
+                    , const bool                        adopt) :
+    fAdopted(adopt)
+    , fCurIndex(0)
+    , fToEnum(toEnum)
+{
+}
+
+template <class TElem> RefArrayEnumerator<TElem>::~RefArrayEnumerator()
+{
+    if (fAdopted)
+        delete fToEnum;
+}
+
+
+// ---------------------------------------------------------------------------
+//  RefArrayEnumerator: Enum interface
+// ---------------------------------------------------------------------------
+template <class TElem> bool RefArrayEnumerator<TElem>::hasMoreElements() const
+{
+    if (fCurIndex >= fToEnum->length())
+        return false;
+    return true;
+}
+
+template <class TElem> TElem& RefArrayEnumerator<TElem>::nextElement()
+{
+    return *(*fToEnum)[fCurIndex++];
+}
+
+template <class TElem> void RefArrayEnumerator<TElem>::Reset()
+{
+    fCurIndex = 0;
+}
+
+XERCES_CPP_NAMESPACE_END
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/FlagJanitor.c
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/FlagJanitor.c	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/FlagJanitor.c	(revision 2674)
@@ -0,0 +1,62 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: FlagJanitor.c 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+// ---------------------------------------------------------------------------
+//  Includes
+// ---------------------------------------------------------------------------
+#if defined(XERCES_TMPLSINC)
+#include <xercesc/util/FlagJanitor.hpp>
+#endif
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+// ---------------------------------------------------------------------------
+//  Constructors and Destructor
+// ---------------------------------------------------------------------------
+template <class T> FlagJanitor<T>::FlagJanitor(T* const valPtr, const T newVal)
+:   fValPtr(valPtr)
+{
+    // Store the pointer, save the org value, and store the new value    
+    if (fValPtr)
+    {
+        fOldVal = *fValPtr;
+        *fValPtr = newVal;
+    }
+}
+
+template <class T> FlagJanitor<T>::~FlagJanitor()
+{
+    // Restore the old value
+    if (fValPtr)
+        *fValPtr = fOldVal;
+}
+
+
+// ---------------------------------------------------------------------------
+//  Value management methods
+// ---------------------------------------------------------------------------
+template <class T> void FlagJanitor<T>::release()
+{
+    fValPtr = 0;
+}
+
+XERCES_CPP_NAMESPACE_END
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/SchemaDateTimeException.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/SchemaDateTimeException.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/SchemaDateTimeException.hpp	(revision 2674)
@@ -0,0 +1,35 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: SchemaDateTimeException.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+#if !defined(SCHEMA_DATETIME_EXCEPTION_HPP)
+#define SCHEMA_DATETIME_EXCEPTION_HPP
+
+#include <xercesc/util/XercesDefs.hpp>
+#include <xercesc/util/XMLException.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+MakeXMLException(SchemaDateTimeException, XMLUTIL_EXPORT)
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/EncodingValidator.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/EncodingValidator.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/EncodingValidator.hpp	(revision 2674)
@@ -0,0 +1,90 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: EncodingValidator.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(ENCODINGVALIDATOR_HPP)
+#define ENCODINGVALIDATOR_HPP
+
+// ---------------------------------------------------------------------------
+//  Includes
+// ---------------------------------------------------------------------------
+#include <xercesc/util/ValueHashTableOf.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+/**
+  * A singleton class that checks whether an encoding name is a valid IANA
+  * encoding
+  */
+
+class XMLUTIL_EXPORT EncodingValidator {
+
+public:
+    // -----------------------------------------------------------------------
+    //  Validation methods
+    // -----------------------------------------------------------------------
+    bool isValidEncoding(const XMLCh* const encName);
+
+    // -----------------------------------------------------------------------
+    //  Instance methods
+    // -----------------------------------------------------------------------
+	static EncodingValidator* instance();
+
+	// -----------------------------------------------------------------------
+    //  Notification that lazy data has been deleted
+    // -----------------------------------------------------------------------
+	static void reinitInstance();
+
+private:
+    // -----------------------------------------------------------------------
+    //  Constructor and destructors
+    // -----------------------------------------------------------------------
+    EncodingValidator();
+    ~EncodingValidator();
+
+    // -----------------------------------------------------------------------
+    //  Private Helpers methods
+    // -----------------------------------------------------------------------
+    /*
+     *  Initializes the registry with a set of valid IANA encoding names
+     */
+     void initializeRegistry();
+
+    // -----------------------------------------------------------------------
+    //  Private data members
+    //
+    //  fEncodingRegistry
+    //      Contains a set of IANA encoding names
+	//
+    //  fInstance
+    //      An EncodingValidator singleton instance
+    // -----------------------------------------------------------------------
+    ValueHashTableOf<bool>*   fEncodingRegistry;
+    static EncodingValidator* fInstance;
+    friend class XMLInitializer;
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
+
+/**
+  *	End file EncodingValidator.hpp
+  */
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/KeyRefPair.c
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/KeyRefPair.c	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/KeyRefPair.c	(revision 2674)
@@ -0,0 +1,113 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * $Id: KeyRefPair.c 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+// ---------------------------------------------------------------------------
+//  Include
+// ---------------------------------------------------------------------------
+#if defined(XERCES_TMPLSINC)
+#include <xercesc/util/KeyRefPair.hpp>
+#endif
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+// ---------------------------------------------------------------------------
+//  KeyRefPair: Constructors and Destructor
+// ---------------------------------------------------------------------------
+template <class TKey, class TValue> KeyRefPair<TKey,TValue>::KeyRefPair()
+{
+}
+
+template <class TKey, class TValue> KeyRefPair<TKey,TValue>::
+KeyRefPair(TKey* key, TValue* value) :
+
+    fKey(key)
+    , fValue(value)
+{
+}
+
+template <class TKey, class TValue> KeyRefPair<TKey,TValue>::
+KeyRefPair(const KeyRefPair<TKey,TValue>* toCopy) :
+
+    fKey(toCopy->fKey)
+    , fValue(toCopy->fValue)
+{
+}
+
+template <class TKey, class TValue> KeyRefPair<TKey,TValue>::
+KeyRefPair(const KeyRefPair<TKey,TValue>& toCopy) :
+
+    fKey(toCopy.fKey)
+    , fValue(toCopy.fValue)
+{
+}
+
+
+template <class TKey, class TValue> KeyRefPair<TKey,TValue>::~KeyRefPair()
+{
+}
+
+
+// ---------------------------------------------------------------------------
+//  KeyRefPair: Getters
+// ---------------------------------------------------------------------------
+template <class TKey, class TValue> const TKey*
+KeyRefPair<TKey,TValue>::getKey() const
+{
+    return fKey;
+
+}
+
+template <class TKey, class TValue> TKey* KeyRefPair<TKey,TValue>::getKey()
+{
+    return fKey;
+}
+
+template <class TKey, class TValue> const TValue*
+KeyRefPair<TKey,TValue>::getValue() const
+{
+    return fValue;
+}
+
+template <class TKey, class TValue> TValue* KeyRefPair<TKey,TValue>::getValue()
+{
+    return fValue;
+}
+
+
+// ---------------------------------------------------------------------------
+//  KeyRefPair: Setters
+// ---------------------------------------------------------------------------
+template <class TKey, class TValue> TKey*
+KeyRefPair<TKey,TValue>::setKey(TKey* newKey)
+{
+    fKey = newKey;
+    return fKey;
+}
+
+template <class TKey, class TValue> TValue*
+KeyRefPair<TKey,TValue>::setValue(TValue* newValue)
+{
+    fValue = newValue;
+    return fValue;
+}
+
+XERCES_CPP_NAMESPACE_END
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/KeyValuePair.c
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/KeyValuePair.c	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/KeyValuePair.c	(revision 2674)
@@ -0,0 +1,104 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: KeyValuePair.c 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+// ---------------------------------------------------------------------------
+//  Include
+// ---------------------------------------------------------------------------
+#if defined(XERCES_TMPLSINC)
+#include <xercesc/util/KeyValuePair.hpp>
+#endif
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+// ---------------------------------------------------------------------------
+//  KeyValuePair: Constructors and Destructor
+// ---------------------------------------------------------------------------
+template <class TKey, class TValue> KeyValuePair<TKey,TValue>::KeyValuePair()
+{
+}
+
+template <class TKey, class TValue> KeyValuePair<TKey,TValue>::
+KeyValuePair(const TKey& key, const TValue& value) :
+
+    fKey(key)
+    , fValue(value)
+{
+}
+
+template <class TKey, class TValue> KeyValuePair<TKey,TValue>::
+KeyValuePair(const KeyValuePair<TKey,TValue>& toCopy) :
+
+    fKey(toCopy.fKey)
+    , fValue(toCopy.fValue)
+{
+}
+
+template <class TKey, class TValue> KeyValuePair<TKey,TValue>::~KeyValuePair()
+{
+}
+
+
+// ---------------------------------------------------------------------------
+//  KeyValuePair: Getters
+// ---------------------------------------------------------------------------
+template <class TKey, class TValue> const TKey&
+KeyValuePair<TKey,TValue>::getKey() const
+{
+    return fKey;
+
+}
+
+template <class TKey, class TValue> TKey& KeyValuePair<TKey,TValue>::getKey()
+{
+    return fKey;
+}
+
+template <class TKey, class TValue> const TValue&
+KeyValuePair<TKey,TValue>::getValue() const
+{
+    return fValue;
+}
+
+template <class TKey, class TValue> TValue& KeyValuePair<TKey,TValue>::getValue()
+{
+    return fValue;
+}
+
+
+// ---------------------------------------------------------------------------
+//  KeyValuePair: Setters
+// ---------------------------------------------------------------------------
+template <class TKey, class TValue> TKey&
+KeyValuePair<TKey,TValue>::setKey(const TKey& newKey)
+{
+    fKey = newKey;
+    return fKey;
+}
+
+template <class TKey, class TValue> TValue&
+KeyValuePair<TKey,TValue>::setValue(const TValue& newValue)
+{
+    fValue = newValue;
+    return fValue;
+}
+
+XERCES_CPP_NAMESPACE_END
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/XMLASCIITranscoder.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/XMLASCIITranscoder.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/XMLASCIITranscoder.hpp	(revision 2674)
@@ -0,0 +1,89 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef XMLASCIITRANSCODER_HPP
+#define XMLASCIITRANSCODER_HPP
+
+#include <xercesc/util/XercesDefs.hpp>
+#include <xercesc/util/TransService.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+//
+//  This class provides an implementation of the XMLTranscoder interface
+//  for a simple ASCII transcoder. The parser does some encodings
+//  intrinsically without depending upon external transcoding services.
+//  To make everything more orthagonal, we implement these internal
+//  transcoders using the same transcoder abstraction as the pluggable
+//  transcoding services do.
+//
+class XMLUTIL_EXPORT XMLASCIITranscoder : public XMLTranscoder
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Constructors and destructor
+    // -----------------------------------------------------------------------
+    XMLASCIITranscoder
+    (
+        const   XMLCh* const    encodingName
+        , const unsigned int    blockSize
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    virtual ~XMLASCIITranscoder();
+
+
+    // -----------------------------------------------------------------------
+    //  Implementation of the XMLTranscoder interface
+    // -----------------------------------------------------------------------
+    virtual unsigned int transcodeFrom
+    (
+        const   XMLByte* const          srcData
+        , const unsigned int            srcCount
+        ,       XMLCh* const            toFill
+        , const unsigned int            maxChars
+        ,       unsigned int&           bytesEaten
+        ,       unsigned char* const    charSizes
+    );
+
+    virtual unsigned int transcodeTo
+    (
+        const   XMLCh* const    srcData
+        , const unsigned int    srcCount
+        ,       XMLByte* const  toFill
+        , const unsigned int    maxBytes
+        ,       unsigned int&   charsEaten
+        , const UnRepOpts       options
+    );
+
+    virtual bool canTranscodeTo
+    (
+        const   unsigned int    toCheck
+    )   const;
+
+
+private :
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    XMLASCIITranscoder(const XMLASCIITranscoder&);
+    XMLASCIITranscoder& operator=(const XMLASCIITranscoder&);
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/RefHash3KeysIdPool.c
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/RefHash3KeysIdPool.c	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/RefHash3KeysIdPool.c	(revision 2674)
@@ -0,0 +1,531 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: RefHash3KeysIdPool.c 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+// ---------------------------------------------------------------------------
+//  Include
+// ---------------------------------------------------------------------------
+#if defined(XERCES_TMPLSINC)
+#include <xercesc/util/RefHash3KeysIdPool.hpp>
+#endif
+
+#include <xercesc/util/NullPointerException.hpp>
+#include <assert.h>
+#include <new>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+// ---------------------------------------------------------------------------
+//  RefHash3KeysIdPool: Constructors and Destructor
+// ---------------------------------------------------------------------------
+template <class TVal>
+RefHash3KeysIdPool<TVal>::RefHash3KeysIdPool( const unsigned int modulus
+                                            , const bool         adoptElems
+                                            , const unsigned int initSize
+                                            , MemoryManager* const manager) :
+    fMemoryManager(manager)
+    , fAdoptedElems(adoptElems)
+    , fBucketList(0)
+    , fHashModulus(modulus)
+    , fHash(0)
+    , fIdPtrs(0)
+    , fIdPtrsCount(initSize)
+    , fIdCounter(0)
+{
+    initialize(modulus);
+
+    // create default hasher
+#if defined (XML_GCC_VERSION) && (XML_GCC_VERSION < 29600)
+		 fHash = new HashXMLCh();
+#else
+    fHash = new (fMemoryManager) HashXMLCh();
+#endif
+
+    //
+    //  Allocate the initial id pointers array. We don't have to zero them
+    //  out since the fIdCounter value tells us which ones are valid. The
+    //  zeroth element is never used (and represents an invalid pool id.)
+    //
+    if (!fIdPtrsCount)
+        fIdPtrsCount = 256;
+    fIdPtrs = (TVal**) fMemoryManager->allocate(fIdPtrsCount * sizeof(TVal*)); //new TVal*[fIdPtrsCount];
+    fIdPtrs[0] = 0;
+}
+
+template <class TVal>
+RefHash3KeysIdPool<TVal>::RefHash3KeysIdPool( const unsigned int modulus
+                                            , const bool         adoptElems
+                                            , HashBase*          hashBase
+                                            , const unsigned int initSize
+                                            , MemoryManager* const manager) :
+	fMemoryManager(manager)
+    , fAdoptedElems(adoptElems)
+    , fBucketList(0)
+    , fHashModulus(modulus)
+    , fHash(0)
+    , fIdPtrs(0)
+    , fIdPtrsCount(initSize)
+    , fIdCounter(0)
+{
+    initialize(modulus);
+    // set hasher
+    fHash = hashBase;
+
+    //
+    //  Allocate the initial id pointers array. We don't have to zero them
+    //  out since the fIdCounter value tells us which ones are valid. The
+    //  zeroth element is never used (and represents an invalid pool id.)
+    //
+    if (!fIdPtrsCount)
+        fIdPtrsCount = 256;
+    fIdPtrs = (TVal**) fMemoryManager->allocate(fIdPtrsCount * sizeof(TVal*)); //new TVal*[fIdPtrsCount];
+    fIdPtrs[0] = 0;
+}
+
+template <class TVal>
+RefHash3KeysIdPool<TVal>::RefHash3KeysIdPool( const unsigned int modulus
+                                            , const unsigned int initSize
+                                            , MemoryManager* const manager) :
+	fMemoryManager(manager)
+    , fAdoptedElems(true)
+    , fBucketList(0)
+    , fHashModulus(modulus)
+    , fHash(0)
+    , fIdPtrs(0)
+    , fIdPtrsCount(initSize)
+    , fIdCounter(0)
+{
+    initialize(modulus);
+
+    // create default hasher
+#if defined (XML_GCC_VERSION) && (XML_GCC_VERSION < 29600)
+		 fHash = new HashXMLCh();
+#else
+    fHash = new (fMemoryManager) HashXMLCh();
+#endif    
+
+    //
+    //  Allocate the initial id pointers array. We don't have to zero them
+    //  out since the fIdCounter value tells us which ones are valid. The
+    //  zeroth element is never used (and represents an invalid pool id.)
+    //
+    if (!fIdPtrsCount)
+        fIdPtrsCount = 256;
+    fIdPtrs = (TVal**) fMemoryManager->allocate(fIdPtrsCount * sizeof(TVal*)); //new TVal*[fIdPtrsCount];
+    fIdPtrs[0] = 0;
+}
+
+template <class TVal> void RefHash3KeysIdPool<TVal>::initialize(const unsigned int modulus)
+{
+	if (modulus == 0)
+        ThrowXMLwithMemMgr(IllegalArgumentException, XMLExcepts::HshTbl_ZeroModulus, fMemoryManager);
+
+    // Allocate the bucket list and zero them
+    fBucketList = (RefHash3KeysTableBucketElem<TVal>**) fMemoryManager->allocate
+    (
+        fHashModulus * sizeof(RefHash3KeysTableBucketElem<TVal>*)
+    ); //new RefHash3KeysTableBucketElem<TVal>*[fHashModulus];
+    memset(fBucketList, 0, sizeof(fBucketList[0]) * fHashModulus);
+}
+
+template <class TVal> RefHash3KeysIdPool<TVal>::~RefHash3KeysIdPool()
+{
+    removeAll();
+
+    // Then delete the bucket list & hasher & id pointers list
+    fMemoryManager->deallocate(fIdPtrs); //delete [] fIdPtrs;
+    fMemoryManager->deallocate(fBucketList); //delete [] fBucketList;
+    delete fHash;
+}
+
+
+// ---------------------------------------------------------------------------
+//  RefHash3KeysIdPool: Element management
+// ---------------------------------------------------------------------------
+template <class TVal> bool RefHash3KeysIdPool<TVal>::isEmpty() const
+{
+    // Just check the bucket list for non-empty elements
+    for (unsigned int buckInd = 0; buckInd < fHashModulus; buckInd++)
+    {
+        if (fBucketList[buckInd] != 0)
+            return false;
+    }
+    return true;
+}
+
+template <class TVal> bool RefHash3KeysIdPool<TVal>::
+containsKey(const void* const key1, const int key2, const int key3) const
+{
+    unsigned int hashVal;
+    const RefHash3KeysTableBucketElem<TVal>* findIt = findBucketElem(key1, key2, key3, hashVal);
+    return (findIt != 0);
+}
+
+template <class TVal> void RefHash3KeysIdPool<TVal>::removeAll()
+{
+    if (fIdCounter == 0) return;
+
+    // Clean up the buckets first
+    for (unsigned int buckInd = 0; buckInd < fHashModulus; buckInd++)
+    {
+        // Get the bucket list head for this entry
+        RefHash3KeysTableBucketElem<TVal>* curElem = fBucketList[buckInd];
+        RefHash3KeysTableBucketElem<TVal>* nextElem;
+        while (curElem)
+        {
+            // Save the next element before we hose this one
+            nextElem = curElem->fNext;
+
+            // If we adopted the data, then delete it too
+            //    (Note:  the userdata hash table instance has data type of void *.
+            //    This will generate compiler warnings here on some platforms, but they
+            //    can be ignored since fAdoptedElements is false.
+            if (fAdoptedElems)
+                delete curElem->fData;
+
+            // Then delete the current element and move forward
+            // delete curElem;
+            // destructor is empty...
+            // curElem->~RefHash3KeysTableBucketElem();
+            fMemoryManager->deallocate(curElem);
+            curElem = nextElem;
+        }
+
+        // Clean out this entry
+        fBucketList[buckInd] = 0;
+    }
+
+    // Reset the id counter
+    fIdCounter = 0;
+}
+
+
+// ---------------------------------------------------------------------------
+//  RefHash3KeysIdPool: Getters
+// ---------------------------------------------------------------------------
+template <class TVal> TVal*
+RefHash3KeysIdPool<TVal>::getByKey(const void* const key1, const int key2, const int key3)
+{
+    unsigned int hashVal;
+    RefHash3KeysTableBucketElem<TVal>* findIt = findBucketElem(key1, key2, key3, hashVal);
+    if (!findIt)
+        return 0;
+    return findIt->fData;
+}
+
+template <class TVal> const TVal*
+RefHash3KeysIdPool<TVal>::getByKey(const void* const key1, const int key2, const int key3) const
+{
+    unsigned int hashVal;
+    const RefHash3KeysTableBucketElem<TVal>* findIt = findBucketElem(key1, key2, key3, hashVal);
+    if (!findIt)
+        return 0;
+    return findIt->fData;
+}
+
+template <class TVal> TVal*
+RefHash3KeysIdPool<TVal>::getById(const unsigned int elemId)
+{
+    // If its either zero or beyond our current id, its an error
+    if (!elemId || (elemId > fIdCounter))
+        ThrowXMLwithMemMgr(IllegalArgumentException, XMLExcepts::Pool_InvalidId, fMemoryManager);
+
+    return fIdPtrs[elemId];
+}
+
+template <class TVal> const TVal*
+RefHash3KeysIdPool<TVal>::getById(const unsigned int elemId) const
+{
+    // If its either zero or beyond our current id, its an error
+    if (!elemId || (elemId > fIdCounter))
+        ThrowXMLwithMemMgr(IllegalArgumentException, XMLExcepts::Pool_InvalidId, fMemoryManager);
+
+    return fIdPtrs[elemId];
+}
+
+template <class TVal>
+MemoryManager* RefHash3KeysIdPool<TVal>::getMemoryManager() const
+{
+    return fMemoryManager;
+}
+
+template <class TVal>
+unsigned int RefHash3KeysIdPool<TVal>::getHashModulus() const
+{
+    return fHashModulus;
+}
+
+// ---------------------------------------------------------------------------
+//  RefHash3KeysIdPool: Putters
+// ---------------------------------------------------------------------------
+template <class TVal> unsigned int
+RefHash3KeysIdPool<TVal>::put(void* key1, int key2, int key3, TVal* const valueToAdopt)
+{
+    // First see if the key exists already
+    unsigned int hashVal;
+    RefHash3KeysTableBucketElem<TVal>* newBucket = findBucketElem(key1, key2, key3, hashVal);
+
+    //
+    //  If so,then update its value. If not, then we need to add it to
+    //  the right bucket
+    //
+    if (newBucket)
+    {
+        if (fAdoptedElems)
+            delete newBucket->fData;
+        newBucket->fData = valueToAdopt;
+        newBucket->fKey1 = key1;
+        newBucket->fKey2 = key2;
+        newBucket->fKey3 = key3;
+    }
+     else
+    {
+    // Revisit: the gcc compiler 2.95.x is generating an
+    // internal compiler error message. So we use the default
+    // memory manager for now.
+#if defined (XML_GCC_VERSION) && (XML_GCC_VERSION < 29600)
+        newBucket = new RefHash3KeysTableBucketElem<TVal>(key1, key2, key3, valueToAdopt, fBucketList[hashVal]);
+#else
+        newBucket =
+            new (fMemoryManager->allocate(sizeof(RefHash3KeysTableBucketElem<TVal>)))
+            RefHash3KeysTableBucketElem<TVal>(key1, key2, key3, valueToAdopt, fBucketList[hashVal]);
+#endif
+        fBucketList[hashVal] = newBucket;
+    }
+
+    //
+    //  Give this new one the next available id and add to the pointer list.
+    //  Expand the list if that is now required.
+    //
+    if (fIdCounter + 1 == fIdPtrsCount)
+    {
+        // Create a new count 1.5 times larger and allocate a new array
+        unsigned int newCount = (unsigned int)(fIdPtrsCount * 1.5);
+        TVal** newArray = (TVal**) fMemoryManager->allocate
+        (
+            newCount * sizeof(TVal*)
+        ); //new TVal*[newCount];
+
+        // Copy over the old contents to the new array
+        memcpy(newArray, fIdPtrs, fIdPtrsCount * sizeof(TVal*));
+
+        // Ok, toss the old array and store the new data
+        fMemoryManager->deallocate(fIdPtrs); //delete [] fIdPtrs;
+        fIdPtrs = newArray;
+        fIdPtrsCount = newCount;
+    }
+    const unsigned int retId = ++fIdCounter;
+    fIdPtrs[retId] = valueToAdopt;
+
+    // Set the id on the passed element
+    valueToAdopt->setId(retId);
+
+    // Return the id that we gave to this element
+    return retId;
+}
+
+// ---------------------------------------------------------------------------
+//  RefHash3KeysIdPool: Private methods
+// ---------------------------------------------------------------------------
+template <class TVal> RefHash3KeysTableBucketElem<TVal>* RefHash3KeysIdPool<TVal>::
+findBucketElem(const void* const key1, const int key2, const int key3, unsigned int& hashVal)
+{
+    // Hash the key
+    hashVal = fHash->getHashVal(key1, fHashModulus, fMemoryManager);
+    assert(hashVal < fHashModulus);
+
+    // Search that bucket for the key
+    RefHash3KeysTableBucketElem<TVal>* curElem = fBucketList[hashVal];
+    while (curElem)
+    {
+		if (key2==curElem->fKey2 && key3==curElem->fKey3 && fHash->equals(key1, curElem->fKey1))
+            return curElem;
+
+        curElem = curElem->fNext;
+    }
+    return 0;
+}
+
+template <class TVal> const RefHash3KeysTableBucketElem<TVal>* RefHash3KeysIdPool<TVal>::
+findBucketElem(const void* const key1, const int key2, const int key3, unsigned int& hashVal) const
+{
+    // Hash the key
+    hashVal = fHash->getHashVal(key1, fHashModulus);
+    assert(hashVal < fHashModulus);
+
+    // Search that bucket for the key
+    const RefHash3KeysTableBucketElem<TVal>* curElem = fBucketList[hashVal];
+    while (curElem)
+    {
+        if (fHash->equals(key1, curElem->fKey1) && (key2==curElem->fKey2) && (key3==curElem->fKey3))
+            return curElem;
+
+        curElem = curElem->fNext;
+    }
+    return 0;
+}
+
+
+// ---------------------------------------------------------------------------
+//  RefHash3KeysIdPoolEnumerator: Constructors and Destructor
+// ---------------------------------------------------------------------------
+template <class TVal> RefHash3KeysIdPoolEnumerator<TVal>::
+RefHash3KeysIdPoolEnumerator(RefHash3KeysIdPool<TVal>* const toEnum
+                             , const bool adopt
+                             , MemoryManager* const manager)
+	: fAdoptedElems(adopt), fCurIndex(0), fToEnum(toEnum), fMemoryManager(manager)
+{
+    if (!toEnum)
+        ThrowXMLwithMemMgr(NullPointerException, XMLExcepts::CPtr_PointerIsZero, fMemoryManager);
+
+    Reset();
+    resetKey();
+}
+
+template <class TVal> RefHash3KeysIdPoolEnumerator<TVal>::~RefHash3KeysIdPoolEnumerator()
+{
+    if (fAdoptedElems)
+        delete fToEnum;
+}
+
+template <class TVal> RefHash3KeysIdPoolEnumerator<TVal>::
+RefHash3KeysIdPoolEnumerator(const RefHash3KeysIdPoolEnumerator<TVal>& toCopy) :
+    XMLEnumerator<TVal>(toCopy)
+    , XMemory(toCopy)
+    , fAdoptedElems(toCopy.fAdoptedElems)
+    , fCurIndex(toCopy.fCurIndex)
+    , fToEnum(toCopy.fToEnum)
+    , fCurElem(toCopy.fCurElem)
+    , fCurHash(toCopy.fCurHash)    
+    , fMemoryManager(toCopy.fMemoryManager)
+{
+}
+
+// ---------------------------------------------------------------------------
+//  RefHash3KeysIdPoolEnumerator: Enum interface
+// ---------------------------------------------------------------------------
+template <class TVal> bool RefHash3KeysIdPoolEnumerator<TVal>::hasMoreElements() const
+{
+    // If our index is zero or past the end, then we are done
+    if (!fCurIndex || (fCurIndex > fToEnum->fIdCounter))
+        return false;
+    return true;
+}
+
+template <class TVal> TVal& RefHash3KeysIdPoolEnumerator<TVal>::nextElement()
+{
+    // If our index is zero or past the end, then we are done
+    if (!fCurIndex || (fCurIndex > fToEnum->fIdCounter))
+        ThrowXMLwithMemMgr(NoSuchElementException, XMLExcepts::Enum_NoMoreElements, fMemoryManager);
+
+    // Return the current element and bump the index
+    return *fToEnum->fIdPtrs[fCurIndex++];
+}
+
+template <class TVal> void RefHash3KeysIdPoolEnumerator<TVal>::Reset()
+{
+    //
+    //  Find the next available bucket element in the pool. We use the id
+    //  array since its very easy to enumerator through by just maintaining
+    //  an index. If the id counter is zero, then its empty and we leave the
+    //  current index to zero.
+    //
+    fCurIndex = fToEnum->fIdCounter ? 1:0;
+
+}
+
+template <class TVal> int RefHash3KeysIdPoolEnumerator<TVal>::size() const
+{
+    return fToEnum->fIdCounter;
+}
+
+template <class TVal> void RefHash3KeysIdPoolEnumerator<TVal>::resetKey()
+{
+    fCurHash = (unsigned int)-1;
+    fCurElem = 0;
+    findNext();
+}
+
+template <class TVal> bool RefHash3KeysIdPoolEnumerator<TVal>::hasMoreKeys() const
+{
+    //
+    //  If our current has is at the max and there are no more elements
+    //  in the current bucket, then no more elements.
+    //
+    if (!fCurElem && (fCurHash == fToEnum->fHashModulus))
+        return false;
+
+    return true;
+}
+
+template <class TVal> void RefHash3KeysIdPoolEnumerator<TVal>::nextElementKey(void*& retKey1, int& retKey2, int& retKey3)
+{
+    // Make sure we have an element to return
+    if (!hasMoreKeys())
+        ThrowXMLwithMemMgr(NoSuchElementException, XMLExcepts::Enum_NoMoreElements, fMemoryManager);
+
+    //
+    //  Save the current element, then move up to the next one for the
+    //  next time around.
+    //
+    RefHash3KeysTableBucketElem<TVal>* saveElem = fCurElem;
+    findNext();
+
+    retKey1 = saveElem->fKey1;
+    retKey2 = saveElem->fKey2;
+    retKey3 = saveElem->fKey3;
+
+    return;
+}
+
+template <class TVal> void RefHash3KeysIdPoolEnumerator<TVal>::findNext()
+{
+    //
+    //  If there is a current element, move to its next element. If this
+    //  hits the end of the bucket, the next block will handle the rest.
+    //
+    if (fCurElem)
+        fCurElem = fCurElem->fNext;
+
+    //
+    //  If the current element is null, then we have to move up to the
+    //  next hash value. If that is the hash modulus, then we cannot
+    //  go further.
+    //
+    if (!fCurElem)
+    {
+        fCurHash++;
+        if (fCurHash == fToEnum->fHashModulus)
+            return;
+
+        // Else find the next non-empty bucket
+        while (fToEnum->fBucketList[fCurHash]==0)
+        {
+            // Bump to the next hash value. If we max out return
+            fCurHash++;
+            if (fCurHash == fToEnum->fHashModulus)
+                return;
+        }
+        fCurElem = fToEnum->fBucketList[fCurHash];
+    }
+}
+
+XERCES_CPP_NAMESPACE_END
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/CountedPointer.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/CountedPointer.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/CountedPointer.hpp	(revision 2674)
@@ -0,0 +1,70 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: CountedPointer.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+#if !defined(COUNTEDPOINTERTO_HPP)
+#define COUNTEDPOINTERTO_HPP
+
+#include <xercesc/util/NullPointerException.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+template <class T> class CountedPointerTo : public XMemory
+{
+public:
+    // -----------------------------------------------------------------------
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+    CountedPointerTo(const CountedPointerTo<T>& toCopy);
+    CountedPointerTo(T* p = 0);
+    ~CountedPointerTo();
+
+
+    // -----------------------------------------------------------------------
+    //  Operators
+    // -----------------------------------------------------------------------
+    CountedPointerTo<T>& operator=(const CountedPointerTo<T>& other);
+    operator T*();
+    const T* operator->() const;
+    T* operator->();
+    const T& operator*() const;
+    T& operator*();
+
+
+private:
+    // -----------------------------------------------------------------------
+    //  Data members
+    //
+    //  fPtr
+    //      The pointer that we are counting. The T type must implement the
+    //      addRef() and removeRef() APIs but it doesn't have to derive from
+    //      any particular type.
+    // -----------------------------------------------------------------------
+    T*  fPtr;
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#if !defined(XERCES_TMPLSINC)
+#include <xercesc/util/CountedPointer.c>
+#endif
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/EmptyStackException.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/EmptyStackException.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/EmptyStackException.hpp	(revision 2674)
@@ -0,0 +1,34 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: EmptyStackException.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(EMPTYSTACKEXCEPTION_HPP)
+#define EMPTYSTACKEXCEPTION_HPP
+
+#include <xercesc/util/XercesDefs.hpp>
+#include <xercesc/util/XMLException.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+MakeXMLException(EmptyStackException, XMLUTIL_EXPORT)
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/XML88591Transcoder.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/XML88591Transcoder.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/XML88591Transcoder.hpp	(revision 2674)
@@ -0,0 +1,89 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef XML88591TRANSCODER_HPP
+#define XML88591TRANSCODER_HPP
+
+#include <xercesc/util/XercesDefs.hpp>
+#include <xercesc/util/TransService.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+//
+//  This class provides an implementation of the XMLTranscoder interface
+//  for a simple 8859-1 transcoder. The parser does some encodings
+//  intrinsically without depending upon external transcoding services.
+//  To make everything more orthagonal, we implement these internal
+//  transcoders using the same transcoder abstraction as the pluggable
+//  transcoding services do.
+//
+class XMLUTIL_EXPORT XML88591Transcoder : public XMLTranscoder
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Public constructors and destructor
+    // -----------------------------------------------------------------------
+    XML88591Transcoder
+    (
+        const   XMLCh* const    encodingName
+        , const unsigned int    blockSize
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    virtual ~XML88591Transcoder();
+
+
+    // -----------------------------------------------------------------------
+    //  Implementation of the XMLTranscoder interface
+    // -----------------------------------------------------------------------
+    virtual unsigned int transcodeFrom
+    (
+        const   XMLByte* const          srcData
+        , const unsigned int            srcCount
+        ,       XMLCh* const            toFill
+        , const unsigned int            maxChars
+        ,       unsigned int&           bytesEaten
+        ,       unsigned char* const    charSizes
+    );
+
+    virtual unsigned int transcodeTo
+    (
+        const   XMLCh* const    srcData
+        , const unsigned int    srcCount
+        ,       XMLByte* const  toFill
+        , const unsigned int    maxBytes
+        ,       unsigned int&   charsEaten
+        , const UnRepOpts       options
+    );
+
+    virtual bool canTranscodeTo
+    (
+        const   unsigned int    toCheck
+    )   const;
+
+
+private :
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    XML88591Transcoder(const XML88591Transcoder&);
+    XML88591Transcoder& operator=(const XML88591Transcoder&);
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/XMLAbstractDoubleFloat.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/XMLAbstractDoubleFloat.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/XMLAbstractDoubleFloat.hpp	(revision 2674)
@@ -0,0 +1,227 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: XMLAbstractDoubleFloat.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#ifndef XML_ABSTRACT_DOUBLE_FLOAT_HPP
+#define XML_ABSTRACT_DOUBLE_FLOAT_HPP
+
+#include <xercesc/util/XMLNumber.hpp>
+#include <xercesc/util/PlatformUtils.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+/***
+ * 3.2.5.1 Lexical representation
+ *
+ *   double values have a lexical representation consisting of a mantissa followed,
+ *   optionally, by the character "E" or "e", followed by an exponent.
+ *
+ *   The exponent ï¿œmustï¿œ be an integer.
+ *   The mantissa must be a decimal number.
+ *   The representations for exponent and mantissa must follow the lexical rules
+ *   for integer and decimal.
+ *
+ *   If the "E" or "e" and the following exponent are omitted,
+ *   an exponent value of 0 is assumed.
+***/
+
+/***
+ * 3.2.4.1 Lexical representation
+ *
+ *   float values have a lexical representation consisting of a mantissa followed,
+ *   optionally, by the character "E" or "e", followed by an exponent.
+ *
+ *   The exponent ï¿œmustï¿œ be an integer.
+ *   The mantissa must be a decimal number.
+ *   The representations for exponent and mantissa must follow the lexical rules
+ *   for integer and decimal.
+ *
+ *   If the "E" or "e" and the following exponent are omitted,
+ *   an exponent value of 0 is assumed.
+***/
+
+class XMLUTIL_EXPORT XMLAbstractDoubleFloat : public XMLNumber
+{
+public:
+
+    enum LiteralType
+    {
+        NegINF,
+        PosINF,
+        NaN,
+        SpecialTypeNum,
+        Normal
+    };
+
+    virtual ~XMLAbstractDoubleFloat();
+
+    static XMLCh* getCanonicalRepresentation
+                        (
+                          const XMLCh*         const rawData
+                        ,       MemoryManager* const memMgr = XMLPlatformUtils::fgMemoryManager
+                        );
+
+    /**
+     *
+     *  Deprecated: please use getRawData
+     *
+     */
+    virtual XMLCh*        toString() const;
+    
+    virtual XMLCh*        getRawData() const;
+
+    virtual const XMLCh*  getFormattedString() const;
+
+    virtual int           getSign() const;
+
+    MemoryManager*        getMemoryManager() const;
+
+    inline  bool          isDataConverted()  const;
+
+    inline  bool          isDataOverflowed()  const;
+
+    inline  double        getValue() const;
+
+    inline  LiteralType   getType() const;
+
+    /***
+     *
+     * The decimal point delimiter for the schema double/float type is
+     * defined to be a period and is not locale-specific. So, it must
+     * be replaced with the local-specific delimiter before converting
+     * from string to double/float.
+     *
+     ***/
+    static void            normalizeDecimalPoint(char* const toNormal);
+
+    /***
+     * Support for Serialization/De-serialization
+     ***/
+    DECL_XSERIALIZABLE(XMLAbstractDoubleFloat)
+
+protected:
+
+    //
+    // To be used by derived class exclusively
+    //
+    XMLAbstractDoubleFloat(MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+
+    void                  init(const XMLCh* const strValue);
+
+    /**
+	 * Compares this object to the specified object.
+	 * The result is <code>true</code> if and only if the argument is not
+	 * <code>null</code> and is an <code>XMLAbstractDoubleFloat</code> object that contains
+	 * the same <code>int</code> value as this object.
+	 *
+	 * @param   lValue the object to compare with.
+	 * @param   rValue the object to compare against.
+     * @param manager The MemoryManager to use to allocate objects
+	 * @return  <code>true</code> if the objects are the same;
+	 *          <code>false</code> otherwise.
+	 */
+
+    static int            compareValues(const XMLAbstractDoubleFloat* const lValue
+                                      , const XMLAbstractDoubleFloat* const rValue
+                                      , MemoryManager* const manager);
+
+    //
+    // to be overridden by derived class
+    //
+    virtual void          checkBoundary(char* const strValue) = 0;
+
+    void
+    convert(char* const strValue);
+
+private:
+    //
+    // Unimplemented
+    //
+    // copy ctor
+    // assignment ctor
+    //
+    XMLAbstractDoubleFloat(const XMLAbstractDoubleFloat& toCopy);
+    XMLAbstractDoubleFloat& operator=(const XMLAbstractDoubleFloat& toAssign);
+
+	void                  normalizeZero(XMLCh* const);
+
+    inline bool           isSpecialValue() const;
+
+    static int            compareSpecial(const XMLAbstractDoubleFloat* const specialValue                                       
+                                       , MemoryManager* const manager);
+
+    void                  formatString();
+
+protected:
+    double                  fValue;
+    LiteralType             fType;
+    bool                    fDataConverted;
+    bool                    fDataOverflowed;
+
+private:
+    int                     fSign;
+    XMLCh*                  fRawData;
+
+    //
+    // If the original string is not lexcially the same as the five
+    // special value notations, and the value is converted to
+    // special value due underlying platform restriction on data
+    // representation, then this string is constructed and
+    // takes the form "original_string (special_value_notation)", 
+    // otherwise it is empty.
+    //
+    XMLCh*                  fFormattedString;
+    MemoryManager*          fMemoryManager;
+
+};
+
+inline bool XMLAbstractDoubleFloat::isSpecialValue() const
+{
+    return (fType < SpecialTypeNum);
+}
+
+inline MemoryManager* XMLAbstractDoubleFloat::getMemoryManager() const
+{
+    return fMemoryManager;
+}
+
+inline bool XMLAbstractDoubleFloat::isDataConverted() const
+{
+    return fDataConverted;
+}
+
+inline bool XMLAbstractDoubleFloat::isDataOverflowed() const
+{
+    return fDataOverflowed;
+}
+
+inline double XMLAbstractDoubleFloat::getValue() const
+{
+    return fValue;
+}
+
+inline  XMLAbstractDoubleFloat::LiteralType   XMLAbstractDoubleFloat::getType() const
+{
+    return fType;
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/NetAccessors/MacOSURLAccessCF/MacOSURLAccessCF.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/NetAccessors/MacOSURLAccessCF/MacOSURLAccessCF.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/NetAccessors/MacOSURLAccessCF/MacOSURLAccessCF.hpp	(revision 2674)
@@ -0,0 +1,67 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: MacOSURLAccessCF.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+#if !defined(MACOSURLACCESSCF_HPP)
+#define MACOSURLACCESSCF_HPP
+
+
+#include <xercesc/util/XercesDefs.hpp>
+#include <xercesc/util/XMLURL.hpp>
+#include <xercesc/util/BinInputStream.hpp>
+#include <xercesc/util/XMLNetAccessor.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+//
+// This class is the wrapper for the Mac OS CFURLAccess code
+// (in CoreServices.framework) which provides access to network
+// resources.  It's being used here to add the ability to
+// use HTTP URL's as the system id's in the XML decl clauses.
+//
+
+class XMLUTIL_EXPORT MacOSURLAccessCF : public XMLNetAccessor
+{
+public :
+    MacOSURLAccessCF();
+    ~MacOSURLAccessCF();
+
+    BinInputStream* makeNew(const XMLURL&  urlSource, const XMLNetHTTPInfo* httpInfo=0);
+    const XMLCh* getId() const;
+
+private :
+    static const XMLCh sMyID[];
+
+    MacOSURLAccessCF(const MacOSURLAccessCF&);
+    MacOSURLAccessCF& operator=(const MacOSURLAccessCF&);
+
+};
+
+inline const XMLCh*
+MacOSURLAccessCF::getId() const
+{
+    return sMyID;
+}
+
+
+XERCES_CPP_NAMESPACE_END
+
+#endif // MACOSURLACCESSCF_HPP
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/NetAccessors/MacOSURLAccessCF/URLAccessCFBinInputStream.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/NetAccessors/MacOSURLAccessCF/URLAccessCFBinInputStream.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/NetAccessors/MacOSURLAccessCF/URLAccessCFBinInputStream.hpp	(revision 2674)
@@ -0,0 +1,74 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: URLAccessCFBinInputStream.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(URLACCESSCFBININPUTSTREAM_HPP)
+#define URLACCESSCFBININPUTSTREAM_HPP
+
+
+#include <xercesc/util/XMLURL.hpp>
+#include <xercesc/util/XMLExceptMsgs.hpp>
+#include <xercesc/util/BinInputStream.hpp>
+
+#if defined(__APPLE__)
+    //	Framework includes from ProjectBuilder
+	#include <CoreServices/CoreServices.h>
+#else
+    //	Classic includes otherwise
+	#include <CFURL.h>
+	#include <CFURLAccess.h>
+#endif
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+//
+// This class implements the BinInputStream interface specified by the XML
+// parser.
+//
+
+class XMLUTIL_EXPORT URLAccessCFBinInputStream : public BinInputStream
+{
+public :
+    URLAccessCFBinInputStream(const XMLURL&  urlSource);
+    ~URLAccessCFBinInputStream();
+
+    unsigned int curPos() const;
+    unsigned int readBytes
+    (
+                XMLByte* const  toFill
+        , const unsigned int    maxToRead
+    );
+
+
+private :
+    CFDataRef			mDataRef;
+    CFIndex				mBytesProcessed;
+};
+
+
+inline unsigned int
+URLAccessCFBinInputStream::curPos() const
+{
+    return mBytesProcessed;
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif // URLACCESSCFBININPUTSTREAM_HPP
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/NetAccessors/MacOSURLAccess/URLAccessBinInputStream.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/NetAccessors/MacOSURLAccess/URLAccessBinInputStream.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/NetAccessors/MacOSURLAccess/URLAccessBinInputStream.hpp	(revision 2674)
@@ -0,0 +1,76 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: URLAccessBinInputStream.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(URLACCESSBININPUTSTREAM_HPP)
+#define URLACCESSBININPUTSTREAM_HPP
+
+
+#include <xercesc/util/XMLURL.hpp>
+#include <xercesc/util/XMLExceptMsgs.hpp>
+#include <xercesc/util/BinInputStream.hpp>
+
+#if defined(__APPLE__)
+    //	Framework includes from ProjectBuilder
+	#include <Carbon/Carbon.h>
+#else
+    //	Classic includes otherwise
+	#include <URLAccess.h>
+#endif
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+//
+// This class implements the BinInputStream interface specified by the XML
+// parser.
+//
+
+class XMLUTIL_EXPORT URLAccessBinInputStream : public BinInputStream
+{
+public :
+    URLAccessBinInputStream(const XMLURL&  urlSource);
+    ~URLAccessBinInputStream();
+
+    unsigned int curPos() const;
+    unsigned int readBytes
+    (
+                XMLByte* const  toFill
+        , const unsigned int    maxToRead
+    );
+
+
+private :
+    unsigned int        mBytesProcessed;
+    URLReference		mURLReference;
+    void*				mBuffer;			// Current buffer from URLAccess (or NULL)
+    char*				mBufPos;			// Read position in buffer
+    Size				mBufAvailable;		// Bytes available
+};
+
+
+inline unsigned int
+URLAccessBinInputStream::curPos() const
+{
+    return mBytesProcessed;
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif // URLACCESSBININPUTSTREAM_HPP
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/NetAccessors/MacOSURLAccess/MacOSURLAccess.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/NetAccessors/MacOSURLAccess/MacOSURLAccess.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/NetAccessors/MacOSURLAccess/MacOSURLAccess.hpp	(revision 2674)
@@ -0,0 +1,68 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: MacOSURLAccess.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+#if !defined(MACOSURLACCESS_HPP)
+#define MACOSURLACCESS_HPP
+
+
+#include <xercesc/util/XercesDefs.hpp>
+#include <xercesc/util/XMLURL.hpp>
+#include <xercesc/util/BinInputStream.hpp>
+#include <xercesc/util/XMLNetAccessor.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+//
+// This class is the wrapper for the Mac OS URLAccess code
+// which provides access to network resources.
+// It's being used here to add the ability to
+// use HTTP URL's as the system id's in the XML decl clauses.
+//
+
+class XMLUTIL_EXPORT MacOSURLAccess : public XMLNetAccessor
+{
+public :
+    MacOSURLAccess();
+    ~MacOSURLAccess();
+
+    BinInputStream* makeNew(const XMLURL&  urlSource, const XMLNetHTTPInfo* httpInfo=0);
+    const XMLCh* getId() const;
+
+private :
+    static const XMLCh sMyID[];
+
+    MacOSURLAccess(const MacOSURLAccess&);
+    MacOSURLAccess& operator=(const MacOSURLAccess&);
+
+};
+
+inline const XMLCh*
+MacOSURLAccess::getId() const
+{
+    return sMyID;
+}
+
+
+XERCES_CPP_NAMESPACE_END
+
+
+#endif // MACOSURLACCESS_HPP
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/NetAccessors/Socket/SocketNetAccessor.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/NetAccessors/Socket/SocketNetAccessor.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/NetAccessors/Socket/SocketNetAccessor.hpp	(revision 2674)
@@ -0,0 +1,65 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: SocketNetAccessor.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+#if !defined(SOCKETNETACCESSOR_HPP)
+#define SOCKETNETACCESSOR_HPP
+
+
+#include <xercesc/util/XercesDefs.hpp>
+#include <xercesc/util/XMLURL.hpp>
+#include <xercesc/util/BinInputStream.hpp>
+#include <xercesc/util/XMLNetAccessor.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+//
+// This class is the wrapper for the socket based code which
+// provides the ability to fetch a resource specified using
+// a HTTP or FTP URL.
+//
+
+class XMLUTIL_EXPORT SocketNetAccessor : public XMLNetAccessor
+{
+public :
+    SocketNetAccessor();
+    ~SocketNetAccessor();
+
+    virtual BinInputStream* makeNew(const XMLURL&  urlSource, const XMLNetHTTPInfo* httpInfo=0);
+    virtual const XMLCh* getId() const;
+
+private :
+    static const XMLCh fgMyName[];
+
+    SocketNetAccessor(const SocketNetAccessor&);
+    SocketNetAccessor& operator=(const SocketNetAccessor&);
+
+}; // SocketNetAccessor
+
+inline const XMLCh* SocketNetAccessor::getId() const
+{
+    return fgMyName;
+}
+
+
+XERCES_CPP_NAMESPACE_END
+
+#endif // SOCKETNETACCESSOR_HPP
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/NetAccessors/Socket/UnixHTTPURLInputStream.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/NetAccessors/Socket/UnixHTTPURLInputStream.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/NetAccessors/Socket/UnixHTTPURLInputStream.hpp	(revision 2674)
@@ -0,0 +1,92 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: UnixHTTPURLInputStream.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(UNIXHTTPURLINPUTSTREAM_HPP)
+#define UNIXHTTPURLINPUTSTREAM_HPP
+
+
+#include <xercesc/util/XMLURL.hpp>
+#include <xercesc/util/XMLExceptMsgs.hpp>
+#include <xercesc/util/BinInputStream.hpp>
+#include <xercesc/util/XMLNetAccessor.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+//
+// This class implements the BinInputStream interface specified by the XML
+// parser.
+//
+
+class XMLUTIL_EXPORT UnixHTTPURLInputStream : public BinInputStream
+{
+public :
+    UnixHTTPURLInputStream(const XMLURL&  urlSource, const XMLNetHTTPInfo* httpInfo=0);
+    ~UnixHTTPURLInputStream();
+
+    unsigned int curPos() const;
+    unsigned int readBytes
+    (
+                XMLByte* const  toFill
+        , const unsigned int    maxToRead
+    );
+
+
+private :
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    UnixHTTPURLInputStream(const UnixHTTPURLInputStream&);
+    UnixHTTPURLInputStream& operator=(const UnixHTTPURLInputStream&);
+
+    // -----------------------------------------------------------------------
+    //  Private data members
+    //
+    //  fSocket
+    //      The socket representing the connection to the remote file.
+    //  fBytesProcessed
+    //      Its a rolling count of the number of bytes processed off this
+    //      input stream.
+    //  fBuffer
+    //      Holds the http header, plus the first part of the actual
+    //      data.  Filled at the time the stream is opened, data goes
+    //      out to user in response to readBytes().
+    //  fBufferPos, fBufferEnd
+    //      Pointers into fBuffer, showing start and end+1 of content
+    //      that readBytes must return.
+    // -----------------------------------------------------------------------
+
+    int                 fSocket;
+    unsigned int        fBytesProcessed;
+    char                fBuffer[4000];
+    char *              fBufferEnd;
+    char *              fBufferPos;
+    MemoryManager*      fMemoryManager;
+}; // UnixHTTPURLInputStream
+
+
+inline unsigned int UnixHTTPURLInputStream::curPos() const
+{
+    return fBytesProcessed;
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif // UNIXHTTPURLINPUTSTREAM_HPP
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/NetAccessors/libWWW/LibWWWNetAccessor.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/NetAccessors/libWWW/LibWWWNetAccessor.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/NetAccessors/libWWW/LibWWWNetAccessor.hpp	(revision 2674)
@@ -0,0 +1,64 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: LibWWWNetAccessor.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+#if !defined(LIBWWWNETACCESSOR_HPP)
+#define LIBWWWNETACCESSOR_HPP
+
+
+#include <xercesc/util/XercesDefs.hpp>
+#include <xercesc/util/XMLURL.hpp>
+#include <xercesc/util/BinInputStream.hpp>
+#include <xercesc/util/XMLNetAccessor.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+//
+// This class is the wrapper for the libWWW library which provides
+// support for HTTP and other network protocols, so that URL's using
+// these protocols can be used in system id's in the XML decl clauses.
+//
+
+class XMLUTIL_EXPORT LibWWWNetAccessor : public XMLNetAccessor
+{
+public :
+    LibWWWNetAccessor();
+    ~LibWWWNetAccessor();
+
+    BinInputStream* makeNew(const XMLURL&  urlSource, const XMLNetHTTPInfo* httpInfo=0);
+    const XMLCh* getId() const;
+
+private :
+    static const XMLCh fgMyName[];
+
+    LibWWWNetAccessor(const LibWWWNetAccessor&);
+    LibWWWNetAccessor& operator=(const LibWWWNetAccessor&);
+
+}; // LibWWWNetAccessor
+
+inline const XMLCh* LibWWWNetAccessor::getId() const
+{
+    return fgMyName;
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif // LIBWWWNETACCESSOR_HPP
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/NetAccessors/libWWW/BinURLInputStream.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/NetAccessors/libWWW/BinURLInputStream.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/NetAccessors/libWWW/BinURLInputStream.hpp	(revision 2674)
@@ -0,0 +1,106 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: BinURLInputStream.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(BINURLINPUTSTREAM_HPP)
+#define BINURLINPUTSTREAM_HPP
+
+
+#include <xercesc/util/XMLURL.hpp>
+#include <xercesc/util/XMLExceptMsgs.hpp>
+#include <xercesc/util/BinInputStream.hpp>
+
+//
+// Forward reference the libWWW constructs here, so as to avoid including
+// any of the libWWW headers in this file. Just being careful in isolating
+// the files that explicitly need to include the libWWW headers.
+//
+
+struct _HTAnchor;
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+//
+// This class implements the BinInputStream interface specified by the XML
+// parser.
+//
+
+class XMLUTIL_EXPORT BinURLInputStream : public BinInputStream
+{
+public :
+    BinURLInputStream(const XMLURL&  urlSource);
+    ~BinURLInputStream();
+
+    unsigned int curPos() const;
+    unsigned int readBytes
+    (
+                XMLByte* const  toFill
+        , const unsigned int    maxToRead
+    );
+    void reset();
+    unsigned int bytesAvail() const;
+
+
+private :
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    BinURLInputStream(const BinURLInputStream&);
+    BinURLInputStream& operator=(const BinURLInputStream&); 
+
+    // -----------------------------------------------------------------------
+    //  Private data members
+    //
+    //  fAnchor
+    //      This is the handle that LibWWW returns for the remote file that
+    //      is being addressed.
+    //  fBuffer
+    //      This is the array in which the data is stored after reading it
+    //      of the network. The maximum size of this array is decided in the
+    //      constructor via a file specific #define.
+    //  fBufferIndex
+    //      Its the index into fBuffer and points to the next unprocessed
+    //      character. When the parser asks for more data to be read of the
+    //      stream, then fBuffer[fBufferIndex] is the first byte returned,
+    //      unless fBufferIndex equals fBufferSize indicating that all
+    //      data in the fBuffer has been processed.
+    //  fBufferSize
+    //      This represents the extent of valid data in the fBuffer array.
+    //  fRemoteFileSize
+    //      This stores the size in bytes of the remote file addressed by
+    //      this URL input stream.
+    //  fBytesProcessed
+    //      Its a rolling count of the number of bytes processed off this
+    //      input stream. Its only reset back to zero, if the stream is
+    //      reset. The maximum value this can have is fRemoteFileSize.
+    // -----------------------------------------------------------------------
+
+    struct _HTAnchor*   fAnchor;
+    XMLByte*            fBuffer;
+    unsigned int        fBufferIndex;
+    unsigned int        fBufferSize;
+    int                 fRemoteFileSize;
+    unsigned int        fBytesProcessed;
+    MemoryManager*      fMemoryManager;
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif // BINURLINPUTSTREAM_HPP
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/NetAccessors/WinSock/BinHTTPURLInputStream.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/NetAccessors/WinSock/BinHTTPURLInputStream.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/NetAccessors/WinSock/BinHTTPURLInputStream.hpp	(revision 2674)
@@ -0,0 +1,114 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: BinHTTPURLInputStream.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(BINHTTPURLINPUTSTREAM_HPP)
+#define BINHTTPURLINPUTSTREAM_HPP
+
+
+#include <xercesc/util/XMLURL.hpp>
+#include <xercesc/util/XMLExceptMsgs.hpp>
+#include <xercesc/util/BinInputStream.hpp>
+#include <xercesc/util/Mutexes.hpp>
+#include <xercesc/util/XMLNetAccessor.hpp>
+
+//
+// This class implements the BinInputStream interface specified by the XML
+// parser.
+//
+struct hostent;
+struct sockaddr;
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class XMLUTIL_EXPORT BinHTTPURLInputStream : public BinInputStream
+{
+public :
+    BinHTTPURLInputStream(const XMLURL&  urlSource, const XMLNetHTTPInfo* httpInfo=0);
+    ~BinHTTPURLInputStream();
+
+    unsigned int curPos() const;
+    unsigned int readBytes
+    (
+                XMLByte* const  toFill
+        , const unsigned int    maxToRead
+    );
+
+	static void Cleanup();
+
+
+private :
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    BinHTTPURLInputStream(const BinHTTPURLInputStream&);
+    BinHTTPURLInputStream& operator=(const BinHTTPURLInputStream&); 
+    // -----------------------------------------------------------------------
+    //  Private data members
+    //
+    //  fSocketHandle
+    //      The socket representing the connection to the remote file.
+    //      We deliberately did not define the type to be SOCKET, so as to
+    //      avoid bringing in any Windows header into this file.
+    //  fBytesProcessed
+    //      Its a rolling count of the number of bytes processed off this
+    //      input stream.
+    //  fBuffer
+    //      Holds the http header, plus the first part of the actual
+    //      data.  Filled at the time the stream is opened, data goes
+    //      out to user in response to readBytes().
+    //  fBufferPos, fBufferEnd
+    //      Pointers into fBuffer, showing start and end+1 of content
+    //      that readBytes must return.
+    // -----------------------------------------------------------------------
+    MemoryManager*      fMemoryManager;
+    unsigned int        fSocketHandle;
+    unsigned int        fBytesProcessed;
+    char                fBuffer[4000];
+    char *              fBufferEnd;
+    char *              fBufferPos;
+    static bool         fInitialized;
+    static XMLMutex*        fInitMutex;
+
+	static void Initialize(MemoryManager* const manager  = XMLPlatformUtils::fgMemoryManager);
+
+	inline static hostent* gethostbyname(const char* name);
+	inline static unsigned long inet_addr(const char* cp);
+	inline static hostent* gethostbyaddr(const char* addr,int len,int type);
+	inline static unsigned short htons(unsigned short hostshort);
+	inline static unsigned int socket(int af,int type,int protocol);
+	inline static int connect(unsigned int s,const sockaddr* name,int namelen);
+	inline static int send(unsigned int s,const char* buf,int len,int flags);
+	inline static int recv(unsigned int s,char* buf,int len,int flags);
+	inline static int shutdown(unsigned int s,int how);
+	inline static int closesocket(unsigned int socket);
+
+    friend class SocketJanitor;
+};
+
+
+inline unsigned int BinHTTPURLInputStream::curPos() const
+{
+    return fBytesProcessed;
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif // BINHTTPURLINPUTSTREAM_HPP
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/NetAccessors/WinSock/WinSockNetAccessor.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/NetAccessors/WinSock/WinSockNetAccessor.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/NetAccessors/WinSock/WinSockNetAccessor.hpp	(revision 2674)
@@ -0,0 +1,66 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: WinSockNetAccessor.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+#if !defined(WINSOCKNETACCESSOR_HPP)
+#define WINSOCKNETACCESSOR_HPP
+
+
+#include <xercesc/util/XercesDefs.hpp>
+#include <xercesc/util/XMLURL.hpp>
+#include <xercesc/util/BinInputStream.hpp>
+#include <xercesc/util/XMLNetAccessor.hpp>
+
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+//
+// This class is the wrapper for the WinSock library which provides
+// support for sockets. Its being used here to add the ability to
+// use HTTP URL's as the system id's in the XML decl clauses.
+//
+
+class XMLUTIL_EXPORT WinSockNetAccessor : public XMLNetAccessor
+{
+public :
+    WinSockNetAccessor();
+    ~WinSockNetAccessor();
+
+    virtual BinInputStream* makeNew(const XMLURL&  urlSource, const XMLNetHTTPInfo* httpInfo=0);
+    virtual const XMLCh* getId() const;
+
+private :
+    static const XMLCh fgMyName[];
+
+    WinSockNetAccessor(const WinSockNetAccessor&);
+    WinSockNetAccessor& operator=(const WinSockNetAccessor&);
+
+}; // WinSockNetAccessor
+
+inline const XMLCh* WinSockNetAccessor::getId() const
+{
+    return fgMyName;
+}
+
+XERCES_CPP_NAMESPACE_END
+
+
+#endif // WINSOCKNETACCESSOR_HPP
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Janitor.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Janitor.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Janitor.hpp	(revision 2674)
@@ -0,0 +1,165 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: Janitor.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+#if !defined(JANITOR_HPP)
+#define JANITOR_HPP
+
+#include <xercesc/util/XMemory.hpp>
+#include <xercesc/framework/MemoryManager.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+template <class T> class Janitor : public XMemory
+{
+public  :
+    // -----------------------------------------------------------------------
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+    Janitor(T* const toDelete);
+    ~Janitor();
+
+    // -----------------------------------------------------------------------
+    //  Public, non-virtual methods
+    // -----------------------------------------------------------------------
+    void orphan();
+
+    //  small amount of auto_ptr compatibility
+    T& operator*() const;
+    T* operator->() const;
+    T* get() const;
+    T* release();
+    void reset(T* p = 0);
+    bool isDataNull();
+
+private :
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    Janitor();
+    Janitor(const Janitor<T>&);
+    Janitor<T>& operator=(const Janitor<T>&);
+
+    // -----------------------------------------------------------------------
+    //  Private data members
+    //
+    //  fData
+    //      This is the pointer to the object or structure that must be
+    //      destroyed when this object is destroyed.
+    // -----------------------------------------------------------------------
+    T*  fData;
+};
+
+
+
+template <class T> class ArrayJanitor : public XMemory
+{
+public  :
+    // -----------------------------------------------------------------------
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+    ArrayJanitor(T* const toDelete);
+    ArrayJanitor(T* const toDelete, MemoryManager* const manager);
+    ~ArrayJanitor();
+
+
+    // -----------------------------------------------------------------------
+    //  Public, non-virtual methods
+    // -----------------------------------------------------------------------
+    void orphan();
+
+	//	small amount of auto_ptr compatibility
+	T&	operator[](int index) const;
+	T*	get() const;
+	T*	release();
+	void reset(T* p = 0);
+	void reset(T* p, MemoryManager* const manager);
+
+private :
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+	ArrayJanitor();
+    ArrayJanitor(const ArrayJanitor<T>& copy);
+    ArrayJanitor<T>& operator=(const ArrayJanitor<T>& copy);    
+
+    // -----------------------------------------------------------------------
+    //  Private data members
+    //
+    //  fData
+    //      This is the pointer to the object or structure that must be
+    //      destroyed when this object is destroyed.
+    // -----------------------------------------------------------------------
+    T*  fData;
+    MemoryManager* fMemoryManager;
+};
+
+
+
+template <class T> class JanitorMemFunCall
+{
+public  :
+
+    typedef void (T::*MFPT) ();
+
+    // -----------------------------------------------------------------------
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+    JanitorMemFunCall(
+        T*      object,
+        MFPT    toCall);
+
+    ~JanitorMemFunCall();
+
+    // -----------------------------------------------------------------------
+    //  Public, non-virtual methods
+    // -----------------------------------------------------------------------
+	void release();
+
+private :
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    JanitorMemFunCall();
+    JanitorMemFunCall(const JanitorMemFunCall<T>&);
+    JanitorMemFunCall<T>& operator=(const JanitorMemFunCall<T>&);
+
+    // -----------------------------------------------------------------------
+    //  Private data members
+    //
+    //  fObject
+    //      This is the pointer to the object for which we will call the
+    //      member function when this object is destroyed.
+    // -----------------------------------------------------------------------
+    T*      fObject;
+    MFPT    fToCall;
+};
+
+
+
+
+XERCES_CPP_NAMESPACE_END
+
+#if !defined(XERCES_TMPLSINC)
+#include <xercesc/util/Janitor.c>
+#endif
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/RefHashTableOf.c
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/RefHashTableOf.c	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/RefHashTableOf.c	(revision 2674)
@@ -0,0 +1,648 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: RefHashTableOf.c 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+// ---------------------------------------------------------------------------
+//  Include
+// ---------------------------------------------------------------------------
+#if defined(XERCES_TMPLSINC)
+#include <xercesc/util/RefHashTableOf.hpp>
+#endif
+
+#include <xercesc/util/Janitor.hpp>
+#include <xercesc/util/NullPointerException.hpp>
+#include <assert.h>
+#include <new>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+// ---------------------------------------------------------------------------
+//  RefHashTableOf: Constructors and Destructor
+// ---------------------------------------------------------------------------
+template <class TVal>
+RefHashTableOf<TVal>::RefHashTableOf( const unsigned int modulus
+                                    , const bool adoptElems
+                                    , MemoryManager* const manager)
+
+    : fMemoryManager(manager)
+    , fAdoptedElems(adoptElems)
+    , fBucketList(0)
+    , fHashModulus(modulus)
+    , fInitialModulus(modulus)
+    , fCount(0)
+    , fHash(0)
+
+{
+    initialize(modulus);
+	
+	// create default hasher
+	fHash = new (fMemoryManager) HashXMLCh();
+}
+
+template <class TVal>
+RefHashTableOf<TVal>::RefHashTableOf( const unsigned int modulus
+                                    , const bool adoptElems
+                                    , HashBase* hashBase
+                                    , MemoryManager* const manager)
+
+    : fMemoryManager(manager)
+    , fAdoptedElems(adoptElems)
+    , fBucketList(0)
+    , fHashModulus(modulus)
+    , fInitialModulus(modulus)
+    , fCount(0)
+    , fHash(0)
+{
+    initialize(modulus);
+    // set hasher
+    fHash = hashBase;
+}
+
+template <class TVal>
+RefHashTableOf<TVal>::RefHashTableOf(const unsigned int modulus
+                                     , MemoryManager* const manager)
+
+    : fMemoryManager(manager)
+    , fAdoptedElems(true)
+    , fBucketList(0)
+    , fHashModulus(modulus)
+    , fInitialModulus(modulus)
+    , fCount(0)
+    , fHash(0)
+{
+    initialize(modulus);
+
+    // create default hasher
+    fHash = new (fMemoryManager) HashXMLCh();
+}
+
+template <class TVal> void RefHashTableOf<TVal>::initialize(const unsigned int modulus)
+{
+    if (modulus == 0)
+        ThrowXMLwithMemMgr(IllegalArgumentException, XMLExcepts::HshTbl_ZeroModulus, fMemoryManager);
+
+    // Allocate the bucket list and zero them
+    fBucketList = (RefHashTableBucketElem<TVal>**) fMemoryManager->allocate
+    (
+        fHashModulus * sizeof(RefHashTableBucketElem<TVal>*)
+    ); //new RefHashTableBucketElem<TVal>*[fHashModulus];
+    for (unsigned int index = 0; index < fHashModulus; index++)
+        fBucketList[index] = 0;
+}
+
+template <class TVal> RefHashTableOf<TVal>::~RefHashTableOf()
+{
+    cleanup();
+}
+
+
+// ---------------------------------------------------------------------------
+//  RefHashTableOf: Element management
+// ---------------------------------------------------------------------------
+template <class TVal> bool RefHashTableOf<TVal>::isEmpty() const
+{
+    return fCount==0;
+}
+
+template <class TVal> bool RefHashTableOf<TVal>::
+containsKey(const void* const key) const
+{
+    unsigned int hashVal;
+    const RefHashTableBucketElem<TVal>* findIt = findBucketElem(key, hashVal);
+    return (findIt != 0);
+}
+
+template <class TVal> void RefHashTableOf<TVal>::
+removeKey(const void* const key)
+{
+    // Hash the key
+    unsigned int hashVal = fHash->getHashVal(key, fHashModulus, fMemoryManager);
+    assert(hashVal < fHashModulus);
+
+    //
+    //  Search the given bucket for this key. Keep up with the previous
+    //  element so we can patch around it.
+    //
+    RefHashTableBucketElem<TVal>* curElem = fBucketList[hashVal];
+    RefHashTableBucketElem<TVal>* lastElem = 0;
+
+    while (curElem)
+    {
+        if (fHash->equals(key, curElem->fKey))
+        {
+            if (!lastElem)
+            {
+                // It was the first in the bucket
+                fBucketList[hashVal] = curElem->fNext;
+            }
+             else
+            {
+                // Patch around the current element
+                lastElem->fNext = curElem->fNext;
+            }
+
+            // If we adopted the data, then delete it too
+            //    (Note:  the userdata hash table instance has data type of void *.
+            //    This will generate compiler warnings here on some platforms, but they
+            //    can be ignored since fAdoptedElements is false.
+            if (fAdoptedElems)
+                delete curElem->fData;
+
+            // Then delete the current element and move forward
+ 	        // delete curElem;
+            // destructor doesn't do anything...
+			// curElem->~RefHashTableBucketElem();
+            fMemoryManager->deallocate(curElem);            
+
+            fCount--;
+
+            return;
+        }
+
+        // Move both pointers upwards
+        lastElem = curElem;
+        curElem = curElem->fNext;
+    }
+
+    // We never found that key
+    ThrowXMLwithMemMgr(NoSuchElementException, XMLExcepts::HshTbl_NoSuchKeyExists, fMemoryManager);
+}
+
+template <class TVal> void RefHashTableOf<TVal>::removeAll()
+{
+    if(isEmpty())
+        return;
+
+    // Clean up the buckets first
+    for (unsigned int buckInd = 0; buckInd < fHashModulus; buckInd++)
+    {
+        // Get the bucket list head for this entry
+        RefHashTableBucketElem<TVal>* curElem = fBucketList[buckInd];
+        RefHashTableBucketElem<TVal>* nextElem;
+        while (curElem)
+        {
+            // Save the next element before we hose this one
+            nextElem = curElem->fNext;
+
+            // If we adopted the data, then delete it too
+            //    (Note:  the userdata hash table instance has data type of void *.
+            //    This will generate compiler warnings here on some platforms, but they
+            //    can be ignored since fAdoptedElements is false.
+            if (fAdoptedElems)
+                delete curElem->fData;
+
+            // Then delete the current element and move forward
+ 	        // delete curElem;
+            // destructor doesn't do anything...
+			// curElem->~RefHashTableBucketElem();
+            fMemoryManager->deallocate(curElem);            
+            curElem = nextElem;
+        }
+
+        // Clean out this entry
+        fBucketList[buckInd] = 0;
+    }
+
+    fCount = 0;
+}
+
+// This method returns the data associated with a key. The key entry is deleted. The caller
+// now owns the returned data (case of hashtable adopting the data).
+// This function is called by transferElement so that the undeleted data can be transferred
+// to a new key which will own that data.
+template <class TVal> TVal* RefHashTableOf<TVal>::
+orphanKey(const void* const key)
+{
+    // Hash the key
+    TVal* retVal = 0;
+    unsigned int hashVal = fHash->getHashVal(key, fHashModulus, fMemoryManager);
+    assert(hashVal < fHashModulus);
+
+    //
+    //  Search the given bucket for this key. Keep up with the previous
+    //  element so we can patch around it.
+    //
+    RefHashTableBucketElem<TVal>* curElem = fBucketList[hashVal];
+    RefHashTableBucketElem<TVal>* lastElem = 0;
+
+    while (curElem)
+    {
+        if (fHash->equals(key, curElem->fKey))
+        {
+            if (!lastElem)
+            {
+                // It was the first in the bucket
+                fBucketList[hashVal] = curElem->fNext;
+            }
+            else
+            {
+                // Patch around the current element
+                lastElem->fNext = curElem->fNext;
+            }
+
+            retVal = curElem->fData;
+
+            // Delete the current element
+            // delete curElem;
+            // destructor doesn't do anything...
+			// curElem->~RefHashTableBucketElem();
+            fMemoryManager->deallocate(curElem);            
+            break;
+        }
+
+        // Move both pointers upwards
+        lastElem = curElem;
+        curElem = curElem->fNext;
+    }
+
+    // We never found that key
+    if (!retVal)
+        ThrowXMLwithMemMgr(NoSuchElementException, XMLExcepts::HshTbl_NoSuchKeyExists, fMemoryManager);
+
+    return retVal;
+}
+
+//
+// cleanup():
+//   similar to destructor
+//   called to cleanup the memory, in case destructor cannot be called
+//
+template <class TVal> void RefHashTableOf<TVal>::cleanup()
+{
+    removeAll();
+
+    // Then delete the bucket list & hasher
+    fMemoryManager->deallocate(fBucketList); //delete [] fBucketList;
+    fBucketList = 0;
+    delete fHash;
+}
+
+//
+// reinitialize():
+//   similar to constructor
+//   called to re-construct the fElemList from scratch again
+//
+template <class TVal> void RefHashTableOf<TVal>::reinitialize(HashBase* hashBase)
+{
+    if (fBucketList || fHash)
+        cleanup();
+
+    fHashModulus = fInitialModulus;
+    initialize(fHashModulus);
+
+    if (hashBase)
+        fHash = hashBase;
+    else
+        fHash = new (fMemoryManager) HashXMLCh();   // create default hasher
+}
+
+
+
+// this function transfer the data from key1 to key2
+// this is equivalent to calling
+//  1.  get(key1) to retrieve the data,
+//  2.  removeKey(key1),
+//  3.  and then put(key2, data)
+// except that the data is not deleted in "removeKey" even it is adopted so that it
+// can be transferred to key2.
+// whatever key2 has originally will be purged (if adopted)
+template <class TVal> void RefHashTableOf<TVal>::transferElement(const void* const key1, void* key2)
+{
+    put(key2, orphanKey(key1));
+}
+
+
+// ---------------------------------------------------------------------------
+//  RefHashTableOf: Getters
+// ---------------------------------------------------------------------------
+template <class TVal> TVal* RefHashTableOf<TVal>::get(const void* const key)
+{
+    unsigned int hashVal;
+    RefHashTableBucketElem<TVal>* findIt = findBucketElem(key, hashVal);
+    if (!findIt)
+        return 0;
+    return findIt->fData;
+}
+
+template <class TVal> const TVal* RefHashTableOf<TVal>::
+get(const void* const key) const
+{
+    unsigned int hashVal;
+    const RefHashTableBucketElem<TVal>* findIt = findBucketElem(key, hashVal);
+    if (!findIt)
+        return 0;
+    return findIt->fData;
+}
+
+template <class TVal>
+MemoryManager* RefHashTableOf<TVal>::getMemoryManager() const
+{
+    return fMemoryManager;
+}
+
+template <class TVal>
+unsigned int RefHashTableOf<TVal>::getHashModulus() const
+{
+    return fHashModulus;
+}
+
+template <class TVal>
+unsigned int RefHashTableOf<TVal>::getCount() const
+{
+    return fCount;
+}
+
+// ---------------------------------------------------------------------------
+//  RefHashTableOf: Getters
+// ---------------------------------------------------------------------------
+template <class TVal>
+void RefHashTableOf<TVal>::setAdoptElements(const bool aValue)
+{
+    fAdoptedElems = aValue;
+}
+
+// ---------------------------------------------------------------------------
+//  RefHashTableOf: Putters
+// ---------------------------------------------------------------------------
+template <class TVal> void RefHashTableOf<TVal>::put(void* key, TVal* const valueToAdopt)
+{
+    // Apply 0.75 load factor to find threshold.
+    unsigned int threshold = fHashModulus * 3 / 4;
+    
+    // If we've grown too big, expand the table and rehash.
+    if (fCount >= threshold)
+        rehash();
+
+    // First see if the key exists already
+    unsigned int hashVal;
+    RefHashTableBucketElem<TVal>* newBucket = findBucketElem(key, hashVal);
+
+    //
+    //  If so,then update its value. If not, then we need to add it to
+    //  the right bucket
+    //
+    if (newBucket)
+    {
+        if (fAdoptedElems)
+            delete newBucket->fData;
+        newBucket->fData = valueToAdopt;
+		newBucket->fKey = key;
+    }
+    else
+    {
+        //newBucket = new (fMemoryManager) RefHashTableBucketElem<TVal>(key, valueToAdopt, fBucketList[hashVal]);
+		newBucket =
+             new (fMemoryManager->allocate(sizeof(RefHashTableBucketElem<TVal>)))
+             RefHashTableBucketElem<TVal>(key, valueToAdopt, fBucketList[hashVal]);        
+        fBucketList[hashVal] = newBucket;
+        fCount++;
+    }
+}
+
+
+
+// ---------------------------------------------------------------------------
+//  RefHashTableOf: Private methods
+// ---------------------------------------------------------------------------
+template <class TVal> void RefHashTableOf<TVal>::rehash()
+{
+    const unsigned int newMod = fHashModulus * 2;
+
+    RefHashTableBucketElem<TVal>** newBucketList =
+        (RefHashTableBucketElem<TVal>**) fMemoryManager->allocate
+    (
+        newMod * sizeof(RefHashTableBucketElem<TVal>*)
+    );//new RefHashTableBucketElem<TVal>*[newMod];
+
+    // Make sure the new bucket list is destroyed if an
+    // exception is thrown.
+    ArrayJanitor<RefHashTableBucketElem<TVal>*>  guard(newBucketList, fMemoryManager);
+
+    memset(newBucketList, 0, newMod * sizeof(newBucketList[0]));
+    
+    
+    // Rehash all existing entries.
+    for (unsigned int index = 0; index < fHashModulus; index++)
+    {
+        // Get the bucket list head for this entry
+        RefHashTableBucketElem<TVal>* curElem = fBucketList[index];
+
+        while (curElem)
+        {
+            // Save the next element before we detach this one
+            RefHashTableBucketElem<TVal>* const nextElem = curElem->fNext;
+
+            const unsigned int hashVal = fHash->getHashVal(curElem->fKey, newMod, fMemoryManager);
+            assert(hashVal < newMod);
+
+            RefHashTableBucketElem<TVal>* const newHeadElem = newBucketList[hashVal];
+
+            // Insert at the start of this bucket's list.
+            curElem->fNext = newHeadElem;
+            newBucketList[hashVal] = curElem;
+
+            curElem = nextElem;
+        }
+    }
+
+    RefHashTableBucketElem<TVal>** const oldBucketList = fBucketList;
+
+    // Everything is OK at this point, so update the
+    // member variables.
+    fBucketList = guard.release();
+    fHashModulus = newMod;
+
+    // Delete the old bucket list.
+    fMemoryManager->deallocate(oldBucketList);//delete[] oldBucketList;
+    
+}
+
+template <class TVal> RefHashTableBucketElem<TVal>* RefHashTableOf<TVal>::
+findBucketElem(const void* const key, unsigned int& hashVal)
+{
+    // Hash the key
+    hashVal = fHash->getHashVal(key, fHashModulus, fMemoryManager);
+    assert(hashVal < fHashModulus);
+
+    // Search that bucket for the key
+    RefHashTableBucketElem<TVal>* curElem = fBucketList[hashVal];
+    while (curElem)
+    {
+		if (fHash->equals(key, curElem->fKey))
+            return curElem;
+
+        curElem = curElem->fNext;
+    }
+    return 0;
+}
+
+template <class TVal> const RefHashTableBucketElem<TVal>* RefHashTableOf<TVal>::
+findBucketElem(const void* const key, unsigned int& hashVal) const
+{
+    // Hash the key
+    hashVal = fHash->getHashVal(key, fHashModulus, fMemoryManager);
+    assert(hashVal < fHashModulus);
+
+    // Search that bucket for the key
+    const RefHashTableBucketElem<TVal>* curElem = fBucketList[hashVal];
+    while (curElem)
+    {
+        if (fHash->equals(key, curElem->fKey))
+            return curElem;
+
+        curElem = curElem->fNext;
+    }
+    return 0;
+}
+
+
+// ---------------------------------------------------------------------------
+//  RefHashTableOfEnumerator: Constructors and Destructor
+// ---------------------------------------------------------------------------
+template <class TVal> RefHashTableOfEnumerator<TVal>::
+RefHashTableOfEnumerator(RefHashTableOf<TVal>* const toEnum
+                         , const bool adopt
+                         , MemoryManager* const manager)
+	: fAdopted(adopt), fCurElem(0), fCurHash((unsigned int)-1), fToEnum(toEnum)
+    , fMemoryManager(manager)
+{
+    if (!toEnum)
+        ThrowXMLwithMemMgr(NullPointerException, XMLExcepts::CPtr_PointerIsZero, fMemoryManager);
+
+    //
+    //  Find the next available bucket element in the hash table. If it
+    //  comes back zero, that just means the table is empty.
+    //
+    //  Note that the -1 in the current hash tells it to start from the
+    //  beginning.
+    //
+    findNext();
+}
+
+template <class TVal> RefHashTableOfEnumerator<TVal>::~RefHashTableOfEnumerator()
+{
+    if (fAdopted)
+        delete fToEnum;
+}
+
+
+template <class TVal> RefHashTableOfEnumerator<TVal>::
+RefHashTableOfEnumerator(const RefHashTableOfEnumerator<TVal>& toCopy) :
+    XMLEnumerator<TVal>(toCopy)
+    , XMemory(toCopy)
+    , fAdopted(toCopy.fAdopted)
+    , fCurElem(toCopy.fCurElem)
+    , fCurHash(toCopy.fCurHash)
+    , fToEnum(toCopy.fToEnum)
+    , fMemoryManager(toCopy.fMemoryManager)
+{
+}
+// ---------------------------------------------------------------------------
+//  RefHashTableOfEnumerator: Enum interface
+// ---------------------------------------------------------------------------
+template <class TVal> bool RefHashTableOfEnumerator<TVal>::hasMoreElements() const
+{
+    //
+    //  If our current has is at the max and there are no more elements
+    //  in the current bucket, then no more elements.
+    //
+    if (!fCurElem && (fCurHash == fToEnum->fHashModulus))
+        return false;
+    return true;
+}
+
+template <class TVal> TVal& RefHashTableOfEnumerator<TVal>::nextElement()
+{
+    // Make sure we have an element to return
+    if (!hasMoreElements())
+        ThrowXMLwithMemMgr(NoSuchElementException, XMLExcepts::Enum_NoMoreElements, fMemoryManager);
+
+    //
+    //  Save the current element, then move up to the next one for the
+    //  next time around.
+    //
+    RefHashTableBucketElem<TVal>* saveElem = fCurElem;
+    findNext();
+
+    return *saveElem->fData;
+}
+
+template <class TVal> void* RefHashTableOfEnumerator<TVal>::nextElementKey()
+{
+    // Make sure we have an element to return
+    if (!hasMoreElements())
+        ThrowXMLwithMemMgr(NoSuchElementException, XMLExcepts::Enum_NoMoreElements, fMemoryManager);
+
+    //
+    //  Save the current element, then move up to the next one for the
+    //  next time around.
+    //
+    RefHashTableBucketElem<TVal>* saveElem = fCurElem;
+    findNext();
+
+    return saveElem->fKey;
+}
+
+template <class TVal> void RefHashTableOfEnumerator<TVal>::Reset()
+{
+    fCurHash = (unsigned int)-1;
+    fCurElem = 0;
+    findNext();
+}
+
+
+
+// ---------------------------------------------------------------------------
+//  RefHashTableOfEnumerator: Private helper methods
+// ---------------------------------------------------------------------------
+template <class TVal> void RefHashTableOfEnumerator<TVal>::findNext()
+{
+    //
+    //  If there is a current element, move to its next element. If this
+    //  hits the end of the bucket, the next block will handle the rest.
+    //
+    if (fCurElem)
+        fCurElem = fCurElem->fNext;
+
+    //
+    //  If the current element is null, then we have to move up to the
+    //  next hash value. If that is the hash modulus, then we cannot
+    //  go further.
+    //
+    if (!fCurElem)
+    {
+        fCurHash++;
+        if (fCurHash == fToEnum->fHashModulus)
+            return;
+
+        // Else find the next non-empty bucket
+        while (fToEnum->fBucketList[fCurHash]==0)
+        {
+            // Bump to the next hash value. If we max out return
+            fCurHash++;
+            if (fCurHash == fToEnum->fHashModulus)
+                return;
+        }
+        fCurElem = fToEnum->fBucketList[fCurHash];
+    }
+}
+
+XERCES_CPP_NAMESPACE_END
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/ArrayIndexOutOfBoundsException.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/ArrayIndexOutOfBoundsException.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/ArrayIndexOutOfBoundsException.hpp	(revision 2674)
@@ -0,0 +1,33 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: ArrayIndexOutOfBoundsException.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(ARRAYINDEXOUTOFBOUNDSEXCEPTION_HPP)
+#define ARRAYINDEXOUTOFBOUNDSEXCEPTION_HPP
+
+#include <xercesc/util/XMLException.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+MakeXMLException(ArrayIndexOutOfBoundsException, XMLUTIL_EXPORT)
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/UnexpectedEOFException.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/UnexpectedEOFException.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/UnexpectedEOFException.hpp	(revision 2674)
@@ -0,0 +1,34 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: UnexpectedEOFException.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(UNEXPECTEDEOFEXCEPTION_HPP)
+#define UNEXPECTEDEOFEXCEPTION_HPP
+
+#include <xercesc/util/XercesDefs.hpp>
+#include <xercesc/util/XMLException.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+MakeXMLException(UnexpectedEOFException, XMLUTIL_EXPORT)
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/XMLDateTime.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/XMLDateTime.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/XMLDateTime.hpp	(revision 2674)
@@ -0,0 +1,372 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: XMLDateTime.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#ifndef XML_DATETIME_HPP
+#define XML_DATETIME_HPP
+
+#include <xercesc/util/XMLNumber.hpp>
+#include <xercesc/util/PlatformUtils.hpp>
+#include <xercesc/util/XMLString.hpp>
+#include <xercesc/util/XMLUniDefs.hpp>
+#include <xercesc/util/SchemaDateTimeException.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class XSValue;
+
+class XMLUTIL_EXPORT XMLDateTime : public XMLNumber
+{
+public:
+
+	enum valueIndex
+    {
+        CentYear   = 0,
+        Month      ,
+        Day        ,
+        Hour       ,
+        Minute     ,
+        Second     ,
+        MiliSecond ,  //not to be used directly
+        utc        ,
+        TOTAL_SIZE
+    };
+
+    enum utcType
+    {
+        UTC_UNKNOWN = 0,
+        UTC_STD        ,          // set in parse() or normalize()
+        UTC_POS        ,          // set in parse()
+        UTC_NEG                   // set in parse()
+    };
+
+    // -----------------------------------------------------------------------
+    // ctors and dtor
+    // -----------------------------------------------------------------------
+
+    XMLDateTime(MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+    XMLDateTime(const XMLCh* const,
+                MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+    ~XMLDateTime();
+
+    inline void           setBuffer(const XMLCh* const);
+
+    // -----------------------------------------------------------------------
+    // Copy ctor and Assignment operators
+    // -----------------------------------------------------------------------
+
+    XMLDateTime(const XMLDateTime&);
+
+    XMLDateTime&          operator=(const XMLDateTime&);
+
+    // -----------------------------------------------------------------------
+    // Implementation of Abstract Interface
+    // -----------------------------------------------------------------------
+
+    /**
+     *
+     *  Deprecated: please use getRawData
+     *
+     */
+    virtual XMLCh*        toString() const;
+    
+    virtual XMLCh*        getRawData() const;
+
+    virtual const XMLCh*  getFormattedString() const;
+
+    virtual int           getSign() const;
+
+    // -----------------------------------------------------------------------
+    // Canonical Representation
+    // -----------------------------------------------------------------------
+
+    XMLCh*                getDateTimeCanonicalRepresentation(MemoryManager* const memMgr) const;
+
+    XMLCh*                getTimeCanonicalRepresentation(MemoryManager* const memMgr)     const;
+
+    XMLCh*                getDateCanonicalRepresentation(MemoryManager* const memMgr)     const;
+
+    // -----------------------------------------------------------------------
+    // parsers
+    // -----------------------------------------------------------------------
+
+    void                  parseDateTime();       //DateTime
+
+    void                  parseDate();           //Date
+
+    void                  parseTime();           //Time
+
+    void                  parseDay();            //gDay
+
+    void                  parseMonth();          //gMonth
+
+    void                  parseYear();           //gYear
+
+    void                  parseMonthDay();       //gMonthDay
+
+    void                  parseYearMonth();      //gYearMonth
+
+    void                  parseDuration();       //duration
+
+    // -----------------------------------------------------------------------
+    // Comparison
+    // -----------------------------------------------------------------------
+    static int            compare(const XMLDateTime* const
+                                , const XMLDateTime* const);
+
+    static int            compare(const XMLDateTime* const
+                                , const XMLDateTime* const
+                                , bool                    );
+
+    static int            compareOrder(const XMLDateTime* const
+                                     , const XMLDateTime* const);                                    
+
+    /***
+     * Support for Serialization/De-serialization
+     ***/
+    DECL_XSERIALIZABLE(XMLDateTime)
+
+private:
+
+    // -----------------------------------------------------------------------
+    // Constant data
+    // -----------------------------------------------------------------------
+	//
+
+    enum timezoneIndex
+    {
+        hh = 0,
+        mm ,
+        TIMEZONE_ARRAYSIZE
+    };
+
+    // -----------------------------------------------------------------------
+    // Comparison
+    // -----------------------------------------------------------------------
+    static int            compareResult(int
+                                      , int
+                                      , bool);
+
+    static void           addDuration(XMLDateTime*             pDuration
+                                    , const XMLDateTime* const pBaseDate
+                                    , int                      index);
+
+
+    static int            compareResult(const XMLDateTime* const
+                                      , const XMLDateTime* const
+                                      , bool
+                                      , int);
+
+    static inline int     getRetVal(int, int);
+
+    // -----------------------------------------------------------------------
+    // helper
+    // -----------------------------------------------------------------------
+
+    inline  void          reset();
+
+    inline  void          assertBuffer()               const;
+
+    inline  void          copy(const XMLDateTime&);
+
+    // allow multiple parsing
+    inline  void          initParser();
+
+    inline  bool          isNormalized()               const;
+
+    // -----------------------------------------------------------------------
+    // scaners
+    // -----------------------------------------------------------------------
+
+    void                  getDate();
+
+    void                  getTime();
+
+    void                  getYearMonth();
+
+    void                  getTimeZone(const int);
+
+    void                  parseTimeZone();
+
+    // -----------------------------------------------------------------------
+    // locator and converter
+    // -----------------------------------------------------------------------
+
+    int                   findUTCSign(const int start);
+
+    int                   indexOf(const int start
+                                , const int end
+                                , const XMLCh ch)     const;
+
+    int                   parseInt(const int start
+                                 , const int end)     const;
+
+    int                   parseIntYear(const int end) const;
+
+    double                parseMiliSecond(const int start
+                                        , const int end) const;
+
+    // -----------------------------------------------------------------------
+    // validator and normalizer
+    // -----------------------------------------------------------------------
+
+    void                  validateDateTime()          const;
+
+    void                  normalize();
+
+    void                  fillString(XMLCh*& ptr, int value, int expLen) const;
+
+    int                   fillYearString(XMLCh*& ptr, int value) const;
+
+    void                  searchMiliSeconds(XMLCh*& miliStartPtr, XMLCh*& miliEndPtr) const;
+
+    // -----------------------------------------------------------------------
+    // Unimplemented operator ==
+    // -----------------------------------------------------------------------
+	bool operator==(const XMLDateTime& toCompare) const;
+
+
+    // -----------------------------------------------------------------------
+    //  Private data members
+    //
+    //     fValue[]
+    //          object representation of date time.
+    //
+    //     fTimeZone[]
+    //          temporary storage for normalization
+    //
+    //     fStart, fEnd
+    //          pointers to the portion of fBuffer being parsed
+    //
+    //     fBuffer
+    //          raw data to be parsed, own it.
+    //
+    // -----------------------------------------------------------------------
+
+    int          fValue[TOTAL_SIZE];
+    int          fTimeZone[TIMEZONE_ARRAYSIZE];
+    int          fStart;
+    int          fEnd;
+    int          fBufferMaxLen;
+
+    double       fMiliSecond;
+    bool         fHasTime;
+
+    XMLCh*       fBuffer;
+    MemoryManager* fMemoryManager;
+
+    friend class XSValue;
+};
+
+inline void XMLDateTime::setBuffer(const XMLCh* const aString)
+{
+    reset();
+
+    fEnd = XMLString::stringLen(aString);
+    if (fEnd > 0) {
+    
+        if (fEnd > fBufferMaxLen)
+        {
+            fMemoryManager->deallocate(fBuffer);
+            fBufferMaxLen = fEnd + 8;
+            fBuffer = (XMLCh*) fMemoryManager->allocate((fBufferMaxLen+1) * sizeof(XMLCh));
+        }
+
+        memcpy(fBuffer, aString, (fEnd+1) * sizeof(XMLCh));
+    }
+}
+
+inline void XMLDateTime::reset()
+{
+    for ( int i=0; i < TOTAL_SIZE; i++ )
+        fValue[i] = 0;
+
+    fMiliSecond   = 0;
+    fHasTime      = false;
+    fTimeZone[hh] = fTimeZone[mm] = 0;
+    fStart = fEnd = 0;
+
+    if (fBuffer)
+        *fBuffer = 0;
+}
+
+inline void XMLDateTime::copy(const XMLDateTime& rhs)
+{
+    for ( int i = 0; i < TOTAL_SIZE; i++ )
+        fValue[i] = rhs.fValue[i];
+
+    fMiliSecond   = rhs.fMiliSecond;
+    fHasTime      = rhs.fHasTime;
+    fTimeZone[hh] = rhs.fTimeZone[hh];
+    fTimeZone[mm] = rhs.fTimeZone[mm];
+    fStart = rhs.fStart;
+    fEnd   = rhs.fEnd;
+
+    if (fEnd > 0)
+    {
+        if (fEnd > fBufferMaxLen)
+        {
+            fMemoryManager->deallocate(fBuffer);//delete[] fBuffer;
+            fBufferMaxLen = rhs.fBufferMaxLen;
+            fBuffer = (XMLCh*) fMemoryManager->allocate((fBufferMaxLen+1) * sizeof(XMLCh));
+        }
+
+        memcpy(fBuffer, rhs.fBuffer, (fEnd+1) * sizeof(XMLCh));
+    }
+}
+
+inline void XMLDateTime::assertBuffer() const
+{
+    if ( ( !fBuffer )            ||
+         ( fBuffer[0] == chNull ) )
+    {
+        ThrowXMLwithMemMgr(SchemaDateTimeException
+               , XMLExcepts::DateTime_Assert_Buffer_Fail
+               , fMemoryManager);
+    }
+
+}
+
+inline void XMLDateTime::initParser()
+{
+    assertBuffer();
+    fStart = 0;   // to ensure scan from the very first beginning
+                  // in case the pointer is updated accidentally by someone else.
+}
+
+inline bool XMLDateTime::isNormalized() const
+{
+    return ( fValue[utc] == UTC_STD ? true : false );
+}
+
+inline int XMLDateTime::getRetVal(int c1, int c2)
+{
+    if ((c1 == LESS_THAN    && c2 == GREATER_THAN) ||
+        (c1 == GREATER_THAN && c2 == LESS_THAN)      )
+    {
+        return INDETERMINATE;
+    }
+
+    return ( c1 != INDETERMINATE ) ? c1 : c2;
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/XMLRegisterCleanup.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/XMLRegisterCleanup.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/XMLRegisterCleanup.hpp	(revision 2674)
@@ -0,0 +1,85 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: XMLRegisterCleanup.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(XMLREGISTERCLEANUP_HPP)
+#define XMLREGISTERCLEANUP_HPP
+
+#include <xercesc/util/Mutexes.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+//
+//  For internal use only.
+//
+//  This class is used by the platform utilities class to support
+//  reinitialisation of global/static data which is lazily created.
+//  Since that data is widely spread out the platform utilities
+//  class cannot know about them directly. So, the code that creates such
+//  objects creates an registers a cleanup for the object. The platform
+//  termination call will iterate the list and delete the objects.
+//
+//  N.B. These objects need to be statically allocated.  I couldn't think
+//  of a neat way of ensuring this - can anyone else?
+
+class XMLUTIL_EXPORT XMLRegisterCleanup
+{
+public :
+	// The cleanup function to be called on XMLPlatformUtils::Terminate()
+	typedef void (*XMLCleanupFn)();
+	
+	void doCleanup(); 
+
+	// This function is called during initialisation of static data to
+	// register a function to be called on XMLPlatformUtils::Terminate.
+	// It gives an object that uses static data an opportunity to reset
+	// such data.
+	void registerCleanup(XMLCleanupFn cleanupFn);
+
+	// This function can be called either from XMLPlatformUtils::Terminate
+	// to state that the cleanup has been performed and should not be
+	// performed again, or from code that you have written that determines
+	// that cleanup is no longer necessary.
+	void unregisterCleanup();
+
+	// The default constructor sets a state that ensures that this object
+	// will do nothing
+	XMLRegisterCleanup();
+
+private:
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+	XMLRegisterCleanup(const XMLRegisterCleanup&);
+    XMLRegisterCleanup& operator=(const XMLRegisterCleanup&);
+
+	// This is the cleanup function to be called
+	XMLCleanupFn m_cleanupFn;
+
+	// These are list pointers to the next/prev cleanup function to be called
+	XMLRegisterCleanup *m_nextCleanup, *m_prevCleanup;
+
+	// This function reinitialises the object to the default state
+	void resetCleanup();
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/BaseRefVectorOf.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/BaseRefVectorOf.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/BaseRefVectorOf.hpp	(revision 2674)
@@ -0,0 +1,153 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#if !defined(ABSTRACTVECTOROF_HPP)
+#define ABSTRACTVECTOROF_HPP
+
+#include <xercesc/util/ArrayIndexOutOfBoundsException.hpp>
+#include <xercesc/util/XMLEnumerator.hpp>
+#include <xercesc/util/PlatformUtils.hpp>
+#include <xercesc/framework/MemoryManager.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+/** 
+ * Abstract base class for the xerces internal representation of Vector. 
+ * 
+ * The destructor is abstract, forcing each of RefVectorOf and
+ * RefArrayVectorOf to implement their own appropriate one.
+ *
+ */
+template <class TElem> class BaseRefVectorOf : public XMemory
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+    BaseRefVectorOf
+    (
+          const unsigned int maxElems
+        , const bool adoptElems = true
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+    virtual ~BaseRefVectorOf();
+
+
+    // -----------------------------------------------------------------------
+    //  Element management
+    // -----------------------------------------------------------------------
+    void addElement(TElem* const toAdd);
+    virtual void setElementAt(TElem* const toSet, const unsigned int setAt);
+    void insertElementAt(TElem* const toInsert, const unsigned int insertAt);
+    TElem* orphanElementAt(const unsigned int orphanAt);
+    virtual void removeAllElements();
+    virtual void removeElementAt(const unsigned int removeAt);
+    virtual void removeLastElement();
+    bool containsElement(const TElem* const toCheck);
+    virtual void cleanup();
+    void reinitialize();
+
+
+    // -----------------------------------------------------------------------
+    //  Getter methods
+    // -----------------------------------------------------------------------
+    unsigned int curCapacity() const;
+    const TElem* elementAt(const unsigned int getAt) const;
+    TElem* elementAt(const unsigned int getAt);
+    unsigned int size() const;
+    MemoryManager* getMemoryManager() const;
+
+
+    // -----------------------------------------------------------------------
+    //  Miscellaneous
+    // -----------------------------------------------------------------------
+    void ensureExtraCapacity(const unsigned int length);
+
+private:
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    BaseRefVectorOf(const BaseRefVectorOf<TElem>& copy);
+    BaseRefVectorOf& operator=(const BaseRefVectorOf<TElem>& copy);       
+
+protected:
+    // -----------------------------------------------------------------------
+    //  Data members
+    // -----------------------------------------------------------------------
+    bool            fAdoptedElems;
+    unsigned int    fCurCount;
+    unsigned int    fMaxCount;
+    TElem**         fElemList;
+    MemoryManager*  fMemoryManager;
+};
+
+
+//
+//  An enumerator for a vector. It derives from the basic enumerator
+//  class, so that value vectors can be generically enumerated.
+//
+template <class TElem> class BaseRefVectorEnumerator : public XMLEnumerator<TElem>, public XMemory
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+    BaseRefVectorEnumerator
+    (
+        BaseRefVectorOf<TElem>* const   toEnum
+        , const bool adopt = false
+    );
+    virtual ~BaseRefVectorEnumerator();
+
+    BaseRefVectorEnumerator(const BaseRefVectorEnumerator<TElem>& copy);
+    // -----------------------------------------------------------------------
+    //  Enum interface
+    // -----------------------------------------------------------------------
+    bool hasMoreElements() const;
+    TElem& nextElement();
+    void Reset();
+
+
+private :
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------        
+    BaseRefVectorEnumerator& operator=(const BaseRefVectorEnumerator<TElem>& copy);    
+    // -----------------------------------------------------------------------
+    //  Data Members
+    //
+    //  fAdopted
+    //      Indicates whether we have adopted the passed vector. If so then
+    //      we delete the vector when we are destroyed.
+    //
+    //  fCurIndex
+    //      This is the current index into the vector.
+    //
+    //  fToEnum
+    //      The reference vector being enumerated.
+    // -----------------------------------------------------------------------
+    bool                fAdopted;
+    unsigned int        fCurIndex;
+    BaseRefVectorOf<TElem>*    fToEnum;
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#if !defined(XERCES_TMPLSINC)
+#include <xercesc/util/BaseRefVectorOf.c>
+#endif
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/HashCMStateSet.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/HashCMStateSet.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/HashCMStateSet.hpp	(revision 2674)
@@ -0,0 +1,79 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: HashCMStateSet.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(HASH_CMSTATESET_HPP)
+#define HASH_CMSTATESET_HPP
+
+#include <xercesc/util/HashBase.hpp>
+#include <xercesc/validators/common/CMStateSet.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+/**
+ * The <code>HashCMStateSet</code> class inherits from <code>HashBase</code>.
+ * This is a CMStateSet specific hasher class designed to hash the values
+ * of CMStateSet.
+ *
+ * See <code>HashBase</code> for more information.
+ */
+
+class XMLUTIL_EXPORT HashCMStateSet : public HashBase
+{
+public:
+	HashCMStateSet();
+	virtual ~HashCMStateSet();
+	virtual unsigned int getHashVal(const void *const key, unsigned int mod
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+	virtual bool equals(const void *const key1, const void *const key2);
+private:
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    HashCMStateSet(const HashCMStateSet&);
+    HashCMStateSet& operator=(const HashCMStateSet&);
+};
+
+inline HashCMStateSet::HashCMStateSet()
+{
+}
+
+inline HashCMStateSet::~HashCMStateSet()
+{
+}
+
+inline unsigned int HashCMStateSet::getHashVal(const void *const key, unsigned int mod
+                                               , MemoryManager* const)
+{
+    const CMStateSet* const pkey = (const CMStateSet* const) key;
+	return ((pkey->hashCode()) % mod);
+}
+
+inline bool HashCMStateSet::equals(const void *const key1, const void *const key2)
+{
+    const CMStateSet* const pkey1 = (const CMStateSet* const) key1;
+    const CMStateSet* const pkey2 = (const CMStateSet* const) key2;
+
+	return (*pkey1==*pkey2);
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/LogicalPath.c
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/LogicalPath.c	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/LogicalPath.c	(revision 2674)
@@ -0,0 +1,254 @@
+#if !defined(WEAVEPATH_CPP)
+#define WEAVEPATH_CPP
+
+/***
+ *
+ *  Previously, each <OS>PlatformUtils.cpp has its onw copy of the
+ *  method weavePaths(), and almost of them implemented the same logic,
+ *  with few platform specific difference, and unfortunately that 
+ *  implementation was wrong.
+ *  
+ *  The only platform specific issue is slash character.
+ *  On all platforms other than Windows, chForwardSlash and chBackSlash 
+ *  are considered slash, while on Windows, two additional characters, 
+ *  chYenSign and chWonSign are slash as well.
+ *
+ *  The idea is to maintain a SINGLE copy of this method rather than
+ *  each <OS>PlatformUtils.cpp has its own copy, we introduce a new
+ *  method, XMLPlatformUtils::isAnySlash(), to replace the direct checking
+ *  code ( if ( c == chForwardSlash || c == chBackSlash).
+ *
+ *  With this approach, we might have a performance hit since isAnySlash() 
+ *  is so frequently used in this implementation, so we intend to make it 
+ *  inline. Then we face a complier issue.
+ *
+ *  There are two compilation units involved, one is PlatformUtils.cpp and 
+ *  the other <OS>PlatformUtils.cpp. When PlatformUtils.cp get compiled,
+ *  the weavePath(), remove**Slash() have dependency upon isAnySlash() which
+ *  is in <OS>PlatformUtils.cpp (and what is worse, it is inlined), so we have
+ *  undefined/unresolved symbol: isAnySlash() on AIX/xlc_r, Solaris/cc and 
+ *  Linux/gcc, while MSVC and HP/aCC are fine with this.
+ *  
+ *  That means we can not place these new methods in PlatformUtils.cpp with
+ *  inlined XMLPlatformUtils::isAnySlash() in <OS>PlatformUtils.cpp.
+ *
+ *  The solution to this is <os>PlatformUtils.cpp will include this file so that
+ *  we have only one copy of these methods while get compiled in <os>PlatformUtils
+ *  inlined isAnySlash().
+ *
+ ***/
+XMLCh* XMLPlatformUtils::weavePaths(const XMLCh* const    basePath
+                                  , const XMLCh* const    relativePath
+                                  , MemoryManager* const  manager)
+
+{
+    // Create a buffer as large as both parts and empty it
+    XMLCh* tmpBuf = (XMLCh*) manager->allocate
+    (
+        (XMLString::stringLen(basePath)
+         + XMLString::stringLen(relativePath) + 2) * sizeof(XMLCh)
+    );//new XMLCh[XMLString::stringLen(basePath) + XMLString::stringLen(relativePath) + 2];
+    *tmpBuf = 0;
+
+    //
+    //  If we have no base path, then just take the relative path as is.
+    //
+    if ((!basePath) || (!*basePath))
+    {
+        XMLString::copyString(tmpBuf, relativePath);
+        return tmpBuf;
+    }
+
+    //
+    // Remove anything after the last slash
+    //
+    const XMLCh* basePtr = basePath + (XMLString::stringLen(basePath) - 1);
+    while ((basePtr >= basePath)  &&  ((isAnySlash(*basePtr) == false)))
+    {
+        basePtr--;
+    }
+
+    // There is no relevant base path, so just take the relative part
+    if (basePtr < basePath)
+    {
+        XMLString::copyString(tmpBuf, relativePath);
+        return tmpBuf;
+    }
+
+    //
+    // 1. concatenate the base and relative
+    // 2. remove all occurences of "/./"
+    // 3. remove all occurences of segment/../ where segment is not ../
+	// 
+
+    XMLString::subString(tmpBuf, basePath, 0, (basePtr - basePath + 1), manager);
+    tmpBuf[basePtr - basePath + 1] = 0;
+    XMLString::catString(tmpBuf, relativePath);
+
+    removeDotSlash(tmpBuf, manager);
+
+    removeDotDotSlash(tmpBuf, manager);
+
+    return tmpBuf;
+
+}
+
+//
+// Remove all occurences of './' when it is part of '/./'
+//
+// Since it could be '.\' or other combination on windows ( eg, '.'+chYanSign)
+// we can't make use of patterMatch().
+//
+//
+void XMLPlatformUtils::removeDotSlash(XMLCh* const path
+                                      , MemoryManager* const manager)
+{
+    if ((!path) || (!*path))
+        return;
+
+    XMLCh* srcPtr = XMLString::replicate(path, manager);
+    int    srcLen = XMLString::stringLen(srcPtr);
+    ArrayJanitor<XMLCh>   janName(srcPtr, manager);   
+    XMLCh* tarPtr = path;
+
+    while (*srcPtr)
+    {
+        if ( 3 <= srcLen )
+        {
+            if ( (isAnySlash(*srcPtr))     &&
+                (chPeriod == *(srcPtr+1)) &&
+                (isAnySlash(*(srcPtr+2)))  )
+            {
+                // "\.\x" seen
+                // skip the first two, and start from the 3rd,
+                // since "\x" could be another "\."
+                srcPtr+=2;              
+                srcLen-=2;
+            }
+            else
+            {
+                *tarPtr++ = *srcPtr++;  // eat the current char
+                srcLen--;
+            }
+        }
+        else if ( 1 == srcLen )
+        {
+            *tarPtr++ = *srcPtr++;
+        }
+        else if ( 2 == srcLen)
+        {
+            *tarPtr++ = *srcPtr++;
+            *tarPtr++ = *srcPtr++;
+        }
+
+    }
+
+    *tarPtr = 0;
+
+    return;
+}
+
+//
+// Remove all occurences of '/segment/../' when segment is not '..'
+//
+// Cases with extra /../ is left to the underlying file system.
+//
+void XMLPlatformUtils::removeDotDotSlash(XMLCh* const path
+                                         , MemoryManager* const manager)
+{
+    int pathLen = XMLString::stringLen(path);
+    XMLCh* tmp1 = (XMLCh*) manager->allocate
+    (
+        (pathLen+1) * sizeof(XMLCh)
+    );//new XMLCh [pathLen+1];
+    ArrayJanitor<XMLCh>   tmp1Name(tmp1, manager);
+
+    XMLCh* tmp2 = (XMLCh*) manager->allocate
+    (
+        (pathLen+1) * sizeof(XMLCh)
+    );//new XMLCh [pathLen+1];
+    ArrayJanitor<XMLCh>   tmp2Name(tmp2, manager);
+
+    // remove all "<segment>/../" where "<segment>" is a complete
+    // path segment not equal to ".."
+    int index = -1;
+    int segIndex = -1;
+    int offset = 1;
+
+    while ((index = searchSlashDotDotSlash(&(path[offset]))) != -1)
+    {
+        // Undo offset
+        index += offset;
+
+        // Find start of <segment> within substring ending at found point.
+        XMLString::subString(tmp1, path, 0, index-1, manager);
+        segIndex = index - 1;
+        while ((segIndex >= 0) && (!isAnySlash(tmp1[segIndex])))
+        {
+            segIndex--;
+        }
+
+        // Ensure <segment> exists and != ".."
+        if (segIndex >= 0                 &&
+            (path[segIndex+1] != chPeriod ||
+             path[segIndex+2] != chPeriod ||
+             segIndex + 3 != index))
+        {
+
+            XMLString::subString(tmp1, path, 0, segIndex, manager);
+            XMLString::subString(tmp2, path, index+3, XMLString::stringLen(path), manager);
+
+            path[0] = 0;
+            XMLString::catString(path, tmp1);
+            XMLString::catString(path, tmp2);
+
+            offset = (segIndex == 0 ? 1 : segIndex);
+        }
+        else
+        {
+            offset += 4;
+        }
+
+    }// while
+
+}
+
+int XMLPlatformUtils::searchSlashDotDotSlash(XMLCh* const srcPath)
+{
+    if ((!srcPath) || (!*srcPath))
+        return -1;
+
+    XMLCh* srcPtr = srcPath;
+    int    srcLen = XMLString::stringLen(srcPath);
+    int    retVal = -1;
+
+    while (*srcPtr)
+    {
+        if ( 4 <= srcLen )
+        {
+            if ( (isAnySlash(*srcPtr))     &&
+                 (chPeriod == *(srcPtr+1)) &&
+                 (chPeriod == *(srcPtr+2)) &&
+                 (isAnySlash(*(srcPtr+3)))  )
+            {
+                retVal = (srcPtr - srcPath);
+                break;
+            }
+            else
+            {
+                srcPtr++;
+                srcLen--;
+            }
+        }
+        else 
+        {
+            break;
+        }
+
+    } // while
+
+    return retVal;
+
+}
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/RefArrayVectorOf.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/RefArrayVectorOf.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/RefArrayVectorOf.hpp	(revision 2674)
@@ -0,0 +1,66 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#if !defined(REFARRAYVECTOROF_HPP)
+#define REFARRAYVECTOROF_HPP
+
+#include <xercesc/util/BaseRefVectorOf.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+/** 
+ * Class with implementation for vectors of pointers to arrays  - implements from 
+ * the Abstract class Vector
+ */ 
+template <class TElem> class RefArrayVectorOf : public BaseRefVectorOf<TElem> 
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Constructor
+    // -----------------------------------------------------------------------
+    RefArrayVectorOf( const unsigned int   maxElems
+                    , const bool           adoptElems = true
+                    , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+
+    // -----------------------------------------------------------------------
+    //  Destructor
+    // -----------------------------------------------------------------------
+    ~RefArrayVectorOf();
+
+    // -----------------------------------------------------------------------
+    //  Element management
+    // -----------------------------------------------------------------------
+    void setElementAt(TElem* const toSet, const unsigned int setAt);
+    void removeAllElements();
+    void removeElementAt(const unsigned int removeAt);
+    void removeLastElement();
+    void cleanup();
+private:
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    RefArrayVectorOf(const RefArrayVectorOf<TElem>&);
+    RefArrayVectorOf<TElem>& operator=(const RefArrayVectorOf<TElem>&);
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#if !defined(XERCES_TMPLSINC)
+#include <xercesc/util/RefArrayVectorOf.c>
+#endif
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/KVStringPair.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/KVStringPair.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/KVStringPair.hpp	(revision 2674)
@@ -0,0 +1,223 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: KVStringPair.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(KVSTRINGPAIR_HPP)
+#define KVSTRINGPAIR_HPP
+
+#include <xercesc/util/XMemory.hpp>
+#include <xercesc/util/PlatformUtils.hpp>
+
+#include <xercesc/internal/XSerializable.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+//
+//  This class provides a commonly used data structure, which is that of
+//  a pair of strings which represent a 'key=value' type mapping. It works
+//  only in terms of XMLCh type raw strings.
+//
+class XMLUTIL_EXPORT KVStringPair : public XSerializable, public XMemory
+{
+public:
+    // -----------------------------------------------------------------------
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+    KVStringPair(MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+    KVStringPair
+    (
+        const XMLCh* const key
+        , const XMLCh* const value
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+    KVStringPair
+    (
+        const XMLCh* const key
+        , const XMLCh* const value
+        , const unsigned int valueLength
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+    KVStringPair
+    (
+        const XMLCh* const key
+        , const unsigned int keyLength
+        , const XMLCh* const value
+        , const unsigned int valueLength
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+    KVStringPair(const KVStringPair& toCopy);
+    ~KVStringPair();
+
+
+    // -----------------------------------------------------------------------
+    //  Getters
+    //
+    //  We support the
+    // -----------------------------------------------------------------------
+    const XMLCh* getKey() const;
+    XMLCh* getKey();
+    const XMLCh* getValue() const;
+    XMLCh* getValue();
+
+
+    // -----------------------------------------------------------------------
+    //  Setters
+    // -----------------------------------------------------------------------
+    void setKey(const XMLCh* const newKey);
+    void setValue(const XMLCh* const newValue);
+    void setKey
+    (
+        const   XMLCh* const newKey
+        , const unsigned int newKeyLength
+    );
+    void setValue
+    (
+        const   XMLCh* const newValue
+        , const unsigned int newValueLength
+    );
+    void set
+    (
+        const   XMLCh* const newKey
+        , const XMLCh* const newValue
+    );
+    void set
+    (
+        const     XMLCh* const newKey
+        , const   unsigned int newKeyLength
+        , const   XMLCh* const newValue
+        , const   unsigned int newValueLength
+    );
+
+    /***
+     * Support for Serialization/De-serialization
+     ***/
+    DECL_XSERIALIZABLE(KVStringPair)
+
+private :
+    // unimplemented:
+       
+    KVStringPair& operator=(const KVStringPair&);
+    // -----------------------------------------------------------------------
+    //  Private data members
+    //
+    //  fKey
+    //      The string that represents the key field of this object.
+    //
+    //  fKeyAllocSize
+    //      The amount of memory allocated for fKey.
+    //
+    //  fValue
+    //      The string that represents the value of this pair object.
+    //
+    //  fValueAllocSize
+    //      The amount of memory allocated for fValue.
+    //
+    // -----------------------------------------------------------------------
+    unsigned long  fKeyAllocSize;
+    unsigned long  fValueAllocSize;
+    XMLCh*         fKey;
+    XMLCh*         fValue;
+    MemoryManager* fMemoryManager;
+};
+
+// ---------------------------------------------------------------------------
+//  KVStringPair: Getters
+// ---------------------------------------------------------------------------
+inline const XMLCh* KVStringPair::getKey() const
+{
+    return fKey;
+}
+
+inline XMLCh* KVStringPair::getKey()
+{
+    return fKey;
+}
+
+inline const XMLCh* KVStringPair::getValue() const
+{
+    return fValue;
+}
+
+inline XMLCh* KVStringPair::getValue()
+{
+    return fValue;
+}
+
+// ---------------------------------------------------------------------------
+//  KVStringPair: Setters
+// ---------------------------------------------------------------------------
+inline void KVStringPair::setKey(const XMLCh* const newKey)
+{
+    setKey(newKey, XMLString::stringLen(newKey));
+}
+
+inline void KVStringPair::setValue(const XMLCh* const newValue)
+{
+    setValue(newValue, XMLString::stringLen(newValue));
+}
+
+inline void KVStringPair::setKey(  const XMLCh* const newKey
+                                 , const unsigned int newKeyLength)
+{
+    if (newKeyLength >= fKeyAllocSize)
+    {
+        fMemoryManager->deallocate(fKey); //delete [] fKey;
+        fKey = 0;
+        fKeyAllocSize = newKeyLength + 1;
+        fKey = (XMLCh*) fMemoryManager->allocate(fKeyAllocSize * sizeof(XMLCh)); //new XMLCh[fKeyAllocSize];
+    }
+
+    memcpy(fKey, newKey, (newKeyLength+1) * sizeof(XMLCh)); // len+1 because of the 0 at the end
+}
+
+inline void KVStringPair::setValue(  const XMLCh* const newValue
+                                   , const unsigned int newValueLength)
+{
+    if (newValueLength >= fValueAllocSize)
+    {
+        fMemoryManager->deallocate(fValue); //delete [] fValue;
+        fValue = 0;
+        fValueAllocSize = newValueLength + 1;
+        fValue = (XMLCh*) fMemoryManager->allocate(fValueAllocSize * sizeof(XMLCh)); //new XMLCh[fValueAllocSize];
+    }
+
+    memcpy(fValue, newValue, (newValueLength+1) * sizeof(XMLCh)); // len+1 because of the 0 at the end
+}
+
+inline void KVStringPair::set(  const   XMLCh* const    newKey
+                              , const   XMLCh* const    newValue)
+{
+    setKey(newKey, XMLString::stringLen(newKey));
+    setValue(newValue, XMLString::stringLen(newValue));
+}
+
+inline void KVStringPair::set(  const   XMLCh* const newKey
+                              , const   unsigned int newKeyLength
+                              , const   XMLCh* const newValue
+                              , const   unsigned int newValueLength)
+{
+    setKey(newKey, newKeyLength);
+    setValue(newValue, newValueLength);
+}
+
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/RefVectorOf.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/RefVectorOf.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/RefVectorOf.hpp	(revision 2674)
@@ -0,0 +1,62 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: RefVectorOf.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(REFVECTOROF_HPP)
+#define REFVECTOROF_HPP
+
+#include <xercesc/util/BaseRefVectorOf.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+/** 
+ * Class with implementation for vectors of References - implements from the 
+ * Abstract class Vector
+ */ 
+template <class TElem> class RefVectorOf : public BaseRefVectorOf<TElem>
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Constructor
+    // -----------------------------------------------------------------------
+    RefVectorOf(const unsigned int maxElems,
+                const bool adoptElems = true,
+                MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+
+    // -----------------------------------------------------------------------
+    //  Destructor
+    // -----------------------------------------------------------------------
+    ~RefVectorOf();
+
+private:
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    RefVectorOf(const RefVectorOf<TElem>&);
+    RefVectorOf<TElem>& operator=(const RefVectorOf<TElem>&);
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#if !defined(XERCES_TMPLSINC)
+#include <xercesc/util/RefVectorOf.c>
+#endif
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Base64.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Base64.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/Base64.hpp	(revision 2674)
@@ -0,0 +1,309 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: Base64.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#ifndef BASE64_HPP
+#define BASE64_HPP
+
+#include <xercesc/util/XercesDefs.hpp>
+#include <xercesc/util/XMLUniDefs.hpp>
+#include <xercesc/framework/MemoryManager.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+//
+// This class provides encode/decode for RFC 2045 Base64 as
+// defined by RFC 2045, N. Freed and N. Borenstein.
+// RFC 2045: Multipurpose Internet Mail Extensions (MIME)
+// Part One: Format of Internet Message Bodies. Reference
+// 1996 Available at: http://www.ietf.org/rfc/rfc2045.txt
+// This class is used by XML Schema binary format validation
+//
+//
+class XMLUTIL_EXPORT Base64
+{
+public :
+
+    enum Conformance
+    {
+        Conf_RFC2045
+      , Conf_Schema
+    };
+
+    //@{
+
+    /**
+     * Encodes octets into Base64 data
+     *
+     * NOTE: The returned buffer is dynamically allocated and is the
+     * responsibility of the caller to delete it when not longer needed.
+     * You can call XMLString::release to release this returned buffer.
+     *
+     * If a memory manager is provided, ask the memory manager to de-allocate
+     * the returned buffer.
+     *
+     * @param inputData Binary data in XMLByte stream.
+     * @param inputLength Length of the XMLByte stream.
+     * @param outputLength Length of the encoded Base64 byte stream.
+     * @param memMgr client provided memory manager
+     * @return Encoded Base64 data in XMLByte stream,
+     *      or NULL if input data can not be encoded.
+     * @see   XMLString::release(XMLByte**)
+     */
+    static XMLByte* encode(const XMLByte* const inputData
+                         , const unsigned int   inputLength
+                         , unsigned int*        outputLength
+                         , MemoryManager* const memMgr = 0);
+
+    /**
+     * Decodes Base64 data into octets
+     *
+     * NOTE: The returned buffer is dynamically allocated and is the
+     * responsibility of the caller to delete it when not longer needed.
+     * You can call XMLString::release to release this returned buffer.
+     *
+     * If a memory manager is provided, ask the memory manager to de-allocate
+     * the returned buffer.
+     *
+     * @param inputData Base64 data in XMLByte stream.
+     * @param decodedLength Length of decoded XMLByte stream.
+     * @param memMgr client provided memory manager
+     * @param conform conformance specified: if the input data conforms to the
+     *                RFC 2045 it is allowed to have any number of whitespace
+     *                characters inside; if it conforms to the XMLSchema specs,
+     *                it is allowed to have at most one whitespace character
+     *                between the quartets
+     * @return Decoded binary data in XMLByte stream,
+     *      or NULL if input data can not be decoded.
+     * @see   XMLString::release(XMLByte**)
+     */
+    static XMLByte* decode(
+                           const XMLByte*        const   inputData
+                         ,       unsigned int*           decodedLength
+                         ,       MemoryManager*  const   memMgr = 0
+                         ,       Conformance             conform = Conf_RFC2045
+                          );
+
+    /**
+     * Decodes Base64 data into XMLCh
+     *
+     * NOTE: The returned buffer is dynamically allocated and is the
+     * responsibility of the caller to delete it when not longer needed.
+     * You can call XMLString::release to release this returned buffer.
+     *
+     * If a memory manager is provided, ask the memory manager to de-allocate
+     * the returned buffer.
+     *
+     * @param inputData Base64 data in XMLCh stream.
+     * @param decodedLength Length of decoded XMLCh stream
+     * @param memMgr client provided memory manager
+     * @param conform conformance specified: if the input data conforms to the
+     *                RFC 2045 it is allowed to have any number of whitespace
+     *                characters inside; if it conforms to the XMLSchema specs,
+     *                it is allowed to have at most one whitespace character
+     *                between the quartets
+     * @return Decoded binary data in XMLCh stream,
+     *      or NULL if input data can not be decoded.
+     * @see   XMLString::release(XMLCh**)
+     * @deprecated use decodeToXMLByte instead.
+     */
+
+    static XMLCh* decode(
+                         const XMLCh*          const    inputData
+                       ,       unsigned int*            decodedLength
+                       ,       MemoryManager*  const    memMgr = 0
+                       ,       Conformance              conform = Conf_RFC2045
+                        );
+   
+   /**
+     * Decodes Base64 data into octets
+     *
+     * NOTE: The returned buffer is dynamically allocated and is the
+     * responsibility of the caller to delete it when not longer needed.
+     * You can call XMLString::release to release this returned buffer.
+     *
+     * If a memory manager is provided, ask the memory manager to de-allocate
+     * the returned buffer.
+     *
+     * @param inputData Base64 data in XMLCh stream.
+     * @param decodedLength Length of decoded XMLByte stream.
+     * @param memMgr client provided memory manager
+     * @param conform conformance specified: if the input data conforms to the
+     *                RFC 2045 it is allowed to have any number of whitespace
+     *                characters inside; if it conforms to the XMLSchema specs,
+     *                it is allowed to have at most one whitespace character
+     *                between the quartets
+     * @return Decoded binary data in XMLByte stream,
+     *      or NULL if input data can not be decoded.
+     * @see   XMLString::release(XMLByte**)
+     */
+    static XMLByte* decodeToXMLByte(
+                           const XMLCh*          const   inputData
+                         ,       unsigned int*           decodedLength
+                         ,       MemoryManager*  const   memMgr = 0
+                         ,       Conformance             conform = Conf_RFC2045
+                          );
+    /**
+     * Get data length
+	 *
+     * Returns length of decoded data given an array
+     * containing encoded data.
+     *
+     * @param inputData Base64 data in XMLCh stream.
+     * @param memMgr client provided memory manager
+     * @param conform conformance specified
+     * @return Length of decoded data,
+	 *      or -1 if input data can not be decoded.
+     */
+    static int getDataLength(
+                             const XMLCh*         const  inputData
+                            ,      MemoryManager* const  memMgr = 0
+                            ,      Conformance           conform = Conf_RFC2045
+                             );
+
+    //@}
+
+     /**
+     * get canonical representation
+     *
+     * Caller is responsible for the proper deallcation
+     * of the string returned.
+     * 
+     * @param inputData A string containing the Base64
+     * @param memMgr client provided memory manager
+     * @param conform conformance specified
+     *
+     * return: the canonical representation of the Base64
+     *         if it is a valid Base64
+     *         0 otherwise
+     */
+
+    static XMLCh* getCanonicalRepresentation
+                  (
+                      const XMLCh*          const inputData
+                    ,       MemoryManager*  const memMgr = 0
+                    ,       Conformance           conform = Conf_RFC2045
+                  );
+
+private :
+
+    // -----------------------------------------------------------------------
+    //  Helper methods
+    // -----------------------------------------------------------------------
+
+    static XMLByte* decode(
+                           const XMLByte*        const   inputData
+                         ,       unsigned int*           outputLength
+                         ,       XMLByte*&               canRepData
+                         ,       MemoryManager*  const   memMgr = 0
+                         ,       Conformance             conform = Conf_RFC2045
+                          );
+
+    static void init();
+
+    static bool isData(const XMLByte& octet);
+    static bool isPad(const XMLByte& octet);
+
+    static XMLByte set1stOctet(const XMLByte&, const XMLByte&);
+    static XMLByte set2ndOctet(const XMLByte&, const XMLByte&);
+    static XMLByte set3rdOctet(const XMLByte&, const XMLByte&);
+
+    static void split1stOctet(const XMLByte&, XMLByte&, XMLByte&);
+    static void split2ndOctet(const XMLByte&, XMLByte&, XMLByte&);
+    static void split3rdOctet(const XMLByte&, XMLByte&, XMLByte&);
+
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    Base64();
+    Base64(const Base64&);
+
+    // -----------------------------------------------------------------------
+    //  Private data members
+    //
+    //  base64Alphabet
+    //     The Base64 alphabet (see RFC 2045).
+    //
+    //  base64Padding
+    //     Padding character (see RFC 2045).
+    //
+    //  base64Inverse
+    //     Table used in decoding base64.
+    //
+    //  isInitialized
+    //     Set once base64Inverse is initalized.
+    //
+    //  quadsPerLine
+    //     Number of quadruplets per one line. The encoded output
+    //     stream must be represented in lines of no more
+    //     than 19 quadruplets each.
+    //
+    // -----------------------------------------------------------------------
+
+    static const XMLByte  base64Alphabet[];
+    static const XMLByte  base64Padding;
+
+    static XMLByte  base64Inverse[];
+    static bool  isInitialized;
+
+    static const unsigned int  quadsPerLine;
+};
+
+// -----------------------------------------------------------------------
+//  Helper methods
+// -----------------------------------------------------------------------
+inline bool Base64::isPad(const XMLByte& octet)
+{
+    return ( octet == base64Padding );
+}
+
+inline XMLByte Base64::set1stOctet(const XMLByte& b1, const XMLByte& b2)
+{
+    return (( b1 << 2 ) | ( b2 >> 4 ));
+}
+
+inline XMLByte Base64::set2ndOctet(const XMLByte& b2, const XMLByte& b3)
+{
+    return (( b2 << 4 ) | ( b3 >> 2 ));
+}
+
+inline XMLByte Base64::set3rdOctet(const XMLByte& b3, const XMLByte& b4)
+{
+    return (( b3 << 6 ) | b4 );
+}
+
+inline void Base64::split1stOctet(const XMLByte& ch, XMLByte& b1, XMLByte& b2) {
+    b1 = ch >> 2;
+    b2 = ( ch & 0x3 ) << 4;
+}
+
+inline void Base64::split2ndOctet(const XMLByte& ch, XMLByte& b2, XMLByte& b3) {
+    b2 |= ch >> 4;  // combine with previous value
+    b3 = ( ch & 0xf ) << 2;
+}
+
+inline void Base64::split3rdOctet(const XMLByte& ch, XMLByte& b3, XMLByte& b4) {
+    b3 |= ch >> 6;  // combine with previous value
+    b4 = ( ch & 0x3f );
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/XMLUCS4Transcoder.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/XMLUCS4Transcoder.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/XMLUCS4Transcoder.hpp	(revision 2674)
@@ -0,0 +1,100 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef XMLUCS4TRANSCODER_HPP
+#define XMLUCS4TRANSCODER_HPP
+
+#include <xercesc/util/XercesDefs.hpp>
+#include <xercesc/util/TransService.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+//
+//  This class provides an implementation of the XMLTranscoder interface
+//  for a simple UCS4 transcoder. The parser does some encodings
+//  intrinsically without depending upon external transcoding services.
+//  To make everything more orthagonal, we implement these internal
+//  transcoders using the same transcoder abstraction as the pluggable
+//  transcoding services do.
+//
+class XMLUTIL_EXPORT XMLUCS4Transcoder : public XMLTranscoder
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Public constructors and destructor
+    // -----------------------------------------------------------------------
+    XMLUCS4Transcoder
+    (
+        const   XMLCh* const    encodingName
+        , const unsigned int    blockSize
+        , const bool            swapped
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    virtual ~XMLUCS4Transcoder();
+
+
+    // -----------------------------------------------------------------------
+    //  Implementation of the XMLTranscoder interface
+    // -----------------------------------------------------------------------
+    virtual unsigned int transcodeFrom
+    (
+        const   XMLByte* const          srcData
+        , const unsigned int            srcCount
+        ,       XMLCh* const            toFill
+        , const unsigned int            maxChars
+        ,       unsigned int&           bytesEaten
+        ,       unsigned char* const    charSizes
+    );
+
+    virtual unsigned int transcodeTo
+    (
+        const   XMLCh* const    srcData
+        , const unsigned int    srcCount
+        ,       XMLByte* const  toFill
+        , const unsigned int    maxBytes
+        ,       unsigned int&   charsEaten
+        , const UnRepOpts       options
+    );
+
+    virtual bool canTranscodeTo
+    (
+        const   unsigned int    toCheck
+    )   const;
+
+
+private :
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    XMLUCS4Transcoder(const XMLUCS4Transcoder&);
+    XMLUCS4Transcoder& operator=(const XMLUCS4Transcoder&);
+
+
+    // -----------------------------------------------------------------------
+    //  Private data members
+    //
+    //  fSwapped
+    //      This tells us if our input is going to be in the same endianess
+    //      as the local host or swapped.
+    // -----------------------------------------------------------------------
+    bool    fSwapped;
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/RefStackOf.hpp
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/RefStackOf.hpp	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/util/RefStackOf.hpp	(revision 2674)
@@ -0,0 +1,151 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: RefStackOf.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(REFSTACKOF_HPP)
+#define REFSTACKOF_HPP
+
+#include <xercesc/util/RefVectorOf.hpp>
+#include <xercesc/util/EmptyStackException.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+//
+//  Forward declare the enumerator so he can be our friend. Can you say
+//  friend? Sure...
+//
+template <class TElem> class RefStackEnumerator;
+
+
+template <class TElem> class RefStackOf : public XMemory
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+    RefStackOf(const unsigned int initElems,
+               const bool adoptElems = true,
+               MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+    ~RefStackOf();
+
+
+    // -----------------------------------------------------------------------
+    //  Element management methods
+    // -----------------------------------------------------------------------
+    const TElem* elementAt(const unsigned int index) const;
+    void push(TElem* const toPush);
+    const TElem* peek() const;
+    TElem* pop();
+    void removeAllElements();
+
+
+    // -----------------------------------------------------------------------
+    //  Getter methods
+    // -----------------------------------------------------------------------
+    bool empty();
+    unsigned int curCapacity();
+    unsigned int size();
+
+
+private :
+    // -----------------------------------------------------------------------
+    //  Declare our friends
+    // -----------------------------------------------------------------------
+    friend class RefStackEnumerator<TElem>;
+
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    RefStackOf(const RefStackOf<TElem>&);
+    RefStackOf<TElem>& operator=(const RefStackOf<TElem>&);
+
+    // -----------------------------------------------------------------------
+    //  Data Members
+    //
+    //  fVector
+    //      The vector that is used as the backing data structure for the
+    //      stack.
+    // -----------------------------------------------------------------------
+    RefVectorOf<TElem>  fVector;
+};
+
+
+
+//
+//  An enumerator for a value stack. It derives from the basic enumerator
+//  class, so that value stacks can be generically enumerated.
+//
+template <class TElem> class RefStackEnumerator : public XMLEnumerator<TElem>, public XMemory
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+    RefStackEnumerator
+    (
+                RefStackOf<TElem>* const    toEnum
+        , const bool                        adopt = false
+    );
+    virtual ~RefStackEnumerator();
+
+
+    // -----------------------------------------------------------------------
+    //  Enum interface
+    // -----------------------------------------------------------------------
+    bool hasMoreElements() const;
+    TElem& nextElement();
+    void Reset();
+
+
+private :
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    RefStackEnumerator(const RefStackEnumerator<TElem>&);
+    RefStackEnumerator<TElem>& operator=(const RefStackEnumerator<TElem>&);
+    // -----------------------------------------------------------------------
+    //  Data Members
+    //
+    //  fAdopted
+    //      Indicates whether we have adopted the passed stack. If so then
+    //      we delete the stack when we are destroyed.
+    //
+    //  fCurIndex
+    //      This is the current index into the vector inside the stack being
+    //      enumerated.
+    //
+    //  fToEnum
+    //      The stack that is being enumerated. This is just kept for
+    //      adoption purposes, since we really are enumerating the vector
+    //      inside of it.
+    // -----------------------------------------------------------------------
+    bool                fAdopted;
+    unsigned int        fCurIndex;
+    RefVectorOf<TElem>* fVector;
+    RefStackOf<TElem>*  fToEnum;
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#if !defined(XERCES_TMPLSINC)
+#include <xercesc/util/RefStackOf.c>
+#endif
+
+#endif
Index: /NonGTP/Xerces/xerces-c_2_8_0/samples/data/personal-schema.xml
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/samples/data/personal-schema.xml	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/samples/data/personal-schema.xml	(revision 2674)
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?proc-inst-1 'foo' ?>
+<personnel xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	   xsi:noNamespaceSchemaLocation='personal.xsd'>
+
+  <person id="Big.Boss">
+    <name xml:base="foo/bar"><family  xml:base="bar/bar">Boss</family> <given xml:base="car/bar">Big</given><?proc-inst-2 'foobar' ?></name>
+    <email>chief@foo.com</email>
+    <link subordinates="one.worker two.worker three.worker four.worker five.worker"/>
+  </person>
+
+  <person id="one.worker" xml:base="/auto/bar">
+    <name xml:base="/car/foo/"><family xml:base="bar/bar">Worker</family> <given>One</given></name>
+    <email>one@foo.com</email>
+    <link manager="Big.Boss"/>
+  </person>
+
+  <person id="two.worker" xml:base="http://www.example.com/car/car">
+    <name xml:base="/bar/foo/"><family xml:base="foo/bar">Worker</family> <given>Two</given></name>
+    <email>two@foo.com</email>
+    <link manager="Big.Boss"/>
+  </person>
+
+  <person id="three.worker">
+    <name><family>Worker</family> <given>Three</given></name>
+    <email>three@foo.com</email>
+    <link manager="Big.Boss"/>
+  </person>
+
+  <person id="four.worker">
+    <name><family>Worker</family> <given>Four</given></name>
+    <email>four@foo.com</email>
+    <link manager="Big.Boss"/>
+  </person>
+
+  <person id="five.worker">
+    <name><family>Worker</family> <given>Five</given></name>
+    <email>five@foo.com</email>
+    <link manager="Big.Boss"/>
+  </person>
+
+</personnel>
Index: /NonGTP/Xerces/xerces-c_2_8_0/samples/data/personal.xsd
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/samples/data/personal.xsd	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/samples/data/personal.xsd	(revision 2674)
@@ -0,0 +1,108 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xs:schema xmlns:xs='http://www.w3.org/2001/XMLSchema'>
+
+ <xs:import namespace="http://www.w3.org/XML/1998/namespace">
+   <xs:annotation>
+     <xs:documentation>
+        The schemaLocation of the relevant file is
+        "http://www.w3.org/2001/xml.xsd"; however,
+        we don't want to assume people are always
+        connected to the 'net when playing with this file.
+     </xs:documentation>
+   </xs:annotation>
+ </xs:import>
+
+ <xs:element name="personnel">
+  <xs:complexType>
+   <xs:sequence>
+     <xs:element ref="person" minOccurs='1' maxOccurs='unbounded'/>
+   </xs:sequence>
+  </xs:complexType>
+
+  <xs:unique name="unique1">
+   <xs:selector xpath="person"/>
+   <xs:field xpath="name/given"/>
+   <xs:field xpath="name/family"/>
+  </xs:unique>
+  <xs:key name='empid'>
+   <xs:selector xpath="person"/>
+   <xs:field xpath="@id"/>
+  </xs:key>
+  <xs:keyref name="keyref1" refer='empid'>
+   <xs:selector xpath="person"/> 
+   <xs:field xpath="link/@manager"/>  
+  </xs:keyref>
+
+ </xs:element>
+
+ <xs:element name="person">
+  <xs:complexType>
+   <xs:sequence>
+     <xs:element ref="name"/>
+     <xs:element ref="email" minOccurs='0' maxOccurs='unbounded'/>
+     <xs:element ref="url"   minOccurs='0' maxOccurs='unbounded'/>
+     <xs:element ref="link"  minOccurs='0' maxOccurs='1'/>
+   </xs:sequence>
+   <xs:attribute name="id"  type="xs:ID" use='required'/>
+   <xs:attribute name="note" type="xs:string"/>
+   <xs:attribute name="contr" default="false">
+    <xs:simpleType>
+     <xs:restriction base = "xs:string">
+       <xs:enumeration value="true"/>
+       <xs:enumeration value="false"/>
+     </xs:restriction>
+    </xs:simpleType>
+   </xs:attribute>
+   <xs:attribute name="salary" type="xs:integer"/>
+   <xs:anyAttribute namespace="http://www.w3.org/XML/1998/namespace" processContents="skip"/>
+  </xs:complexType>
+ </xs:element>
+
+ <xs:element name="name">
+  <xs:complexType>
+   <xs:all>
+    <xs:element ref="family"/>
+    <xs:element ref="given"/>
+   </xs:all>
+   <xs:anyAttribute namespace="http://www.w3.org/XML/1998/namespace" processContents="skip"/>
+  </xs:complexType>
+ </xs:element>
+
+ <xs:element name="family">
+   <xs:complexType>
+     <xs:simpleContent>
+       <xs:extension base='xs:string'>
+          <xs:anyAttribute namespace="http://www.w3.org/XML/1998/namespace" processContents="skip"/>
+        </xs:extension>
+     </xs:simpleContent>
+   </xs:complexType>
+ </xs:element>
+
+ <xs:element name="given" >
+   <xs:complexType>
+     <xs:simpleContent>
+       <xs:extension base='xs:string'>
+          <xs:anyAttribute namespace="http://www.w3.org/XML/1998/namespace" processContents="skip"/>
+        </xs:extension>
+     </xs:simpleContent>
+   </xs:complexType>
+ </xs:element>
+
+ <xs:element name="email" type='xs:string'/>
+
+ <xs:element name="url">
+  <xs:complexType>
+   <xs:attribute name="href" type="xs:string" default="http://"/>
+  </xs:complexType>
+ </xs:element>
+
+ <xs:element name="link">
+  <xs:complexType>
+   <xs:attribute name="manager" type="xs:IDREF"/>
+   <xs:attribute name="subordinates" type="xs:IDREFS"/>
+  </xs:complexType>
+ </xs:element>
+
+ <xs:notation name='gif' public='-//APP/Photoshop/4.0' system='photoshop.exe'/>
+
+</xs:schema>
Index: /NonGTP/Xerces/xerces-c_2_8_0/samples/data/personal.xml
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/samples/data/personal.xml	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/samples/data/personal.xml	(revision 2674)
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE personnel SYSTEM "personal.dtd">
+
+<!-- @version: -->
+
+<personnel>
+
+  <person id="Big.Boss" >
+    <name><family>Boss</family> <given>Big</given></name>
+    <email>chief@foo.com</email>
+    <link subordinates="one.worker two.worker three.worker four.worker five.worker"/>
+  </person>
+
+  <person id="one.worker">
+    <name><family>Worker</family> <given>One</given></name>
+    <email>one@foo.com</email>
+    <link manager="Big.Boss"/>
+  </person>
+
+  <person id="two.worker">
+    <name><family>Worker</family> <given>Two</given></name>
+    <email>two@foo.com</email>
+    <link manager="Big.Boss"/>
+  </person>
+
+  <person id="three.worker">
+    <name><family>Worker</family> <given>Three</given></name>
+    <email>three@foo.com</email>
+    <link manager="Big.Boss"/>
+  </person>
+
+  <person id="four.worker">
+    <name><family>Worker</family> <given>Four</given></name>
+    <email>four@foo.com</email>
+    <link manager="Big.Boss"/>
+  </person>
+
+  <person id="five.worker">
+    <name><family>Worker</family> <given>Five</given></name>
+    <email>five@foo.com</email>
+    <link manager="Big.Boss"/>
+  </person>
+
+</personnel>
Index: /NonGTP/Xerces/xerces-c_2_8_0/samples/data/redirect.dtd
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/samples/data/redirect.dtd	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/samples/data/redirect.dtd	(revision 2674)
@@ -0,0 +1,17 @@
+<?xml encoding="ISO-8859-1"?>
+
+<!-- @version: -->
+
+<!ELEMENT personnel (person)+>
+<!ELEMENT person (name,email*,url*,link?)>
+<!ATTLIST person id ID #REQUIRED>
+<!ELEMENT family (#PCDATA)>
+<!ELEMENT given (#PCDATA)>
+<!ELEMENT name (#PCDATA|family|given)*>
+<!ELEMENT email (#PCDATA)>
+<!ELEMENT url EMPTY>
+<!ATTLIST url href CDATA #REQUIRED>
+<!ELEMENT link EMPTY>
+<!ATTLIST link
+  manager IDREF #IMPLIED
+  subordinates IDREFS #IMPLIED>
Index: /NonGTP/Xerces/xerces-c_2_8_0/samples/data/personal.dtd
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/samples/data/personal.dtd	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/samples/data/personal.dtd	(revision 2674)
@@ -0,0 +1,17 @@
+<?xml encoding="ISO-8859-1"?>
+
+<!-- @version:  -->
+
+<!ELEMENT personnel (person)+>
+<!ELEMENT person (name,email*,url*,link?)>
+<!ATTLIST person id ID #REQUIRED>
+<!ELEMENT family (#PCDATA)>
+<!ELEMENT given (#PCDATA)>
+<!ELEMENT name (#PCDATA|family|given)*>
+<!ELEMENT email (#PCDATA)>
+<!ELEMENT url EMPTY>
+<!ATTLIST url href CDATA #REQUIRED>
+<!ELEMENT link EMPTY>
+<!ATTLIST link
+  manager IDREF #IMPLIED
+  subordinates IDREFS #IMPLIED>
Index: /NonGTP/Xerces/xerces-c_2_8_0/scripts/sanityTest.pl
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/scripts/sanityTest.pl	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/scripts/sanityTest.pl	(revision 2674)
@@ -0,0 +1,210 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+# 
+#      http://www.apache.org/licenses/LICENSE-2.0
+# 
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+#
+
+#
+# $Id: sanityTest.pl 570125 2007-08-27 13:57:11Z amassari $
+#
+
+
+#  Author(s):   Mike Strosaker
+#
+#  Verify that a Xerces-C build is successful.
+#  Command-Line Parameter:
+#      The OS type ("win" or "unix")
+#
+#  Prerequisites:
+#      Set the path to include the appropriate executables
+#      and the library path to include the libraries
+
+$os     = $ARGV[0];
+
+# flush output
+$| = 1;
+
+if (lc($os) eq "win") {
+    $pathsep = "\\";
+}
+else {
+    $pathsep = "/";
+}
+
+chdir "samples".$pathsep."data";
+
+#
+#  Run the samples
+#
+
+#  Run SAXCount
+system ("SAXCount");
+system ("SAXCount -v=never personal.xml");
+system ("SAXCount personal.xml");
+system ("SAXCount -n -s personal-schema.xml");
+
+#  Run SAXPrint
+system ("SAXPrint");
+system ("SAXPrint -v=never personal.xml");
+system ("SAXPrint personal.xml");
+system ("SAXPrint -n -s personal-schema.xml");
+
+#  Run SAX2Count
+system ("SAX2Count");
+system ("SAX2Count -v=never personal.xml");
+system ("SAX2Count personal.xml");
+system ("SAX2Count -p personal-schema.xml");
+
+#  Run SAX2Print
+system ("SAX2Print");
+system ("SAX2Print -v=never personal.xml");
+system ("SAX2Print personal.xml");
+system ("SAX2Print -p personal-schema.xml");
+system ("SAX2Print personal.xsd");
+system ("SAX2Print -sa personal.xsd");
+
+#  Run MemParse
+system ("MemParse");
+system ("MemParse -v=never");
+
+#  Run Redirect
+system ("Redirect");
+system ("Redirect personal.xml");
+
+#  Run DOMCount
+system ("DOMCount");
+system ("DOMCount -v=never personal.xml");
+system ("DOMCount personal.xml");
+system ("DOMCount -n -s personal-schema.xml");
+
+#  Run DOMPrint
+system ("DOMPrint");
+system ("DOMPrint -wfpp=on -wddc=off -v=never personal.xml");
+system ("DOMPrint -wfpp=on -wddc=off personal.xml");
+system ("DOMPrint -wfpp=on -wddc=on  personal.xml");
+system ("DOMPrint -wfpp=on -wddc=off -n -s personal-schema.xml");
+
+#  Run StdInParse
+system ("StdInParse < personal.xml");
+system ("StdInParse -v=never < personal.xml");
+system ("StdInParse -n -s < personal-schema.xml");
+
+#  Run PParse
+system ("PParse");
+system ("PParse personal.xml");
+system ("PParse -n -s personal-schema.xml");
+
+#  Run EnumVal
+system ("EnumVal");
+system ("EnumVal personal.xml");
+
+#  Run SEnumVal
+system ("SEnumVal");
+system ("SEnumVal personal-schema.xml");
+
+#  Run CreateDOMDocument
+system ("CreateDOMDocument");
+
+#
+#  Run the test cases
+#
+
+#  Run DOMMemTest
+print  ("DOMMemTest\n");
+system ("DOMMemTest");
+
+#  Run DOMTest
+print  ("DOMTest\n");
+system ("DOMTest");
+
+#  Run RangeTest
+print  ("RangeTest\n");
+system ("RangeTest");
+
+#  Run DOMTraversalTest
+print  ("DOMTraversalTest\n");
+system ("DOMTraversalTest");
+
+#  Run DeprecatedDOMCount
+system ("DeprecatedDOMCount");
+system ("DeprecatedDOMCount -v=never personal.xml");
+system ("DeprecatedDOMCount personal.xml");
+system ("DeprecatedDOMCount -n -s personal-schema.xml");
+
+#  Run XSerializerTest
+system ("XSerializerTest");
+system ("XSerializerTest -v=never  personal.xml");
+system ("XSerializerTest -v=always personal.xml");
+system ("XSerializerTest -v=never  personal-schema.xml");
+system ("XSerializerTest -v=always personal-schema.xml");
+system ("XSerializerTest -v=always -f personal-schema.xml");
+
+#  Run XSValueTest
+system ("XSValueTest");
+
+#  Run InitTestTerm
+system ("InitTermTest");
+print  ("1");
+system ("InitTermTest personal.xml");
+print  ("2");
+system ("InitTermTest -n -s personal-schema.xml");
+print  ("3");
+system ("InitTermTest -n -s -f personal-schema.xml");
+
+#  Run ThreadTest
+system ("ThreadTest");
+print  ("1");
+system ("ThreadTest -parser=sax -v=never -quiet -threads 10 -time 20 personal.xml");
+print  ("2");
+system ("ThreadTest -parser=dom -v=never -quiet -threads 10 -time 20 personal.xml");
+print  ("3");
+system ("ThreadTest -parser=sax2 -v=never -quiet -threads 10 -time 20 personal.xml");
+print  ("4");
+system ("ThreadTest -parser=sax -v=always -quiet -threads 10 -time 20 personal.xml");
+print  ("5");
+system ("ThreadTest -parser=dom -v=always -quiet -threads 10 -time 20 personal.xml");
+print  ("6");
+system ("ThreadTest -parser=sax2 -v=always -quiet -threads 10 -time 20 personal.xml");
+print  ("7");
+system ("ThreadTest -parser=sax -gc -v=always -quiet -threads 10 -time 20 personal.xml");
+print  ("8");
+system ("ThreadTest -parser=dom -gc -v=always -quiet -threads 10 -time 20 personal.xml");
+print  ("9");
+system ("ThreadTest -parser=sax2 -gc -v=always -quiet -threads 10 -time 20 personal.xml");
+print  ("10");
+system ("ThreadTest -parser=sax -n -s -f -v=always -quiet -threads 10 -time 20 personal-schema.xml");
+print  ("11");
+system ("ThreadTest -parser=dom -n -s -f -v=always -quiet -threads 10 -time 20 personal-schema.xml");
+print  ("12");
+system ("ThreadTest -parser=sax2 -n -s -f -v=always -quiet -threads 10 -time 20 personal-schema.xml");
+print  ("13");
+system ("ThreadTest -parser=sax -gc -n -s -f -v=always -quiet -threads 10 -time 20 personal-schema.xml");
+print  ("14");
+system ("ThreadTest -parser=dom -gc -n -s -f -v=always -quiet -threads 10 -time 20 personal-schema.xml");
+print  ("15");
+system ("ThreadTest -parser=sax2 -gc -n -s -f -v=always -quiet -threads 10 -time 20 personal-schema.xml");
+
+#  Run MemHandlerTest
+system ("MemHandlerTest");
+system ("MemHandlerTest -v=always -n -r=2 personal.xml");
+system ("MemHandlerTest -v=always -n -r=2 -s -f personal-schema.xml");
+
+chdir "..".$pathsep."..";
+
+chdir "tests".$pathsep."DOM".$pathsep."TypeInfo";
+system ("DOMTypeInfoTest");
+
+chdir "..".$pathsep."..";
+
Index: /NonGTP/Xerces/xerces-c_2_8_0/scripts/sanityTest_ExpectedResult.log
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/scripts/sanityTest_ExpectedResult.log	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/scripts/sanityTest_ExpectedResult.log	(revision 2674)
@@ -0,0 +1,1230 @@
+
+Usage:
+    SAXCount [options] <XML file | List file>
+
+This program invokes the SAX Parser, and then prints the
+number of elements, attributes, spaces and characters found
+in each XML file, using SAX API.
+
+Options:
+    -l          Indicate the input file is a List File that has a list of xml files.
+                Default to off (Input file is an XML file).
+    -v=xxx      Validation scheme [always | never | auto*].
+    -n          Enable namespace processing. Defaults to off.
+    -s          Enable schema processing. Defaults to off.
+    -f          Enable full schema constraint checking. Defaults to off.
+    -locale=ll_CC specify the locale, default: en_US.
+    -?          Show this help.
+
+  * = Default if not provided explicitly.
+
+personal.xml:{timing removed}(37 elems, 12 attrs, 0 spaces, 268 chars)
+personal.xml:{timing removed}(37 elems, 12 attrs, 134 spaces, 134 chars)
+personal-schema.xml:{timing removed}(37 elems, 29 attrs, 140 spaces, 128 chars)
+
+Usage:
+    SAXPrint [options] <XML file>
+
+This program invokes the SAX Parser, and then prints the
+data returned by the various SAX handlers for the specified
+XML file.
+
+Options:
+    -u=xxx      Handle unrepresentable chars [fail | rep | ref*].
+    -v=xxx      Validation scheme [always | never | auto*].
+    -n          Enable namespace processing.
+    -s          Enable schema processing.
+    -f          Enable full schema constraint checking.
+    -x=XXX      Use a particular encoding for output (LATIN1*).
+    -?          Show this help.
+
+  * = Default if not provided explicitly.
+
+The parser has intrinsic support for the following encodings:
+    UTF-8, USASCII, ISO8859-1, UTF-16[BL]E, UCS-4[BL]E,
+    WINDOWS-1252, IBM1140, IBM037, IBM1047.
+
+<?xml version="1.0" encoding="LATIN1"?>
+<personnel>
+
+  <person id="Big.Boss">
+    <name><family>Boss</family> <given>Big</given></name>
+    <email>chief@foo.com</email>
+    <link subordinates="one.worker two.worker three.worker four.worker five.worker"></link>
+  </person>
+
+  <person id="one.worker">
+    <name><family>Worker</family> <given>One</given></name>
+    <email>one@foo.com</email>
+    <link manager="Big.Boss"></link>
+  </person>
+
+  <person id="two.worker">
+    <name><family>Worker</family> <given>Two</given></name>
+    <email>two@foo.com</email>
+    <link manager="Big.Boss"></link>
+  </person>
+
+  <person id="three.worker">
+    <name><family>Worker</family> <given>Three</given></name>
+    <email>three@foo.com</email>
+    <link manager="Big.Boss"></link>
+  </person>
+
+  <person id="four.worker">
+    <name><family>Worker</family> <given>Four</given></name>
+    <email>four@foo.com</email>
+    <link manager="Big.Boss"></link>
+  </person>
+
+  <person id="five.worker">
+    <name><family>Worker</family> <given>Five</given></name>
+    <email>five@foo.com</email>
+    <link manager="Big.Boss"></link>
+  </person>
+
+</personnel><?xml version="1.0" encoding="LATIN1"?>
+<personnel>
+
+  <person id="Big.Boss">
+    <name><family>Boss</family> <given>Big</given></name>
+    <email>chief@foo.com</email>
+    <link subordinates="one.worker two.worker three.worker four.worker five.worker"></link>
+  </person>
+
+  <person id="one.worker">
+    <name><family>Worker</family> <given>One</given></name>
+    <email>one@foo.com</email>
+    <link manager="Big.Boss"></link>
+  </person>
+
+  <person id="two.worker">
+    <name><family>Worker</family> <given>Two</given></name>
+    <email>two@foo.com</email>
+    <link manager="Big.Boss"></link>
+  </person>
+
+  <person id="three.worker">
+    <name><family>Worker</family> <given>Three</given></name>
+    <email>three@foo.com</email>
+    <link manager="Big.Boss"></link>
+  </person>
+
+  <person id="four.worker">
+    <name><family>Worker</family> <given>Four</given></name>
+    <email>four@foo.com</email>
+    <link manager="Big.Boss"></link>
+  </person>
+
+  <person id="five.worker">
+    <name><family>Worker</family> <given>Five</given></name>
+    <email>five@foo.com</email>
+    <link manager="Big.Boss"></link>
+  </person>
+
+</personnel><?xml version="1.0" encoding="LATIN1"?>
+<?proc-inst-1 'foo' ?><personnel xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="personal.xsd">
+
+  <person id="Big.Boss" contr="false">
+    <name xml:base="foo/bar"><family xml:base="bar/bar">Boss</family> <given xml:base="car/bar">Big</given><?proc-inst-2 'foobar' ?></name>
+    <email>chief@foo.com</email>
+    <link subordinates="one.worker two.worker three.worker four.worker five.worker"></link>
+  </person>
+
+  <person id="one.worker" xml:base="/auto/bar" contr="false">
+    <name xml:base="/car/foo/"><family xml:base="bar/bar">Worker</family> <given>One</given></name>
+    <email>one@foo.com</email>
+    <link manager="Big.Boss"></link>
+  </person>
+
+  <person id="two.worker" xml:base="http://www.example.com/car/car" contr="false">
+    <name xml:base="/bar/foo/"><family xml:base="foo/bar">Worker</family> <given>Two</given></name>
+    <email>two@foo.com</email>
+    <link manager="Big.Boss"></link>
+  </person>
+
+  <person id="three.worker" contr="false">
+    <name><family>Worker</family> <given>Three</given></name>
+    <email>three@foo.com</email>
+    <link manager="Big.Boss"></link>
+  </person>
+
+  <person id="four.worker" contr="false">
+    <name><family>Worker</family> <given>Four</given></name>
+    <email>four@foo.com</email>
+    <link manager="Big.Boss"></link>
+  </person>
+
+  <person id="five.worker" contr="false">
+    <name><family>Worker</family> <given>Five</given></name>
+    <email>five@foo.com</email>
+    <link manager="Big.Boss"></link>
+  </person>
+
+</personnel>
+Usage:
+    SAX2Count [options] <XML file | List file>
+
+This program invokes the SAX2XMLReader, and then prints the
+number of elements, attributes, spaces and characters found
+in each XML file, using SAX2 API.
+
+Options:
+    -l          Indicate the input file is a List File that has a list of xml files.
+                Default to off (Input file is an XML file).
+    -v=xxx      Validation scheme [always | never | auto*].
+    -f          Enable full schema constraint checking processing. Defaults to off.
+    -p          Enable namespace-prefixes feature. Defaults to off.
+    -n          Disable namespace processing. Defaults to on.
+                NOTE: THIS IS OPPOSITE FROM OTHER SAMPLES.
+    -s          Disable schema processing. Defaults to on.
+                NOTE: THIS IS OPPOSITE FROM OTHER SAMPLES.
+    -i          Disable identity constraint checking. Defaults to on.
+                NOTE: THIS IS OPPOSITE FROM OTHER SAMPLES.
+    -locale=ll_CC specify the locale, default: en_US.
+    -?          Show this help.
+
+  * = Default if not provided explicitly.
+
+personal.xml:{timing removed}(37 elems, 12 attrs, 0 spaces, 268 chars)
+personal.xml:{timing removed}(37 elems, 12 attrs, 134 spaces, 134 chars)
+personal-schema.xml:{timing removed}(37 elems, 29 attrs, 140 spaces, 128 chars)
+
+Usage:
+    SAX2Print [options] <XML file>
+
+This program invokes the SAX2XMLReader, and then prints the
+data returned by the various SAX2 handlers for the specified
+XML file.
+
+Options:
+    -u=xxx      Handle unrepresentable chars [fail | rep | ref*].
+    -v=xxx      Validation scheme [always | never | auto*].
+    -e          Expand Namespace Alias with URI's. Defaults to off.
+    -x=XXX      Use a particular encoding for output (LATIN1*).
+    -f          Enable full schema constraint checking processing. Defaults to off.
+    -p          Enable namespace-prefixes feature. Defaults to off.
+    -n          Disable namespace processing. Defaults to on.
+                NOTE: THIS IS OPPOSITE FROM OTHER SAMPLES.
+    -s          Disable schema processing. Defaults to on.
+                NOTE: THIS IS OPPOSITE FROM OTHER SAMPLES.
+    -sa         Print the attributes in alfabetic order. Defaults to off.
+    -?          Show this help.
+
+  * = Default if not provided explicitly.
+
+The parser has intrinsic support for the following encodings:
+    UTF-8, USASCII, ISO8859-1, UTF-16[BL]E, UCS-4[BL]E,
+    WINDOWS-1252, IBM1140, IBM037, IBM1047.
+
+<?xml version="1.0" encoding="LATIN1"?>
+<personnel>
+
+  <person id="Big.Boss">
+    <name><family>Boss</family> <given>Big</given></name>
+    <email>chief@foo.com</email>
+    <link subordinates="one.worker two.worker three.worker four.worker five.worker"></link>
+  </person>
+
+  <person id="one.worker">
+    <name><family>Worker</family> <given>One</given></name>
+    <email>one@foo.com</email>
+    <link manager="Big.Boss"></link>
+  </person>
+
+  <person id="two.worker">
+    <name><family>Worker</family> <given>Two</given></name>
+    <email>two@foo.com</email>
+    <link manager="Big.Boss"></link>
+  </person>
+
+  <person id="three.worker">
+    <name><family>Worker</family> <given>Three</given></name>
+    <email>three@foo.com</email>
+    <link manager="Big.Boss"></link>
+  </person>
+
+  <person id="four.worker">
+    <name><family>Worker</family> <given>Four</given></name>
+    <email>four@foo.com</email>
+    <link manager="Big.Boss"></link>
+  </person>
+
+  <person id="five.worker">
+    <name><family>Worker</family> <given>Five</given></name>
+    <email>five@foo.com</email>
+    <link manager="Big.Boss"></link>
+  </person>
+
+</personnel><?xml version="1.0" encoding="LATIN1"?>
+<personnel>
+
+  <person id="Big.Boss">
+    <name><family>Boss</family> <given>Big</given></name>
+    <email>chief@foo.com</email>
+    <link subordinates="one.worker two.worker three.worker four.worker five.worker"></link>
+  </person>
+
+  <person id="one.worker">
+    <name><family>Worker</family> <given>One</given></name>
+    <email>one@foo.com</email>
+    <link manager="Big.Boss"></link>
+  </person>
+
+  <person id="two.worker">
+    <name><family>Worker</family> <given>Two</given></name>
+    <email>two@foo.com</email>
+    <link manager="Big.Boss"></link>
+  </person>
+
+  <person id="three.worker">
+    <name><family>Worker</family> <given>Three</given></name>
+    <email>three@foo.com</email>
+    <link manager="Big.Boss"></link>
+  </person>
+
+  <person id="four.worker">
+    <name><family>Worker</family> <given>Four</given></name>
+    <email>four@foo.com</email>
+    <link manager="Big.Boss"></link>
+  </person>
+
+  <person id="five.worker">
+    <name><family>Worker</family> <given>Five</given></name>
+    <email>five@foo.com</email>
+    <link manager="Big.Boss"></link>
+  </person>
+
+</personnel><?xml version="1.0" encoding="LATIN1"?>
+<?proc-inst-1 'foo' ?><personnel xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="personal.xsd">
+
+  <person id="Big.Boss" contr="false">
+    <name xml:base="foo/bar"><family xml:base="bar/bar">Boss</family> <given xml:base="car/bar">Big</given><?proc-inst-2 'foobar' ?></name>
+    <email>chief@foo.com</email>
+    <link subordinates="one.worker two.worker three.worker four.worker five.worker"></link>
+  </person>
+
+  <person id="one.worker" xml:base="/auto/bar" contr="false">
+    <name xml:base="/car/foo/"><family xml:base="bar/bar">Worker</family> <given>One</given></name>
+    <email>one@foo.com</email>
+    <link manager="Big.Boss"></link>
+  </person>
+
+  <person id="two.worker" xml:base="http://www.example.com/car/car" contr="false">
+    <name xml:base="/bar/foo/"><family xml:base="foo/bar">Worker</family> <given>Two</given></name>
+    <email>two@foo.com</email>
+    <link manager="Big.Boss"></link>
+  </person>
+
+  <person id="three.worker" contr="false">
+    <name><family>Worker</family> <given>Three</given></name>
+    <email>three@foo.com</email>
+    <link manager="Big.Boss"></link>
+  </person>
+
+  <person id="four.worker" contr="false">
+    <name><family>Worker</family> <given>Four</given></name>
+    <email>four@foo.com</email>
+    <link manager="Big.Boss"></link>
+  </person>
+
+  <person id="five.worker" contr="false">
+    <name><family>Worker</family> <given>Five</given></name>
+    <email>five@foo.com</email>
+    <link manager="Big.Boss"></link>
+  </person>
+
+</personnel><?xml version="1.0" encoding="LATIN1"?>
+<xs:schema>
+
+ <xs:import namespace="http://www.w3.org/XML/1998/namespace">
+   <xs:annotation>
+     <xs:documentation>
+        The schemaLocation of the relevant file is
+        "http://www.w3.org/2001/xml.xsd"; however,
+        we don't want to assume people are always
+        connected to the 'net when playing with this file.
+     </xs:documentation>
+   </xs:annotation>
+ </xs:import>
+
+ <xs:element name="personnel">
+  <xs:complexType>
+   <xs:sequence>
+     <xs:element ref="person" minOccurs="1" maxOccurs="unbounded"></xs:element>
+   </xs:sequence>
+  </xs:complexType>
+
+  <xs:unique name="unique1">
+   <xs:selector xpath="person"></xs:selector>
+   <xs:field xpath="name/given"></xs:field>
+   <xs:field xpath="name/family"></xs:field>
+  </xs:unique>
+  <xs:key name="empid">
+   <xs:selector xpath="person"></xs:selector>
+   <xs:field xpath="@id"></xs:field>
+  </xs:key>
+  <xs:keyref name="keyref1" refer="empid">
+   <xs:selector xpath="person"></xs:selector> 
+   <xs:field xpath="link/@manager"></xs:field>  
+  </xs:keyref>
+
+ </xs:element>
+
+ <xs:element name="person">
+  <xs:complexType>
+   <xs:sequence>
+     <xs:element ref="name"></xs:element>
+     <xs:element ref="email" minOccurs="0" maxOccurs="unbounded"></xs:element>
+     <xs:element ref="url" minOccurs="0" maxOccurs="unbounded"></xs:element>
+     <xs:element ref="link" minOccurs="0" maxOccurs="1"></xs:element>
+   </xs:sequence>
+   <xs:attribute name="id" type="xs:ID" use="required"></xs:attribute>
+   <xs:attribute name="note" type="xs:string"></xs:attribute>
+   <xs:attribute name="contr" default="false">
+    <xs:simpleType>
+     <xs:restriction base="xs:string">
+       <xs:enumeration value="true"></xs:enumeration>
+       <xs:enumeration value="false"></xs:enumeration>
+     </xs:restriction>
+    </xs:simpleType>
+   </xs:attribute>
+   <xs:attribute name="salary" type="xs:integer"></xs:attribute>
+   <xs:anyAttribute namespace="http://www.w3.org/XML/1998/namespace" processContents="skip"></xs:anyAttribute>
+  </xs:complexType>
+ </xs:element>
+
+ <xs:element name="name">
+  <xs:complexType>
+   <xs:all>
+    <xs:element ref="family"></xs:element>
+    <xs:element ref="given"></xs:element>
+   </xs:all>
+   <xs:anyAttribute namespace="http://www.w3.org/XML/1998/namespace" processContents="skip"></xs:anyAttribute>
+  </xs:complexType>
+ </xs:element>
+
+ <xs:element name="family">
+   <xs:complexType>
+     <xs:simpleContent>
+       <xs:extension base="xs:string">
+          <xs:anyAttribute namespace="http://www.w3.org/XML/1998/namespace" processContents="skip"></xs:anyAttribute>
+        </xs:extension>
+     </xs:simpleContent>
+   </xs:complexType>
+ </xs:element>
+
+ <xs:element name="given">
+   <xs:complexType>
+     <xs:simpleContent>
+       <xs:extension base="xs:string">
+          <xs:anyAttribute namespace="http://www.w3.org/XML/1998/namespace" processContents="skip"></xs:anyAttribute>
+        </xs:extension>
+     </xs:simpleContent>
+   </xs:complexType>
+ </xs:element>
+
+ <xs:element name="email" type="xs:string"></xs:element>
+
+ <xs:element name="url">
+  <xs:complexType>
+   <xs:attribute name="href" type="xs:string" default="http://"></xs:attribute>
+  </xs:complexType>
+ </xs:element>
+
+ <xs:element name="link">
+  <xs:complexType>
+   <xs:attribute name="manager" type="xs:IDREF"></xs:attribute>
+   <xs:attribute name="subordinates" type="xs:IDREFS"></xs:attribute>
+  </xs:complexType>
+ </xs:element>
+
+ <xs:notation name="gif" public="-//APP/Photoshop/4.0" system="photoshop.exe"></xs:notation>
+
+</xs:schema><?xml version="1.0" encoding="LATIN1"?>
+<xs:schema>
+
+ <xs:import namespace="http://www.w3.org/XML/1998/namespace">
+   <xs:annotation>
+     <xs:documentation>
+        The schemaLocation of the relevant file is
+        "http://www.w3.org/2001/xml.xsd"; however,
+        we don't want to assume people are always
+        connected to the 'net when playing with this file.
+     </xs:documentation>
+   </xs:annotation>
+ </xs:import>
+
+ <xs:element name="personnel">
+  <xs:complexType>
+   <xs:sequence>
+     <xs:element maxOccurs="unbounded" minOccurs="1" ref="person"></xs:element>
+   </xs:sequence>
+  </xs:complexType>
+
+  <xs:unique name="unique1">
+   <xs:selector xpath="person"></xs:selector>
+   <xs:field xpath="name/given"></xs:field>
+   <xs:field xpath="name/family"></xs:field>
+  </xs:unique>
+  <xs:key name="empid">
+   <xs:selector xpath="person"></xs:selector>
+   <xs:field xpath="@id"></xs:field>
+  </xs:key>
+  <xs:keyref name="keyref1" refer="empid">
+   <xs:selector xpath="person"></xs:selector> 
+   <xs:field xpath="link/@manager"></xs:field>  
+  </xs:keyref>
+
+ </xs:element>
+
+ <xs:element name="person">
+  <xs:complexType>
+   <xs:sequence>
+     <xs:element ref="name"></xs:element>
+     <xs:element maxOccurs="unbounded" minOccurs="0" ref="email"></xs:element>
+     <xs:element maxOccurs="unbounded" minOccurs="0" ref="url"></xs:element>
+     <xs:element maxOccurs="1" minOccurs="0" ref="link"></xs:element>
+   </xs:sequence>
+   <xs:attribute name="id" type="xs:ID" use="required"></xs:attribute>
+   <xs:attribute name="note" type="xs:string"></xs:attribute>
+   <xs:attribute default="false" name="contr">
+    <xs:simpleType>
+     <xs:restriction base="xs:string">
+       <xs:enumeration value="true"></xs:enumeration>
+       <xs:enumeration value="false"></xs:enumeration>
+     </xs:restriction>
+    </xs:simpleType>
+   </xs:attribute>
+   <xs:attribute name="salary" type="xs:integer"></xs:attribute>
+   <xs:anyAttribute namespace="http://www.w3.org/XML/1998/namespace" processContents="skip"></xs:anyAttribute>
+  </xs:complexType>
+ </xs:element>
+
+ <xs:element name="name">
+  <xs:complexType>
+   <xs:all>
+    <xs:element ref="family"></xs:element>
+    <xs:element ref="given"></xs:element>
+   </xs:all>
+   <xs:anyAttribute namespace="http://www.w3.org/XML/1998/namespace" processContents="skip"></xs:anyAttribute>
+  </xs:complexType>
+ </xs:element>
+
+ <xs:element name="family">
+   <xs:complexType>
+     <xs:simpleContent>
+       <xs:extension base="xs:string">
+          <xs:anyAttribute namespace="http://www.w3.org/XML/1998/namespace" processContents="skip"></xs:anyAttribute>
+        </xs:extension>
+     </xs:simpleContent>
+   </xs:complexType>
+ </xs:element>
+
+ <xs:element name="given">
+   <xs:complexType>
+     <xs:simpleContent>
+       <xs:extension base="xs:string">
+          <xs:anyAttribute namespace="http://www.w3.org/XML/1998/namespace" processContents="skip"></xs:anyAttribute>
+        </xs:extension>
+     </xs:simpleContent>
+   </xs:complexType>
+ </xs:element>
+
+ <xs:element name="email" type="xs:string"></xs:element>
+
+ <xs:element name="url">
+  <xs:complexType>
+   <xs:attribute default="http://" name="href" type="xs:string"></xs:attribute>
+  </xs:complexType>
+ </xs:element>
+
+ <xs:element name="link">
+  <xs:complexType>
+   <xs:attribute name="manager" type="xs:IDREF"></xs:attribute>
+   <xs:attribute name="subordinates" type="xs:IDREFS"></xs:attribute>
+  </xs:complexType>
+ </xs:element>
+
+ <xs:notation name="gif" public="-//APP/Photoshop/4.0" system="photoshop.exe"></xs:notation>
+
+</xs:schema>
+Finished parsing the memory buffer containing the following XML statements:
+
+<?xml version='1.0' encoding='ascii'?>
+<!DOCTYPE company [
+<!ELEMENT company     (product,category,developedAt)>
+<!ELEMENT product     (#PCDATA)>
+<!ELEMENT category    (#PCDATA)>
+<!ATTLIST category idea CDATA #IMPLIED>
+<!ELEMENT developedAt (#PCDATA)>
+]>
+
+<company>
+    <product>XML4C</product>
+    <category idea='great'>XML Parsing Tools</category>
+    <developedAt>
+      IBM Center for Java Technology, Silicon Valley, Cupertino, CA
+    </developedAt>
+</company>
+
+
+Parsing took{timing removed}(4 elements, 1 attributes, 16 spaces, 95 characters).
+
+
+Finished parsing the memory buffer containing the following XML statements:
+
+<?xml version='1.0' encoding='ascii'?>
+<!DOCTYPE company [
+<!ELEMENT company     (product,category,developedAt)>
+<!ELEMENT product     (#PCDATA)>
+<!ELEMENT category    (#PCDATA)>
+<!ATTLIST category idea CDATA #IMPLIED>
+<!ELEMENT developedAt (#PCDATA)>
+]>
+
+<company>
+    <product>XML4C</product>
+    <category idea='great'>XML Parsing Tools</category>
+    <developedAt>
+      IBM Center for Java Technology, Silicon Valley, Cupertino, CA
+    </developedAt>
+</company>
+
+
+Parsing took{timing removed}(4 elements, 1 attributes, 0 spaces, 111 characters).
+
+
+Usage:
+    Redirect <XML file>
+
+This program installs an entity resolver, traps the call to
+the external DTD file and redirects it to another application
+specific file which contains the actual dtd.
+
+The program then counts and reports the number of elements and
+attributes in the given XML file.
+
+personal.xml:{timing removed}(37 elems, 12 attrs, 0 spaces, 268 chars)
+
+Usage:
+    DOMCount [options] <XML file | List file>
+
+This program invokes the DOMBuilder, builds the DOM tree,
+and then prints the number of elements found in each XML file.
+
+Options:
+    -l          Indicate the input file is a List File that has a list of xml files.
+                Default to off (Input file is an XML file).
+    -v=xxx      Validation scheme [always | never | auto*].
+    -n          Enable namespace processing. Defaults to off.
+    -s          Enable schema processing. Defaults to off.
+    -f          Enable full schema constraint checking. Defaults to off.
+    -locale=ll_CC specify the locale, default: en_US.
+    -p          Print out names of elements and attributes encountered.
+    -?          Show this help.
+
+  * = Default if not provided explicitly.
+
+personal.xml:{timing removed}(37 elems).
+personal.xml:{timing removed}(37 elems).
+personal-schema.xml:{timing removed}(37 elems).
+
+Usage:
+    DOMPrint [options] <XML file>
+
+This program invokes the DOM parser, and builds the DOM tree.
+It then asks the DOMWriter to serialize the DOM tree.
+Options:
+    -e          create entity reference nodes. Default is no expansion.
+    -v=xxx      Validation scheme [always | never | auto*].
+    -n          Enable namespace processing. Default is off.
+    -s          Enable schema processing. Default is off.
+    -f          Enable full schema constraint checking. Defaults is off.
+    -wenc=XXX   Use a particular encoding for output. Default is
+                the same encoding as the input XML file. UTF-8 if
+                input XML file has not XML declaration.
+    -wfile=xxx  Write to a file instead of stdout.
+    -wscs=xxx   Enable/Disable split-cdata-sections.      Default on
+    -wddc=xxx   Enable/Disable discard-default-content.   Default on
+    -wflt=xxx   Enable/Disable filtering.                 Default off
+    -wfpp=xxx   Enable/Disable format-pretty-print.       Default off
+    -wbom=xxx   Enable/Disable write Byte-Order-Mark      Default off
+    -?          Show this help.
+
+  * = Default if not provided explicitly.
+
+The parser has intrinsic support for the following encodings:
+    UTF-8, USASCII, ISO8859-1, UTF-16[BL]E, UCS-4[BL]E,
+    WINDOWS-1252, IBM1140, IBM037, IBM1047.
+
+<?xml version="1.0" encoding="iso-8859-1" standalone="no" ?>
+<!DOCTYPE personnel SYSTEM "personal.dtd">
+<!-- @version: -->
+<personnel>
+
+  <person id="Big.Boss">
+    <name>
+      <family>Boss</family> 
+      <given>Big</given>
+    </name>
+    <email>chief@foo.com</email>
+    <link subordinates="one.worker two.worker three.worker four.worker five.worker"/>
+  </person>
+
+  <person id="one.worker">
+    <name>
+      <family>Worker</family> 
+      <given>One</given>
+    </name>
+    <email>one@foo.com</email>
+    <link manager="Big.Boss"/>
+  </person>
+
+  <person id="two.worker">
+    <name>
+      <family>Worker</family> 
+      <given>Two</given>
+    </name>
+    <email>two@foo.com</email>
+    <link manager="Big.Boss"/>
+  </person>
+
+  <person id="three.worker">
+    <name>
+      <family>Worker</family> 
+      <given>Three</given>
+    </name>
+    <email>three@foo.com</email>
+    <link manager="Big.Boss"/>
+  </person>
+
+  <person id="four.worker">
+    <name>
+      <family>Worker</family> 
+      <given>Four</given>
+    </name>
+    <email>four@foo.com</email>
+    <link manager="Big.Boss"/>
+  </person>
+
+  <person id="five.worker">
+    <name>
+      <family>Worker</family> 
+      <given>Five</given>
+    </name>
+    <email>five@foo.com</email>
+    <link manager="Big.Boss"/>
+  </person>
+
+
+</personnel>
+<?xml version="1.0" encoding="iso-8859-1" standalone="no" ?>
+<!DOCTYPE personnel SYSTEM "personal.dtd">
+<!-- @version: -->
+<personnel>
+
+  <person id="Big.Boss">
+    <name>
+      <family>Boss</family> 
+      <given>Big</given>
+    </name>
+    <email>chief@foo.com</email>
+    <link subordinates="one.worker two.worker three.worker four.worker five.worker"/>
+  </person>
+
+  <person id="one.worker">
+    <name>
+      <family>Worker</family> 
+      <given>One</given>
+    </name>
+    <email>one@foo.com</email>
+    <link manager="Big.Boss"/>
+  </person>
+
+  <person id="two.worker">
+    <name>
+      <family>Worker</family> 
+      <given>Two</given>
+    </name>
+    <email>two@foo.com</email>
+    <link manager="Big.Boss"/>
+  </person>
+
+  <person id="three.worker">
+    <name>
+      <family>Worker</family> 
+      <given>Three</given>
+    </name>
+    <email>three@foo.com</email>
+    <link manager="Big.Boss"/>
+  </person>
+
+  <person id="four.worker">
+    <name>
+      <family>Worker</family> 
+      <given>Four</given>
+    </name>
+    <email>four@foo.com</email>
+    <link manager="Big.Boss"/>
+  </person>
+
+  <person id="five.worker">
+    <name>
+      <family>Worker</family> 
+      <given>Five</given>
+    </name>
+    <email>five@foo.com</email>
+    <link manager="Big.Boss"/>
+  </person>
+
+
+</personnel>
+<?xml version="1.0" encoding="iso-8859-1" standalone="no" ?>
+<!DOCTYPE personnel SYSTEM "personal.dtd">
+<!-- @version: -->
+<personnel>
+
+  <person id="Big.Boss">
+    <name>
+      <family>Boss</family> 
+      <given>Big</given>
+    </name>
+    <email>chief@foo.com</email>
+    <link subordinates="one.worker two.worker three.worker four.worker five.worker"/>
+  </person>
+
+  <person id="one.worker">
+    <name>
+      <family>Worker</family> 
+      <given>One</given>
+    </name>
+    <email>one@foo.com</email>
+    <link manager="Big.Boss"/>
+  </person>
+
+  <person id="two.worker">
+    <name>
+      <family>Worker</family> 
+      <given>Two</given>
+    </name>
+    <email>two@foo.com</email>
+    <link manager="Big.Boss"/>
+  </person>
+
+  <person id="three.worker">
+    <name>
+      <family>Worker</family> 
+      <given>Three</given>
+    </name>
+    <email>three@foo.com</email>
+    <link manager="Big.Boss"/>
+  </person>
+
+  <person id="four.worker">
+    <name>
+      <family>Worker</family> 
+      <given>Four</given>
+    </name>
+    <email>four@foo.com</email>
+    <link manager="Big.Boss"/>
+  </person>
+
+  <person id="five.worker">
+    <name>
+      <family>Worker</family> 
+      <given>Five</given>
+    </name>
+    <email>five@foo.com</email>
+    <link manager="Big.Boss"/>
+  </person>
+
+
+</personnel>
+<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
+<?proc-inst-1 'foo' ?>
+<personnel xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="personal.xsd">
+
+  <person contr="false" id="Big.Boss">
+    <name xml:base="foo/bar">
+      <family xml:base="bar/bar">Boss</family> 
+      <given xml:base="car/bar">Big</given>
+      <?proc-inst-2 'foobar' ?>
+    </name>
+    <email>chief@foo.com</email>
+    <link subordinates="one.worker two.worker three.worker four.worker five.worker"/>
+  </person>
+
+  <person contr="false" id="one.worker" xml:base="/auto/bar">
+    <name xml:base="/car/foo/">
+      <family xml:base="bar/bar">Worker</family> 
+      <given>One</given>
+    </name>
+    <email>one@foo.com</email>
+    <link manager="Big.Boss"/>
+  </person>
+
+  <person contr="false" id="two.worker" xml:base="http://www.example.com/car/car">
+    <name xml:base="/bar/foo/">
+      <family xml:base="foo/bar">Worker</family> 
+      <given>Two</given>
+    </name>
+    <email>two@foo.com</email>
+    <link manager="Big.Boss"/>
+  </person>
+
+  <person contr="false" id="three.worker">
+    <name>
+      <family>Worker</family> 
+      <given>Three</given>
+    </name>
+    <email>three@foo.com</email>
+    <link manager="Big.Boss"/>
+  </person>
+
+  <person contr="false" id="four.worker">
+    <name>
+      <family>Worker</family> 
+      <given>Four</given>
+    </name>
+    <email>four@foo.com</email>
+    <link manager="Big.Boss"/>
+  </person>
+
+  <person contr="false" id="five.worker">
+    <name>
+      <family>Worker</family> 
+      <given>Five</given>
+    </name>
+    <email>five@foo.com</email>
+    <link manager="Big.Boss"/>
+  </person>
+
+
+</personnel>
+stdin:{timing removed}(37 elems, 12 attrs, 134 spaces, 134 chars)
+stdin:{timing removed}(37 elems, 12 attrs, 0 spaces, 268 chars)
+stdin:{timing removed}(37 elems, 29 attrs, 140 spaces, 128 chars)
+
+Usage:
+    PParse [options] <XML file>
+
+This program demonstrates the progressive parse capabilities of
+the parser system. It allows you to do a scanFirst() call followed by
+a loop which calls scanNext(). You can drop out when you've found what
+ever it is you want. In our little test, our event handler looks for
+16 new elements then sets a flag to indicate its found what it wants.
+At that point, our progressive parse loop exits.
+
+Options:
+      -v=xxx        - Validation scheme [always | never | auto*].
+      -n            - Enable namespace processing [default is off].
+      -s            - Enable schema processing [default is off].
+      -f            - Enable full schema constraint checking [default is off].
+      -?            - Show this help.
+
+  * = Default if not provided explicitly.
+
+personal.xml:{timing removed}(37 elems, 12 attrs, 134 spaces, 134 chars)
+personal-schema.xml:{timing removed}(37 elems, 29 attrs, 140 spaces, 128 chars)
+
+Usage:
+    EnumVal <XML file>
+
+This program parses the specified XML file, then shows how to
+enumerate the contents of the DTD Grammar. Essentially,
+shows how one can access the DTD information stored in internal
+data structures.
+
+
+ELEMENTS:
+----------------------------
+  Name: personnel
+  Content Model: (person)+
+
+  Name: person
+  Content Model: (name,email*,url*,link?)
+  Attributes:
+    Name:id, Type: ID
+
+  Name: name
+  Content Model: (#PCDATA|family|given)*
+
+  Name: email
+  Content Model: (#PCDATA)
+
+  Name: url
+  Content Model: EMPTY
+  Attributes:
+    Name:href, Type: CDATA
+
+  Name: link
+  Content Model: EMPTY
+  Attributes:
+    Name:manager, Type: IDREF(S)
+    Name:subordinates, Type: IDREF(S)
+
+  Name: family
+  Content Model: (#PCDATA)
+
+  Name: given
+  Content Model: (#PCDATA)
+
+
+Usage:
+    SEnumVal <XML file>
+
+This program parses a file, then shows how to enumerate the
+contents of the Schema Grammar. Essentially, shows how one can
+access the Schema information stored in internal data structures.
+
+Name:			personnel
+Model Type:		Children
+Create Reason:	Declared
+ContentType:	
+Content Model:	(person,)
+ComplexType:
+	TypeName:	,__AnonC0
+	ContentType:	
+--------------------------------------------
+Name:			person
+Model Type:		Children
+Create Reason:	Declared
+ContentType:	
+Content Model:	((name,email,url),link)
+ComplexType:
+	TypeName:	,__AnonC1
+	ContentType:	
+Attributes:
+	Name:			id
+	Type:			ID
+	Default Type:	#REQUIRED
+	Base Datatype:		ID
+
+	Name:			note
+	Type:			CDATA
+	Default Type:	#IMPLIED
+	Base Datatype:		string
+
+	Name:			contr
+	Type:			CDATA
+	Default Type:	#DEFAULT
+	Value:			false
+	Base Datatype:		string
+Enumeration:		
+	true
+	false
+
+	Name:			salary
+	Type:			CDATA
+	Default Type:	#IMPLIED
+	Base Datatype:		Decimal
+Facets:		
+	fractionDigits=0
+	pattern=[+\-]?[0-9]+
+
+--------------------------------------------
+Name:			name
+Model Type:		Children
+Create Reason:	Declared
+ContentType:	All
+Content Model:	All(family,given)
+ComplexType:
+	TypeName:	,__AnonC2
+	ContentType:	All
+--------------------------------------------
+Name:			family
+Model Type:		Simple
+Create Reason:	Declared
+ComplexType:
+	TypeName:	,__AnonC3
+Base Datatype:		string
+--------------------------------------------
+Name:			given
+Model Type:		Simple
+Create Reason:	Declared
+ComplexType:
+	TypeName:	,__AnonC4
+Base Datatype:		string
+--------------------------------------------
+Name:			email
+Model Type:		Simple
+Create Reason:	Declared
+Base Datatype:		string
+--------------------------------------------
+Name:			url
+Model Type:		Empty
+Create Reason:	Declared
+Content Model:	EMPTY
+ComplexType:
+	TypeName:	,__AnonC5
+Attributes:
+	Name:			href
+	Type:			CDATA
+	Default Type:	#DEFAULT
+	Value:			http://
+	Base Datatype:		string
+
+--------------------------------------------
+Name:			link
+Model Type:		Empty
+Create Reason:	Declared
+Content Model:	EMPTY
+ComplexType:
+	TypeName:	,__AnonC6
+Attributes:
+	Name:			manager
+	Type:			IDREF
+	Default Type:	#IMPLIED
+	Base Datatype:		IDREF
+
+	Name:			subordinates
+	Type:			IDREFS
+	Default Type:	#IMPLIED
+	Base Datatype:		List
+Facets:		
+	minLength=1
+
+--------------------------------------------
+The tree just created contains: 4 elements.
+DOMMemTest
+Test Run Successfully
+DOMTest
+Test Run Successfully
+RangeTest
+Test Run Successfully
+DOMTraversalTest
+Test Run Successfully
+
+Usage:
+    DeprecatedDOMCount [options] <XML file | List file>
+
+This program invokes the DOM parser, builds the DOM tree,
+and then prints the number of elements found in each XML file.
+
+Options:
+    -l          Indicate the input file is a List File that has a list of xml files.
+                Default to off (Input file is an XML file).
+    -v=xxx      Validation scheme [always | never | auto*].
+    -n          Enable namespace processing. Defaults to off.
+    -s          Enable schema processing. Defaults to off.
+    -f          Enable full schema constraint checking. Defaults to off.
+    -?          Show this help.
+
+  * = Default if not provided explicitly.
+
+personal.xml:{timing removed}(37 elems).
+personal.xml:{timing removed}(37 elems).
+personal-schema.xml:{timing removed}(37 elems).
+
+Usage:
+    XSerializerTest [options] <XML file | List file>
+
+This program invokes the SAX2XMLReader, and then prints the
+number of elements, attributes, spaces and characters found
+in each XML file, using SAX2 API.
+
+Options:
+    -l          Indicate the input file is a List File that has a list of xml files.
+                Default to off (Input file is an XML file).
+    -v=xxx      Validation scheme [always | never | auto*].
+    -f          Enable full schema constraint checking processing. Defaults to off.
+    -p          Enable namespace-prefixes feature. Defaults to off.
+    -n          Disable namespace processing. Defaults to on.
+                NOTE: THIS IS OPPOSITE FROM OTHER SAMPLES.
+    -s          Disable schema processing. Defaults to on.
+                NOTE: THIS IS OPPOSITE FROM OTHER SAMPLES.
+    -locale=ll_CC specify the locale, default: en_US.
+    -?          Show this help.
+
+  * = Default if not provided explicitly.
+
+personal.xml:{timing removed}(37 elems, 12 attrs, 0 spaces, 268 chars)
+personal.xml:{timing removed}(37 elems, 12 attrs, 134 spaces, 134 chars)
+personal-schema.xml:{timing removed}(37 elems, 28 attrs, 0 spaces, 268 chars)
+personal-schema.xml:{timing removed}(37 elems, 28 attrs, 140 spaces, 128 chars)
+personal-schema.xml:{timing removed}(37 elems, 28 attrs, 140 spaces, 128 chars)
+
+XSValueTest Pass
+
+Usage:
+    InitTermTest [options] <XML file>
+
+This program tests the XMLPlatformUtils::Initialize()/Terminate()
+pair by calling it a number of times.
+Options:
+    -n          Enable namespace processing. Default is off.
+    -s          Enable schema processing. Default is off.
+    -f          Enable full schema constraint checking. Defaults to off.
+    -?          Show this help.
+
+1Test Run Successfully
+2Test Run Successfully
+3Test Run Successfully
+No input XML file specified on command line.
+usage:  ThreadTest [-v] [-threads nnn] [-time nnn] [-quiet] [-verbose] xmlfile...
+     -v=xxx         Validation scheme [always | never | auto].  Default is AUTO.
+     -n             Enable namespace processing. Defaults to off.
+     -s             Enable schema processing. Defaults to off.
+     -f             Enable full schema constraint checking. Defaults to off.
+     -parser=xxx    Parser Type [dom | sax | sax2].  Default is SAX (SAX1).
+     -p             Enable namespace prefixes. Defaults to off.
+                    (Only used with -parser=sax2, ignored otherwise.)
+     -quiet         Suppress periodic status display.
+     -verbose       Display extra messages.
+     -reuse         Retain and reuse parser.  Default creates new for each parse.
+     -threads nnn   Number of threads.  Default is 2.
+     -time nnn      Total time to run, in seconds.  Default is forever.
+     -parses nnn    Run for nnn parses instead of time.  Default is to use time
+     -dump          Dump DOM tree on error.
+     -mem           Read files into memory once only, and parse them from there.
+     -gc            Enable grammar caching (i.e. grammar cached and used in subsequent parses). Defaults to off.
+     -init          Perform an initial parse of the file(s) before starting up the individual threads.
+
+1Test Run Successfully
+2Test Run Successfully
+3Test Run Successfully
+4Test Run Successfully
+5Test Run Successfully
+6Test Run Successfully
+7Test Run Successfully
+8Test Run Successfully
+9Test Run Successfully
+10Test Run Successfully
+11Test Run Successfully
+12Test Run Successfully
+13Test Run Successfully
+14Test Run Successfully
+15Test Run Successfully
+
+Usage:
+    MemHandlerTest [options] <XML file | List file>
+
+This program invokes the XercesDOMParser, DOMBuilder, SAXParser ,
+and the SAX2XMLReader, and ensures that MemoryManagers set on these
+domBuilders are called to delete just as many bytes as they allocate.
+This is done for each XML file, and each file is processed
+as many times as indicated.
+Options:
+    -l          Indicate the input file is a List File that has a list of xml files.
+                Default to off (Input file is an XML file).
+    -v=xxx      Validation scheme [always | never | auto*].
+    -n          Enable namespace processing. Defaults to off.
+    -s          Enable schema processing. Defaults to off.
+    -f          Enable full schema constraint checking. Defaults to off.
+    -r=n        Run file through domBuilders n times.
+    -?          Show this help.
+
+  * = Default if not provided explicitly.
+
+At destruction, domBuilderMemMonitor has 0 bytes.
+At destruction, sax2MemMonitor has 0 bytes.
+At destruction, depDOMMemMonitor has 0 bytes.
+At destruction, sax1MemMonitor has 0 bytes.
+At destruction, staticMemMonitor has 0 bytes.
+At destruction, domBuilderMemMonitor has 0 bytes.
+At destruction, sax2MemMonitor has 0 bytes.
+At destruction, depDOMMemMonitor has 0 bytes.
+At destruction, sax1MemMonitor has 0 bytes.
+At destruction, staticMemMonitor has 0 bytes.
+Test Run Successfully
Index: /NonGTP/Xerces/xerces-c_2_8_0/credits.txt
===================================================================
--- /NonGTP/Xerces/xerces-c_2_8_0/credits.txt	(revision 2674)
+++ /NonGTP/Xerces/xerces-c_2_8_0/credits.txt	(revision 2674)
@@ -0,0 +1,150 @@
+The following people (in alphabetical order) have contributed to the
+development and ports of the Xerces-C++ and XML4C source code, which
+was submitted to the Apache Software Foundation.
+
+
+Nadav Aharoni
+Curt Arnold
+Edward Avis
+Anupam Bagchi
+Torbjörn Bäckström
+Abe Backus
+Frank Balluffi
+Matthew Baker
+Devin Barnhart
+James Berry
+David Bertoni
+John Bellardo
+Arundhati Bhowmick
+Joanne Bogart
+Michael Boos
+Edward Bortner
+Sean Bright
+Phil Brown
+Robert Buck
+Scott Cantor
+David Cargill
+Chris Cates
+Gilbert Chan
+Sumit Chawla
+Nick Chiang
+Chih Hsiang Chou
+Radovan Chytracek
+Hiram Clawson
+John Clayton
+Todd Collins
+Nathan Codding
+Michael Crawford
+Murray Cumming
+Zeid Derhally
+James Devries
+Ailian Ding
+Steve Dulin
+David Earlam
+Helmut Eiken
+Mark Everline
+Andrew Fang
+Simon Fell
+Paul Ferguson
+Greg Franks
+Pierpaolo Fumagalli
+Syam Gadde
+Guido Gagliardi
+Gary Gale
+Michael Glavassevich
+Natalie Gorden
+Max Gotlib
+Petr Gotthard
+Neil Graham
+Matthew Hall
+Jay Hansen
+Susan Hardenbrook
+Jeff Harrell
+Andrew Hefford
+Adam Heinz
+Andy Heninger
+John Hibbert
+William L. Hopper
+Michael Huedepohl
+Anders Hybertz
+Rahul Jain
+Tom Jordahl
+Christopher Just
+Martin Kalen
+Joe Kesselman
+John Kim
+Artur Klauser
+Bob Kline
+Richard Ko
+Boris Kolpackov
+Paul Kramer
+Volker Krause
+Berin Lautenbach
+Arnaud LeHors
+Andy Levine
+Jeff Lewis
+James Littlejohn
+Ray Logel
+Pedro Lopes
+Matt Lovett
+Sean MacRoibeaird
+Alberto Massari
+Don Mastrovito
+David McCreedy
+Charles McLouth
+Shin'ya Morino
+Urs Muff
+Jordan Naftolin
+Tinny Ng
+David Nickerson
+Anton Nikolaevsky
+Khaled Noaman
+Michael Ottati
+Anthony O'Dowd
+Mike Pawlowski
+Kevin Philips
+Mike Pogue
+Joe Polastre
+John Ponzo
+Vitaly Prapirny
+Shengkai Qu
+Gareth Reakes
+Jim Reitz
+Caroline Rioux
+Dean Roddey
+John Roper
+Dan Rosen
+Steven Rosenthal
+Erik Rydgren
+Markus Scherer
+Bill Schindler
+Erik Schroeder
+Christian Schuhegger
+Tobias Schuette
+John Smirl
+Andrei Smirnov
+John Snelson
+Gereon Steffens
+Jason Stewart
+Rick J. Stevens
+Roman Sulzhyk
+Linda M. Swan
+Vasily Tchekalkin
+Pieter Van-Dyck
+Curtis Walker
+John Warrier
+Tom Watson
+Mark Weaver
+Roger Webster
+Robert Weir
+Axel Weiss
+Carolyn Weiss
+Christian Will
+Kari Whitcomb
+Dietrich Wolf
+Kirk Wylie
+Peter A. Volchek
+Grace Yan
+Hiramatsu Yoshifumi
+PeiYong Zhang
+Henry Zongaro
