From fcbf63e62c627deae76c1b8cb8c0876c536ed811 Mon Sep 17 00:00:00 2001 From: Jari Vetoniemi Date: Mon, 16 Mar 2020 18:49:26 +0900 Subject: Fresh start --- jni/iconv/tools/8bit_tab_to_h.c | 570 ++ jni/iconv/tools/JISX0213.TXT | 11233 ++++++++++++++++++++++++++++++++++++++ jni/iconv/tools/Makefile | 532 ++ jni/iconv/tools/cjk_tab_to_h.c | 2148 ++++++++ jni/iconv/tools/cjk_variants.c | 126 + 5 files changed, 14609 insertions(+) create mode 100644 jni/iconv/tools/8bit_tab_to_h.c create mode 100644 jni/iconv/tools/JISX0213.TXT create mode 100644 jni/iconv/tools/Makefile create mode 100644 jni/iconv/tools/cjk_tab_to_h.c create mode 100644 jni/iconv/tools/cjk_variants.c (limited to 'jni/iconv/tools') diff --git a/jni/iconv/tools/8bit_tab_to_h.c b/jni/iconv/tools/8bit_tab_to_h.c new file mode 100644 index 0000000..0380d5f --- /dev/null +++ b/jni/iconv/tools/8bit_tab_to_h.c @@ -0,0 +1,570 @@ +/* Copyright (C) 1999-2002 Free Software Foundation, Inc. + This file is part of the GNU LIBICONV Tools. + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software Foundation, + Inc., along with this program. If not, see . */ + +/* + * Generates an 8-bit character set table from a .TXT table as found on + * ftp.unicode.org or from a table containing the 256 Unicode values as + * hexadecimal integers. + * Examples: + * + * ./8bit_tab_to_h ISO-8859-1 iso8859_1 < tab8859_1 + * ./8bit_tab_to_h ISO-8859-2 iso8859_2 < tab8859_2 + * ./8bit_tab_to_h ISO-8859-3 iso8859_3 < tab8859_3 + * ./8bit_tab_to_h ISO-8859-4 iso8859_4 < tab8859_4 + * ./8bit_tab_to_h ISO-8859-5 iso8859_5 < tab8859_5 + * ./8bit_tab_to_h ISO-8859-6 iso8859_6 < tab8859_6 + * ./8bit_tab_to_h ISO-8859-7 iso8859_7 < tab8859_7 + * ./8bit_tab_to_h ISO-8859-8 iso8859_8 < tab8859_8 + * ./8bit_tab_to_h ISO-8859-9 iso8859_9 < tab8859_9 + * ./8bit_tab_to_h ISO-8859-10 iso8859_10 < tab8859_10 + * ./8bit_tab_to_h ISO-8859-14 iso8859_14 < tab8859_14 + * ./8bit_tab_to_h ISO-8859-15 iso8859_15 < tab8859_15 + * ./8bit_tab_to_h JISX0201.1976-0 jisx0201 < jis0201 + * ./8bit_tab_to_h TIS620.2533-1 tis620 < tabtis620 + * ./8bit_tab_to_h KOI8-R koi8_r < tabkoi8_r + * ./8bit_tab_to_h KOI8-U koi8_u < tabkoi8_u + * ./8bit_tab_to_h ARMSCII-8 armscii_8 < tabarmscii_8 + * ./8bit_tab_to_h CP1133 cp1133 < tabibm_cp1133 + * ./8bit_tab_to_h MULELAO-1 mulelao < tabmulelao_1 + * ./8bit_tab_to_h VISCII1.1-1 viscii1 < tabviscii + * ./8bit_tab_to_h TCVN-5712 tcvn < tabtcvn + * ./8bit_tab_to_h GEORGIAN-ACADEMY georgian_ac < tabgeorgian_academy + * ./8bit_tab_to_h GEORGIAN-PS georgian_ps < tabgeorgian_ps + * + * ./8bit_tab_to_h ISO-8859-1 iso8859_1 < 8859-1.TXT + * ./8bit_tab_to_h ISO-8859-2 iso8859_2 < 8859-2.TXT + * ./8bit_tab_to_h ISO-8859-3 iso8859_3 < 8859-3.TXT + * ./8bit_tab_to_h ISO-8859-4 iso8859_4 < 8859-4.TXT + * ./8bit_tab_to_h ISO-8859-5 iso8859_5 < 8859-5.TXT + * ./8bit_tab_to_h ISO-8859-6 iso8859_6 < 8859-6.TXT + * ./8bit_tab_to_h ISO-8859-7 iso8859_7 < 8859-7.TXT + * ./8bit_tab_to_h ISO-8859-8 iso8859_8 < 8859-8.TXT + * ./8bit_tab_to_h ISO-8859-9 iso8859_9 < 8859-9.TXT + * ./8bit_tab_to_h ISO-8859-10 iso8859_10 < 8859-10.TXT + * ./8bit_tab_to_h ISO-8859-14 iso8859_14 < 8859-14.TXT + * ./8bit_tab_to_h ISO-8859-15 iso8859_15 < 8859-15.TXT + * ./8bit_tab_to_h JISX0201.1976-0 jisx0201 < JIS0201.TXT + * ./8bit_tab_to_h KOI8-R koi8_r < KOI8-R.TXT + */ + +#include +#include +#include +#include + +int main (int argc, char *argv[]) +{ + const char* charsetname; + const char* c_charsetname; + const char* filename; + const char* directory; + int charset2uni[0x100]; + + if (argc != 3 && argc != 4 && argc != 5) + exit(1); + charsetname = argv[1]; + c_charsetname = argv[2]; + if (argc > 3) { + filename = argv[3]; + } else { + char* s = (char*) malloc(strlen(c_charsetname)+strlen(".h")+1); + strcpy(s,c_charsetname); strcat(s,".h"); + filename = s; + } + directory = (argc > 4 ? argv[4] : ""); + + fprintf(stderr, "Creating %s%s\n", directory, filename); + + { + int i, c; + c = getc(stdin); + ungetc(c,stdin); + if (c == '#') { + /* Read a unicode.org style .TXT file. */ + for (i = 0; i < 0x100; i++) + charset2uni[i] = 0xfffd; + for (;;) { + c = getc(stdin); + if (c == EOF) + break; + if (c == '\n' || c == ' ' || c == '\t') + continue; + if (c == '#') { + do { c = getc(stdin); } while (!(c == EOF || c == '\n')); + continue; + } + ungetc(c,stdin); + if (scanf("0x%x", &i) != 1 || !(i >= 0 && i < 0x100)) + exit(1); + do { c = getc(stdin); } while (c == ' ' || c == '\t'); + if (c != EOF) + ungetc(c,stdin); + if (c == '\n' || c == '#') + continue; + if (scanf("0x%x", &charset2uni[i]) != 1) + exit(1); + } + } else { + /* Read a table of hexadecimal Unicode values. */ + for (i = 0; i < 0x100; i++) { + if (scanf("%x", &charset2uni[i]) != 1) + exit(1); + if (charset2uni[i] < 0 || charset2uni[i] == 0xffff) + charset2uni[i] = 0xfffd; + } + if (scanf("%x", &i) != EOF) + exit(1); + } + } + + /* Write the output file. */ + { + FILE* f; + + { + char* fname = malloc(strlen(directory)+strlen(filename)+1); + strcpy(fname,directory); strcat(fname,filename); + f = fopen(fname,"w"); + if (f == NULL) + exit(1); + } + + fprintf(f, "/*\n"); + fprintf(f, " * Copyright (C) 1999-2002 Free Software Foundation, Inc.\n"); + fprintf(f, " * This file is part of the GNU LIBICONV Library.\n"); + fprintf(f, " *\n"); + fprintf(f, " * The GNU LIBICONV Library is free software; you can redistribute it\n"); + fprintf(f, " * and/or modify it under the terms of the GNU Library General Public\n"); + fprintf(f, " * License as published by the Free Software Foundation; either version 2\n"); + fprintf(f, " * of the License, or (at your option) any later version.\n"); + fprintf(f, " *\n"); + fprintf(f, " * The GNU LIBICONV Library is distributed in the hope that it will be\n"); + fprintf(f, " * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of\n"); + fprintf(f, " * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n"); + fprintf(f, " * Library General Public License for more details.\n"); + fprintf(f, " *\n"); + fprintf(f, " * You should have received a copy of the GNU Library General Public\n"); + fprintf(f, " * License along with the GNU LIBICONV Library; see the file COPYING.LIB.\n"); + fprintf(f, " * If not, write to the Free Software Foundation, Inc., 51 Franklin Street,\n"); + fprintf(f, " * Fifth Floor, Boston, MA 02110-1301, USA.\n"); + fprintf(f, " */\n"); + fprintf(f, "\n"); + fprintf(f, "/*\n"); + fprintf(f, " * %s\n", charsetname); + fprintf(f, " */\n"); + fprintf(f, "\n"); + + { + int i, i1, i2, i3; + int line[16]; + int tableno; + struct { int minline; int maxline; } tables[16]; + bool some_invalid; + bool final_ret_reached; + + for (i1 = 0; i1 < 16; i1++) { + bool all_invalid = true; + bool all_identity = true; + for (i2 = 0; i2 < 16; i2++) { + i = 16*i1+i2; + if (charset2uni[i] != 0xfffd) + all_invalid = false; + if (charset2uni[i] != i) + all_identity = false; + } + if (all_invalid) + line[i1] = -2; + else if (all_identity) + line[i1] = -1; + else + line[i1] = 0; + } + tableno = 0; + for (i1 = 0; i1 < 16; i1++) { + if (line[i1] >= 0) { + if (i1 > 0 && tableno > 0 && line[i1-1] == tableno-1) { + line[i1] = tableno-1; + tables[tableno-1].maxline = i1; + } else { + tableno++; + line[i1] = tableno-1; + tables[tableno-1].minline = tables[tableno-1].maxline = i1; + } + } + } + some_invalid = false; + for (i = 0; i < 0x100; i++) + if (charset2uni[i] == 0xfffd) + some_invalid = true; + if (tableno > 0) { + int t; + for (t = 0; t < tableno; t++) { + fprintf(f, "static const unsigned short %s_2uni", c_charsetname); + if (tableno > 1) + fprintf(f, "_%d", t+1); + fprintf(f, "[%d] = {\n", 16*(tables[t].maxline-tables[t].minline+1)); + for (i1 = tables[t].minline; i1 <= tables[t].maxline; i1++) { + fprintf(f, " /* 0x%02x */\n", 16*i1); + for (i2 = 0; i2 < 2; i2++) { + fprintf(f, " "); + for (i3 = 0; i3 < 8; i3++) { + i = 16*i1+8*i2+i3; + fprintf(f, " 0x%04x,", charset2uni[i]); + } + fprintf(f, "\n"); + } + } + fprintf(f, "};\n"); + } + fprintf(f, "\n"); + } + final_ret_reached = false; + fprintf(f, "static int\n%s_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)\n", c_charsetname); + fprintf(f, "{\n"); + fprintf(f, " unsigned char c = *s;\n"); + if (some_invalid) { + for (i1 = 0; i1 < 16;) { + int t = line[i1]; + const char* indent; + for (i2 = i1; i2 < 16 && line[i2] == t; i2++); + indent = (i1 == 0 && i2 == 16 ? " " : " "); + if (i1 == 0) { + if (i2 == 16) { + } else { + fprintf(f, " if (c < 0x%02x) {\n", 16*i2); + } + } else { + if (i2 == 16) { + fprintf(f, " else {\n"); + } else { + fprintf(f, " else if (c < 0x%02x) {\n", 16*i2); + } + } + if (t == -2) { + final_ret_reached = true; + } else if (t == -1) { + fprintf(f, "%s*pwc = (ucs4_t) c;\n", indent); + fprintf(f, "%sreturn 1;\n", indent); + } else { + fprintf(f, "%s", indent); + some_invalid = false; + for (i = 16*i1; i < 16*i2; i++) + if (charset2uni[i] == 0xfffd) + some_invalid = true; + if (some_invalid) + fprintf(f, "unsigned short wc = "); + else + fprintf(f, "*pwc = (ucs4_t) "); + fprintf(f, "%s_2uni", c_charsetname); + if (tableno > 1) + fprintf(f, "_%d", t+1); + fprintf(f, "[c"); + if (tables[t].minline > 0) + fprintf(f, "-0x%02x", 16*tables[t].minline); + fprintf(f, "];\n"); + if (some_invalid) { + fprintf(f, "%sif (wc != 0xfffd) {\n", indent); + fprintf(f, "%s *pwc = (ucs4_t) wc;\n", indent); + fprintf(f, "%s return 1;\n", indent); + fprintf(f, "%s}\n", indent); + final_ret_reached = true; + } else { + fprintf(f, "%sreturn 1;\n", indent); + } + } + if (!(i1 == 0 && i2 == 16)) + fprintf(f, " }\n"); + i1 = i2; + } + if (final_ret_reached) + fprintf(f, " return RET_ILSEQ;\n"); + } else { + for (i1 = 0; i1 < 16;) { + int t = line[i1]; + for (i2 = i1; i2 < 16 && line[i2] == t; i2++); + if (i1 == 0) { + if (i2 == 16) { + fprintf(f, " "); + } else { + fprintf(f, " if (c < 0x%02x)\n ", 16*i2); + } + } else { + if (i2 == 16) { + fprintf(f, " else\n "); + } else { + fprintf(f, " else if (c < 0x%02x)\n ", 16*i2); + } + } + if (t == -1) + fprintf(f, "*pwc = (ucs4_t) c;\n"); + else { + fprintf(f, "*pwc = (ucs4_t) %s_2uni", c_charsetname); + if (tableno > 1) + fprintf(f, "_%d", t+1); + fprintf(f, "[c"); + if (tables[t].minline > 0) + fprintf(f, "-0x%02x", 16*tables[t].minline); + fprintf(f, "];\n"); + } + i1 = i2; + } + fprintf(f, " return 1;\n"); + } + fprintf(f, "}\n"); + + } + + fprintf(f, "\n"); + + { + int uni2charset[0x10000]; + bool pages[0x100]; + int line[0x2000]; + int tableno; + struct { int minline; int maxline; int usecount; const char* suffix; } tables[0x2000]; + bool need_c; + bool fix_0000; + int i, j, p, j1, j2, t; + + for (j = 0; j < 0x10000; j++) + uni2charset[j] = 0; + for (p = 0; p < 0x100; p++) + pages[p] = false; + for (i = 0; i < 0x100; i++) { + j = charset2uni[i]; + if (j != 0xfffd) { + uni2charset[j] = i; + pages[j>>8] = true; + } + } + for (j1 = 0; j1 < 0x2000; j1++) { + bool all_invalid = true; + bool all_identity = true; + for (j2 = 0; j2 < 8; j2++) { + j = 8*j1+j2; + if (uni2charset[j] != 0) + all_invalid = false; + if (uni2charset[j] != j) + all_identity = false; + } + if (all_invalid) + line[j1] = -2; + else if (all_identity) + line[j1] = -1; + else + line[j1] = 0; + } + tableno = 0; + for (j1 = 0; j1 < 0x2000; j1++) { + if (line[j1] >= 0) { + if (tableno > 0 + && ((j1 > 0 && line[j1-1] == tableno-1) + || ((tables[tableno-1].maxline >> 5) == (j1 >> 5) + && j1 - tables[tableno-1].maxline <= 8))) { + line[j1] = tableno-1; + tables[tableno-1].maxline = j1; + } else { + tableno++; + line[j1] = tableno-1; + tables[tableno-1].minline = tables[tableno-1].maxline = j1; + } + } + } + for (t = 0; t < tableno; t++) { + tables[t].usecount = 0; + j1 = 8*tables[t].minline; + j2 = 8*(tables[t].maxline+1); + for (j = j1; j < j2; j++) + if (uni2charset[j] != 0) + tables[t].usecount++; + } + for (t = 0, p = -1, i = 0; t < tableno; t++) { + if (tables[t].usecount > 1) { + char* s; + if (p == tables[t].minline >> 5) { + s = (char*) malloc(5+1); + sprintf(s, "%02x_%d", p, ++i); + } else { + p = tables[t].minline >> 5; + s = (char*) malloc(2+1); + sprintf(s, "%02x", p); + } + tables[t].suffix = s; + } else + tables[t].suffix = NULL; + } + { + p = -1; + for (t = 0; t < tableno; t++) + if (tables[t].usecount > 1) { + p = 0; + fprintf(f, "static const unsigned char %s_page%s[%d] = {\n", c_charsetname, tables[t].suffix, 8*(tables[t].maxline-tables[t].minline+1)); + for (j1 = tables[t].minline; j1 <= tables[t].maxline; j1++) { + if ((j1 % 0x20) == 0 && j1 > tables[t].minline) + fprintf(f, " /* 0x%04x */\n", 8*j1); + fprintf(f, " "); + for (j2 = 0; j2 < 8; j2++) { + j = 8*j1+j2; + fprintf(f, " 0x%02x,", uni2charset[j]); + } + fprintf(f, " /* 0x%02x-0x%02x */\n", 8*(j1 % 0x20), 8*(j1 % 0x20)+7); + } + fprintf(f, "};\n"); + } + if (p >= 0) + fprintf(f, "\n"); + } + need_c = false; + for (j1 = 0; j1 < 0x2000;) { + t = line[j1]; + for (j2 = j1; j2 < 0x2000 && line[j2] == t; j2++); + if (t >= 0) + j2 = tables[t].maxline+1; + if (!(t == -2 || (t == -1 && j1 == 0))) + need_c = true; + j1 = j2; + } + fix_0000 = false; + fprintf(f, "static int\n%s_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)\n", c_charsetname); + fprintf(f, "{\n"); + if (need_c) + fprintf(f, " unsigned char c = 0;\n"); + for (j1 = 0; j1 < 0x2000;) { + t = line[j1]; + for (j2 = j1; j2 < 0x2000 && line[j2] == t; j2++); + if (t >= 0) { + if (j1 != tables[t].minline) abort(); + if (j2 > tables[t].maxline+1) abort(); + j2 = tables[t].maxline+1; + } + if (t == -2) { + } else { + if (j1 == 0) + fprintf(f, " "); + else + fprintf(f, " else "); + if (t >= 0 && tables[t].usecount == 0) abort(); + if (t >= 0 && tables[t].usecount == 1) { + if (j2 != j1+1) abort(); + for (j = 8*j1; j < 8*j2; j++) + if (uni2charset[j] != 0) { + fprintf(f, "if (wc == 0x%04x)\n c = 0x%02x;\n", j, uni2charset[j]); + break; + } + } else { + if (j1 == 0) { + fprintf(f, "if (wc < 0x%04x)", 8*j2); + } else { + fprintf(f, "if (wc >= 0x%04x && wc < 0x%04x)", 8*j1, 8*j2); + } + if (t == -1) { + if (j1 == 0) + /* If wc == 0, the function must return 1, not -1. */ + fprintf(f, " {\n *r = wc;\n return 1;\n }\n"); + else + fprintf(f, "\n c = wc;\n"); + } else { + fprintf(f, "\n c = %s_page%s[wc", c_charsetname, tables[t].suffix); + if (tables[t].minline > 0) + fprintf(f, "-0x%04x", 8*j1); + fprintf(f, "];\n"); + if (j1 == 0 && uni2charset[0] == 0) + /* If wc == 0, the function must return 1, not -1. */ + fix_0000 = true; + } + } + } + j1 = j2; + } + if (need_c) { + if (fix_0000) + fprintf(f, " if (c != 0 || wc == 0) {\n"); + else + fprintf(f, " if (c != 0) {\n"); + fprintf(f, " *r = c;\n"); + fprintf(f, " return 1;\n"); + fprintf(f, " }\n"); + } + fprintf(f, " return RET_ILUNI;\n"); + fprintf(f, "}\n"); + + } + + if (ferror(f) || fclose(f)) + exit(1); + } + +#if 0 + + int i1, i2, i3, i1_min, i1_max, j1, j2; + + i1_min = 16; + i1_max = -1; + for (i1 = 0; i1 < 16; i1++) + for (i2 = 0; i2 < 16; i2++) + if (charset2uni[16*i1+i2] != 0xfffd) { + if (i1_min > i1) i1_min = i1; + if (i1_max < i1) i1_max = i1; + } + printf("static const unsigned short %s_2uni[%d] = {\n", + name, 16*(i1_max-i1_min+1)); + for (i1 = i1_min; i1 <= i1_max; i1++) { + printf(" /""* 0x%02x *""/\n", 16*i1); + for (i2 = 0; i2 < 2; i2++) { + printf(" "); + for (i3 = 0; i3 < 8; i3++) { + if (i3 > 0) printf(" "); + printf("0x%04x,", charset2uni[16*i1+8*i2+i3]); + } + printf("\n"); + } + } + printf("};\n"); + printf("\n"); + + for (p = 0; p < 0x100; p++) + pages[p] = 0; + for (i = 0; i < 0x100; i++) + if (charset2uni[i] != 0xfffd) + pages[charset2uni[i]>>8] = 1; + for (p = 0; p < 0x100; p++) + if (pages[p]) { + int j1_min = 32; + int j1_max = -1; + for (j1 = 0; j1 < 32; j1++) + for (j2 = 0; j2 < 8; j2++) + if (uni2charset[256*p+8*j1+j2] != 0) { + if (j1_min > j1) j1_min = j1; + if (j1_max < j1) j1_max = j1; + } + printf("static const unsigned char %s_page%02x[%d] = {\n", + name, p, 8*(j1_max-j1_min+1)); + for (j1 = j1_min; j1 <= j1_max; j1++) { + printf(" "); + for (j2 = 0; j2 < 8; j2++) + printf("0x%02x, ", uni2charset[256*p+8*j1+j2]); + printf("/""* 0x%02x-0x%02x *""/\n", 8*j1, 8*j1+7); + } + printf("};\n"); + } + printf("\n"); + +} +#endif + + exit(0); +} diff --git a/jni/iconv/tools/JISX0213.TXT b/jni/iconv/tools/JISX0213.TXT new file mode 100644 index 0000000..31a94c6 --- /dev/null +++ b/jni/iconv/tools/JISX0213.TXT @@ -0,0 +1,11233 @@ +0x12121 0x3000 +0x12122 0x3001 +0x12123 0x3002 +0x12124 0xFF0C +0x12125 0xFF0E +0x12126 0x30FB +0x12127 0xFF1A +0x12128 0xFF1B +0x12129 0xFF1F +0x1212A 0xFF01 +0x1212B 0x309B +0x1212C 0x309C +0x1212D 0x00B4 +0x1212E 0xFF40 +0x1212F 0x00A8 +0x12130 0xFF3E +0x12131 0xFFE3 +0x12132 0xFF3F +0x12133 0x30FD +0x12134 0x30FE +0x12135 0x309D +0x12136 0x309E +0x12137 0x3003 +0x12138 0x4EDD +0x12139 0x3005 +0x1213A 0x3006 +0x1213B 0x3007 +0x1213C 0x30FC +0x1213D 0x2014 +0x1213E 0x2010 +0x1213F 0xFF0F +0x12140 0xFF3C +0x12141 0x301C +0x12142 0x2016 +0x12143 0xFF5C +0x12144 0x2026 +0x12145 0x2025 +0x12146 0x2018 +0x12147 0x2019 +0x12148 0x201C +0x12149 0x201D +0x1214A 0xFF08 +0x1214B 0xFF09 +0x1214C 0x3014 +0x1214D 0x3015 +0x1214E 0xFF3B +0x1214F 0xFF3D +0x12150 0xFF5B +0x12151 0xFF5D +0x12152 0x3008 +0x12153 0x3009 +0x12154 0x300A +0x12155 0x300B +0x12156 0x300C +0x12157 0x300D +0x12158 0x300E +0x12159 0x300F +0x1215A 0x3010 +0x1215B 0x3011 +0x1215C 0xFF0B +0x1215D 0x2212 +0x1215E 0x00B1 +0x1215F 0x00D7 +0x12160 0x00F7 +0x12161 0xFF1D +0x12162 0x2260 +0x12163 0xFF1C +0x12164 0xFF1E +0x12165 0x2266 +0x12166 0x2267 +0x12167 0x221E +0x12168 0x2234 +0x12169 0x2642 +0x1216A 0x2640 +0x1216B 0x00B0 +0x1216C 0x2032 +0x1216D 0x2033 +0x1216E 0x2103 +0x1216F 0xFFE5 +0x12170 0xFF04 +0x12171 0x00A2 +0x12172 0x00A3 +0x12173 0xFF05 +0x12174 0xFF03 +0x12175 0xFF06 +0x12176 0xFF0A +0x12177 0xFF20 +0x12178 0x00A7 +0x12179 0x2606 +0x1217A 0x2605 +0x1217B 0x25CB +0x1217C 0x25CF +0x1217D 0x25CE +0x1217E 0x25C7 +0x12221 0x25C6 +0x12222 0x25A1 +0x12223 0x25A0 +0x12224 0x25B3 +0x12225 0x25B2 +0x12226 0x25BD +0x12227 0x25BC +0x12228 0x203B +0x12229 0x3012 +0x1222A 0x2192 +0x1222B 0x2190 +0x1222C 0x2191 +0x1222D 0x2193 +0x1222E 0x3013 +0x1222F 0xFF07 +0x12230 0xFF02 +0x12231 0xFF0D +0x12232 0xFF5E +0x12233 0x3033 +0x12234 0x3034 +0x12235 0x3035 +0x12236 0x303B +0x12237 0x303C +0x12238 0x30FF +0x12239 0x309F +0x1223A 0x2208 +0x1223B 0x220B +0x1223C 0x2286 +0x1223D 0x2287 +0x1223E 0x2282 +0x1223F 0x2283 +0x12240 0x222A +0x12241 0x2229 +0x12242 0x2284 +0x12243 0x2285 +0x12244 0x228A +0x12245 0x228B +0x12246 0x2209 +0x12247 0x2205 +0x12248 0x2305 +0x12249 0x2306 +0x1224A 0x2227 +0x1224B 0x2228 +0x1224C 0x00AC +0x1224D 0x21D2 +0x1224E 0x21D4 +0x1224F 0x2200 +0x12250 0x2203 +0x12251 0x2295 +0x12252 0x2296 +0x12253 0x2297 +0x12254 0x2225 +0x12255 0x2226 +0x12256 0xFF5F +0x12257 0xFF60 +0x12258 0x3018 +0x12259 0x3019 +0x1225A 0x3016 +0x1225B 0x3017 +0x1225C 0x2220 +0x1225D 0x22A5 +0x1225E 0x2312 +0x1225F 0x2202 +0x12260 0x2207 +0x12261 0x2261 +0x12262 0x2252 +0x12263 0x226A +0x12264 0x226B +0x12265 0x221A +0x12266 0x223D +0x12267 0x221D +0x12268 0x2235 +0x12269 0x222B +0x1226A 0x222C +0x1226B 0x2262 +0x1226C 0x2243 +0x1226D 0x2245 +0x1226E 0x2248 +0x1226F 0x2276 +0x12270 0x2277 +0x12271 0x2194 +0x12272 0x212B +0x12273 0x2030 +0x12274 0x266F +0x12275 0x266D +0x12276 0x266A +0x12277 0x2020 +0x12278 0x2021 +0x12279 0x00B6 +0x1227A 0x266E +0x1227B 0x266B +0x1227C 0x266C +0x1227D 0x2669 +0x1227E 0x25EF +0x12321 0x25B7 +0x12322 0x25B6 +0x12323 0x25C1 +0x12324 0x25C0 +0x12325 0x2197 +0x12326 0x2198 +0x12327 0x2196 +0x12328 0x2199 +0x12329 0x21C4 +0x1232A 0x21E8 +0x1232B 0x21E6 +0x1232C 0x21E7 +0x1232D 0x21E9 +0x1232E 0x2934 +0x1232F 0x2935 +0x12330 0xFF10 +0x12331 0xFF11 +0x12332 0xFF12 +0x12333 0xFF13 +0x12334 0xFF14 +0x12335 0xFF15 +0x12336 0xFF16 +0x12337 0xFF17 +0x12338 0xFF18 +0x12339 0xFF19 +0x1233A 0x29BF +0x1233B 0x25C9 +0x1233C 0x303D +0x1233D 0xFE46 +0x1233E 0xFE45 +0x1233F 0x25E6 +0x12340 0x2022 +0x12341 0xFF21 +0x12342 0xFF22 +0x12343 0xFF23 +0x12344 0xFF24 +0x12345 0xFF25 +0x12346 0xFF26 +0x12347 0xFF27 +0x12348 0xFF28 +0x12349 0xFF29 +0x1234A 0xFF2A +0x1234B 0xFF2B +0x1234C 0xFF2C +0x1234D 0xFF2D +0x1234E 0xFF2E +0x1234F 0xFF2F +0x12350 0xFF30 +0x12351 0xFF31 +0x12352 0xFF32 +0x12353 0xFF33 +0x12354 0xFF34 +0x12355 0xFF35 +0x12356 0xFF36 +0x12357 0xFF37 +0x12358 0xFF38 +0x12359 0xFF39 +0x1235A 0xFF3A +0x1235B 0x2213 +0x1235C 0x2135 +0x1235D 0x210F +0x1235E 0x33CB +0x1235F 0x2113 +0x12360 0x2127 +0x12361 0xFF41 +0x12362 0xFF42 +0x12363 0xFF43 +0x12364 0xFF44 +0x12365 0xFF45 +0x12366 0xFF46 +0x12367 0xFF47 +0x12368 0xFF48 +0x12369 0xFF49 +0x1236A 0xFF4A +0x1236B 0xFF4B +0x1236C 0xFF4C +0x1236D 0xFF4D +0x1236E 0xFF4E +0x1236F 0xFF4F +0x12370 0xFF50 +0x12371 0xFF51 +0x12372 0xFF52 +0x12373 0xFF53 +0x12374 0xFF54 +0x12375 0xFF55 +0x12376 0xFF56 +0x12377 0xFF57 +0x12378 0xFF58 +0x12379 0xFF59 +0x1237A 0xFF5A +0x1237B 0x30A0 +0x1237C 0x2013 +0x1237D 0x29FA +0x1237E 0x29FB +0x12421 0x3041 +0x12422 0x3042 +0x12423 0x3043 +0x12424 0x3044 +0x12425 0x3045 +0x12426 0x3046 +0x12427 0x3047 +0x12428 0x3048 +0x12429 0x3049 +0x1242A 0x304A +0x1242B 0x304B +0x1242C 0x304C +0x1242D 0x304D +0x1242E 0x304E +0x1242F 0x304F +0x12430 0x3050 +0x12431 0x3051 +0x12432 0x3052 +0x12433 0x3053 +0x12434 0x3054 +0x12435 0x3055 +0x12436 0x3056 +0x12437 0x3057 +0x12438 0x3058 +0x12439 0x3059 +0x1243A 0x305A +0x1243B 0x305B +0x1243C 0x305C +0x1243D 0x305D +0x1243E 0x305E +0x1243F 0x305F +0x12440 0x3060 +0x12441 0x3061 +0x12442 0x3062 +0x12443 0x3063 +0x12444 0x3064 +0x12445 0x3065 +0x12446 0x3066 +0x12447 0x3067 +0x12448 0x3068 +0x12449 0x3069 +0x1244A 0x306A +0x1244B 0x306B +0x1244C 0x306C +0x1244D 0x306D +0x1244E 0x306E +0x1244F 0x306F +0x12450 0x3070 +0x12451 0x3071 +0x12452 0x3072 +0x12453 0x3073 +0x12454 0x3074 +0x12455 0x3075 +0x12456 0x3076 +0x12457 0x3077 +0x12458 0x3078 +0x12459 0x3079 +0x1245A 0x307A +0x1245B 0x307B +0x1245C 0x307C +0x1245D 0x307D +0x1245E 0x307E +0x1245F 0x307F +0x12460 0x3080 +0x12461 0x3081 +0x12462 0x3082 +0x12463 0x3083 +0x12464 0x3084 +0x12465 0x3085 +0x12466 0x3086 +0x12467 0x3087 +0x12468 0x3088 +0x12469 0x3089 +0x1246A 0x308A +0x1246B 0x308B +0x1246C 0x308C +0x1246D 0x308D +0x1246E 0x308E +0x1246F 0x308F +0x12470 0x3090 +0x12471 0x3091 +0x12472 0x3092 +0x12473 0x3093 +0x12474 0x3094 +0x12475 0x3095 +0x12476 0x3096 +0x12477 0x304B 0x309A +0x12478 0x304D 0x309A +0x12479 0x304F 0x309A +0x1247A 0x3051 0x309A +0x1247B 0x3053 0x309A +0x12521 0x30A1 +0x12522 0x30A2 +0x12523 0x30A3 +0x12524 0x30A4 +0x12525 0x30A5 +0x12526 0x30A6 +0x12527 0x30A7 +0x12528 0x30A8 +0x12529 0x30A9 +0x1252A 0x30AA +0x1252B 0x30AB +0x1252C 0x30AC +0x1252D 0x30AD +0x1252E 0x30AE +0x1252F 0x30AF +0x12530 0x30B0 +0x12531 0x30B1 +0x12532 0x30B2 +0x12533 0x30B3 +0x12534 0x30B4 +0x12535 0x30B5 +0x12536 0x30B6 +0x12537 0x30B7 +0x12538 0x30B8 +0x12539 0x30B9 +0x1253A 0x30BA +0x1253B 0x30BB +0x1253C 0x30BC +0x1253D 0x30BD +0x1253E 0x30BE +0x1253F 0x30BF +0x12540 0x30C0 +0x12541 0x30C1 +0x12542 0x30C2 +0x12543 0x30C3 +0x12544 0x30C4 +0x12545 0x30C5 +0x12546 0x30C6 +0x12547 0x30C7 +0x12548 0x30C8 +0x12549 0x30C9 +0x1254A 0x30CA +0x1254B 0x30CB +0x1254C 0x30CC +0x1254D 0x30CD +0x1254E 0x30CE +0x1254F 0x30CF +0x12550 0x30D0 +0x12551 0x30D1 +0x12552 0x30D2 +0x12553 0x30D3 +0x12554 0x30D4 +0x12555 0x30D5 +0x12556 0x30D6 +0x12557 0x30D7 +0x12558 0x30D8 +0x12559 0x30D9 +0x1255A 0x30DA +0x1255B 0x30DB +0x1255C 0x30DC +0x1255D 0x30DD +0x1255E 0x30DE +0x1255F 0x30DF +0x12560 0x30E0 +0x12561 0x30E1 +0x12562 0x30E2 +0x12563 0x30E3 +0x12564 0x30E4 +0x12565 0x30E5 +0x12566 0x30E6 +0x12567 0x30E7 +0x12568 0x30E8 +0x12569 0x30E9 +0x1256A 0x30EA +0x1256B 0x30EB +0x1256C 0x30EC +0x1256D 0x30ED +0x1256E 0x30EE +0x1256F 0x30EF +0x12570 0x30F0 +0x12571 0x30F1 +0x12572 0x30F2 +0x12573 0x30F3 +0x12574 0x30F4 +0x12575 0x30F5 +0x12576 0x30F6 +0x12577 0x30AB 0x309A +0x12578 0x30AD 0x309A +0x12579 0x30AF 0x309A +0x1257A 0x30B1 0x309A +0x1257B 0x30B3 0x309A +0x1257C 0x30BB 0x309A +0x1257D 0x30C4 0x309A +0x1257E 0x30C8 0x309A +0x12621 0x0391 +0x12622 0x0392 +0x12623 0x0393 +0x12624 0x0394 +0x12625 0x0395 +0x12626 0x0396 +0x12627 0x0397 +0x12628 0x0398 +0x12629 0x0399 +0x1262A 0x039A +0x1262B 0x039B +0x1262C 0x039C +0x1262D 0x039D +0x1262E 0x039E +0x1262F 0x039F +0x12630 0x03A0 +0x12631 0x03A1 +0x12632 0x03A3 +0x12633 0x03A4 +0x12634 0x03A5 +0x12635 0x03A6 +0x12636 0x03A7 +0x12637 0x03A8 +0x12638 0x03A9 +0x12639 0x2664 +0x1263A 0x2660 +0x1263B 0x2662 +0x1263C 0x2666 +0x1263D 0x2661 +0x1263E 0x2665 +0x1263F 0x2667 +0x12640 0x2663 +0x12641 0x03B1 +0x12642 0x03B2 +0x12643 0x03B3 +0x12644 0x03B4 +0x12645 0x03B5 +0x12646 0x03B6 +0x12647 0x03B7 +0x12648 0x03B8 +0x12649 0x03B9 +0x1264A 0x03BA +0x1264B 0x03BB +0x1264C 0x03BC +0x1264D 0x03BD +0x1264E 0x03BE +0x1264F 0x03BF +0x12650 0x03C0 +0x12651 0x03C1 +0x12652 0x03C3 +0x12653 0x03C4 +0x12654 0x03C5 +0x12655 0x03C6 +0x12656 0x03C7 +0x12657 0x03C8 +0x12658 0x03C9 +0x12659 0x03C2 +0x1265A 0x24F5 +0x1265B 0x24F6 +0x1265C 0x24F7 +0x1265D 0x24F8 +0x1265E 0x24F9 +0x1265F 0x24FA +0x12660 0x24FB +0x12661 0x24FC +0x12662 0x24FD +0x12663 0x24FE +0x12664 0x2616 +0x12665 0x2617 +0x12666 0x3020 +0x12667 0x260E +0x12668 0x2600 +0x12669 0x2601 +0x1266A 0x2602 +0x1266B 0x2603 +0x1266C 0x2668 +0x1266D 0x25B1 +0x1266E 0x31F0 +0x1266F 0x31F1 +0x12670 0x31F2 +0x12671 0x31F3 +0x12672 0x31F4 +0x12673 0x31F5 +0x12674 0x31F6 +0x12675 0x31F7 +0x12676 0x31F8 +0x12677 0x31F9 +0x12678 0x31F7 0x309A +0x12679 0x31FA +0x1267A 0x31FB +0x1267B 0x31FC +0x1267C 0x31FD +0x1267D 0x31FE +0x1267E 0x31FF +0x12721 0x0410 +0x12722 0x0411 +0x12723 0x0412 +0x12724 0x0413 +0x12725 0x0414 +0x12726 0x0415 +0x12727 0x0401 +0x12728 0x0416 +0x12729 0x0417 +0x1272A 0x0418 +0x1272B 0x0419 +0x1272C 0x041A +0x1272D 0x041B +0x1272E 0x041C +0x1272F 0x041D +0x12730 0x041E +0x12731 0x041F +0x12732 0x0420 +0x12733 0x0421 +0x12734 0x0422 +0x12735 0x0423 +0x12736 0x0424 +0x12737 0x0425 +0x12738 0x0426 +0x12739 0x0427 +0x1273A 0x0428 +0x1273B 0x0429 +0x1273C 0x042A +0x1273D 0x042B +0x1273E 0x042C +0x1273F 0x042D +0x12740 0x042E +0x12741 0x042F +0x12742 0x23BE +0x12743 0x23BF +0x12744 0x23C0 +0x12745 0x23C1 +0x12746 0x23C2 +0x12747 0x23C3 +0x12748 0x23C4 +0x12749 0x23C5 +0x1274A 0x23C6 +0x1274B 0x23C7 +0x1274C 0x23C8 +0x1274D 0x23C9 +0x1274E 0x23CA +0x1274F 0x23CB +0x12750 0x23CC +0x12751 0x0430 +0x12752 0x0431 +0x12753 0x0432 +0x12754 0x0433 +0x12755 0x0434 +0x12756 0x0435 +0x12757 0x0451 +0x12758 0x0436 +0x12759 0x0437 +0x1275A 0x0438 +0x1275B 0x0439 +0x1275C 0x043A +0x1275D 0x043B +0x1275E 0x043C +0x1275F 0x043D +0x12760 0x043E +0x12761 0x043F +0x12762 0x0440 +0x12763 0x0441 +0x12764 0x0442 +0x12765 0x0443 +0x12766 0x0444 +0x12767 0x0445 +0x12768 0x0446 +0x12769 0x0447 +0x1276A 0x0448 +0x1276B 0x0449 +0x1276C 0x044A +0x1276D 0x044B +0x1276E 0x044C +0x1276F 0x044D +0x12770 0x044E +0x12771 0x044F +0x12772 0x30F7 +0x12773 0x30F8 +0x12774 0x30F9 +0x12775 0x30FA +0x12776 0x22DA +0x12777 0x22DB +0x12778 0x2153 +0x12779 0x2154 +0x1277A 0x2155 +0x1277B 0x2713 +0x1277C 0x2318 +0x1277D 0x2423 +0x1277E 0x23CE +0x12821 0x2500 +0x12822 0x2502 +0x12823 0x250C +0x12824 0x2510 +0x12825 0x2518 +0x12826 0x2514 +0x12827 0x251C +0x12828 0x252C +0x12829 0x2524 +0x1282A 0x2534 +0x1282B 0x253C +0x1282C 0x2501 +0x1282D 0x2503 +0x1282E 0x250F +0x1282F 0x2513 +0x12830 0x251B +0x12831 0x2517 +0x12832 0x2523 +0x12833 0x2533 +0x12834 0x252B +0x12835 0x253B +0x12836 0x254B +0x12837 0x2520 +0x12838 0x252F +0x12839 0x2528 +0x1283A 0x2537 +0x1283B 0x253F +0x1283C 0x251D +0x1283D 0x2530 +0x1283E 0x2525 +0x1283F 0x2538 +0x12840 0x2542 +0x12841 0x3251 +0x12842 0x3252 +0x12843 0x3253 +0x12844 0x3254 +0x12845 0x3255 +0x12846 0x3256 +0x12847 0x3257 +0x12848 0x3258 +0x12849 0x3259 +0x1284A 0x325A +0x1284B 0x325B +0x1284C 0x325C +0x1284D 0x325D +0x1284E 0x325E +0x1284F 0x325F +0x12850 0x32B1 +0x12851 0x32B2 +0x12852 0x32B3 +0x12853 0x32B4 +0x12854 0x32B5 +0x12855 0x32B6 +0x12856 0x32B7 +0x12857 0x32B8 +0x12858 0x32B9 +0x12859 0x32BA +0x1285A 0x32BB +0x1285B 0x32BC +0x1285C 0x32BD +0x1285D 0x32BE +0x1285E 0x32BF +0x12867 0x25D0 +0x12868 0x25D1 +0x12869 0x25D2 +0x1286A 0x25D3 +0x1286B 0x203C +0x1286C 0x2047 +0x1286D 0x2048 +0x1286E 0x2049 +0x1286F 0x01CD +0x12870 0x01CE +0x12871 0x01D0 +0x12872 0x1E3E +0x12873 0x1E3F +0x12874 0x01F8 +0x12875 0x01F9 +0x12876 0x01D1 +0x12877 0x01D2 +0x12878 0x01D4 +0x12879 0x01D6 +0x1287A 0x01D8 +0x1287B 0x01DA +0x1287C 0x01DC +0x12921 0x20AC +0x12922 0x00A0 +0x12923 0x00A1 +0x12924 0x00A4 +0x12925 0x00A6 +0x12926 0x00A9 +0x12927 0x00AA +0x12928 0x00AB +0x12929 0x00AD +0x1292A 0x00AE +0x1292B 0x00AF +0x1292C 0x00B2 +0x1292D 0x00B3 +0x1292E 0x00B7 +0x1292F 0x00B8 +0x12930 0x00B9 +0x12931 0x00BA +0x12932 0x00BB +0x12933 0x00BC +0x12934 0x00BD +0x12935 0x00BE +0x12936 0x00BF +0x12937 0x00C0 +0x12938 0x00C1 +0x12939 0x00C2 +0x1293A 0x00C3 +0x1293B 0x00C4 +0x1293C 0x00C5 +0x1293D 0x00C6 +0x1293E 0x00C7 +0x1293F 0x00C8 +0x12940 0x00C9 +0x12941 0x00CA +0x12942 0x00CB +0x12943 0x00CC +0x12944 0x00CD +0x12945 0x00CE +0x12946 0x00CF +0x12947 0x00D0 +0x12948 0x00D1 +0x12949 0x00D2 +0x1294A 0x00D3 +0x1294B 0x00D4 +0x1294C 0x00D5 +0x1294D 0x00D6 +0x1294E 0x00D8 +0x1294F 0x00D9 +0x12950 0x00DA +0x12951 0x00DB +0x12952 0x00DC +0x12953 0x00DD +0x12954 0x00DE +0x12955 0x00DF +0x12956 0x00E0 +0x12957 0x00E1 +0x12958 0x00E2 +0x12959 0x00E3 +0x1295A 0x00E4 +0x1295B 0x00E5 +0x1295C 0x00E6 +0x1295D 0x00E7 +0x1295E 0x00E8 +0x1295F 0x00E9 +0x12960 0x00EA +0x12961 0x00EB +0x12962 0x00EC +0x12963 0x00ED +0x12964 0x00EE +0x12965 0x00EF +0x12966 0x00F0 +0x12967 0x00F1 +0x12968 0x00F2 +0x12969 0x00F3 +0x1296A 0x00F4 +0x1296B 0x00F5 +0x1296C 0x00F6 +0x1296D 0x00F8 +0x1296E 0x00F9 +0x1296F 0x00FA +0x12970 0x00FB +0x12971 0x00FC +0x12972 0x00FD +0x12973 0x00FE +0x12974 0x00FF +0x12975 0x0100 +0x12976 0x012A +0x12977 0x016A +0x12978 0x0112 +0x12979 0x014C +0x1297A 0x0101 +0x1297B 0x012B +0x1297C 0x016B +0x1297D 0x0113 +0x1297E 0x014D +0x12A21 0x0104 +0x12A22 0x02D8 +0x12A23 0x0141 +0x12A24 0x013D +0x12A25 0x015A +0x12A26 0x0160 +0x12A27 0x015E +0x12A28 0x0164 +0x12A29 0x0179 +0x12A2A 0x017D +0x12A2B 0x017B +0x12A2C 0x0105 +0x12A2D 0x02DB +0x12A2E 0x0142 +0x12A2F 0x013E +0x12A30 0x015B +0x12A31 0x02C7 +0x12A32 0x0161 +0x12A33 0x015F +0x12A34 0x0165 +0x12A35 0x017A +0x12A36 0x02DD +0x12A37 0x017E +0x12A38 0x017C +0x12A39 0x0154 +0x12A3A 0x0102 +0x12A3B 0x0139 +0x12A3C 0x0106 +0x12A3D 0x010C +0x12A3E 0x0118 +0x12A3F 0x011A +0x12A40 0x010E +0x12A41 0x0143 +0x12A42 0x0147 +0x12A43 0x0150 +0x12A44 0x0158 +0x12A45 0x016E +0x12A46 0x0170 +0x12A47 0x0162 +0x12A48 0x0155 +0x12A49 0x0103 +0x12A4A 0x013A +0x12A4B 0x0107 +0x12A4C 0x010D +0x12A4D 0x0119 +0x12A4E 0x011B +0x12A4F 0x010F +0x12A50 0x0111 +0x12A51 0x0144 +0x12A52 0x0148 +0x12A53 0x0151 +0x12A54 0x0159 +0x12A55 0x016F +0x12A56 0x0171 +0x12A57 0x0163 +0x12A58 0x02D9 +0x12A59 0x0108 +0x12A5A 0x011C +0x12A5B 0x0124 +0x12A5C 0x0134 +0x12A5D 0x015C +0x12A5E 0x016C +0x12A5F 0x0109 +0x12A60 0x011D +0x12A61 0x0125 +0x12A62 0x0135 +0x12A63 0x015D +0x12A64 0x016D +0x12A65 0x0271 +0x12A66 0x028B +0x12A67 0x027E +0x12A68 0x0283 +0x12A69 0x0292 +0x12A6A 0x026C +0x12A6B 0x026E +0x12A6C 0x0279 +0x12A6D 0x0288 +0x12A6E 0x0256 +0x12A6F 0x0273 +0x12A70 0x027D +0x12A71 0x0282 +0x12A72 0x0290 +0x12A73 0x027B +0x12A74 0x026D +0x12A75 0x025F +0x12A76 0x0272 +0x12A77 0x029D +0x12A78 0x028E +0x12A79 0x0261 +0x12A7A 0x014B +0x12A7B 0x0270 +0x12A7C 0x0281 +0x12A7D 0x0127 +0x12A7E 0x0295 +0x12B21 0x0294 +0x12B22 0x0266 +0x12B23 0x0298 +0x12B24 0x01C2 +0x12B25 0x0253 +0x12B26 0x0257 +0x12B27 0x0284 +0x12B28 0x0260 +0x12B29 0x0193 +0x12B2A 0x0153 +0x12B2B 0x0152 +0x12B2C 0x0268 +0x12B2D 0x0289 +0x12B2E 0x0258 +0x12B2F 0x0275 +0x12B30 0x0259 +0x12B31 0x025C +0x12B32 0x025E +0x12B33 0x0250 +0x12B34 0x026F +0x12B35 0x028A +0x12B36 0x0264 +0x12B37 0x028C +0x12B38 0x0254 +0x12B39 0x0251 +0x12B3A 0x0252 +0x12B3B 0x028D +0x12B3C 0x0265 +0x12B3D 0x02A2 +0x12B3E 0x02A1 +0x12B3F 0x0255 +0x12B40 0x0291 +0x12B41 0x027A +0x12B42 0x0267 +0x12B43 0x025A +0x12B44 0x00E6 0x0300 +0x12B45 0x01FD +0x12B46 0x1F70 +0x12B47 0x1F71 +0x12B48 0x0254 0x0300 +0x12B49 0x0254 0x0301 +0x12B4A 0x028C 0x0300 +0x12B4B 0x028C 0x0301 +0x12B4C 0x0259 0x0300 +0x12B4D 0x0259 0x0301 +0x12B4E 0x025A 0x0300 +0x12B4F 0x025A 0x0301 +0x12B50 0x1F72 +0x12B51 0x1F73 +0x12B52 0x0361 +0x12B53 0x02C8 +0x12B54 0x02CC +0x12B55 0x02D0 +0x12B56 0x02D1 +0x12B57 0x0306 +0x12B58 0x203F +0x12B59 0x030B +0x12B5A 0x0301 +0x12B5B 0x0304 +0x12B5C 0x0300 +0x12B5D 0x030F +0x12B5E 0x030C +0x12B5F 0x0302 +0x12B60 0x02E5 +0x12B61 0x02E6 +0x12B62 0x02E7 +0x12B63 0x02E8 +0x12B64 0x02E9 +0x12B65 0x02E9 0x02E5 +0x12B66 0x02E5 0x02E9 +0x12B67 0x0325 +0x12B68 0x032C +0x12B69 0x0339 +0x12B6A 0x031C +0x12B6B 0x031F +0x12B6C 0x0320 +0x12B6D 0x0308 +0x12B6E 0x033D +0x12B6F 0x0329 +0x12B70 0x032F +0x12B71 0x02DE +0x12B72 0x0324 +0x12B73 0x0330 +0x12B74 0x033C +0x12B75 0x0334 +0x12B76 0x031D +0x12B77 0x031E +0x12B78 0x0318 +0x12B79 0x0319 +0x12B7A 0x032A +0x12B7B 0x033A +0x12B7C 0x033B +0x12B7D 0x0303 +0x12B7E 0x031A +0x12C21 0x2776 +0x12C22 0x2777 +0x12C23 0x2778 +0x12C24 0x2779 +0x12C25 0x277A +0x12C26 0x277B +0x12C27 0x277C +0x12C28 0x277D +0x12C29 0x277E +0x12C2A 0x277F +0x12C2B 0x24EB +0x12C2C 0x24EC +0x12C2D 0x24ED +0x12C2E 0x24EE +0x12C2F 0x24EF +0x12C30 0x24F0 +0x12C31 0x24F1 +0x12C32 0x24F2 +0x12C33 0x24F3 +0x12C34 0x24F4 +0x12C35 0x2170 +0x12C36 0x2171 +0x12C37 0x2172 +0x12C38 0x2173 +0x12C39 0x2174 +0x12C3A 0x2175 +0x12C3B 0x2176 +0x12C3C 0x2177 +0x12C3D 0x2178 +0x12C3E 0x2179 +0x12C3F 0x217A +0x12C40 0x217B +0x12C41 0x24D0 +0x12C42 0x24D1 +0x12C43 0x24D2 +0x12C44 0x24D3 +0x12C45 0x24D4 +0x12C46 0x24D5 +0x12C47 0x24D6 +0x12C48 0x24D7 +0x12C49 0x24D8 +0x12C4A 0x24D9 +0x12C4B 0x24DA +0x12C4C 0x24DB +0x12C4D 0x24DC +0x12C4E 0x24DD +0x12C4F 0x24DE +0x12C50 0x24DF +0x12C51 0x24E0 +0x12C52 0x24E1 +0x12C53 0x24E2 +0x12C54 0x24E3 +0x12C55 0x24E4 +0x12C56 0x24E5 +0x12C57 0x24E6 +0x12C58 0x24E7 +0x12C59 0x24E8 +0x12C5A 0x24E9 +0x12C5B 0x32D0 +0x12C5C 0x32D1 +0x12C5D 0x32D2 +0x12C5E 0x32D3 +0x12C5F 0x32D4 +0x12C60 0x32D5 +0x12C61 0x32D6 +0x12C62 0x32D7 +0x12C63 0x32D8 +0x12C64 0x32D9 +0x12C65 0x32DA +0x12C66 0x32DB +0x12C67 0x32DC +0x12C68 0x32DD +0x12C69 0x32DE +0x12C6A 0x32DF +0x12C6B 0x32E0 +0x12C6C 0x32E1 +0x12C6D 0x32E2 +0x12C6E 0x32E3 +0x12C6F 0x32FA +0x12C70 0x32E9 +0x12C71 0x32E5 +0x12C72 0x32ED +0x12C73 0x32EC +0x12C7D 0x2051 +0x12C7E 0x2042 +0x12D21 0x2460 +0x12D22 0x2461 +0x12D23 0x2462 +0x12D24 0x2463 +0x12D25 0x2464 +0x12D26 0x2465 +0x12D27 0x2466 +0x12D28 0x2467 +0x12D29 0x2468 +0x12D2A 0x2469 +0x12D2B 0x246A +0x12D2C 0x246B +0x12D2D 0x246C +0x12D2E 0x246D +0x12D2F 0x246E +0x12D30 0x246F +0x12D31 0x2470 +0x12D32 0x2471 +0x12D33 0x2472 +0x12D34 0x2473 +0x12D35 0x2160 +0x12D36 0x2161 +0x12D37 0x2162 +0x12D38 0x2163 +0x12D39 0x2164 +0x12D3A 0x2165 +0x12D3B 0x2166 +0x12D3C 0x2167 +0x12D3D 0x2168 +0x12D3E 0x2169 +0x12D3F 0x216A +0x12D40 0x3349 +0x12D41 0x3314 +0x12D42 0x3322 +0x12D43 0x334D +0x12D44 0x3318 +0x12D45 0x3327 +0x12D46 0x3303 +0x12D47 0x3336 +0x12D48 0x3351 +0x12D49 0x3357 +0x12D4A 0x330D +0x12D4B 0x3326 +0x12D4C 0x3323 +0x12D4D 0x332B +0x12D4E 0x334A +0x12D4F 0x333B +0x12D50 0x339C +0x12D51 0x339D +0x12D52 0x339E +0x12D53 0x338E +0x12D54 0x338F +0x12D55 0x33C4 +0x12D56 0x33A1 +0x12D57 0x216B +0x12D5F 0x337B +0x12D60 0x301D +0x12D61 0x301F +0x12D62 0x2116 +0x12D63 0x33CD +0x12D64 0x2121 +0x12D65 0x32A4 +0x12D66 0x32A5 +0x12D67 0x32A6 +0x12D68 0x32A7 +0x12D69 0x32A8 +0x12D6A 0x3231 +0x12D6B 0x3232 +0x12D6C 0x3239 +0x12D6D 0x337E +0x12D6E 0x337D +0x12D6F 0x337C +0x12D73 0x222E +0x12D78 0x221F +0x12D79 0x22BF +0x12D7D 0x2756 +0x12D7E 0x261E +0x12E21 0x4FF1 +0x12E22 0x2000B +0x12E23 0x3402 +0x12E24 0x4E28 +0x12E25 0x4E2F +0x12E26 0x4E30 +0x12E27 0x4E8D +0x12E28 0x4EE1 +0x12E29 0x4EFD +0x12E2A 0x4EFF +0x12E2B 0x4F03 +0x12E2C 0x4F0B +0x12E2D 0x4F60 +0x12E2E 0x4F48 +0x12E2F 0x4F49 +0x12E30 0x4F56 +0x12E31 0x4F5F +0x12E32 0x4F6A +0x12E33 0x4F6C +0x12E34 0x4F7E +0x12E35 0x4F8A +0x12E36 0x4F94 +0x12E37 0x4F97 +0x12E38 0xFA30 +0x12E39 0x4FC9 +0x12E3A 0x4FE0 +0x12E3B 0x5001 +0x12E3C 0x5002 +0x12E3D 0x500E +0x12E3E 0x5018 +0x12E3F 0x5027 +0x12E40 0x502E +0x12E41 0x5040 +0x12E42 0x503B +0x12E43 0x5041 +0x12E44 0x5094 +0x12E45 0x50CC +0x12E46 0x50F2 +0x12E47 0x50D0 +0x12E48 0x50E6 +0x12E49 0xFA31 +0x12E4A 0x5106 +0x12E4B 0x5103 +0x12E4C 0x510B +0x12E4D 0x511E +0x12E4E 0x5135 +0x12E4F 0x514A +0x12E50 0xFA32 +0x12E51 0x5155 +0x12E52 0x5157 +0x12E53 0x34B5 +0x12E54 0x519D +0x12E55 0x51C3 +0x12E56 0x51CA +0x12E57 0x51DE +0x12E58 0x51E2 +0x12E59 0x51EE +0x12E5A 0x5201 +0x12E5B 0x34DB +0x12E5C 0x5213 +0x12E5D 0x5215 +0x12E5E 0x5249 +0x12E5F 0x5257 +0x12E60 0x5261 +0x12E61 0x5293 +0x12E62 0x52C8 +0x12E63 0xFA33 +0x12E64 0x52CC +0x12E65 0x52D0 +0x12E66 0x52D6 +0x12E67 0x52DB +0x12E68 0xFA34 +0x12E69 0x52F0 +0x12E6A 0x52FB +0x12E6B 0x5300 +0x12E6C 0x5307 +0x12E6D 0x531C +0x12E6E 0xFA35 +0x12E6F 0x5361 +0x12E70 0x5363 +0x12E71 0x537D +0x12E72 0x5393 +0x12E73 0x539D +0x12E74 0x53B2 +0x12E75 0x5412 +0x12E76 0x5427 +0x12E77 0x544D +0x12E78 0x549C +0x12E79 0x546B +0x12E7A 0x5474 +0x12E7B 0x547F +0x12E7C 0x5488 +0x12E7D 0x5496 +0x12E7E 0x54A1 +0x12F21 0x54A9 +0x12F22 0x54C6 +0x12F23 0x54FF +0x12F24 0x550E +0x12F25 0x552B +0x12F26 0x5535 +0x12F27 0x5550 +0x12F28 0x555E +0x12F29 0x5581 +0x12F2A 0x5586 +0x12F2B 0x558E +0x12F2C 0xFA36 +0x12F2D 0x55AD +0x12F2E 0x55CE +0x12F2F 0xFA37 +0x12F30 0x5608 +0x12F31 0x560E +0x12F32 0x563B +0x12F33 0x5649 +0x12F34 0x5676 +0x12F35 0x5666 +0x12F36 0xFA38 +0x12F37 0x566F +0x12F38 0x5671 +0x12F39 0x5672 +0x12F3A 0x5699 +0x12F3B 0x569E +0x12F3C 0x56A9 +0x12F3D 0x56AC +0x12F3E 0x56B3 +0x12F3F 0x56C9 +0x12F40 0x56CA +0x12F41 0x570A +0x12F42 0x2123D +0x12F43 0x5721 +0x12F44 0x572F +0x12F45 0x5733 +0x12F46 0x5734 +0x12F47 0x5770 +0x12F48 0x5777 +0x12F49 0x577C +0x12F4A 0x579C +0x12F4B 0xFA0F +0x12F4C 0x2131B +0x12F4D 0x57B8 +0x12F4E 0x57C7 +0x12F4F 0x57C8 +0x12F50 0x57CF +0x12F51 0x57E4 +0x12F52 0x57ED +0x12F53 0x57F5 +0x12F54 0x57F6 +0x12F55 0x57FF +0x12F56 0x5809 +0x12F57 0xFA10 +0x12F58 0x5861 +0x12F59 0x5864 +0x12F5A 0xFA39 +0x12F5B 0x587C +0x12F5C 0x5889 +0x12F5D 0x589E +0x12F5E 0xFA3A +0x12F5F 0x58A9 +0x12F60 0x2146E +0x12F61 0x58D2 +0x12F62 0x58CE +0x12F63 0x58D4 +0x12F64 0x58DA +0x12F65 0x58E0 +0x12F66 0x58E9 +0x12F67 0x590C +0x12F68 0x8641 +0x12F69 0x595D +0x12F6A 0x596D +0x12F6B 0x598B +0x12F6C 0x5992 +0x12F6D 0x59A4 +0x12F6E 0x59C3 +0x12F6F 0x59D2 +0x12F70 0x59DD +0x12F71 0x5A13 +0x12F72 0x5A23 +0x12F73 0x5A67 +0x12F74 0x5A6D +0x12F75 0x5A77 +0x12F76 0x5A7E +0x12F77 0x5A84 +0x12F78 0x5A9E +0x12F79 0x5AA7 +0x12F7A 0x5AC4 +0x12F7B 0x218BD +0x12F7C 0x5B19 +0x12F7D 0x5B25 +0x12F7E 0x525D +0x13021 0x4E9C +0x13022 0x5516 +0x13023 0x5A03 +0x13024 0x963F +0x13025 0x54C0 +0x13026 0x611B +0x13027 0x6328 +0x13028 0x59F6 +0x13029 0x9022 +0x1302A 0x8475 +0x1302B 0x831C +0x1302C 0x7A50 +0x1302D 0x60AA +0x1302E 0x63E1 +0x1302F 0x6E25 +0x13030 0x65ED +0x13031 0x8466 +0x13032 0x82A6 +0x13033 0x9BF5 +0x13034 0x6893 +0x13035 0x5727 +0x13036 0x65A1 +0x13037 0x6271 +0x13038 0x5B9B +0x13039 0x59D0 +0x1303A 0x867B +0x1303B 0x98F4 +0x1303C 0x7D62 +0x1303D 0x7DBE +0x1303E 0x9B8E +0x1303F 0x6216 +0x13040 0x7C9F +0x13041 0x88B7 +0x13042 0x5B89 +0x13043 0x5EB5 +0x13044 0x6309 +0x13045 0x6697 +0x13046 0x6848 +0x13047 0x95C7 +0x13048 0x978D +0x13049 0x674F +0x1304A 0x4EE5 +0x1304B 0x4F0A +0x1304C 0x4F4D +0x1304D 0x4F9D +0x1304E 0x5049 +0x1304F 0x56F2 +0x13050 0x5937 +0x13051 0x59D4 +0x13052 0x5A01 +0x13053 0x5C09 +0x13054 0x60DF +0x13055 0x610F +0x13056 0x6170 +0x13057 0x6613 +0x13058 0x6905 +0x13059 0x70BA +0x1305A 0x754F +0x1305B 0x7570 +0x1305C 0x79FB +0x1305D 0x7DAD +0x1305E 0x7DEF +0x1305F 0x80C3 +0x13060 0x840E +0x13061 0x8863 +0x13062 0x8B02 +0x13063 0x9055 +0x13064 0x907A +0x13065 0x533B +0x13066 0x4E95 +0x13067 0x4EA5 +0x13068 0x57DF +0x13069 0x80B2 +0x1306A 0x90C1 +0x1306B 0x78EF +0x1306C 0x4E00 +0x1306D 0x58F1 +0x1306E 0x6EA2 +0x1306F 0x9038 +0x13070 0x7A32 +0x13071 0x8328 +0x13072 0x828B +0x13073 0x9C2F +0x13074 0x5141 +0x13075 0x5370 +0x13076 0x54BD +0x13077 0x54E1 +0x13078 0x56E0 +0x13079 0x59FB +0x1307A 0x5F15 +0x1307B 0x98F2 +0x1307C 0x6DEB +0x1307D 0x80E4 +0x1307E 0x852D +0x13121 0x9662 +0x13122 0x9670 +0x13123 0x96A0 +0x13124 0x97FB +0x13125 0x540B +0x13126 0x53F3 +0x13127 0x5B87 +0x13128 0x70CF +0x13129 0x7FBD +0x1312A 0x8FC2 +0x1312B 0x96E8 +0x1312C 0x536F +0x1312D 0x9D5C +0x1312E 0x7ABA +0x1312F 0x4E11 +0x13130 0x7893 +0x13131 0x81FC +0x13132 0x6E26 +0x13133 0x5618 +0x13134 0x5504 +0x13135 0x6B1D +0x13136 0x851A +0x13137 0x9C3B +0x13138 0x59E5 +0x13139 0x53A9 +0x1313A 0x6D66 +0x1313B 0x74DC +0x1313C 0x958F +0x1313D 0x5642 +0x1313E 0x4E91 +0x1313F 0x904B +0x13140 0x96F2 +0x13141 0x834F +0x13142 0x990C +0x13143 0x53E1 +0x13144 0x55B6 +0x13145 0x5B30 +0x13146 0x5F71 +0x13147 0x6620 +0x13148 0x66F3 +0x13149 0x6804 +0x1314A 0x6C38 +0x1314B 0x6CF3 +0x1314C 0x6D29 +0x1314D 0x745B +0x1314E 0x76C8 +0x1314F 0x7A4E +0x13150 0x9834 +0x13151 0x82F1 +0x13152 0x885B +0x13153 0x8A60 +0x13154 0x92ED +0x13155 0x6DB2 +0x13156 0x75AB +0x13157 0x76CA +0x13158 0x99C5 +0x13159 0x60A6 +0x1315A 0x8B01 +0x1315B 0x8D8A +0x1315C 0x95B2 +0x1315D 0x698E +0x1315E 0x53AD +0x1315F 0x5186 +0x13160 0x5712 +0x13161 0x5830 +0x13162 0x5944 +0x13163 0x5BB4 +0x13164 0x5EF6 +0x13165 0x6028 +0x13166 0x63A9 +0x13167 0x63F4 +0x13168 0x6CBF +0x13169 0x6F14 +0x1316A 0x708E +0x1316B 0x7114 +0x1316C 0x7159 +0x1316D 0x71D5 +0x1316E 0x733F +0x1316F 0x7E01 +0x13170 0x8276 +0x13171 0x82D1 +0x13172 0x8597 +0x13173 0x9060 +0x13174 0x925B +0x13175 0x9D1B +0x13176 0x5869 +0x13177 0x65BC +0x13178 0x6C5A +0x13179 0x7525 +0x1317A 0x51F9 +0x1317B 0x592E +0x1317C 0x5965 +0x1317D 0x5F80 +0x1317E 0x5FDC +0x13221 0x62BC +0x13222 0x65FA +0x13223 0x6A2A +0x13224 0x6B27 +0x13225 0x6BB4 +0x13226 0x738B +0x13227 0x7FC1 +0x13228 0x8956 +0x13229 0x9D2C +0x1322A 0x9D0E +0x1322B 0x9EC4 +0x1322C 0x5CA1 +0x1322D 0x6C96 +0x1322E 0x837B +0x1322F 0x5104 +0x13230 0x5C4B +0x13231 0x61B6 +0x13232 0x81C6 +0x13233 0x6876 +0x13234 0x7261 +0x13235 0x4E59 +0x13236 0x4FFA +0x13237 0x5378 +0x13238 0x6069 +0x13239 0x6E29 +0x1323A 0x7A4F +0x1323B 0x97F3 +0x1323C 0x4E0B +0x1323D 0x5316 +0x1323E 0x4EEE +0x1323F 0x4F55 +0x13240 0x4F3D +0x13241 0x4FA1 +0x13242 0x4F73 +0x13243 0x52A0 +0x13244 0x53EF +0x13245 0x5609 +0x13246 0x590F +0x13247 0x5AC1 +0x13248 0x5BB6 +0x13249 0x5BE1 +0x1324A 0x79D1 +0x1324B 0x6687 +0x1324C 0x679C +0x1324D 0x67B6 +0x1324E 0x6B4C +0x1324F 0x6CB3 +0x13250 0x706B +0x13251 0x73C2 +0x13252 0x798D +0x13253 0x79BE +0x13254 0x7A3C +0x13255 0x7B87 +0x13256 0x82B1 +0x13257 0x82DB +0x13258 0x8304 +0x13259 0x8377 +0x1325A 0x83EF +0x1325B 0x83D3 +0x1325C 0x8766 +0x1325D 0x8AB2 +0x1325E 0x5629 +0x1325F 0x8CA8 +0x13260 0x8FE6 +0x13261 0x904E +0x13262 0x971E +0x13263 0x868A +0x13264 0x4FC4 +0x13265 0x5CE8 +0x13266 0x6211 +0x13267 0x7259 +0x13268 0x753B +0x13269 0x81E5 +0x1326A 0x82BD +0x1326B 0x86FE +0x1326C 0x8CC0 +0x1326D 0x96C5 +0x1326E 0x9913 +0x1326F 0x99D5 +0x13270 0x4ECB +0x13271 0x4F1A +0x13272 0x89E3 +0x13273 0x56DE +0x13274 0x584A +0x13275 0x58CA +0x13276 0x5EFB +0x13277 0x5FEB +0x13278 0x602A +0x13279 0x6094 +0x1327A 0x6062 +0x1327B 0x61D0 +0x1327C 0x6212 +0x1327D 0x62D0 +0x1327E 0x6539 +0x13321 0x9B41 +0x13322 0x6666 +0x13323 0x68B0 +0x13324 0x6D77 +0x13325 0x7070 +0x13326 0x754C +0x13327 0x7686 +0x13328 0x7D75 +0x13329 0x82A5 +0x1332A 0x87F9 +0x1332B 0x958B +0x1332C 0x968E +0x1332D 0x8C9D +0x1332E 0x51F1 +0x1332F 0x52BE +0x13330 0x5916 +0x13331 0x54B3 +0x13332 0x5BB3 +0x13333 0x5D16 +0x13334 0x6168 +0x13335 0x6982 +0x13336 0x6DAF +0x13337 0x788D +0x13338 0x84CB +0x13339 0x8857 +0x1333A 0x8A72 +0x1333B 0x93A7 +0x1333C 0x9AB8 +0x1333D 0x6D6C +0x1333E 0x99A8 +0x1333F 0x86D9 +0x13340 0x57A3 +0x13341 0x67FF +0x13342 0x86CE +0x13343 0x920E +0x13344 0x5283 +0x13345 0x5687 +0x13346 0x5404 +0x13347 0x5ED3 +0x13348 0x62E1 +0x13349 0x64B9 +0x1334A 0x683C +0x1334B 0x6838 +0x1334C 0x6BBB +0x1334D 0x7372 +0x1334E 0x78BA +0x1334F 0x7A6B +0x13350 0x899A +0x13351 0x89D2 +0x13352 0x8D6B +0x13353 0x8F03 +0x13354 0x90ED +0x13355 0x95A3 +0x13356 0x9694 +0x13357 0x9769 +0x13358 0x5B66 +0x13359 0x5CB3 +0x1335A 0x697D +0x1335B 0x984D +0x1335C 0x984E +0x1335D 0x639B +0x1335E 0x7B20 +0x1335F 0x6A2B +0x13360 0x6A7F +0x13361 0x68B6 +0x13362 0x9C0D +0x13363 0x6F5F +0x13364 0x5272 +0x13365 0x559D +0x13366 0x6070 +0x13367 0x62EC +0x13368 0x6D3B +0x13369 0x6E07 +0x1336A 0x6ED1 +0x1336B 0x845B +0x1336C 0x8910 +0x1336D 0x8F44 +0x1336E 0x4E14 +0x1336F 0x9C39 +0x13370 0x53F6 +0x13371 0x691B +0x13372 0x6A3A +0x13373 0x9784 +0x13374 0x682A +0x13375 0x515C +0x13376 0x7AC3 +0x13377 0x84B2 +0x13378 0x91DC +0x13379 0x938C +0x1337A 0x565B +0x1337B 0x9D28 +0x1337C 0x6822 +0x1337D 0x8305 +0x1337E 0x8431 +0x13421 0x7CA5 +0x13422 0x5208 +0x13423 0x82C5 +0x13424 0x74E6 +0x13425 0x4E7E +0x13426 0x4F83 +0x13427 0x51A0 +0x13428 0x5BD2 +0x13429 0x520A +0x1342A 0x52D8 +0x1342B 0x52E7 +0x1342C 0x5DFB +0x1342D 0x559A +0x1342E 0x582A +0x1342F 0x59E6 +0x13430 0x5B8C +0x13431 0x5B98 +0x13432 0x5BDB +0x13433 0x5E72 +0x13434 0x5E79 +0x13435 0x60A3 +0x13436 0x611F +0x13437 0x6163 +0x13438 0x61BE +0x13439 0x63DB +0x1343A 0x6562 +0x1343B 0x67D1 +0x1343C 0x6853 +0x1343D 0x68FA +0x1343E 0x6B3E +0x1343F 0x6B53 +0x13440 0x6C57 +0x13441 0x6F22 +0x13442 0x6F97 +0x13443 0x6F45 +0x13444 0x74B0 +0x13445 0x7518 +0x13446 0x76E3 +0x13447 0x770B +0x13448 0x7AFF +0x13449 0x7BA1 +0x1344A 0x7C21 +0x1344B 0x7DE9 +0x1344C 0x7F36 +0x1344D 0x7FF0 +0x1344E 0x809D +0x1344F 0x8266 +0x13450 0x839E +0x13451 0x89B3 +0x13452 0x8ACC +0x13453 0x8CAB +0x13454 0x9084 +0x13455 0x9451 +0x13456 0x9593 +0x13457 0x9591 +0x13458 0x95A2 +0x13459 0x9665 +0x1345A 0x97D3 +0x1345B 0x9928 +0x1345C 0x8218 +0x1345D 0x4E38 +0x1345E 0x542B +0x1345F 0x5CB8 +0x13460 0x5DCC +0x13461 0x73A9 +0x13462 0x764C +0x13463 0x773C +0x13464 0x5CA9 +0x13465 0x7FEB +0x13466 0x8D0B +0x13467 0x96C1 +0x13468 0x9811 +0x13469 0x9854 +0x1346A 0x9858 +0x1346B 0x4F01 +0x1346C 0x4F0E +0x1346D 0x5371 +0x1346E 0x559C +0x1346F 0x5668 +0x13470 0x57FA +0x13471 0x5947 +0x13472 0x5B09 +0x13473 0x5BC4 +0x13474 0x5C90 +0x13475 0x5E0C +0x13476 0x5E7E +0x13477 0x5FCC +0x13478 0x63EE +0x13479 0x673A +0x1347A 0x65D7 +0x1347B 0x65E2 +0x1347C 0x671F +0x1347D 0x68CB +0x1347E 0x68C4 +0x13521 0x6A5F +0x13522 0x5E30 +0x13523 0x6BC5 +0x13524 0x6C17 +0x13525 0x6C7D +0x13526 0x757F +0x13527 0x7948 +0x13528 0x5B63 +0x13529 0x7A00 +0x1352A 0x7D00 +0x1352B 0x5FBD +0x1352C 0x898F +0x1352D 0x8A18 +0x1352E 0x8CB4 +0x1352F 0x8D77 +0x13530 0x8ECC +0x13531 0x8F1D +0x13532 0x98E2 +0x13533 0x9A0E +0x13534 0x9B3C +0x13535 0x4E80 +0x13536 0x507D +0x13537 0x5100 +0x13538 0x5993 +0x13539 0x5B9C +0x1353A 0x622F +0x1353B 0x6280 +0x1353C 0x64EC +0x1353D 0x6B3A +0x1353E 0x72A0 +0x1353F 0x7591 +0x13540 0x7947 +0x13541 0x7FA9 +0x13542 0x87FB +0x13543 0x8ABC +0x13544 0x8B70 +0x13545 0x63AC +0x13546 0x83CA +0x13547 0x97A0 +0x13548 0x5409 +0x13549 0x5403 +0x1354A 0x55AB +0x1354B 0x6854 +0x1354C 0x6A58 +0x1354D 0x8A70 +0x1354E 0x7827 +0x1354F 0x6775 +0x13550 0x9ECD +0x13551 0x5374 +0x13552 0x5BA2 +0x13553 0x811A +0x13554 0x8650 +0x13555 0x9006 +0x13556 0x4E18 +0x13557 0x4E45 +0x13558 0x4EC7 +0x13559 0x4F11 +0x1355A 0x53CA +0x1355B 0x5438 +0x1355C 0x5BAE +0x1355D 0x5F13 +0x1355E 0x6025 +0x1355F 0x6551 +0x13560 0x673D +0x13561 0x6C42 +0x13562 0x6C72 +0x13563 0x6CE3 +0x13564 0x7078 +0x13565 0x7403 +0x13566 0x7A76 +0x13567 0x7AAE +0x13568 0x7B08 +0x13569 0x7D1A +0x1356A 0x7CFE +0x1356B 0x7D66 +0x1356C 0x65E7 +0x1356D 0x725B +0x1356E 0x53BB +0x1356F 0x5C45 +0x13570 0x5DE8 +0x13571 0x62D2 +0x13572 0x62E0 +0x13573 0x6319 +0x13574 0x6E20 +0x13575 0x865A +0x13576 0x8A31 +0x13577 0x8DDD +0x13578 0x92F8 +0x13579 0x6F01 +0x1357A 0x79A6 +0x1357B 0x9B5A +0x1357C 0x4EA8 +0x1357D 0x4EAB +0x1357E 0x4EAC +0x13621 0x4F9B +0x13622 0x4FA0 +0x13623 0x50D1 +0x13624 0x5147 +0x13625 0x7AF6 +0x13626 0x5171 +0x13627 0x51F6 +0x13628 0x5354 +0x13629 0x5321 +0x1362A 0x537F +0x1362B 0x53EB +0x1362C 0x55AC +0x1362D 0x5883 +0x1362E 0x5CE1 +0x1362F 0x5F37 +0x13630 0x5F4A +0x13631 0x602F +0x13632 0x6050 +0x13633 0x606D +0x13634 0x631F +0x13635 0x6559 +0x13636 0x6A4B +0x13637 0x6CC1 +0x13638 0x72C2 +0x13639 0x72ED +0x1363A 0x77EF +0x1363B 0x80F8 +0x1363C 0x8105 +0x1363D 0x8208 +0x1363E 0x854E +0x1363F 0x90F7 +0x13640 0x93E1 +0x13641 0x97FF +0x13642 0x9957 +0x13643 0x9A5A +0x13644 0x4EF0 +0x13645 0x51DD +0x13646 0x5C2D +0x13647 0x6681 +0x13648 0x696D +0x13649 0x5C40 +0x1364A 0x66F2 +0x1364B 0x6975 +0x1364C 0x7389 +0x1364D 0x6850 +0x1364E 0x7C81 +0x1364F 0x50C5 +0x13650 0x52E4 +0x13651 0x5747 +0x13652 0x5DFE +0x13653 0x9326 +0x13654 0x65A4 +0x13655 0x6B23 +0x13656 0x6B3D +0x13657 0x7434 +0x13658 0x7981 +0x13659 0x79BD +0x1365A 0x7B4B +0x1365B 0x7DCA +0x1365C 0x82B9 +0x1365D 0x83CC +0x1365E 0x887F +0x1365F 0x895F +0x13660 0x8B39 +0x13661 0x8FD1 +0x13662 0x91D1 +0x13663 0x541F +0x13664 0x9280 +0x13665 0x4E5D +0x13666 0x5036 +0x13667 0x53E5 +0x13668 0x533A +0x13669 0x72D7 +0x1366A 0x7396 +0x1366B 0x77E9 +0x1366C 0x82E6 +0x1366D 0x8EAF +0x1366E 0x99C6 +0x1366F 0x99C8 +0x13670 0x99D2 +0x13671 0x5177 +0x13672 0x611A +0x13673 0x865E +0x13674 0x55B0 +0x13675 0x7A7A +0x13676 0x5076 +0x13677 0x5BD3 +0x13678 0x9047 +0x13679 0x9685 +0x1367A 0x4E32 +0x1367B 0x6ADB +0x1367C 0x91E7 +0x1367D 0x5C51 +0x1367E 0x5C48 +0x13721 0x6398 +0x13722 0x7A9F +0x13723 0x6C93 +0x13724 0x9774 +0x13725 0x8F61 +0x13726 0x7AAA +0x13727 0x718A +0x13728 0x9688 +0x13729 0x7C82 +0x1372A 0x6817 +0x1372B 0x7E70 +0x1372C 0x6851 +0x1372D 0x936C +0x1372E 0x52F2 +0x1372F 0x541B +0x13730 0x85AB +0x13731 0x8A13 +0x13732 0x7FA4 +0x13733 0x8ECD +0x13734 0x90E1 +0x13735 0x5366 +0x13736 0x8888 +0x13737 0x7941 +0x13738 0x4FC2 +0x13739 0x50BE +0x1373A 0x5211 +0x1373B 0x5144 +0x1373C 0x5553 +0x1373D 0x572D +0x1373E 0x73EA +0x1373F 0x578B +0x13740 0x5951 +0x13741 0x5F62 +0x13742 0x5F84 +0x13743 0x6075 +0x13744 0x6176 +0x13745 0x6167 +0x13746 0x61A9 +0x13747 0x63B2 +0x13748 0x643A +0x13749 0x656C +0x1374A 0x666F +0x1374B 0x6842 +0x1374C 0x6E13 +0x1374D 0x7566 +0x1374E 0x7A3D +0x1374F 0x7CFB +0x13750 0x7D4C +0x13751 0x7D99 +0x13752 0x7E4B +0x13753 0x7F6B +0x13754 0x830E +0x13755 0x834A +0x13756 0x86CD +0x13757 0x8A08 +0x13758 0x8A63 +0x13759 0x8B66 +0x1375A 0x8EFD +0x1375B 0x981A +0x1375C 0x9D8F +0x1375D 0x82B8 +0x1375E 0x8FCE +0x1375F 0x9BE8 +0x13760 0x5287 +0x13761 0x621F +0x13762 0x6483 +0x13763 0x6FC0 +0x13764 0x9699 +0x13765 0x6841 +0x13766 0x5091 +0x13767 0x6B20 +0x13768 0x6C7A +0x13769 0x6F54 +0x1376A 0x7A74 +0x1376B 0x7D50 +0x1376C 0x8840 +0x1376D 0x8A23 +0x1376E 0x6708 +0x1376F 0x4EF6 +0x13770 0x5039 +0x13771 0x5026 +0x13772 0x5065 +0x13773 0x517C +0x13774 0x5238 +0x13775 0x5263 +0x13776 0x55A7 +0x13777 0x570F +0x13778 0x5805 +0x13779 0x5ACC +0x1377A 0x5EFA +0x1377B 0x61B2 +0x1377C 0x61F8 +0x1377D 0x62F3 +0x1377E 0x6372 +0x13821 0x691C +0x13822 0x6A29 +0x13823 0x727D +0x13824 0x72AC +0x13825 0x732E +0x13826 0x7814 +0x13827 0x786F +0x13828 0x7D79 +0x13829 0x770C +0x1382A 0x80A9 +0x1382B 0x898B +0x1382C 0x8B19 +0x1382D 0x8CE2 +0x1382E 0x8ED2 +0x1382F 0x9063 +0x13830 0x9375 +0x13831 0x967A +0x13832 0x9855 +0x13833 0x9A13 +0x13834 0x9E78 +0x13835 0x5143 +0x13836 0x539F +0x13837 0x53B3 +0x13838 0x5E7B +0x13839 0x5F26 +0x1383A 0x6E1B +0x1383B 0x6E90 +0x1383C 0x7384 +0x1383D 0x73FE +0x1383E 0x7D43 +0x1383F 0x8237 +0x13840 0x8A00 +0x13841 0x8AFA +0x13842 0x9650 +0x13843 0x4E4E +0x13844 0x500B +0x13845 0x53E4 +0x13846 0x547C +0x13847 0x56FA +0x13848 0x59D1 +0x13849 0x5B64 +0x1384A 0x5DF1 +0x1384B 0x5EAB +0x1384C 0x5F27 +0x1384D 0x6238 +0x1384E 0x6545 +0x1384F 0x67AF +0x13850 0x6E56 +0x13851 0x72D0 +0x13852 0x7CCA +0x13853 0x88B4 +0x13854 0x80A1 +0x13855 0x80E1 +0x13856 0x83F0 +0x13857 0x864E +0x13858 0x8A87 +0x13859 0x8DE8 +0x1385A 0x9237 +0x1385B 0x96C7 +0x1385C 0x9867 +0x1385D 0x9F13 +0x1385E 0x4E94 +0x1385F 0x4E92 +0x13860 0x4F0D +0x13861 0x5348 +0x13862 0x5449 +0x13863 0x543E +0x13864 0x5A2F +0x13865 0x5F8C +0x13866 0x5FA1 +0x13867 0x609F +0x13868 0x68A7 +0x13869 0x6A8E +0x1386A 0x745A +0x1386B 0x7881 +0x1386C 0x8A9E +0x1386D 0x8AA4 +0x1386E 0x8B77 +0x1386F 0x9190 +0x13870 0x4E5E +0x13871 0x9BC9 +0x13872 0x4EA4 +0x13873 0x4F7C +0x13874 0x4FAF +0x13875 0x5019 +0x13876 0x5016 +0x13877 0x5149 +0x13878 0x516C +0x13879 0x529F +0x1387A 0x52B9 +0x1387B 0x52FE +0x1387C 0x539A +0x1387D 0x53E3 +0x1387E 0x5411 +0x13921 0x540E +0x13922 0x5589 +0x13923 0x5751 +0x13924 0x57A2 +0x13925 0x597D +0x13926 0x5B54 +0x13927 0x5B5D +0x13928 0x5B8F +0x13929 0x5DE5 +0x1392A 0x5DE7 +0x1392B 0x5DF7 +0x1392C 0x5E78 +0x1392D 0x5E83 +0x1392E 0x5E9A +0x1392F 0x5EB7 +0x13930 0x5F18 +0x13931 0x6052 +0x13932 0x614C +0x13933 0x6297 +0x13934 0x62D8 +0x13935 0x63A7 +0x13936 0x653B +0x13937 0x6602 +0x13938 0x6643 +0x13939 0x66F4 +0x1393A 0x676D +0x1393B 0x6821 +0x1393C 0x6897 +0x1393D 0x69CB +0x1393E 0x6C5F +0x1393F 0x6D2A +0x13940 0x6D69 +0x13941 0x6E2F +0x13942 0x6E9D +0x13943 0x7532 +0x13944 0x7687 +0x13945 0x786C +0x13946 0x7A3F +0x13947 0x7CE0 +0x13948 0x7D05 +0x13949 0x7D18 +0x1394A 0x7D5E +0x1394B 0x7DB1 +0x1394C 0x8015 +0x1394D 0x8003 +0x1394E 0x80AF +0x1394F 0x80B1 +0x13950 0x8154 +0x13951 0x818F +0x13952 0x822A +0x13953 0x8352 +0x13954 0x884C +0x13955 0x8861 +0x13956 0x8B1B +0x13957 0x8CA2 +0x13958 0x8CFC +0x13959 0x90CA +0x1395A 0x9175 +0x1395B 0x9271 +0x1395C 0x783F +0x1395D 0x92FC +0x1395E 0x95A4 +0x1395F 0x964D +0x13960 0x9805 +0x13961 0x9999 +0x13962 0x9AD8 +0x13963 0x9D3B +0x13964 0x525B +0x13965 0x52AB +0x13966 0x53F7 +0x13967 0x5408 +0x13968 0x58D5 +0x13969 0x62F7 +0x1396A 0x6FE0 +0x1396B 0x8C6A +0x1396C 0x8F5F +0x1396D 0x9EB9 +0x1396E 0x514B +0x1396F 0x523B +0x13970 0x544A +0x13971 0x56FD +0x13972 0x7A40 +0x13973 0x9177 +0x13974 0x9D60 +0x13975 0x9ED2 +0x13976 0x7344 +0x13977 0x6F09 +0x13978 0x8170 +0x13979 0x7511 +0x1397A 0x5FFD +0x1397B 0x60DA +0x1397C 0x9AA8 +0x1397D 0x72DB +0x1397E 0x8FBC +0x13A21 0x6B64 +0x13A22 0x9803 +0x13A23 0x4ECA +0x13A24 0x56F0 +0x13A25 0x5764 +0x13A26 0x58BE +0x13A27 0x5A5A +0x13A28 0x6068 +0x13A29 0x61C7 +0x13A2A 0x660F +0x13A2B 0x6606 +0x13A2C 0x6839 +0x13A2D 0x68B1 +0x13A2E 0x6DF7 +0x13A2F 0x75D5 +0x13A30 0x7D3A +0x13A31 0x826E +0x13A32 0x9B42 +0x13A33 0x4E9B +0x13A34 0x4F50 +0x13A35 0x53C9 +0x13A36 0x5506 +0x13A37 0x5D6F +0x13A38 0x5DE6 +0x13A39 0x5DEE +0x13A3A 0x67FB +0x13A3B 0x6C99 +0x13A3C 0x7473 +0x13A3D 0x7802 +0x13A3E 0x8A50 +0x13A3F 0x9396 +0x13A40 0x88DF +0x13A41 0x5750 +0x13A42 0x5EA7 +0x13A43 0x632B +0x13A44 0x50B5 +0x13A45 0x50AC +0x13A46 0x518D +0x13A47 0x6700 +0x13A48 0x54C9 +0x13A49 0x585E +0x13A4A 0x59BB +0x13A4B 0x5BB0 +0x13A4C 0x5F69 +0x13A4D 0x624D +0x13A4E 0x63A1 +0x13A4F 0x683D +0x13A50 0x6B73 +0x13A51 0x6E08 +0x13A52 0x707D +0x13A53 0x91C7 +0x13A54 0x7280 +0x13A55 0x7815 +0x13A56 0x7826 +0x13A57 0x796D +0x13A58 0x658E +0x13A59 0x7D30 +0x13A5A 0x83DC +0x13A5B 0x88C1 +0x13A5C 0x8F09 +0x13A5D 0x969B +0x13A5E 0x5264 +0x13A5F 0x5728 +0x13A60 0x6750 +0x13A61 0x7F6A +0x13A62 0x8CA1 +0x13A63 0x51B4 +0x13A64 0x5742 +0x13A65 0x962A +0x13A66 0x583A +0x13A67 0x698A +0x13A68 0x80B4 +0x13A69 0x54B2 +0x13A6A 0x5D0E +0x13A6B 0x57FC +0x13A6C 0x7895 +0x13A6D 0x9DFA +0x13A6E 0x4F5C +0x13A6F 0x524A +0x13A70 0x548B +0x13A71 0x643E +0x13A72 0x6628 +0x13A73 0x6714 +0x13A74 0x67F5 +0x13A75 0x7A84 +0x13A76 0x7B56 +0x13A77 0x7D22 +0x13A78 0x932F +0x13A79 0x685C +0x13A7A 0x9BAD +0x13A7B 0x7B39 +0x13A7C 0x5319 +0x13A7D 0x518A +0x13A7E 0x5237 +0x13B21 0x5BDF +0x13B22 0x62F6 +0x13B23 0x64AE +0x13B24 0x64E6 +0x13B25 0x672D +0x13B26 0x6BBA +0x13B27 0x85A9 +0x13B28 0x96D1 +0x13B29 0x7690 +0x13B2A 0x9BD6 +0x13B2B 0x634C +0x13B2C 0x9306 +0x13B2D 0x9BAB +0x13B2E 0x76BF +0x13B2F 0x6652 +0x13B30 0x4E09 +0x13B31 0x5098 +0x13B32 0x53C2 +0x13B33 0x5C71 +0x13B34 0x60E8 +0x13B35 0x6492 +0x13B36 0x6563 +0x13B37 0x685F +0x13B38 0x71E6 +0x13B39 0x73CA +0x13B3A 0x7523 +0x13B3B 0x7B97 +0x13B3C 0x7E82 +0x13B3D 0x8695 +0x13B3E 0x8B83 +0x13B3F 0x8CDB +0x13B40 0x9178 +0x13B41 0x9910 +0x13B42 0x65AC +0x13B43 0x66AB +0x13B44 0x6B8B +0x13B45 0x4ED5 +0x13B46 0x4ED4 +0x13B47 0x4F3A +0x13B48 0x4F7F +0x13B49 0x523A +0x13B4A 0x53F8 +0x13B4B 0x53F2 +0x13B4C 0x55E3 +0x13B4D 0x56DB +0x13B4E 0x58EB +0x13B4F 0x59CB +0x13B50 0x59C9 +0x13B51 0x59FF +0x13B52 0x5B50 +0x13B53 0x5C4D +0x13B54 0x5E02 +0x13B55 0x5E2B +0x13B56 0x5FD7 +0x13B57 0x601D +0x13B58 0x6307 +0x13B59 0x652F +0x13B5A 0x5B5C +0x13B5B 0x65AF +0x13B5C 0x65BD +0x13B5D 0x65E8 +0x13B5E 0x679D +0x13B5F 0x6B62 +0x13B60 0x6B7B +0x13B61 0x6C0F +0x13B62 0x7345 +0x13B63 0x7949 +0x13B64 0x79C1 +0x13B65 0x7CF8 +0x13B66 0x7D19 +0x13B67 0x7D2B +0x13B68 0x80A2 +0x13B69 0x8102 +0x13B6A 0x81F3 +0x13B6B 0x8996 +0x13B6C 0x8A5E +0x13B6D 0x8A69 +0x13B6E 0x8A66 +0x13B6F 0x8A8C +0x13B70 0x8AEE +0x13B71 0x8CC7 +0x13B72 0x8CDC +0x13B73 0x96CC +0x13B74 0x98FC +0x13B75 0x6B6F +0x13B76 0x4E8B +0x13B77 0x4F3C +0x13B78 0x4F8D +0x13B79 0x5150 +0x13B7A 0x5B57 +0x13B7B 0x5BFA +0x13B7C 0x6148 +0x13B7D 0x6301 +0x13B7E 0x6642 +0x13C21 0x6B21 +0x13C22 0x6ECB +0x13C23 0x6CBB +0x13C24 0x723E +0x13C25 0x74BD +0x13C26 0x75D4 +0x13C27 0x78C1 +0x13C28 0x793A +0x13C29 0x800C +0x13C2A 0x8033 +0x13C2B 0x81EA +0x13C2C 0x8494 +0x13C2D 0x8F9E +0x13C2E 0x6C50 +0x13C2F 0x9E7F +0x13C30 0x5F0F +0x13C31 0x8B58 +0x13C32 0x9D2B +0x13C33 0x7AFA +0x13C34 0x8EF8 +0x13C35 0x5B8D +0x13C36 0x96EB +0x13C37 0x4E03 +0x13C38 0x53F1 +0x13C39 0x57F7 +0x13C3A 0x5931 +0x13C3B 0x5AC9 +0x13C3C 0x5BA4 +0x13C3D 0x6089 +0x13C3E 0x6E7F +0x13C3F 0x6F06 +0x13C40 0x75BE +0x13C41 0x8CEA +0x13C42 0x5B9F +0x13C43 0x8500 +0x13C44 0x7BE0 +0x13C45 0x5072 +0x13C46 0x67F4 +0x13C47 0x829D +0x13C48 0x5C61 +0x13C49 0x854A +0x13C4A 0x7E1E +0x13C4B 0x820E +0x13C4C 0x5199 +0x13C4D 0x5C04 +0x13C4E 0x6368 +0x13C4F 0x8D66 +0x13C50 0x659C +0x13C51 0x716E +0x13C52 0x793E +0x13C53 0x7D17 +0x13C54 0x8005 +0x13C55 0x8B1D +0x13C56 0x8ECA +0x13C57 0x906E +0x13C58 0x86C7 +0x13C59 0x90AA +0x13C5A 0x501F +0x13C5B 0x52FA +0x13C5C 0x5C3A +0x13C5D 0x6753 +0x13C5E 0x707C +0x13C5F 0x7235 +0x13C60 0x914C +0x13C61 0x91C8 +0x13C62 0x932B +0x13C63 0x82E5 +0x13C64 0x5BC2 +0x13C65 0x5F31 +0x13C66 0x60F9 +0x13C67 0x4E3B +0x13C68 0x53D6 +0x13C69 0x5B88 +0x13C6A 0x624B +0x13C6B 0x6731 +0x13C6C 0x6B8A +0x13C6D 0x72E9 +0x13C6E 0x73E0 +0x13C6F 0x7A2E +0x13C70 0x816B +0x13C71 0x8DA3 +0x13C72 0x9152 +0x13C73 0x9996 +0x13C74 0x5112 +0x13C75 0x53D7 +0x13C76 0x546A +0x13C77 0x5BFF +0x13C78 0x6388 +0x13C79 0x6A39 +0x13C7A 0x7DAC +0x13C7B 0x9700 +0x13C7C 0x56DA +0x13C7D 0x53CE +0x13C7E 0x5468 +0x13D21 0x5B97 +0x13D22 0x5C31 +0x13D23 0x5DDE +0x13D24 0x4FEE +0x13D25 0x6101 +0x13D26 0x62FE +0x13D27 0x6D32 +0x13D28 0x79C0 +0x13D29 0x79CB +0x13D2A 0x7D42 +0x13D2B 0x7E4D +0x13D2C 0x7FD2 +0x13D2D 0x81ED +0x13D2E 0x821F +0x13D2F 0x8490 +0x13D30 0x8846 +0x13D31 0x8972 +0x13D32 0x8B90 +0x13D33 0x8E74 +0x13D34 0x8F2F +0x13D35 0x9031 +0x13D36 0x914B +0x13D37 0x916C +0x13D38 0x96C6 +0x13D39 0x919C +0x13D3A 0x4EC0 +0x13D3B 0x4F4F +0x13D3C 0x5145 +0x13D3D 0x5341 +0x13D3E 0x5F93 +0x13D3F 0x620E +0x13D40 0x67D4 +0x13D41 0x6C41 +0x13D42 0x6E0B +0x13D43 0x7363 +0x13D44 0x7E26 +0x13D45 0x91CD +0x13D46 0x9283 +0x13D47 0x53D4 +0x13D48 0x5919 +0x13D49 0x5BBF +0x13D4A 0x6DD1 +0x13D4B 0x795D +0x13D4C 0x7E2E +0x13D4D 0x7C9B +0x13D4E 0x587E +0x13D4F 0x719F +0x13D50 0x51FA +0x13D51 0x8853 +0x13D52 0x8FF0 +0x13D53 0x4FCA +0x13D54 0x5CFB +0x13D55 0x6625 +0x13D56 0x77AC +0x13D57 0x7AE3 +0x13D58 0x821C +0x13D59 0x99FF +0x13D5A 0x51C6 +0x13D5B 0x5FAA +0x13D5C 0x65EC +0x13D5D 0x696F +0x13D5E 0x6B89 +0x13D5F 0x6DF3 +0x13D60 0x6E96 +0x13D61 0x6F64 +0x13D62 0x76FE +0x13D63 0x7D14 +0x13D64 0x5DE1 +0x13D65 0x9075 +0x13D66 0x9187 +0x13D67 0x9806 +0x13D68 0x51E6 +0x13D69 0x521D +0x13D6A 0x6240 +0x13D6B 0x6691 +0x13D6C 0x66D9 +0x13D6D 0x6E1A +0x13D6E 0x5EB6 +0x13D6F 0x7DD2 +0x13D70 0x7F72 +0x13D71 0x66F8 +0x13D72 0x85AF +0x13D73 0x85F7 +0x13D74 0x8AF8 +0x13D75 0x52A9 +0x13D76 0x53D9 +0x13D77 0x5973 +0x13D78 0x5E8F +0x13D79 0x5F90 +0x13D7A 0x6055 +0x13D7B 0x92E4 +0x13D7C 0x9664 +0x13D7D 0x50B7 +0x13D7E 0x511F +0x13E21 0x52DD +0x13E22 0x5320 +0x13E23 0x5347 +0x13E24 0x53EC +0x13E25 0x54E8 +0x13E26 0x5546 +0x13E27 0x5531 +0x13E28 0x5617 +0x13E29 0x5968 +0x13E2A 0x59BE +0x13E2B 0x5A3C +0x13E2C 0x5BB5 +0x13E2D 0x5C06 +0x13E2E 0x5C0F +0x13E2F 0x5C11 +0x13E30 0x5C1A +0x13E31 0x5E84 +0x13E32 0x5E8A +0x13E33 0x5EE0 +0x13E34 0x5F70 +0x13E35 0x627F +0x13E36 0x6284 +0x13E37 0x62DB +0x13E38 0x638C +0x13E39 0x6377 +0x13E3A 0x6607 +0x13E3B 0x660C +0x13E3C 0x662D +0x13E3D 0x6676 +0x13E3E 0x677E +0x13E3F 0x68A2 +0x13E40 0x6A1F +0x13E41 0x6A35 +0x13E42 0x6CBC +0x13E43 0x6D88 +0x13E44 0x6E09 +0x13E45 0x6E58 +0x13E46 0x713C +0x13E47 0x7126 +0x13E48 0x7167 +0x13E49 0x75C7 +0x13E4A 0x7701 +0x13E4B 0x785D +0x13E4C 0x7901 +0x13E4D 0x7965 +0x13E4E 0x79F0 +0x13E4F 0x7AE0 +0x13E50 0x7B11 +0x13E51 0x7CA7 +0x13E52 0x7D39 +0x13E53 0x8096 +0x13E54 0x83D6 +0x13E55 0x848B +0x13E56 0x8549 +0x13E57 0x885D +0x13E58 0x88F3 +0x13E59 0x8A1F +0x13E5A 0x8A3C +0x13E5B 0x8A54 +0x13E5C 0x8A73 +0x13E5D 0x8C61 +0x13E5E 0x8CDE +0x13E5F 0x91A4 +0x13E60 0x9266 +0x13E61 0x937E +0x13E62 0x9418 +0x13E63 0x969C +0x13E64 0x9798 +0x13E65 0x4E0A +0x13E66 0x4E08 +0x13E67 0x4E1E +0x13E68 0x4E57 +0x13E69 0x5197 +0x13E6A 0x5270 +0x13E6B 0x57CE +0x13E6C 0x5834 +0x13E6D 0x58CC +0x13E6E 0x5B22 +0x13E6F 0x5E38 +0x13E70 0x60C5 +0x13E71 0x64FE +0x13E72 0x6761 +0x13E73 0x6756 +0x13E74 0x6D44 +0x13E75 0x72B6 +0x13E76 0x7573 +0x13E77 0x7A63 +0x13E78 0x84B8 +0x13E79 0x8B72 +0x13E7A 0x91B8 +0x13E7B 0x9320 +0x13E7C 0x5631 +0x13E7D 0x57F4 +0x13E7E 0x98FE +0x13F21 0x62ED +0x13F22 0x690D +0x13F23 0x6B96 +0x13F24 0x71ED +0x13F25 0x7E54 +0x13F26 0x8077 +0x13F27 0x8272 +0x13F28 0x89E6 +0x13F29 0x98DF +0x13F2A 0x8755 +0x13F2B 0x8FB1 +0x13F2C 0x5C3B +0x13F2D 0x4F38 +0x13F2E 0x4FE1 +0x13F2F 0x4FB5 +0x13F30 0x5507 +0x13F31 0x5A20 +0x13F32 0x5BDD +0x13F33 0x5BE9 +0x13F34 0x5FC3 +0x13F35 0x614E +0x13F36 0x632F +0x13F37 0x65B0 +0x13F38 0x664B +0x13F39 0x68EE +0x13F3A 0x699B +0x13F3B 0x6D78 +0x13F3C 0x6DF1 +0x13F3D 0x7533 +0x13F3E 0x75B9 +0x13F3F 0x771F +0x13F40 0x795E +0x13F41 0x79E6 +0x13F42 0x7D33 +0x13F43 0x81E3 +0x13F44 0x82AF +0x13F45 0x85AA +0x13F46 0x89AA +0x13F47 0x8A3A +0x13F48 0x8EAB +0x13F49 0x8F9B +0x13F4A 0x9032 +0x13F4B 0x91DD +0x13F4C 0x9707 +0x13F4D 0x4EBA +0x13F4E 0x4EC1 +0x13F4F 0x5203 +0x13F50 0x5875 +0x13F51 0x58EC +0x13F52 0x5C0B +0x13F53 0x751A +0x13F54 0x5C3D +0x13F55 0x814E +0x13F56 0x8A0A +0x13F57 0x8FC5 +0x13F58 0x9663 +0x13F59 0x976D +0x13F5A 0x7B25 +0x13F5B 0x8ACF +0x13F5C 0x9808 +0x13F5D 0x9162 +0x13F5E 0x56F3 +0x13F5F 0x53A8 +0x13F60 0x9017 +0x13F61 0x5439 +0x13F62 0x5782 +0x13F63 0x5E25 +0x13F64 0x63A8 +0x13F65 0x6C34 +0x13F66 0x708A +0x13F67 0x7761 +0x13F68 0x7C8B +0x13F69 0x7FE0 +0x13F6A 0x8870 +0x13F6B 0x9042 +0x13F6C 0x9154 +0x13F6D 0x9310 +0x13F6E 0x9318 +0x13F6F 0x968F +0x13F70 0x745E +0x13F71 0x9AC4 +0x13F72 0x5D07 +0x13F73 0x5D69 +0x13F74 0x6570 +0x13F75 0x67A2 +0x13F76 0x8DA8 +0x13F77 0x96DB +0x13F78 0x636E +0x13F79 0x6749 +0x13F7A 0x6919 +0x13F7B 0x83C5 +0x13F7C 0x9817 +0x13F7D 0x96C0 +0x13F7E 0x88FE +0x14021 0x6F84 +0x14022 0x647A +0x14023 0x5BF8 +0x14024 0x4E16 +0x14025 0x702C +0x14026 0x755D +0x14027 0x662F +0x14028 0x51C4 +0x14029 0x5236 +0x1402A 0x52E2 +0x1402B 0x59D3 +0x1402C 0x5F81 +0x1402D 0x6027 +0x1402E 0x6210 +0x1402F 0x653F +0x14030 0x6574 +0x14031 0x661F +0x14032 0x6674 +0x14033 0x68F2 +0x14034 0x6816 +0x14035 0x6B63 +0x14036 0x6E05 +0x14037 0x7272 +0x14038 0x751F +0x14039 0x76DB +0x1403A 0x7CBE +0x1403B 0x8056 +0x1403C 0x58F0 +0x1403D 0x88FD +0x1403E 0x897F +0x1403F 0x8AA0 +0x14040 0x8A93 +0x14041 0x8ACB +0x14042 0x901D +0x14043 0x9192 +0x14044 0x9752 +0x14045 0x9759 +0x14046 0x6589 +0x14047 0x7A0E +0x14048 0x8106 +0x14049 0x96BB +0x1404A 0x5E2D +0x1404B 0x60DC +0x1404C 0x621A +0x1404D 0x65A5 +0x1404E 0x6614 +0x1404F 0x6790 +0x14050 0x77F3 +0x14051 0x7A4D +0x14052 0x7C4D +0x14053 0x7E3E +0x14054 0x810A +0x14055 0x8CAC +0x14056 0x8D64 +0x14057 0x8DE1 +0x14058 0x8E5F +0x14059 0x78A9 +0x1405A 0x5207 +0x1405B 0x62D9 +0x1405C 0x63A5 +0x1405D 0x6442 +0x1405E 0x6298 +0x1405F 0x8A2D +0x14060 0x7A83 +0x14061 0x7BC0 +0x14062 0x8AAC +0x14063 0x96EA +0x14064 0x7D76 +0x14065 0x820C +0x14066 0x8749 +0x14067 0x4ED9 +0x14068 0x5148 +0x14069 0x5343 +0x1406A 0x5360 +0x1406B 0x5BA3 +0x1406C 0x5C02 +0x1406D 0x5C16 +0x1406E 0x5DDD +0x1406F 0x6226 +0x14070 0x6247 +0x14071 0x64B0 +0x14072 0x6813 +0x14073 0x6834 +0x14074 0x6CC9 +0x14075 0x6D45 +0x14076 0x6D17 +0x14077 0x67D3 +0x14078 0x6F5C +0x14079 0x714E +0x1407A 0x717D +0x1407B 0x65CB +0x1407C 0x7A7F +0x1407D 0x7BAD +0x1407E 0x7DDA +0x14121 0x7E4A +0x14122 0x7FA8 +0x14123 0x817A +0x14124 0x821B +0x14125 0x8239 +0x14126 0x85A6 +0x14127 0x8A6E +0x14128 0x8CCE +0x14129 0x8DF5 +0x1412A 0x9078 +0x1412B 0x9077 +0x1412C 0x92AD +0x1412D 0x9291 +0x1412E 0x9583 +0x1412F 0x9BAE +0x14130 0x524D +0x14131 0x5584 +0x14132 0x6F38 +0x14133 0x7136 +0x14134 0x5168 +0x14135 0x7985 +0x14136 0x7E55 +0x14137 0x81B3 +0x14138 0x7CCE +0x14139 0x564C +0x1413A 0x5851 +0x1413B 0x5CA8 +0x1413C 0x63AA +0x1413D 0x66FE +0x1413E 0x66FD +0x1413F 0x695A +0x14140 0x72D9 +0x14141 0x758F +0x14142 0x758E +0x14143 0x790E +0x14144 0x7956 +0x14145 0x79DF +0x14146 0x7C97 +0x14147 0x7D20 +0x14148 0x7D44 +0x14149 0x8607 +0x1414A 0x8A34 +0x1414B 0x963B +0x1414C 0x9061 +0x1414D 0x9F20 +0x1414E 0x50E7 +0x1414F 0x5275 +0x14150 0x53CC +0x14151 0x53E2 +0x14152 0x5009 +0x14153 0x55AA +0x14154 0x58EE +0x14155 0x594F +0x14156 0x723D +0x14157 0x5B8B +0x14158 0x5C64 +0x14159 0x531D +0x1415A 0x60E3 +0x1415B 0x60F3 +0x1415C 0x635C +0x1415D 0x6383 +0x1415E 0x633F +0x1415F 0x63BB +0x14160 0x64CD +0x14161 0x65E9 +0x14162 0x66F9 +0x14163 0x5DE3 +0x14164 0x69CD +0x14165 0x69FD +0x14166 0x6F15 +0x14167 0x71E5 +0x14168 0x4E89 +0x14169 0x75E9 +0x1416A 0x76F8 +0x1416B 0x7A93 +0x1416C 0x7CDF +0x1416D 0x7DCF +0x1416E 0x7D9C +0x1416F 0x8061 +0x14170 0x8349 +0x14171 0x8358 +0x14172 0x846C +0x14173 0x84BC +0x14174 0x85FB +0x14175 0x88C5 +0x14176 0x8D70 +0x14177 0x9001 +0x14178 0x906D +0x14179 0x9397 +0x1417A 0x971C +0x1417B 0x9A12 +0x1417C 0x50CF +0x1417D 0x5897 +0x1417E 0x618E +0x14221 0x81D3 +0x14222 0x8535 +0x14223 0x8D08 +0x14224 0x9020 +0x14225 0x4FC3 +0x14226 0x5074 +0x14227 0x5247 +0x14228 0x5373 +0x14229 0x606F +0x1422A 0x6349 +0x1422B 0x675F +0x1422C 0x6E2C +0x1422D 0x8DB3 +0x1422E 0x901F +0x1422F 0x4FD7 +0x14230 0x5C5E +0x14231 0x8CCA +0x14232 0x65CF +0x14233 0x7D9A +0x14234 0x5352 +0x14235 0x8896 +0x14236 0x5176 +0x14237 0x63C3 +0x14238 0x5B58 +0x14239 0x5B6B +0x1423A 0x5C0A +0x1423B 0x640D +0x1423C 0x6751 +0x1423D 0x905C +0x1423E 0x4ED6 +0x1423F 0x591A +0x14240 0x592A +0x14241 0x6C70 +0x14242 0x8A51 +0x14243 0x553E +0x14244 0x5815 +0x14245 0x59A5 +0x14246 0x60F0 +0x14247 0x6253 +0x14248 0x67C1 +0x14249 0x8235 +0x1424A 0x6955 +0x1424B 0x9640 +0x1424C 0x99C4 +0x1424D 0x9A28 +0x1424E 0x4F53 +0x1424F 0x5806 +0x14250 0x5BFE +0x14251 0x8010 +0x14252 0x5CB1 +0x14253 0x5E2F +0x14254 0x5F85 +0x14255 0x6020 +0x14256 0x614B +0x14257 0x6234 +0x14258 0x66FF +0x14259 0x6CF0 +0x1425A 0x6EDE +0x1425B 0x80CE +0x1425C 0x817F +0x1425D 0x82D4 +0x1425E 0x888B +0x1425F 0x8CB8 +0x14260 0x9000 +0x14261 0x902E +0x14262 0x968A +0x14263 0x9EDB +0x14264 0x9BDB +0x14265 0x4EE3 +0x14266 0x53F0 +0x14267 0x5927 +0x14268 0x7B2C +0x14269 0x918D +0x1426A 0x984C +0x1426B 0x9DF9 +0x1426C 0x6EDD +0x1426D 0x7027 +0x1426E 0x5353 +0x1426F 0x5544 +0x14270 0x5B85 +0x14271 0x6258 +0x14272 0x629E +0x14273 0x62D3 +0x14274 0x6CA2 +0x14275 0x6FEF +0x14276 0x7422 +0x14277 0x8A17 +0x14278 0x9438 +0x14279 0x6FC1 +0x1427A 0x8AFE +0x1427B 0x8338 +0x1427C 0x51E7 +0x1427D 0x86F8 +0x1427E 0x53EA +0x14321 0x53E9 +0x14322 0x4F46 +0x14323 0x9054 +0x14324 0x8FB0 +0x14325 0x596A +0x14326 0x8131 +0x14327 0x5DFD +0x14328 0x7AEA +0x14329 0x8FBF +0x1432A 0x68DA +0x1432B 0x8C37 +0x1432C 0x72F8 +0x1432D 0x9C48 +0x1432E 0x6A3D +0x1432F 0x8AB0 +0x14330 0x4E39 +0x14331 0x5358 +0x14332 0x5606 +0x14333 0x5766 +0x14334 0x62C5 +0x14335 0x63A2 +0x14336 0x65E6 +0x14337 0x6B4E +0x14338 0x6DE1 +0x14339 0x6E5B +0x1433A 0x70AD +0x1433B 0x77ED +0x1433C 0x7AEF +0x1433D 0x7BAA +0x1433E 0x7DBB +0x1433F 0x803D +0x14340 0x80C6 +0x14341 0x86CB +0x14342 0x8A95 +0x14343 0x935B +0x14344 0x56E3 +0x14345 0x58C7 +0x14346 0x5F3E +0x14347 0x65AD +0x14348 0x6696 +0x14349 0x6A80 +0x1434A 0x6BB5 +0x1434B 0x7537 +0x1434C 0x8AC7 +0x1434D 0x5024 +0x1434E 0x77E5 +0x1434F 0x5730 +0x14350 0x5F1B +0x14351 0x6065 +0x14352 0x667A +0x14353 0x6C60 +0x14354 0x75F4 +0x14355 0x7A1A +0x14356 0x7F6E +0x14357 0x81F4 +0x14358 0x8718 +0x14359 0x9045 +0x1435A 0x99B3 +0x1435B 0x7BC9 +0x1435C 0x755C +0x1435D 0x7AF9 +0x1435E 0x7B51 +0x1435F 0x84C4 +0x14360 0x9010 +0x14361 0x79E9 +0x14362 0x7A92 +0x14363 0x8336 +0x14364 0x5AE1 +0x14365 0x7740 +0x14366 0x4E2D +0x14367 0x4EF2 +0x14368 0x5B99 +0x14369 0x5FE0 +0x1436A 0x62BD +0x1436B 0x663C +0x1436C 0x67F1 +0x1436D 0x6CE8 +0x1436E 0x866B +0x1436F 0x8877 +0x14370 0x8A3B +0x14371 0x914E +0x14372 0x92F3 +0x14373 0x99D0 +0x14374 0x6A17 +0x14375 0x7026 +0x14376 0x732A +0x14377 0x82E7 +0x14378 0x8457 +0x14379 0x8CAF +0x1437A 0x4E01 +0x1437B 0x5146 +0x1437C 0x51CB +0x1437D 0x558B +0x1437E 0x5BF5 +0x14421 0x5E16 +0x14422 0x5E33 +0x14423 0x5E81 +0x14424 0x5F14 +0x14425 0x5F35 +0x14426 0x5F6B +0x14427 0x5FB4 +0x14428 0x61F2 +0x14429 0x6311 +0x1442A 0x66A2 +0x1442B 0x671D +0x1442C 0x6F6E +0x1442D 0x7252 +0x1442E 0x753A +0x1442F 0x773A +0x14430 0x8074 +0x14431 0x8139 +0x14432 0x8178 +0x14433 0x8776 +0x14434 0x8ABF +0x14435 0x8ADC +0x14436 0x8D85 +0x14437 0x8DF3 +0x14438 0x929A +0x14439 0x9577 +0x1443A 0x9802 +0x1443B 0x9CE5 +0x1443C 0x52C5 +0x1443D 0x6357 +0x1443E 0x76F4 +0x1443F 0x6715 +0x14440 0x6C88 +0x14441 0x73CD +0x14442 0x8CC3 +0x14443 0x93AE +0x14444 0x9673 +0x14445 0x6D25 +0x14446 0x589C +0x14447 0x690E +0x14448 0x69CC +0x14449 0x8FFD +0x1444A 0x939A +0x1444B 0x75DB +0x1444C 0x901A +0x1444D 0x585A +0x1444E 0x6802 +0x1444F 0x63B4 +0x14450 0x69FB +0x14451 0x4F43 +0x14452 0x6F2C +0x14453 0x67D8 +0x14454 0x8FBB +0x14455 0x8526 +0x14456 0x7DB4 +0x14457 0x9354 +0x14458 0x693F +0x14459 0x6F70 +0x1445A 0x576A +0x1445B 0x58F7 +0x1445C 0x5B2C +0x1445D 0x7D2C +0x1445E 0x722A +0x1445F 0x540A +0x14460 0x91E3 +0x14461 0x9DB4 +0x14462 0x4EAD +0x14463 0x4F4E +0x14464 0x505C +0x14465 0x5075 +0x14466 0x5243 +0x14467 0x8C9E +0x14468 0x5448 +0x14469 0x5824 +0x1446A 0x5B9A +0x1446B 0x5E1D +0x1446C 0x5E95 +0x1446D 0x5EAD +0x1446E 0x5EF7 +0x1446F 0x5F1F +0x14470 0x608C +0x14471 0x62B5 +0x14472 0x633A +0x14473 0x63D0 +0x14474 0x68AF +0x14475 0x6C40 +0x14476 0x7887 +0x14477 0x798E +0x14478 0x7A0B +0x14479 0x7DE0 +0x1447A 0x8247 +0x1447B 0x8A02 +0x1447C 0x8AE6 +0x1447D 0x8E44 +0x1447E 0x9013 +0x14521 0x90B8 +0x14522 0x912D +0x14523 0x91D8 +0x14524 0x9F0E +0x14525 0x6CE5 +0x14526 0x6458 +0x14527 0x64E2 +0x14528 0x6575 +0x14529 0x6EF4 +0x1452A 0x7684 +0x1452B 0x7B1B +0x1452C 0x9069 +0x1452D 0x93D1 +0x1452E 0x6EBA +0x1452F 0x54F2 +0x14530 0x5FB9 +0x14531 0x64A4 +0x14532 0x8F4D +0x14533 0x8FED +0x14534 0x9244 +0x14535 0x5178 +0x14536 0x586B +0x14537 0x5929 +0x14538 0x5C55 +0x14539 0x5E97 +0x1453A 0x6DFB +0x1453B 0x7E8F +0x1453C 0x751C +0x1453D 0x8CBC +0x1453E 0x8EE2 +0x1453F 0x985B +0x14540 0x70B9 +0x14541 0x4F1D +0x14542 0x6BBF +0x14543 0x6FB1 +0x14544 0x7530 +0x14545 0x96FB +0x14546 0x514E +0x14547 0x5410 +0x14548 0x5835 +0x14549 0x5857 +0x1454A 0x59AC +0x1454B 0x5C60 +0x1454C 0x5F92 +0x1454D 0x6597 +0x1454E 0x675C +0x1454F 0x6E21 +0x14550 0x767B +0x14551 0x83DF +0x14552 0x8CED +0x14553 0x9014 +0x14554 0x90FD +0x14555 0x934D +0x14556 0x7825 +0x14557 0x783A +0x14558 0x52AA +0x14559 0x5EA6 +0x1455A 0x571F +0x1455B 0x5974 +0x1455C 0x6012 +0x1455D 0x5012 +0x1455E 0x515A +0x1455F 0x51AC +0x14560 0x51CD +0x14561 0x5200 +0x14562 0x5510 +0x14563 0x5854 +0x14564 0x5858 +0x14565 0x5957 +0x14566 0x5B95 +0x14567 0x5CF6 +0x14568 0x5D8B +0x14569 0x60BC +0x1456A 0x6295 +0x1456B 0x642D +0x1456C 0x6771 +0x1456D 0x6843 +0x1456E 0x68BC +0x1456F 0x68DF +0x14570 0x76D7 +0x14571 0x6DD8 +0x14572 0x6E6F +0x14573 0x6D9B +0x14574 0x706F +0x14575 0x71C8 +0x14576 0x5F53 +0x14577 0x75D8 +0x14578 0x7977 +0x14579 0x7B49 +0x1457A 0x7B54 +0x1457B 0x7B52 +0x1457C 0x7CD6 +0x1457D 0x7D71 +0x1457E 0x5230 +0x14621 0x8463 +0x14622 0x8569 +0x14623 0x85E4 +0x14624 0x8A0E +0x14625 0x8B04 +0x14626 0x8C46 +0x14627 0x8E0F +0x14628 0x9003 +0x14629 0x900F +0x1462A 0x9419 +0x1462B 0x9676 +0x1462C 0x982D +0x1462D 0x9A30 +0x1462E 0x95D8 +0x1462F 0x50CD +0x14630 0x52D5 +0x14631 0x540C +0x14632 0x5802 +0x14633 0x5C0E +0x14634 0x61A7 +0x14635 0x649E +0x14636 0x6D1E +0x14637 0x77B3 +0x14638 0x7AE5 +0x14639 0x80F4 +0x1463A 0x8404 +0x1463B 0x9053 +0x1463C 0x9285 +0x1463D 0x5CE0 +0x1463E 0x9D07 +0x1463F 0x533F +0x14640 0x5F97 +0x14641 0x5FB3 +0x14642 0x6D9C +0x14643 0x7279 +0x14644 0x7763 +0x14645 0x79BF +0x14646 0x7BE4 +0x14647 0x6BD2 +0x14648 0x72EC +0x14649 0x8AAD +0x1464A 0x6803 +0x1464B 0x6A61 +0x1464C 0x51F8 +0x1464D 0x7A81 +0x1464E 0x6934 +0x1464F 0x5C4A +0x14650 0x9CF6 +0x14651 0x82EB +0x14652 0x5BC5 +0x14653 0x9149 +0x14654 0x701E +0x14655 0x5678 +0x14656 0x5C6F +0x14657 0x60C7 +0x14658 0x6566 +0x14659 0x6C8C +0x1465A 0x8C5A +0x1465B 0x9041 +0x1465C 0x9813 +0x1465D 0x5451 +0x1465E 0x66C7 +0x1465F 0x920D +0x14660 0x5948 +0x14661 0x90A3 +0x14662 0x5185 +0x14663 0x4E4D +0x14664 0x51EA +0x14665 0x8599 +0x14666 0x8B0E +0x14667 0x7058 +0x14668 0x637A +0x14669 0x934B +0x1466A 0x6962 +0x1466B 0x99B4 +0x1466C 0x7E04 +0x1466D 0x7577 +0x1466E 0x5357 +0x1466F 0x6960 +0x14670 0x8EDF +0x14671 0x96E3 +0x14672 0x6C5D +0x14673 0x4E8C +0x14674 0x5C3C +0x14675 0x5F10 +0x14676 0x8FE9 +0x14677 0x5302 +0x14678 0x8CD1 +0x14679 0x8089 +0x1467A 0x8679 +0x1467B 0x5EFF +0x1467C 0x65E5 +0x1467D 0x4E73 +0x1467E 0x5165 +0x14721 0x5982 +0x14722 0x5C3F +0x14723 0x97EE +0x14724 0x4EFB +0x14725 0x598A +0x14726 0x5FCD +0x14727 0x8A8D +0x14728 0x6FE1 +0x14729 0x79B0 +0x1472A 0x7962 +0x1472B 0x5BE7 +0x1472C 0x8471 +0x1472D 0x732B +0x1472E 0x71B1 +0x1472F 0x5E74 +0x14730 0x5FF5 +0x14731 0x637B +0x14732 0x649A +0x14733 0x71C3 +0x14734 0x7C98 +0x14735 0x4E43 +0x14736 0x5EFC +0x14737 0x4E4B +0x14738 0x57DC +0x14739 0x56A2 +0x1473A 0x60A9 +0x1473B 0x6FC3 +0x1473C 0x7D0D +0x1473D 0x80FD +0x1473E 0x8133 +0x1473F 0x81BF +0x14740 0x8FB2 +0x14741 0x8997 +0x14742 0x86A4 +0x14743 0x5DF4 +0x14744 0x628A +0x14745 0x64AD +0x14746 0x8987 +0x14747 0x6777 +0x14748 0x6CE2 +0x14749 0x6D3E +0x1474A 0x7436 +0x1474B 0x7834 +0x1474C 0x5A46 +0x1474D 0x7F75 +0x1474E 0x82AD +0x1474F 0x99AC +0x14750 0x4FF3 +0x14751 0x5EC3 +0x14752 0x62DD +0x14753 0x6392 +0x14754 0x6557 +0x14755 0x676F +0x14756 0x76C3 +0x14757 0x724C +0x14758 0x80CC +0x14759 0x80BA +0x1475A 0x8F29 +0x1475B 0x914D +0x1475C 0x500D +0x1475D 0x57F9 +0x1475E 0x5A92 +0x1475F 0x6885 +0x14760 0x6973 +0x14761 0x7164 +0x14762 0x72FD +0x14763 0x8CB7 +0x14764 0x58F2 +0x14765 0x8CE0 +0x14766 0x966A +0x14767 0x9019 +0x14768 0x877F +0x14769 0x79E4 +0x1476A 0x77E7 +0x1476B 0x8429 +0x1476C 0x4F2F +0x1476D 0x5265 +0x1476E 0x535A +0x1476F 0x62CD +0x14770 0x67CF +0x14771 0x6CCA +0x14772 0x767D +0x14773 0x7B94 +0x14774 0x7C95 +0x14775 0x8236 +0x14776 0x8584 +0x14777 0x8FEB +0x14778 0x66DD +0x14779 0x6F20 +0x1477A 0x7206 +0x1477B 0x7E1B +0x1477C 0x83AB +0x1477D 0x99C1 +0x1477E 0x9EA6 +0x14821 0x51FD +0x14822 0x7BB1 +0x14823 0x7872 +0x14824 0x7BB8 +0x14825 0x8087 +0x14826 0x7B48 +0x14827 0x6AE8 +0x14828 0x5E61 +0x14829 0x808C +0x1482A 0x7551 +0x1482B 0x7560 +0x1482C 0x516B +0x1482D 0x9262 +0x1482E 0x6E8C +0x1482F 0x767A +0x14830 0x9197 +0x14831 0x9AEA +0x14832 0x4F10 +0x14833 0x7F70 +0x14834 0x629C +0x14835 0x7B4F +0x14836 0x95A5 +0x14837 0x9CE9 +0x14838 0x567A +0x14839 0x5859 +0x1483A 0x86E4 +0x1483B 0x96BC +0x1483C 0x4F34 +0x1483D 0x5224 +0x1483E 0x534A +0x1483F 0x53CD +0x14840 0x53DB +0x14841 0x5E06 +0x14842 0x642C +0x14843 0x6591 +0x14844 0x677F +0x14845 0x6C3E +0x14846 0x6C4E +0x14847 0x7248 +0x14848 0x72AF +0x14849 0x73ED +0x1484A 0x7554 +0x1484B 0x7E41 +0x1484C 0x822C +0x1484D 0x85E9 +0x1484E 0x8CA9 +0x1484F 0x7BC4 +0x14850 0x91C6 +0x14851 0x7169 +0x14852 0x9812 +0x14853 0x98EF +0x14854 0x633D +0x14855 0x6669 +0x14856 0x756A +0x14857 0x76E4 +0x14858 0x78D0 +0x14859 0x8543 +0x1485A 0x86EE +0x1485B 0x532A +0x1485C 0x5351 +0x1485D 0x5426 +0x1485E 0x5983 +0x1485F 0x5E87 +0x14860 0x5F7C +0x14861 0x60B2 +0x14862 0x6249 +0x14863 0x6279 +0x14864 0x62AB +0x14865 0x6590 +0x14866 0x6BD4 +0x14867 0x6CCC +0x14868 0x75B2 +0x14869 0x76AE +0x1486A 0x7891 +0x1486B 0x79D8 +0x1486C 0x7DCB +0x1486D 0x7F77 +0x1486E 0x80A5 +0x1486F 0x88AB +0x14870 0x8AB9 +0x14871 0x8CBB +0x14872 0x907F +0x14873 0x975E +0x14874 0x98DB +0x14875 0x6A0B +0x14876 0x7C38 +0x14877 0x5099 +0x14878 0x5C3E +0x14879 0x5FAE +0x1487A 0x6787 +0x1487B 0x6BD8 +0x1487C 0x7435 +0x1487D 0x7709 +0x1487E 0x7F8E +0x14921 0x9F3B +0x14922 0x67CA +0x14923 0x7A17 +0x14924 0x5339 +0x14925 0x758B +0x14926 0x9AED +0x14927 0x5F66 +0x14928 0x819D +0x14929 0x83F1 +0x1492A 0x8098 +0x1492B 0x5F3C +0x1492C 0x5FC5 +0x1492D 0x7562 +0x1492E 0x7B46 +0x1492F 0x903C +0x14930 0x6867 +0x14931 0x59EB +0x14932 0x5A9B +0x14933 0x7D10 +0x14934 0x767E +0x14935 0x8B2C +0x14936 0x4FF5 +0x14937 0x5F6A +0x14938 0x6A19 +0x14939 0x6C37 +0x1493A 0x6F02 +0x1493B 0x74E2 +0x1493C 0x7968 +0x1493D 0x8868 +0x1493E 0x8A55 +0x1493F 0x8C79 +0x14940 0x5EDF +0x14941 0x63CF +0x14942 0x75C5 +0x14943 0x79D2 +0x14944 0x82D7 +0x14945 0x9328 +0x14946 0x92F2 +0x14947 0x849C +0x14948 0x86ED +0x14949 0x9C2D +0x1494A 0x54C1 +0x1494B 0x5F6C +0x1494C 0x658C +0x1494D 0x6D5C +0x1494E 0x7015 +0x1494F 0x8CA7 +0x14950 0x8CD3 +0x14951 0x983B +0x14952 0x654F +0x14953 0x74F6 +0x14954 0x4E0D +0x14955 0x4ED8 +0x14956 0x57E0 +0x14957 0x592B +0x14958 0x5A66 +0x14959 0x5BCC +0x1495A 0x51A8 +0x1495B 0x5E03 +0x1495C 0x5E9C +0x1495D 0x6016 +0x1495E 0x6276 +0x1495F 0x6577 +0x14960 0x65A7 +0x14961 0x666E +0x14962 0x6D6E +0x14963 0x7236 +0x14964 0x7B26 +0x14965 0x8150 +0x14966 0x819A +0x14967 0x8299 +0x14968 0x8B5C +0x14969 0x8CA0 +0x1496A 0x8CE6 +0x1496B 0x8D74 +0x1496C 0x961C +0x1496D 0x9644 +0x1496E 0x4FAE +0x1496F 0x64AB +0x14970 0x6B66 +0x14971 0x821E +0x14972 0x8461 +0x14973 0x856A +0x14974 0x90E8 +0x14975 0x5C01 +0x14976 0x6953 +0x14977 0x98A8 +0x14978 0x847A +0x14979 0x8557 +0x1497A 0x4F0F +0x1497B 0x526F +0x1497C 0x5FA9 +0x1497D 0x5E45 +0x1497E 0x670D +0x14A21 0x798F +0x14A22 0x8179 +0x14A23 0x8907 +0x14A24 0x8986 +0x14A25 0x6DF5 +0x14A26 0x5F17 +0x14A27 0x6255 +0x14A28 0x6CB8 +0x14A29 0x4ECF +0x14A2A 0x7269 +0x14A2B 0x9B92 +0x14A2C 0x5206 +0x14A2D 0x543B +0x14A2E 0x5674 +0x14A2F 0x58B3 +0x14A30 0x61A4 +0x14A31 0x626E +0x14A32 0x711A +0x14A33 0x596E +0x14A34 0x7C89 +0x14A35 0x7CDE +0x14A36 0x7D1B +0x14A37 0x96F0 +0x14A38 0x6587 +0x14A39 0x805E +0x14A3A 0x4E19 +0x14A3B 0x4F75 +0x14A3C 0x5175 +0x14A3D 0x5840 +0x14A3E 0x5E63 +0x14A3F 0x5E73 +0x14A40 0x5F0A +0x14A41 0x67C4 +0x14A42 0x4E26 +0x14A43 0x853D +0x14A44 0x9589 +0x14A45 0x965B +0x14A46 0x7C73 +0x14A47 0x9801 +0x14A48 0x50FB +0x14A49 0x58C1 +0x14A4A 0x7656 +0x14A4B 0x78A7 +0x14A4C 0x5225 +0x14A4D 0x77A5 +0x14A4E 0x8511 +0x14A4F 0x7B86 +0x14A50 0x504F +0x14A51 0x5909 +0x14A52 0x7247 +0x14A53 0x7BC7 +0x14A54 0x7DE8 +0x14A55 0x8FBA +0x14A56 0x8FD4 +0x14A57 0x904D +0x14A58 0x4FBF +0x14A59 0x52C9 +0x14A5A 0x5A29 +0x14A5B 0x5F01 +0x14A5C 0x97AD +0x14A5D 0x4FDD +0x14A5E 0x8217 +0x14A5F 0x92EA +0x14A60 0x5703 +0x14A61 0x6355 +0x14A62 0x6B69 +0x14A63 0x752B +0x14A64 0x88DC +0x14A65 0x8F14 +0x14A66 0x7A42 +0x14A67 0x52DF +0x14A68 0x5893 +0x14A69 0x6155 +0x14A6A 0x620A +0x14A6B 0x66AE +0x14A6C 0x6BCD +0x14A6D 0x7C3F +0x14A6E 0x83E9 +0x14A6F 0x5023 +0x14A70 0x4FF8 +0x14A71 0x5305 +0x14A72 0x5446 +0x14A73 0x5831 +0x14A74 0x5949 +0x14A75 0x5B9D +0x14A76 0x5CF0 +0x14A77 0x5CEF +0x14A78 0x5D29 +0x14A79 0x5E96 +0x14A7A 0x62B1 +0x14A7B 0x6367 +0x14A7C 0x653E +0x14A7D 0x65B9 +0x14A7E 0x670B +0x14B21 0x6CD5 +0x14B22 0x6CE1 +0x14B23 0x70F9 +0x14B24 0x7832 +0x14B25 0x7E2B +0x14B26 0x80DE +0x14B27 0x82B3 +0x14B28 0x840C +0x14B29 0x84EC +0x14B2A 0x8702 +0x14B2B 0x8912 +0x14B2C 0x8A2A +0x14B2D 0x8C4A +0x14B2E 0x90A6 +0x14B2F 0x92D2 +0x14B30 0x98FD +0x14B31 0x9CF3 +0x14B32 0x9D6C +0x14B33 0x4E4F +0x14B34 0x4EA1 +0x14B35 0x508D +0x14B36 0x5256 +0x14B37 0x574A +0x14B38 0x59A8 +0x14B39 0x5E3D +0x14B3A 0x5FD8 +0x14B3B 0x5FD9 +0x14B3C 0x623F +0x14B3D 0x66B4 +0x14B3E 0x671B +0x14B3F 0x67D0 +0x14B40 0x68D2 +0x14B41 0x5192 +0x14B42 0x7D21 +0x14B43 0x80AA +0x14B44 0x81A8 +0x14B45 0x8B00 +0x14B46 0x8C8C +0x14B47 0x8CBF +0x14B48 0x927E +0x14B49 0x9632 +0x14B4A 0x5420 +0x14B4B 0x982C +0x14B4C 0x5317 +0x14B4D 0x50D5 +0x14B4E 0x535C +0x14B4F 0x58A8 +0x14B50 0x64B2 +0x14B51 0x6734 +0x14B52 0x7267 +0x14B53 0x7766 +0x14B54 0x7A46 +0x14B55 0x91E6 +0x14B56 0x52C3 +0x14B57 0x6CA1 +0x14B58 0x6B86 +0x14B59 0x5800 +0x14B5A 0x5E4C +0x14B5B 0x5954 +0x14B5C 0x672C +0x14B5D 0x7FFB +0x14B5E 0x51E1 +0x14B5F 0x76C6 +0x14B60 0x6469 +0x14B61 0x78E8 +0x14B62 0x9B54 +0x14B63 0x9EBB +0x14B64 0x57CB +0x14B65 0x59B9 +0x14B66 0x6627 +0x14B67 0x679A +0x14B68 0x6BCE +0x14B69 0x54E9 +0x14B6A 0x69D9 +0x14B6B 0x5E55 +0x14B6C 0x819C +0x14B6D 0x6795 +0x14B6E 0x9BAA +0x14B6F 0x67FE +0x14B70 0x9C52 +0x14B71 0x685D +0x14B72 0x4EA6 +0x14B73 0x4FE3 +0x14B74 0x53C8 +0x14B75 0x62B9 +0x14B76 0x672B +0x14B77 0x6CAB +0x14B78 0x8FC4 +0x14B79 0x4FAD +0x14B7A 0x7E6D +0x14B7B 0x9EBF +0x14B7C 0x4E07 +0x14B7D 0x6162 +0x14B7E 0x6E80 +0x14C21 0x6F2B +0x14C22 0x8513 +0x14C23 0x5473 +0x14C24 0x672A +0x14C25 0x9B45 +0x14C26 0x5DF3 +0x14C27 0x7B95 +0x14C28 0x5CAC +0x14C29 0x5BC6 +0x14C2A 0x871C +0x14C2B 0x6E4A +0x14C2C 0x84D1 +0x14C2D 0x7A14 +0x14C2E 0x8108 +0x14C2F 0x5999 +0x14C30 0x7C8D +0x14C31 0x6C11 +0x14C32 0x7720 +0x14C33 0x52D9 +0x14C34 0x5922 +0x14C35 0x7121 +0x14C36 0x725F +0x14C37 0x77DB +0x14C38 0x9727 +0x14C39 0x9D61 +0x14C3A 0x690B +0x14C3B 0x5A7F +0x14C3C 0x5A18 +0x14C3D 0x51A5 +0x14C3E 0x540D +0x14C3F 0x547D +0x14C40 0x660E +0x14C41 0x76DF +0x14C42 0x8FF7 +0x14C43 0x9298 +0x14C44 0x9CF4 +0x14C45 0x59EA +0x14C46 0x725D +0x14C47 0x6EC5 +0x14C48 0x514D +0x14C49 0x68C9 +0x14C4A 0x7DBF +0x14C4B 0x7DEC +0x14C4C 0x9762 +0x14C4D 0x9EBA +0x14C4E 0x6478 +0x14C4F 0x6A21 +0x14C50 0x8302 +0x14C51 0x5984 +0x14C52 0x5B5F +0x14C53 0x6BDB +0x14C54 0x731B +0x14C55 0x76F2 +0x14C56 0x7DB2 +0x14C57 0x8017 +0x14C58 0x8499 +0x14C59 0x5132 +0x14C5A 0x6728 +0x14C5B 0x9ED9 +0x14C5C 0x76EE +0x14C5D 0x6762 +0x14C5E 0x52FF +0x14C5F 0x9905 +0x14C60 0x5C24 +0x14C61 0x623B +0x14C62 0x7C7E +0x14C63 0x8CB0 +0x14C64 0x554F +0x14C65 0x60B6 +0x14C66 0x7D0B +0x14C67 0x9580 +0x14C68 0x5301 +0x14C69 0x4E5F +0x14C6A 0x51B6 +0x14C6B 0x591C +0x14C6C 0x723A +0x14C6D 0x8036 +0x14C6E 0x91CE +0x14C6F 0x5F25 +0x14C70 0x77E2 +0x14C71 0x5384 +0x14C72 0x5F79 +0x14C73 0x7D04 +0x14C74 0x85AC +0x14C75 0x8A33 +0x14C76 0x8E8D +0x14C77 0x9756 +0x14C78 0x67F3 +0x14C79 0x85AE +0x14C7A 0x9453 +0x14C7B 0x6109 +0x14C7C 0x6108 +0x14C7D 0x6CB9 +0x14C7E 0x7652 +0x14D21 0x8AED +0x14D22 0x8F38 +0x14D23 0x552F +0x14D24 0x4F51 +0x14D25 0x512A +0x14D26 0x52C7 +0x14D27 0x53CB +0x14D28 0x5BA5 +0x14D29 0x5E7D +0x14D2A 0x60A0 +0x14D2B 0x6182 +0x14D2C 0x63D6 +0x14D2D 0x6709 +0x14D2E 0x67DA +0x14D2F 0x6E67 +0x14D30 0x6D8C +0x14D31 0x7336 +0x14D32 0x7337 +0x14D33 0x7531 +0x14D34 0x7950 +0x14D35 0x88D5 +0x14D36 0x8A98 +0x14D37 0x904A +0x14D38 0x9091 +0x14D39 0x90F5 +0x14D3A 0x96C4 +0x14D3B 0x878D +0x14D3C 0x5915 +0x14D3D 0x4E88 +0x14D3E 0x4F59 +0x14D3F 0x4E0E +0x14D40 0x8A89 +0x14D41 0x8F3F +0x14D42 0x9810 +0x14D43 0x50AD +0x14D44 0x5E7C +0x14D45 0x5996 +0x14D46 0x5BB9 +0x14D47 0x5EB8 +0x14D48 0x63DA +0x14D49 0x63FA +0x14D4A 0x64C1 +0x14D4B 0x66DC +0x14D4C 0x694A +0x14D4D 0x69D8 +0x14D4E 0x6D0B +0x14D4F 0x6EB6 +0x14D50 0x7194 +0x14D51 0x7528 +0x14D52 0x7AAF +0x14D53 0x7F8A +0x14D54 0x8000 +0x14D55 0x8449 +0x14D56 0x84C9 +0x14D57 0x8981 +0x14D58 0x8B21 +0x14D59 0x8E0A +0x14D5A 0x9065 +0x14D5B 0x967D +0x14D5C 0x990A +0x14D5D 0x617E +0x14D5E 0x6291 +0x14D5F 0x6B32 +0x14D60 0x6C83 +0x14D61 0x6D74 +0x14D62 0x7FCC +0x14D63 0x7FFC +0x14D64 0x6DC0 +0x14D65 0x7F85 +0x14D66 0x87BA +0x14D67 0x88F8 +0x14D68 0x6765 +0x14D69 0x83B1 +0x14D6A 0x983C +0x14D6B 0x96F7 +0x14D6C 0x6D1B +0x14D6D 0x7D61 +0x14D6E 0x843D +0x14D6F 0x916A +0x14D70 0x4E71 +0x14D71 0x5375 +0x14D72 0x5D50 +0x14D73 0x6B04 +0x14D74 0x6FEB +0x14D75 0x85CD +0x14D76 0x862D +0x14D77 0x89A7 +0x14D78 0x5229 +0x14D79 0x540F +0x14D7A 0x5C65 +0x14D7B 0x674E +0x14D7C 0x68A8 +0x14D7D 0x7406 +0x14D7E 0x7483 +0x14E21 0x75E2 +0x14E22 0x88CF +0x14E23 0x88E1 +0x14E24 0x91CC +0x14E25 0x96E2 +0x14E26 0x9678 +0x14E27 0x5F8B +0x14E28 0x7387 +0x14E29 0x7ACB +0x14E2A 0x844E +0x14E2B 0x63A0 +0x14E2C 0x7565 +0x14E2D 0x5289 +0x14E2E 0x6D41 +0x14E2F 0x6E9C +0x14E30 0x7409 +0x14E31 0x7559 +0x14E32 0x786B +0x14E33 0x7C92 +0x14E34 0x9686 +0x14E35 0x7ADC +0x14E36 0x9F8D +0x14E37 0x4FB6 +0x14E38 0x616E +0x14E39 0x65C5 +0x14E3A 0x865C +0x14E3B 0x4E86 +0x14E3C 0x4EAE +0x14E3D 0x50DA +0x14E3E 0x4E21 +0x14E3F 0x51CC +0x14E40 0x5BEE +0x14E41 0x6599 +0x14E42 0x6881 +0x14E43 0x6DBC +0x14E44 0x731F +0x14E45 0x7642 +0x14E46 0x77AD +0x14E47 0x7A1C +0x14E48 0x7CE7 +0x14E49 0x826F +0x14E4A 0x8AD2 +0x14E4B 0x907C +0x14E4C 0x91CF +0x14E4D 0x9675 +0x14E4E 0x9818 +0x14E4F 0x529B +0x14E50 0x7DD1 +0x14E51 0x502B +0x14E52 0x5398 +0x14E53 0x6797 +0x14E54 0x6DCB +0x14E55 0x71D0 +0x14E56 0x7433 +0x14E57 0x81E8 +0x14E58 0x8F2A +0x14E59 0x96A3 +0x14E5A 0x9C57 +0x14E5B 0x9E9F +0x14E5C 0x7460 +0x14E5D 0x5841 +0x14E5E 0x6D99 +0x14E5F 0x7D2F +0x14E60 0x985E +0x14E61 0x4EE4 +0x14E62 0x4F36 +0x14E63 0x4F8B +0x14E64 0x51B7 +0x14E65 0x52B1 +0x14E66 0x5DBA +0x14E67 0x601C +0x14E68 0x73B2 +0x14E69 0x793C +0x14E6A 0x82D3 +0x14E6B 0x9234 +0x14E6C 0x96B7 +0x14E6D 0x96F6 +0x14E6E 0x970A +0x14E6F 0x9E97 +0x14E70 0x9F62 +0x14E71 0x66A6 +0x14E72 0x6B74 +0x14E73 0x5217 +0x14E74 0x52A3 +0x14E75 0x70C8 +0x14E76 0x88C2 +0x14E77 0x5EC9 +0x14E78 0x604B +0x14E79 0x6190 +0x14E7A 0x6F23 +0x14E7B 0x7149 +0x14E7C 0x7C3E +0x14E7D 0x7DF4 +0x14E7E 0x806F +0x14F21 0x84EE +0x14F22 0x9023 +0x14F23 0x932C +0x14F24 0x5442 +0x14F25 0x9B6F +0x14F26 0x6AD3 +0x14F27 0x7089 +0x14F28 0x8CC2 +0x14F29 0x8DEF +0x14F2A 0x9732 +0x14F2B 0x52B4 +0x14F2C 0x5A41 +0x14F2D 0x5ECA +0x14F2E 0x5F04 +0x14F2F 0x6717 +0x14F30 0x697C +0x14F31 0x6994 +0x14F32 0x6D6A +0x14F33 0x6F0F +0x14F34 0x7262 +0x14F35 0x72FC +0x14F36 0x7BED +0x14F37 0x8001 +0x14F38 0x807E +0x14F39 0x874B +0x14F3A 0x90CE +0x14F3B 0x516D +0x14F3C 0x9E93 +0x14F3D 0x7984 +0x14F3E 0x808B +0x14F3F 0x9332 +0x14F40 0x8AD6 +0x14F41 0x502D +0x14F42 0x548C +0x14F43 0x8A71 +0x14F44 0x6B6A +0x14F45 0x8CC4 +0x14F46 0x8107 +0x14F47 0x60D1 +0x14F48 0x67A0 +0x14F49 0x9DF2 +0x14F4A 0x4E99 +0x14F4B 0x4E98 +0x14F4C 0x9C10 +0x14F4D 0x8A6B +0x14F4E 0x85C1 +0x14F4F 0x8568 +0x14F50 0x6900 +0x14F51 0x6E7E +0x14F52 0x7897 +0x14F53 0x8155 +0x14F54 0x20B9F +0x14F55 0x5B41 +0x14F56 0x5B56 +0x14F57 0x5B7D +0x14F58 0x5B93 +0x14F59 0x5BD8 +0x14F5A 0x5BEC +0x14F5B 0x5C12 +0x14F5C 0x5C1E +0x14F5D 0x5C23 +0x14F5E 0x5C2B +0x14F5F 0x378D +0x14F60 0x5C62 +0x14F61 0xFA3B +0x14F62 0xFA3C +0x14F63 0x216B4 +0x14F64 0x5C7A +0x14F65 0x5C8F +0x14F66 0x5C9F +0x14F67 0x5CA3 +0x14F68 0x5CAA +0x14F69 0x5CBA +0x14F6A 0x5CCB +0x14F6B 0x5CD0 +0x14F6C 0x5CD2 +0x14F6D 0x5CF4 +0x14F6E 0x21E34 +0x14F6F 0x37E2 +0x14F70 0x5D0D +0x14F71 0x5D27 +0x14F72 0xFA11 +0x14F73 0x5D46 +0x14F74 0x5D47 +0x14F75 0x5D53 +0x14F76 0x5D4A +0x14F77 0x5D6D +0x14F78 0x5D81 +0x14F79 0x5DA0 +0x14F7A 0x5DA4 +0x14F7B 0x5DA7 +0x14F7C 0x5DB8 +0x14F7D 0x5DCB +0x14F7E 0x541E +0x15021 0x5F0C +0x15022 0x4E10 +0x15023 0x4E15 +0x15024 0x4E2A +0x15025 0x4E31 +0x15026 0x4E36 +0x15027 0x4E3C +0x15028 0x4E3F +0x15029 0x4E42 +0x1502A 0x4E56 +0x1502B 0x4E58 +0x1502C 0x4E82 +0x1502D 0x4E85 +0x1502E 0x8C6B +0x1502F 0x4E8A +0x15030 0x8212 +0x15031 0x5F0D +0x15032 0x4E8E +0x15033 0x4E9E +0x15034 0x4E9F +0x15035 0x4EA0 +0x15036 0x4EA2 +0x15037 0x4EB0 +0x15038 0x4EB3 +0x15039 0x4EB6 +0x1503A 0x4ECE +0x1503B 0x4ECD +0x1503C 0x4EC4 +0x1503D 0x4EC6 +0x1503E 0x4EC2 +0x1503F 0x4ED7 +0x15040 0x4EDE +0x15041 0x4EED +0x15042 0x4EDF +0x15043 0x4EF7 +0x15044 0x4F09 +0x15045 0x4F5A +0x15046 0x4F30 +0x15047 0x4F5B +0x15048 0x4F5D +0x15049 0x4F57 +0x1504A 0x4F47 +0x1504B 0x4F76 +0x1504C 0x4F88 +0x1504D 0x4F8F +0x1504E 0x4F98 +0x1504F 0x4F7B +0x15050 0x4F69 +0x15051 0x4F70 +0x15052 0x4F91 +0x15053 0x4F6F +0x15054 0x4F86 +0x15055 0x4F96 +0x15056 0x5118 +0x15057 0x4FD4 +0x15058 0x4FDF +0x15059 0x4FCE +0x1505A 0x4FD8 +0x1505B 0x4FDB +0x1505C 0x4FD1 +0x1505D 0x4FDA +0x1505E 0x4FD0 +0x1505F 0x4FE4 +0x15060 0x4FE5 +0x15061 0x501A +0x15062 0x5028 +0x15063 0x5014 +0x15064 0x502A +0x15065 0x5025 +0x15066 0x5005 +0x15067 0x4F1C +0x15068 0x4FF6 +0x15069 0x5021 +0x1506A 0x5029 +0x1506B 0x502C +0x1506C 0x4FFE +0x1506D 0x4FEF +0x1506E 0x5011 +0x1506F 0x5006 +0x15070 0x5043 +0x15071 0x5047 +0x15072 0x6703 +0x15073 0x5055 +0x15074 0x5050 +0x15075 0x5048 +0x15076 0x505A +0x15077 0x5056 +0x15078 0x506C +0x15079 0x5078 +0x1507A 0x5080 +0x1507B 0x509A +0x1507C 0x5085 +0x1507D 0x50B4 +0x1507E 0x50B2 +0x15121 0x50C9 +0x15122 0x50CA +0x15123 0x50B3 +0x15124 0x50C2 +0x15125 0x50D6 +0x15126 0x50DE +0x15127 0x50E5 +0x15128 0x50ED +0x15129 0x50E3 +0x1512A 0x50EE +0x1512B 0x50F9 +0x1512C 0x50F5 +0x1512D 0x5109 +0x1512E 0x5101 +0x1512F 0x5102 +0x15130 0x5116 +0x15131 0x5115 +0x15132 0x5114 +0x15133 0x511A +0x15134 0x5121 +0x15135 0x513A +0x15136 0x5137 +0x15137 0x513C +0x15138 0x513B +0x15139 0x513F +0x1513A 0x5140 +0x1513B 0x5152 +0x1513C 0x514C +0x1513D 0x5154 +0x1513E 0x5162 +0x1513F 0x7AF8 +0x15140 0x5169 +0x15141 0x516A +0x15142 0x516E +0x15143 0x5180 +0x15144 0x5182 +0x15145 0x56D8 +0x15146 0x518C +0x15147 0x5189 +0x15148 0x518F +0x15149 0x5191 +0x1514A 0x5193 +0x1514B 0x5195 +0x1514C 0x5196 +0x1514D 0x51A4 +0x1514E 0x51A6 +0x1514F 0x51A2 +0x15150 0x51A9 +0x15151 0x51AA +0x15152 0x51AB +0x15153 0x51B3 +0x15154 0x51B1 +0x15155 0x51B2 +0x15156 0x51B0 +0x15157 0x51B5 +0x15158 0x51BD +0x15159 0x51C5 +0x1515A 0x51C9 +0x1515B 0x51DB +0x1515C 0x51E0 +0x1515D 0x8655 +0x1515E 0x51E9 +0x1515F 0x51ED +0x15160 0x51F0 +0x15161 0x51F5 +0x15162 0x51FE +0x15163 0x5204 +0x15164 0x520B +0x15165 0x5214 +0x15166 0x520E +0x15167 0x5227 +0x15168 0x522A +0x15169 0x522E +0x1516A 0x5233 +0x1516B 0x5239 +0x1516C 0x524F +0x1516D 0x5244 +0x1516E 0x524B +0x1516F 0x524C +0x15170 0x525E +0x15171 0x5254 +0x15172 0x526A +0x15173 0x5274 +0x15174 0x5269 +0x15175 0x5273 +0x15176 0x527F +0x15177 0x527D +0x15178 0x528D +0x15179 0x5294 +0x1517A 0x5292 +0x1517B 0x5271 +0x1517C 0x5288 +0x1517D 0x5291 +0x1517E 0x8FA8 +0x15221 0x8FA7 +0x15222 0x52AC +0x15223 0x52AD +0x15224 0x52BC +0x15225 0x52B5 +0x15226 0x52C1 +0x15227 0x52CD +0x15228 0x52D7 +0x15229 0x52DE +0x1522A 0x52E3 +0x1522B 0x52E6 +0x1522C 0x98ED +0x1522D 0x52E0 +0x1522E 0x52F3 +0x1522F 0x52F5 +0x15230 0x52F8 +0x15231 0x52F9 +0x15232 0x5306 +0x15233 0x5308 +0x15234 0x7538 +0x15235 0x530D +0x15236 0x5310 +0x15237 0x530F +0x15238 0x5315 +0x15239 0x531A +0x1523A 0x5323 +0x1523B 0x532F +0x1523C 0x5331 +0x1523D 0x5333 +0x1523E 0x5338 +0x1523F 0x5340 +0x15240 0x5346 +0x15241 0x5345 +0x15242 0x4E17 +0x15243 0x5349 +0x15244 0x534D +0x15245 0x51D6 +0x15246 0x535E +0x15247 0x5369 +0x15248 0x536E +0x15249 0x5918 +0x1524A 0x537B +0x1524B 0x5377 +0x1524C 0x5382 +0x1524D 0x5396 +0x1524E 0x53A0 +0x1524F 0x53A6 +0x15250 0x53A5 +0x15251 0x53AE +0x15252 0x53B0 +0x15253 0x53B6 +0x15254 0x53C3 +0x15255 0x7C12 +0x15256 0x96D9 +0x15257 0x53DF +0x15258 0x66FC +0x15259 0x71EE +0x1525A 0x53EE +0x1525B 0x53E8 +0x1525C 0x53ED +0x1525D 0x53FA +0x1525E 0x5401 +0x1525F 0x543D +0x15260 0x5440 +0x15261 0x542C +0x15262 0x542D +0x15263 0x543C +0x15264 0x542E +0x15265 0x5436 +0x15266 0x5429 +0x15267 0x541D +0x15268 0x544E +0x15269 0x548F +0x1526A 0x5475 +0x1526B 0x548E +0x1526C 0x545F +0x1526D 0x5471 +0x1526E 0x5477 +0x1526F 0x5470 +0x15270 0x5492 +0x15271 0x547B +0x15272 0x5480 +0x15273 0x5476 +0x15274 0x5484 +0x15275 0x5490 +0x15276 0x5486 +0x15277 0x54C7 +0x15278 0x54A2 +0x15279 0x54B8 +0x1527A 0x54A5 +0x1527B 0x54AC +0x1527C 0x54C4 +0x1527D 0x54C8 +0x1527E 0x54A8 +0x15321 0x54AB +0x15322 0x54C2 +0x15323 0x54A4 +0x15324 0x54BE +0x15325 0x54BC +0x15326 0x54D8 +0x15327 0x54E5 +0x15328 0x54E6 +0x15329 0x550F +0x1532A 0x5514 +0x1532B 0x54FD +0x1532C 0x54EE +0x1532D 0x54ED +0x1532E 0x54FA +0x1532F 0x54E2 +0x15330 0x5539 +0x15331 0x5540 +0x15332 0x5563 +0x15333 0x554C +0x15334 0x552E +0x15335 0x555C +0x15336 0x5545 +0x15337 0x5556 +0x15338 0x5557 +0x15339 0x5538 +0x1533A 0x5533 +0x1533B 0x555D +0x1533C 0x5599 +0x1533D 0x5580 +0x1533E 0x54AF +0x1533F 0x558A +0x15340 0x559F +0x15341 0x557B +0x15342 0x557E +0x15343 0x5598 +0x15344 0x559E +0x15345 0x55AE +0x15346 0x557C +0x15347 0x5583 +0x15348 0x55A9 +0x15349 0x5587 +0x1534A 0x55A8 +0x1534B 0x55DA +0x1534C 0x55C5 +0x1534D 0x55DF +0x1534E 0x55C4 +0x1534F 0x55DC +0x15350 0x55E4 +0x15351 0x55D4 +0x15352 0x5614 +0x15353 0x55F7 +0x15354 0x5616 +0x15355 0x55FE +0x15356 0x55FD +0x15357 0x561B +0x15358 0x55F9 +0x15359 0x564E +0x1535A 0x5650 +0x1535B 0x71DF +0x1535C 0x5634 +0x1535D 0x5636 +0x1535E 0x5632 +0x1535F 0x5638 +0x15360 0x566B +0x15361 0x5664 +0x15362 0x562F +0x15363 0x566C +0x15364 0x566A +0x15365 0x5686 +0x15366 0x5680 +0x15367 0x568A +0x15368 0x56A0 +0x15369 0x5694 +0x1536A 0x568F +0x1536B 0x56A5 +0x1536C 0x56AE +0x1536D 0x56B6 +0x1536E 0x56B4 +0x1536F 0x56C2 +0x15370 0x56BC +0x15371 0x56C1 +0x15372 0x56C3 +0x15373 0x56C0 +0x15374 0x56C8 +0x15375 0x56CE +0x15376 0x56D1 +0x15377 0x56D3 +0x15378 0x56D7 +0x15379 0x56EE +0x1537A 0x56F9 +0x1537B 0x5700 +0x1537C 0x56FF +0x1537D 0x5704 +0x1537E 0x5709 +0x15421 0x5708 +0x15422 0x570B +0x15423 0x570D +0x15424 0x5713 +0x15425 0x5718 +0x15426 0x5716 +0x15427 0x55C7 +0x15428 0x571C +0x15429 0x5726 +0x1542A 0x5737 +0x1542B 0x5738 +0x1542C 0x574E +0x1542D 0x573B +0x1542E 0x5740 +0x1542F 0x574F +0x15430 0x5769 +0x15431 0x57C0 +0x15432 0x5788 +0x15433 0x5761 +0x15434 0x577F +0x15435 0x5789 +0x15436 0x5793 +0x15437 0x57A0 +0x15438 0x57B3 +0x15439 0x57A4 +0x1543A 0x57AA +0x1543B 0x57B0 +0x1543C 0x57C3 +0x1543D 0x57C6 +0x1543E 0x57D4 +0x1543F 0x57D2 +0x15440 0x57D3 +0x15441 0x580A +0x15442 0x57D6 +0x15443 0x57E3 +0x15444 0x580B +0x15445 0x5819 +0x15446 0x581D +0x15447 0x5872 +0x15448 0x5821 +0x15449 0x5862 +0x1544A 0x584B +0x1544B 0x5870 +0x1544C 0x6BC0 +0x1544D 0x5852 +0x1544E 0x583D +0x1544F 0x5879 +0x15450 0x5885 +0x15451 0x58B9 +0x15452 0x589F +0x15453 0x58AB +0x15454 0x58BA +0x15455 0x58DE +0x15456 0x58BB +0x15457 0x58B8 +0x15458 0x58AE +0x15459 0x58C5 +0x1545A 0x58D3 +0x1545B 0x58D1 +0x1545C 0x58D7 +0x1545D 0x58D9 +0x1545E 0x58D8 +0x1545F 0x58E5 +0x15460 0x58DC +0x15461 0x58E4 +0x15462 0x58DF +0x15463 0x58EF +0x15464 0x58FA +0x15465 0x58F9 +0x15466 0x58FB +0x15467 0x58FC +0x15468 0x58FD +0x15469 0x5902 +0x1546A 0x590A +0x1546B 0x5910 +0x1546C 0x591B +0x1546D 0x68A6 +0x1546E 0x5925 +0x1546F 0x592C +0x15470 0x592D +0x15471 0x5932 +0x15472 0x5938 +0x15473 0x593E +0x15474 0x7AD2 +0x15475 0x5955 +0x15476 0x5950 +0x15477 0x594E +0x15478 0x595A +0x15479 0x5958 +0x1547A 0x5962 +0x1547B 0x5960 +0x1547C 0x5967 +0x1547D 0x596C +0x1547E 0x5969 +0x15521 0x5978 +0x15522 0x5981 +0x15523 0x599D +0x15524 0x4F5E +0x15525 0x4FAB +0x15526 0x59A3 +0x15527 0x59B2 +0x15528 0x59C6 +0x15529 0x59E8 +0x1552A 0x59DC +0x1552B 0x598D +0x1552C 0x59D9 +0x1552D 0x59DA +0x1552E 0x5A25 +0x1552F 0x5A1F +0x15530 0x5A11 +0x15531 0x5A1C +0x15532 0x5A09 +0x15533 0x5A1A +0x15534 0x5A40 +0x15535 0x5A6C +0x15536 0x5A49 +0x15537 0x5A35 +0x15538 0x5A36 +0x15539 0x5A62 +0x1553A 0x5A6A +0x1553B 0x5A9A +0x1553C 0x5ABC +0x1553D 0x5ABE +0x1553E 0x5ACB +0x1553F 0x5AC2 +0x15540 0x5ABD +0x15541 0x5AE3 +0x15542 0x5AD7 +0x15543 0x5AE6 +0x15544 0x5AE9 +0x15545 0x5AD6 +0x15546 0x5AFA +0x15547 0x5AFB +0x15548 0x5B0C +0x15549 0x5B0B +0x1554A 0x5B16 +0x1554B 0x5B32 +0x1554C 0x5AD0 +0x1554D 0x5B2A +0x1554E 0x5B36 +0x1554F 0x5B3E +0x15550 0x5B43 +0x15551 0x5B45 +0x15552 0x5B40 +0x15553 0x5B51 +0x15554 0x5B55 +0x15555 0x5B5A +0x15556 0x5B5B +0x15557 0x5B65 +0x15558 0x5B69 +0x15559 0x5B70 +0x1555A 0x5B73 +0x1555B 0x5B75 +0x1555C 0x5B78 +0x1555D 0x6588 +0x1555E 0x5B7A +0x1555F 0x5B80 +0x15560 0x5B83 +0x15561 0x5BA6 +0x15562 0x5BB8 +0x15563 0x5BC3 +0x15564 0x5BC7 +0x15565 0x5BC9 +0x15566 0x5BD4 +0x15567 0x5BD0 +0x15568 0x5BE4 +0x15569 0x5BE6 +0x1556A 0x5BE2 +0x1556B 0x5BDE +0x1556C 0x5BE5 +0x1556D 0x5BEB +0x1556E 0x5BF0 +0x1556F 0x5BF6 +0x15570 0x5BF3 +0x15571 0x5C05 +0x15572 0x5C07 +0x15573 0x5C08 +0x15574 0x5C0D +0x15575 0x5C13 +0x15576 0x5C20 +0x15577 0x5C22 +0x15578 0x5C28 +0x15579 0x5C38 +0x1557A 0x5C39 +0x1557B 0x5C41 +0x1557C 0x5C46 +0x1557D 0x5C4E +0x1557E 0x5C53 +0x15621 0x5C50 +0x15622 0x5C4F +0x15623 0x5B71 +0x15624 0x5C6C +0x15625 0x5C6E +0x15626 0x4E62 +0x15627 0x5C76 +0x15628 0x5C79 +0x15629 0x5C8C +0x1562A 0x5C91 +0x1562B 0x5C94 +0x1562C 0x599B +0x1562D 0x5CAB +0x1562E 0x5CBB +0x1562F 0x5CB6 +0x15630 0x5CBC +0x15631 0x5CB7 +0x15632 0x5CC5 +0x15633 0x5CBE +0x15634 0x5CC7 +0x15635 0x5CD9 +0x15636 0x5CE9 +0x15637 0x5CFD +0x15638 0x5CFA +0x15639 0x5CED +0x1563A 0x5D8C +0x1563B 0x5CEA +0x1563C 0x5D0B +0x1563D 0x5D15 +0x1563E 0x5D17 +0x1563F 0x5D5C +0x15640 0x5D1F +0x15641 0x5D1B +0x15642 0x5D11 +0x15643 0x5D14 +0x15644 0x5D22 +0x15645 0x5D1A +0x15646 0x5D19 +0x15647 0x5D18 +0x15648 0x5D4C +0x15649 0x5D52 +0x1564A 0x5D4E +0x1564B 0x5D4B +0x1564C 0x5D6C +0x1564D 0x5D73 +0x1564E 0x5D76 +0x1564F 0x5D87 +0x15650 0x5D84 +0x15651 0x5D82 +0x15652 0x5DA2 +0x15653 0x5D9D +0x15654 0x5DAC +0x15655 0x5DAE +0x15656 0x5DBD +0x15657 0x5D90 +0x15658 0x5DB7 +0x15659 0x5DBC +0x1565A 0x5DC9 +0x1565B 0x5DCD +0x1565C 0x5DD3 +0x1565D 0x5DD2 +0x1565E 0x5DD6 +0x1565F 0x5DDB +0x15660 0x5DEB +0x15661 0x5DF2 +0x15662 0x5DF5 +0x15663 0x5E0B +0x15664 0x5E1A +0x15665 0x5E19 +0x15666 0x5E11 +0x15667 0x5E1B +0x15668 0x5E36 +0x15669 0x5E37 +0x1566A 0x5E44 +0x1566B 0x5E43 +0x1566C 0x5E40 +0x1566D 0x5E4E +0x1566E 0x5E57 +0x1566F 0x5E54 +0x15670 0x5E5F +0x15671 0x5E62 +0x15672 0x5E64 +0x15673 0x5E47 +0x15674 0x5E75 +0x15675 0x5E76 +0x15676 0x5E7A +0x15677 0x9EBC +0x15678 0x5E7F +0x15679 0x5EA0 +0x1567A 0x5EC1 +0x1567B 0x5EC2 +0x1567C 0x5EC8 +0x1567D 0x5ED0 +0x1567E 0x5ECF +0x15721 0x5ED6 +0x15722 0x5EE3 +0x15723 0x5EDD +0x15724 0x5EDA +0x15725 0x5EDB +0x15726 0x5EE2 +0x15727 0x5EE1 +0x15728 0x5EE8 +0x15729 0x5EE9 +0x1572A 0x5EEC +0x1572B 0x5EF1 +0x1572C 0x5EF3 +0x1572D 0x5EF0 +0x1572E 0x5EF4 +0x1572F 0x5EF8 +0x15730 0x5EFE +0x15731 0x5F03 +0x15732 0x5F09 +0x15733 0x5F5D +0x15734 0x5F5C +0x15735 0x5F0B +0x15736 0x5F11 +0x15737 0x5F16 +0x15738 0x5F29 +0x15739 0x5F2D +0x1573A 0x5F38 +0x1573B 0x5F41 +0x1573C 0x5F48 +0x1573D 0x5F4C +0x1573E 0x5F4E +0x1573F 0x5F2F +0x15740 0x5F51 +0x15741 0x5F56 +0x15742 0x5F57 +0x15743 0x5F59 +0x15744 0x5F61 +0x15745 0x5F6D +0x15746 0x5F73 +0x15747 0x5F77 +0x15748 0x5F83 +0x15749 0x5F82 +0x1574A 0x5F7F +0x1574B 0x5F8A +0x1574C 0x5F88 +0x1574D 0x5F91 +0x1574E 0x5F87 +0x1574F 0x5F9E +0x15750 0x5F99 +0x15751 0x5F98 +0x15752 0x5FA0 +0x15753 0x5FA8 +0x15754 0x5FAD +0x15755 0x5FBC +0x15756 0x5FD6 +0x15757 0x5FFB +0x15758 0x5FE4 +0x15759 0x5FF8 +0x1575A 0x5FF1 +0x1575B 0x5FDD +0x1575C 0x60B3 +0x1575D 0x5FFF +0x1575E 0x6021 +0x1575F 0x6060 +0x15760 0x6019 +0x15761 0x6010 +0x15762 0x6029 +0x15763 0x600E +0x15764 0x6031 +0x15765 0x601B +0x15766 0x6015 +0x15767 0x602B +0x15768 0x6026 +0x15769 0x600F +0x1576A 0x603A +0x1576B 0x605A +0x1576C 0x6041 +0x1576D 0x606A +0x1576E 0x6077 +0x1576F 0x605F +0x15770 0x604A +0x15771 0x6046 +0x15772 0x604D +0x15773 0x6063 +0x15774 0x6043 +0x15775 0x6064 +0x15776 0x6042 +0x15777 0x606C +0x15778 0x606B +0x15779 0x6059 +0x1577A 0x6081 +0x1577B 0x608D +0x1577C 0x60E7 +0x1577D 0x6083 +0x1577E 0x609A +0x15821 0x6084 +0x15822 0x609B +0x15823 0x6096 +0x15824 0x6097 +0x15825 0x6092 +0x15826 0x60A7 +0x15827 0x608B +0x15828 0x60E1 +0x15829 0x60B8 +0x1582A 0x60E0 +0x1582B 0x60D3 +0x1582C 0x60B4 +0x1582D 0x5FF0 +0x1582E 0x60BD +0x1582F 0x60C6 +0x15830 0x60B5 +0x15831 0x60D8 +0x15832 0x614D +0x15833 0x6115 +0x15834 0x6106 +0x15835 0x60F6 +0x15836 0x60F7 +0x15837 0x6100 +0x15838 0x60F4 +0x15839 0x60FA +0x1583A 0x6103 +0x1583B 0x6121 +0x1583C 0x60FB +0x1583D 0x60F1 +0x1583E 0x610D +0x1583F 0x610E +0x15840 0x6147 +0x15841 0x613E +0x15842 0x6128 +0x15843 0x6127 +0x15844 0x614A +0x15845 0x613F +0x15846 0x613C +0x15847 0x612C +0x15848 0x6134 +0x15849 0x613D +0x1584A 0x6142 +0x1584B 0x6144 +0x1584C 0x6173 +0x1584D 0x6177 +0x1584E 0x6158 +0x1584F 0x6159 +0x15850 0x615A +0x15851 0x616B +0x15852 0x6174 +0x15853 0x616F +0x15854 0x6165 +0x15855 0x6171 +0x15856 0x615F +0x15857 0x615D +0x15858 0x6153 +0x15859 0x6175 +0x1585A 0x6199 +0x1585B 0x6196 +0x1585C 0x6187 +0x1585D 0x61AC +0x1585E 0x6194 +0x1585F 0x619A +0x15860 0x618A +0x15861 0x6191 +0x15862 0x61AB +0x15863 0x61AE +0x15864 0x61CC +0x15865 0x61CA +0x15866 0x61C9 +0x15867 0x61F7 +0x15868 0x61C8 +0x15869 0x61C3 +0x1586A 0x61C6 +0x1586B 0x61BA +0x1586C 0x61CB +0x1586D 0x7F79 +0x1586E 0x61CD +0x1586F 0x61E6 +0x15870 0x61E3 +0x15871 0x61F6 +0x15872 0x61FA +0x15873 0x61F4 +0x15874 0x61FF +0x15875 0x61FD +0x15876 0x61FC +0x15877 0x61FE +0x15878 0x6200 +0x15879 0x6208 +0x1587A 0x6209 +0x1587B 0x620D +0x1587C 0x620C +0x1587D 0x6214 +0x1587E 0x621B +0x15921 0x621E +0x15922 0x6221 +0x15923 0x622A +0x15924 0x622E +0x15925 0x6230 +0x15926 0x6232 +0x15927 0x6233 +0x15928 0x6241 +0x15929 0x624E +0x1592A 0x625E +0x1592B 0x6263 +0x1592C 0x625B +0x1592D 0x6260 +0x1592E 0x6268 +0x1592F 0x627C +0x15930 0x6282 +0x15931 0x6289 +0x15932 0x627E +0x15933 0x6292 +0x15934 0x6293 +0x15935 0x6296 +0x15936 0x62D4 +0x15937 0x6283 +0x15938 0x6294 +0x15939 0x62D7 +0x1593A 0x62D1 +0x1593B 0x62BB +0x1593C 0x62CF +0x1593D 0x62FF +0x1593E 0x62C6 +0x1593F 0x64D4 +0x15940 0x62C8 +0x15941 0x62DC +0x15942 0x62CC +0x15943 0x62CA +0x15944 0x62C2 +0x15945 0x62C7 +0x15946 0x629B +0x15947 0x62C9 +0x15948 0x630C +0x15949 0x62EE +0x1594A 0x62F1 +0x1594B 0x6327 +0x1594C 0x6302 +0x1594D 0x6308 +0x1594E 0x62EF +0x1594F 0x62F5 +0x15950 0x6350 +0x15951 0x633E +0x15952 0x634D +0x15953 0x641C +0x15954 0x634F +0x15955 0x6396 +0x15956 0x638E +0x15957 0x6380 +0x15958 0x63AB +0x15959 0x6376 +0x1595A 0x63A3 +0x1595B 0x638F +0x1595C 0x6389 +0x1595D 0x639F +0x1595E 0x63B5 +0x1595F 0x636B +0x15960 0x6369 +0x15961 0x63BE +0x15962 0x63E9 +0x15963 0x63C0 +0x15964 0x63C6 +0x15965 0x63E3 +0x15966 0x63C9 +0x15967 0x63D2 +0x15968 0x63F6 +0x15969 0x63C4 +0x1596A 0x6416 +0x1596B 0x6434 +0x1596C 0x6406 +0x1596D 0x6413 +0x1596E 0x6426 +0x1596F 0x6436 +0x15970 0x651D +0x15971 0x6417 +0x15972 0x6428 +0x15973 0x640F +0x15974 0x6467 +0x15975 0x646F +0x15976 0x6476 +0x15977 0x644E +0x15978 0x652A +0x15979 0x6495 +0x1597A 0x6493 +0x1597B 0x64A5 +0x1597C 0x64A9 +0x1597D 0x6488 +0x1597E 0x64BC +0x15A21 0x64DA +0x15A22 0x64D2 +0x15A23 0x64C5 +0x15A24 0x64C7 +0x15A25 0x64BB +0x15A26 0x64D8 +0x15A27 0x64C2 +0x15A28 0x64F1 +0x15A29 0x64E7 +0x15A2A 0x8209 +0x15A2B 0x64E0 +0x15A2C 0x64E1 +0x15A2D 0x62AC +0x15A2E 0x64E3 +0x15A2F 0x64EF +0x15A30 0x652C +0x15A31 0x64F6 +0x15A32 0x64F4 +0x15A33 0x64F2 +0x15A34 0x64FA +0x15A35 0x6500 +0x15A36 0x64FD +0x15A37 0x6518 +0x15A38 0x651C +0x15A39 0x6505 +0x15A3A 0x6524 +0x15A3B 0x6523 +0x15A3C 0x652B +0x15A3D 0x6534 +0x15A3E 0x6535 +0x15A3F 0x6537 +0x15A40 0x6536 +0x15A41 0x6538 +0x15A42 0x754B +0x15A43 0x6548 +0x15A44 0x6556 +0x15A45 0x6555 +0x15A46 0x654D +0x15A47 0x6558 +0x15A48 0x655E +0x15A49 0x655D +0x15A4A 0x6572 +0x15A4B 0x6578 +0x15A4C 0x6582 +0x15A4D 0x6583 +0x15A4E 0x8B8A +0x15A4F 0x659B +0x15A50 0x659F +0x15A51 0x65AB +0x15A52 0x65B7 +0x15A53 0x65C3 +0x15A54 0x65C6 +0x15A55 0x65C1 +0x15A56 0x65C4 +0x15A57 0x65CC +0x15A58 0x65D2 +0x15A59 0x65DB +0x15A5A 0x65D9 +0x15A5B 0x65E0 +0x15A5C 0x65E1 +0x15A5D 0x65F1 +0x15A5E 0x6772 +0x15A5F 0x660A +0x15A60 0x6603 +0x15A61 0x65FB +0x15A62 0x6773 +0x15A63 0x6635 +0x15A64 0x6636 +0x15A65 0x6634 +0x15A66 0x661C +0x15A67 0x664F +0x15A68 0x6644 +0x15A69 0x6649 +0x15A6A 0x6641 +0x15A6B 0x665E +0x15A6C 0x665D +0x15A6D 0x6664 +0x15A6E 0x6667 +0x15A6F 0x6668 +0x15A70 0x665F +0x15A71 0x6662 +0x15A72 0x6670 +0x15A73 0x6683 +0x15A74 0x6688 +0x15A75 0x668E +0x15A76 0x6689 +0x15A77 0x6684 +0x15A78 0x6698 +0x15A79 0x669D +0x15A7A 0x66C1 +0x15A7B 0x66B9 +0x15A7C 0x66C9 +0x15A7D 0x66BE +0x15A7E 0x66BC +0x15B21 0x66C4 +0x15B22 0x66B8 +0x15B23 0x66D6 +0x15B24 0x66DA +0x15B25 0x66E0 +0x15B26 0x663F +0x15B27 0x66E6 +0x15B28 0x66E9 +0x15B29 0x66F0 +0x15B2A 0x66F5 +0x15B2B 0x66F7 +0x15B2C 0x670F +0x15B2D 0x6716 +0x15B2E 0x671E +0x15B2F 0x6726 +0x15B30 0x6727 +0x15B31 0x9738 +0x15B32 0x672E +0x15B33 0x673F +0x15B34 0x6736 +0x15B35 0x6741 +0x15B36 0x6738 +0x15B37 0x6737 +0x15B38 0x6746 +0x15B39 0x675E +0x15B3A 0x6760 +0x15B3B 0x6759 +0x15B3C 0x6763 +0x15B3D 0x6764 +0x15B3E 0x6789 +0x15B3F 0x6770 +0x15B40 0x67A9 +0x15B41 0x677C +0x15B42 0x676A +0x15B43 0x678C +0x15B44 0x678B +0x15B45 0x67A6 +0x15B46 0x67A1 +0x15B47 0x6785 +0x15B48 0x67B7 +0x15B49 0x67EF +0x15B4A 0x67B4 +0x15B4B 0x67EC +0x15B4C 0x67B3 +0x15B4D 0x67E9 +0x15B4E 0x67B8 +0x15B4F 0x67E4 +0x15B50 0x67DE +0x15B51 0x67DD +0x15B52 0x67E2 +0x15B53 0x67EE +0x15B54 0x67B9 +0x15B55 0x67CE +0x15B56 0x67C6 +0x15B57 0x67E7 +0x15B58 0x6A9C +0x15B59 0x681E +0x15B5A 0x6846 +0x15B5B 0x6829 +0x15B5C 0x6840 +0x15B5D 0x684D +0x15B5E 0x6832 +0x15B5F 0x684E +0x15B60 0x68B3 +0x15B61 0x682B +0x15B62 0x6859 +0x15B63 0x6863 +0x15B64 0x6877 +0x15B65 0x687F +0x15B66 0x689F +0x15B67 0x688F +0x15B68 0x68AD +0x15B69 0x6894 +0x15B6A 0x689D +0x15B6B 0x689B +0x15B6C 0x6883 +0x15B6D 0x6AAE +0x15B6E 0x68B9 +0x15B6F 0x6874 +0x15B70 0x68B5 +0x15B71 0x68A0 +0x15B72 0x68BA +0x15B73 0x690F +0x15B74 0x688D +0x15B75 0x687E +0x15B76 0x6901 +0x15B77 0x68CA +0x15B78 0x6908 +0x15B79 0x68D8 +0x15B7A 0x6922 +0x15B7B 0x6926 +0x15B7C 0x68E1 +0x15B7D 0x690C +0x15B7E 0x68CD +0x15C21 0x68D4 +0x15C22 0x68E7 +0x15C23 0x68D5 +0x15C24 0x6936 +0x15C25 0x6912 +0x15C26 0x6904 +0x15C27 0x68D7 +0x15C28 0x68E3 +0x15C29 0x6925 +0x15C2A 0x68F9 +0x15C2B 0x68E0 +0x15C2C 0x68EF +0x15C2D 0x6928 +0x15C2E 0x692A +0x15C2F 0x691A +0x15C30 0x6923 +0x15C31 0x6921 +0x15C32 0x68C6 +0x15C33 0x6979 +0x15C34 0x6977 +0x15C35 0x695C +0x15C36 0x6978 +0x15C37 0x696B +0x15C38 0x6954 +0x15C39 0x697E +0x15C3A 0x696E +0x15C3B 0x6939 +0x15C3C 0x6974 +0x15C3D 0x693D +0x15C3E 0x6959 +0x15C3F 0x6930 +0x15C40 0x6961 +0x15C41 0x695E +0x15C42 0x695D +0x15C43 0x6981 +0x15C44 0x696A +0x15C45 0x69B2 +0x15C46 0x69AE +0x15C47 0x69D0 +0x15C48 0x69BF +0x15C49 0x69C1 +0x15C4A 0x69D3 +0x15C4B 0x69BE +0x15C4C 0x69CE +0x15C4D 0x5BE8 +0x15C4E 0x69CA +0x15C4F 0x69DD +0x15C50 0x69BB +0x15C51 0x69C3 +0x15C52 0x69A7 +0x15C53 0x6A2E +0x15C54 0x6991 +0x15C55 0x69A0 +0x15C56 0x699C +0x15C57 0x6995 +0x15C58 0x69B4 +0x15C59 0x69DE +0x15C5A 0x69E8 +0x15C5B 0x6A02 +0x15C5C 0x6A1B +0x15C5D 0x69FF +0x15C5E 0x6B0A +0x15C5F 0x69F9 +0x15C60 0x69F2 +0x15C61 0x69E7 +0x15C62 0x6A05 +0x15C63 0x69B1 +0x15C64 0x6A1E +0x15C65 0x69ED +0x15C66 0x6A14 +0x15C67 0x69EB +0x15C68 0x6A0A +0x15C69 0x6A12 +0x15C6A 0x6AC1 +0x15C6B 0x6A23 +0x15C6C 0x6A13 +0x15C6D 0x6A44 +0x15C6E 0x6A0C +0x15C6F 0x6A72 +0x15C70 0x6A36 +0x15C71 0x6A78 +0x15C72 0x6A47 +0x15C73 0x6A62 +0x15C74 0x6A59 +0x15C75 0x6A66 +0x15C76 0x6A48 +0x15C77 0x6A38 +0x15C78 0x6A22 +0x15C79 0x6A90 +0x15C7A 0x6A8D +0x15C7B 0x6AA0 +0x15C7C 0x6A84 +0x15C7D 0x6AA2 +0x15C7E 0x6AA3 +0x15D21 0x6A97 +0x15D22 0x8617 +0x15D23 0x6ABB +0x15D24 0x6AC3 +0x15D25 0x6AC2 +0x15D26 0x6AB8 +0x15D27 0x6AB3 +0x15D28 0x6AAC +0x15D29 0x6ADE +0x15D2A 0x6AD1 +0x15D2B 0x6ADF +0x15D2C 0x6AAA +0x15D2D 0x6ADA +0x15D2E 0x6AEA +0x15D2F 0x6AFB +0x15D30 0x6B05 +0x15D31 0x8616 +0x15D32 0x6AFA +0x15D33 0x6B12 +0x15D34 0x6B16 +0x15D35 0x9B31 +0x15D36 0x6B1F +0x15D37 0x6B38 +0x15D38 0x6B37 +0x15D39 0x76DC +0x15D3A 0x6B39 +0x15D3B 0x98EE +0x15D3C 0x6B47 +0x15D3D 0x6B43 +0x15D3E 0x6B49 +0x15D3F 0x6B50 +0x15D40 0x6B59 +0x15D41 0x6B54 +0x15D42 0x6B5B +0x15D43 0x6B5F +0x15D44 0x6B61 +0x15D45 0x6B78 +0x15D46 0x6B79 +0x15D47 0x6B7F +0x15D48 0x6B80 +0x15D49 0x6B84 +0x15D4A 0x6B83 +0x15D4B 0x6B8D +0x15D4C 0x6B98 +0x15D4D 0x6B95 +0x15D4E 0x6B9E +0x15D4F 0x6BA4 +0x15D50 0x6BAA +0x15D51 0x6BAB +0x15D52 0x6BAF +0x15D53 0x6BB2 +0x15D54 0x6BB1 +0x15D55 0x6BB3 +0x15D56 0x6BB7 +0x15D57 0x6BBC +0x15D58 0x6BC6 +0x15D59 0x6BCB +0x15D5A 0x6BD3 +0x15D5B 0x6BDF +0x15D5C 0x6BEC +0x15D5D 0x6BEB +0x15D5E 0x6BF3 +0x15D5F 0x6BEF +0x15D60 0x9EBE +0x15D61 0x6C08 +0x15D62 0x6C13 +0x15D63 0x6C14 +0x15D64 0x6C1B +0x15D65 0x6C24 +0x15D66 0x6C23 +0x15D67 0x6C5E +0x15D68 0x6C55 +0x15D69 0x6C62 +0x15D6A 0x6C6A +0x15D6B 0x6C82 +0x15D6C 0x6C8D +0x15D6D 0x6C9A +0x15D6E 0x6C81 +0x15D6F 0x6C9B +0x15D70 0x6C7E +0x15D71 0x6C68 +0x15D72 0x6C73 +0x15D73 0x6C92 +0x15D74 0x6C90 +0x15D75 0x6CC4 +0x15D76 0x6CF1 +0x15D77 0x6CD3 +0x15D78 0x6CBD +0x15D79 0x6CD7 +0x15D7A 0x6CC5 +0x15D7B 0x6CDD +0x15D7C 0x6CAE +0x15D7D 0x6CB1 +0x15D7E 0x6CBE +0x15E21 0x6CBA +0x15E22 0x6CDB +0x15E23 0x6CEF +0x15E24 0x6CD9 +0x15E25 0x6CEA +0x15E26 0x6D1F +0x15E27 0x884D +0x15E28 0x6D36 +0x15E29 0x6D2B +0x15E2A 0x6D3D +0x15E2B 0x6D38 +0x15E2C 0x6D19 +0x15E2D 0x6D35 +0x15E2E 0x6D33 +0x15E2F 0x6D12 +0x15E30 0x6D0C +0x15E31 0x6D63 +0x15E32 0x6D93 +0x15E33 0x6D64 +0x15E34 0x6D5A +0x15E35 0x6D79 +0x15E36 0x6D59 +0x15E37 0x6D8E +0x15E38 0x6D95 +0x15E39 0x6FE4 +0x15E3A 0x6D85 +0x15E3B 0x6DF9 +0x15E3C 0x6E15 +0x15E3D 0x6E0A +0x15E3E 0x6DB5 +0x15E3F 0x6DC7 +0x15E40 0x6DE6 +0x15E41 0x6DB8 +0x15E42 0x6DC6 +0x15E43 0x6DEC +0x15E44 0x6DDE +0x15E45 0x6DCC +0x15E46 0x6DE8 +0x15E47 0x6DD2 +0x15E48 0x6DC5 +0x15E49 0x6DFA +0x15E4A 0x6DD9 +0x15E4B 0x6DE4 +0x15E4C 0x6DD5 +0x15E4D 0x6DEA +0x15E4E 0x6DEE +0x15E4F 0x6E2D +0x15E50 0x6E6E +0x15E51 0x6E2E +0x15E52 0x6E19 +0x15E53 0x6E72 +0x15E54 0x6E5F +0x15E55 0x6E3E +0x15E56 0x6E23 +0x15E57 0x6E6B +0x15E58 0x6E2B +0x15E59 0x6E76 +0x15E5A 0x6E4D +0x15E5B 0x6E1F +0x15E5C 0x6E43 +0x15E5D 0x6E3A +0x15E5E 0x6E4E +0x15E5F 0x6E24 +0x15E60 0x6EFF +0x15E61 0x6E1D +0x15E62 0x6E38 +0x15E63 0x6E82 +0x15E64 0x6EAA +0x15E65 0x6E98 +0x15E66 0x6EC9 +0x15E67 0x6EB7 +0x15E68 0x6ED3 +0x15E69 0x6EBD +0x15E6A 0x6EAF +0x15E6B 0x6EC4 +0x15E6C 0x6EB2 +0x15E6D 0x6ED4 +0x15E6E 0x6ED5 +0x15E6F 0x6E8F +0x15E70 0x6EA5 +0x15E71 0x6EC2 +0x15E72 0x6E9F +0x15E73 0x6F41 +0x15E74 0x6F11 +0x15E75 0x704C +0x15E76 0x6EEC +0x15E77 0x6EF8 +0x15E78 0x6EFE +0x15E79 0x6F3F +0x15E7A 0x6EF2 +0x15E7B 0x6F31 +0x15E7C 0x6EEF +0x15E7D 0x6F32 +0x15E7E 0x6ECC +0x15F21 0x6F3E +0x15F22 0x6F13 +0x15F23 0x6EF7 +0x15F24 0x6F86 +0x15F25 0x6F7A +0x15F26 0x6F78 +0x15F27 0x6F81 +0x15F28 0x6F80 +0x15F29 0x6F6F +0x15F2A 0x6F5B +0x15F2B 0x6FF3 +0x15F2C 0x6F6D +0x15F2D 0x6F82 +0x15F2E 0x6F7C +0x15F2F 0x6F58 +0x15F30 0x6F8E +0x15F31 0x6F91 +0x15F32 0x6FC2 +0x15F33 0x6F66 +0x15F34 0x6FB3 +0x15F35 0x6FA3 +0x15F36 0x6FA1 +0x15F37 0x6FA4 +0x15F38 0x6FB9 +0x15F39 0x6FC6 +0x15F3A 0x6FAA +0x15F3B 0x6FDF +0x15F3C 0x6FD5 +0x15F3D 0x6FEC +0x15F3E 0x6FD4 +0x15F3F 0x6FD8 +0x15F40 0x6FF1 +0x15F41 0x6FEE +0x15F42 0x6FDB +0x15F43 0x7009 +0x15F44 0x700B +0x15F45 0x6FFA +0x15F46 0x7011 +0x15F47 0x7001 +0x15F48 0x700F +0x15F49 0x6FFE +0x15F4A 0x701B +0x15F4B 0x701A +0x15F4C 0x6F74 +0x15F4D 0x701D +0x15F4E 0x7018 +0x15F4F 0x701F +0x15F50 0x7030 +0x15F51 0x703E +0x15F52 0x7032 +0x15F53 0x7051 +0x15F54 0x7063 +0x15F55 0x7099 +0x15F56 0x7092 +0x15F57 0x70AF +0x15F58 0x70F1 +0x15F59 0x70AC +0x15F5A 0x70B8 +0x15F5B 0x70B3 +0x15F5C 0x70AE +0x15F5D 0x70DF +0x15F5E 0x70CB +0x15F5F 0x70DD +0x15F60 0x70D9 +0x15F61 0x7109 +0x15F62 0x70FD +0x15F63 0x711C +0x15F64 0x7119 +0x15F65 0x7165 +0x15F66 0x7155 +0x15F67 0x7188 +0x15F68 0x7166 +0x15F69 0x7162 +0x15F6A 0x714C +0x15F6B 0x7156 +0x15F6C 0x716C +0x15F6D 0x718F +0x15F6E 0x71FB +0x15F6F 0x7184 +0x15F70 0x7195 +0x15F71 0x71A8 +0x15F72 0x71AC +0x15F73 0x71D7 +0x15F74 0x71B9 +0x15F75 0x71BE +0x15F76 0x71D2 +0x15F77 0x71C9 +0x15F78 0x71D4 +0x15F79 0x71CE +0x15F7A 0x71E0 +0x15F7B 0x71EC +0x15F7C 0x71E7 +0x15F7D 0x71F5 +0x15F7E 0x71FC +0x16021 0x71F9 +0x16022 0x71FF +0x16023 0x720D +0x16024 0x7210 +0x16025 0x721B +0x16026 0x7228 +0x16027 0x722D +0x16028 0x722C +0x16029 0x7230 +0x1602A 0x7232 +0x1602B 0x723B +0x1602C 0x723C +0x1602D 0x723F +0x1602E 0x7240 +0x1602F 0x7246 +0x16030 0x724B +0x16031 0x7258 +0x16032 0x7274 +0x16033 0x727E +0x16034 0x7282 +0x16035 0x7281 +0x16036 0x7287 +0x16037 0x7292 +0x16038 0x7296 +0x16039 0x72A2 +0x1603A 0x72A7 +0x1603B 0x72B9 +0x1603C 0x72B2 +0x1603D 0x72C3 +0x1603E 0x72C6 +0x1603F 0x72C4 +0x16040 0x72CE +0x16041 0x72D2 +0x16042 0x72E2 +0x16043 0x72E0 +0x16044 0x72E1 +0x16045 0x72F9 +0x16046 0x72F7 +0x16047 0x500F +0x16048 0x7317 +0x16049 0x730A +0x1604A 0x731C +0x1604B 0x7316 +0x1604C 0x731D +0x1604D 0x7334 +0x1604E 0x732F +0x1604F 0x7329 +0x16050 0x7325 +0x16051 0x733E +0x16052 0x734E +0x16053 0x734F +0x16054 0x9ED8 +0x16055 0x7357 +0x16056 0x736A +0x16057 0x7368 +0x16058 0x7370 +0x16059 0x7378 +0x1605A 0x7375 +0x1605B 0x737B +0x1605C 0x737A +0x1605D 0x73C8 +0x1605E 0x73B3 +0x1605F 0x73CE +0x16060 0x73BB +0x16061 0x73C0 +0x16062 0x73E5 +0x16063 0x73EE +0x16064 0x73DE +0x16065 0x74A2 +0x16066 0x7405 +0x16067 0x746F +0x16068 0x7425 +0x16069 0x73F8 +0x1606A 0x7432 +0x1606B 0x743A +0x1606C 0x7455 +0x1606D 0x743F +0x1606E 0x745F +0x1606F 0x7459 +0x16070 0x7441 +0x16071 0x745C +0x16072 0x7469 +0x16073 0x7470 +0x16074 0x7463 +0x16075 0x746A +0x16076 0x7476 +0x16077 0x747E +0x16078 0x748B +0x16079 0x749E +0x1607A 0x74A7 +0x1607B 0x74CA +0x1607C 0x74CF +0x1607D 0x74D4 +0x1607E 0x73F1 +0x16121 0x74E0 +0x16122 0x74E3 +0x16123 0x74E7 +0x16124 0x74E9 +0x16125 0x74EE +0x16126 0x74F2 +0x16127 0x74F0 +0x16128 0x74F1 +0x16129 0x74F8 +0x1612A 0x74F7 +0x1612B 0x7504 +0x1612C 0x7503 +0x1612D 0x7505 +0x1612E 0x750C +0x1612F 0x750E +0x16130 0x750D +0x16131 0x7515 +0x16132 0x7513 +0x16133 0x751E +0x16134 0x7526 +0x16135 0x752C +0x16136 0x753C +0x16137 0x7544 +0x16138 0x754D +0x16139 0x754A +0x1613A 0x7549 +0x1613B 0x755B +0x1613C 0x7546 +0x1613D 0x755A +0x1613E 0x7569 +0x1613F 0x7564 +0x16140 0x7567 +0x16141 0x756B +0x16142 0x756D +0x16143 0x7578 +0x16144 0x7576 +0x16145 0x7586 +0x16146 0x7587 +0x16147 0x7574 +0x16148 0x758A +0x16149 0x7589 +0x1614A 0x7582 +0x1614B 0x7594 +0x1614C 0x759A +0x1614D 0x759D +0x1614E 0x75A5 +0x1614F 0x75A3 +0x16150 0x75C2 +0x16151 0x75B3 +0x16152 0x75C3 +0x16153 0x75B5 +0x16154 0x75BD +0x16155 0x75B8 +0x16156 0x75BC +0x16157 0x75B1 +0x16158 0x75CD +0x16159 0x75CA +0x1615A 0x75D2 +0x1615B 0x75D9 +0x1615C 0x75E3 +0x1615D 0x75DE +0x1615E 0x75FE +0x1615F 0x75FF +0x16160 0x75FC +0x16161 0x7601 +0x16162 0x75F0 +0x16163 0x75FA +0x16164 0x75F2 +0x16165 0x75F3 +0x16166 0x760B +0x16167 0x760D +0x16168 0x7609 +0x16169 0x761F +0x1616A 0x7627 +0x1616B 0x7620 +0x1616C 0x7621 +0x1616D 0x7622 +0x1616E 0x7624 +0x1616F 0x7634 +0x16170 0x7630 +0x16171 0x763B +0x16172 0x7647 +0x16173 0x7648 +0x16174 0x7646 +0x16175 0x765C +0x16176 0x7658 +0x16177 0x7661 +0x16178 0x7662 +0x16179 0x7668 +0x1617A 0x7669 +0x1617B 0x766A +0x1617C 0x7667 +0x1617D 0x766C +0x1617E 0x7670 +0x16221 0x7672 +0x16222 0x7676 +0x16223 0x7678 +0x16224 0x767C +0x16225 0x7680 +0x16226 0x7683 +0x16227 0x7688 +0x16228 0x768B +0x16229 0x768E +0x1622A 0x7696 +0x1622B 0x7693 +0x1622C 0x7699 +0x1622D 0x769A +0x1622E 0x76B0 +0x1622F 0x76B4 +0x16230 0x76B8 +0x16231 0x76B9 +0x16232 0x76BA +0x16233 0x76C2 +0x16234 0x76CD +0x16235 0x76D6 +0x16236 0x76D2 +0x16237 0x76DE +0x16238 0x76E1 +0x16239 0x76E5 +0x1623A 0x76E7 +0x1623B 0x76EA +0x1623C 0x862F +0x1623D 0x76FB +0x1623E 0x7708 +0x1623F 0x7707 +0x16240 0x7704 +0x16241 0x7729 +0x16242 0x7724 +0x16243 0x771E +0x16244 0x7725 +0x16245 0x7726 +0x16246 0x771B +0x16247 0x7737 +0x16248 0x7738 +0x16249 0x7747 +0x1624A 0x775A +0x1624B 0x7768 +0x1624C 0x776B +0x1624D 0x775B +0x1624E 0x7765 +0x1624F 0x777F +0x16250 0x777E +0x16251 0x7779 +0x16252 0x778E +0x16253 0x778B +0x16254 0x7791 +0x16255 0x77A0 +0x16256 0x779E +0x16257 0x77B0 +0x16258 0x77B6 +0x16259 0x77B9 +0x1625A 0x77BF +0x1625B 0x77BC +0x1625C 0x77BD +0x1625D 0x77BB +0x1625E 0x77C7 +0x1625F 0x77CD +0x16260 0x77D7 +0x16261 0x77DA +0x16262 0x77DC +0x16263 0x77E3 +0x16264 0x77EE +0x16265 0x77FC +0x16266 0x780C +0x16267 0x7812 +0x16268 0x7926 +0x16269 0x7820 +0x1626A 0x792A +0x1626B 0x7845 +0x1626C 0x788E +0x1626D 0x7874 +0x1626E 0x7886 +0x1626F 0x787C +0x16270 0x789A +0x16271 0x788C +0x16272 0x78A3 +0x16273 0x78B5 +0x16274 0x78AA +0x16275 0x78AF +0x16276 0x78D1 +0x16277 0x78C6 +0x16278 0x78CB +0x16279 0x78D4 +0x1627A 0x78BE +0x1627B 0x78BC +0x1627C 0x78C5 +0x1627D 0x78CA +0x1627E 0x78EC +0x16321 0x78E7 +0x16322 0x78DA +0x16323 0x78FD +0x16324 0x78F4 +0x16325 0x7907 +0x16326 0x7912 +0x16327 0x7911 +0x16328 0x7919 +0x16329 0x792C +0x1632A 0x792B +0x1632B 0x7940 +0x1632C 0x7960 +0x1632D 0x7957 +0x1632E 0x795F +0x1632F 0x795A +0x16330 0x7955 +0x16331 0x7953 +0x16332 0x797A +0x16333 0x797F +0x16334 0x798A +0x16335 0x799D +0x16336 0x79A7 +0x16337 0x9F4B +0x16338 0x79AA +0x16339 0x79AE +0x1633A 0x79B3 +0x1633B 0x79B9 +0x1633C 0x79BA +0x1633D 0x79C9 +0x1633E 0x79D5 +0x1633F 0x79E7 +0x16340 0x79EC +0x16341 0x79E1 +0x16342 0x79E3 +0x16343 0x7A08 +0x16344 0x7A0D +0x16345 0x7A18 +0x16346 0x7A19 +0x16347 0x7A20 +0x16348 0x7A1F +0x16349 0x7980 +0x1634A 0x7A31 +0x1634B 0x7A3B +0x1634C 0x7A3E +0x1634D 0x7A37 +0x1634E 0x7A43 +0x1634F 0x7A57 +0x16350 0x7A49 +0x16351 0x7A61 +0x16352 0x7A62 +0x16353 0x7A69 +0x16354 0x9F9D +0x16355 0x7A70 +0x16356 0x7A79 +0x16357 0x7A7D +0x16358 0x7A88 +0x16359 0x7A97 +0x1635A 0x7A95 +0x1635B 0x7A98 +0x1635C 0x7A96 +0x1635D 0x7AA9 +0x1635E 0x7AC8 +0x1635F 0x7AB0 +0x16360 0x7AB6 +0x16361 0x7AC5 +0x16362 0x7AC4 +0x16363 0x7ABF +0x16364 0x9083 +0x16365 0x7AC7 +0x16366 0x7ACA +0x16367 0x7ACD +0x16368 0x7ACF +0x16369 0x7AD5 +0x1636A 0x7AD3 +0x1636B 0x7AD9 +0x1636C 0x7ADA +0x1636D 0x7ADD +0x1636E 0x7AE1 +0x1636F 0x7AE2 +0x16370 0x7AE6 +0x16371 0x7AED +0x16372 0x7AF0 +0x16373 0x7B02 +0x16374 0x7B0F +0x16375 0x7B0A +0x16376 0x7B06 +0x16377 0x7B33 +0x16378 0x7B18 +0x16379 0x7B19 +0x1637A 0x7B1E +0x1637B 0x7B35 +0x1637C 0x7B28 +0x1637D 0x7B36 +0x1637E 0x7B50 +0x16421 0x7B7A +0x16422 0x7B04 +0x16423 0x7B4D +0x16424 0x7B0B +0x16425 0x7B4C +0x16426 0x7B45 +0x16427 0x7B75 +0x16428 0x7B65 +0x16429 0x7B74 +0x1642A 0x7B67 +0x1642B 0x7B70 +0x1642C 0x7B71 +0x1642D 0x7B6C +0x1642E 0x7B6E +0x1642F 0x7B9D +0x16430 0x7B98 +0x16431 0x7B9F +0x16432 0x7B8D +0x16433 0x7B9C +0x16434 0x7B9A +0x16435 0x7B8B +0x16436 0x7B92 +0x16437 0x7B8F +0x16438 0x7B5D +0x16439 0x7B99 +0x1643A 0x7BCB +0x1643B 0x7BC1 +0x1643C 0x7BCC +0x1643D 0x7BCF +0x1643E 0x7BB4 +0x1643F 0x7BC6 +0x16440 0x7BDD +0x16441 0x7BE9 +0x16442 0x7C11 +0x16443 0x7C14 +0x16444 0x7BE6 +0x16445 0x7BE5 +0x16446 0x7C60 +0x16447 0x7C00 +0x16448 0x7C07 +0x16449 0x7C13 +0x1644A 0x7BF3 +0x1644B 0x7BF7 +0x1644C 0x7C17 +0x1644D 0x7C0D +0x1644E 0x7BF6 +0x1644F 0x7C23 +0x16450 0x7C27 +0x16451 0x7C2A +0x16452 0x7C1F +0x16453 0x7C37 +0x16454 0x7C2B +0x16455 0x7C3D +0x16456 0x7C4C +0x16457 0x7C43 +0x16458 0x7C54 +0x16459 0x7C4F +0x1645A 0x7C40 +0x1645B 0x7C50 +0x1645C 0x7C58 +0x1645D 0x7C5F +0x1645E 0x7C64 +0x1645F 0x7C56 +0x16460 0x7C65 +0x16461 0x7C6C +0x16462 0x7C75 +0x16463 0x7C83 +0x16464 0x7C90 +0x16465 0x7CA4 +0x16466 0x7CAD +0x16467 0x7CA2 +0x16468 0x7CAB +0x16469 0x7CA1 +0x1646A 0x7CA8 +0x1646B 0x7CB3 +0x1646C 0x7CB2 +0x1646D 0x7CB1 +0x1646E 0x7CAE +0x1646F 0x7CB9 +0x16470 0x7CBD +0x16471 0x7CC0 +0x16472 0x7CC5 +0x16473 0x7CC2 +0x16474 0x7CD8 +0x16475 0x7CD2 +0x16476 0x7CDC +0x16477 0x7CE2 +0x16478 0x9B3B +0x16479 0x7CEF +0x1647A 0x7CF2 +0x1647B 0x7CF4 +0x1647C 0x7CF6 +0x1647D 0x7CFA +0x1647E 0x7D06 +0x16521 0x7D02 +0x16522 0x7D1C +0x16523 0x7D15 +0x16524 0x7D0A +0x16525 0x7D45 +0x16526 0x7D4B +0x16527 0x7D2E +0x16528 0x7D32 +0x16529 0x7D3F +0x1652A 0x7D35 +0x1652B 0x7D46 +0x1652C 0x7D73 +0x1652D 0x7D56 +0x1652E 0x7D4E +0x1652F 0x7D72 +0x16530 0x7D68 +0x16531 0x7D6E +0x16532 0x7D4F +0x16533 0x7D63 +0x16534 0x7D93 +0x16535 0x7D89 +0x16536 0x7D5B +0x16537 0x7D8F +0x16538 0x7D7D +0x16539 0x7D9B +0x1653A 0x7DBA +0x1653B 0x7DAE +0x1653C 0x7DA3 +0x1653D 0x7DB5 +0x1653E 0x7DC7 +0x1653F 0x7DBD +0x16540 0x7DAB +0x16541 0x7E3D +0x16542 0x7DA2 +0x16543 0x7DAF +0x16544 0x7DDC +0x16545 0x7DB8 +0x16546 0x7D9F +0x16547 0x7DB0 +0x16548 0x7DD8 +0x16549 0x7DDD +0x1654A 0x7DE4 +0x1654B 0x7DDE +0x1654C 0x7DFB +0x1654D 0x7DF2 +0x1654E 0x7DE1 +0x1654F 0x7E05 +0x16550 0x7E0A +0x16551 0x7E23 +0x16552 0x7E21 +0x16553 0x7E12 +0x16554 0x7E31 +0x16555 0x7E1F +0x16556 0x7E09 +0x16557 0x7E0B +0x16558 0x7E22 +0x16559 0x7E46 +0x1655A 0x7E66 +0x1655B 0x7E3B +0x1655C 0x7E35 +0x1655D 0x7E39 +0x1655E 0x7E43 +0x1655F 0x7E37 +0x16560 0x7E32 +0x16561 0x7E3A +0x16562 0x7E67 +0x16563 0x7E5D +0x16564 0x7E56 +0x16565 0x7E5E +0x16566 0x7E59 +0x16567 0x7E5A +0x16568 0x7E79 +0x16569 0x7E6A +0x1656A 0x7E69 +0x1656B 0x7E7C +0x1656C 0x7E7B +0x1656D 0x7E83 +0x1656E 0x7DD5 +0x1656F 0x7E7D +0x16570 0x8FAE +0x16571 0x7E7F +0x16572 0x7E88 +0x16573 0x7E89 +0x16574 0x7E8C +0x16575 0x7E92 +0x16576 0x7E90 +0x16577 0x7E93 +0x16578 0x7E94 +0x16579 0x7E96 +0x1657A 0x7E8E +0x1657B 0x7E9B +0x1657C 0x7E9C +0x1657D 0x7F38 +0x1657E 0x7F3A +0x16621 0x7F45 +0x16622 0x7F4C +0x16623 0x7F4D +0x16624 0x7F4E +0x16625 0x7F50 +0x16626 0x7F51 +0x16627 0x7F55 +0x16628 0x7F54 +0x16629 0x7F58 +0x1662A 0x7F5F +0x1662B 0x7F60 +0x1662C 0x7F68 +0x1662D 0x7F69 +0x1662E 0x7F67 +0x1662F 0x7F78 +0x16630 0x7F82 +0x16631 0x7F86 +0x16632 0x7F83 +0x16633 0x7F88 +0x16634 0x7F87 +0x16635 0x7F8C +0x16636 0x7F94 +0x16637 0x7F9E +0x16638 0x7F9D +0x16639 0x7F9A +0x1663A 0x7FA3 +0x1663B 0x7FAF +0x1663C 0x7FB2 +0x1663D 0x7FB9 +0x1663E 0x7FAE +0x1663F 0x7FB6 +0x16640 0x7FB8 +0x16641 0x8B71 +0x16642 0x7FC5 +0x16643 0x7FC6 +0x16644 0x7FCA +0x16645 0x7FD5 +0x16646 0x7FD4 +0x16647 0x7FE1 +0x16648 0x7FE6 +0x16649 0x7FE9 +0x1664A 0x7FF3 +0x1664B 0x7FF9 +0x1664C 0x98DC +0x1664D 0x8006 +0x1664E 0x8004 +0x1664F 0x800B +0x16650 0x8012 +0x16651 0x8018 +0x16652 0x8019 +0x16653 0x801C +0x16654 0x8021 +0x16655 0x8028 +0x16656 0x803F +0x16657 0x803B +0x16658 0x804A +0x16659 0x8046 +0x1665A 0x8052 +0x1665B 0x8058 +0x1665C 0x805A +0x1665D 0x805F +0x1665E 0x8062 +0x1665F 0x8068 +0x16660 0x8073 +0x16661 0x8072 +0x16662 0x8070 +0x16663 0x8076 +0x16664 0x8079 +0x16665 0x807D +0x16666 0x807F +0x16667 0x8084 +0x16668 0x8086 +0x16669 0x8085 +0x1666A 0x809B +0x1666B 0x8093 +0x1666C 0x809A +0x1666D 0x80AD +0x1666E 0x5190 +0x1666F 0x80AC +0x16670 0x80DB +0x16671 0x80E5 +0x16672 0x80D9 +0x16673 0x80DD +0x16674 0x80C4 +0x16675 0x80DA +0x16676 0x80D6 +0x16677 0x8109 +0x16678 0x80EF +0x16679 0x80F1 +0x1667A 0x811B +0x1667B 0x8129 +0x1667C 0x8123 +0x1667D 0x812F +0x1667E 0x814B +0x16721 0x968B +0x16722 0x8146 +0x16723 0x813E +0x16724 0x8153 +0x16725 0x8151 +0x16726 0x80FC +0x16727 0x8171 +0x16728 0x816E +0x16729 0x8165 +0x1672A 0x8166 +0x1672B 0x8174 +0x1672C 0x8183 +0x1672D 0x8188 +0x1672E 0x818A +0x1672F 0x8180 +0x16730 0x8182 +0x16731 0x81A0 +0x16732 0x8195 +0x16733 0x81A4 +0x16734 0x81A3 +0x16735 0x815F +0x16736 0x8193 +0x16737 0x81A9 +0x16738 0x81B0 +0x16739 0x81B5 +0x1673A 0x81BE +0x1673B 0x81B8 +0x1673C 0x81BD +0x1673D 0x81C0 +0x1673E 0x81C2 +0x1673F 0x81BA +0x16740 0x81C9 +0x16741 0x81CD +0x16742 0x81D1 +0x16743 0x81D9 +0x16744 0x81D8 +0x16745 0x81C8 +0x16746 0x81DA +0x16747 0x81DF +0x16748 0x81E0 +0x16749 0x81E7 +0x1674A 0x81FA +0x1674B 0x81FB +0x1674C 0x81FE +0x1674D 0x8201 +0x1674E 0x8202 +0x1674F 0x8205 +0x16750 0x8207 +0x16751 0x820A +0x16752 0x820D +0x16753 0x8210 +0x16754 0x8216 +0x16755 0x8229 +0x16756 0x822B +0x16757 0x8238 +0x16758 0x8233 +0x16759 0x8240 +0x1675A 0x8259 +0x1675B 0x8258 +0x1675C 0x825D +0x1675D 0x825A +0x1675E 0x825F +0x1675F 0x8264 +0x16760 0x8262 +0x16761 0x8268 +0x16762 0x826A +0x16763 0x826B +0x16764 0x822E +0x16765 0x8271 +0x16766 0x8277 +0x16767 0x8278 +0x16768 0x827E +0x16769 0x828D +0x1676A 0x8292 +0x1676B 0x82AB +0x1676C 0x829F +0x1676D 0x82BB +0x1676E 0x82AC +0x1676F 0x82E1 +0x16770 0x82E3 +0x16771 0x82DF +0x16772 0x82D2 +0x16773 0x82F4 +0x16774 0x82F3 +0x16775 0x82FA +0x16776 0x8393 +0x16777 0x8303 +0x16778 0x82FB +0x16779 0x82F9 +0x1677A 0x82DE +0x1677B 0x8306 +0x1677C 0x82DC +0x1677D 0x8309 +0x1677E 0x82D9 +0x16821 0x8335 +0x16822 0x8334 +0x16823 0x8316 +0x16824 0x8332 +0x16825 0x8331 +0x16826 0x8340 +0x16827 0x8339 +0x16828 0x8350 +0x16829 0x8345 +0x1682A 0x832F +0x1682B 0x832B +0x1682C 0x8317 +0x1682D 0x8318 +0x1682E 0x8385 +0x1682F 0x839A +0x16830 0x83AA +0x16831 0x839F +0x16832 0x83A2 +0x16833 0x8396 +0x16834 0x8323 +0x16835 0x838E +0x16836 0x8387 +0x16837 0x838A +0x16838 0x837C +0x16839 0x83B5 +0x1683A 0x8373 +0x1683B 0x8375 +0x1683C 0x83A0 +0x1683D 0x8389 +0x1683E 0x83A8 +0x1683F 0x83F4 +0x16840 0x8413 +0x16841 0x83EB +0x16842 0x83CE +0x16843 0x83FD +0x16844 0x8403 +0x16845 0x83D8 +0x16846 0x840B +0x16847 0x83C1 +0x16848 0x83F7 +0x16849 0x8407 +0x1684A 0x83E0 +0x1684B 0x83F2 +0x1684C 0x840D +0x1684D 0x8422 +0x1684E 0x8420 +0x1684F 0x83BD +0x16850 0x8438 +0x16851 0x8506 +0x16852 0x83FB +0x16853 0x846D +0x16854 0x842A +0x16855 0x843C +0x16856 0x855A +0x16857 0x8484 +0x16858 0x8477 +0x16859 0x846B +0x1685A 0x84AD +0x1685B 0x846E +0x1685C 0x8482 +0x1685D 0x8469 +0x1685E 0x8446 +0x1685F 0x842C +0x16860 0x846F +0x16861 0x8479 +0x16862 0x8435 +0x16863 0x84CA +0x16864 0x8462 +0x16865 0x84B9 +0x16866 0x84BF +0x16867 0x849F +0x16868 0x84D9 +0x16869 0x84CD +0x1686A 0x84BB +0x1686B 0x84DA +0x1686C 0x84D0 +0x1686D 0x84C1 +0x1686E 0x84C6 +0x1686F 0x84D6 +0x16870 0x84A1 +0x16871 0x8521 +0x16872 0x84FF +0x16873 0x84F4 +0x16874 0x8517 +0x16875 0x8518 +0x16876 0x852C +0x16877 0x851F +0x16878 0x8515 +0x16879 0x8514 +0x1687A 0x84FC +0x1687B 0x8540 +0x1687C 0x8563 +0x1687D 0x8558 +0x1687E 0x8548 +0x16921 0x8541 +0x16922 0x8602 +0x16923 0x854B +0x16924 0x8555 +0x16925 0x8580 +0x16926 0x85A4 +0x16927 0x8588 +0x16928 0x8591 +0x16929 0x858A +0x1692A 0x85A8 +0x1692B 0x856D +0x1692C 0x8594 +0x1692D 0x859B +0x1692E 0x85EA +0x1692F 0x8587 +0x16930 0x859C +0x16931 0x8577 +0x16932 0x857E +0x16933 0x8590 +0x16934 0x85C9 +0x16935 0x85BA +0x16936 0x85CF +0x16937 0x85B9 +0x16938 0x85D0 +0x16939 0x85D5 +0x1693A 0x85DD +0x1693B 0x85E5 +0x1693C 0x85DC +0x1693D 0x85F9 +0x1693E 0x860A +0x1693F 0x8613 +0x16940 0x860B +0x16941 0x85FE +0x16942 0x85FA +0x16943 0x8606 +0x16944 0x8622 +0x16945 0x861A +0x16946 0x8630 +0x16947 0x863F +0x16948 0x864D +0x16949 0x4E55 +0x1694A 0x8654 +0x1694B 0x865F +0x1694C 0x8667 +0x1694D 0x8671 +0x1694E 0x8693 +0x1694F 0x86A3 +0x16950 0x86A9 +0x16951 0x86AA +0x16952 0x868B +0x16953 0x868C +0x16954 0x86B6 +0x16955 0x86AF +0x16956 0x86C4 +0x16957 0x86C6 +0x16958 0x86B0 +0x16959 0x86C9 +0x1695A 0x8823 +0x1695B 0x86AB +0x1695C 0x86D4 +0x1695D 0x86DE +0x1695E 0x86E9 +0x1695F 0x86EC +0x16960 0x86DF +0x16961 0x86DB +0x16962 0x86EF +0x16963 0x8712 +0x16964 0x8706 +0x16965 0x8708 +0x16966 0x8700 +0x16967 0x8703 +0x16968 0x86FB +0x16969 0x8711 +0x1696A 0x8709 +0x1696B 0x870D +0x1696C 0x86F9 +0x1696D 0x870A +0x1696E 0x8734 +0x1696F 0x873F +0x16970 0x8737 +0x16971 0x873B +0x16972 0x8725 +0x16973 0x8729 +0x16974 0x871A +0x16975 0x8760 +0x16976 0x875F +0x16977 0x8778 +0x16978 0x874C +0x16979 0x874E +0x1697A 0x8774 +0x1697B 0x8757 +0x1697C 0x8768 +0x1697D 0x876E +0x1697E 0x8759 +0x16A21 0x8753 +0x16A22 0x8763 +0x16A23 0x876A +0x16A24 0x8805 +0x16A25 0x87A2 +0x16A26 0x879F +0x16A27 0x8782 +0x16A28 0x87AF +0x16A29 0x87CB +0x16A2A 0x87BD +0x16A2B 0x87C0 +0x16A2C 0x87D0 +0x16A2D 0x96D6 +0x16A2E 0x87AB +0x16A2F 0x87C4 +0x16A30 0x87B3 +0x16A31 0x87C7 +0x16A32 0x87C6 +0x16A33 0x87BB +0x16A34 0x87EF +0x16A35 0x87F2 +0x16A36 0x87E0 +0x16A37 0x880F +0x16A38 0x880D +0x16A39 0x87FE +0x16A3A 0x87F6 +0x16A3B 0x87F7 +0x16A3C 0x880E +0x16A3D 0x87D2 +0x16A3E 0x8811 +0x16A3F 0x8816 +0x16A40 0x8815 +0x16A41 0x8822 +0x16A42 0x8821 +0x16A43 0x8831 +0x16A44 0x8836 +0x16A45 0x8839 +0x16A46 0x8827 +0x16A47 0x883B +0x16A48 0x8844 +0x16A49 0x8842 +0x16A4A 0x8852 +0x16A4B 0x8859 +0x16A4C 0x885E +0x16A4D 0x8862 +0x16A4E 0x886B +0x16A4F 0x8881 +0x16A50 0x887E +0x16A51 0x889E +0x16A52 0x8875 +0x16A53 0x887D +0x16A54 0x88B5 +0x16A55 0x8872 +0x16A56 0x8882 +0x16A57 0x8897 +0x16A58 0x8892 +0x16A59 0x88AE +0x16A5A 0x8899 +0x16A5B 0x88A2 +0x16A5C 0x888D +0x16A5D 0x88A4 +0x16A5E 0x88B0 +0x16A5F 0x88BF +0x16A60 0x88B1 +0x16A61 0x88C3 +0x16A62 0x88C4 +0x16A63 0x88D4 +0x16A64 0x88D8 +0x16A65 0x88D9 +0x16A66 0x88DD +0x16A67 0x88F9 +0x16A68 0x8902 +0x16A69 0x88FC +0x16A6A 0x88F4 +0x16A6B 0x88E8 +0x16A6C 0x88F2 +0x16A6D 0x8904 +0x16A6E 0x890C +0x16A6F 0x890A +0x16A70 0x8913 +0x16A71 0x8943 +0x16A72 0x891E +0x16A73 0x8925 +0x16A74 0x892A +0x16A75 0x892B +0x16A76 0x8941 +0x16A77 0x8944 +0x16A78 0x893B +0x16A79 0x8936 +0x16A7A 0x8938 +0x16A7B 0x894C +0x16A7C 0x891D +0x16A7D 0x8960 +0x16A7E 0x895E +0x16B21 0x8966 +0x16B22 0x8964 +0x16B23 0x896D +0x16B24 0x896A +0x16B25 0x896F +0x16B26 0x8974 +0x16B27 0x8977 +0x16B28 0x897E +0x16B29 0x8983 +0x16B2A 0x8988 +0x16B2B 0x898A +0x16B2C 0x8993 +0x16B2D 0x8998 +0x16B2E 0x89A1 +0x16B2F 0x89A9 +0x16B30 0x89A6 +0x16B31 0x89AC +0x16B32 0x89AF +0x16B33 0x89B2 +0x16B34 0x89BA +0x16B35 0x89BD +0x16B36 0x89BF +0x16B37 0x89C0 +0x16B38 0x89DA +0x16B39 0x89DC +0x16B3A 0x89DD +0x16B3B 0x89E7 +0x16B3C 0x89F4 +0x16B3D 0x89F8 +0x16B3E 0x8A03 +0x16B3F 0x8A16 +0x16B40 0x8A10 +0x16B41 0x8A0C +0x16B42 0x8A1B +0x16B43 0x8A1D +0x16B44 0x8A25 +0x16B45 0x8A36 +0x16B46 0x8A41 +0x16B47 0x8A5B +0x16B48 0x8A52 +0x16B49 0x8A46 +0x16B4A 0x8A48 +0x16B4B 0x8A7C +0x16B4C 0x8A6D +0x16B4D 0x8A6C +0x16B4E 0x8A62 +0x16B4F 0x8A85 +0x16B50 0x8A82 +0x16B51 0x8A84 +0x16B52 0x8AA8 +0x16B53 0x8AA1 +0x16B54 0x8A91 +0x16B55 0x8AA5 +0x16B56 0x8AA6 +0x16B57 0x8A9A +0x16B58 0x8AA3 +0x16B59 0x8AC4 +0x16B5A 0x8ACD +0x16B5B 0x8AC2 +0x16B5C 0x8ADA +0x16B5D 0x8AEB +0x16B5E 0x8AF3 +0x16B5F 0x8AE7 +0x16B60 0x8AE4 +0x16B61 0x8AF1 +0x16B62 0x8B14 +0x16B63 0x8AE0 +0x16B64 0x8AE2 +0x16B65 0x8AF7 +0x16B66 0x8ADE +0x16B67 0x8ADB +0x16B68 0x8B0C +0x16B69 0x8B07 +0x16B6A 0x8B1A +0x16B6B 0x8AE1 +0x16B6C 0x8B16 +0x16B6D 0x8B10 +0x16B6E 0x8B17 +0x16B6F 0x8B20 +0x16B70 0x8B33 +0x16B71 0x97AB +0x16B72 0x8B26 +0x16B73 0x8B2B +0x16B74 0x8B3E +0x16B75 0x8B28 +0x16B76 0x8B41 +0x16B77 0x8B4C +0x16B78 0x8B4F +0x16B79 0x8B4E +0x16B7A 0x8B49 +0x16B7B 0x8B56 +0x16B7C 0x8B5B +0x16B7D 0x8B5A +0x16B7E 0x8B6B +0x16C21 0x8B5F +0x16C22 0x8B6C +0x16C23 0x8B6F +0x16C24 0x8B74 +0x16C25 0x8B7D +0x16C26 0x8B80 +0x16C27 0x8B8C +0x16C28 0x8B8E +0x16C29 0x8B92 +0x16C2A 0x8B93 +0x16C2B 0x8B96 +0x16C2C 0x8B99 +0x16C2D 0x8B9A +0x16C2E 0x8C3A +0x16C2F 0x8C41 +0x16C30 0x8C3F +0x16C31 0x8C48 +0x16C32 0x8C4C +0x16C33 0x8C4E +0x16C34 0x8C50 +0x16C35 0x8C55 +0x16C36 0x8C62 +0x16C37 0x8C6C +0x16C38 0x8C78 +0x16C39 0x8C7A +0x16C3A 0x8C82 +0x16C3B 0x8C89 +0x16C3C 0x8C85 +0x16C3D 0x8C8A +0x16C3E 0x8C8D +0x16C3F 0x8C8E +0x16C40 0x8C94 +0x16C41 0x8C7C +0x16C42 0x8C98 +0x16C43 0x621D +0x16C44 0x8CAD +0x16C45 0x8CAA +0x16C46 0x8CBD +0x16C47 0x8CB2 +0x16C48 0x8CB3 +0x16C49 0x8CAE +0x16C4A 0x8CB6 +0x16C4B 0x8CC8 +0x16C4C 0x8CC1 +0x16C4D 0x8CE4 +0x16C4E 0x8CE3 +0x16C4F 0x8CDA +0x16C50 0x8CFD +0x16C51 0x8CFA +0x16C52 0x8CFB +0x16C53 0x8D04 +0x16C54 0x8D05 +0x16C55 0x8D0A +0x16C56 0x8D07 +0x16C57 0x8D0F +0x16C58 0x8D0D +0x16C59 0x8D10 +0x16C5A 0x9F4E +0x16C5B 0x8D13 +0x16C5C 0x8CCD +0x16C5D 0x8D14 +0x16C5E 0x8D16 +0x16C5F 0x8D67 +0x16C60 0x8D6D +0x16C61 0x8D71 +0x16C62 0x8D73 +0x16C63 0x8D81 +0x16C64 0x8D99 +0x16C65 0x8DC2 +0x16C66 0x8DBE +0x16C67 0x8DBA +0x16C68 0x8DCF +0x16C69 0x8DDA +0x16C6A 0x8DD6 +0x16C6B 0x8DCC +0x16C6C 0x8DDB +0x16C6D 0x8DCB +0x16C6E 0x8DEA +0x16C6F 0x8DEB +0x16C70 0x8DDF +0x16C71 0x8DE3 +0x16C72 0x8DFC +0x16C73 0x8E08 +0x16C74 0x8E09 +0x16C75 0x8DFF +0x16C76 0x8E1D +0x16C77 0x8E1E +0x16C78 0x8E10 +0x16C79 0x8E1F +0x16C7A 0x8E42 +0x16C7B 0x8E35 +0x16C7C 0x8E30 +0x16C7D 0x8E34 +0x16C7E 0x8E4A +0x16D21 0x8E47 +0x16D22 0x8E49 +0x16D23 0x8E4C +0x16D24 0x8E50 +0x16D25 0x8E48 +0x16D26 0x8E59 +0x16D27 0x8E64 +0x16D28 0x8E60 +0x16D29 0x8E2A +0x16D2A 0x8E63 +0x16D2B 0x8E55 +0x16D2C 0x8E76 +0x16D2D 0x8E72 +0x16D2E 0x8E7C +0x16D2F 0x8E81 +0x16D30 0x8E87 +0x16D31 0x8E85 +0x16D32 0x8E84 +0x16D33 0x8E8B +0x16D34 0x8E8A +0x16D35 0x8E93 +0x16D36 0x8E91 +0x16D37 0x8E94 +0x16D38 0x8E99 +0x16D39 0x8EAA +0x16D3A 0x8EA1 +0x16D3B 0x8EAC +0x16D3C 0x8EB0 +0x16D3D 0x8EC6 +0x16D3E 0x8EB1 +0x16D3F 0x8EBE +0x16D40 0x8EC5 +0x16D41 0x8EC8 +0x16D42 0x8ECB +0x16D43 0x8EDB +0x16D44 0x8EE3 +0x16D45 0x8EFC +0x16D46 0x8EFB +0x16D47 0x8EEB +0x16D48 0x8EFE +0x16D49 0x8F0A +0x16D4A 0x8F05 +0x16D4B 0x8F15 +0x16D4C 0x8F12 +0x16D4D 0x8F19 +0x16D4E 0x8F13 +0x16D4F 0x8F1C +0x16D50 0x8F1F +0x16D51 0x8F1B +0x16D52 0x8F0C +0x16D53 0x8F26 +0x16D54 0x8F33 +0x16D55 0x8F3B +0x16D56 0x8F39 +0x16D57 0x8F45 +0x16D58 0x8F42 +0x16D59 0x8F3E +0x16D5A 0x8F4C +0x16D5B 0x8F49 +0x16D5C 0x8F46 +0x16D5D 0x8F4E +0x16D5E 0x8F57 +0x16D5F 0x8F5C +0x16D60 0x8F62 +0x16D61 0x8F63 +0x16D62 0x8F64 +0x16D63 0x8F9C +0x16D64 0x8F9F +0x16D65 0x8FA3 +0x16D66 0x8FAD +0x16D67 0x8FAF +0x16D68 0x8FB7 +0x16D69 0x8FDA +0x16D6A 0x8FE5 +0x16D6B 0x8FE2 +0x16D6C 0x8FEA +0x16D6D 0x8FEF +0x16D6E 0x9087 +0x16D6F 0x8FF4 +0x16D70 0x9005 +0x16D71 0x8FF9 +0x16D72 0x8FFA +0x16D73 0x9011 +0x16D74 0x9015 +0x16D75 0x9021 +0x16D76 0x900D +0x16D77 0x901E +0x16D78 0x9016 +0x16D79 0x900B +0x16D7A 0x9027 +0x16D7B 0x9036 +0x16D7C 0x9035 +0x16D7D 0x9039 +0x16D7E 0x8FF8 +0x16E21 0x904F +0x16E22 0x9050 +0x16E23 0x9051 +0x16E24 0x9052 +0x16E25 0x900E +0x16E26 0x9049 +0x16E27 0x903E +0x16E28 0x9056 +0x16E29 0x9058 +0x16E2A 0x905E +0x16E2B 0x9068 +0x16E2C 0x906F +0x16E2D 0x9076 +0x16E2E 0x96A8 +0x16E2F 0x9072 +0x16E30 0x9082 +0x16E31 0x907D +0x16E32 0x9081 +0x16E33 0x9080 +0x16E34 0x908A +0x16E35 0x9089 +0x16E36 0x908F +0x16E37 0x90A8 +0x16E38 0x90AF +0x16E39 0x90B1 +0x16E3A 0x90B5 +0x16E3B 0x90E2 +0x16E3C 0x90E4 +0x16E3D 0x6248 +0x16E3E 0x90DB +0x16E3F 0x9102 +0x16E40 0x9112 +0x16E41 0x9119 +0x16E42 0x9132 +0x16E43 0x9130 +0x16E44 0x914A +0x16E45 0x9156 +0x16E46 0x9158 +0x16E47 0x9163 +0x16E48 0x9165 +0x16E49 0x9169 +0x16E4A 0x9173 +0x16E4B 0x9172 +0x16E4C 0x918B +0x16E4D 0x9189 +0x16E4E 0x9182 +0x16E4F 0x91A2 +0x16E50 0x91AB +0x16E51 0x91AF +0x16E52 0x91AA +0x16E53 0x91B5 +0x16E54 0x91B4 +0x16E55 0x91BA +0x16E56 0x91C0 +0x16E57 0x91C1 +0x16E58 0x91C9 +0x16E59 0x91CB +0x16E5A 0x91D0 +0x16E5B 0x91D6 +0x16E5C 0x91DF +0x16E5D 0x91E1 +0x16E5E 0x91DB +0x16E5F 0x91FC +0x16E60 0x91F5 +0x16E61 0x91F6 +0x16E62 0x921E +0x16E63 0x91FF +0x16E64 0x9214 +0x16E65 0x922C +0x16E66 0x9215 +0x16E67 0x9211 +0x16E68 0x925E +0x16E69 0x9257 +0x16E6A 0x9245 +0x16E6B 0x9249 +0x16E6C 0x9264 +0x16E6D 0x9248 +0x16E6E 0x9295 +0x16E6F 0x923F +0x16E70 0x924B +0x16E71 0x9250 +0x16E72 0x929C +0x16E73 0x9296 +0x16E74 0x9293 +0x16E75 0x929B +0x16E76 0x925A +0x16E77 0x92CF +0x16E78 0x92B9 +0x16E79 0x92B7 +0x16E7A 0x92E9 +0x16E7B 0x930F +0x16E7C 0x92FA +0x16E7D 0x9344 +0x16E7E 0x932E +0x16F21 0x9319 +0x16F22 0x9322 +0x16F23 0x931A +0x16F24 0x9323 +0x16F25 0x933A +0x16F26 0x9335 +0x16F27 0x933B +0x16F28 0x935C +0x16F29 0x9360 +0x16F2A 0x937C +0x16F2B 0x936E +0x16F2C 0x9356 +0x16F2D 0x93B0 +0x16F2E 0x93AC +0x16F2F 0x93AD +0x16F30 0x9394 +0x16F31 0x93B9 +0x16F32 0x93D6 +0x16F33 0x93D7 +0x16F34 0x93E8 +0x16F35 0x93E5 +0x16F36 0x93D8 +0x16F37 0x93C3 +0x16F38 0x93DD +0x16F39 0x93D0 +0x16F3A 0x93C8 +0x16F3B 0x93E4 +0x16F3C 0x941A +0x16F3D 0x9414 +0x16F3E 0x9413 +0x16F3F 0x9403 +0x16F40 0x9407 +0x16F41 0x9410 +0x16F42 0x9436 +0x16F43 0x942B +0x16F44 0x9435 +0x16F45 0x9421 +0x16F46 0x943A +0x16F47 0x9441 +0x16F48 0x9452 +0x16F49 0x9444 +0x16F4A 0x945B +0x16F4B 0x9460 +0x16F4C 0x9462 +0x16F4D 0x945E +0x16F4E 0x946A +0x16F4F 0x9229 +0x16F50 0x9470 +0x16F51 0x9475 +0x16F52 0x9477 +0x16F53 0x947D +0x16F54 0x945A +0x16F55 0x947C +0x16F56 0x947E +0x16F57 0x9481 +0x16F58 0x947F +0x16F59 0x9582 +0x16F5A 0x9587 +0x16F5B 0x958A +0x16F5C 0x9594 +0x16F5D 0x9596 +0x16F5E 0x9598 +0x16F5F 0x9599 +0x16F60 0x95A0 +0x16F61 0x95A8 +0x16F62 0x95A7 +0x16F63 0x95AD +0x16F64 0x95BC +0x16F65 0x95BB +0x16F66 0x95B9 +0x16F67 0x95BE +0x16F68 0x95CA +0x16F69 0x6FF6 +0x16F6A 0x95C3 +0x16F6B 0x95CD +0x16F6C 0x95CC +0x16F6D 0x95D5 +0x16F6E 0x95D4 +0x16F6F 0x95D6 +0x16F70 0x95DC +0x16F71 0x95E1 +0x16F72 0x95E5 +0x16F73 0x95E2 +0x16F74 0x9621 +0x16F75 0x9628 +0x16F76 0x962E +0x16F77 0x962F +0x16F78 0x9642 +0x16F79 0x964C +0x16F7A 0x964F +0x16F7B 0x964B +0x16F7C 0x9677 +0x16F7D 0x965C +0x16F7E 0x965E +0x17021 0x965D +0x17022 0x965F +0x17023 0x9666 +0x17024 0x9672 +0x17025 0x966C +0x17026 0x968D +0x17027 0x9698 +0x17028 0x9695 +0x17029 0x9697 +0x1702A 0x96AA +0x1702B 0x96A7 +0x1702C 0x96B1 +0x1702D 0x96B2 +0x1702E 0x96B0 +0x1702F 0x96B4 +0x17030 0x96B6 +0x17031 0x96B8 +0x17032 0x96B9 +0x17033 0x96CE +0x17034 0x96CB +0x17035 0x96C9 +0x17036 0x96CD +0x17037 0x894D +0x17038 0x96DC +0x17039 0x970D +0x1703A 0x96D5 +0x1703B 0x96F9 +0x1703C 0x9704 +0x1703D 0x9706 +0x1703E 0x9708 +0x1703F 0x9713 +0x17040 0x970E +0x17041 0x9711 +0x17042 0x970F +0x17043 0x9716 +0x17044 0x9719 +0x17045 0x9724 +0x17046 0x972A +0x17047 0x9730 +0x17048 0x9739 +0x17049 0x973D +0x1704A 0x973E +0x1704B 0x9744 +0x1704C 0x9746 +0x1704D 0x9748 +0x1704E 0x9742 +0x1704F 0x9749 +0x17050 0x975C +0x17051 0x9760 +0x17052 0x9764 +0x17053 0x9766 +0x17054 0x9768 +0x17055 0x52D2 +0x17056 0x976B +0x17057 0x9771 +0x17058 0x9779 +0x17059 0x9785 +0x1705A 0x977C +0x1705B 0x9781 +0x1705C 0x977A +0x1705D 0x9786 +0x1705E 0x978B +0x1705F 0x978F +0x17060 0x9790 +0x17061 0x979C +0x17062 0x97A8 +0x17063 0x97A6 +0x17064 0x97A3 +0x17065 0x97B3 +0x17066 0x97B4 +0x17067 0x97C3 +0x17068 0x97C6 +0x17069 0x97C8 +0x1706A 0x97CB +0x1706B 0x97DC +0x1706C 0x97ED +0x1706D 0x9F4F +0x1706E 0x97F2 +0x1706F 0x7ADF +0x17070 0x97F6 +0x17071 0x97F5 +0x17072 0x980F +0x17073 0x980C +0x17074 0x9838 +0x17075 0x9824 +0x17076 0x9821 +0x17077 0x9837 +0x17078 0x983D +0x17079 0x9846 +0x1707A 0x984F +0x1707B 0x984B +0x1707C 0x986B +0x1707D 0x986F +0x1707E 0x9870 +0x17121 0x9871 +0x17122 0x9874 +0x17123 0x9873 +0x17124 0x98AA +0x17125 0x98AF +0x17126 0x98B1 +0x17127 0x98B6 +0x17128 0x98C4 +0x17129 0x98C3 +0x1712A 0x98C6 +0x1712B 0x98E9 +0x1712C 0x98EB +0x1712D 0x9903 +0x1712E 0x9909 +0x1712F 0x9912 +0x17130 0x9914 +0x17131 0x9918 +0x17132 0x9921 +0x17133 0x991D +0x17134 0x991E +0x17135 0x9924 +0x17136 0x9920 +0x17137 0x992C +0x17138 0x992E +0x17139 0x993D +0x1713A 0x993E +0x1713B 0x9942 +0x1713C 0x9949 +0x1713D 0x9945 +0x1713E 0x9950 +0x1713F 0x994B +0x17140 0x9951 +0x17141 0x9952 +0x17142 0x994C +0x17143 0x9955 +0x17144 0x9997 +0x17145 0x9998 +0x17146 0x99A5 +0x17147 0x99AD +0x17148 0x99AE +0x17149 0x99BC +0x1714A 0x99DF +0x1714B 0x99DB +0x1714C 0x99DD +0x1714D 0x99D8 +0x1714E 0x99D1 +0x1714F 0x99ED +0x17150 0x99EE +0x17151 0x99F1 +0x17152 0x99F2 +0x17153 0x99FB +0x17154 0x99F8 +0x17155 0x9A01 +0x17156 0x9A0F +0x17157 0x9A05 +0x17158 0x99E2 +0x17159 0x9A19 +0x1715A 0x9A2B +0x1715B 0x9A37 +0x1715C 0x9A45 +0x1715D 0x9A42 +0x1715E 0x9A40 +0x1715F 0x9A43 +0x17160 0x9A3E +0x17161 0x9A55 +0x17162 0x9A4D +0x17163 0x9A5B +0x17164 0x9A57 +0x17165 0x9A5F +0x17166 0x9A62 +0x17167 0x9A65 +0x17168 0x9A64 +0x17169 0x9A69 +0x1716A 0x9A6B +0x1716B 0x9A6A +0x1716C 0x9AAD +0x1716D 0x9AB0 +0x1716E 0x9ABC +0x1716F 0x9AC0 +0x17170 0x9ACF +0x17171 0x9AD1 +0x17172 0x9AD3 +0x17173 0x9AD4 +0x17174 0x9ADE +0x17175 0x9ADF +0x17176 0x9AE2 +0x17177 0x9AE3 +0x17178 0x9AE6 +0x17179 0x9AEF +0x1717A 0x9AEB +0x1717B 0x9AEE +0x1717C 0x9AF4 +0x1717D 0x9AF1 +0x1717E 0x9AF7 +0x17221 0x9AFB +0x17222 0x9B06 +0x17223 0x9B18 +0x17224 0x9B1A +0x17225 0x9B1F +0x17226 0x9B22 +0x17227 0x9B23 +0x17228 0x9B25 +0x17229 0x9B27 +0x1722A 0x9B28 +0x1722B 0x9B29 +0x1722C 0x9B2A +0x1722D 0x9B2E +0x1722E 0x9B2F +0x1722F 0x9B32 +0x17230 0x9B44 +0x17231 0x9B43 +0x17232 0x9B4F +0x17233 0x9B4D +0x17234 0x9B4E +0x17235 0x9B51 +0x17236 0x9B58 +0x17237 0x9B74 +0x17238 0x9B93 +0x17239 0x9B83 +0x1723A 0x9B91 +0x1723B 0x9B96 +0x1723C 0x9B97 +0x1723D 0x9B9F +0x1723E 0x9BA0 +0x1723F 0x9BA8 +0x17240 0x9BB4 +0x17241 0x9BC0 +0x17242 0x9BCA +0x17243 0x9BB9 +0x17244 0x9BC6 +0x17245 0x9BCF +0x17246 0x9BD1 +0x17247 0x9BD2 +0x17248 0x9BE3 +0x17249 0x9BE2 +0x1724A 0x9BE4 +0x1724B 0x9BD4 +0x1724C 0x9BE1 +0x1724D 0x9C3A +0x1724E 0x9BF2 +0x1724F 0x9BF1 +0x17250 0x9BF0 +0x17251 0x9C15 +0x17252 0x9C14 +0x17253 0x9C09 +0x17254 0x9C13 +0x17255 0x9C0C +0x17256 0x9C06 +0x17257 0x9C08 +0x17258 0x9C12 +0x17259 0x9C0A +0x1725A 0x9C04 +0x1725B 0x9C2E +0x1725C 0x9C1B +0x1725D 0x9C25 +0x1725E 0x9C24 +0x1725F 0x9C21 +0x17260 0x9C30 +0x17261 0x9C47 +0x17262 0x9C32 +0x17263 0x9C46 +0x17264 0x9C3E +0x17265 0x9C5A +0x17266 0x9C60 +0x17267 0x9C67 +0x17268 0x9C76 +0x17269 0x9C78 +0x1726A 0x9CE7 +0x1726B 0x9CEC +0x1726C 0x9CF0 +0x1726D 0x9D09 +0x1726E 0x9D08 +0x1726F 0x9CEB +0x17270 0x9D03 +0x17271 0x9D06 +0x17272 0x9D2A +0x17273 0x9D26 +0x17274 0x9DAF +0x17275 0x9D23 +0x17276 0x9D1F +0x17277 0x9D44 +0x17278 0x9D15 +0x17279 0x9D12 +0x1727A 0x9D41 +0x1727B 0x9D3F +0x1727C 0x9D3E +0x1727D 0x9D46 +0x1727E 0x9D48 +0x17321 0x9D5D +0x17322 0x9D5E +0x17323 0x9D64 +0x17324 0x9D51 +0x17325 0x9D50 +0x17326 0x9D59 +0x17327 0x9D72 +0x17328 0x9D89 +0x17329 0x9D87 +0x1732A 0x9DAB +0x1732B 0x9D6F +0x1732C 0x9D7A +0x1732D 0x9D9A +0x1732E 0x9DA4 +0x1732F 0x9DA9 +0x17330 0x9DB2 +0x17331 0x9DC4 +0x17332 0x9DC1 +0x17333 0x9DBB +0x17334 0x9DB8 +0x17335 0x9DBA +0x17336 0x9DC6 +0x17337 0x9DCF +0x17338 0x9DC2 +0x17339 0x9DD9 +0x1733A 0x9DD3 +0x1733B 0x9DF8 +0x1733C 0x9DE6 +0x1733D 0x9DED +0x1733E 0x9DEF +0x1733F 0x9DFD +0x17340 0x9E1A +0x17341 0x9E1B +0x17342 0x9E1E +0x17343 0x9E75 +0x17344 0x9E79 +0x17345 0x9E7D +0x17346 0x9E81 +0x17347 0x9E88 +0x17348 0x9E8B +0x17349 0x9E8C +0x1734A 0x9E92 +0x1734B 0x9E95 +0x1734C 0x9E91 +0x1734D 0x9E9D +0x1734E 0x9EA5 +0x1734F 0x9EA9 +0x17350 0x9EB8 +0x17351 0x9EAA +0x17352 0x9EAD +0x17353 0x9761 +0x17354 0x9ECC +0x17355 0x9ECE +0x17356 0x9ECF +0x17357 0x9ED0 +0x17358 0x9ED4 +0x17359 0x9EDC +0x1735A 0x9EDE +0x1735B 0x9EDD +0x1735C 0x9EE0 +0x1735D 0x9EE5 +0x1735E 0x9EE8 +0x1735F 0x9EEF +0x17360 0x9EF4 +0x17361 0x9EF6 +0x17362 0x9EF7 +0x17363 0x9EF9 +0x17364 0x9EFB +0x17365 0x9EFC +0x17366 0x9EFD +0x17367 0x9F07 +0x17368 0x9F08 +0x17369 0x76B7 +0x1736A 0x9F15 +0x1736B 0x9F21 +0x1736C 0x9F2C +0x1736D 0x9F3E +0x1736E 0x9F4A +0x1736F 0x9F52 +0x17370 0x9F54 +0x17371 0x9F63 +0x17372 0x9F5F +0x17373 0x9F60 +0x17374 0x9F61 +0x17375 0x9F66 +0x17376 0x9F67 +0x17377 0x9F6C +0x17378 0x9F6A +0x17379 0x9F77 +0x1737A 0x9F72 +0x1737B 0x9F76 +0x1737C 0x9F95 +0x1737D 0x9F9C +0x1737E 0x9FA0 +0x17421 0x582F +0x17422 0x69C7 +0x17423 0x9059 +0x17424 0x7464 +0x17425 0x51DC +0x17426 0x7199 +0x17427 0x5653 +0x17428 0x5DE2 +0x17429 0x5E14 +0x1742A 0x5E18 +0x1742B 0x5E58 +0x1742C 0x5E5E +0x1742D 0x5EBE +0x1742E 0xF928 +0x1742F 0x5ECB +0x17430 0x5EF9 +0x17431 0x5F00 +0x17432 0x5F02 +0x17433 0x5F07 +0x17434 0x5F1D +0x17435 0x5F23 +0x17436 0x5F34 +0x17437 0x5F36 +0x17438 0x5F3D +0x17439 0x5F40 +0x1743A 0x5F45 +0x1743B 0x5F54 +0x1743C 0x5F58 +0x1743D 0x5F64 +0x1743E 0x5F67 +0x1743F 0x5F7D +0x17440 0x5F89 +0x17441 0x5F9C +0x17442 0x5FA7 +0x17443 0x5FAF +0x17444 0x5FB5 +0x17445 0x5FB7 +0x17446 0x5FC9 +0x17447 0x5FDE +0x17448 0x5FE1 +0x17449 0x5FE9 +0x1744A 0x600D +0x1744B 0x6014 +0x1744C 0x6018 +0x1744D 0x6033 +0x1744E 0x6035 +0x1744F 0x6047 +0x17450 0xFA3D +0x17451 0x609D +0x17452 0x609E +0x17453 0x60CB +0x17454 0x60D4 +0x17455 0x60D5 +0x17456 0x60DD +0x17457 0x60F8 +0x17458 0x611C +0x17459 0x612B +0x1745A 0x6130 +0x1745B 0x6137 +0x1745C 0xFA3E +0x1745D 0x618D +0x1745E 0xFA3F +0x1745F 0x61BC +0x17460 0x61B9 +0x17461 0xFA40 +0x17462 0x6222 +0x17463 0x623E +0x17464 0x6243 +0x17465 0x6256 +0x17466 0x625A +0x17467 0x626F +0x17468 0x6285 +0x17469 0x62C4 +0x1746A 0x62D6 +0x1746B 0x62FC +0x1746C 0x630A +0x1746D 0x6318 +0x1746E 0x6339 +0x1746F 0x6343 +0x17470 0x6365 +0x17471 0x637C +0x17472 0x63E5 +0x17473 0x63ED +0x17474 0x63F5 +0x17475 0x6410 +0x17476 0x6414 +0x17477 0x6422 +0x17478 0x6479 +0x17479 0x6451 +0x1747A 0x6460 +0x1747B 0x646D +0x1747C 0x64CE +0x1747D 0x64BE +0x1747E 0x64BF +0x17521 0x64C4 +0x17522 0x64CA +0x17523 0x64D0 +0x17524 0x64F7 +0x17525 0x64FB +0x17526 0x6522 +0x17527 0x6529 +0x17528 0xFA41 +0x17529 0x6567 +0x1752A 0x659D +0x1752B 0xFA42 +0x1752C 0x6600 +0x1752D 0x6609 +0x1752E 0x6615 +0x1752F 0x661E +0x17530 0x663A +0x17531 0x6622 +0x17532 0x6624 +0x17533 0x662B +0x17534 0x6630 +0x17535 0x6631 +0x17536 0x6633 +0x17537 0x66FB +0x17538 0x6648 +0x17539 0x664C +0x1753A 0x231C4 +0x1753B 0x6659 +0x1753C 0x665A +0x1753D 0x6661 +0x1753E 0x6665 +0x1753F 0x6673 +0x17540 0x6677 +0x17541 0x6678 +0x17542 0x668D +0x17543 0xFA43 +0x17544 0x66A0 +0x17545 0x66B2 +0x17546 0x66BB +0x17547 0x66C6 +0x17548 0x66C8 +0x17549 0x3B22 +0x1754A 0x66DB +0x1754B 0x66E8 +0x1754C 0x66FA +0x1754D 0x6713 +0x1754E 0xF929 +0x1754F 0x6733 +0x17550 0x6766 +0x17551 0x6747 +0x17552 0x6748 +0x17553 0x677B +0x17554 0x6781 +0x17555 0x6793 +0x17556 0x6798 +0x17557 0x679B +0x17558 0x67BB +0x17559 0x67F9 +0x1755A 0x67C0 +0x1755B 0x67D7 +0x1755C 0x67FC +0x1755D 0x6801 +0x1755E 0x6852 +0x1755F 0x681D +0x17560 0x682C +0x17561 0x6831 +0x17562 0x685B +0x17563 0x6872 +0x17564 0x6875 +0x17565 0xFA44 +0x17566 0x68A3 +0x17567 0x68A5 +0x17568 0x68B2 +0x17569 0x68C8 +0x1756A 0x68D0 +0x1756B 0x68E8 +0x1756C 0x68ED +0x1756D 0x68F0 +0x1756E 0x68F1 +0x1756F 0x68FC +0x17570 0x690A +0x17571 0x6949 +0x17572 0x235C4 +0x17573 0x6935 +0x17574 0x6942 +0x17575 0x6957 +0x17576 0x6963 +0x17577 0x6964 +0x17578 0x6968 +0x17579 0x6980 +0x1757A 0xFA14 +0x1757B 0x69A5 +0x1757C 0x69AD +0x1757D 0x69CF +0x1757E 0x3BB6 +0x17621 0x3BC3 +0x17622 0x69E2 +0x17623 0x69E9 +0x17624 0x69EA +0x17625 0x69F5 +0x17626 0x69F6 +0x17627 0x6A0F +0x17628 0x6A15 +0x17629 0x2373F +0x1762A 0x6A3B +0x1762B 0x6A3E +0x1762C 0x6A45 +0x1762D 0x6A50 +0x1762E 0x6A56 +0x1762F 0x6A5B +0x17630 0x6A6B +0x17631 0x6A73 +0x17632 0x23763 +0x17633 0x6A89 +0x17634 0x6A94 +0x17635 0x6A9D +0x17636 0x6A9E +0x17637 0x6AA5 +0x17638 0x6AE4 +0x17639 0x6AE7 +0x1763A 0x3C0F +0x1763B 0xF91D +0x1763C 0x6B1B +0x1763D 0x6B1E +0x1763E 0x6B2C +0x1763F 0x6B35 +0x17640 0x6B46 +0x17641 0x6B56 +0x17642 0x6B60 +0x17643 0x6B65 +0x17644 0x6B67 +0x17645 0x6B77 +0x17646 0x6B82 +0x17647 0x6BA9 +0x17648 0x6BAD +0x17649 0xF970 +0x1764A 0x6BCF +0x1764B 0x6BD6 +0x1764C 0x6BD7 +0x1764D 0x6BFF +0x1764E 0x6C05 +0x1764F 0x6C10 +0x17650 0x6C33 +0x17651 0x6C59 +0x17652 0x6C5C +0x17653 0x6CAA +0x17654 0x6C74 +0x17655 0x6C76 +0x17656 0x6C85 +0x17657 0x6C86 +0x17658 0x6C98 +0x17659 0x6C9C +0x1765A 0x6CFB +0x1765B 0x6CC6 +0x1765C 0x6CD4 +0x1765D 0x6CE0 +0x1765E 0x6CEB +0x1765F 0x6CEE +0x17660 0x23CFE +0x17661 0x6D04 +0x17662 0x6D0E +0x17663 0x6D2E +0x17664 0x6D31 +0x17665 0x6D39 +0x17666 0x6D3F +0x17667 0x6D58 +0x17668 0x6D65 +0x17669 0xFA45 +0x1766A 0x6D82 +0x1766B 0x6D87 +0x1766C 0x6D89 +0x1766D 0x6D94 +0x1766E 0x6DAA +0x1766F 0x6DAC +0x17670 0x6DBF +0x17671 0x6DC4 +0x17672 0x6DD6 +0x17673 0x6DDA +0x17674 0x6DDB +0x17675 0x6DDD +0x17676 0x6DFC +0x17677 0xFA46 +0x17678 0x6E34 +0x17679 0x6E44 +0x1767A 0x6E5C +0x1767B 0x6E5E +0x1767C 0x6EAB +0x1767D 0x6EB1 +0x1767E 0x6EC1 +0x17721 0x6EC7 +0x17722 0x6ECE +0x17723 0x6F10 +0x17724 0x6F1A +0x17725 0xFA47 +0x17726 0x6F2A +0x17727 0x6F2F +0x17728 0x6F33 +0x17729 0x6F51 +0x1772A 0x6F59 +0x1772B 0x6F5E +0x1772C 0x6F61 +0x1772D 0x6F62 +0x1772E 0x6F7E +0x1772F 0x6F88 +0x17730 0x6F8C +0x17731 0x6F8D +0x17732 0x6F94 +0x17733 0x6FA0 +0x17734 0x6FA7 +0x17735 0x6FB6 +0x17736 0x6FBC +0x17737 0x6FC7 +0x17738 0x6FCA +0x17739 0x6FF9 +0x1773A 0x6FF0 +0x1773B 0x6FF5 +0x1773C 0x7005 +0x1773D 0x7006 +0x1773E 0x7028 +0x1773F 0x704A +0x17740 0x705D +0x17741 0x705E +0x17742 0x704E +0x17743 0x7064 +0x17744 0x7075 +0x17745 0x7085 +0x17746 0x70A4 +0x17747 0x70AB +0x17748 0x70B7 +0x17749 0x70D4 +0x1774A 0x70D8 +0x1774B 0x70E4 +0x1774C 0x710F +0x1774D 0x712B +0x1774E 0x711E +0x1774F 0x7120 +0x17750 0x712E +0x17751 0x7130 +0x17752 0x7146 +0x17753 0x7147 +0x17754 0x7151 +0x17755 0xFA48 +0x17756 0x7152 +0x17757 0x715C +0x17758 0x7160 +0x17759 0x7168 +0x1775A 0xFA15 +0x1775B 0x7185 +0x1775C 0x7187 +0x1775D 0x7192 +0x1775E 0x71C1 +0x1775F 0x71BA +0x17760 0x71C4 +0x17761 0x71FE +0x17762 0x7200 +0x17763 0x7215 +0x17764 0x7255 +0x17765 0x7256 +0x17766 0x3E3F +0x17767 0x728D +0x17768 0x729B +0x17769 0x72BE +0x1776A 0x72C0 +0x1776B 0x72FB +0x1776C 0x247F1 +0x1776D 0x7327 +0x1776E 0x7328 +0x1776F 0xFA16 +0x17770 0x7350 +0x17771 0x7366 +0x17772 0x737C +0x17773 0x7395 +0x17774 0x739F +0x17775 0x73A0 +0x17776 0x73A2 +0x17777 0x73A6 +0x17778 0x73AB +0x17779 0x73C9 +0x1777A 0x73CF +0x1777B 0x73D6 +0x1777C 0x73D9 +0x1777D 0x73E3 +0x1777E 0x73E9 +0x17821 0x7407 +0x17822 0x740A +0x17823 0x741A +0x17824 0x741B +0x17825 0xFA4A +0x17826 0x7426 +0x17827 0x7428 +0x17828 0x742A +0x17829 0x742B +0x1782A 0x742C +0x1782B 0x742E +0x1782C 0x742F +0x1782D 0x7430 +0x1782E 0x7444 +0x1782F 0x7446 +0x17830 0x7447 +0x17831 0x744B +0x17832 0x7457 +0x17833 0x7462 +0x17834 0x746B +0x17835 0x746D +0x17836 0x7486 +0x17837 0x7487 +0x17838 0x7489 +0x17839 0x7498 +0x1783A 0x749C +0x1783B 0x749F +0x1783C 0x74A3 +0x1783D 0x7490 +0x1783E 0x74A6 +0x1783F 0x74A8 +0x17840 0x74A9 +0x17841 0x74B5 +0x17842 0x74BF +0x17843 0x74C8 +0x17844 0x74C9 +0x17845 0x74DA +0x17846 0x74FF +0x17847 0x7501 +0x17848 0x7517 +0x17849 0x752F +0x1784A 0x756F +0x1784B 0x7579 +0x1784C 0x7592 +0x1784D 0x3F72 +0x1784E 0x75CE +0x1784F 0x75E4 +0x17850 0x7600 +0x17851 0x7602 +0x17852 0x7608 +0x17853 0x7615 +0x17854 0x7616 +0x17855 0x7619 +0x17856 0x761E +0x17857 0x762D +0x17858 0x7635 +0x17859 0x7643 +0x1785A 0x764B +0x1785B 0x7664 +0x1785C 0x7665 +0x1785D 0x766D +0x1785E 0x766F +0x1785F 0x7671 +0x17860 0x7681 +0x17861 0x769B +0x17862 0x769D +0x17863 0x769E +0x17864 0x76A6 +0x17865 0x76AA +0x17866 0x76B6 +0x17867 0x76C5 +0x17868 0x76CC +0x17869 0x76CE +0x1786A 0x76D4 +0x1786B 0x76E6 +0x1786C 0x76F1 +0x1786D 0x76FC +0x1786E 0x770A +0x1786F 0x7719 +0x17870 0x7734 +0x17871 0x7736 +0x17872 0x7746 +0x17873 0x774D +0x17874 0x774E +0x17875 0x775C +0x17876 0x775F +0x17877 0x7762 +0x17878 0x777A +0x17879 0x7780 +0x1787A 0x7794 +0x1787B 0x77AA +0x1787C 0x77E0 +0x1787D 0x782D +0x1787E 0x2548E +0x17921 0x7843 +0x17922 0x784E +0x17923 0x784F +0x17924 0x7851 +0x17925 0x7868 +0x17926 0x786E +0x17927 0xFA4B +0x17928 0x78B0 +0x17929 0x2550E +0x1792A 0x78AD +0x1792B 0x78E4 +0x1792C 0x78F2 +0x1792D 0x7900 +0x1792E 0x78F7 +0x1792F 0x791C +0x17930 0x792E +0x17931 0x7931 +0x17932 0x7934 +0x17933 0xFA4C +0x17934 0xFA4D +0x17935 0x7945 +0x17936 0x7946 +0x17937 0xFA4E +0x17938 0xFA4F +0x17939 0xFA50 +0x1793A 0x795C +0x1793B 0xFA51 +0x1793C 0xFA19 +0x1793D 0xFA1A +0x1793E 0x7979 +0x1793F 0xFA52 +0x17940 0xFA53 +0x17941 0xFA1B +0x17942 0x7998 +0x17943 0x79B1 +0x17944 0x79B8 +0x17945 0x79C8 +0x17946 0x79CA +0x17947 0x25771 +0x17948 0x79D4 +0x17949 0x79DE +0x1794A 0x79EB +0x1794B 0x79ED +0x1794C 0x7A03 +0x1794D 0xFA54 +0x1794E 0x7A39 +0x1794F 0x7A5D +0x17950 0x7A6D +0x17951 0xFA55 +0x17952 0x7A85 +0x17953 0x7AA0 +0x17954 0x259C4 +0x17955 0x7AB3 +0x17956 0x7ABB +0x17957 0x7ACE +0x17958 0x7AEB +0x17959 0x7AFD +0x1795A 0x7B12 +0x1795B 0x7B2D +0x1795C 0x7B3B +0x1795D 0x7B47 +0x1795E 0x7B4E +0x1795F 0x7B60 +0x17960 0x7B6D +0x17961 0x7B6F +0x17962 0x7B72 +0x17963 0x7B9E +0x17964 0xFA56 +0x17965 0x7BD7 +0x17966 0x7BD9 +0x17967 0x7C01 +0x17968 0x7C31 +0x17969 0x7C1E +0x1796A 0x7C20 +0x1796B 0x7C33 +0x1796C 0x7C36 +0x1796D 0x4264 +0x1796E 0x25DA1 +0x1796F 0x7C59 +0x17970 0x7C6D +0x17971 0x7C79 +0x17972 0x7C8F +0x17973 0x7C94 +0x17974 0x7CA0 +0x17975 0x7CBC +0x17976 0x7CD5 +0x17977 0x7CD9 +0x17978 0x7CDD +0x17979 0x7D07 +0x1797A 0x7D08 +0x1797B 0x7D13 +0x1797C 0x7D1D +0x1797D 0x7D23 +0x1797E 0x7D31 +0x17A21 0x7D41 +0x17A22 0x7D48 +0x17A23 0x7D53 +0x17A24 0x7D5C +0x17A25 0x7D7A +0x17A26 0x7D83 +0x17A27 0x7D8B +0x17A28 0x7DA0 +0x17A29 0x7DA6 +0x17A2A 0x7DC2 +0x17A2B 0x7DCC +0x17A2C 0x7DD6 +0x17A2D 0x7DE3 +0x17A2E 0xFA57 +0x17A2F 0x7E28 +0x17A30 0x7E08 +0x17A31 0x7E11 +0x17A32 0x7E15 +0x17A33 0xFA59 +0x17A34 0x7E47 +0x17A35 0x7E52 +0x17A36 0x7E61 +0x17A37 0x7E8A +0x17A38 0x7E8D +0x17A39 0x7F47 +0x17A3A 0xFA5A +0x17A3B 0x7F91 +0x17A3C 0x7F97 +0x17A3D 0x7FBF +0x17A3E 0x7FCE +0x17A3F 0x7FDB +0x17A40 0x7FDF +0x17A41 0x7FEC +0x17A42 0x7FEE +0x17A43 0x7FFA +0x17A44 0xFA5B +0x17A45 0x8014 +0x17A46 0x8026 +0x17A47 0x8035 +0x17A48 0x8037 +0x17A49 0x803C +0x17A4A 0x80CA +0x17A4B 0x80D7 +0x17A4C 0x80E0 +0x17A4D 0x80F3 +0x17A4E 0x8118 +0x17A4F 0x814A +0x17A50 0x8160 +0x17A51 0x8167 +0x17A52 0x8168 +0x17A53 0x816D +0x17A54 0x81BB +0x17A55 0x81CA +0x17A56 0x81CF +0x17A57 0x81D7 +0x17A58 0xFA5C +0x17A59 0x4453 +0x17A5A 0x445B +0x17A5B 0x8260 +0x17A5C 0x8274 +0x17A5D 0x26AFF +0x17A5E 0x828E +0x17A5F 0x82A1 +0x17A60 0x82A3 +0x17A61 0x82A4 +0x17A62 0x82A9 +0x17A63 0x82AE +0x17A64 0x82B7 +0x17A65 0x82BE +0x17A66 0x82BF +0x17A67 0x82C6 +0x17A68 0x82D5 +0x17A69 0x82FD +0x17A6A 0x82FE +0x17A6B 0x8300 +0x17A6C 0x8301 +0x17A6D 0x8362 +0x17A6E 0x8322 +0x17A6F 0x832D +0x17A70 0x833A +0x17A71 0x8343 +0x17A72 0x8347 +0x17A73 0x8351 +0x17A74 0x8355 +0x17A75 0x837D +0x17A76 0x8386 +0x17A77 0x8392 +0x17A78 0x8398 +0x17A79 0x83A7 +0x17A7A 0x83A9 +0x17A7B 0x83BF +0x17A7C 0x83C0 +0x17A7D 0x83C7 +0x17A7E 0x83CF +0x17B21 0x83D1 +0x17B22 0x83E1 +0x17B23 0x83EA +0x17B24 0x8401 +0x17B25 0x8406 +0x17B26 0x840A +0x17B27 0xFA5F +0x17B28 0x8448 +0x17B29 0x845F +0x17B2A 0x8470 +0x17B2B 0x8473 +0x17B2C 0x8485 +0x17B2D 0x849E +0x17B2E 0x84AF +0x17B2F 0x84B4 +0x17B30 0x84BA +0x17B31 0x84C0 +0x17B32 0x84C2 +0x17B33 0x26E40 +0x17B34 0x8532 +0x17B35 0x851E +0x17B36 0x8523 +0x17B37 0x852F +0x17B38 0x8559 +0x17B39 0x8564 +0x17B3A 0xFA1F +0x17B3B 0x85AD +0x17B3C 0x857A +0x17B3D 0x858C +0x17B3E 0x858F +0x17B3F 0x85A2 +0x17B40 0x85B0 +0x17B41 0x85CB +0x17B42 0x85CE +0x17B43 0x85ED +0x17B44 0x8612 +0x17B45 0x85FF +0x17B46 0x8604 +0x17B47 0x8605 +0x17B48 0x8610 +0x17B49 0x270F4 +0x17B4A 0x8618 +0x17B4B 0x8629 +0x17B4C 0x8638 +0x17B4D 0x8657 +0x17B4E 0x865B +0x17B4F 0xF936 +0x17B50 0x8662 +0x17B51 0x459D +0x17B52 0x866C +0x17B53 0x8675 +0x17B54 0x8698 +0x17B55 0x86B8 +0x17B56 0x86FA +0x17B57 0x86FC +0x17B58 0x86FD +0x17B59 0x870B +0x17B5A 0x8771 +0x17B5B 0x8787 +0x17B5C 0x8788 +0x17B5D 0x87AC +0x17B5E 0x87AD +0x17B5F 0x87B5 +0x17B60 0x45EA +0x17B61 0x87D6 +0x17B62 0x87EC +0x17B63 0x8806 +0x17B64 0x880A +0x17B65 0x8810 +0x17B66 0x8814 +0x17B67 0x881F +0x17B68 0x8898 +0x17B69 0x88AA +0x17B6A 0x88CA +0x17B6B 0x88CE +0x17B6C 0x27684 +0x17B6D 0x88F5 +0x17B6E 0x891C +0x17B6F 0xFA60 +0x17B70 0x8918 +0x17B71 0x8919 +0x17B72 0x891A +0x17B73 0x8927 +0x17B74 0x8930 +0x17B75 0x8932 +0x17B76 0x8939 +0x17B77 0x8940 +0x17B78 0x8994 +0x17B79 0xFA61 +0x17B7A 0x89D4 +0x17B7B 0x89E5 +0x17B7C 0x89F6 +0x17B7D 0x8A12 +0x17B7E 0x8A15 +0x17C21 0x8A22 +0x17C22 0x8A37 +0x17C23 0x8A47 +0x17C24 0x8A4E +0x17C25 0x8A5D +0x17C26 0x8A61 +0x17C27 0x8A75 +0x17C28 0x8A79 +0x17C29 0x8AA7 +0x17C2A 0x8AD0 +0x17C2B 0x8ADF +0x17C2C 0x8AF4 +0x17C2D 0x8AF6 +0x17C2E 0xFA22 +0x17C2F 0xFA62 +0x17C30 0xFA63 +0x17C31 0x8B46 +0x17C32 0x8B54 +0x17C33 0x8B59 +0x17C34 0x8B69 +0x17C35 0x8B9D +0x17C36 0x8C49 +0x17C37 0x8C68 +0x17C38 0xFA64 +0x17C39 0x8CE1 +0x17C3A 0x8CF4 +0x17C3B 0x8CF8 +0x17C3C 0x8CFE +0x17C3D 0xFA65 +0x17C3E 0x8D12 +0x17C3F 0x8D1B +0x17C40 0x8DAF +0x17C41 0x8DCE +0x17C42 0x8DD1 +0x17C43 0x8DD7 +0x17C44 0x8E20 +0x17C45 0x8E23 +0x17C46 0x8E3D +0x17C47 0x8E70 +0x17C48 0x8E7B +0x17C49 0x28277 +0x17C4A 0x8EC0 +0x17C4B 0x4844 +0x17C4C 0x8EFA +0x17C4D 0x8F1E +0x17C4E 0x8F2D +0x17C4F 0x8F36 +0x17C50 0x8F54 +0x17C51 0x283CD +0x17C52 0x8FA6 +0x17C53 0x8FB5 +0x17C54 0x8FE4 +0x17C55 0x8FE8 +0x17C56 0x8FEE +0x17C57 0x9008 +0x17C58 0x902D +0x17C59 0xFA67 +0x17C5A 0x9088 +0x17C5B 0x9095 +0x17C5C 0x9097 +0x17C5D 0x9099 +0x17C5E 0x909B +0x17C5F 0x90A2 +0x17C60 0x90B3 +0x17C61 0x90BE +0x17C62 0x90C4 +0x17C63 0x90C5 +0x17C64 0x90C7 +0x17C65 0x90D7 +0x17C66 0x90DD +0x17C67 0x90DE +0x17C68 0x90EF +0x17C69 0x90F4 +0x17C6A 0xFA26 +0x17C6B 0x9114 +0x17C6C 0x9115 +0x17C6D 0x9116 +0x17C6E 0x9122 +0x17C6F 0x9123 +0x17C70 0x9127 +0x17C71 0x912F +0x17C72 0x9131 +0x17C73 0x9134 +0x17C74 0x913D +0x17C75 0x9148 +0x17C76 0x915B +0x17C77 0x9183 +0x17C78 0x919E +0x17C79 0x91AC +0x17C7A 0x91B1 +0x17C7B 0x91BC +0x17C7C 0x91D7 +0x17C7D 0x91FB +0x17C7E 0x91E4 +0x17D21 0x91E5 +0x17D22 0x91ED +0x17D23 0x91F1 +0x17D24 0x9207 +0x17D25 0x9210 +0x17D26 0x9238 +0x17D27 0x9239 +0x17D28 0x923A +0x17D29 0x923C +0x17D2A 0x9240 +0x17D2B 0x9243 +0x17D2C 0x924F +0x17D2D 0x9278 +0x17D2E 0x9288 +0x17D2F 0x92C2 +0x17D30 0x92CB +0x17D31 0x92CC +0x17D32 0x92D3 +0x17D33 0x92E0 +0x17D34 0x92FF +0x17D35 0x9304 +0x17D36 0x931F +0x17D37 0x9321 +0x17D38 0x9325 +0x17D39 0x9348 +0x17D3A 0x9349 +0x17D3B 0x934A +0x17D3C 0x9364 +0x17D3D 0x9365 +0x17D3E 0x936A +0x17D3F 0x9370 +0x17D40 0x939B +0x17D41 0x93A3 +0x17D42 0x93BA +0x17D43 0x93C6 +0x17D44 0x93DE +0x17D45 0x93DF +0x17D46 0x9404 +0x17D47 0x93FD +0x17D48 0x9433 +0x17D49 0x944A +0x17D4A 0x9463 +0x17D4B 0x946B +0x17D4C 0x9471 +0x17D4D 0x9472 +0x17D4E 0x958E +0x17D4F 0x959F +0x17D50 0x95A6 +0x17D51 0x95A9 +0x17D52 0x95AC +0x17D53 0x95B6 +0x17D54 0x95BD +0x17D55 0x95CB +0x17D56 0x95D0 +0x17D57 0x95D3 +0x17D58 0x49B0 +0x17D59 0x95DA +0x17D5A 0x95DE +0x17D5B 0x9658 +0x17D5C 0x9684 +0x17D5D 0xF9DC +0x17D5E 0x969D +0x17D5F 0x96A4 +0x17D60 0x96A5 +0x17D61 0x96D2 +0x17D62 0x96DE +0x17D63 0xFA68 +0x17D64 0x96E9 +0x17D65 0x96EF +0x17D66 0x9733 +0x17D67 0x973B +0x17D68 0x974D +0x17D69 0x974E +0x17D6A 0x974F +0x17D6B 0x975A +0x17D6C 0x976E +0x17D6D 0x9773 +0x17D6E 0x9795 +0x17D6F 0x97AE +0x17D70 0x97BA +0x17D71 0x97C1 +0x17D72 0x97C9 +0x17D73 0x97DE +0x17D74 0x97DB +0x17D75 0x97F4 +0x17D76 0xFA69 +0x17D77 0x980A +0x17D78 0x981E +0x17D79 0x982B +0x17D7A 0x9830 +0x17D7B 0xFA6A +0x17D7C 0x9852 +0x17D7D 0x9853 +0x17D7E 0x9856 +0x17E21 0x9857 +0x17E22 0x9859 +0x17E23 0x985A +0x17E24 0xF9D0 +0x17E25 0x9865 +0x17E26 0x986C +0x17E27 0x98BA +0x17E28 0x98C8 +0x17E29 0x98E7 +0x17E2A 0x9958 +0x17E2B 0x999E +0x17E2C 0x9A02 +0x17E2D 0x9A03 +0x17E2E 0x9A24 +0x17E2F 0x9A2D +0x17E30 0x9A2E +0x17E31 0x9A38 +0x17E32 0x9A4A +0x17E33 0x9A4E +0x17E34 0x9A52 +0x17E35 0x9AB6 +0x17E36 0x9AC1 +0x17E37 0x9AC3 +0x17E38 0x9ACE +0x17E39 0x9AD6 +0x17E3A 0x9AF9 +0x17E3B 0x9B02 +0x17E3C 0x9B08 +0x17E3D 0x9B20 +0x17E3E 0x4C17 +0x17E3F 0x9B2D +0x17E40 0x9B5E +0x17E41 0x9B79 +0x17E42 0x9B66 +0x17E43 0x9B72 +0x17E44 0x9B75 +0x17E45 0x9B84 +0x17E46 0x9B8A +0x17E47 0x9B8F +0x17E48 0x9B9E +0x17E49 0x9BA7 +0x17E4A 0x9BC1 +0x17E4B 0x9BCE +0x17E4C 0x9BE5 +0x17E4D 0x9BF8 +0x17E4E 0x9BFD +0x17E4F 0x9C00 +0x17E50 0x9C23 +0x17E51 0x9C41 +0x17E52 0x9C4F +0x17E53 0x9C50 +0x17E54 0x9C53 +0x17E55 0x9C63 +0x17E56 0x9C65 +0x17E57 0x9C77 +0x17E58 0x9D1D +0x17E59 0x9D1E +0x17E5A 0x9D43 +0x17E5B 0x9D47 +0x17E5C 0x9D52 +0x17E5D 0x9D63 +0x17E5E 0x9D70 +0x17E5F 0x9D7C +0x17E60 0x9D8A +0x17E61 0x9D96 +0x17E62 0x9DC0 +0x17E63 0x9DAC +0x17E64 0x9DBC +0x17E65 0x9DD7 +0x17E66 0x2A190 +0x17E67 0x9DE7 +0x17E68 0x9E07 +0x17E69 0x9E15 +0x17E6A 0x9E7C +0x17E6B 0x9E9E +0x17E6C 0x9EA4 +0x17E6D 0x9EAC +0x17E6E 0x9EAF +0x17E6F 0x9EB4 +0x17E70 0x9EB5 +0x17E71 0x9EC3 +0x17E72 0x9ED1 +0x17E73 0x9F10 +0x17E74 0x9F39 +0x17E75 0x9F57 +0x17E76 0x9F90 +0x17E77 0x9F94 +0x17E78 0x9F97 +0x17E79 0x9FA2 +0x17E7A 0x59F8 +0x17E7B 0x5C5B +0x17E7C 0x5E77 +0x17E7D 0x7626 +0x17E7E 0x7E6B +0x22121 0x20089 +0x22122 0x4E02 +0x22123 0x4E0F +0x22124 0x4E12 +0x22125 0x4E29 +0x22126 0x4E2B +0x22127 0x4E2E +0x22128 0x4E40 +0x22129 0x4E47 +0x2212A 0x4E48 +0x2212B 0x200A2 +0x2212C 0x4E51 +0x2212D 0x3406 +0x2212E 0x200A4 +0x2212F 0x4E5A +0x22130 0x4E69 +0x22131 0x4E9D +0x22132 0x342C +0x22133 0x342E +0x22134 0x4EB9 +0x22135 0x4EBB +0x22136 0x201A2 +0x22137 0x4EBC +0x22138 0x4EC3 +0x22139 0x4EC8 +0x2213A 0x4ED0 +0x2213B 0x4EEB +0x2213C 0x4EDA +0x2213D 0x4EF1 +0x2213E 0x4EF5 +0x2213F 0x4F00 +0x22140 0x4F16 +0x22141 0x4F64 +0x22142 0x4F37 +0x22143 0x4F3E +0x22144 0x4F54 +0x22145 0x4F58 +0x22146 0x20213 +0x22147 0x4F77 +0x22148 0x4F78 +0x22149 0x4F7A +0x2214A 0x4F7D +0x2214B 0x4F82 +0x2214C 0x4F85 +0x2214D 0x4F92 +0x2214E 0x4F9A +0x2214F 0x4FE6 +0x22150 0x4FB2 +0x22151 0x4FBE +0x22152 0x4FC5 +0x22153 0x4FCB +0x22154 0x4FCF +0x22155 0x4FD2 +0x22156 0x346A +0x22157 0x4FF2 +0x22158 0x5000 +0x22159 0x5010 +0x2215A 0x5013 +0x2215B 0x501C +0x2215C 0x501E +0x2215D 0x5022 +0x2215E 0x3468 +0x2215F 0x5042 +0x22160 0x5046 +0x22161 0x504E +0x22162 0x5053 +0x22163 0x5057 +0x22164 0x5063 +0x22165 0x5066 +0x22166 0x506A +0x22167 0x5070 +0x22168 0x50A3 +0x22169 0x5088 +0x2216A 0x5092 +0x2216B 0x5093 +0x2216C 0x5095 +0x2216D 0x5096 +0x2216E 0x509C +0x2216F 0x50AA +0x22170 0x2032B +0x22171 0x50B1 +0x22172 0x50BA +0x22173 0x50BB +0x22174 0x50C4 +0x22175 0x50C7 +0x22176 0x50F3 +0x22177 0x20381 +0x22178 0x50CE +0x22179 0x20371 +0x2217A 0x50D4 +0x2217B 0x50D9 +0x2217C 0x50E1 +0x2217D 0x50E9 +0x2217E 0x3492 +0x22321 0x5108 +0x22322 0x203F9 +0x22323 0x5117 +0x22324 0x511B +0x22325 0x2044A +0x22326 0x5160 +0x22327 0x20509 +0x22328 0x5173 +0x22329 0x5183 +0x2232A 0x518B +0x2232B 0x34BC +0x2232C 0x5198 +0x2232D 0x51A3 +0x2232E 0x51AD +0x2232F 0x34C7 +0x22330 0x51BC +0x22331 0x205D6 +0x22332 0x20628 +0x22333 0x51F3 +0x22334 0x51F4 +0x22335 0x5202 +0x22336 0x5212 +0x22337 0x5216 +0x22338 0x2074F +0x22339 0x5255 +0x2233A 0x525C +0x2233B 0x526C +0x2233C 0x5277 +0x2233D 0x5284 +0x2233E 0x5282 +0x2233F 0x20807 +0x22340 0x5298 +0x22341 0x2083A +0x22342 0x52A4 +0x22343 0x52A6 +0x22344 0x52AF +0x22345 0x52BA +0x22346 0x52BB +0x22347 0x52CA +0x22348 0x351F +0x22349 0x52D1 +0x2234A 0x208B9 +0x2234B 0x52F7 +0x2234C 0x530A +0x2234D 0x530B +0x2234E 0x5324 +0x2234F 0x5335 +0x22350 0x533E +0x22351 0x5342 +0x22352 0x2097C +0x22353 0x2099D +0x22354 0x5367 +0x22355 0x536C +0x22356 0x537A +0x22357 0x53A4 +0x22358 0x53B4 +0x22359 0x20AD3 +0x2235A 0x53B7 +0x2235B 0x53C0 +0x2235C 0x20B1D +0x2235D 0x355D +0x2235E 0x355E +0x2235F 0x53D5 +0x22360 0x53DA +0x22361 0x3563 +0x22362 0x53F4 +0x22363 0x53F5 +0x22364 0x5455 +0x22365 0x5424 +0x22366 0x5428 +0x22367 0x356E +0x22368 0x5443 +0x22369 0x5462 +0x2236A 0x5466 +0x2236B 0x546C +0x2236C 0x548A +0x2236D 0x548D +0x2236E 0x5495 +0x2236F 0x54A0 +0x22370 0x54A6 +0x22371 0x54AD +0x22372 0x54AE +0x22373 0x54B7 +0x22374 0x54BA +0x22375 0x54BF +0x22376 0x54C3 +0x22377 0x20D45 +0x22378 0x54EC +0x22379 0x54EF +0x2237A 0x54F1 +0x2237B 0x54F3 +0x2237C 0x5500 +0x2237D 0x5501 +0x2237E 0x5509 +0x22421 0x553C +0x22422 0x5541 +0x22423 0x35A6 +0x22424 0x5547 +0x22425 0x554A +0x22426 0x35A8 +0x22427 0x5560 +0x22428 0x5561 +0x22429 0x5564 +0x2242A 0x20DE1 +0x2242B 0x557D +0x2242C 0x5582 +0x2242D 0x5588 +0x2242E 0x5591 +0x2242F 0x35C5 +0x22430 0x55D2 +0x22431 0x20E95 +0x22432 0x20E6D +0x22433 0x55BF +0x22434 0x55C9 +0x22435 0x55CC +0x22436 0x55D1 +0x22437 0x55DD +0x22438 0x35DA +0x22439 0x55E2 +0x2243A 0x20E64 +0x2243B 0x55E9 +0x2243C 0x5628 +0x2243D 0x20F5F +0x2243E 0x5607 +0x2243F 0x5610 +0x22440 0x5630 +0x22441 0x5637 +0x22442 0x35F4 +0x22443 0x563D +0x22444 0x563F +0x22445 0x5640 +0x22446 0x5647 +0x22447 0x565E +0x22448 0x5660 +0x22449 0x566D +0x2244A 0x3605 +0x2244B 0x5688 +0x2244C 0x568C +0x2244D 0x5695 +0x2244E 0x569A +0x2244F 0x569D +0x22450 0x56A8 +0x22451 0x56AD +0x22452 0x56B2 +0x22453 0x56C5 +0x22454 0x56CD +0x22455 0x56DF +0x22456 0x56E8 +0x22457 0x56F6 +0x22458 0x56F7 +0x22459 0x21201 +0x2245A 0x5715 +0x2245B 0x5723 +0x2245C 0x21255 +0x2245D 0x5729 +0x2245E 0x2127B +0x2245F 0x5745 +0x22460 0x5746 +0x22461 0x574C +0x22462 0x574D +0x22463 0x21274 +0x22464 0x5768 +0x22465 0x576F +0x22466 0x5773 +0x22467 0x5774 +0x22468 0x5775 +0x22469 0x577B +0x2246A 0x212E4 +0x2246B 0x212D7 +0x2246C 0x57AC +0x2246D 0x579A +0x2246E 0x579D +0x2246F 0x579E +0x22470 0x57A8 +0x22471 0x57D7 +0x22472 0x212FD +0x22473 0x57CC +0x22474 0x21336 +0x22475 0x21344 +0x22476 0x57DE +0x22477 0x57E6 +0x22478 0x57F0 +0x22479 0x364A +0x2247A 0x57F8 +0x2247B 0x57FB +0x2247C 0x57FD +0x2247D 0x5804 +0x2247E 0x581E +0x22521 0x5820 +0x22522 0x5827 +0x22523 0x5832 +0x22524 0x5839 +0x22525 0x213C4 +0x22526 0x5849 +0x22527 0x584C +0x22528 0x5867 +0x22529 0x588A +0x2252A 0x588B +0x2252B 0x588D +0x2252C 0x588F +0x2252D 0x5890 +0x2252E 0x5894 +0x2252F 0x589D +0x22530 0x58AA +0x22531 0x58B1 +0x22532 0x2146D +0x22533 0x58C3 +0x22534 0x58CD +0x22535 0x58E2 +0x22536 0x58F3 +0x22537 0x58F4 +0x22538 0x5905 +0x22539 0x5906 +0x2253A 0x590B +0x2253B 0x590D +0x2253C 0x5914 +0x2253D 0x5924 +0x2253E 0x215D7 +0x2253F 0x3691 +0x22540 0x593D +0x22541 0x3699 +0x22542 0x5946 +0x22543 0x3696 +0x22544 0x26C29 +0x22545 0x595B +0x22546 0x595F +0x22547 0x21647 +0x22548 0x5975 +0x22549 0x5976 +0x2254A 0x597C +0x2254B 0x599F +0x2254C 0x59AE +0x2254D 0x59BC +0x2254E 0x59C8 +0x2254F 0x59CD +0x22550 0x59DE +0x22551 0x59E3 +0x22552 0x59E4 +0x22553 0x59E7 +0x22554 0x59EE +0x22555 0x21706 +0x22556 0x21742 +0x22557 0x36CF +0x22558 0x5A0C +0x22559 0x5A0D +0x2255A 0x5A17 +0x2255B 0x5A27 +0x2255C 0x5A2D +0x2255D 0x5A55 +0x2255E 0x5A65 +0x2255F 0x5A7A +0x22560 0x5A8B +0x22561 0x5A9C +0x22562 0x5A9F +0x22563 0x5AA0 +0x22564 0x5AA2 +0x22565 0x5AB1 +0x22566 0x5AB3 +0x22567 0x5AB5 +0x22568 0x5ABA +0x22569 0x5ABF +0x2256A 0x5ADA +0x2256B 0x5ADC +0x2256C 0x5AE0 +0x2256D 0x5AE5 +0x2256E 0x5AF0 +0x2256F 0x5AEE +0x22570 0x5AF5 +0x22571 0x5B00 +0x22572 0x5B08 +0x22573 0x5B17 +0x22574 0x5B34 +0x22575 0x5B2D +0x22576 0x5B4C +0x22577 0x5B52 +0x22578 0x5B68 +0x22579 0x5B6F +0x2257A 0x5B7C +0x2257B 0x5B7F +0x2257C 0x5B81 +0x2257D 0x5B84 +0x2257E 0x219C3 +0x22821 0x5B96 +0x22822 0x5BAC +0x22823 0x3761 +0x22824 0x5BC0 +0x22825 0x3762 +0x22826 0x5BCE +0x22827 0x5BD6 +0x22828 0x376C +0x22829 0x376B +0x2282A 0x5BF1 +0x2282B 0x5BFD +0x2282C 0x3775 +0x2282D 0x5C03 +0x2282E 0x5C29 +0x2282F 0x5C30 +0x22830 0x21C56 +0x22831 0x5C5F +0x22832 0x5C63 +0x22833 0x5C67 +0x22834 0x5C68 +0x22835 0x5C69 +0x22836 0x5C70 +0x22837 0x21D2D +0x22838 0x21D45 +0x22839 0x5C7C +0x2283A 0x21D78 +0x2283B 0x21D62 +0x2283C 0x5C88 +0x2283D 0x5C8A +0x2283E 0x37C1 +0x2283F 0x21DA1 +0x22840 0x21D9C +0x22841 0x5CA0 +0x22842 0x5CA2 +0x22843 0x5CA6 +0x22844 0x5CA7 +0x22845 0x21D92 +0x22846 0x5CAD +0x22847 0x5CB5 +0x22848 0x21DB7 +0x22849 0x5CC9 +0x2284A 0x21DE0 +0x2284B 0x21E33 +0x2284C 0x5D06 +0x2284D 0x5D10 +0x2284E 0x5D2B +0x2284F 0x5D1D +0x22850 0x5D20 +0x22851 0x5D24 +0x22852 0x5D26 +0x22853 0x5D31 +0x22854 0x5D39 +0x22855 0x5D42 +0x22856 0x37E8 +0x22857 0x5D61 +0x22858 0x5D6A +0x22859 0x37F4 +0x2285A 0x5D70 +0x2285B 0x21F1E +0x2285C 0x37FD +0x2285D 0x5D88 +0x2285E 0x3800 +0x2285F 0x5D92 +0x22860 0x5D94 +0x22861 0x5D97 +0x22862 0x5D99 +0x22863 0x5DB0 +0x22864 0x5DB2 +0x22865 0x5DB4 +0x22866 0x21F76 +0x22867 0x5DB9 +0x22868 0x5DD1 +0x22869 0x5DD7 +0x2286A 0x5DD8 +0x2286B 0x5DE0 +0x2286C 0x21FFA +0x2286D 0x5DE4 +0x2286E 0x5DE9 +0x2286F 0x382F +0x22870 0x5E00 +0x22871 0x3836 +0x22872 0x5E12 +0x22873 0x5E15 +0x22874 0x3840 +0x22875 0x5E1F +0x22876 0x5E2E +0x22877 0x5E3E +0x22878 0x5E49 +0x22879 0x385C +0x2287A 0x5E56 +0x2287B 0x3861 +0x2287C 0x5E6B +0x2287D 0x5E6C +0x2287E 0x5E6D +0x22C21 0x5E6E +0x22C22 0x2217B +0x22C23 0x5EA5 +0x22C24 0x5EAA +0x22C25 0x5EAC +0x22C26 0x5EB9 +0x22C27 0x5EBF +0x22C28 0x5EC6 +0x22C29 0x5ED2 +0x22C2A 0x5ED9 +0x22C2B 0x2231E +0x22C2C 0x5EFD +0x22C2D 0x5F08 +0x22C2E 0x5F0E +0x22C2F 0x5F1C +0x22C30 0x223AD +0x22C31 0x5F1E +0x22C32 0x5F47 +0x22C33 0x5F63 +0x22C34 0x5F72 +0x22C35 0x5F7E +0x22C36 0x5F8F +0x22C37 0x5FA2 +0x22C38 0x5FA4 +0x22C39 0x5FB8 +0x22C3A 0x5FC4 +0x22C3B 0x38FA +0x22C3C 0x5FC7 +0x22C3D 0x5FCB +0x22C3E 0x5FD2 +0x22C3F 0x5FD3 +0x22C40 0x5FD4 +0x22C41 0x5FE2 +0x22C42 0x5FEE +0x22C43 0x5FEF +0x22C44 0x5FF3 +0x22C45 0x5FFC +0x22C46 0x3917 +0x22C47 0x6017 +0x22C48 0x6022 +0x22C49 0x6024 +0x22C4A 0x391A +0x22C4B 0x604C +0x22C4C 0x607F +0x22C4D 0x608A +0x22C4E 0x6095 +0x22C4F 0x60A8 +0x22C50 0x226F3 +0x22C51 0x60B0 +0x22C52 0x60B1 +0x22C53 0x60BE +0x22C54 0x60C8 +0x22C55 0x60D9 +0x22C56 0x60DB +0x22C57 0x60EE +0x22C58 0x60F2 +0x22C59 0x60F5 +0x22C5A 0x6110 +0x22C5B 0x6112 +0x22C5C 0x6113 +0x22C5D 0x6119 +0x22C5E 0x611E +0x22C5F 0x613A +0x22C60 0x396F +0x22C61 0x6141 +0x22C62 0x6146 +0x22C63 0x6160 +0x22C64 0x617C +0x22C65 0x2285B +0x22C66 0x6192 +0x22C67 0x6193 +0x22C68 0x6197 +0x22C69 0x6198 +0x22C6A 0x61A5 +0x22C6B 0x61A8 +0x22C6C 0x61AD +0x22C6D 0x228AB +0x22C6E 0x61D5 +0x22C6F 0x61DD +0x22C70 0x61DF +0x22C71 0x61F5 +0x22C72 0x2298F +0x22C73 0x6215 +0x22C74 0x6223 +0x22C75 0x6229 +0x22C76 0x6246 +0x22C77 0x624C +0x22C78 0x6251 +0x22C79 0x6252 +0x22C7A 0x6261 +0x22C7B 0x6264 +0x22C7C 0x627B +0x22C7D 0x626D +0x22C7E 0x6273 +0x22D21 0x6299 +0x22D22 0x62A6 +0x22D23 0x62D5 +0x22D24 0x22AB8 +0x22D25 0x62FD +0x22D26 0x6303 +0x22D27 0x630D +0x22D28 0x6310 +0x22D29 0x22B4F +0x22D2A 0x22B50 +0x22D2B 0x6332 +0x22D2C 0x6335 +0x22D2D 0x633B +0x22D2E 0x633C +0x22D2F 0x6341 +0x22D30 0x6344 +0x22D31 0x634E +0x22D32 0x22B46 +0x22D33 0x6359 +0x22D34 0x22C1D +0x22D35 0x22BA6 +0x22D36 0x636C +0x22D37 0x6384 +0x22D38 0x6399 +0x22D39 0x22C24 +0x22D3A 0x6394 +0x22D3B 0x63BD +0x22D3C 0x63F7 +0x22D3D 0x63D4 +0x22D3E 0x63D5 +0x22D3F 0x63DC +0x22D40 0x63E0 +0x22D41 0x63EB +0x22D42 0x63EC +0x22D43 0x63F2 +0x22D44 0x6409 +0x22D45 0x641E +0x22D46 0x6425 +0x22D47 0x6429 +0x22D48 0x642F +0x22D49 0x645A +0x22D4A 0x645B +0x22D4B 0x645D +0x22D4C 0x6473 +0x22D4D 0x647D +0x22D4E 0x6487 +0x22D4F 0x6491 +0x22D50 0x649D +0x22D51 0x649F +0x22D52 0x64CB +0x22D53 0x64CC +0x22D54 0x64D5 +0x22D55 0x64D7 +0x22D56 0x22DE1 +0x22D57 0x64E4 +0x22D58 0x64E5 +0x22D59 0x64FF +0x22D5A 0x6504 +0x22D5B 0x3A6E +0x22D5C 0x650F +0x22D5D 0x6514 +0x22D5E 0x6516 +0x22D5F 0x3A73 +0x22D60 0x651E +0x22D61 0x6532 +0x22D62 0x6544 +0x22D63 0x6554 +0x22D64 0x656B +0x22D65 0x657A +0x22D66 0x6581 +0x22D67 0x6584 +0x22D68 0x6585 +0x22D69 0x658A +0x22D6A 0x65B2 +0x22D6B 0x65B5 +0x22D6C 0x65B8 +0x22D6D 0x65BF +0x22D6E 0x65C2 +0x22D6F 0x65C9 +0x22D70 0x65D4 +0x22D71 0x3AD6 +0x22D72 0x65F2 +0x22D73 0x65F9 +0x22D74 0x65FC +0x22D75 0x6604 +0x22D76 0x6608 +0x22D77 0x6621 +0x22D78 0x662A +0x22D79 0x6645 +0x22D7A 0x6651 +0x22D7B 0x664E +0x22D7C 0x3AEA +0x22D7D 0x231C3 +0x22D7E 0x6657 +0x22E21 0x665B +0x22E22 0x6663 +0x22E23 0x231F5 +0x22E24 0x231B6 +0x22E25 0x666A +0x22E26 0x666B +0x22E27 0x666C +0x22E28 0x666D +0x22E29 0x667B +0x22E2A 0x6680 +0x22E2B 0x6690 +0x22E2C 0x6692 +0x22E2D 0x6699 +0x22E2E 0x3B0E +0x22E2F 0x66AD +0x22E30 0x66B1 +0x22E31 0x66B5 +0x22E32 0x3B1A +0x22E33 0x66BF +0x22E34 0x3B1C +0x22E35 0x66EC +0x22E36 0x3AD7 +0x22E37 0x6701 +0x22E38 0x6705 +0x22E39 0x6712 +0x22E3A 0x23372 +0x22E3B 0x6719 +0x22E3C 0x233D3 +0x22E3D 0x233D2 +0x22E3E 0x674C +0x22E3F 0x674D +0x22E40 0x6754 +0x22E41 0x675D +0x22E42 0x233D0 +0x22E43 0x233E4 +0x22E44 0x233D5 +0x22E45 0x6774 +0x22E46 0x6776 +0x22E47 0x233DA +0x22E48 0x6792 +0x22E49 0x233DF +0x22E4A 0x8363 +0x22E4B 0x6810 +0x22E4C 0x67B0 +0x22E4D 0x67B2 +0x22E4E 0x67C3 +0x22E4F 0x67C8 +0x22E50 0x67D2 +0x22E51 0x67D9 +0x22E52 0x67DB +0x22E53 0x67F0 +0x22E54 0x67F7 +0x22E55 0x2344A +0x22E56 0x23451 +0x22E57 0x2344B +0x22E58 0x6818 +0x22E59 0x681F +0x22E5A 0x682D +0x22E5B 0x23465 +0x22E5C 0x6833 +0x22E5D 0x683B +0x22E5E 0x683E +0x22E5F 0x6844 +0x22E60 0x6845 +0x22E61 0x6849 +0x22E62 0x684C +0x22E63 0x6855 +0x22E64 0x6857 +0x22E65 0x3B77 +0x22E66 0x686B +0x22E67 0x686E +0x22E68 0x687A +0x22E69 0x687C +0x22E6A 0x6882 +0x22E6B 0x6890 +0x22E6C 0x6896 +0x22E6D 0x3B6D +0x22E6E 0x6898 +0x22E6F 0x6899 +0x22E70 0x689A +0x22E71 0x689C +0x22E72 0x68AA +0x22E73 0x68AB +0x22E74 0x68B4 +0x22E75 0x68BB +0x22E76 0x68FB +0x22E77 0x234E4 +0x22E78 0x2355A +0x22E79 0xFA13 +0x22E7A 0x68C3 +0x22E7B 0x68C5 +0x22E7C 0x68CC +0x22E7D 0x68CF +0x22E7E 0x68D6 +0x22F21 0x68D9 +0x22F22 0x68E4 +0x22F23 0x68E5 +0x22F24 0x68EC +0x22F25 0x68F7 +0x22F26 0x6903 +0x22F27 0x6907 +0x22F28 0x3B87 +0x22F29 0x3B88 +0x22F2A 0x23594 +0x22F2B 0x693B +0x22F2C 0x3B8D +0x22F2D 0x6946 +0x22F2E 0x6969 +0x22F2F 0x696C +0x22F30 0x6972 +0x22F31 0x697A +0x22F32 0x697F +0x22F33 0x6992 +0x22F34 0x3BA4 +0x22F35 0x6996 +0x22F36 0x6998 +0x22F37 0x69A6 +0x22F38 0x69B0 +0x22F39 0x69B7 +0x22F3A 0x69BA +0x22F3B 0x69BC +0x22F3C 0x69C0 +0x22F3D 0x69D1 +0x22F3E 0x69D6 +0x22F3F 0x23639 +0x22F40 0x23647 +0x22F41 0x6A30 +0x22F42 0x23638 +0x22F43 0x2363A +0x22F44 0x69E3 +0x22F45 0x69EE +0x22F46 0x69EF +0x22F47 0x69F3 +0x22F48 0x3BCD +0x22F49 0x69F4 +0x22F4A 0x69FE +0x22F4B 0x6A11 +0x22F4C 0x6A1A +0x22F4D 0x6A1D +0x22F4E 0x2371C +0x22F4F 0x6A32 +0x22F50 0x6A33 +0x22F51 0x6A34 +0x22F52 0x6A3F +0x22F53 0x6A46 +0x22F54 0x6A49 +0x22F55 0x6A7A +0x22F56 0x6A4E +0x22F57 0x6A52 +0x22F58 0x6A64 +0x22F59 0x2370C +0x22F5A 0x6A7E +0x22F5B 0x6A83 +0x22F5C 0x6A8B +0x22F5D 0x3BF0 +0x22F5E 0x6A91 +0x22F5F 0x6A9F +0x22F60 0x6AA1 +0x22F61 0x23764 +0x22F62 0x6AAB +0x22F63 0x6ABD +0x22F64 0x6AC6 +0x22F65 0x6AD4 +0x22F66 0x6AD0 +0x22F67 0x6ADC +0x22F68 0x6ADD +0x22F69 0x237FF +0x22F6A 0x237E7 +0x22F6B 0x6AEC +0x22F6C 0x6AF1 +0x22F6D 0x6AF2 +0x22F6E 0x6AF3 +0x22F6F 0x6AFD +0x22F70 0x23824 +0x22F71 0x6B0B +0x22F72 0x6B0F +0x22F73 0x6B10 +0x22F74 0x6B11 +0x22F75 0x2383D +0x22F76 0x6B17 +0x22F77 0x3C26 +0x22F78 0x6B2F +0x22F79 0x6B4A +0x22F7A 0x6B58 +0x22F7B 0x6B6C +0x22F7C 0x6B75 +0x22F7D 0x6B7A +0x22F7E 0x6B81 +0x26E21 0x6B9B +0x26E22 0x6BAE +0x26E23 0x23A98 +0x26E24 0x6BBD +0x26E25 0x6BBE +0x26E26 0x6BC7 +0x26E27 0x6BC8 +0x26E28 0x6BC9 +0x26E29 0x6BDA +0x26E2A 0x6BE6 +0x26E2B 0x6BE7 +0x26E2C 0x6BEE +0x26E2D 0x6BF1 +0x26E2E 0x6C02 +0x26E2F 0x6C0A +0x26E30 0x6C0E +0x26E31 0x6C35 +0x26E32 0x6C36 +0x26E33 0x6C3A +0x26E34 0x23C7F +0x26E35 0x6C3F +0x26E36 0x6C4D +0x26E37 0x6C5B +0x26E38 0x6C6D +0x26E39 0x6C84 +0x26E3A 0x6C89 +0x26E3B 0x3CC3 +0x26E3C 0x6C94 +0x26E3D 0x6C95 +0x26E3E 0x6C97 +0x26E3F 0x6CAD +0x26E40 0x6CC2 +0x26E41 0x6CD0 +0x26E42 0x3CD2 +0x26E43 0x6CD6 +0x26E44 0x6CDA +0x26E45 0x6CDC +0x26E46 0x6CE9 +0x26E47 0x6CEC +0x26E48 0x6CED +0x26E49 0x23D00 +0x26E4A 0x6D00 +0x26E4B 0x6D0A +0x26E4C 0x6D24 +0x26E4D 0x6D26 +0x26E4E 0x6D27 +0x26E4F 0x6C67 +0x26E50 0x6D2F +0x26E51 0x6D3C +0x26E52 0x6D5B +0x26E53 0x6D5E +0x26E54 0x6D60 +0x26E55 0x6D70 +0x26E56 0x6D80 +0x26E57 0x6D81 +0x26E58 0x6D8A +0x26E59 0x6D8D +0x26E5A 0x6D91 +0x26E5B 0x6D98 +0x26E5C 0x23D40 +0x26E5D 0x6E17 +0x26E5E 0x23DFA +0x26E5F 0x23DF9 +0x26E60 0x23DD3 +0x26E61 0x6DAB +0x26E62 0x6DAE +0x26E63 0x6DB4 +0x26E64 0x6DC2 +0x26E65 0x6D34 +0x26E66 0x6DC8 +0x26E67 0x6DCE +0x26E68 0x6DCF +0x26E69 0x6DD0 +0x26E6A 0x6DDF +0x26E6B 0x6DE9 +0x26E6C 0x6DF6 +0x26E6D 0x6E36 +0x26E6E 0x6E1E +0x26E6F 0x6E22 +0x26E70 0x6E27 +0x26E71 0x3D11 +0x26E72 0x6E32 +0x26E73 0x6E3C +0x26E74 0x6E48 +0x26E75 0x6E49 +0x26E76 0x6E4B +0x26E77 0x6E4C +0x26E78 0x6E4F +0x26E79 0x6E51 +0x26E7A 0x6E53 +0x26E7B 0x6E54 +0x26E7C 0x6E57 +0x26E7D 0x6E63 +0x26E7E 0x3D1E +0x26F21 0x6E93 +0x26F22 0x6EA7 +0x26F23 0x6EB4 +0x26F24 0x6EBF +0x26F25 0x6EC3 +0x26F26 0x6ECA +0x26F27 0x6ED9 +0x26F28 0x6F35 +0x26F29 0x6EEB +0x26F2A 0x6EF9 +0x26F2B 0x6EFB +0x26F2C 0x6F0A +0x26F2D 0x6F0C +0x26F2E 0x6F18 +0x26F2F 0x6F25 +0x26F30 0x6F36 +0x26F31 0x6F3C +0x26F32 0x23F7E +0x26F33 0x6F52 +0x26F34 0x6F57 +0x26F35 0x6F5A +0x26F36 0x6F60 +0x26F37 0x6F68 +0x26F38 0x6F98 +0x26F39 0x6F7D +0x26F3A 0x6F90 +0x26F3B 0x6F96 +0x26F3C 0x6FBE +0x26F3D 0x6F9F +0x26F3E 0x6FA5 +0x26F3F 0x6FAF +0x26F40 0x3D64 +0x26F41 0x6FB5 +0x26F42 0x6FC8 +0x26F43 0x6FC9 +0x26F44 0x6FDA +0x26F45 0x6FDE +0x26F46 0x6FE9 +0x26F47 0x24096 +0x26F48 0x6FFC +0x26F49 0x7000 +0x26F4A 0x7007 +0x26F4B 0x700A +0x26F4C 0x7023 +0x26F4D 0x24103 +0x26F4E 0x7039 +0x26F4F 0x703A +0x26F50 0x703C +0x26F51 0x7043 +0x26F52 0x7047 +0x26F53 0x704B +0x26F54 0x3D9A +0x26F55 0x7054 +0x26F56 0x7065 +0x26F57 0x7069 +0x26F58 0x706C +0x26F59 0x706E +0x26F5A 0x7076 +0x26F5B 0x707E +0x26F5C 0x7081 +0x26F5D 0x7086 +0x26F5E 0x7095 +0x26F5F 0x7097 +0x26F60 0x70BB +0x26F61 0x241C6 +0x26F62 0x709F +0x26F63 0x70B1 +0x26F64 0x241FE +0x26F65 0x70EC +0x26F66 0x70CA +0x26F67 0x70D1 +0x26F68 0x70D3 +0x26F69 0x70DC +0x26F6A 0x7103 +0x26F6B 0x7104 +0x26F6C 0x7106 +0x26F6D 0x7107 +0x26F6E 0x7108 +0x26F6F 0x710C +0x26F70 0x3DC0 +0x26F71 0x712F +0x26F72 0x7131 +0x26F73 0x7150 +0x26F74 0x714A +0x26F75 0x7153 +0x26F76 0x715E +0x26F77 0x3DD4 +0x26F78 0x7196 +0x26F79 0x7180 +0x26F7A 0x719B +0x26F7B 0x71A0 +0x26F7C 0x71A2 +0x26F7D 0x71AE +0x26F7E 0x71AF +0x27021 0x71B3 +0x27022 0x243BC +0x27023 0x71CB +0x27024 0x71D3 +0x27025 0x71D9 +0x27026 0x71DC +0x27027 0x7207 +0x27028 0x3E05 +0x27029 0xFA49 +0x2702A 0x722B +0x2702B 0x7234 +0x2702C 0x7238 +0x2702D 0x7239 +0x2702E 0x4E2C +0x2702F 0x7242 +0x27030 0x7253 +0x27031 0x7257 +0x27032 0x7263 +0x27033 0x24629 +0x27034 0x726E +0x27035 0x726F +0x27036 0x7278 +0x27037 0x727F +0x27038 0x728E +0x27039 0x246A5 +0x2703A 0x72AD +0x2703B 0x72AE +0x2703C 0x72B0 +0x2703D 0x72B1 +0x2703E 0x72C1 +0x2703F 0x3E60 +0x27040 0x72CC +0x27041 0x3E66 +0x27042 0x3E68 +0x27043 0x72F3 +0x27044 0x72FA +0x27045 0x7307 +0x27046 0x7312 +0x27047 0x7318 +0x27048 0x7319 +0x27049 0x3E83 +0x2704A 0x7339 +0x2704B 0x732C +0x2704C 0x7331 +0x2704D 0x7333 +0x2704E 0x733D +0x2704F 0x7352 +0x27050 0x3E94 +0x27051 0x736B +0x27052 0x736C +0x27053 0x24896 +0x27054 0x736E +0x27055 0x736F +0x27056 0x7371 +0x27057 0x7377 +0x27058 0x7381 +0x27059 0x7385 +0x2705A 0x738A +0x2705B 0x7394 +0x2705C 0x7398 +0x2705D 0x739C +0x2705E 0x739E +0x2705F 0x73A5 +0x27060 0x73A8 +0x27061 0x73B5 +0x27062 0x73B7 +0x27063 0x73B9 +0x27064 0x73BC +0x27065 0x73BF +0x27066 0x73C5 +0x27067 0x73CB +0x27068 0x73E1 +0x27069 0x73E7 +0x2706A 0x73F9 +0x2706B 0x7413 +0x2706C 0x73FA +0x2706D 0x7401 +0x2706E 0x7424 +0x2706F 0x7431 +0x27070 0x7439 +0x27071 0x7453 +0x27072 0x7440 +0x27073 0x7443 +0x27074 0x744D +0x27075 0x7452 +0x27076 0x745D +0x27077 0x7471 +0x27078 0x7481 +0x27079 0x7485 +0x2707A 0x7488 +0x2707B 0x24A4D +0x2707C 0x7492 +0x2707D 0x7497 +0x2707E 0x7499 +0x27121 0x74A0 +0x27122 0x74A1 +0x27123 0x74A5 +0x27124 0x74AA +0x27125 0x74AB +0x27126 0x74B9 +0x27127 0x74BB +0x27128 0x74BA +0x27129 0x74D6 +0x2712A 0x74D8 +0x2712B 0x74DE +0x2712C 0x74EF +0x2712D 0x74EB +0x2712E 0x24B56 +0x2712F 0x74FA +0x27130 0x24B6F +0x27131 0x7520 +0x27132 0x7524 +0x27133 0x752A +0x27134 0x3F57 +0x27135 0x24C16 +0x27136 0x753D +0x27137 0x753E +0x27138 0x7540 +0x27139 0x7548 +0x2713A 0x754E +0x2713B 0x7550 +0x2713C 0x7552 +0x2713D 0x756C +0x2713E 0x7572 +0x2713F 0x7571 +0x27140 0x757A +0x27141 0x757D +0x27142 0x757E +0x27143 0x7581 +0x27144 0x24D14 +0x27145 0x758C +0x27146 0x3F75 +0x27147 0x75A2 +0x27148 0x3F77 +0x27149 0x75B0 +0x2714A 0x75B7 +0x2714B 0x75BF +0x2714C 0x75C0 +0x2714D 0x75C6 +0x2714E 0x75CF +0x2714F 0x75D3 +0x27150 0x75DD +0x27151 0x75DF +0x27152 0x75E0 +0x27153 0x75E7 +0x27154 0x75EC +0x27155 0x75EE +0x27156 0x75F1 +0x27157 0x75F9 +0x27158 0x7603 +0x27159 0x7618 +0x2715A 0x7607 +0x2715B 0x760F +0x2715C 0x3FAE +0x2715D 0x24E0E +0x2715E 0x7613 +0x2715F 0x761B +0x27160 0x761C +0x27161 0x24E37 +0x27162 0x7625 +0x27163 0x7628 +0x27164 0x763C +0x27165 0x7633 +0x27166 0x24E6A +0x27167 0x3FC9 +0x27168 0x7641 +0x27169 0x24E8B +0x2716A 0x7649 +0x2716B 0x7655 +0x2716C 0x3FD7 +0x2716D 0x766E +0x2716E 0x7695 +0x2716F 0x769C +0x27170 0x76A1 +0x27171 0x76A0 +0x27172 0x76A7 +0x27173 0x76A8 +0x27174 0x76AF +0x27175 0x2504A +0x27176 0x76C9 +0x27177 0x25055 +0x27178 0x76E8 +0x27179 0x76EC +0x2717A 0x25122 +0x2717B 0x7717 +0x2717C 0x771A +0x2717D 0x772D +0x2717E 0x7735 +0x27221 0x251A9 +0x27222 0x4039 +0x27223 0x251E5 +0x27224 0x251CD +0x27225 0x7758 +0x27226 0x7760 +0x27227 0x776A +0x27228 0x2521E +0x27229 0x7772 +0x2722A 0x777C +0x2722B 0x777D +0x2722C 0x2524C +0x2722D 0x4058 +0x2722E 0x779A +0x2722F 0x779F +0x27230 0x77A2 +0x27231 0x77A4 +0x27232 0x77A9 +0x27233 0x77DE +0x27234 0x77DF +0x27235 0x77E4 +0x27236 0x77E6 +0x27237 0x77EA +0x27238 0x77EC +0x27239 0x4093 +0x2723A 0x77F0 +0x2723B 0x77F4 +0x2723C 0x77FB +0x2723D 0x2542E +0x2723E 0x7805 +0x2723F 0x7806 +0x27240 0x7809 +0x27241 0x780D +0x27242 0x7819 +0x27243 0x7821 +0x27244 0x782C +0x27245 0x7847 +0x27246 0x7864 +0x27247 0x786A +0x27248 0x254D9 +0x27249 0x788A +0x2724A 0x7894 +0x2724B 0x78A4 +0x2724C 0x789D +0x2724D 0x789E +0x2724E 0x789F +0x2724F 0x78BB +0x27250 0x78C8 +0x27251 0x78CC +0x27252 0x78CE +0x27253 0x78D5 +0x27254 0x78E0 +0x27255 0x78E1 +0x27256 0x78E6 +0x27257 0x78F9 +0x27258 0x78FA +0x27259 0x78FB +0x2725A 0x78FE +0x2725B 0x255A7 +0x2725C 0x7910 +0x2725D 0x791B +0x2725E 0x7930 +0x2725F 0x7925 +0x27260 0x793B +0x27261 0x794A +0x27262 0x7958 +0x27263 0x795B +0x27264 0x4105 +0x27265 0x7967 +0x27266 0x7972 +0x27267 0x7994 +0x27268 0x7995 +0x27269 0x7996 +0x2726A 0x799B +0x2726B 0x79A1 +0x2726C 0x79A9 +0x2726D 0x79B4 +0x2726E 0x79BB +0x2726F 0x79C2 +0x27270 0x79C7 +0x27271 0x79CC +0x27272 0x79CD +0x27273 0x79D6 +0x27274 0x4148 +0x27275 0x257A9 +0x27276 0x257B4 +0x27277 0x414F +0x27278 0x7A0A +0x27279 0x7A11 +0x2727A 0x7A15 +0x2727B 0x7A1B +0x2727C 0x7A1E +0x2727D 0x4163 +0x2727E 0x7A2D +0x27321 0x7A38 +0x27322 0x7A47 +0x27323 0x7A4C +0x27324 0x7A56 +0x27325 0x7A59 +0x27326 0x7A5C +0x27327 0x7A5F +0x27328 0x7A60 +0x27329 0x7A67 +0x2732A 0x7A6A +0x2732B 0x7A75 +0x2732C 0x7A78 +0x2732D 0x7A82 +0x2732E 0x7A8A +0x2732F 0x7A90 +0x27330 0x7AA3 +0x27331 0x7AAC +0x27332 0x259D4 +0x27333 0x41B4 +0x27334 0x7AB9 +0x27335 0x7ABC +0x27336 0x7ABE +0x27337 0x41BF +0x27338 0x7ACC +0x27339 0x7AD1 +0x2733A 0x7AE7 +0x2733B 0x7AE8 +0x2733C 0x7AF4 +0x2733D 0x25AE4 +0x2733E 0x25AE3 +0x2733F 0x7B07 +0x27340 0x25AF1 +0x27341 0x7B3D +0x27342 0x7B27 +0x27343 0x7B2A +0x27344 0x7B2E +0x27345 0x7B2F +0x27346 0x7B31 +0x27347 0x41E6 +0x27348 0x41F3 +0x27349 0x7B7F +0x2734A 0x7B41 +0x2734B 0x41EE +0x2734C 0x7B55 +0x2734D 0x7B79 +0x2734E 0x7B64 +0x2734F 0x7B66 +0x27350 0x7B69 +0x27351 0x7B73 +0x27352 0x25BB2 +0x27353 0x4207 +0x27354 0x7B90 +0x27355 0x7B91 +0x27356 0x7B9B +0x27357 0x420E +0x27358 0x7BAF +0x27359 0x7BB5 +0x2735A 0x7BBC +0x2735B 0x7BC5 +0x2735C 0x7BCA +0x2735D 0x25C4B +0x2735E 0x25C64 +0x2735F 0x7BD4 +0x27360 0x7BD6 +0x27361 0x7BDA +0x27362 0x7BEA +0x27363 0x7BF0 +0x27364 0x7C03 +0x27365 0x7C0B +0x27366 0x7C0E +0x27367 0x7C0F +0x27368 0x7C26 +0x27369 0x7C45 +0x2736A 0x7C4A +0x2736B 0x7C51 +0x2736C 0x7C57 +0x2736D 0x7C5E +0x2736E 0x7C61 +0x2736F 0x7C69 +0x27370 0x7C6E +0x27371 0x7C6F +0x27372 0x7C70 +0x27373 0x25E2E +0x27374 0x25E56 +0x27375 0x25E65 +0x27376 0x7CA6 +0x27377 0x25E62 +0x27378 0x7CB6 +0x27379 0x7CB7 +0x2737A 0x7CBF +0x2737B 0x25ED8 +0x2737C 0x7CC4 +0x2737D 0x25EC2 +0x2737E 0x7CC8 +0x27421 0x7CCD +0x27422 0x25EE8 +0x27423 0x7CD7 +0x27424 0x25F23 +0x27425 0x7CE6 +0x27426 0x7CEB +0x27427 0x25F5C +0x27428 0x7CF5 +0x27429 0x7D03 +0x2742A 0x7D09 +0x2742B 0x42C6 +0x2742C 0x7D12 +0x2742D 0x7D1E +0x2742E 0x25FE0 +0x2742F 0x25FD4 +0x27430 0x7D3D +0x27431 0x7D3E +0x27432 0x7D40 +0x27433 0x7D47 +0x27434 0x2600C +0x27435 0x25FFB +0x27436 0x42D6 +0x27437 0x7D59 +0x27438 0x7D5A +0x27439 0x7D6A +0x2743A 0x7D70 +0x2743B 0x42DD +0x2743C 0x7D7F +0x2743D 0x26017 +0x2743E 0x7D86 +0x2743F 0x7D88 +0x27440 0x7D8C +0x27441 0x7D97 +0x27442 0x26060 +0x27443 0x7D9D +0x27444 0x7DA7 +0x27445 0x7DAA +0x27446 0x7DB6 +0x27447 0x7DB7 +0x27448 0x7DC0 +0x27449 0x7DD7 +0x2744A 0x7DD9 +0x2744B 0x7DE6 +0x2744C 0x7DF1 +0x2744D 0x7DF9 +0x2744E 0x4302 +0x2744F 0x260ED +0x27450 0xFA58 +0x27451 0x7E10 +0x27452 0x7E17 +0x27453 0x7E1D +0x27454 0x7E20 +0x27455 0x7E27 +0x27456 0x7E2C +0x27457 0x7E45 +0x27458 0x7E73 +0x27459 0x7E75 +0x2745A 0x7E7E +0x2745B 0x7E86 +0x2745C 0x7E87 +0x2745D 0x432B +0x2745E 0x7E91 +0x2745F 0x7E98 +0x27460 0x7E9A +0x27461 0x4343 +0x27462 0x7F3C +0x27463 0x7F3B +0x27464 0x7F3E +0x27465 0x7F43 +0x27466 0x7F44 +0x27467 0x7F4F +0x27468 0x34C1 +0x27469 0x26270 +0x2746A 0x7F52 +0x2746B 0x26286 +0x2746C 0x7F61 +0x2746D 0x7F63 +0x2746E 0x7F64 +0x2746F 0x7F6D +0x27470 0x7F7D +0x27471 0x7F7E +0x27472 0x2634C +0x27473 0x7F90 +0x27474 0x517B +0x27475 0x23D0E +0x27476 0x7F96 +0x27477 0x7F9C +0x27478 0x7FAD +0x27479 0x26402 +0x2747A 0x7FC3 +0x2747B 0x7FCF +0x2747C 0x7FE3 +0x2747D 0x7FE5 +0x2747E 0x7FEF +0x27521 0x7FF2 +0x27522 0x8002 +0x27523 0x800A +0x27524 0x8008 +0x27525 0x800E +0x27526 0x8011 +0x27527 0x8016 +0x27528 0x8024 +0x27529 0x802C +0x2752A 0x8030 +0x2752B 0x8043 +0x2752C 0x8066 +0x2752D 0x8071 +0x2752E 0x8075 +0x2752F 0x807B +0x27530 0x8099 +0x27531 0x809C +0x27532 0x80A4 +0x27533 0x80A7 +0x27534 0x80B8 +0x27535 0x2667E +0x27536 0x80C5 +0x27537 0x80D5 +0x27538 0x80D8 +0x27539 0x80E6 +0x2753A 0x266B0 +0x2753B 0x810D +0x2753C 0x80F5 +0x2753D 0x80FB +0x2753E 0x43EE +0x2753F 0x8135 +0x27540 0x8116 +0x27541 0x811E +0x27542 0x43F0 +0x27543 0x8124 +0x27544 0x8127 +0x27545 0x812C +0x27546 0x2671D +0x27547 0x813D +0x27548 0x4408 +0x27549 0x8169 +0x2754A 0x4417 +0x2754B 0x8181 +0x2754C 0x441C +0x2754D 0x8184 +0x2754E 0x8185 +0x2754F 0x4422 +0x27550 0x8198 +0x27551 0x81B2 +0x27552 0x81C1 +0x27553 0x81C3 +0x27554 0x81D6 +0x27555 0x81DB +0x27556 0x268DD +0x27557 0x81E4 +0x27558 0x268EA +0x27559 0x81EC +0x2755A 0x26951 +0x2755B 0x81FD +0x2755C 0x81FF +0x2755D 0x2696F +0x2755E 0x8204 +0x2755F 0x269DD +0x27560 0x8219 +0x27561 0x8221 +0x27562 0x8222 +0x27563 0x26A1E +0x27564 0x8232 +0x27565 0x8234 +0x27566 0x823C +0x27567 0x8246 +0x27568 0x8249 +0x27569 0x8245 +0x2756A 0x26A58 +0x2756B 0x824B +0x2756C 0x4476 +0x2756D 0x824F +0x2756E 0x447A +0x2756F 0x8257 +0x27570 0x26A8C +0x27571 0x825C +0x27572 0x8263 +0x27573 0x26AB7 +0x27574 0xFA5D +0x27575 0xFA5E +0x27576 0x8279 +0x27577 0x4491 +0x27578 0x827D +0x27579 0x827F +0x2757A 0x8283 +0x2757B 0x828A +0x2757C 0x8293 +0x2757D 0x82A7 +0x2757E 0x82A8 +0x27621 0x82B2 +0x27622 0x82B4 +0x27623 0x82BA +0x27624 0x82BC +0x27625 0x82E2 +0x27626 0x82E8 +0x27627 0x82F7 +0x27628 0x8307 +0x27629 0x8308 +0x2762A 0x830C +0x2762B 0x8354 +0x2762C 0x831B +0x2762D 0x831D +0x2762E 0x8330 +0x2762F 0x833C +0x27630 0x8344 +0x27631 0x8357 +0x27632 0x44BE +0x27633 0x837F +0x27634 0x44D4 +0x27635 0x44B3 +0x27636 0x838D +0x27637 0x8394 +0x27638 0x8395 +0x27639 0x839B +0x2763A 0x839D +0x2763B 0x83C9 +0x2763C 0x83D0 +0x2763D 0x83D4 +0x2763E 0x83DD +0x2763F 0x83E5 +0x27640 0x83F9 +0x27641 0x840F +0x27642 0x8411 +0x27643 0x8415 +0x27644 0x26C73 +0x27645 0x8417 +0x27646 0x8439 +0x27647 0x844A +0x27648 0x844F +0x27649 0x8451 +0x2764A 0x8452 +0x2764B 0x8459 +0x2764C 0x845A +0x2764D 0x845C +0x2764E 0x26CDD +0x2764F 0x8465 +0x27650 0x8476 +0x27651 0x8478 +0x27652 0x847C +0x27653 0x8481 +0x27654 0x450D +0x27655 0x84DC +0x27656 0x8497 +0x27657 0x84A6 +0x27658 0x84BE +0x27659 0x4508 +0x2765A 0x84CE +0x2765B 0x84CF +0x2765C 0x84D3 +0x2765D 0x26E65 +0x2765E 0x84E7 +0x2765F 0x84EA +0x27660 0x84EF +0x27661 0x84F0 +0x27662 0x84F1 +0x27663 0x84FA +0x27664 0x84FD +0x27665 0x850C +0x27666 0x851B +0x27667 0x8524 +0x27668 0x8525 +0x27669 0x852B +0x2766A 0x8534 +0x2766B 0x854F +0x2766C 0x856F +0x2766D 0x4525 +0x2766E 0x4543 +0x2766F 0x853E +0x27670 0x8551 +0x27671 0x8553 +0x27672 0x855E +0x27673 0x8561 +0x27674 0x8562 +0x27675 0x26F94 +0x27676 0x857B +0x27677 0x857D +0x27678 0x857F +0x27679 0x8581 +0x2767A 0x8586 +0x2767B 0x8593 +0x2767C 0x859D +0x2767D 0x859F +0x2767E 0x26FF8 +0x27721 0x26FF6 +0x27722 0x26FF7 +0x27723 0x85B7 +0x27724 0x85BC +0x27725 0x85C7 +0x27726 0x85CA +0x27727 0x85D8 +0x27728 0x85D9 +0x27729 0x85DF +0x2772A 0x85E1 +0x2772B 0x85E6 +0x2772C 0x85F6 +0x2772D 0x8600 +0x2772E 0x8611 +0x2772F 0x861E +0x27730 0x8621 +0x27731 0x8624 +0x27732 0x8627 +0x27733 0x2710D +0x27734 0x8639 +0x27735 0x863C +0x27736 0x27139 +0x27737 0x8640 +0x27738 0xFA20 +0x27739 0x8653 +0x2773A 0x8656 +0x2773B 0x866F +0x2773C 0x8677 +0x2773D 0x867A +0x2773E 0x8687 +0x2773F 0x8689 +0x27740 0x868D +0x27741 0x8691 +0x27742 0x869C +0x27743 0x869D +0x27744 0x86A8 +0x27745 0xFA21 +0x27746 0x86B1 +0x27747 0x86B3 +0x27748 0x86C1 +0x27749 0x86C3 +0x2774A 0x86D1 +0x2774B 0x86D5 +0x2774C 0x86D7 +0x2774D 0x86E3 +0x2774E 0x86E6 +0x2774F 0x45B8 +0x27750 0x8705 +0x27751 0x8707 +0x27752 0x870E +0x27753 0x8710 +0x27754 0x8713 +0x27755 0x8719 +0x27756 0x871F +0x27757 0x8721 +0x27758 0x8723 +0x27759 0x8731 +0x2775A 0x873A +0x2775B 0x873E +0x2775C 0x8740 +0x2775D 0x8743 +0x2775E 0x8751 +0x2775F 0x8758 +0x27760 0x8764 +0x27761 0x8765 +0x27762 0x8772 +0x27763 0x877C +0x27764 0x273DB +0x27765 0x273DA +0x27766 0x87A7 +0x27767 0x8789 +0x27768 0x878B +0x27769 0x8793 +0x2776A 0x87A0 +0x2776B 0x273FE +0x2776C 0x45E5 +0x2776D 0x87BE +0x2776E 0x27410 +0x2776F 0x87C1 +0x27770 0x87CE +0x27771 0x87F5 +0x27772 0x87DF +0x27773 0x27449 +0x27774 0x87E3 +0x27775 0x87E5 +0x27776 0x87E6 +0x27777 0x87EA +0x27778 0x87EB +0x27779 0x87ED +0x2777A 0x8801 +0x2777B 0x8803 +0x2777C 0x880B +0x2777D 0x8813 +0x2777E 0x8828 +0x27821 0x882E +0x27822 0x8832 +0x27823 0x883C +0x27824 0x460F +0x27825 0x884A +0x27826 0x8858 +0x27827 0x885F +0x27828 0x8864 +0x27829 0x27615 +0x2782A 0x27614 +0x2782B 0x8869 +0x2782C 0x27631 +0x2782D 0x886F +0x2782E 0x88A0 +0x2782F 0x88BC +0x27830 0x88BD +0x27831 0x88BE +0x27832 0x88C0 +0x27833 0x88D2 +0x27834 0x27693 +0x27835 0x88D1 +0x27836 0x88D3 +0x27837 0x88DB +0x27838 0x88F0 +0x27839 0x88F1 +0x2783A 0x4641 +0x2783B 0x8901 +0x2783C 0x2770E +0x2783D 0x8937 +0x2783E 0x27723 +0x2783F 0x8942 +0x27840 0x8945 +0x27841 0x8949 +0x27842 0x27752 +0x27843 0x4665 +0x27844 0x8962 +0x27845 0x8980 +0x27846 0x8989 +0x27847 0x8990 +0x27848 0x899F +0x27849 0x89B0 +0x2784A 0x89B7 +0x2784B 0x89D6 +0x2784C 0x89D8 +0x2784D 0x89EB +0x2784E 0x46A1 +0x2784F 0x89F1 +0x27850 0x89F3 +0x27851 0x89FD +0x27852 0x89FF +0x27853 0x46AF +0x27854 0x8A11 +0x27855 0x8A14 +0x27856 0x27985 +0x27857 0x8A21 +0x27858 0x8A35 +0x27859 0x8A3E +0x2785A 0x8A45 +0x2785B 0x8A4D +0x2785C 0x8A58 +0x2785D 0x8AAE +0x2785E 0x8A90 +0x2785F 0x8AB7 +0x27860 0x8ABE +0x27861 0x8AD7 +0x27862 0x8AFC +0x27863 0x27A84 +0x27864 0x8B0A +0x27865 0x8B05 +0x27866 0x8B0D +0x27867 0x8B1C +0x27868 0x8B1F +0x27869 0x8B2D +0x2786A 0x8B43 +0x2786B 0x470C +0x2786C 0x8B51 +0x2786D 0x8B5E +0x2786E 0x8B76 +0x2786F 0x8B7F +0x27870 0x8B81 +0x27871 0x8B8B +0x27872 0x8B94 +0x27873 0x8B95 +0x27874 0x8B9C +0x27875 0x8B9E +0x27876 0x8C39 +0x27877 0x27BB3 +0x27878 0x8C3D +0x27879 0x27BBE +0x2787A 0x27BC7 +0x2787B 0x8C45 +0x2787C 0x8C47 +0x2787D 0x8C4F +0x2787E 0x8C54 +0x27921 0x8C57 +0x27922 0x8C69 +0x27923 0x8C6D +0x27924 0x8C73 +0x27925 0x27CB8 +0x27926 0x8C93 +0x27927 0x8C92 +0x27928 0x8C99 +0x27929 0x4764 +0x2792A 0x8C9B +0x2792B 0x8CA4 +0x2792C 0x8CD6 +0x2792D 0x8CD5 +0x2792E 0x8CD9 +0x2792F 0x27DA0 +0x27930 0x8CF0 +0x27931 0x8CF1 +0x27932 0x27E10 +0x27933 0x8D09 +0x27934 0x8D0E +0x27935 0x8D6C +0x27936 0x8D84 +0x27937 0x8D95 +0x27938 0x8DA6 +0x27939 0x27FB7 +0x2793A 0x8DC6 +0x2793B 0x8DC8 +0x2793C 0x8DD9 +0x2793D 0x8DEC +0x2793E 0x8E0C +0x2793F 0x47FD +0x27940 0x8DFD +0x27941 0x8E06 +0x27942 0x2808A +0x27943 0x8E14 +0x27944 0x8E16 +0x27945 0x8E21 +0x27946 0x8E22 +0x27947 0x8E27 +0x27948 0x280BB +0x27949 0x4816 +0x2794A 0x8E36 +0x2794B 0x8E39 +0x2794C 0x8E4B +0x2794D 0x8E54 +0x2794E 0x8E62 +0x2794F 0x8E6C +0x27950 0x8E6D +0x27951 0x8E6F +0x27952 0x8E98 +0x27953 0x8E9E +0x27954 0x8EAE +0x27955 0x8EB3 +0x27956 0x8EB5 +0x27957 0x8EB6 +0x27958 0x8EBB +0x27959 0x28282 +0x2795A 0x8ED1 +0x2795B 0x8ED4 +0x2795C 0x484E +0x2795D 0x8EF9 +0x2795E 0x282F3 +0x2795F 0x8F00 +0x27960 0x8F08 +0x27961 0x8F17 +0x27962 0x8F2B +0x27963 0x8F40 +0x27964 0x8F4A +0x27965 0x8F58 +0x27966 0x2840C +0x27967 0x8FA4 +0x27968 0x8FB4 +0x27969 0xFA66 +0x2796A 0x8FB6 +0x2796B 0x28455 +0x2796C 0x8FC1 +0x2796D 0x8FC6 +0x2796E 0xFA24 +0x2796F 0x8FCA +0x27970 0x8FCD +0x27971 0x8FD3 +0x27972 0x8FD5 +0x27973 0x8FE0 +0x27974 0x8FF1 +0x27975 0x8FF5 +0x27976 0x8FFB +0x27977 0x9002 +0x27978 0x900C +0x27979 0x9037 +0x2797A 0x2856B +0x2797B 0x9043 +0x2797C 0x9044 +0x2797D 0x905D +0x2797E 0x285C8 +0x27A21 0x285C9 +0x27A22 0x9085 +0x27A23 0x908C +0x27A24 0x9090 +0x27A25 0x961D +0x27A26 0x90A1 +0x27A27 0x48B5 +0x27A28 0x90B0 +0x27A29 0x90B6 +0x27A2A 0x90C3 +0x27A2B 0x90C8 +0x27A2C 0x286D7 +0x27A2D 0x90DC +0x27A2E 0x90DF +0x27A2F 0x286FA +0x27A30 0x90F6 +0x27A31 0x90F2 +0x27A32 0x9100 +0x27A33 0x90EB +0x27A34 0x90FE +0x27A35 0x90FF +0x27A36 0x9104 +0x27A37 0x9106 +0x27A38 0x9118 +0x27A39 0x911C +0x27A3A 0x911E +0x27A3B 0x9137 +0x27A3C 0x9139 +0x27A3D 0x913A +0x27A3E 0x9146 +0x27A3F 0x9147 +0x27A40 0x9157 +0x27A41 0x9159 +0x27A42 0x9161 +0x27A43 0x9164 +0x27A44 0x9174 +0x27A45 0x9179 +0x27A46 0x9185 +0x27A47 0x918E +0x27A48 0x91A8 +0x27A49 0x91AE +0x27A4A 0x91B3 +0x27A4B 0x91B6 +0x27A4C 0x91C3 +0x27A4D 0x91C4 +0x27A4E 0x91DA +0x27A4F 0x28949 +0x27A50 0x28946 +0x27A51 0x91EC +0x27A52 0x91EE +0x27A53 0x9201 +0x27A54 0x920A +0x27A55 0x9216 +0x27A56 0x9217 +0x27A57 0x2896B +0x27A58 0x9233 +0x27A59 0x9242 +0x27A5A 0x9247 +0x27A5B 0x924A +0x27A5C 0x924E +0x27A5D 0x9251 +0x27A5E 0x9256 +0x27A5F 0x9259 +0x27A60 0x9260 +0x27A61 0x9261 +0x27A62 0x9265 +0x27A63 0x9267 +0x27A64 0x9268 +0x27A65 0x28987 +0x27A66 0x28988 +0x27A67 0x927C +0x27A68 0x927D +0x27A69 0x927F +0x27A6A 0x9289 +0x27A6B 0x928D +0x27A6C 0x9297 +0x27A6D 0x9299 +0x27A6E 0x929F +0x27A6F 0x92A7 +0x27A70 0x92AB +0x27A71 0x289BA +0x27A72 0x289BB +0x27A73 0x92B2 +0x27A74 0x92BF +0x27A75 0x92C0 +0x27A76 0x92C6 +0x27A77 0x92CE +0x27A78 0x92D0 +0x27A79 0x92D7 +0x27A7A 0x92D9 +0x27A7B 0x92E5 +0x27A7C 0x92E7 +0x27A7D 0x9311 +0x27A7E 0x28A1E +0x27B21 0x28A29 +0x27B22 0x92F7 +0x27B23 0x92F9 +0x27B24 0x92FB +0x27B25 0x9302 +0x27B26 0x930D +0x27B27 0x9315 +0x27B28 0x931D +0x27B29 0x931E +0x27B2A 0x9327 +0x27B2B 0x9329 +0x27B2C 0x28A71 +0x27B2D 0x28A43 +0x27B2E 0x9347 +0x27B2F 0x9351 +0x27B30 0x9357 +0x27B31 0x935A +0x27B32 0x936B +0x27B33 0x9371 +0x27B34 0x9373 +0x27B35 0x93A1 +0x27B36 0x28A99 +0x27B37 0x28ACD +0x27B38 0x9388 +0x27B39 0x938B +0x27B3A 0x938F +0x27B3B 0x939E +0x27B3C 0x93F5 +0x27B3D 0x28AE4 +0x27B3E 0x28ADD +0x27B3F 0x93F1 +0x27B40 0x93C1 +0x27B41 0x93C7 +0x27B42 0x93DC +0x27B43 0x93E2 +0x27B44 0x93E7 +0x27B45 0x9409 +0x27B46 0x940F +0x27B47 0x9416 +0x27B48 0x9417 +0x27B49 0x93FB +0x27B4A 0x9432 +0x27B4B 0x9434 +0x27B4C 0x943B +0x27B4D 0x9445 +0x27B4E 0x28BC1 +0x27B4F 0x28BEF +0x27B50 0x946D +0x27B51 0x946F +0x27B52 0x9578 +0x27B53 0x9579 +0x27B54 0x9586 +0x27B55 0x958C +0x27B56 0x958D +0x27B57 0x28D10 +0x27B58 0x95AB +0x27B59 0x95B4 +0x27B5A 0x28D71 +0x27B5B 0x95C8 +0x27B5C 0x28DFB +0x27B5D 0x28E1F +0x27B5E 0x962C +0x27B5F 0x9633 +0x27B60 0x9634 +0x27B61 0x28E36 +0x27B62 0x963C +0x27B63 0x9641 +0x27B64 0x9661 +0x27B65 0x28E89 +0x27B66 0x9682 +0x27B67 0x28EEB +0x27B68 0x969A +0x27B69 0x28F32 +0x27B6A 0x49E7 +0x27B6B 0x96A9 +0x27B6C 0x96AF +0x27B6D 0x96B3 +0x27B6E 0x96BA +0x27B6F 0x96BD +0x27B70 0x49FA +0x27B71 0x28FF8 +0x27B72 0x96D8 +0x27B73 0x96DA +0x27B74 0x96DD +0x27B75 0x4A04 +0x27B76 0x9714 +0x27B77 0x9723 +0x27B78 0x4A29 +0x27B79 0x9736 +0x27B7A 0x9741 +0x27B7B 0x9747 +0x27B7C 0x9755 +0x27B7D 0x9757 +0x27B7E 0x975B +0x27C21 0x976A +0x27C22 0x292A0 +0x27C23 0x292B1 +0x27C24 0x9796 +0x27C25 0x979A +0x27C26 0x979E +0x27C27 0x97A2 +0x27C28 0x97B1 +0x27C29 0x97B2 +0x27C2A 0x97BE +0x27C2B 0x97CC +0x27C2C 0x97D1 +0x27C2D 0x97D4 +0x27C2E 0x97D8 +0x27C2F 0x97D9 +0x27C30 0x97E1 +0x27C31 0x97F1 +0x27C32 0x9804 +0x27C33 0x980D +0x27C34 0x980E +0x27C35 0x9814 +0x27C36 0x9816 +0x27C37 0x4ABC +0x27C38 0x29490 +0x27C39 0x9823 +0x27C3A 0x9832 +0x27C3B 0x9833 +0x27C3C 0x9825 +0x27C3D 0x9847 +0x27C3E 0x9866 +0x27C3F 0x98AB +0x27C40 0x98AD +0x27C41 0x98B0 +0x27C42 0x295CF +0x27C43 0x98B7 +0x27C44 0x98B8 +0x27C45 0x98BB +0x27C46 0x98BC +0x27C47 0x98BF +0x27C48 0x98C2 +0x27C49 0x98C7 +0x27C4A 0x98CB +0x27C4B 0x98E0 +0x27C4C 0x2967F +0x27C4D 0x98E1 +0x27C4E 0x98E3 +0x27C4F 0x98E5 +0x27C50 0x98EA +0x27C51 0x98F0 +0x27C52 0x98F1 +0x27C53 0x98F3 +0x27C54 0x9908 +0x27C55 0x4B3B +0x27C56 0x296F0 +0x27C57 0x9916 +0x27C58 0x9917 +0x27C59 0x29719 +0x27C5A 0x991A +0x27C5B 0x991B +0x27C5C 0x991C +0x27C5D 0x29750 +0x27C5E 0x9931 +0x27C5F 0x9932 +0x27C60 0x9933 +0x27C61 0x993A +0x27C62 0x993B +0x27C63 0x993C +0x27C64 0x9940 +0x27C65 0x9941 +0x27C66 0x9946 +0x27C67 0x994D +0x27C68 0x994E +0x27C69 0x995C +0x27C6A 0x995F +0x27C6B 0x9960 +0x27C6C 0x99A3 +0x27C6D 0x99A6 +0x27C6E 0x99B9 +0x27C6F 0x99BD +0x27C70 0x99BF +0x27C71 0x99C3 +0x27C72 0x99C9 +0x27C73 0x99D4 +0x27C74 0x99D9 +0x27C75 0x99DE +0x27C76 0x298C6 +0x27C77 0x99F0 +0x27C78 0x99F9 +0x27C79 0x99FC +0x27C7A 0x9A0A +0x27C7B 0x9A11 +0x27C7C 0x9A16 +0x27C7D 0x9A1A +0x27C7E 0x9A20 +0x27D21 0x9A31 +0x27D22 0x9A36 +0x27D23 0x9A44 +0x27D24 0x9A4C +0x27D25 0x9A58 +0x27D26 0x4BC2 +0x27D27 0x9AAF +0x27D28 0x4BCA +0x27D29 0x9AB7 +0x27D2A 0x4BD2 +0x27D2B 0x9AB9 +0x27D2C 0x29A72 +0x27D2D 0x9AC6 +0x27D2E 0x9AD0 +0x27D2F 0x9AD2 +0x27D30 0x9AD5 +0x27D31 0x4BE8 +0x27D32 0x9ADC +0x27D33 0x9AE0 +0x27D34 0x9AE5 +0x27D35 0x9AE9 +0x27D36 0x9B03 +0x27D37 0x9B0C +0x27D38 0x9B10 +0x27D39 0x9B12 +0x27D3A 0x9B16 +0x27D3B 0x9B1C +0x27D3C 0x9B2B +0x27D3D 0x9B33 +0x27D3E 0x9B3D +0x27D3F 0x4C20 +0x27D40 0x9B4B +0x27D41 0x9B63 +0x27D42 0x9B65 +0x27D43 0x9B6B +0x27D44 0x9B6C +0x27D45 0x9B73 +0x27D46 0x9B76 +0x27D47 0x9B77 +0x27D48 0x9BA6 +0x27D49 0x9BAC +0x27D4A 0x9BB1 +0x27D4B 0x29DDB +0x27D4C 0x29E3D +0x27D4D 0x9BB2 +0x27D4E 0x9BB8 +0x27D4F 0x9BBE +0x27D50 0x9BC7 +0x27D51 0x9BF3 +0x27D52 0x9BD8 +0x27D53 0x9BDD +0x27D54 0x9BE7 +0x27D55 0x9BEA +0x27D56 0x9BEB +0x27D57 0x9BEF +0x27D58 0x9BEE +0x27D59 0x29E15 +0x27D5A 0x9BFA +0x27D5B 0x29E8A +0x27D5C 0x9BF7 +0x27D5D 0x29E49 +0x27D5E 0x9C16 +0x27D5F 0x9C18 +0x27D60 0x9C19 +0x27D61 0x9C1A +0x27D62 0x9C1D +0x27D63 0x9C22 +0x27D64 0x9C27 +0x27D65 0x9C29 +0x27D66 0x9C2A +0x27D67 0x29EC4 +0x27D68 0x9C31 +0x27D69 0x9C36 +0x27D6A 0x9C37 +0x27D6B 0x9C45 +0x27D6C 0x9C5C +0x27D6D 0x29EE9 +0x27D6E 0x9C49 +0x27D6F 0x9C4A +0x27D70 0x29EDB +0x27D71 0x9C54 +0x27D72 0x9C58 +0x27D73 0x9C5B +0x27D74 0x9C5D +0x27D75 0x9C5F +0x27D76 0x9C69 +0x27D77 0x9C6A +0x27D78 0x9C6B +0x27D79 0x9C6D +0x27D7A 0x9C6E +0x27D7B 0x9C70 +0x27D7C 0x9C72 +0x27D7D 0x9C75 +0x27D7E 0x9C7A +0x27E21 0x9CE6 +0x27E22 0x9CF2 +0x27E23 0x9D0B +0x27E24 0x9D02 +0x27E25 0x29FCE +0x27E26 0x9D11 +0x27E27 0x9D17 +0x27E28 0x9D18 +0x27E29 0x2A02F +0x27E2A 0x4CC4 +0x27E2B 0x2A01A +0x27E2C 0x9D32 +0x27E2D 0x4CD1 +0x27E2E 0x9D42 +0x27E2F 0x9D4A +0x27E30 0x9D5F +0x27E31 0x9D62 +0x27E32 0x2A0F9 +0x27E33 0x9D69 +0x27E34 0x9D6B +0x27E35 0x2A082 +0x27E36 0x9D73 +0x27E37 0x9D76 +0x27E38 0x9D77 +0x27E39 0x9D7E +0x27E3A 0x9D84 +0x27E3B 0x9D8D +0x27E3C 0x9D99 +0x27E3D 0x9DA1 +0x27E3E 0x9DBF +0x27E3F 0x9DB5 +0x27E40 0x9DB9 +0x27E41 0x9DBD +0x27E42 0x9DC3 +0x27E43 0x9DC7 +0x27E44 0x9DC9 +0x27E45 0x9DD6 +0x27E46 0x9DDA +0x27E47 0x9DDF +0x27E48 0x9DE0 +0x27E49 0x9DE3 +0x27E4A 0x9DF4 +0x27E4B 0x4D07 +0x27E4C 0x9E0A +0x27E4D 0x9E02 +0x27E4E 0x9E0D +0x27E4F 0x9E19 +0x27E50 0x9E1C +0x27E51 0x9E1D +0x27E52 0x9E7B +0x27E53 0x22218 +0x27E54 0x9E80 +0x27E55 0x9E85 +0x27E56 0x9E9B +0x27E57 0x9EA8 +0x27E58 0x2A38C +0x27E59 0x9EBD +0x27E5A 0x2A437 +0x27E5B 0x9EDF +0x27E5C 0x9EE7 +0x27E5D 0x9EEE +0x27E5E 0x9EFF +0x27E5F 0x9F02 +0x27E60 0x4D77 +0x27E61 0x9F03 +0x27E62 0x9F17 +0x27E63 0x9F19 +0x27E64 0x9F2F +0x27E65 0x9F37 +0x27E66 0x9F3A +0x27E67 0x9F3D +0x27E68 0x9F41 +0x27E69 0x9F45 +0x27E6A 0x9F46 +0x27E6B 0x9F53 +0x27E6C 0x9F55 +0x27E6D 0x9F58 +0x27E6E 0x2A5F1 +0x27E6F 0x9F5D +0x27E70 0x2A602 +0x27E71 0x9F69 +0x27E72 0x2A61A +0x27E73 0x9F6D +0x27E74 0x9F70 +0x27E75 0x9F75 +0x27E76 0x2A6B2 diff --git a/jni/iconv/tools/Makefile b/jni/iconv/tools/Makefile new file mode 100644 index 0000000..2bf7d84 --- /dev/null +++ b/jni/iconv/tools/Makefile @@ -0,0 +1,532 @@ + +# Directory containing conversion tables. +# You have to unpack the conversion-tables.tar.gz package. +TABLESDIR = /home/bruno/chs/conversion-tables + +ALL = \ + ascii.h \ + iso8859_1.h \ + iso8859_2.h \ + iso8859_3.h \ + iso8859_4.h \ + iso8859_5.h \ + iso8859_6.h \ + iso8859_7.h \ + iso8859_8.h \ + iso8859_9.h \ + iso8859_10.h \ + iso8859_11.h \ + iso8859_13.h \ + iso8859_14.h \ + iso8859_15.h \ + iso8859_16.h \ + koi8_r.h \ + koi8_u.h \ + koi8_ru.h \ + cp1250.h \ + cp1251.h \ + cp1252.h \ + cp1253.h \ + cp1254.h \ + cp1255.h \ + cp1256.h \ + cp1257.h \ + cp1258.h \ + cp850.h \ + cp862.h \ + cp866.h \ + cp1131.h \ + mac_roman.h \ + mac_centraleurope.h \ + mac_iceland.h \ + mac_croatian.h \ + mac_romania.h \ + mac_cyrillic.h \ + mac_ukraine.h \ + mac_greek.h \ + mac_turkish.h \ + mac_hebrew.h \ + mac_arabic.h \ + mac_thai.h \ + hp_roman8.h \ + nextstep.h \ + armscii_8.h \ + georgian_academy.h \ + georgian_ps.h \ + koi8_t.h \ + pt154.h \ + rk1048.h \ + mulelao.h \ + cp1133.h \ + tis620.h \ + cp874.h \ + viscii.h \ + tcvn.h \ + jisx0201.h \ + jisx0208.h \ + jisx0212.h \ + cp932ext.h \ + gb2312.h \ + isoir165ext.h \ + gb12345ext.h \ + gbkext1.h \ + gbkext2.h \ + gbkext_inv.h \ + cp936ext.h \ + gb18030ext.h \ + gb18030uni.h \ + cns11643_1.h \ + cns11643_2.h \ + cns11643_3.h \ + cns11643_4a.h \ + cns11643_4b.h \ + cns11643_5.h \ + cns11643_6.h \ + cns11643_7.h \ + cns11643_15.h \ + cns11643_inv.h \ + big5.h \ + cp950ext.h \ + hkscs1999.h \ + hkscs2001.h \ + hkscs2004.h \ + ksc5601.h \ + uhc_1.h \ + uhc_2.h \ + johab_hangul.h \ + cp856.h \ + cp922.h \ + cp1046.h \ + cp1124.h \ + cp1129.h \ + cp1161.h \ + cp1162.h \ + cp1163.h \ + cp437.h \ + cp737.h \ + cp775.h \ + cp852.h \ + cp853.h \ + cp855.h \ + cp857.h \ + cp858.h \ + cp860.h \ + cp861.h \ + cp863.h \ + cp864.h \ + cp865.h \ + cp869.h \ + cp1125.h \ + jisx0213.h \ + tds565.h \ + atarist.h \ + riscos1.h \ + cjk_variants.h + +all : $(ALL) + +ascii.h : $(TABLESDIR)/glibc-2.1-iconv/ASCII.TXT 8bit_tab_to_h + ./8bit_tab_to_h ASCII ascii < $< + +iso8859_1.h : $(TABLESDIR)/unicode.org-mappings/ISO8859/8859-1.TXT 8bit_tab_to_h + ./8bit_tab_to_h ISO-8859-1 iso8859_1 < $< + +iso8859_2.h : $(TABLESDIR)/unicode.org-mappings/ISO8859/8859-2.TXT 8bit_tab_to_h + ./8bit_tab_to_h ISO-8859-2 iso8859_2 < $< + +iso8859_3.h : $(TABLESDIR)/unicode.org-mappings/ISO8859/8859-3.TXT 8bit_tab_to_h + ./8bit_tab_to_h ISO-8859-3 iso8859_3 < $< + +iso8859_4.h : $(TABLESDIR)/unicode.org-mappings/ISO8859/8859-4.TXT 8bit_tab_to_h + ./8bit_tab_to_h ISO-8859-4 iso8859_4 < $< + +iso8859_5.h : $(TABLESDIR)/unicode.org-mappings/ISO8859/8859-5.TXT 8bit_tab_to_h + ./8bit_tab_to_h ISO-8859-5 iso8859_5 < $< + +iso8859_6.h : $(TABLESDIR)/unicode.org-mappings/ISO8859/8859-6.TXT 8bit_tab_to_h + ./8bit_tab_to_h ISO-8859-6 iso8859_6 < $< + +iso8859_7.h : $(TABLESDIR)/unicode.org-mappings/ISO8859/8859-7-2003.TXT 8bit_tab_to_h + ./8bit_tab_to_h ISO-8859-7 iso8859_7 < $< + +iso8859_8.h : $(TABLESDIR)/unicode.org-mappings/ISO8859/8859-8.TXT 8bit_tab_to_h + ./8bit_tab_to_h ISO-8859-8 iso8859_8 < $< + +iso8859_9.h : $(TABLESDIR)/unicode.org-mappings/ISO8859/8859-9.TXT 8bit_tab_to_h + ./8bit_tab_to_h ISO-8859-9 iso8859_9 < $< + +iso8859_10.h : $(TABLESDIR)/unicode.org-mappings/ISO8859/8859-10.TXT 8bit_tab_to_h + ./8bit_tab_to_h ISO-8859-10 iso8859_10 < $< + +iso8859_11.h : $(TABLESDIR)/unicode.org-mappings/ISO8859/8859-11.TXT 8bit_tab_to_h + ./8bit_tab_to_h ISO-8859-11 iso8859_11 < $< + +iso8859_13.h : $(TABLESDIR)/unicode.org-mappings/ISO8859/8859-13.TXT 8bit_tab_to_h + ./8bit_tab_to_h ISO-8859-13 iso8859_13 < $< + +iso8859_14.h : $(TABLESDIR)/unicode.org-mappings/ISO8859/8859-14.TXT 8bit_tab_to_h + ./8bit_tab_to_h ISO-8859-14 iso8859_14 < $< + +iso8859_15.h : $(TABLESDIR)/unicode.org-mappings/ISO8859/8859-15.TXT 8bit_tab_to_h + ./8bit_tab_to_h ISO-8859-15 iso8859_15 < $< + +iso8859_16.h : $(TABLESDIR)/unicode.org-mappings/ISO8859/8859-16.TXT 8bit_tab_to_h + ./8bit_tab_to_h ISO-8859-16 iso8859_16 < $< + +koi8_r.h : $(TABLESDIR)/unicode.org-mappings/VENDORS/MISC/KOI8-R.TXT 8bit_tab_to_h + ./8bit_tab_to_h KOI8-R koi8_r < $< + +koi8_u.h : $(TABLESDIR)/csets-new/KOI8-U.TXT 8bit_tab_to_h + ./8bit_tab_to_h KOI8-U koi8_u < $< + +koi8_ru.h : $(TABLESDIR)/freebsd-iconv-0.4/KOI8-RU.TXT 8bit_tab_to_h + ./8bit_tab_to_h KOI8-RU koi8_ru < $< + +cp1250.h : $(TABLESDIR)/unicode.org-mappings/VENDORS/MICSFT/WINDOWS/CP1250.TXT 8bit_tab_to_h + ./8bit_tab_to_h CP1250 cp1250 < $< + +cp1251.h : $(TABLESDIR)/unicode.org-mappings/VENDORS/MICSFT/WINDOWS/CP1251.TXT 8bit_tab_to_h + ./8bit_tab_to_h CP1251 cp1251 < $< + +cp1252.h : $(TABLESDIR)/unicode.org-mappings/VENDORS/MICSFT/WINDOWS/CP1252.TXT 8bit_tab_to_h + ./8bit_tab_to_h CP1252 cp1252 < $< + +cp1253.h : $(TABLESDIR)/unicode.org-mappings/VENDORS/MICSFT/WINDOWS/CP1253.TXT 8bit_tab_to_h + ./8bit_tab_to_h CP1253 cp1253 < $< + +cp1254.h : $(TABLESDIR)/unicode.org-mappings/VENDORS/MICSFT/WINDOWS/CP1254.TXT 8bit_tab_to_h + ./8bit_tab_to_h CP1254 cp1254 < $< + +cp1255.h : $(TABLESDIR)/unicode.org-mappings/VENDORS/MICSFT/WINDOWS/CP1255.TXT 8bit_tab_to_h + ./8bit_tab_to_h CP1255 cp1255 < $< + +cp1256.h : $(TABLESDIR)/unicode.org-mappings/VENDORS/MICSFT/WINDOWS/CP1256.TXT 8bit_tab_to_h + ./8bit_tab_to_h CP1256 cp1256 < $< + +cp1257.h : $(TABLESDIR)/unicode.org-mappings/VENDORS/MICSFT/WINDOWS/CP1257.TXT 8bit_tab_to_h + ./8bit_tab_to_h CP1257 cp1257 < $< + +cp1258.h : $(TABLESDIR)/unicode.org-mappings/VENDORS/MICSFT/WINDOWS/CP1258.TXT 8bit_tab_to_h + ./8bit_tab_to_h CP1258 cp1258 < $< + +cp850.h : $(TABLESDIR)/unicode.org-mappings/VENDORS/MICSFT/PC/CP850.TXT 8bit_tab_to_h + ./8bit_tab_to_h CP850 cp850 < $< + +cp862.h : $(TABLESDIR)/unicode.org-mappings/VENDORS/MICSFT/PC/CP862.TXT 8bit_tab_to_h + ./8bit_tab_to_h CP862 cp862 < $< + +cp866.h : $(TABLESDIR)/unicode.org-mappings/VENDORS/MICSFT/PC/CP866.TXT 8bit_tab_to_h + ./8bit_tab_to_h CP866 cp866 < $< + +cp1131.h : $(TABLESDIR)/other/CP1131.TXT 8bit_tab_to_h + (echo '#' ; cat $<) | ./8bit_tab_to_h CP1131 cp1131 + +mac_roman.h : $(TABLESDIR)/jdk-1.1.7b/MAC-ROMAN.TXT 8bit_tab_to_h + ./8bit_tab_to_h MacRoman mac_roman < $< + +mac_centraleurope.h : $(TABLESDIR)/jdk-1.1.7b/MAC-CENTRAL-EUROPE.TXT 8bit_tab_to_h + ./8bit_tab_to_h MacCentralEurope mac_centraleurope < $< + +mac_iceland.h : $(TABLESDIR)/jdk-1.1.7b/MAC-ICELAND.TXT 8bit_tab_to_h + ./8bit_tab_to_h MacIceland mac_iceland < $< + +mac_croatian.h : $(TABLESDIR)/jdk-1.1.7b/MAC-CROATIAN.TXT 8bit_tab_to_h + ./8bit_tab_to_h MacCroatian mac_croatian < $< + +mac_romania.h : $(TABLESDIR)/jdk-1.1.7b/MAC-ROMANIA.TXT 8bit_tab_to_h + ./8bit_tab_to_h MacRomania mac_romania < $< + +mac_cyrillic.h : $(TABLESDIR)/jdk-1.1.7b/MAC-CYRILLIC.TXT 8bit_tab_to_h + ./8bit_tab_to_h MacCyrillic mac_cyrillic < $< + +mac_ukraine.h : $(TABLESDIR)/jdk-1.1.7b/MAC-UKRAINE.TXT 8bit_tab_to_h + ./8bit_tab_to_h MacUkraine mac_ukraine < $< + +mac_greek.h : $(TABLESDIR)/jdk-1.1.7b/MAC-GREEK.TXT 8bit_tab_to_h + ./8bit_tab_to_h MacGreek mac_greek < $< + +mac_turkish.h : $(TABLESDIR)/jdk-1.1.7b/MAC-TURKISH.TXT 8bit_tab_to_h + ./8bit_tab_to_h MacTurkish mac_turkish < $< + +mac_hebrew.h : $(TABLESDIR)/jdk-1.1.7b/MAC-HEBREW.TXT 8bit_tab_to_h + ./8bit_tab_to_h MacHebrew mac_hebrew < $< + +mac_arabic.h : $(TABLESDIR)/jdk-1.1.7b/MAC-ARABIC.TXT 8bit_tab_to_h + ./8bit_tab_to_h MacArabic mac_arabic < $< + +mac_thai.h : $(TABLESDIR)/jdk-1.1.7b/MAC-THAI.TXT 8bit_tab_to_h + ./8bit_tab_to_h MacThai mac_thai < $< + +hp_roman8.h : $(TABLESDIR)/glibc-2.1-iconv/HP-ROMAN8.TXT 8bit_tab_to_h + ./8bit_tab_to_h HP-ROMAN8 hp_roman8 < $< + +nextstep.h : $(TABLESDIR)/clisp/NEXTSTEP.TXT 8bit_tab_to_h + ./8bit_tab_to_h NEXTSTEP nextstep < $< + +armscii_8.h : $(TABLESDIR)/glibc-2.2.90-iconv/ARMSCII-8.TXT 8bit_tab_to_h + (echo '#' ; cat $<) | ./8bit_tab_to_h ARMSCII-8 armscii_8 + +georgian_academy.h : $(TABLESDIR)/csets-1.6/GEO-ITA.TXT 8bit_tab_to_h + ./8bit_tab_to_h GEORGIAN-ACADEMY georgian_academy < $< + +georgian_ps.h : $(TABLESDIR)/csets-1.6/GEO-PS.TXT 8bit_tab_to_h + ./8bit_tab_to_h GEORGIAN-PS georgian_ps < $< + +koi8_t.h : $(TABLESDIR)/glibc-2.2.90-iconv/KOI8-T.TXT + (echo '#' ; cat $<) | ./8bit_tab_to_h KOI8-T koi8_t + +pt154.h : $(TABLESDIR)/IANA/PTCP154.TXT + ./8bit_tab_to_h PT154 pt154 < $< + +rk1048.h : $(TABLESDIR)/IANA/KZ-1048.TXT + (echo '#' ; cat $<) | ./8bit_tab_to_h RK1048 rk1048 + +mulelao.h : $(TABLESDIR)/csets-new/MULELAO1.TXT 8bit_tab_to_h + ./8bit_tab_to_h MULELAO-1 mulelao < $< + +cp1133.h : $(TABLESDIR)/csets-new/CP1133.TXT 8bit_tab_to_h + ./8bit_tab_to_h IBM-CP1133 cp1133 < $< + +tis620.h : $(TABLESDIR)/glibc-2.1-iconv/TIS-620.TXT 8bit_tab_to_h + ./8bit_tab_to_h TIS620.2533-1 tis620 < $< + +cp874.h : $(TABLESDIR)/unicode.org-mappings/VENDORS/MICSFT/WINDOWS/CP874.TXT 8bit_tab_to_h + ./8bit_tab_to_h CP874 cp874 < $< + +viscii.h : $(TABLESDIR)/csets-1.6/VISCII.TXT 8bit_tab_to_h + ./8bit_tab_to_h VISCII1.1-1 viscii < $< + +tcvn.h : $(TABLESDIR)/csets-1.6/VN5712-1.TXT 8bit_tab_to_h + ./8bit_tab_to_h TCVN-5712 tcvn < $< + +jisx0201.h : $(TABLESDIR)/clisp/JIS_X0201.TXT 8bit_tab_to_h + ./8bit_tab_to_h JISX0201.1976-0 jisx0201 < $< + +# We use modified JISX0208 and JISX0212 tables. Why? +# Hironori Sakamoto and Tomohiro Kubota explain that +# - EUC-JP and SHIFT_JIS contain JISX0208 exactly, +# - Their round-trip conversion to Unicode and back must be the identity, +# - Conversions between EUC-JP, SHIFT_JIS, CP932, ISO-2022-JP must behave +# as if no Unicode conversion was involved, +# - When JISX0208 is used as a CES (i.e. combined with ASCII) its mapping of +# REVERSE SOLIDUS becomes a FULLWIDTH REVERSE SOLIDUS, apparently because +# round-trip conversion stability is more important than a particular glyph. +# Only with CCS the character is a REVERSE SOLIDUS. +# As a consequence, we use FULLWIDTH REVERSE SOLIDUS in EUC-JP's JISX0208 part, +# and for consistency also in SHIFT_JIS and ISO-2022-JP, i.e. everywhere. +# JISX0208 never occurs as a CCS in practice. Similarly with JISX0212. + +# Unicode.org maps 0x2140 to U+005C. We map it to U+FF3C. +jisx0208.h : $(TABLESDIR)/unicode.org-mappings/EASTASIA/JIS/JIS0208.TXT cjk_tab_to_h + sed -e 's,^0x....[ ]*\(0x....[ ]*0x.....*\)$$,\1,' < $< | sed -e 's,\([ ]\)0x005C,\10xFF3C,' | ./cjk_tab_to_h JISX0208.1990-0 jisx0208 > $@ + +# Unicode.org maps 0x2237 to U+007E. We map it to U+FF5E. +jisx0212.h : $(TABLESDIR)/unicode.org-mappings/EASTASIA/JIS/JIS0212.TXT cjk_tab_to_h + sed -e 's,\([ ]\)0x007E,\10xFF5E,' < $< | ./cjk_tab_to_h JISX0212.1990-0 jisx0212 > $@ + +cp932ext.h : $(TABLESDIR)/unicode.org-mappings/VENDORS/MICSFT/WINDOWS/CP932.TXT cjk_tab_to_h + (echo '#' ; grep '^0x\(87\|E[D-F]\|F[0-9A-F]\)[0-9A-F][0-9A-F]' < $< ) | ./cjk_tab_to_h 'CP932 extensions' cp932ext > $@ + +gb2312.h : $(TABLESDIR)/unicode.org-mappings/EASTASIA/GB/GB2312.TXT cjk_tab_to_h + ./cjk_tab_to_h GB2312.1980-0 gb2312 < $< > $@ + +isoir165ext.h : $(TABLESDIR)/csets-new/ISO-IR-165-additions.TXT cjk_tab_to_h + (echo '#' ; grep -v '^0x2[8A]' < $<) | ./cjk_tab_to_h 'ISO-IR-165 extensions' isoir165ext > $@ + +gb12345ext.h : $(TABLESDIR)/unicode.org-mappings/EASTASIA/GB/GB2312.TXT $(TABLESDIR)/unicode.org-mappings/EASTASIA/GB/GB12345-FIXED.TXT $(TABLESDIR)/csets-new/GB12345-more.TXT cjk_tab_to_h + (echo '#' ; sed -e '/^0x..[ ]*#UNDEFINED/d' -e 's/#.*$$//' -e '/^[ ]*$$/d' $(TABLESDIR)/unicode.org-mappings/EASTASIA/GB/GB2312.TXT > tmp1.TXT ; sed -e '/^0x..[ ]*#UNDEFINED/d' -e 's/#.*$$//' -e '/^[ ]*$$/d' $(TABLESDIR)/unicode.org-mappings/EASTASIA/GB/GB12345-FIXED.TXT > tmp2.TXT ; diff tmp1.TXT tmp2.TXT | grep '^> ' | sed -e 's,^> ,,' ; cat $(TABLESDIR)/csets-new/GB12345-more.TXT ) | ./cjk_tab_to_h 'GB/T 12345.1990-0 extensions' gb12345ext > $@ && rm -f tmp1.TXT tmp2.TXT + +gbkext1.h : GBKext.TXT cjk_tab_to_h + (echo '#' ; grep '^0x\([89].\|A0\)' < GBKext.TXT) | ./cjk_tab_to_h 'GBK/3 extensions' gbkext1 > $@ + +gbkext2.h : GBKext.TXT cjk_tab_to_h + (echo '#' ; grep '^0x\(A[1-9A-F]\|[B-F][0-9A-F]\)\([4-9].\|A0\)' < GBKext.TXT) | ./cjk_tab_to_h 'GBK/4 and GBK/5 extensions' gbkext2 > $@ + +gbkext_inv.h : GBKext.TXT cjk_tab_to_h + (echo '#' ; grep '^0x\([89].\|A0\)' < GBKext.TXT ; grep '^0x\(A[1-9A-F]\|[B-F][0-9A-F]\)\([4-9].\|A0\)' < GBKext.TXT) | ./cjk_tab_to_h 'GBK extensions' gbkext_inv > $@ + +cp936ext.h : GBKext.TXT cjk_tab_to_h + (echo '#' ; grep '^0xA[1-9][B-F].' < GBKext.TXT) | ./cjk_tab_to_h 'CP936 extensions' cp936ext > $@ + +GBKext.TXT : $(TABLESDIR)/unicode.org-mappings/EASTASIA/GB/GB2312.TXT $(TABLESDIR)/unicode.org-mappings/VENDORS/MICSFT/WINDOWS/CP936.TXT + sed -e 's,^0x2,0xA,' -e 's,^0x3,0xB,' -e 's,^0x4,0xC,' -e 's,^0x5,0xD,' -e 's,^0x6,0xE,' -e 's,^0x7,0xF,' -e 's,^0x\(..\)2,0x\1A,' -e 's,^0x\(..\)3,0x\1B,' -e 's,^0x\(..\)4,0x\1C,' -e 's,^0x\(..\)5,0x\1D,' -e 's,^0x\(..\)6,0x\1E,' -e 's,^0x\(..\)7,0x\1F,' $(TABLESDIR)/unicode.org-mappings/EASTASIA/GB/GB2312.TXT > tmpEUCCN.TXT ; sed -e '/^0x..[ ]*#UNDEFINED/d' -e 's/#.*$$//' -e '/^[ ]*$$/d' tmpEUCCN.TXT > tmp1.TXT ; sed -e '/^0x..[ ]/d' -e 's/#.*$$//' -e '/^[ ]*$$/d' $(TABLESDIR)/unicode.org-mappings/VENDORS/MICSFT/WINDOWS/CP936.TXT > tmp2.TXT ; diff -c1 tmp1.TXT tmp2.TXT | grep '^+ ' | sed -e 's,^+ ,,' > $@ && rm -f tmpEUCCN.TXT tmp1.TXT tmp2.TXT + +gb18030ext.h : GB18030ext.TXT cjk_tab_to_h + (echo '#' ; cat GB18030ext.TXT) | ./cjk_tab_to_h 'GB18030 two-byte extension' gb18030ext > $@ + +GB18030ext.TXT : $(TABLESDIR)/glibc-2.2.2-iconv/GB18030.TXT $(TABLESDIR)/unicode.org-mappings/VENDORS/MICSFT/WINDOWS/CP936.TXT + cat $(TABLESDIR)/unicode.org-mappings/VENDORS/MICSFT/WINDOWS/CP936.TXT | sed -e 's/[ ]*#.*$$//' | grep '^0x[0-9A-F]* 0x....$$' > tmpGBK.TXT ; diff tmpGBK.TXT $(TABLESDIR)/glibc-2.2.2-iconv/GB18030.TXT | grep '^> 0x.... 0x....$$' | sed -e 's/^> //' > $@ && rm -f tmpGBK.TXT + +gb18030uni.h : GB18030uni.TXT cjk_tab_to_h + ./cjk_tab_to_h 'GB18030 four-byte extension' gb18030uni < GB18030uni.TXT > $@ + +GB18030uni.TXT : $(TABLESDIR)/gb18030/filled-GB18030.TXT + grep '^0x........ 0x....$$' < $(TABLESDIR)/gb18030/filled-GB18030.TXT > $@ + +cns11643_1.h : $(TABLESDIR)/csets-new/CNS11643-Unicode32.TXT cjk_tab_to_h + grep '^\(#\|0x1\)' < $< | sed -e 's,^0x1,0x,' | ./cjk_tab_to_h 'CNS 11643-1992 plane 1' cns11643_1 > $@ + +cns11643_2.h : $(TABLESDIR)/csets-new/CNS11643-Unicode32.TXT cjk_tab_to_h + grep '^\(#\|0x2\)' < $< | sed -e 's,^0x2,0x,' | ./cjk_tab_to_h 'CNS 11643-1992 plane 2' cns11643_2 > $@ + +cns11643_3.h : $(TABLESDIR)/csets-new/CNS11643-Unicode32.TXT cjk_tab_to_h + grep '^\(#\|0x3\)' < $< | sed -e 's,^0x3,0x,' | ./cjk_tab_to_h 'CNS 11643-1992 plane 3' cns11643_3 > $@ + +cns11643_4a.h : $(TABLESDIR)/csets-new/CNS11643-Unicode32.TXT cjk_tab_to_h + grep '^\(#\|0x4[0-3]\)' < $< | sed -e 's,^0x4,0x,' | ./cjk_tab_to_h 'CNS 11643-1992 plane 4 part a' cns11643_4a > $@ + +cns11643_4b.h : $(TABLESDIR)/csets-new/CNS11643-Unicode32.TXT cjk_tab_to_h + grep '^\(#\|0x4[4-7]\)' < $< | sed -e 's,^0x4,0x,' | ./cjk_tab_to_h 'CNS 11643-1992 plane 4 part b' cns11643_4b > $@ + +cns11643_5.h : $(TABLESDIR)/csets-new/CNS11643-Unicode32.TXT cjk_tab_to_h + grep '^\(#\|0x5\)' < $< | sed -e 's,^0x5,0x,' | ./cjk_tab_to_h 'CNS 11643-1992 plane 5' cns11643_5 > $@ + +cns11643_6.h : $(TABLESDIR)/csets-new/CNS11643-Unicode32.TXT cjk_tab_to_h + grep '^\(#\|0x6\)' < $< | sed -e 's,^0x6,0x,' | ./cjk_tab_to_h 'CNS 11643-1992 plane 6' cns11643_6 > $@ + +cns11643_7.h : $(TABLESDIR)/csets-new/CNS11643-Unicode32.TXT cjk_tab_to_h + grep '^\(#\|0x7\)' < $< | sed -e 's,^0x7,0x,' | ./cjk_tab_to_h 'CNS 11643-1992 plane 7' cns11643_7 > $@ + +cns11643_15.h : $(TABLESDIR)/csets-new/CNS11643-Unicode32.TXT cjk_tab_to_h + grep '^\(#\|0xF\)' < $< | sed -e 's,^0xF,0x,' | ./cjk_tab_to_h 'CNS 11643-1992 plane 15' cns11643_15 > $@ + +cns11643_inv.h : $(TABLESDIR)/csets-new/CNS11643-Unicode32.TXT cjk_tab_to_h + ./cjk_tab_to_h 'CNS 11643-1992 planes 1-7, CNS 11643-1986 plane 15' cns11643_inv < $< > $@ + +big5.h : $(TABLESDIR)/unicode.org-mappings/EASTASIA/OTHER/BIG5.TXT cjk_tab_to_h + ./cjk_tab_to_h BIG5 big5 < $< > $@ + +cp950ext.h : $(TABLESDIR)/unicode.org-mappings/VENDORS/MICSFT/WINDOWS/CP950.TXT cjk_tab_to_h + (echo '#' ; grep '^0xF9\(D[6-9A-F]\|[EF][0-9A-F]\)' < $< ) | ./cjk_tab_to_h 'CP950 extensions' cp950ext > $@ + +hkscs1999.h : $(TABLESDIR)/big5hkscs/HKSCS-1999_2006.TXT cjk_tab_to_h + (echo '#' ; grep -v , $<) | ./cjk_tab_to_h HKSCS:1999 hkscs1999 > $@ + +hkscs2001.h : $(TABLESDIR)/big5hkscs/HKSCS-2001_2006-DELTA.TXT cjk_tab_to_h + (echo '#' ; grep -v , $<) | ./cjk_tab_to_h HKSCS:2001 hkscs2001 > $@ + +hkscs2004.h : $(TABLESDIR)/big5hkscs/HKSCS-2004_2006-DELTA.TXT cjk_tab_to_h + (echo '#' ; grep -v , $<) | ./cjk_tab_to_h HKSCS:2004 hkscs2004 > $@ + +# We use a modified KSC 5601 = KSX 1001 table. Jungshik Shin +# reports that Prof. GIM Geongseog (KIM Keyongseok) +# (who represents South Korea in ISO/IEC JTC1 SC2/WG2 and SC22/WG20) says that +# these two characters were added to KSX 1001 in December 1998. According to +# http://std.dkuug.dk/jtc1/sc2/wg2/docs/N2815.doc, one more character +# (Korean postal code sign) was added in 2002. +ksc5601.h : $(TABLESDIR)/unicode.org-mappings/EASTASIA/KSC/KSC5601.TXT cjk_tab_to_h + (cat $< ; echo '0xA2E6 0x20AC'; echo '0xA2E7 0x00AE'; echo '0xA2E8 0x327E') | ./cjk_tab_to_h 'KSC5601.1987-0, now KS X 1001:2002' ksc5601 > $@ + +uhc_1.h : $(TABLESDIR)/unicode.org-mappings/EASTASIA/KSC/KSC5601.TXT cjk_tab_to_h + (echo '#' ; grep '^0x\([8-9]\|A0\)' < $< ) | ./cjk_tab_to_h 'Unified Hangul Code part 1' uhc_1 > $@ + +uhc_2.h : $(TABLESDIR)/unicode.org-mappings/EASTASIA/KSC/KSC5601.TXT cjk_tab_to_h + (echo '#' ; grep '^0x\(A[1-9A-F]\|[B-F][0-9A-F]\)\([0-9]\|A0\)' < $< ) | ./cjk_tab_to_h 'Unified Hangul Code part 2' uhc_2 > $@ + +johab_hangul.h : $(TABLESDIR)/unicode.org-mappings/EASTASIA/KSC/JOHAB.TXT cjk_tab_to_h + (echo '#' ; grep '^0x\([8-C]...\|D[0-7]..\)' < $< ) | ./cjk_tab_to_h 'JOHAB Hangul' johab_hangul > $@ + + +cp856.h : $(TABLESDIR)/unicode.org-mappings/VENDORS/MISC/CP856.TXT 8bit_tab_to_h + ./8bit_tab_to_h CP856 cp856 < $< + +cp922.h : $(TABLESDIR)/aix-4.3.2/IBM-922.TXT 8bit_tab_to_h + (echo '#' ; cat $<) | ./8bit_tab_to_h CP922 cp922 + +cp1046.h : $(TABLESDIR)/aix-4.3.2/IBM-1046.TXT 8bit_tab_to_h + (echo '#' ; cat $<) | ./8bit_tab_to_h CP1046 cp1046 + +cp1124.h : $(TABLESDIR)/aix-4.3.2/IBM-1124.TXT 8bit_tab_to_h + (echo '#' ; cat $<) | ./8bit_tab_to_h CP1124 cp1124 + +cp1129.h : $(TABLESDIR)/aix-4.3.2/IBM-1129.TXT 8bit_tab_to_h + (echo '#' ; cat $<) | ./8bit_tab_to_h CP1129 cp1129 + +cp1161.h : $(TABLESDIR)/glibc-2.2.90-iconv/IBM1161.TXT + (echo '#' ; cat $(TABLESDIR)/glibc-2.2-iconv/ASCII.TXT ; grep -v '^0x[0-7]' $<) | ./8bit_tab_to_h CP1161 cp1161 + +cp1162.h : $(TABLESDIR)/glibc-2.2.90-iconv/IBM1162.TXT + (echo '#' ; cat $<) | ./8bit_tab_to_h CP1162 cp1162 + +cp1163.h : $(TABLESDIR)/glibc-2.2.90-iconv/IBM1163.TXT + (echo '#' ; cat $<) | ./8bit_tab_to_h CP1163 cp1163 + + +cp437.h : $(TABLESDIR)/unicode.org-mappings/VENDORS/MICSFT/PC/CP437.TXT 8bit_tab_to_h + ./8bit_tab_to_h CP437 cp437 < $< + +cp737.h : $(TABLESDIR)/unicode.org-mappings/VENDORS/MICSFT/PC/CP737.TXT 8bit_tab_to_h + ./8bit_tab_to_h CP737 cp737 < $< + +cp775.h : $(TABLESDIR)/unicode.org-mappings/VENDORS/MICSFT/PC/CP775.TXT 8bit_tab_to_h + ./8bit_tab_to_h CP775 cp775 < $< + +cp852.h : $(TABLESDIR)/unicode.org-mappings/VENDORS/MICSFT/PC/CP852.TXT 8bit_tab_to_h + ./8bit_tab_to_h CP852 cp852 < $< + +cp853.h : $(TABLESDIR)/other/CP853.TXT 8bit_tab_to_h + (echo '#'; cat $<) | ./8bit_tab_to_h CP853 cp853 + +cp855.h : $(TABLESDIR)/unicode.org-mappings/VENDORS/MICSFT/PC/CP855.TXT 8bit_tab_to_h + ./8bit_tab_to_h CP855 cp855 < $< + +cp857.h : $(TABLESDIR)/unicode.org-mappings/VENDORS/MICSFT/PC/CP857.TXT 8bit_tab_to_h + ./8bit_tab_to_h CP857 cp857 < $< + +cp858.h : $(TABLESDIR)/windows-2000/CP858.TXT 8bit_tab_to_h + (echo '#' ; cat $<) | ./8bit_tab_to_h CP858 cp858 + +cp860.h : $(TABLESDIR)/unicode.org-mappings/VENDORS/MICSFT/PC/CP860.TXT 8bit_tab_to_h + ./8bit_tab_to_h CP860 cp860 < $< + +cp861.h : $(TABLESDIR)/unicode.org-mappings/VENDORS/MICSFT/PC/CP861.TXT 8bit_tab_to_h + ./8bit_tab_to_h CP861 cp861 < $< + +cp863.h : $(TABLESDIR)/unicode.org-mappings/VENDORS/MICSFT/PC/CP863.TXT 8bit_tab_to_h + ./8bit_tab_to_h CP863 cp863 < $< + +cp864.h : $(TABLESDIR)/unicode.org-mappings/VENDORS/MICSFT/PC/CP864.TXT 8bit_tab_to_h + ./8bit_tab_to_h CP864 cp864 < $< + +cp865.h : $(TABLESDIR)/unicode.org-mappings/VENDORS/MICSFT/PC/CP865.TXT 8bit_tab_to_h + ./8bit_tab_to_h CP865 cp865 < $< + +cp869.h : $(TABLESDIR)/unicode.org-mappings/VENDORS/MICSFT/PC/CP869.TXT 8bit_tab_to_h + ./8bit_tab_to_h CP869 cp869 < $< + +cp1125.h : $(TABLESDIR)/csets-new/CP1125.TXT 8bit_tab_to_h + ./8bit_tab_to_h CP1125 cp1125 < $< + + +jisx0213.h : JISX0213.TXT cjk_tab_to_h + ./cjk_tab_to_h JISX0213:2004 jisx0213 < $< > $@ + +tds565.h : $(TABLESDIR)/recode-cvs/TDS565.TXT 8bit_tab_to_h + (echo '#'; cat $<) | ./8bit_tab_to_h TDS565 tds565 > $@ + +atarist.h : $(TABLESDIR)/unicode.org-mappings/VENDORS/MISC/ATARIST.TXT + ./8bit_tab_to_h 'Atari ST' atarist < $< > $@ + +riscos1.h : $(TABLESDIR)/recode-cvs/RISCOS-LATIN1.TXT 8bit_tab_to_h + (echo '#'; cat $<) | ./8bit_tab_to_h RISCOS-LATIN1 riscos1 > $@ + + +cjk_variants.h : $(TABLESDIR)/yasuoka/UniVariants cjk_variants + ./cjk_variants < $< > $@ + + +8bit_tab_to_h : 8bit_tab_to_h.c + gcc -O -Wall -g $< -o $@ + +cjk_tab_to_h : cjk_tab_to_h.c + gcc -O -Wall -g $< -o $@ + +cjk_variants : cjk_variants.c + gcc -O -Wall -g $< -o $@ + + +clean : force + rm -f 8bit_tab_to_h cjk_tab_to_h cjk_variants $(ALL) GBKext.TXT + +force : + diff --git a/jni/iconv/tools/cjk_tab_to_h.c b/jni/iconv/tools/cjk_tab_to_h.c new file mode 100644 index 0000000..a6a3fe4 --- /dev/null +++ b/jni/iconv/tools/cjk_tab_to_h.c @@ -0,0 +1,2148 @@ +/* Copyright (C) 1999-2004, 2006-2007 Free Software Foundation, Inc. + This file is part of the GNU LIBICONV Tools. + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software Foundation, + Inc., along with this program. If not, see . */ + +/* + * Generates a CJK character set table from a .TXT table as found on + * ftp.unicode.org or in the X nls directory. + * Examples: + * + * ./cjk_tab_to_h GB2312.1980-0 gb2312 > gb2312.h < gb2312 + * ./cjk_tab_to_h JISX0208.1983-0 jisx0208 > jisx0208.h < jis0208 + * ./cjk_tab_to_h KSC5601.1987-0 ksc5601 > ksc5601.h < ksc5601 + * + * ./cjk_tab_to_h GB2312.1980-0 gb2312 > gb2312.h < GB2312.TXT + * ./cjk_tab_to_h JISX0208.1983-0 jisx0208 > jisx0208.h < JIS0208.TXT + * ./cjk_tab_to_h JISX0212.1990-0 jisx0212 > jisx0212.h < JIS0212.TXT + * ./cjk_tab_to_h KSC5601.1987-0 ksc5601 > ksc5601.h < KSC5601.TXT + * ./cjk_tab_to_h KSX1001.1992-0 ksc5601 > ksc5601.h < KSX1001.TXT + * + * ./cjk_tab_to_h BIG5 big5 > big5.h < BIG5.TXT + * + * ./cjk_tab_to_h JOHAB johab > johab.h < JOHAB.TXT + * + * ./cjk_tab_to_h JISX0213:2004 jisx0213 > jisx0213.h < JISX0213.TXT + */ + +#include +#include +#include +#include +#include +#include + +typedef struct { + int start; + int end; +} Block; + +typedef struct { + int rows; /* number of possible values for the 1st byte */ + int cols; /* number of possible values for the 2nd byte */ + int (*row_byte) (int row); /* returns the 1st byte value for a given row */ + int (*col_byte) (int col); /* returns the 2nd byte value for a given col */ + int (*byte_row) (int byte); /* converts a 1st byte value to a row, else -1 */ + int (*byte_col) (int byte); /* converts a 2nd byte value to a col, else -1 */ + const char* check_row_expr; /* format string for 1st byte value checking */ + const char* check_col_expr; /* format string for 2nd byte value checking */ + const char* byte_row_expr; /* format string for 1st byte value to row */ + const char* byte_col_expr; /* format string for 2nd byte value to col */ + int** charset2uni; /* charset2uni[0..rows-1][0..cols-1] is valid */ + /* You'll understand the terms "row" and "col" when you buy Ken Lunde's book. + Once a row is fixed, choosing a "col" is the same as choosing a "cell". */ + int* charsetpage; /* charsetpage[0..rows]: how large is a page for a row */ + int ncharsetblocks; + Block* charsetblocks; /* blocks[0..nblocks-1] */ + int* uni2charset; /* uni2charset[0x0000..0xffff] */ + int fffd; /* uni representation of the invalid character */ +} Encoding; + +/* + * Outputs the file title. + */ +static void output_title (const char *charsetname) +{ + printf("/*\n"); + printf(" * Copyright (C) 1999-2007 Free Software Foundation, Inc.\n"); + printf(" * This file is part of the GNU LIBICONV Library.\n"); + printf(" *\n"); + printf(" * The GNU LIBICONV Library is free software; you can redistribute it\n"); + printf(" * and/or modify it under the terms of the GNU Library General Public\n"); + printf(" * License as published by the Free Software Foundation; either version 2\n"); + printf(" * of the License, or (at your option) any later version.\n"); + printf(" *\n"); + printf(" * The GNU LIBICONV Library is distributed in the hope that it will be\n"); + printf(" * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of\n"); + printf(" * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n"); + printf(" * Library General Public License for more details.\n"); + printf(" *\n"); + printf(" * You should have received a copy of the GNU Library General Public\n"); + printf(" * License along with the GNU LIBICONV Library; see the file COPYING.LIB.\n"); + printf(" * If not, write to the Free Software Foundation, Inc., 51 Franklin Street,\n"); + printf(" * Fifth Floor, Boston, MA 02110-1301, USA.\n"); + printf(" */\n"); + printf("\n"); + printf("/*\n"); + printf(" * %s\n", charsetname); + printf(" */\n"); + printf("\n"); +} + +/* + * Reads the charset2uni table from standard input. + */ +static void read_table (Encoding* enc) +{ + int row, col, i, i1, i2, c, j; + + enc->charset2uni = (int**) malloc(enc->rows*sizeof(int*)); + for (row = 0; row < enc->rows; row++) + enc->charset2uni[row] = (int*) malloc(enc->cols*sizeof(int)); + + for (row = 0; row < enc->rows; row++) + for (col = 0; col < enc->cols; col++) + enc->charset2uni[row][col] = 0xfffd; + + c = getc(stdin); + ungetc(c,stdin); + if (c == '#') { + /* Read a unicode.org style .TXT file. */ + for (;;) { + c = getc(stdin); + if (c == EOF) + break; + if (c == '\n' || c == ' ' || c == '\t') + continue; + if (c == '#') { + do { c = getc(stdin); } while (!(c == EOF || c == '\n')); + continue; + } + ungetc(c,stdin); + if (scanf("0x%x", &j) != 1) + exit(1); + i1 = j >> 8; + i2 = j & 0xff; + row = enc->byte_row(i1); + col = enc->byte_col(i2); + if (row < 0 || col < 0) { + fprintf(stderr, "lost entry for %02x %02x\n", i1, i2); + exit(1); + } + if (scanf(" 0x%x", &enc->charset2uni[row][col]) != 1) + exit(1); + } + } else { + /* Read a table of hexadecimal Unicode values. */ + for (i1 = 32; i1 < 132; i1++) + for (i2 = 32; i2 < 132; i2++) { + i = scanf("%x", &j); + if (i == EOF) + goto read_done; + if (i != 1) + exit(1); + if (j < 0 || j == 0xffff) + j = 0xfffd; + if (j != 0xfffd) { + if (enc->byte_row(i1) < 0 || enc->byte_col(i2) < 0) { + fprintf(stderr, "lost entry at %02x %02x\n", i1, i2); + exit (1); + } + enc->charset2uni[enc->byte_row(i1)][enc->byte_col(i2)] = j; + } + } + read_done: ; + } +} + +/* + * Determine whether the Unicode range goes outside the BMP. + */ +static bool is_charset2uni_large (Encoding* enc) +{ + int row, col; + + for (row = 0; row < enc->rows; row++) + for (col = 0; col < enc->cols; col++) + if (enc->charset2uni[row][col] >= 0x10000) + return true; + return false; +} + +/* + * Compactify the Unicode range by use of an auxiliary table, + * so 16 bits suffice to store each value. + */ +static int compact_large_charset2uni (Encoding* enc, unsigned int **urows, unsigned int *urowshift) +{ + unsigned int shift; + + for (shift = 8; ; shift--) { + int *upages = (int *) malloc((0x110000>>shift) * sizeof(int)); + int i, row, col, nurows; + + for (i = 0; i < 0x110000>>shift; i++) + upages[i] = -1; + + for (row = 0; row < enc->rows; row++) + for (col = 0; col < enc->cols; col++) + upages[enc->charset2uni[row][col] >> shift] = 0; + + nurows = 0; + for (i = 0; i < 0x110000>>shift; i++) + if (upages[i] == 0) + nurows++; + + /* We want all table entries to fit in an 'unsigned short'. */ + if (nurows <= 1<<(16-shift)) { + int** old_charset2uni; + + *urows = (unsigned int *) malloc(nurows * sizeof(unsigned int)); + *urowshift = shift; + + nurows = 0; + for (i = 0; i < 0x110000>>shift; i++) + if (upages[i] == 0) { + upages[i] = nurows; + (*urows)[nurows] = i; + nurows++; + } + + old_charset2uni = enc->charset2uni; + enc->charset2uni = (int**) malloc(enc->rows*sizeof(int*)); + for (row = 0; row < enc->rows; row++) + enc->charset2uni[row] = (int*) malloc(enc->cols*sizeof(int)); + for (row = 0; row < enc->rows; row++) + for (col = 0; col < enc->cols; col++) { + int u = old_charset2uni[row][col]; + enc->charset2uni[row][col] = + (upages[u >> shift] << shift) | (u & ((1 << shift) - 1)); + } + enc->fffd = + (upages[0xfffd >> shift] << shift) | (0xfffd & ((1 << shift) - 1)); + + return nurows; + } + } + abort(); +} + +/* + * Computes the charsetpage[0..rows] array. + */ +static void find_charset2uni_pages (Encoding* enc) +{ + int row, col; + + enc->charsetpage = (int*) malloc((enc->rows+1)*sizeof(int)); + + for (row = 0; row <= enc->rows; row++) + enc->charsetpage[row] = 0; + + for (row = 0; row < enc->rows; row++) { + int used = 0; + for (col = 0; col < enc->cols; col++) + if (enc->charset2uni[row][col] != enc->fffd) + used = col+1; + enc->charsetpage[row] = used; + } +} + +/* + * Fills in nblocks and blocks. + */ +static void find_charset2uni_blocks (Encoding* enc) +{ + int n, row, lastrow; + + enc->charsetblocks = (Block*) malloc(enc->rows*sizeof(Block)); + + n = 0; + for (row = 0; row < enc->rows; row++) + if (enc->charsetpage[row] > 0 && (row == 0 || enc->charsetpage[row-1] == 0)) { + for (lastrow = row; enc->charsetpage[lastrow+1] > 0; lastrow++); + enc->charsetblocks[n].start = row * enc->cols; + enc->charsetblocks[n].end = lastrow * enc->cols + enc->charsetpage[lastrow]; + n++; + } + enc->ncharsetblocks = n; +} + +/* + * Outputs the charset to unicode table and function. + */ +static void output_charset2uni (const char* name, Encoding* enc) +{ + int nurows, row, col, lastrow, col_max, i, i1_min, i1_max; + bool is_large; + unsigned int* urows; + unsigned int urowshift; + Encoding tmpenc; + + is_large = is_charset2uni_large(enc); + if (is_large) { + /* Use a temporary copy of enc. */ + tmpenc = *enc; + enc = &tmpenc; + nurows = compact_large_charset2uni(enc,&urows,&urowshift); + } else { + nurows = 0; urows = NULL; urowshift = 0; enc->fffd = 0xfffd; + } + + find_charset2uni_pages(enc); + + find_charset2uni_blocks(enc); + + for (row = 0; row < enc->rows; row++) + if (enc->charsetpage[row] > 0) { + if (row == 0 || enc->charsetpage[row-1] == 0) { + /* Start a new block. */ + for (lastrow = row; enc->charsetpage[lastrow+1] > 0; lastrow++); + printf("static const unsigned short %s_2uni_page%02x[%d] = {\n", + name, enc->row_byte(row), + (lastrow-row) * enc->cols + enc->charsetpage[lastrow]); + } + printf(" /""* 0x%02x *""/\n ", enc->row_byte(row)); + col_max = (enc->charsetpage[row+1] > 0 ? enc->cols : enc->charsetpage[row]); + for (col = 0; col < col_max; col++) { + printf(" 0x%04x,", enc->charset2uni[row][col]); + if ((col % 8) == 7 && (col+1 < col_max)) printf("\n "); + } + printf("\n"); + if (enc->charsetpage[row+1] == 0) { + /* End a block. */ + printf("};\n"); + } + } + printf("\n"); + + if (is_large) { + printf("static const ucs4_t %s_2uni_upages[%d] = {\n ", name, nurows); + for (i = 0; i < nurows; i++) { + printf(" 0x%05x,", urows[i] << urowshift); + if ((i % 8) == 7 && (i+1 < nurows)) printf("\n "); + } + printf("\n"); + printf("};\n"); + printf("\n"); + } + + printf("static int\n"); + printf("%s_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)\n", name); + printf("{\n"); + printf(" unsigned char c1 = s[0];\n"); + printf(" if ("); + for (i = 0; i < enc->ncharsetblocks; i++) { + i1_min = enc->row_byte(enc->charsetblocks[i].start / enc->cols); + i1_max = enc->row_byte((enc->charsetblocks[i].end-1) / enc->cols); + if (i > 0) + printf(" || "); + if (i1_min == i1_max) + printf("(c1 == 0x%02x)", i1_min); + else + printf("(c1 >= 0x%02x && c1 <= 0x%02x)", i1_min, i1_max); + } + printf(") {\n"); + printf(" if (n >= 2) {\n"); + printf(" unsigned char c2 = s[1];\n"); + printf(" if ("); + printf(enc->check_col_expr, "c2"); + printf(") {\n"); + printf(" unsigned int i = %d * (", enc->cols); + printf(enc->byte_row_expr, "c1"); + printf(") + ("); + printf(enc->byte_col_expr, "c2"); + printf(");\n"); + printf(" %s wc = 0xfffd;\n", is_large ? "ucs4_t" : "unsigned short"); + if (is_large) printf(" unsigned short swc;\n"); + for (i = 0; i < enc->ncharsetblocks; i++) { + printf(" "); + if (i > 0) + printf("} else "); + if (i < enc->ncharsetblocks-1) + printf("if (i < %d) ", enc->charsetblocks[i+1].start); + printf("{\n"); + printf(" if (i < %d)\n", enc->charsetblocks[i].end); + printf(" %s = ", is_large ? "swc" : "wc"); + printf("%s_2uni_page%02x[i", name, enc->row_byte(enc->charsetblocks[i].start / enc->cols)); + if (enc->charsetblocks[i].start > 0) + printf("-%d", enc->charsetblocks[i].start); + printf("]"); + if (is_large) printf(",\n wc = %s_2uni_upages[swc>>%d] | (swc & 0x%x)", name, urowshift, (1 << urowshift) - 1); + printf(";\n"); + } + printf(" }\n"); + printf(" if (wc != 0xfffd) {\n"); + printf(" *pwc = %swc;\n", is_large ? "" : "(ucs4_t) "); + printf(" return 2;\n"); + printf(" }\n"); + printf(" }\n"); + printf(" return RET_ILSEQ;\n"); + printf(" }\n"); + printf(" return RET_TOOFEW(0);\n"); + printf(" }\n"); + printf(" return RET_ILSEQ;\n"); + printf("}\n"); + printf("\n"); +} + +/* + * Outputs the charset to unicode table and function. + * (Suitable if the mapping function is well defined, i.e. has no holes, and + * is monotonically increasing with small gaps only.) + */ +static void output_charset2uni_noholes_monotonic (const char* name, Encoding* enc) +{ + int row, col, lastrow, r, col_max, i, i1_min, i1_max; + + /* Choose stepsize so that stepsize*steps_per_row >= enc->cols, and + enc->charset2uni[row][col] - enc->charset2uni[row][col/stepsize*stepsize] + is always < 0x100. */ + int steps_per_row = 2; + int stepsize = (enc->cols + steps_per_row-1) / steps_per_row; + + find_charset2uni_pages(enc); + + find_charset2uni_blocks(enc); + + for (row = 0; row < enc->rows; row++) + if (enc->charsetpage[row] > 0) { + if (row == 0 || enc->charsetpage[row-1] == 0) { + /* Start a new block. */ + for (lastrow = row; enc->charsetpage[lastrow+1] > 0; lastrow++); + printf("static const unsigned short %s_2uni_main_page%02x[%d] = {\n ", + name, enc->row_byte(row), + steps_per_row*(lastrow-row+1)); + for (r = row; r <= lastrow; r++) { + for (i = 0; i < steps_per_row; i++) + printf(" 0x%04x,", enc->charset2uni[r][i*stepsize]); + if (((r-row) % 4) == 3 && (r < lastrow)) printf("\n "); + } + printf("\n"); + printf("};\n"); + printf("static const unsigned char %s_2uni_page%02x[%d] = {\n", + name, enc->row_byte(row), + (lastrow-row) * enc->cols + enc->charsetpage[lastrow]); + } + printf(" /""* 0x%02x *""/\n ", enc->row_byte(row)); + col_max = (enc->charsetpage[row+1] > 0 ? enc->cols : enc->charsetpage[row]); + for (col = 0; col < col_max; col++) { + printf(" 0x%02x,", enc->charset2uni[row][col] - enc->charset2uni[row][col/stepsize*stepsize]); + if ((col % 8) == 7 && (col+1 < col_max)) printf("\n "); + } + printf("\n"); + if (enc->charsetpage[row+1] == 0) { + /* End a block. */ + printf("};\n"); + } + } + printf("\n"); + + printf("static int\n"); + printf("%s_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)\n", name); + printf("{\n"); + printf(" unsigned char c1 = s[0];\n"); + printf(" if ("); + for (i = 0; i < enc->ncharsetblocks; i++) { + i1_min = enc->row_byte(enc->charsetblocks[i].start / enc->cols); + i1_max = enc->row_byte((enc->charsetblocks[i].end-1) / enc->cols); + if (i > 0) + printf(" || "); + if (i1_min == i1_max) + printf("(c1 == 0x%02x)", i1_min); + else + printf("(c1 >= 0x%02x && c1 <= 0x%02x)", i1_min, i1_max); + } + printf(") {\n"); + printf(" if (n >= 2) {\n"); + printf(" unsigned char c2 = s[1];\n"); + printf(" if ("); + printf(enc->check_col_expr, "c2"); + printf(") {\n"); + printf(" unsigned int row = "); + printf(enc->byte_row_expr, "c1"); + printf(";\n"); + printf(" unsigned int col = "); + printf(enc->byte_col_expr, "c2"); + printf(";\n"); + printf(" unsigned int i = %d * row + col;\n", enc->cols); + printf(" unsigned short wc = 0xfffd;\n"); + for (i = 0; i < enc->ncharsetblocks; i++) { + printf(" "); + if (i > 0) + printf("} else "); + if (i < enc->ncharsetblocks-1) + printf("if (i < %d) ", enc->charsetblocks[i+1].start); + printf("{\n"); + printf(" if (i < %d)\n", enc->charsetblocks[i].end); + printf(" wc = %s_2uni_main_page%02x[%d*", name, enc->row_byte(enc->charsetblocks[i].start / enc->cols), steps_per_row); + if (enc->charsetblocks[i].start > 0) + printf("(row-%d)", enc->charsetblocks[i].start / enc->cols); + else + printf("row"); + printf("+"); + if (steps_per_row == 2) + printf("(col>=%d?1:0)", stepsize); + else + printf("col/%d", stepsize); + printf("] + %s_2uni_page%02x[i", name, enc->row_byte(enc->charsetblocks[i].start / enc->cols)); + if (enc->charsetblocks[i].start > 0) + printf("-%d", enc->charsetblocks[i].start); + printf("];\n"); + } + printf(" }\n"); + printf(" if (wc != 0xfffd) {\n"); + printf(" *pwc = (ucs4_t) wc;\n"); + printf(" return 2;\n"); + printf(" }\n"); + printf(" }\n"); + printf(" return RET_ILSEQ;\n"); + printf(" }\n"); + printf(" return RET_TOOFEW(0);\n"); + printf(" }\n"); + printf(" return RET_ILSEQ;\n"); + printf("}\n"); + printf("\n"); +} + +/* + * Computes the uni2charset[0x0000..0x2ffff] array. + */ +static void invert (Encoding* enc) +{ + int row, col, j; + + enc->uni2charset = (int*) malloc(0x30000*sizeof(int)); + + for (j = 0; j < 0x30000; j++) + enc->uni2charset[j] = 0; + + for (row = 0; row < enc->rows; row++) + for (col = 0; col < enc->cols; col++) { + j = enc->charset2uni[row][col]; + if (j != 0xfffd) + enc->uni2charset[j] = 0x100 * enc->row_byte(row) + enc->col_byte(col); + } +} + +/* + * Outputs the unicode to charset table and function, using a linear array. + * (Suitable if the table is dense.) + */ +static void output_uni2charset_dense (const char* name, Encoding* enc) +{ + /* Like in 8bit_tab_to_h.c */ + bool pages[0x300]; + int line[0x6000]; + int tableno; + struct { int minline; int maxline; int usecount; } tables[0x6000]; + bool first; + int row, col, j, p, j1, j2, t; + + for (p = 0; p < 0x300; p++) + pages[p] = false; + for (row = 0; row < enc->rows; row++) + for (col = 0; col < enc->cols; col++) { + j = enc->charset2uni[row][col]; + if (j != 0xfffd) + pages[j>>8] = true; + } + for (j1 = 0; j1 < 0x6000; j1++) { + bool all_invalid = true; + for (j2 = 0; j2 < 8; j2++) { + j = 8*j1+j2; + if (enc->uni2charset[j] != 0) + all_invalid = false; + } + if (all_invalid) + line[j1] = -1; + else + line[j1] = 0; + } + tableno = 0; + for (j1 = 0; j1 < 0x6000; j1++) { + if (line[j1] >= 0) { + if (tableno > 0 + && ((j1 > 0 && line[j1-1] == tableno-1) + || ((tables[tableno-1].maxline >> 5) == (j1 >> 5) + && j1 - tables[tableno-1].maxline <= 8))) { + line[j1] = tableno-1; + tables[tableno-1].maxline = j1; + } else { + tableno++; + line[j1] = tableno-1; + tables[tableno-1].minline = tables[tableno-1].maxline = j1; + } + } + } + for (t = 0; t < tableno; t++) { + tables[t].usecount = 0; + j1 = 8*tables[t].minline; + j2 = 8*(tables[t].maxline+1); + for (j = j1; j < j2; j++) + if (enc->uni2charset[j] != 0) + tables[t].usecount++; + } + { + p = -1; + for (t = 0; t < tableno; t++) + if (tables[t].usecount > 1) { + p = tables[t].minline >> 5; + printf("static const unsigned short %s_page%02x[%d] = {\n", name, p, 8*(tables[t].maxline-tables[t].minline+1)); + for (j1 = tables[t].minline; j1 <= tables[t].maxline; j1++) { + if ((j1 % 0x20) == 0 && j1 > tables[t].minline) + printf(" /* 0x%04x */\n", 8*j1); + printf(" "); + for (j2 = 0; j2 < 8; j2++) { + j = 8*j1+j2; + printf(" 0x%04x,", enc->uni2charset[j]); + } + printf(" /*0x%02x-0x%02x*/\n", 8*(j1 % 0x20), 8*(j1 % 0x20)+7); + } + printf("};\n"); + } + if (p >= 0) + printf("\n"); + } + printf("static int\n%s_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)\n", name); + printf("{\n"); + printf(" if (n >= 2) {\n"); + printf(" unsigned short c = 0;\n"); + first = true; + for (j1 = 0; j1 < 0x6000;) { + t = line[j1]; + for (j2 = j1; j2 < 0x6000 && line[j2] == t; j2++); + if (t >= 0) { + if (j1 != tables[t].minline) abort(); + if (j2 > tables[t].maxline+1) abort(); + j2 = tables[t].maxline+1; + if (first) + printf(" "); + else + printf(" else "); + first = false; + if (tables[t].usecount == 0) abort(); + if (tables[t].usecount == 1) { + if (j2 != j1+1) abort(); + for (j = 8*j1; j < 8*j2; j++) + if (enc->uni2charset[j] != 0) { + printf("if (wc == 0x%04x)\n c = 0x%02x;\n", j, enc->uni2charset[j]); + break; + } + } else { + if (j1 == 0) { + printf("if (wc < 0x%04x)", 8*j2); + } else { + printf("if (wc >= 0x%04x && wc < 0x%04x)", 8*j1, 8*j2); + } + printf("\n c = %s_page%02x[wc", name, j1 >> 5); + if (tables[t].minline > 0) + printf("-0x%04x", 8*j1); + printf("];\n"); + } + } + j1 = j2; + } + printf(" if (c != 0) {\n"); + printf(" r[0] = (c >> 8); r[1] = (c & 0xff);\n"); + printf(" return 2;\n"); + printf(" }\n"); + printf(" return RET_ILUNI;\n"); + printf(" }\n"); + printf(" return RET_TOOSMALL;\n"); + printf("}\n"); +} + +/* + * Outputs the unicode to charset table and function, using a packed array. + * (Suitable if the table is sparse.) + * The argument 'monotonic' may be set to true if the mapping is monotonically + * increasing with small gaps only. + */ +static void output_uni2charset_sparse (const char* name, Encoding* enc, bool monotonic) +{ + bool pages[0x300]; + Block pageblocks[0x300]; int npageblocks; + int indx2charset[0x30000]; + int summary_indx[0x3000]; + int summary_used[0x3000]; + int i, row, col, j, p, j1, j2, indx; + bool is_large; + /* for monotonic: */ + int log2_stepsize = (!strcmp(name,"uhc_2") ? 6 : 7); + int stepsize = 1 << log2_stepsize; + int indxsteps; + + /* Fill pages[0x300]. */ + for (p = 0; p < 0x300; p++) + pages[p] = false; + for (row = 0; row < enc->rows; row++) + for (col = 0; col < enc->cols; col++) { + j = enc->charset2uni[row][col]; + if (j != 0xfffd) + pages[j>>8] = true; + } + + /* Determine whether two or three bytes are needed for each character. */ + is_large = false; + for (j = 0; j < 0x30000; j++) + if (enc->uni2charset[j] >= 0x10000) + is_large = true; + +#if 0 + for (p = 0; p < 0x300; p++) + if (pages[p]) { + printf("static const unsigned short %s_page%02x[256] = {\n", name, p); + for (j1 = 0; j1 < 32; j1++) { + printf(" "); + for (j2 = 0; j2 < 8; j2++) + printf("0x%04x, ", enc->uni2charset[256*p+8*j1+j2]); + printf("/""*0x%02x-0x%02x*""/\n", 8*j1, 8*j1+7); + } + printf("};\n"); + } + printf("\n"); +#endif + + /* Fill summary_indx[] and summary_used[]. */ + indx = 0; + for (j1 = 0; j1 < 0x3000; j1++) { + summary_indx[j1] = indx; + summary_used[j1] = 0; + for (j2 = 0; j2 < 16; j2++) { + j = 16*j1+j2; + if (enc->uni2charset[j] != 0) { + indx2charset[indx++] = enc->uni2charset[j]; + summary_used[j1] |= (1 << j2); + } + } + } + + /* Fill npageblocks and pageblocks[]. */ + npageblocks = 0; + for (p = 0; p < 0x300; ) { + if (pages[p] && (p == 0 || !pages[p-1])) { + pageblocks[npageblocks].start = 16*p; + do p++; while (p < 0x300 && pages[p]); + j1 = 16*p; + while (summary_used[j1-1] == 0) j1--; + pageblocks[npageblocks].end = j1; + npageblocks++; + } else + p++; + } + + if (monotonic) { + indxsteps = (indx + stepsize-1) / stepsize; + printf("static const unsigned short %s_2charset_main[%d] = {\n", name, indxsteps); + for (i = 0; i < indxsteps; ) { + if ((i % 8) == 0) printf(" "); + printf(" 0x%04x,", indx2charset[i*stepsize]); + i++; + if ((i % 8) == 0 || i == indxsteps) printf("\n"); + } + printf("};\n"); + printf("static const unsigned char %s_2charset[%d] = {\n", name, indx); + for (i = 0; i < indx; ) { + if ((i % 8) == 0) printf(" "); + printf(" 0x%02x,", indx2charset[i] - indx2charset[i/stepsize*stepsize]); + i++; + if ((i % 8) == 0 || i == indx) printf("\n"); + } + printf("};\n"); + } else { + if (is_large) { + printf("static const unsigned char %s_2charset[3*%d] = {\n", name, indx); + for (i = 0; i < indx; ) { + if ((i % 4) == 0) printf(" "); + printf(" 0x%1x,0x%02x,0x%02x,", indx2charset[i] >> 16, + (indx2charset[i] >> 8) & 0xff, indx2charset[i] & 0xff); + i++; + if ((i % 4) == 0 || i == indx) printf("\n"); + } + printf("};\n"); + } else { + printf("static const unsigned short %s_2charset[%d] = {\n", name, indx); + for (i = 0; i < indx; ) { + if ((i % 8) == 0) printf(" "); + printf(" 0x%04x,", indx2charset[i]); + i++; + if ((i % 8) == 0 || i == indx) printf("\n"); + } + printf("};\n"); + } + } + printf("\n"); + for (i = 0; i < npageblocks; i++) { + printf("static const Summary16 %s_uni2indx_page%02x[%d] = {\n", name, + pageblocks[i].start/16, pageblocks[i].end-pageblocks[i].start); + for (j1 = pageblocks[i].start; j1 < pageblocks[i].end; ) { + if (((16*j1) % 0x100) == 0) printf(" /""* 0x%04x *""/\n", 16*j1); + if ((j1 % 4) == 0) printf(" "); + printf(" { %4d, 0x%04x },", summary_indx[j1], summary_used[j1]); + j1++; + if ((j1 % 4) == 0 || j1 == pageblocks[i].end) printf("\n"); + } + printf("};\n"); + } + printf("\n"); + + printf("static int\n"); + printf("%s_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)\n", name); + printf("{\n"); + printf(" if (n >= 2) {\n"); + printf(" const Summary16 *summary = NULL;\n"); + for (i = 0; i < npageblocks; i++) { + printf(" "); + if (i > 0) + printf("else "); + printf("if (wc >= 0x%04x && wc < 0x%04x)\n", + 16*pageblocks[i].start, 16*pageblocks[i].end); + printf(" summary = &%s_uni2indx_page%02x[(wc>>4)", name, + pageblocks[i].start/16); + if (pageblocks[i].start > 0) + printf("-0x%03x", pageblocks[i].start); + printf("];\n"); + } + printf(" if (summary) {\n"); + printf(" unsigned short used = summary->used;\n"); + printf(" unsigned int i = wc & 0x0f;\n"); + printf(" if (used & ((unsigned short) 1 << i)) {\n"); + if (monotonic || !is_large) + printf(" unsigned short c;\n"); + printf(" /* Keep in `used' only the bits 0..i-1. */\n"); + printf(" used &= ((unsigned short) 1 << i) - 1;\n"); + printf(" /* Add `summary->indx' and the number of bits set in `used'. */\n"); + printf(" used = (used & 0x5555) + ((used & 0xaaaa) >> 1);\n"); + printf(" used = (used & 0x3333) + ((used & 0xcccc) >> 2);\n"); + printf(" used = (used & 0x0f0f) + ((used & 0xf0f0) >> 4);\n"); + printf(" used = (used & 0x00ff) + (used >> 8);\n"); + if (monotonic) { + printf(" used += summary->indx;\n"); + printf(" c = %s_2charset_main[used>>%d] + %s_2charset[used];\n", name, log2_stepsize, name); + printf(" r[0] = (c >> 8); r[1] = (c & 0xff);\n"); + printf(" return 2;\n"); + } else { + if (is_large) { + printf(" used += summary->indx;\n"); + printf(" r[0] = %s_2charset[3*used];\n", name); + printf(" r[1] = %s_2charset[3*used+1];\n", name); + printf(" r[2] = %s_2charset[3*used+2];\n", name); + printf(" return 3;\n"); + } else { + printf(" c = %s_2charset[summary->indx + used];\n", name); + printf(" r[0] = (c >> 8); r[1] = (c & 0xff);\n"); + printf(" return 2;\n"); + } + } + printf(" }\n"); + printf(" }\n"); + printf(" return RET_ILUNI;\n"); + printf(" }\n"); + printf(" return RET_TOOSMALL;\n"); + printf("}\n"); +} + +/* ISO-2022/EUC specifics */ + +static int row_byte_normal (int row) { return 0x21+row; } +static int col_byte_normal (int col) { return 0x21+col; } +static int byte_row_normal (int byte) { return byte-0x21; } +static int byte_col_normal (int byte) { return byte-0x21; } + +static void do_normal (const char* name) +{ + Encoding enc; + + enc.rows = 94; + enc.cols = 94; + enc.row_byte = row_byte_normal; + enc.col_byte = col_byte_normal; + enc.byte_row = byte_row_normal; + enc.byte_col = byte_col_normal; + enc.check_row_expr = "%1$s >= 0x21 && %1$s < 0x7f"; + enc.check_col_expr = "%1$s >= 0x21 && %1$s < 0x7f"; + enc.byte_row_expr = "%1$s - 0x21"; + enc.byte_col_expr = "%1$s - 0x21"; + + read_table(&enc); + output_charset2uni(name,&enc); + invert(&enc); output_uni2charset_sparse(name,&enc,false); +} + +/* Note: On first sight, the jisx0212_2charset[] table seems to be in order, + starting from the charset=0x3021/uni=0x4e02 pair. But it's only mostly in + order. There are 75 out-of-order values, scattered all throughout the table. + */ + +static void do_normal_only_charset2uni (const char* name) +{ + Encoding enc; + + enc.rows = 94; + enc.cols = 94; + enc.row_byte = row_byte_normal; + enc.col_byte = col_byte_normal; + enc.byte_row = byte_row_normal; + enc.byte_col = byte_col_normal; + enc.check_row_expr = "%1$s >= 0x21 && %1$s < 0x7f"; + enc.check_col_expr = "%1$s >= 0x21 && %1$s < 0x7f"; + enc.byte_row_expr = "%1$s - 0x21"; + enc.byte_col_expr = "%1$s - 0x21"; + + read_table(&enc); + output_charset2uni(name,&enc); +} + +/* CNS 11643 specifics - trick to put two tables into one */ + +static int row_byte_cns11643 (int row) { + return 0x100 * (row / 94) + (row % 94) + 0x21; +} +static int byte_row_cns11643 (int byte) { + return (byte >> 8) * 94 + (byte & 0xff) - 0x21; +} + +static void do_cns11643_only_uni2charset (const char* name) +{ + Encoding enc; + + enc.rows = 16*94; + enc.cols = 94; + enc.row_byte = row_byte_cns11643; + enc.col_byte = col_byte_normal; + enc.byte_row = byte_row_cns11643; + enc.byte_col = byte_col_normal; + enc.check_row_expr = "%1$s >= 0x21 && %1$s < 0x7f"; + enc.check_col_expr = "%1$s >= 0x21 && %1$s < 0x7f"; + enc.byte_row_expr = "%1$s - 0x21"; + enc.byte_col_expr = "%1$s - 0x21"; + + read_table(&enc); + invert(&enc); + output_uni2charset_sparse(name,&enc,false); +} + +/* GBK specifics */ + +static int row_byte_gbk1 (int row) { + return 0x81+row; +} +static int col_byte_gbk1 (int col) { + return (col >= 0x3f ? 0x41 : 0x40) + col; +} +static int byte_row_gbk1 (int byte) { + if (byte >= 0x81 && byte < 0xff) + return byte-0x81; + else + return -1; +} +static int byte_col_gbk1 (int byte) { + if (byte >= 0x40 && byte < 0x7f) + return byte-0x40; + else if (byte >= 0x80 && byte < 0xff) + return byte-0x41; + else + return -1; +} + +static void do_gbk1 (const char* name) +{ + Encoding enc; + + enc.rows = 126; + enc.cols = 190; + enc.row_byte = row_byte_gbk1; + enc.col_byte = col_byte_gbk1; + enc.byte_row = byte_row_gbk1; + enc.byte_col = byte_col_gbk1; + enc.check_row_expr = "%1$s >= 0x81 && %1$s < 0xff"; + enc.check_col_expr = "(%1$s >= 0x40 && %1$s < 0x7f) || (%1$s >= 0x80 && %1$s < 0xff)"; + enc.byte_row_expr = "%1$s - 0x81"; + enc.byte_col_expr = "%1$s - (%1$s >= 0x80 ? 0x41 : 0x40)"; + + read_table(&enc); + output_charset2uni(name,&enc); + invert(&enc); output_uni2charset_dense(name,&enc); +} + +static void do_gbk1_only_charset2uni (const char* name) +{ + Encoding enc; + + enc.rows = 126; + enc.cols = 190; + enc.row_byte = row_byte_gbk1; + enc.col_byte = col_byte_gbk1; + enc.byte_row = byte_row_gbk1; + enc.byte_col = byte_col_gbk1; + enc.check_row_expr = "%1$s >= 0x81 && %1$s < 0xff"; + enc.check_col_expr = "(%1$s >= 0x40 && %1$s < 0x7f) || (%1$s >= 0x80 && %1$s < 0xff)"; + enc.byte_row_expr = "%1$s - 0x81"; + enc.byte_col_expr = "%1$s - (%1$s >= 0x80 ? 0x41 : 0x40)"; + + read_table(&enc); + output_charset2uni(name,&enc); +} + +static int row_byte_gbk2 (int row) { + return 0x81+row; +} +static int col_byte_gbk2 (int col) { + return (col >= 0x3f ? 0x41 : 0x40) + col; +} +static int byte_row_gbk2 (int byte) { + if (byte >= 0x81 && byte < 0xff) + return byte-0x81; + else + return -1; +} +static int byte_col_gbk2 (int byte) { + if (byte >= 0x40 && byte < 0x7f) + return byte-0x40; + else if (byte >= 0x80 && byte < 0xa1) + return byte-0x41; + else + return -1; +} + +static void do_gbk2_only_charset2uni (const char* name) +{ + Encoding enc; + + enc.rows = 126; + enc.cols = 96; + enc.row_byte = row_byte_gbk2; + enc.col_byte = col_byte_gbk2; + enc.byte_row = byte_row_gbk2; + enc.byte_col = byte_col_gbk2; + enc.check_row_expr = "%1$s >= 0x81 && %1$s < 0xff"; + enc.check_col_expr = "(%1$s >= 0x40 && %1$s < 0x7f) || (%1$s >= 0x80 && %1$s < 0xa1)"; + enc.byte_row_expr = "%1$s - 0x81"; + enc.byte_col_expr = "%1$s - (%1$s >= 0x80 ? 0x41 : 0x40)"; + + read_table(&enc); + output_charset2uni(name,&enc); +} + +static void do_gbk1_only_uni2charset (const char* name) +{ + Encoding enc; + + enc.rows = 126; + enc.cols = 190; + enc.row_byte = row_byte_gbk1; + enc.col_byte = col_byte_gbk1; + enc.byte_row = byte_row_gbk1; + enc.byte_col = byte_col_gbk1; + enc.check_row_expr = "%1$s >= 0x81 && %1$s < 0xff"; + enc.check_col_expr = "(%1$s >= 0x40 && %1$s < 0x7f) || (%1$s >= 0x80 && %1$s < 0xff)"; + enc.byte_row_expr = "%1$s - 0x81"; + enc.byte_col_expr = "%1$s - (%1$s >= 0x80 ? 0x41 : 0x40)"; + + read_table(&enc); + invert(&enc); output_uni2charset_sparse(name,&enc,false); +} + +/* KSC 5601 specifics */ + +/* + * Reads the charset2uni table from standard input. + */ +static void read_table_ksc5601 (Encoding* enc) +{ + int row, col, i, i1, i2, c, j; + + enc->charset2uni = (int**) malloc(enc->rows*sizeof(int*)); + for (row = 0; row < enc->rows; row++) + enc->charset2uni[row] = (int*) malloc(enc->cols*sizeof(int)); + + for (row = 0; row < enc->rows; row++) + for (col = 0; col < enc->cols; col++) + enc->charset2uni[row][col] = 0xfffd; + + c = getc(stdin); + ungetc(c,stdin); + if (c == '#') { + /* Read a unicode.org style .TXT file. */ + for (;;) { + c = getc(stdin); + if (c == EOF) + break; + if (c == '\n' || c == ' ' || c == '\t') + continue; + if (c == '#') { + do { c = getc(stdin); } while (!(c == EOF || c == '\n')); + continue; + } + ungetc(c,stdin); + if (scanf("0x%x", &j) != 1) + exit(1); + i1 = j >> 8; + i2 = j & 0xff; + if (scanf(" 0x%x", &j) != 1) + exit(1); + /* Take only the range covered by KS C 5601.1987-0 = KS C 5601.1989-0 + = KS X 1001.1992, ignore the rest. */ + if (!(i1 >= 128+33 && i1 < 128+127 && i2 >= 128+33 && i2 < 128+127)) + continue; /* KSC5601 specific */ + i1 &= 0x7f; /* KSC5601 specific */ + i2 &= 0x7f; /* KSC5601 specific */ + row = enc->byte_row(i1); + col = enc->byte_col(i2); + if (row < 0 || col < 0) { + fprintf(stderr, "lost entry for %02x %02x\n", i1, i2); + exit(1); + } + enc->charset2uni[row][col] = j; + } + } else { + /* Read a table of hexadecimal Unicode values. */ + for (i1 = 33; i1 < 127; i1++) + for (i2 = 33; i2 < 127; i2++) { + i = scanf("%x", &j); + if (i == EOF) + goto read_done; + if (i != 1) + exit(1); + if (j < 0 || j == 0xffff) + j = 0xfffd; + if (j != 0xfffd) { + if (enc->byte_row(i1) < 0 || enc->byte_col(i2) < 0) { + fprintf(stderr, "lost entry at %02x %02x\n", i1, i2); + exit (1); + } + enc->charset2uni[enc->byte_row(i1)][enc->byte_col(i2)] = j; + } + } + read_done: ; + } +} + +static void do_ksc5601 (const char* name) +{ + Encoding enc; + + enc.rows = 94; + enc.cols = 94; + enc.row_byte = row_byte_normal; + enc.col_byte = col_byte_normal; + enc.byte_row = byte_row_normal; + enc.byte_col = byte_col_normal; + enc.check_row_expr = "%1$s >= 0x21 && %1$s < 0x7f"; + enc.check_col_expr = "%1$s >= 0x21 && %1$s < 0x7f"; + enc.byte_row_expr = "%1$s - 0x21"; + enc.byte_col_expr = "%1$s - 0x21"; + + read_table_ksc5601(&enc); + output_charset2uni(name,&enc); + invert(&enc); output_uni2charset_sparse(name,&enc,false); +} + +/* UHC specifics */ + +/* UHC part 1: 0x{81..A0}{41..5A,61..7A,81..FE} */ + +static int row_byte_uhc_1 (int row) { + return 0x81 + row; +} +static int col_byte_uhc_1 (int col) { + return (col >= 0x34 ? 0x4d : col >= 0x1a ? 0x47 : 0x41) + col; +} +static int byte_row_uhc_1 (int byte) { + if (byte >= 0x81 && byte < 0xa1) + return byte-0x81; + else + return -1; +} +static int byte_col_uhc_1 (int byte) { + if (byte >= 0x41 && byte < 0x5b) + return byte-0x41; + else if (byte >= 0x61 && byte < 0x7b) + return byte-0x47; + else if (byte >= 0x81 && byte < 0xff) + return byte-0x4d; + else + return -1; +} + +static void do_uhc_1 (const char* name) +{ + Encoding enc; + + enc.rows = 32; + enc.cols = 178; + enc.row_byte = row_byte_uhc_1; + enc.col_byte = col_byte_uhc_1; + enc.byte_row = byte_row_uhc_1; + enc.byte_col = byte_col_uhc_1; + enc.check_row_expr = "(%1$s >= 0x81 && %1$s < 0xa1)"; + enc.check_col_expr = "(%1$s >= 0x41 && %1$s < 0x5b) || (%1$s >= 0x61 && %1$s < 0x7b) || (%1$s >= 0x81 && %1$s < 0xff)"; + enc.byte_row_expr = "%1$s - 0x81"; + enc.byte_col_expr = "%1$s - (%1$s >= 0x81 ? 0x4d : %1$s >= 0x61 ? 0x47 : 0x41)"; + + read_table(&enc); + output_charset2uni_noholes_monotonic(name,&enc); + invert(&enc); output_uni2charset_sparse(name,&enc,true); +} + +/* UHC part 2: 0x{A1..C6}{41..5A,61..7A,81..A0} */ + +static int row_byte_uhc_2 (int row) { + return 0xa1 + row; +} +static int col_byte_uhc_2 (int col) { + return (col >= 0x34 ? 0x4d : col >= 0x1a ? 0x47 : 0x41) + col; +} +static int byte_row_uhc_2 (int byte) { + if (byte >= 0xa1 && byte < 0xff) + return byte-0xa1; + else + return -1; +} +static int byte_col_uhc_2 (int byte) { + if (byte >= 0x41 && byte < 0x5b) + return byte-0x41; + else if (byte >= 0x61 && byte < 0x7b) + return byte-0x47; + else if (byte >= 0x81 && byte < 0xa1) + return byte-0x4d; + else + return -1; +} + +static void do_uhc_2 (const char* name) +{ + Encoding enc; + + enc.rows = 94; + enc.cols = 84; + enc.row_byte = row_byte_uhc_2; + enc.col_byte = col_byte_uhc_2; + enc.byte_row = byte_row_uhc_2; + enc.byte_col = byte_col_uhc_2; + enc.check_row_expr = "(%1$s >= 0xa1 && %1$s < 0xff)"; + enc.check_col_expr = "(%1$s >= 0x41 && %1$s < 0x5b) || (%1$s >= 0x61 && %1$s < 0x7b) || (%1$s >= 0x81 && %1$s < 0xa1)"; + enc.byte_row_expr = "%1$s - 0xa1"; + enc.byte_col_expr = "%1$s - (%1$s >= 0x81 ? 0x4d : %1$s >= 0x61 ? 0x47 : 0x41)"; + + read_table(&enc); + output_charset2uni_noholes_monotonic(name,&enc); + invert(&enc); output_uni2charset_sparse(name,&enc,true); +} + +/* Big5 specifics */ + +static int row_byte_big5 (int row) { + return 0xa1+row; +} +static int col_byte_big5 (int col) { + return (col >= 0x3f ? 0x62 : 0x40) + col; +} +static int byte_row_big5 (int byte) { + if (byte >= 0xa1 && byte < 0xff) + return byte-0xa1; + else + return -1; +} +static int byte_col_big5 (int byte) { + if (byte >= 0x40 && byte < 0x7f) + return byte-0x40; + else if (byte >= 0xa1 && byte < 0xff) + return byte-0x62; + else + return -1; +} + +static void do_big5 (const char* name) +{ + Encoding enc; + + enc.rows = 94; + enc.cols = 157; + enc.row_byte = row_byte_big5; + enc.col_byte = col_byte_big5; + enc.byte_row = byte_row_big5; + enc.byte_col = byte_col_big5; + enc.check_row_expr = "%1$s >= 0xa1 && %1$s < 0xff"; + enc.check_col_expr = "(%1$s >= 0x40 && %1$s < 0x7f) || (%1$s >= 0xa1 && %1$s < 0xff)"; + enc.byte_row_expr = "%1$s - 0xa1"; + enc.byte_col_expr = "%1$s - (%1$s >= 0xa1 ? 0x62 : 0x40)"; + + read_table(&enc); + output_charset2uni(name,&enc); + invert(&enc); output_uni2charset_sparse(name,&enc,false); +} + +/* HKSCS specifics */ + +static int row_byte_hkscs (int row) { + return 0x80+row; +} +static int byte_row_hkscs (int byte) { + if (byte >= 0x80 && byte < 0xff) + return byte-0x80; + else + return -1; +} + +static void do_hkscs (const char* name) +{ + Encoding enc; + + enc.rows = 128; + enc.cols = 157; + enc.row_byte = row_byte_hkscs; + enc.col_byte = col_byte_big5; + enc.byte_row = byte_row_hkscs; + enc.byte_col = byte_col_big5; + enc.check_row_expr = "%1$s >= 0x80 && %1$s < 0xff"; + enc.check_col_expr = "(%1$s >= 0x40 && %1$s < 0x7f) || (%1$s >= 0xa1 && %1$s < 0xff)"; + enc.byte_row_expr = "%1$s - 0x80"; + enc.byte_col_expr = "%1$s - (%1$s >= 0xa1 ? 0x62 : 0x40)"; + + read_table(&enc); + output_charset2uni(name,&enc); + invert(&enc); output_uni2charset_sparse(name,&enc,false); +} + +/* Johab Hangul specifics */ + +static int row_byte_johab_hangul (int row) { + return 0x84+row; +} +static int col_byte_johab_hangul (int col) { + return (col >= 0x3e ? 0x43 : 0x41) + col; +} +static int byte_row_johab_hangul (int byte) { + if (byte >= 0x84 && byte < 0xd4) + return byte-0x84; + else + return -1; +} +static int byte_col_johab_hangul (int byte) { + if (byte >= 0x41 && byte < 0x7f) + return byte-0x41; + else if (byte >= 0x81 && byte < 0xff) + return byte-0x43; + else + return -1; +} + +static void do_johab_hangul (const char* name) +{ + Encoding enc; + + enc.rows = 80; + enc.cols = 188; + enc.row_byte = row_byte_johab_hangul; + enc.col_byte = col_byte_johab_hangul; + enc.byte_row = byte_row_johab_hangul; + enc.byte_col = byte_col_johab_hangul; + enc.check_row_expr = "%1$s >= 0x84 && %1$s < 0xd4"; + enc.check_col_expr = "(%1$s >= 0x41 && %1$s < 0x7f) || (%1$s >= 0x81 && %1$s < 0xff)"; + enc.byte_row_expr = "%1$s - 0x84"; + enc.byte_col_expr = "%1$s - (%1$s >= 0x81 ? 0x43 : 0x41)"; + + read_table(&enc); + output_charset2uni(name,&enc); + invert(&enc); output_uni2charset_dense(name,&enc); +} + +/* SJIS specifics */ + +static int row_byte_sjis (int row) { + return (row >= 0x1f ? 0xc1 : 0x81) + row; +} +static int col_byte_sjis (int col) { + return (col >= 0x3f ? 0x41 : 0x40) + col; +} +static int byte_row_sjis (int byte) { + if (byte >= 0x81 && byte < 0xa0) + return byte-0x81; + else if (byte >= 0xe0) + return byte-0xc1; + else + return -1; +} +static int byte_col_sjis (int byte) { + if (byte >= 0x40 && byte < 0x7f) + return byte-0x40; + else if (byte >= 0x80 && byte < 0xfd) + return byte-0x41; + else + return -1; +} + +static void do_sjis (const char* name) +{ + Encoding enc; + + enc.rows = 94; + enc.cols = 188; + enc.row_byte = row_byte_sjis; + enc.col_byte = col_byte_sjis; + enc.byte_row = byte_row_sjis; + enc.byte_col = byte_col_sjis; + enc.check_row_expr = "(%1$s >= 0x81 && %1$s < 0xa0) || (%1$s >= 0xe0)"; + enc.check_col_expr = "(%1$s >= 0x40 && %1$s < 0x7f) || (%1$s >= 0x80 && %1$s < 0xfd)"; + enc.byte_row_expr = "%1$s - (%1$s >= 0xe0 ? 0xc1 : 0x81)"; + enc.byte_col_expr = "%1$s - (%1$s >= 0x80 ? 0x41 : 0x40)"; + + read_table(&enc); + output_charset2uni(name,&enc); + invert(&enc); output_uni2charset_sparse(name,&enc,false); +} + +/* GB18030 Unicode specifics */ + +static void do_gb18030uni (const char* name) +{ + int c; + unsigned int bytes; + int i1, i2, i3, i4, i, j, k; + int charset2uni[4*10*126*10]; + int uni2charset[0x10000]; + struct { int low; int high; int diff; int total; } ranges[256]; + int ranges_count, ranges_total; + + for (i = 0; i < 4*10*126*10; i++) + charset2uni[i] = 0; + for (j = 0; j < 0x10000; j++) + uni2charset[j] = 0; + + /* Read a unicode.org style .TXT file. */ + for (;;) { + c = getc(stdin); + if (c == EOF) + break; + if (c == '\n' || c == ' ' || c == '\t') + continue; + if (c == '#') { + do { c = getc(stdin); } while (!(c == EOF || c == '\n')); + continue; + } + ungetc(c,stdin); + if (scanf("0x%x", &bytes) != 1) + exit(1); + i1 = (bytes >> 24) & 0xff; + i2 = (bytes >> 16) & 0xff; + i3 = (bytes >> 8) & 0xff; + i4 = bytes & 0xff; + if (!(i1 >= 0x81 && i1 <= 0x84 + && i2 >= 0x30 && i2 <= 0x39 + && i3 >= 0x81 && i3 <= 0xfe + && i4 >= 0x30 && i4 <= 0x39)) { + fprintf(stderr, "lost entry for %02x %02x %02x %02x\n", i1, i2, i3, i4); + exit(1); + } + i = (((i1-0x81) * 10 + (i2-0x30)) * 126 + (i3-0x81)) * 10 + (i4-0x30); + if (scanf(" 0x%x", &j) != 1) + exit(1); + if (!(j >= 0 && j < 0x10000)) + exit(1); + charset2uni[i] = j; + uni2charset[j] = i; + } + + /* Verify that the mapping i -> j is monotonically increasing and + of the form + low[k] <= i <= high[k] => j = diff[k] + i + with a set of disjoint intervals (low[k], high[k]). */ + ranges_count = 0; + for (i = 0; i < 4*10*126*10; i++) + if (charset2uni[i] != 0) { + int diff; + j = charset2uni[i]; + diff = j - i; + if (ranges_count > 0) { + if (!(i > ranges[ranges_count-1].high)) + exit(1); + if (!(j > ranges[ranges_count-1].high + ranges[ranges_count-1].diff)) + exit(1); + /* Additional property: The diffs are also increasing. */ + if (!(diff >= ranges[ranges_count-1].diff)) + exit(1); + } + if (ranges_count > 0 && diff == ranges[ranges_count-1].diff) + ranges[ranges_count-1].high = i; + else { + if (ranges_count == 256) + exit(1); + ranges[ranges_count].low = i; + ranges[ranges_count].high = i; + ranges[ranges_count].diff = diff; + ranges_count++; + } + } + + /* Determine size of bitmap. */ + ranges_total = 0; + for (k = 0; k < ranges_count; k++) { + ranges[k].total = ranges_total; + ranges_total += ranges[k].high - ranges[k].low + 1; + } + + printf("static const unsigned short %s_charset2uni_ranges[%d] = {\n", name, 2*ranges_count); + for (k = 0; k < ranges_count; k++) { + printf(" 0x%04x, 0x%04x", ranges[k].low, ranges[k].high); + if (k+1 < ranges_count) printf(","); + if ((k % 4) == 3 && k+1 < ranges_count) printf("\n"); + } + printf("\n"); + printf("};\n"); + + printf("\n"); + + printf("static const unsigned short %s_uni2charset_ranges[%d] = {\n", name, 2*ranges_count); + for (k = 0; k < ranges_count; k++) { + printf(" 0x%04x, 0x%04x", ranges[k].low + ranges[k].diff, ranges[k].high + ranges[k].diff); + if (k+1 < ranges_count) printf(","); + if ((k % 4) == 3 && k+1 < ranges_count) printf("\n"); + } + printf("\n"); + printf("};\n"); + + printf("\n"); + + printf("static const struct { unsigned short diff; unsigned short bitmap_offset; } %s_ranges[%d] = {\n ", name, ranges_count); + for (k = 0; k < ranges_count; k++) { + printf(" { %5d, 0x%04x }", ranges[k].diff, ranges[k].total); + if (k+1 < ranges_count) printf(","); + if ((k % 4) == 3 && k+1 < ranges_count) printf("\n "); + } + printf("\n"); + printf("};\n"); + + printf("\n"); + + printf("static const unsigned char %s_bitmap[%d] = {\n ", name, (ranges_total + 7) / 8); + { + int accu = 0; + for (k = 0; k < ranges_count; k++) { + for (i = ranges[k].total; i <= ranges[k].total + (ranges[k].high - ranges[k].low);) { + if (charset2uni[i - ranges[k].total + ranges[k].low] != 0) + accu |= (1 << (i % 8)); + i++; + if ((i % 8) == 0) { + printf(" 0x%02x", accu); + if ((i / 8) < (ranges_total + 7) / 8) printf(","); + if (((i / 8) % 12) == 0) + printf("\n "); + accu = 0; + } + } + if (i != (k+1 < ranges_count ? ranges[k+1].total : ranges_total)) abort(); + } + if ((ranges_total % 8) != 0) + printf(" 0x%02x", accu); + printf("\n"); + } + printf("};\n"); + + printf("\n"); + + printf("static int\n"); + printf("%s_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)\n", name); + printf("{\n"); + printf(" unsigned char c1 = s[0];\n"); + printf(" if (c1 >= 0x81 && c1 <= 0x84) {\n"); + printf(" if (n >= 2) {\n"); + printf(" unsigned char c2 = s[1];\n"); + printf(" if (c2 >= 0x30 && c2 <= 0x39) {\n"); + printf(" if (n >= 3) {\n"); + printf(" unsigned char c3 = s[2];\n"); + printf(" if (c3 >= 0x81 && c3 <= 0xfe) {\n"); + printf(" if (n >= 4) {\n"); + printf(" unsigned char c4 = s[3];\n"); + printf(" if (c4 >= 0x30 && c4 <= 0x39) {\n"); + printf(" unsigned int i = (((c1 - 0x81) * 10 + (c2 - 0x30)) * 126 + (c3 - 0x81)) * 10 + (c4 - 0x30);\n"); + printf(" if (i >= %d && i <= %d) {\n", ranges[0].low, ranges[ranges_count-1].high); + printf(" unsigned int k1 = 0;\n"); + printf(" unsigned int k2 = %d;\n", ranges_count-1); + printf(" while (k1 < k2) {\n"); + printf(" unsigned int k = (k1 + k2) / 2;\n"); + printf(" if (i <= %s_charset2uni_ranges[2*k+1])\n", name); + printf(" k2 = k;\n"); + printf(" else if (i >= %s_charset2uni_ranges[2*k+2])\n", name); + printf(" k1 = k + 1;\n"); + printf(" else\n"); + printf(" return RET_ILSEQ;\n"); + printf(" }\n"); + printf(" {\n"); + printf(" unsigned int bitmap_index = i - %s_charset2uni_ranges[2*k1] + %s_ranges[k1].bitmap_offset;\n", name, name); + printf(" if ((%s_bitmap[bitmap_index >> 3] >> (bitmap_index & 7)) & 1) {\n", name); + printf(" unsigned int diff = %s_ranges[k1].diff;\n", name); + printf(" *pwc = (ucs4_t) (i + diff);\n"); + printf(" return 4;\n"); + printf(" }\n"); + printf(" }\n"); + printf(" }\n"); + printf(" }\n"); + printf(" return RET_ILSEQ;\n"); + printf(" }\n"); + printf(" return RET_TOOFEW(0);\n"); + printf(" }\n"); + printf(" return RET_ILSEQ;\n"); + printf(" }\n"); + printf(" return RET_TOOFEW(0);\n"); + printf(" }\n"); + printf(" return RET_ILSEQ;\n"); + printf(" }\n"); + printf(" return RET_TOOFEW(0);\n"); + printf(" }\n"); + printf(" return RET_ILSEQ;\n"); + printf("}\n"); + + printf("\n"); + + printf("static int\n"); + printf("%s_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)\n", name); + printf("{\n"); + printf(" if (n >= 4) {\n"); + printf(" unsigned int i = wc;\n"); + printf(" if (i >= 0x%04x && i <= 0x%04x) {\n", ranges[0].low + ranges[0].diff, ranges[ranges_count-1].high + ranges[ranges_count-1].diff); + printf(" unsigned int k1 = 0;\n"); + printf(" unsigned int k2 = %d;\n", ranges_count-1); + printf(" while (k1 < k2) {\n"); + printf(" unsigned int k = (k1 + k2) / 2;\n"); + printf(" if (i <= %s_uni2charset_ranges[2*k+1])\n", name); + printf(" k2 = k;\n"); + printf(" else if (i >= %s_uni2charset_ranges[2*k+2])\n", name); + printf(" k1 = k + 1;\n"); + printf(" else\n"); + printf(" return RET_ILUNI;\n"); + printf(" }\n"); + printf(" {\n"); + printf(" unsigned int bitmap_index = i - %s_uni2charset_ranges[2*k1] + %s_ranges[k1].bitmap_offset;\n", name, name); + printf(" if ((%s_bitmap[bitmap_index >> 3] >> (bitmap_index & 7)) & 1) {\n", name); + printf(" unsigned int diff = %s_ranges[k1].diff;\n", name); + printf(" i -= diff;\n"); + printf(" r[3] = (i %% 10) + 0x30; i = i / 10;\n"); + printf(" r[2] = (i %% 126) + 0x81; i = i / 126;\n"); + printf(" r[1] = (i %% 10) + 0x30; i = i / 10;\n"); + printf(" r[0] = i + 0x81;\n"); + printf(" return 4;\n"); + printf(" }\n"); + printf(" }\n"); + printf(" }\n"); + printf(" return RET_ILUNI;\n"); + printf(" }\n"); + printf(" return RET_TOOSMALL;\n"); + printf("}\n"); +} + +/* JISX0213 specifics */ + +static void do_jisx0213 (const char* name) +{ + printf("#ifndef _JISX0213_H\n"); + printf("#define _JISX0213_H\n"); + printf("\n"); + printf("/* JISX0213 plane 1 (= ISO-IR-233) characters are in the range\n"); + printf(" 0x{21..7E}{21..7E}.\n"); + printf(" JISX0213 plane 2 (= ISO-IR-229) characters are in the range\n"); + printf(" 0x{21,23..25,28,2C..2F,6E..7E}{21..7E}.\n"); + printf(" Together this makes 120 rows of 94 characters.\n"); + printf("*/\n"); + printf("\n"); + { +#define row_convert(row) \ + ((row) >= 0x121 && (row) <= 0x17E ? row-289 : /* 0..93 */ \ + (row) == 0x221 ? row-451 : /* 94 */ \ + (row) >= 0x223 && (row) <= 0x225 ? row-452 : /* 95..97 */ \ + (row) == 0x228 ? row-454 : /* 98 */ \ + (row) >= 0x22C && (row) <= 0x22F ? row-457 : /* 99..102 */ \ + (row) >= 0x26E && (row) <= 0x27E ? row-519 : /* 103..119 */ \ + -1) + unsigned int table[120][94]; + int pagemin[0x1100]; + int pagemax[0x1100]; + int pageidx[0x1100]; + unsigned int pagestart[0x1100]; + unsigned int pagestart_len = 0; + { + unsigned int rowc, colc; + for (rowc = 0; rowc < 120; rowc++) + for (colc = 0; colc < 94; colc++) + table[rowc][colc] = 0; + } + { + unsigned int page; + for (page = 0; page < 0x1100; page++) + pagemin[page] = -1; + for (page = 0; page < 0x1100; page++) + pagemax[page] = -1; + for (page = 0; page < 0x1100; page++) + pageidx[page] = -1; + } + printf("static const unsigned short jisx0213_to_ucs_combining[][2] = {\n"); + { + int private_use = 0x0001; + for (;;) { + char line[30]; + unsigned int row, col; + unsigned int ucs; + memset(line,0,sizeof(line)); + if (scanf("%[^\n]\n",line) < 1) + break; + assert(line[0]=='0'); + assert(line[1]=='x'); + assert(isxdigit(line[2])); + assert(isxdigit(line[3])); + assert(isxdigit(line[4])); + assert(isxdigit(line[5])); + assert(isxdigit(line[6])); + assert(line[7]=='\t'); + line[7] = '\0'; + col = strtoul(&line[5],NULL,16); + line[5] = '\0'; + row = strtoul(&line[2],NULL,16); + if (line[20] != '\0' && line[21] == '\0') { + unsigned int u1, u2; + assert(line[8]=='0'); + assert(line[9]=='x'); + assert(isxdigit(line[10])); + assert(isxdigit(line[11])); + assert(isxdigit(line[12])); + assert(isxdigit(line[13])); + assert(line[14]==' '); + assert(line[15]=='0'); + assert(line[16]=='x'); + assert(isxdigit(line[17])); + assert(isxdigit(line[18])); + assert(isxdigit(line[19])); + assert(isxdigit(line[20])); + u2 = strtoul(&line[17],NULL,16); + line[14] = '\0'; + u1 = strtoul(&line[10],NULL,16); + printf(" { 0x%04x, 0x%04x },\n", u1, u2); + ucs = private_use++; + } else { + assert(line[8]=='0'); + assert(line[9]=='x'); + assert(isxdigit(line[10])); + assert(isxdigit(line[11])); + assert(isxdigit(line[12])); + assert(isxdigit(line[13])); + ucs = strtoul(&line[10],NULL,16); + } + assert((unsigned int) row_convert(row) < 120); + assert((unsigned int) (col-0x21) < 94); + table[row_convert(row)][col-0x21] = ucs; + } + } + printf("};\n"); + printf("\n"); + { + unsigned int rowc, colc; + for (rowc = 0; rowc < 120; rowc++) { + for (colc = 0; colc < 94; colc++) { + unsigned int value = table[rowc][colc]; + unsigned int page = value >> 8; + unsigned int rest = value & 0xff; + if (pagemin[page] < 0 || pagemin[page] > rest) pagemin[page] = rest; + if (pagemax[page] < 0 || pagemax[page] < rest) pagemax[page] = rest; + } + } + } + { + unsigned int index = 0; + unsigned int i; + for (i = 0; i < 0x1100; ) { + if (pagemin[i] >= 0) { + if (pagemin[i+1] >= 0 && pagemin[i] >= 0x80 && pagemax[i+1] < 0x80) { + /* Combine two pages into a single one. */ + assert(pagestart_len < sizeof(pagestart)/sizeof(pagestart[0])); + pagestart[pagestart_len++] = (i<<8)+0x80; + pageidx[i] = index; + pageidx[i+1] = index; + index++; + i += 2; + } else { + /* A single page. */ + assert(pagestart_len < sizeof(pagestart)/sizeof(pagestart[0])); + pagestart[pagestart_len++] = i<<8; + pageidx[i] = index; + index++; + i += 1; + } + } else + i++; + } + } + printf("static const unsigned short jisx0213_to_ucs_main[120 * 94] = {\n"); + { + unsigned int row; + for (row = 0; row < 0x300; row++) { + unsigned int rowc = row_convert(row); + if (rowc != (unsigned int) (-1)) { + printf(" /* 0x%X21..0x%X7E */\n",row,row); + { + unsigned int count = 0; + unsigned int colc; + for (colc = 0; colc < 94; colc++) { + if ((count % 8) == 0) printf(" "); + { + unsigned int value = table[rowc][colc]; + unsigned int page = value >> 8; + unsigned int index = pageidx[page]; + assert(value-pagestart[index] < 0x100); + printf(" 0x%04x,",(index<<8)|(value-pagestart[index])); + } + count++; + if ((count % 8) == 0) printf("\n"); + } + } + printf("\n"); + } + } + } + printf("};\n"); + printf("\n"); + printf("static const ucs4_t jisx0213_to_ucs_pagestart[] = {\n"); + { + unsigned int count = 0; + unsigned int i; + for (i = 0; i < pagestart_len; i++) { + char buf[10]; + if ((count % 8) == 0) printf(" "); + printf(" "); + sprintf(buf,"0x%04x",pagestart[i]); + if (strlen(buf) < 7) printf("%*s",7-strlen(buf),""); + printf("%s,",buf); + count++; + if ((count % 8) == 0) printf("\n"); + } + } + printf("\n"); + printf("};\n"); +#undef row_convert + } + rewind(stdin); + printf("\n"); + { + int table[0x110000]; + bool pages[0x4400]; + int maxpage = -1; + unsigned int combining_prefixes[100]; + unsigned int combining_prefixes_len = 0; + { + unsigned int i; + for (i = 0; i < 0x110000; i++) + table[i] = -1; + for (i = 0; i < 0x4400; i++) + pages[i] = false; + } + for (;;) { + char line[30]; + unsigned int plane, row, col; + memset(line,0,sizeof(line)); + if (scanf("%[^\n]\n",line) < 1) + break; + assert(line[0]=='0'); + assert(line[1]=='x'); + assert(isxdigit(line[2])); + assert(isxdigit(line[3])); + assert(isxdigit(line[4])); + assert(isxdigit(line[5])); + assert(isxdigit(line[6])); + assert(line[7]=='\t'); + line[7] = '\0'; + col = strtoul(&line[5],NULL,16); + line[5] = '\0'; + row = strtoul(&line[3],NULL,16); + line[3] = '\0'; + plane = strtoul(&line[2],NULL,16) - 1; + if (line[20] != '\0' && line[21] == '\0') { + unsigned int u1, u2; + assert(line[8]=='0'); + assert(line[9]=='x'); + assert(isxdigit(line[10])); + assert(isxdigit(line[11])); + assert(isxdigit(line[12])); + assert(isxdigit(line[13])); + assert(line[14]==' '); + assert(line[15]=='0'); + assert(line[16]=='x'); + assert(isxdigit(line[17])); + assert(isxdigit(line[18])); + assert(isxdigit(line[19])); + assert(isxdigit(line[20])); + u2 = strtoul(&line[17],NULL,16); + line[14] = '\0'; + u1 = strtoul(&line[10],NULL,16); + assert(u2 == 0x02E5 || u2 == 0x02E9 || u2 == 0x0300 || u2 == 0x0301 + || u2 == 0x309A); + assert(combining_prefixes_len < sizeof(combining_prefixes)/sizeof(combining_prefixes[0])); + combining_prefixes[combining_prefixes_len++] = u1; + } else { + unsigned int ucs; + assert(line[8]=='0'); + assert(line[9]=='x'); + assert(isxdigit(line[10])); + assert(isxdigit(line[11])); + assert(isxdigit(line[12])); + assert(isxdigit(line[13])); + ucs = strtoul(&line[10],NULL,16); + /* Add an entry. */ + assert(plane <= 1); + assert(row <= 0x7f); + assert(col <= 0x7f); + table[ucs] = (plane << 15) | (row << 8) | col; + pages[ucs>>6] = true; + if (maxpage < 0 || (ucs>>6) > maxpage) maxpage = ucs>>6; + } + } + { + unsigned int i; + for (i = 0; i < combining_prefixes_len; i++) { + unsigned int u1 = combining_prefixes[i]; + assert(table[u1] >= 0); + table[u1] |= 0x0080; + } + } + printf("static const short jisx0213_from_ucs_level1[%d] = {\n",maxpage+1); + { + unsigned int index = 0; + unsigned int i; + for (i = 0; i <= maxpage; i++) { + if ((i % 8) == 0) printf(" "); + if (pages[i]) { + printf(" %3u,",index); + index++; + } else { + printf(" %3d,",-1); + } + if (((i+1) % 8) == 0) printf("\n"); + } + } + printf("\n"); + printf("};\n"); + printf("\n"); + #if 0 /* Dense array */ + printf("static const unsigned short jisx0213_from_ucs_level2[] = {\n"); + { + unsigned int i; + for (i = 0; i <= maxpage; i++) { + if (pages[i]) { + printf(" /* 0x%04X */\n",i<<6); + { + unsigned int j; + for (j = 0; j < 0x40; ) { + unsigned int ucs = (i<<6)+j; + int value = table[ucs]; + if (value < 0) value = 0; + if ((j % 8) == 0) printf(" "); + printf(" 0x%04x,",value); + j++; + if ((j % 8) == 0) printf("\n"); + } + } + } + } + } + printf("};\n"); + #else /* Sparse array */ + { + int summary_indx[0x11000]; + int summary_used[0x11000]; + unsigned int i, k, indx; + printf("static const unsigned short jisx0213_from_ucs_level2_data[] = {\n"); + /* Fill summary_indx[] and summary_used[]. */ + indx = 0; + for (i = 0, k = 0; i <= maxpage; i++) { + if (pages[i]) { + unsigned int j1, j2; + unsigned int count = 0; + printf(" /* 0x%04X */\n",i<<6); + for (j1 = 0; j1 < 4; j1++) { + summary_indx[4*k+j1] = indx; + summary_used[4*k+j1] = 0; + for (j2 = 0; j2 < 16; j2++) { + unsigned int j = 16*j1+j2; + unsigned int ucs = (i<<6)+j; + int value = table[ucs]; + if (value < 0) value = 0; + if (value > 0) { + summary_used[4*k+j1] |= (1 << j2); + if ((count % 8) == 0) printf(" "); + printf(" 0x%04x,",value); + count++; + if ((count % 8) == 0) printf("\n"); + indx++; + } + } + } + if ((count % 8) > 0) + printf("\n"); + k++; + } + } + printf("};\n"); + printf("\n"); + printf("static const Summary16 jisx0213_from_ucs_level2_2indx[] = {\n"); + for (i = 0, k = 0; i <= maxpage; i++) { + if (pages[i]) { + unsigned int j1; + printf(" /* 0x%04X */\n",i<<6); + printf(" "); + for (j1 = 0; j1 < 4; j1++) { + printf(" { %4d, 0x%04x },", summary_indx[4*k+j1], summary_used[4*k+j1]); + } + printf("\n"); + k++; + } + } + printf("};\n"); + } + #endif + printf("\n"); + } + printf("#ifdef __GNUC__\n"); + printf("__inline\n"); + printf("#else\n"); + printf("#ifdef __cplusplus\n"); + printf("inline\n"); + printf("#endif\n"); + printf("#endif\n"); + printf("static ucs4_t jisx0213_to_ucs4 (unsigned int row, unsigned int col)\n"); + printf("{\n"); + printf(" ucs4_t val;\n"); + printf("\n"); + printf(" if (row >= 0x121 && row <= 0x17e)\n"); + printf(" row -= 289;\n"); + printf(" else if (row == 0x221)\n"); + printf(" row -= 451;\n"); + printf(" else if (row >= 0x223 && row <= 0x225)\n"); + printf(" row -= 452;\n"); + printf(" else if (row == 0x228)\n"); + printf(" row -= 454;\n"); + printf(" else if (row >= 0x22c && row <= 0x22f)\n"); + printf(" row -= 457;\n"); + printf(" else if (row >= 0x26e && row <= 0x27e)\n"); + printf(" row -= 519;\n"); + printf(" else\n"); + printf(" return 0x0000;\n"); + printf("\n"); + printf(" if (col >= 0x21 && col <= 0x7e)\n"); + printf(" col -= 0x21;\n"); + printf(" else\n"); + printf(" return 0x0000;\n"); + printf("\n"); + printf(" val = jisx0213_to_ucs_main[row * 94 + col];\n"); + printf(" val = jisx0213_to_ucs_pagestart[val >> 8] + (val & 0xff);\n"); + printf(" if (val == 0xfffd)\n"); + printf(" val = 0x0000;\n"); + printf(" return val;\n"); + printf("}\n"); + printf("\n"); + printf("#ifdef __GNUC__\n"); + printf("__inline\n"); + printf("#else\n"); + printf("#ifdef __cplusplus\n"); + printf("inline\n"); + printf("#endif\n"); + printf("#endif\n"); + printf("static unsigned short ucs4_to_jisx0213 (ucs4_t ucs)\n"); + printf("{\n"); + printf(" if (ucs < (sizeof(jisx0213_from_ucs_level1)/sizeof(jisx0213_from_ucs_level1[0])) << 6) {\n"); + printf(" int index1 = jisx0213_from_ucs_level1[ucs >> 6];\n"); + printf(" if (index1 >= 0)"); + #if 0 /* Dense array */ + printf("\n"); + printf(" return jisx0213_from_ucs_level2[(index1 << 6) + (ucs & 0x3f)];\n"); + #else /* Sparse array */ + printf(" {\n"); + printf(" const Summary16 *summary = &jisx0213_from_ucs_level2_2indx[((index1 << 6) + (ucs & 0x3f)) >> 4];\n"); + printf(" unsigned short used = summary->used;\n"); + printf(" unsigned int i = ucs & 0x0f;\n"); + printf(" if (used & ((unsigned short) 1 << i)) {\n"); + printf(" /* Keep in `used' only the bits 0..i-1. */\n"); + printf(" used &= ((unsigned short) 1 << i) - 1;\n"); + printf(" /* Add `summary->indx' and the number of bits set in `used'. */\n"); + printf(" used = (used & 0x5555) + ((used & 0xaaaa) >> 1);\n"); + printf(" used = (used & 0x3333) + ((used & 0xcccc) >> 2);\n"); + printf(" used = (used & 0x0f0f) + ((used & 0xf0f0) >> 4);\n"); + printf(" used = (used & 0x00ff) + (used >> 8);\n"); + printf(" return jisx0213_from_ucs_level2_data[summary->indx + used];\n"); + printf(" };\n"); + printf(" };\n"); + #endif + printf(" }\n"); + printf(" return 0x0000;\n"); + printf("}\n"); + printf("\n"); + printf("#endif /* _JISX0213_H */\n"); +} + +/* Main program */ + +int main (int argc, char *argv[]) +{ + const char* charsetname; + const char* name; + + if (argc != 3) + exit(1); + charsetname = argv[1]; + name = argv[2]; + + output_title(charsetname); + + if (!strcmp(name,"gb2312") + || !strcmp(name,"isoir165ext") || !strcmp(name,"gb12345ext") + || !strcmp(name,"jisx0208") || !strcmp(name,"jisx0212")) + do_normal(name); + else if (!strcmp(name,"cns11643_1") || !strcmp(name,"cns11643_2") + || !strcmp(name,"cns11643_3") || !strcmp(name,"cns11643_4a") + || !strcmp(name,"cns11643_4b") || !strcmp(name,"cns11643_5") + || !strcmp(name,"cns11643_6") || !strcmp(name,"cns11643_7") + || !strcmp(name,"cns11643_15")) + do_normal_only_charset2uni(name); + else if (!strcmp(name,"cns11643_inv")) + do_cns11643_only_uni2charset(name); + else if (!strcmp(name,"gbkext1")) + do_gbk1_only_charset2uni(name); + else if (!strcmp(name,"gbkext2")) + do_gbk2_only_charset2uni(name); + else if (!strcmp(name,"gbkext_inv")) + do_gbk1_only_uni2charset(name); + else if (!strcmp(name,"cp936ext") || !strcmp(name,"gb18030ext")) + do_gbk1(name); + else if (!strcmp(name,"ksc5601")) + do_ksc5601(name); + else if (!strcmp(name,"uhc_1")) + do_uhc_1(name); + else if (!strcmp(name,"uhc_2")) + do_uhc_2(name); + else if (!strcmp(name,"big5") || !strcmp(name,"cp950ext")) + do_big5(name); + else if (!strcmp(name,"hkscs1999") || !strcmp(name,"hkscs2001") + || !strcmp(name,"hkscs2004")) + do_hkscs(name); + else if (!strcmp(name,"johab_hangul")) + do_johab_hangul(name); + else if (!strcmp(name,"cp932ext")) + do_sjis(name); + else if (!strcmp(name,"gb18030uni")) + do_gb18030uni(name); + else if (!strcmp(name,"jisx0213")) + do_jisx0213(name); + else + exit(1); + + return 0; +} diff --git a/jni/iconv/tools/cjk_variants.c b/jni/iconv/tools/cjk_variants.c new file mode 100644 index 0000000..fa26276 --- /dev/null +++ b/jni/iconv/tools/cjk_variants.c @@ -0,0 +1,126 @@ +/* Copyright (C) 1999-2002 Free Software Foundation, Inc. + This file is part of the GNU LIBICONV Tools. + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software Foundation, + Inc., along with this program. If not, see . */ + +/* + * Generates Unicode variants table from Koichi Yasuoka's UniVariants file. + */ + +#include +#include + +#define ENTRIES 8176 /* number of lines in UniVariants file */ +#define MAX_PER_ENTRY 10 /* max number of entries per line in file */ + +int main (int argc, char *argv[]) +{ + int variants[MAX_PER_ENTRY*ENTRIES]; + int uni2index[0x10000]; + int index; + + if (argc != 1) + exit(1); + + printf("/*\n"); + printf(" * Copyright (C) 1999-2002 Free Software Foundation, Inc.\n"); + printf(" * This file is part of the GNU LIBICONV Library.\n"); + printf(" *\n"); + printf(" * The GNU LIBICONV Library is free software; you can redistribute it\n"); + printf(" * and/or modify it under the terms of the GNU Library General Public\n"); + printf(" * License as published by the Free Software Foundation; either version 2\n"); + printf(" * of the License, or (at your option) any later version.\n"); + printf(" *\n"); + printf(" * The GNU LIBICONV Library is distributed in the hope that it will be\n"); + printf(" * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of\n"); + printf(" * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n"); + printf(" * Library General Public License for more details.\n"); + printf(" *\n"); + printf(" * You should have received a copy of the GNU Library General Public\n"); + printf(" * License along with the GNU LIBICONV Library; see the file COPYING.LIB.\n"); + printf(" * If not, write to the Free Software Foundation, Inc., 51 Franklin Street,\n"); + printf(" * Fifth Floor, Boston, MA 02110-1301, USA.\n"); + printf(" */\n"); + printf("\n"); + printf("/*\n"); + printf(" * CJK variants table\n"); + printf(" */\n"); + printf("\n"); + { + int c; + int j; + for (j = 0; j < 0x10000; j++) + uni2index[j] = -1; + index = 0; + for (;;) { + c = getc(stdin); + if (c == EOF) + break; + if (c == '#') { + do { c = getc(stdin); } while (!(c == EOF || c == '\n')); + continue; + } + ungetc(c,stdin); + if (scanf("%x",&j) != 1) + exit(1); + c = getc(stdin); + if (c != '\t') + exit(1); + uni2index[j] = index; + for (;;) { + int i; + if (scanf("%x",&i) != 1) + exit(1); + if (!(i >= 0x3000 && i < 0x3000+0x8000)) + exit(1); + variants[index++] = i-0x3000; + c = getc(stdin); + if (c != ' ') + break; + } + variants[index-1] |= 0x8000; /* end of list marker */ + if (c != '\n') + exit(1); + } + } + printf("static const unsigned short cjk_variants[%d] = {",index); + { + int i; + for (i = 0; i < index; i++) { + if ((i % 8) == 0) + printf("\n "); + printf(" 0x%04x,",variants[i]); + } + printf("\n};\n"); + } + printf("\n"); + printf("static const short cjk_variants_indx[0x5200] = {\n"); + { + int j; + for (j = 0x4e00; j < 0xa000; j++) { + if ((j % 0x100) == 0) + printf(" /* 0x%04x */\n", j); + if ((j % 8) == 0) + printf(" "); + printf(" %5d,",uni2index[j]); + if ((j % 8) == 7) + printf("\n"); + } + printf("};\n"); + } + printf("\n"); + + return 0; +} -- cgit v1.2.3