diff options
author | Andreas Rottmann <a.rottmann@gmx.at> | 2009-09-14 12:32:44 +0200 |
---|---|---|
committer | Andreas Rottmann <a.rottmann@gmx.at> | 2009-09-14 12:32:44 +0200 |
commit | fa095a4504cbe668e4244547e2c141597bea4ecf (patch) | |
tree | 06135820a286ffec47804e75fbf8a147e92acd2e /lib/uninorm |
Imported Upstream version 0.9.1upstream/0.9.1
Diffstat (limited to 'lib/uninorm')
35 files changed, 8308 insertions, 0 deletions
diff --git a/lib/uninorm/canonical-decomposition.c b/lib/uninorm/canonical-decomposition.c new file mode 100644 index 00000000..210b74b9 --- /dev/null +++ b/lib/uninorm/canonical-decomposition.c @@ -0,0 +1,108 @@ +/* Canonical decomposition of Unicode characters. + Copyright (C) 2009 Free Software Foundation, Inc. + Written by Bruno Haible <bruno@clisp.org>, 2009. + + This program is free software: you can redistribute it and/or modify it + under the terms of the GNU Lesser General Public License as published + by the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. */ + +#include <config.h> + +/* Specification. */ +#include "uninorm.h" + +#include <stdlib.h> + +#include "decomposition-table.h" + +int +uc_canonical_decomposition (ucs4_t uc, ucs4_t *decomposition) +{ + if (uc >= 0xAC00 && uc < 0xD7A4) + { + /* Hangul syllable. See Unicode standard, chapter 3, section + "Hangul Syllable Decomposition", See also the clarification at + <http://www.unicode.org/versions/Unicode5.1.0/>, section + "Clarification of Hangul Jamo Handling". */ + unsigned int t; + + uc -= 0xAC00; + t = uc % 28; + + if (t == 0) + { + unsigned int v, l; + + uc = uc / 28; + v = uc % 21; + l = uc / 21; + + decomposition[0] = 0x1100 + l; + decomposition[1] = 0x1161 + v; + return 2; + } + else + { +#if 1 /* Return the pairwise decomposition, not the full decomposition. */ + decomposition[0] = 0xAC00 + uc - t; /* = 0xAC00 + (l * 21 + v) * 28; */ + decomposition[1] = 0x11A7 + t; + return 2; +#else + unsigned int v, l; + + uc = uc / 28; + v = uc % 21; + l = uc / 21; + + decomposition[0] = 0x1100 + l; + decomposition[1] = 0x1161 + v; + decomposition[2] = 0x11A7 + t; + return 3; +#endif + } + } + else if (uc < 0x110000) + { + unsigned short entry = decomp_index (uc); + /* An entry of (unsigned short)(-1) denotes an absent entry. + Otherwise, bit 15 of the entry tells whether the decomposition + is a canonical one. */ + if (entry < 0x8000) + { + const unsigned char *p; + unsigned int element; + unsigned int length; + + p = &gl_uninorm_decomp_chars_table[3 * entry]; + element = (p[0] << 16) | (p[1] << 8) | p[2]; + /* The first element has 5 bits for the decomposition type. */ + if (((element >> 18) & 0x1f) != UC_DECOMP_CANONICAL) + abort (); + length = 1; + for (;;) + { + /* Every element has an 18 bits wide Unicode code point. */ + *decomposition = element & 0x3ffff; + /* Bit 23 tells whether there are more elements, */ + if ((element & (1 << 23)) == 0) + break; + p += 3; + element = (p[0] << 16) | (p[1] << 8) | p[2]; + decomposition++; + length++; + } + return length; + } + } + return -1; +} + diff --git a/lib/uninorm/compat-decomposition.c b/lib/uninorm/compat-decomposition.c new file mode 100644 index 00000000..19ec87e3 --- /dev/null +++ b/lib/uninorm/compat-decomposition.c @@ -0,0 +1,31 @@ +/* Compatibility decomposition of Unicode characters. + Copyright (C) 2009 Free Software Foundation, Inc. + Written by Bruno Haible <bruno@clisp.org>, 2009. + + This program is free software: you can redistribute it and/or modify it + under the terms of the GNU Lesser General Public License as published + by the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. */ + +#include <config.h> + +/* Specification. */ +#include "decompose-internal.h" + +#include "uninorm.h" + +int +uc_compat_decomposition (ucs4_t uc, ucs4_t *decomposition) +{ + int tag; + + return uc_decomposition (uc, &tag, decomposition); +} diff --git a/lib/uninorm/composition-table.gperf b/lib/uninorm/composition-table.gperf new file mode 100644 index 00000000..f7f0febc --- /dev/null +++ b/lib/uninorm/composition-table.gperf @@ -0,0 +1,958 @@ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ +/* Canonical composition of Unicode characters. */ +/* Generated automatically by gen-uni-tables for Unicode 5.1.0. */ + +/* Copyright (C) 2009 Free Software Foundation, Inc. + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. */ + +struct composition_rule { char codes[4]; }; +%struct-type +%language=ANSI-C +%define slot-name codes +%define hash-function-name gl_uninorm_compose_hash +%define lookup-function-name gl_uninorm_compose_lookup +%compare-lengths +%compare-strncmp +%readonly-tables +%omit-struct-type +%% +"\x00\x41\x03\x00", 0x00c0 +"\x00\x41\x03\x01", 0x00c1 +"\x00\x41\x03\x02", 0x00c2 +"\x00\x41\x03\x03", 0x00c3 +"\x00\x41\x03\x08", 0x00c4 +"\x00\x41\x03\x0a", 0x00c5 +"\x00\x43\x03\x27", 0x00c7 +"\x00\x45\x03\x00", 0x00c8 +"\x00\x45\x03\x01", 0x00c9 +"\x00\x45\x03\x02", 0x00ca +"\x00\x45\x03\x08", 0x00cb +"\x00\x49\x03\x00", 0x00cc +"\x00\x49\x03\x01", 0x00cd +"\x00\x49\x03\x02", 0x00ce +"\x00\x49\x03\x08", 0x00cf +"\x00\x4e\x03\x03", 0x00d1 +"\x00\x4f\x03\x00", 0x00d2 +"\x00\x4f\x03\x01", 0x00d3 +"\x00\x4f\x03\x02", 0x00d4 +"\x00\x4f\x03\x03", 0x00d5 +"\x00\x4f\x03\x08", 0x00d6 +"\x00\x55\x03\x00", 0x00d9 +"\x00\x55\x03\x01", 0x00da +"\x00\x55\x03\x02", 0x00db +"\x00\x55\x03\x08", 0x00dc +"\x00\x59\x03\x01", 0x00dd +"\x00\x61\x03\x00", 0x00e0 +"\x00\x61\x03\x01", 0x00e1 +"\x00\x61\x03\x02", 0x00e2 +"\x00\x61\x03\x03", 0x00e3 +"\x00\x61\x03\x08", 0x00e4 +"\x00\x61\x03\x0a", 0x00e5 +"\x00\x63\x03\x27", 0x00e7 +"\x00\x65\x03\x00", 0x00e8 +"\x00\x65\x03\x01", 0x00e9 +"\x00\x65\x03\x02", 0x00ea +"\x00\x65\x03\x08", 0x00eb +"\x00\x69\x03\x00", 0x00ec +"\x00\x69\x03\x01", 0x00ed +"\x00\x69\x03\x02", 0x00ee +"\x00\x69\x03\x08", 0x00ef +"\x00\x6e\x03\x03", 0x00f1 +"\x00\x6f\x03\x00", 0x00f2 +"\x00\x6f\x03\x01", 0x00f3 +"\x00\x6f\x03\x02", 0x00f4 +"\x00\x6f\x03\x03", 0x00f5 +"\x00\x6f\x03\x08", 0x00f6 +"\x00\x75\x03\x00", 0x00f9 +"\x00\x75\x03\x01", 0x00fa +"\x00\x75\x03\x02", 0x00fb +"\x00\x75\x03\x08", 0x00fc +"\x00\x79\x03\x01", 0x00fd +"\x00\x79\x03\x08", 0x00ff +"\x00\x41\x03\x04", 0x0100 +"\x00\x61\x03\x04", 0x0101 +"\x00\x41\x03\x06", 0x0102 +"\x00\x61\x03\x06", 0x0103 +"\x00\x41\x03\x28", 0x0104 +"\x00\x61\x03\x28", 0x0105 +"\x00\x43\x03\x01", 0x0106 +"\x00\x63\x03\x01", 0x0107 +"\x00\x43\x03\x02", 0x0108 +"\x00\x63\x03\x02", 0x0109 +"\x00\x43\x03\x07", 0x010a +"\x00\x63\x03\x07", 0x010b +"\x00\x43\x03\x0c", 0x010c +"\x00\x63\x03\x0c", 0x010d +"\x00\x44\x03\x0c", 0x010e +"\x00\x64\x03\x0c", 0x010f +"\x00\x45\x03\x04", 0x0112 +"\x00\x65\x03\x04", 0x0113 +"\x00\x45\x03\x06", 0x0114 +"\x00\x65\x03\x06", 0x0115 +"\x00\x45\x03\x07", 0x0116 +"\x00\x65\x03\x07", 0x0117 +"\x00\x45\x03\x28", 0x0118 +"\x00\x65\x03\x28", 0x0119 +"\x00\x45\x03\x0c", 0x011a +"\x00\x65\x03\x0c", 0x011b +"\x00\x47\x03\x02", 0x011c +"\x00\x67\x03\x02", 0x011d +"\x00\x47\x03\x06", 0x011e +"\x00\x67\x03\x06", 0x011f +"\x00\x47\x03\x07", 0x0120 +"\x00\x67\x03\x07", 0x0121 +"\x00\x47\x03\x27", 0x0122 +"\x00\x67\x03\x27", 0x0123 +"\x00\x48\x03\x02", 0x0124 +"\x00\x68\x03\x02", 0x0125 +"\x00\x49\x03\x03", 0x0128 +"\x00\x69\x03\x03", 0x0129 +"\x00\x49\x03\x04", 0x012a +"\x00\x69\x03\x04", 0x012b +"\x00\x49\x03\x06", 0x012c +"\x00\x69\x03\x06", 0x012d +"\x00\x49\x03\x28", 0x012e +"\x00\x69\x03\x28", 0x012f +"\x00\x49\x03\x07", 0x0130 +"\x00\x4a\x03\x02", 0x0134 +"\x00\x6a\x03\x02", 0x0135 +"\x00\x4b\x03\x27", 0x0136 +"\x00\x6b\x03\x27", 0x0137 +"\x00\x4c\x03\x01", 0x0139 +"\x00\x6c\x03\x01", 0x013a +"\x00\x4c\x03\x27", 0x013b +"\x00\x6c\x03\x27", 0x013c +"\x00\x4c\x03\x0c", 0x013d +"\x00\x6c\x03\x0c", 0x013e +"\x00\x4e\x03\x01", 0x0143 +"\x00\x6e\x03\x01", 0x0144 +"\x00\x4e\x03\x27", 0x0145 +"\x00\x6e\x03\x27", 0x0146 +"\x00\x4e\x03\x0c", 0x0147 +"\x00\x6e\x03\x0c", 0x0148 +"\x00\x4f\x03\x04", 0x014c +"\x00\x6f\x03\x04", 0x014d +"\x00\x4f\x03\x06", 0x014e +"\x00\x6f\x03\x06", 0x014f +"\x00\x4f\x03\x0b", 0x0150 +"\x00\x6f\x03\x0b", 0x0151 +"\x00\x52\x03\x01", 0x0154 +"\x00\x72\x03\x01", 0x0155 +"\x00\x52\x03\x27", 0x0156 +"\x00\x72\x03\x27", 0x0157 +"\x00\x52\x03\x0c", 0x0158 +"\x00\x72\x03\x0c", 0x0159 +"\x00\x53\x03\x01", 0x015a +"\x00\x73\x03\x01", 0x015b +"\x00\x53\x03\x02", 0x015c +"\x00\x73\x03\x02", 0x015d +"\x00\x53\x03\x27", 0x015e +"\x00\x73\x03\x27", 0x015f +"\x00\x53\x03\x0c", 0x0160 +"\x00\x73\x03\x0c", 0x0161 +"\x00\x54\x03\x27", 0x0162 +"\x00\x74\x03\x27", 0x0163 +"\x00\x54\x03\x0c", 0x0164 +"\x00\x74\x03\x0c", 0x0165 +"\x00\x55\x03\x03", 0x0168 +"\x00\x75\x03\x03", 0x0169 +"\x00\x55\x03\x04", 0x016a +"\x00\x75\x03\x04", 0x016b +"\x00\x55\x03\x06", 0x016c +"\x00\x75\x03\x06", 0x016d +"\x00\x55\x03\x0a", 0x016e +"\x00\x75\x03\x0a", 0x016f +"\x00\x55\x03\x0b", 0x0170 +"\x00\x75\x03\x0b", 0x0171 +"\x00\x55\x03\x28", 0x0172 +"\x00\x75\x03\x28", 0x0173 +"\x00\x57\x03\x02", 0x0174 +"\x00\x77\x03\x02", 0x0175 +"\x00\x59\x03\x02", 0x0176 +"\x00\x79\x03\x02", 0x0177 +"\x00\x59\x03\x08", 0x0178 +"\x00\x5a\x03\x01", 0x0179 +"\x00\x7a\x03\x01", 0x017a +"\x00\x5a\x03\x07", 0x017b +"\x00\x7a\x03\x07", 0x017c +"\x00\x5a\x03\x0c", 0x017d +"\x00\x7a\x03\x0c", 0x017e +"\x00\x4f\x03\x1b", 0x01a0 +"\x00\x6f\x03\x1b", 0x01a1 +"\x00\x55\x03\x1b", 0x01af +"\x00\x75\x03\x1b", 0x01b0 +"\x00\x41\x03\x0c", 0x01cd +"\x00\x61\x03\x0c", 0x01ce +"\x00\x49\x03\x0c", 0x01cf +"\x00\x69\x03\x0c", 0x01d0 +"\x00\x4f\x03\x0c", 0x01d1 +"\x00\x6f\x03\x0c", 0x01d2 +"\x00\x55\x03\x0c", 0x01d3 +"\x00\x75\x03\x0c", 0x01d4 +"\x00\xdc\x03\x04", 0x01d5 +"\x00\xfc\x03\x04", 0x01d6 +"\x00\xdc\x03\x01", 0x01d7 +"\x00\xfc\x03\x01", 0x01d8 +"\x00\xdc\x03\x0c", 0x01d9 +"\x00\xfc\x03\x0c", 0x01da +"\x00\xdc\x03\x00", 0x01db +"\x00\xfc\x03\x00", 0x01dc +"\x00\xc4\x03\x04", 0x01de +"\x00\xe4\x03\x04", 0x01df +"\x02\x26\x03\x04", 0x01e0 +"\x02\x27\x03\x04", 0x01e1 +"\x00\xc6\x03\x04", 0x01e2 +"\x00\xe6\x03\x04", 0x01e3 +"\x00\x47\x03\x0c", 0x01e6 +"\x00\x67\x03\x0c", 0x01e7 +"\x00\x4b\x03\x0c", 0x01e8 +"\x00\x6b\x03\x0c", 0x01e9 +"\x00\x4f\x03\x28", 0x01ea +"\x00\x6f\x03\x28", 0x01eb +"\x01\xea\x03\x04", 0x01ec +"\x01\xeb\x03\x04", 0x01ed +"\x01\xb7\x03\x0c", 0x01ee +"\x02\x92\x03\x0c", 0x01ef +"\x00\x6a\x03\x0c", 0x01f0 +"\x00\x47\x03\x01", 0x01f4 +"\x00\x67\x03\x01", 0x01f5 +"\x00\x4e\x03\x00", 0x01f8 +"\x00\x6e\x03\x00", 0x01f9 +"\x00\xc5\x03\x01", 0x01fa +"\x00\xe5\x03\x01", 0x01fb +"\x00\xc6\x03\x01", 0x01fc +"\x00\xe6\x03\x01", 0x01fd +"\x00\xd8\x03\x01", 0x01fe +"\x00\xf8\x03\x01", 0x01ff +"\x00\x41\x03\x0f", 0x0200 +"\x00\x61\x03\x0f", 0x0201 +"\x00\x41\x03\x11", 0x0202 +"\x00\x61\x03\x11", 0x0203 +"\x00\x45\x03\x0f", 0x0204 +"\x00\x65\x03\x0f", 0x0205 +"\x00\x45\x03\x11", 0x0206 +"\x00\x65\x03\x11", 0x0207 +"\x00\x49\x03\x0f", 0x0208 +"\x00\x69\x03\x0f", 0x0209 +"\x00\x49\x03\x11", 0x020a +"\x00\x69\x03\x11", 0x020b +"\x00\x4f\x03\x0f", 0x020c +"\x00\x6f\x03\x0f", 0x020d +"\x00\x4f\x03\x11", 0x020e +"\x00\x6f\x03\x11", 0x020f +"\x00\x52\x03\x0f", 0x0210 +"\x00\x72\x03\x0f", 0x0211 +"\x00\x52\x03\x11", 0x0212 +"\x00\x72\x03\x11", 0x0213 +"\x00\x55\x03\x0f", 0x0214 +"\x00\x75\x03\x0f", 0x0215 +"\x00\x55\x03\x11", 0x0216 +"\x00\x75\x03\x11", 0x0217 +"\x00\x53\x03\x26", 0x0218 +"\x00\x73\x03\x26", 0x0219 +"\x00\x54\x03\x26", 0x021a +"\x00\x74\x03\x26", 0x021b +"\x00\x48\x03\x0c", 0x021e +"\x00\x68\x03\x0c", 0x021f +"\x00\x41\x03\x07", 0x0226 +"\x00\x61\x03\x07", 0x0227 +"\x00\x45\x03\x27", 0x0228 +"\x00\x65\x03\x27", 0x0229 +"\x00\xd6\x03\x04", 0x022a +"\x00\xf6\x03\x04", 0x022b +"\x00\xd5\x03\x04", 0x022c +"\x00\xf5\x03\x04", 0x022d +"\x00\x4f\x03\x07", 0x022e +"\x00\x6f\x03\x07", 0x022f +"\x02\x2e\x03\x04", 0x0230 +"\x02\x2f\x03\x04", 0x0231 +"\x00\x59\x03\x04", 0x0232 +"\x00\x79\x03\x04", 0x0233 +"\x00\xa8\x03\x01", 0x0385 +"\x03\x91\x03\x01", 0x0386 +"\x03\x95\x03\x01", 0x0388 +"\x03\x97\x03\x01", 0x0389 +"\x03\x99\x03\x01", 0x038a +"\x03\x9f\x03\x01", 0x038c +"\x03\xa5\x03\x01", 0x038e +"\x03\xa9\x03\x01", 0x038f +"\x03\xca\x03\x01", 0x0390 +"\x03\x99\x03\x08", 0x03aa +"\x03\xa5\x03\x08", 0x03ab +"\x03\xb1\x03\x01", 0x03ac +"\x03\xb5\x03\x01", 0x03ad +"\x03\xb7\x03\x01", 0x03ae +"\x03\xb9\x03\x01", 0x03af +"\x03\xcb\x03\x01", 0x03b0 +"\x03\xb9\x03\x08", 0x03ca +"\x03\xc5\x03\x08", 0x03cb +"\x03\xbf\x03\x01", 0x03cc +"\x03\xc5\x03\x01", 0x03cd +"\x03\xc9\x03\x01", 0x03ce +"\x03\xd2\x03\x01", 0x03d3 +"\x03\xd2\x03\x08", 0x03d4 +"\x04\x15\x03\x00", 0x0400 +"\x04\x15\x03\x08", 0x0401 +"\x04\x13\x03\x01", 0x0403 +"\x04\x06\x03\x08", 0x0407 +"\x04\x1a\x03\x01", 0x040c +"\x04\x18\x03\x00", 0x040d +"\x04\x23\x03\x06", 0x040e +"\x04\x18\x03\x06", 0x0419 +"\x04\x38\x03\x06", 0x0439 +"\x04\x35\x03\x00", 0x0450 +"\x04\x35\x03\x08", 0x0451 +"\x04\x33\x03\x01", 0x0453 +"\x04\x56\x03\x08", 0x0457 +"\x04\x3a\x03\x01", 0x045c +"\x04\x38\x03\x00", 0x045d +"\x04\x43\x03\x06", 0x045e +"\x04\x74\x03\x0f", 0x0476 +"\x04\x75\x03\x0f", 0x0477 +"\x04\x16\x03\x06", 0x04c1 +"\x04\x36\x03\x06", 0x04c2 +"\x04\x10\x03\x06", 0x04d0 +"\x04\x30\x03\x06", 0x04d1 +"\x04\x10\x03\x08", 0x04d2 +"\x04\x30\x03\x08", 0x04d3 +"\x04\x15\x03\x06", 0x04d6 +"\x04\x35\x03\x06", 0x04d7 +"\x04\xd8\x03\x08", 0x04da +"\x04\xd9\x03\x08", 0x04db +"\x04\x16\x03\x08", 0x04dc +"\x04\x36\x03\x08", 0x04dd +"\x04\x17\x03\x08", 0x04de +"\x04\x37\x03\x08", 0x04df +"\x04\x18\x03\x04", 0x04e2 +"\x04\x38\x03\x04", 0x04e3 +"\x04\x18\x03\x08", 0x04e4 +"\x04\x38\x03\x08", 0x04e5 +"\x04\x1e\x03\x08", 0x04e6 +"\x04\x3e\x03\x08", 0x04e7 +"\x04\xe8\x03\x08", 0x04ea +"\x04\xe9\x03\x08", 0x04eb +"\x04\x2d\x03\x08", 0x04ec +"\x04\x4d\x03\x08", 0x04ed +"\x04\x23\x03\x04", 0x04ee +"\x04\x43\x03\x04", 0x04ef +"\x04\x23\x03\x08", 0x04f0 +"\x04\x43\x03\x08", 0x04f1 +"\x04\x23\x03\x0b", 0x04f2 +"\x04\x43\x03\x0b", 0x04f3 +"\x04\x27\x03\x08", 0x04f4 +"\x04\x47\x03\x08", 0x04f5 +"\x04\x2b\x03\x08", 0x04f8 +"\x04\x4b\x03\x08", 0x04f9 +"\x06\x27\x06\x53", 0x0622 +"\x06\x27\x06\x54", 0x0623 +"\x06\x48\x06\x54", 0x0624 +"\x06\x27\x06\x55", 0x0625 +"\x06\x4a\x06\x54", 0x0626 +"\x06\xd5\x06\x54", 0x06c0 +"\x06\xc1\x06\x54", 0x06c2 +"\x06\xd2\x06\x54", 0x06d3 +"\x09\x28\x09\x3c", 0x0929 +"\x09\x30\x09\x3c", 0x0931 +"\x09\x33\x09\x3c", 0x0934 +"\x09\xc7\x09\xbe", 0x09cb +"\x09\xc7\x09\xd7", 0x09cc +"\x0b\x47\x0b\x56", 0x0b48 +"\x0b\x47\x0b\x3e", 0x0b4b +"\x0b\x47\x0b\x57", 0x0b4c +"\x0b\x92\x0b\xd7", 0x0b94 +"\x0b\xc6\x0b\xbe", 0x0bca +"\x0b\xc7\x0b\xbe", 0x0bcb +"\x0b\xc6\x0b\xd7", 0x0bcc +"\x0c\x46\x0c\x56", 0x0c48 +"\x0c\xbf\x0c\xd5", 0x0cc0 +"\x0c\xc6\x0c\xd5", 0x0cc7 +"\x0c\xc6\x0c\xd6", 0x0cc8 +"\x0c\xc6\x0c\xc2", 0x0cca +"\x0c\xca\x0c\xd5", 0x0ccb +"\x0d\x46\x0d\x3e", 0x0d4a +"\x0d\x47\x0d\x3e", 0x0d4b +"\x0d\x46\x0d\x57", 0x0d4c +"\x0d\xd9\x0d\xca", 0x0dda +"\x0d\xd9\x0d\xcf", 0x0ddc +"\x0d\xdc\x0d\xca", 0x0ddd +"\x0d\xd9\x0d\xdf", 0x0dde +"\x10\x25\x10\x2e", 0x1026 +"\x1b\x05\x1b\x35", 0x1b06 +"\x1b\x07\x1b\x35", 0x1b08 +"\x1b\x09\x1b\x35", 0x1b0a +"\x1b\x0b\x1b\x35", 0x1b0c +"\x1b\x0d\x1b\x35", 0x1b0e +"\x1b\x11\x1b\x35", 0x1b12 +"\x1b\x3a\x1b\x35", 0x1b3b +"\x1b\x3c\x1b\x35", 0x1b3d +"\x1b\x3e\x1b\x35", 0x1b40 +"\x1b\x3f\x1b\x35", 0x1b41 +"\x1b\x42\x1b\x35", 0x1b43 +"\x00\x41\x03\x25", 0x1e00 +"\x00\x61\x03\x25", 0x1e01 +"\x00\x42\x03\x07", 0x1e02 +"\x00\x62\x03\x07", 0x1e03 +"\x00\x42\x03\x23", 0x1e04 +"\x00\x62\x03\x23", 0x1e05 +"\x00\x42\x03\x31", 0x1e06 +"\x00\x62\x03\x31", 0x1e07 +"\x00\xc7\x03\x01", 0x1e08 +"\x00\xe7\x03\x01", 0x1e09 +"\x00\x44\x03\x07", 0x1e0a +"\x00\x64\x03\x07", 0x1e0b +"\x00\x44\x03\x23", 0x1e0c +"\x00\x64\x03\x23", 0x1e0d +"\x00\x44\x03\x31", 0x1e0e +"\x00\x64\x03\x31", 0x1e0f +"\x00\x44\x03\x27", 0x1e10 +"\x00\x64\x03\x27", 0x1e11 +"\x00\x44\x03\x2d", 0x1e12 +"\x00\x64\x03\x2d", 0x1e13 +"\x01\x12\x03\x00", 0x1e14 +"\x01\x13\x03\x00", 0x1e15 +"\x01\x12\x03\x01", 0x1e16 +"\x01\x13\x03\x01", 0x1e17 +"\x00\x45\x03\x2d", 0x1e18 +"\x00\x65\x03\x2d", 0x1e19 +"\x00\x45\x03\x30", 0x1e1a +"\x00\x65\x03\x30", 0x1e1b +"\x02\x28\x03\x06", 0x1e1c +"\x02\x29\x03\x06", 0x1e1d +"\x00\x46\x03\x07", 0x1e1e +"\x00\x66\x03\x07", 0x1e1f +"\x00\x47\x03\x04", 0x1e20 +"\x00\x67\x03\x04", 0x1e21 +"\x00\x48\x03\x07", 0x1e22 +"\x00\x68\x03\x07", 0x1e23 +"\x00\x48\x03\x23", 0x1e24 +"\x00\x68\x03\x23", 0x1e25 +"\x00\x48\x03\x08", 0x1e26 +"\x00\x68\x03\x08", 0x1e27 +"\x00\x48\x03\x27", 0x1e28 +"\x00\x68\x03\x27", 0x1e29 +"\x00\x48\x03\x2e", 0x1e2a +"\x00\x68\x03\x2e", 0x1e2b +"\x00\x49\x03\x30", 0x1e2c +"\x00\x69\x03\x30", 0x1e2d +"\x00\xcf\x03\x01", 0x1e2e +"\x00\xef\x03\x01", 0x1e2f +"\x00\x4b\x03\x01", 0x1e30 +"\x00\x6b\x03\x01", 0x1e31 +"\x00\x4b\x03\x23", 0x1e32 +"\x00\x6b\x03\x23", 0x1e33 +"\x00\x4b\x03\x31", 0x1e34 +"\x00\x6b\x03\x31", 0x1e35 +"\x00\x4c\x03\x23", 0x1e36 +"\x00\x6c\x03\x23", 0x1e37 +"\x1e\x36\x03\x04", 0x1e38 +"\x1e\x37\x03\x04", 0x1e39 +"\x00\x4c\x03\x31", 0x1e3a +"\x00\x6c\x03\x31", 0x1e3b +"\x00\x4c\x03\x2d", 0x1e3c +"\x00\x6c\x03\x2d", 0x1e3d +"\x00\x4d\x03\x01", 0x1e3e +"\x00\x6d\x03\x01", 0x1e3f +"\x00\x4d\x03\x07", 0x1e40 +"\x00\x6d\x03\x07", 0x1e41 +"\x00\x4d\x03\x23", 0x1e42 +"\x00\x6d\x03\x23", 0x1e43 +"\x00\x4e\x03\x07", 0x1e44 +"\x00\x6e\x03\x07", 0x1e45 +"\x00\x4e\x03\x23", 0x1e46 +"\x00\x6e\x03\x23", 0x1e47 +"\x00\x4e\x03\x31", 0x1e48 +"\x00\x6e\x03\x31", 0x1e49 +"\x00\x4e\x03\x2d", 0x1e4a +"\x00\x6e\x03\x2d", 0x1e4b +"\x00\xd5\x03\x01", 0x1e4c +"\x00\xf5\x03\x01", 0x1e4d +"\x00\xd5\x03\x08", 0x1e4e +"\x00\xf5\x03\x08", 0x1e4f +"\x01\x4c\x03\x00", 0x1e50 +"\x01\x4d\x03\x00", 0x1e51 +"\x01\x4c\x03\x01", 0x1e52 +"\x01\x4d\x03\x01", 0x1e53 +"\x00\x50\x03\x01", 0x1e54 +"\x00\x70\x03\x01", 0x1e55 +"\x00\x50\x03\x07", 0x1e56 +"\x00\x70\x03\x07", 0x1e57 +"\x00\x52\x03\x07", 0x1e58 +"\x00\x72\x03\x07", 0x1e59 +"\x00\x52\x03\x23", 0x1e5a +"\x00\x72\x03\x23", 0x1e5b +"\x1e\x5a\x03\x04", 0x1e5c +"\x1e\x5b\x03\x04", 0x1e5d +"\x00\x52\x03\x31", 0x1e5e +"\x00\x72\x03\x31", 0x1e5f +"\x00\x53\x03\x07", 0x1e60 +"\x00\x73\x03\x07", 0x1e61 +"\x00\x53\x03\x23", 0x1e62 +"\x00\x73\x03\x23", 0x1e63 +"\x01\x5a\x03\x07", 0x1e64 +"\x01\x5b\x03\x07", 0x1e65 +"\x01\x60\x03\x07", 0x1e66 +"\x01\x61\x03\x07", 0x1e67 +"\x1e\x62\x03\x07", 0x1e68 +"\x1e\x63\x03\x07", 0x1e69 +"\x00\x54\x03\x07", 0x1e6a +"\x00\x74\x03\x07", 0x1e6b +"\x00\x54\x03\x23", 0x1e6c +"\x00\x74\x03\x23", 0x1e6d +"\x00\x54\x03\x31", 0x1e6e +"\x00\x74\x03\x31", 0x1e6f +"\x00\x54\x03\x2d", 0x1e70 +"\x00\x74\x03\x2d", 0x1e71 +"\x00\x55\x03\x24", 0x1e72 +"\x00\x75\x03\x24", 0x1e73 +"\x00\x55\x03\x30", 0x1e74 +"\x00\x75\x03\x30", 0x1e75 +"\x00\x55\x03\x2d", 0x1e76 +"\x00\x75\x03\x2d", 0x1e77 +"\x01\x68\x03\x01", 0x1e78 +"\x01\x69\x03\x01", 0x1e79 +"\x01\x6a\x03\x08", 0x1e7a +"\x01\x6b\x03\x08", 0x1e7b +"\x00\x56\x03\x03", 0x1e7c +"\x00\x76\x03\x03", 0x1e7d +"\x00\x56\x03\x23", 0x1e7e +"\x00\x76\x03\x23", 0x1e7f +"\x00\x57\x03\x00", 0x1e80 +"\x00\x77\x03\x00", 0x1e81 +"\x00\x57\x03\x01", 0x1e82 +"\x00\x77\x03\x01", 0x1e83 +"\x00\x57\x03\x08", 0x1e84 +"\x00\x77\x03\x08", 0x1e85 +"\x00\x57\x03\x07", 0x1e86 +"\x00\x77\x03\x07", 0x1e87 +"\x00\x57\x03\x23", 0x1e88 +"\x00\x77\x03\x23", 0x1e89 +"\x00\x58\x03\x07", 0x1e8a +"\x00\x78\x03\x07", 0x1e8b +"\x00\x58\x03\x08", 0x1e8c +"\x00\x78\x03\x08", 0x1e8d +"\x00\x59\x03\x07", 0x1e8e +"\x00\x79\x03\x07", 0x1e8f +"\x00\x5a\x03\x02", 0x1e90 +"\x00\x7a\x03\x02", 0x1e91 +"\x00\x5a\x03\x23", 0x1e92 +"\x00\x7a\x03\x23", 0x1e93 +"\x00\x5a\x03\x31", 0x1e94 +"\x00\x7a\x03\x31", 0x1e95 +"\x00\x68\x03\x31", 0x1e96 +"\x00\x74\x03\x08", 0x1e97 +"\x00\x77\x03\x0a", 0x1e98 +"\x00\x79\x03\x0a", 0x1e99 +"\x01\x7f\x03\x07", 0x1e9b +"\x00\x41\x03\x23", 0x1ea0 +"\x00\x61\x03\x23", 0x1ea1 +"\x00\x41\x03\x09", 0x1ea2 +"\x00\x61\x03\x09", 0x1ea3 +"\x00\xc2\x03\x01", 0x1ea4 +"\x00\xe2\x03\x01", 0x1ea5 +"\x00\xc2\x03\x00", 0x1ea6 +"\x00\xe2\x03\x00", 0x1ea7 +"\x00\xc2\x03\x09", 0x1ea8 +"\x00\xe2\x03\x09", 0x1ea9 +"\x00\xc2\x03\x03", 0x1eaa +"\x00\xe2\x03\x03", 0x1eab +"\x1e\xa0\x03\x02", 0x1eac +"\x1e\xa1\x03\x02", 0x1ead +"\x01\x02\x03\x01", 0x1eae +"\x01\x03\x03\x01", 0x1eaf +"\x01\x02\x03\x00", 0x1eb0 +"\x01\x03\x03\x00", 0x1eb1 +"\x01\x02\x03\x09", 0x1eb2 +"\x01\x03\x03\x09", 0x1eb3 +"\x01\x02\x03\x03", 0x1eb4 +"\x01\x03\x03\x03", 0x1eb5 +"\x1e\xa0\x03\x06", 0x1eb6 +"\x1e\xa1\x03\x06", 0x1eb7 +"\x00\x45\x03\x23", 0x1eb8 +"\x00\x65\x03\x23", 0x1eb9 +"\x00\x45\x03\x09", 0x1eba +"\x00\x65\x03\x09", 0x1ebb +"\x00\x45\x03\x03", 0x1ebc +"\x00\x65\x03\x03", 0x1ebd +"\x00\xca\x03\x01", 0x1ebe +"\x00\xea\x03\x01", 0x1ebf +"\x00\xca\x03\x00", 0x1ec0 +"\x00\xea\x03\x00", 0x1ec1 +"\x00\xca\x03\x09", 0x1ec2 +"\x00\xea\x03\x09", 0x1ec3 +"\x00\xca\x03\x03", 0x1ec4 +"\x00\xea\x03\x03", 0x1ec5 +"\x1e\xb8\x03\x02", 0x1ec6 +"\x1e\xb9\x03\x02", 0x1ec7 +"\x00\x49\x03\x09", 0x1ec8 +"\x00\x69\x03\x09", 0x1ec9 +"\x00\x49\x03\x23", 0x1eca +"\x00\x69\x03\x23", 0x1ecb +"\x00\x4f\x03\x23", 0x1ecc +"\x00\x6f\x03\x23", 0x1ecd +"\x00\x4f\x03\x09", 0x1ece +"\x00\x6f\x03\x09", 0x1ecf +"\x00\xd4\x03\x01", 0x1ed0 +"\x00\xf4\x03\x01", 0x1ed1 +"\x00\xd4\x03\x00", 0x1ed2 +"\x00\xf4\x03\x00", 0x1ed3 +"\x00\xd4\x03\x09", 0x1ed4 +"\x00\xf4\x03\x09", 0x1ed5 +"\x00\xd4\x03\x03", 0x1ed6 +"\x00\xf4\x03\x03", 0x1ed7 +"\x1e\xcc\x03\x02", 0x1ed8 +"\x1e\xcd\x03\x02", 0x1ed9 +"\x01\xa0\x03\x01", 0x1eda +"\x01\xa1\x03\x01", 0x1edb +"\x01\xa0\x03\x00", 0x1edc +"\x01\xa1\x03\x00", 0x1edd +"\x01\xa0\x03\x09", 0x1ede +"\x01\xa1\x03\x09", 0x1edf +"\x01\xa0\x03\x03", 0x1ee0 +"\x01\xa1\x03\x03", 0x1ee1 +"\x01\xa0\x03\x23", 0x1ee2 +"\x01\xa1\x03\x23", 0x1ee3 +"\x00\x55\x03\x23", 0x1ee4 +"\x00\x75\x03\x23", 0x1ee5 +"\x00\x55\x03\x09", 0x1ee6 +"\x00\x75\x03\x09", 0x1ee7 +"\x01\xaf\x03\x01", 0x1ee8 +"\x01\xb0\x03\x01", 0x1ee9 +"\x01\xaf\x03\x00", 0x1eea +"\x01\xb0\x03\x00", 0x1eeb +"\x01\xaf\x03\x09", 0x1eec +"\x01\xb0\x03\x09", 0x1eed +"\x01\xaf\x03\x03", 0x1eee +"\x01\xb0\x03\x03", 0x1eef +"\x01\xaf\x03\x23", 0x1ef0 +"\x01\xb0\x03\x23", 0x1ef1 +"\x00\x59\x03\x00", 0x1ef2 +"\x00\x79\x03\x00", 0x1ef3 +"\x00\x59\x03\x23", 0x1ef4 +"\x00\x79\x03\x23", 0x1ef5 +"\x00\x59\x03\x09", 0x1ef6 +"\x00\x79\x03\x09", 0x1ef7 +"\x00\x59\x03\x03", 0x1ef8 +"\x00\x79\x03\x03", 0x1ef9 +"\x03\xb1\x03\x13", 0x1f00 +"\x03\xb1\x03\x14", 0x1f01 +"\x1f\x00\x03\x00", 0x1f02 +"\x1f\x01\x03\x00", 0x1f03 +"\x1f\x00\x03\x01", 0x1f04 +"\x1f\x01\x03\x01", 0x1f05 +"\x1f\x00\x03\x42", 0x1f06 +"\x1f\x01\x03\x42", 0x1f07 +"\x03\x91\x03\x13", 0x1f08 +"\x03\x91\x03\x14", 0x1f09 +"\x1f\x08\x03\x00", 0x1f0a +"\x1f\x09\x03\x00", 0x1f0b +"\x1f\x08\x03\x01", 0x1f0c +"\x1f\x09\x03\x01", 0x1f0d +"\x1f\x08\x03\x42", 0x1f0e +"\x1f\x09\x03\x42", 0x1f0f +"\x03\xb5\x03\x13", 0x1f10 +"\x03\xb5\x03\x14", 0x1f11 +"\x1f\x10\x03\x00", 0x1f12 +"\x1f\x11\x03\x00", 0x1f13 +"\x1f\x10\x03\x01", 0x1f14 +"\x1f\x11\x03\x01", 0x1f15 +"\x03\x95\x03\x13", 0x1f18 +"\x03\x95\x03\x14", 0x1f19 +"\x1f\x18\x03\x00", 0x1f1a +"\x1f\x19\x03\x00", 0x1f1b +"\x1f\x18\x03\x01", 0x1f1c +"\x1f\x19\x03\x01", 0x1f1d +"\x03\xb7\x03\x13", 0x1f20 +"\x03\xb7\x03\x14", 0x1f21 +"\x1f\x20\x03\x00", 0x1f22 +"\x1f\x21\x03\x00", 0x1f23 +"\x1f\x20\x03\x01", 0x1f24 +"\x1f\x21\x03\x01", 0x1f25 +"\x1f\x20\x03\x42", 0x1f26 +"\x1f\x21\x03\x42", 0x1f27 +"\x03\x97\x03\x13", 0x1f28 +"\x03\x97\x03\x14", 0x1f29 +"\x1f\x28\x03\x00", 0x1f2a +"\x1f\x29\x03\x00", 0x1f2b +"\x1f\x28\x03\x01", 0x1f2c +"\x1f\x29\x03\x01", 0x1f2d +"\x1f\x28\x03\x42", 0x1f2e +"\x1f\x29\x03\x42", 0x1f2f +"\x03\xb9\x03\x13", 0x1f30 +"\x03\xb9\x03\x14", 0x1f31 +"\x1f\x30\x03\x00", 0x1f32 +"\x1f\x31\x03\x00", 0x1f33 +"\x1f\x30\x03\x01", 0x1f34 +"\x1f\x31\x03\x01", 0x1f35 +"\x1f\x30\x03\x42", 0x1f36 +"\x1f\x31\x03\x42", 0x1f37 +"\x03\x99\x03\x13", 0x1f38 +"\x03\x99\x03\x14", 0x1f39 +"\x1f\x38\x03\x00", 0x1f3a +"\x1f\x39\x03\x00", 0x1f3b +"\x1f\x38\x03\x01", 0x1f3c +"\x1f\x39\x03\x01", 0x1f3d +"\x1f\x38\x03\x42", 0x1f3e +"\x1f\x39\x03\x42", 0x1f3f +"\x03\xbf\x03\x13", 0x1f40 +"\x03\xbf\x03\x14", 0x1f41 +"\x1f\x40\x03\x00", 0x1f42 +"\x1f\x41\x03\x00", 0x1f43 +"\x1f\x40\x03\x01", 0x1f44 +"\x1f\x41\x03\x01", 0x1f45 +"\x03\x9f\x03\x13", 0x1f48 +"\x03\x9f\x03\x14", 0x1f49 +"\x1f\x48\x03\x00", 0x1f4a +"\x1f\x49\x03\x00", 0x1f4b +"\x1f\x48\x03\x01", 0x1f4c +"\x1f\x49\x03\x01", 0x1f4d +"\x03\xc5\x03\x13", 0x1f50 +"\x03\xc5\x03\x14", 0x1f51 +"\x1f\x50\x03\x00", 0x1f52 +"\x1f\x51\x03\x00", 0x1f53 +"\x1f\x50\x03\x01", 0x1f54 +"\x1f\x51\x03\x01", 0x1f55 +"\x1f\x50\x03\x42", 0x1f56 +"\x1f\x51\x03\x42", 0x1f57 +"\x03\xa5\x03\x14", 0x1f59 +"\x1f\x59\x03\x00", 0x1f5b +"\x1f\x59\x03\x01", 0x1f5d +"\x1f\x59\x03\x42", 0x1f5f +"\x03\xc9\x03\x13", 0x1f60 +"\x03\xc9\x03\x14", 0x1f61 +"\x1f\x60\x03\x00", 0x1f62 +"\x1f\x61\x03\x00", 0x1f63 +"\x1f\x60\x03\x01", 0x1f64 +"\x1f\x61\x03\x01", 0x1f65 +"\x1f\x60\x03\x42", 0x1f66 +"\x1f\x61\x03\x42", 0x1f67 +"\x03\xa9\x03\x13", 0x1f68 +"\x03\xa9\x03\x14", 0x1f69 +"\x1f\x68\x03\x00", 0x1f6a +"\x1f\x69\x03\x00", 0x1f6b +"\x1f\x68\x03\x01", 0x1f6c +"\x1f\x69\x03\x01", 0x1f6d +"\x1f\x68\x03\x42", 0x1f6e +"\x1f\x69\x03\x42", 0x1f6f +"\x03\xb1\x03\x00", 0x1f70 +"\x03\xb5\x03\x00", 0x1f72 +"\x03\xb7\x03\x00", 0x1f74 +"\x03\xb9\x03\x00", 0x1f76 +"\x03\xbf\x03\x00", 0x1f78 +"\x03\xc5\x03\x00", 0x1f7a +"\x03\xc9\x03\x00", 0x1f7c +"\x1f\x00\x03\x45", 0x1f80 +"\x1f\x01\x03\x45", 0x1f81 +"\x1f\x02\x03\x45", 0x1f82 +"\x1f\x03\x03\x45", 0x1f83 +"\x1f\x04\x03\x45", 0x1f84 +"\x1f\x05\x03\x45", 0x1f85 +"\x1f\x06\x03\x45", 0x1f86 +"\x1f\x07\x03\x45", 0x1f87 +"\x1f\x08\x03\x45", 0x1f88 +"\x1f\x09\x03\x45", 0x1f89 +"\x1f\x0a\x03\x45", 0x1f8a +"\x1f\x0b\x03\x45", 0x1f8b +"\x1f\x0c\x03\x45", 0x1f8c +"\x1f\x0d\x03\x45", 0x1f8d +"\x1f\x0e\x03\x45", 0x1f8e +"\x1f\x0f\x03\x45", 0x1f8f +"\x1f\x20\x03\x45", 0x1f90 +"\x1f\x21\x03\x45", 0x1f91 +"\x1f\x22\x03\x45", 0x1f92 +"\x1f\x23\x03\x45", 0x1f93 +"\x1f\x24\x03\x45", 0x1f94 +"\x1f\x25\x03\x45", 0x1f95 +"\x1f\x26\x03\x45", 0x1f96 +"\x1f\x27\x03\x45", 0x1f97 +"\x1f\x28\x03\x45", 0x1f98 +"\x1f\x29\x03\x45", 0x1f99 +"\x1f\x2a\x03\x45", 0x1f9a +"\x1f\x2b\x03\x45", 0x1f9b +"\x1f\x2c\x03\x45", 0x1f9c +"\x1f\x2d\x03\x45", 0x1f9d +"\x1f\x2e\x03\x45", 0x1f9e +"\x1f\x2f\x03\x45", 0x1f9f +"\x1f\x60\x03\x45", 0x1fa0 +"\x1f\x61\x03\x45", 0x1fa1 +"\x1f\x62\x03\x45", 0x1fa2 +"\x1f\x63\x03\x45", 0x1fa3 +"\x1f\x64\x03\x45", 0x1fa4 +"\x1f\x65\x03\x45", 0x1fa5 +"\x1f\x66\x03\x45", 0x1fa6 +"\x1f\x67\x03\x45", 0x1fa7 +"\x1f\x68\x03\x45", 0x1fa8 +"\x1f\x69\x03\x45", 0x1fa9 +"\x1f\x6a\x03\x45", 0x1faa +"\x1f\x6b\x03\x45", 0x1fab +"\x1f\x6c\x03\x45", 0x1fac +"\x1f\x6d\x03\x45", 0x1fad +"\x1f\x6e\x03\x45", 0x1fae +"\x1f\x6f\x03\x45", 0x1faf +"\x03\xb1\x03\x06", 0x1fb0 +"\x03\xb1\x03\x04", 0x1fb1 +"\x1f\x70\x03\x45", 0x1fb2 +"\x03\xb1\x03\x45", 0x1fb3 +"\x03\xac\x03\x45", 0x1fb4 +"\x03\xb1\x03\x42", 0x1fb6 +"\x1f\xb6\x03\x45", 0x1fb7 +"\x03\x91\x03\x06", 0x1fb8 +"\x03\x91\x03\x04", 0x1fb9 +"\x03\x91\x03\x00", 0x1fba +"\x03\x91\x03\x45", 0x1fbc +"\x00\xa8\x03\x42", 0x1fc1 +"\x1f\x74\x03\x45", 0x1fc2 +"\x03\xb7\x03\x45", 0x1fc3 +"\x03\xae\x03\x45", 0x1fc4 +"\x03\xb7\x03\x42", 0x1fc6 +"\x1f\xc6\x03\x45", 0x1fc7 +"\x03\x95\x03\x00", 0x1fc8 +"\x03\x97\x03\x00", 0x1fca +"\x03\x97\x03\x45", 0x1fcc +"\x1f\xbf\x03\x00", 0x1fcd +"\x1f\xbf\x03\x01", 0x1fce +"\x1f\xbf\x03\x42", 0x1fcf +"\x03\xb9\x03\x06", 0x1fd0 +"\x03\xb9\x03\x04", 0x1fd1 +"\x03\xca\x03\x00", 0x1fd2 +"\x03\xb9\x03\x42", 0x1fd6 +"\x03\xca\x03\x42", 0x1fd7 +"\x03\x99\x03\x06", 0x1fd8 +"\x03\x99\x03\x04", 0x1fd9 +"\x03\x99\x03\x00", 0x1fda +"\x1f\xfe\x03\x00", 0x1fdd +"\x1f\xfe\x03\x01", 0x1fde +"\x1f\xfe\x03\x42", 0x1fdf +"\x03\xc5\x03\x06", 0x1fe0 +"\x03\xc5\x03\x04", 0x1fe1 +"\x03\xcb\x03\x00", 0x1fe2 +"\x03\xc1\x03\x13", 0x1fe4 +"\x03\xc1\x03\x14", 0x1fe5 +"\x03\xc5\x03\x42", 0x1fe6 +"\x03\xcb\x03\x42", 0x1fe7 +"\x03\xa5\x03\x06", 0x1fe8 +"\x03\xa5\x03\x04", 0x1fe9 +"\x03\xa5\x03\x00", 0x1fea +"\x03\xa1\x03\x14", 0x1fec +"\x00\xa8\x03\x00", 0x1fed +"\x1f\x7c\x03\x45", 0x1ff2 +"\x03\xc9\x03\x45", 0x1ff3 +"\x03\xce\x03\x45", 0x1ff4 +"\x03\xc9\x03\x42", 0x1ff6 +"\x1f\xf6\x03\x45", 0x1ff7 +"\x03\x9f\x03\x00", 0x1ff8 +"\x03\xa9\x03\x00", 0x1ffa +"\x03\xa9\x03\x45", 0x1ffc +"\x21\x90\x03\x38", 0x219a +"\x21\x92\x03\x38", 0x219b +"\x21\x94\x03\x38", 0x21ae +"\x21\xd0\x03\x38", 0x21cd +"\x21\xd4\x03\x38", 0x21ce +"\x21\xd2\x03\x38", 0x21cf +"\x22\x03\x03\x38", 0x2204 +"\x22\x08\x03\x38", 0x2209 +"\x22\x0b\x03\x38", 0x220c +"\x22\x23\x03\x38", 0x2224 +"\x22\x25\x03\x38", 0x2226 +"\x22\x3c\x03\x38", 0x2241 +"\x22\x43\x03\x38", 0x2244 +"\x22\x45\x03\x38", 0x2247 +"\x22\x48\x03\x38", 0x2249 +"\x00\x3d\x03\x38", 0x2260 +"\x22\x61\x03\x38", 0x2262 +"\x22\x4d\x03\x38", 0x226d +"\x00\x3c\x03\x38", 0x226e +"\x00\x3e\x03\x38", 0x226f +"\x22\x64\x03\x38", 0x2270 +"\x22\x65\x03\x38", 0x2271 +"\x22\x72\x03\x38", 0x2274 +"\x22\x73\x03\x38", 0x2275 +"\x22\x76\x03\x38", 0x2278 +"\x22\x77\x03\x38", 0x2279 +"\x22\x7a\x03\x38", 0x2280 +"\x22\x7b\x03\x38", 0x2281 +"\x22\x82\x03\x38", 0x2284 +"\x22\x83\x03\x38", 0x2285 +"\x22\x86\x03\x38", 0x2288 +"\x22\x87\x03\x38", 0x2289 +"\x22\xa2\x03\x38", 0x22ac +"\x22\xa8\x03\x38", 0x22ad +"\x22\xa9\x03\x38", 0x22ae +"\x22\xab\x03\x38", 0x22af +"\x22\x7c\x03\x38", 0x22e0 +"\x22\x7d\x03\x38", 0x22e1 +"\x22\x91\x03\x38", 0x22e2 +"\x22\x92\x03\x38", 0x22e3 +"\x22\xb2\x03\x38", 0x22ea +"\x22\xb3\x03\x38", 0x22eb +"\x22\xb4\x03\x38", 0x22ec +"\x22\xb5\x03\x38", 0x22ed +"\x30\x4b\x30\x99", 0x304c +"\x30\x4d\x30\x99", 0x304e +"\x30\x4f\x30\x99", 0x3050 +"\x30\x51\x30\x99", 0x3052 +"\x30\x53\x30\x99", 0x3054 +"\x30\x55\x30\x99", 0x3056 +"\x30\x57\x30\x99", 0x3058 +"\x30\x59\x30\x99", 0x305a +"\x30\x5b\x30\x99", 0x305c +"\x30\x5d\x30\x99", 0x305e +"\x30\x5f\x30\x99", 0x3060 +"\x30\x61\x30\x99", 0x3062 +"\x30\x64\x30\x99", 0x3065 +"\x30\x66\x30\x99", 0x3067 +"\x30\x68\x30\x99", 0x3069 +"\x30\x6f\x30\x99", 0x3070 +"\x30\x6f\x30\x9a", 0x3071 +"\x30\x72\x30\x99", 0x3073 +"\x30\x72\x30\x9a", 0x3074 +"\x30\x75\x30\x99", 0x3076 +"\x30\x75\x30\x9a", 0x3077 +"\x30\x78\x30\x99", 0x3079 +"\x30\x78\x30\x9a", 0x307a +"\x30\x7b\x30\x99", 0x307c +"\x30\x7b\x30\x9a", 0x307d +"\x30\x46\x30\x99", 0x3094 +"\x30\x9d\x30\x99", 0x309e +"\x30\xab\x30\x99", 0x30ac +"\x30\xad\x30\x99", 0x30ae +"\x30\xaf\x30\x99", 0x30b0 +"\x30\xb1\x30\x99", 0x30b2 +"\x30\xb3\x30\x99", 0x30b4 +"\x30\xb5\x30\x99", 0x30b6 +"\x30\xb7\x30\x99", 0x30b8 +"\x30\xb9\x30\x99", 0x30ba +"\x30\xbb\x30\x99", 0x30bc +"\x30\xbd\x30\x99", 0x30be +"\x30\xbf\x30\x99", 0x30c0 +"\x30\xc1\x30\x99", 0x30c2 +"\x30\xc4\x30\x99", 0x30c5 +"\x30\xc6\x30\x99", 0x30c7 +"\x30\xc8\x30\x99", 0x30c9 +"\x30\xcf\x30\x99", 0x30d0 +"\x30\xcf\x30\x9a", 0x30d1 +"\x30\xd2\x30\x99", 0x30d3 +"\x30\xd2\x30\x9a", 0x30d4 +"\x30\xd5\x30\x99", 0x30d6 +"\x30\xd5\x30\x9a", 0x30d7 +"\x30\xd8\x30\x99", 0x30d9 +"\x30\xd8\x30\x9a", 0x30da +"\x30\xdb\x30\x99", 0x30dc +"\x30\xdb\x30\x9a", 0x30dd +"\x30\xa6\x30\x99", 0x30f4 +"\x30\xef\x30\x99", 0x30f7 +"\x30\xf0\x30\x99", 0x30f8 +"\x30\xf1\x30\x99", 0x30f9 +"\x30\xf2\x30\x99", 0x30fa +"\x30\xfd\x30\x99", 0x30fe diff --git a/lib/uninorm/composition-table.h b/lib/uninorm/composition-table.h new file mode 100644 index 00000000..3e992a40 --- /dev/null +++ b/lib/uninorm/composition-table.h @@ -0,0 +1,2159 @@ +/* ANSI-C code produced by gperf version 3.0.4 */ +/* Command-line: gperf -m 1 ./uninorm/composition-table.gperf */ +/* Computed positions: -k'1-2,4' */ + + +#define TOTAL_KEYWORDS 928 +#define MIN_WORD_LENGTH 4 +#define MAX_WORD_LENGTH 4 +#define MIN_HASH_VALUE 1 +#define MAX_HASH_VALUE 1527 +/* maximum key range = 1527, duplicates = 0 */ + +#ifdef __GNUC__ +__inline +#else +#ifdef __cplusplus +inline +#endif +#endif +/*ARGSUSED*/ +static unsigned int +gl_uninorm_compose_hash (register const char *str, register unsigned int len) +{ + static const unsigned short asso_values[] = + { + 7, 1, 0, 3, 58, 132, 240, 62, 4, 33, + 117, 268, 485, 135, 601, 599, 103, 770, 249, 284, + 59, 337, 685, 524, 711, 106, 498, 569, 712, 1528, + 91, 13, 841, 752, 322, 487, 192, 604, 817, 13, + 337, 65, 137, 147, 45, 144, 255, 588, 133, 342, + 172, 15, 1528, 794, 60, 95, 606, 50, 18, 1528, + 239, 67, 198, 362, 75, 89, 324, 2, 531, 167, + 12, 375, 289, 61, 397, 314, 431, 452, 395, 180, + 821, 736, 362, 561, 456, 202, 536, 360, 645, 300, + 592, 700, 1528, 361, 1528, 358, 796, 26, 783, 653, + 270, 98, 253, 415, 323, 42, 747, 575, 542, 691, + 262, 124, 792, 1528, 251, 559, 236, 133, 12, 406, + 460, 219, 627, 9, 158, 168, 1528, 1, 1528, 1528, + 161, 153, 1528, 1528, 129, 123, 1528, 1528, 1528, 1528, + 1528, 1528, 1528, 1528, 23, 493, 109, 1528, 10, 676, + 1528, 725, 1528, 650, 59, 384, 1528, 291, 1528, 50, + 589, 518, 79, 1528, 1528, 672, 235, 1528, 466, 628, + 1528, 62, 27, 229, 20, 668, 778, 531, 37, 5, + 16, 416, 5, 560, 34, 482, 1528, 147, 1528, 138, + 1528, 476, 1528, 530, 839, 1, 329, 524, 675, 342, + 136, 684, 580, 211, 31, 19, 9, 87, 21, 1528, + 356, 1528, 725, 313, 14, 0, 555, 65, 1528, 256, + 37, 1528, 1528, 1528, 105, 1528, 833, 1528, 16, 4, + 0, 3, 19, 1, 755, 4, 1528, 1528, 1528, 54, + 100, 76, 27, 1528, 811, 20, 56, 1528, 1, 1528, + 1528, 1528, 706, 14, 71, 1528, 1528 + }; + return asso_values[(unsigned char)str[3]+1] + asso_values[(unsigned char)str[1]] + asso_values[(unsigned char)str[0]]; +} + +#ifdef __GNUC__ +__inline +#if defined __GNUC_STDC_INLINE__ || defined __GNUC_GNU_INLINE__ +__attribute__ ((__gnu_inline__)) +#endif +#endif +const struct composition_rule * +gl_uninorm_compose_lookup (register const char *str, register unsigned int len) +{ + static const unsigned char lengthtable[] = + { + 0, 4, 4, 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 0, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 0, 4, 4, 0, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 0, 4, 4, 4, 4, 4, + 4, 0, 4, 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 0, 0, 4, 4, 4, 4, + 4, 0, 4, 4, 4, 4, 0, 4, 4, 0, 4, 4, 0, 0, + 0, 0, 4, 4, 4, 0, 4, 4, 4, 0, 4, 0, 0, 0, + 4, 4, 4, 4, 4, 4, 0, 4, 4, 4, 0, 0, 0, 0, + 0, 4, 0, 4, 4, 0, 0, 0, 4, 4, 0, 4, 0, 4, + 0, 0, 0, 0, 4, 0, 4, 4, 4, 0, 0, 4, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, + 0, 4, 0, 0, 0, 4, 0, 0, 0, 0, 4, 4, 0, 0, + 0, 0, 4, 0, 0, 4, 4, 0, 0, 4, 4, 4, 0, 0, + 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 4, 4, 0, 0, + 0, 0, 0, 4, 0, 4, 4, 0, 0, 4, 0, 4, 0, 0, + 0, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0, 0, 0, + 0, 0, 4, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 4, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, + 0, 4, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 4, 4, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 4, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 4 + }; + static const struct composition_rule wordlist[] = + { + {""}, +#line 572 "./uninorm/composition-table.gperf" + {"\001\002\003\001", 0x1eae}, +#line 574 "./uninorm/composition-table.gperf" + {"\001\002\003\000", 0x1eb0}, + {""}, +#line 573 "./uninorm/composition-table.gperf" + {"\001\003\003\001", 0x1eaf}, +#line 575 "./uninorm/composition-table.gperf" + {"\001\003\003\000", 0x1eb1}, +#line 557 "./uninorm/composition-table.gperf" + {"\001\177\003\007", 0x1e9b}, +#line 236 "./uninorm/composition-table.gperf" + {"\000\346\003\001", 0x01fd}, +#line 238 "./uninorm/composition-table.gperf" + {"\000\370\003\001", 0x01ff}, +#line 90 "./uninorm/composition-table.gperf" + {"\000C\003\001", 0x0106}, +#line 412 "./uninorm/composition-table.gperf" + {"\000\347\003\001", 0x1e09}, +#line 234 "./uninorm/composition-table.gperf" + {"\000\345\003\001", 0x01fb}, +#line 92 "./uninorm/composition-table.gperf" + {"\000C\003\002", 0x0108}, +#line 94 "./uninorm/composition-table.gperf" + {"\000C\003\007", 0x010a}, +#line 653 "./uninorm/composition-table.gperf" + {"\037\001\003\001", 0x1f05}, +#line 651 "./uninorm/composition-table.gperf" + {"\037\001\003\000", 0x1f03}, +#line 655 "./uninorm/composition-table.gperf" + {"\037\001\003B", 0x1f07}, +#line 660 "./uninorm/composition-table.gperf" + {"\037\010\003\001", 0x1f0c}, +#line 658 "./uninorm/composition-table.gperf" + {"\037\010\003\000", 0x1f0a}, +#line 662 "./uninorm/composition-table.gperf" + {"\037\010\003B", 0x1f0e}, +#line 652 "./uninorm/composition-table.gperf" + {"\037\000\003\001", 0x1f04}, +#line 650 "./uninorm/composition-table.gperf" + {"\037\000\003\000", 0x1f02}, +#line 654 "./uninorm/composition-table.gperf" + {"\037\000\003B", 0x1f06}, +#line 433 "./uninorm/composition-table.gperf" + {"\000F\003\007", 0x1e1e}, +#line 851 "./uninorm/composition-table.gperf" + {"\003\316\003E", 0x1ff4}, +#line 757 "./uninorm/composition-table.gperf" + {"\037\002\003E", 0x1f82}, +#line 756 "./uninorm/composition-table.gperf" + {"\037\001\003E", 0x1f81}, +#line 480 "./uninorm/composition-table.gperf" + {"\000\365\003\001", 0x1e4d}, +#line 758 "./uninorm/composition-table.gperf" + {"\037\003\003E", 0x1f83}, +#line 763 "./uninorm/composition-table.gperf" + {"\037\010\003E", 0x1f88}, +#line 809 "./uninorm/composition-table.gperf" + {"\037\266\003E", 0x1fb7}, +#line 506 "./uninorm/composition-table.gperf" + {"\001a\003\007", 0x1e67}, +#line 755 "./uninorm/composition-table.gperf" + {"\037\000\003E", 0x1f80}, +#line 58 "./uninorm/composition-table.gperf" + {"\000a\003\001", 0x00e1}, +#line 57 "./uninorm/composition-table.gperf" + {"\000a\003\000", 0x00e0}, +#line 817 "./uninorm/composition-table.gperf" + {"\003\256\003E", 0x1fc4}, +#line 59 "./uninorm/composition-table.gperf" + {"\000a\003\002", 0x00e2}, +#line 270 "./uninorm/composition-table.gperf" + {"\000a\003\007", 0x0227}, +#line 778 "./uninorm/composition-table.gperf" + {"\037'\003E", 0x1f97}, +#line 737 "./uninorm/composition-table.gperf" + {"\037a\003\001", 0x1f65}, +#line 735 "./uninorm/composition-table.gperf" + {"\037a\003\000", 0x1f63}, +#line 739 "./uninorm/composition-table.gperf" + {"\037a\003B", 0x1f67}, +#line 807 "./uninorm/composition-table.gperf" + {"\003\254\003E", 0x1fb4}, +#line 524 "./uninorm/composition-table.gperf" + {"\001i\003\001", 0x1e79}, +#line 206 "./uninorm/composition-table.gperf" + {"\000\334\003\001", 0x01d7}, +#line 210 "./uninorm/composition-table.gperf" + {"\000\334\003\000", 0x01db}, +#line 661 "./uninorm/composition-table.gperf" + {"\037\011\003\001", 0x1f0d}, +#line 659 "./uninorm/composition-table.gperf" + {"\037\011\003\000", 0x1f0b}, +#line 663 "./uninorm/composition-table.gperf" + {"\037\011\003B", 0x1f0f}, +#line 69 "./uninorm/composition-table.gperf" + {"\000i\003\001", 0x00ed}, +#line 68 "./uninorm/composition-table.gperf" + {"\000i\003\000", 0x00ec}, +#line 788 "./uninorm/composition-table.gperf" + {"\037a\003E", 0x1fa1}, +#line 70 "./uninorm/composition-table.gperf" + {"\000i\003\002", 0x00ee}, +#line 288 "./uninorm/composition-table.gperf" + {"\003\237\003\001", 0x038c}, +#line 854 "./uninorm/composition-table.gperf" + {"\003\237\003\000", 0x1ff8}, +#line 745 "./uninorm/composition-table.gperf" + {"\037i\003\001", 0x1f6d}, +#line 743 "./uninorm/composition-table.gperf" + {"\037i\003\000", 0x1f6b}, +#line 747 "./uninorm/composition-table.gperf" + {"\037i\003B", 0x1f6f}, +#line 764 "./uninorm/composition-table.gperf" + {"\037\011\003E", 0x1f89}, +#line 578 "./uninorm/composition-table.gperf" + {"\001\002\003\003", 0x1eb4}, +#line 482 "./uninorm/composition-table.gperf" + {"\000\365\003\010", 0x1e4f}, +#line 450 "./uninorm/composition-table.gperf" + {"\000\357\003\001", 0x1e2f}, +#line 579 "./uninorm/composition-table.gperf" + {"\001\003\003\003", 0x1eb5}, +#line 705 "./uninorm/composition-table.gperf" + {"\0379\003\001", 0x1f3d}, +#line 703 "./uninorm/composition-table.gperf" + {"\0379\003\000", 0x1f3b}, +#line 707 "./uninorm/composition-table.gperf" + {"\0379\003B", 0x1f3f}, +#line 61 "./uninorm/composition-table.gperf" + {"\000a\003\010", 0x00e4}, +#line 796 "./uninorm/composition-table.gperf" + {"\037i\003E", 0x1fa9}, +#line 43 "./uninorm/composition-table.gperf" + {"\000I\003\001", 0x00cd}, +#line 42 "./uninorm/composition-table.gperf" + {"\000I\003\000", 0x00cc}, +#line 783 "./uninorm/composition-table.gperf" + {"\037,\003E", 0x1f9c}, +#line 44 "./uninorm/composition-table.gperf" + {"\000I\003\002", 0x00ce}, +#line 128 "./uninorm/composition-table.gperf" + {"\000I\003\007", 0x0130}, +#line 317 "./uninorm/composition-table.gperf" + {"\0043\003\001", 0x0453}, +#line 719 "./uninorm/composition-table.gperf" + {"\037I\003\001", 0x1f4d}, +#line 717 "./uninorm/composition-table.gperf" + {"\037I\003\000", 0x1f4b}, +#line 319 "./uninorm/composition-table.gperf" + {"\004:\003\001", 0x045c}, +#line 528 "./uninorm/composition-table.gperf" + {"\000v\003\003", 0x1e7d}, +#line 689 "./uninorm/composition-table.gperf" + {"\037)\003\001", 0x1f2d}, +#line 687 "./uninorm/composition-table.gperf" + {"\037)\003\000", 0x1f2b}, +#line 691 "./uninorm/composition-table.gperf" + {"\037)\003B", 0x1f2f}, +#line 853 "./uninorm/composition-table.gperf" + {"\037\366\003E", 0x1ff7}, +#line 71 "./uninorm/composition-table.gperf" + {"\000i\003\010", 0x00ef}, +#line 759 "./uninorm/composition-table.gperf" + {"\037\004\003E", 0x1f84}, +#line 835 "./uninorm/composition-table.gperf" + {"\037\376\003\001", 0x1fde}, +#line 834 "./uninorm/composition-table.gperf" + {"\037\376\003\000", 0x1fdd}, +#line 836 "./uninorm/composition-table.gperf" + {"\037\376\003B", 0x1fdf}, +#line 762 "./uninorm/composition-table.gperf" + {"\037\007\003E", 0x1f87}, +#line 712 "./uninorm/composition-table.gperf" + {"\037@\003\001", 0x1f44}, +#line 710 "./uninorm/composition-table.gperf" + {"\037@\003\000", 0x1f42}, +#line 780 "./uninorm/composition-table.gperf" + {"\037)\003E", 0x1f99}, +#line 60 "./uninorm/composition-table.gperf" + {"\000a\003\003", 0x00e3}, +#line 345 "./uninorm/composition-table.gperf" + {"\004\351\003\010", 0x04eb}, +#line 351 "./uninorm/composition-table.gperf" + {"\004C\003\010", 0x04f1}, +#line 449 "./uninorm/composition-table.gperf" + {"\000\317\003\001", 0x1e2e}, +#line 87 "./uninorm/composition-table.gperf" + {"\000a\003\006", 0x0103}, +#line 32 "./uninorm/composition-table.gperf" + {"\000A\003\001", 0x00c1}, +#line 31 "./uninorm/composition-table.gperf" + {"\000A\003\000", 0x00c0}, +#line 89 "./uninorm/composition-table.gperf" + {"\000a\003(", 0x0105}, +#line 33 "./uninorm/composition-table.gperf" + {"\000A\003\002", 0x00c2}, +#line 269 "./uninorm/composition-table.gperf" + {"\000A\003\007", 0x0226}, +#line 45 "./uninorm/composition-table.gperf" + {"\000I\003\010", 0x00cf}, +#line 713 "./uninorm/composition-table.gperf" + {"\037A\003\001", 0x1f45}, +#line 711 "./uninorm/composition-table.gperf" + {"\037A\003\000", 0x1f43}, +#line 354 "./uninorm/composition-table.gperf" + {"\004'\003\010", 0x04f4}, +#line 65 "./uninorm/composition-table.gperf" + {"\000e\003\001", 0x00e9}, +#line 64 "./uninorm/composition-table.gperf" + {"\000e\003\000", 0x00e8}, +#line 121 "./uninorm/composition-table.gperf" + {"\000i\003\003", 0x0129}, +#line 66 "./uninorm/composition-table.gperf" + {"\000e\003\002", 0x00ea}, +#line 105 "./uninorm/composition-table.gperf" + {"\000e\003\007", 0x0117}, +#line 344 "./uninorm/composition-table.gperf" + {"\004\350\003\010", 0x04ea}, +#line 125 "./uninorm/composition-table.gperf" + {"\000i\003\006", 0x012d}, +#line 714 "./uninorm/composition-table.gperf" + {"\003\237\003\023", 0x1f48}, +#line 615 "./uninorm/composition-table.gperf" + {"\036\315\003\002", 0x1ed9}, +#line 127 "./uninorm/composition-table.gperf" + {"\000i\003(", 0x012f}, +#line 368 "./uninorm/composition-table.gperf" + {"\0113\011<", 0x0934}, +#line 668 "./uninorm/composition-table.gperf" + {"\037\020\003\001", 0x1f14}, +#line 666 "./uninorm/composition-table.gperf" + {"\037\020\003\000", 0x1f12}, +#line 576 "./uninorm/composition-table.gperf" + {"\001\002\003\011", 0x1eb2}, +#line 675 "./uninorm/composition-table.gperf" + {"\037\031\003\001", 0x1f1d}, +#line 673 "./uninorm/composition-table.gperf" + {"\037\031\003\000", 0x1f1b}, +#line 577 "./uninorm/composition-table.gperf" + {"\001\003\003\011", 0x1eb3}, +#line 321 "./uninorm/composition-table.gperf" + {"\004C\003\006", 0x045e}, +#line 792 "./uninorm/composition-table.gperf" + {"\037e\003E", 0x1fa5}, +#line 872 "./uninorm/composition-table.gperf" + {"\000=\0038", 0x2260}, +#line 614 "./uninorm/composition-table.gperf" + {"\036\314\003\002", 0x1ed8}, +#line 120 "./uninorm/composition-table.gperf" + {"\000I\003\003", 0x0128}, +#line 432 "./uninorm/composition-table.gperf" + {"\002)\003\006", 0x1e1d}, +#line 596 "./uninorm/composition-table.gperf" + {"\036\270\003\002", 0x1ec6}, +#line 35 "./uninorm/composition-table.gperf" + {"\000A\003\010", 0x00c4}, +#line 124 "./uninorm/composition-table.gperf" + {"\000I\003\006", 0x012c}, +#line 74 "./uninorm/composition-table.gperf" + {"\000o\003\001", 0x00f3}, +#line 73 "./uninorm/composition-table.gperf" + {"\000o\003\000", 0x00f2}, +#line 126 "./uninorm/composition-table.gperf" + {"\000I\003(", 0x012e}, +#line 75 "./uninorm/composition-table.gperf" + {"\000o\003\002", 0x00f4}, +#line 278 "./uninorm/composition-table.gperf" + {"\000o\003\007", 0x022f}, +#line 240 "./uninorm/composition-table.gperf" + {"\000a\003\017", 0x0201}, +#line 225 "./uninorm/composition-table.gperf" + {"\001\353\003\004", 0x01ed}, +#line 67 "./uninorm/composition-table.gperf" + {"\000e\003\010", 0x00eb}, +#line 217 "./uninorm/composition-table.gperf" + {"\000\346\003\004", 0x01e3}, +#line 79 "./uninorm/composition-table.gperf" + {"\000u\003\001", 0x00fa}, +#line 78 "./uninorm/composition-table.gperf" + {"\000u\003\000", 0x00f9}, +#line 765 "./uninorm/composition-table.gperf" + {"\037\012\003E", 0x1f8a}, +#line 80 "./uninorm/composition-table.gperf" + {"\000u\003\002", 0x00fb}, +#line 96 "./uninorm/composition-table.gperf" + {"\000C\003\014", 0x010c}, +#line 215 "./uninorm/composition-table.gperf" + {"\002'\003\004", 0x01e1}, +#line 696 "./uninorm/composition-table.gperf" + {"\0370\003\001", 0x1f34}, +#line 694 "./uninorm/composition-table.gperf" + {"\0370\003\000", 0x1f32}, +#line 698 "./uninorm/composition-table.gperf" + {"\0370\003B", 0x1f36}, +#line 802 "./uninorm/composition-table.gperf" + {"\037o\003E", 0x1faf}, +#line 561 "./uninorm/composition-table.gperf" + {"\000a\003\011", 0x1ea3}, +#line 335 "./uninorm/composition-table.gperf" + {"\0046\003\010", 0x04dd}, +#line 248 "./uninorm/composition-table.gperf" + {"\000i\003\017", 0x0209}, +#line 273 "./uninorm/composition-table.gperf" + {"\000\326\003\004", 0x022a}, +#line 34 "./uninorm/composition-table.gperf" + {"\000A\003\003", 0x00c3}, +#line 213 "./uninorm/composition-table.gperf" + {"\000\344\003\004", 0x01df}, +#line 333 "./uninorm/composition-table.gperf" + {"\004\331\003\010", 0x04db}, +#line 760 "./uninorm/composition-table.gperf" + {"\037\005\003E", 0x1f85}, +#line 86 "./uninorm/composition-table.gperf" + {"\000A\003\006", 0x0102}, +#line 276 "./uninorm/composition-table.gperf" + {"\000\365\003\004", 0x022d}, +#line 768 "./uninorm/composition-table.gperf" + {"\037\015\003E", 0x1f8d}, +#line 88 "./uninorm/composition-table.gperf" + {"\000A\003(", 0x0104}, +#line 781 "./uninorm/composition-table.gperf" + {"\037*\003E", 0x1f9a}, +#line 587 "./uninorm/composition-table.gperf" + {"\000e\003\003", 0x1ebd}, +#line 77 "./uninorm/composition-table.gperf" + {"\000o\003\010", 0x00f6}, +#line 85 "./uninorm/composition-table.gperf" + {"\000a\003\004", 0x0101}, +#line 599 "./uninorm/composition-table.gperf" + {"\000i\003\011", 0x1ec9}, +#line 103 "./uninorm/composition-table.gperf" + {"\000e\003\006", 0x0115}, +#line 197 "./uninorm/composition-table.gperf" + {"\000a\003\014", 0x01ce}, +#line 784 "./uninorm/composition-table.gperf" + {"\037-\003E", 0x1f9d}, +#line 107 "./uninorm/composition-table.gperf" + {"\000e\003(", 0x0119}, +#line 247 "./uninorm/composition-table.gperf" + {"\000I\003\017", 0x0208}, +#line 782 "./uninorm/composition-table.gperf" + {"\037+\003E", 0x1f9b}, +#line 81 "./uninorm/composition-table.gperf" + {"\000u\003\010", 0x00fc}, +#line 39 "./uninorm/composition-table.gperf" + {"\000E\003\001", 0x00c9}, +#line 38 "./uninorm/composition-table.gperf" + {"\000E\003\000", 0x00c8}, +#line 204 "./uninorm/composition-table.gperf" + {"\000\334\003\004", 0x01d5}, +#line 40 "./uninorm/composition-table.gperf" + {"\000E\003\002", 0x00ca}, +#line 104 "./uninorm/composition-table.gperf" + {"\000E\003\007", 0x0116}, +#line 208 "./uninorm/composition-table.gperf" + {"\000\334\003\014", 0x01d9}, +#line 325 "./uninorm/composition-table.gperf" + {"\0046\003\006", 0x04c2}, +#line 123 "./uninorm/composition-table.gperf" + {"\000i\003\004", 0x012b}, +#line 342 "./uninorm/composition-table.gperf" + {"\004\036\003\010", 0x04e6}, +#line 849 "./uninorm/composition-table.gperf" + {"\037|\003E", 0x1ff2}, +#line 199 "./uninorm/composition-table.gperf" + {"\000i\003\014", 0x01d0}, +#line 598 "./uninorm/composition-table.gperf" + {"\000I\003\011", 0x1ec8}, +#line 337 "./uninorm/composition-table.gperf" + {"\0047\003\010", 0x04df}, +#line 48 "./uninorm/composition-table.gperf" + {"\000O\003\001", 0x00d3}, +#line 47 "./uninorm/composition-table.gperf" + {"\000O\003\000", 0x00d2}, +#line 76 "./uninorm/composition-table.gperf" + {"\000o\003\003", 0x00f5}, +#line 49 "./uninorm/composition-table.gperf" + {"\000O\003\002", 0x00d4}, +#line 277 "./uninorm/composition-table.gperf" + {"\000O\003\007", 0x022e}, +#line 349 "./uninorm/composition-table.gperf" + {"\004C\003\004", 0x04ef}, +#line 148 "./uninorm/composition-table.gperf" + {"\000o\003\006", 0x014f}, +#line 328 "./uninorm/composition-table.gperf" + {"\004\020\003\010", 0x04d2}, +#line 274 "./uninorm/composition-table.gperf" + {"\000\366\003\004", 0x022b}, +#line 223 "./uninorm/composition-table.gperf" + {"\000o\003(", 0x01eb}, +#line 932 "./uninorm/composition-table.gperf" + {"0\2630\231", 0x30b4}, +#line 170 "./uninorm/composition-table.gperf" + {"\000u\003\003", 0x0169}, +#line 239 "./uninorm/composition-table.gperf" + {"\000A\003\017", 0x0200}, +#line 122 "./uninorm/composition-table.gperf" + {"\000I\003\004", 0x012a}, +#line 924 "./uninorm/composition-table.gperf" + {"0{0\231", 0x307c}, +#line 174 "./uninorm/composition-table.gperf" + {"\000u\003\006", 0x016d}, +#line 198 "./uninorm/composition-table.gperf" + {"\000I\003\014", 0x01cf}, +#line 926 "./uninorm/composition-table.gperf" + {"0F0\231", 0x3094}, +#line 180 "./uninorm/composition-table.gperf" + {"\000u\003(", 0x0173}, +#line 958 "./uninorm/composition-table.gperf" + {"0\3750\231", 0x30fe}, +#line 41 "./uninorm/composition-table.gperf" + {"\000E\003\010", 0x00cb}, +#line 244 "./uninorm/composition-table.gperf" + {"\000e\003\017", 0x0205}, +#line 53 "./uninorm/composition-table.gperf" + {"\000U\003\001", 0x00da}, +#line 52 "./uninorm/composition-table.gperf" + {"\000U\003\000", 0x00d9}, +#line 530 "./uninorm/composition-table.gperf" + {"\000v\003#", 0x1e7f}, +#line 54 "./uninorm/composition-table.gperf" + {"\000U\003\002", 0x00db}, +#line 560 "./uninorm/composition-table.gperf" + {"\000A\003\011", 0x1ea2}, +#line 298 "./uninorm/composition-table.gperf" + {"\003\313\003\001", 0x03b0}, +#line 839 "./uninorm/composition-table.gperf" + {"\003\313\003\000", 0x1fe2}, +#line 843 "./uninorm/composition-table.gperf" + {"\003\313\003B", 0x1fe7}, +#line 775 "./uninorm/composition-table.gperf" + {"\037$\003E", 0x1f94}, +#line 912 "./uninorm/composition-table.gperf" + {"0a0\231", 0x3062}, +#line 957 "./uninorm/composition-table.gperf" + {"0\3620\231", 0x30fa}, +#line 51 "./uninorm/composition-table.gperf" + {"\000O\003\010", 0x00d6}, +#line 388 "./uninorm/composition-table.gperf" + {"\015\331\015\317", 0x0ddc}, +#line 585 "./uninorm/composition-table.gperf" + {"\000e\003\011", 0x1ebb}, +#line 326 "./uninorm/composition-table.gperf" + {"\004\020\003\006", 0x04d0}, +#line 329 "./uninorm/composition-table.gperf" + {"\0040\003\010", 0x04d3}, +#line 559 "./uninorm/composition-table.gperf" + {"\000a\003#", 0x1ea1}, +#line 82 "./uninorm/composition-table.gperf" + {"\000y\003\001", 0x00fd}, +#line 641 "./uninorm/composition-table.gperf" + {"\000y\003\000", 0x1ef3}, +#line 84 "./uninorm/composition-table.gperf" + {"\000A\003\004", 0x0100}, +#line 184 "./uninorm/composition-table.gperf" + {"\000y\003\002", 0x0177}, +#line 546 "./uninorm/composition-table.gperf" + {"\000y\003\007", 0x1e8f}, +#line 196 "./uninorm/composition-table.gperf" + {"\000A\003\014", 0x01cd}, +#line 586 "./uninorm/composition-table.gperf" + {"\000E\003\003", 0x1ebc}, +#line 367 "./uninorm/composition-table.gperf" + {"\0110\011<", 0x0931}, +#line 252 "./uninorm/composition-table.gperf" + {"\000o\003\017", 0x020d}, +#line 346 "./uninorm/composition-table.gperf" + {"\004-\003\010", 0x04ec}, +#line 102 "./uninorm/composition-table.gperf" + {"\000E\003\006", 0x0114}, +#line 101 "./uninorm/composition-table.gperf" + {"\000e\003\004", 0x0113}, +#line 356 "./uninorm/composition-table.gperf" + {"\004+\003\010", 0x04f8}, +#line 106 "./uninorm/composition-table.gperf" + {"\000E\003(", 0x0118}, +#line 109 "./uninorm/composition-table.gperf" + {"\000e\003\014", 0x011b}, +#line 601 "./uninorm/composition-table.gperf" + {"\000i\003#", 0x1ecb}, +#line 55 "./uninorm/composition-table.gperf" + {"\000U\003\010", 0x00dc}, +#line 260 "./uninorm/composition-table.gperf" + {"\000u\003\017", 0x0215}, +#line 227 "./uninorm/composition-table.gperf" + {"\002\222\003\014", 0x01ef}, +#line 50 "./uninorm/composition-table.gperf" + {"\000O\003\003", 0x00d5}, +#line 954 "./uninorm/composition-table.gperf" + {"0\3570\231", 0x30f7}, +#line 510 "./uninorm/composition-table.gperf" + {"\000t\003\007", 0x1e6b}, +#line 605 "./uninorm/composition-table.gperf" + {"\000o\003\011", 0x1ecf}, +#line 147 "./uninorm/composition-table.gperf" + {"\000O\003\006", 0x014e}, +#line 425 "./uninorm/composition-table.gperf" + {"\001\022\003\001", 0x1e16}, +#line 423 "./uninorm/composition-table.gperf" + {"\001\022\003\000", 0x1e14}, +#line 222 "./uninorm/composition-table.gperf" + {"\000O\003(", 0x01ea}, +#line 327 "./uninorm/composition-table.gperf" + {"\0040\003\006", 0x04d1}, +#line 928 "./uninorm/composition-table.gperf" + {"0\2530\231", 0x30ac}, +#line 876 "./uninorm/composition-table.gperf" + {"\000>\0038", 0x226f}, +#line 266 "./uninorm/composition-table.gperf" + {"\000t\003&", 0x021b}, +#line 629 "./uninorm/composition-table.gperf" + {"\000u\003\011", 0x1ee7}, +#line 152 "./uninorm/composition-table.gperf" + {"\000r\003\001", 0x0155}, +#line 83 "./uninorm/composition-table.gperf" + {"\000y\003\010", 0x00ff}, +#line 600 "./uninorm/composition-table.gperf" + {"\000I\003#", 0x1eca}, +#line 815 "./uninorm/composition-table.gperf" + {"\037t\003E", 0x1fc2}, +#line 492 "./uninorm/composition-table.gperf" + {"\000r\003\007", 0x1e59}, +#line 146 "./uninorm/composition-table.gperf" + {"\000o\003\004", 0x014d}, +#line 434 "./uninorm/composition-table.gperf" + {"\000f\003\007", 0x1e1f}, +#line 761 "./uninorm/composition-table.gperf" + {"\037\006\003E", 0x1f86}, +#line 201 "./uninorm/composition-table.gperf" + {"\000o\003\014", 0x01d2}, +#line 169 "./uninorm/composition-table.gperf" + {"\000U\003\003", 0x0168}, +#line 956 "./uninorm/composition-table.gperf" + {"0\3610\231", 0x30f9}, +#line 140 "./uninorm/composition-table.gperf" + {"\000n\003\001", 0x0144}, +#line 232 "./uninorm/composition-table.gperf" + {"\000n\003\000", 0x01f9}, +#line 173 "./uninorm/composition-table.gperf" + {"\000U\003\006", 0x016c}, +#line 172 "./uninorm/composition-table.gperf" + {"\000u\003\004", 0x016b}, +#line 472 "./uninorm/composition-table.gperf" + {"\000n\003\007", 0x1e45}, +#line 179 "./uninorm/composition-table.gperf" + {"\000U\003(", 0x0172}, +#line 203 "./uninorm/composition-table.gperf" + {"\000u\003\014", 0x01d4}, +#line 554 "./uninorm/composition-table.gperf" + {"\000t\003\010", 0x1e97}, +#line 243 "./uninorm/composition-table.gperf" + {"\000E\003\017", 0x0204}, +#line 793 "./uninorm/composition-table.gperf" + {"\037f\003E", 0x1fa6}, +#line 943 "./uninorm/composition-table.gperf" + {"0\3170\231", 0x30d0}, +#line 785 "./uninorm/composition-table.gperf" + {"\037.\003E", 0x1f9e}, +#line 414 "./uninorm/composition-table.gperf" + {"\000d\003\007", 0x1e0b}, +#line 242 "./uninorm/composition-table.gperf" + {"\000a\003\021", 0x0203}, +#line 459 "./uninorm/composition-table.gperf" + {"\0366\003\004", 0x1e38}, +#line 647 "./uninorm/composition-table.gperf" + {"\000y\003\003", 0x1ef9}, +#line 426 "./uninorm/composition-table.gperf" + {"\001\023\003\001", 0x1e17}, +#line 424 "./uninorm/composition-table.gperf" + {"\001\023\003\000", 0x1e15}, +#line 801 "./uninorm/composition-table.gperf" + {"\037n\003E", 0x1fae}, +#line 558 "./uninorm/composition-table.gperf" + {"\000A\003#", 0x1ea0}, +#line 343 "./uninorm/composition-table.gperf" + {"\004>\003\010", 0x04e7}, +#line 251 "./uninorm/composition-table.gperf" + {"\000O\003\017", 0x020c}, +#line 584 "./uninorm/composition-table.gperf" + {"\000E\003\011", 0x1eba}, +#line 955 "./uninorm/composition-table.gperf" + {"0\3600\231", 0x30f8}, +#line 766 "./uninorm/composition-table.gperf" + {"\037\013\003E", 0x1f8b}, +#line 323 "./uninorm/composition-table.gperf" + {"\004u\003\017", 0x0477}, +#line 791 "./uninorm/composition-table.gperf" + {"\037d\003E", 0x1fa4}, +#line 875 "./uninorm/composition-table.gperf" + {"\000<\0038", 0x226e}, +#line 583 "./uninorm/composition-table.gperf" + {"\000e\003#", 0x1eb9}, +#line 250 "./uninorm/composition-table.gperf" + {"\000i\003\021", 0x020b}, +#line 118 "./uninorm/composition-table.gperf" + {"\000H\003\002", 0x0124}, +#line 437 "./uninorm/composition-table.gperf" + {"\000H\003\007", 0x1e22}, +#line 62 "./uninorm/composition-table.gperf" + {"\000a\003\012", 0x00e5}, +#line 718 "./uninorm/composition-table.gperf" + {"\037H\003\001", 0x1f4c}, +#line 716 "./uninorm/composition-table.gperf" + {"\037H\003\000", 0x1f4a}, +#line 604 "./uninorm/composition-table.gperf" + {"\000O\003\011", 0x1ece}, +#line 390 "./uninorm/composition-table.gperf" + {"\015\331\015\337", 0x0dde}, +#line 100 "./uninorm/composition-table.gperf" + {"\000E\003\004", 0x0112}, +#line 56 "./uninorm/composition-table.gperf" + {"\000Y\003\001", 0x00dd}, +#line 640 "./uninorm/composition-table.gperf" + {"\000Y\003\000", 0x1ef2}, +#line 108 "./uninorm/composition-table.gperf" + {"\000E\003\014", 0x011a}, +#line 183 "./uninorm/composition-table.gperf" + {"\000Y\003\002", 0x0176}, +#line 545 "./uninorm/composition-table.gperf" + {"\000Y\003\007", 0x1e8e}, +#line 259 "./uninorm/composition-table.gperf" + {"\000U\003\017", 0x0214}, +#line 730 "./uninorm/composition-table.gperf" + {"\037Y\003\001", 0x1f5d}, +#line 729 "./uninorm/composition-table.gperf" + {"\037Y\003\000", 0x1f5b}, +#line 731 "./uninorm/composition-table.gperf" + {"\037Y\003B", 0x1f5f}, +#line 916 "./uninorm/composition-table.gperf" + {"0o0\231", 0x3070}, +#line 249 "./uninorm/composition-table.gperf" + {"\000I\003\021", 0x020a}, +#line 460 "./uninorm/composition-table.gperf" + {"\0367\003\004", 0x1e39}, +#line 145 "./uninorm/composition-table.gperf" + {"\000O\003\004", 0x014c}, +#line 479 "./uninorm/composition-table.gperf" + {"\000\325\003\001", 0x1e4c}, +#line 451 "./uninorm/composition-table.gperf" + {"\000K\003\001", 0x1e30}, +#line 200 "./uninorm/composition-table.gperf" + {"\000O\003\014", 0x01d1}, +#line 603 "./uninorm/composition-table.gperf" + {"\000o\003#", 0x1ecd}, +#line 523 "./uninorm/composition-table.gperf" + {"\001h\003\001", 0x1e78}, +#line 920 "./uninorm/composition-table.gperf" + {"0u0\231", 0x3076}, +#line 628 "./uninorm/composition-table.gperf" + {"\000U\003\011", 0x1ee6}, +#line 72 "./uninorm/composition-table.gperf" + {"\000n\003\003", 0x00f1}, +#line 942 "./uninorm/composition-table.gperf" + {"0\3100\231", 0x30c9}, +#line 441 "./uninorm/composition-table.gperf" + {"\000H\003\010", 0x1e26}, +#line 937 "./uninorm/composition-table.gperf" + {"0\2750\231", 0x30be}, +#line 309 "./uninorm/composition-table.gperf" + {"\004\006\003\010", 0x0407}, +#line 627 "./uninorm/composition-table.gperf" + {"\000u\003#", 0x1ee5}, +#line 119 "./uninorm/composition-table.gperf" + {"\000h\003\002", 0x0125}, +#line 438 "./uninorm/composition-table.gperf" + {"\000h\003\007", 0x1e23}, +#line 405 "./uninorm/composition-table.gperf" + {"\000B\003\007", 0x1e02}, +#line 744 "./uninorm/composition-table.gperf" + {"\037h\003\001", 0x1f6c}, +#line 742 "./uninorm/composition-table.gperf" + {"\037h\003\000", 0x1f6a}, +#line 746 "./uninorm/composition-table.gperf" + {"\037h\003B", 0x1f6e}, +#line 936 "./uninorm/composition-table.gperf" + {"0\2730\231", 0x30bc}, +#line 185 "./uninorm/composition-table.gperf" + {"\000Y\003\010", 0x0178}, +#line 171 "./uninorm/composition-table.gperf" + {"\000U\003\004", 0x016a}, +#line 308 "./uninorm/composition-table.gperf" + {"\004\023\003\001", 0x0403}, +#line 645 "./uninorm/composition-table.gperf" + {"\000y\003\011", 0x1ef7}, +#line 202 "./uninorm/composition-table.gperf" + {"\000U\003\014", 0x01d3}, +#line 241 "./uninorm/composition-table.gperf" + {"\000A\003\021", 0x0202}, +#line 37 "./uninorm/composition-table.gperf" + {"\000C\003'", 0x00c7}, +#line 773 "./uninorm/composition-table.gperf" + {"\037\"\003E", 0x1f92}, +#line 795 "./uninorm/composition-table.gperf" + {"\037h\003E", 0x1fa8}, +#line 411 "./uninorm/composition-table.gperf" + {"\000\307\003\001", 0x1e08}, +#line 688 "./uninorm/composition-table.gperf" + {"\037(\003\001", 0x1f2c}, +#line 686 "./uninorm/composition-table.gperf" + {"\037(\003\000", 0x1f2a}, +#line 690 "./uninorm/composition-table.gperf" + {"\037(\003B", 0x1f2e}, +#line 481 "./uninorm/composition-table.gperf" + {"\000\325\003\010", 0x1e4e}, +#line 246 "./uninorm/composition-table.gperf" + {"\000e\003\021", 0x0207}, +#line 697 "./uninorm/composition-table.gperf" + {"\0371\003\001", 0x1f35}, +#line 695 "./uninorm/composition-table.gperf" + {"\0371\003\000", 0x1f33}, +#line 699 "./uninorm/composition-table.gperf" + {"\0371\003B", 0x1f37}, +#line 282 "./uninorm/composition-table.gperf" + {"\000y\003\004", 0x0233}, +#line 304 "./uninorm/composition-table.gperf" + {"\003\322\003\001", 0x03d3}, +#line 428 "./uninorm/composition-table.gperf" + {"\000e\003-", 0x1e19}, +#line 256 "./uninorm/composition-table.gperf" + {"\000r\003\017", 0x0211}, +#line 779 "./uninorm/composition-table.gperf" + {"\037(\003E", 0x1f98}, +#line 442 "./uninorm/composition-table.gperf" + {"\000h\003\010", 0x1e27}, +#line 36 "./uninorm/composition-table.gperf" + {"\000A\003\012", 0x00c5}, +#line 646 "./uninorm/composition-table.gperf" + {"\000Y\003\003", 0x1ef8}, +#line 582 "./uninorm/composition-table.gperf" + {"\000E\003#", 0x1eb8}, +#line 533 "./uninorm/composition-table.gperf" + {"\000W\003\001", 0x1e82}, +#line 531 "./uninorm/composition-table.gperf" + {"\000W\003\000", 0x1e80}, +#line 151 "./uninorm/composition-table.gperf" + {"\000R\003\001", 0x0154}, +#line 181 "./uninorm/composition-table.gperf" + {"\000W\003\002", 0x0174}, +#line 537 "./uninorm/composition-table.gperf" + {"\000W\003\007", 0x1e86}, +#line 903 "./uninorm/composition-table.gperf" + {"0O0\231", 0x3050}, +#line 491 "./uninorm/composition-table.gperf" + {"\000R\003\007", 0x1e58}, +#line 869 "./uninorm/composition-table.gperf" + {"\"C\0038", 0x2244}, +#line 863 "./uninorm/composition-table.gperf" + {"\"\003\0038", 0x2204}, +#line 864 "./uninorm/composition-table.gperf" + {"\"\010\0038", 0x2209}, +#line 898 "./uninorm/composition-table.gperf" + {"\"\263\0038", 0x22eb}, +#line 168 "./uninorm/composition-table.gperf" + {"\000t\003\014", 0x0165}, +#line 602 "./uninorm/composition-table.gperf" + {"\000O\003#", 0x1ecc}, +#line 254 "./uninorm/composition-table.gperf" + {"\000o\003\021", 0x020f}, +#line 884 "./uninorm/composition-table.gperf" + {"\"{\0038", 0x2281}, +#line 229 "./uninorm/composition-table.gperf" + {"\000G\003\001", 0x01f4}, +#line 389 "./uninorm/composition-table.gperf" + {"\015\334\015\312", 0x0ddd}, +#line 881 "./uninorm/composition-table.gperf" + {"\"v\0038", 0x2278}, +#line 110 "./uninorm/composition-table.gperf" + {"\000G\003\002", 0x011c}, +#line 114 "./uninorm/composition-table.gperf" + {"\000G\003\007", 0x0120}, +#line 279 "./uninorm/composition-table.gperf" + {"\002.\003\004", 0x0230}, +#line 899 "./uninorm/composition-table.gperf" + {"\"\264\0038", 0x22ec}, +#line 262 "./uninorm/composition-table.gperf" + {"\000u\003\021", 0x0217}, +#line 715 "./uninorm/composition-table.gperf" + {"\003\237\003\024", 0x1f49}, +#line 448 "./uninorm/composition-table.gperf" + {"\000i\0030", 0x1e2d}, +#line 305 "./uninorm/composition-table.gperf" + {"\003\322\003\010", 0x03d4}, +#line 156 "./uninorm/composition-table.gperf" + {"\000r\003\014", 0x0159}, +#line 906 "./uninorm/composition-table.gperf" + {"0U0\231", 0x3056}, +#line 522 "./uninorm/composition-table.gperf" + {"\000u\003-", 0x1e77}, +#line 306 "./uninorm/composition-table.gperf" + {"\004\025\003\000", 0x0400}, +#line 322 "./uninorm/composition-table.gperf" + {"\004t\003\017", 0x0476}, +#line 873 "./uninorm/composition-table.gperf" + {"\"a\0038", 0x2262}, +#line 431 "./uninorm/composition-table.gperf" + {"\002(\003\006", 0x1e1c}, +#line 535 "./uninorm/composition-table.gperf" + {"\000W\003\010", 0x1e84}, +#line 626 "./uninorm/composition-table.gperf" + {"\000U\003#", 0x1ee4}, +#line 139 "./uninorm/composition-table.gperf" + {"\000N\003\001", 0x0143}, +#line 231 "./uninorm/composition-table.gperf" + {"\000N\003\000", 0x01f8}, +#line 144 "./uninorm/composition-table.gperf" + {"\000n\003\014", 0x0148}, +#line 357 "./uninorm/composition-table.gperf" + {"\004K\003\010", 0x04f9}, +#line 471 "./uninorm/composition-table.gperf" + {"\000N\003\007", 0x1e44}, +#line 129 "./uninorm/composition-table.gperf" + {"\000J\003\002", 0x0134}, +#line 176 "./uninorm/composition-table.gperf" + {"\000u\003\012", 0x016f}, +#line 897 "./uninorm/composition-table.gperf" + {"\"\262\0038", 0x22ea}, +#line 447 "./uninorm/composition-table.gperf" + {"\000I\0030", 0x1e2c}, +#line 387 "./uninorm/composition-table.gperf" + {"\015\331\015\312", 0x0dda}, +#line 99 "./uninorm/composition-table.gperf" + {"\000d\003\014", 0x010f}, +#line 534 "./uninorm/composition-table.gperf" + {"\000w\003\001", 0x1e83}, +#line 532 "./uninorm/composition-table.gperf" + {"\000w\003\000", 0x1e81}, +#line 514 "./uninorm/composition-table.gperf" + {"\000t\0031", 0x1e6f}, +#line 182 "./uninorm/composition-table.gperf" + {"\000w\003\002", 0x0175}, +#line 538 "./uninorm/composition-table.gperf" + {"\000w\003\007", 0x1e87}, +#line 643 "./uninorm/composition-table.gperf" + {"\000y\003#", 0x1ef5}, +#line 295 "./uninorm/composition-table.gperf" + {"\003\265\003\001", 0x03ad}, +#line 749 "./uninorm/composition-table.gperf" + {"\003\265\003\000", 0x1f72}, +#line 929 "./uninorm/composition-table.gperf" + {"0\2550\231", 0x30ae}, +#line 230 "./uninorm/composition-table.gperf" + {"\000g\003\001", 0x01f5}, +#line 245 "./uninorm/composition-table.gperf" + {"\000E\003\021", 0x0206}, +#line 644 "./uninorm/composition-table.gperf" + {"\000Y\003\011", 0x1ef6}, +#line 111 "./uninorm/composition-table.gperf" + {"\000g\003\002", 0x011d}, +#line 115 "./uninorm/composition-table.gperf" + {"\000g\003\007", 0x0121}, +#line 953 "./uninorm/composition-table.gperf" + {"0\2460\231", 0x30f4}, +#line 307 "./uninorm/composition-table.gperf" + {"\004\025\003\010", 0x0401}, +#line 427 "./uninorm/composition-table.gperf" + {"\000E\003-", 0x1e18}, +#line 498 "./uninorm/composition-table.gperf" + {"\000r\0031", 0x1e5f}, +#line 267 "./uninorm/composition-table.gperf" + {"\000H\003\014", 0x021e}, +#line 485 "./uninorm/composition-table.gperf" + {"\001L\003\001", 0x1e52}, +#line 483 "./uninorm/composition-table.gperf" + {"\001L\003\000", 0x1e50}, +#line 892 "./uninorm/composition-table.gperf" + {"\"\253\0038", 0x22af}, +#line 512 "./uninorm/composition-table.gperf" + {"\000t\003#", 0x1e6d}, +#line 253 "./uninorm/composition-table.gperf" + {"\000O\003\021", 0x020e}, +#line 366 "./uninorm/composition-table.gperf" + {"\011(\011<", 0x0929}, +#line 133 "./uninorm/composition-table.gperf" + {"\000L\003\001", 0x0139}, +#line 281 "./uninorm/composition-table.gperf" + {"\000Y\003\004", 0x0232}, +#line 794 "./uninorm/composition-table.gperf" + {"\037g\003E", 0x1fa7}, +#line 476 "./uninorm/composition-table.gperf" + {"\000n\0031", 0x1e49}, +#line 272 "./uninorm/composition-table.gperf" + {"\000e\003'", 0x0229}, +#line 918 "./uninorm/composition-table.gperf" + {"0r0\231", 0x3073}, +#line 112 "./uninorm/composition-table.gperf" + {"\000G\003\006", 0x011e}, +#line 914 "./uninorm/composition-table.gperf" + {"0f0\231", 0x3067}, +#line 536 "./uninorm/composition-table.gperf" + {"\000w\003\010", 0x1e85}, +#line 430 "./uninorm/composition-table.gperf" + {"\000e\0030", 0x1e1b}, +#line 951 "./uninorm/composition-table.gperf" + {"0\3330\231", 0x30dc}, +#line 418 "./uninorm/composition-table.gperf" + {"\000d\0031", 0x1e0f}, +#line 494 "./uninorm/composition-table.gperf" + {"\000r\003#", 0x1e5b}, +#line 889 "./uninorm/composition-table.gperf" + {"\"\242\0038", 0x22ac}, +#line 275 "./uninorm/composition-table.gperf" + {"\000\325\003\004", 0x022c}, +#line 486 "./uninorm/composition-table.gperf" + {"\001M\003\001", 0x1e53}, +#line 484 "./uninorm/composition-table.gperf" + {"\001M\003\000", 0x1e51}, +#line 359 "./uninorm/composition-table.gperf" + {"\006'\006T", 0x0623}, +#line 220 "./uninorm/composition-table.gperf" + {"\000K\003\014", 0x01e8}, +#line 330 "./uninorm/composition-table.gperf" + {"\004\025\003\006", 0x04d6}, +#line 261 "./uninorm/composition-table.gperf" + {"\000U\003\021", 0x0216}, +#line 465 "./uninorm/composition-table.gperf" + {"\000M\003\001", 0x1e3e}, +#line 46 "./uninorm/composition-table.gperf" + {"\000N\003\003", 0x00d1}, +#line 474 "./uninorm/composition-table.gperf" + {"\000n\003#", 0x1e47}, +#line 913 "./uninorm/composition-table.gperf" + {"0d0\231", 0x3065}, +#line 467 "./uninorm/composition-table.gperf" + {"\000M\003\007", 0x1e40}, +#line 521 "./uninorm/composition-table.gperf" + {"\000U\003-", 0x1e76}, +#line 268 "./uninorm/composition-table.gperf" + {"\000h\003\014", 0x021f}, +#line 355 "./uninorm/composition-table.gperf" + {"\004G\003\010", 0x04f5}, +#line 509 "./uninorm/composition-table.gperf" + {"\000T\003\007", 0x1e6a}, +#line 212 "./uninorm/composition-table.gperf" + {"\000\304\003\004", 0x01de}, +#line 416 "./uninorm/composition-table.gperf" + {"\000d\003#", 0x1e0d}, +#line 878 "./uninorm/composition-table.gperf" + {"\"e\0038", 0x2271}, +#line 542 "./uninorm/composition-table.gperf" + {"\000x\003\007", 0x1e8b}, +#line 255 "./uninorm/composition-table.gperf" + {"\000R\003\017", 0x0210}, +#line 283 "./uninorm/composition-table.gperf" + {"\000\250\003\001", 0x0385}, +#line 848 "./uninorm/composition-table.gperf" + {"\000\250\003\000", 0x1fed}, +#line 814 "./uninorm/composition-table.gperf" + {"\000\250\003B", 0x1fc1}, +#line 265 "./uninorm/composition-table.gperf" + {"\000T\003&", 0x021a}, +#line 175 "./uninorm/composition-table.gperf" + {"\000U\003\012", 0x016e}, +#line 664 "./uninorm/composition-table.gperf" + {"\003\265\003\023", 0x1f10}, +#line 301 "./uninorm/composition-table.gperf" + {"\003\277\003\001", 0x03cc}, +#line 752 "./uninorm/composition-table.gperf" + {"\003\277\003\000", 0x1f78}, +#line 896 "./uninorm/composition-table.gperf" + {"\"\222\0038", 0x22e3}, +#line 520 "./uninorm/composition-table.gperf" + {"\000u\0030", 0x1e75}, +#line 927 "./uninorm/composition-table.gperf" + {"0\2350\231", 0x309e}, +#line 113 "./uninorm/composition-table.gperf" + {"\000g\003\006", 0x011f}, +#line 297 "./uninorm/composition-table.gperf" + {"\003\271\003\001", 0x03af}, +#line 751 "./uninorm/composition-table.gperf" + {"\003\271\003\000", 0x1f76}, +#line 829 "./uninorm/composition-table.gperf" + {"\003\271\003B", 0x1fd6}, +#line 439 "./uninorm/composition-table.gperf" + {"\000H\003#", 0x1e24}, +#line 824 "./uninorm/composition-table.gperf" + {"\037\277\003\001", 0x1fce}, +#line 823 "./uninorm/composition-table.gperf" + {"\037\277\003\000", 0x1fcd}, +#line 825 "./uninorm/composition-table.gperf" + {"\037\277\003B", 0x1fcf}, +#line 908 "./uninorm/composition-table.gperf" + {"0Y0\231", 0x305a}, +#line 455 "./uninorm/composition-table.gperf" + {"\000K\0031", 0x1e34}, +#line 556 "./uninorm/composition-table.gperf" + {"\000y\003\012", 0x1e99}, +#line 888 "./uninorm/composition-table.gperf" + {"\"\207\0038", 0x2289}, +#line 284 "./uninorm/composition-table.gperf" + {"\003\221\003\001", 0x0386}, +#line 812 "./uninorm/composition-table.gperf" + {"\003\221\003\000", 0x1fba}, +#line 516 "./uninorm/composition-table.gperf" + {"\000t\003-", 0x1e71}, +#line 642 "./uninorm/composition-table.gperf" + {"\000Y\003#", 0x1ef4}, +#line 544 "./uninorm/composition-table.gperf" + {"\000x\003\010", 0x1e8d}, +#line 887 "./uninorm/composition-table.gperf" + {"\"\206\0038", 0x2288}, +#line 553 "./uninorm/composition-table.gperf" + {"\000h\0031", 0x1e96}, +#line 409 "./uninorm/composition-table.gperf" + {"\000B\0031", 0x1e06}, +#line 155 "./uninorm/composition-table.gperf" + {"\000R\003\014", 0x0158}, +#line 947 "./uninorm/composition-table.gperf" + {"0\3250\231", 0x30d6}, +#line 901 "./uninorm/composition-table.gperf" + {"0K0\231", 0x304c}, +#line 258 "./uninorm/composition-table.gperf" + {"\000r\003\021", 0x0213}, +#line 813 "./uninorm/composition-table.gperf" + {"\003\221\003E", 0x1fbc}, +#line 384 "./uninorm/composition-table.gperf" + {"\015F\015>", 0x0d4a}, +#line 767 "./uninorm/composition-table.gperf" + {"\037\014\003E", 0x1f8c}, +#line 271 "./uninorm/composition-table.gperf" + {"\000E\003'", 0x0228}, +#line 774 "./uninorm/composition-table.gperf" + {"\037#\003E", 0x1f93}, +#line 453 "./uninorm/composition-table.gperf" + {"\000K\003#", 0x1e32}, +#line 435 "./uninorm/composition-table.gperf" + {"\000G\003\004", 0x1e20}, +#line 915 "./uninorm/composition-table.gperf" + {"0h0\231", 0x3069}, +#line 429 "./uninorm/composition-table.gperf" + {"\000E\0030", 0x1e1a}, +#line 218 "./uninorm/composition-table.gperf" + {"\000G\003\014", 0x01e6}, +#line 299 "./uninorm/composition-table.gperf" + {"\003\271\003\010", 0x03ca}, +#line 617 "./uninorm/composition-table.gperf" + {"\001\241\003\001", 0x1edb}, +#line 619 "./uninorm/composition-table.gperf" + {"\001\241\003\000", 0x1edd}, +#line 940 "./uninorm/composition-table.gperf" + {"0\3040\231", 0x30c5}, +#line 440 "./uninorm/composition-table.gperf" + {"\000h\003#", 0x1e25}, +#line 407 "./uninorm/composition-table.gperf" + {"\000B\003#", 0x1e04}, +#line 478 "./uninorm/composition-table.gperf" + {"\000n\003-", 0x1e4b}, +#line 886 "./uninorm/composition-table.gperf" + {"\"\203\0038", 0x2285}, +#line 925 "./uninorm/composition-table.gperf" + {"0{0\232", 0x307d}, +#line 302 "./uninorm/composition-table.gperf" + {"\003\305\003\001", 0x03cd}, +#line 753 "./uninorm/composition-table.gperf" + {"\003\305\003\000", 0x1f7a}, +#line 842 "./uninorm/composition-table.gperf" + {"\003\305\003B", 0x1fe6}, +#line 893 "./uninorm/composition-table.gperf" + {"\"|\0038", 0x22e0}, +#line 233 "./uninorm/composition-table.gperf" + {"\000\305\003\001", 0x01fa}, +#line 422 "./uninorm/composition-table.gperf" + {"\000d\003-", 0x1e13}, +#line 885 "./uninorm/composition-table.gperf" + {"\"\202\0038", 0x2284}, +#line 294 "./uninorm/composition-table.gperf" + {"\003\261\003\001", 0x03ac}, +#line 748 "./uninorm/composition-table.gperf" + {"\003\261\003\000", 0x1f70}, +#line 808 "./uninorm/composition-table.gperf" + {"\003\261\003B", 0x1fb6}, +#line 143 "./uninorm/composition-table.gperf" + {"\000N\003\014", 0x0147}, +#line 708 "./uninorm/composition-table.gperf" + {"\003\277\003\023", 0x1f40}, +#line 870 "./uninorm/composition-table.gperf" + {"\"E\0038", 0x2247}, +#line 894 "./uninorm/composition-table.gperf" + {"\"}\0038", 0x22e1}, +#line 497 "./uninorm/composition-table.gperf" + {"\000R\0031", 0x1e5e}, +#line 413 "./uninorm/composition-table.gperf" + {"\000D\003\007", 0x1e0a}, +#line 347 "./uninorm/composition-table.gperf" + {"\004M\003\010", 0x04ed}, +#line 692 "./uninorm/composition-table.gperf" + {"\003\271\003\023", 0x1f30}, +#line 353 "./uninorm/composition-table.gperf" + {"\004C\003\013", 0x04f3}, +#line 806 "./uninorm/composition-table.gperf" + {"\003\261\003E", 0x1fb3}, +#line 826 "./uninorm/composition-table.gperf" + {"\003\271\003\006", 0x1fd0}, +#line 945 "./uninorm/composition-table.gperf" + {"0\3220\231", 0x30d3}, +#line 134 "./uninorm/composition-table.gperf" + {"\000l\003\001", 0x013a}, +#line 911 "./uninorm/composition-table.gperf" + {"0_0\231", 0x3060}, +#line 519 "./uninorm/composition-table.gperf" + {"\000U\0030", 0x1e74}, +#line 907 "./uninorm/composition-table.gperf" + {"0W0\231", 0x3058}, +#line 910 "./uninorm/composition-table.gperf" + {"0]0\231", 0x305e}, +#line 436 "./uninorm/composition-table.gperf" + {"\000g\003\004", 0x1e21}, +#line 656 "./uninorm/composition-table.gperf" + {"\003\221\003\023", 0x1f08}, +#line 310 "./uninorm/composition-table.gperf" + {"\004\032\003\001", 0x040c}, +#line 219 "./uninorm/composition-table.gperf" + {"\000g\003\014", 0x01e7}, +#line 810 "./uninorm/composition-table.gperf" + {"\003\221\003\006", 0x1fb8}, +#line 539 "./uninorm/composition-table.gperf" + {"\000W\003#", 0x1e88}, +#line 300 "./uninorm/composition-table.gperf" + {"\003\305\003\010", 0x03cb}, +#line 493 "./uninorm/composition-table.gperf" + {"\000R\003#", 0x1e5a}, +#line 237 "./uninorm/composition-table.gperf" + {"\000\330\003\001", 0x01fe}, +#line 296 "./uninorm/composition-table.gperf" + {"\003\267\003\001", 0x03ae}, +#line 750 "./uninorm/composition-table.gperf" + {"\003\267\003\000", 0x1f74}, +#line 818 "./uninorm/composition-table.gperf" + {"\003\267\003B", 0x1fc6}, +#line 158 "./uninorm/composition-table.gperf" + {"\000s\003\001", 0x015b}, +#line 799 "./uninorm/composition-table.gperf" + {"\037l\003E", 0x1fac}, +#line 157 "./uninorm/composition-table.gperf" + {"\000S\003\001", 0x015a}, +#line 160 "./uninorm/composition-table.gperf" + {"\000s\003\002", 0x015d}, +#line 500 "./uninorm/composition-table.gperf" + {"\000s\003\007", 0x1e61}, +#line 159 "./uninorm/composition-table.gperf" + {"\000S\003\002", 0x015c}, +#line 499 "./uninorm/composition-table.gperf" + {"\000S\003\007", 0x1e60}, +#line 137 "./uninorm/composition-table.gperf" + {"\000L\003\014", 0x013d}, +#line 475 "./uninorm/composition-table.gperf" + {"\000N\0031", 0x1e48}, +#line 816 "./uninorm/composition-table.gperf" + {"\003\267\003E", 0x1fc3}, +#line 597 "./uninorm/composition-table.gperf" + {"\036\271\003\002", 0x1ec7}, +#line 623 "./uninorm/composition-table.gperf" + {"\001\241\003\003", 0x1ee1}, +#line 350 "./uninorm/composition-table.gperf" + {"\004#\003\010", 0x04f0}, +#line 264 "./uninorm/composition-table.gperf" + {"\000s\003&", 0x0219}, +#line 166 "./uninorm/composition-table.gperf" + {"\000t\003'", 0x0163}, +#line 263 "./uninorm/composition-table.gperf" + {"\000S\003&", 0x0218}, +#line 452 "./uninorm/composition-table.gperf" + {"\000k\003\001", 0x1e31}, +#line 291 "./uninorm/composition-table.gperf" + {"\003\312\003\001", 0x0390}, +#line 828 "./uninorm/composition-table.gperf" + {"\003\312\003\000", 0x1fd2}, +#line 830 "./uninorm/composition-table.gperf" + {"\003\312\003B", 0x1fd7}, +#line 720 "./uninorm/composition-table.gperf" + {"\003\305\003\023", 0x1f50}, +#line 588 "./uninorm/composition-table.gperf" + {"\000\312\003\001", 0x1ebe}, +#line 590 "./uninorm/composition-table.gperf" + {"\000\312\003\000", 0x1ec0}, +#line 837 "./uninorm/composition-table.gperf" + {"\003\305\003\006", 0x1fe0}, +#line 616 "./uninorm/composition-table.gperf" + {"\001\240\003\001", 0x1eda}, +#line 618 "./uninorm/composition-table.gperf" + {"\001\240\003\000", 0x1edc}, +#line 840 "./uninorm/composition-table.gperf" + {"\003\301\003\023", 0x1fe4}, +#line 648 "./uninorm/composition-table.gperf" + {"\003\261\003\023", 0x1f00}, +#line 473 "./uninorm/composition-table.gperf" + {"\000N\003#", 0x1e46}, +#line 154 "./uninorm/composition-table.gperf" + {"\000r\003'", 0x0157}, +#line 803 "./uninorm/composition-table.gperf" + {"\003\261\003\006", 0x1fb0}, +#line 503 "./uninorm/composition-table.gperf" + {"\001Z\003\007", 0x1e64}, +#line 167 "./uninorm/composition-table.gperf" + {"\000T\003\014", 0x0164}, +#line 186 "./uninorm/composition-table.gperf" + {"\000Z\003\001", 0x0179}, +#line 798 "./uninorm/composition-table.gperf" + {"\037k\003E", 0x1fab}, +#line 527 "./uninorm/composition-table.gperf" + {"\000V\003\003", 0x1e7c}, +#line 547 "./uninorm/composition-table.gperf" + {"\000Z\003\002", 0x1e90}, +#line 188 "./uninorm/composition-table.gperf" + {"\000Z\003\007", 0x017b}, +#line 944 "./uninorm/composition-table.gperf" + {"0\3170\232", 0x30d1}, +#line 540 "./uninorm/composition-table.gperf" + {"\000w\003#", 0x1e89}, +#line 142 "./uninorm/composition-table.gperf" + {"\000n\003'", 0x0146}, +#line 312 "./uninorm/composition-table.gperf" + {"\004#\003\006", 0x040e}, +#line 933 "./uninorm/composition-table.gperf" + {"0\2650\231", 0x30b6}, +#line 526 "./uninorm/composition-table.gperf" + {"\001k\003\010", 0x1e7b}, +#line 461 "./uninorm/composition-table.gperf" + {"\000L\0031", 0x1e3a}, +#line 868 "./uninorm/composition-table.gperf" + {"\"<\0038", 0x2241}, +#line 571 "./uninorm/composition-table.gperf" + {"\036\241\003\002", 0x1ead}, +#line 786 "./uninorm/composition-table.gperf" + {"\037/\003E", 0x1f9f}, +#line 420 "./uninorm/composition-table.gperf" + {"\000d\003'", 0x1e11}, +#line 336 "./uninorm/composition-table.gperf" + {"\004\027\003\010", 0x04de}, +#line 150 "./uninorm/composition-table.gperf" + {"\000o\003\013", 0x0151}, +#line 827 "./uninorm/composition-table.gperf" + {"\003\271\003\004", 0x1fd1}, +#line 257 "./uninorm/composition-table.gperf" + {"\000R\003\021", 0x0212}, +#line 704 "./uninorm/composition-table.gperf" + {"\0378\003\001", 0x1f3c}, +#line 702 "./uninorm/composition-table.gperf" + {"\0378\003\000", 0x1f3a}, +#line 706 "./uninorm/composition-table.gperf" + {"\0378\003B", 0x1f3e}, +#line 676 "./uninorm/composition-table.gperf" + {"\003\267\003\023", 0x1f20}, +#line 879 "./uninorm/composition-table.gperf" + {"\"r\0038", 0x2274}, +#line 770 "./uninorm/composition-table.gperf" + {"\037\017\003E", 0x1f8f}, +#line 178 "./uninorm/composition-table.gperf" + {"\000u\003\013", 0x0171}, +#line 769 "./uninorm/composition-table.gperf" + {"\037\016\003E", 0x1f8e}, +#line 318 "./uninorm/composition-table.gperf" + {"\004V\003\010", 0x0457}, +#line 811 "./uninorm/composition-table.gperf" + {"\003\221\003\004", 0x1fb9}, +#line 776 "./uninorm/composition-table.gperf" + {"\037%\003E", 0x1f95}, +#line 457 "./uninorm/composition-table.gperf" + {"\000L\003#", 0x1e36}, +#line 290 "./uninorm/composition-table.gperf" + {"\003\251\003\001", 0x038f}, +#line 855 "./uninorm/composition-table.gperf" + {"\003\251\003\000", 0x1ffa}, +#line 443 "./uninorm/composition-table.gperf" + {"\000H\003'", 0x1e28}, +#line 187 "./uninorm/composition-table.gperf" + {"\000z\003\001", 0x017a}, +#line 513 "./uninorm/composition-table.gperf" + {"\000T\0031", 0x1e6e}, +#line 621 "./uninorm/composition-table.gperf" + {"\001\241\003\011", 0x1edf}, +#line 548 "./uninorm/composition-table.gperf" + {"\000z\003\002", 0x1e91}, +#line 189 "./uninorm/composition-table.gperf" + {"\000z\003\007", 0x017c}, + {""}, +#line 865 "./uninorm/composition-table.gperf" + {"\"\013\0038", 0x220c}, +#line 917 "./uninorm/composition-table.gperf" + {"0o0\232", 0x3071}, +#line 877 "./uninorm/composition-table.gperf" + {"\"d\0038", 0x2270}, +#line 856 "./uninorm/composition-table.gperf" + {"\003\251\003E", 0x1ffc}, +#line 902 "./uninorm/composition-table.gperf" + {"0M0\231", 0x304e}, +#line 594 "./uninorm/composition-table.gperf" + {"\000\312\003\003", 0x1ec4}, +#line 332 "./uninorm/composition-table.gperf" + {"\004\330\003\010", 0x04da}, +#line 398 "./uninorm/composition-table.gperf" + {"\033:\0335", 0x1b3b}, +#line 622 "./uninorm/composition-table.gperf" + {"\001\240\003\003", 0x1ee0}, + {""}, +#line 921 "./uninorm/composition-table.gperf" + {"0u0\232", 0x3077}, +#line 469 "./uninorm/composition-table.gperf" + {"\000M\003#", 0x1e42}, +#line 922 "./uninorm/composition-table.gperf" + {"0x0\231", 0x3079}, +#line 287 "./uninorm/composition-table.gperf" + {"\003\231\003\001", 0x038a}, +#line 833 "./uninorm/composition-table.gperf" + {"\003\231\003\000", 0x1fda}, +#line 511 "./uninorm/composition-table.gperf" + {"\000T\003#", 0x1e6c}, +#line 541 "./uninorm/composition-table.gperf" + {"\000X\003\007", 0x1e8a}, +#line 477 "./uninorm/composition-table.gperf" + {"\000N\003-", 0x1e4a}, +#line 131 "./uninorm/composition-table.gperf" + {"\000K\003'", 0x0136}, +#line 838 "./uninorm/composition-table.gperf" + {"\003\305\003\004", 0x1fe1}, +#line 91 "./uninorm/composition-table.gperf" + {"\000c\003\001", 0x0107}, +#line 871 "./uninorm/composition-table.gperf" + {"\"H\0038", 0x2249}, +#line 394 "./uninorm/composition-table.gperf" + {"\033\011\0335", 0x1b0a}, +#line 93 "./uninorm/composition-table.gperf" + {"\000c\003\002", 0x0109}, +#line 95 "./uninorm/composition-table.gperf" + {"\000c\003\007", 0x010b}, +#line 320 "./uninorm/composition-table.gperf" + {"\0048\003\000", 0x045d}, +#line 804 "./uninorm/composition-table.gperf" + {"\003\261\003\004", 0x1fb1}, +#line 444 "./uninorm/composition-table.gperf" + {"\000h\003'", 0x1e29}, +#line 938 "./uninorm/composition-table.gperf" + {"0\2770\231", 0x30c0}, +#line 630 "./uninorm/composition-table.gperf" + {"\001\257\003\001", 0x1ee8}, +#line 632 "./uninorm/composition-table.gperf" + {"\001\257\003\000", 0x1eea}, +#line 581 "./uninorm/composition-table.gperf" + {"\036\241\003\006", 0x1eb7}, +#line 149 "./uninorm/composition-table.gperf" + {"\000O\003\013", 0x0150}, +#line 98 "./uninorm/composition-table.gperf" + {"\000D\003\014", 0x010e}, +#line 935 "./uninorm/composition-table.gperf" + {"0\2710\231", 0x30ba}, +#line 289 "./uninorm/composition-table.gperf" + {"\003\245\003\001", 0x038e}, +#line 846 "./uninorm/composition-table.gperf" + {"\003\245\003\000", 0x1fea}, +#line 348 "./uninorm/composition-table.gperf" + {"\004#\003\004", 0x04ee}, +#line 790 "./uninorm/composition-table.gperf" + {"\037c\003E", 0x1fa3}, +#line 285 "./uninorm/composition-table.gperf" + {"\003\225\003\001", 0x0388}, +#line 820 "./uninorm/composition-table.gperf" + {"\003\225\003\000", 0x1fc8}, +#line 555 "./uninorm/composition-table.gperf" + {"\000w\003\012", 0x1e98}, +#line 235 "./uninorm/composition-table.gperf" + {"\000\306\003\001", 0x01fc}, +#line 570 "./uninorm/composition-table.gperf" + {"\036\240\003\002", 0x1eac}, +#line 138 "./uninorm/composition-table.gperf" + {"\000l\003\014", 0x013e}, +#line 543 "./uninorm/composition-table.gperf" + {"\000X\003\010", 0x1e8c}, +#line 292 "./uninorm/composition-table.gperf" + {"\003\231\003\010", 0x03aa}, +#line 303 "./uninorm/composition-table.gperf" + {"\003\311\003\001", 0x03ce}, +#line 754 "./uninorm/composition-table.gperf" + {"\003\311\003\000", 0x1f7c}, +#line 852 "./uninorm/composition-table.gperf" + {"\003\311\003B", 0x1ff6}, +#line 740 "./uninorm/composition-table.gperf" + {"\003\251\003\023", 0x1f68}, +#line 393 "./uninorm/composition-table.gperf" + {"\033\007\0335", 0x1b08}, + {""}, +#line 463 "./uninorm/composition-table.gperf" + {"\000L\003-", 0x1e3c}, +#line 177 "./uninorm/composition-table.gperf" + {"\000U\003\013", 0x0170}, + {""}, +#line 226 "./uninorm/composition-table.gperf" + {"\001\267\003\014", 0x01ee}, +#line 341 "./uninorm/composition-table.gperf" + {"\0048\003\010", 0x04e5}, +#line 466 "./uninorm/composition-table.gperf" + {"\000m\003\001", 0x1e3f}, +#line 850 "./uninorm/composition-table.gperf" + {"\003\311\003E", 0x1ff3}, +#line 819 "./uninorm/composition-table.gperf" + {"\037\306\003E", 0x1fc7}, +#line 164 "./uninorm/composition-table.gperf" + {"\000s\003\014", 0x0161}, +#line 468 "./uninorm/composition-table.gperf" + {"\000m\003\007", 0x1e41}, +#line 163 "./uninorm/composition-table.gperf" + {"\000S\003\014", 0x0160}, +#line 592 "./uninorm/composition-table.gperf" + {"\000\312\003\011", 0x1ec2}, +#line 504 "./uninorm/composition-table.gperf" + {"\001[\003\007", 0x1e65}, +#line 153 "./uninorm/composition-table.gperf" + {"\000R\003'", 0x0156}, +#line 620 "./uninorm/composition-table.gperf" + {"\001\240\003\011", 0x1ede}, +#line 293 "./uninorm/composition-table.gperf" + {"\003\245\003\010", 0x03ab}, +#line 358 "./uninorm/composition-table.gperf" + {"\006'\006S", 0x0622}, +#line 417 "./uninorm/composition-table.gperf" + {"\000D\0031", 0x1e0e}, +#line 625 "./uninorm/composition-table.gperf" + {"\001\241\003#", 0x1ee3}, +#line 700 "./uninorm/composition-table.gperf" + {"\003\231\003\023", 0x1f38}, +#line 207 "./uninorm/composition-table.gperf" + {"\000\374\003\001", 0x01d8}, +#line 211 "./uninorm/composition-table.gperf" + {"\000\374\003\000", 0x01dc}, +#line 831 "./uninorm/composition-table.gperf" + {"\003\231\003\006", 0x1fd8}, +#line 800 "./uninorm/composition-table.gperf" + {"\037m\003E", 0x1fad}, +#line 221 "./uninorm/composition-table.gperf" + {"\000k\003\014", 0x01e9}, +#line 515 "./uninorm/composition-table.gperf" + {"\000T\003-", 0x1e70}, +#line 116 "./uninorm/composition-table.gperf" + {"\000G\003'", 0x0122}, +#line 280 "./uninorm/composition-table.gperf" + {"\002/\003\004", 0x0231}, +#line 462 "./uninorm/composition-table.gperf" + {"\000l\0031", 0x1e3b}, +#line 939 "./uninorm/composition-table.gperf" + {"0\3010\231", 0x30c2}, +#line 931 "./uninorm/composition-table.gperf" + {"0\2610\231", 0x30b2}, +#line 674 "./uninorm/composition-table.gperf" + {"\037\030\003\001", 0x1f1c}, +#line 672 "./uninorm/composition-table.gperf" + {"\037\030\003\000", 0x1f1a}, +#line 314 "./uninorm/composition-table.gperf" + {"\0048\003\006", 0x0439}, +#line 636 "./uninorm/composition-table.gperf" + {"\001\257\003\003", 0x1eee}, +#line 286 "./uninorm/composition-table.gperf" + {"\003\227\003\001", 0x0389}, +#line 821 "./uninorm/composition-table.gperf" + {"\003\227\003\000", 0x1fca}, +#line 415 "./uninorm/composition-table.gperf" + {"\000D\003#", 0x1e0c}, +#line 360 "./uninorm/composition-table.gperf" + {"\006H\006T", 0x0624}, +#line 606 "./uninorm/composition-table.gperf" + {"\000\324\003\001", 0x1ed0}, +#line 608 "./uninorm/composition-table.gperf" + {"\000\324\003\000", 0x1ed2}, +#line 190 "./uninorm/composition-table.gperf" + {"\000Z\003\014", 0x017d}, +#line 529 "./uninorm/composition-table.gperf" + {"\000V\003#", 0x1e7e}, + {""}, +#line 844 "./uninorm/composition-table.gperf" + {"\003\245\003\006", 0x1fe8}, +#line 670 "./uninorm/composition-table.gperf" + {"\003\225\003\023", 0x1f18}, +#line 141 "./uninorm/composition-table.gperf" + {"\000N\003'", 0x0145}, +#line 822 "./uninorm/composition-table.gperf" + {"\003\227\003E", 0x1fcc}, +#line 458 "./uninorm/composition-table.gperf" + {"\000l\003#", 0x1e37}, +#line 580 "./uninorm/composition-table.gperf" + {"\036\240\003\006", 0x1eb6}, + {""}, +#line 518 "./uninorm/composition-table.gperf" + {"\000u\003$", 0x1e73}, + {""}, +#line 732 "./uninorm/composition-table.gperf" + {"\003\311\003\023", 0x1f60}, +#line 949 "./uninorm/composition-table.gperf" + {"0\3300\231", 0x30d9}, +#line 508 "./uninorm/composition-table.gperf" + {"\036c\003\007", 0x1e69}, +#line 725 "./uninorm/composition-table.gperf" + {"\037Q\003\001", 0x1f55}, +#line 723 "./uninorm/composition-table.gperf" + {"\037Q\003\000", 0x1f53}, +#line 727 "./uninorm/composition-table.gperf" + {"\037Q\003B", 0x1f57}, +#line 934 "./uninorm/composition-table.gperf" + {"0\2670\231", 0x30b8}, +#line 905 "./uninorm/composition-table.gperf" + {"0S0\231", 0x3054}, +#line 456 "./uninorm/composition-table.gperf" + {"\000k\0031", 0x1e35}, +#line 363 "./uninorm/composition-table.gperf" + {"\006\325\006T", 0x06c0}, +#line 665 "./uninorm/composition-table.gperf" + {"\003\265\003\024", 0x1f11}, +#line 130 "./uninorm/composition-table.gperf" + {"\000j\003\002", 0x0135}, +#line 502 "./uninorm/composition-table.gperf" + {"\000s\003#", 0x1e63}, +#line 117 "./uninorm/composition-table.gperf" + {"\000g\003'", 0x0123}, +#line 501 "./uninorm/composition-table.gperf" + {"\000S\003#", 0x1e62}, +#line 392 "./uninorm/composition-table.gperf" + {"\033\005\0335", 0x1b06}, +#line 589 "./uninorm/composition-table.gperf" + {"\000\352\003\001", 0x1ebf}, +#line 591 "./uninorm/composition-table.gperf" + {"\000\352\003\000", 0x1ec1}, +#line 396 "./uninorm/composition-table.gperf" + {"\033\015\0335", 0x1b0e}, +#line 681 "./uninorm/composition-table.gperf" + {"\037!\003\001", 0x1f25}, +#line 679 "./uninorm/composition-table.gperf" + {"\037!\003\000", 0x1f23}, +#line 683 "./uninorm/composition-table.gperf" + {"\037!\003B", 0x1f27}, +#line 919 "./uninorm/composition-table.gperf" + {"0r0\232", 0x3074}, +#line 191 "./uninorm/composition-table.gperf" + {"\000z\003\014", 0x017e}, +#line 311 "./uninorm/composition-table.gperf" + {"\004\030\003\000", 0x040d}, +#line 551 "./uninorm/composition-table.gperf" + {"\000Z\0031", 0x1e94}, +#line 797 "./uninorm/composition-table.gperf" + {"\037j\003E", 0x1faa}, +#line 952 "./uninorm/composition-table.gperf" + {"0\3330\232", 0x30dd}, +#line 454 "./uninorm/composition-table.gperf" + {"\000k\003#", 0x1e33}, +#line 135 "./uninorm/composition-table.gperf" + {"\000L\003'", 0x013b}, +#line 334 "./uninorm/composition-table.gperf" + {"\004\026\003\010", 0x04dc}, +#line 772 "./uninorm/composition-table.gperf" + {"\037!\003E", 0x1f91}, +#line 882 "./uninorm/composition-table.gperf" + {"\"w\0038", 0x2279}, +#line 631 "./uninorm/composition-table.gperf" + {"\001\260\003\001", 0x1ee9}, +#line 633 "./uninorm/composition-table.gperf" + {"\001\260\003\000", 0x1eeb}, +#line 525 "./uninorm/composition-table.gperf" + {"\001j\003\010", 0x1e7a}, +#line 624 "./uninorm/composition-table.gperf" + {"\001\240\003#", 0x1ee2}, +#line 669 "./uninorm/composition-table.gperf" + {"\037\021\003\001", 0x1f15}, +#line 667 "./uninorm/composition-table.gperf" + {"\037\021\003\000", 0x1f13}, +#line 832 "./uninorm/composition-table.gperf" + {"\003\231\003\004", 0x1fd9}, +#line 634 "./uninorm/composition-table.gperf" + {"\001\257\003\011", 0x1eec}, +#line 684 "./uninorm/composition-table.gperf" + {"\003\227\003\023", 0x1f28}, +#line 900 "./uninorm/composition-table.gperf" + {"\"\265\0038", 0x22ed}, +#line 361 "./uninorm/composition-table.gperf" + {"\006'\006U", 0x0625}, +#line 612 "./uninorm/composition-table.gperf" + {"\000\324\003\003", 0x1ed6}, +#line 549 "./uninorm/composition-table.gperf" + {"\000Z\003#", 0x1e92}, +#line 386 "./uninorm/composition-table.gperf" + {"\015F\015W", 0x0d4c}, +#line 421 "./uninorm/composition-table.gperf" + {"\000D\003-", 0x1e12}, +#line 406 "./uninorm/composition-table.gperf" + {"\000b\003\007", 0x1e03}, +#line 97 "./uninorm/composition-table.gperf" + {"\000c\003\014", 0x010d}, +#line 339 "./uninorm/composition-table.gperf" + {"\0048\003\004", 0x04e3}, + {""}, +#line 365 "./uninorm/composition-table.gperf" + {"\006\322\006T", 0x06d3}, +#line 488 "./uninorm/composition-table.gperf" + {"\000p\003\001", 0x1e55}, +#line 165 "./uninorm/composition-table.gperf" + {"\000T\003'", 0x0162}, +#line 505 "./uninorm/composition-table.gperf" + {"\001`\003\007", 0x1e66}, +#line 340 "./uninorm/composition-table.gperf" + {"\004\030\003\010", 0x04e4}, +#line 490 "./uninorm/composition-table.gperf" + {"\000p\003\007", 0x1e57}, +#line 464 "./uninorm/composition-table.gperf" + {"\000l\003-", 0x1e3d}, +#line 324 "./uninorm/composition-table.gperf" + {"\004\026\003\006", 0x04c1}, +#line 552 "./uninorm/composition-table.gperf" + {"\000z\0031", 0x1e95}, +#line 845 "./uninorm/composition-table.gperf" + {"\003\245\003\004", 0x1fe9}, +#line 789 "./uninorm/composition-table.gperf" + {"\037b\003E", 0x1fa2}, +#line 736 "./uninorm/composition-table.gperf" + {"\037`\003\001", 0x1f64}, +#line 734 "./uninorm/composition-table.gperf" + {"\037`\003\000", 0x1f62}, +#line 738 "./uninorm/composition-table.gperf" + {"\037`\003B", 0x1f66}, +#line 859 "./uninorm/composition-table.gperf" + {"!\224\0038", 0x21ae}, +#line 517 "./uninorm/composition-table.gperf" + {"\000U\003$", 0x1e72}, +#line 216 "./uninorm/composition-table.gperf" + {"\000\306\003\004", 0x01e2}, +#line 495 "./uninorm/composition-table.gperf" + {"\036Z\003\004", 0x1e5c}, +#line 709 "./uninorm/composition-table.gperf" + {"\003\277\003\024", 0x1f41}, +#line 805 "./uninorm/composition-table.gperf" + {"\037p\003E", 0x1fb2}, +#line 607 "./uninorm/composition-table.gperf" + {"\000\364\003\001", 0x1ed1}, +#line 609 "./uninorm/composition-table.gperf" + {"\000\364\003\000", 0x1ed3}, +#line 595 "./uninorm/composition-table.gperf" + {"\000\352\003\003", 0x1ec5}, +#line 787 "./uninorm/composition-table.gperf" + {"\037`\003E", 0x1fa0}, +#line 693 "./uninorm/composition-table.gperf" + {"\003\271\003\024", 0x1f31}, +#line 860 "./uninorm/composition-table.gperf" + {"!\320\0038", 0x21cd}, +#line 874 "./uninorm/composition-table.gperf" + {"\"M\0038", 0x226d}, +#line 857 "./uninorm/composition-table.gperf" + {"!\220\0038", 0x219a}, +#line 550 "./uninorm/composition-table.gperf" + {"\000z\003#", 0x1e93}, +#line 400 "./uninorm/composition-table.gperf" + {"\033>\0335", 0x1b40}, +#line 487 "./uninorm/composition-table.gperf" + {"\000P\003\001", 0x1e54}, + {""}, +#line 948 "./uninorm/composition-table.gperf" + {"0\3250\232", 0x30d7}, +#line 313 "./uninorm/composition-table.gperf" + {"\004\030\003\006", 0x0419}, +#line 489 "./uninorm/composition-table.gperf" + {"\000P\003\007", 0x1e56}, +#line 657 "./uninorm/composition-table.gperf" + {"\003\221\003\024", 0x1f09}, +#line 724 "./uninorm/composition-table.gperf" + {"\037P\003\001", 0x1f54}, +#line 722 "./uninorm/composition-table.gperf" + {"\037P\003\000", 0x1f52}, +#line 726 "./uninorm/composition-table.gperf" + {"\037P\003B", 0x1f56}, +#line 637 "./uninorm/composition-table.gperf" + {"\001\260\003\003", 0x1eef}, +#line 890 "./uninorm/composition-table.gperf" + {"\"\250\0038", 0x22ad}, +#line 362 "./uninorm/composition-table.gperf" + {"\006J\006T", 0x0626}, +#line 563 "./uninorm/composition-table.gperf" + {"\000\342\003\001", 0x1ea5}, +#line 565 "./uninorm/composition-table.gperf" + {"\000\342\003\000", 0x1ea7}, +#line 777 "./uninorm/composition-table.gperf" + {"\037&\003E", 0x1f96}, +#line 193 "./uninorm/composition-table.gperf" + {"\000o\003\033", 0x01a1}, + {""}, +#line 205 "./uninorm/composition-table.gperf" + {"\000\374\003\004", 0x01d6}, +#line 562 "./uninorm/composition-table.gperf" + {"\000\302\003\001", 0x1ea4}, +#line 564 "./uninorm/composition-table.gperf" + {"\000\302\003\000", 0x1ea6}, +#line 209 "./uninorm/composition-table.gperf" + {"\000\374\003\014", 0x01da}, +#line 610 "./uninorm/composition-table.gperf" + {"\000\324\003\011", 0x1ed4}, +#line 404 "./uninorm/composition-table.gperf" + {"\000a\003%", 0x1e01}, +#line 369 "./uninorm/composition-table.gperf" + {"\011\307\011\276", 0x09cb}, +#line 195 "./uninorm/composition-table.gperf" + {"\000u\003\033", 0x01b0}, +#line 315 "./uninorm/composition-table.gperf" + {"\0045\003\000", 0x0450}, +#line 680 "./uninorm/composition-table.gperf" + {"\037 \003\001", 0x1f24}, +#line 678 "./uninorm/composition-table.gperf" + {"\037 \003\000", 0x1f22}, +#line 682 "./uninorm/composition-table.gperf" + {"\037 \003B", 0x1f26}, +#line 378 "./uninorm/composition-table.gperf" + {"\014F\014V", 0x0c48}, +#line 847 "./uninorm/composition-table.gperf" + {"\003\241\003\024", 0x1fec}, +#line 866 "./uninorm/composition-table.gperf" + {"\"#\0038", 0x2224}, +#line 930 "./uninorm/composition-table.gperf" + {"0\2570\231", 0x30b0}, +#line 638 "./uninorm/composition-table.gperf" + {"\001\257\003#", 0x1ef0}, + {""}, {""}, +#line 721 "./uninorm/composition-table.gperf" + {"\003\305\003\024", 0x1f51}, +#line 895 "./uninorm/composition-table.gperf" + {"\"\221\0038", 0x22e2}, +#line 771 "./uninorm/composition-table.gperf" + {"\037 \003E", 0x1f90}, +#line 941 "./uninorm/composition-table.gperf" + {"0\3060\231", 0x30c7}, +#line 399 "./uninorm/composition-table.gperf" + {"\033<\0335", 0x1b3d}, + {""}, +#line 841 "./uninorm/composition-table.gperf" + {"\003\301\003\024", 0x1fe5}, +#line 649 "./uninorm/composition-table.gperf" + {"\003\261\003\024", 0x1f01}, +#line 385 "./uninorm/composition-table.gperf" + {"\015G\015>", 0x0d4b}, +#line 946 "./uninorm/composition-table.gperf" + {"0\3220\232", 0x30d4}, + {""}, +#line 419 "./uninorm/composition-table.gperf" + {"\000D\003'", 0x1e10}, +#line 613 "./uninorm/composition-table.gperf" + {"\000\364\003\003", 0x1ed7}, + {""}, +#line 507 "./uninorm/composition-table.gperf" + {"\036b\003\007", 0x1e68}, +#line 593 "./uninorm/composition-table.gperf" + {"\000\352\003\011", 0x1ec3}, + {""}, {""}, {""}, {""}, +#line 445 "./uninorm/composition-table.gperf" + {"\000H\003.", 0x1e2a}, +#line 316 "./uninorm/composition-table.gperf" + {"\0045\003\010", 0x0451}, +#line 136 "./uninorm/composition-table.gperf" + {"\000l\003'", 0x013c}, + {""}, +#line 224 "./uninorm/composition-table.gperf" + {"\001\352\003\004", 0x01ec}, +#line 228 "./uninorm/composition-table.gperf" + {"\000j\003\014", 0x01f0}, +#line 470 "./uninorm/composition-table.gperf" + {"\000m\003#", 0x1e43}, + {""}, +#line 909 "./uninorm/composition-table.gperf" + {"0[0\231", 0x305c}, + {""}, {""}, {""}, +#line 635 "./uninorm/composition-table.gperf" + {"\001\260\003\011", 0x1eed}, +#line 395 "./uninorm/composition-table.gperf" + {"\033\013\0335", 0x1b0c}, +#line 569 "./uninorm/composition-table.gperf" + {"\000\342\003\003", 0x1eab}, +#line 192 "./uninorm/composition-table.gperf" + {"\000O\003\033", 0x01a0}, +#line 677 "./uninorm/composition-table.gperf" + {"\003\267\003\024", 0x1f21}, +#line 338 "./uninorm/composition-table.gperf" + {"\004\030\003\004", 0x04e2}, + {""}, +#line 162 "./uninorm/composition-table.gperf" + {"\000s\003'", 0x015f}, +#line 568 "./uninorm/composition-table.gperf" + {"\000\302\003\003", 0x1eaa}, +#line 161 "./uninorm/composition-table.gperf" + {"\000S\003'", 0x015e}, + {""}, {""}, {""}, {""}, {""}, +#line 858 "./uninorm/composition-table.gperf" + {"!\222\0038", 0x219b}, + {""}, +#line 403 "./uninorm/composition-table.gperf" + {"\000A\003%", 0x1e00}, +#line 331 "./uninorm/composition-table.gperf" + {"\0045\003\006", 0x04d7}, + {""}, {""}, {""}, +#line 446 "./uninorm/composition-table.gperf" + {"\000h\003.", 0x1e2b}, +#line 132 "./uninorm/composition-table.gperf" + {"\000k\003'", 0x0137}, + {""}, +#line 194 "./uninorm/composition-table.gperf" + {"\000U\003\033", 0x01af}, + {""}, +#line 496 "./uninorm/composition-table.gperf" + {"\036[\003\004", 0x1e5d}, + {""}, {""}, {""}, {""}, +#line 904 "./uninorm/composition-table.gperf" + {"0Q0\231", 0x3052}, + {""}, +#line 370 "./uninorm/composition-table.gperf" + {"\011\307\011\327", 0x09cc}, +#line 880 "./uninorm/composition-table.gperf" + {"\"s\0038", 0x2275}, +#line 374 "./uninorm/composition-table.gperf" + {"\013\222\013\327", 0x0b94}, + {""}, {""}, +#line 611 "./uninorm/composition-table.gperf" + {"\000\364\003\011", 0x1ed5}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, +#line 214 "./uninorm/composition-table.gperf" + {"\002&\003\004", 0x01e0}, + {""}, {""}, {""}, +#line 402 "./uninorm/composition-table.gperf" + {"\033B\0335", 0x1b43}, + {""}, {""}, {""}, +#line 567 "./uninorm/composition-table.gperf" + {"\000\342\003\011", 0x1ea9}, + {""}, {""}, {""}, {""}, +#line 410 "./uninorm/composition-table.gperf" + {"\000b\0031", 0x1e07}, +#line 566 "./uninorm/composition-table.gperf" + {"\000\302\003\011", 0x1ea8}, + {""}, {""}, {""}, {""}, +#line 741 "./uninorm/composition-table.gperf" + {"\003\251\003\024", 0x1f69}, + {""}, {""}, +#line 639 "./uninorm/composition-table.gperf" + {"\001\260\003#", 0x1ef1}, +#line 364 "./uninorm/composition-table.gperf" + {"\006\301\006T", 0x06c2}, + {""}, {""}, +#line 379 "./uninorm/composition-table.gperf" + {"\014\277\014\325", 0x0cc0}, +#line 867 "./uninorm/composition-table.gperf" + {"\"%\0038", 0x2226}, +#line 923 "./uninorm/composition-table.gperf" + {"0x0\232", 0x307a}, + {""}, {""}, {""}, {""}, +#line 408 "./uninorm/composition-table.gperf" + {"\000b\003#", 0x1e05}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, +#line 701 "./uninorm/composition-table.gperf" + {"\003\231\003\024", 0x1f39}, +#line 401 "./uninorm/composition-table.gperf" + {"\033?\0335", 0x1b41}, + {""}, {""}, {""}, {""}, {""}, +#line 63 "./uninorm/composition-table.gperf" + {"\000c\003'", 0x00e7}, + {""}, +#line 883 "./uninorm/composition-table.gperf" + {"\"z\0038", 0x2280}, +#line 891 "./uninorm/composition-table.gperf" + {"\"\251\0038", 0x22ae}, + {""}, {""}, +#line 371 "./uninorm/composition-table.gperf" + {"\013G\013V", 0x0b48}, + {""}, +#line 372 "./uninorm/composition-table.gperf" + {"\013G\013>", 0x0b4b}, + {""}, {""}, {""}, {""}, {""}, {""}, +#line 728 "./uninorm/composition-table.gperf" + {"\003\245\003\024", 0x1f59}, + {""}, {""}, {""}, +#line 671 "./uninorm/composition-table.gperf" + {"\003\225\003\024", 0x1f19}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, +#line 733 "./uninorm/composition-table.gperf" + {"\003\311\003\024", 0x1f61}, + {""}, {""}, {""}, {""}, {""}, +#line 352 "./uninorm/composition-table.gperf" + {"\004#\003\013", 0x04f2}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, +#line 685 "./uninorm/composition-table.gperf" + {"\003\227\003\024", 0x1f29}, + {""}, {""}, {""}, {""}, {""}, {""}, +#line 950 "./uninorm/composition-table.gperf" + {"0\3300\232", 0x30da}, + {""}, {""}, {""}, {""}, {""}, {""}, +#line 383 "./uninorm/composition-table.gperf" + {"\014\312\014\325", 0x0ccb}, + {""}, {""}, {""}, {""}, {""}, {""}, +#line 376 "./uninorm/composition-table.gperf" + {"\013\307\013\276", 0x0bcb}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, +#line 862 "./uninorm/composition-table.gperf" + {"!\322\0038", 0x21cf}, + {""}, +#line 381 "./uninorm/composition-table.gperf" + {"\014\306\014\326", 0x0cc8}, +#line 382 "./uninorm/composition-table.gperf" + {"\014\306\014\302", 0x0cca}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, +#line 380 "./uninorm/composition-table.gperf" + {"\014\306\014\325", 0x0cc7}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, +#line 373 "./uninorm/composition-table.gperf" + {"\013G\013W", 0x0b4c}, + {""}, {""}, {""}, {""}, {""}, {""}, +#line 391 "./uninorm/composition-table.gperf" + {"\020%\020.", 0x1026}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, +#line 397 "./uninorm/composition-table.gperf" + {"\033\021\0335", 0x1b12}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, +#line 375 "./uninorm/composition-table.gperf" + {"\013\306\013\276", 0x0bca}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, {""}, +#line 377 "./uninorm/composition-table.gperf" + {"\013\306\013\327", 0x0bcc}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, +#line 861 "./uninorm/composition-table.gperf" + {"!\324\0038", 0x21ce} + }; + + if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH) + { + register int key = gl_uninorm_compose_hash (str, len); + + if (key <= MAX_HASH_VALUE && key >= 0) + if (len == lengthtable[key]) + { + register const char *s = wordlist[key].codes; + + if (*str == *s && !memcmp (str + 1, s + 1, len - 1)) + return &wordlist[key]; + } + } + return 0; +} diff --git a/lib/uninorm/composition.c b/lib/uninorm/composition.c new file mode 100644 index 00000000..4caf9a06 --- /dev/null +++ b/lib/uninorm/composition.c @@ -0,0 +1,85 @@ +/* Canonical composition of Unicode characters. + Copyright (C) 2002, 2006, 2009 Free Software Foundation, Inc. + Written by Bruno Haible <bruno@clisp.org>, 2009. + + This program is free software: you can redistribute it and/or modify it + under the terms of the GNU Lesser General Public License as published + by the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. */ + +#include <config.h> + +/* Specification. */ +#include "uninorm.h" + +#include <string.h> + +struct composition_rule { char codes[4]; unsigned short combined; }; + +#include "composition-table.h" + +ucs4_t +uc_composition (ucs4_t uc1, ucs4_t uc2) +{ + if (uc1 < 0x10000 && uc2 < 0x10000) + { + if (uc2 >= 0x1161 && uc2 < 0x1161 + 21 + && uc1 >= 0x1100 && uc1 < 0x1100 + 19) + { + /* Hangul: Combine single letter L and single letter V to form + two-letter syllable LV. */ + return 0xAC00 + ((uc1 - 0x1100) * 21 + (uc2 - 0x1161)) * 28; + } + else if (uc2 > 0x11A7 && uc2 < 0x11A7 + 28 + && uc1 >= 0xAC00 && uc1 < 0xD7A4 && ((uc1 - 0xAC00) % 28) == 0) + { + /* Hangul: Combine two-letter syllable LV with single-letter T + to form three-letter syllable LVT. */ + return uc1 + (uc2 - 0x11A7); + } + else + { +#if 0 + unsigned int uc = MUL1 * uc1 * MUL2 * uc2; + unsigned int index1 = uc >> composition_header_0; + if (index1 < composition_header_1) + { + int lookup1 = u_composition.level1[index1]; + if (lookup1 >= 0) + { + unsigned int index2 = (uc >> composition_header_2) & composition_header_3; + int lookup2 = u_composition.level2[lookup1 + index2]; + if (lookup2 >= 0) + { + unsigned int index3 = (uc & composition_header_4); + unsigned int lookup3 = u_composition.level3[lookup2 + index3]; + if ((lookup3 >> 16) == uc2) + return lookup3 & ((1U << 16) - 1); + } + } + } +#else + char codes[4]; + const struct composition_rule *rule; + + codes[0] = (uc1 >> 8) & 0xff; + codes[1] = uc1 & 0xff; + codes[2] = (uc2 >> 8) & 0xff; + codes[3] = uc2 & 0xff; + + rule = gl_uninorm_compose_lookup (codes, 4); + if (rule != NULL) + return rule->combined; +#endif + } + } + return 0; +} diff --git a/lib/uninorm/decompose-internal.c b/lib/uninorm/decompose-internal.c new file mode 100644 index 00000000..53b745da --- /dev/null +++ b/lib/uninorm/decompose-internal.c @@ -0,0 +1,28 @@ +/* Decomposition of Unicode strings. + Copyright (C) 2009 Free Software Foundation, Inc. + Written by Bruno Haible <bruno@clisp.org>, 2009. + + This program is free software: you can redistribute it and/or modify it + under the terms of the GNU Lesser General Public License as published + by the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. */ + +#include <config.h> + +/* Specification. */ +#include "decompose-internal.h" + +#define ELEMENT struct ucs4_with_ccc +#define COMPARE(a,b) ((a)->ccc - (b)->ccc) +#define STATIC +#define merge_sort_fromto gl_uninorm_decompose_merge_sort_fromto +#define merge_sort_inplace gl_uninorm_decompose_merge_sort_inplace +#include "array-mergesort.h" diff --git a/lib/uninorm/decompose-internal.h b/lib/uninorm/decompose-internal.h new file mode 100644 index 00000000..c1bf1258 --- /dev/null +++ b/lib/uninorm/decompose-internal.h @@ -0,0 +1,36 @@ +/* Decomposition of Unicode strings. + Copyright (C) 2009 Free Software Foundation, Inc. + Written by Bruno Haible <bruno@clisp.org>, 2009. + + This program is free software: you can redistribute it and/or modify it + under the terms of the GNU Lesser General Public License as published + by the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. */ + +#include <stddef.h> + +#include "unitypes.h" + +/* Variant of uc_decomposition that does not produce the 'tag'. */ +extern int + uc_compat_decomposition (ucs4_t uc, ucs4_t *decomposition); + +/* A Unicode character together with its canonical combining class. */ +struct ucs4_with_ccc +{ + ucs4_t code; + int ccc; /* range 0..255 */ +}; + +/* Stable-sort an array of 'struct ucs4_with_ccc'. */ +extern void + gl_uninorm_decompose_merge_sort_inplace (struct ucs4_with_ccc *src, size_t n, + struct ucs4_with_ccc *tmp); diff --git a/lib/uninorm/decomposing-form.c b/lib/uninorm/decomposing-form.c new file mode 100644 index 00000000..3b49cb8b --- /dev/null +++ b/lib/uninorm/decomposing-form.c @@ -0,0 +1,29 @@ +/* Decomposing variant of a normalization form. + Copyright (C) 2009 Free Software Foundation, Inc. + Written by Bruno Haible <bruno@clisp.org>, 2009. + + This program is free software: you can redistribute it and/or modify it + under the terms of the GNU Lesser General Public License as published + by the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. */ + +#include <config.h> + +/* Specification. */ +#include "uninorm.h" + +#include "normalize-internal.h" + +uninorm_t +uninorm_decomposing_form (uninorm_t nf) +{ + return nf->decomposing_variant; +} diff --git a/lib/uninorm/decomposition-table.c b/lib/uninorm/decomposition-table.c new file mode 100644 index 00000000..63f64427 --- /dev/null +++ b/lib/uninorm/decomposition-table.c @@ -0,0 +1,23 @@ +/* Decomposition of Unicode characters. + Copyright (C) 2009 Free Software Foundation, Inc. + Written by Bruno Haible <bruno@clisp.org>, 2009. + + This program is free software: you can redistribute it and/or modify it + under the terms of the GNU Lesser General Public License as published + by the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. */ + +#include <config.h> + +/* Specification. */ +#include "uninorm/decomposition-table.h" + +#include "uninorm/decomposition-table2.h" diff --git a/lib/uninorm/decomposition-table.h b/lib/uninorm/decomposition-table.h new file mode 100644 index 00000000..ad0e1a3f --- /dev/null +++ b/lib/uninorm/decomposition-table.h @@ -0,0 +1,48 @@ +/* Decomposition of Unicode characters. + Copyright (C) 2001-2003, 2009 Free Software Foundation, Inc. + Written by Bruno Haible <bruno@clisp.org>, 2009. + + This program is free software: you can redistribute it and/or modify it + under the terms of the GNU Lesser General Public License as published + by the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. */ + + +#include "unitypes.h" + +/* The decomposition table is made of two parts: + - A table containing the actual arrays of decomposed equivalents. + (This table is separate because the maximum length of a decomposition + is 18, much larger than than the average length 1.497 of a decomposition). + - A 3-level table of indices into this array. */ + +#include "decomposition-table1.h" + +static inline unsigned short +decomp_index (ucs4_t uc) +{ + unsigned int index1 = uc >> decomp_header_0; + if (index1 < decomp_header_1) + { + int lookup1 = gl_uninorm_decomp_index_table.level1[index1]; + if (lookup1 >= 0) + { + unsigned int index2 = (uc >> decomp_header_2) & decomp_header_3; + int lookup2 = gl_uninorm_decomp_index_table.level2[lookup1 + index2]; + if (lookup2 >= 0) + { + unsigned int index3 = uc & decomp_header_4; + return gl_uninorm_decomp_index_table.level3[lookup2 + index3]; + } + } + } + return (unsigned short)(-1); +} diff --git a/lib/uninorm/decomposition-table1.h b/lib/uninorm/decomposition-table1.h new file mode 100644 index 00000000..4ac70f4c --- /dev/null +++ b/lib/uninorm/decomposition-table1.h @@ -0,0 +1,20 @@ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ +/* Decomposition of Unicode characters. */ +/* Generated automatically by gen-uni-tables.c for Unicode 5.1.0. */ + +extern const unsigned char gl_uninorm_decomp_chars_table[]; + +#define decomp_header_0 10 +#define decomp_header_1 191 +#define decomp_header_2 5 +#define decomp_header_3 31 +#define decomp_header_4 31 + +typedef struct + { + int level1[191]; + int level2[18 << 5]; + unsigned short level3[254 << 5]; + } +decomp_index_table_t; +extern const decomp_index_table_t gl_uninorm_decomp_index_table; diff --git a/lib/uninorm/decomposition-table2.h b/lib/uninorm/decomposition-table2.h new file mode 100644 index 00000000..f80f4342 --- /dev/null +++ b/lib/uninorm/decomposition-table2.h @@ -0,0 +1,3152 @@ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ +/* Decomposition of Unicode characters. */ +/* Generated automatically by gen-uni-tables.c for Unicode 5.1.0. */ + +const unsigned char gl_uninorm_decomp_chars_table[] = +{ + 0x08, 0x00, 0x20, 0xC0, 0x00, 0x20, 0x00, 0x03, 0x08, 0x20, 0x00, 0x61, + 0xC0, 0x00, 0x20, 0x00, 0x03, 0x04, 0x20, 0x00, 0x32, 0x20, 0x00, 0x33, + 0xC0, 0x00, 0x20, 0x00, 0x03, 0x01, 0x40, 0x03, 0xBC, 0xC0, 0x00, 0x20, + 0x00, 0x03, 0x27, 0x20, 0x00, 0x31, 0x20, 0x00, 0x6F, 0xBC, 0x00, 0x31, + 0x80, 0x20, 0x44, 0x00, 0x00, 0x34, 0xBC, 0x00, 0x31, 0x80, 0x20, 0x44, + 0x00, 0x00, 0x32, 0xBC, 0x00, 0x33, 0x80, 0x20, 0x44, 0x00, 0x00, 0x34, + 0x80, 0x00, 0x41, 0x00, 0x03, 0x00, 0x80, 0x00, 0x41, 0x00, 0x03, 0x01, + 0x80, 0x00, 0x41, 0x00, 0x03, 0x02, 0x80, 0x00, 0x41, 0x00, 0x03, 0x03, + 0x80, 0x00, 0x41, 0x00, 0x03, 0x08, 0x80, 0x00, 0x41, 0x00, 0x03, 0x0A, + 0x80, 0x00, 0x43, 0x00, 0x03, 0x27, 0x80, 0x00, 0x45, 0x00, 0x03, 0x00, + 0x80, 0x00, 0x45, 0x00, 0x03, 0x01, 0x80, 0x00, 0x45, 0x00, 0x03, 0x02, + 0x80, 0x00, 0x45, 0x00, 0x03, 0x08, 0x80, 0x00, 0x49, 0x00, 0x03, 0x00, + 0x80, 0x00, 0x49, 0x00, 0x03, 0x01, 0x80, 0x00, 0x49, 0x00, 0x03, 0x02, + 0x80, 0x00, 0x49, 0x00, 0x03, 0x08, 0x80, 0x00, 0x4E, 0x00, 0x03, 0x03, + 0x80, 0x00, 0x4F, 0x00, 0x03, 0x00, 0x80, 0x00, 0x4F, 0x00, 0x03, 0x01, + 0x80, 0x00, 0x4F, 0x00, 0x03, 0x02, 0x80, 0x00, 0x4F, 0x00, 0x03, 0x03, + 0x80, 0x00, 0x4F, 0x00, 0x03, 0x08, 0x80, 0x00, 0x55, 0x00, 0x03, 0x00, + 0x80, 0x00, 0x55, 0x00, 0x03, 0x01, 0x80, 0x00, 0x55, 0x00, 0x03, 0x02, + 0x80, 0x00, 0x55, 0x00, 0x03, 0x08, 0x80, 0x00, 0x59, 0x00, 0x03, 0x01, + 0x80, 0x00, 0x61, 0x00, 0x03, 0x00, 0x80, 0x00, 0x61, 0x00, 0x03, 0x01, + 0x80, 0x00, 0x61, 0x00, 0x03, 0x02, 0x80, 0x00, 0x61, 0x00, 0x03, 0x03, + 0x80, 0x00, 0x61, 0x00, 0x03, 0x08, 0x80, 0x00, 0x61, 0x00, 0x03, 0x0A, + 0x80, 0x00, 0x63, 0x00, 0x03, 0x27, 0x80, 0x00, 0x65, 0x00, 0x03, 0x00, + 0x80, 0x00, 0x65, 0x00, 0x03, 0x01, 0x80, 0x00, 0x65, 0x00, 0x03, 0x02, + 0x80, 0x00, 0x65, 0x00, 0x03, 0x08, 0x80, 0x00, 0x69, 0x00, 0x03, 0x00, + 0x80, 0x00, 0x69, 0x00, 0x03, 0x01, 0x80, 0x00, 0x69, 0x00, 0x03, 0x02, + 0x80, 0x00, 0x69, 0x00, 0x03, 0x08, 0x80, 0x00, 0x6E, 0x00, 0x03, 0x03, + 0x80, 0x00, 0x6F, 0x00, 0x03, 0x00, 0x80, 0x00, 0x6F, 0x00, 0x03, 0x01, + 0x80, 0x00, 0x6F, 0x00, 0x03, 0x02, 0x80, 0x00, 0x6F, 0x00, 0x03, 0x03, + 0x80, 0x00, 0x6F, 0x00, 0x03, 0x08, 0x80, 0x00, 0x75, 0x00, 0x03, 0x00, + 0x80, 0x00, 0x75, 0x00, 0x03, 0x01, 0x80, 0x00, 0x75, 0x00, 0x03, 0x02, + 0x80, 0x00, 0x75, 0x00, 0x03, 0x08, 0x80, 0x00, 0x79, 0x00, 0x03, 0x01, + 0x80, 0x00, 0x79, 0x00, 0x03, 0x08, 0x80, 0x00, 0x41, 0x00, 0x03, 0x04, + 0x80, 0x00, 0x61, 0x00, 0x03, 0x04, 0x80, 0x00, 0x41, 0x00, 0x03, 0x06, + 0x80, 0x00, 0x61, 0x00, 0x03, 0x06, 0x80, 0x00, 0x41, 0x00, 0x03, 0x28, + 0x80, 0x00, 0x61, 0x00, 0x03, 0x28, 0x80, 0x00, 0x43, 0x00, 0x03, 0x01, + 0x80, 0x00, 0x63, 0x00, 0x03, 0x01, 0x80, 0x00, 0x43, 0x00, 0x03, 0x02, + 0x80, 0x00, 0x63, 0x00, 0x03, 0x02, 0x80, 0x00, 0x43, 0x00, 0x03, 0x07, + 0x80, 0x00, 0x63, 0x00, 0x03, 0x07, 0x80, 0x00, 0x43, 0x00, 0x03, 0x0C, + 0x80, 0x00, 0x63, 0x00, 0x03, 0x0C, 0x80, 0x00, 0x44, 0x00, 0x03, 0x0C, + 0x80, 0x00, 0x64, 0x00, 0x03, 0x0C, 0x80, 0x00, 0x45, 0x00, 0x03, 0x04, + 0x80, 0x00, 0x65, 0x00, 0x03, 0x04, 0x80, 0x00, 0x45, 0x00, 0x03, 0x06, + 0x80, 0x00, 0x65, 0x00, 0x03, 0x06, 0x80, 0x00, 0x45, 0x00, 0x03, 0x07, + 0x80, 0x00, 0x65, 0x00, 0x03, 0x07, 0x80, 0x00, 0x45, 0x00, 0x03, 0x28, + 0x80, 0x00, 0x65, 0x00, 0x03, 0x28, 0x80, 0x00, 0x45, 0x00, 0x03, 0x0C, + 0x80, 0x00, 0x65, 0x00, 0x03, 0x0C, 0x80, 0x00, 0x47, 0x00, 0x03, 0x02, + 0x80, 0x00, 0x67, 0x00, 0x03, 0x02, 0x80, 0x00, 0x47, 0x00, 0x03, 0x06, + 0x80, 0x00, 0x67, 0x00, 0x03, 0x06, 0x80, 0x00, 0x47, 0x00, 0x03, 0x07, + 0x80, 0x00, 0x67, 0x00, 0x03, 0x07, 0x80, 0x00, 0x47, 0x00, 0x03, 0x27, + 0x80, 0x00, 0x67, 0x00, 0x03, 0x27, 0x80, 0x00, 0x48, 0x00, 0x03, 0x02, + 0x80, 0x00, 0x68, 0x00, 0x03, 0x02, 0x80, 0x00, 0x49, 0x00, 0x03, 0x03, + 0x80, 0x00, 0x69, 0x00, 0x03, 0x03, 0x80, 0x00, 0x49, 0x00, 0x03, 0x04, + 0x80, 0x00, 0x69, 0x00, 0x03, 0x04, 0x80, 0x00, 0x49, 0x00, 0x03, 0x06, + 0x80, 0x00, 0x69, 0x00, 0x03, 0x06, 0x80, 0x00, 0x49, 0x00, 0x03, 0x28, + 0x80, 0x00, 0x69, 0x00, 0x03, 0x28, 0x80, 0x00, 0x49, 0x00, 0x03, 0x07, + 0xC0, 0x00, 0x49, 0x00, 0x00, 0x4A, 0xC0, 0x00, 0x69, 0x00, 0x00, 0x6A, + 0x80, 0x00, 0x4A, 0x00, 0x03, 0x02, 0x80, 0x00, 0x6A, 0x00, 0x03, 0x02, + 0x80, 0x00, 0x4B, 0x00, 0x03, 0x27, 0x80, 0x00, 0x6B, 0x00, 0x03, 0x27, + 0x80, 0x00, 0x4C, 0x00, 0x03, 0x01, 0x80, 0x00, 0x6C, 0x00, 0x03, 0x01, + 0x80, 0x00, 0x4C, 0x00, 0x03, 0x27, 0x80, 0x00, 0x6C, 0x00, 0x03, 0x27, + 0x80, 0x00, 0x4C, 0x00, 0x03, 0x0C, 0x80, 0x00, 0x6C, 0x00, 0x03, 0x0C, + 0xC0, 0x00, 0x4C, 0x00, 0x00, 0xB7, 0xC0, 0x00, 0x6C, 0x00, 0x00, 0xB7, + 0x80, 0x00, 0x4E, 0x00, 0x03, 0x01, 0x80, 0x00, 0x6E, 0x00, 0x03, 0x01, + 0x80, 0x00, 0x4E, 0x00, 0x03, 0x27, 0x80, 0x00, 0x6E, 0x00, 0x03, 0x27, + 0x80, 0x00, 0x4E, 0x00, 0x03, 0x0C, 0x80, 0x00, 0x6E, 0x00, 0x03, 0x0C, + 0xC0, 0x02, 0xBC, 0x00, 0x00, 0x6E, 0x80, 0x00, 0x4F, 0x00, 0x03, 0x04, + 0x80, 0x00, 0x6F, 0x00, 0x03, 0x04, 0x80, 0x00, 0x4F, 0x00, 0x03, 0x06, + 0x80, 0x00, 0x6F, 0x00, 0x03, 0x06, 0x80, 0x00, 0x4F, 0x00, 0x03, 0x0B, + 0x80, 0x00, 0x6F, 0x00, 0x03, 0x0B, 0x80, 0x00, 0x52, 0x00, 0x03, 0x01, + 0x80, 0x00, 0x72, 0x00, 0x03, 0x01, 0x80, 0x00, 0x52, 0x00, 0x03, 0x27, + 0x80, 0x00, 0x72, 0x00, 0x03, 0x27, 0x80, 0x00, 0x52, 0x00, 0x03, 0x0C, + 0x80, 0x00, 0x72, 0x00, 0x03, 0x0C, 0x80, 0x00, 0x53, 0x00, 0x03, 0x01, + 0x80, 0x00, 0x73, 0x00, 0x03, 0x01, 0x80, 0x00, 0x53, 0x00, 0x03, 0x02, + 0x80, 0x00, 0x73, 0x00, 0x03, 0x02, 0x80, 0x00, 0x53, 0x00, 0x03, 0x27, + 0x80, 0x00, 0x73, 0x00, 0x03, 0x27, 0x80, 0x00, 0x53, 0x00, 0x03, 0x0C, + 0x80, 0x00, 0x73, 0x00, 0x03, 0x0C, 0x80, 0x00, 0x54, 0x00, 0x03, 0x27, + 0x80, 0x00, 0x74, 0x00, 0x03, 0x27, 0x80, 0x00, 0x54, 0x00, 0x03, 0x0C, + 0x80, 0x00, 0x74, 0x00, 0x03, 0x0C, 0x80, 0x00, 0x55, 0x00, 0x03, 0x03, + 0x80, 0x00, 0x75, 0x00, 0x03, 0x03, 0x80, 0x00, 0x55, 0x00, 0x03, 0x04, + 0x80, 0x00, 0x75, 0x00, 0x03, 0x04, 0x80, 0x00, 0x55, 0x00, 0x03, 0x06, + 0x80, 0x00, 0x75, 0x00, 0x03, 0x06, 0x80, 0x00, 0x55, 0x00, 0x03, 0x0A, + 0x80, 0x00, 0x75, 0x00, 0x03, 0x0A, 0x80, 0x00, 0x55, 0x00, 0x03, 0x0B, + 0x80, 0x00, 0x75, 0x00, 0x03, 0x0B, 0x80, 0x00, 0x55, 0x00, 0x03, 0x28, + 0x80, 0x00, 0x75, 0x00, 0x03, 0x28, 0x80, 0x00, 0x57, 0x00, 0x03, 0x02, + 0x80, 0x00, 0x77, 0x00, 0x03, 0x02, 0x80, 0x00, 0x59, 0x00, 0x03, 0x02, + 0x80, 0x00, 0x79, 0x00, 0x03, 0x02, 0x80, 0x00, 0x59, 0x00, 0x03, 0x08, + 0x80, 0x00, 0x5A, 0x00, 0x03, 0x01, 0x80, 0x00, 0x7A, 0x00, 0x03, 0x01, + 0x80, 0x00, 0x5A, 0x00, 0x03, 0x07, 0x80, 0x00, 0x7A, 0x00, 0x03, 0x07, + 0x80, 0x00, 0x5A, 0x00, 0x03, 0x0C, 0x80, 0x00, 0x7A, 0x00, 0x03, 0x0C, + 0x40, 0x00, 0x73, 0x80, 0x00, 0x4F, 0x00, 0x03, 0x1B, 0x80, 0x00, 0x6F, + 0x00, 0x03, 0x1B, 0x80, 0x00, 0x55, 0x00, 0x03, 0x1B, 0x80, 0x00, 0x75, + 0x00, 0x03, 0x1B, 0xC0, 0x00, 0x44, 0x00, 0x01, 0x7D, 0xC0, 0x00, 0x44, + 0x00, 0x01, 0x7E, 0xC0, 0x00, 0x64, 0x00, 0x01, 0x7E, 0xC0, 0x00, 0x4C, + 0x00, 0x00, 0x4A, 0xC0, 0x00, 0x4C, 0x00, 0x00, 0x6A, 0xC0, 0x00, 0x6C, + 0x00, 0x00, 0x6A, 0xC0, 0x00, 0x4E, 0x00, 0x00, 0x4A, 0xC0, 0x00, 0x4E, + 0x00, 0x00, 0x6A, 0xC0, 0x00, 0x6E, 0x00, 0x00, 0x6A, 0x80, 0x00, 0x41, + 0x00, 0x03, 0x0C, 0x80, 0x00, 0x61, 0x00, 0x03, 0x0C, 0x80, 0x00, 0x49, + 0x00, 0x03, 0x0C, 0x80, 0x00, 0x69, 0x00, 0x03, 0x0C, 0x80, 0x00, 0x4F, + 0x00, 0x03, 0x0C, 0x80, 0x00, 0x6F, 0x00, 0x03, 0x0C, 0x80, 0x00, 0x55, + 0x00, 0x03, 0x0C, 0x80, 0x00, 0x75, 0x00, 0x03, 0x0C, 0x80, 0x00, 0xDC, + 0x00, 0x03, 0x04, 0x80, 0x00, 0xFC, 0x00, 0x03, 0x04, 0x80, 0x00, 0xDC, + 0x00, 0x03, 0x01, 0x80, 0x00, 0xFC, 0x00, 0x03, 0x01, 0x80, 0x00, 0xDC, + 0x00, 0x03, 0x0C, 0x80, 0x00, 0xFC, 0x00, 0x03, 0x0C, 0x80, 0x00, 0xDC, + 0x00, 0x03, 0x00, 0x80, 0x00, 0xFC, 0x00, 0x03, 0x00, 0x80, 0x00, 0xC4, + 0x00, 0x03, 0x04, 0x80, 0x00, 0xE4, 0x00, 0x03, 0x04, 0x80, 0x02, 0x26, + 0x00, 0x03, 0x04, 0x80, 0x02, 0x27, 0x00, 0x03, 0x04, 0x80, 0x00, 0xC6, + 0x00, 0x03, 0x04, 0x80, 0x00, 0xE6, 0x00, 0x03, 0x04, 0x80, 0x00, 0x47, + 0x00, 0x03, 0x0C, 0x80, 0x00, 0x67, 0x00, 0x03, 0x0C, 0x80, 0x00, 0x4B, + 0x00, 0x03, 0x0C, 0x80, 0x00, 0x6B, 0x00, 0x03, 0x0C, 0x80, 0x00, 0x4F, + 0x00, 0x03, 0x28, 0x80, 0x00, 0x6F, 0x00, 0x03, 0x28, 0x80, 0x01, 0xEA, + 0x00, 0x03, 0x04, 0x80, 0x01, 0xEB, 0x00, 0x03, 0x04, 0x80, 0x01, 0xB7, + 0x00, 0x03, 0x0C, 0x80, 0x02, 0x92, 0x00, 0x03, 0x0C, 0x80, 0x00, 0x6A, + 0x00, 0x03, 0x0C, 0xC0, 0x00, 0x44, 0x00, 0x00, 0x5A, 0xC0, 0x00, 0x44, + 0x00, 0x00, 0x7A, 0xC0, 0x00, 0x64, 0x00, 0x00, 0x7A, 0x80, 0x00, 0x47, + 0x00, 0x03, 0x01, 0x80, 0x00, 0x67, 0x00, 0x03, 0x01, 0x80, 0x00, 0x4E, + 0x00, 0x03, 0x00, 0x80, 0x00, 0x6E, 0x00, 0x03, 0x00, 0x80, 0x00, 0xC5, + 0x00, 0x03, 0x01, 0x80, 0x00, 0xE5, 0x00, 0x03, 0x01, 0x80, 0x00, 0xC6, + 0x00, 0x03, 0x01, 0x80, 0x00, 0xE6, 0x00, 0x03, 0x01, 0x80, 0x00, 0xD8, + 0x00, 0x03, 0x01, 0x80, 0x00, 0xF8, 0x00, 0x03, 0x01, 0x80, 0x00, 0x41, + 0x00, 0x03, 0x0F, 0x80, 0x00, 0x61, 0x00, 0x03, 0x0F, 0x80, 0x00, 0x41, + 0x00, 0x03, 0x11, 0x80, 0x00, 0x61, 0x00, 0x03, 0x11, 0x80, 0x00, 0x45, + 0x00, 0x03, 0x0F, 0x80, 0x00, 0x65, 0x00, 0x03, 0x0F, 0x80, 0x00, 0x45, + 0x00, 0x03, 0x11, 0x80, 0x00, 0x65, 0x00, 0x03, 0x11, 0x80, 0x00, 0x49, + 0x00, 0x03, 0x0F, 0x80, 0x00, 0x69, 0x00, 0x03, 0x0F, 0x80, 0x00, 0x49, + 0x00, 0x03, 0x11, 0x80, 0x00, 0x69, 0x00, 0x03, 0x11, 0x80, 0x00, 0x4F, + 0x00, 0x03, 0x0F, 0x80, 0x00, 0x6F, 0x00, 0x03, 0x0F, 0x80, 0x00, 0x4F, + 0x00, 0x03, 0x11, 0x80, 0x00, 0x6F, 0x00, 0x03, 0x11, 0x80, 0x00, 0x52, + 0x00, 0x03, 0x0F, 0x80, 0x00, 0x72, 0x00, 0x03, 0x0F, 0x80, 0x00, 0x52, + 0x00, 0x03, 0x11, 0x80, 0x00, 0x72, 0x00, 0x03, 0x11, 0x80, 0x00, 0x55, + 0x00, 0x03, 0x0F, 0x80, 0x00, 0x75, 0x00, 0x03, 0x0F, 0x80, 0x00, 0x55, + 0x00, 0x03, 0x11, 0x80, 0x00, 0x75, 0x00, 0x03, 0x11, 0x80, 0x00, 0x53, + 0x00, 0x03, 0x26, 0x80, 0x00, 0x73, 0x00, 0x03, 0x26, 0x80, 0x00, 0x54, + 0x00, 0x03, 0x26, 0x80, 0x00, 0x74, 0x00, 0x03, 0x26, 0x80, 0x00, 0x48, + 0x00, 0x03, 0x0C, 0x80, 0x00, 0x68, 0x00, 0x03, 0x0C, 0x80, 0x00, 0x41, + 0x00, 0x03, 0x07, 0x80, 0x00, 0x61, 0x00, 0x03, 0x07, 0x80, 0x00, 0x45, + 0x00, 0x03, 0x27, 0x80, 0x00, 0x65, 0x00, 0x03, 0x27, 0x80, 0x00, 0xD6, + 0x00, 0x03, 0x04, 0x80, 0x00, 0xF6, 0x00, 0x03, 0x04, 0x80, 0x00, 0xD5, + 0x00, 0x03, 0x04, 0x80, 0x00, 0xF5, 0x00, 0x03, 0x04, 0x80, 0x00, 0x4F, + 0x00, 0x03, 0x07, 0x80, 0x00, 0x6F, 0x00, 0x03, 0x07, 0x80, 0x02, 0x2E, + 0x00, 0x03, 0x04, 0x80, 0x02, 0x2F, 0x00, 0x03, 0x04, 0x80, 0x00, 0x59, + 0x00, 0x03, 0x04, 0x80, 0x00, 0x79, 0x00, 0x03, 0x04, 0x20, 0x00, 0x68, + 0x20, 0x02, 0x66, 0x20, 0x00, 0x6A, 0x20, 0x00, 0x72, 0x20, 0x02, 0x79, + 0x20, 0x02, 0x7B, 0x20, 0x02, 0x81, 0x20, 0x00, 0x77, 0x20, 0x00, 0x79, + 0xC0, 0x00, 0x20, 0x00, 0x03, 0x06, 0xC0, 0x00, 0x20, 0x00, 0x03, 0x07, + 0xC0, 0x00, 0x20, 0x00, 0x03, 0x0A, 0xC0, 0x00, 0x20, 0x00, 0x03, 0x28, + 0xC0, 0x00, 0x20, 0x00, 0x03, 0x03, 0xC0, 0x00, 0x20, 0x00, 0x03, 0x0B, + 0x20, 0x02, 0x63, 0x20, 0x00, 0x6C, 0x20, 0x00, 0x73, 0x20, 0x00, 0x78, + 0x20, 0x02, 0x95, 0x00, 0x03, 0x00, 0x00, 0x03, 0x01, 0x00, 0x03, 0x13, + 0x80, 0x03, 0x08, 0x00, 0x03, 0x01, 0x00, 0x02, 0xB9, 0xC0, 0x00, 0x20, + 0x00, 0x03, 0x45, 0x00, 0x00, 0x3B, 0xC0, 0x00, 0x20, 0x00, 0x03, 0x01, + 0x80, 0x00, 0xA8, 0x00, 0x03, 0x01, 0x80, 0x03, 0x91, 0x00, 0x03, 0x01, + 0x00, 0x00, 0xB7, 0x80, 0x03, 0x95, 0x00, 0x03, 0x01, 0x80, 0x03, 0x97, + 0x00, 0x03, 0x01, 0x80, 0x03, 0x99, 0x00, 0x03, 0x01, 0x80, 0x03, 0x9F, + 0x00, 0x03, 0x01, 0x80, 0x03, 0xA5, 0x00, 0x03, 0x01, 0x80, 0x03, 0xA9, + 0x00, 0x03, 0x01, 0x80, 0x03, 0xCA, 0x00, 0x03, 0x01, 0x80, 0x03, 0x99, + 0x00, 0x03, 0x08, 0x80, 0x03, 0xA5, 0x00, 0x03, 0x08, 0x80, 0x03, 0xB1, + 0x00, 0x03, 0x01, 0x80, 0x03, 0xB5, 0x00, 0x03, 0x01, 0x80, 0x03, 0xB7, + 0x00, 0x03, 0x01, 0x80, 0x03, 0xB9, 0x00, 0x03, 0x01, 0x80, 0x03, 0xCB, + 0x00, 0x03, 0x01, 0x80, 0x03, 0xB9, 0x00, 0x03, 0x08, 0x80, 0x03, 0xC5, + 0x00, 0x03, 0x08, 0x80, 0x03, 0xBF, 0x00, 0x03, 0x01, 0x80, 0x03, 0xC5, + 0x00, 0x03, 0x01, 0x80, 0x03, 0xC9, 0x00, 0x03, 0x01, 0x40, 0x03, 0xB2, + 0x40, 0x03, 0xB8, 0x40, 0x03, 0xA5, 0x80, 0x03, 0xD2, 0x00, 0x03, 0x01, + 0x80, 0x03, 0xD2, 0x00, 0x03, 0x08, 0x40, 0x03, 0xC6, 0x40, 0x03, 0xC0, + 0x40, 0x03, 0xBA, 0x40, 0x03, 0xC1, 0x40, 0x03, 0xC2, 0x40, 0x03, 0x98, + 0x40, 0x03, 0xB5, 0x40, 0x03, 0xA3, 0x80, 0x04, 0x15, 0x00, 0x03, 0x00, + 0x80, 0x04, 0x15, 0x00, 0x03, 0x08, 0x80, 0x04, 0x13, 0x00, 0x03, 0x01, + 0x80, 0x04, 0x06, 0x00, 0x03, 0x08, 0x80, 0x04, 0x1A, 0x00, 0x03, 0x01, + 0x80, 0x04, 0x18, 0x00, 0x03, 0x00, 0x80, 0x04, 0x23, 0x00, 0x03, 0x06, + 0x80, 0x04, 0x18, 0x00, 0x03, 0x06, 0x80, 0x04, 0x38, 0x00, 0x03, 0x06, + 0x80, 0x04, 0x35, 0x00, 0x03, 0x00, 0x80, 0x04, 0x35, 0x00, 0x03, 0x08, + 0x80, 0x04, 0x33, 0x00, 0x03, 0x01, 0x80, 0x04, 0x56, 0x00, 0x03, 0x08, + 0x80, 0x04, 0x3A, 0x00, 0x03, 0x01, 0x80, 0x04, 0x38, 0x00, 0x03, 0x00, + 0x80, 0x04, 0x43, 0x00, 0x03, 0x06, 0x80, 0x04, 0x74, 0x00, 0x03, 0x0F, + 0x80, 0x04, 0x75, 0x00, 0x03, 0x0F, 0x80, 0x04, 0x16, 0x00, 0x03, 0x06, + 0x80, 0x04, 0x36, 0x00, 0x03, 0x06, 0x80, 0x04, 0x10, 0x00, 0x03, 0x06, + 0x80, 0x04, 0x30, 0x00, 0x03, 0x06, 0x80, 0x04, 0x10, 0x00, 0x03, 0x08, + 0x80, 0x04, 0x30, 0x00, 0x03, 0x08, 0x80, 0x04, 0x15, 0x00, 0x03, 0x06, + 0x80, 0x04, 0x35, 0x00, 0x03, 0x06, 0x80, 0x04, 0xD8, 0x00, 0x03, 0x08, + 0x80, 0x04, 0xD9, 0x00, 0x03, 0x08, 0x80, 0x04, 0x16, 0x00, 0x03, 0x08, + 0x80, 0x04, 0x36, 0x00, 0x03, 0x08, 0x80, 0x04, 0x17, 0x00, 0x03, 0x08, + 0x80, 0x04, 0x37, 0x00, 0x03, 0x08, 0x80, 0x04, 0x18, 0x00, 0x03, 0x04, + 0x80, 0x04, 0x38, 0x00, 0x03, 0x04, 0x80, 0x04, 0x18, 0x00, 0x03, 0x08, + 0x80, 0x04, 0x38, 0x00, 0x03, 0x08, 0x80, 0x04, 0x1E, 0x00, 0x03, 0x08, + 0x80, 0x04, 0x3E, 0x00, 0x03, 0x08, 0x80, 0x04, 0xE8, 0x00, 0x03, 0x08, + 0x80, 0x04, 0xE9, 0x00, 0x03, 0x08, 0x80, 0x04, 0x2D, 0x00, 0x03, 0x08, + 0x80, 0x04, 0x4D, 0x00, 0x03, 0x08, 0x80, 0x04, 0x23, 0x00, 0x03, 0x04, + 0x80, 0x04, 0x43, 0x00, 0x03, 0x04, 0x80, 0x04, 0x23, 0x00, 0x03, 0x08, + 0x80, 0x04, 0x43, 0x00, 0x03, 0x08, 0x80, 0x04, 0x23, 0x00, 0x03, 0x0B, + 0x80, 0x04, 0x43, 0x00, 0x03, 0x0B, 0x80, 0x04, 0x27, 0x00, 0x03, 0x08, + 0x80, 0x04, 0x47, 0x00, 0x03, 0x08, 0x80, 0x04, 0x2B, 0x00, 0x03, 0x08, + 0x80, 0x04, 0x4B, 0x00, 0x03, 0x08, 0xC0, 0x05, 0x65, 0x00, 0x05, 0x82, + 0x80, 0x06, 0x27, 0x00, 0x06, 0x53, 0x80, 0x06, 0x27, 0x00, 0x06, 0x54, + 0x80, 0x06, 0x48, 0x00, 0x06, 0x54, 0x80, 0x06, 0x27, 0x00, 0x06, 0x55, + 0x80, 0x06, 0x4A, 0x00, 0x06, 0x54, 0xC0, 0x06, 0x27, 0x00, 0x06, 0x74, + 0xC0, 0x06, 0x48, 0x00, 0x06, 0x74, 0xC0, 0x06, 0xC7, 0x00, 0x06, 0x74, + 0xC0, 0x06, 0x4A, 0x00, 0x06, 0x74, 0x80, 0x06, 0xD5, 0x00, 0x06, 0x54, + 0x80, 0x06, 0xC1, 0x00, 0x06, 0x54, 0x80, 0x06, 0xD2, 0x00, 0x06, 0x54, + 0x80, 0x09, 0x28, 0x00, 0x09, 0x3C, 0x80, 0x09, 0x30, 0x00, 0x09, 0x3C, + 0x80, 0x09, 0x33, 0x00, 0x09, 0x3C, 0x80, 0x09, 0x15, 0x00, 0x09, 0x3C, + 0x80, 0x09, 0x16, 0x00, 0x09, 0x3C, 0x80, 0x09, 0x17, 0x00, 0x09, 0x3C, + 0x80, 0x09, 0x1C, 0x00, 0x09, 0x3C, 0x80, 0x09, 0x21, 0x00, 0x09, 0x3C, + 0x80, 0x09, 0x22, 0x00, 0x09, 0x3C, 0x80, 0x09, 0x2B, 0x00, 0x09, 0x3C, + 0x80, 0x09, 0x2F, 0x00, 0x09, 0x3C, 0x80, 0x09, 0xC7, 0x00, 0x09, 0xBE, + 0x80, 0x09, 0xC7, 0x00, 0x09, 0xD7, 0x80, 0x09, 0xA1, 0x00, 0x09, 0xBC, + 0x80, 0x09, 0xA2, 0x00, 0x09, 0xBC, 0x80, 0x09, 0xAF, 0x00, 0x09, 0xBC, + 0x80, 0x0A, 0x32, 0x00, 0x0A, 0x3C, 0x80, 0x0A, 0x38, 0x00, 0x0A, 0x3C, + 0x80, 0x0A, 0x16, 0x00, 0x0A, 0x3C, 0x80, 0x0A, 0x17, 0x00, 0x0A, 0x3C, + 0x80, 0x0A, 0x1C, 0x00, 0x0A, 0x3C, 0x80, 0x0A, 0x2B, 0x00, 0x0A, 0x3C, + 0x80, 0x0B, 0x47, 0x00, 0x0B, 0x56, 0x80, 0x0B, 0x47, 0x00, 0x0B, 0x3E, + 0x80, 0x0B, 0x47, 0x00, 0x0B, 0x57, 0x80, 0x0B, 0x21, 0x00, 0x0B, 0x3C, + 0x80, 0x0B, 0x22, 0x00, 0x0B, 0x3C, 0x80, 0x0B, 0x92, 0x00, 0x0B, 0xD7, + 0x80, 0x0B, 0xC6, 0x00, 0x0B, 0xBE, 0x80, 0x0B, 0xC7, 0x00, 0x0B, 0xBE, + 0x80, 0x0B, 0xC6, 0x00, 0x0B, 0xD7, 0x80, 0x0C, 0x46, 0x00, 0x0C, 0x56, + 0x80, 0x0C, 0xBF, 0x00, 0x0C, 0xD5, 0x80, 0x0C, 0xC6, 0x00, 0x0C, 0xD5, + 0x80, 0x0C, 0xC6, 0x00, 0x0C, 0xD6, 0x80, 0x0C, 0xC6, 0x00, 0x0C, 0xC2, + 0x80, 0x0C, 0xCA, 0x00, 0x0C, 0xD5, 0x80, 0x0D, 0x46, 0x00, 0x0D, 0x3E, + 0x80, 0x0D, 0x47, 0x00, 0x0D, 0x3E, 0x80, 0x0D, 0x46, 0x00, 0x0D, 0x57, + 0x80, 0x0D, 0xD9, 0x00, 0x0D, 0xCA, 0x80, 0x0D, 0xD9, 0x00, 0x0D, 0xCF, + 0x80, 0x0D, 0xDC, 0x00, 0x0D, 0xCA, 0x80, 0x0D, 0xD9, 0x00, 0x0D, 0xDF, + 0xC0, 0x0E, 0x4D, 0x00, 0x0E, 0x32, 0xC0, 0x0E, 0xCD, 0x00, 0x0E, 0xB2, + 0xC0, 0x0E, 0xAB, 0x00, 0x0E, 0x99, 0xC0, 0x0E, 0xAB, 0x00, 0x0E, 0xA1, + 0x08, 0x0F, 0x0B, 0x80, 0x0F, 0x42, 0x00, 0x0F, 0xB7, 0x80, 0x0F, 0x4C, + 0x00, 0x0F, 0xB7, 0x80, 0x0F, 0x51, 0x00, 0x0F, 0xB7, 0x80, 0x0F, 0x56, + 0x00, 0x0F, 0xB7, 0x80, 0x0F, 0x5B, 0x00, 0x0F, 0xB7, 0x80, 0x0F, 0x40, + 0x00, 0x0F, 0xB5, 0x80, 0x0F, 0x71, 0x00, 0x0F, 0x72, 0x80, 0x0F, 0x71, + 0x00, 0x0F, 0x74, 0x80, 0x0F, 0xB2, 0x00, 0x0F, 0x80, 0xC0, 0x0F, 0xB2, + 0x00, 0x0F, 0x81, 0x80, 0x0F, 0xB3, 0x00, 0x0F, 0x80, 0xC0, 0x0F, 0xB3, + 0x00, 0x0F, 0x81, 0x80, 0x0F, 0x71, 0x00, 0x0F, 0x80, 0x80, 0x0F, 0x92, + 0x00, 0x0F, 0xB7, 0x80, 0x0F, 0x9C, 0x00, 0x0F, 0xB7, 0x80, 0x0F, 0xA1, + 0x00, 0x0F, 0xB7, 0x80, 0x0F, 0xA6, 0x00, 0x0F, 0xB7, 0x80, 0x0F, 0xAB, + 0x00, 0x0F, 0xB7, 0x80, 0x0F, 0x90, 0x00, 0x0F, 0xB5, 0x80, 0x10, 0x25, + 0x00, 0x10, 0x2E, 0x20, 0x10, 0xDC, 0x80, 0x1B, 0x05, 0x00, 0x1B, 0x35, + 0x80, 0x1B, 0x07, 0x00, 0x1B, 0x35, 0x80, 0x1B, 0x09, 0x00, 0x1B, 0x35, + 0x80, 0x1B, 0x0B, 0x00, 0x1B, 0x35, 0x80, 0x1B, 0x0D, 0x00, 0x1B, 0x35, + 0x80, 0x1B, 0x11, 0x00, 0x1B, 0x35, 0x80, 0x1B, 0x3A, 0x00, 0x1B, 0x35, + 0x80, 0x1B, 0x3C, 0x00, 0x1B, 0x35, 0x80, 0x1B, 0x3E, 0x00, 0x1B, 0x35, + 0x80, 0x1B, 0x3F, 0x00, 0x1B, 0x35, 0x80, 0x1B, 0x42, 0x00, 0x1B, 0x35, + 0x20, 0x00, 0x41, 0x20, 0x00, 0xC6, 0x20, 0x00, 0x42, 0x20, 0x00, 0x44, + 0x20, 0x00, 0x45, 0x20, 0x01, 0x8E, 0x20, 0x00, 0x47, 0x20, 0x00, 0x48, + 0x20, 0x00, 0x49, 0x20, 0x00, 0x4A, 0x20, 0x00, 0x4B, 0x20, 0x00, 0x4C, + 0x20, 0x00, 0x4D, 0x20, 0x00, 0x4E, 0x20, 0x00, 0x4F, 0x20, 0x02, 0x22, + 0x20, 0x00, 0x50, 0x20, 0x00, 0x52, 0x20, 0x00, 0x54, 0x20, 0x00, 0x55, + 0x20, 0x00, 0x57, 0x20, 0x00, 0x61, 0x20, 0x02, 0x50, 0x20, 0x02, 0x51, + 0x20, 0x1D, 0x02, 0x20, 0x00, 0x62, 0x20, 0x00, 0x64, 0x20, 0x00, 0x65, + 0x20, 0x02, 0x59, 0x20, 0x02, 0x5B, 0x20, 0x02, 0x5C, 0x20, 0x00, 0x67, + 0x20, 0x00, 0x6B, 0x20, 0x00, 0x6D, 0x20, 0x01, 0x4B, 0x20, 0x00, 0x6F, + 0x20, 0x02, 0x54, 0x20, 0x1D, 0x16, 0x20, 0x1D, 0x17, 0x20, 0x00, 0x70, + 0x20, 0x00, 0x74, 0x20, 0x00, 0x75, 0x20, 0x1D, 0x1D, 0x20, 0x02, 0x6F, + 0x20, 0x00, 0x76, 0x20, 0x1D, 0x25, 0x20, 0x03, 0xB2, 0x20, 0x03, 0xB3, + 0x20, 0x03, 0xB4, 0x20, 0x03, 0xC6, 0x20, 0x03, 0xC7, 0x24, 0x00, 0x69, + 0x24, 0x00, 0x72, 0x24, 0x00, 0x75, 0x24, 0x00, 0x76, 0x24, 0x03, 0xB2, + 0x24, 0x03, 0xB3, 0x24, 0x03, 0xC1, 0x24, 0x03, 0xC6, 0x24, 0x03, 0xC7, + 0x20, 0x04, 0x3D, 0x20, 0x02, 0x52, 0x20, 0x00, 0x63, 0x20, 0x02, 0x55, + 0x20, 0x00, 0xF0, 0x20, 0x02, 0x5C, 0x20, 0x00, 0x66, 0x20, 0x02, 0x5F, + 0x20, 0x02, 0x61, 0x20, 0x02, 0x65, 0x20, 0x02, 0x68, 0x20, 0x02, 0x69, + 0x20, 0x02, 0x6A, 0x20, 0x1D, 0x7B, 0x20, 0x02, 0x9D, 0x20, 0x02, 0x6D, + 0x20, 0x1D, 0x85, 0x20, 0x02, 0x9F, 0x20, 0x02, 0x71, 0x20, 0x02, 0x70, + 0x20, 0x02, 0x72, 0x20, 0x02, 0x73, 0x20, 0x02, 0x74, 0x20, 0x02, 0x75, + 0x20, 0x02, 0x78, 0x20, 0x02, 0x82, 0x20, 0x02, 0x83, 0x20, 0x01, 0xAB, + 0x20, 0x02, 0x89, 0x20, 0x02, 0x8A, 0x20, 0x1D, 0x1C, 0x20, 0x02, 0x8B, + 0x20, 0x02, 0x8C, 0x20, 0x00, 0x7A, 0x20, 0x02, 0x90, 0x20, 0x02, 0x91, + 0x20, 0x02, 0x92, 0x20, 0x03, 0xB8, 0x80, 0x00, 0x41, 0x00, 0x03, 0x25, + 0x80, 0x00, 0x61, 0x00, 0x03, 0x25, 0x80, 0x00, 0x42, 0x00, 0x03, 0x07, + 0x80, 0x00, 0x62, 0x00, 0x03, 0x07, 0x80, 0x00, 0x42, 0x00, 0x03, 0x23, + 0x80, 0x00, 0x62, 0x00, 0x03, 0x23, 0x80, 0x00, 0x42, 0x00, 0x03, 0x31, + 0x80, 0x00, 0x62, 0x00, 0x03, 0x31, 0x80, 0x00, 0xC7, 0x00, 0x03, 0x01, + 0x80, 0x00, 0xE7, 0x00, 0x03, 0x01, 0x80, 0x00, 0x44, 0x00, 0x03, 0x07, + 0x80, 0x00, 0x64, 0x00, 0x03, 0x07, 0x80, 0x00, 0x44, 0x00, 0x03, 0x23, + 0x80, 0x00, 0x64, 0x00, 0x03, 0x23, 0x80, 0x00, 0x44, 0x00, 0x03, 0x31, + 0x80, 0x00, 0x64, 0x00, 0x03, 0x31, 0x80, 0x00, 0x44, 0x00, 0x03, 0x27, + 0x80, 0x00, 0x64, 0x00, 0x03, 0x27, 0x80, 0x00, 0x44, 0x00, 0x03, 0x2D, + 0x80, 0x00, 0x64, 0x00, 0x03, 0x2D, 0x80, 0x01, 0x12, 0x00, 0x03, 0x00, + 0x80, 0x01, 0x13, 0x00, 0x03, 0x00, 0x80, 0x01, 0x12, 0x00, 0x03, 0x01, + 0x80, 0x01, 0x13, 0x00, 0x03, 0x01, 0x80, 0x00, 0x45, 0x00, 0x03, 0x2D, + 0x80, 0x00, 0x65, 0x00, 0x03, 0x2D, 0x80, 0x00, 0x45, 0x00, 0x03, 0x30, + 0x80, 0x00, 0x65, 0x00, 0x03, 0x30, 0x80, 0x02, 0x28, 0x00, 0x03, 0x06, + 0x80, 0x02, 0x29, 0x00, 0x03, 0x06, 0x80, 0x00, 0x46, 0x00, 0x03, 0x07, + 0x80, 0x00, 0x66, 0x00, 0x03, 0x07, 0x80, 0x00, 0x47, 0x00, 0x03, 0x04, + 0x80, 0x00, 0x67, 0x00, 0x03, 0x04, 0x80, 0x00, 0x48, 0x00, 0x03, 0x07, + 0x80, 0x00, 0x68, 0x00, 0x03, 0x07, 0x80, 0x00, 0x48, 0x00, 0x03, 0x23, + 0x80, 0x00, 0x68, 0x00, 0x03, 0x23, 0x80, 0x00, 0x48, 0x00, 0x03, 0x08, + 0x80, 0x00, 0x68, 0x00, 0x03, 0x08, 0x80, 0x00, 0x48, 0x00, 0x03, 0x27, + 0x80, 0x00, 0x68, 0x00, 0x03, 0x27, 0x80, 0x00, 0x48, 0x00, 0x03, 0x2E, + 0x80, 0x00, 0x68, 0x00, 0x03, 0x2E, 0x80, 0x00, 0x49, 0x00, 0x03, 0x30, + 0x80, 0x00, 0x69, 0x00, 0x03, 0x30, 0x80, 0x00, 0xCF, 0x00, 0x03, 0x01, + 0x80, 0x00, 0xEF, 0x00, 0x03, 0x01, 0x80, 0x00, 0x4B, 0x00, 0x03, 0x01, + 0x80, 0x00, 0x6B, 0x00, 0x03, 0x01, 0x80, 0x00, 0x4B, 0x00, 0x03, 0x23, + 0x80, 0x00, 0x6B, 0x00, 0x03, 0x23, 0x80, 0x00, 0x4B, 0x00, 0x03, 0x31, + 0x80, 0x00, 0x6B, 0x00, 0x03, 0x31, 0x80, 0x00, 0x4C, 0x00, 0x03, 0x23, + 0x80, 0x00, 0x6C, 0x00, 0x03, 0x23, 0x80, 0x1E, 0x36, 0x00, 0x03, 0x04, + 0x80, 0x1E, 0x37, 0x00, 0x03, 0x04, 0x80, 0x00, 0x4C, 0x00, 0x03, 0x31, + 0x80, 0x00, 0x6C, 0x00, 0x03, 0x31, 0x80, 0x00, 0x4C, 0x00, 0x03, 0x2D, + 0x80, 0x00, 0x6C, 0x00, 0x03, 0x2D, 0x80, 0x00, 0x4D, 0x00, 0x03, 0x01, + 0x80, 0x00, 0x6D, 0x00, 0x03, 0x01, 0x80, 0x00, 0x4D, 0x00, 0x03, 0x07, + 0x80, 0x00, 0x6D, 0x00, 0x03, 0x07, 0x80, 0x00, 0x4D, 0x00, 0x03, 0x23, + 0x80, 0x00, 0x6D, 0x00, 0x03, 0x23, 0x80, 0x00, 0x4E, 0x00, 0x03, 0x07, + 0x80, 0x00, 0x6E, 0x00, 0x03, 0x07, 0x80, 0x00, 0x4E, 0x00, 0x03, 0x23, + 0x80, 0x00, 0x6E, 0x00, 0x03, 0x23, 0x80, 0x00, 0x4E, 0x00, 0x03, 0x31, + 0x80, 0x00, 0x6E, 0x00, 0x03, 0x31, 0x80, 0x00, 0x4E, 0x00, 0x03, 0x2D, + 0x80, 0x00, 0x6E, 0x00, 0x03, 0x2D, 0x80, 0x00, 0xD5, 0x00, 0x03, 0x01, + 0x80, 0x00, 0xF5, 0x00, 0x03, 0x01, 0x80, 0x00, 0xD5, 0x00, 0x03, 0x08, + 0x80, 0x00, 0xF5, 0x00, 0x03, 0x08, 0x80, 0x01, 0x4C, 0x00, 0x03, 0x00, + 0x80, 0x01, 0x4D, 0x00, 0x03, 0x00, 0x80, 0x01, 0x4C, 0x00, 0x03, 0x01, + 0x80, 0x01, 0x4D, 0x00, 0x03, 0x01, 0x80, 0x00, 0x50, 0x00, 0x03, 0x01, + 0x80, 0x00, 0x70, 0x00, 0x03, 0x01, 0x80, 0x00, 0x50, 0x00, 0x03, 0x07, + 0x80, 0x00, 0x70, 0x00, 0x03, 0x07, 0x80, 0x00, 0x52, 0x00, 0x03, 0x07, + 0x80, 0x00, 0x72, 0x00, 0x03, 0x07, 0x80, 0x00, 0x52, 0x00, 0x03, 0x23, + 0x80, 0x00, 0x72, 0x00, 0x03, 0x23, 0x80, 0x1E, 0x5A, 0x00, 0x03, 0x04, + 0x80, 0x1E, 0x5B, 0x00, 0x03, 0x04, 0x80, 0x00, 0x52, 0x00, 0x03, 0x31, + 0x80, 0x00, 0x72, 0x00, 0x03, 0x31, 0x80, 0x00, 0x53, 0x00, 0x03, 0x07, + 0x80, 0x00, 0x73, 0x00, 0x03, 0x07, 0x80, 0x00, 0x53, 0x00, 0x03, 0x23, + 0x80, 0x00, 0x73, 0x00, 0x03, 0x23, 0x80, 0x01, 0x5A, 0x00, 0x03, 0x07, + 0x80, 0x01, 0x5B, 0x00, 0x03, 0x07, 0x80, 0x01, 0x60, 0x00, 0x03, 0x07, + 0x80, 0x01, 0x61, 0x00, 0x03, 0x07, 0x80, 0x1E, 0x62, 0x00, 0x03, 0x07, + 0x80, 0x1E, 0x63, 0x00, 0x03, 0x07, 0x80, 0x00, 0x54, 0x00, 0x03, 0x07, + 0x80, 0x00, 0x74, 0x00, 0x03, 0x07, 0x80, 0x00, 0x54, 0x00, 0x03, 0x23, + 0x80, 0x00, 0x74, 0x00, 0x03, 0x23, 0x80, 0x00, 0x54, 0x00, 0x03, 0x31, + 0x80, 0x00, 0x74, 0x00, 0x03, 0x31, 0x80, 0x00, 0x54, 0x00, 0x03, 0x2D, + 0x80, 0x00, 0x74, 0x00, 0x03, 0x2D, 0x80, 0x00, 0x55, 0x00, 0x03, 0x24, + 0x80, 0x00, 0x75, 0x00, 0x03, 0x24, 0x80, 0x00, 0x55, 0x00, 0x03, 0x30, + 0x80, 0x00, 0x75, 0x00, 0x03, 0x30, 0x80, 0x00, 0x55, 0x00, 0x03, 0x2D, + 0x80, 0x00, 0x75, 0x00, 0x03, 0x2D, 0x80, 0x01, 0x68, 0x00, 0x03, 0x01, + 0x80, 0x01, 0x69, 0x00, 0x03, 0x01, 0x80, 0x01, 0x6A, 0x00, 0x03, 0x08, + 0x80, 0x01, 0x6B, 0x00, 0x03, 0x08, 0x80, 0x00, 0x56, 0x00, 0x03, 0x03, + 0x80, 0x00, 0x76, 0x00, 0x03, 0x03, 0x80, 0x00, 0x56, 0x00, 0x03, 0x23, + 0x80, 0x00, 0x76, 0x00, 0x03, 0x23, 0x80, 0x00, 0x57, 0x00, 0x03, 0x00, + 0x80, 0x00, 0x77, 0x00, 0x03, 0x00, 0x80, 0x00, 0x57, 0x00, 0x03, 0x01, + 0x80, 0x00, 0x77, 0x00, 0x03, 0x01, 0x80, 0x00, 0x57, 0x00, 0x03, 0x08, + 0x80, 0x00, 0x77, 0x00, 0x03, 0x08, 0x80, 0x00, 0x57, 0x00, 0x03, 0x07, + 0x80, 0x00, 0x77, 0x00, 0x03, 0x07, 0x80, 0x00, 0x57, 0x00, 0x03, 0x23, + 0x80, 0x00, 0x77, 0x00, 0x03, 0x23, 0x80, 0x00, 0x58, 0x00, 0x03, 0x07, + 0x80, 0x00, 0x78, 0x00, 0x03, 0x07, 0x80, 0x00, 0x58, 0x00, 0x03, 0x08, + 0x80, 0x00, 0x78, 0x00, 0x03, 0x08, 0x80, 0x00, 0x59, 0x00, 0x03, 0x07, + 0x80, 0x00, 0x79, 0x00, 0x03, 0x07, 0x80, 0x00, 0x5A, 0x00, 0x03, 0x02, + 0x80, 0x00, 0x7A, 0x00, 0x03, 0x02, 0x80, 0x00, 0x5A, 0x00, 0x03, 0x23, + 0x80, 0x00, 0x7A, 0x00, 0x03, 0x23, 0x80, 0x00, 0x5A, 0x00, 0x03, 0x31, + 0x80, 0x00, 0x7A, 0x00, 0x03, 0x31, 0x80, 0x00, 0x68, 0x00, 0x03, 0x31, + 0x80, 0x00, 0x74, 0x00, 0x03, 0x08, 0x80, 0x00, 0x77, 0x00, 0x03, 0x0A, + 0x80, 0x00, 0x79, 0x00, 0x03, 0x0A, 0xC0, 0x00, 0x61, 0x00, 0x02, 0xBE, + 0x80, 0x01, 0x7F, 0x00, 0x03, 0x07, 0x80, 0x00, 0x41, 0x00, 0x03, 0x23, + 0x80, 0x00, 0x61, 0x00, 0x03, 0x23, 0x80, 0x00, 0x41, 0x00, 0x03, 0x09, + 0x80, 0x00, 0x61, 0x00, 0x03, 0x09, 0x80, 0x00, 0xC2, 0x00, 0x03, 0x01, + 0x80, 0x00, 0xE2, 0x00, 0x03, 0x01, 0x80, 0x00, 0xC2, 0x00, 0x03, 0x00, + 0x80, 0x00, 0xE2, 0x00, 0x03, 0x00, 0x80, 0x00, 0xC2, 0x00, 0x03, 0x09, + 0x80, 0x00, 0xE2, 0x00, 0x03, 0x09, 0x80, 0x00, 0xC2, 0x00, 0x03, 0x03, + 0x80, 0x00, 0xE2, 0x00, 0x03, 0x03, 0x80, 0x1E, 0xA0, 0x00, 0x03, 0x02, + 0x80, 0x1E, 0xA1, 0x00, 0x03, 0x02, 0x80, 0x01, 0x02, 0x00, 0x03, 0x01, + 0x80, 0x01, 0x03, 0x00, 0x03, 0x01, 0x80, 0x01, 0x02, 0x00, 0x03, 0x00, + 0x80, 0x01, 0x03, 0x00, 0x03, 0x00, 0x80, 0x01, 0x02, 0x00, 0x03, 0x09, + 0x80, 0x01, 0x03, 0x00, 0x03, 0x09, 0x80, 0x01, 0x02, 0x00, 0x03, 0x03, + 0x80, 0x01, 0x03, 0x00, 0x03, 0x03, 0x80, 0x1E, 0xA0, 0x00, 0x03, 0x06, + 0x80, 0x1E, 0xA1, 0x00, 0x03, 0x06, 0x80, 0x00, 0x45, 0x00, 0x03, 0x23, + 0x80, 0x00, 0x65, 0x00, 0x03, 0x23, 0x80, 0x00, 0x45, 0x00, 0x03, 0x09, + 0x80, 0x00, 0x65, 0x00, 0x03, 0x09, 0x80, 0x00, 0x45, 0x00, 0x03, 0x03, + 0x80, 0x00, 0x65, 0x00, 0x03, 0x03, 0x80, 0x00, 0xCA, 0x00, 0x03, 0x01, + 0x80, 0x00, 0xEA, 0x00, 0x03, 0x01, 0x80, 0x00, 0xCA, 0x00, 0x03, 0x00, + 0x80, 0x00, 0xEA, 0x00, 0x03, 0x00, 0x80, 0x00, 0xCA, 0x00, 0x03, 0x09, + 0x80, 0x00, 0xEA, 0x00, 0x03, 0x09, 0x80, 0x00, 0xCA, 0x00, 0x03, 0x03, + 0x80, 0x00, 0xEA, 0x00, 0x03, 0x03, 0x80, 0x1E, 0xB8, 0x00, 0x03, 0x02, + 0x80, 0x1E, 0xB9, 0x00, 0x03, 0x02, 0x80, 0x00, 0x49, 0x00, 0x03, 0x09, + 0x80, 0x00, 0x69, 0x00, 0x03, 0x09, 0x80, 0x00, 0x49, 0x00, 0x03, 0x23, + 0x80, 0x00, 0x69, 0x00, 0x03, 0x23, 0x80, 0x00, 0x4F, 0x00, 0x03, 0x23, + 0x80, 0x00, 0x6F, 0x00, 0x03, 0x23, 0x80, 0x00, 0x4F, 0x00, 0x03, 0x09, + 0x80, 0x00, 0x6F, 0x00, 0x03, 0x09, 0x80, 0x00, 0xD4, 0x00, 0x03, 0x01, + 0x80, 0x00, 0xF4, 0x00, 0x03, 0x01, 0x80, 0x00, 0xD4, 0x00, 0x03, 0x00, + 0x80, 0x00, 0xF4, 0x00, 0x03, 0x00, 0x80, 0x00, 0xD4, 0x00, 0x03, 0x09, + 0x80, 0x00, 0xF4, 0x00, 0x03, 0x09, 0x80, 0x00, 0xD4, 0x00, 0x03, 0x03, + 0x80, 0x00, 0xF4, 0x00, 0x03, 0x03, 0x80, 0x1E, 0xCC, 0x00, 0x03, 0x02, + 0x80, 0x1E, 0xCD, 0x00, 0x03, 0x02, 0x80, 0x01, 0xA0, 0x00, 0x03, 0x01, + 0x80, 0x01, 0xA1, 0x00, 0x03, 0x01, 0x80, 0x01, 0xA0, 0x00, 0x03, 0x00, + 0x80, 0x01, 0xA1, 0x00, 0x03, 0x00, 0x80, 0x01, 0xA0, 0x00, 0x03, 0x09, + 0x80, 0x01, 0xA1, 0x00, 0x03, 0x09, 0x80, 0x01, 0xA0, 0x00, 0x03, 0x03, + 0x80, 0x01, 0xA1, 0x00, 0x03, 0x03, 0x80, 0x01, 0xA0, 0x00, 0x03, 0x23, + 0x80, 0x01, 0xA1, 0x00, 0x03, 0x23, 0x80, 0x00, 0x55, 0x00, 0x03, 0x23, + 0x80, 0x00, 0x75, 0x00, 0x03, 0x23, 0x80, 0x00, 0x55, 0x00, 0x03, 0x09, + 0x80, 0x00, 0x75, 0x00, 0x03, 0x09, 0x80, 0x01, 0xAF, 0x00, 0x03, 0x01, + 0x80, 0x01, 0xB0, 0x00, 0x03, 0x01, 0x80, 0x01, 0xAF, 0x00, 0x03, 0x00, + 0x80, 0x01, 0xB0, 0x00, 0x03, 0x00, 0x80, 0x01, 0xAF, 0x00, 0x03, 0x09, + 0x80, 0x01, 0xB0, 0x00, 0x03, 0x09, 0x80, 0x01, 0xAF, 0x00, 0x03, 0x03, + 0x80, 0x01, 0xB0, 0x00, 0x03, 0x03, 0x80, 0x01, 0xAF, 0x00, 0x03, 0x23, + 0x80, 0x01, 0xB0, 0x00, 0x03, 0x23, 0x80, 0x00, 0x59, 0x00, 0x03, 0x00, + 0x80, 0x00, 0x79, 0x00, 0x03, 0x00, 0x80, 0x00, 0x59, 0x00, 0x03, 0x23, + 0x80, 0x00, 0x79, 0x00, 0x03, 0x23, 0x80, 0x00, 0x59, 0x00, 0x03, 0x09, + 0x80, 0x00, 0x79, 0x00, 0x03, 0x09, 0x80, 0x00, 0x59, 0x00, 0x03, 0x03, + 0x80, 0x00, 0x79, 0x00, 0x03, 0x03, 0x80, 0x03, 0xB1, 0x00, 0x03, 0x13, + 0x80, 0x03, 0xB1, 0x00, 0x03, 0x14, 0x80, 0x1F, 0x00, 0x00, 0x03, 0x00, + 0x80, 0x1F, 0x01, 0x00, 0x03, 0x00, 0x80, 0x1F, 0x00, 0x00, 0x03, 0x01, + 0x80, 0x1F, 0x01, 0x00, 0x03, 0x01, 0x80, 0x1F, 0x00, 0x00, 0x03, 0x42, + 0x80, 0x1F, 0x01, 0x00, 0x03, 0x42, 0x80, 0x03, 0x91, 0x00, 0x03, 0x13, + 0x80, 0x03, 0x91, 0x00, 0x03, 0x14, 0x80, 0x1F, 0x08, 0x00, 0x03, 0x00, + 0x80, 0x1F, 0x09, 0x00, 0x03, 0x00, 0x80, 0x1F, 0x08, 0x00, 0x03, 0x01, + 0x80, 0x1F, 0x09, 0x00, 0x03, 0x01, 0x80, 0x1F, 0x08, 0x00, 0x03, 0x42, + 0x80, 0x1F, 0x09, 0x00, 0x03, 0x42, 0x80, 0x03, 0xB5, 0x00, 0x03, 0x13, + 0x80, 0x03, 0xB5, 0x00, 0x03, 0x14, 0x80, 0x1F, 0x10, 0x00, 0x03, 0x00, + 0x80, 0x1F, 0x11, 0x00, 0x03, 0x00, 0x80, 0x1F, 0x10, 0x00, 0x03, 0x01, + 0x80, 0x1F, 0x11, 0x00, 0x03, 0x01, 0x80, 0x03, 0x95, 0x00, 0x03, 0x13, + 0x80, 0x03, 0x95, 0x00, 0x03, 0x14, 0x80, 0x1F, 0x18, 0x00, 0x03, 0x00, + 0x80, 0x1F, 0x19, 0x00, 0x03, 0x00, 0x80, 0x1F, 0x18, 0x00, 0x03, 0x01, + 0x80, 0x1F, 0x19, 0x00, 0x03, 0x01, 0x80, 0x03, 0xB7, 0x00, 0x03, 0x13, + 0x80, 0x03, 0xB7, 0x00, 0x03, 0x14, 0x80, 0x1F, 0x20, 0x00, 0x03, 0x00, + 0x80, 0x1F, 0x21, 0x00, 0x03, 0x00, 0x80, 0x1F, 0x20, 0x00, 0x03, 0x01, + 0x80, 0x1F, 0x21, 0x00, 0x03, 0x01, 0x80, 0x1F, 0x20, 0x00, 0x03, 0x42, + 0x80, 0x1F, 0x21, 0x00, 0x03, 0x42, 0x80, 0x03, 0x97, 0x00, 0x03, 0x13, + 0x80, 0x03, 0x97, 0x00, 0x03, 0x14, 0x80, 0x1F, 0x28, 0x00, 0x03, 0x00, + 0x80, 0x1F, 0x29, 0x00, 0x03, 0x00, 0x80, 0x1F, 0x28, 0x00, 0x03, 0x01, + 0x80, 0x1F, 0x29, 0x00, 0x03, 0x01, 0x80, 0x1F, 0x28, 0x00, 0x03, 0x42, + 0x80, 0x1F, 0x29, 0x00, 0x03, 0x42, 0x80, 0x03, 0xB9, 0x00, 0x03, 0x13, + 0x80, 0x03, 0xB9, 0x00, 0x03, 0x14, 0x80, 0x1F, 0x30, 0x00, 0x03, 0x00, + 0x80, 0x1F, 0x31, 0x00, 0x03, 0x00, 0x80, 0x1F, 0x30, 0x00, 0x03, 0x01, + 0x80, 0x1F, 0x31, 0x00, 0x03, 0x01, 0x80, 0x1F, 0x30, 0x00, 0x03, 0x42, + 0x80, 0x1F, 0x31, 0x00, 0x03, 0x42, 0x80, 0x03, 0x99, 0x00, 0x03, 0x13, + 0x80, 0x03, 0x99, 0x00, 0x03, 0x14, 0x80, 0x1F, 0x38, 0x00, 0x03, 0x00, + 0x80, 0x1F, 0x39, 0x00, 0x03, 0x00, 0x80, 0x1F, 0x38, 0x00, 0x03, 0x01, + 0x80, 0x1F, 0x39, 0x00, 0x03, 0x01, 0x80, 0x1F, 0x38, 0x00, 0x03, 0x42, + 0x80, 0x1F, 0x39, 0x00, 0x03, 0x42, 0x80, 0x03, 0xBF, 0x00, 0x03, 0x13, + 0x80, 0x03, 0xBF, 0x00, 0x03, 0x14, 0x80, 0x1F, 0x40, 0x00, 0x03, 0x00, + 0x80, 0x1F, 0x41, 0x00, 0x03, 0x00, 0x80, 0x1F, 0x40, 0x00, 0x03, 0x01, + 0x80, 0x1F, 0x41, 0x00, 0x03, 0x01, 0x80, 0x03, 0x9F, 0x00, 0x03, 0x13, + 0x80, 0x03, 0x9F, 0x00, 0x03, 0x14, 0x80, 0x1F, 0x48, 0x00, 0x03, 0x00, + 0x80, 0x1F, 0x49, 0x00, 0x03, 0x00, 0x80, 0x1F, 0x48, 0x00, 0x03, 0x01, + 0x80, 0x1F, 0x49, 0x00, 0x03, 0x01, 0x80, 0x03, 0xC5, 0x00, 0x03, 0x13, + 0x80, 0x03, 0xC5, 0x00, 0x03, 0x14, 0x80, 0x1F, 0x50, 0x00, 0x03, 0x00, + 0x80, 0x1F, 0x51, 0x00, 0x03, 0x00, 0x80, 0x1F, 0x50, 0x00, 0x03, 0x01, + 0x80, 0x1F, 0x51, 0x00, 0x03, 0x01, 0x80, 0x1F, 0x50, 0x00, 0x03, 0x42, + 0x80, 0x1F, 0x51, 0x00, 0x03, 0x42, 0x80, 0x03, 0xA5, 0x00, 0x03, 0x14, + 0x80, 0x1F, 0x59, 0x00, 0x03, 0x00, 0x80, 0x1F, 0x59, 0x00, 0x03, 0x01, + 0x80, 0x1F, 0x59, 0x00, 0x03, 0x42, 0x80, 0x03, 0xC9, 0x00, 0x03, 0x13, + 0x80, 0x03, 0xC9, 0x00, 0x03, 0x14, 0x80, 0x1F, 0x60, 0x00, 0x03, 0x00, + 0x80, 0x1F, 0x61, 0x00, 0x03, 0x00, 0x80, 0x1F, 0x60, 0x00, 0x03, 0x01, + 0x80, 0x1F, 0x61, 0x00, 0x03, 0x01, 0x80, 0x1F, 0x60, 0x00, 0x03, 0x42, + 0x80, 0x1F, 0x61, 0x00, 0x03, 0x42, 0x80, 0x03, 0xA9, 0x00, 0x03, 0x13, + 0x80, 0x03, 0xA9, 0x00, 0x03, 0x14, 0x80, 0x1F, 0x68, 0x00, 0x03, 0x00, + 0x80, 0x1F, 0x69, 0x00, 0x03, 0x00, 0x80, 0x1F, 0x68, 0x00, 0x03, 0x01, + 0x80, 0x1F, 0x69, 0x00, 0x03, 0x01, 0x80, 0x1F, 0x68, 0x00, 0x03, 0x42, + 0x80, 0x1F, 0x69, 0x00, 0x03, 0x42, 0x80, 0x03, 0xB1, 0x00, 0x03, 0x00, + 0x00, 0x03, 0xAC, 0x80, 0x03, 0xB5, 0x00, 0x03, 0x00, 0x00, 0x03, 0xAD, + 0x80, 0x03, 0xB7, 0x00, 0x03, 0x00, 0x00, 0x03, 0xAE, 0x80, 0x03, 0xB9, + 0x00, 0x03, 0x00, 0x00, 0x03, 0xAF, 0x80, 0x03, 0xBF, 0x00, 0x03, 0x00, + 0x00, 0x03, 0xCC, 0x80, 0x03, 0xC5, 0x00, 0x03, 0x00, 0x00, 0x03, 0xCD, + 0x80, 0x03, 0xC9, 0x00, 0x03, 0x00, 0x00, 0x03, 0xCE, 0x80, 0x1F, 0x00, + 0x00, 0x03, 0x45, 0x80, 0x1F, 0x01, 0x00, 0x03, 0x45, 0x80, 0x1F, 0x02, + 0x00, 0x03, 0x45, 0x80, 0x1F, 0x03, 0x00, 0x03, 0x45, 0x80, 0x1F, 0x04, + 0x00, 0x03, 0x45, 0x80, 0x1F, 0x05, 0x00, 0x03, 0x45, 0x80, 0x1F, 0x06, + 0x00, 0x03, 0x45, 0x80, 0x1F, 0x07, 0x00, 0x03, 0x45, 0x80, 0x1F, 0x08, + 0x00, 0x03, 0x45, 0x80, 0x1F, 0x09, 0x00, 0x03, 0x45, 0x80, 0x1F, 0x0A, + 0x00, 0x03, 0x45, 0x80, 0x1F, 0x0B, 0x00, 0x03, 0x45, 0x80, 0x1F, 0x0C, + 0x00, 0x03, 0x45, 0x80, 0x1F, 0x0D, 0x00, 0x03, 0x45, 0x80, 0x1F, 0x0E, + 0x00, 0x03, 0x45, 0x80, 0x1F, 0x0F, 0x00, 0x03, 0x45, 0x80, 0x1F, 0x20, + 0x00, 0x03, 0x45, 0x80, 0x1F, 0x21, 0x00, 0x03, 0x45, 0x80, 0x1F, 0x22, + 0x00, 0x03, 0x45, 0x80, 0x1F, 0x23, 0x00, 0x03, 0x45, 0x80, 0x1F, 0x24, + 0x00, 0x03, 0x45, 0x80, 0x1F, 0x25, 0x00, 0x03, 0x45, 0x80, 0x1F, 0x26, + 0x00, 0x03, 0x45, 0x80, 0x1F, 0x27, 0x00, 0x03, 0x45, 0x80, 0x1F, 0x28, + 0x00, 0x03, 0x45, 0x80, 0x1F, 0x29, 0x00, 0x03, 0x45, 0x80, 0x1F, 0x2A, + 0x00, 0x03, 0x45, 0x80, 0x1F, 0x2B, 0x00, 0x03, 0x45, 0x80, 0x1F, 0x2C, + 0x00, 0x03, 0x45, 0x80, 0x1F, 0x2D, 0x00, 0x03, 0x45, 0x80, 0x1F, 0x2E, + 0x00, 0x03, 0x45, 0x80, 0x1F, 0x2F, 0x00, 0x03, 0x45, 0x80, 0x1F, 0x60, + 0x00, 0x03, 0x45, 0x80, 0x1F, 0x61, 0x00, 0x03, 0x45, 0x80, 0x1F, 0x62, + 0x00, 0x03, 0x45, 0x80, 0x1F, 0x63, 0x00, 0x03, 0x45, 0x80, 0x1F, 0x64, + 0x00, 0x03, 0x45, 0x80, 0x1F, 0x65, 0x00, 0x03, 0x45, 0x80, 0x1F, 0x66, + 0x00, 0x03, 0x45, 0x80, 0x1F, 0x67, 0x00, 0x03, 0x45, 0x80, 0x1F, 0x68, + 0x00, 0x03, 0x45, 0x80, 0x1F, 0x69, 0x00, 0x03, 0x45, 0x80, 0x1F, 0x6A, + 0x00, 0x03, 0x45, 0x80, 0x1F, 0x6B, 0x00, 0x03, 0x45, 0x80, 0x1F, 0x6C, + 0x00, 0x03, 0x45, 0x80, 0x1F, 0x6D, 0x00, 0x03, 0x45, 0x80, 0x1F, 0x6E, + 0x00, 0x03, 0x45, 0x80, 0x1F, 0x6F, 0x00, 0x03, 0x45, 0x80, 0x03, 0xB1, + 0x00, 0x03, 0x06, 0x80, 0x03, 0xB1, 0x00, 0x03, 0x04, 0x80, 0x1F, 0x70, + 0x00, 0x03, 0x45, 0x80, 0x03, 0xB1, 0x00, 0x03, 0x45, 0x80, 0x03, 0xAC, + 0x00, 0x03, 0x45, 0x80, 0x03, 0xB1, 0x00, 0x03, 0x42, 0x80, 0x1F, 0xB6, + 0x00, 0x03, 0x45, 0x80, 0x03, 0x91, 0x00, 0x03, 0x06, 0x80, 0x03, 0x91, + 0x00, 0x03, 0x04, 0x80, 0x03, 0x91, 0x00, 0x03, 0x00, 0x00, 0x03, 0x86, + 0x80, 0x03, 0x91, 0x00, 0x03, 0x45, 0xC0, 0x00, 0x20, 0x00, 0x03, 0x13, + 0x00, 0x03, 0xB9, 0xC0, 0x00, 0x20, 0x00, 0x03, 0x13, 0xC0, 0x00, 0x20, + 0x00, 0x03, 0x42, 0x80, 0x00, 0xA8, 0x00, 0x03, 0x42, 0x80, 0x1F, 0x74, + 0x00, 0x03, 0x45, 0x80, 0x03, 0xB7, 0x00, 0x03, 0x45, 0x80, 0x03, 0xAE, + 0x00, 0x03, 0x45, 0x80, 0x03, 0xB7, 0x00, 0x03, 0x42, 0x80, 0x1F, 0xC6, + 0x00, 0x03, 0x45, 0x80, 0x03, 0x95, 0x00, 0x03, 0x00, 0x00, 0x03, 0x88, + 0x80, 0x03, 0x97, 0x00, 0x03, 0x00, 0x00, 0x03, 0x89, 0x80, 0x03, 0x97, + 0x00, 0x03, 0x45, 0x80, 0x1F, 0xBF, 0x00, 0x03, 0x00, 0x80, 0x1F, 0xBF, + 0x00, 0x03, 0x01, 0x80, 0x1F, 0xBF, 0x00, 0x03, 0x42, 0x80, 0x03, 0xB9, + 0x00, 0x03, 0x06, 0x80, 0x03, 0xB9, 0x00, 0x03, 0x04, 0x80, 0x03, 0xCA, + 0x00, 0x03, 0x00, 0x00, 0x03, 0x90, 0x80, 0x03, 0xB9, 0x00, 0x03, 0x42, + 0x80, 0x03, 0xCA, 0x00, 0x03, 0x42, 0x80, 0x03, 0x99, 0x00, 0x03, 0x06, + 0x80, 0x03, 0x99, 0x00, 0x03, 0x04, 0x80, 0x03, 0x99, 0x00, 0x03, 0x00, + 0x00, 0x03, 0x8A, 0x80, 0x1F, 0xFE, 0x00, 0x03, 0x00, 0x80, 0x1F, 0xFE, + 0x00, 0x03, 0x01, 0x80, 0x1F, 0xFE, 0x00, 0x03, 0x42, 0x80, 0x03, 0xC5, + 0x00, 0x03, 0x06, 0x80, 0x03, 0xC5, 0x00, 0x03, 0x04, 0x80, 0x03, 0xCB, + 0x00, 0x03, 0x00, 0x00, 0x03, 0xB0, 0x80, 0x03, 0xC1, 0x00, 0x03, 0x13, + 0x80, 0x03, 0xC1, 0x00, 0x03, 0x14, 0x80, 0x03, 0xC5, 0x00, 0x03, 0x42, + 0x80, 0x03, 0xCB, 0x00, 0x03, 0x42, 0x80, 0x03, 0xA5, 0x00, 0x03, 0x06, + 0x80, 0x03, 0xA5, 0x00, 0x03, 0x04, 0x80, 0x03, 0xA5, 0x00, 0x03, 0x00, + 0x00, 0x03, 0x8E, 0x80, 0x03, 0xA1, 0x00, 0x03, 0x14, 0x80, 0x00, 0xA8, + 0x00, 0x03, 0x00, 0x00, 0x03, 0x85, 0x00, 0x00, 0x60, 0x80, 0x1F, 0x7C, + 0x00, 0x03, 0x45, 0x80, 0x03, 0xC9, 0x00, 0x03, 0x45, 0x80, 0x03, 0xCE, + 0x00, 0x03, 0x45, 0x80, 0x03, 0xC9, 0x00, 0x03, 0x42, 0x80, 0x1F, 0xF6, + 0x00, 0x03, 0x45, 0x80, 0x03, 0x9F, 0x00, 0x03, 0x00, 0x00, 0x03, 0x8C, + 0x80, 0x03, 0xA9, 0x00, 0x03, 0x00, 0x00, 0x03, 0x8F, 0x80, 0x03, 0xA9, + 0x00, 0x03, 0x45, 0x00, 0x00, 0xB4, 0xC0, 0x00, 0x20, 0x00, 0x03, 0x14, + 0x00, 0x20, 0x02, 0x00, 0x20, 0x03, 0x40, 0x00, 0x20, 0x40, 0x00, 0x20, + 0x40, 0x00, 0x20, 0x40, 0x00, 0x20, 0x40, 0x00, 0x20, 0x08, 0x00, 0x20, + 0x40, 0x00, 0x20, 0x40, 0x00, 0x20, 0x40, 0x00, 0x20, 0x08, 0x20, 0x10, + 0xC0, 0x00, 0x20, 0x00, 0x03, 0x33, 0x40, 0x00, 0x2E, 0xC0, 0x00, 0x2E, + 0x00, 0x00, 0x2E, 0xC0, 0x00, 0x2E, 0x80, 0x00, 0x2E, 0x00, 0x00, 0x2E, + 0x08, 0x00, 0x20, 0xC0, 0x20, 0x32, 0x00, 0x20, 0x32, 0xC0, 0x20, 0x32, + 0x80, 0x20, 0x32, 0x00, 0x20, 0x32, 0xC0, 0x20, 0x35, 0x00, 0x20, 0x35, + 0xC0, 0x20, 0x35, 0x80, 0x20, 0x35, 0x00, 0x20, 0x35, 0xC0, 0x00, 0x21, + 0x00, 0x00, 0x21, 0xC0, 0x00, 0x20, 0x00, 0x03, 0x05, 0xC0, 0x00, 0x3F, + 0x00, 0x00, 0x3F, 0xC0, 0x00, 0x3F, 0x00, 0x00, 0x21, 0xC0, 0x00, 0x21, + 0x00, 0x00, 0x3F, 0xC0, 0x20, 0x32, 0x80, 0x20, 0x32, 0x80, 0x20, 0x32, + 0x00, 0x20, 0x32, 0x40, 0x00, 0x20, 0x20, 0x00, 0x30, 0x20, 0x00, 0x69, + 0x20, 0x00, 0x34, 0x20, 0x00, 0x35, 0x20, 0x00, 0x36, 0x20, 0x00, 0x37, + 0x20, 0x00, 0x38, 0x20, 0x00, 0x39, 0x20, 0x00, 0x2B, 0x20, 0x22, 0x12, + 0x20, 0x00, 0x3D, 0x20, 0x00, 0x28, 0x20, 0x00, 0x29, 0x20, 0x00, 0x6E, + 0x24, 0x00, 0x30, 0x24, 0x00, 0x31, 0x24, 0x00, 0x32, 0x24, 0x00, 0x33, + 0x24, 0x00, 0x34, 0x24, 0x00, 0x35, 0x24, 0x00, 0x36, 0x24, 0x00, 0x37, + 0x24, 0x00, 0x38, 0x24, 0x00, 0x39, 0x24, 0x00, 0x2B, 0x24, 0x22, 0x12, + 0x24, 0x00, 0x3D, 0x24, 0x00, 0x28, 0x24, 0x00, 0x29, 0x24, 0x00, 0x61, + 0x24, 0x00, 0x65, 0x24, 0x00, 0x6F, 0x24, 0x00, 0x78, 0x24, 0x02, 0x59, + 0xC0, 0x00, 0x52, 0x00, 0x00, 0x73, 0xC0, 0x00, 0x61, 0x80, 0x00, 0x2F, + 0x00, 0x00, 0x63, 0xC0, 0x00, 0x61, 0x80, 0x00, 0x2F, 0x00, 0x00, 0x73, + 0x04, 0x00, 0x43, 0xC0, 0x00, 0xB0, 0x00, 0x00, 0x43, 0xC0, 0x00, 0x63, + 0x80, 0x00, 0x2F, 0x00, 0x00, 0x6F, 0xC0, 0x00, 0x63, 0x80, 0x00, 0x2F, + 0x00, 0x00, 0x75, 0x40, 0x01, 0x90, 0xC0, 0x00, 0xB0, 0x00, 0x00, 0x46, + 0x04, 0x00, 0x67, 0x04, 0x00, 0x48, 0x04, 0x00, 0x48, 0x04, 0x00, 0x48, + 0x04, 0x00, 0x68, 0x04, 0x01, 0x27, 0x04, 0x00, 0x49, 0x04, 0x00, 0x49, + 0x04, 0x00, 0x4C, 0x04, 0x00, 0x6C, 0x04, 0x00, 0x4E, 0xC0, 0x00, 0x4E, + 0x00, 0x00, 0x6F, 0x04, 0x00, 0x50, 0x04, 0x00, 0x51, 0x04, 0x00, 0x52, + 0x04, 0x00, 0x52, 0x04, 0x00, 0x52, 0xA0, 0x00, 0x53, 0x00, 0x00, 0x4D, + 0xC0, 0x00, 0x54, 0x80, 0x00, 0x45, 0x00, 0x00, 0x4C, 0xA0, 0x00, 0x54, + 0x00, 0x00, 0x4D, 0x04, 0x00, 0x5A, 0x00, 0x03, 0xA9, 0x04, 0x00, 0x5A, + 0x00, 0x00, 0x4B, 0x00, 0x00, 0xC5, 0x04, 0x00, 0x42, 0x04, 0x00, 0x43, + 0x04, 0x00, 0x65, 0x04, 0x00, 0x45, 0x04, 0x00, 0x46, 0x04, 0x00, 0x4D, + 0x04, 0x00, 0x6F, 0x40, 0x05, 0xD0, 0x40, 0x05, 0xD1, 0x40, 0x05, 0xD2, + 0x40, 0x05, 0xD3, 0x04, 0x00, 0x69, 0xC0, 0x00, 0x46, 0x80, 0x00, 0x41, + 0x00, 0x00, 0x58, 0x04, 0x03, 0xC0, 0x04, 0x03, 0xB3, 0x04, 0x03, 0x93, + 0x04, 0x03, 0xA0, 0x04, 0x22, 0x11, 0x04, 0x00, 0x44, 0x04, 0x00, 0x64, + 0x04, 0x00, 0x65, 0x04, 0x00, 0x69, 0x04, 0x00, 0x6A, 0xBC, 0x00, 0x31, + 0x80, 0x20, 0x44, 0x00, 0x00, 0x33, 0xBC, 0x00, 0x32, 0x80, 0x20, 0x44, + 0x00, 0x00, 0x33, 0xBC, 0x00, 0x31, 0x80, 0x20, 0x44, 0x00, 0x00, 0x35, + 0xBC, 0x00, 0x32, 0x80, 0x20, 0x44, 0x00, 0x00, 0x35, 0xBC, 0x00, 0x33, + 0x80, 0x20, 0x44, 0x00, 0x00, 0x35, 0xBC, 0x00, 0x34, 0x80, 0x20, 0x44, + 0x00, 0x00, 0x35, 0xBC, 0x00, 0x31, 0x80, 0x20, 0x44, 0x00, 0x00, 0x36, + 0xBC, 0x00, 0x35, 0x80, 0x20, 0x44, 0x00, 0x00, 0x36, 0xBC, 0x00, 0x31, + 0x80, 0x20, 0x44, 0x00, 0x00, 0x38, 0xBC, 0x00, 0x33, 0x80, 0x20, 0x44, + 0x00, 0x00, 0x38, 0xBC, 0x00, 0x35, 0x80, 0x20, 0x44, 0x00, 0x00, 0x38, + 0xBC, 0x00, 0x37, 0x80, 0x20, 0x44, 0x00, 0x00, 0x38, 0xBC, 0x00, 0x31, + 0x00, 0x20, 0x44, 0x40, 0x00, 0x49, 0xC0, 0x00, 0x49, 0x00, 0x00, 0x49, + 0xC0, 0x00, 0x49, 0x80, 0x00, 0x49, 0x00, 0x00, 0x49, 0xC0, 0x00, 0x49, + 0x00, 0x00, 0x56, 0x40, 0x00, 0x56, 0xC0, 0x00, 0x56, 0x00, 0x00, 0x49, + 0xC0, 0x00, 0x56, 0x80, 0x00, 0x49, 0x00, 0x00, 0x49, 0xC0, 0x00, 0x56, + 0x80, 0x00, 0x49, 0x80, 0x00, 0x49, 0x00, 0x00, 0x49, 0xC0, 0x00, 0x49, + 0x00, 0x00, 0x58, 0x40, 0x00, 0x58, 0xC0, 0x00, 0x58, 0x00, 0x00, 0x49, + 0xC0, 0x00, 0x58, 0x80, 0x00, 0x49, 0x00, 0x00, 0x49, 0x40, 0x00, 0x4C, + 0x40, 0x00, 0x43, 0x40, 0x00, 0x44, 0x40, 0x00, 0x4D, 0x40, 0x00, 0x69, + 0xC0, 0x00, 0x69, 0x00, 0x00, 0x69, 0xC0, 0x00, 0x69, 0x80, 0x00, 0x69, + 0x00, 0x00, 0x69, 0xC0, 0x00, 0x69, 0x00, 0x00, 0x76, 0x40, 0x00, 0x76, + 0xC0, 0x00, 0x76, 0x00, 0x00, 0x69, 0xC0, 0x00, 0x76, 0x80, 0x00, 0x69, + 0x00, 0x00, 0x69, 0xC0, 0x00, 0x76, 0x80, 0x00, 0x69, 0x80, 0x00, 0x69, + 0x00, 0x00, 0x69, 0xC0, 0x00, 0x69, 0x00, 0x00, 0x78, 0x40, 0x00, 0x78, + 0xC0, 0x00, 0x78, 0x00, 0x00, 0x69, 0xC0, 0x00, 0x78, 0x80, 0x00, 0x69, + 0x00, 0x00, 0x69, 0x40, 0x00, 0x6C, 0x40, 0x00, 0x63, 0x40, 0x00, 0x64, + 0x40, 0x00, 0x6D, 0x80, 0x21, 0x90, 0x00, 0x03, 0x38, 0x80, 0x21, 0x92, + 0x00, 0x03, 0x38, 0x80, 0x21, 0x94, 0x00, 0x03, 0x38, 0x80, 0x21, 0xD0, + 0x00, 0x03, 0x38, 0x80, 0x21, 0xD4, 0x00, 0x03, 0x38, 0x80, 0x21, 0xD2, + 0x00, 0x03, 0x38, 0x80, 0x22, 0x03, 0x00, 0x03, 0x38, 0x80, 0x22, 0x08, + 0x00, 0x03, 0x38, 0x80, 0x22, 0x0B, 0x00, 0x03, 0x38, 0x80, 0x22, 0x23, + 0x00, 0x03, 0x38, 0x80, 0x22, 0x25, 0x00, 0x03, 0x38, 0xC0, 0x22, 0x2B, + 0x00, 0x22, 0x2B, 0xC0, 0x22, 0x2B, 0x80, 0x22, 0x2B, 0x00, 0x22, 0x2B, + 0xC0, 0x22, 0x2E, 0x00, 0x22, 0x2E, 0xC0, 0x22, 0x2E, 0x80, 0x22, 0x2E, + 0x00, 0x22, 0x2E, 0x80, 0x22, 0x3C, 0x00, 0x03, 0x38, 0x80, 0x22, 0x43, + 0x00, 0x03, 0x38, 0x80, 0x22, 0x45, 0x00, 0x03, 0x38, 0x80, 0x22, 0x48, + 0x00, 0x03, 0x38, 0x80, 0x00, 0x3D, 0x00, 0x03, 0x38, 0x80, 0x22, 0x61, + 0x00, 0x03, 0x38, 0x80, 0x22, 0x4D, 0x00, 0x03, 0x38, 0x80, 0x00, 0x3C, + 0x00, 0x03, 0x38, 0x80, 0x00, 0x3E, 0x00, 0x03, 0x38, 0x80, 0x22, 0x64, + 0x00, 0x03, 0x38, 0x80, 0x22, 0x65, 0x00, 0x03, 0x38, 0x80, 0x22, 0x72, + 0x00, 0x03, 0x38, 0x80, 0x22, 0x73, 0x00, 0x03, 0x38, 0x80, 0x22, 0x76, + 0x00, 0x03, 0x38, 0x80, 0x22, 0x77, 0x00, 0x03, 0x38, 0x80, 0x22, 0x7A, + 0x00, 0x03, 0x38, 0x80, 0x22, 0x7B, 0x00, 0x03, 0x38, 0x80, 0x22, 0x82, + 0x00, 0x03, 0x38, 0x80, 0x22, 0x83, 0x00, 0x03, 0x38, 0x80, 0x22, 0x86, + 0x00, 0x03, 0x38, 0x80, 0x22, 0x87, 0x00, 0x03, 0x38, 0x80, 0x22, 0xA2, + 0x00, 0x03, 0x38, 0x80, 0x22, 0xA8, 0x00, 0x03, 0x38, 0x80, 0x22, 0xA9, + 0x00, 0x03, 0x38, 0x80, 0x22, 0xAB, 0x00, 0x03, 0x38, 0x80, 0x22, 0x7C, + 0x00, 0x03, 0x38, 0x80, 0x22, 0x7D, 0x00, 0x03, 0x38, 0x80, 0x22, 0x91, + 0x00, 0x03, 0x38, 0x80, 0x22, 0x92, 0x00, 0x03, 0x38, 0x80, 0x22, 0xB2, + 0x00, 0x03, 0x38, 0x80, 0x22, 0xB3, 0x00, 0x03, 0x38, 0x80, 0x22, 0xB4, + 0x00, 0x03, 0x38, 0x80, 0x22, 0xB5, 0x00, 0x03, 0x38, 0x00, 0x30, 0x08, + 0x00, 0x30, 0x09, 0x1C, 0x00, 0x31, 0x1C, 0x00, 0x32, 0x1C, 0x00, 0x33, + 0x1C, 0x00, 0x34, 0x1C, 0x00, 0x35, 0x1C, 0x00, 0x36, 0x1C, 0x00, 0x37, + 0x1C, 0x00, 0x38, 0x1C, 0x00, 0x39, 0x9C, 0x00, 0x31, 0x00, 0x00, 0x30, + 0x9C, 0x00, 0x31, 0x00, 0x00, 0x31, 0x9C, 0x00, 0x31, 0x00, 0x00, 0x32, + 0x9C, 0x00, 0x31, 0x00, 0x00, 0x33, 0x9C, 0x00, 0x31, 0x00, 0x00, 0x34, + 0x9C, 0x00, 0x31, 0x00, 0x00, 0x35, 0x9C, 0x00, 0x31, 0x00, 0x00, 0x36, + 0x9C, 0x00, 0x31, 0x00, 0x00, 0x37, 0x9C, 0x00, 0x31, 0x00, 0x00, 0x38, + 0x9C, 0x00, 0x31, 0x00, 0x00, 0x39, 0x9C, 0x00, 0x32, 0x00, 0x00, 0x30, + 0xC0, 0x00, 0x28, 0x80, 0x00, 0x31, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, + 0x80, 0x00, 0x32, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x00, 0x33, + 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x00, 0x34, 0x00, 0x00, 0x29, + 0xC0, 0x00, 0x28, 0x80, 0x00, 0x35, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, + 0x80, 0x00, 0x36, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x00, 0x37, + 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x00, 0x38, 0x00, 0x00, 0x29, + 0xC0, 0x00, 0x28, 0x80, 0x00, 0x39, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, + 0x80, 0x00, 0x31, 0x80, 0x00, 0x30, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, + 0x80, 0x00, 0x31, 0x80, 0x00, 0x31, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, + 0x80, 0x00, 0x31, 0x80, 0x00, 0x32, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, + 0x80, 0x00, 0x31, 0x80, 0x00, 0x33, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, + 0x80, 0x00, 0x31, 0x80, 0x00, 0x34, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, + 0x80, 0x00, 0x31, 0x80, 0x00, 0x35, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, + 0x80, 0x00, 0x31, 0x80, 0x00, 0x36, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, + 0x80, 0x00, 0x31, 0x80, 0x00, 0x37, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, + 0x80, 0x00, 0x31, 0x80, 0x00, 0x38, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, + 0x80, 0x00, 0x31, 0x80, 0x00, 0x39, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, + 0x80, 0x00, 0x32, 0x80, 0x00, 0x30, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x31, + 0x00, 0x00, 0x2E, 0xC0, 0x00, 0x32, 0x00, 0x00, 0x2E, 0xC0, 0x00, 0x33, + 0x00, 0x00, 0x2E, 0xC0, 0x00, 0x34, 0x00, 0x00, 0x2E, 0xC0, 0x00, 0x35, + 0x00, 0x00, 0x2E, 0xC0, 0x00, 0x36, 0x00, 0x00, 0x2E, 0xC0, 0x00, 0x37, + 0x00, 0x00, 0x2E, 0xC0, 0x00, 0x38, 0x00, 0x00, 0x2E, 0xC0, 0x00, 0x39, + 0x00, 0x00, 0x2E, 0xC0, 0x00, 0x31, 0x80, 0x00, 0x30, 0x00, 0x00, 0x2E, + 0xC0, 0x00, 0x31, 0x80, 0x00, 0x31, 0x00, 0x00, 0x2E, 0xC0, 0x00, 0x31, + 0x80, 0x00, 0x32, 0x00, 0x00, 0x2E, 0xC0, 0x00, 0x31, 0x80, 0x00, 0x33, + 0x00, 0x00, 0x2E, 0xC0, 0x00, 0x31, 0x80, 0x00, 0x34, 0x00, 0x00, 0x2E, + 0xC0, 0x00, 0x31, 0x80, 0x00, 0x35, 0x00, 0x00, 0x2E, 0xC0, 0x00, 0x31, + 0x80, 0x00, 0x36, 0x00, 0x00, 0x2E, 0xC0, 0x00, 0x31, 0x80, 0x00, 0x37, + 0x00, 0x00, 0x2E, 0xC0, 0x00, 0x31, 0x80, 0x00, 0x38, 0x00, 0x00, 0x2E, + 0xC0, 0x00, 0x31, 0x80, 0x00, 0x39, 0x00, 0x00, 0x2E, 0xC0, 0x00, 0x32, + 0x80, 0x00, 0x30, 0x00, 0x00, 0x2E, 0xC0, 0x00, 0x28, 0x80, 0x00, 0x61, + 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x00, 0x62, 0x00, 0x00, 0x29, + 0xC0, 0x00, 0x28, 0x80, 0x00, 0x63, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, + 0x80, 0x00, 0x64, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x00, 0x65, + 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x00, 0x66, 0x00, 0x00, 0x29, + 0xC0, 0x00, 0x28, 0x80, 0x00, 0x67, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, + 0x80, 0x00, 0x68, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x00, 0x69, + 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x00, 0x6A, 0x00, 0x00, 0x29, + 0xC0, 0x00, 0x28, 0x80, 0x00, 0x6B, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, + 0x80, 0x00, 0x6C, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x00, 0x6D, + 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x00, 0x6E, 0x00, 0x00, 0x29, + 0xC0, 0x00, 0x28, 0x80, 0x00, 0x6F, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, + 0x80, 0x00, 0x70, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x00, 0x71, + 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x00, 0x72, 0x00, 0x00, 0x29, + 0xC0, 0x00, 0x28, 0x80, 0x00, 0x73, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, + 0x80, 0x00, 0x74, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x00, 0x75, + 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x00, 0x76, 0x00, 0x00, 0x29, + 0xC0, 0x00, 0x28, 0x80, 0x00, 0x77, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, + 0x80, 0x00, 0x78, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x00, 0x79, + 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x00, 0x7A, 0x00, 0x00, 0x29, + 0x1C, 0x00, 0x41, 0x1C, 0x00, 0x42, 0x1C, 0x00, 0x43, 0x1C, 0x00, 0x44, + 0x1C, 0x00, 0x45, 0x1C, 0x00, 0x46, 0x1C, 0x00, 0x47, 0x1C, 0x00, 0x48, + 0x1C, 0x00, 0x49, 0x1C, 0x00, 0x4A, 0x1C, 0x00, 0x4B, 0x1C, 0x00, 0x4C, + 0x1C, 0x00, 0x4D, 0x1C, 0x00, 0x4E, 0x1C, 0x00, 0x4F, 0x1C, 0x00, 0x50, + 0x1C, 0x00, 0x51, 0x1C, 0x00, 0x52, 0x1C, 0x00, 0x53, 0x1C, 0x00, 0x54, + 0x1C, 0x00, 0x55, 0x1C, 0x00, 0x56, 0x1C, 0x00, 0x57, 0x1C, 0x00, 0x58, + 0x1C, 0x00, 0x59, 0x1C, 0x00, 0x5A, 0x1C, 0x00, 0x61, 0x1C, 0x00, 0x62, + 0x1C, 0x00, 0x63, 0x1C, 0x00, 0x64, 0x1C, 0x00, 0x65, 0x1C, 0x00, 0x66, + 0x1C, 0x00, 0x67, 0x1C, 0x00, 0x68, 0x1C, 0x00, 0x69, 0x1C, 0x00, 0x6A, + 0x1C, 0x00, 0x6B, 0x1C, 0x00, 0x6C, 0x1C, 0x00, 0x6D, 0x1C, 0x00, 0x6E, + 0x1C, 0x00, 0x6F, 0x1C, 0x00, 0x70, 0x1C, 0x00, 0x71, 0x1C, 0x00, 0x72, + 0x1C, 0x00, 0x73, 0x1C, 0x00, 0x74, 0x1C, 0x00, 0x75, 0x1C, 0x00, 0x76, + 0x1C, 0x00, 0x77, 0x1C, 0x00, 0x78, 0x1C, 0x00, 0x79, 0x1C, 0x00, 0x7A, + 0x1C, 0x00, 0x30, 0xC0, 0x22, 0x2B, 0x80, 0x22, 0x2B, 0x80, 0x22, 0x2B, + 0x00, 0x22, 0x2B, 0xC0, 0x00, 0x3A, 0x80, 0x00, 0x3A, 0x00, 0x00, 0x3D, + 0xC0, 0x00, 0x3D, 0x00, 0x00, 0x3D, 0xC0, 0x00, 0x3D, 0x80, 0x00, 0x3D, + 0x00, 0x00, 0x3D, 0x80, 0x2A, 0xDD, 0x00, 0x03, 0x38, 0x24, 0x00, 0x6A, + 0x20, 0x00, 0x56, 0x20, 0x2D, 0x61, 0x40, 0x6B, 0xCD, 0x40, 0x9F, 0x9F, + 0x40, 0x4E, 0x00, 0x40, 0x4E, 0x28, 0x40, 0x4E, 0x36, 0x40, 0x4E, 0x3F, + 0x40, 0x4E, 0x59, 0x40, 0x4E, 0x85, 0x40, 0x4E, 0x8C, 0x40, 0x4E, 0xA0, + 0x40, 0x4E, 0xBA, 0x40, 0x51, 0x3F, 0x40, 0x51, 0x65, 0x40, 0x51, 0x6B, + 0x40, 0x51, 0x82, 0x40, 0x51, 0x96, 0x40, 0x51, 0xAB, 0x40, 0x51, 0xE0, + 0x40, 0x51, 0xF5, 0x40, 0x52, 0x00, 0x40, 0x52, 0x9B, 0x40, 0x52, 0xF9, + 0x40, 0x53, 0x15, 0x40, 0x53, 0x1A, 0x40, 0x53, 0x38, 0x40, 0x53, 0x41, + 0x40, 0x53, 0x5C, 0x40, 0x53, 0x69, 0x40, 0x53, 0x82, 0x40, 0x53, 0xB6, + 0x40, 0x53, 0xC8, 0x40, 0x53, 0xE3, 0x40, 0x56, 0xD7, 0x40, 0x57, 0x1F, + 0x40, 0x58, 0xEB, 0x40, 0x59, 0x02, 0x40, 0x59, 0x0A, 0x40, 0x59, 0x15, + 0x40, 0x59, 0x27, 0x40, 0x59, 0x73, 0x40, 0x5B, 0x50, 0x40, 0x5B, 0x80, + 0x40, 0x5B, 0xF8, 0x40, 0x5C, 0x0F, 0x40, 0x5C, 0x22, 0x40, 0x5C, 0x38, + 0x40, 0x5C, 0x6E, 0x40, 0x5C, 0x71, 0x40, 0x5D, 0xDB, 0x40, 0x5D, 0xE5, + 0x40, 0x5D, 0xF1, 0x40, 0x5D, 0xFE, 0x40, 0x5E, 0x72, 0x40, 0x5E, 0x7A, + 0x40, 0x5E, 0x7F, 0x40, 0x5E, 0xF4, 0x40, 0x5E, 0xFE, 0x40, 0x5F, 0x0B, + 0x40, 0x5F, 0x13, 0x40, 0x5F, 0x50, 0x40, 0x5F, 0x61, 0x40, 0x5F, 0x73, + 0x40, 0x5F, 0xC3, 0x40, 0x62, 0x08, 0x40, 0x62, 0x36, 0x40, 0x62, 0x4B, + 0x40, 0x65, 0x2F, 0x40, 0x65, 0x34, 0x40, 0x65, 0x87, 0x40, 0x65, 0x97, + 0x40, 0x65, 0xA4, 0x40, 0x65, 0xB9, 0x40, 0x65, 0xE0, 0x40, 0x65, 0xE5, + 0x40, 0x66, 0xF0, 0x40, 0x67, 0x08, 0x40, 0x67, 0x28, 0x40, 0x6B, 0x20, + 0x40, 0x6B, 0x62, 0x40, 0x6B, 0x79, 0x40, 0x6B, 0xB3, 0x40, 0x6B, 0xCB, + 0x40, 0x6B, 0xD4, 0x40, 0x6B, 0xDB, 0x40, 0x6C, 0x0F, 0x40, 0x6C, 0x14, + 0x40, 0x6C, 0x34, 0x40, 0x70, 0x6B, 0x40, 0x72, 0x2A, 0x40, 0x72, 0x36, + 0x40, 0x72, 0x3B, 0x40, 0x72, 0x3F, 0x40, 0x72, 0x47, 0x40, 0x72, 0x59, + 0x40, 0x72, 0x5B, 0x40, 0x72, 0xAC, 0x40, 0x73, 0x84, 0x40, 0x73, 0x89, + 0x40, 0x74, 0xDC, 0x40, 0x74, 0xE6, 0x40, 0x75, 0x18, 0x40, 0x75, 0x1F, + 0x40, 0x75, 0x28, 0x40, 0x75, 0x30, 0x40, 0x75, 0x8B, 0x40, 0x75, 0x92, + 0x40, 0x76, 0x76, 0x40, 0x76, 0x7D, 0x40, 0x76, 0xAE, 0x40, 0x76, 0xBF, + 0x40, 0x76, 0xEE, 0x40, 0x77, 0xDB, 0x40, 0x77, 0xE2, 0x40, 0x77, 0xF3, + 0x40, 0x79, 0x3A, 0x40, 0x79, 0xB8, 0x40, 0x79, 0xBE, 0x40, 0x7A, 0x74, + 0x40, 0x7A, 0xCB, 0x40, 0x7A, 0xF9, 0x40, 0x7C, 0x73, 0x40, 0x7C, 0xF8, + 0x40, 0x7F, 0x36, 0x40, 0x7F, 0x51, 0x40, 0x7F, 0x8A, 0x40, 0x7F, 0xBD, + 0x40, 0x80, 0x01, 0x40, 0x80, 0x0C, 0x40, 0x80, 0x12, 0x40, 0x80, 0x33, + 0x40, 0x80, 0x7F, 0x40, 0x80, 0x89, 0x40, 0x81, 0xE3, 0x40, 0x81, 0xEA, + 0x40, 0x81, 0xF3, 0x40, 0x81, 0xFC, 0x40, 0x82, 0x0C, 0x40, 0x82, 0x1B, + 0x40, 0x82, 0x1F, 0x40, 0x82, 0x6E, 0x40, 0x82, 0x72, 0x40, 0x82, 0x78, + 0x40, 0x86, 0x4D, 0x40, 0x86, 0x6B, 0x40, 0x88, 0x40, 0x40, 0x88, 0x4C, + 0x40, 0x88, 0x63, 0x40, 0x89, 0x7E, 0x40, 0x89, 0x8B, 0x40, 0x89, 0xD2, + 0x40, 0x8A, 0x00, 0x40, 0x8C, 0x37, 0x40, 0x8C, 0x46, 0x40, 0x8C, 0x55, + 0x40, 0x8C, 0x78, 0x40, 0x8C, 0x9D, 0x40, 0x8D, 0x64, 0x40, 0x8D, 0x70, + 0x40, 0x8D, 0xB3, 0x40, 0x8E, 0xAB, 0x40, 0x8E, 0xCA, 0x40, 0x8F, 0x9B, + 0x40, 0x8F, 0xB0, 0x40, 0x8F, 0xB5, 0x40, 0x90, 0x91, 0x40, 0x91, 0x49, + 0x40, 0x91, 0xC6, 0x40, 0x91, 0xCC, 0x40, 0x91, 0xD1, 0x40, 0x95, 0x77, + 0x40, 0x95, 0x80, 0x40, 0x96, 0x1C, 0x40, 0x96, 0xB6, 0x40, 0x96, 0xB9, + 0x40, 0x96, 0xE8, 0x40, 0x97, 0x51, 0x40, 0x97, 0x5E, 0x40, 0x97, 0x62, + 0x40, 0x97, 0x69, 0x40, 0x97, 0xCB, 0x40, 0x97, 0xED, 0x40, 0x97, 0xF3, + 0x40, 0x98, 0x01, 0x40, 0x98, 0xA8, 0x40, 0x98, 0xDB, 0x40, 0x98, 0xDF, + 0x40, 0x99, 0x96, 0x40, 0x99, 0x99, 0x40, 0x99, 0xAC, 0x40, 0x9A, 0xA8, + 0x40, 0x9A, 0xD8, 0x40, 0x9A, 0xDF, 0x40, 0x9B, 0x25, 0x40, 0x9B, 0x2F, + 0x40, 0x9B, 0x32, 0x40, 0x9B, 0x3C, 0x40, 0x9B, 0x5A, 0x40, 0x9C, 0xE5, + 0x40, 0x9E, 0x75, 0x40, 0x9E, 0x7F, 0x40, 0x9E, 0xA5, 0x40, 0x9E, 0xBB, + 0x40, 0x9E, 0xC3, 0x40, 0x9E, 0xCD, 0x40, 0x9E, 0xD1, 0x40, 0x9E, 0xF9, + 0x40, 0x9E, 0xFD, 0x40, 0x9F, 0x0E, 0x40, 0x9F, 0x13, 0x40, 0x9F, 0x20, + 0x40, 0x9F, 0x3B, 0x40, 0x9F, 0x4A, 0x40, 0x9F, 0x52, 0x40, 0x9F, 0x8D, + 0x40, 0x9F, 0x9C, 0x40, 0x9F, 0xA0, 0x2C, 0x00, 0x20, 0x40, 0x30, 0x12, + 0x40, 0x53, 0x41, 0x40, 0x53, 0x44, 0x40, 0x53, 0x45, 0x80, 0x30, 0x4B, + 0x00, 0x30, 0x99, 0x80, 0x30, 0x4D, 0x00, 0x30, 0x99, 0x80, 0x30, 0x4F, + 0x00, 0x30, 0x99, 0x80, 0x30, 0x51, 0x00, 0x30, 0x99, 0x80, 0x30, 0x53, + 0x00, 0x30, 0x99, 0x80, 0x30, 0x55, 0x00, 0x30, 0x99, 0x80, 0x30, 0x57, + 0x00, 0x30, 0x99, 0x80, 0x30, 0x59, 0x00, 0x30, 0x99, 0x80, 0x30, 0x5B, + 0x00, 0x30, 0x99, 0x80, 0x30, 0x5D, 0x00, 0x30, 0x99, 0x80, 0x30, 0x5F, + 0x00, 0x30, 0x99, 0x80, 0x30, 0x61, 0x00, 0x30, 0x99, 0x80, 0x30, 0x64, + 0x00, 0x30, 0x99, 0x80, 0x30, 0x66, 0x00, 0x30, 0x99, 0x80, 0x30, 0x68, + 0x00, 0x30, 0x99, 0x80, 0x30, 0x6F, 0x00, 0x30, 0x99, 0x80, 0x30, 0x6F, + 0x00, 0x30, 0x9A, 0x80, 0x30, 0x72, 0x00, 0x30, 0x99, 0x80, 0x30, 0x72, + 0x00, 0x30, 0x9A, 0x80, 0x30, 0x75, 0x00, 0x30, 0x99, 0x80, 0x30, 0x75, + 0x00, 0x30, 0x9A, 0x80, 0x30, 0x78, 0x00, 0x30, 0x99, 0x80, 0x30, 0x78, + 0x00, 0x30, 0x9A, 0x80, 0x30, 0x7B, 0x00, 0x30, 0x99, 0x80, 0x30, 0x7B, + 0x00, 0x30, 0x9A, 0x80, 0x30, 0x46, 0x00, 0x30, 0x99, 0xC0, 0x00, 0x20, + 0x00, 0x30, 0x99, 0xC0, 0x00, 0x20, 0x00, 0x30, 0x9A, 0x80, 0x30, 0x9D, + 0x00, 0x30, 0x99, 0xA8, 0x30, 0x88, 0x00, 0x30, 0x8A, 0x80, 0x30, 0xAB, + 0x00, 0x30, 0x99, 0x80, 0x30, 0xAD, 0x00, 0x30, 0x99, 0x80, 0x30, 0xAF, + 0x00, 0x30, 0x99, 0x80, 0x30, 0xB1, 0x00, 0x30, 0x99, 0x80, 0x30, 0xB3, + 0x00, 0x30, 0x99, 0x80, 0x30, 0xB5, 0x00, 0x30, 0x99, 0x80, 0x30, 0xB7, + 0x00, 0x30, 0x99, 0x80, 0x30, 0xB9, 0x00, 0x30, 0x99, 0x80, 0x30, 0xBB, + 0x00, 0x30, 0x99, 0x80, 0x30, 0xBD, 0x00, 0x30, 0x99, 0x80, 0x30, 0xBF, + 0x00, 0x30, 0x99, 0x80, 0x30, 0xC1, 0x00, 0x30, 0x99, 0x80, 0x30, 0xC4, + 0x00, 0x30, 0x99, 0x80, 0x30, 0xC6, 0x00, 0x30, 0x99, 0x80, 0x30, 0xC8, + 0x00, 0x30, 0x99, 0x80, 0x30, 0xCF, 0x00, 0x30, 0x99, 0x80, 0x30, 0xCF, + 0x00, 0x30, 0x9A, 0x80, 0x30, 0xD2, 0x00, 0x30, 0x99, 0x80, 0x30, 0xD2, + 0x00, 0x30, 0x9A, 0x80, 0x30, 0xD5, 0x00, 0x30, 0x99, 0x80, 0x30, 0xD5, + 0x00, 0x30, 0x9A, 0x80, 0x30, 0xD8, 0x00, 0x30, 0x99, 0x80, 0x30, 0xD8, + 0x00, 0x30, 0x9A, 0x80, 0x30, 0xDB, 0x00, 0x30, 0x99, 0x80, 0x30, 0xDB, + 0x00, 0x30, 0x9A, 0x80, 0x30, 0xA6, 0x00, 0x30, 0x99, 0x80, 0x30, 0xEF, + 0x00, 0x30, 0x99, 0x80, 0x30, 0xF0, 0x00, 0x30, 0x99, 0x80, 0x30, 0xF1, + 0x00, 0x30, 0x99, 0x80, 0x30, 0xF2, 0x00, 0x30, 0x99, 0x80, 0x30, 0xFD, + 0x00, 0x30, 0x99, 0xA8, 0x30, 0xB3, 0x00, 0x30, 0xC8, 0x40, 0x11, 0x00, + 0x40, 0x11, 0x01, 0x40, 0x11, 0xAA, 0x40, 0x11, 0x02, 0x40, 0x11, 0xAC, + 0x40, 0x11, 0xAD, 0x40, 0x11, 0x03, 0x40, 0x11, 0x04, 0x40, 0x11, 0x05, + 0x40, 0x11, 0xB0, 0x40, 0x11, 0xB1, 0x40, 0x11, 0xB2, 0x40, 0x11, 0xB3, + 0x40, 0x11, 0xB4, 0x40, 0x11, 0xB5, 0x40, 0x11, 0x1A, 0x40, 0x11, 0x06, + 0x40, 0x11, 0x07, 0x40, 0x11, 0x08, 0x40, 0x11, 0x21, 0x40, 0x11, 0x09, + 0x40, 0x11, 0x0A, 0x40, 0x11, 0x0B, 0x40, 0x11, 0x0C, 0x40, 0x11, 0x0D, + 0x40, 0x11, 0x0E, 0x40, 0x11, 0x0F, 0x40, 0x11, 0x10, 0x40, 0x11, 0x11, + 0x40, 0x11, 0x12, 0x40, 0x11, 0x61, 0x40, 0x11, 0x62, 0x40, 0x11, 0x63, + 0x40, 0x11, 0x64, 0x40, 0x11, 0x65, 0x40, 0x11, 0x66, 0x40, 0x11, 0x67, + 0x40, 0x11, 0x68, 0x40, 0x11, 0x69, 0x40, 0x11, 0x6A, 0x40, 0x11, 0x6B, + 0x40, 0x11, 0x6C, 0x40, 0x11, 0x6D, 0x40, 0x11, 0x6E, 0x40, 0x11, 0x6F, + 0x40, 0x11, 0x70, 0x40, 0x11, 0x71, 0x40, 0x11, 0x72, 0x40, 0x11, 0x73, + 0x40, 0x11, 0x74, 0x40, 0x11, 0x75, 0x40, 0x11, 0x60, 0x40, 0x11, 0x14, + 0x40, 0x11, 0x15, 0x40, 0x11, 0xC7, 0x40, 0x11, 0xC8, 0x40, 0x11, 0xCC, + 0x40, 0x11, 0xCE, 0x40, 0x11, 0xD3, 0x40, 0x11, 0xD7, 0x40, 0x11, 0xD9, + 0x40, 0x11, 0x1C, 0x40, 0x11, 0xDD, 0x40, 0x11, 0xDF, 0x40, 0x11, 0x1D, + 0x40, 0x11, 0x1E, 0x40, 0x11, 0x20, 0x40, 0x11, 0x22, 0x40, 0x11, 0x23, + 0x40, 0x11, 0x27, 0x40, 0x11, 0x29, 0x40, 0x11, 0x2B, 0x40, 0x11, 0x2C, + 0x40, 0x11, 0x2D, 0x40, 0x11, 0x2E, 0x40, 0x11, 0x2F, 0x40, 0x11, 0x32, + 0x40, 0x11, 0x36, 0x40, 0x11, 0x40, 0x40, 0x11, 0x47, 0x40, 0x11, 0x4C, + 0x40, 0x11, 0xF1, 0x40, 0x11, 0xF2, 0x40, 0x11, 0x57, 0x40, 0x11, 0x58, + 0x40, 0x11, 0x59, 0x40, 0x11, 0x84, 0x40, 0x11, 0x85, 0x40, 0x11, 0x88, + 0x40, 0x11, 0x91, 0x40, 0x11, 0x92, 0x40, 0x11, 0x94, 0x40, 0x11, 0x9E, + 0x40, 0x11, 0xA1, 0x20, 0x4E, 0x00, 0x20, 0x4E, 0x8C, 0x20, 0x4E, 0x09, + 0x20, 0x56, 0xDB, 0x20, 0x4E, 0x0A, 0x20, 0x4E, 0x2D, 0x20, 0x4E, 0x0B, + 0x20, 0x75, 0x32, 0x20, 0x4E, 0x59, 0x20, 0x4E, 0x19, 0x20, 0x4E, 0x01, + 0x20, 0x59, 0x29, 0x20, 0x57, 0x30, 0x20, 0x4E, 0xBA, 0xC0, 0x00, 0x28, + 0x80, 0x11, 0x00, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x11, 0x02, + 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x11, 0x03, 0x00, 0x00, 0x29, + 0xC0, 0x00, 0x28, 0x80, 0x11, 0x05, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, + 0x80, 0x11, 0x06, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x11, 0x07, + 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x11, 0x09, 0x00, 0x00, 0x29, + 0xC0, 0x00, 0x28, 0x80, 0x11, 0x0B, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, + 0x80, 0x11, 0x0C, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x11, 0x0E, + 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x11, 0x0F, 0x00, 0x00, 0x29, + 0xC0, 0x00, 0x28, 0x80, 0x11, 0x10, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, + 0x80, 0x11, 0x11, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x11, 0x12, + 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x11, 0x00, 0x80, 0x11, 0x61, + 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x11, 0x02, 0x80, 0x11, 0x61, + 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x11, 0x03, 0x80, 0x11, 0x61, + 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x11, 0x05, 0x80, 0x11, 0x61, + 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x11, 0x06, 0x80, 0x11, 0x61, + 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x11, 0x07, 0x80, 0x11, 0x61, + 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x11, 0x09, 0x80, 0x11, 0x61, + 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x11, 0x0B, 0x80, 0x11, 0x61, + 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x11, 0x0C, 0x80, 0x11, 0x61, + 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x11, 0x0E, 0x80, 0x11, 0x61, + 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x11, 0x0F, 0x80, 0x11, 0x61, + 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x11, 0x10, 0x80, 0x11, 0x61, + 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x11, 0x11, 0x80, 0x11, 0x61, + 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x11, 0x12, 0x80, 0x11, 0x61, + 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x11, 0x0C, 0x80, 0x11, 0x6E, + 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x11, 0x0B, 0x80, 0x11, 0x69, + 0x80, 0x11, 0x0C, 0x80, 0x11, 0x65, 0x80, 0x11, 0xAB, 0x00, 0x00, 0x29, + 0xC0, 0x00, 0x28, 0x80, 0x11, 0x0B, 0x80, 0x11, 0x69, 0x80, 0x11, 0x12, + 0x80, 0x11, 0x6E, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x4E, 0x00, + 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x4E, 0x8C, 0x00, 0x00, 0x29, + 0xC0, 0x00, 0x28, 0x80, 0x4E, 0x09, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, + 0x80, 0x56, 0xDB, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x4E, 0x94, + 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x51, 0x6D, 0x00, 0x00, 0x29, + 0xC0, 0x00, 0x28, 0x80, 0x4E, 0x03, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, + 0x80, 0x51, 0x6B, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x4E, 0x5D, + 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x53, 0x41, 0x00, 0x00, 0x29, + 0xC0, 0x00, 0x28, 0x80, 0x67, 0x08, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, + 0x80, 0x70, 0x6B, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x6C, 0x34, + 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x67, 0x28, 0x00, 0x00, 0x29, + 0xC0, 0x00, 0x28, 0x80, 0x91, 0xD1, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, + 0x80, 0x57, 0x1F, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x65, 0xE5, + 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x68, 0x2A, 0x00, 0x00, 0x29, + 0xC0, 0x00, 0x28, 0x80, 0x67, 0x09, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, + 0x80, 0x79, 0x3E, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x54, 0x0D, + 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x72, 0x79, 0x00, 0x00, 0x29, + 0xC0, 0x00, 0x28, 0x80, 0x8C, 0xA1, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, + 0x80, 0x79, 0x5D, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x52, 0xB4, + 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x4E, 0xE3, 0x00, 0x00, 0x29, + 0xC0, 0x00, 0x28, 0x80, 0x54, 0x7C, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, + 0x80, 0x5B, 0x66, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x76, 0xE3, + 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x4F, 0x01, 0x00, 0x00, 0x29, + 0xC0, 0x00, 0x28, 0x80, 0x8C, 0xC7, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, + 0x80, 0x53, 0x54, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x79, 0x6D, + 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x4F, 0x11, 0x00, 0x00, 0x29, + 0xC0, 0x00, 0x28, 0x80, 0x81, 0xEA, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, + 0x80, 0x81, 0xF3, 0x00, 0x00, 0x29, 0xB8, 0x00, 0x50, 0x80, 0x00, 0x54, + 0x00, 0x00, 0x45, 0x9C, 0x00, 0x32, 0x00, 0x00, 0x31, 0x9C, 0x00, 0x32, + 0x00, 0x00, 0x32, 0x9C, 0x00, 0x32, 0x00, 0x00, 0x33, 0x9C, 0x00, 0x32, + 0x00, 0x00, 0x34, 0x9C, 0x00, 0x32, 0x00, 0x00, 0x35, 0x9C, 0x00, 0x32, + 0x00, 0x00, 0x36, 0x9C, 0x00, 0x32, 0x00, 0x00, 0x37, 0x9C, 0x00, 0x32, + 0x00, 0x00, 0x38, 0x9C, 0x00, 0x32, 0x00, 0x00, 0x39, 0x9C, 0x00, 0x33, + 0x00, 0x00, 0x30, 0x9C, 0x00, 0x33, 0x00, 0x00, 0x31, 0x9C, 0x00, 0x33, + 0x00, 0x00, 0x32, 0x9C, 0x00, 0x33, 0x00, 0x00, 0x33, 0x9C, 0x00, 0x33, + 0x00, 0x00, 0x34, 0x9C, 0x00, 0x33, 0x00, 0x00, 0x35, 0x1C, 0x11, 0x00, + 0x1C, 0x11, 0x02, 0x1C, 0x11, 0x03, 0x1C, 0x11, 0x05, 0x1C, 0x11, 0x06, + 0x1C, 0x11, 0x07, 0x1C, 0x11, 0x09, 0x1C, 0x11, 0x0B, 0x1C, 0x11, 0x0C, + 0x1C, 0x11, 0x0E, 0x1C, 0x11, 0x0F, 0x1C, 0x11, 0x10, 0x1C, 0x11, 0x11, + 0x1C, 0x11, 0x12, 0x9C, 0x11, 0x00, 0x00, 0x11, 0x61, 0x9C, 0x11, 0x02, + 0x00, 0x11, 0x61, 0x9C, 0x11, 0x03, 0x00, 0x11, 0x61, 0x9C, 0x11, 0x05, + 0x00, 0x11, 0x61, 0x9C, 0x11, 0x06, 0x00, 0x11, 0x61, 0x9C, 0x11, 0x07, + 0x00, 0x11, 0x61, 0x9C, 0x11, 0x09, 0x00, 0x11, 0x61, 0x9C, 0x11, 0x0B, + 0x00, 0x11, 0x61, 0x9C, 0x11, 0x0C, 0x00, 0x11, 0x61, 0x9C, 0x11, 0x0E, + 0x00, 0x11, 0x61, 0x9C, 0x11, 0x0F, 0x00, 0x11, 0x61, 0x9C, 0x11, 0x10, + 0x00, 0x11, 0x61, 0x9C, 0x11, 0x11, 0x00, 0x11, 0x61, 0x9C, 0x11, 0x12, + 0x00, 0x11, 0x61, 0x9C, 0x11, 0x0E, 0x80, 0x11, 0x61, 0x80, 0x11, 0xB7, + 0x80, 0x11, 0x00, 0x00, 0x11, 0x69, 0x9C, 0x11, 0x0C, 0x80, 0x11, 0x6E, + 0x80, 0x11, 0x0B, 0x00, 0x11, 0x74, 0x9C, 0x11, 0x0B, 0x00, 0x11, 0x6E, + 0x1C, 0x4E, 0x00, 0x1C, 0x4E, 0x8C, 0x1C, 0x4E, 0x09, 0x1C, 0x56, 0xDB, + 0x1C, 0x4E, 0x94, 0x1C, 0x51, 0x6D, 0x1C, 0x4E, 0x03, 0x1C, 0x51, 0x6B, + 0x1C, 0x4E, 0x5D, 0x1C, 0x53, 0x41, 0x1C, 0x67, 0x08, 0x1C, 0x70, 0x6B, + 0x1C, 0x6C, 0x34, 0x1C, 0x67, 0x28, 0x1C, 0x91, 0xD1, 0x1C, 0x57, 0x1F, + 0x1C, 0x65, 0xE5, 0x1C, 0x68, 0x2A, 0x1C, 0x67, 0x09, 0x1C, 0x79, 0x3E, + 0x1C, 0x54, 0x0D, 0x1C, 0x72, 0x79, 0x1C, 0x8C, 0xA1, 0x1C, 0x79, 0x5D, + 0x1C, 0x52, 0xB4, 0x1C, 0x79, 0xD8, 0x1C, 0x75, 0x37, 0x1C, 0x59, 0x73, + 0x1C, 0x90, 0x69, 0x1C, 0x51, 0x2A, 0x1C, 0x53, 0x70, 0x1C, 0x6C, 0xE8, + 0x1C, 0x98, 0x05, 0x1C, 0x4F, 0x11, 0x1C, 0x51, 0x99, 0x1C, 0x6B, 0x63, + 0x1C, 0x4E, 0x0A, 0x1C, 0x4E, 0x2D, 0x1C, 0x4E, 0x0B, 0x1C, 0x5D, 0xE6, + 0x1C, 0x53, 0xF3, 0x1C, 0x53, 0x3B, 0x1C, 0x5B, 0x97, 0x1C, 0x5B, 0x66, + 0x1C, 0x76, 0xE3, 0x1C, 0x4F, 0x01, 0x1C, 0x8C, 0xC7, 0x1C, 0x53, 0x54, + 0x1C, 0x59, 0x1C, 0x9C, 0x00, 0x33, 0x00, 0x00, 0x36, 0x9C, 0x00, 0x33, + 0x00, 0x00, 0x37, 0x9C, 0x00, 0x33, 0x00, 0x00, 0x38, 0x9C, 0x00, 0x33, + 0x00, 0x00, 0x39, 0x9C, 0x00, 0x34, 0x00, 0x00, 0x30, 0x9C, 0x00, 0x34, + 0x00, 0x00, 0x31, 0x9C, 0x00, 0x34, 0x00, 0x00, 0x32, 0x9C, 0x00, 0x34, + 0x00, 0x00, 0x33, 0x9C, 0x00, 0x34, 0x00, 0x00, 0x34, 0x9C, 0x00, 0x34, + 0x00, 0x00, 0x35, 0x9C, 0x00, 0x34, 0x00, 0x00, 0x36, 0x9C, 0x00, 0x34, + 0x00, 0x00, 0x37, 0x9C, 0x00, 0x34, 0x00, 0x00, 0x38, 0x9C, 0x00, 0x34, + 0x00, 0x00, 0x39, 0x9C, 0x00, 0x35, 0x00, 0x00, 0x30, 0xC0, 0x00, 0x31, + 0x00, 0x67, 0x08, 0xC0, 0x00, 0x32, 0x00, 0x67, 0x08, 0xC0, 0x00, 0x33, + 0x00, 0x67, 0x08, 0xC0, 0x00, 0x34, 0x00, 0x67, 0x08, 0xC0, 0x00, 0x35, + 0x00, 0x67, 0x08, 0xC0, 0x00, 0x36, 0x00, 0x67, 0x08, 0xC0, 0x00, 0x37, + 0x00, 0x67, 0x08, 0xC0, 0x00, 0x38, 0x00, 0x67, 0x08, 0xC0, 0x00, 0x39, + 0x00, 0x67, 0x08, 0xC0, 0x00, 0x31, 0x80, 0x00, 0x30, 0x00, 0x67, 0x08, + 0xC0, 0x00, 0x31, 0x80, 0x00, 0x31, 0x00, 0x67, 0x08, 0xC0, 0x00, 0x31, + 0x80, 0x00, 0x32, 0x00, 0x67, 0x08, 0xB8, 0x00, 0x48, 0x00, 0x00, 0x67, + 0xB8, 0x00, 0x65, 0x80, 0x00, 0x72, 0x00, 0x00, 0x67, 0xB8, 0x00, 0x65, + 0x00, 0x00, 0x56, 0xB8, 0x00, 0x4C, 0x80, 0x00, 0x54, 0x00, 0x00, 0x44, + 0x1C, 0x30, 0xA2, 0x1C, 0x30, 0xA4, 0x1C, 0x30, 0xA6, 0x1C, 0x30, 0xA8, + 0x1C, 0x30, 0xAA, 0x1C, 0x30, 0xAB, 0x1C, 0x30, 0xAD, 0x1C, 0x30, 0xAF, + 0x1C, 0x30, 0xB1, 0x1C, 0x30, 0xB3, 0x1C, 0x30, 0xB5, 0x1C, 0x30, 0xB7, + 0x1C, 0x30, 0xB9, 0x1C, 0x30, 0xBB, 0x1C, 0x30, 0xBD, 0x1C, 0x30, 0xBF, + 0x1C, 0x30, 0xC1, 0x1C, 0x30, 0xC4, 0x1C, 0x30, 0xC6, 0x1C, 0x30, 0xC8, + 0x1C, 0x30, 0xCA, 0x1C, 0x30, 0xCB, 0x1C, 0x30, 0xCC, 0x1C, 0x30, 0xCD, + 0x1C, 0x30, 0xCE, 0x1C, 0x30, 0xCF, 0x1C, 0x30, 0xD2, 0x1C, 0x30, 0xD5, + 0x1C, 0x30, 0xD8, 0x1C, 0x30, 0xDB, 0x1C, 0x30, 0xDE, 0x1C, 0x30, 0xDF, + 0x1C, 0x30, 0xE0, 0x1C, 0x30, 0xE1, 0x1C, 0x30, 0xE2, 0x1C, 0x30, 0xE4, + 0x1C, 0x30, 0xE6, 0x1C, 0x30, 0xE8, 0x1C, 0x30, 0xE9, 0x1C, 0x30, 0xEA, + 0x1C, 0x30, 0xEB, 0x1C, 0x30, 0xEC, 0x1C, 0x30, 0xED, 0x1C, 0x30, 0xEF, + 0x1C, 0x30, 0xF0, 0x1C, 0x30, 0xF1, 0x1C, 0x30, 0xF2, 0xB8, 0x30, 0xA2, + 0x80, 0x30, 0xD1, 0x80, 0x30, 0xFC, 0x00, 0x30, 0xC8, 0xB8, 0x30, 0xA2, + 0x80, 0x30, 0xEB, 0x80, 0x30, 0xD5, 0x00, 0x30, 0xA1, 0xB8, 0x30, 0xA2, + 0x80, 0x30, 0xF3, 0x80, 0x30, 0xDA, 0x00, 0x30, 0xA2, 0xB8, 0x30, 0xA2, + 0x80, 0x30, 0xFC, 0x00, 0x30, 0xEB, 0xB8, 0x30, 0xA4, 0x80, 0x30, 0xCB, + 0x80, 0x30, 0xF3, 0x00, 0x30, 0xB0, 0xB8, 0x30, 0xA4, 0x80, 0x30, 0xF3, + 0x00, 0x30, 0xC1, 0xB8, 0x30, 0xA6, 0x80, 0x30, 0xA9, 0x00, 0x30, 0xF3, + 0xB8, 0x30, 0xA8, 0x80, 0x30, 0xB9, 0x80, 0x30, 0xAF, 0x80, 0x30, 0xFC, + 0x00, 0x30, 0xC9, 0xB8, 0x30, 0xA8, 0x80, 0x30, 0xFC, 0x80, 0x30, 0xAB, + 0x00, 0x30, 0xFC, 0xB8, 0x30, 0xAA, 0x80, 0x30, 0xF3, 0x00, 0x30, 0xB9, + 0xB8, 0x30, 0xAA, 0x80, 0x30, 0xFC, 0x00, 0x30, 0xE0, 0xB8, 0x30, 0xAB, + 0x80, 0x30, 0xA4, 0x00, 0x30, 0xEA, 0xB8, 0x30, 0xAB, 0x80, 0x30, 0xE9, + 0x80, 0x30, 0xC3, 0x00, 0x30, 0xC8, 0xB8, 0x30, 0xAB, 0x80, 0x30, 0xED, + 0x80, 0x30, 0xEA, 0x00, 0x30, 0xFC, 0xB8, 0x30, 0xAC, 0x80, 0x30, 0xED, + 0x00, 0x30, 0xF3, 0xB8, 0x30, 0xAC, 0x80, 0x30, 0xF3, 0x00, 0x30, 0xDE, + 0xB8, 0x30, 0xAE, 0x00, 0x30, 0xAC, 0xB8, 0x30, 0xAE, 0x80, 0x30, 0xCB, + 0x00, 0x30, 0xFC, 0xB8, 0x30, 0xAD, 0x80, 0x30, 0xE5, 0x80, 0x30, 0xEA, + 0x00, 0x30, 0xFC, 0xB8, 0x30, 0xAE, 0x80, 0x30, 0xEB, 0x80, 0x30, 0xC0, + 0x00, 0x30, 0xFC, 0xB8, 0x30, 0xAD, 0x00, 0x30, 0xED, 0xB8, 0x30, 0xAD, + 0x80, 0x30, 0xED, 0x80, 0x30, 0xB0, 0x80, 0x30, 0xE9, 0x00, 0x30, 0xE0, + 0xB8, 0x30, 0xAD, 0x80, 0x30, 0xED, 0x80, 0x30, 0xE1, 0x80, 0x30, 0xFC, + 0x80, 0x30, 0xC8, 0x00, 0x30, 0xEB, 0xB8, 0x30, 0xAD, 0x80, 0x30, 0xED, + 0x80, 0x30, 0xEF, 0x80, 0x30, 0xC3, 0x00, 0x30, 0xC8, 0xB8, 0x30, 0xB0, + 0x80, 0x30, 0xE9, 0x00, 0x30, 0xE0, 0xB8, 0x30, 0xB0, 0x80, 0x30, 0xE9, + 0x80, 0x30, 0xE0, 0x80, 0x30, 0xC8, 0x00, 0x30, 0xF3, 0xB8, 0x30, 0xAF, + 0x80, 0x30, 0xEB, 0x80, 0x30, 0xBC, 0x80, 0x30, 0xA4, 0x00, 0x30, 0xED, + 0xB8, 0x30, 0xAF, 0x80, 0x30, 0xED, 0x80, 0x30, 0xFC, 0x00, 0x30, 0xCD, + 0xB8, 0x30, 0xB1, 0x80, 0x30, 0xFC, 0x00, 0x30, 0xB9, 0xB8, 0x30, 0xB3, + 0x80, 0x30, 0xEB, 0x00, 0x30, 0xCA, 0xB8, 0x30, 0xB3, 0x80, 0x30, 0xFC, + 0x00, 0x30, 0xDD, 0xB8, 0x30, 0xB5, 0x80, 0x30, 0xA4, 0x80, 0x30, 0xAF, + 0x00, 0x30, 0xEB, 0xB8, 0x30, 0xB5, 0x80, 0x30, 0xF3, 0x80, 0x30, 0xC1, + 0x80, 0x30, 0xFC, 0x00, 0x30, 0xE0, 0xB8, 0x30, 0xB7, 0x80, 0x30, 0xEA, + 0x80, 0x30, 0xF3, 0x00, 0x30, 0xB0, 0xB8, 0x30, 0xBB, 0x80, 0x30, 0xF3, + 0x00, 0x30, 0xC1, 0xB8, 0x30, 0xBB, 0x80, 0x30, 0xF3, 0x00, 0x30, 0xC8, + 0xB8, 0x30, 0xC0, 0x80, 0x30, 0xFC, 0x00, 0x30, 0xB9, 0xB8, 0x30, 0xC7, + 0x00, 0x30, 0xB7, 0xB8, 0x30, 0xC9, 0x00, 0x30, 0xEB, 0xB8, 0x30, 0xC8, + 0x00, 0x30, 0xF3, 0xB8, 0x30, 0xCA, 0x00, 0x30, 0xCE, 0xB8, 0x30, 0xCE, + 0x80, 0x30, 0xC3, 0x00, 0x30, 0xC8, 0xB8, 0x30, 0xCF, 0x80, 0x30, 0xA4, + 0x00, 0x30, 0xC4, 0xB8, 0x30, 0xD1, 0x80, 0x30, 0xFC, 0x80, 0x30, 0xBB, + 0x80, 0x30, 0xF3, 0x00, 0x30, 0xC8, 0xB8, 0x30, 0xD1, 0x80, 0x30, 0xFC, + 0x00, 0x30, 0xC4, 0xB8, 0x30, 0xD0, 0x80, 0x30, 0xFC, 0x80, 0x30, 0xEC, + 0x00, 0x30, 0xEB, 0xB8, 0x30, 0xD4, 0x80, 0x30, 0xA2, 0x80, 0x30, 0xB9, + 0x80, 0x30, 0xC8, 0x00, 0x30, 0xEB, 0xB8, 0x30, 0xD4, 0x80, 0x30, 0xAF, + 0x00, 0x30, 0xEB, 0xB8, 0x30, 0xD4, 0x00, 0x30, 0xB3, 0xB8, 0x30, 0xD3, + 0x00, 0x30, 0xEB, 0xB8, 0x30, 0xD5, 0x80, 0x30, 0xA1, 0x80, 0x30, 0xE9, + 0x80, 0x30, 0xC3, 0x00, 0x30, 0xC9, 0xB8, 0x30, 0xD5, 0x80, 0x30, 0xA3, + 0x80, 0x30, 0xFC, 0x00, 0x30, 0xC8, 0xB8, 0x30, 0xD6, 0x80, 0x30, 0xC3, + 0x80, 0x30, 0xB7, 0x80, 0x30, 0xA7, 0x00, 0x30, 0xEB, 0xB8, 0x30, 0xD5, + 0x80, 0x30, 0xE9, 0x00, 0x30, 0xF3, 0xB8, 0x30, 0xD8, 0x80, 0x30, 0xAF, + 0x80, 0x30, 0xBF, 0x80, 0x30, 0xFC, 0x00, 0x30, 0xEB, 0xB8, 0x30, 0xDA, + 0x00, 0x30, 0xBD, 0xB8, 0x30, 0xDA, 0x80, 0x30, 0xCB, 0x00, 0x30, 0xD2, + 0xB8, 0x30, 0xD8, 0x80, 0x30, 0xEB, 0x00, 0x30, 0xC4, 0xB8, 0x30, 0xDA, + 0x80, 0x30, 0xF3, 0x00, 0x30, 0xB9, 0xB8, 0x30, 0xDA, 0x80, 0x30, 0xFC, + 0x00, 0x30, 0xB8, 0xB8, 0x30, 0xD9, 0x80, 0x30, 0xFC, 0x00, 0x30, 0xBF, + 0xB8, 0x30, 0xDD, 0x80, 0x30, 0xA4, 0x80, 0x30, 0xF3, 0x00, 0x30, 0xC8, + 0xB8, 0x30, 0xDC, 0x80, 0x30, 0xEB, 0x00, 0x30, 0xC8, 0xB8, 0x30, 0xDB, + 0x00, 0x30, 0xF3, 0xB8, 0x30, 0xDD, 0x80, 0x30, 0xF3, 0x00, 0x30, 0xC9, + 0xB8, 0x30, 0xDB, 0x80, 0x30, 0xFC, 0x00, 0x30, 0xEB, 0xB8, 0x30, 0xDB, + 0x80, 0x30, 0xFC, 0x00, 0x30, 0xF3, 0xB8, 0x30, 0xDE, 0x80, 0x30, 0xA4, + 0x80, 0x30, 0xAF, 0x00, 0x30, 0xED, 0xB8, 0x30, 0xDE, 0x80, 0x30, 0xA4, + 0x00, 0x30, 0xEB, 0xB8, 0x30, 0xDE, 0x80, 0x30, 0xC3, 0x00, 0x30, 0xCF, + 0xB8, 0x30, 0xDE, 0x80, 0x30, 0xEB, 0x00, 0x30, 0xAF, 0xB8, 0x30, 0xDE, + 0x80, 0x30, 0xF3, 0x80, 0x30, 0xB7, 0x80, 0x30, 0xE7, 0x00, 0x30, 0xF3, + 0xB8, 0x30, 0xDF, 0x80, 0x30, 0xAF, 0x80, 0x30, 0xED, 0x00, 0x30, 0xF3, + 0xB8, 0x30, 0xDF, 0x00, 0x30, 0xEA, 0xB8, 0x30, 0xDF, 0x80, 0x30, 0xEA, + 0x80, 0x30, 0xD0, 0x80, 0x30, 0xFC, 0x00, 0x30, 0xEB, 0xB8, 0x30, 0xE1, + 0x00, 0x30, 0xAC, 0xB8, 0x30, 0xE1, 0x80, 0x30, 0xAC, 0x80, 0x30, 0xC8, + 0x00, 0x30, 0xF3, 0xB8, 0x30, 0xE1, 0x80, 0x30, 0xFC, 0x80, 0x30, 0xC8, + 0x00, 0x30, 0xEB, 0xB8, 0x30, 0xE4, 0x80, 0x30, 0xFC, 0x00, 0x30, 0xC9, + 0xB8, 0x30, 0xE4, 0x80, 0x30, 0xFC, 0x00, 0x30, 0xEB, 0xB8, 0x30, 0xE6, + 0x80, 0x30, 0xA2, 0x00, 0x30, 0xF3, 0xB8, 0x30, 0xEA, 0x80, 0x30, 0xC3, + 0x80, 0x30, 0xC8, 0x00, 0x30, 0xEB, 0xB8, 0x30, 0xEA, 0x00, 0x30, 0xE9, + 0xB8, 0x30, 0xEB, 0x80, 0x30, 0xD4, 0x00, 0x30, 0xFC, 0xB8, 0x30, 0xEB, + 0x80, 0x30, 0xFC, 0x80, 0x30, 0xD6, 0x00, 0x30, 0xEB, 0xB8, 0x30, 0xEC, + 0x00, 0x30, 0xE0, 0xB8, 0x30, 0xEC, 0x80, 0x30, 0xF3, 0x80, 0x30, 0xC8, + 0x80, 0x30, 0xB2, 0x00, 0x30, 0xF3, 0xB8, 0x30, 0xEF, 0x80, 0x30, 0xC3, + 0x00, 0x30, 0xC8, 0xC0, 0x00, 0x30, 0x00, 0x70, 0xB9, 0xC0, 0x00, 0x31, + 0x00, 0x70, 0xB9, 0xC0, 0x00, 0x32, 0x00, 0x70, 0xB9, 0xC0, 0x00, 0x33, + 0x00, 0x70, 0xB9, 0xC0, 0x00, 0x34, 0x00, 0x70, 0xB9, 0xC0, 0x00, 0x35, + 0x00, 0x70, 0xB9, 0xC0, 0x00, 0x36, 0x00, 0x70, 0xB9, 0xC0, 0x00, 0x37, + 0x00, 0x70, 0xB9, 0xC0, 0x00, 0x38, 0x00, 0x70, 0xB9, 0xC0, 0x00, 0x39, + 0x00, 0x70, 0xB9, 0xC0, 0x00, 0x31, 0x80, 0x00, 0x30, 0x00, 0x70, 0xB9, + 0xC0, 0x00, 0x31, 0x80, 0x00, 0x31, 0x00, 0x70, 0xB9, 0xC0, 0x00, 0x31, + 0x80, 0x00, 0x32, 0x00, 0x70, 0xB9, 0xC0, 0x00, 0x31, 0x80, 0x00, 0x33, + 0x00, 0x70, 0xB9, 0xC0, 0x00, 0x31, 0x80, 0x00, 0x34, 0x00, 0x70, 0xB9, + 0xC0, 0x00, 0x31, 0x80, 0x00, 0x35, 0x00, 0x70, 0xB9, 0xC0, 0x00, 0x31, + 0x80, 0x00, 0x36, 0x00, 0x70, 0xB9, 0xC0, 0x00, 0x31, 0x80, 0x00, 0x37, + 0x00, 0x70, 0xB9, 0xC0, 0x00, 0x31, 0x80, 0x00, 0x38, 0x00, 0x70, 0xB9, + 0xC0, 0x00, 0x31, 0x80, 0x00, 0x39, 0x00, 0x70, 0xB9, 0xC0, 0x00, 0x32, + 0x80, 0x00, 0x30, 0x00, 0x70, 0xB9, 0xC0, 0x00, 0x32, 0x80, 0x00, 0x31, + 0x00, 0x70, 0xB9, 0xC0, 0x00, 0x32, 0x80, 0x00, 0x32, 0x00, 0x70, 0xB9, + 0xC0, 0x00, 0x32, 0x80, 0x00, 0x33, 0x00, 0x70, 0xB9, 0xC0, 0x00, 0x32, + 0x80, 0x00, 0x34, 0x00, 0x70, 0xB9, 0xB8, 0x00, 0x68, 0x80, 0x00, 0x50, + 0x00, 0x00, 0x61, 0xB8, 0x00, 0x64, 0x00, 0x00, 0x61, 0xB8, 0x00, 0x41, + 0x00, 0x00, 0x55, 0xB8, 0x00, 0x62, 0x80, 0x00, 0x61, 0x00, 0x00, 0x72, + 0xB8, 0x00, 0x6F, 0x00, 0x00, 0x56, 0xB8, 0x00, 0x70, 0x00, 0x00, 0x63, + 0xB8, 0x00, 0x64, 0x00, 0x00, 0x6D, 0xB8, 0x00, 0x64, 0x80, 0x00, 0x6D, + 0x00, 0x00, 0xB2, 0xB8, 0x00, 0x64, 0x80, 0x00, 0x6D, 0x00, 0x00, 0xB3, + 0xB8, 0x00, 0x49, 0x00, 0x00, 0x55, 0xB8, 0x5E, 0x73, 0x00, 0x62, 0x10, + 0xB8, 0x66, 0x2D, 0x00, 0x54, 0x8C, 0xB8, 0x59, 0x27, 0x00, 0x6B, 0x63, + 0xB8, 0x66, 0x0E, 0x00, 0x6C, 0xBB, 0xB8, 0x68, 0x2A, 0x80, 0x5F, 0x0F, + 0x80, 0x4F, 0x1A, 0x00, 0x79, 0x3E, 0xB8, 0x00, 0x70, 0x00, 0x00, 0x41, + 0xB8, 0x00, 0x6E, 0x00, 0x00, 0x41, 0xB8, 0x03, 0xBC, 0x00, 0x00, 0x41, + 0xB8, 0x00, 0x6D, 0x00, 0x00, 0x41, 0xB8, 0x00, 0x6B, 0x00, 0x00, 0x41, + 0xB8, 0x00, 0x4B, 0x00, 0x00, 0x42, 0xB8, 0x00, 0x4D, 0x00, 0x00, 0x42, + 0xB8, 0x00, 0x47, 0x00, 0x00, 0x42, 0xB8, 0x00, 0x63, 0x80, 0x00, 0x61, + 0x00, 0x00, 0x6C, 0xB8, 0x00, 0x6B, 0x80, 0x00, 0x63, 0x80, 0x00, 0x61, + 0x00, 0x00, 0x6C, 0xB8, 0x00, 0x70, 0x00, 0x00, 0x46, 0xB8, 0x00, 0x6E, + 0x00, 0x00, 0x46, 0xB8, 0x03, 0xBC, 0x00, 0x00, 0x46, 0xB8, 0x03, 0xBC, + 0x00, 0x00, 0x67, 0xB8, 0x00, 0x6D, 0x00, 0x00, 0x67, 0xB8, 0x00, 0x6B, + 0x00, 0x00, 0x67, 0xB8, 0x00, 0x48, 0x00, 0x00, 0x7A, 0xB8, 0x00, 0x6B, + 0x80, 0x00, 0x48, 0x00, 0x00, 0x7A, 0xB8, 0x00, 0x4D, 0x80, 0x00, 0x48, + 0x00, 0x00, 0x7A, 0xB8, 0x00, 0x47, 0x80, 0x00, 0x48, 0x00, 0x00, 0x7A, + 0xB8, 0x00, 0x54, 0x80, 0x00, 0x48, 0x00, 0x00, 0x7A, 0xB8, 0x03, 0xBC, + 0x00, 0x21, 0x13, 0xB8, 0x00, 0x6D, 0x00, 0x21, 0x13, 0xB8, 0x00, 0x64, + 0x00, 0x21, 0x13, 0xB8, 0x00, 0x6B, 0x00, 0x21, 0x13, 0xB8, 0x00, 0x66, + 0x00, 0x00, 0x6D, 0xB8, 0x00, 0x6E, 0x00, 0x00, 0x6D, 0xB8, 0x03, 0xBC, + 0x00, 0x00, 0x6D, 0xB8, 0x00, 0x6D, 0x00, 0x00, 0x6D, 0xB8, 0x00, 0x63, + 0x00, 0x00, 0x6D, 0xB8, 0x00, 0x6B, 0x00, 0x00, 0x6D, 0xB8, 0x00, 0x6D, + 0x80, 0x00, 0x6D, 0x00, 0x00, 0xB2, 0xB8, 0x00, 0x63, 0x80, 0x00, 0x6D, + 0x00, 0x00, 0xB2, 0xB8, 0x00, 0x6D, 0x00, 0x00, 0xB2, 0xB8, 0x00, 0x6B, + 0x80, 0x00, 0x6D, 0x00, 0x00, 0xB2, 0xB8, 0x00, 0x6D, 0x80, 0x00, 0x6D, + 0x00, 0x00, 0xB3, 0xB8, 0x00, 0x63, 0x80, 0x00, 0x6D, 0x00, 0x00, 0xB3, + 0xB8, 0x00, 0x6D, 0x00, 0x00, 0xB3, 0xB8, 0x00, 0x6B, 0x80, 0x00, 0x6D, + 0x00, 0x00, 0xB3, 0xB8, 0x00, 0x6D, 0x80, 0x22, 0x15, 0x00, 0x00, 0x73, + 0xB8, 0x00, 0x6D, 0x80, 0x22, 0x15, 0x80, 0x00, 0x73, 0x00, 0x00, 0xB2, + 0xB8, 0x00, 0x50, 0x00, 0x00, 0x61, 0xB8, 0x00, 0x6B, 0x80, 0x00, 0x50, + 0x00, 0x00, 0x61, 0xB8, 0x00, 0x4D, 0x80, 0x00, 0x50, 0x00, 0x00, 0x61, + 0xB8, 0x00, 0x47, 0x80, 0x00, 0x50, 0x00, 0x00, 0x61, 0xB8, 0x00, 0x72, + 0x80, 0x00, 0x61, 0x00, 0x00, 0x64, 0xB8, 0x00, 0x72, 0x80, 0x00, 0x61, + 0x80, 0x00, 0x64, 0x80, 0x22, 0x15, 0x00, 0x00, 0x73, 0xB8, 0x00, 0x72, + 0x80, 0x00, 0x61, 0x80, 0x00, 0x64, 0x80, 0x22, 0x15, 0x80, 0x00, 0x73, + 0x00, 0x00, 0xB2, 0xB8, 0x00, 0x70, 0x00, 0x00, 0x73, 0xB8, 0x00, 0x6E, + 0x00, 0x00, 0x73, 0xB8, 0x03, 0xBC, 0x00, 0x00, 0x73, 0xB8, 0x00, 0x6D, + 0x00, 0x00, 0x73, 0xB8, 0x00, 0x70, 0x00, 0x00, 0x56, 0xB8, 0x00, 0x6E, + 0x00, 0x00, 0x56, 0xB8, 0x03, 0xBC, 0x00, 0x00, 0x56, 0xB8, 0x00, 0x6D, + 0x00, 0x00, 0x56, 0xB8, 0x00, 0x6B, 0x00, 0x00, 0x56, 0xB8, 0x00, 0x4D, + 0x00, 0x00, 0x56, 0xB8, 0x00, 0x70, 0x00, 0x00, 0x57, 0xB8, 0x00, 0x6E, + 0x00, 0x00, 0x57, 0xB8, 0x03, 0xBC, 0x00, 0x00, 0x57, 0xB8, 0x00, 0x6D, + 0x00, 0x00, 0x57, 0xB8, 0x00, 0x6B, 0x00, 0x00, 0x57, 0xB8, 0x00, 0x4D, + 0x00, 0x00, 0x57, 0xB8, 0x00, 0x6B, 0x00, 0x03, 0xA9, 0xB8, 0x00, 0x4D, + 0x00, 0x03, 0xA9, 0xB8, 0x00, 0x61, 0x80, 0x00, 0x2E, 0x80, 0x00, 0x6D, + 0x00, 0x00, 0x2E, 0xB8, 0x00, 0x42, 0x00, 0x00, 0x71, 0xB8, 0x00, 0x63, + 0x00, 0x00, 0x63, 0xB8, 0x00, 0x63, 0x00, 0x00, 0x64, 0xB8, 0x00, 0x43, + 0x80, 0x22, 0x15, 0x80, 0x00, 0x6B, 0x00, 0x00, 0x67, 0xB8, 0x00, 0x43, + 0x80, 0x00, 0x6F, 0x00, 0x00, 0x2E, 0xB8, 0x00, 0x64, 0x00, 0x00, 0x42, + 0xB8, 0x00, 0x47, 0x00, 0x00, 0x79, 0xB8, 0x00, 0x68, 0x00, 0x00, 0x61, + 0xB8, 0x00, 0x48, 0x00, 0x00, 0x50, 0xB8, 0x00, 0x69, 0x00, 0x00, 0x6E, + 0xB8, 0x00, 0x4B, 0x00, 0x00, 0x4B, 0xB8, 0x00, 0x4B, 0x00, 0x00, 0x4D, + 0xB8, 0x00, 0x6B, 0x00, 0x00, 0x74, 0xB8, 0x00, 0x6C, 0x00, 0x00, 0x6D, + 0xB8, 0x00, 0x6C, 0x00, 0x00, 0x6E, 0xB8, 0x00, 0x6C, 0x80, 0x00, 0x6F, + 0x00, 0x00, 0x67, 0xB8, 0x00, 0x6C, 0x00, 0x00, 0x78, 0xB8, 0x00, 0x6D, + 0x00, 0x00, 0x62, 0xB8, 0x00, 0x6D, 0x80, 0x00, 0x69, 0x00, 0x00, 0x6C, + 0xB8, 0x00, 0x6D, 0x80, 0x00, 0x6F, 0x00, 0x00, 0x6C, 0xB8, 0x00, 0x50, + 0x00, 0x00, 0x48, 0xB8, 0x00, 0x70, 0x80, 0x00, 0x2E, 0x80, 0x00, 0x6D, + 0x00, 0x00, 0x2E, 0xB8, 0x00, 0x50, 0x80, 0x00, 0x50, 0x00, 0x00, 0x4D, + 0xB8, 0x00, 0x50, 0x00, 0x00, 0x52, 0xB8, 0x00, 0x73, 0x00, 0x00, 0x72, + 0xB8, 0x00, 0x53, 0x00, 0x00, 0x76, 0xB8, 0x00, 0x57, 0x00, 0x00, 0x62, + 0xB8, 0x00, 0x56, 0x80, 0x22, 0x15, 0x00, 0x00, 0x6D, 0xB8, 0x00, 0x41, + 0x80, 0x22, 0x15, 0x00, 0x00, 0x6D, 0xC0, 0x00, 0x31, 0x00, 0x65, 0xE5, + 0xC0, 0x00, 0x32, 0x00, 0x65, 0xE5, 0xC0, 0x00, 0x33, 0x00, 0x65, 0xE5, + 0xC0, 0x00, 0x34, 0x00, 0x65, 0xE5, 0xC0, 0x00, 0x35, 0x00, 0x65, 0xE5, + 0xC0, 0x00, 0x36, 0x00, 0x65, 0xE5, 0xC0, 0x00, 0x37, 0x00, 0x65, 0xE5, + 0xC0, 0x00, 0x38, 0x00, 0x65, 0xE5, 0xC0, 0x00, 0x39, 0x00, 0x65, 0xE5, + 0xC0, 0x00, 0x31, 0x80, 0x00, 0x30, 0x00, 0x65, 0xE5, 0xC0, 0x00, 0x31, + 0x80, 0x00, 0x31, 0x00, 0x65, 0xE5, 0xC0, 0x00, 0x31, 0x80, 0x00, 0x32, + 0x00, 0x65, 0xE5, 0xC0, 0x00, 0x31, 0x80, 0x00, 0x33, 0x00, 0x65, 0xE5, + 0xC0, 0x00, 0x31, 0x80, 0x00, 0x34, 0x00, 0x65, 0xE5, 0xC0, 0x00, 0x31, + 0x80, 0x00, 0x35, 0x00, 0x65, 0xE5, 0xC0, 0x00, 0x31, 0x80, 0x00, 0x36, + 0x00, 0x65, 0xE5, 0xC0, 0x00, 0x31, 0x80, 0x00, 0x37, 0x00, 0x65, 0xE5, + 0xC0, 0x00, 0x31, 0x80, 0x00, 0x38, 0x00, 0x65, 0xE5, 0xC0, 0x00, 0x31, + 0x80, 0x00, 0x39, 0x00, 0x65, 0xE5, 0xC0, 0x00, 0x32, 0x80, 0x00, 0x30, + 0x00, 0x65, 0xE5, 0xC0, 0x00, 0x32, 0x80, 0x00, 0x31, 0x00, 0x65, 0xE5, + 0xC0, 0x00, 0x32, 0x80, 0x00, 0x32, 0x00, 0x65, 0xE5, 0xC0, 0x00, 0x32, + 0x80, 0x00, 0x33, 0x00, 0x65, 0xE5, 0xC0, 0x00, 0x32, 0x80, 0x00, 0x34, + 0x00, 0x65, 0xE5, 0xC0, 0x00, 0x32, 0x80, 0x00, 0x35, 0x00, 0x65, 0xE5, + 0xC0, 0x00, 0x32, 0x80, 0x00, 0x36, 0x00, 0x65, 0xE5, 0xC0, 0x00, 0x32, + 0x80, 0x00, 0x37, 0x00, 0x65, 0xE5, 0xC0, 0x00, 0x32, 0x80, 0x00, 0x38, + 0x00, 0x65, 0xE5, 0xC0, 0x00, 0x32, 0x80, 0x00, 0x39, 0x00, 0x65, 0xE5, + 0xC0, 0x00, 0x33, 0x80, 0x00, 0x30, 0x00, 0x65, 0xE5, 0xC0, 0x00, 0x33, + 0x80, 0x00, 0x31, 0x00, 0x65, 0xE5, 0xB8, 0x00, 0x67, 0x80, 0x00, 0x61, + 0x00, 0x00, 0x6C, 0x20, 0xA7, 0x6F, 0x00, 0x8C, 0x48, 0x00, 0x66, 0xF4, + 0x00, 0x8E, 0xCA, 0x00, 0x8C, 0xC8, 0x00, 0x6E, 0xD1, 0x00, 0x4E, 0x32, + 0x00, 0x53, 0xE5, 0x00, 0x9F, 0x9C, 0x00, 0x9F, 0x9C, 0x00, 0x59, 0x51, + 0x00, 0x91, 0xD1, 0x00, 0x55, 0x87, 0x00, 0x59, 0x48, 0x00, 0x61, 0xF6, + 0x00, 0x76, 0x69, 0x00, 0x7F, 0x85, 0x00, 0x86, 0x3F, 0x00, 0x87, 0xBA, + 0x00, 0x88, 0xF8, 0x00, 0x90, 0x8F, 0x00, 0x6A, 0x02, 0x00, 0x6D, 0x1B, + 0x00, 0x70, 0xD9, 0x00, 0x73, 0xDE, 0x00, 0x84, 0x3D, 0x00, 0x91, 0x6A, + 0x00, 0x99, 0xF1, 0x00, 0x4E, 0x82, 0x00, 0x53, 0x75, 0x00, 0x6B, 0x04, + 0x00, 0x72, 0x1B, 0x00, 0x86, 0x2D, 0x00, 0x9E, 0x1E, 0x00, 0x5D, 0x50, + 0x00, 0x6F, 0xEB, 0x00, 0x85, 0xCD, 0x00, 0x89, 0x64, 0x00, 0x62, 0xC9, + 0x00, 0x81, 0xD8, 0x00, 0x88, 0x1F, 0x00, 0x5E, 0xCA, 0x00, 0x67, 0x17, + 0x00, 0x6D, 0x6A, 0x00, 0x72, 0xFC, 0x00, 0x90, 0xCE, 0x00, 0x4F, 0x86, + 0x00, 0x51, 0xB7, 0x00, 0x52, 0xDE, 0x00, 0x64, 0xC4, 0x00, 0x6A, 0xD3, + 0x00, 0x72, 0x10, 0x00, 0x76, 0xE7, 0x00, 0x80, 0x01, 0x00, 0x86, 0x06, + 0x00, 0x86, 0x5C, 0x00, 0x8D, 0xEF, 0x00, 0x97, 0x32, 0x00, 0x9B, 0x6F, + 0x00, 0x9D, 0xFA, 0x00, 0x78, 0x8C, 0x00, 0x79, 0x7F, 0x00, 0x7D, 0xA0, + 0x00, 0x83, 0xC9, 0x00, 0x93, 0x04, 0x00, 0x9E, 0x7F, 0x00, 0x8A, 0xD6, + 0x00, 0x58, 0xDF, 0x00, 0x5F, 0x04, 0x00, 0x7C, 0x60, 0x00, 0x80, 0x7E, + 0x00, 0x72, 0x62, 0x00, 0x78, 0xCA, 0x00, 0x8C, 0xC2, 0x00, 0x96, 0xF7, + 0x00, 0x58, 0xD8, 0x00, 0x5C, 0x62, 0x00, 0x6A, 0x13, 0x00, 0x6D, 0xDA, + 0x00, 0x6F, 0x0F, 0x00, 0x7D, 0x2F, 0x00, 0x7E, 0x37, 0x00, 0x96, 0x4B, + 0x00, 0x52, 0xD2, 0x00, 0x80, 0x8B, 0x00, 0x51, 0xDC, 0x00, 0x51, 0xCC, + 0x00, 0x7A, 0x1C, 0x00, 0x7D, 0xBE, 0x00, 0x83, 0xF1, 0x00, 0x96, 0x75, + 0x00, 0x8B, 0x80, 0x00, 0x62, 0xCF, 0x00, 0x6A, 0x02, 0x00, 0x8A, 0xFE, + 0x00, 0x4E, 0x39, 0x00, 0x5B, 0xE7, 0x00, 0x60, 0x12, 0x00, 0x73, 0x87, + 0x00, 0x75, 0x70, 0x00, 0x53, 0x17, 0x00, 0x78, 0xFB, 0x00, 0x4F, 0xBF, + 0x00, 0x5F, 0xA9, 0x00, 0x4E, 0x0D, 0x00, 0x6C, 0xCC, 0x00, 0x65, 0x78, + 0x00, 0x7D, 0x22, 0x00, 0x53, 0xC3, 0x00, 0x58, 0x5E, 0x00, 0x77, 0x01, + 0x00, 0x84, 0x49, 0x00, 0x8A, 0xAA, 0x00, 0x6B, 0xBA, 0x00, 0x8F, 0xB0, + 0x00, 0x6C, 0x88, 0x00, 0x62, 0xFE, 0x00, 0x82, 0xE5, 0x00, 0x63, 0xA0, + 0x00, 0x75, 0x65, 0x00, 0x4E, 0xAE, 0x00, 0x51, 0x69, 0x00, 0x51, 0xC9, + 0x00, 0x68, 0x81, 0x00, 0x7C, 0xE7, 0x00, 0x82, 0x6F, 0x00, 0x8A, 0xD2, + 0x00, 0x91, 0xCF, 0x00, 0x52, 0xF5, 0x00, 0x54, 0x42, 0x00, 0x59, 0x73, + 0x00, 0x5E, 0xEC, 0x00, 0x65, 0xC5, 0x00, 0x6F, 0xFE, 0x00, 0x79, 0x2A, + 0x00, 0x95, 0xAD, 0x00, 0x9A, 0x6A, 0x00, 0x9E, 0x97, 0x00, 0x9E, 0xCE, + 0x00, 0x52, 0x9B, 0x00, 0x66, 0xC6, 0x00, 0x6B, 0x77, 0x00, 0x8F, 0x62, + 0x00, 0x5E, 0x74, 0x00, 0x61, 0x90, 0x00, 0x62, 0x00, 0x00, 0x64, 0x9A, + 0x00, 0x6F, 0x23, 0x00, 0x71, 0x49, 0x00, 0x74, 0x89, 0x00, 0x79, 0xCA, + 0x00, 0x7D, 0xF4, 0x00, 0x80, 0x6F, 0x00, 0x8F, 0x26, 0x00, 0x84, 0xEE, + 0x00, 0x90, 0x23, 0x00, 0x93, 0x4A, 0x00, 0x52, 0x17, 0x00, 0x52, 0xA3, + 0x00, 0x54, 0xBD, 0x00, 0x70, 0xC8, 0x00, 0x88, 0xC2, 0x00, 0x8A, 0xAA, + 0x00, 0x5E, 0xC9, 0x00, 0x5F, 0xF5, 0x00, 0x63, 0x7B, 0x00, 0x6B, 0xAE, + 0x00, 0x7C, 0x3E, 0x00, 0x73, 0x75, 0x00, 0x4E, 0xE4, 0x00, 0x56, 0xF9, + 0x00, 0x5B, 0xE7, 0x00, 0x5D, 0xBA, 0x00, 0x60, 0x1C, 0x00, 0x73, 0xB2, + 0x00, 0x74, 0x69, 0x00, 0x7F, 0x9A, 0x00, 0x80, 0x46, 0x00, 0x92, 0x34, + 0x00, 0x96, 0xF6, 0x00, 0x97, 0x48, 0x00, 0x98, 0x18, 0x00, 0x4F, 0x8B, + 0x00, 0x79, 0xAE, 0x00, 0x91, 0xB4, 0x00, 0x96, 0xB8, 0x00, 0x60, 0xE1, + 0x00, 0x4E, 0x86, 0x00, 0x50, 0xDA, 0x00, 0x5B, 0xEE, 0x00, 0x5C, 0x3F, + 0x00, 0x65, 0x99, 0x00, 0x6A, 0x02, 0x00, 0x71, 0xCE, 0x00, 0x76, 0x42, + 0x00, 0x84, 0xFC, 0x00, 0x90, 0x7C, 0x00, 0x9F, 0x8D, 0x00, 0x66, 0x88, + 0x00, 0x96, 0x2E, 0x00, 0x52, 0x89, 0x00, 0x67, 0x7B, 0x00, 0x67, 0xF3, + 0x00, 0x6D, 0x41, 0x00, 0x6E, 0x9C, 0x00, 0x74, 0x09, 0x00, 0x75, 0x59, + 0x00, 0x78, 0x6B, 0x00, 0x7D, 0x10, 0x00, 0x98, 0x5E, 0x00, 0x51, 0x6D, + 0x00, 0x62, 0x2E, 0x00, 0x96, 0x78, 0x00, 0x50, 0x2B, 0x00, 0x5D, 0x19, + 0x00, 0x6D, 0xEA, 0x00, 0x8F, 0x2A, 0x00, 0x5F, 0x8B, 0x00, 0x61, 0x44, + 0x00, 0x68, 0x17, 0x00, 0x73, 0x87, 0x00, 0x96, 0x86, 0x00, 0x52, 0x29, + 0x00, 0x54, 0x0F, 0x00, 0x5C, 0x65, 0x00, 0x66, 0x13, 0x00, 0x67, 0x4E, + 0x00, 0x68, 0xA8, 0x00, 0x6C, 0xE5, 0x00, 0x74, 0x06, 0x00, 0x75, 0xE2, + 0x00, 0x7F, 0x79, 0x00, 0x88, 0xCF, 0x00, 0x88, 0xE1, 0x00, 0x91, 0xCC, + 0x00, 0x96, 0xE2, 0x00, 0x53, 0x3F, 0x00, 0x6E, 0xBA, 0x00, 0x54, 0x1D, + 0x00, 0x71, 0xD0, 0x00, 0x74, 0x98, 0x00, 0x85, 0xFA, 0x00, 0x96, 0xA3, + 0x00, 0x9C, 0x57, 0x00, 0x9E, 0x9F, 0x00, 0x67, 0x97, 0x00, 0x6D, 0xCB, + 0x00, 0x81, 0xE8, 0x00, 0x7A, 0xCB, 0x00, 0x7B, 0x20, 0x00, 0x7C, 0x92, + 0x00, 0x72, 0xC0, 0x00, 0x70, 0x99, 0x00, 0x8B, 0x58, 0x00, 0x4E, 0xC0, + 0x00, 0x83, 0x36, 0x00, 0x52, 0x3A, 0x00, 0x52, 0x07, 0x00, 0x5E, 0xA6, + 0x00, 0x62, 0xD3, 0x00, 0x7C, 0xD6, 0x00, 0x5B, 0x85, 0x00, 0x6D, 0x1E, + 0x00, 0x66, 0xB4, 0x00, 0x8F, 0x3B, 0x00, 0x88, 0x4C, 0x00, 0x96, 0x4D, + 0x00, 0x89, 0x8B, 0x00, 0x5E, 0xD3, 0x00, 0x51, 0x40, 0x00, 0x55, 0xC0, + 0x00, 0x58, 0x5A, 0x00, 0x66, 0x74, 0x00, 0x51, 0xDE, 0x00, 0x73, 0x2A, + 0x00, 0x76, 0xCA, 0x00, 0x79, 0x3C, 0x00, 0x79, 0x5E, 0x00, 0x79, 0x65, + 0x00, 0x79, 0x8F, 0x00, 0x97, 0x56, 0x00, 0x7C, 0xBE, 0x00, 0x7F, 0xBD, + 0x00, 0x86, 0x12, 0x00, 0x8A, 0xF8, 0x00, 0x90, 0x38, 0x00, 0x90, 0xFD, + 0x00, 0x98, 0xEF, 0x00, 0x98, 0xFC, 0x00, 0x99, 0x28, 0x00, 0x9D, 0xB4, + 0x00, 0x4F, 0xAE, 0x00, 0x50, 0xE7, 0x00, 0x51, 0x4D, 0x00, 0x52, 0xC9, + 0x00, 0x52, 0xE4, 0x00, 0x53, 0x51, 0x00, 0x55, 0x9D, 0x00, 0x56, 0x06, + 0x00, 0x56, 0x68, 0x00, 0x58, 0x40, 0x00, 0x58, 0xA8, 0x00, 0x5C, 0x64, + 0x00, 0x5C, 0x6E, 0x00, 0x60, 0x94, 0x00, 0x61, 0x68, 0x00, 0x61, 0x8E, + 0x00, 0x61, 0xF2, 0x00, 0x65, 0x4F, 0x00, 0x65, 0xE2, 0x00, 0x66, 0x91, + 0x00, 0x68, 0x85, 0x00, 0x6D, 0x77, 0x00, 0x6E, 0x1A, 0x00, 0x6F, 0x22, + 0x00, 0x71, 0x6E, 0x00, 0x72, 0x2B, 0x00, 0x74, 0x22, 0x00, 0x78, 0x91, + 0x00, 0x79, 0x3E, 0x00, 0x79, 0x49, 0x00, 0x79, 0x48, 0x00, 0x79, 0x50, + 0x00, 0x79, 0x56, 0x00, 0x79, 0x5D, 0x00, 0x79, 0x8D, 0x00, 0x79, 0x8E, + 0x00, 0x7A, 0x40, 0x00, 0x7A, 0x81, 0x00, 0x7B, 0xC0, 0x00, 0x7D, 0xF4, + 0x00, 0x7E, 0x09, 0x00, 0x7E, 0x41, 0x00, 0x7F, 0x72, 0x00, 0x80, 0x05, + 0x00, 0x81, 0xED, 0x00, 0x82, 0x79, 0x00, 0x82, 0x79, 0x00, 0x84, 0x57, + 0x00, 0x89, 0x10, 0x00, 0x89, 0x96, 0x00, 0x8B, 0x01, 0x00, 0x8B, 0x39, + 0x00, 0x8C, 0xD3, 0x00, 0x8D, 0x08, 0x00, 0x8F, 0xB6, 0x00, 0x90, 0x38, + 0x00, 0x96, 0xE3, 0x00, 0x97, 0xFF, 0x00, 0x98, 0x3B, 0x00, 0x4E, 0x26, + 0x00, 0x51, 0xB5, 0x00, 0x51, 0x68, 0x00, 0x4F, 0x80, 0x00, 0x51, 0x45, + 0x00, 0x51, 0x80, 0x00, 0x52, 0xC7, 0x00, 0x52, 0xFA, 0x00, 0x55, 0x9D, + 0x00, 0x55, 0x55, 0x00, 0x55, 0x99, 0x00, 0x55, 0xE2, 0x00, 0x58, 0x5A, + 0x00, 0x58, 0xB3, 0x00, 0x59, 0x44, 0x00, 0x59, 0x54, 0x00, 0x5A, 0x62, + 0x00, 0x5B, 0x28, 0x00, 0x5E, 0xD2, 0x00, 0x5E, 0xD9, 0x00, 0x5F, 0x69, + 0x00, 0x5F, 0xAD, 0x00, 0x60, 0xD8, 0x00, 0x61, 0x4E, 0x00, 0x61, 0x08, + 0x00, 0x61, 0x8E, 0x00, 0x61, 0x60, 0x00, 0x61, 0xF2, 0x00, 0x62, 0x34, + 0x00, 0x63, 0xC4, 0x00, 0x64, 0x1C, 0x00, 0x64, 0x52, 0x00, 0x65, 0x56, + 0x00, 0x66, 0x74, 0x00, 0x67, 0x17, 0x00, 0x67, 0x1B, 0x00, 0x67, 0x56, + 0x00, 0x6B, 0x79, 0x00, 0x6B, 0xBA, 0x00, 0x6D, 0x41, 0x00, 0x6E, 0xDB, + 0x00, 0x6E, 0xCB, 0x00, 0x6F, 0x22, 0x00, 0x70, 0x1E, 0x00, 0x71, 0x6E, + 0x00, 0x77, 0xA7, 0x00, 0x72, 0x35, 0x00, 0x72, 0xAF, 0x00, 0x73, 0x2A, + 0x00, 0x74, 0x71, 0x00, 0x75, 0x06, 0x00, 0x75, 0x3B, 0x00, 0x76, 0x1D, + 0x00, 0x76, 0x1F, 0x00, 0x76, 0xCA, 0x00, 0x76, 0xDB, 0x00, 0x76, 0xF4, + 0x00, 0x77, 0x4A, 0x00, 0x77, 0x40, 0x00, 0x78, 0xCC, 0x00, 0x7A, 0xB1, + 0x00, 0x7B, 0xC0, 0x00, 0x7C, 0x7B, 0x00, 0x7D, 0x5B, 0x00, 0x7D, 0xF4, + 0x00, 0x7F, 0x3E, 0x00, 0x80, 0x05, 0x00, 0x83, 0x52, 0x00, 0x83, 0xEF, + 0x00, 0x87, 0x79, 0x00, 0x89, 0x41, 0x00, 0x89, 0x86, 0x00, 0x89, 0x96, + 0x00, 0x8A, 0xBF, 0x00, 0x8A, 0xF8, 0x00, 0x8A, 0xCB, 0x00, 0x8B, 0x01, + 0x00, 0x8A, 0xFE, 0x00, 0x8A, 0xED, 0x00, 0x8B, 0x39, 0x00, 0x8B, 0x8A, + 0x00, 0x8D, 0x08, 0x00, 0x8F, 0x38, 0x00, 0x90, 0x72, 0x00, 0x91, 0x99, + 0x00, 0x92, 0x76, 0x00, 0x96, 0x7C, 0x00, 0x96, 0xE3, 0x00, 0x97, 0x56, + 0x00, 0x97, 0xDB, 0x00, 0x97, 0xFF, 0x00, 0x98, 0x0B, 0x00, 0x98, 0x3B, + 0x00, 0x9B, 0x12, 0x00, 0x9F, 0x9C, 0x02, 0x28, 0x4A, 0x02, 0x28, 0x44, + 0x02, 0x33, 0xD5, 0x00, 0x3B, 0x9D, 0x00, 0x40, 0x18, 0x00, 0x40, 0x39, + 0x02, 0x52, 0x49, 0x02, 0x5C, 0xD0, 0x02, 0x7E, 0xD3, 0x00, 0x9F, 0x43, + 0x00, 0x9F, 0x8E, 0xC0, 0x00, 0x66, 0x00, 0x00, 0x66, 0xC0, 0x00, 0x66, + 0x00, 0x00, 0x69, 0xC0, 0x00, 0x66, 0x00, 0x00, 0x6C, 0xC0, 0x00, 0x66, + 0x80, 0x00, 0x66, 0x00, 0x00, 0x69, 0xC0, 0x00, 0x66, 0x80, 0x00, 0x66, + 0x00, 0x00, 0x6C, 0xC0, 0x01, 0x7F, 0x00, 0x00, 0x74, 0xC0, 0x00, 0x73, + 0x00, 0x00, 0x74, 0xC0, 0x05, 0x74, 0x00, 0x05, 0x76, 0xC0, 0x05, 0x74, + 0x00, 0x05, 0x65, 0xC0, 0x05, 0x74, 0x00, 0x05, 0x6B, 0xC0, 0x05, 0x7E, + 0x00, 0x05, 0x76, 0xC0, 0x05, 0x74, 0x00, 0x05, 0x6D, 0x80, 0x05, 0xD9, + 0x00, 0x05, 0xB4, 0x80, 0x05, 0xF2, 0x00, 0x05, 0xB7, 0x04, 0x05, 0xE2, + 0x04, 0x05, 0xD0, 0x04, 0x05, 0xD3, 0x04, 0x05, 0xD4, 0x04, 0x05, 0xDB, + 0x04, 0x05, 0xDC, 0x04, 0x05, 0xDD, 0x04, 0x05, 0xE8, 0x04, 0x05, 0xEA, + 0x04, 0x00, 0x2B, 0x80, 0x05, 0xE9, 0x00, 0x05, 0xC1, 0x80, 0x05, 0xE9, + 0x00, 0x05, 0xC2, 0x80, 0xFB, 0x49, 0x00, 0x05, 0xC1, 0x80, 0xFB, 0x49, + 0x00, 0x05, 0xC2, 0x80, 0x05, 0xD0, 0x00, 0x05, 0xB7, 0x80, 0x05, 0xD0, + 0x00, 0x05, 0xB8, 0x80, 0x05, 0xD0, 0x00, 0x05, 0xBC, 0x80, 0x05, 0xD1, + 0x00, 0x05, 0xBC, 0x80, 0x05, 0xD2, 0x00, 0x05, 0xBC, 0x80, 0x05, 0xD3, + 0x00, 0x05, 0xBC, 0x80, 0x05, 0xD4, 0x00, 0x05, 0xBC, 0x80, 0x05, 0xD5, + 0x00, 0x05, 0xBC, 0x80, 0x05, 0xD6, 0x00, 0x05, 0xBC, 0x80, 0x05, 0xD8, + 0x00, 0x05, 0xBC, 0x80, 0x05, 0xD9, 0x00, 0x05, 0xBC, 0x80, 0x05, 0xDA, + 0x00, 0x05, 0xBC, 0x80, 0x05, 0xDB, 0x00, 0x05, 0xBC, 0x80, 0x05, 0xDC, + 0x00, 0x05, 0xBC, 0x80, 0x05, 0xDE, 0x00, 0x05, 0xBC, 0x80, 0x05, 0xE0, + 0x00, 0x05, 0xBC, 0x80, 0x05, 0xE1, 0x00, 0x05, 0xBC, 0x80, 0x05, 0xE3, + 0x00, 0x05, 0xBC, 0x80, 0x05, 0xE4, 0x00, 0x05, 0xBC, 0x80, 0x05, 0xE6, + 0x00, 0x05, 0xBC, 0x80, 0x05, 0xE7, 0x00, 0x05, 0xBC, 0x80, 0x05, 0xE8, + 0x00, 0x05, 0xBC, 0x80, 0x05, 0xE9, 0x00, 0x05, 0xBC, 0x80, 0x05, 0xEA, + 0x00, 0x05, 0xBC, 0x80, 0x05, 0xD5, 0x00, 0x05, 0xB9, 0x80, 0x05, 0xD1, + 0x00, 0x05, 0xBF, 0x80, 0x05, 0xDB, 0x00, 0x05, 0xBF, 0x80, 0x05, 0xE4, + 0x00, 0x05, 0xBF, 0xC0, 0x05, 0xD0, 0x00, 0x05, 0xDC, 0x18, 0x06, 0x71, + 0x14, 0x06, 0x71, 0x18, 0x06, 0x7B, 0x14, 0x06, 0x7B, 0x0C, 0x06, 0x7B, + 0x10, 0x06, 0x7B, 0x18, 0x06, 0x7E, 0x14, 0x06, 0x7E, 0x0C, 0x06, 0x7E, + 0x10, 0x06, 0x7E, 0x18, 0x06, 0x80, 0x14, 0x06, 0x80, 0x0C, 0x06, 0x80, + 0x10, 0x06, 0x80, 0x18, 0x06, 0x7A, 0x14, 0x06, 0x7A, 0x0C, 0x06, 0x7A, + 0x10, 0x06, 0x7A, 0x18, 0x06, 0x7F, 0x14, 0x06, 0x7F, 0x0C, 0x06, 0x7F, + 0x10, 0x06, 0x7F, 0x18, 0x06, 0x79, 0x14, 0x06, 0x79, 0x0C, 0x06, 0x79, + 0x10, 0x06, 0x79, 0x18, 0x06, 0xA4, 0x14, 0x06, 0xA4, 0x0C, 0x06, 0xA4, + 0x10, 0x06, 0xA4, 0x18, 0x06, 0xA6, 0x14, 0x06, 0xA6, 0x0C, 0x06, 0xA6, + 0x10, 0x06, 0xA6, 0x18, 0x06, 0x84, 0x14, 0x06, 0x84, 0x0C, 0x06, 0x84, + 0x10, 0x06, 0x84, 0x18, 0x06, 0x83, 0x14, 0x06, 0x83, 0x0C, 0x06, 0x83, + 0x10, 0x06, 0x83, 0x18, 0x06, 0x86, 0x14, 0x06, 0x86, 0x0C, 0x06, 0x86, + 0x10, 0x06, 0x86, 0x18, 0x06, 0x87, 0x14, 0x06, 0x87, 0x0C, 0x06, 0x87, + 0x10, 0x06, 0x87, 0x18, 0x06, 0x8D, 0x14, 0x06, 0x8D, 0x18, 0x06, 0x8C, + 0x14, 0x06, 0x8C, 0x18, 0x06, 0x8E, 0x14, 0x06, 0x8E, 0x18, 0x06, 0x88, + 0x14, 0x06, 0x88, 0x18, 0x06, 0x98, 0x14, 0x06, 0x98, 0x18, 0x06, 0x91, + 0x14, 0x06, 0x91, 0x18, 0x06, 0xA9, 0x14, 0x06, 0xA9, 0x0C, 0x06, 0xA9, + 0x10, 0x06, 0xA9, 0x18, 0x06, 0xAF, 0x14, 0x06, 0xAF, 0x0C, 0x06, 0xAF, + 0x10, 0x06, 0xAF, 0x18, 0x06, 0xB3, 0x14, 0x06, 0xB3, 0x0C, 0x06, 0xB3, + 0x10, 0x06, 0xB3, 0x18, 0x06, 0xB1, 0x14, 0x06, 0xB1, 0x0C, 0x06, 0xB1, + 0x10, 0x06, 0xB1, 0x18, 0x06, 0xBA, 0x14, 0x06, 0xBA, 0x18, 0x06, 0xBB, + 0x14, 0x06, 0xBB, 0x0C, 0x06, 0xBB, 0x10, 0x06, 0xBB, 0x18, 0x06, 0xC0, + 0x14, 0x06, 0xC0, 0x18, 0x06, 0xC1, 0x14, 0x06, 0xC1, 0x0C, 0x06, 0xC1, + 0x10, 0x06, 0xC1, 0x18, 0x06, 0xBE, 0x14, 0x06, 0xBE, 0x0C, 0x06, 0xBE, + 0x10, 0x06, 0xBE, 0x18, 0x06, 0xD2, 0x14, 0x06, 0xD2, 0x18, 0x06, 0xD3, + 0x14, 0x06, 0xD3, 0x18, 0x06, 0xAD, 0x14, 0x06, 0xAD, 0x0C, 0x06, 0xAD, + 0x10, 0x06, 0xAD, 0x18, 0x06, 0xC7, 0x14, 0x06, 0xC7, 0x18, 0x06, 0xC6, + 0x14, 0x06, 0xC6, 0x18, 0x06, 0xC8, 0x14, 0x06, 0xC8, 0x18, 0x06, 0x77, + 0x18, 0x06, 0xCB, 0x14, 0x06, 0xCB, 0x18, 0x06, 0xC5, 0x14, 0x06, 0xC5, + 0x18, 0x06, 0xC9, 0x14, 0x06, 0xC9, 0x18, 0x06, 0xD0, 0x14, 0x06, 0xD0, + 0x0C, 0x06, 0xD0, 0x10, 0x06, 0xD0, 0x0C, 0x06, 0x49, 0x10, 0x06, 0x49, + 0x98, 0x06, 0x26, 0x00, 0x06, 0x27, 0x94, 0x06, 0x26, 0x00, 0x06, 0x27, + 0x98, 0x06, 0x26, 0x00, 0x06, 0xD5, 0x94, 0x06, 0x26, 0x00, 0x06, 0xD5, + 0x98, 0x06, 0x26, 0x00, 0x06, 0x48, 0x94, 0x06, 0x26, 0x00, 0x06, 0x48, + 0x98, 0x06, 0x26, 0x00, 0x06, 0xC7, 0x94, 0x06, 0x26, 0x00, 0x06, 0xC7, + 0x98, 0x06, 0x26, 0x00, 0x06, 0xC6, 0x94, 0x06, 0x26, 0x00, 0x06, 0xC6, + 0x98, 0x06, 0x26, 0x00, 0x06, 0xC8, 0x94, 0x06, 0x26, 0x00, 0x06, 0xC8, + 0x98, 0x06, 0x26, 0x00, 0x06, 0xD0, 0x94, 0x06, 0x26, 0x00, 0x06, 0xD0, + 0x8C, 0x06, 0x26, 0x00, 0x06, 0xD0, 0x98, 0x06, 0x26, 0x00, 0x06, 0x49, + 0x94, 0x06, 0x26, 0x00, 0x06, 0x49, 0x8C, 0x06, 0x26, 0x00, 0x06, 0x49, + 0x18, 0x06, 0xCC, 0x14, 0x06, 0xCC, 0x0C, 0x06, 0xCC, 0x10, 0x06, 0xCC, + 0x98, 0x06, 0x26, 0x00, 0x06, 0x2C, 0x98, 0x06, 0x26, 0x00, 0x06, 0x2D, + 0x98, 0x06, 0x26, 0x00, 0x06, 0x45, 0x98, 0x06, 0x26, 0x00, 0x06, 0x49, + 0x98, 0x06, 0x26, 0x00, 0x06, 0x4A, 0x98, 0x06, 0x28, 0x00, 0x06, 0x2C, + 0x98, 0x06, 0x28, 0x00, 0x06, 0x2D, 0x98, 0x06, 0x28, 0x00, 0x06, 0x2E, + 0x98, 0x06, 0x28, 0x00, 0x06, 0x45, 0x98, 0x06, 0x28, 0x00, 0x06, 0x49, + 0x98, 0x06, 0x28, 0x00, 0x06, 0x4A, 0x98, 0x06, 0x2A, 0x00, 0x06, 0x2C, + 0x98, 0x06, 0x2A, 0x00, 0x06, 0x2D, 0x98, 0x06, 0x2A, 0x00, 0x06, 0x2E, + 0x98, 0x06, 0x2A, 0x00, 0x06, 0x45, 0x98, 0x06, 0x2A, 0x00, 0x06, 0x49, + 0x98, 0x06, 0x2A, 0x00, 0x06, 0x4A, 0x98, 0x06, 0x2B, 0x00, 0x06, 0x2C, + 0x98, 0x06, 0x2B, 0x00, 0x06, 0x45, 0x98, 0x06, 0x2B, 0x00, 0x06, 0x49, + 0x98, 0x06, 0x2B, 0x00, 0x06, 0x4A, 0x98, 0x06, 0x2C, 0x00, 0x06, 0x2D, + 0x98, 0x06, 0x2C, 0x00, 0x06, 0x45, 0x98, 0x06, 0x2D, 0x00, 0x06, 0x2C, + 0x98, 0x06, 0x2D, 0x00, 0x06, 0x45, 0x98, 0x06, 0x2E, 0x00, 0x06, 0x2C, + 0x98, 0x06, 0x2E, 0x00, 0x06, 0x2D, 0x98, 0x06, 0x2E, 0x00, 0x06, 0x45, + 0x98, 0x06, 0x33, 0x00, 0x06, 0x2C, 0x98, 0x06, 0x33, 0x00, 0x06, 0x2D, + 0x98, 0x06, 0x33, 0x00, 0x06, 0x2E, 0x98, 0x06, 0x33, 0x00, 0x06, 0x45, + 0x98, 0x06, 0x35, 0x00, 0x06, 0x2D, 0x98, 0x06, 0x35, 0x00, 0x06, 0x45, + 0x98, 0x06, 0x36, 0x00, 0x06, 0x2C, 0x98, 0x06, 0x36, 0x00, 0x06, 0x2D, + 0x98, 0x06, 0x36, 0x00, 0x06, 0x2E, 0x98, 0x06, 0x36, 0x00, 0x06, 0x45, + 0x98, 0x06, 0x37, 0x00, 0x06, 0x2D, 0x98, 0x06, 0x37, 0x00, 0x06, 0x45, + 0x98, 0x06, 0x38, 0x00, 0x06, 0x45, 0x98, 0x06, 0x39, 0x00, 0x06, 0x2C, + 0x98, 0x06, 0x39, 0x00, 0x06, 0x45, 0x98, 0x06, 0x3A, 0x00, 0x06, 0x2C, + 0x98, 0x06, 0x3A, 0x00, 0x06, 0x45, 0x98, 0x06, 0x41, 0x00, 0x06, 0x2C, + 0x98, 0x06, 0x41, 0x00, 0x06, 0x2D, 0x98, 0x06, 0x41, 0x00, 0x06, 0x2E, + 0x98, 0x06, 0x41, 0x00, 0x06, 0x45, 0x98, 0x06, 0x41, 0x00, 0x06, 0x49, + 0x98, 0x06, 0x41, 0x00, 0x06, 0x4A, 0x98, 0x06, 0x42, 0x00, 0x06, 0x2D, + 0x98, 0x06, 0x42, 0x00, 0x06, 0x45, 0x98, 0x06, 0x42, 0x00, 0x06, 0x49, + 0x98, 0x06, 0x42, 0x00, 0x06, 0x4A, 0x98, 0x06, 0x43, 0x00, 0x06, 0x27, + 0x98, 0x06, 0x43, 0x00, 0x06, 0x2C, 0x98, 0x06, 0x43, 0x00, 0x06, 0x2D, + 0x98, 0x06, 0x43, 0x00, 0x06, 0x2E, 0x98, 0x06, 0x43, 0x00, 0x06, 0x44, + 0x98, 0x06, 0x43, 0x00, 0x06, 0x45, 0x98, 0x06, 0x43, 0x00, 0x06, 0x49, + 0x98, 0x06, 0x43, 0x00, 0x06, 0x4A, 0x98, 0x06, 0x44, 0x00, 0x06, 0x2C, + 0x98, 0x06, 0x44, 0x00, 0x06, 0x2D, 0x98, 0x06, 0x44, 0x00, 0x06, 0x2E, + 0x98, 0x06, 0x44, 0x00, 0x06, 0x45, 0x98, 0x06, 0x44, 0x00, 0x06, 0x49, + 0x98, 0x06, 0x44, 0x00, 0x06, 0x4A, 0x98, 0x06, 0x45, 0x00, 0x06, 0x2C, + 0x98, 0x06, 0x45, 0x00, 0x06, 0x2D, 0x98, 0x06, 0x45, 0x00, 0x06, 0x2E, + 0x98, 0x06, 0x45, 0x00, 0x06, 0x45, 0x98, 0x06, 0x45, 0x00, 0x06, 0x49, + 0x98, 0x06, 0x45, 0x00, 0x06, 0x4A, 0x98, 0x06, 0x46, 0x00, 0x06, 0x2C, + 0x98, 0x06, 0x46, 0x00, 0x06, 0x2D, 0x98, 0x06, 0x46, 0x00, 0x06, 0x2E, + 0x98, 0x06, 0x46, 0x00, 0x06, 0x45, 0x98, 0x06, 0x46, 0x00, 0x06, 0x49, + 0x98, 0x06, 0x46, 0x00, 0x06, 0x4A, 0x98, 0x06, 0x47, 0x00, 0x06, 0x2C, + 0x98, 0x06, 0x47, 0x00, 0x06, 0x45, 0x98, 0x06, 0x47, 0x00, 0x06, 0x49, + 0x98, 0x06, 0x47, 0x00, 0x06, 0x4A, 0x98, 0x06, 0x4A, 0x00, 0x06, 0x2C, + 0x98, 0x06, 0x4A, 0x00, 0x06, 0x2D, 0x98, 0x06, 0x4A, 0x00, 0x06, 0x2E, + 0x98, 0x06, 0x4A, 0x00, 0x06, 0x45, 0x98, 0x06, 0x4A, 0x00, 0x06, 0x49, + 0x98, 0x06, 0x4A, 0x00, 0x06, 0x4A, 0x98, 0x06, 0x30, 0x00, 0x06, 0x70, + 0x98, 0x06, 0x31, 0x00, 0x06, 0x70, 0x98, 0x06, 0x49, 0x00, 0x06, 0x70, + 0x98, 0x00, 0x20, 0x80, 0x06, 0x4C, 0x00, 0x06, 0x51, 0x98, 0x00, 0x20, + 0x80, 0x06, 0x4D, 0x00, 0x06, 0x51, 0x98, 0x00, 0x20, 0x80, 0x06, 0x4E, + 0x00, 0x06, 0x51, 0x98, 0x00, 0x20, 0x80, 0x06, 0x4F, 0x00, 0x06, 0x51, + 0x98, 0x00, 0x20, 0x80, 0x06, 0x50, 0x00, 0x06, 0x51, 0x98, 0x00, 0x20, + 0x80, 0x06, 0x51, 0x00, 0x06, 0x70, 0x94, 0x06, 0x26, 0x00, 0x06, 0x31, + 0x94, 0x06, 0x26, 0x00, 0x06, 0x32, 0x94, 0x06, 0x26, 0x00, 0x06, 0x45, + 0x94, 0x06, 0x26, 0x00, 0x06, 0x46, 0x94, 0x06, 0x26, 0x00, 0x06, 0x49, + 0x94, 0x06, 0x26, 0x00, 0x06, 0x4A, 0x94, 0x06, 0x28, 0x00, 0x06, 0x31, + 0x94, 0x06, 0x28, 0x00, 0x06, 0x32, 0x94, 0x06, 0x28, 0x00, 0x06, 0x45, + 0x94, 0x06, 0x28, 0x00, 0x06, 0x46, 0x94, 0x06, 0x28, 0x00, 0x06, 0x49, + 0x94, 0x06, 0x28, 0x00, 0x06, 0x4A, 0x94, 0x06, 0x2A, 0x00, 0x06, 0x31, + 0x94, 0x06, 0x2A, 0x00, 0x06, 0x32, 0x94, 0x06, 0x2A, 0x00, 0x06, 0x45, + 0x94, 0x06, 0x2A, 0x00, 0x06, 0x46, 0x94, 0x06, 0x2A, 0x00, 0x06, 0x49, + 0x94, 0x06, 0x2A, 0x00, 0x06, 0x4A, 0x94, 0x06, 0x2B, 0x00, 0x06, 0x31, + 0x94, 0x06, 0x2B, 0x00, 0x06, 0x32, 0x94, 0x06, 0x2B, 0x00, 0x06, 0x45, + 0x94, 0x06, 0x2B, 0x00, 0x06, 0x46, 0x94, 0x06, 0x2B, 0x00, 0x06, 0x49, + 0x94, 0x06, 0x2B, 0x00, 0x06, 0x4A, 0x94, 0x06, 0x41, 0x00, 0x06, 0x49, + 0x94, 0x06, 0x41, 0x00, 0x06, 0x4A, 0x94, 0x06, 0x42, 0x00, 0x06, 0x49, + 0x94, 0x06, 0x42, 0x00, 0x06, 0x4A, 0x94, 0x06, 0x43, 0x00, 0x06, 0x27, + 0x94, 0x06, 0x43, 0x00, 0x06, 0x44, 0x94, 0x06, 0x43, 0x00, 0x06, 0x45, + 0x94, 0x06, 0x43, 0x00, 0x06, 0x49, 0x94, 0x06, 0x43, 0x00, 0x06, 0x4A, + 0x94, 0x06, 0x44, 0x00, 0x06, 0x45, 0x94, 0x06, 0x44, 0x00, 0x06, 0x49, + 0x94, 0x06, 0x44, 0x00, 0x06, 0x4A, 0x94, 0x06, 0x45, 0x00, 0x06, 0x27, + 0x94, 0x06, 0x45, 0x00, 0x06, 0x45, 0x94, 0x06, 0x46, 0x00, 0x06, 0x31, + 0x94, 0x06, 0x46, 0x00, 0x06, 0x32, 0x94, 0x06, 0x46, 0x00, 0x06, 0x45, + 0x94, 0x06, 0x46, 0x00, 0x06, 0x46, 0x94, 0x06, 0x46, 0x00, 0x06, 0x49, + 0x94, 0x06, 0x46, 0x00, 0x06, 0x4A, 0x94, 0x06, 0x49, 0x00, 0x06, 0x70, + 0x94, 0x06, 0x4A, 0x00, 0x06, 0x31, 0x94, 0x06, 0x4A, 0x00, 0x06, 0x32, + 0x94, 0x06, 0x4A, 0x00, 0x06, 0x45, 0x94, 0x06, 0x4A, 0x00, 0x06, 0x46, + 0x94, 0x06, 0x4A, 0x00, 0x06, 0x49, 0x94, 0x06, 0x4A, 0x00, 0x06, 0x4A, + 0x8C, 0x06, 0x26, 0x00, 0x06, 0x2C, 0x8C, 0x06, 0x26, 0x00, 0x06, 0x2D, + 0x8C, 0x06, 0x26, 0x00, 0x06, 0x2E, 0x8C, 0x06, 0x26, 0x00, 0x06, 0x45, + 0x8C, 0x06, 0x26, 0x00, 0x06, 0x47, 0x8C, 0x06, 0x28, 0x00, 0x06, 0x2C, + 0x8C, 0x06, 0x28, 0x00, 0x06, 0x2D, 0x8C, 0x06, 0x28, 0x00, 0x06, 0x2E, + 0x8C, 0x06, 0x28, 0x00, 0x06, 0x45, 0x8C, 0x06, 0x28, 0x00, 0x06, 0x47, + 0x8C, 0x06, 0x2A, 0x00, 0x06, 0x2C, 0x8C, 0x06, 0x2A, 0x00, 0x06, 0x2D, + 0x8C, 0x06, 0x2A, 0x00, 0x06, 0x2E, 0x8C, 0x06, 0x2A, 0x00, 0x06, 0x45, + 0x8C, 0x06, 0x2A, 0x00, 0x06, 0x47, 0x8C, 0x06, 0x2B, 0x00, 0x06, 0x45, + 0x8C, 0x06, 0x2C, 0x00, 0x06, 0x2D, 0x8C, 0x06, 0x2C, 0x00, 0x06, 0x45, + 0x8C, 0x06, 0x2D, 0x00, 0x06, 0x2C, 0x8C, 0x06, 0x2D, 0x00, 0x06, 0x45, + 0x8C, 0x06, 0x2E, 0x00, 0x06, 0x2C, 0x8C, 0x06, 0x2E, 0x00, 0x06, 0x45, + 0x8C, 0x06, 0x33, 0x00, 0x06, 0x2C, 0x8C, 0x06, 0x33, 0x00, 0x06, 0x2D, + 0x8C, 0x06, 0x33, 0x00, 0x06, 0x2E, 0x8C, 0x06, 0x33, 0x00, 0x06, 0x45, + 0x8C, 0x06, 0x35, 0x00, 0x06, 0x2D, 0x8C, 0x06, 0x35, 0x00, 0x06, 0x2E, + 0x8C, 0x06, 0x35, 0x00, 0x06, 0x45, 0x8C, 0x06, 0x36, 0x00, 0x06, 0x2C, + 0x8C, 0x06, 0x36, 0x00, 0x06, 0x2D, 0x8C, 0x06, 0x36, 0x00, 0x06, 0x2E, + 0x8C, 0x06, 0x36, 0x00, 0x06, 0x45, 0x8C, 0x06, 0x37, 0x00, 0x06, 0x2D, + 0x8C, 0x06, 0x38, 0x00, 0x06, 0x45, 0x8C, 0x06, 0x39, 0x00, 0x06, 0x2C, + 0x8C, 0x06, 0x39, 0x00, 0x06, 0x45, 0x8C, 0x06, 0x3A, 0x00, 0x06, 0x2C, + 0x8C, 0x06, 0x3A, 0x00, 0x06, 0x45, 0x8C, 0x06, 0x41, 0x00, 0x06, 0x2C, + 0x8C, 0x06, 0x41, 0x00, 0x06, 0x2D, 0x8C, 0x06, 0x41, 0x00, 0x06, 0x2E, + 0x8C, 0x06, 0x41, 0x00, 0x06, 0x45, 0x8C, 0x06, 0x42, 0x00, 0x06, 0x2D, + 0x8C, 0x06, 0x42, 0x00, 0x06, 0x45, 0x8C, 0x06, 0x43, 0x00, 0x06, 0x2C, + 0x8C, 0x06, 0x43, 0x00, 0x06, 0x2D, 0x8C, 0x06, 0x43, 0x00, 0x06, 0x2E, + 0x8C, 0x06, 0x43, 0x00, 0x06, 0x44, 0x8C, 0x06, 0x43, 0x00, 0x06, 0x45, + 0x8C, 0x06, 0x44, 0x00, 0x06, 0x2C, 0x8C, 0x06, 0x44, 0x00, 0x06, 0x2D, + 0x8C, 0x06, 0x44, 0x00, 0x06, 0x2E, 0x8C, 0x06, 0x44, 0x00, 0x06, 0x45, + 0x8C, 0x06, 0x44, 0x00, 0x06, 0x47, 0x8C, 0x06, 0x45, 0x00, 0x06, 0x2C, + 0x8C, 0x06, 0x45, 0x00, 0x06, 0x2D, 0x8C, 0x06, 0x45, 0x00, 0x06, 0x2E, + 0x8C, 0x06, 0x45, 0x00, 0x06, 0x45, 0x8C, 0x06, 0x46, 0x00, 0x06, 0x2C, + 0x8C, 0x06, 0x46, 0x00, 0x06, 0x2D, 0x8C, 0x06, 0x46, 0x00, 0x06, 0x2E, + 0x8C, 0x06, 0x46, 0x00, 0x06, 0x45, 0x8C, 0x06, 0x46, 0x00, 0x06, 0x47, + 0x8C, 0x06, 0x47, 0x00, 0x06, 0x2C, 0x8C, 0x06, 0x47, 0x00, 0x06, 0x45, + 0x8C, 0x06, 0x47, 0x00, 0x06, 0x70, 0x8C, 0x06, 0x4A, 0x00, 0x06, 0x2C, + 0x8C, 0x06, 0x4A, 0x00, 0x06, 0x2D, 0x8C, 0x06, 0x4A, 0x00, 0x06, 0x2E, + 0x8C, 0x06, 0x4A, 0x00, 0x06, 0x45, 0x8C, 0x06, 0x4A, 0x00, 0x06, 0x47, + 0x90, 0x06, 0x26, 0x00, 0x06, 0x45, 0x90, 0x06, 0x26, 0x00, 0x06, 0x47, + 0x90, 0x06, 0x28, 0x00, 0x06, 0x45, 0x90, 0x06, 0x28, 0x00, 0x06, 0x47, + 0x90, 0x06, 0x2A, 0x00, 0x06, 0x45, 0x90, 0x06, 0x2A, 0x00, 0x06, 0x47, + 0x90, 0x06, 0x2B, 0x00, 0x06, 0x45, 0x90, 0x06, 0x2B, 0x00, 0x06, 0x47, + 0x90, 0x06, 0x33, 0x00, 0x06, 0x45, 0x90, 0x06, 0x33, 0x00, 0x06, 0x47, + 0x90, 0x06, 0x34, 0x00, 0x06, 0x45, 0x90, 0x06, 0x34, 0x00, 0x06, 0x47, + 0x90, 0x06, 0x43, 0x00, 0x06, 0x44, 0x90, 0x06, 0x43, 0x00, 0x06, 0x45, + 0x90, 0x06, 0x44, 0x00, 0x06, 0x45, 0x90, 0x06, 0x46, 0x00, 0x06, 0x45, + 0x90, 0x06, 0x46, 0x00, 0x06, 0x47, 0x90, 0x06, 0x4A, 0x00, 0x06, 0x45, + 0x90, 0x06, 0x4A, 0x00, 0x06, 0x47, 0x90, 0x06, 0x40, 0x80, 0x06, 0x4E, + 0x00, 0x06, 0x51, 0x90, 0x06, 0x40, 0x80, 0x06, 0x4F, 0x00, 0x06, 0x51, + 0x90, 0x06, 0x40, 0x80, 0x06, 0x50, 0x00, 0x06, 0x51, 0x98, 0x06, 0x37, + 0x00, 0x06, 0x49, 0x98, 0x06, 0x37, 0x00, 0x06, 0x4A, 0x98, 0x06, 0x39, + 0x00, 0x06, 0x49, 0x98, 0x06, 0x39, 0x00, 0x06, 0x4A, 0x98, 0x06, 0x3A, + 0x00, 0x06, 0x49, 0x98, 0x06, 0x3A, 0x00, 0x06, 0x4A, 0x98, 0x06, 0x33, + 0x00, 0x06, 0x49, 0x98, 0x06, 0x33, 0x00, 0x06, 0x4A, 0x98, 0x06, 0x34, + 0x00, 0x06, 0x49, 0x98, 0x06, 0x34, 0x00, 0x06, 0x4A, 0x98, 0x06, 0x2D, + 0x00, 0x06, 0x49, 0x98, 0x06, 0x2D, 0x00, 0x06, 0x4A, 0x98, 0x06, 0x2C, + 0x00, 0x06, 0x49, 0x98, 0x06, 0x2C, 0x00, 0x06, 0x4A, 0x98, 0x06, 0x2E, + 0x00, 0x06, 0x49, 0x98, 0x06, 0x2E, 0x00, 0x06, 0x4A, 0x98, 0x06, 0x35, + 0x00, 0x06, 0x49, 0x98, 0x06, 0x35, 0x00, 0x06, 0x4A, 0x98, 0x06, 0x36, + 0x00, 0x06, 0x49, 0x98, 0x06, 0x36, 0x00, 0x06, 0x4A, 0x98, 0x06, 0x34, + 0x00, 0x06, 0x2C, 0x98, 0x06, 0x34, 0x00, 0x06, 0x2D, 0x98, 0x06, 0x34, + 0x00, 0x06, 0x2E, 0x98, 0x06, 0x34, 0x00, 0x06, 0x45, 0x98, 0x06, 0x34, + 0x00, 0x06, 0x31, 0x98, 0x06, 0x33, 0x00, 0x06, 0x31, 0x98, 0x06, 0x35, + 0x00, 0x06, 0x31, 0x98, 0x06, 0x36, 0x00, 0x06, 0x31, 0x94, 0x06, 0x37, + 0x00, 0x06, 0x49, 0x94, 0x06, 0x37, 0x00, 0x06, 0x4A, 0x94, 0x06, 0x39, + 0x00, 0x06, 0x49, 0x94, 0x06, 0x39, 0x00, 0x06, 0x4A, 0x94, 0x06, 0x3A, + 0x00, 0x06, 0x49, 0x94, 0x06, 0x3A, 0x00, 0x06, 0x4A, 0x94, 0x06, 0x33, + 0x00, 0x06, 0x49, 0x94, 0x06, 0x33, 0x00, 0x06, 0x4A, 0x94, 0x06, 0x34, + 0x00, 0x06, 0x49, 0x94, 0x06, 0x34, 0x00, 0x06, 0x4A, 0x94, 0x06, 0x2D, + 0x00, 0x06, 0x49, 0x94, 0x06, 0x2D, 0x00, 0x06, 0x4A, 0x94, 0x06, 0x2C, + 0x00, 0x06, 0x49, 0x94, 0x06, 0x2C, 0x00, 0x06, 0x4A, 0x94, 0x06, 0x2E, + 0x00, 0x06, 0x49, 0x94, 0x06, 0x2E, 0x00, 0x06, 0x4A, 0x94, 0x06, 0x35, + 0x00, 0x06, 0x49, 0x94, 0x06, 0x35, 0x00, 0x06, 0x4A, 0x94, 0x06, 0x36, + 0x00, 0x06, 0x49, 0x94, 0x06, 0x36, 0x00, 0x06, 0x4A, 0x94, 0x06, 0x34, + 0x00, 0x06, 0x2C, 0x94, 0x06, 0x34, 0x00, 0x06, 0x2D, 0x94, 0x06, 0x34, + 0x00, 0x06, 0x2E, 0x94, 0x06, 0x34, 0x00, 0x06, 0x45, 0x94, 0x06, 0x34, + 0x00, 0x06, 0x31, 0x94, 0x06, 0x33, 0x00, 0x06, 0x31, 0x94, 0x06, 0x35, + 0x00, 0x06, 0x31, 0x94, 0x06, 0x36, 0x00, 0x06, 0x31, 0x8C, 0x06, 0x34, + 0x00, 0x06, 0x2C, 0x8C, 0x06, 0x34, 0x00, 0x06, 0x2D, 0x8C, 0x06, 0x34, + 0x00, 0x06, 0x2E, 0x8C, 0x06, 0x34, 0x00, 0x06, 0x45, 0x8C, 0x06, 0x33, + 0x00, 0x06, 0x47, 0x8C, 0x06, 0x34, 0x00, 0x06, 0x47, 0x8C, 0x06, 0x37, + 0x00, 0x06, 0x45, 0x90, 0x06, 0x33, 0x00, 0x06, 0x2C, 0x90, 0x06, 0x33, + 0x00, 0x06, 0x2D, 0x90, 0x06, 0x33, 0x00, 0x06, 0x2E, 0x90, 0x06, 0x34, + 0x00, 0x06, 0x2C, 0x90, 0x06, 0x34, 0x00, 0x06, 0x2D, 0x90, 0x06, 0x34, + 0x00, 0x06, 0x2E, 0x90, 0x06, 0x37, 0x00, 0x06, 0x45, 0x90, 0x06, 0x38, + 0x00, 0x06, 0x45, 0x94, 0x06, 0x27, 0x00, 0x06, 0x4B, 0x98, 0x06, 0x27, + 0x00, 0x06, 0x4B, 0x8C, 0x06, 0x2A, 0x80, 0x06, 0x2C, 0x00, 0x06, 0x45, + 0x94, 0x06, 0x2A, 0x80, 0x06, 0x2D, 0x00, 0x06, 0x2C, 0x8C, 0x06, 0x2A, + 0x80, 0x06, 0x2D, 0x00, 0x06, 0x2C, 0x8C, 0x06, 0x2A, 0x80, 0x06, 0x2D, + 0x00, 0x06, 0x45, 0x8C, 0x06, 0x2A, 0x80, 0x06, 0x2E, 0x00, 0x06, 0x45, + 0x8C, 0x06, 0x2A, 0x80, 0x06, 0x45, 0x00, 0x06, 0x2C, 0x8C, 0x06, 0x2A, + 0x80, 0x06, 0x45, 0x00, 0x06, 0x2D, 0x8C, 0x06, 0x2A, 0x80, 0x06, 0x45, + 0x00, 0x06, 0x2E, 0x94, 0x06, 0x2C, 0x80, 0x06, 0x45, 0x00, 0x06, 0x2D, + 0x8C, 0x06, 0x2C, 0x80, 0x06, 0x45, 0x00, 0x06, 0x2D, 0x94, 0x06, 0x2D, + 0x80, 0x06, 0x45, 0x00, 0x06, 0x4A, 0x94, 0x06, 0x2D, 0x80, 0x06, 0x45, + 0x00, 0x06, 0x49, 0x8C, 0x06, 0x33, 0x80, 0x06, 0x2D, 0x00, 0x06, 0x2C, + 0x8C, 0x06, 0x33, 0x80, 0x06, 0x2C, 0x00, 0x06, 0x2D, 0x94, 0x06, 0x33, + 0x80, 0x06, 0x2C, 0x00, 0x06, 0x49, 0x94, 0x06, 0x33, 0x80, 0x06, 0x45, + 0x00, 0x06, 0x2D, 0x8C, 0x06, 0x33, 0x80, 0x06, 0x45, 0x00, 0x06, 0x2D, + 0x8C, 0x06, 0x33, 0x80, 0x06, 0x45, 0x00, 0x06, 0x2C, 0x94, 0x06, 0x33, + 0x80, 0x06, 0x45, 0x00, 0x06, 0x45, 0x8C, 0x06, 0x33, 0x80, 0x06, 0x45, + 0x00, 0x06, 0x45, 0x94, 0x06, 0x35, 0x80, 0x06, 0x2D, 0x00, 0x06, 0x2D, + 0x8C, 0x06, 0x35, 0x80, 0x06, 0x2D, 0x00, 0x06, 0x2D, 0x94, 0x06, 0x35, + 0x80, 0x06, 0x45, 0x00, 0x06, 0x45, 0x94, 0x06, 0x34, 0x80, 0x06, 0x2D, + 0x00, 0x06, 0x45, 0x8C, 0x06, 0x34, 0x80, 0x06, 0x2D, 0x00, 0x06, 0x45, + 0x94, 0x06, 0x34, 0x80, 0x06, 0x2C, 0x00, 0x06, 0x4A, 0x94, 0x06, 0x34, + 0x80, 0x06, 0x45, 0x00, 0x06, 0x2E, 0x8C, 0x06, 0x34, 0x80, 0x06, 0x45, + 0x00, 0x06, 0x2E, 0x94, 0x06, 0x34, 0x80, 0x06, 0x45, 0x00, 0x06, 0x45, + 0x8C, 0x06, 0x34, 0x80, 0x06, 0x45, 0x00, 0x06, 0x45, 0x94, 0x06, 0x36, + 0x80, 0x06, 0x2D, 0x00, 0x06, 0x49, 0x94, 0x06, 0x36, 0x80, 0x06, 0x2E, + 0x00, 0x06, 0x45, 0x8C, 0x06, 0x36, 0x80, 0x06, 0x2E, 0x00, 0x06, 0x45, + 0x94, 0x06, 0x37, 0x80, 0x06, 0x45, 0x00, 0x06, 0x2D, 0x8C, 0x06, 0x37, + 0x80, 0x06, 0x45, 0x00, 0x06, 0x2D, 0x8C, 0x06, 0x37, 0x80, 0x06, 0x45, + 0x00, 0x06, 0x45, 0x94, 0x06, 0x37, 0x80, 0x06, 0x45, 0x00, 0x06, 0x4A, + 0x94, 0x06, 0x39, 0x80, 0x06, 0x2C, 0x00, 0x06, 0x45, 0x94, 0x06, 0x39, + 0x80, 0x06, 0x45, 0x00, 0x06, 0x45, 0x8C, 0x06, 0x39, 0x80, 0x06, 0x45, + 0x00, 0x06, 0x45, 0x94, 0x06, 0x39, 0x80, 0x06, 0x45, 0x00, 0x06, 0x49, + 0x94, 0x06, 0x3A, 0x80, 0x06, 0x45, 0x00, 0x06, 0x45, 0x94, 0x06, 0x3A, + 0x80, 0x06, 0x45, 0x00, 0x06, 0x4A, 0x94, 0x06, 0x3A, 0x80, 0x06, 0x45, + 0x00, 0x06, 0x49, 0x94, 0x06, 0x41, 0x80, 0x06, 0x2E, 0x00, 0x06, 0x45, + 0x8C, 0x06, 0x41, 0x80, 0x06, 0x2E, 0x00, 0x06, 0x45, 0x94, 0x06, 0x42, + 0x80, 0x06, 0x45, 0x00, 0x06, 0x2D, 0x94, 0x06, 0x42, 0x80, 0x06, 0x45, + 0x00, 0x06, 0x45, 0x94, 0x06, 0x44, 0x80, 0x06, 0x2D, 0x00, 0x06, 0x45, + 0x94, 0x06, 0x44, 0x80, 0x06, 0x2D, 0x00, 0x06, 0x4A, 0x94, 0x06, 0x44, + 0x80, 0x06, 0x2D, 0x00, 0x06, 0x49, 0x8C, 0x06, 0x44, 0x80, 0x06, 0x2C, + 0x00, 0x06, 0x2C, 0x94, 0x06, 0x44, 0x80, 0x06, 0x2C, 0x00, 0x06, 0x2C, + 0x94, 0x06, 0x44, 0x80, 0x06, 0x2E, 0x00, 0x06, 0x45, 0x8C, 0x06, 0x44, + 0x80, 0x06, 0x2E, 0x00, 0x06, 0x45, 0x94, 0x06, 0x44, 0x80, 0x06, 0x45, + 0x00, 0x06, 0x2D, 0x8C, 0x06, 0x44, 0x80, 0x06, 0x45, 0x00, 0x06, 0x2D, + 0x8C, 0x06, 0x45, 0x80, 0x06, 0x2D, 0x00, 0x06, 0x2C, 0x8C, 0x06, 0x45, + 0x80, 0x06, 0x2D, 0x00, 0x06, 0x45, 0x94, 0x06, 0x45, 0x80, 0x06, 0x2D, + 0x00, 0x06, 0x4A, 0x8C, 0x06, 0x45, 0x80, 0x06, 0x2C, 0x00, 0x06, 0x2D, + 0x8C, 0x06, 0x45, 0x80, 0x06, 0x2C, 0x00, 0x06, 0x45, 0x8C, 0x06, 0x45, + 0x80, 0x06, 0x2E, 0x00, 0x06, 0x2C, 0x8C, 0x06, 0x45, 0x80, 0x06, 0x2E, + 0x00, 0x06, 0x45, 0x8C, 0x06, 0x45, 0x80, 0x06, 0x2C, 0x00, 0x06, 0x2E, + 0x8C, 0x06, 0x47, 0x80, 0x06, 0x45, 0x00, 0x06, 0x2C, 0x8C, 0x06, 0x47, + 0x80, 0x06, 0x45, 0x00, 0x06, 0x45, 0x8C, 0x06, 0x46, 0x80, 0x06, 0x2D, + 0x00, 0x06, 0x45, 0x94, 0x06, 0x46, 0x80, 0x06, 0x2D, 0x00, 0x06, 0x49, + 0x94, 0x06, 0x46, 0x80, 0x06, 0x2C, 0x00, 0x06, 0x45, 0x8C, 0x06, 0x46, + 0x80, 0x06, 0x2C, 0x00, 0x06, 0x45, 0x94, 0x06, 0x46, 0x80, 0x06, 0x2C, + 0x00, 0x06, 0x49, 0x94, 0x06, 0x46, 0x80, 0x06, 0x45, 0x00, 0x06, 0x4A, + 0x94, 0x06, 0x46, 0x80, 0x06, 0x45, 0x00, 0x06, 0x49, 0x94, 0x06, 0x4A, + 0x80, 0x06, 0x45, 0x00, 0x06, 0x45, 0x8C, 0x06, 0x4A, 0x80, 0x06, 0x45, + 0x00, 0x06, 0x45, 0x94, 0x06, 0x28, 0x80, 0x06, 0x2E, 0x00, 0x06, 0x4A, + 0x94, 0x06, 0x2A, 0x80, 0x06, 0x2C, 0x00, 0x06, 0x4A, 0x94, 0x06, 0x2A, + 0x80, 0x06, 0x2C, 0x00, 0x06, 0x49, 0x94, 0x06, 0x2A, 0x80, 0x06, 0x2E, + 0x00, 0x06, 0x4A, 0x94, 0x06, 0x2A, 0x80, 0x06, 0x2E, 0x00, 0x06, 0x49, + 0x94, 0x06, 0x2A, 0x80, 0x06, 0x45, 0x00, 0x06, 0x4A, 0x94, 0x06, 0x2A, + 0x80, 0x06, 0x45, 0x00, 0x06, 0x49, 0x94, 0x06, 0x2C, 0x80, 0x06, 0x45, + 0x00, 0x06, 0x4A, 0x94, 0x06, 0x2C, 0x80, 0x06, 0x2D, 0x00, 0x06, 0x49, + 0x94, 0x06, 0x2C, 0x80, 0x06, 0x45, 0x00, 0x06, 0x49, 0x94, 0x06, 0x33, + 0x80, 0x06, 0x2E, 0x00, 0x06, 0x49, 0x94, 0x06, 0x35, 0x80, 0x06, 0x2D, + 0x00, 0x06, 0x4A, 0x94, 0x06, 0x34, 0x80, 0x06, 0x2D, 0x00, 0x06, 0x4A, + 0x94, 0x06, 0x36, 0x80, 0x06, 0x2D, 0x00, 0x06, 0x4A, 0x94, 0x06, 0x44, + 0x80, 0x06, 0x2C, 0x00, 0x06, 0x4A, 0x94, 0x06, 0x44, 0x80, 0x06, 0x45, + 0x00, 0x06, 0x4A, 0x94, 0x06, 0x4A, 0x80, 0x06, 0x2D, 0x00, 0x06, 0x4A, + 0x94, 0x06, 0x4A, 0x80, 0x06, 0x2C, 0x00, 0x06, 0x4A, 0x94, 0x06, 0x4A, + 0x80, 0x06, 0x45, 0x00, 0x06, 0x4A, 0x94, 0x06, 0x45, 0x80, 0x06, 0x45, + 0x00, 0x06, 0x4A, 0x94, 0x06, 0x42, 0x80, 0x06, 0x45, 0x00, 0x06, 0x4A, + 0x94, 0x06, 0x46, 0x80, 0x06, 0x2D, 0x00, 0x06, 0x4A, 0x8C, 0x06, 0x42, + 0x80, 0x06, 0x45, 0x00, 0x06, 0x2D, 0x8C, 0x06, 0x44, 0x80, 0x06, 0x2D, + 0x00, 0x06, 0x45, 0x94, 0x06, 0x39, 0x80, 0x06, 0x45, 0x00, 0x06, 0x4A, + 0x94, 0x06, 0x43, 0x80, 0x06, 0x45, 0x00, 0x06, 0x4A, 0x8C, 0x06, 0x46, + 0x80, 0x06, 0x2C, 0x00, 0x06, 0x2D, 0x94, 0x06, 0x45, 0x80, 0x06, 0x2E, + 0x00, 0x06, 0x4A, 0x8C, 0x06, 0x44, 0x80, 0x06, 0x2C, 0x00, 0x06, 0x45, + 0x94, 0x06, 0x43, 0x80, 0x06, 0x45, 0x00, 0x06, 0x45, 0x94, 0x06, 0x44, + 0x80, 0x06, 0x2C, 0x00, 0x06, 0x45, 0x94, 0x06, 0x46, 0x80, 0x06, 0x2C, + 0x00, 0x06, 0x2D, 0x94, 0x06, 0x2C, 0x80, 0x06, 0x2D, 0x00, 0x06, 0x4A, + 0x94, 0x06, 0x2D, 0x80, 0x06, 0x2C, 0x00, 0x06, 0x4A, 0x94, 0x06, 0x45, + 0x80, 0x06, 0x2C, 0x00, 0x06, 0x4A, 0x94, 0x06, 0x41, 0x80, 0x06, 0x45, + 0x00, 0x06, 0x4A, 0x94, 0x06, 0x28, 0x80, 0x06, 0x2D, 0x00, 0x06, 0x4A, + 0x8C, 0x06, 0x43, 0x80, 0x06, 0x45, 0x00, 0x06, 0x45, 0x8C, 0x06, 0x39, + 0x80, 0x06, 0x2C, 0x00, 0x06, 0x45, 0x8C, 0x06, 0x35, 0x80, 0x06, 0x45, + 0x00, 0x06, 0x45, 0x94, 0x06, 0x33, 0x80, 0x06, 0x2E, 0x00, 0x06, 0x4A, + 0x94, 0x06, 0x46, 0x80, 0x06, 0x2C, 0x00, 0x06, 0x4A, 0x98, 0x06, 0x35, + 0x80, 0x06, 0x44, 0x00, 0x06, 0xD2, 0x98, 0x06, 0x42, 0x80, 0x06, 0x44, + 0x00, 0x06, 0xD2, 0x98, 0x06, 0x27, 0x80, 0x06, 0x44, 0x80, 0x06, 0x44, + 0x00, 0x06, 0x47, 0x98, 0x06, 0x27, 0x80, 0x06, 0x43, 0x80, 0x06, 0x28, + 0x00, 0x06, 0x31, 0x98, 0x06, 0x45, 0x80, 0x06, 0x2D, 0x80, 0x06, 0x45, + 0x00, 0x06, 0x2F, 0x98, 0x06, 0x35, 0x80, 0x06, 0x44, 0x80, 0x06, 0x39, + 0x00, 0x06, 0x45, 0x98, 0x06, 0x31, 0x80, 0x06, 0x33, 0x80, 0x06, 0x48, + 0x00, 0x06, 0x44, 0x98, 0x06, 0x39, 0x80, 0x06, 0x44, 0x80, 0x06, 0x4A, + 0x00, 0x06, 0x47, 0x98, 0x06, 0x48, 0x80, 0x06, 0x33, 0x80, 0x06, 0x44, + 0x00, 0x06, 0x45, 0x98, 0x06, 0x35, 0x80, 0x06, 0x44, 0x00, 0x06, 0x49, + 0x98, 0x06, 0x35, 0x80, 0x06, 0x44, 0x80, 0x06, 0x49, 0x80, 0x00, 0x20, + 0x80, 0x06, 0x27, 0x80, 0x06, 0x44, 0x80, 0x06, 0x44, 0x80, 0x06, 0x47, + 0x80, 0x00, 0x20, 0x80, 0x06, 0x39, 0x80, 0x06, 0x44, 0x80, 0x06, 0x4A, + 0x80, 0x06, 0x47, 0x80, 0x00, 0x20, 0x80, 0x06, 0x48, 0x80, 0x06, 0x33, + 0x80, 0x06, 0x44, 0x00, 0x06, 0x45, 0x98, 0x06, 0x2C, 0x80, 0x06, 0x44, + 0x80, 0x00, 0x20, 0x80, 0x06, 0x2C, 0x80, 0x06, 0x44, 0x80, 0x06, 0x27, + 0x80, 0x06, 0x44, 0x00, 0x06, 0x47, 0x98, 0x06, 0x31, 0x80, 0x06, 0xCC, + 0x80, 0x06, 0x27, 0x00, 0x06, 0x44, 0x28, 0x00, 0x2C, 0x28, 0x30, 0x01, + 0x28, 0x30, 0x02, 0x28, 0x00, 0x3A, 0x28, 0x00, 0x3B, 0x28, 0x00, 0x21, + 0x28, 0x00, 0x3F, 0x28, 0x30, 0x16, 0x28, 0x30, 0x17, 0x28, 0x20, 0x26, + 0x28, 0x20, 0x25, 0x28, 0x20, 0x14, 0x28, 0x20, 0x13, 0x28, 0x00, 0x5F, + 0x28, 0x00, 0x5F, 0x28, 0x00, 0x28, 0x28, 0x00, 0x29, 0x28, 0x00, 0x7B, + 0x28, 0x00, 0x7D, 0x28, 0x30, 0x14, 0x28, 0x30, 0x15, 0x28, 0x30, 0x10, + 0x28, 0x30, 0x11, 0x28, 0x30, 0x0A, 0x28, 0x30, 0x0B, 0x28, 0x30, 0x08, + 0x28, 0x30, 0x09, 0x28, 0x30, 0x0C, 0x28, 0x30, 0x0D, 0x28, 0x30, 0x0E, + 0x28, 0x30, 0x0F, 0x28, 0x00, 0x5B, 0x28, 0x00, 0x5D, 0x40, 0x20, 0x3E, + 0x40, 0x20, 0x3E, 0x40, 0x20, 0x3E, 0x40, 0x20, 0x3E, 0x40, 0x00, 0x5F, + 0x40, 0x00, 0x5F, 0x40, 0x00, 0x5F, 0x34, 0x00, 0x2C, 0x34, 0x30, 0x01, + 0x34, 0x00, 0x2E, 0x34, 0x00, 0x3B, 0x34, 0x00, 0x3A, 0x34, 0x00, 0x3F, + 0x34, 0x00, 0x21, 0x34, 0x20, 0x14, 0x34, 0x00, 0x28, 0x34, 0x00, 0x29, + 0x34, 0x00, 0x7B, 0x34, 0x00, 0x7D, 0x34, 0x30, 0x14, 0x34, 0x30, 0x15, + 0x34, 0x00, 0x23, 0x34, 0x00, 0x26, 0x34, 0x00, 0x2A, 0x34, 0x00, 0x2B, + 0x34, 0x00, 0x2D, 0x34, 0x00, 0x3C, 0x34, 0x00, 0x3E, 0x34, 0x00, 0x3D, + 0x34, 0x00, 0x5C, 0x34, 0x00, 0x24, 0x34, 0x00, 0x25, 0x34, 0x00, 0x40, + 0x98, 0x00, 0x20, 0x00, 0x06, 0x4B, 0x90, 0x06, 0x40, 0x00, 0x06, 0x4B, + 0x98, 0x00, 0x20, 0x00, 0x06, 0x4C, 0x98, 0x00, 0x20, 0x00, 0x06, 0x4D, + 0x98, 0x00, 0x20, 0x00, 0x06, 0x4E, 0x90, 0x06, 0x40, 0x00, 0x06, 0x4E, + 0x98, 0x00, 0x20, 0x00, 0x06, 0x4F, 0x90, 0x06, 0x40, 0x00, 0x06, 0x4F, + 0x98, 0x00, 0x20, 0x00, 0x06, 0x50, 0x90, 0x06, 0x40, 0x00, 0x06, 0x50, + 0x98, 0x00, 0x20, 0x00, 0x06, 0x51, 0x90, 0x06, 0x40, 0x00, 0x06, 0x51, + 0x98, 0x00, 0x20, 0x00, 0x06, 0x52, 0x90, 0x06, 0x40, 0x00, 0x06, 0x52, + 0x18, 0x06, 0x21, 0x18, 0x06, 0x22, 0x14, 0x06, 0x22, 0x18, 0x06, 0x23, + 0x14, 0x06, 0x23, 0x18, 0x06, 0x24, 0x14, 0x06, 0x24, 0x18, 0x06, 0x25, + 0x14, 0x06, 0x25, 0x18, 0x06, 0x26, 0x14, 0x06, 0x26, 0x0C, 0x06, 0x26, + 0x10, 0x06, 0x26, 0x18, 0x06, 0x27, 0x14, 0x06, 0x27, 0x18, 0x06, 0x28, + 0x14, 0x06, 0x28, 0x0C, 0x06, 0x28, 0x10, 0x06, 0x28, 0x18, 0x06, 0x29, + 0x14, 0x06, 0x29, 0x18, 0x06, 0x2A, 0x14, 0x06, 0x2A, 0x0C, 0x06, 0x2A, + 0x10, 0x06, 0x2A, 0x18, 0x06, 0x2B, 0x14, 0x06, 0x2B, 0x0C, 0x06, 0x2B, + 0x10, 0x06, 0x2B, 0x18, 0x06, 0x2C, 0x14, 0x06, 0x2C, 0x0C, 0x06, 0x2C, + 0x10, 0x06, 0x2C, 0x18, 0x06, 0x2D, 0x14, 0x06, 0x2D, 0x0C, 0x06, 0x2D, + 0x10, 0x06, 0x2D, 0x18, 0x06, 0x2E, 0x14, 0x06, 0x2E, 0x0C, 0x06, 0x2E, + 0x10, 0x06, 0x2E, 0x18, 0x06, 0x2F, 0x14, 0x06, 0x2F, 0x18, 0x06, 0x30, + 0x14, 0x06, 0x30, 0x18, 0x06, 0x31, 0x14, 0x06, 0x31, 0x18, 0x06, 0x32, + 0x14, 0x06, 0x32, 0x18, 0x06, 0x33, 0x14, 0x06, 0x33, 0x0C, 0x06, 0x33, + 0x10, 0x06, 0x33, 0x18, 0x06, 0x34, 0x14, 0x06, 0x34, 0x0C, 0x06, 0x34, + 0x10, 0x06, 0x34, 0x18, 0x06, 0x35, 0x14, 0x06, 0x35, 0x0C, 0x06, 0x35, + 0x10, 0x06, 0x35, 0x18, 0x06, 0x36, 0x14, 0x06, 0x36, 0x0C, 0x06, 0x36, + 0x10, 0x06, 0x36, 0x18, 0x06, 0x37, 0x14, 0x06, 0x37, 0x0C, 0x06, 0x37, + 0x10, 0x06, 0x37, 0x18, 0x06, 0x38, 0x14, 0x06, 0x38, 0x0C, 0x06, 0x38, + 0x10, 0x06, 0x38, 0x18, 0x06, 0x39, 0x14, 0x06, 0x39, 0x0C, 0x06, 0x39, + 0x10, 0x06, 0x39, 0x18, 0x06, 0x3A, 0x14, 0x06, 0x3A, 0x0C, 0x06, 0x3A, + 0x10, 0x06, 0x3A, 0x18, 0x06, 0x41, 0x14, 0x06, 0x41, 0x0C, 0x06, 0x41, + 0x10, 0x06, 0x41, 0x18, 0x06, 0x42, 0x14, 0x06, 0x42, 0x0C, 0x06, 0x42, + 0x10, 0x06, 0x42, 0x18, 0x06, 0x43, 0x14, 0x06, 0x43, 0x0C, 0x06, 0x43, + 0x10, 0x06, 0x43, 0x18, 0x06, 0x44, 0x14, 0x06, 0x44, 0x0C, 0x06, 0x44, + 0x10, 0x06, 0x44, 0x18, 0x06, 0x45, 0x14, 0x06, 0x45, 0x0C, 0x06, 0x45, + 0x10, 0x06, 0x45, 0x18, 0x06, 0x46, 0x14, 0x06, 0x46, 0x0C, 0x06, 0x46, + 0x10, 0x06, 0x46, 0x18, 0x06, 0x47, 0x14, 0x06, 0x47, 0x0C, 0x06, 0x47, + 0x10, 0x06, 0x47, 0x18, 0x06, 0x48, 0x14, 0x06, 0x48, 0x18, 0x06, 0x49, + 0x14, 0x06, 0x49, 0x18, 0x06, 0x4A, 0x14, 0x06, 0x4A, 0x0C, 0x06, 0x4A, + 0x10, 0x06, 0x4A, 0x98, 0x06, 0x44, 0x00, 0x06, 0x22, 0x94, 0x06, 0x44, + 0x00, 0x06, 0x22, 0x98, 0x06, 0x44, 0x00, 0x06, 0x23, 0x94, 0x06, 0x44, + 0x00, 0x06, 0x23, 0x98, 0x06, 0x44, 0x00, 0x06, 0x25, 0x94, 0x06, 0x44, + 0x00, 0x06, 0x25, 0x98, 0x06, 0x44, 0x00, 0x06, 0x27, 0x94, 0x06, 0x44, + 0x00, 0x06, 0x27, 0x2C, 0x00, 0x21, 0x2C, 0x00, 0x22, 0x2C, 0x00, 0x23, + 0x2C, 0x00, 0x24, 0x2C, 0x00, 0x25, 0x2C, 0x00, 0x26, 0x2C, 0x00, 0x27, + 0x2C, 0x00, 0x28, 0x2C, 0x00, 0x29, 0x2C, 0x00, 0x2A, 0x2C, 0x00, 0x2B, + 0x2C, 0x00, 0x2C, 0x2C, 0x00, 0x2D, 0x2C, 0x00, 0x2E, 0x2C, 0x00, 0x2F, + 0x2C, 0x00, 0x30, 0x2C, 0x00, 0x31, 0x2C, 0x00, 0x32, 0x2C, 0x00, 0x33, + 0x2C, 0x00, 0x34, 0x2C, 0x00, 0x35, 0x2C, 0x00, 0x36, 0x2C, 0x00, 0x37, + 0x2C, 0x00, 0x38, 0x2C, 0x00, 0x39, 0x2C, 0x00, 0x3A, 0x2C, 0x00, 0x3B, + 0x2C, 0x00, 0x3C, 0x2C, 0x00, 0x3D, 0x2C, 0x00, 0x3E, 0x2C, 0x00, 0x3F, + 0x2C, 0x00, 0x40, 0x2C, 0x00, 0x41, 0x2C, 0x00, 0x42, 0x2C, 0x00, 0x43, + 0x2C, 0x00, 0x44, 0x2C, 0x00, 0x45, 0x2C, 0x00, 0x46, 0x2C, 0x00, 0x47, + 0x2C, 0x00, 0x48, 0x2C, 0x00, 0x49, 0x2C, 0x00, 0x4A, 0x2C, 0x00, 0x4B, + 0x2C, 0x00, 0x4C, 0x2C, 0x00, 0x4D, 0x2C, 0x00, 0x4E, 0x2C, 0x00, 0x4F, + 0x2C, 0x00, 0x50, 0x2C, 0x00, 0x51, 0x2C, 0x00, 0x52, 0x2C, 0x00, 0x53, + 0x2C, 0x00, 0x54, 0x2C, 0x00, 0x55, 0x2C, 0x00, 0x56, 0x2C, 0x00, 0x57, + 0x2C, 0x00, 0x58, 0x2C, 0x00, 0x59, 0x2C, 0x00, 0x5A, 0x2C, 0x00, 0x5B, + 0x2C, 0x00, 0x5C, 0x2C, 0x00, 0x5D, 0x2C, 0x00, 0x5E, 0x2C, 0x00, 0x5F, + 0x2C, 0x00, 0x60, 0x2C, 0x00, 0x61, 0x2C, 0x00, 0x62, 0x2C, 0x00, 0x63, + 0x2C, 0x00, 0x64, 0x2C, 0x00, 0x65, 0x2C, 0x00, 0x66, 0x2C, 0x00, 0x67, + 0x2C, 0x00, 0x68, 0x2C, 0x00, 0x69, 0x2C, 0x00, 0x6A, 0x2C, 0x00, 0x6B, + 0x2C, 0x00, 0x6C, 0x2C, 0x00, 0x6D, 0x2C, 0x00, 0x6E, 0x2C, 0x00, 0x6F, + 0x2C, 0x00, 0x70, 0x2C, 0x00, 0x71, 0x2C, 0x00, 0x72, 0x2C, 0x00, 0x73, + 0x2C, 0x00, 0x74, 0x2C, 0x00, 0x75, 0x2C, 0x00, 0x76, 0x2C, 0x00, 0x77, + 0x2C, 0x00, 0x78, 0x2C, 0x00, 0x79, 0x2C, 0x00, 0x7A, 0x2C, 0x00, 0x7B, + 0x2C, 0x00, 0x7C, 0x2C, 0x00, 0x7D, 0x2C, 0x00, 0x7E, 0x2C, 0x29, 0x85, + 0x2C, 0x29, 0x86, 0x30, 0x30, 0x02, 0x30, 0x30, 0x0C, 0x30, 0x30, 0x0D, + 0x30, 0x30, 0x01, 0x30, 0x30, 0xFB, 0x30, 0x30, 0xF2, 0x30, 0x30, 0xA1, + 0x30, 0x30, 0xA3, 0x30, 0x30, 0xA5, 0x30, 0x30, 0xA7, 0x30, 0x30, 0xA9, + 0x30, 0x30, 0xE3, 0x30, 0x30, 0xE5, 0x30, 0x30, 0xE7, 0x30, 0x30, 0xC3, + 0x30, 0x30, 0xFC, 0x30, 0x30, 0xA2, 0x30, 0x30, 0xA4, 0x30, 0x30, 0xA6, + 0x30, 0x30, 0xA8, 0x30, 0x30, 0xAA, 0x30, 0x30, 0xAB, 0x30, 0x30, 0xAD, + 0x30, 0x30, 0xAF, 0x30, 0x30, 0xB1, 0x30, 0x30, 0xB3, 0x30, 0x30, 0xB5, + 0x30, 0x30, 0xB7, 0x30, 0x30, 0xB9, 0x30, 0x30, 0xBB, 0x30, 0x30, 0xBD, + 0x30, 0x30, 0xBF, 0x30, 0x30, 0xC1, 0x30, 0x30, 0xC4, 0x30, 0x30, 0xC6, + 0x30, 0x30, 0xC8, 0x30, 0x30, 0xCA, 0x30, 0x30, 0xCB, 0x30, 0x30, 0xCC, + 0x30, 0x30, 0xCD, 0x30, 0x30, 0xCE, 0x30, 0x30, 0xCF, 0x30, 0x30, 0xD2, + 0x30, 0x30, 0xD5, 0x30, 0x30, 0xD8, 0x30, 0x30, 0xDB, 0x30, 0x30, 0xDE, + 0x30, 0x30, 0xDF, 0x30, 0x30, 0xE0, 0x30, 0x30, 0xE1, 0x30, 0x30, 0xE2, + 0x30, 0x30, 0xE4, 0x30, 0x30, 0xE6, 0x30, 0x30, 0xE8, 0x30, 0x30, 0xE9, + 0x30, 0x30, 0xEA, 0x30, 0x30, 0xEB, 0x30, 0x30, 0xEC, 0x30, 0x30, 0xED, + 0x30, 0x30, 0xEF, 0x30, 0x30, 0xF3, 0x30, 0x30, 0x99, 0x30, 0x30, 0x9A, + 0x30, 0x31, 0x64, 0x30, 0x31, 0x31, 0x30, 0x31, 0x32, 0x30, 0x31, 0x33, + 0x30, 0x31, 0x34, 0x30, 0x31, 0x35, 0x30, 0x31, 0x36, 0x30, 0x31, 0x37, + 0x30, 0x31, 0x38, 0x30, 0x31, 0x39, 0x30, 0x31, 0x3A, 0x30, 0x31, 0x3B, + 0x30, 0x31, 0x3C, 0x30, 0x31, 0x3D, 0x30, 0x31, 0x3E, 0x30, 0x31, 0x3F, + 0x30, 0x31, 0x40, 0x30, 0x31, 0x41, 0x30, 0x31, 0x42, 0x30, 0x31, 0x43, + 0x30, 0x31, 0x44, 0x30, 0x31, 0x45, 0x30, 0x31, 0x46, 0x30, 0x31, 0x47, + 0x30, 0x31, 0x48, 0x30, 0x31, 0x49, 0x30, 0x31, 0x4A, 0x30, 0x31, 0x4B, + 0x30, 0x31, 0x4C, 0x30, 0x31, 0x4D, 0x30, 0x31, 0x4E, 0x30, 0x31, 0x4F, + 0x30, 0x31, 0x50, 0x30, 0x31, 0x51, 0x30, 0x31, 0x52, 0x30, 0x31, 0x53, + 0x30, 0x31, 0x54, 0x30, 0x31, 0x55, 0x30, 0x31, 0x56, 0x30, 0x31, 0x57, + 0x30, 0x31, 0x58, 0x30, 0x31, 0x59, 0x30, 0x31, 0x5A, 0x30, 0x31, 0x5B, + 0x30, 0x31, 0x5C, 0x30, 0x31, 0x5D, 0x30, 0x31, 0x5E, 0x30, 0x31, 0x5F, + 0x30, 0x31, 0x60, 0x30, 0x31, 0x61, 0x30, 0x31, 0x62, 0x30, 0x31, 0x63, + 0x2C, 0x00, 0xA2, 0x2C, 0x00, 0xA3, 0x2C, 0x00, 0xAC, 0x2C, 0x00, 0xAF, + 0x2C, 0x00, 0xA6, 0x2C, 0x00, 0xA5, 0x2C, 0x20, 0xA9, 0x30, 0x25, 0x02, + 0x30, 0x21, 0x90, 0x30, 0x21, 0x91, 0x30, 0x21, 0x92, 0x30, 0x21, 0x93, + 0x30, 0x25, 0xA0, 0x30, 0x25, 0xCB, 0x81, 0xD1, 0x57, 0x01, 0xD1, 0x65, + 0x81, 0xD1, 0x58, 0x01, 0xD1, 0x65, 0x81, 0xD1, 0x5F, 0x01, 0xD1, 0x6E, + 0x81, 0xD1, 0x5F, 0x01, 0xD1, 0x6F, 0x81, 0xD1, 0x5F, 0x01, 0xD1, 0x70, + 0x81, 0xD1, 0x5F, 0x01, 0xD1, 0x71, 0x81, 0xD1, 0x5F, 0x01, 0xD1, 0x72, + 0x81, 0xD1, 0xB9, 0x01, 0xD1, 0x65, 0x81, 0xD1, 0xBA, 0x01, 0xD1, 0x65, + 0x81, 0xD1, 0xBB, 0x01, 0xD1, 0x6E, 0x81, 0xD1, 0xBC, 0x01, 0xD1, 0x6E, + 0x81, 0xD1, 0xBB, 0x01, 0xD1, 0x6F, 0x81, 0xD1, 0xBC, 0x01, 0xD1, 0x6F, + 0x04, 0x00, 0x41, 0x04, 0x00, 0x42, 0x04, 0x00, 0x43, 0x04, 0x00, 0x44, + 0x04, 0x00, 0x45, 0x04, 0x00, 0x46, 0x04, 0x00, 0x47, 0x04, 0x00, 0x48, + 0x04, 0x00, 0x49, 0x04, 0x00, 0x4A, 0x04, 0x00, 0x4B, 0x04, 0x00, 0x4C, + 0x04, 0x00, 0x4D, 0x04, 0x00, 0x4E, 0x04, 0x00, 0x4F, 0x04, 0x00, 0x50, + 0x04, 0x00, 0x51, 0x04, 0x00, 0x52, 0x04, 0x00, 0x53, 0x04, 0x00, 0x54, + 0x04, 0x00, 0x55, 0x04, 0x00, 0x56, 0x04, 0x00, 0x57, 0x04, 0x00, 0x58, + 0x04, 0x00, 0x59, 0x04, 0x00, 0x5A, 0x04, 0x00, 0x61, 0x04, 0x00, 0x62, + 0x04, 0x00, 0x63, 0x04, 0x00, 0x64, 0x04, 0x00, 0x65, 0x04, 0x00, 0x66, + 0x04, 0x00, 0x67, 0x04, 0x00, 0x68, 0x04, 0x00, 0x69, 0x04, 0x00, 0x6A, + 0x04, 0x00, 0x6B, 0x04, 0x00, 0x6C, 0x04, 0x00, 0x6D, 0x04, 0x00, 0x6E, + 0x04, 0x00, 0x6F, 0x04, 0x00, 0x70, 0x04, 0x00, 0x71, 0x04, 0x00, 0x72, + 0x04, 0x00, 0x73, 0x04, 0x00, 0x74, 0x04, 0x00, 0x75, 0x04, 0x00, 0x76, + 0x04, 0x00, 0x77, 0x04, 0x00, 0x78, 0x04, 0x00, 0x79, 0x04, 0x00, 0x7A, + 0x04, 0x00, 0x41, 0x04, 0x00, 0x42, 0x04, 0x00, 0x43, 0x04, 0x00, 0x44, + 0x04, 0x00, 0x45, 0x04, 0x00, 0x46, 0x04, 0x00, 0x47, 0x04, 0x00, 0x48, + 0x04, 0x00, 0x49, 0x04, 0x00, 0x4A, 0x04, 0x00, 0x4B, 0x04, 0x00, 0x4C, + 0x04, 0x00, 0x4D, 0x04, 0x00, 0x4E, 0x04, 0x00, 0x4F, 0x04, 0x00, 0x50, + 0x04, 0x00, 0x51, 0x04, 0x00, 0x52, 0x04, 0x00, 0x53, 0x04, 0x00, 0x54, + 0x04, 0x00, 0x55, 0x04, 0x00, 0x56, 0x04, 0x00, 0x57, 0x04, 0x00, 0x58, + 0x04, 0x00, 0x59, 0x04, 0x00, 0x5A, 0x04, 0x00, 0x61, 0x04, 0x00, 0x62, + 0x04, 0x00, 0x63, 0x04, 0x00, 0x64, 0x04, 0x00, 0x65, 0x04, 0x00, 0x66, + 0x04, 0x00, 0x67, 0x04, 0x00, 0x69, 0x04, 0x00, 0x6A, 0x04, 0x00, 0x6B, + 0x04, 0x00, 0x6C, 0x04, 0x00, 0x6D, 0x04, 0x00, 0x6E, 0x04, 0x00, 0x6F, + 0x04, 0x00, 0x70, 0x04, 0x00, 0x71, 0x04, 0x00, 0x72, 0x04, 0x00, 0x73, + 0x04, 0x00, 0x74, 0x04, 0x00, 0x75, 0x04, 0x00, 0x76, 0x04, 0x00, 0x77, + 0x04, 0x00, 0x78, 0x04, 0x00, 0x79, 0x04, 0x00, 0x7A, 0x04, 0x00, 0x41, + 0x04, 0x00, 0x42, 0x04, 0x00, 0x43, 0x04, 0x00, 0x44, 0x04, 0x00, 0x45, + 0x04, 0x00, 0x46, 0x04, 0x00, 0x47, 0x04, 0x00, 0x48, 0x04, 0x00, 0x49, + 0x04, 0x00, 0x4A, 0x04, 0x00, 0x4B, 0x04, 0x00, 0x4C, 0x04, 0x00, 0x4D, + 0x04, 0x00, 0x4E, 0x04, 0x00, 0x4F, 0x04, 0x00, 0x50, 0x04, 0x00, 0x51, + 0x04, 0x00, 0x52, 0x04, 0x00, 0x53, 0x04, 0x00, 0x54, 0x04, 0x00, 0x55, + 0x04, 0x00, 0x56, 0x04, 0x00, 0x57, 0x04, 0x00, 0x58, 0x04, 0x00, 0x59, + 0x04, 0x00, 0x5A, 0x04, 0x00, 0x61, 0x04, 0x00, 0x62, 0x04, 0x00, 0x63, + 0x04, 0x00, 0x64, 0x04, 0x00, 0x65, 0x04, 0x00, 0x66, 0x04, 0x00, 0x67, + 0x04, 0x00, 0x68, 0x04, 0x00, 0x69, 0x04, 0x00, 0x6A, 0x04, 0x00, 0x6B, + 0x04, 0x00, 0x6C, 0x04, 0x00, 0x6D, 0x04, 0x00, 0x6E, 0x04, 0x00, 0x6F, + 0x04, 0x00, 0x70, 0x04, 0x00, 0x71, 0x04, 0x00, 0x72, 0x04, 0x00, 0x73, + 0x04, 0x00, 0x74, 0x04, 0x00, 0x75, 0x04, 0x00, 0x76, 0x04, 0x00, 0x77, + 0x04, 0x00, 0x78, 0x04, 0x00, 0x79, 0x04, 0x00, 0x7A, 0x04, 0x00, 0x41, + 0x04, 0x00, 0x43, 0x04, 0x00, 0x44, 0x04, 0x00, 0x47, 0x04, 0x00, 0x4A, + 0x04, 0x00, 0x4B, 0x04, 0x00, 0x4E, 0x04, 0x00, 0x4F, 0x04, 0x00, 0x50, + 0x04, 0x00, 0x51, 0x04, 0x00, 0x53, 0x04, 0x00, 0x54, 0x04, 0x00, 0x55, + 0x04, 0x00, 0x56, 0x04, 0x00, 0x57, 0x04, 0x00, 0x58, 0x04, 0x00, 0x59, + 0x04, 0x00, 0x5A, 0x04, 0x00, 0x61, 0x04, 0x00, 0x62, 0x04, 0x00, 0x63, + 0x04, 0x00, 0x64, 0x04, 0x00, 0x66, 0x04, 0x00, 0x68, 0x04, 0x00, 0x69, + 0x04, 0x00, 0x6A, 0x04, 0x00, 0x6B, 0x04, 0x00, 0x6C, 0x04, 0x00, 0x6D, + 0x04, 0x00, 0x6E, 0x04, 0x00, 0x70, 0x04, 0x00, 0x71, 0x04, 0x00, 0x72, + 0x04, 0x00, 0x73, 0x04, 0x00, 0x74, 0x04, 0x00, 0x75, 0x04, 0x00, 0x76, + 0x04, 0x00, 0x77, 0x04, 0x00, 0x78, 0x04, 0x00, 0x79, 0x04, 0x00, 0x7A, + 0x04, 0x00, 0x41, 0x04, 0x00, 0x42, 0x04, 0x00, 0x43, 0x04, 0x00, 0x44, + 0x04, 0x00, 0x45, 0x04, 0x00, 0x46, 0x04, 0x00, 0x47, 0x04, 0x00, 0x48, + 0x04, 0x00, 0x49, 0x04, 0x00, 0x4A, 0x04, 0x00, 0x4B, 0x04, 0x00, 0x4C, + 0x04, 0x00, 0x4D, 0x04, 0x00, 0x4E, 0x04, 0x00, 0x4F, 0x04, 0x00, 0x50, + 0x04, 0x00, 0x51, 0x04, 0x00, 0x52, 0x04, 0x00, 0x53, 0x04, 0x00, 0x54, + 0x04, 0x00, 0x55, 0x04, 0x00, 0x56, 0x04, 0x00, 0x57, 0x04, 0x00, 0x58, + 0x04, 0x00, 0x59, 0x04, 0x00, 0x5A, 0x04, 0x00, 0x61, 0x04, 0x00, 0x62, + 0x04, 0x00, 0x63, 0x04, 0x00, 0x64, 0x04, 0x00, 0x65, 0x04, 0x00, 0x66, + 0x04, 0x00, 0x67, 0x04, 0x00, 0x68, 0x04, 0x00, 0x69, 0x04, 0x00, 0x6A, + 0x04, 0x00, 0x6B, 0x04, 0x00, 0x6C, 0x04, 0x00, 0x6D, 0x04, 0x00, 0x6E, + 0x04, 0x00, 0x6F, 0x04, 0x00, 0x70, 0x04, 0x00, 0x71, 0x04, 0x00, 0x72, + 0x04, 0x00, 0x73, 0x04, 0x00, 0x74, 0x04, 0x00, 0x75, 0x04, 0x00, 0x76, + 0x04, 0x00, 0x77, 0x04, 0x00, 0x78, 0x04, 0x00, 0x79, 0x04, 0x00, 0x7A, + 0x04, 0x00, 0x41, 0x04, 0x00, 0x42, 0x04, 0x00, 0x44, 0x04, 0x00, 0x45, + 0x04, 0x00, 0x46, 0x04, 0x00, 0x47, 0x04, 0x00, 0x4A, 0x04, 0x00, 0x4B, + 0x04, 0x00, 0x4C, 0x04, 0x00, 0x4D, 0x04, 0x00, 0x4E, 0x04, 0x00, 0x4F, + 0x04, 0x00, 0x50, 0x04, 0x00, 0x51, 0x04, 0x00, 0x53, 0x04, 0x00, 0x54, + 0x04, 0x00, 0x55, 0x04, 0x00, 0x56, 0x04, 0x00, 0x57, 0x04, 0x00, 0x58, + 0x04, 0x00, 0x59, 0x04, 0x00, 0x61, 0x04, 0x00, 0x62, 0x04, 0x00, 0x63, + 0x04, 0x00, 0x64, 0x04, 0x00, 0x65, 0x04, 0x00, 0x66, 0x04, 0x00, 0x67, + 0x04, 0x00, 0x68, 0x04, 0x00, 0x69, 0x04, 0x00, 0x6A, 0x04, 0x00, 0x6B, + 0x04, 0x00, 0x6C, 0x04, 0x00, 0x6D, 0x04, 0x00, 0x6E, 0x04, 0x00, 0x6F, + 0x04, 0x00, 0x70, 0x04, 0x00, 0x71, 0x04, 0x00, 0x72, 0x04, 0x00, 0x73, + 0x04, 0x00, 0x74, 0x04, 0x00, 0x75, 0x04, 0x00, 0x76, 0x04, 0x00, 0x77, + 0x04, 0x00, 0x78, 0x04, 0x00, 0x79, 0x04, 0x00, 0x7A, 0x04, 0x00, 0x41, + 0x04, 0x00, 0x42, 0x04, 0x00, 0x44, 0x04, 0x00, 0x45, 0x04, 0x00, 0x46, + 0x04, 0x00, 0x47, 0x04, 0x00, 0x49, 0x04, 0x00, 0x4A, 0x04, 0x00, 0x4B, + 0x04, 0x00, 0x4C, 0x04, 0x00, 0x4D, 0x04, 0x00, 0x4F, 0x04, 0x00, 0x53, + 0x04, 0x00, 0x54, 0x04, 0x00, 0x55, 0x04, 0x00, 0x56, 0x04, 0x00, 0x57, + 0x04, 0x00, 0x58, 0x04, 0x00, 0x59, 0x04, 0x00, 0x61, 0x04, 0x00, 0x62, + 0x04, 0x00, 0x63, 0x04, 0x00, 0x64, 0x04, 0x00, 0x65, 0x04, 0x00, 0x66, + 0x04, 0x00, 0x67, 0x04, 0x00, 0x68, 0x04, 0x00, 0x69, 0x04, 0x00, 0x6A, + 0x04, 0x00, 0x6B, 0x04, 0x00, 0x6C, 0x04, 0x00, 0x6D, 0x04, 0x00, 0x6E, + 0x04, 0x00, 0x6F, 0x04, 0x00, 0x70, 0x04, 0x00, 0x71, 0x04, 0x00, 0x72, + 0x04, 0x00, 0x73, 0x04, 0x00, 0x74, 0x04, 0x00, 0x75, 0x04, 0x00, 0x76, + 0x04, 0x00, 0x77, 0x04, 0x00, 0x78, 0x04, 0x00, 0x79, 0x04, 0x00, 0x7A, + 0x04, 0x00, 0x41, 0x04, 0x00, 0x42, 0x04, 0x00, 0x43, 0x04, 0x00, 0x44, + 0x04, 0x00, 0x45, 0x04, 0x00, 0x46, 0x04, 0x00, 0x47, 0x04, 0x00, 0x48, + 0x04, 0x00, 0x49, 0x04, 0x00, 0x4A, 0x04, 0x00, 0x4B, 0x04, 0x00, 0x4C, + 0x04, 0x00, 0x4D, 0x04, 0x00, 0x4E, 0x04, 0x00, 0x4F, 0x04, 0x00, 0x50, + 0x04, 0x00, 0x51, 0x04, 0x00, 0x52, 0x04, 0x00, 0x53, 0x04, 0x00, 0x54, + 0x04, 0x00, 0x55, 0x04, 0x00, 0x56, 0x04, 0x00, 0x57, 0x04, 0x00, 0x58, + 0x04, 0x00, 0x59, 0x04, 0x00, 0x5A, 0x04, 0x00, 0x61, 0x04, 0x00, 0x62, + 0x04, 0x00, 0x63, 0x04, 0x00, 0x64, 0x04, 0x00, 0x65, 0x04, 0x00, 0x66, + 0x04, 0x00, 0x67, 0x04, 0x00, 0x68, 0x04, 0x00, 0x69, 0x04, 0x00, 0x6A, + 0x04, 0x00, 0x6B, 0x04, 0x00, 0x6C, 0x04, 0x00, 0x6D, 0x04, 0x00, 0x6E, + 0x04, 0x00, 0x6F, 0x04, 0x00, 0x70, 0x04, 0x00, 0x71, 0x04, 0x00, 0x72, + 0x04, 0x00, 0x73, 0x04, 0x00, 0x74, 0x04, 0x00, 0x75, 0x04, 0x00, 0x76, + 0x04, 0x00, 0x77, 0x04, 0x00, 0x78, 0x04, 0x00, 0x79, 0x04, 0x00, 0x7A, + 0x04, 0x00, 0x41, 0x04, 0x00, 0x42, 0x04, 0x00, 0x43, 0x04, 0x00, 0x44, + 0x04, 0x00, 0x45, 0x04, 0x00, 0x46, 0x04, 0x00, 0x47, 0x04, 0x00, 0x48, + 0x04, 0x00, 0x49, 0x04, 0x00, 0x4A, 0x04, 0x00, 0x4B, 0x04, 0x00, 0x4C, + 0x04, 0x00, 0x4D, 0x04, 0x00, 0x4E, 0x04, 0x00, 0x4F, 0x04, 0x00, 0x50, + 0x04, 0x00, 0x51, 0x04, 0x00, 0x52, 0x04, 0x00, 0x53, 0x04, 0x00, 0x54, + 0x04, 0x00, 0x55, 0x04, 0x00, 0x56, 0x04, 0x00, 0x57, 0x04, 0x00, 0x58, + 0x04, 0x00, 0x59, 0x04, 0x00, 0x5A, 0x04, 0x00, 0x61, 0x04, 0x00, 0x62, + 0x04, 0x00, 0x63, 0x04, 0x00, 0x64, 0x04, 0x00, 0x65, 0x04, 0x00, 0x66, + 0x04, 0x00, 0x67, 0x04, 0x00, 0x68, 0x04, 0x00, 0x69, 0x04, 0x00, 0x6A, + 0x04, 0x00, 0x6B, 0x04, 0x00, 0x6C, 0x04, 0x00, 0x6D, 0x04, 0x00, 0x6E, + 0x04, 0x00, 0x6F, 0x04, 0x00, 0x70, 0x04, 0x00, 0x71, 0x04, 0x00, 0x72, + 0x04, 0x00, 0x73, 0x04, 0x00, 0x74, 0x04, 0x00, 0x75, 0x04, 0x00, 0x76, + 0x04, 0x00, 0x77, 0x04, 0x00, 0x78, 0x04, 0x00, 0x79, 0x04, 0x00, 0x7A, + 0x04, 0x00, 0x41, 0x04, 0x00, 0x42, 0x04, 0x00, 0x43, 0x04, 0x00, 0x44, + 0x04, 0x00, 0x45, 0x04, 0x00, 0x46, 0x04, 0x00, 0x47, 0x04, 0x00, 0x48, + 0x04, 0x00, 0x49, 0x04, 0x00, 0x4A, 0x04, 0x00, 0x4B, 0x04, 0x00, 0x4C, + 0x04, 0x00, 0x4D, 0x04, 0x00, 0x4E, 0x04, 0x00, 0x4F, 0x04, 0x00, 0x50, + 0x04, 0x00, 0x51, 0x04, 0x00, 0x52, 0x04, 0x00, 0x53, 0x04, 0x00, 0x54, + 0x04, 0x00, 0x55, 0x04, 0x00, 0x56, 0x04, 0x00, 0x57, 0x04, 0x00, 0x58, + 0x04, 0x00, 0x59, 0x04, 0x00, 0x5A, 0x04, 0x00, 0x61, 0x04, 0x00, 0x62, + 0x04, 0x00, 0x63, 0x04, 0x00, 0x64, 0x04, 0x00, 0x65, 0x04, 0x00, 0x66, + 0x04, 0x00, 0x67, 0x04, 0x00, 0x68, 0x04, 0x00, 0x69, 0x04, 0x00, 0x6A, + 0x04, 0x00, 0x6B, 0x04, 0x00, 0x6C, 0x04, 0x00, 0x6D, 0x04, 0x00, 0x6E, + 0x04, 0x00, 0x6F, 0x04, 0x00, 0x70, 0x04, 0x00, 0x71, 0x04, 0x00, 0x72, + 0x04, 0x00, 0x73, 0x04, 0x00, 0x74, 0x04, 0x00, 0x75, 0x04, 0x00, 0x76, + 0x04, 0x00, 0x77, 0x04, 0x00, 0x78, 0x04, 0x00, 0x79, 0x04, 0x00, 0x7A, + 0x04, 0x00, 0x41, 0x04, 0x00, 0x42, 0x04, 0x00, 0x43, 0x04, 0x00, 0x44, + 0x04, 0x00, 0x45, 0x04, 0x00, 0x46, 0x04, 0x00, 0x47, 0x04, 0x00, 0x48, + 0x04, 0x00, 0x49, 0x04, 0x00, 0x4A, 0x04, 0x00, 0x4B, 0x04, 0x00, 0x4C, + 0x04, 0x00, 0x4D, 0x04, 0x00, 0x4E, 0x04, 0x00, 0x4F, 0x04, 0x00, 0x50, + 0x04, 0x00, 0x51, 0x04, 0x00, 0x52, 0x04, 0x00, 0x53, 0x04, 0x00, 0x54, + 0x04, 0x00, 0x55, 0x04, 0x00, 0x56, 0x04, 0x00, 0x57, 0x04, 0x00, 0x58, + 0x04, 0x00, 0x59, 0x04, 0x00, 0x5A, 0x04, 0x00, 0x61, 0x04, 0x00, 0x62, + 0x04, 0x00, 0x63, 0x04, 0x00, 0x64, 0x04, 0x00, 0x65, 0x04, 0x00, 0x66, + 0x04, 0x00, 0x67, 0x04, 0x00, 0x68, 0x04, 0x00, 0x69, 0x04, 0x00, 0x6A, + 0x04, 0x00, 0x6B, 0x04, 0x00, 0x6C, 0x04, 0x00, 0x6D, 0x04, 0x00, 0x6E, + 0x04, 0x00, 0x6F, 0x04, 0x00, 0x70, 0x04, 0x00, 0x71, 0x04, 0x00, 0x72, + 0x04, 0x00, 0x73, 0x04, 0x00, 0x74, 0x04, 0x00, 0x75, 0x04, 0x00, 0x76, + 0x04, 0x00, 0x77, 0x04, 0x00, 0x78, 0x04, 0x00, 0x79, 0x04, 0x00, 0x7A, + 0x04, 0x00, 0x41, 0x04, 0x00, 0x42, 0x04, 0x00, 0x43, 0x04, 0x00, 0x44, + 0x04, 0x00, 0x45, 0x04, 0x00, 0x46, 0x04, 0x00, 0x47, 0x04, 0x00, 0x48, + 0x04, 0x00, 0x49, 0x04, 0x00, 0x4A, 0x04, 0x00, 0x4B, 0x04, 0x00, 0x4C, + 0x04, 0x00, 0x4D, 0x04, 0x00, 0x4E, 0x04, 0x00, 0x4F, 0x04, 0x00, 0x50, + 0x04, 0x00, 0x51, 0x04, 0x00, 0x52, 0x04, 0x00, 0x53, 0x04, 0x00, 0x54, + 0x04, 0x00, 0x55, 0x04, 0x00, 0x56, 0x04, 0x00, 0x57, 0x04, 0x00, 0x58, + 0x04, 0x00, 0x59, 0x04, 0x00, 0x5A, 0x04, 0x00, 0x61, 0x04, 0x00, 0x62, + 0x04, 0x00, 0x63, 0x04, 0x00, 0x64, 0x04, 0x00, 0x65, 0x04, 0x00, 0x66, + 0x04, 0x00, 0x67, 0x04, 0x00, 0x68, 0x04, 0x00, 0x69, 0x04, 0x00, 0x6A, + 0x04, 0x00, 0x6B, 0x04, 0x00, 0x6C, 0x04, 0x00, 0x6D, 0x04, 0x00, 0x6E, + 0x04, 0x00, 0x6F, 0x04, 0x00, 0x70, 0x04, 0x00, 0x71, 0x04, 0x00, 0x72, + 0x04, 0x00, 0x73, 0x04, 0x00, 0x74, 0x04, 0x00, 0x75, 0x04, 0x00, 0x76, + 0x04, 0x00, 0x77, 0x04, 0x00, 0x78, 0x04, 0x00, 0x79, 0x04, 0x00, 0x7A, + 0x04, 0x00, 0x41, 0x04, 0x00, 0x42, 0x04, 0x00, 0x43, 0x04, 0x00, 0x44, + 0x04, 0x00, 0x45, 0x04, 0x00, 0x46, 0x04, 0x00, 0x47, 0x04, 0x00, 0x48, + 0x04, 0x00, 0x49, 0x04, 0x00, 0x4A, 0x04, 0x00, 0x4B, 0x04, 0x00, 0x4C, + 0x04, 0x00, 0x4D, 0x04, 0x00, 0x4E, 0x04, 0x00, 0x4F, 0x04, 0x00, 0x50, + 0x04, 0x00, 0x51, 0x04, 0x00, 0x52, 0x04, 0x00, 0x53, 0x04, 0x00, 0x54, + 0x04, 0x00, 0x55, 0x04, 0x00, 0x56, 0x04, 0x00, 0x57, 0x04, 0x00, 0x58, + 0x04, 0x00, 0x59, 0x04, 0x00, 0x5A, 0x04, 0x00, 0x61, 0x04, 0x00, 0x62, + 0x04, 0x00, 0x63, 0x04, 0x00, 0x64, 0x04, 0x00, 0x65, 0x04, 0x00, 0x66, + 0x04, 0x00, 0x67, 0x04, 0x00, 0x68, 0x04, 0x00, 0x69, 0x04, 0x00, 0x6A, + 0x04, 0x00, 0x6B, 0x04, 0x00, 0x6C, 0x04, 0x00, 0x6D, 0x04, 0x00, 0x6E, + 0x04, 0x00, 0x6F, 0x04, 0x00, 0x70, 0x04, 0x00, 0x71, 0x04, 0x00, 0x72, + 0x04, 0x00, 0x73, 0x04, 0x00, 0x74, 0x04, 0x00, 0x75, 0x04, 0x00, 0x76, + 0x04, 0x00, 0x77, 0x04, 0x00, 0x78, 0x04, 0x00, 0x79, 0x04, 0x00, 0x7A, + 0x04, 0x01, 0x31, 0x04, 0x02, 0x37, 0x04, 0x03, 0x91, 0x04, 0x03, 0x92, + 0x04, 0x03, 0x93, 0x04, 0x03, 0x94, 0x04, 0x03, 0x95, 0x04, 0x03, 0x96, + 0x04, 0x03, 0x97, 0x04, 0x03, 0x98, 0x04, 0x03, 0x99, 0x04, 0x03, 0x9A, + 0x04, 0x03, 0x9B, 0x04, 0x03, 0x9C, 0x04, 0x03, 0x9D, 0x04, 0x03, 0x9E, + 0x04, 0x03, 0x9F, 0x04, 0x03, 0xA0, 0x04, 0x03, 0xA1, 0x04, 0x03, 0xF4, + 0x04, 0x03, 0xA3, 0x04, 0x03, 0xA4, 0x04, 0x03, 0xA5, 0x04, 0x03, 0xA6, + 0x04, 0x03, 0xA7, 0x04, 0x03, 0xA8, 0x04, 0x03, 0xA9, 0x04, 0x22, 0x07, + 0x04, 0x03, 0xB1, 0x04, 0x03, 0xB2, 0x04, 0x03, 0xB3, 0x04, 0x03, 0xB4, + 0x04, 0x03, 0xB5, 0x04, 0x03, 0xB6, 0x04, 0x03, 0xB7, 0x04, 0x03, 0xB8, + 0x04, 0x03, 0xB9, 0x04, 0x03, 0xBA, 0x04, 0x03, 0xBB, 0x04, 0x03, 0xBC, + 0x04, 0x03, 0xBD, 0x04, 0x03, 0xBE, 0x04, 0x03, 0xBF, 0x04, 0x03, 0xC0, + 0x04, 0x03, 0xC1, 0x04, 0x03, 0xC2, 0x04, 0x03, 0xC3, 0x04, 0x03, 0xC4, + 0x04, 0x03, 0xC5, 0x04, 0x03, 0xC6, 0x04, 0x03, 0xC7, 0x04, 0x03, 0xC8, + 0x04, 0x03, 0xC9, 0x04, 0x22, 0x02, 0x04, 0x03, 0xF5, 0x04, 0x03, 0xD1, + 0x04, 0x03, 0xF0, 0x04, 0x03, 0xD5, 0x04, 0x03, 0xF1, 0x04, 0x03, 0xD6, + 0x04, 0x03, 0x91, 0x04, 0x03, 0x92, 0x04, 0x03, 0x93, 0x04, 0x03, 0x94, + 0x04, 0x03, 0x95, 0x04, 0x03, 0x96, 0x04, 0x03, 0x97, 0x04, 0x03, 0x98, + 0x04, 0x03, 0x99, 0x04, 0x03, 0x9A, 0x04, 0x03, 0x9B, 0x04, 0x03, 0x9C, + 0x04, 0x03, 0x9D, 0x04, 0x03, 0x9E, 0x04, 0x03, 0x9F, 0x04, 0x03, 0xA0, + 0x04, 0x03, 0xA1, 0x04, 0x03, 0xF4, 0x04, 0x03, 0xA3, 0x04, 0x03, 0xA4, + 0x04, 0x03, 0xA5, 0x04, 0x03, 0xA6, 0x04, 0x03, 0xA7, 0x04, 0x03, 0xA8, + 0x04, 0x03, 0xA9, 0x04, 0x22, 0x07, 0x04, 0x03, 0xB1, 0x04, 0x03, 0xB2, + 0x04, 0x03, 0xB3, 0x04, 0x03, 0xB4, 0x04, 0x03, 0xB5, 0x04, 0x03, 0xB6, + 0x04, 0x03, 0xB7, 0x04, 0x03, 0xB8, 0x04, 0x03, 0xB9, 0x04, 0x03, 0xBA, + 0x04, 0x03, 0xBB, 0x04, 0x03, 0xBC, 0x04, 0x03, 0xBD, 0x04, 0x03, 0xBE, + 0x04, 0x03, 0xBF, 0x04, 0x03, 0xC0, 0x04, 0x03, 0xC1, 0x04, 0x03, 0xC2, + 0x04, 0x03, 0xC3, 0x04, 0x03, 0xC4, 0x04, 0x03, 0xC5, 0x04, 0x03, 0xC6, + 0x04, 0x03, 0xC7, 0x04, 0x03, 0xC8, 0x04, 0x03, 0xC9, 0x04, 0x22, 0x02, + 0x04, 0x03, 0xF5, 0x04, 0x03, 0xD1, 0x04, 0x03, 0xF0, 0x04, 0x03, 0xD5, + 0x04, 0x03, 0xF1, 0x04, 0x03, 0xD6, 0x04, 0x03, 0x91, 0x04, 0x03, 0x92, + 0x04, 0x03, 0x93, 0x04, 0x03, 0x94, 0x04, 0x03, 0x95, 0x04, 0x03, 0x96, + 0x04, 0x03, 0x97, 0x04, 0x03, 0x98, 0x04, 0x03, 0x99, 0x04, 0x03, 0x9A, + 0x04, 0x03, 0x9B, 0x04, 0x03, 0x9C, 0x04, 0x03, 0x9D, 0x04, 0x03, 0x9E, + 0x04, 0x03, 0x9F, 0x04, 0x03, 0xA0, 0x04, 0x03, 0xA1, 0x04, 0x03, 0xF4, + 0x04, 0x03, 0xA3, 0x04, 0x03, 0xA4, 0x04, 0x03, 0xA5, 0x04, 0x03, 0xA6, + 0x04, 0x03, 0xA7, 0x04, 0x03, 0xA8, 0x04, 0x03, 0xA9, 0x04, 0x22, 0x07, + 0x04, 0x03, 0xB1, 0x04, 0x03, 0xB2, 0x04, 0x03, 0xB3, 0x04, 0x03, 0xB4, + 0x04, 0x03, 0xB5, 0x04, 0x03, 0xB6, 0x04, 0x03, 0xB7, 0x04, 0x03, 0xB8, + 0x04, 0x03, 0xB9, 0x04, 0x03, 0xBA, 0x04, 0x03, 0xBB, 0x04, 0x03, 0xBC, + 0x04, 0x03, 0xBD, 0x04, 0x03, 0xBE, 0x04, 0x03, 0xBF, 0x04, 0x03, 0xC0, + 0x04, 0x03, 0xC1, 0x04, 0x03, 0xC2, 0x04, 0x03, 0xC3, 0x04, 0x03, 0xC4, + 0x04, 0x03, 0xC5, 0x04, 0x03, 0xC6, 0x04, 0x03, 0xC7, 0x04, 0x03, 0xC8, + 0x04, 0x03, 0xC9, 0x04, 0x22, 0x02, 0x04, 0x03, 0xF5, 0x04, 0x03, 0xD1, + 0x04, 0x03, 0xF0, 0x04, 0x03, 0xD5, 0x04, 0x03, 0xF1, 0x04, 0x03, 0xD6, + 0x04, 0x03, 0x91, 0x04, 0x03, 0x92, 0x04, 0x03, 0x93, 0x04, 0x03, 0x94, + 0x04, 0x03, 0x95, 0x04, 0x03, 0x96, 0x04, 0x03, 0x97, 0x04, 0x03, 0x98, + 0x04, 0x03, 0x99, 0x04, 0x03, 0x9A, 0x04, 0x03, 0x9B, 0x04, 0x03, 0x9C, + 0x04, 0x03, 0x9D, 0x04, 0x03, 0x9E, 0x04, 0x03, 0x9F, 0x04, 0x03, 0xA0, + 0x04, 0x03, 0xA1, 0x04, 0x03, 0xF4, 0x04, 0x03, 0xA3, 0x04, 0x03, 0xA4, + 0x04, 0x03, 0xA5, 0x04, 0x03, 0xA6, 0x04, 0x03, 0xA7, 0x04, 0x03, 0xA8, + 0x04, 0x03, 0xA9, 0x04, 0x22, 0x07, 0x04, 0x03, 0xB1, 0x04, 0x03, 0xB2, + 0x04, 0x03, 0xB3, 0x04, 0x03, 0xB4, 0x04, 0x03, 0xB5, 0x04, 0x03, 0xB6, + 0x04, 0x03, 0xB7, 0x04, 0x03, 0xB8, 0x04, 0x03, 0xB9, 0x04, 0x03, 0xBA, + 0x04, 0x03, 0xBB, 0x04, 0x03, 0xBC, 0x04, 0x03, 0xBD, 0x04, 0x03, 0xBE, + 0x04, 0x03, 0xBF, 0x04, 0x03, 0xC0, 0x04, 0x03, 0xC1, 0x04, 0x03, 0xC2, + 0x04, 0x03, 0xC3, 0x04, 0x03, 0xC4, 0x04, 0x03, 0xC5, 0x04, 0x03, 0xC6, + 0x04, 0x03, 0xC7, 0x04, 0x03, 0xC8, 0x04, 0x03, 0xC9, 0x04, 0x22, 0x02, + 0x04, 0x03, 0xF5, 0x04, 0x03, 0xD1, 0x04, 0x03, 0xF0, 0x04, 0x03, 0xD5, + 0x04, 0x03, 0xF1, 0x04, 0x03, 0xD6, 0x04, 0x03, 0x91, 0x04, 0x03, 0x92, + 0x04, 0x03, 0x93, 0x04, 0x03, 0x94, 0x04, 0x03, 0x95, 0x04, 0x03, 0x96, + 0x04, 0x03, 0x97, 0x04, 0x03, 0x98, 0x04, 0x03, 0x99, 0x04, 0x03, 0x9A, + 0x04, 0x03, 0x9B, 0x04, 0x03, 0x9C, 0x04, 0x03, 0x9D, 0x04, 0x03, 0x9E, + 0x04, 0x03, 0x9F, 0x04, 0x03, 0xA0, 0x04, 0x03, 0xA1, 0x04, 0x03, 0xF4, + 0x04, 0x03, 0xA3, 0x04, 0x03, 0xA4, 0x04, 0x03, 0xA5, 0x04, 0x03, 0xA6, + 0x04, 0x03, 0xA7, 0x04, 0x03, 0xA8, 0x04, 0x03, 0xA9, 0x04, 0x22, 0x07, + 0x04, 0x03, 0xB1, 0x04, 0x03, 0xB2, 0x04, 0x03, 0xB3, 0x04, 0x03, 0xB4, + 0x04, 0x03, 0xB5, 0x04, 0x03, 0xB6, 0x04, 0x03, 0xB7, 0x04, 0x03, 0xB8, + 0x04, 0x03, 0xB9, 0x04, 0x03, 0xBA, 0x04, 0x03, 0xBB, 0x04, 0x03, 0xBC, + 0x04, 0x03, 0xBD, 0x04, 0x03, 0xBE, 0x04, 0x03, 0xBF, 0x04, 0x03, 0xC0, + 0x04, 0x03, 0xC1, 0x04, 0x03, 0xC2, 0x04, 0x03, 0xC3, 0x04, 0x03, 0xC4, + 0x04, 0x03, 0xC5, 0x04, 0x03, 0xC6, 0x04, 0x03, 0xC7, 0x04, 0x03, 0xC8, + 0x04, 0x03, 0xC9, 0x04, 0x22, 0x02, 0x04, 0x03, 0xF5, 0x04, 0x03, 0xD1, + 0x04, 0x03, 0xF0, 0x04, 0x03, 0xD5, 0x04, 0x03, 0xF1, 0x04, 0x03, 0xD6, + 0x04, 0x03, 0xDC, 0x04, 0x03, 0xDD, 0x04, 0x00, 0x30, 0x04, 0x00, 0x31, + 0x04, 0x00, 0x32, 0x04, 0x00, 0x33, 0x04, 0x00, 0x34, 0x04, 0x00, 0x35, + 0x04, 0x00, 0x36, 0x04, 0x00, 0x37, 0x04, 0x00, 0x38, 0x04, 0x00, 0x39, + 0x04, 0x00, 0x30, 0x04, 0x00, 0x31, 0x04, 0x00, 0x32, 0x04, 0x00, 0x33, + 0x04, 0x00, 0x34, 0x04, 0x00, 0x35, 0x04, 0x00, 0x36, 0x04, 0x00, 0x37, + 0x04, 0x00, 0x38, 0x04, 0x00, 0x39, 0x04, 0x00, 0x30, 0x04, 0x00, 0x31, + 0x04, 0x00, 0x32, 0x04, 0x00, 0x33, 0x04, 0x00, 0x34, 0x04, 0x00, 0x35, + 0x04, 0x00, 0x36, 0x04, 0x00, 0x37, 0x04, 0x00, 0x38, 0x04, 0x00, 0x39, + 0x04, 0x00, 0x30, 0x04, 0x00, 0x31, 0x04, 0x00, 0x32, 0x04, 0x00, 0x33, + 0x04, 0x00, 0x34, 0x04, 0x00, 0x35, 0x04, 0x00, 0x36, 0x04, 0x00, 0x37, + 0x04, 0x00, 0x38, 0x04, 0x00, 0x39, 0x04, 0x00, 0x30, 0x04, 0x00, 0x31, + 0x04, 0x00, 0x32, 0x04, 0x00, 0x33, 0x04, 0x00, 0x34, 0x04, 0x00, 0x35, + 0x04, 0x00, 0x36, 0x04, 0x00, 0x37, 0x04, 0x00, 0x38, 0x04, 0x00, 0x39, + 0x00, 0x4E, 0x3D, 0x00, 0x4E, 0x38, 0x00, 0x4E, 0x41, 0x02, 0x01, 0x22, + 0x00, 0x4F, 0x60, 0x00, 0x4F, 0xAE, 0x00, 0x4F, 0xBB, 0x00, 0x50, 0x02, + 0x00, 0x50, 0x7A, 0x00, 0x50, 0x99, 0x00, 0x50, 0xE7, 0x00, 0x50, 0xCF, + 0x00, 0x34, 0x9E, 0x02, 0x06, 0x3A, 0x00, 0x51, 0x4D, 0x00, 0x51, 0x54, + 0x00, 0x51, 0x64, 0x00, 0x51, 0x77, 0x02, 0x05, 0x1C, 0x00, 0x34, 0xB9, + 0x00, 0x51, 0x67, 0x00, 0x51, 0x8D, 0x02, 0x05, 0x4B, 0x00, 0x51, 0x97, + 0x00, 0x51, 0xA4, 0x00, 0x4E, 0xCC, 0x00, 0x51, 0xAC, 0x00, 0x51, 0xB5, + 0x02, 0x91, 0xDF, 0x00, 0x51, 0xF5, 0x00, 0x52, 0x03, 0x00, 0x34, 0xDF, + 0x00, 0x52, 0x3B, 0x00, 0x52, 0x46, 0x00, 0x52, 0x72, 0x00, 0x52, 0x77, + 0x00, 0x35, 0x15, 0x00, 0x52, 0xC7, 0x00, 0x52, 0xC9, 0x00, 0x52, 0xE4, + 0x00, 0x52, 0xFA, 0x00, 0x53, 0x05, 0x00, 0x53, 0x06, 0x00, 0x53, 0x17, + 0x00, 0x53, 0x49, 0x00, 0x53, 0x51, 0x00, 0x53, 0x5A, 0x00, 0x53, 0x73, + 0x00, 0x53, 0x7D, 0x00, 0x53, 0x7F, 0x00, 0x53, 0x7F, 0x00, 0x53, 0x7F, + 0x02, 0x0A, 0x2C, 0x00, 0x70, 0x70, 0x00, 0x53, 0xCA, 0x00, 0x53, 0xDF, + 0x02, 0x0B, 0x63, 0x00, 0x53, 0xEB, 0x00, 0x53, 0xF1, 0x00, 0x54, 0x06, + 0x00, 0x54, 0x9E, 0x00, 0x54, 0x38, 0x00, 0x54, 0x48, 0x00, 0x54, 0x68, + 0x00, 0x54, 0xA2, 0x00, 0x54, 0xF6, 0x00, 0x55, 0x10, 0x00, 0x55, 0x53, + 0x00, 0x55, 0x63, 0x00, 0x55, 0x84, 0x00, 0x55, 0x84, 0x00, 0x55, 0x99, + 0x00, 0x55, 0xAB, 0x00, 0x55, 0xB3, 0x00, 0x55, 0xC2, 0x00, 0x57, 0x16, + 0x00, 0x56, 0x06, 0x00, 0x57, 0x17, 0x00, 0x56, 0x51, 0x00, 0x56, 0x74, + 0x00, 0x52, 0x07, 0x00, 0x58, 0xEE, 0x00, 0x57, 0xCE, 0x00, 0x57, 0xF4, + 0x00, 0x58, 0x0D, 0x00, 0x57, 0x8B, 0x00, 0x58, 0x32, 0x00, 0x58, 0x31, + 0x00, 0x58, 0xAC, 0x02, 0x14, 0xE4, 0x00, 0x58, 0xF2, 0x00, 0x58, 0xF7, + 0x00, 0x59, 0x06, 0x00, 0x59, 0x1A, 0x00, 0x59, 0x22, 0x00, 0x59, 0x62, + 0x02, 0x16, 0xA8, 0x02, 0x16, 0xEA, 0x00, 0x59, 0xEC, 0x00, 0x5A, 0x1B, + 0x00, 0x5A, 0x27, 0x00, 0x59, 0xD8, 0x00, 0x5A, 0x66, 0x00, 0x36, 0xEE, + 0x00, 0x36, 0xFC, 0x00, 0x5B, 0x08, 0x00, 0x5B, 0x3E, 0x00, 0x5B, 0x3E, + 0x02, 0x19, 0xC8, 0x00, 0x5B, 0xC3, 0x00, 0x5B, 0xD8, 0x00, 0x5B, 0xE7, + 0x00, 0x5B, 0xF3, 0x02, 0x1B, 0x18, 0x00, 0x5B, 0xFF, 0x00, 0x5C, 0x06, + 0x00, 0x5F, 0x53, 0x00, 0x5C, 0x22, 0x00, 0x37, 0x81, 0x00, 0x5C, 0x60, + 0x00, 0x5C, 0x6E, 0x00, 0x5C, 0xC0, 0x00, 0x5C, 0x8D, 0x02, 0x1D, 0xE4, + 0x00, 0x5D, 0x43, 0x02, 0x1D, 0xE6, 0x00, 0x5D, 0x6E, 0x00, 0x5D, 0x6B, + 0x00, 0x5D, 0x7C, 0x00, 0x5D, 0xE1, 0x00, 0x5D, 0xE2, 0x00, 0x38, 0x2F, + 0x00, 0x5D, 0xFD, 0x00, 0x5E, 0x28, 0x00, 0x5E, 0x3D, 0x00, 0x5E, 0x69, + 0x00, 0x38, 0x62, 0x02, 0x21, 0x83, 0x00, 0x38, 0x7C, 0x00, 0x5E, 0xB0, + 0x00, 0x5E, 0xB3, 0x00, 0x5E, 0xB6, 0x00, 0x5E, 0xCA, 0x02, 0xA3, 0x92, + 0x00, 0x5E, 0xFE, 0x02, 0x23, 0x31, 0x02, 0x23, 0x31, 0x00, 0x82, 0x01, + 0x00, 0x5F, 0x22, 0x00, 0x5F, 0x22, 0x00, 0x38, 0xC7, 0x02, 0x32, 0xB8, + 0x02, 0x61, 0xDA, 0x00, 0x5F, 0x62, 0x00, 0x5F, 0x6B, 0x00, 0x38, 0xE3, + 0x00, 0x5F, 0x9A, 0x00, 0x5F, 0xCD, 0x00, 0x5F, 0xD7, 0x00, 0x5F, 0xF9, + 0x00, 0x60, 0x81, 0x00, 0x39, 0x3A, 0x00, 0x39, 0x1C, 0x00, 0x60, 0x94, + 0x02, 0x26, 0xD4, 0x00, 0x60, 0xC7, 0x00, 0x61, 0x48, 0x00, 0x61, 0x4C, + 0x00, 0x61, 0x4E, 0x00, 0x61, 0x4C, 0x00, 0x61, 0x7A, 0x00, 0x61, 0x8E, + 0x00, 0x61, 0xB2, 0x00, 0x61, 0xA4, 0x00, 0x61, 0xAF, 0x00, 0x61, 0xDE, + 0x00, 0x61, 0xF2, 0x00, 0x61, 0xF6, 0x00, 0x62, 0x10, 0x00, 0x62, 0x1B, + 0x00, 0x62, 0x5D, 0x00, 0x62, 0xB1, 0x00, 0x62, 0xD4, 0x00, 0x63, 0x50, + 0x02, 0x2B, 0x0C, 0x00, 0x63, 0x3D, 0x00, 0x62, 0xFC, 0x00, 0x63, 0x68, + 0x00, 0x63, 0x83, 0x00, 0x63, 0xE4, 0x02, 0x2B, 0xF1, 0x00, 0x64, 0x22, + 0x00, 0x63, 0xC5, 0x00, 0x63, 0xA9, 0x00, 0x3A, 0x2E, 0x00, 0x64, 0x69, + 0x00, 0x64, 0x7E, 0x00, 0x64, 0x9D, 0x00, 0x64, 0x77, 0x00, 0x3A, 0x6C, + 0x00, 0x65, 0x4F, 0x00, 0x65, 0x6C, 0x02, 0x30, 0x0A, 0x00, 0x65, 0xE3, + 0x00, 0x66, 0xF8, 0x00, 0x66, 0x49, 0x00, 0x3B, 0x19, 0x00, 0x66, 0x91, + 0x00, 0x3B, 0x08, 0x00, 0x3A, 0xE4, 0x00, 0x51, 0x92, 0x00, 0x51, 0x95, + 0x00, 0x67, 0x00, 0x00, 0x66, 0x9C, 0x00, 0x80, 0xAD, 0x00, 0x43, 0xD9, + 0x00, 0x67, 0x17, 0x00, 0x67, 0x1B, 0x00, 0x67, 0x21, 0x00, 0x67, 0x5E, + 0x00, 0x67, 0x53, 0x02, 0x33, 0xC3, 0x00, 0x3B, 0x49, 0x00, 0x67, 0xFA, + 0x00, 0x67, 0x85, 0x00, 0x68, 0x52, 0x00, 0x68, 0x85, 0x02, 0x34, 0x6D, + 0x00, 0x68, 0x8E, 0x00, 0x68, 0x1F, 0x00, 0x69, 0x14, 0x00, 0x3B, 0x9D, + 0x00, 0x69, 0x42, 0x00, 0x69, 0xA3, 0x00, 0x69, 0xEA, 0x00, 0x6A, 0xA8, + 0x02, 0x36, 0xA3, 0x00, 0x6A, 0xDB, 0x00, 0x3C, 0x18, 0x00, 0x6B, 0x21, + 0x02, 0x38, 0xA7, 0x00, 0x6B, 0x54, 0x00, 0x3C, 0x4E, 0x00, 0x6B, 0x72, + 0x00, 0x6B, 0x9F, 0x00, 0x6B, 0xBA, 0x00, 0x6B, 0xBB, 0x02, 0x3A, 0x8D, + 0x02, 0x1D, 0x0B, 0x02, 0x3A, 0xFA, 0x00, 0x6C, 0x4E, 0x02, 0x3C, 0xBC, + 0x00, 0x6C, 0xBF, 0x00, 0x6C, 0xCD, 0x00, 0x6C, 0x67, 0x00, 0x6D, 0x16, + 0x00, 0x6D, 0x3E, 0x00, 0x6D, 0x77, 0x00, 0x6D, 0x41, 0x00, 0x6D, 0x69, + 0x00, 0x6D, 0x78, 0x00, 0x6D, 0x85, 0x02, 0x3D, 0x1E, 0x00, 0x6D, 0x34, + 0x00, 0x6E, 0x2F, 0x00, 0x6E, 0x6E, 0x00, 0x3D, 0x33, 0x00, 0x6E, 0xCB, + 0x00, 0x6E, 0xC7, 0x02, 0x3E, 0xD1, 0x00, 0x6D, 0xF9, 0x00, 0x6F, 0x6E, + 0x02, 0x3F, 0x5E, 0x02, 0x3F, 0x8E, 0x00, 0x6F, 0xC6, 0x00, 0x70, 0x39, + 0x00, 0x70, 0x1E, 0x00, 0x70, 0x1B, 0x00, 0x3D, 0x96, 0x00, 0x70, 0x4A, + 0x00, 0x70, 0x7D, 0x00, 0x70, 0x77, 0x00, 0x70, 0xAD, 0x02, 0x05, 0x25, + 0x00, 0x71, 0x45, 0x02, 0x42, 0x63, 0x00, 0x71, 0x9C, 0x02, 0x43, 0xAB, + 0x00, 0x72, 0x28, 0x00, 0x72, 0x35, 0x00, 0x72, 0x50, 0x02, 0x46, 0x08, + 0x00, 0x72, 0x80, 0x00, 0x72, 0x95, 0x02, 0x47, 0x35, 0x02, 0x48, 0x14, + 0x00, 0x73, 0x7A, 0x00, 0x73, 0x8B, 0x00, 0x3E, 0xAC, 0x00, 0x73, 0xA5, + 0x00, 0x3E, 0xB8, 0x00, 0x3E, 0xB8, 0x00, 0x74, 0x47, 0x00, 0x74, 0x5C, + 0x00, 0x74, 0x71, 0x00, 0x74, 0x85, 0x00, 0x74, 0xCA, 0x00, 0x3F, 0x1B, + 0x00, 0x75, 0x24, 0x02, 0x4C, 0x36, 0x00, 0x75, 0x3E, 0x02, 0x4C, 0x92, + 0x00, 0x75, 0x70, 0x02, 0x21, 0x9F, 0x00, 0x76, 0x10, 0x02, 0x4F, 0xA1, + 0x02, 0x4F, 0xB8, 0x02, 0x50, 0x44, 0x00, 0x3F, 0xFC, 0x00, 0x40, 0x08, + 0x00, 0x76, 0xF4, 0x02, 0x50, 0xF3, 0x02, 0x50, 0xF2, 0x02, 0x51, 0x19, + 0x02, 0x51, 0x33, 0x00, 0x77, 0x1E, 0x00, 0x77, 0x1F, 0x00, 0x77, 0x1F, + 0x00, 0x77, 0x4A, 0x00, 0x40, 0x39, 0x00, 0x77, 0x8B, 0x00, 0x40, 0x46, + 0x00, 0x40, 0x96, 0x02, 0x54, 0x1D, 0x00, 0x78, 0x4E, 0x00, 0x78, 0x8C, + 0x00, 0x78, 0xCC, 0x00, 0x40, 0xE3, 0x02, 0x56, 0x26, 0x00, 0x79, 0x56, + 0x02, 0x56, 0x9A, 0x02, 0x56, 0xC5, 0x00, 0x79, 0x8F, 0x00, 0x79, 0xEB, + 0x00, 0x41, 0x2F, 0x00, 0x7A, 0x40, 0x00, 0x7A, 0x4A, 0x00, 0x7A, 0x4F, + 0x02, 0x59, 0x7C, 0x02, 0x5A, 0xA7, 0x02, 0x5A, 0xA7, 0x00, 0x7A, 0xEE, + 0x00, 0x42, 0x02, 0x02, 0x5B, 0xAB, 0x00, 0x7B, 0xC6, 0x00, 0x7B, 0xC9, + 0x00, 0x42, 0x27, 0x02, 0x5C, 0x80, 0x00, 0x7C, 0xD2, 0x00, 0x42, 0xA0, + 0x00, 0x7C, 0xE8, 0x00, 0x7C, 0xE3, 0x00, 0x7D, 0x00, 0x02, 0x5F, 0x86, + 0x00, 0x7D, 0x63, 0x00, 0x43, 0x01, 0x00, 0x7D, 0xC7, 0x00, 0x7E, 0x02, + 0x00, 0x7E, 0x45, 0x00, 0x43, 0x34, 0x02, 0x62, 0x28, 0x02, 0x62, 0x47, + 0x00, 0x43, 0x59, 0x02, 0x62, 0xD9, 0x00, 0x7F, 0x7A, 0x02, 0x63, 0x3E, + 0x00, 0x7F, 0x95, 0x00, 0x7F, 0xFA, 0x00, 0x80, 0x05, 0x02, 0x64, 0xDA, + 0x02, 0x65, 0x23, 0x00, 0x80, 0x60, 0x02, 0x65, 0xA8, 0x00, 0x80, 0x70, + 0x02, 0x33, 0x5F, 0x00, 0x43, 0xD5, 0x00, 0x80, 0xB2, 0x00, 0x81, 0x03, + 0x00, 0x44, 0x0B, 0x00, 0x81, 0x3E, 0x00, 0x5A, 0xB5, 0x02, 0x67, 0xA7, + 0x02, 0x67, 0xB5, 0x02, 0x33, 0x93, 0x02, 0x33, 0x9C, 0x00, 0x82, 0x01, + 0x00, 0x82, 0x04, 0x00, 0x8F, 0x9E, 0x00, 0x44, 0x6B, 0x00, 0x82, 0x91, + 0x00, 0x82, 0x8B, 0x00, 0x82, 0x9D, 0x00, 0x52, 0xB3, 0x00, 0x82, 0xB1, + 0x00, 0x82, 0xB3, 0x00, 0x82, 0xBD, 0x00, 0x82, 0xE6, 0x02, 0x6B, 0x3C, + 0x00, 0x82, 0xE5, 0x00, 0x83, 0x1D, 0x00, 0x83, 0x63, 0x00, 0x83, 0xAD, + 0x00, 0x83, 0x23, 0x00, 0x83, 0xBD, 0x00, 0x83, 0xE7, 0x00, 0x84, 0x57, + 0x00, 0x83, 0x53, 0x00, 0x83, 0xCA, 0x00, 0x83, 0xCC, 0x00, 0x83, 0xDC, + 0x02, 0x6C, 0x36, 0x02, 0x6D, 0x6B, 0x02, 0x6C, 0xD5, 0x00, 0x45, 0x2B, + 0x00, 0x84, 0xF1, 0x00, 0x84, 0xF3, 0x00, 0x85, 0x16, 0x02, 0x73, 0xCA, + 0x00, 0x85, 0x64, 0x02, 0x6F, 0x2C, 0x00, 0x45, 0x5D, 0x00, 0x45, 0x61, + 0x02, 0x6F, 0xB1, 0x02, 0x70, 0xD2, 0x00, 0x45, 0x6B, 0x00, 0x86, 0x50, + 0x00, 0x86, 0x5C, 0x00, 0x86, 0x67, 0x00, 0x86, 0x69, 0x00, 0x86, 0xA9, + 0x00, 0x86, 0x88, 0x00, 0x87, 0x0E, 0x00, 0x86, 0xE2, 0x00, 0x87, 0x79, + 0x00, 0x87, 0x28, 0x00, 0x87, 0x6B, 0x00, 0x87, 0x86, 0x00, 0x45, 0xD7, + 0x00, 0x87, 0xE1, 0x00, 0x88, 0x01, 0x00, 0x45, 0xF9, 0x00, 0x88, 0x60, + 0x00, 0x88, 0x63, 0x02, 0x76, 0x67, 0x00, 0x88, 0xD7, 0x00, 0x88, 0xDE, + 0x00, 0x46, 0x35, 0x00, 0x88, 0xFA, 0x00, 0x34, 0xBB, 0x02, 0x78, 0xAE, + 0x02, 0x79, 0x66, 0x00, 0x46, 0xBE, 0x00, 0x46, 0xC7, 0x00, 0x8A, 0xA0, + 0x00, 0x8A, 0xED, 0x00, 0x8B, 0x8A, 0x00, 0x8C, 0x55, 0x02, 0x7C, 0xA8, + 0x00, 0x8C, 0xAB, 0x00, 0x8C, 0xC1, 0x00, 0x8D, 0x1B, 0x00, 0x8D, 0x77, + 0x02, 0x7F, 0x2F, 0x02, 0x08, 0x04, 0x00, 0x8D, 0xCB, 0x00, 0x8D, 0xBC, + 0x00, 0x8D, 0xF0, 0x02, 0x08, 0xDE, 0x00, 0x8E, 0xD4, 0x00, 0x8F, 0x38, + 0x02, 0x85, 0xD2, 0x02, 0x85, 0xED, 0x00, 0x90, 0x94, 0x00, 0x90, 0xF1, + 0x00, 0x91, 0x11, 0x02, 0x87, 0x2E, 0x00, 0x91, 0x1B, 0x00, 0x92, 0x38, + 0x00, 0x92, 0xD7, 0x00, 0x92, 0xD8, 0x00, 0x92, 0x7C, 0x00, 0x93, 0xF9, + 0x00, 0x94, 0x15, 0x02, 0x8B, 0xFA, 0x00, 0x95, 0x8B, 0x00, 0x49, 0x95, + 0x00, 0x95, 0xB7, 0x02, 0x8D, 0x77, 0x00, 0x49, 0xE6, 0x00, 0x96, 0xC3, + 0x00, 0x5D, 0xB2, 0x00, 0x97, 0x23, 0x02, 0x91, 0x45, 0x02, 0x92, 0x1A, + 0x00, 0x4A, 0x6E, 0x00, 0x4A, 0x76, 0x00, 0x97, 0xE0, 0x02, 0x94, 0x0A, + 0x00, 0x4A, 0xB2, 0x02, 0x94, 0x96, 0x00, 0x98, 0x0B, 0x00, 0x98, 0x0B, + 0x00, 0x98, 0x29, 0x02, 0x95, 0xB6, 0x00, 0x98, 0xE2, 0x00, 0x4B, 0x33, + 0x00, 0x99, 0x29, 0x00, 0x99, 0xA7, 0x00, 0x99, 0xC2, 0x00, 0x99, 0xFE, + 0x00, 0x4B, 0xCE, 0x02, 0x9B, 0x30, 0x00, 0x9B, 0x12, 0x00, 0x9C, 0x40, + 0x00, 0x9C, 0xFD, 0x00, 0x4C, 0xCE, 0x00, 0x4C, 0xED, 0x00, 0x9D, 0x67, + 0x02, 0xA0, 0xCE, 0x00, 0x4C, 0xF8, 0x02, 0xA1, 0x05, 0x02, 0xA2, 0x0E, + 0x02, 0xA2, 0x91, 0x00, 0x9E, 0xBB, 0x00, 0x4D, 0x56, 0x00, 0x9E, 0xF9, + 0x00, 0x9E, 0xFE, 0x00, 0x9F, 0x05, 0x00, 0x9F, 0x0F, 0x00, 0x9F, 0x16, + 0x00, 0x9F, 0x3B, 0x02, 0xA6, 0x00 +}; + +const decomp_index_table_t gl_uninorm_decomp_index_table = +{ + { + 0, 32, 64, 96, 128, -1, 160, 192, + 224, 256, 288, 320, 352, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, 384, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 416, 448, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 480, 512, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 544 + }, + { + -1, -1, -1, -1, -1, 0, 32, 64, + 96, 128, 160, 192, -1, 224, 256, 288, + 320, 352, -1, -1, -1, 384, 416, 448, + -1, -1, 480, 512, 544, 576, 608, 640, + 672, 704, 736, 768, -1, -1, 800, 832, + -1, -1, -1, -1, 864, -1, -1, -1, + -1, 896, -1, 928, -1, -1, 960, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, 992, 1024, -1, -1, -1, 1056, -1, + -1, 1088, 1120, -1, -1, -1, -1, -1, + -1, -1, 1152, -1, 1184, -1, 1216, -1, + -1, -1, 1248, -1, -1, -1, 1280, -1, + -1, -1, 1312, -1, -1, -1, 1344, -1, + -1, 1376, -1, -1, -1, 1408, 1440, -1, + 1472, -1, 1504, 1536, 1568, 1600, -1, -1, + -1, 1632, -1, -1, -1, -1, -1, 1664, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + 1696, 1728, 1760, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, 1792, 1824, 1856, 1888, 1920, -1, -1, + 1952, 1984, 2016, 2048, 2080, 2112, 2144, 2176, + 2208, 2240, 2272, 2304, 2336, 2368, 2400, 2432, + 2464, 2496, 2528, 2560, 2592, 2624, -1, -1, + 2656, 2688, 2720, 2752, 2784, 2816, 2848, -1, + 2880, 2912, 2944, 2976, 3008, 3040, -1, 3072, + -1, 3104, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 3136, 3168, 3200, 3232, 3264, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + 3296, -1, -1, 3328, -1, -1, 3360, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 3392, -1, -1, -1, -1, + -1, -1, -1, 3424, -1, -1, -1, -1, + -1, -1, -1, -1, 3456, -1, -1, 3488, + 3520, 3552, 3584, 3616, 3648, 3680, 3712, -1, + 3744, 3776, 3808, 3840, 3872, 3904, 3936, 3968, + -1, 4000, 4032, 4064, 4096, -1, -1, -1, + 4128, 4160, 4192, 4224, 4256, 4288, 4320, 4352, + 4384, 4416, 4448, 4480, 4512, 4544, 4576, 4608, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 4640, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + 4672, 4704, 4736, 4768, 4800, 4832, 4864, 4896, + 4928, 4960, 4992, 5024, 5056, 5088, 5120, -1, + 5152, 5184, 5216, 5248, 5280, 5312, 5344, 5376, + 5408, 5440, 5472, 5504, 5536, 5568, 5600, 5632, + 5664, 5696, 5728, 5760, 5792, 5824, 5856, 5888, + 5920, 5952, 5984, 6016, 6048, 6080, 6112, 6144, + 6176, 6208, 6240, 6272, 6304, 6336, 6368, 6400, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 6432, 6464, -1, 6496, 6528, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + 6560, 6592, 6624, 6656, 6688, 6720, 6752, 6784, + 6816, 6848, 6880, 6912, 6944, 6976, 7008, 7040, + 7072, 7104, 7136, 7168, 7200, 7232, 7264, 7296, + 7328, 7360, 7392, 7424, 7456, 7488, 7520, 7552, + 7584, 7616, 7648, 7680, 7712, 7744, 7776, 7808, + 7840, 7872, 7904, 7936, 7968, 8000, 8032, 8064, + 8096, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1 + }, + { + 32768, -1, -1, -1, -1, -1, -1, -1, + 32769, -1, 32771, -1, -1, -1, -1, 32772, + -1, -1, 32774, 32775, 32776, 32778, -1, -1, + 32779, 32781, 32782, -1, 32783, 32786, 32789, -1, + 24, 26, 28, 30, 32, 34, -1, 36, + 38, 40, 42, 44, 46, 48, 50, 52, + -1, 54, 56, 58, 60, 62, 64, -1, + -1, 66, 68, 70, 72, 74, -1, -1, + 76, 78, 80, 82, 84, 86, -1, 88, + 90, 92, 94, 96, 98, 100, 102, 104, + -1, 106, 108, 110, 112, 114, 116, -1, + -1, 118, 120, 122, 124, 126, -1, 128, + 130, 132, 134, 136, 138, 140, 142, 144, + 146, 148, 150, 152, 154, 156, 158, 160, + -1, -1, 162, 164, 166, 168, 170, 172, + 174, 176, 178, 180, 182, 184, 186, 188, + 190, 192, 194, 196, 198, 200, -1, -1, + 202, 204, 206, 208, 210, 212, 214, 216, + 218, -1, 32988, 32990, 224, 226, 228, 230, + -1, 232, 234, 236, 238, 240, 242, 33012, + 33014, -1, -1, 248, 250, 252, 254, 256, + 258, 33028, -1, -1, 262, 264, 266, 268, + 270, 272, -1, -1, 274, 276, 278, 280, + 282, 284, 286, 288, 290, 292, 294, 296, + 298, 300, 302, 304, 306, 308, -1, -1, + 310, 312, 314, 316, 318, 320, 322, 324, + 326, 328, 330, 332, 334, 336, 338, 340, + 342, 344, 346, 348, 350, 352, 354, 33124, + 357, 359, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 361, + 363, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 33133, 33135, 33137, 33139, + 33141, 33143, 33145, 33147, 33149, 383, 385, 387, + 389, 391, 393, 395, 397, 399, 401, 403, + 405, 407, 409, 411, 413, -1, 415, 417, + 419, 421, 423, 425, -1, -1, 427, 429, + 431, 433, 435, 437, 439, 441, 443, 445, + 447, 33217, 33219, 33221, 455, 457, -1, -1, + 459, 461, 463, 465, 467, 469, 471, 473, + 475, 477, 479, 481, 483, 485, 487, 489, + 491, 493, 495, 497, 499, 501, 503, 505, + 507, 509, 511, 513, 515, 517, 519, 521, + 523, 525, 527, 529, -1, -1, 531, 533, + -1, -1, -1, -1, -1, -1, 535, 537, + 539, 541, 543, 545, 547, 549, 551, 553, + 555, 557, 559, 561, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + 33331, 33332, 33333, 33334, 33335, 33336, 33337, 33338, + 33339, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + 33340, 33342, 33344, 33346, 33348, 33350, -1, -1, + 33352, 33353, 33354, 33355, 33356, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + 589, 590, -1, 591, 592, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 594, -1, -1, -1, + -1, -1, 33363, -1, -1, -1, 597, -1, + -1, -1, -1, -1, 33366, 600, 602, 604, + 605, 607, 609, -1, 611, -1, 613, 615, + 617, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 619, 621, 623, 625, 627, 629, + 631, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 633, 635, 637, 639, 641, -1, + 33411, 33412, 33413, 646, 648, 33418, 33419, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + 33420, 33421, 33422, -1, 33423, 33424, -1, -1, + -1, 33425, -1, -1, -1, -1, -1, -1, + 658, 660, -1, 662, -1, -1, -1, 664, + -1, -1, -1, -1, 666, 668, 670, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, 672, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, 674, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + 676, 678, -1, 680, -1, -1, -1, 682, + -1, -1, -1, -1, 684, 686, 688, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 690, 692, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, 694, 696, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + 698, 700, 702, 704, -1, -1, 706, 708, + -1, -1, 710, 712, 714, 716, 718, 720, + -1, -1, 722, 724, 726, 728, 730, 732, + -1, -1, 734, 736, 738, 740, 742, 744, + 746, 748, 750, 752, 754, 756, -1, -1, + 758, 760, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 33530, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 764, 766, 768, 770, 772, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 33542, 33544, 33546, + 33548, -1, -1, -1, -1, -1, -1, -1, + 782, -1, 784, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 786, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, 788, -1, -1, -1, -1, -1, -1, + -1, 790, -1, -1, 792, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + 794, 796, 798, 800, 802, 804, 806, 808, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 810, 812, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 814, 816, -1, 818, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 820, -1, -1, 822, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, 824, 826, 828, -1, -1, 830, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + 832, -1, -1, 834, 836, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 838, 840, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 842, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 844, 846, 848, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + 850, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + 852, -1, -1, -1, -1, -1, -1, 854, + 856, -1, 858, 860, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 862, 864, 866, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 868, -1, 870, 872, 874, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 33644, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 33646, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 33648, 33650, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 33652, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 885, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 887, -1, -1, + -1, -1, 889, -1, -1, -1, -1, 891, + -1, -1, -1, -1, 893, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, 895, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 897, -1, 899, 901, 33671, + 905, 33675, -1, -1, -1, -1, -1, -1, + -1, 909, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 911, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 913, -1, -1, + -1, -1, 915, -1, -1, -1, -1, 917, + -1, -1, -1, -1, 919, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, 921, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 923, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 33693, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 926, -1, + 928, -1, 930, -1, 932, -1, 934, -1, + -1, -1, 936, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 938, -1, 940, -1, -1, + 942, 944, -1, 946, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 33716, 33717, 33718, -1, + 33719, 33720, 33721, 33722, 33723, 33724, 33725, 33726, + 33727, 33728, 33729, -1, 33730, 33731, 33732, 33733, + 33734, 33735, 33736, 33737, 33738, 33739, 33740, 33741, + 33742, 33743, 33744, 33745, 33746, 33747, -1, 33748, + 33749, 33750, 33751, 33752, 33753, 33754, 33755, 33756, + 33757, 33758, 33759, 33760, 33761, 33762, 33763, 33764, + 33765, 33766, 33767, 33768, 33769, 33770, 33771, 33772, + 33773, 33774, 33775, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + 33776, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 33777, 33778, 33779, 33780, 33781, + 33782, 33783, 33784, 33785, 33786, 33787, 33788, 33789, + 33790, 33791, 33792, 33793, 33794, 33795, 33796, 33797, + 33798, 33799, 33800, 33801, 33802, 33803, 33804, 33805, + 33806, 33807, 33808, 33809, 33810, 33811, 33812, 33813, + 1046, 1048, 1050, 1052, 1054, 1056, 1058, 1060, + 1062, 1064, 1066, 1068, 1070, 1072, 1074, 1076, + 1078, 1080, 1082, 1084, 1086, 1088, 1090, 1092, + 1094, 1096, 1098, 1100, 1102, 1104, 1106, 1108, + 1110, 1112, 1114, 1116, 1118, 1120, 1122, 1124, + 1126, 1128, 1130, 1132, 1134, 1136, 1138, 1140, + 1142, 1144, 1146, 1148, 1150, 1152, 1154, 1156, + 1158, 1160, 1162, 1164, 1166, 1168, 1170, 1172, + 1174, 1176, 1178, 1180, 1182, 1184, 1186, 1188, + 1190, 1192, 1194, 1196, 1198, 1200, 1202, 1204, + 1206, 1208, 1210, 1212, 1214, 1216, 1218, 1220, + 1222, 1224, 1226, 1228, 1230, 1232, 1234, 1236, + 1238, 1240, 1242, 1244, 1246, 1248, 1250, 1252, + 1254, 1256, 1258, 1260, 1262, 1264, 1266, 1268, + 1270, 1272, 1274, 1276, 1278, 1280, 1282, 1284, + 1286, 1288, 1290, 1292, 1294, 1296, 1298, 1300, + 1302, 1304, 1306, 1308, 1310, 1312, 1314, 1316, + 1318, 1320, 1322, 1324, 1326, 1328, 1330, 1332, + 1334, 1336, 1338, 1340, 1342, 1344, 1346, 1348, + 1350, 1352, 34122, 1356, -1, -1, -1, -1, + 1358, 1360, 1362, 1364, 1366, 1368, 1370, 1372, + 1374, 1376, 1378, 1380, 1382, 1384, 1386, 1388, + 1390, 1392, 1394, 1396, 1398, 1400, 1402, 1404, + 1406, 1408, 1410, 1412, 1414, 1416, 1418, 1420, + 1422, 1424, 1426, 1428, 1430, 1432, 1434, 1436, + 1438, 1440, 1442, 1444, 1446, 1448, 1450, 1452, + 1454, 1456, 1458, 1460, 1462, 1464, 1466, 1468, + 1470, 1472, 1474, 1476, 1478, 1480, 1482, 1484, + 1486, 1488, 1490, 1492, 1494, 1496, 1498, 1500, + 1502, 1504, 1506, 1508, 1510, 1512, 1514, 1516, + 1518, 1520, 1522, 1524, 1526, 1528, 1530, 1532, + 1534, 1536, -1, -1, -1, -1, -1, -1, + 1538, 1540, 1542, 1544, 1546, 1548, 1550, 1552, + 1554, 1556, 1558, 1560, 1562, 1564, 1566, 1568, + 1570, 1572, 1574, 1576, 1578, 1580, -1, -1, + 1582, 1584, 1586, 1588, 1590, 1592, -1, -1, + 1594, 1596, 1598, 1600, 1602, 1604, 1606, 1608, + 1610, 1612, 1614, 1616, 1618, 1620, 1622, 1624, + 1626, 1628, 1630, 1632, 1634, 1636, 1638, 1640, + 1642, 1644, 1646, 1648, 1650, 1652, 1654, 1656, + 1658, 1660, 1662, 1664, 1666, 1668, -1, -1, + 1670, 1672, 1674, 1676, 1678, 1680, -1, -1, + 1682, 1684, 1686, 1688, 1690, 1692, 1694, 1696, + -1, 1698, -1, 1700, -1, 1702, -1, 1704, + 1706, 1708, 1710, 1712, 1714, 1716, 1718, 1720, + 1722, 1724, 1726, 1728, 1730, 1732, 1734, 1736, + 1738, 1740, 1741, 1743, 1744, 1746, 1747, 1749, + 1750, 1752, 1753, 1755, 1756, 1758, -1, -1, + 1759, 1761, 1763, 1765, 1767, 1769, 1771, 1773, + 1775, 1777, 1779, 1781, 1783, 1785, 1787, 1789, + 1791, 1793, 1795, 1797, 1799, 1801, 1803, 1805, + 1807, 1809, 1811, 1813, 1815, 1817, 1819, 1821, + 1823, 1825, 1827, 1829, 1831, 1833, 1835, 1837, + 1839, 1841, 1843, 1845, 1847, 1849, 1851, 1853, + 1855, 1857, 1859, 1861, 1863, -1, 1865, 1867, + 1869, 1871, 1873, 1875, 1876, 34646, 1880, 34649, + 34651, 1885, 1887, 1889, 1891, -1, 1893, 1895, + 1897, 1899, 1900, 1902, 1903, 1905, 1907, 1909, + 1911, 1913, 1915, 1917, -1, -1, 1918, 1920, + 1922, 1924, 1926, 1928, -1, 1929, 1931, 1933, + 1935, 1937, 1939, 1941, 1942, 1944, 1946, 1948, + 1950, 1952, 1954, 1956, 1957, 1959, 1961, 1962, + -1, -1, 1963, 1965, 1967, -1, 1969, 1971, + 1973, 1975, 1976, 1978, 1979, 1981, 34750, -1, + 1984, 1985, 34754, 34755, 34756, 34757, 34758, 34759, + 34760, 34761, 34762, -1, -1, -1, -1, -1, + -1, 34763, -1, -1, -1, -1, -1, 34764, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 34766, 34767, 34769, -1, + -1, -1, -1, -1, -1, -1, -1, 34772, + -1, -1, -1, 34773, 34775, -1, 34778, 34780, + -1, -1, -1, -1, 34783, -1, 34785, -1, + -1, -1, -1, -1, -1, -1, -1, 34787, + 34789, 34791, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 34793, + -1, -1, -1, -1, -1, -1, -1, 34797, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + 34798, 34799, -1, -1, 34800, 34801, 34802, 34803, + 34804, 34805, 34806, 34807, 34808, 34809, 34810, 34811, + 34812, 34813, 34814, 34815, 34816, 34817, 34818, 34819, + 34820, 34821, 34822, 34823, 34824, 34825, 34826, -1, + 34827, 34828, 34829, 34830, 34831, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + 34832, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + 34834, 34837, 34840, 34841, -1, 34843, 34846, 34849, + -1, 34850, 34852, 34853, 34854, 34855, 34856, 34857, + 34858, 34859, 34860, 34861, -1, 34862, 34863, -1, + -1, 34865, 34866, 34867, 34868, 34869, -1, -1, + 34870, 34872, 34875, -1, 34877, -1, 2110, -1, + 34879, -1, 2112, 2113, 34882, 34883, -1, 34884, + 34885, 34886, -1, 34887, 34888, 34889, 34890, 34891, + 34892, 34893, -1, 34894, 34897, 34898, 34899, 34900, + 34901, -1, -1, -1, -1, 34902, 34903, 34904, + 34905, 34906, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 34907, 34910, 34913, 34916, 34919, + 34922, 34925, 34928, 34931, 34934, 34937, 34940, 34943, + 34945, 34946, 34948, 34951, 34953, 34954, 34956, 34959, + 34963, 34965, 34966, 34968, 34971, 34972, 34973, 34974, + 34975, 34976, 34978, 34981, 34983, 34984, 34986, 34989, + 34993, 34995, 34996, 34998, 35001, 35002, 35003, 35004, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 2237, 2239, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 2241, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 2243, 2245, 2247, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 2249, -1, -1, -1, + -1, 2251, -1, -1, 2253, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 2255, -1, 2257, -1, + -1, -1, -1, -1, 35027, 35029, -1, 35032, + 35034, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, 2269, -1, -1, 2271, -1, -1, 2273, + -1, 2275, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + 2277, -1, 2279, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 2281, 2283, 2285, + 2287, 2289, -1, -1, 2291, 2293, -1, -1, + 2295, 2297, -1, -1, -1, -1, -1, -1, + 2299, 2301, -1, -1, 2303, 2305, -1, -1, + 2307, 2309, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 2311, 2313, 2315, 2317, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + 2319, 2321, 2323, 2325, -1, -1, -1, -1, + -1, -1, 2327, 2329, 2331, 2333, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, 2335, 2336, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + 35105, 35106, 35107, 35108, 35109, 35110, 35111, 35112, + 35113, 35114, 35116, 35118, 35120, 35122, 35124, 35126, + 35128, 35130, 35132, 35134, 35136, 35139, 35142, 35145, + 35148, 35151, 35154, 35157, 35160, 35163, 35167, 35171, + 35175, 35179, 35183, 35187, 35191, 35195, 35199, 35203, + 35207, 35209, 35211, 35213, 35215, 35217, 35219, 35221, + 35223, 35225, 35228, 35231, 35234, 35237, 35240, 35243, + 35246, 35249, 35252, 35255, 35258, 35261, 35264, 35267, + 35270, 35273, 35276, 35279, 35282, 35285, 35288, 35291, + 35294, 35297, 35300, 35303, 35306, 35309, 35312, 35315, + 35318, 35321, 35324, 35327, 35330, 35333, 35336, 35337, + 35338, 35339, 35340, 35341, 35342, 35343, 35344, 35345, + 35346, 35347, 35348, 35349, 35350, 35351, 35352, 35353, + 35354, 35355, 35356, 35357, 35358, 35359, 35360, 35361, + 35362, 35363, 35364, 35365, 35366, 35367, 35368, 35369, + 35370, 35371, 35372, 35373, 35374, 35375, 35376, 35377, + 35378, 35379, 35380, 35381, 35382, 35383, 35384, 35385, + 35386, 35387, 35388, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 35389, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 35393, 35396, 35398, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 2633, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 35403, 35404, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 35405, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 35406, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 35407, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + 35408, 35409, 35410, 35411, 35412, 35413, 35414, 35415, + 35416, 35417, 35418, 35419, 35420, 35421, 35422, 35423, + 35424, 35425, 35426, 35427, 35428, 35429, 35430, 35431, + 35432, 35433, 35434, 35435, 35436, 35437, 35438, 35439, + 35440, 35441, 35442, 35443, 35444, 35445, 35446, 35447, + 35448, 35449, 35450, 35451, 35452, 35453, 35454, 35455, + 35456, 35457, 35458, 35459, 35460, 35461, 35462, 35463, + 35464, 35465, 35466, 35467, 35468, 35469, 35470, 35471, + 35472, 35473, 35474, 35475, 35476, 35477, 35478, 35479, + 35480, 35481, 35482, 35483, 35484, 35485, 35486, 35487, + 35488, 35489, 35490, 35491, 35492, 35493, 35494, 35495, + 35496, 35497, 35498, 35499, 35500, 35501, 35502, 35503, + 35504, 35505, 35506, 35507, 35508, 35509, 35510, 35511, + 35512, 35513, 35514, 35515, 35516, 35517, 35518, 35519, + 35520, 35521, 35522, 35523, 35524, 35525, 35526, 35527, + 35528, 35529, 35530, 35531, 35532, 35533, 35534, 35535, + 35536, 35537, 35538, 35539, 35540, 35541, 35542, 35543, + 35544, 35545, 35546, 35547, 35548, 35549, 35550, 35551, + 35552, 35553, 35554, 35555, 35556, 35557, 35558, 35559, + 35560, 35561, 35562, 35563, 35564, 35565, 35566, 35567, + 35568, 35569, 35570, 35571, 35572, 35573, 35574, 35575, + 35576, 35577, 35578, 35579, 35580, 35581, 35582, 35583, + 35584, 35585, 35586, 35587, 35588, 35589, 35590, 35591, + 35592, 35593, 35594, 35595, 35596, 35597, 35598, 35599, + 35600, 35601, 35602, 35603, 35604, 35605, 35606, 35607, + 35608, 35609, 35610, 35611, 35612, 35613, 35614, 35615, + 35616, 35617, 35618, 35619, 35620, 35621, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + 35622, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 35623, -1, + 35624, 35625, 35626, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 2859, -1, 2861, -1, + 2863, -1, 2865, -1, 2867, -1, 2869, -1, + 2871, -1, 2873, -1, 2875, -1, 2877, -1, + 2879, -1, 2881, -1, -1, 2883, -1, 2885, + -1, 2887, -1, -1, -1, -1, -1, -1, + 2889, 2891, -1, 2893, 2895, -1, 2897, 2899, + -1, 2901, 2903, -1, 2905, 2907, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 2909, -1, -1, -1, + -1, -1, -1, 35679, 35681, -1, 2915, 35685, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 2919, -1, 2921, -1, + 2923, -1, 2925, -1, 2927, -1, 2929, -1, + 2931, -1, 2933, -1, 2935, -1, 2937, -1, + 2939, -1, 2941, -1, -1, 2943, -1, 2945, + -1, 2947, -1, -1, -1, -1, -1, -1, + 2949, 2951, -1, 2953, 2955, -1, 2957, 2959, + -1, 2961, 2963, -1, 2965, 2967, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 2969, -1, -1, 2971, + 2973, 2975, 2977, -1, -1, -1, 2979, 35749, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, 35751, 35752, 35753, 35754, 35755, 35756, 35757, + 35758, 35759, 35760, 35761, 35762, 35763, 35764, 35765, + 35766, 35767, 35768, 35769, 35770, 35771, 35772, 35773, + 35774, 35775, 35776, 35777, 35778, 35779, 35780, 35781, + 35782, 35783, 35784, 35785, 35786, 35787, 35788, 35789, + 35790, 35791, 35792, 35793, 35794, 35795, 35796, 35797, + 35798, 35799, 35800, 35801, 35802, 35803, 35804, 35805, + 35806, 35807, 35808, 35809, 35810, 35811, 35812, 35813, + 35814, 35815, 35816, 35817, 35818, 35819, 35820, 35821, + 35822, 35823, 35824, 35825, 35826, 35827, 35828, 35829, + 35830, 35831, 35832, 35833, 35834, 35835, 35836, 35837, + 35838, 35839, 35840, 35841, 35842, 35843, 35844, -1, + -1, -1, 35845, 35846, 35847, 35848, 35849, 35850, + 35851, 35852, 35853, 35854, 35855, 35856, 35857, 35858, + 35859, 35862, 35865, 35868, 35871, 35874, 35877, 35880, + 35883, 35886, 35889, 35892, 35895, 35898, 35901, 35905, + 35909, 35913, 35917, 35921, 35925, 35929, 35933, 35937, + 35941, 35945, 35949, 35953, 35957, 35961, 35968, -1, + 35974, 35977, 35980, 35983, 35986, 35989, 35992, 35995, + 35998, 36001, 36004, 36007, 36010, 36013, 36016, 36019, + 36022, 36025, 36028, 36031, 36034, 36037, 36040, 36043, + 36046, 36049, 36052, 36055, 36058, 36061, 36064, 36067, + 36070, 36073, 36076, 36079, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + 36082, 36085, 36087, 36089, 36091, 36093, 36095, 36097, + 36099, 36101, 36103, 36105, 36107, 36109, 36111, 36113, + 36115, 36116, 36117, 36118, 36119, 36120, 36121, 36122, + 36123, 36124, 36125, 36126, 36127, 36128, 36129, 36131, + 36133, 36135, 36137, 36139, 36141, 36143, 36145, 36147, + 36149, 36151, 36153, 36155, 36157, 36162, 36166, -1, + 36168, 36169, 36170, 36171, 36172, 36173, 36174, 36175, + 36176, 36177, 36178, 36179, 36180, 36181, 36182, 36183, + 36184, 36185, 36186, 36187, 36188, 36189, 36190, 36191, + 36192, 36193, 36194, 36195, 36196, 36197, 36198, 36199, + 36200, 36201, 36202, 36203, 36204, 36205, 36206, 36207, + 36208, 36209, 36210, 36211, 36212, 36213, 36214, 36215, + 36216, 36217, 36219, 36221, 36223, 36225, 36227, 36229, + 36231, 36233, 36235, 36237, 36239, 36241, 36243, 36245, + 36247, 36249, 36251, 36253, 36255, 36257, 36259, 36261, + 36263, 36265, 36268, 36271, 36274, 36276, 36279, 36281, + 36284, 36285, 36286, 36287, 36288, 36289, 36290, 36291, + 36292, 36293, 36294, 36295, 36296, 36297, 36298, 36299, + 36300, 36301, 36302, 36303, 36304, 36305, 36306, 36307, + 36308, 36309, 36310, 36311, 36312, 36313, 36314, 36315, + 36316, 36317, 36318, 36319, 36320, 36321, 36322, 36323, + 36324, 36325, 36326, 36327, 36328, 36329, 36330, -1, + 36331, 36335, 36339, 36343, 36346, 36350, 36353, 36356, + 36361, 36365, 36368, 36371, 36374, 36378, 36382, 36385, + 36388, 36390, 36393, 36397, 36401, 36403, 36408, 36414, + 36419, 36422, 36427, 36432, 36436, 36439, 36442, 36445, + 36449, 36454, 36458, 36461, 36464, 36467, 36469, 36471, + 36473, 36475, 36478, 36481, 36486, 36489, 36493, 36498, + 36501, 36503, 36505, 36510, 36514, 36519, 36522, 36527, + 36529, 36532, 36535, 36538, 36541, 36544, 36548, 36551, + 36553, 36556, 36559, 36562, 36566, 36569, 36572, 36575, + 36580, 36584, 36586, 36591, 36593, 36597, 36601, 36604, + 36607, 36610, 36614, 36616, 36619, 36623, 36625, 36630, + 36633, 36635, 36637, 36639, 36641, 36643, 36645, 36647, + 36649, 36651, 36653, 36656, 36659, 36662, 36665, 36668, + 36671, 36674, 36677, 36680, 36683, 36686, 36689, 36692, + 36695, 36698, 36701, 36703, 36705, 36708, 36710, 36712, + 36714, 36717, 36720, 36722, 36724, 36726, 36728, 36730, + 36734, 36736, 36738, 36740, 36742, 36744, 36746, 36748, + 36750, 36753, 36757, 36759, 36761, 36763, 36765, 36767, + 36769, 36771, 36774, 36777, 36780, 36783, 36785, 36787, + 36789, 36791, 36793, 36795, 36797, 36799, 36801, 36803, + 36806, 36809, 36811, 36814, 36817, 36820, 36822, 36825, + 36828, 36832, 36834, 36837, 36840, 36843, 36846, 36851, + 36857, 36859, 36861, 36863, 36865, 36867, 36869, 36871, + 36873, 36875, 36877, 36879, 36881, 36883, 36885, 36887, + 36889, 36891, 36893, 36897, 36899, 36901, 36903, 36907, + 36910, 36912, 36914, 36916, 36918, 36920, 36922, 36924, + 36926, 36928, 36930, 36933, 36935, 36937, 36940, 36943, + 36945, 36949, 36952, 36954, 36956, 36958, 36960, 36963, + 36966, 36968, 36970, 36972, 36974, 36976, 36978, 36980, + 36982, 36984, 36987, 36990, 36993, 36996, 36999, 37002, + 37005, 37008, 37011, 37014, 37017, 37020, 37023, 37026, + 37029, 37032, 37035, 37038, 37041, 37044, 37047, 37050, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + 37053, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + 4286, 4287, 4288, 4289, 4290, 4291, 4292, 4293, + 4294, 4295, 4296, 4297, 4298, 4299, 4300, 4301, + 4302, 4303, 4304, 4305, 4306, 4307, 4308, 4309, + 4310, 4311, 4312, 4313, 4314, 4315, 4316, 4317, + 4318, 4319, 4320, 4321, 4322, 4323, 4324, 4325, + 4326, 4327, 4328, 4329, 4330, 4331, 4332, 4333, + 4334, 4335, 4336, 4337, 4338, 4339, 4340, 4341, + 4342, 4343, 4344, 4345, 4346, 4347, 4348, 4349, + 4350, 4351, 4352, 4353, 4354, 4355, 4356, 4357, + 4358, 4359, 4360, 4361, 4362, 4363, 4364, 4365, + 4366, 4367, 4368, 4369, 4370, 4371, 4372, 4373, + 4374, 4375, 4376, 4377, 4378, 4379, 4380, 4381, + 4382, 4383, 4384, 4385, 4386, 4387, 4388, 4389, + 4390, 4391, 4392, 4393, 4394, 4395, 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, 4421, + 4422, 4423, 4424, 4425, 4426, 4427, 4428, 4429, + 4430, 4431, 4432, 4433, 4434, 4435, 4436, 4437, + 4438, 4439, 4440, 4441, 4442, 4443, 4444, 4445, + 4446, 4447, 4448, 4449, 4450, 4451, 4452, 4453, + 4454, 4455, 4456, 4457, 4458, 4459, 4460, 4461, + 4462, 4463, 4464, 4465, 4466, 4467, 4468, 4469, + 4470, 4471, 4472, 4473, 4474, 4475, 4476, 4477, + 4478, 4479, 4480, 4481, 4482, 4483, 4484, 4485, + 4486, 4487, 4488, 4489, 4490, 4491, 4492, 4493, + 4494, 4495, 4496, 4497, 4498, 4499, 4500, 4501, + 4502, 4503, 4504, 4505, 4506, 4507, 4508, 4509, + 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, 4535, 4536, 4537, 4538, 4539, 4540, 4541, + 4542, 4543, 4544, 4545, 4546, 4547, 4548, 4549, + 4550, 4551, 4552, 4553, 4554, 4555, -1, -1, + 4556, -1, 4557, -1, -1, 4558, 4559, 4560, + 4561, 4562, 4563, 4564, 4565, 4566, 4567, -1, + 4568, -1, 4569, -1, -1, 4570, 4571, -1, + -1, -1, 4572, 4573, 4574, 4575, -1, -1, + 4576, 4577, 4578, 4579, 4580, 4581, 4582, 4583, + 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4591, + 4592, 4593, 4594, 4595, 4596, 4597, 4598, 4599, + 4600, 4601, 4602, 4603, 4604, 4605, 4606, 4607, + 4608, 4609, 4610, 4611, 4612, 4613, 4614, 4615, + 4616, 4617, 4618, 4619, 4620, 4621, 4622, 4623, + 4624, 4625, 4626, 4627, 4628, 4629, 4630, 4631, + 4632, 4633, 4634, -1, -1, -1, -1, -1, + 4635, 4636, 4637, 4638, 4639, 4640, 4641, 4642, + 4643, 4644, 4645, 4646, 4647, 4648, 4649, 4650, + 4651, 4652, 4653, 4654, 4655, 4656, 4657, 4658, + 4659, 4660, 4661, 4662, 4663, 4664, 4665, 4666, + 4667, 4668, 4669, 4670, 4671, 4672, 4673, 4674, + 4675, 4676, 4677, 4678, 4679, 4680, 4681, 4682, + 4683, 4684, 4685, 4686, 4687, 4688, 4689, 4690, + 4691, 4692, 4693, 4694, 4695, 4696, 4697, 4698, + 4699, 4700, 4701, 4702, 4703, 4704, 4705, 4706, + 4707, 4708, 4709, 4710, 4711, 4712, 4713, 4714, + 4715, 4716, 4717, 4718, 4719, 4720, 4721, 4722, + 4723, 4724, 4725, 4726, 4727, 4728, 4729, 4730, + 4731, 4732, 4733, 4734, 4735, 4736, 4737, 4738, + 4739, 4740, -1, -1, -1, -1, -1, -1, + 37509, 37511, 37513, 37515, 37518, 37521, 37523, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 37525, 37527, 37529, 37531, 37533, + -1, -1, -1, -1, -1, 4767, -1, 4769, + 37539, 37540, 37541, 37542, 37543, 37544, 37545, 37546, + 37547, 37548, 4781, 4783, 4785, 4787, 4789, 4791, + 4793, 4795, 4797, 4799, 4801, 4803, 4805, -1, + 4807, 4809, 4811, 4813, 4815, -1, 4817, -1, + 4819, 4821, -1, 4823, 4825, -1, 4827, 4829, + 4831, 4833, 4835, 4837, 4839, 4841, 4843, 37613, + 37615, 37616, 37617, 37618, 37619, 37620, 37621, 37622, + 37623, 37624, 37625, 37626, 37627, 37628, 37629, 37630, + 37631, 37632, 37633, 37634, 37635, 37636, 37637, 37638, + 37639, 37640, 37641, 37642, 37643, 37644, 37645, 37646, + 37647, 37648, 37649, 37650, 37651, 37652, 37653, 37654, + 37655, 37656, 37657, 37658, 37659, 37660, 37661, 37662, + 37663, 37664, 37665, 37666, 37667, 37668, 37669, 37670, + 37671, 37672, 37673, 37674, 37675, 37676, 37677, 37678, + 37679, 37680, 37681, 37682, 37683, 37684, 37685, 37686, + 37687, 37688, 37689, 37690, 37691, 37692, 37693, 37694, + 37695, 37696, 37697, 37698, 37699, 37700, 37701, 37702, + 37703, 37704, 37705, 37706, 37707, 37708, 37709, 37710, + 37711, 37712, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 37713, 37714, 37715, 37716, 37717, + 37718, 37719, 37720, 37721, 37722, 37723, 37724, 37725, + 37726, 37727, 37728, 37729, 37730, 37731, 37732, 37733, + 37734, 37735, 37736, 37738, 37740, 37742, 37744, 37746, + 37748, 37750, 37752, 37754, 37756, 37758, 37760, 37762, + 37764, 37766, 37768, 37770, 37772, 37773, 37774, 37775, + 37776, 37778, 37780, 37782, 37784, 37786, 37788, 37790, + 37792, 37794, 37796, 37798, 37800, 37802, 37804, 37806, + 37808, 37810, 37812, 37814, 37816, 37818, 37820, 37822, + 37824, 37826, 37828, 37830, 37832, 37834, 37836, 37838, + 37840, 37842, 37844, 37846, 37848, 37850, 37852, 37854, + 37856, 37858, 37860, 37862, 37864, 37866, 37868, 37870, + 37872, 37874, 37876, 37878, 37880, 37882, 37884, 37886, + 37888, 37890, 37892, 37894, 37896, 37898, 37900, 37902, + 37904, 37906, 37908, 37910, 37912, 37914, 37916, 37918, + 37920, 37922, 37924, 37926, 37928, 37930, 37932, 37934, + 37936, 37938, 37940, 37942, 37944, 37946, 37948, 37950, + 37952, 37954, 37956, 37958, 37960, 37962, 37964, 37967, + 37970, 37973, 37976, 37979, 37982, 37984, 37986, 37988, + 37990, 37992, 37994, 37996, 37998, 38000, 38002, 38004, + 38006, 38008, 38010, 38012, 38014, 38016, 38018, 38020, + 38022, 38024, 38026, 38028, 38030, 38032, 38034, 38036, + 38038, 38040, 38042, 38044, 38046, 38048, 38050, 38052, + 38054, 38056, 38058, 38060, 38062, 38064, 38066, 38068, + 38070, 38072, 38074, 38076, 38078, 38080, 38082, 38084, + 38086, 38088, 38090, 38092, 38094, 38096, 38098, 38100, + 38102, 38104, 38106, 38108, 38110, 38112, 38114, 38116, + 38118, 38120, 38122, 38124, 38126, 38128, 38130, 38132, + 38134, 38136, 38138, 38140, 38142, 38144, 38146, 38148, + 38150, 38152, 38154, 38156, 38158, 38160, 38162, 38164, + 38166, 38168, 38170, 38172, 38174, 38176, 38178, 38180, + 38182, 38184, 38186, 38188, 38190, 38192, 38194, 38196, + 38198, 38200, 38202, 38204, 38206, 38208, 38210, 38212, + 38214, 38216, 38218, 38220, 38222, 38224, 38226, 38228, + 38230, 38232, 38234, 38236, 38238, 38240, 38242, 38244, + 38246, 38248, 38250, 38252, 38254, 38256, 38258, 38260, + 38262, 38264, 38266, 38269, 38272, 38275, 38277, 38279, + 38281, 38283, 38285, 38287, 38289, 38291, 38293, 38295, + 38297, 38299, 38301, 38303, 38305, 38307, 38309, 38311, + 38313, 38315, 38317, 38319, 38321, 38323, 38325, 38327, + 38329, 38331, 38333, 38335, 38337, 38339, 38341, 38343, + 38345, 38347, 38349, 38351, 38353, 38355, 38357, 38359, + 38361, 38363, 38365, 38367, 38369, 38371, 38373, 38375, + 38377, 38379, 38381, 38383, 38385, 38387, 38389, 38391, + 38393, 38395, 38397, 38399, 38401, 38403, 38405, 38407, + 38409, 38411, 38413, 38415, 38417, 38419, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + 38421, 38424, 38427, 38430, 38433, 38436, 38439, 38442, + 38445, 38448, 38451, 38454, 38457, 38460, 38463, 38466, + 38469, 38472, 38475, 38478, 38481, 38484, 38487, 38490, + 38493, 38496, 38499, 38502, 38505, 38508, 38511, 38514, + 38517, 38520, 38523, 38526, 38529, 38532, 38535, 38538, + 38541, 38544, 38547, 38550, 38553, 38556, 38559, 38562, + 38565, 38568, 38571, 38574, 38577, 38580, 38583, 38586, + 38589, 38592, 38595, 38598, 38601, 38604, 38607, 38610, + -1, -1, 38613, 38616, 38619, 38622, 38625, 38628, + 38631, 38634, 38637, 38640, 38643, 38646, 38649, 38652, + 38655, 38658, 38661, 38664, 38667, 38670, 38673, 38676, + 38679, 38682, 38685, 38688, 38691, 38694, 38697, 38700, + 38703, 38706, 38709, 38712, 38715, 38718, 38721, 38724, + 38727, 38730, 38733, 38736, 38739, 38742, 38745, 38748, + 38751, 38754, 38757, 38760, 38763, 38766, 38769, 38772, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + 38775, 38778, 38781, 38785, 38789, 38793, 38797, 38801, + 38805, 38809, 38812, 38830, 38838, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + 38842, 38843, 38844, 38845, 38846, 38847, 38848, 38849, + 38850, 38851, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + 38852, 38853, 38854, 38855, 38856, 38857, 38858, 38859, + 38860, 38861, 38862, 38863, 38864, 38865, 38866, 38867, + 38868, 38869, 38870, 38871, 38872, -1, -1, 38873, + 38874, 38875, 38876, 38877, 38878, 38879, 38880, 38881, + 38882, 38883, 38884, -1, 38885, 38886, 38887, 38888, + 38889, 38890, 38891, 38892, 38893, 38894, 38895, 38896, + 38897, 38898, 38899, 38900, 38901, 38902, 38903, -1, + 38904, 38905, 38906, 38907, -1, -1, -1, -1, + 38908, 38910, 38912, -1, 38914, -1, 38916, 38918, + 38920, 38922, 38924, 38926, 38928, 38930, 38932, 38934, + 38936, 38937, 38938, 38939, 38940, 38941, 38942, 38943, + 38944, 38945, 38946, 38947, 38948, 38949, 38950, 38951, + 38952, 38953, 38954, 38955, 38956, 38957, 38958, 38959, + 38960, 38961, 38962, 38963, 38964, 38965, 38966, 38967, + 38968, 38969, 38970, 38971, 38972, 38973, 38974, 38975, + 38976, 38977, 38978, 38979, 38980, 38981, 38982, 38983, + 38984, 38985, 38986, 38987, 38988, 38989, 38990, 38991, + 38992, 38993, 38994, 38995, 38996, 38997, 38998, 38999, + 39000, 39001, 39002, 39003, 39004, 39005, 39006, 39007, + 39008, 39009, 39010, 39011, 39012, 39013, 39014, 39015, + 39016, 39017, 39018, 39019, 39020, 39021, 39022, 39023, + 39024, 39025, 39026, 39027, 39028, 39029, 39030, 39031, + 39032, 39033, 39034, 39035, 39036, 39037, 39038, 39039, + 39040, 39041, 39042, 39043, 39044, 39045, 39046, 39047, + 39048, 39049, 39050, 39051, 39052, 39053, 39055, 39057, + 39059, 39061, 39063, 39065, 39067, -1, -1, -1, + -1, 39069, 39070, 39071, 39072, 39073, 39074, 39075, + 39076, 39077, 39078, 39079, 39080, 39081, 39082, 39083, + 39084, 39085, 39086, 39087, 39088, 39089, 39090, 39091, + 39092, 39093, 39094, 39095, 39096, 39097, 39098, 39099, + 39100, 39101, 39102, 39103, 39104, 39105, 39106, 39107, + 39108, 39109, 39110, 39111, 39112, 39113, 39114, 39115, + 39116, 39117, 39118, 39119, 39120, 39121, 39122, 39123, + 39124, 39125, 39126, 39127, 39128, 39129, 39130, 39131, + 39132, 39133, 39134, 39135, 39136, 39137, 39138, 39139, + 39140, 39141, 39142, 39143, 39144, 39145, 39146, 39147, + 39148, 39149, 39150, 39151, 39152, 39153, 39154, 39155, + 39156, 39157, 39158, 39159, 39160, 39161, 39162, 39163, + 39164, 39165, 39166, 39167, 39168, 39169, 39170, 39171, + 39172, 39173, 39174, 39175, 39176, 39177, 39178, 39179, + 39180, 39181, 39182, 39183, 39184, 39185, 39186, 39187, + 39188, 39189, 39190, 39191, 39192, 39193, 39194, 39195, + 39196, 39197, 39198, 39199, 39200, 39201, 39202, 39203, + 39204, 39205, 39206, 39207, 39208, 39209, 39210, 39211, + 39212, 39213, 39214, 39215, 39216, 39217, 39218, 39219, + 39220, 39221, 39222, 39223, 39224, 39225, 39226, 39227, + 39228, 39229, 39230, 39231, 39232, 39233, 39234, 39235, + 39236, 39237, 39238, 39239, 39240, 39241, 39242, 39243, + 39244, 39245, 39246, 39247, 39248, 39249, 39250, 39251, + 39252, 39253, 39254, 39255, 39256, 39257, 39258, -1, + -1, -1, 39259, 39260, 39261, 39262, 39263, 39264, + -1, -1, 39265, 39266, 39267, 39268, 39269, 39270, + -1, -1, 39271, 39272, 39273, 39274, 39275, 39276, + -1, -1, 39277, 39278, 39279, -1, -1, -1, + 39280, 39281, 39282, 39283, 39284, 39285, 39286, -1, + 39287, 39288, 39289, 39290, 39291, 39292, 39293, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 6526, 6528, + 6530, 6532, 6534, 6536, 6538, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 6540, 6542, 6544, 6546, 6548, + 6550, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + 39320, 39321, 39322, 39323, 39324, 39325, 39326, 39327, + 39328, 39329, 39330, 39331, 39332, 39333, 39334, 39335, + 39336, 39337, 39338, 39339, 39340, 39341, 39342, 39343, + 39344, 39345, 39346, 39347, 39348, 39349, 39350, 39351, + 39352, 39353, 39354, 39355, 39356, 39357, 39358, 39359, + 39360, 39361, 39362, 39363, 39364, 39365, 39366, 39367, + 39368, 39369, 39370, 39371, 39372, 39373, 39374, 39375, + 39376, 39377, 39378, 39379, 39380, 39381, 39382, 39383, + 39384, 39385, 39386, 39387, 39388, 39389, 39390, 39391, + 39392, 39393, 39394, 39395, 39396, 39397, 39398, 39399, + 39400, 39401, 39402, 39403, 39404, -1, 39405, 39406, + 39407, 39408, 39409, 39410, 39411, 39412, 39413, 39414, + 39415, 39416, 39417, 39418, 39419, 39420, 39421, 39422, + 39423, 39424, 39425, 39426, 39427, 39428, 39429, 39430, + 39431, 39432, 39433, 39434, 39435, 39436, 39437, 39438, + 39439, 39440, 39441, 39442, 39443, 39444, 39445, 39446, + 39447, 39448, 39449, 39450, 39451, 39452, 39453, 39454, + 39455, 39456, 39457, 39458, 39459, 39460, 39461, 39462, + 39463, 39464, 39465, 39466, 39467, 39468, 39469, 39470, + 39471, 39472, 39473, 39474, 39475, -1, 39476, 39477, + -1, -1, 39478, -1, -1, 39479, 39480, -1, + -1, 39481, 39482, 39483, 39484, -1, 39485, 39486, + 39487, 39488, 39489, 39490, 39491, 39492, 39493, 39494, + 39495, 39496, -1, 39497, -1, 39498, 39499, 39500, + 39501, 39502, 39503, 39504, -1, 39505, 39506, 39507, + 39508, 39509, 39510, 39511, 39512, 39513, 39514, 39515, + 39516, 39517, 39518, 39519, 39520, 39521, 39522, 39523, + 39524, 39525, 39526, 39527, 39528, 39529, 39530, 39531, + 39532, 39533, 39534, 39535, 39536, 39537, 39538, 39539, + 39540, 39541, 39542, 39543, 39544, 39545, 39546, 39547, + 39548, 39549, 39550, 39551, 39552, 39553, 39554, 39555, + 39556, 39557, 39558, 39559, 39560, 39561, 39562, 39563, + 39564, 39565, 39566, 39567, 39568, 39569, -1, 39570, + 39571, 39572, 39573, -1, -1, 39574, 39575, 39576, + 39577, 39578, 39579, 39580, 39581, -1, 39582, 39583, + 39584, 39585, 39586, 39587, 39588, -1, 39589, 39590, + 39591, 39592, 39593, 39594, 39595, 39596, 39597, 39598, + 39599, 39600, 39601, 39602, 39603, 39604, 39605, 39606, + 39607, 39608, 39609, 39610, 39611, 39612, 39613, 39614, + 39615, 39616, -1, 39617, 39618, 39619, 39620, -1, + 39621, 39622, 39623, 39624, 39625, -1, 39626, -1, + -1, -1, 39627, 39628, 39629, 39630, 39631, 39632, + 39633, -1, 39634, 39635, 39636, 39637, 39638, 39639, + 39640, 39641, 39642, 39643, 39644, 39645, 39646, 39647, + 39648, 39649, 39650, 39651, 39652, 39653, 39654, 39655, + 39656, 39657, 39658, 39659, 39660, 39661, 39662, 39663, + 39664, 39665, 39666, 39667, 39668, 39669, 39670, 39671, + 39672, 39673, 39674, 39675, 39676, 39677, 39678, 39679, + 39680, 39681, 39682, 39683, 39684, 39685, 39686, 39687, + 39688, 39689, 39690, 39691, 39692, 39693, 39694, 39695, + 39696, 39697, 39698, 39699, 39700, 39701, 39702, 39703, + 39704, 39705, 39706, 39707, 39708, 39709, 39710, 39711, + 39712, 39713, 39714, 39715, 39716, 39717, 39718, 39719, + 39720, 39721, 39722, 39723, 39724, 39725, 39726, 39727, + 39728, 39729, 39730, 39731, 39732, 39733, 39734, 39735, + 39736, 39737, 39738, 39739, 39740, 39741, 39742, 39743, + 39744, 39745, 39746, 39747, 39748, 39749, 39750, 39751, + 39752, 39753, 39754, 39755, 39756, 39757, 39758, 39759, + 39760, 39761, 39762, 39763, 39764, 39765, 39766, 39767, + 39768, 39769, 39770, 39771, 39772, 39773, 39774, 39775, + 39776, 39777, 39778, 39779, 39780, 39781, 39782, 39783, + 39784, 39785, 39786, 39787, 39788, 39789, 39790, 39791, + 39792, 39793, 39794, 39795, 39796, 39797, 39798, 39799, + 39800, 39801, 39802, 39803, 39804, 39805, 39806, 39807, + 39808, 39809, 39810, 39811, 39812, 39813, 39814, 39815, + 39816, 39817, 39818, 39819, 39820, 39821, 39822, 39823, + 39824, 39825, 39826, 39827, 39828, 39829, 39830, 39831, + 39832, 39833, 39834, 39835, 39836, 39837, 39838, 39839, + 39840, 39841, 39842, 39843, 39844, 39845, 39846, 39847, + 39848, 39849, 39850, 39851, 39852, 39853, 39854, 39855, + 39856, 39857, 39858, 39859, 39860, 39861, 39862, 39863, + 39864, 39865, 39866, 39867, 39868, 39869, 39870, 39871, + 39872, 39873, 39874, 39875, 39876, 39877, 39878, 39879, + 39880, 39881, 39882, 39883, 39884, 39885, 39886, 39887, + 39888, 39889, 39890, 39891, 39892, 39893, 39894, 39895, + 39896, 39897, 39898, 39899, 39900, 39901, 39902, 39903, + 39904, 39905, 39906, 39907, 39908, 39909, 39910, 39911, + 39912, 39913, 39914, 39915, 39916, 39917, 39918, 39919, + 39920, 39921, 39922, 39923, 39924, 39925, 39926, 39927, + 39928, 39929, 39930, 39931, 39932, 39933, 39934, 39935, + 39936, 39937, 39938, 39939, 39940, 39941, 39942, 39943, + 39944, 39945, 39946, 39947, 39948, 39949, 39950, 39951, + 39952, 39953, 39954, 39955, 39956, 39957, 39958, 39959, + 39960, 39961, 39962, 39963, 39964, 39965, 39966, 39967, + 39968, 39969, 39970, 39971, 39972, 39973, -1, -1, + 39974, 39975, 39976, 39977, 39978, 39979, 39980, 39981, + 39982, 39983, 39984, 39985, 39986, 39987, 39988, 39989, + 39990, 39991, 39992, 39993, 39994, 39995, 39996, 39997, + 39998, 39999, 40000, 40001, 40002, 40003, 40004, 40005, + 40006, 40007, 40008, 40009, 40010, 40011, 40012, 40013, + 40014, 40015, 40016, 40017, 40018, 40019, 40020, 40021, + 40022, 40023, 40024, 40025, 40026, 40027, 40028, 40029, + 40030, 40031, 40032, 40033, 40034, 40035, 40036, 40037, + 40038, 40039, 40040, 40041, 40042, 40043, 40044, 40045, + 40046, 40047, 40048, 40049, 40050, 40051, 40052, 40053, + 40054, 40055, 40056, 40057, 40058, 40059, 40060, 40061, + 40062, 40063, 40064, 40065, 40066, 40067, 40068, 40069, + 40070, 40071, 40072, 40073, 40074, 40075, 40076, 40077, + 40078, 40079, 40080, 40081, 40082, 40083, 40084, 40085, + 40086, 40087, 40088, 40089, 40090, 40091, 40092, 40093, + 40094, 40095, 40096, 40097, 40098, 40099, 40100, 40101, + 40102, 40103, 40104, 40105, 40106, 40107, 40108, 40109, + 40110, 40111, 40112, 40113, 40114, 40115, 40116, 40117, + 40118, 40119, 40120, 40121, 40122, 40123, 40124, 40125, + 40126, 40127, 40128, 40129, 40130, 40131, 40132, 40133, + 40134, 40135, 40136, 40137, 40138, 40139, 40140, 40141, + 40142, 40143, 40144, 40145, 40146, 40147, 40148, 40149, + 40150, 40151, 40152, 40153, 40154, 40155, 40156, 40157, + 40158, 40159, 40160, 40161, 40162, 40163, 40164, 40165, + 40166, 40167, 40168, 40169, 40170, 40171, 40172, 40173, + 40174, 40175, 40176, 40177, 40178, 40179, 40180, 40181, + 40182, 40183, 40184, 40185, 40186, 40187, 40188, 40189, + 40190, 40191, 40192, 40193, 40194, 40195, 40196, 40197, + 40198, 40199, 40200, 40201, 40202, 40203, 40204, 40205, + 40206, 40207, 40208, 40209, 40210, 40211, 40212, 40213, + 40214, 40215, 40216, 40217, 40218, 40219, 40220, 40221, + 40222, 40223, 40224, 40225, 40226, 40227, 40228, 40229, + 40230, 40231, 40232, 40233, 40234, 40235, 40236, 40237, + 40238, 40239, 40240, 40241, 40242, 40243, 40244, 40245, + 40246, 40247, 40248, 40249, 40250, 40251, 40252, 40253, + 40254, 40255, 40256, 40257, 40258, 40259, 40260, 40261, + 40262, 40263, 40264, 40265, -1, -1, 40266, 40267, + 40268, 40269, 40270, 40271, 40272, 40273, 40274, 40275, + 40276, 40277, 40278, 40279, 40280, 40281, 40282, 40283, + 40284, 40285, 40286, 40287, 40288, 40289, 40290, 40291, + 40292, 40293, 40294, 40295, 40296, 40297, 40298, 40299, + 40300, 40301, 40302, 40303, 40304, 40305, 40306, 40307, + 40308, 40309, 40310, 40311, 40312, 40313, 40314, 40315, + 7548, 7549, 7550, 7551, 7552, 7553, 7554, 7555, + 7556, 7557, 7558, 7559, 7560, 7561, 7562, 7563, + 7564, 7565, 7566, 7567, 7568, 7569, 7570, 7571, + 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, 7602, 7603, + 7604, 7605, 7606, 7607, 7608, 7609, 7610, 7611, + 7612, 7613, 7614, 7615, 7616, 7617, 7618, 7619, + 7620, 7621, 7622, 7623, 7624, 7625, 7626, 7627, + 7628, 7629, 7630, 7631, 7632, 7633, 7634, 7635, + 7636, 7637, 7638, 7639, 7640, 7641, 7642, 7643, + 7644, 7645, 7646, 7647, 7648, 7649, 7650, 7651, + 7652, 7653, 7654, 7655, 7656, 7657, 7658, 7659, + 7660, 7661, 7662, 7663, 7664, 7665, 7666, 7667, + 7668, 7669, 7670, 7671, 7672, 7673, 7674, 7675, + 7676, 7677, 7678, 7679, 7680, 7681, 7682, 7683, + 7684, 7685, 7686, 7687, 7688, 7689, 7690, 7691, + 7692, 7693, 7694, 7695, 7696, 7697, 7698, 7699, + 7700, 7701, 7702, 7703, 7704, 7705, 7706, 7707, + 7708, 7709, 7710, 7711, 7712, 7713, 7714, 7715, + 7716, 7717, 7718, 7719, 7720, 7721, 7722, 7723, + 7724, 7725, 7726, 7727, 7728, 7729, 7730, 7731, + 7732, 7733, 7734, 7735, 7736, 7737, 7738, 7739, + 7740, 7741, 7742, 7743, 7744, 7745, 7746, 7747, + 7748, 7749, 7750, 7751, 7752, 7753, 7754, 7755, + 7756, 7757, 7758, 7759, 7760, 7761, 7762, 7763, + 7764, 7765, 7766, 7767, 7768, 7769, 7770, 7771, + 7772, 7773, 7774, 7775, 7776, 7777, 7778, 7779, + 7780, 7781, 7782, 7783, 7784, 7785, 7786, 7787, + 7788, 7789, 7790, 7791, 7792, 7793, 7794, 7795, + 7796, 7797, 7798, 7799, 7800, 7801, 7802, 7803, + 7804, 7805, 7806, 7807, 7808, 7809, 7810, 7811, + 7812, 7813, 7814, 7815, 7816, 7817, 7818, 7819, + 7820, 7821, 7822, 7823, 7824, 7825, 7826, 7827, + 7828, 7829, 7830, 7831, 7832, 7833, 7834, 7835, + 7836, 7837, 7838, 7839, 7840, 7841, 7842, 7843, + 7844, 7845, 7846, 7847, 7848, 7849, 7850, 7851, + 7852, 7853, 7854, 7855, 7856, 7857, 7858, 7859, + 7860, 7861, 7862, 7863, 7864, 7865, 7866, 7867, + 7868, 7869, 7870, 7871, 7872, 7873, 7874, 7875, + 7876, 7877, 7878, 7879, 7880, 7881, 7882, 7883, + 7884, 7885, 7886, 7887, 7888, 7889, 7890, 7891, + 7892, 7893, 7894, 7895, 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, 7927, 7928, 7929, 7930, 7931, + 7932, 7933, 7934, 7935, 7936, 7937, 7938, 7939, + 7940, 7941, 7942, 7943, 7944, 7945, 7946, 7947, + 7948, 7949, 7950, 7951, 7952, 7953, 7954, 7955, + 7956, 7957, 7958, 7959, 7960, 7961, 7962, 7963, + 7964, 7965, 7966, 7967, 7968, 7969, 7970, 7971, + 7972, 7973, 7974, 7975, 7976, 7977, 7978, 7979, + 7980, 7981, 7982, 7983, 7984, 7985, 7986, 7987, + 7988, 7989, 7990, 7991, 7992, 7993, 7994, 7995, + 7996, 7997, 7998, 7999, 8000, 8001, 8002, 8003, + 8004, 8005, 8006, 8007, 8008, 8009, 8010, 8011, + 8012, 8013, 8014, 8015, 8016, 8017, 8018, 8019, + 8020, 8021, 8022, 8023, 8024, 8025, 8026, 8027, + 8028, 8029, 8030, 8031, 8032, 8033, 8034, 8035, + 8036, 8037, 8038, 8039, 8040, 8041, 8042, 8043, + 8044, 8045, 8046, 8047, 8048, 8049, 8050, 8051, + 8052, 8053, 8054, 8055, 8056, 8057, 8058, 8059, + 8060, 8061, 8062, 8063, 8064, 8065, 8066, 8067, + 8068, 8069, 8070, 8071, 8072, 8073, 8074, 8075, + 8076, 8077, 8078, 8079, 8080, 8081, 8082, 8083, + 8084, 8085, 8086, 8087, 8088, 8089, -1, -1 + } +}; diff --git a/lib/uninorm/decomposition.c b/lib/uninorm/decomposition.c new file mode 100644 index 00000000..af030182 --- /dev/null +++ b/lib/uninorm/decomposition.c @@ -0,0 +1,102 @@ +/* Decomposition of Unicode characters. + Copyright (C) 2009 Free Software Foundation, Inc. + Written by Bruno Haible <bruno@clisp.org>, 2009. + + This program is free software: you can redistribute it and/or modify it + under the terms of the GNU Lesser General Public License as published + by the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. */ + +#include <config.h> + +/* Specification. */ +#include "uninorm.h" + +#include "decomposition-table.h" + +int +uc_decomposition (ucs4_t uc, int *decomp_tag, ucs4_t *decomposition) +{ + if (uc >= 0xAC00 && uc < 0xD7A4) + { + /* Hangul syllable. See Unicode standard, chapter 3, section + "Hangul Syllable Decomposition", See also the clarification at + <http://www.unicode.org/versions/Unicode5.1.0/>, section + "Clarification of Hangul Jamo Handling". */ + unsigned int t; + + uc -= 0xAC00; + t = uc % 28; + + *decomp_tag = UC_DECOMP_CANONICAL; + if (t == 0) + { + unsigned int v, l; + + uc = uc / 28; + v = uc % 21; + l = uc / 21; + + decomposition[0] = 0x1100 + l; + decomposition[1] = 0x1161 + v; + return 2; + } + else + { +#if 1 /* Return the pairwise decomposition, not the full decomposition. */ + decomposition[0] = 0xAC00 + uc - t; /* = 0xAC00 + (l * 21 + v) * 28; */ + decomposition[1] = 0x11A7 + t; + return 2; +#else + unsigned int v, l; + + uc = uc / 28; + v = uc % 21; + l = uc / 21; + + decomposition[0] = 0x1100 + l; + decomposition[1] = 0x1161 + v; + decomposition[2] = 0x11A7 + t; + return 3; +#endif + } + } + else if (uc < 0x110000) + { + unsigned short entry = decomp_index (uc); + if (entry != (unsigned short)(-1)) + { + const unsigned char *p; + unsigned int element; + unsigned int length; + + p = &gl_uninorm_decomp_chars_table[3 * (entry & 0x7FFF)]; + element = (p[0] << 16) | (p[1] << 8) | p[2]; + /* The first element has 5 bits for the decomposition type. */ + *decomp_tag = (element >> 18) & 0x1f; + length = 1; + for (;;) + { + /* Every element has an 18 bits wide Unicode code point. */ + *decomposition = element & 0x3ffff; + /* Bit 23 tells whether there are more elements, */ + if ((element & (1 << 23)) == 0) + break; + p += 3; + element = (p[0] << 16) | (p[1] << 8) | p[2]; + decomposition++; + length++; + } + return length; + } + } + return -1; +} diff --git a/lib/uninorm/nfc.c b/lib/uninorm/nfc.c new file mode 100644 index 00000000..c205b166 --- /dev/null +++ b/lib/uninorm/nfc.c @@ -0,0 +1,31 @@ +/* Unicode Normalization Form C. + Copyright (C) 2009 Free Software Foundation, Inc. + Written by Bruno Haible <bruno@clisp.org>, 2009. + + This program is free software: you can redistribute it and/or modify it + under the terms of the GNU Lesser General Public License as published + by the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. */ + +#include <config.h> + +/* Specification. */ +#include "uninorm.h" + +#include "normalize-internal.h" + +const struct unicode_normalization_form uninorm_nfc = + { + NF_IS_COMPOSING, + uc_canonical_decomposition, + uc_composition, + &uninorm_nfd + }; diff --git a/lib/uninorm/nfd.c b/lib/uninorm/nfd.c new file mode 100644 index 00000000..54c98bc2 --- /dev/null +++ b/lib/uninorm/nfd.c @@ -0,0 +1,31 @@ +/* Unicode Normalization Form D. + Copyright (C) 2009 Free Software Foundation, Inc. + Written by Bruno Haible <bruno@clisp.org>, 2009. + + This program is free software: you can redistribute it and/or modify it + under the terms of the GNU Lesser General Public License as published + by the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. */ + +#include <config.h> + +/* Specification. */ +#include "uninorm.h" + +#include "normalize-internal.h" + +const struct unicode_normalization_form uninorm_nfd = + { + 0, + uc_canonical_decomposition, + NULL, + &uninorm_nfd + }; diff --git a/lib/uninorm/nfkc.c b/lib/uninorm/nfkc.c new file mode 100644 index 00000000..1fb52f13 --- /dev/null +++ b/lib/uninorm/nfkc.c @@ -0,0 +1,32 @@ +/* Unicode Normalization Form KC. + Copyright (C) 2009 Free Software Foundation, Inc. + Written by Bruno Haible <bruno@clisp.org>, 2009. + + This program is free software: you can redistribute it and/or modify it + under the terms of the GNU Lesser General Public License as published + by the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. */ + +#include <config.h> + +/* Specification. */ +#include "uninorm.h" + +#include "normalize-internal.h" +#include "decompose-internal.h" + +const struct unicode_normalization_form uninorm_nfkc = + { + NF_IS_COMPAT_DECOMPOSING | NF_IS_COMPOSING, + uc_compat_decomposition, + uc_composition, + &uninorm_nfkd + }; diff --git a/lib/uninorm/nfkd.c b/lib/uninorm/nfkd.c new file mode 100644 index 00000000..871dd647 --- /dev/null +++ b/lib/uninorm/nfkd.c @@ -0,0 +1,32 @@ +/* Unicode Normalization Form KD. + Copyright (C) 2009 Free Software Foundation, Inc. + Written by Bruno Haible <bruno@clisp.org>, 2009. + + This program is free software: you can redistribute it and/or modify it + under the terms of the GNU Lesser General Public License as published + by the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. */ + +#include <config.h> + +/* Specification. */ +#include "uninorm.h" + +#include "normalize-internal.h" +#include "decompose-internal.h" + +const struct unicode_normalization_form uninorm_nfkd = + { + NF_IS_COMPAT_DECOMPOSING, + uc_compat_decomposition, + NULL, + &uninorm_nfkd + }; diff --git a/lib/uninorm/normalize-internal.h b/lib/uninorm/normalize-internal.h new file mode 100644 index 00000000..0b346c65 --- /dev/null +++ b/lib/uninorm/normalize-internal.h @@ -0,0 +1,37 @@ +/* Normalization of Unicode strings. + Copyright (C) 2009 Free Software Foundation, Inc. + Written by Bruno Haible <bruno@clisp.org>, 2009. + + This program is free software: you can redistribute it and/or modify it + under the terms of the GNU Lesser General Public License as published + by the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. */ + +#include <stddef.h> + +#include "unitypes.h" + +/* Complete definition of normalization form descriptor. */ +struct unicode_normalization_form +{ + /* Bit mask containing meta-information. + This must be the first field. */ + unsigned int description; + #define NF_IS_COMPAT_DECOMPOSING (1 << 0) + #define NF_IS_COMPOSING (1 << 1) + /* Function that decomposes a Unicode character. */ + int (*decomposer) (ucs4_t uc, ucs4_t *decomposition); + /* Function that combines two Unicode characters, a starter and another + character. */ + ucs4_t (*composer) (ucs4_t uc1, ucs4_t uc2); + /* Decomposing variant. */ + const struct unicode_normalization_form *decomposing_variant; +}; diff --git a/lib/uninorm/u-normalize-internal.h b/lib/uninorm/u-normalize-internal.h new file mode 100644 index 00000000..70c32551 --- /dev/null +++ b/lib/uninorm/u-normalize-internal.h @@ -0,0 +1,375 @@ +/* Decomposition and composition of Unicode strings. + Copyright (C) 2009 Free Software Foundation, Inc. + Written by Bruno Haible <bruno@clisp.org>, 2009. + + This program is free software: you can redistribute it and/or modify it + under the terms of the GNU Lesser General Public License as published + by the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. */ + +UNIT * +FUNC (uninorm_t nf, const UNIT *s, size_t n, + UNIT *resultbuf, size_t *lengthp) +{ + int (*decomposer) (ucs4_t uc, ucs4_t *decomposition) = nf->decomposer; + ucs4_t (*composer) (ucs4_t uc1, ucs4_t uc2) = nf->composer; + + /* The result being accumulated. */ + UNIT *result; + size_t length; + size_t allocated; + /* The buffer for sorting. */ + #define SORTBUF_PREALLOCATED 64 + struct ucs4_with_ccc sortbuf_preallocated[2 * SORTBUF_PREALLOCATED]; + struct ucs4_with_ccc *sortbuf; /* array of size 2 * sortbuf_allocated */ + size_t sortbuf_allocated; + size_t sortbuf_count; + + /* Initialize the accumulator. */ + if (resultbuf == NULL) + { + result = NULL; + allocated = 0; + } + else + { + result = resultbuf; + allocated = *lengthp; + } + length = 0; + + /* Initialize the buffer for sorting. */ + sortbuf = sortbuf_preallocated; + sortbuf_allocated = SORTBUF_PREALLOCATED; + sortbuf_count = 0; + + { + const UNIT *s_end = s + n; + + for (;;) + { + int count; + ucs4_t decomposed[UC_DECOMPOSITION_MAX_LENGTH]; + int decomposed_count; + int i; + + if (s < s_end) + { + /* Fetch the next character. */ + count = U_MBTOUC_UNSAFE (&decomposed[0], s, s_end - s); + decomposed_count = 1; + + /* Decompose it, recursively. + It would be possible to precompute the recursive decomposition + and store it in a table. But this would significantly increase + the size of the decomposition tables, because for example for + U+1FC1 the recursive canonical decomposition and the recursive + compatibility decomposition are different. */ + { + int curr; + + for (curr = 0; curr < decomposed_count; ) + { + /* Invariant: decomposed[0..curr-1] is fully decomposed, i.e. + all elements are atomic. */ + ucs4_t curr_decomposed[UC_DECOMPOSITION_MAX_LENGTH]; + int curr_decomposed_count; + + curr_decomposed_count = decomposer (decomposed[curr], curr_decomposed); + if (curr_decomposed_count >= 0) + { + /* Move curr_decomposed[0..curr_decomposed_count-1] over + decomposed[curr], making room. It's not worth using + memcpy() here, since the counts are so small. */ + int shift = curr_decomposed_count - 1; + + if (shift < 0) + abort (); + if (shift > 0) + { + int j; + + decomposed_count += shift; + if (decomposed_count > UC_DECOMPOSITION_MAX_LENGTH) + abort (); + for (j = decomposed_count - 1 - shift; j > curr; j--) + decomposed[j + shift] = decomposed[j]; + } + for (; shift >= 0; shift--) + decomposed[curr + shift] = curr_decomposed[shift]; + } + else + { + /* decomposed[curr] is atomic. */ + curr++; + } + } + } + } + else + { + count = 0; + decomposed_count = 0; + } + + i = 0; + for (;;) + { + ucs4_t uc; + int ccc; + + if (s < s_end) + { + /* Fetch the next character from the decomposition. */ + if (i == decomposed_count) + break; + uc = decomposed[i]; + ccc = uc_combining_class (uc); + } + else + { + /* End of string reached. */ + uc = 0; + ccc = 0; + } + + if (ccc == 0) + { + size_t j; + + /* Apply the canonical ordering algorithm to the accumulated + sequence of characters. */ + if (sortbuf_count > 1) + gl_uninorm_decompose_merge_sort_inplace (sortbuf, sortbuf_count, + sortbuf + sortbuf_count); + + if (composer != NULL) + { + /* Attempt to combine decomposed characters, as specified + in the Unicode Standard Annex #15 "Unicode Normalization + Forms". We need to check + 1. whether the first accumulated character is a + "starter" (i.e. has ccc = 0). This is usually the + case. But when the string starts with a + non-starter, the sortbuf also starts with a + non-starter. Btw, this check could also be + omitted, because the composition table has only + entries (code1, code2) for which code1 is a + starter; if the first accumulated character is not + a starter, no lookup will succeed. + 2. If the sortbuf has more than one character, check + for each of these characters that are not "blocked" + from the starter (i.e. have a ccc that is higher + than the ccc of the previous character) whether it + can be combined with the first character. + 3. If only one character is left in sortbuf, check + whether it can be combined with the next character + (also a starter). */ + if (sortbuf_count > 0 && sortbuf[0].ccc == 0) + { + for (j = 1; j < sortbuf_count; ) + { + if (sortbuf[j].ccc > sortbuf[j - 1].ccc) + { + ucs4_t combined = + composer (sortbuf[0].code, sortbuf[j].code); + if (combined) + { + size_t k; + + sortbuf[0].code = combined; + /* sortbuf[0].ccc = 0, still valid. */ + for (k = j + 1; k < sortbuf_count; k++) + sortbuf[k - 1] = sortbuf[k]; + sortbuf_count--; + continue; + } + } + j++; + } + if (s < s_end && sortbuf_count == 1) + { + ucs4_t combined = + composer (sortbuf[0].code, uc); + if (combined) + { + uc = combined; + ccc = 0; + /* uc could be further combined with subsequent + characters. So don't put it into sortbuf[0] in + this round, only in the next round. */ + sortbuf_count = 0; + } + } + } + } + + for (j = 0; j < sortbuf_count; j++) + { + ucs4_t muc = sortbuf[j].code; + + /* Append muc to the result accumulator. */ + if (length < allocated) + { + int ret = + U_UCTOMB (result + length, muc, allocated - length); + if (ret == -1) + { + errno = EINVAL; + goto fail; + } + if (ret >= 0) + { + length += ret; + goto done_appending; + } + } + { + size_t old_allocated = allocated; + size_t new_allocated = 2 * old_allocated; + if (new_allocated < 64) + new_allocated = 64; + if (new_allocated < old_allocated) /* integer overflow? */ + abort (); + { + UNIT *larger_result; + if (result == NULL) + { + larger_result = + (UNIT *) malloc (new_allocated * sizeof (UNIT)); + if (larger_result == NULL) + { + errno = ENOMEM; + goto fail; + } + } + else if (result == resultbuf) + { + larger_result = + (UNIT *) malloc (new_allocated * sizeof (UNIT)); + if (larger_result == NULL) + { + errno = ENOMEM; + goto fail; + } + U_CPY (larger_result, resultbuf, length); + } + else + { + larger_result = + (UNIT *) realloc (result, new_allocated * sizeof (UNIT)); + if (larger_result == NULL) + { + errno = ENOMEM; + goto fail; + } + } + result = larger_result; + allocated = new_allocated; + { + int ret = + U_UCTOMB (result + length, muc, allocated - length); + if (ret == -1) + { + errno = EINVAL; + goto fail; + } + if (ret < 0) + abort (); + length += ret; + goto done_appending; + } + } + } + done_appending: ; + } + + /* sortbuf is now empty. */ + sortbuf_count = 0; + } + + if (!(s < s_end)) + /* End of string reached. */ + break; + + /* Append (uc, ccc) to sortbuf. */ + if (sortbuf_count == sortbuf_allocated) + { + struct ucs4_with_ccc *new_sortbuf; + + sortbuf_allocated = 2 * sortbuf_allocated; + if (sortbuf_allocated < sortbuf_count) /* integer overflow? */ + abort (); + new_sortbuf = + (struct ucs4_with_ccc *) malloc (2 * sortbuf_allocated * sizeof (struct ucs4_with_ccc)); + memcpy (new_sortbuf, sortbuf, + sortbuf_count * sizeof (struct ucs4_with_ccc)); + if (sortbuf != sortbuf_preallocated) + free (sortbuf); + sortbuf = new_sortbuf; + } + sortbuf[sortbuf_count].code = uc; + sortbuf[sortbuf_count].ccc = ccc; + sortbuf_count++; + + i++; + } + + if (!(s < s_end)) + /* End of string reached. */ + break; + + s += count; + } + } + + if (length == 0) + { + if (result == NULL) + { + /* Return a non-NULL value. NULL means error. */ + result = (UNIT *) malloc (1); + if (result == NULL) + { + errno = ENOMEM; + goto fail; + } + } + } + else if (result != resultbuf && length < allocated) + { + /* Shrink the allocated memory if possible. */ + UNIT *memory; + + memory = (UNIT *) realloc (result, length * sizeof (UNIT)); + if (memory != NULL) + result = memory; + } + + if (sortbuf_count > 0) + abort (); + if (sortbuf != sortbuf_preallocated) + free (sortbuf); + + *lengthp = length; + return result; + + fail: + { + int saved_errno = errno; + if (sortbuf != sortbuf_preallocated) + free (sortbuf); + if (result != resultbuf) + free (result); + errno = saved_errno; + } + return NULL; +} diff --git a/lib/uninorm/u-normcmp.h b/lib/uninorm/u-normcmp.h new file mode 100644 index 00000000..66164406 --- /dev/null +++ b/lib/uninorm/u-normcmp.h @@ -0,0 +1,64 @@ +/* Normalization insensitive comparison of Unicode strings. + Copyright (C) 2009 Free Software Foundation, Inc. + Written by Bruno Haible <bruno@clisp.org>, 2009. + + This program is free software: you can redistribute it and/or modify it + under the terms of the GNU Lesser General Public License as published + by the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. */ + +int +FUNC (const UNIT *s1, size_t n1, const UNIT *s2, size_t n2, + uninorm_t nf, int *resultp) +{ + UNIT buf1[2048 / sizeof (UNIT)]; + UNIT buf2[2048 / sizeof (UNIT)]; + UNIT *norms1; + size_t norms1_length; + UNIT *norms2; + size_t norms2_length; + int cmp; + + /* Normalize S1. */ + norms1_length = sizeof (buf1) / sizeof (UNIT); + norms1 = U_NORMALIZE (nf, s1, n1, buf1, &norms1_length); + if (norms1 == NULL) + /* errno is set here. */ + return -1; + + /* Normalize S2. */ + norms2_length = sizeof (buf2) / sizeof (UNIT); + norms2 = U_NORMALIZE (nf, s2, n2, buf2, &norms2_length); + if (norms2 == NULL) + { + if (norms1 != buf1) + { + int saved_errno = errno; + free (norms1); + errno = saved_errno; + } + return -1; + } + + /* Compare the normalized strings. */ + cmp = U_CMP2 (norms1, norms1_length, norms2, norms2_length); + if (cmp > 0) + cmp = 1; + else if (cmp < 0) + cmp = -1; + + if (norms2 != buf2) + free (norms2); + if (norms1 != buf1) + free (norms1); + *resultp = cmp; + return 0; +} diff --git a/lib/uninorm/u-normcoll.h b/lib/uninorm/u-normcoll.h new file mode 100644 index 00000000..e30880b0 --- /dev/null +++ b/lib/uninorm/u-normcoll.h @@ -0,0 +1,65 @@ +/* Locale dependent, normalization insensitive comparison of Unicode strings. + Copyright (C) 2009 Free Software Foundation, Inc. + Written by Bruno Haible <bruno@clisp.org>, 2009. + + This program is free software: you can redistribute it and/or modify it + under the terms of the GNU Lesser General Public License as published + by the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. */ + +int +FUNC (const UNIT *s1, size_t n1, const UNIT *s2, size_t n2, + uninorm_t nf, int *resultp) +{ + char buf1[2048]; + char buf2[2048]; + char *transformed1; + size_t transformed1_length; + char *transformed2; + size_t transformed2_length; + int cmp; + + /* Normalize and transform S1. */ + transformed1_length = sizeof (buf1); + transformed1 = U_NORMXFRM (s1, n1, nf, buf1, &transformed1_length); + if (transformed1 == NULL) + /* errno is set here. */ + return -1; + + /* Normalize and transform S2. */ + transformed2_length = sizeof (buf2); + transformed2 = U_NORMXFRM (s2, n2, nf, buf2, &transformed2_length); + if (transformed2 == NULL) + { + if (transformed1 != buf1) + { + int saved_errno = errno; + free (transformed1); + errno = saved_errno; + } + return -1; + } + + /* Compare the transformed strings. */ + cmp = memcmp2 (transformed1, transformed1_length, + transformed2, transformed2_length); + if (cmp < 0) + cmp = -1; + else if (cmp > 0) + cmp = 1; + + if (transformed2 != buf2) + free (transformed2); + if (transformed1 != buf1) + free (transformed1); + *resultp = cmp; + return 0; +} diff --git a/lib/uninorm/u-normxfrm.h b/lib/uninorm/u-normxfrm.h new file mode 100644 index 00000000..6ed1e3c3 --- /dev/null +++ b/lib/uninorm/u-normxfrm.h @@ -0,0 +1,87 @@ +/* Locale dependent transformation for comparison of Unicode strings. + Copyright (C) 2009 Free Software Foundation, Inc. + Written by Bruno Haible <bruno@clisp.org>, 2009. + + This program is free software: you can redistribute it and/or modify it + under the terms of the GNU Lesser General Public License as published + by the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. */ + +char * +FUNC (const UNIT *s, size_t n, uninorm_t nf, + char *resultbuf, size_t *lengthp) +{ + UNIT normsbuf[2048 / sizeof (UNIT)]; + UNIT *norms; + size_t norms_length; + char convsbuf[2048]; + char *convs; + size_t convs_length; + char *result; + + /* Normalize the Unicode string. */ + norms_length = sizeof (normsbuf) / sizeof (UNIT); + norms = U_NORMALIZE (nf, s, n, normsbuf, &norms_length); + if (norms == NULL) + /* errno is set here. */ + return NULL; + + /* Convert it to locale encoding. */ + convs_length = sizeof (convsbuf) - 1; + convs = U_CONV_TO_ENCODING (locale_charset (), + iconveh_error, + norms, norms_length, + NULL, + convsbuf, &convs_length); + if (convs == NULL) + { + if (norms != normsbuf) + { + int saved_errno = errno; + free (norms); + errno = saved_errno; + } + return NULL; + } + + if (norms != normsbuf) + free (norms); + + /* Ensure one more byte is available. */ + if (convs != convsbuf) + { + char *memory = (char *) realloc (convs, convs_length + 1); + if (memory == NULL) + { + free (convs); + errno = ENOMEM; + return NULL; + } + convs = memory; + } + + /* Apply locale dependent transformations for comparison. */ + result = memxfrm (convs, convs_length, resultbuf, lengthp); + if (result == NULL) + { + if (convs != convsbuf) + { + int saved_errno = errno; + free (convs); + errno = saved_errno; + } + return NULL; + } + + if (convs != convsbuf) + free (convs); + return result; +} diff --git a/lib/uninorm/u16-normalize.c b/lib/uninorm/u16-normalize.c new file mode 100644 index 00000000..86334d53 --- /dev/null +++ b/lib/uninorm/u16-normalize.c @@ -0,0 +1,38 @@ +/* Normalization of UTF-16 strings. + Copyright (C) 2009 Free Software Foundation, Inc. + Written by Bruno Haible <bruno@clisp.org>, 2009. + + This program is free software: you can redistribute it and/or modify it + under the terms of the GNU Lesser General Public License as published + by the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. */ + +#include <config.h> + +/* Specification. */ +#include "uninorm.h" + +#include <errno.h> +#include <stddef.h> +#include <stdlib.h> +#include <string.h> + +#include "unistr.h" +#include "unictype.h" +#include "normalize-internal.h" +#include "decompose-internal.h" + +#define FUNC u16_normalize +#define UNIT uint16_t +#define U_MBTOUC_UNSAFE u16_mbtouc_unsafe +#define U_UCTOMB u16_uctomb +#define U_CPY u16_cpy +#include "u-normalize-internal.h" diff --git a/lib/uninorm/u16-normcmp.c b/lib/uninorm/u16-normcmp.c new file mode 100644 index 00000000..c66cc1be --- /dev/null +++ b/lib/uninorm/u16-normcmp.c @@ -0,0 +1,33 @@ +/* Normalization insensitive comparison of UTF-16 strings. + Copyright (C) 2009 Free Software Foundation, Inc. + Written by Bruno Haible <bruno@clisp.org>, 2009. + + This program is free software: you can redistribute it and/or modify it + under the terms of the GNU Lesser General Public License as published + by the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. */ + +#include <config.h> + +/* Specification. */ +#include "uninorm.h" + +#include <errno.h> +#include <stdlib.h> + +#include "minmax.h" +#include "unistr.h" + +#define FUNC u16_normcmp +#define UNIT uint16_t +#define U_NORMALIZE u16_normalize +#define U_CMP2 u16_cmp2 +#include "u-normcmp.h" diff --git a/lib/uninorm/u16-normcoll.c b/lib/uninorm/u16-normcoll.c new file mode 100644 index 00000000..a4f76c1b --- /dev/null +++ b/lib/uninorm/u16-normcoll.c @@ -0,0 +1,31 @@ +/* Locale dependent, normalization insensitive comparison of UTF-16 strings. + Copyright (C) 2009 Free Software Foundation, Inc. + Written by Bruno Haible <bruno@clisp.org>, 2009. + + This program is free software: you can redistribute it and/or modify it + under the terms of the GNU Lesser General Public License as published + by the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. */ + +#include <config.h> + +/* Specification. */ +#include "uninorm.h" + +#include <errno.h> +#include <stdlib.h> + +#include "memcmp2.h" + +#define FUNC u16_normcoll +#define UNIT uint16_t +#define U_NORMXFRM u16_normxfrm +#include "u-normcoll.h" diff --git a/lib/uninorm/u16-normxfrm.c b/lib/uninorm/u16-normxfrm.c new file mode 100644 index 00000000..cc22d8e3 --- /dev/null +++ b/lib/uninorm/u16-normxfrm.c @@ -0,0 +1,34 @@ +/* Locale dependent transformation for comparison of UTF-16 strings. + Copyright (C) 2009 Free Software Foundation, Inc. + Written by Bruno Haible <bruno@clisp.org>, 2009. + + This program is free software: you can redistribute it and/or modify it + under the terms of the GNU Lesser General Public License as published + by the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. */ + +#include <config.h> + +/* Specification. */ +#include "uninorm.h" + +#include <errno.h> +#include <stdlib.h> + +#include "localcharset.h" +#include "uniconv.h" +#include "memxfrm.h" + +#define FUNC u16_normxfrm +#define UNIT uint16_t +#define U_NORMALIZE u16_normalize +#define U_CONV_TO_ENCODING u16_conv_to_encoding +#include "u-normxfrm.h" diff --git a/lib/uninorm/u32-normalize.c b/lib/uninorm/u32-normalize.c new file mode 100644 index 00000000..6549423f --- /dev/null +++ b/lib/uninorm/u32-normalize.c @@ -0,0 +1,38 @@ +/* Normalization of UTF-32 strings. + Copyright (C) 2009 Free Software Foundation, Inc. + Written by Bruno Haible <bruno@clisp.org>, 2009. + + This program is free software: you can redistribute it and/or modify it + under the terms of the GNU Lesser General Public License as published + by the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. */ + +#include <config.h> + +/* Specification. */ +#include "uninorm.h" + +#include <errno.h> +#include <stddef.h> +#include <stdlib.h> +#include <string.h> + +#include "unistr.h" +#include "unictype.h" +#include "normalize-internal.h" +#include "decompose-internal.h" + +#define FUNC u32_normalize +#define UNIT uint32_t +#define U_MBTOUC_UNSAFE u32_mbtouc_unsafe +#define U_UCTOMB u32_uctomb +#define U_CPY u32_cpy +#include "u-normalize-internal.h" diff --git a/lib/uninorm/u32-normcmp.c b/lib/uninorm/u32-normcmp.c new file mode 100644 index 00000000..58f890d6 --- /dev/null +++ b/lib/uninorm/u32-normcmp.c @@ -0,0 +1,33 @@ +/* Normalization insensitive comparison of UTF-32 strings. + Copyright (C) 2009 Free Software Foundation, Inc. + Written by Bruno Haible <bruno@clisp.org>, 2009. + + This program is free software: you can redistribute it and/or modify it + under the terms of the GNU Lesser General Public License as published + by the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. */ + +#include <config.h> + +/* Specification. */ +#include "uninorm.h" + +#include <errno.h> +#include <stdlib.h> + +#include "minmax.h" +#include "unistr.h" + +#define FUNC u32_normcmp +#define UNIT uint32_t +#define U_NORMALIZE u32_normalize +#define U_CMP2 u32_cmp2 +#include "u-normcmp.h" diff --git a/lib/uninorm/u32-normcoll.c b/lib/uninorm/u32-normcoll.c new file mode 100644 index 00000000..0343f760 --- /dev/null +++ b/lib/uninorm/u32-normcoll.c @@ -0,0 +1,31 @@ +/* Locale dependent, normalization insensitive comparison of UTF-32 strings. + Copyright (C) 2009 Free Software Foundation, Inc. + Written by Bruno Haible <bruno@clisp.org>, 2009. + + This program is free software: you can redistribute it and/or modify it + under the terms of the GNU Lesser General Public License as published + by the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. */ + +#include <config.h> + +/* Specification. */ +#include "uninorm.h" + +#include <errno.h> +#include <stdlib.h> + +#include "memcmp2.h" + +#define FUNC u32_normcoll +#define UNIT uint32_t +#define U_NORMXFRM u32_normxfrm +#include "u-normcoll.h" diff --git a/lib/uninorm/u32-normxfrm.c b/lib/uninorm/u32-normxfrm.c new file mode 100644 index 00000000..4b4dbc05 --- /dev/null +++ b/lib/uninorm/u32-normxfrm.c @@ -0,0 +1,34 @@ +/* Locale dependent transformation for comparison of UTF-32 strings. + Copyright (C) 2009 Free Software Foundation, Inc. + Written by Bruno Haible <bruno@clisp.org>, 2009. + + This program is free software: you can redistribute it and/or modify it + under the terms of the GNU Lesser General Public License as published + by the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. */ + +#include <config.h> + +/* Specification. */ +#include "uninorm.h" + +#include <errno.h> +#include <stdlib.h> + +#include "localcharset.h" +#include "uniconv.h" +#include "memxfrm.h" + +#define FUNC u32_normxfrm +#define UNIT uint32_t +#define U_NORMALIZE u32_normalize +#define U_CONV_TO_ENCODING u32_conv_to_encoding +#include "u-normxfrm.h" diff --git a/lib/uninorm/u8-normalize.c b/lib/uninorm/u8-normalize.c new file mode 100644 index 00000000..7e003ec2 --- /dev/null +++ b/lib/uninorm/u8-normalize.c @@ -0,0 +1,38 @@ +/* Normalization of UTF-8 strings. + Copyright (C) 2009 Free Software Foundation, Inc. + Written by Bruno Haible <bruno@clisp.org>, 2009. + + This program is free software: you can redistribute it and/or modify it + under the terms of the GNU Lesser General Public License as published + by the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. */ + +#include <config.h> + +/* Specification. */ +#include "uninorm.h" + +#include <errno.h> +#include <stddef.h> +#include <stdlib.h> +#include <string.h> + +#include "unistr.h" +#include "unictype.h" +#include "normalize-internal.h" +#include "decompose-internal.h" + +#define FUNC u8_normalize +#define UNIT uint8_t +#define U_MBTOUC_UNSAFE u8_mbtouc_unsafe +#define U_UCTOMB u8_uctomb +#define U_CPY u8_cpy +#include "u-normalize-internal.h" diff --git a/lib/uninorm/u8-normcmp.c b/lib/uninorm/u8-normcmp.c new file mode 100644 index 00000000..6994f6c5 --- /dev/null +++ b/lib/uninorm/u8-normcmp.c @@ -0,0 +1,33 @@ +/* Normalization insensitive comparison of UTF-8 strings. + Copyright (C) 2009 Free Software Foundation, Inc. + Written by Bruno Haible <bruno@clisp.org>, 2009. + + This program is free software: you can redistribute it and/or modify it + under the terms of the GNU Lesser General Public License as published + by the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. */ + +#include <config.h> + +/* Specification. */ +#include "uninorm.h" + +#include <errno.h> +#include <stdlib.h> + +#include "minmax.h" +#include "unistr.h" + +#define FUNC u8_normcmp +#define UNIT uint8_t +#define U_NORMALIZE u8_normalize +#define U_CMP2 u8_cmp2 +#include "u-normcmp.h" diff --git a/lib/uninorm/u8-normcoll.c b/lib/uninorm/u8-normcoll.c new file mode 100644 index 00000000..4d163d41 --- /dev/null +++ b/lib/uninorm/u8-normcoll.c @@ -0,0 +1,31 @@ +/* Locale dependent, normalization insensitive comparison of UTF-8 strings. + Copyright (C) 2009 Free Software Foundation, Inc. + Written by Bruno Haible <bruno@clisp.org>, 2009. + + This program is free software: you can redistribute it and/or modify it + under the terms of the GNU Lesser General Public License as published + by the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. */ + +#include <config.h> + +/* Specification. */ +#include "uninorm.h" + +#include <errno.h> +#include <stdlib.h> + +#include "memcmp2.h" + +#define FUNC u8_normcoll +#define UNIT uint8_t +#define U_NORMXFRM u8_normxfrm +#include "u-normcoll.h" diff --git a/lib/uninorm/u8-normxfrm.c b/lib/uninorm/u8-normxfrm.c new file mode 100644 index 00000000..31da05d1 --- /dev/null +++ b/lib/uninorm/u8-normxfrm.c @@ -0,0 +1,34 @@ +/* Locale dependent transformation for comparison of UTF-8 strings. + Copyright (C) 2009 Free Software Foundation, Inc. + Written by Bruno Haible <bruno@clisp.org>, 2009. + + This program is free software: you can redistribute it and/or modify it + under the terms of the GNU Lesser General Public License as published + by the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. */ + +#include <config.h> + +/* Specification. */ +#include "uninorm.h" + +#include <errno.h> +#include <stdlib.h> + +#include "localcharset.h" +#include "uniconv.h" +#include "memxfrm.h" + +#define FUNC u8_normxfrm +#define UNIT uint8_t +#define U_NORMALIZE u8_normalize +#define U_CONV_TO_ENCODING u8_conv_to_encoding +#include "u-normxfrm.h" diff --git a/lib/uninorm/uninorm-filter.c b/lib/uninorm/uninorm-filter.c new file mode 100644 index 00000000..1d03cfaf --- /dev/null +++ b/lib/uninorm/uninorm-filter.c @@ -0,0 +1,367 @@ +/* Stream-based normalization of Unicode strings. + Copyright (C) 2009 Free Software Foundation, Inc. + Written by Bruno Haible <bruno@clisp.org>, 2009. + + This program is free software: you can redistribute it and/or modify it + under the terms of the GNU Lesser General Public License as published + by the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. */ + +#include <config.h> + +/* Specification. */ +#include "uninorm.h" + +#include <errno.h> +#include <stddef.h> +#include <stdlib.h> +#include <string.h> + +#include "unictype.h" +#include "normalize-internal.h" +#include "decompose-internal.h" + + +struct uninorm_filter +{ + /* Characteristics of the normalization form. */ + int (*decomposer) (ucs4_t uc, ucs4_t *decomposition); + ucs4_t (*composer) (ucs4_t uc1, ucs4_t uc2); + + /* The encapsulated stream. */ + int (*stream_func) (void *stream_data, ucs4_t uc); + void *stream_data; + + /* The buffer for sorting. */ + #define SORTBUF_PREALLOCATED 64 + struct ucs4_with_ccc sortbuf_preallocated[2 * SORTBUF_PREALLOCATED]; + struct ucs4_with_ccc *sortbuf; /* array of size 2 * sortbuf_allocated */ + size_t sortbuf_allocated; + size_t sortbuf_count; +}; + +struct uninorm_filter * +uninorm_filter_create (uninorm_t nf, + int (*stream_func) (void *stream_data, ucs4_t uc), + void *stream_data) +{ + struct uninorm_filter *filter = + (struct uninorm_filter *) malloc (sizeof (struct uninorm_filter)); + + if (filter == NULL) + /* errno is ENOMEM. */ + return NULL; + + filter->decomposer = nf->decomposer; + filter->composer = nf->composer; + filter->stream_func = stream_func; + filter->stream_data = stream_data; + filter->sortbuf = filter->sortbuf_preallocated; + filter->sortbuf_allocated = SORTBUF_PREALLOCATED; + filter->sortbuf_count = 0; + + return filter; +} + +int +uninorm_filter_write (struct uninorm_filter *filter, ucs4_t uc_arg) +{ + ucs4_t decomposed[UC_DECOMPOSITION_MAX_LENGTH]; + int decomposed_count; + + /* Accept the next character. */ + decomposed[0] = uc_arg; + decomposed_count = 1; + + /* Decompose it, recursively. + It would be possible to precompute the recursive decomposition + and store it in a table. But this would significantly increase + the size of the decomposition tables, because for example for + U+1FC1 the recursive canonical decomposition and the recursive + compatibility decomposition are different. */ + { + int curr; + + for (curr = 0; curr < decomposed_count; ) + { + /* Invariant: decomposed[0..curr-1] is fully decomposed, i.e. + all elements are atomic. */ + ucs4_t curr_decomposed[UC_DECOMPOSITION_MAX_LENGTH]; + int curr_decomposed_count; + + curr_decomposed_count = + filter->decomposer (decomposed[curr], curr_decomposed); + if (curr_decomposed_count >= 0) + { + /* Move curr_decomposed[0..curr_decomposed_count-1] over + decomposed[curr], making room. It's not worth using + memcpy() here, since the counts are so small. */ + int shift = curr_decomposed_count - 1; + + if (shift < 0) + abort (); + if (shift > 0) + { + int j; + + decomposed_count += shift; + if (decomposed_count > UC_DECOMPOSITION_MAX_LENGTH) + abort (); + for (j = decomposed_count - 1 - shift; j > curr; j--) + decomposed[j + shift] = decomposed[j]; + } + for (; shift >= 0; shift--) + decomposed[curr + shift] = curr_decomposed[shift]; + } + else + { + /* decomposed[curr] is atomic. */ + curr++; + } + } + } + + { + /* Cache sortbuf and sortbuf_count in local register variables. */ + struct ucs4_with_ccc * const sortbuf = filter->sortbuf; + size_t sortbuf_count = filter->sortbuf_count; + int i; + + for (i = 0; i < decomposed_count; i++) + { + /* Fetch the next character from the decomposition. */ + ucs4_t uc = decomposed[i]; + int ccc = uc_combining_class (uc); + + if (ccc == 0) + { + size_t j; + + /* Apply the canonical ordering algorithm to the accumulated + sequence of characters. */ + if (sortbuf_count > 1) + gl_uninorm_decompose_merge_sort_inplace (sortbuf, sortbuf_count, + sortbuf + sortbuf_count); + + if (filter->composer != NULL) + { + /* Attempt to combine decomposed characters, as specified + in the Unicode Standard Annex #15 "Unicode Normalization + Forms". We need to check + 1. whether the first accumulated character is a + "starter" (i.e. has ccc = 0). This is usually the + case. But when the string starts with a + non-starter, the sortbuf also starts with a + non-starter. Btw, this check could also be + omitted, because the composition table has only + entries (code1, code2) for which code1 is a + starter; if the first accumulated character is not + a starter, no lookup will succeed. + 2. If the sortbuf has more than one character, check + for each of these characters that are not "blocked" + from the starter (i.e. have a ccc that is higher + than the ccc of the previous character) whether it + can be combined with the first character. + 3. If only one character is left in sortbuf, check + whether it can be combined with the next character + (also a starter). */ + if (sortbuf_count > 0 && sortbuf[0].ccc == 0) + { + for (j = 1; j < sortbuf_count; ) + { + if (sortbuf[j].ccc > sortbuf[j - 1].ccc) + { + ucs4_t combined = + filter->composer (sortbuf[0].code, sortbuf[j].code); + if (combined) + { + size_t k; + + sortbuf[0].code = combined; + /* sortbuf[0].ccc = 0, still valid. */ + for (k = j + 1; k < sortbuf_count; k++) + sortbuf[k - 1] = sortbuf[k]; + sortbuf_count--; + continue; + } + } + j++; + } + if (sortbuf_count == 1) + { + ucs4_t combined = + filter->composer (sortbuf[0].code, uc); + if (combined) + { + uc = combined; + ccc = 0; + /* uc could be further combined with subsequent + characters. So don't put it into sortbuf[0] in + this round, only in the next round. */ + sortbuf_count = 0; + } + } + } + } + + for (j = 0; j < sortbuf_count; j++) + { + ucs4_t muc = sortbuf[j].code; + + /* Output muc to the encapsulated stream. */ + int ret = filter->stream_func (filter->stream_data, muc); + if (ret < 0) + { + /* errno is set here. */ + filter->sortbuf_count = 0; + return -1; + } + } + + /* sortbuf is now empty. */ + sortbuf_count = 0; + } + + /* Append (uc, ccc) to sortbuf. */ + if (sortbuf_count == filter->sortbuf_allocated) + { + struct ucs4_with_ccc *new_sortbuf; + + filter->sortbuf_allocated = 2 * filter->sortbuf_allocated; + if (filter->sortbuf_allocated < sortbuf_count) /* integer overflow? */ + abort (); + new_sortbuf = + (struct ucs4_with_ccc *) + malloc (2 * filter->sortbuf_allocated * sizeof (struct ucs4_with_ccc)); + memcpy (new_sortbuf, filter->sortbuf, + sortbuf_count * sizeof (struct ucs4_with_ccc)); + if (filter->sortbuf != filter->sortbuf_preallocated) + free (filter->sortbuf); + filter->sortbuf = new_sortbuf; + } + filter->sortbuf[sortbuf_count].code = uc; + filter->sortbuf[sortbuf_count].ccc = ccc; + sortbuf_count++; + } + + filter->sortbuf_count = sortbuf_count; + } + + return 0; +} + +/* Bring data buffered in the filter to its destination, the encapsulated + stream. + Return 0 if successful, or -1 with errno set upon failure. + Note! If after calling this function, additional characters are written + into the filter, the resulting character sequence in the encapsulated stream + will not necessarily be normalized. */ +int +uninorm_filter_flush (struct uninorm_filter *filter) +{ + /* Cache sortbuf and sortbuf_count in local register variables. */ + struct ucs4_with_ccc * const sortbuf = filter->sortbuf; + size_t sortbuf_count = filter->sortbuf_count; + size_t j; + + /* Apply the canonical ordering algorithm to the accumulated + sequence of characters. */ + if (sortbuf_count > 1) + gl_uninorm_decompose_merge_sort_inplace (sortbuf, sortbuf_count, + sortbuf + sortbuf_count); + + if (filter->composer != NULL) + { + /* Attempt to combine decomposed characters, as specified + in the Unicode Standard Annex #15 "Unicode Normalization + Forms". We need to check + 1. whether the first accumulated character is a + "starter" (i.e. has ccc = 0). This is usually the + case. But when the string starts with a + non-starter, the sortbuf also starts with a + non-starter. Btw, this check could also be + omitted, because the composition table has only + entries (code1, code2) for which code1 is a + starter; if the first accumulated character is not + a starter, no lookup will succeed. + 2. If the sortbuf has more than one character, check + for each of these characters that are not "blocked" + from the starter (i.e. have a ccc that is higher + than the ccc of the previous character) whether it + can be combined with the first character. + 3. If only one character is left in sortbuf, check + whether it can be combined with the next character + (also a starter). */ + if (sortbuf_count > 0 && sortbuf[0].ccc == 0) + { + for (j = 1; j < sortbuf_count; ) + { + if (sortbuf[j].ccc > sortbuf[j - 1].ccc) + { + ucs4_t combined = + filter->composer (sortbuf[0].code, sortbuf[j].code); + if (combined) + { + size_t k; + + sortbuf[0].code = combined; + /* sortbuf[0].ccc = 0, still valid. */ + for (k = j + 1; k < sortbuf_count; k++) + sortbuf[k - 1] = sortbuf[k]; + sortbuf_count--; + continue; + } + } + j++; + } + } + } + + for (j = 0; j < sortbuf_count; j++) + { + ucs4_t muc = sortbuf[j].code; + + /* Output muc to the encapsulated stream. */ + int ret = filter->stream_func (filter->stream_data, muc); + if (ret < 0) + { + /* errno is set here. */ + filter->sortbuf_count = 0; + return -1; + } + } + + /* sortbuf is now empty. */ + filter->sortbuf_count = 0; + + return 0; +} + +/* Bring data buffered in the filter to its destination, the encapsulated + stream, then close and free the filter. + Return 0 if successful, or -1 with errno set upon failure. */ +int +uninorm_filter_free (struct uninorm_filter *filter) +{ + int ret = uninorm_filter_flush (filter); + + if (ret < 0) + /* errno is set here. */ + return -1; + + if (filter->sortbuf_count > 0) + abort (); + if (filter->sortbuf != filter->sortbuf_preallocated) + free (filter->sortbuf); + free (filter); + + return 0; +} |