summaryrefslogtreecommitdiffstats
path: root/libxml2/os400
diff options
context:
space:
mode:
authorWilliam Joye <wjoye@cfa.harvard.edu>2017-05-03 15:29:42 (GMT)
committerWilliam Joye <wjoye@cfa.harvard.edu>2017-05-03 15:29:42 (GMT)
commit937cfaf1a06a4a9d0c8ba119d7ce820878ff9058 (patch)
treef7b0b1bcce9ae963a0a069eafa552350eb4ee391 /libxml2/os400
parent4b8453f0303492a1de2dcf854555f6429fac550e (diff)
downloadblt-937cfaf1a06a4a9d0c8ba119d7ce820878ff9058.zip
blt-937cfaf1a06a4a9d0c8ba119d7ce820878ff9058.tar.gz
blt-937cfaf1a06a4a9d0c8ba119d7ce820878ff9058.tar.bz2
inital commit
Diffstat (limited to 'libxml2/os400')
-rw-r--r--libxml2/os400/README400226
-rw-r--r--libxml2/os400/dlfcn/dlfcn.c1213
-rw-r--r--libxml2/os400/dlfcn/dlfcn.h32
-rw-r--r--libxml2/os400/iconv/README.iconv47
-rw-r--r--libxml2/os400/iconv/bldcsndfa/bldcsndfa.c1953
-rw-r--r--libxml2/os400/iconv/bldcsndfa/ccsid_mibenum.dtd15
-rw-r--r--libxml2/os400/iconv/bldcsndfa/ccsid_mibenum.xml270
-rw-r--r--libxml2/os400/iconv/bldcsndfa/character-sets.xhtml3077
-rw-r--r--libxml2/os400/iconv/ianatables.c4609
-rw-r--r--libxml2/os400/iconv/iconv.c154
-rw-r--r--libxml2/os400/iconv/iconv.h40
-rw-r--r--libxml2/os400/initscript.sh315
-rw-r--r--libxml2/os400/libxmlmain.c102
-rw-r--r--libxml2/os400/libxmlrpg/DOCBparser.rpgle120
-rw-r--r--libxml2/os400/libxmlrpg/HTMLparser.rpgle419
-rw-r--r--libxml2/os400/libxmlrpg/HTMLtree.rpgle176
-rw-r--r--libxml2/os400/libxmlrpg/SAX.rpgle213
-rw-r--r--libxml2/os400/libxmlrpg/SAX2.rpgle256
-rw-r--r--libxml2/os400/libxmlrpg/c14n.rpgle125
-rw-r--r--libxml2/os400/libxmlrpg/catalog.rpgle248
-rw-r--r--libxml2/os400/libxmlrpg/chvalid.rpgle107
-rw-r--r--libxml2/os400/libxmlrpg/debugXML.rpgle254
-rw-r--r--libxml2/os400/libxmlrpg/dict.rpgle85
-rw-r--r--libxml2/os400/libxmlrpg/encoding.rpgle284
-rw-r--r--libxml2/os400/libxmlrpg/entities.rpgle176
-rw-r--r--libxml2/os400/libxmlrpg/globals.rpgle581
-rw-r--r--libxml2/os400/libxmlrpg/hash.rpgle243
-rw-r--r--libxml2/os400/libxmlrpg/list.rpgle179
-rw-r--r--libxml2/os400/libxmlrpg/nanoftp.rpgle172
-rw-r--r--libxml2/os400/libxmlrpg/nanohttp.rpgle110
-rw-r--r--libxml2/os400/libxmlrpg/parser.rpgle1436
-rw-r--r--libxml2/os400/libxmlrpg/parserInternals.rpgle598
-rw-r--r--libxml2/os400/libxmlrpg/pattern.rpgle130
-rw-r--r--libxml2/os400/libxmlrpg/relaxng.rpgle310
-rw-r--r--libxml2/os400/libxmlrpg/schemasInternals.rpgle1142
-rw-r--r--libxml2/os400/libxmlrpg/schematron.rpgle204
-rw-r--r--libxml2/os400/libxmlrpg/threads.rpgle73
-rw-r--r--libxml2/os400/libxmlrpg/transcode.rpgle71
-rw-r--r--libxml2/os400/libxmlrpg/tree.rpgle1681
-rw-r--r--libxml2/os400/libxmlrpg/uri.rpgle103
-rw-r--r--libxml2/os400/libxmlrpg/valid.rpgle605
-rw-r--r--libxml2/os400/libxmlrpg/xinclude.rpgle156
-rw-r--r--libxml2/os400/libxmlrpg/xlink.rpgle169
-rw-r--r--libxml2/os400/libxmlrpg/xmlIO.rpgle464
-rw-r--r--libxml2/os400/libxmlrpg/xmlTypesC.rpgle26
-rw-r--r--libxml2/os400/libxmlrpg/xmlautomata.rpgle183
-rw-r--r--libxml2/os400/libxmlrpg/xmlerror.rpgle1686
-rw-r--r--libxml2/os400/libxmlrpg/xmlexports.rpgle15
-rw-r--r--libxml2/os400/libxmlrpg/xmlmemory.rpgle247
-rw-r--r--libxml2/os400/libxmlrpg/xmlmodule.rpgle57
-rw-r--r--libxml2/os400/libxmlrpg/xmlreader.rpgle668
-rw-r--r--libxml2/os400/libxmlrpg/xmlregexp.rpgle262
-rw-r--r--libxml2/os400/libxmlrpg/xmlsave.rpgle105
-rw-r--r--libxml2/os400/libxmlrpg/xmlschemas.rpgle331
-rw-r--r--libxml2/os400/libxmlrpg/xmlschemastypes.rpgle254
-rw-r--r--libxml2/os400/libxmlrpg/xmlstdarg.rpgle35
-rw-r--r--libxml2/os400/libxmlrpg/xmlstring.rpgle180
-rw-r--r--libxml2/os400/libxmlrpg/xmlunicode.rpgle836
-rw-r--r--libxml2/os400/libxmlrpg/xmlversion.rpgle.in353
-rw-r--r--libxml2/os400/libxmlrpg/xmlwriter.rpgle801
-rw-r--r--libxml2/os400/libxmlrpg/xpath.rpgle675
-rw-r--r--libxml2/os400/libxmlrpg/xpathInternals.rpgle693
-rw-r--r--libxml2/os400/libxmlrpg/xpointer.rpgle158
-rw-r--r--libxml2/os400/make-bldcsndfa.sh43
-rw-r--r--libxml2/os400/make-include.sh81
-rw-r--r--libxml2/os400/make-rpg.sh100
-rw-r--r--libxml2/os400/make-src.sh355
-rw-r--r--libxml2/os400/make.sh84
-rw-r--r--libxml2/os400/os400config.h.in353
-rw-r--r--libxml2/os400/rpgsupport.c270
-rw-r--r--libxml2/os400/rpgsupport.h157
-rw-r--r--libxml2/os400/transcode.c268
-rw-r--r--libxml2/os400/transcode.h43
-rw-r--r--libxml2/os400/wrappers.c170
-rw-r--r--libxml2/os400/wrappers.h70
-rw-r--r--libxml2/os400/xmlcatalog.cmd112
-rw-r--r--libxml2/os400/xmlcatlgcl.c288
-rw-r--r--libxml2/os400/xmllint.cmd146
-rw-r--r--libxml2/os400/xmllintcl.c216
79 files changed, 33264 insertions, 0 deletions
diff --git a/libxml2/os400/README400 b/libxml2/os400/README400
new file mode 100644
index 0000000..fff923c
--- /dev/null
+++ b/libxml2/os400/README400
@@ -0,0 +1,226 @@
+
+Implementation notes:
+
+ This is a true OS/400 implementation, not a PASE implementation (for PASE,
+use an AIX implementation).
+
+ The biggest problem with OS/400 is EBCDIC. The current libxml2 implementation
+uses UTF-8 internally. To ease encoding conversion between the calling
+applications and libxml2, supplementary "convert and latch" functions are
+provided (See below). To bind the EBCDIC OS/400 system calls and libxml2,
+an ASCII run-time environment (QADRT) has been used and wrapper functions have
+been designed.
+
+Other problems are:
+- Source code line length: to be stored in DB2 members, source files may not
+ have lines longer than 100 characters. Some header and documentation files
+ have been modified accordingly.
+- va_list dereferencing: the OS/400 implementation of va_list type is an array
+ but the compiler forbids explicit array dereferencing. Source files have
+ been updated accordingly.
+- Depending on the compilation/execution environment, it is possible that
+ stdin/stdout/stderr are not associated with a file descriptor; as a side
+ effect, open() may return a file descriptor value 0, 1 or 2 that is NOT
+ a C standard file. Thus using such a number may be inaccurate.
+- iconv_open() arguments: OS/400 uses non-standard encoding names and does not
+ support standard names. For this reason, a name wrapper has been designed.
+- dlopen() (support for xmodule): the function and its corollaries are not
+ provided by the OS/400 library. However a local implementation is provided.
+
+
+Compiling on OS/400:
+
+_ As a prerequisite, QADRT development environment must be installed.
+_ Install the libxml2 source directory in IFS.
+_ Enter shell (QSH)
+_ Change current directory to the libxml2 installation directory
+_ Change current directory to ./os400
+_ Edit file iniscript.sh. You may want to change tunable configuration
+ parameters, like debug info generation, optimisation level, listing option,
+ target library, zlib availability, etc.
+_ Copy any file in the current directory to makelog (i.e.:
+ cp initscript.sh makelog): this is intended to create the makelog file with
+ an ASCII CCSID!
+_ Enter the command "sh make.sh >makelog 2>&1'
+_ Examine the makelog file to check for compilation errors.
+
+ Leaving file initscript.sh unchanged, this will produce the following
+OS/400 objects:
+_ Library LIBXML2. All other objects will be stored in this library.
+_ Modules for all libxml2 units, with full debug info and no code optimization.
+_ Binding directory LIBXML2_A, to be used at calling program link time for
+ statically binding the modules (specify BNDSRVPGM(QADRTTS QGLDCLNT QGLDBRDR)
+ when creating a program using LIBXML2_A).
+_ Service program LIBXML2. To be used at calling program run-time
+ when this program has dynamically bound libxml2 at link time.
+_ Binding directory LIBXML2. To be used to dynamically bind libxml2 when
+ linking a calling program.
+_ Source file LIBXML. It contains all the header members needed to compile a
+ C/C++ module using libxml2.
+_ Standard and additional C/C++ libxml2 header members (possibly renamed) in
+ file LIBXML.
+_ IFS directory /libxml2 with subdirectory include/libxml containing all
+ C/C++ header files for IFS-based compilation.
+_ Source file LIBXMLRPG. It contains all the include members needed to compile a
+ ILE/RPG module/program using libxml2 (ILE/RPG binding).
+_ ILE/RPG binding include members (possibly renamed) in file LIBXMLRPG.
+_ IFS subdirectory /libxml2/include/libxmlrpg containing all ILE/RPG include
+ files for IFS-based compilation.
+
+
+Renamed header files in DB2 members:
+ DB2 member names are limited to 10 characters, thus the following C/C++
+header members are renamed as:
+ parserInternals.h --> PARSERINTE
+ schemasInternals.h --> SCHEMASINT
+ xmlautomata.h --> XMLAUTOMAT
+ xmlschemastype.h --> SCHMTYPES
+ xpathInternals.h --> XPATHINTER
+IFS header files are NOT renamed.
+ILE/RPG headers are processed likewise.
+
+
+Special programming consideration:
+
+QADRT being used, the following points must be considered:
+_ If static binding is used, service program QADRTTS must be linked too.
+_ The EBCDIC CCSID used by QADRT is 37 by default, NOT THE JOB'S CCSID. If
+ another EBCDIC CCSID is required, it must be set via a locale through a call
+ to setlocale_a (QADRT's setlocale() ASCII wrapper) with category LC_ALL or
+ LC_CTYPE, or by setting environment variable QADRT_ENV_LOCALE to the locale
+ object path before executing the program.
+_ Always use *IFSIO or *IFS64IO to compile calling programs.
+
+
+
+Supplementary (non libxml2 standard) support procedures for OS/400.
+
+ As cited above, there are some procedures to ease encoding conversion of
+libxml2 function arguments and results: the mechanism is based on
+dictionaries. The functions convert a string, latch the result in a dictionary
+to ensure its persistence and return its address. It is the caller's
+responsibility to clean the dictionary when it becomes too big or disappears.
+
+The procedures are:
+
+#include <libxml/transcode.h>
+
+const char * xmlTranscodeResult(const xmlChar * s,
+ const char * encoding,
+ xmlDictPtr * dict,
+ void (*freeproc)(const void *));
+
+const xmlChar * xmlTranscodeString(const char * s,
+ const char * encoding,
+ xmlDictPtr * dict);
+
+const xmlChar * xmlTranscodeWString(const char * s,
+ const char * encoding,
+ xmlDictPtr * dict);
+
+const xmlChar * xmlTranscodeWString(const char * s,
+ const char * encoding,
+ xmlDictPtr * dict);
+
+where:
+s is the string to translate.
+encoding is the alternate character encoding. If null, the current job's
+ encoding (CCSID) is used.
+dict is the address of the latching directory. If NULL, the procedure
+ functions as a simple non-latching encoding converter and
+ its result value should be freed by the caller.
+freeproc is a procedure to release the original string, or NULL.
+
+xmlTranscodeResult() converts from UTF-8 to the given alternate encoding.
+xmlTranscodeString() converts from the given 8-bit encoding to UTF-8 (note that
+ UTF-8 itself is considered as a 8-bit encoding).
+xmlTranscodeWString() converts from the given 16-bit encoding to UTF-8.
+xmlTranscodeHString() converts from the given 32-bit encoding to UTF-8.
+
+
+To shorten statements using these functions, shorthands are defined:
+
+xmlTR for xmlTranscodeResult
+xmlTS for xmlTranscodeString
+xmlTW for xmlTranscodeWString
+xmlTH for xmlTranscodeHstring
+
+These shorthands may be disabled by defining XML_NO_SHORT_NAMES before
+libxml/transcode.h inclusion.
+
+A directory pointer must be preset to NULL before the first call using it to
+one of the above procedure.
+
+To release a latching directory, use function
+
+void xmlZapDict(xmlDictPtr * dict);
+
+
+Example:
+
+#include <libxml/transcode.h>
+#include <libxml/tree.h>
+
+xmlDocPtr mySimpleXMLDoc(char * element, char * text)
+{
+ xmlDocPtr doc;
+ xmlNodePtr node;
+ xmlDictPtr dict = NULL;
+
+ /* element and text are encoded in the current job's encoding. */
+
+ doc = xmlNewDoc();
+ xmlNewTextChild((xmlNodePtr) doc, NULL, xmlTS(element, NULL,
+ &dict), xmlTS(text, NULL, &dict));
+ xmlZapDict(&dict);
+ return doc;
+}
+
+
+Additionally, a formatter into latched/dynamic storage is provided:
+
+const char * xmlVasprintf(xmlDictPtr * dict,
+ const char * encoding,
+ const xmlChar * fmt,
+ va_list args);
+
+
+xmllint and xmlcatalog programs:
+
+ These programs are fully implemented at the qshell level, with standard
+command line options. Links to these are installed in sub-directory bin of
+the IFS installation directory.
+ CL command interfaces to these programs are also provided with limited
+support. In particular, interactive mode is not supported and argument count
+and lengths are limited by the CL command syntax.
+
+
+ILE/RPG binding:
+
+ All standard types and procedures are provided. Since ILE/RPG does not
+support macros, they have not been ported. However some of them are emulated
+as functions: these are the more useful ones (xmlXPathNodeSetGetLength,
+xmlXPathNodeSetItem, xmlXPathNodeSetIsEmpty, htmlDefaultSubelement,
+htmlElementAllowedHereDesc, htmlRequiredAttrs) and the global/threaded
+variables access macros. These variables can be read with function
+get_xxx(void), where xxxx is the name of the variable; they may be set by
+calling function set_xxxx(value), where value is of the same type as the
+variable.
+
+ The C va_list is not implemented as such in ILE/RPG. Functions implementing
+va_list and associated methods are provided:
+
+ /include "libxmlrpg/xmlstdarg"
+
+ d xmlVaStart pr
+ d list like(xmlVaList)
+ d lastargaddr * value
+ d lastargsize 10u 0 value
+
+ d xmlVaArg pr
+ d list like(xmlVaList)
+ d dest * value
+ d argsize 10i 0 value
+
+ d xmlVaEnd pr
+ d list like(xmlVaList)
diff --git a/libxml2/os400/dlfcn/dlfcn.c b/libxml2/os400/dlfcn/dlfcn.c
new file mode 100644
index 0000000..77190b3
--- /dev/null
+++ b/libxml2/os400/dlfcn/dlfcn.c
@@ -0,0 +1,1213 @@
+/**
+*** dlopen(), dlclose() dlsym(), dlerror() emulation for OS/400.
+***
+*** See Copyright for the status of this software.
+***
+*** Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A.
+**/
+
+#include <stdarg.h>
+#include <stdio.h>
+#include <ctype.h>
+#include <errno.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <string.h>
+#include <dirent.h>
+#include <pthread.h>
+
+#include <sys/types.h>
+#include <sys/stat.h>
+
+#include <except.h> /* AS400 exceptions. */
+#include <miptrnam.h> /* MI pointers support. */
+#include <qusec.h> /* Error structures. */
+#include <qp0lstdi.h> /* Path to QSYS object name. */
+#include <qp0z1170.h> /* For Qp0zInitEnv(). */
+#include <qleawi.h> /* For QleActBndPgmLong() definitions. */
+#include <qsy.h> /* Qualified name structure. */
+#include <qmhrtvm.h> /* Retrieve message from message file. */
+
+#include <mih/rinzstat.h>
+#include <mih/matactex.h>
+
+#include "libxml/hash.h"
+#include "dlfcn.h"
+
+
+/**
+*** Maximum internal path length.
+**/
+
+#define MAXPATHLEN 5120
+
+
+/**
+*** Maximum error string length.
+**/
+
+#define MAX_ERR_STR 511
+
+
+/**
+*** Field address macro.
+**/
+
+#define offset_by(t, b, o) ((t *) ((char *) (b) + (unsigned int) (o)))
+
+
+/**
+*** Global flags.
+**/
+
+#define INITED 000001 /* Package has been initialized. */
+#define THREADS 000002 /* Multithreaded job. */
+#define MULTIBUF 000004 /* One error buffer per thread. */
+
+
+/**
+*** DLL handle private structure.
+**/
+
+typedef struct {
+ Qle_ABP_Info_Long_t actinfo; /* Activation information. */
+ _SYSPTR pointer; /* Pointer to DLL object. */
+ unsigned int actcount; /* Activation count. */
+} dlinfo;
+
+
+/**
+*** Per-thread structure.
+**/
+
+typedef struct {
+ unsigned int lockcount; /* Mutex lock count. */
+ unsigned int iserror; /* Flag error present. */
+ char str[MAX_ERR_STR + 1]; /* Error string buffer. */
+} dlts_t;
+
+
+static pthread_mutex_t dlmutex = PTHREAD_MUTEX_INITIALIZER;
+static xmlHashTablePtr dldir = (xmlHashTablePtr) NULL; /* DLL directory. */
+static unsigned int dlflags = 0; /* Package flags. */
+static pthread_key_t dlkey;
+static dlts_t static_buf; /* Static error buffer. */
+
+
+
+static void
+dlthreadterm(void * mem)
+
+{
+ free(mem);
+ pthread_setspecific(dlkey, NULL);
+}
+
+
+static void
+dlterm(void)
+
+{
+ void * p;
+
+ if (dlflags & MULTIBUF) {
+ p = pthread_getspecific(dlkey);
+
+ if (p)
+ dlthreadterm(p);
+ }
+
+ if (dlflags & THREADS)
+ pthread_mutex_lock(&dlmutex);
+
+ if (dldir) {
+ xmlHashFree(dldir, (xmlHashDeallocator) NULL);
+ dldir = NULL;
+ }
+
+ if (dlflags & MULTIBUF)
+ pthread_key_delete(dlkey);
+
+ dlflags |= ~(INITED | MULTIBUF);
+ pthread_mutex_unlock(&dlmutex);
+ pthread_mutex_destroy(&dlmutex);
+}
+
+
+static void
+dlinit(void)
+
+{
+ int locked;
+
+ /**
+ *** Initialize the package.
+ *** Should be call once per process.
+ **/
+
+ locked = !pthread_mutex_lock(&dlmutex);
+
+ if (!(dlflags & INITED)) {
+ dlflags &= ~THREADS;
+
+ if (locked)
+ dlflags |= THREADS;
+
+ Qp0zInitEnv();
+ dldir = xmlHashCreate(16);
+ dlflags &= ~MULTIBUF;
+
+ if (dlflags & THREADS)
+ if (!pthread_key_create(&dlkey, dlthreadterm))
+ dlflags |= MULTIBUF;
+
+ atexit(dlterm);
+ dlflags |= INITED;
+ }
+
+ if (locked)
+ pthread_mutex_unlock(&dlmutex);
+}
+
+
+static void
+dlthreadinit(void)
+
+{
+ dlts_t * p;
+
+ if (!(dlflags & INITED))
+ dlinit();
+
+ if (dlflags & MULTIBUF) {
+ p = pthread_getspecific(dlkey);
+
+ if (!p) {
+ p = (dlts_t *) malloc(sizeof *p);
+
+ if (p) {
+ p->lockcount = 0;
+ p->iserror = 0;
+
+ if (pthread_setspecific(dlkey, p))
+ free(p);
+ }
+ }
+ }
+}
+
+
+static void
+dllock(void)
+
+{
+ dlts_t * p;
+
+ if (!(dlflags & THREADS))
+ return;
+
+ if (dlflags & MULTIBUF) {
+ p = pthread_getspecific(dlkey);
+
+ if (p && p->lockcount) {
+ p->lockcount++;
+ return;
+ }
+ }
+ else
+ p = (dlts_t *) NULL;
+
+ if (pthread_mutex_lock(&dlmutex))
+ return;
+
+ if (p)
+ p->lockcount++;
+}
+
+
+static void
+dlunlock(void)
+
+{
+ dlts_t * p;
+
+ if (!(dlflags & THREADS))
+ return;
+
+ if (dlflags & MULTIBUF) {
+ p = pthread_getspecific(dlkey);
+
+ if (p && p->lockcount > 1) {
+ p->lockcount--;
+ return;
+ }
+ }
+ else
+ p = (dlts_t *) NULL;
+
+ if (pthread_mutex_unlock(&dlmutex))
+ return;
+
+ if (p)
+ p->lockcount--;
+}
+
+
+const char *
+dlerror(void)
+
+{
+ dlts_t * p;
+
+ dlthreadinit();
+
+ if (!(dlflags & MULTIBUF))
+ p = &static_buf;
+ else if (!(p = (dlts_t *) pthread_getspecific(dlkey)))
+ p = &static_buf;
+
+ if (!p->iserror)
+ return (const char *) NULL;
+
+ p->iserror = 0;
+ return p->str;
+}
+
+
+static void
+dlseterror_from_errno(unsigned int err_no)
+
+{
+ dlts_t * p;
+
+ if (!(dlflags & MULTIBUF))
+ p = &static_buf;
+ else if (!(p = (dlts_t *) pthread_getspecific(dlkey)))
+ p = &static_buf;
+
+ strcpy(p->str, strerror(err_no));
+ p->iserror = 1;
+}
+
+
+static void
+dlseterror_from_exception(volatile _INTRPT_Hndlr_Parms_T * excp)
+
+{
+ int i;
+ Qmh_Rtvm_RTVM0300_t * imp;
+ char * cp;
+ _INTRPT_Hndlr_Parms_T * p;
+ dlts_t * q;
+ char rtvmbuf[30000];
+ Qus_EC_t errinfo;
+
+ p = (_INTRPT_Hndlr_Parms_T *) excp;
+ errinfo.Bytes_Provided = 0; /* Exception on error. */
+ QMHRTVM(rtvmbuf, sizeof rtvmbuf, "RTVM0300", p->Msg_Id,
+ "QCPFMSG QSYS ", p->Ex_Data, p->Msg_Data_Len,
+ "*YES ", "*NO ", &errinfo);
+ imp = offset_by(Qmh_Rtvm_RTVM0300_t, rtvmbuf, 0);
+
+ if (!(dlflags & MULTIBUF))
+ q = &static_buf;
+ else if (!(q = (dlts_t *) pthread_getspecific(dlkey)))
+ q = &static_buf;
+
+ if (i = imp->Length_Message_Returned)
+ cp = offset_by(char, imp, imp->Offset_Message_Returned);
+ else if (i = imp->Length_Help_Returned)
+ cp = offset_by(char, imp, imp->Offset_Help_Returned);
+ else {
+ q->iserror = 0;
+ return;
+ }
+
+ q->iserror = 1;
+
+ if (i > sizeof q->str - 1)
+ i = sizeof q->str - 1;
+
+ memcpy(q->str, cp, i);
+ q->str[i] = '\0';
+}
+
+
+static int
+dlparentpath(const char * path, size_t len)
+
+{
+ if (len <= 1)
+ return len;
+
+ while (path[--len] != '/')
+ ;
+
+ return len? len: 1;
+}
+
+
+static int
+dlmakepath(char * path, size_t pathlen, const char * tail, size_t taillen)
+
+{
+ int i;
+
+ if (taillen && tail[0] == '/')
+ pathlen = 0;
+
+ for (;;) {
+ while (taillen && *tail == '/') {
+ tail++;
+ taillen--;
+ }
+
+ if (!taillen)
+ break;
+
+ for (i = 0; i < taillen; i++)
+ if (tail[i] == '/')
+ break;
+
+ if (*tail == '.')
+ switch (i) {
+
+ case 2:
+ if (tail[1] != '.')
+ break;
+
+ pathlen = dlparentpath(path, pathlen);
+
+ case 1:
+ tail += i;
+ taillen -= i;
+ continue;
+ }
+
+ if (pathlen + i + 1 >= MAXPATHLEN) {
+ errno = ENAMETOOLONG;
+ return -1;
+ }
+
+ path[pathlen++] = '/';
+ memcpy(path + pathlen, tail, i);
+ pathlen += i;
+ }
+
+ if (!pathlen)
+ path[pathlen++] = '/';
+
+ path[pathlen] = '\0';
+ return pathlen;
+}
+
+
+static int
+dlresolveLink(const char * path, char * buf, size_t bufsiz)
+
+{
+ int n;
+ int l1;
+ int l2;
+ struct stat sbuf;
+ char buf1[MAXPATHLEN + 1];
+ char buf2[MAXPATHLEN + 1];
+
+ /**
+ *** Resolve symbolic link to IFS object name.
+ **/
+
+ if (!buf) {
+ errno = EFAULT;
+ return -1;
+ }
+
+ if (!path || !*path || !bufsiz) {
+ errno = EINVAL;
+ return -1;
+ }
+
+ if (*path != '/') {
+ if (!getcwd(buf1, sizeof buf1))
+ return -1;
+
+ l1 = strlen(buf1);
+ }
+ else
+ l1 = 0;
+
+ l1 = dlmakepath(buf1, l1, path, strlen(path));
+ n = 0;
+
+ for (;;) {
+ if (l1 < 0)
+ return -1;
+
+ if (n++ >= 256) {
+ errno = ELOOP;
+ return -1;
+ }
+
+ if (lstat(buf1, &sbuf)) {
+ if (errno == ENOENT)
+ break;
+
+ return -1;
+ }
+
+ if (!S_ISLNK(sbuf.st_mode))
+ break;
+
+ if (sbuf.st_size > MAXPATHLEN) {
+ errno = ENAMETOOLONG;
+ return -1;
+ }
+
+ l2 = readlink(buf1, buf2, MAXPATHLEN + 1);
+
+ if (l2 < 0)
+ return -1;
+
+ if (buf2[0] != '/')
+ l1 = dlparentpath(buf1, l1);
+
+ l1 = dlmakepath(buf1, l1, buf2, l2);
+ }
+
+ if (l1 >= bufsiz) {
+ errno = ENAMETOOLONG;
+ return -1;
+ }
+
+ memcpy(buf, buf1, l1 + 1);
+ return l1;
+}
+
+
+static int
+dlGetObjectName(Qp0l_QSYS_Info_t * qsysinfo, const char * dir,
+ int dirlen, const char * link)
+
+{
+ int n;
+ char * namebuf;
+ Qlg_Path_Name_T * qptp;
+ char pathbuf[sizeof(Qlg_Path_Name_T) + _QP0L_DIR_NAME_LG + 4];
+ Qus_EC_t errinfo;
+ struct stat sbuf;
+
+ /**
+ *** Get QSYS object library/name/member and type corresponding to
+ *** the symbolic `link' in directory `dir'.
+ **/
+
+ if (!qsysinfo) {
+ errno = EFAULT;
+ return -1;
+ }
+
+ if (!dir && !link) {
+ errno = EINVAL;
+ return -1;
+ }
+
+ qptp = (Qlg_Path_Name_T *) pathbuf;
+ namebuf = pathbuf + sizeof(Qlg_Path_Name_T);
+ n = 0;
+
+ /**
+ *** Build full path.
+ **/
+
+ if (dir) {
+ if (dirlen < 0 || dirlen > _QP0L_DIR_NAME_LG + 4)
+ dirlen = _QP0L_DIR_NAME_LG + 4;
+
+ while (*dir && n < dirlen)
+ namebuf[n++] = *dir++;
+ }
+
+ if (n && namebuf[n - 1] == '/')
+ n--;
+
+ if (link) {
+ if (*link && *link != '/' && n < _QP0L_DIR_NAME_LG + 4)
+ namebuf[n++] = '/';
+
+ while (*link && n < _QP0L_DIR_NAME_LG + 4)
+ namebuf[n++] = *link++;
+ }
+
+ if (!n || n > _QP0L_DIR_NAME_LG) {
+ errno = ENAMETOOLONG;
+ return -1;
+ }
+
+ namebuf[n] = '\0';
+ n = dlresolveLink(namebuf, namebuf, _QP0L_DIR_NAME_LG + 1);
+
+ if (n == -1)
+ return -1;
+
+ if (stat(namebuf, &sbuf))
+ return -1;
+
+ memset((char *) qptp, 0, sizeof *qptp);
+ qptp->Path_Length = n;
+ qptp->Path_Name_Delimiter[0] = '/';
+ errinfo.Bytes_Provided = sizeof errinfo;
+ Qp0lCvtPathToQSYSObjName(qptp, qsysinfo, "QSYS0100", sizeof *qsysinfo,
+ 0, &errinfo);
+ return errinfo.Bytes_Available? -1: 0;
+}
+
+
+static const char *
+getcomponent(char * dst, const char * src)
+
+{
+ int i;
+
+ /**
+ *** Get a path component of at most 10 characters and
+ *** map it to upper case.
+ *** Return the address of the next delimiter in source.
+ **/
+
+ for (i = 0;; src++) {
+ if (!*src || *src == ' ' || *src == '/') {
+ *dst = '\0';
+ return src;
+ }
+
+ if (i < 10) {
+ *dst++ = toupper(*src);
+ i++;
+ }
+ }
+}
+
+
+static int
+dlpath2QSYS(Qp0l_QSYS_Info_t * qsysinfo, const char * path, const char * dftlib)
+
+{
+ unsigned int flags;
+ char * cp;
+
+ /**
+ *** Convert the given path to a QSYS object name.
+ *** Syntax rules for paths are:
+ ***
+ *** '/'+ [ <library> [ '/'+ <file> [ '/'+ <member> ] ] '/'* ]
+ *** <library> '/'+ <file> [ '/'+ <member> ] '/'*
+ *** <file> '/'*
+ ***
+ *** If default library is not given, *LIBL is assumed.
+ *** Components may no contain spaces. They are translated to
+ *** uppercase. Only the first 10 characters are significant.
+ *** There is no check for the validity of the given components and
+ *** for the object existence.
+ *** Component types are not in the path, but generated internally.
+ *** CCSID is not processed.
+ ***
+ *** Return 0 upon success, else -1.
+ **/
+
+ if (!qsysinfo || !path) {
+ errno = EFAULT;
+ return -1;
+ }
+
+ /**
+ *** Strip leading spaces.
+ **/
+
+ while (*path == ' ')
+ path++;
+
+ /**
+ *** Check for null path.
+ **/
+
+ if (!*path) {
+ errno = EINVAL;
+ return -1;
+ }
+
+ /**
+ *** Preset the result structure.
+ **/
+
+ memset((char *) qsysinfo, 0, sizeof *qsysinfo);
+
+ /**
+ *** Determine the format.
+ **/
+
+ if (*path == '/') {
+ /**
+ *** Library component present.
+ **/
+
+ while (*++path == '/')
+ ;
+
+ if (!*path || *path == ' ')
+ strcpy(qsysinfo->Lib_Name, "QSYS");
+ else
+ path = getcomponent(qsysinfo->Lib_Name, path);
+
+ /**
+ *** Check for file component and get it.
+ **/
+
+ if (*path == '/') {
+ while (*++path == '/')
+ ;
+
+ if (*path && *path != ' ')
+ path = getcomponent(qsysinfo->Obj_Name, path);
+ }
+ }
+ else {
+ /**
+ *** The mandatory component is the <file>.
+ **/
+
+ path = getcomponent(qsysinfo->Obj_Name, path);
+
+ while (*path == '/')
+ path++;
+
+ /**
+ *** If there is a second component, move the first to
+ *** the library name and parse the file name.
+ **/
+
+ if (*path && *path != ' ') {
+ strcpy(qsysinfo->Lib_Name, qsysinfo->Obj_Name);
+ memset(qsysinfo->Obj_Name, 0,
+ sizeof qsysinfo->Obj_Name);
+ path = getcomponent(qsysinfo->Obj_Name, path);
+ }
+ else
+ strcpy(qsysinfo->Lib_Name, dftlib? dftlib: "*LIBL");
+ }
+
+ /**
+ *** Check and set-up member.
+ **/
+
+ while (*path == '/')
+ path++;
+
+ if (*path && *path != ' ') {
+ path = getcomponent(qsysinfo->Mbr_Name, path);
+ strcpy(qsysinfo->Mbr_Type, "*MBR");
+
+ while (*path == '/')
+ path++;
+ }
+
+ strcpy(qsysinfo->Lib_Type, "*LIB");
+
+ if (qsysinfo->Obj_Name[0])
+ strcpy(qsysinfo->Obj_Type, "*FILE");
+
+ qsysinfo->Bytes_Returned = sizeof *qsysinfo;
+ qsysinfo->Bytes_Available = sizeof *qsysinfo;
+
+ /**
+ *** Strip trailing spaces.
+ **/
+
+ while (*path == ' ')
+ path++;
+
+ if (*path) {
+ errno = EINVAL;
+ return -1;
+ }
+
+ return 0;
+}
+
+
+static int
+dl_ifs_link(Qp0l_QSYS_Info_t * qsysinfo, const char * pathname)
+
+{
+ /**
+ *** If `pathname' is a link found in IFS, set `qsysinfo' to its
+ *** DB2 name.
+ *** Return 0 if OK, else -1.
+ **/
+
+ return dlGetObjectName(qsysinfo, (const char *) NULL, 0, pathname);
+}
+
+
+static int
+dl_path_link(Qp0l_QSYS_Info_t * qsysinfo, const char * pathvar,
+ const char * filename, int (* testproc)(const Qp0l_QSYS_Info_t *))
+
+{
+ const char * p;
+ const char * q;
+ unsigned int i;
+ const char * path;
+
+ /**
+ *** If `filename' is not a path and is a link found in one of the
+ *** colon-separated paths in environment variable `pathvar',
+ *** set `qsysinfo' to its DB2 name.
+ *** Return 0 if OK, else -1.
+ **/
+
+ i = _QP0L_DIR_NAME_LG;
+
+ for (p = filename; *p; p++)
+ if (*p == '/' || !--i)
+ return -1; /* Too long or a path. */
+
+ /**
+ *** Make sure we have the LD_LIBRARY_PATH environment
+ *** variable value.
+ **/
+
+ path = getenv(pathvar);
+
+ if (!path)
+ return -1; /* No path list. */
+
+ /**
+ *** Try in each path listed.
+ **/
+
+ q = path;
+
+ if (!*q)
+ return -1; /* No path list. */
+
+ for (;;) {
+ for (p = q; *p && *p != ':'; p++)
+ ;
+
+ if (p > q) /* Ignore null path. */
+ if (!dlGetObjectName(qsysinfo, q, p - q, filename))
+ if (!testproc || (*testproc)(qsysinfo))
+ return 0; /* Found: return. */
+
+ if (!*p)
+ break;
+
+ q = p + 1;
+ }
+
+ errno = ENOENT;
+ return -1;
+}
+
+
+static int
+dl_DB2_path(Qp0l_QSYS_Info_t * qsysinfo, const char * pathname)
+
+{
+ if (dlpath2QSYS(qsysinfo, pathname, (const char *) NULL))
+ return -1;
+
+ if (qsysinfo->Mbr_Type[0])
+ return -1; /* Service program may not have members. */
+
+ if (!qsysinfo->Obj_Type[0])
+ return -1; /* Object must be specified. */
+
+ strcpy(qsysinfo->Obj_Type, "*SRVPGM"); /* Set our object type. */
+ return 0;
+}
+
+
+static int
+dl_DB2_name(char * dst, const char * name)
+
+{
+ int i;
+
+ for (i = 0; i < 10; i++) {
+ switch (*name) {
+
+ default:
+ if (!islower(*name))
+ break;
+
+ case '\0':
+ case '/':
+ case ' ':
+ return -1;
+ }
+
+ *dst++ = *name++;
+ }
+
+ if (!i)
+ return -1;
+
+ *dst = '\0';
+ return 0;
+}
+
+
+static int
+dl_qualified_object(Qp0l_QSYS_Info_t * qsysinfo, const char * pathname)
+
+{
+ memset((char *) qsysinfo, 0, sizeof *qsysinfo);
+
+ if (dl_DB2_name(qsysinfo->Obj_Name, pathname) ||
+ dl_DB2_name(qsysinfo->Lib_Name, pathname + 10))
+ return -1;
+
+ strcpy(qsysinfo->Lib_Type, "*LIB");
+ strcpy(qsysinfo->Obj_Type, "*SRVPGM");
+ return 0;
+}
+
+
+static int
+dl_lib_object(Qp0l_QSYS_Info_t * qsysinfo,
+ const char * libname, const char * pathname)
+
+{
+ int i;
+ char * cp;
+
+ strcpy(qsysinfo->Lib_Name, libname);
+ strcpy(qsysinfo->Lib_Type, "*LIB");
+ strcpy(qsysinfo->Obj_Type, "*SRVPGM");
+ cp = qsysinfo->Obj_Name;
+
+ while (*pathname == ' ')
+ pathname++;
+
+ for (i = 0;; pathname++) {
+ switch (*pathname) {
+
+ case '\0':
+ case ' ':
+ break;
+
+ case '/':
+ return -1;
+
+ default:
+ if (i < 10)
+ *cp++ = toupper(*pathname);
+
+ i++;
+ continue;
+ }
+
+ break;
+ }
+
+ while (*pathname == ' ')
+ pathname++;
+
+ if (!i || *pathname)
+ return -1;
+
+ *cp = '\0';
+ return 0;
+}
+
+
+static int
+dl_is_srvpgm(const Qp0l_QSYS_Info_t * qsysinfo)
+
+{
+ struct stat sbuf;
+ char namebuf[100];
+
+ if (!qsysinfo->Lib_Name[0] || strcmp(qsysinfo->Lib_Type, "*LIB") ||
+ !qsysinfo->Obj_Name[0] || strcmp(qsysinfo->Obj_Type, "*SRVPGM") ||
+ qsysinfo->Mbr_Name[0] || qsysinfo->Mbr_Type[0])
+ return 0;
+
+ /**
+ *** Build the IFS path name for the DB2 object.
+ **/
+
+ sprintf(namebuf, "%s/%s.LIB/%s.SRVPGM",
+ strcmp(qsysinfo->Lib_Name, "QSYS")? "/QSYS.LIB": "",
+ qsysinfo->Lib_Name, qsysinfo->Obj_Name);
+
+ return stat(namebuf, &sbuf) == 0;
+}
+
+
+static int
+dlreinit(dlinfo * dlip)
+
+{
+ RINZ_TEMPL_T t;
+ RINZ_TEMPL_T * p;
+ volatile _INTRPT_Hndlr_Parms_T excbuf;
+
+ if (dlip->actinfo.Flags & QLE_ABP_WAS_ACTIVE)
+ return 0;
+
+ /**
+ *** Attempt to reinitialize the service program that was loaded.
+ *** The service program must be created to allow re-initialization:
+ *** ALWRINZ(*YES) for this to work. The default is
+ *** ALWRINZ(*NO).
+ **/
+
+#pragma exception_handler(err, excbuf, 0, _C2_MH_ESCAPE, _CTLA_HANDLE_NO_MSG)
+ p = &t;
+ t.rinz_pgm = dlip->pointer;
+ t.rinz_agpmk = dlip->actinfo.Act_Grp_Mark;
+ _RINZSTAT(p);
+#pragma disable_handler
+
+ return 0;
+
+err:
+ if (!memcmp((char *) excbuf.Msg_Id, "MCH4421", 7))
+ return 0; /* Program cannot be reinitialized. */
+
+ dlseterror_from_exception(&excbuf);
+ return -1;
+}
+
+
+void *
+dlsym(void * handle, const char * symbol)
+
+{
+ dlinfo * dlip;
+ void * p;
+ int export_type;
+ Qus_EC_t errinfo;
+ volatile _INTRPT_Hndlr_Parms_T excbuf;
+ static int zero = 0;
+
+ dlthreadinit();
+
+ if (!handle || !symbol) {
+ dlseterror_from_errno(EFAULT);
+ return (void *) NULL;
+ }
+
+ dlip = (dlinfo *) handle;
+
+#pragma exception_handler(error, excbuf, 0, _C2_MH_ESCAPE, _CTLA_HANDLE_NO_MSG)
+ errinfo.Bytes_Provided = 0;
+ QleGetExpLong(&dlip->actinfo.Act_Mark, &zero, &zero,
+ (char *) symbol, &p, &export_type, &errinfo);
+ return p;
+#pragma disable_handler
+
+error:
+ dlseterror_from_exception(&excbuf);
+ return (void *) NULL;
+}
+
+
+int
+dlclose(void * handle)
+
+{
+ dlinfo * dlip;
+ void (* _fini)(void);
+
+ dlthreadinit();
+
+ if (!handle) {
+ dlseterror_from_errno(EFAULT);
+ return -1;
+ }
+
+ dlip = (dlinfo *) handle;
+
+ if (dlip->actcount) {
+ if (--(dlip->actcount))
+ return 0;
+
+ if (_fini = dlsym(handle, "_fini"))
+ (*_fini)();
+ }
+
+ return dlreinit(dlip);
+}
+
+
+static void *
+dlopenqsys(const Qp0l_QSYS_Info_t * dllinfo)
+
+{
+ dlinfo * dlip;
+ dlinfo * dlip2;
+ void (* _init)(void);
+ unsigned int i;
+ _SYSPTR pgmptr;
+ unsigned long long actmark;
+ Qus_EC_t errinfo;
+ char actmarkstr[2 * sizeof actmark + 1];
+ static int actinfo_size = sizeof dlip->actinfo;
+ volatile _INTRPT_Hndlr_Parms_T excbuf;
+
+ /**
+ *** Capture any type of error and if any occurs,
+ *** return not found.
+ **/
+
+#pragma exception_handler(error1, excbuf, 0, _C2_MH_ESCAPE, _CTLA_HANDLE_NO_MSG)
+ pgmptr = rslvsp(WLI_SRVPGM, (char *) dllinfo->Obj_Name,
+ (char *) dllinfo->Lib_Name ,_AUTH_NONE);
+
+ if (!pgmptr) {
+ errno = ENOENT;
+ return (void *) NULL;
+ }
+
+ /**
+ *** Create a new DLL info block.
+ **/
+
+ dlip = (dlinfo *) malloc(sizeof *dlip);
+
+ if (!dlip)
+ return (void *) NULL; /* Cannot create block. */
+#pragma disable_handler
+
+ dllock();
+
+#pragma exception_handler(error2, excbuf, 0, _C2_MH_ESCAPE, _CTLA_HANDLE_NO_MSG)
+ memset((char *) dlip, 0, sizeof *dlip);
+ dlip->pointer = pgmptr;
+
+ /**
+ *** Activate the DLL.
+ **/
+
+ errinfo.Bytes_Provided = 0;
+ QleActBndPgmLong(&pgmptr, &actmark,
+ &dlip->actinfo, &actinfo_size, &errinfo);
+ dlip->actinfo.Act_Mark = actmark;
+
+ /**
+ *** Dummy string encoding activation mark to use as hash table key.
+ **/
+
+ for (i = 0; actmark; actmark >>= 6)
+ actmarkstr[i++] = 0x40 + (actmark & 0x3F);
+
+ actmarkstr[i] = '\0';
+
+ /**
+ *** Check if already activated.
+ **/
+
+ dlip2 = (dlinfo *) xmlHashLookup(dldir, actmarkstr);
+
+ if (dlip2) {
+ free((char *) dlip);
+ dlip = dlip2;
+ }
+ else if (xmlHashAddEntry(dldir, (const xmlChar *) actmarkstr, dlip)) {
+ dlreinit(dlip);
+ free((char *) dlip);
+ dlunlock();
+ return (void *) NULL;
+ }
+#pragma disable_handler
+
+#pragma exception_handler(error2, excbuf, 0, _C2_MH_ESCAPE, _CTLA_HANDLE_NO_MSG)
+
+ /**
+ *** Bump activation counter.
+ **/
+
+ if (!(dlip->actcount++) && (_init = dlsym(dlip, "_init")))
+ (*_init)();
+
+ dlunlock();
+
+ /**
+ *** Return the handle.
+ **/
+
+ return (void *) dlip;
+#pragma disable_handler
+
+error2:
+ free((char *) dlip);
+ dlunlock();
+
+error1:
+ dlseterror_from_exception(&excbuf);
+ return (void *) NULL;
+}
+
+
+void *
+dlopen(const char * filename, int flag)
+
+{
+ void * dlhandle;
+ int sverrno;
+ Qp0l_QSYS_Info_t dllinfo;
+
+ sverrno = errno;
+ errno = 0;
+
+ dlthreadinit();
+
+ if (!filename) {
+ dlseterror_from_errno(EFAULT);
+ errno = sverrno;
+ return NULL;
+ }
+
+ /**
+ *** Try to locate the object in the following order:
+ *** _ `filename' is an IFS path.
+ *** _ `filename' is not a path and resides in one of
+ *** LD_LIBRARY_PATH colon-separated paths.
+ *** _ `filename' is not a path and resides in one of
+ *** PATH colon-separated paths.
+ *** _ `filename' is a DB2 path (as /library/object).
+ *** _ `filename' is a qualified object name.
+ *** _ `filename' is an object in *CURLIB.
+ *** _ `filename' is an object in *LIBL.
+ **/
+
+ if (!dl_ifs_link(&dllinfo, filename) && dl_is_srvpgm(&dllinfo))
+ dlhandle = dlopenqsys(&dllinfo);
+ else if (!dl_path_link(&dllinfo,
+ "LD_LIBRARY_PATH", filename, dl_is_srvpgm))
+ dlhandle = dlopenqsys(&dllinfo);
+ else if (!dl_path_link(&dllinfo, "PATH", filename, dl_is_srvpgm))
+ dlhandle = dlopenqsys(&dllinfo);
+ else if (!dl_DB2_path(&dllinfo, filename) && dl_is_srvpgm(&dllinfo))
+ dlhandle = dlopenqsys(&dllinfo);
+ else if (!dl_qualified_object(&dllinfo, filename) &&
+ dl_is_srvpgm(&dllinfo))
+ dlhandle = dlopenqsys(&dllinfo);
+ else if (!dl_lib_object(&dllinfo, "*CURLIB", filename) &&
+ dl_is_srvpgm(&dllinfo))
+ dlhandle = dlopenqsys(&dllinfo);
+ else if (!dl_lib_object(&dllinfo, "*LIBL", filename) &&
+ dl_is_srvpgm(&dllinfo))
+ dlhandle = dlopenqsys(&dllinfo);
+ else
+ dlhandle = NULL;
+
+ if (!dlhandle && errno)
+ dlseterror_from_errno(errno);
+
+ errno = sverrno;
+ return dlhandle;
+}
diff --git a/libxml2/os400/dlfcn/dlfcn.h b/libxml2/os400/dlfcn/dlfcn.h
new file mode 100644
index 0000000..0cf691e
--- /dev/null
+++ b/libxml2/os400/dlfcn/dlfcn.h
@@ -0,0 +1,32 @@
+/**
+*** dlopen(), dlclose() dlsym(), dlerror() emulation for OS/400.
+***
+*** See Copyright for the status of this software.
+***
+*** Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A.
+**/
+
+#ifndef _DLFCN_H_
+#define _DLFCN_H_
+
+
+/**
+*** Flags for dlopen().
+*** Ignored for OS400.
+**/
+
+#define RTLD_LAZY 000
+#define RTLD_NOW 001
+#define RTLD_GLOBAL 010
+
+
+/**
+*** Prototypes.
+**/
+
+extern void * dlopen(const char * filename, int flag);
+extern void * dlsym(void * handle, const char * symbol);
+extern const char * dlerror(void);
+extern int dlclose(void * handle);
+
+#endif
diff --git a/libxml2/os400/iconv/README.iconv b/libxml2/os400/iconv/README.iconv
new file mode 100644
index 0000000..4950d59
--- /dev/null
+++ b/libxml2/os400/iconv/README.iconv
@@ -0,0 +1,47 @@
+IBM OS/400 implements iconv in an odd way:
+- Type iconv_t is a structure: therefore objects of this type cannot be
+ compared to (iconv_t) -1.
+- Supported character sets names are all of the form IBMCCSIDccsid..., where
+ ccsid is a decimal 5-digit integer identifying an IBM coded character set.
+ In addition, character set names have to be given in EBCDIC.
+ Standard character set names like "UTF-8" are NOT recognized.
+- The prototype of iconv_open() does not declare parameters as const, although
+ they are not altered.
+
+ Since libiconv does not support EBCDIC, use of this package here as a
+replacement is not a solution.
+
+ For these reasons, the code in this directory implements a wrapper to the
+OS/400 iconv implementation. The wrapper performs the following transformations:
+- Type iconv_t is an pointer. Although OS/400 pointers are odd, comparing
+ with (iconv_t) -1 is OK.
+- All IANA character set names are recognized in a coding- and case-insensitive
+ way, providing an equivalent CCSID exists. see
+ http://www.iana.org/assignments/character-sets/character-sets.xhtml
+- All CCSIDs from the association file can be expressed as IBMCCSIDxxxxx where
+ xxxxx is the 5 digit CCSID; no null terminator is required. Alternate codes
+ are of the form ibm-xxx (null-terminated), where xxx is the integer CCSID with
+ leading zeroes stripped.
+- If a IANA BIBenum is defined for a CCSID, the name iana-xxx can be used,
+ where xxx is the integer MIBenum without leading zeroes.
+- In addition, some aliases are also taken from the association file. Examples
+ are: ASCII, EBCDIC, UTF8.
+- Prototype of iconv_open() has const parameters.
+- Character code names can be given in any code.
+
+Character set names to CCSID conversion.
+- http://www.iana.org/assignments/character-sets/character-sets.xhtml provides
+ all IANA registered character set names and aliases associated with a
+ MIBenum, that is a unique character set identifier.
+- A hand-maintained file ccsid_mibenum.xml associates IBM CCSIDs to
+ IANA MBenums.
+- An OS/400 C program (in subdirectory bldcsndfa) generates a deterministic
+ finite automaton from the files mentioned above into a C file for all
+ possible character set name and associating each of them with its
+ corresponding CCSID. This program can only be run on OS/400 since it uses
+ the native iconv support for EBCDIC.
+- Since these operations are tedious and the table generation needs bootstraping
+ with libxml2, the generated automaton is stored within sources and need not
+ be rebuilt at each compilation. However, source is provided here to allow
+ new table generation with conversion tables that were not available at the
+ time of original generation.
diff --git a/libxml2/os400/iconv/bldcsndfa/bldcsndfa.c b/libxml2/os400/iconv/bldcsndfa/bldcsndfa.c
new file mode 100644
index 0000000..48afd54
--- /dev/null
+++ b/libxml2/os400/iconv/bldcsndfa/bldcsndfa.c
@@ -0,0 +1,1953 @@
+/**
+*** Build a deterministic finite automaton to associate CCSIDs with
+*** character set names.
+***
+*** Compile on OS/400 with options SYSIFCOPT(*IFSIO).
+***
+*** See Copyright for the status of this software.
+***
+*** Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A.
+**/
+
+#include <stdio.h>
+#include <errno.h>
+#include <stdlib.h>
+#include <string.h>
+#include <fcntl.h>
+#include <ctype.h>
+
+#include <iconv.h>
+
+
+#ifdef OLDXML
+#include "xml.h"
+#else
+#include <libxml/hash.h>
+#include <libxml/parser.h>
+#include <libxml/xpath.h>
+#include <libxml/xpathInternals.h>
+#endif
+
+
+#ifdef __OS400__
+#define iconv_open_error(cd) ((cd).return_value == -1)
+#define set_iconv_open_error(cd) ((cd).return_value = -1)
+#else
+#define iconv_open_error(cd) ((cd) == (iconv_t) -1)
+#define set_iconv_open_error(cd) ((cd) = (iconv_t) -1)
+#endif
+
+
+#define C_SOURCE_CCSID 500
+#define C_UTF8_CCSID 1208
+
+
+#define UTF8_SPACE 0x20
+#define UTF8_HT 0x09
+#define UTF8_0 0x30
+#define UTF8_9 0x39
+#define UTF8_A 0x41
+#define UTF8_Z 0x5A
+#define UTF8_a 0x61
+#define UTF8_z 0x7A
+
+
+#define GRANULE 128 /* Memory allocation granule. */
+
+#define EPSILON 0x100 /* Token for empty transition. */
+
+
+#ifndef OFFSETOF
+#define OFFSETOF(t, f) ((unsigned int) ((char *) &((t *) 0)->f - (char *) 0))
+#endif
+
+#ifndef OFFSETBY
+#define OFFSETBY(t, p, o) ((t *) ((char *) (p) + (unsigned int) (o)))
+#endif
+
+
+typedef struct t_transition t_transition; /* NFA/DFA transition. */
+typedef struct t_state t_state; /* NFA/DFA state node. */
+typedef struct t_symlist t_symlist; /* Symbol (i.e.: name) list. */
+typedef struct t_chset t_chset; /* Character set. */
+typedef struct t_stategroup t_stategroup; /* Optimization group. */
+typedef unsigned char utf8char; /* UTF-8 character byte. */
+typedef unsigned char byte; /* Untyped data byte. */
+
+
+typedef struct { /* Set of pointers. */
+ unsigned int p_size; /* Current allocated size. */
+ unsigned int p_card; /* Current element count. */
+ void * p_set[1]; /* Element array. */
+} t_powerset;
+
+
+struct t_transition {
+ t_transition * t_forwprev; /* Head of forward transition list. */
+ t_transition * t_forwnext; /* Tail of forward transition list. */
+ t_transition * t_backprev; /* Head of backward transition list. */
+ t_transition * t_backnext; /* Tail of backward transition list. */
+ t_state * t_from; /* Incoming state. */
+ t_state * t_to; /* Destination state. */
+ unsigned short t_token; /* Transition token. */
+ unsigned int t_index; /* Transition array index. */
+};
+
+
+struct t_state {
+ t_state * s_next; /* Next state (for DFA construction). */
+ t_state * s_stack; /* Unprocessed DFA states stack. */
+ t_transition * s_forward; /* Forward transitions. */
+ t_transition * s_backward; /* Backward transitions. */
+ t_chset * s_final; /* Recognized character set. */
+ t_powerset * s_nfastates; /* Corresponding NFA states. */
+ unsigned int s_index; /* State index. */
+};
+
+
+struct t_symlist {
+ t_symlist * l_next; /* Next name in list. */
+ utf8char l_symbol[1]; /* Name bytes. */
+};
+
+
+struct t_chset {
+ t_chset * c_next; /* Next character set. */
+ t_symlist * c_names; /* Character set name list. */
+ iconv_t c_fromUTF8; /* Conversion from UTF-8. */
+ unsigned int c_ccsid; /* IBM character set code. */
+ unsigned int c_mibenum; /* IANA character code. */
+};
+
+
+struct t_stategroup {
+ t_stategroup * g_next; /* Next group. */
+ t_state * g_member; /* Group member (s_stack) list. */
+ unsigned int g_id; /* Group ident. */
+};
+
+
+
+t_chset * chset_list; /* Character set list. */
+t_state * initial_state; /* Initial NFA state. */
+iconv_t job2utf8; /* Job CCSID to UTF-8 conversion. */
+iconv_t utf82job; /* UTF-8 to job CCSID conversion. */
+t_state * dfa_states; /* List of DFA states. */
+unsigned int groupid; /* Group ident counter. */
+
+
+/**
+*** UTF-8 strings.
+**/
+
+#pragma convert(819)
+
+static const utf8char utf8_MIBenum[] = "MIBenum";
+static const utf8char utf8_mibenum[] = "mibenum";
+static const utf8char utf8_ibm_[] = "ibm-";
+static const utf8char utf8_IBMCCSID[] = "IBMCCSID";
+static const utf8char utf8_iana_[] = "iana-";
+static const utf8char utf8_Name[] = "Name";
+static const utf8char utf8_Pref_MIME_Name[] = "Preferred MIME Name";
+static const utf8char utf8_Aliases[] = "Aliases";
+static const utf8char utf8_html[] = "html";
+static const utf8char utf8_htmluri[] = "http://www.w3.org/1999/xhtml";
+static const utf8char utf8_A[] = "A";
+static const utf8char utf8_C[] = "C";
+static const utf8char utf8_M[] = "M";
+static const utf8char utf8_N[] = "N";
+static const utf8char utf8_P[] = "P";
+static const utf8char utf8_T[] = "T";
+static const utf8char utf8_ccsid[] = "ccsid";
+static const utf8char utf8_EBCDIC[] = "EBCDIC";
+static const utf8char utf8_ASCII[] = "ASCII";
+static const utf8char utf8_assocnodes[] = "/ccsid_mibenum/assoc[@ccsid]";
+static const utf8char utf8_aliastext[] =
+ "/ccsid_mibenum/assoc[@ccsid=$C]/alias/text()";
+#ifdef OLDXML
+static const utf8char utf8_tablerows[] =
+ "//table[@id='table-character-sets-1']/*/tr";
+static const utf8char utf8_headerpos[] =
+ "count(th[text()=$T]/preceding-sibling::th)+1";
+static const utf8char utf8_getmibenum[] = "number(td[$M])";
+static const utf8char utf8_getprefname[] = "string(td[$P])";
+static const utf8char utf8_getname[] = "string(td[$N])";
+static const utf8char utf8_getaliases[] = "td[$A]/text()";
+#else
+static const utf8char utf8_tablerows[] =
+ "//html:table[@id='table-character-sets-1']/*/html:tr";
+static const utf8char utf8_headerpos[] =
+ "count(html:th[text()=$T]/preceding-sibling::html:th)+1";
+static const utf8char utf8_getmibenum[] = "number(html:td[$M])";
+static const utf8char utf8_getprefname[] = "string(html:td[$P])";
+static const utf8char utf8_getname[] = "string(html:td[$N])";
+static const utf8char utf8_getaliases[] = "html:td[$A]/text()";
+#endif
+
+#pragma convert(0)
+
+
+/**
+*** UTF-8 character length table.
+***
+*** Index is first character byte, value is the character byte count.
+**/
+
+static signed char utf8_chlen[] = {
+/* 00-07 */ 1, 1, 1, 1, 1, 1, 1, 1,
+/* 08-0F */ 1, 1, 1, 1, 1, 1, 1, 1,
+/* 10-17 */ 1, 1, 1, 1, 1, 1, 1, 1,
+/* 18-1F */ 1, 1, 1, 1, 1, 1, 1, 1,
+/* 20-27 */ 1, 1, 1, 1, 1, 1, 1, 1,
+/* 28-2F */ 1, 1, 1, 1, 1, 1, 1, 1,
+/* 30-37 */ 1, 1, 1, 1, 1, 1, 1, 1,
+/* 38-3F */ 1, 1, 1, 1, 1, 1, 1, 1,
+/* 40-47 */ 1, 1, 1, 1, 1, 1, 1, 1,
+/* 48-4F */ 1, 1, 1, 1, 1, 1, 1, 1,
+/* 50-57 */ 1, 1, 1, 1, 1, 1, 1, 1,
+/* 58-5F */ 1, 1, 1, 1, 1, 1, 1, 1,
+/* 60-67 */ 1, 1, 1, 1, 1, 1, 1, 1,
+/* 68-6F */ 1, 1, 1, 1, 1, 1, 1, 1,
+/* 70-77 */ 1, 1, 1, 1, 1, 1, 1, 1,
+/* 78-7F */ 1, 1, 1, 1, 1, 1, 1, 1,
+/* 80-87 */ -1, -1, -1, -1, -1, -1, -1, -1,
+/* 88-8F */ -1, -1, -1, -1, -1, -1, -1, -1,
+/* 90-97 */ -1, -1, -1, -1, -1, -1, -1, -1,
+/* 98-9F */ -1, -1, -1, -1, -1, -1, -1, -1,
+/* A0-A7 */ -1, -1, -1, -1, -1, -1, -1, -1,
+/* A8-AF */ -1, -1, -1, -1, -1, -1, -1, -1,
+/* B0-B7 */ -1, -1, -1, -1, -1, -1, -1, -1,
+/* B8-BF */ -1, -1, -1, -1, -1, -1, -1, -1,
+/* C0-C7 */ 2, 2, 2, 2, 2, 2, 2, 2,
+/* C8-CF */ 2, 2, 2, 2, 2, 2, 2, 2,
+/* D0-D7 */ 2, 2, 2, 2, 2, 2, 2, 2,
+/* D8-DF */ 2, 2, 2, 2, 2, 2, 2, 2,
+/* E0-E7 */ 3, 3, 3, 3, 3, 3, 3, 3,
+/* E8-EF */ 3, 3, 3, 3, 3, 3, 3, 3,
+/* F0-F7 */ 4, 4, 4, 4, 4, 4, 4, 4,
+/* F8-FF */ 5, 5, 5, 5, 6, 6, -1, -1
+};
+
+
+
+void
+chknull(void * p)
+
+{
+ if (p)
+ return;
+
+ fprintf(stderr, "Not enough memory\n");
+ exit(1);
+}
+
+
+void
+makecode(char * buf, unsigned int ccsid)
+
+{
+ ccsid &= 0xFFFF;
+ memset(buf, 0, 32);
+ sprintf(buf, "IBMCCSID%05u0000000", ccsid);
+}
+
+
+iconv_t
+iconv_open_ccsid(unsigned int ccsidout,
+ unsigned int ccsidin, unsigned int nullflag)
+
+{
+ char fromcode[33];
+ char tocode[33];
+
+ makecode(fromcode, ccsidin);
+ makecode(tocode, ccsidout);
+ memset(tocode + 13, 0, sizeof tocode - 13);
+
+ if (nullflag)
+ fromcode[18] = '1';
+
+ return iconv_open(tocode, fromcode);
+}
+
+
+unsigned int
+getnum(char * * cpp)
+
+{
+ unsigned int n;
+ char * cp;
+
+ cp = *cpp;
+ n = 0;
+
+ while (isdigit(*cp))
+ n = 10 * n + *cp++ - '0';
+
+ *cpp = cp;
+ return n;
+}
+
+
+const utf8char *
+hashBinaryKey(const byte * bytes, unsigned int len)
+
+{
+ const byte * bp;
+ utf8char * key;
+ utf8char * cp;
+ unsigned int n;
+ unsigned int n4;
+ unsigned int i;
+
+ /**
+ *** Encode binary data in character form to be used as hash
+ *** table key.
+ **/
+
+ n = (4 * len + 2) / 3;
+ key = (utf8char *) malloc(n + 1);
+ chknull(key);
+ bp = bytes;
+ cp = key;
+
+ for (n4 = n >> 2; n4; n4--) {
+ i = (bp[0] << 16) | (bp[1] << 8) | bp[2];
+ *cp++ = 0x21 + ((i >> 18) & 0x3F);
+ *cp++ = 0x21 + ((i >> 12) & 0x3F);
+ *cp++ = 0x21 + ((i >> 6) & 0x3F);
+ *cp++ = 0x21 + (i & 0x3F);
+ bp += 3;
+ }
+
+ switch (n & 0x3) {
+
+ case 2:
+ *cp++ = 0x21 + ((*bp >> 2) & 0x3F);
+ *cp++ = 0x21 + ((*bp << 4) & 0x3F);
+ break;
+
+ case 3:
+ i = (bp[0] << 8) | bp[1];
+ *cp++ = 0x21 + ((i >> 10) & 0x3F);
+ *cp++ = 0x21 + ((i >> 4) & 0x3F);
+ *cp++ = 0x21 + ((i << 2) & 0x3F);
+ break;
+ }
+
+ *cp = '\0';
+ return key;
+}
+
+
+void *
+hash_get(xmlHashTablePtr h, const void * binkey, unsigned int len)
+
+{
+ const utf8char * key;
+ void * result;
+
+ key = hashBinaryKey((const byte *) binkey, len);
+ result = xmlHashLookup(h, key);
+ free((char *) key);
+ return result;
+}
+
+
+int
+hash_add(xmlHashTablePtr h, const void * binkey, unsigned int len, void * data)
+
+{
+ const utf8char * key;
+ int result;
+
+ key = hashBinaryKey((const byte *) binkey, len);
+ result = xmlHashAddEntry(h, key, data);
+ free((char *) key);
+ return result;
+}
+
+
+xmlDocPtr
+loadXMLFile(const char * filename)
+
+{
+ struct stat sbuf;
+ byte * databuf;
+ int fd;
+ int i;
+ xmlDocPtr doc;
+
+ if (stat(filename, &sbuf))
+ return (xmlDocPtr) NULL;
+
+ databuf = malloc(sbuf.st_size + 4);
+
+ if (!databuf)
+ return (xmlDocPtr) NULL;
+
+ fd = open(filename, O_RDONLY
+#ifdef O_BINARY
+ | O_BINARY
+#endif
+ );
+
+ if (fd < 0) {
+ free((char *) databuf);
+ return (xmlDocPtr) NULL;
+ }
+
+ i = read(fd, (char *) databuf, sbuf.st_size);
+ close(fd);
+
+ if (i != sbuf.st_size) {
+ free((char *) databuf);
+ return (xmlDocPtr) NULL;
+ }
+
+ databuf[i] = databuf[i + 1] = databuf[i + 2] = databuf[i + 3] = 0;
+ doc = xmlParseMemory((xmlChar *) databuf, i);
+ free((char *) databuf);
+ return doc;
+}
+
+
+int
+match(char * * cpp, char * s)
+
+{
+ char * cp;
+ int c1;
+ int c2;
+
+ cp = *cpp;
+
+ for (cp = *cpp; c2 = *s++; cp++) {
+ c1 = *cp;
+
+ if (c1 != c2) {
+ if (isupper(c1))
+ c1 = tolower(c1);
+
+ if (isupper(c2))
+ c2 = tolower(c2);
+ }
+
+ if (c1 != c2)
+ return 0;
+ }
+
+ c1 = *cp;
+
+ while (c1 == ' ' || c1 == '\t')
+ c1 = *++cp;
+
+ *cpp = cp;
+ return 1;
+}
+
+
+t_state *
+newstate(void)
+
+{
+ t_state * s;
+
+ s = (t_state *) malloc(sizeof *s);
+ chknull(s);
+ memset((char *) s, 0, sizeof *s);
+ return s;
+}
+
+
+void
+unlink_transition(t_transition * t)
+
+{
+ if (t->t_backnext)
+ t->t_backnext->t_backprev = t->t_backprev;
+
+ if (t->t_backprev)
+ t->t_backprev->t_backnext = t->t_backnext;
+ else if (t->t_to)
+ t->t_to->s_backward = t->t_backnext;
+
+ if (t->t_forwnext)
+ t->t_forwnext->t_forwprev = t->t_forwprev;
+
+ if (t->t_forwprev)
+ t->t_forwprev->t_forwnext = t->t_forwnext;
+ else if (t->t_from)
+ t->t_from->s_forward = t->t_forwnext;
+
+ t->t_backprev = (t_transition *) NULL;
+ t->t_backnext = (t_transition *) NULL;
+ t->t_forwprev = (t_transition *) NULL;
+ t->t_forwnext = (t_transition *) NULL;
+ t->t_from = (t_state *) NULL;
+ t->t_to = (t_state *) NULL;
+}
+
+
+void
+link_transition(t_transition * t, t_state * from, t_state * to)
+
+{
+ if (!from)
+ from = t->t_from;
+
+ if (!to)
+ to = t->t_to;
+
+ unlink_transition(t);
+
+ if ((t->t_from = from)) {
+ if ((t->t_forwnext = from->s_forward))
+ t->t_forwnext->t_forwprev = t;
+
+ from->s_forward = t;
+ }
+
+ if ((t->t_to = to)) {
+ if ((t->t_backnext = to->s_backward))
+ t->t_backnext->t_backprev = t;
+
+ to->s_backward = t;
+ }
+}
+
+
+t_transition *
+newtransition(unsigned int token, t_state * from, t_state * to)
+
+{
+ t_transition * t;
+
+ t = (t_transition *) malloc(sizeof *t);
+ chknull(t);
+ memset((char *) t, 0, sizeof *t);
+ t->t_token = token;
+ link_transition(t, from, to);
+ return t;
+}
+
+
+t_transition *
+uniquetransition(unsigned int token, t_state * from, t_state * to)
+
+{
+ t_transition * t;
+
+ for (t = from->s_forward; t; t = t->t_forwnext)
+ if (t->t_token == token && (t->t_to == to || !to))
+ return t;
+
+ return to? newtransition(token, from, to): (t_transition *) NULL;
+}
+
+
+int
+set_position(t_powerset * s, void * e)
+
+{
+ unsigned int l;
+ unsigned int h;
+ unsigned int m;
+ int i;
+
+ l = 0;
+ h = s->p_card;
+
+ while (l < h) {
+ m = (l + h) >> 1;
+
+ /**
+ *** If both pointers belong to different allocation arenas,
+ *** native comparison may find them neither
+ *** equal, nor greater, nor smaller.
+ *** We thus compare using memcmp() to get an orthogonal
+ *** result.
+ **/
+
+ i = memcmp(&e, s->p_set + m, sizeof e);
+
+ if (i < 0)
+ h = m;
+ else if (!i)
+ return m;
+ else
+ l = m + 1;
+ }
+
+ return l;
+}
+
+
+t_powerset *
+set_include(t_powerset * s, void * e)
+
+{
+ unsigned int pos;
+ unsigned int n;
+
+ if (!s) {
+ s = (t_powerset *) malloc(sizeof *s +
+ GRANULE * sizeof s->p_set);
+ chknull(s);
+ s->p_size = GRANULE;
+ s->p_set[GRANULE] = (t_state *) NULL;
+ s->p_set[0] = e;
+ s->p_card = 1;
+ return s;
+ }
+
+ pos = set_position(s, e);
+
+ if (pos < s->p_card && s->p_set[pos] == e)
+ return s;
+
+ if (s->p_card >= s->p_size) {
+ s->p_size += GRANULE;
+ s = (t_powerset *) realloc(s,
+ sizeof *s + s->p_size * sizeof s->p_set);
+ chknull(s);
+ s->p_set[s->p_size] = (t_state *) NULL;
+ }
+
+ n = s->p_card - pos;
+
+ if (n)
+ memmove((char *) (s->p_set + pos + 1),
+ (char *) (s->p_set + pos), n * sizeof s->p_set[0]);
+
+ s->p_set[pos] = e;
+ s->p_card++;
+ return s;
+}
+
+
+t_state *
+nfatransition(t_state * to, byte token)
+
+{
+ t_state * from;
+
+ from = newstate();
+ newtransition(token, from, to);
+ return from;
+}
+
+
+static t_state * nfadevelop(t_state * from, t_state * final, iconv_t icc,
+ const utf8char * name, unsigned int len);
+
+
+void
+nfaslice(t_state * * from, t_state * * to, iconv_t icc,
+ const utf8char * chr, unsigned int chlen,
+ const utf8char * name, unsigned int len, t_state * final)
+
+{
+ char * srcp;
+ char * dstp;
+ size_t srcc;
+ size_t dstc;
+ unsigned int cnt;
+ t_state * f;
+ t_state * t;
+ t_transition * tp;
+ byte bytebuf[8];
+
+ srcp = (char *) chr;
+ srcc = chlen;
+ dstp = (char *) bytebuf;
+ dstc = sizeof bytebuf;
+ iconv(icc, &srcp, &srcc, &dstp, &dstc);
+ dstp = (char *) bytebuf;
+ cnt = sizeof bytebuf - dstc;
+ t = *to;
+ f = *from;
+
+ /**
+ *** Check for end of string.
+ **/
+
+ if (!len)
+ if (t && t != final)
+ uniquetransition(EPSILON, t, final);
+ else
+ t = final;
+
+ if (f)
+ while (cnt) {
+ tp = uniquetransition(*dstp, f, (t_state *) NULL);
+
+ if (!tp)
+ break;
+
+ f = tp->t_to;
+ dstp++;
+ cnt--;
+ }
+
+ if (!cnt) {
+ if (!t)
+ t = nfadevelop(f, final, icc, name, len);
+
+ *to = t;
+ return;
+ }
+
+ if (!t) {
+ t = nfadevelop((t_state *) NULL, final, icc, name, len);
+ *to = t;
+ }
+
+ if (!f)
+ *from = f = newstate();
+
+ while (cnt > 1)
+ t = nfatransition(t, dstp[--cnt]);
+
+ newtransition(*dstp, f, t);
+}
+
+
+t_state *
+nfadevelop(t_state * from, t_state * final, iconv_t icc,
+ const utf8char * name, unsigned int len)
+
+{
+ int chlen;
+ int i;
+ t_state * to;
+ int uccnt;
+ int lccnt;
+ utf8char chr;
+
+ chlen = utf8_chlen[*name];
+
+ for (i = 1; i < chlen; i++)
+ if ((name[i] & 0xC0) != 0x80)
+ break;
+
+ if (i != chlen) {
+ fprintf(stderr,
+ "Invalid UTF8 character in character set name\n");
+ return (t_state *) NULL;
+ }
+
+ to = (t_state *) NULL;
+ nfaslice(&from, &to,
+ icc, name, chlen, name + chlen, len - chlen, final);
+
+ if (*name >= UTF8_a && *name <= UTF8_z)
+ chr = *name - UTF8_a + UTF8_A;
+ else if (*name >= UTF8_A && *name <= UTF8_Z)
+ chr = *name - UTF8_A + UTF8_a;
+ else
+ return from;
+
+ nfaslice(&from, &to, icc, &chr, 1, name + chlen, len - chlen, final);
+ return from;
+}
+
+
+
+void
+nfaenter(const utf8char * name, int len, t_chset * charset)
+
+{
+ t_chset * s;
+ t_state * final;
+ t_state * sp;
+ t_symlist * lp;
+
+ /**
+ *** Enter case-insensitive `name' in NFA in all known
+ *** character codes.
+ *** Redundant shift state changes as well as shift state
+ *** differences between uppercase and lowercase are
+ *** not handled.
+ **/
+
+ if (len < 0)
+ len = strlen(name) + 1;
+
+ for (lp = charset->c_names; lp; lp = lp->l_next)
+ if (!memcmp(name, lp->l_symbol, len))
+ return; /* Already entered. */
+
+ lp = (t_symlist *) malloc(sizeof *lp + len);
+ chknull(lp);
+ memcpy(lp->l_symbol, name, len);
+ lp->l_symbol[len] = '\0';
+ lp->l_next = charset->c_names;
+ charset->c_names = lp;
+ final = newstate();
+ final->s_final = charset;
+
+ for (s = chset_list; s; s = s->c_next)
+ if (!iconv_open_error(s->c_fromUTF8))
+ sp = nfadevelop(initial_state, final,
+ s->c_fromUTF8, name, len);
+}
+
+
+unsigned int
+utf8_utostr(utf8char * s, unsigned int v)
+
+{
+ unsigned int d;
+ unsigned int i;
+
+ d = v / 10;
+ v -= d * 10;
+ i = d? utf8_utostr(s, d): 0;
+ s[i++] = v + UTF8_0;
+ s[i] = '\0';
+ return i;
+}
+
+
+unsigned int
+utf8_utostrpad(utf8char * s, unsigned int v, int digits)
+
+{
+ unsigned int i = utf8_utostr(s, v);
+ utf8char pad = UTF8_SPACE;
+
+ if (digits < 0) {
+ pad = UTF8_0;
+ digits = -digits;
+ }
+
+ if (i >= digits)
+ return i;
+
+ memmove(s + digits - i, s, i + 1);
+ memset(s, pad, digits - i);
+ return digits;
+}
+
+
+unsigned int
+utf8_strtou(const utf8char * s)
+
+{
+ unsigned int v;
+
+ while (*s == UTF8_SPACE || *s == UTF8_HT)
+ s++;
+
+ for (v = 0; *s >= UTF8_0 && *s <= UTF8_9;)
+ v = 10 * v + *s++ - UTF8_0;
+
+ return v;
+}
+
+
+unsigned int
+getNumAttr(xmlNodePtr node, const xmlChar * name)
+
+{
+ const xmlChar * s;
+ unsigned int val;
+
+ s = xmlGetProp(node, name);
+
+ if (!s)
+ return 0;
+
+ val = utf8_strtou(s);
+ xmlFree((xmlChar *) s);
+ return val;
+}
+
+
+void
+read_assocs(const char * filename)
+
+{
+ xmlDocPtr doc;
+ xmlXPathContextPtr ctxt;
+ xmlXPathObjectPtr obj;
+ xmlNodePtr node;
+ t_chset * sp;
+ int i;
+ unsigned int ccsid;
+ unsigned int mibenum;
+ utf8char symbuf[32];
+
+ doc = loadXMLFile(filename);
+
+ if (!doc) {
+ fprintf(stderr, "Cannot load file %s\n", filename);
+ exit(1);
+ }
+
+ ctxt = xmlXPathNewContext(doc);
+ obj = xmlXPathEval(utf8_assocnodes, ctxt);
+
+ if (!obj || obj->type != XPATH_NODESET || !obj->nodesetval ||
+ !obj->nodesetval->nodeTab || !obj->nodesetval->nodeNr) {
+ fprintf(stderr, "No association found in %s\n", filename);
+ exit(1);
+ }
+
+ for (i = 0; i < obj->nodesetval->nodeNr; i++) {
+ node = obj->nodesetval->nodeTab[i];
+ ccsid = getNumAttr(node, utf8_ccsid);
+ mibenum = getNumAttr(node, utf8_mibenum);
+
+ /**
+ *** Check for duplicate.
+ **/
+
+ for (sp = chset_list; sp; sp = sp->c_next)
+ if (ccsid && ccsid == sp->c_ccsid ||
+ mibenum && mibenum == sp->c_mibenum) {
+ fprintf(stderr, "Duplicate character set: ");
+ fprintf(stderr, "CCSID = %u/%u, ",
+ ccsid, sp->c_ccsid);
+ fprintf(stderr, "MIBenum = %u/%u\n",
+ mibenum, sp->c_mibenum);
+ break;
+ }
+
+ if (sp)
+ continue;
+
+ /**
+ *** Allocate the new character set.
+ **/
+
+ sp = (t_chset *) malloc(sizeof *sp);
+ chknull(sp);
+ memset(sp, 0, sizeof *sp);
+
+ if (!ccsid) /* Do not attempt with current job CCSID. */
+ set_iconv_open_error(sp->c_fromUTF8);
+ else {
+ sp->c_fromUTF8 =
+ iconv_open_ccsid(ccsid, C_UTF8_CCSID, 0);
+
+ if (iconv_open_error(sp->c_fromUTF8) == -1)
+ fprintf(stderr,
+ "Cannot convert into CCSID %u: ignored\n",
+ ccsid);
+ }
+
+ sp->c_ccsid = ccsid;
+ sp->c_mibenum = mibenum;
+ sp->c_next = chset_list;
+ chset_list = sp;
+ }
+
+ xmlXPathFreeObject(obj);
+
+ /**
+ *** Enter aliases.
+ **/
+
+ for (sp = chset_list; sp; sp = sp->c_next) {
+ strcpy(symbuf, utf8_ibm_);
+ utf8_utostr(symbuf + 4, sp->c_ccsid);
+ nfaenter(symbuf, -1, sp);
+ strcpy(symbuf, utf8_IBMCCSID);
+ utf8_utostrpad(symbuf + 8, sp->c_ccsid, -5);
+ nfaenter(symbuf, 13, sp); /* Not null-terminated. */
+
+ if (sp->c_mibenum) {
+ strcpy(symbuf, utf8_iana_);
+ utf8_utostr(symbuf + 5, sp->c_mibenum);
+ nfaenter(symbuf, -1, sp);
+ }
+
+ xmlXPathRegisterVariable(ctxt, utf8_C,
+ xmlXPathNewFloat((double) sp->c_ccsid));
+ obj = xmlXPathEval(utf8_aliastext, ctxt);
+
+ if (!obj || obj->type != XPATH_NODESET) {
+ fprintf(stderr, "getAlias failed in %s\n", filename);
+ exit(1);
+ }
+
+ if (obj->nodesetval &&
+ obj->nodesetval->nodeTab && obj->nodesetval->nodeNr) {
+ for (i = 0; i < obj->nodesetval->nodeNr; i++) {
+ node = obj->nodesetval->nodeTab[i];
+ nfaenter(node->content, -1, sp);
+ }
+ }
+
+ xmlXPathFreeObject(obj);
+ }
+
+ xmlXPathFreeContext(ctxt);
+ xmlFreeDoc(doc);
+}
+
+
+unsigned int
+columnPosition(xmlXPathContextPtr ctxt, const xmlChar * header)
+
+{
+ xmlXPathObjectPtr obj;
+ unsigned int res = 0;
+
+ xmlXPathRegisterVariable(ctxt, utf8_T, xmlXPathNewString(header));
+ obj = xmlXPathEval(utf8_headerpos, ctxt);
+
+ if (obj) {
+ if (obj->type == XPATH_NUMBER)
+ res = (unsigned int) obj->floatval;
+
+ xmlXPathFreeObject(obj);
+ }
+
+ return res;
+}
+
+
+void
+read_iana(const char * filename)
+
+{
+ xmlDocPtr doc;
+ xmlXPathContextPtr ctxt;
+ xmlXPathObjectPtr obj1;
+ xmlXPathObjectPtr obj2;
+ xmlNodePtr node;
+ int prefnamecol;
+ int namecol;
+ int mibenumcol;
+ int aliascol;
+ int mibenum;
+ t_chset * sp;
+ int n;
+ int i;
+
+ doc = loadXMLFile(filename);
+
+ if (!doc) {
+ fprintf(stderr, "Cannot load file %s\n", filename);
+ exit(1);
+ }
+
+ ctxt = xmlXPathNewContext(doc);
+
+#ifndef OLDXML
+ xmlXPathRegisterNs(ctxt, utf8_html, utf8_htmluri);
+#endif
+
+ obj1 = xmlXPathEval(utf8_tablerows, ctxt);
+
+ if (!obj1 || obj1->type != XPATH_NODESET || !obj1->nodesetval ||
+ !obj1->nodesetval->nodeTab || obj1->nodesetval->nodeNr <= 1) {
+ fprintf(stderr, "No data in %s\n", filename);
+ exit(1);
+ }
+
+ /**
+ *** Identify columns.
+ **/
+
+ xmlXPathSetContextNode(obj1->nodesetval->nodeTab[0], ctxt);
+ prefnamecol = columnPosition(ctxt, utf8_Pref_MIME_Name);
+ namecol = columnPosition(ctxt, utf8_Name);
+ mibenumcol = columnPosition(ctxt, utf8_MIBenum);
+ aliascol = columnPosition(ctxt, utf8_Aliases);
+
+ if (!prefnamecol || !namecol || !mibenumcol || !aliascol) {
+ fprintf(stderr, "Key column(s) missing in %s\n", filename);
+ exit(1);
+ }
+
+ xmlXPathRegisterVariable(ctxt, utf8_P,
+ xmlXPathNewFloat((double) prefnamecol));
+ xmlXPathRegisterVariable(ctxt, utf8_N,
+ xmlXPathNewFloat((double) namecol));
+ xmlXPathRegisterVariable(ctxt, utf8_M,
+ xmlXPathNewFloat((double) mibenumcol));
+ xmlXPathRegisterVariable(ctxt, utf8_A,
+ xmlXPathNewFloat((double) aliascol));
+
+ /**
+ *** Process each row.
+ **/
+
+ for (n = 1; n < obj1->nodesetval->nodeNr; n++) {
+ xmlXPathSetContextNode(obj1->nodesetval->nodeTab[n], ctxt);
+
+ /**
+ *** Get the MIBenum from current row.
+ */
+
+ obj2 = xmlXPathEval(utf8_getmibenum, ctxt);
+
+ if (!obj2 || obj2->type != XPATH_NUMBER) {
+ fprintf(stderr, "get MIBenum failed at row %u\n", n);
+ exit(1);
+ }
+
+ if (xmlXPathIsNaN(obj2->floatval) ||
+ obj2->floatval < 1.0 || obj2->floatval > 65535.0 ||
+ ((unsigned int) obj2->floatval) != obj2->floatval) {
+ fprintf(stderr, "invalid MIBenum at row %u\n", n);
+ xmlXPathFreeObject(obj2);
+ continue;
+ }
+
+ mibenum = obj2->floatval;
+ xmlXPathFreeObject(obj2);
+
+ /**
+ *** Search the associations for a corresponding CCSID.
+ **/
+
+ for (sp = chset_list; sp; sp = sp->c_next)
+ if (sp->c_mibenum == mibenum)
+ break;
+
+ if (!sp)
+ continue; /* No CCSID for this MIBenum. */
+
+ /**
+ *** Process preferred MIME name.
+ **/
+
+ obj2 = xmlXPathEval(utf8_getprefname, ctxt);
+
+ if (!obj2 || obj2->type != XPATH_STRING) {
+ fprintf(stderr,
+ "get Preferred_MIME_Name failed at row %u\n", n);
+ exit(1);
+ }
+
+ if (obj2->stringval && obj2->stringval[0])
+ nfaenter(obj2->stringval, -1, sp);
+
+ xmlXPathFreeObject(obj2);
+
+ /**
+ *** Process name.
+ **/
+
+ obj2 = xmlXPathEval(utf8_getname, ctxt);
+
+ if (!obj2 || obj2->type != XPATH_STRING) {
+ fprintf(stderr, "get name failed at row %u\n", n);
+ exit(1);
+ }
+
+ if (obj2->stringval && obj2->stringval[0])
+ nfaenter(obj2->stringval, -1, sp);
+
+ xmlXPathFreeObject(obj2);
+
+ /**
+ *** Process aliases.
+ **/
+
+ obj2 = xmlXPathEval(utf8_getaliases, ctxt);
+
+ if (!obj2 || obj2->type != XPATH_NODESET) {
+ fprintf(stderr, "get aliases failed at row %u\n", n);
+ exit(1);
+ }
+
+ if (obj2->nodesetval && obj2->nodesetval->nodeTab)
+ for (i = 0; i < obj2->nodesetval->nodeNr; i++) {
+ node = obj2->nodesetval->nodeTab[i];
+
+ if (node && node->content && node->content[0])
+ nfaenter(node->content, -1, sp);
+ }
+
+ xmlXPathFreeObject(obj2);
+ }
+
+ xmlXPathFreeObject(obj1);
+ xmlXPathFreeContext(ctxt);
+ xmlFreeDoc(doc);
+}
+
+
+t_powerset * closureset(t_powerset * dst, t_powerset * src);
+
+
+t_powerset *
+closure(t_powerset * dst, t_state * src)
+
+{
+ t_transition * t;
+ unsigned int oldcard;
+
+ if (src->s_nfastates) {
+ /**
+ *** Is a DFA state: return closure of set of equivalent
+ *** NFA states.
+ **/
+
+ return closureset(dst, src->s_nfastates);
+ }
+
+ /**
+ *** Compute closure of NFA state.
+ **/
+
+ dst = set_include(dst, src);
+
+ for (t = src->s_forward; t; t = t->t_forwnext)
+ if (t->t_token == EPSILON) {
+ oldcard = dst->p_card;
+ dst = set_include(dst, t->t_to);
+
+ if (oldcard != dst->p_card)
+ dst = closure(dst, t->t_to);
+ }
+
+ return dst;
+}
+
+
+t_powerset *
+closureset(t_powerset * dst, t_powerset * src)
+
+{
+ unsigned int i;
+
+ for (i = 0; i < src->p_card; i++)
+ dst = closure(dst, (t_state *) src->p_set[i]);
+
+ return dst;
+}
+
+
+t_state *
+get_dfa_state(t_state * * stack,
+ t_powerset * nfastates, xmlHashTablePtr sethash)
+
+{
+ t_state * s;
+
+ if (s = hash_get(sethash, nfastates->p_set,
+ nfastates->p_card * sizeof nfastates->p_set[0])) {
+ /**
+ *** DFA state already present.
+ *** Release the NFA state set and return
+ *** the address of the old DFA state.
+ **/
+
+ free((char *) nfastates);
+ return s;
+ }
+
+ /**
+ *** Build the new state.
+ **/
+
+ s = newstate();
+ s->s_nfastates = nfastates;
+ s->s_next = dfa_states;
+ dfa_states = s;
+ s->s_stack = *stack;
+ *stack = s;
+
+ /**
+ *** Enter it in hash.
+ **/
+
+ if (hash_add(sethash, nfastates->p_set,
+ nfastates->p_card * sizeof nfastates->p_set[0], s))
+ chknull(NULL); /* Memory allocation error. */
+
+ return s;
+}
+
+
+int
+transcmp(const void * p1, const void * p2)
+
+{
+ t_transition * t1;
+ t_transition * t2;
+
+ t1 = *(t_transition * *) p1;
+ t2 = *(t_transition * *) p2;
+ return ((int) t1->t_token) - ((int) t2->t_token);
+}
+
+
+void
+builddfa(void)
+
+{
+ t_powerset * transset;
+ t_powerset * stateset;
+ t_state * s;
+ t_state * s2;
+ unsigned int n;
+ unsigned int i;
+ unsigned int token;
+ t_transition * t;
+ t_state * stack;
+ xmlHashTablePtr sethash;
+ unsigned int nst;
+
+ transset = set_include(NULL, NULL);
+ chknull(transset);
+ stateset = set_include(NULL, NULL);
+ chknull(stateset);
+ sethash = xmlHashCreate(1);
+ chknull(sethash);
+ dfa_states = (t_state *) NULL;
+ stack = (t_state *) NULL;
+ nst = 0;
+
+ /**
+ *** Build the DFA initial state.
+ **/
+
+ get_dfa_state(&stack, closure(NULL, initial_state), sethash);
+
+ /**
+ *** Build the other DFA states by looking at each
+ *** possible transition from stacked DFA states.
+ **/
+
+ do {
+ if (!(++nst % 100))
+ fprintf(stderr, "%u DFA states\n", nst);
+
+ s = stack;
+ stack = s->s_stack;
+ s->s_stack = (t_state *) NULL;
+
+ /**
+ *** Build a set of all non-epsilon transitions from this
+ *** state.
+ **/
+
+ transset->p_card = 0;
+
+ for (n = 0; n < s->s_nfastates->p_card; n++) {
+ s2 = s->s_nfastates->p_set[n];
+
+ for (t = s2->s_forward; t; t = t->t_forwnext)
+ if (t->t_token != EPSILON) {
+ transset = set_include(transset, t);
+ chknull(transset);
+ }
+ }
+
+ /**
+ *** Sort transitions by token.
+ **/
+
+ qsort(transset->p_set, transset->p_card,
+ sizeof transset->p_set[0], transcmp);
+
+ /**
+ *** Process all transitions, grouping them by token.
+ **/
+
+ stateset->p_card = 0;
+ token = EPSILON;
+
+ for (i = 0; i < transset->p_card; i++) {
+ t = transset->p_set[i];
+
+ if (token != t->t_token) {
+ if (stateset->p_card) {
+ /**
+ *** Get the equivalent DFA state
+ *** and create transition.
+ **/
+
+ newtransition(token, s,
+ get_dfa_state(&stack,
+ closureset(NULL, stateset),
+ sethash));
+ stateset->p_card = 0;
+ }
+
+ token = t->t_token;
+ }
+
+ stateset = set_include(stateset, t->t_to);
+ }
+
+ if (stateset->p_card)
+ newtransition(token, s, get_dfa_state(&stack,
+ closureset(NULL, stateset), sethash));
+ } while (stack);
+
+ free((char *) transset);
+ free((char *) stateset);
+ xmlHashFree(sethash, NULL);
+
+ /**
+ *** Reverse the state list to get the initial state first,
+ *** check for ambiguous prefixes, determine final states,
+ *** destroy NFA state sets.
+ **/
+
+ while (s = dfa_states) {
+ dfa_states = s->s_next;
+ s->s_next = stack;
+ stack = s;
+ stateset = s->s_nfastates;
+ s->s_nfastates = (t_powerset *) NULL;
+
+ for (n = 0; n < stateset->p_card; n++) {
+ s2 = (t_state *) stateset->p_set[n];
+
+ if (s2->s_final) {
+ if (s->s_final && s->s_final != s2->s_final)
+ fprintf(stderr,
+ "Ambiguous name for CCSIDs %u/%u\n",
+ s->s_final->c_ccsid,
+ s2->s_final->c_ccsid);
+
+ s->s_final = s2->s_final;
+ }
+ }
+
+ free((char *) stateset);
+ }
+
+ dfa_states = stack;
+}
+
+
+void
+deletenfa(void)
+
+{
+ t_transition * t;
+ t_state * s;
+ t_state * u;
+ t_state * stack;
+
+ stack = initial_state;
+ stack->s_stack = (t_state *) NULL;
+
+ while ((s = stack)) {
+ stack = s->s_stack;
+
+ while ((t = s->s_forward)) {
+ u = t->t_to;
+ unlink_transition(t);
+ free((char *) t);
+
+ if (!u->s_backward) {
+ u->s_stack = stack;
+ stack = u;
+ }
+ }
+
+ free((char *) s);
+ }
+}
+
+
+t_stategroup *
+newgroup(void)
+
+{
+ t_stategroup * g;
+
+ g = (t_stategroup *) malloc(sizeof *g);
+ chknull(g);
+ memset((char *) g, 0, sizeof *g);
+ g->g_id = groupid++;
+ return g;
+}
+
+
+void
+optimizedfa(void)
+
+{
+ unsigned int i;
+ xmlHashTablePtr h;
+ t_state * s1;
+ t_state * s2;
+ t_state * finstates;
+ t_state * * sp;
+ t_stategroup * g1;
+ t_stategroup * g2;
+ t_stategroup * ghead;
+ t_transition * t1;
+ t_transition * t2;
+ unsigned int done;
+ unsigned int startgroup;
+ unsigned int gtrans[1 << (8 * sizeof(unsigned char))];
+
+ /**
+ *** Reduce DFA state count.
+ **/
+
+ groupid = 0;
+ ghead = (t_stategroup *) NULL;
+
+ /**
+ *** First split: non-final and each distinct final states.
+ **/
+
+ h = xmlHashCreate(4);
+ chknull(h);
+
+ for (s1 = dfa_states; s1; s1 = s1->s_next) {
+ if (!(g1 = hash_get(h, &s1->s_final, sizeof s1->s_final))) {
+ g1 = newgroup();
+ g1->g_next = ghead;
+ ghead = g1;
+
+ if (hash_add(h, &s1->s_final, sizeof s1->s_final, g1))
+ chknull(NULL); /* Memory allocation error. */
+ }
+
+ s1->s_index = g1->g_id;
+ s1->s_stack = g1->g_member;
+ g1->g_member = s1;
+ }
+
+ xmlHashFree(h, NULL);
+
+ /**
+ *** Subsequent splits: states that have the same forward
+ *** transition tokens to states in the same group.
+ **/
+
+ do {
+ done = 1;
+
+ for (g2 = ghead; g2; g2 = g2->g_next) {
+ s1 = g2->g_member;
+
+ if (!s1->s_stack)
+ continue;
+
+ h = xmlHashCreate(1);
+ chknull(h);
+
+ /**
+ *** Build the group transition map.
+ **/
+
+ memset((char *) gtrans, ~0, sizeof gtrans);
+
+ for (t1 = s1->s_forward; t1; t1 = t1->t_forwnext)
+ gtrans[t1->t_token] = t1->t_to->s_index;
+
+ if (hash_add(h, gtrans, sizeof gtrans, g2))
+ chknull(NULL);
+
+ /**
+ *** Process other states in group.
+ **/
+
+ sp = &s1->s_stack;
+ s1 = *sp;
+
+ do {
+ *sp = s1->s_stack;
+
+ /**
+ *** Build the transition map.
+ **/
+
+ memset((char *) gtrans, ~0, sizeof gtrans);
+
+ for (t1 = s1->s_forward;
+ t1; t1 = t1->t_forwnext)
+ gtrans[t1->t_token] = t1->t_to->s_index;
+
+ g1 = hash_get(h, gtrans, sizeof gtrans);
+
+ if (g1 == g2) {
+ *sp = s1;
+ sp = &s1->s_stack;
+ }
+ else {
+ if (!g1) {
+ g1 = newgroup();
+ g1->g_next = ghead;
+ ghead = g1;
+
+ if (hash_add(h, gtrans,
+ sizeof gtrans, g1))
+ chknull(NULL);
+ }
+
+ s1->s_index = g1->g_id;
+ s1->s_stack = g1->g_member;
+ g1->g_member = s1;
+ done = 0;
+ }
+ } while (s1 = *sp);
+
+ xmlHashFree(h, NULL);
+ }
+ } while (!done);
+
+ /**
+ *** Establish group leaders and remap transitions.
+ **/
+
+ startgroup = dfa_states->s_index;
+
+ for (g1 = ghead; g1; g1 = g1->g_next)
+ for (s1 = g1->g_member->s_stack; s1; s1 = s1->s_stack)
+ for (t1 = s1->s_backward; t1; t1 = t2) {
+ t2 = t1->t_backnext;
+ link_transition(t1, NULL, g1->g_member);
+ }
+
+ /**
+ *** Remove redundant states and transitions.
+ **/
+
+ for (g1 = ghead; g1; g1 = g1->g_next) {
+ g1->g_member->s_next = (t_state *) NULL;
+
+ while ((s1 = g1->g_member->s_stack)) {
+ g1->g_member->s_stack = s1->s_stack;
+
+ for (t1 = s1->s_forward; t1; t1 = t2) {
+ t2 = t1->t_forwnext;
+ unlink_transition(t1);
+ free((char *) t1);
+ }
+
+ free((char *) s1);
+ }
+ }
+
+ /**
+ *** Remove group support and relink DFA states.
+ **/
+
+ dfa_states = (t_state *) NULL;
+ s2 = (t_state *) NULL;
+ finstates = (t_state *) NULL;
+
+ while (g1 = ghead) {
+ ghead = g1->g_next;
+ s1 = g1->g_member;
+
+ if (g1->g_id == startgroup)
+ dfa_states = s1; /* Keep start state first. */
+ else if (s1->s_final) { /* Then final states. */
+ s1->s_next = finstates;
+ finstates = s1;
+ }
+ else { /* Finish with non-final states. */
+ s1->s_next = s2;
+ s2 = s1;
+ }
+
+ free((char *) g1);
+ }
+
+ for (dfa_states->s_next = finstates; finstates->s_next;)
+ finstates = finstates->s_next;
+
+ finstates->s_next = s2;
+}
+
+
+const char *
+inttype(unsigned long max)
+
+{
+ int i;
+
+ for (i = 0; max; i++)
+ max >>= 1;
+
+ if (i > 8 * sizeof(unsigned int))
+ return "unsigned long";
+
+ if (i > 8 * sizeof(unsigned short))
+ return "unsigned int";
+
+ if (i > 8 * sizeof(unsigned char))
+ return "unsigned short";
+
+ return "unsigned char";
+}
+
+
+listids(FILE * fp)
+
+{
+ unsigned int pos;
+ t_chset * cp;
+ t_symlist * lp;
+ char * srcp;
+ char * dstp;
+ size_t srcc;
+ size_t dstc;
+ char buf[80];
+
+ fprintf(fp, "/**\n*** CCSID For arg Recognized name.\n");
+ pos = 0;
+
+ for (cp = chset_list; cp; cp = cp->c_next) {
+ if (pos) {
+ fprintf(fp, "\n");
+ pos = 0;
+ }
+
+ if (!cp->c_names)
+ continue;
+
+ pos = fprintf(fp, "*** %5u %c ", cp->c_ccsid,
+ iconv_open_error(cp->c_fromUTF8)? ' ': 'X');
+
+ for (lp = cp->c_names; lp; lp = lp->l_next) {
+ srcp = (char *) lp->l_symbol;
+ srcc = strlen(srcp);
+ dstp = buf;
+ dstc = sizeof buf;
+ iconv(utf82job, &srcp, &srcc, &dstp, &dstc);
+ srcc = dstp - buf;
+
+ if (pos + srcc > 79) {
+ fprintf(fp, "\n***%22c", ' ');
+ pos = 25;
+ }
+
+ pos += fprintf(fp, " %.*s", srcc, buf);
+ }
+ }
+
+ if (pos)
+ fprintf(fp, "\n");
+
+ fprintf(fp, "**/\n\n");
+}
+
+
+void
+generate(FILE * fp)
+
+{
+ unsigned int nstates;
+ unsigned int ntrans;
+ unsigned int maxfinal;
+ t_state * s;
+ t_transition * t;
+ unsigned int i;
+ unsigned int pos;
+ char * ns;
+
+ /**
+ *** Assign indexes to states and transitions.
+ **/
+
+ nstates = 0;
+ ntrans = 0;
+ maxfinal = 0;
+
+ for (s = dfa_states; s; s = s->s_next) {
+ s->s_index = nstates++;
+
+ if (s->s_final)
+ maxfinal = nstates;
+
+ for (t = s->s_forward; t; t = t->t_forwnext)
+ t->t_index = ntrans++;
+ }
+
+ fprintf(fp,
+ "/**\n*** %u states, %u finals, %u transitions.\n**/\n\n",
+ nstates, maxfinal, ntrans);
+ fprintf(stderr, "%u states, %u finals, %u transitions.\n",
+ nstates, maxfinal, ntrans);
+
+ /**
+ *** Generate types.
+ **/
+
+ fprintf(fp, "typedef unsigned short t_ccsid;\n");
+ fprintf(fp, "typedef %-23s t_staterange;\n", inttype(nstates));
+ fprintf(fp, "typedef %-23s t_transrange;\n\n", inttype(ntrans));
+
+ /**
+ *** Generate first transition index for each state.
+ **/
+
+ fprintf(fp, "static t_transrange trans_array[] = {\n");
+ pos = 0;
+ ntrans = 0;
+
+ for (s = dfa_states; s; s = s->s_next) {
+ pos += fprintf(fp, " %u,", ntrans);
+
+ if (pos > 72) {
+ fprintf(fp, "\n");
+ pos = 0;
+ }
+
+ for (t = s->s_forward; t; t = t->t_forwnext)
+ ntrans++;
+ }
+
+ fprintf(fp, " %u\n};\n\n", ntrans);
+
+ /**
+ *** Generate final state info.
+ **/
+
+ fprintf(fp, "static t_ccsid final_array[] = {\n");
+ pos = 0;
+ ns ="";
+ i = 0;
+
+ for (s = dfa_states; s && i++ < maxfinal; s = s->s_next) {
+ pos += fprintf(fp, "%s", ns);
+ ns = ",";
+
+ if (pos > 72) {
+ fprintf(fp, "\n");
+ pos = 0;
+ }
+
+ pos += fprintf(fp, " %u",
+ s->s_final? s->s_final->c_ccsid + 1: 0);
+ }
+
+ fprintf(fp, "\n};\n\n");
+
+ /**
+ *** Generate goto table.
+ **/
+
+ fprintf(fp, "static t_staterange goto_array[] = {\n");
+ pos = 0;
+
+ for (s = dfa_states; s; s = s->s_next)
+ for (t = s->s_forward; t; t = t->t_forwnext) {
+ pos += fprintf(fp, " %u,", t->t_to->s_index);
+
+ if (pos > 72) {
+ fprintf(fp, "\n");
+ pos = 0;
+ }
+ }
+
+ fprintf(fp, " %u\n};\n\n", nstates);
+
+ /**
+ *** Generate transition label table.
+ **/
+
+ fprintf(fp, "static unsigned char label_array[] = {\n");
+ pos = 0;
+ ns ="";
+
+ for (s = dfa_states; s; s = s->s_next)
+ for (t = s->s_forward; t; t = t->t_forwnext) {
+ pos += fprintf(fp, "%s", ns);
+ ns = ",";
+
+ if (pos > 72) {
+ fprintf(fp, "\n");
+ pos = 0;
+ }
+
+ pos += fprintf(fp, " 0x%02X", t->t_token);
+ }
+
+ fprintf(fp, "\n};\n", nstates);
+}
+
+
+main(argc, argv)
+int argc;
+char * * argv;
+
+{
+ FILE * fp;
+ t_chset * csp;
+ char symbuf[20];
+
+ chset_list = (t_chset *) NULL;
+ initial_state = newstate();
+ job2utf8 = iconv_open_ccsid(C_UTF8_CCSID, C_SOURCE_CCSID, 0);
+ utf82job = iconv_open_ccsid(C_SOURCE_CCSID, C_UTF8_CCSID, 0);
+
+ if (argc != 4) {
+ fprintf(stderr, "Usage: %s <ccsid-mibenum file> ", *argv);
+ fprintf(stderr, "<iana-character-set file> <output file>\n");
+ exit(1);
+ }
+
+ /**
+ *** Read CCSID/MIBenum associations. Define special names.
+ **/
+
+ read_assocs(argv[1]);
+
+ /**
+ *** Read character set names and establish the case-independent
+ *** name DFA in all possible CCSIDs.
+ **/
+
+ read_iana(argv[2]);
+
+ /**
+ *** Build DFA from NFA.
+ **/
+
+ builddfa();
+
+ /**
+ *** Delete NFA.
+ **/
+
+ deletenfa();
+
+ /**
+ *** Minimize the DFA state count.
+ **/
+
+ optimizedfa();
+
+ /**
+ *** Generate the table.
+ **/
+
+ fp = fopen(argv[3], "w+");
+
+ if (!fp) {
+ perror(argv[3]);
+ exit(1);
+ }
+
+ fprintf(fp, "/**\n");
+ fprintf(fp, "*** Character set names table.\n");
+ fprintf(fp, "*** Generated by program BLDCSNDFA from");
+ fprintf(fp, " IANA character set assignment file\n");
+ fprintf(fp, "*** and CCSID/MIBenum equivalence file.\n");
+ fprintf(fp, "*** *** Do not edit by hand ***\n");
+ fprintf(fp, "**/\n\n");
+ listids(fp);
+ generate(fp);
+
+ if (ferror(fp)) {
+ perror(argv[3]);
+ fclose(fp);
+ exit(1);
+ }
+
+ fclose(fp);
+ iconv_close(job2utf8);
+ iconv_close(utf82job);
+ exit(0);
+}
diff --git a/libxml2/os400/iconv/bldcsndfa/ccsid_mibenum.dtd b/libxml2/os400/iconv/bldcsndfa/ccsid_mibenum.dtd
new file mode 100644
index 0000000..0c834ec
--- /dev/null
+++ b/libxml2/os400/iconv/bldcsndfa/ccsid_mibenum.dtd
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+--- DTD for CCSID/MIBEnum association documents.
+---
+--- See Copyright for the status of this software.
+---
+--- Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A.
+-->
+<!ELEMENT ccsid_mibenum (assoc)*>
+<!ELEMENT assoc (alias)*>
+<!ATTLIST assoc
+ ccsid CDATA #IMPLIED
+ mibenum CDATA #IMPLIED
+>
+<!ELEMENT alias (#PCDATA)>
diff --git a/libxml2/os400/iconv/bldcsndfa/ccsid_mibenum.xml b/libxml2/os400/iconv/bldcsndfa/ccsid_mibenum.xml
new file mode 100644
index 0000000..8af38b4
--- /dev/null
+++ b/libxml2/os400/iconv/bldcsndfa/ccsid_mibenum.xml
@@ -0,0 +1,270 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE ccsid_mibenum SYSTEM "ccsid_mibenum.dtd">
+<!--
+--- CCSID/MIBEnum associations.
+---
+--- See Copyright for the status of this software.
+---
+--- Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A.
+-->
+<ccsid_mibenum>
+ <assoc ccsid="0"><!-- Curent job's CCSID. --></assoc>
+ <assoc ccsid="37" mibenum="2028"><!-- EBCDIC-US -->
+ <alias>EBCDIC</alias>
+ </assoc>
+ <assoc ccsid="256"><!-- Netherlands ? --></assoc>
+ <assoc ccsid="273" mibenum="2030"><!-- EBCDIC-DE --></assoc>
+ <assoc ccsid="277" mibenum="2033"><!-- EBCDIC-DK/NO --></assoc>
+ <assoc ccsid="278" mibenum="2034"><!-- EBCDIC-FI/SE --></assoc>
+ <assoc ccsid="280" mibenum="2035"><!-- EBCDIC-IT --></assoc>
+ <assoc ccsid="284" mibenum="2037"><!-- EBCDIC-ES --></assoc>
+ <assoc ccsid="285" mibenum="2038"><!-- EBCDIC-GB --></assoc>
+ <assoc ccsid="290" mibenum="2039"><!-- EBCDIC-JP-Kana --></assoc>
+ <assoc ccsid="297" mibenum="2040"><!-- EBCDIC-FR --></assoc>
+ <assoc ccsid="300"><!-- Japan English ? --></assoc>
+ <assoc ccsid="301"><!-- PC DATA Japanese --></assoc>
+ <assoc ccsid="367" mibenum="3"><!-- ANSI X3.4 ASCII -->
+ <alias>ASCII</alias>
+ </assoc>
+ <assoc ccsid="420" mibenum="2041"><!-- EBCDIC-Arab --></assoc>
+ <assoc ccsid="423" mibenum="2042"><!-- EBCDIC-GR --></assoc>
+ <assoc ccsid="424" mibenum="2043"><!-- EBCDIC-Hebrew --></assoc>
+ <assoc ccsid="437" mibenum="2011"><!-- 8-bit PC ASCII --></assoc>
+ <assoc ccsid="500" mibenum="2044"><!-- EBCDIC-BE/CH international latin 1 --></assoc>
+ <assoc ccsid="720"><!-- MSDOS Arabic ? --></assoc>
+ <assoc ccsid="737"><!-- MSDOS Greek PC DATA ? --></assoc>
+ <assoc ccsid="775" mibenum="2087"><!-- MSDOS Baltic PC DATA --></assoc>
+ <assoc ccsid="813" mibenum="10"><!-- ISO-8859-7 --></assoc>
+ <assoc ccsid="819" mibenum="4"><!-- ISO-8859-1 --></assoc>
+ <assoc ccsid="833"><!-- Korea (extended range) --></assoc>
+ <assoc ccsid="835"><!-- Korea host double byte --></assoc>
+ <assoc ccsid="836"><!-- Simplified chinese (extended range) --></assoc>
+ <assoc ccsid="837"><!-- Simplified chinese --></assoc>
+ <assoc ccsid="838" mibenum="2016"><!-- IBM-Thai --></assoc>
+ <assoc ccsid="850" mibenum="2009"><!-- PC DATA international latin 1 --></assoc>
+ <assoc ccsid="851" mibenum="2045"><!-- PC DATA greek --></assoc>
+ <assoc ccsid="852" mibenum="2010"><!-- PC DATA latin-2 multilingual --></assoc>
+ <assoc ccsid="855" mibenum="2046"><!-- PC DATA ROECE cyrillic --></assoc>
+ <assoc ccsid="857" mibenum="2047"><!-- PC DATA Turkey latin-5 --></assoc>
+ <assoc ccsid="858" mibenum="2089"><!-- PC-Multilingual-850+Euro --></assoc>
+ <assoc ccsid="860" mibenum="2048"><!-- PC DATA Portugal --></assoc>
+ <assoc ccsid="861" mibenum="2049"><!-- PC DATA Iceland --></assoc>
+ <assoc ccsid="862" mibenum="2013"><!-- PC DATA Hebrew --></assoc>
+ <assoc ccsid="863" mibenum="2050"><!-- PC DATA Canada --></assoc>
+ <assoc ccsid="864" mibenum="2051"><!-- PC DATA Arabic --></assoc>
+ <assoc ccsid="865" mibenum="2052"><!-- PC DATA DK/NO --></assoc>
+ <assoc ccsid="866" mibenum="2086"><!-- PC DATA cyrillic 2 --></assoc>
+ <assoc ccsid="868" mibenum="2053"><!-- PC DATA Urdu --></assoc>
+ <assoc ccsid="869" mibenum="2054"><!-- PC DATA greek (2?) --></assoc>
+ <assoc ccsid="870" mibenum="2055"><!-- EBCDIC-Latin2-Multilingual --></assoc>
+ <assoc ccsid="871" mibenum="2056"><!-- EBCDIC-IS --></assoc>
+ <assoc ccsid="874" mibenum="2259"><!-- TIS-620 -->
+ <alias>EUC-TH></alias>
+ <alias>eucTH</alias>
+ <alias>csEUCTH</alias>
+ </assoc>
+ <assoc ccsid="875"><!-- Greece --></assoc>
+ <assoc ccsid="878" mibenum="2084"><!-- KOI8-R --></assoc>
+ <assoc ccsid="880" mibenum="2057"><!-- EBCDIC-Cyrillic --></assoc>
+ <assoc ccsid="891" mibenum="2058"><!-- PC DATA corean (non-extended) --></assoc>
+ <assoc ccsid="896"><!-- Japan 7-bit Katakana --></assoc>
+ <assoc ccsid="897" mibenum="15"><!-- JIS_X0201 --></assoc>
+ <assoc ccsid="903" mibenum="2059"><!-- PC DATA simplified chinese (non-extended) --></assoc>
+ <assoc ccsid="904" mibenum="2060"><!-- PC DATA traditional chinese --></assoc>
+ <assoc ccsid="905" mibenum="2061"><!-- EBCDIC-TR latin 3 --></assoc>
+ <assoc ccsid="912" mibenum="5"><!-- ISO-8859-2 --></assoc>
+ <assoc ccsid="913" mibenum="6"><!-- ISO-8859-3 --></assoc>
+ <assoc ccsid="914" mibenum="7"><!-- ISO-8859-4 --></assoc>
+ <assoc ccsid="915" mibenum="8"><!-- ISO-8859-5 --></assoc>
+ <assoc ccsid="916" mibenum="11"><!-- ISO-8859-8 --></assoc>
+ <assoc ccsid="918" mibenum="2062"><!-- IBM918 --></assoc>
+ <assoc ccsid="920" mibenum="12"><!-- ISO-8859-9 --></assoc>
+ <assoc ccsid="921" mibenum="109"><!-- ISO-8859-13 --></assoc>
+ <assoc ccsid="922"><!-- Estonia, 8-bit --></assoc>
+ <assoc ccsid="923" mibenum="111"><!-- ISO-8859-15 --></assoc>
+ <assoc ccsid="924" mibenum="2090"><!-- EBCDIC-Latin9+Euro --></assoc>
+ <assoc ccsid="926"><!-- Korean PC DATA DBCS, UDC 1880 --></assoc>
+ <assoc ccsid="927"><!-- Traditional chinese PC DATA DBCS, UDC 6204 --></assoc>
+ <assoc ccsid="928"><!-- Simplified chinese PC DATA DBCS, UDC 1880 --></assoc>
+ <assoc ccsid="930"><!-- Japan Katakana (extended range) 4370 UDC (User Defined Characters) --></assoc>
+ <assoc ccsid="932"><!-- Japan PC DATA Mixed --></assoc>
+ <assoc ccsid="933"><!-- Korea (extended range), 1880 UDC --></assoc>
+ <assoc ccsid="934"><!-- Korean PC DATA --></assoc>
+ <assoc ccsid="935"><!-- Simplified Chinese (extended range) --></assoc>
+ <assoc ccsid="936"><!-- Simplified Chinese (non-extended) --></assoc>
+ <assoc ccsid="937"><!-- Traditional Chinese (extended range) --></assoc>
+ <assoc ccsid="938"><!-- Traditional Chinese (non-extended) --></assoc>
+ <assoc ccsid="939"><!-- Japan English (extended range) 4370 UDC --></assoc>
+ <assoc ccsid="942"><!-- Japanese PC DATA Mixed --></assoc>
+ <assoc ccsid="943" mibenum="17"><!-- Shift_JIS --></assoc>
+ <assoc ccsid="944"><!-- Korean PC DATA Mixed --></assoc>
+ <assoc ccsid="946"><!-- Simplified Chinese PC DATA Mixed --></assoc>
+ <assoc ccsid="947"><!-- Traditional Chinese PC DATA Mixed 6204 UDC (User Defined Characters) --></assoc>
+ <assoc ccsid="949"><!-- Republic of Korea National Standard Graphic Character Set (KS). PC DATA mixed-byte including 1800 UDC --></assoc>
+ <assoc ccsid="950"><!-- Traditional Chinese PC DATA Mixed for Big5 --></assoc>
+ <assoc ccsid="951"><!-- Republic of Korea National Standard Graphic Character Set (KS). PC DATA double-byte including 1800 UDC --></assoc>
+ <assoc ccsid="956"><!-- JIS X201 Roman for CP 00895; JIS X208-1983 for CP 00952 --></assoc>
+ <assoc ccsid="957"><!-- JIS X201 Roman for CP 00895; JIS X208-1978 for CP 00955 --></assoc>
+ <assoc ccsid="958"><!-- ASCII for CP 00367; JIS X208-1983 for CP 00952 --></assoc>
+ <assoc ccsid="959"><!-- ASCII for CP 00367; JIS X208-1978 for CP 00955 --></assoc>
+ <assoc ccsid="964"><!-- G0 - ASCII for CP 00367; G1-CNS 11643 plane 1 for CP 960 --></assoc>
+ <assoc ccsid="965"><!-- ASCII for CP 00367; CNS 11643 plane 1 for CP 960 --></assoc>
+ <assoc ccsid="970" mibenum="38"><!-- EUC-KR --></assoc>
+ <assoc ccsid="1008"><!-- Arabic 8-bit ISO/ASCII --></assoc>
+ <assoc ccsid="1009"><!-- IRV --></assoc>
+ <assoc ccsid="1010"><!-- France --></assoc>
+ <assoc ccsid="1011"><!-- Germany --></assoc>
+ <assoc ccsid="1012"><!-- Italy --></assoc>
+ <assoc ccsid="1013"><!-- United Kingdom --></assoc>
+ <assoc ccsid="1014"><!-- Spain --></assoc>
+ <assoc ccsid="1015"><!-- Portugal --></assoc>
+ <assoc ccsid="1016"><!-- Norway --></assoc>
+ <assoc ccsid="1017"><!-- Denmark --></assoc>
+ <assoc ccsid="1018"><!-- Finland and Sweden --></assoc>
+ <assoc ccsid="1019"><!-- Belgium and Netherlands --></assoc>
+ <assoc ccsid="1025"><!-- Cyrillic Multilingual --></assoc>
+ <assoc ccsid="1026" mibenum="2063"><!-- Turkey latin 5 CECP --></assoc>
+ <assoc ccsid="1027"><!-- Japan english (extended range) --></assoc>
+ <assoc ccsid="1040"><!-- Korean Latin PC DATA extended --></assoc>
+ <assoc ccsid="1041"><!-- Japanese PC DATA extended --></assoc>
+ <assoc ccsid="1042"><!-- Simplified Chinese PC DATA extended --></assoc>
+ <assoc ccsid="1043"><!-- Traditional Chinese PC DATA extended --></assoc>
+ <assoc ccsid="1046"><!-- PC DATA - Arabic Extended --></assoc>
+ <assoc ccsid="1047" mibenum="2102"><!-- Latin open sys EBCDIC --></assoc>
+ <assoc ccsid="1051" mibenum="2004"><!-- hp-roman8 --></assoc>
+ <assoc ccsid="1088"><!-- Korean PC DATA single-byte --></assoc>
+ <assoc ccsid="1089" mibenum="9"><!-- ISO 8859-6: Arabic --></assoc>
+ <assoc ccsid="1097"><!-- Farsi --></assoc>
+ <assoc ccsid="1098"><!-- Farsi (IBM-PC) --></assoc>
+ <assoc ccsid="1112"><!-- Baltic, Multilingual --></assoc>
+ <assoc ccsid="1114"><!-- Traditional Chinese, Taiwan Industry Graphic Character Set (Big5) --></assoc>
+ <assoc ccsid="1115"><!-- Simplified Chinese, People&#x27;s Republic of China National. Standard (GB), personal computer SBCS --></assoc>
+ <assoc ccsid="1122"><!-- Estonia --></assoc>
+ <assoc ccsid="1123"/>
+ <assoc ccsid="1129"><!-- ISO-8 Vietnamese --></assoc>
+ <assoc ccsid="1130"><!-- EBCDIC Vietnamese --></assoc>
+ <assoc ccsid="1132"><!-- EBCDIC Lao --></assoc>
+ <assoc ccsid="1133"><!-- ISO-8 Lao --></assoc>
+ <assoc ccsid="1137"/>
+ <assoc ccsid="1140" mibenum="2091"><!-- EBCDIC-US-37+Euro --></assoc>
+ <assoc ccsid="1141" mibenum="2092"><!-- EBCDIC-DE-273+Euro --></assoc>
+ <assoc ccsid="1142" mibenum="2093"><!-- EBCDIC-DK/NO-277+Euro --></assoc>
+ <assoc ccsid="1143" mibenum="2094"><!-- EBCDIC-FI/SE-278+Euro --></assoc>
+ <assoc ccsid="1144" mibenum="2095"><!-- EBCDIC-IT-280+Euro --></assoc>
+ <assoc ccsid="1145" mibenum="2096"><!-- EBCDIC-ES-284+Euro --></assoc>
+ <assoc ccsid="1146" mibenum="2097"><!-- EBCDIC-GB-285+Euro --></assoc>
+ <assoc ccsid="1147" mibenum="2098"><!-- EBCDIC-FR-297+Euro --></assoc>
+ <assoc ccsid="1148" mibenum="2099"><!-- EBCDIC-INT-500+Euro --></assoc>
+ <assoc ccsid="1149" mibenum="2100"><!-- EBCDIC-IS-871+Euro --></assoc>
+ <assoc ccsid="1153"/>
+ <assoc ccsid="1154"/>
+ <assoc ccsid="1155"/>
+ <assoc ccsid="1156"/>
+ <assoc ccsid="1157"/>
+ <assoc ccsid="1158"/>
+ <assoc ccsid="1160"/>
+ <assoc ccsid="1164"/>
+ <assoc ccsid="1201" mibenum="1013"><!-- UTF-16BE -->
+ <alias>UTF16-BE</alias>
+ <alias>UTF16BE</alias>
+ <alias>UTF-16-BE</alias>
+ </assoc>
+ <assoc ccsid="1203" mibenum="1014"><!-- UTF-16LE -->
+ <alias>UTF16-LE</alias>
+ <alias>UTF16LE</alias>
+ <alias>UTF-16-LE</alias>
+ </assoc>
+ <assoc ccsid="1208" mibenum="106"><!-- UTF-8 -->
+ <alias>UTF8</alias>
+ </assoc>
+ <assoc ccsid="1233" mibenum="1018"><!-- UTF-32BE -->
+ <alias>UTF32-BE</alias>
+ <alias>UTF32BE</alias>
+ <alias>UTF-32-BE</alias>
+ </assoc>
+ <assoc ccsid="1235" mibenum="1019"><!-- UTF-32LE -->
+ <alias>UTF32-LE</alias>
+ <alias>UTF32LE</alias>
+ <alias>UTF-32-LE</alias>
+ </assoc>
+ <assoc ccsid="1250" mibenum="2002"><!-- Windows Latin 2 --></assoc>
+ <assoc ccsid="1251"><!-- Windows Cyrillic --></assoc>
+ <assoc ccsid="1252" mibenum="2001"><!-- Windows Latin 1 --></assoc>
+ <assoc ccsid="1253"><!-- Windows Greek --></assoc>
+ <assoc ccsid="1254"><!-- Windows Turkish --></assoc>
+ <assoc ccsid="1255"><!-- Windows Hebrew --></assoc>
+ <assoc ccsid="1256"><!-- Windows Arabic --></assoc>
+ <assoc ccsid="1257"><!-- Windows Baltic Rim --></assoc>
+ <assoc ccsid="1258"><!-- Windows Vietnamese --></assoc>
+ <assoc ccsid="1275"><!-- Apple, Latin-1 --></assoc>
+ <assoc ccsid="1276" mibenum="2005"><!-- Adobe-Standard-Encoding --></assoc>
+ <assoc ccsid="1280"><!-- Apple, Greek --></assoc>
+ <assoc ccsid="1281"><!-- Apple, Turkey --></assoc>
+ <assoc ccsid="1282"><!-- Apple, Central European (Latin-2) --></assoc>
+ <assoc ccsid="1283"><!-- Apple, Cyrillic --></assoc>
+ <assoc ccsid="1363" mibenum="36"><!-- KS_C_5601-1987 -->
+ <alias>korean</alias>
+ </assoc>
+ <assoc ccsid="1364"/>
+ <assoc ccsid="1373"><!-- Windows-950 --></assoc>
+ <assoc ccsid="1375" mibenum="2101"><!-- Big5-HKSCS --></assoc>
+ <assoc ccsid="1380"><!-- Simplified Chinese DBCS PC --></assoc>
+ <assoc ccsid="1381"><!-- Simplified Chinese PC DATA Mixed --></assoc>
+ <assoc ccsid="1383" mibenum="2025"><!-- GB2312 -->
+ <alias>EUC-CN</alias>
+ </assoc>
+ <assoc ccsid="1386" mibenum="113"><!-- GBK --></assoc>
+ <assoc ccsid="1388"><!-- Simplified Chinese DBCS-Host DATA GBK mixed --></assoc>
+ <assoc ccsid="1392"><!-- S-ch PC Dara mixed GB18030 --></assoc>
+ <assoc ccsid="1399" />
+ <assoc ccsid="4396"><!-- Japanese Host DB including 1880 --></assoc>
+ <assoc ccsid="4948"><!-- Latin 2 PC DATA Multilingual --></assoc>
+ <assoc ccsid="4951"><!-- Cyrillic PC DATA Multilingual --></assoc>
+ <assoc ccsid="4952"><!-- Hebrew PC DATA --></assoc>
+ <assoc ccsid="4953"><!-- Turkey PC DATA Latin 5 --></assoc>
+ <assoc ccsid="4960"><!-- Arabic PC DATA --></assoc>
+ <assoc ccsid="4965"><!-- Greek PC DATA --></assoc>
+ <assoc ccsid="4971"/>
+ <assoc ccsid="5026"><!-- Japan Katakana (extended range) 1880 UDC --></assoc>
+ <assoc ccsid="5035"><!-- Japan English (extended range) 1880 UDC --></assoc>
+ <assoc ccsid="5050"><!-- G0 - JIS X201 Roman for CP 895; G1 JIS X208-1990 for CP 952 --></assoc>
+ <assoc ccsid="5052"><!-- JIS X201 Roman for CP 895; JIS X208-1983 for CP 952 --></assoc>
+ <assoc ccsid="5053"><!-- JIS X201 Roman for CP 895; JIS X208-1978 for CP 955 --></assoc>
+ <assoc ccsid="5054"><!-- ASCII for CP 367; JIS X208-1983 for CP 952 --></assoc>
+ <assoc ccsid="5055"><!-- ASCII for CP 367; JIS X208-1978 for CP 955 --></assoc>
+ <assoc ccsid="5354" mibenum="2258"><!-- windows-1258 --></assoc>
+ <assoc ccsid="5346" mibenum="2250"><!-- windows-1250 --></assoc>
+ <assoc ccsid="5347" mibenum="2251"><!-- windows-1251 --></assoc>
+ <assoc ccsid="5348" mibenum="2252"><!-- windows-1252 --></assoc>
+ <assoc ccsid="5349" mibenum="2253"><!-- windows-1253 --></assoc>
+ <assoc ccsid="5350" mibenum="2254"><!-- windows-1254 --></assoc>
+ <assoc ccsid="5123"/>
+ <assoc ccsid="5478" mibenum="57"><!-- GB_2312-80 -->
+ <alias>chinese</alias>
+ </assoc>
+ <assoc ccsid="8612"><!-- Arabic (base shapes only) --></assoc>
+ <assoc ccsid="9030"><!-- Thai Host Extended SBCS --></assoc>
+ <assoc ccsid="9056"><!-- PC DATA: Arabic PC Storage/Interchange --></assoc>
+ <assoc ccsid="9066"><!-- Thai PC DATA Extended SBCS --></assoc>
+ <assoc ccsid="9447" mibenum="2255"><!-- windows-1255 --></assoc>
+ <assoc ccsid="9448" mibenum="2256"><!-- windows-1256 --></assoc>
+ <assoc ccsid="9449" mibenum="2257"><!-- windows-1257 --></assoc>
+ <assoc ccsid="12708"/>
+ <assoc ccsid="13121"/>
+ <assoc ccsid="13124"/>
+ <assoc ccsid="13488" mibenum="1000"><!-- ISO-10646-UCS-2 -->
+ <alias>UCS-2</alias>
+ <alias>UCS2</alias>
+ </assoc>
+ <assoc ccsid="17354"><!-- G0 - ASCII for CP 00367; G1 -KSC X5601-1989 (including 188 UDCs) for --></assoc>
+ <assoc ccsid="25546"><!-- Korean 2022-KR TCP ASCII --></assoc>
+ <assoc ccsid="28709"><!-- Traditional Chinese (extended range) --></assoc>
+ <assoc ccsid="33722" mibenum="18"><!-- EUC-JP --></assoc>
+ <assoc ccsid="57345"><!-- All Japanese 2022 characters --></assoc>
+ <assoc ccsid="61952"><!-- AS/400 specific UCS level 2. --></assoc>
+ <assoc ccsid="62211"/>
+ <assoc ccsid="62224"/>
+ <assoc ccsid="62235"/>
+ <assoc ccsid="62245"/>
+ <assoc mibenum="27"><!-- ISO-10646-UTF-1 --></assoc>
+</ccsid_mibenum>
diff --git a/libxml2/os400/iconv/bldcsndfa/character-sets.xhtml b/libxml2/os400/iconv/bldcsndfa/character-sets.xhtml
new file mode 100644
index 0000000..e1d5a3b
--- /dev/null
+++ b/libxml2/os400/iconv/bldcsndfa/character-sets.xhtml
@@ -0,0 +1,3077 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xmlns:iana="http://www.iana.org/assignments">
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=ASCII" />
+ <link rel="stylesheet" href="../_support/iana-registry.css" type="text/css" />
+ <script type="text/javascript" src="../_support/jquery.js"></script>
+ <script type="text/javascript" src="../_support/sort.js"></script>
+ <title>Character Sets</title>
+ </head>
+ <body>
+ <h1>Character Sets</h1>
+ <dl>
+ <dt>Last Updated</dt>
+ <dd>2013-01-23</dd>
+ <dt>Registration Procedure(s)</dt>
+ <dd>
+ <pre>Expert Review</pre>
+ </dd>
+ <dt>Expert(s)</dt>
+ <dd>
+ <pre>Primary Expert Ned Freed and Secondary Expert Martin D&#252;rst</pre>
+ </dd>
+ <dt>Reference</dt>
+ <dd>[<a href="http://www.iana.org/go/rfc2978">RFC2978</a>]</dd>
+ <dt>Note</dt>
+ <dd>
+ <pre>These are the official names for character sets that may be used in
+the Internet and may be referred to in Internet documentation. These
+names are expressed in ANSI_X3.4-1968 which is commonly called
+US-ASCII or simply ASCII. The character set most commonly use in the
+Internet and used especially in protocol standards is US-ASCII, this
+is strongly encouraged. The use of the name US-ASCII is also
+encouraged.
+
+The character set names may be up to 40 characters taken from the
+printable characters of US-ASCII. However, no distinction is made
+between use of upper and lower case letters.
+
+The MIBenum value is a unique value for use in MIBs to identify coded
+character sets.
+
+The value space for MIBenum values has been divided into three
+regions. The first region (3-999) consists of coded character sets
+that have been standardized by some standard setting organization.
+This region is intended for standards that do not have subset
+implementations. The second region (1000-1999) is for the Unicode and
+ISO/IEC 10646 coded character sets together with a specification of a
+(set of) sub-repertoires that may occur. The third region (&gt;1999) is
+intended for vendor specific coded character sets.
+
+ Assigned MIB enum Numbers
+ -------------------------
+ 0-2 Reserved
+ 3-999 Set By Standards Organizations
+ 1000-1999 Unicode / 10646
+ 2000-2999 Vendor
+
+The aliases that start with "cs" have been added for use with the
+IANA-CHARSET-MIB as originally defined in [<a href="http://www.iana.org/go/rfc3808">RFC3808</a>], and as currently
+maintained by IANA at [<a href="http://www.iana.org/assignments/ianacharset-mib">IANA registry <i>ianacharset-mib</i></a>].
+Note that the ianacharset-mib needs to be kept in sync with this
+registry. These aliases that start with "cs" contain the standard
+numbers along with suggestive names in order to facilitate applications
+that want to display the names in user interfaces. The "cs" stands
+for character set and is provided for applications that need a lower
+case first letter but want to use mixed case thereafter that cannot
+contain any special characters, such as underbar ("_") and dash ("-").
+
+If the character set is from an ISO standard, its cs alias is the ISO
+standard number or name. If the character set is not from an ISO
+standard, but is registered with ISO (IPSJ/ITSCJ is the current ISO
+Registration Authority), the ISO Registry number is specified as
+ISOnnn followed by letters suggestive of the name or standards number
+of the code set. When a national or international standard is
+revised, the year of revision is added to the cs alias of the new
+character set entry in the IANA Registry in order to distinguish the
+revised character set from the original character set.</pre>
+ </dd>
+ <dt>Alternative Formats</dt>
+ <dd>
+ <a class="altformat" href="character-sets.txt"><img src="/_img/icons/text-plain.png" /><br />Plain text</a>
+ </dd>
+ </dl>
+ <dl>
+ <dt>Alternative Formats</dt>
+ <dd>
+ <a class="altformat" href="character-sets-1.csv"><img src="/_img/icons/text-csv.png" /><br />CSV</a>
+ </dd>
+ </dl>
+ <table id="table-character-sets-1" class="sortable">
+ <thead>
+ <tr>
+ <th>Preferred MIME Name</th>
+ <th>Name</th>
+ <th>MIBenum</th>
+ <th>Source</th>
+ <th>Reference</th>
+ <th>Aliases</th>
+ <th>Note</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td>US-ASCII</td>
+ <td>US-ASCII</td>
+ <td>3</td>
+ <td>ANSI X3.4-1986</td>
+ <td>[<a href="http://www.iana.org/go/rfc2046">RFC2046</a>]</td>
+ <td>iso-ir-6<br />ANSI_X3.4-1968<br />ANSI_X3.4-1986<br />ISO_646.irv:1991<br />ISO646-US<br />US-ASCII<br />us<br />IBM367<br />cp367<br />csASCII</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td>ISO-8859-1</td>
+ <td>ISO_8859-1:1987</td>
+ <td>4</td>
+ <td>
+ [<a href="http://www.itscj.ipsj.or.jp/ISO-IR/">ISO-IR: International Register of Escape Sequences</a>]<br />
+ Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ </td>
+ <td>[<a href="http://www.iana.org/go/rfc1345">RFC1345</a>][<a href="#Keld_Simonsen">Keld_Simonsen</a>]</td>
+ <td>iso-ir-100<br />ISO_8859-1<br />ISO-8859-1<br />latin1<br />l1<br />IBM819<br />CP819<br />csISOLatin1</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td>ISO-8859-2</td>
+ <td>ISO_8859-2:1987</td>
+ <td>5</td>
+ <td>
+ [<a href="http://www.itscj.ipsj.or.jp/ISO-IR/">ISO-IR: International Register of Escape Sequences</a>]<br />
+ Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ </td>
+ <td>[<a href="http://www.iana.org/go/rfc1345">RFC1345</a>][<a href="#Keld_Simonsen">Keld_Simonsen</a>]</td>
+ <td>iso-ir-101<br />ISO_8859-2<br />ISO-8859-2<br />latin2<br />l2<br />csISOLatin2</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td>ISO-8859-3</td>
+ <td>ISO_8859-3:1988</td>
+ <td>6</td>
+ <td>
+ [<a href="http://www.itscj.ipsj.or.jp/ISO-IR/">ISO-IR: International Register of Escape Sequences</a>]<br />
+ Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ </td>
+ <td>[<a href="http://www.iana.org/go/rfc1345">RFC1345</a>][<a href="#Keld_Simonsen">Keld_Simonsen</a>]</td>
+ <td>iso-ir-109<br />ISO_8859-3<br />ISO-8859-3<br />latin3<br />l3<br />csISOLatin3</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td>ISO-8859-4</td>
+ <td>ISO_8859-4:1988</td>
+ <td>7</td>
+ <td>
+ [<a href="http://www.itscj.ipsj.or.jp/ISO-IR/">ISO-IR: International Register of Escape Sequences</a>]<br />
+ Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ </td>
+ <td>[<a href="http://www.iana.org/go/rfc1345">RFC1345</a>][<a href="#Keld_Simonsen">Keld_Simonsen</a>]</td>
+ <td>iso-ir-110<br />ISO_8859-4<br />ISO-8859-4<br />latin4<br />l4<br />csISOLatin4</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td>ISO-8859-5</td>
+ <td>ISO_8859-5:1988</td>
+ <td>8</td>
+ <td>
+ [<a href="http://www.itscj.ipsj.or.jp/ISO-IR/">ISO-IR: International Register of Escape Sequences</a>]<br />
+ Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ </td>
+ <td>[<a href="http://www.iana.org/go/rfc1345">RFC1345</a>][<a href="#Keld_Simonsen">Keld_Simonsen</a>]</td>
+ <td>iso-ir-144<br />ISO_8859-5<br />ISO-8859-5<br />cyrillic<br />csISOLatinCyrillic</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td>ISO-8859-6</td>
+ <td>ISO_8859-6:1987</td>
+ <td>9</td>
+ <td>
+ [<a href="http://www.itscj.ipsj.or.jp/ISO-IR/">ISO-IR: International Register of Escape Sequences</a>]<br />
+ Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ </td>
+ <td>[<a href="http://www.iana.org/go/rfc1345">RFC1345</a>][<a href="#Keld_Simonsen">Keld_Simonsen</a>]</td>
+ <td>iso-ir-127<br />ISO_8859-6<br />ISO-8859-6<br />ECMA-114<br />ASMO-708<br />arabic<br />csISOLatinArabic</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td>ISO-8859-7</td>
+ <td>ISO_8859-7:1987</td>
+ <td>10</td>
+ <td>
+ [<a href="http://www.itscj.ipsj.or.jp/ISO-IR/">ISO-IR: International Register of Escape Sequences</a>]<br />
+ Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ </td>
+ <td>[<a href="http://www.iana.org/go/rfc1947">RFC1947</a>][<a href="http://www.iana.org/go/rfc1345">RFC1345</a>][<a href="#Keld_Simonsen">Keld_Simonsen</a>]</td>
+ <td>iso-ir-126<br />ISO_8859-7<br />ISO-8859-7<br />ELOT_928<br />ECMA-118<br />greek<br />greek8<br />csISOLatinGreek</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td>ISO-8859-8</td>
+ <td>ISO_8859-8:1988</td>
+ <td>11</td>
+ <td>
+ [<a href="http://www.itscj.ipsj.or.jp/ISO-IR/">ISO-IR: International Register of Escape Sequences</a>]<br />
+ Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ </td>
+ <td>[<a href="http://www.iana.org/go/rfc1345">RFC1345</a>][<a href="#Keld_Simonsen">Keld_Simonsen</a>]</td>
+ <td>iso-ir-138<br />ISO_8859-8<br />ISO-8859-8<br />hebrew<br />csISOLatinHebrew</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td>ISO-8859-9</td>
+ <td>ISO_8859-9:1989</td>
+ <td>12</td>
+ <td>
+ [<a href="http://www.itscj.ipsj.or.jp/ISO-IR/">ISO-IR: International Register of Escape Sequences</a>]<br />
+ Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ </td>
+ <td>[<a href="http://www.iana.org/go/rfc1345">RFC1345</a>][<a href="#Keld_Simonsen">Keld_Simonsen</a>]</td>
+ <td>iso-ir-148<br />ISO_8859-9<br />ISO-8859-9<br />latin5<br />l5<br />csISOLatin5</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td>ISO-8859-10</td>
+ <td>ISO-8859-10</td>
+ <td>13</td>
+ <td>
+ [<a href="http://www.itscj.ipsj.or.jp/ISO-IR/">ISO-IR: International Register of Escape Sequences</a>]<br />
+ Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ </td>
+ <td>[<a href="http://www.iana.org/go/rfc1345">RFC1345</a>][<a href="#Keld_Simonsen">Keld_Simonsen</a>]</td>
+ <td>iso-ir-157<br />l6<br />ISO_8859-10:1992<br />csISOLatin6<br />latin6</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>ISO_6937-2-add</td>
+ <td>14</td>
+ <td>
+ [<a href="http://www.itscj.ipsj.or.jp/ISO-IR/">ISO-IR: International Register of Escape Sequences</a>] and ISO 6937-2:1983<br />
+ Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ </td>
+ <td>[<a href="http://www.iana.org/go/rfc1345">RFC1345</a>][<a href="#Keld_Simonsen">Keld_Simonsen</a>]</td>
+ <td>iso-ir-142<br />csISOTextComm</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>JIS_X0201</td>
+ <td>15</td>
+ <td>JIS X 0201-1976. One byte only, this is equivalent to
+JIS/Roman (similar to ASCII) plus eight-bit half-width
+Katakana</td>
+ <td>[<a href="http://www.iana.org/go/rfc1345">RFC1345</a>][<a href="#Keld_Simonsen">Keld_Simonsen</a>]</td>
+ <td>X0201<br />csHalfWidthKatakana</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>JIS_Encoding</td>
+ <td>16</td>
+ <td>JIS X 0202-1991. Uses ISO 2022 escape sequences to
+shift code sets as documented in JIS X 0202-1991.</td>
+ <td></td>
+ <td>csJISEncoding</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td>Shift_JIS</td>
+ <td>Shift_JIS</td>
+ <td>17</td>
+ <td>This charset is an extension of csHalfWidthKatakana by
+adding graphic characters in JIS X 0208. The CCS's are
+JIS X0201:1997 and JIS X0208:1997. The
+complete definition is shown in Appendix 1 of JIS
+X0208:1997.
+This charset can be used for the top-level media type "text".</td>
+ <td></td>
+ <td>MS_Kanji<br />csShiftJIS</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td>EUC-JP</td>
+ <td>Extended_UNIX_Code_Packed_Format_for_Japanese</td>
+ <td>18</td>
+ <td>Standardized by OSF, UNIX International, and UNIX Systems
+Laboratories Pacific. Uses ISO 2022 rules to select
+code set 0: US-ASCII (a single 7-bit byte set)
+code set 1: JIS X0208-1990 (a double 8-bit byte set)
+restricted to A0-FF in both bytes
+code set 2: Half Width Katakana (a single 7-bit byte set)
+requiring SS2 as the character prefix
+code set 3: JIS X0212-1990 (a double 7-bit byte set)
+restricted to A0-FF in both bytes
+requiring SS3 as the character prefix</td>
+ <td></td>
+ <td>csEUCPkdFmtJapanese<br />EUC-JP</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>Extended_UNIX_Code_Fixed_Width_for_Japanese</td>
+ <td>19</td>
+ <td>Used in Japan. Each character is 2 octets.
+code set 0: US-ASCII (a single 7-bit byte set)
+1st byte = 00
+2nd byte = 20-7E
+code set 1: JIS X0208-1990 (a double 7-bit byte set)
+restricted to A0-FF in both bytes
+code set 2: Half Width Katakana (a single 7-bit byte set)
+1st byte = 00
+2nd byte = A0-FF
+code set 3: JIS X0212-1990 (a double 7-bit byte set)
+restricted to A0-FF in
+the first byte
+and 21-7E in the second byte</td>
+ <td></td>
+ <td>csEUCFixWidJapanese</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>BS_4730</td>
+ <td>20</td>
+ <td>
+ [<a href="http://www.itscj.ipsj.or.jp/ISO-IR/">ISO-IR: International Register of Escape Sequences</a>]<br />
+ Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ </td>
+ <td>[<a href="http://www.iana.org/go/rfc1345">RFC1345</a>][<a href="#Keld_Simonsen">Keld_Simonsen</a>]</td>
+ <td>iso-ir-4<br />ISO646-GB<br />gb<br />uk<br />csISO4UnitedKingdom</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>SEN_850200_C</td>
+ <td>21</td>
+ <td>
+ [<a href="http://www.itscj.ipsj.or.jp/ISO-IR/">ISO-IR: International Register of Escape Sequences</a>]<br />
+ Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ </td>
+ <td>[<a href="http://www.iana.org/go/rfc1345">RFC1345</a>][<a href="#Keld_Simonsen">Keld_Simonsen</a>]</td>
+ <td>iso-ir-11<br />ISO646-SE2<br />se2<br />csISO11SwedishForNames</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>IT</td>
+ <td>22</td>
+ <td>
+ [<a href="http://www.itscj.ipsj.or.jp/ISO-IR/">ISO-IR: International Register of Escape Sequences</a>]<br />
+ Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ </td>
+ <td>[<a href="http://www.iana.org/go/rfc1345">RFC1345</a>][<a href="#Keld_Simonsen">Keld_Simonsen</a>]</td>
+ <td>iso-ir-15<br />ISO646-IT<br />csISO15Italian</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>ES</td>
+ <td>23</td>
+ <td>
+ [<a href="http://www.itscj.ipsj.or.jp/ISO-IR/">ISO-IR: International Register of Escape Sequences</a>]<br />
+ Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ </td>
+ <td>[<a href="http://www.iana.org/go/rfc1345">RFC1345</a>][<a href="#Keld_Simonsen">Keld_Simonsen</a>]</td>
+ <td>iso-ir-17<br />ISO646-ES<br />csISO17Spanish</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>DIN_66003</td>
+ <td>24</td>
+ <td>
+ [<a href="http://www.itscj.ipsj.or.jp/ISO-IR/">ISO-IR: International Register of Escape Sequences</a>]<br />
+ Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ </td>
+ <td>[<a href="http://www.iana.org/go/rfc1345">RFC1345</a>][<a href="#Keld_Simonsen">Keld_Simonsen</a>]</td>
+ <td>iso-ir-21<br />de<br />ISO646-DE<br />csISO21German</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>NS_4551-1</td>
+ <td>25</td>
+ <td>
+ [<a href="http://www.itscj.ipsj.or.jp/ISO-IR/">ISO-IR: International Register of Escape Sequences</a>]<br />
+ Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ </td>
+ <td>[<a href="http://www.iana.org/go/rfc1345">RFC1345</a>][<a href="#Keld_Simonsen">Keld_Simonsen</a>]</td>
+ <td>iso-ir-60<br />ISO646-NO<br />no<br />csISO60DanishNorwegian<br />csISO60Norwegian1</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>NF_Z_62-010</td>
+ <td>26</td>
+ <td>
+ [<a href="http://www.itscj.ipsj.or.jp/ISO-IR/">ISO-IR: International Register of Escape Sequences</a>]<br />
+ Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ </td>
+ <td>[<a href="http://www.iana.org/go/rfc1345">RFC1345</a>][<a href="#Keld_Simonsen">Keld_Simonsen</a>]</td>
+ <td>iso-ir-69<br />ISO646-FR<br />fr<br />csISO69French</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>ISO-10646-UTF-1</td>
+ <td>27</td>
+ <td>Universal Transfer Format (1), this is the multibyte
+encoding, that subsets ASCII-7. It does not have byte
+ordering issues.</td>
+ <td></td>
+ <td>csISO10646UTF1</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>ISO_646.basic:1983</td>
+ <td>28</td>
+ <td>
+ [<a href="http://www.itscj.ipsj.or.jp/ISO-IR/">ISO-IR: International Register of Escape Sequences</a>]<br />
+ Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ </td>
+ <td>[<a href="http://www.iana.org/go/rfc1345">RFC1345</a>][<a href="#Keld_Simonsen">Keld_Simonsen</a>]</td>
+ <td>ref<br />csISO646basic1983</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>INVARIANT</td>
+ <td>29</td>
+ <td></td>
+ <td>[<a href="http://www.iana.org/go/rfc1345">RFC1345</a>][<a href="#Keld_Simonsen">Keld_Simonsen</a>]</td>
+ <td>csINVARIANT</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>ISO_646.irv:1983</td>
+ <td>30</td>
+ <td>
+ [<a href="http://www.itscj.ipsj.or.jp/ISO-IR/">ISO-IR: International Register of Escape Sequences</a>]<br />
+ Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ </td>
+ <td>[<a href="http://www.iana.org/go/rfc1345">RFC1345</a>][<a href="#Keld_Simonsen">Keld_Simonsen</a>]</td>
+ <td>iso-ir-2<br />irv<br />csISO2IntlRefVersion</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>NATS-SEFI</td>
+ <td>31</td>
+ <td>
+ [<a href="http://www.itscj.ipsj.or.jp/ISO-IR/">ISO-IR: International Register of Escape Sequences</a>]<br />
+ Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ </td>
+ <td>[<a href="http://www.iana.org/go/rfc1345">RFC1345</a>][<a href="#Keld_Simonsen">Keld_Simonsen</a>]</td>
+ <td>iso-ir-8-1<br />csNATSSEFI</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>NATS-SEFI-ADD</td>
+ <td>32</td>
+ <td>
+ [<a href="http://www.itscj.ipsj.or.jp/ISO-IR/">ISO-IR: International Register of Escape Sequences</a>]<br />
+ Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ </td>
+ <td>[<a href="http://www.iana.org/go/rfc1345">RFC1345</a>][<a href="#Keld_Simonsen">Keld_Simonsen</a>]</td>
+ <td>iso-ir-8-2<br />csNATSSEFIADD</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>NATS-DANO</td>
+ <td>33</td>
+ <td>
+ [<a href="http://www.itscj.ipsj.or.jp/ISO-IR/">ISO-IR: International Register of Escape Sequences</a>]<br />
+ Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ </td>
+ <td>[<a href="http://www.iana.org/go/rfc1345">RFC1345</a>][<a href="#Keld_Simonsen">Keld_Simonsen</a>]</td>
+ <td>iso-ir-9-1<br />csNATSDANO</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>NATS-DANO-ADD</td>
+ <td>34</td>
+ <td>
+ [<a href="http://www.itscj.ipsj.or.jp/ISO-IR/">ISO-IR: International Register of Escape Sequences</a>]<br />
+ Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ </td>
+ <td>[<a href="http://www.iana.org/go/rfc1345">RFC1345</a>][<a href="#Keld_Simonsen">Keld_Simonsen</a>]</td>
+ <td>iso-ir-9-2<br />csNATSDANOADD</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>SEN_850200_B</td>
+ <td>35</td>
+ <td>
+ [<a href="http://www.itscj.ipsj.or.jp/ISO-IR/">ISO-IR: International Register of Escape Sequences</a>]<br />
+ Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ </td>
+ <td>[<a href="http://www.iana.org/go/rfc1345">RFC1345</a>][<a href="#Keld_Simonsen">Keld_Simonsen</a>]</td>
+ <td>iso-ir-10<br />FI<br />ISO646-FI<br />ISO646-SE<br />se<br />csISO10Swedish</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>KS_C_5601-1987</td>
+ <td>36</td>
+ <td>
+ [<a href="http://www.itscj.ipsj.or.jp/ISO-IR/">ISO-IR: International Register of Escape Sequences</a>]<br />
+ Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ </td>
+ <td>[<a href="http://www.iana.org/go/rfc1345">RFC1345</a>][<a href="#Keld_Simonsen">Keld_Simonsen</a>]</td>
+ <td>iso-ir-149<br />KS_C_5601-1989<br />KSC_5601<br />korean<br />csKSC56011987</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td>ISO-2022-KR</td>
+ <td>ISO-2022-KR</td>
+ <td>37</td>
+ <td>[<a href="http://www.iana.org/go/rfc1557">RFC1557</a>] (see also KS_C_5601-1987)</td>
+ <td>[<a href="http://www.iana.org/go/rfc1557">RFC1557</a>][<a href="#Woohyong_Choi">Woohyong_Choi</a>]</td>
+ <td>csISO2022KR</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td>EUC-KR</td>
+ <td>EUC-KR</td>
+ <td>38</td>
+ <td>[<a href="http://www.iana.org/go/rfc1557">RFC1557</a>] (see also KS_C_5861-1992)</td>
+ <td>[<a href="http://www.iana.org/go/rfc1557">RFC1557</a>][<a href="#Woohyong_Choi">Woohyong_Choi</a>]</td>
+ <td>csEUCKR</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td>ISO-2022-JP</td>
+ <td>ISO-2022-JP</td>
+ <td>39</td>
+ <td>[<a href="http://www.iana.org/go/rfc1468">RFC1468</a>] (see also [<a href="http://www.iana.org/go/rfc2237">RFC2237</a>])</td>
+ <td>[<a href="http://www.iana.org/go/rfc1468">RFC1468</a>][<a href="#Jun_Murai">Jun_Murai</a>]</td>
+ <td>csISO2022JP</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td>ISO-2022-JP-2</td>
+ <td>ISO-2022-JP-2</td>
+ <td>40</td>
+ <td>
+ [<a href="http://www.iana.org/go/rfc1554">RFC1554</a>]
+ </td>
+ <td>[<a href="http://www.iana.org/go/rfc1554">RFC1554</a>][<a href="#Masataka_Ohta">Masataka_Ohta</a>]</td>
+ <td>csISO2022JP2</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>JIS_C6220-1969-jp</td>
+ <td>41</td>
+ <td>
+ [<a href="http://www.itscj.ipsj.or.jp/ISO-IR/">ISO-IR: International Register of Escape Sequences</a>]<br />
+ Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ </td>
+ <td>[<a href="http://www.iana.org/go/rfc1345">RFC1345</a>][<a href="#Keld_Simonsen">Keld_Simonsen</a>]</td>
+ <td>JIS_C6220-1969<br />iso-ir-13<br />katakana<br />x0201-7<br />csISO13JISC6220jp</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>JIS_C6220-1969-ro</td>
+ <td>42</td>
+ <td>
+ [<a href="http://www.itscj.ipsj.or.jp/ISO-IR/">ISO-IR: International Register of Escape Sequences</a>]<br />
+ Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ </td>
+ <td>[<a href="http://www.iana.org/go/rfc1345">RFC1345</a>][<a href="#Keld_Simonsen">Keld_Simonsen</a>]</td>
+ <td>iso-ir-14<br />jp<br />ISO646-JP<br />csISO14JISC6220ro</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>PT</td>
+ <td>43</td>
+ <td>
+ [<a href="http://www.itscj.ipsj.or.jp/ISO-IR/">ISO-IR: International Register of Escape Sequences</a>]<br />
+ Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ </td>
+ <td>[<a href="http://www.iana.org/go/rfc1345">RFC1345</a>][<a href="#Keld_Simonsen">Keld_Simonsen</a>]</td>
+ <td>iso-ir-16<br />ISO646-PT<br />csISO16Portuguese</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>greek7-old</td>
+ <td>44</td>
+ <td>
+ [<a href="http://www.itscj.ipsj.or.jp/ISO-IR/">ISO-IR: International Register of Escape Sequences</a>]<br />
+ Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ </td>
+ <td>[<a href="http://www.iana.org/go/rfc1345">RFC1345</a>][<a href="#Keld_Simonsen">Keld_Simonsen</a>]</td>
+ <td>iso-ir-18<br />csISO18Greek7Old</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>latin-greek</td>
+ <td>45</td>
+ <td>
+ [<a href="http://www.itscj.ipsj.or.jp/ISO-IR/">ISO-IR: International Register of Escape Sequences</a>]<br />
+ Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ </td>
+ <td>[<a href="http://www.iana.org/go/rfc1345">RFC1345</a>][<a href="#Keld_Simonsen">Keld_Simonsen</a>]</td>
+ <td>iso-ir-19<br />csISO19LatinGreek</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>NF_Z_62-010_(1973)</td>
+ <td>46</td>
+ <td>
+ [<a href="http://www.itscj.ipsj.or.jp/ISO-IR/">ISO-IR: International Register of Escape Sequences</a>]<br />
+ Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ </td>
+ <td>[<a href="http://www.iana.org/go/rfc1345">RFC1345</a>][<a href="#Keld_Simonsen">Keld_Simonsen</a>]</td>
+ <td>iso-ir-25<br />ISO646-FR1<br />csISO25French</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>Latin-greek-1</td>
+ <td>47</td>
+ <td>
+ [<a href="http://www.itscj.ipsj.or.jp/ISO-IR/">ISO-IR: International Register of Escape Sequences</a>]<br />
+ Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ </td>
+ <td>[<a href="http://www.iana.org/go/rfc1345">RFC1345</a>][<a href="#Keld_Simonsen">Keld_Simonsen</a>]</td>
+ <td>iso-ir-27<br />csISO27LatinGreek1</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>ISO_5427</td>
+ <td>48</td>
+ <td>
+ [<a href="http://www.itscj.ipsj.or.jp/ISO-IR/">ISO-IR: International Register of Escape Sequences</a>]<br />
+ Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ </td>
+ <td>[<a href="http://www.iana.org/go/rfc1345">RFC1345</a>][<a href="#Keld_Simonsen">Keld_Simonsen</a>]</td>
+ <td>iso-ir-37<br />csISO5427Cyrillic</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>JIS_C6226-1978</td>
+ <td>49</td>
+ <td>
+ [<a href="http://www.itscj.ipsj.or.jp/ISO-IR/">ISO-IR: International Register of Escape Sequences</a>]<br />
+ Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ </td>
+ <td>[<a href="http://www.iana.org/go/rfc1345">RFC1345</a>][<a href="#Keld_Simonsen">Keld_Simonsen</a>]</td>
+ <td>iso-ir-42<br />csISO42JISC62261978</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>BS_viewdata</td>
+ <td>50</td>
+ <td>
+ [<a href="http://www.itscj.ipsj.or.jp/ISO-IR/">ISO-IR: International Register of Escape Sequences</a>]<br />
+ Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ </td>
+ <td>[<a href="http://www.iana.org/go/rfc1345">RFC1345</a>][<a href="#Keld_Simonsen">Keld_Simonsen</a>]</td>
+ <td>iso-ir-47<br />csISO47BSViewdata</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>INIS</td>
+ <td>51</td>
+ <td>
+ [<a href="http://www.itscj.ipsj.or.jp/ISO-IR/">ISO-IR: International Register of Escape Sequences</a>]<br />
+ Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ </td>
+ <td>[<a href="http://www.iana.org/go/rfc1345">RFC1345</a>][<a href="#Keld_Simonsen">Keld_Simonsen</a>]</td>
+ <td>iso-ir-49<br />csISO49INIS</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>INIS-8</td>
+ <td>52</td>
+ <td>
+ [<a href="http://www.itscj.ipsj.or.jp/ISO-IR/">ISO-IR: International Register of Escape Sequences</a>]<br />
+ Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ </td>
+ <td>[<a href="http://www.iana.org/go/rfc1345">RFC1345</a>][<a href="#Keld_Simonsen">Keld_Simonsen</a>]</td>
+ <td>iso-ir-50<br />csISO50INIS8</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>INIS-cyrillic</td>
+ <td>53</td>
+ <td>
+ [<a href="http://www.itscj.ipsj.or.jp/ISO-IR/">ISO-IR: International Register of Escape Sequences</a>]<br />
+ Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ </td>
+ <td>[<a href="http://www.iana.org/go/rfc1345">RFC1345</a>][<a href="#Keld_Simonsen">Keld_Simonsen</a>]</td>
+ <td>iso-ir-51<br />csISO51INISCyrillic</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>ISO_5427:1981</td>
+ <td>54</td>
+ <td>
+ [<a href="http://www.itscj.ipsj.or.jp/ISO-IR/">ISO-IR: International Register of Escape Sequences</a>]<br />
+ Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ </td>
+ <td>[<a href="http://www.iana.org/go/rfc1345">RFC1345</a>][<a href="#Keld_Simonsen">Keld_Simonsen</a>]</td>
+ <td>iso-ir-54<br />ISO5427Cyrillic1981<br />csISO54271981</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>ISO_5428:1980</td>
+ <td>55</td>
+ <td>
+ [<a href="http://www.itscj.ipsj.or.jp/ISO-IR/">ISO-IR: International Register of Escape Sequences</a>]<br />
+ Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ </td>
+ <td>[<a href="http://www.iana.org/go/rfc1345">RFC1345</a>][<a href="#Keld_Simonsen">Keld_Simonsen</a>]</td>
+ <td>iso-ir-55<br />csISO5428Greek</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>GB_1988-80</td>
+ <td>56</td>
+ <td>
+ [<a href="http://www.itscj.ipsj.or.jp/ISO-IR/">ISO-IR: International Register of Escape Sequences</a>]<br />
+ Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ </td>
+ <td>[<a href="http://www.iana.org/go/rfc1345">RFC1345</a>][<a href="#Keld_Simonsen">Keld_Simonsen</a>]</td>
+ <td>iso-ir-57<br />cn<br />ISO646-CN<br />csISO57GB1988</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>GB_2312-80</td>
+ <td>57</td>
+ <td>
+ [<a href="http://www.itscj.ipsj.or.jp/ISO-IR/">ISO-IR: International Register of Escape Sequences</a>]<br />
+ Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ </td>
+ <td>[<a href="http://www.iana.org/go/rfc1345">RFC1345</a>][<a href="#Keld_Simonsen">Keld_Simonsen</a>]</td>
+ <td>iso-ir-58<br />chinese<br />csISO58GB231280</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>NS_4551-2</td>
+ <td>58</td>
+ <td>
+ [<a href="http://www.itscj.ipsj.or.jp/ISO-IR/">ISO-IR: International Register of Escape Sequences</a>]<br />
+ Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ </td>
+ <td>[<a href="http://www.iana.org/go/rfc1345">RFC1345</a>][<a href="#Keld_Simonsen">Keld_Simonsen</a>]</td>
+ <td>ISO646-NO2<br />iso-ir-61<br />no2<br />csISO61Norwegian2</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>videotex-suppl</td>
+ <td>59</td>
+ <td>
+ [<a href="http://www.itscj.ipsj.or.jp/ISO-IR/">ISO-IR: International Register of Escape Sequences</a>]<br />
+ Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ </td>
+ <td>[<a href="http://www.iana.org/go/rfc1345">RFC1345</a>][<a href="#Keld_Simonsen">Keld_Simonsen</a>]</td>
+ <td>iso-ir-70<br />csISO70VideotexSupp1</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>PT2</td>
+ <td>60</td>
+ <td>
+ [<a href="http://www.itscj.ipsj.or.jp/ISO-IR/">ISO-IR: International Register of Escape Sequences</a>]<br />
+ Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ </td>
+ <td>[<a href="http://www.iana.org/go/rfc1345">RFC1345</a>][<a href="#Keld_Simonsen">Keld_Simonsen</a>]</td>
+ <td>iso-ir-84<br />ISO646-PT2<br />csISO84Portuguese2</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>ES2</td>
+ <td>61</td>
+ <td>
+ [<a href="http://www.itscj.ipsj.or.jp/ISO-IR/">ISO-IR: International Register of Escape Sequences</a>]<br />
+ Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ </td>
+ <td>[<a href="http://www.iana.org/go/rfc1345">RFC1345</a>][<a href="#Keld_Simonsen">Keld_Simonsen</a>]</td>
+ <td>iso-ir-85<br />ISO646-ES2<br />csISO85Spanish2</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>MSZ_7795.3</td>
+ <td>62</td>
+ <td>
+ [<a href="http://www.itscj.ipsj.or.jp/ISO-IR/">ISO-IR: International Register of Escape Sequences</a>]<br />
+ Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ </td>
+ <td>[<a href="http://www.iana.org/go/rfc1345">RFC1345</a>][<a href="#Keld_Simonsen">Keld_Simonsen</a>]</td>
+ <td>iso-ir-86<br />ISO646-HU<br />hu<br />csISO86Hungarian</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>JIS_C6226-1983</td>
+ <td>63</td>
+ <td>
+ [<a href="http://www.itscj.ipsj.or.jp/ISO-IR/">ISO-IR: International Register of Escape Sequences</a>]<br />
+ Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ </td>
+ <td>[<a href="http://www.iana.org/go/rfc1345">RFC1345</a>][<a href="#Keld_Simonsen">Keld_Simonsen</a>]</td>
+ <td>iso-ir-87<br />x0208<br />JIS_X0208-1983<br />csISO87JISX0208</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>greek7</td>
+ <td>64</td>
+ <td>
+ [<a href="http://www.itscj.ipsj.or.jp/ISO-IR/">ISO-IR: International Register of Escape Sequences</a>]<br />
+ Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ </td>
+ <td>[<a href="http://www.iana.org/go/rfc1345">RFC1345</a>][<a href="#Keld_Simonsen">Keld_Simonsen</a>]</td>
+ <td>iso-ir-88<br />csISO88Greek7</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>ASMO_449</td>
+ <td>65</td>
+ <td>
+ [<a href="http://www.itscj.ipsj.or.jp/ISO-IR/">ISO-IR: International Register of Escape Sequences</a>]<br />
+ Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ </td>
+ <td>[<a href="http://www.iana.org/go/rfc1345">RFC1345</a>][<a href="#Keld_Simonsen">Keld_Simonsen</a>]</td>
+ <td>ISO_9036<br />arabic7<br />iso-ir-89<br />csISO89ASMO449</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>iso-ir-90</td>
+ <td>66</td>
+ <td>
+ [<a href="http://www.itscj.ipsj.or.jp/ISO-IR/">ISO-IR: International Register of Escape Sequences</a>]<br />
+ Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ </td>
+ <td>[<a href="http://www.iana.org/go/rfc1345">RFC1345</a>][<a href="#Keld_Simonsen">Keld_Simonsen</a>]</td>
+ <td>csISO90</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>JIS_C6229-1984-a</td>
+ <td>67</td>
+ <td>
+ [<a href="http://www.itscj.ipsj.or.jp/ISO-IR/">ISO-IR: International Register of Escape Sequences</a>]<br />
+ Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ </td>
+ <td>[<a href="http://www.iana.org/go/rfc1345">RFC1345</a>][<a href="#Keld_Simonsen">Keld_Simonsen</a>]</td>
+ <td>iso-ir-91<br />jp-ocr-a<br />csISO91JISC62291984a</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>JIS_C6229-1984-b</td>
+ <td>68</td>
+ <td>
+ [<a href="http://www.itscj.ipsj.or.jp/ISO-IR/">ISO-IR: International Register of Escape Sequences</a>]<br />
+ Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ </td>
+ <td>[<a href="http://www.iana.org/go/rfc1345">RFC1345</a>][<a href="#Keld_Simonsen">Keld_Simonsen</a>]</td>
+ <td>iso-ir-92<br />ISO646-JP-OCR-B<br />jp-ocr-b<br />csISO92JISC62991984b</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>JIS_C6229-1984-b-add</td>
+ <td>69</td>
+ <td>
+ [<a href="http://www.itscj.ipsj.or.jp/ISO-IR/">ISO-IR: International Register of Escape Sequences</a>]<br />
+ Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ </td>
+ <td>[<a href="http://www.iana.org/go/rfc1345">RFC1345</a>][<a href="#Keld_Simonsen">Keld_Simonsen</a>]</td>
+ <td>iso-ir-93<br />jp-ocr-b-add<br />csISO93JIS62291984badd</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>JIS_C6229-1984-hand</td>
+ <td>70</td>
+ <td>
+ [<a href="http://www.itscj.ipsj.or.jp/ISO-IR/">ISO-IR: International Register of Escape Sequences</a>]<br />
+ Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ </td>
+ <td>[<a href="http://www.iana.org/go/rfc1345">RFC1345</a>][<a href="#Keld_Simonsen">Keld_Simonsen</a>]</td>
+ <td>iso-ir-94<br />jp-ocr-hand<br />csISO94JIS62291984hand</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>JIS_C6229-1984-hand-add</td>
+ <td>71</td>
+ <td>
+ [<a href="http://www.itscj.ipsj.or.jp/ISO-IR/">ISO-IR: International Register of Escape Sequences</a>]<br />
+ Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ </td>
+ <td>[<a href="http://www.iana.org/go/rfc1345">RFC1345</a>][<a href="#Keld_Simonsen">Keld_Simonsen</a>]</td>
+ <td>iso-ir-95<br />jp-ocr-hand-add<br />csISO95JIS62291984handadd</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>JIS_C6229-1984-kana</td>
+ <td>72</td>
+ <td>
+ [<a href="http://www.itscj.ipsj.or.jp/ISO-IR/">ISO-IR: International Register of Escape Sequences</a>]<br />
+ Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ </td>
+ <td>[<a href="http://www.iana.org/go/rfc1345">RFC1345</a>][<a href="#Keld_Simonsen">Keld_Simonsen</a>]</td>
+ <td>iso-ir-96<br />csISO96JISC62291984kana</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>ISO_2033-1983</td>
+ <td>73</td>
+ <td>
+ [<a href="http://www.itscj.ipsj.or.jp/ISO-IR/">ISO-IR: International Register of Escape Sequences</a>]<br />
+ Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ </td>
+ <td>[<a href="http://www.iana.org/go/rfc1345">RFC1345</a>][<a href="#Keld_Simonsen">Keld_Simonsen</a>]</td>
+ <td>iso-ir-98<br />e13b<br />csISO2033</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>ANSI_X3.110-1983</td>
+ <td>74</td>
+ <td>
+ [<a href="http://www.itscj.ipsj.or.jp/ISO-IR/">ISO-IR: International Register of Escape Sequences</a>]<br />
+ Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ </td>
+ <td>[<a href="http://www.iana.org/go/rfc1345">RFC1345</a>][<a href="#Keld_Simonsen">Keld_Simonsen</a>]</td>
+ <td>iso-ir-99<br />CSA_T500-1983<br />NAPLPS<br />csISO99NAPLPS</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>T.61-7bit</td>
+ <td>75</td>
+ <td>
+ [<a href="http://www.itscj.ipsj.or.jp/ISO-IR/">ISO-IR: International Register of Escape Sequences</a>]<br />
+ Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ </td>
+ <td>[<a href="http://www.iana.org/go/rfc1345">RFC1345</a>][<a href="#Keld_Simonsen">Keld_Simonsen</a>]</td>
+ <td>iso-ir-102<br />csISO102T617bit</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>T.61-8bit</td>
+ <td>76</td>
+ <td>
+ [<a href="http://www.itscj.ipsj.or.jp/ISO-IR/">ISO-IR: International Register of Escape Sequences</a>]<br />
+ Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ </td>
+ <td>[<a href="http://www.iana.org/go/rfc1345">RFC1345</a>][<a href="#Keld_Simonsen">Keld_Simonsen</a>]</td>
+ <td>T.61<br />iso-ir-103<br />csISO103T618bit</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>ECMA-cyrillic</td>
+ <td>77</td>
+ <td>[<a href="http://www.itscj.ipsj.or.jp/ISO-IR/111.pdf">ISO registry</a>]
+ (formerly [<a href="http://www.itscj.ipsj.or.jp/ISO-IR/">ECMA
+ registry</a>])</td>
+ <td></td>
+ <td>iso-ir-111<br />KOI8-E<br />csISO111ECMACyrillic</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>CSA_Z243.4-1985-1</td>
+ <td>78</td>
+ <td>
+ [<a href="http://www.itscj.ipsj.or.jp/ISO-IR/">ISO-IR: International Register of Escape Sequences</a>]<br />
+ Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ </td>
+ <td>[<a href="http://www.iana.org/go/rfc1345">RFC1345</a>][<a href="#Keld_Simonsen">Keld_Simonsen</a>]</td>
+ <td>iso-ir-121<br />ISO646-CA<br />csa7-1<br />csa71<br />ca<br />csISO121Canadian1</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>CSA_Z243.4-1985-2</td>
+ <td>79</td>
+ <td>
+ [<a href="http://www.itscj.ipsj.or.jp/ISO-IR/">ISO-IR: International Register of Escape Sequences</a>]<br />
+ Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ </td>
+ <td>[<a href="http://www.iana.org/go/rfc1345">RFC1345</a>][<a href="#Keld_Simonsen">Keld_Simonsen</a>]</td>
+ <td>iso-ir-122<br />ISO646-CA2<br />csa7-2<br />csa72<br />csISO122Canadian2</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>CSA_Z243.4-1985-gr</td>
+ <td>80</td>
+ <td>
+ [<a href="http://www.itscj.ipsj.or.jp/ISO-IR/">ISO-IR: International Register of Escape Sequences</a>]<br />
+ Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ </td>
+ <td>[<a href="http://www.iana.org/go/rfc1345">RFC1345</a>][<a href="#Keld_Simonsen">Keld_Simonsen</a>]</td>
+ <td>iso-ir-123<br />csISO123CSAZ24341985gr</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td>ISO-8859-6-E</td>
+ <td>ISO_8859-6-E</td>
+ <td>81</td>
+ <td>
+ [<a href="http://www.iana.org/go/rfc1556">RFC1556</a>]
+ </td>
+ <td>[<a href="http://www.iana.org/go/rfc1556">RFC1556</a>][<a href="#IANA">IANA</a>]</td>
+ <td>csISO88596E<br />ISO-8859-6-E</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td>ISO-8859-6-I</td>
+ <td>ISO_8859-6-I</td>
+ <td>82</td>
+ <td>
+ [<a href="http://www.iana.org/go/rfc1556">RFC1556</a>]
+ </td>
+ <td>[<a href="http://www.iana.org/go/rfc1556">RFC1556</a>][<a href="#IANA">IANA</a>]</td>
+ <td>csISO88596I<br />ISO-8859-6-I</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>T.101-G2</td>
+ <td>83</td>
+ <td>
+ [<a href="http://www.itscj.ipsj.or.jp/ISO-IR/">ISO-IR: International Register of Escape Sequences</a>]<br />
+ Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ </td>
+ <td>[<a href="http://www.iana.org/go/rfc1345">RFC1345</a>][<a href="#Keld_Simonsen">Keld_Simonsen</a>]</td>
+ <td>iso-ir-128<br />csISO128T101G2</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td>ISO-8859-8-E</td>
+ <td>ISO_8859-8-E</td>
+ <td>84</td>
+ <td>
+ [<a href="http://www.iana.org/go/rfc1556">RFC1556</a>]
+ </td>
+ <td>[<a href="http://www.iana.org/go/rfc1556">RFC1556</a>][<a href="#Hank_Nussbacher">Hank_Nussbacher</a>]</td>
+ <td>csISO88598E<br />ISO-8859-8-E</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td>ISO-8859-8-I</td>
+ <td>ISO_8859-8-I</td>
+ <td>85</td>
+ <td>
+ [<a href="http://www.iana.org/go/rfc1556">RFC1556</a>]
+ </td>
+ <td>[<a href="http://www.iana.org/go/rfc1556">RFC1556</a>][<a href="#Hank_Nussbacher">Hank_Nussbacher</a>]</td>
+ <td>csISO88598I<br />ISO-8859-8-I</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>CSN_369103</td>
+ <td>86</td>
+ <td>
+ [<a href="http://www.itscj.ipsj.or.jp/ISO-IR/">ISO-IR: International Register of Escape Sequences</a>]<br />
+ Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ </td>
+ <td>[<a href="http://www.iana.org/go/rfc1345">RFC1345</a>][<a href="#Keld_Simonsen">Keld_Simonsen</a>]</td>
+ <td>iso-ir-139<br />csISO139CSN369103</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>JUS_I.B1.002</td>
+ <td>87</td>
+ <td>
+ [<a href="http://www.itscj.ipsj.or.jp/ISO-IR/">ISO-IR: International Register of Escape Sequences</a>]<br />
+ Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ </td>
+ <td>[<a href="http://www.iana.org/go/rfc1345">RFC1345</a>][<a href="#Keld_Simonsen">Keld_Simonsen</a>]</td>
+ <td>iso-ir-141<br />ISO646-YU<br />js<br />yu<br />csISO141JUSIB1002</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>IEC_P27-1</td>
+ <td>88</td>
+ <td>
+ [<a href="http://www.itscj.ipsj.or.jp/ISO-IR/">ISO-IR: International Register of Escape Sequences</a>]<br />
+ Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ </td>
+ <td>[<a href="http://www.iana.org/go/rfc1345">RFC1345</a>][<a href="#Keld_Simonsen">Keld_Simonsen</a>]</td>
+ <td>iso-ir-143<br />csISO143IECP271</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>JUS_I.B1.003-serb</td>
+ <td>89</td>
+ <td>
+ [<a href="http://www.itscj.ipsj.or.jp/ISO-IR/">ISO-IR: International Register of Escape Sequences</a>]<br />
+ Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ </td>
+ <td>[<a href="http://www.iana.org/go/rfc1345">RFC1345</a>][<a href="#Keld_Simonsen">Keld_Simonsen</a>]</td>
+ <td>iso-ir-146<br />serbian<br />csISO146Serbian</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>JUS_I.B1.003-mac</td>
+ <td>90</td>
+ <td>
+ [<a href="http://www.itscj.ipsj.or.jp/ISO-IR/">ISO-IR: International Register of Escape Sequences</a>]<br />
+ Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ </td>
+ <td>[<a href="http://www.iana.org/go/rfc1345">RFC1345</a>][<a href="#Keld_Simonsen">Keld_Simonsen</a>]</td>
+ <td>macedonian<br />iso-ir-147<br />csISO147Macedonian</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>greek-ccitt</td>
+ <td>91</td>
+ <td>
+ [<a href="http://www.itscj.ipsj.or.jp/ISO-IR/">ISO-IR: International Register of Escape Sequences</a>]<br />
+ Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ </td>
+ <td>[<a href="http://www.iana.org/go/rfc1345">RFC1345</a>][<a href="#Keld_Simonsen">Keld_Simonsen</a>]</td>
+ <td>iso-ir-150<br />csISO150<br />csISO150GreekCCITT</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>NC_NC00-10:81</td>
+ <td>92</td>
+ <td>
+ [<a href="http://www.itscj.ipsj.or.jp/ISO-IR/">ISO-IR: International Register of Escape Sequences</a>]<br />
+ Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ </td>
+ <td>[<a href="http://www.iana.org/go/rfc1345">RFC1345</a>][<a href="#Keld_Simonsen">Keld_Simonsen</a>]</td>
+ <td>cuba<br />iso-ir-151<br />ISO646-CU<br />csISO151Cuba</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>ISO_6937-2-25</td>
+ <td>93</td>
+ <td>
+ [<a href="http://www.itscj.ipsj.or.jp/ISO-IR/">ISO-IR: International Register of Escape Sequences</a>]<br />
+ Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ </td>
+ <td>[<a href="http://www.iana.org/go/rfc1345">RFC1345</a>][<a href="#Keld_Simonsen">Keld_Simonsen</a>]</td>
+ <td>iso-ir-152<br />csISO6937Add</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>GOST_19768-74</td>
+ <td>94</td>
+ <td>
+ [<a href="http://www.itscj.ipsj.or.jp/ISO-IR/">ISO-IR: International Register of Escape Sequences</a>]<br />
+ Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ </td>
+ <td>[<a href="http://www.iana.org/go/rfc1345">RFC1345</a>][<a href="#Keld_Simonsen">Keld_Simonsen</a>]</td>
+ <td>ST_SEV_358-88<br />iso-ir-153<br />csISO153GOST1976874</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>ISO_8859-supp</td>
+ <td>95</td>
+ <td>
+ [<a href="http://www.itscj.ipsj.or.jp/ISO-IR/">ISO-IR: International Register of Escape Sequences</a>]<br />
+ Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ </td>
+ <td>[<a href="http://www.iana.org/go/rfc1345">RFC1345</a>][<a href="#Keld_Simonsen">Keld_Simonsen</a>]</td>
+ <td>iso-ir-154<br />latin1-2-5<br />csISO8859Supp</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>ISO_10367-box</td>
+ <td>96</td>
+ <td>
+ [<a href="http://www.itscj.ipsj.or.jp/ISO-IR/">ISO-IR: International Register of Escape Sequences</a>]<br />
+ Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ </td>
+ <td>[<a href="http://www.iana.org/go/rfc1345">RFC1345</a>][<a href="#Keld_Simonsen">Keld_Simonsen</a>]</td>
+ <td>iso-ir-155<br />csISO10367Box</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>latin-lap</td>
+ <td>97</td>
+ <td>
+ [<a href="http://www.itscj.ipsj.or.jp/ISO-IR/">ISO-IR: International Register of Escape Sequences</a>]<br />
+ Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ </td>
+ <td>[<a href="http://www.iana.org/go/rfc1345">RFC1345</a>][<a href="#Keld_Simonsen">Keld_Simonsen</a>]</td>
+ <td>lap<br />iso-ir-158<br />csISO158Lap</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>JIS_X0212-1990</td>
+ <td>98</td>
+ <td>
+ [<a href="http://www.itscj.ipsj.or.jp/ISO-IR/">ISO-IR: International Register of Escape Sequences</a>]<br />
+ Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ </td>
+ <td>[<a href="http://www.iana.org/go/rfc1345">RFC1345</a>][<a href="#Keld_Simonsen">Keld_Simonsen</a>]</td>
+ <td>x0212<br />iso-ir-159<br />csISO159JISX02121990</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>DS_2089</td>
+ <td>99</td>
+ <td>Danish Standard, DS 2089, February 1974</td>
+ <td>[<a href="http://www.iana.org/go/rfc1345">RFC1345</a>][<a href="#Keld_Simonsen">Keld_Simonsen</a>]</td>
+ <td>DS2089<br />ISO646-DK<br />dk<br />csISO646Danish</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>us-dk</td>
+ <td>100</td>
+ <td></td>
+ <td>[<a href="http://www.iana.org/go/rfc1345">RFC1345</a>][<a href="#Keld_Simonsen">Keld_Simonsen</a>]</td>
+ <td>csUSDK</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>dk-us</td>
+ <td>101</td>
+ <td></td>
+ <td>[<a href="http://www.iana.org/go/rfc1345">RFC1345</a>][<a href="#Keld_Simonsen">Keld_Simonsen</a>]</td>
+ <td>csDKUS</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>KSC5636</td>
+ <td>102</td>
+ <td></td>
+ <td>[<a href="http://www.iana.org/go/rfc1345">RFC1345</a>][<a href="#Keld_Simonsen">Keld_Simonsen</a>]</td>
+ <td>ISO646-KR<br />csKSC5636</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>UNICODE-1-1-UTF-7</td>
+ <td>103</td>
+ <td>
+ [<a href="http://www.iana.org/go/rfc1642">RFC1642</a>]
+ </td>
+ <td>[<a href="http://www.iana.org/go/rfc1642">RFC1642</a>]</td>
+ <td>csUnicode11UTF7</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>ISO-2022-CN</td>
+ <td>104</td>
+ <td>
+ [<a href="http://www.iana.org/go/rfc1922">RFC1922</a>]
+ </td>
+ <td>[<a href="http://www.iana.org/go/rfc1922">RFC1922</a>]</td>
+ <td>csISO2022CN</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>ISO-2022-CN-EXT</td>
+ <td>105</td>
+ <td>
+ [<a href="http://www.iana.org/go/rfc1922">RFC1922</a>]
+ </td>
+ <td>[<a href="http://www.iana.org/go/rfc1922">RFC1922</a>]</td>
+ <td>csISO2022CNEXT</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>UTF-8</td>
+ <td>106</td>
+ <td>
+ [<a href="http://www.iana.org/go/rfc3629">RFC3629</a>]
+ </td>
+ <td>[<a href="http://www.iana.org/go/rfc3629">RFC3629</a>]</td>
+ <td>csUTF8</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>ISO-8859-13</td>
+ <td>109</td>
+ <td>ISO See [<a href="http://www.iana.org/assignments/charset-reg/ISO-8859-13">http://www.iana.org/assignments/charset-reg/ISO-8859-13</a>][<a href="#Vladas_Tumasonis">Vladas_Tumasonis</a>]</td>
+ <td></td>
+ <td>csISO885913</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>ISO-8859-14</td>
+ <td>110</td>
+ <td>ISO See [<a href="http://www.iana.org/assignments/charset-reg/ISO-8859-14">http://www.iana.org/assignments/charset-reg/ISO-8859-14</a>] [<a href="#Keld_Simonsen_2">Keld_Simonsen_2</a>]</td>
+ <td></td>
+ <td>iso-ir-199<br />ISO_8859-14:1998<br />ISO_8859-14<br />latin8<br />iso-celtic<br />l8<br />csISO885914</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>ISO-8859-15</td>
+ <td>111</td>
+ <td>ISO
+Please see: [<a href="http://www.iana.org/assignments/charset-reg/ISO-8859-15">http://www.iana.org/assignments/charset-reg/ISO-8859-15</a>]</td>
+ <td></td>
+ <td>ISO_8859-15<br />Latin-9<br />csISO885915</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>ISO-8859-16</td>
+ <td>112</td>
+ <td>ISO</td>
+ <td></td>
+ <td>iso-ir-226<br />ISO_8859-16:2001<br />ISO_8859-16<br />latin10<br />l10<br />csISO885916</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>GBK</td>
+ <td>113</td>
+ <td>Chinese IT Standardization Technical Committee
+Please see: [<a href="http://www.iana.org/assignments/charset-reg/GBK">http://www.iana.org/assignments/charset-reg/GBK</a>]</td>
+ <td></td>
+ <td>CP936<br />MS936<br />windows-936<br />csGBK</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>GB18030</td>
+ <td>114</td>
+ <td>Chinese IT Standardization Technical Committee
+Please see: [<a href="http://www.iana.org/assignments/charset-reg/GB18030">http://www.iana.org/assignments/charset-reg/GB18030</a>]</td>
+ <td></td>
+ <td>csGB18030</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>OSD_EBCDIC_DF04_15</td>
+ <td>115</td>
+ <td>Fujitsu-Siemens standard mainframe EBCDIC encoding
+Please see: [<a href="http://www.iana.org/assignments/charset-reg/OSD-EBCDIC-DF04-15">http://www.iana.org/assignments/charset-reg/OSD-EBCDIC-DF04-15</a>]</td>
+ <td></td>
+ <td>csOSDEBCDICDF0415</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>OSD_EBCDIC_DF03_IRV</td>
+ <td>116</td>
+ <td>Fujitsu-Siemens standard mainframe EBCDIC encoding
+Please see: [<a href="http://www.iana.org/assignments/charset-reg/OSD-EBCDIC-DF03-IRV">http://www.iana.org/assignments/charset-reg/OSD-EBCDIC-DF03-IRV</a>]</td>
+ <td></td>
+ <td>csOSDEBCDICDF03IRV</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>OSD_EBCDIC_DF04_1</td>
+ <td>117</td>
+ <td>Fujitsu-Siemens standard mainframe EBCDIC encoding
+Please see: [<a href="http://www.iana.org/assignments/charset-reg/OSD-EBCDIC-DF04-1">http://www.iana.org/assignments/charset-reg/OSD-EBCDIC-DF04-1</a>]</td>
+ <td></td>
+ <td>csOSDEBCDICDF041</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>ISO-11548-1</td>
+ <td>118</td>
+ <td>See [<a href="http://www.iana.org/assignments/charset-reg/ISO-11548-1">http://www.iana.org/assignments/charset-reg/ISO-11548-1</a>] [<a href="#Samuel_Thibault">Samuel_Thibault</a>]</td>
+ <td></td>
+ <td>ISO_11548-1<br />ISO_TR_11548-1<br />csISO115481</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>KZ-1048</td>
+ <td>119</td>
+ <td>See [<a href="http://www.iana.org/assignments/charset-reg/KZ-1048">http://www.iana.org/assignments/charset-reg/KZ-1048</a>] [<a href="#Sairan_M_Kikkarin">Sairan_M_Kikkarin</a>][<a href="#Alexei_Veremeev">Alexei_Veremeev</a>]</td>
+ <td></td>
+ <td>STRK1048-2002<br />RK1048<br />csKZ1048</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>ISO-10646-UCS-2</td>
+ <td>1000</td>
+ <td>the 2-octet Basic Multilingual Plane, aka Unicode
+this needs to specify network byte order: the standard
+does not specify (it is a 16-bit integer space)</td>
+ <td></td>
+ <td>csUnicode</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>ISO-10646-UCS-4</td>
+ <td>1001</td>
+ <td>the full code space. (same comment about byte order,
+these are 31-bit numbers.</td>
+ <td></td>
+ <td>csUCS4</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>ISO-10646-UCS-Basic</td>
+ <td>1002</td>
+ <td>ASCII subset of Unicode. Basic Latin = collection 1
+See ISO 10646, Appendix A</td>
+ <td></td>
+ <td>csUnicodeASCII</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>ISO-10646-Unicode-Latin1</td>
+ <td>1003</td>
+ <td>ISO Latin-1 subset of Unicode. Basic Latin and Latin-1
+Supplement = collections 1 and 2. See ISO 10646,
+Appendix A. See [<a href="http://www.iana.org/go/rfc1815">RFC1815</a>].</td>
+ <td></td>
+ <td>csUnicodeLatin1<br />ISO-10646</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>ISO-10646-J-1</td>
+ <td>1004</td>
+ <td>ISO 10646 Japanese, see [<a href="http://www.iana.org/go/rfc1815">RFC1815</a>].</td>
+ <td></td>
+ <td>csUnicodeJapanese</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>ISO-Unicode-IBM-1261</td>
+ <td>1005</td>
+ <td>IBM Latin-2, -3, -5, Extended Presentation Set, GCSGID: 1261</td>
+ <td></td>
+ <td>csUnicodeIBM1261</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>ISO-Unicode-IBM-1268</td>
+ <td>1006</td>
+ <td>IBM Latin-4 Extended Presentation Set, GCSGID: 1268</td>
+ <td></td>
+ <td>csUnicodeIBM1268</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>ISO-Unicode-IBM-1276</td>
+ <td>1007</td>
+ <td>IBM Cyrillic Greek Extended Presentation Set, GCSGID: 1276</td>
+ <td></td>
+ <td>csUnicodeIBM1276</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>ISO-Unicode-IBM-1264</td>
+ <td>1008</td>
+ <td>IBM Arabic Presentation Set, GCSGID: 1264</td>
+ <td></td>
+ <td>csUnicodeIBM1264</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>ISO-Unicode-IBM-1265</td>
+ <td>1009</td>
+ <td>IBM Hebrew Presentation Set, GCSGID: 1265</td>
+ <td></td>
+ <td>csUnicodeIBM1265</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>UNICODE-1-1</td>
+ <td>1010</td>
+ <td>
+ [<a href="http://www.iana.org/go/rfc1641">RFC1641</a>]
+ </td>
+ <td>[<a href="http://www.iana.org/go/rfc1641">RFC1641</a>]</td>
+ <td>csUnicode11</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>SCSU</td>
+ <td>1011</td>
+ <td>SCSU See [<a href="http://www.iana.org/assignments/charset-reg/SCSU">http://www.iana.org/assignments/charset-reg/SCSU</a>] [<a href="#Markus_Scherer">Markus_Scherer</a>]</td>
+ <td></td>
+ <td>csSCSU</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>UTF-7</td>
+ <td>1012</td>
+ <td>
+ [<a href="http://www.iana.org/go/rfc2152">RFC2152</a>]
+ </td>
+ <td>[<a href="http://www.iana.org/go/rfc2152">RFC2152</a>]</td>
+ <td>csUTF7</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>UTF-16BE</td>
+ <td>1013</td>
+ <td>
+ [<a href="http://www.iana.org/go/rfc2781">RFC2781</a>]
+ </td>
+ <td>[<a href="http://www.iana.org/go/rfc2781">RFC2781</a>]</td>
+ <td>csUTF16BE</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>UTF-16LE</td>
+ <td>1014</td>
+ <td>
+ [<a href="http://www.iana.org/go/rfc2781">RFC2781</a>]
+ </td>
+ <td>[<a href="http://www.iana.org/go/rfc2781">RFC2781</a>]</td>
+ <td>csUTF16LE</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>UTF-16</td>
+ <td>1015</td>
+ <td>
+ [<a href="http://www.iana.org/go/rfc2781">RFC2781</a>]
+ </td>
+ <td>[<a href="http://www.iana.org/go/rfc2781">RFC2781</a>]</td>
+ <td>csUTF16</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>CESU-8</td>
+ <td>1016</td>
+ <td>
+ [<a href="http://www.unicode.org/unicode/reports/tr26">http://www.unicode.org/unicode/reports/tr26</a>]
+ </td>
+ <td>[<a href="#Toby_Phipps">Toby_Phipps</a>]</td>
+ <td>csCESU8<br />csCESU-8</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>UTF-32</td>
+ <td>1017</td>
+ <td>
+ [<a href="http://www.unicode.org/unicode/reports/tr19/">http://www.unicode.org/unicode/reports/tr19/</a>]
+ </td>
+ <td>[<a href="#Mark_Davis">Mark_Davis</a>]</td>
+ <td>csUTF32</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>UTF-32BE</td>
+ <td>1018</td>
+ <td>
+ [<a href="http://www.unicode.org/unicode/reports/tr19/">http://www.unicode.org/unicode/reports/tr19/</a>]
+ </td>
+ <td>[<a href="#Mark_Davis">Mark_Davis</a>]</td>
+ <td>csUTF32BE</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>UTF-32LE</td>
+ <td>1019</td>
+ <td>
+ [<a href="http://www.unicode.org/unicode/reports/tr19/">http://www.unicode.org/unicode/reports/tr19/</a>]
+ </td>
+ <td>[<a href="#Mark_Davis">Mark_Davis</a>]</td>
+ <td>csUTF32LE</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>BOCU-1</td>
+ <td>1020</td>
+ <td>
+ [<a href="http://www.unicode.org/notes/tn6/">http://www.unicode.org/notes/tn6/</a>]
+ </td>
+ <td>[<a href="#Markus_Scherer">Markus_Scherer</a>]</td>
+ <td>csBOCU1<br />csBOCU-1</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>ISO-8859-1-Windows-3.0-Latin-1</td>
+ <td>2000</td>
+ <td>Extended ISO 8859-1 Latin-1 for Windows 3.0.
+PCL Symbol Set id: 9U</td>
+ <td>[Hewlett-Packard Company, "HP PCL 5 Comparison Guide",
+(P/N 5021-0329) pp B-13, 1996.]</td>
+ <td>csWindows30Latin1</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>ISO-8859-1-Windows-3.1-Latin-1</td>
+ <td>2001</td>
+ <td>Extended ISO 8859-1 Latin-1 for Windows 3.1.
+PCL Symbol Set id: 19U</td>
+ <td>[Hewlett-Packard Company, "HP PCL 5 Comparison Guide",
+(P/N 5021-0329) pp B-13, 1996.]</td>
+ <td>csWindows31Latin1</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>ISO-8859-2-Windows-Latin-2</td>
+ <td>2002</td>
+ <td>Extended ISO 8859-2. Latin-2 for Windows 3.1.
+PCL Symbol Set id: 9E</td>
+ <td>[Hewlett-Packard Company, "HP PCL 5 Comparison Guide",
+(P/N 5021-0329) pp B-13, 1996.]</td>
+ <td>csWindows31Latin2</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>ISO-8859-9-Windows-Latin-5</td>
+ <td>2003</td>
+ <td>Extended ISO 8859-9. Latin-5 for Windows 3.1
+PCL Symbol Set id: 5T</td>
+ <td>[Hewlett-Packard Company, "HP PCL 5 Comparison Guide",
+(P/N 5021-0329) pp B-13, 1996.]</td>
+ <td>csWindows31Latin5</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>hp-roman8</td>
+ <td>2004</td>
+ <td>LaserJet IIP Printer User's Manual,
+HP part no 33471-90901, Hewlet-Packard, June 1989.</td>
+ <td>[Hewlett-Packard Company, "HP PCL 5 Comparison Guide",
+(P/N 5021-0329) pp B-13, 1996.][<a href="http://www.iana.org/go/rfc1345">RFC1345</a>][<a href="#Keld_Simonsen">Keld_Simonsen</a>]</td>
+ <td>roman8<br />r8<br />csHPRoman8</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>Adobe-Standard-Encoding</td>
+ <td>2005</td>
+ <td>PostScript Language Reference Manual
+PCL Symbol Set id: 10J</td>
+ <td>[Adobe Systems Incorporated, PostScript Language Reference
+Manual, second edition, Addison-Wesley Publishing Company,
+Inc., 1990.]</td>
+ <td>csAdobeStandardEncoding</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>Ventura-US</td>
+ <td>2006</td>
+ <td>Ventura US. ASCII plus characters typically used in
+publishing, like pilcrow, copyright, registered, trade mark,
+section, dagger, and double dagger in the range A0 (hex)
+to FF (hex).
+PCL Symbol Set id: 14J</td>
+ <td>[Hewlett-Packard Company, "HP PCL 5 Comparison Guide",
+(P/N 5021-0329) pp B-13, 1996.]</td>
+ <td>csVenturaUS</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>Ventura-International</td>
+ <td>2007</td>
+ <td>Ventura International. ASCII plus coded characters similar
+to Roman8.
+PCL Symbol Set id: 13J</td>
+ <td>[Hewlett-Packard Company, "HP PCL 5 Comparison Guide",
+(P/N 5021-0329) pp B-13, 1996.]</td>
+ <td>csVenturaInternational</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>DEC-MCS</td>
+ <td>2008</td>
+ <td>VAX/VMS User's Manual,
+Order Number: AI-Y517A-TE, April 1986.</td>
+ <td>[<a href="http://www.iana.org/go/rfc1345">RFC1345</a>][<a href="#Keld_Simonsen">Keld_Simonsen</a>]</td>
+ <td>dec<br />csDECMCS</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>IBM850</td>
+ <td>2009</td>
+ <td>IBM NLS RM Vol2 SE09-8002-01, March 1990</td>
+ <td>[<a href="http://www.iana.org/go/rfc1345">RFC1345</a>][<a href="#Keld_Simonsen">Keld_Simonsen</a>]</td>
+ <td>cp850<br />850<br />csPC850Multilingual</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>PC8-Danish-Norwegian</td>
+ <td>2012</td>
+ <td>PC Danish Norwegian
+8-bit PC set for Danish Norwegian
+PCL Symbol Set id: 11U</td>
+ <td>[Hewlett-Packard Company, "HP PCL 5 Comparison Guide",
+(P/N 5021-0329) pp B-13, 1996.]</td>
+ <td>csPC8DanishNorwegian</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>IBM862</td>
+ <td>2013</td>
+ <td>IBM NLS RM Vol2 SE09-8002-01, March 1990</td>
+ <td>[<a href="http://www.iana.org/go/rfc1345">RFC1345</a>][<a href="#Keld_Simonsen">Keld_Simonsen</a>]</td>
+ <td>cp862<br />862<br />csPC862LatinHebrew</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>PC8-Turkish</td>
+ <td>2014</td>
+ <td>PC Latin Turkish. PCL Symbol Set id: 9T</td>
+ <td>[Hewlett-Packard Company, "HP PCL 5 Comparison Guide",
+(P/N 5021-0329) pp B-13, 1996.]</td>
+ <td>csPC8Turkish</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>IBM-Symbols</td>
+ <td>2015</td>
+ <td>Presentation Set, CPGID: 259</td>
+ <td>[IBM Corporation, "ABOUT TYPE: IBM's Technical Reference
+for Core Interchange Digitized Type", Publication number
+S544-3708-01]</td>
+ <td>csIBMSymbols</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>IBM-Thai</td>
+ <td>2016</td>
+ <td>Presentation Set, CPGID: 838</td>
+ <td>[IBM Corporation, "ABOUT TYPE: IBM's Technical Reference
+for Core Interchange Digitized Type", Publication number
+S544-3708-01]</td>
+ <td>csIBMThai</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>HP-Legal</td>
+ <td>2017</td>
+ <td>PCL 5 Comparison Guide, Hewlett-Packard,
+HP part number 5961-0510, October 1992
+PCL Symbol Set id: 1U</td>
+ <td>[Hewlett-Packard Company, "HP PCL 5 Comparison Guide",
+(P/N 5021-0329) pp B-13, 1996.]</td>
+ <td>csHPLegal</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>HP-Pi-font</td>
+ <td>2018</td>
+ <td>PCL 5 Comparison Guide, Hewlett-Packard,
+HP part number 5961-0510, October 1992
+PCL Symbol Set id: 15U</td>
+ <td>[Hewlett-Packard Company, "HP PCL 5 Comparison Guide",
+(P/N 5021-0329) pp B-13, 1996.]</td>
+ <td>csHPPiFont</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>HP-Math8</td>
+ <td>2019</td>
+ <td>PCL 5 Comparison Guide, Hewlett-Packard,
+HP part number 5961-0510, October 1992
+PCL Symbol Set id: 8M</td>
+ <td>[Hewlett-Packard Company, "HP PCL 5 Comparison Guide",
+(P/N 5021-0329) pp B-13, 1996.]</td>
+ <td>csHPMath8</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>Adobe-Symbol-Encoding</td>
+ <td>2020</td>
+ <td>PostScript Language Reference Manual
+PCL Symbol Set id: 5M</td>
+ <td>[Adobe Systems Incorporated, PostScript Language Reference
+Manual, second edition, Addison-Wesley Publishing Company,
+Inc., 1990.]</td>
+ <td>csHPPSMath</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>HP-DeskTop</td>
+ <td>2021</td>
+ <td>PCL 5 Comparison Guide, Hewlett-Packard,
+HP part number 5961-0510, October 1992
+PCL Symbol Set id: 7J</td>
+ <td>[Hewlett-Packard Company, "HP PCL 5 Comparison Guide",
+(P/N 5021-0329) pp B-13, 1996.]</td>
+ <td>csHPDesktop</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>Ventura-Math</td>
+ <td>2022</td>
+ <td>PCL 5 Comparison Guide, Hewlett-Packard,
+HP part number 5961-0510, October 1992
+PCL Symbol Set id: 6M</td>
+ <td>[Hewlett-Packard Company, "HP PCL 5 Comparison Guide",
+(P/N 5021-0329) pp B-13, 1996.]</td>
+ <td>csVenturaMath</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>Microsoft-Publishing</td>
+ <td>2023</td>
+ <td>PCL 5 Comparison Guide, Hewlett-Packard,
+HP part number 5961-0510, October 1992
+PCL Symbol Set id: 6J</td>
+ <td>[Hewlett-Packard Company, "HP PCL 5 Comparison Guide",
+(P/N 5021-0329) pp B-13, 1996.]</td>
+ <td>csMicrosoftPublishing</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>Windows-31J</td>
+ <td>2024</td>
+ <td>Windows Japanese. A further extension of Shift_JIS
+to include NEC special characters (Row 13), NEC
+selection of IBM extensions (Rows 89 to 92), and IBM
+extensions (Rows 115 to 119). The CCS's are
+JIS X0201:1997, JIS X0208:1997, and these extensions.
+This charset can be used for the top-level media type "text",
+but it is of limited or specialized use (see [<a href="http://www.iana.org/go/rfc2278">RFC2278</a>]).
+PCL Symbol Set id: 19K</td>
+ <td></td>
+ <td>csWindows31J</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td>GB2312</td>
+ <td>GB2312</td>
+ <td>2025</td>
+ <td>Chinese for People's Republic of China (PRC) mixed one byte,
+two byte set:
+20-7E = one byte ASCII
+A1-FE = two byte PRC Kanji
+See GB 2312-80
+PCL Symbol Set Id: 18C</td>
+ <td></td>
+ <td>csGB2312</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td>Big5</td>
+ <td>Big5</td>
+ <td>2026</td>
+ <td>Chinese for Taiwan Multi-byte set.
+PCL Symbol Set Id: 18T</td>
+ <td></td>
+ <td>csBig5</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>macintosh</td>
+ <td>2027</td>
+ <td>The Unicode Standard ver1.0, ISBN 0-201-56788-1, Oct 1991</td>
+ <td>[<a href="http://www.iana.org/go/rfc1345">RFC1345</a>][<a href="#Keld_Simonsen">Keld_Simonsen</a>]</td>
+ <td>mac<br />csMacintosh</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>IBM037</td>
+ <td>2028</td>
+ <td>IBM NLS RM Vol2 SE09-8002-01, March 1990</td>
+ <td>[<a href="http://www.iana.org/go/rfc1345">RFC1345</a>][<a href="#Keld_Simonsen">Keld_Simonsen</a>]</td>
+ <td>cp037<br />ebcdic-cp-us<br />ebcdic-cp-ca<br />ebcdic-cp-wt<br />ebcdic-cp-nl<br />csIBM037</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>IBM038</td>
+ <td>2029</td>
+ <td>IBM 3174 Character Set Ref, GA27-3831-02, March 1990</td>
+ <td>[<a href="http://www.iana.org/go/rfc1345">RFC1345</a>][<a href="#Keld_Simonsen">Keld_Simonsen</a>]</td>
+ <td>EBCDIC-INT<br />cp038<br />csIBM038</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>IBM273</td>
+ <td>2030</td>
+ <td>IBM NLS RM Vol2 SE09-8002-01, March 1990</td>
+ <td>[<a href="http://www.iana.org/go/rfc1345">RFC1345</a>][<a href="#Keld_Simonsen">Keld_Simonsen</a>]</td>
+ <td>CP273<br />csIBM273</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>IBM274</td>
+ <td>2031</td>
+ <td>IBM 3174 Character Set Ref, GA27-3831-02, March 1990</td>
+ <td>[<a href="http://www.iana.org/go/rfc1345">RFC1345</a>][<a href="#Keld_Simonsen">Keld_Simonsen</a>]</td>
+ <td>EBCDIC-BE<br />CP274<br />csIBM274</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>IBM275</td>
+ <td>2032</td>
+ <td>IBM NLS RM Vol2 SE09-8002-01, March 1990</td>
+ <td>[<a href="http://www.iana.org/go/rfc1345">RFC1345</a>][<a href="#Keld_Simonsen">Keld_Simonsen</a>]</td>
+ <td>EBCDIC-BR<br />cp275<br />csIBM275</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>IBM277</td>
+ <td>2033</td>
+ <td>IBM NLS RM Vol2 SE09-8002-01, March 1990</td>
+ <td>[<a href="http://www.iana.org/go/rfc1345">RFC1345</a>][<a href="#Keld_Simonsen">Keld_Simonsen</a>]</td>
+ <td>EBCDIC-CP-DK<br />EBCDIC-CP-NO<br />csIBM277</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>IBM278</td>
+ <td>2034</td>
+ <td>IBM NLS RM Vol2 SE09-8002-01, March 1990</td>
+ <td>[<a href="http://www.iana.org/go/rfc1345">RFC1345</a>][<a href="#Keld_Simonsen">Keld_Simonsen</a>]</td>
+ <td>CP278<br />ebcdic-cp-fi<br />ebcdic-cp-se<br />csIBM278</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>IBM280</td>
+ <td>2035</td>
+ <td>IBM NLS RM Vol2 SE09-8002-01, March 1990</td>
+ <td>[<a href="http://www.iana.org/go/rfc1345">RFC1345</a>][<a href="#Keld_Simonsen">Keld_Simonsen</a>]</td>
+ <td>CP280<br />ebcdic-cp-it<br />csIBM280</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>IBM281</td>
+ <td>2036</td>
+ <td>IBM 3174 Character Set Ref, GA27-3831-02, March 1990</td>
+ <td>[<a href="http://www.iana.org/go/rfc1345">RFC1345</a>][<a href="#Keld_Simonsen">Keld_Simonsen</a>]</td>
+ <td>EBCDIC-JP-E<br />cp281<br />csIBM281</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>IBM284</td>
+ <td>2037</td>
+ <td>IBM NLS RM Vol2 SE09-8002-01, March 1990</td>
+ <td>[<a href="http://www.iana.org/go/rfc1345">RFC1345</a>][<a href="#Keld_Simonsen">Keld_Simonsen</a>]</td>
+ <td>CP284<br />ebcdic-cp-es<br />csIBM284</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>IBM285</td>
+ <td>2038</td>
+ <td>IBM NLS RM Vol2 SE09-8002-01, March 1990</td>
+ <td>[<a href="http://www.iana.org/go/rfc1345">RFC1345</a>][<a href="#Keld_Simonsen">Keld_Simonsen</a>]</td>
+ <td>CP285<br />ebcdic-cp-gb<br />csIBM285</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>IBM290</td>
+ <td>2039</td>
+ <td>IBM 3174 Character Set Ref, GA27-3831-02, March 1990</td>
+ <td>[<a href="http://www.iana.org/go/rfc1345">RFC1345</a>][<a href="#Keld_Simonsen">Keld_Simonsen</a>]</td>
+ <td>cp290<br />EBCDIC-JP-kana<br />csIBM290</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>IBM297</td>
+ <td>2040</td>
+ <td>IBM NLS RM Vol2 SE09-8002-01, March 1990</td>
+ <td>[<a href="http://www.iana.org/go/rfc1345">RFC1345</a>][<a href="#Keld_Simonsen">Keld_Simonsen</a>]</td>
+ <td>cp297<br />ebcdic-cp-fr<br />csIBM297</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>IBM420</td>
+ <td>2041</td>
+ <td>IBM NLS RM Vol2 SE09-8002-01, March 1990,
+IBM NLS RM p 11-11</td>
+ <td>[<a href="http://www.iana.org/go/rfc1345">RFC1345</a>][<a href="#Keld_Simonsen">Keld_Simonsen</a>]</td>
+ <td>cp420<br />ebcdic-cp-ar1<br />csIBM420</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>IBM423</td>
+ <td>2042</td>
+ <td>IBM NLS RM Vol2 SE09-8002-01, March 1990</td>
+ <td>[<a href="http://www.iana.org/go/rfc1345">RFC1345</a>][<a href="#Keld_Simonsen">Keld_Simonsen</a>]</td>
+ <td>cp423<br />ebcdic-cp-gr<br />csIBM423</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>IBM424</td>
+ <td>2043</td>
+ <td>IBM NLS RM Vol2 SE09-8002-01, March 1990</td>
+ <td>[<a href="http://www.iana.org/go/rfc1345">RFC1345</a>][<a href="#Keld_Simonsen">Keld_Simonsen</a>]</td>
+ <td>cp424<br />ebcdic-cp-he<br />csIBM424</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>IBM437</td>
+ <td>2011</td>
+ <td>IBM NLS RM Vol2 SE09-8002-01, March 1990</td>
+ <td>[<a href="http://www.iana.org/go/rfc1345">RFC1345</a>][<a href="#Keld_Simonsen">Keld_Simonsen</a>]</td>
+ <td>cp437<br />437<br />csPC8CodePage437</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>IBM500</td>
+ <td>2044</td>
+ <td>IBM NLS RM Vol2 SE09-8002-01, March 1990</td>
+ <td>[<a href="http://www.iana.org/go/rfc1345">RFC1345</a>][<a href="#Keld_Simonsen">Keld_Simonsen</a>]</td>
+ <td>CP500<br />ebcdic-cp-be<br />ebcdic-cp-ch<br />csIBM500</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>IBM851</td>
+ <td>2045</td>
+ <td>IBM NLS RM Vol2 SE09-8002-01, March 1990</td>
+ <td>[<a href="http://www.iana.org/go/rfc1345">RFC1345</a>][<a href="#Keld_Simonsen">Keld_Simonsen</a>]</td>
+ <td>cp851<br />851<br />csIBM851</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>IBM852</td>
+ <td>2010</td>
+ <td>IBM NLS RM Vol2 SE09-8002-01, March 1990</td>
+ <td>[<a href="http://www.iana.org/go/rfc1345">RFC1345</a>][<a href="#Keld_Simonsen">Keld_Simonsen</a>]</td>
+ <td>cp852<br />852<br />csPCp852</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>IBM855</td>
+ <td>2046</td>
+ <td>IBM NLS RM Vol2 SE09-8002-01, March 1990</td>
+ <td>[<a href="http://www.iana.org/go/rfc1345">RFC1345</a>][<a href="#Keld_Simonsen">Keld_Simonsen</a>]</td>
+ <td>cp855<br />855<br />csIBM855</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>IBM857</td>
+ <td>2047</td>
+ <td>IBM NLS RM Vol2 SE09-8002-01, March 1990</td>
+ <td>[<a href="http://www.iana.org/go/rfc1345">RFC1345</a>][<a href="#Keld_Simonsen">Keld_Simonsen</a>]</td>
+ <td>cp857<br />857<br />csIBM857</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>IBM860</td>
+ <td>2048</td>
+ <td>IBM NLS RM Vol2 SE09-8002-01, March 1990</td>
+ <td>[<a href="http://www.iana.org/go/rfc1345">RFC1345</a>][<a href="#Keld_Simonsen">Keld_Simonsen</a>]</td>
+ <td>cp860<br />860<br />csIBM860</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>IBM861</td>
+ <td>2049</td>
+ <td>IBM NLS RM Vol2 SE09-8002-01, March 1990</td>
+ <td>[<a href="http://www.iana.org/go/rfc1345">RFC1345</a>][<a href="#Keld_Simonsen">Keld_Simonsen</a>]</td>
+ <td>cp861<br />861<br />cp-is<br />csIBM861</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>IBM863</td>
+ <td>2050</td>
+ <td>IBM Keyboard layouts and code pages, PN 07G4586 June 1991</td>
+ <td>[<a href="http://www.iana.org/go/rfc1345">RFC1345</a>][<a href="#Keld_Simonsen">Keld_Simonsen</a>]</td>
+ <td>cp863<br />863<br />csIBM863</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>IBM864</td>
+ <td>2051</td>
+ <td>IBM Keyboard layouts and code pages, PN 07G4586 June 1991</td>
+ <td>[<a href="http://www.iana.org/go/rfc1345">RFC1345</a>][<a href="#Keld_Simonsen">Keld_Simonsen</a>]</td>
+ <td>cp864<br />csIBM864</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>IBM865</td>
+ <td>2052</td>
+ <td>IBM DOS 3.3 Ref (Abridged), 94X9575 (Feb 1987)</td>
+ <td>[<a href="http://www.iana.org/go/rfc1345">RFC1345</a>][<a href="#Keld_Simonsen">Keld_Simonsen</a>]</td>
+ <td>cp865<br />865<br />csIBM865</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>IBM868</td>
+ <td>2053</td>
+ <td>IBM NLS RM Vol2 SE09-8002-01, March 1990</td>
+ <td>[<a href="http://www.iana.org/go/rfc1345">RFC1345</a>][<a href="#Keld_Simonsen">Keld_Simonsen</a>]</td>
+ <td>CP868<br />cp-ar<br />csIBM868</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>IBM869</td>
+ <td>2054</td>
+ <td>IBM Keyboard layouts and code pages, PN 07G4586 June 1991</td>
+ <td>[<a href="http://www.iana.org/go/rfc1345">RFC1345</a>][<a href="#Keld_Simonsen">Keld_Simonsen</a>]</td>
+ <td>cp869<br />869<br />cp-gr<br />csIBM869</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>IBM870</td>
+ <td>2055</td>
+ <td>IBM NLS RM Vol2 SE09-8002-01, March 1990</td>
+ <td>[<a href="http://www.iana.org/go/rfc1345">RFC1345</a>][<a href="#Keld_Simonsen">Keld_Simonsen</a>]</td>
+ <td>CP870<br />ebcdic-cp-roece<br />ebcdic-cp-yu<br />csIBM870</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>IBM871</td>
+ <td>2056</td>
+ <td>IBM NLS RM Vol2 SE09-8002-01, March 1990</td>
+ <td>[<a href="http://www.iana.org/go/rfc1345">RFC1345</a>][<a href="#Keld_Simonsen">Keld_Simonsen</a>]</td>
+ <td>CP871<br />ebcdic-cp-is<br />csIBM871</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>IBM880</td>
+ <td>2057</td>
+ <td>IBM NLS RM Vol2 SE09-8002-01, March 1990</td>
+ <td>[<a href="http://www.iana.org/go/rfc1345">RFC1345</a>][<a href="#Keld_Simonsen">Keld_Simonsen</a>]</td>
+ <td>cp880<br />EBCDIC-Cyrillic<br />csIBM880</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>IBM891</td>
+ <td>2058</td>
+ <td>IBM NLS RM Vol2 SE09-8002-01, March 1990</td>
+ <td>[<a href="http://www.iana.org/go/rfc1345">RFC1345</a>][<a href="#Keld_Simonsen">Keld_Simonsen</a>]</td>
+ <td>cp891<br />csIBM891</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>IBM903</td>
+ <td>2059</td>
+ <td>IBM NLS RM Vol2 SE09-8002-01, March 1990</td>
+ <td>[<a href="http://www.iana.org/go/rfc1345">RFC1345</a>][<a href="#Keld_Simonsen">Keld_Simonsen</a>]</td>
+ <td>cp903<br />csIBM903</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>IBM904</td>
+ <td>2060</td>
+ <td>IBM NLS RM Vol2 SE09-8002-01, March 1990</td>
+ <td>[<a href="http://www.iana.org/go/rfc1345">RFC1345</a>][<a href="#Keld_Simonsen">Keld_Simonsen</a>]</td>
+ <td>cp904<br />904<br />csIBBM904</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>IBM905</td>
+ <td>2061</td>
+ <td>IBM 3174 Character Set Ref, GA27-3831-02, March 1990</td>
+ <td>[<a href="http://www.iana.org/go/rfc1345">RFC1345</a>][<a href="#Keld_Simonsen">Keld_Simonsen</a>]</td>
+ <td>CP905<br />ebcdic-cp-tr<br />csIBM905</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>IBM918</td>
+ <td>2062</td>
+ <td>IBM NLS RM Vol2 SE09-8002-01, March 1990</td>
+ <td>[<a href="http://www.iana.org/go/rfc1345">RFC1345</a>][<a href="#Keld_Simonsen">Keld_Simonsen</a>]</td>
+ <td>CP918<br />ebcdic-cp-ar2<br />csIBM918</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>IBM1026</td>
+ <td>2063</td>
+ <td>IBM NLS RM Vol2 SE09-8002-01, March 1990</td>
+ <td>[<a href="http://www.iana.org/go/rfc1345">RFC1345</a>][<a href="#Keld_Simonsen">Keld_Simonsen</a>]</td>
+ <td>CP1026<br />csIBM1026</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>EBCDIC-AT-DE</td>
+ <td>2064</td>
+ <td>IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987</td>
+ <td>[<a href="http://www.iana.org/go/rfc1345">RFC1345</a>][<a href="#Keld_Simonsen">Keld_Simonsen</a>]</td>
+ <td>csIBMEBCDICATDE</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>EBCDIC-AT-DE-A</td>
+ <td>2065</td>
+ <td>IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987</td>
+ <td>[<a href="http://www.iana.org/go/rfc1345">RFC1345</a>][<a href="#Keld_Simonsen">Keld_Simonsen</a>]</td>
+ <td>csEBCDICATDEA</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>EBCDIC-CA-FR</td>
+ <td>2066</td>
+ <td>IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987</td>
+ <td>[<a href="http://www.iana.org/go/rfc1345">RFC1345</a>][<a href="#Keld_Simonsen">Keld_Simonsen</a>]</td>
+ <td>csEBCDICCAFR</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>EBCDIC-DK-NO</td>
+ <td>2067</td>
+ <td>IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987</td>
+ <td>[<a href="http://www.iana.org/go/rfc1345">RFC1345</a>][<a href="#Keld_Simonsen">Keld_Simonsen</a>]</td>
+ <td>csEBCDICDKNO</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>EBCDIC-DK-NO-A</td>
+ <td>2068</td>
+ <td>IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987</td>
+ <td>[<a href="http://www.iana.org/go/rfc1345">RFC1345</a>][<a href="#Keld_Simonsen">Keld_Simonsen</a>]</td>
+ <td>csEBCDICDKNOA</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>EBCDIC-FI-SE</td>
+ <td>2069</td>
+ <td>IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987</td>
+ <td>[<a href="http://www.iana.org/go/rfc1345">RFC1345</a>][<a href="#Keld_Simonsen">Keld_Simonsen</a>]</td>
+ <td>csEBCDICFISE</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>EBCDIC-FI-SE-A</td>
+ <td>2070</td>
+ <td>IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987</td>
+ <td>[<a href="http://www.iana.org/go/rfc1345">RFC1345</a>][<a href="#Keld_Simonsen">Keld_Simonsen</a>]</td>
+ <td>csEBCDICFISEA</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>EBCDIC-FR</td>
+ <td>2071</td>
+ <td>IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987</td>
+ <td>[<a href="http://www.iana.org/go/rfc1345">RFC1345</a>][<a href="#Keld_Simonsen">Keld_Simonsen</a>]</td>
+ <td>csEBCDICFR</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>EBCDIC-IT</td>
+ <td>2072</td>
+ <td>IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987</td>
+ <td>[<a href="http://www.iana.org/go/rfc1345">RFC1345</a>][<a href="#Keld_Simonsen">Keld_Simonsen</a>]</td>
+ <td>csEBCDICIT</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>EBCDIC-PT</td>
+ <td>2073</td>
+ <td>IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987</td>
+ <td>[<a href="http://www.iana.org/go/rfc1345">RFC1345</a>][<a href="#Keld_Simonsen">Keld_Simonsen</a>]</td>
+ <td>csEBCDICPT</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>EBCDIC-ES</td>
+ <td>2074</td>
+ <td>IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987</td>
+ <td>[<a href="http://www.iana.org/go/rfc1345">RFC1345</a>][<a href="#Keld_Simonsen">Keld_Simonsen</a>]</td>
+ <td>csEBCDICES</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>EBCDIC-ES-A</td>
+ <td>2075</td>
+ <td>IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987</td>
+ <td>[<a href="http://www.iana.org/go/rfc1345">RFC1345</a>][<a href="#Keld_Simonsen">Keld_Simonsen</a>]</td>
+ <td>csEBCDICESA</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>EBCDIC-ES-S</td>
+ <td>2076</td>
+ <td>IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987</td>
+ <td>[<a href="http://www.iana.org/go/rfc1345">RFC1345</a>][<a href="#Keld_Simonsen">Keld_Simonsen</a>]</td>
+ <td>csEBCDICESS</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>EBCDIC-UK</td>
+ <td>2077</td>
+ <td>IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987</td>
+ <td>[<a href="http://www.iana.org/go/rfc1345">RFC1345</a>][<a href="#Keld_Simonsen">Keld_Simonsen</a>]</td>
+ <td>csEBCDICUK</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>EBCDIC-US</td>
+ <td>2078</td>
+ <td>IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987</td>
+ <td>[<a href="http://www.iana.org/go/rfc1345">RFC1345</a>][<a href="#Keld_Simonsen">Keld_Simonsen</a>]</td>
+ <td>csEBCDICUS</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>UNKNOWN-8BIT</td>
+ <td>2079</td>
+ <td></td>
+ <td>[<a href="http://www.iana.org/go/rfc1428">RFC1428</a>]</td>
+ <td>csUnknown8BiT</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>MNEMONIC</td>
+ <td>2080</td>
+ <td>[<a href="http://www.iana.org/go/rfc1345">RFC1345</a>], also known as "mnemonic+ascii+38"</td>
+ <td>[<a href="http://www.iana.org/go/rfc1345">RFC1345</a>][<a href="#Keld_Simonsen">Keld_Simonsen</a>]</td>
+ <td>csMnemonic</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>MNEM</td>
+ <td>2081</td>
+ <td>[<a href="http://www.iana.org/go/rfc1345">RFC1345</a>], also known as "mnemonic+ascii+8200"</td>
+ <td>[<a href="http://www.iana.org/go/rfc1345">RFC1345</a>][<a href="#Keld_Simonsen">Keld_Simonsen</a>]</td>
+ <td>csMnem</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>VISCII</td>
+ <td>2082</td>
+ <td>
+ [<a href="http://www.iana.org/go/rfc1456">RFC1456</a>]
+ </td>
+ <td>[<a href="http://www.iana.org/go/rfc1456">RFC1456</a>]</td>
+ <td>csVISCII</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>VIQR</td>
+ <td>2083</td>
+ <td>
+ [<a href="http://www.iana.org/go/rfc1456">RFC1456</a>]
+ </td>
+ <td>[<a href="http://www.iana.org/go/rfc1456">RFC1456</a>]</td>
+ <td>csVIQR</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td>KOI8-R</td>
+ <td>KOI8-R</td>
+ <td>2084</td>
+ <td>[<a href="http://www.iana.org/go/rfc1489">RFC1489</a>], based on GOST-19768-74, ISO-6937/8,
+INIS-Cyrillic, ISO-5427.</td>
+ <td>[<a href="http://www.iana.org/go/rfc1489">RFC1489</a>]</td>
+ <td>csKOI8R</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>HZ-GB-2312</td>
+ <td>2085</td>
+ <td>[<a href="http://www.iana.org/go/rfc1842">RFC1842</a>], [<a href="http://www.iana.org/go/rfc1843">RFC1843</a>][<a href="http://www.iana.org/go/rfc1843">RFC1843</a>][<a href="http://www.iana.org/go/rfc1842">RFC1842</a>]</td>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>IBM866</td>
+ <td>2086</td>
+ <td>IBM NLDG Volume 2 (SE09-8002-03) August 1994</td>
+ <td>[<a href="#Rick_Pond">Rick_Pond</a>]</td>
+ <td>cp866<br />866<br />csIBM866</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>IBM775</td>
+ <td>2087</td>
+ <td>HP PCL 5 Comparison Guide (P/N 5021-0329) pp B-13, 1996</td>
+ <td>[Hewlett-Packard Company, "HP PCL 5 Comparison Guide",
+(P/N 5021-0329) pp B-13, 1996.]</td>
+ <td>cp775<br />csPC775Baltic</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>KOI8-U</td>
+ <td>2088</td>
+ <td>
+ [<a href="http://www.iana.org/go/rfc2319">RFC2319</a>]
+ </td>
+ <td>[<a href="http://www.iana.org/go/rfc2319">RFC2319</a>]</td>
+ <td>csKOI8U</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>IBM00858</td>
+ <td>2089</td>
+ <td>IBM See [<a href="http://www.iana.org/assignments/charset-reg/IBM00858">http://www.iana.org/assignments/charset-reg/IBM00858</a>] [<a href="#Tamer_Mahdi">Tamer_Mahdi</a>]</td>
+ <td></td>
+ <td>CCSID00858<br />CP00858<br />PC-Multilingual-850+euro<br />csIBM00858</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>IBM00924</td>
+ <td>2090</td>
+ <td>IBM See [<a href="http://www.iana.org/assignments/charset-reg/IBM00924">http://www.iana.org/assignments/charset-reg/IBM00924</a>] [<a href="#Tamer_Mahdi">Tamer_Mahdi</a>]</td>
+ <td></td>
+ <td>CCSID00924<br />CP00924<br />ebcdic-Latin9--euro<br />csIBM00924</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>IBM01140</td>
+ <td>2091</td>
+ <td>IBM See [<a href="http://www.iana.org/assignments/charset-reg/IBM01140">http://www.iana.org/assignments/charset-reg/IBM01140</a>] [<a href="#Tamer_Mahdi">Tamer_Mahdi</a>]</td>
+ <td></td>
+ <td>CCSID01140<br />CP01140<br />ebcdic-us-37+euro<br />csIBM01140</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>IBM01141</td>
+ <td>2092</td>
+ <td>IBM See [<a href="http://www.iana.org/assignments/charset-reg/IBM01141">http://www.iana.org/assignments/charset-reg/IBM01141</a>] [<a href="#Tamer_Mahdi">Tamer_Mahdi</a>]</td>
+ <td></td>
+ <td>CCSID01141<br />CP01141<br />ebcdic-de-273+euro<br />csIBM01141</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>IBM01142</td>
+ <td>2093</td>
+ <td>IBM See [<a href="http://www.iana.org/assignments/charset-reg/IBM01142">http://www.iana.org/assignments/charset-reg/IBM01142</a>] [<a href="#Tamer_Mahdi">Tamer_Mahdi</a>]</td>
+ <td></td>
+ <td>CCSID01142<br />CP01142<br />ebcdic-dk-277+euro<br />ebcdic-no-277+euro<br />csIBM01142</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>IBM01143</td>
+ <td>2094</td>
+ <td>IBM See [<a href="http://www.iana.org/assignments/charset-reg/IBM01143">http://www.iana.org/assignments/charset-reg/IBM01143</a>] [<a href="#Tamer_Mahdi">Tamer_Mahdi</a>]</td>
+ <td></td>
+ <td>CCSID01143<br />CP01143<br />ebcdic-fi-278+euro<br />ebcdic-se-278+euro<br />csIBM01143</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>IBM01144</td>
+ <td>2095</td>
+ <td>IBM See [<a href="http://www.iana.org/assignments/charset-reg/IBM01144">http://www.iana.org/assignments/charset-reg/IBM01144</a>] [<a href="#Tamer_Mahdi">Tamer_Mahdi</a>]</td>
+ <td></td>
+ <td>CCSID01144<br />CP01144<br />ebcdic-it-280+euro<br />csIBM01144</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>IBM01145</td>
+ <td>2096</td>
+ <td>IBM See [<a href="http://www.iana.org/assignments/charset-reg/IBM01145">http://www.iana.org/assignments/charset-reg/IBM01145</a>] [<a href="#Tamer_Mahdi">Tamer_Mahdi</a>]</td>
+ <td></td>
+ <td>CCSID01145<br />CP01145<br />ebcdic-es-284+euro<br />csIBM01145</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>IBM01146</td>
+ <td>2097</td>
+ <td>IBM See [<a href="http://www.iana.org/assignments/charset-reg/IBM01146">http://www.iana.org/assignments/charset-reg/IBM01146</a>] [<a href="#Tamer_Mahdi">Tamer_Mahdi</a>]</td>
+ <td></td>
+ <td>CCSID01146<br />CP01146<br />ebcdic-gb-285+euro<br />csIBM01146</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>IBM01147</td>
+ <td>2098</td>
+ <td>IBM See [<a href="http://www.iana.org/assignments/charset-reg/IBM01147">http://www.iana.org/assignments/charset-reg/IBM01147</a>] [<a href="#Tamer_Mahdi">Tamer_Mahdi</a>]</td>
+ <td></td>
+ <td>CCSID01147<br />CP01147<br />ebcdic-fr-297+euro<br />csIBM01147</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>IBM01148</td>
+ <td>2099</td>
+ <td>IBM See [<a href="http://www.iana.org/assignments/charset-reg/IBM01148">http://www.iana.org/assignments/charset-reg/IBM01148</a>] [<a href="#Tamer_Mahdi">Tamer_Mahdi</a>]</td>
+ <td></td>
+ <td>CCSID01148<br />CP01148<br />ebcdic-international-500+euro<br />csIBM01148</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>IBM01149</td>
+ <td>2100</td>
+ <td>IBM See [<a href="http://www.iana.org/assignments/charset-reg/IBM01149">http://www.iana.org/assignments/charset-reg/IBM01149</a>] [<a href="#Tamer_Mahdi">Tamer_Mahdi</a>]</td>
+ <td></td>
+ <td>CCSID01149<br />CP01149<br />ebcdic-is-871+euro<br />csIBM01149</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>Big5-HKSCS</td>
+ <td>2101</td>
+ <td>See [<a href="http://www.iana.org/assignments/charset-reg/Big5-HKSCS">http://www.iana.org/assignments/charset-reg/Big5-HKSCS</a>]</td>
+ <td>[<a href="#Nicky_Yick">Nicky_Yick</a>]</td>
+ <td>csBig5HKSCS</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>IBM1047</td>
+ <td>2102</td>
+ <td>IBM1047 (EBCDIC Latin 1/Open Systems)
+[<a href="http://www-1.ibm.com/servers/eserver/iseries/software/globalization/pdf/cp01047z.pdf">http://www-1.ibm.com/servers/eserver/iseries/software/globalization/pdf/cp01047z.pdf</a>]</td>
+ <td>[<a href="#Reuel_Robrigado">Reuel_Robrigado</a>]</td>
+ <td>IBM-1047<br />csIBM1047</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>PTCP154</td>
+ <td>2103</td>
+ <td>See [<a href="http://www.iana.org/assignments/charset-reg/PTCP154">http://www.iana.org/assignments/charset-reg/PTCP154</a>]</td>
+ <td>[<a href="#Alexander_Uskov">Alexander_Uskov</a>]</td>
+ <td>csPTCP154<br />PT154<br />CP154<br />Cyrillic-Asian<br />csPTCP154</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>Amiga-1251</td>
+ <td>2104</td>
+ <td>See [<a href="http://www.amiga.ultranet.ru/Amiga-1251.html">http://www.amiga.ultranet.ru/Amiga-1251.html</a>]</td>
+ <td></td>
+ <td>Ami1251<br />Amiga1251<br />Ami-1251<br />csAmiga1251
+(Aliases are provided for historical reasons and should not be used) [Malyshev]</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>KOI7-switched</td>
+ <td>2105</td>
+ <td>See [<a href="http://www.iana.org/assignments/charset-reg/KOI7-switched">http://www.iana.org/assignments/charset-reg/KOI7-switched</a>]</td>
+ <td></td>
+ <td>csKOI7switched</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>BRF</td>
+ <td>2106</td>
+ <td>See [<a href="http://www.iana.org/assignments/charset-reg/BRF">http://www.iana.org/assignments/charset-reg/BRF</a>] [<a href="#Samuel_Thibault">Samuel_Thibault</a>]</td>
+ <td></td>
+ <td>csBRF</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>TSCII</td>
+ <td>2107</td>
+ <td>See [<a href="http://www.iana.org/assignments/charset-reg/TSCII">http://www.iana.org/assignments/charset-reg/TSCII</a>] [<a href="#Kuppuswamy_Kalyanasu">Kuppuswamy_Kalyanasu</a>]</td>
+ <td></td>
+ <td>csTSCII</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>CP51932</td>
+ <td>2108</td>
+ <td>See [<a href="http://www.iana.org/assignments/charset-reg/CP51932">http://www.iana.org/assignments/charset-reg/CP51932</a>] [<a href="#Yui_Naruse">Yui_Naruse</a>]</td>
+ <td></td>
+ <td>csCP51932</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>windows-874</td>
+ <td>2109</td>
+ <td>See [<a href="http://www.iana.org/assignments/charset-reg/windows-874">http://www.iana.org/assignments/charset-reg/windows-874</a>] [<a href="#Shawn_Steele">Shawn_Steele</a>]</td>
+ <td></td>
+ <td>cswindows874</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>windows-1250</td>
+ <td>2250</td>
+ <td>Microsoft [<a href="http://www.iana.org/assignments/charset-reg/windows-1250">http://www.iana.org/assignments/charset-reg/windows-1250</a>] [<a href="#Katya_Lazhintseva">Katya_Lazhintseva</a>]</td>
+ <td></td>
+ <td>cswindows1250</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>windows-1251</td>
+ <td>2251</td>
+ <td>Microsoft [<a href="http://www.iana.org/assignments/charset-reg/windows-1251">http://www.iana.org/assignments/charset-reg/windows-1251</a>] [<a href="#Katya_Lazhintseva">Katya_Lazhintseva</a>]</td>
+ <td></td>
+ <td>cswindows1251</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>windows-1252</td>
+ <td>2252</td>
+ <td>Microsoft [<a href="http://www.iana.org/assignments/charset-reg/windows-1252">http://www.iana.org/assignments/charset-reg/windows-1252</a>] [<a href="#Chris_Wendt">Chris_Wendt</a>]</td>
+ <td></td>
+ <td>cswindows1252</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>windows-1253</td>
+ <td>2253</td>
+ <td>Microsoft [<a href="http://www.iana.org/assignments/charset-reg/windows-1253">http://www.iana.org/assignments/charset-reg/windows-1253</a>] [<a href="#Katya_Lazhintseva">Katya_Lazhintseva</a>]</td>
+ <td></td>
+ <td>cswindows1253</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>windows-1254</td>
+ <td>2254</td>
+ <td>Microsoft [<a href="http://www.iana.org/assignments/charset-reg/windows-1254">http://www.iana.org/assignments/charset-reg/windows-1254</a>] [<a href="#Katya_Lazhintseva">Katya_Lazhintseva</a>]</td>
+ <td></td>
+ <td>cswindows1254</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>windows-1255</td>
+ <td>2255</td>
+ <td>Microsoft [<a href="http://www.iana.org/assignments/charset-reg/windows-1255">http://www.iana.org/assignments/charset-reg/windows-1255</a>] [<a href="#Katya_Lazhintseva">Katya_Lazhintseva</a>]</td>
+ <td></td>
+ <td>cswindows1255</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>windows-1256</td>
+ <td>2256</td>
+ <td>Microsoft [<a href="http://www.iana.org/assignments/charset-reg/windows-1256">http://www.iana.org/assignments/charset-reg/windows-1256</a>] [<a href="#Katya_Lazhintseva">Katya_Lazhintseva</a>]</td>
+ <td></td>
+ <td>cswindows1256</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>windows-1257</td>
+ <td>2257</td>
+ <td>Microsoft [<a href="http://www.iana.org/assignments/charset-reg/windows-1257">http://www.iana.org/assignments/charset-reg/windows-1257</a>] [<a href="#Katya_Lazhintseva">Katya_Lazhintseva</a>]</td>
+ <td></td>
+ <td>cswindows1257</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>windows-1258</td>
+ <td>2258</td>
+ <td>Microsoft [<a href="http://www.iana.org/assignments/charset-reg/windows-1258">http://www.iana.org/assignments/charset-reg/windows-1258</a>] [<a href="#Katya_Lazhintseva">Katya_Lazhintseva</a>]</td>
+ <td></td>
+ <td>cswindows1258</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>TIS-620</td>
+ <td>2259</td>
+ <td>Thai Industrial Standards Institute (TISI) [<a href="#Trin_Tantsetthi">Trin_Tantsetthi</a>]</td>
+ <td></td>
+ <td>csTIS620</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>CP50220</td>
+ <td>2260</td>
+ <td>See [<a href="http://www.iana.org/assignments/charset-reg/CP50220">http://www.iana.org/assignments/charset-reg/CP50220</a>] [<a href="#Yui_Naruse">Yui_Naruse</a>]</td>
+ <td></td>
+ <td>csCP50220</td>
+ <td></td>
+ </tr>
+ </tbody>
+ </table>
+ <h1 class="people">People</h1>
+ <table class="sortable">
+ <thead>
+ <tr>
+ <th>ID</th>
+ <th>Name</th>
+ <th>Contact URI</th>
+ <th>Last Updated</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td>
+ <a name="Alexander_Uskov" id="Alexander_Uskov">[Alexander_Uskov]</a>
+ </td>
+ <td>Alexander Uskov</td>
+ <td>
+ <a href="mailto:auskov&amp;idc.kz">mailto:auskov&amp;idc.kz</a>
+ </td>
+ <td>2002-09</td>
+ </tr>
+ <tr>
+ <td>
+ <a name="Alexei_Veremeev" id="Alexei_Veremeev">[Alexei_Veremeev]</a>
+ </td>
+ <td>Alexei Veremeev</td>
+ <td>
+ <a href="mailto:Alexey.Veremeev&amp;oracle.com">mailto:Alexey.Veremeev&amp;oracle.com</a>
+ </td>
+ <td>2006-12-07</td>
+ </tr>
+ <tr>
+ <td>
+ <a name="Chris_Wendt" id="Chris_Wendt">[Chris_Wendt]</a>
+ </td>
+ <td>Chris Wendt</td>
+ <td>
+ <a href="mailto:christw&amp;microsoft.com">mailto:christw&amp;microsoft.com</a>
+ </td>
+ <td>1999-12</td>
+ </tr>
+ <tr>
+ <td>
+ <a name="Hank_Nussbacher" id="Hank_Nussbacher">[Hank_Nussbacher]</a>
+ </td>
+ <td>Hank Nussbacher</td>
+ <td>
+ <a href="mailto:hank&amp;vm.tau.ac.il">mailto:hank&amp;vm.tau.ac.il</a>
+ </td>
+ <td></td>
+ </tr>
+ <tr>
+ <td>
+ <a name="IANA" id="IANA">[IANA]</a>
+ </td>
+ <td>Internet Assigned Numbers Authority</td>
+ <td>
+ <a href="mailto:iana&amp;iana.org">mailto:iana&amp;iana.org</a>
+ </td>
+ <td></td>
+ </tr>
+ <tr>
+ <td>
+ <a name="Jun_Murai" id="Jun_Murai">[Jun_Murai]</a>
+ </td>
+ <td>Jun Murai</td>
+ <td>
+ <a href="mailto:jun&amp;wide.ad.jp">mailto:jun&amp;wide.ad.jp</a>
+ </td>
+ <td></td>
+ </tr>
+ <tr>
+ <td>
+ <a name="Katya_Lazhintseva" id="Katya_Lazhintseva">[Katya_Lazhintseva]</a>
+ </td>
+ <td>Katya Lazhintseva</td>
+ <td>
+ <a href="mailto:katyal&amp;microsoft.com">mailto:katyal&amp;microsoft.com</a>
+ </td>
+ <td>1996-05</td>
+ </tr>
+ <tr>
+ <td>
+ <a name="Keld_Simonsen" id="Keld_Simonsen">[Keld_Simonsen]</a>
+ </td>
+ <td>Keld Simonsen</td>
+ <td>
+ <a href="mailto:Keld.Simonsen&amp;dkuug.dk">mailto:Keld.Simonsen&amp;dkuug.dk</a>
+ </td>
+ <td></td>
+ </tr>
+ <tr>
+ <td>
+ <a name="Keld_Simonsen_2" id="Keld_Simonsen_2">[Keld_Simonsen_2]</a>
+ </td>
+ <td>Keld Simonsen</td>
+ <td>
+ <a href="mailto:Keld.Simonsen&amp;rap.dk">mailto:Keld.Simonsen&amp;rap.dk</a>
+ </td>
+ <td>2000-08</td>
+ </tr>
+ <tr>
+ <td>
+ <a name="Kuppuswamy_Kalyanasu" id="Kuppuswamy_Kalyanasu">[Kuppuswamy_Kalyanasu]</a>
+ </td>
+ <td>Kuppuswamy Kalyanasundaram</td>
+ <td>
+ <a href="mailto:kalyan.geo&amp;yahoo.com">mailto:kalyan.geo&amp;yahoo.com</a>
+ </td>
+ <td>2007-05-14</td>
+ </tr>
+ <tr>
+ <td>
+ <a name="Mark_Davis" id="Mark_Davis">[Mark_Davis]</a>
+ </td>
+ <td>Mark Davis</td>
+ <td>
+ <a href="mailto:mark&amp;unicode.org">mailto:mark&amp;unicode.org</a>
+ </td>
+ <td>2002-04</td>
+ </tr>
+ <tr>
+ <td>
+ <a name="Markus_Scherer" id="Markus_Scherer">[Markus_Scherer]</a>
+ </td>
+ <td>Markus Scherer</td>
+ <td>
+ <a href="mailto:markus.scherer&amp;jtcsv.com">mailto:markus.scherer&amp;jtcsv.com</a>
+ </td>
+ <td>2002-09</td>
+ </tr>
+ <tr>
+ <td>
+ <a name="Masataka_Ohta" id="Masataka_Ohta">[Masataka_Ohta]</a>
+ </td>
+ <td>Masataka Ohta</td>
+ <td>
+ <a href="mailto:mohta&amp;cc.titech.ac.jp">mailto:mohta&amp;cc.titech.ac.jp</a>
+ </td>
+ <td>1995-07</td>
+ </tr>
+ <tr>
+ <td>
+ <a name="Nicky_Yick" id="Nicky_Yick">[Nicky_Yick]</a>
+ </td>
+ <td>Nicky Yick</td>
+ <td>
+ <a href="mailto:cliac&amp;itsd.gcn.gov.hk">mailto:cliac&amp;itsd.gcn.gov.hk</a>
+ </td>
+ <td>2000-10</td>
+ </tr>
+ <tr>
+ <td>
+ <a name="Reuel_Robrigado" id="Reuel_Robrigado">[Reuel_Robrigado]</a>
+ </td>
+ <td>Reuel Robrigado</td>
+ <td>
+ <a href="mailto:reuelr&amp;ca.ibm.com">mailto:reuelr&amp;ca.ibm.com</a>
+ </td>
+ <td>2002-09</td>
+ </tr>
+ <tr>
+ <td>
+ <a name="Rick_Pond" id="Rick_Pond">[Rick_Pond]</a>
+ </td>
+ <td>Rick Pond</td>
+ <td>
+ <a href="mailto:rickpond&amp;vnet.ibm.com">mailto:rickpond&amp;vnet.ibm.com</a>
+ </td>
+ <td>1997-03</td>
+ </tr>
+ <tr>
+ <td>
+ <a name="Sairan_M_Kikkarin" id="Sairan_M_Kikkarin">[Sairan_M_Kikkarin]</a>
+ </td>
+ <td>Sairan M. Kikkarin</td>
+ <td>
+ <a href="mailto:sairan&amp;sci.kz">mailto:sairan&amp;sci.kz</a>
+ </td>
+ <td>2006-12-07</td>
+ </tr>
+ <tr>
+ <td>
+ <a name="Samuel_Thibault" id="Samuel_Thibault">[Samuel_Thibault]</a>
+ </td>
+ <td>Samuel Thibault</td>
+ <td>
+ <a href="mailto:samuel.thibault&amp;ens-lyon.org">mailto:samuel.thibault&amp;ens-lyon.org</a>
+ </td>
+ <td>2006-12-07</td>
+ </tr>
+ <tr>
+ <td>
+ <a name="Shawn_Steele" id="Shawn_Steele">[Shawn_Steele]</a>
+ </td>
+ <td>Shawn Steele</td>
+ <td>
+ <a href="mailto:Shawn.Steele&amp;microsoft.com">mailto:Shawn.Steele&amp;microsoft.com</a>
+ </td>
+ <td>2010-11-04</td>
+ </tr>
+ <tr>
+ <td>
+ <a name="Tamer_Mahdi" id="Tamer_Mahdi">[Tamer_Mahdi]</a>
+ </td>
+ <td>Tamer Mahdi</td>
+ <td>
+ <a href="mailto:tamer&amp;ca.ibm.com">mailto:tamer&amp;ca.ibm.com</a>
+ </td>
+ <td>2000-08</td>
+ </tr>
+ <tr>
+ <td>
+ <a name="Toby_Phipps" id="Toby_Phipps">[Toby_Phipps]</a>
+ </td>
+ <td>Toby Phipps</td>
+ <td>
+ <a href="mailto:tphipps&amp;peoplesoft.com">mailto:tphipps&amp;peoplesoft.com</a>
+ </td>
+ <td>2002-03</td>
+ </tr>
+ <tr>
+ <td>
+ <a name="Trin_Tantsetthi" id="Trin_Tantsetthi">[Trin_Tantsetthi]</a>
+ </td>
+ <td>Trin Tantsetthi</td>
+ <td>
+ <a href="mailto:trin&amp;mozart.inet.co.th">mailto:trin&amp;mozart.inet.co.th</a>
+ </td>
+ <td>1998-09</td>
+ </tr>
+ <tr>
+ <td>
+ <a name="Vladas_Tumasonis" id="Vladas_Tumasonis">[Vladas_Tumasonis]</a>
+ </td>
+ <td>Vladas Tumasonis</td>
+ <td>
+ <a href="mailto:vladas.tumasonis&amp;maf.vu.lt">mailto:vladas.tumasonis&amp;maf.vu.lt</a>
+ </td>
+ <td>2000-08</td>
+ </tr>
+ <tr>
+ <td>
+ <a name="Woohyong_Choi" id="Woohyong_Choi">[Woohyong_Choi]</a>
+ </td>
+ <td>Woohyong Choi</td>
+ <td>
+ <a href="mailto:whchoi&amp;cosmos.kaist.ac.kr">mailto:whchoi&amp;cosmos.kaist.ac.kr</a>
+ </td>
+ <td></td>
+ </tr>
+ <tr>
+ <td>
+ <a name="Yui_Naruse" id="Yui_Naruse">[Yui_Naruse]</a>
+ </td>
+ <td>Yui Naruse</td>
+ <td>
+ <a href="mailto:naruse&amp;airemix.jp">mailto:naruse&amp;airemix.jp</a>
+ </td>
+ <td>2011-09-23</td>
+ </tr>
+ </tbody>
+ </table>
+ </body>
+</html>
diff --git a/libxml2/os400/iconv/ianatables.c b/libxml2/os400/iconv/ianatables.c
new file mode 100644
index 0000000..44b29c6
--- /dev/null
+++ b/libxml2/os400/iconv/ianatables.c
@@ -0,0 +1,4609 @@
+/**
+*** Character set names table.
+*** Generated by program BLDCSNDFA from IANA character set assignment file
+*** and CCSID/MIBenum equivalence file.
+*** *** Do not edit by hand ***
+**/
+
+/**
+*** CCSID For arg Recognized name.
+*** 62245 X IBMCCSID62245 ibm-62245
+*** 62235 X IBMCCSID62235 ibm-62235
+*** 62224 X IBMCCSID62224 ibm-62224
+*** 62211 X IBMCCSID62211 ibm-62211
+*** 61952 X IBMCCSID61952 ibm-61952
+*** 57345 IBMCCSID57345 ibm-57345
+*** 33722 X csEUCPkdFmtJapanese
+*** Extended_UNIX_Code_Packed_Format_for_Japanese EUC-JP
+*** iana-18 IBMCCSID33722 ibm-33722
+*** 28709 X IBMCCSID28709 ibm-28709
+*** 25546 IBMCCSID25546 ibm-25546
+*** 17354 X IBMCCSID17354 ibm-17354
+*** 13488 X csUnicode ISO-10646-UCS-2 UCS2 UCS-2 iana-1000
+*** IBMCCSID13488 ibm-13488
+*** 13124 X IBMCCSID13124 ibm-13124
+*** 13121 X IBMCCSID13121 ibm-13121
+*** 12708 X IBMCCSID12708 ibm-12708
+*** 9449 cswindows1257 windows-1257 iana-2257 IBMCCSID09449
+*** ibm-9449
+*** 9448 cswindows1256 windows-1256 iana-2256 IBMCCSID09448
+*** ibm-9448
+*** 9447 cswindows1255 windows-1255 iana-2255 IBMCCSID09447
+*** ibm-9447
+*** 9066 X IBMCCSID09066 ibm-9066
+*** 9056 X IBMCCSID09056 ibm-9056
+*** 9030 X IBMCCSID09030 ibm-9030
+*** 8612 X IBMCCSID08612 ibm-8612
+*** 5478 csISO58GB231280 iso-ir-58 GB_2312-80 chinese iana-57
+*** IBMCCSID05478 ibm-5478
+*** 5123 X IBMCCSID05123 ibm-5123
+*** 5350 X cswindows1254 windows-1254 iana-2254 IBMCCSID05350
+*** ibm-5350
+*** 5349 X cswindows1253 windows-1253 iana-2253 IBMCCSID05349
+*** ibm-5349
+*** 5348 X cswindows1252 windows-1252 iana-2252 IBMCCSID05348
+*** ibm-5348
+*** 5347 X cswindows1251 windows-1251 iana-2251 IBMCCSID05347
+*** ibm-5347
+*** 5346 X cswindows1250 windows-1250 iana-2250 IBMCCSID05346
+*** ibm-5346
+*** 5354 cswindows1258 windows-1258 iana-2258 IBMCCSID05354
+*** ibm-5354
+*** 5055 X IBMCCSID05055 ibm-5055
+*** 5054 X IBMCCSID05054 ibm-5054
+*** 5053 X IBMCCSID05053 ibm-5053
+*** 5052 X IBMCCSID05052 ibm-5052
+*** 5050 X IBMCCSID05050 ibm-5050
+*** 5035 X IBMCCSID05035 ibm-5035
+*** 5026 X IBMCCSID05026 ibm-5026
+*** 4971 X IBMCCSID04971 ibm-4971
+*** 4965 IBMCCSID04965 ibm-4965
+*** 4960 X IBMCCSID04960 ibm-4960
+*** 4953 IBMCCSID04953 ibm-4953
+*** 4952 X IBMCCSID04952 ibm-4952
+*** 4951 X IBMCCSID04951 ibm-4951
+*** 4948 X IBMCCSID04948 ibm-4948
+*** 4396 X IBMCCSID04396 ibm-4396
+*** 1399 X IBMCCSID01399 ibm-1399
+*** 1392 X IBMCCSID01392 ibm-1392
+*** 1388 X IBMCCSID01388 ibm-1388
+*** 1386 X csGBK windows-936 MS936 CP936 GBK iana-113
+*** IBMCCSID01386 ibm-1386
+*** 1383 X csGB2312 GB2312 EUC-CN iana-2025 IBMCCSID01383
+*** ibm-1383
+*** 1381 X IBMCCSID01381 ibm-1381
+*** 1380 X IBMCCSID01380 ibm-1380
+*** 1375 csBig5HKSCS Big5-HKSCS iana-2101 IBMCCSID01375
+*** ibm-1375
+*** 1373 IBMCCSID01373 ibm-1373
+*** 1364 X IBMCCSID01364 ibm-1364
+*** 1363 X csKSC56011987 KSC_5601 KS_C_5601-1989 iso-ir-149
+*** KS_C_5601-1987 korean iana-36 IBMCCSID01363 ibm-1363
+*** 1283 X IBMCCSID01283 ibm-1283
+*** 1282 X IBMCCSID01282 ibm-1282
+*** 1281 X IBMCCSID01281 ibm-1281
+*** 1280 X IBMCCSID01280 ibm-1280
+*** 1276 csAdobeStandardEncoding Adobe-Standard-Encoding
+*** iana-2005 IBMCCSID01276 ibm-1276
+*** 1275 X IBMCCSID01275 ibm-1275
+*** 1258 X IBMCCSID01258 ibm-1258
+*** 1257 X IBMCCSID01257 ibm-1257
+*** 1256 X IBMCCSID01256 ibm-1256
+*** 1255 X IBMCCSID01255 ibm-1255
+*** 1254 X IBMCCSID01254 ibm-1254
+*** 1253 X IBMCCSID01253 ibm-1253
+*** 1252 X csWindows31Latin1 ISO-8859-1-Windows-3.1-Latin-1
+*** iana-2001 IBMCCSID01252 ibm-1252
+*** 1251 X IBMCCSID01251 ibm-1251
+*** 1250 X csWindows31Latin2 ISO-8859-2-Windows-Latin-2 iana-2002
+*** IBMCCSID01250 ibm-1250
+*** 1235 csUTF32LE UTF-32LE UTF-32-LE UTF32LE UTF32-LE
+*** iana-1019 IBMCCSID01235 ibm-1235
+*** 1233 csUTF32BE UTF-32BE UTF-32-BE UTF32BE UTF32-BE
+*** iana-1018 IBMCCSID01233 ibm-1233
+*** 1208 X csUTF8 UTF-8 UTF8 iana-106 IBMCCSID01208 ibm-1208
+*** 1203 csUTF16LE UTF-16LE UTF-16-LE UTF16LE UTF16-LE
+*** iana-1014 IBMCCSID01203 ibm-1203
+*** 1201 csUTF16BE UTF-16BE UTF-16-BE UTF16BE UTF16-BE
+*** iana-1013 IBMCCSID01201 ibm-1201
+*** 1164 X IBMCCSID01164 ibm-1164
+*** 1160 X IBMCCSID01160 ibm-1160
+*** 1158 X IBMCCSID01158 ibm-1158
+*** 1157 X IBMCCSID01157 ibm-1157
+*** 1156 X IBMCCSID01156 ibm-1156
+*** 1155 X IBMCCSID01155 ibm-1155
+*** 1154 X IBMCCSID01154 ibm-1154
+*** 1153 X IBMCCSID01153 ibm-1153
+*** 1149 X csIBM01149 ebcdic-is-871+euro CP01149 CCSID01149
+*** IBM01149 iana-2100 IBMCCSID01149 ibm-1149
+*** 1148 X csIBM01148 ebcdic-international-500+euro CP01148
+*** CCSID01148 IBM01148 iana-2099 IBMCCSID01148 ibm-1148
+*** 1147 X csIBM01147 ebcdic-fr-297+euro CP01147 CCSID01147
+*** IBM01147 iana-2098 IBMCCSID01147 ibm-1147
+*** 1146 X csIBM01146 ebcdic-gb-285+euro CP01146 CCSID01146
+*** IBM01146 iana-2097 IBMCCSID01146 ibm-1146
+*** 1145 X csIBM01145 ebcdic-es-284+euro CP01145 CCSID01145
+*** IBM01145 iana-2096 IBMCCSID01145 ibm-1145
+*** 1144 X csIBM01144 ebcdic-it-280+euro CP01144 CCSID01144
+*** IBM01144 iana-2095 IBMCCSID01144 ibm-1144
+*** 1143 X csIBM01143 ebcdic-se-278+euro ebcdic-fi-278+euro
+*** CP01143 CCSID01143 IBM01143 iana-2094 IBMCCSID01143
+*** ibm-1143
+*** 1142 X csIBM01142 ebcdic-no-277+euro ebcdic-dk-277+euro
+*** CP01142 CCSID01142 IBM01142 iana-2093 IBMCCSID01142
+*** ibm-1142
+*** 1141 X csIBM01141 ebcdic-de-273+euro CP01141 CCSID01141
+*** IBM01141 iana-2092 IBMCCSID01141 ibm-1141
+*** 1140 X csIBM01140 ebcdic-us-37+euro CP01140 CCSID01140
+*** IBM01140 iana-2091 IBMCCSID01140 ibm-1140
+*** 1137 X IBMCCSID01137 ibm-1137
+*** 1133 IBMCCSID01133 ibm-1133
+*** 1132 X IBMCCSID01132 ibm-1132
+*** 1130 X IBMCCSID01130 ibm-1130
+*** 1129 X IBMCCSID01129 ibm-1129
+*** 1123 X IBMCCSID01123 ibm-1123
+*** 1122 X IBMCCSID01122 ibm-1122
+*** 1115 IBMCCSID01115 ibm-1115
+*** 1114 IBMCCSID01114 ibm-1114
+*** 1112 X IBMCCSID01112 ibm-1112
+*** 1098 X IBMCCSID01098 ibm-1098
+*** 1097 X IBMCCSID01097 ibm-1097
+*** 1089 X csISOLatinArabic arabic ASMO-708 ECMA-114 ISO_8859-6
+*** iso-ir-127 ISO_8859-6:1987 ISO-8859-6 iana-9
+*** IBMCCSID01089 ibm-1089
+*** 1088 IBMCCSID01088 ibm-1088
+*** 1051 X csHPRoman8 r8 roman8 hp-roman8 iana-2004 IBMCCSID01051
+*** ibm-1051
+*** 1047 X csIBM1047 IBM-1047 IBM1047 iana-2102 IBMCCSID01047
+*** ibm-1047
+*** 1046 X IBMCCSID01046 ibm-1046
+*** 1043 IBMCCSID01043 ibm-1043
+*** 1042 IBMCCSID01042 ibm-1042
+*** 1041 IBMCCSID01041 ibm-1041
+*** 1040 IBMCCSID01040 ibm-1040
+*** 1027 X IBMCCSID01027 ibm-1027
+*** 1026 X csIBM1026 CP1026 IBM1026 iana-2063 IBMCCSID01026
+*** ibm-1026
+*** 1025 X IBMCCSID01025 ibm-1025
+*** 1019 X IBMCCSID01019 ibm-1019
+*** 1018 X IBMCCSID01018 ibm-1018
+*** 1017 X IBMCCSID01017 ibm-1017
+*** 1016 X IBMCCSID01016 ibm-1016
+*** 1015 X IBMCCSID01015 ibm-1015
+*** 1014 X IBMCCSID01014 ibm-1014
+*** 1013 X IBMCCSID01013 ibm-1013
+*** 1012 X IBMCCSID01012 ibm-1012
+*** 1011 X IBMCCSID01011 ibm-1011
+*** 1010 X IBMCCSID01010 ibm-1010
+*** 1009 X IBMCCSID01009 ibm-1009
+*** 1008 IBMCCSID01008 ibm-1008
+*** 970 X csEUCKR EUC-KR iana-38 IBMCCSID00970 ibm-970
+*** 965 X IBMCCSID00965 ibm-965
+*** 964 X IBMCCSID00964 ibm-964
+*** 959 X IBMCCSID00959 ibm-959
+*** 958 X IBMCCSID00958 ibm-958
+*** 957 X IBMCCSID00957 ibm-957
+*** 956 X IBMCCSID00956 ibm-956
+*** 951 X IBMCCSID00951 ibm-951
+*** 950 X IBMCCSID00950 ibm-950
+*** 949 X IBMCCSID00949 ibm-949
+*** 947 X IBMCCSID00947 ibm-947
+*** 946 X IBMCCSID00946 ibm-946
+*** 944 X IBMCCSID00944 ibm-944
+*** 943 X csShiftJIS MS_Kanji Shift_JIS iana-17 IBMCCSID00943
+*** ibm-943
+*** 942 X IBMCCSID00942 ibm-942
+*** 939 X IBMCCSID00939 ibm-939
+*** 938 X IBMCCSID00938 ibm-938
+*** 937 X IBMCCSID00937 ibm-937
+*** 936 IBMCCSID00936 ibm-936
+*** 935 X IBMCCSID00935 ibm-935
+*** 934 X IBMCCSID00934 ibm-934
+*** 933 X IBMCCSID00933 ibm-933
+*** 932 X IBMCCSID00932 ibm-932
+*** 930 X IBMCCSID00930 ibm-930
+*** 928 X IBMCCSID00928 ibm-928
+*** 927 X IBMCCSID00927 ibm-927
+*** 926 X IBMCCSID00926 ibm-926
+*** 924 X csIBM00924 ebcdic-Latin9--euro CP00924 CCSID00924
+*** IBM00924 iana-2090 IBMCCSID00924 ibm-924
+*** 923 X csISO885915 Latin-9 ISO_8859-15 ISO-8859-15 iana-111
+*** IBMCCSID00923 ibm-923
+*** 922 X IBMCCSID00922 ibm-922
+*** 921 X csISO885913 ISO-8859-13 iana-109 IBMCCSID00921 ibm-921
+*** 920 X csISOLatin5 l5 latin5 ISO_8859-9 iso-ir-148
+*** ISO_8859-9:1989 ISO-8859-9 iana-12 IBMCCSID00920
+*** ibm-920
+*** 918 X csIBM918 ebcdic-cp-ar2 CP918 IBM918 iana-2062
+*** IBMCCSID00918 ibm-918
+*** 916 X csISOLatinHebrew hebrew ISO_8859-8 iso-ir-138
+*** ISO_8859-8:1988 ISO-8859-8 iana-11 IBMCCSID00916
+*** ibm-916
+*** 915 X csISOLatinCyrillic cyrillic ISO_8859-5 iso-ir-144
+*** ISO_8859-5:1988 ISO-8859-5 iana-8 IBMCCSID00915
+*** ibm-915
+*** 914 X csISOLatin4 l4 latin4 ISO_8859-4 iso-ir-110
+*** ISO_8859-4:1988 ISO-8859-4 iana-7 IBMCCSID00914
+*** ibm-914
+*** 913 csISOLatin3 l3 latin3 ISO_8859-3 iso-ir-109
+*** ISO_8859-3:1988 ISO-8859-3 iana-6 IBMCCSID00913
+*** ibm-913
+*** 912 X csISOLatin2 l2 latin2 ISO_8859-2 iso-ir-101
+*** ISO_8859-2:1987 ISO-8859-2 iana-5 IBMCCSID00912
+*** ibm-912
+*** 905 X csIBM905 ebcdic-cp-tr CP905 IBM905 iana-2061
+*** IBMCCSID00905 ibm-905
+*** 904 csIBBM904 904 cp904 IBM904 iana-2060 IBMCCSID00904
+*** ibm-904
+*** 903 csIBM903 cp903 IBM903 iana-2059 IBMCCSID00903 ibm-903
+*** 897 X csHalfWidthKatakana X0201 JIS_X0201 iana-15
+*** IBMCCSID00897 ibm-897
+*** 896 IBMCCSID00896 ibm-896
+*** 891 X csIBM891 cp891 IBM891 iana-2058 IBMCCSID00891 ibm-891
+*** 880 X csIBM880 EBCDIC-Cyrillic cp880 IBM880 iana-2057
+*** IBMCCSID00880 ibm-880
+*** 878 X csKOI8R KOI8-R iana-2084 IBMCCSID00878 ibm-878
+*** 875 X IBMCCSID00875 ibm-875
+*** 874 X csTIS620 TIS-620 csEUCTH eucTH EUC-TH> iana-2259
+*** IBMCCSID00874 ibm-874
+*** 871 X csIBM871 ebcdic-cp-is CP871 IBM871 iana-2056
+*** IBMCCSID00871 ibm-871
+*** 870 X csIBM870 ebcdic-cp-yu ebcdic-cp-roece CP870 IBM870
+*** iana-2055 IBMCCSID00870 ibm-870
+*** 869 X csIBM869 cp-gr 869 cp869 IBM869 iana-2054
+*** IBMCCSID00869 ibm-869
+*** 868 X csIBM868 cp-ar CP868 IBM868 iana-2053 IBMCCSID00868
+*** ibm-868
+*** 866 X csIBM866 866 cp866 IBM866 iana-2086 IBMCCSID00866
+*** ibm-866
+*** 865 X csIBM865 865 cp865 IBM865 iana-2052 IBMCCSID00865
+*** ibm-865
+*** 864 X csIBM864 cp864 IBM864 iana-2051 IBMCCSID00864 ibm-864
+*** 863 X csIBM863 863 cp863 IBM863 iana-2050 IBMCCSID00863
+*** ibm-863
+*** 862 X csPC862LatinHebrew 862 cp862 IBM862 iana-2013
+*** IBMCCSID00862 ibm-862
+*** 861 X csIBM861 cp-is 861 cp861 IBM861 iana-2049
+*** IBMCCSID00861 ibm-861
+*** 860 X csIBM860 860 cp860 IBM860 iana-2048 IBMCCSID00860
+*** ibm-860
+*** 858 csIBM00858 PC-Multilingual-850+euro CP00858 CCSID00858
+*** IBM00858 iana-2089 IBMCCSID00858 ibm-858
+*** 857 X csIBM857 857 cp857 IBM857 iana-2047 IBMCCSID00857
+*** ibm-857
+*** 855 X csIBM855 855 cp855 IBM855 iana-2046 IBMCCSID00855
+*** ibm-855
+*** 852 X csPCp852 852 cp852 IBM852 iana-2010 IBMCCSID00852
+*** ibm-852
+*** 851 X csIBM851 851 cp851 IBM851 iana-2045 IBMCCSID00851
+*** ibm-851
+*** 850 X csPC850Multilingual 850 cp850 IBM850 iana-2009
+*** IBMCCSID00850 ibm-850
+*** 838 X csIBMThai IBM-Thai iana-2016 IBMCCSID00838 ibm-838
+*** 837 X IBMCCSID00837 ibm-837
+*** 836 X IBMCCSID00836 ibm-836
+*** 835 X IBMCCSID00835 ibm-835
+*** 833 X IBMCCSID00833 ibm-833
+*** 819 X csISOLatin1 CP819 IBM819 l1 latin1 ISO_8859-1
+*** iso-ir-100 ISO_8859-1:1987 ISO-8859-1 iana-4
+*** IBMCCSID00819 ibm-819
+*** 813 X csISOLatinGreek greek8 greek ECMA-118 ELOT_928
+*** ISO_8859-7 iso-ir-126 ISO_8859-7:1987 ISO-8859-7
+*** iana-10 IBMCCSID00813 ibm-813
+*** 775 X csPC775Baltic cp775 IBM775 iana-2087 IBMCCSID00775
+*** ibm-775
+*** 737 X IBMCCSID00737 ibm-737
+*** 720 X IBMCCSID00720 ibm-720
+*** 500 X csIBM500 ebcdic-cp-ch ebcdic-cp-be CP500 IBM500
+*** iana-2044 IBMCCSID00500 ibm-500
+*** 437 X csPC8CodePage437 437 cp437 IBM437 iana-2011
+*** IBMCCSID00437 ibm-437
+*** 424 X csIBM424 ebcdic-cp-he cp424 IBM424 iana-2043
+*** IBMCCSID00424 ibm-424
+*** 423 X csIBM423 ebcdic-cp-gr cp423 IBM423 iana-2042
+*** IBMCCSID00423 ibm-423
+*** 420 X csIBM420 ebcdic-cp-ar1 cp420 IBM420 iana-2041
+*** IBMCCSID00420 ibm-420
+*** 367 X csASCII cp367 IBM367 us ISO646-US ISO_646.irv:1991
+*** ANSI_X3.4-1986 ANSI_X3.4-1968 iso-ir-6 US-ASCII ASCII
+*** iana-3 IBMCCSID00367 ibm-367
+*** 301 X IBMCCSID00301 ibm-301
+*** 300 X IBMCCSID00300 ibm-300
+*** 297 X csIBM297 ebcdic-cp-fr cp297 IBM297 iana-2040
+*** IBMCCSID00297 ibm-297
+*** 290 X csIBM290 EBCDIC-JP-kana cp290 IBM290 iana-2039
+*** IBMCCSID00290 ibm-290
+*** 285 X csIBM285 ebcdic-cp-gb CP285 IBM285 iana-2038
+*** IBMCCSID00285 ibm-285
+*** 284 X csIBM284 ebcdic-cp-es CP284 IBM284 iana-2037
+*** IBMCCSID00284 ibm-284
+*** 280 X csIBM280 ebcdic-cp-it CP280 IBM280 iana-2035
+*** IBMCCSID00280 ibm-280
+*** 278 X csIBM278 ebcdic-cp-se ebcdic-cp-fi CP278 IBM278
+*** iana-2034 IBMCCSID00278 ibm-278
+*** 277 X csIBM277 EBCDIC-CP-NO EBCDIC-CP-DK IBM277 iana-2033
+*** IBMCCSID00277 ibm-277
+*** 273 X csIBM273 CP273 IBM273 iana-2030 IBMCCSID00273 ibm-273
+*** 256 X IBMCCSID00256 ibm-256
+*** 37 X csIBM037 ebcdic-cp-nl ebcdic-cp-wt ebcdic-cp-ca
+*** ebcdic-cp-us cp037 IBM037 EBCDIC iana-2028
+*** IBMCCSID00037 ibm-37
+*** 0 IBMCCSID00000 ibm-0
+**/
+
+/**
+*** 13499 states, 229 finals, 20020 transitions.
+**/
+
+typedef unsigned short t_ccsid;
+typedef unsigned short t_staterange;
+typedef unsigned short t_transrange;
+
+static t_transrange trans_array[] = {
+ 0, 90, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91,
+ 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91,
+ 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91,
+ 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91,
+ 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91,
+ 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91,
+ 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91,
+ 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91,
+ 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91,
+ 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91,
+ 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91,
+ 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 92, 93, 94,
+ 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
+ 111, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129,
+ 130, 137, 138, 139, 141, 142, 143, 144, 145, 146, 147, 148, 150, 151, 153,
+ 154, 156, 157, 159, 160, 162, 163, 165, 166, 168, 169, 171, 172, 173, 174,
+ 176, 177, 179, 180, 182, 183, 185, 186, 188, 189, 191, 192, 194, 195, 197,
+ 198, 199, 200, 202, 203, 205, 206, 208, 209, 210, 211, 212, 213, 214, 215,
+ 216, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231,
+ 233, 234, 235, 236, 238, 239, 241, 242, 243, 245, 246, 248, 249, 251, 252,
+ 254, 256, 257, 259, 260, 261, 262, 263, 264, 265, 266, 267, 269, 270, 271,
+ 275, 276, 277, 278, 279, 287, 288, 289, 291, 292, 294, 295, 297, 298, 300,
+ 301, 303, 304, 305, 306, 307, 308, 310, 311, 313, 314, 315, 316, 317, 318,
+ 319, 320, 321, 322, 323, 324, 325, 327, 328, 329, 330, 331, 332, 333, 334,
+ 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 357, 358,
+ 359, 360, 361, 362, 363, 365, 366, 367, 368, 370, 371, 373, 374, 376, 377,
+ 378, 380, 381, 383, 384, 386, 387, 389, 390, 392, 393, 394, 396, 398, 400,
+ 401, 402, 403, 409, 410, 411, 412, 413, 416, 417, 418, 419, 420, 421, 422,
+ 423, 424, 425, 426, 427, 429, 430, 431, 432, 433, 434, 435, 438, 439, 440,
+ 441, 442, 444, 445, 446, 447, 450, 451, 452, 453, 454, 455, 456, 457, 458,
+ 459, 462, 463, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476,
+ 477, 478, 479, 480, 489, 490, 491, 492, 493, 495, 496, 497, 498, 499, 500,
+ 501, 502, 503, 504, 505, 506, 512, 513, 514, 515, 516, 519, 520, 521, 522,
+ 523, 524, 525, 526, 527, 528, 531, 532, 533, 534, 535, 536, 537, 538, 539,
+ 540, 541, 551, 553, 554, 556, 557, 559, 560, 562, 563, 565, 566, 568, 569,
+ 571, 572, 574, 575, 577, 578, 580, 581, 583, 585, 586, 587, 591, 592, 593,
+ 595, 596, 598, 599, 600, 602, 603, 604, 606, 607, 609, 610, 612, 613, 615,
+ 616, 618, 619, 621, 622, 624, 625, 627, 628, 630, 631, 633, 634, 636, 637,
+ 639, 640, 642, 643, 644, 646, 647, 648, 649, 655, 656, 658, 659, 661, 662,
+ 663, 664, 665, 666, 667, 668, 669, 672, 673, 675, 676, 677, 679, 680, 682,
+ 683, 685, 686, 688, 689, 691, 692, 694, 695, 697, 698, 700, 701, 703, 704,
+ 706, 707, 709, 710, 712, 713, 715, 716, 718, 719, 721, 722, 723, 724, 725,
+ 727, 728, 730, 731, 733, 734, 736, 737, 739, 740, 741, 745, 746, 747, 748,
+ 750, 751, 752, 753, 754, 756, 757, 758, 759, 760, 763, 764, 767, 768, 771,
+ 779, 780, 781, 786, 788, 789, 791, 792, 793, 795, 796, 798, 799, 801, 802,
+ 803, 804, 805, 806, 807, 816, 817, 818, 822, 823, 824, 825, 826, 827, 828,
+ 829, 830, 831, 832, 833, 834, 836, 837, 839, 840, 841, 842, 843, 844, 845,
+ 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 861, 862,
+ 863, 865, 866, 868, 869, 871, 872, 874, 875, 877, 878, 880, 881, 883, 884,
+ 885, 887, 888, 890, 891, 893, 894, 896, 897, 898, 900, 901, 903, 904, 906,
+ 907, 909, 910, 912, 913, 914, 915, 916, 917, 918, 919, 920, 933, 934, 936,
+ 937, 939, 940, 942, 943, 945, 946, 947, 948, 952, 953, 955, 956, 957, 961,
+ 962, 963, 965, 966, 967, 968, 970, 971, 972, 973, 974, 975, 976, 977, 978,
+ 979, 980, 981, 982, 983, 984, 985, 986, 987, 988, 990, 991, 992, 996, 998,
+ 999, 1001, 1002, 1004, 1005, 1007, 1008, 1010, 1011, 1013, 1014, 1015, 1016,
+ 1017, 1019, 1020, 1022, 1023, 1025, 1026, 1028, 1029, 1031, 1032, 1034, 1035,
+ 1037, 1038, 1040, 1041, 1043, 1044, 1046, 1047, 1049, 1050, 1052, 1053, 1054,
+ 1056, 1057, 1059, 1060, 1062, 1063, 1065, 1066, 1068, 1069, 1071, 1072, 1074,
+ 1075, 1077, 1078, 1080, 1081, 1083, 1084, 1086, 1087, 1088, 1089, 1090, 1091,
+ 1093, 1094, 1096, 1097, 1099, 1100, 1102, 1103, 1105, 1106, 1108, 1109, 1111,
+ 1112, 1113, 1114, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1130,
+ 1131, 1133, 1134, 1135, 1137, 1138, 1140, 1141, 1143, 1144, 1146, 1147, 1149,
+ 1150, 1152, 1153, 1155, 1156, 1157, 1158, 1159, 1160, 1161, 1163, 1164, 1166,
+ 1167, 1168, 1170, 1171, 1173, 1174, 1176, 1177, 1179, 1180, 1182, 1183, 1184,
+ 1186, 1187, 1188, 1190, 1191, 1192, 1196, 1197, 1198, 1199, 1200, 1202, 1203,
+ 1204, 1206, 1207, 1208, 1212, 1213, 1214, 1215, 1216, 1217, 1218, 1221, 1222,
+ 1224, 1225, 1226, 1230, 1231, 1232, 1233, 1234, 1235, 1236, 1237, 1238, 1239,
+ 1240, 1241, 1242, 1243, 1244, 1245, 1246, 1247, 1248, 1257, 1258, 1259, 1260,
+ 1261, 1262, 1263, 1264, 1265, 1267, 1268, 1270, 1271, 1273, 1274, 1276, 1277,
+ 1279, 1280, 1282, 1283, 1284, 1285, 1286, 1288, 1289, 1291, 1292, 1294, 1295,
+ 1297, 1298, 1300, 1301, 1303, 1304, 1306, 1307, 1308, 1309, 1310, 1311, 1312,
+ 1313, 1314, 1315, 1316, 1317, 1318, 1342, 1343, 1344, 1346, 1347, 1349, 1350,
+ 1352, 1353, 1355, 1356, 1358, 1359, 1361, 1362, 1363, 1364, 1365, 1366, 1376,
+ 1378, 1379, 1381, 1383, 1387, 1389, 1391, 1395, 1399, 1401, 1405, 1409, 1411,
+ 1412, 1414, 1415, 1417, 1418, 1420, 1422, 1424, 1426, 1428, 1430, 1431, 1432,
+ 1433, 1434, 1435, 1436, 1437, 1438, 1439, 1440, 1441, 1442, 1443, 1444, 1445,
+ 1446, 1478, 1479, 1480, 1482, 1483, 1485, 1486, 1488, 1489, 1491, 1492, 1494,
+ 1495, 1497, 1498, 1499, 1503, 1505, 1506, 1508, 1509, 1511, 1512, 1514, 1515,
+ 1516, 1517, 1518, 1519, 1520, 1521, 1522, 1523, 1524, 1526, 1527, 1529, 1530,
+ 1532, 1533, 1535, 1536, 1537, 1538, 1539, 1540, 1541, 1542, 1543, 1544, 1545,
+ 1546, 1547, 1551, 1553, 1554, 1556, 1557, 1559, 1560, 1562, 1563, 1564, 1565,
+ 1566, 1567, 1568, 1569, 1570, 1571, 1572, 1573, 1575, 1577, 1578, 1580, 1581,
+ 1583, 1584, 1586, 1587, 1588, 1589, 1590, 1591, 1592, 1593, 1594, 1595, 1596,
+ 1598, 1599, 1601, 1602, 1604, 1605, 1607, 1608, 1609, 1610, 1611, 1612, 1613,
+ 1614, 1615, 1616, 1617, 1618, 1619, 1623, 1625, 1626, 1628, 1629, 1631, 1632,
+ 1634, 1635, 1636, 1637, 1638, 1639, 1640, 1641, 1642, 1643, 1644, 1645, 1647,
+ 1649, 1650, 1652, 1653, 1655, 1656, 1658, 1659, 1660, 1661, 1662, 1663, 1664,
+ 1665, 1666, 1667, 1668, 1669, 1671, 1672, 1674, 1675, 1677, 1678, 1680, 1681,
+ 1683, 1684, 1686, 1687, 1689, 1690, 1692, 1693, 1695, 1696, 1698, 1699, 1701,
+ 1703, 1704, 1706, 1707, 1709, 1710, 1712, 1713, 1714, 1715, 1716, 1717, 1718,
+ 1719, 1720, 1721, 1722, 1724, 1725, 1727, 1728, 1730, 1731, 1733, 1734, 1735,
+ 1736, 1737, 1738, 1739, 1740, 1741, 1742, 1743, 1744, 1745, 1746, 1752, 1754,
+ 1755, 1757, 1758, 1760, 1761, 1763, 1764, 1765, 1766, 1768, 1770, 1771, 1773,
+ 1774, 1776, 1777, 1779, 1780, 1781, 1782, 1783, 1784, 1785, 1786, 1788, 1789,
+ 1791, 1792, 1794, 1795, 1797, 1799, 1801, 1803, 1804, 1806, 1807, 1809, 1810,
+ 1812, 1813, 1814, 1815, 1816, 1817, 1818, 1819, 1820, 1821, 1823, 1824, 1825,
+ 1826, 1827, 1828, 1829, 1830, 1831, 1832, 1833, 1834, 1856, 1857, 1859, 1860,
+ 1862, 1863, 1865, 1866, 1868, 1869, 1871, 1873, 1874, 1875, 1876, 1877, 1878,
+ 1879, 1880, 1882, 1883, 1885, 1886, 1887, 1888, 1889, 1890, 1891, 1892, 1893,
+ 1895, 1896, 1898, 1900, 1902, 1903, 1904, 1906, 1907, 1908, 1909, 1917, 1918,
+ 1921, 1922, 1924, 1925, 1926, 1928, 1929, 1931, 1932, 1934, 1935, 1936, 1937,
+ 1939, 1940, 1942, 1943, 1945, 1946, 1948, 1949, 1951, 1952, 1954, 1955, 1956,
+ 1957, 1959, 1960, 1962, 1963, 1965, 1966, 1968, 1969, 1971, 1972, 1974, 1975,
+ 1976, 1977, 1979, 1980, 1982, 1983, 1985, 1986, 1988, 1989, 1990, 1991, 1993,
+ 1994, 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2007, 2008, 2010, 2011,
+ 2013, 2014, 2016, 2017, 2019, 2020, 2022, 2023, 2024, 2025, 2026, 2027, 2037,
+ 2038, 2039, 2040, 2041, 2042, 2043, 2044, 2045, 2046, 2047, 2051, 2053, 2054,
+ 2056, 2057, 2059, 2060, 2062, 2063, 2064, 2068, 2069, 2070, 2074, 2075, 2079,
+ 2080, 2081, 2086, 2089, 2090, 2091, 2092, 2093, 2099, 2104, 2108, 2110, 2117,
+ 2127, 2137, 2141, 2145, 2155, 2156, 2157, 2158, 2159, 2160, 2161, 2162, 2163,
+ 2164, 2173, 2176, 2177, 2178, 2188, 2189, 2190, 2191, 2192, 2193, 2196, 2199,
+ 2201, 2202, 2203, 2204, 2205, 2214, 2215, 2216, 2217, 2219, 2220, 2222, 2223,
+ 2224, 2225, 2226, 2227, 2229, 2230, 2231, 2232, 2233, 2234, 2235, 2236, 2237,
+ 2238, 2239, 2240, 2241, 2242, 2243, 2244, 2245, 2246, 2247, 2248, 2249, 2259,
+ 2260, 2261, 2262, 2263, 2266, 2267, 2268, 2269, 2270, 2271, 2272, 2273, 2274,
+ 2275, 2276, 2282, 2283, 2284, 2285, 2287, 2288, 2289, 2290, 2291, 2293, 2294,
+ 2295, 2296, 2297, 2298, 2299, 2300, 2307, 2308, 2309, 2310, 2311, 2312, 2313,
+ 2316, 2317, 2318, 2319, 2320, 2321, 2322, 2325, 2326, 2327, 2328, 2329, 2330,
+ 2331, 2332, 2333, 2337, 2338, 2339, 2340, 2341, 2342, 2343, 2344, 2345, 2346,
+ 2347, 2348, 2349, 2355, 2356, 2357, 2358, 2359, 2361, 2362, 2363, 2364, 2365,
+ 2366, 2372, 2375, 2377, 2378, 2379, 2380, 2381, 2382, 2383, 2384, 2385, 2386,
+ 2387, 2388, 2389, 2390, 2391, 2400, 2401, 2402, 2403, 2404, 2405, 2406, 2409,
+ 2410, 2411, 2412, 2413, 2414, 2415, 2416, 2417, 2421, 2422, 2423, 2424, 2425,
+ 2426, 2431, 2432, 2433, 2434, 2435, 2437, 2438, 2439, 2440, 2441, 2442, 2443,
+ 2444, 2446, 2447, 2448, 2450, 2451, 2452, 2453, 2454, 2455, 2456, 2461, 2462,
+ 2463, 2464, 2465, 2467, 2468, 2469, 2470, 2471, 2472, 2473, 2479, 2480, 2481,
+ 2482, 2483, 2484, 2485, 2486, 2487, 2488, 2489, 2490, 2491, 2496, 2497, 2498,
+ 2499, 2500, 2501, 2502, 2503, 2504, 2506, 2507, 2508, 2509, 2510, 2511, 2512,
+ 2516, 2517, 2518, 2522, 2523, 2524, 2525, 2526, 2528, 2529, 2530, 2531, 2532,
+ 2533, 2534, 2535, 2539, 2540, 2541, 2542, 2543, 2545, 2546, 2547, 2548, 2549,
+ 2550, 2551, 2552, 2553, 2554, 2557, 2558, 2559, 2560, 2561, 2563, 2564, 2565,
+ 2566, 2567, 2568, 2569, 2570, 2574, 2575, 2576, 2579, 2580, 2581, 2582, 2583,
+ 2584, 2585, 2586, 2587, 2588, 2589, 2590, 2591, 2592, 2593, 2594, 2595, 2600,
+ 2601, 2602, 2603, 2607, 2608, 2609, 2610, 2611, 2612, 2616, 2618, 2619, 2620,
+ 2622, 2623, 2624, 2625, 2626, 2627, 2628, 2629, 2630, 2631, 2632, 2633, 2634,
+ 2635, 2636, 2637, 2642, 2643, 2644, 2645, 2646, 2647, 2648, 2649, 2650, 2651,
+ 2652, 2653, 2654, 2655, 2656, 2657, 2658, 2659, 2660, 2661, 2662, 2663, 2664,
+ 2665, 2669, 2670, 2671, 2672, 2673, 2675, 2676, 2677, 2678, 2679, 2680, 2681,
+ 2682, 2683, 2686, 2688, 2689, 2690, 2691, 2692, 2693, 2694, 2695, 2696, 2701,
+ 2707, 2708, 2709, 2711, 2712, 2721, 2722, 2723, 2728, 2729, 2730, 2733, 2734,
+ 2735, 2736, 2737, 2738, 2739, 2746, 2747, 2748, 2750, 2751, 2752, 2754, 2755,
+ 2756, 2757, 2758, 2759, 2760, 2764, 2770, 2771, 2772, 2773, 2774, 2775, 2776,
+ 2777, 2778, 2786, 2787, 2788, 2789, 2790, 2791, 2792, 2793, 2794, 2795, 2796,
+ 2797, 2798, 2799, 2800, 2801, 2802, 2803, 2804, 2813, 2814, 2818, 2819, 2820,
+ 2821, 2822, 2823, 2824, 2825, 2826, 2832, 2833, 2834, 2835, 2836, 2837, 2838,
+ 2839, 2840, 2841, 2842, 2843, 2844, 2850, 2851, 2852, 2853, 2854, 2856, 2857,
+ 2858, 2859, 2860, 2861, 2862, 2863, 2864, 2865, 2873, 2874, 2875, 2876, 2877,
+ 2878, 2879, 2880, 2881, 2882, 2883, 2895, 2897, 2898, 2899, 2900, 2901, 2903,
+ 2904, 2907, 2910, 2912, 2913, 2914, 2915, 2916, 2920, 2922, 2923, 2924, 2925,
+ 2927, 2930, 2931, 2932, 2933, 2935, 2936, 2937, 2938, 2939, 2940, 2941, 2942,
+ 2943, 2944, 2947, 2949, 2954, 2960, 2969, 2974, 2975, 2978, 2979, 2980, 2981,
+ 2982, 2983, 2984, 2985, 2992, 2995, 3001, 3009, 3018, 3024, 3030, 3032, 3033,
+ 3034, 3035, 3036, 3037, 3038, 3039, 3040, 3041, 3049, 3050, 3051, 3052, 3053,
+ 3054, 3055, 3056, 3057, 3065, 3067, 3077, 3080, 3086, 3087, 3089, 3091, 3092,
+ 3093, 3094, 3095, 3096, 3097, 3098, 3105, 3108, 3111, 3115, 3125, 3131, 3133,
+ 3134, 3135, 3136, 3137, 3138, 3139, 3145, 3148, 3150, 3159, 3161, 3165, 3166,
+ 3167, 3168, 3169, 3170, 3175, 3177, 3179, 3184, 3186, 3187, 3188, 3189, 3190,
+ 3194, 3195, 3196, 3197, 3198, 3202, 3203, 3204, 3205, 3206, 3209, 3211, 3212,
+ 3213, 3214, 3215, 3216, 3220, 3221, 3222, 3224, 3225, 3226, 3231, 3232, 3233,
+ 3234, 3237, 3238, 3239, 3240, 3244, 3246, 3247, 3248, 3250, 3251, 3252, 3253,
+ 3254, 3255, 3256, 3257, 3261, 3262, 3263, 3264, 3265, 3266, 3267, 3268, 3269,
+ 3270, 3271, 3272, 3275, 3278, 3279, 3280, 3281, 3282, 3284, 3285, 3286, 3287,
+ 3288, 3289, 3290, 3296, 3297, 3298, 3299, 3300, 3301, 3303, 3304, 3305, 3306,
+ 3307, 3308, 3309, 3310, 3312, 3313, 3314, 3315, 3316, 3317, 3318, 3319, 3320,
+ 3323, 3324, 3325, 3326, 3327, 3328, 3329, 3330, 3331, 3332, 3333, 3334, 3335,
+ 3337, 3338, 3339, 3340, 3341, 3342, 3343, 3344, 3345, 3346, 3347, 3348, 3349,
+ 3350, 3351, 3352, 3353, 3354, 3355, 3356, 3357, 3358, 3359, 3360, 3361, 3362,
+ 3363, 3364, 3368, 3369, 3370, 3371, 3372, 3374, 3375, 3376, 3377, 3378, 3379,
+ 3380, 3386, 3387, 3389, 3390, 3392, 3393, 3395, 3396, 3398, 3399, 3400, 3401,
+ 3413, 3414, 3416, 3417, 3418, 3419, 3420, 3422, 3423, 3425, 3426, 3428, 3429,
+ 3430, 3431, 3432, 3433, 3434, 3435, 3436, 3437, 3438, 3439, 3440, 3441, 3442,
+ 3444, 3445, 3447, 3448, 3450, 3451, 3453, 3454, 3456, 3457, 3458, 3459, 3460,
+ 3461, 3462, 3463, 3464, 3465, 3466, 3467, 3469, 3470, 3472, 3473, 3475, 3476,
+ 3478, 3479, 3481, 3482, 3484, 3485, 3487, 3488, 3492, 3493, 3494, 3495, 3496,
+ 3498, 3499, 3501, 3502, 3504, 3505, 3507, 3508, 3510, 3511, 3512, 3513, 3515,
+ 3516, 3518, 3519, 3521, 3522, 3524, 3525, 3527, 3528, 3530, 3531, 3533, 3534,
+ 3536, 3537, 3538, 3547, 3548, 3549, 3550, 3551, 3552, 3553, 3554, 3555, 3558,
+ 3559, 3561, 3562, 3565, 3566, 3567, 3568, 3569, 3570, 3575, 3576, 3579, 3580,
+ 3581, 3582, 3584, 3585, 3586, 3587, 3591, 3593, 3594, 3596, 3597, 3598, 3599,
+ 3600, 3601, 3602, 3603, 3604, 3605, 3606, 3607, 3608, 3609, 3610, 3611, 3612,
+ 3614, 3615, 3617, 3618, 3620, 3621, 3622, 3623, 3624, 3625, 3626, 3627, 3628,
+ 3629, 3630, 3631, 3632, 3633, 3634, 3637, 3638, 3639, 3640, 3641, 3642, 3643,
+ 3644, 3645, 3647, 3648, 3649, 3650, 3651, 3652, 3653, 3654, 3655, 3657, 3658,
+ 3659, 3660, 3661, 3662, 3663, 3664, 3665, 3667, 3668, 3669, 3670, 3671, 3672,
+ 3673, 3674, 3675, 3677, 3678, 3679, 3680, 3681, 3682, 3683, 3684, 3685, 3687,
+ 3688, 3689, 3690, 3691, 3692, 3693, 3694, 3695, 3697, 3698, 3699, 3700, 3701,
+ 3702, 3703, 3705, 3706, 3707, 3708, 3709, 3710, 3711, 3712, 3713, 3715, 3716,
+ 3717, 3718, 3719, 3720, 3721, 3722, 3723, 3724, 3733, 3734, 3735, 3736, 3737,
+ 3738, 3739, 3740, 3741, 3742, 3743, 3745, 3746, 3747, 3748, 3751, 3752, 3754,
+ 3755, 3756, 3757, 3763, 3764, 3765, 3766, 3767, 3768, 3769, 3770, 3771, 3773,
+ 3774, 3775, 3776, 3778, 3779, 3781, 3782, 3783, 3784, 3786, 3787, 3789, 3790,
+ 3792, 3793, 3794, 3798, 3799, 3800, 3801, 3802, 3803, 3804, 3805, 3806, 3807,
+ 3809, 3810, 3811, 3812, 3813, 3814, 3815, 3816, 3817, 3818, 3819, 3820, 3821,
+ 3822, 3823, 3824, 3825, 3826, 3827, 3828, 3830, 3831, 3832, 3835, 3836, 3837,
+ 3841, 3842, 3843, 3849, 3850, 3852, 3853, 3855, 3856, 3858, 3859, 3866, 3867,
+ 3869, 3870, 3872, 3873, 3875, 3876, 3878, 3879, 3881, 3882, 3883, 3885, 3886,
+ 3888, 3890, 3891, 3893, 3894, 3896, 3897, 3899, 3900, 3901, 3902, 3903, 3904,
+ 3905, 3906, 3907, 3908, 3909, 3910, 3912, 3913, 3915, 3916, 3918, 3919, 3921,
+ 3922, 3924, 3925, 3927, 3928, 3930, 3931, 3933, 3934, 3936, 3937, 3939, 3940,
+ 3942, 3943, 3945, 3946, 3947, 3948, 3950, 3953, 3954, 3955, 3957, 3958, 3960,
+ 3961, 3963, 3964, 3966, 3967, 3968, 3970, 3971, 3973, 3975, 3976, 3978, 3980,
+ 3981, 3983, 3984, 3986, 3991, 3992, 3993, 3998, 3999, 4000, 4001, 4002, 4005,
+ 4006, 4010, 4011, 4013, 4014, 4015, 4016, 4022, 4024, 4025, 4026, 4027, 4029,
+ 4030, 4032, 4033, 4035, 4036, 4038, 4039, 4041, 4042, 4044, 4045, 4046, 4047,
+ 4048, 4049, 4050, 4051, 4052, 4053, 4054, 4055, 4056, 4057, 4058, 4059, 4060,
+ 4061, 4062, 4063, 4064, 4065, 4066, 4067, 4068, 4069, 4074, 4075, 4076, 4083,
+ 4084, 4085, 4086, 4087, 4089, 4090, 4091, 4092, 4093, 4094, 4095, 4096, 4097,
+ 4098, 4100, 4101, 4102, 4103, 4105, 4106, 4107, 4108, 4110, 4111, 4112, 4113,
+ 4115, 4116, 4117, 4118, 4120, 4121, 4122, 4123, 4125, 4126, 4127, 4128, 4130,
+ 4131, 4132, 4133, 4135, 4136, 4137, 4138, 4139, 4140, 4141, 4142, 4144, 4145,
+ 4146, 4147, 4149, 4150, 4151, 4152, 4154, 4155, 4156, 4157, 4159, 4160, 4161,
+ 4162, 4164, 4165, 4166, 4167, 4169, 4170, 4171, 4172, 4174, 4175, 4176, 4177,
+ 4179, 4180, 4181, 4182, 4183, 4184, 4185, 4186, 4188, 4189, 4190, 4191, 4193,
+ 4194, 4195, 4196, 4198, 4199, 4200, 4201, 4202, 4203, 4204, 4205, 4206, 4207,
+ 4208, 4210, 4211, 4212, 4213, 4214, 4215, 4216, 4217, 4218, 4219, 4220, 4221,
+ 4222, 4223, 4224, 4225, 4226, 4227, 4228, 4229, 4230, 4231, 4232, 4233, 4234,
+ 4235, 4236, 4237, 4239, 4240, 4241, 4242, 4243, 4244, 4245, 4246, 4248, 4249,
+ 4250, 4251, 4253, 4254, 4255, 4257, 4258, 4259, 4260, 4262, 4263, 4264, 4265,
+ 4267, 4268, 4269, 4270, 4272, 4273, 4274, 4276, 4277, 4278, 4279, 4281, 4282,
+ 4283, 4284, 4285, 4286, 4287, 4288, 4289, 4290, 4291, 4292, 4293, 4294, 4295,
+ 4296, 4297, 4298, 4299, 4301, 4302, 4303, 4304, 4305, 4309, 4310, 4311, 4312,
+ 4313, 4314, 4315, 4323, 4324, 4325, 4327, 4328, 4329, 4330, 4332, 4333, 4334,
+ 4335, 4337, 4338, 4339, 4340, 4342, 4343, 4344, 4345, 4347, 4348, 4349, 4350,
+ 4351, 4352, 4353, 4354, 4355, 4356, 4357, 4358, 4360, 4361, 4362, 4363, 4365,
+ 4366, 4367, 4368, 4369, 4370, 4371, 4372, 4373, 4374, 4375, 4376, 4377, 4378,
+ 4379, 4380, 4381, 4382, 4383, 4385, 4386, 4387, 4397, 4398, 4399, 4400, 4401,
+ 4402, 4403, 4404, 4405, 4406, 4407, 4408, 4409, 4411, 4412, 4413, 4414, 4415,
+ 4416, 4417, 4418, 4420, 4421, 4422, 4423, 4425, 4426, 4427, 4428, 4430, 4431,
+ 4432, 4434, 4435, 4436, 4437, 4439, 4440, 4441, 4442, 4444, 4445, 4446, 4447,
+ 4449, 4450, 4451, 4452, 4454, 4455, 4456, 4458, 4459, 4460, 4462, 4463, 4464,
+ 4466, 4467, 4468, 4469, 4470, 4471, 4477, 4478, 4479, 4480, 4481, 4482, 4483,
+ 4486, 4487, 4488, 4489, 4490, 4491, 4492, 4493, 4494, 4495, 4496, 4497, 4498,
+ 4499, 4501, 4502, 4503, 4506, 4507, 4508, 4510, 4511, 4512, 4513, 4514, 4515,
+ 4518, 4519, 4520, 4521, 4522, 4523, 4524, 4525, 4526, 4527, 4530, 4531, 4532,
+ 4533, 4535, 4536, 4537, 4538, 4539, 4540, 4541, 4542, 4543, 4544, 4545, 4546,
+ 4547, 4548, 4549, 4550, 4551, 4552, 4553, 4554, 4563, 4564, 4565, 4567, 4568,
+ 4569, 4570, 4571, 4572, 4573, 4574, 4575, 4576, 4577, 4578, 4579, 4580, 4586,
+ 4587, 4588, 4591, 4592, 4593, 4594, 4595, 4596, 4597, 4598, 4599, 4600, 4601,
+ 4602, 4605, 4606, 4607, 4608, 4609, 4610, 4611, 4612, 4613, 4614, 4615, 4616,
+ 4617, 4627, 4628, 4629, 4631, 4632, 4633, 4634, 4636, 4637, 4638, 4639, 4641,
+ 4642, 4643, 4644, 4646, 4647, 4648, 4649, 4651, 4652, 4653, 4654, 4656, 4657,
+ 4658, 4659, 4661, 4662, 4663, 4664, 4666, 4667, 4668, 4669, 4671, 4672, 4673,
+ 4674, 4676, 4677, 4678, 4679, 4681, 4682, 4683, 4685, 4686, 4687, 4688, 4689,
+ 4693, 4694, 4695, 4696, 4697, 4698, 4699, 4701, 4702, 4703, 4704, 4706, 4707,
+ 4708, 4710, 4711, 4712, 4714, 4715, 4716, 4717, 4719, 4720, 4721, 4722, 4724,
+ 4725, 4726, 4727, 4729, 4730, 4731, 4732, 4734, 4735, 4736, 4737, 4739, 4740,
+ 4741, 4742, 4744, 4745, 4746, 4747, 4749, 4750, 4751, 4752, 4754, 4755, 4756,
+ 4757, 4759, 4760, 4761, 4762, 4764, 4765, 4766, 4767, 4769, 4770, 4771, 4772,
+ 4774, 4775, 4776, 4778, 4779, 4780, 4781, 4782, 4783, 4789, 4790, 4791, 4792,
+ 4794, 4795, 4796, 4797, 4799, 4800, 4801, 4802, 4803, 4804, 4805, 4806, 4807,
+ 4808, 4809, 4810, 4811, 4812, 4813, 4816, 4817, 4818, 4819, 4821, 4822, 4823,
+ 4825, 4826, 4827, 4828, 4830, 4831, 4832, 4833, 4835, 4836, 4837, 4838, 4840,
+ 4841, 4842, 4843, 4845, 4846, 4847, 4848, 4850, 4851, 4852, 4853, 4855, 4856,
+ 4857, 4858, 4860, 4861, 4862, 4863, 4865, 4866, 4867, 4868, 4870, 4871, 4872,
+ 4873, 4875, 4876, 4877, 4878, 4880, 4881, 4882, 4883, 4885, 4886, 4887, 4888,
+ 4890, 4891, 4892, 4893, 4895, 4896, 4897, 4898, 4899, 4900, 4901, 4903, 4904,
+ 4905, 4906, 4908, 4909, 4910, 4911, 4913, 4914, 4915, 4916, 4918, 4919, 4920,
+ 4921, 4923, 4924, 4925, 4926, 4927, 4931, 4932, 4933, 4934, 4935, 4936, 4937,
+ 4938, 4940, 4941, 4942, 4943, 4944, 4945, 4946, 4948, 4949, 4950, 4951, 4952,
+ 4953, 4954, 4957, 4958, 4959, 4960, 4963, 4964, 4965, 4966, 4967, 4968, 4971,
+ 4972, 4973, 4981, 4982, 4983, 4984, 4985, 4990, 4991, 4992, 4994, 4995, 4996,
+ 4997, 4999, 5000, 5001, 5003, 5004, 5005, 5006, 5008, 5009, 5010, 5011, 5013,
+ 5014, 5015, 5016, 5017, 5018, 5019, 5020, 5021, 5030, 5031, 5032, 5033, 5034,
+ 5038, 5039, 5040, 5041, 5042, 5043, 5044, 5045, 5046, 5047, 5048, 5049, 5050,
+ 5051, 5052, 5053, 5054, 5055, 5056, 5057, 5058, 5059, 5060, 5061, 5062, 5063,
+ 5064, 5066, 5067, 5068, 5069, 5071, 5072, 5073, 5074, 5075, 5076, 5077, 5079,
+ 5080, 5081, 5082, 5083, 5084, 5085, 5086, 5087, 5088, 5089, 5090, 5091, 5092,
+ 5093, 5094, 5095, 5096, 5097, 5099, 5100, 5101, 5103, 5104, 5105, 5106, 5108,
+ 5109, 5110, 5111, 5113, 5114, 5115, 5116, 5118, 5119, 5120, 5121, 5123, 5124,
+ 5125, 5126, 5128, 5129, 5130, 5131, 5133, 5134, 5135, 5137, 5138, 5139, 5140,
+ 5142, 5143, 5144, 5145, 5147, 5148, 5149, 5150, 5152, 5153, 5154, 5156, 5157,
+ 5158, 5159, 5161, 5162, 5163, 5164, 5166, 5167, 5168, 5169, 5171, 5172, 5173,
+ 5174, 5176, 5177, 5178, 5179, 5180, 5181, 5182, 5195, 5196, 5197, 5198, 5200,
+ 5201, 5202, 5203, 5205, 5206, 5207, 5208, 5210, 5211, 5212, 5213, 5215, 5216,
+ 5217, 5218, 5219, 5220, 5224, 5225, 5226, 5227, 5229, 5230, 5231, 5232, 5233,
+ 5237, 5238, 5239, 5241, 5242, 5243, 5244, 5245, 5246, 5247, 5248, 5250, 5251,
+ 5252, 5253, 5254, 5255, 5256, 5257, 5258, 5259, 5260, 5261, 5262, 5263, 5264,
+ 5265, 5266, 5267, 5268, 5269, 5270, 5271, 5272, 5273, 5274, 5275, 5276, 5277,
+ 5278, 5279, 5280, 5281, 5282, 5283, 5284, 5286, 5287, 5288, 5289, 5290, 5294,
+ 5295, 5296, 5298, 5299, 5300, 5301, 5303, 5304, 5305, 5306, 5308, 5309, 5310,
+ 5311, 5313, 5314, 5315, 5316, 5318, 5319, 5320, 5321, 5323, 5324, 5325, 5326,
+ 5327, 5328, 5329, 5330, 5331, 5332, 5333, 5335, 5336, 5337, 5338, 5340, 5341,
+ 5342, 5343, 5345, 5346, 5347, 5348, 5350, 5351, 5352, 5353, 5355, 5356, 5357,
+ 5358, 5360, 5361, 5362, 5363, 5365, 5366, 5367, 5368, 5370, 5371, 5372, 5373,
+ 5375, 5376, 5377, 5378, 5380, 5381, 5382, 5383, 5385, 5386, 5387, 5388, 5390,
+ 5391, 5392, 5393, 5394, 5395, 5396, 5398, 5399, 5400, 5401, 5403, 5404, 5405,
+ 5406, 5408, 5409, 5410, 5411, 5413, 5414, 5415, 5416, 5418, 5419, 5420, 5421,
+ 5423, 5424, 5425, 5426, 5428, 5429, 5430, 5431, 5433, 5434, 5435, 5436, 5438,
+ 5439, 5440, 5441, 5443, 5444, 5445, 5446, 5448, 5449, 5450, 5451, 5452, 5453,
+ 5454, 5455, 5456, 5457, 5458, 5459, 5461, 5462, 5463, 5464, 5466, 5467, 5468,
+ 5469, 5471, 5472, 5473, 5474, 5476, 5477, 5478, 5479, 5481, 5482, 5483, 5484,
+ 5486, 5487, 5488, 5489, 5491, 5492, 5493, 5494, 5495, 5496, 5500, 5501, 5502,
+ 5503, 5504, 5505, 5506, 5507, 5508, 5509, 5510, 5511, 5512, 5513, 5514, 5515,
+ 5516, 5520, 5521, 5522, 5523, 5525, 5526, 5527, 5529, 5530, 5531, 5532, 5534,
+ 5535, 5536, 5537, 5539, 5540, 5541, 5542, 5544, 5545, 5546, 5547, 5549, 5550,
+ 5551, 5552, 5554, 5555, 5556, 5557, 5559, 5560, 5561, 5562, 5563, 5564, 5565,
+ 5566, 5567, 5568, 5569, 5570, 5571, 5572, 5573, 5575, 5576, 5577, 5578, 5580,
+ 5581, 5582, 5584, 5585, 5586, 5587, 5589, 5590, 5591, 5592, 5594, 5595, 5596,
+ 5597, 5599, 5600, 5601, 5602, 5604, 5605, 5606, 5608, 5609, 5610, 5612, 5613,
+ 5614, 5615, 5616, 5620, 5621, 5622, 5623, 5624, 5625, 5626, 5628, 5629, 5630,
+ 5632, 5633, 5634, 5635, 5636, 5640, 5641, 5642, 5643, 5644, 5645, 5646, 5647,
+ 5648, 5651, 5652, 5653, 5654, 5656, 5657, 5658, 5659, 5660, 5664, 5665, 5666,
+ 5675, 5676, 5677, 5678, 5679, 5680, 5681, 5682, 5683, 5684, 5685, 5687, 5688,
+ 5689, 5690, 5692, 5693, 5694, 5695, 5697, 5698, 5699, 5700, 5702, 5703, 5704,
+ 5705, 5707, 5708, 5709, 5710, 5712, 5713, 5714, 5715, 5716, 5717, 5718, 5719,
+ 5720, 5722, 5723, 5724, 5725, 5727, 5728, 5729, 5730, 5732, 5733, 5734, 5735,
+ 5737, 5738, 5739, 5740, 5742, 5743, 5744, 5745, 5747, 5748, 5749, 5750, 5752,
+ 5753, 5754, 5755, 5756, 5757, 5758, 5759, 5760, 5761, 5762, 5763, 5764, 5765,
+ 5766, 5790, 5791, 5792, 5794, 5795, 5796, 5797, 5799, 5800, 5801, 5802, 5804,
+ 5805, 5806, 5807, 5809, 5810, 5811, 5812, 5814, 5815, 5816, 5817, 5819, 5820,
+ 5821, 5822, 5823, 5824, 5825, 5826, 5836, 5837, 5838, 5840, 5841, 5842, 5843,
+ 5845, 5846, 5847, 5849, 5850, 5851, 5855, 5856, 5857, 5859, 5860, 5861, 5863,
+ 5864, 5865, 5869, 5870, 5871, 5875, 5876, 5877, 5879, 5880, 5881, 5885, 5886,
+ 5887, 5891, 5892, 5893, 5895, 5896, 5897, 5898, 5900, 5901, 5902, 5903, 5905,
+ 5906, 5907, 5908, 5910, 5911, 5912, 5914, 5915, 5916, 5918, 5919, 5920, 5922,
+ 5923, 5924, 5926, 5927, 5928, 5930, 5931, 5932, 5933, 5934, 5935, 5936, 5937,
+ 5938, 5939, 5940, 5941, 5942, 5943, 5944, 5945, 5946, 5947, 5948, 5980, 5981,
+ 5982, 5983, 5984, 5985, 5986, 5988, 5989, 5990, 5991, 5993, 5994, 5995, 5996,
+ 5998, 5999, 6000, 6001, 6003, 6004, 6005, 6006, 6008, 6009, 6010, 6011, 6013,
+ 6014, 6015, 6016, 6017, 6021, 6022, 6023, 6025, 6026, 6027, 6028, 6030, 6031,
+ 6032, 6033, 6035, 6036, 6037, 6038, 6040, 6041, 6042, 6043, 6044, 6045, 6046,
+ 6047, 6048, 6049, 6050, 6051, 6052, 6053, 6054, 6055, 6056, 6057, 6058, 6059,
+ 6060, 6061, 6062, 6064, 6065, 6066, 6067, 6069, 6070, 6071, 6072, 6074, 6075,
+ 6076, 6077, 6079, 6080, 6081, 6082, 6083, 6084, 6085, 6086, 6087, 6088, 6089,
+ 6090, 6091, 6092, 6093, 6094, 6095, 6096, 6097, 6098, 6099, 6100, 6101, 6102,
+ 6103, 6107, 6108, 6109, 6111, 6112, 6113, 6114, 6116, 6117, 6118, 6119, 6121,
+ 6122, 6123, 6124, 6126, 6127, 6128, 6129, 6130, 6131, 6132, 6133, 6134, 6135,
+ 6136, 6137, 6138, 6139, 6140, 6141, 6142, 6143, 6144, 6145, 6146, 6147, 6148,
+ 6149, 6151, 6152, 6153, 6155, 6156, 6157, 6158, 6160, 6161, 6162, 6163, 6165,
+ 6166, 6167, 6168, 6170, 6171, 6172, 6173, 6174, 6175, 6176, 6177, 6178, 6179,
+ 6180, 6181, 6182, 6183, 6184, 6185, 6186, 6187, 6188, 6189, 6190, 6191, 6192,
+ 6194, 6195, 6196, 6197, 6199, 6200, 6201, 6202, 6204, 6205, 6206, 6207, 6209,
+ 6210, 6211, 6212, 6213, 6214, 6215, 6216, 6217, 6218, 6219, 6220, 6221, 6222,
+ 6223, 6224, 6225, 6226, 6227, 6228, 6229, 6230, 6231, 6232, 6233, 6237, 6238,
+ 6239, 6241, 6242, 6243, 6244, 6246, 6247, 6248, 6249, 6251, 6252, 6253, 6254,
+ 6256, 6257, 6258, 6259, 6260, 6261, 6262, 6263, 6264, 6265, 6266, 6267, 6268,
+ 6269, 6270, 6271, 6272, 6273, 6274, 6275, 6276, 6277, 6278, 6279, 6281, 6282,
+ 6283, 6285, 6286, 6287, 6288, 6290, 6291, 6292, 6293, 6295, 6296, 6297, 6298,
+ 6300, 6301, 6302, 6303, 6304, 6305, 6306, 6307, 6308, 6309, 6310, 6311, 6312,
+ 6313, 6314, 6315, 6316, 6317, 6318, 6319, 6320, 6321, 6322, 6323, 6325, 6326,
+ 6327, 6328, 6330, 6331, 6332, 6333, 6335, 6336, 6337, 6338, 6340, 6341, 6342,
+ 6343, 6345, 6346, 6347, 6348, 6350, 6351, 6352, 6353, 6355, 6356, 6357, 6358,
+ 6360, 6361, 6362, 6363, 6365, 6366, 6367, 6368, 6370, 6371, 6372, 6373, 6375,
+ 6376, 6377, 6379, 6380, 6381, 6382, 6384, 6385, 6386, 6387, 6389, 6390, 6391,
+ 6392, 6394, 6395, 6396, 6397, 6398, 6399, 6400, 6401, 6402, 6403, 6404, 6405,
+ 6406, 6407, 6408, 6409, 6410, 6411, 6412, 6413, 6414, 6415, 6416, 6418, 6419,
+ 6420, 6421, 6423, 6424, 6425, 6426, 6428, 6429, 6430, 6431, 6433, 6434, 6435,
+ 6436, 6437, 6438, 6439, 6440, 6441, 6442, 6443, 6444, 6445, 6446, 6447, 6448,
+ 6449, 6450, 6451, 6452, 6453, 6454, 6455, 6456, 6457, 6458, 6464, 6465, 6466,
+ 6468, 6469, 6470, 6471, 6473, 6474, 6475, 6476, 6478, 6479, 6480, 6481, 6483,
+ 6484, 6485, 6486, 6487, 6488, 6489, 6490, 6492, 6493, 6494, 6496, 6497, 6498,
+ 6499, 6501, 6502, 6503, 6504, 6506, 6507, 6508, 6509, 6511, 6512, 6513, 6514,
+ 6515, 6516, 6517, 6518, 6519, 6520, 6521, 6522, 6523, 6524, 6525, 6526, 6528,
+ 6529, 6530, 6531, 6533, 6534, 6535, 6536, 6538, 6539, 6540, 6541, 6543, 6544,
+ 6545, 6547, 6548, 6549, 6551, 6552, 6553, 6555, 6556, 6557, 6558, 6560, 6561,
+ 6562, 6563, 6565, 6566, 6567, 6568, 6570, 6571, 6572, 6573, 6574, 6575, 6576,
+ 6577, 6578, 6579, 6580, 6581, 6582, 6583, 6584, 6585, 6586, 6587, 6588, 6589,
+ 6591, 6592, 6593, 6594, 6595, 6596, 6597, 6598, 6599, 6600, 6601, 6602, 6603,
+ 6604, 6626, 6627, 6628, 6629, 6630, 6631, 6632, 6634, 6636, 6637, 6638, 6639,
+ 6641, 6642, 6643, 6644, 6646, 6647, 6648, 6649, 6651, 6652, 6653, 6655, 6656,
+ 6657, 6658, 6659, 6660, 6661, 6662, 6663, 6664, 6665, 6666, 6667, 6668, 6669,
+ 6670, 6672, 6673, 6674, 6675, 6677, 6678, 6679, 6680, 6681, 6682, 6683, 6684,
+ 6685, 6686, 6687, 6688, 6689, 6690, 6691, 6692, 6693, 6694, 6695, 6697, 6698,
+ 6699, 6700, 6702, 6703, 6704, 6706, 6707, 6708, 6710, 6711, 6712, 6713, 6714,
+ 6715, 6716, 6718, 6719, 6720, 6721, 6722, 6723, 6731, 6732, 6733, 6734, 6737,
+ 6738, 6739, 6740, 6742, 6743, 6744, 6745, 6746, 6747, 6748, 6750, 6751, 6752,
+ 6753, 6755, 6756, 6757, 6758, 6760, 6761, 6762, 6763, 6764, 6765, 6766, 6767,
+ 6769, 6770, 6771, 6772, 6774, 6775, 6776, 6777, 6779, 6780, 6781, 6782, 6784,
+ 6785, 6786, 6787, 6789, 6790, 6791, 6792, 6794, 6795, 6796, 6797, 6798, 6799,
+ 6800, 6801, 6803, 6804, 6805, 6806, 6808, 6809, 6810, 6811, 6813, 6814, 6815,
+ 6816, 6818, 6819, 6820, 6821, 6823, 6824, 6825, 6826, 6828, 6829, 6830, 6831,
+ 6832, 6833, 6834, 6835, 6837, 6838, 6839, 6840, 6842, 6843, 6844, 6845, 6847,
+ 6848, 6849, 6850, 6852, 6853, 6854, 6855, 6856, 6857, 6858, 6859, 6861, 6862,
+ 6863, 6864, 6866, 6867, 6868, 6869, 6871, 6872, 6873, 6874, 6876, 6877, 6878,
+ 6879, 6880, 6881, 6882, 6883, 6885, 6886, 6887, 6888, 6890, 6891, 6892, 6893,
+ 6895, 6896, 6897, 6898, 6900, 6901, 6902, 6903, 6905, 6906, 6907, 6908, 6910,
+ 6911, 6912, 6913, 6914, 6915, 6916, 6917, 6927, 6928, 6929, 6930, 6931, 6932,
+ 6933, 6934, 6935, 6936, 6937, 6938, 6939, 6940, 6941, 6942, 6943, 6944, 6945,
+ 6946, 6947, 6948, 6949, 6953, 6954, 6955, 6957, 6959, 6960, 6961, 6962, 6964,
+ 6965, 6966, 6967, 6969, 6970, 6971, 6972, 6973, 6977, 6978, 6979, 6980, 6981,
+ 6982, 6983, 6987, 6988, 6989, 6990, 6991, 6992, 6996, 6997, 6998, 6999, 7000,
+ 7004, 7005, 7006, 7008, 7009, 7010, 7012, 7014, 7020, 7021, 7022, 7027, 7028,
+ 7029, 7033, 7034, 7035, 7037, 7038, 7039, 7046, 7047, 7048, 7058, 7059, 7060,
+ 7070, 7071, 7072, 7076, 7077, 7078, 7082, 7083, 7084, 7094, 7095, 7096, 7097,
+ 7098, 7099, 7100, 7101, 7102, 7103, 7104, 7105, 7114, 7115, 7116, 7119, 7120,
+ 7121, 7122, 7123, 7124, 7125, 7135, 7136, 7137, 7138, 7139, 7140, 7141, 7142,
+ 7143, 7144, 7147, 7148, 7149, 7151, 7152, 7153, 7154, 7155, 7156, 7158, 7160,
+ 7161, 7162, 7171, 7172, 7173, 7174, 7175, 7176, 7177, 7178, 7180, 7181, 7182,
+ 7183, 7185, 7186, 7187, 7189, 7190, 7191, 7201, 7202, 7203, 7206, 7207, 7208,
+ 7214, 7215, 7216, 7217, 7218, 7219, 7221, 7222, 7223, 7225, 7226, 7227, 7228,
+ 7229, 7230, 7231, 7232, 7233, 7234, 7241, 7242, 7243, 7246, 7247, 7248, 7251,
+ 7252, 7253, 7257, 7258, 7259, 7265, 7266, 7267, 7269, 7270, 7271, 7272, 7273,
+ 7274, 7275, 7276, 7282, 7283, 7284, 7287, 7288, 7289, 7291, 7292, 7293, 7302,
+ 7303, 7304, 7305, 7306, 7307, 7308, 7311, 7312, 7313, 7317, 7318, 7319, 7320,
+ 7321, 7322, 7323, 7324, 7329, 7330, 7331, 7333, 7334, 7335, 7336, 7337, 7338,
+ 7339, 7340, 7341, 7342, 7343, 7344, 7345, 7346, 7348, 7349, 7350, 7352, 7353,
+ 7354, 7359, 7360, 7361, 7363, 7364, 7365, 7366, 7367, 7368, 7369, 7370, 7371,
+ 7377, 7378, 7379, 7380, 7381, 7382, 7383, 7384, 7385, 7386, 7387, 7388, 7389,
+ 7390, 7391, 7392, 7393, 7394, 7395, 7400, 7401, 7402, 7403, 7404, 7405, 7406,
+ 7407, 7408, 7409, 7410, 7412, 7413, 7414, 7415, 7416, 7417, 7418, 7419, 7420,
+ 7421, 7422, 7426, 7427, 7428, 7429, 7430, 7434, 7435, 7436, 7438, 7439, 7440,
+ 7441, 7442, 7443, 7444, 7445, 7446, 7447, 7448, 7449, 7450, 7451, 7452, 7453,
+ 7457, 7458, 7459, 7460, 7461, 7462, 7463, 7465, 7466, 7467, 7468, 7469, 7470,
+ 7473, 7474, 7475, 7477, 7478, 7479, 7480, 7481, 7482, 7483, 7484, 7485, 7486,
+ 7490, 7491, 7492, 7493, 7494, 7497, 7498, 7499, 7500, 7501, 7502, 7503, 7504,
+ 7505, 7510, 7511, 7512, 7513, 7514, 7515, 7519, 7520, 7521, 7522, 7523, 7524,
+ 7525, 7526, 7527, 7528, 7532, 7533, 7534, 7536, 7537, 7538, 7539, 7540, 7542,
+ 7543, 7544, 7545, 7546, 7547, 7548, 7549, 7550, 7551, 7552, 7553, 7554, 7555,
+ 7556, 7557, 7558, 7559, 7560, 7561, 7562, 7563, 7564, 7565, 7566, 7567, 7572,
+ 7573, 7574, 7575, 7576, 7577, 7578, 7579, 7580, 7581, 7582, 7583, 7584, 7585,
+ 7586, 7587, 7588, 7589, 7590, 7591, 7592, 7593, 7594, 7595, 7596, 7597, 7598,
+ 7599, 7600, 7601, 7605, 7606, 7607, 7608, 7609, 7610, 7611, 7612, 7613, 7615,
+ 7616, 7617, 7618, 7619, 7620, 7621, 7622, 7623, 7624, 7625, 7628, 7629, 7630,
+ 7632, 7633, 7634, 7639, 7640, 7641, 7647, 7648, 7649, 7650, 7651, 7652, 7654,
+ 7663, 7664, 7665, 7670, 7671, 7672, 7675, 7676, 7677, 7678, 7679, 7680, 7681,
+ 7682, 7683, 7690, 7691, 7692, 7693, 7694, 7695, 7696, 7697, 7698, 7699, 7700,
+ 7701, 7702, 7704, 7706, 7710, 7711, 7712, 7718, 7719, 7720, 7728, 7729, 7730,
+ 7739, 7740, 7741, 7744, 7745, 7746, 7748, 7754, 7755, 7756, 7762, 7763, 7764,
+ 7766, 7767, 7768, 7769, 7770, 7771, 7772, 7773, 7774, 7775, 7776, 7777, 7778,
+ 7779, 7787, 7788, 7789, 7790, 7791, 7792, 7793, 7794, 7795, 7796, 7797, 7798,
+ 7810, 7811, 7812, 7814, 7815, 7816, 7817, 7818, 7819, 7820, 7821, 7822, 7824,
+ 7825, 7826, 7827, 7828, 7829, 7830, 7831, 7832, 7833, 7834, 7835, 7836, 7837,
+ 7838, 7842, 7843, 7844, 7845, 7846, 7847, 7848, 7849, 7850, 7852, 7853, 7854,
+ 7855, 7856, 7857, 7858, 7859, 7860, 7862, 7863, 7864, 7865, 7866, 7867, 7868,
+ 7869, 7870, 7871, 7872, 7873, 7874, 7875, 7876, 7877, 7878, 7879, 7882, 7883,
+ 7884, 7885, 7886, 7887, 7888, 7889, 7890, 7891, 7892, 7893, 7894, 7895, 7896,
+ 7897, 7898, 7899, 7900, 7901, 7902, 7903, 7904, 7905, 7912, 7913, 7914, 7915,
+ 7916, 7917, 7918, 7919, 7920, 7921, 7922, 7923, 7924, 7925, 7926, 7927, 7928,
+ 7929, 7930, 7931, 7932, 7933, 7934, 7935, 7936, 7937, 7938, 7946, 7947, 7948,
+ 7949, 7950, 7951, 7952, 7953, 7954, 7955, 7956, 7964, 7965, 7966, 7967, 7968,
+ 7969, 7970, 7971, 7972, 7973, 7974, 7975, 7976, 7977, 7978, 7979, 7980, 7981,
+ 7982, 7983, 7984, 7985, 7986, 7987, 7994, 7995, 7996, 7997, 7998, 7999, 8000,
+ 8001, 8002, 8003, 8004, 8005, 8006, 8007, 8008, 8009, 8010, 8011, 8012, 8013,
+ 8014, 8020, 8021, 8022, 8023, 8024, 8025, 8026, 8027, 8028, 8029, 8030, 8031,
+ 8032, 8033, 8034, 8035, 8036, 8037, 8042, 8043, 8044, 8045, 8046, 8047, 8048,
+ 8049, 8050, 8051, 8052, 8053, 8054, 8055, 8056, 8060, 8061, 8062, 8063, 8064,
+ 8065, 8066, 8070, 8071, 8072, 8073, 8074, 8075, 8076, 8077, 8078, 8079, 8080,
+ 8081, 8082, 8083, 8084, 8085, 8086, 8087, 8088, 8089, 8090, 8094, 8095, 8096,
+ 8097, 8098, 8100, 8101, 8102, 8103, 8104, 8105, 8106, 8107, 8108, 8109, 8110,
+ 8111, 8114, 8115, 8116, 8117, 8118, 8119, 8120, 8121, 8122, 8123, 8124, 8125,
+ 8126, 8127, 8128, 8130, 8131, 8132, 8133, 8134, 8135, 8136, 8137, 8138, 8139,
+ 8140, 8141, 8142, 8146, 8147, 8148, 8149, 8150, 8151, 8152, 8153, 8154, 8155,
+ 8156, 8157, 8158, 8159, 8160, 8161, 8162, 8163, 8164, 8165, 8166, 8167, 8170,
+ 8171, 8172, 8173, 8174, 8175, 8176, 8177, 8178, 8179, 8180, 8182, 8183, 8184,
+ 8185, 8186, 8187, 8188, 8189, 8190, 8196, 8197, 8198, 8199, 8200, 8201, 8202,
+ 8203, 8204, 8205, 8206, 8207, 8208, 8209, 8210, 8211, 8212, 8213, 8214, 8215,
+ 8216, 8217, 8218, 8219, 8220, 8221, 8222, 8224, 8225, 8226, 8227, 8228, 8229,
+ 8230, 8231, 8232, 8233, 8234, 8235, 8236, 8237, 8238, 8239, 8242, 8243, 8244,
+ 8245, 8246, 8247, 8248, 8249, 8250, 8251, 8252, 8253, 8254, 8255, 8256, 8257,
+ 8258, 8259, 8260, 8261, 8262, 8263, 8264, 8265, 8266, 8268, 8269, 8270, 8271,
+ 8272, 8273, 8274, 8275, 8276, 8277, 8278, 8279, 8280, 8281, 8282, 8283, 8284,
+ 8285, 8286, 8287, 8288, 8289, 8290, 8291, 8292, 8293, 8294, 8295, 8296, 8297,
+ 8298, 8299, 8300, 8301, 8302, 8303, 8304, 8305, 8306, 8307, 8308, 8309, 8310,
+ 8311, 8312, 8313, 8314, 8315, 8316, 8317, 8318, 8319, 8320, 8324, 8325, 8326,
+ 8327, 8328, 8329, 8330, 8331, 8332, 8334, 8335, 8336, 8337, 8338, 8339, 8340,
+ 8341, 8342, 8348, 8349, 8350, 8351, 8353, 8354, 8355, 8356, 8358, 8359, 8360,
+ 8361, 8363, 8364, 8365, 8366, 8368, 8369, 8370, 8371, 8372, 8373, 8385, 8386,
+ 8387, 8388, 8390, 8391, 8392, 8393, 8394, 8395, 8396, 8397, 8398, 8399, 8400,
+ 8402, 8403, 8404, 8405, 8407, 8408, 8409, 8410, 8412, 8413, 8414, 8415, 8416,
+ 8417, 8418, 8419, 8420, 8421, 8422, 8423, 8424, 8425, 8426, 8427, 8428, 8429,
+ 8430, 8431, 8432, 8433, 8434, 8435, 8436, 8437, 8438, 8439, 8440, 8441, 8442,
+ 8444, 8445, 8446, 8447, 8449, 8450, 8451, 8452, 8454, 8455, 8456, 8457, 8459,
+ 8460, 8461, 8462, 8464, 8465, 8466, 8467, 8468, 8469, 8470, 8471, 8472, 8473,
+ 8474, 8475, 8476, 8477, 8478, 8479, 8480, 8481, 8482, 8483, 8484, 8485, 8486,
+ 8487, 8489, 8490, 8491, 8492, 8494, 8495, 8496, 8497, 8499, 8500, 8501, 8502,
+ 8504, 8505, 8506, 8507, 8509, 8510, 8511, 8512, 8514, 8515, 8516, 8517, 8519,
+ 8520, 8521, 8522, 8525, 8526, 8527, 8528, 8529, 8530, 8531, 8532, 8533, 8534,
+ 8535, 8537, 8538, 8539, 8540, 8542, 8543, 8544, 8545, 8547, 8548, 8549, 8550,
+ 8552, 8553, 8554, 8555, 8557, 8558, 8559, 8560, 8561, 8562, 8563, 8564, 8566,
+ 8567, 8568, 8569, 8571, 8572, 8573, 8574, 8576, 8577, 8578, 8579, 8581, 8582,
+ 8583, 8584, 8586, 8587, 8588, 8589, 8591, 8592, 8593, 8594, 8596, 8597, 8598,
+ 8599, 8600, 8601, 8602, 8604, 8606, 8615, 8616, 8617, 8618, 8619, 8620, 8621,
+ 8622, 8623, 8624, 8625, 8626, 8627, 8628, 8629, 8630, 8631, 8632, 8633, 8636,
+ 8637, 8638, 8639, 8640, 8641, 8643, 8644, 8645, 8646, 8647, 8648, 8651, 8652,
+ 8653, 8654, 8655, 8656, 8657, 8658, 8663, 8664, 8665, 8666, 8669, 8670, 8671,
+ 8672, 8673, 8674, 8675, 8676, 8678, 8679, 8680, 8681, 8682, 8683, 8687, 8688,
+ 8689, 8691, 8692, 8693, 8694, 8696, 8697, 8698, 8699, 8700, 8701, 8702, 8703,
+ 8704, 8705, 8706, 8707, 8708, 8709, 8710, 8711, 8712, 8713, 8714, 8715, 8716,
+ 8717, 8718, 8719, 8720, 8721, 8722, 8723, 8724, 8725, 8726, 8727, 8728, 8729,
+ 8730, 8732, 8733, 8734, 8735, 8737, 8738, 8739, 8740, 8742, 8743, 8744, 8745,
+ 8746, 8747, 8748, 8749, 8750, 8751, 8752, 8753, 8754, 8755, 8756, 8757, 8758,
+ 8759, 8760, 8761, 8762, 8763, 8764, 8765, 8766, 8767, 8768, 8769, 8770, 8771,
+ 8772, 8774, 8775, 8776, 8777, 8778, 8779, 8780, 8781, 8782, 8783, 8784, 8785,
+ 8786, 8787, 8788, 8789, 8790, 8791, 8792, 8793, 8794, 8795, 8796, 8797, 8798,
+ 8799, 8800, 8801, 8802, 8803, 8804, 8805, 8806, 8807, 8808, 8809, 8810, 8811,
+ 8812, 8813, 8814, 8815, 8816, 8817, 8818, 8819, 8820, 8821, 8822, 8823, 8824,
+ 8825, 8826, 8827, 8828, 8829, 8830, 8831, 8832, 8833, 8834, 8835, 8836, 8837,
+ 8838, 8839, 8840, 8841, 8842, 8843, 8844, 8845, 8846, 8847, 8848, 8849, 8850,
+ 8851, 8852, 8853, 8854, 8855, 8856, 8857, 8858, 8859, 8860, 8861, 8862, 8863,
+ 8864, 8865, 8866, 8867, 8868, 8869, 8870, 8871, 8872, 8873, 8874, 8875, 8876,
+ 8877, 8878, 8879, 8880, 8881, 8882, 8883, 8884, 8885, 8886, 8887, 8888, 8889,
+ 8890, 8891, 8892, 8893, 8894, 8895, 8896, 8897, 8898, 8899, 8900, 8901, 8902,
+ 8903, 8904, 8905, 8906, 8907, 8908, 8909, 8910, 8911, 8912, 8913, 8914, 8915,
+ 8916, 8917, 8918, 8919, 8920, 8921, 8922, 8923, 8924, 8926, 8928, 8930, 8932,
+ 8934, 8936, 8938, 8940, 8942, 8951, 8952, 8953, 8954, 8955, 8956, 8957, 8958,
+ 8959, 8960, 8961, 8962, 8963, 8964, 8965, 8966, 8967, 8968, 8969, 8970, 8971,
+ 8973, 8974, 8975, 8976, 8977, 8978, 8981, 8982, 8983, 8984, 8986, 8987, 8988,
+ 8989, 8990, 8991, 8997, 8998, 8999, 9000, 9001, 9002, 9003, 9004, 9005, 9006,
+ 9007, 9008, 9009, 9010, 9011, 9012, 9013, 9014, 9015, 9017, 9018, 9019, 9020,
+ 9021, 9022, 9023, 9024, 9026, 9027, 9028, 9029, 9031, 9032, 9033, 9034, 9035,
+ 9036, 9037, 9038, 9039, 9040, 9042, 9043, 9044, 9045, 9047, 9048, 9049, 9050,
+ 9052, 9053, 9054, 9055, 9056, 9060, 9061, 9062, 9063, 9064, 9065, 9066, 9067,
+ 9068, 9069, 9070, 9071, 9072, 9073, 9074, 9075, 9076, 9077, 9078, 9079, 9080,
+ 9081, 9083, 9084, 9085, 9086, 9087, 9088, 9089, 9090, 9091, 9092, 9093, 9094,
+ 9095, 9096, 9097, 9098, 9099, 9100, 9101, 9102, 9103, 9104, 9105, 9106, 9107,
+ 9108, 9109, 9110, 9111, 9112, 9113, 9114, 9115, 9116, 9117, 9118, 9119, 9120,
+ 9121, 9122, 9124, 9125, 9126, 9127, 9128, 9131, 9132, 9133, 9134, 9135, 9139,
+ 9140, 9141, 9142, 9143, 9144, 9145, 9151, 9152, 9153, 9154, 9156, 9157, 9158,
+ 9159, 9161, 9162, 9163, 9164, 9166, 9167, 9168, 9169, 9176, 9177, 9178, 9179,
+ 9180, 9181, 9183, 9184, 9185, 9186, 9188, 9189, 9190, 9191, 9193, 9194, 9195,
+ 9196, 9198, 9199, 9200, 9201, 9203, 9204, 9205, 9206, 9207, 9209, 9210, 9211,
+ 9212, 9214, 9215, 9216, 9218, 9219, 9220, 9221, 9223, 9224, 9225, 9226, 9228,
+ 9229, 9230, 9231, 9233, 9234, 9235, 9236, 9237, 9238, 9239, 9240, 9241, 9242,
+ 9243, 9244, 9245, 9246, 9247, 9248, 9249, 9250, 9251, 9252, 9253, 9254, 9255,
+ 9256, 9258, 9259, 9260, 9261, 9263, 9264, 9265, 9266, 9268, 9269, 9270, 9271,
+ 9273, 9274, 9275, 9276, 9278, 9279, 9280, 9281, 9283, 9284, 9285, 9286, 9288,
+ 9289, 9290, 9291, 9293, 9294, 9295, 9296, 9298, 9299, 9300, 9301, 9303, 9304,
+ 9305, 9306, 9308, 9309, 9310, 9311, 9313, 9314, 9315, 9316, 9317, 9318, 9319,
+ 9320, 9322, 9323, 9324, 9327, 9328, 9329, 9330, 9331, 9332, 9333, 9335, 9336,
+ 9337, 9338, 9340, 9341, 9342, 9343, 9345, 9346, 9347, 9348, 9350, 9351, 9352,
+ 9353, 9354, 9355, 9356, 9358, 9359, 9360, 9361, 9363, 9364, 9365, 9367, 9368,
+ 9369, 9370, 9372, 9373, 9374, 9376, 9377, 9378, 9379, 9381, 9382, 9383, 9384,
+ 9385, 9386, 9387, 9392, 9393, 9394, 9395, 9396, 9397, 9398, 9403, 9404, 9405,
+ 9406, 9407, 9408, 9409, 9410, 9411, 9414, 9415, 9416, 9417, 9421, 9422, 9423,
+ 9424, 9426, 9427, 9428, 9429, 9431, 9432, 9438, 9439, 9440, 9442, 9443, 9444,
+ 9445, 9446, 9447, 9448, 9449, 9451, 9452, 9453, 9454, 9456, 9457, 9458, 9459,
+ 9461, 9462, 9463, 9464, 9466, 9467, 9468, 9469, 9471, 9472, 9473, 9474, 9476,
+ 9477, 9478, 9479, 9480, 9481, 9482, 9483, 9484, 9485, 9486, 9487, 9488, 9489,
+ 9490, 9491, 9492, 9493, 9494, 9495, 9496, 9497, 9498, 9499, 9500, 9501, 9502,
+ 9503, 9504, 9505, 9506, 9507, 9508, 9510, 9511, 9512, 9513, 9514, 9515, 9516,
+ 9517, 9518, 9519, 9520, 9521, 9523, 9524, 9525, 9526, 9528, 9529, 9530, 9531,
+ 9533, 9534, 9535, 9536, 9538, 9539, 9540, 9541, 9543, 9544, 9545, 9546, 9548,
+ 9549, 9550, 9551, 9553, 9554, 9555, 9556, 9557, 9558, 9559, 9560, 9562, 9563,
+ 9564, 9565, 9567, 9568, 9569, 9570, 9572, 9573, 9574, 9575, 9577, 9578, 9579,
+ 9580, 9582, 9583, 9584, 9585, 9587, 9588, 9589, 9590, 9592, 9593, 9594, 9595,
+ 9597, 9598, 9599, 9600, 9601, 9602, 9603, 9604, 9606, 9607, 9608, 9609, 9611,
+ 9612, 9613, 9614, 9616, 9617, 9618, 9619, 9620, 9621, 9622, 9623, 9624, 9626,
+ 9627, 9628, 9629, 9630, 9631, 9632, 9633, 9634, 9635, 9636, 9637, 9638, 9639,
+ 9640, 9641, 9642, 9643, 9644, 9645, 9646, 9647, 9648, 9649, 9650, 9651, 9652,
+ 9653, 9655, 9656, 9657, 9658, 9659, 9660, 9661, 9662, 9664, 9665, 9666, 9667,
+ 9669, 9670, 9671, 9672, 9673, 9674, 9676, 9677, 9678, 9679, 9681, 9682, 9683,
+ 9684, 9686, 9687, 9688, 9689, 9690, 9691, 9693, 9694, 9695, 9696, 9697, 9698,
+ 9699, 9700, 9701, 9702, 9703, 9704, 9705, 9706, 9707, 9708, 9709, 9710, 9712,
+ 9713, 9714, 9715, 9716, 9720, 9721, 9722, 9723, 9724, 9725, 9726, 9734, 9735,
+ 9736, 9737, 9738, 9739, 9741, 9742, 9743, 9744, 9746, 9747, 9748, 9749, 9751,
+ 9752, 9753, 9754, 9756, 9757, 9758, 9759, 9760, 9761, 9762, 9763, 9764, 9765,
+ 9766, 9767, 9769, 9770, 9771, 9772, 9774, 9775, 9776, 9777, 9778, 9779, 9780,
+ 9781, 9782, 9783, 9784, 9785, 9786, 9787, 9788, 9789, 9790, 9792, 9793, 9794,
+ 9795, 9796, 9797, 9798, 9799, 9800, 9801, 9802, 9803, 9804, 9805, 9806, 9808,
+ 9809, 9810, 9811, 9812, 9813, 9814, 9815, 9817, 9818, 9819, 9820, 9822, 9823,
+ 9824, 9825, 9827, 9828, 9829, 9830, 9831, 9832, 9834, 9835, 9836, 9837, 9839,
+ 9840, 9841, 9842, 9844, 9845, 9846, 9847, 9849, 9850, 9851, 9852, 9853, 9854,
+ 9855, 9856, 9857, 9858, 9859, 9860, 9866, 9867, 9868, 9869, 9870, 9871, 9874,
+ 9875, 9876, 9877, 9878, 9879, 9880, 9881, 9882, 9883, 9884, 9885, 9886, 9887,
+ 9888, 9889, 9890, 9891, 9892, 9893, 9894, 9895, 9898, 9899, 9900, 9901, 9902,
+ 9903, 9904, 9905, 9906, 9907, 9908, 9909, 9911, 9912, 9913, 9914, 9915, 9916,
+ 9917, 9918, 9919, 9920, 9921, 9922, 9923, 9924, 9925, 9926, 9927, 9928, 9929,
+ 9930, 9931, 9932, 9933, 9934, 9935, 9936, 9937, 9938, 9939, 9940, 9946, 9947,
+ 9948, 9949, 9950, 9951, 9952, 9953, 9954, 9955, 9956, 9957, 9960, 9961, 9962,
+ 9963, 9964, 9965, 9966, 9967, 9968, 9969, 9970, 9971, 9972, 9982, 9983, 9984,
+ 9986, 9987, 9988, 9989, 9991, 9992, 9993, 9994, 9996, 9997, 9998, 9999, 10001,
+ 10002, 10003, 10004, 10006, 10007, 10008, 10009, 10011, 10012, 10013, 10014,
+ 10016, 10017, 10018, 10019, 10021, 10022, 10023, 10024, 10026, 10027, 10028,
+ 10029, 10031, 10032, 10033, 10034, 10036, 10037, 10038, 10040, 10041, 10042,
+ 10043, 10044, 10048, 10049, 10050, 10051, 10052, 10053, 10054, 10056, 10057,
+ 10058, 10059, 10061, 10062, 10063, 10064, 10065, 10066, 10067, 10068, 10070,
+ 10071, 10072, 10073, 10075, 10076, 10077, 10078, 10080, 10081, 10082, 10083,
+ 10085, 10086, 10087, 10088, 10090, 10091, 10092, 10093, 10095, 10096, 10097,
+ 10098, 10100, 10101, 10102, 10103, 10105, 10106, 10107, 10108, 10110, 10111,
+ 10112, 10113, 10115, 10116, 10117, 10118, 10120, 10121, 10122, 10123, 10125,
+ 10126, 10127, 10128, 10129, 10130, 10131, 10132, 10138, 10139, 10140, 10141,
+ 10143, 10144, 10145, 10146, 10148, 10149, 10150, 10151, 10152, 10153, 10154,
+ 10155, 10156, 10157, 10158, 10159, 10160, 10161, 10164, 10165, 10166, 10167,
+ 10169, 10170, 10171, 10172, 10173, 10174, 10176, 10177, 10178, 10179, 10181,
+ 10182, 10183, 10184, 10186, 10187, 10188, 10189, 10191, 10192, 10193, 10194,
+ 10196, 10197, 10198, 10199, 10201, 10202, 10203, 10204, 10206, 10207, 10208,
+ 10209, 10211, 10212, 10213, 10214, 10216, 10217, 10218, 10219, 10221, 10222,
+ 10223, 10224, 10226, 10227, 10228, 10229, 10231, 10232, 10233, 10234, 10236,
+ 10237, 10238, 10239, 10241, 10242, 10243, 10244, 10245, 10246, 10248, 10249,
+ 10250, 10251, 10253, 10254, 10255, 10256, 10258, 10259, 10260, 10261, 10263,
+ 10264, 10265, 10266, 10268, 10269, 10270, 10271, 10272, 10276, 10277, 10278,
+ 10279, 10280, 10281, 10282, 10283, 10285, 10286, 10287, 10288, 10289, 10290,
+ 10292, 10293, 10294, 10295, 10296, 10297, 10298, 10299, 10300, 10301, 10304,
+ 10305, 10306, 10307, 10308, 10309, 10310, 10311, 10312, 10313, 10314, 10315,
+ 10320, 10321, 10322, 10323, 10324, 10325, 10327, 10328, 10329, 10330, 10331,
+ 10332, 10334, 10335, 10336, 10337, 10339, 10340, 10341, 10342, 10343, 10344,
+ 10345, 10346, 10347, 10356, 10357, 10358, 10359, 10360, 10364, 10365, 10366,
+ 10367, 10368, 10369, 10370, 10371, 10372, 10373, 10374, 10375, 10376, 10377,
+ 10378, 10379, 10380, 10381, 10382, 10383, 10384, 10385, 10386, 10387, 10388,
+ 10389, 10391, 10392, 10393, 10394, 10396, 10397, 10398, 10399, 10400, 10401,
+ 10402, 10403, 10404, 10405, 10406, 10407, 10408, 10409, 10410, 10411, 10412,
+ 10413, 10414, 10415, 10416, 10417, 10418, 10419, 10420, 10422, 10423, 10424,
+ 10425, 10426, 10427, 10429, 10430, 10431, 10432, 10434, 10435, 10436, 10437,
+ 10439, 10440, 10441, 10442, 10444, 10445, 10446, 10447, 10449, 10450, 10451,
+ 10452, 10454, 10455, 10456, 10457, 10458, 10459, 10461, 10462, 10463, 10464,
+ 10466, 10467, 10468, 10469, 10471, 10472, 10473, 10474, 10475, 10476, 10478,
+ 10479, 10480, 10481, 10483, 10484, 10485, 10486, 10488, 10489, 10490, 10491,
+ 10493, 10494, 10495, 10496, 10497, 10498, 10499, 10512, 10513, 10514, 10515,
+ 10517, 10518, 10519, 10520, 10522, 10523, 10524, 10525, 10527, 10528, 10529,
+ 10530, 10532, 10533, 10534, 10535, 10536, 10537, 10541, 10542, 10543, 10544,
+ 10546, 10547, 10548, 10549, 10550, 10554, 10555, 10556, 10557, 10558, 10559,
+ 10560, 10561, 10562, 10563, 10565, 10566, 10567, 10568, 10569, 10570, 10571,
+ 10572, 10573, 10574, 10575, 10576, 10577, 10578, 10579, 10580, 10581, 10582,
+ 10583, 10584, 10585, 10586, 10587, 10588, 10589, 10590, 10591, 10592, 10593,
+ 10594, 10595, 10596, 10597, 10598, 10600, 10601, 10602, 10603, 10604, 10608,
+ 10609, 10610, 10611, 10612, 10613, 10615, 10616, 10617, 10618, 10620, 10621,
+ 10622, 10623, 10625, 10626, 10627, 10628, 10630, 10631, 10632, 10633, 10635,
+ 10636, 10637, 10638, 10639, 10640, 10641, 10642, 10643, 10644, 10645, 10646,
+ 10647, 10648, 10650, 10651, 10652, 10653, 10655, 10656, 10657, 10658, 10660,
+ 10661, 10662, 10663, 10665, 10666, 10667, 10668, 10670, 10671, 10672, 10673,
+ 10675, 10676, 10677, 10678, 10680, 10681, 10682, 10683, 10685, 10686, 10687,
+ 10688, 10690, 10691, 10692, 10693, 10695, 10696, 10697, 10698, 10700, 10701,
+ 10702, 10703, 10704, 10705, 10706, 10707, 10708, 10709, 10711, 10712, 10713,
+ 10714, 10716, 10717, 10718, 10719, 10721, 10722, 10723, 10724, 10726, 10727,
+ 10728, 10729, 10731, 10732, 10733, 10734, 10736, 10737, 10738, 10739, 10741,
+ 10742, 10743, 10744, 10746, 10747, 10748, 10749, 10751, 10752, 10753, 10754,
+ 10756, 10757, 10758, 10759, 10760, 10761, 10762, 10763, 10764, 10765, 10766,
+ 10767, 10769, 10770, 10771, 10772, 10774, 10775, 10776, 10777, 10779, 10780,
+ 10781, 10782, 10784, 10785, 10786, 10787, 10789, 10790, 10791, 10792, 10794,
+ 10795, 10796, 10797, 10799, 10800, 10801, 10802, 10803, 10804, 10808, 10809,
+ 10810, 10811, 10812, 10813, 10814, 10815, 10816, 10817, 10818, 10819, 10820,
+ 10821, 10822, 10823, 10827, 10828, 10829, 10830, 10832, 10833, 10834, 10835,
+ 10836, 10837, 10839, 10840, 10841, 10842, 10844, 10845, 10846, 10847, 10849,
+ 10850, 10851, 10852, 10854, 10855, 10856, 10857, 10859, 10860, 10861, 10862,
+ 10864, 10865, 10866, 10867, 10868, 10869, 10870, 10871, 10872, 10873, 10874,
+ 10875, 10876, 10877, 10879, 10880, 10881, 10882, 10884, 10885, 10886, 10887,
+ 10888, 10889, 10891, 10892, 10893, 10894, 10896, 10897, 10898, 10899, 10901,
+ 10902, 10903, 10904, 10906, 10907, 10908, 10909, 10910, 10911, 10912, 10913,
+ 10914, 10918, 10919, 10920, 10921, 10922, 10923, 10924, 10925, 10926, 10927,
+ 10928, 10929, 10930, 10934, 10935, 10936, 10937, 10938, 10939, 10940, 10941,
+ 10942, 10945, 10946, 10947, 10948, 10950, 10951, 10952, 10953, 10954, 10958,
+ 10959, 10960, 10961, 10962, 10963, 10964, 10965, 10966, 10967, 10968, 10969,
+ 10970, 10971, 10972, 10973, 10975, 10976, 10977, 10978, 10980, 10981, 10982,
+ 10983, 10985, 10986, 10987, 10988, 10990, 10991, 10992, 10993, 10995, 10996,
+ 10997, 10998, 10999, 11000, 11001, 11002, 11003, 11005, 11006, 11007, 11008,
+ 11010, 11011, 11012, 11013, 11015, 11016, 11017, 11018, 11020, 11021, 11022,
+ 11023, 11025, 11026, 11027, 11028, 11030, 11031, 11032, 11033, 11035, 11036,
+ 11037, 11038, 11039, 11040, 11041, 11042, 11043, 11044, 11045, 11046, 11047,
+ 11048, 11049, 11073, 11074, 11075, 11076, 11077, 11078, 11080, 11081, 11082,
+ 11083, 11085, 11086, 11087, 11088, 11090, 11091, 11092, 11093, 11095, 11096,
+ 11097, 11098, 11100, 11101, 11102, 11103, 11104, 11105, 11106, 11107, 11117,
+ 11118, 11119, 11120, 11121, 11122, 11124, 11125, 11126, 11127, 11128, 11129,
+ 11130, 11131, 11132, 11133, 11134, 11135, 11136, 11137, 11138, 11139, 11140,
+ 11141, 11142, 11143, 11144, 11145, 11146, 11147, 11149, 11150, 11151, 11152,
+ 11154, 11155, 11156, 11157, 11159, 11160, 11161, 11162, 11163, 11164, 11165,
+ 11166, 11167, 11168, 11169, 11170, 11171, 11172, 11173, 11174, 11175, 11176,
+ 11177, 11178, 11179, 11180, 11181, 11182, 11183, 11184, 11185, 11186, 11187,
+ 11219, 11220, 11221, 11222, 11223, 11224, 11225, 11226, 11227, 11228, 11230,
+ 11231, 11232, 11233, 11235, 11236, 11237, 11238, 11240, 11241, 11242, 11243,
+ 11245, 11246, 11247, 11248, 11250, 11251, 11252, 11253, 11254, 11258, 11259,
+ 11260, 11261, 11262, 11263, 11265, 11266, 11267, 11268, 11270, 11271, 11272,
+ 11273, 11275, 11276, 11277, 11278, 11279, 11280, 11281, 11282, 11283, 11284,
+ 11285, 11286, 11287, 11288, 11289, 11290, 11291, 11292, 11293, 11294, 11295,
+ 11296, 11297, 11298, 11299, 11300, 11302, 11303, 11304, 11305, 11307, 11308,
+ 11309, 11310, 11312, 11313, 11314, 11315, 11316, 11317, 11318, 11319, 11320,
+ 11321, 11322, 11323, 11324, 11325, 11326, 11327, 11328, 11329, 11330, 11331,
+ 11332, 11333, 11334, 11335, 11336, 11340, 11341, 11342, 11343, 11344, 11345,
+ 11347, 11348, 11349, 11350, 11352, 11353, 11354, 11355, 11357, 11358, 11359,
+ 11360, 11361, 11362, 11363, 11364, 11365, 11366, 11367, 11368, 11369, 11370,
+ 11371, 11372, 11373, 11374, 11375, 11376, 11377, 11378, 11379, 11380, 11382,
+ 11383, 11384, 11385, 11386, 11387, 11389, 11390, 11391, 11392, 11394, 11395,
+ 11396, 11397, 11399, 11400, 11401, 11402, 11403, 11404, 11405, 11406, 11407,
+ 11408, 11409, 11410, 11411, 11412, 11413, 11414, 11415, 11416, 11417, 11418,
+ 11419, 11420, 11421, 11422, 11423, 11424, 11426, 11427, 11428, 11429, 11431,
+ 11432, 11433, 11434, 11436, 11437, 11438, 11439, 11440, 11441, 11442, 11443,
+ 11444, 11445, 11446, 11447, 11448, 11449, 11450, 11451, 11452, 11453, 11454,
+ 11455, 11456, 11457, 11458, 11459, 11460, 11464, 11465, 11466, 11467, 11468,
+ 11469, 11471, 11472, 11473, 11474, 11476, 11477, 11478, 11479, 11481, 11482,
+ 11483, 11484, 11485, 11486, 11487, 11488, 11489, 11490, 11491, 11492, 11493,
+ 11494, 11495, 11496, 11497, 11498, 11499, 11500, 11501, 11502, 11503, 11504,
+ 11506, 11507, 11508, 11509, 11510, 11511, 11513, 11514, 11515, 11516, 11518,
+ 11519, 11520, 11521, 11523, 11524, 11525, 11526, 11527, 11528, 11529, 11530,
+ 11531, 11532, 11533, 11534, 11535, 11536, 11537, 11538, 11539, 11540, 11541,
+ 11542, 11543, 11544, 11545, 11546, 11548, 11549, 11550, 11551, 11553, 11554,
+ 11555, 11556, 11558, 11559, 11560, 11561, 11563, 11564, 11565, 11566, 11568,
+ 11569, 11570, 11571, 11573, 11574, 11575, 11576, 11578, 11579, 11580, 11581,
+ 11583, 11584, 11585, 11586, 11588, 11589, 11590, 11591, 11593, 11594, 11595,
+ 11596, 11598, 11599, 11600, 11601, 11602, 11603, 11605, 11606, 11607, 11608,
+ 11610, 11611, 11612, 11613, 11615, 11616, 11617, 11618, 11619, 11620, 11621,
+ 11622, 11623, 11624, 11625, 11626, 11627, 11628, 11629, 11630, 11631, 11632,
+ 11633, 11634, 11635, 11636, 11637, 11638, 11639, 11640, 11642, 11643, 11644,
+ 11645, 11647, 11648, 11649, 11650, 11652, 11653, 11654, 11655, 11656, 11657,
+ 11658, 11659, 11660, 11661, 11662, 11663, 11664, 11665, 11666, 11667, 11668,
+ 11669, 11670, 11671, 11672, 11673, 11674, 11675, 11676, 11677, 11683, 11684,
+ 11685, 11686, 11687, 11688, 11690, 11691, 11692, 11693, 11695, 11696, 11697,
+ 11698, 11700, 11701, 11702, 11703, 11704, 11705, 11706, 11707, 11709, 11710,
+ 11711, 11712, 11713, 11714, 11716, 11717, 11718, 11719, 11721, 11722, 11723,
+ 11724, 11726, 11727, 11728, 11729, 11730, 11731, 11732, 11733, 11734, 11735,
+ 11736, 11737, 11738, 11739, 11740, 11741, 11743, 11744, 11745, 11746, 11748,
+ 11749, 11750, 11751, 11753, 11754, 11755, 11756, 11758, 11759, 11760, 11762,
+ 11763, 11764, 11766, 11767, 11768, 11769, 11770, 11771, 11773, 11774, 11775,
+ 11776, 11778, 11779, 11780, 11781, 11783, 11784, 11785, 11786, 11787, 11788,
+ 11789, 11790, 11791, 11792, 11793, 11794, 11795, 11796, 11797, 11798, 11799,
+ 11800, 11801, 11802, 11804, 11805, 11806, 11807, 11808, 11809, 11810, 11811,
+ 11812, 11813, 11814, 11815, 11816, 11817, 11839, 11840, 11841, 11842, 11843,
+ 11844, 11845, 11847, 11849, 11850, 11851, 11852, 11854, 11855, 11856, 11857,
+ 11859, 11860, 11861, 11862, 11864, 11865, 11866, 11867, 11868, 11869, 11870,
+ 11871, 11872, 11873, 11874, 11875, 11876, 11877, 11878, 11879, 11880, 11881,
+ 11883, 11884, 11885, 11886, 11888, 11889, 11890, 11891, 11892, 11893, 11894,
+ 11895, 11896, 11897, 11898, 11899, 11900, 11901, 11902, 11903, 11904, 11905,
+ 11907, 11908, 11909, 11910, 11912, 11913, 11914, 11915, 11916, 11917, 11918,
+ 11919, 11920, 11921, 11923, 11924, 11925, 11926, 11927, 11928, 11936, 11937,
+ 11938, 11939, 11942, 11943, 11944, 11945, 11947, 11948, 11949, 11950, 11951,
+ 11952, 11953, 11955, 11956, 11957, 11958, 11960, 11961, 11962, 11963, 11965,
+ 11966, 11967, 11968, 11969, 11970, 11971, 11972, 11974, 11975, 11976, 11977,
+ 11979, 11980, 11981, 11982, 11984, 11985, 11986, 11987, 11989, 11990, 11991,
+ 11992, 11994, 11995, 11996, 11997, 11999, 12000, 12001, 12002, 12003, 12004,
+ 12005, 12006, 12008, 12009, 12010, 12011, 12013, 12014, 12015, 12016, 12018,
+ 12019, 12020, 12021, 12023, 12024, 12025, 12026, 12028, 12029, 12030, 12031,
+ 12033, 12034, 12035, 12036, 12037, 12038, 12039, 12040, 12042, 12043, 12044,
+ 12045, 12047, 12048, 12049, 12050, 12052, 12053, 12054, 12055, 12057, 12058,
+ 12059, 12060, 12061, 12062, 12063, 12064, 12066, 12067, 12068, 12069, 12071,
+ 12072, 12073, 12074, 12076, 12077, 12078, 12079, 12081, 12082, 12083, 12084,
+ 12085, 12086, 12087, 12088, 12090, 12091, 12092, 12093, 12095, 12096, 12097,
+ 12098, 12100, 12101, 12102, 12103, 12105, 12106, 12107, 12108, 12110, 12111,
+ 12112, 12113, 12115, 12116, 12117, 12118, 12119, 12120, 12121, 12122, 12132,
+ 12133, 12134, 12135, 12136, 12137, 12138, 12139, 12140, 12141, 12142, 12143,
+ 12144, 12145, 12146, 12147, 12148, 12149, 12150, 12151, 12152, 12153, 12154,
+ 12158, 12159, 12160, 12162, 12164, 12165, 12166, 12167, 12169, 12170, 12171,
+ 12172, 12174, 12175, 12176, 12177, 12178, 12182, 12183, 12184, 12185, 12186,
+ 12187, 12188, 12192, 12193, 12194, 12195, 12196, 12197, 12198, 12199, 12200,
+ 12204, 12205, 12206, 12207, 12208, 12210, 12212, 12218, 12219, 12220, 12221,
+ 12222, 12223, 12224, 12225, 12226, 12227, 12228, 12229, 12230, 12231, 12232,
+ 12233, 12234, 12235, 12236, 12237, 12238, 12239, 12240, 12241, 12242, 12243,
+ 12244, 12245, 12246, 12247, 12256, 12257, 12258, 12259, 12260, 12261, 12262,
+ 12263, 12264, 12265, 12266, 12267, 12268, 12269, 12270, 12271, 12272, 12273,
+ 12276, 12277, 12278, 12279, 12280, 12281, 12282, 12284, 12286, 12287, 12288,
+ 12297, 12298, 12299, 12300, 12301, 12302, 12303, 12304, 12306, 12307, 12308,
+ 12309, 12311, 12312, 12313, 12314, 12315, 12316, 12317, 12318, 12319, 12320,
+ 12321, 12322, 12323, 12324, 12325, 12326, 12327, 12328, 12329, 12330, 12331,
+ 12332, 12333, 12334, 12341, 12342, 12343, 12344, 12345, 12346, 12347, 12348,
+ 12349, 12350, 12351, 12352, 12353, 12354, 12355, 12356, 12357, 12358, 12364,
+ 12365, 12366, 12367, 12368, 12369, 12370, 12371, 12372, 12373, 12374, 12375,
+ 12378, 12379, 12380, 12381, 12382, 12383, 12384, 12385, 12386, 12387, 12392,
+ 12393, 12394, 12395, 12396, 12397, 12398, 12399, 12400, 12401, 12402, 12403,
+ 12404, 12405, 12406, 12407, 12408, 12409, 12410, 12411, 12412, 12413, 12414,
+ 12415, 12416, 12417, 12418, 12419, 12420, 12426, 12427, 12428, 12429, 12430,
+ 12431, 12432, 12433, 12434, 12435, 12436, 12437, 12438, 12439, 12440, 12441,
+ 12442, 12443, 12448, 12449, 12450, 12451, 12452, 12453, 12454, 12455, 12456,
+ 12457, 12459, 12460, 12461, 12462, 12463, 12464, 12465, 12466, 12467, 12468,
+ 12472, 12473, 12474, 12475, 12476, 12480, 12481, 12482, 12483, 12484, 12485,
+ 12486, 12487, 12488, 12489, 12490, 12491, 12492, 12493, 12494, 12495, 12496,
+ 12500, 12501, 12502, 12503, 12504, 12505, 12507, 12508, 12509, 12510, 12511,
+ 12512, 12513, 12514, 12515, 12516, 12517, 12518, 12519, 12520, 12521, 12525,
+ 12526, 12527, 12528, 12529, 12532, 12533, 12534, 12535, 12536, 12537, 12538,
+ 12539, 12540, 12541, 12542, 12543, 12547, 12548, 12549, 12550, 12551, 12552,
+ 12553, 12554, 12555, 12556, 12557, 12558, 12559, 12560, 12561, 12563, 12564,
+ 12565, 12566, 12567, 12568, 12569, 12570, 12571, 12572, 12573, 12574, 12575,
+ 12576, 12577, 12578, 12579, 12580, 12581, 12582, 12583, 12584, 12585, 12586,
+ 12591, 12592, 12593, 12594, 12595, 12596, 12597, 12598, 12599, 12600, 12601,
+ 12602, 12603, 12604, 12605, 12606, 12607, 12608, 12609, 12610, 12611, 12612,
+ 12613, 12614, 12615, 12619, 12620, 12621, 12622, 12623, 12624, 12625, 12626,
+ 12627, 12629, 12630, 12631, 12632, 12633, 12634, 12635, 12636, 12637, 12640,
+ 12641, 12642, 12643, 12644, 12645, 12646, 12647, 12648, 12649, 12650, 12652,
+ 12661, 12662, 12663, 12664, 12665, 12666, 12667, 12668, 12669, 12670, 12671,
+ 12672, 12673, 12680, 12681, 12682, 12683, 12684, 12685, 12686, 12687, 12688,
+ 12689, 12691, 12693, 12697, 12698, 12699, 12700, 12701, 12702, 12703, 12704,
+ 12705, 12706, 12707, 12709, 12715, 12716, 12717, 12718, 12719, 12720, 12721,
+ 12722, 12723, 12724, 12725, 12726, 12727, 12728, 12729, 12730, 12731, 12739,
+ 12740, 12741, 12742, 12743, 12744, 12745, 12746, 12747, 12748, 12749, 12750,
+ 12762, 12763, 12764, 12766, 12767, 12768, 12769, 12770, 12771, 12772, 12773,
+ 12774, 12776, 12777, 12778, 12779, 12780, 12781, 12782, 12783, 12784, 12785,
+ 12786, 12787, 12788, 12789, 12790, 12794, 12795, 12796, 12797, 12798, 12799,
+ 12800, 12801, 12802, 12804, 12805, 12806, 12807, 12808, 12809, 12810, 12811,
+ 12812, 12814, 12815, 12816, 12817, 12818, 12819, 12820, 12821, 12822, 12823,
+ 12824, 12825, 12826, 12827, 12828, 12829, 12830, 12831, 12834, 12835, 12836,
+ 12837, 12838, 12839, 12840, 12841, 12842, 12843, 12844, 12845, 12846, 12847,
+ 12848, 12849, 12850, 12851, 12852, 12853, 12854, 12855, 12856, 12857, 12864,
+ 12865, 12866, 12867, 12868, 12869, 12870, 12871, 12872, 12873, 12874, 12875,
+ 12876, 12877, 12878, 12879, 12880, 12881, 12882, 12883, 12884, 12885, 12886,
+ 12887, 12888, 12889, 12890, 12898, 12899, 12900, 12901, 12902, 12903, 12904,
+ 12905, 12906, 12907, 12908, 12916, 12917, 12918, 12919, 12920, 12921, 12922,
+ 12923, 12924, 12925, 12926, 12927, 12928, 12929, 12930, 12931, 12932, 12933,
+ 12934, 12935, 12936, 12937, 12938, 12939, 12946, 12947, 12948, 12949, 12950,
+ 12951, 12952, 12953, 12954, 12955, 12956, 12957, 12958, 12959, 12960, 12961,
+ 12962, 12963, 12964, 12965, 12966, 12972, 12973, 12974, 12975, 12976, 12977,
+ 12978, 12979, 12980, 12981, 12982, 12983, 12984, 12985, 12986, 12987, 12988,
+ 12989, 12994, 12995, 12996, 12997, 12998, 12999, 13000, 13001, 13002, 13003,
+ 13004, 13005, 13006, 13007, 13008, 13012, 13013, 13014, 13015, 13016, 13017,
+ 13018, 13022, 13023, 13024, 13025, 13026, 13027, 13028, 13029, 13030, 13031,
+ 13032, 13033, 13034, 13035, 13036, 13037, 13038, 13039, 13040, 13041, 13042,
+ 13046, 13047, 13048, 13049, 13050, 13052, 13053, 13054, 13055, 13056, 13057,
+ 13058, 13059, 13060, 13061, 13062, 13063, 13066, 13067, 13068, 13069, 13070,
+ 13071, 13072, 13073, 13074, 13075, 13076, 13077, 13078, 13079, 13080, 13082,
+ 13083, 13084, 13085, 13086, 13087, 13088, 13089, 13090, 13091, 13092, 13093,
+ 13094, 13098, 13099, 13100, 13101, 13102, 13103, 13104, 13105, 13106, 13107,
+ 13108, 13109, 13110, 13111, 13112, 13113, 13114, 13115, 13116, 13117, 13118,
+ 13119, 13122, 13123, 13124, 13125, 13126, 13127, 13128, 13129, 13130, 13131,
+ 13132, 13134, 13135, 13136, 13137, 13138, 13139, 13140, 13141, 13142, 13148,
+ 13149, 13150, 13151, 13152, 13153, 13154, 13155, 13156, 13157, 13158, 13159,
+ 13160, 13161, 13162, 13163, 13164, 13165, 13166, 13167, 13168, 13169, 13170,
+ 13171, 13172, 13173, 13174, 13176, 13177, 13178, 13179, 13180, 13181, 13182,
+ 13183, 13184, 13185, 13186, 13187, 13188, 13189, 13190, 13191, 13194, 13195,
+ 13196, 13197, 13198, 13199, 13200, 13201, 13202, 13203, 13204, 13205, 13206,
+ 13207, 13208, 13209, 13210, 13211, 13212, 13213, 13214, 13215, 13216, 13217,
+ 13218, 13220, 13221, 13222, 13223, 13224, 13225, 13226, 13227, 13228, 13229,
+ 13230, 13231, 13232, 13233, 13234, 13235, 13236, 13237, 13238, 13239, 13240,
+ 13241, 13242, 13243, 13244, 13245, 13246, 13247, 13248, 13249, 13250, 13251,
+ 13252, 13253, 13254, 13255, 13256, 13257, 13258, 13259, 13260, 13261, 13262,
+ 13263, 13264, 13265, 13266, 13267, 13268, 13269, 13270, 13271, 13272, 13276,
+ 13277, 13278, 13279, 13280, 13281, 13282, 13283, 13284, 13286, 13287, 13288,
+ 13289, 13290, 13291, 13292, 13293, 13294, 13300, 13301, 13302, 13303, 13305,
+ 13306, 13307, 13308, 13310, 13311, 13312, 13313, 13315, 13316, 13317, 13318,
+ 13320, 13321, 13322, 13323, 13324, 13325, 13337, 13338, 13339, 13340, 13342,
+ 13343, 13344, 13345, 13346, 13347, 13348, 13349, 13350, 13351, 13353, 13354,
+ 13355, 13356, 13358, 13359, 13360, 13361, 13363, 13364, 13365, 13366, 13367,
+ 13368, 13369, 13370, 13371, 13372, 13373, 13374, 13375, 13376, 13377, 13378,
+ 13379, 13380, 13381, 13382, 13383, 13384, 13385, 13386, 13387, 13388, 13389,
+ 13390, 13391, 13392, 13394, 13395, 13396, 13397, 13399, 13400, 13401, 13402,
+ 13404, 13405, 13406, 13407, 13409, 13410, 13411, 13412, 13414, 13415, 13416,
+ 13417, 13418, 13419, 13420, 13421, 13422, 13423, 13424, 13425, 13426, 13427,
+ 13428, 13429, 13430, 13431, 13432, 13433, 13434, 13435, 13436, 13437, 13439,
+ 13440, 13441, 13442, 13444, 13445, 13446, 13447, 13449, 13450, 13451, 13452,
+ 13454, 13455, 13456, 13457, 13459, 13460, 13461, 13462, 13464, 13465, 13466,
+ 13467, 13469, 13470, 13471, 13472, 13475, 13476, 13477, 13478, 13479, 13480,
+ 13481, 13482, 13483, 13484, 13486, 13487, 13488, 13489, 13491, 13492, 13493,
+ 13494, 13496, 13497, 13498, 13499, 13501, 13502, 13503, 13504, 13506, 13507,
+ 13508, 13509, 13510, 13511, 13512, 13513, 13515, 13516, 13517, 13518, 13520,
+ 13521, 13522, 13523, 13525, 13526, 13527, 13528, 13530, 13531, 13532, 13533,
+ 13535, 13536, 13537, 13538, 13540, 13541, 13542, 13543, 13545, 13546, 13547,
+ 13548, 13549, 13550, 13551, 13553, 13555, 13564, 13565, 13566, 13567, 13568,
+ 13569, 13570, 13571, 13572, 13573, 13574, 13575, 13576, 13577, 13578, 13579,
+ 13580, 13581, 13582, 13583, 13584, 13585, 13586, 13587, 13588, 13589, 13590,
+ 13591, 13592, 13593, 13594, 13595, 13596, 13597, 13602, 13603, 13604, 13605,
+ 13608, 13609, 13610, 13611, 13612, 13613, 13614, 13615, 13617, 13618, 13619,
+ 13620, 13621, 13622, 13626, 13627, 13628, 13629, 13630, 13631, 13633, 13634,
+ 13635, 13636, 13637, 13638, 13639, 13640, 13641, 13642, 13643, 13644, 13645,
+ 13646, 13647, 13648, 13649, 13650, 13651, 13652, 13653, 13654, 13655, 13656,
+ 13657, 13658, 13659, 13660, 13661, 13662, 13663, 13664, 13665, 13666, 13668,
+ 13669, 13670, 13671, 13673, 13674, 13675, 13676, 13678, 13679, 13680, 13681,
+ 13682, 13683, 13684, 13685, 13686, 13687, 13688, 13689, 13690, 13691, 13692,
+ 13693, 13694, 13695, 13696, 13697, 13698, 13699, 13700, 13701, 13702, 13703,
+ 13704, 13705, 13706, 13707, 13709, 13710, 13711, 13712, 13713, 13714, 13715,
+ 13716, 13717, 13718, 13719, 13720, 13721, 13722, 13723, 13724, 13725, 13726,
+ 13727, 13728, 13729, 13730, 13731, 13732, 13733, 13734, 13735, 13736, 13737,
+ 13738, 13739, 13740, 13741, 13742, 13743, 13744, 13745, 13746, 13747, 13748,
+ 13749, 13750, 13751, 13752, 13753, 13754, 13755, 13756, 13757, 13758, 13759,
+ 13760, 13761, 13762, 13763, 13764, 13765, 13766, 13767, 13768, 13769, 13770,
+ 13771, 13772, 13773, 13774, 13775, 13776, 13777, 13778, 13779, 13780, 13781,
+ 13782, 13783, 13784, 13785, 13786, 13787, 13788, 13789, 13790, 13791, 13792,
+ 13793, 13794, 13795, 13796, 13797, 13798, 13799, 13800, 13801, 13802, 13803,
+ 13804, 13805, 13806, 13807, 13808, 13809, 13810, 13811, 13812, 13813, 13814,
+ 13815, 13816, 13817, 13818, 13819, 13820, 13821, 13822, 13823, 13824, 13825,
+ 13826, 13827, 13828, 13829, 13830, 13831, 13832, 13833, 13834, 13835, 13836,
+ 13837, 13838, 13839, 13840, 13841, 13842, 13843, 13844, 13845, 13846, 13847,
+ 13848, 13849, 13850, 13851, 13852, 13854, 13856, 13858, 13860, 13862, 13864,
+ 13866, 13868, 13870, 13879, 13880, 13881, 13882, 13883, 13884, 13885, 13886,
+ 13887, 13888, 13889, 13890, 13891, 13892, 13893, 13894, 13895, 13896, 13897,
+ 13898, 13899, 13901, 13902, 13903, 13904, 13905, 13906, 13909, 13910, 13911,
+ 13912, 13914, 13915, 13916, 13917, 13918, 13919, 13925, 13926, 13927, 13928,
+ 13929, 13930, 13931, 13932, 13933, 13934, 13935, 13936, 13937, 13938, 13939,
+ 13940, 13941, 13942, 13944, 13945, 13946, 13947, 13948, 13949, 13950, 13951,
+ 13953, 13954, 13955, 13956, 13958, 13959, 13960, 13961, 13962, 13963, 13964,
+ 13965, 13966, 13967, 13968, 13969, 13970, 13972, 13973, 13974, 13975, 13977,
+ 13978, 13979, 13980, 13981, 13985, 13986, 13987, 13988, 13989, 13990, 13991,
+ 13992, 13993, 13994, 13995, 13996, 13997, 13998, 13999, 14000, 14001, 14002,
+ 14003, 14004, 14005, 14006, 14007, 14008, 14009, 14010, 14011, 14012, 14013,
+ 14014, 14015, 14016, 14017, 14018, 14019, 14020, 14021, 14022, 14023, 14024,
+ 14025, 14026, 14027, 14028, 14029, 14030, 14031, 14032, 14033, 14034, 14035,
+ 14036, 14037, 14038, 14039, 14040, 14041, 14042, 14043, 14044, 14046, 14047,
+ 14048, 14049, 14050, 14053, 14054, 14055, 14056, 14057, 14061, 14062, 14063,
+ 14064, 14065, 14066, 14072, 14073, 14074, 14075, 14077, 14078, 14079, 14080,
+ 14082, 14083, 14084, 14085, 14087, 14088, 14089, 14090, 14097, 14098, 14099,
+ 14100, 14101, 14102, 14103, 14104, 14105, 14107, 14108, 14109, 14110, 14112,
+ 14113, 14114, 14115, 14117, 14118, 14119, 14120, 14122, 14123, 14124, 14125,
+ 14126, 14128, 14129, 14130, 14131, 14133, 14134, 14135, 14136, 14137, 14138,
+ 14140, 14141, 14142, 14143, 14145, 14146, 14147, 14148, 14150, 14151, 14152,
+ 14153, 14154, 14155, 14156, 14157, 14158, 14159, 14160, 14161, 14162, 14163,
+ 14164, 14165, 14166, 14167, 14168, 14169, 14170, 14171, 14172, 14173, 14175,
+ 14176, 14177, 14178, 14180, 14181, 14182, 14183, 14185, 14186, 14187, 14188,
+ 14190, 14191, 14192, 14193, 14195, 14196, 14197, 14198, 14200, 14201, 14202,
+ 14203, 14205, 14206, 14207, 14208, 14210, 14211, 14212, 14213, 14215, 14216,
+ 14217, 14218, 14220, 14221, 14222, 14223, 14225, 14226, 14227, 14228, 14230,
+ 14231, 14232, 14233, 14234, 14235, 14236, 14237, 14239, 14240, 14241, 14244,
+ 14245, 14246, 14247, 14248, 14249, 14250, 14252, 14253, 14254, 14255, 14257,
+ 14258, 14259, 14260, 14262, 14263, 14264, 14265, 14267, 14268, 14269, 14270,
+ 14271, 14272, 14273, 14275, 14276, 14277, 14278, 14280, 14281, 14282, 14284,
+ 14285, 14286, 14287, 14289, 14290, 14291, 14293, 14294, 14295, 14296, 14298,
+ 14299, 14300, 14301, 14302, 14303, 14304, 14309, 14310, 14311, 14312, 14313,
+ 14314, 14315, 14320, 14321, 14322, 14323, 14324, 14325, 14326, 14327, 14328,
+ 14331, 14332, 14333, 14334, 14338, 14339, 14340, 14341, 14343, 14344, 14345,
+ 14346, 14348, 14349, 14355, 14356, 14357, 14359, 14360, 14361, 14362, 14363,
+ 14364, 14365, 14366, 14368, 14369, 14370, 14371, 14373, 14374, 14375, 14376,
+ 14378, 14379, 14380, 14381, 14383, 14384, 14385, 14386, 14388, 14389, 14390,
+ 14391, 14393, 14394, 14395, 14396, 14397, 14398, 14399, 14400, 14401, 14402,
+ 14403, 14404, 14405, 14406, 14407, 14408, 14409, 14410, 14411, 14412, 14413,
+ 14452, 14491, 14493, 14495, 14497, 14499, 14501, 14503, 14505, 14507, 14508,
+ 14510, 14512, 14514, 14516, 14518, 14520, 14522, 14524, 14525, 14527, 14529,
+ 14531, 14532, 14533, 14534, 14535, 14536, 14537, 14539, 14540, 14542, 14544,
+ 14546, 14547, 14548, 14549, 14551, 14553, 14557, 14559, 14561, 14563, 14565,
+ 14567, 14569, 14571, 14572, 14573, 14575, 14576, 14577, 14578, 14579, 14581,
+ 14583, 14584, 14586, 14588, 14590, 14592, 14594, 14595, 14598, 14604, 14605,
+ 14606, 14608, 14609, 14612, 14613, 14616, 14622, 14624, 14626, 14628, 14630,
+ 14632, 14634, 14636, 14638, 14640, 14642, 14644, 14646, 14647, 14649, 14651,
+ 14653, 14655, 14657, 14659, 14661, 14663, 14665, 14667, 14669, 14671, 14673,
+ 14679, 14681, 14682, 14683, 14686, 14688, 14690, 14692, 14694, 14696, 14698,
+ 14700, 14702, 14704, 14706, 14708, 14710, 14712, 14714, 14716, 14718, 14720,
+ 14722, 14724, 14725, 14726, 14728, 14730, 14732, 14734, 14739, 14740, 14743,
+ 14744, 14753, 14755, 14756, 14757, 14758, 14759, 14760, 14762, 14764, 14765,
+ 14766, 14767, 14769, 14771, 14773, 14775, 14777, 14779, 14781, 14783, 14785,
+ 14787, 14789, 14791, 14793, 14795, 14808, 14810, 14812, 14814, 14816, 14817,
+ 14818, 14822, 14824, 14828, 14829, 14830, 14831, 14832, 14833, 14834, 14835,
+ 14836, 14838, 14840, 14842, 14844, 14846, 14848, 14850, 14851, 14853, 14855,
+ 14857, 14859, 14861, 14863, 14865, 14867, 14869, 14871, 14873, 14875, 14877,
+ 14879, 14881, 14883, 14885, 14887, 14889, 14891, 14893, 14894, 14895, 14897,
+ 14899, 14901, 14903, 14905, 14907, 14909, 14910, 14911, 14912, 14913, 14917,
+ 14918, 14922, 14924, 14926, 14928, 14930, 14932, 14933, 14934, 14936, 14938,
+ 14940, 14942, 14946, 14950, 14951, 14952, 14955, 14957, 14959, 14960, 14962,
+ 14964, 14966, 14968, 14970, 14971, 14972, 14974, 14976, 14978, 14980, 14982,
+ 14984, 14986, 14990, 14992, 14994, 14996, 15000, 15004, 15008, 15010, 15012,
+ 15014, 15018, 15020, 15022, 15024, 15026, 15028, 15052, 15062, 15064, 15066,
+ 15068, 15070, 15072, 15074, 15106, 15108, 15110, 15112, 15114, 15116, 15117,
+ 15119, 15121, 15123, 15124, 15125, 15126, 15127, 15129, 15131, 15133, 15134,
+ 15135, 15136, 15137, 15138, 15139, 15141, 15143, 15145, 15146, 15147, 15148,
+ 15149, 15150, 15152, 15154, 15156, 15157, 15158, 15159, 15160, 15162, 15164,
+ 15166, 15167, 15168, 15169, 15170, 15171, 15172, 15174, 15176, 15178, 15179,
+ 15180, 15181, 15182, 15183, 15185, 15187, 15189, 15190, 15191, 15192, 15193,
+ 15194, 15196, 15198, 15200, 15202, 15204, 15206, 15208, 15210, 15212, 15214,
+ 15216, 15218, 15220, 15221, 15222, 15223, 15224, 15226, 15228, 15230, 15231,
+ 15232, 15233, 15234, 15235, 15236, 15238, 15240, 15242, 15244, 15245, 15247,
+ 15249, 15251, 15252, 15253, 15254, 15256, 15258, 15260, 15262, 15264, 15266,
+ 15267, 15268, 15269, 15270, 15272, 15274, 15276, 15278, 15280, 15286, 15288,
+ 15292, 15294, 15298, 15302, 15324, 15326, 15328, 15330, 15332, 15333, 15334,
+ 15335, 15337, 15338, 15339, 15340, 15342, 15344, 15352, 15355, 15356, 15358,
+ 15360, 15362, 15363, 15365, 15367, 15369, 15371, 15373, 15375, 15376, 15378,
+ 15380, 15382, 15384, 15386, 15388, 15389, 15391, 15393, 15395, 15397, 15398,
+ 15400, 15402, 15404, 15406, 15407, 15409, 15411, 15413, 15415, 15417, 15419,
+ 15421, 15423, 15425, 15427, 15428, 15429, 15430, 15431, 15432, 15434, 15436,
+ 15438, 15440, 15444, 15446, 15448, 15450, 15452, 15453, 15456, 15461, 15462,
+ 15463, 15472, 15474, 15477, 15480, 15486, 15495, 15496, 15498, 15501, 15502,
+ 15503, 15504, 15505, 15511, 15516, 15522, 15529, 15530, 15531, 15535, 15537,
+ 15538, 15539, 15543, 15545, 15546, 15547, 15548, 15550, 15551, 15555, 15556,
+ 15560, 15561, 15562, 15564, 15573, 15575, 15577, 15581, 15587, 15591, 15599,
+ 15606, 15609, 15611, 15616, 15619, 15623, 15627, 15632, 15640, 15647, 15650,
+ 15651, 15653, 15655, 15659, 15661, 15665, 15670, 15676, 15683, 15687, 15688,
+ 15689, 15691, 15692, 15695, 15696, 15697, 15700, 15702, 15703, 15707, 15709,
+ 15713, 15721, 15722, 15723, 15724, 15725, 15726, 15728, 15729, 15730, 15731,
+ 15732, 15733, 15734, 15735, 15736, 15737, 15738, 15742, 15743, 15744, 15746,
+ 15747, 15748, 15750, 15753, 15759, 15765, 15767, 15769, 15771, 15773, 15775,
+ 15787, 15799, 15800, 15802, 15804, 15806, 15807, 15808, 15809, 15810, 15811,
+ 15813, 15815, 15817, 15819, 15821, 15822, 15823, 15824, 15825, 15826, 15828,
+ 15830, 15832, 15834, 15836, 15838, 15840, 15841, 15843, 15845, 15847, 15849,
+ 15851, 15852, 15854, 15856, 15858, 15860, 15862, 15864, 15866, 15868, 15872,
+ 15881, 15882, 15883, 15884, 15889, 15892, 15893, 15895, 15896, 15897, 15899,
+ 15900, 15901, 15902, 15903, 15904, 15905, 15907, 15909, 15911, 15912, 15913,
+ 15914, 15915, 15916, 15917, 15918, 15919, 15920, 15921, 15922, 15923, 15924,
+ 15925, 15926, 15927, 15928, 15929, 15930, 15931, 15932, 15933, 15934, 15935,
+ 15936, 15937, 15938, 15939, 15940, 15942, 15944, 15946, 15948, 15950, 15952,
+ 15954, 15956, 15959, 15968, 15969, 15970, 15971, 15972, 15973, 15975, 15976,
+ 15980, 15983, 15985, 15987, 15989, 15990, 15992, 15994, 15996, 15998, 16000,
+ 16001, 16003, 16005, 16007, 16009, 16010, 16011, 16012, 16014, 16015, 16017,
+ 16018, 16020, 16022, 16023, 16024, 16025, 16026, 16027, 16028, 16029, 16030,
+ 16031, 16032, 16033, 16034, 16035, 16037, 16038, 16041, 16045, 16051, 16053,
+ 16055, 16057, 16059, 16061, 16063, 16065, 16066, 16068, 16070, 16072, 16074,
+ 16075, 16076, 16077, 16078, 16079, 16081, 16083, 16085, 16087, 16089, 16091,
+ 16093, 16095, 16097, 16099, 16101, 16103, 16104, 16105, 16106, 16107, 16108,
+ 16111, 16112, 16115, 16116, 16118, 16120, 16122, 16123, 16125, 16127, 16129,
+ 16131, 16136, 16141, 16142, 16143, 16146, 16150, 16152, 16154, 16156, 16158,
+ 16159, 16161, 16163, 16165, 16167, 16169, 16171, 16173, 16175, 16177, 16179,
+ 16181, 16183, 16185, 16186, 16188, 16190, 16192, 16194, 16196, 16198, 16200,
+ 16202, 16203, 16205, 16207, 16208, 16209, 16211, 16212, 16213, 16214, 16215,
+ 16216, 16217, 16220, 16221, 16224, 16226, 16228, 16230, 16232, 16234, 16236,
+ 16238, 16240, 16241, 16243, 16245, 16247, 16249, 16251, 16253, 16255, 16257,
+ 16258, 16260, 16262, 16264, 16266, 16268, 16270, 16272, 16274, 16277, 16278,
+ 16279, 16280, 16281, 16284, 16287, 16293, 16295, 16297, 16299, 16302, 16304,
+ 16306, 16308, 16310, 16312, 16314, 16316, 16318, 16319, 16321, 16322, 16323,
+ 16326, 16327, 16328, 16329, 16337, 16342, 16344, 16345, 16349, 16350, 16352,
+ 16353, 16354, 16355, 16361, 16363, 16365, 16367, 16369, 16371, 16373, 16375,
+ 16377, 16379, 16381, 16383, 16385, 16387, 16389, 16391, 16393, 16395, 16397,
+ 16399, 16400, 16402, 16404, 16406, 16408, 16410, 16412, 16414, 16416, 16418,
+ 16420, 16422, 16424, 16426, 16428, 16430, 16432, 16438, 16440, 16441, 16442,
+ 16443, 16446, 16448, 16450, 16452, 16454, 16456, 16458, 16460, 16462, 16464,
+ 16466, 16468, 16470, 16472, 16474, 16476, 16477, 16478, 16479, 16481, 16483,
+ 16484, 16485, 16486, 16487, 16497, 16498, 16499, 16501, 16502, 16503, 16505,
+ 16508, 16511, 16512, 16514, 16522, 16525, 16526, 16528, 16530, 16535, 16536,
+ 16537, 16540, 16541, 16544, 16546, 16555, 16557, 16559, 16561, 16563, 16565,
+ 16567, 16569, 16571, 16573, 16575, 16577, 16579, 16581, 16583, 16596, 16598,
+ 16600, 16602, 16603, 16604, 16605, 16606, 16607, 16608, 16610, 16612, 16614,
+ 16615, 16616, 16617, 16618, 16619, 16621, 16625, 16627, 16631, 16633, 16634,
+ 16635, 16636, 16637, 16638, 16639, 16640, 16641, 16642, 16644, 16646, 16647,
+ 16648, 16650, 16652, 16654, 16656, 16658, 16660, 16661, 16662, 16663, 16665,
+ 16667, 16669, 16671, 16673, 16675, 16677, 16679, 16681, 16683, 16685, 16687,
+ 16689, 16691, 16693, 16695, 16697, 16699, 16701, 16703, 16705, 16707, 16709,
+ 16711, 16713, 16715, 16717, 16719, 16721, 16722, 16723, 16725, 16729, 16730,
+ 16731, 16735, 16737, 16739, 16741, 16743, 16745, 16747, 16748, 16749, 16750,
+ 16752, 16754, 16756, 16758, 16760, 16762, 16764, 16768, 16770, 16772, 16776,
+ 16777, 16778, 16781, 16783, 16785, 16794, 16795, 16797, 16799, 16801, 16803,
+ 16805, 16807, 16808, 16809, 16811, 16813, 16815, 16817, 16819, 16821, 16823,
+ 16827, 16829, 16831, 16833, 16837, 16841, 16845, 16847, 16849, 16851, 16855,
+ 16857, 16859, 16861, 16863, 16865, 16867, 16891, 16899, 16901, 16903, 16905,
+ 16907, 16909, 16911, 16913, 16915, 16917, 16919, 16921, 16923, 16927, 16929,
+ 16933, 16937, 16939, 16943, 16945, 16947, 16977, 16978, 16980, 16982, 16984,
+ 16986, 16987, 16988, 16989, 16990, 16992, 16994, 16996, 16998, 16999, 17000,
+ 17001, 17002, 17003, 17004, 17006, 17008, 17010, 17012, 17013, 17014, 17015,
+ 17016, 17017, 17019, 17021, 17023, 17025, 17026, 17027, 17028, 17029, 17031,
+ 17033, 17035, 17037, 17038, 17039, 17040, 17041, 17042, 17043, 17045, 17047,
+ 17049, 17051, 17052, 17053, 17054, 17055, 17056, 17058, 17060, 17062, 17064,
+ 17065, 17066, 17067, 17068, 17069, 17071, 17073, 17075, 17077, 17079, 17081,
+ 17083, 17085, 17087, 17089, 17091, 17093, 17095, 17097, 17098, 17099, 17100,
+ 17101, 17103, 17105, 17107, 17109, 17110, 17111, 17112, 17113, 17114, 17115,
+ 17117, 17119, 17121, 17123, 17125, 17127, 17129, 17132, 17133, 17135, 17137,
+ 17139, 17141, 17142, 17143, 17144, 17146, 17148, 17150, 17152, 17154, 17156,
+ 17157, 17158, 17159, 17161, 17163, 17165, 17167, 17169, 17171, 17173, 17175,
+ 17177, 17179, 17181, 17183, 17185, 17189, 17191, 17195, 17199, 17201, 17205,
+ 17207, 17209, 17214, 17217, 17251, 17253, 17255, 17257, 17259, 17261, 17263,
+ 17265, 17267, 17269, 17271, 17273, 17275, 17276, 17278, 17280, 17282, 17284,
+ 17285, 17286, 17287, 17288, 17290, 17292, 17294, 17296, 17297, 17298, 17299,
+ 17300, 17301, 17302, 17304, 17306, 17308, 17310, 17311, 17312, 17313, 17314,
+ 17315, 17317, 17319, 17321, 17323, 17324, 17325, 17326, 17327, 17329, 17331,
+ 17333, 17335, 17336, 17337, 17338, 17339, 17340, 17341, 17343, 17345, 17347,
+ 17349, 17350, 17351, 17352, 17353, 17354, 17356, 17358, 17360, 17362, 17363,
+ 17364, 17365, 17366, 17367, 17369, 17371, 17373, 17375, 17377, 17379, 17381,
+ 17383, 17385, 17387, 17389, 17391, 17393, 17395, 17396, 17397, 17398, 17399,
+ 17401, 17403, 17405, 17407, 17408, 17409, 17410, 17411, 17412, 17413, 17415,
+ 17417, 17419, 17421, 17423, 17424, 17425, 17426, 17427, 17429, 17431, 17433,
+ 17435, 17436, 17437, 17438, 17439, 17441, 17443, 17445, 17447, 17449, 17455,
+ 17457, 17461, 17463, 17467, 17473, 17475, 17478, 17481, 17487, 17489, 17493,
+ 17495, 17499, 17501, 17534, 17536, 17539, 17542, 17545, 17547, 17548, 17549,
+ 17550, 17553, 17554, 17555, 17556, 17557, 17560, 17561, 17564, 17567, 17570,
+ 17573, 17576, 17588, 17592, 17594, 17596, 17598, 17600, 17602, 17604, 17606,
+ 17608, 17609, 17611, 17613, 17615, 17616, 17618, 17620, 17622, 17624, 17626,
+ 17628, 17629, 17631, 17633, 17635, 17637, 17639, 17641, 17642, 17644, 17646,
+ 17648, 17650, 17651, 17653, 17655, 17657, 17659, 17660, 17662, 17664, 17666,
+ 17668, 17670, 17671, 17673, 17675, 17677, 17678, 17680, 17682, 17684, 17686,
+ 17688, 17690, 17691, 17693, 17695, 17697, 17699, 17701, 17703, 17704, 17706,
+ 17708, 17710, 17712, 17713, 17715, 17717, 17719, 17721, 17722, 17724, 17726,
+ 17728, 17730, 17732, 17734, 17736, 17739, 17742, 17745, 17748, 17752, 17753,
+ 17756, 17761, 17771, 17775, 17779, 17789, 17799, 17806, 17808, 17812, 17817,
+ 17820, 17830, 17831, 17832, 17841, 17843, 17846, 17849, 17855, 17864, 17865,
+ 17867, 17869, 17871, 17872, 17878, 17881, 17891, 17893, 17895, 17901, 17905,
+ 17908, 17911, 17912, 17916, 17919, 17928, 17930, 17933, 17935, 17936, 17938,
+ 17943, 17945, 17947, 17948, 17949, 17950, 17951, 17952, 17958, 17963, 17969,
+ 17976, 17977, 17978, 17979, 17980, 17984, 17986, 17987, 17988, 17989, 17991,
+ 17992, 17993, 17995, 17998, 17999, 18003, 18005, 18010, 18011, 18012, 18013,
+ 18015, 18019, 18020, 18021, 18022, 18023, 18024, 18026, 18027, 18031, 18032,
+ 18033, 18034, 18035, 18036, 18037, 18041, 18042, 18043, 18044, 18045, 18047,
+ 18050, 18055, 18064, 18070, 18075, 18077, 18078, 18080, 18082, 18086, 18087,
+ 18089, 18095, 18101, 18110, 18118, 18124, 18128, 18136, 18143, 18146, 18148,
+ 18153, 18156, 18160, 18164, 18169, 18179, 18180, 18183, 18184, 18186, 18187,
+ 18190, 18195, 18198, 18199, 18201, 18203, 18204, 18206, 18208, 18210, 18212,
+ 18214, 18216, 18218, 18223, 18225, 18227, 18229, 18230, 18231, 18233, 18235,
+ 18237, 18239, 18241, 18242, 18243, 18245, 18247, 18249, 18250, 18253, 18256,
+ 18258, 18260, 18262, 18263, 18265, 18274, 18275, 18276, 18279, 18282, 18288,
+ 18291, 18292, 18298, 18300, 18302, 18304, 18306, 18308, 18310, 18312, 18314,
+ 18316, 18318, 18320, 18322, 18324, 18326, 18328, 18330, 18332, 18334, 18335,
+ 18337, 18339, 18341, 18343, 18345, 18347, 18349, 18351, 18357, 18359, 18362,
+ 18364, 18366, 18368, 18370, 18372, 18374, 18376, 18378, 18380, 18382, 18384,
+ 18386, 18388, 18390, 18392, 18394, 18396, 18398, 18400, 18402, 18404, 18406,
+ 18408, 18417, 18419, 18421, 18423, 18425, 18427, 18429, 18431, 18433, 18435,
+ 18437, 18439, 18441, 18443, 18445, 18447, 18449, 18451, 18453, 18466, 18468,
+ 18470, 18472, 18474, 18476, 18477, 18479, 18483, 18485, 18489, 18491, 18492,
+ 18494, 18496, 18498, 18500, 18502, 18504, 18506, 18508, 18509, 18511, 18513,
+ 18515, 18517, 18519, 18521, 18523, 18525, 18527, 18529, 18531, 18533, 18535,
+ 18537, 18539, 18541, 18543, 18545, 18547, 18549, 18551, 18553, 18555, 18557,
+ 18559, 18561, 18563, 18565, 18567, 18568, 18569, 18571, 18575, 18576, 18580,
+ 18582, 18584, 18586, 18588, 18590, 18592, 18594, 18596, 18598, 18600, 18602,
+ 18604, 18606, 18610, 18612, 18614, 18618, 18619, 18620, 18623, 18625, 18627,
+ 18629, 18631, 18633, 18635, 18637, 18638, 18640, 18642, 18644, 18646, 18648,
+ 18650, 18652, 18656, 18658, 18660, 18662, 18666, 18670, 18674, 18676, 18678,
+ 18680, 18684, 18686, 18688, 18690, 18692, 18694, 18696, 18720, 18722, 18732,
+ 18735, 18736, 18737, 18738, 18739, 18740, 18742, 18744, 18746, 18751, 18752,
+ 18755, 18756, 18757, 18759, 18762, 18765, 18766, 18767, 18769, 18770, 18773,
+ 18774, 18775, 18776, 18777, 18780, 18781, 18786, 18795, 18801, 18806, 18808,
+ 18809, 18811, 18817, 18823, 18832, 18840, 18846, 18849, 18857, 18864, 18867,
+ 18868, 18870, 18872, 18876, 18878, 18880, 18882, 18883, 18889, 18892, 18902,
+ 18904, 18906, 18912, 18922, 18926, 18929, 18932, 18936, 18938, 18947, 18949,
+ 18952, 18954, 18959, 18961, 18963, 18967, 18972, 18978, 18985, 18986, 18987,
+ 18989, 18992, 18993, 18997, 18998, 19003, 19004, 19005, 19006, 19008, 19012,
+ 19013, 19014, 19016, 19017, 19020, 19021, 19022, 19023, 19024, 19025, 19028,
+ 19029, 19032, 19034, 19035, 19039, 19041, 19045, 19053, 19054, 19055, 19057,
+ 19058, 19059, 19060, 19061, 19062, 19063, 19065, 19066, 19067, 19068, 19069,
+ 19070, 19071, 19072, 19073, 19074, 19075, 19076, 19077, 19078, 19079, 19080,
+ 19081, 19082, 19083, 19084, 19088, 19089, 19090, 19092, 19093, 19094, 19096,
+ 19099, 19105, 19111, 19114, 19117, 19120, 19122, 19125, 19138, 19151, 19153,
+ 19154, 19155, 19158, 19161, 19164, 19165, 19166, 19167, 19168, 19169, 19170,
+ 19172, 19174, 19176, 19178, 19180, 19181, 19182, 19183, 19184, 19185, 19187,
+ 19189, 19191, 19193, 19195, 19197, 19199, 19201, 19203, 19204, 19205, 19206,
+ 19207, 19208, 19210, 19212, 19214, 19216, 19218, 19220, 19223, 19226, 19227,
+ 19228, 19230, 19232, 19234, 19236, 19238, 19239, 19241, 19243, 19245, 19247,
+ 19249, 19251, 19253, 19255, 19257, 19258, 19260, 19262, 19264, 19266, 19268,
+ 19270, 19273, 19276, 19278, 19282, 19291, 19292, 19293, 19294, 19295, 19296,
+ 19298, 19299, 19300, 19301, 19302, 19303, 19305, 19307, 19309, 19311, 19314,
+ 19315, 19316, 19317, 19318, 19319, 19320, 19321, 19322, 19323, 19324, 19325,
+ 19326, 19327, 19328, 19329, 19330, 19331, 19332, 19333, 19334, 19335, 19336,
+ 19337, 19338, 19339, 19340, 19341, 19342, 19343, 19344, 19345, 19346, 19347,
+ 19348, 19349, 19350, 19351, 19353, 19355, 19357, 19359, 19361, 19363, 19365,
+ 19367, 19370, 19379, 19380, 19381, 19382, 19383, 19384, 19387, 19390, 19391,
+ 19392, 19393, 19395, 19399, 19402, 19405, 19407, 19410, 19413, 19414, 19416,
+ 19418, 19420, 19421, 19422, 19423, 19424, 19425, 19427, 19428, 19429, 19430,
+ 19431, 19432, 19433, 19434, 19435, 19436, 19439, 19440, 19444, 19449, 19450,
+ 19451, 19453, 19455, 19461, 19463, 19465, 19467, 19469, 19471, 19473, 19475,
+ 19477, 19479, 19481, 19484, 19485, 19488, 19490, 19492, 19494, 19496, 19498,
+ 19499, 19500, 19501, 19502, 19503, 19505, 19507, 19509, 19511, 19513, 19515,
+ 19517, 19519, 19521, 19523, 19525, 19527, 19529, 19530, 19531, 19532, 19533,
+ 19534, 19536, 19538, 19540, 19542, 19544, 19546, 19548, 19550, 19552, 19554,
+ 19556, 19559, 19562, 19563, 19564, 19566, 19568, 19569, 19571, 19573, 19575,
+ 19577, 19578, 19581, 19583, 19586, 19589, 19592, 19595, 19598, 19604, 19611,
+ 19614, 19617, 19623, 19630, 19631, 19632, 19635, 19639, 19642, 19644, 19647,
+ 19649, 19650, 19652, 19654, 19656, 19658, 19660, 19662, 19664, 19666, 19668,
+ 19670, 19677, 19678, 19679, 19680, 19681, 19682, 19683, 19684, 19685, 19686,
+ 19687, 19688, 19689, 19690, 19691, 19692, 19693, 19694, 19695, 19696, 19697,
+ 19698, 19699, 19700, 19701, 19702, 19703, 19704, 19705, 19706, 19707, 19708,
+ 19709, 19710, 19711, 19712, 19713, 19714, 19715, 19716, 19717, 19718, 19719,
+ 19720, 19721, 19722, 19723, 19724, 19725, 19726, 19727, 19728, 19729, 19730,
+ 19731, 19732, 19733, 19734, 19735, 19736, 19737, 19738, 19739, 19740, 19741,
+ 19742, 19743, 19744, 19745, 19746, 19747, 19748, 19749, 19750, 19751, 19752,
+ 19753, 19754, 19756, 19758, 19760, 19769, 19772, 19775, 19778, 19781, 19784,
+ 19787, 19795, 19801, 19809, 19813, 19818, 19830, 19833, 19840, 19842, 19848,
+ 19863, 19871, 19883, 19885, 19891, 19893, 19895, 19901, 19903, 19905, 19912,
+ 19916, 19918, 19928, 19934, 19938, 19948, 19958, 19960, 19968, 19970, 19971,
+ 20010, 20011, 20012, 20013, 20014, 20015, 20016, 20017, 20018, 20019, 20020
+};
+
+static t_ccsid final_array[] = {
+ 0, 62246, 368, 916, 898, 33723, 905, 870, 867, 866, 864, 863, 862, 861, 858,
+ 856, 853, 852, 851, 438, 1387, 5355, 9450, 9449, 9448, 5351, 5350, 5349,
+ 5348, 5347, 1209, 1236, 1234, 1204, 1202, 13489, 875, 944, 1052, 859, 921,
+ 915, 914, 913, 820, 924, 1364, 879, 917, 814, 1090, 1251, 922, 1253, 5479,
+ 971, 1048, 1376, 1150, 1149, 1148, 1147, 1146, 1145, 1144, 1143, 1142, 1141,
+ 925, 776, 1027, 919, 906, 904, 892, 881, 872, 871, 869, 865, 501, 425, 424,
+ 421, 298, 291, 286, 285, 281, 279, 278, 274, 38, 1384, 839, 1277, 62236,
+ 62225, 62212, 61953, 57346, 28710, 25547, 17355, 13122, 13125, 12709, 9067,
+ 9057, 9031, 8613, 5124, 5051, 5053, 5054, 5055, 5056, 5036, 5027, 4972, 4961,
+ 4966, 4952, 4953, 4954, 4949, 4397, 1393, 1400, 1381, 1382, 1389, 1374, 1365,
+ 1281, 1282, 1283, 1284, 1276, 1252, 1254, 1255, 1256, 1257, 1258, 1259, 1161,
+ 1165, 1154, 1155, 1156, 1157, 1158, 1159, 1131, 1133, 1134, 1138, 1123, 1124,
+ 1130, 1113, 1115, 1116, 1098, 1099, 1089, 1041, 1042, 1043, 1044, 1047, 1026,
+ 1028, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1009, 1010,
+ 965, 966, 951, 952, 957, 958, 959, 960, 943, 945, 947, 948, 950, 931, 933,
+ 934, 935, 936, 937, 938, 939, 940, 923, 927, 928, 929, 897, 876, 834, 836,
+ 837, 838, 738, 721, 301, 302, 257, 1, 898, 916, 368, 368, 62246
+};
+
+static t_staterange goto_array[] = {
+ 13445, 11977, 13446, 12066, 11793, 13448, 13449, 13450, 13451, 13453, 13454,
+ 13455, 13456, 13457, 13473, 13458, 13459, 13460, 13466, 13461, 13462, 13468,
+ 11793, 13447, 13449, 13450, 13451, 11793, 13448, 13449, 13450, 13451, 13452,
+ 13453, 13454, 13455, 13456, 13457, 13473, 13458, 13459, 13460, 13466, 13461,
+ 13462, 13468, 11735, 13469, 13470, 13463, 13464, 13473, 13465, 13474, 13475,
+ 13476, 13477, 13478, 13479, 13480, 13481, 13466, 13482, 13467, 13483, 13468,
+ 13485, 11735, 13469, 13470, 13471, 13472, 13473, 13474, 13475, 13476, 13477,
+ 13478, 13479, 13480, 13481, 13482, 13483, 13484, 13485, 11147, 13486, 11230,
+ 13487, 13488, 13426, 13419, 13420, 13496, 13423, 13498, 19, 229, 230, 231,
+ 232, 18, 17, 16, 15, 14, 238, 237, 236, 235, 234, 239, 240, 241, 242, 243,
+ 13, 12, 11, 10, 9, 8, 7, 251, 250, 249, 248, 247, 246, 245, 252, 253, 254,
+ 255, 256, 257, 258, 259, 244, 261, 260, 6, 263, 264, 265, 266, 95, 268, 269,
+ 269, 270, 271, 271, 272, 273, 273, 274, 275, 275, 276, 277, 277, 278, 279,
+ 279, 280, 281, 281, 282, 283, 283, 284, 285, 286, 287, 287, 288, 289, 289,
+ 290, 291, 291, 292, 293, 293, 294, 295, 295, 296, 297, 297, 298, 299, 299,
+ 300, 301, 301, 302, 303, 304, 305, 305, 306, 307, 307, 308, 309, 309, 227,
+ 311, 13494, 2, 314, 315, 316, 313, 317, 318, 319, 320, 321, 322, 323, 324,
+ 325, 326, 327, 328, 329, 330, 331, 332, 332, 333, 334, 335, 336, 336, 337,
+ 338, 338, 50, 340, 341, 341, 342, 343, 343, 344, 345, 345, 346, 347, 347,
+ 315, 315, 349, 350, 350, 341, 352, 353, 354, 355, 356, 357, 358, 359, 359,
+ 360, 351, 362, 362, 361, 361, 363, 348, 339, 310, 365, 365, 364, 366, 367,
+ 364, 366, 367, 57, 369, 370, 370, 371, 372, 372, 373, 374, 374, 375, 376,
+ 376, 377, 378, 378, 379, 380, 381, 382, 383, 384, 384, 385, 386, 386, 39,
+ 388, 389, 390, 391, 68, 393, 394, 395, 396, 397, 392, 398, 399, 67, 66, 65,
+ 64, 63, 62, 61, 60, 59, 58, 410, 409, 408, 407, 406, 405, 404, 403, 402,
+ 401, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424,
+ 425, 400, 426, 427, 428, 429, 430, 431, 431, 432, 433, 433, 434, 435, 435,
+ 54, 437, 438, 438, 439, 440, 440, 441, 442, 442, 443, 444, 444, 445, 446,
+ 446, 78, 448, 449, 449, 252, 252, 257, 257, 452, 451, 450, 453, 454, 455,
+ 453, 454, 455, 92, 457, 458, 459, 460, 426, 427, 70, 462, 463, 464, 465,
+ 466, 467, 91, 89, 470, 469, 471, 472, 88, 87, 86, 476, 475, 474, 477, 478,
+ 479, 85, 84, 482, 481, 483, 484, 485, 480, 473, 486, 487, 488, 315, 490,
+ 491, 83, 82, 81, 495, 494, 493, 496, 497, 498, 499, 232, 500, 80, 502, 503,
+ 504, 505, 69, 507, 508, 509, 510, 44, 512, 513, 79, 515, 252, 449, 253, 254,
+ 516, 255, 256, 257, 258, 77, 76, 519, 518, 520, 521, 75, 523, 524, 74, 526,
+ 527, 528, 525, 522, 517, 514, 529, 530, 531, 532, 261, 533, 73, 72, 536,
+ 535, 537, 264, 538, 71, 540, 541, 20, 543, 544, 545, 542, 539, 546, 547,
+ 548, 549, 534, 511, 506, 501, 492, 489, 468, 461, 456, 551, 552, 553, 554,
+ 555, 558, 550, 556, 557, 559, 285, 285, 561, 562, 562, 563, 564, 564, 565,
+ 566, 566, 567, 568, 568, 569, 570, 570, 571, 572, 572, 573, 574, 574, 575,
+ 576, 576, 577, 578, 578, 579, 580, 580, 362, 362, 582, 581, 583, 583, 584,
+ 584, 380, 586, 587, 587, 588, 589, 589, 55, 591, 592, 592, 5, 594, 595, 595,
+ 596, 597, 597, 598, 599, 599, 600, 601, 601, 602, 603, 603, 604, 605, 605,
+ 606, 607, 607, 608, 609, 609, 610, 611, 611, 612, 613, 613, 614, 615, 615,
+ 616, 617, 617, 618, 619, 619, 36, 621, 622, 622, 623, 620, 593, 624, 624,
+ 626, 626, 625, 625, 627, 628, 628, 629, 630, 630, 93, 632, 633, 634, 635,
+ 636, 637, 638, 544, 544, 639, 640, 641, 641, 224, 643, 644, 644, 645, 646,
+ 646, 647, 648, 648, 649, 650, 650, 651, 652, 652, 653, 654, 654, 655, 656,
+ 656, 657, 658, 658, 659, 660, 660, 661, 662, 662, 663, 664, 664, 665, 666,
+ 666, 667, 668, 668, 669, 670, 670, 671, 672, 672, 38, 674, 675, 676, 677,
+ 677, 678, 679, 679, 680, 681, 681, 682, 683, 683, 684, 685, 685, 686, 673,
+ 687, 687, 688, 688, 267, 690, 691, 692, 692, 56, 694, 695, 696, 697, 465,
+ 698, 699, 90, 701, 471, 702, 472, 703, 486, 487, 704, 500, 239, 240, 242,
+ 252, 253, 254, 255, 257, 258, 449, 516, 708, 707, 529, 530, 531, 709, 710,
+ 537, 538, 712, 547, 713, 94, 715, 716, 716, 717, 718, 718, 719, 720, 720,
+ 721, 714, 711, 706, 705, 700, 553, 558, 722, 722, 726, 727, 723, 724, 725,
+ 728, 693, 729, 730, 729, 730, 438, 732, 733, 734, 735, 736, 737, 738, 739,
+ 740, 741, 742, 743, 743, 744, 745, 745, 746, 747, 52, 45, 750, 749, 751,
+ 752, 753, 754, 755, 756, 757, 758, 759, 760, 43, 42, 41, 40, 365, 365, 225,
+ 767, 768, 768, 769, 770, 770, 771, 772, 772, 773, 774, 774, 775, 776, 776,
+ 777, 778, 778, 779, 780, 780, 49, 782, 783, 783, 784, 785, 785, 786, 787,
+ 787, 788, 789, 789, 48, 791, 792, 792, 793, 794, 794, 795, 796, 796, 797,
+ 798, 798, 799, 800, 800, 801, 790, 781, 766, 765, 764, 763, 762, 513, 806,
+ 807, 808, 809, 802, 803, 804, 805, 802, 803, 804, 805, 810, 811, 811, 812,
+ 813, 813, 814, 815, 815, 816, 817, 817, 818, 761, 748, 819, 819, 820, 821,
+ 822, 823, 823, 824, 731, 825, 826, 825, 826, 47, 828, 829, 829, 830, 831,
+ 832, 833, 833, 46, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845,
+ 846, 847, 848, 849, 850, 851, 852, 852, 853, 834, 854, 855, 854, 855, 508,
+ 508, 857, 858, 858, 859, 860, 860, 861, 862, 862, 863, 864, 864, 865, 866,
+ 866, 867, 868, 869, 870, 243, 243, 872, 873, 873, 874, 875, 875, 876, 877,
+ 877, 878, 879, 879, 880, 881, 881, 882, 883, 883, 884, 885, 885, 886, 887,
+ 887, 888, 889, 889, 890, 891, 891, 892, 893, 893, 894, 895, 256, 256, 897,
+ 898, 898, 899, 900, 900, 901, 902, 902, 903, 904, 904, 905, 906, 906, 907,
+ 908, 908, 909, 910, 910, 911, 912, 912, 913, 914, 914, 915, 916, 916, 917,
+ 918, 233, 920, 921, 922, 922, 923, 924, 924, 925, 926, 926, 927, 928, 928,
+ 929, 930, 930, 931, 932, 932, 933, 934, 934, 935, 919, 896, 936, 936, 937,
+ 938, 241, 940, 941, 942, 943, 944, 939, 871, 945, 945, 946, 947, 948, 949,
+ 949, 37, 951, 952, 952, 953, 954, 954, 955, 956, 956, 957, 958, 958, 959,
+ 960, 960, 961, 962, 962, 963, 964, 964, 622, 966, 967, 968, 969, 970, 971,
+ 971, 972, 973, 973, 35, 975, 976, 976, 977, 978, 978, 979, 980, 980, 981,
+ 982, 982, 983, 984, 984, 34, 986, 987, 987, 33, 989, 990, 990, 991, 988,
+ 992, 992, 993, 993, 994, 995, 32, 997, 998, 998, 31, 1000, 1001, 1001, 1002,
+ 999, 1003, 1003, 1004, 1004, 1005, 1006, 30, 1008, 1007, 996, 1009, 1010,
+ 1011, 1012, 1013, 1013, 1014, 985, 1015, 1016, 1015, 1016, 29, 28, 27, 26,
+ 25, 24, 23, 22, 21, 1026, 1025, 1024, 1023, 1022, 1021, 1020, 1019, 1018,
+ 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039,
+ 53, 51, 1042, 1041, 1043, 1044, 1045, 1046, 1046, 1047, 1048, 1048, 1049,
+ 1050, 1050, 1051, 1052, 1052, 1053, 1054, 1054, 1055, 1056, 1057, 1040, 1059,
+ 1058, 1060, 1061, 1061, 1062, 1063, 1063, 1064, 1065, 1065, 1066, 1067, 1067,
+ 1068, 1069, 1069, 1070, 1071, 1071, 1072, 1017, 974, 965, 950, 856, 827,
+ 689, 642, 631, 590, 585, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080,
+ 1081, 1082, 1083, 1084, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081,
+ 1082, 1083, 1084, 3, 1086, 1087, 1087, 1088, 1089, 1089, 1090, 1091, 1091,
+ 1092, 1093, 1093, 1094, 1095, 1095, 1096, 1097, 1097, 1098, 1085, 560, 447,
+ 436, 1099, 1100, 1101, 1102, 1103, 1099, 1100, 1101, 1102, 1103, 498, 541,
+ 1105, 1106, 1106, 503, 503, 458, 458, 503, 503, 702, 702, 478, 478, 471,
+ 471, 483, 483, 477, 477, 497, 497, 496, 496, 479, 479, 520, 520, 458, 458,
+ 702, 702, 521, 521, 1117, 1118, 1118, 1119, 1120, 1120, 1121, 1122, 1122,
+ 471, 471, 537, 537, 458, 458, 458, 458, 521, 521, 1128, 1127, 1126, 1125,
+ 1124, 1123, 1116, 1115, 1114, 1113, 1112, 1111, 1110, 1109, 1108, 1107, 1129,
+ 1130, 1131, 1132, 1133, 1134, 1135, 1136, 1137, 1138, 1139, 1140, 1141, 1142,
+ 1143, 1144, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136, 1137, 1138, 1139,
+ 1140, 1141, 1142, 1143, 1144, 1145, 1146, 524, 524, 1148, 1149, 1149, 1150,
+ 1151, 1151, 1152, 1153, 1153, 1154, 1155, 1155, 1156, 1157, 1157, 1158, 1147,
+ 1159, 1160, 1159, 1160, 419, 419, 1162, 1163, 1163, 1164, 1165, 1165, 1166,
+ 1167, 1167, 1168, 1169, 1170, 1171, 1172, 1173, 1174, 1175, 1176, 1177, 418,
+ 418, 1179, 1180, 1180, 1181, 1182, 1182, 1183, 1184, 1184, 1185, 1186, 1187,
+ 1188, 1189, 1190, 1191, 1192, 1193, 1194, 1195, 1178, 1196, 1196, 1197, 1197,
+ 415, 415, 1199, 1200, 1200, 1201, 1202, 1202, 1203, 1204, 1204, 1205, 1206,
+ 1207, 1208, 1209, 1210, 1211, 1212, 1213, 1214, 1215, 1216, 1216, 417, 417,
+ 1218, 1219, 1219, 1220, 1221, 1221, 1222, 1223, 1223, 1224, 1225, 1226, 1227,
+ 1228, 1229, 1230, 1231, 1232, 1233, 413, 413, 1235, 1236, 1236, 1237, 1238,
+ 1238, 1239, 1240, 1240, 1241, 1242, 1243, 1244, 1245, 1246, 1247, 1248, 1249,
+ 1250, 1251, 1234, 1253, 1253, 1252, 1252, 414, 414, 1255, 1256, 1256, 1257,
+ 1258, 1258, 1259, 1260, 1260, 1261, 1262, 1263, 1264, 1265, 1266, 1267, 1268,
+ 1269, 1270, 1271, 1272, 1272, 412, 412, 1274, 1275, 1275, 1276, 1277, 1277,
+ 1278, 1279, 1279, 1280, 1281, 1282, 1283, 1284, 1285, 1286, 1287, 1288, 1289,
+ 1290, 1291, 1291, 1292, 1293, 1293, 1294, 1295, 1295, 1296, 1297, 1297, 1298,
+ 1299, 1299, 1300, 1301, 1301, 1302, 1303, 1303, 1304, 1305, 1305, 1306, 1307,
+ 1307, 1308, 1309, 1309, 1310, 1311, 1311, 411, 411, 1313, 1314, 1314, 1315,
+ 1316, 1316, 1317, 1318, 1318, 1319, 1320, 1321, 1322, 1323, 1324, 1325, 1326,
+ 1327, 1328, 416, 416, 1330, 1331, 1331, 1332, 1333, 1333, 1334, 1335, 1335,
+ 1336, 1337, 1338, 1339, 1340, 1341, 1342, 1343, 1344, 1345, 1346, 1329, 1312,
+ 1347, 1348, 1349, 1347, 1348, 1349, 484, 484, 1351, 1352, 1352, 1353, 1354,
+ 1354, 1355, 1356, 1356, 1357, 1358, 1359, 1360, 1360, 394, 394, 1362, 1363,
+ 1363, 1364, 1365, 1365, 1366, 1367, 1367, 1368, 1369, 1370, 1371, 1372, 1373,
+ 1374, 1375, 1375, 1376, 1377, 1377, 1378, 1379, 1379, 1380, 1381, 1381, 1196,
+ 1196, 1253, 1253, 420, 420, 1385, 1386, 1386, 1387, 1388, 1388, 1389, 1390,
+ 1390, 1391, 1392, 1393, 1394, 1395, 1396, 1397, 1398, 1399, 1400, 1400, 1401,
+ 1384, 1383, 1382, 1361, 1350, 1273, 1254, 1217, 1198, 1161, 1402, 1403, 1404,
+ 1405, 1406, 1407, 1408, 1409, 1410, 1411, 1412, 1402, 1403, 1404, 1405, 1406,
+ 1407, 1408, 1409, 1410, 1411, 1412, 1413, 92, 1414, 1415, 1416, 1416, 1417,
+ 1418, 1418, 1419, 1420, 1420, 1421, 1422, 1422, 341, 783, 1424, 1425, 1426,
+ 1427, 1428, 1429, 1430, 1431, 1431, 1432, 1433, 1433, 783, 1435, 1436, 1437,
+ 1438, 1439, 1440, 1441, 1442, 1442, 1443, 1444, 1444, 633, 633, 595, 595,
+ 622, 1448, 1449, 1449, 1450, 1447, 1446, 1451, 626, 1452, 1453, 1451, 626,
+ 1452, 1453, 1454, 624, 624, 1455, 1456, 1457, 1457, 611, 1459, 1460, 1460,
+ 1461, 1462, 1462, 1463, 1464, 1464, 1465, 1466, 1467, 1468, 1468, 1469, 1470,
+ 1470, 1471, 1472, 1472, 1473, 1474, 1474, 1475, 1476, 1476, 1477, 1478, 1478,
+ 1479, 1480, 1481, 1482, 1482, 1483, 1484, 1484, 1485, 1486, 1486, 1487, 1488,
+ 1488, 1489, 1490, 1490, 1491, 1492, 1492, 1493, 1494, 1495, 1496, 1496, 1497,
+ 1498, 1498, 1499, 1500, 1500, 1501, 1502, 1502, 1503, 1504, 1505, 1506, 1506,
+ 1507, 1508, 1508, 1509, 1510, 1510, 1511, 1512, 1512, 1513, 1514, 1515, 1516,
+ 1516, 1517, 1518, 1518, 1519, 1520, 1520, 1521, 1522, 1522, 1523, 1524, 1524,
+ 1525, 1526, 1526, 1527, 1458, 1445, 1434, 1423, 1528, 1529, 1530, 1531, 1532,
+ 1528, 1529, 1530, 1531, 1532, 735, 1534, 1535, 1536, 1537, 1538, 1539, 1540,
+ 1541, 1542, 544, 544, 1543, 639, 49, 783, 1545, 1546, 1546, 1547, 1548, 1548,
+ 1549, 1550, 1550, 1551, 1544, 1552, 1553, 1552, 1553, 687, 1555, 1556, 800,
+ 1556, 800, 976, 987, 990, 998, 1001, 1559, 1558, 49, 752, 1009, 1560, 1561,
+ 48, 544, 751, 4, 1564, 1563, 1562, 595, 806, 952, 1565, 1566, 1567, 243,
+ 269, 675, 1043, 1044, 230, 241, 256, 716, 458, 633, 471, 472, 477, 478, 479,
+ 484, 702, 239, 240, 242, 257, 258, 483, 496, 497, 498, 503, 252, 254, 255,
+ 449, 516, 520, 521, 524, 527, 538, 264, 463, 537, 541, 253, 389, 508, 829,
+ 394, 412, 413, 414, 415, 416, 417, 418, 419, 420, 1577, 1576, 1575, 1574,
+ 1573, 1572, 1571, 1570, 1569, 1578, 1579, 1580, 1581, 1582, 1583, 1584, 1585,
+ 1586, 370, 411, 695, 1588, 1589, 622, 1027, 1028, 1029, 1030, 1031, 1032,
+ 1033, 1034, 1035, 1591, 1592, 1593, 1590, 1587, 1594, 1595, 1596, 2, 592,
+ 836, 43, 438, 1599, 1598, 1597, 1568, 341, 513, 807, 808, 1087, 1600, 1601,
+ 1602, 1603, 1604, 1605, 1606, 1607, 1607, 1608, 1609, 1609, 223, 184, 185,
+ 1613, 1612, 1614, 1615, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183,
+ 1626, 1625, 1624, 1623, 1622, 1621, 1620, 1619, 1618, 1617, 1627, 1628, 1629,
+ 1630, 1631, 1632, 1633, 1634, 1635, 1636, 172, 173, 1639, 1638, 463, 1640,
+ 1641, 167, 168, 169, 170, 171, 1647, 1646, 1645, 1644, 1643, 695, 1648, 1649,
+ 1650, 1651, 1652, 675, 166, 1655, 341, 1656, 164, 165, 1659, 1658, 1660,
+ 1661, 1662, 1657, 1654, 1653, 1642, 1637, 1616, 1663, 1664, 1665, 1666, 1667,
+ 1668, 1669, 161, 162, 163, 1673, 1672, 1671, 1674, 1675, 1676, 158, 159,
+ 160, 1680, 1679, 1678, 1681, 1682, 1683, 154, 155, 156, 157, 1688, 1687,
+ 1686, 1685, 1689, 1690, 1691, 1692, 148, 149, 150, 151, 152, 153, 1699, 1698,
+ 1697, 1696, 1695, 1694, 1700, 1701, 1702, 1703, 1704, 1705, 146, 147, 1708,
+ 1707, 1709, 1710, 1711, 1706, 1693, 1684, 1677, 422, 1712, 1713, 1714, 1715,
+ 1716, 987, 990, 1009, 998, 1001, 139, 140, 141, 142, 143, 144, 145, 1726,
+ 1725, 1724, 1723, 1722, 1721, 1720, 1043, 1044, 1727, 1728, 1729, 1730, 1731,
+ 1732, 1733, 106, 1735, 1736, 138, 1738, 1737, 269, 1739, 1740, 134, 135,
+ 136, 137, 1745, 1744, 1743, 1742, 1746, 1747, 1748, 1749, 1750, 1741, 1734,
+ 1719, 1718, 1751, 1752, 1753, 1754, 1755, 104, 105, 1758, 1757, 1759, 1760,
+ 1761, 1762, 976, 1764, 1765, 133, 1767, 836, 1768, 132, 1770, 370, 1771,
+ 129, 130, 131, 1775, 1774, 1773, 544, 1776, 633, 1777, 1778, 127, 128, 1781,
+ 1780, 1782, 1783, 1784, 1779, 1772, 1769, 1766, 1763, 1785, 1786, 1787, 1788,
+ 1789, 1790, 103, 1792, 1793, 1794, 1795, 1796, 1797, 1798, 1791, 1756, 1717,
+ 1670, 1799, 1800, 1801, 1802, 1803, 102, 1805, 1806, 1807, 1808, 222, 1810,
+ 1809, 1811, 1812, 101, 1814, 1815, 1816, 1817, 1818, 477, 478, 479, 1819,
+ 1820, 1813, 486, 704, 1821, 1822, 220, 221, 1825, 1824, 1826, 1827, 595,
+ 1829, 1830, 1831, 1832, 1833, 1828, 458, 491, 1834, 1835, 126, 1837, 1838,
+ 1839, 230, 1840, 125, 1842, 1843, 122, 123, 124, 1847, 1846, 1845, 1848,
+ 1849, 1850, 120, 121, 1853, 1852, 1854, 1855, 119, 1857, 1858, 1859, 1856,
+ 1851, 1844, 1860, 1861, 1862, 1863, 1864, 1841, 500, 1865, 1866, 118, 1868,
+ 1869, 117, 1871, 1872, 112, 113, 114, 115, 116, 1878, 1877, 1876, 1875, 1874,
+ 1879, 1880, 1881, 1882, 1883, 1884, 1873, 1870, 503, 1885, 1886, 1887, 111,
+ 1889, 1890, 1891, 1892, 1032, 1033, 1034, 1035, 1027, 1031, 1895, 1894, 1896,
+ 1897, 438, 1899, 1900, 100, 1902, 1903, 1904, 1905, 1906, 1907, 1908, 1901,
+ 1898, 1893, 1888, 1909, 1910, 1911, 1912, 1913, 99, 1915, 1916, 1917, 1918,
+ 1919, 1920, 98, 1922, 1923, 97, 1925, 1926, 96, 1928, 1929, 228, 1931, 1932,
+ 1933, 1930, 1927, 1924, 1934, 1935, 1936, 1937, 1938, 1939, 1940, 1921, 1941,
+ 1942, 219, 1944, 1945, 218, 1947, 1948, 1949, 1946, 510, 1950, 1951, 513,
+ 783, 214, 215, 216, 217, 1957, 1956, 1955, 1954, 716, 1958, 1959, 1960, 1961,
+ 239, 240, 241, 242, 243, 389, 110, 1964, 12, 1965, 1966, 252, 253, 254, 255,
+ 256, 258, 449, 516, 1967, 213, 1969, 520, 521, 622, 829, 1970, 212, 1972,
+ 527, 1565, 1973, 1974, 1971, 1968, 1963, 1962, 1953, 530, 1975, 1976, 1977,
+ 1978, 1979, 1980, 109, 1982, 73, 1983, 108, 1985, 72, 1986, 107, 1988, 1989,
+ 1990, 1987, 1984, 264, 1991, 1992, 1993, 541, 792, 807, 808, 809, 1087, 208,
+ 209, 210, 211, 1999, 1998, 1997, 1996, 394, 751, 752, 806, 2000, 2001, 2002,
+ 2003, 199, 200, 201, 202, 203, 204, 205, 206, 207, 2013, 2012, 2011, 2010,
+ 2009, 2008, 2007, 2006, 2005, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021,
+ 2022, 194, 1028, 1029, 1030, 195, 196, 197, 198, 2028, 2027, 2026, 2025,
+ 2024, 952, 2029, 2030, 2031, 2032, 2033, 188, 189, 190, 191, 192, 193, 2040,
+ 2039, 2038, 2037, 2036, 2035, 2041, 2042, 2043, 2044, 2045, 2046, 186, 187,
+ 2049, 2048, 2050, 2051, 592, 2053, 2052, 2047, 2034, 2023, 2004, 1995, 1994,
+ 2054, 2055, 2056, 2057, 2058, 2059, 2060, 2061, 2062, 1981, 1952, 1943, 1914,
+ 1867, 1836, 1823, 1804, 1611, 722, 722, 2063, 2064, 2065, 2066, 2067, 2068,
+ 2069, 2070, 2071, 2072, 547, 548, 223, 92, 2076, 2075, 2077, 2078, 222, 89,
+ 90, 91, 86, 87, 88, 84, 85, 2083, 2082, 2081, 2080, 2084, 2085, 2086, 2087,
+ 220, 221, 2, 2090, 2089, 2091, 2092, 81, 82, 83, 19, 2095, 2094, 2096, 2097,
+ 80, 2099, 2100, 219, 218, 69, 2104, 2103, 2102, 2105, 2106, 2107, 44, 49,
+ 94, 214, 215, 216, 217, 14, 15, 16, 17, 18, 39, 7, 8, 9, 10, 11, 12, 13,
+ 78, 79, 36, 47, 76, 77, 213, 75, 4, 74, 212, 2115, 2114, 2113, 2112, 2111,
+ 2110, 2109, 2116, 2117, 2118, 2119, 2120, 2121, 2122, 6, 72, 73, 3, 41, 42,
+ 43, 48, 71, 40, 45, 52, 68, 208, 209, 210, 211, 199, 200, 201, 202, 203,
+ 204, 205, 206, 207, 37, 194, 195, 196, 197, 198, 188, 189, 190, 191, 192,
+ 193, 186, 187, 55, 2131, 2130, 2129, 2128, 2127, 2126, 2125, 2124, 2132,
+ 2133, 2134, 2135, 2136, 2137, 2138, 2139, 2140, 2123, 2108, 2101, 2098, 2093,
+ 2088, 2079, 2141, 2142, 2143, 2144, 2145, 2146, 2147, 2148, 184, 185, 174,
+ 175, 176, 177, 178, 179, 180, 181, 182, 183, 70, 172, 173, 56, 167, 168,
+ 169, 170, 171, 38, 50, 166, 164, 165, 2156, 2155, 2154, 2153, 2152, 2151,
+ 2150, 2157, 2158, 2159, 2160, 2161, 2162, 2163, 161, 162, 163, 158, 159,
+ 160, 154, 155, 156, 157, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 148, 149,
+ 150, 151, 152, 153, 146, 147, 2170, 2169, 2168, 2167, 2166, 2165, 2171, 2172,
+ 2173, 2174, 2175, 2176, 30, 33, 34, 31, 32, 51, 53, 139, 140, 141, 142, 143,
+ 144, 145, 95, 138, 134, 135, 136, 137, 2182, 2181, 2180, 2179, 2178, 2183,
+ 2184, 2185, 2186, 2187, 46, 133, 57, 132, 20, 93, 129, 130, 131, 127, 128,
+ 2192, 2191, 2190, 2189, 2193, 2194, 2195, 2196, 2197, 2188, 2177, 2164, 2198,
+ 2199, 2200, 2201, 126, 2203, 2204, 125, 122, 123, 124, 120, 121, 119, 2209,
+ 2208, 2207, 2206, 2210, 2211, 2212, 2213, 2214, 2205, 2215, 2216, 118, 117,
+ 112, 113, 114, 115, 116, 2220, 2219, 2218, 2221, 2222, 2223, 111, 2225, 2226,
+ 26, 27, 28, 29, 21, 25, 2229, 2228, 2230, 2231, 54, 2233, 2234, 2235, 2232,
+ 2227, 2224, 2236, 2237, 2238, 2239, 110, 2241, 2242, 2243, 2244, 109, 108,
+ 107, 2248, 2247, 2246, 2249, 2250, 2251, 22, 23, 24, 2253, 2254, 2255, 2252,
+ 2256, 2257, 2258, 2245, 2240, 2217, 2202, 2149, 2259, 2260, 2261, 2262, 2263,
+ 2264, 106, 2266, 2267, 2268, 2269, 104, 105, 2271, 2272, 35, 2274, 2275,
+ 2276, 2273, 2277, 2278, 103, 2280, 2281, 2282, 2283, 2284, 2279, 2270, 2285,
+ 2286, 2287, 102, 2289, 2290, 2291, 2292, 101, 2294, 2295, 2296, 2297, 2298,
+ 2293, 2299, 2300, 5, 2302, 2303, 2304, 2305, 2306, 2307, 100, 2309, 2310,
+ 2311, 2312, 2313, 2314, 99, 2316, 2317, 2318, 2319, 98, 97, 96, 1, 2324,
+ 2323, 2322, 2321, 2325, 2326, 2327, 2328, 2329, 2330, 2331, 2320, 2332, 2333,
+ 2334, 2315, 2308, 2301, 2288, 2265, 2335, 2336, 2337, 2338, 2339, 2340, 2341,
+ 2342, 2342, 2343, 2344, 2344, 2345, 2346, 2346, 2347, 2348, 2348, 2349, 2074,
+ 2073, 2350, 2350, 2351, 551, 552, 553, 554, 555, 726, 727, 558, 2352, 2353,
+ 2354, 2354, 976, 2356, 2357, 2358, 2359, 2359, 2360, 2361, 2361, 2362, 2363,
+ 2363, 2364, 2365, 2366, 2367, 2368, 2369, 2370, 2371, 2372, 2373, 1044, 2375,
+ 2376, 2377, 2378, 2378, 2379, 2380, 2380, 2381, 2382, 2382, 2383, 2384, 2384,
+ 2385, 2386, 2386, 2387, 2388, 2389, 2390, 2391, 2392, 2393, 2394, 2395, 2396,
+ 2397, 2398, 2398, 2399, 2400, 2400, 2401, 2402, 2402, 2403, 2404, 2404, 2405,
+ 2406, 2406, 2407, 2408, 2408, 2409, 2410, 2410, 2411, 44, 751, 752, 2412,
+ 1043, 2414, 2415, 2416, 2417, 2417, 2418, 2419, 2419, 2420, 2421, 2421, 2422,
+ 2423, 2423, 2424, 2425, 2425, 2426, 2427, 2428, 2429, 2429, 2430, 2431, 2431,
+ 2432, 2433, 2433, 2434, 2435, 2435, 2436, 2437, 2437, 2438, 2439, 2439, 2440,
+ 2441, 2441, 2442, 43, 2443, 2444, 2413, 341, 783, 792, 806, 807, 808, 1087,
+ 2445, 2446, 2447, 2448, 2449, 2450, 2451, 2452, 2453, 2454, 513, 808, 809,
+ 807, 341, 783, 792, 806, 836, 1087, 2460, 2459, 2458, 2457, 2456, 2462, 2461,
+ 2463, 2464, 2465, 2466, 315, 1900, 2467, 2468, 2469, 2470, 2471, 2471, 2472,
+ 2455, 2374, 2473, 2473, 2474, 2475, 315, 315, 2477, 2478, 2478, 2479, 2480,
+ 2481, 2482, 2483, 2484, 312, 2486, 2487, 2488, 2489, 2490, 2491, 2492, 2493,
+ 2494, 2495, 2495, 2496, 2497, 2497, 2498, 2499, 2499, 2500, 2501, 2502, 2503,
+ 2504, 2505, 513, 2507, 2508, 2509, 2510, 2511, 2512, 2513, 44, 751, 2514,
+ 809, 2516, 2517, 2518, 2519, 2520, 2521, 2522, 43, 2523, 808, 2525, 2526,
+ 2527, 2528, 2529, 2530, 2531, 42, 2532, 807, 2534, 2535, 2536, 2537, 2538,
+ 2539, 2540, 41, 2541, 1087, 2543, 2544, 2545, 2546, 2547, 2548, 2549, 3,
+ 2550, 341, 2552, 2553, 2554, 2555, 2556, 2557, 2558, 50, 2559, 783, 2561,
+ 2562, 2563, 2564, 2565, 2566, 2567, 49, 2568, 2462, 2570, 2571, 2572, 2573,
+ 2574, 48, 2575, 806, 2577, 2578, 2579, 2580, 2581, 2582, 2583, 40, 2584,
+ 2585, 2576, 2569, 2560, 2551, 2542, 2533, 2524, 2515, 2586, 2587, 2588, 2589,
+ 2590, 2591, 2592, 2593, 2594, 2595, 2596, 2597, 2598, 2599, 2600, 2601, 2602,
+ 2603, 2506, 2604, 2605, 2606, 2485, 2476, 2607, 2608, 2609, 2610, 2611, 2611,
+ 2612, 2355, 1610, 2613, 2614, 2615, 2613, 2614, 2615, 1565, 2617, 2618, 2619,
+ 2620, 2621, 2622, 2623, 2624, 2624, 2625, 2626, 2627, 2628, 2628, 2629, 2630,
+ 2630, 831, 2632, 2633, 836, 836, 2635, 2636, 2636, 2637, 2638, 2638, 2639,
+ 2634, 2640, 2641, 2640, 2641, 836, 2643, 2644, 2645, 2646, 2647, 2648, 2649,
+ 2650, 836, 836, 2652, 2653, 2654, 2655, 2656, 2657, 2658, 2659, 2660, 2661,
+ 2662, 2663, 2664, 2665, 2666, 2667, 2668, 2669, 2670, 2671, 2671, 2672, 2651,
+ 2674, 2673, 2674, 2675, 2642, 2676, 2677, 2676, 2677, 751, 2679, 513, 806,
+ 807, 808, 809, 2680, 2681, 2682, 2682, 2683, 2684, 2684, 2685, 2686, 2686,
+ 2687, 2688, 2688, 806, 807, 808, 809, 513, 546, 952, 952, 2691, 2692, 2692,
+ 2693, 2694, 2694, 2695, 2696, 2696, 2697, 2698, 2698, 2699, 2690, 2701, 2700,
+ 2702, 2703, 2703, 389, 389, 2705, 2706, 2706, 2707, 2708, 2708, 2709, 2710,
+ 2710, 2711, 2712, 2713, 2714, 2715, 2716, 2717, 2718, 2719, 2720, 2721, 2722,
+ 2722, 2723, 2724, 2724, 2725, 2726, 2726, 2727, 2728, 2728, 2729, 2730, 2730,
+ 2731, 2732, 2732, 2733, 2734, 2734, 2735, 2736, 2736, 2737, 2738, 2738, 2739,
+ 2740, 2740, 2741, 2742, 2742, 2743, 2744, 2744, 2745, 2746, 2747, 2748, 2748,
+ 683, 683, 675, 958, 2751, 2752, 2752, 2753, 2754, 2754, 2755, 2756, 2756,
+ 2757, 2758, 2758, 971, 2760, 2761, 2761, 2762, 2763, 2763, 976, 2357, 2765,
+ 2766, 2766, 583, 583, 2768, 2769, 2769, 2770, 2, 2771, 992, 993, 992, 993,
+ 995, 2773, 2774, 1003, 1004, 1003, 1004, 1006, 2776, 2777, 2778, 2775, 1009,
+ 2779, 2780, 2781, 1009, 2779, 2780, 2782, 2783, 2784, 2784, 2785, 2772, 2767,
+ 2786, 2787, 2788, 2786, 2787, 2788, 2701, 1059, 2790, 2791, 2792, 2793, 2793,
+ 2794, 2795, 2795, 2796, 2797, 2797, 2798, 2799, 2799, 2800, 2801, 2801, 2802,
+ 2803, 2803, 2804, 2789, 2764, 2759, 2750, 2749, 2704, 2689, 2678, 2631, 2616,
+ 1557, 1554, 1533, 1104, 387, 368, 262, 229, 2823, 2824, 2825, 2826, 2827,
+ 2828, 234, 235, 236, 237, 238, 2830, 2831, 245, 246, 247, 248, 249, 250,
+ 251, 2833, 2834, 2835, 2832, 2837, 2836, 2838, 2839, 263, 2841, 2842, 2843,
+ 2844, 2845, 2846, 268, 268, 2848, 2849, 2850, 2851, 2851, 2852, 2853, 2854,
+ 2855, 2855, 2856, 2857, 2858, 2859, 2859, 2860, 2861, 2862, 2863, 2863, 2864,
+ 2865, 2866, 2867, 2867, 2868, 2869, 2870, 2871, 2871, 2872, 2873, 2874, 2875,
+ 2875, 2876, 2877, 2878, 2879, 2880, 2881, 2882, 2883, 2883, 2884, 2885, 2886,
+ 2887, 2887, 2888, 2889, 2890, 2891, 2891, 2892, 2893, 2894, 2895, 2895, 2896,
+ 2897, 2898, 2899, 2899, 2900, 2901, 2902, 2903, 2903, 2904, 2905, 2906, 2907,
+ 2907, 2908, 2909, 2910, 2911, 2911, 2912, 2913, 2914, 2915, 2916, 2917, 2918,
+ 2919, 2919, 2920, 2921, 2922, 2923, 2923, 2924, 2925, 2926, 2927, 2927, 2928,
+ 2929, 13491, 2931, 2932, 314, 2934, 2935, 2936, 2933, 2937, 2938, 2939, 2940,
+ 2941, 2942, 2943, 2944, 2945, 2946, 2947, 2948, 2949, 2950, 2951, 2952, 2953,
+ 2954, 2955, 2956, 2957, 2958, 2959, 2960, 2961, 2962, 2963, 2964, 2965, 2966,
+ 2966, 2967, 2968, 2969, 2970, 2971, 2972, 2973, 2974, 2974, 2975, 2976, 2977,
+ 2978, 2978, 2979, 2980, 340, 340, 2982, 2983, 2984, 2985, 2985, 2986, 2987,
+ 2988, 2989, 2989, 2990, 2991, 2992, 2993, 2993, 2994, 2995, 314, 314, 2997,
+ 2998, 2999, 3000, 3000, 3001, 3002, 340, 3004, 3005, 3006, 3007, 3008, 3009,
+ 3010, 3011, 3012, 3013, 3014, 3015, 3016, 3017, 3018, 3019, 3019, 3020, 3021,
+ 3022, 3003, 3024, 3024, 3023, 3023, 3025, 3026, 3027, 2996, 2981, 2930, 3029,
+ 3029, 3028, 3030, 3031, 3028, 3030, 3031, 3032, 3033, 369, 369, 3035, 3036,
+ 3037, 3038, 3038, 3039, 3040, 3041, 3042, 3042, 3043, 3044, 3045, 3046, 3046,
+ 3047, 3048, 3049, 3050, 3050, 3051, 3052, 3053, 3054, 3055, 3056, 3057, 3058,
+ 3059, 3060, 3061, 3062, 3062, 3063, 3064, 3065, 3066, 3066, 3067, 3068, 388,
+ 3070, 3071, 3072, 3073, 3074, 3075, 393, 3077, 3078, 3079, 3080, 3081, 3082,
+ 3083, 3076, 3084, 3085, 3086, 3087, 401, 402, 403, 404, 405, 406, 407, 408,
+ 409, 410, 3089, 3090, 3091, 3092, 3093, 3094, 3095, 3096, 3097, 3098, 3099,
+ 3088, 3100, 3101, 3102, 3103, 3104, 3105, 3106, 3107, 3108, 3109, 3109, 3110,
+ 3111, 3112, 3113, 3113, 3114, 3115, 3116, 3117, 3117, 3118, 3119, 437, 437,
+ 3121, 3122, 3123, 3124, 3124, 3125, 3126, 3127, 3128, 3128, 3129, 3130, 3131,
+ 3132, 3132, 3133, 3134, 3135, 3136, 3136, 3137, 3138, 448, 448, 3140, 3141,
+ 251, 251, 3143, 3144, 246, 246, 3146, 3147, 3148, 3145, 3142, 3149, 3150,
+ 3151, 3149, 3150, 3151, 3152, 3153, 457, 3155, 3156, 3157, 3158, 3100, 3101,
+ 3159, 3160, 462, 3162, 3163, 3164, 3165, 3166, 3167, 3168, 3169, 3170, 3171,
+ 469, 470, 3173, 3174, 474, 475, 476, 3176, 3177, 481, 482, 3179, 3180, 3181,
+ 3178, 3175, 3182, 3183, 3184, 3185, 3186, 314, 3188, 3189, 3190, 3191, 3192,
+ 3193, 493, 494, 495, 3195, 3196, 3197, 2826, 3198, 3199, 3200, 502, 3202,
+ 3203, 3204, 3205, 3206, 3207, 507, 3209, 3210, 3211, 3212, 3213, 3214, 512,
+ 3216, 3217, 245, 246, 247, 248, 249, 250, 251, 448, 515, 3219, 3220, 518,
+ 519, 3222, 3223, 523, 3225, 3226, 526, 3228, 3229, 3230, 3227, 3224, 3221,
+ 3218, 3231, 3232, 3233, 3234, 2837, 3235, 3236, 3237, 263, 535, 536, 3239,
+ 3240, 540, 3242, 3243, 543, 3245, 3246, 3247, 3244, 3241, 3248, 3249, 3250,
+ 3251, 3252, 3253, 3238, 3215, 3208, 3201, 3194, 3187, 3172, 3161, 3154, 3255,
+ 3256, 3257, 3258, 3259, 3262, 3254, 3260, 3261, 3263, 3264, 3265, 2879, 2879,
+ 3267, 3268, 3269, 3270, 3270, 3271, 3272, 3273, 3274, 3274, 3275, 3276, 3277,
+ 3278, 3278, 3279, 3280, 3281, 3282, 3282, 3283, 3284, 3285, 3286, 3286, 3287,
+ 3288, 3289, 3290, 3290, 3291, 3292, 3293, 3294, 3294, 3295, 3296, 3297, 3298,
+ 3298, 3299, 3300, 3301, 3302, 3302, 3303, 3304, 3305, 3306, 3306, 3307, 3308,
+ 3024, 3024, 3310, 3311, 3312, 3309, 3313, 3313, 3314, 3314, 3315, 3316, 3054,
+ 3318, 3319, 3320, 3321, 3321, 3322, 3323, 3324, 3325, 3325, 3326, 3327, 591,
+ 591, 3329, 3330, 594, 594, 3332, 3333, 3334, 3335, 3335, 3336, 3337, 3338,
+ 3339, 3339, 3340, 3341, 3342, 3343, 3343, 3344, 3345, 3346, 3347, 3347, 3348,
+ 3349, 3350, 3351, 3351, 3352, 3353, 3354, 3355, 3355, 3356, 3357, 3358, 3359,
+ 3359, 3360, 3361, 3362, 3363, 3363, 3364, 3365, 3366, 3367, 3367, 3368, 3369,
+ 3370, 3371, 3371, 3372, 3373, 3374, 3375, 3375, 3376, 3377, 3378, 3379, 3379,
+ 3380, 3381, 621, 621, 3383, 3384, 3385, 3382, 3331, 3386, 3386, 3388, 3388,
+ 3387, 3387, 3389, 3390, 3391, 3392, 3392, 3393, 3394, 3395, 3396, 3396, 3397,
+ 3398, 632, 3400, 3401, 3402, 3403, 3404, 3405, 3406, 3407, 3408, 3409, 3410,
+ 543, 543, 3411, 3412, 3413, 3414, 3415, 3415, 3416, 3417, 643, 643, 3419,
+ 3420, 3421, 3422, 3422, 3423, 3424, 3425, 3426, 3426, 3427, 3428, 3429, 3430,
+ 3430, 3431, 3432, 3433, 3434, 3434, 3435, 3436, 3437, 3438, 3438, 3439, 3440,
+ 3441, 3442, 3442, 3443, 3444, 3445, 3446, 3446, 3447, 3448, 3449, 3450, 3450,
+ 3451, 3452, 3453, 3454, 3454, 3455, 3456, 3457, 3458, 3458, 3459, 3460, 3461,
+ 3462, 3462, 3463, 3464, 3465, 3466, 3466, 3467, 3468, 3469, 3470, 3470, 3471,
+ 3472, 3473, 3474, 3474, 3475, 3476, 674, 3478, 3479, 3480, 3481, 3481, 3482,
+ 3483, 3484, 3485, 3485, 3486, 3487, 3488, 3489, 3489, 3490, 3491, 3492, 3493,
+ 3493, 3494, 3495, 3496, 3497, 3497, 3498, 3499, 3500, 3477, 3501, 3501, 3502,
+ 3502, 3503, 3504, 2847, 3506, 3507, 3508, 3509, 3510, 3510, 3511, 3512, 694,
+ 3514, 3515, 3516, 3517, 3165, 3518, 3519, 3520, 3521, 3522, 3523, 469, 470,
+ 701, 3525, 3526, 3527, 3182, 3183, 3528, 3529, 3530, 3198, 3532, 3533, 235,
+ 237, 238, 3535, 3536, 245, 246, 248, 249, 250, 251, 448, 515, 3538, 3539,
+ 3540, 3537, 3231, 3232, 3233, 3541, 3542, 3543, 3544, 535, 536, 3546, 3547,
+ 3548, 3249, 3549, 3550, 3551, 715, 715, 3553, 3554, 3555, 3556, 3556, 3557,
+ 3558, 3559, 3560, 3560, 3561, 3562, 3563, 3552, 3545, 3534, 3531, 3524, 3257,
+ 3262, 3564, 3564, 3568, 3569, 3565, 3566, 3567, 3570, 3571, 3572, 3513, 3573,
+ 3574, 3573, 3574, 3575, 3576, 437, 3578, 3579, 3580, 3581, 3582, 3583, 3584,
+ 3585, 3586, 3587, 3588, 3589, 3590, 3591, 3592, 3593, 3594, 3595, 3596, 3597,
+ 3598, 3599, 3600, 3601, 3601, 3602, 3603, 3604, 3605, 3605, 3606, 3607, 3608,
+ 3609, 3610, 3611, 749, 750, 3613, 3614, 3615, 3616, 3617, 3618, 3619, 3620,
+ 3621, 3622, 3623, 3624, 3625, 3626, 3627, 3628, 3629, 3630, 3029, 3029, 3632,
+ 3633, 767, 767, 3635, 3636, 3637, 3638, 3638, 3639, 3640, 3641, 3642, 3642,
+ 3643, 3644, 3645, 3646, 3646, 3647, 3648, 3649, 3650, 3650, 3651, 3652, 3653,
+ 3654, 3654, 3655, 3656, 3657, 3658, 3658, 3659, 3660, 782, 782, 3662, 3663,
+ 3664, 3665, 3665, 3666, 3667, 3668, 3669, 3669, 3670, 3671, 3672, 3673, 3673,
+ 3674, 3675, 791, 791, 3677, 3678, 3679, 3680, 3680, 3681, 3682, 3683, 3684,
+ 3684, 3685, 3686, 3687, 3688, 3688, 3689, 3690, 3691, 3692, 3692, 3693, 3694,
+ 3695, 3676, 3661, 3634, 512, 762, 763, 764, 765, 3696, 3697, 3698, 3699,
+ 3696, 3697, 3698, 3699, 3700, 3701, 3702, 3703, 3703, 3704, 3705, 3706, 3707,
+ 3707, 3708, 3709, 3710, 3711, 3711, 3712, 3713, 3714, 3715, 3715, 3716, 3717,
+ 3718, 3631, 3612, 3719, 3719, 3720, 3721, 3722, 3723, 3724, 3725, 3725, 3726,
+ 3727, 3728, 3577, 3729, 3730, 3729, 3730, 3731, 3732, 828, 828, 3734, 3735,
+ 3736, 3737, 3738, 3739, 3740, 3741, 3741, 3742, 3743, 835, 3745, 3746, 3747,
+ 3748, 3749, 3750, 3751, 3752, 3753, 3754, 3755, 3756, 3757, 3758, 3759, 3760,
+ 3761, 3762, 3763, 3764, 3765, 3766, 3767, 3768, 3769, 3770, 3771, 3772, 3773,
+ 3774, 3775, 3776, 3776, 3777, 3778, 3779, 3744, 3780, 3781, 3780, 3781, 3782,
+ 3783, 507, 507, 3785, 3786, 3787, 3788, 3788, 3789, 3790, 3791, 3792, 3792,
+ 3793, 3794, 3795, 3796, 3796, 3797, 3798, 3799, 3800, 3800, 3801, 3802, 3803,
+ 3804, 3804, 3805, 3806, 3807, 3808, 3809, 3810, 3811, 3812, 3813, 3814, 234,
+ 234, 3816, 3817, 3818, 3819, 3819, 3820, 3821, 3822, 3823, 3823, 3824, 3825,
+ 3826, 3827, 3827, 3828, 3829, 3830, 3831, 3831, 3832, 3833, 3834, 3835, 3835,
+ 3836, 3837, 3838, 3839, 3839, 3840, 3841, 3842, 3843, 3843, 3844, 3845, 3846,
+ 3847, 3847, 3848, 3849, 3850, 3851, 3851, 3852, 3853, 3854, 3855, 3855, 3856,
+ 3857, 3858, 3859, 3859, 3860, 3861, 3862, 3863, 3864, 3865, 247, 247, 3867,
+ 3868, 3869, 3870, 3870, 3871, 3872, 3873, 3874, 3874, 3875, 3876, 3877, 3878,
+ 3878, 3879, 3880, 3881, 3882, 3882, 3883, 3884, 3885, 3886, 3886, 3887, 3888,
+ 3889, 3890, 3890, 3891, 3892, 3893, 3894, 3894, 3895, 3896, 3897, 3898, 3898,
+ 3899, 3900, 3901, 3902, 3902, 3903, 3904, 3905, 3906, 3906, 3907, 3908, 3909,
+ 3910, 3911, 3912, 2829, 3914, 3915, 3916, 3917, 3918, 3918, 3919, 3920, 3921,
+ 3922, 3922, 3923, 3924, 3925, 3926, 3926, 3927, 3928, 3929, 3930, 3930, 3931,
+ 3932, 3933, 3934, 3934, 3935, 3936, 3937, 3938, 3938, 3939, 3940, 3941, 3942,
+ 3942, 3943, 3944, 3945, 3913, 3866, 3946, 3946, 3947, 3948, 3949, 3950, 236,
+ 3952, 3953, 3954, 3955, 3956, 3957, 3958, 3959, 3960, 3961, 3962, 3951, 3815,
+ 3963, 3963, 3964, 3965, 3966, 3967, 3968, 3969, 3969, 3970, 3971, 951, 951,
+ 3973, 3974, 3975, 3976, 3976, 3977, 3978, 3979, 3980, 3980, 3981, 3982, 3983,
+ 3984, 3984, 3985, 3986, 3987, 3988, 3988, 3989, 3990, 3991, 3992, 3992, 3993,
+ 3994, 3995, 3996, 3996, 3997, 3998, 621, 4000, 4001, 4002, 4003, 4004, 4005,
+ 4006, 4007, 4008, 4009, 4010, 4011, 4011, 4012, 4013, 4014, 4015, 4015, 4016,
+ 4017, 975, 975, 4019, 4020, 4021, 4022, 4022, 4023, 4024, 4025, 4026, 4026,
+ 4027, 4028, 4029, 4030, 4030, 4031, 4032, 4033, 4034, 4034, 4035, 4036, 986,
+ 986, 4038, 4039, 989, 989, 4041, 4042, 4043, 4040, 4044, 4044, 4045, 4045,
+ 4046, 4047, 4048, 4049, 4050, 4051, 997, 997, 4053, 4054, 1000, 1000, 4056,
+ 4057, 4058, 4055, 4059, 4059, 4060, 4060, 4061, 4062, 4063, 4064, 4065, 4066,
+ 4067, 4052, 1008, 4068, 4069, 4070, 4071, 4072, 4073, 4073, 4074, 4075, 4076,
+ 4037, 4077, 4078, 4077, 4078, 4079, 4080, 1018, 1019, 1020, 1021, 1022, 1023,
+ 1024, 1025, 1026, 4082, 4083, 4084, 4085, 4086, 4087, 4088, 4089, 4090, 4091,
+ 1041, 1042, 4093, 4094, 4095, 4096, 4096, 4097, 4098, 4099, 4100, 4100, 4101,
+ 4102, 4103, 4104, 4104, 4105, 4106, 4107, 4108, 4108, 4109, 4110, 4111, 4112,
+ 4112, 4113, 4114, 4115, 4116, 4117, 4118, 4119, 4092, 4121, 4120, 4122, 4123,
+ 4124, 4125, 4125, 4126, 4127, 4128, 4129, 4129, 4130, 4131, 4132, 4133, 4133,
+ 4134, 4135, 4136, 4137, 4137, 4138, 4139, 4140, 4141, 4141, 4142, 4143, 4144,
+ 4145, 4145, 4146, 4147, 4148, 4081, 4018, 3999, 3972, 3784, 3733, 3505, 3418,
+ 3399, 3328, 3317, 4149, 4150, 4151, 4152, 4153, 4154, 4155, 4156, 4157, 4158,
+ 4159, 4160, 4149, 4150, 4151, 4152, 4153, 4154, 4155, 4156, 4157, 4158, 4159,
+ 4160, 4161, 4162, 1086, 1086, 4164, 4165, 4166, 4167, 4167, 4168, 4169, 4170,
+ 4171, 4171, 4172, 4173, 4174, 4175, 4175, 4176, 4177, 4178, 4179, 4179, 4180,
+ 4181, 4182, 4183, 4183, 4184, 4185, 4186, 4163, 3266, 3139, 3120, 4187, 4188,
+ 4189, 4190, 4191, 4187, 4188, 4189, 4190, 4191, 4192, 4193, 493, 540, 4195,
+ 4196, 4197, 4198, 4198, 4199, 4200, 502, 502, 4202, 4203, 457, 457, 502,
+ 502, 4205, 4206, 701, 701, 4208, 4209, 475, 475, 4211, 4212, 470, 470, 482,
+ 482, 4214, 4215, 476, 476, 494, 494, 4217, 4218, 495, 495, 4220, 4221, 474,
+ 474, 519, 519, 4223, 4224, 457, 457, 701, 701, 4226, 4227, 518, 518, 4229,
+ 4230, 4231, 4232, 4232, 4233, 4234, 4235, 4236, 4236, 4237, 4238, 4239, 4240,
+ 4240, 4241, 4242, 470, 470, 4244, 4245, 536, 536, 4247, 4248, 457, 457, 4250,
+ 4251, 457, 457, 4253, 4254, 518, 518, 4256, 4257, 4258, 4255, 4252, 4249,
+ 4246, 4243, 4228, 4225, 4222, 4219, 4216, 4213, 4210, 4207, 4204, 4201, 4259,
+ 4260, 4261, 4262, 4263, 4264, 4265, 4266, 4267, 4268, 4269, 4270, 4271, 4272,
+ 4273, 4274, 4259, 4260, 4261, 4262, 4263, 4264, 4265, 4266, 4267, 4268, 4269,
+ 4270, 4271, 4272, 4273, 4274, 4275, 4276, 4277, 4278, 4279, 4280, 523, 523,
+ 4282, 4283, 4284, 4285, 4285, 4286, 4287, 4288, 4289, 4289, 4290, 4291, 4292,
+ 4293, 4293, 4294, 4295, 4296, 4297, 4297, 4298, 4299, 4300, 4301, 4301, 4302,
+ 4303, 4304, 4281, 4305, 4306, 4305, 4306, 4307, 4308, 402, 402, 4310, 4311,
+ 4312, 4313, 4313, 4314, 4315, 4316, 4317, 4317, 4318, 4319, 4320, 4321, 4321,
+ 4322, 4323, 4324, 4325, 4326, 4327, 4328, 4329, 4330, 4331, 4332, 4333, 4334,
+ 4335, 4336, 4337, 4338, 4339, 4340, 4341, 4342, 4343, 403, 403, 4345, 4346,
+ 4347, 4348, 4348, 4349, 4350, 4351, 4352, 4352, 4353, 4354, 4355, 4356, 4356,
+ 4357, 4358, 4359, 4360, 4361, 4362, 4363, 4364, 4365, 4366, 4367, 4368, 4369,
+ 4370, 4371, 4372, 4373, 4374, 4375, 4376, 4377, 4378, 4379, 4344, 4380, 4380,
+ 4381, 4381, 4382, 4383, 406, 406, 4385, 4386, 4387, 4388, 4388, 4389, 4390,
+ 4391, 4392, 4392, 4393, 4394, 4395, 4396, 4396, 4397, 4398, 4399, 4400, 4401,
+ 4402, 4403, 4404, 4405, 4406, 4407, 4408, 4409, 4410, 4411, 4412, 4413, 4414,
+ 4415, 4416, 4417, 4418, 4419, 4420, 4420, 4421, 4422, 404, 404, 4424, 4425,
+ 4426, 4427, 4427, 4428, 4429, 4430, 4431, 4431, 4432, 4433, 4434, 4435, 4435,
+ 4436, 4437, 4438, 4439, 4440, 4441, 4442, 4443, 4444, 4445, 4446, 4447, 4448,
+ 4449, 4450, 4451, 4452, 4453, 4454, 4455, 4456, 4457, 408, 408, 4459, 4460,
+ 4461, 4462, 4462, 4463, 4464, 4465, 4466, 4466, 4467, 4468, 4469, 4470, 4470,
+ 4471, 4472, 4473, 4474, 4475, 4476, 4477, 4478, 4479, 4480, 4481, 4482, 4483,
+ 4484, 4485, 4486, 4487, 4488, 4489, 4490, 4491, 4492, 4493, 4458, 4495, 4495,
+ 4494, 4494, 4496, 4497, 407, 407, 4499, 4500, 4501, 4502, 4502, 4503, 4504,
+ 4505, 4506, 4506, 4507, 4508, 4509, 4510, 4510, 4511, 4512, 4513, 4514, 4515,
+ 4516, 4517, 4518, 4519, 4520, 4521, 4522, 4523, 4524, 4525, 4526, 4527, 4528,
+ 4529, 4530, 4531, 4532, 4533, 4534, 4534, 4535, 4536, 409, 409, 4538, 4539,
+ 4540, 4541, 4541, 4542, 4543, 4544, 4545, 4545, 4546, 4547, 4548, 4549, 4549,
+ 4550, 4551, 4552, 4553, 4554, 4555, 4556, 4557, 4558, 4559, 4560, 4561, 4562,
+ 4563, 4564, 4565, 4566, 4567, 4568, 4569, 4570, 4571, 4572, 4573, 4573, 4574,
+ 4575, 4576, 4577, 4577, 4578, 4579, 4580, 4581, 4581, 4582, 4583, 4584, 4585,
+ 4585, 4586, 4587, 4588, 4589, 4589, 4590, 4591, 4592, 4593, 4593, 4594, 4595,
+ 4596, 4597, 4597, 4598, 4599, 4600, 4601, 4601, 4602, 4603, 4604, 4605, 4605,
+ 4606, 4607, 4608, 4609, 4609, 4610, 4611, 4612, 4613, 4613, 4614, 4615, 410,
+ 410, 4617, 4618, 4619, 4620, 4620, 4621, 4622, 4623, 4624, 4624, 4625, 4626,
+ 4627, 4628, 4628, 4629, 4630, 4631, 4632, 4633, 4634, 4635, 4636, 4637, 4638,
+ 4639, 4640, 4641, 4642, 4643, 4644, 4645, 4646, 4647, 4648, 4649, 4650, 405,
+ 405, 4652, 4653, 4654, 4655, 4655, 4656, 4657, 4658, 4659, 4659, 4660, 4661,
+ 4662, 4663, 4663, 4664, 4665, 4666, 4667, 4668, 4669, 4670, 4671, 4672, 4673,
+ 4674, 4675, 4676, 4677, 4678, 4679, 4680, 4681, 4682, 4683, 4684, 4685, 4686,
+ 4651, 4616, 4687, 4688, 4689, 4687, 4688, 4689, 4690, 4691, 481, 481, 4693,
+ 4694, 4695, 4696, 4696, 4697, 4698, 4699, 4700, 4700, 4701, 4702, 4703, 4704,
+ 4704, 4705, 4706, 4707, 4708, 4709, 4710, 4711, 4712, 4712, 4713, 4714, 393,
+ 393, 4716, 4717, 4718, 4719, 4719, 4720, 4721, 4722, 4723, 4723, 4724, 4725,
+ 4726, 4727, 4727, 4728, 4729, 4730, 4731, 4732, 4733, 4734, 4735, 4736, 4737,
+ 4738, 4739, 4740, 4741, 4742, 4743, 4743, 4744, 4745, 4746, 4747, 4747, 4748,
+ 4749, 4750, 4751, 4751, 4752, 4753, 4754, 4755, 4755, 4756, 4757, 4380, 4380,
+ 4759, 4760, 4495, 4495, 4762, 4763, 401, 401, 4765, 4766, 4767, 4768, 4768,
+ 4769, 4770, 4771, 4772, 4772, 4773, 4774, 4775, 4776, 4776, 4777, 4778, 4779,
+ 4780, 4781, 4782, 4783, 4784, 4785, 4786, 4787, 4788, 4789, 4790, 4791, 4792,
+ 4793, 4794, 4795, 4796, 4796, 4797, 4798, 4799, 4764, 4761, 4758, 4715, 4692,
+ 4537, 4498, 4423, 4384, 4309, 4800, 4801, 4802, 4803, 4804, 4805, 4806, 4807,
+ 4808, 4809, 4810, 4800, 4801, 4802, 4803, 4804, 4805, 4806, 4807, 4808, 4809,
+ 4810, 4811, 4812, 4813, 4814, 4815, 4816, 92, 4817, 4818, 4818, 4819, 4820,
+ 4821, 4822, 4822, 4823, 4824, 4825, 4826, 4826, 4827, 4828, 4829, 4830, 4830,
+ 4831, 4832, 340, 782, 4834, 4835, 4836, 4837, 4838, 4839, 4840, 4841, 4842,
+ 4843, 4844, 4845, 4846, 4847, 4848, 4849, 4849, 4850, 4851, 4852, 4853, 4853,
+ 4854, 4855, 782, 4857, 4858, 4859, 4860, 4861, 4862, 4863, 4864, 4865, 4866,
+ 4867, 4868, 4869, 4870, 4871, 4872, 4872, 4873, 4874, 4875, 4876, 4876, 4877,
+ 4878, 632, 632, 4880, 4881, 594, 594, 4883, 4884, 621, 4886, 4887, 4888,
+ 4889, 4889, 4890, 4891, 4892, 4885, 4882, 4893, 3388, 4894, 4895, 4893, 3388,
+ 4894, 4895, 4896, 4897, 4898, 3386, 3386, 4899, 4900, 4901, 4902, 4903, 4903,
+ 4904, 4905, 3363, 4907, 4908, 4909, 4910, 4910, 4911, 4912, 4913, 4914, 4914,
+ 4915, 4916, 4917, 4918, 4918, 4919, 4920, 4921, 4922, 4923, 4924, 4925, 4926,
+ 4926, 4927, 4928, 4929, 4930, 4930, 4931, 4932, 4933, 4934, 4934, 4935, 4936,
+ 4937, 4938, 4938, 4939, 4940, 4941, 4942, 4942, 4943, 4944, 4945, 4946, 4946,
+ 4947, 4948, 4949, 4950, 4951, 4952, 4953, 4954, 4954, 4955, 4956, 4957, 4958,
+ 4958, 4959, 4960, 4961, 4962, 4962, 4963, 4964, 4965, 4966, 4966, 4967, 4968,
+ 4969, 4970, 4970, 4971, 4972, 4973, 4974, 4974, 4975, 4976, 4977, 4978, 4979,
+ 4980, 4981, 4982, 4982, 4983, 4984, 4985, 4986, 4986, 4987, 4988, 4989, 4990,
+ 4990, 4991, 4992, 4993, 4994, 4994, 4995, 4996, 4997, 4998, 4999, 5000, 5001,
+ 5002, 5002, 5003, 5004, 5005, 5006, 5006, 5007, 5008, 5009, 5010, 5010, 5011,
+ 5012, 5013, 5014, 5014, 5015, 5016, 5017, 5018, 5019, 5020, 5021, 5022, 5022,
+ 5023, 5024, 5025, 5026, 5026, 5027, 5028, 5029, 5030, 5030, 5031, 5032, 5033,
+ 5034, 5034, 5035, 5036, 5037, 5038, 5038, 5039, 5040, 5041, 5042, 5042, 5043,
+ 5044, 5045, 4906, 4879, 4856, 4833, 5046, 5047, 5048, 5049, 5050, 5046, 5047,
+ 5048, 5049, 5050, 5051, 5052, 3585, 5054, 5055, 5056, 5057, 5058, 5059, 5060,
+ 5061, 5062, 5063, 5064, 5065, 5066, 5067, 5068, 5069, 5070, 5071, 5072, 543,
+ 543, 5073, 3411, 5074, 5075, 49, 4859, 5077, 5077, 5078, 5079, 5080, 5081,
+ 5081, 5082, 5083, 5084, 5085, 5085, 5086, 5087, 5088, 5076, 5089, 5090, 5089,
+ 5090, 5091, 5092, 3501, 5094, 5095, 5096, 5097, 3692, 5097, 3692, 5098, 5099,
+ 975, 5101, 5102, 986, 989, 997, 1000, 5104, 5105, 5106, 5103, 749, 1008,
+ 5107, 5108, 5109, 5110, 543, 750, 5112, 5113, 48, 5114, 49, 5111, 594, 765,
+ 951, 1564, 5115, 5116, 5117, 5118, 234, 268, 674, 1041, 1042, 5120, 5121,
+ 229, 236, 247, 715, 5123, 5124, 457, 632, 5126, 5127, 469, 470, 474, 475,
+ 476, 481, 701, 5129, 5130, 235, 237, 238, 245, 246, 482, 493, 494, 495, 502,
+ 5132, 5133, 248, 249, 251, 448, 515, 518, 519, 523, 526, 535, 5135, 5136,
+ 263, 462, 536, 540, 5138, 5139, 250, 388, 507, 828, 5141, 5142, 393, 401,
+ 402, 403, 404, 405, 406, 407, 408, 409, 5144, 5145, 5146, 5143, 5140, 5137,
+ 5134, 5131, 5128, 5125, 5122, 5147, 5148, 5149, 5150, 5151, 5152, 5153, 5154,
+ 5155, 5156, 5157, 369, 410, 694, 5159, 5160, 5161, 5162, 5163, 5164, 621,
+ 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 5166, 5167, 5168, 5169,
+ 5170, 5171, 5172, 5165, 5158, 5173, 5174, 5175, 5176, 5177, 591, 835, 5179,
+ 5180, 437, 5182, 5183, 43, 5184, 2, 5181, 5178, 5119, 340, 512, 763, 764,
+ 1086, 5185, 5186, 5187, 5188, 5189, 5190, 5191, 5192, 5193, 5194, 5195, 5196,
+ 5196, 5197, 5198, 5199, 5200, 5200, 5201, 5202, 1612, 1613, 5204, 5205, 1617,
+ 1618, 1619, 1620, 1621, 1622, 1623, 1624, 1625, 1626, 5207, 5208, 462, 1638,
+ 1639, 5210, 5211, 694, 1643, 1644, 1645, 1646, 1647, 5213, 5214, 674, 5216,
+ 5217, 340, 1655, 5219, 5220, 1658, 1659, 5222, 5223, 5224, 5221, 5218, 5215,
+ 5212, 5209, 5206, 5225, 5226, 5227, 5228, 5229, 5230, 5231, 5232, 5233, 1671,
+ 1672, 1673, 5235, 5236, 1678, 1679, 1680, 5238, 5239, 1685, 1686, 1687, 1688,
+ 5241, 5242, 1694, 1695, 1696, 1697, 1698, 1699, 5244, 5245, 1707, 1708, 5247,
+ 5248, 5249, 5246, 5243, 5240, 5237, 3092, 5250, 5251, 5252, 5253, 5254, 5255,
+ 5256, 986, 989, 1008, 5258, 5259, 997, 1000, 5261, 5262, 1041, 1042, 1720,
+ 1721, 1722, 1723, 1724, 1725, 1726, 5264, 5265, 1735, 5267, 5268, 5269, 268,
+ 1738, 5270, 5271, 5272, 1742, 1743, 1744, 1745, 5274, 5275, 5276, 5273, 5266,
+ 5263, 5260, 5277, 5278, 5279, 5280, 5281, 5282, 5283, 1757, 1758, 5285, 5286,
+ 5287, 5288, 5289, 5290, 975, 5292, 5293, 5294, 5295, 5296, 5297, 835, 1767,
+ 5299, 5300, 369, 1770, 5302, 5303, 543, 632, 1773, 1774, 1775, 5305, 5306,
+ 1780, 1781, 5308, 5309, 5310, 5307, 5304, 5301, 5298, 5291, 5311, 5312, 5313,
+ 5314, 5315, 5316, 5317, 5318, 1792, 5320, 5321, 5322, 5323, 5324, 5325, 5326,
+ 5327, 5328, 5329, 5330, 5319, 5284, 5257, 5234, 5331, 5332, 5333, 5334, 5335,
+ 5336, 5337, 1805, 5339, 5340, 5341, 5342, 5343, 5344, 5345, 1810, 5346, 5347,
+ 5348, 1814, 5350, 5351, 5352, 5353, 5354, 5355, 5356, 474, 475, 476, 5357,
+ 5358, 5359, 5360, 5349, 3182, 3528, 5361, 5362, 5363, 5364, 1824, 1825, 5366,
+ 5367, 594, 5369, 5370, 5371, 5372, 5373, 5374, 5375, 5376, 5377, 5378, 5379,
+ 5368, 457, 3191, 5380, 5381, 5382, 5383, 1837, 5385, 5386, 5387, 229, 5388,
+ 5389, 5390, 1842, 5392, 5393, 1845, 1846, 1847, 5395, 5396, 1852, 1853, 5398,
+ 5399, 1857, 5401, 5402, 5403, 5400, 5397, 5394, 5404, 5405, 5406, 5407, 5408,
+ 5409, 5410, 5391, 3198, 5411, 5412, 5413, 5414, 1868, 5416, 5417, 1871, 5419,
+ 5420, 1874, 1875, 1876, 1877, 1878, 5422, 5423, 5424, 5421, 5418, 502, 5425,
+ 5426, 5427, 5428, 5429, 1889, 5431, 5432, 5433, 5434, 5435, 5436, 1018, 1019,
+ 1020, 1021, 5438, 5439, 1022, 1026, 5441, 5442, 5443, 5440, 5444, 5445, 5446,
+ 5447, 437, 5449, 5450, 5451, 5452, 5453, 5454, 1902, 5456, 5457, 5458, 5459,
+ 5460, 5461, 5462, 5463, 5464, 5465, 5466, 5455, 5448, 5437, 5430, 5467, 5468,
+ 5469, 5470, 5471, 5472, 5473, 1915, 5475, 5476, 5477, 5478, 5479, 5480, 5481,
+ 5482, 5483, 5484, 1922, 5486, 5487, 1925, 5489, 5490, 1928, 5492, 5493, 1931,
+ 5495, 5496, 5497, 5494, 5491, 5488, 5498, 5499, 5500, 5501, 5502, 5503, 5504,
+ 5505, 5506, 5507, 5508, 5485, 5509, 5510, 5511, 5512, 1944, 5514, 5515, 1947,
+ 5517, 5518, 5519, 5516, 3212, 5520, 5521, 5522, 5523, 512, 782, 5525, 5526,
+ 715, 1954, 1955, 1956, 1957, 5528, 5529, 234, 235, 236, 237, 238, 388, 5531,
+ 5532, 1964, 5534, 5535, 12, 5536, 245, 247, 248, 249, 250, 251, 448, 515,
+ 5537, 5538, 5539, 518, 519, 621, 828, 1969, 5541, 5542, 526, 1564, 1972,
+ 5544, 5545, 5546, 5543, 5540, 5533, 5530, 5527, 3232, 5547, 5548, 5549, 5550,
+ 5551, 5552, 5553, 5554, 1982, 5556, 5557, 1985, 5559, 5560, 1988, 5562, 5563,
+ 5564, 72, 5561, 73, 5558, 263, 5565, 5566, 5567, 5568, 5569, 540, 762, 763,
+ 764, 791, 1086, 5571, 5572, 393, 749, 750, 765, 1996, 1997, 1998, 1999, 5574,
+ 5575, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 5577, 5578, 1023,
+ 1024, 1025, 5580, 5581, 5582, 195, 951, 2024, 2026, 2027, 2028, 5583, 5584,
+ 5585, 2035, 2036, 2037, 2038, 2039, 2040, 5587, 5588, 2048, 2049, 5590, 5591,
+ 591, 5593, 5594, 5595, 5592, 5589, 5586, 5579, 5576, 5573, 5570, 5596, 5597,
+ 5598, 5599, 5600, 5601, 5602, 5603, 5604, 5605, 5606, 5555, 5524, 5513, 5474,
+ 5415, 5384, 5365, 5338, 1611, 3564, 3564, 5607, 5608, 5609, 5610, 5611, 5612,
+ 5613, 5614, 5615, 5616, 5617, 3249, 3250, 5619, 5620, 2075, 5622, 2076, 5624,
+ 5625, 5623, 5626, 5627, 5628, 5629, 2080, 5631, 2081, 5633, 2082, 5635, 2083,
+ 5637, 5638, 5636, 5634, 5632, 5639, 5640, 5641, 5642, 5643, 5644, 2089, 5646,
+ 2090, 5648, 5649, 5647, 5650, 5651, 5652, 5653, 2094, 5655, 2095, 5657, 5658,
+ 5656, 5659, 5660, 5661, 5662, 2099, 5664, 5665, 5666, 5667, 5668, 2102, 5670,
+ 2103, 5672, 2104, 5674, 5675, 5673, 5671, 5676, 5677, 5678, 5679, 5680, 2109,
+ 5682, 2110, 5684, 2111, 5686, 2112, 5688, 2113, 5690, 2114, 5692, 2115, 5694,
+ 5695, 5693, 5691, 5689, 5687, 5685, 5683, 5696, 5697, 5698, 5699, 5700, 5701,
+ 5702, 5703, 5704, 2124, 5706, 2125, 5708, 2126, 5710, 2127, 5712, 2128, 5714,
+ 2129, 5716, 2130, 5718, 2131, 5720, 5721, 5719, 5717, 5715, 5713, 5711, 5709,
+ 5707, 5722, 5723, 5724, 5725, 5726, 5727, 5728, 5729, 5730, 5731, 5732, 5705,
+ 5681, 5669, 5663, 5654, 5645, 5630, 5733, 5734, 5735, 5736, 5737, 5738, 5739,
+ 5740, 5741, 5742, 2150, 5744, 2151, 5746, 2152, 5748, 2153, 5750, 2154, 5752,
+ 2155, 5754, 2156, 5756, 5757, 5755, 5753, 5751, 5749, 5747, 5745, 5758, 5759,
+ 5760, 5761, 5762, 5763, 5764, 5765, 5766, 2165, 5768, 2166, 5770, 2167, 5772,
+ 2168, 5774, 2169, 5776, 2170, 5778, 5779, 5777, 5775, 5773, 5771, 5769, 5780,
+ 5781, 5782, 5783, 5784, 5785, 5786, 5787, 2178, 5789, 2179, 5791, 2180, 5793,
+ 2181, 5795, 2182, 5797, 5798, 5796, 5794, 5792, 5790, 5799, 5800, 5801, 5802,
+ 5803, 5804, 5805, 2189, 5807, 2190, 5809, 2191, 5811, 2192, 5813, 5814, 5812,
+ 5810, 5808, 5815, 5816, 5817, 5818, 5819, 5820, 5821, 5806, 5788, 5767, 5822,
+ 5823, 5824, 5825, 5826, 5827, 2203, 5829, 5830, 5831, 5832, 5833, 2206, 5835,
+ 2207, 5837, 2208, 5839, 2209, 5841, 5842, 5840, 5838, 5836, 5843, 5844, 5845,
+ 5846, 5847, 5848, 5849, 5834, 5850, 5851, 5852, 5853, 2218, 5855, 2219, 5857,
+ 2220, 5859, 5860, 5858, 5856, 5861, 5862, 5863, 5864, 5865, 2225, 5867, 5868,
+ 5869, 5870, 5871, 2228, 5873, 2229, 5875, 5876, 5874, 5877, 5878, 5879, 5880,
+ 2233, 5882, 5883, 5884, 5885, 5886, 5887, 5881, 5872, 5866, 5888, 5889, 5890,
+ 5891, 5892, 5893, 2241, 5895, 5896, 5897, 5898, 5899, 5900, 5901, 5902, 5903,
+ 2246, 5905, 2247, 5907, 2248, 5909, 5910, 5908, 5906, 5911, 5912, 5913, 5914,
+ 5915, 2253, 5917, 5918, 5919, 5920, 5921, 5922, 5916, 5923, 5924, 5925, 5926,
+ 5927, 5904, 5894, 5854, 5828, 5743, 5928, 5929, 5930, 5931, 5932, 5933, 5934,
+ 5935, 2266, 5937, 5938, 5939, 5940, 5941, 5942, 5943, 5944, 5945, 2271, 5947,
+ 5948, 5949, 5950, 5951, 2274, 5953, 5954, 5955, 5956, 5957, 5958, 5952, 5959,
+ 5960, 5961, 5962, 2280, 5964, 5965, 5966, 5967, 5968, 5969, 5970, 5971, 5972,
+ 5973, 5963, 5946, 5974, 5975, 5976, 5977, 5978, 2289, 5980, 5981, 5982, 5983,
+ 5984, 5985, 5986, 5987, 5988, 2294, 5990, 5991, 5992, 5993, 5994, 5995, 5996,
+ 5997, 5998, 5999, 5989, 6000, 6001, 6002, 6003, 2302, 6005, 6006, 6007, 6008,
+ 6009, 6010, 6011, 6012, 6013, 6014, 6015, 6016, 6017, 2309, 6019, 6020, 6021,
+ 6022, 6023, 6024, 6025, 6026, 6027, 6028, 6029, 6030, 6031, 2316, 6033, 6034,
+ 6035, 6036, 6037, 6038, 6039, 6040, 6041, 2321, 6043, 2322, 6045, 2323, 6047,
+ 2324, 6049, 6050, 6048, 6046, 6044, 6051, 6052, 6053, 6054, 6055, 6056, 6057,
+ 6058, 6059, 6060, 6061, 6042, 6062, 6063, 6064, 6065, 6066, 6032, 6018, 6004,
+ 5979, 5936, 6067, 6068, 6069, 6070, 6071, 6072, 6073, 6074, 6075, 6076, 6076,
+ 6077, 6078, 6079, 6080, 6080, 6081, 6082, 6083, 6084, 6084, 6085, 6086, 6087,
+ 6088, 6088, 6089, 6090, 6091, 5621, 5618, 6092, 6092, 6093, 3255, 3256, 3257,
+ 3258, 3259, 3568, 3569, 3262, 6094, 6095, 6096, 6097, 6098, 6098, 6099, 6100,
+ 975, 6102, 6103, 6104, 6105, 6106, 6107, 6108, 6109, 6109, 6110, 6111, 6112,
+ 6113, 6113, 6114, 6115, 6116, 6117, 6117, 6118, 6119, 6120, 6121, 6122, 6123,
+ 6124, 6125, 6126, 6127, 6128, 6129, 6130, 6131, 6132, 6133, 6134, 6135, 6136,
+ 6137, 6138, 6139, 1041, 6141, 6142, 6143, 6144, 6145, 6146, 6147, 6148, 6148,
+ 6149, 6150, 6151, 6152, 6152, 6153, 6154, 6155, 6156, 6156, 6157, 6158, 6159,
+ 6160, 6160, 6161, 6162, 6163, 6164, 6164, 6165, 6166, 6167, 6168, 6169, 6170,
+ 6171, 6172, 6173, 6174, 6175, 6176, 6177, 6178, 6179, 6180, 6181, 6182, 6183,
+ 6184, 6185, 6186, 6187, 6188, 6188, 6189, 6190, 6191, 6192, 6192, 6193, 6194,
+ 6195, 6196, 6196, 6197, 6198, 6199, 6200, 6200, 6201, 6202, 6203, 6204, 6204,
+ 6205, 6206, 6207, 6208, 6208, 6209, 6210, 6211, 6212, 6212, 6213, 6214, 6215,
+ 749, 750, 6216, 6217, 6218, 1042, 6220, 6221, 6222, 6223, 6224, 6225, 6226,
+ 6227, 6227, 6228, 6229, 6230, 6231, 6231, 6232, 6233, 6234, 6235, 6235, 6236,
+ 6237, 6238, 6239, 6239, 6240, 6241, 6242, 6243, 6243, 6244, 6245, 6246, 6247,
+ 6248, 6249, 6250, 6251, 6251, 6252, 6253, 6254, 6255, 6255, 6256, 6257, 6258,
+ 6259, 6259, 6260, 6261, 6262, 6263, 6263, 6264, 6265, 6266, 6267, 6267, 6268,
+ 6269, 6270, 6271, 6271, 6272, 6273, 6274, 6275, 6275, 6276, 6277, 6278, 6279,
+ 6280, 6281, 43, 6282, 44, 6219, 340, 763, 764, 765, 782, 791, 1086, 6283,
+ 6284, 6285, 6286, 6287, 6288, 6289, 6290, 6291, 6292, 6293, 6294, 6295, 6296,
+ 6297, 6298, 6299, 6300, 6301, 6302, 512, 762, 763, 6304, 6305, 764, 6307,
+ 6308, 340, 782, 6310, 6311, 791, 6313, 6314, 765, 835, 1086, 6316, 6317,
+ 6318, 6315, 6312, 6309, 6306, 6320, 6319, 6321, 6322, 6323, 6324, 6325, 6326,
+ 314, 5452, 6327, 6328, 6329, 6330, 6331, 6332, 6333, 6334, 6335, 6335, 6336,
+ 6337, 6338, 6303, 6140, 6339, 6339, 6340, 6341, 6342, 6343, 314, 314, 6345,
+ 6346, 6347, 6348, 6348, 6349, 6350, 6351, 6352, 6353, 6354, 6355, 6356, 6357,
+ 6358, 6359, 6360, 6361, 6362, 311, 6364, 6365, 6366, 6367, 6368, 6369, 6370,
+ 6371, 6372, 6373, 6374, 6375, 6376, 6377, 6378, 6379, 6380, 6381, 6382, 6383,
+ 6383, 6384, 6385, 6386, 6387, 6387, 6388, 6389, 6390, 6391, 6391, 6392, 6393,
+ 6394, 6395, 6396, 6397, 6398, 6399, 6400, 6401, 6402, 6403, 6404, 6405, 512,
+ 6407, 6408, 6409, 6410, 6411, 6412, 6413, 6414, 6415, 6416, 6417, 6418, 6419,
+ 6420, 6421, 750, 6422, 6423, 6424, 762, 6426, 6427, 6428, 6429, 6430, 6431,
+ 6432, 6433, 6434, 6435, 6436, 6437, 6438, 6439, 6440, 6441, 6442, 6443, 763,
+ 6445, 6446, 6447, 6448, 6449, 6450, 6451, 6452, 6453, 6454, 6455, 6456, 6457,
+ 6458, 6459, 6460, 6461, 6462, 764, 6464, 6465, 6466, 6467, 6468, 6469, 6470,
+ 6471, 6472, 6473, 6474, 6475, 6476, 6477, 6478, 6479, 6480, 6481, 1086, 6483,
+ 6484, 6485, 6486, 6487, 6488, 6489, 6490, 6491, 6492, 6493, 6494, 6495, 6496,
+ 6497, 6498, 6499, 6500, 340, 6502, 6503, 6504, 6505, 6506, 6507, 6508, 6509,
+ 6510, 6511, 6512, 6513, 6514, 6515, 6516, 6517, 6518, 6519, 782, 6521, 6522,
+ 6523, 6524, 6525, 6526, 6527, 6528, 6529, 6530, 6531, 6532, 6533, 6534, 6535,
+ 6536, 6537, 6538, 6320, 6540, 6541, 6542, 6543, 6544, 6545, 6546, 6547, 6548,
+ 6549, 6550, 6551, 6552, 6553, 765, 6555, 6556, 6557, 6558, 6559, 6560, 6561,
+ 6562, 6563, 6564, 6565, 6566, 6567, 6568, 6569, 6570, 6571, 6572, 40, 6573,
+ 48, 6554, 49, 6539, 50, 6520, 3, 6501, 41, 6482, 42, 6463, 43, 6444, 44,
+ 6425, 6574, 6575, 6576, 6577, 6578, 6579, 6580, 6581, 6582, 6583, 6584, 6585,
+ 6586, 6587, 6588, 6589, 6590, 6591, 6592, 6593, 6594, 6595, 6596, 6597, 6598,
+ 6599, 6600, 6601, 6406, 6602, 6603, 6604, 6605, 6606, 6363, 6344, 6607, 6608,
+ 6609, 6610, 6611, 6612, 6613, 6613, 6614, 6615, 6616, 6101, 5203, 6617, 6618,
+ 6619, 6617, 6618, 6619, 6620, 6621, 1564, 6623, 6624, 6625, 6626, 6627, 6628,
+ 6629, 6630, 6631, 6632, 6633, 6634, 6635, 6636, 6637, 6638, 6638, 6639, 6640,
+ 6641, 6642, 6643, 6644, 6645, 6646, 6646, 6647, 6648, 6649, 6650, 6650, 6651,
+ 6652, 3737, 6654, 6655, 6656, 6657, 6658, 6659, 835, 835, 6661, 6662, 6663,
+ 6664, 6664, 6665, 6666, 6667, 6668, 6668, 6669, 6670, 6671, 6660, 6672, 6673,
+ 6672, 6673, 6674, 6675, 835, 6677, 6678, 6679, 6680, 6681, 6682, 6683, 6684,
+ 6685, 6686, 6687, 6688, 6689, 6690, 6691, 6692, 6693, 6694, 835, 835, 6696,
+ 6697, 6698, 6699, 6700, 6701, 6702, 6703, 6704, 6705, 6706, 6707, 6708, 6709,
+ 6710, 6711, 6712, 6713, 6714, 6715, 6716, 6717, 6718, 6719, 6720, 6721, 6722,
+ 6723, 6724, 6725, 6726, 6727, 6728, 6729, 6730, 6731, 6732, 6733, 6734, 6735,
+ 6735, 6736, 6737, 6738, 6695, 6740, 6739, 6740, 6741, 6742, 6743, 6676, 6744,
+ 6745, 6744, 6745, 6746, 6747, 750, 6749, 6750, 6751, 512, 762, 763, 764,
+ 765, 6752, 6753, 6754, 6755, 6756, 6756, 6757, 6758, 6759, 6760, 6760, 6761,
+ 6762, 6763, 6764, 6764, 6765, 6766, 6767, 512, 762, 763, 764, 765, 6768,
+ 6768, 6769, 6770, 3248, 6772, 6773, 951, 951, 6775, 6776, 6777, 6778, 6778,
+ 6779, 6780, 6781, 6782, 6782, 6783, 6784, 6785, 6786, 6786, 6787, 6788, 6789,
+ 6790, 6790, 6791, 6792, 6793, 6774, 6795, 6794, 6796, 6797, 6798, 6799, 6799,
+ 6800, 6801, 388, 388, 6803, 6804, 6805, 6806, 6806, 6807, 6808, 6809, 6810,
+ 6810, 6811, 6812, 6813, 6814, 6814, 6815, 6816, 6817, 6818, 6819, 6820, 6821,
+ 6822, 6823, 6824, 6825, 6826, 6827, 6828, 6829, 6830, 6831, 6832, 6833, 6834,
+ 6835, 6836, 6837, 6838, 6838, 6839, 6840, 6841, 6842, 6842, 6843, 6844, 6845,
+ 6846, 6846, 6847, 6848, 6849, 6850, 6850, 6851, 6852, 6853, 6854, 6854, 6855,
+ 6856, 6857, 6858, 6858, 6859, 6860, 6861, 6862, 6862, 6863, 6864, 6865, 6866,
+ 6866, 6867, 6868, 6869, 6870, 6870, 6871, 6872, 6873, 6874, 6874, 6875, 6876,
+ 6877, 6878, 6878, 6879, 6880, 6881, 6882, 6882, 6883, 6884, 6885, 6886, 6887,
+ 6888, 6889, 6890, 6890, 6891, 6892, 674, 3493, 3493, 6894, 6895, 3984, 6897,
+ 6898, 6899, 6900, 6900, 6901, 6902, 6903, 6904, 6904, 6905, 6906, 6907, 6908,
+ 6908, 6909, 6910, 6911, 6912, 6912, 6913, 6914, 4011, 6916, 6917, 6918, 6919,
+ 6919, 6920, 6921, 6922, 6923, 6923, 6924, 6925, 975, 6105, 6927, 6928, 6929,
+ 6930, 6930, 6931, 6932, 3313, 3313, 6934, 6935, 6936, 6937, 6937, 6938, 6939,
+ 6940, 6941, 6942, 6943, 4044, 4045, 4044, 4045, 4049, 6945, 6946, 6947, 6948,
+ 6949, 6950, 4059, 4060, 4059, 4060, 4064, 6952, 6953, 6954, 6955, 6956, 6957,
+ 6958, 6951, 1008, 6959, 6960, 6961, 6962, 6963, 1008, 6959, 6960, 6964, 6965,
+ 6966, 6967, 6968, 6968, 6969, 6970, 6971, 2, 6944, 6933, 6972, 6973, 6974,
+ 6972, 6973, 6974, 6975, 6976, 6795, 4121, 6978, 6979, 6980, 6981, 6982, 6983,
+ 6984, 6985, 6985, 6986, 6987, 6988, 6989, 6989, 6990, 6991, 6992, 6993, 6993,
+ 6994, 6995, 6996, 6997, 6997, 6998, 6999, 7000, 7001, 7001, 7002, 7003, 7004,
+ 7005, 7005, 7006, 7007, 7008, 6977, 6926, 6915, 6896, 6893, 6802, 6771, 6748,
+ 6653, 6622, 5100, 5093, 5053, 4194, 3069, 3034, 2840, 2823, 7027, 7028, 7029,
+ 7030, 7031, 2830, 7033, 2833, 7035, 7036, 7034, 7038, 7037, 7039, 7040, 2841,
+ 7042, 7043, 7044, 7045, 7046, 2848, 7048, 7049, 7050, 7050, 7051, 7052, 7053,
+ 7054, 7054, 7055, 7056, 7057, 7058, 7058, 7059, 7060, 7061, 7062, 7062, 7063,
+ 7064, 7065, 7066, 7066, 7067, 7068, 7069, 7070, 7070, 7071, 7072, 7073, 7074,
+ 7074, 7075, 7076, 7077, 7078, 7079, 7080, 7081, 7082, 7082, 7083, 7084, 7085,
+ 7086, 7086, 7087, 7088, 7089, 7090, 7090, 7091, 7092, 7093, 7094, 7094, 7095,
+ 7096, 7097, 7098, 7098, 7099, 7100, 7101, 7102, 7102, 7103, 7104, 7105, 7106,
+ 7106, 7107, 7108, 7109, 7110, 7110, 7111, 7112, 7113, 7114, 7115, 7116, 7117,
+ 7118, 7118, 7119, 7120, 7121, 7122, 7122, 7123, 7124, 7125, 7126, 7126, 7127,
+ 7128, 2931, 7130, 2934, 7132, 7133, 7131, 7134, 7135, 7136, 7137, 7138, 7139,
+ 7140, 7141, 7142, 7143, 7144, 7145, 7146, 7147, 7148, 7149, 7150, 7151, 7152,
+ 7153, 7154, 7155, 7156, 7157, 7158, 7159, 7160, 7161, 7162, 7163, 7163, 7164,
+ 7165, 7166, 7167, 7168, 7169, 7170, 7171, 7171, 7172, 7173, 7174, 7175, 7175,
+ 7176, 7177, 2982, 7179, 7180, 7181, 7181, 7182, 7183, 7184, 7185, 7185, 7186,
+ 7187, 7188, 7189, 7189, 7190, 7191, 2997, 7193, 7194, 7195, 7195, 7196, 7197,
+ 3004, 7199, 7200, 7201, 7202, 7203, 7204, 7205, 7206, 7207, 7208, 7209, 7210,
+ 7211, 7212, 7213, 7213, 7214, 7215, 7216, 7198, 7218, 7218, 7217, 7217, 7219,
+ 7220, 7221, 7192, 7178, 7129, 7223, 7223, 7222, 7224, 7225, 7222, 7224, 7225,
+ 7226, 7227, 3035, 7229, 7230, 7231, 7231, 7232, 7233, 7234, 7235, 7235, 7236,
+ 7237, 7238, 7239, 7239, 7240, 7241, 7242, 7243, 7243, 7244, 7245, 7246, 7247,
+ 7248, 7249, 7250, 7251, 7252, 7253, 7254, 7255, 7255, 7256, 7257, 7258, 7259,
+ 7259, 7260, 7261, 3070, 7263, 7264, 7265, 7266, 7267, 3077, 7269, 7270, 7271,
+ 7272, 7273, 7274, 7268, 7275, 7276, 7277, 7278, 3089, 7280, 7281, 7282, 7283,
+ 7284, 7285, 7286, 7287, 7288, 7289, 7279, 7290, 7291, 7292, 7293, 7294, 7295,
+ 7296, 7297, 7298, 7299, 7299, 7300, 7301, 7302, 7303, 7303, 7304, 7305, 7306,
+ 7307, 7307, 7308, 7309, 3121, 7311, 7312, 7313, 7313, 7314, 7315, 7316, 7317,
+ 7317, 7318, 7319, 7320, 7321, 7321, 7322, 7323, 7324, 7325, 7325, 7326, 7327,
+ 3140, 7329, 3143, 7331, 3146, 7333, 7334, 7332, 7330, 7335, 7336, 7337, 7335,
+ 7336, 7337, 7338, 7339, 3155, 7341, 7342, 7343, 7290, 7291, 7344, 7345, 3162,
+ 7347, 7348, 7349, 7350, 7351, 7352, 7353, 7354, 7355, 3173, 7357, 3176, 7359,
+ 3179, 7361, 7362, 7360, 7358, 7363, 7364, 7365, 7366, 7367, 3188, 7369, 7370,
+ 7371, 7372, 7373, 3195, 7375, 7376, 7029, 7377, 7378, 7379, 3202, 7381, 7382,
+ 7383, 7384, 7385, 3209, 7387, 7388, 7389, 7390, 7391, 3216, 7393, 3219, 7395,
+ 3222, 7397, 3225, 7399, 3228, 7401, 7402, 7400, 7398, 7396, 7394, 7403, 7404,
+ 7405, 7406, 7038, 7407, 7408, 7409, 3239, 7411, 3242, 7413, 3245, 7415, 7416,
+ 7414, 7412, 7417, 7418, 7419, 7420, 7421, 7422, 7410, 7392, 7386, 7380, 7374,
+ 7368, 7356, 7346, 7340, 7424, 7425, 7426, 7427, 7428, 7431, 7423, 7429, 7430,
+ 7432, 7433, 7434, 7078, 7078, 7436, 7437, 7438, 7439, 7439, 7440, 7441, 7442,
+ 7443, 7443, 7444, 7445, 7446, 7447, 7447, 7448, 7449, 7450, 7451, 7451, 7452,
+ 7453, 7454, 7455, 7455, 7456, 7457, 7458, 7459, 7459, 7460, 7461, 7462, 7463,
+ 7463, 7464, 7465, 7466, 7467, 7467, 7468, 7469, 7470, 7471, 7471, 7472, 7473,
+ 7474, 7475, 7475, 7476, 7477, 7218, 7218, 7479, 7480, 7481, 7478, 7482, 7482,
+ 7483, 7483, 7484, 7485, 7247, 7487, 7488, 7489, 7490, 7490, 7491, 7492, 7493,
+ 7494, 7494, 7495, 7496, 3329, 7498, 3332, 7500, 7501, 7502, 7502, 7503, 7504,
+ 7505, 7506, 7506, 7507, 7508, 7509, 7510, 7510, 7511, 7512, 7513, 7514, 7514,
+ 7515, 7516, 7517, 7518, 7518, 7519, 7520, 7521, 7522, 7522, 7523, 7524, 7525,
+ 7526, 7526, 7527, 7528, 7529, 7530, 7530, 7531, 7532, 7533, 7534, 7534, 7535,
+ 7536, 7537, 7538, 7538, 7539, 7540, 7541, 7542, 7542, 7543, 7544, 7545, 7546,
+ 7546, 7547, 7548, 3383, 7550, 7551, 7549, 7499, 7552, 7552, 7554, 7554, 7553,
+ 7553, 7555, 7556, 7557, 7558, 7558, 7559, 7560, 7561, 7562, 7562, 7563, 7564,
+ 3400, 7566, 7567, 7568, 7569, 7570, 7571, 7572, 7573, 7574, 7575, 543, 543,
+ 7576, 7577, 7578, 7579, 7580, 7580, 7581, 7582, 3419, 7584, 7585, 7586, 7586,
+ 7587, 7588, 7589, 7590, 7590, 7591, 7592, 7593, 7594, 7594, 7595, 7596, 7597,
+ 7598, 7598, 7599, 7600, 7601, 7602, 7602, 7603, 7604, 7605, 7606, 7606, 7607,
+ 7608, 7609, 7610, 7610, 7611, 7612, 7613, 7614, 7614, 7615, 7616, 7617, 7618,
+ 7618, 7619, 7620, 7621, 7622, 7622, 7623, 7624, 7625, 7626, 7626, 7627, 7628,
+ 7629, 7630, 7630, 7631, 7632, 7633, 7634, 7634, 7635, 7636, 7637, 7638, 7638,
+ 7639, 7640, 3478, 7642, 7643, 7644, 7644, 7645, 7646, 7647, 7648, 7648, 7649,
+ 7650, 7651, 7652, 7652, 7653, 7654, 7655, 7656, 7656, 7657, 7658, 7659, 7660,
+ 7660, 7661, 7662, 7663, 7641, 7664, 7664, 7665, 7665, 7666, 7667, 7047, 7669,
+ 7670, 7671, 7672, 7673, 7673, 7674, 7675, 3514, 7677, 7678, 7679, 7349, 7680,
+ 7681, 7682, 7683, 7684, 7685, 3525, 7687, 7688, 7363, 7364, 7689, 7690, 7691,
+ 7377, 7693, 7694, 3535, 7696, 3538, 7698, 7699, 7697, 7403, 7404, 7405, 7700,
+ 7701, 7702, 7703, 3546, 7705, 7706, 7418, 7707, 7708, 7709, 3553, 7711, 7712,
+ 7713, 7713, 7714, 7715, 7716, 7717, 7717, 7718, 7719, 7720, 7710, 7704, 7695,
+ 7692, 7686, 7426, 7431, 7721, 7721, 7725, 7726, 7722, 7723, 7724, 7727, 7728,
+ 7729, 7676, 7730, 7731, 7730, 7731, 7732, 7733, 3578, 7735, 7736, 7737, 7738,
+ 7739, 7740, 7741, 7742, 7743, 7744, 7745, 7746, 7747, 7748, 7749, 7750, 7751,
+ 7752, 7753, 7754, 7755, 7756, 7757, 7757, 7758, 7759, 7760, 7761, 7761, 7762,
+ 7763, 7764, 7765, 7766, 7767, 3613, 7769, 7770, 7771, 7772, 7773, 7774, 7775,
+ 7776, 7777, 7778, 7779, 7780, 7781, 7782, 7783, 7784, 7785, 7223, 7223, 7787,
+ 7788, 3635, 7790, 7791, 7792, 7792, 7793, 7794, 7795, 7796, 7796, 7797, 7798,
+ 7799, 7800, 7800, 7801, 7802, 7803, 7804, 7804, 7805, 7806, 7807, 7808, 7808,
+ 7809, 7810, 7811, 7812, 7812, 7813, 7814, 3662, 7816, 7817, 7818, 7818, 7819,
+ 7820, 7821, 7822, 7822, 7823, 7824, 7825, 7826, 7826, 7827, 7828, 3677, 7830,
+ 7831, 7832, 7832, 7833, 7834, 7835, 7836, 7836, 7837, 7838, 7839, 7840, 7840,
+ 7841, 7842, 7843, 7844, 7844, 7845, 7846, 7847, 7829, 7815, 7789, 512, 762,
+ 763, 764, 765, 7848, 7849, 7850, 7851, 7848, 7849, 7850, 7851, 7852, 7853,
+ 7854, 7855, 7855, 7856, 7857, 7858, 7859, 7859, 7860, 7861, 7862, 7863, 7863,
+ 7864, 7865, 7866, 7867, 7867, 7868, 7869, 7870, 7786, 7768, 7871, 7871, 7872,
+ 7873, 7874, 7875, 7876, 7877, 7877, 7878, 7879, 7880, 7734, 7881, 7882, 7881,
+ 7882, 7883, 7884, 3734, 7886, 7887, 7888, 7889, 7890, 7891, 7892, 7892, 7893,
+ 7894, 3745, 7896, 7897, 7898, 7899, 7900, 7901, 7902, 7903, 7904, 7905, 7906,
+ 7907, 7908, 7909, 7910, 7911, 7912, 7913, 7914, 7915, 7916, 7917, 7918, 7919,
+ 7920, 7921, 7922, 7923, 7924, 7925, 7926, 7926, 7927, 7928, 7929, 7895, 7930,
+ 7931, 7930, 7931, 7932, 7933, 3785, 7935, 7936, 7937, 7937, 7938, 7939, 7940,
+ 7941, 7941, 7942, 7943, 7944, 7945, 7945, 7946, 7947, 7948, 7949, 7949, 7950,
+ 7951, 7952, 7953, 7953, 7954, 7955, 7956, 7957, 7958, 7959, 7960, 7961, 7962,
+ 7963, 3816, 7965, 7966, 7967, 7967, 7968, 7969, 7970, 7971, 7971, 7972, 7973,
+ 7974, 7975, 7975, 7976, 7977, 7978, 7979, 7979, 7980, 7981, 7982, 7983, 7983,
+ 7984, 7985, 7986, 7987, 7987, 7988, 7989, 7990, 7991, 7991, 7992, 7993, 7994,
+ 7995, 7995, 7996, 7997, 7998, 7999, 7999, 8000, 8001, 8002, 8003, 8003, 8004,
+ 8005, 8006, 8007, 8007, 8008, 8009, 8010, 8011, 8012, 8013, 3867, 8015, 8016,
+ 8017, 8017, 8018, 8019, 8020, 8021, 8021, 8022, 8023, 8024, 8025, 8025, 8026,
+ 8027, 8028, 8029, 8029, 8030, 8031, 8032, 8033, 8033, 8034, 8035, 8036, 8037,
+ 8037, 8038, 8039, 8040, 8041, 8041, 8042, 8043, 8044, 8045, 8045, 8046, 8047,
+ 8048, 8049, 8049, 8050, 8051, 8052, 8053, 8053, 8054, 8055, 8056, 8057, 8058,
+ 8059, 7032, 8061, 8062, 8063, 8064, 8065, 8065, 8066, 8067, 8068, 8069, 8069,
+ 8070, 8071, 8072, 8073, 8073, 8074, 8075, 8076, 8077, 8077, 8078, 8079, 8080,
+ 8081, 8081, 8082, 8083, 8084, 8085, 8085, 8086, 8087, 8088, 8089, 8089, 8090,
+ 8091, 8092, 8060, 8014, 8093, 8093, 8094, 8095, 8096, 8097, 3952, 8099, 8100,
+ 8101, 8102, 8103, 8104, 8105, 8106, 8107, 8108, 8098, 7964, 8109, 8109, 8110,
+ 8111, 8112, 8113, 8114, 8115, 8115, 8116, 8117, 3973, 8119, 8120, 8121, 8121,
+ 8122, 8123, 8124, 8125, 8125, 8126, 8127, 8128, 8129, 8129, 8130, 8131, 8132,
+ 8133, 8133, 8134, 8135, 8136, 8137, 8137, 8138, 8139, 8140, 8141, 8141, 8142,
+ 8143, 4000, 8145, 8146, 8147, 8148, 8149, 8150, 8151, 8152, 8153, 8154, 8155,
+ 8155, 8156, 8157, 8158, 8159, 8159, 8160, 8161, 4019, 8163, 8164, 8165, 8165,
+ 8166, 8167, 8168, 8169, 8169, 8170, 8171, 8172, 8173, 8173, 8174, 8175, 8176,
+ 8177, 8177, 8178, 8179, 4038, 8181, 4041, 8183, 8184, 8182, 8185, 8185, 8186,
+ 8186, 8187, 8188, 8189, 8190, 8191, 8192, 4053, 8194, 4056, 8196, 8197, 8195,
+ 8198, 8198, 8199, 8199, 8200, 8201, 8202, 8203, 8204, 8205, 8206, 8193, 1008,
+ 8207, 8208, 8209, 8210, 8211, 8212, 8212, 8213, 8214, 8215, 8180, 8216, 8217,
+ 8216, 8217, 8218, 8219, 4082, 8221, 8222, 8223, 8224, 8225, 8226, 8227, 8228,
+ 8229, 4093, 8231, 8232, 8233, 8233, 8234, 8235, 8236, 8237, 8237, 8238, 8239,
+ 8240, 8241, 8241, 8242, 8243, 8244, 8245, 8245, 8246, 8247, 8248, 8249, 8249,
+ 8250, 8251, 8252, 8253, 8254, 8255, 8256, 8230, 8258, 8257, 8259, 8260, 8261,
+ 8262, 8262, 8263, 8264, 8265, 8266, 8266, 8267, 8268, 8269, 8270, 8270, 8271,
+ 8272, 8273, 8274, 8274, 8275, 8276, 8277, 8278, 8278, 8279, 8280, 8281, 8282,
+ 8282, 8283, 8284, 8285, 8220, 8162, 8144, 8118, 7934, 7885, 7668, 7583, 7565,
+ 7497, 7486, 8286, 8287, 8288, 8289, 8290, 8291, 8292, 8293, 8294, 8295, 8296,
+ 8297, 8286, 8287, 8288, 8289, 8290, 8291, 8292, 8293, 8294, 8295, 8296, 8297,
+ 8298, 8299, 4164, 8301, 8302, 8303, 8303, 8304, 8305, 8306, 8307, 8307, 8308,
+ 8309, 8310, 8311, 8311, 8312, 8313, 8314, 8315, 8315, 8316, 8317, 8318, 8319,
+ 8319, 8320, 8321, 8322, 8300, 7435, 7328, 7310, 8323, 8324, 8325, 8326, 8327,
+ 8323, 8324, 8325, 8326, 8327, 8328, 8329, 4195, 8331, 8332, 8333, 8333, 8334,
+ 8335, 4202, 8337, 4205, 8339, 4208, 8341, 4211, 8343, 4214, 8345, 4217, 8347,
+ 4220, 8349, 4223, 8351, 4226, 8353, 4229, 8355, 8356, 8357, 8357, 8358, 8359,
+ 8360, 8361, 8361, 8362, 8363, 8364, 8365, 8365, 8366, 8367, 4244, 8369, 4247,
+ 8371, 4250, 8373, 4253, 8375, 4256, 8377, 8378, 8376, 8374, 8372, 8370, 8368,
+ 8354, 8352, 8350, 8348, 8346, 8344, 8342, 8340, 8338, 8336, 8379, 8380, 8381,
+ 8382, 8383, 8384, 8385, 8386, 8387, 8388, 8389, 8390, 8391, 8392, 8393, 8394,
+ 8379, 8380, 8381, 8382, 8383, 8384, 8385, 8386, 8387, 8388, 8389, 8390, 8391,
+ 8392, 8393, 8394, 8395, 8396, 8397, 8398, 8399, 8400, 4282, 8402, 8403, 8404,
+ 8404, 8405, 8406, 8407, 8408, 8408, 8409, 8410, 8411, 8412, 8412, 8413, 8414,
+ 8415, 8416, 8416, 8417, 8418, 8419, 8420, 8420, 8421, 8422, 8423, 8401, 8424,
+ 8425, 8424, 8425, 8426, 8427, 4310, 8429, 8430, 8431, 8431, 8432, 8433, 8434,
+ 8435, 8435, 8436, 8437, 8438, 8439, 8439, 8440, 8441, 8442, 8443, 8444, 8445,
+ 8446, 8447, 8448, 8449, 8450, 8451, 8452, 8453, 8454, 8455, 8456, 8457, 8458,
+ 8459, 8460, 8461, 4345, 8463, 8464, 8465, 8465, 8466, 8467, 8468, 8469, 8469,
+ 8470, 8471, 8472, 8473, 8473, 8474, 8475, 8476, 8477, 8478, 8479, 8480, 8481,
+ 8482, 8483, 8484, 8485, 8486, 8487, 8488, 8489, 8490, 8491, 8492, 8493, 8494,
+ 8495, 8496, 8462, 8497, 8497, 8498, 8498, 8499, 8500, 4385, 8502, 8503, 8504,
+ 8504, 8505, 8506, 8507, 8508, 8508, 8509, 8510, 8511, 8512, 8512, 8513, 8514,
+ 8515, 8516, 8517, 8518, 8519, 8520, 8521, 8522, 8523, 8524, 8525, 8526, 8527,
+ 8528, 8529, 8530, 8531, 8532, 8533, 8534, 8535, 8536, 8536, 8537, 8538, 4424,
+ 8540, 8541, 8542, 8542, 8543, 8544, 8545, 8546, 8546, 8547, 8548, 8549, 8550,
+ 8550, 8551, 8552, 8553, 8554, 8555, 8556, 8557, 8558, 8559, 8560, 8561, 8562,
+ 8563, 8564, 8565, 8566, 8567, 8568, 8569, 8570, 8571, 8572, 4459, 8574, 8575,
+ 8576, 8576, 8577, 8578, 8579, 8580, 8580, 8581, 8582, 8583, 8584, 8584, 8585,
+ 8586, 8587, 8588, 8589, 8590, 8591, 8592, 8593, 8594, 8595, 8596, 8597, 8598,
+ 8599, 8600, 8601, 8602, 8603, 8604, 8605, 8606, 8607, 8573, 8609, 8609, 8608,
+ 8608, 8610, 8611, 4499, 8613, 8614, 8615, 8615, 8616, 8617, 8618, 8619, 8619,
+ 8620, 8621, 8622, 8623, 8623, 8624, 8625, 8626, 8627, 8628, 8629, 8630, 8631,
+ 8632, 8633, 8634, 8635, 8636, 8637, 8638, 8639, 8640, 8641, 8642, 8643, 8644,
+ 8645, 8646, 8647, 8647, 8648, 8649, 4538, 8651, 8652, 8653, 8653, 8654, 8655,
+ 8656, 8657, 8657, 8658, 8659, 8660, 8661, 8661, 8662, 8663, 8664, 8665, 8666,
+ 8667, 8668, 8669, 8670, 8671, 8672, 8673, 8674, 8675, 8676, 8677, 8678, 8679,
+ 8680, 8681, 8682, 8683, 8684, 8685, 8685, 8686, 8687, 8688, 8689, 8689, 8690,
+ 8691, 8692, 8693, 8693, 8694, 8695, 8696, 8697, 8697, 8698, 8699, 8700, 8701,
+ 8701, 8702, 8703, 8704, 8705, 8705, 8706, 8707, 8708, 8709, 8709, 8710, 8711,
+ 8712, 8713, 8713, 8714, 8715, 8716, 8717, 8717, 8718, 8719, 8720, 8721, 8721,
+ 8722, 8723, 8724, 8725, 8725, 8726, 8727, 4617, 8729, 8730, 8731, 8731, 8732,
+ 8733, 8734, 8735, 8735, 8736, 8737, 8738, 8739, 8739, 8740, 8741, 8742, 8743,
+ 8744, 8745, 8746, 8747, 8748, 8749, 8750, 8751, 8752, 8753, 8754, 8755, 8756,
+ 8757, 8758, 8759, 8760, 8761, 4652, 8763, 8764, 8765, 8765, 8766, 8767, 8768,
+ 8769, 8769, 8770, 8771, 8772, 8773, 8773, 8774, 8775, 8776, 8777, 8778, 8779,
+ 8780, 8781, 8782, 8783, 8784, 8785, 8786, 8787, 8788, 8789, 8790, 8791, 8792,
+ 8793, 8794, 8795, 8796, 8762, 8728, 8797, 8798, 8799, 8797, 8798, 8799, 8800,
+ 8801, 4693, 8803, 8804, 8805, 8805, 8806, 8807, 8808, 8809, 8809, 8810, 8811,
+ 8812, 8813, 8813, 8814, 8815, 8816, 8817, 8818, 8819, 8820, 8821, 8821, 8822,
+ 8823, 4716, 8825, 8826, 8827, 8827, 8828, 8829, 8830, 8831, 8831, 8832, 8833,
+ 8834, 8835, 8835, 8836, 8837, 8838, 8839, 8840, 8841, 8842, 8843, 8844, 8845,
+ 8846, 8847, 8848, 8849, 8850, 8851, 8851, 8852, 8853, 8854, 8855, 8855, 8856,
+ 8857, 8858, 8859, 8859, 8860, 8861, 8862, 8863, 8863, 8864, 8865, 8497, 8497,
+ 8867, 8868, 8609, 8609, 8870, 8871, 4765, 8873, 8874, 8875, 8875, 8876, 8877,
+ 8878, 8879, 8879, 8880, 8881, 8882, 8883, 8883, 8884, 8885, 8886, 8887, 8888,
+ 8889, 8890, 8891, 8892, 8893, 8894, 8895, 8896, 8897, 8898, 8899, 8900, 8901,
+ 8902, 8903, 8903, 8904, 8905, 8906, 8872, 8869, 8866, 8824, 8802, 8650, 8612,
+ 8539, 8501, 8428, 8907, 8908, 8909, 8910, 8911, 8912, 8913, 8914, 8915, 8916,
+ 8917, 8907, 8908, 8909, 8910, 8911, 8912, 8913, 8914, 8915, 8916, 8917, 8918,
+ 8919, 8920, 8921, 8922, 8923, 92, 8924, 8925, 8925, 8926, 8927, 8928, 8929,
+ 8929, 8930, 8931, 8932, 8933, 8933, 8934, 8935, 8936, 8937, 8937, 8938, 8939,
+ 4834, 8941, 8942, 8943, 8944, 8945, 8946, 8947, 8948, 8949, 8950, 8951, 8952,
+ 8953, 8954, 8955, 8955, 8956, 8957, 8958, 8959, 8959, 8960, 8961, 4857, 8963,
+ 8964, 8965, 8966, 8967, 8968, 8969, 8970, 8971, 8972, 8973, 8974, 8975, 8976,
+ 8977, 8977, 8978, 8979, 8980, 8981, 8981, 8982, 8983, 4880, 8985, 4883, 8987,
+ 4886, 8989, 8990, 8991, 8991, 8992, 8993, 8994, 8988, 8986, 8995, 7554, 8996,
+ 8997, 8995, 7554, 8996, 8997, 8998, 8999, 9000, 7552, 7552, 9001, 9002, 9003,
+ 9004, 9005, 9005, 9006, 9007, 7530, 9009, 9010, 9011, 9012, 9012, 9013, 9014,
+ 9015, 9016, 9016, 9017, 9018, 9019, 9020, 9020, 9021, 9022, 9023, 9024, 9025,
+ 9026, 9027, 9028, 9028, 9029, 9030, 9031, 9032, 9032, 9033, 9034, 9035, 9036,
+ 9036, 9037, 9038, 9039, 9040, 9040, 9041, 9042, 9043, 9044, 9044, 9045, 9046,
+ 9047, 9048, 9048, 9049, 9050, 9051, 9052, 9053, 9054, 9055, 9056, 9056, 9057,
+ 9058, 9059, 9060, 9060, 9061, 9062, 9063, 9064, 9064, 9065, 9066, 9067, 9068,
+ 9068, 9069, 9070, 9071, 9072, 9072, 9073, 9074, 9075, 9076, 9076, 9077, 9078,
+ 9079, 9080, 9081, 9082, 9083, 9084, 9084, 9085, 9086, 9087, 9088, 9088, 9089,
+ 9090, 9091, 9092, 9092, 9093, 9094, 9095, 9096, 9096, 9097, 9098, 9099, 9100,
+ 9101, 9102, 9103, 9104, 9104, 9105, 9106, 9107, 9108, 9108, 9109, 9110, 9111,
+ 9112, 9112, 9113, 9114, 9115, 9116, 9116, 9117, 9118, 9119, 9120, 9121, 9122,
+ 9123, 9124, 9124, 9125, 9126, 9127, 9128, 9128, 9129, 9130, 9131, 9132, 9132,
+ 9133, 9134, 9135, 9136, 9136, 9137, 9138, 9139, 9140, 9140, 9141, 9142, 9143,
+ 9144, 9144, 9145, 9146, 9147, 9008, 8984, 8962, 8940, 9148, 9149, 9150, 9151,
+ 9152, 9148, 9149, 9150, 9151, 9152, 9153, 9154, 7741, 9156, 9157, 9158, 9159,
+ 9160, 9161, 9162, 9163, 9164, 9165, 9166, 9167, 9168, 9169, 9170, 9171, 9172,
+ 9173, 9174, 543, 543, 9175, 7576, 9176, 9177, 49, 8964, 9179, 9179, 9180,
+ 9181, 9182, 9183, 9183, 9184, 9185, 9186, 9187, 9187, 9188, 9189, 9190, 9178,
+ 9191, 9192, 9191, 9192, 9193, 9194, 7664, 9196, 9197, 9198, 9199, 7844, 9199,
+ 7844, 9200, 9201, 5101, 9203, 5104, 9205, 9206, 9204, 749, 1008, 9207, 9208,
+ 9209, 9210, 5112, 9212, 48, 9213, 49, 9211, 594, 765, 951, 1564, 9214, 9215,
+ 9216, 9217, 5120, 9219, 5123, 9221, 5126, 9223, 5129, 9225, 5132, 9227, 5135,
+ 9229, 5138, 9231, 5141, 9233, 5144, 9235, 9236, 9234, 9232, 9230, 9228, 9226,
+ 9224, 9222, 9220, 9237, 9238, 9239, 9240, 9241, 9242, 9243, 9244, 9245, 9246,
+ 9247, 5159, 9249, 9250, 9251, 9252, 9253, 5166, 9255, 9256, 9257, 9258, 9259,
+ 9260, 9254, 9248, 9261, 9262, 9263, 9264, 9265, 5179, 9267, 5182, 9269, 43,
+ 9270, 2, 9268, 9266, 9218, 340, 512, 763, 764, 1086, 9271, 9272, 9273, 9274,
+ 9275, 9276, 9277, 9278, 9279, 9280, 9281, 9282, 9282, 9283, 9284, 9285, 9286,
+ 9286, 9287, 9288, 5204, 9290, 5207, 9292, 5210, 9294, 5213, 9296, 5216, 9298,
+ 5219, 9300, 5222, 9302, 9303, 9301, 9299, 9297, 9295, 9293, 9291, 9304, 9305,
+ 9306, 9307, 9308, 9309, 9310, 9311, 9312, 5235, 9314, 5238, 9316, 5241, 9318,
+ 5244, 9320, 5247, 9322, 9323, 9321, 9319, 9317, 9315, 7282, 9324, 9325, 9326,
+ 9327, 9328, 9329, 9330, 5258, 9332, 5261, 9334, 5264, 9336, 5267, 9338, 9339,
+ 268, 1738, 9340, 9341, 9342, 5274, 9344, 9345, 9343, 9337, 9335, 9333, 9346,
+ 9347, 9348, 9349, 9350, 9351, 9352, 5285, 9354, 9355, 9356, 9357, 9358, 5292,
+ 9360, 9361, 9362, 9363, 9364, 5299, 9366, 5302, 9368, 5305, 9370, 5308, 9372,
+ 9373, 9371, 9369, 9367, 9365, 9359, 9374, 9375, 9376, 9377, 9378, 9379, 9380,
+ 9381, 5320, 9383, 9384, 9385, 9386, 9387, 9388, 9389, 9390, 9391, 9392, 9382,
+ 9353, 9331, 9313, 9393, 9394, 9395, 9396, 9397, 9398, 9399, 5339, 9401, 9402,
+ 9403, 9404, 9405, 9406, 1810, 9407, 9408, 9409, 5350, 9411, 9412, 9413, 9414,
+ 9415, 9416, 474, 475, 476, 9417, 9418, 9419, 9420, 9410, 7363, 7689, 9421,
+ 9422, 9423, 9424, 5366, 9426, 5369, 9428, 9429, 9430, 9431, 9432, 9433, 9434,
+ 9435, 9436, 9437, 9427, 457, 7371, 9438, 9439, 9440, 9441, 5385, 9443, 9444,
+ 229, 9445, 9446, 9447, 5392, 9449, 5395, 9451, 5398, 9453, 5401, 9455, 9456,
+ 9454, 9452, 9450, 9457, 9458, 9459, 9460, 9461, 9462, 9463, 9448, 7377, 9464,
+ 9465, 9466, 9467, 5416, 9469, 5419, 9471, 5422, 9473, 9474, 9472, 9470, 502,
+ 9475, 9476, 9477, 9478, 9479, 5431, 9481, 9482, 9483, 9484, 9485, 5438, 9487,
+ 5441, 9489, 9490, 9488, 9491, 9492, 9493, 9494, 5449, 9496, 9497, 9498, 9499,
+ 9500, 5456, 9502, 9503, 9504, 9505, 9506, 9507, 9508, 9509, 9510, 9511, 9501,
+ 9495, 9486, 9480, 9512, 9513, 9514, 9515, 9516, 9517, 9518, 5475, 9520, 9521,
+ 9522, 9523, 9524, 9525, 9526, 9527, 9528, 5486, 9530, 5489, 9532, 5492, 9534,
+ 5495, 9536, 9537, 9535, 9533, 9531, 9538, 9539, 9540, 9541, 9542, 9543, 9544,
+ 9545, 9546, 9547, 9548, 9529, 9549, 9550, 9551, 9552, 5514, 9554, 5517, 9556,
+ 9557, 9555, 7389, 9558, 9559, 9560, 9561, 5525, 9563, 5528, 9565, 5531, 9567,
+ 5534, 9569, 12, 9570, 245, 247, 248, 249, 250, 251, 448, 515, 9571, 9572,
+ 9573, 5541, 9575, 5544, 9577, 9578, 9576, 9574, 9568, 9566, 9564, 7404, 9579,
+ 9580, 9581, 9582, 9583, 9584, 9585, 9586, 5556, 9588, 5559, 9590, 5562, 9592,
+ 9593, 72, 9591, 73, 9589, 263, 9594, 9595, 9596, 9597, 9598, 5571, 9600,
+ 5574, 9602, 5577, 9604, 5580, 9606, 9607, 195, 951, 2024, 2026, 2027, 2028,
+ 9608, 9609, 9610, 5587, 9612, 5590, 9614, 5593, 9616, 9617, 9615, 9613, 9611,
+ 9605, 9603, 9601, 9599, 9618, 9619, 9620, 9621, 9622, 9623, 9624, 9625, 9626,
+ 9627, 9628, 9587, 9562, 9553, 9519, 9468, 9442, 9425, 9400, 1611, 7721, 7721,
+ 9629, 9630, 9631, 9632, 9633, 9634, 9635, 9636, 9637, 9638, 9639, 7418, 7419,
+ 9641, 9642, 2075, 9644, 2076, 9646, 9647, 9645, 9648, 9649, 9650, 9651, 2080,
+ 9653, 2081, 9655, 2082, 9657, 2083, 9659, 9660, 9658, 9656, 9654, 9661, 9662,
+ 9663, 9664, 9665, 9666, 2089, 9668, 2090, 9670, 9671, 9669, 9672, 9673, 9674,
+ 9675, 2094, 9677, 2095, 9679, 9680, 9678, 9681, 9682, 9683, 9684, 2099, 9686,
+ 9687, 9688, 9689, 9690, 2102, 9692, 2103, 9694, 2104, 9696, 9697, 9695, 9693,
+ 9698, 9699, 9700, 9701, 9702, 2109, 9704, 2110, 9706, 2111, 9708, 2112, 9710,
+ 2113, 9712, 2114, 9714, 2115, 9716, 9717, 9715, 9713, 9711, 9709, 9707, 9705,
+ 9718, 9719, 9720, 9721, 9722, 9723, 9724, 9725, 9726, 2124, 9728, 2125, 9730,
+ 2126, 9732, 2127, 9734, 2128, 9736, 2129, 9738, 2130, 9740, 2131, 9742, 9743,
+ 9741, 9739, 9737, 9735, 9733, 9731, 9729, 9744, 9745, 9746, 9747, 9748, 9749,
+ 9750, 9751, 9752, 9753, 9754, 9727, 9703, 9691, 9685, 9676, 9667, 9652, 9755,
+ 9756, 9757, 9758, 9759, 9760, 9761, 9762, 9763, 9764, 2150, 9766, 2151, 9768,
+ 2152, 9770, 2153, 9772, 2154, 9774, 2155, 9776, 2156, 9778, 9779, 9777, 9775,
+ 9773, 9771, 9769, 9767, 9780, 9781, 9782, 9783, 9784, 9785, 9786, 9787, 9788,
+ 2165, 9790, 2166, 9792, 2167, 9794, 2168, 9796, 2169, 9798, 2170, 9800, 9801,
+ 9799, 9797, 9795, 9793, 9791, 9802, 9803, 9804, 9805, 9806, 9807, 9808, 9809,
+ 2178, 9811, 2179, 9813, 2180, 9815, 2181, 9817, 2182, 9819, 9820, 9818, 9816,
+ 9814, 9812, 9821, 9822, 9823, 9824, 9825, 9826, 9827, 2189, 9829, 2190, 9831,
+ 2191, 9833, 2192, 9835, 9836, 9834, 9832, 9830, 9837, 9838, 9839, 9840, 9841,
+ 9842, 9843, 9828, 9810, 9789, 9844, 9845, 9846, 9847, 9848, 9849, 2203, 9851,
+ 9852, 9853, 9854, 9855, 2206, 9857, 2207, 9859, 2208, 9861, 2209, 9863, 9864,
+ 9862, 9860, 9858, 9865, 9866, 9867, 9868, 9869, 9870, 9871, 9856, 9872, 9873,
+ 9874, 9875, 2218, 9877, 2219, 9879, 2220, 9881, 9882, 9880, 9878, 9883, 9884,
+ 9885, 9886, 9887, 2225, 9889, 9890, 9891, 9892, 9893, 2228, 9895, 2229, 9897,
+ 9898, 9896, 9899, 9900, 9901, 9902, 2233, 9904, 9905, 9906, 9907, 9908, 9909,
+ 9903, 9894, 9888, 9910, 9911, 9912, 9913, 9914, 9915, 2241, 9917, 9918, 9919,
+ 9920, 9921, 9922, 9923, 9924, 9925, 2246, 9927, 2247, 9929, 2248, 9931, 9932,
+ 9930, 9928, 9933, 9934, 9935, 9936, 9937, 2253, 9939, 9940, 9941, 9942, 9943,
+ 9944, 9938, 9945, 9946, 9947, 9948, 9949, 9926, 9916, 9876, 9850, 9765, 9950,
+ 9951, 9952, 9953, 9954, 9955, 9956, 9957, 2266, 9959, 9960, 9961, 9962, 9963,
+ 9964, 9965, 9966, 9967, 2271, 9969, 9970, 9971, 9972, 9973, 2274, 9975, 9976,
+ 9977, 9978, 9979, 9980, 9974, 9981, 9982, 9983, 9984, 2280, 9986, 9987, 9988,
+ 9989, 9990, 9991, 9992, 9993, 9994, 9995, 9985, 9968, 9996, 9997, 9998, 9999,
+ 10000, 2289, 10002, 10003, 10004, 10005, 10006, 10007, 10008, 10009, 10010,
+ 2294, 10012, 10013, 10014, 10015, 10016, 10017, 10018, 10019, 10020, 10021,
+ 10011, 10022, 10023, 10024, 10025, 2302, 10027, 10028, 10029, 10030, 10031,
+ 10032, 10033, 10034, 10035, 10036, 10037, 10038, 10039, 2309, 10041, 10042,
+ 10043, 10044, 10045, 10046, 10047, 10048, 10049, 10050, 10051, 10052, 10053,
+ 2316, 10055, 10056, 10057, 10058, 10059, 10060, 10061, 10062, 10063, 2321,
+ 10065, 2322, 10067, 2323, 10069, 2324, 10071, 10072, 10070, 10068, 10066,
+ 10073, 10074, 10075, 10076, 10077, 10078, 10079, 10080, 10081, 10082, 10083,
+ 10064, 10084, 10085, 10086, 10087, 10088, 10054, 10040, 10026, 10001, 9958,
+ 10089, 10090, 10091, 10092, 10093, 10094, 10095, 10096, 10097, 10098, 10098,
+ 10099, 10100, 10101, 10102, 10102, 10103, 10104, 10105, 10106, 10106, 10107,
+ 10108, 10109, 10110, 10110, 10111, 10112, 10113, 9643, 9640, 10114, 10114,
+ 10115, 7424, 7425, 7426, 7427, 7428, 7725, 7726, 7431, 10116, 10117, 10118,
+ 10119, 10120, 10120, 10121, 10122, 6102, 10124, 10125, 10126, 10127, 10128,
+ 10129, 10130, 10130, 10131, 10132, 10133, 10134, 10134, 10135, 10136, 10137,
+ 10138, 10138, 10139, 10140, 10141, 10142, 10143, 10144, 10145, 10146, 10147,
+ 10148, 10149, 10150, 10151, 10152, 10153, 10154, 10155, 10156, 10157, 10158,
+ 10159, 10160, 6141, 10162, 10163, 10164, 10165, 10166, 10167, 10168, 10168,
+ 10169, 10170, 10171, 10172, 10172, 10173, 10174, 10175, 10176, 10176, 10177,
+ 10178, 10179, 10180, 10180, 10181, 10182, 10183, 10184, 10184, 10185, 10186,
+ 10187, 10188, 10189, 10190, 10191, 10192, 10193, 10194, 10195, 10196, 10197,
+ 10198, 10199, 10200, 10201, 10202, 10203, 10204, 10205, 10206, 10207, 10208,
+ 10208, 10209, 10210, 10211, 10212, 10212, 10213, 10214, 10215, 10216, 10216,
+ 10217, 10218, 10219, 10220, 10220, 10221, 10222, 10223, 10224, 10224, 10225,
+ 10226, 10227, 10228, 10228, 10229, 10230, 10231, 10232, 10232, 10233, 10234,
+ 10235, 749, 750, 10236, 10237, 10238, 6220, 10240, 10241, 10242, 10243, 10244,
+ 10245, 10246, 10246, 10247, 10248, 10249, 10250, 10250, 10251, 10252, 10253,
+ 10254, 10254, 10255, 10256, 10257, 10258, 10258, 10259, 10260, 10261, 10262,
+ 10262, 10263, 10264, 10265, 10266, 10267, 10268, 10269, 10270, 10270, 10271,
+ 10272, 10273, 10274, 10274, 10275, 10276, 10277, 10278, 10278, 10279, 10280,
+ 10281, 10282, 10282, 10283, 10284, 10285, 10286, 10286, 10287, 10288, 10289,
+ 10290, 10290, 10291, 10292, 10293, 10294, 10294, 10295, 10296, 10297, 10298,
+ 10299, 10300, 43, 10301, 44, 10239, 340, 763, 764, 765, 782, 791, 1086, 10302,
+ 10303, 10304, 10305, 10306, 10307, 10308, 10309, 10310, 10311, 10312, 10313,
+ 10314, 10315, 10316, 10317, 10318, 10319, 10320, 10321, 6304, 10323, 6307,
+ 10325, 6310, 10327, 6313, 10329, 6316, 10331, 10332, 10330, 10328, 10326,
+ 10324, 10334, 10333, 10335, 10336, 10337, 10338, 10339, 10340, 314, 9498,
+ 10341, 10342, 10343, 10344, 10345, 10346, 10347, 10348, 10349, 10349, 10350,
+ 10351, 10352, 10322, 10161, 10353, 10353, 10354, 10355, 10356, 10357, 6345,
+ 10359, 10360, 10361, 10361, 10362, 10363, 10364, 10365, 10366, 10367, 10368,
+ 10369, 10370, 10371, 10372, 10373, 10374, 10375, 6364, 10377, 10378, 10379,
+ 10380, 10381, 10382, 10383, 10384, 10385, 10386, 10387, 10388, 10389, 10390,
+ 10391, 10392, 10393, 10394, 10395, 10395, 10396, 10397, 10398, 10399, 10399,
+ 10400, 10401, 10402, 10403, 10403, 10404, 10405, 10406, 10407, 10408, 10409,
+ 10410, 10411, 10412, 10413, 10414, 10415, 10416, 10417, 6407, 10419, 10420,
+ 10421, 10422, 10423, 10424, 10425, 10426, 10427, 10428, 10429, 10430, 10431,
+ 10432, 750, 10433, 10434, 10435, 6426, 10437, 10438, 10439, 10440, 10441,
+ 10442, 10443, 10444, 10445, 10446, 10447, 10448, 10449, 10450, 10451, 10452,
+ 10453, 6445, 10455, 10456, 10457, 10458, 10459, 10460, 10461, 10462, 10463,
+ 10464, 10465, 10466, 10467, 10468, 10469, 10470, 10471, 6464, 10473, 10474,
+ 10475, 10476, 10477, 10478, 10479, 10480, 10481, 10482, 10483, 10484, 10485,
+ 10486, 10487, 10488, 10489, 6483, 10491, 10492, 10493, 10494, 10495, 10496,
+ 10497, 10498, 10499, 10500, 10501, 10502, 10503, 10504, 10505, 10506, 10507,
+ 6502, 10509, 10510, 10511, 10512, 10513, 10514, 10515, 10516, 10517, 10518,
+ 10519, 10520, 10521, 10522, 10523, 10524, 10525, 6521, 10527, 10528, 10529,
+ 10530, 10531, 10532, 10533, 10534, 10535, 10536, 10537, 10538, 10539, 10540,
+ 10541, 10542, 10543, 10334, 10545, 10546, 10547, 10548, 10549, 10550, 10551,
+ 10552, 10553, 10554, 10555, 10556, 10557, 10558, 6555, 10560, 10561, 10562,
+ 10563, 10564, 10565, 10566, 10567, 10568, 10569, 10570, 10571, 10572, 10573,
+ 10574, 10575, 10576, 40, 10577, 48, 10559, 49, 10544, 50, 10526, 3, 10508,
+ 41, 10490, 42, 10472, 43, 10454, 44, 10436, 10578, 10579, 10580, 10581, 10582,
+ 10583, 10584, 10585, 10586, 10587, 10588, 10589, 10590, 10591, 10592, 10593,
+ 10594, 10595, 10596, 10597, 10598, 10599, 10600, 10601, 10602, 10603, 10604,
+ 10605, 10418, 10606, 10607, 10608, 10609, 10610, 10376, 10358, 10611, 10612,
+ 10613, 10614, 10615, 10616, 10617, 10617, 10618, 10619, 10620, 10123, 9289,
+ 10621, 10622, 10623, 10621, 10622, 10623, 10624, 10625, 6623, 10627, 10628,
+ 10629, 10630, 10631, 10632, 10633, 10634, 10635, 10636, 10637, 10638, 10639,
+ 10640, 10641, 10641, 10642, 10643, 10644, 10645, 10646, 10647, 10648, 10649,
+ 10649, 10650, 10651, 10652, 10653, 10653, 10654, 10655, 7888, 10657, 10658,
+ 10659, 10660, 10661, 10662, 6661, 10664, 10665, 10666, 10666, 10667, 10668,
+ 10669, 10670, 10670, 10671, 10672, 10673, 10663, 10674, 10675, 10674, 10675,
+ 10676, 10677, 6677, 10679, 10680, 10681, 10682, 10683, 10684, 10685, 10686,
+ 10687, 10688, 10689, 10690, 10691, 10692, 10693, 10694, 10695, 6696, 10697,
+ 10698, 10699, 10700, 10701, 10702, 10703, 10704, 10705, 10706, 10707, 10708,
+ 10709, 10710, 10711, 10712, 10713, 10714, 10715, 10716, 10717, 10718, 10719,
+ 10720, 10721, 10722, 10723, 10724, 10725, 10726, 10727, 10728, 10729, 10730,
+ 10731, 10732, 10733, 10734, 10735, 10735, 10736, 10737, 10738, 10696, 10740,
+ 10739, 10740, 10741, 10742, 10743, 10678, 10744, 10745, 10744, 10745, 10746,
+ 10747, 6749, 10749, 10750, 512, 762, 763, 764, 765, 10751, 10752, 10753,
+ 10754, 10755, 10755, 10756, 10757, 10758, 10759, 10759, 10760, 10761, 10762,
+ 10763, 10763, 10764, 10765, 10766, 512, 762, 763, 764, 765, 10767, 10767,
+ 10768, 10769, 7417, 10771, 10772, 6775, 10774, 10775, 10776, 10776, 10777,
+ 10778, 10779, 10780, 10780, 10781, 10782, 10783, 10784, 10784, 10785, 10786,
+ 10787, 10788, 10788, 10789, 10790, 10791, 10773, 10793, 10792, 10794, 10795,
+ 10796, 10797, 10797, 10798, 10799, 6803, 10801, 10802, 10803, 10803, 10804,
+ 10805, 10806, 10807, 10807, 10808, 10809, 10810, 10811, 10811, 10812, 10813,
+ 10814, 10815, 10816, 10817, 10818, 10819, 10820, 10821, 10822, 10823, 10824,
+ 10825, 10826, 10827, 10828, 10829, 10830, 10831, 10832, 10833, 10834, 10835,
+ 10835, 10836, 10837, 10838, 10839, 10839, 10840, 10841, 10842, 10843, 10843,
+ 10844, 10845, 10846, 10847, 10847, 10848, 10849, 10850, 10851, 10851, 10852,
+ 10853, 10854, 10855, 10855, 10856, 10857, 10858, 10859, 10859, 10860, 10861,
+ 10862, 10863, 10863, 10864, 10865, 10866, 10867, 10867, 10868, 10869, 10870,
+ 10871, 10871, 10872, 10873, 10874, 10875, 10875, 10876, 10877, 10878, 10879,
+ 10879, 10880, 10881, 10882, 10883, 10884, 10885, 10886, 10887, 10887, 10888,
+ 10889, 674, 7656, 7656, 10891, 10892, 8129, 10894, 10895, 10896, 10897, 10897,
+ 10898, 10899, 10900, 10901, 10901, 10902, 10903, 10904, 10905, 10905, 10906,
+ 10907, 10908, 10909, 10909, 10910, 10911, 8155, 10913, 10914, 10915, 10916,
+ 10916, 10917, 10918, 10919, 10920, 10920, 10921, 10922, 975, 10126, 10924,
+ 10925, 10926, 10927, 10927, 10928, 10929, 7482, 7482, 10931, 10932, 10933,
+ 10934, 10934, 10935, 10936, 10937, 10938, 10939, 10940, 8185, 8186, 8185,
+ 8186, 8190, 10942, 10943, 10944, 10945, 10946, 10947, 8198, 8199, 8198, 8199,
+ 8203, 10949, 10950, 10951, 10952, 10953, 10954, 10955, 10948, 1008, 10956,
+ 10957, 10958, 10959, 10960, 1008, 10956, 10957, 10961, 10962, 10963, 10964,
+ 10965, 10965, 10966, 10967, 10968, 2, 10941, 10930, 10969, 10970, 10971,
+ 10969, 10970, 10971, 10972, 10973, 10793, 8258, 10975, 10976, 10977, 10978,
+ 10979, 10980, 10981, 10982, 10982, 10983, 10984, 10985, 10986, 10986, 10987,
+ 10988, 10989, 10990, 10990, 10991, 10992, 10993, 10994, 10994, 10995, 10996,
+ 10997, 10998, 10998, 10999, 11000, 11001, 11002, 11002, 11003, 11004, 11005,
+ 10974, 10923, 10912, 10893, 10890, 10800, 10770, 10748, 10656, 10626, 9202,
+ 9195, 9155, 8330, 7262, 7228, 7041, 10641, 11006, 11007, 11008, 11009, 11010,
+ 11011, 11012, 11013, 11014, 11015, 11016, 11017, 11018, 11019, 11020, 11021,
+ 11022, 10641, 11006, 11007, 11008, 11009, 11010, 11011, 11012, 11013, 11014,
+ 11015, 11016, 11017, 11018, 11019, 11020, 11021, 11022, 7669, 11023, 8061,
+ 6638, 7009, 7010, 7011, 7012, 7013, 7014, 7015, 7016, 7017, 7018, 7019, 7020,
+ 7021, 7022, 7023, 7024, 7025, 6638, 7009, 7010, 7011, 7012, 7013, 7014, 7015,
+ 7016, 7017, 7018, 7019, 7020, 7021, 7022, 7023, 7024, 7025, 3506, 7026, 3914,
+ 11024, 11025, 2848, 2848, 11027, 11027, 11028, 11028, 11029, 11029, 11030,
+ 11030, 11031, 11031, 11032, 11032, 11033, 11034, 11034, 11035, 11035, 11036,
+ 11036, 11037, 11037, 11038, 11038, 11039, 11039, 11040, 11040, 11041, 11041,
+ 11042, 11043, 11043, 11044, 11044, 2934, 2931, 11046, 11047, 11048, 11049,
+ 11050, 11051, 11052, 11052, 11053, 11054, 11054, 2982, 2982, 11056, 11056,
+ 3004, 11058, 11059, 11060, 11060, 2997, 2997, 11062, 11062, 11061, 11061,
+ 11057, 11057, 11055, 11055, 11045, 11045, 3035, 3035, 11067, 11067, 11068,
+ 11068, 11069, 11069, 11070, 11071, 11072, 11072, 3077, 3070, 3089, 11076,
+ 11074, 11075, 11077, 11078, 11079, 11080, 11080, 11081, 11081, 3121, 3121,
+ 11083, 11083, 11084, 11084, 3162, 3239, 3242, 3245, 3228, 3225, 3222, 3219,
+ 2830, 3216, 3209, 3202, 2823, 3195, 3188, 3176, 3179, 3173, 11086, 3155,
+ 11077, 11078, 3146, 3143, 3140, 3146, 3143, 3140, 11033, 11033, 11097, 11097,
+ 11098, 11098, 11099, 11099, 11100, 11100, 11101, 11101, 11102, 11102, 11103,
+ 11103, 11104, 11104, 11105, 11105, 11062, 11062, 11106, 11106, 11070, 11109,
+ 11109, 3332, 3332, 11111, 11111, 11112, 11112, 11113, 11113, 11114, 11114,
+ 11115, 11115, 11116, 11116, 11117, 11117, 11118, 11118, 11119, 11119, 11120,
+ 11120, 11121, 11121, 3329, 3329, 3383, 3383, 11122, 11122, 11123, 11123,
+ 3400, 11125, 543, 543, 11126, 3419, 3419, 11128, 11128, 11129, 11129, 11130,
+ 11130, 11131, 11131, 11132, 11132, 11133, 11133, 11134, 11134, 11135, 11135,
+ 11136, 11136, 11137, 11137, 11138, 11138, 11139, 11139, 3478, 3478, 11141,
+ 11141, 11142, 11142, 11143, 11143, 11144, 11144, 11140, 11140, 2841, 11147,
+ 3514, 3162, 3553, 3553, 11150, 11150, 3242, 3546, 3222, 3225, 3228, 3538,
+ 3535, 3195, 3179, 3176, 3525, 11149, 11090, 11095, 11151, 11151, 11155, 11156,
+ 11152, 11153, 11154, 11148, 11148, 3578, 11159, 11160, 11161, 11162, 11163,
+ 11163, 11164, 11164, 3613, 11166, 11167, 3635, 3635, 11169, 11169, 11170,
+ 11170, 11171, 11171, 11172, 11172, 3662, 3662, 11174, 11174, 3677, 3677,
+ 11176, 11176, 11177, 11177, 11178, 11178, 11175, 11175, 11173, 11173, 11064,
+ 11064, 512, 762, 763, 764, 765, 11179, 11180, 11181, 11182, 11179, 11180,
+ 11181, 11182, 11183, 11183, 11184, 11184, 11185, 11185, 11186, 11186, 11168,
+ 11165, 11187, 11187, 11188, 11189, 11190, 11190, 11157, 11158, 11157, 11158,
+ 3734, 3745, 11194, 11195, 11196, 11197, 11198, 11199, 11200, 11200, 11193,
+ 11193, 3785, 3785, 11203, 11203, 11204, 11204, 11205, 11205, 11206, 11206,
+ 11207, 3816, 3816, 11209, 11209, 11210, 11210, 11211, 11211, 11212, 11212,
+ 11213, 11213, 11214, 11214, 11215, 11215, 11216, 11216, 11217, 11217, 11218,
+ 11218, 3867, 3867, 11220, 11220, 11221, 11221, 11222, 11222, 11223, 11223,
+ 11224, 11224, 11225, 11225, 11226, 11226, 11227, 11227, 11228, 11228, 2823,
+ 11230, 11231, 11231, 11232, 11232, 11233, 11233, 11234, 11234, 11235, 11235,
+ 11236, 11236, 11237, 11237, 11229, 11219, 3952, 11241, 11238, 11238, 11239,
+ 11240, 11208, 11242, 11242, 11243, 11244, 3973, 3973, 11246, 11246, 11247,
+ 11247, 11248, 11248, 11249, 11249, 4000, 11251, 11252, 11252, 4019, 4019,
+ 11254, 11254, 11255, 11255, 4038, 4038, 4041, 4041, 4053, 4053, 4056, 4056,
+ 11258, 11257, 1008, 11259, 11260, 11261, 11261, 11256, 11256, 4082, 4093,
+ 4093, 11265, 11265, 11266, 11266, 11267, 11267, 11268, 11268, 11269, 11264,
+ 11271, 11270, 11272, 11272, 11273, 11273, 11274, 11274, 11275, 11275, 11276,
+ 11276, 11277, 11277, 11262, 11263, 11262, 11263, 11253, 11253, 11250, 11250,
+ 11245, 11245, 11201, 11202, 11201, 11202, 11191, 11192, 11191, 11192, 11145,
+ 11145, 11146, 11146, 11127, 11127, 11124, 11124, 11110, 11110, 11107, 11107,
+ 11108, 11108, 4164, 4164, 11290, 11290, 11291, 11291, 11292, 11292, 11293,
+ 11293, 11278, 11279, 11280, 11281, 11282, 11283, 11284, 11285, 11286, 11287,
+ 11288, 11289, 11278, 11279, 11280, 11281, 11282, 11283, 11284, 11285, 11286,
+ 11287, 11288, 11289, 11088, 11089, 11090, 11091, 11092, 11095, 11087, 11093,
+ 11094, 11096, 11085, 11085, 11082, 11082, 4229, 4229, 11299, 11299, 11300,
+ 11300, 4195, 4195, 4256, 4253, 4250, 4247, 4244, 11301, 4226, 4223, 4220,
+ 4217, 4214, 4211, 4208, 4205, 4202, 11302, 4256, 4253, 4250, 4247, 4244,
+ 11301, 4226, 4223, 4220, 4217, 4214, 4211, 4208, 4205, 4202, 11302, 4282,
+ 4282, 11304, 11304, 11305, 11305, 11306, 11306, 11307, 11307, 11303, 4310,
+ 4310, 11310, 11310, 11311, 11311, 11312, 11313, 11314, 11315, 4345, 4345,
+ 11317, 11317, 11318, 11318, 11319, 11320, 11321, 11322, 11323, 11316, 4385,
+ 4385, 11326, 11326, 11327, 11327, 11328, 11329, 11330, 11331, 11332, 4424,
+ 4424, 11334, 11334, 11335, 11335, 11336, 11337, 11338, 11339, 4459, 4459,
+ 11341, 11341, 11342, 11342, 11343, 11344, 11345, 11346, 11347, 11340, 4499,
+ 4499, 11350, 11350, 11351, 11351, 11352, 11353, 11354, 11355, 11356, 4538,
+ 4538, 11358, 11358, 11359, 11359, 11360, 11361, 11362, 11363, 11364, 11365,
+ 11365, 11366, 11366, 11367, 11367, 11368, 11368, 11369, 11369, 11370, 11370,
+ 11371, 11371, 11372, 11372, 11373, 11373, 11374, 11374, 4617, 4617, 11376,
+ 11376, 11377, 11377, 11378, 11379, 11380, 11381, 4652, 4652, 11383, 11383,
+ 11384, 11384, 11385, 11386, 11387, 11388, 11389, 11382, 11375, 11375, 4693,
+ 4693, 11393, 11393, 11394, 11394, 11395, 4716, 4716, 11397, 11397, 11398,
+ 11398, 11399, 11400, 11401, 11402, 11402, 11403, 11403, 11404, 11404, 4765,
+ 4765, 11406, 11406, 11407, 11407, 11408, 11409, 11410, 11411, 11412, 11412,
+ 11349, 11349, 11324, 11324, 11405, 11405, 11396, 11396, 11390, 11391, 11392,
+ 11390, 11391, 11392, 11357, 11357, 11349, 11349, 11348, 11348, 11333, 11333,
+ 11324, 11324, 11325, 11325, 11308, 11309, 11308, 11309, 11413, 11414, 11415,
+ 11416, 11417, 11418, 11419, 11420, 11421, 11422, 11423, 11413, 11414, 11415,
+ 11416, 11417, 11418, 11419, 11420, 11421, 11422, 11423, 92, 11424, 11425,
+ 11425, 11426, 11426, 11427, 11427, 4834, 11429, 11430, 11431, 11431, 4857,
+ 11433, 11434, 11435, 11435, 4886, 4886, 11437, 3329, 4883, 4880, 11437, 3329,
+ 4883, 4880, 3383, 3383, 11438, 11117, 11440, 11440, 11441, 11441, 11442,
+ 11442, 11443, 11444, 11444, 11445, 11445, 11446, 11446, 11447, 11447, 11448,
+ 11448, 11449, 11449, 11450, 11451, 11451, 11452, 11452, 11453, 11453, 11454,
+ 11454, 11455, 11455, 11456, 11456, 11457, 11458, 11458, 11459, 11459, 11460,
+ 11460, 11461, 11461, 11462, 11463, 11463, 11464, 11464, 11465, 11465, 11466,
+ 11466, 11467, 11468, 11468, 11469, 11469, 11470, 11470, 11471, 11471, 11472,
+ 11472, 11473, 11473, 11439, 11439, 11436, 11436, 11432, 11432, 11428, 11428,
+ 11159, 11479, 11480, 11481, 11482, 49, 782, 11484, 11484, 11485, 11485, 11486,
+ 11486, 543, 543, 11483, 11126, 49, 782, 11489, 11489, 11490, 11490, 11491,
+ 11491, 11145, 48, 543, 750, 49, 749, 1008, 5104, 5101, 5166, 5159, 5144,
+ 5141, 5138, 5135, 5132, 5129, 5126, 5123, 5120, 43, 437, 2, 591, 835, 11496,
+ 11497, 11498, 594, 765, 951, 1564, 11494, 11495, 340, 512, 763, 764, 1086,
+ 11499, 11500, 11501, 11502, 11503, 11504, 11504, 268, 1738, 5267, 5292, 5285,
+ 5320, 11509, 5308, 5305, 5302, 5299, 11507, 11508, 5274, 11506, 5264, 5261,
+ 5258, 3089, 5247, 5244, 5241, 5238, 5235, 5222, 5219, 5216, 5213, 5210, 5207,
+ 5204, 5339, 5350, 474, 475, 476, 11516, 1810, 11515, 5369, 11519, 5401, 5398,
+ 5395, 5392, 229, 5385, 5456, 11523, 5449, 5441, 5438, 5431, 502, 5422, 5419,
+ 5416, 5475, 5495, 5492, 5489, 5486, 11530, 11529, 12, 1964, 245, 247, 248,
+ 249, 250, 251, 448, 515, 11533, 72, 1985, 73, 1982, 1023, 1024, 1025, 195,
+ 951, 2024, 2026, 2027, 2028, 11537, 263, 5562, 11535, 11536, 5593, 5590,
+ 5587, 11538, 5577, 5574, 5571, 11539, 3225, 5544, 5541, 11534, 5531, 5528,
+ 5525, 3209, 5517, 5514, 11531, 11532, 11524, 11525, 11526, 11527, 11528,
+ 3195, 11521, 11522, 457, 3188, 11520, 5366, 3179, 3525, 11517, 11518, 11510,
+ 11511, 11512, 11513, 11514, 2131, 2130, 2129, 2128, 2127, 2126, 2125, 2124,
+ 2115, 2114, 2113, 2112, 2111, 2110, 2109, 2104, 2103, 2102, 2099, 2095, 2094,
+ 2090, 2089, 2083, 2082, 2081, 2080, 2076, 2075, 2192, 2191, 2190, 2189, 2182,
+ 2181, 2180, 2179, 2178, 2170, 2169, 2168, 2167, 2166, 2165, 2156, 2155, 2154,
+ 2153, 2152, 2151, 2150, 2209, 2208, 2207, 2206, 2203, 2233, 2229, 2228, 2225,
+ 2220, 2219, 2218, 2241, 2253, 2248, 2247, 2246, 11568, 11569, 11567, 11563,
+ 11564, 11565, 11566, 11561, 11562, 11557, 11558, 11559, 11560, 11549, 11550,
+ 11551, 11552, 11553, 11554, 11555, 11556, 2266, 2274, 2271, 2280, 11579,
+ 11577, 11578, 11576, 2289, 2294, 11584, 11583, 2302, 11587, 2309, 11589,
+ 2316, 2324, 2323, 2322, 2321, 11592, 11591, 11593, 11594, 11590, 11588, 11585,
+ 11586, 11580, 11581, 11582, 11570, 11571, 11572, 11573, 11574, 11575, 11595,
+ 11596, 11597, 11598, 11599, 11600, 11601, 11601, 11602, 11602, 11603, 11603,
+ 11604, 11604, 3242, 3239, 1611, 11151, 11151, 11540, 11541, 11542, 11543,
+ 11544, 11545, 11546, 11547, 11548, 11605, 11605, 11606, 11088, 11089, 11090,
+ 11091, 11092, 11155, 11156, 11095, 11607, 6102, 11609, 11609, 11610, 11610,
+ 11611, 11611, 11612, 11613, 11614, 11615, 6141, 11617, 11617, 11618, 11618,
+ 11619, 11619, 11620, 11620, 11621, 11621, 11622, 11623, 11624, 11625, 11626,
+ 11627, 11627, 11628, 11628, 11629, 11629, 11630, 11630, 11631, 11631, 11632,
+ 11632, 11633, 11633, 6220, 11635, 11635, 11636, 11636, 11637, 11637, 11638,
+ 11638, 11639, 11639, 11640, 11641, 11641, 11642, 11642, 11643, 11643, 11644,
+ 11644, 11645, 11645, 11646, 11646, 11647, 11647, 43, 11648, 44, 749, 750,
+ 11634, 340, 763, 764, 765, 782, 791, 1086, 11649, 11650, 11651, 11652, 11653,
+ 6313, 6316, 6310, 6307, 6304, 314, 5449, 11655, 11656, 11657, 11657, 11654,
+ 11616, 6345, 6345, 11661, 11662, 6364, 11664, 11665, 11666, 11667, 11667,
+ 11668, 11668, 11669, 11669, 11670, 11671, 6407, 11673, 11674, 6426, 11676,
+ 11677, 6445, 11679, 11680, 6464, 11682, 11683, 6483, 11685, 11686, 6502,
+ 11688, 11689, 6521, 11691, 11692, 6313, 11694, 11695, 6555, 11697, 11698,
+ 40, 11699, 48, 11696, 49, 11693, 50, 11690, 3, 11687, 41, 11684, 42, 11681,
+ 43, 11678, 44, 750, 11675, 11700, 11701, 11702, 11703, 11704, 11705, 11706,
+ 11707, 11708, 11709, 11710, 11711, 11712, 11672, 11713, 11714, 11663, 11658,
+ 11658, 11659, 11660, 11715, 11716, 11717, 791, 791, 11719, 11719, 11720,
+ 11720, 674, 11722, 11722, 11723, 11723, 11724, 11724, 11725, 11725, 11726,
+ 11726, 11727, 11721, 11721, 11718, 11718, 11608, 11608, 11505, 11505, 6623,
+ 11733, 11734, 11735, 11735, 11736, 11737, 11737, 3734, 6661, 6661, 11740,
+ 11740, 11739, 6677, 11743, 11744, 6696, 11746, 11747, 11748, 11749, 11750,
+ 11751, 11752, 11753, 11754, 11754, 11745, 11756, 11755, 11756, 11741, 11742,
+ 11741, 11742, 512, 762, 763, 764, 765, 6749, 11759, 11759, 11760, 11760,
+ 11761, 11761, 6775, 6775, 11763, 11763, 11764, 11764, 11765, 11765, 3245,
+ 11767, 11766, 6803, 6803, 11769, 11769, 11770, 11770, 11771, 11772, 11773,
+ 11774, 11775, 11776, 11776, 11777, 11777, 11778, 11778, 11779, 11779, 11780,
+ 11780, 11781, 11781, 11782, 11782, 11783, 11783, 11784, 11784, 11785, 11785,
+ 11786, 11786, 11787, 11787, 11788, 1564, 11790, 11791, 11792, 11793, 11793,
+ 11793, 11794, 11795, 11795, 11795, 11247, 11797, 11797, 11798, 11798, 11799,
+ 11799, 11252, 11801, 11801, 975, 6102, 11107, 11107, 11804, 11804, 4041,
+ 4038, 4041, 4038, 11257, 4056, 4053, 4056, 4053, 11258, 11807, 11806, 1008,
+ 11808, 11809, 1008, 11808, 11809, 11810, 11811, 11811, 2, 11805, 11803, 11803,
+ 11767, 11271, 11815, 11816, 11816, 11817, 11817, 11818, 11818, 11819, 11819,
+ 11820, 11820, 268, 268, 11822, 11822, 11823, 11823, 11824, 11824, 11825,
+ 11825, 11826, 11826, 11827, 11827, 11828, 11828, 11829, 11830, 11830, 11831,
+ 11831, 11832, 11832, 11833, 11833, 11834, 11834, 11835, 11835, 11836, 11836,
+ 11837, 11837, 11838, 11839, 11839, 11840, 11840, 314, 13491, 11842, 11843,
+ 11844, 11845, 11846, 11847, 11848, 11849, 11850, 11850, 11850, 11851, 11852,
+ 11852, 11852, 268, 268, 11854, 11854, 11855, 11855, 11856, 11856, 11857,
+ 11857, 11858, 11858, 11859, 11859, 11860, 11860, 11861, 11862, 11862, 11863,
+ 11863, 11864, 11864, 11865, 11865, 11866, 11866, 11867, 11867, 11868, 11868,
+ 11869, 11869, 11870, 11871, 11871, 11872, 11872, 340, 340, 11874, 11874,
+ 11875, 11875, 340, 340, 11877, 11877, 11878, 11878, 314, 314, 314, 340, 11881,
+ 11882, 11883, 11884, 11884, 11884, 11880, 11880, 11880, 11886, 11886, 11886,
+ 11885, 11885, 11885, 11879, 11879, 11876, 11876, 11873, 11873, 11853, 11853,
+ 11853, 11841, 11841, 437, 437, 11893, 11893, 11894, 11894, 11895, 11895,
+ 246, 246, 251, 251, 448, 448, 457, 481, 482, 314, 229, 493, 494, 495, 507,
+ 526, 523, 245, 246, 247, 248, 249, 250, 251, 515, 238, 237, 236, 235, 234,
+ 263, 535, 11910, 11906, 11907, 11909, 11908, 11905, 11903, 11904, 11902,
+ 11901, 11900, 11897, 11898, 11899, 11897, 11898, 11899, 11829, 11829, 11919,
+ 11919, 11920, 11920, 11921, 11921, 11922, 11922, 11923, 11923, 11924, 11924,
+ 11925, 11925, 11926, 11926, 11927, 11927, 314, 314, 11929, 11929, 11930,
+ 11930, 11928, 11928, 369, 369, 11933, 11933, 11934, 11934, 11935, 11935,
+ 11936, 11936, 11937, 11938, 11938, 594, 594, 11940, 11940, 11941, 11941,
+ 11942, 11942, 11943, 11943, 11944, 11944, 11945, 11945, 11946, 11946, 11947,
+ 11947, 11948, 11948, 11949, 11949, 11950, 11950, 621, 621, 11951, 11951,
+ 591, 591, 11952, 11953, 11954, 11952, 11953, 11954, 11955, 11955, 632, 11957,
+ 11958, 543, 543, 11959, 643, 643, 11961, 11961, 11962, 11962, 11963, 11963,
+ 11964, 11964, 11965, 11965, 11966, 11966, 11967, 11967, 11968, 11968, 11969,
+ 11969, 11970, 11970, 11971, 11971, 11972, 11972, 11973, 11973, 11974, 11974,
+ 263, 11976, 11977, 715, 715, 11979, 11979, 388, 393, 11982, 11981, 401, 402,
+ 403, 404, 405, 406, 407, 408, 409, 410, 11985, 11986, 11983, 11984, 694,
+ 462, 11989, 11990, 474, 475, 476, 469, 470, 701, 502, 518, 519, 245, 246,
+ 248, 249, 250, 251, 448, 515, 235, 237, 238, 540, 535, 536, 11998, 11999,
+ 11906, 11907, 11995, 11996, 11997, 11994, 11904, 11901, 11992, 11993, 11991,
+ 11900, 11987, 11988, 11980, 11980, 12000, 12001, 12002, 12003, 12004, 12005,
+ 12006, 12007, 12007, 11978, 11978, 767, 767, 12010, 12010, 12011, 12011,
+ 12012, 12012, 12013, 12013, 12014, 12014, 782, 782, 12016, 12016, 12017,
+ 12017, 11729, 11729, 12018, 12018, 12015, 12015, 11888, 11888, 512, 762,
+ 763, 764, 765, 12019, 12020, 12021, 12022, 12019, 12020, 12021, 12022, 12023,
+ 12023, 12024, 12024, 12025, 12025, 437, 12027, 12028, 12029, 12030, 12031,
+ 12032, 12032, 12033, 12033, 749, 750, 12035, 12036, 12037, 12038, 12034,
+ 12026, 12026, 12039, 12040, 12041, 12041, 12042, 12042, 12008, 12009, 12008,
+ 12009, 828, 828, 12045, 835, 12047, 12048, 12049, 12050, 12051, 12052, 12053,
+ 12054, 12054, 12046, 12046, 236, 12057, 507, 507, 12059, 12059, 12060, 12060,
+ 12061, 12061, 12062, 12062, 12063, 12063, 12064, 11903, 12066, 12067, 12067,
+ 12068, 12068, 12069, 12069, 12070, 12070, 12071, 12071, 12072, 12072, 234,
+ 234, 12074, 12074, 12075, 12075, 12076, 12076, 12077, 12077, 12078, 12078,
+ 12079, 12079, 12080, 12080, 12081, 12081, 12082, 12082, 12083, 12083, 12084,
+ 12084, 247, 247, 12086, 12086, 12087, 12087, 12088, 12088, 12089, 12089,
+ 12090, 12090, 12091, 12091, 12092, 12092, 12093, 12093, 12094, 12094, 12095,
+ 12095, 12096, 12085, 12073, 12073, 12097, 12098, 12099, 12099, 12065, 12058,
+ 12102, 12102, 12100, 12101, 951, 951, 12104, 12104, 12105, 12105, 12106,
+ 12106, 12107, 12107, 12108, 12108, 621, 12110, 12111, 12112, 12112, 975,
+ 975, 12114, 12114, 12115, 12115, 12116, 12116, 989, 989, 986, 986, 12118,
+ 12119, 12118, 12119, 1000, 1000, 997, 997, 12121, 12122, 12121, 12122, 12123,
+ 12120, 1008, 12124, 12125, 12126, 12126, 12117, 12117, 1026, 1025, 1024,
+ 1023, 1022, 1021, 1020, 1019, 1018, 12129, 1041, 1042, 12131, 12131, 12132,
+ 12132, 12133, 12133, 12134, 12134, 12135, 12135, 12136, 12130, 12138, 12137,
+ 12139, 12139, 12140, 12140, 12141, 12141, 12142, 12142, 12143, 12143, 12144,
+ 12144, 12127, 12128, 12127, 12128, 12113, 12113, 12109, 12109, 12103, 12103,
+ 12055, 12056, 12055, 12056, 12043, 12044, 12043, 12044, 11727, 11975, 11727,
+ 11975, 11960, 11960, 11956, 11956, 11939, 11939, 11931, 11932, 11931, 11932,
+ 1086, 1086, 12157, 12157, 12158, 12158, 12159, 12159, 12160, 12160, 12161,
+ 12161, 12145, 12146, 12147, 12148, 12149, 12150, 12151, 12152, 12153, 12154,
+ 12155, 12156, 12145, 12146, 12147, 12148, 12149, 12150, 12151, 12152, 12153,
+ 12154, 12155, 12156, 11913, 11914, 11915, 11911, 11912, 11916, 11917, 11918,
+ 11896, 11896, 493, 540, 518, 518, 12167, 12167, 12168, 12168, 518, 518, 457,
+ 457, 457, 457, 536, 536, 470, 470, 12169, 12169, 457, 457, 474, 474, 519,
+ 519, 495, 495, 476, 476, 494, 494, 470, 470, 482, 482, 475, 475, 457, 457,
+ 502, 502, 502, 502, 12166, 12166, 12170, 12171, 12172, 12173, 12174, 12175,
+ 12176, 12177, 12178, 12179, 12180, 12181, 12182, 12183, 12184, 12170, 12171,
+ 12172, 12173, 12174, 12175, 12176, 12177, 12178, 12179, 12180, 12181, 12182,
+ 12183, 12184, 12185, 402, 402, 12187, 12187, 12188, 12188, 12189, 12189,
+ 12190, 12191, 12192, 12193, 403, 403, 12195, 12195, 12196, 12196, 12197,
+ 12197, 12198, 12199, 12200, 12201, 12202, 12194, 406, 406, 12205, 12205,
+ 12206, 12206, 12207, 12207, 12208, 12209, 12210, 12211, 12212, 404, 404,
+ 12214, 12214, 12215, 12215, 12216, 12216, 12217, 12218, 12219, 12220, 408,
+ 408, 12222, 12222, 12223, 12223, 12224, 12224, 12225, 12226, 12227, 12228,
+ 12229, 12221, 407, 407, 12232, 12232, 12233, 12233, 12234, 12234, 12235,
+ 12236, 12237, 12238, 12239, 409, 409, 12241, 12241, 12242, 12242, 12243,
+ 12243, 12244, 12245, 12246, 12247, 12248, 12249, 12249, 12250, 12250, 12251,
+ 12251, 12252, 12252, 12253, 12253, 12254, 12254, 12255, 12255, 12256, 12256,
+ 12257, 12257, 12258, 12258, 410, 410, 12260, 12260, 12261, 12261, 12262,
+ 12262, 12263, 12264, 12265, 12266, 405, 405, 12268, 12268, 12269, 12269,
+ 12270, 12270, 12271, 12272, 12273, 12274, 12275, 12267, 12259, 12259, 481,
+ 481, 12279, 12279, 481, 481, 12281, 12281, 12282, 12282, 12280, 12280, 12283,
+ 12283, 12284, 12285, 393, 393, 12287, 12287, 12288, 12288, 12289, 12289,
+ 12290, 12291, 12292, 12293, 12293, 12294, 12294, 393, 393, 12296, 12296,
+ 12297, 12297, 12298, 12298, 12299, 12300, 12301, 12302, 12302, 12303, 12303,
+ 12304, 12304, 12295, 12295, 518, 518, 12307, 12307, 12308, 12308, 518, 518,
+ 457, 457, 457, 457, 536, 536, 470, 470, 12309, 12309, 474, 474, 519, 519,
+ 495, 495, 476, 476, 494, 494, 470, 470, 482, 482, 475, 475, 457, 457, 502,
+ 502, 502, 502, 12166, 12166, 457, 457, 701, 701, 701, 701, 701, 701, 12310,
+ 12311, 12312, 12313, 12314, 12315, 12324, 12316, 12317, 12318, 12319, 12320,
+ 12325, 12321, 12322, 12323, 12310, 12311, 12312, 12313, 12314, 12315, 12324,
+ 12316, 12317, 12318, 12319, 12320, 12325, 12321, 12322, 12323, 12324, 12325,
+ 523, 523, 12327, 12327, 12328, 12328, 12329, 12329, 12330, 12330, 523, 523,
+ 12332, 12332, 12333, 12333, 12334, 12334, 12335, 12335, 12336, 12336, 12331,
+ 12331, 12326, 402, 402, 12340, 12340, 12341, 12341, 12342, 12342, 12343,
+ 12344, 12345, 12346, 403, 403, 12348, 12348, 12349, 12349, 12350, 12350,
+ 12351, 12352, 12353, 12354, 12355, 12347, 406, 406, 12358, 12358, 12359,
+ 12359, 12360, 12360, 12361, 12362, 12363, 12364, 12365, 404, 404, 12367,
+ 12367, 12368, 12368, 12369, 12369, 12370, 12371, 12372, 12373, 408, 408,
+ 12375, 12375, 12376, 12376, 12377, 12377, 12378, 12379, 12380, 12381, 12382,
+ 12374, 407, 407, 12385, 12385, 12386, 12386, 12387, 12387, 12388, 12389,
+ 12390, 12391, 12392, 409, 409, 12394, 12394, 12395, 12395, 12396, 12396,
+ 12397, 12398, 12399, 12400, 12401, 12402, 12402, 12403, 12403, 12404, 12404,
+ 12405, 12405, 12406, 12406, 12407, 12407, 12408, 12408, 12409, 12409, 12410,
+ 12410, 12411, 12411, 410, 410, 12413, 12413, 12414, 12414, 12415, 12415,
+ 12416, 12417, 12418, 12419, 405, 405, 12421, 12421, 12422, 12422, 12423,
+ 12423, 12424, 12425, 12426, 12427, 12428, 12420, 12412, 12412, 401, 401,
+ 12432, 12432, 12433, 12433, 12434, 12434, 12435, 12436, 12437, 12438, 401,
+ 401, 12440, 12440, 12441, 12441, 12442, 12442, 12443, 12444, 12445, 12446,
+ 12447, 12447, 12231, 12231, 12439, 12439, 12384, 12384, 12356, 12356, 12429,
+ 12430, 12431, 12429, 12430, 12431, 12393, 12393, 12384, 12384, 12383, 12383,
+ 12366, 12366, 12356, 12356, 12357, 12357, 12338, 12339, 12337, 12338, 12339,
+ 12339, 12203, 12203, 12305, 12305, 12306, 12286, 12286, 12286, 12276, 12277,
+ 12278, 12276, 12277, 12278, 12240, 12240, 12231, 12231, 12230, 12230, 12213,
+ 12213, 12203, 12203, 12204, 12204, 12186, 12186, 12450, 12451, 12452, 12460,
+ 12461, 12453, 12454, 12455, 12456, 12457, 12458, 12448, 12449, 12450, 12451,
+ 12452, 12460, 12461, 12453, 12454, 12455, 12456, 12457, 12458, 12459, 12460,
+ 12461, 12462, 12463, 12464, 12465, 12466, 12467, 92, 12468, 12469, 12469,
+ 12469, 12470, 12470, 12470, 12471, 12471, 12471, 340, 782, 12473, 12474,
+ 12475, 12476, 12476, 12476, 782, 12478, 12479, 12480, 12481, 12481, 12481,
+ 621, 12483, 12483, 12483, 591, 591, 591, 594, 594, 594, 632, 632, 632, 621,
+ 621, 621, 12484, 12485, 12486, 12487, 12484, 12484, 12485, 12486, 12487,
+ 12485, 12486, 12487, 12488, 12488, 12488, 12489, 594, 594, 12491, 12491,
+ 12492, 12492, 12493, 12493, 12494, 12494, 12495, 12495, 12496, 12496, 12497,
+ 12497, 12498, 12499, 12499, 12500, 12500, 12501, 12501, 12502, 12503, 12503,
+ 12504, 12504, 12505, 12505, 12506, 12506, 12507, 12507, 12508, 12508, 12509,
+ 12510, 12510, 12511, 12511, 12512, 12512, 12513, 12513, 12514, 12514, 12515,
+ 12515, 12516, 12517, 12517, 12518, 12518, 12519, 12519, 12520, 12520, 12521,
+ 12522, 12522, 12523, 12523, 12524, 12524, 12525, 12525, 12526, 12527, 12527,
+ 12528, 12528, 12529, 12529, 12530, 12530, 12531, 12531, 11947, 12533, 12533,
+ 12534, 12534, 12535, 12535, 12536, 12537, 12537, 12538, 12538, 12539, 12539,
+ 12540, 12540, 12541, 12541, 12542, 12542, 12543, 12544, 12544, 12545, 12545,
+ 12546, 12546, 12547, 12547, 12548, 12548, 12549, 12549, 12550, 12551, 12551,
+ 12552, 12552, 12553, 12553, 12554, 12554, 12555, 12556, 12556, 12557, 12557,
+ 12558, 12558, 12559, 12559, 12560, 12561, 12561, 12562, 12562, 12563, 12563,
+ 12564, 12564, 12565, 12565, 12566, 12566, 12532, 12532, 12490, 12490, 12490,
+ 12482, 12482, 12482, 12477, 12477, 12477, 12472, 12472, 12472, 986, 989,
+ 997, 1000, 975, 48, 543, 750, 49, 749, 1008, 12573, 12574, 409, 408, 407,
+ 406, 405, 404, 403, 402, 401, 393, 250, 388, 828, 507, 263, 462, 540, 536,
+ 248, 249, 251, 535, 526, 523, 519, 518, 448, 515, 235, 237, 238, 245, 246,
+ 502, 495, 494, 493, 482, 481, 476, 475, 474, 470, 701, 469, 457, 632, 229,
+ 236, 247, 715, 234, 674, 1041, 1042, 268, 694, 369, 410, 621, 1018, 1019,
+ 1020, 1021, 1022, 1023, 1024, 1025, 1026, 12587, 12586, 12577, 12578, 12579,
+ 12580, 12581, 12582, 12583, 12584, 12585, 43, 437, 2, 835, 591, 12588, 12589,
+ 12590, 765, 951, 1564, 594, 12575, 12576, 340, 512, 763, 764, 1086, 12591,
+ 12592, 12593, 12594, 12595, 12596, 12596, 1659, 1658, 340, 1655, 674, 694,
+ 1647, 1646, 1645, 1644, 1643, 462, 1639, 1638, 1626, 1625, 1624, 1623, 1622,
+ 1621, 1620, 1619, 1618, 1617, 1613, 1612, 1708, 1707, 1699, 1698, 1697, 1696,
+ 1695, 1694, 1688, 1687, 1686, 1685, 1680, 1679, 1678, 1673, 1672, 1671, 1735,
+ 1745, 1744, 1743, 1742, 268, 1738, 12610, 1041, 1042, 1726, 1725, 1724, 1723,
+ 1722, 1721, 1720, 997, 1000, 986, 989, 1008, 1758, 1757, 975, 1781, 1780,
+ 543, 632, 1775, 1774, 1773, 369, 1770, 835, 1767, 12617, 12616, 1792, 12624,
+ 12625, 12618, 12619, 12620, 12621, 12622, 12623, 12611, 12612, 12613, 12614,
+ 12615, 11985, 12605, 12606, 12607, 12608, 12609, 12598, 12599, 12600, 12601,
+ 12602, 12603, 12604, 1805, 12631, 1814, 12633, 474, 475, 476, 12634, 1810,
+ 12632, 594, 12637, 12638, 1825, 1824, 1837, 1857, 1853, 1852, 1847, 1846,
+ 1845, 1842, 12642, 12643, 12644, 12645, 229, 12641, 1878, 1877, 1876, 1875,
+ 1874, 1871, 1868, 1889, 1022, 1026, 1018, 1019, 1020, 1021, 437, 1902, 12655,
+ 12656, 12654, 12652, 12653, 12651, 502, 12648, 12649, 12650, 1915, 12662,
+ 1931, 1928, 1925, 1922, 12664, 12665, 12666, 12667, 12668, 12663, 1947, 1944,
+ 12, 1964, 526, 1564, 1972, 518, 519, 621, 828, 1969, 245, 247, 248, 249,
+ 250, 251, 448, 515, 12673, 234, 235, 236, 237, 238, 388, 715, 1957, 1956,
+ 1955, 1954, 512, 782, 1988, 72, 1985, 73, 1982, 1023, 1024, 1025, 195, 591,
+ 2049, 2048, 2040, 2039, 2038, 2037, 2036, 2035, 951, 2028, 2027, 2026, 12683,
+ 2024, 2013, 2012, 2011, 2010, 2009, 2008, 2007, 2006, 2005, 393, 749, 750,
+ 765, 1999, 1998, 1997, 1996, 540, 762, 763, 764, 791, 1086, 263, 12680, 12681,
+ 12682, 12684, 12685, 12686, 12687, 12688, 12689, 12690, 12691, 11907, 12674,
+ 12675, 12676, 12677, 12678, 12679, 11905, 12671, 12672, 12669, 12670, 12657,
+ 12658, 12659, 12660, 12661, 11904, 12646, 12647, 457, 11902, 12639, 12640,
+ 11901, 11993, 12635, 12636, 12626, 12627, 12628, 12629, 12630, 1611, 12692,
+ 12693, 12694, 12695, 12696, 12697, 12698, 12699, 12700, 12701, 765, 835,
+ 1086, 791, 340, 782, 764, 512, 762, 763, 12704, 12703, 12705, 12706, 12707,
+ 314, 12654, 12708, 12709, 12710, 12710, 12711, 12711, 12712, 12713, 12713,
+ 12702, 12702, 12597, 12597, 835, 835, 12717, 12717, 12718, 12718, 12719,
+ 12719, 512, 762, 763, 764, 765, 12721, 12721, 12722, 12722, 12723, 12723,
+ 11937, 12725, 369, 369, 12727, 12727, 12728, 12728, 12729, 12729, 12730,
+ 12730, 12731, 12732, 12733, 12733, 12726, 12726, 11987, 11988, 12736, 12737,
+ 12737, 12737, 12738, 12738, 12738, 246, 246, 251, 251, 448, 448, 11990, 469,
+ 470, 245, 246, 247, 248, 249, 250, 251, 448, 515, 512, 543, 263, 535, 536,
+ 11998, 12747, 12748, 11909, 11906, 11907, 11995, 12745, 12746, 11901, 11992,
+ 12744, 12743, 12740, 12741, 12742, 12740, 12741, 12742, 437, 437, 12754,
+ 12754, 12755, 12755, 12756, 12756, 11861, 11861, 12758, 12758, 12759, 12759,
+ 12760, 12760, 12761, 12761, 12762, 12762, 12763, 12763, 12764, 12764, 12765,
+ 12765, 12766, 12766, 314, 314, 12768, 12768, 12769, 12769, 12767, 12767,
+ 12731, 12772, 12772, 12498, 12498, 12774, 12774, 12775, 12775, 12776, 12776,
+ 621, 621, 12777, 12777, 591, 591, 12778, 12779, 12780, 12778, 12779, 12780,
+ 12781, 12781, 543, 543, 11959, 643, 643, 12784, 12784, 12785, 12785, 12786,
+ 12786, 12787, 12787, 12788, 12788, 12789, 12789, 12790, 12790, 12791, 12791,
+ 12792, 12792, 12793, 12793, 12794, 12794, 12795, 12795, 12796, 12796, 11722,
+ 11722, 12798, 12798, 12799, 12799, 12800, 12800, 12801, 12801, 12797, 12797,
+ 715, 715, 12804, 12804, 12805, 12805, 12002, 12004, 12005, 12006, 12000,
+ 12001, 12003, 12806, 12806, 11978, 11978, 767, 767, 12809, 12809, 12810,
+ 12810, 12811, 12811, 12812, 12812, 12813, 12813, 782, 782, 12815, 12815,
+ 12816, 12816, 791, 791, 12818, 12818, 12819, 12819, 12820, 12820, 12821,
+ 12821, 12817, 12817, 12814, 12814, 11889, 11889, 512, 762, 763, 764, 765,
+ 12822, 12823, 12824, 12825, 12822, 12823, 12824, 12825, 12826, 12826, 12827,
+ 12827, 12828, 12828, 12032, 12032, 12830, 12830, 12831, 12829, 12829, 12039,
+ 12832, 12833, 12833, 12834, 12834, 12807, 12808, 12807, 12808, 828, 828,
+ 12837, 12054, 12054, 12838, 12838, 507, 507, 12841, 12841, 12842, 12842,
+ 12843, 12843, 12844, 12844, 12845, 12845, 12846, 12067, 12067, 12848, 12848,
+ 12849, 12849, 12850, 12850, 12851, 12851, 12852, 12852, 234, 234, 12854,
+ 12854, 12855, 12855, 12856, 12856, 12857, 12857, 12858, 12858, 12859, 12859,
+ 12860, 12860, 12861, 12861, 12862, 12862, 12863, 12863, 12864, 12864, 247,
+ 247, 12866, 12866, 12867, 12867, 12868, 12868, 12869, 12869, 12870, 12870,
+ 12871, 12871, 12872, 12872, 12873, 12873, 12874, 12874, 12875, 12875, 12876,
+ 12865, 12853, 12853, 12877, 12878, 12879, 12879, 12847, 12880, 12881, 12102,
+ 12102, 951, 951, 12883, 12883, 12884, 12884, 12885, 12885, 12886, 12886,
+ 12887, 12887, 12112, 12112, 975, 975, 12890, 12890, 12891, 12891, 12892,
+ 12892, 989, 989, 986, 986, 12894, 12895, 12894, 12895, 1000, 1000, 997, 997,
+ 12897, 12898, 12897, 12898, 12899, 12896, 1008, 12900, 12901, 12902, 12902,
+ 12893, 12893, 12131, 12131, 12905, 12905, 12906, 12906, 12907, 12907, 12908,
+ 12908, 12909, 12138, 12910, 12911, 12911, 12912, 12912, 12913, 12913, 12914,
+ 12914, 12915, 12915, 12916, 12916, 12903, 12904, 12903, 12904, 12889, 12889,
+ 12888, 12888, 12882, 12882, 12839, 12840, 12839, 12840, 12835, 12836, 12835,
+ 12836, 12802, 12802, 12803, 12803, 12783, 12783, 12782, 12782, 12773, 12773,
+ 12770, 12771, 12770, 12771, 1086, 1086, 12929, 12929, 12930, 12930, 12931,
+ 12931, 12932, 12932, 12933, 12933, 12917, 12918, 12919, 12920, 12921, 12922,
+ 12923, 12924, 12925, 12926, 12927, 12928, 12917, 12918, 12919, 12920, 12921,
+ 12922, 12923, 12924, 12925, 12926, 12927, 12928, 12757, 12757, 11913, 11914,
+ 11915, 12002, 12006, 12750, 12749, 12751, 12752, 12753, 12739, 12739, 12739,
+ 12028, 12939, 12940, 12941, 12942, 11489, 11489, 12944, 12944, 12945, 12945,
+ 543, 543, 543, 11959, 12943, 12802, 12805, 12805, 11980, 92, 223, 84, 85,
+ 86, 87, 88, 89, 90, 91, 222, 2, 220, 221, 19, 81, 82, 83, 80, 69, 218, 219,
+ 4, 74, 212, 75, 36, 47, 76, 77, 213, 7, 8, 9, 10, 11, 12, 13, 78, 79, 14,
+ 15, 16, 17, 18, 39, 94, 214, 215, 216, 217, 44, 49, 55, 186, 187, 188, 189,
+ 190, 191, 192, 193, 37, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203,
+ 204, 205, 206, 207, 40, 45, 52, 68, 208, 209, 210, 211, 3, 41, 42, 43, 48,
+ 71, 6, 72, 73, 12971, 12972, 12973, 12974, 12975, 12976, 12977, 12978, 12964,
+ 12965, 12966, 12967, 12968, 12969, 12970, 12961, 12962, 12963, 12960, 12958,
+ 12959, 12956, 12957, 12952, 12953, 12954, 12955, 12950, 12951, 164, 165,
+ 50, 166, 38, 56, 167, 168, 169, 170, 171, 70, 172, 173, 174, 175, 176, 177,
+ 178, 179, 180, 181, 182, 183, 184, 185, 146, 147, 148, 149, 150, 151, 152,
+ 153, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 154, 155, 156, 157, 158, 159,
+ 160, 161, 162, 163, 134, 135, 136, 137, 95, 138, 51, 53, 139, 140, 141, 142,
+ 143, 144, 145, 31, 32, 30, 33, 34, 127, 128, 20, 93, 129, 130, 131, 57, 132,
+ 46, 133, 13005, 13006, 13007, 13008, 13000, 13001, 13002, 13003, 13004, 12994,
+ 12995, 12996, 12997, 12998, 12999, 12987, 12988, 12989, 12990, 12991, 12992,
+ 12993, 126, 119, 120, 121, 122, 123, 124, 125, 13014, 13015, 13016, 13017,
+ 13013, 112, 113, 114, 115, 116, 117, 118, 111, 21, 25, 26, 27, 28, 29, 54,
+ 13026, 13024, 13025, 13023, 13020, 13021, 13022, 110, 13031, 107, 108, 109,
+ 22, 23, 24, 13036, 13033, 13034, 13035, 13037, 13038, 13032, 13027, 13028,
+ 13029, 13030, 13018, 13019, 13009, 13010, 13011, 13012, 12979, 12980, 12981,
+ 12982, 12983, 12984, 12985, 12986, 106, 13045, 104, 105, 35, 13048, 13047,
+ 103, 13051, 13052, 13049, 13050, 13046, 102, 13056, 101, 13058, 13059, 13057,
+ 5, 13062, 13063, 100, 13065, 13066, 99, 13068, 1, 96, 97, 98, 13070, 13071,
+ 13072, 13073, 13074, 13069, 13075, 13076, 13067, 13064, 13060, 13061, 13053,
+ 13054, 13055, 13039, 13040, 13041, 13042, 13043, 13044, 13077, 13078, 13079,
+ 13080, 13081, 13082, 13083, 13083, 13083, 13084, 13084, 13084, 13085, 13085,
+ 13085, 11998, 12748, 13086, 13086, 13086, 12692, 12693, 12694, 12695, 12696,
+ 12697, 12698, 12699, 12700, 1611, 12949, 12949, 12949, 13087, 12750, 11913,
+ 12002, 11914, 11915, 12004, 12005, 12006, 13088, 13088, 13088, 13089, 12596,
+ 12596, 975, 13092, 13093, 13093, 13093, 13094, 13094, 13094, 13095, 13095,
+ 13095, 13096, 13097, 13098, 13099, 1041, 13101, 13102, 13102, 13103, 13103,
+ 13104, 13104, 13105, 13105, 13106, 13106, 13107, 13108, 13109, 13110, 13111,
+ 13112, 13112, 13113, 13113, 13114, 13114, 13115, 13115, 13102, 13102, 13117,
+ 13117, 13118, 13118, 13119, 13119, 13120, 13120, 13121, 13122, 13123, 13124,
+ 13125, 13126, 13126, 13127, 13127, 13128, 13128, 13129, 13129, 13130, 13130,
+ 13116, 13116, 13131, 13131, 13132, 13133, 13133, 13133, 1042, 13135, 13136,
+ 13136, 13137, 13137, 13138, 13138, 13139, 13139, 13140, 13140, 13141, 13142,
+ 13142, 13143, 13143, 13144, 13144, 13145, 13145, 13136, 13136, 13147, 13147,
+ 13148, 13148, 13149, 13149, 13150, 13150, 13151, 13152, 13152, 13153, 13153,
+ 13154, 13154, 13155, 13155, 13156, 13156, 13146, 13146, 13157, 13157, 13158,
+ 13159, 13159, 13159, 43, 13160, 44, 750, 749, 13134, 340, 763, 764, 765,
+ 782, 791, 1086, 13161, 13162, 13163, 13164, 13165, 13166, 13100, 12710, 12710,
+ 311, 13170, 13171, 13172, 13173, 13174, 13174, 13174, 13174, 13176, 13176,
+ 13175, 13175, 13177, 13177, 13178, 13179, 13180, 512, 13182, 13183, 13184,
+ 762, 13186, 13187, 13188, 763, 13190, 13191, 13192, 764, 13194, 13195, 13196,
+ 1086, 13198, 13199, 13200, 340, 13202, 13203, 13204, 782, 13206, 13207, 13208,
+ 12704, 13210, 13211, 765, 13213, 13214, 13215, 40, 13216, 48, 13212, 49,
+ 13209, 50, 13205, 3, 13201, 41, 13197, 42, 13193, 43, 13189, 44, 750, 13185,
+ 13217, 13218, 13219, 13220, 13221, 13222, 13223, 13224, 13225, 13226, 13227,
+ 13228, 13229, 13181, 314, 314, 314, 13232, 13232, 13232, 13233, 13234, 13235,
+ 13230, 13231, 13167, 13168, 13169, 13169, 13236, 13237, 13238, 13239, 13239,
+ 13239, 13091, 13091, 13090, 13090, 13090, 828, 828, 828, 13243, 835, 835,
+ 13245, 13245, 13246, 13246, 13244, 835, 13249, 13250, 13251, 835, 835, 13253,
+ 13254, 13255, 13256, 13257, 13258, 13259, 13260, 13261, 13262, 13262, 13262,
+ 13252, 13264, 13264, 13263, 13264, 13247, 13248, 13247, 13248, 13248, 750,
+ 13267, 13268, 13268, 13269, 13269, 512, 762, 763, 764, 765, 13267, 13271,
+ 13271, 13272, 13272, 13273, 13273, 13270, 13270, 951, 951, 13276, 13276,
+ 951, 951, 13278, 13278, 13279, 13279, 13277, 13277, 13280, 13280, 13281,
+ 12747, 13282, 13282, 13282, 13283, 13284, 388, 388, 13286, 13286, 13287,
+ 13287, 13288, 13288, 13289, 13290, 13291, 13292, 13293, 13294, 13294, 13295,
+ 13295, 13296, 13296, 13297, 13297, 13298, 13298, 13299, 13299, 13300, 13300,
+ 13301, 13301, 13302, 13302, 388, 388, 13304, 13304, 13305, 13305, 13306,
+ 13306, 13307, 13308, 13309, 13310, 13311, 13312, 13312, 13313, 13313, 13314,
+ 13314, 13315, 13315, 13316, 13316, 13317, 13317, 13318, 13318, 13319, 13319,
+ 13320, 13320, 13321, 13321, 13303, 13303, 13323, 13322, 13323, 13324, 13324,
+ 13324, 13325, 12106, 13327, 13327, 13328, 13328, 12885, 13330, 13330, 13331,
+ 13331, 13332, 13332, 13329, 13329, 12112, 13335, 13335, 13335, 975, 13092,
+ 11886, 11886, 11886, 13338, 13338, 13338, 13339, 13339, 13339, 989, 989,
+ 989, 986, 986, 986, 13341, 13341, 13341, 13342, 13342, 13342, 13341, 13342,
+ 13341, 13342, 13341, 13342, 13343, 1000, 1000, 1000, 997, 997, 997, 13345,
+ 13345, 13345, 13346, 13346, 13346, 13345, 13346, 13345, 13346, 13345, 13346,
+ 13347, 13348, 13344, 1008, 13349, 13350, 1008, 13349, 13350, 13351, 13352,
+ 13352, 13352, 2, 13340, 13337, 13337, 13337, 13283, 12138, 13356, 13357,
+ 13357, 13358, 13358, 13359, 13359, 13360, 13360, 13361, 13361, 13357, 13357,
+ 13363, 13363, 13364, 13364, 13365, 13365, 13366, 13366, 251, 250, 249, 248,
+ 247, 246, 245, 5, 13369, 13370, 13371, 13372, 13373, 13374, 13375, 13376,
+ 13377, 13378, 13379, 13380, 13381, 13382, 13383, 13384, 13385, 13386, 13387,
+ 13388, 13389, 13390, 13391, 13392, 13393, 13394, 13395, 13396, 13397, 13398,
+ 13399, 13400, 13401, 13402, 13403, 13404, 13405, 13406, 13407, 13408, 13409,
+ 13410, 13411, 13412, 13413, 13414, 13415, 13416, 13417, 13418, 224, 225,
+ 13421, 13422, 226, 13424, 13425, 228, 13427, 13428, 13429, 13430, 13431,
+ 13432, 13433, 13434, 13435, 13436, 13437, 13438, 13439, 13440, 13441, 13442,
+ 13443, 13444, 13368, 11909, 13367, 13367, 13362, 13362, 13353, 13354, 13355,
+ 13353, 13354, 13353, 13354, 13355, 13355, 13336, 13336, 13336, 13333, 13333,
+ 13334, 674, 11725, 11725, 674, 12800, 12800, 13326, 13326, 13326, 13285,
+ 13285, 13285, 765, 764, 763, 762, 512, 13274, 13274, 13275, 13265, 13266,
+ 13265, 13265, 13266, 13266, 13240, 13242, 13241, 13240, 13240, 13242, 13241,
+ 13242, 12948, 12821, 12948, 12821, 12946, 12947, 12946, 12947, 12947, 12934,
+ 12935, 12937, 12936, 12938, 12934, 12935, 12937, 12936, 12938, 12937, 12938,
+ 12734, 12734, 12735, 512, 762, 763, 764, 765, 12724, 12724, 12720, 12720,
+ 12714, 12715, 12716, 12714, 12715, 12716, 12568, 12569, 12570, 12571, 12572,
+ 12567, 12569, 12568, 12569, 12570, 12571, 12572, 12570, 12571, 12572, 12162,
+ 12163, 12164, 12165, 12162, 12163, 12164, 12165, 11888, 11889, 11889, 11887,
+ 11891, 11890, 11887, 11887, 11891, 11890, 11891, 11892, 11821, 11821, 11812,
+ 11813, 11814, 11812, 11813, 11814, 11802, 11802, 11800, 11800, 674, 11796,
+ 11796, 11796, 11143, 11143, 11789, 11789, 11768, 11768, 512, 762, 763, 764,
+ 765, 11762, 11762, 11757, 11758, 11757, 11758, 11738, 11738, 11729, 11729,
+ 11728, 11728, 11730, 11731, 11732, 11730, 11731, 11732, 11492, 11492, 11493,
+ 11178, 11493, 11178, 11487, 11488, 11487, 11488, 11474, 11475, 11476, 11477,
+ 11478, 11474, 11475, 11476, 11477, 11478, 11294, 11295, 11296, 11297, 11298,
+ 11294, 11295, 11296, 11297, 11298, 11073, 11073, 11064, 11064, 11063, 11065,
+ 11066, 11063, 11065, 11066, 2830, 2833, 11026, 2624, 2805, 2806, 2807, 2808,
+ 2809, 2810, 2811, 2812, 2813, 2814, 2815, 2816, 2817, 2818, 2819, 2820, 2821,
+ 2624, 2805, 2806, 2807, 2808, 2809, 2810, 2811, 2812, 2813, 2814, 2815, 2816,
+ 2817, 2818, 2819, 2820, 2821, 690, 2822, 920, 1, 227, 226, 13489, 13490,
+ 13491, 13492, 13493, 13495, 13497, 13499
+};
+
+static unsigned char label_array[] = {
+ 0xFE, 0xF9, 0xF8, 0xF4, 0xE7, 0xE6, 0xE4, 0xE3, 0xE2, 0xD9, 0xD7, 0xD4, 0xD3,
+ 0xD2, 0xD1, 0xC9, 0xC8, 0xC7, 0xC5, 0xC3, 0xC2, 0xC1, 0xB7, 0xB6, 0xB4, 0xB3,
+ 0xAB, 0xA7, 0xA6, 0xA4, 0xA3, 0xA2, 0x9B, 0x99, 0x97, 0x94, 0x93, 0x92, 0x91,
+ 0x89, 0x88, 0x87, 0x85, 0x83, 0x82, 0x81, 0x78, 0x77, 0x75, 0x74, 0x73, 0x72,
+ 0x71, 0x70, 0x6D, 0x6C, 0x6B, 0x6A, 0x69, 0x68, 0x67, 0x66, 0x65, 0x64, 0x63,
+ 0x62, 0x61, 0x58, 0x57, 0x55, 0x54, 0x53, 0x52, 0x50, 0x4D, 0x4C, 0x4B, 0x4A,
+ 0x49, 0x48, 0x47, 0x45, 0x43, 0x42, 0x41, 0x39, 0x38, 0x34, 0x1B, 0x00, 0xFE,
+ 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0x00, 0x00, 0x37, 0x00, 0x33, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x37, 0x35, 0x32, 0x31, 0x30, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x39, 0x36, 0x35, 0x33, 0x32, 0x31, 0x30, 0x00, 0x00, 0x35, 0x36, 0x00, 0x00,
+ 0x34, 0x00, 0x30, 0x00, 0x00, 0x47, 0x67, 0x00, 0x6E, 0x4E, 0x00, 0x69, 0x49,
+ 0x00, 0x64, 0x44, 0x00, 0x6F, 0x4F, 0x00, 0x63, 0x43, 0x00, 0x6E, 0x4E, 0x00,
+ 0x65, 0x45, 0x00, 0x2D, 0x00, 0x64, 0x44, 0x00, 0x72, 0x52, 0x00, 0x61, 0x41,
+ 0x00, 0x64, 0x44, 0x00, 0x6E, 0x4E, 0x00, 0x61, 0x41, 0x00, 0x74, 0x54, 0x00,
+ 0x73, 0x53, 0x00, 0x2D, 0x00, 0x65, 0x45, 0x00, 0x62, 0x42, 0x00, 0x6F, 0x4F,
+ 0x00, 0x00, 0x38, 0x00, 0x00, 0x36, 0x00, 0x00, 0x38, 0x36, 0x00, 0x39, 0x00,
+ 0x31, 0x00, 0x2D, 0x00, 0x34, 0x00, 0x2E, 0x00, 0x33, 0x00, 0x78, 0x58, 0x00,
+ 0x5F, 0x00, 0x69, 0x49, 0x00, 0x73, 0x53, 0x00, 0x00, 0x43, 0x63, 0x00, 0x69,
+ 0x49, 0x00, 0x62, 0x42, 0x00, 0x61, 0x41, 0x69, 0x49, 0x00, 0x69, 0x49, 0x38,
+ 0x00, 0x30, 0x00, 0x37, 0x00, 0x2D, 0x00, 0x6F, 0x4F, 0x00, 0x00, 0x43, 0x63,
+ 0x6D, 0x4D, 0x00, 0x00, 0x00, 0x00, 0x52, 0x72, 0x73, 0x6E, 0x64, 0x53, 0x4E,
+ 0x44, 0x00, 0x00, 0x53, 0x73, 0x00, 0x63, 0x43, 0x00, 0x73, 0x53, 0x00, 0x6B,
+ 0x4B, 0x00, 0x68, 0x48, 0x00, 0x2D, 0x00, 0x35, 0x00, 0x67, 0x47, 0x00, 0x69,
+ 0x49, 0x00, 0x00, 0x38, 0x00, 0x35, 0x00, 0x00, 0x34, 0x00, 0x32, 0x00, 0x00,
+ 0x39, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x39, 0x38, 0x37, 0x36,
+ 0x35, 0x34, 0x33, 0x32, 0x31, 0x30, 0x00, 0x34, 0x00, 0x31, 0x00, 0x00, 0x31,
+ 0x30, 0x00, 0x30, 0x00, 0x64, 0x44, 0x00, 0x69, 0x49, 0x00, 0x73, 0x53, 0x00,
+ 0x00, 0x45, 0x65, 0x00, 0x73, 0x53, 0x00, 0x65, 0x45, 0x00, 0x6E, 0x4E, 0x00,
+ 0x69, 0x49, 0x00, 0x00, 0x52, 0x72, 0x52, 0x72, 0x53, 0x73, 0x00, 0x00, 0x00,
+ 0x69, 0x67, 0x61, 0x49, 0x47, 0x41, 0x00, 0x00, 0x37, 0x00, 0x33, 0x31, 0x30,
+ 0x00, 0x00, 0x36, 0x00, 0x32, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x38, 0x33,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x35, 0x34, 0x30, 0x00, 0x00, 0x00, 0x00,
+ 0x37, 0x30, 0x00, 0x00, 0x00, 0x39, 0x38, 0x37, 0x37, 0x00, 0x36, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x34, 0x33, 0x30, 0x00, 0x33, 0x32, 0x00, 0x00, 0x30,
+ 0x00, 0x30, 0x00, 0x00, 0x35, 0x00, 0x37, 0x00, 0x00, 0x39, 0x00, 0x00, 0x39,
+ 0x38, 0x36, 0x35, 0x34, 0x33, 0x32, 0x31, 0x30, 0x00, 0x00, 0x00, 0x00, 0x31,
+ 0x30, 0x00, 0x00, 0x30, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, 0x00, 0x00, 0x39,
+ 0x38, 0x37, 0x36, 0x35, 0x31, 0x00, 0x00, 0x00, 0x00, 0x35, 0x34, 0x33, 0x00,
+ 0x00, 0x38, 0x00, 0x00, 0x36, 0x00, 0x00, 0x00, 0x33, 0x31, 0x30, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x37, 0x35, 0x34, 0x33,
+ 0x30, 0x39, 0x32, 0x31, 0x2D, 0x64, 0x44, 0x00, 0x72, 0x52, 0x00, 0x61, 0x41,
+ 0x00, 0x64, 0x44, 0x00, 0x6E, 0x4E, 0x00, 0x61, 0x41, 0x00, 0x74, 0x54, 0x00,
+ 0x73, 0x53, 0x00, 0x65, 0x45, 0x00, 0x62, 0x42, 0x00, 0x6F, 0x4F, 0x63, 0x43,
+ 0x00, 0x00, 0x53, 0x73, 0x64, 0x44, 0x35, 0x00, 0x67, 0x47, 0x00, 0x69, 0x49,
+ 0x00, 0x00, 0x52, 0x72, 0x00, 0x00, 0x45, 0x65, 0x00, 0x73, 0x53, 0x00, 0x65,
+ 0x45, 0x00, 0x6E, 0x4E, 0x00, 0x61, 0x41, 0x00, 0x70, 0x50, 0x00, 0x61, 0x41,
+ 0x00, 0x6A, 0x4A, 0x00, 0x54, 0x74, 0x00, 0x6D, 0x4D, 0x00, 0x66, 0x46, 0x00,
+ 0x64, 0x44, 0x00, 0x6B, 0x4B, 0x00, 0x00, 0x48, 0x68, 0x00, 0x00, 0x00, 0x54,
+ 0x74, 0x4B, 0x6B, 0x70, 0x50, 0x00, 0x63, 0x43, 0x00, 0x75, 0x55, 0x00, 0x00,
+ 0x32, 0x00, 0x31, 0x00, 0x33, 0x00, 0x4B, 0x6B, 0x32, 0x00, 0x62, 0x42, 0x00,
+ 0x00, 0x61, 0x41, 0x00, 0x6E, 0x4E, 0x00, 0x61, 0x41, 0x00, 0x6B, 0x4B, 0x00,
+ 0x61, 0x41, 0x00, 0x74, 0x54, 0x00, 0x61, 0x41, 0x00, 0x6B, 0x4B, 0x00, 0x68,
+ 0x48, 0x00, 0x74, 0x54, 0x00, 0x64, 0x44, 0x00, 0x69, 0x49, 0x00, 0x77, 0x57,
+ 0x00, 0x66, 0x46, 0x00, 0x6C, 0x4C, 0x00, 0x00, 0x38, 0x00, 0x6E, 0x4E, 0x00,
+ 0x61, 0x41, 0x00, 0x6D, 0x4D, 0x00, 0x4F, 0x6F, 0x00, 0x72, 0x52, 0x00, 0x00,
+ 0x50, 0x70, 0x61, 0x41, 0x00, 0x39, 0x00, 0x6D, 0x4D, 0x00, 0x00, 0x37, 0x00,
+ 0x34, 0x32, 0x00, 0x30, 0x00, 0x00, 0x38, 0x37, 0x33, 0x00, 0x39, 0x38, 0x37,
+ 0x32, 0x37, 0x35, 0x31, 0x39, 0x36, 0x35, 0x33, 0x31, 0x30, 0x38, 0x34, 0x00,
+ 0x00, 0x39, 0x38, 0x37, 0x36, 0x35, 0x35, 0x33, 0x00, 0x31, 0x30, 0x00, 0x00,
+ 0x69, 0x49, 0x00, 0x61, 0x41, 0x00, 0x68, 0x48, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x35, 0x30, 0x54, 0x74, 0x32, 0x31, 0x39, 0x38, 0x34, 0x00, 0x00, 0x6D,
+ 0x62, 0x4D, 0x42, 0x30, 0x00, 0x38, 0x00, 0x32, 0x00, 0x31, 0x00, 0x33, 0x00,
+ 0x32, 0x00, 0x62, 0x42, 0x00, 0x67, 0x47, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00,
+ 0x35, 0x33, 0x00, 0x31, 0x00, 0x39, 0x00, 0x35, 0x00, 0x38, 0x00, 0x00, 0x00,
+ 0x00, 0x72, 0x52, 0x00, 0x00, 0x63, 0x43, 0x00, 0x69, 0x49, 0x00, 0x6C, 0x4C,
+ 0x00, 0x6C, 0x4C, 0x00, 0x69, 0x49, 0x00, 0x72, 0x52, 0x00, 0x79, 0x59, 0x00,
+ 0x00, 0x4B, 0x6B, 0x00, 0x65, 0x45, 0x00, 0x65, 0x45, 0x00, 0x72, 0x52, 0x00,
+ 0x00, 0x57, 0x77, 0x00, 0x65, 0x45, 0x00, 0x72, 0x52, 0x00, 0x62, 0x42, 0x00,
+ 0x45, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x31, 0x35, 0x34,
+ 0x33, 0x32, 0x68, 0x67, 0x63, 0x61, 0x48, 0x47, 0x43, 0x41, 0x00, 0x6E, 0x4E,
+ 0x00, 0x69, 0x49, 0x00, 0x74, 0x54, 0x00, 0x61, 0x41, 0x00, 0x00, 0x00, 0x6C,
+ 0x4C, 0x38, 0x35, 0x00, 0x6F, 0x4F, 0x00, 0x00, 0x73, 0x62, 0x53, 0x42, 0x00,
+ 0x00, 0x72, 0x52, 0x00, 0x38, 0x00, 0x69, 0x49, 0x00, 0x00, 0x37, 0x00, 0x38,
+ 0x00, 0x39, 0x00, 0x31, 0x00, 0x31, 0x00, 0x30, 0x00, 0x36, 0x00, 0x35, 0x00,
+ 0x63, 0x43, 0x00, 0x00, 0x73, 0x6F, 0x53, 0x4F, 0x43, 0x63, 0x00, 0x69, 0x49,
+ 0x00, 0x74, 0x54, 0x00, 0x6C, 0x4C, 0x00, 0x61, 0x41, 0x00, 0x62, 0x42, 0x00,
+ 0x35, 0x00, 0x37, 0x4C, 0x6C, 0x00, 0x61, 0x41, 0x00, 0x75, 0x55, 0x00, 0x67,
+ 0x47, 0x00, 0x6E, 0x4E, 0x00, 0x69, 0x49, 0x00, 0x6C, 0x4C, 0x00, 0x69, 0x49,
+ 0x00, 0x74, 0x54, 0x00, 0x6C, 0x4C, 0x00, 0x75, 0x55, 0x00, 0x6D, 0x4D, 0x00,
+ 0x30, 0x57, 0x77, 0x00, 0x65, 0x45, 0x00, 0x72, 0x52, 0x00, 0x62, 0x42, 0x00,
+ 0x65, 0x45, 0x00, 0x68, 0x48, 0x00, 0x6E, 0x4E, 0x00, 0x69, 0x49, 0x00, 0x74,
+ 0x54, 0x00, 0x61, 0x41, 0x00, 0x6C, 0x4C, 0x00, 0x32, 0x00, 0x34, 0x00, 0x65,
+ 0x45, 0x00, 0x67, 0x47, 0x00, 0x61, 0x41, 0x00, 0x70, 0x50, 0x00, 0x65, 0x45,
+ 0x00, 0x64, 0x44, 0x00, 0x6F, 0x4F, 0x00, 0x00, 0x00, 0x63, 0x43, 0x36, 0x35,
+ 0x32, 0x00, 0x35, 0x00, 0x38, 0x00, 0x00, 0x00, 0x70, 0x50, 0x38, 0x37, 0x00,
+ 0x63, 0x43, 0x00, 0x00, 0x73, 0x53, 0x00, 0x69, 0x49, 0x00, 0x6A, 0x4A, 0x00,
+ 0x54, 0x74, 0x00, 0x66, 0x46, 0x00, 0x69, 0x49, 0x00, 0x68, 0x48, 0x30, 0x00,
+ 0x32, 0x00, 0x36, 0x00, 0x53, 0x73, 0x00, 0x69, 0x49, 0x00, 0x00, 0x45, 0x65,
+ 0x00, 0x64, 0x44, 0x00, 0x6F, 0x4F, 0x00, 0x63, 0x43, 0x00, 0x69, 0x49, 0x00,
+ 0x00, 0x65, 0x45, 0x00, 0x00, 0x65, 0x45, 0x00, 0x00, 0x4C, 0x6C, 0x42, 0x62,
+ 0x00, 0x36, 0x00, 0x00, 0x65, 0x45, 0x00, 0x00, 0x65, 0x45, 0x00, 0x00, 0x4C,
+ 0x6C, 0x42, 0x62, 0x00, 0x32, 0x00, 0x00, 0x00, 0x00, 0x38, 0x33, 0x31, 0x00,
+ 0x66, 0x46, 0x00, 0x00, 0x74, 0x6E, 0x54, 0x4E, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x38, 0x37, 0x36, 0x35, 0x34, 0x33, 0x32, 0x31, 0x30, 0x00, 0x35, 0x00, 0x32,
+ 0x00, 0x00, 0x00, 0x00, 0x32, 0x31, 0x00, 0x6E, 0x4E, 0x00, 0x69, 0x49, 0x00,
+ 0x74, 0x54, 0x00, 0x61, 0x41, 0x00, 0x6C, 0x4C, 0x00, 0x31, 0x00, 0x00, 0x31,
+ 0x33, 0x00, 0x73, 0x53, 0x00, 0x77, 0x57, 0x00, 0x6F, 0x4F, 0x00, 0x64, 0x44,
+ 0x00, 0x6E, 0x4E, 0x00, 0x69, 0x49, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x75, 0x74, 0x73, 0x70, 0x6B, 0x69, 0x68,
+ 0x67, 0x65, 0x62, 0x61, 0x57, 0x55, 0x54, 0x53, 0x50, 0x4B, 0x49, 0x48, 0x47,
+ 0x45, 0x42, 0x41, 0x00, 0x00, 0x43, 0x63, 0x00, 0x69, 0x49, 0x00, 0x6C, 0x4C,
+ 0x00, 0x6C, 0x4C, 0x00, 0x69, 0x49, 0x00, 0x72, 0x52, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x79, 0x73, 0x70, 0x68, 0x63, 0x59, 0x53, 0x50, 0x48, 0x43, 0x31, 0x32,
+ 0x00, 0x72, 0x52, 0x45, 0x65, 0x41, 0x61, 0x48, 0x68, 0x4B, 0x6B, 0x53, 0x73,
+ 0x49, 0x69, 0x52, 0x72, 0x42, 0x62, 0x52, 0x72, 0x45, 0x65, 0x54, 0x74, 0x53,
+ 0x73, 0x4C, 0x6C, 0x4F, 0x6F, 0x45, 0x65, 0x00, 0x63, 0x43, 0x00, 0x65, 0x45,
+ 0x00, 0x6F, 0x4F, 0x45, 0x65, 0x52, 0x72, 0x53, 0x73, 0x54, 0x74, 0x55, 0x75,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x79, 0x77, 0x75, 0x74, 0x73, 0x72, 0x6E, 0x69, 0x68, 0x67,
+ 0x66, 0x65, 0x64, 0x63, 0x62, 0x61, 0x59, 0x57, 0x55, 0x54, 0x53, 0x52, 0x4E,
+ 0x49, 0x48, 0x47, 0x46, 0x45, 0x44, 0x43, 0x42, 0x41, 0x00, 0x2D, 0x43, 0x63,
+ 0x00, 0x69, 0x49, 0x00, 0x6C, 0x4C, 0x00, 0x6C, 0x4C, 0x00, 0x69, 0x49, 0x00,
+ 0x72, 0x52, 0x00, 0x00, 0x79, 0x70, 0x59, 0x50, 0x4F, 0x6F, 0x00, 0x72, 0x52,
+ 0x00, 0x75, 0x55, 0x00, 0x65, 0x45, 0x00, 0x2B, 0x00, 0x33, 0x00, 0x37, 0x00,
+ 0x32, 0x00, 0x2D, 0x4F, 0x6F, 0x00, 0x72, 0x52, 0x00, 0x75, 0x55, 0x00, 0x65,
+ 0x45, 0x00, 0x2B, 0x00, 0x37, 0x00, 0x37, 0x00, 0x32, 0x00, 0x2D, 0x00, 0x00,
+ 0x4B, 0x6B, 0x65, 0x45, 0x4F, 0x6F, 0x00, 0x72, 0x52, 0x00, 0x75, 0x55, 0x00,
+ 0x65, 0x45, 0x00, 0x2B, 0x00, 0x34, 0x00, 0x38, 0x00, 0x32, 0x00, 0x2D, 0x00,
+ 0x73, 0x53, 0x4F, 0x6F, 0x00, 0x72, 0x52, 0x00, 0x75, 0x55, 0x00, 0x65, 0x45,
+ 0x00, 0x2B, 0x00, 0x38, 0x00, 0x37, 0x00, 0x32, 0x00, 0x2D, 0x4F, 0x6F, 0x00,
+ 0x72, 0x52, 0x00, 0x75, 0x55, 0x00, 0x65, 0x45, 0x00, 0x2B, 0x00, 0x37, 0x00,
+ 0x39, 0x00, 0x32, 0x00, 0x2D, 0x00, 0x00, 0x49, 0x69, 0x72, 0x52, 0x4F, 0x6F,
+ 0x00, 0x72, 0x52, 0x00, 0x75, 0x55, 0x00, 0x65, 0x45, 0x00, 0x2B, 0x00, 0x35,
+ 0x00, 0x38, 0x00, 0x32, 0x00, 0x2D, 0x00, 0x62, 0x42, 0x4F, 0x6F, 0x00, 0x72,
+ 0x52, 0x00, 0x75, 0x55, 0x00, 0x65, 0x45, 0x00, 0x2B, 0x00, 0x30, 0x00, 0x30,
+ 0x00, 0x35, 0x00, 0x2D, 0x00, 0x6C, 0x4C, 0x00, 0x61, 0x41, 0x00, 0x6E, 0x4E,
+ 0x00, 0x6F, 0x4F, 0x00, 0x69, 0x49, 0x00, 0x74, 0x54, 0x00, 0x61, 0x41, 0x00,
+ 0x6E, 0x4E, 0x00, 0x72, 0x52, 0x00, 0x65, 0x45, 0x00, 0x74, 0x54, 0x4F, 0x6F,
+ 0x00, 0x72, 0x52, 0x00, 0x75, 0x55, 0x00, 0x65, 0x45, 0x00, 0x2B, 0x00, 0x31,
+ 0x00, 0x37, 0x00, 0x38, 0x00, 0x2D, 0x4F, 0x6F, 0x00, 0x72, 0x52, 0x00, 0x75,
+ 0x55, 0x00, 0x65, 0x45, 0x00, 0x2B, 0x00, 0x30, 0x00, 0x38, 0x00, 0x32, 0x00,
+ 0x2D, 0x00, 0x00, 0x00, 0x74, 0x73, 0x6E, 0x54, 0x53, 0x4E, 0x41, 0x61, 0x00,
+ 0x6E, 0x4E, 0x00, 0x61, 0x41, 0x00, 0x6B, 0x4B, 0x00, 0x2D, 0x00, 0x70, 0x50,
+ 0x4F, 0x6F, 0x00, 0x72, 0x52, 0x00, 0x75, 0x55, 0x00, 0x65, 0x45, 0x00, 0x2D,
+ 0x00, 0x2D, 0x00, 0x39, 0x00, 0x6E, 0x4E, 0x00, 0x69, 0x49, 0x00, 0x74, 0x54,
+ 0x00, 0x61, 0x41, 0x6F, 0x4F, 0x65, 0x45, 0x4F, 0x6F, 0x00, 0x72, 0x52, 0x00,
+ 0x75, 0x55, 0x00, 0x65, 0x45, 0x00, 0x2B, 0x00, 0x37, 0x00, 0x33, 0x00, 0x2D,
+ 0x00, 0x73, 0x53, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x75, 0x73, 0x6E, 0x6C, 0x6A, 0x69, 0x67, 0x66, 0x65, 0x64, 0x63, 0x55,
+ 0x53, 0x4E, 0x4C, 0x4A, 0x49, 0x47, 0x46, 0x45, 0x44, 0x43, 0x00, 0x00, 0x2D,
+ 0x00, 0x63, 0x43, 0x00, 0x69, 0x49, 0x00, 0x64, 0x44, 0x00, 0x63, 0x43, 0x34,
+ 0x38, 0x00, 0x31, 0x00, 0x31, 0x00, 0x2D, 0x00, 0x61, 0x41, 0x00, 0x6D, 0x4D,
+ 0x38, 0x00, 0x32, 0x00, 0x39, 0x00, 0x5F, 0x00, 0x74, 0x54, 0x00, 0x6F, 0x4F,
+ 0x4E, 0x6E, 0x50, 0x70, 0x3E, 0x00, 0x68, 0x48, 0x00, 0x00, 0x00, 0x74, 0x6B,
+ 0x6A, 0x63, 0x54, 0x4B, 0x4A, 0x43, 0x00, 0x74, 0x54, 0x2D, 0x00, 0x63, 0x43,
+ 0x5F, 0x00, 0x72, 0x52, 0x00, 0x6F, 0x4F, 0x00, 0x66, 0x46, 0x00, 0x5F, 0x00,
+ 0x74, 0x54, 0x00, 0x61, 0x41, 0x00, 0x6D, 0x4D, 0x00, 0x72, 0x52, 0x00, 0x6F,
+ 0x4F, 0x00, 0x66, 0x46, 0x00, 0x5F, 0x00, 0x64, 0x44, 0x00, 0x65, 0x45, 0x00,
+ 0x6B, 0x4B, 0x00, 0x63, 0x43, 0x00, 0x61, 0x41, 0x00, 0x70, 0x50, 0x00, 0x5F,
+ 0x00, 0x65, 0x45, 0x00, 0x64, 0x44, 0x00, 0x6F, 0x4F, 0x00, 0x63, 0x43, 0x00,
+ 0x5F, 0x00, 0x78, 0x58, 0x00, 0x69, 0x49, 0x00, 0x6E, 0x4E, 0x00, 0x75, 0x55,
+ 0x00, 0x5F, 0x00, 0x64, 0x44, 0x00, 0x65, 0x45, 0x00, 0x64, 0x44, 0x00, 0x6E,
+ 0x4E, 0x00, 0x65, 0x45, 0x00, 0x74, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78,
+ 0x75, 0x6C, 0x63, 0x62, 0x58, 0x55, 0x4C, 0x43, 0x42, 0x2D, 0x00, 0x32, 0x00,
+ 0x31, 0x00, 0x33, 0x00, 0x32, 0x00, 0x4B, 0x6B, 0x5F, 0x32, 0x00, 0x38, 0x00,
+ 0x6B, 0x4B, 0x00, 0x65, 0x45, 0x00, 0x65, 0x45, 0x00, 0x00, 0x72, 0x62, 0x52,
+ 0x42, 0x2D, 0x00, 0x70, 0x65, 0x50, 0x45, 0x30, 0x33, 0x34, 0x38, 0x39, 0x00,
+ 0x00, 0x00, 0x39, 0x36, 0x31, 0x30, 0x00, 0x33, 0x31, 0x00, 0x00, 0x00, 0x00,
+ 0x38, 0x32, 0x37, 0x35, 0x31, 0x30, 0x39, 0x35, 0x34, 0x32, 0x31, 0x31, 0x30,
+ 0x33, 0x36, 0x38, 0x35, 0x34, 0x30, 0x38, 0x37, 0x35, 0x39, 0x33, 0x37, 0x36,
+ 0x35, 0x39, 0x38, 0x30, 0x33, 0x32, 0x31, 0x34, 0x34, 0x32, 0x30, 0x33, 0x31,
+ 0x36, 0x35, 0x37, 0x38, 0x39, 0x30, 0x33, 0x31, 0x32, 0x36, 0x39, 0x37, 0x34,
+ 0x30, 0x39, 0x38, 0x37, 0x36, 0x35, 0x34, 0x33, 0x32, 0x31, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x39, 0x38, 0x36, 0x35, 0x34, 0x33, 0x32,
+ 0x31, 0x30, 0x31, 0x30, 0x32, 0x00, 0x30, 0x39, 0x38, 0x37, 0x36, 0x35, 0x34,
+ 0x33, 0x32, 0x31, 0x30, 0x00, 0x35, 0x00, 0x00, 0x00, 0x32, 0x31, 0x30, 0x00,
+ 0x38, 0x36, 0x00, 0x37, 0x00, 0x00, 0x00, 0x00, 0x39, 0x34, 0x37, 0x36, 0x38,
+ 0x35, 0x33, 0x32, 0x31, 0x00, 0x2D, 0x00, 0x61, 0x41, 0x00, 0x6E, 0x4E, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x39, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x39, 0x38, 0x37, 0x36, 0x35, 0x34, 0x33, 0x32, 0x31, 0x30, 0x00, 0x00, 0x00,
+ 0x00, 0x36, 0x37, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x37, 0x36, 0x33, 0x32, 0x31, 0x30, 0x31, 0x00, 0x00, 0x39, 0x38, 0x00,
+ 0x00, 0x00, 0x00, 0x38, 0x37, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x39,
+ 0x38, 0x35, 0x34, 0x32, 0x31, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x35,
+ 0x34, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x39, 0x33, 0x32, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x37, 0x33, 0x32, 0x30, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x37, 0x36, 0x35,
+ 0x34, 0x33, 0x00, 0x00, 0x00, 0x00, 0x34, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x34, 0x36, 0x35, 0x33, 0x32, 0x31, 0x31, 0x33, 0x38, 0x33, 0x35, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30,
+ 0x32, 0x38, 0x37, 0x36, 0x35, 0x34, 0x33, 0x31, 0x00, 0x00, 0x38, 0x00, 0x00,
+ 0x00, 0x36, 0x35, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x33,
+ 0x32, 0x31, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x37, 0x35, 0x33, 0x30,
+ 0x00, 0x00, 0x00, 0x00, 0x34, 0x31, 0x00, 0x32, 0x38, 0x00, 0x38, 0x00, 0x00,
+ 0x33, 0x34, 0x00, 0x00, 0x35, 0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x36,
+ 0x38, 0x33, 0x31, 0x30, 0x00, 0x00, 0x00, 0x00, 0x39, 0x32, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x39, 0x38, 0x37, 0x36, 0x34, 0x31, 0x00, 0x00, 0x34, 0x00,
+ 0x35, 0x00, 0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x37, 0x33, 0x32, 0x31, 0x30,
+ 0x00, 0x00, 0x36, 0x00, 0x34, 0x00, 0x00, 0x00, 0x36, 0x35, 0x00, 0x00, 0x39,
+ 0x00, 0x30, 0x00, 0x35, 0x34, 0x30, 0x37, 0x00, 0x00, 0x39, 0x37, 0x38, 0x35,
+ 0x00, 0x00, 0x00, 0x00, 0x31, 0x30, 0x32, 0x00, 0x32, 0x00, 0x37, 0x00, 0x00,
+ 0x37, 0x36, 0x33, 0x30, 0x00, 0x00, 0x36, 0x00, 0x37, 0x39, 0x00, 0x00, 0x38,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x33, 0x32, 0x31, 0x00, 0x00, 0x00, 0x00,
+ 0x35, 0x30, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, 0x00, 0x37, 0x36, 0x35, 0x34,
+ 0x00, 0x00, 0x32, 0x39, 0x33, 0x00, 0x00, 0x36, 0x00, 0x00, 0x35, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x35, 0x34, 0x33, 0x32, 0x30,
+ 0x00, 0x00, 0x00, 0x30, 0x35, 0x33, 0x32, 0x00, 0x00, 0x33, 0x00, 0x32, 0x39,
+ 0x38, 0x37, 0x36, 0x34, 0x30, 0x00, 0x00, 0x35, 0x34, 0x38, 0x00, 0x37, 0x00,
+ 0x00, 0x35, 0x00, 0x34, 0x00, 0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x37, 0x34,
+ 0x33, 0x31, 0x30, 0x00, 0x00, 0x32, 0x00, 0x35, 0x00, 0x39, 0x00, 0x00, 0x31,
+ 0x00, 0x00, 0x34, 0x00, 0x00, 0x35, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00, 0x00,
+ 0x34, 0x33, 0x32, 0x31, 0x00, 0x32, 0x00, 0x00, 0x32, 0x31, 0x00, 0x00, 0x30,
+ 0x00, 0x00, 0x37, 0x00, 0x00, 0x37, 0x33, 0x32, 0x39, 0x33, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x37, 0x36, 0x35, 0x33, 0x37, 0x35, 0x32,
+ 0x31, 0x30, 0x38, 0x00, 0x00, 0x00, 0x32, 0x00, 0x39, 0x36, 0x35, 0x33, 0x32,
+ 0x30, 0x38, 0x34, 0x31, 0x00, 0x00, 0x31, 0x30, 0x34, 0x38, 0x35, 0x00, 0x00,
+ 0x31, 0x37, 0x36, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x39, 0x37, 0x36,
+ 0x35, 0x33, 0x31, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00,
+ 0x36, 0x00, 0x00, 0x00, 0x34, 0x36, 0x35, 0x33, 0x38, 0x36, 0x34, 0x33, 0x32,
+ 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x34, 0x33, 0x31, 0x30,
+ 0x38, 0x37, 0x36, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x39, 0x38, 0x37, 0x36,
+ 0x35, 0x34, 0x33, 0x32, 0x30, 0x00, 0x39, 0x38, 0x37, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x33, 0x39, 0x37, 0x36, 0x34, 0x32, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x39, 0x38, 0x37,
+ 0x36, 0x31, 0x30, 0x00, 0x00, 0x00, 0x00, 0x35, 0x34, 0x30, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x37, 0x36, 0x35, 0x34, 0x33, 0x32, 0x31, 0x30,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x74, 0x54, 0x39,
+ 0x38, 0x37, 0x36, 0x35, 0x34, 0x33, 0x32, 0x31, 0x30, 0x31, 0x30, 0x30, 0x37,
+ 0x00, 0x00, 0x33, 0x30, 0x36, 0x38, 0x37, 0x33, 0x35, 0x34, 0x30, 0x37, 0x30,
+ 0x00, 0x00, 0x00, 0x00, 0x39, 0x38, 0x37, 0x35, 0x30, 0x31, 0x37, 0x00, 0x00,
+ 0x36, 0x30, 0x34, 0x33, 0x30, 0x37, 0x00, 0x00, 0x33, 0x32, 0x30, 0x00, 0x30,
+ 0x30, 0x37, 0x35, 0x00, 0x00, 0x00, 0x37, 0x33, 0x32, 0x39, 0x33, 0x38, 0x33,
+ 0x35, 0x36, 0x37, 0x37, 0x35, 0x32, 0x31, 0x30, 0x38, 0x39, 0x36, 0x35, 0x33,
+ 0x32, 0x31, 0x30, 0x38, 0x34, 0x34, 0x38, 0x31, 0x30, 0x35, 0x30, 0x37, 0x31,
+ 0x36, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x39, 0x38, 0x37, 0x36, 0x35,
+ 0x33, 0x31, 0x34, 0x35, 0x33, 0x35, 0x34, 0x33, 0x32, 0x36, 0x38, 0x30, 0x33,
+ 0x31, 0x34, 0x32, 0x36, 0x37, 0x38, 0x30, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,
+ 0x38, 0x39, 0x33, 0x32, 0x34, 0x36, 0x37, 0x39, 0x30, 0x31, 0x36, 0x37, 0x38,
+ 0x39, 0x34, 0x35, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x37,
+ 0x36, 0x35, 0x34, 0x33, 0x32, 0x31, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x39, 0x38, 0x37, 0x35, 0x34, 0x33, 0x32, 0x30, 0x38, 0x39, 0x30,
+ 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x36, 0x35, 0x37, 0x37,
+ 0x30, 0x31, 0x32, 0x33, 0x36, 0x31, 0x39, 0x38, 0x37, 0x38, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x39, 0x38, 0x35, 0x34, 0x32, 0x31, 0x30, 0x32, 0x34,
+ 0x35, 0x32, 0x33, 0x39, 0x30, 0x32, 0x33, 0x37, 0x39, 0x38, 0x37, 0x36, 0x35,
+ 0x34, 0x33, 0x32, 0x31, 0x30, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x30, 0x34,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x36, 0x35, 0x34, 0x33, 0x32, 0x31, 0x38,
+ 0x33, 0x31, 0x35, 0x33, 0x30, 0x32, 0x31, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38,
+ 0x36, 0x35, 0x30, 0x31, 0x32, 0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x37,
+ 0x35, 0x33, 0x30, 0x33, 0x34, 0x35, 0x33, 0x36, 0x33, 0x30, 0x31, 0x38, 0x32,
+ 0x39, 0x00, 0x00, 0x00, 0x00, 0x39, 0x38, 0x37, 0x36, 0x00, 0x00, 0x00, 0x00,
+ 0x33, 0x32, 0x31, 0x30, 0x36, 0x00, 0x39, 0x38, 0x31, 0x32, 0x33, 0x30, 0x35,
+ 0x31, 0x00, 0x00, 0x00, 0x00, 0x37, 0x36, 0x35, 0x34, 0x00, 0x00, 0x39, 0x33,
+ 0x36, 0x35, 0x30, 0x32, 0x33, 0x34, 0x35, 0x00, 0x00, 0x00, 0x35, 0x33, 0x32,
+ 0x33, 0x00, 0x32, 0x39, 0x38, 0x37, 0x36, 0x34, 0x30, 0x00, 0x00, 0x35, 0x34,
+ 0x38, 0x00, 0x37, 0x00, 0x00, 0x00, 0x00, 0x34, 0x33, 0x31, 0x30, 0x32, 0x00,
+ 0x31, 0x00, 0x36, 0x30, 0x36, 0x36, 0x00, 0x00, 0x00, 0x36, 0x35, 0x33, 0x39,
+ 0x38, 0x37, 0x00, 0x34, 0x00, 0x00, 0x34, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x39, 0x38, 0x35, 0x34, 0x31, 0x30, 0x38, 0x00, 0x30, 0x00, 0x37, 0x31,
+ 0x34, 0x00, 0x32, 0x38, 0x00, 0x38, 0x00, 0x00, 0x34, 0x31, 0x34, 0x00, 0x35,
+ 0x00, 0x33, 0x00, 0x00, 0x00, 0x37, 0x33, 0x32, 0x36, 0x00, 0x34, 0x00, 0x35,
+ 0x39, 0x00, 0x30, 0x00, 0x37, 0x00, 0x00, 0x38, 0x35, 0x32, 0x00, 0x32, 0x00,
+ 0x37, 0x00, 0x33, 0x35, 0x00, 0x34, 0x00, 0x33, 0x00, 0x37, 0x32, 0x00, 0x35,
+ 0x00, 0x39, 0x31, 0x34, 0x35, 0x35, 0x00, 0x00, 0x00, 0x00, 0x34, 0x33, 0x32,
+ 0x31, 0x00, 0x32, 0x00, 0x00, 0x32, 0x31, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x36, 0x35, 0x33, 0x32, 0x31, 0x30, 0x00, 0x64, 0x44, 0x00, 0x69, 0x49, 0x00,
+ 0x73, 0x53, 0x00, 0x63, 0x43, 0x00, 0x00, 0x00, 0x63, 0x43, 0x39, 0x38, 0x37,
+ 0x35, 0x34, 0x33, 0x32, 0x31, 0x30, 0x2D, 0x00, 0x6D, 0x4D, 0x32, 0x00, 0x2D,
+ 0x00, 0x73, 0x53, 0x00, 0x63, 0x43, 0x00, 0x75, 0x55, 0x00, 0x2D, 0x00, 0x36,
+ 0x00, 0x34, 0x00, 0x36, 0x00, 0x30, 0x31, 0x00, 0x2D, 0x00, 0x6E, 0x4E, 0x00,
+ 0x69, 0x49, 0x00, 0x74, 0x54, 0x00, 0x61, 0x41, 0x00, 0x6C, 0x4C, 0x00, 0x2D,
+ 0x00, 0x31, 0x00, 0x2E, 0x00, 0x33, 0x00, 0x2D, 0x00, 0x73, 0x53, 0x00, 0x77,
+ 0x57, 0x00, 0x6F, 0x4F, 0x00, 0x64, 0x44, 0x00, 0x6E, 0x4E, 0x00, 0x69, 0x49,
+ 0x00, 0x77, 0x57, 0x00, 0x00, 0x35, 0x33, 0x2D, 0x32, 0x00, 0x2D, 0x00, 0x6E,
+ 0x4E, 0x00, 0x69, 0x49, 0x00, 0x74, 0x54, 0x00, 0x61, 0x41, 0x00, 0x6C, 0x4C,
+ 0x00, 0x2D, 0x00, 0x73, 0x53, 0x00, 0x77, 0x57, 0x00, 0x6F, 0x4F, 0x00, 0x64,
+ 0x44, 0x00, 0x6E, 0x4E, 0x00, 0x69, 0x49, 0x00, 0x77, 0x57, 0x00, 0x00, 0x2D,
+ 0x00, 0x00, 0x36, 0x37, 0x38, 0x39, 0x34, 0x33, 0x35, 0x32, 0x31, 0x00, 0x2D,
+ 0x00, 0x39, 0x00, 0x35, 0x00, 0x38, 0x30, 0x39, 0x31, 0x30, 0x37, 0x36, 0x38,
+ 0x38, 0x39, 0x34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x33, 0x34, 0x32, 0x31, 0x30,
+ 0x00, 0x36, 0x35, 0x31, 0x00, 0x2D, 0x00, 0x72, 0x52, 0x00, 0x00, 0x00, 0x69,
+ 0x49, 0x38, 0x31, 0x53, 0x73, 0x00, 0x75, 0x55, 0x00, 0x2D, 0x00, 0x36, 0x00,
+ 0x34, 0x31, 0x00, 0x39, 0x00, 0x39, 0x00, 0x31, 0x00, 0x3A, 0x00, 0x76, 0x56,
+ 0x00, 0x72, 0x52, 0x00, 0x69, 0x49, 0x00, 0x2E, 0x00, 0x36, 0x00, 0x34, 0x37,
+ 0x00, 0x38, 0x00, 0x39, 0x00, 0x31, 0x00, 0x00, 0x35, 0x3A, 0x37, 0x00, 0x38,
+ 0x00, 0x39, 0x00, 0x31, 0x00, 0x00, 0x3A, 0x38, 0x00, 0x38, 0x00, 0x39, 0x00,
+ 0x31, 0x00, 0x00, 0x3A, 0x38, 0x00, 0x38, 0x00, 0x39, 0x00, 0x31, 0x00, 0x00,
+ 0x3A, 0x38, 0x00, 0x38, 0x00, 0x39, 0x00, 0x31, 0x00, 0x00, 0x3A, 0x37, 0x00,
+ 0x38, 0x00, 0x39, 0x00, 0x31, 0x00, 0x00, 0x3A, 0x37, 0x00, 0x38, 0x00, 0x39,
+ 0x00, 0x31, 0x00, 0x00, 0x3A, 0x38, 0x00, 0x39, 0x00, 0x31, 0x00, 0x00, 0x3A,
+ 0x39, 0x00, 0x38, 0x00, 0x39, 0x00, 0x31, 0x00, 0x00, 0x3A, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x39, 0x38, 0x37, 0x36, 0x35, 0x34, 0x33,
+ 0x32, 0x31, 0x00, 0x2D, 0x00, 0x39, 0x00, 0x35, 0x00, 0x38, 0x00, 0x00, 0x38,
+ 0x36, 0x00, 0x00, 0x00, 0x5F, 0x36, 0x2D, 0x00, 0x6F, 0x4F, 0x00, 0x00, 0x00,
+ 0x73, 0x62, 0x61, 0x53, 0x42, 0x41, 0x31, 0x00, 0x30, 0x00, 0x32, 0x00, 0x30,
+ 0x00, 0x58, 0x78, 0x00, 0x5F, 0x00, 0x73, 0x53, 0x00, 0x69, 0x49, 0x2D, 0x00,
+ 0x38, 0x4E, 0x6E, 0x00, 0x61, 0x41, 0x00, 0x65, 0x45, 0x00, 0x00, 0x72, 0x69,
+ 0x52, 0x49, 0x31, 0x00, 0x30, 0x00, 0x36, 0x00, 0x35, 0x00, 0x5F, 0x39, 0x37,
+ 0x00, 0x38, 0x00, 0x39, 0x00, 0x31, 0x00, 0x2D, 0x00, 0x31, 0x00, 0x30, 0x00,
+ 0x36, 0x00, 0x35, 0x00, 0x5F, 0x00, 0x63, 0x43, 0x00, 0x00, 0x63, 0x5F, 0x43,
+ 0x00, 0x00, 0x73, 0x6F, 0x53, 0x4F, 0x39, 0x00, 0x31, 0x35, 0x34, 0x33, 0x32,
+ 0x2D, 0x00, 0x6E, 0x4E, 0x00, 0x69, 0x49, 0x00, 0x74, 0x54, 0x00, 0x61, 0x41,
+ 0x35, 0x34, 0x33, 0x32, 0x31, 0x33, 0x49, 0x69, 0x00, 0x6A, 0x4A, 0x00, 0x6E,
+ 0x4E, 0x00, 0x61, 0x41, 0x00, 0x6B, 0x4B, 0x00, 0x00, 0x39, 0x5F, 0x00, 0x73,
+ 0x53, 0x6F, 0x4F, 0x00, 0x72, 0x52, 0x00, 0x75, 0x55, 0x00, 0x65, 0x45, 0x00,
+ 0x2B, 0x00, 0x30, 0x00, 0x35, 0x00, 0x38, 0x00, 0x2D, 0x00, 0x6C, 0x4C, 0x00,
+ 0x61, 0x41, 0x00, 0x75, 0x55, 0x00, 0x67, 0x47, 0x00, 0x6E, 0x4E, 0x00, 0x69,
+ 0x49, 0x00, 0x6C, 0x4C, 0x00, 0x69, 0x49, 0x00, 0x74, 0x54, 0x00, 0x6C, 0x4C,
+ 0x00, 0x75, 0x55, 0x00, 0x6D, 0x4D, 0x00, 0x2D, 0x00, 0x63, 0x43, 0x6F, 0x4F,
+ 0x38, 0x5F, 0x00, 0x74, 0x54, 0x00, 0x66, 0x46, 0x00, 0x69, 0x49, 0x00, 0x68,
+ 0x48, 0x2D, 0x00, 0x73, 0x53, 0x00, 0x69, 0x49, 0x32, 0x2D, 0x00, 0x73, 0x53,
+ 0x73, 0x53, 0x00, 0x61, 0x41, 0x00, 0x00, 0x2D, 0x6C, 0x62, 0x4C, 0x42, 0x2D,
+ 0x00, 0x36, 0x6C, 0x62, 0x4C, 0x42, 0x2D, 0x00, 0x32, 0x00, 0x00, 0x38, 0x33,
+ 0x31, 0x00, 0x38, 0x33, 0x31, 0x2D, 0x00, 0x66, 0x46, 0x00, 0x00, 0x00, 0x74,
+ 0x73, 0x63, 0x54, 0x53, 0x43, 0x39, 0x31, 0x00, 0x2D, 0x00, 0x73, 0x53, 0x00,
+ 0x77, 0x57, 0x00, 0x6F, 0x4F, 0x00, 0x64, 0x44, 0x00, 0x6E, 0x4E, 0x00, 0x69,
+ 0x49, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x37, 0x42, 0x28, 0x1B, 0x33, 0x42, 0x28,
+ 0x30, 0x31, 0x32, 0x35, 0x37, 0x42, 0x28, 0x30, 0x31, 0x32, 0x33, 0x35, 0x36,
+ 0x39, 0x42, 0x28, 0x1B, 0x1B, 0x35, 0x36, 0x42, 0x28, 0x34, 0x42, 0x28, 0x1B,
+ 0x30, 0x42, 0x28, 0x47, 0x67, 0x42, 0x28, 0x1B, 0x6E, 0x4E, 0x42, 0x28, 0x1B,
+ 0x69, 0x49, 0x42, 0x28, 0x1B, 0x64, 0x44, 0x42, 0x28, 0x1B, 0x6F, 0x4F, 0x42,
+ 0x28, 0x1B, 0x63, 0x43, 0x42, 0x28, 0x1B, 0x6E, 0x4E, 0x42, 0x28, 0x1B, 0x65,
+ 0x45, 0x42, 0x28, 0x1B, 0x2D, 0x42, 0x28, 0x1B, 0x64, 0x44, 0x42, 0x28, 0x1B,
+ 0x72, 0x52, 0x42, 0x28, 0x1B, 0x61, 0x41, 0x42, 0x28, 0x1B, 0x64, 0x44, 0x42,
+ 0x28, 0x1B, 0x6E, 0x4E, 0x42, 0x28, 0x1B, 0x61, 0x41, 0x42, 0x28, 0x1B, 0x74,
+ 0x54, 0x42, 0x28, 0x1B, 0x73, 0x53, 0x42, 0x28, 0x1B, 0x2D, 0x42, 0x28, 0x1B,
+ 0x65, 0x45, 0x42, 0x28, 0x1B, 0x62, 0x42, 0x42, 0x28, 0x1B, 0x6F, 0x4F, 0x42,
+ 0x28, 0x38, 0x42, 0x28, 0x36, 0x42, 0x28, 0x1B, 0x1B, 0x38, 0x36, 0x42, 0x28,
+ 0x1B, 0x39, 0x42, 0x28, 0x1B, 0x31, 0x42, 0x28, 0x1B, 0x2D, 0x42, 0x28, 0x1B,
+ 0x34, 0x42, 0x28, 0x1B, 0x2E, 0x42, 0x28, 0x1B, 0x33, 0x42, 0x28, 0x1B, 0x78,
+ 0x58, 0x42, 0x28, 0x1B, 0x5F, 0x42, 0x28, 0x1B, 0x69, 0x49, 0x42, 0x28, 0x1B,
+ 0x73, 0x53, 0x42, 0x28, 0x43, 0x63, 0x42, 0x28, 0x1B, 0x69, 0x49, 0x42, 0x28,
+ 0x1B, 0x62, 0x42, 0x42, 0x28, 0x1B, 0x61, 0x41, 0x42, 0x28, 0x49, 0x69, 0x42,
+ 0x28, 0x1B, 0x69, 0x49, 0x42, 0x28, 0x38, 0x42, 0x28, 0x1B, 0x30, 0x42, 0x28,
+ 0x1B, 0x37, 0x42, 0x28, 0x1B, 0x2D, 0x42, 0x28, 0x1B, 0x6F, 0x4F, 0x42, 0x28,
+ 0x1B, 0x1B, 0x43, 0x63, 0x6D, 0x4D, 0x42, 0x28, 0x1B, 0x1B, 0x1B, 0x1B, 0x52,
+ 0x72, 0x73, 0x6E, 0x64, 0x53, 0x4E, 0x44, 0x42, 0x28, 0x53, 0x73, 0x42, 0x28,
+ 0x1B, 0x63, 0x43, 0x42, 0x28, 0x1B, 0x73, 0x53, 0x42, 0x28, 0x1B, 0x6B, 0x4B,
+ 0x42, 0x28, 0x1B, 0x68, 0x48, 0x42, 0x28, 0x1B, 0x2D, 0x42, 0x28, 0x1B, 0x35,
+ 0x42, 0x28, 0x1B, 0x67, 0x47, 0x42, 0x28, 0x1B, 0x69, 0x49, 0x42, 0x28, 0x38,
+ 0x42, 0x28, 0x1B, 0x35, 0x42, 0x28, 0x34, 0x42, 0x28, 0x1B, 0x32, 0x42, 0x28,
+ 0x1B, 0x1B, 0x39, 0x38, 0x42, 0x28, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36,
+ 0x37, 0x38, 0x39, 0x42, 0x28, 0x1B, 0x34, 0x42, 0x28, 0x1B, 0x31, 0x42, 0x28,
+ 0x1B, 0x1B, 0x31, 0x30, 0x42, 0x28, 0x1B, 0x30, 0x42, 0x28, 0x1B, 0x64, 0x44,
+ 0x42, 0x28, 0x1B, 0x69, 0x49, 0x42, 0x28, 0x1B, 0x73, 0x53, 0x42, 0x28, 0x45,
+ 0x65, 0x42, 0x28, 0x1B, 0x73, 0x53, 0x42, 0x28, 0x1B, 0x65, 0x45, 0x42, 0x28,
+ 0x1B, 0x6E, 0x4E, 0x42, 0x28, 0x1B, 0x69, 0x49, 0x42, 0x28, 0x52, 0x72, 0x42,
+ 0x28, 0x52, 0x72, 0x42, 0x28, 0x53, 0x73, 0x42, 0x28, 0x1B, 0x1B, 0x1B, 0x69,
+ 0x67, 0x61, 0x49, 0x47, 0x41, 0x42, 0x28, 0x37, 0x42, 0x28, 0x1B, 0x33, 0x31,
+ 0x30, 0x42, 0x28, 0x36, 0x42, 0x28, 0x1B, 0x32, 0x42, 0x28, 0x1B, 0x30, 0x42,
+ 0x28, 0x33, 0x38, 0x42, 0x28, 0x30, 0x34, 0x35, 0x42, 0x28, 0x30, 0x37, 0x42,
+ 0x28, 0x1B, 0x1B, 0x1B, 0x39, 0x38, 0x37, 0x42, 0x28, 0x37, 0x42, 0x28, 0x1B,
+ 0x36, 0x42, 0x28, 0x30, 0x33, 0x34, 0x42, 0x28, 0x1B, 0x33, 0x32, 0x42, 0x28,
+ 0x30, 0x42, 0x28, 0x1B, 0x30, 0x42, 0x28, 0x35, 0x42, 0x28, 0x1B, 0x37, 0x42,
+ 0x28, 0x39, 0x42, 0x28, 0x30, 0x31, 0x32, 0x33, 0x35, 0x36, 0x39, 0x38, 0x34,
+ 0x42, 0x28, 0x30, 0x31, 0x42, 0x28, 0x30, 0x42, 0x28, 0x31, 0x42, 0x28, 0x1B,
+ 0x1B, 0x1B, 0x1B, 0x1B, 0x39, 0x38, 0x37, 0x36, 0x35, 0x31, 0x42, 0x28, 0x34,
+ 0x33, 0x35, 0x42, 0x28, 0x38, 0x42, 0x28, 0x36, 0x42, 0x28, 0x1B, 0x1B, 0x1B,
+ 0x33, 0x31, 0x30, 0x42, 0x28, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B,
+ 0x1B, 0x1B, 0x38, 0x37, 0x35, 0x34, 0x33, 0x30, 0x39, 0x32, 0x31, 0x2D, 0x42,
+ 0x28, 0x64, 0x44, 0x42, 0x28, 0x1B, 0x72, 0x52, 0x42, 0x28, 0x1B, 0x61, 0x41,
+ 0x42, 0x28, 0x1B, 0x64, 0x44, 0x42, 0x28, 0x1B, 0x6E, 0x4E, 0x42, 0x28, 0x1B,
+ 0x61, 0x41, 0x42, 0x28, 0x1B, 0x74, 0x54, 0x42, 0x28, 0x1B, 0x73, 0x53, 0x42,
+ 0x28, 0x1B, 0x65, 0x45, 0x42, 0x28, 0x1B, 0x62, 0x42, 0x42, 0x28, 0x1B, 0x6F,
+ 0x4F, 0x42, 0x28, 0x63, 0x43, 0x42, 0x28, 0x1B, 0x1B, 0x53, 0x73, 0x64, 0x44,
+ 0x42, 0x28, 0x35, 0x42, 0x28, 0x1B, 0x67, 0x47, 0x42, 0x28, 0x1B, 0x69, 0x49,
+ 0x42, 0x28, 0x52, 0x72, 0x42, 0x28, 0x45, 0x65, 0x42, 0x28, 0x1B, 0x73, 0x53,
+ 0x42, 0x28, 0x1B, 0x65, 0x45, 0x42, 0x28, 0x1B, 0x6E, 0x4E, 0x42, 0x28, 0x1B,
+ 0x61, 0x41, 0x42, 0x28, 0x1B, 0x70, 0x50, 0x42, 0x28, 0x1B, 0x61, 0x41, 0x42,
+ 0x28, 0x1B, 0x6A, 0x4A, 0x42, 0x28, 0x1B, 0x54, 0x74, 0x42, 0x28, 0x1B, 0x6D,
+ 0x4D, 0x42, 0x28, 0x1B, 0x66, 0x46, 0x42, 0x28, 0x1B, 0x64, 0x44, 0x42, 0x28,
+ 0x1B, 0x6B, 0x4B, 0x42, 0x28, 0x48, 0x68, 0x42, 0x28, 0x1B, 0x1B, 0x1B, 0x54,
+ 0x74, 0x4B, 0x6B, 0x70, 0x50, 0x42, 0x28, 0x1B, 0x63, 0x43, 0x42, 0x28, 0x1B,
+ 0x75, 0x55, 0x42, 0x28, 0x32, 0x42, 0x28, 0x1B, 0x31, 0x42, 0x28, 0x1B, 0x33,
+ 0x42, 0x28, 0x1B, 0x4B, 0x6B, 0x32, 0x42, 0x28, 0x1B, 0x62, 0x42, 0x42, 0x28,
+ 0x41, 0x61, 0x42, 0x28, 0x1B, 0x6E, 0x4E, 0x42, 0x28, 0x1B, 0x61, 0x41, 0x42,
+ 0x28, 0x1B, 0x6B, 0x4B, 0x42, 0x28, 0x1B, 0x61, 0x41, 0x42, 0x28, 0x1B, 0x74,
+ 0x54, 0x42, 0x28, 0x1B, 0x61, 0x41, 0x42, 0x28, 0x1B, 0x6B, 0x4B, 0x42, 0x28,
+ 0x1B, 0x68, 0x48, 0x42, 0x28, 0x1B, 0x74, 0x54, 0x42, 0x28, 0x1B, 0x64, 0x44,
+ 0x42, 0x28, 0x1B, 0x69, 0x49, 0x42, 0x28, 0x1B, 0x77, 0x57, 0x42, 0x28, 0x1B,
+ 0x66, 0x46, 0x42, 0x28, 0x1B, 0x6C, 0x4C, 0x42, 0x28, 0x38, 0x42, 0x28, 0x1B,
+ 0x6E, 0x4E, 0x42, 0x28, 0x1B, 0x61, 0x41, 0x42, 0x28, 0x1B, 0x6D, 0x4D, 0x42,
+ 0x28, 0x1B, 0x4F, 0x6F, 0x42, 0x28, 0x1B, 0x72, 0x52, 0x42, 0x28, 0x1B, 0x1B,
+ 0x50, 0x70, 0x61, 0x41, 0x42, 0x28, 0x1B, 0x39, 0x42, 0x28, 0x1B, 0x6D, 0x4D,
+ 0x42, 0x28, 0x37, 0x42, 0x28, 0x1B, 0x34, 0x32, 0x42, 0x28, 0x1B, 0x30, 0x42,
+ 0x28, 0x33, 0x38, 0x37, 0x42, 0x28, 0x1B, 0x39, 0x38, 0x37, 0x42, 0x28, 0x32,
+ 0x42, 0x28, 0x31, 0x35, 0x37, 0x42, 0x28, 0x30, 0x31, 0x33, 0x35, 0x36, 0x39,
+ 0x38, 0x34, 0x42, 0x28, 0x1B, 0x1B, 0x39, 0x38, 0x37, 0x36, 0x35, 0x42, 0x28,
+ 0x33, 0x35, 0x42, 0x28, 0x1B, 0x31, 0x30, 0x42, 0x28, 0x49, 0x69, 0x42, 0x28,
+ 0x1B, 0x61, 0x41, 0x42, 0x28, 0x1B, 0x68, 0x48, 0x42, 0x28, 0x1B, 0x1B, 0x1B,
+ 0x1B, 0x1B, 0x1B, 0x35, 0x30, 0x54, 0x74, 0x32, 0x31, 0x39, 0x38, 0x34, 0x42,
+ 0x28, 0x1B, 0x1B, 0x6D, 0x62, 0x4D, 0x42, 0x42, 0x28, 0x30, 0x42, 0x28, 0x1B,
+ 0x38, 0x42, 0x28, 0x1B, 0x32, 0x42, 0x28, 0x1B, 0x31, 0x42, 0x28, 0x1B, 0x33,
+ 0x42, 0x28, 0x1B, 0x32, 0x42, 0x28, 0x1B, 0x62, 0x42, 0x42, 0x28, 0x1B, 0x67,
+ 0x47, 0x42, 0x28, 0x1B, 0x38, 0x42, 0x28, 0x33, 0x35, 0x42, 0x28, 0x1B, 0x31,
+ 0x42, 0x28, 0x1B, 0x39, 0x42, 0x28, 0x1B, 0x35, 0x42, 0x28, 0x1B, 0x38, 0x42,
+ 0x28, 0x72, 0x52, 0x42, 0x28, 0x43, 0x63, 0x42, 0x28, 0x1B, 0x69, 0x49, 0x42,
+ 0x28, 0x1B, 0x6C, 0x4C, 0x42, 0x28, 0x1B, 0x6C, 0x4C, 0x42, 0x28, 0x1B, 0x69,
+ 0x49, 0x42, 0x28, 0x1B, 0x72, 0x52, 0x42, 0x28, 0x1B, 0x79, 0x59, 0x42, 0x28,
+ 0x4B, 0x6B, 0x42, 0x28, 0x1B, 0x65, 0x45, 0x42, 0x28, 0x1B, 0x65, 0x45, 0x42,
+ 0x28, 0x1B, 0x72, 0x52, 0x42, 0x28, 0x57, 0x77, 0x42, 0x28, 0x1B, 0x65, 0x45,
+ 0x42, 0x28, 0x1B, 0x72, 0x52, 0x42, 0x28, 0x1B, 0x62, 0x42, 0x42, 0x28, 0x1B,
+ 0x45, 0x65, 0x42, 0x28, 0x1B, 0x1B, 0x1B, 0x1B, 0x31, 0x32, 0x33, 0x34, 0x35,
+ 0x68, 0x67, 0x63, 0x61, 0x48, 0x47, 0x43, 0x41, 0x42, 0x28, 0x1B, 0x6E, 0x4E,
+ 0x42, 0x28, 0x1B, 0x69, 0x49, 0x42, 0x28, 0x1B, 0x74, 0x54, 0x42, 0x28, 0x1B,
+ 0x61, 0x41, 0x42, 0x28, 0x1B, 0x1B, 0x1B, 0x6C, 0x4C, 0x38, 0x35, 0x42, 0x28,
+ 0x1B, 0x6F, 0x4F, 0x42, 0x28, 0x1B, 0x1B, 0x73, 0x62, 0x53, 0x42, 0x42, 0x28,
+ 0x52, 0x72, 0x42, 0x28, 0x1B, 0x38, 0x42, 0x28, 0x1B, 0x69, 0x49, 0x42, 0x28,
+ 0x37, 0x42, 0x28, 0x1B, 0x38, 0x42, 0x28, 0x1B, 0x39, 0x42, 0x28, 0x1B, 0x31,
+ 0x42, 0x28, 0x1B, 0x31, 0x42, 0x28, 0x1B, 0x30, 0x42, 0x28, 0x1B, 0x36, 0x42,
+ 0x28, 0x1B, 0x35, 0x42, 0x28, 0x1B, 0x63, 0x43, 0x42, 0x28, 0x1B, 0x1B, 0x73,
+ 0x6F, 0x53, 0x4F, 0x42, 0x28, 0x43, 0x63, 0x42, 0x28, 0x1B, 0x69, 0x49, 0x42,
+ 0x28, 0x1B, 0x74, 0x54, 0x42, 0x28, 0x1B, 0x6C, 0x4C, 0x42, 0x28, 0x1B, 0x61,
+ 0x41, 0x42, 0x28, 0x1B, 0x62, 0x42, 0x42, 0x28, 0x1B, 0x35, 0x42, 0x28, 0x1B,
+ 0x37, 0x42, 0x28, 0x4C, 0x6C, 0x42, 0x28, 0x1B, 0x61, 0x41, 0x42, 0x28, 0x1B,
+ 0x75, 0x55, 0x42, 0x28, 0x1B, 0x67, 0x47, 0x42, 0x28, 0x1B, 0x6E, 0x4E, 0x42,
+ 0x28, 0x1B, 0x69, 0x49, 0x42, 0x28, 0x1B, 0x6C, 0x4C, 0x42, 0x28, 0x1B, 0x69,
+ 0x49, 0x42, 0x28, 0x1B, 0x74, 0x54, 0x42, 0x28, 0x1B, 0x6C, 0x4C, 0x42, 0x28,
+ 0x1B, 0x75, 0x55, 0x42, 0x28, 0x1B, 0x6D, 0x4D, 0x42, 0x28, 0x1B, 0x30, 0x42,
+ 0x28, 0x57, 0x77, 0x42, 0x28, 0x1B, 0x65, 0x45, 0x42, 0x28, 0x1B, 0x72, 0x52,
+ 0x42, 0x28, 0x1B, 0x62, 0x42, 0x42, 0x28, 0x1B, 0x65, 0x45, 0x42, 0x28, 0x1B,
+ 0x68, 0x48, 0x42, 0x28, 0x1B, 0x6E, 0x4E, 0x42, 0x28, 0x1B, 0x69, 0x49, 0x42,
+ 0x28, 0x1B, 0x74, 0x54, 0x42, 0x28, 0x1B, 0x61, 0x41, 0x42, 0x28, 0x1B, 0x6C,
+ 0x4C, 0x42, 0x28, 0x1B, 0x32, 0x42, 0x28, 0x1B, 0x34, 0x42, 0x28, 0x1B, 0x65,
+ 0x45, 0x42, 0x28, 0x1B, 0x67, 0x47, 0x42, 0x28, 0x1B, 0x61, 0x41, 0x42, 0x28,
+ 0x1B, 0x70, 0x50, 0x42, 0x28, 0x1B, 0x65, 0x45, 0x42, 0x28, 0x1B, 0x64, 0x44,
+ 0x42, 0x28, 0x1B, 0x6F, 0x4F, 0x42, 0x28, 0x1B, 0x1B, 0x1B, 0x63, 0x43, 0x36,
+ 0x35, 0x42, 0x28, 0x32, 0x42, 0x28, 0x1B, 0x35, 0x42, 0x28, 0x1B, 0x38, 0x42,
+ 0x28, 0x1B, 0x1B, 0x1B, 0x70, 0x50, 0x38, 0x37, 0x42, 0x28, 0x1B, 0x63, 0x43,
+ 0x42, 0x28, 0x53, 0x73, 0x42, 0x28, 0x1B, 0x69, 0x49, 0x42, 0x28, 0x1B, 0x6A,
+ 0x4A, 0x42, 0x28, 0x1B, 0x54, 0x74, 0x42, 0x28, 0x1B, 0x66, 0x46, 0x42, 0x28,
+ 0x1B, 0x69, 0x49, 0x42, 0x28, 0x1B, 0x68, 0x48, 0x42, 0x28, 0x30, 0x42, 0x28,
+ 0x1B, 0x32, 0x42, 0x28, 0x1B, 0x36, 0x42, 0x28, 0x1B, 0x53, 0x73, 0x42, 0x28,
+ 0x1B, 0x69, 0x49, 0x42, 0x28, 0x45, 0x65, 0x42, 0x28, 0x1B, 0x64, 0x44, 0x42,
+ 0x28, 0x1B, 0x6F, 0x4F, 0x42, 0x28, 0x1B, 0x63, 0x43, 0x42, 0x28, 0x1B, 0x69,
+ 0x49, 0x42, 0x28, 0x45, 0x65, 0x42, 0x28, 0x45, 0x65, 0x42, 0x28, 0x1B, 0x1B,
+ 0x4C, 0x6C, 0x42, 0x62, 0x42, 0x28, 0x1B, 0x36, 0x42, 0x28, 0x45, 0x65, 0x42,
+ 0x28, 0x45, 0x65, 0x42, 0x28, 0x1B, 0x1B, 0x4C, 0x6C, 0x42, 0x62, 0x42, 0x28,
+ 0x1B, 0x32, 0x42, 0x28, 0x1B, 0x1B, 0x38, 0x33, 0x31, 0x42, 0x28, 0x1B, 0x66,
+ 0x46, 0x42, 0x28, 0x1B, 0x1B, 0x74, 0x6E, 0x54, 0x4E, 0x42, 0x28, 0x30, 0x31,
+ 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x42, 0x28, 0x1B, 0x35, 0x42, 0x28,
+ 0x1B, 0x32, 0x42, 0x28, 0x31, 0x32, 0x42, 0x28, 0x1B, 0x6E, 0x4E, 0x42, 0x28,
+ 0x1B, 0x69, 0x49, 0x42, 0x28, 0x1B, 0x74, 0x54, 0x42, 0x28, 0x1B, 0x61, 0x41,
+ 0x42, 0x28, 0x1B, 0x6C, 0x4C, 0x42, 0x28, 0x1B, 0x31, 0x42, 0x28, 0x1B, 0x1B,
+ 0x31, 0x33, 0x42, 0x28, 0x1B, 0x73, 0x53, 0x42, 0x28, 0x1B, 0x77, 0x57, 0x42,
+ 0x28, 0x1B, 0x6F, 0x4F, 0x42, 0x28, 0x1B, 0x64, 0x44, 0x42, 0x28, 0x1B, 0x6E,
+ 0x4E, 0x42, 0x28, 0x1B, 0x69, 0x49, 0x42, 0x28, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B,
+ 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x77, 0x75, 0x74, 0x73, 0x70, 0x6B,
+ 0x69, 0x68, 0x67, 0x65, 0x62, 0x61, 0x57, 0x55, 0x54, 0x53, 0x50, 0x4B, 0x49,
+ 0x48, 0x47, 0x45, 0x42, 0x41, 0x42, 0x28, 0x43, 0x63, 0x42, 0x28, 0x1B, 0x69,
+ 0x49, 0x42, 0x28, 0x1B, 0x6C, 0x4C, 0x42, 0x28, 0x1B, 0x6C, 0x4C, 0x42, 0x28,
+ 0x1B, 0x69, 0x49, 0x42, 0x28, 0x1B, 0x72, 0x52, 0x42, 0x28, 0x1B, 0x1B, 0x1B,
+ 0x1B, 0x1B, 0x79, 0x73, 0x70, 0x68, 0x63, 0x59, 0x53, 0x50, 0x48, 0x43, 0x42,
+ 0x28, 0x31, 0x32, 0x42, 0x28, 0x1B, 0x72, 0x52, 0x42, 0x28, 0x45, 0x65, 0x42,
+ 0x28, 0x41, 0x61, 0x48, 0x68, 0x42, 0x28, 0x4B, 0x6B, 0x42, 0x28, 0x53, 0x73,
+ 0x42, 0x28, 0x49, 0x69, 0x52, 0x72, 0x42, 0x28, 0x42, 0x62, 0x52, 0x72, 0x42,
+ 0x28, 0x45, 0x65, 0x42, 0x28, 0x54, 0x74, 0x53, 0x73, 0x42, 0x28, 0x4C, 0x6C,
+ 0x4F, 0x6F, 0x42, 0x28, 0x45, 0x65, 0x42, 0x28, 0x1B, 0x63, 0x43, 0x42, 0x28,
+ 0x1B, 0x65, 0x45, 0x42, 0x28, 0x1B, 0x6F, 0x4F, 0x42, 0x28, 0x45, 0x65, 0x42,
+ 0x28, 0x52, 0x72, 0x42, 0x28, 0x53, 0x73, 0x42, 0x28, 0x54, 0x74, 0x42, 0x28,
+ 0x55, 0x75, 0x42, 0x28, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B,
+ 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x79, 0x77, 0x75, 0x74, 0x73, 0x72,
+ 0x6E, 0x69, 0x68, 0x67, 0x66, 0x65, 0x64, 0x63, 0x62, 0x61, 0x59, 0x57, 0x55,
+ 0x54, 0x53, 0x52, 0x4E, 0x49, 0x48, 0x47, 0x46, 0x45, 0x44, 0x43, 0x42, 0x41,
+ 0x42, 0x28, 0x1B, 0x2D, 0x42, 0x28, 0x43, 0x63, 0x42, 0x28, 0x1B, 0x69, 0x49,
+ 0x42, 0x28, 0x1B, 0x6C, 0x4C, 0x42, 0x28, 0x1B, 0x6C, 0x4C, 0x42, 0x28, 0x1B,
+ 0x69, 0x49, 0x42, 0x28, 0x1B, 0x72, 0x52, 0x42, 0x28, 0x1B, 0x1B, 0x79, 0x70,
+ 0x59, 0x50, 0x42, 0x28, 0x4F, 0x6F, 0x42, 0x28, 0x1B, 0x72, 0x52, 0x42, 0x28,
+ 0x1B, 0x75, 0x55, 0x42, 0x28, 0x1B, 0x65, 0x45, 0x42, 0x28, 0x1B, 0x2B, 0x42,
+ 0x28, 0x1B, 0x33, 0x42, 0x28, 0x1B, 0x37, 0x42, 0x28, 0x1B, 0x32, 0x42, 0x28,
+ 0x1B, 0x2D, 0x42, 0x28, 0x4F, 0x6F, 0x42, 0x28, 0x1B, 0x72, 0x52, 0x42, 0x28,
+ 0x1B, 0x75, 0x55, 0x42, 0x28, 0x1B, 0x65, 0x45, 0x42, 0x28, 0x1B, 0x2B, 0x42,
+ 0x28, 0x1B, 0x37, 0x42, 0x28, 0x1B, 0x37, 0x42, 0x28, 0x1B, 0x32, 0x42, 0x28,
+ 0x1B, 0x2D, 0x42, 0x28, 0x1B, 0x1B, 0x4B, 0x6B, 0x65, 0x45, 0x42, 0x28, 0x4F,
+ 0x6F, 0x42, 0x28, 0x1B, 0x72, 0x52, 0x42, 0x28, 0x1B, 0x75, 0x55, 0x42, 0x28,
+ 0x1B, 0x65, 0x45, 0x42, 0x28, 0x1B, 0x2B, 0x42, 0x28, 0x1B, 0x34, 0x42, 0x28,
+ 0x1B, 0x38, 0x42, 0x28, 0x1B, 0x32, 0x42, 0x28, 0x1B, 0x2D, 0x42, 0x28, 0x1B,
+ 0x73, 0x53, 0x42, 0x28, 0x4F, 0x6F, 0x42, 0x28, 0x1B, 0x72, 0x52, 0x42, 0x28,
+ 0x1B, 0x75, 0x55, 0x42, 0x28, 0x1B, 0x65, 0x45, 0x42, 0x28, 0x1B, 0x2B, 0x42,
+ 0x28, 0x1B, 0x38, 0x42, 0x28, 0x1B, 0x37, 0x42, 0x28, 0x1B, 0x32, 0x42, 0x28,
+ 0x1B, 0x2D, 0x42, 0x28, 0x4F, 0x6F, 0x42, 0x28, 0x1B, 0x72, 0x52, 0x42, 0x28,
+ 0x1B, 0x75, 0x55, 0x42, 0x28, 0x1B, 0x65, 0x45, 0x42, 0x28, 0x1B, 0x2B, 0x42,
+ 0x28, 0x1B, 0x37, 0x42, 0x28, 0x1B, 0x39, 0x42, 0x28, 0x1B, 0x32, 0x42, 0x28,
+ 0x1B, 0x2D, 0x42, 0x28, 0x1B, 0x1B, 0x49, 0x69, 0x72, 0x52, 0x42, 0x28, 0x4F,
+ 0x6F, 0x42, 0x28, 0x1B, 0x72, 0x52, 0x42, 0x28, 0x1B, 0x75, 0x55, 0x42, 0x28,
+ 0x1B, 0x65, 0x45, 0x42, 0x28, 0x1B, 0x2B, 0x42, 0x28, 0x1B, 0x35, 0x42, 0x28,
+ 0x1B, 0x38, 0x42, 0x28, 0x1B, 0x32, 0x42, 0x28, 0x1B, 0x2D, 0x42, 0x28, 0x1B,
+ 0x62, 0x42, 0x42, 0x28, 0x4F, 0x6F, 0x42, 0x28, 0x1B, 0x72, 0x52, 0x42, 0x28,
+ 0x1B, 0x75, 0x55, 0x42, 0x28, 0x1B, 0x65, 0x45, 0x42, 0x28, 0x1B, 0x2B, 0x42,
+ 0x28, 0x1B, 0x30, 0x42, 0x28, 0x1B, 0x30, 0x42, 0x28, 0x1B, 0x35, 0x42, 0x28,
+ 0x1B, 0x2D, 0x42, 0x28, 0x1B, 0x6C, 0x4C, 0x42, 0x28, 0x1B, 0x61, 0x41, 0x42,
+ 0x28, 0x1B, 0x6E, 0x4E, 0x42, 0x28, 0x1B, 0x6F, 0x4F, 0x42, 0x28, 0x1B, 0x69,
+ 0x49, 0x42, 0x28, 0x1B, 0x74, 0x54, 0x42, 0x28, 0x1B, 0x61, 0x41, 0x42, 0x28,
+ 0x1B, 0x6E, 0x4E, 0x42, 0x28, 0x1B, 0x72, 0x52, 0x42, 0x28, 0x1B, 0x65, 0x45,
+ 0x42, 0x28, 0x1B, 0x74, 0x54, 0x42, 0x28, 0x4F, 0x6F, 0x42, 0x28, 0x1B, 0x72,
+ 0x52, 0x42, 0x28, 0x1B, 0x75, 0x55, 0x42, 0x28, 0x1B, 0x65, 0x45, 0x42, 0x28,
+ 0x1B, 0x2B, 0x42, 0x28, 0x1B, 0x31, 0x42, 0x28, 0x1B, 0x37, 0x42, 0x28, 0x1B,
+ 0x38, 0x42, 0x28, 0x1B, 0x2D, 0x42, 0x28, 0x4F, 0x6F, 0x42, 0x28, 0x1B, 0x72,
+ 0x52, 0x42, 0x28, 0x1B, 0x75, 0x55, 0x42, 0x28, 0x1B, 0x65, 0x45, 0x42, 0x28,
+ 0x1B, 0x2B, 0x42, 0x28, 0x1B, 0x30, 0x42, 0x28, 0x1B, 0x38, 0x42, 0x28, 0x1B,
+ 0x32, 0x42, 0x28, 0x1B, 0x2D, 0x42, 0x28, 0x1B, 0x1B, 0x1B, 0x74, 0x73, 0x6E,
+ 0x54, 0x53, 0x4E, 0x42, 0x28, 0x41, 0x61, 0x42, 0x28, 0x1B, 0x6E, 0x4E, 0x42,
+ 0x28, 0x1B, 0x61, 0x41, 0x42, 0x28, 0x1B, 0x6B, 0x4B, 0x42, 0x28, 0x1B, 0x2D,
+ 0x42, 0x28, 0x1B, 0x70, 0x50, 0x42, 0x28, 0x4F, 0x6F, 0x42, 0x28, 0x1B, 0x72,
+ 0x52, 0x42, 0x28, 0x1B, 0x75, 0x55, 0x42, 0x28, 0x1B, 0x65, 0x45, 0x42, 0x28,
+ 0x1B, 0x2D, 0x42, 0x28, 0x1B, 0x2D, 0x42, 0x28, 0x1B, 0x39, 0x42, 0x28, 0x1B,
+ 0x6E, 0x4E, 0x42, 0x28, 0x1B, 0x69, 0x49, 0x42, 0x28, 0x1B, 0x74, 0x54, 0x42,
+ 0x28, 0x1B, 0x61, 0x41, 0x42, 0x28, 0x6F, 0x4F, 0x42, 0x28, 0x65, 0x45, 0x42,
+ 0x28, 0x4F, 0x6F, 0x42, 0x28, 0x1B, 0x72, 0x52, 0x42, 0x28, 0x1B, 0x75, 0x55,
+ 0x42, 0x28, 0x1B, 0x65, 0x45, 0x42, 0x28, 0x1B, 0x2B, 0x42, 0x28, 0x1B, 0x37,
+ 0x42, 0x28, 0x1B, 0x33, 0x42, 0x28, 0x1B, 0x2D, 0x42, 0x28, 0x1B, 0x73, 0x53,
+ 0x42, 0x28, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B,
+ 0x75, 0x73, 0x6E, 0x6C, 0x6A, 0x69, 0x67, 0x66, 0x65, 0x64, 0x63, 0x55, 0x53,
+ 0x4E, 0x4C, 0x4A, 0x49, 0x47, 0x46, 0x45, 0x44, 0x43, 0x42, 0x28, 0x1B, 0x2D,
+ 0x42, 0x28, 0x00, 0x1B, 0x63, 0x43, 0x42, 0x28, 0x1B, 0x69, 0x49, 0x42, 0x28,
+ 0x1B, 0x64, 0x44, 0x42, 0x28, 0x1B, 0x63, 0x43, 0x42, 0x28, 0x34, 0x38, 0x42,
+ 0x28, 0x1B, 0x31, 0x42, 0x28, 0x1B, 0x31, 0x42, 0x28, 0x1B, 0x2D, 0x42, 0x28,
+ 0x1B, 0x61, 0x41, 0x42, 0x28, 0x1B, 0x6D, 0x4D, 0x42, 0x28, 0x38, 0x42, 0x28,
+ 0x1B, 0x32, 0x42, 0x28, 0x1B, 0x39, 0x42, 0x28, 0x1B, 0x5F, 0x42, 0x28, 0x1B,
+ 0x74, 0x54, 0x42, 0x28, 0x1B, 0x6F, 0x4F, 0x42, 0x28, 0x4E, 0x6E, 0x42, 0x28,
+ 0x50, 0x70, 0x42, 0x28, 0x3E, 0x42, 0x28, 0x1B, 0x68, 0x48, 0x42, 0x28, 0x1B,
+ 0x1B, 0x1B, 0x74, 0x6B, 0x6A, 0x63, 0x54, 0x4B, 0x4A, 0x43, 0x42, 0x28, 0x1B,
+ 0x74, 0x54, 0x2D, 0x42, 0x28, 0x1B, 0x63, 0x43, 0x42, 0x28, 0x5F, 0x42, 0x28,
+ 0x1B, 0x72, 0x52, 0x42, 0x28, 0x1B, 0x6F, 0x4F, 0x42, 0x28, 0x1B, 0x66, 0x46,
+ 0x42, 0x28, 0x1B, 0x5F, 0x42, 0x28, 0x1B, 0x74, 0x54, 0x42, 0x28, 0x1B, 0x61,
+ 0x41, 0x42, 0x28, 0x1B, 0x6D, 0x4D, 0x42, 0x28, 0x1B, 0x72, 0x52, 0x42, 0x28,
+ 0x1B, 0x6F, 0x4F, 0x42, 0x28, 0x1B, 0x66, 0x46, 0x42, 0x28, 0x1B, 0x5F, 0x42,
+ 0x28, 0x1B, 0x64, 0x44, 0x42, 0x28, 0x1B, 0x65, 0x45, 0x42, 0x28, 0x1B, 0x6B,
+ 0x4B, 0x42, 0x28, 0x1B, 0x63, 0x43, 0x42, 0x28, 0x1B, 0x61, 0x41, 0x42, 0x28,
+ 0x1B, 0x70, 0x50, 0x42, 0x28, 0x1B, 0x5F, 0x42, 0x28, 0x1B, 0x65, 0x45, 0x42,
+ 0x28, 0x1B, 0x64, 0x44, 0x42, 0x28, 0x1B, 0x6F, 0x4F, 0x42, 0x28, 0x1B, 0x63,
+ 0x43, 0x42, 0x28, 0x1B, 0x5F, 0x42, 0x28, 0x1B, 0x78, 0x58, 0x42, 0x28, 0x1B,
+ 0x69, 0x49, 0x42, 0x28, 0x1B, 0x6E, 0x4E, 0x42, 0x28, 0x1B, 0x75, 0x55, 0x42,
+ 0x28, 0x1B, 0x5F, 0x42, 0x28, 0x1B, 0x64, 0x44, 0x42, 0x28, 0x1B, 0x65, 0x45,
+ 0x42, 0x28, 0x1B, 0x64, 0x44, 0x42, 0x28, 0x1B, 0x6E, 0x4E, 0x42, 0x28, 0x1B,
+ 0x65, 0x45, 0x42, 0x28, 0x1B, 0x74, 0x54, 0x42, 0x28, 0x1B, 0x1B, 0x1B, 0x1B,
+ 0x1B, 0x78, 0x75, 0x6C, 0x63, 0x62, 0x58, 0x55, 0x4C, 0x43, 0x42, 0x42, 0x28,
+ 0x2D, 0x42, 0x28, 0x1B, 0x32, 0x42, 0x28, 0x1B, 0x31, 0x42, 0x28, 0x1B, 0x33,
+ 0x42, 0x28, 0x1B, 0x32, 0x42, 0x28, 0x1B, 0x4B, 0x6B, 0x5F, 0x32, 0x42, 0x28,
+ 0x00, 0x1B, 0x6B, 0x4B, 0x42, 0x28, 0x1B, 0x65, 0x45, 0x42, 0x28, 0x1B, 0x65,
+ 0x45, 0x42, 0x28, 0x1B, 0x1B, 0x72, 0x62, 0x52, 0x42, 0x42, 0x28, 0x2D, 0x42,
+ 0x28, 0x1B, 0x70, 0x65, 0x50, 0x45, 0x42, 0x28, 0x30, 0x42, 0x28, 0x33, 0x34,
+ 0x38, 0x39, 0x42, 0x28, 0x1B, 0x1B, 0x39, 0x36, 0x31, 0x30, 0x42, 0x28, 0x33,
+ 0x31, 0x42, 0x28, 0x00, 0x1B, 0x00, 0x1B, 0x38, 0x32, 0x37, 0x35, 0x31, 0x30,
+ 0x42, 0x28, 0x39, 0x35, 0x34, 0x31, 0x32, 0x42, 0x28, 0x31, 0x30, 0x33, 0x36,
+ 0x42, 0x28, 0x38, 0x35, 0x42, 0x28, 0x30, 0x34, 0x35, 0x37, 0x38, 0x39, 0x33,
+ 0x42, 0x28, 0x35, 0x36, 0x37, 0x38, 0x39, 0x30, 0x31, 0x32, 0x33, 0x34, 0x42,
+ 0x28, 0x30, 0x32, 0x34, 0x33, 0x31, 0x35, 0x36, 0x37, 0x38, 0x39, 0x42, 0x28,
+ 0x30, 0x33, 0x31, 0x32, 0x42, 0x28, 0x36, 0x39, 0x37, 0x34, 0x42, 0x28, 0x30,
+ 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x42, 0x28, 0x1B, 0x1B,
+ 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x39, 0x38, 0x36, 0x35, 0x34, 0x33,
+ 0x32, 0x31, 0x30, 0x42, 0x28, 0x31, 0x30, 0x32, 0x42, 0x28, 0x1B, 0x30, 0x42,
+ 0x28, 0x39, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x42, 0x28,
+ 0x1B, 0x35, 0x42, 0x28, 0x1B, 0x1B, 0x1B, 0x32, 0x31, 0x30, 0x42, 0x28, 0x38,
+ 0x36, 0x42, 0x28, 0x37, 0x42, 0x28, 0x00, 0x1B, 0x00, 0x1B, 0x1B, 0x1B, 0x39,
+ 0x34, 0x36, 0x37, 0x38, 0x35, 0x33, 0x32, 0x31, 0x42, 0x28, 0x1B, 0x2D, 0x42,
+ 0x28, 0x1B, 0x61, 0x41, 0x42, 0x28, 0x1B, 0x6E, 0x4E, 0x42, 0x28, 0x38, 0x39,
+ 0x42, 0x28, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x42,
+ 0x28, 0x36, 0x35, 0x37, 0x42, 0x28, 0x37, 0x30, 0x31, 0x32, 0x33, 0x36, 0x42,
+ 0x28, 0x31, 0x42, 0x28, 0x39, 0x38, 0x42, 0x28, 0x37, 0x38, 0x42, 0x28, 0x1B,
+ 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x39, 0x38, 0x35, 0x34, 0x32, 0x31, 0x30,
+ 0x42, 0x28, 0x32, 0x34, 0x35, 0x42, 0x28, 0x32, 0x33, 0x39, 0x42, 0x28, 0x30,
+ 0x32, 0x33, 0x37, 0x42, 0x28, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x42, 0x28,
+ 0x30, 0x34, 0x42, 0x28, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x34, 0x36, 0x35, 0x33,
+ 0x32, 0x31, 0x42, 0x28, 0x31, 0x33, 0x38, 0x42, 0x28, 0x33, 0x35, 0x42, 0x28,
+ 0x32, 0x30, 0x31, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x42, 0x28, 0x38, 0x42,
+ 0x28, 0x1B, 0x36, 0x35, 0x30, 0x42, 0x28, 0x30, 0x31, 0x32, 0x33, 0x42, 0x28,
+ 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x38, 0x37, 0x35, 0x33, 0x30, 0x42, 0x28, 0x31,
+ 0x34, 0x42, 0x28, 0x1B, 0x32, 0x42, 0x28, 0x38, 0x42, 0x28, 0x1B, 0x38, 0x42,
+ 0x28, 0x33, 0x34, 0x42, 0x28, 0x35, 0x33, 0x42, 0x28, 0x36, 0x33, 0x30, 0x31,
+ 0x38, 0x42, 0x28, 0x32, 0x39, 0x42, 0x28, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B,
+ 0x39, 0x38, 0x37, 0x36, 0x34, 0x31, 0x42, 0x28, 0x34, 0x42, 0x28, 0x1B, 0x35,
+ 0x42, 0x28, 0x1B, 0x33, 0x42, 0x28, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x37, 0x33,
+ 0x32, 0x31, 0x30, 0x42, 0x28, 0x36, 0x42, 0x28, 0x1B, 0x34, 0x42, 0x28, 0x1B,
+ 0x36, 0x35, 0x42, 0x28, 0x39, 0x42, 0x28, 0x1B, 0x30, 0x42, 0x28, 0x1B, 0x30,
+ 0x34, 0x35, 0x37, 0x42, 0x28, 0x1B, 0x1B, 0x39, 0x37, 0x38, 0x35, 0x42, 0x28,
+ 0x30, 0x31, 0x42, 0x28, 0x32, 0x42, 0x28, 0x1B, 0x32, 0x42, 0x28, 0x1B, 0x37,
+ 0x42, 0x28, 0x1B, 0x1B, 0x37, 0x36, 0x33, 0x30, 0x42, 0x28, 0x36, 0x42, 0x28,
+ 0x1B, 0x37, 0x39, 0x42, 0x28, 0x38, 0x42, 0x28, 0x31, 0x32, 0x33, 0x42, 0x28,
+ 0x30, 0x35, 0x42, 0x28, 0x31, 0x42, 0x28, 0x1B, 0x1B, 0x1B, 0x1B, 0x37, 0x36,
+ 0x35, 0x34, 0x42, 0x28, 0x1B, 0x1B, 0x32, 0x39, 0x33, 0x42, 0x28, 0x36, 0x42,
+ 0x28, 0x35, 0x42, 0x28, 0x30, 0x32, 0x33, 0x34, 0x35, 0x42, 0x28, 0x1B, 0x1B,
+ 0x1B, 0x30, 0x35, 0x33, 0x32, 0x42, 0x28, 0x33, 0x42, 0x28, 0x1B, 0x32, 0x42,
+ 0x28, 0x36, 0x37, 0x38, 0x39, 0x42, 0x28, 0x30, 0x34, 0x42, 0x28, 0x1B, 0x1B,
+ 0x35, 0x34, 0x42, 0x28, 0x38, 0x42, 0x28, 0x1B, 0x37, 0x42, 0x28, 0x35, 0x42,
+ 0x28, 0x1B, 0x34, 0x42, 0x28, 0x1B, 0x33, 0x42, 0x28, 0x1B, 0x1B, 0x1B, 0x1B,
+ 0x1B, 0x37, 0x34, 0x33, 0x31, 0x30, 0x42, 0x28, 0x32, 0x42, 0x28, 0x1B, 0x35,
+ 0x42, 0x28, 0x1B, 0x39, 0x42, 0x28, 0x31, 0x42, 0x28, 0x34, 0x42, 0x28, 0x35,
+ 0x42, 0x28, 0x35, 0x42, 0x28, 0x1B, 0x1B, 0x1B, 0x1B, 0x34, 0x33, 0x32, 0x31,
+ 0x42, 0x28, 0x1B, 0x32, 0x42, 0x28, 0x1B, 0x1B, 0x32, 0x31, 0x42, 0x28, 0x30,
+ 0x42, 0x28, 0x37, 0x42, 0x28, 0x1B, 0x1B, 0x37, 0x33, 0x32, 0x42, 0x28, 0x39,
+ 0x33, 0x42, 0x28, 0x38, 0x33, 0x35, 0x36, 0x37, 0x42, 0x28, 0x30, 0x31, 0x32,
+ 0x35, 0x37, 0x38, 0x42, 0x28, 0x32, 0x42, 0x28, 0x00, 0x1B, 0x30, 0x32, 0x33,
+ 0x35, 0x36, 0x39, 0x38, 0x34, 0x31, 0x42, 0x28, 0x30, 0x31, 0x34, 0x38, 0x35,
+ 0x42, 0x28, 0x31, 0x37, 0x36, 0x42, 0x28, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B,
+ 0x38, 0x39, 0x37, 0x36, 0x35, 0x33, 0x31, 0x42, 0x28, 0x30, 0x42, 0x28, 0x36,
+ 0x42, 0x28, 0x36, 0x42, 0x28, 0x1B, 0x00, 0x1B, 0x00, 0x1B, 0x34, 0x36, 0x35,
+ 0x33, 0x42, 0x28, 0x38, 0x32, 0x33, 0x34, 0x36, 0x35, 0x42, 0x28, 0x34, 0x31,
+ 0x33, 0x30, 0x32, 0x36, 0x37, 0x38, 0x42, 0x28, 0x30, 0x32, 0x33, 0x34, 0x35,
+ 0x36, 0x37, 0x38, 0x39, 0x42, 0x28, 0x37, 0x38, 0x39, 0x42, 0x28, 0x1B, 0x00,
+ 0x33, 0x32, 0x36, 0x37, 0x39, 0x34, 0x42, 0x28, 0x30, 0x31, 0x36, 0x37, 0x38,
+ 0x39, 0x42, 0x28, 0x34, 0x35, 0x42, 0x28, 0x30, 0x42, 0x28, 0x1B, 0x1B, 0x1B,
+ 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x37, 0x36, 0x35, 0x34, 0x33, 0x32, 0x31, 0x30,
+ 0x42, 0x28, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x30, 0x74,
+ 0x54, 0x39, 0x38, 0x37, 0x36, 0x35, 0x34, 0x33, 0x32, 0x31, 0x42, 0x28, 0x31,
+ 0x30, 0x42, 0x28, 0x42, 0x28, 0x42, 0x28, 0x1B, 0x1B, 0x33, 0x30, 0x42, 0x28,
+ 0x42, 0x28, 0x42, 0x28, 0x42, 0x28, 0x42, 0x28, 0x1B, 0x1B, 0x1B, 0x1B, 0x39,
+ 0x38, 0x37, 0x35, 0x42, 0x28, 0x42, 0x28, 0x42, 0x28, 0x1B, 0x1B, 0x36, 0x30,
+ 0x42, 0x28, 0x42, 0x28, 0x42, 0x28, 0x1B, 0x1B, 0x33, 0x32, 0x42, 0x28, 0x42,
+ 0x28, 0x1B, 0x30, 0x42, 0x28, 0x42, 0x28, 0x42, 0x28, 0x42, 0x28, 0x1B, 0x1B,
+ 0x1B, 0x37, 0x33, 0x32, 0x42, 0x28, 0x42, 0x28, 0x42, 0x28, 0x42, 0x28, 0x42,
+ 0x28, 0x42, 0x28, 0x42, 0x28, 0x42, 0x28, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B,
+ 0x1B, 0x39, 0x38, 0x37, 0x36, 0x35, 0x33, 0x31, 0x42, 0x28, 0x42, 0x28, 0x42,
+ 0x28, 0x42, 0x28, 0x42, 0x28, 0x42, 0x28, 0x42, 0x28, 0x42, 0x28, 0x42, 0x28,
+ 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x37, 0x36, 0x35, 0x34, 0x33,
+ 0x32, 0x31, 0x30, 0x42, 0x28, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B,
+ 0x39, 0x38, 0x37, 0x35, 0x34, 0x33, 0x32, 0x30, 0x42, 0x28, 0x42, 0x28, 0x42,
+ 0x28, 0x42, 0x28, 0x42, 0x28, 0x42, 0x28, 0x42, 0x28, 0x42, 0x28, 0x1B, 0x1B,
+ 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x39, 0x38, 0x35, 0x34, 0x32, 0x31, 0x30, 0x42,
+ 0x28, 0x42, 0x28, 0x42, 0x28, 0x42, 0x28, 0x42, 0x28, 0x42, 0x28, 0x42, 0x28,
+ 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x36, 0x35, 0x34, 0x33, 0x32, 0x31, 0x42,
+ 0x28, 0x42, 0x28, 0x42, 0x28, 0x42, 0x28, 0x42, 0x28, 0x42, 0x28, 0x1B, 0x1B,
+ 0x1B, 0x1B, 0x1B, 0x38, 0x37, 0x35, 0x33, 0x30, 0x42, 0x28, 0x42, 0x28, 0x42,
+ 0x28, 0x42, 0x28, 0x42, 0x28, 0x1B, 0x1B, 0x1B, 0x1B, 0x39, 0x38, 0x37, 0x36,
+ 0x42, 0x28, 0x1B, 0x1B, 0x1B, 0x1B, 0x33, 0x32, 0x31, 0x30, 0x42, 0x28, 0x42,
+ 0x28, 0x1B, 0x39, 0x42, 0x28, 0x42, 0x28, 0x42, 0x28, 0x42, 0x28, 0x42, 0x28,
+ 0x1B, 0x1B, 0x1B, 0x1B, 0x37, 0x36, 0x35, 0x34, 0x42, 0x28, 0x1B, 0x1B, 0x39,
+ 0x33, 0x42, 0x28, 0x42, 0x28, 0x42, 0x28, 0x42, 0x28, 0x1B, 0x1B, 0x1B, 0x35,
+ 0x33, 0x32, 0x42, 0x28, 0x42, 0x28, 0x1B, 0x32, 0x42, 0x28, 0x42, 0x28, 0x42,
+ 0x28, 0x1B, 0x1B, 0x35, 0x34, 0x42, 0x28, 0x42, 0x28, 0x1B, 0x37, 0x42, 0x28,
+ 0x1B, 0x1B, 0x1B, 0x1B, 0x34, 0x33, 0x31, 0x30, 0x42, 0x28, 0x42, 0x28, 0x1B,
+ 0x31, 0x42, 0x28, 0x1B, 0x36, 0x42, 0x28, 0x42, 0x28, 0x42, 0x28, 0x42, 0x28,
+ 0x1B, 0x1B, 0x1B, 0x36, 0x35, 0x33, 0x42, 0x28, 0x42, 0x28, 0x1B, 0x34, 0x42,
+ 0x28, 0x1B, 0x1B, 0x34, 0x30, 0x42, 0x28, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B,
+ 0x39, 0x38, 0x35, 0x34, 0x31, 0x30, 0x42, 0x28, 0x42, 0x28, 0x1B, 0x30, 0x42,
+ 0x28, 0x1B, 0x37, 0x42, 0x28, 0x42, 0x28, 0x1B, 0x32, 0x42, 0x28, 0x42, 0x28,
+ 0x1B, 0x38, 0x42, 0x28, 0x1B, 0x1B, 0x34, 0x31, 0x42, 0x28, 0x42, 0x28, 0x1B,
+ 0x35, 0x42, 0x28, 0x1B, 0x33, 0x42, 0x28, 0x1B, 0x1B, 0x1B, 0x37, 0x33, 0x32,
+ 0x42, 0x28, 0x42, 0x28, 0x1B, 0x34, 0x42, 0x28, 0x1B, 0x35, 0x42, 0x28, 0x42,
+ 0x28, 0x1B, 0x30, 0x42, 0x28, 0x1B, 0x37, 0x42, 0x28, 0x1B, 0x1B, 0x38, 0x35,
+ 0x42, 0x28, 0x42, 0x28, 0x1B, 0x32, 0x42, 0x28, 0x1B, 0x37, 0x42, 0x28, 0x1B,
+ 0x33, 0x42, 0x28, 0x42, 0x28, 0x1B, 0x34, 0x42, 0x28, 0x1B, 0x33, 0x42, 0x28,
+ 0x1B, 0x37, 0x42, 0x28, 0x42, 0x28, 0x1B, 0x35, 0x42, 0x28, 0x1B, 0x39, 0x42,
+ 0x28, 0x42, 0x28, 0x42, 0x28, 0x42, 0x28, 0x42, 0x28, 0x1B, 0x1B, 0x1B, 0x1B,
+ 0x34, 0x33, 0x32, 0x31, 0x42, 0x28, 0x1B, 0x32, 0x42, 0x28, 0x1B, 0x1B, 0x32,
+ 0x31, 0x42, 0x28, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x36, 0x35, 0x33, 0x32,
+ 0x31, 0x30, 0x42, 0x28, 0x1B, 0x64, 0x44, 0x42, 0x28, 0x1B, 0x69, 0x49, 0x42,
+ 0x28, 0x1B, 0x73, 0x53, 0x42, 0x28, 0x1B, 0x63, 0x43, 0x42, 0x28, 0x1B, 0x1B,
+ 0x1B, 0x63, 0x43, 0x39, 0x38, 0x37, 0x35, 0x34, 0x33, 0x32, 0x31, 0x30, 0x2D,
+ 0x42, 0x28, 0x1B, 0x6D, 0x4D, 0x42, 0x28, 0x32, 0x42, 0x28, 0x1B, 0x2D, 0x42,
+ 0x28, 0x1B, 0x73, 0x53, 0x42, 0x28, 0x1B, 0x63, 0x43, 0x42, 0x28, 0x1B, 0x75,
+ 0x55, 0x42, 0x28, 0x1B, 0x2D, 0x42, 0x28, 0x1B, 0x36, 0x42, 0x28, 0x1B, 0x34,
+ 0x42, 0x28, 0x1B, 0x36, 0x42, 0x28, 0x1B, 0x30, 0x42, 0x28, 0x31, 0x42, 0x28,
+ 0x1B, 0x2D, 0x42, 0x28, 0x1B, 0x6E, 0x4E, 0x42, 0x28, 0x1B, 0x69, 0x49, 0x42,
+ 0x28, 0x1B, 0x74, 0x54, 0x42, 0x28, 0x1B, 0x61, 0x41, 0x42, 0x28, 0x1B, 0x6C,
+ 0x4C, 0x42, 0x28, 0x1B, 0x2D, 0x42, 0x28, 0x1B, 0x31, 0x42, 0x28, 0x1B, 0x2E,
+ 0x42, 0x28, 0x1B, 0x33, 0x42, 0x28, 0x1B, 0x2D, 0x42, 0x28, 0x1B, 0x73, 0x53,
+ 0x42, 0x28, 0x1B, 0x77, 0x57, 0x42, 0x28, 0x1B, 0x6F, 0x4F, 0x42, 0x28, 0x1B,
+ 0x64, 0x44, 0x42, 0x28, 0x1B, 0x6E, 0x4E, 0x42, 0x28, 0x1B, 0x69, 0x49, 0x42,
+ 0x28, 0x1B, 0x77, 0x57, 0x42, 0x28, 0x1B, 0x33, 0x35, 0x2D, 0x42, 0x28, 0x32,
+ 0x42, 0x28, 0x1B, 0x2D, 0x42, 0x28, 0x1B, 0x6E, 0x4E, 0x42, 0x28, 0x1B, 0x69,
+ 0x49, 0x42, 0x28, 0x1B, 0x74, 0x54, 0x42, 0x28, 0x1B, 0x61, 0x41, 0x42, 0x28,
+ 0x1B, 0x6C, 0x4C, 0x42, 0x28, 0x1B, 0x2D, 0x42, 0x28, 0x1B, 0x73, 0x53, 0x42,
+ 0x28, 0x1B, 0x77, 0x57, 0x42, 0x28, 0x1B, 0x6F, 0x4F, 0x42, 0x28, 0x1B, 0x64,
+ 0x44, 0x42, 0x28, 0x1B, 0x6E, 0x4E, 0x42, 0x28, 0x1B, 0x69, 0x49, 0x42, 0x28,
+ 0x1B, 0x77, 0x57, 0x42, 0x28, 0x1B, 0x2D, 0x42, 0x28, 0x00, 0x1B, 0x00, 0x1B,
+ 0x36, 0x33, 0x34, 0x39, 0x37, 0x38, 0x35, 0x32, 0x31, 0x42, 0x28, 0x1B, 0x2D,
+ 0x42, 0x28, 0x1B, 0x39, 0x42, 0x28, 0x1B, 0x35, 0x42, 0x28, 0x1B, 0x38, 0x42,
+ 0x28, 0x30, 0x31, 0x39, 0x42, 0x28, 0x30, 0x42, 0x28, 0x37, 0x36, 0x42, 0x28,
+ 0x38, 0x42, 0x28, 0x38, 0x39, 0x34, 0x42, 0x28, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B,
+ 0x33, 0x34, 0x32, 0x31, 0x30, 0x42, 0x28, 0x1B, 0x36, 0x35, 0x31, 0x42, 0x28,
+ 0x1B, 0x2D, 0x42, 0x28, 0x1B, 0x72, 0x52, 0x42, 0x28, 0x1B, 0x1B, 0x1B, 0x69,
+ 0x49, 0x38, 0x31, 0x42, 0x28, 0x53, 0x73, 0x42, 0x28, 0x1B, 0x75, 0x55, 0x42,
+ 0x28, 0x1B, 0x2D, 0x42, 0x28, 0x1B, 0x36, 0x42, 0x28, 0x1B, 0x34, 0x42, 0x28,
+ 0x31, 0x42, 0x28, 0x1B, 0x39, 0x42, 0x28, 0x1B, 0x39, 0x42, 0x28, 0x1B, 0x31,
+ 0x42, 0x28, 0x1B, 0x3A, 0x42, 0x28, 0x1B, 0x76, 0x56, 0x42, 0x28, 0x1B, 0x72,
+ 0x52, 0x42, 0x28, 0x1B, 0x69, 0x49, 0x42, 0x28, 0x1B, 0x2E, 0x42, 0x28, 0x1B,
+ 0x36, 0x42, 0x28, 0x1B, 0x34, 0x42, 0x28, 0x37, 0x42, 0x28, 0x1B, 0x38, 0x42,
+ 0x28, 0x1B, 0x39, 0x42, 0x28, 0x1B, 0x31, 0x42, 0x28, 0x1B, 0x35, 0x3A, 0x42,
+ 0x28, 0x37, 0x42, 0x28, 0x1B, 0x38, 0x42, 0x28, 0x1B, 0x39, 0x42, 0x28, 0x1B,
+ 0x31, 0x42, 0x28, 0x1B, 0x3A, 0x42, 0x28, 0x38, 0x42, 0x28, 0x1B, 0x38, 0x42,
+ 0x28, 0x1B, 0x39, 0x42, 0x28, 0x1B, 0x31, 0x42, 0x28, 0x1B, 0x3A, 0x42, 0x28,
+ 0x38, 0x42, 0x28, 0x1B, 0x38, 0x42, 0x28, 0x1B, 0x39, 0x42, 0x28, 0x1B, 0x31,
+ 0x42, 0x28, 0x1B, 0x3A, 0x42, 0x28, 0x38, 0x42, 0x28, 0x1B, 0x38, 0x42, 0x28,
+ 0x1B, 0x39, 0x42, 0x28, 0x1B, 0x31, 0x42, 0x28, 0x1B, 0x3A, 0x42, 0x28, 0x37,
+ 0x42, 0x28, 0x1B, 0x38, 0x42, 0x28, 0x1B, 0x39, 0x42, 0x28, 0x1B, 0x31, 0x42,
+ 0x28, 0x1B, 0x3A, 0x42, 0x28, 0x37, 0x42, 0x28, 0x1B, 0x38, 0x42, 0x28, 0x1B,
+ 0x39, 0x42, 0x28, 0x1B, 0x31, 0x42, 0x28, 0x1B, 0x3A, 0x42, 0x28, 0x38, 0x42,
+ 0x28, 0x1B, 0x39, 0x42, 0x28, 0x1B, 0x31, 0x42, 0x28, 0x1B, 0x3A, 0x42, 0x28,
+ 0x39, 0x42, 0x28, 0x1B, 0x38, 0x42, 0x28, 0x1B, 0x39, 0x42, 0x28, 0x1B, 0x31,
+ 0x42, 0x28, 0x1B, 0x3A, 0x42, 0x28, 0x00, 0x1B, 0x00, 0x1B, 0x00, 0x1B, 0x00,
+ 0x1B, 0x00, 0x1B, 0x00, 0x1B, 0x00, 0x1B, 0x00, 0x1B, 0x00, 0x1B, 0x39, 0x38,
+ 0x37, 0x36, 0x35, 0x34, 0x33, 0x32, 0x31, 0x42, 0x28, 0x1B, 0x2D, 0x42, 0x28,
+ 0x1B, 0x39, 0x42, 0x28, 0x1B, 0x35, 0x42, 0x28, 0x1B, 0x38, 0x42, 0x28, 0x1B,
+ 0x1B, 0x38, 0x36, 0x42, 0x28, 0x1B, 0x1B, 0x1B, 0x5F, 0x36, 0x2D, 0x42, 0x28,
+ 0x1B, 0x6F, 0x4F, 0x42, 0x28, 0x1B, 0x1B, 0x1B, 0x73, 0x62, 0x61, 0x53, 0x42,
+ 0x41, 0x42, 0x28, 0x31, 0x42, 0x28, 0x1B, 0x30, 0x42, 0x28, 0x1B, 0x32, 0x42,
+ 0x28, 0x1B, 0x30, 0x42, 0x28, 0x1B, 0x58, 0x78, 0x42, 0x28, 0x1B, 0x5F, 0x42,
+ 0x28, 0x1B, 0x73, 0x53, 0x42, 0x28, 0x1B, 0x69, 0x49, 0x42, 0x28, 0x2D, 0x42,
+ 0x28, 0x1B, 0x38, 0x42, 0x28, 0x4E, 0x6E, 0x42, 0x28, 0x1B, 0x61, 0x41, 0x42,
+ 0x28, 0x1B, 0x65, 0x45, 0x42, 0x28, 0x1B, 0x1B, 0x72, 0x69, 0x52, 0x49, 0x42,
+ 0x28, 0x31, 0x42, 0x28, 0x1B, 0x30, 0x42, 0x28, 0x1B, 0x36, 0x42, 0x28, 0x1B,
+ 0x35, 0x42, 0x28, 0x1B, 0x5F, 0x42, 0x28, 0x39, 0x37, 0x42, 0x28, 0x1B, 0x38,
+ 0x42, 0x28, 0x1B, 0x39, 0x42, 0x28, 0x1B, 0x31, 0x42, 0x28, 0x1B, 0x2D, 0x42,
+ 0x28, 0x1B, 0x31, 0x42, 0x28, 0x1B, 0x30, 0x42, 0x28, 0x1B, 0x36, 0x42, 0x28,
+ 0x1B, 0x35, 0x42, 0x28, 0x1B, 0x5F, 0x42, 0x28, 0x1B, 0x63, 0x43, 0x42, 0x28,
+ 0x1B, 0x1B, 0x63, 0x5F, 0x43, 0x42, 0x28, 0x1B, 0x1B, 0x73, 0x6F, 0x53, 0x4F,
+ 0x42, 0x28, 0x39, 0x42, 0x28, 0x1B, 0x31, 0x32, 0x33, 0x34, 0x35, 0x2D, 0x42,
+ 0x28, 0x1B, 0x6E, 0x4E, 0x42, 0x28, 0x1B, 0x69, 0x49, 0x42, 0x28, 0x1B, 0x74,
+ 0x54, 0x42, 0x28, 0x1B, 0x31, 0x32, 0x33, 0x34, 0x35, 0x61, 0x41, 0x42, 0x28,
+ 0x33, 0x42, 0x28, 0x49, 0x69, 0x42, 0x28, 0x1B, 0x6A, 0x4A, 0x42, 0x28, 0x1B,
+ 0x6E, 0x4E, 0x42, 0x28, 0x1B, 0x61, 0x41, 0x42, 0x28, 0x1B, 0x6B, 0x4B, 0x42,
+ 0x28, 0x1B, 0x1B, 0x39, 0x5F, 0x42, 0x28, 0x1B, 0x73, 0x53, 0x42, 0x28, 0x4F,
+ 0x6F, 0x42, 0x28, 0x1B, 0x72, 0x52, 0x42, 0x28, 0x1B, 0x75, 0x55, 0x42, 0x28,
+ 0x1B, 0x65, 0x45, 0x42, 0x28, 0x1B, 0x2B, 0x42, 0x28, 0x1B, 0x30, 0x42, 0x28,
+ 0x1B, 0x35, 0x42, 0x28, 0x1B, 0x38, 0x42, 0x28, 0x1B, 0x2D, 0x42, 0x28, 0x1B,
+ 0x6C, 0x4C, 0x42, 0x28, 0x1B, 0x61, 0x41, 0x42, 0x28, 0x1B, 0x75, 0x55, 0x42,
+ 0x28, 0x1B, 0x67, 0x47, 0x42, 0x28, 0x1B, 0x6E, 0x4E, 0x42, 0x28, 0x1B, 0x69,
+ 0x49, 0x42, 0x28, 0x1B, 0x6C, 0x4C, 0x42, 0x28, 0x1B, 0x69, 0x49, 0x42, 0x28,
+ 0x1B, 0x74, 0x54, 0x42, 0x28, 0x1B, 0x6C, 0x4C, 0x42, 0x28, 0x1B, 0x75, 0x55,
+ 0x42, 0x28, 0x1B, 0x6D, 0x4D, 0x42, 0x28, 0x1B, 0x2D, 0x42, 0x28, 0x1B, 0x63,
+ 0x43, 0x42, 0x28, 0x38, 0x6F, 0x4F, 0x42, 0x28, 0x5F, 0x42, 0x28, 0x1B, 0x74,
+ 0x54, 0x42, 0x28, 0x1B, 0x66, 0x46, 0x42, 0x28, 0x1B, 0x69, 0x49, 0x42, 0x28,
+ 0x1B, 0x68, 0x48, 0x42, 0x28, 0x2D, 0x42, 0x28, 0x1B, 0x73, 0x53, 0x42, 0x28,
+ 0x1B, 0x69, 0x49, 0x42, 0x28, 0x32, 0x2D, 0x42, 0x28, 0x1B, 0x73, 0x53, 0x42,
+ 0x28, 0x73, 0x53, 0x42, 0x28, 0x1B, 0x61, 0x41, 0x42, 0x28, 0x1B, 0x2D, 0x42,
+ 0x28, 0x6C, 0x62, 0x4C, 0x42, 0x2D, 0x42, 0x28, 0x1B, 0x36, 0x42, 0x28, 0x6C,
+ 0x62, 0x4C, 0x42, 0x2D, 0x42, 0x28, 0x1B, 0x32, 0x42, 0x28, 0x1B, 0x1B, 0x38,
+ 0x33, 0x31, 0x42, 0x28, 0x1B, 0x38, 0x33, 0x31, 0x2D, 0x42, 0x28, 0x1B, 0x66,
+ 0x46, 0x42, 0x28, 0x1B, 0x00, 0x1B, 0x1B, 0x74, 0x73, 0x63, 0x54, 0x53, 0x43,
+ 0x42, 0x28, 0x39, 0x31, 0x42, 0x28, 0x1B, 0x2D, 0x42, 0x28, 0x1B, 0x73, 0x53,
+ 0x42, 0x28, 0x1B, 0x77, 0x57, 0x42, 0x28, 0x1B, 0x6F, 0x4F, 0x42, 0x28, 0x1B,
+ 0x64, 0x44, 0x42, 0x28, 0x1B, 0x6E, 0x4E, 0x42, 0x28, 0x1B, 0x69, 0x49, 0x42,
+ 0x28, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B,
+ 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x4A, 0x28, 0x1B, 0x33, 0x4A, 0x28, 0x4A,
+ 0x28, 0x4A, 0x28, 0x1B, 0x1B, 0x35, 0x36, 0x4A, 0x28, 0x4A, 0x28, 0x1B, 0x30,
+ 0x4A, 0x28, 0x4A, 0x28, 0x1B, 0x6E, 0x4E, 0x4A, 0x28, 0x1B, 0x69, 0x49, 0x4A,
+ 0x28, 0x1B, 0x64, 0x44, 0x4A, 0x28, 0x1B, 0x6F, 0x4F, 0x4A, 0x28, 0x1B, 0x63,
+ 0x43, 0x4A, 0x28, 0x1B, 0x6E, 0x4E, 0x4A, 0x28, 0x1B, 0x65, 0x45, 0x4A, 0x28,
+ 0x1B, 0x2D, 0x4A, 0x28, 0x1B, 0x64, 0x44, 0x4A, 0x28, 0x1B, 0x72, 0x52, 0x4A,
+ 0x28, 0x1B, 0x61, 0x41, 0x4A, 0x28, 0x1B, 0x64, 0x44, 0x4A, 0x28, 0x1B, 0x6E,
+ 0x4E, 0x4A, 0x28, 0x1B, 0x61, 0x41, 0x4A, 0x28, 0x1B, 0x74, 0x54, 0x4A, 0x28,
+ 0x1B, 0x73, 0x53, 0x4A, 0x28, 0x1B, 0x2D, 0x4A, 0x28, 0x1B, 0x65, 0x45, 0x4A,
+ 0x28, 0x1B, 0x62, 0x42, 0x4A, 0x28, 0x1B, 0x6F, 0x4F, 0x4A, 0x28, 0x4A, 0x28,
+ 0x4A, 0x28, 0x1B, 0x1B, 0x38, 0x36, 0x4A, 0x28, 0x1B, 0x39, 0x4A, 0x28, 0x1B,
+ 0x31, 0x4A, 0x28, 0x1B, 0x2D, 0x4A, 0x28, 0x1B, 0x34, 0x4A, 0x28, 0x1B, 0x2E,
+ 0x4A, 0x28, 0x1B, 0x33, 0x4A, 0x28, 0x1B, 0x78, 0x58, 0x4A, 0x28, 0x1B, 0x5F,
+ 0x4A, 0x28, 0x1B, 0x69, 0x49, 0x4A, 0x28, 0x1B, 0x73, 0x53, 0x4A, 0x28, 0x4A,
+ 0x28, 0x1B, 0x69, 0x49, 0x4A, 0x28, 0x1B, 0x62, 0x42, 0x4A, 0x28, 0x1B, 0x61,
+ 0x41, 0x4A, 0x28, 0x4A, 0x28, 0x1B, 0x69, 0x49, 0x4A, 0x28, 0x4A, 0x28, 0x1B,
+ 0x30, 0x4A, 0x28, 0x1B, 0x37, 0x4A, 0x28, 0x1B, 0x2D, 0x4A, 0x28, 0x1B, 0x6F,
+ 0x4F, 0x4A, 0x28, 0x1B, 0x1B, 0x43, 0x63, 0x6D, 0x4D, 0x4A, 0x28, 0x1B, 0x1B,
+ 0x1B, 0x1B, 0x52, 0x72, 0x73, 0x6E, 0x64, 0x53, 0x4E, 0x44, 0x4A, 0x28, 0x4A,
+ 0x28, 0x1B, 0x63, 0x43, 0x4A, 0x28, 0x1B, 0x73, 0x53, 0x4A, 0x28, 0x1B, 0x6B,
+ 0x4B, 0x4A, 0x28, 0x1B, 0x68, 0x48, 0x4A, 0x28, 0x1B, 0x2D, 0x4A, 0x28, 0x1B,
+ 0x35, 0x4A, 0x28, 0x1B, 0x67, 0x47, 0x4A, 0x28, 0x1B, 0x69, 0x49, 0x4A, 0x28,
+ 0x4A, 0x28, 0x1B, 0x35, 0x4A, 0x28, 0x4A, 0x28, 0x1B, 0x32, 0x4A, 0x28, 0x1B,
+ 0x1B, 0x39, 0x38, 0x4A, 0x28, 0x4A, 0x28, 0x1B, 0x34, 0x4A, 0x28, 0x1B, 0x31,
+ 0x4A, 0x28, 0x1B, 0x1B, 0x31, 0x30, 0x4A, 0x28, 0x1B, 0x30, 0x4A, 0x28, 0x1B,
+ 0x64, 0x44, 0x4A, 0x28, 0x1B, 0x69, 0x49, 0x4A, 0x28, 0x1B, 0x73, 0x53, 0x4A,
+ 0x28, 0x4A, 0x28, 0x1B, 0x73, 0x53, 0x4A, 0x28, 0x1B, 0x65, 0x45, 0x4A, 0x28,
+ 0x1B, 0x6E, 0x4E, 0x4A, 0x28, 0x1B, 0x69, 0x49, 0x4A, 0x28, 0x4A, 0x28, 0x4A,
+ 0x28, 0x4A, 0x28, 0x1B, 0x1B, 0x1B, 0x69, 0x67, 0x61, 0x49, 0x47, 0x41, 0x4A,
+ 0x28, 0x4A, 0x28, 0x1B, 0x33, 0x31, 0x30, 0x4A, 0x28, 0x4A, 0x28, 0x1B, 0x32,
+ 0x4A, 0x28, 0x1B, 0x30, 0x4A, 0x28, 0x4A, 0x28, 0x4A, 0x28, 0x4A, 0x28, 0x1B,
+ 0x1B, 0x1B, 0x39, 0x38, 0x37, 0x4A, 0x28, 0x4A, 0x28, 0x1B, 0x36, 0x4A, 0x28,
+ 0x4A, 0x28, 0x1B, 0x33, 0x32, 0x4A, 0x28, 0x4A, 0x28, 0x1B, 0x30, 0x4A, 0x28,
+ 0x4A, 0x28, 0x1B, 0x37, 0x4A, 0x28, 0x4A, 0x28, 0x4A, 0x28, 0x4A, 0x28, 0x4A,
+ 0x28, 0x4A, 0x28, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x39, 0x38, 0x37, 0x36, 0x35,
+ 0x31, 0x4A, 0x28, 0x4A, 0x28, 0x4A, 0x28, 0x4A, 0x28, 0x1B, 0x1B, 0x1B, 0x33,
+ 0x31, 0x30, 0x4A, 0x28, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B,
+ 0x1B, 0x38, 0x37, 0x35, 0x34, 0x33, 0x30, 0x39, 0x32, 0x31, 0x2D, 0x4A, 0x28,
+ 0x64, 0x44, 0x4A, 0x28, 0x1B, 0x72, 0x52, 0x4A, 0x28, 0x1B, 0x61, 0x41, 0x4A,
+ 0x28, 0x1B, 0x64, 0x44, 0x4A, 0x28, 0x1B, 0x6E, 0x4E, 0x4A, 0x28, 0x1B, 0x61,
+ 0x41, 0x4A, 0x28, 0x1B, 0x74, 0x54, 0x4A, 0x28, 0x1B, 0x73, 0x53, 0x4A, 0x28,
+ 0x1B, 0x65, 0x45, 0x4A, 0x28, 0x1B, 0x62, 0x42, 0x4A, 0x28, 0x1B, 0x6F, 0x4F,
+ 0x4A, 0x28, 0x63, 0x43, 0x4A, 0x28, 0x1B, 0x1B, 0x53, 0x73, 0x64, 0x44, 0x4A,
+ 0x28, 0x35, 0x4A, 0x28, 0x1B, 0x67, 0x47, 0x4A, 0x28, 0x1B, 0x69, 0x49, 0x4A,
+ 0x28, 0x4A, 0x28, 0x4A, 0x28, 0x1B, 0x73, 0x53, 0x4A, 0x28, 0x1B, 0x65, 0x45,
+ 0x4A, 0x28, 0x1B, 0x6E, 0x4E, 0x4A, 0x28, 0x1B, 0x61, 0x41, 0x4A, 0x28, 0x1B,
+ 0x70, 0x50, 0x4A, 0x28, 0x1B, 0x61, 0x41, 0x4A, 0x28, 0x1B, 0x6A, 0x4A, 0x4A,
+ 0x28, 0x1B, 0x54, 0x74, 0x4A, 0x28, 0x1B, 0x6D, 0x4D, 0x4A, 0x28, 0x1B, 0x66,
+ 0x46, 0x4A, 0x28, 0x1B, 0x64, 0x44, 0x4A, 0x28, 0x1B, 0x6B, 0x4B, 0x4A, 0x28,
+ 0x4A, 0x28, 0x1B, 0x1B, 0x1B, 0x54, 0x74, 0x4B, 0x6B, 0x70, 0x50, 0x4A, 0x28,
+ 0x1B, 0x63, 0x43, 0x4A, 0x28, 0x1B, 0x75, 0x55, 0x4A, 0x28, 0x4A, 0x28, 0x1B,
+ 0x31, 0x4A, 0x28, 0x1B, 0x33, 0x4A, 0x28, 0x1B, 0x4B, 0x6B, 0x32, 0x4A, 0x28,
+ 0x1B, 0x62, 0x42, 0x4A, 0x28, 0x4A, 0x28, 0x1B, 0x6E, 0x4E, 0x4A, 0x28, 0x1B,
+ 0x61, 0x41, 0x4A, 0x28, 0x1B, 0x6B, 0x4B, 0x4A, 0x28, 0x1B, 0x61, 0x41, 0x4A,
+ 0x28, 0x1B, 0x74, 0x54, 0x4A, 0x28, 0x1B, 0x61, 0x41, 0x4A, 0x28, 0x1B, 0x6B,
+ 0x4B, 0x4A, 0x28, 0x1B, 0x68, 0x48, 0x4A, 0x28, 0x1B, 0x74, 0x54, 0x4A, 0x28,
+ 0x1B, 0x64, 0x44, 0x4A, 0x28, 0x1B, 0x69, 0x49, 0x4A, 0x28, 0x1B, 0x77, 0x57,
+ 0x4A, 0x28, 0x1B, 0x66, 0x46, 0x4A, 0x28, 0x1B, 0x6C, 0x4C, 0x4A, 0x28, 0x4A,
+ 0x28, 0x1B, 0x6E, 0x4E, 0x4A, 0x28, 0x1B, 0x61, 0x41, 0x4A, 0x28, 0x1B, 0x6D,
+ 0x4D, 0x4A, 0x28, 0x1B, 0x4F, 0x6F, 0x4A, 0x28, 0x1B, 0x72, 0x52, 0x4A, 0x28,
+ 0x1B, 0x1B, 0x50, 0x70, 0x61, 0x41, 0x4A, 0x28, 0x1B, 0x39, 0x4A, 0x28, 0x1B,
+ 0x6D, 0x4D, 0x4A, 0x28, 0x4A, 0x28, 0x1B, 0x34, 0x32, 0x4A, 0x28, 0x1B, 0x30,
+ 0x4A, 0x28, 0x4A, 0x28, 0x1B, 0x39, 0x38, 0x37, 0x4A, 0x28, 0x32, 0x4A, 0x28,
+ 0x4A, 0x28, 0x4A, 0x28, 0x1B, 0x1B, 0x39, 0x38, 0x37, 0x36, 0x35, 0x4A, 0x28,
+ 0x4A, 0x28, 0x1B, 0x31, 0x30, 0x4A, 0x28, 0x4A, 0x28, 0x1B, 0x61, 0x41, 0x4A,
+ 0x28, 0x1B, 0x68, 0x48, 0x4A, 0x28, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x35,
+ 0x30, 0x54, 0x74, 0x32, 0x31, 0x39, 0x38, 0x34, 0x4A, 0x28, 0x1B, 0x1B, 0x6D,
+ 0x62, 0x4D, 0x42, 0x4A, 0x28, 0x4A, 0x28, 0x1B, 0x38, 0x4A, 0x28, 0x1B, 0x32,
+ 0x4A, 0x28, 0x1B, 0x31, 0x4A, 0x28, 0x1B, 0x33, 0x4A, 0x28, 0x1B, 0x32, 0x4A,
+ 0x28, 0x1B, 0x62, 0x42, 0x4A, 0x28, 0x1B, 0x67, 0x47, 0x4A, 0x28, 0x1B, 0x38,
+ 0x4A, 0x28, 0x4A, 0x28, 0x1B, 0x31, 0x4A, 0x28, 0x1B, 0x39, 0x4A, 0x28, 0x1B,
+ 0x35, 0x4A, 0x28, 0x1B, 0x38, 0x4A, 0x28, 0x72, 0x52, 0x4A, 0x28, 0x4A, 0x28,
+ 0x1B, 0x69, 0x49, 0x4A, 0x28, 0x1B, 0x6C, 0x4C, 0x4A, 0x28, 0x1B, 0x6C, 0x4C,
+ 0x4A, 0x28, 0x1B, 0x69, 0x49, 0x4A, 0x28, 0x1B, 0x72, 0x52, 0x4A, 0x28, 0x1B,
+ 0x79, 0x59, 0x4A, 0x28, 0x4A, 0x28, 0x1B, 0x65, 0x45, 0x4A, 0x28, 0x1B, 0x65,
+ 0x45, 0x4A, 0x28, 0x1B, 0x72, 0x52, 0x4A, 0x28, 0x4A, 0x28, 0x1B, 0x65, 0x45,
+ 0x4A, 0x28, 0x1B, 0x72, 0x52, 0x4A, 0x28, 0x1B, 0x62, 0x42, 0x4A, 0x28, 0x1B,
+ 0x45, 0x65, 0x4A, 0x28, 0x1B, 0x1B, 0x1B, 0x1B, 0x31, 0x32, 0x33, 0x34, 0x35,
+ 0x68, 0x67, 0x63, 0x61, 0x48, 0x47, 0x43, 0x41, 0x4A, 0x28, 0x1B, 0x6E, 0x4E,
+ 0x4A, 0x28, 0x1B, 0x69, 0x49, 0x4A, 0x28, 0x1B, 0x74, 0x54, 0x4A, 0x28, 0x1B,
+ 0x61, 0x41, 0x4A, 0x28, 0x1B, 0x1B, 0x1B, 0x6C, 0x4C, 0x38, 0x35, 0x4A, 0x28,
+ 0x1B, 0x6F, 0x4F, 0x4A, 0x28, 0x1B, 0x1B, 0x73, 0x62, 0x53, 0x42, 0x4A, 0x28,
+ 0x4A, 0x28, 0x1B, 0x38, 0x4A, 0x28, 0x1B, 0x69, 0x49, 0x4A, 0x28, 0x4A, 0x28,
+ 0x1B, 0x38, 0x4A, 0x28, 0x1B, 0x39, 0x4A, 0x28, 0x1B, 0x31, 0x4A, 0x28, 0x1B,
+ 0x31, 0x4A, 0x28, 0x1B, 0x30, 0x4A, 0x28, 0x1B, 0x36, 0x4A, 0x28, 0x1B, 0x35,
+ 0x4A, 0x28, 0x1B, 0x63, 0x43, 0x4A, 0x28, 0x1B, 0x1B, 0x73, 0x6F, 0x53, 0x4F,
+ 0x4A, 0x28, 0x4A, 0x28, 0x1B, 0x69, 0x49, 0x4A, 0x28, 0x1B, 0x74, 0x54, 0x4A,
+ 0x28, 0x1B, 0x6C, 0x4C, 0x4A, 0x28, 0x1B, 0x61, 0x41, 0x4A, 0x28, 0x1B, 0x62,
+ 0x42, 0x4A, 0x28, 0x1B, 0x35, 0x4A, 0x28, 0x1B, 0x37, 0x4A, 0x28, 0x4A, 0x28,
+ 0x1B, 0x61, 0x41, 0x4A, 0x28, 0x1B, 0x75, 0x55, 0x4A, 0x28, 0x1B, 0x67, 0x47,
+ 0x4A, 0x28, 0x1B, 0x6E, 0x4E, 0x4A, 0x28, 0x1B, 0x69, 0x49, 0x4A, 0x28, 0x1B,
+ 0x6C, 0x4C, 0x4A, 0x28, 0x1B, 0x69, 0x49, 0x4A, 0x28, 0x1B, 0x74, 0x54, 0x4A,
+ 0x28, 0x1B, 0x6C, 0x4C, 0x4A, 0x28, 0x1B, 0x75, 0x55, 0x4A, 0x28, 0x1B, 0x6D,
+ 0x4D, 0x4A, 0x28, 0x1B, 0x30, 0x4A, 0x28, 0x4A, 0x28, 0x1B, 0x65, 0x45, 0x4A,
+ 0x28, 0x1B, 0x72, 0x52, 0x4A, 0x28, 0x1B, 0x62, 0x42, 0x4A, 0x28, 0x1B, 0x65,
+ 0x45, 0x4A, 0x28, 0x1B, 0x68, 0x48, 0x4A, 0x28, 0x1B, 0x6E, 0x4E, 0x4A, 0x28,
+ 0x1B, 0x69, 0x49, 0x4A, 0x28, 0x1B, 0x74, 0x54, 0x4A, 0x28, 0x1B, 0x61, 0x41,
+ 0x4A, 0x28, 0x1B, 0x6C, 0x4C, 0x4A, 0x28, 0x1B, 0x32, 0x4A, 0x28, 0x1B, 0x34,
+ 0x4A, 0x28, 0x1B, 0x65, 0x45, 0x4A, 0x28, 0x1B, 0x67, 0x47, 0x4A, 0x28, 0x1B,
+ 0x61, 0x41, 0x4A, 0x28, 0x1B, 0x70, 0x50, 0x4A, 0x28, 0x1B, 0x65, 0x45, 0x4A,
+ 0x28, 0x1B, 0x64, 0x44, 0x4A, 0x28, 0x1B, 0x6F, 0x4F, 0x4A, 0x28, 0x1B, 0x1B,
+ 0x1B, 0x63, 0x43, 0x36, 0x35, 0x4A, 0x28, 0x4A, 0x28, 0x1B, 0x35, 0x4A, 0x28,
+ 0x1B, 0x38, 0x4A, 0x28, 0x1B, 0x1B, 0x1B, 0x70, 0x50, 0x38, 0x37, 0x4A, 0x28,
+ 0x1B, 0x63, 0x43, 0x4A, 0x28, 0x4A, 0x28, 0x1B, 0x69, 0x49, 0x4A, 0x28, 0x1B,
+ 0x6A, 0x4A, 0x4A, 0x28, 0x1B, 0x54, 0x74, 0x4A, 0x28, 0x1B, 0x66, 0x46, 0x4A,
+ 0x28, 0x1B, 0x69, 0x49, 0x4A, 0x28, 0x1B, 0x68, 0x48, 0x4A, 0x28, 0x4A, 0x28,
+ 0x1B, 0x32, 0x4A, 0x28, 0x1B, 0x36, 0x4A, 0x28, 0x1B, 0x53, 0x73, 0x4A, 0x28,
+ 0x1B, 0x69, 0x49, 0x4A, 0x28, 0x4A, 0x28, 0x1B, 0x64, 0x44, 0x4A, 0x28, 0x1B,
+ 0x6F, 0x4F, 0x4A, 0x28, 0x1B, 0x63, 0x43, 0x4A, 0x28, 0x1B, 0x69, 0x49, 0x4A,
+ 0x28, 0x4A, 0x28, 0x4A, 0x28, 0x1B, 0x1B, 0x4C, 0x6C, 0x42, 0x62, 0x4A, 0x28,
+ 0x1B, 0x36, 0x4A, 0x28, 0x4A, 0x28, 0x4A, 0x28, 0x1B, 0x1B, 0x4C, 0x6C, 0x42,
+ 0x62, 0x4A, 0x28, 0x1B, 0x32, 0x4A, 0x28, 0x1B, 0x1B, 0x38, 0x33, 0x31, 0x4A,
+ 0x28, 0x1B, 0x66, 0x46, 0x4A, 0x28, 0x1B, 0x1B, 0x74, 0x6E, 0x54, 0x4E, 0x4A,
+ 0x28, 0x4A, 0x28, 0x1B, 0x35, 0x4A, 0x28, 0x1B, 0x32, 0x4A, 0x28, 0x4A, 0x28,
+ 0x1B, 0x6E, 0x4E, 0x4A, 0x28, 0x1B, 0x69, 0x49, 0x4A, 0x28, 0x1B, 0x74, 0x54,
+ 0x4A, 0x28, 0x1B, 0x61, 0x41, 0x4A, 0x28, 0x1B, 0x6C, 0x4C, 0x4A, 0x28, 0x1B,
+ 0x31, 0x4A, 0x28, 0x1B, 0x1B, 0x31, 0x33, 0x4A, 0x28, 0x1B, 0x73, 0x53, 0x4A,
+ 0x28, 0x1B, 0x77, 0x57, 0x4A, 0x28, 0x1B, 0x6F, 0x4F, 0x4A, 0x28, 0x1B, 0x64,
+ 0x44, 0x4A, 0x28, 0x1B, 0x6E, 0x4E, 0x4A, 0x28, 0x1B, 0x69, 0x49, 0x4A, 0x28,
+ 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x77,
+ 0x75, 0x74, 0x73, 0x70, 0x6B, 0x69, 0x68, 0x67, 0x65, 0x62, 0x61, 0x57, 0x55,
+ 0x54, 0x53, 0x50, 0x4B, 0x49, 0x48, 0x47, 0x45, 0x42, 0x41, 0x4A, 0x28, 0x4A,
+ 0x28, 0x1B, 0x69, 0x49, 0x4A, 0x28, 0x1B, 0x6C, 0x4C, 0x4A, 0x28, 0x1B, 0x6C,
+ 0x4C, 0x4A, 0x28, 0x1B, 0x69, 0x49, 0x4A, 0x28, 0x1B, 0x72, 0x52, 0x4A, 0x28,
+ 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x79, 0x73, 0x70, 0x68, 0x63, 0x59, 0x53, 0x50,
+ 0x48, 0x43, 0x4A, 0x28, 0x4A, 0x28, 0x1B, 0x72, 0x52, 0x4A, 0x28, 0x4A, 0x28,
+ 0x4A, 0x28, 0x4A, 0x28, 0x4A, 0x28, 0x4A, 0x28, 0x4A, 0x28, 0x4A, 0x28, 0x4A,
+ 0x28, 0x4A, 0x28, 0x4A, 0x28, 0x1B, 0x63, 0x43, 0x4A, 0x28, 0x1B, 0x65, 0x45,
+ 0x4A, 0x28, 0x1B, 0x6F, 0x4F, 0x4A, 0x28, 0x4A, 0x28, 0x4A, 0x28, 0x4A, 0x28,
+ 0x4A, 0x28, 0x4A, 0x28, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B,
+ 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x79, 0x77, 0x75, 0x74, 0x73, 0x72,
+ 0x6E, 0x69, 0x68, 0x67, 0x66, 0x65, 0x64, 0x63, 0x62, 0x61, 0x59, 0x57, 0x55,
+ 0x54, 0x53, 0x52, 0x4E, 0x49, 0x48, 0x47, 0x46, 0x45, 0x44, 0x43, 0x42, 0x41,
+ 0x4A, 0x28, 0x1B, 0x2D, 0x4A, 0x28, 0x4A, 0x28, 0x1B, 0x69, 0x49, 0x4A, 0x28,
+ 0x1B, 0x6C, 0x4C, 0x4A, 0x28, 0x1B, 0x6C, 0x4C, 0x4A, 0x28, 0x1B, 0x69, 0x49,
+ 0x4A, 0x28, 0x1B, 0x72, 0x52, 0x4A, 0x28, 0x1B, 0x1B, 0x79, 0x70, 0x59, 0x50,
+ 0x4A, 0x28, 0x4A, 0x28, 0x1B, 0x72, 0x52, 0x4A, 0x28, 0x1B, 0x75, 0x55, 0x4A,
+ 0x28, 0x1B, 0x65, 0x45, 0x4A, 0x28, 0x1B, 0x2B, 0x4A, 0x28, 0x1B, 0x33, 0x4A,
+ 0x28, 0x1B, 0x37, 0x4A, 0x28, 0x1B, 0x32, 0x4A, 0x28, 0x1B, 0x2D, 0x4A, 0x28,
+ 0x4A, 0x28, 0x1B, 0x72, 0x52, 0x4A, 0x28, 0x1B, 0x75, 0x55, 0x4A, 0x28, 0x1B,
+ 0x65, 0x45, 0x4A, 0x28, 0x1B, 0x2B, 0x4A, 0x28, 0x1B, 0x37, 0x4A, 0x28, 0x1B,
+ 0x37, 0x4A, 0x28, 0x1B, 0x32, 0x4A, 0x28, 0x1B, 0x2D, 0x4A, 0x28, 0x1B, 0x1B,
+ 0x4B, 0x6B, 0x65, 0x45, 0x4A, 0x28, 0x4A, 0x28, 0x1B, 0x72, 0x52, 0x4A, 0x28,
+ 0x1B, 0x75, 0x55, 0x4A, 0x28, 0x1B, 0x65, 0x45, 0x4A, 0x28, 0x1B, 0x2B, 0x4A,
+ 0x28, 0x1B, 0x34, 0x4A, 0x28, 0x1B, 0x38, 0x4A, 0x28, 0x1B, 0x32, 0x4A, 0x28,
+ 0x1B, 0x2D, 0x4A, 0x28, 0x1B, 0x73, 0x53, 0x4A, 0x28, 0x4A, 0x28, 0x1B, 0x72,
+ 0x52, 0x4A, 0x28, 0x1B, 0x75, 0x55, 0x4A, 0x28, 0x1B, 0x65, 0x45, 0x4A, 0x28,
+ 0x1B, 0x2B, 0x4A, 0x28, 0x1B, 0x38, 0x4A, 0x28, 0x1B, 0x37, 0x4A, 0x28, 0x1B,
+ 0x32, 0x4A, 0x28, 0x1B, 0x2D, 0x4A, 0x28, 0x4A, 0x28, 0x1B, 0x72, 0x52, 0x4A,
+ 0x28, 0x1B, 0x75, 0x55, 0x4A, 0x28, 0x1B, 0x65, 0x45, 0x4A, 0x28, 0x1B, 0x2B,
+ 0x4A, 0x28, 0x1B, 0x37, 0x4A, 0x28, 0x1B, 0x39, 0x4A, 0x28, 0x1B, 0x32, 0x4A,
+ 0x28, 0x1B, 0x2D, 0x4A, 0x28, 0x1B, 0x1B, 0x49, 0x69, 0x72, 0x52, 0x4A, 0x28,
+ 0x4A, 0x28, 0x1B, 0x72, 0x52, 0x4A, 0x28, 0x1B, 0x75, 0x55, 0x4A, 0x28, 0x1B,
+ 0x65, 0x45, 0x4A, 0x28, 0x1B, 0x2B, 0x4A, 0x28, 0x1B, 0x35, 0x4A, 0x28, 0x1B,
+ 0x38, 0x4A, 0x28, 0x1B, 0x32, 0x4A, 0x28, 0x1B, 0x2D, 0x4A, 0x28, 0x1B, 0x62,
+ 0x42, 0x4A, 0x28, 0x4A, 0x28, 0x1B, 0x72, 0x52, 0x4A, 0x28, 0x1B, 0x75, 0x55,
+ 0x4A, 0x28, 0x1B, 0x65, 0x45, 0x4A, 0x28, 0x1B, 0x2B, 0x4A, 0x28, 0x1B, 0x30,
+ 0x4A, 0x28, 0x1B, 0x30, 0x4A, 0x28, 0x1B, 0x35, 0x4A, 0x28, 0x1B, 0x2D, 0x4A,
+ 0x28, 0x1B, 0x6C, 0x4C, 0x4A, 0x28, 0x1B, 0x61, 0x41, 0x4A, 0x28, 0x1B, 0x6E,
+ 0x4E, 0x4A, 0x28, 0x1B, 0x6F, 0x4F, 0x4A, 0x28, 0x1B, 0x69, 0x49, 0x4A, 0x28,
+ 0x1B, 0x74, 0x54, 0x4A, 0x28, 0x1B, 0x61, 0x41, 0x4A, 0x28, 0x1B, 0x6E, 0x4E,
+ 0x4A, 0x28, 0x1B, 0x72, 0x52, 0x4A, 0x28, 0x1B, 0x65, 0x45, 0x4A, 0x28, 0x1B,
+ 0x74, 0x54, 0x4A, 0x28, 0x4A, 0x28, 0x1B, 0x72, 0x52, 0x4A, 0x28, 0x1B, 0x75,
+ 0x55, 0x4A, 0x28, 0x1B, 0x65, 0x45, 0x4A, 0x28, 0x1B, 0x2B, 0x4A, 0x28, 0x1B,
+ 0x31, 0x4A, 0x28, 0x1B, 0x37, 0x4A, 0x28, 0x1B, 0x38, 0x4A, 0x28, 0x1B, 0x2D,
+ 0x4A, 0x28, 0x4A, 0x28, 0x1B, 0x72, 0x52, 0x4A, 0x28, 0x1B, 0x75, 0x55, 0x4A,
+ 0x28, 0x1B, 0x65, 0x45, 0x4A, 0x28, 0x1B, 0x2B, 0x4A, 0x28, 0x1B, 0x30, 0x4A,
+ 0x28, 0x1B, 0x38, 0x4A, 0x28, 0x1B, 0x32, 0x4A, 0x28, 0x1B, 0x2D, 0x4A, 0x28,
+ 0x1B, 0x1B, 0x1B, 0x74, 0x73, 0x6E, 0x54, 0x53, 0x4E, 0x4A, 0x28, 0x4A, 0x28,
+ 0x1B, 0x6E, 0x4E, 0x4A, 0x28, 0x1B, 0x61, 0x41, 0x4A, 0x28, 0x1B, 0x6B, 0x4B,
+ 0x4A, 0x28, 0x1B, 0x2D, 0x4A, 0x28, 0x1B, 0x70, 0x50, 0x4A, 0x28, 0x4A, 0x28,
+ 0x1B, 0x72, 0x52, 0x4A, 0x28, 0x1B, 0x75, 0x55, 0x4A, 0x28, 0x1B, 0x65, 0x45,
+ 0x4A, 0x28, 0x1B, 0x2D, 0x4A, 0x28, 0x1B, 0x2D, 0x4A, 0x28, 0x1B, 0x39, 0x4A,
+ 0x28, 0x1B, 0x6E, 0x4E, 0x4A, 0x28, 0x1B, 0x69, 0x49, 0x4A, 0x28, 0x1B, 0x74,
+ 0x54, 0x4A, 0x28, 0x1B, 0x61, 0x41, 0x4A, 0x28, 0x6F, 0x4F, 0x4A, 0x28, 0x65,
+ 0x45, 0x4A, 0x28, 0x4A, 0x28, 0x1B, 0x72, 0x52, 0x4A, 0x28, 0x1B, 0x75, 0x55,
+ 0x4A, 0x28, 0x1B, 0x65, 0x45, 0x4A, 0x28, 0x1B, 0x2B, 0x4A, 0x28, 0x1B, 0x37,
+ 0x4A, 0x28, 0x1B, 0x33, 0x4A, 0x28, 0x1B, 0x2D, 0x4A, 0x28, 0x1B, 0x73, 0x53,
+ 0x4A, 0x28, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B,
+ 0x75, 0x73, 0x6E, 0x6C, 0x6A, 0x69, 0x67, 0x66, 0x65, 0x64, 0x63, 0x55, 0x53,
+ 0x4E, 0x4C, 0x4A, 0x49, 0x47, 0x46, 0x45, 0x44, 0x43, 0x4A, 0x28, 0x1B, 0x2D,
+ 0x4A, 0x28, 0x00, 0x1B, 0x63, 0x43, 0x4A, 0x28, 0x1B, 0x69, 0x49, 0x4A, 0x28,
+ 0x1B, 0x64, 0x44, 0x4A, 0x28, 0x1B, 0x63, 0x43, 0x4A, 0x28, 0x4A, 0x28, 0x1B,
+ 0x31, 0x4A, 0x28, 0x1B, 0x31, 0x4A, 0x28, 0x1B, 0x2D, 0x4A, 0x28, 0x1B, 0x61,
+ 0x41, 0x4A, 0x28, 0x1B, 0x6D, 0x4D, 0x4A, 0x28, 0x4A, 0x28, 0x1B, 0x32, 0x4A,
+ 0x28, 0x1B, 0x39, 0x4A, 0x28, 0x1B, 0x5F, 0x4A, 0x28, 0x1B, 0x74, 0x54, 0x4A,
+ 0x28, 0x1B, 0x6F, 0x4F, 0x4A, 0x28, 0x4A, 0x28, 0x4A, 0x28, 0x4A, 0x28, 0x1B,
+ 0x68, 0x48, 0x4A, 0x28, 0x1B, 0x1B, 0x1B, 0x74, 0x6B, 0x6A, 0x63, 0x54, 0x4B,
+ 0x4A, 0x43, 0x4A, 0x28, 0x1B, 0x74, 0x54, 0x2D, 0x4A, 0x28, 0x1B, 0x63, 0x43,
+ 0x4A, 0x28, 0x5F, 0x4A, 0x28, 0x1B, 0x72, 0x52, 0x4A, 0x28, 0x1B, 0x6F, 0x4F,
+ 0x4A, 0x28, 0x1B, 0x66, 0x46, 0x4A, 0x28, 0x1B, 0x5F, 0x4A, 0x28, 0x1B, 0x74,
+ 0x54, 0x4A, 0x28, 0x1B, 0x61, 0x41, 0x4A, 0x28, 0x1B, 0x6D, 0x4D, 0x4A, 0x28,
+ 0x1B, 0x72, 0x52, 0x4A, 0x28, 0x1B, 0x6F, 0x4F, 0x4A, 0x28, 0x1B, 0x66, 0x46,
+ 0x4A, 0x28, 0x1B, 0x5F, 0x4A, 0x28, 0x1B, 0x64, 0x44, 0x4A, 0x28, 0x1B, 0x65,
+ 0x45, 0x4A, 0x28, 0x1B, 0x6B, 0x4B, 0x4A, 0x28, 0x1B, 0x63, 0x43, 0x4A, 0x28,
+ 0x1B, 0x61, 0x41, 0x4A, 0x28, 0x1B, 0x70, 0x50, 0x4A, 0x28, 0x1B, 0x5F, 0x4A,
+ 0x28, 0x1B, 0x65, 0x45, 0x4A, 0x28, 0x1B, 0x64, 0x44, 0x4A, 0x28, 0x1B, 0x6F,
+ 0x4F, 0x4A, 0x28, 0x1B, 0x63, 0x43, 0x4A, 0x28, 0x1B, 0x5F, 0x4A, 0x28, 0x1B,
+ 0x78, 0x58, 0x4A, 0x28, 0x1B, 0x69, 0x49, 0x4A, 0x28, 0x1B, 0x6E, 0x4E, 0x4A,
+ 0x28, 0x1B, 0x75, 0x55, 0x4A, 0x28, 0x1B, 0x5F, 0x4A, 0x28, 0x1B, 0x64, 0x44,
+ 0x4A, 0x28, 0x1B, 0x65, 0x45, 0x4A, 0x28, 0x1B, 0x64, 0x44, 0x4A, 0x28, 0x1B,
+ 0x6E, 0x4E, 0x4A, 0x28, 0x1B, 0x65, 0x45, 0x4A, 0x28, 0x1B, 0x74, 0x54, 0x4A,
+ 0x28, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x78, 0x75, 0x6C, 0x63, 0x62, 0x58, 0x55,
+ 0x4C, 0x43, 0x42, 0x4A, 0x28, 0x2D, 0x4A, 0x28, 0x1B, 0x32, 0x4A, 0x28, 0x1B,
+ 0x31, 0x4A, 0x28, 0x1B, 0x33, 0x4A, 0x28, 0x1B, 0x32, 0x4A, 0x28, 0x1B, 0x4B,
+ 0x6B, 0x5F, 0x32, 0x4A, 0x28, 0x00, 0x1B, 0x6B, 0x4B, 0x4A, 0x28, 0x1B, 0x65,
+ 0x45, 0x4A, 0x28, 0x1B, 0x65, 0x45, 0x4A, 0x28, 0x1B, 0x1B, 0x72, 0x62, 0x52,
+ 0x42, 0x4A, 0x28, 0x2D, 0x4A, 0x28, 0x1B, 0x70, 0x65, 0x50, 0x45, 0x4A, 0x28,
+ 0x4A, 0x28, 0x4A, 0x28, 0x1B, 0x1B, 0x39, 0x36, 0x31, 0x30, 0x4A, 0x28, 0x4A,
+ 0x28, 0x00, 0x1B, 0x00, 0x1B, 0x38, 0x32, 0x37, 0x35, 0x31, 0x30, 0x4A, 0x28,
+ 0x4A, 0x28, 0x4A, 0x28, 0x4A, 0x28, 0x4A, 0x28, 0x4A, 0x28, 0x4A, 0x28, 0x4A,
+ 0x28, 0x4A, 0x28, 0x4A, 0x28, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B,
+ 0x1B, 0x39, 0x38, 0x36, 0x35, 0x34, 0x33, 0x32, 0x31, 0x30, 0x4A, 0x28, 0x4A,
+ 0x28, 0x1B, 0x30, 0x4A, 0x28, 0x4A, 0x28, 0x1B, 0x35, 0x4A, 0x28, 0x1B, 0x1B,
+ 0x1B, 0x32, 0x31, 0x30, 0x4A, 0x28, 0x4A, 0x28, 0x4A, 0x28, 0x00, 0x1B, 0x00,
+ 0x1B, 0x1B, 0x1B, 0x39, 0x34, 0x36, 0x37, 0x38, 0x35, 0x33, 0x32, 0x31, 0x4A,
+ 0x28, 0x1B, 0x2D, 0x4A, 0x28, 0x1B, 0x61, 0x41, 0x4A, 0x28, 0x1B, 0x6E, 0x4E,
+ 0x4A, 0x28, 0x4A, 0x28, 0x4A, 0x28, 0x4A, 0x28, 0x4A, 0x28, 0x4A, 0x28, 0x4A,
+ 0x28, 0x4A, 0x28, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x39, 0x38, 0x35,
+ 0x34, 0x32, 0x31, 0x30, 0x4A, 0x28, 0x4A, 0x28, 0x4A, 0x28, 0x4A, 0x28, 0x4A,
+ 0x28, 0x4A, 0x28, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x34, 0x36, 0x35, 0x33, 0x32,
+ 0x31, 0x4A, 0x28, 0x4A, 0x28, 0x4A, 0x28, 0x4A, 0x28, 0x4A, 0x28, 0x1B, 0x36,
+ 0x35, 0x30, 0x4A, 0x28, 0x4A, 0x28, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x38, 0x37,
+ 0x35, 0x33, 0x30, 0x4A, 0x28, 0x4A, 0x28, 0x1B, 0x32, 0x4A, 0x28, 0x4A, 0x28,
+ 0x1B, 0x38, 0x4A, 0x28, 0x4A, 0x28, 0x4A, 0x28, 0x4A, 0x28, 0x4A, 0x28, 0x1B,
+ 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x39, 0x38, 0x37, 0x36, 0x34, 0x31, 0x4A, 0x28,
+ 0x4A, 0x28, 0x1B, 0x35, 0x4A, 0x28, 0x1B, 0x33, 0x4A, 0x28, 0x1B, 0x1B, 0x1B,
+ 0x1B, 0x1B, 0x37, 0x33, 0x32, 0x31, 0x30, 0x4A, 0x28, 0x4A, 0x28, 0x1B, 0x34,
+ 0x4A, 0x28, 0x1B, 0x36, 0x35, 0x4A, 0x28, 0x4A, 0x28, 0x1B, 0x30, 0x4A, 0x28,
+ 0x1B, 0x30, 0x34, 0x35, 0x37, 0x4A, 0x28, 0x1B, 0x1B, 0x39, 0x37, 0x38, 0x35,
+ 0x4A, 0x28, 0x4A, 0x28, 0x4A, 0x28, 0x1B, 0x32, 0x4A, 0x28, 0x1B, 0x37, 0x4A,
+ 0x28, 0x1B, 0x1B, 0x37, 0x36, 0x33, 0x30, 0x4A, 0x28, 0x4A, 0x28, 0x1B, 0x37,
+ 0x39, 0x4A, 0x28, 0x4A, 0x28, 0x4A, 0x28, 0x4A, 0x28, 0x4A, 0x28, 0x1B, 0x1B,
+ 0x1B, 0x1B, 0x37, 0x36, 0x35, 0x34, 0x4A, 0x28, 0x1B, 0x1B, 0x32, 0x39, 0x33,
+ 0x4A, 0x28, 0x4A, 0x28, 0x4A, 0x28, 0x4A, 0x28, 0x1B, 0x1B, 0x1B, 0x30, 0x35,
+ 0x33, 0x32, 0x4A, 0x28, 0x4A, 0x28, 0x1B, 0x32, 0x4A, 0x28, 0x4A, 0x28, 0x4A,
+ 0x28, 0x1B, 0x1B, 0x35, 0x34, 0x4A, 0x28, 0x4A, 0x28, 0x1B, 0x37, 0x4A, 0x28,
+ 0x4A, 0x28, 0x1B, 0x34, 0x4A, 0x28, 0x1B, 0x33, 0x4A, 0x28, 0x1B, 0x1B, 0x1B,
+ 0x1B, 0x1B, 0x37, 0x34, 0x33, 0x31, 0x30, 0x4A, 0x28, 0x4A, 0x28, 0x1B, 0x35,
+ 0x4A, 0x28, 0x1B, 0x39, 0x4A, 0x28, 0x4A, 0x28, 0x4A, 0x28, 0x4A, 0x28, 0x4A,
+ 0x28, 0x1B, 0x1B, 0x1B, 0x1B, 0x34, 0x33, 0x32, 0x31, 0x4A, 0x28, 0x1B, 0x32,
+ 0x4A, 0x28, 0x1B, 0x1B, 0x32, 0x31, 0x4A, 0x28, 0x4A, 0x28, 0x4A, 0x28, 0x1B,
+ 0x1B, 0x37, 0x33, 0x32, 0x4A, 0x28, 0x4A, 0x28, 0x4A, 0x28, 0x4A, 0x28, 0x4A,
+ 0x28, 0x00, 0x1B, 0x30, 0x32, 0x33, 0x35, 0x36, 0x39, 0x38, 0x34, 0x31, 0x4A,
+ 0x28, 0x4A, 0x28, 0x4A, 0x28, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x38, 0x39,
+ 0x37, 0x36, 0x35, 0x33, 0x31, 0x4A, 0x28, 0x4A, 0x28, 0x4A, 0x28, 0x4A, 0x28,
+ 0x1B, 0x00, 0x1B, 0x00, 0x1B, 0x34, 0x36, 0x35, 0x33, 0x4A, 0x28, 0x4A, 0x28,
+ 0x4A, 0x28, 0x4A, 0x28, 0x4A, 0x28, 0x1B, 0x00, 0x33, 0x32, 0x36, 0x37, 0x39,
+ 0x34, 0x4A, 0x28, 0x4A, 0x28, 0x4A, 0x28, 0x4A, 0x28, 0x1B, 0x1B, 0x1B, 0x1B,
+ 0x1B, 0x1B, 0x1B, 0x1B, 0x37, 0x36, 0x35, 0x34, 0x33, 0x32, 0x31, 0x30, 0x4A,
+ 0x28, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x30, 0x74, 0x54,
+ 0x39, 0x38, 0x37, 0x36, 0x35, 0x34, 0x33, 0x32, 0x31, 0x4A, 0x28, 0x31, 0x30,
+ 0x4A, 0x28, 0x4A, 0x28, 0x4A, 0x28, 0x1B, 0x1B, 0x33, 0x30, 0x4A, 0x28, 0x4A,
+ 0x28, 0x4A, 0x28, 0x4A, 0x28, 0x4A, 0x28, 0x1B, 0x1B, 0x1B, 0x1B, 0x39, 0x38,
+ 0x37, 0x35, 0x4A, 0x28, 0x4A, 0x28, 0x4A, 0x28, 0x1B, 0x1B, 0x36, 0x30, 0x4A,
+ 0x28, 0x4A, 0x28, 0x4A, 0x28, 0x1B, 0x1B, 0x33, 0x32, 0x4A, 0x28, 0x4A, 0x28,
+ 0x1B, 0x30, 0x4A, 0x28, 0x4A, 0x28, 0x4A, 0x28, 0x4A, 0x28, 0x1B, 0x1B, 0x1B,
+ 0x37, 0x33, 0x32, 0x4A, 0x28, 0x4A, 0x28, 0x4A, 0x28, 0x4A, 0x28, 0x4A, 0x28,
+ 0x4A, 0x28, 0x4A, 0x28, 0x4A, 0x28, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B,
+ 0x39, 0x38, 0x37, 0x36, 0x35, 0x33, 0x31, 0x4A, 0x28, 0x4A, 0x28, 0x4A, 0x28,
+ 0x4A, 0x28, 0x4A, 0x28, 0x4A, 0x28, 0x4A, 0x28, 0x4A, 0x28, 0x4A, 0x28, 0x1B,
+ 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x37, 0x36, 0x35, 0x34, 0x33, 0x32,
+ 0x31, 0x30, 0x4A, 0x28, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x39,
+ 0x38, 0x37, 0x35, 0x34, 0x33, 0x32, 0x30, 0x4A, 0x28, 0x4A, 0x28, 0x4A, 0x28,
+ 0x4A, 0x28, 0x4A, 0x28, 0x4A, 0x28, 0x4A, 0x28, 0x4A, 0x28, 0x1B, 0x1B, 0x1B,
+ 0x1B, 0x1B, 0x1B, 0x1B, 0x39, 0x38, 0x35, 0x34, 0x32, 0x31, 0x30, 0x4A, 0x28,
+ 0x4A, 0x28, 0x4A, 0x28, 0x4A, 0x28, 0x4A, 0x28, 0x4A, 0x28, 0x4A, 0x28, 0x1B,
+ 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x36, 0x35, 0x34, 0x33, 0x32, 0x31, 0x4A, 0x28,
+ 0x4A, 0x28, 0x4A, 0x28, 0x4A, 0x28, 0x4A, 0x28, 0x4A, 0x28, 0x1B, 0x1B, 0x1B,
+ 0x1B, 0x1B, 0x38, 0x37, 0x35, 0x33, 0x30, 0x4A, 0x28, 0x4A, 0x28, 0x4A, 0x28,
+ 0x4A, 0x28, 0x4A, 0x28, 0x1B, 0x1B, 0x1B, 0x1B, 0x39, 0x38, 0x37, 0x36, 0x4A,
+ 0x28, 0x1B, 0x1B, 0x1B, 0x1B, 0x33, 0x32, 0x31, 0x30, 0x4A, 0x28, 0x4A, 0x28,
+ 0x1B, 0x39, 0x4A, 0x28, 0x4A, 0x28, 0x4A, 0x28, 0x4A, 0x28, 0x4A, 0x28, 0x1B,
+ 0x1B, 0x1B, 0x1B, 0x37, 0x36, 0x35, 0x34, 0x4A, 0x28, 0x1B, 0x1B, 0x39, 0x33,
+ 0x4A, 0x28, 0x4A, 0x28, 0x4A, 0x28, 0x4A, 0x28, 0x1B, 0x1B, 0x1B, 0x35, 0x33,
+ 0x32, 0x4A, 0x28, 0x4A, 0x28, 0x1B, 0x32, 0x4A, 0x28, 0x4A, 0x28, 0x4A, 0x28,
+ 0x1B, 0x1B, 0x35, 0x34, 0x4A, 0x28, 0x4A, 0x28, 0x1B, 0x37, 0x4A, 0x28, 0x1B,
+ 0x1B, 0x1B, 0x1B, 0x34, 0x33, 0x31, 0x30, 0x4A, 0x28, 0x4A, 0x28, 0x1B, 0x31,
+ 0x4A, 0x28, 0x1B, 0x36, 0x4A, 0x28, 0x4A, 0x28, 0x4A, 0x28, 0x4A, 0x28, 0x1B,
+ 0x1B, 0x1B, 0x36, 0x35, 0x33, 0x4A, 0x28, 0x4A, 0x28, 0x1B, 0x34, 0x4A, 0x28,
+ 0x1B, 0x1B, 0x34, 0x30, 0x4A, 0x28, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x39,
+ 0x38, 0x35, 0x34, 0x31, 0x30, 0x4A, 0x28, 0x4A, 0x28, 0x1B, 0x30, 0x4A, 0x28,
+ 0x1B, 0x37, 0x4A, 0x28, 0x4A, 0x28, 0x1B, 0x32, 0x4A, 0x28, 0x4A, 0x28, 0x1B,
+ 0x38, 0x4A, 0x28, 0x1B, 0x1B, 0x34, 0x31, 0x4A, 0x28, 0x4A, 0x28, 0x1B, 0x35,
+ 0x4A, 0x28, 0x1B, 0x33, 0x4A, 0x28, 0x1B, 0x1B, 0x1B, 0x37, 0x33, 0x32, 0x4A,
+ 0x28, 0x4A, 0x28, 0x1B, 0x34, 0x4A, 0x28, 0x1B, 0x35, 0x4A, 0x28, 0x4A, 0x28,
+ 0x1B, 0x30, 0x4A, 0x28, 0x1B, 0x37, 0x4A, 0x28, 0x1B, 0x1B, 0x38, 0x35, 0x4A,
+ 0x28, 0x4A, 0x28, 0x1B, 0x32, 0x4A, 0x28, 0x1B, 0x37, 0x4A, 0x28, 0x1B, 0x33,
+ 0x4A, 0x28, 0x4A, 0x28, 0x1B, 0x34, 0x4A, 0x28, 0x1B, 0x33, 0x4A, 0x28, 0x1B,
+ 0x37, 0x4A, 0x28, 0x4A, 0x28, 0x1B, 0x35, 0x4A, 0x28, 0x1B, 0x39, 0x4A, 0x28,
+ 0x4A, 0x28, 0x4A, 0x28, 0x4A, 0x28, 0x4A, 0x28, 0x1B, 0x1B, 0x1B, 0x1B, 0x34,
+ 0x33, 0x32, 0x31, 0x4A, 0x28, 0x1B, 0x32, 0x4A, 0x28, 0x1B, 0x1B, 0x32, 0x31,
+ 0x4A, 0x28, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x36, 0x35, 0x33, 0x32, 0x31,
+ 0x30, 0x4A, 0x28, 0x1B, 0x64, 0x44, 0x4A, 0x28, 0x1B, 0x69, 0x49, 0x4A, 0x28,
+ 0x1B, 0x73, 0x53, 0x4A, 0x28, 0x1B, 0x63, 0x43, 0x4A, 0x28, 0x1B, 0x1B, 0x1B,
+ 0x63, 0x43, 0x39, 0x38, 0x37, 0x35, 0x34, 0x33, 0x32, 0x31, 0x30, 0x2D, 0x4A,
+ 0x28, 0x1B, 0x6D, 0x4D, 0x4A, 0x28, 0x4A, 0x28, 0x1B, 0x2D, 0x4A, 0x28, 0x1B,
+ 0x73, 0x53, 0x4A, 0x28, 0x1B, 0x63, 0x43, 0x4A, 0x28, 0x1B, 0x75, 0x55, 0x4A,
+ 0x28, 0x1B, 0x2D, 0x4A, 0x28, 0x1B, 0x36, 0x4A, 0x28, 0x1B, 0x34, 0x4A, 0x28,
+ 0x1B, 0x36, 0x4A, 0x28, 0x1B, 0x30, 0x4A, 0x28, 0x4A, 0x28, 0x1B, 0x2D, 0x4A,
+ 0x28, 0x1B, 0x6E, 0x4E, 0x4A, 0x28, 0x1B, 0x69, 0x49, 0x4A, 0x28, 0x1B, 0x74,
+ 0x54, 0x4A, 0x28, 0x1B, 0x61, 0x41, 0x4A, 0x28, 0x1B, 0x6C, 0x4C, 0x4A, 0x28,
+ 0x1B, 0x2D, 0x4A, 0x28, 0x1B, 0x31, 0x4A, 0x28, 0x1B, 0x2E, 0x4A, 0x28, 0x1B,
+ 0x33, 0x4A, 0x28, 0x1B, 0x2D, 0x4A, 0x28, 0x1B, 0x73, 0x53, 0x4A, 0x28, 0x1B,
+ 0x77, 0x57, 0x4A, 0x28, 0x1B, 0x6F, 0x4F, 0x4A, 0x28, 0x1B, 0x64, 0x44, 0x4A,
+ 0x28, 0x1B, 0x6E, 0x4E, 0x4A, 0x28, 0x1B, 0x69, 0x49, 0x4A, 0x28, 0x1B, 0x77,
+ 0x57, 0x4A, 0x28, 0x1B, 0x33, 0x35, 0x2D, 0x4A, 0x28, 0x4A, 0x28, 0x1B, 0x2D,
+ 0x4A, 0x28, 0x1B, 0x6E, 0x4E, 0x4A, 0x28, 0x1B, 0x69, 0x49, 0x4A, 0x28, 0x1B,
+ 0x74, 0x54, 0x4A, 0x28, 0x1B, 0x61, 0x41, 0x4A, 0x28, 0x1B, 0x6C, 0x4C, 0x4A,
+ 0x28, 0x1B, 0x2D, 0x4A, 0x28, 0x1B, 0x73, 0x53, 0x4A, 0x28, 0x1B, 0x77, 0x57,
+ 0x4A, 0x28, 0x1B, 0x6F, 0x4F, 0x4A, 0x28, 0x1B, 0x64, 0x44, 0x4A, 0x28, 0x1B,
+ 0x6E, 0x4E, 0x4A, 0x28, 0x1B, 0x69, 0x49, 0x4A, 0x28, 0x1B, 0x77, 0x57, 0x4A,
+ 0x28, 0x1B, 0x2D, 0x4A, 0x28, 0x00, 0x1B, 0x00, 0x1B, 0x36, 0x33, 0x34, 0x39,
+ 0x37, 0x38, 0x35, 0x32, 0x31, 0x4A, 0x28, 0x1B, 0x2D, 0x4A, 0x28, 0x1B, 0x39,
+ 0x4A, 0x28, 0x1B, 0x35, 0x4A, 0x28, 0x1B, 0x38, 0x4A, 0x28, 0x4A, 0x28, 0x4A,
+ 0x28, 0x4A, 0x28, 0x4A, 0x28, 0x4A, 0x28, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x33,
+ 0x34, 0x32, 0x31, 0x30, 0x4A, 0x28, 0x1B, 0x36, 0x35, 0x31, 0x4A, 0x28, 0x1B,
+ 0x2D, 0x4A, 0x28, 0x1B, 0x72, 0x52, 0x4A, 0x28, 0x1B, 0x1B, 0x1B, 0x69, 0x49,
+ 0x38, 0x31, 0x4A, 0x28, 0x4A, 0x28, 0x1B, 0x75, 0x55, 0x4A, 0x28, 0x1B, 0x2D,
+ 0x4A, 0x28, 0x1B, 0x36, 0x4A, 0x28, 0x1B, 0x34, 0x4A, 0x28, 0x4A, 0x28, 0x1B,
+ 0x39, 0x4A, 0x28, 0x1B, 0x39, 0x4A, 0x28, 0x1B, 0x31, 0x4A, 0x28, 0x1B, 0x3A,
+ 0x4A, 0x28, 0x1B, 0x76, 0x56, 0x4A, 0x28, 0x1B, 0x72, 0x52, 0x4A, 0x28, 0x1B,
+ 0x69, 0x49, 0x4A, 0x28, 0x1B, 0x2E, 0x4A, 0x28, 0x1B, 0x36, 0x4A, 0x28, 0x1B,
+ 0x34, 0x4A, 0x28, 0x4A, 0x28, 0x1B, 0x38, 0x4A, 0x28, 0x1B, 0x39, 0x4A, 0x28,
+ 0x1B, 0x31, 0x4A, 0x28, 0x1B, 0x35, 0x3A, 0x4A, 0x28, 0x4A, 0x28, 0x1B, 0x38,
+ 0x4A, 0x28, 0x1B, 0x39, 0x4A, 0x28, 0x1B, 0x31, 0x4A, 0x28, 0x1B, 0x3A, 0x4A,
+ 0x28, 0x4A, 0x28, 0x1B, 0x38, 0x4A, 0x28, 0x1B, 0x39, 0x4A, 0x28, 0x1B, 0x31,
+ 0x4A, 0x28, 0x1B, 0x3A, 0x4A, 0x28, 0x4A, 0x28, 0x1B, 0x38, 0x4A, 0x28, 0x1B,
+ 0x39, 0x4A, 0x28, 0x1B, 0x31, 0x4A, 0x28, 0x1B, 0x3A, 0x4A, 0x28, 0x4A, 0x28,
+ 0x1B, 0x38, 0x4A, 0x28, 0x1B, 0x39, 0x4A, 0x28, 0x1B, 0x31, 0x4A, 0x28, 0x1B,
+ 0x3A, 0x4A, 0x28, 0x4A, 0x28, 0x1B, 0x38, 0x4A, 0x28, 0x1B, 0x39, 0x4A, 0x28,
+ 0x1B, 0x31, 0x4A, 0x28, 0x1B, 0x3A, 0x4A, 0x28, 0x4A, 0x28, 0x1B, 0x38, 0x4A,
+ 0x28, 0x1B, 0x39, 0x4A, 0x28, 0x1B, 0x31, 0x4A, 0x28, 0x1B, 0x3A, 0x4A, 0x28,
+ 0x38, 0x4A, 0x28, 0x1B, 0x39, 0x4A, 0x28, 0x1B, 0x31, 0x4A, 0x28, 0x1B, 0x3A,
+ 0x4A, 0x28, 0x4A, 0x28, 0x1B, 0x38, 0x4A, 0x28, 0x1B, 0x39, 0x4A, 0x28, 0x1B,
+ 0x31, 0x4A, 0x28, 0x1B, 0x3A, 0x4A, 0x28, 0x00, 0x1B, 0x00, 0x1B, 0x00, 0x1B,
+ 0x00, 0x1B, 0x00, 0x1B, 0x00, 0x1B, 0x00, 0x1B, 0x00, 0x1B, 0x00, 0x1B, 0x39,
+ 0x38, 0x37, 0x36, 0x35, 0x34, 0x33, 0x32, 0x31, 0x4A, 0x28, 0x1B, 0x2D, 0x4A,
+ 0x28, 0x1B, 0x39, 0x4A, 0x28, 0x1B, 0x35, 0x4A, 0x28, 0x1B, 0x38, 0x4A, 0x28,
+ 0x1B, 0x1B, 0x38, 0x36, 0x4A, 0x28, 0x1B, 0x1B, 0x1B, 0x5F, 0x36, 0x2D, 0x4A,
+ 0x28, 0x1B, 0x6F, 0x4F, 0x4A, 0x28, 0x1B, 0x1B, 0x1B, 0x73, 0x62, 0x61, 0x53,
+ 0x42, 0x41, 0x4A, 0x28, 0x4A, 0x28, 0x1B, 0x30, 0x4A, 0x28, 0x1B, 0x32, 0x4A,
+ 0x28, 0x1B, 0x30, 0x4A, 0x28, 0x1B, 0x58, 0x78, 0x4A, 0x28, 0x1B, 0x5F, 0x4A,
+ 0x28, 0x1B, 0x73, 0x53, 0x4A, 0x28, 0x1B, 0x69, 0x49, 0x4A, 0x28, 0x2D, 0x4A,
+ 0x28, 0x1B, 0x38, 0x4A, 0x28, 0x4A, 0x28, 0x1B, 0x61, 0x41, 0x4A, 0x28, 0x1B,
+ 0x65, 0x45, 0x4A, 0x28, 0x1B, 0x1B, 0x72, 0x69, 0x52, 0x49, 0x4A, 0x28, 0x4A,
+ 0x28, 0x1B, 0x30, 0x4A, 0x28, 0x1B, 0x36, 0x4A, 0x28, 0x1B, 0x35, 0x4A, 0x28,
+ 0x1B, 0x5F, 0x4A, 0x28, 0x4A, 0x28, 0x1B, 0x38, 0x4A, 0x28, 0x1B, 0x39, 0x4A,
+ 0x28, 0x1B, 0x31, 0x4A, 0x28, 0x1B, 0x2D, 0x4A, 0x28, 0x1B, 0x31, 0x4A, 0x28,
+ 0x1B, 0x30, 0x4A, 0x28, 0x1B, 0x36, 0x4A, 0x28, 0x1B, 0x35, 0x4A, 0x28, 0x1B,
+ 0x5F, 0x4A, 0x28, 0x1B, 0x63, 0x43, 0x4A, 0x28, 0x1B, 0x1B, 0x63, 0x5F, 0x43,
+ 0x4A, 0x28, 0x1B, 0x1B, 0x73, 0x6F, 0x53, 0x4F, 0x4A, 0x28, 0x4A, 0x28, 0x1B,
+ 0x31, 0x32, 0x33, 0x34, 0x35, 0x2D, 0x4A, 0x28, 0x1B, 0x6E, 0x4E, 0x4A, 0x28,
+ 0x1B, 0x69, 0x49, 0x4A, 0x28, 0x1B, 0x74, 0x54, 0x4A, 0x28, 0x1B, 0x31, 0x32,
+ 0x33, 0x34, 0x35, 0x61, 0x41, 0x4A, 0x28, 0x33, 0x4A, 0x28, 0x4A, 0x28, 0x1B,
+ 0x6A, 0x4A, 0x4A, 0x28, 0x1B, 0x6E, 0x4E, 0x4A, 0x28, 0x1B, 0x61, 0x41, 0x4A,
+ 0x28, 0x1B, 0x6B, 0x4B, 0x4A, 0x28, 0x1B, 0x1B, 0x39, 0x5F, 0x4A, 0x28, 0x1B,
+ 0x73, 0x53, 0x4A, 0x28, 0x4A, 0x28, 0x1B, 0x72, 0x52, 0x4A, 0x28, 0x1B, 0x75,
+ 0x55, 0x4A, 0x28, 0x1B, 0x65, 0x45, 0x4A, 0x28, 0x1B, 0x2B, 0x4A, 0x28, 0x1B,
+ 0x30, 0x4A, 0x28, 0x1B, 0x35, 0x4A, 0x28, 0x1B, 0x38, 0x4A, 0x28, 0x1B, 0x2D,
+ 0x4A, 0x28, 0x1B, 0x6C, 0x4C, 0x4A, 0x28, 0x1B, 0x61, 0x41, 0x4A, 0x28, 0x1B,
+ 0x75, 0x55, 0x4A, 0x28, 0x1B, 0x67, 0x47, 0x4A, 0x28, 0x1B, 0x6E, 0x4E, 0x4A,
+ 0x28, 0x1B, 0x69, 0x49, 0x4A, 0x28, 0x1B, 0x6C, 0x4C, 0x4A, 0x28, 0x1B, 0x69,
+ 0x49, 0x4A, 0x28, 0x1B, 0x74, 0x54, 0x4A, 0x28, 0x1B, 0x6C, 0x4C, 0x4A, 0x28,
+ 0x1B, 0x75, 0x55, 0x4A, 0x28, 0x1B, 0x6D, 0x4D, 0x4A, 0x28, 0x1B, 0x2D, 0x4A,
+ 0x28, 0x1B, 0x63, 0x43, 0x4A, 0x28, 0x38, 0x6F, 0x4F, 0x4A, 0x28, 0x5F, 0x4A,
+ 0x28, 0x1B, 0x74, 0x54, 0x4A, 0x28, 0x1B, 0x66, 0x46, 0x4A, 0x28, 0x1B, 0x69,
+ 0x49, 0x4A, 0x28, 0x1B, 0x68, 0x48, 0x4A, 0x28, 0x2D, 0x4A, 0x28, 0x1B, 0x73,
+ 0x53, 0x4A, 0x28, 0x1B, 0x69, 0x49, 0x4A, 0x28, 0x32, 0x2D, 0x4A, 0x28, 0x1B,
+ 0x73, 0x53, 0x4A, 0x28, 0x73, 0x53, 0x4A, 0x28, 0x1B, 0x61, 0x41, 0x4A, 0x28,
+ 0x1B, 0x2D, 0x4A, 0x28, 0x6C, 0x62, 0x4C, 0x42, 0x2D, 0x4A, 0x28, 0x1B, 0x36,
+ 0x4A, 0x28, 0x6C, 0x62, 0x4C, 0x42, 0x2D, 0x4A, 0x28, 0x1B, 0x32, 0x4A, 0x28,
+ 0x1B, 0x1B, 0x38, 0x33, 0x31, 0x4A, 0x28, 0x1B, 0x38, 0x33, 0x31, 0x2D, 0x4A,
+ 0x28, 0x1B, 0x66, 0x46, 0x4A, 0x28, 0x1B, 0x00, 0x1B, 0x1B, 0x74, 0x73, 0x63,
+ 0x54, 0x53, 0x43, 0x4A, 0x28, 0x39, 0x31, 0x4A, 0x28, 0x1B, 0x2D, 0x4A, 0x28,
+ 0x1B, 0x73, 0x53, 0x4A, 0x28, 0x1B, 0x77, 0x57, 0x4A, 0x28, 0x1B, 0x6F, 0x4F,
+ 0x4A, 0x28, 0x1B, 0x64, 0x44, 0x4A, 0x28, 0x1B, 0x6E, 0x4E, 0x4A, 0x28, 0x1B,
+ 0x69, 0x49, 0x4A, 0x28, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B,
+ 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x78, 0x77, 0x75, 0x74,
+ 0x73, 0x72, 0x70, 0x6D, 0x6C, 0x6B, 0x6A, 0x69, 0x68, 0x67, 0x65, 0x63, 0x62,
+ 0x61, 0x58, 0x57, 0x55, 0x54, 0x53, 0x52, 0x50, 0x4D, 0x4C, 0x4B, 0x4A, 0x49,
+ 0x48, 0x47, 0x45, 0x43, 0x42, 0x41, 0x39, 0x38, 0x34, 0x78, 0x77, 0x75, 0x74,
+ 0x73, 0x72, 0x70, 0x6D, 0x6C, 0x6B, 0x6A, 0x69, 0x68, 0x67, 0x65, 0x63, 0x62,
+ 0x61, 0x58, 0x57, 0x55, 0x54, 0x53, 0x52, 0x50, 0x4D, 0x4C, 0x4B, 0x4A, 0x49,
+ 0x48, 0x47, 0x45, 0x43, 0x42, 0x41, 0x39, 0x38, 0x34, 0x4A, 0x42, 0x6E, 0x4E,
+ 0x69, 0x49, 0x64, 0x44, 0x6F, 0x4F, 0x63, 0x43, 0x6E, 0x4E, 0x65, 0x45, 0x2D,
+ 0x64, 0x44, 0x72, 0x52, 0x61, 0x41, 0x64, 0x44, 0x6E, 0x4E, 0x61, 0x41, 0x74,
+ 0x54, 0x73, 0x53, 0x2D, 0x65, 0x45, 0x62, 0x42, 0x38, 0x36, 0x39, 0x31, 0x2D,
+ 0x34, 0x2E, 0x33, 0x78, 0x58, 0x5F, 0x69, 0x49, 0x69, 0x49, 0x62, 0x42, 0x30,
+ 0x37, 0x2D, 0x6F, 0x4F, 0x69, 0x49, 0x43, 0x63, 0x6D, 0x4D, 0x61, 0x41, 0x73,
+ 0x53, 0x6F, 0x4F, 0x63, 0x43, 0x73, 0x53, 0x6B, 0x4B, 0x68, 0x48, 0x2D, 0x35,
+ 0x67, 0x47, 0x32, 0x35, 0x34, 0x31, 0x39, 0x38, 0x31, 0x30, 0x30, 0x64, 0x44,
+ 0x69, 0x49, 0x73, 0x53, 0x65, 0x45, 0x6E, 0x4E, 0x32, 0x30, 0x31, 0x33, 0x39,
+ 0x38, 0x37, 0x36, 0x35, 0x31, 0x37, 0x30, 0x33, 0x32, 0x36, 0x38, 0x39, 0x37,
+ 0x30, 0x33, 0x31, 0x30, 0x69, 0x67, 0x61, 0x49, 0x47, 0x41, 0x64, 0x44, 0x72,
+ 0x52, 0x61, 0x41, 0x64, 0x44, 0x6E, 0x4E, 0x61, 0x41, 0x74, 0x54, 0x73, 0x53,
+ 0x65, 0x45, 0x62, 0x42, 0x63, 0x43, 0x6F, 0x4F, 0x35, 0x67, 0x47, 0x73, 0x53,
+ 0x65, 0x45, 0x6E, 0x4E, 0x61, 0x41, 0x70, 0x50, 0x61, 0x41, 0x6A, 0x4A, 0x54,
+ 0x74, 0x6D, 0x4D, 0x66, 0x46, 0x64, 0x44, 0x6B, 0x4B, 0x4B, 0x6B, 0x54, 0x74,
+ 0x70, 0x50, 0x63, 0x43, 0x31, 0x33, 0x4B, 0x6B, 0x32, 0x6E, 0x4E, 0x61, 0x41,
+ 0x6B, 0x4B, 0x61, 0x41, 0x74, 0x54, 0x61, 0x41, 0x6B, 0x4B, 0x68, 0x48, 0x74,
+ 0x54, 0x64, 0x44, 0x69, 0x49, 0x77, 0x57, 0x66, 0x46, 0x6E, 0x4E, 0x61, 0x41,
+ 0x6D, 0x4D, 0x4F, 0x6F, 0x72, 0x52, 0x6C, 0x4C, 0x30, 0x39, 0x34, 0x32, 0x61,
+ 0x41, 0x68, 0x48, 0x31, 0x30, 0x37, 0x38, 0x39, 0x36, 0x35, 0x32, 0x39, 0x38,
+ 0x37, 0x30, 0x35, 0x30, 0x54, 0x74, 0x32, 0x31, 0x39, 0x38, 0x34, 0x6D, 0x4D,
+ 0x38, 0x32, 0x31, 0x33, 0x32, 0x62, 0x42, 0x67, 0x47, 0x31, 0x39, 0x35, 0x69,
+ 0x49, 0x6C, 0x4C, 0x6C, 0x4C, 0x69, 0x49, 0x72, 0x52, 0x65, 0x45, 0x65, 0x45,
+ 0x65, 0x45, 0x72, 0x52, 0x62, 0x42, 0x45, 0x65, 0x72, 0x52, 0x79, 0x59, 0x72,
+ 0x52, 0x31, 0x32, 0x33, 0x34, 0x35, 0x68, 0x67, 0x63, 0x61, 0x48, 0x47, 0x43,
+ 0x41, 0x6E, 0x4E, 0x69, 0x49, 0x74, 0x54, 0x61, 0x41, 0x38, 0x38, 0x6C, 0x4C,
+ 0x38, 0x35, 0x6F, 0x4F, 0x6D, 0x62, 0x4D, 0x42, 0x38, 0x38, 0x39, 0x31, 0x31,
+ 0x30, 0x36, 0x35, 0x63, 0x43, 0x69, 0x49, 0x69, 0x49, 0x74, 0x54, 0x6C, 0x4C,
+ 0x61, 0x41, 0x62, 0x42, 0x35, 0x61, 0x41, 0x75, 0x55, 0x67, 0x47, 0x6E, 0x4E,
+ 0x69, 0x49, 0x6C, 0x4C, 0x69, 0x49, 0x74, 0x54, 0x6C, 0x4C, 0x75, 0x55, 0x6D,
+ 0x4D, 0x65, 0x45, 0x72, 0x52, 0x62, 0x42, 0x65, 0x45, 0x68, 0x48, 0x6E, 0x4E,
+ 0x69, 0x49, 0x74, 0x54, 0x61, 0x41, 0x6C, 0x4C, 0x33, 0x34, 0x65, 0x45, 0x67,
+ 0x47, 0x61, 0x41, 0x70, 0x50, 0x65, 0x45, 0x64, 0x44, 0x6F, 0x4F, 0x32, 0x30,
+ 0x35, 0x38, 0x63, 0x43, 0x36, 0x35, 0x37, 0x70, 0x50, 0x38, 0x37, 0x69, 0x49,
+ 0x6A, 0x4A, 0x54, 0x74, 0x66, 0x46, 0x69, 0x49, 0x32, 0x36, 0x53, 0x73, 0x64,
+ 0x44, 0x6F, 0x4F, 0x63, 0x43, 0x42, 0x62, 0x4C, 0x6C, 0x42, 0x62, 0x4C, 0x6C,
+ 0x32, 0x36, 0x38, 0x33, 0x31, 0x66, 0x46, 0x69, 0x49, 0x35, 0x6E, 0x4E, 0x69,
+ 0x49, 0x74, 0x54, 0x61, 0x41, 0x6C, 0x4C, 0x31, 0x32, 0x31, 0x33, 0x73, 0x53,
+ 0x77, 0x57, 0x6F, 0x4F, 0x64, 0x44, 0x6E, 0x4E, 0x69, 0x49, 0x74, 0x6E, 0x54,
+ 0x4E, 0x69, 0x49, 0x68, 0x48, 0x63, 0x43, 0x73, 0x6F, 0x53, 0x4F, 0x73, 0x62,
+ 0x53, 0x42, 0x50, 0x70, 0x61, 0x41, 0x62, 0x42, 0x75, 0x55, 0x69, 0x49, 0x53,
+ 0x73, 0x64, 0x44, 0x69, 0x49, 0x6C, 0x4C, 0x6C, 0x4C, 0x69, 0x49, 0x72, 0x52,
+ 0x77, 0x75, 0x74, 0x73, 0x70, 0x6B, 0x69, 0x68, 0x67, 0x65, 0x62, 0x61, 0x57,
+ 0x55, 0x54, 0x53, 0x50, 0x4B, 0x49, 0x48, 0x47, 0x45, 0x42, 0x41, 0x38, 0x37,
+ 0x35, 0x34, 0x33, 0x30, 0x39, 0x32, 0x31, 0x2D, 0x69, 0x49, 0x73, 0x53, 0x63,
+ 0x43, 0x65, 0x45, 0x6F, 0x4F, 0x72, 0x52, 0x79, 0x77, 0x75, 0x74, 0x73, 0x72,
+ 0x6E, 0x69, 0x68, 0x67, 0x66, 0x65, 0x64, 0x63, 0x62, 0x61, 0x59, 0x57, 0x55,
+ 0x54, 0x53, 0x52, 0x4E, 0x49, 0x48, 0x47, 0x46, 0x45, 0x44, 0x43, 0x42, 0x41,
+ 0x69, 0x49, 0x6C, 0x4C, 0x6C, 0x4C, 0x69, 0x49, 0x72, 0x52, 0x2D, 0x72, 0x52,
+ 0x75, 0x55, 0x65, 0x45, 0x2B, 0x33, 0x37, 0x32, 0x72, 0x52, 0x75, 0x55, 0x65,
+ 0x45, 0x2B, 0x37, 0x37, 0x32, 0x2D, 0x2D, 0x72, 0x52, 0x75, 0x55, 0x65, 0x45,
+ 0x2B, 0x34, 0x38, 0x32, 0x2D, 0x72, 0x52, 0x75, 0x55, 0x65, 0x45, 0x2B, 0x38,
+ 0x37, 0x32, 0x72, 0x52, 0x75, 0x55, 0x65, 0x45, 0x2B, 0x37, 0x39, 0x32, 0x2D,
+ 0x2D, 0x72, 0x52, 0x75, 0x55, 0x65, 0x45, 0x2B, 0x35, 0x38, 0x32, 0x2D, 0x72,
+ 0x52, 0x75, 0x55, 0x65, 0x45, 0x2B, 0x30, 0x30, 0x35, 0x2D, 0x6C, 0x4C, 0x61,
+ 0x41, 0x6E, 0x4E, 0x6F, 0x4F, 0x69, 0x49, 0x74, 0x54, 0x61, 0x41, 0x6E, 0x4E,
+ 0x72, 0x52, 0x65, 0x45, 0x72, 0x52, 0x75, 0x55, 0x65, 0x45, 0x2B, 0x31, 0x37,
+ 0x38, 0x72, 0x52, 0x75, 0x55, 0x65, 0x45, 0x2B, 0x30, 0x38, 0x32, 0x2D, 0x2D,
+ 0x74, 0x54, 0x6E, 0x4E, 0x61, 0x41, 0x6B, 0x4B, 0x2D, 0x72, 0x52, 0x75, 0x55,
+ 0x65, 0x45, 0x2D, 0x2D, 0x39, 0x6E, 0x4E, 0x69, 0x49, 0x74, 0x54, 0x72, 0x52,
+ 0x75, 0x55, 0x65, 0x45, 0x2B, 0x37, 0x33, 0x2D, 0x73, 0x53, 0x65, 0x45, 0x6F,
+ 0x4F, 0x61, 0x41, 0x70, 0x50, 0x74, 0x73, 0x6E, 0x54, 0x53, 0x4E, 0x62, 0x42,
+ 0x49, 0x69, 0x72, 0x52, 0x73, 0x53, 0x4B, 0x6B, 0x65, 0x45, 0x79, 0x70, 0x59,
+ 0x50, 0x75, 0x73, 0x6E, 0x6C, 0x6A, 0x69, 0x67, 0x66, 0x65, 0x64, 0x63, 0x55,
+ 0x53, 0x4E, 0x4C, 0x4A, 0x49, 0x47, 0x46, 0x45, 0x44, 0x43, 0x00, 0x2D, 0x63,
+ 0x43, 0x69, 0x49, 0x64, 0x44, 0x31, 0x31, 0x2D, 0x61, 0x41, 0x32, 0x39, 0x5F,
+ 0x74, 0x54, 0x68, 0x48, 0x74, 0x6B, 0x6A, 0x63, 0x54, 0x4B, 0x4A, 0x43, 0x74,
+ 0x54, 0x2D, 0x5F, 0x72, 0x52, 0x6F, 0x4F, 0x66, 0x46, 0x5F, 0x74, 0x54, 0x61,
+ 0x41, 0x6D, 0x4D, 0x72, 0x52, 0x6F, 0x4F, 0x66, 0x46, 0x5F, 0x64, 0x44, 0x65,
+ 0x45, 0x6B, 0x4B, 0x63, 0x43, 0x61, 0x41, 0x70, 0x50, 0x5F, 0x65, 0x45, 0x64,
+ 0x44, 0x6F, 0x4F, 0x63, 0x43, 0x5F, 0x78, 0x58, 0x69, 0x49, 0x6E, 0x4E, 0x75,
+ 0x55, 0x5F, 0x64, 0x44, 0x65, 0x45, 0x64, 0x44, 0x6E, 0x4E, 0x65, 0x45, 0x74,
+ 0x54, 0x63, 0x43, 0x6F, 0x4F, 0x6D, 0x4D, 0x63, 0x43, 0x2D, 0x32, 0x31, 0x33,
+ 0x32, 0x00, 0x38, 0x6B, 0x4B, 0x65, 0x45, 0x65, 0x45, 0x4B, 0x6B, 0x5F, 0x32,
+ 0x00, 0xF8, 0x73, 0xD2, 0xC5, 0x66, 0xC5, 0x66, 0x2D, 0x00, 0x33, 0x31, 0x00,
+ 0x39, 0x36, 0x31, 0x30, 0x35, 0x30, 0x39, 0x38, 0x36, 0x35, 0x34, 0x33, 0x32,
+ 0x31, 0x30, 0x00, 0x37, 0x00, 0x38, 0x36, 0x32, 0x31, 0x30, 0x38, 0x32, 0x37,
+ 0x35, 0x31, 0x30, 0x39, 0x34, 0x36, 0x37, 0x38, 0x35, 0x33, 0x32, 0x31, 0x2D,
+ 0x61, 0x41, 0x36, 0x35, 0x30, 0x38, 0x32, 0x35, 0x33, 0x39, 0x38, 0x37, 0x36,
+ 0x34, 0x31, 0x38, 0x37, 0x35, 0x33, 0x30, 0x34, 0x36, 0x35, 0x33, 0x32, 0x31,
+ 0x39, 0x38, 0x35, 0x34, 0x32, 0x31, 0x30, 0x34, 0x30, 0x30, 0x34, 0x35, 0x37,
+ 0x36, 0x35, 0x32, 0x37, 0x37, 0x36, 0x35, 0x34, 0x37, 0x39, 0x34, 0x33, 0x37,
+ 0x35, 0x34, 0x32, 0x30, 0x35, 0x33, 0x32, 0x35, 0x34, 0x33, 0x32, 0x31, 0x32,
+ 0x39, 0x00, 0x32, 0x30, 0x32, 0x33, 0x35, 0x36, 0x39, 0x38, 0x34, 0x31, 0x00,
+ 0x36, 0x00, 0x30, 0x37, 0x38, 0x39, 0x00, 0x33, 0x32, 0x36, 0x37, 0x39, 0x34,
+ 0x34, 0x36, 0x35, 0x33, 0x37, 0x36, 0x35, 0x34, 0x33, 0x32, 0x31, 0x30, 0x38,
+ 0x39, 0x37, 0x36, 0x35, 0x33, 0x31, 0x37, 0x33, 0x32, 0x32, 0x31, 0x37, 0x34,
+ 0x33, 0x31, 0x30, 0x32, 0x39, 0x33, 0x37, 0x36, 0x33, 0x30, 0x39, 0x37, 0x38,
+ 0x35, 0x37, 0x33, 0x32, 0x31, 0x30, 0x37, 0x36, 0x35, 0x34, 0x33, 0x32, 0x31,
+ 0x30, 0x39, 0x38, 0x37, 0x36, 0x35, 0x33, 0x31, 0x37, 0x33, 0x32, 0x30, 0x33,
+ 0x32, 0x36, 0x30, 0x39, 0x38, 0x37, 0x35, 0x33, 0x30, 0x39, 0x38, 0x37, 0x36,
+ 0x38, 0x37, 0x35, 0x33, 0x30, 0x36, 0x35, 0x34, 0x33, 0x32, 0x31, 0x39, 0x38,
+ 0x35, 0x34, 0x32, 0x31, 0x30, 0x37, 0x36, 0x35, 0x34, 0x39, 0x37, 0x35, 0x34,
+ 0x32, 0x35, 0x33, 0x32, 0x31, 0x34, 0x36, 0x35, 0x33, 0x34, 0x30, 0x36, 0x34,
+ 0x33, 0x31, 0x30, 0x39, 0x33, 0x33, 0x32, 0x31, 0x30, 0x39, 0x38, 0x37, 0x35,
+ 0x34, 0x33, 0x32, 0x30, 0x30, 0x38, 0x32, 0x35, 0x33, 0x34, 0x31, 0x37, 0x34,
+ 0x30, 0x37, 0x35, 0x32, 0x37, 0x34, 0x33, 0x35, 0x34, 0x33, 0x32, 0x31, 0x32,
+ 0x39, 0x32, 0x31, 0x37, 0x33, 0x38, 0x35, 0x37, 0x33, 0x32, 0x39, 0x38, 0x35,
+ 0x34, 0x31, 0x30, 0x36, 0x35, 0x33, 0x32, 0x31, 0x30, 0x64, 0x44, 0x69, 0x49,
+ 0x73, 0x53, 0x63, 0x43, 0x31, 0x30, 0x30, 0x74, 0x54, 0x39, 0x38, 0x37, 0x36,
+ 0x35, 0x34, 0x33, 0x32, 0x31, 0x63, 0x43, 0x39, 0x38, 0x37, 0x35, 0x34, 0x33,
+ 0x32, 0x31, 0x30, 0x2D, 0x2D, 0x73, 0x53, 0x63, 0x43, 0x75, 0x55, 0x2D, 0x36,
+ 0x34, 0x36, 0x2D, 0x6E, 0x4E, 0x69, 0x49, 0x74, 0x54, 0x61, 0x41, 0x6C, 0x4C,
+ 0x2D, 0x31, 0x2E, 0x33, 0x2D, 0x73, 0x53, 0x77, 0x57, 0x6F, 0x4F, 0x64, 0x44,
+ 0x6E, 0x4E, 0x69, 0x49, 0x77, 0x57, 0x2D, 0x6E, 0x4E, 0x69, 0x49, 0x74, 0x54,
+ 0x61, 0x41, 0x6C, 0x4C, 0x2D, 0x73, 0x53, 0x77, 0x57, 0x6F, 0x4F, 0x64, 0x44,
+ 0x6E, 0x4E, 0x69, 0x49, 0x77, 0x57, 0x00, 0x2D, 0x00, 0x33, 0x35, 0x2D, 0x36,
+ 0x33, 0x34, 0x39, 0x37, 0x38, 0x35, 0x32, 0x31, 0x2D, 0x39, 0x35, 0x33, 0x34,
+ 0x32, 0x31, 0x30, 0x36, 0x35, 0x31, 0x2D, 0x72, 0x52, 0x38, 0x30, 0x75, 0x55,
+ 0x2D, 0x36, 0x39, 0x39, 0x31, 0x3A, 0x76, 0x56, 0x72, 0x52, 0x69, 0x49, 0x2E,
+ 0x36, 0x38, 0x39, 0x31, 0x38, 0x39, 0x31, 0x38, 0x39, 0x31, 0x38, 0x39, 0x31,
+ 0x38, 0x39, 0x31, 0x38, 0x39, 0x31, 0x38, 0x39, 0x31, 0x38, 0x39, 0x31, 0x38,
+ 0x39, 0x31, 0x00, 0x3A, 0x00, 0x3A, 0x00, 0x3A, 0x00, 0x3A, 0x00, 0x3A, 0x00,
+ 0x3A, 0x00, 0x3A, 0x00, 0x3A, 0x00, 0x35, 0x3A, 0x39, 0x38, 0x37, 0x36, 0x35,
+ 0x34, 0x33, 0x32, 0x31, 0x2D, 0x39, 0x35, 0x38, 0x34, 0x38, 0x36, 0x34, 0x69,
+ 0x49, 0x38, 0x31, 0x5F, 0x36, 0x2D, 0xB6, 0xE6, 0xC5, 0x66, 0xD9, 0x9B, 0xF8,
+ 0xD5, 0x76, 0xC1, 0x62, 0xD4, 0x75, 0x77, 0xD6, 0xD9, 0x9B, 0x60, 0xC2, 0x63,
+ 0x6F, 0x4F, 0x6D, 0x4D, 0x6E, 0x4E, 0x30, 0x32, 0x30, 0x58, 0x78, 0x5F, 0x73,
+ 0x53, 0x2D, 0x61, 0x41, 0x65, 0x45, 0x38, 0x30, 0x36, 0x35, 0x38, 0x39, 0x31,
+ 0x2D, 0x31, 0x30, 0x36, 0x35, 0x5F, 0x63, 0x43, 0x5F, 0x63, 0x5F, 0x43, 0x72,
+ 0x69, 0x52, 0x49, 0x31, 0x32, 0x33, 0x34, 0x35, 0x2D, 0x6E, 0x4E, 0x69, 0x49,
+ 0x74, 0x54, 0x6A, 0x4A, 0x6E, 0x4E, 0x61, 0x41, 0x6B, 0x4B, 0x33, 0x39, 0x5F,
+ 0x72, 0x52, 0x75, 0x55, 0x65, 0x45, 0x2B, 0x30, 0x35, 0x38, 0x2D, 0x6C, 0x4C,
+ 0x61, 0x41, 0x75, 0x55, 0x67, 0x47, 0x6E, 0x4E, 0x69, 0x49, 0x6C, 0x4C, 0x69,
+ 0x49, 0x74, 0x54, 0x6C, 0x4C, 0x75, 0x55, 0x6D, 0x4D, 0x2D, 0xF1, 0xF0, 0xF2,
+ 0xF0, 0xA7, 0xB7, 0xE7, 0x6D, 0xE2, 0xAB, 0xA2, 0x5F, 0x74, 0x54, 0x66, 0x46,
+ 0x69, 0x49, 0x2D, 0x73, 0x53, 0x32, 0x2D, 0x73, 0x53, 0x61, 0x41, 0x6C, 0x62,
+ 0x4C, 0x42, 0x2D, 0x6C, 0x62, 0x4C, 0x42, 0x2D, 0x32, 0x36, 0x38, 0x33, 0x31,
+ 0x38, 0x33, 0x31, 0x2D, 0x66, 0x46, 0x00, 0x2D, 0x73, 0x53, 0x39, 0x31, 0x2D,
+ 0x73, 0x53, 0x77, 0x57, 0x6F, 0x4F, 0x64, 0x44, 0x6E, 0x4E, 0x68, 0xC7, 0xD5,
+ 0x76, 0xC9, 0x71, 0xC4, 0x65, 0xD6, 0x77, 0xC3, 0x64, 0xD5, 0x76, 0xC5, 0x66,
+ 0x60, 0xC4, 0x65, 0xD9, 0x9B, 0xC1, 0x62, 0xC4, 0x65, 0xD5, 0x76, 0xC1, 0x62,
+ 0xE3, 0xB3, 0xE2, 0xAB, 0x60, 0xC5, 0x66, 0xC2, 0x63, 0xF6, 0xF8, 0xF8, 0xF6,
+ 0xF9, 0xF1, 0x60, 0xF4, 0x4B, 0xF3, 0xE7, 0xB7, 0xA7, 0x6D, 0xC9, 0x89, 0x71,
+ 0x87, 0xC7, 0xD5, 0x95, 0xC9, 0x89, 0xC4, 0x84, 0xD6, 0x96, 0xC3, 0x83, 0xD5,
+ 0x95, 0xC5, 0x85, 0x60, 0xC4, 0x84, 0xD9, 0x99, 0xC1, 0x81, 0xC4, 0x84, 0xD5,
+ 0x95, 0xC1, 0x81, 0xE3, 0xA3, 0xE2, 0xA2, 0x60, 0xC5, 0x85, 0xC2, 0x82, 0x83,
+ 0xC3, 0xC9, 0x89, 0xC2, 0x82, 0x64, 0xC3, 0xC9, 0x71, 0xC2, 0x63, 0xC9, 0x89,
+ 0x71, 0xF8, 0xF0, 0xF7, 0x60, 0xD6, 0x96, 0x77, 0xC9, 0x89, 0x71, 0x64, 0x83,
+ 0xC3, 0xD4, 0x94, 0x75, 0xC1, 0x62, 0xC1, 0x81, 0xD6, 0x96, 0xE2, 0xAB, 0xA2,
+ 0xD6, 0x77, 0x66, 0xC5, 0xE2, 0xAB, 0xC5, 0x66, 0xD5, 0x76, 0xAB, 0xE2, 0x9B,
+ 0xD9, 0x9B, 0xD9, 0xF7, 0xF0, 0xF7, 0xF7, 0xF7, 0xF0, 0xF3, 0xF4, 0xF5, 0xF1,
+ 0xF0, 0xF0, 0xF1, 0xF2, 0xF3, 0xF5, 0xF6, 0xF9, 0xF4, 0xF7, 0xF5, 0xF2, 0xF1,
+ 0xF0, 0xF4, 0xF3, 0xF0, 0xF9, 0xF8, 0xF5, 0xF6, 0xF7, 0xF3, 0xF2, 0xF6, 0xF9,
+ 0xF3, 0xC9, 0xC7, 0xC1, 0x71, 0x68, 0x62, 0xC4, 0x65, 0xD9, 0x9B, 0xC1, 0x62,
+ 0xC4, 0x65, 0xD5, 0x76, 0xC1, 0x62, 0xE3, 0xB3, 0xE2, 0xAB, 0xC5, 0x66, 0xC2,
+ 0x63, 0x71, 0xC9, 0xC9, 0x71, 0xC3, 0x64, 0xD6, 0x77, 0xAB, 0xE2, 0xC3, 0x64,
+ 0xE2, 0xAB, 0xD2, 0x73, 0xC8, 0x69, 0xF5, 0xC7, 0x68, 0x66, 0xC5, 0xE2, 0xAB,
+ 0xC5, 0x66, 0xD5, 0x76, 0xC1, 0x62, 0xD7, 0x78, 0xC1, 0x62, 0xD1, 0x72, 0xB3,
+ 0xE3, 0xD4, 0x75, 0xC6, 0x67, 0xC4, 0x65, 0x69, 0xC8, 0xD2, 0x73, 0x9B, 0xD9,
+ 0xE3, 0xD7, 0xD2, 0xB3, 0x78, 0x73, 0xC3, 0x64, 0xF2, 0xF1, 0xF3, 0x73, 0xD2,
+ 0xF2, 0x62, 0xC1, 0xD5, 0x76, 0xC1, 0x62, 0xD2, 0x73, 0xC1, 0x62, 0xE3, 0xB3,
+ 0xC1, 0x62, 0xD2, 0x73, 0xC8, 0x69, 0xE3, 0xB3, 0xC4, 0x65, 0xC9, 0x71, 0xE6,
+ 0xB6, 0xC6, 0x67, 0xD3, 0x74, 0xF4, 0xF0, 0xF9, 0x71, 0xC9, 0xC1, 0x62, 0xF8,
+ 0xF4, 0xF2, 0xF5, 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, 0xF8, 0xF9,
+ 0xF4, 0xF1, 0xF9, 0xF8, 0xF7, 0xF6, 0xF4, 0xF2, 0xF0, 0xF4, 0xF5, 0xF3, 0xF8,
+ 0xF7, 0xF0, 0xF0, 0xF1, 0xF0, 0xF1, 0xF3, 0xF5, 0xF6, 0xF9, 0xF8, 0xF4, 0xF1,
+ 0xF5, 0xF7, 0xF8, 0xF3, 0xF5, 0xF1, 0xF0, 0xF9, 0xF8, 0xF7, 0xF6, 0xF5, 0xF0,
+ 0xF2, 0xF9, 0xF8, 0xF7, 0xF0, 0xF3, 0xF1, 0xF0, 0x69, 0xC8, 0xF9, 0xF8, 0xF5,
+ 0xF4, 0xF2, 0xF1, 0xF0, 0xE3, 0xB3, 0x75, 0xD4, 0x64, 0xC3, 0xC9, 0x71, 0xD3,
+ 0x74, 0xD3, 0x74, 0xC9, 0x71, 0xD9, 0x9B, 0x73, 0xD2, 0xC5, 0x66, 0xC5, 0x66,
+ 0xC5, 0x66, 0xD9, 0x9B, 0xE8, 0xB8, 0xD9, 0x9B, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5,
+ 0xC8, 0xC7, 0xC3, 0xC1, 0x69, 0x68, 0x64, 0x62, 0xD5, 0x76, 0xC9, 0x71, 0xE3,
+ 0xB3, 0xF0, 0xF8, 0xF2, 0xF1, 0xF3, 0xF2, 0x63, 0xC2, 0xC7, 0x68, 0xF3, 0xF5,
+ 0xF1, 0xF9, 0xF5, 0xF8, 0xF8, 0xC1, 0x62, 0xF8, 0xF5, 0xD3, 0x74, 0xD6, 0x77,
+ 0xD4, 0xC2, 0x75, 0x63, 0x9B, 0xD9, 0xF8, 0xF7, 0xF8, 0xF9, 0xF1, 0xF1, 0xF0,
+ 0xF6, 0xF5, 0x64, 0xC3, 0xC9, 0x71, 0xF2, 0xF5, 0x64, 0xC3, 0xC9, 0x71, 0xE3,
+ 0xB3, 0xD3, 0x74, 0xC1, 0x62, 0xC2, 0x63, 0xF5, 0xF3, 0xF4, 0x66, 0xC5, 0xC7,
+ 0x68, 0xC1, 0x62, 0xD7, 0x78, 0xC5, 0x66, 0xC4, 0x65, 0x74, 0xD3, 0xC1, 0x62,
+ 0xE4, 0xB4, 0xC7, 0x68, 0xD5, 0x76, 0xC9, 0x71, 0xD3, 0x74, 0xC9, 0x71, 0xE3,
+ 0xB3, 0xD3, 0x74, 0xE4, 0xB4, 0xD4, 0x75, 0xB6, 0xE6, 0xC5, 0x66, 0xD9, 0x9B,
+ 0xC2, 0x63, 0xC5, 0x66, 0xC8, 0x69, 0xD5, 0x76, 0xC9, 0x71, 0xE3, 0xB3, 0xC1,
+ 0x62, 0xD3, 0x74, 0xF2, 0xF0, 0xD6, 0x77, 0xF6, 0xF5, 0xC3, 0x64, 0xF7, 0xF8,
+ 0x78, 0xD7, 0xF8, 0xF7, 0xAB, 0xE2, 0xC9, 0x71, 0xD1, 0x72, 0xB3, 0xE3, 0xC6,
+ 0x67, 0xC9, 0x71, 0xF0, 0xF2, 0xF6, 0xAB, 0xE2, 0x66, 0xC5, 0xC4, 0x65, 0xD6,
+ 0x77, 0xC3, 0x64, 0x66, 0xC5, 0x66, 0xC5, 0xD3, 0xC2, 0x74, 0x63, 0x66, 0xC5,
+ 0x66, 0xC5, 0xD3, 0xC2, 0x74, 0x63, 0xF2, 0xF6, 0xF8, 0xF3, 0xF1, 0xC6, 0x67,
+ 0xC9, 0x71, 0xF8, 0xF7, 0xF6, 0xF5, 0xF4, 0xF3, 0xF2, 0xF1, 0xF0, 0xF5, 0xF1,
+ 0xF2, 0x76, 0xD5, 0xC9, 0x71, 0xE3, 0xB3, 0xC1, 0x62, 0xD3, 0x74, 0xF1, 0xF2,
+ 0xF1, 0xF3, 0xE2, 0xAB, 0xE6, 0xB6, 0xD6, 0x77, 0xC4, 0x65, 0xD5, 0x76, 0xC9,
+ 0x71, 0xE3, 0xD5, 0xB3, 0x76, 0xC9, 0x71, 0xC8, 0x69, 0xC3, 0x64, 0xE2, 0xD6,
+ 0xAB, 0x77, 0xE2, 0xC2, 0xAB, 0x63, 0xD7, 0xC1, 0x78, 0x62, 0xC2, 0x63, 0xE4,
+ 0xB4, 0xC9, 0x71, 0xE2, 0xC4, 0xAB, 0x65, 0x64, 0xC3, 0xC9, 0x71, 0xD3, 0x74,
+ 0xD3, 0x74, 0xC9, 0x71, 0xD9, 0x9B, 0xE6, 0xE4, 0xE3, 0xE2, 0xD7, 0xD2, 0xC9,
+ 0xC8, 0xC7, 0xC5, 0xC2, 0xC1, 0xB6, 0xB4, 0xB3, 0xAB, 0x78, 0x73, 0x71, 0x69,
+ 0x68, 0x66, 0x63, 0x62, 0xF7, 0xF4, 0xF3, 0xF9, 0xF8, 0xF2, 0xF0, 0x60, 0xC9,
+ 0x71, 0xF1, 0xF2, 0x66, 0xC5, 0xC3, 0x64, 0xC5, 0x66, 0xB4, 0xE4, 0xB3, 0xE3,
+ 0xAB, 0xE2, 0x9B, 0xD9, 0x66, 0xC5, 0xD6, 0x77, 0x74, 0xD3, 0xB3, 0xE3, 0xAB,
+ 0xE2, 0x66, 0xC5, 0x63, 0xC2, 0x9B, 0xD9, 0x71, 0xC9, 0x9B, 0xD9, 0xAB, 0xE2,
+ 0x62, 0xC1, 0x69, 0xC8, 0x66, 0xC5, 0x9B, 0xD9, 0xE8, 0xE6, 0xE4, 0xE3, 0xE2,
+ 0xD9, 0xD5, 0xC9, 0xC8, 0xC7, 0xC6, 0xC5, 0xC3, 0xC2, 0xC1, 0xB8, 0xB6, 0xB4,
+ 0xB3, 0xAB, 0x9B, 0x76, 0x71, 0x69, 0x68, 0x67, 0x66, 0x64, 0x63, 0x62, 0x60,
+ 0x77, 0xD6, 0xD9, 0x9B, 0xE4, 0xB4, 0xC5, 0x66, 0x4E, 0xF3, 0xF7, 0xF2, 0x77,
+ 0xD6, 0xD9, 0x9B, 0xE4, 0xB4, 0xC5, 0x66, 0x4E, 0xF7, 0xF7, 0xF2, 0x60, 0x60,
+ 0x77, 0xD6, 0xD9, 0x9B, 0xE4, 0xB4, 0xC5, 0x66, 0x4E, 0xF4, 0xF8, 0xF2, 0x60,
+ 0x77, 0xD6, 0xD9, 0x9B, 0xE4, 0xB4, 0xC5, 0x66, 0x4E, 0xF8, 0xF7, 0xF2, 0x77,
+ 0xD6, 0xD9, 0x9B, 0xE4, 0xB4, 0xC5, 0x66, 0x4E, 0xF7, 0xF9, 0xF2, 0x60, 0x60,
+ 0x77, 0xD6, 0xD9, 0x9B, 0xE4, 0xB4, 0xC5, 0x66, 0x4E, 0xF5, 0xF8, 0xF2, 0x60,
+ 0x77, 0xD6, 0xD9, 0x9B, 0xE4, 0xB4, 0xC5, 0x66, 0x4E, 0xF0, 0xF0, 0xF5, 0x60,
+ 0xD3, 0x74, 0xC1, 0x62, 0xD5, 0x76, 0xD6, 0x77, 0xC9, 0x71, 0xE3, 0xB3, 0xC1,
+ 0x62, 0xD5, 0x76, 0xD9, 0x9B, 0xC5, 0x66, 0x77, 0xD6, 0xD9, 0x9B, 0xE4, 0xB4,
+ 0xC5, 0x66, 0x4E, 0xF1, 0xF7, 0xF8, 0x77, 0xD6, 0xD9, 0x9B, 0xE4, 0xB4, 0xC5,
+ 0x66, 0x4E, 0xF0, 0xF8, 0xF2, 0x60, 0x60, 0xE3, 0xB3, 0x62, 0xC1, 0xD5, 0x76,
+ 0x81, 0xC1, 0xD5, 0x95, 0xC1, 0x81, 0xC1, 0x62, 0xD2, 0x92, 0x73, 0x60, 0x77,
+ 0xD6, 0xD9, 0x9B, 0xE4, 0xB4, 0xC5, 0x66, 0x60, 0x60, 0xF9, 0xD5, 0x76, 0xC9,
+ 0x71, 0x96, 0xD6, 0xD9, 0x99, 0xE4, 0xA4, 0xC5, 0x85, 0x60, 0x60, 0xF9, 0xD5,
+ 0x95, 0xC9, 0x89, 0xE3, 0xA3, 0xE3, 0xB3, 0x85, 0xC5, 0xC3, 0x83, 0xC5, 0x85,
+ 0xA4, 0xE4, 0xA3, 0xE3, 0xA2, 0xE2, 0x99, 0xD9, 0x85, 0xC5, 0xD6, 0x96, 0xA3,
+ 0xE3, 0xA2, 0xE2, 0x85, 0xC5, 0x82, 0xC2, 0x99, 0xD9, 0x89, 0xC9, 0x99, 0xD9,
+ 0xA2, 0xE2, 0x81, 0xC1, 0x88, 0xC8, 0x85, 0xC5, 0xD9, 0x99, 0x93, 0xD3, 0x77,
+ 0x96, 0xD6, 0x73, 0x92, 0xD2, 0xE8, 0xE6, 0xE4, 0xE3, 0xE2, 0xD9, 0xD5, 0xC9,
+ 0xC8, 0xC7, 0xC6, 0xC5, 0xC4, 0xC3, 0xC2, 0xC1, 0xA8, 0xA6, 0xA4, 0xA3, 0xA2,
+ 0x99, 0x95, 0x89, 0x88, 0x87, 0x86, 0x85, 0x84, 0x83, 0x82, 0x81, 0x76, 0x65,
+ 0x83, 0xC3, 0xC9, 0x89, 0xD3, 0x93, 0xD3, 0x93, 0xC9, 0x89, 0x64, 0xC3, 0xC9,
+ 0x71, 0xD3, 0x74, 0xD3, 0x74, 0xC9, 0x71, 0xD9, 0x9B, 0xD9, 0x99, 0x60, 0x96,
+ 0xD6, 0xD9, 0x99, 0xE4, 0xA4, 0xC5, 0x85, 0x4E, 0xF3, 0xF7, 0xF2, 0x96, 0xD6,
+ 0xD9, 0x99, 0xE4, 0xA4, 0xC5, 0x85, 0x4E, 0xF7, 0xF7, 0xF2, 0x60, 0x60, 0x96,
+ 0xD6, 0xD9, 0x99, 0xE4, 0xA4, 0xC5, 0x85, 0x4E, 0xF4, 0xF8, 0xF2, 0x60, 0x96,
+ 0xD6, 0xD9, 0x99, 0xE4, 0xA4, 0xC5, 0x85, 0x4E, 0xF8, 0xF7, 0xF2, 0x96, 0xD6,
+ 0xD9, 0x99, 0xE4, 0xA4, 0xC5, 0x85, 0x4E, 0xF7, 0xF9, 0xF2, 0x60, 0x60, 0x96,
+ 0xD6, 0xD9, 0x99, 0xE4, 0xA4, 0xC5, 0x85, 0x4E, 0xF5, 0xF8, 0xF2, 0x60, 0x96,
+ 0xD6, 0xD9, 0x99, 0xE4, 0xA4, 0xC5, 0x85, 0x4E, 0xF0, 0xF0, 0xF5, 0x60, 0xD3,
+ 0x93, 0xC1, 0x81, 0xD5, 0x95, 0xD6, 0x96, 0xC9, 0x89, 0xE3, 0xA3, 0xC1, 0x81,
+ 0xD5, 0x95, 0xD9, 0x99, 0xC5, 0x85, 0x96, 0xD6, 0xD9, 0x99, 0xE4, 0xA4, 0xC5,
+ 0x85, 0x4E, 0xF1, 0xF7, 0xF8, 0x96, 0xD6, 0xD9, 0x99, 0xE4, 0xA4, 0xC5, 0x85,
+ 0x4E, 0xF0, 0xF8, 0xF2, 0x60, 0x60, 0xE3, 0xA3, 0x96, 0xD6, 0xD9, 0x99, 0xE4,
+ 0xA4, 0xC5, 0x85, 0x4E, 0xF7, 0xF3, 0x60, 0x77, 0xD6, 0xD9, 0x9B, 0xE4, 0xB4,
+ 0xC5, 0x66, 0x4E, 0xF7, 0xF3, 0x60, 0xE2, 0xAB, 0xC5, 0x66, 0xE2, 0xA2, 0xC5,
+ 0x85, 0xD6, 0x96, 0xE3, 0xE2, 0xD5, 0xA3, 0xA2, 0x95, 0xC2, 0x82, 0x89, 0xC9,
+ 0xD9, 0x99, 0xE2, 0xA2, 0x92, 0xD2, 0xC5, 0x85, 0xE8, 0xD7, 0xB8, 0xA8, 0x97,
+ 0x78, 0xD6, 0x77, 0xC1, 0x81, 0x62, 0xD7, 0x97, 0x78, 0xE3, 0xE2, 0xD5, 0xB3,
+ 0xAB, 0x76, 0xC2, 0x63, 0x71, 0xC9, 0xD9, 0x9B, 0xE2, 0xAB, 0x73, 0xD2, 0xC5,
+ 0x66, 0xD7, 0x78, 0xE4, 0xE2, 0xD5, 0xD3, 0xD1, 0xC9, 0xC7, 0xC6, 0xC5, 0xC4,
+ 0xC3, 0xB4, 0xAB, 0xA4, 0xA2, 0x95, 0x93, 0x91, 0x89, 0x87, 0x86, 0x85, 0x84,
+ 0x83, 0x76, 0x74, 0x72, 0x71, 0x68, 0x67, 0x66, 0x65, 0x64, 0x00, 0x60, 0xC3,
+ 0x83, 0x64, 0xC9, 0x89, 0x71, 0xC4, 0x84, 0x65, 0xF4, 0xF8, 0xF1, 0xF1, 0x60,
+ 0xC1, 0x81, 0x62, 0xF8, 0xF2, 0xF9, 0x6D, 0xE3, 0xB3, 0xA3, 0x6E, 0xC8, 0x88,
+ 0x69, 0x99, 0x9B, 0xD9, 0x78, 0x97, 0xD7, 0x76, 0x95, 0xD5, 0x69, 0x88, 0xC8,
+ 0xE3, 0xD2, 0xD1, 0xC3, 0xB3, 0xA3, 0x92, 0x91, 0x83, 0x73, 0x72, 0x64, 0xE3,
+ 0xB3, 0xA3, 0x60, 0x85, 0xC5, 0xE2, 0xA2, 0xC5, 0x85, 0xD5, 0x95, 0xC1, 0x81,
+ 0xD7, 0x97, 0xC1, 0x81, 0xD1, 0x91, 0x6D, 0xD9, 0x99, 0xD6, 0x96, 0xC6, 0x86,
+ 0x6D, 0xE3, 0xA3, 0xC1, 0x81, 0xD4, 0x94, 0xD9, 0x99, 0xD6, 0x96, 0xC6, 0x86,
+ 0x6D, 0xC4, 0x84, 0xC5, 0x85, 0xD2, 0x92, 0xC3, 0x83, 0xC1, 0x81, 0xD7, 0x97,
+ 0x6D, 0xC5, 0x85, 0xC4, 0x84, 0xD6, 0x96, 0xC3, 0x83, 0x6D, 0xE7, 0xA7, 0xC9,
+ 0x89, 0xD5, 0x95, 0xE4, 0xA4, 0x6D, 0xC4, 0x84, 0xC5, 0x85, 0xC4, 0x84, 0xD5,
+ 0x95, 0xC5, 0x85, 0x6D, 0xD9, 0x9B, 0xD6, 0x77, 0xC6, 0x67, 0x6D, 0xE3, 0xB3,
+ 0xC1, 0x62, 0xD4, 0x75, 0xD9, 0x9B, 0xD6, 0x77, 0xC6, 0x67, 0x6D, 0xC4, 0x65,
+ 0xC5, 0x66, 0xD2, 0x73, 0xC3, 0x64, 0xC1, 0x62, 0xD7, 0x78, 0x6D, 0xC5, 0x66,
+ 0xC4, 0x65, 0xD6, 0x77, 0xC3, 0x64, 0x6D, 0xE7, 0xB7, 0xC9, 0x71, 0xD5, 0x76,
+ 0xE4, 0xB4, 0x6D, 0xC4, 0x65, 0xC5, 0x66, 0xC4, 0x65, 0xD5, 0x76, 0xC5, 0x66,
+ 0xE3, 0xB3, 0xE3, 0xA3, 0xC3, 0x83, 0x64, 0xD6, 0x96, 0x77, 0xD4, 0x94, 0x75,
+ 0xC3, 0x83, 0x64, 0xF3, 0xF4, 0xF8, 0xF9, 0xF0, 0x00, 0xF3, 0xF1, 0x00, 0xF9,
+ 0xF6, 0xF1, 0xF0, 0xF9, 0xF8, 0xF7, 0xF6, 0xF5, 0xF4, 0xF3, 0xF2, 0xF1, 0xF0,
+ 0xF6, 0xF9, 0xF4, 0xF7, 0xF0, 0xF3, 0xF2, 0xF1, 0xF0, 0xF2, 0xF4, 0xF9, 0xF8,
+ 0xF7, 0xF6, 0xF5, 0xF3, 0xF1, 0xF5, 0xF6, 0xF7, 0xF8, 0xF9, 0xF4, 0xF3, 0xF2,
+ 0xF1, 0xF0, 0xF9, 0xF8, 0xF7, 0xF5, 0xF4, 0xF3, 0xF0, 0xF8, 0xF5, 0xF1, 0xF0,
+ 0xF3, 0xF6, 0xF9, 0xF4, 0xF1, 0xF2, 0xF5, 0xF2, 0xF1, 0xF0, 0xF9, 0xF0, 0xF1,
+ 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, 0xF8, 0xF5, 0xF0, 0xF9, 0xF8, 0xF6, 0xF5,
+ 0xF4, 0xF3, 0xF2, 0xF1, 0xF0, 0x00, 0xF7, 0x00, 0xF6, 0xF8, 0xF2, 0xF1, 0xF0,
+ 0xF2, 0xF7, 0xF5, 0xF8, 0xF1, 0xF0, 0xF9, 0xF4, 0xF6, 0xF7, 0xF8, 0xF5, 0xF3,
+ 0xF2, 0xF1, 0x60, 0x62, 0xC1, 0xF8, 0xF7, 0xF9, 0xF8, 0xF1, 0xF7, 0xF6, 0xF3,
+ 0xF2, 0xF1, 0xF0, 0xF6, 0xF7, 0xF5, 0xF9, 0xF8, 0xF7, 0xF6, 0xF5, 0xF4, 0xF3,
+ 0xF2, 0xF1, 0xF0, 0xF9, 0xF8, 0xF4, 0xF0, 0xF8, 0xF7, 0xF6, 0xF5, 0xF4, 0xF3,
+ 0xF7, 0xF3, 0xF2, 0xF0, 0xF9, 0xF3, 0xF2, 0xF5, 0xF4, 0xF2, 0xF8, 0xF3, 0xF2,
+ 0xF1, 0xF0, 0xF6, 0xF5, 0xF0, 0xF2, 0xF0, 0xF8, 0xF7, 0xF6, 0xF5, 0xF4, 0xF3,
+ 0xF1, 0xF3, 0xF5, 0xF1, 0xF3, 0xF8, 0xF4, 0xF1, 0xF8, 0xF9, 0xF2, 0xF6, 0xF3,
+ 0xF8, 0xF1, 0xF0, 0xF5, 0xF3, 0xF3, 0xF4, 0xF8, 0xF2, 0xF4, 0xF5, 0xF3, 0xF9,
+ 0xF8, 0xF7, 0xF6, 0xF4, 0xF1, 0xF8, 0xF7, 0xF5, 0xF3, 0xF0, 0xF4, 0xF6, 0xF5,
+ 0xF3, 0xF2, 0xF1, 0xF9, 0xF8, 0xF5, 0xF4, 0xF2, 0xF1, 0xF0, 0xF6, 0xF4, 0xF9,
+ 0xF0, 0xF0, 0xF4, 0xF5, 0xF7, 0xF6, 0xF5, 0xF2, 0xF2, 0xF7, 0xF1, 0xF0, 0xF6,
+ 0xF1, 0xF5, 0xF0, 0xF3, 0xF2, 0xF1, 0xF8, 0xF7, 0xF6, 0xF5, 0xF4, 0xF7, 0xF9,
+ 0xF5, 0xF4, 0xF3, 0xF2, 0xF0, 0xF5, 0xF6, 0xF3, 0xF0, 0xF4, 0xF6, 0xF7, 0xF8,
+ 0xF9, 0xF8, 0xF5, 0xF4, 0xF3, 0xF7, 0xF5, 0xF4, 0xF2, 0xF0, 0xF5, 0xF3, 0xF2,
+ 0xF2, 0xF5, 0xF5, 0xF5, 0xF4, 0xF1, 0xF4, 0xF3, 0xF2, 0xF1, 0xF2, 0xF9, 0xF7,
+ 0xF0, 0x00, 0xF2, 0xF1, 0xF7, 0xF6, 0xF0, 0xF1, 0xF4, 0xF8, 0xF5, 0xF0, 0xF2,
+ 0xF3, 0xF5, 0xF6, 0xF9, 0xF8, 0xF4, 0xF1, 0xF0, 0xF1, 0xF2, 0xF5, 0xF7, 0xF8,
+ 0xF8, 0xF7, 0xF6, 0xF5, 0xF3, 0xF9, 0xF3, 0xF6, 0x00, 0xF6, 0x00, 0xF0, 0xF7,
+ 0xF8, 0xF9, 0x00, 0xF0, 0xF5, 0xF4, 0xF9, 0xF8, 0xF7, 0xF6, 0xF1, 0xF0, 0xF3,
+ 0xF9, 0xF7, 0xF6, 0xF4, 0xF2, 0xF9, 0xF8, 0xF7, 0xF6, 0xF5, 0xF4, 0xF3, 0xF2,
+ 0xF0, 0xF4, 0xF1, 0xF3, 0xF0, 0xF8, 0xF7, 0xF6, 0xF2, 0xF8, 0xF2, 0xF3, 0xF4,
+ 0xF6, 0xF5, 0xF4, 0xF6, 0xF5, 0xF3, 0xF7, 0xF6, 0xF5, 0xF4, 0xF3, 0xF2, 0xF1,
+ 0xF0, 0xF8, 0xF9, 0xF7, 0xF6, 0xF5, 0xF3, 0xF1, 0xF7, 0xF3, 0xF2, 0xF2, 0xF1,
+ 0xF7, 0xF4, 0xF3, 0xF1, 0xF0, 0xF2, 0xF9, 0xF3, 0xF7, 0xF6, 0xF3, 0xF0, 0xF9,
+ 0xF7, 0xF8, 0xF5, 0xF7, 0xF3, 0xF2, 0xF1, 0xF0, 0xF0, 0xF9, 0xF8, 0xF7, 0xF6,
+ 0xF5, 0xF4, 0xF3, 0xF2, 0xF1, 0x60, 0xF8, 0xF9, 0xF4, 0xF8, 0xF7, 0xF6, 0xF0,
+ 0xF0, 0xF1, 0xF9, 0xF3, 0xF4, 0xF2, 0xF1, 0xF0, 0xF6, 0xF5, 0xF1, 0x60, 0x9B,
+ 0xD9, 0xC9, 0x71, 0x60, 0xD6, 0x77, 0xD4, 0x75, 0xD5, 0x76, 0x76, 0xD5, 0xC1,
+ 0x62, 0xC5, 0x66, 0xD9, 0x9B, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xD5, 0x76, 0xC9,
+ 0x71, 0xE3, 0xB3, 0x60, 0xF5, 0xA2, 0xE2, 0xC3, 0x83, 0xE2, 0xA2, 0xD2, 0x92,
+ 0xC8, 0x88, 0x60, 0xF5, 0xC7, 0x87, 0xC7, 0x68, 0xF1, 0xF0, 0xF0, 0xC4, 0x84,
+ 0x65, 0xC9, 0x89, 0x71, 0xA2, 0xE2, 0x99, 0xD9, 0x99, 0xD9, 0xF2, 0xF3, 0xF8,
+ 0xF0, 0xF1, 0xF2, 0xF3, 0xF5, 0xF6, 0xF9, 0xF8, 0xF4, 0xF9, 0xF6, 0xF4, 0xF3,
+ 0xF5, 0xF1, 0xF3, 0xF0, 0xF5, 0xF9, 0xF8, 0xF7, 0xF6, 0xF1, 0xF9, 0xF8, 0xF7,
+ 0xF0, 0xC9, 0xC7, 0xC1, 0x89, 0x87, 0x81, 0x85, 0xC5, 0xE2, 0xA2, 0xC5, 0x85,
+ 0xD5, 0x95, 0xC4, 0x84, 0xD9, 0x99, 0xC1, 0x81, 0xC4, 0x84, 0xD5, 0x95, 0xC1,
+ 0x81, 0xE3, 0xA3, 0xE2, 0xA2, 0xC5, 0x85, 0xC2, 0x82, 0x89, 0xC9, 0xC9, 0x89,
+ 0xC3, 0x83, 0xD6, 0x96, 0xF5, 0xC7, 0x87, 0xE3, 0xA3, 0xD4, 0x94, 0xC6, 0x86,
+ 0xC4, 0x84, 0x88, 0xC8, 0xD2, 0x92, 0x99, 0xD9, 0xE3, 0xD7, 0xD2, 0xA3, 0x97,
+ 0x92, 0xC3, 0x83, 0x92, 0xD2, 0xF2, 0xC1, 0x81, 0xD5, 0x95, 0xC1, 0x81, 0xD2,
+ 0x92, 0xC1, 0x81, 0xE3, 0xA3, 0xC1, 0x81, 0xD2, 0x92, 0xC8, 0x88, 0xE3, 0xA3,
+ 0xC4, 0x84, 0xC9, 0x89, 0xE6, 0xA6, 0xC6, 0x86, 0x95, 0xD5, 0xC1, 0x81, 0xD4,
+ 0x94, 0x96, 0xD6, 0xD9, 0x99, 0xD3, 0x93, 0x89, 0xC9, 0xC1, 0x81, 0x88, 0xC8,
+ 0xF5, 0xF2, 0xF1, 0xF0, 0xF9, 0xF8, 0xF4, 0xE3, 0xA3, 0xD4, 0x94, 0xC3, 0x83,
+ 0xC9, 0x89, 0xD3, 0x93, 0xD3, 0x93, 0xC9, 0x89, 0xD9, 0x99, 0x92, 0xD2, 0xC5,
+ 0x85, 0xC5, 0x85, 0xA6, 0xE6, 0xC5, 0x85, 0xD9, 0x99, 0xC2, 0x82, 0x85, 0xC5,
+ 0xD9, 0x99, 0xE8, 0xA8, 0xD9, 0x99, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xC8, 0xC7,
+ 0xC3, 0xC1, 0x88, 0x87, 0x83, 0x81, 0xD5, 0x95, 0xC9, 0x89, 0xE3, 0xA3, 0xC2,
+ 0x82, 0xC7, 0x87, 0xF8, 0xC1, 0x81, 0xF8, 0xF5, 0xD3, 0x93, 0xD6, 0x96, 0xD4,
+ 0xC2, 0x94, 0x82, 0x99, 0xD9, 0xF8, 0xC3, 0x83, 0xC9, 0x89, 0x83, 0xC3, 0xC9,
+ 0x89, 0xE3, 0xA3, 0xD3, 0x93, 0xC1, 0x81, 0xC2, 0x82, 0xF5, 0xC5, 0x85, 0xC7,
+ 0x87, 0xC1, 0x81, 0xD7, 0x97, 0xC5, 0x85, 0xC4, 0x84, 0x93, 0xD3, 0xC1, 0x81,
+ 0xE4, 0xA4, 0xC7, 0x87, 0xD5, 0x95, 0xC9, 0x89, 0xD3, 0x93, 0xC9, 0x89, 0xE3,
+ 0xA3, 0xD3, 0x93, 0xE4, 0xA4, 0xD4, 0x94, 0xA6, 0xE6, 0xC5, 0x85, 0xD9, 0x99,
+ 0xC2, 0x82, 0xC5, 0x85, 0xC8, 0x88, 0xD5, 0x95, 0xC9, 0x89, 0xE3, 0xA3, 0xC1,
+ 0x81, 0xD3, 0x93, 0xF2, 0xF0, 0xD6, 0x96, 0xF6, 0xF5, 0xC3, 0x83, 0xF7, 0xF8,
+ 0xF7, 0xD7, 0x97, 0xE2, 0xA2, 0xC9, 0x89, 0xD1, 0x91, 0xA3, 0xE3, 0xC6, 0x86,
+ 0xC9, 0x89, 0xA2, 0xE2, 0x85, 0xC5, 0xC4, 0x84, 0xD6, 0x96, 0xC3, 0x83, 0x85,
+ 0xC5, 0x85, 0xC5, 0xD3, 0xC2, 0x93, 0x82, 0x85, 0xC5, 0x85, 0xC5, 0xD3, 0xC2,
+ 0x93, 0x82, 0xF2, 0xF6, 0xF8, 0xF3, 0xF1, 0xC6, 0x86, 0xC9, 0x89, 0xD5, 0x95,
+ 0xC9, 0x89, 0xE3, 0xA3, 0xC1, 0x81, 0xD3, 0x93, 0xF1, 0xF1, 0xF3, 0xE2, 0xA2,
+ 0xE6, 0xA6, 0xD6, 0x96, 0xC4, 0x84, 0xD5, 0x95, 0xC9, 0x89, 0xE3, 0xD5, 0xA3,
+ 0x95, 0xC9, 0x89, 0xC8, 0x88, 0xC3, 0x83, 0xE2, 0xD6, 0xA2, 0x96, 0xE2, 0xC2,
+ 0xA2, 0x82, 0x97, 0xD7, 0xC1, 0x81, 0xC2, 0x82, 0xE4, 0xA4, 0xC9, 0x89, 0xE2,
+ 0xC4, 0xA2, 0x84, 0x83, 0xC3, 0xC9, 0x89, 0xD3, 0x93, 0xD3, 0x93, 0xC9, 0x89,
+ 0xD9, 0x99, 0xE6, 0xE4, 0xE3, 0xE2, 0xD7, 0xD2, 0xC9, 0xC8, 0xC7, 0xC5, 0xC2,
+ 0xC1, 0xA6, 0xA4, 0xA3, 0xA2, 0x97, 0x92, 0x89, 0x88, 0x87, 0x85, 0x82, 0x81,
+ 0xC9, 0x89, 0xF7, 0xF4, 0xF3, 0xF5, 0xF0, 0xF8, 0xF9, 0xF2, 0xF1, 0x60, 0xE2,
+ 0xAB, 0xA2, 0x60, 0xF2, 0xF1, 0xF3, 0xF2, 0xD2, 0x92, 0xC5, 0x85, 0xC5, 0x85,
+ 0x73, 0x92, 0xD2, 0xF2, 0x6D, 0x60, 0xC8, 0x88, 0x69, 0xF7, 0xF0, 0xF7, 0xF0,
+ 0xF5, 0xF4, 0xF0, 0xF8, 0xF7, 0xF3, 0xF6, 0xF7, 0xF0, 0xF1, 0xF7, 0xF4, 0xF3,
+ 0xF0, 0xF0, 0xF5, 0xF7, 0xF0, 0xF7, 0xF1, 0xF6, 0xF0, 0xF4, 0xF8, 0xF1, 0xF0,
+ 0xF5, 0xF9, 0xF6, 0xF5, 0xF3, 0xF2, 0xF1, 0xF0, 0xF8, 0xF4, 0xF7, 0xF5, 0xF2,
+ 0xF1, 0xF0, 0xF8, 0xF8, 0xF3, 0xF5, 0xF6, 0xF7, 0xF9, 0xF3, 0xF0, 0xF4, 0xF5,
+ 0xF0, 0xF1, 0xF6, 0xF7, 0xF8, 0xF9, 0xF3, 0xF2, 0xF4, 0xF6, 0xF7, 0xF9, 0xF0,
+ 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, 0xF8, 0xF9, 0xF0, 0xF3, 0xF1, 0xF4, 0xF2,
+ 0xF6, 0xF7, 0xF8, 0xF5, 0xF4, 0xF3, 0xF2, 0xF6, 0xF8, 0xF4, 0xF5, 0xF3, 0xF7,
+ 0xF6, 0xF5, 0xF4, 0xF3, 0xF2, 0xF1, 0xF0, 0xF9, 0xF8, 0xF7, 0xF6, 0xF5, 0xF3,
+ 0xF1, 0xF7, 0xF3, 0xF2, 0xF0, 0xF3, 0xF2, 0xF6, 0xF0, 0xF9, 0xF8, 0xF7, 0xF5,
+ 0xF3, 0xF0, 0xF7, 0xF8, 0xF9, 0xF8, 0xF1, 0xF7, 0xF0, 0xF1, 0xF2, 0xF3, 0xF6,
+ 0xF6, 0xF5, 0xF7, 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, 0xF8, 0xF9,
+ 0xF8, 0xF9, 0xF0, 0xF4, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, 0xF8, 0xF9, 0xF8, 0xF7,
+ 0xF6, 0xF5, 0xF4, 0xF3, 0xF2, 0xF1, 0xF0, 0xF0, 0xF2, 0xF3, 0xF7, 0xF2, 0xF3,
+ 0xF9, 0xF2, 0xF4, 0xF5, 0xF0, 0xF1, 0xF2, 0xF3, 0xF6, 0xF5, 0xF0, 0xF2, 0xF1,
+ 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, 0xF8, 0xF5, 0xF3, 0xF8, 0xF3, 0xF1, 0xF2, 0xF9,
+ 0xF6, 0xF3, 0xF0, 0xF1, 0xF8, 0xF5, 0xF3, 0xF3, 0xF4, 0xF9, 0xF8, 0xF7, 0xF6,
+ 0xF8, 0xF7, 0xF5, 0xF3, 0xF0, 0xF6, 0xF5, 0xF4, 0xF3, 0xF2, 0xF1, 0xF9, 0xF8,
+ 0xF5, 0xF4, 0xF2, 0xF1, 0xF0, 0xF6, 0xF1, 0xF0, 0xF5, 0xF1, 0xF2, 0xF3, 0xF8,
+ 0xF7, 0xF6, 0xF5, 0xF4, 0xF9, 0xF0, 0xF2, 0xF3, 0xF4, 0xF5, 0xF5, 0xF6, 0xF3,
+ 0xF4, 0xF0, 0xF9, 0xF8, 0xF7, 0xF6, 0xF8, 0xF7, 0xF5, 0xF4, 0xF2, 0xF5, 0xF3,
+ 0xF2, 0xF2, 0xF1, 0xF6, 0xF6, 0xF0, 0xF9, 0xF8, 0xF7, 0xF4, 0xF6, 0xF5, 0xF3,
+ 0xF4, 0xF0, 0xF6, 0xF4, 0xF3, 0xF1, 0xF0, 0xF9, 0xF3, 0xF3, 0xF2, 0xF1, 0xF0,
+ 0xF9, 0xF8, 0xF7, 0xF5, 0xF4, 0xF3, 0xF2, 0xF0, 0xF8, 0xF0, 0xF1, 0xF4, 0xF8,
+ 0xF8, 0xF2, 0xF4, 0xF5, 0xF3, 0xF4, 0xF1, 0xF7, 0xF6, 0xF4, 0xF9, 0xF0, 0xF7,
+ 0xF5, 0xF2, 0xF2, 0xF7, 0xF5, 0xF4, 0xF3, 0xF2, 0xF5, 0xF5, 0xF5, 0xF4, 0xF1,
+ 0xF4, 0xF3, 0xF2, 0xF1, 0xF2, 0xF9, 0xF2, 0xF1, 0xF7, 0xF3, 0xF8, 0xF5, 0xF7,
+ 0xF3, 0xF2, 0xF9, 0xF8, 0xF5, 0xF4, 0xF1, 0xF0, 0xF6, 0xF5, 0xF3, 0xF2, 0xF1,
+ 0xF0, 0xC4, 0x84, 0x65, 0xC9, 0x89, 0x71, 0xE2, 0xAB, 0xA2, 0xF1, 0xF0, 0xC3,
+ 0x83, 0x64, 0xF9, 0xF8, 0xF7, 0xF6, 0xF5, 0xF4, 0xF3, 0xF2, 0xF1, 0xF0, 0xE3,
+ 0xB3, 0xA3, 0xF9, 0xF8, 0xF7, 0xF5, 0xF4, 0xF3, 0xF2, 0xF1, 0xF0, 0xC3, 0x83,
+ 0x64, 0x60, 0xC1, 0x81, 0xF2, 0x60, 0xE2, 0xAB, 0xA2, 0xC3, 0x83, 0x64, 0xE4,
+ 0xB4, 0xA4, 0x60, 0xF6, 0xF4, 0xF6, 0xF1, 0x60, 0x76, 0xD5, 0xC9, 0x71, 0xE3,
+ 0xB3, 0xC1, 0x62, 0xD3, 0x74, 0x60, 0xF1, 0x4B, 0xF3, 0x60, 0xE2, 0xAB, 0xE6,
+ 0xB6, 0xD6, 0x77, 0xC4, 0x65, 0xD5, 0x95, 0xC9, 0x89, 0xE3, 0xA3, 0xC1, 0x81,
+ 0xD3, 0x93, 0x60, 0xF1, 0x4B, 0xF3, 0x60, 0xE2, 0xA2, 0xE6, 0xA6, 0xD6, 0x96,
+ 0xC4, 0x84, 0xD5, 0x95, 0xD5, 0x76, 0xC9, 0x89, 0x71, 0xE6, 0xB6, 0xA6, 0xF2,
+ 0x60, 0x76, 0xD5, 0xC9, 0x71, 0xE3, 0xB3, 0xC1, 0x62, 0xD3, 0x74, 0x60, 0xE2,
+ 0xAB, 0xE6, 0xB6, 0xD6, 0x77, 0xC4, 0x65, 0xD5, 0x95, 0xC9, 0x89, 0xE3, 0xA3,
+ 0xC1, 0x81, 0xD3, 0x93, 0x60, 0xE2, 0xA2, 0xE6, 0xA6, 0xD6, 0x96, 0xC4, 0x84,
+ 0xD5, 0x95, 0xD5, 0x76, 0xC9, 0x89, 0x71, 0xE6, 0xB6, 0xA6, 0x00, 0x60, 0x00,
+ 0xF5, 0xF3, 0x60, 0xF6, 0xF3, 0xF4, 0xF9, 0xF7, 0xF8, 0xF5, 0xF2, 0xF1, 0x60,
+ 0xF9, 0xF5, 0xF8, 0xF0, 0xD9, 0x99, 0xF1, 0xF9, 0xF9, 0xF1, 0x7A, 0xB5, 0xE5,
+ 0xE5, 0xA5, 0xD9, 0x99, 0xD9, 0x9B, 0xC9, 0x89, 0x71, 0x4B, 0xF6, 0xF7, 0xF8,
+ 0xF9, 0xF1, 0xF7, 0xF8, 0xF9, 0xF1, 0xF8, 0xF8, 0xF9, 0xF1, 0xF8, 0xF8, 0xF9,
+ 0xF1, 0xF8, 0xF8, 0xF9, 0xF1, 0xF7, 0xF8, 0xF9, 0xF1, 0xF7, 0xF8, 0xF9, 0xF1,
+ 0xF8, 0xF9, 0xF1, 0xF9, 0xF8, 0xF9, 0xF1, 0x00, 0x7A, 0x00, 0x7A, 0x00, 0x7A,
+ 0x00, 0x7A, 0x00, 0x7A, 0x00, 0x7A, 0x00, 0x7A, 0x00, 0x7A, 0x00, 0xF5, 0x7A,
+ 0xF9, 0xF8, 0xF7, 0xF6, 0xF5, 0xF4, 0xF3, 0xF2, 0xF1, 0x60, 0xF9, 0xF5, 0xF8,
+ 0xF4, 0xA2, 0xAB, 0xE2, 0xE4, 0xB4, 0xA4, 0x60, 0xF6, 0xF4, 0xF8, 0xF6, 0xF8,
+ 0xF1, 0xC9, 0x89, 0xF6, 0x6D, 0x60, 0xD6, 0x96, 0x77, 0xD5, 0x95, 0xD4, 0x94,
+ 0x75, 0xD9, 0x9B, 0x99, 0x60, 0x95, 0xD5, 0xC1, 0x81, 0xC5, 0x85, 0xF8, 0xF1,
+ 0xF0, 0xF6, 0xF5, 0xF9, 0xF7, 0xF8, 0xF9, 0xF1, 0x60, 0xF1, 0xF0, 0xF6, 0xF5,
+ 0x6D, 0xC3, 0x83, 0x64, 0x6D, 0xC3, 0x83, 0x6D, 0x64, 0xD9, 0xC9, 0x99, 0x89,
+ 0x71, 0xF9, 0x60, 0xD5, 0x76, 0xC9, 0x71, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0x60,
+ 0xD5, 0x95, 0xC9, 0x89, 0xE3, 0xA3, 0xE3, 0xB3, 0x71, 0xC9, 0xD1, 0x72, 0x89,
+ 0xC9, 0xD1, 0x91, 0xD5, 0x95, 0xD5, 0x76, 0xC1, 0x81, 0x62, 0xF3, 0xD2, 0x92,
+ 0x73, 0xF9, 0x6D, 0x96, 0xD6, 0xD9, 0x99, 0xE4, 0xA4, 0xC5, 0x85, 0x4E, 0xF0,
+ 0xF5, 0xF8, 0x60, 0xD3, 0x93, 0xC1, 0x81, 0xE4, 0xA4, 0xC7, 0x87, 0xD5, 0x95,
+ 0xC9, 0x89, 0xD3, 0x93, 0xC9, 0x89, 0xE3, 0xA3, 0xD6, 0x77, 0xD9, 0x9B, 0xE4,
+ 0xB4, 0xC5, 0x66, 0x4E, 0xF0, 0xF5, 0xF8, 0x60, 0xD3, 0x74, 0xC1, 0x62, 0xE4,
+ 0xB4, 0xC7, 0x68, 0xD5, 0x76, 0xC9, 0x71, 0xD3, 0x74, 0xC9, 0x71, 0xE3, 0xB3,
+ 0xD3, 0x74, 0xD3, 0x93, 0xE4, 0xB4, 0xA4, 0xD4, 0x94, 0x75, 0x60, 0x6D, 0xE3,
+ 0xB3, 0xC6, 0x67, 0x6D, 0xE3, 0xA3, 0xC6, 0x86, 0xC9, 0x89, 0xC9, 0x71, 0x60,
+ 0xE2, 0xAB, 0xA2, 0xF2, 0x60, 0xC3, 0x83, 0x64, 0xE2, 0xAB, 0xA2, 0xC1, 0x81,
+ 0x62, 0xC5, 0x85, 0x66, 0xC5, 0x85, 0x66, 0x74, 0x93, 0xD3, 0x63, 0x82, 0xC2,
+ 0xD3, 0xC2, 0x93, 0x82, 0x74, 0x63, 0x60, 0xC5, 0x85, 0x66, 0xC5, 0x85, 0x66,
+ 0x74, 0x93, 0xD3, 0x63, 0x82, 0xC2, 0xD3, 0xC2, 0x93, 0x82, 0x74, 0x63, 0x60,
+ 0xF2, 0xF6, 0xF8, 0xF3, 0xF1, 0xF8, 0xF3, 0xF1, 0x60, 0xC6, 0x86, 0x67, 0x00,
+ 0x60, 0xE2, 0xAB, 0xA2, 0xF9, 0xF1, 0x60, 0xA2, 0xE2, 0xE6, 0xA6, 0xD6, 0x96,
+ 0xC4, 0x84, 0xD5, 0x95, 0xE2, 0xAB, 0xE6, 0xB6, 0xD6, 0x77, 0xC4, 0x65, 0xD5,
+ 0x76, 0xF9, 0xF6, 0xF5, 0xF3, 0xF2, 0xF1, 0xF0, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE,
+ 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE,
+ 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE,
+ 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE,
+ 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE,
+ 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE,
+ 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xF6, 0xF5, 0xC9, 0x71, 0xC9, 0x89,
+ 0xE3, 0xE2, 0xC3, 0xB3, 0xAB, 0xA3, 0xA2, 0x83, 0x64, 0xC9, 0x89, 0x71, 0xC8,
+ 0x88, 0x69, 0xF8, 0xD6, 0x77, 0xF8, 0xD6, 0x96, 0xC3, 0x83, 0x64, 0xE2, 0xAB,
+ 0xA2, 0xF5, 0xF4, 0xF3, 0xF2, 0xF1, 0xC1, 0x81, 0x62, 0xE2, 0xD6, 0xAB, 0xA2,
+ 0x96, 0x77, 0xE2, 0xC2, 0xC1, 0xAB, 0xA2, 0x82, 0x81, 0x63, 0xD7, 0xC5, 0x97,
+ 0x85, 0xD9, 0xC2, 0x99, 0x82, 0x63, 0xE8, 0xE2, 0xD7, 0xC8, 0xC3, 0xA8, 0xA2,
+ 0x97, 0x88, 0x83, 0x78, 0x64, 0xC9, 0x89, 0x71, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5,
+ 0xC1, 0x62, 0xD6, 0x77, 0xE2, 0xC2, 0xC1, 0xAB, 0x63, 0x62, 0xE7, 0xE4, 0xD3,
+ 0xC3, 0xC2, 0xB7, 0xB4, 0xA7, 0xA4, 0x93, 0x83, 0x82, 0x74, 0x64, 0x63, 0xE8,
+ 0xE2, 0xD7, 0xC8, 0xB8, 0xAB, 0x78, 0x69, 0x9B, 0x99, 0xD9, 0xE2, 0xD5, 0xC4,
+ 0xAB, 0xA2, 0x95, 0x84, 0x76, 0x65, 0x69, 0x49, 0x74, 0x73, 0x63, 0x54, 0x53,
+ 0x43, 0x69, 0x49, 0x68, 0x48, 0x38, 0xC9, 0x89, 0x71, 0x6F, 0x4F, 0x63, 0x43,
+ 0x73, 0x53, 0x31, 0x32, 0x33, 0x34, 0x35, 0x61, 0x41, 0x73, 0x6F, 0x53, 0x4F,
+ 0x69, 0x49, 0x66, 0xC5, 0xD7, 0x78, 0x73, 0x62, 0x61, 0x53, 0x42, 0x41, 0xD9,
+ 0x9B, 0x70, 0x65, 0x50, 0x45, 0x72, 0x62, 0x52, 0x42, 0x78, 0x75, 0x6C, 0x63,
+ 0x62, 0x58, 0x55, 0x4C, 0x43, 0x42, 0x79, 0x73, 0x70, 0x68, 0x63, 0x59, 0x53,
+ 0x50, 0x48, 0x43, 0x69, 0x49, 0x52, 0x72, 0x73, 0x6E, 0x64, 0x53, 0x4E, 0x44,
+ 0x35, 0x36, 0x28, 0x78, 0x77, 0x75, 0x74, 0x73, 0x72, 0x70, 0x6D, 0x6C, 0x6B,
+ 0x6A, 0x69, 0x68, 0x67, 0x65, 0x63, 0x62, 0x61, 0x58, 0x57, 0x55, 0x54, 0x53,
+ 0x52, 0x50, 0x4D, 0x4C, 0x4B, 0x4A, 0x49, 0x48, 0x47, 0x45, 0x43, 0x42, 0x41,
+ 0x39, 0x38, 0x34, 0xFE, 0xFE, 0x00, 0xFE, 0xFE, 0x00, 0xFE, 0xFE, 0xFE, 0xFE
+};
diff --git a/libxml2/os400/iconv/iconv.c b/libxml2/os400/iconv/iconv.c
new file mode 100644
index 0000000..c85c268
--- /dev/null
+++ b/libxml2/os400/iconv/iconv.c
@@ -0,0 +1,154 @@
+/**
+*** iconv_open(), iconv(), iconv_close() wrappers for the OS/400.
+***
+*** See Copyright for the status of this software.
+***
+*** Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A.
+**/
+
+#include <errno.h>
+#include <stdio.h>
+#include <stdlib.h>
+
+#include "/QIBM/include/iconv.h" /* Force system definition. */
+
+#define USE_SYSTEM_ICONV
+#include "iconv.h" /* Use local definitions. */
+
+
+
+/**
+*** Bring-in the name-->CCSID mapping DFA tables.
+**/
+
+#include "ianatables.c"
+
+
+
+static int
+findEncoding(const unsigned char * * namep)
+
+{
+ t_staterange curstate;
+ t_ccsid ccsid;
+ t_ccsid final;
+ t_transrange l;
+ t_transrange h;
+ const unsigned char * name;
+
+ /**
+ *** Get the CCSID correspong to the name at *`namep'.
+ *** If success, update pointer at `namep' to 1st byte after matched
+ *** name and return the CCSID.
+ *** If failure, set errno and return -1.
+ **/
+
+ if (!namep || !(name = *namep)) {
+ errno = EINVAL;
+ return -1;
+ }
+
+ curstate = 0;
+ final = 0;
+
+ for (;;) {
+ if (curstate < sizeof final_array / sizeof final_array[0])
+ if (final_array[curstate]) {
+ final = final_array[curstate];
+ *namep = name;
+ }
+
+ l = trans_array[curstate] - 1;
+ h = trans_array[curstate + 1];
+
+ do {
+ if (++l >= h) {
+ if (!final) {
+ errno = EINVAL;
+ return -1;
+ }
+
+ return final - 1;
+ }
+ } while (label_array[l] != *name);
+
+ curstate = goto_array[l];
+ name++;
+ }
+
+ /* NOTREACHED. */
+}
+
+
+static void
+makeos400codename(char * buf, unsigned int ccsid)
+
+{
+ ccsid &= 0xFFFF;
+ memset(buf, 0, 32);
+ sprintf(buf, "IBMCCSID%05u0000000", ccsid);
+}
+
+
+Iconv_t
+IconvOpen(const char * tocode, const char * fromcode)
+
+{
+ int toccsid = findEncoding(&tocode);
+ int fromccsid = findEncoding(&fromcode);
+ char fromibmccsid[33];
+ char toibmccsid[33];
+ iconv_t * cd;
+
+ if (toccsid < 0 || fromccsid < 0)
+ return (Iconv_t) -1;
+
+ makeos400codename(fromibmccsid, fromccsid);
+ makeos400codename(toibmccsid, toccsid);
+ memset(toibmccsid + 13, 0, sizeof toibmccsid - 13);
+
+ cd = (iconv_t *) malloc(sizeof *cd);
+
+ if (!cd)
+ return (Iconv_t) -1;
+
+ *cd = iconv_open(toibmccsid, fromibmccsid);
+
+ if (cd->return_value) {
+ free((char *) cd);
+ return (Iconv_t) -1;
+ }
+
+ return (Iconv_t) cd;
+}
+
+
+size_t
+Iconv(Iconv_t cd, char * * inbuf, size_t * inbytesleft,
+ char * * outbuf, size_t * outbytesleft)
+
+{
+ if (!cd || cd == (Iconv_t) -1) {
+ errno = EINVAL;
+ return (size_t) -1;
+ }
+
+ return iconv(*(iconv_t *) cd, inbuf, inbytesleft, outbuf, outbytesleft);
+}
+
+
+int
+IconvClose(Iconv_t cd)
+
+{
+ if (!cd || cd == (Iconv_t) -1) {
+ errno = EINVAL;
+ return -1;
+ }
+
+ if (iconv_close(*(iconv_t *) cd))
+ return -1;
+
+ free((char *) cd);
+ return 0;
+}
diff --git a/libxml2/os400/iconv/iconv.h b/libxml2/os400/iconv/iconv.h
new file mode 100644
index 0000000..87a8bbc
--- /dev/null
+++ b/libxml2/os400/iconv/iconv.h
@@ -0,0 +1,40 @@
+/**
+*** Declarations for the iconv wrappers.
+***
+*** See Copyright for the status of this software.
+***
+*** Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A.
+**/
+
+#ifndef __ICONV_H_
+#define __ICONV_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <stddef.h> /* For size_t. */
+
+
+typedef void * Iconv_t;
+
+
+Iconv_t IconvOpen(const char * tocode, const char * fromcode);
+size_t Iconv(Iconv_t cd, char * * inbuf, size_t * inbytesleft,
+ char * * outbuf, size_t * outbytesleft);
+int IconvClose(Iconv_t cd);
+
+
+#ifndef USE_SYSTEM_ICONV
+#define iconv_t Iconv_t
+#define iconv_open IconvOpen
+#define iconv Iconv
+#define iconv_close IconvClose
+#endif
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/libxml2/os400/initscript.sh b/libxml2/os400/initscript.sh
new file mode 100644
index 0000000..cc52e45
--- /dev/null
+++ b/libxml2/os400/initscript.sh
@@ -0,0 +1,315 @@
+#!/bin/sh
+#
+# Compilation scripts initialization for the OS/400 implementation.
+#
+# See Copyright for the status of this software.
+#
+# Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A.
+#
+
+
+case "${SCRIPTDIR}" in
+/*) ;;
+*) SCRIPTDIR="`pwd`/${SCRIPTDIR}"
+esac
+
+while true
+do case "${SCRIPTDIR}" in
+ */.) SCRIPTDIR="${SCRIPTDIR%/.}";;
+ *) break;;
+ esac
+done
+
+# The script directory is supposed to be in $TOPDIR/os400.
+
+TOPDIR=`dirname "${SCRIPTDIR}"`
+export SCRIPTDIR TOPDIR
+
+
+setenv()
+
+{
+ # Define and export.
+
+ eval ${1}="${2}"
+ export ${1}
+}
+
+
+################################################################################
+#
+# Tunable configuration parameters.
+#
+################################################################################
+
+setenv TARGETLIB 'LIBXML2' # Target OS/400 program library.
+setenv STATBNDDIR 'LIBXML2_A' # Static binding directory.
+setenv DYNBNDDIR 'LIBXML2' # Dynamic binding directory.
+setenv SRVPGM "LIBXML2" # Service program.
+setenv TGTCCSID '500' # Target CCSID of objects.
+setenv DEBUG '*ALL' # Debug level.
+setenv OPTIMIZE '10' # Optimisation level.
+setenv OUTPUT '*NONE' # Compilation output option.
+setenv TGTRLS 'V5R3M0' # Target OS release.
+setenv IFSDIR '/libxml2' # Installation IFS directory.
+
+
+################################################################################
+#
+# Conditional compilation parameters.
+#
+################################################################################
+
+setenv WITH_TRIO 1 # Configure trio support.
+setenv WITH_THREADS 1 # Configure thread support.
+setenv WITH_THREAD_ALLOC 1 # Whether allocation hooks are per-thread.
+setenv WITH_TREE 1 # Compile DOM tree API.
+setenv WITH_OUTPUT 1 # Compile serialization/saving support.
+setenv WITH_PUSH 1 # Compile push parser.
+setenv WITH_READER 1 # Compile parsing interface.
+setenv WITH_PATTERN 1 # Compile pattern node selection interface.
+setenv WITH_WRITER 1 # Compile saving interface.
+setenv WITH_SAX1 1 # Compile SAX version 1 interface.
+setenv WITH_FTP 1 # Compile FTP support.
+setenv WITH_HTTP 1 # Compile HTTP support.
+setenv WITH_VALID 1 # Compile DTD validation support.
+setenv WITH_HTML 1 # Compile HTML support.
+setenv WITH_LEGACY 1 # Compile deprecated API.
+setenv WITH_C14N 1 # Compile canonicalization support.
+setenv WITH_CATALOG 1 # Compile catalog support.
+setenv WITH_DOCB 1 # Compile SGML Docbook support.
+setenv WITH_XPATH 1 # Compile XPath support.
+setenv WITH_XPTR 1 # Compile XPointer support.
+setenv WITH_XINCLUDE 1 # Compile XInclude support.
+setenv WITH_ICONV 1 # Whether iconv support is available.
+setenv WITH_ICU 0 # Whether icu support is available.
+setenv WITH_ISO8859X 1 # Compile ISO-8859-* support if no iconv.
+setenv WITH_DEBUG 1 # Compile debugging module.
+setenv WITH_MEM_DEBUG 1 # Compile memory debugging module.
+setenv WITH_RUN_DEBUG 1 # Compile runtime debugging.
+setenv WITH_REGEXPS 1 # Compile regular expression interfaces.
+setenv WITH_SCHEMAS 1 # Compile schema validation interface.
+setenv WITH_SCHEMATRON 1 # Compile schematron validation interface.
+setenv WITH_MODULES 1 # Compile module interfaces.
+setenv WITH_ZLIB 0 # Whether zlib is available.
+setenv WITH_LZMA 0 # Whether LZMA is available.
+
+# Define ZLIB locations. This is ignored if WITH_ZLIB is 0.
+
+setenv ZLIB_INCLUDE '/zlib/include' # ZLIB include IFS directory.
+setenv ZLIB_LIB 'ZLIB' # ZLIB library.
+setenv ZLIB_BNDDIR 'ZLIB_A' # ZLIB binding directory.
+
+################################################################################
+#
+# OS/400 specific definitions.
+#
+################################################################################
+
+setenv LIBIFSNAME "/QSYS.LIB/${TARGETLIB}.LIB"
+setenv MODULE_EXTENSION '.SRVPGM'
+
+
+################################################################################
+#
+# Extract version information.
+#
+################################################################################
+
+
+# Transitional: get file name of configure script.
+
+AUTOCONFSCRIPT="${TOPDIR}/configure.ac"
+
+if [ ! -f "${AUTOCONFSCRIPT}" ]
+then AUTOCONFSCRIPT="${TOPDIR}/configure.in"
+fi
+
+# Need to get the version definitions.
+
+eval "`grep '^LIBXML_[A-Z]*_VERSION=' \"${AUTOCONFSCRIPT}\"`"
+eval "`grep '^LIBXML_MICRO_VERSION_SUFFIX=' \"${AUTOCONFSCRIPT}\"`"
+LIBXML_VERSION="${LIBXML_MAJOR_VERSION}.${LIBXML_MINOR_VERSION}"
+LIBXML_VERSION="${LIBXML_VERSION}.${LIBXML_MICRO_VERSION}"
+LIBXML_VERSION="${LIBXML_VERSION}${LIBXML_MICRO_VERSION_SUFFIX}"
+LIBXML_VERSION_NUMBER=`expr "${LIBXML_MAJOR_VERSION}" \* 10000 + \
+ "${LIBXML_MINOR_VERSION}" \* 100 + \
+ "${LIBXML_MICRO_VERSION}"`
+export LIBXML_MAJOR_VERSION LIBXML_MINOR_VERSION
+export LIBXML_MICRO_VERSION LIBXML_MICROVERSION_SUFFIX
+export LIBXML_VERSION LIBXML_VERSION_NUMBER
+setenv LIBXML_VERSION_EXTRA ''
+setenv VERSION "${LIBXML_VERSION}"
+
+
+################################################################################
+#
+# Procedures.
+#
+################################################################################
+
+# action_needed dest [src]
+#
+# dest is an object to build
+# if specified, src is an object on which dest depends.
+#
+# exit 0 (succeeds) if some action has to be taken, else 1.
+
+action_needed()
+
+{
+ [ ! -e "${1}" ] && return 0
+ [ "${2}" ] || return 1
+ [ "${1}" -ot "${2}" ] && return 0
+ return 1
+}
+
+
+# make_module [option] module_name source_name
+#
+# Compile source name into ASCII module if needed.
+# As side effect, append the module name to variable MODULES.
+# Set LINK to "YES" if the module has been compiled.
+# Options are:
+# --define <additional definitions>
+# --ebcdic
+# --sysiconv
+
+make_module()
+
+{
+ DEFN=
+ EBCDIC=
+ SYSICONV=
+ while true
+ do case "${1}" in
+ --define)
+ DEFN="${2}"
+ shift
+ ;;
+ --ebcdic)
+ EBCDIC=yes
+ ;;
+ --sysiconv)
+ SYSICONV=yes
+ ;;
+ *) break
+ esac
+ shift
+ done
+ MODULES="${MODULES} ${1}"
+ MODIFSNAME="${LIBIFSNAME}/${1}.MODULE"
+ action_needed "${MODIFSNAME}" "${2}" || return 0;
+
+ # #pragma convert has to be in the source file itself, i.e.
+ # putting it in an include file makes it only active
+ # for that include file.
+ # Thus we build a temporary file with the pragma prepended to
+ # the source file and we compile that temporary file.
+
+ rm -f __tmpsrcf.c
+ if [ -z "${EBCDIC}" ]
+ then echo "#line 1 \"${2}\"" >> __tmpsrcf.c
+ echo "#pragma convert(819)" >> __tmpsrcf.c
+ echo '#include "wrappers.h"' >> __tmpsrcf.c
+ fi
+ echo "#line 1 \"${2}\"" >> __tmpsrcf.c
+ cat "${2}" >> __tmpsrcf.c
+ CMD="CRTCMOD MODULE(${TARGETLIB}/${1}) SRCSTMF('__tmpsrcf.c')"
+# CMD="${CMD} OPTION(*INCDIRFIRST *SHOWINC *SHOWSYS)"
+ CMD="${CMD} OPTION(*INCDIRFIRST)"
+ CMD="${CMD} SYSIFCOPT(*IFS64IO) LANGLVL(*EXTENDED) LOCALETYPE(*LOCALE)"
+ CMD="${CMD} INCDIR("
+ if [ -z "${SYSICONV}" ]
+ then CMD="${CMD} '${TOPDIR}/os400/iconv'"
+ fi
+ if [ -z "${EBCDIC}" ]
+ then CMD="${CMD} '/qibm/proddata/qadrt/include'"
+ fi
+ CMD="${CMD} '${TOPDIR}/os400' '${TOPDIR}/os400/dlfcn'"
+ CMD="${CMD} '${IFSDIR}/include/libxml' '${IFSDIR}/include'"
+ if [ "${ZLIB_INCLUDE}" ]
+ then CMD="${CMD} '${ZLIB_INCLUDE}'"
+ fi
+ CMD="${CMD} '${TOPDIR}' ${INCLUDES})"
+ CMD="${CMD} TGTCCSID(${TGTCCSID}) TGTRLS(${TGTRLS})"
+ CMD="${CMD} OUTPUT(${OUTPUT})"
+ CMD="${CMD} OPTIMIZE(${OPTIMIZE})"
+ CMD="${CMD} DBGVIEW(${DEBUG})"
+ CMD="${CMD} DEFINE('_REENTRANT' 'TRIO_HAVE_CONFIG_H' 'NDEBUG' ${DEFN})"
+
+ system "${CMD}"
+ rm -f __tmpsrcf.c
+ LINK=YES
+}
+
+
+# Determine DB2 object name from IFS name.
+
+db2_name()
+
+{
+ if [ "${2}" = 'nomangle' ]
+ then basename "${1}" |
+ tr 'a-z-' 'A-Z_' |
+ sed -e 's/\..*//' \
+ -e 's/^\(..........\).*$/\1/'
+ else basename "${1}" |
+ tr 'a-z-' 'A-Z_' |
+ sed -e 's/\..*//' \
+ -e 's/^TEST/T/' \
+ -e 's/^XML/X/' \
+ -e 's/^\(.\).*\(.........\)$/\1\2/'
+ fi
+}
+
+
+# Copy IFS file replacing version & configuration info.
+
+versioned_copy()
+
+{
+ sed -e "s/@LIBXML_VERSION@/${LIBXML_VERSION}/g" \
+ \
+ -e "s#@LIBXML_MAJOR_VERSION@#${LIBXML_MAJOR_VERSION}#g" \
+ -e "s#@LIBXML_MINOR_VERSION@#${LIBXML_MINOR_VERSION}#g" \
+ -e "s#@LIBXML_MICRO_VERSION@#${LIBXML_MICRO_VERSION}#g" \
+ -e "s#@LIBXML_MICRO_VERSION_SUFFIX@#${LIBXML_MICRO_VERSION_SUFFIX}#g" \
+ -e "s#@LIBXML_VERSION@#${LIBXML_VERSION}#g" \
+ -e "s#@LIBXML_VERSION_NUMBER@#${LIBXML_VERSION_NUMBER}#g" \
+ -e "s#@LIBXML_VERSION_EXTRA@#${LIBXML_VERSION_EXTRA}#g" \
+ -e "s#@VERSION@#${VERSION}#g" \
+ -e "s#@WITH_TRIO@#${WITH_TRIO}#g" \
+ -e "s#@WITH_THREADS@#${WITH_THREADS}#g" \
+ -e "s#@WITH_THREAD_ALLOC@#${WITH_THREAD_ALLOC}#g" \
+ -e "s#@WITH_TREE@#${WITH_TREE}#g" \
+ -e "s#@WITH_OUTPUT@#${WITH_OUTPUT}#g" \
+ -e "s#@WITH_PUSH@#${WITH_PUSH}#g" \
+ -e "s#@WITH_READER@#${WITH_READER}#g" \
+ -e "s#@WITH_PATTERN@#${WITH_PATTERN}#g" \
+ -e "s#@WITH_WRITER@#${WITH_WRITER}#g" \
+ -e "s#@WITH_SAX1@#${WITH_SAX1}#g" \
+ -e "s#@WITH_FTP@#${WITH_FTP}#g" \
+ -e "s#@WITH_HTTP@#${WITH_HTTP}#g" \
+ -e "s#@WITH_VALID@#${WITH_VALID}#g" \
+ -e "s#@WITH_HTML@#${WITH_HTML}#g" \
+ -e "s#@WITH_LEGACY@#${WITH_LEGACY}#g" \
+ -e "s#@WITH_C14N@#${WITH_C14N}#g" \
+ -e "s#@WITH_CATALOG@#${WITH_CATALOG}#g" \
+ -e "s#@WITH_DOCB@#${WITH_DOCB}#g" \
+ -e "s#@WITH_XPATH@#${WITH_XPATH}#g" \
+ -e "s#@WITH_XPTR@#${WITH_XPTR}#g" \
+ -e "s#@WITH_XINCLUDE@#${WITH_XINCLUDE}#g" \
+ -e "s#@WITH_ICONV@#${WITH_ICONV}#g" \
+ -e "s#@WITH_ICU@#${WITH_ICU}#g" \
+ -e "s#@WITH_ISO8859X@#${WITH_ISO8859X}#g" \
+ -e "s#@WITH_DEBUG@#${WITH_DEBUG}#g" \
+ -e "s#@WITH_MEM_DEBUG@#${WITH_MEM_DEBUG}#g" \
+ -e "s#@WITH_RUN_DEBUG@#${WITH_RUN_DEBUG}#g" \
+ -e "s#@WITH_REGEXPS@#${WITH_REGEXPS}#g" \
+ -e "s#@WITH_SCHEMAS@#${WITH_SCHEMAS}#g" \
+ -e "s#@WITH_SCHEMATRON@#${WITH_SCHEMATRON}#g" \
+ -e "s#@WITH_MODULES@#${WITH_MODULES}#g" \
+ -e "s#@WITH_ZLIB@#${WITH_ZLIB}#g" \
+ -e "s#@WITH_LZMA@#${WITH_LZMA}#g"
+}
diff --git a/libxml2/os400/libxmlmain.c b/libxml2/os400/libxmlmain.c
new file mode 100644
index 0000000..91c848a
--- /dev/null
+++ b/libxml2/os400/libxmlmain.c
@@ -0,0 +1,102 @@
+/**
+*** QADRT/QADRTMAIN2 substitution program.
+*** This is needed because the IBM-provided QADRTMAIN2 does not
+*** properly translate arguments by default or if no locale is provided.
+***
+*** See Copyright for the status of this software.
+***
+*** Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A.
+**/
+
+#include <stdlib.h>
+#include <string.h>
+#include <iconv.h>
+#include <errno.h>
+#include <locale.h>
+
+/* Do not use qadrt.h since it defines unneeded static procedures. */
+extern void QadrtInit(void);
+extern int QadrtFreeConversionTable(void);
+extern int QadrtFreeEnviron(void);
+extern char * setlocale_a(int, const char *);
+
+
+/* The ASCII main program. */
+extern int main_a(int argc, char * * argv);
+
+/* Global values of original EBCDIC arguments. */
+int ebcdic_argc;
+char * * ebcdic_argv;
+
+
+int
+main(int argc, char * * argv)
+
+{
+ int i;
+ int j;
+ iconv_t cd;
+ size_t bytecount = 0;
+ char * inbuf;
+ char * outbuf;
+ size_t inbytesleft;
+ size_t outbytesleft;
+ char dummybuf[128];
+ char tocode[32];
+ char fromcode[32];
+
+ ebcdic_argc = argc;
+ ebcdic_argv = argv;
+
+ /* Build the encoding converter. */
+ strncpy(tocode, "IBMCCSID01208", sizeof tocode);
+ strncpy(fromcode, "IBMCCSID000000000010", sizeof fromcode);
+ cd = iconv_open(tocode, fromcode);
+
+ /* Measure the arguments. */
+ for (i = 0; i < argc; i++) {
+ inbuf = argv[i];
+ do {
+ inbytesleft = 0;
+ outbuf = dummybuf;
+ outbytesleft = sizeof dummybuf;
+ j = iconv(cd,
+ &inbuf, &inbytesleft, &outbuf, &outbytesleft);
+ bytecount += outbuf - dummybuf;
+ } while (j == -1 && errno == E2BIG);
+ /* Reset the shift state. */
+ iconv(cd, NULL, &inbytesleft, &outbuf, &outbytesleft);
+ }
+
+ /* Allocate memory for the ASCII arguments and vector. */
+ argv = (char * *) malloc((argc + 1) * sizeof *argv + bytecount);
+
+ /* Build the vector and convert argument encoding. */
+ outbuf = (char *) (argv + argc + 1);
+ outbytesleft = bytecount;
+
+ for (i = 0; i < argc; i++) {
+ argv[i] = outbuf;
+ inbuf = ebcdic_argv[i];
+ inbytesleft = 0;
+ iconv(cd, &inbuf, &inbytesleft, &outbuf, &outbytesleft);
+ iconv(cd, NULL, &inbytesleft, &outbuf, &outbytesleft);
+ }
+
+ iconv_close(cd);
+ argv[argc] = NULL;
+
+ /* Try setting the locale regardless of QADRT_ENV_LOCALE. */
+ setlocale_a(LC_ALL, "");
+
+ /* Call the program. */
+ i = main_a(argc, argv);
+
+ /* Clean-up allocated items. */
+ free((char *) argv);
+ QadrtFreeConversionTable();
+ QadrtFreeEnviron();
+
+ /* Terminate. */
+ return i;
+}
diff --git a/libxml2/os400/libxmlrpg/DOCBparser.rpgle b/libxml2/os400/libxmlrpg/DOCBparser.rpgle
new file mode 100644
index 0000000..08a6b8c
--- /dev/null
+++ b/libxml2/os400/libxmlrpg/DOCBparser.rpgle
@@ -0,0 +1,120 @@
+ * Summary: old DocBook SGML parser
+ * Description: interface for a DocBook SGML non-verifying parser
+ * This code is DEPRECATED, and should not be used anymore.
+ *
+ * Copy: See Copyright for the status of this software.
+ *
+ * Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A.
+
+ /if not defined(DOCB_PARSER_H__)
+ /define DOCB_PARSER_H__
+
+ /include "libxmlrpg/xmlversion"
+
+ /if defined(LIBXML_DOCB_ENABLED)
+
+ /include "libxmlrpg/xmlTypesC"
+ /include "libxmlrpg/parser"
+ /include "libxmlrpg/parserInternals"
+
+ * Most of the back-end structures from XML and SGML are shared.
+
+ d docbParserCtxtPtr...
+ d s based(######typedef######)
+ d like(xmlParserCtxtPtr)
+
+ d docbParserCtxt ds based(docbParserCtxtPtr)
+ d likeds(xmlParserCtxt)
+
+ d docbSAXHandlerPtr...
+ d s based(######typedef######)
+ d like(xmlSAXHandlerPtr)
+
+ d docbSAXHandler ds based(docbSAXHandlerPtr)
+ d likeds(xmlSAXHandler)
+
+ d docbParserInputPtr...
+ d s based(######typedef######)
+ d like(xmlParserInputPtr)
+
+ d docbParserInput...
+ d ds based(docbParserInputPtr)
+ d likeds(xmlParserInput)
+
+ d docbDocPtr s based(######typedef######)
+ d like(xmlDocPtr)
+
+ * There is only few public functions.
+
+ d docbEncodeEntities...
+ d pr extproc('docbEncodeEntities')
+ d like(xmlCint)
+ d out * value options(*string) unsigned char *
+ d outlen * value int *
+ d in * value options(*string) const unsigned char
+ d *
+ d inlen * value int *
+ d quoteChar value like(xmlCint)
+
+ d docbSAXParseDoc...
+ d pr extproc('docbSAXParseDoc')
+ d like(docbDocPtr)
+ d cur * value options(*string) xmlChar *
+ d encoding * value options(*string) const char *
+ d sax value like(docbSAXHandlerPtr)
+ d userData * value void *
+
+ d docbParseDoc pr extproc('docbParseDoc')
+ d like(docbDocPtr)
+ d cur * value options(*string) xmlChar *
+ d encoding * value options(*string) const char *
+
+ d docbSAXParseFile...
+ d pr extproc('docbSAXParseFile')
+ d like(docbDocPtr)
+ d filename * value options(*string) const char *
+ d encoding * value options(*string) const char *
+ d sax value like(docbSAXHandlerPtr)
+ d userData * value void *
+
+ d docbParseFile pr extproc('docbParseFile')
+ d like(docbDocPtr)
+ d filename * value options(*string) const char *
+ d encoding * value options(*string) const char *
+
+ * Interfaces for the Push mode.
+
+ d docbFreeParserCtxt...
+ d pr extproc('docbFreeParserCtxt')
+ d ctxt value like(docbParserCtxtPtr)
+
+ d docbCreatePushParserCtxt...
+ d pr extproc('docbCreatePushParserCtxt')
+ d like(docbParserCtxtPtr)
+ d sax value like(docbSAXHandlerPtr)
+ d user_data * value void *
+ d chunk * value options(*string) const char *
+ d size value like(xmlCint)
+ d filename * value options(*string) const char *
+ d enc value like(xmlCharEncoding)
+
+ d docbParseChunk pr extproc('docbParseChunk')
+ d like(xmlCint)
+ d ctxt value like(docbParserCtxtPtr)
+ d chunk * value options(*string) const char *
+ d size value like(xmlCint)
+ d terminate value like(xmlCint)
+
+ d docbCreateFileParserCtxt...
+ d pr extproc('docbCreateFileParserCtxt')
+ d like(docbParserCtxtPtr)
+ d filename * value options(*string) const char *
+ d encoding * value options(*string) const char *
+
+ d docbParseDocument...
+ d pr extproc('docbParseDocument')
+ d like(xmlCint)
+ d ctxt value like(docbParserCtxtPtr)
+
+ /endif LIBXML_DOCB_ENABLED
+ /endif DOCB_PARSER_H__
diff --git a/libxml2/os400/libxmlrpg/HTMLparser.rpgle b/libxml2/os400/libxmlrpg/HTMLparser.rpgle
new file mode 100644
index 0000000..c27d8e5
--- /dev/null
+++ b/libxml2/os400/libxmlrpg/HTMLparser.rpgle
@@ -0,0 +1,419 @@
+ * Summary: interface for an HTML 4.0 non-verifying parser
+ * Description: this module implements an HTML 4.0 non-verifying parser
+ * with API compatible with the XML parser ones. It should
+ * be able to parse "real world" HTML, even if severely
+ * broken from a specification point of view.
+ *
+ * Copy: See Copyright for the status of this software.
+ *
+ * Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A.
+
+ /if not defined(HTML_PARSER_H__)
+ /define HTML_PARSER_H__
+
+ /include "libxmlrpg/xmlversion"
+
+ /if defined(LIBXML_HTML_ENABLED)
+
+ /include "libxmlrpg/xmlTypesC"
+ /include "libxmlrpg/parser"
+
+ * Most of the back-end structures from XML and HTML are shared.
+
+ d htmlParserCtxtPtr...
+ d s based(######typedef######)
+ d like(xmlParserCtxtPtr)
+
+ d htmlParserCtxt ds based(htmlParserCtxtPtr)
+ d likeds(xmlParserCtxt)
+
+ d htmlParserNodeInfoPtr...
+ d s based(######typedef######)
+ d like(xmlParserNodeInfoPtr)
+
+ d htmlParserNodeInfo...
+ d ds based(htmlParserNodeInfoPtr)
+ d likeds(xmlParserNodeInfo)
+
+ d htmlSAXHandlerPtr...
+ d s based(######typedef######)
+ d like(xmlSAXHandlerPtr)
+
+ d htmlSAXHandler ds based(htmlSAXHandlerPtr)
+ d likeds(xmlSAXHandler)
+
+ d htmlParserInputPtr...
+ d s based(######typedef######)
+ d like(xmlParserInputPtr)
+
+ d htmlParserInput...
+ d ds based(htmlParserInputPtr)
+ d likeds(xmlParserInput)
+
+ d htmlDocPtr s based(######typedef######)
+ d like(xmlDocPtr)
+
+ d htmlNodePtr s based(######typedef######)
+ d like(xmlNodePtr)
+
+ * Internal description of an HTML element, representing HTML 4.01
+ * and XHTML 1.0 (which share the same structure).
+
+ d htmlElemDescPtr...
+ d s * based(######typedef######)
+
+ d htmlElemDesc ds based(htmlElemDescPtr)
+ d align qualified
+ d name * const char *
+ d startTag like(xmlCchar) Start tag implied ?
+ d endTag like(xmlCchar) End tag implied ?
+ d saveEndTag like(xmlCchar) Save end tag ?
+ d empty like(xmlCchar) Empty element ?
+ d depr like(xmlCchar) Deprecated element ?
+ d dtd like(xmlCchar) Loose DTD/Frameset
+ d isinline like(xmlCchar) Block 0/inline elem?
+ d desc * const char *
+ *
+ * New fields encapsulating HTML structure
+ *
+ * Bugs:
+ * This is a very limited representation. It fails to tell us when
+ * an element *requires* subelements (we only have whether they're
+ * allowed or not), and it doesn't tell us where CDATA and PCDATA
+ * are allowed. Some element relationships are not fully represented:
+ * these are flagged with the word MODIFIER
+ *
+ d subelts * const char * *
+ d defaultsubelt * const char *
+ d attrs_opt * const char * *
+ d attrs_depr * const char * *
+ d attrs_req * const char * *
+
+ * Internal description of an HTML entity.
+
+ d htmlEntityDescPtr...
+ d s * based(######typedef######)
+
+ d htmlEntityDesc...
+ d ds based(htmlEntityDescPtr)
+ d align qualified
+ d value like(xmlCuint)
+ d name * const char *
+ d desc * const char *
+
+ * There is only few public functions.
+
+ d htmlTagLookup pr extproc('htmlTagLookup')
+ d like(htmlElemDescPtr) const
+ d tag * value options(*string) const xmlChar *
+
+ d htmlEntityLookup...
+ d pr extproc('htmlEntityLookup')
+ d like(htmlEntityDescPtr) const
+ d name * value options(*string) const xmlChar *
+
+ d htmlEntityValueLookup...
+ d pr extproc('htmlEntityValueLookup')
+ d like(htmlEntityDescPtr) const
+ d value value like(xmlCuint)
+
+ d htmlIsAutoClosed...
+ d pr extproc('htmlIsAutoClosed')
+ d like(xmlCint)
+ d doc value like(htmlDocPtr)
+ d elem value like(htmlNodePtr)
+
+ d htmlAutoCloseTag...
+ d pr extproc('htmlAutoCloseTag')
+ d like(xmlCint)
+ d doc value like(htmlDocPtr)
+ d name * value options(*string) const xmlChar *
+ d elem value like(htmlNodePtr)
+
+ d htmlParseEntityRef...
+ d pr extproc('htmlParseEntityRef')
+ d like(htmlEntityDescPtr) const
+ d ctxt value like(htmlParserCtxtPtr)
+ d str * const xmlChar *(*)
+
+ d htmlParseCharRef...
+ d pr extproc('htmlParseCharRef')
+ d like(xmlCint)
+ d ctxt value like(htmlParserCtxtPtr)
+
+ d htmlParseElement...
+ d pr extproc('htmlParseElement')
+ d ctxt value like(htmlParserCtxtPtr)
+
+ d htmlNewParserCtxt...
+ d pr extproc('htmlNewParserCtxt')
+ d like(htmlParserCtxtPtr)
+
+ d htmlCreateMemoryParserCtxt...
+ d pr extproc('htmlCreateMemoryParserCtxt')
+ d like(htmlParserCtxtPtr)
+ d buffer * value options(*string) const char *
+ d size value like(xmlCint)
+
+ d htmlParseDocument...
+ d pr extproc('htmlParseDocument')
+ d like(xmlCint)
+ d ctxt value like(htmlParserCtxtPtr)
+
+ d htmlSAXParseDoc...
+ d pr extproc('htmlSAXParseDoc')
+ d like(htmlDocPtr)
+ d cur * value options(*string) xmlChar *
+ d encoding * value options(*string) const char *
+ d sax value like(htmlSAXHandlerPtr)
+ d userData * value void *
+
+ d htmlParseDoc pr extproc('htmlParseDoc')
+ d like(htmlDocPtr)
+ d cur * value options(*string) xmlChar *
+ d encoding * value options(*string) const char *
+
+ d htmlSAXParseFile...
+ d pr extproc('htmlSAXParseFile')
+ d like(htmlDocPtr)
+ d filename * value options(*string) const char *
+ d encoding * value options(*string) const char *
+ d sax value like(htmlSAXHandlerPtr)
+ d userData * value void *
+
+ d htmlParseFile pr extproc('htmlParseFile')
+ d like(htmlDocPtr)
+ d filename * value options(*string) const char *
+ d encoding * value options(*string) const char *
+
+ d UTF8ToHtml pr extproc('UTF8ToHtml')
+ d like(xmlCint)
+ d out 65535 options(*varsize) unsigned char []
+ d outlen like(xmlCint)
+ d in * value options(*string) const unsigned char*
+ d inlen like(xmlCint)
+
+ d htmlEncodeEntities...
+ d pr extproc('htmlEncodeEntities')
+ d like(xmlCint)
+ d out 65535 options(*varsize) unsigned char []
+ d outlen like(xmlCint)
+ d in * value options(*string) const unsigned char*
+ d inlen like(xmlCint)
+ d quoteChar value like(xmlCint)
+
+ d htmlIsScriptAttribute...
+ d pr extproc('htmlIsScriptAttribute')
+ d like(xmlCint)
+ d name * value options(*string) const xmlChar *
+
+ d htmlHandleOmittedElem...
+ d pr extproc('htmlHandleOmittedElem')
+ d like(xmlCint)
+ d val value like(xmlCint)
+
+ /if defined(LIBXML_PUSH_ENABLED)
+
+ * Interfaces for the Push mode.
+
+ d htmlCreatePushParserCtxt...
+ d pr extproc('htmlCreatePushParserCtxt')
+ d like(htmlParserCtxtPtr)
+ d sax value like(htmlSAXHandlerPtr)
+ d user_data * value void *
+ d chunk * value options(*string) const char *
+ d size value like(xmlCint)
+ d filename * value options(*string) const char *
+ d enc value like(xmlCharEncoding)
+
+ d htmlParseChunk pr extproc('htmlParseChunk')
+ d like(xmlCint)
+ d ctxt value like(htmlParserCtxtPtr)
+ d chunk * value options(*string) const char *
+ d size value like(xmlCint)
+ d terminate value like(xmlCint)
+ /endif LIBXML_PUSH_ENABLED
+
+ d htmlFreeParserCtxt...
+ d pr extproc('htmlFreeParserCtxt')
+ d ctxt value like(htmlParserCtxtPtr)
+
+ * New set of simpler/more flexible APIs
+
+ * xmlParserOption:
+ *
+ * This is the set of XML parser options that can be passed down
+ * to the xmlReadDoc() and similar calls.
+
+ d htmlParserOption...
+ d s based(######typedef######)
+ d like(xmlCenum)
+ d HTML_PARSE_RECOVER... Relaxed parsing
+ d c X'00000001'
+ d HTML_PARSE_NODEFDTD... No default doctype
+ d c X'00000004'
+ d HTML_PARSE_NOERROR... No error reports
+ d c X'00000020'
+ d HTML_PARSE_NOWARNING... No warning reports
+ d c X'00000040'
+ d HTML_PARSE_PEDANTIC... Pedantic err reports
+ d c X'00000080'
+ d HTML_PARSE_NOBLANKS... Remove blank nodes
+ d c X'00000100'
+ d HTML_PARSE_NONET... Forbid net access
+ d c X'00000800'
+ d HTML_PARSE_NOIMPLIED... No implied html/body
+ d c X'00002000'
+ d HTML_PARSE_COMPACT... compact small txtnod
+ d c X'00010000'
+ d HTML_PARSE_IGNORE_ENC... Ignore encoding hint
+ d c X'00200000'
+
+ d htmlCtxtReset pr extproc('htmlCtxtReset')
+ d ctxt value like(htmlParserCtxtPtr)
+
+ d htmlCtxtUseOptions...
+ d pr extproc('htmlCtxtUseOptions')
+ d like(xmlCint)
+ d ctxt value like(htmlParserCtxtPtr)
+ d options value like(xmlCint)
+
+ d htmlReadDoc pr extproc('htmlReadDoc')
+ d like(htmlDocPtr)
+ d cur * value options(*string) const xmlChar *
+ d URL * value options(*string) const char *
+ d encoding * value options(*string) const char *
+ d options value like(xmlCint)
+
+ d htmlReadFile pr extproc('htmlReadFile')
+ d like(htmlDocPtr)
+ d URL * value options(*string) const char *
+ d encoding * value options(*string) const char *
+ d options value like(xmlCint)
+
+ d htmlReadMemory pr extproc('htmlReadMemory')
+ d like(htmlDocPtr)
+ d buffer * value options(*string) const char *
+ d size value like(xmlCint)
+ d URL * value options(*string) const char *
+ d encoding * value options(*string) const char *
+ d options value like(xmlCint)
+
+ d htmlReadFd pr extproc('htmlReadFd')
+ d like(htmlDocPtr)
+ d fd value like(xmlCint)
+ d URL * value options(*string) const char *
+ d encoding * value options(*string) const char *
+ d options value like(xmlCint)
+
+ d htmlReadIO pr extproc('htmlReadIO')
+ d like(htmlDocPtr)
+ d ioread value like(xmlInputReadCallback)
+ d ioclose value like(xmlInputCloseCallback)
+ d ioctx * value void *
+ d URL * value options(*string) const char *
+ d encoding * value options(*string) const char *
+ d options value like(xmlCint)
+
+ d htmlCtxtReadDoc...
+ d pr extproc('htmlCtxtReadDoc')
+ d like(htmlDocPtr)
+ d ctxt value like(xmlParserCtxtPtr)
+ d cur * value options(*string) const xmlChar *
+ d URL * value options(*string) const char *
+ d encoding * value options(*string) const char *
+ d options value like(xmlCint)
+
+ d htmlCtxtReadFile...
+ d pr extproc('htmlCtxtReadFile')
+ d like(htmlDocPtr)
+ d ctxt value like(xmlParserCtxtPtr)
+ d filename * value options(*string) const char *
+ d encoding * value options(*string) const char *
+ d options value like(xmlCint)
+
+ d htmlCtxtReadMemory...
+ d pr extproc('htmlCtxtReadMemory')
+ d like(htmlDocPtr)
+ d ctxt value like(xmlParserCtxtPtr)
+ d buffer * value options(*string) const char *
+ d size value like(xmlCint)
+ d URL * value options(*string) const char *
+ d encoding * value options(*string) const char *
+ d options value like(xmlCint)
+
+ d htmlCtxtReadFd pr extproc('htmlCtxtReadFd')
+ d like(htmlDocPtr)
+ d ctxt value like(xmlParserCtxtPtr)
+ d fd value like(xmlCint)
+ d URL * value options(*string) const char *
+ d encoding * value options(*string) const char *
+ d options value like(xmlCint)
+
+ d htmlCtxtReadIO pr extproc('htmlCtxtReadIO')
+ d like(htmlDocPtr)
+ d ctxt value like(xmlParserCtxtPtr)
+ d ioread value like(xmlInputReadCallback)
+ d ioclose value like(xmlInputCloseCallback)
+ d ioctx * value void *
+ d URL * value options(*string) const char *
+ d encoding * value options(*string) const char *
+ d options value like(xmlCint)
+
+ * Further knowledge of HTML structure
+
+ d htmlStatus s based(######typedef######)
+ d like(xmlCenum)
+ d HTML_NA c X'0000' No check at all
+ d HTML_INVALID c X'0001'
+ d HTML_DEPRECATED...
+ d c X'0002'
+ d HTML_VALID c X'0004'
+ d HTML_REQUIRED c X'000C' HTML_VALID ored-in
+
+ * Using htmlElemDesc rather than name here, to emphasise the fact
+ * that otherwise there's a lookup overhead
+
+ d htmlAttrAllowed...
+ d pr extproc('htmlAttrAllowed')
+ d like(htmlStatus)
+ d #param1 value like(htmlElemDescPtr) const
+ d #param2 * value options(*string) const xmlChar *
+ d #param3 value like(xmlCint)
+
+ d htmlElementAllowedHere...
+ d pr extproc('htmlElementAllowedHere')
+ d like(xmlCint)
+ d #param1 value like(htmlElemDescPtr) const
+ d #param2 * value options(*string) const xmlChar *
+
+ d htmlElementStatusHere...
+ d pr extproc('htmlElementStatusHere')
+ d like(htmlStatus)
+ d #param1 value like(htmlElemDescPtr) const
+ d #param2 value like(htmlElemDescPtr) const
+
+ d htmlNodeStatus pr extproc('htmlNodeStatus')
+ d like(htmlStatus)
+ d #param1 value like(htmlNodePtr)
+ d #param2 value like(xmlCint)
+
+ * C macros implemented as procedures for ILE/RPG support.
+
+ d htmlDefaultSubelement...
+ d pr * extproc('__htmlDefaultSubelement') const char *
+ d elt * value const htmlElemDesc *
+
+ d htmlElementAllowedHereDesc...
+ d pr extproc(
+ d '__htmlElementAllowedHereDesc')
+ d like(xmlCint)
+ d parent * value const htmlElemDesc *
+ d elt * value const htmlElemDesc *
+
+ d htmlRequiredAttrs...
+ d pr * extproc('__htmlRequiredAttrs') const char * *
+ d elt * value const htmlElemDesc *
+
+ /endif LIBXML_HTML_ENABLED
+ /endif HTML_PARSER_H__
diff --git a/libxml2/os400/libxmlrpg/HTMLtree.rpgle b/libxml2/os400/libxmlrpg/HTMLtree.rpgle
new file mode 100644
index 0000000..99c38a0
--- /dev/null
+++ b/libxml2/os400/libxmlrpg/HTMLtree.rpgle
@@ -0,0 +1,176 @@
+ * Summary: specific APIs to process HTML tree, especially serialization
+ * Description: this module implements a few function needed to process
+ * tree in an HTML specific way.
+ *
+ * Copy: See Copyright for the status of this software.
+ *
+ * Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A.
+
+ /if not defined(HTML_TREE_H__)
+ /define HTML_TREE_H__
+
+ /include "libxmlrpg/xmlversion"
+
+ /if defined(LIBXML_HTML_ENABLED)
+
+ /include "libxmlrpg/xmlTypesC"
+ /include "libxmlrpg/tree"
+ /include "libxmlrpg/HTMLparser"
+
+ * HTML_TEXT_NODE:
+ *
+ * Macro. A text node in a HTML document is really implemented
+ * the same way as a text node in an XML document.
+
+ d HTML_TEXT_NODE c 3
+
+ * HTML_ENTITY_REF_NODE:
+ *
+ * Macro. An entity reference in a HTML document is really implemented
+ * the same way as an entity reference in an XML document.
+
+ d HTML_ENTITY_REF_NODE...
+ d c 5
+
+ * HTML_COMMENT_NODE:
+ *
+ * Macro. A comment in a HTML document is really implemented
+ * the same way as a comment in an XML document.
+
+ d HTML_COMMENT_NODE...
+ d c 8
+
+ * HTML_PRESERVE_NODE:
+ *
+ * Macro. A preserved node in a HTML document is really implemented
+ * the same way as a CDATA section in an XML document.
+
+ d HTML_PRESERVE_NODE...
+ d c 4
+
+ * HTML_PI_NODE:
+ *
+ * Macro. A processing instruction in a HTML document is really implemented
+ * the same way as a processing instruction in an XML document.
+
+ d HTML_PI_NODE c 7
+
+ d htmlNewDoc pr extproc('htmlNewDoc')
+ d like(htmlDocPtr)
+ d URI * value options(*string) const xmlChar *
+ d ExternalID * value options(*string) const xmlChar *
+
+ d htmlNewDocNoDtD...
+ d pr extproc('htmlNewDocNoDtD')
+ d like(htmlDocPtr)
+ d URI * value options(*string) const xmlChar *
+ d ExternalID * value options(*string) const xmlChar *
+
+ d htmlGetMetaEncoding...
+ d pr * extproc('htmlGetMetaEncoding') const xmlChar *
+ d doc value like(htmlDocPtr)
+
+ d htmlSetMetaEncoding...
+ d pr extproc('htmlSetMetaEncoding')
+ d like(xmlCint)
+ d doc value like(htmlDocPtr)
+ d encoding * value options(*string) const xmlChar *
+
+ /if defined(LIBXML_OUTPUT_ENABLED)
+ d htmlDocDumpMemory...
+ d pr extproc('htmlDocDumpMemory')
+ d cur value like(xmlDocPtr)
+ d mem * value xmlChar * *
+ d size like(xmlCint)
+
+ d htmlDocDumpMemoryFormat...
+ d pr extproc('htmlDocDumpMemoryFormat')
+ d cur value like(xmlDocPtr)
+ d mem * value xmlChar * *
+ d size like(xmlCint)
+ d format value like(xmlCint)
+
+ d htmlDocDump pr extproc('htmlDocDump')
+ d like(xmlCint)
+ d f * value FILE *
+ d cur value like(xmlDocPtr)
+
+ d htmlSaveFile pr extproc('htmlSaveFile')
+ d like(xmlCint)
+ d filename * value options(*string) const char *
+ d cur value like(xmlDocPtr)
+
+ d htmlNodeDump pr extproc('htmlNodeDump')
+ d like(xmlCint)
+ d buf value like(xmlBufferPtr)
+ d doc value like(xmlDocPtr)
+ d cur value like(xmlNodePtr)
+
+ d htmlNodeDumpFile...
+ d pr extproc('htmlNodeDumpFile')
+ d out * value FILE *
+ d doc value like(xmlDocPtr)
+ d cur value like(xmlNodePtr)
+
+ d htmlNodeDumpFileFormat...
+ d pr extproc('htmlNodeDumpFileFormat')
+ d like(xmlCint)
+ d out * value FILE *
+ d doc value like(xmlDocPtr)
+ d cur value like(xmlNodePtr)
+ d encoding * value options(*string) const char *
+ d format value like(xmlCint)
+
+ d htmlSaveFileEnc...
+ d pr extproc('htmlSaveFileEnc')
+ d like(xmlCint)
+ d filename * value options(*string) const char *
+ d cur value like(xmlDocPtr)
+ d encoding * value options(*string) const char *
+
+ d htmlSaveFileFormat...
+ d pr extproc('htmlSaveFileFormat')
+ d like(xmlCint)
+ d filename * value options(*string) const char *
+ d cur value like(xmlDocPtr)
+ d encoding * value options(*string) const char *
+ d format value like(xmlCint)
+
+ d htmlNodeDumpFormatOutput...
+ d pr extproc('htmlNodeDumpFormatOutput')
+ d buf value like(xmlOutputBufferPtr)
+ d doc value like(xmlDocPtr)
+ d cur value like(xmlNodePtr)
+ d encoding * value options(*string) const char *
+ d format value like(xmlCint)
+
+ d htmlDocContentDumpOutput...
+ d pr extproc('htmlDocContentDumpOutput')
+ d buf value like(xmlOutputBufferPtr)
+ d cur value like(xmlDocPtr)
+ d encoding * value options(*string) const char *
+
+ d htmlDocContentDumpFormatOutput...
+ d pr extproc(
+ d 'htmlDocContentDumpFormatOutput')
+ d buf value like(xmlOutputBufferPtr)
+ d cur value like(xmlDocPtr)
+ d encoding * value options(*string) const char *
+ d format value like(xmlCint)
+
+ d htmlNodeDumpOutput...
+ d pr extproc('htmlNodeDumpOutput')
+ d buf value like(xmlOutputBufferPtr)
+ d doc value like(xmlDocPtr)
+ d cur value like(xmlNodePtr)
+ d encoding * value options(*string) const char *
+
+ /endif LIBXML_OUTPUT_ENABLD
+
+ d htmlIsBooleanAttr...
+ d pr extproc('htmlIsBooleanAttr')
+ d like(xmlCint)
+ d name * value options(*string) const xmlChar *
+
+ /endif LIBXML_HTML_ENABLED
+ /endif HTML_TREE_H__
diff --git a/libxml2/os400/libxmlrpg/SAX.rpgle b/libxml2/os400/libxmlrpg/SAX.rpgle
new file mode 100644
index 0000000..a22d49a
--- /dev/null
+++ b/libxml2/os400/libxmlrpg/SAX.rpgle
@@ -0,0 +1,213 @@
+ * Summary: Old SAX version 1 handler, deprecated
+ * Description: DEPRECATED set of SAX version 1 interfaces used to
+ * build the DOM tree.
+ *
+ * Copy: See Copyright for the status of this software.
+ *
+ * Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A.
+
+ /if not defined(XML_SAX_H__)
+ /define XML_SAX_H__
+
+ /include "libxmlrpg/xmlversion"
+ /include "libxmlrpg/parser"
+ /include "libxmlrpg/xlink"
+
+ /if defined(LIBXML_LEGACY_ENABLED)
+
+ d getPublicId pr * extproc('getPublicId') const xmlChar *
+ d ctx * value void *
+
+ d getSystemId pr * extproc('getSystemId') const xmlChar *
+ d ctx * value void *
+
+ d setDocumentLocator...
+ d pr extproc('setDocumentLocator')
+ d ctx * value void *
+ d loc value like(xmlSAXLocatorPtr)
+
+ d getLineNumber pr extproc('getLineNumber')
+ d like(xmlCint)
+ d ctx * value void *
+
+ d getColumnNumber...
+ d pr extproc('getColumnNumber')
+ d like(xmlCint)
+ d ctx * value void *
+
+ d isStandalone pr extproc('isStandalone')
+ d like(xmlCint)
+ d ctx * value void *
+
+ d hasInternalSubset...
+ d pr extproc('hasInternalSubset')
+ d like(xmlCint)
+ d ctx * value void *
+
+ d hasExternalSubset...
+ d pr extproc('hasExternalSubset')
+ d like(xmlCint)
+ d ctx * value void *
+
+ d internalSubset pr extproc('internalSubset')
+ d ctx * value void *
+ d name * value options(*string) const xmlChar *
+ d ExternalID * value options(*string) const xmlChar *
+ d SystemID * value options(*string) const xmlChar *
+
+ d externalSubset pr extproc('externalSubset')
+ d ctx * value void *
+ d name * value options(*string) const xmlChar *
+ d ExternalID * value options(*string) const xmlChar *
+ d SystemID * value options(*string) const xmlChar *
+
+ d getEntity pr extproc('getEntity')
+ d like(xmlEntityPtr)
+ d ctx * value void *
+ d name * value options(*string) const xmlChar *
+
+ d getParameterEntity...
+ d pr extproc('getParameterEntity')
+ d like(xmlEntityPtr)
+ d ctx * value void *
+ d name * value options(*string) const xmlChar *
+
+ d resolveEntity pr extproc('resolveEntity')
+ d like(xmlParserInputPtr)
+ d ctx * value void *
+ d publicId * value options(*string) const xmlChar *
+ d systemId * value options(*string) const xmlChar *
+
+ d entityDecl pr extproc('entityDecl')
+ d ctx * value void *
+ d name * value options(*string) const xmlChar *
+ d type value like(xmlCint)
+ d publicId * value options(*string) const xmlChar *
+ d systemId * value options(*string) const xmlChar *
+ d content * value options(*string) xmlChar *
+
+ d attributeDecl pr extproc('attributeDecl')
+ d ctx * value void *
+ d elem * value options(*string) const xmlChar *
+ d fullname * value options(*string) const xmlChar *
+ d type value like(xmlCint)
+ d def value like(xmlCint)
+ d defaultValue * value options(*string) const xmlChar *
+ d tree value like(xmlEnumerationPtr)
+
+ d elementDecl pr extproc('elementDecl')
+ d ctx * value void *
+ d name * value options(*string) const xmlChar *
+ d type value like(xmlCint)
+ d content value like(xmlElementContentPtr)
+
+ d notationDecl pr extproc('notationDecl')
+ d ctx * value void *
+ d name * value options(*string) const xmlChar *
+ d publicId * value options(*string) const xmlChar *
+ d systemId * value options(*string) const xmlChar *
+
+ d unparsedEntityDecl...
+ d pr extproc('unparsedEntityDecl')
+ d ctx * value void *
+ d name * value options(*string) const xmlChar *
+ d publicId * value options(*string) const xmlChar *
+ d systemId * value options(*string) const xmlChar *
+ d notationName * value options(*string) const xmlChar *
+
+ d startDocument pr extproc('startDocument')
+ d ctx * value void *
+
+ d endDocument pr extproc('endDocument')
+ d ctx * value void *
+
+ d attribute pr extproc('attribute')
+ d ctx * value void *
+ d fullname * value options(*string) const xmlChar *
+ d value * value options(*string) const xmlChar *
+
+ d startElement pr extproc('startElement')
+ d ctx * value void *
+ d fullname * value options(*string) const xmlChar *
+ d atts * const xmlChar *(*)
+
+ d endElement pr extproc('endElement')
+ d ctx * value void *
+ d name * value options(*string) const xmlChar *
+
+ d reference pr extproc('reference')
+ d ctx * value void *
+ d name * value options(*string) const xmlChar *
+
+ d characters pr extproc('characters')
+ d ctx * value void *
+ d ch * value options(*string) const xmlChar *
+ d len value like(xmlCint)
+
+ d ignorableWhitespace...
+ d pr extproc('ignorableWhitespace')
+ d ctx * value void *
+ d ch * value options(*string) const xmlChar *
+ d len value like(xmlCint)
+
+ d processingInstruction...
+ d pr extproc('processingInstruction')
+ d ctx * value void *
+ d target * value options(*string) const xmlChar *
+ d data * value options(*string) const xmlChar *
+
+ d globalNamespace...
+ d pr extproc('globalNamespace')
+ d ctx * value void *
+ d href * value options(*string) const xmlChar *
+ d prefix * value options(*string) const xmlChar *
+
+ d setNamespace pr extproc('setNamespace')
+ d ctx * value void *
+ d name * value options(*string) const xmlChar *
+
+ d getNamespace pr extproc('getNamespace')
+ d like(xmlNsPtr)
+ d ctx * value void *
+
+ d checkNamespace pr extproc('checkNamespace')
+ d like(xmlCint)
+ d ctx * value void *
+ d nameSpace * value options(*string) xmlChar *
+
+ d namespaceDecl pr extproc('namespaceDecl')
+ d ctx * value void *
+ d href * value options(*string) const xmlChar *
+ d prefix * value options(*string) const xmlChar *
+
+ d comment pr extproc('comment')
+ d ctx * value void *
+ d value * value options(*string) const xmlChar *
+
+ d cdataBlock pr extproc('cdataBlock')
+ d ctx * value void *
+ d value * value options(*string) const xmlChar *
+ d len value like(xmlCint)
+
+ /if defined(LIBXML_SAX1_ENABLED)
+ d initxmlDefaultSAXHandler...
+ d pr extproc('initxmlDefaultSAXHandler')
+ d hdlr likeds(xmlSAXHandlerV1)
+ d warning value like(xmlCint)
+
+ /if defined(LIBXML_HTML_ENABLED)
+ d inithtmlDefaultSAXHandler...
+ d pr extproc('inithtmlDefaultSAXHandler')
+ d hdlr likeds(xmlSAXHandlerV1)
+ /endif
+
+ /if defined(LIBXML_DOCB_ENABLED)
+ d initdocbDefaultSAXHandler...
+ d pr extproc('initdocbDefaultSAXHandler')
+ d hdlr likeds(xmlSAXHandlerV1)
+ /endif
+ /endif LIBXML_SAX1_ENABLED
+
+ /endif LIBXML_LEGACY_ENABLD
+
+ /endif XML_SAX_H__
diff --git a/libxml2/os400/libxmlrpg/SAX2.rpgle b/libxml2/os400/libxmlrpg/SAX2.rpgle
new file mode 100644
index 0000000..c72be25
--- /dev/null
+++ b/libxml2/os400/libxmlrpg/SAX2.rpgle
@@ -0,0 +1,256 @@
+ * Summary: SAX2 parser interface used to build the DOM tree
+ * Description: those are the default SAX2 interfaces used by
+ * the library when building DOM tree.
+ *
+ * Copy: See Copyright for the status of this software.
+ *
+ * Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A.
+
+ /if not defined(XML_SAX2_H__)
+ /define XML_SAX2_H__
+
+ /include "libxmlrpg/xmlversion"
+ /include "libxmlrpg/xmlTypesC"
+ /include "libxmlrpg/parser"
+ /include "libxmlrpg/xlink"
+
+ d xmlSAX2GetPublicId...
+ d pr * extproc('xmlSAX2getPublicId') const xmlChar *
+ d ctx * value void *
+
+ d xmlSAX2GetSystemId...
+ d pr * extproc('xmlSAX2getSystemId') const xmlChar *
+ d ctx * value void *
+
+ d xmlSAX2SetDocumentLocator...
+ d pr extproc('xmlSAX2SetDocumentLocator')
+ d ctx * value void *
+ d loc value like(xmlSAXLocatorPtr)
+
+ d xmlSAX2GetLineNumber...
+ d pr extproc('xmlSAX2GetLineNumber')
+ d like(xmlCint)
+ d ctx * value void *
+
+ d xmlSAX2GetColumnNumber...
+ d pr extproc('xmlSAX2GetColumnNumber')
+ d like(xmlCint)
+ d ctx * value void *
+
+ d xmlSAX2IsStandalone...
+ d pr extproc('xmlSAX2IsStandalone')
+ d like(xmlCint)
+ d ctx * value void *
+
+ d xmlSAX2HasInternalSubset...
+ d pr extproc('xmlSAX2HasInternalSubset')
+ d like(xmlCint)
+ d ctx * value void *
+
+ d xmlSAX2HasExternalSubset...
+ d pr extproc('xmlSAX2HasExternalSubset')
+ d like(xmlCint)
+ d ctx * value void *
+
+ d xmlSAX2InternalSubset...
+ d pr extproc('xmlSAX2InternalSubset')
+ d ctx * value void *
+ d name * value options(*string) const xmlChar *
+ d ExternalID * value options(*string) const xmlChar *
+ d SystemID * value options(*string) const xmlChar *
+
+ d xmlSAX2ExternalSubset...
+ d pr extproc('xmlSAX2ExternalSubset')
+ d ctx * value void *
+ d name * value options(*string) const xmlChar *
+ d ExternalID * value options(*string) const xmlChar *
+ d SystemID * value options(*string) const xmlChar *
+
+ d xmlSAX2GetEntity...
+ d pr extproc('xmlSAX2GetEntity')
+ d like(xmlEntityPtr)
+ d ctx * value void *
+ d name * value options(*string) const xmlChar *
+
+ d xmlSAX2GetParameterEntity...
+ d pr extproc('xmlSAX2GetParameterEntity')
+ d like(xmlEntityPtr)
+ d ctx * value void *
+ d name * value options(*string) const xmlChar *
+
+ d xmlSAX2ResolveEntity...
+ d pr extproc('xmlSAX2ResolveEntity')
+ d like(xmlParserInputPtr)
+ d ctx * value void *
+ d publicId * value options(*string) const xmlChar *
+ d systemId * value options(*string) const xmlChar *
+
+ d xmlSAX2EntityDecl...
+ d pr extproc('xmlSAX2EntityDecl')
+ d ctx * value void *
+ d name * value options(*string) const xmlChar *
+ d type value like(xmlCint)
+ d publicId * value options(*string) const xmlChar *
+ d systemId * value options(*string) const xmlChar *
+ d content * value options(*string) xmlChar *
+
+ d xmlSAX2AttributeDecl...
+ d pr extproc('xmlSAX2AttributeDecl')
+ d ctx * value void *
+ d elem * value options(*string) const xmlChar *
+ d fullname * value options(*string) const xmlChar *
+ d type value like(xmlCint)
+ d def value like(xmlCint)
+ d defaultValue * value options(*string) const xmlChar *
+ d tree value like(xmlEnumerationPtr)
+
+ d xmlSAX2ElementDecl...
+ d pr extproc('xmlSAX2ElementDecl')
+ d ctx * value void *
+ d name * value options(*string) const xmlChar *
+ d type value like(xmlCint)
+ d content value like(xmlElementContentPtr)
+
+ d xmlSAX2NotationDecl...
+ d pr extproc('xmlSAX2NotationDecl')
+ d ctx * value void *
+ d name * value options(*string) const xmlChar *
+ d publicId * value options(*string) const xmlChar *
+ d systemId * value options(*string) const xmlChar *
+
+ d xmlSAX2UnparsedEntityDecl...
+ d pr extproc('xmlSAX2UnparsedEntityDecl')
+ d ctx * value void *
+ d name * value options(*string) const xmlChar *
+ d publicId * value options(*string) const xmlChar *
+ d systemId * value options(*string) const xmlChar *
+ d notationName * value options(*string) xmlChar *
+
+ d xmlSAX2StartDocument...
+ d pr extproc('xmlSAX2StartDocument')
+ d ctx * value void *
+
+ d xmlSAX2EndDocument...
+ d pr extproc('xmlSAX2EndDocument')
+ d ctx * value void *
+
+ /undefine XML_TESTVAL
+ /if defined(LIBXML_SAX1_ENABLED)
+ /define XML_TESTVAL
+ /elseif defined(LIBXML_HTML_ENABLED)
+ /define XML_TESTVAL
+ /elseif defined(LIBXML_WRITER_ENABLED)
+ /define XML_TESTVAL
+ /elseif defined(LIBXML_DOCB_ENABLED)
+ /endif
+ /if defined(XML_TESTVAL)
+ d xmlSAX2StartElement...
+ d pr extproc('xmlSAX2StartElement')
+ d ctx * value void *
+ d fullname * value options(*string) const xmlChar *
+ d atts * const xmlChar *(*)
+
+ d xmlSAX2EndElement...
+ d pr extproc('xmlSAX2EndElement')
+ d ctx * value void *
+ d name * value options(*string) const xmlChar *
+
+ /undefine XML_TESTVAL
+ /endif
+
+ d xmlSAX2StartElementNs...
+ d pr extproc('xmlSAX2StartElementNs')
+ d ctx * value void *
+ d localname * value options(*string) const xmlChar *
+ d prefix * value options(*string) const xmlChar *
+ d URI * value options(*string) const xmlChar *
+ d nb_namespaces value like(xmlCint)
+ d namespaces * value const xmlChar *(*)
+ d nb_attributes value like(xmlCint)
+ d nb_defaulted value like(xmlCint)
+ d attributes * const xmlChar *(*)
+
+ d xmlSAX2EndElementNs...
+ d pr extproc('xmlSAX2EndElementNs')
+ d ctx * value void *
+ d localname * value options(*string) const xmlChar *
+ d prefix * value options(*string) const xmlChar *
+ d URI * value options(*string) const xmlChar *
+
+ d xmlSAX2Reference...
+ d pr extproc('xmlSAX2Reference')
+ d ctx * value void *
+ d name * value options(*string) const xmlChar *
+
+ d xmlSAX2Characters...
+ d pr extproc('xmlSAX2Characters')
+ d ctx * value void *
+ d ch * value options(*string) const xmlChar *
+ d len value like(xmlCint)
+
+ d xmlSAX2IgnorableWhitespace...
+ d pr extproc('xmlSAX2IgnorableWhitespace')
+ d ctx * value void *
+ d ch * value options(*string) const xmlChar *
+ d len value like(xmlCint)
+
+ d xmlSAX2ProcessingInstruction...
+ d pr extproc(
+ d 'xmlSAX2ProcessingInstruction')
+ d ctx * value void *
+ d target * value options(*string) const xmlChar *
+ d data * value options(*string) const xmlChar *
+
+ d xmlSAX2Comment...
+ d pr extproc('xmlSAX2Comment')
+ d ctx * value void *
+ d value * value options(*string) const xmlChar *
+
+ d xmlSAX2CDataBlock...
+ d pr extproc('xmlSAX2CDataBlock')
+ d ctx * value void *
+ d value * value options(*string) const xmlChar *
+ d len value like(xmlCint)
+
+ /if defined(LIBXML_SAX1_ENABLED)
+ d xmlSAXDefaultVersion...
+ d pr extproc('xmlSAXDefaultVersion')
+ d like(xmlCint)
+ d version value like(xmlCint)
+ /endif LIBXML_SAX1_ENABLED
+
+ d xmlSAXVersion pr extproc('xmlSAXVersion')
+ d like(xmlCint)
+ d hdlr likeds(xmlSAXHandler)
+ d version value like(xmlCint)
+
+ d xmlSAX2InitDefaultSAXHandler...
+ d pr extproc(
+ d 'xmlSAX2InitDefaultSAXHandler')
+ d hdlr likeds(xmlSAXHandler)
+ d warning value like(xmlCint)
+
+ /if defined(LIBXML_HTML_ENABLED)
+ d xmlSAX2InitHtmlDefaultSAXHandler...
+ d pr extproc(
+ d 'xmlSAX2InitHtmlDefaultSAXHandler')
+ d hdlr likeds(xmlSAXHandler)
+
+ d htmlDefaultSAXHandlerInit...
+ d pr extproc('htmlDefaultSAXHandlerInit')
+ /endif
+
+ /if defined(LIBXML_DOCB_ENABLED)
+ d xmlSAX2InitDocbDefaultSAXHandler...
+ d pr extproc(
+ d 'xmlSAX2InitDocbDefaultSAXHandler')
+ d hdlr likeds(xmlSAXHandler)
+
+ d docbDefaultSAXHandlerInit...
+ d pr extproc('docbDefaultSAXHandlerInit')
+ /endif
+
+ d xmlDefaultSAXHandlerInit...
+ d pr extproc('xmlDefaultSAXHandlerInit')
+
+ /endif XML_SAX2_H__
diff --git a/libxml2/os400/libxmlrpg/c14n.rpgle b/libxml2/os400/libxmlrpg/c14n.rpgle
new file mode 100644
index 0000000..963ed37
--- /dev/null
+++ b/libxml2/os400/libxmlrpg/c14n.rpgle
@@ -0,0 +1,125 @@
+ * Summary: Provide Canonical XML and Exclusive XML Canonicalization
+ * Description: the c14n modules provides a
+ *
+ * "Canonical XML" implementation
+ * http://www.w3.org/TR/xml-c14n
+ *
+ * and an
+ *
+ * "Exclusive XML Canonicalization" implementation
+ * http://www.w3.org/TR/xml-exc-c14n
+ *
+ * Copy: See Copyright for the status of this software.
+ *
+ * Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A.
+
+ /if not defined(XML_C14N_H__)
+ /define XML_C14N_H__
+
+ /include "libxmlrpg/xmlversion"
+
+ /if defined(LIBXML_C14N_ENABLED)
+ /if defined(LIBXML_OUTPUT_ENABLED)
+
+ /include "libxmlrpg/xmlTypesC"
+ /include "libxmlrpg/tree"
+ /include "libxmlrpg/xpath"
+
+ * XML Canonicazation
+ * http://www.w3.org/TR/xml-c14n
+ *
+ * Exclusive XML Canonicazation
+ * http://www.w3.org/TR/xml-exc-c14n
+ *
+ * Canonical form of an XML document could be created if and only if
+ * a) default attributes (if any) are added to all nodes
+ * b) all character and parsed entity references are resolved
+ * In order to achive this in libxml2 the document MUST be loaded with
+ * following global setings:
+ *
+ * xmlLoadExtDtdDefaultValue = XML_DETECT_IDS ã XML_COMPLETE_ATTRS;
+ * xmlSubstituteEntitiesDefault(1);
+ *
+ * or corresponding parser context setting:
+ * xmlParserCtxtPtr ctxt;
+ *
+ * ...
+ * ctxt->loadsubset = XML_DETECT_IDS ã XML_COMPLETE_ATTRS;
+ * ctxt->replaceEntities = 1;
+ * ...
+
+ * xmlC14NMode:
+ *
+ * Predefined values for C14N modes
+
+ d xmlBufferAllocationScheme...
+ d xmlC14NMode s based(######typedef######)
+ d like(xmlCenum)
+ d XML_C14N_1_0 c 0 Original C14N 1.0
+ d XML_C14N_EXCLUSIVE_1_0... Exclusive C14N 1.0
+ d c 1
+ d XML_C14N_1_1 c 2 C14N 1.1 spec
+
+ d xmlC14NDocSaveTo...
+ d pr extproc('xmlC14NDocSaveTo')
+ d like(xmlCint)
+ d doc value like(xmlDocPtr)
+ d nodes value like(xmlNodeSetPtr)
+ d mode value like(xmlCint)
+ d inclusive_ns_prefixes...
+ d * options(*omit) xmlChar *(*)
+ d with_comments value like(xmlCint)
+ d buf value like(xmlOutputBufferPtr)
+
+ d xmlC14NDocDumpMemory...
+ d pr extproc('xmlC14NDocDumpMemory')
+ d like(xmlCint)
+ d doc value like(xmlDocPtr)
+ d nodes value like(xmlNodeSetPtr)
+ d mode value like(xmlCint)
+ d inclusive_ns_prefixes...
+ d * options(*omit) xmlChar *(*)
+ d with_comments value like(xmlCint)
+ d doc_txt_ptr * xmlChar *(*)
+
+ d xmlC14NDocSave pr extproc('xmlC14NDocSave')
+ d like(xmlCint)
+ d doc value like(xmlDocPtr)
+ d nodes value like(xmlNodeSetPtr)
+ d mode value like(xmlCint)
+ d inclusive_ns_prefixes...
+ d * options(*omit) xmlChar *(*)
+ d with_comments value like(xmlCint)
+ d filename * value options(*string) const char *
+ d compression value like(xmlCint)
+
+ * This is the core C14N function
+
+ * xmlC14NIsVisibleCallback:
+ * @user_data: user data
+ * @node: the curent node
+ * @parent: the parent node
+ *
+ * Signature for a C14N callback on visible nodes
+ *
+ * Returns 1 if the node should be included
+
+ d xmlC14NIsVisibleCallback...
+ d s * based(######typedef######)
+ d procptr
+
+ d xmlC14NExecute pr extproc('xmlC14NExecute')
+ d like(xmlCint)
+ d doc value like(xmlDocPtr)
+ d is_visible_callback...
+ d value like(xmlC14NIsVisibleCallback)
+ d user_data * value void *
+ d mode value like(xmlCint)
+ d inclusive_ns_prefixes...
+ d * options(*omit) xmlChar *(*)
+ d with_comments value like(xmlCint)
+ d buf value like(xmlOutputBufferPtr)
+
+ /endif LIBXML_OUTPUT_ENABLD
+ /endif LIBXML_C14N_ENABLED
+ /endif XML_C14N_H__
diff --git a/libxml2/os400/libxmlrpg/catalog.rpgle b/libxml2/os400/libxmlrpg/catalog.rpgle
new file mode 100644
index 0000000..1dab819
--- /dev/null
+++ b/libxml2/os400/libxmlrpg/catalog.rpgle
@@ -0,0 +1,248 @@
+ * Summary: interfaces to the Catalog handling system
+ * Description: the catalog module implements the support for
+ * XML Catalogs and SGML catalogs
+ *
+ * SGML Open Technical Resolution TR9401:1997.
+ * http://www.jclark.com/sp/catalog.htm
+ *
+ * XML Catalogs Working Draft 06 August 2001
+ * http://www.oasis-open.org/committees/entity/spec-2001-08-06.html
+ *
+ * Copy: See Copyright for the status of this software.
+ *
+ * Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A.
+
+ /if not defined(XML_CATALOG_H__)
+ /define XML_CATALOG_H__
+
+ /include "libxmlrpg/xmlversion"
+
+ /if defined(LIBXML_CATALOG_ENABLED)
+
+ /include "libxmlrpg/xmlTypesC"
+ /include "libxmlrpg/xmlstring"
+ /include "libxmlrpg/tree"
+
+ * XML_CATALOGS_NAMESPACE:
+ *
+ * The namespace for the XML Catalogs elements.
+
+ d XML_CATALOGS_NAMESPACE...
+ d c 'urn:oasis:names:+
+ d tc:entity:xmlns:xml:catalog'
+
+ * XML_CATALOG_PI:
+ *
+ * The specific XML Catalog Processing Instuction name.
+
+ d XML_CATALOG_PI c 'oasis-xml-catalog'
+
+ * The API is voluntarily limited to general cataloging.
+
+ d xmlCatalogPrefer...
+ d s based(######typedef######)
+ d like(xmlCenum)
+ d XML_CATA_PREFER_NONE...
+ d c 0
+ d XML_CATA_PREFER_PUBLIC...
+ d c 1
+ d XML_CATA_PREFER_SYSTEM...
+ d c 2
+
+ d xmlCatalogAllow...
+ d s based(######typedef######)
+ d like(xmlCenum)
+ d XML_CATA_ALLOW_NONE...
+ d c 0
+ d XML_CATA_ALLOW_GLOBAL...
+ d c 1
+ d XML_CATA_ALLOW_DOCUMENT...
+ d c 2
+ d XML_CATA_ALLOW_ALL...
+ d c 3
+
+ d xmlCatalogPtr s * based(######typedef######)
+
+ * Operations on a given catalog.
+
+ d xmlNewCatalog pr extproc('xmlNewCatalog')
+ d like(xmlCatalogPtr)
+ d sgml value like(xmlCint)
+
+ d xmlLoadACatalog...
+ d pr extproc('xmlLoadACatalog')
+ d like(xmlCatalogPtr)
+ d filename * value options(*string) const char *
+
+ d xmlLoadSGMLSuperCatalog...
+ d pr extproc('xmlLoadSGMLSuperCatalog')
+ d like(xmlCatalogPtr)
+ d filename * value options(*string) const char *
+
+ d xmlConvertSGMLCatalog...
+ d pr extproc('xmlConvertSGMLCatalog')
+ d like(xmlCint)
+ d catal value like(xmlCatalogPtr)
+
+ d xmlACatalogAdd pr extproc('xmlACatalogAdd')
+ d like(xmlCint)
+ d catal value like(xmlCatalogPtr)
+ d type * value options(*string) const xmlChar *
+ d orig * value options(*string) const xmlChar *
+ d replace * value options(*string) const xmlChar *
+
+ d xmlACatalogRemove...
+ d pr extproc('xmlACatalogRemove')
+ d like(xmlCint)
+ d catal value like(xmlCatalogPtr)
+ d value * value options(*string) const xmlChar *
+
+ d xmlACatalogResolve...
+ d pr * extproc('xmlACatalogResolve') xmlChar *
+ d catal value like(xmlCatalogPtr)
+ d pubID * value options(*string) const xmlChar *
+ d sysID * value options(*string) const xmlChar *
+
+ d xmlACatalogResolveSystem...
+ d pr * extproc('xmlACatalogResolveSystem') xmlChar *
+ d catal value like(xmlCatalogPtr)
+ d sysID * value options(*string) const xmlChar *
+
+ d xmlACatalogResolvePublic...
+ d pr * extproc('xmlACatalogResolvePublic') xmlChar *
+ d catal value like(xmlCatalogPtr)
+ d pubID * value options(*string) const xmlChar *
+
+ d xmlACatalogResolveURI...
+ d pr * extproc('xmlACatalogResolveURI') xmlChar *
+ d catal value like(xmlCatalogPtr)
+ d URI * value options(*string) const xmlChar *
+
+ /if defined(LIBXML_OUTPUT_ENABLED)
+ d xmlACatalogDump...
+ d pr extproc('xmlACatalogDump')
+ d catal value like(xmlCatalogPtr)
+ d out * value FILE *
+ /endif LIBXML_OUTPUT_ENABLD
+
+ d xmlFreeCatalog pr extproc('xmlFreeCatalog')
+ d catal value like(xmlCatalogPtr)
+
+ d xmlCatalogIsEmpty...
+ d pr extproc('xmlCatalogIsEmpty')
+ d like(xmlCint)
+ d catal value like(xmlCatalogPtr)
+
+ * Global operations.
+
+ d xmlInitializeCatalog...
+ d pr extproc('xmlInitializeCatalog')
+
+ d xmlLoadCatalog pr extproc('xmlLoadCatalog')
+ d like(xmlCint)
+ d filename * value options(*string) const char *
+
+ d xmlLoadCatalogs...
+ d pr extproc('xmlLoadCatalogs')
+ d paths * value options(*string) const char *
+
+ d xmlCatalogCleanup...
+ d pr extproc('xmlCatalogCleanup')
+
+ /if defined(LIBXML_OUTPUT_ENABLED)
+ d xmlCatalogDump pr extproc('xmlCatalogDump')
+ d out * value FILE *
+ /endif LIBXML_OUTPUT_ENABLD
+
+ d xmlCatalogResolve...
+ d pr * extproc('xmlCatalogResolve') xmlChar *
+ d pubID * value options(*string) const xmlChar *
+ d sysID * value options(*string) const xmlChar *
+
+ d xmlCatalogResolveSystem...
+ d pr * extproc('xmlCatalogResolveSystem') xmlChar *
+ d sysID * value options(*string) const xmlChar *
+
+ d xmlCatalogResolvePublic...
+ d pr * extproc('xmlCatalogResolvePublic') xmlChar *
+ d pubID * value options(*string) const xmlChar *
+
+ d xmlCatalogResolveURI...
+ d pr * extproc('xmlCatalogResolveURI') xmlChar *
+ d URI * value options(*string) const xmlChar *
+
+ d xmlCatalogAdd pr extproc('xmlCatalogAdd')
+ d like(xmlCint)
+ d type * value options(*string) const xmlChar *
+ d orig * value options(*string) const xmlChar *
+ d replace * value options(*string) const xmlChar *
+
+ d xmlCatalogRemove...
+ d pr extproc('xmlCatalogRemove')
+ d like(xmlCint)
+ d value * value options(*string) const xmlChar *
+
+ d xmlParseCatalogFile...
+ d pr extproc('xmlParseCatalogFile')
+ d like(xmlDocPtr)
+ d filename * value options(*string) const char *
+
+ d xmlCatalogConvert...
+ d pr extproc('xmlCatalogConvert')
+ d like(xmlCint)
+
+ * Strictly minimal interfaces for per-document catalogs used
+ * by the parser.
+
+ d xmlCatalogFreeLocal...
+ d pr extproc('xmlCatalogFreeLocal')
+ d catalogs * value void *
+
+ d xmlCatalogAddLocal...
+ d pr * extproc('xmlCatalogAddLocal') void *
+ d catalogs * value void *
+ d URL * value options(*string) const xmlChar *
+
+ d xmlCatalogLocalResolve...
+ d pr * extproc('xmlCatalogLocalResolve') xmlChar *
+ d catalogs * value void *
+ d pubID * value options(*string) const xmlChar *
+ d sysID * value options(*string) const xmlChar *
+
+ d xmlCatalogLocalResolveURI...
+ d pr * extproc('xmlCatalogLocalResolveURI') xmlChar *
+ d catalogs * value void *
+ d URI * value options(*string) const xmlChar *
+
+ * Preference settings.
+
+ d xmlCatalogSetDebug...
+ d pr extproc('xmlCatalogSetDebug')
+ d like(xmlCint)
+ d level value like(xmlCint)
+
+ d xmlCatalogSetDefaultPrefer...
+ d pr extproc('xmlCatalogSetDefaultPrefer')
+ d like(xmlCatalogPrefer)
+ d prefer value like(xmlCatalogPrefer)
+
+ d xmlCatalogSetDefaults...
+ d pr extproc('xmlCatalogSetDefaults')
+ d allow value like(xmlCatalogAllow)
+
+ d xmlCatalogGetDefaults...
+ d pr extproc('xmlCatalogGetDefaults')
+ d like(xmlCatalogAllow)
+
+ * DEPRECATED interfaces
+
+ d xmlCatalogGetSystem...
+ d pr * extproc('xmlCatalogGetSystem') const xmlChar *
+ d sysID * value options(*string) const xmlChar *
+
+ d xmlCatalogGetPublic...
+ d pr * extproc('xmlCatalogGetPublic') const xmlChar *
+ d pubID * value options(*string) const xmlChar *
+
+ /endif LIBXML_CATALOG_ENBLD
+ /endif XML_CATALOG_H__
diff --git a/libxml2/os400/libxmlrpg/chvalid.rpgle b/libxml2/os400/libxmlrpg/chvalid.rpgle
new file mode 100644
index 0000000..c601442
--- /dev/null
+++ b/libxml2/os400/libxmlrpg/chvalid.rpgle
@@ -0,0 +1,107 @@
+ * Summary: Unicode character range checking
+ * Description: this module exports interfaces for the character
+ * range validation APIs
+ *
+ * Copy: See Copyright for the status of this software.
+ *
+ * Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A.
+
+ /if not defined(XML_CHVALID_H__)
+ /define XML_CHVALID_H__
+
+ /include "libxmlrpg/xmlversion"
+ /include "libxmlrpg/xmlTypesC"
+ /include "libxmlrpg/xmlstring"
+
+ * Define our typedefs and structures
+
+ d xmlChSRangePtr s * based(######typedef######)
+
+ d xmlChSRange ds based(xmlChSRangePtr)
+ d align qualified
+ d low like(xmlCushort)
+ d high like(xmlCushort)
+
+ d xmlChLRangePtr s * based(######typedef######)
+
+ d xmlChLRange ds based(xmlChLRangePtr)
+ d align qualified
+ d low like(xmlCuint)
+ d high like(xmlCuint)
+
+ d xmlChRangeGroupPtr...
+ d s * based(######typedef######)
+
+ d xmlChRangeGroup...
+ d ds based(xmlChRangeGroupPtr)
+ d align qualified
+ d nbShortRange like(xmlCint)
+ d nbLongRange like(xmlCint)
+ d shortRange like(xmlChSRangePtr)
+ d longRange like(xmlChLRangePtr)
+
+ * Range checking routine
+
+ d xmlCharInRange pr extproc('xmlCharInRange')
+ d like(xmlCint)
+ d val value like(xmlCuint)
+ d group like(xmlChRangeGroupPtr) const
+
+ d xmlIsBaseCharGroup...
+ d ds import('xmlIsBaseCharGroup')
+ d likeds(xmlChRangeGroup) const
+
+ d xmlIsCharGroup...
+ d ds import('xmlIsCharGroup')
+ d likeds(xmlChRangeGroup) const
+
+ d xmlIsCombiningGroup...
+ d ds import('xmlIsCombiningGroup')
+ d likeds(xmlChRangeGroup) const
+
+ d xmlIsDigitGroup...
+ d ds import('xmlIsDigitGroup')
+ d likeds(xmlChRangeGroup) const
+
+ d xmlIsExtenderGroup...
+ d ds import('xmlIsExtenderGroup')
+ d likeds(xmlChRangeGroup) const
+
+ d xmlIsIdeographicGroup...
+ d ds import('xmlIsIdeographicGroup')
+ d likeds(xmlChRangeGroup) const
+
+ d xmlIsBaseChar pr extproc('xmlIsBaseChar')
+ d like(xmlCint)
+ d ch value like(xmlCuint)
+
+ d xmlIsBlank pr extproc('xmlIsBlank')
+ d like(xmlCint)
+ d ch value like(xmlCuint)
+
+ d xmlIsChar pr extproc('xmlIsChar')
+ d like(xmlCint)
+ d ch value like(xmlCuint)
+
+ d xmlIsCombining pr extproc('xmlIsCombining')
+ d like(xmlCint)
+ d ch value like(xmlCuint)
+
+ d xmlIsDigit pr extproc('xmlIsDigit')
+ d like(xmlCint)
+ d ch value like(xmlCuint)
+
+ d xmlIsExtender pr extproc('xmlIsExtender')
+ d like(xmlCint)
+ d ch value like(xmlCuint)
+
+ d xmlIsIdeographic...
+ d pr extproc('xmlIsIdeographic')
+ d like(xmlCint)
+ d ch value like(xmlCuint)
+
+ d xmlIsPubidChar pr extproc('xmlIsPubidChar')
+ d like(xmlCint)
+ d ch value like(xmlCuint)
+
+ /endif XML_CHVALID_H__
diff --git a/libxml2/os400/libxmlrpg/debugXML.rpgle b/libxml2/os400/libxmlrpg/debugXML.rpgle
new file mode 100644
index 0000000..81826bc
--- /dev/null
+++ b/libxml2/os400/libxmlrpg/debugXML.rpgle
@@ -0,0 +1,254 @@
+ * Summary: Tree debugging APIs
+ * Description: Interfaces to a set of routines used for debugging the tree
+ * produced by the XML parser.
+ *
+ * Copy: See Copyright for the status of this software.
+ *
+ * Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A.
+
+ /if not defined(DEBUG_XML__)
+ /define DEBUG_XML__
+
+ /include "libxmlrpg/xmlversion"
+
+ /if defined(LIBXML_DEBUG_ENABLED)
+
+ /include "libxmlrpg/xmlTypesC"
+ /include "libxmlrpg/tree"
+ /include "libxmlrpg/xpath"
+
+ * The standard Dump routines.
+
+ d xmlDebugDumpString...
+ d pr extproc('xmlDebugDumpString')
+ d output * value FILE *
+ d str * value options(*string) const xmlChar *
+
+ d xmlDebugDumpAttr...
+ d pr extproc('xmlDebugDumpAttr')
+ d output * value FILE *
+ d attr value like(xmlAttrPtr)
+ d depth value like(xmlCint)
+
+ d xmlDebugDumpAttrList...
+ d pr extproc('xmlDebugDumpAttrList')
+ d output * value FILE *
+ d attr value like(xmlAttrPtr)
+ d depth value like(xmlCint)
+
+ d xmlDebugDumpOneNode...
+ d pr extproc('xmlDebugDumpOneNode')
+ d output * value FILE *
+ d node value like(xmlNodePtr)
+ d depth value like(xmlCint)
+
+ d xmlDebugDumpNode...
+ d pr extproc('xmlDebugDumpNode')
+ d output * value FILE *
+ d node value like(xmlNodePtr)
+ d depth value like(xmlCint)
+
+ d xmlDebugDumpNodeList...
+ d pr extproc('xmlDebugDumpNodeList')
+ d output * value FILE *
+ d node value like(xmlNodePtr)
+ d depth value like(xmlCint)
+
+ d xmlDebugDumpDocumentHead...
+ d pr extproc('xmlDebugDumpDocumentHead')
+ d output * value FILE *
+ d doc value like(xmlDocPtr)
+
+ d xmlDebugDumpDocument...
+ d pr extproc('xmlDebugDumpDocument')
+ d output * value FILE *
+ d doc value like(xmlDocPtr)
+
+ d xmlDebugDumpDTD...
+ d pr extproc('xmlDebugDumpDTD')
+ d output * value FILE *
+ d dtd value like(xmlDtdPtr)
+
+ d xmlDebugDumpEntities...
+ d pr extproc('xmlDebugDumpEntities')
+ d output * value FILE *
+ d doc value like(xmlDocPtr)
+
+ ****************************************************************
+ * *
+ * Checking routines *
+ * *
+ ****************************************************************
+
+ d xmlDebugCheckDocument...
+ d pr extproc('xmlDebugCheckDocument')
+ d like(xmlCint)
+ d output * value FILE *
+ d doc value like(xmlDocPtr)
+
+ ****************************************************************
+ * *
+ * XML shell helpers *
+ * *
+ ****************************************************************
+
+ d xmlLsOneNode pr extproc('xmlLsOneNode')
+ d output * value FILE *
+ d node value like(xmlNodePtr)
+
+ d xmlLsCountNode pr extproc('xmlLsCountNode')
+ d like(xmlCint)
+ d node value like(xmlNodePtr)
+
+ d xmlBoolToText pr * extproc('xmlBoolToText') const char *
+ d boolval value like(xmlCint)
+
+ ****************************************************************
+ * *
+ * The XML shell related structures and functions *
+ * *
+ ****************************************************************
+
+ /if defined(LIBXML_XPATH_ENABLED)
+
+ * xmlShellReadlineFunc:
+ * @prompt: a string prompt
+ *
+ * This is a generic signature for the XML shell input function.
+ *
+ * Returns a string which will be freed by the Shell.
+
+ d xmlShellReadlineFunc...
+ d s * based(######typedef######)
+ d procptr
+
+ * xmlShellCtxt:
+ *
+ * A debugging shell context.
+ * TODO: add the defined function tables.
+
+ d xmlShellCtxtPtr...
+ d s * based(######typedef######)
+
+ d xmlSchellCtxt ds based(xmlShellCtxtPtr)
+ d align qualified
+ d filename * char *
+ d doc like(xmlDocPtr)
+ d node like(xmlNodePtr)
+ d pctxt like(xmlXPathContextPtr)
+ d loaded like(xmlCint)
+ d output * FILE *
+ d input like(xmlShellReadlineFunc)
+
+ * xmlShellCmd:
+ * @ctxt: a shell context
+ * @arg: a string argument
+ * @node: a first node
+ * @node2: a second node
+ *
+ * This is a generic signature for the XML shell functions.
+ *
+ * Returns an int, negative returns indicating errors.
+
+ d xmlShellCmd s * based(######typedef######)
+ d procptr
+
+ d xmlShellPrintXPathError...
+ d pr extproc('xmlShellPrintXPathError')
+ d errorType value like(xmlCint)
+ d arg * value options(*string) const char *
+
+ d xmlShellPrintXPathResult...
+ d pr extproc('xmlShellPrintXPathResult')
+ d list value like(xmlXPathObjectPtr)
+
+ d xmlShellList pr extproc('xmlShellList')
+ d like(xmlCint)
+ d ctxt value like(xmlShellCtxtPtr)
+ d arg * value options(*string) char *
+ d node value like(xmlNodePtr)
+ d node2 value like(xmlNodePtr)
+
+ d xmlShellBase pr extproc('xmlShellBase')
+ d like(xmlCint)
+ d ctxt value like(xmlShellCtxtPtr)
+ d arg * value options(*string) char *
+ d node value like(xmlNodePtr)
+ d node2 value like(xmlNodePtr)
+
+ d xmlShellDir pr extproc('xmlShellDir')
+ d like(xmlCint)
+ d ctxt value like(xmlShellCtxtPtr)
+ d arg * value options(*string) char *
+ d node value like(xmlNodePtr)
+ d node2 value like(xmlNodePtr)
+
+ d xmlShellLoad pr extproc('xmlShellLoad')
+ d like(xmlCint)
+ d ctxt value like(xmlShellCtxtPtr)
+ d filename * value options(*string) char *
+ d node value like(xmlNodePtr)
+ d node2 value like(xmlNodePtr)
+
+ /if defined(LIBXML_OUTPUT_ENABLED)
+ d xmlShellPrintNode...
+ d pr extproc('xmlShellPrintNode')
+ d node value like(xmlNodePtr)
+
+ d xmlShellCat pr extproc('xmlShellCat')
+ d like(xmlCint)
+ d ctxt value like(xmlShellCtxtPtr)
+ d arg * value options(*string) char *
+ d node value like(xmlNodePtr)
+ d node2 value like(xmlNodePtr)
+
+ d xmlShellWrite pr extproc('xmlShellWrite')
+ d like(xmlCint)
+ d ctxt value like(xmlShellCtxtPtr)
+ d filename * value options(*string) char *
+ d node value like(xmlNodePtr)
+ d node2 value like(xmlNodePtr)
+
+ d xmlShellSave pr extproc('xmlShellSave')
+ d like(xmlCint)
+ d ctxt value like(xmlShellCtxtPtr)
+ d filename * value options(*string) char *
+ d node value like(xmlNodePtr)
+ d node2 value like(xmlNodePtr)
+ /endif LIBXML_OUTPUT_ENABLD
+
+ /if defined(LIBXML_VALID_ENABLED)
+ d xmlShellValidate...
+ d pr extproc('xmlShellValidate')
+ d like(xmlCint)
+ d ctxt value like(xmlShellCtxtPtr)
+ d dtd * value options(*string) char *
+ d node value like(xmlNodePtr)
+ d node2 value like(xmlNodePtr)
+ /endif LIBXML_VALID_ENABLED
+
+ d xmlShellDu pr extproc('xmlShellDu')
+ d like(xmlCint)
+ d ctxt value like(xmlShellCtxtPtr)
+ d arg * value options(*string) char *
+ d tree value like(xmlNodePtr)
+ d node2 value like(xmlNodePtr)
+
+ d xmlShellPwd pr extproc('xmlShellPwd')
+ d like(xmlCint)
+ d ctxt value like(xmlShellCtxtPtr)
+ d buffer * value options(*string) char *
+ d node value like(xmlNodePtr)
+ d node2 value like(xmlNodePtr)
+
+ * The Shell interface.
+
+ d xmlShell pr extproc('xmlShell')
+ d doc value like(xmlDocPtr)
+ d filename * value options(*string) char *
+ d input value like(xmlShellReadlineFunc)
+ d output * value FILE *
+
+ /endif LIBXML_XPATH_ENABLED
+ /endif LIBXML_DEBUG_ENABLED
+ /endif DEBUG_XML__
diff --git a/libxml2/os400/libxmlrpg/dict.rpgle b/libxml2/os400/libxmlrpg/dict.rpgle
new file mode 100644
index 0000000..c061e4c
--- /dev/null
+++ b/libxml2/os400/libxmlrpg/dict.rpgle
@@ -0,0 +1,85 @@
+ * Summary: string dictionary
+ * Description: dictionary of reusable strings, just used to avoid
+ * allocation and freeing operations.
+ *
+ * Copy: See Copyright for the status of this software.
+ *
+ * Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A.
+
+ /if not defined(XML_DICT_H__)
+ /define XML_DICT_H__
+
+ * The dictionary.
+
+ d xmlDictPtr s * based(######typedef######)
+
+ /include "libxmlrpg/xmlversion"
+ /include "libxmlrpg/xmlTypesC"
+ /include "libxmlrpg/tree"
+
+ * Initializer
+
+ d xmlInitializeDict...
+ d pr extproc('xmlInitializeDict')
+ d like(xmlCint)
+
+ * Constructor and destructor.
+
+ d xmlDictCreate pr extproc('xmlDictCreate')
+ d like(xmlDictPtr)
+
+ d xmlDictSetLimit...
+ d pr extproc('xmlDictSetLimit')
+ d like(xmlCsize_t)
+ d dict value like(xmlDictPtr)
+ d limit value like(xmlCsize_t)
+
+ d xmlDictGetUsage...
+ d pr extproc('xmlDictGetUsage')
+ d like(xmlCsize_t)
+ d dict value like(xmlDictPtr)
+
+ d xmlDictCreateSub...
+ d pr extproc('xmlDictCreateSub')
+ d like(xmlDictPtr)
+ d sub value like(xmlDictPtr)
+
+ d xmlDictReference...
+ d pr extproc('xmlDictGetReference')
+ d like(xmlCint)
+ d dict value like(xmlDictPtr)
+
+ d xmlDictFree pr extproc('xmlDictFree')
+ d dict value like(xmlDictPtr)
+
+ * Lookup of entry in the dictionary.
+
+ d xmlDictLookup pr * extproc('xmlDictLookup') const xmlChar *
+ d dict value like(xmlDictPtr)
+ d name * value options(*string) const xmlChar *
+ d len value like(xmlCint)
+
+ d xmlDictExists pr * extproc('xmlDictExists') const xmlChar *
+ d dict value like(xmlDictPtr)
+ d name * value options(*string) const xmlChar *
+ d len value like(xmlCint)
+
+ d xmlDictQLookup pr * extproc('xmlDictQLookup') const xmlChar *
+ d dict value like(xmlDictPtr)
+ d name * value options(*string) const xmlChar *
+ d name * value options(*string) const xmlChar *
+
+ d xmlDictOwns pr extproc('xmlDictOwns')
+ d like(xmlCint)
+ d dict value like(xmlDictPtr)
+ d str * value options(*string) const xmlChar *
+
+ d xmlDictSize pr extproc('xmlDictSize')
+ d like(xmlCint)
+ d dict value like(xmlDictPtr)
+
+ * Cleanup function
+
+ d xmlDictCleanup pr extproc('xmlDictCleanup')
+
+ /endif ! XML_DICT_H__
diff --git a/libxml2/os400/libxmlrpg/encoding.rpgle b/libxml2/os400/libxmlrpg/encoding.rpgle
new file mode 100644
index 0000000..8153f3c
--- /dev/null
+++ b/libxml2/os400/libxmlrpg/encoding.rpgle
@@ -0,0 +1,284 @@
+ * Summary: interface for the encoding conversion functions
+ * Description: interface for the encoding conversion functions needed for
+ * XML basic encoding and iconv() support.
+ *
+ * Related specs are
+ * rfc2044 (UTF-8 and UTF-16) F. Yergeau Alis Technologies
+ * [ISO-10646] UTF-8 and UTF-16 in Annexes
+ * [ISO-8859-1] ISO Latin-1 characters codes.
+ * [UNICODE] The Unicode Consortium, "The Unicode Standard --
+ * Worldwide Character Encoding -- Version 1.0", Addison-
+ * Wesley, Volume 1, 1991, Volume 2, 1992. UTF-8 is
+ * described in Unicode Technical Report #4.
+ * [US-ASCII] Coded Character Set--7-bit American Standard Code for
+ * Information Interchange, ANSI X3.4-1986.
+ *
+ * Copy: See Copyright for the status of this software.
+ *
+ * Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A.
+
+ /if not defined(XML_CHAR_ENCODING_H__)
+ /define XML_CHAR_ENCODING_H__
+
+ /include "libxmlrpg/xmlversion"
+ /include "libxmlrpg/xmlTypesC"
+
+ * xmlCharEncoding:
+ *
+ * Predefined values for some standard encodings.
+ * Libxml does not do beforehand translation on UTF8 and ISOLatinX.
+ * It also supports ASCII, ISO-8859-1, and UTF16 (LE and BE) by default.
+ *
+ * Anything else would have to be translated to UTF8 before being
+ * given to the parser itself. The BOM for UTF16 and the encoding
+ * declaration are looked at and a converter is looked for at that
+ * point. If not found the parser stops here as asked by the XML REC. A
+ * converter can be registered by the user
+ * xmlRegisterCharEncodingHandler but the current form doesn't allow
+ * stateful transcoding (a serious problem agreed !). If iconv has been
+ * found it will be used automatically and allow stateful transcoding,
+ * the simplest is then to be sure to enable iconv and to provide iconv
+ * libs for the encoding support needed.
+ *
+ * Note that the generic "UTF-16" is not a predefined value. Instead, only
+ * the specific UTF-16LE and UTF-16BE are present.
+
+ d xmlCharEncoding...
+ d s based(######typedef######)
+ d like(xmlCenum)
+ d XML_CHAR_ENCODING_ERROR... No encoding detected
+ d c -1
+ d XML_CHAR_ENCODING_NONE... No encoding detected
+ d c 0
+ d XML_CHAR_ENCODING_UTF8... UTF-8
+ d c 1
+ d XML_CHAR_ENCODING_UTF16LE... UTF-16 little endian
+ d c 2
+ d XML_CHAR_ENCODING_UTF16BE... UTF-16 big endian
+ d c 3
+ d XML_CHAR_ENCODING_UCS4LE... UCS-4 little endian
+ d c 4
+ d XML_CHAR_ENCODING_UCS4BE... UCS-4 big endian
+ d c 5
+ d XML_CHAR_ENCODING_EBCDIC... EBCDIC uh!
+ d c 6
+ d XML_CHAR_ENCODING_UCS4_2143... UCS-4 unusual order
+ d c 7
+ d XML_CHAR_ENCODING_UCS4_3412... UCS-4 unusual order
+ d c 8
+ d XML_CHAR_ENCODING_UCS2... UCS-2
+ d c 9
+ d XML_CHAR_ENCODING_8859_1... ISO-8859-1 ISOLatin1
+ d c 10
+ d XML_CHAR_ENCODING_8859_2... ISO-8859-2 ISOLatin2
+ d c 11
+ d XML_CHAR_ENCODING_8859_3... ISO-8859-3
+ d c 12
+ d XML_CHAR_ENCODING_8859_4... ISO-8859-4
+ d c 13
+ d XML_CHAR_ENCODING_8859_5... ISO-8859-5
+ d c 14
+ d XML_CHAR_ENCODING_8859_6... ISO-8859-6
+ d c 15
+ d XML_CHAR_ENCODING_8859_7... ISO-8859-7
+ d c 16
+ d XML_CHAR_ENCODING_8859_8... ISO-8859-8
+ d c 17
+ d XML_CHAR_ENCODING_8859_9... ISO-8859-9
+ d c 18
+ d XML_CHAR_ENCODING_2022_JP... ISO-2022-JP
+ d c 19
+ d XML_CHAR_ENCODING_SHIFT_JIS... Shift_JIS
+ d c 20
+ d XML_CHAR_ENCODING_EUC_JP... EUC-JP
+ d c 21
+ d XML_CHAR_ENCODING_ASCII... Pure ASCII
+ d c 22
+
+ * xmlCharEncodingInputFunc:
+ * @out: a pointer to an array of bytes to store the UTF-8 result
+ * @outlen: the length of @out
+ * @in: a pointer to an array of chars in the original encoding
+ * @inlen: the length of @in
+ *
+ * Take a block of chars in the original encoding and try to convert
+ * it to an UTF-8 block of chars out.
+ *
+ * Returns the number of bytes written, -1 if lack of space, or -2
+ * if the transcoding failed.
+ * The value of @inlen after return is the number of octets consumed
+ * if the return value is positive, else unpredictiable.
+ * The value of @outlen after return is the number of octets consumed.
+
+ d xmlCharEncodingInputFunc...
+ d s * based(######typedef######)
+ d procptr
+
+ * xmlCharEncodingOutputFunc:
+ * @out: a pointer to an array of bytes to store the result
+ * @outlen: the length of @out
+ * @in: a pointer to an array of UTF-8 chars
+ * @inlen: the length of @in
+ *
+ * Take a block of UTF-8 chars in and try to convert it to another
+ * encoding.
+ * Note: a first call designed to produce heading info is called with
+ * in = NULL. If stateful this should also initialize the encoder state.
+ *
+ * Returns the number of bytes written, -1 if lack of space, or -2
+ * if the transcoding failed.
+ * The value of @inlen after return is the number of octets consumed
+ * if the return value is positive, else unpredictiable.
+ * The value of @outlen after return is the number of octets produced.
+
+ d xmlCharEncodingOutputFunc...
+ d s * based(######typedef######)
+ d procptr
+
+ * Block defining the handlers for non UTF-8 encodings.
+ * If iconv is supported, there are two extra fields.
+
+ /if defined(LIBXML_ICU_ENABLED)
+ d uconv_t ds based(######typedef######)
+ d align qualified
+ d uconv * UConverter *
+ d utf8 * UConverter *
+ /endif
+
+ d xmlCharEncodingHandlerPtr...
+ d s * based(######typedef######)
+
+ d xmlCharEncodingHandler...
+ d ds based(xmlCharEncodingHandlerPtr)
+ d align qualified
+ d name * char *
+ d input like(xmlCharEncodingInputFunc)
+ d output like(xmlCharEncodingOutputFunc)
+ *
+ /if defined(LIBXML_ICONV_ENABLED)
+ d iconv_in * iconv_t
+ d iconv_out * iconv_t
+ /endif LIBXML_ICONV_ENABLED
+ *
+ /if defined(LIBXML_ICU_ENABLED)
+ d uconv_in * uconv_t *
+ d uconv_out * uconv_t *
+ /endif LIBXML_ICU_ENABLED
+
+ /include "libxmlrpg/tree"
+
+ * Interfaces for encoding handlers.
+
+ d xmlInitCharEncodingHandlers...
+ d pr extproc(
+ d 'xmlInitCharEncodingHandlers')
+
+ d xmlCleanupCharEncodingHandlers...
+ d pr extproc(
+ d 'xmlCleanupCharEncodingHandlers')
+
+ d xmlRegisterCharEncodingHandler...
+ d pr extproc(
+ d 'xmlRegisterCharEncodingHandler')
+ d handler value like(xmlCharEncodingHandlerPtr)
+
+ d xmlGetCharEncodingHandler...
+ d pr extproc('xmlGetCharEncodingHandler')
+ d like(xmlCharEncodingHandlerPtr)
+ d enc value like(xmlCharEncoding)
+
+ d xmlFindCharEncodingHandler...
+ d pr extproc('xmlFindCharEncodingHandler')
+ d like(xmlCharEncodingHandlerPtr)
+ d name * value options(*string) const char *
+
+ d xmlNewCharEncodingHandler...
+ d pr extproc('xmlNewCharEncodingHandler')
+ d like(xmlCharEncodingHandlerPtr)
+ d name * value options(*string) const char *
+ d input value like(xmlCharEncodingInputFunc)
+ d output value like(xmlCharEncodingOutputFunc)
+
+ * Interfaces for encoding names and aliases.
+
+ d xmlAddEncodingAlias...
+ d pr extproc('xmlAddEncodingAlias')
+ d like(xmlCint)
+ d name * value options(*string) const char *
+ d alias * value options(*string) const char *
+
+ d xmlDelEncodingAlias...
+ d pr extproc('xmlDelEncodingAlias')
+ d like(xmlCint)
+ d alias * value options(*string) const char *
+
+ d xmlGetEncodingAlias...
+ d pr * extproc('xmlGetEncodingAlias') const char *
+ d alias * value options(*string) const char *
+
+ d xmlCleanupEncodingAliases...
+ d pr extproc('xmlCleanupEncodingAliases')
+
+ d xmlParseCharEncoding...
+ d pr extproc('xmlParseCharEncoding')
+ d like(xmlCharEncoding)
+ d name * value options(*string) const char *
+
+ d xmlGetCharEncodingName...
+ d pr * extproc('xmlGetCharEncodingName') const char *
+ d enc value like(xmlCharEncoding)
+
+ * Interfaces directly used by the parsers.
+
+ d xmlDetectCharEncoding...
+ d pr extproc('xmlDetectCharEncoding')
+ d like(xmlCharEncoding)
+ d in * value options(*string) const unsigned char*
+ d len value like(xmlCint)
+
+ d xmlCharEncOutFunc...
+ d pr extproc('xmlCharEncOutFunc')
+ d like(xmlCint)
+ d handler likeds(xmlCharEncodingHandler)
+ d out value like(xmlBufferPtr)
+ d in value like(xmlBufferPtr)
+
+ d xmlCharEncInFunc...
+ d pr extproc('xmlCharEncInFunc')
+ d like(xmlCint)
+ d handler likeds(xmlCharEncodingHandler)
+ d out value like(xmlBufferPtr)
+ d in value like(xmlBufferPtr)
+
+ d xmlCharEncFirstLine...
+ d pr extproc('xmlCharEncFirstLine')
+ d like(xmlCint)
+ d handler likeds(xmlCharEncodingHandler)
+ d out value like(xmlBufferPtr)
+ d in value like(xmlBufferPtr)
+
+ d xmlCharEncCloseFunc...
+ d pr extproc('xmlCharEncCloseFunc')
+ d like(xmlCint)
+ d handler likeds(xmlCharEncodingHandler)
+
+ * Export a few useful functions
+
+ /if defined(LIBXML_OUTPUT_ENABLED)
+ d UTF8Toisolat1 pr extproc('UTF8Toisolat1')
+ d like(xmlCint)
+ d out 65535 options(*varsize) unsigned char (*)
+ d outlen like(xmlCint)
+ d in * value options(*string) const unsigned char*
+ d inlen like(xmlCint)
+
+ /endif LIBXML_OUTPUT_ENABLD
+
+ d isolat1ToUTF8 pr extproc('isolat1ToUTF8')
+ d like(xmlCint)
+ d out 65535 options(*varsize) unsigned char (*)
+ d outlen like(xmlCint)
+ d in * value options(*string) const unsigned char*
+ d inlen like(xmlCint)
+
+ /endif XML_CHAR_ENCODING_H
diff --git a/libxml2/os400/libxmlrpg/entities.rpgle b/libxml2/os400/libxmlrpg/entities.rpgle
new file mode 100644
index 0000000..eeec1b6
--- /dev/null
+++ b/libxml2/os400/libxmlrpg/entities.rpgle
@@ -0,0 +1,176 @@
+ * Summary: interface for the XML entities handling
+ * Description: this module provides some of the entity API needed
+ * for the parser and applications.
+ *
+ * Copy: See Copyright for the status of this software.
+ *
+ * Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A.
+
+ /if not defined(XML_ENTITIES_H__)
+ /define XML_ENTITIES_H__
+
+ /include "libxmlrpg/xmlversion"
+ /include "libxmlrpg/xmlTypesC"
+ /include "libxmlrpg/tree"
+
+ * The different valid entity types.
+
+ d xmlEntityType s based(######typedef######)
+ d like(xmlCenum)
+ d XML_INTERNAL_GENERAL_ENTITY...
+ d c 1
+ d XML_EXTERNAL_GENERAL_PARSED_ENTITY...
+ d c 2
+ d XML_EXTERNAL_GENERAL_UNPARSED_ENTITY...
+ d c 3
+ d XML_INTERNAL_PARAMETER_ENTITY...
+ d c 4
+ d XML_EXTERNAL_PARAMETER_ENTITY...
+ d c 5
+ d XML_INTERNAL_PREDEFINED_ENTITY...
+ d c 6
+
+ * An unit of storage for an entity, contains the string, the value
+ * and the linkind data needed for the linking in the hash table.
+
+ d xmlEntity ds based(xmlEntityPtr)
+ d align qualified
+ d #private * void *
+ d type like(xmlElementType) XML_ENTITY_DECL
+ d name * const xmlChar *
+ d children like(xmlNodePtr) First child link
+ d last like(xmlNodePtr) Last child link
+ d parent like(xmlDtdPtr) -> DTD
+ d next like(xmlNodePtr) next sibling link
+ d prev like(xmlNodePtr) prev sibling link
+ d doc like(xmlDocPtr) containing document
+ d orig * xmlChar *
+ d content * xmlChar *
+ d length like(xmlCint) content length
+ d etype like(xmlEntityType) The entity type
+ d ExternalID * const xmlChar *
+ d SystemlID * const xmlChar *
+ d nexte like(xmlEntityPtr) unused
+ d URI * const xmlChar *
+ d owner like(xmlCint) Owns children ?
+ d checked like(xmlCint) Content checked ?
+
+ * All entities are stored in an hash table.
+ * There is 2 separate hash tables for global and parameter entities.
+
+ d xmlEntitiesTablePtr...
+ d s * based(######typedef######)
+
+ * External functions:
+
+ /if defined(LIBXML_LEGACY_ENABLED)
+ d xmlInitializePredefinedEntities...
+ d pr extproc(
+ d 'xmlInitializePredefinedEntities')
+ /endif LIBXML_LEGACY_ENABLD
+
+ d xmlNewEntity pr extproc('xmlNewEntity')
+ d like(xmlEntityPtr)
+ d doc value like(xmlDocPtr)
+ d name * value options(*string) const xmlChar *
+ d type value like(xmlCint)
+ d ExternalID * value options(*string) const xmlChar *
+ d SystemID * value options(*string) const xmlChar *
+ d content * value options(*string) const xmlChar *
+
+ d xmlAddDocEntity...
+ d pr extproc('xmlAddDocEntity')
+ d like(xmlEntityPtr)
+ d doc value like(xmlDocPtr)
+ d name * value options(*string) const xmlChar *
+ d type value like(xmlCint)
+ d ExternalID * value options(*string) const xmlChar *
+ d SystemID * value options(*string) const xmlChar *
+ d content * value options(*string) const xmlChar *
+
+ d xmlAddDtdEntity...
+ d pr extproc('xmlAddDtdEntity')
+ d like(xmlEntityPtr)
+ d doc value like(xmlDocPtr)
+ d name * value options(*string) const xmlChar *
+ d type value like(xmlCint)
+ d ExternalID * value options(*string) const xmlChar *
+ d SystemID * value options(*string) const xmlChar *
+ d content * value options(*string) const xmlChar *
+
+ d xmlGetPredefinedEntity...
+ d pr extproc('xmlGetPredefinedEntity')
+ d like(xmlEntityPtr)
+ d name * value options(*string) const xmlChar *
+
+ d xmlGetDocEntity...
+ d pr extproc('xmlGetDocEntity')
+ d like(xmlEntityPtr)
+ d doc value like(xmlDocPtr)
+ d name * value options(*string) const xmlChar *
+
+ d xmlGetDtdEntity...
+ d pr extproc('xmlGetDtdEntity')
+ d like(xmlEntityPtr)
+ d doc value like(xmlDocPtr)
+ d name * value options(*string) const xmlChar *
+
+ d xmlGetParameterEntity...
+ d pr extproc('xmlGetParameterEntity')
+ d like(xmlEntityPtr)
+ d doc value like(xmlDocPtr)
+ d name * value options(*string) const xmlChar *
+
+
+ /if defined(LIBXML_LEGACY_ENABLED)
+ d xmlEncodeEntities...
+ d pr * extproc('xmlEncodeEntities') xmlChar *
+ d doc value like(xmlDocPtr)
+ d input * value options(*string) const xmlChar *
+ /endif LIBXML_LEGACY_ENABLD
+
+ d xmlEncodeEntitiesReentrant...
+ d pr * extproc( xmlChar *
+ d 'xmlEncodeEntitiesReentrant')
+ d doc value like(xmlDocPtr)
+ d input * value options(*string) const xmlChar *
+XMLPU
+ d xmlEncodeSpecialChars...
+ d pr * extproc('xmlSpecialChars') xmlChar *
+ d doc value like(xmlDocPtr)
+ d input * value options(*string) const xmlChar *
+XMLPU
+ d xmlCreateEntitiesTable...
+ d pr extproc('xmlCreateEntitiesTable')
+ d like(xmlEntitiesTablePtr)
+
+ /if defined(LIBXML_TREE_ENABLED)
+ d xmlCopyEntitiesTable...
+ d pr extproc('xmlCopyEntitiesTable')
+ d like(xmlEntitiesTablePtr)
+ d table value like(xmlEntitiesTablePtr)
+ /endif LIBXML_TREE_ENABLED
+
+ d xmlFreeEntitiesTable...
+ d pr extproc('xmlFreeEntitiesTable')
+ d table value like(xmlEntitiesTablePtr)
+XMLPU
+ /if defined(LIBXML_OUTPUT_ENABLED)
+ d xmlDumpEntitiesTable...
+ d pr extproc('xmlDumpEntitiesTable')
+ d buf value like(xmlBufferPtr)
+ d table value like(xmlEntitiesTablePtr)
+XMLPU
+ d xmlDumpEntityDecl...
+ d pr extproc('xmlDumpEntityDecl')
+ d buf value like(xmlBufferPtr)
+ d ent value like(xmlEntityPtr)
+ /endif LIBXML_OUTPUT_ENABLD
+
+ /if defined(LIBXML_LEGACY_ENABLED)
+ d xmlCleanupPredefinedEntities...
+ d pr extproc(
+XMLPUd 'xmlCleanupPredefinedEntities')
+ /endif LIBXML_LEGACY_ENABLD
+
+ /endif XML_ENTITIES_H__
diff --git a/libxml2/os400/libxmlrpg/globals.rpgle b/libxml2/os400/libxmlrpg/globals.rpgle
new file mode 100644
index 0000000..3fe3a9b
--- /dev/null
+++ b/libxml2/os400/libxmlrpg/globals.rpgle
@@ -0,0 +1,581 @@
+ * Summary: interface for all global variables of the library
+ * Description: all the global variables and thread handling for
+ * those variables is handled by this module.
+ *
+ * The bottom of this file is automatically generated by build_glob.py
+ * based on the description file global.data
+ *
+ * Copy: See Copyright for the status of this software.
+ *
+ * Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A.
+
+ /if not defined(XML_GLOBALS_H)
+ /define XML_GLOBALS_H
+
+ /include "libxmlrpg/xmlversion"
+ /include "libxmlrpg/xmlTypesC"
+ /include "libxmlrpg/parser"
+ /include "libxmlrpg/xmlerror"
+ /include "libxmlrpg/SAX"
+ /include "libxmlrpg/SAX2"
+ /include "libxmlrpg/xmlmemory"
+
+ d xmlInitGlobals pr extproc('xmlInitGlobals')
+
+ d xmlCleanupGlobals...
+ d pr extproc('xmlCleanupGlobals')
+
+ * xmlParserInputBufferCreateFilenameFunc:
+ * @URI: the URI to read from
+ * @enc: the requested source encoding
+ *
+ * Signature for the function doing the lookup for a suitable input method
+ * corresponding to an URI.
+ *
+ * Returns the new xmlParserInputBufferPtr in case of success or NULL if no
+ * method was found.
+
+ d xmlParserInputBufferCreateFilenameFunc...
+ d s * based(######typedef######)
+ d procptr
+
+ * xmlOutputBufferCreateFilenameFunc:
+ * @URI: the URI to write to
+ * @enc: the requested target encoding
+ *
+ * Signature for the function doing the lookup for a suitable output method
+ * corresponding to an URI.
+ *
+ * Returns the new xmlOutputBufferPtr in case of success or NULL if no
+ * method was found.
+
+ d xmlOutputBufferCreateFilenameFunc...
+ d s * based(######typedef######)
+ d procptr
+
+ d xmlParserInputBufferCreateFilenameDefault...
+ d pr extproc('xmlParserInputBufferCreate+
+ d FilenameDefault')
+ d like(xmlParserInputBuffer...
+ d CreateFilenameFunc)
+ d func value like(xmlParserInputBuffer...
+ d CreateFilenameFunc)
+
+ d xmlOutputBufferCreateFilenameDefault...
+ d pr extproc('xmlOutputBufferCreate+
+ d FilenameDefault')
+ d like(xmlOutputBuffer...
+ d CreateFilenameFunc)
+ d func value like(xmlOutputBuffer...
+ d CreateFilenameFunc)
+
+ * xmlRegisterNodeFunc:
+ * @node: the current node
+ *
+ * Signature for the registration callback of a created node
+
+ d xmlRegisterNodeFunc...
+ d s * based(######typedef######)
+ d procptr
+
+ * xmlDeregisterNodeFunc:
+ * @node: the current node
+ *
+ * Signature for the deregistration callback of a discarded node
+
+ d xmlDeregisterNodeFunc...
+ d s * based(######typedef######)
+ d procptr
+
+ d xmlGlobalStatePtr...
+ d s * based(######typedef######)
+
+ d xmlGlobalState ds based(xmlGlobalStatePtr)
+ d align qualified
+ d xmlParserVersion...
+ d * const char *
+ d xmlDefaultSAXLocator...
+ d likeds(xmlSAXLocator)
+ d xmlDefaultSAXHandler...
+ d likeds(xmlSAXHandlerV1)
+ d docbDefaultSAXHandler...
+ d likeds(xmlSAXHandlerV1)
+ d htmlDefaultSAXHandler...
+ d likeds(xmlSAXHandlerV1)
+ d xmlFree like(xmlFreeFunc)
+ d xmlMalloc like(xmlMallocFunc)
+ d xmlMemStrdup like(xmlStrdupFunc)
+ d xmlRealloc like(xmlReallocFunc)
+ d xmlGenericError...
+ d like(xmlGenericErrorFunc)
+ d xmlStructuredError...
+ d like(xmlStructuredErrorFunc)
+ d xmlGenericErrorContext...
+ d * void *
+ d oldXMLWDcompatibility...
+ d like(xmlCint)
+ d xmlBufferAllocScheme...
+ d like(xmlBufferAllocationScheme)
+ d xmlDefaultBufferSize...
+ d like(xmlCint)
+ d xmlSubstituteEntitiesDefaultValue...
+ d like(xmlCint)
+ d xmlDoValidityCheckingDefaultValue...
+ d like(xmlCint)
+ d xmlGetWarningsDefaultValue...
+ d like(xmlCint)
+ d xmlKeepBlanksDefaultValue...
+ d like(xmlCint)
+ d xmlLineNumbersDefaultValue...
+ d like(xmlCint)
+ d xmlLoadExtDtdDefaultValue...
+ d like(xmlCint)
+ d xmlParserDebugEntities...
+ d like(xmlCint)
+ d xmlPedanticParserDefaultValue...
+ d like(xmlCint)
+ d xmlSaveNoEmptyTags...
+ d like(xmlCint)
+ d xmlIndentTreeOutput...
+ d like(xmlCint)
+ d xmlTreeIndentString...
+ d * const char *
+ d xmlRegisterNodeDefaultValue...
+ d like(xmlRegisterNodeFunc)
+ d xmlDeregisterNodeDefaultValue...
+ d like(xmlDeregisterNodeFunc)
+ d xmlMallocAtomic...
+ d like(xmlMallocFunc)
+ d xmlLastError likeds(xmlError)
+ d xmlParserInputBufferCreateFilenameValue...
+ d like(xmlParserInputBuffer...
+ d CreateFilenameFunc)
+ d xmlOutputBufferCreateFilenameValue...
+ d like(xmlOutputBuffer...
+ d CreateFilenameFunc)
+ d xmlStructuredErrorContext...
+ d * void *
+
+ /include "libxmlrpg/threads"
+
+ d xmlInitializeGlobalState...
+ d pr extproc('xmlInitializeGlobalState')
+ d qs value like(xmlGlobalStatePtr)
+
+ d xmlThrDefSetGenericErrorFunc...
+ d pr extproc(
+ d 'xmlThrDefSetGenericErrorFunc')
+ d ctx * value void *
+ d handler value like(xmlGenericErrorFunc)
+
+ d xmlThrDefSetStructuredErrorFunc...
+ d pr extproc(
+ d 'xmlThrDefSetStructuredErrorFunc')
+ d ctx * value void *
+ d handler value like(xmlStructuredErrorFunc)
+
+ d xmlRegisterNodeDefault...
+ d pr extproc('xmlRegisterNodeDefault')
+ d like(xmlRegisterNodeFunc)
+ d func value like(xmlRegisterNodeFunc)
+
+ d xmlThrDefRegisterNodeDefault...
+ d pr extproc(
+ d 'xmlThrDefRegisterNodeDefault')
+ d like(xmlRegisterNodeFunc)
+ d func value like(xmlRegisterNodeFunc)
+
+ d xmlDeregisterNodeDefault...
+ d pr extproc('xmlDeregisterNodeDefault')
+ d like(xmlDeregisterNodeFunc)
+ d func value like(xmlDeregisterNodeFunc)
+
+ d xmlThrDefDeregisterNodeDefault...
+ d pr extproc(
+ d 'xmlThrDefDeregisterNodeDefault')
+ d like(xmlDeregisterNodeFunc)
+ d func value like(xmlDeregisterNodeFunc)
+
+ d xmlThrDefOutputBufferCreateFilenameDefault...
+ d pr extproc('xmlThrDefOutputBuffer+
+ d CreateFilenameDefault')
+ d like(xmlOutputBuffer...
+ d CreateFilenameFunc)
+ d func value like(xmlOutputBuffer...
+ d CreateFilenameFunc)
+
+ d xmlThrDefParserInputBufferCreateFilenameDefault...
+ d pr extproc('xmlThrDefParserInputBuffer+
+ d CreateFilenameDefault')
+ d like(xmlParserInputBuffer...
+ d CreateFilenameFunc)
+ d func value like(xmlParserInputBuffer...
+ d CreateFilenameFunc)
+
+ /if defined(LIBXML_DOCB_ENABLED)
+ d get_docbDefaultSAXHandler...
+ d pr extproc(
+ d '__get_docbDefaultSAXHandler')
+ d likeds(xmlSAXHandlerV1)
+
+ d set_docbDefaultSAXHandler...
+ d pr extproc(
+ d '__set_docbDefaultSAXHandler')
+ d value value likeds(xmlSAXHandlerV1)
+ /endif
+
+ /if defined(LIBXML_HTML_ENABLED)
+ d get_htmlDefaultSAXHandler...
+ d pr extproc(
+ d '__get_htmlDefaultSAXHandler')
+ d likeds(xmlSAXHandlerV1)
+
+ d set_htmlDefaultSAXHandler...
+ d pr extproc(
+ d '__set_htmlDefaultSAXHandler')
+ d value value likeds(xmlSAXHandlerV1)
+ /endif
+
+ d get_xmlLastError...
+ d pr extproc('__get_xmlLastError')
+ d likeds(xmlError)
+
+ d set_xmlLastError...
+ d pr extproc('__set_xmlLastError')
+ d value value likeds(xmlError)
+
+ d get_oldXMLWDcompatibility...
+ d pr extproc(
+ d '__get_oldXMLWDcompatibility')
+ d like(xmlCint)
+
+ d set_oldXMLWDcompatibility...
+ d pr extproc(
+ d '__set_oldXMLWDcompatibility')
+ d value value like(xmlCint)
+
+ d get_xmlBufferAllocScheme...
+ d pr extproc('__get_xmlBufferAllocScheme')
+ d like(xmlBufferAllocationScheme)
+
+ d set_xmlBufferAllocScheme...
+ d pr extproc('__set_xmlBufferAllocScheme')
+ d value value like(xmlBufferAllocationScheme)
+
+ d xmlThrDefBufferAllocScheme...
+ d pr extproc('xmlThrDefBufferAllocScheme')
+ d like(xmlBufferAllocationScheme)
+ d v value like(xmlBufferAllocationScheme)
+
+ d get_xmlDefaultBufferSize...
+ d pr extproc('__get_xmlDefaultBufferSize')
+ d like(xmlCint)
+
+ d set_xmlDefaultBufferSize...
+ d pr extproc('__set_xmlDefaultBufferSize')
+ d value value like(xmlCint)
+
+ d xmlThrDefDefaultBufferSize...
+ d pr extproc('xmlThrDefDefaultBufferSize')
+ d like(xmlCint)
+ d v value like(xmlCint)
+
+ d get_xmlDefaultSAXHandler...
+ d pr extproc('__get_xmlDefaultSAXHandler')
+ d likeds(xmlSAXHandlerV1)
+
+ d set_xmlDefaultSAXHandler...
+ d pr extproc('__set_xmlDefaultSAXHandler')
+ d value value likeds(xmlSAXHandlerV1)
+
+ d get_xmlDefaultSAXLocator...
+ d pr extproc('__get_xmlDefaultSAXLocator')
+ d likeds(xmlSAXLocator)
+
+ d set_xmlDefaultSAXLocator...
+ d pr extproc('__set_xmlDefaultSAXLocator')
+ d value value likeds(xmlSAXLocator)
+
+ d get_xmlDoValidityCheckingDefaultValue...
+ d pr extproc('__get_xmlDoValidity+
+ d CheckingDefaultValue')
+ d like(xmlCint)
+
+ d set_xmlDoValidityCheckingDefaultValue...
+ d pr extproc('__set_xmlDoValidity+
+ d CheckingDefaultValue')
+ d value value like(xmlCint)
+
+ d xmlThrDefDoValidityCheckingDefaultValue...
+ d pr extproc('xmlThrDefDoValidity+
+ d CheckingDefaultValue')
+ d like(xmlCint)
+ d v value like(xmlCint)
+
+ d get_xmlGenericError...
+ d pr extproc('__get_xmlGenericError')
+ d like(xmlGenericErrorFunc)
+
+ d set_xmlGenericError...
+ d pr extproc('__set_xmlGenericError')
+ d func value like(xmlGenericErrorFunc)
+
+ d get_xmlStructuredError...
+ d pr extproc('__get_xmlStructuredError')
+ d like(xmlStructuredErrorFunc)
+
+ d set_xmlStructuredError...
+ d pr extproc('__set_xmlStructuredError')
+ d func value like(xmlStructuredErrorFunc)
+
+ d xmlStructuredError...
+ d pr extproc('__call_xmlStructuredError')
+ d userData * value options(*string) void *
+ d error value like(xmlErrorPtr)
+
+ d get_xmlGenericErrorContext...
+ d pr extproc(
+ d '__get_xmlGenericErrorContext')
+ d * void *
+
+ d set_xmlGenericErrorContext...
+ d pr extproc(
+ d '__set_xmlGenericErrorContext')
+ d value * value options(*string) void *
+
+ d get_xmlStructuredErrorContext...
+ d pr extproc(
+ d '__get_xmlStructuredErrorContext')
+ d * void *
+
+ d set_xmlStructuredErrorContext...
+ d pr extproc(
+ d '__set_xmlStructuredErrorContext')
+ d value * value options(*string) void *
+
+ d get_xmlGetWarningsDefaultValue...
+ d pr extproc(
+ d '__get_xmlGetWarningsDefaultValue')
+ d like(xmlCint)
+
+ d set_xmlGetWarningsDefaultValue...
+ d pr extproc(
+ d '__set_xmlGetWarningsDefaultValue')
+ d value value like(xmlCint)
+
+ d xmlThrDefGetWarningsDefaultValue...
+ d pr extproc(
+ d 'xmlThrDefGetWarningsDefaultValue')
+ d like(xmlCint)
+ d v value like(xmlCint)
+
+ d get_xmlIndentTreeOutput...
+ d pr extproc('__get_xmlIndentTreeOutput')
+ d like(xmlCint)
+
+ d set_xmlIndentTreeOutput...
+ d pr extproc('__set_xmlIndentTreeOutput')
+ d value value like(xmlCint)
+
+ d xmlThrDefIndentTreeOutput...
+ d pr extproc('xmlThrDefIndentTreeOutput')
+ d like(xmlCint)
+ d v value like(xmlCint)
+
+ d get_xmlTreeIndentString...
+ d pr * extproc('__get_xmlTreeIndentString') const char *
+
+ d set_xmlTreeIndentString...
+ d pr extproc('__set_xmlTreeIndentString')
+ d value * value options(*string) const char *
+
+ d xmlThrDefTreeIndentString...
+ d pr * extproc('xmlThrDefTreeIndentString') const char *
+ d v * value options(*string) const char *
+
+ d get_xmlKeepBlanksDefaultValue...
+ d pr extproc(
+ d '__get_xmlKeepBlanksDefaultValue')
+ d like(xmlCint)
+
+ d set_xmlKeepBlanksDefaultValue...
+ d pr extproc(
+ d '__set_xmlKeepBlanksDefaultValue')
+ d value value like(xmlCint)
+
+ d xmlThrDefKeepBlanksDefaultValue...
+ d pr extproc(
+ d 'xmlThrDefKeepBlanksDefaultValue')
+ d like(xmlCint)
+ d v value like(xmlCint)
+
+ d get_xmlLineNumbersDefaultValue...
+ d pr extproc(
+ d '__get_xmlLineNumbersDefaultValue')
+ d like(xmlCint)
+
+ d set_xmlLineNumbersDefaultValue...
+ d pr extproc(
+ d '__set_xmlLineNumbersDefaultValue')
+ d value value like(xmlCint)
+
+ d xmlThrDefLineNumbersDefaultValue...
+ d pr extproc(
+ d 'xmlThrDefLineNumbersDefaultValue')
+ d like(xmlCint)
+ d v value like(xmlCint)
+
+ d get_xmlLoadExtDtdDefaultValue...
+ d pr extproc(
+ d '__get_xmlLoadExtDtdDefaultValue')
+ d like(xmlCint)
+
+ d set_xmlLoadExtDtdDefaultValue...
+ d pr extproc(
+ d '__set_xmlLoadExtDtdDefaultValue')
+ d value value like(xmlCint)
+
+ d xmlThrDefLoadExtDtdDefaultValue...
+ d pr extproc(
+ d 'xmlThrDefLoadExtDtdDefaultValue')
+ d like(xmlCint)
+ d v value like(xmlCint)
+
+ d get_xmlParserDebugEntities...
+ d pr extproc(
+ d '__get_xmlParserDebugEntities')
+ d like(xmlCint)
+
+ d set_xmlParserDebugEntities...
+ d pr extproc(
+ d '__set_xmlParserDebugEntities')
+ d value value like(xmlCint)
+
+ d xmlThrDefParserDebugEntities...
+ d pr extproc(
+ d 'xmlThrDefParserDebugEntities')
+ d like(xmlCint)
+ d v value like(xmlCint)
+
+ d get_xmlParserVersion...
+ d pr * extproc('__get_xmlParserVersion') const char *
+
+ d set_xmlParserVersion...
+ d pr extproc('__set_xmlParserVersion')
+ d value * value options(*string) const char *
+
+ d get_xmlPedanticParserDefaultValue...
+ d pr extproc('__get_xmlPedantic+
+ d ParserDefaultValue')
+ d like(xmlCint)
+
+ d set_xmlPedanticParserDefaultValue...
+ d pr extproc('__set_xmlPedantic+
+ d ParserDefaultValue')
+ d value value like(xmlCint)
+
+ d xmlThrDefPedanticParserDefaultValue...
+ d pr extproc('xmlThrDefPedantic+
+ d ParserDefaultValue')
+ d like(xmlCint)
+ d v value like(xmlCint)
+
+ d get_xmlSaveNoEmptyTags...
+ d pr extproc('__get_xmlSaveNoEmptyTags')
+ d like(xmlCint)
+
+ d set_xmlSaveNoEmptyTags...
+ d pr extproc('__set_xmlSaveNoEmptyTags')
+ d value value like(xmlCint)
+
+ d xmlThrDefSaveNoEmptyTags...
+ d pr extproc('xmlThrDefSaveNoEmptyTags')
+ d like(xmlCint)
+ d v value like(xmlCint)
+
+ d get_xmlSubstituteEntitiesDefaultValue...
+ d pr extproc('__get_xmlSubstitute+
+ d EntitiesDefaultValue')
+ d like(xmlCint)
+
+ d set_xmlSubstituteEntitiesDefaultValue...
+ d pr extproc('__set_xmlSubstitute+
+ d EntitiesDefaultValue')
+ d value value like(xmlCint)
+
+ d xmlThrDefSubstituteEntitiesDefaultValue...
+ d pr extproc('xmlThrDefSubstitute+
+ d EntitiesDefaultValue')
+ d like(xmlCint)
+ d v value like(xmlCint)
+
+ d get_xmlRegisterNodeDefaultValue...
+ d pr extproc('__get_xmlRegisterNode+
+ d DefaultValue')
+ d like(xmlRegisterNodeFunc)
+
+ d set_xmlRegisterNodeDefaultValue...
+ d pr extproc('__set_xmlRegisterNode+
+ d DefaultValue')
+ d value value like(xmlRegisterNodeFunc)
+
+ d xmlRegisterNodeDefaultValue...
+ d pr extproc('__call_xmlRegisterNode+
+ d DefaultValue')
+ d node value like(xmlNodePtr)
+
+ d get_xmlDeregisterNodeDefaultValue...
+ d pr extproc('__get_xmlDeregisterNode+
+ d DefaultValue')
+ d like(xmlDeregisterNodeFunc)
+
+ d set_xmlDeregisterNodeDefaultValue...
+ d pr extproc('__set_xmlDeregisterNode+
+ d DefaultValue')
+ d value value like(xmlDeregisterNodeFunc)
+
+ d xmlDeregisterNodeDefaultValue...
+ d pr extproc('__call_xmlDeregisterNode+
+ d DefaultValue')
+ d node value like(xmlNodePtr)
+
+ d get_xmlParserInputBufferCreateFilenameValue...
+ d pr extproc('__get_xmlParserInputBuffer+
+ d CreateFilenameValue')
+ d like(xmlParserInputBuffer...
+ d CreateFilenameFunc)
+
+ d set_xmlParserInputBufferCreateFilenameValue...
+ d pr extproc('__set_xmlParserInputBuffer+
+ d CreateFilenameValue')
+ d value value like(xmlParserInputBuffer...
+ d CreateFilenameFunc)
+
+ d xmlParserInputBufferCreateFilenameValue...
+ d pr extproc('__call_xmlParserInputBuffer+
+ d CreateFilenameValue')
+ d like(xmlParserInputBufferPtr)
+ d URI * value options(*string) const char *
+ d enc value like(xmlCharEncoding)
+
+ d get_xmlOutputBufferCreateFilenameValue...
+ d pr extproc('__get_xmlOutputBuffer+
+ d CreateFilenameValue')
+ d like(
+ d xmlOutputBufferCreateFilenameFunc)
+
+ d set_xmlOutputBufferCreateFilenameValue...
+ d pr extproc('__set_xmlOutputBuffer+
+ d CreateFilenameValue')
+ d value value like(
+ d xmlOutputBufferCreateFilenameFunc)
+
+ d xmlOutputBufferCreateFilenameValue...
+ d pr extproc('__call_xmlOutputBuffer+
+ d CreateFilenameValue')
+ d like(xmlOutputBufferPtr)
+ d URI * value options(*string) const char *
+ d encoder value like(xmlCharEncodingHandlerPtr)
+ d compression value like(xmlCint)
+
+ /endif XML_GLOBALS_H
diff --git a/libxml2/os400/libxmlrpg/hash.rpgle b/libxml2/os400/libxmlrpg/hash.rpgle
new file mode 100644
index 0000000..b2169df
--- /dev/null
+++ b/libxml2/os400/libxmlrpg/hash.rpgle
@@ -0,0 +1,243 @@
+ * Summary: Chained hash tables
+ * Description: This module implements the hash table support used in
+ * various places in the library.
+ *
+ * Copy: See Copyright for the status of this software.
+ *
+ * Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A.
+
+ /if not defined(XML_HASH_H__)
+ /define XML_HASH_H__
+
+ /include "libxmlrpg/xmlTypesC"
+
+ * The hash table.
+
+ d xmlHashTablePtr...
+ d s * based(######typedef######)
+
+ /include "libxmlrpg/xmlversion"
+ /include "libxmlrpg/parser"
+ /include "libxmlrpg/dict"
+
+ * function types:
+
+ * xmlHashDeallocator:
+ * @payload: the data in the hash
+ * @name: the name associated
+ *
+ * Callback to free data from a hash.
+
+ d xmlHashDeallocator...
+ d s * based(######typedef######)
+ d procptr
+
+ * xmlHashCopier:
+ * @payload: the data in the hash
+ * @name: the name associated
+ *
+ * Callback to copy data from a hash.
+ *
+ * Returns a copy of the data or NULL in case of error.
+
+ d xmlHashCopier s * based(######typedef######)
+ d procptr
+
+ * xmlHashScanner:
+ * @payload: the data in the hash
+ * @data: extra scannner data
+ * @name: the name associated
+ *
+ * Callback when scanning data in a hash with the simple scanner.
+
+ d xmlHashScanner s * based(######typedef######)
+ d procptr
+
+ * xmlHashScannerFull:
+ * @payload: the data in the hash
+ * @data: extra scannner data
+ * @name: the name associated
+ * @name2: the second name associated
+ * @name3: the third name associated
+ *
+ * Callback when scanning data in a hash with the full scanner.
+
+ d xmlHashScannerFull...
+ d s * based(######typedef######)
+ d procptr
+
+ * Constructor and destructor.
+
+ d xmlHashCreate pr extproc('xmlHashCreate')
+ d like(xmlHashTablePtr)
+ d size value like(xmlCint)
+
+ d xmlHashCreateDict...
+ d pr extproc('xmlHashCreateDict')
+ d like(xmlHashTablePtr)
+ d size value like(xmlCint)
+ d dict value like(xmlDictPtr)
+
+ d xmlHashFree pr extproc('xmlHashFree')
+ d table value like(xmlHashTablePtr)
+ d f value like(xmlHashDeallocator)
+
+ * Add a new entry to the hash table.
+
+ d xmlHashAddEntry...
+ d pr extproc('xmlHashAddEntry')
+ d like(xmlCint)
+ d table value like(xmlHashTablePtr)
+ d name * value options(*string) const xmlChar *
+ d userdata * value options(*string) void *
+
+ d xmlHashUpdateEntry...
+ d pr extproc('xmlHashUpdateEntry')
+ d like(xmlCint)
+ d table value like(xmlHashTablePtr)
+ d name * value options(*string) const xmlChar *
+ d userdata * value options(*string) void *
+ d f value like(xmlHashDeallocator)
+
+ d xmlHashAddEntry2...
+ d pr extproc('xmlHashAddEntry2')
+ d like(xmlCint)
+ d table value like(xmlHashTablePtr)
+ d name * value options(*string) const xmlChar *
+ d name2 * value options(*string) const xmlChar *
+ d userdata * value options(*string) void *
+
+ d xmlHashUpdateEntry2...
+ d pr extproc('xmlHashUpdateEntry2')
+ d like(xmlCint)
+ d table value like(xmlHashTablePtr)
+ d name * value options(*string) const xmlChar *
+ d name2 * value options(*string) const xmlChar *
+ d userdata * value options(*string) void *
+ d f value like(xmlHashDeallocator)
+
+ d xmlHashAddEntry3...
+ d pr extproc('xmlHashAddEntry3')
+ d like(xmlCint)
+ d table value like(xmlHashTablePtr)
+ d name * value options(*string) const xmlChar *
+ d name2 * value options(*string) const xmlChar *
+ d name3 * value options(*string) const xmlChar *
+ d userdata * value options(*string) void *
+
+ d xmlHashUpdateEntry3...
+ d pr extproc('xmlHashUpdateEntry3')
+ d like(xmlCint)
+ d table value like(xmlHashTablePtr)
+ d name * value options(*string) const xmlChar *
+ d name2 * value options(*string) const xmlChar *
+ d name3 * value options(*string) const xmlChar *
+ d userdata * value options(*string) void *
+ d f value like(xmlHashDeallocator)
+
+ * Remove an entry from the hash table.
+
+ d xmlHashRemoveEntry...
+ d pr extproc('xmlHashRemoveEntry')
+ d like(xmlCint)
+ d table value like(xmlHashTablePtr)
+ d name * value options(*string) const xmlChar *
+ d f value like(xmlHashDeallocator)
+
+ d xmlHashRemoveEntry2...
+ d pr extproc('xmlHashRemoveEntry2')
+ d like(xmlCint)
+ d table value like(xmlHashTablePtr)
+ d name * value options(*string) const xmlChar *
+ d name2 * value options(*string) const xmlChar *
+ d f value like(xmlHashDeallocator)
+
+ d xmlHashRemoveEntry3...
+ d pr extproc('xmlHashRemoveEntry3')
+ d like(xmlCint)
+ d table value like(xmlHashTablePtr)
+ d name * value options(*string) const xmlChar *
+ d name2 * value options(*string) const xmlChar *
+ d name3 * value options(*string) const xmlChar *
+ d f value like(xmlHashDeallocator)
+
+ * Retrieve the userdata.
+
+ d xmlHashLookup pr * extproc('xmlHashLookup') void *
+ d table value like(xmlHashTablePtr)
+ d name * value options(*string) const xmlChar *
+
+ d xmlHashLookup2 pr * extproc('xmlHashLookup2') void *
+ d table value like(xmlHashTablePtr)
+ d name * value options(*string) const xmlChar *
+ d name2 * value options(*string) const xmlChar *
+
+ d xmlHashLookup3 pr * extproc('xmlHashLookup3') void *
+ d table value like(xmlHashTablePtr)
+ d name * value options(*string) const xmlChar *
+ d name2 * value options(*string) const xmlChar *
+ d name3 * value options(*string) const xmlChar *
+
+ d xmlHashQLookup pr * extproc('xmlHashQLookup') void *
+ d table value like(xmlHashTablePtr)
+ d name * value options(*string) const xmlChar *
+ d prefix * value options(*string) const xmlChar *
+
+ d xmlHashQLookup2...
+ d pr * extproc('xmlHashQLookup2') void *
+ d table value like(xmlHashTablePtr)
+ d name * value options(*string) const xmlChar *
+ d prefix * value options(*string) const xmlChar *
+ d name2 * value options(*string) const xmlChar *
+ d prefix2 * value options(*string) const xmlChar *
+
+ d xmlHashQLookup3...
+ d pr * extproc('xmlHashQLookup3') void *
+ d table value like(xmlHashTablePtr)
+ d name * value options(*string) const xmlChar *
+ d prefix * value options(*string) const xmlChar *
+ d name2 * value options(*string) const xmlChar *
+ d prefix2 * value options(*string) const xmlChar *
+ d name3 * value options(*string) const xmlChar *
+ d prefix3 * value options(*string) const xmlChar *
+
+ * Helpers.
+
+ d xmlHashCopy pr extproc('xmlHashCopy')
+ d like(xmlHashTablePtr)
+ d table value like(xmlHashTablePtr)
+ d f value like(xmlHashCopier)
+
+ d xmlHashSize pr extproc('xmlHashSize')
+ d like(xmlCint)
+ d table value like(xmlHashTablePtr)
+
+ d xmlHashScan pr extproc('xmlHashScan')
+ d table value like(xmlHashTablePtr)
+ d f value like(xmlHashScanner)
+ d data * value options(*string) void *
+
+ d xmlHashScan3 pr extproc('xmlHashScan3')
+ d table value like(xmlHashTablePtr)
+ d name * value options(*string) const xmlChar *
+ d name2 * value options(*string) const xmlChar *
+ d name3 * value options(*string) const xmlChar *
+ d f value like(xmlHashScanner)
+ d data * value options(*string) void *
+
+ d xmlHashScanFull...
+ d pr extproc('xmlHashScanFull')
+ d table value like(xmlHashTablePtr)
+ d f value like(xmlHashScannerFull)
+ d data * value options(*string) void *
+
+ d xmlHashScanFull3...
+ d pr extproc('xmlHashScanFull3')
+ d table value like(xmlHashTablePtr)
+ d name * value options(*string) const xmlChar *
+ d name2 * value options(*string) const xmlChar *
+ d name3 * value options(*string) const xmlChar *
+ d f value like(xmlHashScannerFull)
+ d data * value options(*string) void *
+
+ /endif XML_HASH_H__
diff --git a/libxml2/os400/libxmlrpg/list.rpgle b/libxml2/os400/libxmlrpg/list.rpgle
new file mode 100644
index 0000000..ce2fa1c
--- /dev/null
+++ b/libxml2/os400/libxmlrpg/list.rpgle
@@ -0,0 +1,179 @@
+ * Summary: lists interfaces
+ * Description: this module implement the list support used in
+ * various place in the library.
+ *
+ * Copy: See Copyright for the status of this software.
+ *
+ * Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A.
+
+ /if not defined(XML_LINK_INCLUDE__)
+ /define XML_LINK_INCLUDE__
+
+ /include "libxmlrpg/xmlversion"
+ /include "libxmlrpg/xmlTypesC"
+
+ d xmlLinkPtr s * based(######typedef######)
+
+ d xmlListPtr s * based(######typedef######)
+
+ * xmlListDeallocator:
+ * @lk: the data to deallocate
+ *
+ * Callback function used to free data from a list.
+
+ d xmlListDeallocator...
+ d s * based(######typedef######)
+ d procptr
+
+ * xmlListDataCompare:
+ * @data0: the first data
+ * @data1: the second data
+ *
+ * Callback function used to compare 2 data.
+ *
+ * Returns 0 is equality, -1 or 1 otherwise depending on the ordering.
+
+ d xmlListDataCompare...
+ d s * based(######typedef######)
+ d procptr
+
+ * xmlListWalker:
+ * @data: the data found in the list
+ * @user: extra user provided data to the walker
+ *
+ * Callback function used when walking a list with xmlListWalk().
+ *
+ * Returns 0 to stop walking the list, 1 otherwise.
+
+ d xmlListWalker s * based(######typedef######)
+ d procptr
+
+ * Creation/Deletion
+
+ d xmlListCreate pr extproc('xmlListCreate')
+ d like(xmlListPtr)
+ d deallocator value like(xmlListDeallocator)
+ d compare value like(xmlListDataCompare)
+
+ d xmlListDelete pr extproc('xmlListDelete')
+ d l value like(xmlListPtr)
+
+ * Basic Operators
+
+ d xmlListSearch pr * extproc('xmlListSearch') void *
+ d l value like(xmlListPtr)
+ d data * value void *
+
+ d xmlListReverseSearch...
+ d pr * extproc('xmlListReverseSearch') void *
+ d l value like(xmlListPtr)
+ d data * value void *
+
+ d xmlListInsert pr extproc('xmlListInsert')
+ d like(xmlCint)
+ d l value like(xmlListPtr)
+ d data * value void *
+
+ d xmlListAppend pr extproc('xmlListAppend')
+ d like(xmlCint)
+ d l value like(xmlListPtr)
+ d data * value void *
+
+ d xmlListRemoveFirst...
+ d pr extproc('xmlListRemoveFirst')
+ d like(xmlCint)
+ d l value like(xmlListPtr)
+ d data * value void *
+
+ d xmlListRemoveLast...
+ d pr extproc('xmlListRemoveLast')
+ d like(xmlCint)
+ d l value like(xmlListPtr)
+ d data * value void *
+
+ d xmlListRemoveAll...
+ d pr extproc('xmlListRemoveAll')
+ d like(xmlCint)
+ d l value like(xmlListPtr)
+ d data * value void *
+
+ d xmlListClear pr extproc('xmlListClear')
+ d l value like(xmlListPtr)
+
+ d xmlListEmpty pr extproc('xmlListEmpty')
+ d like(xmlCint)
+ d l value like(xmlListPtr)
+
+ d xmlListFront pr extproc('xmlListFront')
+ d like(xmlLinkPtr)
+ d l value like(xmlListPtr)
+
+ d xmlListEnd pr extproc('xmlListEnd')
+ d like(xmlLinkPtr)
+ d l value like(xmlListPtr)
+
+ d xmlListSize pr extproc('xmlListSize')
+ d like(xmlCint)
+ d l value like(xmlListPtr)
+
+ d xmlListPopFront...
+ d pr extproc('xmlListPopFront')
+ d l value like(xmlListPtr)
+
+ d xmlListPopBack...
+ d pr extproc('xmlListPopBack')
+ d l value like(xmlListPtr)
+
+ d xmlListPushFront...
+ d pr extproc('xmlListPushFront')
+ d like(xmlCint)
+ d l value like(xmlListPtr)
+ d data * value void *
+
+ d xmlListPushBack...
+ d pr extproc('xmlListPushBack')
+ d like(xmlCint)
+ d l value like(xmlListPtr)
+ d data * value void *
+
+ * Advanced Operators
+
+ d xmlListReverse pr extproc('xmlListReverse')
+ d l value like(xmlListPtr)
+
+ d xmlListSort pr extproc('xmlListSort')
+ d l value like(xmlListPtr)
+
+ d xmlListWalk pr extproc('xmlListWalk')
+ d l value like(xmlListPtr)
+ d walker value like(xmlListWalker)
+ d user * value const void *
+
+ d xmlListReverseWalk...
+ d pr extproc('xmlListReverseWalk')
+ d l value like(xmlListPtr)
+ d walker value like(xmlListWalker)
+ d user * value const void *
+
+ d xmlListMerge pr extproc('xmlListMerge')
+ d l1 value like(xmlListPtr)
+ d l2 value like(xmlListPtr)
+
+ d xmlListDup pr extproc('xmlListDup')
+ d like(xmlListPtr)
+ d old value like(xmlListPtr)
+
+ d xmlListCopy pr extproc('xmlListCopy')
+ d like(xmlCint)
+ d cur value like(xmlListPtr)
+ d old value like(xmlListPtr) const
+
+ * Link operators
+
+ d xmlListGetData pr * extproc('xmlListGetData') void *
+ d lk value like(xmlLinkPtr)
+
+ * xmlListUnique()
+ * xmlListSwap
+
+ /endif XML_LINK_INCLUDE__
diff --git a/libxml2/os400/libxmlrpg/nanoftp.rpgle b/libxml2/os400/libxmlrpg/nanoftp.rpgle
new file mode 100644
index 0000000..ac4f2aa
--- /dev/null
+++ b/libxml2/os400/libxmlrpg/nanoftp.rpgle
@@ -0,0 +1,172 @@
+ * Summary: minimal FTP implementation
+ * Description: minimal FTP implementation allowing to fetch resources
+ * like external subset.
+ *
+ * Copy: See Copyright for the status of this software.
+ *
+ * Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A.
+
+ /if not defined(NANO_FTP_H__)
+ /define NANO_FTP_H__
+
+ /include "libxmlrpg/xmlversion"
+
+ /if defined(LIBXML_FTP_ENABLED)
+
+ /include "libxmlrpg/xmlTypesC"
+
+ d INVALID_SOCKET c -1
+
+ * ftpListCallback:
+ * @userData: user provided data for the callback
+ * @filename: the file name (including "->" when links are shown)
+ * @attrib: the attribute string
+ * @owner: the owner string
+ * @group: the group string
+ * @size: the file size
+ * @links: the link count
+ * @year: the year
+ * @month: the month
+ * @day: the day
+ * @hour: the hour
+ * @minute: the minute
+ *
+ * A callback for the xmlNanoFTPList command.
+ * Note that only one of year and day:minute are specified.
+
+ d ftpListCallback...
+ d s * based(######typedef######)
+ d procptr
+
+ * ftpDataCallback:
+ * @userData: the user provided context
+ * @data: the data received
+ * @len: its size in bytes
+ *
+ * A callback for the xmlNanoFTPGet command.
+
+ d ftpDataCallback...
+ d s * based(######typedef######)
+ d procptr
+
+ * Init
+
+ d xmlNanoFTPInit pr extproc('xmlNanoFTPInit')
+
+ d xmlNanoFTPCleanup...
+ d pr extproc('xmlNanoFTPCleanup')
+
+ * Creating/freeing contexts.
+
+ d xmlNanoFTPNewCtxt...
+ d pr * extproc('xmlNanoFTPNewCtxt') void *
+ d URL * value options(*string) const char *
+
+ d xmlNanoFTPFreeCtxt...
+ d pr extproc('xmlNanoFTPFreeCtxt')
+ d ctx * value void *
+
+ d xmlNanoFTPConnectTo...
+ d pr * extproc('xmlNanoFTPConnectTo') void *
+ d server * value options(*string) const char *
+ d port value like(xmlCint)
+
+ * Opening/closing session connections.
+
+ d xmlNanoFTPOpen pr * extproc('xmlNanoFTPOpen') void *
+ d URL * value options(*string) const char *
+
+ d xmlNanoFTPConnect...
+ d pr extproc('xmlNanoFTPConnect')
+ d like(xmlCint)
+ d ctx * value void *
+
+ d xmlNanoFTPClose...
+ d pr extproc('xmlNanoFTPClose')
+ d like(xmlCint)
+ d ctx * value void *
+
+ d xmlNanoFTPQuit pr extproc('xmlNanoFTPQuit')
+ d like(xmlCint)
+ d ctx * value void *
+
+ d xmlNanoFTPScanProxy...
+ d pr extproc('xmlNanoFTPScanProxy')
+ d URL * value options(*string) const char *
+
+ d xmlNanoFTPProxy...
+ d pr extproc('xmlNanoFTPProxy')
+ d host * value options(*string) const char *
+ d port value like(xmlCint)
+ d user * value options(*string) const char *
+ d passwd * value options(*string) const char *
+ d type value like(xmlCint)
+
+ d xmlNanoFTPUpdateURL...
+ d pr extproc('xmlNanoFTPUpdateURL')
+ d like(xmlCint)
+ d ctx * value void *
+ d URL * value options(*string) const char *
+
+ * Rather internal commands.
+
+ d xmlNanoFTPGetResponse...
+ d pr extproc('xmlNanoFTPGetResponse')
+ d like(xmlCint)
+ d ctx * value void *
+
+ d xmlNanoFTPCheckResponse...
+ d pr extproc('xmlNanoFTPCheckResponse')
+ d like(xmlCint)
+ d ctx * value void *
+
+ * CD/DIR/GET handlers.
+
+ d xmlNanoFTPCwd pr extproc('xmlNanoFTPCwd')
+ d like(xmlCint)
+ d ctx * value void *
+ d directory * value options(*string) const char *
+
+ d xmlNanoFTPDele pr extproc('xmlNanoFTPDele')
+ d like(xmlCint)
+ d ctx * value void *
+ d file * value options(*string) const char *
+
+ d xmlNanoFTPGetConnection...
+ d pr extproc('xmlNanoFTPGetConnection') Socket descriptor
+ d like(xmlCint)
+ d ctx * value void *
+
+ d xmlNanoFTPCloseConnection...
+ d pr extproc('xmlNanoFTPCloseConnection')
+ d like(xmlCint)
+ d ctx * value void *
+
+ d xmlNanoFTPList pr extproc('xmlNanoFTPList')
+ d like(xmlCint)
+ d ctx * value void *
+ d callback value like(ftpListCallback)
+ d userData * value void *
+ d filename * value options(*string) const char *
+
+ d xmlNanoFTPGetSocket...
+ d pr extproc('xmlNanoFTPGetSocket') Socket descriptor
+ d like(xmlCint)
+ d ctx * value void *
+ d filename * value options(*string) const char *
+
+ d xmlNanoFTPGet pr extproc('xmlNanoFTPGet')
+ d like(xmlCint)
+ d ctx * value void *
+ d callback value like(ftpDataCallback)
+ d userData * value void *
+ d filename * value options(*string) const char *
+
+ d xmlNanoFTPRead pr extproc('xmlNanoFTPRead')
+ d like(xmlCint)
+ d ctx * value void *
+ d dest * value void *
+ d len value like(xmlCint)
+
+ /endif LIBXML_FTP_ENABLED
+ /endif NANO_FTP_H__
diff --git a/libxml2/os400/libxmlrpg/nanohttp.rpgle b/libxml2/os400/libxmlrpg/nanohttp.rpgle
new file mode 100644
index 0000000..d4e6008
--- /dev/null
+++ b/libxml2/os400/libxmlrpg/nanohttp.rpgle
@@ -0,0 +1,110 @@
+ * Summary: minimal HTTP implementation
+ * Description: minimal HTTP implementation allowing to fetch resources
+ * like external subset.
+ *
+ * Copy: See Copyright for the status of this software.
+ *
+ * Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A.
+
+ /if not defined(NANO_HTTP_H__)
+ /define NANO_HTTP_H__
+
+ /include "libxmlrpg/xmlversion"
+
+ /if defined(LIBXML_HTTP_ENABLED)
+
+ /include "libxmlrpg/xmlTypesC"
+
+ d xmlNanoHTTPInit...
+ d pr extproc('xmlNanoHTTPInit')
+
+ d xmlNanoHTTPCleanup...
+ d pr extproc('xmlNanoHTTPCleanup')
+
+ d xmlNanoHTTPScanProxy...
+ d pr extproc('xmlNanoHTTPScanProxy')
+ d URL * value options(*string) const char *
+
+ d xmlNanoHTTPFetch...
+ d pr extproc('xmlNanoHTTPFetch')
+ d like(xmlCint)
+ d URL * value options(*string) const char *
+ d filename * value options(*string) const char *
+
+ d xmlNanoHTTPMethod...
+ d pr * extproc('xmlNanoHTTPMethod') void *
+ d URL * value options(*string) const char *
+ d method * value options(*string) const char *
+ d input * value options(*string) const char *
+ d contentType * value char * *
+ d headers * value options(*string) const char *
+ d ilen value like(xmlCint)
+
+ d xmlNanoHTTPMethodRedir...
+ d pr * extproc('xmlNanoHTTPMethodRedir') void *
+ d URL * value options(*string) const char *
+ d method * value options(*string) const char *
+ d input * value options(*string) const char *
+ d contentType * value char * *
+ d redir * value char * *
+ d headers * value options(*string) const char *
+ d ilen value like(xmlCint)
+
+ d xmlNanoHTTPOpen...
+ d pr * extproc('xmlNanoHTTPOpen') void *
+ d URL * value options(*string) const char *
+ d contentType * char *(*)
+
+ d xmlNanoHTTPOpenRedir...
+ d pr * extproc('xmlNanoHTTPOpenRedir') void *
+ d URL * value options(*string) const char *
+ d contentType * value char * *
+ d redir * value char * *
+
+ d xmlNanoHTTPReturnCode...
+ d pr extproc('xmlNanoHTTPReturnCode')
+ d like(xmlCint)
+ d ctx * value void *
+
+ d xmlNanoHTTPAuthHeader...
+ d pr * extproc('xmlNanoHTTPAuthHeader') const char *
+ d ctx * value void *
+
+ d xmlNanoHTTPRedir...
+ d pr * extproc('xmlNanoHTTPRedir') const char *
+ d ctx * value void *
+
+ d xmlNanoHTTPContentLength...
+ d pr extproc('xmlNanoHTTPContentLength')
+ d like(xmlCint)
+ d ctx * value void *
+
+ d xmlNanoHTTPEncoding...
+ d pr * extproc('xmlNanoHTTPEncoding') const char *
+ d ctx * value void *
+
+ d xmlNanoHTTPMimeType...
+ d pr * extproc('xmlNanoHTTPMimeType') const char *
+ d ctx * value void *
+
+ d xmlNanoHTTPRead...
+ d pr extproc('xmlNanoHTTPRead')
+ d like(xmlCint)
+ d ctx * value void *
+ d dest * value void *
+ d len value like(xmlCint)
+
+ /if defined(LIBXML_OUTPUT_ENABLED)
+ d xmlNanoHTTPSave...
+ d pr extproc('xmlNanoHTTPSave')
+ d like(xmlCint)
+ d ctxt * value void *
+ d filename * value options(*string) const char *
+ /endif LIBXML_OUTPUT_ENABLD
+
+ d xmlNanoHTTPClose...
+ d pr extproc('xmlNanoHTTPClose')
+ d ctx * value void *
+
+ /endif LIBXML_HTTP_ENABLED
+ /endif NANO_HTTP_H__
diff --git a/libxml2/os400/libxmlrpg/parser.rpgle b/libxml2/os400/libxmlrpg/parser.rpgle
new file mode 100644
index 0000000..fa48d4f
--- /dev/null
+++ b/libxml2/os400/libxmlrpg/parser.rpgle
@@ -0,0 +1,1436 @@
+ * Summary: the core parser module
+ * Description: Interfaces, constants and types related to the XML parser
+ *
+ * Copy: See Copyright for the status of this software.
+ *
+ * Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A.
+
+ /if not defined(XML_PARSER_H__)
+ /define XML_PARSER_H__
+
+ /include "libxmlrpg/xmlversion"
+ /include "libxmlrpg/xmlTypesC"
+ /include "libxmlrpg/tree"
+ /include "libxmlrpg/dict"
+ /include "libxmlrpg/hash"
+ /include "libxmlrpg/valid"
+ /include "libxmlrpg/entities"
+ /include "libxmlrpg/xmlerror"
+ /include "libxmlrpg/xmlstring"
+
+ * XML_DEFAULT_VERSION:
+ *
+ * The default version of XML used: 1.0
+
+ d XML_DEFAULT_VERSION...
+ d c '1.0'
+
+ * xmlParserInput:
+ *
+ * An xmlParserInput is an input flow for the XML processor.
+ * Each entity parsed is associated an xmlParserInput (except the
+ * few predefined ones). This is the case both for internal entities
+ * - in which case the flow is already completely in memory - or
+ * external entities - in which case we use the buf structure for
+ * progressive reading and I18N conversions to the internal UTF-8 format.
+
+ * xmlParserInputDeallocate:
+ * @str: the string to deallocate
+ *
+ * Callback for freeing some parser input allocations.
+
+ d xmlParserInputDeallocate...
+ d s * based(######typedef######)
+ d procptr
+
+ * Input buffer
+
+ d xmlParserInput ds based(xmlParserInputPtr)
+ d align qualified
+ d buf like(xmlParserInputBufferPtr) UTF-8 encoded buffer
+ d filename * const char *
+ d directory * const char *
+ d base * const char *
+ d cur * const char *
+ d end * const char *
+ d length like(xmlCint) Length if known
+ d line like(xmlCint) Current line
+ d col like(xmlCint) Current column
+ *
+ * NOTE: consumed is only tested for equality in the parser code,
+ * so even if there is an overflow this should not give troubles
+ * for parsing very large instances.
+ *
+ d consumed like(xmlCulong) # consumed xmlChars
+ d free like(xmlParserInputDeallocate) base deallocator
+ d encoding * const xmlChar *
+ d version * const xmlChar *
+ d standalone like(xmlCint) Standalone entity ?
+ d id like(xmlCint) Entity unique ID
+
+ * xmlParserNodeInfo:
+ *
+ * The parser can be asked to collect Node informations, i.e. at what
+ * place in the file they were detected.
+ * NOTE: This is off by default and not very well tested.
+
+ d xmlParserNodeInfoPtr...
+ d s * based(######typedef######)
+
+ d xmlParserNodeInfo...
+ d ds based(xmlParserNodeInfoPtr)
+ d align qualified
+ d node like(xmlNodePtr) const
+ * Position & line # that text that created the node begins & ends on
+ d begin_pos like(xmlCulong)
+ d begin_line like(xmlCulong)
+ d end_pos like(xmlCulong)
+ d end_line like(xmlCulong)
+
+ d xmlParserNodeInfoSeqPtr...
+ d s * based(######typedef######)
+
+ d xmlParserNodeInfoSeq...
+ d ds based(xmlParserNodeInfoSeqPtr)
+ d align qualified
+ d maximum like(xmlCulong)
+ d length like(xmlCulong)
+ d buffer like(xmlParserNodeInfoPtr)
+
+ * xmlParserInputState:
+ *
+ * The parser is now working also as a state based parser.
+ * The recursive one use the state info for entities processing.
+
+ d xmlParserInputState...
+ d s based(######typedef######)
+ d like(xmlCenum)
+ d XML_PARSER_EOF... Nothing to parse
+ d c -1
+ d XML_PARSER_START... Nothing parsed
+ d c 0
+ d XML_PARSER_MISC... Misc* b4 int subset
+ d c 1
+ d XML_PARSER_PI c 2 In proc instr
+ d XML_PARSER_DTD... In some DTD content
+ d c 3
+ d XML_PARSER_PROLOG... Misc* after int sbst
+ d c 4
+ d XML_PARSER_COMMENT... Within a comment
+ d c 5
+ d XML_PARSER_START_TAG... Within a start tag
+ d c 6
+ d XML_PARSER_CONTENT... Within the content
+ d c 7
+ d XML_PARSER_CDATA_SECTION... Within a CDATA
+ d c 8
+ d XML_PARSER_END_TAG... Within a closing tag
+ d c 9
+ d XML_PARSER_ENTITY_DECL... In an entity decl
+ d c 10
+ d XML_PARSER_ENTITY_VALUE... In entity decl value
+ d c 11
+ d XML_PARSER_ATTRIBUTE_VALUE... In attribute value
+ d c 12
+ d XML_PARSER_SYSTEM_LITERAL... In a SYSTEM value
+ d c 13
+ d XML_PARSER_EPILOG... Last end tag Misc*
+ d c 14
+ d XML_PARSER_IGNORE... In IGNORED section
+ d c 15
+ d XML_PARSER_PUBLIC_LITERAL... In a PUBLIC value
+ d c 16
+
+ * XML_DETECT_IDS:
+ *
+ * Bit in the loadsubset context field to tell to do ID/REFs lookups.
+ * Use it to initialize xmlLoadExtDtdDefaultValue.
+
+ d XML_DETECT_IDS c 2
+
+ * XML_COMPLETE_ATTRS:
+ *
+ * Bit in the loadsubset context field to tell to do complete the
+ * elements attributes lists with the ones defaulted from the DTDs.
+ * Use it to initialize xmlLoadExtDtdDefaultValue.
+
+ d XML_COMPLETE_ATTRS...
+ d c 4
+
+ * XML_SKIP_IDS:
+ *
+ * Bit in the loadsubset context field to tell to not do ID/REFs
+ * registration.
+ * Used to initialize xmlLoadExtDtdDefaultValue in some special cases.
+
+ d XML_SKIP_IDS c 8
+
+ * xmlParserMode:
+ *
+ * A parser can operate in various modes
+
+ d xmlParserMode s based(######typedef######)
+ d like(xmlCenum)
+ d XML_PARSE_UNKNOWN...
+ d c 0
+ d XML_PARSE_DOM...
+ d c 1
+ d XML_PARSE_SAX...
+ d c 2
+ d XML_PARSE_PUSH_DOM...
+ d c 3
+ d XML_PARSE_PUSH_SAX...
+ d c 4
+ d XML_PARSE_READER...
+ d c 5
+
+ * xmlParserCtxt:
+ *
+ * The parser context.
+ * NOTE This doesn't completely define the parser state, the (current ?)
+ * design of the parser uses recursive function calls since this allow
+ * and easy mapping from the production rules of the specification
+ * to the actual code. The drawback is that the actual function call
+ * also reflect the parser state. However most of the parsing routines
+ * takes as the only argument the parser context pointer, so migrating
+ * to a state based parser for progressive parsing shouldn't be too
+ * hard.
+
+ d xmlParserCtxt ds based(xmlParserCtxtPtr)
+ d align qualified
+ d sax like(xmlSAXHandlerPtr) The SAX handler
+ d userData * SAX only-4 DOM build
+ d myDoc like(xmlDocPtr) Document being built
+ d wellFormed like(xmlCint) Well formed doc ?
+ d replaceEntities... Replace entities ?
+ d like(xmlCint)
+ d version * const xmlChar *
+ d encoding * const xmlChar *
+ d standalone like(xmlCint) Standalone document
+ d html like(xmlCint) HTML state/type
+ *
+ * Input stream stack
+ *
+ d input like(xmlParserInputPtr) Current input stream
+ d inputNr like(xmlCint) # current in streams
+ d inputMax like(xmlCint) Max # of in streams
+ d inputTab * xmlParserInputPtr *
+ *
+ * Node analysis stack only used for DOM building
+ *
+ d node like(xmlNodePtr) Current parsed node
+ d nodeNr like(xmlCint) Parsing stack depth
+ d nodeMax like(xmlCint) Max stack depth
+ d nodeTab * xmlNodePtr *
+ *
+ d record_info like(xmlCint) Keep node info ?
+ d node_seq likeds(xmlParserNodeInfoSeq) Parsed nodes info
+ *
+ d errNo like(xmlCint) Error code
+ *
+ d hasExternalSubset...
+ d like(xmlCint)
+ d hasPErefs like(xmlCint)
+ d external like(xmlCint) Parsing ext. entity?
+ *
+ d valid like(xmlCint) Valid document ?
+ d validate like(xmlCint) Try to validate ?
+ d vctxt likeds(xmlValidCtxt) Validity context
+ *
+ d instate like(xmlParserInputState) Current input type
+ d token like(xmlCint) Next look-ahead char
+ *
+ d directory * char *
+ *
+ * Node name stack
+ *
+ d name * const xmlChar *
+ d nameNr like(xmlCint) Parsing stack depth
+ d nameMax like(xmlCint) Max stack depth
+ d nameTab * const xmlChar * *
+ *
+ d nbChars like(xmlClong) # xmlChars processed
+ d checkIndex like(xmlClong) 4 progressive parse
+ d keepBlanks like(xmlCint) Ugly but ...
+ d disableSAX like(xmlCint) Disable SAX cllbacks
+ d inSubset like(xmlCint) In int 1/ext 2 sbset
+ d intSubName * const xmlChar *
+ d extSubURI * const xmlChar *
+ d extSubSytem * const xmlChar *
+ *
+ * xml:space values
+ *
+ d space * int *
+ d spaceNr like(xmlCint) Parsing stack depth
+ d spaceMax like(xmlCint) Max stack depth
+ d spaceTab * int *
+ *
+ d depth like(xmlCint) To detect loops
+ d entity like(xmlParserInputPtr) To check boundaries
+ d charset like(xmlCint) In-memory content
+ d nodelen like(xmlCint) Speed up parsing
+ d nodemem like(xmlCint) Speed up parsing
+ d pedantic like(xmlCint) Enb. pedantic warng
+ d #private * void *
+ *
+ d loadsubset like(xmlCint) Load ext. subset ?
+ d linenumbers like(xmlCint) Set line numbers ?
+ d catalogs * void *
+ d recovery like(xmlCint) Run in recovery mode
+ d progressive like(xmlCint) Progressive parsing?
+ d dict like(xmlDictPtr) Parser dictionary
+ d atts * const xmlChar *
+ d maxatts like(xmlCint) Above array size
+ d docdict like(xmlCint) Use dictionary ?
+ *
+ * pre-interned strings
+ *
+ d str_xml * const xmlChar *
+ d str_xmlns * const xmlChar *
+ d str_xml_ms * const xmlChar *
+ *
+ * Everything below is used only by the new SAX mode
+ *
+ d sax2 like(xmlCint) New SAX mode ?
+ d nsNr like(xmlCint) # inherited nmspaces
+ d nsMax like(xmlCint) Array size
+ d nsTab * const xmlChar *
+ d attallocs * int *
+ d pushTab * void *
+ d attsDefault like(xmlHashTablePtr) Defaulted attrs
+ d attsSpecial like(xmlHashTablePtr) non-CDATA attrs
+ d nsWellFormed like(xmlCint) Doc namespace OK ?
+ d options like(xmlCint) Extra options
+ *
+ * Those fields are needed only for treaming parsing so far
+ *
+ d dictNames like(xmlCint) Dict names in tree ?
+ d freeElemsNr like(xmlCint) # free element nodes
+ d freeElems like(xmlNodePtr) Free elem nodes list
+ d freeAttrsNr like(xmlCint) # free attr. nodes
+ d freeAttrs like(xmlAttrPtr) Free attr noes list
+ *
+ * the complete error informations for the last error.
+ *
+ d lastError likeds(xmlError)
+ d parseMode like(xmlParserMode) The parser mode
+ d nbentities like(xmlCulong) # entity references
+ d sizeentities like(xmlCulong) Parsed entities size
+ *
+ * for use by HTML non-recursive parser
+ *
+ d nodeInfo like(xmlParserNodeInfoPtr) Current NodeInfo
+ d nodeInfoNr like(xmlCint) Parsing stack depth
+ d nodeInfoMax like(xmlCint) Max stack depth
+ d nodeInfoTab * xmlParserNodeInfo *
+ *
+ d input_id like(xmlCint) Label inputs ?
+ d sizeentcopy like(xmlCulong) Entity copy volume
+
+ * xmlSAXLocator:
+ *
+ * A SAX Locator.
+
+ d xmlSAXLocator ds based(xmlSAXLocatorPtr)
+ d align qualified
+ d getPublicId * procptr
+ d getSystemId * procptr
+ d getLineNumber * procptr
+ d getColumnNumber...
+ d * procptr
+
+ * xmlSAXHandler:
+ *
+ * A SAX handler is bunch of callbacks called by the parser when
+ * processing of the input generate data or structure informations.
+
+ * resolveEntitySAXFunc:
+ * @ctx: the user data (XML parser context)
+ * @publicId: The public ID of the entity
+ * @systemId: The system ID of the entity
+ *
+ * Callback:
+ * The entity loader, to control the loading of external entities,
+ * the application can either:
+ * - override this resolveEntity() callback in the SAX block
+ * - or better use the xmlSetExternalEntityLoader() function to
+ * set up it's own entity resolution routine
+ *
+ * Returns the xmlParserInputPtr if inlined or NULL for DOM behaviour.
+
+ d resolveEntitySAXFunc...
+ d s * based(######typedef######)
+ d procptr
+
+ * internalSubsetSAXFunc:
+ * @ctx: the user data (XML parser context)
+ * @name: the root element name
+ * @ExternalID: the external ID
+ * @SystemID: the SYSTEM ID (e.g. filename or URL)
+ *
+ * Callback on internal subset declaration.
+
+ d internalSubsetSAXFunc...
+ d s * based(######typedef######)
+ d procptr
+
+ * externalSubsetSAXFunc:
+ * @ctx: the user data (XML parser context)
+ * @name: the root element name
+ * @ExternalID: the external ID
+ * @SystemID: the SYSTEM ID (e.g. filename or URL)
+ *
+ * Callback on external subset declaration.
+
+ d externalSubsetSAXFunc...
+ d s * based(######typedef######)
+ d procptr
+
+ * getEntitySAXFunc:
+ * @ctx: the user data (XML parser context)
+ * @name: The entity name
+ *
+ * Get an entity by name.
+ *
+ * Returns the xmlEntityPtr if found.
+
+ d getEntitySAXFunc...
+ d s * based(######typedef######)
+ d procptr
+
+ * getParameterEntitySAXFunc:
+ * @ctx: the user data (XML parser context)
+ * @name: The entity name
+ *
+ * Get a parameter entity by name.
+ *
+ * Returns the xmlEntityPtr if found.
+
+ d getParameterEntitySAXFunc...
+ d s * based(######typedef######)
+ d procptr
+
+ * entityDeclSAXFunc:
+ * @ctx: the user data (XML parser context)
+ * @name: the entity name
+ * @type: the entity type
+ * @publicId: The public ID of the entity
+ * @systemId: The system ID of the entity
+ * @content: the entity value (without processing).
+ *
+ * An entity definition has been parsed.
+
+ d entityDeclSAXFunc...
+ d s * based(######typedef######)
+ d procptr
+
+ * notationDeclSAXFunc:
+ * @ctx: the user data (XML parser context)
+ * @name: The name of the notation
+ * @publicId: The public ID of the entity
+ * @systemId: The system ID of the entity
+ *
+ * What to do when a notation declaration has been parsed.
+
+ d notationDeclSAXFunc...
+ d s * based(######typedef######)
+ d procptr
+
+ * attributeDeclSAXFunc:
+ * @ctx: the user data (XML parser context)
+ * @elem: the name of the element
+ * @fullname: the attribute name
+ * @type: the attribute type
+ * @def: the type of default value
+ * @defaultValue: the attribute default value
+ * @tree: the tree of enumerated value set
+ *
+ * An attribute definition has been parsed.
+
+ d attributeDeclSAXFunc...
+ d s * based(######typedef######)
+ d procptr
+
+ * elementDeclSAXFunc:
+ * @ctx: the user data (XML parser context)
+ * @name: the element name
+ * @type: the element type
+ * @content: the element value tree
+ *
+ * An element definition has been parsed.
+
+ d elementDeclSAXFunc...
+ d s * based(######typedef######)
+ d procptr
+
+ * unparsedEntityDeclSAXFunc:
+ * @ctx: the user data (XML parser context)
+ * @name: The name of the entity
+ * @publicId: The public ID of the entity
+ * @systemId: The system ID of the entity
+ * @notationName: the name of the notation
+ *
+ * What to do when an unparsed entity declaration is parsed.
+
+ d unparsedEntityDeclSAXFunc...
+ d s * based(######typedef######)
+ d procptr
+
+ * setDocumentLocatorSAXFunc:
+ * @ctx: the user data (XML parser context)
+ * @loc: A SAX Locator
+ *
+ * Receive the document locator at startup, actually xmlDefaultSAXLocator.
+ * Everything is available on the context, so this is useless in our case.
+
+ d setDocumentLocatorSAXFunc...
+ d s * based(######typedef######)
+ d procptr
+
+ * startDocumentSAXFunc:
+ * @ctx: the user data (XML parser context)
+ *
+ * Called when the document start being processed.
+
+ d startDocumentSAXFunc...
+ d s * based(######typedef######)
+ d procptr
+
+ * endDocumentSAXFunc:
+ * @ctx: the user data (XML parser context)
+ *
+ * Called when the document end has been detected.
+
+ d endDocumentSAXFunc...
+ d s * based(######typedef######)
+ d procptr
+
+ * startElementSAXFunc:
+ * @ctx: the user data (XML parser context)
+ * @name: The element name, including namespace prefix
+ * @atts: An array of name/value attributes pairs, NULL terminated
+ *
+ * Called when an opening tag has been processed.
+
+ d startElementSAXFunc...
+ d s * based(######typedef######)
+ d procptr
+
+ * endElementSAXFunc:
+ * @ctx: the user data (XML parser context)
+ * @name: The element name
+ *
+ * Called when the end of an element has been detected.
+
+ d endElementSAXFunc...
+ d s * based(######typedef######)
+ d procptr
+
+ * attributeSAXFunc:
+ * @ctx: the user data (XML parser context)
+ * @name: The attribute name, including namespace prefix
+ * @value: The attribute value
+ *
+ * Handle an attribute that has been read by the parser.
+ * The default handling is to convert the attribute into an
+ * DOM subtree and past it in a new xmlAttr element added to
+ * the element.
+
+ d attributeSAXFunc...
+ d s * based(######typedef######)
+ d procptr
+
+ * referenceSAXFunc:
+ * @ctx: the user data (XML parser context)
+ * @name: The entity name
+ *
+ * Called when an entity reference is detected.
+
+ d referenceSAXFunc...
+ d s * based(######typedef######)
+ d procptr
+
+ * charactersSAXFunc:
+ * @ctx: the user data (XML parser context)
+ * @ch: a xmlChar string
+ * @len: the number of xmlChar
+ *
+ * Receiving some chars from the parser.
+
+ d charactersSAXFunc...
+ d s * based(######typedef######)
+ d procptr
+
+ * ignorableWhitespaceSAXFunc:
+ * @ctx: the user data (XML parser context)
+ * @ch: a xmlChar string
+ * @len: the number of xmlChar
+ *
+ * Receiving some ignorable whitespaces from the parser.
+ * UNUSED: by default the DOM building will use characters.
+
+ d ignorableWhitespaceSAXFunc...
+ d s * based(######typedef######)
+ d procptr
+
+ * processingInstructionSAXFunc:
+ * @ctx: the user data (XML parser context)
+ * @target: the target name
+ * @data: the PI data's
+ *
+ * A processing instruction has been parsed.
+
+ d processingInstructionSAXFunc...
+ d s * based(######typedef######)
+ d procptr
+
+ * commentSAXFunc:
+ * @ctx: the user data (XML parser context)
+ * @value: the comment content
+ *
+ * A comment has been parsed.
+
+ d commentSAXFunc...
+ d s * based(######typedef######)
+ d procptr
+
+ * cdataBlockSAXFunc:
+ * @ctx: the user data (XML parser context)
+ * @value: The pcdata content
+ * @len: the block length
+ *
+ * Called when a pcdata block has been parsed.
+
+ d cdataBlockSAXFunc...
+ d s * based(######typedef######)
+ d procptr
+
+ * warningSAXFunc:
+ * @ctx: an XML parser context
+ * @msg: the message to display/transmit
+ * @...: extra parameters for the message display
+ *
+ * Display and format a warning messages, callback.
+
+ d warningSAXFunc...
+ d s * based(######typedef######)
+ d procptr
+
+ * errorSAXFunc:
+ * @ctx: an XML parser context
+ * @msg: the message to display/transmit
+ * @...: extra parameters for the message display
+ *
+ * Display and format an error messages, callback.
+
+ d errorSAXFunc...
+ d s * based(######typedef######)
+ d procptr
+
+ * fatalErrorSAXFunc:
+ * @ctx: an XML parser context
+ * @msg: the message to display/transmit
+ * @...: extra parameters for the message display
+ *
+ * Display and format fatal error messages, callback.
+ * Note: so far fatalError() SAX callbacks are not used, error()
+ * get all the callbacks for errors.
+
+ d fatalErrorSAXFunc...
+ d s * based(######typedef######)
+ d procptr
+
+ * isStandaloneSAXFunc:
+ * @ctx: the user data (XML parser context)
+ *
+ * Is this document tagged standalone?
+ *
+ * Returns 1 if true
+
+ d isStandaloneSAXFunc...
+ d s * based(######typedef######)
+ d procptr
+
+ * hasInternalSubsetSAXFunc:
+ * @ctx: the user data (XML parser context)
+ *
+ * Does this document has an internal subset.
+ *
+ * Returns 1 if true
+
+ d hasInternalSubsetSAXFunc...
+ d s * based(######typedef######)
+ d procptr
+
+ * hasExternalSubsetSAXFunc:
+ * @ctx: the user data (XML parser context)
+ *
+ * Does this document has an external subset?
+ *
+ * Returns 1 if true
+
+ d hasExternalSubsetSAXFunc...
+ d s * based(######typedef######)
+ d procptr
+
+ ************************************************************************
+ * *
+ * The SAX version 2 API extensions *
+ * *
+ ************************************************************************
+
+ * XML_SAX2_MAGIC:
+ *
+ * Special constant found in SAX2 blocks initialized fields
+
+ d XML_SAX2_MAGIC c X'DEEDBEAF'
+
+ * startElementNsSAX2Func:
+ * @ctx: the user data (XML parser context)
+ * @localname: the local name of the element
+ * @prefix: the element namespace prefix if available
+ * @URI: the element namespace name if available
+ * @nb_namespaces: number of namespace definitions on that node
+ * @namespaces: pointer to the array of prefix/URI pairs namespace
+ * definitions
+ * @nb_attributes: the number of attributes on that node
+ * @nb_defaulted: the number of defaulted attributes. The defaulted
+ * ones are at the end of the array
+ * @attributes: pointer to the array of
+ * (localname/prefix/URI/value/end) attribute values.
+ *
+ * SAX2 callback when an element start has been detected by the parser.
+ * It provides the namespace informations for the element, as well as
+ * the new namespace declarations on the element.
+
+ d startElementNsSAX2Func...
+ d s * based(######typedef######)
+ d procptr
+
+ * endElementNsSAX2Func:
+ * @ctx: the user data (XML parser context)
+ * @localname: the local name of the element
+ * @prefix: the element namespace prefix if available
+ * @URI: the element namespace name if available
+ *
+ * SAX2 callback when an element end has been detected by the parser.
+ * It provides the namespace informations for the element.
+
+ d endElementNsSAX2Func...
+ d s * based(######typedef######)
+ d procptr
+
+ d xmlSAXHandler ds based(xmlSAXHandlerPtr)
+ d align qualified
+ d internalSubset...
+ d like(internalSubsetSAXFunc)
+ d isStandalone like(isStandaloneSAXFunc)
+ d hasInternalSubset...
+ d like(hasInternalSubsetSAXFunc)
+ d hasExternalSubset...
+ d like(hasExternalSubsetSAXFunc)
+ d resolveEntity like(resolveEntitySAXFunc)
+ d getEntity like(getEntitySAXFunc)
+ d entityDecl like(entityDeclSAXFunc)
+ d notationDecl like(notationDeclSAXFunc)
+ d attributeDecl like(attributeDeclSAXFunc)
+ d elementDecl like(elementDeclSAXFunc)
+ d unparsedEntityDecl...
+ d like(unparsedEntityDeclSAXFunc)
+ d setDocumentLocator...
+ d like(setDocumentLocatorSAXFunc)
+ d startDocument like(startDocumentSAXFunc)
+ d endDocument like(endDocumentSAXFunc)
+ d startElement like(startElementSAXFunc)
+ d endElement like(endElementSAXFunc)
+ d reference like(referenceSAXFunc)
+ d characters like(charactersSAXFunc)
+ d ignorableWhitespace...
+ d like(ignorableWhitespaceSAXFunc)
+ d processingInstruction...
+ d like(processingInstructionSAXFunc)
+ d comment like(commentSAXFunc)
+ d warning like(warningSAXFunc)
+ d error like(errorSAXFunc)
+ d fatalError like(fatalErrorSAXFunc)
+ d getParameterEntity...
+ d like(getParameterEntitySAXFunc)
+ d cdataBlock like(cdataBlockSAXFunc)
+ d externalSubset...
+ d like(externalSubsetSAXFunc)
+ d initialized like(xmlCuint)
+ *
+ * The following fields are extensions available only on version 2
+ *
+ d #private * void *
+ d startElementNs...
+ d like(startElementNsSAX2Func)
+ d endELementNs like(endElementNsSAX2Func)
+ d serror like(xmlStructuredErrorFunc)
+
+ * SAX Version 1
+
+ d xmlSAXHandlerV1Ptr...
+ d s * based(######typedef######)
+
+ d xmlSAXHandlerV1...
+ d ds based(xmlSAXHandlerV1Ptr)
+ d align qualified
+ d internalSubset...
+ d like(internalSubsetSAXFunc)
+ d isStandalone like(isStandaloneSAXFunc)
+ d hasInternalSubset...
+ d like(hasInternalSubsetSAXFunc)
+ d hasExternalSubset...
+ d like(hasExternalSubsetSAXFunc)
+ d resolveEntity like(resolveEntitySAXFunc)
+ d getEntity like(getEntitySAXFunc)
+ d entityDecl like(entityDeclSAXFunc)
+ d notationDecl like(notationDeclSAXFunc)
+ d attributeDecl like(attributeDeclSAXFunc)
+ d elementDecl like(elementDeclSAXFunc)
+ d unparsedEntityDecl...
+ d like(unparsedEntityDeclSAXFunc)
+ d setDocumentLocator...
+ d like(setDocumentLocatorSAXFunc)
+ d startDocument like(startDocumentSAXFunc)
+ d endDocument like(endDocumentSAXFunc)
+ d startElement like(startElementSAXFunc)
+ d endElement like(endElementSAXFunc)
+ d reference like(referenceSAXFunc)
+ d characters like(charactersSAXFunc)
+ d ignorableWhitespace...
+ d like(ignorableWhitespaceSAXFunc)
+ d processingInstruction...
+ d like(processingInstructionSAXFunc)
+ d comment like(commentSAXFunc)
+ d warning like(warningSAXFunc)
+ d error like(errorSAXFunc)
+ d fatalError like(fatalErrorSAXFunc)
+ d getParameterEntity...
+ d like(getParameterEntitySAXFunc)
+ d cdataBlock like(cdataBlockSAXFunc)
+ d externalSubset...
+ d like(externalSubsetSAXFunc)
+ d initialized like(xmlCuint)
+
+ * xmlExternalEntityLoader:
+ * @URL: The System ID of the resource requested
+ * @ID: The Public ID of the resource requested
+ * @context: the XML parser context
+ *
+ * External entity loaders types.
+ *
+ * Returns the entity input parser.
+
+ d xmlExternalEntityLoader...
+ d s * based(######typedef######)
+ d procptr
+
+ /include "libxmlrpg/encoding"
+ /include "libxmlrpg/xmlIO"
+ /include "libxmlrpg/globals"
+
+ * Init/Cleanup
+
+ d xmlInitParser pr extproc('xmlInitParser')
+
+ d xmlCleanupParser...
+ d pr extproc('xmlCleanupParser')
+
+ * Input functions
+
+ d xmlParserInputRead...
+ d pr extproc('xmlParserInputRead')
+ d like(xmlCint)
+ d in value like(xmlParserInputPtr)
+ d len value like(xmlCint)
+
+ d xmlParserInputGrow...
+ d pr extproc('xmlParserInputGrow')
+ d like(xmlCint)
+ d in value like(xmlParserInputPtr)
+ d len value like(xmlCint)
+
+ * Basic parsing Interfaces
+
+ /if defined(LIBXML_SAX1_ENABLED)
+ d xmlParseDoc pr extproc('xmlParseDoc')
+ d like(xmlDocPtr)
+ d cur * value options(*string) const xmlChar *
+
+ d xmlParseFile pr extproc('xmlParseFile')
+ d like(xmlDocPtr)
+ d filename * value options(*string) const char *
+
+ d xmlParseMemory pr extproc('xmlParseMemory')
+ d like(xmlDocPtr)
+ d buffer * value options(*string) const char *
+ d size value like(xmlCint)
+ /endif LIBXML_SAX1_ENABLED
+
+ d xmlSubstituteEntitiesDefault...
+ d pr extproc(
+ d 'xmlSubstituteEntitiesDefault')
+ d like(xmlCint)
+ d val value like(xmlCint)
+
+ d xmlKeepBlanksDefault...
+ d pr extproc('xmlKeepBlanksDefault')
+ d like(xmlCint)
+ d val value like(xmlCint)
+
+ d xmlStopParser pr extproc('xmlStopParser')
+ d ctxt value like(xmlParserCtxtPtr)
+
+ d xmlPedanticParserDefault...
+ d pr extproc('xmlPedanticParserDefault')
+ d like(xmlCint)
+ d val value like(xmlCint)
+
+ d xmlLineNumbersDefault...
+ d pr extproc('xmlLineNumbersDefault')
+ d like(xmlCint)
+ d val value like(xmlCint)
+
+ /if defined(LIBXML_SAX1_ENABLED)
+ * Recovery mode
+
+ d xmlRecoverDoc pr extproc('xmlRecoverDoc')
+ d like(xmlDocPtr)
+ d cur * value options(*string) const xmlChar *
+
+ d xmlRecoverMemory...
+ d pr extproc('xmlRecoverMemory')
+ d like(xmlDocPtr)
+ d buffer * value options(*string) const char *
+ d size value like(xmlCint)
+
+ d xmlRecoverFile pr extproc('xmlRecoverFile')
+ d like(xmlDocPtr)
+ d filename * value options(*string) const char *
+ /endif LIBXML_SAX1_ENABLED
+
+ * Less common routines and SAX interfaces
+
+ d xmlParseDocument...
+ d pr extproc('xmlParseDocument')
+ d like(xmlCint)
+ d ctxt value like(xmlParserCtxtPtr)
+
+ d xmlParseExtParsedEnt...
+ d pr extproc('xmlParseExtParsedEnt')
+ d like(xmlCint)
+ d ctxt value like(xmlParserCtxtPtr)
+
+ /if defined(LIBXML_SAX1_ENABLED)
+ d xmlSAXUserParseFile...
+ d pr extproc('xmlSAXUserParseFile')
+ d like(xmlCint)
+ d sax value like(xmlSAXHandlerPtr)
+ d user_data * value void *
+ d filename * value options(*string) const char *
+
+ d xmlSAXUserParseMemory...
+ d pr extproc('xmlSAXUserParseMemory')
+ d like(xmlCint)
+ d sax value like(xmlSAXHandlerPtr)
+ d user_data * value void *
+ d buffer * value options(*string) const char *
+ d size value like(xmlCint)
+
+ d xmlSAXParseDoc pr extproc('xmlSAXParseDoc')
+ d like(xmlDocPtr)
+ d sax value like(xmlSAXHandlerPtr)
+ d cur * value options(*string) const xmlChar *
+ d recovery value like(xmlCint)
+
+ d xmlSAXParseMemory...
+ d pr extproc('xmlSAXParseMemory')
+ d like(xmlDocPtr)
+ d sax value like(xmlSAXHandlerPtr)
+ d buffer * value options(*string) const char *
+ d size value like(xmlCint)
+ d recovery value like(xmlCint)
+
+ d xmlSAXParseMemoryWithData...
+ d pr extproc('xmlSAXParseMemoryWithData')
+ d like(xmlDocPtr)
+ d sax value like(xmlSAXHandlerPtr)
+ d buffer * value options(*string) const char *
+ d size value like(xmlCint)
+ d recovery value like(xmlCint)
+ d data * value void *
+
+ d xmlSAXParseFile...
+ d pr extproc('xmlSAXParseFile')
+ d like(xmlDocPtr)
+ d sax value like(xmlSAXHandlerPtr)
+ d filename * value options(*string) const char *
+ d recovery value like(xmlCint)
+
+ d xmlSAXParseFileWithData...
+ d pr extproc('xmlSAXParseFileWithData')
+ d like(xmlDocPtr)
+ d sax value like(xmlSAXHandlerPtr)
+ d filename * value options(*string) const char *
+ d recovery value like(xmlCint)
+ d data * value void *
+
+ d xmlSAXParseEntity...
+ d pr extproc('xmlSAXParseEntity')
+ d like(xmlDocPtr)
+ d sax value like(xmlSAXHandlerPtr)
+ d filename * value options(*string) const char *
+
+ d xmlParseEntity...
+ d pr extproc('xmlParseEntity')
+ d like(xmlDocPtr)
+ d filename * value options(*string) const char *
+ /endif LIBXML_SAX1_ENABLED
+
+ /if defined(LIBXML_VALID_ENABLED)
+ d xmlSAXParseDTD pr extproc('xmlSAXParseDTD')
+ d like(xmlDtdPtr)
+ d sax value like(xmlSAXHandlerPtr)
+ d ExternalID * value options(*string) const xmlChar *
+ d SystemID * value options(*string) const xmlChar *
+
+ d xmlParseDTD pr extproc('xmlParseDTD')
+ d like(xmlDtdPtr)
+ d ExternalID * value options(*string) const xmlChar *
+ d SystemID * value options(*string) const xmlChar *
+
+ d xmlIOParseDTD pr extproc('xmlIOParseDTD')
+ d like(xmlDtdPtr)
+ d sax value like(xmlSAXHandlerPtr)
+ d input value like(xmlParserInputBufferPtr)
+ d enc value like(xmlCharEncoding)
+ /endif LIBXML_VALID_ENABLED
+
+ /if defined(LIBXML_SAX1_ENABLED)
+ d xmlParseBalancedChunkMemory...
+ d pr extproc(
+ d 'xmlParseBalancedChunkMemory')
+ d like(xmlCint)
+ d doc value like(xmlDocPtr)
+ d sax value like(xmlSAXHandlerPtr)
+ d user_data * value void *
+ d depth value like(xmlCint)
+ d user_data * value void *
+ d string * value options(*string) const xmlChar *
+ d lst * value xmlNodePtr *
+ /endif LIBXML_SAX1_ENABLED
+
+ d xmlParseInNodeContext...
+ d pr extproc('xmlParseInNodeContext')
+ d like(xmlParserErrors)
+ d node value like(xmlNodePtr)
+ d data * value options(*string) const char *
+ d datalen value like(xmlCint)
+ d options value like(xmlCint)
+ d lst * value xmlNodePtr *
+
+ /if defined(LIBXML_SAX1_ENABLED)
+ d xmlParseBalancedChunkMemoryRecover...
+ d pr extproc(
+ d 'xmlParseBalancedChunkMemoryRecover')
+ d like(xmlCint)
+ d doc value like(xmlDocPtr)
+ d sax value like(xmlSAXHandlerPtr)
+ d user_data * value void *
+ d depth value like(xmlCint)
+ d string * value options(*string) const xmlChar *
+ d lst * value xmlNodePtr *
+ d recover value like(xmlCint)
+
+ d xmlParseExternalEntity...
+ d pr extproc('xmlParseExternalEntity')
+ d like(xmlCint)
+ d doc value like(xmlDocPtr)
+ d sax value like(xmlSAXHandlerPtr)
+ d user_data * value void *
+ d depth value like(xmlCint)
+ d URL * value options(*string) const xmlChar *
+ d ID * value options(*string) const xmlChar *
+ d lst * value xmlNodePtr *
+ /endif LIBXML_SAX1_ENABLED
+
+ d xmlParseCtxtExternalEntity...
+ d pr extproc('xmlParseCtxtExternalEntity')
+ d like(xmlCint)
+ d sax value like(xmlSAXHandlerPtr)
+ d URL * value options(*string) const xmlChar *
+ d ID * value options(*string) const xmlChar *
+ d lst * value xmlNodePtr *
+
+ * Parser contexts handling.
+
+ d xmlNewParserCtxt...
+ d pr extproc('xmlNewParserCtxt')
+ d like(xmlParserCtxtPtr)
+
+ d xmlInitParserCtxt...
+ d pr extproc('xmlInitParserCtxt')
+ d like(xmlCint)
+ d ctxt value like(xmlParserCtxtPtr)
+
+ d xmlClearParserCtxt...
+ d pr extproc('xmlClearParserCtxt')
+ d ctxt value like(xmlParserCtxtPtr)
+
+ d xmlFreeParserCtxt...
+ d pr extproc('xmlFreeParserCtxt')
+ d ctxt value like(xmlParserCtxtPtr)
+
+ /if defined(LIBXML_SAX1_ENABLED)
+ d xmlSetupParserForBuffer...
+ d pr extproc('xmlSetupParserForBuffer')
+ d ctxt value like(xmlParserCtxtPtr)
+ d buffer * value options(*string) const xmlChar *
+ d filename * value options(*string) const char *
+ /endif LIBXML_SAX1_ENABLED
+
+ d xmlCreateDocParserCtxt...
+ d pr extproc('xmlCreateDocParserCtxt')
+ d like(xmlParserCtxtPtr)
+ d cur * value options(*string) const xmlChar *
+
+ /if defined(LIBXML_LEGACY_ENABLED)
+ * Reading/setting optional parsing features.
+
+ d xmlGetFeaturesList...
+ d pr extproc('xmlGetFeaturesList')
+ d like(xmlCint)
+ d len like(xmlCint)
+ d result * const char *(*)
+
+ d xmlGetFeature pr extproc('xmlGetFeature')
+ d like(xmlCint)
+ d ctxt value like(xmlParserCtxtPtr)
+ d name * value options(*string) const char *
+ d result * value void *
+
+ d xmlSetFeature pr extproc('xmlSetFeature')
+ d like(xmlCint)
+ d ctxt value like(xmlParserCtxtPtr)
+ d name * value options(*string) const char *
+ d result * value void *
+ /endif LIBXML_LEGACY_ENABLD
+
+ /if defined(LIBXML_PUSH_ENABLED)
+ * Interfaces for the Push mode.
+
+ d xmlCreatePushParserCtxt...
+ d pr extproc('xmlCreatePushParserCtxt')
+ d like(xmlParserCtxtPtr)
+ d sax value like(xmlSAXHandlerPtr)
+ d user_data * value void *
+ d chunk * value options(*string) const char *
+ d size value like(xmlCint)
+ d filename * value options(*string) const char *
+
+ d xmlParseChunk pr extproc('xmlParseChunk')
+ d like(xmlCint)
+ d ctxt value like(xmlParserCtxtPtr)
+ d chunk * value options(*string) const char *
+ d size value like(xmlCint)
+ d terminate value like(xmlCint)
+ /endif LIBXML_PUSH_ENABLED
+
+ * Special I/O mode.
+
+ d xmlCreateIOParserCtxt...
+ d pr extproc('xmlCreateIOParserCtxt')
+ d like(xmlParserCtxtPtr)
+ d sax value like(xmlSAXHandlerPtr)
+ d user_data * value void *
+ d ioread value like(xmlInputReadCallback)
+ d ioclose value like(xmlInputCloseCallback)
+ d ioctx * value void *
+ d enc value like(xmlCharEncoding)
+
+ d xmlNewIOInputStream...
+ d pr extproc('xmlNewIOInputStream')
+ d like(xmlParserInputPtr)
+ d ctxt value like(xmlParserCtxtPtr)
+ d input value like(xmlParserInputBufferPtr)
+ d enc value like(xmlCharEncoding)
+
+ * Node infos.
+
+ d xmlParserFindNodeInfo...
+ d pr * extproc('xmlParserFindNodeInfo') xmlParserNodeInfo *
+ d ctxt value like(xmlParserCtxtPtr)
+ d node value like(xmlNodePtr) const
+
+ d xmlInitNodeInfoSeq...
+ d pr extproc('xmlInitNodeInfoSeq')
+ d seq value like(xmlParserNodeInfoSeqPtr)
+
+ d xmlClearNodeInfoSeq...
+ d pr extproc('xmlClearNodeInfoSeq')
+ d seq value like(xmlParserNodeInfoSeqPtr)
+
+ d xmlParserFindNodeInfoIndex...
+ d pr extproc('xmlParserFindNodeInfoIndex')
+ d like(xmlCulong)
+ d seq value like(xmlParserNodeInfoSeqPtr)
+ d node value like(xmlNodePtr) const
+
+ d xmlParserAddNodeInfo...
+ d pr extproc('xmlParserAddNodeInfo')
+ d ctxt value like(xmlParserCtxtPtr)
+ d info value like(xmlParserNodeInfoPtr) const
+
+ * External entities handling actually implemented in xmlIO.
+
+ d xmlSetExternalEntityLoader...
+ d pr extproc('xmlSetExternalEntityLoader')
+ d f value like(xmlExternalEntityLoader)
+
+ d xmlGetExternalEntityLoader...
+ d pr extproc('xmlGetExternalEntityLoader')
+ d like(xmlExternalEntityLoader)
+
+ d xmlLoadExternalEntity...
+ d pr extproc('xmlLoadExternalEntity')
+ d like(xmlParserInputPtr)
+ d URL * value options(*string) const char *
+ d ID * value options(*string) const char *
+ d ctxt value like(xmlParserCtxtPtr)
+
+ * Index lookup, actually implemented in the encoding module
+
+ d xmlByteConsumed...
+ d pr extproc('xmlByteConsumed')
+ d like(xmlClong)
+ d ctxt value like(xmlParserCtxtPtr)
+
+ * New set of simpler/more flexible APIs
+
+ * xmlParserOption:
+ *
+ * This is the set of XML parser options that can be passed down
+ * to the xmlReadDoc() and similar calls.
+
+ d xmlParserOption...
+ d s based(######typedef######)
+ d like(xmlCenum)
+ d XML_PARSE_RECOVER... Recover on errors
+ d c X'00000001'
+ d XML_PARSE_NOENT... Substitute entities
+ d c X'00000002'
+ d XML_PARSE_DTDLOAD... Load external subset
+ d c X'00000004'
+ d XML_PARSE_DTDATTR... Default DTD attrs
+ d c X'00000008'
+ d XML_PARSE_DTDVALID... Validate with DTD
+ d c X'00000010'
+ d XML_PARSE_NOERROR... Suppress err reports
+ d c X'00000020'
+ d XML_PARSE_NOWARNING... Suppr warn reports
+ d c X'00000040'
+ d XML_PARSE_PEDANTIC... Pedantic err report
+ d c X'00000080'
+ d XML_PARSE_NOBLANKS... Remove blank nodes
+ d c X'00000100'
+ d XML_PARSE_SAX1... Use SAX1 internally
+ d c X'00000200'
+ d XML_PARSE_XINCLUDE... Impl XInclude subst
+ d c X'00000400'
+ d XML_PARSE_NONET... Forbid netwrk access
+ d c X'00000800'
+ d XML_PARSE_NODICT... No contxt dict reuse
+ d c X'00001000'
+ d XML_PARSE_NSCLEAN... Rmv redndnt ns decls
+ d c X'00002000'
+ d XML_PARSE_NOCDATA... CDATA as text nodes
+ d c X'00004000'
+ d XML_PARSE_NOXINCNODE... No XINCL START/END
+ d c X'00008000'
+ d XML_PARSE_COMPACT... Compact text nodes
+ d c X'00010000'
+ d XML_PARSE_OLD10... B4 upd5 compatible
+ d c X'00020000'
+ d XML_PARSE_NOBASEFIX... No XINC xml:base fix
+ d c X'00040000'
+ d XML_PARSE_HUGE... No parsing limit
+ d c X'00080000'
+ d XML_PARSE_OLDSAX... Use SAX2 b4 2.7.0
+ d c X'00100000'
+ d XML_PARSE_IGNORE_ENC... No int doc code hint
+ d c X'00200000'
+ d XML_PARSE_BIG_LINES... Big line#-->PSVI fld
+ d c X'00400000'
+
+ d xmlCtxtReset pr extproc('xmlCtxtReset')
+ d ctxt value like(xmlParserCtxtPtr)
+
+ d xmlCtxtResetPush...
+ d pr extproc('xmlCtxtResetPush')
+ d like(xmlCint)
+ d ctxt value like(xmlParserCtxtPtr)
+ d chunk * value options(*string) const char *
+ d size value like(xmlCint)
+ d filename * value options(*string) const char *
+ d encoding * value options(*string) const char *
+
+ d xmlCtxtUseOptions...
+ d pr extproc('xmlCtxtUseOptions')
+ d like(xmlCint)
+ d ctxt value like(xmlParserCtxtPtr)
+ d options value like(xmlCint)
+
+ d xmlReadDoc pr extproc('xmlReadDoc')
+ d like(xmlDocPtr)
+ d cur * value options(*string) const xmlChar *
+ d URL * value options(*string) const char *
+ d encoding * value options(*string) const char *
+ d options value like(xmlCint)
+
+ d xmlReadFile pr extproc('xmlReadFile')
+ d like(xmlDocPtr)
+ d URL * value options(*string) const char *
+ d encoding * value options(*string) const char *
+ d options value like(xmlCint)
+
+ d xmlReadMemory pr extproc('xmlReadMemory')
+ d like(xmlDocPtr)
+ d buffer * value options(*string) const char *
+ d size value like(xmlCint)
+ d URL * value options(*string) const char *
+ d encoding * value options(*string) const char *
+ d options value like(xmlCint)
+
+ d xmlReadFd pr extproc('xmlReadFd')
+ d like(xmlDocPtr)
+ d fd value like(xmlCint)
+ d URL * value options(*string) const char *
+ d encoding * value options(*string) const char *
+ d options value like(xmlCint)
+
+ d xmlReadIO pr extproc('xmlReadIO')
+ d like(xmlDocPtr)
+ d ioread value like(xmlInputReadCallback)
+ d ioclose value like(xmlInputCloseCallback)
+ d ioctx * value void *
+ d URL * value options(*string) const char *
+ d encoding * value options(*string) const char *
+ d options value like(xmlCint)
+
+ d xmlCtxtReadDoc pr extproc('xmlCtxtReadDoc')
+ d like(xmlDocPtr)
+ d ctxt value like(xmlParserCtxtPtr)
+ d cur * value options(*string) const xmlChar *
+ d URL * value options(*string) const char *
+ d encoding * value options(*string) const char *
+ d options value like(xmlCint)
+
+ d xmlCtxtReadFile...
+ d pr extproc('xmlCtxtReadFile')
+ d like(xmlDocPtr)
+ d ctxt value like(xmlParserCtxtPtr)
+ d filename * value options(*string) const char *
+ d encoding * value options(*string) const char *
+ d options value like(xmlCint)
+
+ d xmlCtxtReadMemory...
+ d pr extproc('xmlCtxtReadMemory')
+ d like(xmlDocPtr)
+ d ctxt value like(xmlParserCtxtPtr)
+ d buffer * value options(*string) const char *
+ d size value like(xmlCint)
+ d URL * value options(*string) const char *
+ d encoding * value options(*string) const char *
+ d options value like(xmlCint)
+
+ d xmlCtxtReadFd pr extproc('xmlCtxtReadFd')
+ d like(xmlDocPtr)
+ d ctxt value like(xmlParserCtxtPtr)
+ d fd value like(xmlCint)
+ d URL * value options(*string) const char *
+ d encoding * value options(*string) const char *
+ d options value like(xmlCint)
+
+ d xmlCtxtReadIO pr extproc('xmlCtxtReadIO')
+ d like(xmlDocPtr)
+ d ctxt value like(xmlParserCtxtPtr)
+ d ioread value like(xmlInputReadCallback)
+ d ioclose value like(xmlInputCloseCallback)
+ d ioctx * value void *
+ d URL * value options(*string) const char *
+ d encoding * value options(*string) const char *
+ d options value like(xmlCint)
+
+ * Library wide options
+
+ * xmlFeature:
+ *
+ * Used to examine the existance of features that can be enabled
+ * or disabled at compile-time.
+ * They used to be called XML_FEATURE_xxx but this clashed with Expat
+
+ d xmlFeature s based(######typedef######)
+ d like(xmlCenum)
+ d XML_WITH_THREAD...
+ d c 1
+ d XML_WITH_TREE c 2
+ d XML_WITH_OUTPUT...
+ d c 3
+ d XML_WITH_PUSH c 4
+ d XML_WITH_READER...
+ d c 5
+ d XML_WITH_PATTERN...
+ d c 6
+ d XML_WITH_WRITER...
+ d c 7
+ d XML_WITH_SAX1 c 8
+ d XML_WITH_FTP c 9
+ d XML_WITH_HTTP c 10
+ d XML_WITH_VALID...
+ d c 11
+ d XML_WITH_HTML c 12
+ d XML_WITH_LEGACY...
+ d c 13
+ d XML_WITH_C14N c 14
+ d XML_WITH_CATALOG...
+ d c 15
+ d XML_WITH_XPATH...
+ d c 16
+ d XML_WITH_XPTR c 17
+ d XML_WITH_XINCLUDE...
+ d c 18
+ d XML_WITH_ICONV...
+ d c 19
+ d XML_WITH_ISO8859X...
+ d c 20
+ d XML_WITH_UNICODE...
+ d c 21
+ d XML_WITH_REGEXP...
+ d c 22
+ d XML_WITH_AUTOMATA...
+ d c 23
+ d XML_WITH_EXPR c 24
+ d XML_WITH_SCHEMAS...
+ d c 25
+ d XML_WITH_SCHEMATRON...
+ d c 26
+ d XML_WITH_MODULES...
+ d c 27
+ d XML_WITH_DEBUG...
+ d c 28
+ d XML_WITH_DEBUG_MEM...
+ d c 29
+ d XML_WITH_DEBUG_RUN...
+ d c 30
+ d XML_WITH_ZLIB c 31
+ d XML_WITH_ICU c 32
+ d XML_WITH_LZMA c 33
+ d XML_WITH_NONE c 99999
+
+ d xmlHasFeature pr extproc('xmlHasFeature')
+ d like(xmlCint)
+ d feature value like(xmlFeature)
+
+ /endif XML_PARSER_H__
diff --git a/libxml2/os400/libxmlrpg/parserInternals.rpgle b/libxml2/os400/libxmlrpg/parserInternals.rpgle
new file mode 100644
index 0000000..6c8f388
--- /dev/null
+++ b/libxml2/os400/libxmlrpg/parserInternals.rpgle
@@ -0,0 +1,598 @@
+ * Summary: internals routines and limits exported by the parser.
+ * Description: this module exports a number of internal parsing routines
+ * they are not really all intended for applications but
+ * can prove useful doing low level processing.
+ *
+ * Copy: See Copyright for the status of this software.
+ *
+ * Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A.
+
+ /if not defined(XML_PARSER_INTERNALS_H__)
+ /define XML_PARSER_INTERNALS_H__
+
+ /include "libxmlrpg/xmlversion"
+ /include "libxmlrpg/xmlTypesC"
+ /include "libxmlrpg/parser"
+ /include "libxmlrpg/HTMLparser"
+ /include "libxmlrpg/chvalid"
+
+ * xmlParserMaxDepth:
+ *
+ * arbitrary depth limit for the XML documents that we allow to
+ * process. This is not a limitation of the parser but a safety
+ * boundary feature, use XML_PARSE_HUGE option to override it.
+
+ d xmlParserMaxDepth...
+ d s import('xmlParserMaxDepth')
+ d like(xmlCuint)
+
+ * XML_MAX_TEXT_LENGTH:
+ *
+ * Maximum size allowed for a single text node when building a tree.
+ * This is not a limitation of the parser but a safety boundary feature,
+ * use XML_PARSE_HUGE option to override it.
+ * Introduced in 2.9.0
+
+ d XML_MAX_TEXT_LENGTH...
+ d c 10000000
+
+ * XML_MAX_NAME_LENGTH:
+ *
+ * Maximum size allowed for a markup identitier
+ * This is not a limitation of the parser but a safety boundary feature,
+ * use XML_PARSE_HUGE option to override it.
+ * Note that with the use of parsing dictionaries overriding the limit
+ * may result in more runtime memory usage in face of "unfriendly' content
+ * Introduced in 2.9.0
+
+ d XML_MAX_NAME_LENGTH...
+ d c 50000
+
+ * XML_MAX_DICTIONARY_LIMIT:
+ *
+ * Maximum size allowed by the parser for a dictionary by default
+ * This is not a limitation of the parser but a safety boundary feature,
+ * use XML_PARSE_HUGE option to override it.
+ * Introduced in 2.9.0
+
+ d XML_MAX_DICTIONARY_LIMIT...
+ d c 10000000
+
+ * XML_MAX_LOOKUP_LIMIT:
+ *
+ * Maximum size allowed by the parser for ahead lookup
+ * This is an upper boundary enforced by the parser to avoid bad
+ * behaviour on "unfriendly' content
+ * Introduced in 2.9.0
+
+ d XML_MAX_LOOKUP_LIMIT...
+ d c 10000000
+
+ * XML_MAX_NAMELEN:
+ *
+ * Identifiers can be longer, but this will be more costly
+ * at runtime.
+
+ d XML_MAX_NAMELEN...
+ d c 100
+
+ * INPUT_CHUNK:
+ *
+ * The parser tries to always have that amount of input ready.
+ * One of the point is providing context when reporting errors.
+
+ d INPUT_CHUNK c 250
+
+ * Global variables used for predefined strings.
+
+ d xmlStringText s 4 import('xmlStringText') \0 in 5th byte
+
+ d xmlStringTextNoenc...
+ d s 9 import('xmlStringTextNoenc') \0 in 10th byte
+
+ d xmlStringComment...
+ d s 7 import('xmlStringComment') \0 in 8th byte
+
+ * Function to finish the work of the macros where needed.
+
+ d xmlIsLetter pr extproc('xmlIsLetter')
+ d like(xmlCint)
+ d c value like(xmlCint)
+
+ * Parser context.
+
+ d xmlCreateFileParserCtxt...
+ d pr extproc('xmlCreateFileParserCtxt')
+ d like(xmlParserCtxtPtr)
+ d filename * value options(*string) const char *
+
+ d xmlCreateURLParserCtxt...
+ d pr extproc('xmlCreateURLParserCtxt')
+ d like(xmlParserCtxtPtr)
+ d filename * value options(*string) const char *
+ d options value like(xmlCint)
+
+ d xmlCreateMemoryParserCtxt...
+ d pr extproc('xmlCreateMemoryParserCtxt')
+ d like(xmlParserCtxtPtr)
+ d buffer * value options(*string) const char *
+ d size value like(xmlCint)
+
+ d xmlCreateEntityParserCtxt...
+ d pr extproc('xmlCreateEntityParserCtxt')
+ d like(xmlParserCtxtPtr)
+ d URL * value options(*string) const xmlChar *
+ d ID * value options(*string) const xmlChar *
+ d base * value options(*string) const xmlChar *
+
+ d xmlSwitchEncoding...
+ d pr extproc('xmlSwitchEncoding')
+ d like(xmlCint)
+ d ctxt value like(xmlParserCtxtPtr)
+ d enc value like(xmlCharEncoding)
+
+ d xmlSwitchToEncoding...
+ d pr extproc('xmlSwitchToEncoding')
+ d like(xmlCint)
+ d ctxt value like(xmlParserCtxtPtr)
+ d handler value like(xmlCharEncodingHandlerPtr)
+
+ d xmlSwitchInputEncoding...
+ d pr extproc('xmlSwitchInputEncoding')
+ d like(xmlCint)
+ d ctxt value like(xmlParserCtxtPtr)
+ d input value like(xmlParserInputPtr)
+ d handler value like(xmlCharEncodingHandlerPtr)
+
+ * Input Streams.
+
+ d xmlNewStringInputStream...
+ d pr extproc('xmlNewStringInputStream')
+ d like(xmlParserInputPtr)
+ d ctxt value like(xmlParserCtxtPtr)
+ d buffer * value options(*string) const xmlChar *
+
+ d xmlNewEntityInputStream...
+ d pr extproc('xmlNewEntityInputStream')
+ d like(xmlParserInputPtr)
+ d ctxt value like(xmlParserCtxtPtr)
+ d entity value like(xmlEntityPtr)
+
+ d xmlPushInput pr extproc('xmlPushInput')
+ d like(xmlCint)
+ d ctxt value like(xmlParserCtxtPtr)
+ d input value like(xmlParserInputPtr)
+
+ d xmlPopInput pr extproc('xmlPopInput')
+ d like(xmlChar)
+ d ctxt value like(xmlParserCtxtPtr)
+
+ d xmlFreeInputStream...
+ d pr extproc('xmlFreeInputStream')
+ d input value like(xmlParserInputPtr)
+
+ d xmlNewInputFromFile...
+ d pr extproc('xmlNewInputFromFile')
+ d like(xmlParserInputPtr)
+ d ctxt value like(xmlParserCtxtPtr)
+ d filename * value options(*string) const char *
+
+ d xmlNewInputStream...
+ d pr extproc('xmlNewInputStream')
+ d like(xmlParserInputPtr)
+ d ctxt value like(xmlParserCtxtPtr)
+
+ * Namespaces.
+
+ d xmlSplitQName pr * extproc('xmlSplitQName') xmlChar *
+ d ctxt value like(xmlParserCtxtPtr)
+ d name * value options(*string) const xmlChar *
+ d prefix * xmlChar *(*)
+
+ * Generic production rules.
+
+ d xmlParseName pr * extproc('xmlParseName') const xmlChar *
+ d ctxt value like(xmlParserCtxtPtr)
+
+ d xmlParseNmtoken...
+ d pr * extproc('xmlParseNmtoken') xmlChar *
+ d ctxt value like(xmlParserCtxtPtr)
+
+ d xmlParseEntityValue...
+ d pr * extproc('xmlParseEntityValue') xmlChar *
+ d ctxt value like(xmlParserCtxtPtr)
+ d orig * xmlChar *(*)
+
+ d xmlParseAttValue...
+ d pr * extproc('xmlParseAttValue') xmlChar *
+ d ctxt value like(xmlParserCtxtPtr)
+
+ d xmlParseSystemLiteral...
+ d pr * extproc('xmlParseSystemLiteral') xmlChar *
+ d ctxt value like(xmlParserCtxtPtr)
+
+ d xmlParsePubidLiteral...
+ d pr * extproc('xmlParsePubidLiteral') xmlChar *
+ d ctxt value like(xmlParserCtxtPtr)
+
+ d xmlParseCharData...
+ d pr extproc('xmlParseCharData')
+ d ctxt value like(xmlParserCtxtPtr)
+ d cdata value like(xmlCint)
+
+ d xmlParseExternalID...
+ d pr * extproc('xmlParseExternalID') xmlChar *
+ d ctxt value like(xmlParserCtxtPtr)
+ d publicID * xmlChar *(*)
+ d strict value like(xmlCint)
+
+ d xmlParseComment...
+ d pr extproc('xmlParseComment')
+ d ctxt value like(xmlParserCtxtPtr)
+
+ d xmlParsePITarget...
+ d pr * extproc('xmlParsePITarget') const xmlChar *
+ d ctxt value like(xmlParserCtxtPtr)
+
+ d xmlParsePI pr extproc('xmlParsePI')
+ d ctxt value like(xmlParserCtxtPtr)
+
+ d xmlParseNotationDecl...
+ d pr extproc('xmlParseNotationDecl')
+ d ctxt value like(xmlParserCtxtPtr)
+
+ d xmlParseEntityDecl...
+ d pr extproc('xmlParseEntityDecl')
+ d ctxt value like(xmlParserCtxtPtr)
+
+ d xmlParseDefaultDecl...
+ d pr extproc('xmlParseDefaultDecl')
+ d like(xmlCint)
+ d ctxt value like(xmlParserCtxtPtr)
+ d value * xmlChar *(*)
+
+ d xmlParseNotationType...
+ d pr extproc('xmlParseNotationType')
+ d like(xmlEnumerationPtr)
+ d ctxt value like(xmlParserCtxtPtr)
+
+ d xmlParseEnumerationType...
+ d pr extproc('xmlParseEnumerationType')
+ d like(xmlEnumerationPtr)
+ d ctxt value like(xmlParserCtxtPtr)
+
+ d xmlParseEnumeratedType...
+ d pr extproc('xmlParseEnumeratedType')
+ d like(xmlCint)
+ d ctxt value like(xmlParserCtxtPtr)
+ d tree * value xmlEnumerationPtr *
+
+ d xmlParseAttributeType...
+ d pr extproc('xmlParseAttributeType')
+ d like(xmlCint)
+ d ctxt value like(xmlParserCtxtPtr)
+ d tree * value xmlEnumerationPtr *
+
+ d xmlParseAttributeListDecl...
+ d pr extproc('xmlParseAttributeListDecl')
+ d ctxt value like(xmlParserCtxtPtr)
+
+ d xmlParseElementMixedContentDecl...
+ d pr extproc(
+ d 'xmlParseElementMixedContentDecl')
+ d like(xmlElementContentPtr)
+ d ctxt value like(xmlParserCtxtPtr)
+ d inputchk value like(xmlCint)
+
+ d xmlParseElementChildrenContentDecl...
+ d pr extproc(
+ d 'xmlParseElementChildrenContentDecl')
+ d like(xmlElementContentPtr)
+ d ctxt value like(xmlParserCtxtPtr)
+ d inputchk value like(xmlCint)
+
+ d xmlParseElementContentDecl...
+ d pr extproc('xmlParseElementContentDecl')
+ d like(xmlCint)
+ d ctxt value like(xmlParserCtxtPtr)
+ d name * value options(*string) const xmlChar *
+ d result * value xmlElementContentPtr
+ d *
+
+ d xmlParseElementDecl...
+ d pr extproc('xmlParseElementDecl')
+ d like(xmlCint)
+ d ctxt value like(xmlParserCtxtPtr)
+
+ d xmlParseMarkupDecl...
+ d pr extproc('xmlParseMarkupDecl')
+ d ctxt value like(xmlParserCtxtPtr)
+
+ d xmlParseCharRef...
+ d pr extproc('xmlParseCharRef')
+ d like(xmlCint)
+ d ctxt value like(xmlParserCtxtPtr)
+
+ d xmlParseEntityRef...
+ d pr extproc('xmlParseEntityRef')
+ d like(xmlEntityPtr)
+ d ctxt value like(xmlParserCtxtPtr)
+
+ d xmlParseReference...
+ d pr extproc('xmlParseReference')
+ d ctxt value like(xmlParserCtxtPtr)
+
+ d xmlParsePEReference...
+ d pr extproc('xmlParsePEReference')
+ d ctxt value like(xmlParserCtxtPtr)
+
+ d xmlParseDocTypeDecl...
+ d pr extproc('xmlParseDocTypeDecl')
+ d ctxt value like(xmlParserCtxtPtr)
+
+ /if defined(LIBXML_SAX1_ENABLED)
+ d xmlParseAttribute...
+ d pr * extproc('xmlParseAttribute') const xmlChar *
+ d ctxt value like(xmlParserCtxtPtr)
+ d value * xmlChar *(*)
+
+ d xmlParseStartTag...
+ d pr * extproc('xmlParseStartTag') const xmlChar *
+ d ctxt value like(xmlParserCtxtPtr)
+
+ d xmlParseEndTag pr extproc('xmlParseEndTag')
+ d ctxt value like(xmlParserCtxtPtr)
+ /endif LIBXML_SAX1_ENABLED
+
+ d xmlParseCDSect pr extproc('xmlParseCDSect')
+ d ctxt value like(xmlParserCtxtPtr)
+
+ d xmlParseContent...
+ d pr extproc('xmlParseContent')
+ d ctxt value like(xmlParserCtxtPtr)
+
+ d xmlParseElement...
+ d pr extproc('xmlParseElement')
+ d ctxt value like(xmlParserCtxtPtr)
+
+ d xmlParseVersionNum...
+ d pr * extproc('xmlParseVersionNum') xmlChar *
+ d ctxt value like(xmlParserCtxtPtr)
+
+ d xmlParseVersionInfo...
+ d pr * extproc('xmlParseVersionInfo') xmlChar *
+ d ctxt value like(xmlParserCtxtPtr)
+
+ d xmlParseEncName...
+ d pr * extproc('xmlParseEncName') xmlChar *
+ d ctxt value like(xmlParserCtxtPtr)
+
+ d xmlParseEncodingDecl...
+ d pr * extproc('xmlParseEncodingDecl') const xmlChar *
+ d ctxt value like(xmlParserCtxtPtr)
+
+ d xmlParseSDDecl pr extproc('xmlParseSDDecl')
+ d like(xmlCint)
+ d ctxt value like(xmlParserCtxtPtr)
+
+ d xmlParseXMLDecl...
+ d pr extproc('xmlParseXMLDecl')
+ d ctxt value like(xmlParserCtxtPtr)
+
+ d xmlParseTextDecl...
+ d pr extproc('xmlParseTextDecl')
+ d ctxt value like(xmlParserCtxtPtr)
+
+ d xmlParseMisc pr extproc('xmlParseMisc')
+ d ctxt value like(xmlParserCtxtPtr)
+
+ d xmlParseExternalSubset...
+ d pr extproc('xmlParseExternalSubset')
+ d ctxt value like(xmlParserCtxtPtr)
+ d ExternalID * value options(*string) const xmlChar *
+ d SystemID * value options(*string) const xmlChar *
+
+ * XML_SUBSTITUTE_NONE:
+ *
+ * If no entities need to be substituted.
+
+ d XML_SUBSTITUTE_NONE...
+ d c 0
+
+ * XML_SUBSTITUTE_REF:
+ *
+ * Whether general entities need to be substituted.
+
+ d XML_SUBSTITUTE_REF...
+ d c 1
+
+ * XML_SUBSTITUTE_PEREF:
+ *
+ * Whether parameter entities need to be substituted.
+
+ d XML_SUBSTITUTE_PEREF...
+ d c 2
+
+ * XML_SUBSTITUTE_BOTH:
+ *
+ * Both general and parameter entities need to be substituted.
+
+ d XML_SUBSTITUTE_BOTH...
+ d c 3
+
+ d xmlStringDecodeEntities...
+ d pr * extproc('xmlStringDecodeEntities') xmlChar *
+ d ctxt value like(xmlParserCtxtPtr)
+ d str * value options(*string) const xmlChar *
+ d what value like(xmlCint)
+ d end value like(xmlChar)
+ d end2 value like(xmlChar)
+ d end3 value like(xmlChar)
+
+ d xmlStringLenDecodeEntities...
+ d pr * extproc('xmlStringLenDecodeEntities')xmlChar *
+ d ctxt value like(xmlParserCtxtPtr)
+ d str * value options(*string) const xmlChar *
+ d len value like(xmlCint)
+ d what value like(xmlCint)
+ d end value like(xmlChar)
+ d end2 value like(xmlChar)
+ d end3 value like(xmlChar)
+
+ * Generated by MACROS on top of parser.c c.f. PUSH_AND_POP.
+
+ d nodePush pr extproc('nodePush')
+ d like(xmlCint)
+ d ctxt value like(xmlParserCtxtPtr)
+ d value value like(xmlNodePtr)
+
+ d nodePop pr extproc('nodePop')
+ d like(xmlNodePtr)
+ d ctxt value like(xmlParserCtxtPtr)
+
+ d inputPush pr extproc('inputPush')
+ d like(xmlCint)
+ d ctxt value like(xmlParserCtxtPtr)
+ d value value like(xmlParserInputPtr)
+
+ d inputPop pr extproc('inputPop')
+ d like(xmlParserInputPtr)
+ d ctxt value like(xmlParserCtxtPtr)
+
+ d namePop pr * extproc('namePop') const xmlChar *
+ d ctxt value like(xmlParserCtxtPtr)
+
+ d namePush pr extproc('namePush')
+ d like(xmlCint)
+ d ctxt value like(xmlParserCtxtPtr)
+ d value * value options(*string) const xmlChar *
+
+ * other commodities shared between parser.c and parserInternals.
+
+ d xmlSkipBlankChars...
+ d pr extproc('xmlSkipBlankChars')
+ d like(xmlCint)
+ d ctxt value like(xmlParserCtxtPtr)
+
+ d xmlStringCurrentChar...
+ d pr extproc('xmlStringCurrentChar')
+ d like(xmlCint)
+ d ctxt value like(xmlParserCtxtPtr)
+ d cur * value options(*string) const xmlChar *
+ d len * value int *
+
+ d xmlParserHandlePEReference...
+ d pr extproc('xmlParserHandlePEReference')
+ d ctxt value like(xmlParserCtxtPtr)
+
+ d xmlCheckLanguageID...
+ d pr extproc('xmlCheckLanguageID')
+ d like(xmlCint)
+ d lang * value options(*string) const xmlChar *
+
+ * Really core function shared with HTML parser.
+
+ d xmlCurrentChar pr extproc('xmlCurrentChar')
+ d like(xmlCint)
+ d ctxt value like(xmlParserCtxtPtr)
+ d len * value int *
+
+ d xmlCopyCharMultiByte...
+ d pr extproc('xmlCopyCharMultiByte')
+ d like(xmlCint)
+ d out * value options(*string) xmlChar *
+ d val value like(xmlCint)
+
+ d xmlCopyChar pr extproc('xmlCopyChar')
+ d like(xmlCint)
+ d len value like(xmlCint)
+ d out * value options(*string) xmlChar *
+ d val value like(xmlCint)
+
+ d xmlNextChar pr extproc('xmlNextChar')
+ d ctxt value like(xmlParserCtxtPtr)
+
+ d xmlParserInputShrink...
+ d pr extproc('xmlParserInputShrink')
+ d in value like(xmlParserInputPtr)
+
+ /if defined(LIBXML_HTML_ENABLED)
+
+ * Actually comes from the HTML parser but launched from the init stuff.
+
+ d htmlInitAutoClose...
+ d pr extproc('htmlInitAutoClose')
+
+ d htmlCreateFileParserCtxt...
+ d pr extproc('htmlCreateFileParserCtxt')
+ d like(htmlParserCtxtPtr)
+ d filename * value options(*string) const char *
+ d encoding * value options(*string) const char *
+ /endif
+
+ * Specific function to keep track of entities references
+ * and used by the XSLT debugger.
+
+ /if defined(LIBXML_LEGACY_ENABLED)
+ * xmlEntityReferenceFunc:
+ * @ent: the entity
+ * @firstNode: the fist node in the chunk
+ * @lastNode: the last nod in the chunk
+ *
+ * Callback function used when one needs to be able to track back the
+ * provenance of a chunk of nodes inherited from an entity replacement.
+
+ d xmlEntityReferenceFunc...
+ d s * based(######typedef######)
+ d procptr
+
+ d xmlSetEntityReferenceFunc...
+ d pr extproc('xmlSetEntityReferenceFunc')
+ d func value like(xmlEntityReferenceFunc)
+
+ d xmlParseQuotedString...
+ d pr * extproc('xmlParseQuotedString') xmlChar *
+ d ctxt value like(xmlParserCtxtPtr)
+
+ d xmlParseNamespace...
+ d pr extproc('xmlParseNamespace')
+ d ctxt value like(xmlParserCtxtPtr)
+
+ d xmlNamespaceParseNSDef...
+ d pr * extproc('xmlNamespaceParseNSDef') xmlChar *
+ d ctxt value like(xmlParserCtxtPtr)
+
+ d xmlScanName pr * extproc('xmlScanName') xmlChar *
+ d ctxt value like(xmlParserCtxtPtr)
+
+ d xmlNamespaceParseNCName...
+ d pr * extproc('xmlNamespaceParseNCName') xmlChar *
+ d ctxt value like(xmlParserCtxtPtr)
+
+ d xmlParserHandleReference...
+ d pr extproc('xmlParserHandleReference')
+ d ctxt value like(xmlParserCtxtPtr)
+
+ d xmlNamespaceParseQName...
+ d pr * extproc('xmlNamespaceParseQName') xmlChar *
+ d ctxt value like(xmlParserCtxtPtr)
+ d prefix * xmlChar *(*)
+
+ * Entities
+
+ d xmlDecodeEntities...
+ d pr * extproc('xmlDecodeEntities') xmlChar *
+ d ctxt value like(xmlParserCtxtPtr)
+ d len value like(xmlCint)
+ d what value like(xmlCint)
+ d end value like(xmlChar)
+ d end2 value like(xmlChar)
+ d end3 value like(xmlChar)
+
+ d xmlHandleEntity...
+ d pr extproc('xmlHandleEntity')
+ d ctxt value like(xmlParserCtxtPtr)
+ d entity value like(xmlEntityPtr)
+ /endif LIBXML_LEGACY_ENABLD
+
+ /endif
diff --git a/libxml2/os400/libxmlrpg/pattern.rpgle b/libxml2/os400/libxmlrpg/pattern.rpgle
new file mode 100644
index 0000000..ef02301
--- /dev/null
+++ b/libxml2/os400/libxmlrpg/pattern.rpgle
@@ -0,0 +1,130 @@
+ * Summary: pattern expression handling
+ * Description: allows to compile and test pattern expressions for nodes
+ * either in a tree or based on a parser state.
+ *
+ * Copy: See Copyright for the status of this software.
+ *
+ * Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A.
+
+ /if not defined(XML_PATTERN_H__)
+ /define XML_PATTERN_H__
+
+ /include "libxmlrpg/xmlversion"
+
+ /if defined(LIBXML_PATTERN_ENABLED)
+
+ /include "libxmlrpg/xmlTypesC"
+ /include "libxmlrpg/tree"
+ /include "libxmlrpg/dict"
+
+ * xmlPattern:
+ *
+ * A compiled (XPath based) pattern to select nodes
+
+ d xmlPatternPtr...
+ d s * based(######typedef######)
+
+ * xmlPatternFlags:
+ *
+ * This is the set of options affecting the behaviour of pattern
+ * matching with this module
+
+ d xmlPatternFlags...
+ d s based(######typedef######)
+ d like(xmlCenum)
+ d XML_PATTERN_DEFAULT... Simple pattern match
+ d c X'0000'
+ d XML_PATTERN_XPATH... Std XPath pattern
+ d c X'0001'
+ d XML_PATTERN_XSSEL... Schm sel XPth subset
+ d c X'0002'
+ d XML_PATTERN_XSFIELD... Schm fld XPth subset
+ d c X'0004'
+
+ d xmlFreePattern pr extproc('xmlFreePattern')
+ d comp value like(xmlPatternPtr)
+
+ d xmlFreePatternList...
+ d pr extproc('xmlFreePatternList')
+ d comp value like(xmlPatternPtr)
+
+ d xmlPatterncompile...
+ d pr extproc('xmlPatterncompile')
+ d like(xmlPatternPtr)
+ d pattern * value options(*string) const xmlChar *
+ d dict * value xmlDict *
+ d flags value like(xmlCint)
+ d namespaces * const xmlChar *(*)
+
+ d xmlPatternMatch...
+ d pr extproc('xmlPatternMatch')
+ d like(xmlCint)
+ d comp value like(xmlPatternPtr)
+ d node value like(xmlNodePtr)
+
+ * streaming interfaces
+
+ d xmlStreamCtxtPtr...
+ d s * based(######typedef######)
+
+ d xmlPatternStreamable...
+ d pr extproc('xmlPatternStreamable')
+ d like(xmlCint)
+ d comp value like(xmlPatternPtr)
+
+ d xmlPatternMaxDepth...
+ d pr extproc('xmlPatternMaxDepth')
+ d like(xmlCint)
+ d comp value like(xmlPatternPtr)
+
+ d xmlPatternMinDepth...
+ d pr extproc('xmlPatternMinDepth')
+ d like(xmlCint)
+ d comp value like(xmlPatternPtr)
+
+ d xmlPatternFromRoot...
+ d pr extproc('xmlPatternFromRoot')
+ d like(xmlCint)
+ d comp value like(xmlPatternPtr)
+
+ d xmlPatternGetStreamCtxt...
+ d pr extproc('xmlPatternGetStreamCtxt')
+ d like(xmlStreamCtxtPtr)
+ d comp value like(xmlPatternPtr)
+
+ d xmlFreeStreamCtxt...
+ d pr extproc('xmlFreeStreamCtxt')
+ d stream value like(xmlStreamCtxtPtr)
+
+ d xmlStreamPushNode...
+ d pr extproc('xmlStreamPushNode')
+ d like(xmlCint)
+ d stream value like(xmlStreamCtxtPtr)
+ d name * value options(*string) const xmlChar *
+ d ns * value options(*string) const xmlChar *
+ d nodeType value like(xmlCint)
+
+ d xmlStreamPush pr extproc('xmlStreamPush')
+ d like(xmlCint)
+ d stream value like(xmlStreamCtxtPtr)
+ d name * value options(*string) const xmlChar *
+ d ns * value options(*string) const xmlChar *
+
+ d xmlStreamPushAttr...
+ d pr extproc('xmlStreamPushAttr')
+ d like(xmlCint)
+ d stream value like(xmlStreamCtxtPtr)
+ d name * value options(*string) const xmlChar *
+ d ns * value options(*string) const xmlChar *
+
+ d xmlStreamPop pr extproc('xmlStreamPop')
+ d like(xmlCint)
+ d stream value like(xmlStreamCtxtPtr)
+
+ d xmlStreamWantsAnyNode...
+ d pr extproc('xmlStreamWantsAnyNode')
+ d like(xmlCint)
+ d stream value like(xmlStreamCtxtPtr)
+
+ /endif LIBXML_PATTERN_ENBLD
+ /endif XML_PATTERN_H__
diff --git a/libxml2/os400/libxmlrpg/relaxng.rpgle b/libxml2/os400/libxmlrpg/relaxng.rpgle
new file mode 100644
index 0000000..15b8471
--- /dev/null
+++ b/libxml2/os400/libxmlrpg/relaxng.rpgle
@@ -0,0 +1,310 @@
+ * Summary: implementation of the Relax-NG validation
+ * Description: implementation of the Relax-NG validation
+ *
+ * Copy: See Copyright for the status of this software.
+ *
+ * Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A.
+
+ /if not defined(XML_RELAX_NG__)
+ /define XML_RELAX_NG__
+
+ /include "libxmlrpg/xmlversion"
+
+ /if defined(LIBXML_SCHEMAS_ENABLED)
+
+ /include "libxmlrpg/xmlTypesC"
+ /include "libxmlrpg/hash"
+ /include "libxmlrpg/xmlstring"
+
+ d xmlRelaxNGPtr s * based(######typedef######)
+
+ * xmlRelaxNGValidityErrorFunc:
+ * @ctx: the validation context
+ * @msg: the message
+ * @...: extra arguments
+ *
+ * Signature of an error callback from a Relax-NG validation
+
+ d xmlRelaxNGValidityErrorFunc...
+ d s * based(######typedef######)
+ d procptr
+
+ * xmlRelaxNGValidityWarningFunc:
+ * @ctx: the validation context
+ * @msg: the message
+ * @...: extra arguments
+ *
+ * Signature of a warning callback from a Relax-NG validation
+
+ d xmlRelaxNGValidityWarningFunc...
+ d s * based(######typedef######)
+ d procptr
+
+ * A schemas validation context
+
+ d xmlRelaxNGParserCtxtPtr...
+ d s * based(######typedef######)
+
+ d xmlRelaxNGValidCtxtPtr...
+ d s * based(######typedef######)
+
+ * xmlRelaxNGValidErr:
+ *
+ * List of possible Relax NG validation errors
+
+ d xmlRelaxNGValidErr...
+ d s based(######typedef######)
+ d like(xmlCenum)
+ d XML_RELAXNG_OK...
+ d c 0
+ d XML_RELAXNG_ERR_MEMORY...
+ d c 1
+ d XML_RELAXNG_ERR_TYPE...
+ d c 2
+ d XML_RELAXNG_ERR_TYPEVAL...
+ d c 3
+ d XML_RELAXNG_ERR_DUPID...
+ d c 4
+ d XML_RELAXNG_ERR_TYPECMP...
+ d c 5
+ d XML_RELAXNG_ERR_NOSTATE...
+ d c 6
+ d XML_RELAXNG_ERR_NODEFINE...
+ d c 7
+ d XML_RELAXNG_ERR_LISTEXTRA...
+ d c 8
+ d XML_RELAXNG_ERR_LISTEMPTY...
+ d c 9
+ d XML_RELAXNG_ERR_INTERNODATA...
+ d c 10
+ d XML_RELAXNG_ERR_INTERSEQ...
+ d c 11
+ d XML_RELAXNG_ERR_INTEREXTRA...
+ d c 12
+ d XML_RELAXNG_ERR_ELEMNAME...
+ d c 13
+ d XML_RELAXNG_ERR_ATTRNAME...
+ d c 14
+ d XML_RELAXNG_ERR_ELEMNONS...
+ d c 15
+ d XML_RELAXNG_ERR_ATTRNONS...
+ d c 16
+ d XML_RELAXNG_ERR_ELEMWRONGNS...
+ d c 17
+ d XML_RELAXNG_ERR_ATTRWRONGNS...
+ d c 18
+ d XML_RELAXNG_ERR_ELEMEXTRANS...
+ d c 19
+ d XML_RELAXNG_ERR_ATTREXTRANS...
+ d c 20
+ d XML_RELAXNG_ERR_ELEMNOTEMPTY...
+ d c 21
+ d XML_RELAXNG_ERR_NOELEM...
+ d c 22
+ d XML_RELAXNG_ERR_NOTELEM...
+ d c 23
+ d XML_RELAXNG_ERR_ATTRVALID...
+ d c 24
+ d XML_RELAXNG_ERR_CONTENTVALID...
+ d c 25
+ d XML_RELAXNG_ERR_EXTRACONTENT...
+ d c 26
+ d XML_RELAXNG_ERR_INVALIDATTR...
+ d c 27
+ d XML_RELAXNG_ERR_DATAELEM...
+ d c 28
+ d XML_RELAXNG_ERR_VALELEM...
+ d c 29
+ d XML_RELAXNG_ERR_LISTELEM...
+ d c 30
+ d XML_RELAXNG_ERR_DATATYPE...
+ d c 31
+ d XML_RELAXNG_ERR_VALUE...
+ d c 32
+ d XML_RELAXNG_ERR_LIST...
+ d c 33
+ d XML_RELAXNG_ERR_NOGRAMMAR...
+ d c 34
+ d XML_RELAXNG_ERR_EXTRADATA...
+ d c 35
+ d XML_RELAXNG_ERR_LACKDATA...
+ d c 36
+ d XML_RELAXNG_ERR_INTERNAL...
+ d c 37
+ d XML_RELAXNG_ERR_ELEMWRONG...
+ d c 38
+ d XML_RELAXNG_ERR_TEXTWRONG...
+ d c 39
+
+ * xmlRelaxNGParserFlags:
+ *
+ * List of possible Relax NG Parser flags
+
+ d xmlRelaxNGParserFlag...
+ d s based(######typedef######)
+ d like(xmlCenum)
+ d XML_RELAXNGP_NONE...
+ d c 0
+ d XML_RELAXNGP_FREE_DOC...
+ d c 1
+ d XML_RELAXNGP_CRNG...
+ d c 2
+
+ d xmlRelaxNGInitTypes...
+ d pr extproc('xmlRelaxNGInitTypes')
+ d like(xmlCint)
+
+ d xmlRelaxNGCleanupTypes...
+ d pr extproc('xmlRelaxNGCleanupTypes')
+
+
+ * Interfaces for parsing.
+
+ d xmlRelaxNGNewParserCtxt...
+ d pr extproc('xmlRelaxNGNewParserCtxt')
+ d like(xmlRelaxNGParserCtxtPtr)
+ d URL * value options(*string) const char *
+
+ d xmlRelaxNGNewMemParserCtxt...
+ d pr extproc('xmlRelaxNGNewMemParserCtxt')
+ d like(xmlRelaxNGParserCtxtPtr)
+ d buffer * value options(*string) const char *
+ d size value like(xmlCint)
+
+ d xmlRelaxNGNewDocParserCtxt...
+ d pr extproc('xmlRelaxNGNewDocParserCtxt')
+ d like(xmlRelaxNGParserCtxtPtr)
+ d doc value like(xmlDocPtr)
+
+ d xmlRelaxParserSetFlag...
+ d pr extproc('xmlRelaxParserSetFlag')
+ d like(xmlCint)
+ d ctxt value like(xmlRelaxNGParserCtxtPtr)
+ d flag value like(xmlCint)
+
+ d xmlRelaxNGFreeParserCtxt...
+ d pr extproc('xmlRelaxNGFreeParserCtxt')
+ d ctxt value like(xmlRelaxNGParserCtxtPtr)
+
+ d xmlRelaxNGSetParserErrors...
+ d pr extproc('xmlRelaxNGSetParserErrors')
+ d ctxt value like(xmlRelaxNGParserCtxtPtr)
+ d err value
+ d like(xmlRelaxNGValidityErrorFunc)
+ d warn value
+ d like(xmlRelaxNGValidityWarningFunc)
+ d ctx * value void *
+
+ d xmlRelaxNGGetParserErrors...
+ d pr extproc('xmlRelaxNGGetParserErrors')
+ d like(xmlCint)
+ d ctxt value like(xmlRelaxNGParserCtxtPtr)
+ d err like(xmlRelaxNGValidityErrorFunc)
+ d warn like(xmlRelaxNGValidityWarningFunc)
+ d ctx * void *(*)
+
+ d xmlRelaxNGSetParserStructuredErrors...
+ d pr extproc(
+ d 'xmlRelaxNGSetParserStructuredErrors'
+ d )
+ d ctxt value like(xmlRelaxNGParserCtxtPtr)
+ d serror value like(xmlStructuredErrorFunc)
+ d ctx * value void *
+
+ d xmlRelaxNGParse...
+ d pr extproc('xmlRelaxNGParse')
+ d like(xmlRelaxNGPtr)
+ d ctxt value like(xmlRelaxNGParserCtxtPtr)
+
+ d xmlRelaxNGFree pr extproc('xmlRelaxNGFree')
+ d schema value like(xmlRelaxNGPtr)
+
+
+ /if defined(LIBXML_OUTPUT_ENABLED)
+ d xmlRelaxNGDump pr extproc('xmlRelaxNGDump')
+ d output * value FILE *
+ d schema value like(xmlRelaxNGPtr)
+
+ d xmlRelaxNGDumpTree...
+ d pr extproc('xmlRelaxNGDumpTree')
+ d output * value FILE *
+ d schema value like(xmlRelaxNGPtr)
+ /endif LIBXML_OUTPUT_ENABLD
+
+ * Interfaces for validating
+
+ d xmlRelaxNGSetValidErrors...
+ d pr extproc('xmlRelaxNGSetValidErrors')
+ d ctxt value like(xmlRelaxNGValidCtxtPtr)
+ d err value
+ d like(xmlRelaxNGValidityErrorFunc)
+ d warn value
+ d like(xmlRelaxNGValidityWarningFunc)
+ d ctx * value void *
+
+ d xmlRelaxNGGetValidErrors...
+ d pr extproc('xmlRelaxNGGetValidErrors')
+ d like(xmlCint)
+ d ctxt value like(xmlRelaxNGValidCtxtPtr)
+ d err like(xmlRelaxNGValidityErrorFunc)
+ d warn like(xmlRelaxNGValidityWarningFunc)
+ d ctx * value void * *
+
+ d xmlRelaxNGSetValidStructuredErrors...
+ d pr extproc(
+ d 'xmlRelaxNGSetValidStructuredErrors')
+ d ctxt value like(xmlRelaxNGValidCtxtPtr)
+ d serror value like(xmlStructuredErrorFunc)
+ d ctx * value void *
+
+ d xmlRelaxNGNewValidCtxt...
+ d pr extproc('xmlRelaxNGNewValidCtxt')
+ d like(xmlRelaxNGValidCtxtPtr)
+ d schema value like(xmlRelaxNGPtr)
+
+ d xmlRelaxNGFreeValidCtxt...
+ d pr extproc('xmlRelaxNGFreeValidCtxt')
+ d ctxt value like(xmlRelaxNGValidCtxtPtr)
+
+ d xmlRelaxNGValidateDoc...
+ d pr extproc('xmlRelaxNGValidateDoc')
+ d like(xmlCint)
+ d ctxt value like(xmlRelaxNGValidCtxtPtr)
+ d doc value like(xmlDocPtr)
+
+ * Interfaces for progressive validation when possible
+
+ d xmlRelaxNGValidatePushElement...
+ d pr extproc(
+ d 'xmlRelaxNGValidatePushElement')
+ d like(xmlCint)
+ d ctxt value like(xmlRelaxNGValidCtxtPtr)
+ d doc value like(xmlDocPtr)
+ d elem value like(xmlNodePtr)
+
+ d xmlRelaxNGValidatePushCData...
+ d pr extproc(
+ d 'xmlRelaxNGValidatePushCData')
+ d like(xmlCint)
+ d ctxt value like(xmlRelaxNGValidCtxtPtr)
+ d data * value options(*string) const xmlChar *
+ d len value like(xmlCint)
+
+ d xmlRelaxNGValidatePopElement...
+ d pr extproc(
+ d 'xmlRelaxNGValidatePopElement')
+ d like(xmlCint)
+ d ctxt value like(xmlRelaxNGValidCtxtPtr)
+ d doc value like(xmlDocPtr)
+ d elem value like(xmlNodePtr)
+
+ d xmlRelaxNGValidateFullElement...
+ d pr extproc(
+ d 'xmlRelaxNGValidateFullElement')
+ d like(xmlCint)
+ d ctxt value like(xmlRelaxNGValidCtxtPtr)
+ d doc value like(xmlDocPtr)
+ d elem value like(xmlNodePtr)
+
+ /endif LIBXML_SCHEMAS_ENBLD
+ /endif XML_RELAX_NG__
diff --git a/libxml2/os400/libxmlrpg/schemasInternals.rpgle b/libxml2/os400/libxmlrpg/schemasInternals.rpgle
new file mode 100644
index 0000000..8d3013e
--- /dev/null
+++ b/libxml2/os400/libxmlrpg/schemasInternals.rpgle
@@ -0,0 +1,1142 @@
+ * Summary: internal interfaces for XML Schemas
+ * Description: internal interfaces for the XML Schemas handling
+ * and schema validity checking
+ * The Schemas development is a Work In Progress.
+ * Some of those interfaces are not garanteed to be API or
+ * ABI stable !
+ *
+ * Copy: See Copyright for the status of this software.
+ *
+ * Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A.
+
+ /if not defined(XML_SCHEMA_INTERNALS_H__)
+ /define XML_SCHEMA_INTERNALS_H__
+
+ /include "libxmlrpg/xmlversion"
+
+ /if defined(LIBXML_SCHEMAS_ENABLED)
+
+ /include "libxmlrpg/xmlTypesC"
+ /include "libxmlrpg/xmlregexp"
+ /include "libxmlrpg/hash"
+ /include "libxmlrpg/dict"
+
+ d xmlSchemaValType...
+ d s based(######typedef######)
+ d like(xmlCenum)
+ d XML_SCHEMAS_UNKNOWN...
+ d c 0
+ d XML_SCHEMAS_STRING...
+ d c 1
+ d XML_SCHEMAS_NORMSTRING...
+ d c 2
+ d XML_SCHEMAS_DECIMAL...
+ d c 3
+ d XML_SCHEMAS_TIME...
+ d c 4
+ d XML_SCHEMAS_GDAY...
+ d c 5
+ d XML_SCHEMAS_GMONTH...
+ d c 6
+ d XML_SCHEMAS_GMONTHDAY...
+ d c 7
+ d XML_SCHEMAS_GYEAR...
+ d c 8
+ d XML_SCHEMAS_GYEARMONTH...
+ d c 9
+ d XML_SCHEMAS_DATE...
+ d c 10
+ d XML_SCHEMAS_DATETIME...
+ d c 11
+ d XML_SCHEMAS_DURATION...
+ d c 12
+ d XML_SCHEMAS_FLOAT...
+ d c 13
+ d XML_SCHEMAS_DOUBLE...
+ d c 14
+ d XML_SCHEMAS_BOOLEAN...
+ d c 15
+ d XML_SCHEMAS_TOKEN...
+ d c 16
+ d XML_SCHEMAS_LANGUAGE...
+ d c 17
+ d XML_SCHEMAS_NMTOKEN...
+ d c 18
+ d XML_SCHEMAS_NMTOKENS...
+ d c 19
+ d XML_SCHEMAS_NAME...
+ d c 20
+ d XML_SCHEMAS_QNAME...
+ d c 21
+ d XML_SCHEMAS_NCNAME...
+ d c 22
+ d XML_SCHEMAS_ID...
+ d c 23
+ d XML_SCHEMAS_IDREF...
+ d c 24
+ d XML_SCHEMAS_IDREFS...
+ d c 25
+ d XML_SCHEMAS_ENTITY...
+ d c 26
+ d XML_SCHEMAS_ENTITIES...
+ d c 27
+ d XML_SCHEMAS_NOTATION...
+ d c 28
+ d XML_SCHEMAS_ANYURI...
+ d c 29
+ d XML_SCHEMAS_INTEGER...
+ d c 30
+ d XML_SCHEMAS_NPINTEGER...
+ d c 31
+ d XML_SCHEMAS_NINTEGER...
+ d c 32
+ d XML_SCHEMAS_NNINTEGER...
+ d c 33
+ d XML_SCHEMAS_PINTEGER...
+ d c 34
+ d XML_SCHEMAS_INT...
+ d c 35
+ d XML_SCHEMAS_UINT...
+ d c 36
+ d XML_SCHEMAS_LONG...
+ d c 37
+ d XML_SCHEMAS_ULONG...
+ d c 38
+ d XML_SCHEMAS_SHORT...
+ d c 39
+ d XML_SCHEMAS_USHORT...
+ d c 40
+ d XML_SCHEMAS_BYTE...
+ d c 41
+ d XML_SCHEMAS_UBYTE...
+ d c 42
+ d XML_SCHEMAS_HEXBINARY...
+ d c 43
+ d XML_SCHEMAS_BASE64BINARY...
+ d c 44
+ d XML_SCHEMAS_ANYTYPE...
+ d c 45
+ d XML_SCHEMAS_ANYSIMPLETYPE...
+ d c 46
+
+ * XML Schemas defines multiple type of types.
+
+ d xmlSchemaTypeType...
+ d s based(######typedef######)
+ d like(xmlCenum)
+ d XML_SCHEMA_TYPE_BASIC... A builtin datatype
+ d c 1
+ d XML_SCHEMA_TYPE_ANY...
+ d c 2
+ d XML_SCHEMA_TYPE_FACET...
+ d c 3
+ d XML_SCHEMA_TYPE_SIMPLE...
+ d c 4
+ d XML_SCHEMA_TYPE_COMPLEX...
+ d c 5
+ d XML_SCHEMA_TYPE_SEQUENCE...
+ d c 6
+ d XML_SCHEMA_TYPE_CHOICE...
+ d c 7
+ d XML_SCHEMA_TYPE_ALL...
+ d c 8
+ d XML_SCHEMA_TYPE_SIMPLE_CONTENT...
+ d c 9
+ d XML_SCHEMA_TYPE_COMPLEX_CONTENT...
+ d c 10
+ d XML_SCHEMA_TYPE_UR...
+ d c 11
+ d XML_SCHEMA_TYPE_RESTRICTION...
+ d c 12
+ d XML_SCHEMA_TYPE_EXTENSION...
+ d c 13
+ d XML_SCHEMA_TYPE_ELEMENT...
+ d c 14
+ d XML_SCHEMA_TYPE_ATTRIBUTE...
+ d c 15
+ d XML_SCHEMA_TYPE_ATTRIBUTEGROUP...
+ d c 16
+ d XML_SCHEMA_TYPE_GROUP...
+ d c 17
+ d XML_SCHEMA_TYPE_NOTATION...
+ d c 18
+ d XML_SCHEMA_TYPE_LIST...
+ d c 19
+ d XML_SCHEMA_TYPE_UNION...
+ d c 20
+ d XML_SCHEMA_TYPE_ANY_ATTRIBUTE...
+ d c 21
+ d XML_SCHEMA_TYPE_IDC_UNIQUE...
+ d c 22
+ d XML_SCHEMA_TYPE_IDC_KEY...
+ d c 23
+ d XML_SCHEMA_TYPE_IDC_KEYREF...
+ d c 24
+ d XML_SCHEMA_TYPE_PARTICLE...
+ d c 25
+ d XML_SCHEMA_TYPE_ATTRIBUTE_USE...
+ d c 26
+ d XML_SCHEMA_FACET_MININCLUSIVE...
+ d c 1000
+ d XML_SCHEMA_FACET_MINEXCLUSIVE...
+ d c 1001
+ d XML_SCHEMA_FACET_MAXINCLUSIVE...
+ d c 1002
+ d XML_SCHEMA_FACET_MAXEXCLUSIVE...
+ d c 1003
+ d XML_SCHEMA_FACET_TOTALDIGITS...
+ d c 1004
+ d XML_SCHEMA_FACET_FRACTIONDIGITS...
+ d c 1005
+ d XML_SCHEMA_FACET_PATTERN...
+ d c 1006
+ d XML_SCHEMA_FACET_ENUMERATION...
+ d c 1007
+ d XML_SCHEMA_FACET_WHITESPACE...
+ d c 1008
+ d XML_SCHEMA_FACET_LENGTH...
+ d c 1009
+ d XML_SCHEMA_FACET_MAXLENGTH...
+ d c 1010
+ d XML_SCHEMA_FACET_MINLENGTH...
+ d c 1011
+ d XML_SCHEMA_EXTRA_QNAMEREF...
+ d c 2000
+ d XML_SCHEMA_EXTRA_ATTR_USE_PROHIB...
+ d c 2001
+
+ d xmlSchemaContentType...
+ d s based(######typedef######)
+ d like(xmlCenum)
+ d XML_SCHEMA_CONTENT_UNKNOWN...
+ d c 0
+ d XML_SCHEMA_CONTENT_EMPTY...
+ d c 1
+ d XML_SCHEMA_CONTENT_ELEMENTS...
+ d c 2
+ d XML_SCHEMA_CONTENT_MIXED...
+ d c 3
+ d XML_SCHEMA_CONTENT_SIMPLE...
+ d c 4
+ d XML_SCHEMA_CONTENT_MIXED_OR_ELEMENTS... Obsolete
+ d c 5
+ d XML_SCHEMA_CONTENT_BASIC...
+ d c 6
+ d XML_SCHEMA_CONTENT_ANY...
+ d c 7
+
+ d xmlSchemaValPtr...
+ d s * based(######typedef######)
+
+ d xmlSchemaTypePtr...
+ d s * based(######typedef######)
+
+ d xmlSchemaFacetPtr...
+ d s * based(######typedef######)
+
+ * Annotation
+
+ d xmlSchemaAnnotPtr...
+ d s * based(######typedef######)
+
+ d xmlSchemaAnnot ds based(xmlSchemaAnnotPtr)
+ d align qualified
+ d next like(xmlSchemaAnnotPtr)
+ d content like(xmlNodePtr) The annotation
+
+ * XML_SCHEMAS_ANYATTR_SKIP:
+ *
+ * Skip unknown attribute from validation
+ * Obsolete, not used anymore.
+
+ d XML_SCHEMAS_ANYATTR_SKIP...
+ d c 1
+
+ * XML_SCHEMAS_ANYATTR_LAX:
+ *
+ * Ignore validation non definition on attributes
+ * Obsolete, not used anymore.
+
+ d XML_SCHEMAS_ANYATTR_LAX...
+ d c 2
+
+ * XML_SCHEMAS_ANYATTR_STRICT:
+ *
+ * Apply strict validation rules on attributes
+ * Obsolete, not used anymore.
+
+ d XML_SCHEMAS_ANYATTR_STRICT...
+ d c 3
+
+ * XML_SCHEMAS_ANY_SKIP:
+ *
+ * Skip unknown attribute from validation
+
+ d XML_SCHEMAS_ANY_SKIP...
+ d c 1
+
+ * XML_SCHEMAS_ANY_LAX:
+ *
+ * Used by wildcards.
+ * Validate if type found, don't worry if not found
+
+ d XML_SCHEMAS_ANY_LAX...
+ d c 2
+
+ * XML_SCHEMAS_ANY_STRICT:
+ *
+ * Used by wildcards.
+ * Apply strict validation rules
+
+ d XML_SCHEMAS_ANY_STRICT...
+ d c 3
+
+ * XML_SCHEMAS_ATTR_USE_PROHIBITED:
+ *
+ * Used by wildcards.
+ * The attribute is prohibited.
+
+ d XML_SCHEMAS_ATTR_USE_PROHIBITED...
+ d c 0
+
+ * XML_SCHEMAS_ATTR_USE_REQUIRED:
+ *
+ * The attribute is required.
+
+ d XML_SCHEMAS_ATTR_USE_REQUIRED...
+ d c 1
+
+ * XML_SCHEMAS_ATTR_USE_OPTIONAL:
+ *
+ * The attribute is optional.
+
+ d XML_SCHEMAS_ATTR_USE_OPTIONAL...
+ d c 2
+
+ * XML_SCHEMAS_ATTR_GLOBAL:
+ *
+ * allow elements in no namespace
+
+ d XML_SCHEMAS_ATTR_GLOBAL...
+ d c X'0001'
+
+ * XML_SCHEMAS_ATTR_NSDEFAULT:
+ *
+ * allow elements in no namespace
+
+ d XML_SCHEMAS_ATTR_NSDEFAULT...
+ d c X'0080'
+
+ * XML_SCHEMAS_ATTR_INTERNAL_RESOLVED:
+ *
+ * this is set when the "type" and "ref" references
+ * have been resolved.
+
+ d XML_SCHEMAS_ATTR_INTERNAL_RESOLVED...
+ d c X'0100'
+
+ * XML_SCHEMAS_ATTR_FIXED:
+ *
+ * the attribute has a fixed value
+
+ d XML_SCHEMAS_ATTR_FIXED...
+ d c X'0200'
+
+ * xmlSchemaAttribute:
+ * An attribute definition.
+
+ d xmlSchemaAttributePtr...
+ d s * based(######typedef######)
+
+ d xmlSchemaAttribute...
+ d ds based(xmlSchemaAttributePtr)
+ d align qualified
+ d type like(xmlSchemaTypeType)
+ d next like(xmlSchemaAttributePtr) Next attribute
+ d name * const xmlChar *
+ d id * const xmlChar *
+ d ref * const xmlChar *
+ d refNs * const xmlChar *
+ d typeName * const xmlChar *
+ d typeNs * const xmlChar *
+ d annot like(xmlSchemaAnnotPtr)
+ *
+ d base like(xmlSchemaTypePtr) Deprecated
+ d occurs like(xmlCint) Deprecated
+ d defValue * const xmlChar *
+ d subtypes like(xmlSchemaTypePtr) The type definition
+ d node like(xmlNodePtr)
+ d targetNamespace... const xmlChar *
+ d *
+ d flags like(xmlCint)
+ d refPrefix * const xmlChar *
+ d defVal like(xmlSchemaValPtr) Compiled constraint
+ d refDecl like(xmlSchemaAttributePtr) Deprecated
+
+ * xmlSchemaAttributeLink:
+ * Used to build a list of attribute uses on complexType definitions.
+ * WARNING: Deprecated; not used.
+
+ d xmlSchemaAttributeLinkPtr...
+ d s * based(######typedef######)
+
+ d xmlSchemaAttributeLink...
+ d ds based(xmlSchemaAttributeLinkPtr)
+ d align qualified
+ d next like(xmlSchemaAttributeLinkPtr) The next link
+ d attr like(xmlSchemaAttributePtr) The linked attribute
+
+ * XML_SCHEMAS_WILDCARD_COMPLETE:
+ *
+ * If the wildcard is complete.
+
+ d XML_SCHEMAS_WILDCARD_COMPLETE...
+ d c X'0001'
+
+ * xmlSchemaCharValueLink:
+ * Used to build a list of namespaces on wildcards.
+
+ d xmlSchemaWildcardNsPtr...
+ d s * based(######typedef######)
+
+ d xmlSchemaWildcardNs...
+ d ds based(xmlSchemaWildcardNsPtr)
+ d align qualified
+ d next like(xmlSchemaWildcardNsPtr) The next link
+ d value * const xmlChar *
+
+ * xmlSchemaWildcard.
+ * A wildcard.
+
+ d xmlSchemaWildcardPtr...
+ d s * based(######typedef######)
+
+ d xmlSchemaWildcard...
+ d ds based(xmlSchemaWildcardPtr)
+ d align qualified
+ d type like(xmlSchemaTypeType) Kind of type
+ d id * const xmlChar *
+ d annot like(xmlSchemaAnnotPtr)
+ d node like(xmlNodePtr)
+ d minOccurs like(xmlCint) Deprecated; not used
+ d maxOccurs like(xmlCint) Deprecated; not used
+ d processContents...
+ d like(xmlCint)
+ d any like(xmlCint) Ns constraint ##any?
+ d nsSet like(xmlSchemaWildcardNsPtr) Allowed namspce list
+ d negNsSet like(xmlSchemaWildcardNsPtr) Negated namespace
+ d flags like(xmlCint) Deprecated; not used
+
+ * XML_SCHEMAS_ATTRGROUP_WILDCARD_BUILDED:
+ *
+ * The attribute wildcard has been already builded.
+
+ d XML_SCHEMAS_ATTRGROUP_WILDCARD_BUILDED...
+ d c X'0001'
+
+ * XML_SCHEMAS_ATTRGROUP_GLOBAL:
+ *
+ * The attribute wildcard has been already builded.
+
+ d XML_SCHEMAS_ATTRGROUP_GLOBAL...
+ d c X'0002'
+
+ * XML_SCHEMAS_ATTRGROUP_MARKED:
+ *
+ * Marks the attr group as marked; used for circular checks.
+
+ d XML_SCHEMAS_ATTRGROUP_MARKED...
+ d c X'0004'
+
+ * XML_SCHEMAS_ATTRGROUP_REDEFINED:
+ *
+ * The attr group was redefined.
+
+ d XML_SCHEMAS_ATTRGROUP_REDEFINED...
+ d c X'0008'
+
+ * XML_SCHEMAS_ATTRGROUP_HAS_REFS:
+ *
+ * Whether this attr. group contains attr. group references.
+
+ d XML_SCHEMAS_ATTRGROUP_HAS_REFS...
+ d c X'0010'
+
+ * An attribute group definition.
+ *
+ * xmlSchemaAttribute and xmlSchemaAttributeGroup start of structures
+ * must be kept similar
+
+ d xmlSchemaAttributeGroupPtr...
+ d s * based(######typedef######)
+
+ d xmlSchemaAttributeGroup...
+ d ds based(xmlSchemaAttributeGroupPtr)
+ d align qualified
+ d type like(xmlSchemaTypeType) Kind of type
+ d next like(xmlSchemaAttributePtr) Next attribute
+ d name * const xmlChar *
+ d id * const xmlChar *
+ d ref * const xmlChar *
+ d refNs * const xmlChar *
+ d annot like(xmlSchemaAnnotPtr)
+ *
+ d attributes like(xmlSchemaAttributePtr) Deprecated; not used
+ d node like(xmlNodePtr)
+ d flags like(xmlCint)
+ d attributeWildcard...
+ d like(xmlSchemaWildcardPtr)
+ d refPrefix * const xmlChar *
+ d refItem like(xmlSchemaAttributeGroupPtr) Deprecated; not used
+ d targetNamespace...
+ d * const xmlChar *
+ d attrUses * void *
+
+ * xmlSchemaTypeLink:
+ * Used to build a list of types (e.g. member types of
+ * simpleType with variety "union").
+
+ d xmlSchemaTypeLinkPtr...
+ d s * based(######typedef######)
+
+ d xmlSchemaTypeLink...
+ d ds based(xmlSchemaTypeLinkPtr)
+ d align qualified
+ d next like(xmlSchemaTypeLinkPtr) Next type link
+ d type like(xmlSchemaTypePtr) Linked type
+
+ * xmlSchemaFacetLink:
+ * Used to build a list of facets.
+
+ d xmlSchemaFacetLinkPtr...
+ d s * based(######typedef######)
+
+ d xmlSchemaFacetLink...
+ d ds based(xmlSchemaFacetLinkPtr)
+ d align qualified
+ d next like(xmlSchemaFacetLinkPtr) Next facet link
+ d facet like(xmlSchemaFacetPtr) Linked facet
+
+ * XML_SCHEMAS_TYPE_MIXED:
+ *
+ * the element content type is mixed
+
+ d XML_SCHEMAS_TYPE_MIXED...
+ d c X'00000001'
+
+ * XML_SCHEMAS_TYPE_DERIVATION_METHOD_EXTENSION:
+ *
+ * the simple or complex type has a derivation method of "extension".
+
+ d XML_SCHEMAS_TYPE_DERIVATION_METHOD_EXTENSION...
+ d c X'00000002'
+
+ * XML_SCHEMAS_TYPE_DERIVATION_METHOD_RESTRICTION:
+ *
+ * the simple or complex type has a derivation method of "restriction".
+
+ d XML_SCHEMAS_TYPE_DERIVATION_METHOD_RESTRICTION...
+ d c X'00000004'
+
+ * XML_SCHEMAS_TYPE_GLOBAL:
+ *
+ * the type is global
+
+ d XML_SCHEMAS_TYPE_GLOBAL...
+ d c X'00000008'
+
+ * XML_SCHEMAS_TYPE_OWNED_ATTR_WILDCARD:
+ *
+ * the complexType owns an attribute wildcard, i.e.
+ * it can be freed by the complexType
+
+ d XML_SCHEMAS_TYPE_OWNED_ATTR_WILDCARD... Obsolete.
+ d c X'00000010'
+
+ * XML_SCHEMAS_TYPE_VARIETY_ABSENT:
+ *
+ * the simpleType has a variety of "absent".
+ * TODO: Actually not necessary :-/, since if
+ * none of the variety flags occur then it's
+ * automatically absent.
+
+ d XML_SCHEMAS_TYPE_VARIETY_ABSENT...
+ d c X'00000020'
+
+ * XML_SCHEMAS_TYPE_VARIETY_LIST:
+ *
+ * the simpleType has a variety of "list".
+
+ d XML_SCHEMAS_TYPE_VARIETY_LIST...
+ d c X'00000040'
+
+ * XML_SCHEMAS_TYPE_VARIETY_UNION:
+ *
+ * the simpleType has a variety of "union".
+
+ d XML_SCHEMAS_TYPE_VARIETY_UNION...
+ d c X'00000080'
+
+ * XML_SCHEMAS_TYPE_VARIETY_ATOMIC:
+ *
+ * the simpleType has a variety of "union".
+
+ d XML_SCHEMAS_TYPE_VARIETY_ATOMIC...
+ d c X'00000100'
+
+ * XML_SCHEMAS_TYPE_FINAL_EXTENSION:
+ *
+ * the complexType has a final of "extension".
+
+ d XML_SCHEMAS_TYPE_FINAL_EXTENSION...
+ d c X'00000200'
+
+ * XML_SCHEMAS_TYPE_FINAL_RESTRICTION:
+ *
+ * the simpleType/complexType has a final of "restriction".
+
+ d XML_SCHEMAS_TYPE_FINAL_RESTRICTION...
+ d c X'00000400'
+
+ * XML_SCHEMAS_TYPE_FINAL_LIST:
+ *
+ * the simpleType has a final of "list".
+
+ d XML_SCHEMAS_TYPE_FINAL_LIST...
+ d c X'00000800'
+
+ * XML_SCHEMAS_TYPE_FINAL_UNION:
+ *
+ * the simpleType has a final of "union".
+
+ d XML_SCHEMAS_TYPE_FINAL_UNION...
+ d c X'00001000'
+
+ * XML_SCHEMAS_TYPE_FINAL_DEFAULT:
+ *
+ * the simpleType has a final of "default".
+
+ d XML_SCHEMAS_TYPE_FINAL_DEFAULT...
+ d c X'00002000'
+
+ * XML_SCHEMAS_TYPE_BUILTIN_PRIMITIVE:
+ *
+ * Marks the item as a builtin primitive.
+
+ d XML_SCHEMAS_TYPE_BUILTIN_PRIMITIVE...
+ d c X'00004000'
+
+ * XML_SCHEMAS_TYPE_MARKED:
+ *
+ * Marks the item as marked; used for circular checks.
+
+ d XML_SCHEMAS_TYPE_MARKED...
+ d c X'00010000'
+
+ * XML_SCHEMAS_TYPE_BLOCK_DEFAULT:
+ *
+ * the complexType did not specify 'block' so use the default of the
+ * <schema> item.
+
+ d XML_SCHEMAS_TYPE_BLOCK_DEFAULT...
+ d c X'00020000'
+
+ * XML_SCHEMAS_TYPE_BLOCK_EXTENSION:
+ *
+ * the complexType has a 'block' of "extension".
+
+ d XML_SCHEMAS_TYPE_BLOCK_EXTENSION...
+ d c X'00040000'
+
+ * XML_SCHEMAS_TYPE_BLOCK_RESTRICTION:
+ *
+ * the complexType has a 'block' of "restriction".
+
+ d XML_SCHEMAS_TYPE_BLOCK_RESTRICTION...
+ d c X'00080000'
+
+ * XML_SCHEMAS_TYPE_ABSTRACT:
+ *
+ * the simple/complexType is abstract.
+
+ d XML_SCHEMAS_TYPE_ABSTRACT...
+ d c X'00100000'
+
+ * XML_SCHEMAS_TYPE_FACETSNEEDVALUE:
+ *
+ * indicates if the facets need a computed value
+
+ d XML_SCHEMAS_TYPE_FACETSNEEDVALUE...
+ d c X'00200000'
+
+ * XML_SCHEMAS_TYPE_INTERNAL_RESOLVED:
+ *
+ * indicates that the type was typefixed
+
+ d XML_SCHEMAS_TYPE_INTERNAL_RESOLVED...
+ d c X'00400000'
+
+ * XML_SCHEMAS_TYPE_INTERNAL_INVALID:
+ *
+ * indicates that the type is invalid
+
+ d XML_SCHEMAS_TYPE_INTERNAL_INVALID...
+ d c X'00800000'
+
+ * XML_SCHEMAS_TYPE_WHITESPACE_PRESERVE:
+ *
+ * a whitespace-facet value of "preserve"
+
+ d XML_SCHEMAS_TYPE_WHITESPACE_PRESERVE...
+ d c X'01000000'
+
+ * XML_SCHEMAS_TYPE_WHITESPACE_REPLACE:
+ *
+ * a whitespace-facet value of "replace"
+
+ d XML_SCHEMAS_TYPE_WHITESPACE_REPLACE...
+ d c X'02000000'
+
+ * XML_SCHEMAS_TYPE_WHITESPACE_COLLAPSE:
+ *
+ * a whitespace-facet value of "collapse"
+
+ d XML_SCHEMAS_TYPE_WHITESPACE_COLLAPSE...
+ d c X'04000000'
+
+ * XML_SCHEMAS_TYPE_HAS_FACETS:
+ *
+ * has facets
+
+ d XML_SCHEMAS_TYPE_HAS_FACETS...
+ d c X'08000000'
+
+ * XML_SCHEMAS_TYPE_NORMVALUENEEDED:
+ *
+ * indicates if the facets (pattern) need a normalized value
+
+ d XML_SCHEMAS_TYPE_NORMVALUENEEDED...
+ d c X'10000000'
+
+ * XML_SCHEMAS_TYPE_FIXUP_1:
+ *
+ * First stage of fixup was done.
+
+ d XML_SCHEMAS_TYPE_FIXUP_1...
+ d c X'20000000'
+
+ * XML_SCHEMAS_TYPE_REDEFINED:
+ *
+ * The type was redefined.
+
+ d XML_SCHEMAS_TYPE_REDEFINED...
+ d c X'40000000'
+
+ /if defined(DISABLED)
+ * XML_SCHEMAS_TYPE_REDEFINING:
+ *
+ * The type redefines an other type.
+
+ d XML_SCHEMAS_TYPE_REDEFINING...
+ d c X'80000000'
+ /endif
+
+ * _xmlSchemaType:
+ *
+ * Schemas type definition.
+
+ d xmlSchemaType...
+ d ds based(xmlSchemaTypePtr)
+ d align qualified
+ d type like(xmlSchemaTypeType) Kind of type
+ d next like(xmlSchemaTypePtr) Next type
+ d name * const xmlChar *
+ d id * const xmlChar *
+ d ref * const xmlChar *
+ d refNs * const xmlChar *
+ d annot like(xmlSchemaAnnotPtr)
+ d subtypes like(xmlSchemaTypePtr)
+ d attributes like(xmlSchemaAttributePtr) Deprecated; not used
+ d node like(xmlNodePtr)
+ d minOccurs like(xmlCint) Deprecated; not used
+ d maxOccurs like(xmlCint) Deprecated; not used
+ *
+ d flags like(xmlCint)
+ d contentType like(xmlSchemaContentType)
+ d base * const xmlChar *
+ d baseNs * const xmlChar *
+ d baseType like(xmlSchemaTypePtr) Base type component
+ d facets like(xmlSchemaFacetPtr) Local facets
+ d redef like(xmlSchemaTypePtr) Deprecated; not used
+ d recurse like(xmlCint) Obsolete
+ d attributeUses like(xmlSchemaAttributeLinkPtr) Deprecated; not used
+ d attributeWildcard...
+ d like(xmlSchemaWildcardPtr)
+ d builtInType like(xmlCint) Built-in types type
+ d memberTypes like(xmlSchemaTypeLinkPtr) Union member-types
+ d facetSet like(xmlSchemaFacetLinkPtr) All facets
+ d refPrefix * const xmlChar *
+ d contentTypeDef...
+ d like(xmlSchemaTypePtr)
+ d contModel like(xmlRegexpPtr) Content model autom.
+ d targetNamespace...
+ d * const xmlChar *
+ d attrUses * void *
+
+ * xmlSchemaElement:
+ * An element definition.
+ *
+ * xmlSchemaType, xmlSchemaFacet and xmlSchemaElement start of
+ * structures must be kept similar
+
+ * XML_SCHEMAS_ELEM_NILLABLE:
+ *
+ * the element is nillable
+
+ d XML_SCHEMAS_ELEM_NILLABLE...
+ d c X'00000001'
+
+ * XML_SCHEMAS_ELEM_GLOBAL:
+ *
+ * the element is global
+
+ d XML_SCHEMAS_ELEM_GLOBAL...
+ d c X'00000002'
+
+ * XML_SCHEMAS_ELEM_DEFAULT:
+ *
+ * the element has a default value
+
+ d XML_SCHEMAS_ELEM_DEFAULT...
+ d c X'00000004'
+
+ * XML_SCHEMAS_ELEM_FIXED:
+ *
+ * the element has a fixed value
+
+ d XML_SCHEMAS_ELEM_FIXED...
+ d c X'00000008'
+
+ * XML_SCHEMAS_ELEM_ABSTRACT:
+ *
+ * the element is abstract
+
+ d XML_SCHEMAS_ELEM_ABSTRACT...
+ d c X'00000010'
+
+ * XML_SCHEMAS_ELEM_TOPLEVEL:
+ *
+ * the element is top level
+ * obsolete: use XML_SCHEMAS_ELEM_GLOBAL instead
+
+ d XML_SCHEMAS_ELEM_TOPLEVEL...
+ d c X'00000020'
+
+ * XML_SCHEMAS_ELEM_REF:
+ *
+ * the element is a reference to a type
+
+ d XML_SCHEMAS_ELEM_REF...
+ d c X'00000040'
+
+ * XML_SCHEMAS_ELEM_NSDEFAULT:
+ *
+ * allow elements in no namespace
+ * Obsolete, not used anymore.
+
+ d XML_SCHEMAS_ELEM_NSDEFAULT...
+ d c X'00000080'
+
+ * XML_SCHEMAS_ELEM_INTERNAL_RESOLVED:
+ *
+ * this is set when "type", "ref", "substitutionGroup"
+ * references have been resolved.
+
+ d XML_SCHEMAS_ELEM_INTERNAL_RESOLVED...
+ d c X'00000100'
+
+ * XML_SCHEMAS_ELEM_CIRCULAR:
+ *
+ * a helper flag for the search of circular references.
+
+ d XML_SCHEMAS_ELEM_CIRCULAR...
+ d c X'00000200'
+
+ * XML_SCHEMAS_ELEM_BLOCK_ABSENT:
+ *
+ * the "block" attribute is absent
+
+ d XML_SCHEMAS_ELEM_BLOCK_ABSENT...
+ d c X'00000400'
+
+ * XML_SCHEMAS_ELEM_BLOCK_EXTENSION:
+ *
+ * disallowed substitutions are absent
+
+ d XML_SCHEMAS_ELEM_BLOCK_EXTENSION...
+ d c X'00000800'
+
+ * XML_SCHEMAS_ELEM_BLOCK_RESTRICTION:
+ *
+ * disallowed substitutions: "restriction"
+
+ d XML_SCHEMAS_ELEM_BLOCK_RESTRICTION...
+ d c X'00001000'
+
+ * XML_SCHEMAS_ELEM_BLOCK_SUBSTITUTION:
+ *
+ * disallowed substitutions: "substituion"
+
+ d XML_SCHEMAS_ELEM_BLOCK_SUBSTITUTION...
+ d c X'00002000'
+
+ * XML_SCHEMAS_ELEM_FINAL_ABSENT:
+ *
+ * substitution group exclusions are absent
+
+ d XML_SCHEMAS_ELEM_FINAL_ABSENT...
+ d c X'00004000'
+
+ * XML_SCHEMAS_ELEM_FINAL_EXTENSION:
+ *
+ * substitution group exclusions: "extension"
+
+ d XML_SCHEMAS_ELEM_FINAL_EXTENSION...
+ d c X'00008000'
+
+ * XML_SCHEMAS_ELEM_FINAL_RESTRICTION:
+ *
+ * substitution group exclusions: "restriction"
+
+ d XML_SCHEMAS_ELEM_FINAL_RESTRICTION...
+ d c X'00010000'
+
+ * XML_SCHEMAS_ELEM_SUBST_GROUP_HEAD:
+ *
+ * the declaration is a substitution group head
+
+ d XML_SCHEMAS_ELEM_SUBST_GROUP_HEAD...
+ d c X'00020000'
+
+ * XML_SCHEMAS_ELEM_INTERNAL_CHECKED:
+ *
+ * this is set when the elem decl has been checked against
+ * all constraints
+
+ d XML_SCHEMAS_ELEM_INTERNAL_CHECKED...
+ d c X'00040000'
+
+ d xmlSchemaElementPtr...
+ d s * based(######typedef######)
+
+ d xmlSchemaElement...
+ d ds based(xmlSchemaElementPtr)
+ d align qualified
+ d type like(xmlSchemaTypeType) Kind of type
+ d next like(xmlSchemaElementPtr) Not used ?
+ d name * const xmlChar *
+ d id * const xmlChar *
+ d ref * const xmlChar *
+ d refNs * const xmlChar *
+ d annot like(xmlSchemaAnnotPtr)
+ d subtypes like(xmlSchemaTypePtr)
+ d attributes like(xmlSchemaAttributePtr) Deprecated; not used
+ d node like(xmlNodePtr)
+ d minOccurs like(xmlCint) Deprecated; not used
+ d maxOccurs like(xmlCint) Deprecated; not used
+ *
+ d flags like(xmlCint)
+ d targetNamespace...
+ d * const xmlChar *
+ d namedType * const xmlChar *
+ d namedTypeNs * const xmlChar *
+ d substGroup * const xmlChar *
+ d substGroupNs * const xmlChar *
+ d scope * const xmlChar *
+ d value * const xmlChar *
+ d refDecl like(xmlSchemaElementPtr)
+ d contModel like(xmlRegexpPtr)
+ d contentType like(xmlSchemaContentType)
+ d refPrefix * const xmlChar *
+ d devVal like(xmlSchemaValPtr) Comp val constraint
+ d idcs * void *
+
+ * XML_SCHEMAS_FACET_UNKNOWN:
+ *
+ * unknown facet handling
+
+ d XML_SCHEMAS_FACET_UNKNOWN...
+ d c 0
+
+ * XML_SCHEMAS_FACET_PRESERVE:
+ *
+ * preserve the type of the facet
+
+ d XML_SCHEMAS_FACET_PRESERVE...
+ d c 1
+
+ * XML_SCHEMAS_FACET_REPLACE:
+ *
+ * replace the type of the facet
+
+ d XML_SCHEMAS_FACET_REPLACE...
+ d c 2
+
+ * XML_SCHEMAS_FACET_COLLAPSE:
+ *
+ * collapse the types of the facet
+
+ d XML_SCHEMAS_FACET_COLLAPSE...
+ d c 3
+
+ * A facet definition.
+
+ d xmlSchemaFacet...
+ d ds based(xmlSchemaFacetPtr)
+ d align qualified
+ d type like(xmlSchemaTypeType) Kind of type
+ d next like(xmlSchemaFacetPtr) Next type in seq.
+ d value * const xmlChar *
+ d id * const xmlChar *
+ d annot like(xmlSchemaAnnotPtr)
+ d node like(xmlNodePtr)
+ d fixed like(xmlCint) _FACET_PRESERVE, etc
+ d whitespace like(xmlCint)
+ d val like(xmlSchemaValPtr) Compiled value
+ d regexp like(xmlRegexpPtr) Regexp for patterns
+
+ * A notation definition.
+
+ d xmlSchemaNotationPtr...
+ d s * based(######typedef######)
+
+ d xmlSchemaNotation...
+ d ds based(xmlSchemaNotationPtr)
+ d align qualified
+ d type like(xmlSchemaTypeType) Kind of type
+ d name * const xmlChar *
+ d annot like(xmlSchemaAnnotPtr)
+ d identifier * const xmlChar *
+ d targetNamespace...
+ d * const xmlChar *
+
+ * TODO: Actually all those flags used for the schema should sit
+ * on the schema parser context, since they are used only
+ * during parsing an XML schema document, and not available
+ * on the component level as per spec.
+
+ * XML_SCHEMAS_QUALIF_ELEM:
+ *
+ * Reflects elementFormDefault == qualified in
+ * an XML schema document.
+
+ d XML_SCHEMAS_QUALIF_ELEM...
+ d c X'00000001'
+
+ * XML_SCHEMAS_QUALIF_ATTR:
+ *
+ * Reflects attributeFormDefault == qualified in
+ * an XML schema document.
+
+ d XML_SCHEMAS_QUALIF_ATTR...
+ d c X'00000002'
+
+ * XML_SCHEMAS_FINAL_DEFAULT_EXTENSION:
+ *
+ * the schema has "extension" in the set of finalDefault.
+
+ d XML_SCHEMAS_FINAL_DEFAULT_EXTENSION...
+ d c X'00000004'
+
+ * XML_SCHEMAS_FINAL_DEFAULT_RESTRICTION:
+ *
+ * the schema has "restriction" in the set of finalDefault.
+
+ d XML_SCHEMAS_FINAL_DEFAULT_RESTRICTION...
+ d c X'00000008'
+
+ * XML_SCHEMAS_FINAL_DEFAULT_LIST:
+ *
+ * the cshema has "list" in the set of finalDefault.
+
+ d XML_SCHEMAS_FINAL_DEFAULT_LIST...
+ d c X'00000010'
+
+ * XML_SCHEMAS_FINAL_DEFAULT_UNION:
+ *
+ * the schema has "union" in the set of finalDefault.
+
+ d XML_SCHEMAS_FINAL_DEFAULT_UNION...
+ d c X'00000020'
+
+ * XML_SCHEMAS_BLOCK_DEFAULT_EXTENSION:
+ *
+ * the schema has "extension" in the set of blockDefault.
+
+ d XML_SCHEMAS_BLOCK_DEFAULT_EXTENSION...
+ d c X'00000040'
+
+ * XML_SCHEMAS_BLOCK_DEFAULT_RESTRICTION:
+ *
+ * the schema has "restriction" in the set of blockDefault.
+
+ d XML_SCHEMAS_BLOCK_DEFAULT_RESTRICTION...
+ d c X'00000080'
+
+ * XML_SCHEMAS_BLOCK_DEFAULT_SUBSTITUTION:
+ *
+ * the schema has "substitution" in the set of blockDefault.
+
+ d XML_SCHEMAS_BLOCK_DEFAULT_SUBSTITUTION...
+ d c X'00000100'
+
+ * XML_SCHEMAS_INCLUDING_CONVERT_NS:
+ *
+ * the schema is currently including an other schema with
+ * no target namespace.
+
+ d XML_SCHEMAS_INCLUDING_CONVERT_NS...
+ d c X'00000200'
+
+ * _xmlSchema:
+ *
+ * A Schemas definition
+
+ d xmlSchema ds based(xmlSchemaPtr)
+ d align qualified
+ d name * const xmlChar *
+ d targetNamespace...
+ d * const xmlChar *
+ d version * const xmlChar *
+ d id * const xmlChar *
+ d doc like(xmlDocPtr)
+ d annot like(xmlSchemaAnnotPtr)
+ d flags like(xmlCint)
+ *
+ d typeDecl like(xmlHashTablePtr)
+ d attrDecl like(xmlHashTablePtr)
+ d attrGrpDecl like(xmlHashTablePtr)
+ d elemDecl like(xmlHashTablePtr)
+ d notaDecl like(xmlHashTablePtr)
+ d schemasImports...
+ d like(xmlHashTablePtr)
+ *
+ d #private * void *
+ d groupDecl like(xmlHashTablePtr)
+ d dict like(xmlDictPtr)
+ d includes * void *
+ d preserve like(xmlCint) Do not free doc ?
+ d counter like(xmlCint) For name uniqueness
+ d idcDef like(xmlHashTablePtr) All id-constr. defs
+ d volatiles * void *
+
+ d xmlSchemaFreeType...
+ d pr extproc('xmlSchemaFreeType')
+ d type value like(xmlSchemaTypePtr)
+
+ d xmlSchemaFreeWildcard...
+ d pr extproc('xmlSchemaFreeWildcard')
+ d wildcard value like(xmlSchemaWildcardPtr)
+
+ /endif LIBXML_SCHEMAS_ENBLD
+ /endif SCHEMA_INTERNALS_H__
diff --git a/libxml2/os400/libxmlrpg/schematron.rpgle b/libxml2/os400/libxmlrpg/schematron.rpgle
new file mode 100644
index 0000000..8271ca5
--- /dev/null
+++ b/libxml2/os400/libxmlrpg/schematron.rpgle
@@ -0,0 +1,204 @@
+ * Summary: XML Schemastron implementation
+ * Description: interface to the XML Schematron validity checking.
+ *
+ * Copy: See Copyright for the status of this software.
+ *
+ * Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A.
+
+ /if not defined(XML_SCHEMATRON_H__)
+ /define XML_SCHEMATRON_H__
+
+ /include "libxmlrpg/xmlversion"
+
+ /if defined(LIBXML_SCHEMATRON_ENABLED)
+
+ /include "libxmlrpg/xmlTypesC"
+ /include "libxmlrpg/tree"
+
+ d xmlSchematronValidOptions...
+ d s based(######typedef######)
+ d like(xmlCenum)
+ d XML_SCHEMATRON_OUT_QUIET... Quiet no report
+ d c X'0001'
+ d XML_SCHEMATRON_OUT_TEXT... Build textual report
+ d c X'0002'
+ d XML_SCHEMATRON_OUT_XML... Output SVRL
+ d c X'0004'
+ d XML_SCHEMATRON_OUT_ERROR... Output to error func
+ d c X'0008'
+ d XML_SCHEMATRON_OUT_FILE... Output to file descr
+ d c X'0100'
+ d XML_SCHEMATRON_OUT_BUFFER... Output to a buffer
+ d c X'0200'
+ d XML_SCHEMATRON_OUT_IO... Output to I/O mech
+ d c X'0400'
+
+ * The schemas related types are kept internal
+
+ d xmlSchematronPtr...
+ d s * based(######typedef######)
+
+ * xmlSchematronValidityErrorFunc:
+ * @ctx: the validation context
+ * @msg: the message
+ * @...: extra arguments
+ *
+ * Signature of an error callback from a Schematron validation
+
+ d xmlSchematronValidityErrorFunc...
+ d s * based(######typedef######)
+ d procptr
+
+ * xmlSchematronValidityWarningFunc:
+ * @ctx: the validation context
+ * @msg: the message
+ * @...: extra arguments
+ *
+ * Signature of a warning callback from a Schematron validation
+
+ d xmlSchematronValidityWarningFunc...
+ d s * based(######typedef######)
+ d procptr
+
+ * A schemas validation context
+
+ d xmlSchematronParserCtxtPtr...
+ d s * based(######typedef######)
+
+ d xmlSchematronValidCtxtPtr...
+ d s * based(######typedef######)
+
+ * Interfaces for parsing.
+
+ d xmlSchematronNewParserCtxt...
+ d pr extproc('xmlSchematronNewParserCtxt')
+ d like(xmlSchematronParserCtxtPtr)
+ d URL * value options(*string) const char *
+
+ d xmlSchematronNewMemParserCtxt...
+ d pr extproc(
+ d 'xmlSchematronNewMemParserCtxt')
+ d like(xmlSchematronParserCtxtPtr)
+ d buffer * value options(*string) const char *
+ d size value like(xmlCint)
+
+ d xmlSchematronNewDocParserCtxt...
+ d pr extproc(
+ d 'xmlSchematronNewDocParserCtxt')
+ d like(xmlSchematronParserCtxtPtr)
+ d doc value like(xmlDocPtr)
+
+ d xmlSchematronFreeParserCtxt...
+ d pr extproc(
+ d 'xmlSchematronFreeParserCtxt')
+ d ctxt value
+ d like(xmlSchematronParserCtxtPtr)
+
+ /if defined(DISABLED)
+ d xmlSchematronSetParserErrors...
+ d pr extproc(
+ d 'xmlSchematronSetParserErrors')
+ d ctxt value
+ d like(xmlSchematronParserCtxtPtr)
+ d err value
+ d like(xmlSchematronValidityErrorFunc)
+ d warn value like(
+ d xmlSchematronValidityWarningFunc)
+ d ctx * value void *
+
+ d xmlSchematronGetParserErrors...
+ d pr extproc(
+ d 'xmlSchematronGetParserErrors')
+ d like(xmlCint)
+ d ctxt value
+ d like(xmlSchematronParserCtxtPtr)
+ d err like(xmlSchematronValidityErrorFunc)
+ d warn like(
+ d xmlSchematronValidityWarningFunc)
+ d ctx * void *(*)
+
+ d xmlSchematronIsValid...
+ d pr extproc('xmlSchematronIsValid')
+ d like(xmlCint)
+ d ctxt value like(xmlSchematronValidCtxtPtr)
+ /endif
+
+ d xmlSchematronParse...
+ d pr extproc('xmlSchematronParse')
+ d like(xmlSchematronPtr)
+ d ctxt value
+ d like(xmlSchematronParserCtxtPtr)
+
+ d xmlSchematronFree...
+ d pr extproc('xmlSchematronFree')
+ d schema value like(xmlSchematronPtr)
+
+ * Interfaces for validating
+
+ d xmlSchematronSetValidStructuredErrors...
+ d pr extproc('xmlSchematronSetValidStruct-
+ d uredErrors')
+ d ctxt value like(xmlSchematronValidCtxtPtr)
+ d serror value like(xmlStructuredErrorFunc)
+ d ctx * value void *
+
+ /if defined(DISABLED)
+ d xmlSchematronSetValidErrors...
+ d pr extproc(
+ d 'xmlSchematronSetValidErrors')
+ d ctxt value like(xmlSchematronValidCtxtPtr)
+ d err value
+ d like(xmlSchematronValidityErrorFunc)
+ d warn value like(
+ d xmlSchematronValidityWarningFunc)
+ d ctx * value void *
+
+ d xmlSchematronGetValidErrors...
+ d pr extproc(
+ d 'xmlSchematronGetValidErrors')
+ d like(xmlCint)
+ d ctxt value like(xmlSchematronValidCtxtPtr)
+ d err like(xmlSchematronValidityErrorFunc)
+ d warn like(
+ d xmlSchematronValidityWarningFunc)
+ d ctx * void *(*)
+
+ d xmlSchematronSetValidOptions...
+ d pr extproc(
+ d 'xmlSchematronSetValidOptions')
+ d like(xmlCint)
+ d ctxt value like(xmlSchematronValidCtxtPtr)
+ d options value like(xmlCint)
+
+ d xmlSchematronValidCtxtGetOptions...
+ d pr extproc(
+ d 'xmlSchematronValidCtxtGetOptions')
+ d like(xmlCint)
+ d ctxt value like(xmlSchematronValidCtxtPtr)
+
+ d xmlSchematronValidateOneElement...
+ d pr extproc(
+ d 'xmlSchematronValidateOneElement')
+ d like(xmlCint)
+ d ctxt value like(xmlSchematronValidCtxtPtr)
+ d elem value like(xmlNodePtr)
+ /endif
+
+ d xmlSchematronNewValidCtxt...
+ d pr extproc('xmlSchematronNewValidCtxt')
+ d like(xmlSchematronValidCtxtPtr)
+ d schema value like(xmlSchematronPtr)
+ d options value like(xmlCint)
+
+ d xmlSchematronFreeValidCtxt...
+ d pr extproc('xmlSchematronFreeValidCtxt')
+ d ctxt value like(xmlSchematronValidCtxtPtr)
+
+ d xmlSchematronValidateDoc...
+ d pr extproc('xmlSchematronValidateDoc')
+ d like(xmlCint)
+ d ctxt value like(xmlSchematronValidCtxtPtr)
+ d instance value like(xmlDocPtr)
+
+ /endif _SCHEMATRON_ENABLED
+ /endif XML_SCHEMATRON_H__
diff --git a/libxml2/os400/libxmlrpg/threads.rpgle b/libxml2/os400/libxmlrpg/threads.rpgle
new file mode 100644
index 0000000..124798b
--- /dev/null
+++ b/libxml2/os400/libxmlrpg/threads.rpgle
@@ -0,0 +1,73 @@
+ * Summary: interfaces for thread handling
+ * Description: set of generic threading related routines
+ * should work with pthreads, Windows native or TLS threads
+ *
+ * Copy: See Copyright for the status of this software.
+ *
+ * Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A.
+
+ /if not defined(XML_THREADS_H__)
+ /define XML_THREADS_H__
+
+ /include "libxmlrpg/xmlversion"
+ /include "libxmlrpg/xmlTypesC"
+
+ * xmlMutex are a simple mutual exception locks.
+
+ d xmlMutexPtr s * based(######typedef######)
+
+ * xmlRMutex are reentrant mutual exception locks.
+
+ d xmlRMutexPtr s * based(######typedef######)
+
+ /include "libxmlrpg/globals"
+
+ d xmlNewMutex pr extproc('xmlNewMutex')
+ d like(xmlMutexPtr)
+
+ d xmlMutexLock pr extproc('xmlMutexLock')
+ d tok value like(xmlMutexPtr)
+
+ d xmlMutexUnlock pr extproc('xmlMutexUnlock')
+ d tok value like(xmlMutexPtr)
+
+ d xmlFreeMutex pr extproc('xmlFreeMutex')
+ d tok value like(xmlMutexPtr)
+
+ d xmlNewRMutex pr extproc('xmlNewRMutex')
+ d like(xmlRMutexPtr)
+
+ d xmlRMutexLock pr extproc('xmlRMutexLock')
+ d tok value like(xmlRMutexPtr)
+
+ d xmlRMutexUnlock...
+ d pr extproc('xmlRMutexUnlock')
+ d tok value like(xmlRMutexPtr)
+
+ d xmlFreeRMutex pr extproc('xmlFreeRMutex')
+ d tok value like(xmlRMutexPtr)
+
+ * Library wide APIs.
+
+ d xmlInitThreads pr extproc('xmlInitThreads')
+
+ d xmlLockLibrary pr extproc('xmlLockLibrary')
+
+ d xmlUnlockLibrary...
+ d pr extproc('xmlUnlockLibrary')
+
+ d xmlGetThreadId pr extproc('xmlGetThreadId')
+ d like(xmlCint)
+
+ d xmlIsMainThread...
+ d pr extproc('xmlIsMainThread')
+ d like(xmlCint)
+
+ d xmlCleanupThreads...
+ d pr extproc('xmlCleanupThreads')
+
+ d xmlGetGlobalState...
+ d pr extproc('xmlGetGlobalState')
+ d like(xmlGlobalStatePtr)
+
+ /endif XML_THREADS_H__
diff --git a/libxml2/os400/libxmlrpg/transcode.rpgle b/libxml2/os400/libxmlrpg/transcode.rpgle
new file mode 100644
index 0000000..b96e4e8
--- /dev/null
+++ b/libxml2/os400/libxmlrpg/transcode.rpgle
@@ -0,0 +1,71 @@
+ * Supplementary character code conversion functions for
+ * EBCDIC environments.
+ *
+ * Copy: See Copyright for the status of this software.
+ *
+ * Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A.
+
+ /if not defined(TRANSCODE_H__)
+ /define TRANSCODE_H__
+
+ /include "libxmlrpg/dict"
+ /include "libxmlrpg/xmlstdarg"
+
+ d xmlZapDict pr extproc('xmlZapDict')
+ d dict like(xmlDictPtr)
+
+ d xmlTranscodeResult...
+ d pr * extproc('xmlTranscodeResult') const char *
+ d s * value options(*string) const xmlChar *
+ d encoding * value options(*string) const char *
+ d dict like(xmlDictPtr) options(*omit)
+ d freeproc * value procptr
+
+ d xmlTranscodeString...
+ d pr * extproc('xmlTranscodeString') const xmlChar *
+ d s * value options(*string) const char *
+ d encoding * value options(*string) const char *
+ d dict like(xmlDictPtr) options(*omit)
+
+ d xmlTranscodeWString...
+ d pr * extproc('xmlTranscodeWString') const xmlChar *
+ d s * value options(*string) const char *
+ d encoding * value options(*string) const char *
+ d dict like(xmlDictPtr) options(*omit)
+
+ d xmlTranscodeHString...
+ d pr * extproc('xmlTranscodeHString') const xmlChar *
+ d s * value options(*string) const char *
+ d encoding * value options(*string) const char *
+ d dict like(xmlDictPtr) options(*omit)
+
+ /if not defined(XML_NO_SHORT_NAMES)
+ d xmlTR pr * extproc('xmlTranscodeResult') const char *
+ d s * value options(*string) const xmlChar *
+ d encoding * value options(*string) const char *
+ d dict like(xmlDictPtr) options(*omit)
+ d freeproc * value procptr
+
+ d xmlTS pr * extproc('xmlTranscodeString') const xmlChar *
+ d s * value options(*string) const char *
+ d encoding * value options(*string) const char *
+ d dict like(xmlDictPtr) options(*omit)
+
+ d xmlTW pr * extproc('xmlTranscodeWString') const xmlChar *
+ d s * value options(*string) const char *
+ d encoding * value options(*string) const char *
+ d dict like(xmlDictPtr) options(*omit)
+
+ d xmlTH pr * extproc('xmlTranscodeHString') const xmlChar *
+ d s * value options(*string) const char *
+ d encoding * value options(*string) const char *
+ d dict like(xmlDictPtr) options(*omit)
+ /endif
+
+ d xmlVasprintf pr * extproc('xmlVasprintf')
+ d dict like(xmlDictPtr) options(*omit)
+ d encoding * value options(*string) const char *
+ d fmt * value options(*string) const xmlChar *
+ d args likeds(xmlVaList)
+
+ /endif
diff --git a/libxml2/os400/libxmlrpg/tree.rpgle b/libxml2/os400/libxmlrpg/tree.rpgle
new file mode 100644
index 0000000..6512778
--- /dev/null
+++ b/libxml2/os400/libxmlrpg/tree.rpgle
@@ -0,0 +1,1681 @@
+ * Summary: interfaces for tree manipulation
+ * Description: this module describes the structures found in an tree
+ * resulting from an XML or HTML parsing, as well as the API
+ * provided for various processing on that tree
+ *
+ * Copy: See Copyright for the status of this software.
+ *
+ * Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A.
+
+ /if not defined(XML_TREE_H__)
+ /define XML_TREE_H__
+
+ /include "libxmlrpg/xmlversion"
+ /include "libxmlrpg/xmlTypesC"
+ /include "libxmlrpg/xmlstring"
+
+
+ * Some of the basic types pointer to structures:
+
+ * xmlIO.h
+
+ d xmlParserInputBufferPtr...
+ d s * based(######typedef######)
+
+ d xmlOutputBufferPtr...
+ d s * based(######typedef######)
+
+ * parser.h
+
+ d xmlParserInputPtr...
+ d s * based(######typedef######)
+
+ d xmlParserCtxtPtr...
+ d s * based(######typedef######)
+
+ d xmlSAXLocatorPtr...
+ d s * based(######typedef######)
+
+ d xmlSAXHandlerPtr...
+ d s * based(######typedef######)
+
+ * entities.h
+
+ d xmlEntityPtr s * based(######typedef######)
+
+
+ * BASE_BUFFER_SIZE:
+ *
+ * default buffer size 4000.
+
+ d BASE_BUFFER_SIZE...
+ d c 4096
+
+ * LIBXML_NAMESPACE_DICT:
+ *
+ * Defines experimental behaviour:
+ * 1) xmlNs gets an additional field @context (a xmlDoc)
+ * 2) when creating a tree, xmlNs->href is stored in the dict of xmlDoc.
+
+ /if defined(DO_NOT_COMPILE)
+ /define LIBXML_NAMESPACE_DICT
+ /endif
+
+ * xmlBufferAllocationScheme:
+ *
+ * A buffer allocation scheme can be defined to either match exactly the
+ * need or double it's allocated size each time it is found too small.
+
+ d xmlBufferAllocationScheme...
+ d s based(######typedef######)
+ d like(xmlCenum)
+ d XML_BUFFER_ALLOC_DOUBLEIT...
+ d c 0
+ d XML_BUFFER_ALLOC_EXACT...
+ d c 1
+ d XML_BUFFER_ALLOC_IMMUTABLE...
+ d c 2
+ d XML_BUFFER_ALLOC_IO...
+ d c 3
+ d XML_BUFFER_ALLOC_HYBRID...
+ d c 4
+
+ * xmlBuffer:
+ *
+ * A buffer structure, this old construct is limited to 2GB and
+ * is being deprecated, use API with xmlBuf instead
+
+ d xmlBufferPtr s * based(######typedef######)
+
+ d xmlBuffer ds based(xmlBufferPtr)
+ d align qualified
+ d content * xmlChar *
+ d use like(xmlCuint)
+ d size like(xmlCuint)
+ d alloc like(xmlBufferAllocationScheme) The realloc method
+ d contentIO * xmlChar *
+
+ * xmlBufPtr:
+ *
+ * A pointer to a buffer structure, the actual structure internals are not
+ * public
+
+ d xmlBufPtr s * based(######typedef######)
+
+ * A few public routines for xmlBuf. As those are expected to be used
+ * mostly internally the bulk of the routines are internal in buf.h
+
+ d xmlBufContent pr * extproc('xmlBufContent') xmlChar *
+ d buf value like(xmlBufPtr) const
+
+ d xmlBufEnd pr * extproc('xmlBufEnd') xmlChar *
+ d buf value like(xmlBufPtr) const
+
+ d xmlBufUse pr extproc('xmlBufUse')
+ d like(xmlCsize_t)
+ d buf value like(xmlBufPtr) const
+
+ d xmlBufShrink pr extproc('xmlBufShrink')
+ d like(xmlCsize_t)
+ d buf value like(xmlBufPtr)
+ d len value like(xmlCsize_t)
+
+ * LIBXML2_NEW_BUFFER:
+ *
+ * Macro used to express that the API use the new buffers for
+ * xmlParserInputBuffer and xmlOutputBuffer. The change was
+ * introduced in 2.9.0.
+
+ /define LIBXML2_NEW_BUFFER
+
+ * XML_XML_NAMESPACE:
+ *
+ * This is the namespace for the special xml: prefix predefined in the
+ * XML Namespace specification.
+
+ d XML_XML_NAMESPACE...
+ d c 'http://www.w3.org/XML/1998/+
+ d namespace'
+
+ * XML_XML_ID:
+ *
+ * This is the name for the special xml:id attribute
+
+ d XML_XML_ID c 'xml:id'
+
+ * The different element types carried by an XML tree.
+ *
+ * NOTE: This is synchronized with DOM Level1 values
+ * See http://www.w3.org/TR/REC-DOM-Level-1/
+ *
+ * Actually this had diverged a bit, and now XML_DOCUMENT_TYPE_NODE should
+ * be deprecated to use an XML_DTD_NODE.
+
+ d xmlElementType s based(######typedef######)
+ d like(xmlCenum)
+ d XML_ELEMENT_NODE...
+ d c 1
+ d XML_ATTRIBUTE_NODE...
+ d c 2
+ d XML_TEXT_NODE c 3
+ d XML_CDATA_SECTION_NODE...
+ d c 4
+ d XML_ENTITY_REF_NODE...
+ d c 5
+ d XML_ENTITY_NODE...
+ d c 6
+ d XML_PI_NODE c 7
+ d XML_COMMENT_NODE...
+ d c 8
+ d XML_DOCUMENT_NODE...
+ d c 9
+ d XML_DOCUMENT_TYPE_NODE...
+ d c 10
+ d XML_DOCUMENT_FRAG_NODE...
+ d c 11
+ d XML_NOTATION_NODE...
+ d c 12
+ d XML_HTML_DOCUMENT_NODE...
+ d c 13
+ d XML_DTD_NODE c 14
+ d XML_ELEMENT_DECL...
+ d c 15
+ d XML_ATTRIBUTE_DECL...
+ d c 16
+ d XML_ENTITY_DECL...
+ d c 17
+ d XML_NAMESPACE_DECL...
+ d c 18
+ d XML_LOCAL_NAMESPACE...
+ d c 18 Alias
+ d XML_XINCLUDE_START...
+ d c 19
+ d XML_XINCLUDE_END...
+ d c 20
+ /if defined(LIBXML_DOCB_ENABLED)
+ d XML_DOCB_DOCUMENT_NODE...
+ d c 21
+ /endif
+
+ * xmlNotation:
+ *
+ * A DTD Notation definition.
+
+ d xmlNotationPtr s * based(######typedef######)
+
+ d xmlNotation ds based(xmlNotationPtr)
+ d align qualified
+ d name * const xmlChar *
+ d PublicID * const xmlChar *
+ d SystemID * const xmlChar *
+
+ * xmlAttributeType:
+ *
+ * A DTD Attribute type definition.
+
+ d xmlAttributeType...
+ d s based(######typedef######)
+ d like(xmlCenum)
+ d XML_ATTRIBUTE_CDATA...
+ d c 1
+ d XML_ATTRIBUTE_ID...
+ d c 2
+ d XML_ATTRIBUTE_IDREF...
+ d c 3
+ d XML_ATTRIBUTE_IDREFS...
+ d c 4
+ d XML_ATTRIBUTE_ENTITY...
+ d c 5
+ d XML_ATTRIBUTE_ENTITIES...
+ d c 6
+ d XML_ATTRIBUTE_NMTOKEN...
+ d c 7
+ d XML_ATTRIBUTE_NMTOKENS...
+ d c 8
+ d XML_ATTRIBUTE_ENUMERATION...
+ d c 9
+ d XML_ATTRIBUTE_NOTATION...
+ d c 10
+
+ * xmlAttributeDefault:
+ *
+ * A DTD Attribute default definition.
+
+ d xmlAttributeDefault...
+ d s based(######typedef######)
+ d like(xmlCenum)
+ d XML_ATTRIBUTE_NONE...
+ d c 1
+ d XML_ATTRIBUTE_REQUIRED...
+ d c 2
+ d XML_ATTRIBUTE_IMPLIED...
+ d c 3
+ d XML_ATTRIBUTE_FIXED...
+ d c 4
+
+ * xmlEnumeration:
+ *
+ * List structure used when there is an enumeration in DTDs.
+
+ d xmlEnumerationPtr...
+ d s * based(######typedef######)
+
+ d xmlEnumeration ds based(xmlEnumerationPtr)
+ d align qualified
+ d next like(xmlEnumerationPtr) Next one
+ d name * const xmlChar *
+
+ * Forward pointer declarations.
+
+ d xmlNodePtr s * based(######typedef######)
+ d xmlDocPtr s * based(######typedef######)
+ d xmlDtdPtr s * based(######typedef######)
+
+ * xmlAttribute:
+ *
+ * An Attribute declaration in a DTD.
+
+ d xmlAttributePtr...
+ d s * based(######typedef######)
+
+ d xmlAttribute ds based(xmlAttributePtr)
+ d align qualified
+ d #private * Application data
+ d type like(xmlElementType) XML_ATTRIBUTE_DECL
+ d name * const xmlChar *
+ d children like(xmlNodePtr) NULL
+ d last like(xmlNodePtr) NULL
+ d parent like(xmlDtdPtr) -> DTD
+ d next like(xmlNodePtr) next sibling link
+ d prev like(xmlNodePtr) previous sibling lnk
+ d doc like(xmlDocPtr) The containing doc
+ d nexth like(xmlAttributePtr) Next in hash table
+ d atype like(xmlAttributeType) The attribute type
+ d def like(xmlAttributeDefault) The default
+ d defaultValue * or const xmlChar *
+ d tree like(xmlEnumerationPtr) or enum tree
+ d prefix * const xmlChar *
+ d elem * const xmlChar *
+
+ * xmlElementContentType:
+ *
+ * Possible definitions of element content types.
+
+ d xmlElementContentType...
+ d s based(######typedef######)
+ d like(xmlCenum)
+ d XML_ELEMENT_CONTENT_PCDATA...
+ d c 1
+ d XML_ELEMENT_CONTENT_ELEMENT...
+ d c 2
+ d XML_ELEMENT_CONTENT_SEQ...
+ d c 3
+ d XML_ELEMENT_CONTENT_OR...
+ d c 4
+
+ * xmlElementContentOccur:
+ *
+ * Possible definitions of element content occurrences.
+
+ d xmlElementContentOccur...
+ d s based(######typedef######)
+ d like(xmlCenum)
+ d XML_ELEMENT_CONTENT_ONCE...
+ d c 1
+ d XML_ELEMENT_CONTENT_OPT...
+ d c 2
+ d XML_ELEMENT_CONTENT_MULT...
+ d c 3
+ d XML_ELEMENT_CONTENT_PLUS...
+ d c 4
+
+ * xmlElementContent:
+ *
+ * An XML Element content as stored after parsing an element definition
+ * in a DTD.
+
+ d xmlElementContentPtr...
+ d s * based(######typedef######)
+
+ d xmlElementContent...
+ d ds based(xmlElementContentPtr)
+ d align qualified
+ d type like(xmlElementContentType)
+ d ocur like(xmlElementContentOccur)
+ d name * const xmlChar *
+ d c1 like(xmlElementContentPtr) First child
+ d c2 like(xmlElementContentPtr) Second child
+ d parent like(xmlElementContentPtr) Parent
+ d prefix * const xmlChar *
+
+ * xmlElementTypeVal:
+ *
+ * The different possibilities for an element content type.
+
+ d xmlElementTypeVal...
+ d s based(######typedef######)
+ d like(xmlCenum)
+ d XML_ELEMENT_TYPE_UNDEFINED...
+ d c 0
+ d XML_ELEMENT_TYPE_EMPTY...
+ d c 1
+ d XML_ELEMENT_TYPE_ANY...
+ d c 2
+ d XML_ELEMENT_TYPE_MIXED...
+ d c 3
+ d XML_ELEMENT_TYPE_ELEMENT...
+ d c 4
+
+ /include "libxmlrpg/xmlregexp"
+
+ * xmlElement:
+ *
+ * An XML Element declaration from a DTD.
+
+ d xmlElementPtr s * based(######typedef######)
+
+ d xmlElement ds based(xmlElementPtr)
+ d align qualified
+ d #private * Application data
+ d type like(xmlElementType) XML_ELEMENT_DECL
+ d name * const xmlChar *
+ d children like(xmlNodePtr) NULL
+ d last like(xmlNodePtr) NULL
+ d parent like(xmlDtdPtr) -> DTD
+ d next like(xmlNodePtr) next sibling link
+ d prev like(xmlNodePtr) previous sibling lnk
+ d doc like(xmlDocPtr) The containing doc
+ d etype like(xmlElementTypeVal) The type
+ d content like(xmlElementContentPtr) Allowed elem content
+ d attributes like(xmlAttributePtr) Declared attributes
+ d prefix * const xmlChar *
+ /if defined(LIBXML_REGEXP_ENABLED)
+ d contModel like(xmlRegexpPtr) Validating regexp
+ /else
+ d contModel *
+ /endif
+
+ * XML_LOCAL_NAMESPACE:
+ *
+ * A namespace declaration node.
+
+ * xmlNs:
+ *
+ * An XML namespace.
+ * Note that prefix == NULL is valid, it defines the default namespace
+ * within the subtree (until overridden).
+ *
+ * xmlNsType is unified with xmlElementType.
+
+ d xmlNsType s based(######typedef######) enum
+ d like(xmlElementType)
+
+ d xmlNsPtr s * based(######typedef######)
+
+ d xmlNs ds based(xmlNsPtr)
+ d align qualified
+ d next like(xmlNsPtr) next Ns link
+ d type like(xmlNsType) Global or local
+ d href * const xmlChar *
+ d prefix * const xmlChar *
+ d #private * Application data
+ d context like(xmlDocPtr) normally an xmlDoc
+
+ * xmlDtd:
+ *
+ * An XML DTD, as defined by <!DOCTYPE ... There is actually one for
+ * the internal subset and for the external subset.
+
+ d xmlDtd ds based(xmlDtdPtr)
+ d align qualified
+ d #private * Application data
+ d type like(xmlElementType) XML_DTD_NODE
+ d name * const xmlChar *
+ d children like(xmlNodePtr) Property link value
+ d last like(xmlNodePtr) Last child link
+ d parent like(xmlDocPtr) Child->parent link
+ d next like(xmlNodePtr) next sibling link
+ d prev like(xmlNodePtr) previous sibling lnk
+ d doc like(xmlDocPtr) The containing doc
+ d notations * notations hash table
+ d elements * elements hash table
+ d entities * entities hash table
+ d ExternalID * const xmlChar *
+ d SystemID * const xmlChar *
+ d pentities * param. ent. h table
+
+ * xmlAttr:
+ *
+ * An attribute on an XML node.
+
+ d xmlAttrPtr s * based(######typedef######)
+
+ d xmlAttr ds based(xmlAttrPtr)
+ d align qualified
+ d #private * Application data
+ d type like(xmlElementType) XML_ATTRIBUTE_NODE
+ d name * const xmlChar *
+ d children like(xmlNodePtr) Property link value
+ d last like(xmlNodePtr) NULL
+ d parent like(xmlNodePtr) Child->parent link
+ d next like(xmlAttrPtr) next sibling link
+ d prev like(xmlAttrPtr) previous sibling lnk
+ d doc like(xmlDocPtr) The containing doc
+ d ns like(xmlNsPtr) Associated namespace
+ d atype like(xmlAttributeType) For validation
+ d psvi * Type/PSVI info
+
+ * xmlID:
+ *
+ * An XML ID instance.
+
+ d xmlIdPtr s * based(######typedef######)
+
+ d xmlID ds based(xmlIdPtr)
+ d align qualified
+ d next like(xmlIdPtr) Next ID
+ d attr like(xmlAttrPtr) Attribute holding it
+ d name * const xmlChar *
+ d lineno like(xmlCint) Line # if not avail
+ d doc like(xmlDocPtr) Doc holding ID
+
+ * xmlRef:
+ *
+ * An XML IDREF instance.
+
+ d xmlRefPtr s * based(######typedef######)
+
+ d xmlRef ds based(xmlRefPtr)
+ d align qualified
+ d next like(xmlRefPtr) Next Ref
+ d value * const xmlChar *
+ d attr like(xmlAttrPtr) Attribute holding it
+ d name * const xmlChar *
+ d lineno like(xmlCint) Line # if not avail
+
+ * xmlNode:
+ *
+ * A node in an XML tree.
+
+ d xmlNode ds based(xmlNodePtr)
+ d align qualified
+ d #private * Application data
+ d type like(xmlElementType)
+ d name * const xmlChar *
+ d children like(xmlNodePtr) Parent->children lnk
+ d last like(xmlNodePtr) Last child link
+ d parent like(xmlNodePtr) Child->parent link
+ d next like(xmlNodePtr) next sibling link
+ d prev like(xmlNodePtr) previous sibling lnk
+ d doc like(xmlDocPtr) The containing doc
+ d ns like(xmlNsPtr) Associated namespace
+ d content * xmlChar *
+ d properties like(xmlAttrPtr) Properties list
+ d nsDef like(xmlNsPtr) Node ns definitions
+ d psvi * Type/PSVI info
+ d line like(xmlCushort)
+ d extra like(xmlCushort) Data for XPath/XSLT
+
+ * xmlDocProperty
+ *
+ * Set of properties of the document as found by the parser
+ * Some of them are linked to similary named xmlParserOption
+
+ d xmlDocProperties...
+ d s based(######typedef######)
+ d like(xmlCenum)
+ d XML_DOC_WELLFORMED...
+ d c X'00000001'
+ d XML_DOC_NSVALID...
+ d c X'00000002'
+ d XML_DOC_OLD10 c X'00000004'
+ d XML_DOC_DTDVALID...
+ d c X'00000008'
+ d XML_DOC_XINCLUDE...
+ d c X'00000010'
+ d XML_DOC_USERBUILT...
+ d c X'00000020'
+ d XML_DOC_INTERNAL...
+ d c X'00000030'
+ d XML_DOC_HTML c X'00000080'
+
+ * xmlDoc:
+ *
+ * An XML document.
+
+ d xmlDoc ds based(xmlDocPtr)
+ d align qualified
+ d #private * Application data
+ d type like(xmlElementType) XML_DOCUMENT_NODE
+ d name * const xmlChar *
+ d children like(xmlNodePtr) The document tree
+ d last like(xmlNodePtr) Last child link
+ d parent like(xmlNodePtr) Child->parent link
+ d next like(xmlNodePtr) next sibling link
+ d prev like(xmlNodePtr) previous sibling lnk
+ d doc like(xmlDocPtr) Reference to itself
+ d compression like(xmlCint) zlib compression lev
+ d standalone like(xmlCint)
+ d intSubset like(xmlDtdPtr) Internal subset
+ d extSubset like(xmlDtdPtr) External subset
+ d oldns like(xmlNsPtr) Global namespace
+ d version * const xmlChar *
+ d encoding * const xmlChar *
+ d ids * IDs hash table
+ d refs * IDREFs hash table
+ d URL * const xmlChar *
+ d charset like(xmlCint) In-memory encoding
+ d dict * xmlDictPtr for names
+ d psvi * Type/PSVI ino
+ d parseFlags like(xmlCint) xmlParserOption's
+ d properties like(xmlCint) xmlDocProperties
+
+ * xmlDOMWrapAcquireNsFunction:
+ * @ctxt: a DOM wrapper context
+ * @node: the context node (element or attribute)
+ * @nsName: the requested namespace name
+ * @nsPrefix: the requested namespace prefix
+ *
+ * A function called to acquire namespaces (xmlNs) from the wrapper.
+ *
+ * Returns an xmlNsPtr or NULL in case of an error.
+
+ d xmlDOMWrapAcquireNsFunction...
+ d s * based(######typedef######)
+ d procptr
+
+ * xmlDOMWrapCtxt:
+ *
+ * Context for DOM wrapper-operations.
+
+ d xmlDOMWrapCtxtPtr...
+ d s * based(######typedef######)
+
+ d xmlDOMWrapCtxt...
+ d ds based(xmlDOMWrapCtxtPtr)
+ d align qualified
+ d #private * void *
+ d type like(xmlCint)
+ d namespaceMap * void *
+ d getNsForNodeFunc...
+ d like(xmlDOMWrapAcquireNsFunction)
+
+
+ * Variables.
+
+ * Some helper functions
+
+ /undefine XML_TESTVAL
+ /if defined(LIBXML_TREE_ENABLED)
+ /define XML_TESTVAL
+ /elseif defined(LIBXML_XPATH_ENABLED)
+ /define XML_TESTVAL
+ /elseif defined(LIBXML_SCHEMAS_ENABLED)
+ /define XML_TESTVAL
+ /elseif defined(LIBXML_DEBUG_ENABLED)
+ /define XML_TESTVAL
+ /elseif defined(LIBXML_HTML_ENABLED)
+ /define XML_TESTVAL
+ /elseif defined(LIBXML_SAX1_ENABLED)
+ /define XML_TESTVAL
+ /elseif defined(LIBXML_HTML_ENABLED)
+ /define XML_TESTVAL
+ /elseif defined(LIBXML_WRITER_ENABLED)
+ /define XML_TESTVAL
+ /elseif defined(LIBXML_DOCB_ENABLED)
+ /define XML_TESTVAL
+ /endif
+ /if defined(XML_TESTVAL)
+ d xmlValidateNCName...
+ d pr extproc('xmlValidateNCName')
+ d like(xmlCint)
+ d value * value options(*string) const xmlChar *
+ d space value like(xmlCint)
+
+ /undefine XML_TESTVAL
+ /endif
+
+ /if defined(LIBXML_TREE_ENABLED)
+ /define XML_TESTVAL
+ /elseif defined(LIBXML_SCHEMAS_ENABLED)
+ /define XML_TESTVAL
+ /endif
+ /if defined(XML_TESTVAL)
+ d xmlValidateQName...
+ d pr extproc('xmlValidateQName')
+ d like(xmlCint)
+ d value * value options(*string) const xmlChar *
+ d space value like(xmlCint)
+
+ d xmlValidateName...
+ d pr extproc('xmlValidateName')
+ d like(xmlCint)
+ d value * value options(*string) const xmlChar *
+ d space value like(xmlCint)
+
+ d xmlValidateNMToken...
+ d pr extproc('xmlValidateNMToken')
+ d like(xmlCint)
+ d value * value options(*string) const xmlChar *
+ d space value like(xmlCint)
+
+ /undefine XML_TESTVAL
+ /endif
+
+ d xmlBuildQName pr * extproc('xmlBuildQName') xmlChar *
+ d ncname * value options(*string) const xmlChar *
+ d prefix * value options(*string) const xmlChar *
+ d memory 65535 options(*varsize: *omit) xmlChar[]
+ d len value like(xmlCint) memory length
+
+ d xmlSplitQName2 pr * extproc('xmlSplitQName2') xmlChar *
+ d name * value options(*string) const xmlChar *
+ d prefix * xmlChar *
+
+ d xmlSplitQName3 pr * extproc('xmlSplitQName3') const xmlChar *
+ d name * value options(*string) const xmlChar *
+ d len like(xmlCint)
+
+ * Handling Buffers, the old ones see @xmlBuf for the new ones.
+
+ d xmlSetBufferAllocationScheme...
+ d pr extproc(
+ d 'xmlSetBufferAllocationScheme')
+ d scheme value
+ d like(xmlBufferAllocationScheme)
+
+ d xmlGetBufferAllocationScheme...
+ d pr extproc(
+ d 'xmlGetBufferAllocationScheme')
+ d like(xmlBufferAllocationScheme)
+
+ d xmlBufferCreate...
+ d pr extproc('xmlBufferCreate')
+ d like(xmlBufferPtr)
+
+ d xmlBufferCreateSize...
+ d pr extproc('xmlBufferCreateSize')
+ d like(xmlBufferPtr)
+ d size value like(xmlCsize_t)
+
+ d xmlBufferCreateStatic...
+ d pr extproc('xmlBufferCreateStatic')
+ d like(xmlBufferPtr)
+ d mem * value
+ d size value like(xmlCsize_t)
+
+ d xmlBufferResize...
+ d pr extproc('xmlBufferResize')
+ d like(xmlCint)
+ d buf value like(xmlBufferPtr)
+ d size value like(xmlCsize_t)
+
+ d xmlBufferFree pr extproc('xmlBufferFree')
+ d buf value like(xmlBufferPtr)
+
+ d xmlBufferDump pr extproc('xmlBufferDump')
+ d like(xmlCint)
+ d file * value FILE *
+ d buf value like(xmlBufferPtr)
+
+ d xmlBufferAdd pr extproc('xmlBufferAdd')
+ d like(xmlCint)
+ d buf value like(xmlBufferPtr)
+ d str * value options(*string) const xmlChar *
+ d len value like(xmlCint) str length
+
+ d xmlBufferAddHead...
+ d pr extproc('xmlBufferAddHead')
+ d like(xmlCint)
+ d buf value like(xmlBufferPtr)
+ d str * value options(*string) const xmlChar *
+ d len value like(xmlCint) str length
+
+ d xmlBufferCat pr extproc('xmlBufferCat')
+ d like(xmlCint)
+ d buf value like(xmlBufferPtr)
+ d str * value options(*string) const xmlChar *
+
+ d xmlBufferCCat pr extproc('xmlBufferCCat')
+ d like(xmlCint)
+ d buf value like(xmlBufferPtr)
+ d str * value options(*string) const char *
+
+ d xmlBufferShrink...
+ d pr extproc('xmlBufferShrink')
+ d like(xmlCint)
+ d buf value like(xmlBufferPtr)
+ d len value like(xmlCuint)
+
+ d xmlBufferGrow pr extproc('xmlBufferGrow')
+ d like(xmlCint)
+ d buf value like(xmlBufferPtr)
+ d len value like(xmlCuint)
+
+ d xmlBufferEmpty pr extproc('xmlBufferEmpty')
+ d buf value like(xmlBufferPtr)
+
+ d xmlBufferContent...
+ d pr * extproc('xmlBufferContent') const xmlChar *
+ d buf value like(xmlBufferPtr)
+
+ d xmlBufferDetach...
+ d pr * extproc('xmlBufferDetach') xmlChar *
+ d buf value like(xmlBufferPtr)
+
+ d xmlBufferSetAllocationScheme...
+ d pr extproc(
+ d 'xmlBufferSetAllocationScheme')
+ d buf value like(xmlBufferPtr)
+ d scheme value
+ d like(xmlBufferAllocationScheme)
+
+ d xmlBufferLength...
+ d pr extproc('xmlBufferLength')
+ d like(xmlCint)
+ d buf value like(xmlBufferPtr)
+
+ * Creating/freeing new structures.
+
+ d xmlCreateIntSubset...
+ d pr extproc('xmlCreateIntSubset')
+ d like(xmlDtdPtr)
+ d doc value like(xmlDocPtr)
+ d name * value options(*string) const xmlChar *
+ d ExternalID * value options(*string) const xmlChar *
+ d SystemlID * value options(*string) const xmlChar *
+
+ d xmlNewDtd pr extproc('xmlNewDtd')
+ d like(xmlDtdPtr)
+ d doc value like(xmlDocPtr)
+ d name * value options(*string) const xmlChar *
+ d ExternalID * value options(*string) const xmlChar *
+ d SystemlID * value options(*string) const xmlChar *
+
+ d xmlGetIntSubset...
+ d pr extproc('xmlGetIntSubset')
+ d like(xmlDtdPtr)
+ d doc value like(xmlDocPtr)
+
+ d xmlFreeDtd pr extproc('xmlFreeDtd')
+ d cur value like(xmlDtdPtr)
+
+ /if defined(LIBXML_LEGACY_ENABLED)
+ d xmlNewGlobalNs pr extproc('xmlNewGlobalNs')
+ d like(xmlNsPtr)
+ d doc value like(xmlDocPtr)
+ d href * value options(*string) const xmlChar *
+ d prefix * value options(*string) const xmlChar *
+ /endif LIBXML_LEGACY_ENABLD
+
+ d xmlNewNs pr extproc('xmlNewNs')
+ d like(xmlNsPtr)
+ d node value like(xmlNodePtr)
+ d href * value options(*string) const xmlChar *
+ d prefix * value options(*string) const xmlChar *
+
+ d xmlFreeNs pr extproc('xmlFreeNs')
+ d cur value like(xmlNsPtr)
+
+ d xmlFreeNsList pr extproc('xmlFreeNsList')
+ d cur value like(xmlNsPtr)
+
+ d xmlNewDoc pr extproc('xmlNewDoc')
+ d like(xmlDocPtr)
+ d version * value options(*string) const xmlChar *
+
+ d xmlFreeDoc pr extproc('xmlFreeDoc')
+ d cur value like(xmlDocPtr)
+
+ d xmlNewDocProp pr extproc('xmlNewDocProp')
+ d like(xmlAttrPtr)
+ d name * value options(*string) const xmlChar *
+ d value * value options(*string) const xmlChar *
+
+ /if defined(LIBXML_TREE_ENABLED)
+ /define XML_TESTVAL
+ /elseif defined(LIBXML_HTML_ENABLED)
+ /define XML_TESTVAL
+ /elseif defined(LIBXML_SCHEMAS_ENABLED)
+ /define XML_TESTVAL
+ /endif
+ /if defined(XML_TESTVAL)
+ d xmlNewProp pr extproc('xmlNewProp')
+ d like(xmlAttrPtr)
+ d node value like(xmlNodePtr)
+ d name * value options(*string) const xmlChar *
+ d value * value options(*string) const xmlChar *
+
+ /undefine XML_TESTVAL
+ /endif
+
+ d xmlNewNsProp pr extproc('xmlNewNsProp')
+ d like(xmlAttrPtr)
+ d node value like(xmlNodePtr)
+ d ns value like(xmlNsPtr)
+ d name * value options(*string) const xmlChar *
+ d value * value options(*string) const xmlChar *
+
+ d xmlNewNsPropEatName...
+ d pr extproc('xmlNewNsPropEatName')
+ d like(xmlAttrPtr)
+ d node value like(xmlNodePtr)
+ d ns value like(xmlNsPtr)
+ d name * value xmlChar *
+ d value * value options(*string) const xmlChar *
+
+ d xmlFreePropList...
+ d pr extproc('xmlFreePropList')
+ d cur value like(xmlAttrPtr)
+
+ d xmlFreeProp pr extproc('xmlFreeProp')
+ d cur value like(xmlAttrPtr)
+
+ d xmlCopyProp pr extproc('xmlCopyProp')
+ d like(xmlAttrPtr)
+ d target value like(xmlNodePtr)
+ d cur value like(xmlAttrPtr)
+
+ d xmlCopyPropList...
+ d pr extproc('xmlCopyPropList')
+ d like(xmlAttrPtr)
+ d target value like(xmlNodePtr)
+ d cur value like(xmlAttrPtr)
+
+ /if defined(LIBXML_TREE_ENABLED)
+ d xmlCopyDtd pr extproc('xmlCopyDtd')
+ d like(xmlDtdPtr)
+ d dtd value like(xmlDtdPtr)
+ /endif LIBXML_TREE_ENABLED
+
+ /if defined(LIBXML_TREE_ENABLED)
+ /define XML_TESTVAL
+ /elseif defined(LIBXML_SCHEMAS_ENABLED)
+ /define XML_TESTVAL
+ /endif
+ /if defined(XML_TESTVAL)
+ d xmlCopyDoc pr extproc('xmlCopyDoc')
+ d like(xmlDocPtr)
+ d doc value like(xmlDocPtr)
+ d recursive value like(xmlCint)
+
+ /undefine XML_TESTVAL
+ /endif
+
+ * Creating new nodes.
+
+ d xmlNewDocNode pr extproc('xmlNewDocNode')
+ d like(xmlNodePtr)
+ d doc value like(xmlDocPtr)
+ d ns value like(xmlNsPtr)
+ d name * value options(*string) const xmlChar *
+ d content * value options(*string) const xmlChar *
+
+ d xmlNewDocNodeEatName...
+ d pr extproc('xmlNewDocNodeEatName')
+ d like(xmlNodePtr)
+ d doc value like(xmlDocPtr)
+ d ns value like(xmlNsPtr)
+ d name * value xmlChar *
+ d content * value options(*string) const xmlChar *
+
+ d xmlNewNode pr extproc('xmlNewNode')
+ d like(xmlNodePtr)
+ d ns value like(xmlNsPtr)
+ d name * value options(*string) const xmlChar *
+
+ d xmlNewNodeEatName...
+ d pr extproc('xmlNewNodeEatName')
+ d like(xmlNodePtr)
+ d ns value like(xmlNsPtr)
+ d name * value xmlChar *
+
+ /if defined(LIBXML_TREE_ENABLED)
+ /define XML_TESTVAL
+ /elseif defined(LIBXML_SCHEMAS_ENABLED)
+ /define XML_TESTVAL
+ /endif
+ /if defined(XML_TESTVAL)
+ d xmlNewChild pr extproc('xmlNewChild')
+ d like(xmlNodePtr)
+ d parent value like(xmlNodePtr)
+ d ns value like(xmlNsPtr)
+ d name * value options(*string) const xmlChar *
+ d content * value options(*string) const xmlChar *
+
+ /undefine XML_TESTVAL
+ /endif
+
+ d xmlNewDocText pr extproc('xmlNewDocText')
+ d like(xmlNodePtr)
+ d doc value like(xmlDocPtr)
+ d content * value options(*string) const xmlChar *
+
+ d xmlNewText pr extproc('xmlNewText')
+ d like(xmlNodePtr)
+ d content * value options(*string) const xmlChar *
+
+ d xmlNewDocPI pr extproc('xmlNewDocPI')
+ d like(xmlNodePtr)
+ d doc value like(xmlDocPtr)
+ d name * value options(*string) const xmlChar *
+ d content * value options(*string) const xmlChar *
+
+ d xmlNewPI pr extproc('xmlNewPI')
+ d like(xmlNodePtr)
+ d name * value options(*string) const xmlChar *
+ d content * value options(*string) const xmlChar *
+
+ d xmlNewDocTextLen...
+ d pr extproc('xmlNewDocTextLen')
+ d like(xmlNodePtr)
+ d doc value like(xmlDocPtr)
+ d content * value options(*string) const xmlChar *
+ d len value like(xmlCint)
+
+ d xmlNewTextLen pr extproc('xmlNewTextLen')
+ d like(xmlNodePtr)
+ d content * value options(*string) const xmlChar *
+ d len value like(xmlCint)
+
+ d xmlNewDocComment...
+ d pr extproc('xmlNewDocComment')
+ d like(xmlNodePtr)
+ d doc value like(xmlDocPtr)
+ d content * value options(*string) const xmlChar *
+
+ d xmlNewComment pr extproc('xmlNewComment')
+ d like(xmlNodePtr)
+ d content * value options(*string) const xmlChar *
+
+ d xmlNewCDataBlock...
+ d pr extproc('xmlNewCDataBlock')
+ d like(xmlNodePtr)
+ d doc value like(xmlDocPtr)
+ d content * value options(*string) const xmlChar *
+ d len value like(xmlCint)
+
+ d xmlNewCharRef pr extproc('xmlNewCharRef')
+ d like(xmlNodePtr)
+ d doc value like(xmlDocPtr)
+ d name * value options(*string) const xmlChar *
+
+ d xmlNewReference...
+ d pr extproc('xmlNewReference')
+ d like(xmlNodePtr)
+ d doc value like(xmlDocPtr)
+ d name * value options(*string) const xmlChar *
+
+ d xmlCopyNode pr extproc('xmlCopyNode')
+ d like(xmlNodePtr)
+ d node value like(xmlNodePtr)
+ d recursive value like(xmlCint)
+
+ d xmlDocCopyNode pr extproc('xmlDocCopyNode')
+ d like(xmlNodePtr)
+ d node value like(xmlNodePtr)
+ d doc value like(xmlDocPtr)
+ d recursive value like(xmlCint)
+
+ d xmlDocCopyNodeList...
+ d pr extproc('xmlDocCopyNodeList')
+ d like(xmlNodePtr)
+ d doc value like(xmlDocPtr)
+ d node value like(xmlNodePtr)
+
+ d xmlCopyNodeList...
+ d pr extproc('xmlCopyNodeList')
+ d like(xmlNodePtr)
+ d node value like(xmlNodePtr)
+
+ /if defined(LIBXML_TREE_ENABLED)
+ d xmlNewTextChild...
+ d pr extproc('xmlNewTextChild')
+ d like(xmlNodePtr)
+ d parent value like(xmlNodePtr)
+ d ns value like(xmlNsPtr)
+ d name * value options(*string) const xmlChar *
+ d content * value options(*string) const xmlChar *
+
+ d xmlNewDocRawNode...
+ d pr extproc('xmlNewDocRawNode')
+ d like(xmlNodePtr)
+ d doc value like(xmlDocPtr)
+ d ns value like(xmlNsPtr)
+ d name * value options(*string) const xmlChar *
+ d content * value options(*string) const xmlChar *
+
+ d xmlNewDocFragment...
+ d pr extproc('xmlNewDocFragment')
+ d like(xmlNodePtr)
+ d doc value like(xmlDocPtr)
+ /endif LIBXML_TREE_ENABLED
+
+ * Navigating.
+
+ d xmlNewDocFragment...
+ d xmlGetLineNo pr extproc('xmlGetLineNo')
+ d like(xmlClong)
+ d node value like(xmlNodePtr)
+
+ /if defined(LIBXML_TREE_ENABLED)
+ /define XML_TESTVAL
+ /elseif defined(LIBXML_DEBUG_ENABLED)
+ /define XML_TESTVAL
+ /endif
+ /if defined(XML_TESTVAL)
+ d xmlGetNodePath pr * extproc('xmlGetNodePath') xmlChar *
+ d node value like(xmlNodePtr)
+
+ /undefine XML_TESTVAL
+ /endif
+
+ d xmlDocGetRootElement...
+ d pr extproc('xmlDocGetRootElement')
+ d like(xmlNodePtr)
+ d doc value like(xmlDocPtr)
+
+ d xmlGetLastChild...
+ d pr extproc('xmlGetLastChild')
+ d like(xmlNodePtr)
+ d parent value like(xmlNodePtr)
+
+ d xmlNodeIsText pr extproc('xmlNodeIsText')
+ d like(xmlCint)
+ d node value like(xmlNodePtr)
+
+ d xmlIsBlankNode pr extproc('xmlIsBlankNode')
+ d like(xmlCint)
+ d node value like(xmlNodePtr)
+
+ * Changing the structure.
+
+ /if defined(LIBXML_TREE_ENABLED)
+ /define XML_TESTVAL
+ /elseif defined(LIBXML_WRITER_ENABLED)
+ /define XML_TESTVAL
+ /endif
+ /if defined(XML_TESTVAL)
+ d xmlDocSetRootElement...
+ d pr extproc('xmlDocSetRootElement')
+ d like(xmlNodePtr)
+ d doc value like(xmlDocPtr)
+ d root value like(xmlNodePtr)
+
+ /undefine XML_TESTVAL
+ /endif
+
+ /if defined(LIBXML_TREE_ENABLED)
+ d xmlNodeSetName pr extproc('xmlNodeSetName')
+ d node value like(xmlNodePtr)
+ d name * value options(*string) const xmlChar *
+ /endif LIBXML_TREE_ENABLED
+
+ d xmlAddChild pr extproc('xmlAddChild')
+ d like(xmlNodePtr)
+ d parent value like(xmlNodePtr)
+ d cur value like(xmlNodePtr)
+
+ d xmlAddChildList...
+ d pr extproc('xmlAddChildList')
+ d like(xmlNodePtr)
+ d parent value like(xmlNodePtr)
+ d cur value like(xmlNodePtr)
+
+ /if defined(LIBXML_TREE_ENABLED)
+ /define XML_TESTVAL
+ /elseif defined(LIBXML_WRITER_ENABLED)
+ /define XML_TESTVAL
+ /endif
+ /if defined(XML_TESTVAL)
+ d xmlReplaceNode pr extproc('xmlReplaceNode')
+ d like(xmlNodePtr)
+ d old value like(xmlNodePtr)
+ d cur value like(xmlNodePtr)
+
+ /undefine XML_TESTVAL
+ /endif
+
+ /if defined(LIBXML_TREE_ENABLED)
+ /define XML_TESTVAL
+ /elseif defined(LIBXML_HTML_ENABLED)
+ /define XML_TESTVAL
+ /elseif defined(LIBXML_SCHEMAS_ENABLED)
+ /define XML_TESTVAL
+ /endif
+ /if defined(XML_TESTVAL)
+ d xmlAddPrevSibling...
+ d pr extproc('xmlAddPrevSibling')
+ d like(xmlNodePtr)
+ d cur value like(xmlNodePtr)
+ d elem value like(xmlNodePtr)
+
+ /undefine XML_TESTVAL
+ /endif
+
+ d xmlAddSibling pr extproc('xmlAddSibling')
+ d like(xmlNodePtr)
+ d cur value like(xmlNodePtr)
+ d elem value like(xmlNodePtr)
+
+ d xmlAddNextSibling...
+ d pr extproc('xmlAddNextSibling')
+ d like(xmlNodePtr)
+ d cur value like(xmlNodePtr)
+ d elem value like(xmlNodePtr)
+
+ d xmlUnlinkNode pr extproc('xmlUnlinkNode')
+ d cur value like(xmlNodePtr)
+
+ d xmlTextMerge pr extproc('xmlTextMerge')
+ d like(xmlNodePtr)
+ d first value like(xmlNodePtr)
+ d second value like(xmlNodePtr)
+
+ d xmlTextConcat pr extproc('xmlTextConcat')
+ d like(xmlCint)
+ d node value like(xmlNodePtr)
+ d content * value options(*string) const xmlChar *
+ d len value like(xmlCint)
+
+ d xmlFreeNodeList...
+ d pr extproc('xmlFreeNodeList')
+ d cur value like(xmlNodePtr)
+
+ d xmlFreeNode pr extproc('xmlFreeNode')
+ d cur value like(xmlNodePtr)
+
+ d xmlSetTreeDoc pr extproc('xmlSetTreeDoc')
+ d tree value like(xmlNodePtr)
+ d doc value like(xmlDocPtr)
+
+ d xmlSetListDoc pr extproc('xmlSetListDoc')
+ d list value like(xmlNodePtr)
+ d doc value like(xmlDocPtr)
+
+ * Namespaces.
+
+ d xmlSearchNs pr extproc('xmlSearchNs')
+ d like(xmlNsPtr)
+ d doc value like(xmlDocPtr)
+ d node value like(xmlNodePtr)
+ d nameSpace * value options(*string) const xmlChar *
+
+ d xmlSearchNsByHref...
+ d pr extproc('xmlSearchNsByHref')
+ d like(xmlNsPtr)
+ d doc value like(xmlDocPtr)
+ d node value like(xmlNodePtr)
+ d href * value options(*string) const xmlChar *
+
+ /if defined(LIBXML_TREE_ENABLED)
+ /define XML_TESTVAL
+ /elseif defined(LIBXML_XPATH_ENABLED)
+ /define XML_TESTVAL
+ /elseif defined(LIBXML_SCHEMAS_ENABLED)
+ /define XML_TESTVAL
+ /endif
+ /if defined(XML_TESTVAL)
+ d xmlGetNsList pr * extproc('xmlGetNsList') xmlNsPtr *
+ d doc value like(xmlDocPtr)
+ d node value like(xmlNodePtr)
+
+ /undefine XML_TESTVAL
+ /endif
+
+ d xmlSetNs pr extproc('xmlSetNs')
+ d node value like(xmlNodePtr)
+ d ns value like(xmlNsPtr)
+
+ d xmlCopyNamespace...
+ d pr extproc('xmlCopyNamespace')
+ d like(xmlNsPtr)
+ d cur value like(xmlNsPtr)
+
+ d xmlCopyNamespaceList...
+ d pr extproc('xmlCopyNamespaceList')
+ d like(xmlNsPtr)
+ d cur value like(xmlNsPtr)
+
+ * Changing the content.
+
+ /if defined(LIBXML_TREE_ENABLED)
+ /define XML_TESTVAL
+ /elseif defined(LIBXML_XINCLUDE_ENABLED)
+ /define XML_TESTVAL
+ /elseif defined(LIBXML_SCHEMAS_ENABLED)
+ /define XML_TESTVAL
+ /elseif defined(LIBXML_HTML_ENABLED)
+ /define XML_TESTVAL
+ /endif
+ /if defined(XML_TESTVAL)
+ d xmlSetProp pr extproc('xmlSetProp')
+ d like(xmlAttrPtr)
+ d node value like(xmlNodePtr)
+ d name * value options(*string) const xmlChar *
+ d value * value options(*string) const xmlChar *
+
+ d xmlSetNsProp pr extproc('xmlSetNsProp')
+ d like(xmlAttrPtr)
+ d node value like(xmlNodePtr)
+ d ns value like(xmlNsPtr)
+ d name * value options(*string) const xmlChar *
+ d value * value options(*string) const xmlChar *
+
+ /undefine XML_TESTVAL
+ /endif
+
+ d xmlGetNoNsProp pr * extproc('xmlGetNoNsProp') xmlChar *
+ d node value like(xmlNodePtr)
+ d name * value options(*string) const xmlChar *
+
+ d xmlGetProp pr * extproc('xmlGetProp') xmlChar *
+ d node value like(xmlNodePtr)
+ d name * value options(*string) const xmlChar *
+
+ d xmlHasProp pr extproc('xmlHasProp')
+ d like(xmlAttrPtr)
+ d node value like(xmlNodePtr)
+ d name * value options(*string) const xmlChar *
+
+ d xmlHasNsProp pr extproc('xmlHasNsProp')
+ d like(xmlAttrPtr)
+ d node value like(xmlNodePtr)
+ d name * value options(*string) const xmlChar *
+ d nameSpace * value options(*string) const xmlChar *
+
+ d xmlGetNsProp pr * extproc('xmlGetNsProp') xmlChar *
+ d node value like(xmlNodePtr)
+ d name * value options(*string) const xmlChar *
+ d nameSpace * value options(*string) const xmlChar *
+
+ d xmlStringGetNodeList...
+ d pr extproc('xmlStringGetNodeList')
+ d like(xmlNodePtr)
+ d doc value like(xmlDocPtr)
+ d value * value options(*string) const xmlChar *
+
+ d xmlStringLenGetNodeList...
+ d pr extproc('xmlStringLenGetNodeList')
+ d like(xmlNodePtr)
+ d doc value like(xmlDocPtr)
+ d value * value options(*string) const xmlChar *
+ d len value like(xmlCint)
+
+ d xmlNodeListGetString...
+ d pr * extproc('xmlNodeListGetString') xmlChar *
+ d doc value like(xmlDocPtr)
+ d list value like(xmlNodePtr)
+ d inLine value like(xmlCint)
+
+ /if defined(LIBXML_TREE_ENABLED)
+ d xmlNodeListGetRawString...
+ d pr * extproc('xmlNodeListGetRawString') xmlChar *
+ d doc value like(xmlDocPtr)
+ d list value like(xmlNodePtr)
+ d inLine value like(xmlCint)
+ /endif LIBXML_TREE_ENABLED
+
+ d xmlNodeSetContent...
+ d pr extproc('xmlNodeSetContent')
+ d cur value like(xmlNodePtr)
+ d content * value options(*string) const xmlChar *
+
+ /if defined(LIBXML_TREE_ENABLED)
+ d xmlNodeSetContentLen...
+ d pr extproc('xmlNodeSetContentLen')
+ d cur value like(xmlNodePtr)
+ d content * value options(*string) const xmlChar *
+ d len value like(xmlCint)
+ /endif LIBXML_TREE_ENABLED
+
+ d xmlNodeAddContent...
+ d pr extproc('xmlNodeAddContent')
+ d cur value like(xmlNodePtr)
+ d content * value options(*string) const xmlChar *
+
+ d xmlNodeAddContentLen...
+ d pr extproc('xmlNodeAddContentLen')
+ d cur value like(xmlNodePtr)
+ d content * value options(*string) const xmlChar *
+ d len value like(xmlCint)
+
+ d xmlNodeGetContent...
+ d pr * extproc('xmlNodeGetContent') xmlChar *
+ d cur value like(xmlNodePtr)
+
+ d xmlNodeBufGetContent...
+ d pr extproc('xmlNodeBufGetContent')
+ d like(xmlCint)
+ d buffer value like(xmlBufferPtr)
+ d cur value like(xmlNodePtr)
+
+ d xmlBufGetNodeContent...
+ d pr extproc('xmlBufGetNodeContent')
+ d like(xmlCint)
+ d buf value like(xmlBufPtr)
+ d cur value like(xmlNodePtr)
+
+ d xmlNodeGetLang pr * extproc('xmlNodeGetLang') xmlChar *
+ d cur value like(xmlNodePtr)
+
+ d xmlNodeGetSpacePreserve...
+ d pr extproc('xmlNodeGetSpacePreserve')
+ d like(xmlCint)
+ d cur value like(xmlNodePtr)
+
+ /if defined(LIBXML_TREE_ENABLED)
+ d xmlNodeSetLang pr extproc('xmlNodeSetLang')
+ d cur value like(xmlNodePtr)
+ d lang * value options(*string) const xmlChar *
+
+ d xmlNodeSetSpacePreserve...
+ d pr extproc('xmlNodeSetSpacePreserve')
+ d cur value like(xmlNodePtr)
+ d val value like(xmlCint)
+ /endif LIBXML_TREE_ENABLED
+
+ d xmlNodeGetBase pr * extproc('xmlNodeGetBase') xmlChar *
+ d doc value like(xmlDocPtr)
+ d cur value like(xmlNodePtr)
+
+ /if defined(LIBXML_TREE_ENABLED)
+ /define XML_TESTVAL
+ /elseif defined(LIBXML_XINCLUDE_ENABLED)
+ /define XML_TESTVAL
+ /endif
+ /if defined(XML_TESTVAL)
+ d xmlNodeSetBase pr extproc('xmlNodeSetBase')
+ d node value like(xmlNodePtr)
+ d uri * value options(*string) const xmlChar *
+
+ /undefine XML_TESTVAL
+ /endif
+
+ * Removing content.
+
+ d xmlRemoveProp pr extproc('xmlRemoveProp')
+ d like(xmlCint)
+ d cur value like(xmlAttrPtr)
+
+ /if defined(LIBXML_TREE_ENABLED)
+ /define XML_TESTVAL
+ /elseif defined(LIBXML_SCHEMAS_ENABLED)
+ /define XML_TESTVAL
+ /endif
+ /if defined(XML_TESTVAL)
+ d xmlUnsetNsProp pr extproc('xmlUnsetNsProp')
+ d like(xmlCint)
+ d node value like(xmlNodePtr)
+ d ns value like(xmlNsPtr)
+ d name * value options(*string) const xmlChar *
+
+ d xmlUnsetProp pr extproc('xmlUnsetProp')
+ d like(xmlCint)
+ d node value like(xmlNodePtr)
+ d name * value options(*string) const xmlChar *
+
+ /undefine XML_TESTVAL
+ /endif
+
+ * Internal, don't use.
+
+ d xmlBufferWriteCharacter... Warning: renamed
+ d pr extproc('xmlBufferWriteCHAR')
+ d buf value like(xmlBufferPtr)
+ d string * value options(*string) const xmlChar *
+
+ d xmlBufferWriteChar...
+ d pr extproc('xmlBufferWriteChar')
+ d buf value like(xmlBufferPtr)
+ d string * value options(*string) const xmlChar *
+
+ d xmlBufferWriteQuotedString...
+ d pr extproc('xmlBufferWriteQuotedString')
+ d buf value like(xmlBufferPtr)
+ d string * value options(*string) const xmlChar *
+
+ /if defined(LIBXML_OUTPUT_ENABLED)
+ d xmlAttrSerializeTxtContent...
+ d pr extproc('xmlAttrSerializeTxtContent')
+ d buf value like(xmlBufferPtr)
+ d attr value like(xmlAttrPtr)
+ d string * value options(*string) const xmlChar *
+ /endif LIBXML_OUTPUT_ENABLD
+
+ /if defined(LIBXML_TREE_ENABLED)
+
+ * Namespace handling.
+
+ d xmlReconciliateNs...
+ d pr extproc('xmlReconciliateNs')
+ d like(xmlCint)
+ d doc value like(xmlDocPtr)
+ d tree value like(xmlNodePtr)
+ /endif
+
+ /if defined(LIBXML_OUTPUT_ENABLED)
+
+ * Saving.
+
+ d xmlDocDumpFormatMemory...
+ d pr extproc('xmlDocDumpFormatMemory')
+ d cur value like(xmlDocPtr)
+ d mem * xmlChar * (*)
+ d size like(xmlCint)
+ d format value like(xmlCint)
+
+ d xmlDocDumpMemory...
+ d pr extproc('xmlDocDumpMemory')
+ d cur value like(xmlDocPtr)
+ d mem * xmlChar * (*)
+ d size like(xmlCint)
+
+ d xmlDocDumpMemoryEnc...
+ d pr extproc('xmlDocDumpMemoryEnc')
+ d out_doc value like(xmlDocPtr)
+ d doc_txt_ptr * xmlChar * (*)
+ d doc_txt_len like(xmlCint)
+ d txt_encoding * value options(*string) const char *
+
+ d xmlDocDumpFormatMemoryEnc...
+ d pr extproc('xmlDocDumpFormatMemoryEnc')
+ d out_doc value like(xmlDocPtr)
+ d doc_txt_ptr * xmlChar * (*)
+ d doc_txt_len like(xmlCint)
+ d txt_encoding * value options(*string) const char *
+ d format value like(xmlCint)
+
+ d xmlDocFormatDump...
+ d pr extproc('xmlDocFormatDump')
+ d like(xmlCint)
+ d f * value FILE *
+ d cur value like(xmlDocPtr)
+ d format value like(xmlCint)
+
+ d xmlDocDump pr extproc('xmlDocDump')
+ d like(xmlCint)
+ d f * value FILE *
+ d cur value like(xmlDocPtr)
+
+ d xmlElemDump pr extproc('xmlElemDump')
+ d f * value FILE *
+ d doc value like(xmlDocPtr)
+ d cur value like(xmlNodePtr)
+
+ d xmlSaveFile pr extproc('xmlSaveFile')
+ d like(xmlCint)
+ d filename * value options(*string) const char *
+ d cur value like(xmlDocPtr)
+
+ d xmlSaveFormatFile...
+ d pr extproc('xmlSaveFormatFile')
+ d like(xmlCint)
+ d filename * value options(*string) const char *
+ d cur value like(xmlDocPtr)
+ d format value like(xmlCint)
+
+ d xmlBufNodeDump pr extproc('xmlBufNodeDump')
+ d like(xmlCsize_t)
+ d buf value like(xmlBufPtr)
+ d doc value like(xmlDocPtr)
+ d cur value like(xmlNodePtr)
+ d level value like(xmlCint)
+ d format value like(xmlCint)
+
+ d xmlNodeDump pr extproc('xmlNodeDump')
+ d like(xmlCint)
+ d buf value like(xmlBufferPtr)
+ d doc value like(xmlDocPtr)
+ d cur value like(xmlNodePtr)
+ d level value like(xmlCint)
+ d format value like(xmlCint)
+
+ d xmlSaveFileTo pr extproc('xmlSaveFileTo')
+ d like(xmlCint)
+ d buf value like(xmlOutputBufferPtr)
+ d cur value like(xmlDocPtr)
+ d encoding * value options(*string) const char *
+
+ d xmlSaveFormatFileTo...
+ d pr extproc('xmlSaveFormatFileTo')
+ d like(xmlCint)
+ d buf value like(xmlOutputBufferPtr)
+ d cur value like(xmlDocPtr)
+ d encoding * value options(*string) const char *
+ d format value like(xmlCint)
+
+ d xmlNodeDumpOutput...
+ d pr extproc('xmlNodeDumpOutput')
+ d buf value like(xmlOutputBufferPtr)
+ d doc value like(xmlDocPtr)
+ d cur value like(xmlNodePtr)
+ d level value like(xmlCint)
+ d format value like(xmlCint)
+ d encoding * value options(*string) const char *
+
+ d xmlSaveFormatFileEnc...
+ d pr extproc('xmlSaveFormatFileEnc')
+ d like(xmlCint)
+ d filename * value options(*string) const char *
+ d cur value like(xmlDocPtr)
+ d encoding * value options(*string) const char *
+ d format value like(xmlCint)
+
+ d xmlSaveFileEnc pr extproc('xmlSaveFileEnc')
+ d like(xmlCint)
+ d filename * value options(*string) const char *
+ d cur value like(xmlDocPtr)
+ d encoding * value options(*string) const char *
+ /endif LIBXML_OUTPUT_ENABLD
+
+ * XHTML
+
+ d xmlIsXHTML pr extproc('xmlIsXHTML')
+ d like(xmlCint)
+ d systemID * value options(*string) const xmlChar *
+ d publicID * value options(*string) const xmlChar *
+
+ * Compression.
+
+ d xmlGetDocCompressMode...
+ d pr extproc('xmlGetDocCompressMode')
+ d like(xmlCint)
+ d doc value like(xmlDocPtr)
+
+ d xmlSetDocCompressMode...
+ d pr extproc('xmlSetDocCompressMode')
+ d doc value like(xmlDocPtr)
+ d mode value like(xmlCint)
+
+ d xmlGetCompressMode...
+ d pr extproc('xmlGetCompressMode')
+ d like(xmlCint)
+
+ d xmlSetCompressMode...
+ d pr extproc('xmlSetCompressMode')
+ d mode value like(xmlCint)
+
+ * DOM-wrapper helper functions.
+
+ d xmlDOMWrapNewCtxt...
+ d pr extproc('xmlDOMWrapNewCtxt')
+ d like(xmlDOMWrapCtxtPtr)
+
+ d xmlDOMWrapFreeCtxt...
+ d pr extproc('xmlDOMWrapFreeCtxt')
+ d ctxt value like(xmlDOMWrapCtxtPtr)
+
+ d xmlDOMWrapReconcileNamespaces...
+ d pr extproc(
+ d 'xmlDOMWrapReconcileNamespaces')
+ d like(xmlCint)
+ d ctxt value like(xmlDOMWrapCtxtPtr)
+ d elem value like(xmlNodePtr)
+ d options value like(xmlCint)
+
+ d xmlDOMWrapAdoptNode...
+ d pr extproc('xmlDOMWrapAdoptNode')
+ d like(xmlCint)
+ d ctxt value like(xmlDOMWrapCtxtPtr)
+ d sourceDoc value like(xmlDocPtr)
+ d node value like(xmlNodePtr)
+ d destDoc value like(xmlDocPtr)
+ d destParent value like(xmlNodePtr)
+ d options value like(xmlCint)
+
+ d xmlDOMWrapRemoveNode...
+ d pr extproc('xmlDOMWrapRemoveNode')
+ d like(xmlCint)
+ d ctxt value like(xmlDOMWrapCtxtPtr)
+ d doc value like(xmlDocPtr)
+ d node value like(xmlNodePtr)
+ d options value like(xmlCint)
+
+ d xmlDOMWrapCloneNode...
+ d pr extproc('xmlDOMWrapCloneNode')
+ d like(xmlCint)
+ d ctxt value like(xmlDOMWrapCtxtPtr)
+ d sourceDoc value like(xmlDocPtr)
+ d node value like(xmlNodePtr)
+ d clonedNode like(xmlNodePtr)
+ d destDoc value like(xmlDocPtr)
+ d destParent value like(xmlNodePtr)
+ d options value like(xmlCint)
+
+ /if defined(LIBXML_TREE_ENABLED)
+
+ * 5 interfaces from DOM ElementTraversal, but different in entities
+ * traversal.
+
+ d xmlChildElementCount...
+ d pr extproc('xmlChildElementCount')
+ d like(xmlClong)
+ d parent value like(xmlNodePtr)
+
+ d xmlNextElementSibling...
+ d pr extproc('xmlNextElementSibling')
+ d like(xmlNodePtr)
+ d node value like(xmlNodePtr)
+
+ d xmlFirstElementChild...
+ d pr extproc('xmlFirstElementChild')
+ d like(xmlNodePtr)
+ d parent value like(xmlNodePtr)
+
+ d xmlLastElementChild...
+ d pr extproc('xmlLastElementChild')
+ d like(xmlNodePtr)
+ d parent value like(xmlNodePtr)
+
+ d xmlPreviousElementSibling...
+ d pr extproc('xmlPreviousElementSibling')
+ d like(xmlNodePtr)
+ d node value like(xmlNodePtr)
+ /endif
+
+ /if not defined(XML_PARSER_H__)
+ /include "libxmlrpg/xmlmemory"
+ /endif
+
+ /endif XML_TREE_H__
diff --git a/libxml2/os400/libxmlrpg/uri.rpgle b/libxml2/os400/libxmlrpg/uri.rpgle
new file mode 100644
index 0000000..de03392
--- /dev/null
+++ b/libxml2/os400/libxmlrpg/uri.rpgle
@@ -0,0 +1,103 @@
+ * Summary: library of generic URI related routines
+ * Description: library of generic URI related routines
+ * Implements RFC 2396
+ *
+ * Copy: See Copyright for the status of this software.
+ *
+ * Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A.
+
+ /if not defined(XML_URI_H__)
+ /define XML_URI_H__
+
+ /include "libxmlrpg/xmlversion"
+ /include "libxmlrpg/xmlTypesC"
+ /include "libxmlrpg/tree"
+
+ * xmlURI:
+ *
+ * A parsed URI reference. This is a struct containing the various fields
+ * as described in RFC 2396 but separated for further processing.
+ *
+ * Note: query is a deprecated field which is incorrectly unescaped.
+ * query_raw takes precedence over query if the former is set.
+ * See: http://mail.gnome.org/archives/xml/2007-April/thread.html#00127
+
+ d xmlURIPtr s * based(######typedef######)
+
+ d xmlURI ds based(xmlURIPtr)
+ d align qualified
+ d scheme * char *
+ d opaque * char *
+ d authority * char *
+ d server * char *
+ d user * char *
+ d port like(xmlCint)
+ d path * char *
+ d query * char *
+ d fragment * char *
+ d cleanup like(xmlCint)
+ d query_raw * char *
+
+ d xmlCreateURI pr extproc('xmlCreateURI')
+ d like(xmlURIPtr)
+
+ d xmlBuildURI pr * extproc('xmlBuildURI') xmlChar *
+ d URI * value options(*string) const xmlChar *
+ d base * value options(*string) const xmlChar *
+
+ d xmlBuildRelativeURI...
+ d pr * extproc('xmlBuildRelativeURI') xmlChar *
+ d URI * value options(*string) const xmlChar *
+ d base * value options(*string) const xmlChar *
+
+ d xmlParseURI pr extproc('xmlParseURI')
+ d like(xmlURIPtr)
+ d str * value options(*string) const char *
+
+ d xmlParseURIRaw pr extproc('xmlParseURIRaw')
+ d like(xmlURIPtr)
+ d str * value options(*string) const char *
+ d raw value like(xmlCint)
+
+ d xmlParseURIReference...
+ d pr extproc('xmlParseURIReference')
+ d like(xmlCint)
+ d uri value like(xmlURIPtr)
+ d str * value options(*string) const char *
+
+ d xmlSaveUri pr * extproc('xmlSaveUri') xmlChar *
+ d uri value like(xmlURIPtr)
+
+ d xmlPrintURI pr extproc('xmlPrintURI')
+ d stream * value FILE *
+ d uri value like(xmlURIPtr)
+
+ d xmlURIEscapeStr...
+ d pr * extproc('xmlURIEscapeStr') xmlChar *
+ d str * value options(*string) const xmlChar *
+ d list * value options(*string) const xmlChar *
+
+ d xmlURIUnescapeString...
+ d pr * extproc('xmlURIUnescapeString') char *
+ d str * value options(*string) const char *
+ d len value like(xmlCint)
+ d target * value options(*string) char *
+
+ d xmlNormalizeURIPath...
+ d pr extproc('xmlNormalizeURIPath')
+ d like(xmlCint)
+ d path * value options(*string) char *
+
+ d xmlURIEscape pr * extproc('xmlURIEscape') xmlChar *
+ d str * value options(*string) const xmlChar *
+
+ d xmlFreeURI pr extproc('xmlFreeURI')
+ d uri value like(xmlURIPtr)
+
+ d xmlCanonicPath pr * extproc('xmlCanonicPath') xmlChar *
+ d path * value options(*string) const xmlChar *
+
+ d xmlPathToURI pr * extproc('xmlPathToURI') xmlChar *
+ d path * value options(*string) const xmlChar *
+
+ /endif XML_URI_H__
diff --git a/libxml2/os400/libxmlrpg/valid.rpgle b/libxml2/os400/libxmlrpg/valid.rpgle
new file mode 100644
index 0000000..32ebbd3
--- /dev/null
+++ b/libxml2/os400/libxmlrpg/valid.rpgle
@@ -0,0 +1,605 @@
+ * Summary: The DTD validation
+ * Description: API for the DTD handling and the validity checking
+ *
+ * Copy: See Copyright for the status of this software.
+ *
+ * Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A.
+
+ /if not defined(XML_VALID_H__)
+ /define XML_VALID_H__
+
+ /include "libxmlrpg/xmlversion"
+ /include "libxmlrpg/xmlTypesC"
+ /include "libxmlrpg/xmlerror"
+ /include "libxmlrpg/tree"
+ /include "libxmlrpg/list"
+ /include "libxmlrpg/xmlautomata"
+ /include "libxmlrpg/xmlregexp"
+
+ * Validation state added for non-determinist content model.
+
+ d xmlValidStatePtr...
+ d s * based(######typedef######)
+
+ * xmlValidityErrorFunc:
+ * @ctx: usually an xmlValidCtxtPtr to a validity error context,
+ * but comes from ctxt->userData (which normally contains such
+ * a pointer); ctxt->userData can be changed by the user.
+ * @msg: the string to format *printf like vararg
+ * @...: remaining arguments to the format
+ *
+ * Callback called when a validity error is found. This is a message
+ * oriented function similar to an *printf function.
+
+ d xmlValidityErrorFunc...
+ d s * based(######typedef######)
+ d procptr
+
+ * xmlValidityWarningFunc:
+ * @ctx: usually an xmlValidCtxtPtr to a validity error context,
+ * but comes from ctxt->userData (which normally contains such
+ * a pointer); ctxt->userData can be changed by the user.
+ * @msg: the string to format *printf like vararg
+ * @...: remaining arguments to the format
+ *
+ * Callback called when a validity warning is found. This is a message
+ * oriented function similar to an *printf function.
+
+ d xmlValidityWarningFunc...
+ d s * based(######typedef######)
+ d procptr
+
+ * xmlValidCtxt:
+ * An xmlValidCtxt is used for error reporting when validating.
+
+ d xmlValidCtxtPtr...
+ d s * based(######typedef######)
+
+ d xmlValidCtxt ds based(xmlValidCtxtPtr)
+ d align qualified
+ d userdata * void *
+ d error like(xmlValidityErrorFunc) Error callback
+ d warning like(xmlValidityWarningFunc) Warning callback
+ *
+ * Node analysis stack used when validating within entities
+ *
+ d node like(xmlNodePtr) Current parsed Node
+ d nodeNr like(xmlCint) Parsing stack depth
+ d nodeMax like(xmlCint) Max stack depth
+ d nodeTab * xmlNodePtr *
+ *
+ d finishDtd like(xmlCuint)
+ d doc like(xmlDocPtr) The document
+ d valid like(xmlCint) Temp check result
+ *
+ * state state used for non-determinist content validation
+ *
+ d vstate * xmlValidState *
+ d vstateNr like(xmlCint) Validat. stack depth
+ d vstateMax like(xmlCint) Max stack depth
+ d vstateTab * xmlValidState *
+ *
+ /if defined(LIBXML_REGEXP_ENABLED)
+ d am like(xmlAutomataPtr) The automata
+ d state like(xmlAutomataStatePtr) Automata build state
+ /else
+ d am *
+ d state *
+ /endif
+
+ * ALL notation declarations are stored in a table.
+ * There is one table per DTD.
+
+ d xmlNotationTablePtr...
+ d s * based(######typedef######)
+
+ * ALL element declarations are stored in a table.
+ * There is one table per DTD.
+
+ d xmlElementTablePtr...
+ d s * based(######typedef######)
+
+ * ALL attribute declarations are stored in a table.
+ * There is one table per DTD.
+
+ d xmlAttributeTablePtr...
+ d s * based(######typedef######)
+
+ * ALL IDs attributes are stored in a table.
+ * There is one table per document.
+
+ d xmlIDTablePtr s * based(######typedef######)
+
+ * ALL Refs attributes are stored in a table.
+ * There is one table per document.
+
+ d xmlRefTablePtr s * based(######typedef######)
+
+ * Notation
+
+ d xmlAddNotationDecl...
+ d pr extproc('xmlAddNotationDecl')
+ d like(xmlNotationPtr)
+ d ctxt value like(xmlValidCtxtPtr)
+ d dtd value like(xmlDtdPtr)
+ d name * value options(*string) const xmlChar *
+ d PublicID * value options(*string) const xmlChar *
+ d SystemID * value options(*string) const xmlChar *
+
+ /if defined(LIBXML_TREE_ENABLED)
+ d xmlCopyNotationTable...
+ d pr extproc('xmlCopyNotationTable')
+ d like(xmlNotationPtr)
+ d table value like(xmlNotationTablePtr)
+ /endif LIBXML_TREE_ENABLED
+
+ d xmlFreeNotationTable...
+ d pr extproc('xmlFreeNotationTable')
+ d table value like(xmlNotationTablePtr)
+
+ /if defined(LIBXML_OUTPUT_ENABLED)
+ d xmlDumpNotationDecl...
+ d pr extproc('xmlDumpNotationDecl')
+ d buf value like(xmlBufferPtr)
+ d nota value like(xmlNotationPtr)
+
+ d xmlDumpNotationTable...
+ d pr extproc('xmlDumpNotationTable')
+ d buf value like(xmlBufferPtr)
+ d table value like(xmlNotationTablePtr)
+ /endif LIBXML_OUTPUT_ENABLD
+
+ * Element Content
+ * the non Doc version are being deprecated
+
+ d xmlNewElementContent...
+ d pr extproc('xmlNewElementContent')
+ d like(xmlElementContentPtr)
+ d name * value const xmlChar *
+ d type value like(xmlElementContentType)
+
+ d xmlCopyElementContent...
+ d pr extproc('xmlCopyElementContent')
+ d like(xmlElementContentPtr)
+ d content value like(xmlElementContentPtr)
+
+ d xmlFreeElementContent...
+ d pr extproc('xmlFreeElementContent')
+ d cur value like(xmlElementContentPtr)
+
+ * the new versions with doc argument
+
+ d xmlNewDocElementContent...
+ d pr extproc('xmlNewDocElementContent')
+ d like(xmlElementContentPtr)
+ d doc value like(xmlDocPtr)
+ d name * value const xmlChar *
+ d type value like(xmlElementContentType)
+
+ d xmlCopyDocElementContent...
+ d pr extproc('xmlCopyDocElementContent')
+ d like(xmlElementContentPtr)
+ d doc value like(xmlDocPtr)
+ d content value like(xmlElementContentPtr)
+
+ d xmlFreeDocElementContent...
+ d pr extproc('xmlFreeDocElementContent')
+ d doc value like(xmlDocPtr)
+ d cur value like(xmlElementContentPtr)
+
+ d xmlSnprintfElementContent...
+ d pr extproc('xmlSnprintfElementContent')
+ d buf 65535 options(*varsize)
+ d size value like(xmlCint)
+ d content value like(xmlElementContentPtr)
+ d englob value like(xmlCint)
+
+ /if defined(LIBXML_OUTPUT_ENABLED)
+ * DEPRECATED
+ d xmlSprintfElementContent...
+ d pr extproc('xmlSprintfElementContent')
+ d buf 65535 options(*varsize)
+ d content value like(xmlElementContentPtr)
+ d englob value like(xmlCint)
+ /endif LIBXML_OUTPUT_ENABLD
+
+ * DEPRECATED
+
+ * Element
+
+ d xmlAddElementDecl...
+ d pr extproc('xmlAddElementDecl')
+ d like(xmlElementPtr)
+ d ctxt value like(xmlValidCtxtPtr)
+ d dtd value like(xmlDtdPtr)
+ d name * value options(*string) const xmlChar *
+ d type value like(xmlElementTypeVal)
+ d content value like(xmlElementContentPtr)
+
+ /if defined(LIBXML_TREE_ENABLED)
+ d xmlCopyElementTable...
+ d pr extproc('xmlCopyElementTable')
+ d like(xmlElementTablePtr)
+ d table value like(xmlElementTablePtr)
+ /endif LIBXML_TREE_ENABLED
+
+ d xmlFreeElementTable...
+ d pr extproc('xmlFreeElementTable')
+ d table value like(xmlElementTablePtr)
+
+ /if defined(LIBXML_OUTPUT_ENABLED)
+ d xmlDumpElementTable...
+ d pr extproc('xmlDumpElementTable')
+ d buf value like(xmlBufferPtr)
+ d table value like(xmlElementTablePtr)
+
+ d xmlDumpElementDecl...
+ d pr extproc('xmlDumpElementDecl')
+ d buf value like(xmlBufferPtr)
+ d elem value like(xmlElementPtr)
+ /endif LIBXML_OUTPUT_ENABLD
+
+ * Enumeration
+
+ d xmlCreateEnumeration...
+ d pr extproc('xmlCreateEnumeration')
+ d like(xmlEnumerationPtr)
+ d name * value options(*string) const xmlChar *
+
+ d xmlFreeEnumeration...
+ d pr extproc('xmlFreeEnumeration')
+ d cur value like(xmlEnumerationPtr)
+
+ /if defined(LIBXML_TREE_ENABLED)
+ d xmlCopyEnumeration...
+ d pr extproc('xmlCopyEnumeration')
+ d like(xmlEnumerationPtr)
+ d cur value like(xmlEnumerationPtr)
+ /endif LIBXML_TREE_ENABLED
+
+ * Attribute
+
+ d xmlAddAttributeDecl...
+ d pr extproc('xmlAddAttributeDecl')
+ d like(xmlAttributePtr)
+ d ctxt value like(xmlValidCtxtPtr)
+ d dtd value like(xmlDtdPtr)
+ d elem * value options(*string) const xmlChar *
+ d name * value options(*string) const xmlChar *
+ d ns * value options(*string) const xmlChar *
+ d type value like(xmlAttributeType)
+ d def value like(xmlAttributeDefault)
+ d defaultValue * value options(*string) const xmlChar *
+ d tree value like(xmlEnumerationPtr)
+
+ /if defined(LIBXML_TREE_ENABLED)
+ d xmlCopyAttributeTable...
+ d pr extproc('xmlCopyAttributeTable')
+ d like(xmlAttributeTablePtr)
+ d table value like(xmlAttributeTablePtr)
+ /endif LIBXML_TREE_ENABLED
+
+ d xmlFreeAttributeTable...
+ d pr extproc('xmlFreeAttributeTable')
+ d table value like(xmlAttributeTablePtr)
+
+ /if defined(LIBXML_OUTPUT_ENABLED)
+ d xmlDumpAttributeTable...
+ d pr extproc('xmlDumpAttributeTable')
+ d buf value like(xmlBufferPtr)
+ d table value like(xmlAttributeTablePtr)
+
+ d xmlDumpAttributeDecl...
+ d pr extproc('xmlDumpAttributeDecl')
+ d buf value like(xmlBufferPtr)
+ d attr value like(xmlAttributePtr)
+ /endif LIBXML_OUTPUT_ENABLD
+
+ * IDs
+
+ d xmlAddID pr extproc('xmlAddID')
+ d like(xmlIDPtr)
+ d ctxt value like(xmlValidCtxtPtr)
+ d doc value like(xmlDocPtr)
+ d value * value options(*string) const xmlChar *
+ d attr value like(xmlAttrPtr)
+
+ d xmlFreeIdTable pr extproc('xmlFreeIDTable')
+ d table value like(xmlIDTablePtr)
+
+ d xmlGetID pr extproc('xmlGetID')
+ d like(xmlAttrPtr)
+ d doc value like(xmlDocPtr)
+ d ID * value options(*string) const xmlChar *
+
+ d xmlIsID pr extproc('xmlIsID')
+ d like(xmlCint)
+ d doc value like(xmlDocPtr)
+ d node value like(xmlNodePtr)
+ d attr value like(xmlAttrPtr)
+
+ d xmlRemoveID pr extproc('xmlRemoveID')
+ d like(xmlCint)
+ d doc value like(xmlDocPtr)
+ d attr value like(xmlAttrPtr)
+
+ * IDREFs
+
+ d xmlAddRef pr extproc('xmlAddRef')
+ d like(xmlRefPtr)
+ d ctxt value like(xmlValidCtxtPtr)
+ d doc value like(xmlDocPtr)
+ d value * value options(*string) const xmlChar *
+ d attr value like(xmlAttrPtr)
+
+ d xmlFreeRefTable...
+ d pr extproc('xmlFreeRefTable')
+ d table value like(xmlRefTablePtr)
+
+ d xmlIsRef pr extproc('xmlIsRef')
+ d like(xmlCint)
+ d doc value like(xmlDocPtr)
+ d node value like(xmlNodePtr)
+ d attr value like(xmlAttrPtr)
+
+ d xmlRemoveRef pr extproc('xmlRemoveRef')
+ d like(xmlCint)
+ d doc value like(xmlDocPtr)
+ d attr value like(xmlAttrPtr)
+
+ d xmlGetRefs pr extproc('xmlGetRefs')
+ d like(xmlListPtr)
+ d doc value like(xmlDocPtr)
+ d ID * value options(*string) const xmlChar *
+
+ * The public function calls related to validity checking.
+
+ /if defined(LIBXML_VALID_ENABLED)
+ * Allocate/Release Validation Contexts
+
+ d xmlNewValidCtxt...
+ d pr extproc('xmlNewValidCtxt')
+ d like(xmlValidCtxtPtr)
+
+ d xmlFreeValidCtxt...
+ d pr extproc('xmlFreeValidCtxt')
+ d ctxt value like(xmlValidCtxtPtr)
+
+ d xmlValidateRoot...
+ d pr extproc('xmlValidateRoot')
+ d like(xmlCint)
+ d ctxt value like(xmlValidCtxtPtr)
+ d doc value like(xmlDocPtr)
+
+ d xmlValidateElementDecl...
+ d pr extproc('xmlValidateElementDecl')
+ d like(xmlCint)
+ d ctxt value like(xmlValidCtxtPtr)
+ d doc value like(xmlDocPtr)
+ d elem value like(xmlElementPtr)
+
+ d xmlValidNormalizeAttributeValue...
+ d pr * extproc( xmlChar *
+ d 'xmlValidNormalizeAttributeValue')
+ d doc value like(xmlDocPtr)
+ d elem value like(xmlNodePtr)
+ d name * value options(*string) const xmlChar *
+ d value * value options(*string) const xmlChar *
+
+ d xmlValidCtxtNormalizeAttributeValue...
+ d pr * extproc('xmlValidCtxt+ xmlChar *
+ d NormalizeAttributeValue')
+ d ctxt value like(xmlValidCtxtPtr)
+ d doc value like(xmlDocPtr)
+ d elem value like(xmlNodePtr)
+ d name * value options(*string) const xmlChar *
+ d value * value options(*string) const xmlChar *
+
+ d xmlValidateAttributeDecl...
+ d pr extproc('xmlValidateAttributeDecl')
+ d like(xmlCint)
+ d ctxt value like(xmlValidCtxtPtr)
+ d doc value like(xmlDocPtr)
+ d attr value like(xmlAttributePtr)
+
+ d xmlValidateAttributeValue...
+ d pr extproc('xmlValidateAttributeValue')
+ d like(xmlCint)
+ d type value like(xmlAttributeType)
+ d value * value options(*string) const xmlChar *
+
+ d xmlValidateNotationDecl...
+ d pr extproc('xmlValidateNotationDecl')
+ d like(xmlCint)
+ d ctxt value like(xmlValidCtxtPtr)
+ d doc value like(xmlDocPtr)
+ d nota value like(xmlNotationPtr)
+
+ d xmlValidateDtd pr extproc('xmlValidateDtd')
+ d like(xmlCint)
+ d ctxt value like(xmlValidCtxtPtr)
+ d doc value like(xmlDocPtr)
+ d dtd value like(xmlDtdPtr)
+
+ d xmlValidateDtdFinal...
+ d pr extproc('xmlValidateDtdFinal')
+ d like(xmlCint)
+ d ctxt value like(xmlValidCtxtPtr)
+ d doc value like(xmlDocPtr)
+
+ d xmlValidateDocument...
+ d pr extproc('xmlValidateDocument')
+ d like(xmlCint)
+ d ctxt value like(xmlValidCtxtPtr)
+ d doc value like(xmlDocPtr)
+
+ d xmlValidateElement...
+ d pr extproc('xmlValidateElement')
+ d like(xmlCint)
+ d ctxt value like(xmlValidCtxtPtr)
+ d doc value like(xmlDocPtr)
+ d elem value like(xmlNodePtr)
+
+ d xmlValidateOneElement...
+ d pr extproc('xmlValidateOneElement')
+ d like(xmlCint)
+ d ctxt value like(xmlValidCtxtPtr)
+ d doc value like(xmlDocPtr)
+ d elem value like(xmlNodePtr)
+
+ d xmlValidateOneAttribute...
+ d pr extproc('xmlValidateOneAttribute')
+ d like(xmlCint)
+ d ctxt value like(xmlValidCtxtPtr)
+ d doc value like(xmlDocPtr)
+ d elem value like(xmlNodePtr)
+ d attr value like(xmlAttrPtr)
+ d value * value options(*string) const xmlChar *
+
+ d xmlValidateOneNamespace...
+ d pr extproc('xmlValidateOneNamespace')
+ d like(xmlCint)
+ d ctxt value like(xmlValidCtxtPtr)
+ d doc value like(xmlDocPtr)
+ d elem value like(xmlNodePtr)
+ d prefix * value options(*string) const xmlChar *
+ d ns value like(xmlNsPtr)
+ d value * value options(*string) const xmlChar *
+
+ d xmlValidateDocumentFinal...
+ d pr extproc('xmlValidateDocumentFinal')
+ d like(xmlCint)
+ d ctxt value like(xmlValidCtxtPtr)
+ d doc value like(xmlDocPtr)
+ /endif LIBXML_VALID_ENABLED
+
+ /undefine XML_TESTVAL
+ /if defined(LIBXML_VALID_ENABLED)
+ /define XML_TESTVAL
+ /elseif defined(LIBXML_SCHEMAS_ENABLED)
+ /define XML_TESTVAL
+ /endif
+ /if defined(XML_TESTVAL)
+ d xmlValidateNotationUse...
+ d pr extproc('xmlValidateNotationUse')
+ d like(xmlCint)
+ d ctxt value like(xmlValidCtxtPtr)
+ d doc value like(xmlDocPtr)
+ d notationName * value options(*string) const xmlChar *
+
+ /undefine XML_TESTVAL
+ /endif
+
+ d xmlIsMixedElement...
+ d pr extproc('xmlIsMixedElement')
+ d like(xmlCint)
+ d doc value like(xmlDocPtr)
+ d name * value options(*string) const xmlChar *
+
+ d xmlGetDtdAttrDesc...
+ d pr extproc('xmlGetDtdAttrDesc')
+ d like(xmlAttributePtr)
+ d dtd value like(xmlDtdPtr)
+ d elem * value options(*string) const xmlChar *
+ d name * value options(*string) const xmlChar *
+
+ d xmlGetDtdQAttrDesc...
+ d pr extproc('xmlGetDtdQAttrDesc')
+ d like(xmlAttributePtr)
+ d dtd value like(xmlDtdPtr)
+ d elem * value options(*string) const xmlChar *
+ d name * value options(*string) const xmlChar *
+ d prefix * value options(*string) const xmlChar *
+
+ d xmlGetDtdNotationDesc...
+ d pr extproc('xmlGetDtdNotationDesc')
+ d like(xmlNotationPtr)
+ d dtd value like(xmlDtdPtr)
+ d name * value options(*string) const xmlChar *
+
+ d xmlGetDtdQElementDesc...
+ d pr extproc('xmlGetDtdQElementDesc')
+ d like(xmlElementPtr)
+ d dtd value like(xmlDtdPtr)
+ d name * value options(*string) const xmlChar *
+ d prefix * value options(*string) const xmlChar *
+
+ d xmlGetDtdElementDesc...
+ d pr extproc('xmlGetDtdElementDesc')
+ d like(xmlElementPtr)
+ d dtd value like(xmlDtdPtr)
+ d name * value options(*string) const xmlChar *
+
+ /if defined(LIBXML_VALID_ENABLED)
+ d xmlValidGetPotentialChildren...
+ d pr extproc(
+ d 'xmlValidGetPotentialChildren')
+ d like(xmlCint)
+ d ctree * value xmlElementContent *
+ d names * const xmlChar *(*)
+ d len like(xmlCint)
+ d max value like(xmlCint)
+
+ d xmlValidGetValidElements...
+ d pr extproc('xmlValidGetValidElements')
+ d like(xmlCint)
+ d prev like(xmlNodePtr)
+ d next like(xmlNodePtr)
+ d names * const xmlChar *(*)
+ d max value like(xmlCint)
+
+ d xmlValidateNameValue...
+ d pr extproc('xmlValidateNameValue')
+ d like(xmlCint)
+ d value * value options(*string) const xmlChar *
+
+ d xmlValidateNamesValue...
+ d pr extproc('xmlValidateNamesValue')
+ d like(xmlCint)
+ d value * value options(*string) const xmlChar *
+
+ d xmlValidateNmtokenValue...
+ d pr extproc('xmlValidateNmtokenValue')
+ d like(xmlCint)
+ d value * value options(*string) const xmlChar *
+
+ d xmlValidateNmtokensValue...
+ d pr extproc('xmlValidateNmtokensValue')
+ d like(xmlCint)
+ d value * value options(*string) const xmlChar *
+
+ /if defined(LIBXML_REGEXP_ENABLED)
+ * Validation based on the regexp support
+
+ d xmlValidBuildContentModel...
+ d pr extproc('xmlValidBuildContentModel')
+ d like(xmlCint)
+ d ctxt value like(xmlValidCtxtPtr)
+ d elem value like(xmlElementPtr)
+
+ d xmlValidatePushElement...
+ d pr extproc('xmlValidatePushElement')
+ d like(xmlCint)
+ d ctxt value like(xmlValidCtxtPtr)
+ d doc value like(xmlDocPtr)
+ d elem value like(xmlNodePtr)
+ d qname * value options(*string) const xmlChar *
+
+ d xmlValidatePushCData...
+ d pr extproc('xmlValidatePushCData')
+ d like(xmlCint)
+ d ctxt value like(xmlValidCtxtPtr)
+ d data * value options(*string) const xmlChar *
+ d len value like(xmlCint)
+
+ d xmlValidatePopElement...
+ d pr extproc('xmlValidatePopElement')
+ d like(xmlCint)
+ d ctxt value like(xmlValidCtxtPtr)
+ d doc value like(xmlDocPtr)
+ d elem value like(xmlNodePtr)
+ d qname * value options(*string) const xmlChar *
+
+ /endif LIBXML_REGEXP_ENABLD
+ /endif LIBXML_VALID_ENABLED
+ /endif XML_VALID_H__
diff --git a/libxml2/os400/libxmlrpg/xinclude.rpgle b/libxml2/os400/libxmlrpg/xinclude.rpgle
new file mode 100644
index 0000000..93b7c51
--- /dev/null
+++ b/libxml2/os400/libxmlrpg/xinclude.rpgle
@@ -0,0 +1,156 @@
+ * Summary: implementation of XInclude
+ * Description: API to handle XInclude processing,
+ * implements the
+ * World Wide Web Consortium Last Call Working Draft 10 November 2003
+ * http://www.w3.org/TR/2003/WD-xinclude-20031110
+ *
+ * Copy: See Copyright for the status of this software.
+ *
+ * Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A.
+
+ /if not defined(XML_XINCLUDE_H__)
+ /define XML_XINCLUDE_H__
+
+ /include "libxmlrpg/xmlversion"
+ /include "libxmlrpg/xmlTypesC"
+ /include "libxmlrpg/tree"
+
+ /if defined(LIBXML_XINCLUDE_ENABLED)
+
+ * XINCLUDE_NS:
+ *
+ * Macro defining the Xinclude namespace: http://www.w3.org/2003/XInclude
+
+ d XINCLUDE_NS c 'http://www.w3.org/2003/XInclude'
+
+
+ * XINCLUDE_OLD_NS:
+ *
+ * Define the draft Xinclude namespace: http://www.w3.org/2001/XInclude
+
+ d XINCLUDE_OLD_NS...
+ d c 'http://www.w3.org/2001/XInclude'
+
+ * XINCLUDE_NODE:
+ *
+ * Macro defining "include"
+
+ d XINCLUDE_NODE c 'include'
+
+ * XINCLUDE_FALLBACK:
+ *
+ * Macro defining "fallback"
+
+ d XINCLUDE_FALLBACK...
+ d c 'fallback'
+
+ * XINCLUDE_HREF:
+ *
+ * Macro defining "href"
+
+ d XINCLUDE_HREF c 'href'
+
+ * XINCLUDE_PARSE:
+ *
+ * Macro defining "parse"
+
+ d XINCLUDE_PARSE c 'parse'
+
+ * XINCLUDE_PARSE_XML:
+ *
+ * Macro defining "xml"
+
+ d XINCLUDE_PARSE_XML...
+ d c 'xml'
+
+ * XINCLUDE_PARSE_TEXT:
+ *
+ * Macro defining "text"
+
+ d XINCLUDE_PARSE_TEXT...
+ d c 'text'
+
+ * XINCLUDE_PARSE_ENCODING:
+ *
+ * Macro defining "encoding"
+
+ d XINCLUDE_PARSE_ENCODING...
+ d c 'encoding'
+
+ * XINCLUDE_PARSE_XPOINTER:
+ *
+ * Macro defining "xpointer"
+
+ d XINCLUDE_PARSE_XPOINTER...
+ d c 'xpointer'
+
+ d xmlXIncludeCtxtPtr...
+ d s * based(######typedef######)
+
+ * standalone processing
+
+ d xmlXIncludeProcess...
+ d pr extproc('xmlXIncludeProcess')
+ d like(xmlCint)
+ d doc value like(xmlDocPtr)
+
+ d xmlXIncludeProcessFlags...
+ d pr extproc('xmlXIncludeProcessFlags')
+ d like(xmlCint)
+ d doc value like(xmlDocPtr)
+ d flags value like(xmlCint)
+
+ d xmlXIncludeProcessFlagsData...
+ d pr extproc(
+ d 'xmlXIncludeProcessFlagsData')
+ d like(xmlCint)
+ d doc value like(xmlDocPtr)
+ d flags value like(xmlCint)
+ d data * value void *
+
+ d xmlXIncludeProcessTreeFlagsData...
+ d pr extproc(
+ d 'xmlXIncludeProcessTreeFlagsData')
+ d like(xmlCint)
+ d tree value like(xmlNodePtr)
+ d flags value like(xmlCint)
+ d data * value void *
+
+ d xmlXIncludeProcessTree...
+ d pr extproc('xmlXIncludeProcessTree')
+ d like(xmlCint)
+ d tree value like(xmlNodePtr)
+
+ d xmlXIncludeProcessTreeFlags...
+ d pr extproc(
+ d 'xmlXIncludeProcessTreeFlags')
+ d like(xmlCint)
+ d tree value like(xmlNodePtr)
+ d flags value like(xmlCint)
+
+
+ * contextual processing
+
+ d xmlXIncludeNewContext...
+ d pr extproc('xmlXIncludeNewContext')
+ d like(xmlXIncludeCtxtPtr)
+ d doc value like(xmlDocPtr)
+
+ d xmlXIncludeSetFlags...
+ d pr extproc('xmlXIncludeSetFlags')
+ d like(xmlCint)
+ d ctxt value like(xmlXIncludeCtxtPtr)
+ d flags value like(xmlCint)
+
+ d xmlXIncludeFreeContext...
+ d pr extproc('xmlXIncludeFreeContext')
+ d ctxt value like(xmlXIncludeCtxtPtr)
+
+ d xmlXIncludeProcessNode...
+ d pr extproc('xmlXIncludeProcessNode')
+ d like(xmlCint)
+ d ctxt value like(xmlXIncludeCtxtPtr)
+ d tree value like(xmlNodePtr)
+
+ /endif XINCLUDE_ENABLED
+ /endif XML_XINCLUDE_H__
diff --git a/libxml2/os400/libxmlrpg/xlink.rpgle b/libxml2/os400/libxmlrpg/xlink.rpgle
new file mode 100644
index 0000000..e6ebdc6
--- /dev/null
+++ b/libxml2/os400/libxmlrpg/xlink.rpgle
@@ -0,0 +1,169 @@
+ * Summary: unfinished XLink detection module
+ * Description: unfinished XLink detection module
+ *
+ * Copy: See Copyright for the status of this software.
+ *
+ * Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A.
+
+ /if not defined(XML_XLINK_H__)
+ /define XML_XLINK_H__
+
+ /include "libxmlrpg/xmlversion"
+
+ /if defined(LIBXML_XPTR_ENABLED)
+
+ /include "libxmlrpg/xmlTypesC"
+ /include "libxmlrpg/tree"
+
+ * Various defines for the various Link properties.
+ *
+ * NOTE: the link detection layer will try to resolve QName expansion
+ * of namespaces. If "foo" is the prefix for "http://foo.com/"
+ * then the link detection layer will expand role="foo:myrole"
+ * to "http://foo.com/:myrole".
+ * NOTE: the link detection layer will expand URI-Refences found on
+ * href attributes by using the base mechanism if found.
+
+ d xlinkRef s * based(######typedef######) xmlChar *
+ d xlinkRole s * based(######typedef######) xmlChar *
+ d xlinkTitle s * based(######typedef######) xmlChar *
+
+ d xlinkType s based(######typedef######)
+ d like(xmlCenum)
+ d XLINK_TYPE_NONE...
+ d c 0
+ d XLINK_TYPE_SIMPLE...
+ d c 1
+ d XLINK_TYPE_EXTENDED...
+ d c 2
+ d XLINK_TYPE_EXTENDED_SET...
+ d c 3
+
+ d xlinkShow s based(######typedef######)
+ d like(xmlCenum)
+ d XLINK_SHOW_NONE...
+ d c 0
+ d XLINK_SHOW_NEW...
+ d c 1
+ d XLINK_SHOW_EMBED...
+ d c 2
+ d XLINK_SHOW_REPLACE...
+ d c 3
+
+ d xlinkActuate s based(######typedef######)
+ d like(xmlCenum)
+ d XLINK_ACTUATE_NONE...
+ d c 0
+ d XLINK_ACTUATE_AUTO...
+ d c 1
+ d XLINK_ACTUATE_ONREQUEST...
+ d c 2
+
+ * xlinkNodeDetectFunc:
+ * @ctx: user data pointer
+ * @node: the node to check
+ *
+ * This is the prototype for the link detection routine.
+ * It calls the default link detection callbacks upon link detection.
+
+ d xlinkNodeDetectFunc...
+ d s * based(######typedef######)
+ d procptr
+
+ * The link detection module interact with the upper layers using
+ * a set of callback registered at parsing time.
+
+ * xlinkSimpleLinkFunk:
+ * @ctx: user data pointer
+ * @node: the node carrying the link
+ * @href: the target of the link
+ * @role: the role string
+ * @title: the link title
+ *
+ * This is the prototype for a simple link detection callback.
+
+ d xlinkSimpleLinkFunk...
+ d s * based(######typedef######)
+ d procptr
+
+ * xlinkExtendedLinkFunk:
+ * @ctx: user data pointer
+ * @node: the node carrying the link
+ * @nbLocators: the number of locators detected on the link
+ * @hrefs: pointer to the array of locator hrefs
+ * @roles: pointer to the array of locator roles
+ * @nbArcs: the number of arcs detected on the link
+ * @from: pointer to the array of source roles found on the arcs
+ * @to: pointer to the array of target roles found on the arcs
+ * @show: array of values for the show attributes found on the arcs
+ * @actuate: array of values for the actuate attributes found on the arcs
+ * @nbTitles: the number of titles detected on the link
+ * @title: array of titles detected on the link
+ * @langs: array of xml:lang values for the titles
+ *
+ * This is the prototype for a extended link detection callback.
+
+ d xlinkExtendedLinkFunk...
+ d s * based(######typedef######)
+ d procptr
+
+ * xlinkExtendedLinkSetFunk:
+ * @ctx: user data pointer
+ * @node: the node carrying the link
+ * @nbLocators: the number of locators detected on the link
+ * @hrefs: pointer to the array of locator hrefs
+ * @roles: pointer to the array of locator roles
+ * @nbTitles: the number of titles detected on the link
+ * @title: array of titles detected on the link
+ * @langs: array of xml:lang values for the titles
+ *
+ * This is the prototype for a extended link set detection callback.
+
+ d xlinkExtendedLinkSetFunk...
+ d s * based(######typedef######)
+ d procptr
+
+ * This is the structure containing a set of Links detection callbacks.
+ *
+ * There is no default xlink callbacks, if one want to get link
+ * recognition activated, those call backs must be provided before parsing.
+
+ d xlinkHandlerPtr...
+ d s * based(######typedef######) xmlChar *
+
+ d xlinkHandler ds based(xlinkHandlerPtr)
+ d align qualified
+ d simple like(xlinkSimpleLinkFunk)
+ d extended like(xlinkExtendedLinkFunk)
+ d set like(xlinkExtendedLinkSetFunk)
+
+ * The default detection routine, can be overridden, they call the default
+ * detection callbacks.
+
+ d xlinkGetDefaultDetect...
+ d pr extproc('xlinkGetDefaultDetect')
+ d like(xlinkNodeDetectFunc)
+
+ d xlinkSetDefaultDetect...
+ d pr extproc('xlinkSetDefaultDetect')
+ d func value like(xlinkNodeDetectFunc)
+
+ * Routines to set/get the default handlers.
+
+ d xlinkGetDefaultHandler...
+ d pr extproc('xlinkGetDefaultHandler')
+ d like(xlinkHandlerPtr)
+
+ d xlinkSetDefaultHandler...
+ d pr extproc('xlinkSetDefaultHandler')
+ d handler value like(xlinkHandlerPtr)
+
+ * Link detection module itself.
+
+ d xlinkIsLink pr extproc('xlinkIsLink')
+ d like(xlinkType)
+ d doc value like(xmlDocPtr)
+ d node value like(xmlNodePtr)
+
+ /endif LIBXML_XPTR_ENABLED
+ /endif XML_XLINK_H__
diff --git a/libxml2/os400/libxmlrpg/xmlIO.rpgle b/libxml2/os400/libxmlrpg/xmlIO.rpgle
new file mode 100644
index 0000000..6c0afcc
--- /dev/null
+++ b/libxml2/os400/libxmlrpg/xmlIO.rpgle
@@ -0,0 +1,464 @@
+ * Summary: interface for the I/O interfaces used by the parser
+ * Description: interface for the I/O interfaces used by the parser
+ *
+ * Copy: See Copyright for the status of this software.
+ *
+ * Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A.
+
+ /if not defined(XML_IO_H__)
+ /define XML_IO_H__
+
+ /include "libxmlrpg/xmlversion"
+ /include "libxmlrpg/xmlTypesC"
+
+ * Those are the functions and datatypes for the parser input
+ * I/O structures.
+
+ * xmlInputMatchCallback:
+ * @filename: the filename or URI
+ *
+ * Callback used in the I/O Input API to detect if the current handler
+ * can provide input fonctionnalities for this resource.
+ *
+ * Returns 1 if yes and 0 if another Input module should be used
+
+ d xmlInputMatchCallback...
+ d s * based(######typedef######)
+ d procptr
+
+ * xmlInputOpenCallback:
+ * @filename: the filename or URI
+ *
+ * Callback used in the I/O Input API to open the resource
+ *
+ * Returns an Input context or NULL in case or error
+
+ d xmlInputOpenCallback...
+ d s * based(######typedef######)
+ d procptr
+
+ * xmlInputReadCallback:
+ * @context: an Input context
+ * @buffer: the buffer to store data read
+ * @len: the length of the buffer in bytes
+ *
+ * Callback used in the I/O Input API to read the resource
+ *
+ * Returns the number of bytes read or -1 in case of error
+
+ d xmlInputReadCallback...
+ d s * based(######typedef######)
+ d procptr
+
+ * xmlInputCloseCallback:
+ * @context: an Input context
+ *
+ * Callback used in the I/O Input API to close the resource
+ *
+ * Returns 0 or -1 in case of error
+
+ d xmlInputCloseCallback...
+ d s * based(######typedef######)
+ d procptr
+
+ /if defined(LIBXML_OUTPUT_ENABLED)
+
+ * Those are the functions and datatypes for the library output
+ * I/O structures.
+
+ * xmlOutputMatchCallback:
+ * @filename: the filename or URI
+ *
+ * Callback used in the I/O Output API to detect if the current handler
+ * can provide output fonctionnalities for this resource.
+ *
+ * Returns 1 if yes and 0 if another Output module should be used
+
+ d xmlOutputMatchCallback...
+ d s * based(######typedef######)
+ d procptr
+
+ * xmlOutputOpenCallback:
+ * @filename: the filename or URI
+ *
+ * Callback used in the I/O Output API to open the resource
+ *
+ * Returns an Output context or NULL in case or error
+
+ d xmlOutputOpenCallback...
+ d s * based(######typedef######)
+ d procptr
+
+ * xmlOutputWriteCallback:
+ * @context: an Output context
+ * @buffer: the buffer of data to write
+ * @len: the length of the buffer in bytes
+ *
+ * Callback used in the I/O Output API to write to the resource
+ *
+ * Returns the number of bytes written or -1 in case of error
+
+ d xmlOutputWriteCallback...
+ d s * based(######typedef######)
+ d procptr
+
+ * xmlOutputCloseCallback:
+ * @context: an Output context
+ *
+ * Callback used in the I/O Output API to close the resource
+ *
+ * Returns 0 or -1 in case of error
+
+ d xmlOutputCloseCallback...
+ d s * based(######typedef######)
+ d procptr
+ /endif LIBXML_OUTPUT_ENABLD
+
+ /include "libxmlrpg/globals"
+ /include "libxmlrpg/tree"
+ /include "libxmlrpg/parser"
+ /include "libxmlrpg/encoding"
+
+ d xmlParserInputBuffer...
+ d ds based(xmlParserInputBufferPtr)
+ d align qualified
+ d context * void *
+ d readcallback like(xmlInputReadCallback)
+ d closecallback like(xmlInputCloseCallback)
+ *
+ d encoder like(xmlCharEncodingHandlerPtr) Conversions --> UTF8
+ *
+ d buffer like(xmlBufPtr) UTF-8 local buffer
+ d raw like(xmlBufPtr) Raw input buffer
+ d compressed like(xmlCint)
+ d error like(xmlCint)
+ d rawconsumed like(xmlCulong)
+
+ /if defined(LIBXML_OUTPUT_ENABLED)
+ d xmlOutputBuffer...
+ d ds based(xmlOutputBufferPtr)
+ d align qualified
+ d context * void *
+ d writecallback like(xmlOutputWriteCallback)
+ d closecallback like(xmlOutputCloseCallback)
+ *
+ d encoder like(xmlCharEncodingHandlerPtr) Conversions --> UTF8
+ *
+ d buffer like(xmlBufPtr) UTF-8/ISOLatin local
+ d conv like(xmlBufPtr) Buffer for output
+ d written like(xmlCint) Total # byte written
+ d error like(xmlCint)
+ /endif LIBXML_OUTPUT_ENABLD
+
+ * Interfaces for input
+
+ d xmlCleanupInputCallbacks...
+ d pr extproc('xmlCleanupInputCallbacks')
+
+ d xmlPopInputCallbacks...
+ d pr extproc('xmlPopInputCallbacks')
+ d like(xmlCint)
+
+ d xmlRegisterDefaultInputCallbacks...
+ d pr extproc(
+ d 'xmlRegisterDefaultInputCallbacks')
+
+ d xmlAllocParserInputBuffer...
+ d pr extproc('xmlAllocParserInputBuffer')
+ d like(xmlParserInputBufferPtr)
+ d enc value like(xmlCharEncoding)
+
+ d xmlParserInputBufferCreateFilename...
+ d pr extproc(
+ d 'xmlParserInputBufferCreateFilename')
+ d like(xmlParserInputBufferPtr)
+ d URI * value options(*string) const char *
+ d enc value like(xmlCharEncoding)
+
+ d xmlParserInputBufferCreateFile...
+ d pr extproc(
+ d 'xmlParserInputBufferCreateFile')
+ d like(xmlParserInputBufferPtr)
+ d file * value FILE *
+ d enc value like(xmlCharEncoding)
+
+ d xmlParserInputBufferCreateFd...
+ d pr extproc(
+ d 'xmlParserInputBufferCreateFd')
+ d like(xmlParserInputBufferPtr)
+ d fd value like(xmlCint)
+ d enc value like(xmlCharEncoding)
+
+ d xmlParserInputBufferCreateMem...
+ d pr extproc(
+ d 'xmlParserInputBufferCreateMem')
+ d like(xmlParserInputBufferPtr)
+ d mem * value options(*string) const char *
+ d size value like(xmlCint)
+ d enc value like(xmlCharEncoding)
+
+ d xmlParserInputBufferCreateStatic...
+ d pr extproc(
+ d 'xmlParserInputBufferCreateStatic')
+ d like(xmlParserInputBufferPtr)
+ d mem * value options(*string) const char *
+ d size value like(xmlCint)
+ d enc value like(xmlCharEncoding)
+
+ d xmlParserInputBufferCreateIO...
+ d pr extproc(
+ d 'xmlParserInputBufferCreateIO')
+ d like(xmlParserInputBufferPtr)
+ d ioread value like(xmlInputReadCallback)
+ d ioclose value like(xmlInputCloseCallback)
+ d ioctx * value void *
+ d enc value like(xmlCharEncoding)
+
+ d xmlParserInputBufferRead...
+ d pr extproc('xmlParserInputBufferRead')
+ d like(xmlCint)
+ d in value like(xmlParserInputBufferPtr)
+ d len value like(xmlCint)
+
+ d xmlParserInputBufferGrow...
+ d pr extproc('xmlParserInputBufferGrow')
+ d like(xmlCint)
+ d in value like(xmlParserInputBufferPtr)
+ d len value like(xmlCint)
+
+ d xmlParserInputBufferPush...
+ d pr extproc('xmlParserInputBufferPush')
+ d like(xmlCint)
+ d in value like(xmlParserInputBufferPtr)
+ d len value like(xmlCint)
+ d buf * value options(*string) const char *
+
+ d xmlFreeParserInputBuffer...
+ d pr extproc('xmlFreeParserInputBuffer')
+ d in value like(xmlParserInputBufferPtr)
+
+ d xmlParserGetDirectory...
+ d pr * extproc('xmlParserGetDirectory') char *
+ d filename * value options(*string) const char *
+
+ d xmlRegisterInputCallbacks...
+ d pr extproc('xmlRegisterInputCallbacks')
+ d like(xmlCint)
+ d matchFunc value like(xmlInputMatchCallback)
+ d openFunc value like(xmlInputOpenCallback)
+ d readFunc value like(xmlInputReadCallback)
+ d closeFunc value like(xmlInputCloseCallback)
+
+ /if defined(LIBXML_OUTPUT_ENABLED)
+
+ * Interfaces for output
+
+ d xmlCleanupOutputCallbacks...
+ d pr extproc('xmlCleanupOutputCallbacks')
+
+ d xmlRegisterDefaultOutputCallbacks...
+ d pr extproc(
+ d 'xmlRegisterDefaultOuputCallbacks')
+
+ d xmlAllocOutputBuffer...
+ d pr extproc('xmlAllocOutputBuffer')
+ d like(xmlOutputBufferPtr)
+ d encoder value
+ d like(xmlCharEncodingHandlerPtr)
+
+ d xmlOutputBufferCreateFilename...
+ d pr extproc(
+ d 'xmlOutputBufferCreateFilename')
+ d like(xmlOutputBufferPtr)
+ d URI * value options(*string) const char *
+ d encoder value
+ d like(xmlCharEncodingHandlerPtr)
+ d compression value like(xmlCint)
+
+ d xmlOutputBufferCreateFile...
+ d pr extproc('xmlOutputBufferCreateFile')
+ d like(xmlOutputBufferPtr)
+ d file * value FILE *
+ d encoder value
+ d like(xmlCharEncodingHandlerPtr)
+
+ d xmlOutputBufferCreateBuffer...
+ d pr extproc(
+ d 'xmlOutputBufferCreateBuffer')
+ d like(xmlOutputBufferPtr)
+ d buffer value like(xmlBufferPtr)
+ d encoder value
+ d like(xmlCharEncodingHandlerPtr)
+
+ d xmlOutputBufferCreateFd...
+ d pr extproc('xmlOutputBufferCreateFd')
+ d like(xmlOutputBufferPtr)
+ d fd value like(xmlCint)
+ d encoder value
+ d like(xmlCharEncodingHandlerPtr)
+
+ d xmlOutputBufferCreateIO...
+ d pr extproc('xmlOutputBufferCreateIO')
+ d like(xmlOutputBufferPtr)
+ d iowrite value like(xmlOutputWriteCallback)
+ d ioclose value like(xmlOutputCloseCallback)
+ d ioctx * value void *
+ d encoder value
+ d like(xmlCharEncodingHandlerPtr)
+
+ * Couple of APIs to get the output without digging into the buffers
+
+ d xmlOutputBufferGetContent...
+ d pr * extproc('xmlOutputBufferGetContent') const xmlChar *
+ d out value like(xmlOutputBufferPtr)
+
+ d xmlOutputBufferGetSize...
+ d pr extproc('xmlOutputBufferGetSize')
+ d like(xmlCsize_t)
+ d out value like(xmlOutputBufferPtr)
+
+ d xmlOutputBufferWrite...
+ d pr extproc('xmlOutputBufferWrite')
+ d like(xmlCint)
+ d out value like(xmlOutputBufferPtr)
+ d len value like(xmlCint)
+ d buf * value options(*string) const char *
+
+ d xmlOutputBufferWriteString...
+ d pr extproc('xmlOutputBufferWriteString')
+ d like(xmlCint)
+ d out value like(xmlOutputBufferPtr)
+ d str * value options(*string) const char *
+
+ d xmlOutputBufferWriteEscape...
+ d pr extproc('xmlOutputBufferWriteEscape')
+ d like(xmlCint)
+ d out value like(xmlOutputBufferPtr)
+ d str * value options(*string) const xmlChar *
+ d escaping value like(xmlCharEncodingOutputFunc)
+
+ d xmlOutputBufferFlush...
+ d pr extproc('xmlOutputBufferFlush')
+ d like(xmlCint)
+ d out value like(xmlOutputBufferPtr)
+
+ d xmlOutputBufferClose...
+ d pr extproc('xmlOutputBufferClose')
+ d like(xmlCint)
+ d out value like(xmlOutputBufferPtr)
+
+ d xmlRegisterOutputCallbacks...
+ d pr extproc('xmlRegisterOutputCallbacks')
+ d like(xmlCint)
+ d matchFunc value like(xmlOutputMatchCallback)
+ d openFunc value like(xmlOutputOpenCallback)
+ d writeFunc value like(xmlOutputWriteCallback)
+ d closeFunc value like(xmlOutputCloseCallback)
+
+ /if defined(LIBXML_HTTP_ENABLED)
+
+ * This function only exists if HTTP support built into the library
+
+ d xmlRegisterHTTPPostCallbacks...
+ d pr extproc(
+ d 'xmlRegisterHTTPPostCallbacks')
+
+ /endif LIBXML_HTTP_ENABLED
+ /endif LIBXML_OUTPUT_ENABLD
+
+ d xmlCheckHTTPInput...
+ d pr extproc('xmlCheckHTTPInput')
+ d like(xmlParserInputPtr)
+ d ctxt value like(xmlParserCtxtPtr)
+ d ret value like(xmlParserInputPtr)
+
+ * A predefined entity loader disabling network accesses
+
+ d xmlNoNetExternalEntityLoader...
+ d pr extproc(
+ d 'xmlNoNetExternalEntityLoader')
+ d like(xmlParserInputPtr)
+ d URL * value options(*string) const char *
+ d ID * value options(*string) const char *
+ d ctxt value like(xmlParserCtxtPtr)
+
+ * xmlNormalizeWindowsPath is obsolete, don't use it.
+ * Check xmlCanonicPath in uri.h for a better alternative.
+
+ d xmlNormalizeWindowsPath...
+ d pr * extproc('xmlNormalizeWindowsPath') xmlChar *
+ d path * value options(*string) const xmlChar *
+
+ d xmlCheckFilename...
+ d pr extproc('xmlCheckFilename')
+ d like(xmlCint)
+ d path * value options(*string) const char *
+
+ * Default 'file://' protocol callbacks
+
+ d xmlFileMatch pr extproc('xmlFileMatch')
+ d like(xmlCint)
+ d filename * value options(*string) const char *
+
+ d xmlFileOpen pr * extproc('xmlFileOpen') void *
+ d filename * value options(*string) const char *
+
+ d xmlFileRead pr extproc('xmlFileRead')
+ d like(xmlCint)
+ d context * value void *
+ d buffer 65535 options(*varsize)
+ d len value like(xmlCint)
+
+ d xmlFileClose pr extproc('xmlFileClose')
+ d like(xmlCint)
+ d context * value void *
+
+ * Default 'http://' protocol callbacks
+
+ /if defined(LIBXML_HTTP_ENABLED)
+ d xmlIOHTTPMatch pr extproc('xmlIOHTTPMatch')
+ d like(xmlCint)
+ d filename * value options(*string) const char *
+
+ d xmlIOHTTPOpen pr * extproc('xmlIOHTTPOpen') void *
+ d filename * value options(*string) const char *
+
+ /if defined(LIBXML_OUTPUT_ENABLED)
+ d xmlIOHTTPOpenW pr * extproc('xmlIOHTTPOpenW') void *
+ d post_uri * value options(*string) const char *
+ d compression value like(xmlCint)
+ /endif LIBXML_OUTPUT_ENABLD
+
+ d xmlIOHTTPRead pr extproc('xmlIOHTTPRead')
+ d like(xmlCint)
+ d context * value void *
+ d buffer 65535 options(*varsize)
+ d len value like(xmlCint)
+
+ d xmlIOHTTPClose pr extproc('xmlIOHTTPClose')
+ d like(xmlCint)
+ d context * value void *
+ /endif LIBXML_HTTP_ENABLED
+
+ * Default 'ftp://' protocol callbacks
+
+ /if defined(LIBXML_FTP_ENABLED)
+ d xmlIOFTPMatch pr extproc('xmlIOFTPMatch')
+ d like(xmlCint)
+ d filename * value options(*string) const char *
+
+ d xmlIOFTPOpen pr * extproc('xmlIOFTPOpen') void *
+ d filename * value options(*string) const char *
+
+ d xmlIOFTPRead pr extproc('xmlIOFTPRead')
+ d like(xmlCint)
+ d context * value void *
+ d buffer 65535 options(*varsize)
+ d len value like(xmlCint)
+
+ d xmlIOFTPClose pr extproc('xmlIOFTPClose')
+ d like(xmlCint)
+ d context * value void *
+ /endif LIBXML_FTP_ENABLED
+
+ /endif XML_IO_H__
diff --git a/libxml2/os400/libxmlrpg/xmlTypesC.rpgle b/libxml2/os400/libxmlrpg/xmlTypesC.rpgle
new file mode 100644
index 0000000..48a23bf
--- /dev/null
+++ b/libxml2/os400/libxmlrpg/xmlTypesC.rpgle
@@ -0,0 +1,26 @@
+ * Eqivalent of C data types.
+ *
+ * Copy: See Copyright for the status of this software.
+ *
+ * Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A.
+
+ /if not defined(XMLTYPESC_H__)
+ /define XMLTYPESC_H__
+
+ d xmlCchar s 3i 0 based(######typedef######)
+ d xmlCuchar s 3u 0 based(######typedef######)
+ d xmlCshort s 5i 0 based(######typedef######)
+ d xmlCushort s 5u 0 based(######typedef######)
+ d xmlCint s 10i 0 based(######typedef######)
+ d xmlCuInt s 10u 0 based(######typedef######)
+ d xmlClong s 10i 0 based(######typedef######)
+ d xmlCulong s 10u 0 based(######typedef######)
+ d xmlClonglong s 20i 0 based(######typedef######)
+ d xmlCulonglong s 20u 0 based(######typedef######)
+ d xmlCenum s 10i 0 based(######typedef######)
+ d xmlCssize_t s 10i 0 based(######typedef######)
+ d xmlCsize_t s 10u 0 based(######typedef######)
+ d xmlCfloat s 4f based(######typedef######)
+ d xmlCdouble s 8f based(######typedef######)
+
+ /endif
diff --git a/libxml2/os400/libxmlrpg/xmlautomata.rpgle b/libxml2/os400/libxmlrpg/xmlautomata.rpgle
new file mode 100644
index 0000000..0e9cc22
--- /dev/null
+++ b/libxml2/os400/libxmlrpg/xmlautomata.rpgle
@@ -0,0 +1,183 @@
+ * Summary: API to build regexp automata
+ * Description: the API to build regexp automata
+ *
+ * Copy: See Copyright for the status of this software.
+ *
+ * Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A.
+
+ /if not defined(XML_AUTOMATA_H__)
+ /define XML_AUTOMATA_H__
+
+ /include "libxmlrpg/xmlversion"
+
+ /if defined(LIBXML_REGEXP_ENABLED)
+ /if defined(LIBXML_AUTOMATA_ENABLED)
+
+ /include "libxmlrpg/xmlTypesC"
+ /include "libxmlrpg/tree"
+ /include "libxmlrpg/xmlregexp"
+
+ * xmlAutomataPtr:
+ *
+ * A libxml automata description, It can be compiled into a regexp
+
+ d xmlAutomataPtr s * based(######typedef######)
+
+ * xmlAutomataStatePtr:
+ *
+ * A state int the automata description,
+
+ d xmlAutomataStatePtr...
+ d s * based(######typedef######)
+
+ * Building API
+
+ d xmlNewAutomata pr extproc('xmlNewAutomata')
+ d like(xmlAutomataPtr)
+
+ d xmlFreeAutomata...
+ d pr extproc('xmlFreeAutomata')
+ d am value like(xmlAutomataPtr)
+
+ d xmlAutomataGetInitState...
+ d pr extproc('xmlAutomataGetInitState')
+ d like(xmlAutomataStatePtr)
+ d am value like(xmlAutomataPtr)
+
+ d xmlAutomataSetFinalState...
+ d pr extproc('xmlAutomataSetFinalState')
+ d like(xmlCint)
+ d am value like(xmlAutomataPtr)
+ d state value like(xmlAutomataStatePtr)
+
+ d xmlAutomataNewState...
+ d pr extproc('xmlAutomataNewState')
+ d like(xmlAutomataStatePtr)
+ d am value like(xmlAutomataPtr)
+
+ d xmlAutomataNewTransition...
+ d pr extproc('xmlAutomataNewTransition')
+ d like(xmlAutomataStatePtr)
+ d am value like(xmlAutomataPtr)
+ d from value like(xmlAutomataStatePtr)
+ d to value like(xmlAutomataStatePtr)
+ d token * value options(*string) const xmlChar *
+ d data * value options(*string) void *
+
+ d xmlAutomataNewTransition2...
+ d pr extproc('xmlAutomataNewTransition2')
+ d like(xmlAutomataStatePtr)
+ d am value like(xmlAutomataPtr)
+ d from value like(xmlAutomataStatePtr)
+ d to value like(xmlAutomataStatePtr)
+ d token * value options(*string) const xmlChar *
+ d token2 * value options(*string) const xmlChar *
+ d data * value options(*string) void *
+
+ d xmlAutomataNewNegTrans...
+ d pr extproc('xmlAutomataNewNegTrans')
+ d like(xmlAutomataStatePtr)
+ d am value like(xmlAutomataPtr)
+ d from value like(xmlAutomataStatePtr)
+ d to value like(xmlAutomataStatePtr)
+ d token * value options(*string) const xmlChar *
+ d token2 * value options(*string) const xmlChar *
+ d data * value options(*string) void *
+
+ d xmlAutomataNewCountTrans...
+ d pr extproc('xmlAutomataNewCountTrans')
+ d like(xmlAutomataStatePtr)
+ d am value like(xmlAutomataPtr)
+ d from value like(xmlAutomataStatePtr)
+ d to value like(xmlAutomataStatePtr)
+ d token * value options(*string) const xmlChar *
+ d min value like(xmlCint)
+ d max value like(xmlCint)
+ d data * value options(*string) void *
+
+ d xmlAutomataNewCountTrans2...
+ d pr extproc('xmlAutomataNewCountTrans2')
+ d like(xmlAutomataStatePtr)
+ d am value like(xmlAutomataPtr)
+ d from value like(xmlAutomataStatePtr)
+ d to value like(xmlAutomataStatePtr)
+ d token * value options(*string) const xmlChar *
+ d token2 * value options(*string) const xmlChar *
+ d min value like(xmlCint)
+ d max value like(xmlCint)
+ d data * value options(*string) void *
+
+ d xmlAutomataNewOnceTrans...
+ d pr extproc('xmlAutomataNewOnceTrans')
+ d like(xmlAutomataStatePtr)
+ d am value like(xmlAutomataPtr)
+ d from value like(xmlAutomataStatePtr)
+ d to value like(xmlAutomataStatePtr)
+ d token * value options(*string) const xmlChar *
+ d min value like(xmlCint)
+ d max value like(xmlCint)
+ d data * value options(*string) void *
+
+ d xmlAutomataNewOnceTrans2...
+ d pr extproc('xmlAutomataNewOnceTrans2')
+ d like(xmlAutomataStatePtr)
+ d am value like(xmlAutomataPtr)
+ d from value like(xmlAutomataStatePtr)
+ d to value like(xmlAutomataStatePtr)
+ d token * value options(*string) const xmlChar *
+ d token2 * value options(*string) const xmlChar *
+ d min value like(xmlCint)
+ d max value like(xmlCint)
+ d data * value options(*string) void *
+
+ d xmlAutomataNewAllTrans...
+ d pr extproc('xmlAutomataNewAllTrans')
+ d like(xmlAutomataStatePtr)
+ d am value like(xmlAutomataPtr)
+ d from value like(xmlAutomataStatePtr)
+ d to value like(xmlAutomataStatePtr)
+ d lax value like(xmlCint)
+
+ d xmlAutomataNewEpsilon...
+ d pr extproc('xmlAutomataNewEpsilon')
+ d like(xmlAutomataStatePtr)
+ d am value like(xmlAutomataPtr)
+ d from value like(xmlAutomataStatePtr)
+ d to value like(xmlAutomataStatePtr)
+
+ d xmlAutomataNewCountedTrans...
+ d pr extproc('xmlAutomataNewCountedTrans')
+ d like(xmlAutomataStatePtr)
+ d am value like(xmlAutomataPtr)
+ d from value like(xmlAutomataStatePtr)
+ d to value like(xmlAutomataStatePtr)
+ d counter value like(xmlCint)
+
+ d xmlAutomataNewCounterTrans...
+ d pr extproc('xmlAutomataNewCounterTrans')
+ d like(xmlAutomataStatePtr)
+ d am value like(xmlAutomataPtr)
+ d from value like(xmlAutomataStatePtr)
+ d to value like(xmlAutomataStatePtr)
+ d counter value like(xmlCint)
+
+ d xmlAutomataNewCounter...
+ d pr extproc('xmlAutomataNewCounter')
+ d like(xmlCint)
+ d am value like(xmlAutomataPtr)
+ d min value like(xmlCint)
+ d max value like(xmlCint)
+
+ d xmlAutomataCompile...
+ d pr extproc('xmlAutomataCompile')
+ d like(xmlRegexpPtr)
+ d am value like(xmlAutomataPtr)
+
+ d xmlAutomataIsDeterminist...
+ d pr extproc('xmlAutomataIsDeterminist')
+ d like(xmlCint)
+ d am value like(xmlAutomataPtr)
+
+ /endif AUTOMATA_ENABLED
+ /endif LIBXML_REGEXP_ENABLD
+ /endif XML_AUTOMATA_H__
diff --git a/libxml2/os400/libxmlrpg/xmlerror.rpgle b/libxml2/os400/libxmlrpg/xmlerror.rpgle
new file mode 100644
index 0000000..6688b37
--- /dev/null
+++ b/libxml2/os400/libxmlrpg/xmlerror.rpgle
@@ -0,0 +1,1686 @@
+ * Summary: error handling
+ * Description: the API used to report errors
+ *
+ * Copy: See Copyright for the status of this software.
+ *
+ * Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A.
+
+ /if not defined(XML_ERROR_H__)
+ /define XML_ERROR_H__
+
+ /include "libxmlrpg/xmlTypesC"
+ /include "libxmlrpg/parser"
+
+ * xmlErrorLevel:
+ *
+ * Indicates the level of an error
+
+ d xmlErrorLevel s based(######typedef######)
+ d like(xmlCenum)
+ d XML_ERR_NONE c 0
+ d XML_ERR_WARNING... A simple warning
+ d c 1
+ d XML_ERR_ERROR c 2 A recoverable error
+ d XML_ERR_FATAL c 3 A fatal error
+
+ * xmlErrorDomain:
+ *
+ * Indicates where an error may have come from
+
+ d xmlErrorDomain s based(######typedef######)
+ d like(xmlCenum)
+ d XML_FROM_NONE c 0
+ d XML_FROM_PARSER... XML parser
+ d c 1
+ d XML_FROM_TREE c 2 Tree module
+ d XML_FROM_NAMESPACE... XML Namespace module
+ d c 3
+ d XML_FROM_DTD c 4 DTD validation
+ d XML_FROM_HTML c 5 HTML parser
+ d XML_FROM_MEMORY... Memory allocator
+ d c 6
+ d XML_FROM_OUTPUT... serialization code
+ d c 7
+ d XML_FROM_IO c 8 Input/Output stack
+ d XML_FROM_FTP c 9 FTP module
+ d XML_FROM_HTTP c 10 HTTP module
+ d XML_FROM_XINCLUDE... XInclude processing
+ d c 11
+ d XML_FROM_XPATH... XPath module
+ d c 12
+ d XML_FROM_XPOINTER... XPointer module
+ d c 13
+ d XML_FROM_REGEXP... Regexp module
+ d c 14
+ d XML_FROM_DATATYPE... W3C XML Schm Dtatype
+ d c 15
+ d XML_FROM_SCHEMASP... W3C XML Schm parser
+ d c 16
+ d XML_FROM_SCHEMASV... W3C XML Schm valid.
+ d c 17
+ d XML_FROM_RELAXNGP... Relax-NG parser
+ d c 18
+ d XML_FROM_RELAXNGV... Relax-NG validator
+ d c 19
+ d XML_FROM_CATALOG... Catalog module
+ d c 20
+ d XML_FROM_C14N c 21 Canonicalization
+ d XML_FROM_XSLT c 22 Engine from libxslt
+ d XML_FROM_VALID... DTD valid. w/ ctxt
+ d c 23
+ d XML_FROM_CHECK... Error check module
+ d c 24
+ d XML_FROM_WRITER... xmlwriter module
+ d c 25
+ d XML_FROM_MODULE... Dyn. loaded module
+ d c 26
+ d XML_FROM_I18N c 27 Mod hdlg char conv
+ d XML_FROM_SCHEMATRONV... Schematron valid
+ d c 28
+ d XML_FROM_BUFFER... Buffers module
+ d c 29
+ d XML_FROM_URI c 30 URI module
+
+ * xmlError:
+ *
+ * An XML Error instance.
+
+ d xmlErrorPtr s * based(######typedef######)
+
+ d xmlError ds based(xmlErrorPtr)
+ d align qualified
+ d domain like(xmlCint) Libpart raising err
+ d code like(xmlCint) Error code
+ d message * char *
+ d level like(xmlErrorLevel) Error severity
+ d file * File name
+ d line like(xmlCint) Line number
+ d str1 * char *
+ d str2 * char *
+ d str3 * char *
+ d int1 like(xmlCint) Extra number info
+ d int2 like(xmlCint) Error column
+ d ctxt * void *
+ d node * void *
+
+ * xmlParserError:
+ *
+ * This is an error that the XML (or HTML) parser can generate
+
+ d xmlParserErrors...
+ d s based(######typedef######)
+ d like(xmlCenum)
+ d XML_ERR_OK c 0
+ d XML_ERR_INTERNAL_ERROR...
+ d c 1
+ d XML_ERR_NO_MEMORY...
+ d c 2
+ d XML_ERR_DOCUMENT_START...
+ d c 3
+ d XML_ERR_DOCUMENT_EMPTY...
+ d c 4
+ d XML_ERR_DOCUMENT_END...
+ d c 5
+ d XML_ERR_INVALID_HEX_CHARREF...
+ d c 6
+ d XML_ERR_INVALID_DEC_CHARREF...
+ d c 7
+ d XML_ERR_INVALID_CHARREF...
+ d c 8
+ d XML_ERR_INVALID_CHAR...
+ d c 9
+ d XML_ERR_CHARREF_AT_EOF...
+ d c 10
+ d XML_ERR_CHARREF_IN_PROLOG...
+ d c 11
+ d XML_ERR_CHARREF_IN_EPILOG...
+ d c 12
+ d XML_ERR_CHARREF_IN_DTD...
+ d c 13
+ d XML_ERR_ENTITYREF_AT_EOF...
+ d c 14
+ d XML_ERR_ENTITYREF_IN_PROLOG...
+ d c 15
+ d XML_ERR_ENTITYREF_IN_EPILOG...
+ d c 16
+ d XML_ERR_ENTITYREF_IN_DTD...
+ d c 17
+ d XML_ERR_PEREF_AT_EOF...
+ d c 18
+ d XML_ERR_PEREF_IN_PROLOG...
+ d c 19
+ d XML_ERR_PEREF_IN_EPILOG...
+ d c 20
+ d XML_ERR_PEREF_IN_INT_SUBSET...
+ d c 21
+ d XML_ERR_ENTITYREF_NO_NAME...
+ d c 22
+ d XML_ERR_ENTITYREF_SEMICOL_MISSING...
+ d c 23
+ d XML_ERR_PEREF_NO_NAME...
+ d c 24
+ d XML_ERR_PEREF_SEMICOL_MISSING...
+ d c 25
+ d XML_ERR_UNDECLARED_ENTITY...
+ d c 26
+ d XML_WAR_UNDECLARED_ENTITY...
+ d c 27
+ d XML_ERR_UNPARSED_ENTITY...
+ d c 28
+ d XML_ERR_ENTITY_IS_EXTERNAL...
+ d c 29
+ d XML_ERR_ENTITY_IS_PARAMETER...
+ d c 30
+ d XML_ERR_UNKNOWN_ENCODING...
+ d c 31
+ d XML_ERR_UNSUPPORTED_ENCODING...
+ d c 32
+ d XML_ERR_STRING_NOT_STARTED...
+ d c 33
+ d XML_ERR_STRING_NOT_CLOSED...
+ d c 34
+ d XML_ERR_NS_DECL_ERROR...
+ d c 35
+ d XML_ERR_ENTITY_NOT_STARTED...
+ d c 36
+ d XML_ERR_ENTITY_NOT_FINISHED...
+ d c 37
+ d XML_ERR_LT_IN_ATTRIBUTE...
+ d c 38
+ d XML_ERR_ATTRIBUTE_NOT_STARTED...
+ d c 39
+ d XML_ERR_ATTRIBUTE_NOT_FINISHED...
+ d c 40
+ d XML_ERR_ATTRIBUTE_WITHOUT_VALUE...
+ d c 41
+ d XML_ERR_ATTRIBUTE_REDEFINED...
+ d c 42
+ d XML_ERR_LITERAL_NOT_STARTED...
+ d c 43
+ d XML_ERR_LITERAL_NOT_FINISHED...
+ d c 44
+ d XML_ERR_COMMENT_NOT_FINISHED...
+ d c 45
+ d XML_ERR_PI_NOT_STARTED...
+ d c 46
+ d XML_ERR_PI_NOT_FINISHED...
+ d c 47
+ d XML_ERR_NOTATION_NOT_STARTED...
+ d c 48
+ d XML_ERR_NOTATION_NOT_FINISHED...
+ d c 49
+ d XML_ERR_ATTLIST_NOT_STARTED...
+ d c 50
+ d XML_ERR_ATTLIST_NOT_FINISHED...
+ d c 51
+ d XML_ERR_MIXED_NOT_STARTED...
+ d c 52
+ d XML_ERR_MIXED_NOT_FINISHED...
+ d c 53
+ d XML_ERR_ELEMCONTENT_NOT_STARTED...
+ d c 54
+ d XML_ERR_ELEMCONTENT_NOT_FINISHED...
+ d c 55
+ d XML_ERR_XMLDECL_NOT_STARTED...
+ d c 56
+ d XML_ERR_XMLDECL_NOT_FINISHED...
+ d c 57
+ d XML_ERR_CONDSEC_NOT_STARTED...
+ d c 58
+ d XML_ERR_CONDSEC_NOT_FINISHED...
+ d c 59
+ d XML_ERR_EXT_SUBSET_NOT_FINISHED...
+ d c 60
+ d XML_ERR_DOCTYPE_NOT_FINISHED...
+ d c 61
+ d XML_ERR_MISPLACED_CDATA_END...
+ d c 62
+ d XML_ERR_CDATA_NOT_FINISHED...
+ d c 63
+ d XML_ERR_RESERVED_XML_NAME...
+ d c 64
+ d XML_ERR_SPACE_REQUIRED...
+ d c 65
+ d XML_ERR_SEPARATOR_REQUIRED...
+ d c 66
+ d XML_ERR_NMTOKEN_REQUIRED...
+ d c 67
+ d XML_ERR_NAME_REQUIRED...
+ d c 68
+ d XML_ERR_PCDATA_REQUIRED...
+ d c 69
+ d XML_ERR_URI_REQUIRED...
+ d c 70
+ d XML_ERR_PUBID_REQUIRED...
+ d c 71
+ d XML_ERR_LT_REQUIRED...
+ d c 72
+ d XML_ERR_GT_REQUIRED...
+ d c 73
+ d XML_ERR_LTSLASH_REQUIRED...
+ d c 74
+ d XML_ERR_EQUAL_REQUIRED...
+ d c 75
+ d XML_ERR_TAG_NAME_MISMATCH...
+ d c 76
+ d XML_ERR_TAG_NOT_FINISHED...
+ d c 77
+ d XML_ERR_STANDALONE_VALUE...
+ d c 78
+ d XML_ERR_ENCODING_NAME...
+ d c 79
+ d XML_ERR_HYPHEN_IN_COMMENT...
+ d c 80
+ d XML_ERR_INVALID_ENCODING...
+ d c 81
+ d XML_ERR_EXT_ENTITY_STANDALONE...
+ d c 82
+ d XML_ERR_CONDSEC_INVALID...
+ d c 83
+ d XML_ERR_VALUE_REQUIRED...
+ d c 84
+ d XML_ERR_NOT_WELL_BALANCED...
+ d c 85
+ d XML_ERR_EXTRA_CONTENT...
+ d c 86
+ d XML_ERR_ENTITY_CHAR_ERROR...
+ d c 87
+ d XML_ERR_ENTITY_PE_INTERNAL...
+ d c 88
+ d XML_ERR_ENTITY_LOOP...
+ d c 89
+ d XML_ERR_ENTITY_BOUNDARY...
+ d c 90
+ d XML_ERR_INVALID_URI...
+ d c 91
+ d XML_ERR_URI_FRAGMENT...
+ d c 92
+ d XML_WAR_CATALOG_PI...
+ d c 93
+ d XML_ERR_NO_DTD...
+ d c 94
+ d XML_ERR_CONDSEC_INVALID_KEYWORD...
+ d c 95
+ d XML_ERR_VERSION_MISSING...
+ d c 96
+ d XML_WAR_UNKNOWN_VERSION...
+ d c 97
+ d XML_WAR_LANG_VALUE...
+ d c 98
+ d XML_WAR_NS_URI...
+ d c 99
+ d XML_WAR_NS_URI_RELATIVE...
+ d c 100
+ d XML_ERR_MISSING_ENCODING...
+ d c 101
+ d XML_WAR_SPACE_VALUE...
+ d c 102
+ d XML_ERR_NOT_STANDALONE...
+ d c 103
+ d XML_ERR_ENTITY_PROCESSING...
+ d c 104
+ d XML_ERR_NOTATION_PROCESSING...
+ d c 105
+ d XML_WAR_NS_COLUMN...
+ d c 106
+ d XML_WAR_ENTITY_REDEFINED...
+ d c 107
+ d XML_ERR_UNKNOWN_VERSION...
+ d c 108
+ d XML_ERR_VERSION_MISMATCH...
+ d c 109
+ d XML_ERR_NAME_TOO_LONG...
+ d c 110
+ d XML_ERR_USER_STOP...
+ d c 111
+ d XML_NS_ERR_XML_NAMESPACE...
+ d c 200
+ d XML_NS_ERR_UNDEFINED_NAMESPACE...
+ d c 201
+ d XML_NS_ERR_QNAME...
+ d c 202
+ d XML_NS_ERR_ATTRIBUTE_REDEFINED...
+ d c 203
+ d XML_NS_ERR_EMPTY...
+ d c 204
+ d XML_NS_ERR_COLON...
+ d c 205
+ d XML_DTD_ATTRIBUTE_DEFAULT...
+ d c 500
+ d XML_DTD_ATTRIBUTE_REDEFINED...
+ d c 501
+ d XML_DTD_ATTRIBUTE_VALUE...
+ d c 502
+ d XML_DTD_CONTENT_ERROR...
+ d c 503
+ d XML_DTD_CONTENT_MODEL...
+ d c 504
+ d XML_DTD_CONTENT_NOT_DETERMINIST...
+ d c 505
+ d XML_DTD_DIFFERENT_PREFIX...
+ d c 506
+ d XML_DTD_ELEM_DEFAULT_NAMESPACE...
+ d c 507
+ d XML_DTD_ELEM_NAMESPACE...
+ d c 508
+ d XML_DTD_ELEM_REDEFINED...
+ d c 509
+ d XML_DTD_EMPTY_NOTATION...
+ d c 510
+ d XML_DTD_ENTITY_TYPE...
+ d c 511
+ d XML_DTD_ID_FIXED...
+ d c 512
+ d XML_DTD_ID_REDEFINED...
+ d c 513
+ d XML_DTD_ID_SUBSET...
+ d c 514
+ d XML_DTD_INVALID_CHILD...
+ d c 515
+ d XML_DTD_INVALID_DEFAULT...
+ d c 516
+ d XML_DTD_LOAD_ERROR...
+ d c 517
+ d XML_DTD_MISSING_ATTRIBUTE...
+ d c 518
+ d XML_DTD_MIXED_CORRUPT...
+ d c 519
+ d XML_DTD_MULTIPLE_ID...
+ d c 520
+ d XML_DTD_NO_DOC...
+ d c 521
+ d XML_DTD_NO_DTD...
+ d c 522
+ d XML_DTD_NO_ELEM_NAME...
+ d c 523
+ d XML_DTD_NO_PREFIX...
+ d c 524
+ d XML_DTD_NO_ROOT...
+ d c 525
+ d XML_DTD_NOTATION_REDEFINED...
+ d c 526
+ d XML_DTD_NOTATION_VALUE...
+ d c 527
+ d XML_DTD_NOT_EMPTY...
+ d c 528
+ d XML_DTD_NOT_PCDATA...
+ d c 529
+ d XML_DTD_NOT_STANDALONE...
+ d c 530
+ d XML_DTD_ROOT_NAME...
+ d c 531
+ d XML_DTD_STANDALONE_WHITE_SPACE...
+ d c 532
+ d XML_DTD_UNKNOWN_ATTRIBUTE...
+ d c 533
+ d XML_DTD_UNKNOWN_ELEM...
+ d c 534
+ d XML_DTD_UNKNOWN_ENTITY...
+ d c 535
+ d XML_DTD_UNKNOWN_ID...
+ d c 536
+ d XML_DTD_UNKNOWN_NOTATION...
+ d c 537
+ d XML_DTD_STANDALONE_DEFAULTED...
+ d c 538
+ d XML_DTD_XMLID_VALUE...
+ d c 539
+ d XML_DTD_XMLID_TYPE...
+ d c 540
+ d XML_DTD_DUP_TOKEN...
+ d c 541
+ d XML_HTML_STRUCURE_ERROR...
+ d c 800
+ d XML_HTML_UNKNOWN_TAG...
+ d c 801
+ d XML_RNGP_ANYNAME_ATTR_ANCESTOR...
+ d c 1000
+ d XML_RNGP_ATTR_CONFLICT...
+ d c 1001
+ d XML_RNGP_ATTRIBUTE_CHILDREN...
+ d c 1002
+ d XML_RNGP_ATTRIBUTE_CONTENT...
+ d c 1003
+ d XML_RNGP_ATTRIBUTE_EMPTY...
+ d c 1004
+ d XML_RNGP_ATTRIBUTE_NOOP...
+ d c 1005
+ d XML_RNGP_CHOICE_CONTENT...
+ d c 1006
+ d XML_RNGP_CHOICE_EMPTY...
+ d c 1007
+ d XML_RNGP_CREATE_FAILURE...
+ d c 1008
+ d XML_RNGP_DATA_CONTENT...
+ d c 1009
+ d XML_RNGP_DEF_CHOICE_AND_INTERLEAVE...
+ d c 1010
+ d XML_RNGP_DEFINE_CREATE_FAILED...
+ d c 1011
+ d XML_RNGP_DEFINE_EMPTY...
+ d c 1012
+ d XML_RNGP_DEFINE_MISSING...
+ d c 1013
+ d XML_RNGP_DEFINE_NAME_MISSING...
+ d c 1014
+ d XML_RNGP_ELEM_CONTENT_EMPTY...
+ d c 1015
+ d XML_RNGP_ELEM_CONTENT_ERROR...
+ d c 1016
+ d XML_RNGP_ELEMENT_EMPTY...
+ d c 1017
+ d XML_RNGP_ELEMENT_CONTENT...
+ d c 1018
+ d XML_RNGP_ELEMENT_NAME...
+ d c 1019
+ d XML_RNGP_ELEMENT_NO_CONTENT...
+ d c 1020
+ d XML_RNGP_ELEM_TEXT_CONFLICT...
+ d c 1021
+ d XML_RNGP_EMPTY...
+ d c 1022
+ d XML_RNGP_EMPTY_CONSTRUCT...
+ d c 1023
+ d XML_RNGP_EMPTY_CONTENT...
+ d c 1024
+ d XML_RNGP_EMPTY_NOT_EMPTY...
+ d c 1025
+ d XML_RNGP_ERROR_TYPE_LIB...
+ d c 1026
+ d XML_RNGP_EXCEPT_EMPTY...
+ d c 1027
+ d XML_RNGP_EXCEPT_MISSING...
+ d c 1028
+ d XML_RNGP_EXCEPT_MULTIPLE...
+ d c 1029
+ d XML_RNGP_EXCEPT_NO_CONTENT...
+ d c 1030
+ d XML_RNGP_EXTERNALREF_EMTPY...
+ d c 1031
+ d XML_RNGP_EXTERNAL_REF_FAILURE...
+ d c 1032
+ d XML_RNGP_EXTERNALREF_RECURSE...
+ d c 1033
+ d XML_RNGP_FORBIDDEN_ATTRIBUTE...
+ d c 1034
+ d XML_RNGP_FOREIGN_ELEMENT...
+ d c 1035
+ d XML_RNGP_GRAMMAR_CONTENT...
+ d c 1036
+ d XML_RNGP_GRAMMAR_EMPTY...
+ d c 1037
+ d XML_RNGP_GRAMMAR_MISSING...
+ d c 1038
+ d XML_RNGP_GRAMMAR_NO_START...
+ d c 1039
+ d XML_RNGP_GROUP_ATTR_CONFLICT...
+ d c 1040
+ d XML_RNGP_HREF_ERROR...
+ d c 1041
+ d XML_RNGP_INCLUDE_EMPTY...
+ d c 1042
+ d XML_RNGP_INCLUDE_FAILURE...
+ d c 1043
+ d XML_RNGP_INCLUDE_RECURSE...
+ d c 1044
+ d XML_RNGP_INTERLEAVE_ADD...
+ d c 1045
+ d XML_RNGP_INTERLEAVE_CREATE_FAILED...
+ d c 1046
+ d XML_RNGP_INTERLEAVE_EMPTY...
+ d c 1047
+ d XML_RNGP_INTERLEAVE_NO_CONTENT...
+ d c 1048
+ d XML_RNGP_INVALID_DEFINE_NAME...
+ d c 1049
+ d XML_RNGP_INVALID_URI...
+ d c 1050
+ d XML_RNGP_INVALID_VALUE...
+ d c 1051
+ d XML_RNGP_MISSING_HREF...
+ d c 1052
+ d XML_RNGP_NAME_MISSING...
+ d c 1053
+ d XML_RNGP_NEED_COMBINE...
+ d c 1054
+ d XML_RNGP_NOTALLOWED_NOT_EMPTY...
+ d c 1055
+ d XML_RNGP_NSNAME_ATTR_ANCESTOR...
+ d c 1056
+ d XML_RNGP_NSNAME_NO_NS...
+ d c 1057
+ d XML_RNGP_PARAM_FORBIDDEN...
+ d c 1058
+ d XML_RNGP_PARAM_NAME_MISSING...
+ d c 1059
+ d XML_RNGP_PARENTREF_CREATE_FAILED...
+ d c 1060
+ d XML_RNGP_PARENTREF_NAME_INVALID...
+ d c 1061
+ d XML_RNGP_PARENTREF_NO_NAME...
+ d c 1062
+ d XML_RNGP_PARENTREF_NO_PARENT...
+ d c 1063
+ d XML_RNGP_PARENTREF_NOT_EMPTY...
+ d c 1064
+ d XML_RNGP_PARSE_ERROR...
+ d c 1065
+ d XML_RNGP_PAT_ANYNAME_EXCEPT_ANYNAME...
+ d c 1066
+ d XML_RNGP_PAT_ATTR_ATTR...
+ d c 1067
+ d XML_RNGP_PAT_ATTR_ELEM...
+ d c 1068
+ d XML_RNGP_PAT_DATA_EXCEPT_ATTR...
+ d c 1069
+ d XML_RNGP_PAT_DATA_EXCEPT_ELEM...
+ d c 1070
+ d XML_RNGP_PAT_DATA_EXCEPT_EMPTY...
+ d c 1071
+ d XML_RNGP_PAT_DATA_EXCEPT_GROUP...
+ d c 1072
+ d XML_RNGP_PAT_DATA_EXCEPT_INTERLEAVE...
+ d c 1073
+ d XML_RNGP_PAT_DATA_EXCEPT_LIST...
+ d c 1074
+ d XML_RNGP_PAT_DATA_EXCEPT_ONEMORE...
+ d c 1075
+ d XML_RNGP_PAT_DATA_EXCEPT_REF...
+ d c 1076
+ d XML_RNGP_PAT_DATA_EXCEPT_TEXT...
+ d c 1077
+ d XML_RNGP_PAT_LIST_ATTR...
+ d c 1078
+ d XML_RNGP_PAT_LIST_ELEM...
+ d c 1079
+ d XML_RNGP_PAT_LIST_INTERLEAVE...
+ d c 1080
+ d XML_RNGP_PAT_LIST_LIST...
+ d c 1081
+ d XML_RNGP_PAT_LIST_REF...
+ d c 1082
+ d XML_RNGP_PAT_LIST_TEXT...
+ d c 1083
+ d XML_RNGP_PAT_NSNAME_EXCEPT_ANYNAME...
+ d c 1084
+ d XML_RNGP_PAT_NSNAME_EXCEPT_NSNAME...
+ d c 1085
+ d XML_RNGP_PAT_ONEMORE_GROUP_ATTR...
+ d c 1086
+ d XML_RNGP_PAT_ONEMORE_INTERLEAVE_ATTR...
+ d c 1087
+ d XML_RNGP_PAT_START_ATTR...
+ d c 1088
+ d XML_RNGP_PAT_START_DATA...
+ d c 1089
+ d XML_RNGP_PAT_START_EMPTY...
+ d c 1090
+ d XML_RNGP_PAT_START_GROUP...
+ d c 1091
+ d XML_RNGP_PAT_START_INTERLEAVE...
+ d c 1092
+ d XML_RNGP_PAT_START_LIST...
+ d c 1093
+ d XML_RNGP_PAT_START_ONEMORE...
+ d c 1094
+ d XML_RNGP_PAT_START_TEXT...
+ d c 1095
+ d XML_RNGP_PAT_START_VALUE...
+ d c 1096
+ d XML_RNGP_PREFIX_UNDEFINED...
+ d c 1097
+ d XML_RNGP_REF_CREATE_FAILED...
+ d c 1098
+ d XML_RNGP_REF_CYCLE...
+ d c 1099
+ d XML_RNGP_REF_NAME_INVALID...
+ d c 1100
+ d XML_RNGP_REF_NO_DEF...
+ d c 1101
+ d XML_RNGP_REF_NO_NAME...
+ d c 1102
+ d XML_RNGP_REF_NOT_EMPTY...
+ d c 1103
+ d XML_RNGP_START_CHOICE_AND_INTERLEAVE...
+ d c 1104
+ d XML_RNGP_START_CONTENT...
+ d c 1105
+ d XML_RNGP_START_EMPTY...
+ d c 1106
+ d XML_RNGP_START_MISSING...
+ d c 1107
+ d XML_RNGP_TEXT_EXPECTED...
+ d c 1108
+ d XML_RNGP_TEXT_HAS_CHILD...
+ d c 1109
+ d XML_RNGP_TYPE_MISSING...
+ d c 1110
+ d XML_RNGP_TYPE_NOT_FOUND...
+ d c 1111
+ d XML_RNGP_TYPE_VALUE...
+ d c 1112
+ d XML_RNGP_UNKNOWN_ATTRIBUTE...
+ d c 1113
+ d XML_RNGP_UNKNOWN_COMBINE...
+ d c 1114
+ d XML_RNGP_UNKNOWN_CONSTRUCT...
+ d c 1115
+ d XML_RNGP_UNKNOWN_TYPE_LIB...
+ d c 1116
+ d XML_RNGP_URI_FRAGMENT...
+ d c 1117
+ d XML_RNGP_URI_NOT_ABSOLUTE...
+ d c 1118
+ d XML_RNGP_VALUE_EMPTY...
+ d c 1119
+ d XML_RNGP_VALUE_NO_CONTENT...
+ d c 1120
+ d XML_RNGP_XMLNS_NAME...
+ d c 1121
+ d XML_RNGP_XML_NS...
+ d c 1122
+ d XML_XPATH_EXPRESSION_OK...
+ d c 1200
+ d XML_XPATH_NUMBER_ERROR...
+ d c 1201
+ d XML_XPATH_UNFINISHED_LITERAL_ERROR...
+ d c 1202
+ d XML_XPATH_START_LITERAL_ERROR...
+ d c 1203
+ d XML_XPATH_VARIABLE_REF_ERROR...
+ d c 1204
+ d XML_XPATH_UNDEF_VARIABLE_ERROR...
+ d c 1205
+ d XML_XPATH_INVALID_PREDICATE_ERROR...
+ d c 1206
+ d XML_XPATH_EXPR_ERROR...
+ d c 1207
+ d XML_XPATH_UNCLOSED_ERROR...
+ d c 1208
+ d XML_XPATH_UNKNOWN_FUNC_ERROR...
+ d c 1209
+ d XML_XPATH_INVALID_OPERAND...
+ d c 1210
+ d XML_XPATH_INVALID_TYPE...
+ d c 1211
+ d XML_XPATH_INVALID_ARITY...
+ d c 1212
+ d XML_XPATH_INVALID_CTXT_SIZE...
+ d c 1213
+ d XML_XPATH_INVALID_CTXT_POSITION...
+ d c 1214
+ d XML_XPATH_MEMORY_ERROR...
+ d c 1215
+ d XML_XPTR_SYNTAX_ERROR...
+ d c 1216
+ d XML_XPTR_RESOURCE_ERROR...
+ d c 1217
+ d XML_XPTR_SUB_RESOURCE_ERROR...
+ d c 1218
+ d XML_XPATH_UNDEF_PREFIX_ERROR...
+ d c 1219
+ d XML_XPATH_ENCODING_ERROR...
+ d c 1220
+ d XML_XPATH_INVALID_CHAR_ERROR...
+ d c 1231
+ d XML_TREE_INVALID_HEX...
+ d c 1300
+ d XML_TREE_INVALID_DEC...
+ d c 1301
+ d XML_TREE_UNTERMINATED_ENTITY...
+ d c 1302
+ d XML_TREE_NOT_UTF8...
+ d c 1303
+ d XML_SAVE_NOT_UTF8...
+ d c 1400
+ d XML_SAVE_CHAR_INVALID...
+ d c 1401
+ d XML_SAVE_NO_DOCTYPE...
+ d c 1402
+ d XML_SAVE_UNKNOWN_ENCODING...
+ d c 1403
+ d XML_REGEXP_COMPILE_ERROR...
+ d c 1403
+ d XML_IO_UNKNOWN...
+ d c 1500
+ d XML_IO_EACCES c 1501
+ d XML_IO_EAGAIN c 1502
+ d XML_IO_EBADF c 1503
+ d XML_IO_EBADMSG...
+ d c 1504
+ d XML_IO_EBUSY c 1505
+ d XML_IO_ECANCELED...
+ d c 1506
+ d XML_IO_ECHILD c 1507
+ d XML_IO_EDEADLK...
+ d c 1508
+ d XML_IO_EDOM c 1509
+ d XML_IO_EEXIST c 1510
+ d XML_IO_EFAULT c 1511
+ d XML_IO_EFBIG c 1512
+ d XML_IO_EINPROGRESS...
+ d c 1513
+ d XML_IO_EINTR c 1514
+ d XML_IO_EINVAL c 1515
+ d XML_IO_EIO c 1516
+ d XML_IO_EISDIR c 1517
+ d XML_IO_EMFILE c 1518
+ d XML_IO_EMLINK c 1519
+ d XML_IO_EMSGSIZE...
+ d c 1520
+ d XML_IO_ENAMETOOLONG...
+ d c 1521
+ d XML_IO_ENFILE c 1522
+ d XML_IO_ENODEV c 1523
+ d XML_IO_ENOENT c 1524
+ d XML_IO_ENOEXEC...
+ d c 1525
+ d XML_IO_ENOLCK c 1526
+ d XML_IO_ENOMEM c 1527
+ d XML_IO_ENOSPC c 1528
+ d XML_IO_ENOSYS c 1529
+ d XML_IO_ENOTDIR...
+ d c 1530
+ d XML_IO_ENOTEMPTY...
+ d c 1531
+ d XML_IO_ENOTSUP...
+ d c 1532
+ d XML_IO_ENOTTY c 1533
+ d XML_IO_ENXIO c 1534
+ d XML_IO_EPERM c 1535
+ d XML_IO_EPIPE c 1536
+ d XML_IO_ERANGE c 1537
+ d XML_IO_EROFS c 1538
+ d XML_IO_ESPIPE c 1539
+ d XML_IO_ESRCH c 1540
+ d XML_IO_ETIMEDOUT...
+ d c 1541
+ d XML_IO_EXDEV c 1542
+ d XML_IO_NETWORK_ATTEMPT...
+ d c 1543
+ d XML_IO_ENCODER...
+ d c 1544
+ d XML_IO_FLUSH c 1545
+ d XML_IO_WRITE c 1546
+ d XML_IO_NO_INPUT...
+ d c 1547
+ d XML_IO_BUFFER_FULL...
+ d c 1548
+ d XML_IO_LOAD_ERROR...
+ d c 1549
+ d XML_IO_ENOTSOCK...
+ d c 1550
+ d XML_IO_EISCONN...
+ d c 1551
+ d XML_IO_ECONNREFUSED...
+ d c 1552
+ d XML_IO_ENETUNREACH...
+ d c 1553
+ d XML_IO_EADDRINUSE...
+ d c 1554
+ d XML_IO_EALREADY...
+ d c 1555
+ d XML_IO_EAFNOSUPPORT...
+ d c 1556
+ d XML_XINCLUDE_RECURSION...
+ d c 1600
+ d XML_XINCLUDE_PARSE_VALUE...
+ d c 1601
+ d XML_XINCLUDE_ENTITY_DEF_MISMATCH...
+ d c 1602
+ d XML_XINCLUDE_NO_HREF...
+ d c 1603
+ d XML_XINCLUDE_NO_FALLBACK...
+ d c 1604
+ d XML_XINCLUDE_HREF_URI...
+ d c 1605
+ d XML_XINCLUDE_TEXT_FRAGMENT...
+ d c 1606
+ d XML_XINCLUDE_TEXT_DOCUMENT...
+ d c 1607
+ d XML_XINCLUDE_INVALID_CHAR...
+ d c 1608
+ d XML_XINCLUDE_BUILD_FAILED...
+ d c 1609
+ d XML_XINCLUDE_UNKNOWN_ENCODING...
+ d c 1610
+ d XML_XINCLUDE_MULTIPLE_ROOT...
+ d c 1611
+ d XML_XINCLUDE_XPTR_FAILED...
+ d c 1612
+ d XML_XINCLUDE_XPTR_RESULT...
+ d c 1613
+ d XML_XINCLUDE_INCLUDE_IN_INCLUDE...
+ d c 1614
+ d XML_XINCLUDE_FALLBACKS_IN_INCLUDE...
+ d c 1615
+ d XML_XINCLUDE_FALLBACK_NOT_IN_INCLUDE...
+ d c 1616
+ d XML_XINCLUDE_DEPRECATED_NS...
+ d c 1617
+ d XML_XINCLUDE_FRAGMENT_ID...
+ d c 1618
+ d XML_CATALOG_MISSING_ATTR...
+ d c 1650
+ d XML_CATALOG_ENTRY_BROKEN...
+ d c 1651
+ d XML_CATALOG_PREFER_VALUE...
+ d c 1652
+ d XML_CATALOG_NOT_CATALOG...
+ d c 1653
+ d XML_CATALOG_RECURSION...
+ d c 1654
+ d XML_SCHEMAP_PREFIX_UNDEFINED...
+ d c 1700
+ d XML_SCHEMAP_ATTRFORMDEFAULT_VALUE...
+ d c 1701
+ d XML_SCHEMAP_ATTRGRP_NONAME_NOREF...
+ d c 1702
+ d XML_SCHEMAP_ATTR_NONAME_NOREF...
+ d c 1703
+ d XML_SCHEMAP_COMPLEXTYPE_NONAME_NOREF...
+ d c 1704
+ d XML_SCHEMAP_ELEMFORMDEFAULT_VALUE...
+ d c 1705
+ d XML_SCHEMAP_ELEM_NONAME_NOREF...
+ d c 1706
+ d XML_SCHEMAP_EXTENSION_NO_BASE...
+ d c 1707
+ d XML_SCHEMAP_FACET_NO_VALUE...
+ d c 1708
+ d XML_SCHEMAP_FAILED_BUILD_IMPORT...
+ d c 1709
+ d XML_SCHEMAP_GROUP_NONAME_NOREF...
+ d c 1710
+ d XML_SCHEMAP_IMPORT_NAMESPACE_NOT_URI...
+ d c 1711
+ d XML_SCHEMAP_IMPORT_REDEFINE_NSNAME...
+ d c 1712
+ d XML_SCHEMAP_IMPORT_SCHEMA_NOT_URI...
+ d c 1713
+ d XML_SCHEMAP_INVALID_BOOLEAN...
+ d c 1714
+ d XML_SCHEMAP_INVALID_ENUM...
+ d c 1715
+ d XML_SCHEMAP_INVALID_FACET...
+ d c 1716
+ d XML_SCHEMAP_INVALID_FACET_VALUE...
+ d c 1717
+ d XML_SCHEMAP_INVALID_MAXOCCURS...
+ d c 1718
+ d XML_SCHEMAP_INVALID_MINOCCURS...
+ d c 1719
+ d XML_SCHEMAP_INVALID_REF_AND_SUBTYPE...
+ d c 1720
+ d XML_SCHEMAP_INVALID_WHITE_SPACE...
+ d c 1721
+ d XML_SCHEMAP_NOATTR_NOREF...
+ d c 1722
+ d XML_SCHEMAP_NOTATION_NO_NAME...
+ d c 1723
+ d XML_SCHEMAP_NOTYPE_NOREF...
+ d c 1724
+ d XML_SCHEMAP_REF_AND_SUBTYPE...
+ d c 1725
+ d XML_SCHEMAP_RESTRICTION_NONAME_NOREF...
+ d c 1726
+ d XML_SCHEMAP_SIMPLETYPE_NONAME...
+ d c 1727
+ d XML_SCHEMAP_TYPE_AND_SUBTYPE...
+ d c 1728
+ d XML_SCHEMAP_UNKNOWN_ALL_CHILD...
+ d c 1729
+ d XML_SCHEMAP_UNKNOWN_ANYATTRIBUTE_CHILD...
+ d c 1730
+ d XML_SCHEMAP_UNKNOWN_ATTR_CHILD...
+ d c 1731
+ d XML_SCHEMAP_UNKNOWN_ATTRGRP_CHILD...
+ d c 1732
+ d XML_SCHEMAP_UNKNOWN_ATTRIBUTE_GROUP...
+ d c 1733
+ d XML_SCHEMAP_UNKNOWN_BASE_TYPE...
+ d c 1734
+ d XML_SCHEMAP_UNKNOWN_CHOICE_CHILD...
+ d c 1735
+ d XML_SCHEMAP_UNKNOWN_COMPLEXCONTENT_CHILD...
+ d c 1736
+ d XML_SCHEMAP_UNKNOWN_COMPLEXTYPE_CHILD...
+ d c 1737
+ d XML_SCHEMAP_UNKNOWN_ELEM_CHILD...
+ d c 1738
+ d XML_SCHEMAP_UNKNOWN_EXTENSION_CHILD...
+ d c 1739
+ d XML_SCHEMAP_UNKNOWN_FACET_CHILD...
+ d c 1740
+ d XML_SCHEMAP_UNKNOWN_FACET_TYPE...
+ d c 1741
+ d XML_SCHEMAP_UNKNOWN_GROUP_CHILD...
+ d c 1742
+ d XML_SCHEMAP_UNKNOWN_IMPORT_CHILD...
+ d c 1743
+ d XML_SCHEMAP_UNKNOWN_LIST_CHILD...
+ d c 1744
+ d XML_SCHEMAP_UNKNOWN_NOTATION_CHILD...
+ d c 1745
+ d XML_SCHEMAP_UNKNOWN_PROCESSCONTENT_CHILD...
+ d c 1746
+ d XML_SCHEMAP_UNKNOWN_REF...
+ d c 1747
+ d XML_SCHEMAP_UNKNOWN_RESTRICTION_CHILD...
+ d c 1748
+ d XML_SCHEMAP_UNKNOWN_SCHEMAS_CHILD...
+ d c 1749
+ d XML_SCHEMAP_UNKNOWN_SEQUENCE_CHILD...
+ d c 1750
+ d XML_SCHEMAP_UNKNOWN_SIMPLECONTENT_CHILD...
+ d c 1751
+ d XML_SCHEMAP_UNKNOWN_SIMPLETYPE_CHILD...
+ d c 1752
+ d XML_SCHEMAP_UNKNOWN_TYPE...
+ d c 1753
+ d XML_SCHEMAP_UNKNOWN_UNION_CHILD...
+ d c 1754
+ d XML_SCHEMAP_ELEM_DEFAULT_FIXED...
+ d c 1755
+ d XML_SCHEMAP_REGEXP_INVALID...
+ d c 1756
+ d XML_SCHEMAP_FAILED_LOAD...
+ d c 1757
+ d XML_SCHEMAP_NOTHING_TO_PARSE...
+ d c 1758
+ d XML_SCHEMAP_NOROOT...
+ d c 1759
+ d XML_SCHEMAP_REDEFINED_GROUP...
+ d c 1760
+ d XML_SCHEMAP_REDEFINED_TYPE...
+ d c 1761
+ d XML_SCHEMAP_REDEFINED_ELEMENT...
+ d c 1762
+ d XML_SCHEMAP_REDEFINED_ATTRGROUP...
+ d c 1763
+ d XML_SCHEMAP_REDEFINED_ATTR...
+ d c 1764
+ d XML_SCHEMAP_REDEFINED_NOTATION...
+ d c 1765
+ d XML_SCHEMAP_FAILED_PARSE...
+ d c 1766
+ d XML_SCHEMAP_UNKNOWN_PREFIX...
+ d c 1767
+ d XML_SCHEMAP_DEF_AND_PREFIX...
+ d c 1768
+ d XML_SCHEMAP_UNKNOWN_INCLUDE_CHILD...
+ d c 1769
+ d XML_SCHEMAP_INCLUDE_SCHEMA_NOT_URI...
+ d c 1770
+ d XML_SCHEMAP_INCLUDE_SCHEMA_NO_URI...
+ d c 1771
+ d XML_SCHEMAP_NOT_SCHEMA...
+ d c 1772
+ d XML_SCHEMAP_UNKNOWN_MEMBER_TYPE...
+ d c 1773
+ d XML_SCHEMAP_INVALID_ATTR_USE...
+ d c 1774
+ d XML_SCHEMAP_RECURSIVE...
+ d c 1775
+ d XML_SCHEMAP_SUPERNUMEROUS_LIST_ITEM_TYPE...
+ d c 1776
+ d XML_SCHEMAP_INVALID_ATTR_COMBINATION...
+ d c 1777
+ d XML_SCHEMAP_INVALID_ATTR_INLINE_COMBINATION...
+ d c 1778
+ d XML_SCHEMAP_MISSING_SIMPLETYPE_CHILD...
+ d c 1779
+ d XML_SCHEMAP_INVALID_ATTR_NAME...
+ d c 1780
+ d XML_SCHEMAP_REF_AND_CONTENT...
+ d c 1781
+ d XML_SCHEMAP_CT_PROPS_CORRECT_1...
+ d c 1782
+ d XML_SCHEMAP_CT_PROPS_CORRECT_2...
+ d c 1783
+ d XML_SCHEMAP_CT_PROPS_CORRECT_3...
+ d c 1784
+ d XML_SCHEMAP_CT_PROPS_CORRECT_4...
+ d c 1785
+ d XML_SCHEMAP_CT_PROPS_CORRECT_5...
+ d c 1786
+ d XML_SCHEMAP_DERIVATION_OK_RESTRICTION_1...
+ d c 1787
+ d XML_SCHEMAP_DERIVATION_OK_RESTRICTION_2_1_1...
+ d c 1788
+ d XML_SCHEMAP_DERIVATION_OK_RESTRICTION_2_1_2...
+ d c 1789
+ d XML_SCHEMAP_DERIVATION_OK_RESTRICTION_2_2...
+ d c 1790
+ d XML_SCHEMAP_DERIVATION_OK_RESTRICTION_3...
+ d c 1791
+ d XML_SCHEMAP_WILDCARD_INVALID_NS_MEMBER...
+ d c 1792
+ d XML_SCHEMAP_INTERSECTION_NOT_EXPRESSIBLE...
+ d c 1793
+ d XML_SCHEMAP_UNION_NOT_EXPRESSIBLE...
+ d c 1794
+ d XML_SCHEMAP_SRC_IMPORT_3_1...
+ d c 1795
+ d XML_SCHEMAP_SRC_IMPORT_3_2...
+ d c 1796
+ d XML_SCHEMAP_DERIVATION_OK_RESTRICTION_4_1...
+ d c 1797
+ d XML_SCHEMAP_DERIVATION_OK_RESTRICTION_4_2...
+ d c 1798
+ d XML_SCHEMAP_DERIVATION_OK_RESTRICTION_4_3...
+ d c 1799
+ d XML_SCHEMAP_COS_CT_EXTENDS_1_3...
+ d c 1800
+ d XML_SCHEMAV_NOROOT...
+ d c 1801
+ d XML_SCHEMAV_UNDECLAREDELEM...
+ d c 1802
+ d XML_SCHEMAV_NOTTOPLEVEL...
+ d c 1803
+ d XML_SCHEMAV_MISSING...
+ d c 1804
+ d XML_SCHEMAV_WRONGELEM...
+ d c 1805
+ d XML_SCHEMAV_NOTYPE...
+ d c 1806
+ d XML_SCHEMAV_NOROLLBACK...
+ d c 1807
+ d XML_SCHEMAV_ISABSTRACT...
+ d c 1808
+ d XML_SCHEMAV_NOTEMPTY...
+ d c 1809
+ d XML_SCHEMAV_ELEMCONT...
+ d c 1810
+ d XML_SCHEMAV_HAVEDEFAULT...
+ d c 1811
+ d XML_SCHEMAV_NOTNILLABLE...
+ d c 1812
+ d XML_SCHEMAV_EXTRACONTENT...
+ d c 1813
+ d XML_SCHEMAV_INVALIDATTR...
+ d c 1814
+ d XML_SCHEMAV_INVALIDELEM...
+ d c 1815
+ d XML_SCHEMAV_NOTDETERMINIST...
+ d c 1816
+ d XML_SCHEMAV_CONSTRUCT...
+ d c 1817
+ d XML_SCHEMAV_INTERNAL...
+ d c 1818
+ d XML_SCHEMAV_NOTSIMPLE...
+ d c 1819
+ d XML_SCHEMAV_ATTRUNKNOWN...
+ d c 1820
+ d XML_SCHEMAV_ATTRINVALID...
+ d c 1821
+ d XML_SCHEMAV_VALUE...
+ d c 1822
+ d XML_SCHEMAV_FACET...
+ d c 1823
+ d XML_SCHEMAV_CVC_DATATYPE_VALID_1_2_1...
+ d c 1824
+ d XML_SCHEMAV_CVC_DATATYPE_VALID_1_2_2...
+ d c 1825
+ d XML_SCHEMAV_CVC_DATATYPE_VALID_1_2_3...
+ d c 1826
+ d XML_SCHEMAV_CVC_TYPE_3_1_1...
+ d c 1827
+ d XML_SCHEMAV_CVC_TYPE_3_1_2...
+ d c 1828
+ d XML_SCHEMAV_CVC_FACET_VALID...
+ d c 1829
+ d XML_SCHEMAV_CVC_LENGTH_VALID...
+ d c 1830
+ d XML_SCHEMAV_CVC_MINLENGTH_VALID...
+ d c 1831
+ d XML_SCHEMAV_CVC_MAXLENGTH_VALID...
+ d c 1832
+ d XML_SCHEMAV_CVC_MININCLUSIVE_VALID...
+ d c 1833
+ d XML_SCHEMAV_CVC_MAXINCLUSIVE_VALID...
+ d c 1834
+ d XML_SCHEMAV_CVC_MINEXCLUSIVE_VALID...
+ d c 1835
+ d XML_SCHEMAV_CVC_MAXEXCLUSIVE_VALID...
+ d c 1836
+ d XML_SCHEMAV_CVC_TOTALDIGITS_VALID...
+ d c 1837
+ d XML_SCHEMAV_CVC_FRACTIONDIGITS_VALID...
+ d c 1838
+ d XML_SCHEMAV_CVC_PATTERN_VALID...
+ d c 1839
+ d XML_SCHEMAV_CVC_ENUMERATION_VALID...
+ d c 1840
+ d XML_SCHEMAV_CVC_COMPLEX_TYPE_2_1...
+ d c 1841
+ d XML_SCHEMAV_CVC_COMPLEX_TYPE_2_2...
+ d c 1842
+ d XML_SCHEMAV_CVC_COMPLEX_TYPE_2_3...
+ d c 1843
+ d XML_SCHEMAV_CVC_COMPLEX_TYPE_2_4...
+ d c 1844
+ d XML_SCHEMAV_CVC_ELT_1...
+ d c 1845
+ d XML_SCHEMAV_CVC_ELT_2...
+ d c 1846
+ d XML_SCHEMAV_CVC_ELT_3_1...
+ d c 1847
+ d XML_SCHEMAV_CVC_ELT_3_2_1...
+ d c 1848
+ d XML_SCHEMAV_CVC_ELT_3_2_2...
+ d c 1849
+ d XML_SCHEMAV_CVC_ELT_4_1...
+ d c 1850
+ d XML_SCHEMAV_CVC_ELT_4_2...
+ d c 1851
+ d XML_SCHEMAV_CVC_ELT_4_3...
+ d c 1852
+ d XML_SCHEMAV_CVC_ELT_5_1_1...
+ d c 1853
+ d XML_SCHEMAV_CVC_ELT_5_1_2...
+ d c 1854
+ d XML_SCHEMAV_CVC_ELT_5_2_1...
+ d c 1855
+ d XML_SCHEMAV_CVC_ELT_5_2_2_1...
+ d c 1856
+ d XML_SCHEMAV_CVC_ELT_5_2_2_2_1...
+ d c 1857
+ d XML_SCHEMAV_CVC_ELT_5_2_2_2_2...
+ d c 1858
+ d XML_SCHEMAV_CVC_ELT_6...
+ d c 1859
+ d XML_SCHEMAV_CVC_ELT_7...
+ d c 1860
+ d XML_SCHEMAV_CVC_ATTRIBUTE_1...
+ d c 1861
+ d XML_SCHEMAV_CVC_ATTRIBUTE_2...
+ d c 1862
+ d XML_SCHEMAV_CVC_ATTRIBUTE_3...
+ d c 1863
+ d XML_SCHEMAV_CVC_ATTRIBUTE_4...
+ d c 1864
+ d XML_SCHEMAV_CVC_COMPLEX_TYPE_3_1...
+ d c 1865
+ d XML_SCHEMAV_CVC_COMPLEX_TYPE_3_2_1...
+ d c 1866
+ d XML_SCHEMAV_CVC_COMPLEX_TYPE_3_2_2...
+ d c 1867
+ d XML_SCHEMAV_CVC_COMPLEX_TYPE_4...
+ d c 1868
+ d XML_SCHEMAV_CVC_COMPLEX_TYPE_5_1...
+ d c 1869
+ d XML_SCHEMAV_CVC_COMPLEX_TYPE_5_2...
+ d c 1870
+ d XML_SCHEMAV_ELEMENT_CONTENT...
+ d c 1871
+ d XML_SCHEMAV_DOCUMENT_ELEMENT_MISSING...
+ d c 1872
+ d XML_SCHEMAV_CVC_COMPLEX_TYPE_1...
+ d c 1873
+ d XML_SCHEMAV_CVC_AU...
+ d c 1874
+ d XML_SCHEMAV_CVC_TYPE_1...
+ d c 1875
+ d XML_SCHEMAV_CVC_TYPE_2...
+ d c 1876
+ d XML_SCHEMAV_CVC_IDC...
+ d c 1877
+ d XML_SCHEMAV_CVC_WILDCARD...
+ d c 1878
+ d XML_SCHEMAV_MISC...
+ d c 1879
+ d XML_XPTR_UNKNOWN_SCHEME...
+ d c 1900
+ d XML_XPTR_CHILDSEQ_START...
+ d c 1901
+ d XML_XPTR_EVAL_FAILED...
+ d c 1902
+ d XML_XPTR_EXTRA_OBJECTS...
+ d c 1903
+ d XML_C14N_CREATE_CTXT...
+ d c 1950
+ d XML_C14N_REQUIRES_UTF8...
+ d c 1951
+ d XML_C14N_CREATE_STACK...
+ d c 1952
+ d XML_C14N_INVALID_NODE...
+ d c 1953
+ d XML_C14N_UNKNOW_NODE...
+ d c 1954
+ d XML_C14N_RELATIVE_NAMESPACE...
+ d c 1955
+ d XML_FTP_PASV_ANSWER...
+ d c 2000
+ d XML_FTP_EPSV_ANSWER...
+ d c 2001
+ d XML_FTP_ACCNT...
+ d c 2002
+ d XML_FTP_URL_SYNTAX...
+ d c 2003
+ d XML_HTTP_URL_SYNTAX...
+ d c 2020
+ d XML_HTTP_USE_IP...
+ d c 2021
+ d XML_HTTP_UNKNOWN_HOST...
+ d c 2022
+ d XML_SCHEMAP_SRC_SIMPLE_TYPE_1...
+ d c 3000
+ d XML_SCHEMAP_SRC_SIMPLE_TYPE_2...
+ d c 3001
+ d XML_SCHEMAP_SRC_SIMPLE_TYPE_3...
+ d c 3002
+ d XML_SCHEMAP_SRC_SIMPLE_TYPE_4...
+ d c 3003
+ d XML_SCHEMAP_SRC_RESOLVE...
+ d c 3004
+ d XML_SCHEMAP_SRC_RESTRICTION_BASE_OR_SIMPLETYPE...
+ d c 3005
+ d XML_SCHEMAP_SRC_LIST_ITEMTYPE_OR_SIMPLETYPE...
+ d c 3006
+ d XML_SCHEMAP_SRC_UNION_MEMBERTYPES_OR_SIMPLETYPES...
+ d c 3007
+ d XML_SCHEMAP_ST_PROPS_CORRECT_1...
+ d c 3008
+ d XML_SCHEMAP_ST_PROPS_CORRECT_2...
+ d c 3009
+ d XML_SCHEMAP_ST_PROPS_CORRECT_3...
+ d c 3010
+ d XML_SCHEMAP_COS_ST_RESTRICTS_1_1...
+ d c 3011
+ d XML_SCHEMAP_COS_ST_RESTRICTS_1_2...
+ d c 3012
+ d XML_SCHEMAP_COS_ST_RESTRICTS_1_3_1...
+ d c 3013
+ d XML_SCHEMAP_COS_ST_RESTRICTS_1_3_2...
+ d c 3014
+ d XML_SCHEMAP_COS_ST_RESTRICTS_2_1...
+ d c 3015
+ d XML_SCHEMAP_COS_ST_RESTRICTS_2_3_1_1...
+ d c 3016
+ d XML_SCHEMAP_COS_ST_RESTRICTS_2_3_1_2...
+ d c 3017
+ d XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_1...
+ d c 3018
+ d XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_2...
+ d c 3019
+ d XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_3...
+ d c 3020
+ d XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_4...
+ d c 3021
+ d XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_5...
+ d c 3022
+ d XML_SCHEMAP_COS_ST_RESTRICTS_3_1...
+ d c 3023
+ d XML_SCHEMAP_COS_ST_RESTRICTS_3_3_1...
+ d c 3024
+ d XML_SCHEMAP_COS_ST_RESTRICTS_3_3_1_2...
+ d c 3025
+ d XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_2...
+ d c 3026
+ d XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_1...
+ d c 3027
+ d XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_3...
+ d c 3028
+ d XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_4...
+ d c 3029
+ d XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_5...
+ d c 3030
+ d XML_SCHEMAP_COS_ST_DERIVED_OK_2_1...
+ d c 3031
+ d XML_SCHEMAP_COS_ST_DERIVED_OK_2_2...
+ d c 3032
+ d XML_SCHEMAP_S4S_ELEM_NOT_ALLOWED...
+ d c 3033
+ d XML_SCHEMAP_S4S_ELEM_MISSING...
+ d c 3034
+ d XML_SCHEMAP_S4S_ATTR_NOT_ALLOWED...
+ d c 3035
+ d XML_SCHEMAP_S4S_ATTR_MISSING...
+ d c 3036
+ d XML_SCHEMAP_S4S_ATTR_INVALID_VALUE...
+ d c 3037
+ d XML_SCHEMAP_SRC_ELEMENT_1...
+ d c 3038
+ d XML_SCHEMAP_SRC_ELEMENT_2_1...
+ d c 3039
+ d XML_SCHEMAP_SRC_ELEMENT_2_2...
+ d c 3040
+ d XML_SCHEMAP_SRC_ELEMENT_3...
+ d c 3041
+ d XML_SCHEMAP_P_PROPS_CORRECT_1...
+ d c 3042
+ d XML_SCHEMAP_P_PROPS_CORRECT_2_1...
+ d c 3043
+ d XML_SCHEMAP_P_PROPS_CORRECT_2_2...
+ d c 3044
+ d XML_SCHEMAP_E_PROPS_CORRECT_2...
+ d c 3045
+ d XML_SCHEMAP_E_PROPS_CORRECT_3...
+ d c 3046
+ d XML_SCHEMAP_E_PROPS_CORRECT_4...
+ d c 3047
+ d XML_SCHEMAP_E_PROPS_CORRECT_5...
+ d c 3048
+ d XML_SCHEMAP_E_PROPS_CORRECT_6...
+ d c 3049
+ d XML_SCHEMAP_SRC_INCLUDE...
+ d c 3050
+ d XML_SCHEMAP_SRC_ATTRIBUTE_1...
+ d c 3051
+ d XML_SCHEMAP_SRC_ATTRIBUTE_2...
+ d c 3052
+ d XML_SCHEMAP_SRC_ATTRIBUTE_3_1...
+ d c 3053
+ d XML_SCHEMAP_SRC_ATTRIBUTE_3_2...
+ d c 3054
+ d XML_SCHEMAP_SRC_ATTRIBUTE_4...
+ d c 3055
+ d XML_SCHEMAP_NO_XMLNS...
+ d c 3056
+ d XML_SCHEMAP_NO_XSI...
+ d c 3057
+ d XML_SCHEMAP_COS_VALID_DEFAULT_1...
+ d c 3058
+ d XML_SCHEMAP_COS_VALID_DEFAULT_2_1...
+ d c 3059
+ d XML_SCHEMAP_COS_VALID_DEFAULT_2_2_1...
+ d c 3060
+ d XML_SCHEMAP_COS_VALID_DEFAULT_2_2_2...
+ d c 3061
+ d XML_SCHEMAP_CVC_SIMPLE_TYPE...
+ d c 3062
+ d XML_SCHEMAP_COS_CT_EXTENDS_1_1...
+ d c 3063
+ d XML_SCHEMAP_SRC_IMPORT_1_1...
+ d c 3064
+ d XML_SCHEMAP_SRC_IMPORT_1_2...
+ d c 3065
+ d XML_SCHEMAP_SRC_IMPORT_2...
+ d c 3066
+ d XML_SCHEMAP_SRC_IMPORT_2_1...
+ d c 3067
+ d XML_SCHEMAP_SRC_IMPORT_2_2...
+ d c 3068
+ d XML_SCHEMAP_INTERNAL... Non W3C
+ d c 3069
+ d XML_SCHEMAP_NOT_DETERMINISTIC...
+ d c 3070
+ d XML_SCHEMAP_SRC_ATTRIBUTE_GROUP_1...
+ d c 3071
+ d XML_SCHEMAP_SRC_ATTRIBUTE_GROUP_2...
+ d c 3072
+ d XML_SCHEMAP_SRC_ATTRIBUTE_GROUP_3...
+ d c 3073
+ d XML_SCHEMAP_MG_PROPS_CORRECT_1...
+ d c 3074
+ d XML_SCHEMAP_MG_PROPS_CORRECT_2...
+ d c 3075
+ d XML_SCHEMAP_SRC_CT_1...
+ d c 3076
+ d XML_SCHEMAP_DERIVATION_OK_RESTRICTION_2_1_3...
+ d c 3077
+ d XML_SCHEMAP_AU_PROPS_CORRECT_2...
+ d c 3078
+ d XML_SCHEMAP_A_PROPS_CORRECT_2...
+ d c 3079
+ d XML_SCHEMAP_C_PROPS_CORRECT...
+ d c 3080
+ d XML_SCHEMAP_SRC_REDEFINE...
+ d c 3081
+ d XML_SCHEMAP_SRC_IMPORT...
+ d c 3082
+ d XML_SCHEMAP_WARN_SKIP_SCHEMA...
+ d c 3083
+ d XML_SCHEMAP_WARN_UNLOCATED_SCHEMA...
+ d c 3084
+ d XML_SCHEMAP_WARN_ATTR_REDECL_PROH...
+ d c 3085
+ d XML_SCHEMAP_WARN_ATTR_POINTLESS_PROH...
+ d c 3086
+ d XML_SCHEMAP_AG_PROPS_CORRECT...
+ d c 3087
+ d XML_SCHEMAP_COS_CT_EXTENDS_1_2...
+ d c 3088
+ d XML_SCHEMAP_AU_PROPS_CORRECT...
+ d c 3089
+ d XML_SCHEMAP_A_PROPS_CORRECT_3...
+ d c 3090
+ d XML_SCHEMAP_COS_ALL_LIMITED...
+ d c 3091
+ d XML_SCHEMATRONV_ASSERT...
+ d c 4000
+ d XML_SCHEMATRONV_REPORT...
+ d c 4001
+ d XML_MODULE_OPEN...
+ d c 4900
+ d XML_MODULE_CLOSE...
+ d c 4901
+ d XML_CHECK_FOUND_ELEMENT...
+ d c 5000
+ d XML_CHECK_FOUND_ATTRIBUTE...
+ d c 5001
+ d XML_CHECK_FOUND_TEXT...
+ d c 5002
+ d XML_CHECK_FOUND_CDATA...
+ d c 5003
+ d XML_CHECK_FOUND_ENTITYREF...
+ d c 5004
+ d XML_CHECK_FOUND_ENTITY...
+ d c 5005
+ d XML_CHECK_FOUND_PI...
+ d c 5006
+ d XML_CHECK_FOUND_COMMENT...
+ d c 5007
+ d XML_CHECK_FOUND_DOCTYPE...
+ d c 5008
+ d XML_CHECK_FOUND_FRAGMENT...
+ d c 5009
+ d XML_CHECK_FOUND_NOTATION...
+ d c 5010
+ d XML_CHECK_UNKNOWN_NODE...
+ d c 5011
+ d XML_CHECK_ENTITY_TYPE...
+ d c 5012
+ d XML_CHECK_NO_PARENT...
+ d c 5013
+ d XML_CHECK_NO_DOC...
+ d c 5014
+ d XML_CHECK_NO_NAME...
+ d c 5015
+ d XML_CHECK_NO_ELEM...
+ d c 5016
+ d XML_CHECK_WRONG_DOC...
+ d c 5017
+ d XML_CHECK_NO_PREV...
+ d c 5018
+ d XML_CHECK_WRONG_PREV...
+ d c 5019
+ d XML_CHECK_NO_NEXT...
+ d c 5020
+ d XML_CHECK_WRONG_NEXT...
+ d c 5021
+ d XML_CHECK_NOT_DTD...
+ d c 5022
+ d XML_CHECK_NOT_ATTR...
+ d c 5023
+ d XML_CHECK_NOT_ATTR_DECL...
+ d c 5024
+ d XML_CHECK_NOT_ELEM_DECL...
+ d c 5025
+ d XML_CHECK_NOT_ENTITY_DECL...
+ d c 5026
+ d XML_CHECK_NOT_NS_DECL...
+ d c 5027
+ d XML_CHECK_NO_HREF...
+ d c 5028
+ d XML_CHECK_WRONG_PARENT...
+ d c 5029
+ d XML_CHECK_NS_SCOPE...
+ d c 5030
+ d XML_CHECK_NS_ANCESTOR...
+ d c 5031
+ d XML_CHECK_NOT_UTF8...
+ d c 5032
+ d XML_CHECK_NO_DICT...
+ d c 5033
+ d XML_CHECK_NOT_NCNAME...
+ d c 5034
+ d XML_CHECK_OUTSIDE_DICT...
+ d c 5035
+ d XML_CHECK_WRONG_NAME...
+ d c 5036
+ d XML_CHECK_NAME_NOT_NULL...
+ d c 5037
+ d XML_I18N_NO_NAME...
+ d c 6000
+ d XML_I18N_NO_HANDLER...
+ d c 6001
+ d XML_I18N_EXCESS_HANDLER...
+ d c 6002
+ d XML_I18N_CONV_FAILED...
+ d c 6003
+ d XML_I18N_NO_OUTPUT...
+ d c 6004
+ d XML_BUF_OVERFLOW...
+ d c 7000
+
+ * xmlGenericErrorFunc:
+ * @ctx: a parsing context
+ * @msg: the message
+ * @...: the extra arguments of the varags to format the message
+ *
+ * Signature of the function to use when there is an error and
+ * no parsing or validity context available .
+
+ d xmlGenericErrorFunc...
+ d s * based(######typedef######)
+ d procptr
+
+ * xmlStructuredErrorFunc:
+ * @userData: user provided data for the error callback
+ * @error: the error being raised.
+ *
+ * Signature of the function to use when there is an error and
+ * the module handles the new error reporting mechanism.
+
+ d xmlStructuredErrorFunc...
+ d s * based(######typedef######)
+ d procptr
+
+ * Use the following function to reset the two global variables
+ * xmlGenericError and xmlGenericErrorContext.
+
+ d xmlSetGenericErrorFunc...
+ d pr extproc('xmlSetGenericErrorFunc')
+ d ctx * value void *
+ d handler value like(xmlGenericErrorFunc)
+
+ d initGenericErrorDefaultFunc...
+ d pr extproc(
+ d 'initGenericErrorDefaultFunc')
+ d handler like(xmlGenericErrorFunc)
+
+ d xmlSetStructuredErrorFunc...
+ d pr extproc('xmlSetStructuredErrorFunc')
+ d ctx * value void *
+ d handler value like(xmlGenericErrorFunc)
+
+ * Default message routines used by SAX and Valid context for error
+ * and warning reporting.
+ *
+ * These are vararg functions.
+ * The following prototypes support up to 8 pointer arguments.
+ * Other argument signature can be achieved by defining alternate
+ * prototypes redirected to the same function.
+
+ d xmlParserError pr extproc('xmlParserError')
+ d ctx * value void *
+ d msg * value options(*string) const char *
+ d handler value like(xmlGenericErrorFunc)
+ d arg1 * value options(*string: *nopass)
+ d arg2 * value options(*string: *nopass)
+ d arg3 * value options(*string: *nopass)
+ d arg4 * value options(*string: *nopass)
+ d arg5 * value options(*string: *nopass)
+ d arg6 * value options(*string: *nopass)
+ d arg7 * value options(*string: *nopass)
+ d arg8 * value options(*string: *nopass)
+
+ d xmlParserWarning...
+ d pr extproc('xmlParserWarning')
+ d ctx * value void *
+ d msg * value options(*string) const char *
+ d handler value like(xmlGenericErrorFunc)
+ d arg1 * value options(*string: *nopass)
+ d arg2 * value options(*string: *nopass)
+ d arg3 * value options(*string: *nopass)
+ d arg4 * value options(*string: *nopass)
+ d arg5 * value options(*string: *nopass)
+ d arg6 * value options(*string: *nopass)
+ d arg7 * value options(*string: *nopass)
+ d arg8 * value options(*string: *nopass)
+
+ d xmlParserValidityError...
+ d pr extproc('xmlParserValidityError')
+ d ctx * value void *
+ d msg * value options(*string) const char *
+ d handler value like(xmlGenericErrorFunc)
+ d arg1 * value options(*string: *nopass)
+ d arg2 * value options(*string: *nopass)
+ d arg3 * value options(*string: *nopass)
+ d arg4 * value options(*string: *nopass)
+ d arg5 * value options(*string: *nopass)
+ d arg6 * value options(*string: *nopass)
+ d arg7 * value options(*string: *nopass)
+ d arg8 * value options(*string: *nopass)
+
+ d xmlParserValidityWarning...
+ d pr extproc('xmlParserValidityWarning')
+ d ctx * value void *
+ d msg * value options(*string) const char *
+ d handler value like(xmlGenericErrorFunc)
+ d arg1 * value options(*string: *nopass)
+ d arg2 * value options(*string: *nopass)
+ d arg3 * value options(*string: *nopass)
+ d arg4 * value options(*string: *nopass)
+ d arg5 * value options(*string: *nopass)
+ d arg6 * value options(*string: *nopass)
+ d arg7 * value options(*string: *nopass)
+ d arg8 * value options(*string: *nopass)
+
+ d xmlParserPrintFileInfo...
+ d pr extproc('xmlParserPrintFileInfo')
+ d input value like(xmlParserInputPtr)
+
+ d xmlParserPrintFileContext...
+ d pr extproc('xmlParserPrintFileContext')
+ d input value like(xmlParserInputPtr)
+
+ * Extended error information routines
+
+ d xmlGetLastError...
+ d pr extproc('xmlGetLastError')
+ d like(xmlErrorPtr)
+
+ d xmlResetLastError...
+ d pr extproc('xmlResetLastError')
+
+ d xmlCtxtGetLastError...
+ d pr extproc('xmlCtxtGetLastError')
+ d like(xmlErrorPtr)
+ d ctx * value void *
+
+ d xmlCtxtResetLastError...
+ d pr extproc('xmlCtxtResetLastError')
+ d ctx * value void *
+
+ d xmlResetError pr extproc('xmlResetError')
+ d err value like(xmlErrorPtr)
+
+ d xmlCopyError pr extproc('xmlCopyError')
+ d like(xmlCint)
+ d from value like(xmlErrorPtr)
+ d to value like(xmlErrorPtr)
+
+ /endif XML_ERROR_H__
diff --git a/libxml2/os400/libxmlrpg/xmlexports.rpgle b/libxml2/os400/libxmlrpg/xmlexports.rpgle
new file mode 100644
index 0000000..9a6fd10
--- /dev/null
+++ b/libxml2/os400/libxmlrpg/xmlexports.rpgle
@@ -0,0 +1,15 @@
+ * Summary: macros for marking symbols as exportable/importable.
+ * Description: macros for marking symbols as exportable/importable.
+ *
+ * Copy: See Copyright for the status of this software.
+ *
+ * Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A.
+
+ /if not defined(XML_EXPORTS_H__)
+ /define XML_EXPORTS_H__
+
+ * The definition in the original C header file are not appliable to
+ * ILE/RPG.
+ * Therefore this file is intentionally empty.
+
+ /endif XML_EXPORTS_H__
diff --git a/libxml2/os400/libxmlrpg/xmlmemory.rpgle b/libxml2/os400/libxmlrpg/xmlmemory.rpgle
new file mode 100644
index 0000000..472e941
--- /dev/null
+++ b/libxml2/os400/libxmlrpg/xmlmemory.rpgle
@@ -0,0 +1,247 @@
+ * Summary: interface for the memory allocator
+ * Description: provides interfaces for the memory allocator,
+ * including debugging capabilities.
+ *
+ * Copy: See Copyright for the status of this software.
+ *
+ * Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A.
+
+ /if not defined(DEBUG_MEMORY_ALLOC__)
+ /define DEBUG_MEMORY_ALLOC__
+
+ /include "libxmlrpg/xmlversion"
+ /include "libxmlrpg/xmlTypesC"
+
+ * DEBUG_MEMORY:
+ *
+ * DEBUG_MEMORY replaces the allocator with a collect and debug
+ * shell to the libc allocator.
+ * DEBUG_MEMORY should only be activated when debugging
+ * libxml i.e. if libxml has been configured with --with-debug-mem too.
+
+ * /define DEBUG_MEMORY_FREED
+ * /define DEBUG_MEMORY_LOCATION
+
+ /if defined(DEBUG)
+ /if not defined(DEBUG_MEMORY)
+ /define DEBUG_MEMORY
+ /endif
+ /endif
+
+ * DEBUG_MEMORY_LOCATION:
+ *
+ * DEBUG_MEMORY_LOCATION should be activated only when debugging
+ * libxml i.e. if libxml has been configured with --with-debug-mem too.
+
+ /if defined(DEBUG_MEMORY_LOCATION)
+ /endif
+
+ * The XML memory wrapper support 4 basic overloadable functions.
+
+ * xmlFreeFunc:
+ * @mem: an already allocated block of memory
+ *
+ * Signature for a free() implementation.
+
+ d xmlFreeFunc s * based(######typedef######)
+ d procptr
+
+ * xmlMallocFunc:
+ * @size: the size requested in bytes
+ *
+ * Signature for a malloc() implementation.
+ *
+ * Returns a pointer to the newly allocated block or NULL in case of error.
+
+ d xmlMallocFunc s * based(######typedef######)
+ d procptr
+
+ * xmlReallocFunc:
+ * @mem: an already allocated block of memory
+ * @size: the new size requested in bytes
+ *
+ * Signature for a realloc() implementation.
+ *
+ * Returns a pointer to the newly reallocated block or NULL in case of error.
+
+ d xmlReallocFunc s * based(######typedef######)
+ d procptr
+
+ * xmlStrdupFunc:
+ * @str: a zero terminated string
+ *
+ * Signature for an strdup() implementation.
+ *
+ * Returns the copy of the string or NULL in case of error.
+
+ d xmlStrdupFunc s * based(######typedef######)
+ d procptr
+
+ * The 5 interfaces used for all memory handling within libxml.
+ * Since indirect calls are only supported via a based prototype,
+ * storage is accessed via functions.
+
+ d get_xmlFree pr extproc('__get_xmlFree')
+ d like(xmlFreeFunc)
+
+ d set_xmlFree pr extproc('__set_xmlFree')
+ d func value like(xmlFreeFunc)
+
+ d xmlFree pr extproc('__call_xmlFree')
+ d mem * value void *
+
+ d get_xmlMalloc pr extproc('__get_xmlMalloc')
+ d like(xmlMallocFunc)
+
+ d set_xmlMalloc pr extproc('__set_xmlMalloc')
+ d func value like(xmlMallocFunc)
+
+ d xmlMalloc pr * extproc('__call_xmlMalloc') void *
+ d size value like(xmlCsize_t)
+
+ d get_xmlMallocAtomic...
+ d pr extproc('__get_xmlMallocAtomic')
+ d like(xmlMallocFunc)
+
+ d set_xmlMallocAtomic...
+ d pr extproc('__set_xmlMallocAtomic')
+ d func value like(xmlMallocFunc)
+
+ d xmlMallocAtomic...
+ d pr * extproc('__call_xmlMallocAtomic') void *
+ d size value like(xmlCsize_t)
+
+ d get_xmlRealloc pr extproc('__get_xmlRealloc')
+ d like(xmlReallocFunc)
+
+ d set_xmlRealloc pr extproc('__set_xmlRealloc')
+ d func value like(xmlReallocFunc)
+
+ d xmlRealloc pr * extproc('__call_xmlRealloc') void *
+ d mem * value void *
+ d size value like(xmlCsize_t)
+
+ d get_xmlMemStrdup...
+ d pr extproc('__get_xmlMemStrdup')
+ d like(xmlStrdupFunc)
+
+ d set_xmlMemStrdup...
+ d pr extproc('__set_xmlMemstrdup')
+ d func value like(xmlStrdupFunc)
+
+ d xmlMemStrdup pr * extproc('__call_xmlMemStrdup') void *
+ d str * value options(*string) const char *
+
+ * The way to overload the existing functions.
+ * The xmlGc function have an extra entry for atomic block
+ * allocations useful for garbage collected memory allocators
+
+ d xmlMemSetup pr extproc('xmlMemSetup')
+ d like(xmlCint)
+ d freeFunc value like(xmlFreeFunc)
+ d mallocFunc value like(xmlMallocFunc)
+ d reallocFunc value like(xmlReallocFunc)
+ d strdupFunc value like(xmlStrdupFunc)
+
+ d xmlMemGet pr extproc('xmlMemGet')
+ d like(xmlCint)
+ d freeFunc like(xmlFreeFunc)
+ d mallocFunc like(xmlMallocFunc)
+ d reallocFunc like(xmlReallocFunc)
+ d strdupFunc like(xmlStrdupFunc)
+
+ d xmlGcMemSetup pr extproc('xmlGcMemSetup')
+ d like(xmlCint)
+ d freeFunc value like(xmlFreeFunc)
+ d mallocFunc value like(xmlMallocFunc)
+ d mallocAtomicFunc...
+ d value like(xmlMallocFunc)
+ d reallocFunc value like(xmlReallocFunc)
+ d strdupFunc value like(xmlStrdupFunc)
+
+ d xmlGcMemGet pr extproc('xmlGcMemGet')
+ d like(xmlCint)
+ d freeFunc like(xmlFreeFunc)
+ d mallocFunc like(xmlMallocFunc)
+ d mallocAtomicFunc...
+ d like(xmlMallocFunc)
+ d reallocFunc like(xmlReallocFunc)
+ d strdupFunc like(xmlStrdupFunc)
+
+ * Initialization of the memory layer.
+
+ d xmlInitMemory pr extproc('xmlInitMemory')
+ d like(xmlCint)
+
+ * Cleanup of the memory layer.
+
+ d xmlCleanupMemory...
+ d pr extproc('xmlCleanupMemory')
+
+ * These are specific to the XML debug memory wrapper.
+
+ d xmlMemUsed pr extproc('xmlMemUsed')
+ d like(xmlCint)
+
+ d xmlMemBlocks pr extproc('xmlMemBlocks')
+ d like(xmlCint)
+
+ d xmlMemDisplay pr extproc('xmlMemDisplay')
+ d fp * value FILE *
+
+ d xmlMmDisplayLast...
+ d pr extproc('xmlMemDisplayLast')
+ d fp * value FILE *
+ d nbBytes value like(xmlClong)
+
+ d xmlMemShow pr extproc('xmlMemShow')
+ d fp * value FILE *
+ d nr value like(xmlCint)
+
+ d xmlMemoryDump pr extproc('xmlMemoryDump')
+
+ d xmlMemMalloc pr * extproc('xmlMemMalloc') void *
+ d size value like(xmlCsize_t)
+
+ d xmlMemRealloc pr * extproc('xmlMemRealloc') void *
+ d ptr * value void *
+ d size value like(xmlCsize_t)
+
+ d xmlMemFree pr extproc('xmlMemFree')
+ d ptr * value void *
+
+ d xmlMemoryStrdup...
+ d pr * extproc('xmlMemoryStrdup') char *
+ d str * value options(*string) const char *
+
+ d xmlMallocLoc pr * extproc('xmlMallocLoc') void *
+ d size value like(xmlCsize_t)
+ d file * value options(*string) const char *
+ d line value like(xmlCint)
+
+ d xmlReallocLoc pr * extproc('xmlReallocLoc') void *
+ d ptr * value void *
+ d size value like(xmlCsize_t)
+ d file * value options(*string) const char *
+ d line value like(xmlCint)
+
+ d xmlMallocAtomicLoc...
+ d pr * extproc('xmlMallocAtomicLoc') void *
+ d size value like(xmlCsize_t)
+ d file * value options(*string) const char *
+ d line value like(xmlCint)
+
+ d xmlMemStrdupLoc...
+ d pr * extproc('xmlMemStrdupLoc') char *
+ d str * value options(*string) const char *
+ d file * value options(*string) const char *
+ d line value like(xmlCint)
+
+ /if not defined(XML_GLOBALS_H)
+ /if not defined(XML_THREADS_H__)
+ /include "libxmlrpg/threads"
+ /include "libxmlrpg/globals"
+ /endif
+ /endif
+
+ /endif DEBUG_MEMORY_ALLOC__
diff --git a/libxml2/os400/libxmlrpg/xmlmodule.rpgle b/libxml2/os400/libxmlrpg/xmlmodule.rpgle
new file mode 100644
index 0000000..035254d
--- /dev/null
+++ b/libxml2/os400/libxmlrpg/xmlmodule.rpgle
@@ -0,0 +1,57 @@
+ * Summary: dynamic module loading
+ * Description: basic API for dynamic module loading, used by
+ * libexslt added in 2.6.17
+ *
+ * Copy: See Copyright for the status of this software.
+ *
+ * Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A.
+
+ /if not defined(XML_MODULE_H__)
+ /define XML_MODULE_H__
+
+ /include "libxmlrpg/xmlversion"
+
+ /if defined(LIBXML_MODULES_ENABLED)
+
+ /include "libxmlrpg/xmlTypesC"
+
+ * xmlModulePtr:
+ *
+ * A handle to a dynamically loaded module
+
+ d xmlModulePtr s * based(######typedef######)
+
+ * xmlModuleOption:
+ *
+ * enumeration of options that can be passed down to xmlModuleOpen()
+
+ d xmlModuleOption...
+ d s based(######typedef######)
+ d like(xmlCenum)
+ d XML_MODULE_LAZY... Lazy binding
+ d c 1
+ d XML_MODULE_LOCAL... Local binding
+ d c 2
+
+ d xmlModuleOpen pr extproc('xmlModuleOpen')
+ d like(xmlModulePtr)
+ d filename * value options(*string) const char *
+ d options value like(xmlCint)
+
+ d xmlModuleSymbol...
+ d pr extproc('xmlModuleSymbol')
+ d like(xmlCint)
+ d module value like(xmlModulePtr)
+ d name * value options(*string) const char *
+ d result * void *(*)
+
+ d xmlModuleClose pr extproc('xmlModuleClose')
+ d like(xmlCint)
+ d module value like(xmlModulePtr)
+
+ d xmlModuleFree pr extproc('xmlModuleFree')
+ d like(xmlCint)
+ d module value like(xmlModulePtr)
+
+ /endif LIBXML_MODULES_ENBLD
+ /endif XML_MODULE_H__
diff --git a/libxml2/os400/libxmlrpg/xmlreader.rpgle b/libxml2/os400/libxmlrpg/xmlreader.rpgle
new file mode 100644
index 0000000..9ec76b3
--- /dev/null
+++ b/libxml2/os400/libxmlrpg/xmlreader.rpgle
@@ -0,0 +1,668 @@
+ * Summary: the XMLReader implementation
+ * Description: API of the XML streaming API based on C# interfaces.
+ *
+ * Copy: See Copyright for the status of this software.
+ *
+ * Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A.
+
+ /if not defined(XML_XMLREADER_H__)
+ /define XML_XMLREADER_H__
+
+ /include "libxmlrpg/xmlversion"
+ /include "libxmlrpg/xmlTypesC"
+ /include "libxmlrpg/tree"
+ /include "libxmlrpg/xmlIO"
+
+ /if defined(LIBXML_SCHEMAS_ENABLED)
+ /include "libxmlrpg/relaxng"
+ /include "libxmlrpg/xmlschemas"
+ /endif
+
+ * xmlParserSeverities:
+ *
+ * How severe an error callback is when the per-reader error callback API
+ * is used.
+
+ d xmlParserSeverities...
+ d s based(######typedef######)
+ d like(xmlCenum)
+ d XML_PARSER_SEVERITY_VALIDITY_WARNING...
+ d c 1
+ d XML_PARSER_SEVERITY_VALIDITY_ERROR...
+ d c 2
+ d XML_PARSER_SEVERITY_WARNING...
+ d c 3
+ d XML_PARSER_SEVERITY_ERROR...
+ d c 4
+
+ /if defined(LIBXML_READER_ENABLED)
+
+ * xmlTextReaderMode:
+ *
+ * Internal state values for the reader.
+
+ d xmlTextReaderMode...
+ d s based(######typedef######)
+ d like(xmlCenum)
+ d XML_TEXTREADER_MODE_INITIAL...
+ d c 0
+ d XML_TEXTREADER_MODE_INTERACTIVE...
+ d c 1
+ d XML_TEXTREADER_MODE_ERROR...
+ d c 2
+ d XML_TEXTREADER_MODE_EOF...
+ d c 3
+ d XML_TEXTREADER_MODE_CLOSED...
+ d c 4
+ d XML_TEXTREADER_MODE_READING...
+ d c 5
+
+ * xmlParserProperties:
+ *
+ * Some common options to use with xmlTextReaderSetParserProp, but it
+ * is better to use xmlParserOption and the xmlReaderNewxxx and
+ * xmlReaderForxxx APIs now.
+
+ d xmlParserProperties...
+ d s based(######typedef######)
+ d like(xmlCenum)
+ d XML_PARSER_LOADDTD...
+ d c 1
+ d XML_PARSER_DEFAULTATTRS...
+ d c 2
+ d XML_PARSER_VALIDATE...
+ d c 3
+ d XML_PARSER_SUBST_ENTITIES...
+ d c 4
+
+ * xmlReaderTypes:
+ *
+ * Predefined constants for the different types of nodes.
+
+ d xmlReaderTypes s based(######typedef######)
+ d like(xmlCenum)
+ d XML_READER_TYPE_NONE...
+ d c 0
+ d XML_READER_TYPE_ELEMENT...
+ d c 1
+ d XML_READER_TYPE_ATTRIBUTE...
+ d c 2
+ d XML_READER_TYPE_TEXT...
+ d c 3
+ d XML_READER_TYPE_CDATA...
+ d c 4
+ d XML_READER_TYPE_ENTITY_REFERENCE...
+ d c 5
+ d XML_READER_TYPE_ENTITY...
+ d c 6
+ d XML_READER_TYPE_PROCESSING_INSTRUCTION...
+ d c 7
+ d XML_READER_TYPE_COMMENT...
+ d c 8
+ d XML_READER_TYPE_DOCUMENT...
+ d c 9
+ d XML_READER_TYPE_DOCUMENT_TYPE...
+ d c 10
+ d XML_READER_TYPE_DOCUMENT_FRAGMENT...
+ d c 11
+ d XML_READER_TYPE_NOTATION...
+ d c 12
+ d XML_READER_TYPE_WHITESPACE...
+ d c 13
+ d XML_READER_TYPE_SIGNIFICANT_WHITESPACE...
+ d c 14
+ d XML_READER_TYPE_END_ELEMENT...
+ d c 15
+ d XML_READER_TYPE_END_ENTITY...
+ d c 16
+ d XML_READER_TYPE_XML_DECLARATION...
+ d c 17
+
+ * xmlTextReaderPtr:
+ *
+ * Pointer to an xmlReader context.
+
+ d xmlTextReaderPtr...
+ d s * based(######typedef######)
+
+ * Constructors & Destructor
+
+ d xmlNewTextReader...
+ d pr extproc('xmlNewTextReader')
+ d like(xmlTextReaderPtr)
+ d input value like(xmlParserInputBufferPtr)
+ d URI * value options(*string) const char *
+
+ d xmlNewTextReaderFilename...
+ d pr extproc('xmlNewTextReaderFilename')
+ d like(xmlTextReaderPtr)
+ d URI * value options(*string) const char *
+
+ d xmlFreeTextReader...
+ d pr extproc('xmlFreeTextReader')
+ d reader value like(xmlTextReaderPtr)
+
+ d xmlTextReaderSetup...
+ d pr extproc('xmlTextReaderSetup')
+ d like(xmlCint)
+ d reader value like(xmlTextReaderPtr)
+ d input value like(xmlParserInputBufferPtr)
+ d URL * value options(*string) const char *
+ d encoding * value options(*string) const char *
+ d options value like(xmlCint)
+
+ * Iterators
+
+ d xmlTextReaderRead...
+ d pr extproc('xmlTextReaderRead')
+ d like(xmlCint)
+ d reader value like(xmlTextReaderPtr)
+
+ /if defined(LIBXML_WRITER_ENABLED)
+ d xmlTextReaderReadInnerXml...
+ d pr * extproc('xmlTextReaderReadInnerXml') xmlChar *
+ d reader value like(xmlTextReaderPtr)
+
+ d xmlTextReaderReadOuterXml...
+ d pr * extproc('xmlTextReaderReadOuterXml') xmlChar *
+ d reader value like(xmlTextReaderPtr)
+ /endif
+
+ d xmlTextReaderReadString...
+ d pr * extproc('xmlTextReaderReadString') xmlChar *
+ d reader value like(xmlTextReaderPtr)
+
+ d xmlTextReaderReadAttributeValue...
+ d pr extproc(
+ d 'xmlTextReaderReadAttributeValue')
+ d like(xmlCint)
+ d reader value like(xmlTextReaderPtr)
+
+ * Attributes of the node
+
+ d xmlTextReaderAttributeCount...
+ d pr extproc(
+ d 'xmlTextReaderAttributeCount')
+ d like(xmlCint)
+ d reader value like(xmlTextReaderPtr)
+
+ d xmlTextReaderDepth...
+ d pr extproc('xmlTextReaderDepth')
+ d like(xmlCint)
+ d reader value like(xmlTextReaderPtr)
+
+ d xmlTextReaderHasAttributes...
+ d pr extproc('xmlTextReaderHasAttributes')
+ d like(xmlCint)
+ d reader value like(xmlTextReaderPtr)
+
+ d xmlTextReaderHasValue...
+ d pr extproc('xmlTextReaderHasValue')
+ d like(xmlCint)
+ d reader value like(xmlTextReaderPtr)
+
+ d xmlTextReaderIsDefault...
+ d pr extproc('xmlTextReaderIsDefault')
+ d like(xmlCint)
+ d reader value like(xmlTextReaderPtr)
+
+ d xmlTextReaderIsEmptyElement...
+ d pr extproc(
+ d 'xmlTextReaderIsEmptyElement')
+ d like(xmlCint)
+ d reader value like(xmlTextReaderPtr)
+
+ d xmlTextReaderNodeType...
+ d pr extproc('xmlTextReaderNodeType')
+ d like(xmlCint)
+ d reader value like(xmlTextReaderPtr)
+
+ d xmlTextReaderQuoteChar...
+ d pr extproc('xmlTextReaderQuoteChar')
+ d like(xmlCint)
+ d reader value like(xmlTextReaderPtr)
+
+ d xmlTextReaderReadState...
+ d pr extproc('xmlTextReaderReadState')
+ d like(xmlCint)
+ d reader value like(xmlTextReaderPtr)
+
+ d xmlTextReaderIsNamespaceDecl...
+ d pr extproc(
+ d 'xmlTextReaderIsNamespaceDecl')
+ d like(xmlCint)
+ d reader value like(xmlTextReaderPtr)
+
+ d xmlTextReaderConstBaseUri...
+ d pr * extproc('xmlTextReaderConstBaseUri') const xmlChar *
+ d reader value like(xmlTextReaderPtr)
+
+ d xmlTextReaderConstLocalName...
+ d pr * extproc( const xmlChar *
+ d 'xmlTextReaderConstLocalName')
+ d reader value like(xmlTextReaderPtr)
+
+ d xmlTextReaderConstName...
+ d pr * extproc('xmlTextReaderConstName') const xmlChar *
+ d reader value like(xmlTextReaderPtr)
+
+ d xmlTextReaderConstNamespaceUri...
+ d pr * extproc( const xmlChar *
+ d 'xmlTextReaderConstNamespaceUri')
+ d reader value like(xmlTextReaderPtr)
+
+ d xmlTextReaderConstPrefix...
+ d pr * extproc('xmlTextReaderConstPrefix') const xmlChar *
+ d reader value like(xmlTextReaderPtr)
+
+ d xmlTextReaderConstXmlLang...
+ d pr * extproc('xmlTextReaderConstXmlLang') const xmlChar *
+ d reader value like(xmlTextReaderPtr)
+
+ d xmlTextReaderConstString...
+ d pr * extproc('xmlTextReaderConstString') const xmlChar *
+ d reader value like(xmlTextReaderPtr)
+ d str * value options(*string) const xmlChar *
+
+ d xmlTextReaderConstValue...
+ d pr * extproc('xmlTextReaderConstValue') const xmlChar *
+ d reader value like(xmlTextReaderPtr)
+
+ * use the Const version of the routine for
+ * better performance and simpler code
+
+ d xmlTextReaderBaseUri...
+ d pr * extproc('xmlTextReaderBaseUri') xmlChar *
+ d reader value like(xmlTextReaderPtr)
+
+ d xmlTextReaderLocalName...
+ d pr * extproc('xmlTextReaderLocalName') xmlChar *
+ d reader value like(xmlTextReaderPtr)
+
+ d xmlTextReaderName...
+ d pr * extproc('xmlTextReaderName') xmlChar *
+ d reader value like(xmlTextReaderPtr)
+
+ d xmlTextReaderNamespaceUri...
+ d pr * extproc('xmlTextReaderNamespaceUri') xmlChar *
+ d reader value like(xmlTextReaderPtr)
+
+ d xmlTextReaderPrefix...
+ d pr * extproc('xmlTextReaderPrefix') xmlChar *
+ d reader value like(xmlTextReaderPtr)
+
+ d xmlTextReaderXmlLang...
+ d pr * extproc('xmlTextReaderXmlLang') xmlChar *
+ d reader value like(xmlTextReaderPtr)
+
+ d xmlTextReaderValue...
+ d pr * extproc('xmlTextReaderValue') xmlChar *
+ d reader value like(xmlTextReaderPtr)
+
+ * Methods of the XmlTextReader
+
+ d xmlTextReaderClose...
+ d pr extproc('xmlTextReaderClose')
+ d like(xmlCint)
+ d reader value like(xmlTextReaderPtr)
+
+ d xmlTextReaderGetAttributeNo...
+ d pr * extproc( xmlChar *
+ d 'xmlTextReaderGetAttributeNo')
+ d reader value like(xmlTextReaderPtr)
+ d no value like(xmlCint)
+
+ d xmlTextReaderGetAttribute...
+ d pr * extproc('xmlTextReaderGetAttribute') xmlChar *
+ d reader value like(xmlTextReaderPtr)
+ d name * value options(*string) const xmlChar *
+
+ d xmlTextReaderGetAttributeNs...
+ d pr * extproc( xmlChar *
+ d 'xmlTextReaderGetAttributeNs')
+ d reader value like(xmlTextReaderPtr)
+ d localName * value options(*string) const xmlChar *
+ d namespaceURI * value options(*string) const xmlChar *
+
+ d xmlTextReaderGetRemainder...
+ d pr extproc('xmlTextReaderGetRemainder')
+ d like(xmlParserInputBufferPtr)
+ d reader value like(xmlTextReaderPtr)
+
+ d xmlTextReaderLookupNamespace...
+ d pr * extproc( xmlChar *
+ d 'xmlTextReaderLookupNamespace')
+ d reader value like(xmlTextReaderPtr)
+ d prefix * value options(*string) const xmlChar *
+
+ d xmlTextReaderMoveToAttributeNo...
+ d pr extproc(
+ d 'xmlTextReaderMoveToAttributeNo')
+ d like(xmlCint)
+ d reader value like(xmlTextReaderPtr)
+ d no value like(xmlCint)
+
+ d xmlTextReaderMoveToAttribute...
+ d pr extproc(
+ d 'xmlTextReaderMoveToAttribute')
+ d like(xmlCint)
+ d reader value like(xmlTextReaderPtr)
+ d name * value options(*string) const xmlChar *
+
+ d xmlTextReaderMoveToAttributeNs...
+ d pr extproc(
+ d 'xmlTextReaderMoveToAttributeNs')
+ d like(xmlCint)
+ d reader value like(xmlTextReaderPtr)
+ d localName * value options(*string) const xmlChar *
+ d namespaceURI * value options(*string) const xmlChar *
+
+ d xmlTextReaderMoveToFirstAttribute...
+ d pr extproc(
+ d 'xmlTextReaderMoveToFirstAttribute')
+ d like(xmlCint)
+ d reader value like(xmlTextReaderPtr)
+
+ d xmlTextReaderMoveToNextAttribute...
+ d pr extproc(
+ d 'xmlTextReaderMoveToNextAttribute')
+ d like(xmlCint)
+ d reader value like(xmlTextReaderPtr)
+
+ d xmlTextReaderMoveToElement...
+ d pr extproc('xmlTextReaderMoveToElement')
+ d like(xmlCint)
+ d reader value like(xmlTextReaderPtr)
+
+ d xmlTextReaderNormalization...
+ d pr extproc('xmlTextReaderNormalization')
+ d like(xmlCint)
+ d reader value like(xmlTextReaderPtr)
+
+ d xmlTextReaderConstEncoding...
+ d pr * extproc('xmlTextReaderConstEncoding')const xmlChar *
+ d reader value like(xmlTextReaderPtr)
+
+ * Extensions
+
+ d xmlTextReaderSetParserProp...
+ d pr extproc('xmlTextReaderSetParserProp')
+ d like(xmlCint)
+ d reader value like(xmlTextReaderPtr)
+ d prop value like(xmlCint)
+ d value value like(xmlCint)
+
+ d xmlTextReaderGetParserProp...
+ d pr extproc('xmlTextReaderGetParserProp')
+ d like(xmlCint)
+ d reader value like(xmlTextReaderPtr)
+ d prop value like(xmlCint)
+
+ d xmlTextReaderCurrentNode...
+ d pr extproc('xmlTextReaderCurrentNode')
+ d like(xmlNodePtr)
+ d reader value like(xmlTextReaderPtr)
+
+ d xmlTextReaderGetParserLineNumber...
+ d pr extproc(
+ d 'xmlTextReaderGetParserLineNumber')
+ d like(xmlCint)
+ d reader value like(xmlTextReaderPtr)
+
+ d xmlTextReaderGetParserColumnNumber...
+ d pr extproc(
+ d 'xmlTextReaderGetParserColumnNumber')
+ d like(xmlCint)
+ d reader value like(xmlTextReaderPtr)
+
+ d xmlTextReaderPreserve...
+ d pr extproc('xmlTextReaderPreserve')
+ d like(xmlNodePtr)
+ d reader value like(xmlTextReaderPtr)
+
+ /if defined(LIBXML_PATTERN_ENABLED)
+ d xmlTextReaderPreservePattern...
+ d pr extproc(
+ d 'xmlTextReaderPreservePattern')
+ d like(xmlCint)
+ d reader value like(xmlTextReaderPtr)
+ d pattern * value options(*string) const xmlChar *
+ d namespaces * const xmlChar *(*)
+ /endif LIBXML_PATTERN_ENBLD
+
+ d xmlTextReaderCurrentDoc...
+ d pr extproc('xmlTextReaderCurrentDoc')
+ d like(xmlDocPtr)
+ d reader value like(xmlTextReaderPtr)
+
+ d xmlTextReaderExpand...
+ d pr extproc('xmlTextReaderExpand')
+ d like(xmlNodePtr)
+ d reader value like(xmlTextReaderPtr)
+
+ d xmlTextReaderNext...
+ d pr extproc('xmlTextReaderNext')
+ d like(xmlCint)
+ d reader value like(xmlTextReaderPtr)
+
+ d xmlTextReaderNextSibling...
+ d pr extproc('xmlTextReaderNextSibling')
+ d like(xmlCint)
+ d reader value like(xmlTextReaderPtr)
+
+ d xmlTextReaderIsValid...
+ d pr extproc('xmlTextReaderIsValid')
+ d like(xmlCint)
+ d reader value like(xmlTextReaderPtr)
+
+ /if defined(LIBXML_SCHEMAS_ENABLED)
+ d xmlTextReaderRelaxNGValidate...
+ d pr extproc(
+ d 'xmlTextReaderRelaxNGValidate')
+ d like(xmlCint)
+ d reader value like(xmlTextReaderPtr)
+ d rng * value options(*string) const char *
+
+ d xmlTextReaderRelaxNGValidateCtxt...
+ d pr extproc(
+ d 'xmlTextReaderRelaxNGValidateCtxt')
+ d like(xmlCint)
+ d reader value like(xmlTextReaderPtr)
+ d ctxt value like(xmlRelaxNGValidCtxtPtr)
+ d options value like(xmlCint)
+
+ d xmlTextReaderRelaxNGSetSchema...
+ d pr extproc(
+ d 'xmlTextReaderRelaxNGSetSchema')
+ d like(xmlCint)
+ d reader value like(xmlTextReaderPtr)
+ d schema value like(xmlRelaxNGPtr)
+
+ d xmlTextReaderSchemaValidate...
+ d pr extproc(
+ d 'xmlTextReaderSchemaValidate')
+ d like(xmlCint)
+ d reader value like(xmlTextReaderPtr)
+ d xsd * value options(*string) const char *
+
+ d xmlTextReaderSchemaValidateCtxt...
+ d pr extproc(
+ d 'xmlTextReaderSchemaValidateCtxt')
+ d like(xmlCint)
+ d reader value like(xmlTextReaderPtr)
+ d ctxt value like(xmlSchemaValidCtxtPtr)
+ d options value like(xmlCint)
+
+ d xmlTextReaderSetSchema...
+ d pr extproc('xmlTextReaderSetSchema')
+ d like(xmlCint)
+ d reader value like(xmlTextReaderPtr)
+ d schema value like(xmlSchemaPtr)
+ /endif
+
+ d xmlTextReaderConstXmlVersion...
+ d pr * extproc( const xmlChar *
+ d 'xmlTextReaderConstXmlVersion')
+ d reader value like(xmlTextReaderPtr)
+
+ d xmlTextReaderStandalone...
+ d pr extproc('xmlTextReaderStandalone')
+ d like(xmlCint)
+ d reader value like(xmlTextReaderPtr)
+
+ * Index lookup
+
+ d xmlTextReaderByteConsumed...
+ d pr extproc('xmlTextReaderByteConsumed')
+ d like(xmlClong)
+ d reader value like(xmlTextReaderPtr)
+
+ * New more complete APIs for simpler creation and reuse of readers
+
+ d xmlReaderWalker...
+ d pr extproc('xmlReaderWalker')
+ d like(xmlTextReaderPtr)
+ d doc value like(xmlDocPtr)
+
+ d xmlReaderForDoc...
+ d pr extproc('xmlReaderForDoc')
+ d like(xmlTextReaderPtr)
+ d cur * value options(*string) const xmlChar *
+ d URL * value options(*string) const char *
+ d encoding * value options(*string) const char *
+ d options value like(xmlCint)
+
+ d xmlReaderForFile...
+ d pr extproc('xmlReaderForFile')
+ d like(xmlTextReaderPtr)
+ d filename * value options(*string) const char *
+ d encoding * value options(*string) const char *
+ d options value like(xmlCint)
+
+ d xmlReaderForMemory...
+ d pr extproc('xmlReaderForMemory')
+ d like(xmlTextReaderPtr)
+ d buffer * value options(*string) const char *
+ d size value like(xmlCint)
+ d URL * value options(*string) const char *
+ d encoding * value options(*string) const char *
+ d options value like(xmlCint)
+
+ d xmlReaderForFd pr extproc('xmlReaderForFd')
+ d like(xmlTextReaderPtr)
+ d fd value like(xmlCint)
+ d URL * value options(*string) const char *
+ d encoding * value options(*string) const char *
+ d options value like(xmlCint)
+
+ d xmlReaderForIO pr extproc('xmlReaderForIO')
+ d like(xmlTextReaderPtr)
+ d ioread value like(xmlInputReadCallback)
+ d ioclose value like(xmlInputCloseCallback)
+ d ioctx * value void *
+ d URL * value options(*string) const char *
+ d encoding * value options(*string) const char *
+ d options value like(xmlCint)
+
+ d xmlReaderNewWalker...
+ d pr extproc('xmlReaderNewWalker')
+ d like(xmlCint)
+ d reader value like(xmlTextReaderPtr)
+ d doc value like(xmlDocPtr)
+
+ d xmlReaderNewDoc...
+ d pr extproc('xmlReaderNewDoc')
+ d like(xmlCint)
+ d reader value like(xmlTextReaderPtr)
+ d cur * value options(*string) const xmlChar *
+ d URL * value options(*string) const char *
+ d encoding * value options(*string) const char *
+ d options value like(xmlCint)
+
+ d xmlReaderNewFile...
+ d pr extproc('xmlReaderNewFile')
+ d like(xmlCint)
+ d reader value like(xmlTextReaderPtr)
+ d filename * value options(*string) const char *
+ d encoding * value options(*string) const char *
+ d options value like(xmlCint)
+
+ d xmlReaderNewMemory...
+ d pr extproc('xmlReaderNewMemory')
+ d like(xmlCint)
+ d reader value like(xmlTextReaderPtr)
+ d buffer * value options(*string) const char *
+ d size value like(xmlCint)
+ d URL * value options(*string) const char *
+ d encoding * value options(*string) const char *
+ d options value like(xmlCint)
+
+ d xmlReaderNewFd pr extproc('xmlReaderNewFd')
+ d like(xmlCint)
+ d reader value like(xmlTextReaderPtr)
+ d fd value like(xmlCint)
+ d URL * value options(*string) const char *
+ d encoding * value options(*string) const char *
+ d options value like(xmlCint)
+
+ d xmlReaderNewIO pr extproc('xmlReaderNewIO')
+ d like(xmlCint)
+ d reader value like(xmlTextReaderPtr)
+ d ioread value like(xmlInputReadCallback)
+ d ioclose value like(xmlInputCloseCallback)
+ d ioctx * value void *
+ d URL * value options(*string) const char *
+ d encoding * value options(*string) const char *
+ d options value like(xmlCint)
+
+ * Error handling extensions
+
+ d xmlTextReaderLocatorPtr...
+ d s * based(######typedef######) void *
+
+ * xmlTextReaderErrorFunc:
+ * @arg: the user argument
+ * @msg: the message
+ * @severity: the severity of the error
+ * @locator: a locator indicating where the error occured
+ *
+ * Signature of an error callback from a reader parser
+
+ d xmlTextReaderErrorFunc...
+ d s * based(######typedef######)
+ d procptr
+
+ d xmlTextReaderLocatorLineNumber...
+ d pr extproc(
+ d 'xmlTextReaderLocatorLineNumber')
+ d like(xmlCint)
+ d locator value like(xmlTextReaderLocatorPtr)
+
+ d xmlTextReaderLocatorBaseURI...
+ d pr * extproc( xmlChar *
+ d 'xmlTextReaderLocatorBaseURI')
+ d locator value like(xmlTextReaderLocatorPtr)
+
+ d xmlTextReaderSetErrorHandler...
+ d pr extproc(
+ d 'xmlTextReaderSetErrorHandler')
+ d reader value like(xmlTextReaderPtr)
+ d f value like(xmlTextReaderErrorFunc)
+ d arg * value void *
+
+ d xmlTextReaderSetStructuredErrorHandler...
+ d pr extproc('xmlTextReaderSetStructuredE-
+ d rrorHandler')
+ d reader value like(xmlTextReaderPtr)
+ d f value like(xmlStructuredErrorFunc)
+ d arg * value void *
+
+ d xmlTextReaderGetErrorHandler...
+ d pr extproc(
+ d 'xmlTextReaderGetErrorHandler')
+ d reader value like(xmlTextReaderPtr)
+ d f like(xmlTextReaderErrorFunc)
+ d arg * void *(*)
+
+ /endif LIBXML_READER_ENABLD
+ /endif XML_XMLREADER_H__
diff --git a/libxml2/os400/libxmlrpg/xmlregexp.rpgle b/libxml2/os400/libxmlrpg/xmlregexp.rpgle
new file mode 100644
index 0000000..01d411a
--- /dev/null
+++ b/libxml2/os400/libxmlrpg/xmlregexp.rpgle
@@ -0,0 +1,262 @@
+ * Summary: regular expressions handling
+ * Description: basic API for libxml regular expressions handling used
+ * for XML Schemas and validation.
+ *
+ * Copy: See Copyright for the status of this software.
+ *
+ * Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A.
+
+ /if not defined(XML_REGEXP_H__)
+ /define XML_REGEXP_H__
+
+ /include "libxmlrpg/xmlversion"
+
+ /if defined(LIBXML_REGEXP_ENABLED)
+
+ /include "libxmlrpg/xmlTypesC"
+
+ * xmlRegexpPtr:
+ *
+ * A libxml regular expression, they can actually be far more complex
+ * thank the POSIX regex expressions.
+
+ d xmlRegexpPtr s * based(######typedef######)
+
+ * xmlRegExecCtxtPtr:
+ *
+ * A libxml progressive regular expression evaluation context
+
+ d xmlRegExecCtxtPtr...
+ d s * based(######typedef######)
+
+ /include "libxmlrpg/tree"
+ /include "libxmlrpg/dict"
+
+ * The POSIX like API
+
+ d xmlRegexpCompile...
+ d pr extproc('xmlRegexpCompile')
+ d like(xmlRegexpPtr)
+ d regexp * value options(*string) const xmlChar *
+
+ d xmlRegFreeRegexp...
+ d pr extproc('xmlRegFreeRegexp')
+ d regexp value like(xmlRegexpPtr)
+
+ d xmlRegexpExec pr extproc('xmlRegexpExec')
+ d like(xmlCint)
+ d comp value like(xmlRegexpPtr)
+ d value * value options(*string) const xmlChar *
+
+ d xmlRegexpPrint pr extproc('xmlRegexpPrint')
+ d output * value FILE *
+ d regexp value like(xmlRegexpPtr)
+
+ d xmlRegexpIsDeterminist...
+ d pr extproc('xmlRegexpIsDeterminist')
+ d like(xmlCint)
+ d comp value like(xmlRegexpPtr)
+
+ * xmlRegExecCallbacks:
+ * @exec: the regular expression context
+ * @token: the current token string
+ * @transdata: transition data
+ * @inputdata: input data
+ *
+ * Callback function when doing a transition in the automata
+
+ d xmlRegExecCallbacks...
+ d s * based(######typedef######)
+ d procptr
+
+ * The progressive API
+
+ d xmlRegNewExecCtxt...
+ d pr extproc('xmlRegNewExecCtxt')
+ d like(xmlRegExecCtxtPtr)
+ d comp value like(xmlRegexpPtr)
+ d callback value like(xmlRegExecCallbacks)
+ d data * value void *
+
+ d xmlRegFreeExecCtxt...
+ d pr extproc('xmlRegFreeExecCtxt')
+ d exec value like(xmlRegExecCtxtPtr)
+
+ d xmlRegExecPushString...
+ d pr extproc('xmlRegExecPushString')
+ d like(xmlCint)
+ d exec value like(xmlRegExecCtxtPtr)
+ d value * value options(*string) const xmlChar *
+ d data * value void *
+
+ d xmlRegExecPushString2...
+ d pr extproc('xmlRegExecPushString2')
+ d like(xmlCint)
+ d exec value like(xmlRegExecCtxtPtr)
+ d value * value options(*string) const xmlChar *
+ d value2 * value options(*string) const xmlChar *
+ d data * value void *
+
+ d xmlRegExecNextValues...
+ d pr extproc('xmlRegExecNextValues')
+ d like(xmlCint)
+ d exec value like(xmlRegExecCtxtPtr)
+ d nbval like(xmlCint)
+ d nbneg like(xmlCint)
+ d values * xmlChar * (*)
+ d terminal like(xmlCint)
+
+ d xmlRegExecErrInfo...
+ d pr extproc('xmlRegExecErrInfo')
+ d like(xmlCint)
+ d exec value like(xmlRegExecCtxtPtr)
+ d string * const xmlChar * (*)
+ d nbval like(xmlCint)
+ d nbneg like(xmlCint)
+ d values * xmlChar * (*)
+ d terminal like(xmlCint)
+
+ /if defined(LIBXML_EXPR_ENABLED)
+
+ * Formal regular expression handling
+ * Its goal is to do some formal work on content models
+
+ * expressions are used within a context
+
+ d xmlExpCtxtPtr s * based(######typedef######)
+
+ d xmlExpFreeCtxt pr extproc('xmlExpFreeCtxt')
+ d ctxt value like(xmlExpCtxtPtr)
+
+ d xmlExpNewCtxt pr extproc('xmlExpNewCtxt')
+ d like(xmlExpCtxtPtr)
+ d maxNodes value like(xmlCint)
+ d dict value like(xmlDictPtr)
+
+ d xmlExpCtxtNbNodes...
+ d pr extproc('xmlExpCtxtNbNodes')
+ d like(xmlCint)
+ d ctxt value like(xmlExpCtxtPtr)
+
+ d xmlExpCtxtNbCons...
+ d pr extproc('xmlExpCtxtNbCons')
+ d like(xmlCint)
+ d ctxt value like(xmlExpCtxtPtr)
+
+ * Expressions are trees but the tree is opaque
+
+ d xmlExpNodePtr s * based(######typedef######)
+
+ d xmlExpNodeType s based(######typedef######)
+ d like(xmlCenum)
+ d XML_EXP_EMPTY c 0
+ d XML_EXP_FORBID...
+ d c 1
+ d XML_EXP_ATOM c 2
+ d XML_EXP_SEQ c 3
+ d XML_EXP_OR c 4
+ d XML_EXP_COUNT c 5
+
+ * 2 core expressions shared by all for the empty language set
+ * and for the set with just the empty token
+
+ d forbiddenExp s import('forbiddenExp')
+ d like(xmlExpNodePtr)
+
+ d emptyExp s import('emptyExp')
+ d like(xmlExpNodePtr)
+
+
+ * Expressions are reference counted internally
+
+ d xmlExpFree pr extproc('xmlExpFree')
+ d expr value like(xmlExpNodePtr)
+
+ d xmlExpRef pr extproc('xmlExpRef')
+ d expr value like(xmlExpNodePtr)
+
+ * constructors can be either manual or from a string
+
+ d xmlExpParse pr extproc('xmlExpParse')
+ d like(xmlExpNodePtr)
+ d ctxt value like(xmlExpCtxtPtr)
+ d expr * value options(*string) const char *
+
+ d xmlExpNewAtom pr extproc('xmlExpNewAtom')
+ d like(xmlExpNodePtr)
+ d ctxt value like(xmlExpCtxtPtr)
+ d name * value options(*string) const xmlChar *
+ d len value like(xmlCint)
+
+ d xmlExpNewOr pr extproc('xmlExpNewOr')
+ d like(xmlExpNodePtr)
+ d ctxt value like(xmlExpCtxtPtr)
+ d left value like(xmlExpNodePtr)
+ d right value like(xmlExpNodePtr)
+
+ d xmlExpNewSeq pr extproc('xmlExpNewSeq')
+ d like(xmlExpNodePtr)
+ d ctxt value like(xmlExpCtxtPtr)
+ d left value like(xmlExpNodePtr)
+ d right value like(xmlExpNodePtr)
+
+ d xmlExpNewRange pr extproc('xmlExpNewRange')
+ d like(xmlExpNodePtr)
+ d ctxt value like(xmlExpCtxtPtr)
+ d subset value like(xmlExpNodePtr)
+ d min value like(xmlCint)
+ d max value like(xmlCint)
+
+ * The really interesting APIs
+
+ d xmlExpIsNillable...
+ d pr extproc('xmlExpIsNillable')
+ d like(xmlCint)
+ d expr value like(xmlExpNodePtr)
+
+ d xmlExpMaxToken pr extproc('xmlExpMaxToken')
+ d like(xmlCint)
+ d expr value like(xmlExpNodePtr)
+
+ d xmlExpGetLanguage...
+ d pr extproc('xmlExpGetLanguage')
+ d like(xmlCint)
+ d ctxt value like(xmlExpCtxtPtr)
+ d expr value like(xmlExpNodePtr)
+ d langList * const xmlChar *(*)
+ d len value like(xmlCint)
+
+ d xmlExpGetStart pr extproc('xmlExpGetStart')
+ d like(xmlCint)
+ d ctxt value like(xmlExpCtxtPtr)
+ d expr value like(xmlExpNodePtr)
+ d tokList * const xmlChar *(*)
+ d len value like(xmlCint)
+
+ d xmlExpStringDerive...
+ d pr extproc('xmlExpStringDerive')
+ d like(xmlExpNodePtr)
+ d ctxt value like(xmlExpCtxtPtr)
+ d expr value like(xmlExpNodePtr)
+ d str * value options(*string) const xmlChar *
+ d len value like(xmlCint)
+
+ d xmlExpExpDerive...
+ d pr extproc('xmlExpExpDerive')
+ d like(xmlExpNodePtr)
+ d ctxt value like(xmlExpCtxtPtr)
+ d expr value like(xmlExpNodePtr)
+ d sub value like(xmlExpNodePtr)
+
+ d xmlExpSubsume pr extproc('xmlExpSubsume')
+ d like(xmlCint)
+ d ctxt value like(xmlExpCtxtPtr)
+ d expr value like(xmlExpNodePtr)
+ d sub value like(xmlExpNodePtr)
+
+ d xmlExpDump pr extproc('xmlExpDump')
+ d buf value like(xmlBufferPtr)
+ d expr value like(xmlExpNodePtr)
+ /endif LIBXML_EXPR_ENABLED
+ /endif LIBXML_REGEXP_ENABLD
+ /endif XML_REGEXP_H__
diff --git a/libxml2/os400/libxmlrpg/xmlsave.rpgle b/libxml2/os400/libxmlrpg/xmlsave.rpgle
new file mode 100644
index 0000000..ad0d15d
--- /dev/null
+++ b/libxml2/os400/libxmlrpg/xmlsave.rpgle
@@ -0,0 +1,105 @@
+ * Summary: the XML document serializer
+ * Description: API to save document or subtree of document
+ *
+ * Copy: See Copyright for the status of this software.
+ *
+ * Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A.
+
+ /if not defined(XML_XMLSAVE_H__)
+ /define XML_XMLSAVE_H__
+
+ /include "libxmlrpg/xmlversion"
+
+ /if defined(LIBXML_OUTPUT_ENABLED)
+
+ /include "libxmlrpg/xmlTypesC"
+ /include "libxmlrpg/tree"
+ /include "libxmlrpg/encoding"
+ /include "libxmlrpg/xmlIO"
+
+ * xmlSaveOption:
+ *
+ * This is the set of XML save options that can be passed down
+ * to the xmlSaveToFd() and similar calls.
+
+ d xmlSaveOption s based(######typedef######)
+ d like(xmlCenum)
+ d XML_SAVE_FORMAT... Format save output
+ d c X'0001'
+ d XML_SAVE_NO_DECL... Drop xml declaration
+ d c X'0002'
+ d XML_SAVE_NO_EMPTY... No empty tags
+ d c X'0004'
+ d XML_SAVE_NO_XHTML... No XHTML1 specific
+ d c X'0008'
+ d XML_SAVE_XHTML... Frce XHTML1 specific
+ d c X'0010'
+ d XML_SAVE_AS_XML... Frce XML on HTML doc
+ d c X'0020'
+ d XML_SAVE_AS_HTML... Frce HTML on XML doc
+ d c X'0040'
+ d XML_SAVE_WSNONSIG... Fmt w/ non-sig space
+ d c X'0080'
+
+ d xmlSaveCtxtPtr s * based(######typedef######)
+
+ d xmlSaveToFd pr extproc('xmlSaveToFd')
+ d like(xmlSaveCtxtPtr)
+ d fd value like(xmlCint)
+ d encoding * value options(*string) const char *
+ d options value like(xmlCint)
+
+ d xmlSaveToFilename...
+ d pr extproc('xmlSaveToFilename')
+ d like(xmlSaveCtxtPtr)
+ d filename * value options(*string) const char *
+ d encoding * value options(*string) const char *
+ d options value like(xmlCint)
+
+ d xmlSaveToBuffer...
+ d pr extproc('xmlSaveToBuffer')
+ d like(xmlSaveCtxtPtr)
+ d buffer value like(xmlBufferPtr)
+ d encoding * value options(*string) const char *
+ d options value like(xmlCint)
+
+ d xmlSaveToIO pr extproc('xmlSaveToIO')
+ d like(xmlSaveCtxtPtr)
+ d iowrite value like(xmlOutputWriteCallback)
+ d ioclose value like(xmlOutputCloseCallback)
+ d ioctx * value void *
+ d encoding * value options(*string) const char *
+ d options value like(xmlCint)
+
+ d xmlSaveDoc pr extproc('xmlSaveDoc')
+ d like(xmlClong)
+ d ctxt value like(xmlSaveCtxtPtr)
+ d doc value like(xmlDocPtr)
+
+ d xmlSaveTree pr extproc('xmlSaveTree')
+ d like(xmlClong)
+ d ctxt value like(xmlSaveCtxtPtr)
+ d node value like(xmlNodePtr)
+
+ d xmlSaveFlush pr extproc('xmlSaveFlush')
+ d like(xmlCint)
+ d ctxt value like(xmlSaveCtxtPtr)
+
+ d xmlSaveClose pr extproc('xmlSaveClose')
+ d like(xmlCint)
+ d ctxt value like(xmlSaveCtxtPtr)
+
+ d xmlSaveSetEscape...
+ d pr extproc('xmlSaveSetEscape')
+ d like(xmlCint)
+ d ctxt value like(xmlSaveCtxtPtr)
+ d escape value like(xmlCharEncodingOutputFunc)
+
+ d xmlSaveSetAttrEscape...
+ d pr extproc('xmlSaveSetAttrEscape')
+ d like(xmlCint)
+ d ctxt value like(xmlSaveCtxtPtr)
+ d escape value like(xmlCharEncodingOutputFunc)
+
+ /endif LIBXML_OUTPUT_ENABLD
+ /endif XML_XMLSAVE_H__
diff --git a/libxml2/os400/libxmlrpg/xmlschemas.rpgle b/libxml2/os400/libxmlrpg/xmlschemas.rpgle
new file mode 100644
index 0000000..f34ddcd
--- /dev/null
+++ b/libxml2/os400/libxmlrpg/xmlschemas.rpgle
@@ -0,0 +1,331 @@
+ * Summary: incomplete XML Schemas structure implementation
+ * Description: interface to the XML Schemas handling and schema validity
+ * checking, it is incomplete right now.
+ *
+ * Copy: See Copyright for the status of this software.
+ *
+ * Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A.
+
+ /if not defined(XML_SCHEMA_H__)
+ /define XML_SCHEMA_H__
+
+ /include "libxmlrpg/xmlversion"
+
+ /if defined(LIBXML_SCHEMAS_ENABLED)
+
+ /include "libxmlrpg/xmlTypesC"
+ /include "libxmlrpg/tree"
+
+ * This error codes are obsolete; not used any more.
+
+ d xmlSchemaValidError...
+ d s based(######typedef######)
+ d like(xmlCenum)
+ d XML_SCHEMAS_ERR_OK...
+ d c 0
+ d XML_SCHEMAS_ERR_NOROOT...
+ d c 1
+ d XML_SCHEMAS_ERR_UNDECLAREDELEM...
+ d c 2
+ d XML_SCHEMAS_ERR_NOTTOPLEVEL...
+ d c 3
+ d XML_SCHEMAS_ERR_MISSING...
+ d c 4
+ d XML_SCHEMAS_ERR_WRONGELEM...
+ d c 5
+ d XML_SCHEMAS_ERR_NOTYPE...
+ d c 6
+ d XML_SCHEMAS_ERR_NOROLLBACK...
+ d c 7
+ d XML_SCHEMAS_ERR_ISABSTRACT...
+ d c 8
+ d XML_SCHEMAS_ERR_NOTEMPTY...
+ d c 9
+ d XML_SCHEMAS_ERR_ELEMCONT...
+ d c 10
+ d XML_SCHEMAS_ERR_HAVEDEFAULT...
+ d c 11
+ d XML_SCHEMAS_ERR_NOTNILLABLE...
+ d c 12
+ d XML_SCHEMAS_ERR_EXTRACONTENT...
+ d c 13
+ d XML_SCHEMAS_ERR_INVALIDATTR...
+ d c 14
+ d XML_SCHEMAS_ERR_INVALIDELEM...
+ d c 15
+ d XML_SCHEMAS_ERR_NOTDETERMINIST...
+ d c 16
+ d XML_SCHEMAS_ERR_CONSTRUCT...
+ d c 17
+ d XML_SCHEMAS_ERR_INTERNAL...
+ d c 18
+ d XML_SCHEMAS_ERR_NOTSIMPLE...
+ d c 19
+ d XML_SCHEMAS_ERR_ATTRUNKNOWN...
+ d c 20
+ d XML_SCHEMAS_ERR_ATTRINVALID...
+ d c 21
+ d XML_SCHEMAS_ERR_VALUE...
+ d c 22
+ d XML_SCHEMAS_ERR_FACET...
+ d c 23
+ d XML_SCHEMAS_ERR_...
+ d c 24
+ d XML_SCHEMAS_ERR_XXX...
+ d c 25
+
+ * ATTENTION: Change xmlSchemaSetValidOptions's check
+ * for invalid values, if adding to the validation
+ * options below.
+
+ * xmlSchemaValidOption:
+ *
+ * This is the set of XML Schema validation options.
+
+ d xmlSchemaValidOption...
+ d s based(######typedef######)
+ d like(xmlCenum)
+ *
+ * Default/fixed: create an attribute node
+ * or an element's text node on the instance.
+ *
+ d XML_SCHEMA_VAL_VC_I_CREATE...
+ d c X'0001'
+ /if defined(DISABLED)
+ *
+ * assemble schemata using
+ * xsi:schemaLocation and
+ * xsi:noNamespaceSchemaLocation
+ *
+ d XML_SCHEMA_VAL_XSI_ASSEMBLE...
+ d c X'0002'
+ /endif
+
+ * The schemas related types are kept internal
+
+ d xmlSchemaPtr s * based(######typedef######)
+
+ * xmlSchemaValidityErrorFunc:
+ * @ctx: the validation context
+ * @msg: the message
+ * @...: extra arguments
+ *
+ * Signature of an error callback from an XSD validation
+
+ d xmlSchemaValidityErrorFunc...
+ d s * based(######typedef######)
+ d procptr
+
+ * xmlSchemaValidityWarningFunc:
+ * @ctx: the validation context
+ * @msg: the message
+ * @...: extra arguments
+ *
+ * Signature of a warning callback from an XSD validation
+
+ d xmlSchemaValidityWarningFunc...
+ d s * based(######typedef######)
+ d procptr
+
+ * A schemas validation context
+
+ d xmlSchemaParserCtxtPtr...
+ d s * based(######typedef######)
+
+ d xmlSchemaValidCtxtPtr...
+ d s * based(######typedef######)
+
+ * xmlSchemaValidityLocatorFunc:
+ * @ctx: user provided context
+ * @file: returned file information
+ * @line: returned line information
+ *
+ * A schemas validation locator, a callback called by the validator.
+ * This is used when file or node informations are not available
+ * to find out what file and line number are affected
+ *
+ * Returns: 0 in case of success and -1 in case of error
+
+ d xmlSchemaValidityLocatorFunc...
+ d s * based(######typedef######)
+ d procptr
+
+ * Interfaces for parsing.
+
+ d xmlSchemaNewParserCtxt...
+ d pr extproc('xmlSchemaNewParserCtxt')
+ d like(xmlSchemaParserCtxtPtr)
+ d URL * value options(*string) const char *
+
+ d xmlSchemaNewMemParserCtxt...
+ d pr extproc('xmlSchemaNewMemParserCtxt')
+ d like(xmlSchemaParserCtxtPtr)
+ d buffer * value options(*string) const char *
+ d size value like(xmlCint)
+
+ d xmlSchemaNewDocParserCtxt...
+ d pr extproc('xmlSchemaNewDocParserCtxt')
+ d like(xmlSchemaParserCtxtPtr)
+ d doc value like(xmlDocPtr)
+
+ d xmlSchemaFreeParserCtxt...
+ d pr extproc('xmlSchemaFreeParserCtxt')
+ d ctxt value like(xmlSchemaParserCtxtPtr)
+
+ d xmlSchemaSetParserErrors...
+ d pr extproc('xmlSchemaSetParserErrors')
+ d ctxt value like(xmlSchemaParserCtxtPtr)
+ d err value
+ d like(xmlSchemaValidityErrorFunc)
+ d warn value
+ d like(xmlSchemaValidityWarningFunc)
+ d ctx * value void *
+
+ d xmlSchemaSetParserStructuredErrors...
+ d pr extproc(
+ d 'xmlSchemaSetParserStructuredErrors')
+ d ctxt value like(xmlSchemaParserCtxtPtr)
+ d serror value like(xmlStructuredErrorFunc)
+ d ctx * value void *
+
+ d xmlSchemaGetParserErrors...
+ d pr extproc('xmlSchemaGetParserErrors')
+ d like(xmlCint)
+ d ctxt value like(xmlSchemaParserCtxtPtr)
+ d err like(xmlSchemaValidityErrorFunc)
+ d warn like(xmlSchemaValidityWarningFunc)
+ d ctx * void *(*)
+
+ d xmlSchemaIsValid...
+ d pr extproc('xmlSchemaIsValid')
+ d like(xmlCint)
+ d ctxt value like(xmlSchemaValidCtxtPtr)
+
+ d xmlSchemaParse pr extproc('xmlSchemaParse')
+ d like(xmlSchemaPtr)
+ d ctxt value like(xmlSchemaParserCtxtPtr)
+
+ d xmlSchemaFree pr extproc('xmlSchemaFree')
+ d schema value like(xmlSchemaPtr)
+
+ /if defined(LIBXML_OUTPUT_ENABLED)
+ d xmlSchemaDump pr extproc('xmlSchemaDump')
+ d output * value FILE *
+ d schema value like(xmlSchemaPtr)
+ /endif LIBXML_OUTPUT_ENABLD
+
+ * Interfaces for validating
+
+ d xmlSchemaSetValidErrors...
+ d pr extproc('xmlSchemaSetValidErrors')
+ d ctxt value like(xmlSchemaValidCtxtPtr)
+ d err value
+ d like(xmlSchemaValidityErrorFunc)
+ d warn value
+ d like(xmlSchemaValidityWarningFunc)
+ d ctx * value void *
+
+ d xmlSchemaSetValidStructuredErrors...
+ d pr extproc(
+ d 'xmlSchemaSetValidStructuredErrors')
+ d ctxt value like(xmlSchemaValidCtxtPtr)
+ d serror value like(xmlStructuredErrorFunc)
+ d ctx * value void *
+
+ d xmlSchemaGetValidErrors...
+ d pr extproc('xmlSchemaGetValidErrors')
+ d like(xmlCint)
+ d ctxt value like(xmlSchemaValidCtxtPtr)
+ d err like(xmlSchemaValidityErrorFunc)
+ d warn like(xmlSchemaValidityWarningFunc)
+ d ctx * void *(*)
+
+ d xmlSchemaSetValidOptions...
+ d pr extproc('xmlSchemaSetValidOptions')
+ d like(xmlCint)
+ d ctxt value like(xmlSchemaValidCtxtPtr)
+ d options value like(xmlCint)
+
+ d xmlSchemaValidateSetFilename...
+ d pr extproc(
+ d 'xmlSchemaValidateSetFilename')
+ d vctxt value like(xmlSchemaValidCtxtPtr)
+ d filename * value options(*string) const char *
+
+ d xmlSchemaValidCtxtGetOptions...
+ d pr extproc(
+ d 'xmlSchemaValidCtxtGetOptions')
+ d like(xmlCint)
+ d ctxt value like(xmlSchemaValidCtxtPtr)
+
+ d xmlSchemaNewValidCtxt...
+ d pr extproc('xmlSchemaNewValidCtxt')
+ d like(xmlSchemaValidCtxtPtr)
+ d schema value like(xmlSchemaPtr)
+
+ d xmlSchemaFreeValidCtxt...
+ d pr extproc('xmlSchemaFreeValidCtxt')
+ d ctxt value like(xmlSchemaValidCtxtPtr)
+
+ d xmlSchemaValidateDoc...
+ d pr extproc('xmlSchemaValidateDoc')
+ d like(xmlCint)
+ d ctxt value like(xmlSchemaValidCtxtPtr)
+ d instance value like(xmlDocPtr)
+
+ d xmlSchemaValidateOneElement...
+ d pr extproc(
+ d 'xmlSchemaValidateOneElement')
+ d like(xmlCint)
+ d ctxt value like(xmlSchemaValidCtxtPtr)
+ d elem value like(xmlNodePtr)
+
+ d xmlSchemaValidateStream...
+ d pr extproc('xmlSchemaValidateStream')
+ d like(xmlCint)
+ d ctxt value like(xmlSchemaValidCtxtPtr)
+ d input value like(xmlParserInputBufferPtr)
+ d enc value like(xmlCharEncoding)
+ d sax value like(xmlSAXHandlerPtr)
+ d user_data * value void *
+
+ d xmlSchemaValidateFile...
+ d pr extproc('xmlSchemaValidateFile')
+ d like(xmlCint)
+ d ctxt value like(xmlSchemaValidCtxtPtr)
+ d filename * value options(*string) const char *
+ d options value like(xmlCint)
+
+ d xmlSchemaValidCtxtGetParserCtxt...
+ d pr extproc(
+ d 'xmlSchemaValidCtxtGetParserCtxt')
+ d like(xmlParserCtxtPtr)
+ d ctxt value like(xmlSchemaValidCtxtPtr)
+
+ * Interface to insert Schemas SAX validation in a SAX stream
+
+ d xmlSchemaSAXPlugPtr...
+ d s * based(######typedef######)
+
+ d xmlSchemaSAXPlug...
+ d pr extproc('xmlSchemaSAXPlug')
+ d like(xmlSchemaSAXPlugPtr)
+ d ctxt value like(xmlSchemaValidCtxtPtr)
+ d sax like(xmlSAXHandlerPtr)
+ d user_data * void *(*)
+
+ d xmlSchemaSAXUnplug...
+ d pr extproc('xmlSchemaSAXUnplug')
+ d like(xmlCint)
+ d plug value like(xmlSchemaSAXPlugPtr)
+
+ d xmlSchemaValidateSetLocator...
+ d pr extproc(
+ d 'xmlSchemaValidateSetLocator')
+ d vctxt value like(xmlSchemaValidCtxtPtr)
+ d f value
+ d like(xmlSchemaValidityLocatorFunc)
+ d ctxt * value void *
+
+ /endif LIBXML_SCHEMAS_ENBLD
+ /endif XML_SCHEMA_H__
diff --git a/libxml2/os400/libxmlrpg/xmlschemastypes.rpgle b/libxml2/os400/libxmlrpg/xmlschemastypes.rpgle
new file mode 100644
index 0000000..ecd6aba
--- /dev/null
+++ b/libxml2/os400/libxmlrpg/xmlschemastypes.rpgle
@@ -0,0 +1,254 @@
+ * Summary: implementation of XML Schema Datatypes
+ * Description: module providing the XML Schema Datatypes implementation
+ * both definition and validity checking
+ *
+ * Copy: See Copyright for the status of this software.
+ *
+ * Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A.
+
+ /if not defined(XML_SCHEMA_TYPES_H__)
+ /define XML_SCHEMA_TYPES_H__
+
+ /include "libxmlrpg/xmlversion"
+
+ /if defined(LIBXML_SCHEMAS_ENABLED)
+
+ /include "libxmlrpg/xmlTypesC"
+ /include "libxmlrpg/schemasInternals"
+ /include "libxmlrpg/xmlschemas"
+
+ d xmlSchemaWhitespaceValueType...
+ d s based(######typedef######)
+ d like(xmlCenum)
+ d XML_SCHEMA_WHITESPACE_UNKNOWN...
+ d c 0
+ d XML_SCHEMA_WHITESPACE_PRESERVE...
+ d c 1
+ d XML_SCHEMA_WHITESPACE_REPLACE...
+ d c 2
+ d XML_SCHEMA_WHITESPACE_COLLAPSE...
+ d c 3
+
+ d xmlSchemaInitTypes...
+ d pr extproc('xmlSchemaInitTypes')
+
+ d xmlSchemaCleanupTypes...
+ d pr extproc('xmlSchemaCleanupTypes')
+
+ d xmlSchemaGetPredefinedType...
+ d pr extproc('xmlSchemaGetPredefinedType')
+ d like(xmlSchemaTypePtr)
+ d name * value options(*string) const xmlChar *
+ d ns * value options(*string) const xmlChar *
+
+ d xmlSchemaValidatePredefinedType...
+ d pr extproc(
+ d 'xmlSchemaValidatePredefinedType')
+ d like(xmlCint)
+ d type value like(xmlSchemaTypePtr)
+ d value * value options(*string) const xmlChar *
+ d val * value xmlSchemaValPtr *
+
+ d xmlSchemaValPredefTypeNode...
+ d pr extproc('xmlSchemaValPredefTypeNode')
+ d like(xmlCint)
+ d type value like(xmlSchemaTypePtr)
+ d value * value options(*string) const xmlChar *
+ d val * value xmlSchemaValPtr *
+ d node value like(xmlNodePtr)
+
+ d xmlSchemaValidateFacet...
+ d pr extproc('xmlSchemaValidateFacet')
+ d like(xmlCint)
+ d base value like(xmlSchemaTypePtr)
+ d facet value like(xmlSchemaFacetPtr)
+ d value * value options(*string) const xmlChar *
+ d val value like(xmlSchemaValPtr)
+
+ d xmlSchemaValidateFacetWhtsp...
+ d pr extproc(
+ d 'xmlSchemaValidateFacetWhtsp')
+ d like(xmlCint)
+ d facet value like(xmlSchemaFacetPtr)
+ d fws value
+ d like(xmlSchemaWhitespaceValueType)
+ d valType value like(xmlSchemaValType)
+ d value * value options(*string) const xmlChar *
+ d val value like(xmlSchemaValPtr)
+ d ws value
+ d like(xmlSchemaWhitespaceValueType)
+
+ d xmlSchemaFreeValue...
+ d pr extproc('xmlSchemaFreeValue')
+ d val value like(xmlSchemaValPtr)
+
+ d xmlSchemaNewFacet...
+ d pr extproc('xmlSchemaNewFacet')
+ d like(xmlSchemaFacetPtr)
+
+ d xmlSchemaCheckFacet...
+ d pr extproc('xmlSchemaCheckFacet')
+ d like(xmlCint)
+ d facet value like(xmlSchemaFacetPtr)
+ d typeDecl value like(xmlSchemaTypePtr)
+ d ctxt value like(xmlSchemaParserCtxtPtr)
+ d name * value options(*string) const xmlChar *
+
+ d xmlSchemaFreeFacet...
+ d pr extproc('xmlSchemaFreeFacet')
+ d facet value like(xmlSchemaFacetPtr)
+
+ d xmlSchemaCompareValues...
+ d pr extproc('xmlSchemaCompareValues')
+ d like(xmlCint)
+ d x value like(xmlSchemaValPtr)
+ d y value like(xmlSchemaValPtr)
+
+ d xmlSchemaGetBuiltInListSimpleTypeItemType...
+ d pr extproc('xmlSchemaGetBuiltInListSimp-
+ d leTypeItemType')
+ d like(xmlSchemaTypePtr)
+ d type value like(xmlSchemaTypePtr)
+
+ d xmlSchemaValidateListSimpleTypeFacet...
+ d pr extproc('xmlSchemaValidateListSimple-
+ d TypeFacet')
+ d like(xmlCint)
+ d facet value like(xmlSchemaFacetPtr)
+ d value * value options(*string) const xmlChar *
+ d actualLen value like(xmlCulong)
+ d expectedLen * value unsigned long *
+
+ d xmlSchemaGetBuiltInType...
+ d pr extproc('xmlSchemaGetBuiltInType')
+ d like(xmlSchemaTypePtr)
+ d type value like(xmlSchemaValType)
+
+ d xmlSchemaIsBuiltInTypeFacet...
+ d pr extproc(
+ d 'xmlSchemaIsBuiltInTypeFacet')
+ d like(xmlCint)
+ d type value like(xmlSchemaTypePtr)
+ d facetType value like(xmlCint)
+
+ d xmlSchemaCollapseString...
+ d pr * extproc('xmlSchemaCollapseString') xmlChar *
+ d value * value options(*string) const xmlChar *
+
+ d xmlSchemaWhiteSpaceReplace...
+ d pr * extproc('xmlSchemaWhiteSpaceReplace')xmlChar *
+ d value * value options(*string) const xmlChar *
+
+ d xmlSchemaGetFacetValueAsULong...
+ d pr extproc(
+ d 'xmlSchemaGetFacetValueAsULong')
+ d like(xmlCulong)
+ d facet value like(xmlSchemaFacetPtr)
+
+ d xmlSchemaValidateLengthFacet...
+ d pr extproc(
+ d 'xmlSchemaValidateLengthFacet')
+ d like(xmlCint)
+ d type value like(xmlSchemaTypePtr)
+ d facet value like(xmlSchemaFacetPtr)
+ d value * value options(*string) const xmlChar *
+ d val value like(xmlSchemaValPtr)
+ d length like(xmlCulong)
+
+ d xmlSchemaValidateLengthFacetWhtsp...
+ d pr extproc(
+ d 'xmlSchemaValidateLengthFacetWhtsp')
+ d like(xmlCint)
+ d facet value like(xmlSchemaFacetPtr)
+ d valType value like(xmlSchemaValType)
+ d value * value options(*string) const xmlChar *
+ d val value like(xmlSchemaValPtr)
+ d length like(xmlCulong)
+ d ws value
+ d like(xmlSchemaWhitespaceValueType)
+
+ d xmlSchemaValPredefTypeNodeNoNorm...
+ d pr extproc(
+ d 'xmlSchemaValPredefTypeNodeNoNorm')
+ d like(xmlCint)
+ d type value like(xmlSchemaTypePtr)
+ d value * value options(*string) const xmlChar *
+ d val like(xmlSchemaValPtr)
+ d node value like(xmlNodePtr)
+
+ d xmlSchemaGetCanonValue...
+ d pr extproc('xmlSchemaGetCanonValue')
+ d like(xmlCint)
+ d val value like(xmlSchemaValPtr)
+ d retValue * value const xmlChar * *
+
+ d xmlSchemaGetCanonValueWhtsp...
+ d pr extproc(
+ d 'xmlSchemaGetCanonValueWhtsp')
+ d like(xmlCint)
+ d val value like(xmlSchemaValPtr)
+ d retValue * value const xmlChar * *
+ d ws value
+ d like(xmlSchemaWhitespaceValueType)
+
+ d xmlSchemaValueAppend...
+ d pr extproc('xmlSchemaValueAppend')
+ d like(xmlCint)
+ d prev value like(xmlSchemaValPtr)
+ d cur value like(xmlSchemaValPtr)
+
+ d xmlSchemaValueGetNext...
+ d pr extproc('xmlSchemaValueGetNext')
+ d like(xmlSchemaValPtr)
+ d cur value like(xmlSchemaValPtr)
+
+ d xmlSchemaValueGetAsString...
+ d pr * extproc('xmlSchemaValueGetAsString') const xmlChar *
+ d val value like(xmlSchemaValPtr)
+
+ d xmlSchemaValueGetAsBoolean...
+ d pr extproc('xmlSchemaValueGetAsBoolean')
+ d like(xmlCint)
+ d val value like(xmlSchemaValPtr)
+
+ d xmlSchemaNewStringValue...
+ d pr extproc('xmlSchemaNewStringValue')
+ d like(xmlSchemaValPtr)
+ d type value like(xmlSchemaValType)
+ d value * value options(*string) const xmlChar *
+
+ d xmlSchemaNewNOTATIONValue...
+ d pr extproc('xmlSchemaNewNOTATIONValue')
+ d like(xmlSchemaValPtr)
+ d name * value options(*string) const xmlChar *
+ d ns * value options(*string) const xmlChar *
+
+ d xmlSchemaNewQNameValue...
+ d pr extproc('xmlSchemaNewQNameValue')
+ d like(xmlSchemaValPtr)
+ d namespaceName * value options(*string) const xmlChar *
+ d localName * value options(*string) const xmlChar *
+
+ d xmlSchemaCompareValuesWhtsp...
+ d pr extproc(
+ d 'xmlSchemaCompareValuesWhtsp')
+ d like(xmlCint)
+ d x value like(xmlSchemaValPtr)
+ d xws value
+ d like(xmlSchemaWhitespaceValueType)
+ d y value like(xmlSchemaValPtr)
+ d yws value
+ d like(xmlSchemaWhitespaceValueType)
+
+ d xmlSchemaCopyValue...
+ d pr extproc('xmlSchemaCopyValue')
+ d like(xmlSchemaValPtr)
+ d val value like(xmlSchemaValPtr)
+
+ d xmlSchemaGetValType...
+ d pr extproc('xmlSchemaGetValType')
+ d like(xmlSchemaValType)
+ d val value like(xmlSchemaValPtr)
+
+ /endif LIBXML_SCHEMAS_ENBLD
+ /endif XML_SCHEMA_TYPES_H__
diff --git a/libxml2/os400/libxmlrpg/xmlstdarg.rpgle b/libxml2/os400/libxmlrpg/xmlstdarg.rpgle
new file mode 100644
index 0000000..3c8e200
--- /dev/null
+++ b/libxml2/os400/libxmlrpg/xmlstdarg.rpgle
@@ -0,0 +1,35 @@
+ * Summary: va_list support for ILE/RPG.
+ *
+ * Copy: See Copyright for the status of this software.
+ *
+ * Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A.
+
+ /if not defined(XML_STDARG_H__)
+ /define XML_STDARG_H__
+
+ /include "libxmlrpg/xmlversion"
+ /include "libxmlrpg/xmlTypesC"
+
+ * The va_list object.
+
+ d xmlVaList ds based(######typedef######)
+ d align qualified
+ d current *
+ d next *
+
+ * Procedures.
+
+ d xmlVaStart pr extproc('__xmlVaStart')
+ d list likeds(xmlVaList)
+ d lastargaddr * value
+ d lastargsize value like(xmlCsize_t)
+
+ d xmlVaArg pr * extproc('__xmlVaArg')
+ d list likeds(xmlVaList)
+ d dest * value
+ d argsize value like(xmlCsize_t)
+
+ d xmlVaEnd pr extproc('__xmlVaEnd')
+ d list likeds(xmlVaList)
+
+ /endif XML_STDARG_H__
diff --git a/libxml2/os400/libxmlrpg/xmlstring.rpgle b/libxml2/os400/libxmlrpg/xmlstring.rpgle
new file mode 100644
index 0000000..8980fc0
--- /dev/null
+++ b/libxml2/os400/libxmlrpg/xmlstring.rpgle
@@ -0,0 +1,180 @@
+ * Summary: set of routines to process strings
+ * Description: type and interfaces needed for the internal string
+ * handling of the library, especially UTF8 processing.
+ *
+ * Copy: See Copyright for the status of this software.
+ *
+ * Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A.
+
+ /if not defined(XML_STRING_H__)
+ /define XML_STRING_H__
+
+ /include "libxmlrpg/xmlversion"
+ /include "libxmlrpg/xmlTypesC"
+ /include "libxmlrpg/xmlstdarg"
+
+ * xmlChar:
+ *
+ * This is a basic byte in an UTF-8 encoded string.
+ * It's unsigned allowing to pinpoint case where char * are assigned
+ * to xmlChar * (possibly making serialization back impossible).
+
+ d xmlChar s based(######typedef######)
+ d like(xmlCuchar)
+
+ * xmlChar handling
+
+ d xmlStrdup pr * extproc('xmlStrdup') xmlChar *
+ d cur * value options(*string) const xmlChar *
+
+ d xmlStrndup pr * extproc('xmlStrndup') xmlChar *
+ d cur * value options(*string) const xmlChar *
+ d len value like(xmlCint)
+
+ d xmlCharStrndup pr * extproc('xmlCharStrndup') xmlChar *
+ d cur * value options(*string) const char *
+ d len value like(xmlCint)
+
+ d xmlCharStrdup pr * extproc('xmlCharStrdup') xmlChar *
+ d cur * value options(*string) const char *
+
+ d xmlStrsub pr * extproc('xmlStrsub') const xmlChar *
+ d str * value options(*string) const xmlChar *
+ d start value like(xmlCint)
+ d len value like(xmlCint)
+
+ d xmlStrchr pr * extproc('xmlStrchr') const xmlChar *
+ d str * value options(*string) const xmlChar *
+ d val value like(xmlChar)
+
+ d xmlStrstr pr * extproc('xmlStrstr') const xmlChar *
+ d str * value options(*string) const xmlChar *
+ d val * value options(*string) const xmlChar *
+
+ d xmlStrcasestr pr * extproc('xmlStrcasestr') const xmlChar *
+ d str * value options(*string) const xmlChar *
+ d val * value options(*string) const xmlChar *
+
+ d xmlStrcmp pr extproc('xmlStrcmp')
+ d like(xmlCint)
+ d str1 * value options(*string) const xmlChar *
+ d str2 * value options(*string) const xmlChar *
+
+ d xmlStrncmp pr extproc('xmlStrncmp')
+ d like(xmlCint)
+ d str1 * value options(*string) const xmlChar *
+ d str2 * value options(*string) const xmlChar *
+ d len value like(xmlCint)
+
+ d xmlStrcasecmp pr extproc('xmlStrcasecmp')
+ d like(xmlCint)
+ d str1 * value options(*string) const xmlChar *
+ d str2 * value options(*string) const xmlChar *
+
+ d xmlStrncasecmp pr extproc('xmlStrncasecmp')
+ d like(xmlCint)
+ d str1 * value options(*string) const xmlChar *
+ d str2 * value options(*string) const xmlChar *
+ d len value like(xmlCint)
+
+ d xmlStrEqual pr extproc('xmlStrEqual')
+ d like(xmlCint)
+ d str1 * value options(*string) const xmlChar *
+ d str2 * value options(*string) const xmlChar *
+
+ d xmlStrQEqual pr extproc('xmlStrQEqual')
+ d like(xmlCint)
+ d pref * value options(*string) const xmlChar *
+ d name * value options(*string) const xmlChar *
+ d stre * value options(*string) const xmlChar *
+
+ d xmlStrlen pr extproc('xmlStrlen')
+ d like(xmlCint)
+ d str * value options(*string) const xmlChar *
+
+ d xmlStrcat pr * extproc('xmlStrcat') xmlChar *
+ d cur * value options(*string) xmlChar *
+ d add * value options(*string) const xmlChar *
+
+ d xmlStrncat pr * extproc('xmlStrncat') xmlChar *
+ d cur * value options(*string) xmlChar *
+ d add * value options(*string) const xmlChar *
+ d len value like(xmlCint)
+
+ d xmlStrncatNew pr * extproc('xmlStrncatNew') xmlChar *
+ d str1 * value options(*string) const xmlChar *
+ d str2 * value options(*string) const xmlChar *
+ d len value like(xmlCint)
+
+ * xmlStrPrintf() is a vararg function.
+ * The following prototype supports up to 8 pointer arguments.
+ * Other argument signature can be achieved by defining alternate
+ * prototypes redirected to the same function.
+
+ d xmlStrPrintf pr extproc('xmlStrPrintf')
+ d like(xmlCint)
+ d buf * value options(*string) xmlChar *
+ d len value like(xmlCint)
+ d msg * value options(*string) const xmlChar *
+ d arg1 * value options(*string: *nopass)
+ d arg2 * value options(*string: *nopass)
+ d arg3 * value options(*string: *nopass)
+ d arg4 * value options(*string: *nopass)
+ d arg5 * value options(*string: *nopass)
+ d arg6 * value options(*string: *nopass)
+ d arg7 * value options(*string: *nopass)
+ d arg8 * value options(*string: *nopass)
+
+ d xmlStrVPrintf pr extproc('xmlStrVPrintf')
+ d like(xmlCint)
+ d buf * value options(*string) xmlChar *
+ d len value like(xmlCint)
+ d msg * value options(*string) const xmlChar *
+ d ap likeds(xmlVaList)
+
+ d xmlGetUTF8Char pr extproc('xmlGetUTF8Char')
+ d like(xmlCint)
+ d utf * value options(*string) const uns. char *
+ d len like(xmlCint)
+
+ d xmlCheckUTF8 pr extproc('xmlCheckUTF8')
+ d like(xmlCint)
+ d utf * value options(*string) const uns. char *
+
+ d xmlUTF8Strsize pr extproc('xmlUTF8Strsize')
+ d like(xmlCint)
+ d utf * value options(*string) const xmlChar *
+ d len value like(xmlCint)
+
+ d xmlUTF8Strndup pr * extproc('xmlUTF8Strndup') xmlChar *
+ d utf * value options(*string) const xmlChar *
+ d len value like(xmlCint)
+
+ d xmlUTF8Strpos pr * extproc('xmlUTF8Strpos') const xmlChar *
+ d utf * value options(*string) const xmlChar *
+ d pos value like(xmlCint)
+
+ d xmlUTF8Strloc pr extproc('xmlUTF8Strloc')
+ d like(xmlCint)
+ d utf * value options(*string) const xmlChar *
+ d utfchar * value options(*string) const xmlChar *
+
+ d xmlUTF8Strsub pr * extproc('xmlUTF8Strsub') xmlChar *
+ d utf * value options(*string) const xmlChar *
+ d start value like(xmlCint)
+ d len value like(xmlCint)
+
+ d xmlUTF8Strlen pr extproc('xmlUTF8Strlen')
+ d like(xmlCint)
+ d utf * value options(*string) const xmlChar *
+
+ d xmlUTF8Size pr extproc('xmlUTF8Size')
+ d like(xmlCint)
+ d utf * value options(*string) const xmlChar *
+
+ d xmlUTF8Charcmp pr extproc('xmlUTF8Charcmp')
+ d like(xmlCint)
+ d utf1 * value options(*string) const xmlChar *
+ d utf2 * value options(*string) const xmlChar *
+
+ /endif XML_STRING_H__
diff --git a/libxml2/os400/libxmlrpg/xmlunicode.rpgle b/libxml2/os400/libxmlrpg/xmlunicode.rpgle
new file mode 100644
index 0000000..c4c4ba1
--- /dev/null
+++ b/libxml2/os400/libxmlrpg/xmlunicode.rpgle
@@ -0,0 +1,836 @@
+ * Summary: Unicode character APIs
+ * Description: API for the Unicode character APIs
+ *
+ * Copy: See Copyright for the status of this software.
+ *
+ * Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A.
+
+ /if not defined(XML_UNICODE_H__)
+ /define XML_UNICODE_H__
+
+ /include "libxmlrpg/xmlversion"
+
+ /if defined(LIBXML_UNICODE_ENABLED)
+
+ /include "libxmlrpg/xmlTypesC"
+
+ d xmlUCSIsAegeanNumbers...
+ d pr extproc('xmlUCSIsAegeanNumbers')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsAlphabeticPresentationForms...
+ d pr extproc(
+ d 'xmlUCSIsAlphabeticPresentationForms'
+ d )
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsArabic pr extproc('xmlUCSIsArabic')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsArabicPresentationFormsA...
+ d pr extproc(
+ d 'xmlUCSIsArabicPresentationFormsA')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsArabicPresentationFormsB...
+ d pr extproc(
+ d 'xmlUCSIsArabicPresentationFormsB')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsArmenian...
+ d pr extproc('xmlUCSIsArmenian')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsArrows pr extproc('xmlUCSIsArrows')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsBasicLatin...
+ d pr extproc('xmlUCSIsBasicLatin')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsBengali...
+ d pr extproc('xmlUCSIsBengali')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsBlockElements...
+ d pr extproc('xmlUCSIsBlockElements')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsBopomofo...
+ d pr extproc('xmlUCSIsBopomofo')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsBopomofoExtended...
+ d pr extproc('xmlUCSIsBopomofoExtended')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsBoxDrawing...
+ d pr extproc('xmlUCSIsBoxDrawing')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsBraillePatterns...
+ d pr extproc('xmlUCSIsBraillePatterns')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsBuhid pr extproc('xmlUCSIsBuhid')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsByzantineMusicalSymbols...
+ d pr extproc(
+ d 'xmlUCSIsByzantineMusicalSymbols')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsCJKCompatibility...
+ d pr extproc('xmlUCSIsCJKCompatibility')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsCJKCompatibilityForms...
+ d pr extproc(
+ d 'xmlUCSIsCJKCompatibilityForms')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsCJKCompatibilityIdeographs...
+ d pr extproc(
+ d 'xmlUCSIsCJKCompatibilityIdeographs')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsCJKCompatibilityIdeographsSupplement...
+ d pr extproc('xmlUCSIsCJKCompatibilityIde-
+ d ographsSupplement')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsCJKRadicalsSupplement...
+ d pr extproc(
+ d 'xmlUCSIsCJKRadicalsSupplement')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsCJKSymbolsandPunctuation...
+ d pr extproc(
+ d 'xmlUCSIsCJKSymbolsandPunctuation')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsCJKUnifiedIdeographs...
+ d pr extproc(
+ d 'xmlUCSIsCJKUnifiedIdeographs')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsCJKUnifiedIdeographsExtensionA...
+ d pr extproc('xmlUCSIsCJKUnifiedIdeograph-
+ d sExtensionA')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsCJKUnifiedIdeographsExtensionB...
+ d pr extproc('xmlUCSIsCJKUnifiedIdeograph-
+ d sExtensionB')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsCherokee...
+ d pr extproc('xmlUCSIsCherokee')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsCombiningDiacriticalMarks...
+ d pr extproc(
+ d 'xmlUCSIsCombiningDiacriticalMarks')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsCombiningDiacriticalMarksforSymbols...
+ d pr extproc('xmlUCSIsCombiningDiacritica-
+ d lMarksforSymbols')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsCombiningHalfMarks...
+ d pr extproc('xmlUCSIsCombiningHalfMarks')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsCombiningMarksforSymbols...
+ d pr extproc(
+ d 'xmlUCSIsCombiningMarksforSymbols')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsControlPictures...
+ d pr extproc('xmlUCSIsControlPictures')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsCurrencySymbols...
+ d pr extproc('xmlUCSIsCurrencySymbols')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsCypriotSyllabary...
+ d pr extproc('xmlUCSIsCypriotSyllabary')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsCyrillic...
+ d pr extproc('xmlUCSIsCyrillic')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsCyrillicSupplement...
+ d pr extproc('xmlUCSIsCyrillicSupplement')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsDeseret...
+ d pr extproc('xmlUCSIsDeseret')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsDevanagari...
+ d pr extproc('xmlUCSIsDevanagari')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsDingbats...
+ d pr extproc('xmlUCSIsDingbats')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsEnclosedAlphanumerics...
+ d pr extproc(
+ d 'xmlUCSIsEnclosedAlphanumerics')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsEnclosedCJKLettersandMonths...
+ d pr extproc(
+ d 'xmlUCSIsEnclosedCJKLettersandMonths'
+ d )
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsEthiopic...
+ d pr extproc('xmlUCSIsEthiopic')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsGeneralPunctuation...
+ d pr extproc('xmlUCSIsGeneralPunctuation')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsGeometricShapes...
+ d pr extproc('xmlUCSIsGeometricShapes')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsGeorgian...
+ d pr extproc('xmlUCSIsGeorgian')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsGothic pr extproc('xmlUCSIsGothic')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsGreek pr extproc('xmlUCSIsGreek')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsGreekExtended...
+ d pr extproc('xmlUCSIsGreekExtended')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsGreekandCoptic...
+ d pr extproc('xmlUCSIsGreekandCoptic')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsGujarati...
+ d pr extproc('xmlUCSIsGujarati')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsGurmukhi...
+ d pr extproc('xmlUCSIsGurmukhi')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsHalfwidthandFullwidthForms...
+ d pr extproc(
+ d 'xmlUCSIsHalfwidthandFullwidthForms')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsHangulCompatibilityJamo...
+ d pr extproc(
+ d 'xmlUCSIsHangulCompatibilityJamo')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsHangulJamo...
+ d pr extproc('xmlUCSIsHangulJamo')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsHangulSyllables...
+ d pr extproc('xmlUCSIsHangulSyllables')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsHanunoo...
+ d pr extproc('xmlUCSIsHanunoo')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsHebrew pr extproc('xmlUCSIsHebrew')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsHighPrivateUseSurrogates...
+ d pr extproc(
+ d 'xmlUCSIsHighPrivateUseSurrogates')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsHighSurrogates...
+ d pr extproc('xmlUCSIsHighSurrogates')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsHiragana...
+ d pr extproc('xmlUCSIsHiragana')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsIPAExtensions...
+ d pr extproc('xmlUCSIsIPAExtensions')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsIdeographicDescriptionCharacters...
+ d pr extproc('xmlUCSIsIdeographicDescript-
+ d ionCharacters')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsKanbun pr extproc('xmlUCSIsKanbun')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsKangxiRadicals...
+ d pr extproc('xmlUCSIsKangxiRadicals')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsKannada...
+ d pr extproc('xmlUCSIsKannada')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsKatakana...
+ d pr extproc('xmlUCSIsKatakana')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsKatakanaPhoneticExtensions...
+ d pr extproc(
+ d 'xmlUCSIsKatakanaPhoneticExtensions')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsKhmer pr extproc('xmlUCSIsKhmer')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsKhmerSymbols...
+ d pr extproc('xmlUCSIsKhmerSymbols')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsLao pr extproc('xmlUCSIsLao')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsLatin1Supplement...
+ d pr extproc('xmlUCSIsLatin1Supplement')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsLatinExtendedA...
+ d pr extproc('xmlUCSIsLatinExtendedA')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsLatinExtendedB...
+ d pr extproc('xmlUCSIsLatinExtendedB')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsLatinExtendedAdditional...
+ d pr extproc(
+ d 'xmlUCSIsLatinExtendedAdditional')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsLetterlikeSymbols...
+ d pr extproc('xmlUCSIsLetterlikeSymbols')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsLimbu pr extproc('xmlUCSIsLimbu')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsLinearBIdeograms...
+ d pr extproc('xmlUCSIsLinearBIdeograms')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsLinearBSyllabary...
+ d pr extproc('xmlUCSIsLinearBSyllabary')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsLowSurrogates...
+ d pr extproc('xmlUCSIsLowSurrogates')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsMalayalam...
+ d pr extproc('xmlUCSIsMalayalam')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsMathematicalAlphanumericSymbols...
+ d pr extproc('xmlUCSIsMathematicalAlphanu-
+ d mericSymbols')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsMathematicalOperators...
+ d pr extproc(
+ d 'xmlUCSIsMathematicalOperators')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsMiscellaneousMathematicalSymbolsA...
+ d pr extproc('xmlUCSIsMiscellaneousMathem-
+ d aticalSymbolsA')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsMiscellaneousMathematicalSymbolsB...
+ d pr extproc('xmlUCSIsMiscellaneousMathem-
+ d aticalSymbolsB')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsMiscellaneousSymbols...
+ d pr extproc(
+ d 'xmlUCSIsMiscellaneousSymbols')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsMiscellaneousSymbolsandArrows...
+ d pr extproc('xmlUCSIsMiscellaneousSymbol-
+ d sandArrows')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsMiscellaneousTechnical...
+ d pr extproc(
+ d 'xmlUCSIsMiscellaneousTechnical')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsMongolian...
+ d pr extproc('xmlUCSIsMongolian')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsMusicalSymbols...
+ d pr extproc('xmlUCSIsMusicalSymbols')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsMyanmar...
+ d pr extproc('xmlUCSIsMyanmar')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsNumberForms...
+ d pr extproc('xmlUCSIsNumberForms')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsOgham pr extproc('xmlUCSIsOgham')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsOldItalic...
+ d pr extproc('xmlUCSIsOldItalic')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsOpticalCharacterRecognition...
+ d pr extproc(
+ d 'xmlUCSIsOpticalCharacterRecognition'
+ d )
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsOriya pr extproc('xmlUCSIsOriya')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsOsmanya...
+ d pr extproc('xmlUCSIsOsmanya')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsPhoneticExtensions...
+ d pr extproc('xmlUCSIsPhoneticExtensions')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsPrivateUse...
+ d pr extproc('xmlUCSIsPrivateUse')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsPrivateUseArea...
+ d pr extproc('xmlUCSIsPrivateUseArea')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsRunic pr extproc('xmlUCSIsRunic')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsShavian...
+ d pr extproc('xmlUCSIsShavian')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsSinhala...
+ d pr extproc('xmlUCSIsSinhala')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsSmallFormVariants...
+ d pr extproc('xmlUCSIsSmallFormVariants')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsSpacingModifierLetters...
+ d pr extproc(
+ d 'xmlUCSIsSpacingModifierLetters')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsSpecials...
+ d pr extproc('xmlUCSIsSpecials')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsSuperscriptsandSubscripts...
+ d pr extproc(
+ d 'xmlUCSIsSuperscriptsandSubscripts')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsSupplementalArrowsA...
+ d pr extproc(
+ d 'xmlUCSIsSupplementalArrowsA')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsSupplementalArrowsB...
+ d pr extproc(
+ d 'xmlUCSIsSupplementalArrowsB')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsSupplementalMathematicalOperators...
+ d pr extproc('xmlUCSIsSupplementalMathema-
+ d ticalOperators')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsSupplementaryPrivateUseAreaA...
+ d pr extproc('xmlUCSIsSupplementaryPrivat-
+ d eUseAreaA')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsSupplementaryPrivateUseAreaB...
+ d pr extproc('xmlUCSIsSupplementaryPrivat-
+ d eUseAreaB')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsSyriac pr extproc('xmlUCSIsSyriac')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsTagalog...
+ d pr extproc('xmlUCSIsTagalog')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsTagbanwa...
+ d pr extproc('xmlUCSIsTagbanwa')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsTags pr extproc('xmlUCSIsTags')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsTaiLe pr extproc('xmlUCSIsTaiLe')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsTaiXuanJingSymbols...
+ d pr extproc('xmlUCSIsTaiXuanJingSymbols')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsTamil pr extproc('xmlUCSIsTamil')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsTelugu pr extproc('xmlUCSIsTelugu')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsThaana pr extproc('xmlUCSIsThaana')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsThai pr extproc('xmlUCSIsThai')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsTibetan...
+ d pr extproc('xmlUCSIsTibetan')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsUgaritic...
+ d pr extproc('xmlUCSIsUgaritic')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsUnifiedCanadianAboriginalSyllabics...
+ d pr extproc('xmlUCSIsUnifiedCanadianAbor-
+ d iginalSyllabics')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsVariationSelectors...
+ d pr extproc('xmlUCSIsVariationSelectors')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsVariationSelectorsSupplement...
+ d pr extproc('xmlUCSIsVariationSelectorsS-
+ d upplement')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsYiRadicals...
+ d pr extproc('xmlUCSIsYiRadicals')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsYiSyllables...
+ d pr extproc('xmlUCSIsYiSyllables')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsYijingHexagramSymbols...
+ d pr extproc(
+ d 'xmlUCSIsYijingHexagramSymbols')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsBlock pr extproc('xmlUCSIsBlock')
+ d like(xmlCint)
+ d code value like(xmlCint)
+ d block * value options(*string) const char *
+
+ d xmlUCSIsCatC pr extproc('xmlUCSIsCatC')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsCatCc pr extproc('xmlUCSIsCatCc')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsCatCf pr extproc('xmlUCSIsCatCf')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsCatCo pr extproc('xmlUCSIsCatCo')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsCatCs pr extproc('xmlUCSIsCatCs')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsCatL pr extproc('xmlUCSIsCatL')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsCatLl pr extproc('xmlUCSIsCatLl')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsCatLm pr extproc('xmlUCSIsCatLm')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsCatLo pr extproc('xmlUCSIsCatLo')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsCatLt pr extproc('xmlUCSIsCatLt')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsCatLu pr extproc('xmlUCSIsCatLu')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsCatM pr extproc('xmlUCSIsCatM')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsCatMc pr extproc('xmlUCSIsCatMc')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsCatMe pr extproc('xmlUCSIsCatMe')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsCatMn pr extproc('xmlUCSIsCatMn')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsCatN pr extproc('xmlUCSIsCatN')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsCatNd pr extproc('xmlUCSIsCatNd')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsCatNl pr extproc('xmlUCSIsCatNl')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsCatNo pr extproc('xmlUCSIsCatNo')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsCatP pr extproc('xmlUCSIsCatP')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsCatPc pr extproc('xmlUCSIsCatPc')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsCatPd pr extproc('xmlUCSIsCatPd')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsCatPe pr extproc('xmlUCSIsCatPe')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsCatPf pr extproc('xmlUCSIsCatPf')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsCatPi pr extproc('xmlUCSIsCatPi')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsCatPo pr extproc('xmlUCSIsCatPo')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsCatPs pr extproc('xmlUCSIsCatPs')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsCatS pr extproc('xmlUCSIsCatS')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsCatSc pr extproc('xmlUCSIsCatSc')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsCatSk pr extproc('xmlUCSIsCatSk')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsCatSm pr extproc('xmlUCSIsCatSm')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsCatSo pr extproc('xmlUCSIsCatSo')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsCatZ pr extproc('xmlUCSIsCatZ')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsCatZl pr extproc('xmlUCSIsCatZl')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsCatZp pr extproc('xmlUCSIsCatZp')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsCatZs pr extproc('xmlUCSIsCatZs')
+ d like(xmlCint)
+ d code value like(xmlCint)
+
+ d xmlUCSIsCat pr extproc('xmlUCSIsCat')
+ d like(xmlCint)
+ d code value like(xmlCint)
+ d cat * value options(*string) const char *
+
+ /endif LIBXML_UNICODE_ENBLD
+ /endif XML_UNICODE_H__
diff --git a/libxml2/os400/libxmlrpg/xmlversion.rpgle.in b/libxml2/os400/libxmlrpg/xmlversion.rpgle.in
new file mode 100644
index 0000000..955599e
--- /dev/null
+++ b/libxml2/os400/libxmlrpg/xmlversion.rpgle.in
@@ -0,0 +1,353 @@
+ * Summary: compile-time version informations
+ * Description: compile-time version informations for the XML library
+ *
+ * Copy: See Copyright for the status of this software.
+ *
+ * Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A.
+
+ /if not defined(XML_VERSION_H__)
+ /define XML_VERSION_H__
+
+ /include "libxmlrpg/xmlTypesC"
+ /include "libxmlrpg/xmlexports"
+
+ * use those to be sure nothing nasty will happen if
+ * your library and includes mismatch
+
+
+ d xmlCheckVersion...
+ d pr extproc('xmlCheckVersion')
+ d version value like(xmlCint)
+
+ * LIBXML_DOTTED_VERSION:
+ *
+ * the version string like "1.2.3"
+
+ d LIBXML_DOTTED_VERSION...
+ d c '@VERSION@'
+
+ * LIBXML_VERSION:
+ *
+ * the version number: 1.2.3 value is 10203
+
+ d LIBXML_VERSION c @LIBXML_VERSION_NUMBER@
+
+ * LIBXML_VERSION_STRING:
+ *
+ * the version number string, 1.2.3 value is "10203"
+
+ d LIBXML_VERSION_STRING...
+ d c '@LIBXML_VERSION_NUMBER@'
+
+ * LIBXML_VERSION_EXTRA:
+ *
+ * extra version information, used to show a CVS compilation
+
+ d LIBXML_VERSION_EXTRA...
+ d c '@LIBXML_VERSION_EXTRA@'
+
+ * For conditional compilation
+ /define DEFINED_1
+ /undefine DEFINED_0
+
+ /if defined(DEFINED_@WITH_TRIO@)
+ * WITH_TRIO:
+ *
+ * defined if the trio support need to be configured in
+
+ /define WITH_TRIO
+ /else
+ * WITHOUT_TRIO:
+ *
+ * defined if the trio support should not be configured in
+
+ /define WITHOUT_TRIO
+ /endif
+
+ * LIBXML_THREAD_ENABLED:
+ *
+ * Whether the thread support is configured in
+
+ /if defined(DEFINED_@WITH_THREADS@)
+ /define LIBXML_THREAD_ENABLED
+ /endif
+
+ * LIBXML_THREAD_ALLOC_ENABLED:
+ *
+ * Whether the allocation hooks are per-thread
+
+ /if defined(DEFINED_@WITH_THREAD_ALLOC@)
+ /define LIBXML_THREAD_ALLOC_ENABLED
+ /endif
+
+ * LIBXML_TREE_ENABLED:
+ *
+ * Whether the DOM like tree manipulation API support is configured in
+
+ /if defined(DEFINED_@WITH_TREE@)
+ /define LIBXML_TREE_ENABLED
+ /endif
+
+ * LIBXML_OUTPUT_ENABLED:
+ *
+ * Whether the serialization/saving support is configured in
+
+ /if defined(DEFINED_@WITH_OUTPUT@)
+ /define LIBXML_OUTPUT_ENABLED
+ /endif
+
+ * LIBXML_PUSH_ENABLED:
+ *
+ * Whether the push parsing interfaces are configured in
+
+ /if defined(DEFINED_@WITH_PUSH@)
+ /define LIBXML_PUSH_ENABLED
+ /endif
+
+ * LIBXML_READER_ENABLED:
+ *
+ * Whether the xmlReader parsing interface is configured in
+
+ /if defined(DEFINED_@WITH_READER@)
+ /define LIBXML_READER_ENABLED
+ /endif
+
+ * LIBXML_PATTERN_ENABLED:
+ *
+ * Whether the xmlPattern node selection interface is configured in
+
+ /if defined(DEFINED_@WITH_PATTERN@)
+ /define LIBXML_PATTERN_ENABLED
+ /endif
+
+ * LIBXML_WRITER_ENABLED:
+ *
+ * Whether the xmlWriter saving interface is configured in
+
+ /if defined(DEFINED_@WITH_WRITER@)
+ /define LIBXML_WRITER_ENABLED
+ /endif
+
+ * LIBXML_SAX1_ENABLED:
+ *
+ * Whether the older SAX1 interface is configured in
+
+ /if defined(DEFINED_@WITH_SAX1@)
+ /define LIBXML_SAX1_ENABLED
+ /endif
+
+ * LIBXML_FTP_ENABLED:
+ *
+ * Whether the FTP support is configured in
+
+ /if defined(DEFINED_@WITH_FTP@)
+ /define LIBXML_FTP_ENABLED
+ /endif
+
+ * LIBXML_HTTP_ENABLED:
+ *
+ * Whether the HTTP support is configured in
+
+ /if defined(DEFINED_@WITH_HTTP@)
+ /define LIBXML_HTTP_ENABLED
+ /endif
+
+ * LIBXML_VALID_ENABLED:
+ *
+ * Whether the DTD validation support is configured in
+
+ /if defined(DEFINED_@WITH_VALID@)
+ /define LIBXML_VALID_ENABLED
+ /endif
+
+ * LIBXML_HTML_ENABLED:
+ *
+ * Whether the HTML support is configured in
+
+ /if defined(DEFINED_@WITH_HTML@)
+ /define LIBXML_HTML_ENABLED
+ /endif
+
+ * LIBXML_LEGACY_ENABLED:
+ *
+ * Whether the deprecated APIs are compiled in for compatibility
+
+ /if defined(DEFINED_@WITH_LEGACY@)
+ /define LIBXML_LEGACY_ENABLED
+ /endif
+
+ * LIBXML_C14N_ENABLED:
+ *
+ * Whether the Canonicalization support is configured in
+
+ /if defined(DEFINED_@WITH_C14N@)
+ /define LIBXML_C14N_ENABLED
+ /endif
+
+ * LIBXML_CATALOG_ENABLED:
+ *
+ * Whether the Catalog support is configured in
+
+ /if defined(DEFINED_@WITH_CATALOG@)
+ /define LIBXML_CATALOG_ENABLED
+ /endif
+
+ * LIBXML_DOCB_ENABLED:
+ *
+ * Whether the SGML Docbook support is configured in
+
+ /if defined(DEFINED_@WITH_DOCB@)
+ /define LIBXML_DOCB_ENABLED
+ /endif
+
+ * LIBXML_XPATH_ENABLED:
+ *
+ * Whether XPath is configured in
+
+ /if defined(DEFINED_@WITH_XPATH@)
+ /define LIBXML_XPATH_ENABLED
+ /endif
+
+ * LIBXML_XPTR_ENABLED:
+ *
+ * Whether XPointer is configured in
+
+ /if defined(DEFINED_@WITH_XPTR@)
+ /define LIBXML_XPTR_ENABLED
+ /endif
+
+ * LIBXML_XINCLUDE_ENABLED:
+ *
+ * Whether XInclude is configured in
+
+ /if defined(DEFINED_@WITH_XINCLUDE@)
+ /define LIBXML_XINCLUDE_ENABLED
+ /endif
+
+ * LIBXML_ICONV_ENABLED:
+ *
+ * Whether iconv support is available
+
+ /if defined(DEFINED_@WITH_ICONV@)
+ /define LIBXML_ICONV_ENABLED
+ /endif
+
+ * LIBXML_ICU_ENABLED:
+ *
+ * Whether icu support is available
+
+ /if defined(DEFINED_@WITH_ICU@)
+ /define LIBXML_ICU_ENABLED
+ /endif
+
+ * LIBXML_ISO8859X_ENABLED:
+ *
+ * Whether ISO-8859-* support is made available in case iconv is not
+
+ /if defined(DEFINED_@WITH_ISO8859X@)
+ /define LIBXML_ISO8859X_ENABLED
+ /endif
+
+ * LIBXML_DEBUG_ENABLED:
+ *
+ * Whether Debugging module is configured in
+
+ /if defined(DEFINED_@WITH_DEBUG@)
+ /define LIBXML_DEBUG_ENABLED
+ /endif
+
+ * DEBUG_MEMORY_LOCATION:
+ *
+ * Whether the memory debugging is configured in
+
+ /if defined(DEFINED_@WITH_MEM_DEBUG@)
+ /define DEBUG_MEMORY_LOCATION
+ /endif
+
+ * LIBXML_DEBUG_RUNTIME:
+ *
+ * Whether the runtime debugging is configured in
+
+ /if defined(DEFINED_@WITH_RUN_DEBUG@)
+ /define LIBXML_DEBUG_RUNTIME
+ /endif
+
+ * LIBXML_UNICODE_ENABLED:
+ *
+ * Whether the Unicode related interfaces are compiled in
+
+ /if defined(DEFINED_@WITH_REGEXPS@)
+ /define LIBXML_UNICODE_ENABLED
+ /endif
+
+ * LIBXML_REGEXP_ENABLED:
+ *
+ * Whether the regular expressions interfaces are compiled in
+
+ /if defined(DEFINED_@WITH_REGEXPS@)
+ /define LIBXML_REGEXP_ENABLED
+ /endif
+
+ * LIBXML_AUTOMATA_ENABLED:
+ *
+ * Whether the automata interfaces are compiled in
+
+ /if defined(DEFINED_@WITH_REGEXPS@)
+ /define LIBXML_AUTOMATA_ENABLED
+ /endif
+
+ * LIBXML_EXPR_ENABLED:
+ *
+ * Whether the formal expressions interfaces are compiled in
+
+ /if defined(DEFINED_@WITH_SCHEMAS@)
+ /define LIBXML_EXPR_ENABLED
+ /endif
+
+ * LIBXML_SCHEMAS_ENABLED:
+ *
+ * Whether the Schemas validation interfaces are compiled in
+
+ /if defined(DEFINED_@WITH_SCHEMAS@)
+ /define LIBXML_SCHEMAS_ENABLED
+ /endif
+
+ * LIBXML_SCHEMATRON_ENABLED:
+ *
+ * Whether the Schematron validation interfaces are compiled in
+
+ /if defined(DEFINED_@WITH_SCHEMATRON@)
+ /define LIBXML_SCHEMATRON_ENABLED
+ /endif
+
+ * LIBXML_MODULES_ENABLED:
+ *
+ * Whether the module interfaces are compiled in
+
+ /if defined(DEFINED_@WITH_MODULES@)
+ /define LIBXML_MODULES_ENABLED
+
+ * LIBXML_MODULE_EXTENSION:
+ *
+ * the string suffix used by dynamic modules (usually shared libraries)
+
+ d LIBXML_MODULE_EXTENSION...
+ d c '.SRVPGM'
+ /endif
+
+ * LIBXML_ZLIB_ENABLED:
+ *
+ * Whether the Zlib support is compiled in
+
+ /if defined(DEFINED_@WITH_ZLIB@)
+ /define LIBXML_ZLIB_ENABLED
+ /endif
+
+ * LIBXML_LZMA_ENABLED:
+ *
+ * Whether the Lzma support is compiled in
+
+ /if defined(DEFINED_@WITH_LZMA@)
+ /define LIBXML_LZMA_ENABLED
+ /endif
+ /endif
diff --git a/libxml2/os400/libxmlrpg/xmlwriter.rpgle b/libxml2/os400/libxmlrpg/xmlwriter.rpgle
new file mode 100644
index 0000000..c8530f8
--- /dev/null
+++ b/libxml2/os400/libxmlrpg/xmlwriter.rpgle
@@ -0,0 +1,801 @@
+ * Summary: text writing API for XML
+ * Description: text writing API for XML
+ *
+ * Copy: See Copyright for the status of this software.
+ *
+ * Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A.
+
+ /if not defined(XML_XMLWRITER_H__)
+ /define XML_XMLWRITER_H__
+
+ /include "libxmlrpg/xmlversion"
+
+ /if defined(LIBXML_WRITER_ENABLED)
+
+ /include "libxmlrpg/xmlTypesC"
+ /include "libxmlrpg/xmlstdarg"
+ /include "libxmlrpg/xmlIO"
+ /include "libxmlrpg/list"
+ /include "libxmlrpg/xmlstring"
+
+ d xmlTextWriterPtr...
+ d s * based(######typedef######)
+
+ * Constructors & Destructor
+
+ d xmlNewTextWriter...
+ d pr extproc('xmlNewTextWriter')
+ d like(xmlTextWriterPtr)
+ d out value like(xmlOutputBufferPtr)
+
+ d xmlNewTextWriterFilename...
+ d pr extproc('xmlNewTextWriterFilename')
+ d like(xmlTextWriterPtr)
+ d uri * value options(*string) const char *
+ d compression value like(xmlCint)
+
+ d xmlNewTextWriterMemory...
+ d pr extproc('xmlNewTextWriterMemory')
+ d like(xmlTextWriterPtr)
+ d buf value like(xmlBufferPtr)
+ d compression value like(xmlCint)
+
+ d xmlNewTextWriterPushParser...
+ d pr extproc('xmlNewTextWriterPushParser')
+ d like(xmlTextWriterPtr)
+ d ctxt value like(xmlParserCtxtPtr)
+ d compression value like(xmlCint)
+
+ d xmlNewTextWriterDoc...
+ d pr extproc('xmlNewTextWriterDoc')
+ d like(xmlTextWriterPtr)
+ d doc like(xmlDocPtr)
+ d compression value like(xmlCint)
+
+ d xmlNewTextWriterTree...
+ d pr extproc('xmlNewTextWriterTree')
+ d like(xmlTextWriterPtr)
+ d doc value like(xmlDocPtr)
+ d node value like(xmlNodePtr)
+ d compression value like(xmlCint)
+
+ d xmlFreeTextWriter...
+ d pr extproc('xmlFreeTextWriter')
+ d writer value like(xmlTextWriterPtr)
+
+ * Functions
+
+ * Document
+
+ d xmlTextWriterStartDocument...
+ d pr extproc('xmlTextWriterStartDocument')
+ d like(xmlCint)
+ d writer value like(xmlTextWriterPtr)
+ d version * value options(*string) const char *
+ d encoding * value options(*string) const char *
+ d standalone * value options(*string) const char *
+
+ d xmlTextWriterEndDocument...
+ d pr extproc('xmlTextWriterEndDocument')
+ d like(xmlCint)
+ d writer value like(xmlTextWriterPtr)
+
+ * Comments
+
+ d xmlTextWriterStartComment...
+ d pr extproc('xmlTextWriterStartComment')
+ d like(xmlCint)
+ d writer value like(xmlTextWriterPtr)
+
+ d xmlTextWriterEndComment...
+ d pr extproc('xmlTextWriterEndComment')
+ d like(xmlCint)
+ d writer value like(xmlTextWriterPtr)
+
+ d xmlTextWriterWriteFormatComment...
+ d pr extproc(
+ d 'xmlTextWriterWriteFormatComment')
+ d like(xmlCint)
+ d writer value like(xmlTextWriterPtr)
+ d format * value options(*string: *nopass) const char *
+ d #vararg1 * value options(*string: *nopass) void *
+ d #vararg2 * value options(*string: *nopass) void *
+ d #vararg3 * value options(*string: *nopass) void *
+ d #vararg4 * value options(*string: *nopass) void *
+ d #vararg5 * value options(*string: *nopass) void *
+ d #vararg6 * value options(*string: *nopass) void *
+ d #vararg7 * value options(*string: *nopass) void *
+ d #vararg8 * value options(*string: *nopass) void *
+
+ d xmlTextWriterWriteVFormatComment...
+ d pr extproc(
+ d 'xmlTextWriterWriteVFormatComment')
+ d like(xmlCint)
+ d writer value like(xmlTextWriterPtr)
+ d format * value options(*string) const char *
+ d argptr likeds(xmlVaList)
+
+ d xmlTextWriterWriteComment...
+ d pr extproc('xmlTextWriterWriteComment')
+ d like(xmlCint)
+ d writer value like(xmlTextWriterPtr)
+ d content * value options(*string) const xmlChar *
+
+ * Elements
+
+ d xmlTextWriterStartElement...
+ d pr extproc('xmlTextWriterStartElement')
+ d like(xmlCint)
+ d writer value like(xmlTextWriterPtr)
+ d name * value options(*string) const xmlChar *
+
+ d xmlTextWriterStartElementNS...
+ d pr extproc(
+ d 'xmlTextWriterStartElementNS')
+ d like(xmlCint)
+ d writer value like(xmlTextWriterPtr)
+ d prefix * value options(*string) const xmlChar *
+ d name * value options(*string) const xmlChar *
+ d namespaceURI * value options(*string) const xmlChar *
+
+ d xmlTextWriterEndElement...
+ d pr extproc('xmlTextWriterEndElement')
+ d like(xmlCint)
+ d writer value like(xmlTextWriterPtr)
+
+ d xmlTextWriterFullEndElement...
+ d pr extproc(
+ d 'xmlTextWriterFullEndElement')
+ d like(xmlCint)
+ d writer value like(xmlTextWriterPtr)
+
+ * Elements conveniency functions
+
+ d xmlTextWriterWriteFormatElement...
+ d pr extproc(
+ d 'xmlTextWriterWriteFormatElement')
+ d like(xmlCint)
+ d writer value like(xmlTextWriterPtr)
+ d name * value options(*string) const xmlChar *
+ d format * value options(*string) const char *
+ d #vararg1 * value options(*string: *nopass) void *
+ d #vararg2 * value options(*string: *nopass) void *
+ d #vararg3 * value options(*string: *nopass) void *
+ d #vararg4 * value options(*string: *nopass) void *
+ d #vararg5 * value options(*string: *nopass) void *
+ d #vararg6 * value options(*string: *nopass) void *
+ d #vararg7 * value options(*string: *nopass) void *
+ d #vararg8 * value options(*string: *nopass) void *
+
+ d xmlTextWriterWriteVFormatElement...
+ d pr extproc(
+ d 'xmlTextWriterWriteVFormatElement')
+ d like(xmlCint)
+ d writer value like(xmlTextWriterPtr)
+ d name * value options(*string) const xmlChar *
+ d format * value options(*string) const char *
+ d argptr likeds(xmlVaList)
+
+ d xmlTextWriterWriteElement...
+ d pr extproc('xmlTextWriterWriteElement')
+ d like(xmlCint)
+ d writer value like(xmlTextWriterPtr)
+ d name * value options(*string) const xmlChar *
+ d content * value options(*string) const xmlChar *
+
+ d xmlTextWriterWriteFormatElementNS...
+ d pr extproc(
+ d 'xmlTextWriterWriteFormatElementNS')
+ d like(xmlCint)
+ d writer value like(xmlTextWriterPtr)
+ d prefix * value options(*string) const xmlChar *
+ d name * value options(*string) const xmlChar *
+ d namespaceURI * value options(*string) const xmlChar *
+ d format * value options(*string) const char *
+ d #vararg1 * value options(*string: *nopass) void *
+ d #vararg2 * value options(*string: *nopass) void *
+ d #vararg3 * value options(*string: *nopass) void *
+ d #vararg4 * value options(*string: *nopass) void *
+ d #vararg5 * value options(*string: *nopass) void *
+ d #vararg6 * value options(*string: *nopass) void *
+ d #vararg7 * value options(*string: *nopass) void *
+ d #vararg8 * value options(*string: *nopass) void *
+
+ d xmlTextWriterWriteVFormatElementNS...
+ d pr extproc(
+ d 'xmlTextWriterWriteVFormatElementNS')
+ d like(xmlCint)
+ d writer value like(xmlTextWriterPtr)
+ d prefix * value options(*string) const xmlChar *
+ d name * value options(*string) const xmlChar *
+ d namespaceURI * value options(*string) const xmlChar *
+ d format * value options(*string) const char *
+ d argptr likeds(xmlVaList)
+
+ d xmlTextWriterWriteElementNS...
+ d pr extproc(
+ d 'xmlTextWriterWriteElementNS')
+ d like(xmlCint)
+ d writer value like(xmlTextWriterPtr)
+ d prefix * value options(*string) const xmlChar *
+ d name * value options(*string) const xmlChar *
+ d namespaceURI * value options(*string) const xmlChar *
+ d content * value options(*string) const xmlChar *
+
+ * Text
+
+ d xmlTextWriterWriteFormatRaw...
+ d pr extproc(
+ d 'xmlTextWriterWriteFormatRaw')
+ d like(xmlCint)
+ d writer value like(xmlTextWriterPtr)
+ d format * value options(*string) const char *
+ d #vararg1 * value options(*string: *nopass) void *
+ d #vararg2 * value options(*string: *nopass) void *
+ d #vararg3 * value options(*string: *nopass) void *
+ d #vararg4 * value options(*string: *nopass) void *
+ d #vararg5 * value options(*string: *nopass) void *
+ d #vararg6 * value options(*string: *nopass) void *
+ d #vararg7 * value options(*string: *nopass) void *
+ d #vararg8 * value options(*string: *nopass) void *
+
+ d xmlTextWriterWriteVFormatRaw...
+ d pr extproc(
+ d 'xmlTextWriterWriteVFormatRaw')
+ d like(xmlCint)
+ d writer value like(xmlTextWriterPtr)
+ d format * value options(*string) const char *
+ d argptr likeds(xmlVaList)
+
+ d xmlTextWriterWriteRawLen...
+ d pr extproc('xmlTextWriterWriteRawLen')
+ d like(xmlCint)
+ d writer value like(xmlTextWriterPtr)
+ d content * value options(*string) const xmlChar *
+ d len value like(xmlCint)
+
+ d xmlTextWriterWriteRaw...
+ d pr extproc('xmlTextWriterWriteRaw')
+ d like(xmlCint)
+ d writer value like(xmlTextWriterPtr)
+ d content * value options(*string) const xmlChar *
+
+ d xmlTextWriterWriteFormatString...
+ d pr extproc(
+ d 'xmlTextWriterWriteFormatString')
+ d like(xmlCint)
+ d writer value like(xmlTextWriterPtr)
+ d format * value options(*string) const char *
+ d #vararg1 * value options(*string: *nopass) void *
+ d #vararg2 * value options(*string: *nopass) void *
+ d #vararg3 * value options(*string: *nopass) void *
+ d #vararg4 * value options(*string: *nopass) void *
+ d #vararg5 * value options(*string: *nopass) void *
+ d #vararg6 * value options(*string: *nopass) void *
+ d #vararg7 * value options(*string: *nopass) void *
+ d #vararg8 * value options(*string: *nopass) void *
+
+ d xmlTextWriterWriteVFormatString...
+ d pr extproc(
+ d 'xmlTextWriterWriteVFormatString')
+ d like(xmlCint)
+ d writer value like(xmlTextWriterPtr)
+ d format * value options(*string) const char *
+ d argptr likeds(xmlVaList)
+
+ d xmlTextWriterWriteString...
+ d pr extproc('xmlTextWriterWriteString')
+ d like(xmlCint)
+ d writer value like(xmlTextWriterPtr)
+ d content * value options(*string) const xmlChar *
+
+ d xmlTextWriterWriteBase64...
+ d pr extproc('xmlTextWriterWriteBase64')
+ d like(xmlCint)
+ d writer value like(xmlTextWriterPtr)
+ d data * value options(*string) const char *
+ d start value like(xmlCint)
+ d len value like(xmlCint)
+
+ d xmlTextWriterWriteBinHex...
+ d pr extproc('xmlTextWriterWriteBinHex')
+ d like(xmlCint)
+ d writer value like(xmlTextWriterPtr)
+ d data * value options(*string) const char *
+ d start value like(xmlCint)
+ d len value like(xmlCint)
+
+ * Attributes
+
+ d xmlTextWriterStartAttribute...
+ d pr extproc(
+ d 'xmlTextWriterStartAttribute')
+ d like(xmlCint)
+ d writer value like(xmlTextWriterPtr)
+ d name * value options(*string) const xmlChar *
+
+ d xmlTextWriterStartAttributeNS...
+ d pr extproc(
+ d 'xmlTextWriterStartAttributeNS')
+ d like(xmlCint)
+ d writer value like(xmlTextWriterPtr)
+ d prefix * value options(*string) const xmlChar *
+ d name * value options(*string) const xmlChar *
+ d namespaceURI * value options(*string) const xmlChar *
+
+ d xmlTextWriterEndAttribute...
+ d pr extproc('xmlTextWriterEndAttribute')
+ d like(xmlCint)
+ d writer value like(xmlTextWriterPtr)
+
+ * Attributes conveniency functions
+
+ d xmlTextWriterWriteFormatAttribute...
+ d pr extproc(
+ d 'xmlTextWriterWriteFormatAttribute')
+ d like(xmlCint)
+ d writer value like(xmlTextWriterPtr)
+ d name * value options(*string) const xmlChar *
+ d format * value options(*string) const char *
+ d #vararg1 * value options(*string: *nopass) void *
+ d #vararg2 * value options(*string: *nopass) void *
+ d #vararg3 * value options(*string: *nopass) void *
+ d #vararg4 * value options(*string: *nopass) void *
+ d #vararg5 * value options(*string: *nopass) void *
+ d #vararg6 * value options(*string: *nopass) void *
+ d #vararg7 * value options(*string: *nopass) void *
+ d #vararg8 * value options(*string: *nopass) void *
+
+ d xmlTextWriterWriteVFormatAttribute...
+ d pr extproc(
+ d 'xmlTextWriterWriteVFormatAttribute')
+ d like(xmlCint)
+ d writer value like(xmlTextWriterPtr)
+ d name * value options(*string) const xmlChar *
+ d format * value options(*string) const char *
+ d argptr likeds(xmlVaList)
+
+ d xmlTextWriterWriteAttribute...
+ d pr extproc(
+ d 'xmlTextWriterWriteAttribute')
+ d like(xmlCint)
+ d writer value like(xmlTextWriterPtr)
+ d name * value options(*string) const xmlChar *
+ d content * value options(*string) const xmlChar *
+
+ d xmlTextWriterWriteFormatAttributeNS...
+ d pr extproc(
+ d 'xmlTextWriterWriteFormatAttributeNS'
+ d )
+ d like(xmlCint)
+ d writer value like(xmlTextWriterPtr)
+ d prefix * value options(*string) const xmlChar *
+ d name * value options(*string) const xmlChar *
+ d namespaceURI * value options(*string) const xmlChar *
+ d format * value options(*string) const char *
+ d #vararg1 * value options(*string: *nopass) void *
+ d #vararg2 * value options(*string: *nopass) void *
+ d #vararg3 * value options(*string: *nopass) void *
+ d #vararg4 * value options(*string: *nopass) void *
+ d #vararg5 * value options(*string: *nopass) void *
+ d #vararg6 * value options(*string: *nopass) void *
+ d #vararg7 * value options(*string: *nopass) void *
+ d #vararg8 * value options(*string: *nopass) void *
+
+ d xmlTextWriterWriteVFormatAttributeNS...
+ d pr extproc('xmlTextWriterWriteVFormatAt-
+ d tributeNS')
+ d like(xmlCint)
+ d writer value like(xmlTextWriterPtr)
+ d prefix * value options(*string) const xmlChar *
+ d name * value options(*string) const xmlChar *
+ d namespaceURI * value options(*string) const xmlChar *
+ d format * value options(*string) const char *
+ d argptr likeds(xmlVaList)
+
+ d xmlTextWriterWriteAttributeNS...
+ d pr extproc(
+ d 'xmlTextWriterWriteAttributeNS')
+ d like(xmlCint)
+ d writer value like(xmlTextWriterPtr)
+ d prefix * value options(*string) const xmlChar *
+ d name * value options(*string) const xmlChar *
+ d namespaceURI * value options(*string) const xmlChar *
+ d content * value options(*string) const xmlChar *
+
+ * PI's
+
+ d xmlTextWriterStartPI...
+ d pr extproc('xmlTextWriterStartPI')
+ d like(xmlCint)
+ d writer value like(xmlTextWriterPtr)
+ d target * value options(*string) const xmlChar *
+
+ d xmlTextWriterEndPI...
+ d pr extproc('xmlTextWriterEndPI')
+ d like(xmlCint)
+ d writer value like(xmlTextWriterPtr)
+
+ * PI conveniency functions
+
+ d xmlTextWriterWriteFormatPI...
+ d pr extproc('xmlTextWriterWriteFormatPI')
+ d like(xmlCint)
+ d writer value like(xmlTextWriterPtr)
+ d target * value options(*string) const xmlChar *
+ d format * value options(*string) const char *
+ d #vararg1 * value options(*string: *nopass) void *
+ d #vararg2 * value options(*string: *nopass) void *
+ d #vararg3 * value options(*string: *nopass) void *
+ d #vararg4 * value options(*string: *nopass) void *
+ d #vararg5 * value options(*string: *nopass) void *
+ d #vararg6 * value options(*string: *nopass) void *
+ d #vararg7 * value options(*string: *nopass) void *
+ d #vararg8 * value options(*string: *nopass) void *
+
+ d xmlTextWriterWriteVFormatPI...
+ d pr extproc(
+ d 'xmlTextWriterWriteVFormatPI')
+ d like(xmlCint)
+ d writer value like(xmlTextWriterPtr)
+ d target * value options(*string) const xmlChar *
+ d format * value options(*string) const char *
+ d argptr likeds(xmlVaList)
+
+ d xmlTextWriterWritePI...
+ d pr extproc('xmlTextWriterWritePI')
+ d like(xmlCint)
+ d writer value like(xmlTextWriterPtr)
+ d target * value options(*string) const xmlChar *
+ d content * value options(*string) const xmlChar *
+
+ * xmlTextWriterWriteProcessingInstruction:
+ *
+ * This macro maps to xmlTextWriterWritePI
+
+ d xmlTextWriterWriteProcessingInstruction...
+ d pr extproc('xmlTextWriterWritePI')
+ d like(xmlCint)
+ d writer value like(xmlTextWriterPtr)
+ d target * value options(*string) const xmlChar *
+ d content * value options(*string) const xmlChar *
+
+ * CDATA
+
+ d xmlTextWriterStartCDATA...
+ d pr extproc('xmlTextWriterStartCDATA')
+ d like(xmlCint)
+ d writer value like(xmlTextWriterPtr)
+
+ d xmlTextWriterEndCDATA...
+ d pr extproc('xmlTextWriterEndCDATA')
+ d like(xmlCint)
+ d writer value like(xmlTextWriterPtr)
+
+ * CDATA conveniency functions
+
+ d xmlTextWriterWriteFormatCDATA...
+ d pr extproc(
+ d 'xmlTextWriterWriteFormatCDATA')
+ d like(xmlCint)
+ d writer value like(xmlTextWriterPtr)
+ d format * value options(*string) const char *
+ d #vararg1 * value options(*string: *nopass) void *
+ d #vararg2 * value options(*string: *nopass) void *
+ d #vararg3 * value options(*string: *nopass) void *
+ d #vararg4 * value options(*string: *nopass) void *
+ d #vararg5 * value options(*string: *nopass) void *
+ d #vararg6 * value options(*string: *nopass) void *
+ d #vararg7 * value options(*string: *nopass) void *
+ d #vararg8 * value options(*string: *nopass) void *
+
+ d xmlTextWriterWriteVFormatCDATA...
+ d pr extproc(
+ d 'xmlTextWriterWriteVFormatCDATA')
+ d like(xmlCint)
+ d writer value like(xmlTextWriterPtr)
+ d format * value options(*string) const char *
+ d argptr likeds(xmlVaList)
+
+ d xmlTextWriterWriteCDATA...
+ d pr extproc('xmlTextWriterWriteCDATA')
+ d like(xmlCint)
+ d writer value like(xmlTextWriterPtr)
+ d content * value options(*string) const xmlChar *
+
+ * DTD
+
+ d xmlTextWriterStartDTD...
+ d pr extproc('xmlTextWriterStartDTD')
+ d like(xmlCint)
+ d writer value like(xmlTextWriterPtr)
+ d name * value options(*string) const xmlChar *
+ d pubid * value options(*string) const xmlChar *
+ d sysid * value options(*string) const xmlChar *
+
+ d xmlTextWriterEndDTD...
+ d pr extproc('xmlTextWriterEndDTD')
+ d like(xmlCint)
+ d writer value like(xmlTextWriterPtr)
+
+ * DTD conveniency functions
+
+ d xmlTextWriterWriteFormatDTD...
+ d pr extproc(
+ d 'xmlTextWriterWriteFormatDTD')
+ d like(xmlCint)
+ d writer value like(xmlTextWriterPtr)
+ d name * value options(*string) const xmlChar *
+ d pubid * value options(*string) const xmlChar *
+ d sysid * value options(*string) const xmlChar *
+ d format * value options(*string) const char *
+ d #vararg1 * value options(*string: *nopass) void *
+ d #vararg2 * value options(*string: *nopass) void *
+ d #vararg3 * value options(*string: *nopass) void *
+ d #vararg4 * value options(*string: *nopass) void *
+ d #vararg5 * value options(*string: *nopass) void *
+ d #vararg6 * value options(*string: *nopass) void *
+ d #vararg7 * value options(*string: *nopass) void *
+ d #vararg8 * value options(*string: *nopass) void *
+
+ d xmlTextWriterWriteVFormatDTD...
+ d pr extproc(
+ d 'xmlTextWriterWriteVFormatDTD')
+ d like(xmlCint)
+ d writer value like(xmlTextWriterPtr)
+ d name * value options(*string) const xmlChar *
+ d pubid * value options(*string) const xmlChar *
+ d sysid * value options(*string) const xmlChar *
+ d format * value options(*string) const char *
+ d argptr likeds(xmlVaList)
+
+ d xmlTextWriterWriteDTD...
+ d pr extproc('xmlTextWriterWriteDTD')
+ d like(xmlCint)
+ d writer value like(xmlTextWriterPtr)
+ d name * value options(*string) const xmlChar *
+ d pubid * value options(*string) const xmlChar *
+ d sysid * value options(*string) const xmlChar *
+ d subset * value options(*string) const xmlChar *
+
+ * xmlTextWriterWriteDocType:
+ *
+ * this macro maps to xmlTextWriterWriteDTD
+
+ d xmlTextWriterWriteDocType...
+ d pr extproc('xmlTextWriterWriteDTD')
+ d like(xmlCint)
+ d writer value like(xmlTextWriterPtr)
+ d name * value options(*string) const xmlChar *
+ d pubid * value options(*string) const xmlChar *
+ d sysid * value options(*string) const xmlChar *
+ d subset * value options(*string) const xmlChar *
+
+ * DTD element definition
+
+ d xmlTextWriterStartDTDElement...
+ d pr extproc(
+ d 'xmlTextWriterStartDTDElement')
+ d like(xmlCint)
+ d writer value like(xmlTextWriterPtr)
+ d name * value options(*string) const xmlChar *
+
+ d xmlTextWriterEndDTDElement...
+ d pr extproc('xmlTextWriterEndDTDElement')
+ d like(xmlCint)
+ d writer value like(xmlTextWriterPtr)
+
+ * DTD element definition conveniency functions
+
+ d xmlTextWriterWriteFormatDTDElement...
+ d pr extproc(
+ d 'xmlTextWriterWriteFormatDTDElement')
+ d like(xmlCint)
+ d writer value like(xmlTextWriterPtr)
+ d name * value options(*string) const xmlChar *
+ d format * value options(*string) const char *
+ d #vararg1 * value options(*string: *nopass) void *
+ d #vararg2 * value options(*string: *nopass) void *
+ d #vararg3 * value options(*string: *nopass) void *
+ d #vararg4 * value options(*string: *nopass) void *
+ d #vararg5 * value options(*string: *nopass) void *
+ d #vararg6 * value options(*string: *nopass) void *
+ d #vararg7 * value options(*string: *nopass) void *
+ d #vararg8 * value options(*string: *nopass) void *
+
+ d xmlTextWriterWriteVFormatDTDElement...
+ d pr extproc(
+ d 'xmlTextWriterWriteVFormatDTDElement'
+ d )
+ d like(xmlCint)
+ d writer value like(xmlTextWriterPtr)
+ d name * value options(*string) const xmlChar *
+ d format * value options(*string) const char *
+ d argptr likeds(xmlVaList)
+
+ d xmlTextWriterWriteDTDElement...
+ d pr extproc(
+ d 'xmlTextWriterWriteDTDElement')
+ d like(xmlCint)
+ d writer value like(xmlTextWriterPtr)
+ d name * value options(*string) const xmlChar *
+ d content * value options(*string) const xmlChar *
+
+ * DTD attribute list definition
+
+ d xmlTextWriterStartDTDAttlist...
+ d pr extproc(
+ d 'xmlTextWriterStartDTDAttlist')
+ d like(xmlCint)
+ d writer value like(xmlTextWriterPtr)
+ d name * value options(*string) const xmlChar *
+
+ d xmlTextWriterEndDTDAttlist...
+ d pr extproc('xmlTextWriterEndDTDAttlist')
+ d like(xmlCint)
+ d writer value like(xmlTextWriterPtr)
+
+ * DTD attribute list definition conveniency functions
+
+ d xmlTextWriterWriteFormatDTDAttlist...
+ d pr extproc(
+ d 'xmlTextWriterWriteFormatDTDAttlist')
+ d like(xmlCint)
+ d writer value like(xmlTextWriterPtr)
+ d name * value options(*string) const xmlChar *
+ d format * value options(*string) const char *
+ d #vararg1 * value options(*string: *nopass) void *
+ d #vararg2 * value options(*string: *nopass) void *
+ d #vararg3 * value options(*string: *nopass) void *
+ d #vararg4 * value options(*string: *nopass) void *
+ d #vararg5 * value options(*string: *nopass) void *
+ d #vararg6 * value options(*string: *nopass) void *
+ d #vararg7 * value options(*string: *nopass) void *
+ d #vararg8 * value options(*string: *nopass) void *
+
+ d xmlTextWriterWriteVFormatDTDAttlist...
+ d pr extproc(
+ d 'xmlTextWriterWriteVFormatDTDAttlist'
+ d )
+ d like(xmlCint)
+ d writer value like(xmlTextWriterPtr)
+ d name * value options(*string) const xmlChar *
+ d format * value options(*string) const char *
+ d argptr likeds(xmlVaList)
+
+ d xmlTextWriterWriteDTDAttlist...
+ d pr extproc(
+ d 'xmlTextWriterWriteDTDAttlist')
+ d like(xmlCint)
+ d writer value like(xmlTextWriterPtr)
+ d name * value options(*string) const xmlChar *
+ d content * value options(*string) const xmlChar *
+
+ * DTD entity definition
+
+ d xmlTextWriterStartDTDEntity...
+ d pr extproc(
+ d 'xmlTextWriterStartDTDEntity')
+ d like(xmlCint)
+ d writer value like(xmlTextWriterPtr)
+ d pe value like(xmlCint)
+ d name * value options(*string) const xmlChar *
+
+ d xmlTextWriterEndDTDEntity...
+ d pr extproc('xmlTextWriterEndDTDEntity')
+ d like(xmlCint)
+ d writer value like(xmlTextWriterPtr)
+
+ * DTD entity definition conveniency functions
+
+ d xmlTextWriterWriteFormatDTDInternalEntity...
+ d pr extproc('xmlTextWriterWriteFormatDTD-
+ d InternalEntity')
+ d like(xmlCint)
+ d writer value like(xmlTextWriterPtr)
+ d pe value like(xmlCint)
+ d name * value options(*string) const xmlChar *
+ d format * value options(*string) const char *
+ d #vararg1 * value options(*string: *nopass) void *
+ d #vararg2 * value options(*string: *nopass) void *
+ d #vararg3 * value options(*string: *nopass) void *
+ d #vararg4 * value options(*string: *nopass) void *
+ d #vararg5 * value options(*string: *nopass) void *
+ d #vararg6 * value options(*string: *nopass) void *
+ d #vararg7 * value options(*string: *nopass) void *
+ d #vararg8 * value options(*string: *nopass) void *
+
+ d xmlTextWriterWriteVFormatDTDInternalEntity...
+ d pr extproc('xmlTextWriterWriteVFormatDT-
+ d DInternalEntity')
+ d like(xmlCint)
+ d writer value like(xmlTextWriterPtr)
+ d pe value like(xmlCint)
+ d name * value options(*string) const xmlChar *
+ d format * value options(*string) const char *
+ d argptr likeds(xmlVaList)
+
+ d xmlTextWriterWriteDTDInternalEntity...
+ d pr extproc(
+ d 'xmlTextWriterWriteDTDInternalEntity'
+ d )
+ d like(xmlCint)
+ d writer value like(xmlTextWriterPtr)
+ d pe value like(xmlCint)
+ d name * value options(*string) const xmlChar *
+ d content * value options(*string) const xmlChar *
+
+ d xmlTextWriterWriteDTDExternalEntity...
+ d pr extproc(
+ d 'xmlTextWriterWriteDTDExternalEntity'
+ d )
+ d like(xmlCint)
+ d writer value like(xmlTextWriterPtr)
+ d pe value like(xmlCint)
+ d name * value options(*string) const xmlChar *
+ d pubid * value options(*string) const xmlChar *
+ d sysid * value options(*string) const xmlChar *
+ d ndataid * value options(*string) const xmlChar *
+
+ d xmlTextWriterWriteDTDExternalEntityContents...
+ d pr extproc('xmlTextWriterWriteDTDExtern-
+ d alEntityContents')
+ d like(xmlCint)
+ d writer value like(xmlTextWriterPtr)
+ d pubid * value options(*string) const xmlChar *
+ d sysid * value options(*string) const xmlChar *
+ d ndataid * value options(*string) const xmlChar *
+
+ d xmlTextWriterWriteDTDEntity...
+ d pr extproc(
+ d 'xmlTextWriterWriteDTDEntity')
+ d like(xmlCint)
+ d writer value like(xmlTextWriterPtr)
+ d pe value like(xmlCint)
+ d name * value options(*string) const xmlChar *
+ d pubid * value options(*string) const xmlChar *
+ d sysid * value options(*string) const xmlChar *
+ d ndataid * value options(*string) const xmlChar *
+ d content * value options(*string) const xmlChar *
+
+ * DTD notation definition
+
+ d xmlTextWriterWriteDTDNotation...
+ d pr extproc(
+ d 'xmlTextWriterWriteDTDNotation')
+ d like(xmlCint)
+ d writer value like(xmlTextWriterPtr)
+ d name * value options(*string) const xmlChar *
+ d pubid * value options(*string) const xmlChar *
+ d sysid * value options(*string) const xmlChar *
+
+ * Indentation
+
+ d xmlTextWriterSetIndent...
+ d pr extproc('xmlTextWriterSetIndent')
+ d like(xmlCint)
+ d writer value like(xmlTextWriterPtr)
+ d indent value like(xmlCint)
+
+ d xmlTextWriterSetIndentString...
+ d pr extproc(
+ d 'xmlTextWriterSetIndentString')
+ d like(xmlCint)
+ d writer value like(xmlTextWriterPtr)
+ d str * value options(*string) const xmlChar *
+
+ d xmlTextWriterSetQuoteChar...
+ d pr extproc('xmlTextWriterSetQuoteChar')
+ d like(xmlCint)
+ d writer value like(xmlTextWriterPtr)
+ d quotechar value like(xmlChar)
+
+ * misc
+
+ d xmlTextWriterFlush...
+ d pr extproc('xmlTextWriterFlush')
+ d like(xmlCint)
+ d writer value like(xmlTextWriterPtr)
+
+ /endif LIBXML_WRITER_ENABLD
+ /endif XML_XMLWRITER_H__
diff --git a/libxml2/os400/libxmlrpg/xpath.rpgle b/libxml2/os400/libxmlrpg/xpath.rpgle
new file mode 100644
index 0000000..6e591ee
--- /dev/null
+++ b/libxml2/os400/libxmlrpg/xpath.rpgle
@@ -0,0 +1,675 @@
+ * Summary: XML Path Language implementation
+ * Description: API for the XML Path Language implementation
+ *
+ * XML Path Language implementation
+ * XPath is a language for addressing parts of an XML document,
+ * designed to be used by both XSLT and XPointer
+ * http://www.w3.org/TR/xpath
+ *
+ * Implements
+ * W3C Recommendation 16 November 1999
+ * http://www.w3.org/TR/1999/REC-xpath-19991116
+ *
+ * Copy: See Copyright for the status of this software.
+ *
+ * Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A.
+
+ /if not defined(XML_XPATH_H__)
+ /define XML_XPATH_H__
+
+ /include "libxmlrpg/xmlversion"
+
+ /if defined(LIBXML_XPATH_ENABLED)
+
+ /include "libxmlrpg/xmlTypesC"
+ /include "libxmlrpg/xmlerror"
+ /include "libxmlrpg/tree"
+ /include "libxmlrpg/hash"
+ /endif LIBXML_XPATH_ENABLED
+
+ /if defined(LIBXML_XPATH_ENABLED)
+
+ d xmlXPathContextPtr...
+ d s * based(######typedef######)
+
+ d xmlXPathParserContextPtr...
+ d s * based(######typedef######)
+
+ * The set of XPath error codes.
+
+ d xmlXPathError s based(######typedef######)
+ d like(xmlCenum)
+ d XPATH_EXPRESSION_OK...
+ d c 0
+ d XPATH_NUMBER_ERROR...
+ d c 1
+ d XPATH_UNFINISHED_LITERAL_ERROR...
+ d c 2
+ d XPATH_START_LITERAL_ERROR...
+ d c 3
+ d XPATH_VARIABLE_REF_ERROR...
+ d c 4
+ d XPATH_UNDEF_VARIABLE_ERROR...
+ d c 5
+ d XPATH_INVALID_PREDICATE_ERROR...
+ d c 6
+ d XPATH_EXPR_ERROR...
+ d c 7
+ d XPATH_UNCLOSED_ERROR...
+ d c 8
+ d XPATH_UNKNOWN_FUNC_ERROR...
+ d c 9
+ d XPATH_INVALID_OPERAND...
+ d c 10
+ d XPATH_INVALID_TYPE...
+ d c 11
+ d XPATH_INVALID_ARITY...
+ d c 12
+ d XPATH_INVALID_CTXT_SIZE...
+ d c 13
+ d XPATH_INVALID_CTXT_POSITION...
+ d c 14
+ d XPATH_MEMORY_ERROR...
+ d c 15
+ d XPTR_SYNTAX_ERROR...
+ d c 16
+ d XPTR_RESOURCE_ERROR...
+ d c 17
+ d XPTR_SUB_RESOURCE_ERROR...
+ d c 18
+ d XPATH_UNDEF_PREFIX_ERROR...
+ d c 19
+ d XPATH_ENCODING_ERROR...
+ d c 20
+ d XPATH_INVALID_CHAR_ERROR...
+ d c 21
+ d XPATH_INVALID_CTXT...
+ d c 22
+ d XPATH_STACK_ERROR...
+ d c 23
+ d XPATH_FORBID_VARIABLE_ERROR...
+ d c 24
+
+ * A node-set (an unordered collection of nodes without duplicates).
+
+ d xmlNodeSetPtr s * based(######typedef######)
+
+ d xmlNodeSet ds based(xmlNodeSetPtr)
+ d align qualified
+ d nodeNr like(xmlCint) Set node count
+ d nodeMax like(xmlCint) Max # nodes in set
+ d nodeTab * xmlNodePtr *
+
+ * An expression is evaluated to yield an object, which
+ * has one of the following four basic types:
+ * - node-set
+ * - boolean
+ * - number
+ * - string
+ *
+ * @@ XPointer will add more types !
+
+ d xmlXPathObjectType...
+ d s based(######typedef######)
+ d like(xmlCenum)
+ d XPATH_UNDEFINED...
+ d c 0
+ d XPATH_NODESET c 1
+ d XPATH_BOOLEAN c 2
+ d XPATH_NUMBER c 3
+ d XPATH_STRING c 4
+ d XPATH_POINT c 5
+ d XPATH_RANGE c 6
+ d XPATH_LOCATIONSET...
+ d c 7
+ d XPATH_USERS c 8
+ d XPATH_XSLT_TREE... R/O XSLT value tree
+ d c 9
+
+ d xmlXPathObjectPtr...
+ d s * based(######typedef######)
+
+ d xmlXPathObject ds based(xmlXPathObjectPtr)
+ d align qualified
+ d type like(xmlXPathObjectType)
+ d nodesetval like(xmlNodeSetPtr)
+ d boolval like(xmlCint)
+ d floatval like(xmlCdouble)
+ d stringval * xmlChar *
+ d user * void *
+ d index like(xmlCint)
+ d user2 * void *
+ d index2 like(xmlCint)
+
+ * xmlXPathConvertFunc:
+ * @obj: an XPath object
+ * @type: the number of the target type
+ *
+ * A conversion function is associated to a type and used to cast
+ * the new type to primitive values.
+ *
+ * Returns -1 in case of error, 0 otherwise
+
+ d xmlXPathConvertFunc...
+ d s * based(######typedef######)
+ d procptr
+
+ * Extra type: a name and a conversion function.
+
+ d xmlXPathTypePtr...
+ d s * based(######typedef######)
+
+ d xmlXPathType ds based(xmlXPathTypePtr)
+ d align qualified
+ d name * The type name
+ d func like(xmlXPathConvertFunc) Conversion function
+
+ * Extra variable: a name and a value.
+
+ d xmlXPathVariablePtr...
+ d s * based(######typedef######)
+
+ d xmlXPathVariable...
+ d ds based(xmlXPathVariablePtr)
+ d align qualified
+ d name * The variable name
+ d value like(xmlXPathObjectPtr) The value
+
+ * xmlXPathEvalFunc:
+ * @ctxt: an XPath parser context
+ * @nargs: the number of arguments passed to the function
+ *
+ * An XPath evaluation function, the parameters are on the XPath
+ * context stack.
+
+ d xmlXPathEvalFunc...
+ d s * based(######typedef######)
+ d procptr
+
+ * Extra function: a name and an evaluation function.
+
+ d xmlXPathFuncPtr...
+ d s * based(######typedef######)
+
+ d xmlXPathFunct ds based(xmlXPathFuncPtr)
+ d align qualified
+ d name * The function name
+ d func like(xmlXPathEvalFunc) Evaluation function
+
+ * xmlXPathAxisFunc:
+ * @ctxt: the XPath interpreter context
+ * @cur: the previous node being explored on that axis
+ *
+ * An axis traversal function. To traverse an axis, the engine calls
+ * the first time with cur == NULL and repeat until the function returns
+ * NULL indicating the end of the axis traversal.
+ *
+ * Returns the next node in that axis or NULL if at the end of the axis.
+
+ d xmlXPathAxisFunc...
+ d s * based(######typedef######)
+ d procptr
+
+ * Extra axis: a name and an axis function.
+
+ d xmlXPathAxisPtr...
+ d s * based(######typedef######)
+
+ d xmlXPathAxis ds based(xmlXPathAxisPtr)
+ d align qualified
+ d name * The axis name
+ d func like(xmlXPathAxisFunc) The search function
+
+ * xmlXPathFunction:
+ * @ctxt: the XPath interprestation context
+ * @nargs: the number of arguments
+ *
+ * An XPath function.
+ * The arguments (if any) are popped out from the context stack
+ * and the result is pushed on the stack.
+
+ d xmlXPathFunction...
+ d s * based(######typedef######)
+ d procptr
+
+ * Function and Variable Lookup.
+
+ * xmlXPathVariableLookupFunc:
+ * @ctxt: an XPath context
+ * @name: name of the variable
+ * @ns_uri: the namespace name hosting this variable
+ *
+ * Prototype for callbacks used to plug variable lookup in the XPath
+ * engine.
+ *
+ * Returns the XPath object value or NULL if not found.
+
+ d xmlXPathVariableLookupFunc...
+ d s * based(######typedef######)
+ d procptr
+
+ * xmlXPathFuncLookupFunc:
+ * @ctxt: an XPath context
+ * @name: name of the function
+ * @ns_uri: the namespace name hosting this function
+ *
+ * Prototype for callbacks used to plug function lookup in the XPath
+ * engine.
+ *
+ * Returns the XPath function or NULL if not found.
+
+ d xmlXPathFuncLookupFunc...
+ d s * based(######typedef######)
+ d procptr
+
+ * xmlXPathFlags:
+ * Flags for XPath engine compilation and runtime
+
+ * XML_XPATH_CHECKNS:
+ *
+ * check namespaces at compilation
+
+ d XML_XPATH_CHECKNS...
+ d c X'0001'
+
+ * XML_XPATH_NOVAR:
+ *
+ * forbid variables in expression
+
+ d XML_XPATH_NOVAR...
+ d c X'0002'
+
+ * xmlXPathContext:
+ *
+ * Expression evaluation occurs with respect to a context.
+ * he context consists of:
+ * - a node (the context node)
+ * - a node list (the context node list)
+ * - a set of variable bindings
+ * - a function library
+ * - the set of namespace declarations in scope for the expression
+ * Following the switch to hash tables, this need to be trimmed up at
+ * the next binary incompatible release.
+ * The node may be modified when the context is passed to libxml2
+ * for an XPath evaluation so you may need to initialize it again
+ * before the next call.
+
+ d xmlXPathContext...
+ d ds based(xmlXPathContextPtr)
+ d align qualified
+ d doc like(xmlDocPtr) Current document
+ d node like(xmlNodePtr) Current node
+ *
+ d nb_variables_unused... Unused (hash table)
+ d like(xmlCint)
+ d max_variables_unused... Unused (hash table)
+ d like(xmlCint)
+ d varHash like(xmlHashTablePtr) Defined variables
+ *
+ d nb_types like(xmlCint) # of defined types
+ d max_types like(xmlCint) Max number of types
+ d types like(xmlXPathTypePtr) Defined types array
+ *
+ d nb_funcs_unused... Unused (hash table)
+ d like(xmlCint)
+ d max_funcs_unused... Unused (hash table)
+ d like(xmlCint)
+ d funcHash like(xmlHashTablePtr) Defined functions
+ *
+ d nb_axis like(xmlCint) # of defined axis
+ d max_axis like(xmlCint) Max number of axis
+ d axis like(xmlXPathAxisPtr) Defined axis array
+ *
+ * the namespace nodes of the context node
+ *
+ d namespaces * xmlNsPtr *
+ d nsNr like(xmlCint) # scope namespaces
+ d user * procptr Function to free
+ *
+ * extra variables
+ *
+ d contextSize like(xmlCint) The context size
+ d proximityPosition...
+ d like(xmlCint)
+ *
+ * extra stuff for XPointer
+ *
+ d xptr like(xmlCint) XPointer context ?
+ d here like(xmlNodePtr) For here()
+ d origin like(xmlNodePtr) For origin()
+ *
+ * the set of namespace declarations in scope for the expression
+ *
+ d nsHash like(xmlHashTablePtr) Namespace hashtable
+ d varLookupFunc like(xmlXPathVariableLookupFunc) Var lookup function
+ d varLookupData * void *
+ *
+ * Possibility to link in an extra item
+ *
+ d extra * void *
+ *
+ * The function name and URI when calling a function
+ *
+ d function * const xmlChar *
+ d functionURI * const xmlChar *
+ *
+ * function lookup function and data
+ *
+ d funcLookupFunc... Func lookup func
+ d like(xmlXPathVariableLookupFunc)
+ d funcLookupData... void *
+ d *
+ *
+ * temporary namespace lists kept for walking the namespace axis
+ *
+ d tmpNsList * xmlNsPtr *
+ d tmpNsNr like(xmlCint) # scope namespaces
+ *
+ * error reporting mechanism
+ *
+ d userData * void *
+ d error like(xmlStructuredErrorFunc) Error callback
+ d lastError likeds(xmlError) The last error
+ d debugNode like(xmlNodePtr) XSLT source node
+ *
+ * dictionary
+ *
+ d dict like(xmlDictPtr) Dictionary if any
+ *
+ d flags like(xmlCint) Compilation control
+ *
+ * Cache for reusal of XPath objects
+ *
+ d cache * void *
+
+ * The structure of a compiled expression form is not public.
+
+ d xmlXPathCompExprPtr...
+ d s * based(######typedef######)
+
+ * xmlXPathParserContext:
+ *
+ * An XPath parser context. It contains pure parsing informations,
+ * an xmlXPathContext, and the stack of objects.
+
+ d xmlXPathParserContext...
+ d ds based(xmlXPathParserContextPtr)
+ d align qualified
+ d cur * const xmlChar *
+ d base * const xmlChar *
+ *
+ d error like(xmlCint) Error code
+ *
+ d context like(xmlXPathContextPtr) Evaluation context
+ d value like(xmlXPathObjectPtr) The current value
+ d valueNr like(xmlCint) Value stack depth
+ d valueMax like(xmlCint) Max stack depth
+ d valueTab * xmlXPathObjectPtr *
+ *
+ d comp like(xmlXPathCompExprPtr) Precompiled expr.
+ d xptr like(xmlCint) XPointer expression?
+ d ancestor like(xmlNodePtr) To walk prec. axis
+ *
+ d valueFrame like(xmlCint) Limit stack pop
+
+ **************************************************************************
+ * *
+ * Public API *
+ * *
+ **************************************************************************
+
+ * Objects and Nodesets handling
+
+ d xmlXPathNAN s import('xmlXPathNAN')
+ d like(xmlCdouble)
+
+ d xmlXPathPINF s import('xmlXPathPINF')
+ d like(xmlCdouble)
+
+ d xmlXPathNINF s import('xmlXPathNINF')
+ d like(xmlCdouble)
+
+ d xmlXPathFreeObject...
+ d pr extproc('xmlXPathFreeObject')
+ d obj value like(xmlXPathObjectPtr)
+
+ d xmlXPathNodeSetCreate...
+ d pr extproc('xmlXPathNodeSetCreate')
+ d like(xmlNodeSetPtr)
+ d val value like(xmlNodePtr)
+
+ d xmlXPathFreeNodeSetList...
+ d pr extproc('xmlXPathFreeNodeSetList')
+ d obj value like(xmlXPathObjectPtr)
+
+ d xmlXPathFreeNodeSet...
+ d pr extproc('xmlXPathFreeNodeSet')
+ d obj value like(xmlNodeSetPtr)
+
+ d xmlXPathObjectCopy...
+ d pr extproc('xmlXPathObjectCopy')
+ d like(xmlXPathObjectPtr)
+ d val value like(xmlXPathObjectPtr)
+
+ d xmlXPathCmpNodes...
+ d pr extproc('xmlXPathCmpNodes')
+ d like(xmlCint)
+ d node1 value like(xmlNodePtr)
+ d node2 value like(xmlNodePtr)
+
+ * Conversion functions to basic types.
+
+ d xmlXPathCastNumberToBoolean...
+ d pr extproc(
+ d 'xmlXPathCastNumberToBoolean')
+ d like(xmlCint)
+ d val value like(xmlCdouble)
+
+ d xmlXPathCastStringToBoolean...
+ d pr extproc(
+ d 'xmlXPathCastStringToBoolean')
+ d like(xmlCint)
+ d val * value options(*string) const xmlChar *
+
+ d xmlXPathCastNodeSetToBoolean...
+ d pr extproc(
+ d 'xmlXPathCastNodeSetToBoolean')
+ d like(xmlCint)
+ d ns value like(xmlNodeSetPtr)
+
+ d xmlXPathCastToBoolean...
+ d pr extproc('xmlXPathCastToBoolean')
+ d like(xmlCint)
+ d val value like(xmlXPathObjectPtr)
+
+ d xmlXPathCastBooleanToNumber...
+ d pr extproc(
+ d 'xmlXPathCastBooleanToNumber')
+ d like(xmlCdouble)
+ d val value like(xmlCint)
+
+ d xmlXPathCastStringToNumber...
+ d pr extproc('xmlXPathCastStringToNumber')
+ d like(xmlCdouble)
+ d val * value options(*string) const xmlChar *
+
+ d xmlXPathCastNodeToNumber...
+ d pr extproc('xmlXPathCastNodeToNumber')
+ d like(xmlCdouble)
+ d node value like(xmlNodePtr)
+
+ d xmlXPathCastNodeSetToNumber...
+ d pr extproc(
+ d 'xmlXPathCastNodeSetToNumber')
+ d like(xmlCdouble)
+ d ns value like(xmlNodeSetPtr)
+
+ d xmlXPathCastToNumber...
+ d pr extproc('xmlXPathCastToNumber')
+ d like(xmlCdouble)
+ d val value like(xmlXPathObjectPtr)
+
+ d xmlXPathCastBooleanToString...
+ d pr * extproc( xmlChar *
+ d 'xmlXPathCastBooleanToString')
+ d val value like(xmlCint)
+
+ d xmlXPathCastNumberToString...
+ d pr * extproc('xmlXPathCastNumberToString')xmlChar *
+ d val value like(xmlCdouble)
+
+ d xmlXPathCastNodeToString...
+ d pr * extproc('xmlXPathCastNodeToString') xmlChar *
+ d node value like(xmlNodePtr)
+
+ d xmlXPathCastNodeSetToString...
+ d pr * extproc('xmlXPathCastNodeSetToString'xmlChar *
+ d )
+ d ns value like(xmlNodeSetPtr)
+
+ d xmlXPathCastToString...
+ d pr * extproc('xmlXPathCastToString') xmlChar *
+ d val value like(xmlXPathObjectPtr)
+
+ d xmlXPathConvertBoolean...
+ d pr extproc('xmlXPathConvertBoolean')
+ d like(xmlXPathObjectPtr)
+ d val value like(xmlXPathObjectPtr)
+
+ d xmlXPathConvertNumber...
+ d pr extproc('xmlXPathConvertNumber')
+ d like(xmlXPathObjectPtr)
+ d val value like(xmlXPathObjectPtr)
+
+ d xmlXPathConvertString...
+ d pr extproc('xmlXPathConvertString')
+ d like(xmlXPathObjectPtr)
+ d val value like(xmlXPathObjectPtr)
+
+ * Context handling.
+
+ d xmlXPathNewContext...
+ d pr extproc('xmlXPathNewContext')
+ d like(xmlXPathContextPtr)
+ d doc value like(xmlDocPtr)
+
+ d xmlXPathFreeContext...
+ d pr extproc('xmlXPathFreeContext')
+ d ctxt value like(xmlXPathContextPtr)
+
+ d xmlXPathContextSetCache...
+ d pr extproc('xmlXPathContextSetCache')
+ d like(xmlCint)
+ d ctxt value like(xmlXPathContextPtr)
+ d active value like(xmlCint)
+ d value value like(xmlCint)
+ d options value like(xmlCint)
+
+ * Evaluation functions.
+
+ d xmlXPathOrderDocElems...
+ d pr extproc('xmlXPathOrderDocElems')
+ d like(xmlClong)
+ d doc value like(xmlDocPtr)
+
+ d xmlXPathSetContextNode...
+ d pr extproc('xmlXPathSetContextNode')
+ d like(xmlCint)
+ d node value like(xmlNodePtr)
+ d ctx value like(xmlXPathContextPtr)
+
+ d xmlXPathNodeEval...
+ d pr extproc('xmlXPathNodeEval')
+ d like(xmlXPathObjectPtr)
+ d node value like(xmlNodePtr)
+ d str * value options(*string) const xmlChar *
+ d ctx value like(xmlXPathContextPtr)
+
+ d xmlXPathEval pr extproc('xmlXPathEval')
+ d like(xmlXPathObjectPtr)
+ d str * value options(*string) const xmlChar *
+ d ctx value like(xmlXPathContextPtr)
+
+ d xmlXPathEvalExpression...
+ d pr extproc('xmlXPathEvalExpression')
+ d like(xmlXPathObjectPtr)
+ d str * value options(*string) const xmlChar *
+ d ctxt value like(xmlXPathContextPtr)
+
+ d xmlXPathEvalPredicate...
+ d pr extproc('xmlXPathEvalPredicate')
+ d like(xmlCint)
+ d ctxt value like(xmlXPathContextPtr)
+ d res value like(xmlXPathObjectPtr)
+
+ * Separate compilation/evaluation entry points.
+
+ d xmlXPathCompile...
+ d pr extproc('xmlXPathCompile')
+ d like(xmlXPathCompExprPtr)
+ d str * value options(*string) const xmlChar *
+
+ d xmlXPathCtxtCompile...
+ d pr extproc('xmlXPathCtxtCompile')
+ d like(xmlXPathCompExprPtr)
+ d ctxt value like(xmlXPathContextPtr)
+ d str * value options(*string) const xmlChar *
+
+ d xmlXPathCompiledEval...
+ d pr extproc('xmlXPathCompiledEval')
+ d like(xmlXPathObjectPtr)
+ d comp value like(xmlXPathCompExprPtr)
+ d ctx value like(xmlXPathContextPtr)
+
+ d xmlXPathCompiledEvalToBoolean...
+ d pr extproc(
+ d 'xmlXPathCompiledEvalToBoolean')
+ d like(xmlCint)
+ d comp value like(xmlXPathCompExprPtr)
+ d ctxt value like(xmlXPathContextPtr)
+
+ d xmlXPathFreeCompExpr...
+ d pr extproc('xmlXPathFreeCompExpr')
+ d comp value like(xmlXPathCompExprPtr)
+ /endif LIBXML_XPATH_ENABLED
+
+ /undefine XML_TESTVAL
+ /if defined(LIBXML_XPATH_ENABLED)
+ /define XML_TESTVAL
+ /elseif defined(LIBXML_SCHEMAS_ENABLED)
+ /define XML_TESTVAL
+ /endif
+ /if defined(XML_TESTVAL)
+ d xmlXPathInit pr extproc('xmlXPathInit')
+
+ d xmlXPathIsNaN pr extproc('xmlXPathIsNaN')
+ d like(xmlCint)
+ d val value like(xmlCdouble)
+
+ d xmlXPathIsInf pr extproc('xmlXPathIsInf')
+ d like(xmlCint)
+ d val value like(xmlCdouble)
+
+ /undefine XML_TESTVAL
+ /endif
+
+ * C macros implemented as procedures for ILE/RPG support.
+
+ /if defined(LIBXML_XPATH_ENABLED)
+ d xmlXPathNodeSetGetLength...
+ d pr extproc('__xmlXPathNodeSetGetLength')
+ d like(xmlCint)
+ d ns value like(xmlNodeSetPtr)
+
+ d xmlXPathNodeSetItem...
+ d pr extproc('__xmlXPathNodeSetItem')
+ d like(xmlNodePtr)
+ d ns value like(xmlNodeSetPtr)
+ d index value like(xmlCint)
+
+ d xmlXPathNodeSetIsEmpty...
+ d pr extproc('__xmlXPathNodeSetIsEmpty')
+ d like(xmlCint)
+ d ns value like(xmlNodeSetPtr)
+ /endif LIBXML_XPATH_ENABLED
+ /endif XML_XPATH_H__
diff --git a/libxml2/os400/libxmlrpg/xpathInternals.rpgle b/libxml2/os400/libxmlrpg/xpathInternals.rpgle
new file mode 100644
index 0000000..a6d12e1
--- /dev/null
+++ b/libxml2/os400/libxmlrpg/xpathInternals.rpgle
@@ -0,0 +1,693 @@
+ * Summary: internal interfaces for XML Path Language implementation
+ * Description: internal interfaces for XML Path Language implementation
+ * used to build new modules on top of XPath like XPointer and
+ * XSLT
+ *
+ * Copy: See Copyright for the status of this software.
+ *
+ * Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A.
+
+ /if not defined(XML_XPATH_INTERNALS_H__)
+ /define XML_XPATH_INTERNALS_H__
+
+ /include "libxmlrpg/xmlversion"
+
+ /if defined(LIBXML_XPATH_ENABLED)
+
+ /include "libxmlrpg/xmlTypesC"
+ /include "libxmlrpg/xpath"
+
+ ************************************************************************
+ * *
+ * Helpers *
+ * *
+ ************************************************************************
+
+ * Many of these macros may later turn into functions. They
+ * shouldn't be used in #ifdef's preprocessor instructions.
+
+ d xmlXPathPopBoolean...
+ d pr extproc('xmlXPathPopBoolean')
+ d like(xmlCint)
+ d ctxt value like(xmlXPathParserContextPtr)
+
+ d xmlXPathPopNumber...
+ d pr extproc('xmlXPathPopNumber')
+ d like(xmlCdouble)
+ d ctxt value like(xmlXPathParserContextPtr)
+
+ d xmlXPathPopString...
+ d pr * extproc('xmlXPathPopString') xmlChar *
+ d ctxt value like(xmlXPathParserContextPtr)
+
+ d xmlXPathPopNodeSet...
+ d pr extproc('xmlXPathPopNodeSet')
+ d like(xmlNodeSetPtr)
+ d ctxt value like(xmlXPathParserContextPtr)
+
+ d xmlXPathPopExternal...
+ d pr * extproc('xmlXPathPopExternal') void *
+ d ctxt value like(xmlXPathParserContextPtr)
+
+ * Variable Lookup forwarding.
+
+ d xmlXPathRegisterVariableLookup...
+ d pr extproc(
+ d 'xmlXPathRegisterVariableLookup')
+ d ctxt value like(xmlXPathContextPtr)
+ d f value
+ d like(xmlXPathVariableLookupFunc)
+ d data * value void *
+
+ * Function Lookup forwarding.
+
+ d xmlXPathRegisterFuncLookup...
+ d pr extproc('xmlXPathRegisterFuncLookup')
+ d ctxt value like(xmlXPathContextPtr)
+ d f value like(xmlXPathFuncLookupFunc)
+ d funcCtxt * value void *
+
+ * Error reporting.
+ * Note this procedure is renamed in RPG to avoid character case clash with
+ * data type xmlXPathError.
+
+ d xmlXPathReportError...
+ d pr extproc('xmlXPatherror')
+ d ctxt value like(xmlXPathParserContextPtr)
+ d file * value options(*string) const char *
+ d line value like(xmlCint)
+ d no value like(xmlCint)
+
+ d xmlXPathErr pr extproc('xmlXPathErr')
+ d ctxt value like(xmlXPathParserContextPtr)
+ d error value like(xmlCint)
+
+ /if defined(LIBXML_DEBUG_ENABLED)
+ d xmlXPathDebugDumpObject...
+ d pr extproc('xmlXPathDebugDumpObject')
+ d output * value FILE *
+ d cur value like(xmlXPathObjectPtr)
+ d depth value like(xmlCint)
+
+ d xmlXPathDebugDumpCompExpr...
+ d pr extproc('xmlXPathDebugDumpCompExpr')
+ d output * value FILE *
+ d comp value like(xmlXPathCompExprPtr)
+ d depth value like(xmlCint)
+ /endif
+
+ * NodeSet handling.
+
+ d xmlXPathNodeSetContains...
+ d pr extproc('xmlXPathNodeSetContains')
+ d like(xmlCint)
+ d cur value like(xmlNodeSetPtr)
+ d val value like(xmlNodePtr)
+
+ d xmlXPathDifference...
+ d pr extproc('xmlXPathDifference')
+ d like(xmlNodeSetPtr)
+ d nodes1 value like(xmlNodeSetPtr)
+ d nodes2 value like(xmlNodeSetPtr)
+
+ d xmlXPathIntersection...
+ d pr extproc('xmlXPathIntersection')
+ d like(xmlNodeSetPtr)
+ d nodes1 value like(xmlNodeSetPtr)
+ d nodes2 value like(xmlNodeSetPtr)
+
+ d xmlXPathDistinctSorted...
+ d pr extproc('xmlXPathDistinctSorted')
+ d like(xmlNodeSetPtr)
+ d nodes value like(xmlNodeSetPtr)
+
+ d xmlXPathDistinct...
+ d pr extproc('xmlXPathDistinct')
+ d like(xmlNodeSetPtr)
+ d nodes value like(xmlNodeSetPtr)
+
+ d xmlXPathHasSameNodes...
+ d pr extproc('xmlXPathHasSameNodes')
+ d like(xmlCint)
+ d nodes1 value like(xmlNodeSetPtr)
+ d nodes2 value like(xmlNodeSetPtr)
+
+ d xmlXPathNodeLeadingSorted...
+ d pr extproc('xmlXPathNodeLeadingSorted')
+ d like(xmlNodeSetPtr)
+ d nodes value like(xmlNodeSetPtr)
+ d node value like(xmlNodePtr)
+
+ d xmlXPathLeadingSorted...
+ d pr extproc('xmlXPathLeadingSorted')
+ d like(xmlNodeSetPtr)
+ d nodes1 value like(xmlNodeSetPtr)
+ d nodes2 value like(xmlNodeSetPtr)
+
+ d xmlXPathNodeLeading...
+ d pr extproc('xmlXPathNodeLeading')
+ d like(xmlNodeSetPtr)
+ d nodes value like(xmlNodeSetPtr)
+ d node value like(xmlNodePtr)
+
+ d xmlXPathLeading...
+ d pr extproc('xmlXPathLeading')
+ d like(xmlNodeSetPtr)
+ d nodes1 value like(xmlNodeSetPtr)
+ d nodes2 value like(xmlNodeSetPtr)
+
+ d xmlXPathNodeTrailingSorted...
+ d pr extproc('xmlXPathNodeTrailingSorted')
+ d like(xmlNodeSetPtr)
+ d nodes value like(xmlNodeSetPtr)
+ d node value like(xmlNodePtr)
+
+ d xmlXPathTrailingSorted...
+ d pr extproc('xmlXPathTrailingSorted')
+ d like(xmlNodeSetPtr)
+ d nodes1 value like(xmlNodeSetPtr)
+ d nodes2 value like(xmlNodeSetPtr)
+
+ d xmlXPathNodeTrailing...
+ d pr extproc('xmlXPathNodeTrailing')
+ d like(xmlNodeSetPtr)
+ d nodes value like(xmlNodeSetPtr)
+ d node value like(xmlNodePtr)
+
+ d xmlXPathTrailing...
+ d pr extproc('xmlXPathTrailing')
+ d like(xmlNodeSetPtr)
+ d nodes1 value like(xmlNodeSetPtr)
+ d nodes2 value like(xmlNodeSetPtr)
+
+ * Extending a context.
+
+ d xmlXPathRegisterNs...
+ d pr extproc('xmlXPathRegisterNs')
+ d like(xmlCint)
+ d ctxt value like(xmlXPathContextPtr)
+ d prefix * value options(*string) const xmlChar *
+ d ns_uri * value options(*string) const xmlChar *
+
+ d xmlXPathNsLookup...
+ d pr * extproc('xmlXPathNsLookup') const xmlChar *
+ d ctxt value like(xmlXPathContextPtr)
+ d prefix * value options(*string) const xmlChar *
+
+ d xmlXPathRegisteredNsCleanup...
+ d pr extproc(
+ d 'xmlXPathRegisteredNsCleanup')
+ d ctxt value like(xmlXPathContextPtr)
+
+ d xmlXPathRegisterFunc...
+ d pr extproc('xmlXPathRegisterFunc')
+ d like(xmlCint)
+ d ctxt value like(xmlXPathContextPtr)
+ d name * value options(*string) const xmlChar *
+ d f value like(xmlXPathFunction)
+
+ d xmlXPathRegisterFuncNS...
+ d pr extproc('xmlXPathRegisterFuncNS')
+ d like(xmlCint)
+ d ctxt value like(xmlXPathContextPtr)
+ d name * value options(*string) const xmlChar *
+ d ns_uri * value options(*string) const xmlChar *
+ d f value like(xmlXPathFunction)
+
+ d xmlXPathRegisterVariable...
+ d pr extproc('xmlXPathRegisterVariable')
+ d like(xmlCint)
+ d ctxt value like(xmlXPathContextPtr)
+ d name * value options(*string) const xmlChar *
+ d value value like(xmlXPathObjectPtr)
+
+ d xmlXPathRegisterVariableNS...
+ d pr extproc('xmlXPathRegisterVariableNS')
+ d like(xmlCint)
+ d ctxt value like(xmlXPathContextPtr)
+ d name * value options(*string) const xmlChar *
+ d ns_uri * value options(*string) const xmlChar *
+ d value value like(xmlXPathObjectPtr)
+
+ d xmlXPathFunctionLookup...
+ d pr extproc('xmlXPathFunctionLookup')
+ d like(xmlXPathFunction)
+ d ctxt value like(xmlXPathContextPtr)
+ d name * value options(*string) const xmlChar *
+
+ d xmlXPathFunctionLookupNS...
+ d pr extproc('xmlXPathFunctionLookupNS')
+ d like(xmlXPathFunction)
+ d ctxt value like(xmlXPathContextPtr)
+ d name * value options(*string) const xmlChar *
+ d ns_uri * value options(*string) const xmlChar *
+
+ d xmlXPathRegisteredFuncsCleanup...
+ d pr extproc(
+ d 'xmlXPathRegisteredFuncsCleanup')
+ d ctxt value like(xmlXPathContextPtr)
+
+ d xmlXPathVariableLookup...
+ d pr extproc('xmlXPathVariableLookup')
+ d like(xmlXPathObjectPtr)
+ d ctxt value like(xmlXPathContextPtr)
+ d name * value options(*string) const xmlChar *
+
+ d xmlXPathVariableLookupNS...
+ d pr extproc('xmlXPathVariableLookupNS')
+ d like(xmlXPathObjectPtr)
+ d ctxt value like(xmlXPathContextPtr)
+ d name * value options(*string) const xmlChar *
+ d ns_uri * value options(*string) const xmlChar *
+
+ d xmlXPathRegisteredVariablesCleanup...
+ d pr extproc(
+ d 'xmlXPathRegisteredVariablesCleanup')
+ d ctxt value like(xmlXPathContextPtr)
+
+ * Utilities to extend XPath.
+
+ d xmlXPathNewParserContext...
+ d pr extproc('xmlXPathNewParserContext')
+ d like(xmlXPathParserContextPtr)
+ d str * value options(*string) const xmlChar *
+ d ctxt value like(xmlXPathContextPtr)
+
+ d xmlXPathFreeParserContext...
+ d pr extproc('xmlXPathFreeParserContext')
+ d ctxt value like(xmlXPathParserContextPtr)
+
+
+ * TODO: remap to xmlXPathValuePop and Push.
+
+ d valuePop pr extproc('valuePop')
+ d like(xmlXPathObjectPtr)
+ d ctxt value like(xmlXPathParserContextPtr)
+
+ d valuePush pr extproc('valuePush')
+ d like(xmlCint)
+ d ctxt value like(xmlXPathParserContextPtr)
+ d value value like(xmlXPathObjectPtr)
+
+ d xmlXPathNewString...
+ d pr extproc('xmlXPathNewString')
+ d like(xmlXPathObjectPtr)
+ d val * value options(*string) const xmlChar *
+
+ d xmlXPathNewCString...
+ d pr extproc('xmlXPathNewCString')
+ d like(xmlXPathObjectPtr)
+ d val * value options(*string) const char *
+
+ d xmlXPathWrapString...
+ d pr extproc('xmlXPathWrapString')
+ d like(xmlXPathObjectPtr)
+ d val * value options(*string) xmlChar *
+
+ d xmlXPathWrapCString...
+ d pr extproc('xmlXPathWrapCString')
+ d like(xmlXPathObjectPtr)
+ d val * value options(*string) char *
+
+ d xmlXPathNewFloat...
+ d pr extproc('xmlXPathNewFloat')
+ d like(xmlXPathObjectPtr)
+ d val value like(xmlCdouble)
+
+ d xmlXPathNewBoolean...
+ d pr extproc('xmlXPathNewBoolean')
+ d like(xmlXPathObjectPtr)
+ d val value like(xmlCint)
+
+ d xmlXPathNewNodeSet...
+ d pr extproc('xmlXPathNewNodeSet')
+ d like(xmlXPathObjectPtr)
+ d val value like(xmlNodePtr)
+
+ d xmlXPathNewValueTree...
+ d pr extproc('xmlXPathNewValueTree')
+ d like(xmlXPathObjectPtr)
+ d val value like(xmlNodePtr)
+
+ d xmlXPathNodeSetAdd...
+ d pr extproc('xmlXPathNodeSetAdd')
+ d like(xmlCint)
+ d cur value like(xmlNodeSetPtr)
+ d val value like(xmlNodePtr)
+
+ d xmlXPathNodeSetAddUnique...
+ d pr extproc('xmlXPathNodeSetAddUnique')
+ d like(xmlCint)
+ d cur value like(xmlNodeSetPtr)
+ d val value like(xmlNodePtr)
+
+ d xmlXPathNodeSetAddNs...
+ d pr extproc('xmlXPathNodeSetAddNs')
+ d like(xmlCint)
+ d cur value like(xmlNodeSetPtr)
+ d node value like(xmlNodePtr)
+ d ns value like(xmlNsPtr)
+
+ d xmlXPathNodeSetSort...
+ d pr extproc('xmlXPathNodeSetSort')
+ d set value like(xmlNodeSetPtr)
+
+ d xmlXPathRoot pr extproc('xmlXPathRoot')
+ d ctxt value like(xmlXPathParserContextPtr)
+
+ d xmlXPathEvalExpr...
+ d pr extproc('xmlXPathEvalExpr')
+ d ctxt value like(xmlXPathParserContextPtr)
+
+ d xmlXPathParseName...
+ d pr * extproc('xmlXPathParseName') xmlChar *
+ d ctxt value like(xmlXPathParserContextPtr)
+
+ d xmlXPathParseNCName...
+ d pr * extproc('xmlXPathParseNCName') xmlChar *
+ d ctxt value like(xmlXPathParserContextPtr)
+
+ * Existing functions.
+
+ d xmlXPathStringEvalNumber...
+ d pr extproc('xmlXPathStringEvalNumber')
+ d like(xmlCdouble)
+ d str * value options(*string) const xmlChar *
+
+ d xmlXPathEvaluatePredicateResult...
+ d pr extproc(
+ d 'xmlXPathEvaluatePredicateResult')
+ d like(xmlCint)
+ d ctxt value like(xmlXPathParserContextPtr)
+ d res value like(xmlXPathObjectPtr)
+
+ d xmlXPathRegisterAllFunctions...
+ d pr extproc(
+ d 'xmlXPathRegisterAllFunctions')
+ d ctxt value like(xmlXPathContextPtr)
+
+ d xmlXPathNodeSetMerge...
+ d pr extproc('xmlXPathNodeSetMerge')
+ d like(xmlNodeSetPtr)
+ d val1 value like(xmlNodeSetPtr)
+ d val2 value like(xmlNodeSetPtr)
+
+ d xmlXPathNodeSetDel...
+ d pr extproc('xmlXPathNodeSetDel')
+ d cur value like(xmlNodeSetPtr)
+ d val value like(xmlNodePtr)
+
+ d xmlXPathNodeSetRemove...
+ d pr extproc('xmlXPathNodeSetRemove')
+ d cur value like(xmlNodeSetPtr)
+ d val value like(xmlCint)
+
+ d xmlXPathNewNodeSetList...
+ d pr extproc('xmlXPathNewNodeSetList')
+ d like(xmlXPathObjectPtr)
+ d val value like(xmlNodeSetPtr)
+
+ d xmlXPathWrapNodeSet...
+ d pr extproc('xmlXPathWrapNodeSet')
+ d like(xmlXPathObjectPtr)
+ d val value like(xmlNodeSetPtr)
+
+ d xmlXPathWrapExternal...
+ d pr extproc('xmlXPathWrapExternal')
+ d like(xmlXPathObjectPtr)
+ d val * value void *
+
+ d xmlXPathEqualValues...
+ d pr extproc('xmlXPathEqualValues')
+ d like(xmlCint)
+ d ctxt value like(xmlXPathParserContextPtr)
+
+ d xmlXPathNotEqualValues...
+ d pr extproc('xmlXPathNotEqualValues')
+ d like(xmlCint)
+ d ctxt value like(xmlXPathParserContextPtr)
+
+ d xmlXPathCompareValues...
+ d pr extproc('xmlXPathCompareValues')
+ d like(xmlCint)
+ d ctxt value like(xmlXPathParserContextPtr)
+ d inf value like(xmlCint)
+ d strict value like(xmlCint)
+
+ d xmlXPathValueFlipSign...
+ d pr extproc('xmlXPathValueFlipSign')
+ d ctxt value like(xmlXPathParserContextPtr)
+
+ d xmlXPathAddValues...
+ d pr extproc('xmlXPathAddValues')
+ d ctxt value like(xmlXPathParserContextPtr)
+
+ d xmlXPathSubValues...
+ d pr extproc('xmlXPathSubValues')
+ d ctxt value like(xmlXPathParserContextPtr)
+
+ d xmlXPathMultValues...
+ d pr extproc('xmlXPathMultValues')
+ d ctxt value like(xmlXPathParserContextPtr)
+
+ d xmlXPathDivValues...
+ d pr extproc('xmlXPathDivValues')
+ d ctxt value like(xmlXPathParserContextPtr)
+
+ d xmlXPathModValues...
+ d pr extproc('xmlXPathModValues')
+ d ctxt value like(xmlXPathParserContextPtr)
+
+ d xmlXPathIsNodeType...
+ d pr extproc('xmlXPathIsNodeType')
+ d like(xmlCint)
+ d name * value options(*string) const xmlChar *
+
+ * Some of the axis navigation routines.
+
+ d xmlXPathNextSelf...
+ d pr extproc('xmlXPathNextSelf')
+ d like(xmlNodePtr)
+ d ctxt value like(xmlXPathParserContextPtr)
+ d cur value like(xmlNodePtr)
+
+ d xmlXPathNextChild...
+ d pr extproc('xmlXPathNextChild')
+ d like(xmlNodePtr)
+ d ctxt value like(xmlXPathParserContextPtr)
+ d cur value like(xmlNodePtr)
+
+ d xmlXPathNextDescendant...
+ d pr extproc('xmlXPathNextDescendant')
+ d like(xmlNodePtr)
+ d ctxt value like(xmlXPathParserContextPtr)
+ d cur value like(xmlNodePtr)
+
+ d xmlXPathNextDescendantOrSelf...
+ d pr extproc(
+ d 'xmlXPathNextDescendantOrSelf')
+ d like(xmlNodePtr)
+ d ctxt value like(xmlXPathParserContextPtr)
+ d cur value like(xmlNodePtr)
+
+ d xmlXPathNextParent...
+ d pr extproc('xmlXPathNextParent')
+ d like(xmlNodePtr)
+ d ctxt value like(xmlXPathParserContextPtr)
+ d cur value like(xmlNodePtr)
+
+ d xmlXPathNextAncestorOrSelf...
+ d pr extproc('xmlXPathNextAncestorOrSelf')
+ d like(xmlNodePtr)
+ d ctxt value like(xmlXPathParserContextPtr)
+ d cur value like(xmlNodePtr)
+
+ d xmlXPathNextFollowingSibling...
+ d pr extproc(
+ d 'xmlXPathNextFollowingSibling')
+ d like(xmlNodePtr)
+ d ctxt value like(xmlXPathParserContextPtr)
+ d cur value like(xmlNodePtr)
+
+ d xmlXPathNextFollowing...
+ d pr extproc('xmlXPathNextFollowing')
+ d like(xmlNodePtr)
+ d ctxt value like(xmlXPathParserContextPtr)
+ d cur value like(xmlNodePtr)
+
+ d xmlXPathNextNamespace...
+ d pr extproc('xmlXPathNextNamespace')
+ d like(xmlNodePtr)
+ d ctxt value like(xmlXPathParserContextPtr)
+ d cur value like(xmlNodePtr)
+
+ d xmlXPathNextAttribute...
+ d pr extproc('xmlXPathNextAttribute')
+ d like(xmlNodePtr)
+ d ctxt value like(xmlXPathParserContextPtr)
+ d cur value like(xmlNodePtr)
+
+ d xmlXPathNextPreceding...
+ d pr extproc('xmlXPathNextPreceding')
+ d like(xmlNodePtr)
+ d ctxt value like(xmlXPathParserContextPtr)
+ d cur value like(xmlNodePtr)
+
+ d xmlXPathNextAncestor...
+ d pr extproc('xmlXPathNextAncestor')
+ d like(xmlNodePtr)
+ d ctxt value like(xmlXPathParserContextPtr)
+ d cur value like(xmlNodePtr)
+
+ d xmlXPathNextPrecedingSibling...
+ d pr extproc(
+ d 'xmlXPathNextPrecedingSibling')
+ d like(xmlNodePtr)
+ d ctxt value like(xmlXPathParserContextPtr)
+ d cur value like(xmlNodePtr)
+
+ * The official core of XPath functions.
+
+ d xmlXPathLastFunction...
+ d pr extproc('xmlXPathLastFunction')
+ d ctxt value like(xmlXPathParserContextPtr)
+ d nargs value like(xmlCint)
+
+ d xmlXPathPositionFunction...
+ d pr extproc('xmlXPathPositionFunction')
+ d ctxt value like(xmlXPathParserContextPtr)
+ d nargs value like(xmlCint)
+
+ d xmlXPathCountFunction...
+ d pr extproc('xmlXPathCountFunction')
+ d ctxt value like(xmlXPathParserContextPtr)
+ d nargs value like(xmlCint)
+
+ d xmlXPathIdFunction...
+ d pr extproc('xmlXPathIdFunction')
+ d ctxt value like(xmlXPathParserContextPtr)
+ d nargs value like(xmlCint)
+
+ d xmlXPathLocalNameFunction...
+ d pr extproc('xmlXPathLocalNameFunction')
+ d ctxt value like(xmlXPathParserContextPtr)
+ d nargs value like(xmlCint)
+
+ d xmlXPathNamespaceURIFunction...
+ d pr extproc(
+ d 'xmlXPathNamespaceURIFunction')
+ d ctxt value like(xmlXPathParserContextPtr)
+ d nargs value like(xmlCint)
+
+ d xmlXPathStringFunction...
+ d pr extproc('xmlXPathStringFunction')
+ d ctxt value like(xmlXPathParserContextPtr)
+ d nargs value like(xmlCint)
+
+ d xmlXPathStringLengthFunction...
+ d pr extproc(
+ d 'xmlXPathStringLengthFunction')
+ d ctxt value like(xmlXPathParserContextPtr)
+ d nargs value like(xmlCint)
+
+ d xmlXPathConcatFunction...
+ d pr extproc('xmlXPathConcatFunction')
+ d ctxt value like(xmlXPathParserContextPtr)
+ d nargs value like(xmlCint)
+
+ d xmlXPathContainsFunction...
+ d pr extproc('xmlXPathContainsFunction')
+ d ctxt value like(xmlXPathParserContextPtr)
+ d nargs value like(xmlCint)
+
+ d xmlXPathStartsWithFunction...
+ d pr extproc('xmlXPathStartsWithFunction')
+ d ctxt value like(xmlXPathParserContextPtr)
+ d nargs value like(xmlCint)
+
+ d xmlXPathSubstringFunction...
+ d pr extproc('xmlXPathSubstringFunction')
+ d ctxt value like(xmlXPathParserContextPtr)
+ d nargs value like(xmlCint)
+
+ d xmlXPathSubstringBeforeFunction...
+ d pr extproc(
+ d 'xmlXPathSubstringBeforeFunction')
+ d ctxt value like(xmlXPathParserContextPtr)
+ d nargs value like(xmlCint)
+
+ d xmlXPathSubstringAfterFunction...
+ d pr extproc(
+ d 'xmlXPathSubstringAfterFunction')
+ d ctxt value like(xmlXPathParserContextPtr)
+ d nargs value like(xmlCint)
+
+
+ d xmlXPathNormalizeFunction...
+ d pr extproc('xmlXPathNormalizeFunction')
+ d ctxt value like(xmlXPathParserContextPtr)
+ d nargs value like(xmlCint)
+
+ d xmlXPathTranslateFunction...
+ d pr extproc('xmlXPathTranslateFunction')
+ d ctxt value like(xmlXPathParserContextPtr)
+ d nargs value like(xmlCint)
+
+ d xmlXPathNotFunction...
+ d pr extproc('xmlXPathNotFunction')
+ d ctxt value like(xmlXPathParserContextPtr)
+ d nargs value like(xmlCint)
+
+ d xmlXPathTrueFunction...
+ d pr extproc('xmlXPathTrueFunction')
+ d ctxt value like(xmlXPathParserContextPtr)
+ d nargs value like(xmlCint)
+
+ d xmlXPathFalseFunction...
+ d pr extproc('xmlXPathFalseFunction')
+ d ctxt value like(xmlXPathParserContextPtr)
+ d nargs value like(xmlCint)
+
+ d xmlXPathLangFunction...
+ d pr extproc('xmlXPathLangFunction')
+ d ctxt value like(xmlXPathParserContextPtr)
+ d nargs value like(xmlCint)
+
+ d xmlXPathNumberFunction...
+ d pr extproc('xmlXPathNumberFunction')
+ d ctxt value like(xmlXPathParserContextPtr)
+ d nargs value like(xmlCint)
+
+ d xmlXPathSumFunction...
+ d pr extproc('xmlXPathSumFunction')
+ d ctxt value like(xmlXPathParserContextPtr)
+ d nargs value like(xmlCint)
+
+ d xmlXPathFloorFunction...
+ d pr extproc('xmlXPathFloorFunction')
+ d ctxt value like(xmlXPathParserContextPtr)
+ d nargs value like(xmlCint)
+
+ d xmlXPathCeilingFunction...
+ d pr extproc('xmlXPathCeilingFunction')
+ d ctxt value like(xmlXPathParserContextPtr)
+ d nargs value like(xmlCint)
+
+ d xmlXPathRoundFunction...
+ d pr extproc('xmlXPathRoundFunction')
+ d ctxt value like(xmlXPathParserContextPtr)
+ d nargs value like(xmlCint)
+
+ d xmlXPathBooleanFunction...
+ d pr extproc('xmlXPathBooleanFunction')
+ d ctxt value like(xmlXPathParserContextPtr)
+ d nargs value like(xmlCint)
+
+ * Really internal functions
+
+ d xmlXPathNodeSetFreeNs...
+ d pr extproc('xmlXPathNodeSetFreeNs')
+ d ns value like(xmlNsPtr)
+
+ /endif LIBXML_XPATH_ENABLED
+ /endif XPATH_INTERNALS_H__
diff --git a/libxml2/os400/libxmlrpg/xpointer.rpgle b/libxml2/os400/libxmlrpg/xpointer.rpgle
new file mode 100644
index 0000000..29ef0f3
--- /dev/null
+++ b/libxml2/os400/libxmlrpg/xpointer.rpgle
@@ -0,0 +1,158 @@
+ * Summary: API to handle XML Pointers
+ * Description: API to handle XML Pointers
+ * Base implementation was made accordingly to
+ * W3C Candidate Recommendation 7 June 2000
+ * http://www.w3.org/TR/2000/CR-xptr-20000607
+ *
+ * Added support for the element() scheme described in:
+ * W3C Proposed Recommendation 13 November 2002
+ * http://www.w3.org/TR/2002/PR-xptr-element-20021113/
+ *
+ * Copy: See Copyright for the status of this software.
+ *
+ * Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A.
+
+ /if not defined(XML_XPTR_H__)
+ /define XML_XPTR_H__
+
+ /include "libxmlrpg/xmlversion"
+
+ /if defined(LIBXML_XPTR_ENABLED)
+
+ /include "libxmlrpg/xmlTypesC"
+ /include "libxmlrpg/tree"
+ /include "libxmlrpg/xpath"
+
+ * A Location Set
+
+ d xmlLocationSetPtr...
+ d s * based(######typedef######)
+
+ d xmlLocationSet ds based(xmlLocationSetPtr)
+ d align qualified
+ d locNr like(xmlCint) # locations in set
+ d locMax like(xmlCint) Max locations in set
+ d locTab * xmlXPathObjectPtr *
+
+ * Handling of location sets.
+
+ d xmlXPtrLocationSetCreate...
+ d pr extproc('xmlXPtrLocationSetCreate')
+ d like(xmlLocationSetPtr)
+ d val value like(xmlXPathObjectPtr)
+
+ d xmlXPtrFreeLocationSet...
+ d pr extproc('xmlXPtrFreeLocationSet')
+ d obj value like(xmlLocationSetPtr)
+
+ d xmlXPtrLocationSetMerge...
+ d pr extproc('xmlXPtrLocationSetMerge')
+ d like(xmlLocationSetPtr)
+ d val1 value like(xmlLocationSetPtr)
+ d val2 value like(xmlLocationSetPtr)
+
+ d xmlXPtrNewRange...
+ d pr extproc('xmlXPtrNewRange')
+ d like(xmlXPathObjectPtr)
+ d start value like(xmlNodePtr)
+ d startindex value like(xmlCint)
+ d end value like(xmlNodePtr)
+ d endindex value like(xmlCint)
+
+ d xmlXPtrNewRangePoints...
+ d pr extproc('xmlXPtrNewRangePoints')
+ d like(xmlXPathObjectPtr)
+ d start value like(xmlXPathObjectPtr)
+ d end value like(xmlXPathObjectPtr)
+
+ d xmlXPtrNewRangeNodePoint...
+ d pr extproc('xmlXPtrNewRangeNodePoint')
+ d like(xmlXPathObjectPtr)
+ d start value like(xmlNodePtr)
+ d end value like(xmlXPathObjectPtr)
+
+ d xmlXPtrNewRangePointNode...
+ d pr extproc('xmlXPtrNewRangePointNode')
+ d like(xmlXPathObjectPtr)
+ d start value like(xmlXPathObjectPtr)
+ d end value like(xmlNodePtr)
+
+ d xmlXPtrNewRangeNodes...
+ d pr extproc('xmlXPtrNewRangeNodes')
+ d like(xmlXPathObjectPtr)
+ d start value like(xmlNodePtr)
+ d end value like(xmlNodePtr)
+
+ d xmlXPtrNewLocationSetNodes...
+ d pr extproc('xmlXPtrNewLocationSetNodes')
+ d like(xmlXPathObjectPtr)
+ d start value like(xmlNodePtr)
+ d end value like(xmlNodePtr)
+
+ d xmlXPtrNewLocationSetNodeSet...
+ d pr extproc(
+ d 'xmlXPtrNewLocationSetNodeSet')
+ d like(xmlXPathObjectPtr)
+ d set value like(xmlNodeSetPtr)
+
+ d xmlXPtrNewRangeNodeObject...
+ d pr extproc('xmlXPtrNewRangeNodeObject')
+ d like(xmlXPathObjectPtr)
+ d start value like(xmlNodePtr)
+ d end value like(xmlXPathObjectPtr)
+
+ d xmlXPtrNewCollapsedRange...
+ d pr extproc('xmlXPtrNewCollapsedRange')
+ d like(xmlXPathObjectPtr)
+ d start value like(xmlNodePtr)
+
+ d xmlXPtrLocationSetAdd...
+ d pr extproc('xmlXPtrLocationSetAdd')
+ d cur value like(xmlLocationSetPtr)
+ d val value like(xmlXPathObjectPtr)
+
+ d xmlXPtrWrapLocationSet...
+ d pr extproc('xmlXPtrWrapLocationSet')
+ d like(xmlXPathObjectPtr)
+ d val value like(xmlLocationSetPtr)
+
+ d xmlXPtrLocationSetDel...
+ d pr extproc('xmlXPtrLocationSetDel')
+ d cur value like(xmlLocationSetPtr)
+ d val value like(xmlXPathObjectPtr)
+
+ d xmlXPtrLocationSetRemove...
+ d pr extproc('xmlXPtrLocationSetRemove')
+ d cur value like(xmlLocationSetPtr)
+ d val value like(xmlCint)
+
+ * Functions.
+
+ d xmlXPtrNewContext...
+ d pr extproc('xmlXPtrNewContext')
+ d like(xmlXPathContextPtr)
+ d doc value like(xmlDocPtr)
+ d here value like(xmlNodePtr)
+ d origin value like(xmlNodePtr)
+
+ d xmlXPtrEval pr extproc('xmlXPtrEval')
+ d like(xmlXPathObjectPtr)
+ d str * value options(*string) const xmlChar *
+ d ctx value like(xmlXPathContextPtr)
+
+ d xmlXPtrRangeToFunction...
+ d pr extproc('xmlXPtrRangeToFunction')
+ d ctxt value like(xmlXPathParserContextPtr)
+ d nargs value like(xmlCint)
+
+ d xmlXPtrBuildNodeList...
+ d pr extproc('xmlXPtrBuildNodeList')
+ d like(xmlNodePtr)
+ d obj value like(xmlXPathObjectPtr)
+
+ d xmlXPtrEvalRangePredicate...
+ d pr extproc('xmlXPtrEvalRangePredicate')
+ d ctxt value like(xmlXPathParserContextPtr)
+
+ /endif LIBXML_XPTR_ENABLED
+ /endif XML_XPTR_H__
diff --git a/libxml2/os400/make-bldcsndfa.sh b/libxml2/os400/make-bldcsndfa.sh
new file mode 100644
index 0000000..57cf012
--- /dev/null
+++ b/libxml2/os400/make-bldcsndfa.sh
@@ -0,0 +1,43 @@
+#!/bin/sh
+#
+# Compilation script for the iconv names DFA builer.
+#
+# See Copyright for the status of this software.
+#
+# Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A.
+#
+
+SCRIPTDIR=`dirname "${0}"`
+. "${SCRIPTDIR}/initscript.sh"
+cd "${TOPDIR}/os400/iconv/bldcsndfa"
+
+
+# This is for old XML library (bootstrapping).
+#rm -rf xml.h xml
+#ln -s /QSYS.LIB/XML.LIB/H.FILE/XML.MBR xml.h
+#mkdir xml
+#mkdir xml/h
+#ln -s /QSYS.LIB/XML.LIB/H.FILE/UTF8.MBR xml/h/utf8
+
+
+# Compile.
+
+CMD="CRTCMOD MODULE(${TARGETLIB}/BLDCSNDFA) SRCSTMF('bldcsndfa.c')"
+CMD="${CMD} SYSIFCOPT(*IFS64IO) LANGLVL(*EXTENDED) LOCALETYPE(*LOCALE)"
+CMD="${CMD} INCDIR("
+CMD="${CMD} '${IFSDIR}/include' ${INCLUDES})"
+CMD="${CMD} TGTCCSID(${TGTCCSID}) TGTRLS(${TGTRLS})"
+CMD="${CMD} OUTPUT(${OUTPUT})"
+CMD="${CMD} OPTIMIZE(10)"
+CMD="${CMD} DBGVIEW(${DEBUG})"
+#CMD="${CMD} DEFINE('OLDXML' 'xmlXPathSetContextNode=xmlXPathSetCurrentNode')"
+
+system "${CMD}"
+
+# Link
+
+CMD="CRTPGM PGM(${TARGETLIB}/BLDCSNDFA) MODULE(${TARGETLIB}/BLDCSNDFA)"
+CMD="${CMD} BNDDIR(${TARGETLIB}/${DYNBNDDIR})"
+#CMD="${CMD} BNDDIR(XML/XML)"
+CMD="${CMD} TGTRLS(${TGTRLS})"
+system "${CMD}"
diff --git a/libxml2/os400/make-include.sh b/libxml2/os400/make-include.sh
new file mode 100644
index 0000000..4e5b058
--- /dev/null
+++ b/libxml2/os400/make-include.sh
@@ -0,0 +1,81 @@
+#!/bin/sh
+#
+# Installation of the C header files in the OS/400 library.
+#
+# See Copyright for the status of this software.
+#
+# Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A.
+#
+
+SCRIPTDIR=`dirname "${0}"`
+. "${SCRIPTDIR}/initscript.sh"
+cd "${TOPDIR}/include"
+
+
+# Create the OS/400 source program file for the C header files.
+
+SRCPF="${LIBIFSNAME}/LIBXML.FILE"
+
+if action_needed "${SRCPF}"
+then CMD="CRTSRCPF FILE(${TARGETLIB}/LIBXML) RCDLEN(112)"
+ CMD="${CMD} CCSID(${TGTCCSID}) TEXT('libxml2: C/C++ header files')"
+ system "${CMD}"
+fi
+
+
+# Create the IFS directory for the C header files.
+
+if action_needed "${IFSDIR}/include/libxml"
+then mkdir -p "${IFSDIR}/include/libxml"
+fi
+
+
+
+# Enumeration values may be used as va_arg tagfields, so they MUST be
+# integers.
+
+copy_hfile()
+
+{
+ sed -e '1i\
+#pragma enum(int)\
+' "${@}" -e '$a\
+#pragma enum(pop)\
+'
+}
+
+# Copy the header files to DB2 library. Link from IFS include directory.
+
+for HFILE in "${TOPDIR}/os400/transcode.h" libxml/*.h libxml/*.h.in
+do CMD="cat \"${HFILE}\""
+ DEST="${SRCPF}/`db2_name \"${HFILE}\" nomangle`.MBR"
+
+ case "`basename \"${HFILE}\"`" in
+
+ xmlwin32version.h*)
+ continue;; # Not on M$W !
+
+ *.in) CMD="${CMD} | versioned_copy";;
+
+ xmlschemastypes.h) # Special case: rename colliding file.
+ DEST="${SRCPF}/SCHMTYPES.MBR";;
+
+ esac
+
+ if action_needed "${DEST}" "${HFILE}"
+ then eval "${CMD}" | copy_hfile > tmphdrfile
+
+ # Need to translate to target CCSID.
+
+ CMD="CPY OBJ('`pwd`/tmphdrfile') TOOBJ('${DEST}')"
+ CMD="${CMD} TOCCSID(${TGTCCSID}) DTAFMT(*TEXT) REPLACE(*YES)"
+ system "${CMD}"
+ fi
+
+ IFSFILE="${IFSDIR}/include/libxml/`basename \"${HFILE}\" .in`"
+
+ if action_needed "${IFSFILE}" "${DEST}"
+ then rm -f "${IFSFILE}"
+ ln -s "${DEST}" "${IFSFILE}"
+ fi
+done
diff --git a/libxml2/os400/make-rpg.sh b/libxml2/os400/make-rpg.sh
new file mode 100644
index 0000000..664b47b
--- /dev/null
+++ b/libxml2/os400/make-rpg.sh
@@ -0,0 +1,100 @@
+#!/bin/sh
+#
+# Installation of the ILE/RPG header files in the OS/400 library.
+#
+# See Copyright for the status of this software.
+#
+# Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A.
+#
+
+SCRIPTDIR=`dirname "${0}"`
+. "${SCRIPTDIR}/initscript.sh"
+cd "${TOPDIR}/os400/libxmlrpg"
+
+
+# Create the OS/400 source program file for the ILE/RPG header files.
+
+SRCPF="${LIBIFSNAME}/LIBXMLRPG.FILE"
+
+if action_needed "${SRCPF}"
+then CMD="CRTSRCPF FILE(${TARGETLIB}/LIBXMLRPG) RCDLEN(112)"
+ CMD="${CMD} CCSID(${TGTCCSID}) TEXT('libxml2: ILE/RPG header files')"
+ system "${CMD}"
+fi
+
+
+# Map file names to DB2 name syntax.
+
+for HFILE in *.rpgle *.rpgle.in
+do NAME="`basename \"${HFILE}\" .in`"
+ VAR="`basename \"${NAME}\" .rpgle`"
+ VAL="`db2_name \"${NAME}\" nomangle`"
+
+ if [ "${VAR}" = 'xmlschemastypes' ]
+ then VAL=SCHMTYPES
+ fi
+
+ eval "VAR_${VAR}=\"${VAL}\""
+ echo "${VAR} s/${VAR}/${VAL}/g"
+done > tmpsubstfile1
+
+# Order substitution commands so that a prefix appears after all
+# file names beginning with the prefix.
+
+sort -r tmpsubstfile1 | sed 's/^[^ ]*[ ]*//' > tmpsubstfile2
+
+
+change_include()
+
+{
+ sed -e '\#^....../include *"libxmlrpg/#{' \
+ -e 's///' \
+ -e 's/".*//' \
+ -f tmpsubstfile2 \
+ -e 's#.*# /include libxmlrpg,&#' \
+ -e '}'
+}
+
+
+# Create the IFS directory for the ILE/RPG header files.
+
+RPGIFSDIR="${IFSDIR}/include/libxmlrpg"
+
+if action_needed "${RPGIFSDIR}"
+then mkdir -p "${RPGIFSDIR}"
+fi
+
+# Copy the header files to IFS ILE/RPG include directory.
+# Copy them with include path editing to the DB2 library.
+
+for HFILE in *.rpgle *.rpgle.in
+do IFSCMD="cat \"${HFILE}\""
+ DB2CMD="change_include < \"${HFILE}\""
+ IFSFILE="`basename \"${HFILE}\" .in`"
+
+ case "${HFILE}" in
+
+ *.in) IFSCMD="${IFSCMD} | versioned_copy"
+ DB2CMD="${DB2CMD} | versioned_copy"
+ ;;
+ esac
+
+ IFSDEST="${RPGIFSDIR}/${IFSFILE}"
+
+ if action_needed "${IFSDEST}" "${HFILE}"
+ then eval "${IFSCMD}" > "${IFSDEST}"
+ fi
+
+ eval DB2MBR="\"\${VAR_`basename \"${IFSDEST}\" .rpgle`}\""
+ DB2DEST="${SRCPF}/${DB2MBR}.MBR"
+
+ if action_needed "${DB2DEST}" "${HFILE}"
+ then eval "${DB2CMD}" | change_include > tmphdrfile
+
+ # Need to translate to target CCSID.
+
+ CMD="CPY OBJ('`pwd`/tmphdrfile') TOOBJ('${DB2DEST}')"
+ CMD="${CMD} TOCCSID(${TGTCCSID}) DTAFMT(*TEXT) REPLACE(*YES)"
+ system "${CMD}"
+ fi
+done
diff --git a/libxml2/os400/make-src.sh b/libxml2/os400/make-src.sh
new file mode 100644
index 0000000..6094de8
--- /dev/null
+++ b/libxml2/os400/make-src.sh
@@ -0,0 +1,355 @@
+#!/bin/sh
+#
+# libxml compilation script for the OS/400.
+#
+# See Copyright for the status of this software.
+#
+# Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A.
+#
+
+SCRIPTDIR=`dirname "${0}"`
+. "${SCRIPTDIR}/initscript.sh"
+cd "${TOPDIR}"
+
+
+# Create and compile the identification source file.
+
+echo '#pragma comment(user, "libxml2 version '"${LIBXML_VERSION}"'")' > os400.c
+echo '#pragma comment(user, __DATE__)' >> os400.c
+echo '#pragma comment(user, __TIME__)' >> os400.c
+echo '#pragma comment(copyright, "Copyright (C) 1998-2015 Daniel Veillard. OS/400 version by P. Monnerat.")' >> os400.c
+make_module OS400 os400.c
+LINK= # No need to rebuild service program yet.
+MODULES=
+
+
+# Get source list.
+
+foldlines()
+
+{
+ sed -e ':begin' \
+ -e '/\\$/{' \
+ -e 's/\\$/ /' \
+ -e 'N' \
+ -e 'bbegin' \
+ -e '}' \
+ -e 's/\n//g' \
+ -e 's/[[:space:]]*$//'
+}
+
+
+get_make_var()
+
+{
+ foldlines < Makefile.am |
+ sed -e "/^${1}[[:space:]]*=[[:space:]]*/{" \
+ -e 's///' \
+ -e 'q' \
+ -e '}' \
+ -e 'd'
+}
+
+
+docb_sources=`get_make_var docb_sources`
+trio_sources=`get_make_var trio_sources`
+CSOURCES=`eval echo "\`get_make_var libxml2_la_SOURCES | tr '()' '{}'\`"`
+
+
+# Compile the sources into modules.
+
+INCLUDES="'`pwd`'"
+
+# OS/400 specific modules first.
+
+make_module --ebcdic DLFCN "${SCRIPTDIR}/dlfcn/dlfcn.c"
+make_module --ebcdic ICONV "${SCRIPTDIR}/iconv/iconv.c"
+make_module --ebcdic WRAPPERS "${SCRIPTDIR}/wrappers.c"
+make_module TRANSCODE "${SCRIPTDIR}/transcode.c"
+make_module RPGSUPPORT "${SCRIPTDIR}/rpgsupport.c"
+
+# Regular libxml2 modules.
+
+for SRC in ${CSOURCES}
+do MODULE=`db2_name "${SRC}"`
+ make_module "${MODULE}" "${SRC}"
+done
+
+
+# If needed, (re)create the static binding directory.
+
+if action_needed "${LIBIFSNAME}/${STATBNDDIR}.BNDDIR"
+then LINK=YES
+fi
+
+if [ "${LINK}" ]
+then rm -rf "${LIBIFSNAME}/${STATBNDDIR}.BNDDIR"
+ CMD="CRTBNDDIR BNDDIR(${TARGETLIB}/${STATBNDDIR})"
+ CMD="${CMD} TEXT('libxml2 static binding directory')"
+ system "${CMD}"
+
+ for MODULE in ${MODULES}
+ do CMD="ADDBNDDIRE BNDDIR(${TARGETLIB}/${STATBNDDIR})"
+ CMD="${CMD} OBJ((${TARGETLIB}/${MODULE} *MODULE))"
+ system "${CMD}"
+ done
+fi
+
+
+# The exportation file for service program creation must be in a DB2
+# source file, so make sure it exists.
+
+if action_needed "${LIBIFSNAME}/TOOLS.FILE"
+then CMD="CRTSRCPF FILE(${TARGETLIB}/TOOLS) RCDLEN(112)"
+ CMD="${CMD} CCSID(${TGTCCSID}) TEXT('libxml2: build tools')"
+ system "${CMD}"
+fi
+
+
+# Generate all exported symbol table versions in a binding source file.
+
+BSF="${LIBIFSNAME}/TOOLS.FILE/BNDSRC.MBR"
+PGMEXPS=
+
+OS400SYMS=`cat os400/transcode.h os400/rpgsupport.h |
+ sed -e 'H' \
+ -e 'g' \
+ -e 's/\n/ /' \
+ -e 's/\\$/ /' \
+ -e 's/.*/& /' \
+ -e 's/\/\*.*\*\// /g' \
+ -e 'h' \
+ -e ':loop' \
+ -e 'g' \
+ -e '/\/\*/d' \
+ -e '/;/!d' \
+ -e 's/[^;]*;//' \
+ -e 'x' \
+ -e 's/[[:space:]]*;.*$//' \
+ -e '/XMLPUBFUN/{' \
+ -e 's/[[:space:]]*(.*$//' \
+ -e 's/.*[[:space:]*]//' \
+ -e 'p' \
+ -e 'bloop' \
+ -e '}' \
+ -e '/XMLPUBVAR/!bloop' \
+ -e ':loop2' \
+ -e '/\[[^][]*\]/{' \
+ -e 's///' \
+ -e 'bloop2' \
+ -e '}' \
+ -e 's/[[:space:]]*,[[:space:]]*/,/g' \
+ -e 's/[^,]*[[:space:]*]//' \
+ -e 's/[^[:alnum:]_,]//g' \
+ -e 's/,/\n/g' \
+ -e 'p' \
+ -e 'bloop'`
+
+sed -e 's/#.*//' \
+ -e 's/[[:space:]]*$//' \
+ -e 's/^[[:space:]]*//' \
+ -e '/^*global:$/d' \
+ -e '/^$/d' \
+ -e '/[[:space:]]*{$/{' \
+ -e 's///' \
+ -e 'h' \
+ -e 's/[^A-Za-z0-9]/_/g' \
+ -e 's/^[0-9]/_&/' \
+ -e 'x' \
+ -e 'G' \
+ -e 's/\(.*\)\n\(.*\)/\2_SIGNATURE="\1"/' \
+ -e 'p' \
+ -e 's/.*//' \
+ -e 'x' \
+ -e "s/.*/SONAME='&'/" \
+ -e 'b' \
+ -e '}' \
+ -e '/[[:space:]]*;$/!d' \
+ -e 's///' \
+ -e '/^xmlDllMain$/d' \
+ -e '/^}[[:space:]]*/!{' \
+ -e 'H' \
+ -e 'd' \
+ -e '}' \
+ -e 's///' \
+ -e '/^$/!{' \
+ -e 's/[^A-Za-z0-9]/_/g' \
+ -e 's/^[0-9]/_&/' \
+ -e 's/.*/${&}/' \
+ -e 'x' \
+ -e 'H' \
+ -e 's/.*//' \
+ -e '}' \
+ -e 'x' \
+ -e 's/\n/ /g' \
+ -e 's/^[[:space:]]*//' \
+ -e 's/.*/declare ${SONAME}="&"/' \
+ -e 's/.*/&; PGMEXPS="${SONAME} ${PGMEXPS}"/' \
+ < "${TOPDIR}/libxml2.syms" > bndvars
+. ./bndvars
+
+PGMLVL=CURRENT
+for PGMEXP in ${PGMEXPS}
+do SIGNATURE=`echo "${PGMEXP}" | sed 's/^LIBXML2_//'`
+ eval ENTRIES=\"\${${PGMEXP}}\"
+ echo " STRPGMEXP PGMLVL(*${PGMLVL}) SIGNATURE('${SIGNATURE}')"
+ for ENTRY in ${ENTRIES} ${OS400SYMS}
+ do echo " EXPORT SYMBOL('${ENTRY}')"
+ done
+ echo ' ENDPGMEXP'
+ PGMLVL=PRV
+done > "${BSF}"
+
+
+# Build the service program if needed.
+
+if action_needed "${LIBIFSNAME}/${SRVPGM}.SRVPGM"
+then LINK=YES
+fi
+
+if [ "${LINK}" ]
+then CMD="CRTSRVPGM SRVPGM(${TARGETLIB}/${SRVPGM})"
+ CMD="${CMD} SRCFILE(${TARGETLIB}/TOOLS) SRCMBR(BNDSRC)"
+ CMD="${CMD} MODULE(${TARGETLIB}/OS400)"
+ CMD="${CMD} BNDDIR((${TARGETLIB}/${STATBNDDIR})"
+ if [ "${WITH_ZLIB}" -ne 0 ]
+ then CMD="${CMD} (${ZLIB_LIB}/${ZLIB_BNDDIR})"
+ fi
+ CMD="${CMD})"
+ CMD="${CMD} BNDSRVPGM(QADRTTS)"
+ CMD="${CMD} TEXT('libxml2 dynamic library')"
+ CMD="${CMD} TGTRLS(${TGTRLS})"
+ system "${CMD}"
+ LINK=YES
+fi
+
+
+# If needed, (re)create the dynamic binding directory.
+
+if action_needed "${LIBIFSNAME}/${DYNBNDDIR}.BNDDIR"
+then LINK=YES
+fi
+
+if [ "${LINK}" ]
+then rm -rf "${LIBIFSNAME}/${DYNBNDDIR}.BNDDIR"
+ CMD="CRTBNDDIR BNDDIR(${TARGETLIB}/${DYNBNDDIR})"
+ CMD="${CMD} TEXT('libxml2 dynamic binding directory')"
+ system "${CMD}"
+ CMD="ADDBNDDIRE BNDDIR(${TARGETLIB}/${DYNBNDDIR})"
+ CMD="${CMD} OBJ((*LIBL/${SRVPGM} *SRVPGM))"
+ system "${CMD}"
+fi
+
+
+# Compile the ASCII main() stub.
+
+make_module --ebcdic --sysiconv LIBXMLMAIN "${SCRIPTDIR}/libxmlmain.c"
+
+
+# Compile and link program xmllint.
+
+if action_needed "${LIBIFSNAME}/XMLLINT.PGM" "xmllint.c" ||
+ action_needed "${LIBIFSNAME}/XMLLINT.PGM" "${LIBIFSNAME}/${SRVPGM}.SRVPGM" ||
+ action_needed "${LIBIFSNAME}/XMLLINT.PGM" "${LIBIFSNAME}/LIBXMLMAIN.MODULE"
+then make_module XMLLINT xmllint.c
+ CMD="CRTPGM PGM(${TARGETLIB}/XMLLINT) MODULE(${TARGETLIB}/XMLLINT)"
+ CMD="${CMD} ENTMOD(${TARGETLIB}/LIBXMLMAIN)"
+ CMD="${CMD} BNDSRVPGM(QADRTTS) BNDDIR((${TARGETLIB}/${STATBNDDIR})"
+ if [ "${WITH_ZLIB}" -ne 0 ]
+ then CMD="${CMD} (${ZLIB_LIB}/${ZLIB_BNDDIR})"
+ fi
+ CMD="${CMD}) ACTGRP(*NEW) TEXT('XML tool')"
+ CMD="${CMD} TGTRLS(${TGTRLS})"
+ system "${CMD}"
+ rm -f "${LIBIFSNAME}/XMLLINT.MODULE"
+fi
+
+# Install xmllint in IFS.
+
+if [ ! -d "${IFSDIR}/bin" ]
+then mkdir -p "${IFSDIR}/bin"
+fi
+rm -f "${IFSDIR}/bin/xmllint"
+ln -s "${LIBIFSNAME}/XMLLINT.PGM" "${IFSDIR}/bin/xmllint"
+
+# Prepare the XMLLINT command and its response program.
+
+if action_needed "${LIBIFSNAME}/XMLLINTCL.PGM" "${SCRIPTDIR}/xmllintcl.c"
+then make_module --ebcdic XMLLINTCL "${SCRIPTDIR}/xmllintcl.c"
+ CMD="CRTPGM PGM(${TARGETLIB}/XMLLINTCL) MODULE(${TARGETLIB}/XMLLINTCL)"
+ CMD="${CMD} ACTGRP(*NEW) TEXT('XMLLINT command response')"
+ CMD="${CMD} TGTRLS(${TGTRLS})"
+ system "${CMD}"
+ rm -f "${LIBIFSNAME}/XMLLINTCL.MODULE"
+fi
+
+if action_needed "${LIBIFSNAME}/TOOLS.FILE/XMLLINT.MBR" \
+ "${SCRIPTDIR}/xmllint.cmd"
+then CMD="CPY OBJ('${SCRIPTDIR}/xmllint.cmd')"
+ CMD="${CMD} TOOBJ('${LIBIFSNAME}/TOOLS.FILE/XMLLINT.MBR')"
+ CMD="${CMD} TOCCSID(${TGTCCSID}) DTAFMT(*TEXT) REPLACE(*YES)"
+ system "${CMD}"
+fi
+
+if action_needed "${LIBIFSNAME}/XMLLINT.CMD" \
+ "${LIBIFSNAME}/TOOLS.FILE/XMLLINT.MBR"
+then CMD="CRTCMD CMD(${TARGETLIB}/XMLLINT) PGM(${TARGETLIB}/XMLLINTCL)"
+ CMD="${CMD} SRCFILE(${TARGETLIB}/TOOLS) SRCMBR(XMLLINT) THDSAFE(*YES)"
+ CMD="${CMD} TEXT('XML tool') REPLACE(*YES)"
+ system "${CMD}"
+fi
+
+
+# Compile and link program xmlcatalog.
+
+if action_needed "${LIBIFSNAME}/XMLCATALOG.PGM" "xmlcatalog.c" ||
+ action_needed "${LIBIFSNAME}/XMLCATALOG.PGM" \
+ "${LIBIFSNAME}/${SRVPGM}.SRVPGM" ||
+ action_needed "${LIBIFSNAME}/XMLCATALOG.PGM" \
+ "${LIBIFSNAME}/LIBXMLMAIN.MODULE"
+then make_module XMLCATALOG xmlcatalog.c
+ CMD="CRTPGM PGM(${TARGETLIB}/XMLCATALOG)"
+ CMD="${CMD} MODULE(${TARGETLIB}/XMLCATALOG)"
+ CMD="${CMD} ENTMOD(${TARGETLIB}/LIBXMLMAIN)"
+ CMD="${CMD} BNDSRVPGM(QADRTTS) BNDDIR((${TARGETLIB}/${STATBNDDIR})"
+ if [ "${WITH_ZLIB}" -ne 0 ]
+ then CMD="${CMD} (${ZLIB_LIB}/${ZLIB_BNDDIR})"
+ fi
+ CMD="${CMD}) ACTGRP(*NEW) TEXT('XML/SGML catalog tool')"
+ CMD="${CMD} TGTRLS(${TGTRLS})"
+ system "${CMD}"
+ rm -f "${LIBIFSNAME}/XMLCATALOG.MODULE"
+fi
+
+# Install xmlcatalog in IFS.
+
+rm -f "${IFSDIR}/bin/xmlcatalog"
+ln -s "${LIBIFSNAME}/XMLCATALOG.PGM" "${IFSDIR}/bin/xmlcatalog"
+
+# Prepare the XMLCATALOG command and its response program.
+
+if action_needed "${LIBIFSNAME}/XMLCATLGCL.PGM" "${SCRIPTDIR}/xmlcatlgcl.c"
+then make_module --ebcdic XMLCATLGCL "${SCRIPTDIR}/xmlcatlgcl.c"
+ CMD="CRTPGM PGM(${TARGETLIB}/XMLCATLGCL)"
+ CMD="${CMD} MODULE(${TARGETLIB}/XMLCATLGCL)"
+ CMD="${CMD} ACTGRP(*NEW) TEXT('XMLCATALOG command response')"
+ CMD="${CMD} TGTRLS(${TGTRLS})"
+ system "${CMD}"
+ rm -f "${LIBIFSNAME}/XMLCATLGCL.MODULE"
+fi
+
+if action_needed "${LIBIFSNAME}/TOOLS.FILE/XMLCATALOG.MBR" \
+ "${SCRIPTDIR}/xmlcatalog.cmd"
+then CMD="CPY OBJ('${SCRIPTDIR}/xmlcatalog.cmd')"
+ CMD="${CMD} TOOBJ('${LIBIFSNAME}/TOOLS.FILE/XMLCATALOG.MBR')"
+ CMD="${CMD} TOCCSID(${TGTCCSID}) DTAFMT(*TEXT) REPLACE(*YES)"
+ system "${CMD}"
+fi
+
+if action_needed "${LIBIFSNAME}/XMLCATALOG.CMD" \
+ "${LIBIFSNAME}/TOOLS.FILE/XMLCATALOG.MBR"
+then CMD="CRTCMD CMD(${TARGETLIB}/XMLCATALOG) PGM(${TARGETLIB}/XMLCATLGCL)"
+ CMD="${CMD} SRCFILE(${TARGETLIB}/TOOLS) SRCMBR(XMLCATALOG)"
+ CMD="${CMD} THDSAFE(*YES) TEXT('XML/SGML catalog tool') REPLACE(*YES)"
+ system "${CMD}"
+fi
diff --git a/libxml2/os400/make.sh b/libxml2/os400/make.sh
new file mode 100644
index 0000000..95a35a2
--- /dev/null
+++ b/libxml2/os400/make.sh
@@ -0,0 +1,84 @@
+#!/bin/sh
+#
+# libxml2 compilation script for the OS/400.
+# This is a shell script since make is not a standard component of OS/400.
+#
+# See Copyright for the status of this software.
+#
+# Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A.
+#
+
+SCRIPTDIR=`dirname "${0}"`
+. "${SCRIPTDIR}/initscript.sh"
+cd "${TOPDIR}"
+
+
+# Create the OS/400 library if it does not exist.
+
+if action_needed "${LIBIFSNAME}"
+then CMD="CRTLIB LIB(${TARGETLIB})"
+ CMD="${CMD} TEXT('libxml2: XML parser and toolkit API')"
+ system "${CMD}"
+fi
+
+
+# Create the DOCS source file if it does not exist.
+
+if action_needed "${LIBIFSNAME}/DOCS.FILE"
+then CMD="CRTSRCPF FILE(${TARGETLIB}/DOCS) RCDLEN(112)"
+ CMD="${CMD} CCSID(${TGTCCSID}) TEXT('Documentation texts')"
+ system "${CMD}"
+fi
+
+
+# Copy some documentation files if needed.
+
+for TEXT in "${TOPDIR}/AUTHORS" "${TOPDIR}/ChangeLog" \
+ "${TOPDIR}/Copyright" "${TOPDIR}/HACKING" "${TOPDIR}/README" \
+ "${TOPDIR}/MAINTAINERS" "${TOPDIR}/NEWS" "${TOPDIR}/TODO" \
+ "${TOPDIR}/TODO_SCHEMAS" "${TOPDIR}/os400/README400"
+do if [ -f "${TEXT}" ]
+ then MEMBER="`basename \"${TEXT}\" .OS400`"
+ MEMBER="${LIBIFSNAME}/DOCS.FILE/`db2_name \"${MEMBER}\"`.MBR"
+
+ if action_needed "${MEMBER}" "${TEXT}"
+ then # Sources are in UTF-8.
+ rm -f "${TOPDIR}/tmpfile"[12]
+ CMD="CPY OBJ('${TEXT}') TOOBJ('${TOPDIR}/tmpfile1')"
+ CMD="${CMD} FROMCCSID(1208) TOCCSID(${TGTCCSID})"
+ CMD="${CMD} DTAFMT(*TEXT) REPLACE(*YES)"
+ system "${CMD}"
+ # Make sure all lines are < 100 characters.
+ sed -e 's/.\{99\}/&\
+/g' -e 's/\n$//' "${TOPDIR}/tmpfile1" > "${TOPDIR}/tmpfile2"
+ CMD="CPY OBJ('${TOPDIR}/tmpfile2') TOOBJ('${MEMBER}')"
+ CMD="${CMD} TOCCSID(${TGTCCSID})"
+ CMD="${CMD} DTAFMT(*TEXT) REPLACE(*YES)"
+ system "${CMD}"
+ fi
+ fi
+done
+
+
+# Build files from template.
+
+configFile()
+
+{
+ args=`set | sed -e '/^[A-Za-z_][A-Za-z0-9_]*=/!d' \
+ -e 's/[\/\\\\&]/\\\\&/g' \
+ -e "s/'/'\\\\\\''/g" \
+ -e 's/^\([^=]*\)=\(.*\)$/-e '\''s\/@\1@\/\2\/g'\'/`
+ eval sed ${args} < "${1}".in > "${1}"
+}
+
+configFile include/libxml/xmlversion.h
+configFile os400/os400config.h
+mv os400/os400config.h config.h
+
+
+# Build in each directory.
+
+for SUBDIR in include rpg src
+do "${SCRIPTDIR}/make-${SUBDIR}.sh"
+done
diff --git a/libxml2/os400/os400config.h.in b/libxml2/os400/os400config.h.in
new file mode 100644
index 0000000..3966ac8
--- /dev/null
+++ b/libxml2/os400/os400config.h.in
@@ -0,0 +1,353 @@
+/**
+*** Configuration parameters for the OS/400 implementation.
+***
+*** See Copyright for the status of this software.
+***
+*** Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A.
+**/
+
+/* Define to 1 if you have the <ansidecl.h> header file. */
+#undef HAVE_ANSIDECL_H
+
+/* Define to 1 if you have the <arpa/inet.h> header file. */
+#define HAVE_ARPA_INET_H 1
+
+/* Define to 1 if you have the <arpa/nameser.h> header file. */
+#define HAVE_ARPA_NAMESER_H 1
+
+/* Whether struct sockaddr::__ss_family exists */
+#undef HAVE_BROKEN_SS_FAMILY
+
+/* Define to 1 if you have the `class' function. */
+#undef HAVE_CLASS
+
+/* Define to 1 if you have the <ctype.h> header file. */
+#define HAVE_CTYPE_H 1
+
+/* Define to 1 if you have the <dirent.h> header file. */
+#define HAVE_DIRENT_H 1
+
+/* Define to 1 if you have the <dlfcn.h> header file. */
+#define HAVE_DLFCN_H 1 /* Locally emulated. */
+
+/* Have dlopen based dso */
+#define HAVE_DLOPEN 1 /* Locally emulated. */
+
+/* Define to 1 if you have the <dl.h> header file. */
+#undef HAVE_DL_H
+
+/* Define to 1 if you have the <errno.h> header file. */
+#define HAVE_ERRNO_H 1
+
+/* Define to 1 if you have the <fcntl.h> header file. */
+#define HAVE_FCNTL_H 1
+
+/* Define to 1 if you have the `finite' function. */
+#undef HAVE_FINITE
+
+/* Define to 1 if you have the <float.h> header file. */
+#define HAVE_FLOAT_H 1
+
+/* Define to 1 if you have the `fpclass' function. */
+#undef HAVE_FPCLASS
+
+/* Define to 1 if you have the `fprintf' function. */
+#undef HAVE_FPRINTF /* Use trio. */
+
+/* Define to 1 if you have the `fp_class' function. */
+#undef HAVE_FP_CLASS
+
+/* Define to 1 if you have the <fp_class.h> header file. */
+#undef HAVE_FP_CLASS_H
+
+/* Define to 1 if you have the `ftime' function. */
+#undef HAVE_FTIME
+
+/* Define if getaddrinfo is there */
+#define HAVE_GETADDRINFO 1
+
+/* Define to 1 if you have the `gettimeofday' function. */
+#undef HAVE_GETTIMEOFDAY
+
+/* Define to 1 if you have the <ieeefp.h> header file. */
+#undef HAVE_IEEEFP_H
+
+/* Define to 1 if you have the <inttypes.h> header file. */
+#define HAVE_INTTYPES_H 1
+
+/* Define to 1 if you have the `isascii' function. */
+#define HAVE_ISASCII 1
+
+/* Define if isinf is there */
+#undef HAVE_ISINF
+
+/* Define if isnan is there */
+#undef HAVE_ISNAN
+
+/* Define to 1 if you have the `isnand' function. */
+#undef HAVE_ISNAND
+
+/* Define if history library is there (-lhistory) */
+#undef HAVE_LIBHISTORY
+
+/* Have compression library */
+#undef HAVE_LIBLZMA
+
+/* Define if pthread library is there (-lpthread) */
+#undef HAVE_LIBPTHREAD
+
+/* Define if readline library is there (-lreadline) */
+#undef HAVE_LIBREADLINE
+
+/* Have compression library */
+#undef HAVE_LIBZ
+
+/* Define to 1 if you have the <limits.h> header file. */
+#define HAVE_LIMITS_H 1
+
+/* Define to 1 if you have the `localtime' function. */
+#define HAVE_LOCALTIME 1
+
+/* Define to 1 if you have the <lzma.h> header file. */
+#undef HAVE_LZMA_H
+
+/* Define to 1 if you have the <malloc.h> header file. */
+#undef HAVE_MALLOC_H
+
+/* Define to 1 if you have the <math.h> header file. */
+#define HAVE_MATH_H 1
+
+/* Define to 1 if you have the <memory.h> header file. */
+#define HAVE_MEMORY_H 1
+
+/* Define to 1 if you have the `mmap' function. */
+#undef HAVE_MMAP
+
+/* Define to 1 if you have the `munmap' function. */
+#undef HAVE_MUNMAP
+
+/* mmap() is no good without munmap() */
+#if defined(HAVE_MMAP) && !defined(HAVE_MUNMAP)
+# undef /**/ HAVE_MMAP
+#endif
+
+/* Define to 1 if you have the <nan.h> header file. */
+#undef HAVE_NAN_H
+
+/* Define to 1 if you have the <ndir.h> header file, and it defines `DIR'. */
+#undef HAVE_NDIR_H
+
+/* Define to 1 if you have the <netdb.h> header file. */
+#define HAVE_NETDB_H 1
+
+/* Define to 1 if you have the <netinet/in.h> header file. */
+#define HAVE_NETINET_IN_H 1
+
+/* Define to 1 if you have the <poll.h> header file. */
+#undef HAVE_POLL_H
+
+/* Define to 1 if you have the `printf' function. */
+#undef HAVE_PRINTF /* Use trio. */
+
+/* Define to 1 if you have the `vprintf' function. */
+#undef HAVE_VPRINTF /* Use trio. */
+
+/* Define if <pthread.h> is there */
+#define HAVE_PTHREAD_H 1
+
+/* Define to 1 if you have the `putenv' function. */
+#define HAVE_PUTENV 1
+
+/* Define to 1 if you have the `rand' function. */
+#define HAVE_RAND 1
+
+/* Define to 1 if you have the `rand_r' function. */
+#define HAVE_RAND_R 1
+
+/* Define to 1 if you have the <resolv.h> header file. */
+#define HAVE_RESOLV_H 1
+
+/* Have shl_load based dso */
+#undef HAVE_SHLLOAD
+
+/* Define to 1 if you have the `signal' function. */
+#undef HAVE_SIGNAL
+
+/* Define to 1 if you have the <signal.h> header file. */
+#define HAVE_SIGNAL_H 1
+
+/* Define to 1 if you have the `snprintf' function. */
+#undef HAVE_SNPRINTF /* Use trio. */
+
+/* Define to 1 if you have the `sprintf' function. */
+#undef HAVE_SPRINTF /* Use trio. */
+
+/* Define to 1 if you have the `srand' function. */
+#define HAVE_SRAND 1
+
+/* Define to 1 if you have the `scanf' function. */
+#undef HAVE_SCANF /* Use trio. */
+
+/* Define to 1 if you have the `fscanf' function. */
+#undef HAVE_FSCANF /* Use trio. */
+
+/* Define to 1 if you have the `sscanf' function. */
+#undef HAVE_SSCANF /* Use trio. */
+
+/* Define to 1 if you have the `stat' function. */
+#define HAVE_STAT 1
+
+/* Define to 1 if you have the <stdarg.h> header file. */
+#define HAVE_STDARG_H 1 /* Overloaded */
+
+/* Define to 1 if you have the <stdint.h> header file. */
+#define HAVE_STDINT_H 1
+
+/* Define to 1 if you have the <stdlib.h> header file. */
+#define HAVE_STDLIB_H 1
+
+/* Define to 1 if you have the `strdup' function. */
+#define HAVE_STRDUP 1
+
+/* Define to 1 if you have the `strerror' function. */
+#define HAVE_STRERROR 1
+
+/* Define to 1 if you have the `strftime' function. */
+#define HAVE_STRFTIME 1
+
+/* Define to 1 if you have the <strings.h> header file. */
+#define HAVE_STRINGS_H 1
+
+/* Define to 1 if you have the <string.h> header file. */
+#define HAVE_STRING_H 1
+
+/* Define to 1 if you have the `strndup' function. */
+#undef HAVE_STRNDUP
+
+/* Define to 1 if you have the <sys/dir.h> header file, and it defines `DIR'.
+ */
+#undef HAVE_SYS_DIR_H
+
+/* Define to 1 if you have the <sys/mman.h> header file. */
+#define HAVE_SYS_MMAN_H 1
+
+/* Define to 1 if you have the <sys/ndir.h> header file, and it defines `DIR'.
+ */
+#undef HAVE_SYS_NDIR_H
+
+/* Define to 1 if you have the <sys/select.h> header file. */
+#undef HAVE_SYS_SELECT_H
+
+/* Define to 1 if you have the <sys/socket.h> header file. */
+#define HAVE_SYS_SOCKET_H 1
+
+/* Define to 1 if you have the <sys/stat.h> header file. */
+#define HAVE_SYS_STAT_H 1
+
+/* Define to 1 if you have the <sys/timeb.h> header file. */
+#define HAVE_SYS_TIMEB_H 1
+
+/* Define to 1 if you have the <sys/time.h> header file. */
+#define HAVE_SYS_TIME_H 1
+
+/* Define to 1 if you have the <sys/types.h> header file. */
+#define HAVE_SYS_TYPES_H 1
+
+/* Define to 1 if you have the `time' function. */
+#define HAVE_TIME 1
+
+/* Define to 1 if you have the <time.h> header file. */
+#define HAVE_TIME_H 1
+
+/* Define to 1 if you have the <unistd.h> header file. */
+#define HAVE_UNISTD_H 1
+
+/* Whether va_copy() is available */
+#undef HAVE_VA_COPY
+
+/* Define to 1 if you have the `vfprintf' function. */
+#undef HAVE_VFPRINTF /* Use trio. */
+
+/* Define to 1 if you have the `vsnprintf' function. */
+#undef HAVE_VSNPRINTF /* Use trio. */
+
+/* Define to 1 if you have the `vsprintf' function. */
+#undef HAVE_VSPRINTF /* Use trio. */
+
+/* Define to 1 if you have the <zlib.h> header file. */
+/* Actually dependent on the compilation script. */
+#if @WITH_ZLIB@
+#define HAVE_ZLIB_H 1
+#else
+#undef HAVE_ZLIB_H
+#endif
+
+/* Define to 1 if you have the `_stat' function. */
+#undef HAVE__STAT
+
+/* Whether __va_copy() is available */
+#undef HAVE___VA_COPY
+
+/* Define as const if the declaration of iconv() needs const. */
+#define ICONV_CONST
+
+/* Define to the sub-directory in which libtool stores uninstalled libraries.
+ */
+#undef LT_OBJDIR
+
+/* Name of package */
+#define PACKAGE "libxml2"
+
+/* Define to the address where bug reports for this package should be sent. */
+#define PACKAGE_BUGREPORT ""
+
+/* Define to the full name of this package. */
+#define PACKAGE_NAME ""
+
+/* Define to the full name and version of this package. */
+#define PACKAGE_STRING ""
+
+/* Define to the one symbol short name of this package. */
+#define PACKAGE_TARNAME ""
+
+/* Define to the home page for this package. */
+#define PACKAGE_URL ""
+
+/* Define to the version of this package. */
+#define PACKAGE_VERSION ""
+
+/* Define to 1 if you have the ANSI C header files. */
+#define STDC_HEADERS 1
+
+/* Support for IPv6 */
+#define SUPPORT_IP6
+
+/* Version number of package */
+#define VERSION "@VERSION@"
+
+/* Determine what socket length (socklen_t) data type is */
+#define XML_SOCKLEN_T socklen_t
+
+/* Define for Solaris 2.5.1 so the uint32_t typedef from <sys/synch.h>,
+ <pthread.h>, or <semaphore.h> is not used. If the typedef were allowed, the
+ #define below would cause a syntax error. */
+#undef _UINT32_T
+
+/* Using the Win32 Socket implementation */
+#undef _WINSOCKAPI_
+
+/* ss_family is not defined here, use __ss_family instead */
+#undef ss_family
+
+/* Define to the type of an unsigned integer type of width exactly 32 bits if
+ such a type exists and the standard includes do not define it. */
+#undef uint32_t
+
+/* Type cast for the send() function 2nd arg */
+#define SEND_ARG2_CAST (char *)
+
+/* Type cast for the gethostbyname() argument */
+#define GETHOSTBYNAME_ARG_CAST (char *)
+
+/* Define if va_list is an array type */
+#define VA_LIST_IS_ARRAY 1
diff --git a/libxml2/os400/rpgsupport.c b/libxml2/os400/rpgsupport.c
new file mode 100644
index 0000000..ad4cc5d
--- /dev/null
+++ b/libxml2/os400/rpgsupport.c
@@ -0,0 +1,270 @@
+/**
+*** Additional procedures for ILE/RPG support.
+***
+*** See Copyright for the status of this software.
+***
+*** Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A.
+**/
+
+#include <sys/types.h>
+
+#include <stdarg.h>
+
+#include "libxml/xmlmemory.h"
+#include "libxml/xpath.h"
+#include "libxml/parser.h"
+#include "libxml/HTMLparser.h"
+
+#include "rpgsupport.h"
+
+
+/**
+*** ILE/RPG cannot directly derefence a pointer and has no macros.
+*** The following additional procedures supply these functions.
+*** In addition, the following code is adjusted for threads control at
+*** compile time via the C macros.
+**/
+
+#define THREADED_VAR(name, type) \
+ type __get_##name(void) { return name; } \
+ void __set_##name(type arg) { name = arg; }
+
+
+THREADED_VAR(xmlFree, xmlFreeFunc)
+
+void
+__call_xmlFree(void * mem)
+
+{
+ xmlFree(mem);
+}
+
+
+THREADED_VAR(xmlMalloc, xmlMallocFunc)
+
+void *
+__call_xmlMalloc(size_t size)
+
+{
+ return xmlMalloc(size);
+}
+
+
+THREADED_VAR(xmlMallocAtomic, xmlMallocFunc)
+
+void *
+__call_xmlMallocAtomic(size_t size)
+
+{
+ return xmlMallocAtomic(size);
+}
+
+
+THREADED_VAR(xmlRealloc, xmlReallocFunc)
+
+void *
+__call_xmlRealloc(void * mem, size_t size)
+
+{
+ return xmlRealloc(mem, size);
+}
+
+
+THREADED_VAR(xmlMemStrdup, xmlStrdupFunc)
+
+char *
+__call_xmlMemStrdup(const char * str)
+
+{
+ return xmlMemStrdup(str);
+}
+
+
+#ifdef LIBXML_DOCB_ENABLED
+THREADED_VAR(docbDefaultSAXHandler, xmlSAXHandlerV1)
+#endif
+
+
+#ifdef LIBXML_HTML_ENABLED
+THREADED_VAR(htmlDefaultSAXHandler, xmlSAXHandlerV1)
+#endif
+
+
+THREADED_VAR(xmlLastError, xmlError)
+
+THREADED_VAR(oldXMLWDcompatibility, int)
+THREADED_VAR(xmlBufferAllocScheme, xmlBufferAllocationScheme)
+THREADED_VAR(xmlDefaultBufferSize, int)
+THREADED_VAR(xmlDefaultSAXHandler, xmlSAXHandlerV1)
+THREADED_VAR(xmlDefaultSAXLocator, xmlSAXLocator)
+THREADED_VAR(xmlDoValidityCheckingDefaultValue, int)
+
+/* No caller to xmlGenericError() because the argument list is unknown. */
+THREADED_VAR(xmlGenericError, xmlGenericErrorFunc)
+
+
+THREADED_VAR(xmlStructuredError, xmlStructuredErrorFunc)
+
+void
+__call_xmlStructuredError(void * userData, xmlErrorPtr error)
+
+{
+ xmlStructuredError(userData, error);
+}
+
+THREADED_VAR(xmlGenericErrorContext, void *)
+THREADED_VAR(xmlStructuredErrorContext, void *)
+THREADED_VAR(xmlGetWarningsDefaultValue, int)
+THREADED_VAR(xmlIndentTreeOutput, int)
+THREADED_VAR(xmlTreeIndentString, const char *)
+THREADED_VAR(xmlKeepBlanksDefaultValue, int)
+THREADED_VAR(xmlLineNumbersDefaultValue, int)
+THREADED_VAR(xmlLoadExtDtdDefaultValue, int)
+THREADED_VAR(xmlParserDebugEntities, int)
+THREADED_VAR(xmlParserVersion, const char *)
+THREADED_VAR(xmlPedanticParserDefaultValue, int)
+THREADED_VAR(xmlSaveNoEmptyTags, int)
+THREADED_VAR(xmlSubstituteEntitiesDefaultValue, int)
+
+
+THREADED_VAR(xmlRegisterNodeDefaultValue, xmlRegisterNodeFunc)
+
+void
+__call_xmlRegisterNodeDefaultValue(xmlNodePtr node)
+
+{
+ xmlRegisterNodeDefaultValue(node);
+}
+
+
+THREADED_VAR(xmlDeregisterNodeDefaultValue, xmlDeregisterNodeFunc)
+
+void
+__call_xmlDeregisterNodeDefaultValue(xmlNodePtr node)
+
+{
+ xmlDeregisterNodeDefaultValue(node);
+}
+
+
+THREADED_VAR(xmlParserInputBufferCreateFilenameValue, xmlParserInputBufferCreateFilenameFunc)
+
+xmlParserInputBufferPtr
+__call_xmlParserInputBufferCreateFilenameValue(const char *URI,
+ xmlCharEncoding enc)
+
+{
+ return xmlParserInputBufferCreateFilenameValue(URI, enc);
+}
+
+
+THREADED_VAR(xmlOutputBufferCreateFilenameValue, xmlOutputBufferCreateFilenameFunc)
+
+xmlOutputBufferPtr
+__call_xmlOutputBufferCreateFilenameValue(const char *URI,
+ xmlCharEncodingHandlerPtr encoder, int compression)
+
+{
+ return xmlOutputBufferCreateFilenameValue(URI, encoder, compression);
+}
+
+
+
+/**
+*** va_list support.
+**/
+
+void
+__xmlVaStart(char * * list, char * lastargaddr, size_t lastargsize)
+
+{
+ list[1] = lastargaddr + lastargsize;
+}
+
+
+void *
+__xmlVaArg(char * * list, void * dest, size_t argsize)
+
+{
+ size_t align;
+
+ if (!argsize)
+ return (void *) NULL;
+
+ for (align = 16; align > argsize; align >>= 1)
+ ;
+
+ align--;
+ list[0] = list[1] + (align - (((size_t) list[0] - 1) & align));
+ list[1] = list[0] + argsize;
+
+ if (dest)
+ memcpy(dest, list[0], argsize);
+
+ return (void *) list[0];
+}
+
+
+void
+__xmlVaEnd(char * * list)
+
+{
+ /* Nothing to do. */
+}
+
+
+#ifdef LIBXML_XPATH_ENABLED
+
+int
+__xmlXPathNodeSetGetLength(const xmlNodeSet * ns)
+
+{
+ return xmlXPathNodeSetGetLength(ns);
+}
+
+
+xmlNodePtr
+__xmlXPathNodeSetItem(const xmlNodeSet * ns, int index)
+
+{
+ return xmlXPathNodeSetItem(ns, index);
+}
+
+
+int
+__xmlXPathNodeSetIsEmpty(const xmlNodeSet * ns)
+
+{
+ return xmlXPathNodeSetIsEmpty(ns);
+}
+
+#endif
+
+
+#ifdef LIBXML_HTML_ENABLED
+
+const char *
+__htmlDefaultSubelement(const htmlElemDesc * elt)
+
+{
+ return htmlDefaultSubelement(elt);
+}
+
+
+int
+__htmlElementAllowedHereDesc(const htmlElemDesc * parent,
+ const htmlElemDesc * elt)
+
+{
+ return htmlElementAllowedHereDesc(parent, elt);
+}
+
+
+const char * *
+__htmlRequiredAttrs(const htmlElemDesc * elt)
+
+{
+ return htmlRequiredAttrs(elt);
+}
+
+#endif
diff --git a/libxml2/os400/rpgsupport.h b/libxml2/os400/rpgsupport.h
new file mode 100644
index 0000000..d8016d7
--- /dev/null
+++ b/libxml2/os400/rpgsupport.h
@@ -0,0 +1,157 @@
+/**
+*** Additional delarations for ILE/RPG support.
+***
+*** See Copyright for the status of this software.
+***
+*** Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A.
+**/
+
+#ifndef __RPGSUPPORT_H__
+#define __RPGSUPPORT_H__
+
+#include <sys/types.h>
+
+#include <libxml/xmlmemory.h>
+#include <libxml/xpath.h>
+#include "libxml/HTMLparser.h"
+
+
+XMLPUBFUN xmlFreeFunc __get_xmlFree(void);
+XMLPUBFUN void __set_xmlFree(xmlFreeFunc freefunc);
+XMLPUBFUN void __call_xmlFree(void * mem);
+XMLPUBFUN xmlMallocFunc __get_xmlMalloc(void);
+XMLPUBFUN void __set_xmlMalloc(xmlMallocFunc allocfunc);
+XMLPUBFUN void * __call_xmlMalloc(size_t size);
+XMLPUBFUN xmlMallocFunc __get_xmlMallocAtomic(void);
+XMLPUBFUN void __set_xmlMallocAtomic(xmlMallocFunc allocfunc);
+XMLPUBFUN void * __call_xmlMallocAtomic(size_t size);
+XMLPUBFUN xmlReallocFunc __get_xmlRealloc(void);
+XMLPUBFUN void __set_xmlRealloc(xmlReallocFunc reallocfunc);
+XMLPUBFUN void * __call_xmlRealloc(void * mem, size_t size);
+XMLPUBFUN xmlStrdupFunc __get_xmlMemStrdup(void);
+XMLPUBFUN void __set_xmlMemStrdup(xmlStrdupFunc strdupfunc);
+XMLPUBFUN char * __call_xmlMemStrdup(const char * str);
+
+#ifdef LIBXML_DOCB_ENABLED
+XMLPUBFUN xmlSAXHandlerV1 __get_docbDefaultSAXHandler(void);
+XMLPUBFUN void __set_docbDefaultSAXHandler(xmlSAXHandlerV1 hdlr);
+#endif
+
+#ifdef LIBXML_HTML_ENABLED
+XMLPUBFUN xmlSAXHandlerV1 __get_htmlDefaultSAXHandler(void);
+XMLPUBFUN void __set_htmlDefaultSAXHandler(xmlSAXHandlerV1 hdlr);
+#endif
+
+XMLPUBFUN xmlError __get_xmlLastError(void);
+XMLPUBFUN void __set_xmlLastError(xmlError err);
+
+XMLPUBFUN int __get_oldXMLWDcompatibility(void);
+XMLPUBFUN void __set_oldXMLWDcompatibility(int val);
+
+XMLPUBFUN xmlBufferAllocationScheme __get_xmlBufferAllocScheme(void);
+XMLPUBFUN void __set_xmlBufferAllocScheme(xmlBufferAllocationScheme val);
+
+XMLPUBFUN int __get_xmlDefaultBufferSize(void);
+XMLPUBFUN void __set_xmlDefaultBufferSize(int val);
+
+XMLPUBFUN xmlSAXHandlerV1 __get_xmlDefaultSAXHandler(void);
+XMLPUBFUN void __set_xmlDefaultSAXHandler(xmlSAXHandlerV1 val);
+
+XMLPUBFUN xmlSAXLocator __get_xmlDefaultSAXLocator(void);
+XMLPUBFUN void __set_xmlDefaultSAXLocator(xmlSAXLocator val);
+
+XMLPUBFUN int __get_xmlDoValidityCheckingDefaultValue(void);
+XMLPUBFUN void __set_xmlDoValidityCheckingDefaultValue(int val);
+
+XMLPUBFUN xmlGenericErrorFunc __get_xmlGenericError(void);
+XMLPUBFUN void __set_xmlGenericError(xmlGenericErrorFunc val);
+
+XMLPUBFUN xmlStructuredErrorFunc __get_xmlStructuredError(void);
+XMLPUBFUN void __set_xmlStructuredError(xmlStructuredErrorFunc val);
+XMLPUBFUN void __call_xmlStructuredError(void *userData, xmlErrorPtr error);
+
+XMLPUBFUN void * __get_xmlGenericErrorContext(void);
+XMLPUBFUN void __set_xmlGenericErrorContext(void * val);
+
+XMLPUBFUN void * __get_xmlStructuredErrorContext(void);
+XMLPUBFUN void __set_xmlStructuredErrorContext(void * val);
+
+XMLPUBFUN int __get_xmlGetWarningsDefaultValue(void);
+XMLPUBFUN void __set_xmlGetWarningsDefaultValue(int val);
+
+XMLPUBFUN int __get_xmlIndentTreeOutput(void);
+XMLPUBFUN void __set_xmlIndentTreeOutput(int val);
+
+XMLPUBFUN const char * __get_xmlTreeIndentString(void);
+XMLPUBFUN void __set_xmlTreeIndentString(const char * val);
+
+XMLPUBFUN int __get_xmlKeepBlanksDefaultValue(void);
+XMLPUBFUN void __set_xmlKeepBlanksDefaultValue(int val);
+
+XMLPUBFUN int __get_xmlLineNumbersDefaultValue(void);
+XMLPUBFUN void __set_xmlLineNumbersDefaultValue(int val);
+
+XMLPUBFUN int __get_xmlLoadExtDtdDefaultValue(void);
+XMLPUBFUN void __set_xmlLoadExtDtdDefaultValue(int val);
+
+XMLPUBFUN int __get_xmlParserDebugEntities(void);
+XMLPUBFUN void __set_xmlParserDebugEntities(int val);
+
+XMLPUBFUN const char * __get_xmlParserVersion(void);
+XMLPUBFUN void __set_xmlParserVersion(const char * val);
+
+XMLPUBFUN int __get_xmlPedanticParserDefaultValue(void);
+XMLPUBFUN void __set_xmlPedanticParserDefaultValue(int val);
+
+XMLPUBFUN int __get_xmlSaveNoEmptyTags(void);
+XMLPUBFUN void __set_xmlSaveNoEmptyTags(int val);
+
+XMLPUBFUN int __get_xmlSubstituteEntitiesDefaultValue(void);
+XMLPUBFUN void __set_xmlSubstituteEntitiesDefaultValue(int val);
+
+XMLPUBFUN xmlRegisterNodeFunc __get_xmlRegisterNodeDefaultValue(void);
+XMLPUBFUN void __set_xmlRegisterNodeDefaultValue(xmlRegisterNodeFunc val);
+XMLPUBFUN void __call_xmlRegisterNodeDefaultValue(xmlNodePtr node);
+
+XMLPUBFUN xmlDeregisterNodeFunc __get_xmlDeregisterNodeDefaultValue(void);
+XMLPUBFUN void __set_xmlDeregisterNodeDefaultValue(xmlDeregisterNodeFunc val);
+XMLPUBFUN void __call_xmlDeregisterNodeDefaultValue(xmlNodePtr node);
+
+XMLPUBFUN xmlParserInputBufferCreateFilenameFunc
+ __get_xmlParserInputBufferCreateFilenameValue(void);
+XMLPUBFUN void __set_xmlParserInputBufferCreateFilenameValue(
+ xmlParserInputBufferCreateFilenameFunc val);
+XMLPUBFUN xmlParserInputBufferPtr
+ __call_xmlParserInputBufferCreateFilenameValue(const char *URI,
+ xmlCharEncoding enc);
+
+XMLPUBFUN xmlOutputBufferCreateFilenameFunc
+ __get_xmlOutputBufferCreateFilenameValue(void);
+XMLPUBFUN void __set_xmlOutputBufferCreateFilenameValue(
+ xmlOutputBufferCreateFilenameFunc val);
+XMLPUBFUN xmlOutputBufferPtr
+ __call_xmlOutputBufferCreateFilenameValue(const char *URI,
+ xmlCharEncodingHandlerPtr encoder,
+ int compression);
+
+
+XMLPUBFUN void __xmlVaStart(char * * list,
+ char * lastargaddr, size_t lastargsize);
+XMLPUBFUN void * __xmlVaArg(char * * list, void * dest, size_t argsize);
+XMLPUBFUN void __xmlVaEnd(char * * list);
+
+#ifdef LIBXML_XPATH_ENABLED
+XMLPUBFUN int __xmlXPathNodeSetGetLength(xmlNodeSetPtr ns);
+XMLPUBFUN xmlNodePtr __xmlXPathNodeSetItem(xmlNodeSetPtr ns, int index);
+XMLPUBFUN int __xmlXPathNodeSetIsEmpty(xmlNodeSetPtr ns);
+#endif
+
+#ifdef LIBXML_HTML_ENABLED
+XMLPUBFUN const char * __htmlDefaultSubelement(const htmlElemDesc * elt);
+XMLPUBFUN int __htmlElementAllowedHereDesc(const htmlElemDesc * parent,
+ const htmlElemDesc * elt);
+XMLPUBFUN const char * *
+ __htmlRequiredAttrs(const htmlElemDesc * elt);
+#endif
+
+#endif
diff --git a/libxml2/os400/transcode.c b/libxml2/os400/transcode.c
new file mode 100644
index 0000000..bae6187
--- /dev/null
+++ b/libxml2/os400/transcode.c
@@ -0,0 +1,268 @@
+/**
+*** Transcoding support and wrappers.
+***
+*** See Copyright for the status of this software.
+***
+*** Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A.
+**/
+
+#define IN_LIBXML
+#include "libxml.h"
+
+#include <sys/types.h>
+#include <iconv.h>
+#include "libxml/xmlmemory.h"
+#include "libxml/dict.h"
+#include "transcode.h"
+
+
+/**
+*** Destroy a dictionary and mark as destroyed.
+**/
+
+void
+xmlZapDict(xmlDictPtr * dict)
+
+{
+ if (dict && *dict) {
+ xmlDictFree(*dict);
+ *dict = (xmlDictPtr) NULL;
+ }
+}
+
+
+/**
+*** Support for inline conversion from/to UTF-8.
+*** This is targetted to function parameter encoding conversion.
+*** Method is:
+*** - Convert string from/to UTF-8.
+*** - Keep it in a dictionary.
+*** - Free original string if a release procedure is provided.
+*** Can also be called without dictionary to convert a string from/to UTF-8
+*** into xmlMalloc'ed dynamic storage.
+**/
+
+const char *
+xmlTranscodeResult(const xmlChar * s, const char * encoding,
+ xmlDictPtr * dict, void (*freeproc)(const void *))
+
+{
+ size_t l;
+ iconv_t cd;
+ char * srcp;
+ char * dstp;
+ size_t srcc;
+ size_t dstc;
+ char * ts;
+ const char * ret;
+ int err;
+ static const int nullstring[] = { 0 };
+
+ /* Convert from UTF-8. */
+
+ if (!s)
+ return (const char *) NULL;
+
+ ret = (const char *) NULL;
+ ts = (char *) NULL;
+ err = 0;
+ l = xmlStrlen(s);
+
+ if (!l && dict)
+ ret = (const char *) nullstring;
+ else {
+ if (dict && !*dict)
+ err = !(*dict = xmlDictCreate());
+
+ if (!err)
+ err = !(ts = xmlMalloc(4 * l + 4));
+
+ dstp = ts;
+ dstc = 4 * l;
+
+ if (!err && l) {
+ if (!encoding)
+ encoding = "ibm-0"; /* Job's encoding. */
+
+ cd = iconv_open(encoding, "UTF-8");
+
+ if (cd == (iconv_t) -1)
+ err = 1;
+ else {
+ srcp = (char *) s;
+ srcc = l;
+ srcc = iconv(cd, &srcp, &srcc, &dstp, &dstc);
+ iconv_close(cd);
+ err = srcc == (size_t) -1;
+ }
+ }
+
+ if (!err) {
+ dstp[0] = dstp[1] = dstp[2] = dstp[3] = '\0';
+
+ if (!dict) {
+ if (dstc)
+ ts = xmlRealloc(ts, (dstp - ts) + 4);
+
+ ret = (const char *) ts;
+ ts = (char *) NULL;
+ }
+ else
+ ret = (char *) xmlDictLookup(*dict,
+ (xmlChar *) ts, dstp - ts + 1);
+ }
+ }
+
+ if (ts)
+ xmlFree(ts);
+
+ if (freeproc)
+ (*freeproc)(s);
+
+ return ret;
+}
+
+
+/**
+*** Support for inline conversion to UTF-8.
+*** Method is:
+*** - Convert string to UTF-8.
+*** - Keep it in a dictionary.
+*** Can also be called without dictionary to convert a string to UTF-8 into
+*** xmlMalloc'ed dynamic storage.
+**/
+
+static const xmlChar *
+inTranscode(const char * s, size_t l, const char * encoding, xmlDictPtr * dict)
+
+{
+ iconv_t cd;
+ char * srcp;
+ char * dstp;
+ size_t srcc;
+ size_t dstc;
+ xmlChar * ts;
+ const xmlChar * ret;
+ static const xmlChar nullstring[] = { 0 };
+
+ if (!l && dict)
+ return nullstring;
+
+ if (dict && !*dict)
+ if (!(*dict = xmlDictCreate()))
+ return (const xmlChar *) NULL;
+
+ ts = (xmlChar *) xmlMalloc(6 * l + 1);
+
+ if (!ts)
+ return (const xmlChar *) NULL;
+
+ dstp = (char *) ts;
+ dstc = 6 * l;
+
+ if (l) {
+ if (!encoding)
+ encoding = "ibm-0"; /* Use job's encoding. */
+
+ cd = iconv_open("UTF-8", encoding);
+
+ if (cd == (iconv_t) -1) {
+ xmlFree((char *) ts);
+ return (const xmlChar *) NULL;
+ }
+
+ srcp = (char *) s;
+ srcc = l;
+ srcc = iconv(cd, &srcp, &srcc, &dstp, &dstc);
+ iconv_close(cd);
+
+ if (srcc == (size_t) -1) {
+ xmlFree((char *) ts);
+ return (const xmlChar *) NULL;
+ }
+ }
+
+ *dstp = '\0';
+
+ if (!dict) {
+ if (dstc)
+ ts = xmlRealloc(ts, (dstp - ts) + 1);
+
+ return ts;
+ }
+
+ ret = xmlDictLookup(*dict, ts, dstp - ts + 1);
+ xmlFree((char *) ts);
+ return ret;
+}
+
+
+/**
+*** Input 8-bit character string parameter.
+**/
+
+const xmlChar *
+xmlTranscodeString(const char * s, const char * encoding, xmlDictPtr * dict)
+
+{
+ if (!s)
+ return (const xmlChar *) NULL;
+
+ return inTranscode(s, xmlStrlen(s), encoding, dict);
+}
+
+
+/**
+*** Input 16-bit character string parameter.
+**/
+
+const xmlChar *
+xmlTranscodeWString(const char * s, const char * encoding, xmlDictPtr * dict)
+
+{
+ size_t i;
+
+ if (!s)
+ return (const xmlChar *) NULL;
+
+ for (i = 0; s[i] && s[i + 1]; i += 2)
+ ;
+
+ return inTranscode(s, i, encoding, dict);
+}
+
+
+/**
+*** Input 32-bit character string parameter.
+**/
+
+const xmlChar *
+xmlTranscodeHString(const char * s, const char * encoding, xmlDictPtr * dict)
+
+{
+ size_t i;
+
+ if (!s)
+ return (const xmlChar *) NULL;
+
+ for (i = 0; s[i] && s[i + 1] && s[i + 2] && s[i + 3]; i += 4)
+ ;
+
+ return inTranscode(s, i, encoding, dict);
+}
+
+
+/**
+*** vasprintf() implementation with result transcoding.
+**/
+
+const char *
+xmlVasprintf(xmlDictPtr * dict, const char * encoding,
+ const xmlChar * fmt, va_list args)
+
+{
+ char * s = NULL;
+
+ vasprintf(&s, fmt, args);
+ return xmlTranscodeResult((const xmlChar *) s, encoding, dict, free);
+}
diff --git a/libxml2/os400/transcode.h b/libxml2/os400/transcode.h
new file mode 100644
index 0000000..6ca5773
--- /dev/null
+++ b/libxml2/os400/transcode.h
@@ -0,0 +1,43 @@
+/**
+*** Transcoding support declarations.
+***
+*** See Copyright for the status of this software.
+***
+*** Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A.
+**/
+
+#ifndef _TRANSCODE_H_
+#define _TRANSCODE_H_
+
+#include <stdarg.h>
+#include <libxml/dict.h>
+
+
+XMLPUBFUN void xmlZapDict(xmlDictPtr * dict);
+XMLPUBFUN const char * xmlTranscodeResult(const xmlChar * s,
+ const char * encoding, xmlDictPtr * dict,
+ void (*freeproc)(const void *));
+XMLPUBFUN const xmlChar * xmlTranscodeString(const char * s,
+ const char * encoding, xmlDictPtr * dict);
+XMLPUBFUN const xmlChar * xmlTranscodeWString(const char * s,
+ const char * encoding, xmlDictPtr * dict);
+XMLPUBFUN const xmlChar * xmlTranscodeHString(const char * s,
+ const char * encoding, xmlDictPtr * dict);
+
+#ifndef XML_NO_SHORT_NAMES
+/**
+*** Since the above functions are generally called "inline" (i.e.: several
+*** times nested in a single expression), define shorthand names
+*** to minimize calling statement length.
+**/
+
+#define xmlTR xmlTranscodeResult
+#define xmlTS xmlTranscodeString
+#define xmlTW xmlTranscodeWString
+#define xmlTH xmlTranscodeHstring
+#endif
+
+XMLPUBFUN const char * xmlVasprintf(xmlDictPtr * dict, const char * encoding,
+ const xmlChar * fmt, va_list args);
+
+#endif
diff --git a/libxml2/os400/wrappers.c b/libxml2/os400/wrappers.c
new file mode 100644
index 0000000..9f592b7
--- /dev/null
+++ b/libxml2/os400/wrappers.c
@@ -0,0 +1,170 @@
+/**
+*** UTF-8/EBCDIC wrappers to system and C library procedures.
+***
+*** See Copyright for the status of this software.
+***
+*** Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A.
+**/
+
+#include <sys/types.h>
+#include <sys/socket.h>
+#include <arpa/inet.h>
+#include <stdlib.h>
+#include <dlfcn.h>
+#include <netdb.h>
+#include <errno.h>
+
+#include "config.h"
+
+#include "libxml/xmlmemory.h"
+
+#include "transcode.h"
+
+
+static const char * lxdles = NULL;
+
+
+int
+_lx_getaddrinfo(const char * node, const char * service,
+ const struct addrinfo * hints, struct addrinfo * * res)
+
+{
+ xmlDictPtr d = NULL;
+ int i;
+
+ i = getaddrinfo(xmlTranscodeResult(node, NULL, &d, NULL),
+ xmlTranscodeResult(service, NULL, &d, NULL), hints, res);
+ xmlZapDict(&d);
+ return i;
+}
+
+
+const char *
+_lx_inet_ntop(int af, const void * src, char * dst, socklen_t size)
+
+{
+ const char * cp1 = inet_ntop(af, src, dst, size);
+ char const * cp2;
+ int i;
+
+ if (!cp1)
+ return cp1;
+
+ if (!(cp2 = xmlTranscodeString(cp1, NULL, NULL)))
+ return cp2;
+
+ i = strlen(cp2);
+
+ if (i >= size) {
+ xmlFree((char *) cp2);
+ errno = ENOSPC;
+ return (const char *) NULL;
+ }
+
+ memcpy(dst, cp2, i + 1);
+ xmlFree((char *) cp2);
+ return dst;
+}
+
+
+void *
+_lx_dlopen(const char * filename, int flag)
+
+{
+ xmlDictPtr d = NULL;
+ void * result;
+
+ result = dlopen(xmlTranscodeResult(filename, NULL, &d, NULL), flag);
+ xmlZapDict(&d);
+ return result;
+}
+
+
+void *
+_lx_dlsym(void * handle, const char * symbol)
+
+{
+ xmlDictPtr d = NULL;
+ void * result;
+
+ result = dlsym(handle, xmlTranscodeResult(symbol, NULL, &d, NULL));
+ xmlZapDict(&d);
+ return result;
+}
+
+
+char *
+_lx_dlerror(void)
+
+{
+ char * cp1 = (char *) dlerror();
+
+ if (!cp1)
+ return cp1;
+
+ if (lxdles)
+ xmlFree((char *) lxdles);
+
+ lxdles = (const char *) xmlTranscodeString(cp1, NULL, NULL);
+ return (char *) lxdles;
+}
+
+
+#ifdef HAVE_ZLIB_H
+#include <zlib.h>
+
+gzFile
+_lx_gzopen(const char * path, const char * mode)
+
+{
+ xmlDictPtr d = NULL;
+ gzFile f;
+
+ f = gzopen(xmlTranscodeResult(path, NULL, &d, NULL),
+ xmlTranscodeResult(mode, NULL, &d, NULL));
+ xmlZapDict(&d);
+ return f;
+}
+
+
+gzFile
+_lx_gzdopen(int fd, const char * mode)
+
+{
+ xmlDictPtr d = NULL;
+ gzFile f;
+
+ f = gzdopen(fd, xmlTranscodeResult(mode, NULL, &d, NULL));
+ xmlZapDict(&d);
+ return f;
+}
+
+int
+_lx_inflateInit2_(z_streamp strm, int windowBits,
+ const char * version, int stream_size)
+
+{
+ xmlDictPtr d = NULL;
+ int r;
+
+ r = inflateInit2_(strm, windowBits,
+ xmlTranscodeResult(version, NULL, &d, NULL), stream_size);
+ xmlZapDict(&d);
+ return r;
+}
+
+int
+_lx_deflateInit2_(z_streamp strm, int level, int method, int windowBits,
+ int memLevel, int strategy, const char * version, int stream_size)
+
+{
+ xmlDictPtr d = NULL;
+ int r;
+
+ r = deflateInit2_(strm, level, method, windowBits, memLevel, strategy,
+ xmlTranscodeResult(version, NULL, &d, NULL), stream_size);
+ xmlZapDict(&d);
+ return r;
+}
+
+#endif
diff --git a/libxml2/os400/wrappers.h b/libxml2/os400/wrappers.h
new file mode 100644
index 0000000..388ec8c
--- /dev/null
+++ b/libxml2/os400/wrappers.h
@@ -0,0 +1,70 @@
+/**
+*** Replace system/C library calls by EBCDIC wrappers.
+*** This is a layer inserted between libxml2 itself and the EBCDIC
+*** environment.
+***
+*** See Copyright for the status of this software.
+***
+*** Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A.
+**/
+
+#ifndef __WRAPPERS_H_
+#define __WRAPPERS_H_
+
+/**
+*** OS/400 specific defines.
+**/
+
+#define __cplusplus__strings__
+
+/**
+*** Force header inclusions before renaming procedures to UTF-8 wrappers.
+**/
+
+#include <sys/types.h>
+#include <sys/socket.h>
+#include <arpa/inet.h>
+#include <netdb.h>
+
+#include "dlfcn.h"
+
+
+/**
+*** UTF-8 wrappers prototypes.
+**/
+
+extern int _lx_getaddrinfo(const char * node, const char * service,
+ const struct addrinfo * hints, struct addrinfo * * res);
+extern const char *
+ _lx_inet_ntop(int af,
+ const void * src, char * dst, socklen_t size);
+extern void * _lx_dlopen(const char * filename, int flag);
+extern void * _lx_dlsym(void * handle, const char * symbol);
+extern char * _lx_dlerror(void);
+
+
+#ifdef HAVE_ZLIB_H
+
+#include <zlib.h>
+
+extern gzFile _lx_gzopen(const char * path, const char * mode);
+extern gzFile _lx_gzdopen(int fd, const char * mode);
+
+#endif
+
+
+/**
+*** Rename data/procedures to UTF-8 wrappers.
+**/
+
+#define getaddrinfo _lx_getaddrinfo
+#define inet_ntop _lx_inet_ntop
+#define dlopen _lx_dlopen
+#define dlsym _lx_dlsym
+#define dlerror _lx_dlerror
+#define gzopen _lx_gzopen
+#define gzdopen _lx_gzdopen
+#define inflateInit2_ _lx_inflateInit2_
+#define deflateInit2_ _lx_deflateInit2_
+
+#endif
diff --git a/libxml2/os400/xmlcatalog.cmd b/libxml2/os400/xmlcatalog.cmd
new file mode 100644
index 0000000..92f0270
--- /dev/null
+++ b/libxml2/os400/xmlcatalog.cmd
@@ -0,0 +1,112 @@
+/* XMLCATALOG CL command. */
+/* */
+/* See Copyright for the status of this software. */
+/* */
+/* Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A. */
+
+/* Interface to program XMLCATLGCL */
+
+ CMD PROMPT('XML/SGML catalog tool')
+
+ /* Catalog file path. */
+
+ PARM KWD(INSTMF) TYPE(*PNAME) LEN(5000) VARY(*YES *INT2) +
+ CASE(*MIXED) EXPR(*YES) MIN(1) SPCVAL((*NEW '')) +
+ CHOICE('Stream file path') +
+ PROMPT('XML/SGML catalog file')
+
+ /* Catalog kind: XML/SGML. */
+
+ PARM KWD(KIND) TYPE(*CHAR) LEN(7) VARY(*YES *INT2) +
+ EXPR(*YES) RSTD(*YES) DFT(*XML) +
+ SPCVAL((*XML '') (*SGML '--sgml')) +
+ PROMPT('Catalog kind')
+
+ /* Output file. */
+
+ PARM KWD(OUTSTMF) TYPE(*PNAME) LEN(5000) VARY(*YES *INT2) +
+ CASE(*MIXED) EXPR(*YES) DFT(*STDOUT) +
+ SPCVAL((*STDOUT '') (*INSTMF X'00')) +
+ CHOICE('*STDOUT, *INSTMF or file path') +
+ PROMPT('Output stream file path')
+
+ /* Convert SGML to XML catalog. */
+
+ PARM KWD(CONVERT) TYPE(*CHAR) LEN(10) VARY(*YES *INT2) +
+ RSTD(*YES) SPCVAL((*YES '--convert') (*NO '')) +
+ EXPR(*YES) DFT(*NO) PMTCTL(TYPEXML) +
+ PROMPT('Convert SGML to XML catalog')
+
+ /* SGML super catalog update. */
+
+ PARM KWD(SUPERUPD) TYPE(*CHAR) LEN(17) VARY(*YES *INT2) +
+ SPCVAL((*YES '') (*NO '--no-super-update')) +
+ EXPR(*YES) DFT(*YES) RSTD(*YES) PMTCTL(TYPESGML) +
+ PROMPT('Update the SGML super catalog')
+
+ /* Verbose/debug output. */
+
+ PARM KWD(VERBOSE) TYPE(*CHAR) LEN(4) VARY(*YES *INT2) +
+ RSTD(*YES) SPCVAL((*YES '-v') (*NO '')) +
+ EXPR(*YES) DFT(*NO) +
+ PROMPT('Output debugging information')
+
+ /* Interactive shell not supported. */
+
+ /* Values to delete. */
+
+ PARM KWD(DELETE) TYPE(*PNAME) LEN(256) VARY(*YES *INT2) +
+ CASE(*MIXED) MAX(64) EXPR(*YES) +
+ CHOICE('Identifier value') +
+ PROMPT('Delete System/URI identifier')
+
+ /* Values to add. */
+
+ PARM KWD(ADD) TYPE(XMLELEM) MAX(10) PMTCTL(TYPEXML) +
+ PROMPT('Add definition')
+XMLELEM: ELEM TYPE(*CHAR) LEN(16) VARY(*YES *INT2) DFT(*PUBLIC) +
+ PROMPT('Entry type') +
+ EXPR(*YES) RSTD(*YES) SPCVAL( +
+ (*PUBLIC 'public') +
+ (*SYSTEM 'system') +
+ (*URI 'uri') +
+ (*REWRITESYSTEM 'rewriteSystem') +
+ (*REWRITEURI 'rewriteURI') +
+ (*DELEGATEPUBLIC 'delegatePublic') +
+ (*DELEGATESYSTEM 'delegateSystem') +
+ (*DELEGATEURI 'delegateURI') +
+ (*NEXTCATALOG 'nextCatalog') +
+ )
+ ELEM TYPE(*PNAME) LEN(256) VARY(*YES *INT2) EXPR(*YES) +
+ CASE(*MIXED) PROMPT('Original reference/file name')
+ ELEM TYPE(*PNAME) LEN(256) VARY(*YES *INT2) EXPR(*YES) +
+ CASE(*MIXED) PROMPT('Replacement entity URI')
+
+ PARM KWD(SGMLADD) TYPE(SGMLELEM) MAX(10) +
+ PMTCTL(TYPESGML) PROMPT('Add SGML definition')
+SGMLELEM: ELEM TYPE(*PNAME) LEN(256) VARY(*YES *INT2) EXPR(*YES) +
+ CASE(*MIXED) PROMPT('SGML catalog file name')
+ ELEM TYPE(*PNAME) LEN(256) VARY(*YES *INT2) EXPR(*YES) +
+ CASE(*MIXED) PROMPT('SGML definition')
+
+ /* Entities to resolve. */
+
+ PARM KWD(ENTITY) TYPE(*PNAME) LEN(256) VARY(*YES *INT2) +
+ CASE(*MIXED) EXPR(*YES) MAX(150) +
+ PROMPT('Resolve entity')
+
+ /* Additional catalog files. */
+
+ PARM KWD(CATALOG) TYPE(*PNAME) LEN(5000) VARY(*YES *INT2) +
+ CASE(*MIXED) EXPR(*YES) MAX(150) DFT(*DEFAULT) +
+ CHOICE('Catalog stream file path') +
+ PROMPT('Additional catalog file') SPCVAL( +
+ (*DEFAULT '/etc/xml/catalog') +
+ (*NONE '') +
+ )
+
+
+ /* Conditional prompting. */
+
+TYPEXML: PMTCTL CTL(KIND) COND((*EQ ''))
+TYPESGML: PMTCTL CTL(KIND) COND((*NE ''))
diff --git a/libxml2/os400/xmlcatlgcl.c b/libxml2/os400/xmlcatlgcl.c
new file mode 100644
index 0000000..6f1e4ff
--- /dev/null
+++ b/libxml2/os400/xmlcatlgcl.c
@@ -0,0 +1,288 @@
+/**
+*** XMLCATALOG command response program.
+***
+*** See Copyright for the status of this software.
+***
+*** Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A.
+**/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <qshell.h>
+
+
+/* Variable-length string, with 16-bit length. */
+typedef struct {
+ short len;
+ char string[5000];
+} vary2;
+
+
+/* Variable-length string, with 32-bit length. */
+typedef struct {
+ int len;
+ char string[5000];
+} vary4;
+
+
+/* Multiple occurrence parameter list. */
+#define paramlist(itemsize, itemtype) \
+ _Packed struct { \
+ short len; \
+ _Packed union { \
+ char _pad[itemsize]; \
+ itemtype param; \
+ } item[1]; \
+ }
+
+/* Add element list structure. */
+typedef struct {
+ short elcount; /* Element count (=3). */
+ paramlist(16, char) type; /* vary2(16). */
+ paramlist(256, char) origin; /* vary2(256). */
+ paramlist(256, char) replace; /* vary2(256). */
+} addelement;
+
+/* SGML add element list structure. */
+typedef struct {
+ short elcount; /* Element count (=3). */
+ paramlist(256, char) catalog; /* vary2(256). */
+ paramlist(256, char) ident; /* vary2(256). */
+} sgmladdelement;
+
+
+/* Arguments from CL command. */
+typedef struct {
+ char * pgm; /* Program name. */
+ vary2 * instmf; /* Input catalog file name. */
+ vary2 * kind; /* Catalog kind. */
+ vary2 * outstmf; /* Output catalog file name. */
+ vary2 * convert; /* Convert SGML to XML. */
+ vary2 * superupd; /* --no-super-update. */
+ vary2 * verbose; /* Verbose output. */
+ paramlist(256 + 2, vary2) * delete; /* Identifiers to delete. */
+ paramlist(2, unsigned short) * add; /* Items to add. */
+ paramlist(2, unsigned short) * sgmladd; /* SGML items to add. */
+ paramlist(256 + 2, vary2) * resolve; /* Identifiers to resolve. */
+ paramlist(5000 + 2, vary2) * catalog; /* Additional catalog files. */
+} arguments;
+
+
+/* Definition of QSHELL program. */
+extern void qshell(vary4 * cmd);
+#pragma linkage(qshell, OS)
+#pragma map(qshell, "QSHELL/QZSHQSHC")
+
+/* Macro to handle displacements. */
+#define OFFSETBY(t, p, n) ((t *) (((char *) (p)) + (n)))
+
+
+static void
+vary4nappend(vary4 * dst, const char * src, size_t len)
+
+{
+ if (len > sizeof(dst->string) - dst->len)
+ len = sizeof(dst->string) - dst->len;
+
+ if (len) {
+ memcpy(dst->string + dst->len, src, len);
+ dst->len += len;
+ }
+}
+
+
+static void
+vary4append(vary4 * dst, const char * src)
+
+{
+ vary4nappend(dst, src, strlen(src));
+}
+
+
+static void
+vary4arg(vary4 * dst, const char * arg)
+
+{
+ vary4nappend(dst, " ", 1);
+ vary4append(dst, arg);
+}
+
+
+static void
+vary4varg(vary4 * dst, vary2 * arg)
+
+{
+ vary4nappend(dst, " ", 1);
+ vary4nappend(dst, arg->string, arg->len);
+}
+
+
+static void
+vary4vescape(vary4 * dst, vary2 * arg)
+
+{
+ int i;
+
+ for (i = 0; i < arg->len; i++)
+ if (arg->string[i] == '\'')
+ vary4nappend(dst, "'\"'\"'", 5);
+ else
+ vary4nappend(dst, arg->string + i, 1);
+}
+
+
+static void
+vary4vargquote(vary4 * dst, vary2 * arg)
+
+{
+ vary4nappend(dst, " '", 2);
+ vary4vescape(dst, arg);
+ vary4nappend(dst, "'", 1);
+}
+
+
+int
+main(int argsc, arguments * args)
+
+{
+ vary4 cmd;
+ int i;
+ char c;
+ addelement * aelp;
+ sgmladdelement * saelp;
+
+ /* Specify additional catalogs. */
+ cmd.len = 0;
+ if (args->catalog->len) {
+ for (i = 0; i < args->catalog->len &&
+ !args->catalog->item[i].param.len; i++)
+ ;
+
+ vary4append(&cmd, "XML_CATALOG_FILES=");
+ if (i < args->catalog->len) {
+ c = '\'';
+ for (i = 0; i < args->catalog->len; i++) {
+ if (!args->catalog->item[i].param.len)
+ continue;
+ vary4nappend(&cmd, &c, 1);
+ c = ' ';
+ vary4vescape(&cmd,
+ &args->catalog->item[i].param);
+ }
+ vary4nappend(&cmd, "'", 1);
+ }
+ vary4nappend(&cmd, " ", 1);
+ }
+
+ /* find length of library name. */
+ for (i = 0; i < 10 && args->pgm[i] && args->pgm[i] != '/'; i++)
+ ;
+
+ /* Store program name in command buffer. */
+ vary4append(&cmd, "/QSYS.LIB/");
+ vary4nappend(&cmd, args->pgm, i);
+ vary4append(&cmd, ".LIB/XMLCATALOG.PGM");
+
+ /* Map command arguments to standard xmlcatalog argument vector. */
+ if (args->kind && args->kind->len)
+ vary4varg(&cmd, args->kind);
+
+ if (args->verbose && args->verbose->len)
+ vary4varg(&cmd, args->verbose);
+
+ if (args->delete)
+ for (i = 0; i < args->delete->len; i++) {
+ vary4arg(&cmd, "--del");
+ vary4vargquote(&cmd, &args->delete->item[i].param);
+ }
+
+ if (args->kind && args->kind->len) {
+ /* Process SGML-specific parameters. */
+ if (args->superupd && args->superupd->len)
+ vary4varg(&cmd, args->superupd);
+
+ if (args->sgmladd)
+ for (i = 0; i < args->sgmladd->len; i++) {
+ saelp = OFFSETBY(sgmladdelement, args->sgmladd,
+ args->sgmladd->item[i].param);
+ if (!((vary2 *) &saelp->catalog)->len)
+ continue;
+ vary4arg(&cmd, "--add");
+ vary4vargquote(&cmd, (vary2 *) &saelp->catalog);
+ vary4vargquote(&cmd, (vary2 *) &saelp->ident);
+ }
+ }
+ else {
+ /* Process XML-specific parameters. */
+ if (args->convert && args->convert->len)
+ vary4varg(&cmd, args->convert);
+
+ if (args->add)
+ for (i = 0; i < args->add->len; i++) {
+ aelp = OFFSETBY(addelement, args->add,
+ args->add->item[i].param);
+ if (!((vary2 *) &aelp->origin)->len)
+ continue;
+ vary4arg(&cmd, "--add");
+ vary4varg(&cmd, (vary2 *) &aelp->type);
+ vary4vargquote(&cmd, (vary2 *) &aelp->origin);
+ vary4vargquote(&cmd, (vary2 *) &aelp->replace);
+ }
+ }
+
+ /* Avoid INSTMF(*NEW) and OUTSMTF(*INSTMF). */
+ if (args->outstmf && args->outstmf->len && !args->outstmf->string[0])
+ if (args->instmf && args->instmf->len)
+ args->outstmf = args->instmf;
+ else
+ args->outstmf = NULL;
+
+ /* If INSTMF(*NEW) and OUTSTMF(somepath), Use --create --noout and
+ somepath as (unexisting) input file. */
+ if (args->outstmf && args->outstmf->len)
+ if (!args->instmf || !args->instmf->len) {
+ vary4arg(&cmd, "--create");
+ vary4arg(&cmd, "--noout");
+ args->instmf = args->outstmf;
+ args->outstmf = NULL;
+ }
+
+ /* If output to input file, use --noout option. */
+ if (args->instmf && args->outstmf && args->instmf->len &&
+ args->instmf->len == args->outstmf->len &&
+ !strncmp(args->instmf->string, args->outstmf->string,
+ args->instmf->len)) {
+ vary4arg(&cmd, "--noout");
+ args->outstmf = NULL;
+ }
+
+ /* If no input file create catalog, else specify the input file name. */
+ /* Specify the input file name: my be a dummy one. */
+ if (!args->instmf || !args->instmf->len) {
+ vary4arg(&cmd, "--create -");
+ vary4arg(&cmd, ".dmyxmlcatalog");
+ }
+ else {
+ vary4arg(&cmd, "-");
+ vary4vargquote(&cmd, args->instmf);
+ }
+
+ /* Query entities. */
+
+ if (args->resolve)
+ for (i = 0; i < args->resolve->len; i++)
+ vary4vargquote(&cmd, &args->resolve->item[i].param);
+
+ /* Redirect output if requested. */
+ if (args->outstmf && args->outstmf->len) {
+ vary4arg(&cmd, ">");
+ vary4vargquote(&cmd, args->outstmf);
+ }
+
+ /* Execute the shell command. */
+ qshell(&cmd);
+
+ /* Terminate. */
+ exit(0);
+}
diff --git a/libxml2/os400/xmllint.cmd b/libxml2/os400/xmllint.cmd
new file mode 100644
index 0000000..1582837
--- /dev/null
+++ b/libxml2/os400/xmllint.cmd
@@ -0,0 +1,146 @@
+/* XMLLINT CL command. */
+/* */
+/* See Copyright for the status of this software. */
+/* */
+/* Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A. */
+
+/* Interface to program XMLLINTCL */
+
+ CMD PROMPT('XML tool')
+
+ /* XML input file location. */
+
+ PARM KWD(STMF) TYPE(*PNAME) LEN(5000) VARY(*YES *INT2) +
+ CASE(*MIXED) EXPR(*YES) MIN(1) +
+ CHOICE('Stream file path') +
+ PROMPT('XML Stream file')
+
+ /* DTD location. */
+
+ PARM KWD(DTD) TYPE(*PNAME) LEN(5000) VARY(*YES *INT2) +
+ CASE(*MIXED) EXPR(*YES) PASSVAL(*NULL) +
+ CHOICE('ID, URL or stream file path') +
+ PROMPT('DTD id, URL or file path')
+
+ PARM KWD(DTDLOCATOR) TYPE(*CHAR) LEN(8) DFT(*DTDURL) +
+ SPCVAL(*DTDURL *DTDFPI) EXPR(*YES) RSTD(*YES) +
+ PROMPT('DTD locator is URL/FPI')
+
+ /* Schema location. */
+
+ PARM KWD(SCHEMA) TYPE(*PNAME) LEN(5000) VARY(*YES *INT2) +
+ CASE(*MIXED) EXPR(*YES) PASSVAL(*NULL) +
+ CHOICE('URL or stream file path') +
+ PROMPT('Schema URL or stream file path')
+
+ PARM KWD(SCHEMAKIND) TYPE(*CHAR) LEN(12) VARY(*YES *INT2) +
+ RSTD(*YES) DFT(*XSD) +
+ PROMPT('Validating schema kind') +
+ CHOICE('Keyword') SPCVAL( +
+ (*XSD '--schema') +
+ (*RELAXNG '--relaxng') +
+ (*SCHEMATRON '--schematron') +
+ )
+
+ /* Output location. */
+
+ PARM KWD(OUTSTMF) TYPE(*PNAME) LEN(5000) VARY(*YES *INT2) +
+ CASE(*MIXED) EXPR(*YES) PASSVAL(*NULL) +
+ CHOICE('Stream file path') +
+ PROMPT('Output stream file path')
+
+ /* Other parameters with arguments. */
+
+ PARM KWD(XPATH) TYPE(*CHAR) LEN(5000) VARY(*YES *INT2) +
+ CASE(*MIXED) EXPR(*YES) PASSVAL(*NULL) +
+ CHOICE('XPath expression') +
+ PROMPT('XPath filter')
+
+ PARM KWD(PATTERN) TYPE(*CHAR) LEN(5000) VARY(*YES *INT2) +
+ CASE(*MIXED) EXPR(*YES) PASSVAL(*NULL) +
+ CHOICE('Reader pattern') +
+ PROMPT('Reader node filter')
+
+ /* Paths for resources. */
+
+ PARM KWD(PATH) TYPE(*PNAME) LEN(5000) VARY(*YES *INT2) +
+ CASE(*MIXED) EXPR(*YES) MAX(64) +
+ CHOICE('IFS directory path') +
+ PROMPT('Path for resources')
+
+ PARM KWD(PRETTY) TYPE(*CHAR) LEN(11) VARY(*YES *INT2) +
+ RSTD(*YES) DFT(*NONE) +
+ PROMPT('Pretty-print style') +
+ CHOICE('Keyword') SPCVAL( +
+ (*NONE '0') +
+ (*FORMAT '1') +
+ (*WHITESPACE '2') +
+ )
+
+ PARM KWD(MAXMEM) TYPE(*UINT4) EXPR(*YES) DFT(0) +
+ CHOICE('Number of bytes') +
+ PROMPT('Maximum dynamic memory')
+
+ PARM KWD(ENCODING) TYPE(*CHAR) LEN(32) VARY(*YES *INT2) +
+ CASE(*MIXED) EXPR(*YES) PASSVAL(*NULL) +
+ PMTCTL(ENCODING) CHOICE('Encoding name') +
+ PROMPT('Output character encoding')
+ENCODING: PMTCTL CTL(OUTSTMF) COND(*SPCFD)
+
+ /* Boolean options. */
+ /* --shell is not supported from command mode. */
+
+ PARM KWD(OPTIONS) TYPE(*CHAR) LEN(20) VARY(*YES *INT2) +
+ MAX(50) RSTD(*YES) PROMPT('Options') +
+ CHOICE('Keyword') SPCVAL( +
+ (*VERSION '--version') +
+ (*DEBUG '--debug') +
+ (*DEBUGENT '--debugent') +
+ (*COPY '--copy') +
+ (*RECOVER '--recover') +
+ (*HUGE '--huge') +
+ (*NOENT '--noent') +
+ (*NOENC '--noenc') +
+ (*NOOUT '--noout') +
+ (*LOADTRACE '--load-trace') +
+ (*NONET '--nonet') +
+ (*NOCOMPACT '--nocompact') +
+ (*HTMLOUT '--htmlout') +
+ (*NOWRAP '--nowrap') +
+ (*VALID '--valid') +
+ (*POSTVALID '--postvalid') +
+ (*TIMING '--timing') +
+ (*REPEAT '--repeat') +
+ (*INSERT '--insert') +
+ (*COMPRESS '--compress') +
+ (*HTML '--html') +
+ (*XMLOUT '--xmlout') +
+ (*NODEFDTD '--nodefdtd') +
+ (*PUSH '--push') +
+ (*PUSHSMALL '--pushsmall') +
+ (*MEMORY '--memory') +
+ (*NOWARNING '--nowarning') +
+ (*NOBLANKS '--noblanks') +
+ (*NOCDATA '--nocdata') +
+ (*FORMAT '--format') +
+ (*DROPDTD '--dropdtd') +
+ (*NSCLEAN '--nsclean') +
+ (*TESTIO '--testIO') +
+ (*CATALOGS '--catalogs') +
+ (*NOCATALOGS '--nocatalogs') +
+ (*AUTO '--auto') +
+ (*XINCLUDE '--xinclude') +
+ (*NOXINCLUDENODE '--noxincludenode') +
+ (*NOFIXUPBASEURIS '--nofixup-base-uris') +
+ (*LOADDTD '--loaddtd') +
+ (*DTDATTR '--dtdattr') +
+ (*STREAM '--stream') +
+ (*WALKER '--walker') +
+ (*CHKREGISTER '--chkregister') +
+ (*C14N '--c14n') +
+ (*C14N11 '--c14n11') +
+ (*EXCC14N '--exc-c14n') +
+ (*SAX1 '--sax1') +
+ (*SAX '--sax') +
+ (*OLDXML10 '--oldxml10') +
+ )
diff --git a/libxml2/os400/xmllintcl.c b/libxml2/os400/xmllintcl.c
new file mode 100644
index 0000000..1226385
--- /dev/null
+++ b/libxml2/os400/xmllintcl.c
@@ -0,0 +1,216 @@
+/**
+*** XMLLINT command response program.
+***
+*** See Copyright for the status of this software.
+***
+*** Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A.
+**/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <qshell.h>
+
+
+/* Variable-length string, with 16-bit length. */
+typedef struct {
+ short len;
+ char string[5000];
+} vary2;
+
+
+/* Variable-length string, with 32-bit length. */
+typedef struct {
+ int len;
+ char string[5000];
+} vary4;
+
+
+/* Multiple occurrence parameter list. */
+#define paramlist(itemsize, itemtype) \
+ _Packed struct { \
+ short len; \
+ union { \
+ char _pad[itemsize]; \
+ itemtype param; \
+ } item[1]; \
+ }
+
+
+/* Arguments from CL command. */
+typedef struct {
+ char * pgm; /* Program name. */
+ vary2 * stmf; /* XML file name or URL. */
+ vary2 * dtd; /* DTD location or public identifier. */
+ char * dtdvalid; /* *DTDURL or *DTDFPI. */
+ vary2 * schema; /* Schema file name or URL. */
+ vary2 * schemakind; /* --schema/--relaxng/--schematron. */
+ vary2 * outstmf; /* Output stream file name. */
+ vary2 * xpath; /* XPath filter. */
+ vary2 * pattern; /* Reader filter pattern. */
+ paramlist(5000 + 2, vary2) * path; /* Path for resources. */
+ vary2 * pretty; /* Pretty-print style. */
+ unsigned long * maxmem; /* Maximum dynamic memory. */
+ vary2 * encoding; /* Output encoding. */
+ paramlist(20 + 2, vary2) * options; /* Other options. */
+} arguments;
+
+
+/* Definition of QSHELL program. */
+extern void qshell(vary4 * cmd);
+#pragma linkage(qshell, OS)
+#pragma map(qshell, "QSHELL/QZSHQSHC")
+
+
+static void
+vary4nappend(vary4 * dst, const char * src, size_t len)
+
+{
+ if (len > sizeof(dst->string) - dst->len)
+ len = sizeof(dst->string) - dst->len;
+
+ if (len) {
+ memcpy(dst->string + dst->len, src, len);
+ dst->len += len;
+ }
+}
+
+
+static void
+vary4append(vary4 * dst, const char * src)
+
+{
+ vary4nappend(dst, src, strlen(src));
+}
+
+
+static void
+vary4arg(vary4 * dst, const char * arg)
+
+{
+ vary4nappend(dst, " ", 1);
+ vary4append(dst, arg);
+}
+
+
+static void
+vary4varg(vary4 * dst, vary2 * arg)
+
+{
+ vary4nappend(dst, " ", 1);
+ vary4nappend(dst, arg->string, arg->len);
+}
+
+
+static void
+vary4vescape(vary4 * dst, vary2 * arg)
+
+{
+ int i;
+
+ for (i = 0; i < arg->len; i++)
+ if (arg->string[i] == '\'')
+ vary4nappend(dst, "'\"'\"'", 5);
+ else
+ vary4nappend(dst, arg->string + i, 1);
+}
+
+
+static void
+vary4vargquote(vary4 * dst, vary2 * arg)
+
+{
+ vary4nappend(dst, " '", 2);
+ vary4vescape(dst, arg);
+ vary4nappend(dst, "'", 1);
+}
+
+
+int
+main(int argsc, arguments * args)
+
+{
+ vary4 cmd;
+ int i;
+ char textbuf[20];
+ char * lang;
+
+ /* find length of library name. */
+ for (i = 0; i < 10 && args->pgm[i] && args->pgm[i] != '/'; i++)
+ ;
+
+ /* Store program name in command buffer. */
+ cmd.len = 0;
+ vary4append(&cmd, "/QSYS.LIB/");
+ vary4nappend(&cmd, args->pgm, i);
+ vary4append(&cmd, ".LIB/XMLLINT.PGM");
+
+ /* Map command arguments to standard xmllint argument vector. */
+
+ if (args->dtd && args->dtd->len) {
+ if (args->dtdvalid && args->dtdvalid[4] == 'F')
+ vary4arg(&cmd, "--dtdvalidfpi");
+ else
+ vary4arg(&cmd, "--dtdvalid");
+
+ vary4vargquote(&cmd, args->dtd);
+ }
+
+ if (args->schema && args->schema->len) {
+ vary4varg(&cmd, args->schemakind);
+ vary4vargquote(&cmd, args->schema);
+ }
+
+ if (args->outstmf && args->outstmf->len) {
+ vary4arg(&cmd, "--output");
+ vary4vargquote(&cmd, args->outstmf);
+
+ if (args->encoding && args->encoding->len) {
+ vary4arg(&cmd, "--encoding");
+ vary4vargquote(&cmd, args->encoding);
+ }
+ }
+
+ if (args->xpath && args->xpath->len) {
+ vary4arg(&cmd, "--xpath");
+ vary4vargquote(&cmd, args->xpath);
+ }
+
+ if (args->pattern && args->pattern->len) {
+ vary4arg(&cmd, "--pattern");
+ vary4vargquote(&cmd, args->pattern);
+ }
+
+ if (args->path && args->path->len) {
+ vary4arg(&cmd, "--path '");
+ vary4vescape(&cmd, &args->path->item[0].param);
+ for (i = 1; i < args->path->len; i++) {
+ vary4nappend(&cmd, ":", 1);
+ vary4vescape(&cmd, &args->path->item[i].param);
+ }
+ vary4nappend(&cmd, "'", 1);
+ }
+
+ if (args->pretty && args->pretty->len &&
+ args->pretty->string[0] != '0') {
+ vary4arg(&cmd, "--pretty");
+ vary4varg(&cmd, args->pretty);
+ }
+
+ if (args->maxmem && *args->maxmem) {
+ snprintf(textbuf, sizeof textbuf, "%lu", *args->maxmem);
+ vary4arg(&cmd, "--maxmem");
+ vary4arg(&cmd, textbuf);
+ }
+
+ for (i = 0; i < args->options->len; i++)
+ vary4varg(&cmd, &args->options->item[i].param);
+
+ vary4vargquote(&cmd, args->stmf);
+
+ /* Execute the shell command. */
+ qshell(&cmd);
+
+ /* Terminate. */
+ exit(0);
+}