char * ckcuni = "Unicode support 8.0.115, 9 Oct 2002"; #ifdef OS2 #define KERMITFONT #endif /* OS2 */ /* C K C U N I . C -- Unicode/Terminal character-set translations */ /* Copyright (C) 1999, 2004, Trustees of Columbia University in the City of New York. All rights reserved. See the C-Kermit COPYING.TXT file or the copyright text in the ckcmai.c module for disclaimer and permissions. Authors: Frank da Cruz The Kermit Project, Columbia University, New York City. Jeffrey E Altman Secure Endpoints Inc., New York City Functions u_blah() translate from blah to Unicode (incoming material). Functions tx_blah() translate from Unicode to blah (keystrokes). Function pointers are kept in parallel arrays indexed by TX_blah values defined in ckcuni.h. NOTE: tx_decspec and tx_dectech are undefined since these character sets are never typed, only displayed. The blah_u() routines accept an unsigned character value in character-set blah, and return the Unicode translation, or 0xfffd if the character is not defined in Unicode. The 8th bit of the argument should be ignored, a`la ISO 4873 and 2022. The tx_blah() routines accept a unicode value and return the value of the corresponding character in character-set blah, or else -1 if the character does not exist in blah. In this case, the full 8-bit value is returned, since ISO 2022 only works in the host-to-terminal direction. NOTE: KERMITFONT should be defined only if we are using the new (still hypothetical) Kermit font that has all the VT/Heath/Wyse/TVI graphic characters in it. IMPORTANT: all Kermitfont code points need updating to the values in the final proposal to the UTC. LATER NOTE: The needed characters were approved for Unicode 3.1, and therefore nothing special should be required to use them, except that it will take some time for them to show up in commercial fonts. TO DO: A lot of the functions can be tightened up -- use ranges when possible, sort switch statements in order of frequency, etc. */ #include "ckcsym.h" /* Includes... */ #include "ckcdeb.h" #include "ckcker.h" #include "ckucmd.h" #include "ckcxla.h" #include "ckuxla.h" #ifdef UNICODE #ifdef OS2 /* This material is needed for the integration of TextPS into Kermit 95. When printing a file we use the SET FILE CHARACTER-SET value as the input character-set and then convert it to the special Latin1 set called CourierLatin1 using the Unicode translation functions. */ struct _pair { int tx; int fc; } TXFC[] = { TX_ASCII, FC_USASCII, TX_BRITISH, FC_UKASCII, TX_CN_FRENCH, FC_FCASCII, TX_CP437, FC_CP437, TX_CP850, FC_CP850, TX_CP852, FC_CP852, TX_CP857, -2, TX_CP862, FC_CP862, TX_CP864, -2, TX_CP866, FC_CP866, TX_CP869, -2, TX_CUBAN, -2, TX_CZECH, -2, TX_DANISH, -2, TX_DECMCS, FC_DECMCS, TX_DECSPEC, -2, /* while defined, not in fcs tables */ TX_DECTECH, -2, /* while defined, not in fcs tables */ TX_DGI, FC_DGMCS, TX_DUTCH, FC_DUASCII, TX_FINNISH, FC_FIASCII, TX_FRENCH, FC_FRASCII, TX_GERMAN, FC_GEASCII, TX_HE7, FC_HE7, TX_HPR8, FC_HPR8, TX_HUNGARIAN, FC_HUASCII, TX_ITALIAN, FC_ITASCII, TX_J201R, -2, TX_J201K, -2, TX_KOI7, FC_KOI7, TX_KOI8, FC_KOI8, TX_KOI8R, FC_KOI8R, TX_KOI8U, FC_KOI8U, TX_8859_1, FC_1LATIN, TX_8859_2, FC_2LATIN, TX_8859_3, -2, TX_8859_4, -2, TX_8859_5, FC_CYRILL, TX_8859_6, -2, TX_8859_7, -2, TX_8859_8, FC_HEBREW, TX_8859_9, -2, TX_8859_10, -2, TX_8859_15, -2, TX_MACL1, FC_APPQD, TX_NEXT, FC_NEXT, TX_NORWEGIAN, FC_NOASCII, TX_PORTUGUESE, FC_POASCII, TX_SPANISH, FC_SPASCII, TX_SWEDISH, FC_SWASCII, TX_SWISS, FC_CHASCII, TX_ICELANDIC, -2, TX_JIS7, -2, TX_SHJIS, FC_SHJIS, TX_JEUC, FC_JEUC, TX_JDEC, FC_JDEC, TX_ELOT927, FC_ELOT, TX_DGPCGRPH, -2, TX_DGLDGRPH, -2, TX_DGWPGRPH, -2, TX_HPLINE, -2, TX_HPMATH, -2, TX_QNXGRPH, -2, TX_SNIBRACK, -2, TX_SNIEURO, -2, TX_SNIFACET, -2, TX_SNIIBM, -2, TX_SNIBLANK, -2, TX_CP1252, -2, TX_CP1250, FC_CP1250, TX_CP1251, FC_CP1251, TX_CP1253, -2, TX_CP1254, -2, TX_CP1257, -2, TX_CP856, -2, TX_CP855, FC_CP855, TX_CP819, FC_1LATIN, TX_CP912, FC_2LATIN, TX_CP913, -2, TX_CP914, -2, TX_CP915, FC_CYRILL, TX_CP1089, -2, TX_CP813, FC_GREEK, TX_CP916, FC_HEBREW, TX_CP920, -2, TX_CP1051, -2, TX_CP858, FC_CP858, TX_8859_15, FC_9LATIN, TX_CP923, FC_CP923, TX_ELOT928, -2, TX_CP10000, -2, TX_CP37, -2, TX_CP1255, -2, TX_CP1256, -2, TX_CP1258, -2, TX_MAZOVIA, FC_MAZOVIA, TX_APL1, -2, TX_APL2, -2, TX_APL3, -2, TX_APL4, -2, TX_APL5, -2, TX_TRANSP, FC_TRANSP }; int nTXFC = sizeof(TXFC) / sizeof(struct _pair); int #ifdef CK_ANSIC fc2tx(int fc) #else fc2tx(int c) int fc; #endif /* CK_ANSIC */ { int i; for (i = 0; i < nTXFC ; i++) if (TXFC[i].fc == fc && TXFC[i].tx >= 0) return(TXFC[i].tx); return(TX_ASCII); } int #ifdef CK_ANSIC tx2fc(int tx) #else tx2fc(int x) int tx; #endif /* CK_ANSIC */ { int i; for (i = 0; i < nTXFC ; i++) if (TXFC[i].tx == tx && TXFC[i].fc >= 0) return(TXFC[i].fc); return(FC_USASCII); } /* SET TERMINAL REMOTE CHARACTER-SET keyword table */ struct keytab txrtab[] = { "apl2-ibm", TX_APL4, 0, "apl-2741", TX_APL5, 0, "apl-dyadic", TX_APL2, 0, "apl-iso", TX_APL1, 0, "apl-plus-2000", TX_APL3, 0, /* = APL-2000 */ "arabic-iso", TX_8859_6, 0, "ascii", TX_ASCII, 0, "british", TX_BRITISH, 0, "canadian-french", TX_CN_FRENCH, 0, "bulgaria-pc", TX_CP856, 0, #ifdef COMMENT "cp037", TX_CP37, 0, /* U.S. EBCDIC */ #endif /* COMMENT */ "cp10000", TX_CP10000, 0, /* Apple Quickdraw */ "cp1051", TX_CP1051, 0, /* Same as HP Roman 8 */ "cp1089", TX_CP1089, 0, /* Same as ISO 8859-6 */ "cp1250", TX_CP1250, 0, /* Latin-2 Windows */ "cp1251", TX_CP1251, 0, /* Cyrillic Windows */ "cp1252", TX_CP1252, 0, /* Latin-1 Windows */ "cp1253", TX_CP1253, 0, /* Greek Windows */ "cp1254", TX_CP1254, 0, /* Turkey Windows */ "cp1255", TX_CP1255, 0, /* Hebrew Windows */ "cp1256", TX_CP1256, 0, /* Arabic Windows */ "cp1257", TX_CP1257, 0, /* Latin-4 Windows */ "cp1258", TX_CP1258, 0, /* Viet Nam Windows */ "cp437", TX_CP437, 0, "cp813", TX_CP813, 0, /* Same as ISO 8859-7 */ "cp819", TX_CP819, 0, /* Same as ISO 8859-1 */ "cp850", TX_CP850, 0, "cp852", TX_CP852, 0, "cp855", TX_CP855, 0, /* Cyrillic */ "cp856", TX_CP856, CM_INV, /* Bulgaria */ "cp857", TX_CP857, 0, /* Latin-5 */ "cp858", TX_CP858, 0, /* Euro modified cp850 */ "cp862-hebrew", TX_CP862, 0, /* Hebrew */ "cp864", TX_CP864, 0, /* Arabic */ "cp866", TX_CP866, 0, /* Cyrillic */ "cp869", TX_CP869, 0, /* Greek */ "cp912", TX_CP912, 0, /* Same as ISO 8859-2 */ "cp913", TX_CP913, 0, /* Same as ISO 8859-3 */ "cp914", TX_CP914, 0, /* Same as ISO 8859-4 */ "cp915", TX_CP915, 0, /* Same as ISO 8859-5 */ "cp916", TX_CP916, 0, /* Same as ISO 8859-8 */ "cp920", TX_CP920, 0, /* Same as ISO 8859-9 */ "cp923", TX_CP923, 0, /* Same as ISO 8859-15 */ #ifdef COMMENT /* Not implemented yet */ "cuban", TX_CUBAN, 0, #endif /* COMMENT */ "cyrillic-iso", TX_8859_5, 0, #ifdef COMMENT /* Not implemented yet */ "czech", TX_CZECH, 0, #endif /* COMMENT */ "danish", TX_DANISH, 0, "dec-m", TX_DECMCS, CM_ABR|CM_INV, "dec-mcs", TX_DECMCS, CM_INV, "dec-multinational",TX_DECMCS, 0, #ifdef COMMENT /* Not implemented yet */ "dec-kanji", TX_JDEC, 0, #endif /* COMMENT */ "dec-special", TX_DECSPEC, 0, "dec-technical", TX_DECTECH, 0, "dg-international", TX_DGI, 0, "dg-linedrawing", TX_DGLDGRPH, 0, "dg-specialgraphcs",TX_DGPCGRPH, 0, "dg-wordprocessing",TX_DGWPGRPH, 0, "dutch", TX_DUTCH, 0, "elot927-greek", TX_ELOT927, 0, "elot928-greek", TX_ELOT928, 0, "finnish", TX_FINNISH, 0, "french", TX_FRENCH, 0, "german", TX_GERMAN, 0, "greek-iso", TX_8859_7, 0, "hebrew-7", TX_HE7, 0, "hebrew-iso", TX_8859_8, 0, "hp-line-drawing", TX_HPLINE, 0, "hp-math/technical",TX_HPMATH, 0, "hp-roman8", TX_HPR8, 0, "hungarian", TX_HUNGARIAN, 0, "italian", TX_ITALIAN, 0, "japanese-roman", TX_J201R, 0, #ifdef COMMENT /* Not implemented yet */ "japanese-euc", TX_JEUC, 0, "jis7-kanji", TX_JIS7, 0, #endif /* COMMENT */ "katakana", TX_J201K, 0, "ko", TX_KOI8, CM_ABR|CM_INV, "koi", TX_KOI8, CM_ABR|CM_INV, "koi8", TX_KOI8, 0, "koi8-cyrillic", TX_KOI8, CM_INV, "koi8r", TX_KOI8R, 0, "koi8u", TX_KOI8U, 0, "l", TX_8859_1, CM_ABR|CM_INV, "la", TX_8859_1, CM_ABR|CM_INV, "lat", TX_8859_1, CM_ABR|CM_INV, "lati", TX_8859_1, CM_ABR|CM_INV, "latin", TX_8859_1, CM_ABR|CM_INV, "latin1-iso", TX_8859_1, 0, "latin2-iso", TX_8859_2, 0, "latin3-iso", TX_8859_3, 0, "latin4-iso", TX_8859_4, 0, "latin5-iso", TX_8859_9, 0, "latin6-iso", TX_8859_10, 0, "latin9-iso", TX_8859_15, 0, "macintosh-latin", TX_MACL1, 0, "mazovia-pc", TX_MAZOVIA, 0, "next-multinational",TX_NEXT, 0, "norwegian", TX_NORWEGIAN, 0, "portuguese", TX_PORTUGUESE, 0, "qnx-console", TX_QNXGRPH, 0, #ifdef COMMENT /* Not implemented yet */ "shift-jis", TX_SHJIS, 0, #endif /* COMMENT */ "short-koi", TX_KOI7, 0, "sni-blanks", TX_SNIBLANK, 0, "sni-brackets", TX_SNIBRACK, 0, "sni-euro", TX_SNIEURO, 0, "sni-facet", TX_SNIFACET, 0, "sni-ibm", TX_SNIIBM, 0, "spanish", TX_SPANISH, 0, "swedish", TX_SWEDISH, 0, "swiss", TX_SWISS, 0, "transparent", TX_TRANSP, 0, #ifdef COMMENT "utf7", TX_UTF7, 0, #endif /* COMMENT */ "utf8", TX_UTF8, 0, "", 0, 0 }; int ntxrtab = sizeof(txrtab)/sizeof(struct keytab) - 1; #endif /* OS2 */ #ifdef KANJI /* All Kanji/Unicode translations are based on the Unicode 3.0 Shift-JIS mapping. Other character sets, like EUC-JP, JIS-7, etc, are transformed algorithmically to/from Shift-JIS before/after conversion to/from Unicode. This is because Kanji/Unicode mapping tables add about 120K to the program, and we don't want to do this for each Kanji character set. */ static USHORT /* Shift-JIS to Unicode */ sju_8140[] = { /* 0x8140 thru 0x9ffc */ 0x3000, 0x3001, 0x3002, 0xff0c, 0xff0e, 0x30fb, 0xff1a, 0xff1b, 0xff1f, 0xff01, 0x309b, 0x309c, 0x00b4, 0xff40, 0x00a8, 0xff3e, 0xffe3, 0xff3f, 0x30fd, 0x30fe, 0x309d, 0x309e, 0x3003, 0x4edd, 0x3005, 0x3006, 0x3007, 0x30fc, 0x2015, 0x2010, 0xff0f, 0x005c, 0x301c, 0x2016, 0xff5c, 0x2026, 0x2025, 0x2018, 0x2019, 0x201c, 0x201d, 0xff08, 0xff09, 0x3014, 0x3015, 0xff3b, 0xff3d, 0xff5b, 0xff5d, 0x3008, 0x3009, 0x300a, 0x300b, 0x300c, 0x300d, 0x300e, 0x300f, 0x3010, 0x3011, 0xff0b, 0x2212, 0x00b1, 0x00d7, 0xfffd, 0x00f7, 0xff1d, 0x2260, 0xff1c, 0xff1e, 0x2266, 0x2267, 0x221e, 0x2234, 0x2642, 0x2640, 0x00b0, 0x2032, 0x2033, 0x2103, 0xffe5, 0xff04, 0x00a2, 0x00a3, 0xff05, 0xff03, 0xff06, 0xff0a, 0xff20, 0x00a7, 0x2606, 0x2605, 0x25cb, 0x25cf, 0x25ce, 0x25c7, 0x25c6, 0x25a1, 0x25a0, 0x25b3, 0x25b2, 0x25bd, 0x25bc, 0x203b, 0x3012, 0x2192, 0x2190, 0x2191, 0x2193, 0x3013, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x2208, 0x220b, 0x2286, 0x2287, 0x2282, 0x2283, 0x222a, 0x2229, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x2227, 0x2228, 0x00ac, 0x21d2, 0x21d4, 0x2200, 0x2203, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x2220, 0x22a5, 0x2312, 0x2202, 0x2207, 0x2261, 0x2252, 0x226a, 0x226b, 0x221a, 0x223d, 0x221d, 0x2235, 0x222b, 0x222c, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x212b, 0x2030, 0x266f, 0x266d, 0x266a, 0x2020, 0x2021, 0x00b6, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x25ef, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xff10, 0xff11, 0xff12, 0xff13, 0xff14, 0xff15, 0xff16, 0xff17, 0xff18, 0xff19, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xff21, 0xff22, 0xff23, 0xff24, 0xff25, 0xff26, 0xff27, 0xff28, 0xff29, 0xff2a, 0xff2b, 0xff2c, 0xff2d, 0xff2e, 0xff2f, 0xff30, 0xff31, 0xff32, 0xff33, 0xff34, 0xff35, 0xff36, 0xff37, 0xff38, 0xff39, 0xff3a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xff41, 0xff42, 0xff43, 0xff44, 0xff45, 0xff46, 0xff47, 0xff48, 0xff49, 0xff4a, 0xff4b, 0xff4c, 0xff4d, 0xff4e, 0xff4f, 0xff50, 0xff51, 0xff52, 0xff53, 0xff54, 0xff55, 0xff56, 0xff57, 0xff58, 0xff59, 0xff5a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x3041, 0x3042, 0x3043, 0x3044, 0x3045, 0x3046, 0x3047, 0x3048, 0x3049, 0x304a, 0x304b, 0x304c, 0x304d, 0x304e, 0x304f, 0x3050, 0x3051, 0x3052, 0x3053, 0x3054, 0x3055, 0x3056, 0x3057, 0x3058, 0x3059, 0x305a, 0x305b, 0x305c, 0x305d, 0x305e, 0x305f, 0x3060, 0x3061, 0x3062, 0x3063, 0x3064, 0x3065, 0x3066, 0x3067, 0x3068, 0x3069, 0x306a, 0x306b, 0x306c, 0x306d, 0x306e, 0x306f, 0x3070, 0x3071, 0x3072, 0x3073, 0x3074, 0x3075, 0x3076, 0x3077, 0x3078, 0x3079, 0x307a, 0x307b, 0x307c, 0x307d, 0x307e, 0x307f, 0x3080, 0x3081, 0x3082, 0x3083, 0x3084, 0x3085, 0x3086, 0x3087, 0x3088, 0x3089, 0x308a, 0x308b, 0x308c, 0x308d, 0x308e, 0x308f, 0x3090, 0x3091, 0x3092, 0x3093, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x30a1, 0x30a2, 0x30a3, 0x30a4, 0x30a5, 0x30a6, 0x30a7, 0x30a8, 0x30a9, 0x30aa, 0x30ab, 0x30ac, 0x30ad, 0x30ae, 0x30af, 0x30b0, 0x30b1, 0x30b2, 0x30b3, 0x30b4, 0x30b5, 0x30b6, 0x30b7, 0x30b8, 0x30b9, 0x30ba, 0x30bb, 0x30bc, 0x30bd, 0x30be, 0x30bf, 0x30c0, 0x30c1, 0x30c2, 0x30c3, 0x30c4, 0x30c5, 0x30c6, 0x30c7, 0x30c8, 0x30c9, 0x30ca, 0x30cb, 0x30cc, 0x30cd, 0x30ce, 0x30cf, 0x30d0, 0x30d1, 0x30d2, 0x30d3, 0x30d4, 0x30d5, 0x30d6, 0x30d7, 0x30d8, 0x30d9, 0x30da, 0x30db, 0x30dc, 0x30dd, 0x30de, 0x30df, 0xfffd, 0x30e0, 0x30e1, 0x30e2, 0x30e3, 0x30e4, 0x30e5, 0x30e6, 0x30e7, 0x30e8, 0x30e9, 0x30ea, 0x30eb, 0x30ec, 0x30ed, 0x30ee, 0x30ef, 0x30f0, 0x30f1, 0x30f2, 0x30f3, 0x30f4, 0x30f5, 0x30f6, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397, 0x0398, 0x0399, 0x039a, 0x039b, 0x039c, 0x039d, 0x039e, 0x039f, 0x03a0, 0x03a1, 0x03a3, 0x03a4, 0x03a5, 0x03a6, 0x03a7, 0x03a8, 0x03a9, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x03b1, 0x03b2, 0x03b3, 0x03b4, 0x03b5, 0x03b6, 0x03b7, 0x03b8, 0x03b9, 0x03ba, 0x03bb, 0x03bc, 0x03bd, 0x03be, 0x03bf, 0x03c0, 0x03c1, 0x03c3, 0x03c4, 0x03c5, 0x03c6, 0x03c7, 0x03c8, 0x03c9, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0401, 0x0416, 0x0417, 0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e, 0x041f, 0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427, 0x0428, 0x0429, 0x042a, 0x042b, 0x042c, 0x042d, 0x042e, 0x042f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0451, 0x0436, 0x0437, 0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0xfffd, 0x043e, 0x043f, 0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447, 0x0448, 0x0449, 0x044a, 0x044b, 0x044c, 0x044d, 0x044e, 0x044f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x2500, 0x2502, 0x250c, 0x2510, 0x2518, 0x2514, 0x251c, 0x252c, 0x2524, 0x2534, 0x253c, 0x2501, 0x2503, 0x250f, 0x2513, 0x251b, 0x2517, 0x2523, 0x2533, 0x252b, 0x253b, 0x254b, 0x2520, 0x252f, 0x2528, 0x2537, 0x253f, 0x251d, 0x2530, 0x2525, 0x2538, 0x2542, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x4e9c, 0x5516, 0x5a03, 0x963f, 0x54c0, 0x611b, 0x6328, 0x59f6, 0x9022, 0x8475, 0x831c, 0x7a50, 0x60aa, 0x63e1, 0x6e25, 0x65ed, 0x8466, 0x82a6, 0x9bf5, 0x6893, 0x5727, 0x65a1, 0x6271, 0x5b9b, 0x59d0, 0x867b, 0x98f4, 0x7d62, 0x7dbe, 0x9b8e, 0x6216, 0x7c9f, 0x88b7, 0x5b89, 0x5eb5, 0x6309, 0x6697, 0x6848, 0x95c7, 0x978d, 0x674f, 0x4ee5, 0x4f0a, 0x4f4d, 0x4f9d, 0x5049, 0x56f2, 0x5937, 0x59d4, 0x5a01, 0x5c09, 0x60df, 0x610f, 0x6170, 0x6613, 0x6905, 0x70ba, 0x754f, 0x7570, 0x79fb, 0x7dad, 0x7def, 0x80c3, 0x840e, 0x8863, 0x8b02, 0x9055, 0x907a, 0x533b, 0x4e95, 0x4ea5, 0x57df, 0x80b2, 0x90c1, 0x78ef, 0x4e00, 0x58f1, 0x6ea2, 0x9038, 0x7a32, 0x8328, 0x828b, 0x9c2f, 0x5141, 0x5370, 0x54bd, 0x54e1, 0x56e0, 0x59fb, 0x5f15, 0x98f2, 0x6deb, 0x80e4, 0x852d, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9662, 0x9670, 0x96a0, 0x97fb, 0x540b, 0x53f3, 0x5b87, 0x70cf, 0x7fbd, 0x8fc2, 0x96e8, 0x536f, 0x9d5c, 0x7aba, 0x4e11, 0x7893, 0x81fc, 0x6e26, 0x5618, 0x5504, 0x6b1d, 0x851a, 0x9c3b, 0x59e5, 0x53a9, 0x6d66, 0x74dc, 0x958f, 0x5642, 0x4e91, 0x904b, 0x96f2, 0x834f, 0x990c, 0x53e1, 0x55b6, 0x5b30, 0x5f71, 0x6620, 0x66f3, 0x6804, 0x6c38, 0x6cf3, 0x6d29, 0x745b, 0x76c8, 0x7a4e, 0x9834, 0x82f1, 0x885b, 0x8a60, 0x92ed, 0x6db2, 0x75ab, 0x76ca, 0x99c5, 0x60a6, 0x8b01, 0x8d8a, 0x95b2, 0x698e, 0x53ad, 0x5186, 0xfffd, 0x5712, 0x5830, 0x5944, 0x5bb4, 0x5ef6, 0x6028, 0x63a9, 0x63f4, 0x6cbf, 0x6f14, 0x708e, 0x7114, 0x7159, 0x71d5, 0x733f, 0x7e01, 0x8276, 0x82d1, 0x8597, 0x9060, 0x925b, 0x9d1b, 0x5869, 0x65bc, 0x6c5a, 0x7525, 0x51f9, 0x592e, 0x5965, 0x5f80, 0x5fdc, 0x62bc, 0x65fa, 0x6a2a, 0x6b27, 0x6bb4, 0x738b, 0x7fc1, 0x8956, 0x9d2c, 0x9d0e, 0x9ec4, 0x5ca1, 0x6c96, 0x837b, 0x5104, 0x5c4b, 0x61b6, 0x81c6, 0x6876, 0x7261, 0x4e59, 0x4ffa, 0x5378, 0x6069, 0x6e29, 0x7a4f, 0x97f3, 0x4e0b, 0x5316, 0x4eee, 0x4f55, 0x4f3d, 0x4fa1, 0x4f73, 0x52a0, 0x53ef, 0x5609, 0x590f, 0x5ac1, 0x5bb6, 0x5be1, 0x79d1, 0x6687, 0x679c, 0x67b6, 0x6b4c, 0x6cb3, 0x706b, 0x73c2, 0x798d, 0x79be, 0x7a3c, 0x7b87, 0x82b1, 0x82db, 0x8304, 0x8377, 0x83ef, 0x83d3, 0x8766, 0x8ab2, 0x5629, 0x8ca8, 0x8fe6, 0x904e, 0x971e, 0x868a, 0x4fc4, 0x5ce8, 0x6211, 0x7259, 0x753b, 0x81e5, 0x82bd, 0x86fe, 0x8cc0, 0x96c5, 0x9913, 0x99d5, 0x4ecb, 0x4f1a, 0x89e3, 0x56de, 0x584a, 0x58ca, 0x5efb, 0x5feb, 0x602a, 0x6094, 0x6062, 0x61d0, 0x6212, 0x62d0, 0x6539, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9b41, 0x6666, 0x68b0, 0x6d77, 0x7070, 0x754c, 0x7686, 0x7d75, 0x82a5, 0x87f9, 0x958b, 0x968e, 0x8c9d, 0x51f1, 0x52be, 0x5916, 0x54b3, 0x5bb3, 0x5d16, 0x6168, 0x6982, 0x6daf, 0x788d, 0x84cb, 0x8857, 0x8a72, 0x93a7, 0x9ab8, 0x6d6c, 0x99a8, 0x86d9, 0x57a3, 0x67ff, 0x86ce, 0x920e, 0x5283, 0x5687, 0x5404, 0x5ed3, 0x62e1, 0x64b9, 0x683c, 0x6838, 0x6bbb, 0x7372, 0x78ba, 0x7a6b, 0x899a, 0x89d2, 0x8d6b, 0x8f03, 0x90ed, 0x95a3, 0x9694, 0x9769, 0x5b66, 0x5cb3, 0x697d, 0x984d, 0x984e, 0x639b, 0x7b20, 0x6a2b, 0xfffd, 0x6a7f, 0x68b6, 0x9c0d, 0x6f5f, 0x5272, 0x559d, 0x6070, 0x62ec, 0x6d3b, 0x6e07, 0x6ed1, 0x845b, 0x8910, 0x8f44, 0x4e14, 0x9c39, 0x53f6, 0x691b, 0x6a3a, 0x9784, 0x682a, 0x515c, 0x7ac3, 0x84b2, 0x91dc, 0x938c, 0x565b, 0x9d28, 0x6822, 0x8305, 0x8431, 0x7ca5, 0x5208, 0x82c5, 0x74e6, 0x4e7e, 0x4f83, 0x51a0, 0x5bd2, 0x520a, 0x52d8, 0x52e7, 0x5dfb, 0x559a, 0x582a, 0x59e6, 0x5b8c, 0x5b98, 0x5bdb, 0x5e72, 0x5e79, 0x60a3, 0x611f, 0x6163, 0x61be, 0x63db, 0x6562, 0x67d1, 0x6853, 0x68fa, 0x6b3e, 0x6b53, 0x6c57, 0x6f22, 0x6f97, 0x6f45, 0x74b0, 0x7518, 0x76e3, 0x770b, 0x7aff, 0x7ba1, 0x7c21, 0x7de9, 0x7f36, 0x7ff0, 0x809d, 0x8266, 0x839e, 0x89b3, 0x8acc, 0x8cab, 0x9084, 0x9451, 0x9593, 0x9591, 0x95a2, 0x9665, 0x97d3, 0x9928, 0x8218, 0x4e38, 0x542b, 0x5cb8, 0x5dcc, 0x73a9, 0x764c, 0x773c, 0x5ca9, 0x7feb, 0x8d0b, 0x96c1, 0x9811, 0x9854, 0x9858, 0x4f01, 0x4f0e, 0x5371, 0x559c, 0x5668, 0x57fa, 0x5947, 0x5b09, 0x5bc4, 0x5c90, 0x5e0c, 0x5e7e, 0x5fcc, 0x63ee, 0x673a, 0x65d7, 0x65e2, 0x671f, 0x68cb, 0x68c4, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x6a5f, 0x5e30, 0x6bc5, 0x6c17, 0x6c7d, 0x757f, 0x7948, 0x5b63, 0x7a00, 0x7d00, 0x5fbd, 0x898f, 0x8a18, 0x8cb4, 0x8d77, 0x8ecc, 0x8f1d, 0x98e2, 0x9a0e, 0x9b3c, 0x4e80, 0x507d, 0x5100, 0x5993, 0x5b9c, 0x622f, 0x6280, 0x64ec, 0x6b3a, 0x72a0, 0x7591, 0x7947, 0x7fa9, 0x87fb, 0x8abc, 0x8b70, 0x63ac, 0x83ca, 0x97a0, 0x5409, 0x5403, 0x55ab, 0x6854, 0x6a58, 0x8a70, 0x7827, 0x6775, 0x9ecd, 0x5374, 0x5ba2, 0x811a, 0x8650, 0x9006, 0x4e18, 0x4e45, 0x4ec7, 0x4f11, 0x53ca, 0x5438, 0x5bae, 0x5f13, 0x6025, 0x6551, 0xfffd, 0x673d, 0x6c42, 0x6c72, 0x6ce3, 0x7078, 0x7403, 0x7a76, 0x7aae, 0x7b08, 0x7d1a, 0x7cfe, 0x7d66, 0x65e7, 0x725b, 0x53bb, 0x5c45, 0x5de8, 0x62d2, 0x62e0, 0x6319, 0x6e20, 0x865a, 0x8a31, 0x8ddd, 0x92f8, 0x6f01, 0x79a6, 0x9b5a, 0x4ea8, 0x4eab, 0x4eac, 0x4f9b, 0x4fa0, 0x50d1, 0x5147, 0x7af6, 0x5171, 0x51f6, 0x5354, 0x5321, 0x537f, 0x53eb, 0x55ac, 0x5883, 0x5ce1, 0x5f37, 0x5f4a, 0x602f, 0x6050, 0x606d, 0x631f, 0x6559, 0x6a4b, 0x6cc1, 0x72c2, 0x72ed, 0x77ef, 0x80f8, 0x8105, 0x8208, 0x854e, 0x90f7, 0x93e1, 0x97ff, 0x9957, 0x9a5a, 0x4ef0, 0x51dd, 0x5c2d, 0x6681, 0x696d, 0x5c40, 0x66f2, 0x6975, 0x7389, 0x6850, 0x7c81, 0x50c5, 0x52e4, 0x5747, 0x5dfe, 0x9326, 0x65a4, 0x6b23, 0x6b3d, 0x7434, 0x7981, 0x79bd, 0x7b4b, 0x7dca, 0x82b9, 0x83cc, 0x887f, 0x895f, 0x8b39, 0x8fd1, 0x91d1, 0x541f, 0x9280, 0x4e5d, 0x5036, 0x53e5, 0x533a, 0x72d7, 0x7396, 0x77e9, 0x82e6, 0x8eaf, 0x99c6, 0x99c8, 0x99d2, 0x5177, 0x611a, 0x865e, 0x55b0, 0x7a7a, 0x5076, 0x5bd3, 0x9047, 0x9685, 0x4e32, 0x6adb, 0x91e7, 0x5c51, 0x5c48, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x6398, 0x7a9f, 0x6c93, 0x9774, 0x8f61, 0x7aaa, 0x718a, 0x9688, 0x7c82, 0x6817, 0x7e70, 0x6851, 0x936c, 0x52f2, 0x541b, 0x85ab, 0x8a13, 0x7fa4, 0x8ecd, 0x90e1, 0x5366, 0x8888, 0x7941, 0x4fc2, 0x50be, 0x5211, 0x5144, 0x5553, 0x572d, 0x73ea, 0x578b, 0x5951, 0x5f62, 0x5f84, 0x6075, 0x6176, 0x6167, 0x61a9, 0x63b2, 0x643a, 0x656c, 0x666f, 0x6842, 0x6e13, 0x7566, 0x7a3d, 0x7cfb, 0x7d4c, 0x7d99, 0x7e4b, 0x7f6b, 0x830e, 0x834a, 0x86cd, 0x8a08, 0x8a63, 0x8b66, 0x8efd, 0x981a, 0x9d8f, 0x82b8, 0x8fce, 0x9be8, 0xfffd, 0x5287, 0x621f, 0x6483, 0x6fc0, 0x9699, 0x6841, 0x5091, 0x6b20, 0x6c7a, 0x6f54, 0x7a74, 0x7d50, 0x8840, 0x8a23, 0x6708, 0x4ef6, 0x5039, 0x5026, 0x5065, 0x517c, 0x5238, 0x5263, 0x55a7, 0x570f, 0x5805, 0x5acc, 0x5efa, 0x61b2, 0x61f8, 0x62f3, 0x6372, 0x691c, 0x6a29, 0x727d, 0x72ac, 0x732e, 0x7814, 0x786f, 0x7d79, 0x770c, 0x80a9, 0x898b, 0x8b19, 0x8ce2, 0x8ed2, 0x9063, 0x9375, 0x967a, 0x9855, 0x9a13, 0x9e78, 0x5143, 0x539f, 0x53b3, 0x5e7b, 0x5f26, 0x6e1b, 0x6e90, 0x7384, 0x73fe, 0x7d43, 0x8237, 0x8a00, 0x8afa, 0x9650, 0x4e4e, 0x500b, 0x53e4, 0x547c, 0x56fa, 0x59d1, 0x5b64, 0x5df1, 0x5eab, 0x5f27, 0x6238, 0x6545, 0x67af, 0x6e56, 0x72d0, 0x7cca, 0x88b4, 0x80a1, 0x80e1, 0x83f0, 0x864e, 0x8a87, 0x8de8, 0x9237, 0x96c7, 0x9867, 0x9f13, 0x4e94, 0x4e92, 0x4f0d, 0x5348, 0x5449, 0x543e, 0x5a2f, 0x5f8c, 0x5fa1, 0x609f, 0x68a7, 0x6a8e, 0x745a, 0x7881, 0x8a9e, 0x8aa4, 0x8b77, 0x9190, 0x4e5e, 0x9bc9, 0x4ea4, 0x4f7c, 0x4faf, 0x5019, 0x5016, 0x5149, 0x516c, 0x529f, 0x52b9, 0x52fe, 0x539a, 0x53e3, 0x5411, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x540e, 0x5589, 0x5751, 0x57a2, 0x597d, 0x5b54, 0x5b5d, 0x5b8f, 0x5de5, 0x5de7, 0x5df7, 0x5e78, 0x5e83, 0x5e9a, 0x5eb7, 0x5f18, 0x6052, 0x614c, 0x6297, 0x62d8, 0x63a7, 0x653b, 0x6602, 0x6643, 0x66f4, 0x676d, 0x6821, 0x6897, 0x69cb, 0x6c5f, 0x6d2a, 0x6d69, 0x6e2f, 0x6e9d, 0x7532, 0x7687, 0x786c, 0x7a3f, 0x7ce0, 0x7d05, 0x7d18, 0x7d5e, 0x7db1, 0x8015, 0x8003, 0x80af, 0x80b1, 0x8154, 0x818f, 0x822a, 0x8352, 0x884c, 0x8861, 0x8b1b, 0x8ca2, 0x8cfc, 0x90ca, 0x9175, 0x9271, 0x783f, 0x92fc, 0x95a4, 0x964d, 0xfffd, 0x9805, 0x9999, 0x9ad8, 0x9d3b, 0x525b, 0x52ab, 0x53f7, 0x5408, 0x58d5, 0x62f7, 0x6fe0, 0x8c6a, 0x8f5f, 0x9eb9, 0x514b, 0x523b, 0x544a, 0x56fd, 0x7a40, 0x9177, 0x9d60, 0x9ed2, 0x7344, 0x6f09, 0x8170, 0x7511, 0x5ffd, 0x60da, 0x9aa8, 0x72db, 0x8fbc, 0x6b64, 0x9803, 0x4eca, 0x56f0, 0x5764, 0x58be, 0x5a5a, 0x6068, 0x61c7, 0x660f, 0x6606, 0x6839, 0x68b1, 0x6df7, 0x75d5, 0x7d3a, 0x826e, 0x9b42, 0x4e9b, 0x4f50, 0x53c9, 0x5506, 0x5d6f, 0x5de6, 0x5dee, 0x67fb, 0x6c99, 0x7473, 0x7802, 0x8a50, 0x9396, 0x88df, 0x5750, 0x5ea7, 0x632b, 0x50b5, 0x50ac, 0x518d, 0x6700, 0x54c9, 0x585e, 0x59bb, 0x5bb0, 0x5f69, 0x624d, 0x63a1, 0x683d, 0x6b73, 0x6e08, 0x707d, 0x91c7, 0x7280, 0x7815, 0x7826, 0x796d, 0x658e, 0x7d30, 0x83dc, 0x88c1, 0x8f09, 0x969b, 0x5264, 0x5728, 0x6750, 0x7f6a, 0x8ca1, 0x51b4, 0x5742, 0x962a, 0x583a, 0x698a, 0x80b4, 0x54b2, 0x5d0e, 0x57fc, 0x7895, 0x9dfa, 0x4f5c, 0x524a, 0x548b, 0x643e, 0x6628, 0x6714, 0x67f5, 0x7a84, 0x7b56, 0x7d22, 0x932f, 0x685c, 0x9bad, 0x7b39, 0x5319, 0x518a, 0x5237, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x5bdf, 0x62f6, 0x64ae, 0x64e6, 0x672d, 0x6bba, 0x85a9, 0x96d1, 0x7690, 0x9bd6, 0x634c, 0x9306, 0x9bab, 0x76bf, 0x6652, 0x4e09, 0x5098, 0x53c2, 0x5c71, 0x60e8, 0x6492, 0x6563, 0x685f, 0x71e6, 0x73ca, 0x7523, 0x7b97, 0x7e82, 0x8695, 0x8b83, 0x8cdb, 0x9178, 0x9910, 0x65ac, 0x66ab, 0x6b8b, 0x4ed5, 0x4ed4, 0x4f3a, 0x4f7f, 0x523a, 0x53f8, 0x53f2, 0x55e3, 0x56db, 0x58eb, 0x59cb, 0x59c9, 0x59ff, 0x5b50, 0x5c4d, 0x5e02, 0x5e2b, 0x5fd7, 0x601d, 0x6307, 0x652f, 0x5b5c, 0x65af, 0x65bd, 0x65e8, 0x679d, 0x6b62, 0xfffd, 0x6b7b, 0x6c0f, 0x7345, 0x7949, 0x79c1, 0x7cf8, 0x7d19, 0x7d2b, 0x80a2, 0x8102, 0x81f3, 0x8996, 0x8a5e, 0x8a69, 0x8a66, 0x8a8c, 0x8aee, 0x8cc7, 0x8cdc, 0x96cc, 0x98fc, 0x6b6f, 0x4e8b, 0x4f3c, 0x4f8d, 0x5150, 0x5b57, 0x5bfa, 0x6148, 0x6301, 0x6642, 0x6b21, 0x6ecb, 0x6cbb, 0x723e, 0x74bd, 0x75d4, 0x78c1, 0x793a, 0x800c, 0x8033, 0x81ea, 0x8494, 0x8f9e, 0x6c50, 0x9e7f, 0x5f0f, 0x8b58, 0x9d2b, 0x7afa, 0x8ef8, 0x5b8d, 0x96eb, 0x4e03, 0x53f1, 0x57f7, 0x5931, 0x5ac9, 0x5ba4, 0x6089, 0x6e7f, 0x6f06, 0x75be, 0x8cea, 0x5b9f, 0x8500, 0x7be0, 0x5072, 0x67f4, 0x829d, 0x5c61, 0x854a, 0x7e1e, 0x820e, 0x5199, 0x5c04, 0x6368, 0x8d66, 0x659c, 0x716e, 0x793e, 0x7d17, 0x8005, 0x8b1d, 0x8eca, 0x906e, 0x86c7, 0x90aa, 0x501f, 0x52fa, 0x5c3a, 0x6753, 0x707c, 0x7235, 0x914c, 0x91c8, 0x932b, 0x82e5, 0x5bc2, 0x5f31, 0x60f9, 0x4e3b, 0x53d6, 0x5b88, 0x624b, 0x6731, 0x6b8a, 0x72e9, 0x73e0, 0x7a2e, 0x816b, 0x8da3, 0x9152, 0x9996, 0x5112, 0x53d7, 0x546a, 0x5bff, 0x6388, 0x6a39, 0x7dac, 0x9700, 0x56da, 0x53ce, 0x5468, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x5b97, 0x5c31, 0x5dde, 0x4fee, 0x6101, 0x62fe, 0x6d32, 0x79c0, 0x79cb, 0x7d42, 0x7e4d, 0x7fd2, 0x81ed, 0x821f, 0x8490, 0x8846, 0x8972, 0x8b90, 0x8e74, 0x8f2f, 0x9031, 0x914b, 0x916c, 0x96c6, 0x919c, 0x4ec0, 0x4f4f, 0x5145, 0x5341, 0x5f93, 0x620e, 0x67d4, 0x6c41, 0x6e0b, 0x7363, 0x7e26, 0x91cd, 0x9283, 0x53d4, 0x5919, 0x5bbf, 0x6dd1, 0x795d, 0x7e2e, 0x7c9b, 0x587e, 0x719f, 0x51fa, 0x8853, 0x8ff0, 0x4fca, 0x5cfb, 0x6625, 0x77ac, 0x7ae3, 0x821c, 0x99ff, 0x51c6, 0x5faa, 0x65ec, 0x696f, 0x6b89, 0x6df3, 0xfffd, 0x6e96, 0x6f64, 0x76fe, 0x7d14, 0x5de1, 0x9075, 0x9187, 0x9806, 0x51e6, 0x521d, 0x6240, 0x6691, 0x66d9, 0x6e1a, 0x5eb6, 0x7dd2, 0x7f72, 0x66f8, 0x85af, 0x85f7, 0x8af8, 0x52a9, 0x53d9, 0x5973, 0x5e8f, 0x5f90, 0x6055, 0x92e4, 0x9664, 0x50b7, 0x511f, 0x52dd, 0x5320, 0x5347, 0x53ec, 0x54e8, 0x5546, 0x5531, 0x5617, 0x5968, 0x59be, 0x5a3c, 0x5bb5, 0x5c06, 0x5c0f, 0x5c11, 0x5c1a, 0x5e84, 0x5e8a, 0x5ee0, 0x5f70, 0x627f, 0x6284, 0x62db, 0x638c, 0x6377, 0x6607, 0x660c, 0x662d, 0x6676, 0x677e, 0x68a2, 0x6a1f, 0x6a35, 0x6cbc, 0x6d88, 0x6e09, 0x6e58, 0x713c, 0x7126, 0x7167, 0x75c7, 0x7701, 0x785d, 0x7901, 0x7965, 0x79f0, 0x7ae0, 0x7b11, 0x7ca7, 0x7d39, 0x8096, 0x83d6, 0x848b, 0x8549, 0x885d, 0x88f3, 0x8a1f, 0x8a3c, 0x8a54, 0x8a73, 0x8c61, 0x8cde, 0x91a4, 0x9266, 0x937e, 0x9418, 0x969c, 0x9798, 0x4e0a, 0x4e08, 0x4e1e, 0x4e57, 0x5197, 0x5270, 0x57ce, 0x5834, 0x58cc, 0x5b22, 0x5e38, 0x60c5, 0x64fe, 0x6761, 0x6756, 0x6d44, 0x72b6, 0x7573, 0x7a63, 0x84b8, 0x8b72, 0x91b8, 0x9320, 0x5631, 0x57f4, 0x98fe, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x62ed, 0x690d, 0x6b96, 0x71ed, 0x7e54, 0x8077, 0x8272, 0x89e6, 0x98df, 0x8755, 0x8fb1, 0x5c3b, 0x4f38, 0x4fe1, 0x4fb5, 0x5507, 0x5a20, 0x5bdd, 0x5be9, 0x5fc3, 0x614e, 0x632f, 0x65b0, 0x664b, 0x68ee, 0x699b, 0x6d78, 0x6df1, 0x7533, 0x75b9, 0x771f, 0x795e, 0x79e6, 0x7d33, 0x81e3, 0x82af, 0x85aa, 0x89aa, 0x8a3a, 0x8eab, 0x8f9b, 0x9032, 0x91dd, 0x9707, 0x4eba, 0x4ec1, 0x5203, 0x5875, 0x58ec, 0x5c0b, 0x751a, 0x5c3d, 0x814e, 0x8a0a, 0x8fc5, 0x9663, 0x976d, 0x7b25, 0x8acf, 0x9808, 0x9162, 0x56f3, 0x53a8, 0xfffd, 0x9017, 0x5439, 0x5782, 0x5e25, 0x63a8, 0x6c34, 0x708a, 0x7761, 0x7c8b, 0x7fe0, 0x8870, 0x9042, 0x9154, 0x9310, 0x9318, 0x968f, 0x745e, 0x9ac4, 0x5d07, 0x5d69, 0x6570, 0x67a2, 0x8da8, 0x96db, 0x636e, 0x6749, 0x6919, 0x83c5, 0x9817, 0x96c0, 0x88fe, 0x6f84, 0x647a, 0x5bf8, 0x4e16, 0x702c, 0x755d, 0x662f, 0x51c4, 0x5236, 0x52e2, 0x59d3, 0x5f81, 0x6027, 0x6210, 0x653f, 0x6574, 0x661f, 0x6674, 0x68f2, 0x6816, 0x6b63, 0x6e05, 0x7272, 0x751f, 0x76db, 0x7cbe, 0x8056, 0x58f0, 0x88fd, 0x897f, 0x8aa0, 0x8a93, 0x8acb, 0x901d, 0x9192, 0x9752, 0x9759, 0x6589, 0x7a0e, 0x8106, 0x96bb, 0x5e2d, 0x60dc, 0x621a, 0x65a5, 0x6614, 0x6790, 0x77f3, 0x7a4d, 0x7c4d, 0x7e3e, 0x810a, 0x8cac, 0x8d64, 0x8de1, 0x8e5f, 0x78a9, 0x5207, 0x62d9, 0x63a5, 0x6442, 0x6298, 0x8a2d, 0x7a83, 0x7bc0, 0x8aac, 0x96ea, 0x7d76, 0x820c, 0x8749, 0x4ed9, 0x5148, 0x5343, 0x5360, 0x5ba3, 0x5c02, 0x5c16, 0x5ddd, 0x6226, 0x6247, 0x64b0, 0x6813, 0x6834, 0x6cc9, 0x6d45, 0x6d17, 0x67d3, 0x6f5c, 0x714e, 0x717d, 0x65cb, 0x7a7f, 0x7bad, 0x7dda, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x7e4a, 0x7fa8, 0x817a, 0x821b, 0x8239, 0x85a6, 0x8a6e, 0x8cce, 0x8df5, 0x9078, 0x9077, 0x92ad, 0x9291, 0x9583, 0x9bae, 0x524d, 0x5584, 0x6f38, 0x7136, 0x5168, 0x7985, 0x7e55, 0x81b3, 0x7cce, 0x564c, 0x5851, 0x5ca8, 0x63aa, 0x66fe, 0x66fd, 0x695a, 0x72d9, 0x758f, 0x758e, 0x790e, 0x7956, 0x79df, 0x7c97, 0x7d20, 0x7d44, 0x8607, 0x8a34, 0x963b, 0x9061, 0x9f20, 0x50e7, 0x5275, 0x53cc, 0x53e2, 0x5009, 0x55aa, 0x58ee, 0x594f, 0x723d, 0x5b8b, 0x5c64, 0x531d, 0x60e3, 0x60f3, 0x635c, 0x6383, 0x633f, 0x63bb, 0xfffd, 0x64cd, 0x65e9, 0x66f9, 0x5de3, 0x69cd, 0x69fd, 0x6f15, 0x71e5, 0x4e89, 0x75e9, 0x76f8, 0x7a93, 0x7cdf, 0x7dcf, 0x7d9c, 0x8061, 0x8349, 0x8358, 0x846c, 0x84bc, 0x85fb, 0x88c5, 0x8d70, 0x9001, 0x906d, 0x9397, 0x971c, 0x9a12, 0x50cf, 0x5897, 0x618e, 0x81d3, 0x8535, 0x8d08, 0x9020, 0x4fc3, 0x5074, 0x5247, 0x5373, 0x606f, 0x6349, 0x675f, 0x6e2c, 0x8db3, 0x901f, 0x4fd7, 0x5c5e, 0x8cca, 0x65cf, 0x7d9a, 0x5352, 0x8896, 0x5176, 0x63c3, 0x5b58, 0x5b6b, 0x5c0a, 0x640d, 0x6751, 0x905c, 0x4ed6, 0x591a, 0x592a, 0x6c70, 0x8a51, 0x553e, 0x5815, 0x59a5, 0x60f0, 0x6253, 0x67c1, 0x8235, 0x6955, 0x9640, 0x99c4, 0x9a28, 0x4f53, 0x5806, 0x5bfe, 0x8010, 0x5cb1, 0x5e2f, 0x5f85, 0x6020, 0x614b, 0x6234, 0x66ff, 0x6cf0, 0x6ede, 0x80ce, 0x817f, 0x82d4, 0x888b, 0x8cb8, 0x9000, 0x902e, 0x968a, 0x9edb, 0x9bdb, 0x4ee3, 0x53f0, 0x5927, 0x7b2c, 0x918d, 0x984c, 0x9df9, 0x6edd, 0x7027, 0x5353, 0x5544, 0x5b85, 0x6258, 0x629e, 0x62d3, 0x6ca2, 0x6fef, 0x7422, 0x8a17, 0x9438, 0x6fc1, 0x8afe, 0x8338, 0x51e7, 0x86f8, 0x53ea, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x53e9, 0x4f46, 0x9054, 0x8fb0, 0x596a, 0x8131, 0x5dfd, 0x7aea, 0x8fbf, 0x68da, 0x8c37, 0x72f8, 0x9c48, 0x6a3d, 0x8ab0, 0x4e39, 0x5358, 0x5606, 0x5766, 0x62c5, 0x63a2, 0x65e6, 0x6b4e, 0x6de1, 0x6e5b, 0x70ad, 0x77ed, 0x7aef, 0x7baa, 0x7dbb, 0x803d, 0x80c6, 0x86cb, 0x8a95, 0x935b, 0x56e3, 0x58c7, 0x5f3e, 0x65ad, 0x6696, 0x6a80, 0x6bb5, 0x7537, 0x8ac7, 0x5024, 0x77e5, 0x5730, 0x5f1b, 0x6065, 0x667a, 0x6c60, 0x75f4, 0x7a1a, 0x7f6e, 0x81f4, 0x8718, 0x9045, 0x99b3, 0x7bc9, 0x755c, 0x7af9, 0x7b51, 0x84c4, 0xfffd, 0x9010, 0x79e9, 0x7a92, 0x8336, 0x5ae1, 0x7740, 0x4e2d, 0x4ef2, 0x5b99, 0x5fe0, 0x62bd, 0x663c, 0x67f1, 0x6ce8, 0x866b, 0x8877, 0x8a3b, 0x914e, 0x92f3, 0x99d0, 0x6a17, 0x7026, 0x732a, 0x82e7, 0x8457, 0x8caf, 0x4e01, 0x5146, 0x51cb, 0x558b, 0x5bf5, 0x5e16, 0x5e33, 0x5e81, 0x5f14, 0x5f35, 0x5f6b, 0x5fb4, 0x61f2, 0x6311, 0x66a2, 0x671d, 0x6f6e, 0x7252, 0x753a, 0x773a, 0x8074, 0x8139, 0x8178, 0x8776, 0x8abf, 0x8adc, 0x8d85, 0x8df3, 0x929a, 0x9577, 0x9802, 0x9ce5, 0x52c5, 0x6357, 0x76f4, 0x6715, 0x6c88, 0x73cd, 0x8cc3, 0x93ae, 0x9673, 0x6d25, 0x589c, 0x690e, 0x69cc, 0x8ffd, 0x939a, 0x75db, 0x901a, 0x585a, 0x6802, 0x63b4, 0x69fb, 0x4f43, 0x6f2c, 0x67d8, 0x8fbb, 0x8526, 0x7db4, 0x9354, 0x693f, 0x6f70, 0x576a, 0x58f7, 0x5b2c, 0x7d2c, 0x722a, 0x540a, 0x91e3, 0x9db4, 0x4ead, 0x4f4e, 0x505c, 0x5075, 0x5243, 0x8c9e, 0x5448, 0x5824, 0x5b9a, 0x5e1d, 0x5e95, 0x5ead, 0x5ef7, 0x5f1f, 0x608c, 0x62b5, 0x633a, 0x63d0, 0x68af, 0x6c40, 0x7887, 0x798e, 0x7a0b, 0x7de0, 0x8247, 0x8a02, 0x8ae6, 0x8e44, 0x9013, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x90b8, 0x912d, 0x91d8, 0x9f0e, 0x6ce5, 0x6458, 0x64e2, 0x6575, 0x6ef4, 0x7684, 0x7b1b, 0x9069, 0x93d1, 0x6eba, 0x54f2, 0x5fb9, 0x64a4, 0x8f4d, 0x8fed, 0x9244, 0x5178, 0x586b, 0x5929, 0x5c55, 0x5e97, 0x6dfb, 0x7e8f, 0x751c, 0x8cbc, 0x8ee2, 0x985b, 0x70b9, 0x4f1d, 0x6bbf, 0x6fb1, 0x7530, 0x96fb, 0x514e, 0x5410, 0x5835, 0x5857, 0x59ac, 0x5c60, 0x5f92, 0x6597, 0x675c, 0x6e21, 0x767b, 0x83df, 0x8ced, 0x9014, 0x90fd, 0x934d, 0x7825, 0x783a, 0x52aa, 0x5ea6, 0x571f, 0x5974, 0x6012, 0x5012, 0x515a, 0x51ac, 0xfffd, 0x51cd, 0x5200, 0x5510, 0x5854, 0x5858, 0x5957, 0x5b95, 0x5cf6, 0x5d8b, 0x60bc, 0x6295, 0x642d, 0x6771, 0x6843, 0x68bc, 0x68df, 0x76d7, 0x6dd8, 0x6e6f, 0x6d9b, 0x706f, 0x71c8, 0x5f53, 0x75d8, 0x7977, 0x7b49, 0x7b54, 0x7b52, 0x7cd6, 0x7d71, 0x5230, 0x8463, 0x8569, 0x85e4, 0x8a0e, 0x8b04, 0x8c46, 0x8e0f, 0x9003, 0x900f, 0x9419, 0x9676, 0x982d, 0x9a30, 0x95d8, 0x50cd, 0x52d5, 0x540c, 0x5802, 0x5c0e, 0x61a7, 0x649e, 0x6d1e, 0x77b3, 0x7ae5, 0x80f4, 0x8404, 0x9053, 0x9285, 0x5ce0, 0x9d07, 0x533f, 0x5f97, 0x5fb3, 0x6d9c, 0x7279, 0x7763, 0x79bf, 0x7be4, 0x6bd2, 0x72ec, 0x8aad, 0x6803, 0x6a61, 0x51f8, 0x7a81, 0x6934, 0x5c4a, 0x9cf6, 0x82eb, 0x5bc5, 0x9149, 0x701e, 0x5678, 0x5c6f, 0x60c7, 0x6566, 0x6c8c, 0x8c5a, 0x9041, 0x9813, 0x5451, 0x66c7, 0x920d, 0x5948, 0x90a3, 0x5185, 0x4e4d, 0x51ea, 0x8599, 0x8b0e, 0x7058, 0x637a, 0x934b, 0x6962, 0x99b4, 0x7e04, 0x7577, 0x5357, 0x6960, 0x8edf, 0x96e3, 0x6c5d, 0x4e8c, 0x5c3c, 0x5f10, 0x8fe9, 0x5302, 0x8cd1, 0x8089, 0x8679, 0x5eff, 0x65e5, 0x4e73, 0x5165, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x5982, 0x5c3f, 0x97ee, 0x4efb, 0x598a, 0x5fcd, 0x8a8d, 0x6fe1, 0x79b0, 0x7962, 0x5be7, 0x8471, 0x732b, 0x71b1, 0x5e74, 0x5ff5, 0x637b, 0x649a, 0x71c3, 0x7c98, 0x4e43, 0x5efc, 0x4e4b, 0x57dc, 0x56a2, 0x60a9, 0x6fc3, 0x7d0d, 0x80fd, 0x8133, 0x81bf, 0x8fb2, 0x8997, 0x86a4, 0x5df4, 0x628a, 0x64ad, 0x8987, 0x6777, 0x6ce2, 0x6d3e, 0x7436, 0x7834, 0x5a46, 0x7f75, 0x82ad, 0x99ac, 0x4ff3, 0x5ec3, 0x62dd, 0x6392, 0x6557, 0x676f, 0x76c3, 0x724c, 0x80cc, 0x80ba, 0x8f29, 0x914d, 0x500d, 0x57f9, 0x5a92, 0x6885, 0xfffd, 0x6973, 0x7164, 0x72fd, 0x8cb7, 0x58f2, 0x8ce0, 0x966a, 0x9019, 0x877f, 0x79e4, 0x77e7, 0x8429, 0x4f2f, 0x5265, 0x535a, 0x62cd, 0x67cf, 0x6cca, 0x767d, 0x7b94, 0x7c95, 0x8236, 0x8584, 0x8feb, 0x66dd, 0x6f20, 0x7206, 0x7e1b, 0x83ab, 0x99c1, 0x9ea6, 0x51fd, 0x7bb1, 0x7872, 0x7bb8, 0x8087, 0x7b48, 0x6ae8, 0x5e61, 0x808c, 0x7551, 0x7560, 0x516b, 0x9262, 0x6e8c, 0x767a, 0x9197, 0x9aea, 0x4f10, 0x7f70, 0x629c, 0x7b4f, 0x95a5, 0x9ce9, 0x567a, 0x5859, 0x86e4, 0x96bc, 0x4f34, 0x5224, 0x534a, 0x53cd, 0x53db, 0x5e06, 0x642c, 0x6591, 0x677f, 0x6c3e, 0x6c4e, 0x7248, 0x72af, 0x73ed, 0x7554, 0x7e41, 0x822c, 0x85e9, 0x8ca9, 0x7bc4, 0x91c6, 0x7169, 0x9812, 0x98ef, 0x633d, 0x6669, 0x756a, 0x76e4, 0x78d0, 0x8543, 0x86ee, 0x532a, 0x5351, 0x5426, 0x5983, 0x5e87, 0x5f7c, 0x60b2, 0x6249, 0x6279, 0x62ab, 0x6590, 0x6bd4, 0x6ccc, 0x75b2, 0x76ae, 0x7891, 0x79d8, 0x7dcb, 0x7f77, 0x80a5, 0x88ab, 0x8ab9, 0x8cbb, 0x907f, 0x975e, 0x98db, 0x6a0b, 0x7c38, 0x5099, 0x5c3e, 0x5fae, 0x6787, 0x6bd8, 0x7435, 0x7709, 0x7f8e, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9f3b, 0x67ca, 0x7a17, 0x5339, 0x758b, 0x9aed, 0x5f66, 0x819d, 0x83f1, 0x8098, 0x5f3c, 0x5fc5, 0x7562, 0x7b46, 0x903c, 0x6867, 0x59eb, 0x5a9b, 0x7d10, 0x767e, 0x8b2c, 0x4ff5, 0x5f6a, 0x6a19, 0x6c37, 0x6f02, 0x74e2, 0x7968, 0x8868, 0x8a55, 0x8c79, 0x5edf, 0x63cf, 0x75c5, 0x79d2, 0x82d7, 0x9328, 0x92f2, 0x849c, 0x86ed, 0x9c2d, 0x54c1, 0x5f6c, 0x658c, 0x6d5c, 0x7015, 0x8ca7, 0x8cd3, 0x983b, 0x654f, 0x74f6, 0x4e0d, 0x4ed8, 0x57e0, 0x592b, 0x5a66, 0x5bcc, 0x51a8, 0x5e03, 0x5e9c, 0x6016, 0x6276, 0x6577, 0xfffd, 0x65a7, 0x666e, 0x6d6e, 0x7236, 0x7b26, 0x8150, 0x819a, 0x8299, 0x8b5c, 0x8ca0, 0x8ce6, 0x8d74, 0x961c, 0x9644, 0x4fae, 0x64ab, 0x6b66, 0x821e, 0x8461, 0x856a, 0x90e8, 0x5c01, 0x6953, 0x98a8, 0x847a, 0x8557, 0x4f0f, 0x526f, 0x5fa9, 0x5e45, 0x670d, 0x798f, 0x8179, 0x8907, 0x8986, 0x6df5, 0x5f17, 0x6255, 0x6cb8, 0x4ecf, 0x7269, 0x9b92, 0x5206, 0x543b, 0x5674, 0x58b3, 0x61a4, 0x626e, 0x711a, 0x596e, 0x7c89, 0x7cde, 0x7d1b, 0x96f0, 0x6587, 0x805e, 0x4e19, 0x4f75, 0x5175, 0x5840, 0x5e63, 0x5e73, 0x5f0a, 0x67c4, 0x4e26, 0x853d, 0x9589, 0x965b, 0x7c73, 0x9801, 0x50fb, 0x58c1, 0x7656, 0x78a7, 0x5225, 0x77a5, 0x8511, 0x7b86, 0x504f, 0x5909, 0x7247, 0x7bc7, 0x7de8, 0x8fba, 0x8fd4, 0x904d, 0x4fbf, 0x52c9, 0x5a29, 0x5f01, 0x97ad, 0x4fdd, 0x8217, 0x92ea, 0x5703, 0x6355, 0x6b69, 0x752b, 0x88dc, 0x8f14, 0x7a42, 0x52df, 0x5893, 0x6155, 0x620a, 0x66ae, 0x6bcd, 0x7c3f, 0x83e9, 0x5023, 0x4ff8, 0x5305, 0x5446, 0x5831, 0x5949, 0x5b9d, 0x5cf0, 0x5cef, 0x5d29, 0x5e96, 0x62b1, 0x6367, 0x653e, 0x65b9, 0x670b, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x6cd5, 0x6ce1, 0x70f9, 0x7832, 0x7e2b, 0x80de, 0x82b3, 0x840c, 0x84ec, 0x8702, 0x8912, 0x8a2a, 0x8c4a, 0x90a6, 0x92d2, 0x98fd, 0x9cf3, 0x9d6c, 0x4e4f, 0x4ea1, 0x508d, 0x5256, 0x574a, 0x59a8, 0x5e3d, 0x5fd8, 0x5fd9, 0x623f, 0x66b4, 0x671b, 0x67d0, 0x68d2, 0x5192, 0x7d21, 0x80aa, 0x81a8, 0x8b00, 0x8c8c, 0x8cbf, 0x927e, 0x9632, 0x5420, 0x982c, 0x5317, 0x50d5, 0x535c, 0x58a8, 0x64b2, 0x6734, 0x7267, 0x7766, 0x7a46, 0x91e6, 0x52c3, 0x6ca1, 0x6b86, 0x5800, 0x5e4c, 0x5954, 0x672c, 0x7ffb, 0x51e1, 0x76c6, 0xfffd, 0x6469, 0x78e8, 0x9b54, 0x9ebb, 0x57cb, 0x59b9, 0x6627, 0x679a, 0x6bce, 0x54e9, 0x69d9, 0x5e55, 0x819c, 0x6795, 0x9baa, 0x67fe, 0x9c52, 0x685d, 0x4ea6, 0x4fe3, 0x53c8, 0x62b9, 0x672b, 0x6cab, 0x8fc4, 0x4fad, 0x7e6d, 0x9ebf, 0x4e07, 0x6162, 0x6e80, 0x6f2b, 0x8513, 0x5473, 0x672a, 0x9b45, 0x5df3, 0x7b95, 0x5cac, 0x5bc6, 0x871c, 0x6e4a, 0x84d1, 0x7a14, 0x8108, 0x5999, 0x7c8d, 0x6c11, 0x7720, 0x52d9, 0x5922, 0x7121, 0x725f, 0x77db, 0x9727, 0x9d61, 0x690b, 0x5a7f, 0x5a18, 0x51a5, 0x540d, 0x547d, 0x660e, 0x76df, 0x8ff7, 0x9298, 0x9cf4, 0x59ea, 0x725d, 0x6ec5, 0x514d, 0x68c9, 0x7dbf, 0x7dec, 0x9762, 0x9eba, 0x6478, 0x6a21, 0x8302, 0x5984, 0x5b5f, 0x6bdb, 0x731b, 0x76f2, 0x7db2, 0x8017, 0x8499, 0x5132, 0x6728, 0x9ed9, 0x76ee, 0x6762, 0x52ff, 0x9905, 0x5c24, 0x623b, 0x7c7e, 0x8cb0, 0x554f, 0x60b6, 0x7d0b, 0x9580, 0x5301, 0x4e5f, 0x51b6, 0x591c, 0x723a, 0x8036, 0x91ce, 0x5f25, 0x77e2, 0x5384, 0x5f79, 0x7d04, 0x85ac, 0x8a33, 0x8e8d, 0x9756, 0x67f3, 0x85ae, 0x9453, 0x6109, 0x6108, 0x6cb9, 0x7652, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8aed, 0x8f38, 0x552f, 0x4f51, 0x512a, 0x52c7, 0x53cb, 0x5ba5, 0x5e7d, 0x60a0, 0x6182, 0x63d6, 0x6709, 0x67da, 0x6e67, 0x6d8c, 0x7336, 0x7337, 0x7531, 0x7950, 0x88d5, 0x8a98, 0x904a, 0x9091, 0x90f5, 0x96c4, 0x878d, 0x5915, 0x4e88, 0x4f59, 0x4e0e, 0x8a89, 0x8f3f, 0x9810, 0x50ad, 0x5e7c, 0x5996, 0x5bb9, 0x5eb8, 0x63da, 0x63fa, 0x64c1, 0x66dc, 0x694a, 0x69d8, 0x6d0b, 0x6eb6, 0x7194, 0x7528, 0x7aaf, 0x7f8a, 0x8000, 0x8449, 0x84c9, 0x8981, 0x8b21, 0x8e0a, 0x9065, 0x967d, 0x990a, 0x617e, 0x6291, 0x6b32, 0xfffd, 0x6c83, 0x6d74, 0x7fcc, 0x7ffc, 0x6dc0, 0x7f85, 0x87ba, 0x88f8, 0x6765, 0x83b1, 0x983c, 0x96f7, 0x6d1b, 0x7d61, 0x843d, 0x916a, 0x4e71, 0x5375, 0x5d50, 0x6b04, 0x6feb, 0x85cd, 0x862d, 0x89a7, 0x5229, 0x540f, 0x5c65, 0x674e, 0x68a8, 0x7406, 0x7483, 0x75e2, 0x88cf, 0x88e1, 0x91cc, 0x96e2, 0x9678, 0x5f8b, 0x7387, 0x7acb, 0x844e, 0x63a0, 0x7565, 0x5289, 0x6d41, 0x6e9c, 0x7409, 0x7559, 0x786b, 0x7c92, 0x9686, 0x7adc, 0x9f8d, 0x4fb6, 0x616e, 0x65c5, 0x865c, 0x4e86, 0x4eae, 0x50da, 0x4e21, 0x51cc, 0x5bee, 0x6599, 0x6881, 0x6dbc, 0x731f, 0x7642, 0x77ad, 0x7a1c, 0x7ce7, 0x826f, 0x8ad2, 0x907c, 0x91cf, 0x9675, 0x9818, 0x529b, 0x7dd1, 0x502b, 0x5398, 0x6797, 0x6dcb, 0x71d0, 0x7433, 0x81e8, 0x8f2a, 0x96a3, 0x9c57, 0x9e9f, 0x7460, 0x5841, 0x6d99, 0x7d2f, 0x985e, 0x4ee4, 0x4f36, 0x4f8b, 0x51b7, 0x52b1, 0x5dba, 0x601c, 0x73b2, 0x793c, 0x82d3, 0x9234, 0x96b7, 0x96f6, 0x970a, 0x9e97, 0x9f62, 0x66a6, 0x6b74, 0x5217, 0x52a3, 0x70c8, 0x88c2, 0x5ec9, 0x604b, 0x6190, 0x6f23, 0x7149, 0x7c3e, 0x7df4, 0x806f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x84ee, 0x9023, 0x932c, 0x5442, 0x9b6f, 0x6ad3, 0x7089, 0x8cc2, 0x8def, 0x9732, 0x52b4, 0x5a41, 0x5eca, 0x5f04, 0x6717, 0x697c, 0x6994, 0x6d6a, 0x6f0f, 0x7262, 0x72fc, 0x7bed, 0x8001, 0x807e, 0x874b, 0x90ce, 0x516d, 0x9e93, 0x7984, 0x808b, 0x9332, 0x8ad6, 0x502d, 0x548c, 0x8a71, 0x6b6a, 0x8cc4, 0x8107, 0x60d1, 0x67a0, 0x9df2, 0x4e99, 0x4e98, 0x9c10, 0x8a6b, 0x85c1, 0x8568, 0x6900, 0x6e7e, 0x7897, 0x8155, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x5f0c, 0x4e10, 0x4e15, 0x4e2a, 0x4e31, 0x4e36, 0x4e3c, 0x4e3f, 0x4e42, 0x4e56, 0x4e58, 0x4e82, 0x4e85, 0x8c6b, 0x4e8a, 0x8212, 0x5f0d, 0x4e8e, 0x4e9e, 0x4e9f, 0x4ea0, 0x4ea2, 0x4eb0, 0x4eb3, 0x4eb6, 0x4ece, 0x4ecd, 0x4ec4, 0x4ec6, 0x4ec2, 0x4ed7, 0x4ede, 0x4eed, 0x4edf, 0x4ef7, 0x4f09, 0x4f5a, 0x4f30, 0x4f5b, 0x4f5d, 0x4f57, 0x4f47, 0x4f76, 0x4f88, 0x4f8f, 0x4f98, 0x4f7b, 0x4f69, 0x4f70, 0x4f91, 0x4f6f, 0x4f86, 0x4f96, 0x5118, 0x4fd4, 0x4fdf, 0x4fce, 0x4fd8, 0x4fdb, 0x4fd1, 0x4fda, 0x4fd0, 0x4fe4, 0x4fe5, 0x501a, 0x5028, 0x5014, 0x502a, 0x5025, 0x5005, 0x4f1c, 0x4ff6, 0x5021, 0x5029, 0x502c, 0x4ffe, 0x4fef, 0x5011, 0x5006, 0x5043, 0x5047, 0x6703, 0x5055, 0x5050, 0x5048, 0x505a, 0x5056, 0x506c, 0x5078, 0x5080, 0x509a, 0x5085, 0x50b4, 0x50b2, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x50c9, 0x50ca, 0x50b3, 0x50c2, 0x50d6, 0x50de, 0x50e5, 0x50ed, 0x50e3, 0x50ee, 0x50f9, 0x50f5, 0x5109, 0x5101, 0x5102, 0x5116, 0x5115, 0x5114, 0x511a, 0x5121, 0x513a, 0x5137, 0x513c, 0x513b, 0x513f, 0x5140, 0x5152, 0x514c, 0x5154, 0x5162, 0x7af8, 0x5169, 0x516a, 0x516e, 0x5180, 0x5182, 0x56d8, 0x518c, 0x5189, 0x518f, 0x5191, 0x5193, 0x5195, 0x5196, 0x51a4, 0x51a6, 0x51a2, 0x51a9, 0x51aa, 0x51ab, 0x51b3, 0x51b1, 0x51b2, 0x51b0, 0x51b5, 0x51bd, 0x51c5, 0x51c9, 0x51db, 0x51e0, 0x8655, 0x51e9, 0x51ed, 0xfffd, 0x51f0, 0x51f5, 0x51fe, 0x5204, 0x520b, 0x5214, 0x520e, 0x5227, 0x522a, 0x522e, 0x5233, 0x5239, 0x524f, 0x5244, 0x524b, 0x524c, 0x525e, 0x5254, 0x526a, 0x5274, 0x5269, 0x5273, 0x527f, 0x527d, 0x528d, 0x5294, 0x5292, 0x5271, 0x5288, 0x5291, 0x8fa8, 0x8fa7, 0x52ac, 0x52ad, 0x52bc, 0x52b5, 0x52c1, 0x52cd, 0x52d7, 0x52de, 0x52e3, 0x52e6, 0x98ed, 0x52e0, 0x52f3, 0x52f5, 0x52f8, 0x52f9, 0x5306, 0x5308, 0x7538, 0x530d, 0x5310, 0x530f, 0x5315, 0x531a, 0x5323, 0x532f, 0x5331, 0x5333, 0x5338, 0x5340, 0x5346, 0x5345, 0x4e17, 0x5349, 0x534d, 0x51d6, 0x535e, 0x5369, 0x536e, 0x5918, 0x537b, 0x5377, 0x5382, 0x5396, 0x53a0, 0x53a6, 0x53a5, 0x53ae, 0x53b0, 0x53b6, 0x53c3, 0x7c12, 0x96d9, 0x53df, 0x66fc, 0x71ee, 0x53ee, 0x53e8, 0x53ed, 0x53fa, 0x5401, 0x543d, 0x5440, 0x542c, 0x542d, 0x543c, 0x542e, 0x5436, 0x5429, 0x541d, 0x544e, 0x548f, 0x5475, 0x548e, 0x545f, 0x5471, 0x5477, 0x5470, 0x5492, 0x547b, 0x5480, 0x5476, 0x5484, 0x5490, 0x5486, 0x54c7, 0x54a2, 0x54b8, 0x54a5, 0x54ac, 0x54c4, 0x54c8, 0x54a8, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x54ab, 0x54c2, 0x54a4, 0x54be, 0x54bc, 0x54d8, 0x54e5, 0x54e6, 0x550f, 0x5514, 0x54fd, 0x54ee, 0x54ed, 0x54fa, 0x54e2, 0x5539, 0x5540, 0x5563, 0x554c, 0x552e, 0x555c, 0x5545, 0x5556, 0x5557, 0x5538, 0x5533, 0x555d, 0x5599, 0x5580, 0x54af, 0x558a, 0x559f, 0x557b, 0x557e, 0x5598, 0x559e, 0x55ae, 0x557c, 0x5583, 0x55a9, 0x5587, 0x55a8, 0x55da, 0x55c5, 0x55df, 0x55c4, 0x55dc, 0x55e4, 0x55d4, 0x5614, 0x55f7, 0x5616, 0x55fe, 0x55fd, 0x561b, 0x55f9, 0x564e, 0x5650, 0x71df, 0x5634, 0x5636, 0x5632, 0x5638, 0xfffd, 0x566b, 0x5664, 0x562f, 0x566c, 0x566a, 0x5686, 0x5680, 0x568a, 0x56a0, 0x5694, 0x568f, 0x56a5, 0x56ae, 0x56b6, 0x56b4, 0x56c2, 0x56bc, 0x56c1, 0x56c3, 0x56c0, 0x56c8, 0x56ce, 0x56d1, 0x56d3, 0x56d7, 0x56ee, 0x56f9, 0x5700, 0x56ff, 0x5704, 0x5709, 0x5708, 0x570b, 0x570d, 0x5713, 0x5718, 0x5716, 0x55c7, 0x571c, 0x5726, 0x5737, 0x5738, 0x574e, 0x573b, 0x5740, 0x574f, 0x5769, 0x57c0, 0x5788, 0x5761, 0x577f, 0x5789, 0x5793, 0x57a0, 0x57b3, 0x57a4, 0x57aa, 0x57b0, 0x57c3, 0x57c6, 0x57d4, 0x57d2, 0x57d3, 0x580a, 0x57d6, 0x57e3, 0x580b, 0x5819, 0x581d, 0x5872, 0x5821, 0x5862, 0x584b, 0x5870, 0x6bc0, 0x5852, 0x583d, 0x5879, 0x5885, 0x58b9, 0x589f, 0x58ab, 0x58ba, 0x58de, 0x58bb, 0x58b8, 0x58ae, 0x58c5, 0x58d3, 0x58d1, 0x58d7, 0x58d9, 0x58d8, 0x58e5, 0x58dc, 0x58e4, 0x58df, 0x58ef, 0x58fa, 0x58f9, 0x58fb, 0x58fc, 0x58fd, 0x5902, 0x590a, 0x5910, 0x591b, 0x68a6, 0x5925, 0x592c, 0x592d, 0x5932, 0x5938, 0x593e, 0x7ad2, 0x5955, 0x5950, 0x594e, 0x595a, 0x5958, 0x5962, 0x5960, 0x5967, 0x596c, 0x5969, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x5978, 0x5981, 0x599d, 0x4f5e, 0x4fab, 0x59a3, 0x59b2, 0x59c6, 0x59e8, 0x59dc, 0x598d, 0x59d9, 0x59da, 0x5a25, 0x5a1f, 0x5a11, 0x5a1c, 0x5a09, 0x5a1a, 0x5a40, 0x5a6c, 0x5a49, 0x5a35, 0x5a36, 0x5a62, 0x5a6a, 0x5a9a, 0x5abc, 0x5abe, 0x5acb, 0x5ac2, 0x5abd, 0x5ae3, 0x5ad7, 0x5ae6, 0x5ae9, 0x5ad6, 0x5afa, 0x5afb, 0x5b0c, 0x5b0b, 0x5b16, 0x5b32, 0x5ad0, 0x5b2a, 0x5b36, 0x5b3e, 0x5b43, 0x5b45, 0x5b40, 0x5b51, 0x5b55, 0x5b5a, 0x5b5b, 0x5b65, 0x5b69, 0x5b70, 0x5b73, 0x5b75, 0x5b78, 0x6588, 0x5b7a, 0x5b80, 0xfffd, 0x5b83, 0x5ba6, 0x5bb8, 0x5bc3, 0x5bc7, 0x5bc9, 0x5bd4, 0x5bd0, 0x5be4, 0x5be6, 0x5be2, 0x5bde, 0x5be5, 0x5beb, 0x5bf0, 0x5bf6, 0x5bf3, 0x5c05, 0x5c07, 0x5c08, 0x5c0d, 0x5c13, 0x5c20, 0x5c22, 0x5c28, 0x5c38, 0x5c39, 0x5c41, 0x5c46, 0x5c4e, 0x5c53, 0x5c50, 0x5c4f, 0x5b71, 0x5c6c, 0x5c6e, 0x4e62, 0x5c76, 0x5c79, 0x5c8c, 0x5c91, 0x5c94, 0x599b, 0x5cab, 0x5cbb, 0x5cb6, 0x5cbc, 0x5cb7, 0x5cc5, 0x5cbe, 0x5cc7, 0x5cd9, 0x5ce9, 0x5cfd, 0x5cfa, 0x5ced, 0x5d8c, 0x5cea, 0x5d0b, 0x5d15, 0x5d17, 0x5d5c, 0x5d1f, 0x5d1b, 0x5d11, 0x5d14, 0x5d22, 0x5d1a, 0x5d19, 0x5d18, 0x5d4c, 0x5d52, 0x5d4e, 0x5d4b, 0x5d6c, 0x5d73, 0x5d76, 0x5d87, 0x5d84, 0x5d82, 0x5da2, 0x5d9d, 0x5dac, 0x5dae, 0x5dbd, 0x5d90, 0x5db7, 0x5dbc, 0x5dc9, 0x5dcd, 0x5dd3, 0x5dd2, 0x5dd6, 0x5ddb, 0x5deb, 0x5df2, 0x5df5, 0x5e0b, 0x5e1a, 0x5e19, 0x5e11, 0x5e1b, 0x5e36, 0x5e37, 0x5e44, 0x5e43, 0x5e40, 0x5e4e, 0x5e57, 0x5e54, 0x5e5f, 0x5e62, 0x5e64, 0x5e47, 0x5e75, 0x5e76, 0x5e7a, 0x9ebc, 0x5e7f, 0x5ea0, 0x5ec1, 0x5ec2, 0x5ec8, 0x5ed0, 0x5ecf, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x5ed6, 0x5ee3, 0x5edd, 0x5eda, 0x5edb, 0x5ee2, 0x5ee1, 0x5ee8, 0x5ee9, 0x5eec, 0x5ef1, 0x5ef3, 0x5ef0, 0x5ef4, 0x5ef8, 0x5efe, 0x5f03, 0x5f09, 0x5f5d, 0x5f5c, 0x5f0b, 0x5f11, 0x5f16, 0x5f29, 0x5f2d, 0x5f38, 0x5f41, 0x5f48, 0x5f4c, 0x5f4e, 0x5f2f, 0x5f51, 0x5f56, 0x5f57, 0x5f59, 0x5f61, 0x5f6d, 0x5f73, 0x5f77, 0x5f83, 0x5f82, 0x5f7f, 0x5f8a, 0x5f88, 0x5f91, 0x5f87, 0x5f9e, 0x5f99, 0x5f98, 0x5fa0, 0x5fa8, 0x5fad, 0x5fbc, 0x5fd6, 0x5ffb, 0x5fe4, 0x5ff8, 0x5ff1, 0x5fdd, 0x60b3, 0x5fff, 0x6021, 0x6060, 0xfffd, 0x6019, 0x6010, 0x6029, 0x600e, 0x6031, 0x601b, 0x6015, 0x602b, 0x6026, 0x600f, 0x603a, 0x605a, 0x6041, 0x606a, 0x6077, 0x605f, 0x604a, 0x6046, 0x604d, 0x6063, 0x6043, 0x6064, 0x6042, 0x606c, 0x606b, 0x6059, 0x6081, 0x608d, 0x60e7, 0x6083, 0x609a, 0x6084, 0x609b, 0x6096, 0x6097, 0x6092, 0x60a7, 0x608b, 0x60e1, 0x60b8, 0x60e0, 0x60d3, 0x60b4, 0x5ff0, 0x60bd, 0x60c6, 0x60b5, 0x60d8, 0x614d, 0x6115, 0x6106, 0x60f6, 0x60f7, 0x6100, 0x60f4, 0x60fa, 0x6103, 0x6121, 0x60fb, 0x60f1, 0x610d, 0x610e, 0x6147, 0x613e, 0x6128, 0x6127, 0x614a, 0x613f, 0x613c, 0x612c, 0x6134, 0x613d, 0x6142, 0x6144, 0x6173, 0x6177, 0x6158, 0x6159, 0x615a, 0x616b, 0x6174, 0x616f, 0x6165, 0x6171, 0x615f, 0x615d, 0x6153, 0x6175, 0x6199, 0x6196, 0x6187, 0x61ac, 0x6194, 0x619a, 0x618a, 0x6191, 0x61ab, 0x61ae, 0x61cc, 0x61ca, 0x61c9, 0x61f7, 0x61c8, 0x61c3, 0x61c6, 0x61ba, 0x61cb, 0x7f79, 0x61cd, 0x61e6, 0x61e3, 0x61f6, 0x61fa, 0x61f4, 0x61ff, 0x61fd, 0x61fc, 0x61fe, 0x6200, 0x6208, 0x6209, 0x620d, 0x620c, 0x6214, 0x621b, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x621e, 0x6221, 0x622a, 0x622e, 0x6230, 0x6232, 0x6233, 0x6241, 0x624e, 0x625e, 0x6263, 0x625b, 0x6260, 0x6268, 0x627c, 0x6282, 0x6289, 0x627e, 0x6292, 0x6293, 0x6296, 0x62d4, 0x6283, 0x6294, 0x62d7, 0x62d1, 0x62bb, 0x62cf, 0x62ff, 0x62c6, 0x64d4, 0x62c8, 0x62dc, 0x62cc, 0x62ca, 0x62c2, 0x62c7, 0x629b, 0x62c9, 0x630c, 0x62ee, 0x62f1, 0x6327, 0x6302, 0x6308, 0x62ef, 0x62f5, 0x6350, 0x633e, 0x634d, 0x641c, 0x634f, 0x6396, 0x638e, 0x6380, 0x63ab, 0x6376, 0x63a3, 0x638f, 0x6389, 0x639f, 0x63b5, 0x636b, 0xfffd, 0x6369, 0x63be, 0x63e9, 0x63c0, 0x63c6, 0x63e3, 0x63c9, 0x63d2, 0x63f6, 0x63c4, 0x6416, 0x6434, 0x6406, 0x6413, 0x6426, 0x6436, 0x651d, 0x6417, 0x6428, 0x640f, 0x6467, 0x646f, 0x6476, 0x644e, 0x652a, 0x6495, 0x6493, 0x64a5, 0x64a9, 0x6488, 0x64bc, 0x64da, 0x64d2, 0x64c5, 0x64c7, 0x64bb, 0x64d8, 0x64c2, 0x64f1, 0x64e7, 0x8209, 0x64e0, 0x64e1, 0x62ac, 0x64e3, 0x64ef, 0x652c, 0x64f6, 0x64f4, 0x64f2, 0x64fa, 0x6500, 0x64fd, 0x6518, 0x651c, 0x6505, 0x6524, 0x6523, 0x652b, 0x6534, 0x6535, 0x6537, 0x6536, 0x6538, 0x754b, 0x6548, 0x6556, 0x6555, 0x654d, 0x6558, 0x655e, 0x655d, 0x6572, 0x6578, 0x6582, 0x6583, 0x8b8a, 0x659b, 0x659f, 0x65ab, 0x65b7, 0x65c3, 0x65c6, 0x65c1, 0x65c4, 0x65cc, 0x65d2, 0x65db, 0x65d9, 0x65e0, 0x65e1, 0x65f1, 0x6772, 0x660a, 0x6603, 0x65fb, 0x6773, 0x6635, 0x6636, 0x6634, 0x661c, 0x664f, 0x6644, 0x6649, 0x6641, 0x665e, 0x665d, 0x6664, 0x6667, 0x6668, 0x665f, 0x6662, 0x6670, 0x6683, 0x6688, 0x668e, 0x6689, 0x6684, 0x6698, 0x669d, 0x66c1, 0x66b9, 0x66c9, 0x66be, 0x66bc, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x66c4, 0x66b8, 0x66d6, 0x66da, 0x66e0, 0x663f, 0x66e6, 0x66e9, 0x66f0, 0x66f5, 0x66f7, 0x670f, 0x6716, 0x671e, 0x6726, 0x6727, 0x9738, 0x672e, 0x673f, 0x6736, 0x6741, 0x6738, 0x6737, 0x6746, 0x675e, 0x6760, 0x6759, 0x6763, 0x6764, 0x6789, 0x6770, 0x67a9, 0x677c, 0x676a, 0x678c, 0x678b, 0x67a6, 0x67a1, 0x6785, 0x67b7, 0x67ef, 0x67b4, 0x67ec, 0x67b3, 0x67e9, 0x67b8, 0x67e4, 0x67de, 0x67dd, 0x67e2, 0x67ee, 0x67b9, 0x67ce, 0x67c6, 0x67e7, 0x6a9c, 0x681e, 0x6846, 0x6829, 0x6840, 0x684d, 0x6832, 0x684e, 0xfffd, 0x68b3, 0x682b, 0x6859, 0x6863, 0x6877, 0x687f, 0x689f, 0x688f, 0x68ad, 0x6894, 0x689d, 0x689b, 0x6883, 0x6aae, 0x68b9, 0x6874, 0x68b5, 0x68a0, 0x68ba, 0x690f, 0x688d, 0x687e, 0x6901, 0x68ca, 0x6908, 0x68d8, 0x6922, 0x6926, 0x68e1, 0x690c, 0x68cd, 0x68d4, 0x68e7, 0x68d5, 0x6936, 0x6912, 0x6904, 0x68d7, 0x68e3, 0x6925, 0x68f9, 0x68e0, 0x68ef, 0x6928, 0x692a, 0x691a, 0x6923, 0x6921, 0x68c6, 0x6979, 0x6977, 0x695c, 0x6978, 0x696b, 0x6954, 0x697e, 0x696e, 0x6939, 0x6974, 0x693d, 0x6959, 0x6930, 0x6961, 0x695e, 0x695d, 0x6981, 0x696a, 0x69b2, 0x69ae, 0x69d0, 0x69bf, 0x69c1, 0x69d3, 0x69be, 0x69ce, 0x5be8, 0x69ca, 0x69dd, 0x69bb, 0x69c3, 0x69a7, 0x6a2e, 0x6991, 0x69a0, 0x699c, 0x6995, 0x69b4, 0x69de, 0x69e8, 0x6a02, 0x6a1b, 0x69ff, 0x6b0a, 0x69f9, 0x69f2, 0x69e7, 0x6a05, 0x69b1, 0x6a1e, 0x69ed, 0x6a14, 0x69eb, 0x6a0a, 0x6a12, 0x6ac1, 0x6a23, 0x6a13, 0x6a44, 0x6a0c, 0x6a72, 0x6a36, 0x6a78, 0x6a47, 0x6a62, 0x6a59, 0x6a66, 0x6a48, 0x6a38, 0x6a22, 0x6a90, 0x6a8d, 0x6aa0, 0x6a84, 0x6aa2, 0x6aa3, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x6a97, 0x8617, 0x6abb, 0x6ac3, 0x6ac2, 0x6ab8, 0x6ab3, 0x6aac, 0x6ade, 0x6ad1, 0x6adf, 0x6aaa, 0x6ada, 0x6aea, 0x6afb, 0x6b05, 0x8616, 0x6afa, 0x6b12, 0x6b16, 0x9b31, 0x6b1f, 0x6b38, 0x6b37, 0x76dc, 0x6b39, 0x98ee, 0x6b47, 0x6b43, 0x6b49, 0x6b50, 0x6b59, 0x6b54, 0x6b5b, 0x6b5f, 0x6b61, 0x6b78, 0x6b79, 0x6b7f, 0x6b80, 0x6b84, 0x6b83, 0x6b8d, 0x6b98, 0x6b95, 0x6b9e, 0x6ba4, 0x6baa, 0x6bab, 0x6baf, 0x6bb2, 0x6bb1, 0x6bb3, 0x6bb7, 0x6bbc, 0x6bc6, 0x6bcb, 0x6bd3, 0x6bdf, 0x6bec, 0x6beb, 0x6bf3, 0x6bef, 0xfffd, 0x9ebe, 0x6c08, 0x6c13, 0x6c14, 0x6c1b, 0x6c24, 0x6c23, 0x6c5e, 0x6c55, 0x6c62, 0x6c6a, 0x6c82, 0x6c8d, 0x6c9a, 0x6c81, 0x6c9b, 0x6c7e, 0x6c68, 0x6c73, 0x6c92, 0x6c90, 0x6cc4, 0x6cf1, 0x6cd3, 0x6cbd, 0x6cd7, 0x6cc5, 0x6cdd, 0x6cae, 0x6cb1, 0x6cbe, 0x6cba, 0x6cdb, 0x6cef, 0x6cd9, 0x6cea, 0x6d1f, 0x884d, 0x6d36, 0x6d2b, 0x6d3d, 0x6d38, 0x6d19, 0x6d35, 0x6d33, 0x6d12, 0x6d0c, 0x6d63, 0x6d93, 0x6d64, 0x6d5a, 0x6d79, 0x6d59, 0x6d8e, 0x6d95, 0x6fe4, 0x6d85, 0x6df9, 0x6e15, 0x6e0a, 0x6db5, 0x6dc7, 0x6de6, 0x6db8, 0x6dc6, 0x6dec, 0x6dde, 0x6dcc, 0x6de8, 0x6dd2, 0x6dc5, 0x6dfa, 0x6dd9, 0x6de4, 0x6dd5, 0x6dea, 0x6dee, 0x6e2d, 0x6e6e, 0x6e2e, 0x6e19, 0x6e72, 0x6e5f, 0x6e3e, 0x6e23, 0x6e6b, 0x6e2b, 0x6e76, 0x6e4d, 0x6e1f, 0x6e43, 0x6e3a, 0x6e4e, 0x6e24, 0x6eff, 0x6e1d, 0x6e38, 0x6e82, 0x6eaa, 0x6e98, 0x6ec9, 0x6eb7, 0x6ed3, 0x6ebd, 0x6eaf, 0x6ec4, 0x6eb2, 0x6ed4, 0x6ed5, 0x6e8f, 0x6ea5, 0x6ec2, 0x6e9f, 0x6f41, 0x6f11, 0x704c, 0x6eec, 0x6ef8, 0x6efe, 0x6f3f, 0x6ef2, 0x6f31, 0x6eef, 0x6f32, 0x6ecc }; static USHORT /* Shift-JIS to Unicode */ sju_e040[] = { /* 0xe040 thru 0xeaa4 */ 0x6f3e, 0x6f13, 0x6ef7, 0x6f86, 0x6f7a, 0x6f78, 0x6f81, 0x6f80, 0x6f6f, 0x6f5b, 0x6ff3, 0x6f6d, 0x6f82, 0x6f7c, 0x6f58, 0x6f8e, 0x6f91, 0x6fc2, 0x6f66, 0x6fb3, 0x6fa3, 0x6fa1, 0x6fa4, 0x6fb9, 0x6fc6, 0x6faa, 0x6fdf, 0x6fd5, 0x6fec, 0x6fd4, 0x6fd8, 0x6ff1, 0x6fee, 0x6fdb, 0x7009, 0x700b, 0x6ffa, 0x7011, 0x7001, 0x700f, 0x6ffe, 0x701b, 0x701a, 0x6f74, 0x701d, 0x7018, 0x701f, 0x7030, 0x703e, 0x7032, 0x7051, 0x7063, 0x7099, 0x7092, 0x70af, 0x70f1, 0x70ac, 0x70b8, 0x70b3, 0x70ae, 0x70df, 0x70cb, 0x70dd, 0xfffd, 0x70d9, 0x7109, 0x70fd, 0x711c, 0x7119, 0x7165, 0x7155, 0x7188, 0x7166, 0x7162, 0x714c, 0x7156, 0x716c, 0x718f, 0x71fb, 0x7184, 0x7195, 0x71a8, 0x71ac, 0x71d7, 0x71b9, 0x71be, 0x71d2, 0x71c9, 0x71d4, 0x71ce, 0x71e0, 0x71ec, 0x71e7, 0x71f5, 0x71fc, 0x71f9, 0x71ff, 0x720d, 0x7210, 0x721b, 0x7228, 0x722d, 0x722c, 0x7230, 0x7232, 0x723b, 0x723c, 0x723f, 0x7240, 0x7246, 0x724b, 0x7258, 0x7274, 0x727e, 0x7282, 0x7281, 0x7287, 0x7292, 0x7296, 0x72a2, 0x72a7, 0x72b9, 0x72b2, 0x72c3, 0x72c6, 0x72c4, 0x72ce, 0x72d2, 0x72e2, 0x72e0, 0x72e1, 0x72f9, 0x72f7, 0x500f, 0x7317, 0x730a, 0x731c, 0x7316, 0x731d, 0x7334, 0x732f, 0x7329, 0x7325, 0x733e, 0x734e, 0x734f, 0x9ed8, 0x7357, 0x736a, 0x7368, 0x7370, 0x7378, 0x7375, 0x737b, 0x737a, 0x73c8, 0x73b3, 0x73ce, 0x73bb, 0x73c0, 0x73e5, 0x73ee, 0x73de, 0x74a2, 0x7405, 0x746f, 0x7425, 0x73f8, 0x7432, 0x743a, 0x7455, 0x743f, 0x745f, 0x7459, 0x7441, 0x745c, 0x7469, 0x7470, 0x7463, 0x746a, 0x7476, 0x747e, 0x748b, 0x749e, 0x74a7, 0x74ca, 0x74cf, 0x74d4, 0x73f1, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x74e0, 0x74e3, 0x74e7, 0x74e9, 0x74ee, 0x74f2, 0x74f0, 0x74f1, 0x74f8, 0x74f7, 0x7504, 0x7503, 0x7505, 0x750c, 0x750e, 0x750d, 0x7515, 0x7513, 0x751e, 0x7526, 0x752c, 0x753c, 0x7544, 0x754d, 0x754a, 0x7549, 0x755b, 0x7546, 0x755a, 0x7569, 0x7564, 0x7567, 0x756b, 0x756d, 0x7578, 0x7576, 0x7586, 0x7587, 0x7574, 0x758a, 0x7589, 0x7582, 0x7594, 0x759a, 0x759d, 0x75a5, 0x75a3, 0x75c2, 0x75b3, 0x75c3, 0x75b5, 0x75bd, 0x75b8, 0x75bc, 0x75b1, 0x75cd, 0x75ca, 0x75d2, 0x75d9, 0x75e3, 0x75de, 0x75fe, 0x75ff, 0xfffd, 0x75fc, 0x7601, 0x75f0, 0x75fa, 0x75f2, 0x75f3, 0x760b, 0x760d, 0x7609, 0x761f, 0x7627, 0x7620, 0x7621, 0x7622, 0x7624, 0x7634, 0x7630, 0x763b, 0x7647, 0x7648, 0x7646, 0x765c, 0x7658, 0x7661, 0x7662, 0x7668, 0x7669, 0x766a, 0x7667, 0x766c, 0x7670, 0x7672, 0x7676, 0x7678, 0x767c, 0x7680, 0x7683, 0x7688, 0x768b, 0x768e, 0x7696, 0x7693, 0x7699, 0x769a, 0x76b0, 0x76b4, 0x76b8, 0x76b9, 0x76ba, 0x76c2, 0x76cd, 0x76d6, 0x76d2, 0x76de, 0x76e1, 0x76e5, 0x76e7, 0x76ea, 0x862f, 0x76fb, 0x7708, 0x7707, 0x7704, 0x7729, 0x7724, 0x771e, 0x7725, 0x7726, 0x771b, 0x7737, 0x7738, 0x7747, 0x775a, 0x7768, 0x776b, 0x775b, 0x7765, 0x777f, 0x777e, 0x7779, 0x778e, 0x778b, 0x7791, 0x77a0, 0x779e, 0x77b0, 0x77b6, 0x77b9, 0x77bf, 0x77bc, 0x77bd, 0x77bb, 0x77c7, 0x77cd, 0x77d7, 0x77da, 0x77dc, 0x77e3, 0x77ee, 0x77fc, 0x780c, 0x7812, 0x7926, 0x7820, 0x792a, 0x7845, 0x788e, 0x7874, 0x7886, 0x787c, 0x789a, 0x788c, 0x78a3, 0x78b5, 0x78aa, 0x78af, 0x78d1, 0x78c6, 0x78cb, 0x78d4, 0x78be, 0x78bc, 0x78c5, 0x78ca, 0x78ec, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x78e7, 0x78da, 0x78fd, 0x78f4, 0x7907, 0x7912, 0x7911, 0x7919, 0x792c, 0x792b, 0x7940, 0x7960, 0x7957, 0x795f, 0x795a, 0x7955, 0x7953, 0x797a, 0x797f, 0x798a, 0x799d, 0x79a7, 0x9f4b, 0x79aa, 0x79ae, 0x79b3, 0x79b9, 0x79ba, 0x79c9, 0x79d5, 0x79e7, 0x79ec, 0x79e1, 0x79e3, 0x7a08, 0x7a0d, 0x7a18, 0x7a19, 0x7a20, 0x7a1f, 0x7980, 0x7a31, 0x7a3b, 0x7a3e, 0x7a37, 0x7a43, 0x7a57, 0x7a49, 0x7a61, 0x7a62, 0x7a69, 0x9f9d, 0x7a70, 0x7a79, 0x7a7d, 0x7a88, 0x7a97, 0x7a95, 0x7a98, 0x7a96, 0x7aa9, 0x7ac8, 0x7ab0, 0xfffd, 0x7ab6, 0x7ac5, 0x7ac4, 0x7abf, 0x9083, 0x7ac7, 0x7aca, 0x7acd, 0x7acf, 0x7ad5, 0x7ad3, 0x7ad9, 0x7ada, 0x7add, 0x7ae1, 0x7ae2, 0x7ae6, 0x7aed, 0x7af0, 0x7b02, 0x7b0f, 0x7b0a, 0x7b06, 0x7b33, 0x7b18, 0x7b19, 0x7b1e, 0x7b35, 0x7b28, 0x7b36, 0x7b50, 0x7b7a, 0x7b04, 0x7b4d, 0x7b0b, 0x7b4c, 0x7b45, 0x7b75, 0x7b65, 0x7b74, 0x7b67, 0x7b70, 0x7b71, 0x7b6c, 0x7b6e, 0x7b9d, 0x7b98, 0x7b9f, 0x7b8d, 0x7b9c, 0x7b9a, 0x7b8b, 0x7b92, 0x7b8f, 0x7b5d, 0x7b99, 0x7bcb, 0x7bc1, 0x7bcc, 0x7bcf, 0x7bb4, 0x7bc6, 0x7bdd, 0x7be9, 0x7c11, 0x7c14, 0x7be6, 0x7be5, 0x7c60, 0x7c00, 0x7c07, 0x7c13, 0x7bf3, 0x7bf7, 0x7c17, 0x7c0d, 0x7bf6, 0x7c23, 0x7c27, 0x7c2a, 0x7c1f, 0x7c37, 0x7c2b, 0x7c3d, 0x7c4c, 0x7c43, 0x7c54, 0x7c4f, 0x7c40, 0x7c50, 0x7c58, 0x7c5f, 0x7c64, 0x7c56, 0x7c65, 0x7c6c, 0x7c75, 0x7c83, 0x7c90, 0x7ca4, 0x7cad, 0x7ca2, 0x7cab, 0x7ca1, 0x7ca8, 0x7cb3, 0x7cb2, 0x7cb1, 0x7cae, 0x7cb9, 0x7cbd, 0x7cc0, 0x7cc5, 0x7cc2, 0x7cd8, 0x7cd2, 0x7cdc, 0x7ce2, 0x9b3b, 0x7cef, 0x7cf2, 0x7cf4, 0x7cf6, 0x7cfa, 0x7d06, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x7d02, 0x7d1c, 0x7d15, 0x7d0a, 0x7d45, 0x7d4b, 0x7d2e, 0x7d32, 0x7d3f, 0x7d35, 0x7d46, 0x7d73, 0x7d56, 0x7d4e, 0x7d72, 0x7d68, 0x7d6e, 0x7d4f, 0x7d63, 0x7d93, 0x7d89, 0x7d5b, 0x7d8f, 0x7d7d, 0x7d9b, 0x7dba, 0x7dae, 0x7da3, 0x7db5, 0x7dc7, 0x7dbd, 0x7dab, 0x7e3d, 0x7da2, 0x7daf, 0x7ddc, 0x7db8, 0x7d9f, 0x7db0, 0x7dd8, 0x7ddd, 0x7de4, 0x7dde, 0x7dfb, 0x7df2, 0x7de1, 0x7e05, 0x7e0a, 0x7e23, 0x7e21, 0x7e12, 0x7e31, 0x7e1f, 0x7e09, 0x7e0b, 0x7e22, 0x7e46, 0x7e66, 0x7e3b, 0x7e35, 0x7e39, 0x7e43, 0x7e37, 0xfffd, 0x7e32, 0x7e3a, 0x7e67, 0x7e5d, 0x7e56, 0x7e5e, 0x7e59, 0x7e5a, 0x7e79, 0x7e6a, 0x7e69, 0x7e7c, 0x7e7b, 0x7e83, 0x7dd5, 0x7e7d, 0x8fae, 0x7e7f, 0x7e88, 0x7e89, 0x7e8c, 0x7e92, 0x7e90, 0x7e93, 0x7e94, 0x7e96, 0x7e8e, 0x7e9b, 0x7e9c, 0x7f38, 0x7f3a, 0x7f45, 0x7f4c, 0x7f4d, 0x7f4e, 0x7f50, 0x7f51, 0x7f55, 0x7f54, 0x7f58, 0x7f5f, 0x7f60, 0x7f68, 0x7f69, 0x7f67, 0x7f78, 0x7f82, 0x7f86, 0x7f83, 0x7f88, 0x7f87, 0x7f8c, 0x7f94, 0x7f9e, 0x7f9d, 0x7f9a, 0x7fa3, 0x7faf, 0x7fb2, 0x7fb9, 0x7fae, 0x7fb6, 0x7fb8, 0x8b71, 0x7fc5, 0x7fc6, 0x7fca, 0x7fd5, 0x7fd4, 0x7fe1, 0x7fe6, 0x7fe9, 0x7ff3, 0x7ff9, 0x98dc, 0x8006, 0x8004, 0x800b, 0x8012, 0x8018, 0x8019, 0x801c, 0x8021, 0x8028, 0x803f, 0x803b, 0x804a, 0x8046, 0x8052, 0x8058, 0x805a, 0x805f, 0x8062, 0x8068, 0x8073, 0x8072, 0x8070, 0x8076, 0x8079, 0x807d, 0x807f, 0x8084, 0x8086, 0x8085, 0x809b, 0x8093, 0x809a, 0x80ad, 0x5190, 0x80ac, 0x80db, 0x80e5, 0x80d9, 0x80dd, 0x80c4, 0x80da, 0x80d6, 0x8109, 0x80ef, 0x80f1, 0x811b, 0x8129, 0x8123, 0x812f, 0x814b, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x968b, 0x8146, 0x813e, 0x8153, 0x8151, 0x80fc, 0x8171, 0x816e, 0x8165, 0x8166, 0x8174, 0x8183, 0x8188, 0x818a, 0x8180, 0x8182, 0x81a0, 0x8195, 0x81a4, 0x81a3, 0x815f, 0x8193, 0x81a9, 0x81b0, 0x81b5, 0x81be, 0x81b8, 0x81bd, 0x81c0, 0x81c2, 0x81ba, 0x81c9, 0x81cd, 0x81d1, 0x81d9, 0x81d8, 0x81c8, 0x81da, 0x81df, 0x81e0, 0x81e7, 0x81fa, 0x81fb, 0x81fe, 0x8201, 0x8202, 0x8205, 0x8207, 0x820a, 0x820d, 0x8210, 0x8216, 0x8229, 0x822b, 0x8238, 0x8233, 0x8240, 0x8259, 0x8258, 0x825d, 0x825a, 0x825f, 0x8264, 0xfffd, 0x8262, 0x8268, 0x826a, 0x826b, 0x822e, 0x8271, 0x8277, 0x8278, 0x827e, 0x828d, 0x8292, 0x82ab, 0x829f, 0x82bb, 0x82ac, 0x82e1, 0x82e3, 0x82df, 0x82d2, 0x82f4, 0x82f3, 0x82fa, 0x8393, 0x8303, 0x82fb, 0x82f9, 0x82de, 0x8306, 0x82dc, 0x8309, 0x82d9, 0x8335, 0x8334, 0x8316, 0x8332, 0x8331, 0x8340, 0x8339, 0x8350, 0x8345, 0x832f, 0x832b, 0x8317, 0x8318, 0x8385, 0x839a, 0x83aa, 0x839f, 0x83a2, 0x8396, 0x8323, 0x838e, 0x8387, 0x838a, 0x837c, 0x83b5, 0x8373, 0x8375, 0x83a0, 0x8389, 0x83a8, 0x83f4, 0x8413, 0x83eb, 0x83ce, 0x83fd, 0x8403, 0x83d8, 0x840b, 0x83c1, 0x83f7, 0x8407, 0x83e0, 0x83f2, 0x840d, 0x8422, 0x8420, 0x83bd, 0x8438, 0x8506, 0x83fb, 0x846d, 0x842a, 0x843c, 0x855a, 0x8484, 0x8477, 0x846b, 0x84ad, 0x846e, 0x8482, 0x8469, 0x8446, 0x842c, 0x846f, 0x8479, 0x8435, 0x84ca, 0x8462, 0x84b9, 0x84bf, 0x849f, 0x84d9, 0x84cd, 0x84bb, 0x84da, 0x84d0, 0x84c1, 0x84c6, 0x84d6, 0x84a1, 0x8521, 0x84ff, 0x84f4, 0x8517, 0x8518, 0x852c, 0x851f, 0x8515, 0x8514, 0x84fc, 0x8540, 0x8563, 0x8558, 0x8548, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8541, 0x8602, 0x854b, 0x8555, 0x8580, 0x85a4, 0x8588, 0x8591, 0x858a, 0x85a8, 0x856d, 0x8594, 0x859b, 0x85ea, 0x8587, 0x859c, 0x8577, 0x857e, 0x8590, 0x85c9, 0x85ba, 0x85cf, 0x85b9, 0x85d0, 0x85d5, 0x85dd, 0x85e5, 0x85dc, 0x85f9, 0x860a, 0x8613, 0x860b, 0x85fe, 0x85fa, 0x8606, 0x8622, 0x861a, 0x8630, 0x863f, 0x864d, 0x4e55, 0x8654, 0x865f, 0x8667, 0x8671, 0x8693, 0x86a3, 0x86a9, 0x86aa, 0x868b, 0x868c, 0x86b6, 0x86af, 0x86c4, 0x86c6, 0x86b0, 0x86c9, 0x8823, 0x86ab, 0x86d4, 0x86de, 0x86e9, 0x86ec, 0xfffd, 0x86df, 0x86db, 0x86ef, 0x8712, 0x8706, 0x8708, 0x8700, 0x8703, 0x86fb, 0x8711, 0x8709, 0x870d, 0x86f9, 0x870a, 0x8734, 0x873f, 0x8737, 0x873b, 0x8725, 0x8729, 0x871a, 0x8760, 0x875f, 0x8778, 0x874c, 0x874e, 0x8774, 0x8757, 0x8768, 0x876e, 0x8759, 0x8753, 0x8763, 0x876a, 0x8805, 0x87a2, 0x879f, 0x8782, 0x87af, 0x87cb, 0x87bd, 0x87c0, 0x87d0, 0x96d6, 0x87ab, 0x87c4, 0x87b3, 0x87c7, 0x87c6, 0x87bb, 0x87ef, 0x87f2, 0x87e0, 0x880f, 0x880d, 0x87fe, 0x87f6, 0x87f7, 0x880e, 0x87d2, 0x8811, 0x8816, 0x8815, 0x8822, 0x8821, 0x8831, 0x8836, 0x8839, 0x8827, 0x883b, 0x8844, 0x8842, 0x8852, 0x8859, 0x885e, 0x8862, 0x886b, 0x8881, 0x887e, 0x889e, 0x8875, 0x887d, 0x88b5, 0x8872, 0x8882, 0x8897, 0x8892, 0x88ae, 0x8899, 0x88a2, 0x888d, 0x88a4, 0x88b0, 0x88bf, 0x88b1, 0x88c3, 0x88c4, 0x88d4, 0x88d8, 0x88d9, 0x88dd, 0x88f9, 0x8902, 0x88fc, 0x88f4, 0x88e8, 0x88f2, 0x8904, 0x890c, 0x890a, 0x8913, 0x8943, 0x891e, 0x8925, 0x892a, 0x892b, 0x8941, 0x8944, 0x893b, 0x8936, 0x8938, 0x894c, 0x891d, 0x8960, 0x895e, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8966, 0x8964, 0x896d, 0x896a, 0x896f, 0x8974, 0x8977, 0x897e, 0x8983, 0x8988, 0x898a, 0x8993, 0x8998, 0x89a1, 0x89a9, 0x89a6, 0x89ac, 0x89af, 0x89b2, 0x89ba, 0x89bd, 0x89bf, 0x89c0, 0x89da, 0x89dc, 0x89dd, 0x89e7, 0x89f4, 0x89f8, 0x8a03, 0x8a16, 0x8a10, 0x8a0c, 0x8a1b, 0x8a1d, 0x8a25, 0x8a36, 0x8a41, 0x8a5b, 0x8a52, 0x8a46, 0x8a48, 0x8a7c, 0x8a6d, 0x8a6c, 0x8a62, 0x8a85, 0x8a82, 0x8a84, 0x8aa8, 0x8aa1, 0x8a91, 0x8aa5, 0x8aa6, 0x8a9a, 0x8aa3, 0x8ac4, 0x8acd, 0x8ac2, 0x8ada, 0x8aeb, 0x8af3, 0x8ae7, 0xfffd, 0x8ae4, 0x8af1, 0x8b14, 0x8ae0, 0x8ae2, 0x8af7, 0x8ade, 0x8adb, 0x8b0c, 0x8b07, 0x8b1a, 0x8ae1, 0x8b16, 0x8b10, 0x8b17, 0x8b20, 0x8b33, 0x97ab, 0x8b26, 0x8b2b, 0x8b3e, 0x8b28, 0x8b41, 0x8b4c, 0x8b4f, 0x8b4e, 0x8b49, 0x8b56, 0x8b5b, 0x8b5a, 0x8b6b, 0x8b5f, 0x8b6c, 0x8b6f, 0x8b74, 0x8b7d, 0x8b80, 0x8b8c, 0x8b8e, 0x8b92, 0x8b93, 0x8b96, 0x8b99, 0x8b9a, 0x8c3a, 0x8c41, 0x8c3f, 0x8c48, 0x8c4c, 0x8c4e, 0x8c50, 0x8c55, 0x8c62, 0x8c6c, 0x8c78, 0x8c7a, 0x8c82, 0x8c89, 0x8c85, 0x8c8a, 0x8c8d, 0x8c8e, 0x8c94, 0x8c7c, 0x8c98, 0x621d, 0x8cad, 0x8caa, 0x8cbd, 0x8cb2, 0x8cb3, 0x8cae, 0x8cb6, 0x8cc8, 0x8cc1, 0x8ce4, 0x8ce3, 0x8cda, 0x8cfd, 0x8cfa, 0x8cfb, 0x8d04, 0x8d05, 0x8d0a, 0x8d07, 0x8d0f, 0x8d0d, 0x8d10, 0x9f4e, 0x8d13, 0x8ccd, 0x8d14, 0x8d16, 0x8d67, 0x8d6d, 0x8d71, 0x8d73, 0x8d81, 0x8d99, 0x8dc2, 0x8dbe, 0x8dba, 0x8dcf, 0x8dda, 0x8dd6, 0x8dcc, 0x8ddb, 0x8dcb, 0x8dea, 0x8deb, 0x8ddf, 0x8de3, 0x8dfc, 0x8e08, 0x8e09, 0x8dff, 0x8e1d, 0x8e1e, 0x8e10, 0x8e1f, 0x8e42, 0x8e35, 0x8e30, 0x8e34, 0x8e4a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8e47, 0x8e49, 0x8e4c, 0x8e50, 0x8e48, 0x8e59, 0x8e64, 0x8e60, 0x8e2a, 0x8e63, 0x8e55, 0x8e76, 0x8e72, 0x8e7c, 0x8e81, 0x8e87, 0x8e85, 0x8e84, 0x8e8b, 0x8e8a, 0x8e93, 0x8e91, 0x8e94, 0x8e99, 0x8eaa, 0x8ea1, 0x8eac, 0x8eb0, 0x8ec6, 0x8eb1, 0x8ebe, 0x8ec5, 0x8ec8, 0x8ecb, 0x8edb, 0x8ee3, 0x8efc, 0x8efb, 0x8eeb, 0x8efe, 0x8f0a, 0x8f05, 0x8f15, 0x8f12, 0x8f19, 0x8f13, 0x8f1c, 0x8f1f, 0x8f1b, 0x8f0c, 0x8f26, 0x8f33, 0x8f3b, 0x8f39, 0x8f45, 0x8f42, 0x8f3e, 0x8f4c, 0x8f49, 0x8f46, 0x8f4e, 0x8f57, 0x8f5c, 0xfffd, 0x8f62, 0x8f63, 0x8f64, 0x8f9c, 0x8f9f, 0x8fa3, 0x8fad, 0x8faf, 0x8fb7, 0x8fda, 0x8fe5, 0x8fe2, 0x8fea, 0x8fef, 0x9087, 0x8ff4, 0x9005, 0x8ff9, 0x8ffa, 0x9011, 0x9015, 0x9021, 0x900d, 0x901e, 0x9016, 0x900b, 0x9027, 0x9036, 0x9035, 0x9039, 0x8ff8, 0x904f, 0x9050, 0x9051, 0x9052, 0x900e, 0x9049, 0x903e, 0x9056, 0x9058, 0x905e, 0x9068, 0x906f, 0x9076, 0x96a8, 0x9072, 0x9082, 0x907d, 0x9081, 0x9080, 0x908a, 0x9089, 0x908f, 0x90a8, 0x90af, 0x90b1, 0x90b5, 0x90e2, 0x90e4, 0x6248, 0x90db, 0x9102, 0x9112, 0x9119, 0x9132, 0x9130, 0x914a, 0x9156, 0x9158, 0x9163, 0x9165, 0x9169, 0x9173, 0x9172, 0x918b, 0x9189, 0x9182, 0x91a2, 0x91ab, 0x91af, 0x91aa, 0x91b5, 0x91b4, 0x91ba, 0x91c0, 0x91c1, 0x91c9, 0x91cb, 0x91d0, 0x91d6, 0x91df, 0x91e1, 0x91db, 0x91fc, 0x91f5, 0x91f6, 0x921e, 0x91ff, 0x9214, 0x922c, 0x9215, 0x9211, 0x925e, 0x9257, 0x9245, 0x9249, 0x9264, 0x9248, 0x9295, 0x923f, 0x924b, 0x9250, 0x929c, 0x9296, 0x9293, 0x929b, 0x925a, 0x92cf, 0x92b9, 0x92b7, 0x92e9, 0x930f, 0x92fa, 0x9344, 0x932e, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9319, 0x9322, 0x931a, 0x9323, 0x933a, 0x9335, 0x933b, 0x935c, 0x9360, 0x937c, 0x936e, 0x9356, 0x93b0, 0x93ac, 0x93ad, 0x9394, 0x93b9, 0x93d6, 0x93d7, 0x93e8, 0x93e5, 0x93d8, 0x93c3, 0x93dd, 0x93d0, 0x93c8, 0x93e4, 0x941a, 0x9414, 0x9413, 0x9403, 0x9407, 0x9410, 0x9436, 0x942b, 0x9435, 0x9421, 0x943a, 0x9441, 0x9452, 0x9444, 0x945b, 0x9460, 0x9462, 0x945e, 0x946a, 0x9229, 0x9470, 0x9475, 0x9477, 0x947d, 0x945a, 0x947c, 0x947e, 0x9481, 0x947f, 0x9582, 0x9587, 0x958a, 0x9594, 0x9596, 0x9598, 0x9599, 0xfffd, 0x95a0, 0x95a8, 0x95a7, 0x95ad, 0x95bc, 0x95bb, 0x95b9, 0x95be, 0x95ca, 0x6ff6, 0x95c3, 0x95cd, 0x95cc, 0x95d5, 0x95d4, 0x95d6, 0x95dc, 0x95e1, 0x95e5, 0x95e2, 0x9621, 0x9628, 0x962e, 0x962f, 0x9642, 0x964c, 0x964f, 0x964b, 0x9677, 0x965c, 0x965e, 0x965d, 0x965f, 0x9666, 0x9672, 0x966c, 0x968d, 0x9698, 0x9695, 0x9697, 0x96aa, 0x96a7, 0x96b1, 0x96b2, 0x96b0, 0x96b4, 0x96b6, 0x96b8, 0x96b9, 0x96ce, 0x96cb, 0x96c9, 0x96cd, 0x894d, 0x96dc, 0x970d, 0x96d5, 0x96f9, 0x9704, 0x9706, 0x9708, 0x9713, 0x970e, 0x9711, 0x970f, 0x9716, 0x9719, 0x9724, 0x972a, 0x9730, 0x9739, 0x973d, 0x973e, 0x9744, 0x9746, 0x9748, 0x9742, 0x9749, 0x975c, 0x9760, 0x9764, 0x9766, 0x9768, 0x52d2, 0x976b, 0x9771, 0x9779, 0x9785, 0x977c, 0x9781, 0x977a, 0x9786, 0x978b, 0x978f, 0x9790, 0x979c, 0x97a8, 0x97a6, 0x97a3, 0x97b3, 0x97b4, 0x97c3, 0x97c6, 0x97c8, 0x97cb, 0x97dc, 0x97ed, 0x9f4f, 0x97f2, 0x7adf, 0x97f6, 0x97f5, 0x980f, 0x980c, 0x9838, 0x9824, 0x9821, 0x9837, 0x983d, 0x9846, 0x984f, 0x984b, 0x986b, 0x986f, 0x9870, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9871, 0x9874, 0x9873, 0x98aa, 0x98af, 0x98b1, 0x98b6, 0x98c4, 0x98c3, 0x98c6, 0x98e9, 0x98eb, 0x9903, 0x9909, 0x9912, 0x9914, 0x9918, 0x9921, 0x991d, 0x991e, 0x9924, 0x9920, 0x992c, 0x992e, 0x993d, 0x993e, 0x9942, 0x9949, 0x9945, 0x9950, 0x994b, 0x9951, 0x9952, 0x994c, 0x9955, 0x9997, 0x9998, 0x99a5, 0x99ad, 0x99ae, 0x99bc, 0x99df, 0x99db, 0x99dd, 0x99d8, 0x99d1, 0x99ed, 0x99ee, 0x99f1, 0x99f2, 0x99fb, 0x99f8, 0x9a01, 0x9a0f, 0x9a05, 0x99e2, 0x9a19, 0x9a2b, 0x9a37, 0x9a45, 0x9a42, 0x9a40, 0x9a43, 0xfffd, 0x9a3e, 0x9a55, 0x9a4d, 0x9a5b, 0x9a57, 0x9a5f, 0x9a62, 0x9a65, 0x9a64, 0x9a69, 0x9a6b, 0x9a6a, 0x9aad, 0x9ab0, 0x9abc, 0x9ac0, 0x9acf, 0x9ad1, 0x9ad3, 0x9ad4, 0x9ade, 0x9adf, 0x9ae2, 0x9ae3, 0x9ae6, 0x9aef, 0x9aeb, 0x9aee, 0x9af4, 0x9af1, 0x9af7, 0x9afb, 0x9b06, 0x9b18, 0x9b1a, 0x9b1f, 0x9b22, 0x9b23, 0x9b25, 0x9b27, 0x9b28, 0x9b29, 0x9b2a, 0x9b2e, 0x9b2f, 0x9b32, 0x9b44, 0x9b43, 0x9b4f, 0x9b4d, 0x9b4e, 0x9b51, 0x9b58, 0x9b74, 0x9b93, 0x9b83, 0x9b91, 0x9b96, 0x9b97, 0x9b9f, 0x9ba0, 0x9ba8, 0x9bb4, 0x9bc0, 0x9bca, 0x9bb9, 0x9bc6, 0x9bcf, 0x9bd1, 0x9bd2, 0x9be3, 0x9be2, 0x9be4, 0x9bd4, 0x9be1, 0x9c3a, 0x9bf2, 0x9bf1, 0x9bf0, 0x9c15, 0x9c14, 0x9c09, 0x9c13, 0x9c0c, 0x9c06, 0x9c08, 0x9c12, 0x9c0a, 0x9c04, 0x9c2e, 0x9c1b, 0x9c25, 0x9c24, 0x9c21, 0x9c30, 0x9c47, 0x9c32, 0x9c46, 0x9c3e, 0x9c5a, 0x9c60, 0x9c67, 0x9c76, 0x9c78, 0x9ce7, 0x9cec, 0x9cf0, 0x9d09, 0x9d08, 0x9ceb, 0x9d03, 0x9d06, 0x9d2a, 0x9d26, 0x9daf, 0x9d23, 0x9d1f, 0x9d44, 0x9d15, 0x9d12, 0x9d41, 0x9d3f, 0x9d3e, 0x9d46, 0x9d48, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9d5d, 0x9d5e, 0x9d64, 0x9d51, 0x9d50, 0x9d59, 0x9d72, 0x9d89, 0x9d87, 0x9dab, 0x9d6f, 0x9d7a, 0x9d9a, 0x9da4, 0x9da9, 0x9db2, 0x9dc4, 0x9dc1, 0x9dbb, 0x9db8, 0x9dba, 0x9dc6, 0x9dcf, 0x9dc2, 0x9dd9, 0x9dd3, 0x9df8, 0x9de6, 0x9ded, 0x9def, 0x9dfd, 0x9e1a, 0x9e1b, 0x9e1e, 0x9e75, 0x9e79, 0x9e7d, 0x9e81, 0x9e88, 0x9e8b, 0x9e8c, 0x9e92, 0x9e95, 0x9e91, 0x9e9d, 0x9ea5, 0x9ea9, 0x9eb8, 0x9eaa, 0x9ead, 0x9761, 0x9ecc, 0x9ece, 0x9ecf, 0x9ed0, 0x9ed4, 0x9edc, 0x9ede, 0x9edd, 0x9ee0, 0x9ee5, 0x9ee8, 0x9eef, 0xfffd, 0x9ef4, 0x9ef6, 0x9ef7, 0x9ef9, 0x9efb, 0x9efc, 0x9efd, 0x9f07, 0x9f08, 0x76b7, 0x9f15, 0x9f21, 0x9f2c, 0x9f3e, 0x9f4a, 0x9f52, 0x9f54, 0x9f63, 0x9f5f, 0x9f60, 0x9f61, 0x9f66, 0x9f67, 0x9f6c, 0x9f6a, 0x9f77, 0x9f72, 0x9f76, 0x9f95, 0x9f9c, 0x9fa0, 0x582f, 0x69c7, 0x9059, 0x7464, 0x51dc, 0x7199 }; /* Unicode-to-Kanji tables... */ static USHORT /* Unicode to Shift-JIS */ usj_0391[] = { /* 0x0391 thru 0x039c */ 0x839f, 0x83a0, 0x83a1, 0x83a2, 0x83a3, 0x83a4, 0x83a5, 0x83a6, 0x83a7, 0x83a8, 0x83a9, 0x83aa, 0x83ab, 0x83ac, 0x83ad, 0x83ae, 0x83af, 0xfffd, 0x83b0, 0x83b1, 0x83b2, 0x83b3, 0x83b4, 0x83b5, 0x83b6, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x83bf, 0x83c0, 0x83c1, 0x83c2, 0x83c3, 0x83c4, 0x83c5, 0x83c6, 0x83c7, 0x83c8, 0x83c9, 0x83ca, 0x83cb, 0x83cc, 0x83cd, 0x83ce, 0x83cf, 0xfffd, 0x83d0, 0x83d1, 0x83d2, 0x83d3, 0x83d4, 0x83d5, 0x83d6 }; static USHORT /* Unicode to Shift-JIS */ usj_0401[] = { /* 0x0401 thru 0x0451 */ 0x8446, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8440, 0x8441, 0x8442, 0x8443, 0x8444, 0x8445, 0x8447, 0x8448, 0x8449, 0x844a, 0x844b, 0x844c, 0x844d, 0x844e, 0x844f, 0x8450, 0x8451, 0x8452, 0x8453, 0x8454, 0x8455, 0x8456, 0x8457, 0x8458, 0x8459, 0x845a, 0x845b, 0x845c, 0x845d, 0x845e, 0x845f, 0x8460, 0x8470, 0x8471, 0x8472, 0x8473, 0x8474, 0x8475, 0x8477, 0x8478, 0x8479, 0x847a, 0x847b, 0x847c, 0x847d, 0x847e, 0x8480, 0x8481, 0x8482, 0x8483, 0x8484, 0x8485, 0x8486, 0x8487, 0x8488, 0x8489, 0x848a, 0x848b, 0x848c, 0x848d, 0x848e, 0x848f, 0x8490, 0x8491, 0xfffd, 0x8476 }; static USHORT /* Unicode to Shift-JIS */ usj_3000[] = { /* 0x3000 thru 0x30ff */ 0x8140, 0x8141, 0x8142, 0x8156, 0xfffd, 0x8158, 0x8159, 0x815a, 0x8171, 0x8172, 0x8173, 0x8174, 0x8175, 0x8176, 0x8177, 0x8178, 0x8179, 0x817a, 0x81a7, 0x81ac, 0x816b, 0x816c, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8160, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x829f, 0x82a0, 0x82a1, 0x82a2, 0x82a3, 0x82a4, 0x82a5, 0x82a6, 0x82a7, 0x82a8, 0x82a9, 0x82aa, 0x82ab, 0x82ac, 0x82ad, 0x82ae, 0x82af, 0x82b0, 0x82b1, 0x82b2, 0x82b3, 0x82b4, 0x82b5, 0x82b6, 0x82b7, 0x82b8, 0x82b9, 0x82ba, 0x82bb, 0x82bc, 0x82bd, 0x82be, 0x82bf, 0x82c0, 0x82c1, 0x82c2, 0x82c3, 0x82c4, 0x82c5, 0x82c6, 0x82c7, 0x82c8, 0x82c9, 0x82ca, 0x82cb, 0x82cc, 0x82cd, 0x82ce, 0x82cf, 0x82d0, 0x82d1, 0x82d2, 0x82d3, 0x82d4, 0x82d5, 0x82d6, 0x82d7, 0x82d8, 0x82d9, 0x82da, 0x82db, 0x82dc, 0x82dd, 0x82de, 0x82df, 0x82e0, 0x82e1, 0x82e2, 0x82e3, 0x82e4, 0x82e5, 0x82e6, 0x82e7, 0x82e8, 0x82e9, 0x82ea, 0x82eb, 0x82ec, 0x82ed, 0x82ee, 0x82ef, 0x82f0, 0x82f1, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x814a, 0x814b, 0x8154, 0x8155, 0xfffd, 0xfffd, 0x8340, 0x8341, 0x8342, 0x8343, 0x8344, 0x8345, 0x8346, 0x8347, 0x8348, 0x8349, 0x834a, 0x834b, 0x834c, 0x834d, 0x834e, 0x834f, 0x8350, 0x8351, 0x8352, 0x8353, 0x8354, 0x8355, 0x8356, 0x8357, 0x8358, 0x8359, 0x835a, 0x835b, 0x835c, 0x835d, 0x835e, 0x835f, 0x8360, 0x8361, 0x8362, 0x8363, 0x8364, 0x8365, 0x8366, 0x8367, 0x8368, 0x8369, 0x836a, 0x836b, 0x836c, 0x836d, 0x836e, 0x836f, 0x8370, 0x8371, 0x8372, 0x8373, 0x8374, 0x8375, 0x8376, 0x8377, 0x8378, 0x8379, 0x837a, 0x837b, 0x837c, 0x837d, 0x837e, 0x8380, 0x8381, 0x8382, 0x8383, 0x8384, 0x8385, 0x8386, 0x8387, 0x8388, 0x8389, 0x838a, 0x838b, 0x838c, 0x838d, 0x838e, 0x838f, 0x8390, 0x8391, 0x8392, 0x8393, 0x8394, 0x8395, 0x8396, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8145, 0x815b, 0x8152, 0x8153, 0xfffd }; static USHORT /* Unicode to Shift-JIS */ usj_ff00[] = { /* 0xff00 thru 0x0ff9f */ 0xfffd, 0x8149, 0xfffd, 0x8194, 0x8190, 0x8193, 0x8195, 0xfffd, 0x8169, 0x816a, 0x8196, 0x817b, 0x8143, 0xfffd, 0x8144, 0x815e, 0x824f, 0x8250, 0x8251, 0x8252, 0x8253, 0x8254, 0x8255, 0x8256, 0x8257, 0x8258, 0x8146, 0x8147, 0x8183, 0x8181, 0x8184, 0x8148, 0x8197, 0x8260, 0x8261, 0x8262, 0x8263, 0x8264, 0x8265, 0x8266, 0x8267, 0x8268, 0x8269, 0x826a, 0x826b, 0x826c, 0x826d, 0x826e, 0x826f, 0x8270, 0x8271, 0x8272, 0x8273, 0x8274, 0x8275, 0x8276, 0x8277, 0x8278, 0x8279, 0x816d, 0xfffd, 0x816e, 0x814f, 0x8151, 0x814d, 0x8281, 0x8282, 0x8283, 0x8284, 0x8285, 0x8286, 0x8287, 0x8288, 0x8289, 0x828a, 0x828b, 0x828c, 0x828d, 0x828e, 0x828f, 0x8290, 0x8291, 0x8292, 0x8293, 0x8294, 0x8295, 0x8296, 0x8297, 0x8298, 0x8299, 0x829a, 0x816f, 0x8162, 0x8170, 0xfffd, 0xfffd, 0xfffd, 0x00a1, 0x00a2, 0x00a3, 0x00a4, 0x00a5, 0x00a6, 0x00a7, 0x00a8, 0x00a9, 0x00aa, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0x00af, 0x00b0, 0x00b1, 0x00b2, 0x00b3, 0x00b4, 0x00b5, 0x00b6, 0x00b7, 0x00b8, 0x00b9, 0x00ba, 0x00bb, 0x00bc, 0x00bd, 0x00be, 0x00bf, 0x00c0, 0x00c1, 0x00c2, 0x00c3, 0x00c4, 0x00c5, 0x00c6, 0x00c7, 0x00c8, 0x00c9, 0x00ca, 0x00cb, 0x00cc, 0x00cd, 0x00ce, 0x00cf, 0x00d0, 0x00d1, 0x00d2, 0x00d3, 0x00d4, 0x00d5, 0x00d6, 0x00d7, 0x00d8, 0x00d9, 0x00da, 0x00db, 0x00dc, 0x00dd, 0x00de, 0x00df }; /* Now one humongous table for Kanji */ static USHORT /* Unicode to Shift-JIS */ usj_4e00[] = { /* 0x4e00 thru 0x9fa0 */ 0x88ea, 0x929a, 0xfffd, 0x8eb5, 0xfffd, 0xfffd, 0xfffd, 0x969c, 0x8fe4, 0x8e4f, 0x8fe3, 0x89ba, 0xfffd, 0x9573, 0x975e, 0xfffd, 0x98a0, 0x894e, 0xfffd, 0xfffd, 0x8a8e, 0x98a1, 0x90a2, 0x99c0, 0x8b75, 0x95b8, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8fe5, 0xfffd, 0xfffd, 0x97bc, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x95c0, 0xfffd, 0xfffd, 0xfffd, 0x98a2, 0xfffd, 0xfffd, 0x9286, 0xfffd, 0xfffd, 0xfffd, 0x98a3, 0x8bf8, 0xfffd, 0xfffd, 0xfffd, 0x98a4, 0xfffd, 0x8adb, 0x924f, 0xfffd, 0x8ee5, 0x98a5, 0xfffd, 0xfffd, 0x98a6, 0xfffd, 0xfffd, 0x98a7, 0x9454, 0xfffd, 0x8b76, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9456, 0xfffd, 0x93e1, 0x8cc1, 0x9652, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe568, 0x98a8, 0x8fe6, 0x98a9, 0x89b3, 0xfffd, 0xfffd, 0xfffd, 0x8be3, 0x8cee, 0x96e7, 0xfffd, 0xfffd, 0x9ba4, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9790, 0xfffd, 0x93fb, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8aa3, 0xfffd, 0x8b54, 0xfffd, 0x98aa, 0xfffd, 0xfffd, 0x98ab, 0x97b9, 0xfffd, 0x975c, 0x9188, 0x98ad, 0x8e96, 0x93f1, 0xfffd, 0x98b0, 0xfffd, 0xfffd, 0x895d, 0x8cdd, 0xfffd, 0x8cdc, 0x88e4, 0xfffd, 0xfffd, 0x986a, 0x9869, 0xfffd, 0x8db1, 0x889f, 0xfffd, 0x98b1, 0x98b2, 0x98b3, 0x9653, 0x98b4, 0xfffd, 0x8cf0, 0x88e5, 0x9692, 0xfffd, 0x8b9c, 0xfffd, 0xfffd, 0x8b9d, 0x8b9e, 0x92e0, 0x97ba, 0xfffd, 0x98b5, 0xfffd, 0xfffd, 0x98b6, 0xfffd, 0xfffd, 0x98b7, 0xfffd, 0xfffd, 0xfffd, 0x906c, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8f59, 0x906d, 0x98bc, 0xfffd, 0x98ba, 0xfffd, 0x98bb, 0x8b77, 0xfffd, 0xfffd, 0x8da1, 0x89ee, 0xfffd, 0x98b9, 0x98b8, 0x95a7, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8e65, 0x8e64, 0x91bc, 0x98bd, 0x9574, 0x90e5, 0xfffd, 0xfffd, 0xfffd, 0x8157, 0x98be, 0x98c0, 0xfffd, 0xfffd, 0xfffd, 0x91e3, 0x97df, 0x88c8, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x98bf, 0x89bc, 0xfffd, 0x8bc2, 0xfffd, 0x9287, 0xfffd, 0xfffd, 0xfffd, 0x8c8f, 0x98c1, 0xfffd, 0xfffd, 0xfffd, 0x9443, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8ae9, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x98c2, 0x88c9, 0xfffd, 0xfffd, 0x8cde, 0x8aea, 0x959a, 0x94b0, 0x8b78, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x89ef, 0xfffd, 0x98e5, 0x9360, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x948c, 0x98c4, 0xfffd, 0xfffd, 0xfffd, 0x94ba, 0xfffd, 0x97e0, 0xfffd, 0x904c, 0xfffd, 0x8e66, 0xfffd, 0x8e97, 0x89be, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x92cf, 0xfffd, 0xfffd, 0x9241, 0x98c8, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x88ca, 0x92e1, 0x8f5a, 0x8db2, 0x9743, 0xfffd, 0x91cc, 0xfffd, 0x89bd, 0xfffd, 0x98c7, 0xfffd, 0x975d, 0x98c3, 0x98c5, 0x8dec, 0x98c6, 0x9b43, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x98ce, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x98d1, 0x98cf, 0xfffd, 0xfffd, 0x89c0, 0xfffd, 0x95b9, 0x98c9, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x98cd, 0x8cf1, 0xfffd, 0xfffd, 0x8e67, 0xfffd, 0xfffd, 0xfffd, 0x8aa4, 0xfffd, 0xfffd, 0x98d2, 0xfffd, 0x98ca, 0xfffd, 0xfffd, 0x97e1, 0xfffd, 0x8e98, 0xfffd, 0x98cb, 0xfffd, 0x98d0, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x98d3, 0xfffd, 0x98cc, 0xfffd, 0xfffd, 0x8b9f, 0xfffd, 0x88cb, 0xfffd, 0xfffd, 0x8ba0, 0x89bf, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9b44, 0xfffd, 0x9699, 0x958e, 0x8cf2, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x904e, 0x97b5, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x95d6, 0xfffd, 0xfffd, 0x8c57, 0x91a3, 0x89e2, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8f72, 0xfffd, 0xfffd, 0xfffd, 0x98d7, 0xfffd, 0x98dc, 0x98da, 0xfffd, 0xfffd, 0x98d5, 0xfffd, 0xfffd, 0x91ad, 0x98d8, 0xfffd, 0x98db, 0x98d9, 0xfffd, 0x95db, 0xfffd, 0x98d6, 0xfffd, 0x904d, 0xfffd, 0x9693, 0x98dd, 0x98de, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8f43, 0x98eb, 0xfffd, 0xfffd, 0xfffd, 0x946f, 0xfffd, 0x9555, 0x98e6, 0xfffd, 0x95ee, 0xfffd, 0x89b4, 0xfffd, 0xfffd, 0xfffd, 0x98ea, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x98e4, 0x98ed, 0xfffd, 0xfffd, 0x9171, 0xfffd, 0x8cc2, 0xfffd, 0x947b, 0xfffd, 0xe0c5, 0xfffd, 0x98ec, 0x937c, 0xfffd, 0x98e1, 0xfffd, 0x8cf4, 0xfffd, 0xfffd, 0x8cf3, 0x98df, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8ed8, 0xfffd, 0x98e7, 0xfffd, 0x95ed, 0x926c, 0x98e3, 0x8c91, 0xfffd, 0x98e0, 0x98e8, 0x98e2, 0x97cf, 0x98e9, 0x9860, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8be4, 0xfffd, 0xfffd, 0x8c90, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x98ee, 0xfffd, 0xfffd, 0xfffd, 0x98ef, 0x98f3, 0x88cc, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x95ce, 0x98f2, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x98f1, 0x98f5, 0xfffd, 0xfffd, 0xfffd, 0x98f4, 0xfffd, 0x92e2, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8c92, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x98f6, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8ec3, 0xfffd, 0x91a4, 0x92e3, 0x8bf4, 0xfffd, 0x98f7, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8b55, 0xfffd, 0xfffd, 0x98f8, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x98fa, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9654, 0xfffd, 0xfffd, 0xfffd, 0x8c86, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8e50, 0x94f5, 0x98f9, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8dc3, 0x9762, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x98fc, 0x9942, 0x98fb, 0x8dc2, 0xfffd, 0x8f9d, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8c58, 0xfffd, 0xfffd, 0xfffd, 0x9943, 0xfffd, 0xfffd, 0x8bcd, 0xfffd, 0xfffd, 0xfffd, 0x9940, 0x9941, 0xfffd, 0xfffd, 0x93ad, 0xfffd, 0x919c, 0xfffd, 0x8ba1, 0xfffd, 0xfffd, 0xfffd, 0x966c, 0x9944, 0xfffd, 0xfffd, 0xfffd, 0x97bb, 0xfffd, 0xfffd, 0xfffd, 0x9945, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9948, 0xfffd, 0x9946, 0xfffd, 0x916d, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9947, 0x9949, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x994b, 0xfffd, 0xfffd, 0xfffd, 0x994a, 0xfffd, 0x95c6, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8b56, 0x994d, 0x994e, 0xfffd, 0x89ad, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x994c, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8ef2, 0xfffd, 0x9951, 0x9950, 0x994f, 0xfffd, 0x98d4, 0xfffd, 0x9952, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8f9e, 0xfffd, 0x9953, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9744, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x96d7, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9955, 0xfffd, 0xfffd, 0x9954, 0x9957, 0x9956, 0xfffd, 0xfffd, 0x9958, 0x9959, 0x88f2, 0xfffd, 0x8cb3, 0x8c5a, 0x8f5b, 0x929b, 0x8ba2, 0x90e6, 0x8cf5, 0xfffd, 0x8d8e, 0x995b, 0x96c6, 0x9365, 0xfffd, 0x8e99, 0xfffd, 0x995a, 0xfffd, 0x995c, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x937d, 0xfffd, 0x8a95, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x995d, 0xfffd, 0xfffd, 0x93fc, 0xfffd, 0xfffd, 0x9153, 0x995f, 0x9960, 0x94aa, 0x8cf6, 0x985a, 0x9961, 0xfffd, 0xfffd, 0x8ba4, 0xfffd, 0xfffd, 0xfffd, 0x95ba, 0x91b4, 0x8bef, 0x9354, 0xfffd, 0xfffd, 0xfffd, 0x8c93, 0xfffd, 0xfffd, 0xfffd, 0x9962, 0xfffd, 0x9963, 0xfffd, 0xfffd, 0x93e0, 0x897e, 0xfffd, 0xfffd, 0x9966, 0x8dfb, 0xfffd, 0x9965, 0x8dc4, 0xfffd, 0x9967, 0xe3ec, 0x9968, 0x9660, 0x9969, 0xfffd, 0x996a, 0x996b, 0x8fe7, 0xfffd, 0x8eca, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8aa5, 0xfffd, 0x996e, 0xfffd, 0x996c, 0x96bb, 0x996d, 0xfffd, 0x9579, 0x996f, 0x9970, 0x9971, 0x937e, 0xfffd, 0xfffd, 0xfffd, 0x9975, 0x9973, 0x9974, 0x9972, 0x8de1, 0x9976, 0x96e8, 0x97e2, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9977, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x90a6, 0x9978, 0x8f79, 0xfffd, 0xfffd, 0x9979, 0xfffd, 0x929c, 0x97bd, 0x9380, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x99c3, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x997a, 0xeaa3, 0x8bc3, 0xfffd, 0xfffd, 0x997b, 0x967d, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8f88, 0x91fa, 0xfffd, 0x997d, 0x93e2, 0xfffd, 0xfffd, 0x997e, 0xfffd, 0xfffd, 0x9980, 0x8a4d, 0xfffd, 0xfffd, 0xfffd, 0x9981, 0x8ba5, 0xfffd, 0x93ca, 0x899a, 0x8f6f, 0xfffd, 0xfffd, 0x949f, 0x9982, 0xfffd, 0x9381, 0xfffd, 0xfffd, 0x906e, 0x9983, 0xfffd, 0x95aa, 0x90d8, 0x8aa0, 0xfffd, 0x8aa7, 0x9984, 0xfffd, 0xfffd, 0x9986, 0xfffd, 0xfffd, 0x8c59, 0xfffd, 0xfffd, 0x9985, 0xfffd, 0xfffd, 0x97f1, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8f89, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x94bb, 0x95ca, 0xfffd, 0x9987, 0xfffd, 0x9798, 0x9988, 0xfffd, 0xfffd, 0xfffd, 0x9989, 0xfffd, 0x939e, 0xfffd, 0xfffd, 0x998a, 0xfffd, 0xfffd, 0x90a7, 0x8dfc, 0x8c94, 0x998b, 0x8e68, 0x8d8f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x92e4, 0x998d, 0xfffd, 0xfffd, 0x91a5, 0xfffd, 0xfffd, 0x8ded, 0x998e, 0x998f, 0x914f, 0xfffd, 0x998c, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9991, 0xfffd, 0x9655, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8d84, 0xfffd, 0xfffd, 0x9990, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8c95, 0x8ddc, 0x948d, 0xfffd, 0xfffd, 0xfffd, 0x9994, 0x9992, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x959b, 0x8fe8, 0x999b, 0x8a84, 0x9995, 0x9993, 0x916e, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9997, 0xfffd, 0x9996, 0xfffd, 0xfffd, 0xfffd, 0x8a63, 0xfffd, 0xfffd, 0xfffd, 0x8c80, 0x999c, 0x97ab, 0xfffd, 0xfffd, 0xfffd, 0x9998, 0xfffd, 0xfffd, 0xfffd, 0x999d, 0x999a, 0xfffd, 0x9999, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x97cd, 0xfffd, 0xfffd, 0xfffd, 0x8cf7, 0x89c1, 0xfffd, 0xfffd, 0x97f2, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8f95, 0x9377, 0x8d85, 0x99a0, 0x99a1, 0xfffd, 0xfffd, 0xfffd, 0x97e3, 0xfffd, 0xfffd, 0x984a, 0x99a3, 0xfffd, 0xfffd, 0xfffd, 0x8cf8, 0xfffd, 0xfffd, 0x99a2, 0xfffd, 0x8a4e, 0xfffd, 0xfffd, 0x99a4, 0xfffd, 0x9675, 0xfffd, 0x92ba, 0xfffd, 0x9745, 0xfffd, 0x95d7, 0xfffd, 0xfffd, 0xfffd, 0x99a5, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe8d3, 0xfffd, 0xfffd, 0x93ae, 0xfffd, 0x99a6, 0x8aa8, 0x96b1, 0xfffd, 0xfffd, 0xfffd, 0x8f9f, 0x99a7, 0x95e5, 0x99ab, 0xfffd, 0x90a8, 0x99a8, 0x8bce, 0xfffd, 0x99a9, 0x8aa9, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8c4d, 0x99ac, 0xfffd, 0x99ad, 0xfffd, 0xfffd, 0x99ae, 0x99af, 0x8ed9, 0xfffd, 0xfffd, 0xfffd, 0x8cf9, 0x96dc, 0xfffd, 0x96e6, 0x93f5, 0xfffd, 0xfffd, 0x95ef, 0x99b0, 0xfffd, 0x99b1, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x99b3, 0xfffd, 0x99b5, 0x99b4, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x99b6, 0x89bb, 0x966b, 0xfffd, 0x8dfa, 0x99b7, 0xfffd, 0xfffd, 0x9178, 0xfffd, 0xfffd, 0x8fa0, 0x8ba7, 0xfffd, 0x99b8, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x94d9, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x99b9, 0xfffd, 0x99ba, 0xfffd, 0x99bb, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x99bc, 0x9543, 0x8be6, 0x88e3, 0xfffd, 0xfffd, 0xfffd, 0x93bd, 0x99bd, 0x8f5c, 0xfffd, 0x90e7, 0xfffd, 0x99bf, 0x99be, 0x8fa1, 0x8cdf, 0x99c1, 0x94bc, 0xfffd, 0xfffd, 0x99c2, 0xfffd, 0xfffd, 0xfffd, 0x94da, 0x91b2, 0x91ec, 0x8ba6, 0xfffd, 0xfffd, 0x93ec, 0x9250, 0xfffd, 0x948e, 0xfffd, 0x966d, 0xfffd, 0x99c4, 0xfffd, 0x90e8, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8c54, 0xfffd, 0xfffd, 0x99c5, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x99c6, 0x894b, 0x88f3, 0x8aeb, 0xfffd, 0x91a6, 0x8b70, 0x9791, 0xfffd, 0x99c9, 0x89b5, 0xfffd, 0xfffd, 0x99c8, 0xfffd, 0xfffd, 0xfffd, 0x8ba8, 0xfffd, 0xfffd, 0x99ca, 0xfffd, 0x96ef, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x99cb, 0xfffd, 0x97d0, 0xfffd, 0x8cfa, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8cb4, 0x99cc, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x99ce, 0x99cd, 0xfffd, 0x907e, 0x8958, 0xfffd, 0xfffd, 0xfffd, 0x897d, 0x99cf, 0xfffd, 0x99d0, 0xfffd, 0xfffd, 0x8cb5, 0xfffd, 0xfffd, 0x99d1, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8b8e, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8e51, 0x99d2, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9694, 0x8db3, 0x8b79, 0x9746, 0x916f, 0x94bd, 0x8efb, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8f66, 0xfffd, 0x8ee6, 0x8ef3, 0xfffd, 0x8f96, 0xfffd, 0x94be, 0xfffd, 0xfffd, 0xfffd, 0x99d5, 0xfffd, 0x8962, 0x9170, 0x8cfb, 0x8cc3, 0x8be5, 0xfffd, 0xfffd, 0x99d9, 0x9240, 0x91fc, 0x8ba9, 0x8fa2, 0x99da, 0x99d8, 0x89c2, 0x91e4, 0x8eb6, 0x8e6a, 0x8945, 0xfffd, 0xfffd, 0x8a90, 0x8d86, 0x8e69, 0xfffd, 0x99db, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x99dc, 0xfffd, 0x8b68, 0x8a65, 0xfffd, 0xfffd, 0xfffd, 0x8d87, 0x8b67, 0x92dd, 0x8944, 0x93af, 0x96bc, 0x8d40, 0x9799, 0x9366, 0x8cfc, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8c4e, 0xfffd, 0x99e5, 0xfffd, 0x8be1, 0x9669, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x94db, 0xfffd, 0xfffd, 0x99e4, 0xfffd, 0x8adc, 0x99df, 0x99e0, 0x99e2, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x99e3, 0xfffd, 0x8b7a, 0x9081, 0xfffd, 0x95ab, 0x99e1, 0x99dd, 0x8ce1, 0xfffd, 0x99de, 0xfffd, 0x9843, 0xfffd, 0xfffd, 0xfffd, 0x95f0, 0xfffd, 0x92e6, 0x8ce0, 0x8d90, 0xfffd, 0xfffd, 0xfffd, 0x99e6, 0xfffd, 0xfffd, 0x93db, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x99ea, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8efc, 0xfffd, 0x8ef4, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x99ed, 0x99eb, 0xfffd, 0x96a1, 0xfffd, 0x99e8, 0x99f1, 0x99ec, 0xfffd, 0xfffd, 0xfffd, 0x99ef, 0x8cc4, 0x96bd, 0xfffd, 0xfffd, 0x99f0, 0xfffd, 0xfffd, 0xfffd, 0x99f2, 0xfffd, 0x99f4, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8dee, 0x9861, 0xfffd, 0x99e9, 0x99e7, 0x99f3, 0xfffd, 0x99ee, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x99f6, 0xfffd, 0x9a42, 0x99f8, 0xfffd, 0xfffd, 0x99fc, 0xfffd, 0xfffd, 0x9a40, 0x99f9, 0xfffd, 0xfffd, 0x9a5d, 0xfffd, 0xfffd, 0x8de7, 0x8a50, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x99f7, 0xfffd, 0xfffd, 0xfffd, 0x9a44, 0x88f4, 0x9a43, 0xfffd, 0x88a3, 0x9569, 0x9a41, 0xfffd, 0x99fa, 0xfffd, 0xfffd, 0x99f5, 0x99fb, 0x8dc6, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9a45, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x88f5, 0x9a4e, 0xfffd, 0xfffd, 0x9a46, 0x9a47, 0xfffd, 0x8fa3, 0x9689, 0xfffd, 0xfffd, 0xfffd, 0x9a4c, 0x9a4b, 0xfffd, 0xfffd, 0xfffd, 0x934e, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9a4d, 0xfffd, 0xfffd, 0x9a4a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8953, 0xfffd, 0x8db4, 0x904f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9a48, 0x9382, 0xfffd, 0xfffd, 0xfffd, 0x9a49, 0xfffd, 0x88a0, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9a53, 0x9742, 0xfffd, 0x8fa5, 0xfffd, 0x9a59, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9a58, 0x9a4f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x91c1, 0xfffd, 0x9a50, 0xfffd, 0xfffd, 0xfffd, 0x91ed, 0x9a55, 0x8fa4, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9a52, 0xfffd, 0xfffd, 0x96e2, 0xfffd, 0xfffd, 0xfffd, 0x8c5b, 0xfffd, 0xfffd, 0x9a56, 0x9a57, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9a54, 0x9a5a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9a51, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9a60, 0x9a65, 0xfffd, 0x9a61, 0xfffd, 0x9a5c, 0xfffd, 0xfffd, 0x9a66, 0x9150, 0xfffd, 0xfffd, 0x9a68, 0xfffd, 0x8d41, 0x9a5e, 0x929d, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9a62, 0x9a5b, 0x8aab, 0xfffd, 0x8aec, 0x8a85, 0x9a63, 0x9a5f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8c96, 0x9a69, 0x9a67, 0x9172, 0x8b69, 0x8baa, 0xfffd, 0x9a64, 0xfffd, 0x8bf2, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8963, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9a6d, 0x9a6b, 0xfffd, 0x9aa5, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9a70, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9a6a, 0xfffd, 0x9a6e, 0xfffd, 0xfffd, 0x9a6c, 0xfffd, 0xfffd, 0xfffd, 0x8e6b, 0x9a6f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9a72, 0xfffd, 0x9a77, 0xfffd, 0xfffd, 0xfffd, 0x9a75, 0x9a74, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9251, 0xfffd, 0xfffd, 0x89c3, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9a71, 0xfffd, 0x9a73, 0x8fa6, 0x8952, 0xfffd, 0xfffd, 0x9a76, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x89dc, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9a82, 0xfffd, 0x8ffa, 0x9a7d, 0xfffd, 0x9a7b, 0xfffd, 0x9a7c, 0xfffd, 0x9a7e, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x895c, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9158, 0xfffd, 0x9a78, 0xfffd, 0x9a79, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8a9a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9a81, 0xfffd, 0xfffd, 0xfffd, 0x8aed, 0xfffd, 0x9a84, 0x9a80, 0x9a83, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x95ac, 0xfffd, 0xfffd, 0xfffd, 0x93d3, 0xfffd, 0x94b6, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9a86, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9a85, 0x8a64, 0xfffd, 0xfffd, 0x9a87, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9a8a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9a89, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9a88, 0xfffd, 0x9458, 0xfffd, 0xfffd, 0x9a8b, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9a8c, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9a8e, 0xfffd, 0x9a8d, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9a90, 0xfffd, 0xfffd, 0xfffd, 0x9a93, 0x9a91, 0x9a8f, 0x9a92, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9a94, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9a95, 0xfffd, 0xfffd, 0x9a96, 0xfffd, 0x9a97, 0xfffd, 0xfffd, 0xfffd, 0x9a98, 0x9964, 0xfffd, 0x8efa, 0x8e6c, 0xfffd, 0xfffd, 0x89f1, 0xfffd, 0x88f6, 0xfffd, 0xfffd, 0x9263, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9a99, 0xfffd, 0x8da2, 0xfffd, 0x88cd, 0x907d, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9a9a, 0x8cc5, 0xfffd, 0xfffd, 0x8d91, 0xfffd, 0x9a9c, 0x9a9b, 0xfffd, 0xfffd, 0x95de, 0x9a9d, 0xfffd, 0xfffd, 0xfffd, 0x9a9f, 0x9a9e, 0xfffd, 0x9aa0, 0xfffd, 0x9aa1, 0xfffd, 0x8c97, 0xfffd, 0xfffd, 0x8980, 0x9aa2, 0xfffd, 0xfffd, 0x9aa4, 0xfffd, 0x9aa3, 0xfffd, 0xfffd, 0xfffd, 0x9aa6, 0xfffd, 0xfffd, 0x9379, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9aa7, 0x88b3, 0x8ddd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8c5c, 0xfffd, 0xfffd, 0x926e, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9aa8, 0x9aa9, 0xfffd, 0xfffd, 0x9aab, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9aac, 0xfffd, 0x8de2, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8bcf, 0xfffd, 0xfffd, 0x9656, 0xfffd, 0xfffd, 0xfffd, 0x9aaa, 0x9aad, 0x8dbf, 0x8d42, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9ab1, 0xfffd, 0xfffd, 0x8da3, 0xfffd, 0x9252, 0xfffd, 0xfffd, 0x9aae, 0x92d8, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9ab2, 0xfffd, 0xfffd, 0x9082, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9ab0, 0x9ab3, 0xfffd, 0x8c5e, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9ab4, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9ab5, 0xfffd, 0x8d43, 0x8a5f, 0x9ab7, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9ab8, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9ab9, 0xfffd, 0xfffd, 0x9ab6, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9aaf, 0xfffd, 0xfffd, 0x9aba, 0xfffd, 0xfffd, 0x9abb, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9684, 0xfffd, 0xfffd, 0x8fe9, 0xfffd, 0xfffd, 0xfffd, 0x9abd, 0x9abe, 0x9abc, 0xfffd, 0x9ac0, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9457, 0xfffd, 0xfffd, 0x88e6, 0x9575, 0xfffd, 0xfffd, 0x9ac1, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8ffb, 0xfffd, 0xfffd, 0x8eb7, 0xfffd, 0x947c, 0x8aee, 0xfffd, 0x8de9, 0xfffd, 0xfffd, 0xfffd, 0x9678, 0xfffd, 0x93b0, 0xfffd, 0xfffd, 0x8c98, 0x91cd, 0xfffd, 0xfffd, 0xfffd, 0x9abf, 0x9ac2, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x91c2, 0xfffd, 0xfffd, 0xfffd, 0x9ac3, 0xfffd, 0xfffd, 0xfffd, 0x9ac4, 0xfffd, 0xfffd, 0xfffd, 0x9ac6, 0xfffd, 0xfffd, 0x92e7, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8aac, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xea9f, 0x8981, 0x95f1, 0xfffd, 0xfffd, 0x8fea, 0x9367, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8de4, 0xfffd, 0xfffd, 0x9acc, 0xfffd, 0xfffd, 0x95bb, 0x97db, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x89f2, 0x9ac8, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9159, 0x9acb, 0xfffd, 0x9383, 0xfffd, 0xfffd, 0x9368, 0x9384, 0x94b7, 0x92cb, 0xfffd, 0xfffd, 0xfffd, 0x8dc7, 0xfffd, 0xfffd, 0xfffd, 0x9ac7, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8996, 0xfffd, 0x9355, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9ac9, 0xfffd, 0x9ac5, 0xfffd, 0xfffd, 0x906f, 0xfffd, 0xfffd, 0xfffd, 0x9acd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8f6d, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8bab, 0xfffd, 0x9ace, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x95e6, 0xfffd, 0xfffd, 0xfffd, 0x919d, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x92c4, 0xfffd, 0xfffd, 0x9ad0, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x966e, 0xfffd, 0xfffd, 0x9ad1, 0xfffd, 0xfffd, 0x9ad6, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x95ad, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9ad5, 0x9acf, 0x9ad2, 0x9ad4, 0xfffd, 0xfffd, 0x8da4, 0xfffd, 0xfffd, 0x95c7, 0xfffd, 0xfffd, 0xfffd, 0x9ad7, 0xfffd, 0x9264, 0xfffd, 0xfffd, 0x89f3, 0xfffd, 0x8feb, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9ad9, 0xfffd, 0x9ad8, 0xfffd, 0x8d88, 0xfffd, 0x9ada, 0x9adc, 0x9adb, 0xfffd, 0xfffd, 0x9ade, 0xfffd, 0x9ad3, 0x9ae0, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9adf, 0x9add, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8e6d, 0x9070, 0xfffd, 0x9173, 0x9ae1, 0x90ba, 0x88eb, 0x9484, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x92d9, 0xfffd, 0x9ae3, 0x9ae2, 0x9ae4, 0x9ae5, 0x9ae6, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9ae7, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x95cf, 0x9ae8, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x89c4, 0x9ae9, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x975b, 0x8a4f, 0xfffd, 0x99c7, 0x8f67, 0x91bd, 0x9aea, 0x96e9, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x96b2, 0xfffd, 0xfffd, 0x9aec, 0xfffd, 0x91e5, 0xfffd, 0x9356, 0x91be, 0x9576, 0x9aed, 0x9aee, 0x899b, 0xfffd, 0xfffd, 0x8eb8, 0x9aef, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x88ce, 0x9af0, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9af1, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8982, 0xfffd, 0xfffd, 0x8aef, 0x93de, 0x95f2, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9af5, 0x9174, 0x9af4, 0x8c5f, 0xfffd, 0xfffd, 0x967a, 0x9af3, 0xfffd, 0x9385, 0x9af7, 0xfffd, 0x9af6, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9af9, 0xfffd, 0x9af8, 0xfffd, 0xfffd, 0x899c, 0xfffd, 0x9afa, 0x8fa7, 0x9afc, 0x9244, 0xfffd, 0x9afb, 0xfffd, 0x95b1, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8f97, 0x937a, 0xfffd, 0xfffd, 0xfffd, 0x9b40, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8d44, 0xfffd, 0xfffd, 0xfffd, 0x9b41, 0x9440, 0x94dc, 0x96cf, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9444, 0xfffd, 0xfffd, 0x9b4a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8b57, 0xfffd, 0xfffd, 0x9764, 0xfffd, 0xfffd, 0x96ad, 0xfffd, 0x9baa, 0xfffd, 0x9b42, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9b45, 0xfffd, 0x91c3, 0xfffd, 0xfffd, 0x9657, 0xfffd, 0xfffd, 0xfffd, 0x9369, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9b46, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9685, 0xfffd, 0x8dc8, 0xfffd, 0xfffd, 0x8fa8, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9b47, 0xfffd, 0xfffd, 0x8e6f, 0xfffd, 0x8e6e, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x88b7, 0x8cc6, 0xfffd, 0x90a9, 0x88cf, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9b4b, 0x9b4c, 0xfffd, 0x9b49, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8957, 0x8aad, 0xfffd, 0x9b48, 0xfffd, 0x96c3, 0x9550, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x88a6, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x88f7, 0xfffd, 0xfffd, 0xfffd, 0x8e70, 0xfffd, 0x88d0, 0xfffd, 0x88a1, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9b51, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9b4f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x96ba, 0xfffd, 0x9b52, 0xfffd, 0x9b50, 0xfffd, 0xfffd, 0x9b4e, 0x9050, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9b4d, 0xfffd, 0xfffd, 0xfffd, 0x95d8, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8ce2, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9b56, 0x9b57, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8fa9, 0xfffd, 0xfffd, 0xfffd, 0x9b53, 0x984b, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x946b, 0xfffd, 0xfffd, 0x9b55, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8da5, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9b58, 0xfffd, 0xfffd, 0xfffd, 0x9577, 0xfffd, 0xfffd, 0xfffd, 0x9b59, 0xfffd, 0x9b54, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x96b9, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x947d, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9b5a, 0x9551, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9b5b, 0x9b5f, 0x9b5c, 0xfffd, 0xfffd, 0x89c5, 0x9b5e, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8eb9, 0xfffd, 0x9b5d, 0x8c99, 0xfffd, 0xfffd, 0xfffd, 0x9b6b, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9b64, 0x9b61, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9284, 0xfffd, 0x9b60, 0xfffd, 0xfffd, 0x9b62, 0xfffd, 0xfffd, 0x9b63, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9b65, 0x9b66, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8af0, 0xfffd, 0x9b68, 0x9b67, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9b69, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8fec, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9b6c, 0xfffd, 0x92da, 0xfffd, 0xfffd, 0xfffd, 0x8964, 0xfffd, 0x9b6a, 0xfffd, 0xfffd, 0xfffd, 0x9b6d, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9b6e, 0xfffd, 0x9b71, 0xfffd, 0xfffd, 0x9b6f, 0xfffd, 0x9b70, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8e71, 0x9b72, 0xfffd, 0xfffd, 0x8d45, 0x9b73, 0xfffd, 0x8e9a, 0x91b6, 0xfffd, 0x9b74, 0x9b75, 0x8e79, 0x8d46, 0xfffd, 0x96d0, 0xfffd, 0xfffd, 0xfffd, 0x8b47, 0x8cc7, 0x9b76, 0x8a77, 0xfffd, 0xfffd, 0x9b77, 0xfffd, 0x91b7, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9b78, 0x9ba1, 0xfffd, 0x9b79, 0xfffd, 0x9b7a, 0xfffd, 0xfffd, 0x9b7b, 0xfffd, 0x9b7d, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9b7e, 0xfffd, 0xfffd, 0x9b80, 0xfffd, 0x91ee, 0xfffd, 0x8946, 0x8ee7, 0x88c0, 0xfffd, 0x9176, 0x8aae, 0x8eb3, 0xfffd, 0x8d47, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9386, 0xfffd, 0x8f40, 0x8aaf, 0x9288, 0x92e8, 0x88b6, 0x8b58, 0x95f3, 0xfffd, 0x8ec0, 0xfffd, 0xfffd, 0x8b71, 0x90e9, 0x8eba, 0x9747, 0x9b81, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8b7b, 0xfffd, 0x8dc9, 0xfffd, 0xfffd, 0x8a51, 0x8983, 0x8faa, 0x89c6, 0xfffd, 0x9b82, 0x9765, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8f68, 0xfffd, 0xfffd, 0x8ee2, 0x9b83, 0x8af1, 0x93d0, 0x96a7, 0x9b84, 0xfffd, 0x9b85, 0xfffd, 0xfffd, 0x9578, 0xfffd, 0xfffd, 0xfffd, 0x9b87, 0xfffd, 0x8aa6, 0x8bf5, 0x9b86, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8ab0, 0xfffd, 0x9051, 0x9b8b, 0x8e40, 0xfffd, 0x89c7, 0x9b8a, 0xfffd, 0x9b88, 0x9b8c, 0x9b89, 0x944a, 0x9ecb, 0x9052, 0xfffd, 0x9b8d, 0xfffd, 0xfffd, 0x97be, 0xfffd, 0x9b8e, 0xfffd, 0xfffd, 0x9b90, 0xfffd, 0x929e, 0x9b8f, 0xfffd, 0x90a1, 0xfffd, 0x8e9b, 0xfffd, 0xfffd, 0xfffd, 0x91ce, 0x8ef5, 0xfffd, 0x9595, 0x90ea, 0xfffd, 0x8ecb, 0x9b91, 0x8fab, 0x9b92, 0x9b93, 0x88d1, 0x91b8, 0x9071, 0xfffd, 0x9b94, 0x93b1, 0x8fac, 0xfffd, 0x8fad, 0xfffd, 0x9b95, 0xfffd, 0xfffd, 0x90eb, 0xfffd, 0xfffd, 0xfffd, 0x8fae, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9b96, 0xfffd, 0x9b97, 0xfffd, 0x96de, 0xfffd, 0xfffd, 0xfffd, 0x9b98, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8bc4, 0xfffd, 0xfffd, 0xfffd, 0x8f41, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9b99, 0x9b9a, 0x8eda, 0x904b, 0x93f2, 0x9073, 0x94f6, 0x9441, 0x8bc7, 0x9b9b, 0xfffd, 0xfffd, 0xfffd, 0x8b8f, 0x9b9c, 0xfffd, 0x8bfc, 0xfffd, 0x93cd, 0x89ae, 0xfffd, 0x8e72, 0x9b9d, 0x9ba0, 0x9b9f, 0x8bfb, 0xfffd, 0x9b9e, 0xfffd, 0x9357, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x91ae, 0xfffd, 0x936a, 0x8ec6, 0xfffd, 0xfffd, 0x9177, 0x979a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9ba2, 0xfffd, 0x9ba3, 0x93d4, 0xfffd, 0x8e52, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9ba5, 0xfffd, 0xfffd, 0x9ba6, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9ba7, 0xfffd, 0xfffd, 0xfffd, 0x8af2, 0x9ba8, 0xfffd, 0xfffd, 0x9ba9, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x89aa, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x915a, 0x8ae2, 0xfffd, 0x9bab, 0x96a6, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x91d0, 0xfffd, 0x8a78, 0xfffd, 0xfffd, 0x9bad, 0x9baf, 0x8add, 0xfffd, 0xfffd, 0x9bac, 0x9bae, 0xfffd, 0x9bb1, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9bb0, 0xfffd, 0x9bb2, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9bb3, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x93bb, 0x8bac, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x89e3, 0x9bb4, 0x9bb9, 0xfffd, 0xfffd, 0x9bb7, 0xfffd, 0x95f5, 0x95f4, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9387, 0xfffd, 0xfffd, 0xfffd, 0x9bb6, 0x8f73, 0xfffd, 0x9bb5, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9092, 0xfffd, 0xfffd, 0xfffd, 0x9bba, 0xfffd, 0xfffd, 0x8de8, 0xfffd, 0xfffd, 0x9bc0, 0xfffd, 0xfffd, 0x9bc1, 0x9bbb, 0x8a52, 0x9bbc, 0x9bc5, 0x9bc4, 0x9bc3, 0x9bbf, 0xfffd, 0xfffd, 0xfffd, 0x9bbe, 0xfffd, 0xfffd, 0x9bc2, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x95f6, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9bc9, 0x9bc6, 0xfffd, 0x9bc8, 0xfffd, 0x9792, 0xfffd, 0x9bc7, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9bbd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9093, 0xfffd, 0xfffd, 0x9bca, 0xfffd, 0xfffd, 0x8db5, 0xfffd, 0xfffd, 0xfffd, 0x9bcb, 0xfffd, 0xfffd, 0x9bcc, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9bcf, 0xfffd, 0x9bce, 0xfffd, 0xfffd, 0x9bcd, 0xfffd, 0xfffd, 0xfffd, 0x9388, 0x9bb8, 0xfffd, 0xfffd, 0xfffd, 0x9bd5, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9bd1, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9bd0, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9bd2, 0xfffd, 0x9bd3, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9bd6, 0xfffd, 0xfffd, 0x97e4, 0xfffd, 0x9bd7, 0x9bd4, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9bd8, 0xfffd, 0xfffd, 0x8ade, 0x9bd9, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9bdb, 0x9bda, 0xfffd, 0xfffd, 0x9bdc, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9bdd, 0xfffd, 0x90ec, 0x8f42, 0xfffd, 0xfffd, 0x8f84, 0xfffd, 0x9183, 0xfffd, 0x8d48, 0x8db6, 0x8d49, 0x8b90, 0xfffd, 0xfffd, 0x9bde, 0xfffd, 0xfffd, 0x8db7, 0xfffd, 0xfffd, 0x8cc8, 0x9bdf, 0x96a4, 0x9462, 0x9be0, 0xfffd, 0x8d4a, 0xfffd, 0xfffd, 0xfffd, 0x8aaa, 0xfffd, 0x9246, 0x8bd0, 0xfffd, 0xfffd, 0xfffd, 0x8e73, 0x957a, 0xfffd, 0xfffd, 0x94bf, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9be1, 0x8af3, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9be4, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x929f, 0xfffd, 0xfffd, 0x9be3, 0x9be2, 0x9be5, 0xfffd, 0x92e9, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9083, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8e74, 0xfffd, 0x90c8, 0xfffd, 0x91d1, 0x8b41, 0xfffd, 0xfffd, 0x92a0, 0xfffd, 0xfffd, 0x9be6, 0x9be7, 0x8fed, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9658, 0xfffd, 0xfffd, 0x9bea, 0xfffd, 0xfffd, 0x9be9, 0x9be8, 0x959d, 0xfffd, 0x9bf1, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9679, 0xfffd, 0x9beb, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9bed, 0x968b, 0xfffd, 0x9bec, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9bee, 0xfffd, 0x94a6, 0x9bef, 0x95bc, 0x9bf0, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8ab1, 0x95bd, 0x944e, 0x9bf2, 0x9bf3, 0xfffd, 0x8d4b, 0x8ab2, 0x9bf4, 0x8cb6, 0x9763, 0x9748, 0x8af4, 0x9bf6, 0xfffd, 0x92a1, 0xfffd, 0x8d4c, 0x8faf, 0xfffd, 0xfffd, 0x94dd, 0xfffd, 0xfffd, 0x8fb0, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8f98, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x92ea, 0x95f7, 0x9358, 0xfffd, 0xfffd, 0x8d4d, 0xfffd, 0x957b, 0xfffd, 0xfffd, 0xfffd, 0x9bf7, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9378, 0x8dc0, 0xfffd, 0xfffd, 0xfffd, 0x8cc9, 0xfffd, 0x92eb, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x88c1, 0x8f8e, 0x8d4e, 0x9766, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9bf8, 0x9bf9, 0x9470, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9bfa, 0x97f5, 0x984c, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9bfc, 0x9bfb, 0xfffd, 0xfffd, 0x8a66, 0xfffd, 0xfffd, 0x9c40, 0xfffd, 0xfffd, 0xfffd, 0x9c43, 0x9c44, 0xfffd, 0x9c42, 0xfffd, 0x955f, 0x8fb1, 0x9c46, 0x9c45, 0x9c41, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9c47, 0x9c48, 0xfffd, 0xfffd, 0x9c49, 0xfffd, 0xfffd, 0xfffd, 0x9c4c, 0x9c4a, 0xfffd, 0x9c4b, 0x9c4d, 0xfffd, 0x8984, 0x92ec, 0x9c4e, 0xfffd, 0x8c9a, 0x89f4, 0x9455, 0xfffd, 0x9c4f, 0x93f9, 0xfffd, 0x95d9, 0xfffd, 0x9c50, 0x984d, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9c51, 0x95be, 0x9c54, 0x989f, 0x98af, 0xfffd, 0x8eae, 0x93f3, 0x9c55, 0xfffd, 0x8b7c, 0x92a2, 0x88f8, 0x9c56, 0x95a4, 0x8d4f, 0xfffd, 0xfffd, 0x926f, 0xfffd, 0xfffd, 0xfffd, 0x92ed, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x96ed, 0x8cb7, 0x8cca, 0xfffd, 0x9c57, 0xfffd, 0xfffd, 0xfffd, 0x9c58, 0xfffd, 0x9c5e, 0xfffd, 0x8ee3, 0xfffd, 0xfffd, 0xfffd, 0x92a3, 0xfffd, 0x8bad, 0x9c59, 0xfffd, 0xfffd, 0xfffd, 0x954a, 0xfffd, 0x9265, 0xfffd, 0xfffd, 0x9c5a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9c5b, 0xfffd, 0x8bae, 0xfffd, 0x9c5c, 0xfffd, 0x9c5d, 0xfffd, 0xfffd, 0x9c5f, 0xfffd, 0x9396, 0xfffd, 0xfffd, 0x9c60, 0x9c61, 0xfffd, 0x9c62, 0xfffd, 0xfffd, 0x9c53, 0x9c52, 0xfffd, 0xfffd, 0xfffd, 0x9c63, 0x8c60, 0xfffd, 0xfffd, 0xfffd, 0x9546, 0xfffd, 0xfffd, 0x8dca, 0x9556, 0x92a4, 0x956a, 0x9c64, 0xfffd, 0xfffd, 0x8fb2, 0x8965, 0xfffd, 0x9c65, 0xfffd, 0xfffd, 0xfffd, 0x9c66, 0xfffd, 0x96f0, 0xfffd, 0xfffd, 0x94de, 0xfffd, 0xfffd, 0x9c69, 0x899d, 0x90aa, 0x9c68, 0x9c67, 0x8c61, 0x91d2, 0xfffd, 0x9c6d, 0x9c6b, 0xfffd, 0x9c6a, 0x97a5, 0x8ce3, 0xfffd, 0xfffd, 0xfffd, 0x8f99, 0x9c6c, 0x936b, 0x8f5d, 0xfffd, 0xfffd, 0xfffd, 0x93be, 0x9c70, 0x9c6f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9c6e, 0xfffd, 0x9c71, 0x8ce4, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9c72, 0x959c, 0x8f7a, 0xfffd, 0xfffd, 0x9c73, 0x94f7, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x93bf, 0x92a5, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x934f, 0xfffd, 0xfffd, 0x9c74, 0x8b4a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9053, 0xfffd, 0x954b, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8af5, 0x9445, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9c75, 0x8e75, 0x9659, 0x965a, 0xfffd, 0xfffd, 0x899e, 0x9c7a, 0xfffd, 0xfffd, 0x9289, 0xfffd, 0xfffd, 0xfffd, 0x9c77, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x89f5, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9cab, 0x9c79, 0xfffd, 0xfffd, 0xfffd, 0x944f, 0xfffd, 0xfffd, 0x9c78, 0xfffd, 0xfffd, 0x9c76, 0xfffd, 0x8d9a, 0xfffd, 0x9c7c, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9c83, 0x9c89, 0x9c81, 0xfffd, 0x937b, 0xfffd, 0xfffd, 0x9c86, 0x957c, 0xfffd, 0xfffd, 0x9c80, 0xfffd, 0x9c85, 0x97e5, 0x8e76, 0xfffd, 0xfffd, 0x91d3, 0x9c7d, 0xfffd, 0xfffd, 0xfffd, 0x8b7d, 0x9c88, 0x90ab, 0x8985, 0x9c82, 0x89f6, 0x9c87, 0xfffd, 0xfffd, 0xfffd, 0x8baf, 0xfffd, 0x9c84, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9c8a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9c8c, 0x9c96, 0x9c94, 0xfffd, 0xfffd, 0x9c91, 0xfffd, 0xfffd, 0xfffd, 0x9c90, 0x97f6, 0xfffd, 0x9c92, 0xfffd, 0xfffd, 0x8bb0, 0xfffd, 0x8d50, 0xfffd, 0xfffd, 0x8f9a, 0xfffd, 0xfffd, 0xfffd, 0x9c99, 0x9c8b, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9c8f, 0x9c7e, 0xfffd, 0x89f8, 0x9c93, 0x9c95, 0x9270, 0xfffd, 0xfffd, 0x8da6, 0x89b6, 0x9c8d, 0x9c98, 0x9c97, 0x8bb1, 0xfffd, 0x91a7, 0x8a86, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8c62, 0xfffd, 0x9c8e, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9c9a, 0xfffd, 0x9c9d, 0x9c9f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8ebb, 0xfffd, 0x9ca5, 0x92ee, 0x9c9b, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9ca3, 0xfffd, 0x89f7, 0xfffd, 0x9ca1, 0x9ca2, 0xfffd, 0xfffd, 0x9c9e, 0x9ca0, 0xfffd, 0xfffd, 0xfffd, 0x8ce5, 0x9749, 0xfffd, 0xfffd, 0x8ab3, 0xfffd, 0xfffd, 0x8978, 0x9ca4, 0xfffd, 0x9459, 0x88ab, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x94df, 0x9c7b, 0x9caa, 0x9cae, 0x96e3, 0xfffd, 0x9ca7, 0xfffd, 0xfffd, 0xfffd, 0x9389, 0x9cac, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8fee, 0x9cad, 0x93d5, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9866, 0xfffd, 0x9ca9, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9caf, 0xfffd, 0x8d9b, 0xfffd, 0x90c9, 0xfffd, 0xfffd, 0x88d2, 0x9ca8, 0x9ca6, 0xfffd, 0x9179, 0xfffd, 0xfffd, 0xfffd, 0x9c9c, 0x8e53, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x91c4, 0x9cbb, 0xfffd, 0x917a, 0x9cb6, 0xfffd, 0x9cb3, 0x9cb4, 0xfffd, 0x8ee4, 0x9cb7, 0x9cba, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9cb5, 0x8f44, 0xfffd, 0x9cb8, 0xfffd, 0xfffd, 0x9cb2, 0xfffd, 0x96fa, 0x96f9, 0xfffd, 0xfffd, 0xfffd, 0x9cbc, 0x9cbd, 0x88d3, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9cb1, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8bf0, 0x88a4, 0xfffd, 0xfffd, 0xfffd, 0x8ab4, 0xfffd, 0x9cb9, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9cc1, 0x9cc0, 0xfffd, 0xfffd, 0xfffd, 0x9cc5, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9cc6, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9cc4, 0x9cc7, 0x9cbf, 0x9cc3, 0xfffd, 0xfffd, 0x9cc8, 0xfffd, 0x9cc9, 0xfffd, 0xfffd, 0x9cbe, 0x8e9c, 0xfffd, 0x9cc2, 0x91d4, 0x8d51, 0x9cb0, 0x9054, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9cd6, 0xfffd, 0x95e7, 0xfffd, 0xfffd, 0x9ccc, 0x9ccd, 0x9cce, 0xfffd, 0xfffd, 0x9cd5, 0xfffd, 0x9cd4, 0xfffd, 0xfffd, 0x969d, 0x8ab5, 0xfffd, 0x9cd2, 0xfffd, 0x8c64, 0x8a53, 0xfffd, 0xfffd, 0x9ccf, 0xfffd, 0xfffd, 0x97b6, 0x9cd1, 0x88d4, 0x9cd3, 0xfffd, 0x9cca, 0x9cd0, 0x9cd7, 0x8c63, 0x9ccb, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x977c, 0xfffd, 0xfffd, 0xfffd, 0x974a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9cda, 0xfffd, 0xfffd, 0x9cde, 0xfffd, 0xfffd, 0xfffd, 0x919e, 0xfffd, 0x97f7, 0x9cdf, 0xfffd, 0xfffd, 0x9cdc, 0xfffd, 0x9cd9, 0xfffd, 0xfffd, 0x9cd8, 0x9cdd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x95ae, 0xfffd, 0xfffd, 0x93b2, 0xfffd, 0x8c65, 0xfffd, 0x9ce0, 0x9cdb, 0xfffd, 0x9ce1, 0xfffd, 0xfffd, 0xfffd, 0x8c9b, 0xfffd, 0xfffd, 0xfffd, 0x89af, 0xfffd, 0xfffd, 0xfffd, 0x9ce9, 0xfffd, 0xfffd, 0xfffd, 0x8ab6, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9ce7, 0xfffd, 0xfffd, 0x9ce8, 0x8da7, 0x9ce6, 0x9ce4, 0x9ce3, 0x9cea, 0x9ce2, 0x9cec, 0xfffd, 0xfffd, 0x89f9, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9cee, 0xfffd, 0xfffd, 0x9ced, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x92a6, 0xfffd, 0x9cf1, 0xfffd, 0x9cef, 0x9ce5, 0x8c9c, 0xfffd, 0x9cf0, 0xfffd, 0x9cf4, 0x9cf3, 0x9cf5, 0x9cf2, 0x9cf6, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9cf7, 0x9cf8, 0x95e8, 0xfffd, 0x9cfa, 0x9cf9, 0x8f5e, 0xfffd, 0x90ac, 0x89e4, 0x89fa, 0xfffd, 0x9cfb, 0xfffd, 0x88bd, 0xfffd, 0xfffd, 0xfffd, 0x90ca, 0x9cfc, 0xfffd, 0xe6c1, 0x9d40, 0x8c81, 0xfffd, 0x9d41, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x90ed, 0xfffd, 0xfffd, 0xfffd, 0x9d42, 0xfffd, 0xfffd, 0xfffd, 0x9d43, 0x8b59, 0x9d44, 0xfffd, 0x9d45, 0x9d46, 0x91d5, 0xfffd, 0xfffd, 0xfffd, 0x8ccb, 0xfffd, 0xfffd, 0x96df, 0xfffd, 0xfffd, 0xfffd, 0x965b, 0x8f8a, 0x9d47, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x90ee, 0xe7bb, 0x94e0, 0xfffd, 0x8ee8, 0xfffd, 0x8dcb, 0x9d48, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x91c5, 0xfffd, 0x95a5, 0xfffd, 0xfffd, 0x91ef, 0xfffd, 0xfffd, 0x9d4b, 0xfffd, 0xfffd, 0x9d49, 0xfffd, 0x9d4c, 0xfffd, 0xfffd, 0x9d4a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9d4d, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x95af, 0xfffd, 0xfffd, 0x88b5, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x957d, 0xfffd, 0xfffd, 0x94e1, 0xfffd, 0xfffd, 0x9d4e, 0xfffd, 0x9d51, 0x8fb3, 0x8b5a, 0xfffd, 0x9d4f, 0x9d56, 0x8fb4, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9d50, 0x9463, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x977d, 0x9d52, 0x9d53, 0x9d57, 0x938a, 0x9d54, 0x8d52, 0x90dc, 0xfffd, 0xfffd, 0x9d65, 0x94b2, 0xfffd, 0x91f0, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x94e2, 0x9dab, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x95f8, 0xfffd, 0xfffd, 0xfffd, 0x92ef, 0xfffd, 0xfffd, 0xfffd, 0x9695, 0xfffd, 0x9d5a, 0x899f, 0x928a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9d63, 0xfffd, 0xfffd, 0x9253, 0x9d5d, 0x9d64, 0x9d5f, 0x9d66, 0x9d62, 0xfffd, 0x9d61, 0x948f, 0xfffd, 0x9d5b, 0x89fb, 0x9d59, 0x8b91, 0x91f1, 0x9d55, 0xfffd, 0xfffd, 0x9d58, 0x8d53, 0x90d9, 0xfffd, 0x8fb5, 0x9d60, 0x9471, 0xfffd, 0xfffd, 0x8b92, 0x8a67, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8a87, 0x9040, 0x9d68, 0x9d6d, 0xfffd, 0x9d69, 0xfffd, 0x8c9d, 0xfffd, 0x9d6e, 0x8e41, 0x8d89, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8f45, 0x9d5c, 0xfffd, 0x8e9d, 0x9d6b, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8e77, 0x9d6c, 0x88c2, 0xfffd, 0xfffd, 0x9d67, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x92a7, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8b93, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8bb2, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9d6a, 0x88a5, 0xfffd, 0xfffd, 0x8dc1, 0xfffd, 0xfffd, 0xfffd, 0x9055, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x92f0, 0xfffd, 0xfffd, 0x94d2, 0x9d70, 0x917d, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x91a8, 0xfffd, 0xfffd, 0x8e4a, 0x9d71, 0xfffd, 0x9d73, 0x9d6f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x95df, 0xfffd, 0x92bb, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x917b, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x95f9, 0x8ecc, 0x9d80, 0xfffd, 0x9d7e, 0xfffd, 0xfffd, 0x9098, 0xfffd, 0xfffd, 0xfffd, 0x8c9e, 0xfffd, 0xfffd, 0xfffd, 0x9d78, 0x8fb7, 0xfffd, 0xfffd, 0x93e6, 0x9450, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9d76, 0xfffd, 0xfffd, 0x917c, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8ef6, 0x9d7b, 0xfffd, 0xfffd, 0x8fb6, 0xfffd, 0x9d75, 0x9d7a, 0xfffd, 0xfffd, 0x9472, 0xfffd, 0xfffd, 0xfffd, 0x9d74, 0xfffd, 0x8c40, 0xfffd, 0xfffd, 0x8a7c, 0xfffd, 0xfffd, 0xfffd, 0x9d7c, 0x97a9, 0x8dcc, 0x9254, 0x9d79, 0xfffd, 0x90da, 0xfffd, 0x8d54, 0x9084, 0x8986, 0x915b, 0x9d77, 0x8b64, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8c66, 0xfffd, 0x92cd, 0x9d7d, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x917e, 0xfffd, 0xfffd, 0x9d81, 0xfffd, 0x9d83, 0xfffd, 0xfffd, 0x91b5, 0x9d89, 0xfffd, 0x9d84, 0xfffd, 0xfffd, 0x9d86, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9560, 0x92f1, 0xfffd, 0x9d87, 0xfffd, 0xfffd, 0xfffd, 0x974b, 0xfffd, 0xfffd, 0xfffd, 0x9767, 0x8ab7, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x88ac, 0xfffd, 0x9d85, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9d82, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8af6, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8987, 0xfffd, 0x9d88, 0xfffd, 0xfffd, 0xfffd, 0x9768, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9d8c, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x91b9, 0xfffd, 0x9d93, 0xfffd, 0xfffd, 0xfffd, 0x9d8d, 0xfffd, 0xfffd, 0x9d8a, 0x9d91, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9d72, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9d8e, 0xfffd, 0x9d92, 0xfffd, 0xfffd, 0xfffd, 0x94c0, 0x938b, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9d8b, 0xfffd, 0x9d8f, 0xfffd, 0xfffd, 0xfffd, 0x8c67, 0xfffd, 0xfffd, 0xfffd, 0x8def, 0xfffd, 0xfffd, 0xfffd, 0x90db, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9d97, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9345, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9d94, 0xfffd, 0x9680, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9d95, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9d96, 0xfffd, 0x96cc, 0xfffd, 0x90a0, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8c82, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9d9d, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8e54, 0x9d9a, 0xfffd, 0x9d99, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9451, 0xfffd, 0xfffd, 0xfffd, 0x93b3, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9350, 0x9d9b, 0xfffd, 0xfffd, 0xfffd, 0x9d9c, 0xfffd, 0x958f, 0xfffd, 0x9464, 0x8e42, 0xfffd, 0x90ef, 0xfffd, 0x966f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8a68, 0xfffd, 0x9da3, 0x9d9e, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9769, 0x9da5, 0xfffd, 0xfffd, 0x9da1, 0xfffd, 0x9da2, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9180, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9da0, 0xfffd, 0x9d5e, 0xfffd, 0xfffd, 0xfffd, 0x9da4, 0xfffd, 0x9d9f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9da9, 0x9daa, 0x9346, 0x9dac, 0xfffd, 0xfffd, 0x8e43, 0x9da7, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8b5b, 0xfffd, 0xfffd, 0x9dad, 0xfffd, 0x9da6, 0x9db1, 0xfffd, 0x9db0, 0xfffd, 0x9daf, 0xfffd, 0xfffd, 0xfffd, 0x9db2, 0xfffd, 0xfffd, 0x9db4, 0x8fef, 0xfffd, 0x9db3, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9db7, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9db5, 0xfffd, 0xfffd, 0xfffd, 0x9db6, 0x9d90, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9db9, 0x9db8, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9d98, 0x9dba, 0x9dae, 0xfffd, 0xfffd, 0x8e78, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9dbb, 0x9dbc, 0x9dbe, 0x9dbd, 0x9dbf, 0x89fc, 0xfffd, 0x8d55, 0xfffd, 0xfffd, 0x95fa, 0x90ad, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8ccc, 0xfffd, 0xfffd, 0x9dc1, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9dc4, 0xfffd, 0x9571, 0xfffd, 0x8b7e, 0xfffd, 0xfffd, 0xfffd, 0x9dc3, 0x9dc2, 0x9473, 0x9dc5, 0x8bb3, 0xfffd, 0xfffd, 0xfffd, 0x9dc7, 0x9dc6, 0xfffd, 0xfffd, 0xfffd, 0x8ab8, 0x8e55, 0xfffd, 0xfffd, 0x93d6, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8c68, 0xfffd, 0xfffd, 0xfffd, 0x9094, 0xfffd, 0x9dc8, 0xfffd, 0x90ae, 0x9347, 0xfffd, 0x957e, 0x9dc9, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9dca, 0x9dcb, 0xfffd, 0xfffd, 0xfffd, 0x95b6, 0x9b7c, 0x90c4, 0xfffd, 0xfffd, 0x956b, 0xfffd, 0x8dd6, 0xfffd, 0x94e3, 0x94c1, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x936c, 0xfffd, 0x97bf, 0xfffd, 0x9dcd, 0x8ece, 0xfffd, 0xfffd, 0x9dce, 0xfffd, 0x88b4, 0xfffd, 0xfffd, 0x8bd2, 0x90cb, 0xfffd, 0x9580, 0xfffd, 0xfffd, 0xfffd, 0x9dcf, 0x8e61, 0x9266, 0xfffd, 0x8e7a, 0x9056, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9dd0, 0xfffd, 0x95fb, 0xfffd, 0xfffd, 0x8997, 0x8e7b, 0xfffd, 0xfffd, 0xfffd, 0x9dd3, 0xfffd, 0x9dd1, 0x9dd4, 0x97b7, 0x9dd2, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x90f9, 0x9dd5, 0xfffd, 0xfffd, 0x91b0, 0xfffd, 0xfffd, 0x9dd6, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8af8, 0xfffd, 0x9dd8, 0xfffd, 0x9dd7, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9dd9, 0x9dda, 0x8af9, 0xfffd, 0xfffd, 0x93fa, 0x9255, 0x8b8c, 0x8e7c, 0x9181, 0xfffd, 0xfffd, 0x8f7b, 0x88ae, 0xfffd, 0xfffd, 0xfffd, 0x9ddb, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x89a0, 0x9ddf, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8d56, 0x9dde, 0xfffd, 0xfffd, 0x8da9, 0x8fb8, 0xfffd, 0xfffd, 0x9ddd, 0xfffd, 0x8fb9, 0xfffd, 0x96be, 0x8da8, 0xfffd, 0xfffd, 0xfffd, 0x88d5, 0x90cc, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9de4, 0xfffd, 0xfffd, 0x90af, 0x8966, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8f74, 0xfffd, 0x9686, 0x8df0, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8fba, 0xfffd, 0x90a5, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9de3, 0x9de1, 0x9de2, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x928b, 0xfffd, 0xfffd, 0x9e45, 0xfffd, 0x9de8, 0x8e9e, 0x8d57, 0x9de6, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9de7, 0xfffd, 0x9057, 0xfffd, 0xfffd, 0xfffd, 0x9de5, 0xfffd, 0xfffd, 0x8e4e, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9dea, 0x9de9, 0x9dee, 0xfffd, 0xfffd, 0x9def, 0xfffd, 0x9deb, 0xfffd, 0x8a41, 0x9dec, 0x9ded, 0x94d3, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9581, 0x8c69, 0x9df0, 0xfffd, 0xfffd, 0xfffd, 0x90b0, 0xfffd, 0x8fbb, 0xfffd, 0xfffd, 0xfffd, 0x9271, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8bc5, 0xfffd, 0x9df1, 0x9df5, 0xfffd, 0xfffd, 0x89c9, 0x9df2, 0x9df4, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9df3, 0xfffd, 0xfffd, 0x8f8b, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9267, 0x88c3, 0x9df6, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9df7, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x92a8, 0xfffd, 0xfffd, 0xfffd, 0x97ef, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8e62, 0xfffd, 0xfffd, 0x95e9, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x965c, 0xfffd, 0xfffd, 0xfffd, 0x9e41, 0x9df9, 0xfffd, 0xfffd, 0x9dfc, 0xfffd, 0x9dfb, 0xfffd, 0xfffd, 0x9df8, 0xfffd, 0xfffd, 0x9e40, 0xfffd, 0xfffd, 0x93dc, 0xfffd, 0x9dfa, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9e42, 0xfffd, 0xfffd, 0x8f8c, 0x9e43, 0xfffd, 0x976a, 0x9498, 0xfffd, 0xfffd, 0x9e44, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9e46, 0xfffd, 0xfffd, 0x9e47, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9e48, 0xfffd, 0x8bc8, 0x8967, 0x8d58, 0x9e49, 0xfffd, 0x9e4a, 0x8f91, 0x9182, 0xfffd, 0xfffd, 0x99d6, 0x915d, 0x915c, 0x91d6, 0x8dc5, 0xfffd, 0xfffd, 0x98f0, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8c8e, 0x974c, 0xfffd, 0x95fc, 0xfffd, 0x959e, 0xfffd, 0x9e4b, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8df1, 0x92bd, 0x9e4c, 0x984e, 0xfffd, 0xfffd, 0xfffd, 0x965d, 0xfffd, 0x92a9, 0x9e4d, 0x8afa, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9e4e, 0x9e4f, 0x96d8, 0xfffd, 0x96a2, 0x9696, 0x967b, 0x8e44, 0x9e51, 0xfffd, 0xfffd, 0x8ee9, 0xfffd, 0xfffd, 0x9670, 0xfffd, 0x9e53, 0x9e56, 0x9e55, 0xfffd, 0x8af7, 0xfffd, 0xfffd, 0x8b80, 0xfffd, 0x9e52, 0xfffd, 0x9e54, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9e57, 0xfffd, 0xfffd, 0x9099, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x979b, 0x88c7, 0x8dde, 0x91ba, 0xfffd, 0x8edb, 0xfffd, 0xfffd, 0x8ff1, 0xfffd, 0xfffd, 0x9e5a, 0xfffd, 0xfffd, 0x936d, 0xfffd, 0x9e58, 0x91a9, 0x9e59, 0x8ff0, 0x96db, 0x9e5b, 0x9e5c, 0x9788, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9e61, 0xfffd, 0xfffd, 0x8d59, 0xfffd, 0x9474, 0x9e5e, 0x938c, 0x9ddc, 0x9de0, 0xfffd, 0x8b6e, 0xfffd, 0x9466, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9e60, 0xfffd, 0x8fbc, 0x94c2, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9e66, 0xfffd, 0x94f8, 0xfffd, 0x9e5d, 0xfffd, 0x9e63, 0x9e62, 0xfffd, 0xfffd, 0xfffd, 0x90cd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x968d, 0xfffd, 0x97d1, 0xfffd, 0xfffd, 0x9687, 0xfffd, 0x89ca, 0x8e7d, 0xfffd, 0xfffd, 0x9867, 0x9e65, 0x9095, 0xfffd, 0xfffd, 0xfffd, 0x9e64, 0xfffd, 0xfffd, 0x9e5f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8ccd, 0xfffd, 0xfffd, 0xfffd, 0x9e6b, 0x9e69, 0xfffd, 0x89cb, 0x9e67, 0x9e6d, 0x9e73, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x91c6, 0xfffd, 0xfffd, 0x95bf, 0xfffd, 0x9e75, 0xfffd, 0xfffd, 0xfffd, 0x9541, 0xfffd, 0xfffd, 0xfffd, 0x9e74, 0x9490, 0x965e, 0x8ab9, 0xfffd, 0x90f5, 0x8f5f, 0xfffd, 0xfffd, 0xfffd, 0x92d1, 0xfffd, 0x974d, 0xfffd, 0xfffd, 0x9e70, 0x9e6f, 0xfffd, 0xfffd, 0xfffd, 0x9e71, 0xfffd, 0x9e6e, 0xfffd, 0xfffd, 0x9e76, 0xfffd, 0x9e6c, 0xfffd, 0xfffd, 0x9e6a, 0xfffd, 0x9e72, 0x9e68, 0xfffd, 0x928c, 0xfffd, 0x96f6, 0x8ec4, 0x8df2, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8db8, 0xfffd, 0xfffd, 0x968f, 0x8a60, 0xfffd, 0xfffd, 0x92cc, 0x93c8, 0x8968, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x90f0, 0xfffd, 0xfffd, 0x90b2, 0x8c49, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9e78, 0xfffd, 0xfffd, 0x8d5a, 0x8a9c, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9e7a, 0x8a94, 0x9e81, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9e7d, 0xfffd, 0x90f1, 0xfffd, 0xfffd, 0xfffd, 0x8a6a, 0x8daa, 0xfffd, 0xfffd, 0x8a69, 0x8dcd, 0xfffd, 0xfffd, 0x9e7b, 0x8c85, 0x8c6a, 0x938d, 0xfffd, 0xfffd, 0x9e79, 0xfffd, 0x88c4, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9e7c, 0x9e7e, 0xfffd, 0x8bcb, 0x8c4b, 0xfffd, 0x8aba, 0x8b6a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9e82, 0xfffd, 0xfffd, 0x8df7, 0x9691, 0xfffd, 0x8e56, 0xfffd, 0xfffd, 0xfffd, 0x9e83, 0xfffd, 0xfffd, 0xfffd, 0x954f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9e8f, 0xfffd, 0x89b1, 0x9e84, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9e95, 0x9e85, 0xfffd, 0x97c0, 0xfffd, 0x9e8c, 0xfffd, 0x947e, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9e94, 0xfffd, 0x9e87, 0xfffd, 0xfffd, 0xfffd, 0x88b2, 0x9e89, 0xfffd, 0xfffd, 0x8d5b, 0xfffd, 0xfffd, 0xfffd, 0x9e8b, 0xfffd, 0x9e8a, 0xfffd, 0x9e86, 0x9e91, 0xfffd, 0x8fbd, 0xfffd, 0xfffd, 0xfffd, 0x9aeb, 0x8ce6, 0x979c, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9e88, 0xfffd, 0x92f2, 0x8a42, 0x8dab, 0xfffd, 0x9e80, 0xfffd, 0x9e90, 0x8a81, 0xfffd, 0xfffd, 0x9e8e, 0x9e92, 0xfffd, 0x938e, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8afc, 0xfffd, 0x9eb0, 0xfffd, 0xfffd, 0x96c7, 0x9e97, 0x8afb, 0xfffd, 0x9e9e, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x965f, 0xfffd, 0x9e9f, 0x9ea1, 0xfffd, 0x9ea5, 0x9e99, 0xfffd, 0x9249, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x938f, 0x9ea9, 0x9e9c, 0xfffd, 0x9ea6, 0xfffd, 0xfffd, 0xfffd, 0x9ea0, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9058, 0x9eaa, 0xfffd, 0xfffd, 0x90b1, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9ea8, 0x8abb, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x986f, 0x9e96, 0xfffd, 0xfffd, 0x9ea4, 0x88d6, 0xfffd, 0xfffd, 0x9e98, 0xfffd, 0xfffd, 0x96b8, 0x9e9d, 0x9041, 0x92c5, 0x9e93, 0xfffd, 0xfffd, 0x9ea3, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x909a, 0x9ead, 0x8a91, 0x8c9f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9eaf, 0x9e9a, 0x9eae, 0xfffd, 0x9ea7, 0x9e9b, 0xfffd, 0x9eab, 0xfffd, 0x9eac, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9ebd, 0xfffd, 0xfffd, 0xfffd, 0x93cc, 0xfffd, 0x9ea2, 0xfffd, 0xfffd, 0x9eb9, 0xfffd, 0xfffd, 0xfffd, 0x9ebb, 0xfffd, 0x92d6, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x976b, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9596, 0x9eb6, 0x91c8, 0xfffd, 0xfffd, 0xfffd, 0x9ebc, 0x915e, 0xfffd, 0x9eb3, 0x9ec0, 0x9ebf, 0xfffd, 0x93ed, 0x9ebe, 0x93e8, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9ec2, 0x9eb5, 0xfffd, 0x8bc6, 0x9eb8, 0x8f7c, 0xfffd, 0xfffd, 0xfffd, 0x9480, 0x9eba, 0x8bc9, 0xfffd, 0x9eb2, 0x9eb4, 0x9eb1, 0xfffd, 0xfffd, 0x984f, 0x8a79, 0x9eb7, 0xfffd, 0xfffd, 0x9ec1, 0x8a54, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8de5, 0xfffd, 0xfffd, 0xfffd, 0x897c, 0xfffd, 0xfffd, 0x9ed2, 0xfffd, 0xfffd, 0x9850, 0x9ed5, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9059, 0x9ed4, 0xfffd, 0xfffd, 0xfffd, 0x9ed3, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9ed0, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9ec4, 0xfffd, 0xfffd, 0x9ee1, 0x9ec3, 0xfffd, 0x9ed6, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9ece, 0xfffd, 0xfffd, 0x9ec9, 0x9ec6, 0xfffd, 0x9ec7, 0xfffd, 0x9ecf, 0xfffd, 0xfffd, 0xfffd, 0xeaa0, 0xfffd, 0xfffd, 0x9ecc, 0x8d5c, 0x92c6, 0x9184, 0x9eca, 0xfffd, 0x9ec5, 0xfffd, 0xfffd, 0x9ec8, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x976c, 0x968a, 0xfffd, 0xfffd, 0xfffd, 0x9ecd, 0x9ed7, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9edf, 0x9ed8, 0xfffd, 0xfffd, 0x9ee5, 0xfffd, 0x9ee3, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9ede, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9edd, 0xfffd, 0x92ce, 0xfffd, 0x9185, 0xfffd, 0x9edb, 0xfffd, 0xfffd, 0x9ed9, 0xfffd, 0xfffd, 0x9ee0, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9ee6, 0x94f3, 0x9eec, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9ee7, 0x9eea, 0x9ee4, 0xfffd, 0xfffd, 0x9294, 0xfffd, 0x9557, 0xfffd, 0x9eda, 0xfffd, 0xfffd, 0x9ee2, 0x8fbe, 0xfffd, 0x96cd, 0x9ef6, 0x9ee9, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8ca0, 0x89a1, 0x8a7e, 0xfffd, 0xfffd, 0x9ed1, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8fbf, 0x9eee, 0xfffd, 0x9ef5, 0x8ef7, 0x8a92, 0xfffd, 0xfffd, 0x924d, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9eeb, 0xfffd, 0xfffd, 0x9ef0, 0x9ef4, 0xfffd, 0xfffd, 0x8bb4, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8b6b, 0x9ef2, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8b40, 0xfffd, 0x93c9, 0x9ef1, 0xfffd, 0xfffd, 0xfffd, 0x9ef3, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9eed, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9eef, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8a80, 0x9268, 0xfffd, 0xfffd, 0xfffd, 0x9efa, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9ef8, 0x8ce7, 0xfffd, 0x9ef7, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9f40, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9e77, 0xfffd, 0xfffd, 0xfffd, 0x9ef9, 0xfffd, 0x9efb, 0x9efc, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9f4b, 0xfffd, 0x9f47, 0xfffd, 0x9e8d, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9f46, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9f45, 0xfffd, 0xfffd, 0x9f42, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9ee8, 0x9f44, 0x9f43, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9f49, 0xfffd, 0x9845, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9f4c, 0x8bf9, 0xfffd, 0xfffd, 0x9f48, 0x9f4a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x94a5, 0xfffd, 0x9f4d, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9f51, 0x9f4e, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9793, 0x9f4f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9edc, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9f52, 0xfffd, 0xfffd, 0xfffd, 0x9f53, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8954, 0xfffd, 0x9f55, 0x8c87, 0x8e9f, 0xfffd, 0x8bd3, 0xfffd, 0xfffd, 0xfffd, 0x89a2, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x977e, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9f57, 0x9f56, 0x9f59, 0x8b5c, 0xfffd, 0xfffd, 0x8bd4, 0x8abc, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9f5c, 0xfffd, 0xfffd, 0xfffd, 0x9f5b, 0xfffd, 0x9f5d, 0xfffd, 0xfffd, 0x89cc, 0xfffd, 0x9256, 0xfffd, 0x9f5e, 0xfffd, 0xfffd, 0x8abd, 0x9f60, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9f5f, 0xfffd, 0x9f61, 0xfffd, 0xfffd, 0xfffd, 0x9f62, 0xfffd, 0x9f63, 0x8e7e, 0x90b3, 0x8d9f, 0xfffd, 0x9590, 0xfffd, 0xfffd, 0x95e0, 0x9863, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8e95, 0xfffd, 0xfffd, 0xfffd, 0x8dce, 0x97f0, 0xfffd, 0xfffd, 0xfffd, 0x9f64, 0x9f65, 0xfffd, 0x8e80, 0xfffd, 0xfffd, 0xfffd, 0x9f66, 0x9f67, 0xfffd, 0xfffd, 0x9f69, 0x9f68, 0xfffd, 0x9677, 0xfffd, 0xfffd, 0x8f7d, 0x8eea, 0x8e63, 0xfffd, 0x9f6a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9f6c, 0x9042, 0xfffd, 0x9f6b, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9f6d, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9f6e, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9f6f, 0x9f70, 0xfffd, 0xfffd, 0xfffd, 0x9f71, 0xfffd, 0x9f73, 0x9f72, 0x9f74, 0x89a3, 0x9269, 0xfffd, 0x9f75, 0xfffd, 0xfffd, 0x8e45, 0x8a6b, 0x9f76, 0xfffd, 0xfffd, 0x9361, 0x9aca, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8b42, 0x9f77, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9f78, 0xfffd, 0x95ea, 0x9688, 0xfffd, 0xfffd, 0xfffd, 0x93c5, 0x9f79, 0x94e4, 0xfffd, 0xfffd, 0xfffd, 0x94f9, 0xfffd, 0xfffd, 0x96d1, 0xfffd, 0xfffd, 0xfffd, 0x9f7a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9f7c, 0x9f7b, 0xfffd, 0xfffd, 0x9f7e, 0xfffd, 0xfffd, 0xfffd, 0x9f7d, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9f81, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8e81, 0xfffd, 0x96af, 0xfffd, 0x9f82, 0x9f83, 0xfffd, 0xfffd, 0x8b43, 0xfffd, 0xfffd, 0xfffd, 0x9f84, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9f86, 0x9f85, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9085, 0xfffd, 0xfffd, 0x9558, 0x8969, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x94c3, 0xfffd, 0x92f3, 0x8f60, 0x8b81, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x94c4, 0xfffd, 0x8eac, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9f88, 0xfffd, 0x8abe, 0xfffd, 0xfffd, 0x8998, 0xfffd, 0xfffd, 0x93f0, 0x9f87, 0x8d5d, 0x9272, 0xfffd, 0x9f89, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9f91, 0xfffd, 0x9f8a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x91bf, 0xfffd, 0x8b82, 0x9f92, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8c88, 0xfffd, 0xfffd, 0x8b44, 0x9f90, 0xfffd, 0xfffd, 0x9f8e, 0x9f8b, 0x9780, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x92be, 0xfffd, 0xfffd, 0xfffd, 0x93d7, 0x9f8c, 0xfffd, 0xfffd, 0x9f94, 0xfffd, 0x9f93, 0x8c42, 0xfffd, 0xfffd, 0x89ab, 0xfffd, 0xfffd, 0x8db9, 0x9f8d, 0x9f8f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9676, 0x91f2, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9697, 0xfffd, 0xfffd, 0x9f9c, 0xfffd, 0xfffd, 0x9f9d, 0xfffd, 0x89cd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x95a6, 0x96fb, 0x9f9f, 0x8ea1, 0x8fc0, 0x9f98, 0x9f9e, 0x8988, 0xfffd, 0x8bb5, 0xfffd, 0xfffd, 0x9f95, 0x9f9a, 0xfffd, 0xfffd, 0xfffd, 0x90f2, 0x9491, 0xfffd, 0x94e5, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9f97, 0xfffd, 0x9640, 0xfffd, 0x9f99, 0xfffd, 0x9fa2, 0xfffd, 0x9fa0, 0xfffd, 0x9f9b, 0xfffd, 0xfffd, 0xfffd, 0x9641, 0x9467, 0x8b83, 0xfffd, 0x9344, 0xfffd, 0xfffd, 0x928d, 0xfffd, 0x9fa3, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9fa1, 0x91d7, 0x9f96, 0xfffd, 0x896a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x976d, 0x9fae, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9fad, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x90f4, 0xfffd, 0x9faa, 0xfffd, 0x978c, 0xfffd, 0xfffd, 0x93b4, 0x9fa4, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x92c3, 0xfffd, 0xfffd, 0xfffd, 0x896b, 0x8d5e, 0x9fa7, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8f46, 0x9fac, 0xfffd, 0x9fab, 0x9fa6, 0xfffd, 0x9fa9, 0xfffd, 0xfffd, 0x8a88, 0xfffd, 0x9fa8, 0x9468, 0xfffd, 0xfffd, 0x97ac, 0xfffd, 0xfffd, 0x8ff2, 0x90f3, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9fb4, 0x9fb2, 0xfffd, 0x956c, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9faf, 0x9fb1, 0xfffd, 0x8959, 0xfffd, 0xfffd, 0x8d5f, 0x9851, 0xfffd, 0x8a5c, 0xfffd, 0x9582, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9781, 0xfffd, 0xfffd, 0x8a43, 0x905a, 0x9fb3, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9fb8, 0xfffd, 0xfffd, 0x8fc1, 0xfffd, 0xfffd, 0xfffd, 0x974f, 0xfffd, 0x9fb5, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9fb0, 0xfffd, 0x9fb6, 0xfffd, 0xfffd, 0xfffd, 0x97dc, 0xfffd, 0x9393, 0x93c0, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8a55, 0xfffd, 0xfffd, 0x8974, 0xfffd, 0xfffd, 0x9fbc, 0xfffd, 0xfffd, 0x9fbf, 0xfffd, 0xfffd, 0xfffd, 0x97c1, 0xfffd, 0xfffd, 0xfffd, 0x9784, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9fc6, 0x9fc0, 0x9fbd, 0xfffd, 0xfffd, 0xfffd, 0x97d2, 0x9fc3, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8f69, 0x9fc5, 0xfffd, 0xfffd, 0x9fca, 0xfffd, 0xfffd, 0x9391, 0x9fc8, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9fc2, 0xfffd, 0xfffd, 0x9257, 0xfffd, 0xfffd, 0x9fc9, 0xfffd, 0x9fbe, 0xfffd, 0x9fc4, 0xfffd, 0x9fcb, 0x88fa, 0x9fc1, 0xfffd, 0x9fcc, 0xfffd, 0xfffd, 0x905b, 0xfffd, 0x8f7e, 0xfffd, 0x95a3, 0xfffd, 0x8dac, 0xfffd, 0x9fb9, 0x9fc7, 0x9359, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x90b4, 0xfffd, 0x8a89, 0x8dcf, 0x8fc2, 0x9fbb, 0x8f61, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8c6b, 0xfffd, 0x9fba, 0xfffd, 0xfffd, 0xfffd, 0x9fd0, 0x8f8d, 0x8cb8, 0xfffd, 0x9fdf, 0xfffd, 0x9fd9, 0x8b94, 0x936e, 0xfffd, 0x9fd4, 0x9fdd, 0x88ad, 0x8951, 0xfffd, 0xfffd, 0x89b7, 0xfffd, 0x9fd6, 0x91aa, 0x9fcd, 0x9fcf, 0x8d60, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9fe0, 0xfffd, 0x9fdb, 0xfffd, 0xfffd, 0xfffd, 0x9fd3, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9fda, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x96a9, 0xfffd, 0xfffd, 0x9fd8, 0x9fdc, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8cce, 0xfffd, 0x8fc3, 0xfffd, 0xfffd, 0x9258, 0xfffd, 0xfffd, 0xfffd, 0x9fd2, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x974e, 0xfffd, 0xfffd, 0xfffd, 0x9fd5, 0xfffd, 0xfffd, 0x9fce, 0x9392, 0xfffd, 0xfffd, 0x9fd1, 0xfffd, 0xfffd, 0xfffd, 0x9fd7, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9870, 0x8ebc, 0x969e, 0xfffd, 0x9fe1, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x94ac, 0xfffd, 0xfffd, 0x9fed, 0x8cb9, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8f80, 0xfffd, 0x9fe3, 0xfffd, 0xfffd, 0xfffd, 0x97ad, 0x8d61, 0xfffd, 0x9ff0, 0xfffd, 0xfffd, 0x88ec, 0xfffd, 0xfffd, 0x9fee, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9fe2, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9fe8, 0xfffd, 0xfffd, 0x9fea, 0xfffd, 0xfffd, 0xfffd, 0x976e, 0x9fe5, 0xfffd, 0xfffd, 0x934d, 0xfffd, 0xfffd, 0x9fe7, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9fef, 0xfffd, 0x9fe9, 0x96c5, 0xfffd, 0xfffd, 0xfffd, 0x9fe4, 0xfffd, 0x8ea0, 0x9ffc, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8a8a, 0xfffd, 0x9fe6, 0x9feb, 0x9fec, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x91ea, 0x91d8, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9ff4, 0xfffd, 0xfffd, 0x9ffa, 0xfffd, 0xfffd, 0x9ff8, 0xfffd, 0x9348, 0xfffd, 0xfffd, 0xe042, 0x9ff5, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9ff6, 0x9fde, 0xfffd, 0x8b99, 0x9559, 0xfffd, 0xfffd, 0xfffd, 0x8ebd, 0xfffd, 0xfffd, 0x8d97, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9852, 0xfffd, 0x9ff2, 0xfffd, 0xe041, 0x8989, 0x9186, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9499, 0xfffd, 0x8abf, 0x97f8, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x969f, 0x92d0, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9ff9, 0x9ffb, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9151, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe040, 0x9ff7, 0xfffd, 0x9ff1, 0xfffd, 0xfffd, 0xfffd, 0x8ac1, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8c89, 0xfffd, 0xfffd, 0xfffd, 0xe04e, 0xfffd, 0xfffd, 0xe049, 0x90f6, 0xfffd, 0xfffd, 0x8a83, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8f81, 0xfffd, 0xe052, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe04b, 0x92aa, 0xe048, 0x92d7, 0xfffd, 0xfffd, 0xfffd, 0xe06b, 0xfffd, 0xfffd, 0xfffd, 0xe045, 0xfffd, 0xe044, 0xfffd, 0xe04d, 0xfffd, 0xfffd, 0xfffd, 0xe047, 0xe046, 0xe04c, 0xfffd, 0x909f, 0xfffd, 0xe043, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe04f, 0xfffd, 0xfffd, 0xe050, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8ac0, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe055, 0xfffd, 0xe054, 0xe056, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe059, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9362, 0xfffd, 0xe053, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe057, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8c83, 0x91f7, 0xe051, 0x945a, 0xfffd, 0xfffd, 0xe058, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe05d, 0xe05b, 0xfffd, 0xfffd, 0xe05e, 0xfffd, 0xfffd, 0xe061, 0xfffd, 0xfffd, 0xfffd, 0xe05a, 0x8d8a, 0x9447, 0xfffd, 0xfffd, 0x9fb7, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9794, 0xe05c, 0xfffd, 0xe060, 0x91f3, 0xfffd, 0xe05f, 0xfffd, 0xe04a, 0xfffd, 0xfffd, 0xe889, 0xfffd, 0xfffd, 0xfffd, 0xe064, 0xfffd, 0xfffd, 0xfffd, 0xe068, 0xfffd, 0xfffd, 0xe066, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe062, 0xfffd, 0xe063, 0xfffd, 0xfffd, 0xfffd, 0xe067, 0xfffd, 0xe065, 0xfffd, 0xfffd, 0xfffd, 0x956d, 0xfffd, 0xfffd, 0xe06d, 0xfffd, 0xe06a, 0xe069, 0xfffd, 0xe06c, 0x93d2, 0xe06e, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9295, 0x91eb, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x90a3, 0xfffd, 0xfffd, 0xfffd, 0xe06f, 0xfffd, 0xe071, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe070, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9ff3, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe072, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x93e5, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe073, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x89ce, 0xfffd, 0xfffd, 0xfffd, 0x9394, 0x8a44, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8b84, 0xfffd, 0xfffd, 0xfffd, 0x8edc, 0x8dd0, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9846, 0x9086, 0xfffd, 0xfffd, 0xfffd, 0x898a, 0xfffd, 0xfffd, 0xfffd, 0xe075, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe074, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe078, 0x9259, 0xe07b, 0xe076, 0xfffd, 0xfffd, 0xfffd, 0xe07a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe079, 0x935f, 0x88d7, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x97f3, 0xfffd, 0xfffd, 0xe07d, 0xfffd, 0xfffd, 0xfffd, 0x8947, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe080, 0xfffd, 0xfffd, 0xfffd, 0xe07e, 0xfffd, 0xe07c, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe077, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9642, 0xfffd, 0xfffd, 0xfffd, 0xe082, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe081, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x898b, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe084, 0x95b0, 0xfffd, 0xe083, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x96b3, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8fc5, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9152, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8fc4, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x97f9, 0xfffd, 0xfffd, 0xe08a, 0xfffd, 0x90f7, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe086, 0xe08b, 0xfffd, 0xfffd, 0x898c, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe089, 0xfffd, 0x9481, 0xe085, 0xe088, 0x8fc6, 0xfffd, 0x94cf, 0xfffd, 0xfffd, 0xe08c, 0xfffd, 0x8ecf, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x90f8, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe08f, 0xfffd, 0xfffd, 0xfffd, 0xe087, 0xfffd, 0x8c46, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe08d, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x976f, 0xe090, 0xfffd, 0xfffd, 0xfffd, 0xeaa4, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8f6e, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe091, 0xfffd, 0xfffd, 0xfffd, 0xe092, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x944d, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe094, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe095, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9452, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9395, 0xe097, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe099, 0xfffd, 0x97d3, 0xfffd, 0xe096, 0xfffd, 0xe098, 0x898d, 0xfffd, 0xe093, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9a7a, 0xe09a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9187, 0x8e57, 0xe09c, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe09b, 0x9043, 0x99d7, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe09d, 0xfffd, 0xfffd, 0xfffd, 0xe09f, 0xfffd, 0xe08e, 0xe09e, 0xfffd, 0xfffd, 0xe0a0, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x949a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe0a1, 0xfffd, 0xfffd, 0xe0a2, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe0a3, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe0a4, 0xfffd, 0x92dc, 0xfffd, 0xe0a6, 0xe0a5, 0xfffd, 0xfffd, 0xe0a7, 0xfffd, 0xe0a8, 0xfffd, 0xfffd, 0x8edd, 0x9583, 0xfffd, 0xfffd, 0xfffd, 0x96ea, 0xe0a9, 0xe0aa, 0x9175, 0x8ea2, 0xe0ab, 0xe0ac, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe0ad, 0x95d0, 0x94c5, 0xfffd, 0xfffd, 0xe0ae, 0x9476, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x92ab, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe0af, 0x89e5, 0xfffd, 0x8b8d, 0xfffd, 0x96c4, 0xfffd, 0x96b4, 0xfffd, 0x89b2, 0x9853, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9671, 0xfffd, 0x95a8, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x90b5, 0xfffd, 0xe0b0, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x93c1, 0xfffd, 0xfffd, 0xfffd, 0x8ca1, 0xe0b1, 0xfffd, 0x8dd2, 0xe0b3, 0xe0b2, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe0b4, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe0b5, 0xfffd, 0xfffd, 0xfffd, 0xe0b6, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8b5d, 0xfffd, 0xe0b7, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe0b8, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8ca2, 0xfffd, 0xfffd, 0x94c6, 0xfffd, 0xfffd, 0xe0ba, 0xfffd, 0xfffd, 0xfffd, 0x8ff3, 0xfffd, 0xfffd, 0xe0b9, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8bb6, 0xe0bb, 0xe0bd, 0xfffd, 0xe0bc, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe0be, 0xfffd, 0x8ccf, 0xfffd, 0xe0bf, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8be7, 0xfffd, 0x915f, 0xfffd, 0x8d9d, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe0c1, 0xe0c2, 0xe0c0, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8eeb, 0xfffd, 0xfffd, 0x93c6, 0x8bb7, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe0c4, 0x924b, 0xe0c3, 0xfffd, 0xfffd, 0x9854, 0x9482, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe0c7, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe0c9, 0xe0c6, 0xfffd, 0xfffd, 0xfffd, 0x96d2, 0xe0c8, 0xe0ca, 0xfffd, 0x97c2, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe0ce, 0xfffd, 0xfffd, 0xfffd, 0xe0cd, 0x9296, 0x944c, 0xfffd, 0xfffd, 0x8ca3, 0xe0cc, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe0cb, 0xfffd, 0x9750, 0x9751, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe0cf, 0x898e, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8d96, 0x8e82, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe0d0, 0xe0d1, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe0d3, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8f62, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe0d5, 0xfffd, 0xe0d4, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe0d6, 0xfffd, 0x8a6c, 0xfffd, 0xfffd, 0xe0d8, 0xfffd, 0xfffd, 0xe0d7, 0xfffd, 0xe0da, 0xe0d9, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8cba, 0xfffd, 0xfffd, 0x97a6, 0xfffd, 0x8bca, 0xfffd, 0x89a4, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8be8, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8adf, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x97e6, 0xe0dc, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe0de, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe0df, 0xfffd, 0x89cf, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe0db, 0xfffd, 0x8e58, 0xfffd, 0xfffd, 0x92bf, 0xe0dd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe0e2, 0xfffd, 0x8eec, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe0e0, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8c5d, 0xfffd, 0xfffd, 0x94c7, 0xe0e1, 0xfffd, 0xfffd, 0xe0fc, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe0e7, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8cbb, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8b85, 0xfffd, 0xe0e4, 0x979d, 0xfffd, 0xfffd, 0x97ae, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x91f4, 0xfffd, 0xfffd, 0xe0e6, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe0e8, 0x97d4, 0x8bd5, 0x94fa, 0x9469, 0xfffd, 0xfffd, 0xfffd, 0xe0e9, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe0eb, 0xfffd, 0xe0ee, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe0ea, 0xfffd, 0xfffd, 0xfffd, 0xe0ed, 0x8ce8, 0x896c, 0xe0ef, 0xfffd, 0x9090, 0xe0ec, 0x97da, 0xfffd, 0xfffd, 0xe0f2, 0xeaa2, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe0f0, 0xe0f3, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe0e5, 0xe0f1, 0xfffd, 0xfffd, 0x8dba, 0xfffd, 0xfffd, 0xe0f4, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe0f5, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x979e, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe0f6, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe0f7, 0xfffd, 0xfffd, 0xfffd, 0xe0e3, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe0f8, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8ac2, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8ea3, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe0f9, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe0fa, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe0fb, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x895a, 0xfffd, 0xfffd, 0xfffd, 0xe140, 0xfffd, 0x955a, 0xe141, 0xfffd, 0xfffd, 0x8aa2, 0xe142, 0xfffd, 0xe143, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe144, 0xfffd, 0xe146, 0xe147, 0xe145, 0xfffd, 0xfffd, 0xfffd, 0x9572, 0xe149, 0xe148, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe14b, 0xe14a, 0xe14c, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe14d, 0xe14f, 0xe14e, 0xfffd, 0xfffd, 0x8d99, 0xfffd, 0xe151, 0xfffd, 0xe150, 0xfffd, 0xfffd, 0x8ac3, 0xfffd, 0x9072, 0xfffd, 0x935b, 0xfffd, 0xe152, 0x90b6, 0xfffd, 0xfffd, 0xfffd, 0x8e59, 0xfffd, 0x8999, 0xe153, 0xfffd, 0x9770, 0xfffd, 0xfffd, 0x95e1, 0xe154, 0xfffd, 0xfffd, 0xfffd, 0x9363, 0x9752, 0x8d62, 0x905c, 0xfffd, 0xfffd, 0xfffd, 0x926a, 0x99b2, 0xfffd, 0x92ac, 0x89e6, 0xe155, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe156, 0xfffd, 0xe15b, 0xfffd, 0xfffd, 0xe159, 0xe158, 0x9dc0, 0x8a45, 0xe157, 0xfffd, 0x88d8, 0xfffd, 0x94a8, 0xfffd, 0xfffd, 0x94c8, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x97af, 0xe15c, 0xe15a, 0x927b, 0x90a4, 0xfffd, 0xfffd, 0x94a9, 0xfffd, 0x954c, 0xfffd, 0xe15e, 0x97aa, 0x8c6c, 0xe15f, 0xfffd, 0xe15d, 0x94d4, 0xe160, 0xfffd, 0xe161, 0xfffd, 0xfffd, 0x88d9, 0xfffd, 0xfffd, 0x8ff4, 0xe166, 0xfffd, 0xe163, 0x93eb, 0xe162, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8b45, 0xfffd, 0xfffd, 0xe169, 0xfffd, 0xfffd, 0xfffd, 0xe164, 0xe165, 0xfffd, 0xe168, 0xe167, 0x9544, 0xfffd, 0xfffd, 0x9161, 0x9160, 0xfffd, 0x8b5e, 0xfffd, 0xfffd, 0xe16a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe16b, 0xfffd, 0xfffd, 0xe16c, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe16e, 0xfffd, 0xe16d, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8975, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe176, 0x94e6, 0xe170, 0xfffd, 0xe172, 0xfffd, 0xfffd, 0xe174, 0x905d, 0xfffd, 0xfffd, 0xe175, 0xe173, 0x8ebe, 0xfffd, 0xfffd, 0xfffd, 0xe16f, 0xe171, 0xfffd, 0x9561, 0xfffd, 0x8fc7, 0xfffd, 0xfffd, 0xe178, 0xfffd, 0xfffd, 0xe177, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe179, 0xfffd, 0x8ea4, 0x8dad, 0xfffd, 0xfffd, 0x9397, 0xe17a, 0xfffd, 0x92c9, 0xfffd, 0xfffd, 0xe17c, 0xfffd, 0xfffd, 0xfffd, 0x979f, 0xe17b, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9189, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe182, 0xfffd, 0xe184, 0xe185, 0x9273, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe183, 0xfffd, 0xe180, 0xfffd, 0xe17d, 0xe17e, 0xfffd, 0xe181, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe188, 0xfffd, 0xe186, 0xfffd, 0xe187, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe189, 0xe18b, 0xe18c, 0xe18d, 0xfffd, 0xe18e, 0xfffd, 0xfffd, 0xe18a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe190, 0xfffd, 0xfffd, 0xfffd, 0xe18f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe191, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x97c3, 0xfffd, 0xfffd, 0xfffd, 0xe194, 0xe192, 0xe193, 0xfffd, 0xfffd, 0xfffd, 0x8ae0, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x96fc, 0xfffd, 0xfffd, 0xfffd, 0x95c8, 0xfffd, 0xe196, 0xfffd, 0xfffd, 0xfffd, 0xe195, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe197, 0xe198, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe19c, 0xe199, 0xe19a, 0xe19b, 0xfffd, 0xe19d, 0xfffd, 0xfffd, 0xfffd, 0xe19e, 0xfffd, 0xe19f, 0xfffd, 0xfffd, 0xfffd, 0xe1a0, 0xfffd, 0xe1a1, 0xfffd, 0x94ad, 0x936f, 0xe1a2, 0x9492, 0x9553, 0xfffd, 0xe1a3, 0xfffd, 0xfffd, 0xe1a4, 0x9349, 0xfffd, 0x8a46, 0x8d63, 0xe1a5, 0xfffd, 0xfffd, 0xe1a6, 0xfffd, 0xfffd, 0xe1a7, 0xfffd, 0x8e48, 0xfffd, 0xfffd, 0xe1a9, 0xfffd, 0xfffd, 0xe1a8, 0xfffd, 0xfffd, 0xe1aa, 0xe1ab, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x94e7, 0xfffd, 0xe1ac, 0xfffd, 0xfffd, 0xfffd, 0xe1ad, 0xfffd, 0xfffd, 0xea89, 0xe1ae, 0xe1af, 0xe1b0, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8e4d, 0xfffd, 0xfffd, 0xe1b1, 0x9475, 0xfffd, 0xfffd, 0x967e, 0xfffd, 0x896d, 0xfffd, 0x8976, 0xfffd, 0xfffd, 0xe1b2, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe1b4, 0xfffd, 0xfffd, 0xfffd, 0xe1b3, 0x9390, 0xfffd, 0xfffd, 0xfffd, 0x90b7, 0x9f58, 0xfffd, 0xe1b5, 0x96bf, 0xfffd, 0xe1b6, 0xfffd, 0x8ac4, 0x94d5, 0xe1b7, 0xfffd, 0xe1b8, 0xfffd, 0xfffd, 0xe1b9, 0xfffd, 0xfffd, 0xfffd, 0x96da, 0xfffd, 0xfffd, 0xfffd, 0x96d3, 0xfffd, 0x92bc, 0xfffd, 0xfffd, 0xfffd, 0x918a, 0xfffd, 0xfffd, 0xe1bb, 0xfffd, 0xfffd, 0x8f82, 0xfffd, 0xfffd, 0x8fc8, 0xfffd, 0xfffd, 0xe1be, 0xfffd, 0xfffd, 0xe1bd, 0xe1bc, 0x94fb, 0xfffd, 0x8ac5, 0x8ca7, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe1c4, 0xfffd, 0xfffd, 0xe1c1, 0x905e, 0x96b0, 0xfffd, 0xfffd, 0xfffd, 0xe1c0, 0xe1c2, 0xe1c3, 0xfffd, 0xfffd, 0xe1bf, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe1c5, 0xe1c6, 0xfffd, 0x92ad, 0xfffd, 0x8ae1, 0xfffd, 0xfffd, 0xfffd, 0x9285, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe1c7, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe1c8, 0xe1cb, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9087, 0xfffd, 0x93c2, 0xfffd, 0xe1cc, 0x9672, 0xfffd, 0xe1c9, 0xfffd, 0xfffd, 0xe1ca, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe1cf, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe1ce, 0xe1cd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe1d1, 0xfffd, 0xfffd, 0xe1d0, 0xfffd, 0xfffd, 0xe1d2, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe1d4, 0xfffd, 0xe1d3, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x95cb, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8f75, 0x97c4, 0xfffd, 0xfffd, 0xe1d5, 0xfffd, 0xfffd, 0x93b5, 0xfffd, 0xfffd, 0xe1d6, 0xfffd, 0xfffd, 0xe1d7, 0xfffd, 0xe1db, 0xe1d9, 0xe1da, 0xfffd, 0xe1d8, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe1dc, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe1dd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe1de, 0xfffd, 0xfffd, 0xe1df, 0x96b5, 0xe1e0, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x96ee, 0xe1e1, 0xfffd, 0x926d, 0xfffd, 0x948a, 0xfffd, 0x8be9, 0xfffd, 0xfffd, 0xfffd, 0x925a, 0xe1e2, 0x8bb8, 0xfffd, 0xfffd, 0xfffd, 0x90ce, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe1e3, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8dbb, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe1e4, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe1e5, 0xfffd, 0x8ca4, 0x8dd3, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe1e7, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9375, 0x8dd4, 0x8b6d, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9643, 0xfffd, 0x946a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9376, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8d7b, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe1e9, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8fc9, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x97b0, 0x8d64, 0xfffd, 0xfffd, 0x8ca5, 0xfffd, 0xfffd, 0x94a1, 0xfffd, 0xe1eb, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe1ed, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8ce9, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe1ec, 0x92f4, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe1ef, 0x8a56, 0xe1ea, 0xfffd, 0xfffd, 0x94e8, 0xfffd, 0x894f, 0xfffd, 0x8dea, 0xfffd, 0x9871, 0xfffd, 0xfffd, 0xe1ee, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe1f0, 0xfffd, 0xfffd, 0xfffd, 0x95c9, 0xfffd, 0x90d7, 0xe1f2, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe1f3, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe1f1, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8a6d, 0xfffd, 0xe1f9, 0xfffd, 0xe1f8, 0xfffd, 0xfffd, 0x8ea5, 0xfffd, 0xfffd, 0xfffd, 0xe1fa, 0xe1f5, 0xfffd, 0xfffd, 0xfffd, 0xe1fb, 0xe1f6, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x94d6, 0xe1f4, 0xfffd, 0xfffd, 0xe1f7, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe241, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe240, 0x9681, 0xfffd, 0xfffd, 0xfffd, 0xe1fc, 0xfffd, 0xfffd, 0x88e9, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe243, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe242, 0xfffd, 0xfffd, 0xfffd, 0x8fca, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe244, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9162, 0xfffd, 0xfffd, 0xe246, 0xe245, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe247, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe1e6, 0xfffd, 0xfffd, 0xfffd, 0xe1e8, 0xe249, 0xe248, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8ea6, 0xfffd, 0x97e7, 0xfffd, 0x8ed0, 0xfffd, 0xe24a, 0x8c56, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8b5f, 0x8b46, 0x8e83, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9753, 0xfffd, 0xfffd, 0xe250, 0xfffd, 0xe24f, 0x9163, 0xe24c, 0xfffd, 0xfffd, 0xe24e, 0xfffd, 0xfffd, 0x8f6a, 0x905f, 0xe24d, 0xe24b, 0xfffd, 0x9449, 0xfffd, 0xfffd, 0x8fcb, 0xfffd, 0xfffd, 0x955b, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8dd5, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9398, 0xfffd, 0xfffd, 0xe251, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe252, 0xe268, 0x8bd6, 0xfffd, 0xfffd, 0x985c, 0x9154, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe253, 0xfffd, 0xfffd, 0x89d0, 0x92f5, 0x959f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe254, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8b9a, 0xe255, 0xfffd, 0xfffd, 0xe257, 0xfffd, 0xfffd, 0xfffd, 0xe258, 0xfffd, 0x9448, 0xfffd, 0xfffd, 0xe259, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe25a, 0xe25b, 0xfffd, 0xfffd, 0x8bd7, 0x89d1, 0x93c3, 0x8f47, 0x8e84, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe25c, 0xfffd, 0x8f48, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x89c8, 0x9562, 0xfffd, 0xfffd, 0xe25d, 0xfffd, 0xfffd, 0x94e9, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9164, 0xfffd, 0xe260, 0xfffd, 0xe261, 0x9489, 0xfffd, 0x9060, 0xe25e, 0xfffd, 0x9281, 0xfffd, 0xfffd, 0xe25f, 0xfffd, 0xfffd, 0xfffd, 0x8fcc, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x88da, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8b48, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe262, 0xfffd, 0xfffd, 0x92f6, 0xfffd, 0xe263, 0x90c5, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x96ab, 0xfffd, 0xfffd, 0x9542, 0xe264, 0xe265, 0x9274, 0xfffd, 0x97c5, 0xfffd, 0xfffd, 0xe267, 0xe266, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8eed, 0xfffd, 0xfffd, 0xe269, 0x88ee, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe26c, 0xfffd, 0xfffd, 0xfffd, 0xe26a, 0x89d2, 0x8c6d, 0xe26b, 0x8d65, 0x8d92, 0xfffd, 0x95e4, 0xe26d, 0xfffd, 0xfffd, 0x9673, 0xfffd, 0xfffd, 0xe26f, 0xfffd, 0xfffd, 0xfffd, 0x90cf, 0x896e, 0x89b8, 0x88aa, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe26e, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe270, 0xe271, 0x8ff5, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe272, 0xfffd, 0x8a6e, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe274, 0xfffd, 0xfffd, 0xfffd, 0x8c8a, 0xfffd, 0x8b86, 0xfffd, 0xfffd, 0xe275, 0x8bf3, 0xfffd, 0xfffd, 0xe276, 0xfffd, 0x90fa, 0xfffd, 0x93cb, 0xfffd, 0x90de, 0x8df3, 0xfffd, 0xfffd, 0xfffd, 0xe277, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9282, 0x918b, 0xfffd, 0xe279, 0xe27b, 0xe278, 0xe27a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8c41, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe27c, 0x8c45, 0xfffd, 0xfffd, 0xfffd, 0x8b87, 0x9771, 0xe27e, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe280, 0xfffd, 0xfffd, 0xfffd, 0x894d, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe283, 0xfffd, 0xfffd, 0xfffd, 0x8a96, 0xe282, 0xe281, 0xfffd, 0xe285, 0xe27d, 0xfffd, 0xe286, 0x97a7, 0xfffd, 0xe287, 0xfffd, 0xe288, 0xfffd, 0xfffd, 0x9af2, 0xe28a, 0xfffd, 0xe289, 0xfffd, 0xfffd, 0xfffd, 0xe28b, 0xe28c, 0xfffd, 0x97b3, 0xe28d, 0xfffd, 0xe8ed, 0x8fcd, 0xe28e, 0xe28f, 0x8f76, 0xfffd, 0x93b6, 0xe290, 0xfffd, 0xfffd, 0xfffd, 0x9247, 0xfffd, 0xfffd, 0xe291, 0xfffd, 0x925b, 0xe292, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8ba3, 0xfffd, 0x995e, 0x927c, 0x8eb1, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8ac6, 0xfffd, 0xfffd, 0xe293, 0xfffd, 0xe2a0, 0xfffd, 0xe296, 0xfffd, 0x8b88, 0xfffd, 0xe295, 0xe2a2, 0xfffd, 0xfffd, 0xfffd, 0xe294, 0xfffd, 0x8fce, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe298, 0xe299, 0xfffd, 0x934a, 0xfffd, 0xfffd, 0xe29a, 0xfffd, 0x8a7d, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9079, 0x9584, 0xfffd, 0xe29c, 0xfffd, 0xfffd, 0xfffd, 0x91e6, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe297, 0xfffd, 0xe29b, 0xe29d, 0xfffd, 0xfffd, 0x8df9, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe2a4, 0x954d, 0xfffd, 0x94a4, 0x9399, 0xfffd, 0x8bd8, 0xe2a3, 0xe2a1, 0xfffd, 0x94b3, 0xe29e, 0x927d, 0x939b, 0xfffd, 0x939a, 0xfffd, 0x8df4, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe2b6, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe2a6, 0xfffd, 0xe2a8, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe2ab, 0xfffd, 0xe2ac, 0xfffd, 0xe2a9, 0xe2aa, 0xfffd, 0xfffd, 0xe2a7, 0xe2a5, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe29f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x95cd, 0x89d3, 0xfffd, 0xfffd, 0xfffd, 0xe2b3, 0xfffd, 0xe2b0, 0xfffd, 0xe2b5, 0xfffd, 0xfffd, 0xe2b4, 0xfffd, 0x9493, 0x96a5, 0xfffd, 0x8e5a, 0xe2ae, 0xe2b7, 0xe2b2, 0xfffd, 0xe2b1, 0xe2ad, 0xfffd, 0xe2af, 0xfffd, 0x8ac7, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x925c, 0xfffd, 0xfffd, 0x90fb, 0xfffd, 0xfffd, 0xfffd, 0x94a0, 0xfffd, 0xfffd, 0xe2bc, 0xfffd, 0xfffd, 0xfffd, 0x94a2, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x90df, 0xe2b9, 0xfffd, 0xfffd, 0x94cd, 0xfffd, 0xe2bd, 0x95d1, 0xfffd, 0x927a, 0xfffd, 0xe2b8, 0xe2ba, 0xfffd, 0xfffd, 0xe2bb, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe2be, 0xfffd, 0xfffd, 0x8ec2, 0xfffd, 0xfffd, 0xfffd, 0x93c4, 0xe2c3, 0xe2c2, 0xfffd, 0xfffd, 0xe2bf, 0xfffd, 0xfffd, 0xfffd, 0x9855, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe2c8, 0xfffd, 0xfffd, 0xe2cc, 0xe2c9, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe2c5, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe2c6, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe2cb, 0xfffd, 0xfffd, 0xfffd, 0xe2c0, 0x99d3, 0xe2c7, 0xe2c1, 0xfffd, 0xfffd, 0xe2ca, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe2d0, 0xfffd, 0x8ac8, 0xfffd, 0xe2cd, 0xfffd, 0xfffd, 0xfffd, 0xe2ce, 0xfffd, 0xfffd, 0xe2cf, 0xe2d2, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe2d1, 0x94f4, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe2d3, 0x97fa, 0x95eb, 0xe2d8, 0xfffd, 0xfffd, 0xe2d5, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe2d4, 0x90d0, 0xfffd, 0xe2d7, 0xe2d9, 0xfffd, 0xfffd, 0xfffd, 0xe2d6, 0xfffd, 0xe2dd, 0xfffd, 0xe2da, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe2db, 0xe2c4, 0xfffd, 0xfffd, 0xfffd, 0xe2dc, 0xe2de, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe2df, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x95c4, 0xfffd, 0xe2e0, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x96e0, 0xfffd, 0xfffd, 0x8bcc, 0x8c48, 0xe2e1, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x95b2, 0xfffd, 0x9088, 0xfffd, 0x96ae, 0xfffd, 0xfffd, 0xe2e2, 0xfffd, 0x97b1, 0xfffd, 0xfffd, 0x9494, 0xfffd, 0x9165, 0x9453, 0xfffd, 0xfffd, 0x8f6c, 0xfffd, 0xfffd, 0xfffd, 0x88be, 0xfffd, 0xe2e7, 0xe2e5, 0xfffd, 0xe2e3, 0x8a9f, 0xfffd, 0x8fcf, 0xe2e8, 0xfffd, 0xfffd, 0xe2e6, 0xfffd, 0xe2e4, 0xe2ec, 0xfffd, 0xfffd, 0xe2eb, 0xe2ea, 0xe2e9, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe2ed, 0xfffd, 0xfffd, 0xfffd, 0xe2ee, 0x90b8, 0xfffd, 0xe2ef, 0xfffd, 0xe2f1, 0xfffd, 0xfffd, 0xe2f0, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8cd0, 0xfffd, 0xfffd, 0xfffd, 0x9157, 0xfffd, 0xfffd, 0xfffd, 0xe2f3, 0xfffd, 0xfffd, 0xfffd, 0x939c, 0xfffd, 0xe2f2, 0xfffd, 0xfffd, 0xfffd, 0xe2f4, 0xfffd, 0x95b3, 0x918c, 0x8d66, 0xfffd, 0xe2f5, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x97c6, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe2f7, 0xfffd, 0xfffd, 0xe2f8, 0xfffd, 0xe2f9, 0xfffd, 0xe2fa, 0xfffd, 0x8e85, 0xfffd, 0xe2fb, 0x8c6e, 0xfffd, 0xfffd, 0x8b8a, 0xfffd, 0x8b49, 0xfffd, 0xe340, 0xfffd, 0x96f1, 0x8d67, 0xe2fc, 0xfffd, 0xfffd, 0xfffd, 0xe343, 0x96e4, 0xfffd, 0x945b, 0xfffd, 0xfffd, 0x9552, 0xfffd, 0xfffd, 0xfffd, 0x8f83, 0xe342, 0xfffd, 0x8ed1, 0x8d68, 0x8e86, 0x8b89, 0x95b4, 0xe341, 0xfffd, 0xfffd, 0xfffd, 0x9166, 0x9661, 0x8df5, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8e87, 0x92db, 0xfffd, 0xe346, 0x97dd, 0x8dd7, 0xfffd, 0xe347, 0x9061, 0xfffd, 0xe349, 0xfffd, 0xfffd, 0xfffd, 0x8fd0, 0x8dae, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe348, 0xfffd, 0xfffd, 0x8f49, 0x8cbc, 0x9167, 0xe344, 0xe34a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe345, 0x8c6f, 0xfffd, 0xe34d, 0xe351, 0x8c8b, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe34c, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe355, 0xfffd, 0xfffd, 0x8d69, 0xfffd, 0xfffd, 0x978d, 0x88ba, 0xe352, 0xfffd, 0xfffd, 0x8b8b, 0xfffd, 0xe34f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe350, 0xfffd, 0xfffd, 0x939d, 0xe34e, 0xe34b, 0xfffd, 0x8a47, 0x90e2, 0xfffd, 0xfffd, 0x8ca6, 0xfffd, 0xfffd, 0xfffd, 0xe357, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe354, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe356, 0xfffd, 0xfffd, 0xfffd, 0xe353, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8c70, 0x91b1, 0xe358, 0x918e, 0xfffd, 0xfffd, 0xe365, 0xfffd, 0xfffd, 0xe361, 0xe35b, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe35f, 0x8ef8, 0x88db, 0xe35a, 0xe362, 0xe366, 0x8d6a, 0x96d4, 0xfffd, 0x92d4, 0xe35c, 0xfffd, 0xfffd, 0xe364, 0xfffd, 0xe359, 0x925d, 0xfffd, 0xe35e, 0x88bb, 0x96c8, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe35d, 0xfffd, 0xfffd, 0x8bd9, 0x94ea, 0xfffd, 0xfffd, 0xfffd, 0x918d, 0xfffd, 0x97ce, 0x8f8f, 0xfffd, 0xfffd, 0xe38e, 0xfffd, 0xfffd, 0xe367, 0xfffd, 0x90fc, 0xfffd, 0xe363, 0xe368, 0xe36a, 0xfffd, 0x92f7, 0xe36d, 0xfffd, 0xfffd, 0xe369, 0xfffd, 0xfffd, 0xfffd, 0x95d2, 0x8ac9, 0xfffd, 0xfffd, 0x96c9, 0xfffd, 0xfffd, 0x88dc, 0xfffd, 0xfffd, 0xe36c, 0xfffd, 0x97fb, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe36b, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x898f, 0xfffd, 0xfffd, 0x93ea, 0xe36e, 0xfffd, 0xfffd, 0xfffd, 0xe375, 0xe36f, 0xe376, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe372, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x949b, 0xfffd, 0xfffd, 0x8ec8, 0xe374, 0xfffd, 0xe371, 0xe377, 0xe370, 0xfffd, 0xfffd, 0x8f63, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9644, 0xfffd, 0xfffd, 0x8f6b, 0xfffd, 0xfffd, 0xe373, 0xe380, 0xfffd, 0xfffd, 0xe37b, 0xfffd, 0xe37e, 0xfffd, 0xe37c, 0xe381, 0xe37a, 0xfffd, 0xe360, 0x90d1, 0xfffd, 0xfffd, 0x94c9, 0xfffd, 0xe37d, 0xfffd, 0xfffd, 0xe378, 0xfffd, 0xfffd, 0xfffd, 0x9140, 0x8c71, 0xfffd, 0x8f4a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9044, 0x9155, 0xe384, 0xfffd, 0xfffd, 0xe386, 0xe387, 0xfffd, 0xfffd, 0xe383, 0xe385, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe379, 0xe382, 0xfffd, 0xe38a, 0xe389, 0xfffd, 0xfffd, 0x969a, 0xfffd, 0xfffd, 0x8c4a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe388, 0xfffd, 0xe38c, 0xe38b, 0xe38f, 0xfffd, 0xe391, 0xfffd, 0xfffd, 0x8e5b, 0xe38d, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe392, 0xe393, 0xfffd, 0xfffd, 0xe394, 0xfffd, 0xe39a, 0x935a, 0xe396, 0xfffd, 0xe395, 0xe397, 0xe398, 0xfffd, 0xe399, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe39b, 0xe39c, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8aca, 0xfffd, 0xe39d, 0xfffd, 0xe39e, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe39f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe3a0, 0xe3a1, 0xe3a2, 0xfffd, 0xe3a3, 0xe3a4, 0xfffd, 0xfffd, 0xe3a6, 0xe3a5, 0xfffd, 0xfffd, 0xe3a7, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe3a8, 0xe3a9, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe3ac, 0xe3aa, 0xe3ab, 0x8ddf, 0x8c72, 0xfffd, 0xfffd, 0x9275, 0xfffd, 0x94b1, 0xfffd, 0x8f90, 0xfffd, 0xfffd, 0x946c, 0xfffd, 0x94eb, 0xe3ad, 0x9ceb, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe3ae, 0xe3b0, 0xfffd, 0x9785, 0xe3af, 0xe3b2, 0xe3b1, 0xfffd, 0x9772, 0xfffd, 0xe3b3, 0xfffd, 0x94fc, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe3b4, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe3b7, 0xfffd, 0xfffd, 0xe3b6, 0xe3b5, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe3b8, 0x8c51, 0xfffd, 0xfffd, 0xfffd, 0x9141, 0x8b60, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe3bc, 0xe3b9, 0xfffd, 0xfffd, 0xe3ba, 0xfffd, 0xfffd, 0xfffd, 0xe3bd, 0xfffd, 0xe3be, 0xe3bb, 0xfffd, 0xfffd, 0xfffd, 0x8948, 0xfffd, 0xfffd, 0xfffd, 0x89a5, 0xfffd, 0xfffd, 0xfffd, 0xe3c0, 0xe3c1, 0xfffd, 0xfffd, 0xfffd, 0xe3c2, 0xfffd, 0x9782, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8f4b, 0xfffd, 0xe3c4, 0xe3c3, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9089, 0xe3c5, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe3c6, 0xfffd, 0xfffd, 0xe3c7, 0xfffd, 0x8ae3, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8acb, 0xfffd, 0xfffd, 0xe3c8, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe3c9, 0xfffd, 0x967c, 0x9783, 0xfffd, 0xfffd, 0xfffd, 0x9773, 0x9856, 0xfffd, 0x8d6c, 0xe3cc, 0x8ed2, 0xe3cb, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe3cd, 0x8ea7, 0xfffd, 0xfffd, 0xfffd, 0x91cf, 0xfffd, 0xe3ce, 0xfffd, 0xfffd, 0x8d6b, 0xfffd, 0x96d5, 0xe3cf, 0xe3d0, 0xfffd, 0xfffd, 0xe3d1, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe3d2, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe3d3, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8ea8, 0xfffd, 0xfffd, 0x96eb, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe3d5, 0xfffd, 0x925e, 0xfffd, 0xe3d4, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe3d7, 0xfffd, 0xfffd, 0xfffd, 0xe3d6, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe3d8, 0xfffd, 0xfffd, 0xfffd, 0x90b9, 0xfffd, 0xe3d9, 0xfffd, 0xe3da, 0xfffd, 0xfffd, 0xfffd, 0x95b7, 0xe3db, 0xfffd, 0x918f, 0xe3dc, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe3dd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x97fc, 0xe3e0, 0xfffd, 0xe3df, 0xe3de, 0x92ae, 0xfffd, 0xe3e1, 0x9045, 0xfffd, 0xe3e2, 0xfffd, 0xfffd, 0xfffd, 0xe3e3, 0x9857, 0xe3e4, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe3e5, 0xe3e7, 0xe3e6, 0x94a3, 0xfffd, 0x93f7, 0xfffd, 0x985d, 0x94a7, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe3e9, 0xfffd, 0xfffd, 0x8fd1, 0xfffd, 0x9549, 0xfffd, 0xe3ea, 0xe3e8, 0xfffd, 0x8acc, 0xfffd, 0xfffd, 0xfffd, 0x8cd2, 0x8e88, 0xfffd, 0xfffd, 0x94ec, 0xfffd, 0xfffd, 0xfffd, 0x8ca8, 0x9662, 0xfffd, 0xe3ed, 0xe3eb, 0xfffd, 0x8d6d, 0xfffd, 0x8d6e, 0x88e7, 0xfffd, 0x8de6, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9478, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x88dd, 0xe3f2, 0xfffd, 0x925f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9477, 0xfffd, 0x91d9, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe3f4, 0xfffd, 0xfffd, 0xe3f0, 0xe3f3, 0xe3ee, 0xfffd, 0xe3f1, 0x9645, 0xfffd, 0xfffd, 0x8cd3, 0xfffd, 0xfffd, 0x88fb, 0xe3ef, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe3f6, 0xfffd, 0xe3f7, 0xfffd, 0xfffd, 0x93b7, 0xfffd, 0xfffd, 0xfffd, 0x8bb9, 0xfffd, 0xfffd, 0xfffd, 0xe445, 0x945c, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8e89, 0xfffd, 0xfffd, 0x8bba, 0x90c6, 0x9865, 0x96ac, 0xe3f5, 0x90d2, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8b72, 0xe3f8, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe3fa, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe3f9, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe3fb, 0xfffd, 0x9245, 0xfffd, 0x945d, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x92af, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe442, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe441, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe3fc, 0xfffd, 0xfffd, 0x9074, 0xfffd, 0x9585, 0xe444, 0xfffd, 0xe443, 0x8d6f, 0x9872, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe454, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe448, 0xe449, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8eee, 0xfffd, 0xfffd, 0xe447, 0xfffd, 0x8d98, 0xe446, 0xfffd, 0xfffd, 0xe44a, 0xfffd, 0xfffd, 0xfffd, 0x92b0, 0x95a0, 0x9142, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x91da, 0xe44e, 0xfffd, 0xe44f, 0xe44b, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe44c, 0xfffd, 0xe44d, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8d70, 0xfffd, 0xfffd, 0xfffd, 0xe455, 0xfffd, 0xe451, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9586, 0xfffd, 0x968c, 0x9547, 0xfffd, 0xfffd, 0xe450, 0xfffd, 0xfffd, 0xe453, 0xe452, 0xfffd, 0xfffd, 0xfffd, 0x9663, 0xe456, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe457, 0xfffd, 0xfffd, 0x9156, 0xfffd, 0xe458, 0xfffd, 0xfffd, 0xe45a, 0xfffd, 0xe45e, 0xfffd, 0xfffd, 0xe45b, 0xe459, 0x945e, 0xe45c, 0xfffd, 0xe45d, 0xfffd, 0xfffd, 0xfffd, 0x89b0, 0xfffd, 0xe464, 0xe45f, 0xfffd, 0xfffd, 0xfffd, 0xe460, 0xfffd, 0xfffd, 0xfffd, 0xe461, 0xfffd, 0x919f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe463, 0xe462, 0xe465, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe466, 0xe467, 0xfffd, 0xfffd, 0x9062, 0xfffd, 0x89e7, 0xfffd, 0xe468, 0x97d5, 0xfffd, 0x8ea9, 0xfffd, 0xfffd, 0x8f4c, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8e8a, 0x9276, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe469, 0xe46a, 0x8950, 0xfffd, 0xe46b, 0xfffd, 0xfffd, 0xe46c, 0xe46d, 0xfffd, 0xfffd, 0xe46e, 0xfffd, 0xe46f, 0x8bbb, 0x9da8, 0xe470, 0xfffd, 0x90e3, 0xe471, 0x8ec9, 0xfffd, 0xe472, 0xfffd, 0x98ae, 0xfffd, 0xfffd, 0xfffd, 0xe473, 0x95dc, 0x8ada, 0xfffd, 0xfffd, 0x9143, 0x8f77, 0xfffd, 0x9591, 0x8f4d, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe474, 0x8d71, 0xe475, 0x94ca, 0xfffd, 0xe484, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe477, 0xfffd, 0x91c7, 0x9495, 0x8cbd, 0xe476, 0x9144, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe478, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x92f8, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe47a, 0xe479, 0xe47c, 0xfffd, 0xfffd, 0xe47b, 0xfffd, 0xe47d, 0xfffd, 0xfffd, 0xe480, 0xfffd, 0xe47e, 0xfffd, 0x8acd, 0xfffd, 0xe481, 0xfffd, 0xe482, 0xe483, 0xfffd, 0xfffd, 0x8daf, 0x97c7, 0xfffd, 0xe485, 0x9046, 0xfffd, 0xfffd, 0xfffd, 0x8990, 0xe486, 0xe487, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe488, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x88f0, 0xfffd, 0xe489, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe48a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9587, 0xfffd, 0xfffd, 0xfffd, 0x8ec5, 0xfffd, 0xe48c, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8a48, 0x88b0, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe48b, 0xe48e, 0x946d, 0xfffd, 0x9063, 0xfffd, 0x89d4, 0xfffd, 0x9646, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8c7c, 0x8bda, 0xfffd, 0xe48d, 0xfffd, 0x89e8, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8aa1, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8991, 0xe492, 0x97e8, 0x91db, 0xfffd, 0xfffd, 0x9563, 0xfffd, 0xe49e, 0xfffd, 0x89d5, 0xe49c, 0xfffd, 0xe49a, 0xe491, 0xfffd, 0xe48f, 0xfffd, 0xe490, 0xfffd, 0x8ee1, 0x8bea, 0x9297, 0xfffd, 0xfffd, 0xfffd, 0x93cf, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8970, 0xfffd, 0xe494, 0xe493, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe499, 0xe495, 0xe498, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x96ce, 0xe497, 0x89d6, 0x8a9d, 0xe49b, 0xfffd, 0xfffd, 0xe49d, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8c73, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe4a1, 0xe4aa, 0xe4ab, 0xfffd, 0xfffd, 0xfffd, 0x88a9, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe4b2, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x88ef, 0xfffd, 0xfffd, 0xe4a9, 0xfffd, 0xfffd, 0xfffd, 0xe4a8, 0xfffd, 0xe4a3, 0xe4a2, 0xfffd, 0xe4a0, 0xe49f, 0x9283, 0xfffd, 0x91f9, 0xe4a5, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe4a4, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe4a7, 0xfffd, 0xfffd, 0xfffd, 0x9190, 0x8c74, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8960, 0xe4a6, 0xfffd, 0x8d72, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9191, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe4b8, 0xfffd, 0xe4b9, 0xfffd, 0x89d7, 0xfffd, 0xfffd, 0xfffd, 0x89ac, 0xe4b6, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe4ac, 0xfffd, 0xe4b4, 0xfffd, 0xe4bb, 0xe4b5, 0xfffd, 0xfffd, 0xfffd, 0xe4b3, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe496, 0xfffd, 0xfffd, 0xe4b1, 0xfffd, 0xfffd, 0xfffd, 0xe4ad, 0xfffd, 0xfffd, 0xfffd, 0x8ace, 0xe4af, 0xe4ba, 0xfffd, 0xe4b0, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe4bc, 0xfffd, 0xe4ae, 0x949c, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9789, 0xfffd, 0xfffd, 0xfffd, 0xe4b7, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe4cd, 0xfffd, 0xfffd, 0xfffd, 0xe4c5, 0xfffd, 0xfffd, 0xfffd, 0x909b, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8b65, 0xfffd, 0x8bdb, 0xfffd, 0xe4c0, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x89d9, 0xfffd, 0xfffd, 0x8fd2, 0xfffd, 0xe4c3, 0xfffd, 0xfffd, 0xfffd, 0x8dd8, 0xfffd, 0xfffd, 0x9370, 0xe4c8, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x95ec, 0xfffd, 0xe4bf, 0xfffd, 0xfffd, 0xfffd, 0x89d8, 0x8cd4, 0x9548, 0xe4c9, 0xfffd, 0xe4bd, 0xfffd, 0xfffd, 0xe4c6, 0xfffd, 0xfffd, 0xfffd, 0xe4d0, 0xfffd, 0xe4c1, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe4c2, 0x93b8, 0xfffd, 0xfffd, 0xe4c7, 0xfffd, 0xfffd, 0xfffd, 0xe4c4, 0x9647, 0xe4ca, 0x88de, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe4be, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe4cc, 0xfffd, 0xe4cb, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x948b, 0xe4d2, 0xfffd, 0xe4dd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8a9e, 0xfffd, 0xfffd, 0xfffd, 0xe4e0, 0xfffd, 0xfffd, 0xe4ce, 0xfffd, 0xfffd, 0xfffd, 0xe4d3, 0x978e, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe4dc, 0xfffd, 0xfffd, 0x9774, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x97a8, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9298, 0xfffd, 0xfffd, 0xfffd, 0x8a8b, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9592, 0xe4e2, 0x939f, 0xfffd, 0xfffd, 0x88af, 0xfffd, 0xfffd, 0xe4db, 0xfffd, 0xe4d7, 0x9192, 0xe4d1, 0xe4d9, 0xe4de, 0xfffd, 0x944b, 0xfffd, 0xfffd, 0xfffd, 0x88a8, 0xfffd, 0xe4d6, 0xfffd, 0xe4df, 0x9598, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe4da, 0xfffd, 0xe4d5, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8fd3, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8f4e, 0xfffd, 0xfffd, 0xfffd, 0x8eaa, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x96d6, 0xfffd, 0xfffd, 0x9566, 0xfffd, 0xfffd, 0xe4e5, 0xfffd, 0xe4ee, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe4d8, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8a97, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8ff6, 0xe4e3, 0xfffd, 0xe4e8, 0x9193, 0xfffd, 0xfffd, 0xe4e4, 0xfffd, 0xe4eb, 0xfffd, 0xfffd, 0x927e, 0xfffd, 0xe4ec, 0xfffd, 0xfffd, 0x9775, 0xe4e1, 0x8a57, 0xfffd, 0xe4e7, 0xfffd, 0xfffd, 0xe4ea, 0x96aa, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe4ed, 0xfffd, 0xfffd, 0xe4e6, 0xe4e9, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9648, 0xfffd, 0x9840, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe4f1, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe4f8, 0xfffd, 0xfffd, 0xe4f0, 0x8ec1, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe4cf, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x95cc, 0xfffd, 0x96a0, 0xe4f7, 0xe4f6, 0xfffd, 0xe4f2, 0xe4f3, 0xfffd, 0x8955, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe4f5, 0xfffd, 0xe4ef, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x92d3, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe4f4, 0x88fc, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x91a0, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x95c1, 0xfffd, 0xfffd, 0xe4f9, 0xe540, 0xfffd, 0x94d7, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe4fc, 0x8fd4, 0x8ec7, 0xe542, 0xfffd, 0xfffd, 0x8bbc, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe543, 0xfffd, 0x9599, 0xe4fb, 0xfffd, 0xe4d4, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe4fa, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x986e, 0x93a0, 0x9593, 0xfffd, 0xfffd, 0xe54a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe550, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe551, 0xfffd, 0xe544, 0xfffd, 0xfffd, 0xfffd, 0x9496, 0xfffd, 0xfffd, 0xe54e, 0xe546, 0xfffd, 0xe548, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe552, 0xe547, 0xfffd, 0xfffd, 0xe54b, 0xfffd, 0xfffd, 0x8992, 0xfffd, 0x93e3, 0xfffd, 0xe54c, 0xe54f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe545, 0xfffd, 0x9145, 0xfffd, 0xe549, 0x8e46, 0x9064, 0x8c4f, 0x96f2, 0xfffd, 0x96f7, 0x8f92, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe556, 0xe554, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x986d, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe553, 0xfffd, 0xfffd, 0xfffd, 0x9795, 0xfffd, 0xe555, 0xe557, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe558, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe55b, 0xe559, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x93a1, 0xe55a, 0xfffd, 0xfffd, 0xfffd, 0x94cb, 0xe54d, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8f93, 0xfffd, 0xe55c, 0xe561, 0x9194, 0xfffd, 0xfffd, 0xe560, 0xfffd, 0xfffd, 0xfffd, 0xe541, 0xfffd, 0xfffd, 0xfffd, 0xe562, 0x9168, 0xfffd, 0xfffd, 0xe55d, 0xe55f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe55e, 0xfffd, 0xfffd, 0x9f50, 0x9f41, 0xfffd, 0xfffd, 0xe564, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe563, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9796, 0xfffd, 0xe1ba, 0xe565, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe566, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe567, 0x8cd5, 0xfffd, 0x8b73, 0xfffd, 0xfffd, 0xfffd, 0xe569, 0x997c, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8b95, 0xfffd, 0x97b8, 0xfffd, 0x8bf1, 0xe56a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe56b, 0xfffd, 0xfffd, 0xfffd, 0x928e, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe56c, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x93f8, 0xfffd, 0x88b8, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x89e1, 0xe571, 0xe572, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe56d, 0xfffd, 0x8e5c, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe56e, 0x9461, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe56f, 0xe570, 0xe57a, 0xfffd, 0xfffd, 0xfffd, 0xe574, 0xe577, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe573, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe575, 0xfffd, 0xe576, 0x8ed6, 0xfffd, 0xe578, 0xfffd, 0x9260, 0xfffd, 0x8c75, 0x8a61, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe57b, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8a5e, 0xfffd, 0xe581, 0xfffd, 0xfffd, 0xe57c, 0xe580, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x94b8, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe57d, 0xfffd, 0xfffd, 0xe57e, 0x9567, 0x94d8, 0xe582, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x91fb, 0xe58c, 0xfffd, 0xe588, 0xfffd, 0xfffd, 0x89e9, 0xfffd, 0xe586, 0xfffd, 0x9649, 0xe587, 0xfffd, 0xfffd, 0xe584, 0xfffd, 0xe585, 0xe58a, 0xe58d, 0xfffd, 0xfffd, 0xe58b, 0xfffd, 0xfffd, 0xfffd, 0xe589, 0xe583, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9277, 0xfffd, 0xe594, 0xfffd, 0x96a8, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe592, 0xfffd, 0xfffd, 0xfffd, 0xe593, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe58e, 0xfffd, 0xfffd, 0xe590, 0xfffd, 0xfffd, 0xfffd, 0xe591, 0xfffd, 0xfffd, 0xfffd, 0xe58f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x90e4, 0xfffd, 0x9858, 0xe598, 0xfffd, 0xe599, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe59f, 0xfffd, 0x9049, 0xfffd, 0xe59b, 0xfffd, 0xe59e, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe596, 0xe595, 0xfffd, 0xfffd, 0xe5a0, 0xfffd, 0xfffd, 0x89da, 0xfffd, 0xe59c, 0xfffd, 0xe5a1, 0xfffd, 0xfffd, 0xfffd, 0xe59d, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe59a, 0xfffd, 0x92b1, 0xfffd, 0xe597, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9488, 0xfffd, 0xfffd, 0xe5a5, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x975a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe5a4, 0xfffd, 0xfffd, 0xe5a3, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe5ac, 0xfffd, 0xfffd, 0xfffd, 0xe5a6, 0xfffd, 0xfffd, 0xfffd, 0xe5ae, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9786, 0xe5b1, 0xfffd, 0xe5a8, 0xfffd, 0xfffd, 0xe5a9, 0xfffd, 0xfffd, 0xfffd, 0xe5ad, 0xfffd, 0xe5b0, 0xe5af, 0xfffd, 0xfffd, 0xfffd, 0xe5a7, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe5aa, 0xfffd, 0xe5bb, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe5b4, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe5b2, 0xfffd, 0xfffd, 0xe5b3, 0xfffd, 0xfffd, 0xfffd, 0xe5b8, 0xe5b9, 0xfffd, 0x8a49, 0xfffd, 0x8b61, 0xfffd, 0xfffd, 0xe5b7, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe5a2, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe5b6, 0xe5ba, 0xe5b5, 0xfffd, 0xe5bc, 0xfffd, 0xfffd, 0xfffd, 0xe5be, 0xe5bd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe5c0, 0xe5bf, 0xe579, 0xfffd, 0xfffd, 0xfffd, 0xe5c4, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe5c1, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe5c2, 0xfffd, 0xfffd, 0xe5c3, 0xfffd, 0xe5c5, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8c8c, 0xfffd, 0xe5c7, 0xfffd, 0xe5c6, 0xfffd, 0x8f4f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8d73, 0x9fa5, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe5c8, 0x8f70, 0xfffd, 0xfffd, 0xfffd, 0x8a58, 0xfffd, 0xe5c9, 0xfffd, 0x8971, 0xfffd, 0x8fd5, 0xe5ca, 0xfffd, 0xfffd, 0x8d74, 0xe5cb, 0x88df, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x955c, 0xfffd, 0xfffd, 0xe5cc, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x908a, 0xfffd, 0xe5d3, 0xfffd, 0xfffd, 0xe5d0, 0xfffd, 0x928f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe5d1, 0xe5ce, 0x8bdc, 0xfffd, 0xe5cd, 0xe5d4, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8c55, 0xfffd, 0xfffd, 0x91dc, 0xfffd, 0xe5da, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe5d6, 0xfffd, 0xfffd, 0xfffd, 0x91b3, 0xe5d5, 0xfffd, 0xe5d8, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe5cf, 0xfffd, 0xfffd, 0xfffd, 0xe5d9, 0xfffd, 0xe5db, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x94ed, 0xfffd, 0xfffd, 0xe5d7, 0xfffd, 0xe5dc, 0xe5de, 0xfffd, 0xfffd, 0x8cd1, 0xe5d2, 0xfffd, 0x88bf, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe5dd, 0xfffd, 0x8dd9, 0x97f4, 0xe5df, 0xe5e0, 0x9195, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x97a0, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe5e1, 0x9754, 0xfffd, 0xfffd, 0xe5e2, 0xe5e3, 0xfffd, 0xfffd, 0x95e2, 0xe5e4, 0xfffd, 0x8dbe, 0xfffd, 0x97a1, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe5e9, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe5ea, 0x8fd6, 0xe5e8, 0xfffd, 0xfffd, 0xfffd, 0x9787, 0xe5e5, 0xfffd, 0xfffd, 0xe5e7, 0x90bb, 0x909e, 0xfffd, 0xfffd, 0xfffd, 0xe5e6, 0xfffd, 0xe5eb, 0xfffd, 0xfffd, 0x95a1, 0xfffd, 0xfffd, 0xe5ed, 0xfffd, 0xe5ec, 0xfffd, 0xfffd, 0xfffd, 0x8a8c, 0xfffd, 0x964a, 0xe5ee, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe5fa, 0xe5f0, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe5f1, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe5f2, 0xe5f3, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe5f7, 0xfffd, 0xe5f8, 0xfffd, 0xfffd, 0xe5f6, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe5f4, 0xfffd, 0xe5ef, 0xe5f5, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe5f9, 0xe8b5, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x89a6, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe5fc, 0x8bdd, 0xe5fb, 0xfffd, 0xfffd, 0xfffd, 0xe641, 0xfffd, 0xe640, 0xfffd, 0xfffd, 0xfffd, 0xe643, 0xfffd, 0xfffd, 0xe642, 0xfffd, 0xe644, 0xfffd, 0xfffd, 0x8f50, 0xfffd, 0xe645, 0xfffd, 0xfffd, 0xe646, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe647, 0x90bc, 0xfffd, 0x9776, 0xfffd, 0xe648, 0xfffd, 0xfffd, 0x95a2, 0x9465, 0xe649, 0xfffd, 0xe64a, 0x8ca9, 0xfffd, 0xfffd, 0xfffd, 0x8b4b, 0xfffd, 0xfffd, 0xfffd, 0xe64b, 0xfffd, 0xfffd, 0x8e8b, 0x9460, 0xe64c, 0xfffd, 0x8a6f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe64d, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe64f, 0x9797, 0xfffd, 0xe64e, 0x9065, 0xfffd, 0xe650, 0xfffd, 0xfffd, 0xe651, 0xfffd, 0xfffd, 0xe652, 0x8acf, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe653, 0xfffd, 0xfffd, 0xe654, 0xfffd, 0xe655, 0xe656, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8a70, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe657, 0xfffd, 0xe658, 0xe659, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x89f0, 0xfffd, 0xfffd, 0x9047, 0xe65a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe65b, 0xfffd, 0xfffd, 0xfffd, 0xe65c, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8cbe, 0xfffd, 0x92f9, 0xe65d, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8c76, 0xfffd, 0x9075, 0xfffd, 0xe660, 0xfffd, 0x93a2, 0xfffd, 0xe65f, 0xfffd, 0xfffd, 0x8c50, 0xfffd, 0xfffd, 0xe65e, 0x91f5, 0x8b4c, 0xfffd, 0xfffd, 0xe661, 0xfffd, 0xe662, 0xfffd, 0x8fd7, 0xfffd, 0xfffd, 0xfffd, 0x8c8d, 0xfffd, 0xe663, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x964b, 0xfffd, 0xfffd, 0x90dd, 0xfffd, 0xfffd, 0xfffd, 0x8b96, 0xfffd, 0x96f3, 0x9169, 0xfffd, 0xe664, 0xfffd, 0xfffd, 0xfffd, 0x9066, 0x9290, 0x8fd8, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe665, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe668, 0xfffd, 0xe669, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8dbc, 0x91c0, 0xe667, 0xfffd, 0x8fd9, 0x955d, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe666, 0xfffd, 0xfffd, 0x8e8c, 0xfffd, 0x8972, 0xfffd, 0xe66d, 0x8c77, 0xfffd, 0xfffd, 0x8e8e, 0xfffd, 0xfffd, 0x8e8d, 0xfffd, 0x986c, 0xe66c, 0xe66b, 0x9146, 0xfffd, 0x8b6c, 0x9862, 0x8a59, 0x8fda, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe66a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe66f, 0xfffd, 0xe670, 0xe66e, 0xfffd, 0x8cd6, 0xfffd, 0x975f, 0xfffd, 0xfffd, 0x8e8f, 0x9446, 0xfffd, 0xfffd, 0xfffd, 0xe673, 0xfffd, 0x90be, 0xfffd, 0x9261, 0xfffd, 0xfffd, 0x9755, 0xfffd, 0xe676, 0xfffd, 0xfffd, 0xfffd, 0x8cea, 0xfffd, 0x90bd, 0xe672, 0xfffd, 0xe677, 0x8ceb, 0xe674, 0xe675, 0xfffd, 0xe671, 0xfffd, 0xfffd, 0xfffd, 0x90e0, 0x93c7, 0xfffd, 0xfffd, 0x924e, 0xfffd, 0x89db, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x94ee, 0xfffd, 0xfffd, 0x8b62, 0xfffd, 0xfffd, 0x92b2, 0xfffd, 0xfffd, 0xe67a, 0xfffd, 0xe678, 0xfffd, 0xfffd, 0x926b, 0xfffd, 0xfffd, 0xfffd, 0x90bf, 0x8ad0, 0xe679, 0xfffd, 0x907a, 0xfffd, 0xfffd, 0x97c8, 0xfffd, 0xfffd, 0xfffd, 0x985f, 0xfffd, 0xfffd, 0xfffd, 0xe67b, 0xe687, 0x92b3, 0xfffd, 0xe686, 0xfffd, 0xe683, 0xe68b, 0xe684, 0xfffd, 0xe680, 0xfffd, 0x92fa, 0xe67e, 0xfffd, 0xfffd, 0xfffd, 0xe67c, 0xfffd, 0x9740, 0x8e90, 0xfffd, 0xfffd, 0xe681, 0xfffd, 0xe67d, 0xfffd, 0xfffd, 0xfffd, 0xe685, 0x8f94, 0xfffd, 0x8cbf, 0xfffd, 0xfffd, 0xfffd, 0x91f8, 0xfffd, 0x9664, 0x8979, 0x88e0, 0xfffd, 0x93a3, 0xfffd, 0xfffd, 0xe689, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe688, 0xfffd, 0x93e4, 0xfffd, 0xe68d, 0xfffd, 0xfffd, 0xfffd, 0xe682, 0xfffd, 0xe68c, 0xe68e, 0xfffd, 0x8caa, 0xe68a, 0x8d75, 0xfffd, 0x8ed3, 0xfffd, 0xfffd, 0xe68f, 0x9777, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe692, 0xfffd, 0xe695, 0xfffd, 0xfffd, 0xe693, 0x9554, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe690, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8bde, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe694, 0xfffd, 0xfffd, 0xe696, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe69a, 0xfffd, 0xfffd, 0xe697, 0xfffd, 0xe699, 0xe698, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe69b, 0xfffd, 0x8eaf, 0xfffd, 0xe69d, 0xe69c, 0x9588, 0xfffd, 0xfffd, 0xe69f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8c78, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe69e, 0xe6a0, 0xfffd, 0xfffd, 0xe6a1, 0x8b63, 0xe3bf, 0x8ff7, 0xfffd, 0xe6a2, 0xfffd, 0xfffd, 0x8cec, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe6a3, 0xfffd, 0xfffd, 0xe6a4, 0xfffd, 0xfffd, 0x8e5d, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9dcc, 0xfffd, 0xe6a5, 0xfffd, 0xe6a6, 0xfffd, 0x8f51, 0xfffd, 0xe6a7, 0xe6a8, 0xfffd, 0xfffd, 0xe6a9, 0xfffd, 0xfffd, 0xe6aa, 0xe6ab, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x924a, 0xfffd, 0xfffd, 0xe6ac, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe6ae, 0xfffd, 0xe6ad, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x93a4, 0xfffd, 0xe6af, 0xfffd, 0x964c, 0xfffd, 0xe6b0, 0xfffd, 0xe6b1, 0xfffd, 0xe6b2, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe6b3, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x93d8, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8fdb, 0xe6b4, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8d8b, 0x98ac, 0xe6b5, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe6b6, 0x955e, 0xe6b7, 0xfffd, 0xe6bf, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe6b8, 0xfffd, 0xfffd, 0xe6ba, 0xfffd, 0xfffd, 0xfffd, 0xe6b9, 0xe6bb, 0xfffd, 0x9665, 0xe6bc, 0xe6bd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe6be, 0xfffd, 0xfffd, 0xfffd, 0xe6c0, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8a4c, 0x92e5, 0xfffd, 0x9589, 0x8de0, 0x8d76, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x956e, 0x89dd, 0x94cc, 0xe6c3, 0x8ad1, 0x90d3, 0xe6c2, 0xe6c7, 0x9299, 0x96e1, 0xfffd, 0xe6c5, 0xe6c6, 0x8b4d, 0xfffd, 0xe6c8, 0x9483, 0x91dd, 0xfffd, 0xfffd, 0x94ef, 0x935c, 0xe6c4, 0xfffd, 0x9666, 0x89ea, 0xe6ca, 0x9847, 0x92c0, 0x9864, 0xfffd, 0xfffd, 0x8e91, 0xe6c9, 0xfffd, 0x91af, 0xfffd, 0xfffd, 0xe6da, 0x9147, 0xfffd, 0xfffd, 0x93f6, 0xfffd, 0x956f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe6cd, 0x8e5e, 0x8e92, 0xfffd, 0x8fdc, 0xfffd, 0x9485, 0xfffd, 0x8cab, 0xe6cc, 0xe6cb, 0xfffd, 0x958a, 0xfffd, 0xfffd, 0xfffd, 0x8ebf, 0xfffd, 0xfffd, 0x9371, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe6cf, 0xe6d0, 0x8d77, 0xe6ce, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe6d1, 0xe6d2, 0xfffd, 0xe6d4, 0x91a1, 0xfffd, 0xe6d3, 0x8ae4, 0xfffd, 0xe6d6, 0xfffd, 0xe6d5, 0xe6d7, 0xfffd, 0xfffd, 0xe6d9, 0xe6db, 0xfffd, 0xe6dc, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x90d4, 0xfffd, 0x8ecd, 0xe6dd, 0xfffd, 0xfffd, 0xfffd, 0x8a71, 0xfffd, 0xe6de, 0xfffd, 0xfffd, 0x9196, 0xe6df, 0xfffd, 0xe6e0, 0x958b, 0xfffd, 0xfffd, 0x8b4e, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe6e1, 0xfffd, 0xfffd, 0xfffd, 0x92b4, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x897a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe6e2, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8eef, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9096, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x91ab, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe6e5, 0xfffd, 0xfffd, 0xfffd, 0xe6e4, 0xfffd, 0xfffd, 0xfffd, 0xe6e3, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe6eb, 0xe6e9, 0xfffd, 0xfffd, 0xe6e6, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe6e8, 0xfffd, 0xfffd, 0xfffd, 0xe6e7, 0xe6ea, 0xfffd, 0x8b97, 0xfffd, 0xe6ee, 0xfffd, 0x90d5, 0xfffd, 0xe6ef, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8cd7, 0xfffd, 0xe6ec, 0xe6ed, 0xfffd, 0xfffd, 0xfffd, 0x9848, 0xfffd, 0xfffd, 0xfffd, 0x92b5, 0xfffd, 0x9148, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe6f0, 0xfffd, 0xfffd, 0xe6f3, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe6f1, 0xe6f2, 0x9778, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x93a5, 0xe6f6, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe6f4, 0xe6f5, 0xe6f7, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe748, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe6fa, 0xfffd, 0xfffd, 0xfffd, 0xe6fb, 0xe6f9, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe6f8, 0xfffd, 0x92fb, 0xfffd, 0xfffd, 0xe740, 0xe744, 0xe741, 0xe6fc, 0xfffd, 0xe742, 0xfffd, 0xfffd, 0xfffd, 0xe743, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe74a, 0xfffd, 0xfffd, 0xfffd, 0xe745, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x90d6, 0xe747, 0xfffd, 0xfffd, 0xe749, 0xe746, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe74c, 0xfffd, 0x8f52, 0xfffd, 0xe74b, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe74d, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe74e, 0xfffd, 0xfffd, 0xe751, 0xe750, 0xfffd, 0xe74f, 0xfffd, 0xfffd, 0xe753, 0xe752, 0xfffd, 0x96f4, 0xfffd, 0xfffd, 0xfffd, 0xe755, 0xfffd, 0xe754, 0xe756, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe757, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe759, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe758, 0x9067, 0xe75a, 0xfffd, 0xfffd, 0x8beb, 0xe75b, 0xe75d, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe75e, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe75f, 0xe75c, 0xfffd, 0xe760, 0xfffd, 0x8ed4, 0xe761, 0x8b4f, 0x8c52, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8cac, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe762, 0xfffd, 0xfffd, 0xfffd, 0x93ee, 0xfffd, 0xfffd, 0x935d, 0xe763, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe766, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8eb2, 0xfffd, 0xfffd, 0xe765, 0xe764, 0x8c79, 0xe767, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8a72, 0xfffd, 0xe769, 0xfffd, 0xfffd, 0xfffd, 0x8dda, 0xe768, 0xfffd, 0xe771, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe76b, 0xe76d, 0x95e3, 0xe76a, 0xfffd, 0xfffd, 0xfffd, 0xe76c, 0xfffd, 0xe770, 0xe76e, 0x8b50, 0xfffd, 0xe76f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe772, 0xfffd, 0xfffd, 0x9479, 0x97d6, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8f53, 0xfffd, 0xfffd, 0xfffd, 0xe773, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9741, 0xe775, 0xfffd, 0xe774, 0xfffd, 0xfffd, 0xe778, 0x9760, 0xfffd, 0xfffd, 0xe777, 0xfffd, 0x8a8d, 0xe776, 0xe77b, 0xfffd, 0xfffd, 0xe77a, 0xfffd, 0xfffd, 0xe779, 0x9351, 0xe77c, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe77d, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe77e, 0xfffd, 0xfffd, 0x8d8c, 0xfffd, 0x8c44, 0xe780, 0xe781, 0xe782, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9068, 0xe783, 0xfffd, 0x8eab, 0xe784, 0xfffd, 0xfffd, 0xfffd, 0xe785, 0xfffd, 0xfffd, 0xfffd, 0x999f, 0x999e, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe786, 0xe390, 0xe787, 0x9243, 0x904a, 0x945f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe788, 0xfffd, 0xfffd, 0x95d3, 0x92d2, 0x8d9e, 0xfffd, 0xfffd, 0x9248, 0xfffd, 0xfffd, 0x8949, 0xfffd, 0x9698, 0x9076, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8c7d, 0xfffd, 0xfffd, 0x8bdf, 0xfffd, 0xfffd, 0x95d4, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe789, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe78b, 0xfffd, 0xfffd, 0xe78a, 0x89de, 0xfffd, 0xfffd, 0x93f4, 0xe78c, 0x9497, 0xfffd, 0x9352, 0xfffd, 0xe78d, 0x8f71, 0xfffd, 0xfffd, 0xfffd, 0xe78f, 0xfffd, 0xfffd, 0x96c0, 0xe79e, 0xe791, 0xe792, 0xfffd, 0xfffd, 0x92c7, 0xfffd, 0xfffd, 0x91de, 0x9197, 0xfffd, 0x93a6, 0xfffd, 0xe790, 0x8b74, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe799, 0xfffd, 0xe796, 0xe7a3, 0x93a7, 0x9280, 0xe793, 0xfffd, 0x92fc, 0x9372, 0xe794, 0xe798, 0x9080, 0xfffd, 0x9487, 0x92ca, 0xfffd, 0xfffd, 0x90c0, 0xe797, 0x91ac, 0x91a2, 0xe795, 0x88a7, 0x9841, 0xfffd, 0xfffd, 0xfffd, 0xe79a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x91df, 0xfffd, 0xfffd, 0x8f54, 0x9069, 0xfffd, 0xfffd, 0xe79c, 0xe79b, 0xfffd, 0x88ed, 0xe79d, 0xfffd, 0xfffd, 0x954e, 0xfffd, 0xe7a5, 0xfffd, 0xfffd, 0x93d9, 0x908b, 0xfffd, 0xfffd, 0x9278, 0xfffd, 0x8bf6, 0xfffd, 0xe7a4, 0x9756, 0x895e, 0xfffd, 0x95d5, 0x89df, 0xe79f, 0xe7a0, 0xe7a1, 0xe7a2, 0x93b9, 0x9242, 0x88e1, 0xe7a6, 0xfffd, 0xe7a7, 0xeaa1, 0xfffd, 0xfffd, 0x91bb, 0xfffd, 0xe7a8, 0xfffd, 0x8993, 0x916b, 0xfffd, 0x8cad, 0xfffd, 0x9779, 0xfffd, 0xfffd, 0xe7a9, 0x934b, 0xfffd, 0xfffd, 0xfffd, 0x9198, 0x8ed5, 0xe7aa, 0xfffd, 0xfffd, 0xe7ad, 0xfffd, 0xfffd, 0x8f85, 0xe7ab, 0x914a, 0x9149, 0xfffd, 0x88e2, 0xfffd, 0x97c9, 0xe7af, 0xfffd, 0x94f0, 0xe7b1, 0xe7b0, 0xe7ae, 0xe284, 0x8ad2, 0xfffd, 0xfffd, 0xe78e, 0xfffd, 0xe7b3, 0xe7b2, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe7b4, 0xfffd, 0x9757, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x93df, 0xfffd, 0xfffd, 0x964d, 0xfffd, 0xe7b5, 0xfffd, 0x8ed7, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe7b6, 0xfffd, 0xe7b7, 0xfffd, 0xfffd, 0xfffd, 0xe7b8, 0xfffd, 0xfffd, 0x9340, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x88e8, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8d78, 0xfffd, 0xfffd, 0xfffd, 0x9859, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe7bc, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8c53, 0xe7b9, 0xfffd, 0xe7ba, 0xfffd, 0xfffd, 0xfffd, 0x9594, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8a73, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9758, 0xfffd, 0x8bbd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9373, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe7bd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe7be, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe7bf, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9341, 0xfffd, 0xfffd, 0xe7c1, 0xfffd, 0xe7c0, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x93d1, 0xe7c2, 0x8f55, 0x8ede, 0x947a, 0x9291, 0xfffd, 0xfffd, 0xfffd, 0x8ef0, 0xfffd, 0x908c, 0xfffd, 0xe7c3, 0xfffd, 0xe7c4, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x907c, 0xe7c5, 0xfffd, 0xe7c6, 0xfffd, 0xfffd, 0xfffd, 0xe7c7, 0x978f, 0xfffd, 0x8f56, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe7c9, 0xe7c8, 0xfffd, 0x8d79, 0xfffd, 0x8d93, 0x8e5f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe7cc, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8f86, 0xfffd, 0xe7cb, 0xfffd, 0xe7ca, 0xfffd, 0x91e7, 0xfffd, 0xfffd, 0x8ced, 0xfffd, 0x90c1, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x94ae, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8f58, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe7cd, 0xfffd, 0x8fdd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe7d0, 0xe7ce, 0xfffd, 0xfffd, 0xfffd, 0xe7cf, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe7d2, 0xe7d1, 0xfffd, 0xfffd, 0x8ff8, 0xfffd, 0xe7d3, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe7d4, 0xe7d5, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x94ce, 0x8dd1, 0x8edf, 0xe7d6, 0xfffd, 0xe7d7, 0x97a2, 0x8f64, 0x96ec, 0x97ca, 0xe7d8, 0x8be0, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe7d9, 0xfffd, 0x9342, 0xfffd, 0xfffd, 0xe7dc, 0x8a98, 0x906a, 0xfffd, 0xe7da, 0xfffd, 0xe7db, 0xfffd, 0x92de, 0xfffd, 0xfffd, 0x9674, 0x8bfa, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe7de, 0xe7df, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe7dd, 0xfffd, 0xfffd, 0xe7e1, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x93dd, 0x8a62, 0xfffd, 0xfffd, 0xe7e5, 0xfffd, 0xfffd, 0xe7e2, 0xe7e4, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe7e0, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe86e, 0xfffd, 0xfffd, 0xe7e3, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x97e9, 0xfffd, 0xfffd, 0x8cd8, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe7ed, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9353, 0xe7e8, 0xfffd, 0xfffd, 0xe7eb, 0xe7e9, 0xfffd, 0xe7ee, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe7ef, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe7e7, 0xfffd, 0xfffd, 0xe7f4, 0x8994, 0xfffd, 0xfffd, 0xe7e6, 0xfffd, 0xfffd, 0xfffd, 0x94ab, 0xfffd, 0xe7ea, 0xfffd, 0x8fde, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8d7a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9667, 0xfffd, 0x8be2, 0xfffd, 0xfffd, 0x8f65, 0xfffd, 0x93ba, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x914c, 0xfffd, 0xe7f2, 0xfffd, 0xe7ec, 0xe7f1, 0xfffd, 0x96c1, 0xfffd, 0x92b6, 0xe7f3, 0xe7f0, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x914b, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe7f7, 0xfffd, 0xe7f6, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe7f5, 0xfffd, 0xfffd, 0x964e, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8f9b, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe7f8, 0x95dd, 0xfffd, 0xfffd, 0x8973, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9565, 0x9292, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8b98, 0xfffd, 0xe7fa, 0xfffd, 0x8d7c, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8e4b, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe7f9, 0x908d, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x908e, 0xe840, 0xe842, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8ff9, 0xfffd, 0xe841, 0xe843, 0xfffd, 0xfffd, 0x8bd1, 0xfffd, 0x9564, 0xfffd, 0xfffd, 0x8ee0, 0x9842, 0xfffd, 0xe7fc, 0x8df6, 0xfffd, 0xfffd, 0x985e, 0xfffd, 0xfffd, 0xe845, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe844, 0xe846, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe7fb, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x93e7, 0xfffd, 0x9374, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x92d5, 0xfffd, 0xe84b, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9262, 0xe847, 0xfffd, 0xfffd, 0xfffd, 0xe848, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8c4c, 0xfffd, 0xe84a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8cae, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe849, 0xfffd, 0x8fdf, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8a99, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe84f, 0xfffd, 0x8dbd, 0x9199, 0xfffd, 0xfffd, 0x92c8, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8a5a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe84d, 0xe84e, 0x92c1, 0xfffd, 0xe84c, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe850, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe856, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe859, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe858, 0x934c, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe851, 0xe852, 0xe855, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe857, 0xfffd, 0xfffd, 0xfffd, 0x8bbe, 0xfffd, 0xfffd, 0xe85a, 0xe854, 0xfffd, 0xfffd, 0xe853, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe85e, 0xfffd, 0xfffd, 0xfffd, 0xe85f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe860, 0xfffd, 0xfffd, 0xe85d, 0xe85c, 0xfffd, 0xfffd, 0xfffd, 0x8fe0, 0x93a8, 0xe85b, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe864, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe862, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe863, 0xe861, 0xfffd, 0x91f6, 0xfffd, 0xe865, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe866, 0xfffd, 0xfffd, 0xe868, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8ad3, 0xe867, 0x96f8, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe873, 0xe869, 0xfffd, 0xfffd, 0xe86c, 0xfffd, 0xe86a, 0xfffd, 0xe86b, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe86d, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe86f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe870, 0xfffd, 0xe871, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe874, 0xe872, 0xe875, 0xe877, 0xfffd, 0xe876, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x92b7, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x96e5, 0xfffd, 0xe878, 0x914d, 0xfffd, 0xfffd, 0xfffd, 0xe879, 0xfffd, 0x95c2, 0xe87a, 0x8a4a, 0xfffd, 0xfffd, 0xfffd, 0x895b, 0xfffd, 0x8ad5, 0xfffd, 0x8ad4, 0xe87b, 0xfffd, 0xe87c, 0xfffd, 0xe87d, 0xe87e, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe880, 0xfffd, 0x8ad6, 0x8a74, 0x8d7d, 0x94b4, 0xfffd, 0xe882, 0xe881, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe883, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x897b, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe886, 0xfffd, 0xe885, 0xe884, 0xfffd, 0xe887, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe88a, 0xfffd, 0xfffd, 0xfffd, 0x88c5, 0xfffd, 0xfffd, 0xe888, 0xfffd, 0xe88c, 0xe88b, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe88e, 0xe88d, 0xe88f, 0xfffd, 0x93ac, 0xfffd, 0xfffd, 0xfffd, 0xe890, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe891, 0xe893, 0xfffd, 0xfffd, 0xe892, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x958c, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe894, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe895, 0xfffd, 0x8de3, 0xfffd, 0xfffd, 0xfffd, 0xe896, 0xe897, 0xfffd, 0xfffd, 0x9668, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x916a, 0xfffd, 0xfffd, 0xfffd, 0x88a2, 0x91c9, 0xfffd, 0xe898, 0xfffd, 0x958d, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe89b, 0xe899, 0x8d7e, 0xfffd, 0xe89a, 0x8cc0, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x95c3, 0xe89d, 0xe89f, 0xe89e, 0xe8a0, 0xfffd, 0xfffd, 0x8940, 0x9077, 0x8f9c, 0x8ad7, 0xe8a1, 0xfffd, 0xfffd, 0xfffd, 0x9486, 0xfffd, 0xe8a3, 0xfffd, 0xfffd, 0xfffd, 0x8941, 0xfffd, 0xe8a2, 0x92c2, 0xfffd, 0x97cb, 0x93a9, 0xe89c, 0x97a4, 0xfffd, 0x8caf, 0xfffd, 0xfffd, 0x977a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8bf7, 0x97b2, 0xfffd, 0x8c47, 0xfffd, 0x91e0, 0xe440, 0xfffd, 0xe8a4, 0x8a4b, 0x908f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8a75, 0xe8a6, 0xfffd, 0xe8a7, 0xe8a5, 0x8c84, 0xfffd, 0x8ddb, 0x8fe1, 0xfffd, 0xfffd, 0xfffd, 0x8942, 0xfffd, 0xfffd, 0x97d7, 0xfffd, 0xfffd, 0xfffd, 0xe8a9, 0xe7ac, 0xfffd, 0xe8a8, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe8ac, 0xe8aa, 0xe8ab, 0xfffd, 0xe8ad, 0xfffd, 0xe8ae, 0x97ea, 0xe8af, 0xe8b0, 0xfffd, 0x90c7, 0x94b9, 0xfffd, 0xfffd, 0xfffd, 0x909d, 0x8ae5, 0xfffd, 0xfffd, 0x9759, 0x89eb, 0x8f57, 0x8cd9, 0xfffd, 0xe8b3, 0xfffd, 0xe8b2, 0x8e93, 0xe8b4, 0xe8b1, 0xfffd, 0xfffd, 0x8e47, 0xfffd, 0xfffd, 0xfffd, 0xe8b8, 0xe5ab, 0xfffd, 0xfffd, 0x99d4, 0xfffd, 0x9097, 0xe8b6, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x97a3, 0x93ef, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x894a, 0xfffd, 0x90e1, 0x8eb4, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x95b5, 0xfffd, 0x895f, 0xfffd, 0xfffd, 0xfffd, 0x97eb, 0x978b, 0xfffd, 0xe8b9, 0xfffd, 0x9364, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8ef9, 0xfffd, 0xfffd, 0xfffd, 0xe8ba, 0xfffd, 0xe8bb, 0x906b, 0xe8bc, 0xfffd, 0x97ec, 0xfffd, 0xfffd, 0xe8b7, 0xe8be, 0xe8c0, 0xfffd, 0xe8bf, 0xfffd, 0xe8bd, 0xfffd, 0xfffd, 0xe8c1, 0xfffd, 0xfffd, 0xe8c2, 0xfffd, 0xfffd, 0x919a, 0xfffd, 0x89e0, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe8c3, 0xfffd, 0xfffd, 0x96b6, 0xfffd, 0xfffd, 0xe8c4, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe8c5, 0xfffd, 0x9849, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9e50, 0xe8c6, 0xfffd, 0xfffd, 0xfffd, 0xe8c7, 0xe8c8, 0xfffd, 0xfffd, 0xfffd, 0xe8cc, 0xfffd, 0xe8c9, 0xfffd, 0xe8ca, 0xfffd, 0xe8cb, 0xe8cd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x90c2, 0xfffd, 0xfffd, 0xfffd, 0x96f5, 0xfffd, 0xfffd, 0x90c3, 0xfffd, 0xfffd, 0xe8ce, 0xfffd, 0x94f1, 0xfffd, 0xe8cf, 0xea72, 0x96ca, 0xfffd, 0xe8d0, 0xfffd, 0xe8d1, 0xfffd, 0xe8d2, 0x8a76, 0xfffd, 0xe8d4, 0xfffd, 0x9078, 0xfffd, 0xfffd, 0xfffd, 0xe8d5, 0xfffd, 0xfffd, 0x8c43, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe8d6, 0xe8da, 0xfffd, 0xe8d8, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe8d9, 0xfffd, 0xfffd, 0x8a93, 0xe8d7, 0xe8db, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe8dc, 0xfffd, 0x88c6, 0xfffd, 0xe8dd, 0xe8de, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8fe2, 0xfffd, 0xfffd, 0xfffd, 0xe8df, 0xfffd, 0xfffd, 0xfffd, 0x8b66, 0xfffd, 0xfffd, 0xe8e2, 0xfffd, 0xfffd, 0xe8e1, 0xfffd, 0xe8e0, 0xfffd, 0xfffd, 0xe691, 0xfffd, 0x95da, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe8e3, 0xe8e4, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe8e5, 0xfffd, 0xfffd, 0xe8e6, 0xfffd, 0xe8e7, 0xfffd, 0xfffd, 0xe8e8, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8ad8, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe8e9, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe8ea, 0x9442, 0xfffd, 0xfffd, 0xfffd, 0xe8ec, 0x89b9, 0xfffd, 0xe8ef, 0xe8ee, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8943, 0xfffd, 0xfffd, 0xfffd, 0x8bbf, 0xfffd, 0x95c5, 0x92b8, 0x8da0, 0xfffd, 0x8d80, 0x8f87, 0xfffd, 0x907b, 0xfffd, 0xfffd, 0xfffd, 0xe8f1, 0xfffd, 0xfffd, 0xe8f0, 0x9761, 0x8ae6, 0x94d0, 0x93da, 0xfffd, 0xfffd, 0xfffd, 0x909c, 0x97cc, 0xfffd, 0x8c7a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe8f4, 0xfffd, 0xfffd, 0xe8f3, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x966a, 0x93aa, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x896f, 0xfffd, 0xfffd, 0xe8f5, 0xe8f2, 0xfffd, 0xfffd, 0x9570, 0x978a, 0xe8f6, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe8f7, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe8f9, 0x91e8, 0x8a7a, 0x8a7b, 0xe8f8, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8ae7, 0x8cb0, 0xfffd, 0xfffd, 0x8ae8, 0xfffd, 0xfffd, 0x935e, 0xfffd, 0xfffd, 0x97de, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8cda, 0xfffd, 0xfffd, 0xfffd, 0xe8fa, 0xfffd, 0xfffd, 0xfffd, 0xe8fb, 0xe8fc, 0xe940, 0xfffd, 0xe942, 0xe941, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9597, 0xfffd, 0xe943, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe944, 0xfffd, 0xe945, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe946, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe948, 0xe947, 0xfffd, 0xe949, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x94f2, 0xe3ca, 0xfffd, 0xfffd, 0x9048, 0xfffd, 0xfffd, 0x8b51, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe94a, 0xfffd, 0xe94b, 0xfffd, 0x99aa, 0x9f5a, 0x94d1, 0xfffd, 0xfffd, 0x88f9, 0xfffd, 0x88b9, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8e94, 0x964f, 0x8ffc, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe94c, 0xfffd, 0x96dd, 0xfffd, 0xfffd, 0xfffd, 0xe94d, 0x977b, 0xfffd, 0x8961, 0xfffd, 0xfffd, 0xfffd, 0x8e60, 0xfffd, 0xe94e, 0x89ec, 0xe94f, 0xfffd, 0xfffd, 0xfffd, 0xe950, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe952, 0xe953, 0xfffd, 0xe955, 0xe951, 0xfffd, 0xfffd, 0xe954, 0xfffd, 0xfffd, 0xfffd, 0x8ad9, 0xfffd, 0xfffd, 0xfffd, 0xe956, 0xfffd, 0xe957, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe958, 0xe959, 0xfffd, 0xfffd, 0xfffd, 0xe95a, 0xfffd, 0xfffd, 0xe95c, 0xfffd, 0xfffd, 0xfffd, 0xe95b, 0xfffd, 0xe95e, 0xe961, 0xfffd, 0xfffd, 0xfffd, 0xe95d, 0xe95f, 0xe960, 0xfffd, 0xfffd, 0xe962, 0xfffd, 0x8bc0, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8ef1, 0xe963, 0xe964, 0x8d81, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe965, 0xfffd, 0xfffd, 0x8a5d, 0xfffd, 0xfffd, 0xfffd, 0x946e, 0xe966, 0xe967, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9279, 0x93e9, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe968, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x949d, 0xfffd, 0xfffd, 0x91ca, 0x8977, 0x8bec, 0xfffd, 0x8bed, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9293, 0xe96d, 0x8bee, 0xfffd, 0xfffd, 0x89ed, 0xfffd, 0xfffd, 0xe96c, 0xfffd, 0xfffd, 0xe96a, 0xfffd, 0xe96b, 0xfffd, 0xe969, 0xfffd, 0xfffd, 0xe977, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe96e, 0xe96f, 0xfffd, 0xfffd, 0xe970, 0xe971, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe973, 0xfffd, 0xfffd, 0xe972, 0xfffd, 0xfffd, 0xfffd, 0x8f78, 0xfffd, 0xe974, 0xfffd, 0xfffd, 0xfffd, 0xe976, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8b52, 0xe975, 0xfffd, 0xfffd, 0x919b, 0x8cb1, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe978, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x91cb, 0xfffd, 0xfffd, 0xe979, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x93ab, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe97a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe980, 0xfffd, 0xe97d, 0xfffd, 0xe97c, 0xe97e, 0xfffd, 0xe97b, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe982, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe981, 0xfffd, 0xe984, 0xfffd, 0xfffd, 0x8bc1, 0xe983, 0xfffd, 0xfffd, 0xfffd, 0xe985, 0xfffd, 0xfffd, 0xe986, 0xfffd, 0xe988, 0xe987, 0xfffd, 0xfffd, 0xfffd, 0xe989, 0xe98b, 0xe98a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8d9c, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe98c, 0xfffd, 0xfffd, 0xe98d, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8a5b, 0xfffd, 0xfffd, 0xfffd, 0xe98e, 0xfffd, 0xfffd, 0xfffd, 0xe98f, 0xfffd, 0xfffd, 0xfffd, 0x9091, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe990, 0xfffd, 0xe991, 0xfffd, 0xe992, 0xe993, 0xfffd, 0xfffd, 0xfffd, 0x8d82, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe994, 0xe995, 0xfffd, 0xfffd, 0xe996, 0xe997, 0xfffd, 0xfffd, 0xe998, 0xfffd, 0xfffd, 0xfffd, 0x94af, 0xe99a, 0xfffd, 0x9545, 0xe99b, 0xe999, 0xfffd, 0xe99d, 0xfffd, 0xfffd, 0xe99c, 0xfffd, 0xfffd, 0xe99e, 0xfffd, 0xfffd, 0xfffd, 0xe99f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe9a0, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe9a1, 0xfffd, 0xe9a2, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe9a3, 0xfffd, 0xfffd, 0xe9a4, 0xe9a5, 0xfffd, 0xe9a6, 0xfffd, 0xe9a7, 0xe9a8, 0xe9a9, 0xe9aa, 0xfffd, 0xfffd, 0xfffd, 0xe9ab, 0xe9ac, 0xfffd, 0x9f54, 0xe9ad, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe2f6, 0x8b53, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8a40, 0x8db0, 0xe9af, 0xe9ae, 0x96a3, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe9b1, 0xe9b2, 0xe9b0, 0xfffd, 0xe9b3, 0xfffd, 0xfffd, 0x9682, 0xfffd, 0xfffd, 0xfffd, 0xe9b4, 0xfffd, 0x8b9b, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9844, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe9b5, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe9b7, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x88bc, 0xfffd, 0xfffd, 0xe9b8, 0x95a9, 0xe9b6, 0xfffd, 0xfffd, 0xe9b9, 0xe9ba, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe9bb, 0xe9bc, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe9bd, 0xfffd, 0x968e, 0x8e4c, 0xfffd, 0x8df8, 0x914e, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe9be, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe9c1, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe9bf, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe9c2, 0xfffd, 0xfffd, 0x8cef, 0xe9c0, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe9c3, 0xfffd, 0xe9c4, 0xe9c5, 0xfffd, 0xe9c9, 0xfffd, 0x8e49, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x91e2, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe9ca, 0xe9c7, 0xe9c6, 0xe9c8, 0xfffd, 0xfffd, 0xfffd, 0x8c7e, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe9ce, 0xe9cd, 0xe9cc, 0xfffd, 0xfffd, 0x88b1, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe9d8, 0xfffd, 0xe9d4, 0xfffd, 0xe9d5, 0xe9d1, 0xe9d7, 0xfffd, 0xe9d3, 0x8a82, 0xfffd, 0xfffd, 0x986b, 0xfffd, 0xe9d6, 0xe9d2, 0xe9d0, 0xe9cf, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe9da, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe9dd, 0xfffd, 0xfffd, 0xe9dc, 0xe9db, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9568, 0xe9d9, 0x88f1, 0xe9de, 0xfffd, 0xe9e0, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8a8f, 0xe9cb, 0x8956, 0xfffd, 0xfffd, 0xe9e2, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe9e1, 0xe9df, 0x924c, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9690, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x97d8, 0xfffd, 0xfffd, 0xe9e3, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe9e4, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe9e5, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe9e6, 0xfffd, 0xe9e7, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x92b9, 0xfffd, 0xe9e8, 0xfffd, 0x94b5, 0xfffd, 0xe9ed, 0xe9e9, 0xfffd, 0xfffd, 0xfffd, 0xe9ea, 0xfffd, 0xfffd, 0x9650, 0x96c2, 0xfffd, 0x93ce, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe9ee, 0xfffd, 0xfffd, 0xe9ef, 0x93bc, 0xe9ec, 0xe9eb, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x89a8, 0xfffd, 0xfffd, 0xfffd, 0xe9f7, 0xfffd, 0xfffd, 0xe9f6, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8995, 0xfffd, 0xfffd, 0xfffd, 0xe9f4, 0xfffd, 0xfffd, 0xfffd, 0xe9f3, 0xfffd, 0xfffd, 0xe9f1, 0xfffd, 0x8a9b, 0xfffd, 0xe9f0, 0x8eb0, 0x89a7, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8d83, 0xfffd, 0xfffd, 0xe9fa, 0xe9f9, 0xfffd, 0xe9f8, 0xfffd, 0xfffd, 0xe9f5, 0xfffd, 0xe9fb, 0xfffd, 0xe9fc, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xea44, 0xea43, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xea45, 0xfffd, 0xfffd, 0x894c, 0xea40, 0xea41, 0xfffd, 0x8d94, 0x96b7, 0xfffd, 0xfffd, 0xea42, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9651, 0xfffd, 0xfffd, 0xea4a, 0xfffd, 0xfffd, 0xea46, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xea4b, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xea48, 0xfffd, 0xea47, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8c7b, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xea4c, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xea4d, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xea4e, 0xfffd, 0xea49, 0xfffd, 0xfffd, 0xfffd, 0xe9f2, 0xfffd, 0xfffd, 0xea4f, 0xfffd, 0x92df, 0xfffd, 0xfffd, 0xfffd, 0xea53, 0xfffd, 0xea54, 0xea52, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xea51, 0xea57, 0xfffd, 0xea50, 0xfffd, 0xea55, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xea56, 0xfffd, 0xfffd, 0xfffd, 0xea59, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xea58, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xea5b, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xea5c, 0xfffd, 0xea5d, 0xfffd, 0xfffd, 0x9868, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xea5a, 0x91e9, 0x8deb, 0xfffd, 0xfffd, 0xea5e, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xea5f, 0xea60, 0xfffd, 0xfffd, 0xea61, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xea62, 0xfffd, 0xfffd, 0x8cb2, 0xea63, 0xfffd, 0xfffd, 0xfffd, 0xea64, 0xfffd, 0x8ead, 0xfffd, 0xea65, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xea66, 0xfffd, 0xfffd, 0xea67, 0xea68, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xea6b, 0xea69, 0x985b, 0xfffd, 0xea6a, 0xfffd, 0x97ed, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xea6c, 0xfffd, 0x97d9, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xea6d, 0x949e, 0xfffd, 0xfffd, 0xea6e, 0xea70, 0xfffd, 0xfffd, 0xea71, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xea6f, 0x8d8d, 0x96cb, 0x9683, 0x9bf5, 0xfffd, 0x9f80, 0x969b, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x89a9, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xea73, 0x8b6f, 0xea74, 0xea75, 0xea76, 0xfffd, 0x8d95, 0xfffd, 0xea77, 0xfffd, 0xfffd, 0xfffd, 0xe0d2, 0x96d9, 0xfffd, 0x91e1, 0xea78, 0xea7a, 0xea79, 0xfffd, 0xea7b, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xea7c, 0xfffd, 0xfffd, 0xea7d, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xea7e, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xea80, 0xfffd, 0xea81, 0xea82, 0xfffd, 0xea83, 0xfffd, 0xea84, 0xea85, 0xea86, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xea87, 0xea88, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9343, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8cdb, 0xfffd, 0xea8a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x916c, 0xea8b, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xea8c, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9540, 0xfffd, 0xfffd, 0xea8d, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xea8e, 0xe256, 0xfffd, 0xfffd, 0xe6d8, 0xe8eb, 0xfffd, 0xfffd, 0xea8f, 0xfffd, 0xea90, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xea92, 0xea93, 0xea94, 0x97ee, 0xea91, 0xfffd, 0xfffd, 0xea95, 0xea96, 0xfffd, 0xfffd, 0xea98, 0xfffd, 0xea97, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xea9a, 0xfffd, 0xfffd, 0xfffd, 0xea9b, 0xea99, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x97b4, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xea9c, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xea9d, 0xe273, 0xfffd, 0xfffd, 0xea9e, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }; #endif /* KANJI */ /* Blah-to-Unicode translation tables */ struct x_to_unicode u_transparent = { 256, X2U_CXG, 0, 0, "Transparent", "transparent", 0, "", 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 0x2D, 0x2E, 0x2F, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3A, 0x3B, 0x3C, 0x3D, 0x3E, 0x3F, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5A, 0x5B, 0x5C, 0x5D, 0x5E, 0x5F, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7A, 0x7B, 0x7C, 0x7D, 0x7E, 0x7F, 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F, 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9A, 0x9B, 0x9C, 0x9D, 0x9E, 0x9F, 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, 0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7, 0xB8, 0xB9, 0xBA, 0xBB, 0xBC, 0xBD, 0xBE, 0xBF, 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, 0xD8, 0xD9, 0xDA, 0xDB, 0xDC, 0xDD, 0xDE, 0xDF, 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF, 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, 0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xFF }; /* 7-bit character sets: ISO 646, DEC NRCs, Short KOI, and Hebrew-7 */ struct x_to_unicode u_ascii = { 94, 33, X2U_ISO|X2U_STD, AL_ROMAN, "US ASCII", "ascii", 6, "B", 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e }; struct x_to_unicode u_british = { 94, 33, X2U_ISO|X2U_STD, AL_ROMAN, "British ISO 646", "british", 1, "A", 0x0021, 0x0022, 0x00a3, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e }; struct x_to_unicode u_dutch = { 94, 33, X2U_DEC|X2U_STD, AL_ROMAN, "Dutch NRC", "dutch", 0, "4", 0x0021, 0x0022, 0x00a3, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x00be, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00ff, 0x00bd, 0x007c, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a8, 0x00a4, 0x00bc, 0x0027 }; struct x_to_unicode u_finnish = { 94, 33, X2U_DEC|X2U_STD, AL_ROMAN, "Finnish NRC", "finnish", 0, "5C", 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00c4, 0x00d6, 0x00c5, 0x00dc, 0x005f, 0x00e9, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00e4, 0x00f6, 0x00e5, 0x00fc }; struct x_to_unicode u_french = { 94, 33, X2U_ISO|X2U_STD, AL_ROMAN, "French ISO 646", "french", 0, "fR", 0x0021, 0x0022, 0x00a3, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x00e0, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b0, 0x00e7, 0x00a7, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00e9, 0x00f9, 0x00e8, 0x00a8 }; struct x_to_unicode u_fr_canadian = { 94,33,X2U_DEC|X2U_STD,AL_ROMAN,"French Canadian NRC","canadian-french",0,"9Q", 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x00e0, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00e2, 0x00e7, 0x00ea, 0x00ee, 0x005f, 0x00f4, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00e9, 0x00f9, 0x00e8, 0x00fb }; struct x_to_unicode u_german = { 94, 33, X2U_ISO|X2U_STD, AL_ROMAN, "German ISO 646", "german", 21, "K", 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x00a7, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00c4, 0x00d6, 0x00dc, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00e4, 0x00f6, 0x00fc, 0x00df }; struct x_to_unicode u_hungarian = { 94, 33, X2U_ISO|X2U_STD, AL_ROMAN, "Hungarian ISO 646","hungarian",86,"i", 0x0021, 0x0022, 0x0023, 0x00a4, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x00c1, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00c9, 0x00d6, 0x00dc, 0x005e, 0x005f, 0x00e1, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00e9, 0x00f6, 0x00fc, 0x0022, 0x02dd }; struct x_to_unicode u_italian = { 94, 33, X2U_ISO|X2U_STD, AL_ROMAN, "Italian ISO 646", "italian", 15, "Y", 0x0021, 0x0022, 0x00a3, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x00a7, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b0, 0x00e7, 0x00e9, 0x005e, 0x005f, 0x00f9, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00e0, 0x00f2, 0x00e8, 0x00ec }; struct x_to_unicode u_icelandic = { 94, 33, X2U_DEC|X2U_STD, AL_ROMAN, "Icelandic NRC", "icelandic", 0, NULL, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x00de, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00f0, 0x00d8, 0x00c6, 0x00d6, 0x005f, 0x00fe, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00f0, 0x007c, 0x00e6, 0x00f6 }; struct x_to_unicode u_jis0201r = { 94, 33, X2U_ISO|X2U_STD,AL_ROMAN,"Japanese Roman","japanese-roman",14,"J", 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x00a5, 0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x203e }; struct x_to_unicode u_jis0201k = { 94, 33, X2U_ISO|X2U_STD,AL_KANA,"Japanese Katakana", "katakana", 13, "I", 0xff61, 0xff62, 0xff63, 0xff64, 0xff65, 0xff66, 0xff67, 0xff68, 0xff69, 0xff6a, 0xff6b, 0xff6c, 0xff6d, 0xff6e, 0xff6f, 0xff70, 0xff71, 0xff72, 0xff73, 0xff74, 0xff75, 0xff76, 0xff77, 0xff78, 0xff79, 0xff7a, 0xff7b, 0xff7c, 0xff7d, 0xff7e, 0xff7f, 0xff80, 0xff81, 0xff82, 0xff83, 0xff84, 0xff85, 0xff86, 0xff87, 0xff88, 0xff89, 0xff8a, 0xff8b, 0xff8c, 0xff8d, 0xff8e, 0xff8f, 0xff90, 0xff91, 0xff92, 0xff93, 0xff94, 0xff95, 0xff96, 0xff97, 0xff98, 0xff99, 0xff9a, 0xff9b, 0xff9c, 0xff9d, 0xff9e, 0xff9f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd }; struct x_to_unicode u_norwegian = { /* Same as Danish */ 94,33,X2U_ISO|X2U_STD,AL_ROMAN,"Norwegian ISO 646", "norwegian", 60, "`E6", 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00c6, 0x00d8, 0x00c5, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00e6, 0x00f8, 0x00e5, 0x007e }; struct x_to_unicode u_danish = { /* Same as Norwegian */ 94, 33, X2U_ISO|X2U_STD, AL_ROMAN, "Danish ISO 646", "danish", 60, "`E6", 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00c6, 0x00d8, 0x00c5, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00e6, 0x00f8, 0x00e5, 0x007e }; struct x_to_unicode u_portuguese = { 94,33,X2U_ISO|X2U_STD,AL_ROMAN,"Portuguese ISO 646","portuguese",16,"L%6", 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00c6, 0x00d8, 0x00c5, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00e6, 0x00f8, 0x00e5, 0x007e }; struct x_to_unicode u_spanish = { 94, 33, X2U_ISO|X2U_STD, AL_ROMAN, "Spanish ISO 646", "spanish", 17, "Z", 0x0021, 0x0022, 0x00a3, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x00a7, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00a1, 0x00d1, 0x00bf, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00b0, 0x00f1, 0x00e7, 0x007e }; struct x_to_unicode u_swedish = { 94, 33, X2U_ISO|X2U_STD, AL_ROMAN, "Swedish ISO 646", "swedish", 11, "HG", 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x00c9, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00c4, 0x00d6, 0x00c5, 0x00dc, 0x005f, 0x00e9, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00e4, 0x00f6, 0x00e5, 0x00fc }; struct x_to_unicode u_swiss = { 94, 33, X2U_DEC|X2U_STD, AL_ROMAN, "Swiss NRC", "swiss", 0, "=", 0x0021, 0x0022, 0x00f9, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x00e0, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00e9, 0x00e7, 0x00ea, 0x00ee, 0x00e8, 0x00f4, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00e4, 0x00f6, 0x00fc, 0x00fb }; struct x_to_unicode u_koi7 = { 94, 33, X2U_STD, AL_CYRIL, "Short KOI", "short-koi", 0, NULL, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x042e, 0x0410, 0x0411, 0x0426, 0x0414, 0x0415, 0x0424, 0x0413, 0x0425, 0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e, 0x041f, 0x042f, 0x0420, 0x0421, 0x0422, 0x0423, 0x0416, 0x0412, 0x042c, 0x042b, 0x0417, 0x0428, 0x042d, 0x0429, 0x0427 }; struct x_to_unicode u_elot927 = { 94, 33, X2U_STD, AL_GREEK, "ELOT 927", "elot927-greek", 0, NULL, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0060, 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397, 0x0398, 0x0399, 0x039a, 0x039b, 0x039c, 0x039d, 0x039e, 0x039f, 0x03a0, 0x03a1, 0x03a3, 0x03a4, 0x03a5, 0x03a6, 0x03a7, 0x03a8, 0x03a9, 0x0020, 0x0020, 0x007b, 0x007c, 0x007d, 0x007e }; struct x_to_unicode u_hebrew7 = { 94, 33, X2U_STD, AL_HEBREW, "Hebrew-7", "hebrew-7", 0, NULL, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x05d0, 0x05d1, 0x05d2, 0x05d3, 0x05d4, 0x05d5, 0x05d6, 0x05d7, 0x05d8, 0x05d9, 0x05da, 0x05db, 0x05dc, 0x05dd, 0x05de, 0x05df, 0x05e0, 0x05e1, 0x05e2, 0x05e3, 0x05e4, 0x05e5, 0x05e6, 0x05e7, 0x05e8, 0x05e9, 0x05ea, 0x007b, 0x007c, 0x007d, 0x007e }; struct x_to_unicode u_apl1 = { 94, 33, X2U_ISO|X2U_STD, AL_ROMAN, "APL ISO", "apl-iso", 68, "e", 0x00a8, 0x0029, 0x003c, 0x2264, 0x003d, 0x003e, 0x005d, 0x2228, 0x2227, 0x2260, 0x00f7, 0x002c, 0x002b, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x0028, 0x005b, 0x003b, 0x00d7, 0x003a, 0x005c, 0x00af, 0x237a, 0x22a5, 0x22c2, 0x230a, 0x220a, 0x005f, 0x2207, 0x2206, 0x2373, 0x2218, 0x0027, 0x25af, 0x007c, 0x22a4, 0x25cb, 0x22c6, 0x003f, 0x2374, 0x2308, 0x223c, 0x2193, 0x222a, 0x2375, 0x2283, 0x2191, 0x2282, 0x2190, 0x22a2, 0x2192, 0x2265, 0x002d, 0x22c4, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x007b, 0x22a3, 0x007d, 0x0024 }; /* ISO 8859 Latin Alphabets */ struct x_to_unicode u_8859_1 = { 96, 32, X2U_ISO|X2U_STD, AL_ROMAN, "ISO Latin-1", "latin1", 100, "A", 0x00A0, 0x00A1, 0x00A2, 0x00A3, 0x00A4, 0x00A5, 0x00A6, 0x00A7, 0x00A8, 0x00A9, 0x00AA, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00AF, 0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x00B4, 0x00B5, 0x00B6, 0x00B7, 0x00B8, 0x00B9, 0x00BA, 0x00BB, 0x00BC, 0x00BD, 0x00BE, 0x00BF, 0x00C0, 0x00C1, 0x00C2, 0x00C3, 0x00C4, 0x00C5, 0x00C6, 0x00C7, 0x00C8, 0x00C9, 0x00CA, 0x00CB, 0x00CC, 0x00CD, 0x00CE, 0x00CF, 0x00D0, 0x00D1, 0x00D2, 0x00D3, 0x00D4, 0x00D5, 0x00D6, 0x00D7, 0x00D8, 0x00D9, 0x00DA, 0x00DB, 0x00DC, 0x00DD, 0x00DE, 0x00DF, 0x00E0, 0x00E1, 0x00E2, 0x00E3, 0x00E4, 0x00E5, 0x00E6, 0x00E7, 0x00E8, 0x00E9, 0x00EA, 0x00EB, 0x00EC, 0x00ED, 0x00EE, 0x00EF, 0x00F0, 0x00F1, 0x00F2, 0x00F3, 0x00F4, 0x00F5, 0x00F6, 0x00F7, 0x00F8, 0x00F9, 0x00FA, 0x00FB, 0x00FC, 0x00FD, 0x00FE, 0x00FF }; struct x_to_unicode u_8859_2 = { 96, 32, X2U_ISO|X2U_STD, AL_ROMAN, "ISO Latin-2", "latin2", 101, "B", 0x00A0, 0x0104, 0x02D8, 0x0141, 0x00A4, 0x013D, 0x015A, 0x00A7, 0x00A8, 0x0160, 0x015E, 0x0164, 0x0179, 0x00AD, 0x017D, 0x017B, 0x00B0, 0x0105, 0x02DB, 0x0142, 0x00B4, 0x013E, 0x015B, 0x02C7, 0x00B8, 0x0161, 0x015F, 0x0165, 0x017A, 0x02DD, 0x017E, 0x017C, 0x0154, 0x00C1, 0x00C2, 0x0102, 0x00C4, 0x0139, 0x0106, 0x00C7, 0x010C, 0x00C9, 0x0118, 0x00CB, 0x011A, 0x00CD, 0x00CE, 0x010E, 0x0110, 0x0143, 0x0147, 0x00D3, 0x00D4, 0x0150, 0x00D6, 0x00D7, 0x0158, 0x016E, 0x00DA, 0x0170, 0x00DC, 0x00DD, 0x0162, 0x00DF, 0x0155, 0x00E1, 0x00E2, 0x0103, 0x00E4, 0x013A, 0x0107, 0x00E7, 0x010D, 0x00E9, 0x0119, 0x00EB, 0x011B, 0x00ED, 0x00EE, 0x010F, 0x0111, 0x0144, 0x0148, 0x00F3, 0x00F4, 0x0151, 0x00F6, 0x00F7, 0x0159, 0x016F, 0x00FA, 0x0171, 0x00FC, 0x00FD, 0x0163, 0x02D9 }; struct x_to_unicode u_8859_3 = { 96, 32, X2U_ISO|X2U_STD, AL_ROMAN, "ISO Latin-3", "latin3", 109, "C", 0x00A0, 0x0126, 0x02D8, 0x00A3, 0x00A4, 0xfffd, 0x0124, 0x00A7, 0x00A8, 0x0130, 0x015E, 0x011E, 0x0134, 0x00AD, 0xfffd, 0x017B, 0x00B0, 0x0127, 0x00B2, 0x00B3, 0x00B4, 0x00B5, 0x0125, 0x00B7, 0x00B8, 0x0131, 0x015F, 0x011F, 0x0135, 0x00BD, 0xfffd, 0x017C, 0x00C0, 0x00C1, 0x00C2, 0xfffd, 0x00C4, 0x010A, 0x0108, 0x00C7, 0x00C8, 0x00C9, 0x00CA, 0x00CB, 0x00CC, 0x00CD, 0x00CE, 0x00CF, 0xfffd, 0x00D1, 0x00D2, 0x00D3, 0x00D4, 0x0120, 0x00D6, 0x00D7, 0x011C, 0x00D9, 0x00DA, 0x00DB, 0x00DC, 0x016C, 0x015C, 0x00DF, 0x00E0, 0x00E1, 0x00E2, 0xfffd, 0x00E4, 0x010B, 0x0109, 0x00E7, 0x00E8, 0x00E9, 0x00EA, 0x00EB, 0x00EC, 0x00ED, 0x00EE, 0x00EF, 0xfffd, 0x00F1, 0x00F2, 0x00F3, 0x00F4, 0x0121, 0x00F6, 0x00F7, 0x011D, 0x00F9, 0x00FA, 0x00FB, 0x00FC, 0x016D, 0x015D, 0x02D9 }; struct x_to_unicode u_8859_4 = { 96, 32, X2U_ISO|X2U_STD, AL_ROMAN, "ISO Latin-4", "latin4", 110, "D", 0x00A0, 0x0104, 0x0138, 0x0156, 0x00A4, 0x0128, 0x013B, 0x00A7, 0x00A8, 0x0160, 0x0112, 0x0122, 0x0166, 0x00AD, 0x017D, 0x00AF, 0x00B0, 0x0105, 0x02DB, 0x0157, 0x00B4, 0x0129, 0x013C, 0x02C7, 0x00B8, 0x0161, 0x0113, 0x0123, 0x0167, 0x014A, 0x017E, 0x014B, 0x0100, 0x00C1, 0x00C2, 0x00C3, 0x00C4, 0x00C5, 0x00C6, 0x012E, 0x010C, 0x00C9, 0x0118, 0x00CB, 0x0116, 0x00CD, 0x00CE, 0x012A, 0x0110, 0x0145, 0x014C, 0x0136, 0x00D4, 0x00D5, 0x00D6, 0x00D7, 0x00D8, 0x0172, 0x00DA, 0x00DB, 0x00DC, 0x0168, 0x016A, 0x00DF, 0x0101, 0x00E1, 0x00E2, 0x00E3, 0x00E4, 0x00E5, 0x00E6, 0x012F, 0x010D, 0x00E9, 0x0119, 0x00EB, 0x0117, 0x00ED, 0x00EE, 0x012B, 0x0111, 0x0146, 0x014D, 0x0137, 0x00F4, 0x00F5, 0x00F6, 0x00F7, 0x00F8, 0x0173, 0x00FA, 0x00FB, 0x00FC, 0x0169, 0x016B, 0x02D9 }; struct x_to_unicode u_8859_5 = { 96,32,X2U_ISO|X2U_STD,AL_CYRIL,"ISO Latin/Cyrillic","cyrillic-iso",144,"L", 0x00A0, 0x0401, 0x0402, 0x0403, 0x0404, 0x0405, 0x0406, 0x0407, 0x0408, 0x0409, 0x040A, 0x040B, 0x040C, 0x00AD, 0x040E, 0x040F, 0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417, 0x0418, 0x0419, 0x041A, 0x041B, 0x041C, 0x041D, 0x041E, 0x041F, 0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427, 0x0428, 0x0429, 0x042A, 0x042B, 0x042C, 0x042D, 0x042E, 0x042F, 0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437, 0x0438, 0x0439, 0x043A, 0x043B, 0x043C, 0x043D, 0x043E, 0x043F, 0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447, 0x0448, 0x0449, 0x044A, 0x044B, 0x044C, 0x044D, 0x044E, 0x044F, 0x2116, 0x0451, 0x0452, 0x0453, 0x0454, 0x0455, 0x0456, 0x0457, 0x0458, 0x0459, 0x045A, 0x045B, 0x045C, 0x00A7, 0x045E, 0x045F }; struct x_to_unicode u_8859_6 = { 96, 32, X2U_ISO|X2U_STD,AL_ARABIC,"ISO Latin/Arabic","arabic-iso",127,"G", 0x00A0, 0xfffd, 0xfffd, 0xfffd, 0x00A4, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x060C, 0x00AD, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x061B, 0xfffd, 0xfffd, 0xfffd, 0x061F, 0xfffd, 0x0621, 0x0622, 0x0623, 0x0624, 0x0625, 0x0626, 0x0627, 0x0628, 0x0629, 0x062A, 0x062B, 0x062C, 0x062D, 0x062E, 0x062F, 0x0630, 0x0631, 0x0632, 0x0633, 0x0634, 0x0635, 0x0636, 0x0637, 0x0638, 0x0639, 0x063A, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x0640, 0x0641, 0x0642, 0x0643, 0x0644, 0x0645, 0x0646, 0x0647, 0x0648, 0x0649, 0x064A, 0x064B, 0x064C, 0x064D, 0x064E, 0x064F, 0x0650, 0x0651, 0x0652, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd }; struct x_to_unicode u_8859_7 = { 96, 32, X2U_ISO|X2U_STD,AL_GREEK,"ISO Latin/Greek", "greek-iso", 126, "F", 0x00A0, 0x2018, 0x2019, 0x00A3, 0xFFFD, 0xFFFD, 0x00A6, 0x00A7, 0x00A8, 0x00A9, 0xFFFD, 0x00AB, 0x00AC, 0x00AD, 0xFFFD, 0x2015, 0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x0384, 0x0385, 0x0386, 0x00B7, 0x0388, 0x0389, 0x038A, 0x00BB, 0x038C, 0x00BD, 0x038E, 0x038F, 0x0390, 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397, 0x0398, 0x0399, 0x039A, 0x039B, 0x039C, 0x039D, 0x039E, 0x039F, 0x03A0, 0x03A1, 0xfffd, 0x03A3, 0x03A4, 0x03A5, 0x03A6, 0x03A7, 0x03A8, 0x03A9, 0x03AA, 0x03AB, 0x03AC, 0x03AD, 0x03AE, 0x03AF, 0x03B0, 0x03B1, 0x03B2, 0x03B3, 0x03B4, 0x03B5, 0x03B6, 0x03B7, 0x03B8, 0x03B9, 0x03BA, 0x03BB, 0x03BC, 0x03BD, 0x03BE, 0x03BF, 0x03C0, 0x03C1, 0x03C2, 0x03C3, 0x03C4, 0x03C5, 0x03C6, 0x03C7, 0x03C8, 0x03C9, 0x03CA, 0x03CB, 0x03CC, 0x03CD, 0x03CE, 0xfffd }; struct x_to_unicode u_8859_8 = { 96, 32, X2U_ISO|X2U_STD,AL_HEBREW,"ISO Latin/Hebrew","hebrew-iso",121,"H", 0x00A0, 0xfffd, 0x00A2, 0x00A3, 0x00A4, 0x00A5, 0x00A6, 0x00A7, 0x00A8, 0x00A9, 0x00D7, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x203E, 0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x00B4, 0x00B5, 0x00B6, 0x00B7, 0x00B8, 0x00B9, 0x00F7, 0x00BB, 0x00BC, 0x00BD, 0x00BE, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x2017, 0x05D0, 0x05D1, 0x05D2, 0x05D3, 0x05D4, 0x05D5, 0x05D6, 0x05D7, 0x05D8, 0x05D9, 0x05DA, 0x05DB, 0x05DC, 0x05DD, 0x05DE, 0x05DF, 0x05E0, 0x05E1, 0x05E2, 0x05E3, 0x05E4, 0x05E5, 0x05E6, 0x05E7, 0x05E8, 0x05E9, 0x05EA, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd }; struct x_to_unicode u_8859_9 = { 96, 32, X2U_ISO|X2U_STD, AL_ROMAN, "ISO Latin-5", "latin5", 148, "M", 0x00A0, 0x00A1, 0x00A2, 0x00A3, 0x00A4, 0x00A5, 0x00A6, 0x00A7, 0x00A8, 0x00A9, 0x00AA, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00AF, 0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x00B4, 0x00B5, 0x00B6, 0x00B7, 0x00B8, 0x00B9, 0x00BA, 0x00BB, 0x00BC, 0x00BD, 0x00BE, 0x00BF, 0x00C0, 0x00C1, 0x00C2, 0x00C3, 0x00C4, 0x00C5, 0x00C6, 0x00C7, 0x00C8, 0x00C9, 0x00CA, 0x00CB, 0x00CC, 0x00CD, 0x00CE, 0x00CF, 0x011E, 0x00D1, 0x00D2, 0x00D3, 0x00D4, 0x00D5, 0x00D6, 0x00D7, 0x00D8, 0x00D9, 0x00DA, 0x00DB, 0x00DC, 0x0130, 0x015E, 0x00DF, 0x00E0, 0x00E1, 0x00E2, 0x00E3, 0x00E4, 0x00E5, 0x00E6, 0x00E7, 0x00E8, 0x00E9, 0x00EA, 0x00EB, 0x00EC, 0x00ED, 0x00EE, 0x00EF, 0x011F, 0x00F1, 0x00F2, 0x00F3, 0x00F4, 0x00F5, 0x00F6, 0x00F7, 0x00F8, 0x00F9, 0x00FA, 0x00FB, 0x00FC, 0x0131, 0x015F, 0x00FF }; struct x_to_unicode u_8859_10 = { 96, 32, X2U_ISO|X2U_STD, AL_ROMAN, "ISO Latin-6", "latin6", 157, "V", 0x00a0, 0x0104, 0x0112, 0x0122, 0x012a, 0x0128, 0x0136, 0x013b, 0x0143, 0x0156, 0x0160, 0x0166, 0x017d, 0x00ad, 0x0138, 0x014a, 0x0111, 0x0105, 0x0113, 0x0123, 0x012b, 0x0129, 0x0137, 0x013c, 0x0144, 0x0157, 0x0161, 0x0167, 0x017e, 0x00bd, 0x00be, 0x014b, 0x0100, 0x00c1, 0x00c2, 0x00c3, 0x00c4, 0x00c5, 0x00c6, 0x012e, 0x010c, 0x00c9, 0x0118, 0x00cb, 0x0116, 0x00cd, 0x00ce, 0x00cf, 0x0110, 0x0145, 0x014c, 0x00de, 0x00d4, 0x00d5, 0x00d6, 0x0168, 0x00d8, 0x0172, 0x00da, 0x00db, 0x00dc, 0x00dd, 0x00de, 0x016a, 0x0101, 0x00e1, 0x00e2, 0x00d3, 0x00e4, 0x00e5, 0x00e6, 0x012f, 0x010d, 0x00e9, 0x0119, 0x00eb, 0x0117, 0x00ed, 0x00ee, 0x00ef, 0x00f0, 0x00f1, 0x014d, 0x00f3, 0x00f4, 0x00f5, 0x00f6, 0x0169, 0x00f8, 0x0173, 0x00fa, 0x00fb, 0x00fc, 0x00fd, 0x00fe, 0x016b }; /* Latin-9 (ISO 8859-15) is the same as Latin-1 with the following changes: * A4 is Euro Symbol 20AC * A6 is Capital S Caron 0160 * A8 is Small s caron 0161 * B4 is Capital Z caron 017D * B8 is Small z caron 017E * BC is Capital OE ligature 0152 * BD is Small oe ligature 0153 * BE is Capital Y diaeresis 0178 */ struct x_to_unicode u_8859_15 = { 96, 32, X2U_ISO|X2U_STD, AL_ROMAN, "ISO Latin-9", "latin9", 0, NULL, 0x00A0, 0x00A1, 0x00A2, 0x00A3, 0x20AC, 0x00A5, 0x0160, 0x00A7, 0x0161, 0x00A9, 0x00AA, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00AF, 0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x017D, 0x00B5, 0x00B6, 0x00B7, 0x017E, 0x00B9, 0x00BA, 0x00BB, 0x0152, 0x0153, 0x0178, 0x00BF, 0x00C0, 0x00C1, 0x00C2, 0x00C3, 0x00C4, 0x00C5, 0x00C6, 0x00C7, 0x00C8, 0x00C9, 0x00CA, 0x00CB, 0x00CC, 0x00CD, 0x00CE, 0x00CF, 0x00D0, 0x00D1, 0x00D2, 0x00D3, 0x00D4, 0x00D5, 0x00D6, 0x00D7, 0x00D8, 0x00D9, 0x00DA, 0x00DB, 0x00DC, 0x00DD, 0x00DE, 0x00DF, 0x00E0, 0x00E1, 0x00E2, 0x00E3, 0x00E4, 0x00E5, 0x00E6, 0x00E7, 0x00E8, 0x00E9, 0x00EA, 0x00EB, 0x00EC, 0x00ED, 0x00EE, 0x00EF, 0x00F0, 0x00F1, 0x00F2, 0x00F3, 0x00F4, 0x00F5, 0x00F6, 0x00F7, 0x00F8, 0x00F9, 0x00FA, 0x00FB, 0x00FC, 0x00FD, 0x00FE, 0x00FF }; /* Dyadic Systems Dyalog/X APL, corresponds to APLTERMI.TTF. */ /* Unicode mappings according to ISO-IEC / JTC 1 / SC 22 N 3067, 1999-12-28. */ struct x_to_unicode u_apl2 = { /* Dyadic Systems APL + box drawings */ 96, 32, X2U_STD, AL_ROMAN, "Dyadic Systems APL", "apl-dyadic", 0, NULL, 0x00a0, 0x00d7, 0x2502, 0x2524, 0x00a2, 0x2510, 0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x2518, 0x250c, 0x2206, 0x00f7, 0x2260, 0x22c4, 0x2375, 0x2374, 0x237a, 0x220a, 0x2261, 0x2265, 0x2264, 0x22a5, 0x22a4, 0x2190, 0x2218, 0x235d, 0x233f, 0x2340, 0x234e, 0x2355, 0x234b, 0x2352, 0x2372, 0x2371, 0x2368, 0x235f, 0x25af, 0x235e, 0x2339, 0x236b, 0x236a, 0x2262, 0x230a, 0x2308, 0x2349, 0x2229, 0x222a, 0x236c, 0x00a3, 0x233d, 0x2296, 0x22a2, 0x22a3, 0x2337, 0x00af, 0x2373, 0x00a8, 0x25cb, 0x2192, 0x2228, 0x2282, 0x2283, 0x2359, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x2207, 0x2191, 0x2193 }; struct x_to_unicode u_apl3 = { /* APL-Plus = APL-2000 */ 128, 0, X2U_CXG, AL_ROMAN, "APL-2000", "apl-2000", 0, NULL, 0x20ac, 0x22a3, 0x22a4, 0x22a5, 0x2190, 0x2192, 0x2191, 0x2193, 0x2264, 0x2265, 0x2372, 0x2371, 0x25af, 0x235e, 0x2339, 0x2359, 0x236b, 0x2206, 0x2207, 0x234b, 0x2352, 0x2355, 0x234e, 0x2308, 0x230a, 0x2340, 0x233f, 0x2282, 0x2283, 0x2229, 0x222a, 0x2228, 0x00a0, 0x00a1, 0x00a2, 0x00a3, 0x22a2, 0x00a5, 0x00a6, 0x00a7, 0x00a8, 0x235d, 0x22c4, 0x00ab, 0x2260, 0x2261, 0x236a, 0x00af, 0x2218, 0x25cb, 0x233d, 0x2349, 0x2296, 0x235f, 0x00b6, 0x00b7, 0x237a, 0x220a, 0x2377, 0x00bb, 0x2373, 0x2374, 0x2375, 0x00bf, 0x00c0, 0x00c1, 0x00c2, 0x00c3, 0x00c4, 0x00c5, 0x00c6, 0x00c7, 0x00c8, 0x00c9, 0x00ca, 0x00cb, 0x00cc, 0x00cd, 0x00ce, 0x00cf, 0x236c, 0x00d1, 0x00d2, 0x00d3, 0x00d4, 0x00d5, 0x00d6, 0x00d7, 0x00d8, 0x00d9, 0x00da, 0x00db, 0x00dc, 0x00dd, 0x2337, 0x00df, 0x00e0, 0x00e1, 0x00e2, 0x00e3, 0x00e4, 0x00e5, 0x00e6, 0x00e7, 0x00e8, 0x00e9, 0x00ea, 0x00eb, 0x00ec, 0x00ed, 0x00ee, 0x00ef, 0x2364, 0x00f1, 0x00f2, 0x00f3, 0x00f4, 0x00f5, 0x00f6, 0x00f7, 0x2205, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x00fd, 0x2368, 0x00ff }; struct x_to_unicode u_apl4 = { /* IBM APL2 */ 128, 0, X2U_CXG, AL_ROMAN, "IBM APL2", "apl2-ibm", 0, NULL, 0x00c7, 0x00fc, 0x00e9, 0x00e2, 0x00e4, 0x00e0, 0x00e5, 0x00e7, 0x00ea, 0x00eb, 0x00e8, 0x00ef, 0x00ee, 0x00ec, 0x00c4, 0x00c5, 0x25af, 0x235e, 0x2339, 0x00f4, 0x00f6, 0x00f2, 0x00fb, 0x00f9, 0x22a4, 0x00d6, 0x00dc, 0x00f8, 0x00a3, 0x22a5, 0x2190, 0x2336, 0x00e1, 0x00ed, 0x00f3, 0x00fa, 0x00f1, 0x00d1, 0x00aa, 0x00ba, 0x00bf, 0x2308, 0x00ac, 0x2192, 0x222a, 0x00a1, 0x2355, 0x234e, 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x235f, 0x2206, 0x2207, 0x2192, 0x2563, 0x2551, 0x2557, 0x255d, 0x2190, 0x230a, 0x2510, 0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x2191, 0x2193, 0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x2261, 0x2378, 0x2377, 0x2235, 0x2337, 0x2342, 0x233b, 0x22a2, 0x22a3, 0x22c4, 0x2518, 0x250c, 0x2588, 0x2584, 0x00a6, 0x00cc, 0x2580, 0x237a, 0x00df, 0x2282, 0x2283, 0x235d, 0x2372, 0x2374, 0x2371, 0x233d, 0x2296, 0x25cb, 0x2228, 0x2373, 0x2349, 0x00c5, 0x2229, 0x233f, 0x2340, 0x2265, 0x2264, 0x2260, 0x00d7, 0x00f7, 0x2359, 0x2218, 0x2375, 0x236b, 0x234b, 0x2352, 0x00af, 0x00a8, 0x00a0 }; struct x_to_unicode u_apl5 = { /* APL-2741 */ 128, 0, X2U_CXG, AL_ROMAN, "APL-2741", "apl-2741", 0, NULL, 0x20ac, 0x22a3, 0x22a4, 0x22a5, 0x2190, 0x2192, 0x2191, 0x2193, 0x2264, 0x2265, 0x2372, 0x2371, 0x25af, 0x235e, 0x2339, 0x2359, 0x236b, 0x2206, 0x2207, 0x234b, 0x2352, 0x2355, 0x234e, 0x2308, 0x230a, 0x2340, 0x233f, 0x2282, 0x2283, 0x2229, 0x222a, 0x2228, 0x00a0, 0x00a1, 0x00a2, 0x00a3, 0x22a2, 0x2378, 0x2261, 0x2336, 0x00a8, 0x235d, 0x22c4, 0x236c, 0x2260, 0x2261, 0x236a, 0x00af, 0x2218, 0x25cb, 0x233d, 0x2349, 0x2296, 0x235f, 0x00b6, 0x00b7, 0x237a, 0x220a, 0x2377, 0x2262, 0x2373, 0x2374, 0x2375, 0x00bf, 0x2514, 0x2534, 0x252c, 0x251c, 0x00c4, 0x00c5, 0x00c6, 0x00c7, 0x00c8, 0x00c9, 0x2342, 0x233b, 0x2510, 0x00cd, 0x2500, 0x253c, 0x236c, 0x00d1, 0x2350, 0x2357, 0x2347, 0x2348, 0x00d6, 0x00d7, 0x00d8, 0x2518, 0x250c, 0x2502, 0x00dc, 0x2524, 0x2337, 0x00df, 0x00e0, 0x00e1, 0x00e2, 0x00e3, 0x00e4, 0x00e5, 0x00e6, 0x00e7, 0x00e8, 0x00e9, 0x00ea, 0x00eb, 0x00ec, 0x00ed, 0x00ee, 0x00ef, 0x2364, 0x00f1, 0x00f2, 0x00f3, 0x00f4, 0x00f5, 0x00f6, 0x00f7, 0x2205, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x2235, 0x2368, 0x2365 }; /* 8-bit GOST standard sets */ struct x_to_unicode u_koi8 = { 96, 32, X2U_STD, AL_CYRIL, "KOI-8", "koi8", 0, NULL, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x044E, 0x0430, 0x0431, 0x0446, 0x0434, 0x0435, 0x0444, 0x0433, 0x0445, 0x0438, 0x0439, 0x043A, 0x043B, 0x043C, 0x043D, 0x043E, 0x043F, 0x044F, 0x0440, 0x0441, 0x0442, 0x0443, 0x0436, 0x0432, 0x044C, 0x044B, 0x0437, 0x0448, 0x044D, 0x0449, 0x0447, 0x044A, 0x042E, 0x0410, 0x0411, 0x0426, 0x0414, 0x0415, 0x0424, 0x0413, 0x0425, 0x0418, 0x0419, 0x041A, 0x041B, 0x041C, 0x041D, 0x041E, 0x041F, 0x042F, 0x0420, 0x0421, 0x0422, 0x0423, 0x0416, 0x0412, 0x042C, 0x042B, 0x0417, 0x0428, 0x042D, 0x0429, 0x0427, 0xfffd }; /* Other KOI-8 based sets */ struct x_to_unicode u_koi8r = { /* (Russia) Table from RFC1489 */ 128, 0, X2U_CP, AL_CYRIL, "KOI8-R", "koi8r", 0, NULL, 0x2500, 0x2502, 0x250C, 0x2510, 0x2514, 0x2518, 0x251C, 0x2524, 0x252C, 0x2534, 0x253C, 0x2580, 0x2584, 0x2588, 0x258C, 0x2590, 0x2591, 0x2592, 0x2593, 0x2320, 0x25A0, 0x2219, 0x221A, 0x2248, 0x2264, 0x2265, 0x00A0, 0x2321, 0x00B0, 0x00B2, 0x00B7, 0x00F7, 0x2550, 0x2551, 0x2552, 0x0451, 0x2553, 0x2554, 0x2555, 0x2556, 0x2557, 0x2558, 0x2559, 0x255A, 0x255B, 0x255C, 0x255D, 0x255E, 0x255F, 0x2560, 0x2561, 0x0401, 0x2562, 0x2563, 0x2564, 0x2565, 0x2566, 0x2567, 0x2568, 0x2569, 0x256A, 0x256B, 0x256C, 0x00A9, 0x044E, 0x0430, 0x0431, 0x0446, 0x0434, 0x0435, 0x0444, 0x0433, 0x0445, 0x0438, 0x0439, 0x043A, 0x043B, 0x043C, 0x043D, 0x043E, 0x043F, 0x044F, 0x0440, 0x0441, 0x0442, 0x0443, 0x0436, 0x0432, 0x044C, 0x044B, 0x0437, 0x0448, 0x044D, 0x0449, 0x0447, 0x044A, 0x042E, 0x0410, 0x0411, 0x0426, 0x0414, 0x0415, 0x0424, 0x0413, 0x0425, 0x0418, 0x0419, 0x041A, 0x041B, 0x041C, 0x041D, 0x041E, 0x041F, 0x042F, 0x0420, 0x0421, 0x0422, 0x0423, 0x0416, 0x0412, 0x042C, 0x042B, 0x0417, 0x0428, 0x042D, 0x0429, 0x0427, 0x042A }; struct x_to_unicode u_koi8u = { /* (Ukraine) From RFC2319 */ 128, 0, X2U_CP, AL_CYRIL, "KOI8-U", "koi8u", 0, NULL, 0x2500, 0x2502, 0x250C, 0x2510, 0x2514, 0x2518, 0x251C, 0x2524, 0x252C, 0x2534, 0x253C, 0x2580, 0x2584, 0x2588, 0x258C, 0x2590, 0x2591, 0x2592, 0x2593, 0x2320, 0x25A0, 0x2219, 0x221A, 0x2248, 0x2264, 0x2265, 0x00A0, 0x2321, 0x00B0, 0x00B2, 0x00B7, 0x00F7, 0x2550, 0x2551, 0x2552, 0x0451, 0x0454, 0x2554, 0x0456, 0x0457, 0x2557, 0x2558, 0x2559, 0x255A, 0x255B, 0x0491, 0x255D, 0x255E, 0x255F, 0x2560, 0x2561, 0x0401, 0x0404, 0x2563, 0x0406, 0x0407, 0x2566, 0x2567, 0x2568, 0x2569, 0x256A, 0x0490, 0x256C, 0x00A9, 0x044E, 0x0430, 0x0431, 0x0446, 0x0434, 0x0435, 0x0444, 0x0433, 0x0445, 0x0438, 0x0439, 0x043A, 0x043B, 0x043C, 0x043D, 0x043E, 0x043F, 0x044F, 0x0440, 0x0441, 0x0442, 0x0443, 0x0436, 0x0432, 0x044C, 0x044B, 0x0437, 0x0448, 0x044D, 0x0449, 0x0447, 0x044A, 0x042E, 0x0410, 0x0411, 0x0426, 0x0414, 0x0415, 0x0424, 0x0413, 0x0425, 0x0418, 0x0419, 0x041A, 0x041B, 0x041C, 0x041D, 0x041E, 0x041F, 0x042F, 0x0420, 0x0421, 0x0422, 0x0423, 0x0416, 0x0412, 0x042C, 0x042B, 0x0417, 0x0428, 0x042D, 0x0429, 0x0427, 0x042A }; /* PC Code Pages */ struct x_to_unicode u_cp437 = { 128, 0, X2U_CP, AL_ROMAN,"PC Code Page 437","cp437", 0, NULL, 0x00c7, 0x00fc, 0x00e9, 0x00e2, 0x00e4, 0x00e0, 0x00e5, 0x00e7, 0x00ea, 0x00eb, 0x00e8, 0x00ef, 0x00ee, 0x00ec, 0x00c4, 0x00c5, 0x00c9, 0x00e6, 0x00c6, 0x00f4, 0x00f6, 0x00f2, 0x00fb, 0x00f9, 0x00ff, 0x00d6, 0x00dc, 0x00a2, 0x00a3, 0x00a5, 0x20a7, 0x0192, 0x00e1, 0x00ed, 0x00f3, 0x00fa, 0x00f1, 0x00d1, 0x00aa, 0x00ba, 0x00bf, 0x2310, 0x00ac, 0x00bd, 0x00bc, 0x00a1, 0x00ab, 0x00bb, 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, 0x2555, 0x2563, 0x2551, 0x2557, 0x255d, 0x255c, 0x255b, 0x2510, 0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x255e, 0x255f, 0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x2567, 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256b, 0x256a, 0x2518, 0x250c, 0x2588, 0x2584, 0x258c, 0x2590, 0x2580, 0x03b1, 0x00df, 0x0393, 0x03c0, 0x03a3, 0x03c3, 0x00b5, 0x03c4, 0x03a6, 0x0398, 0x03a9, 0x03b4, 0x221e, 0x03c6, 0x03b5, 0x2229, 0x2261, 0x00b1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00f7, 0x2248, 0x00b0, 0x2219, 0x00b7, 0x221a, 0x207f, 0x00b2, /* 0x25ae */ 0x25a0, 0x00a0 }; struct x_to_unicode u_mazovia = { 128, 0, X2U_CP, AL_ROMAN,"Polish Mazovia PC Code Page","mazovia", 0, NULL, 0x00c7, 0x00fc, 0x00e9, 0x00e2, 0x00e4, 0x00e0, 0x0105, 0x00e7, /* 80 */ 0x00ea, 0x00eb, 0x00e8, 0x00ef, 0x00ee, 0x0107, 0x00c4, 0x0104, /* 88 */ 0x0118, 0x0119, 0x0142, 0x00f4, 0x00f6, 0x0106, 0x00fb, 0x00f9, /* 90 */ 0x015a, 0x00d6, 0x00dc, 0x00a2, 0x0141, 0x00a5, 0x015b, 0x0192, /* 98 */ 0x0179, 0x017b, 0x00f3, 0x00d3, 0x0144, 0x0143, 0x017a, 0x017c, /* a0 */ 0x00bf, 0x2310, 0x00ac, 0x00bd, 0x00bc, 0x00a1, 0x00ab, 0x00bb, /* a8 */ 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, /* b0 */ 0x2555, 0x2563, 0x2551, 0x2557, 0x255d, 0x255c, 0x255b, 0x2510, /* b8 */ 0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x255e, 0x255f, /* c0 */ 0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x2567, /* c8 */ 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256b, /* d0 */ 0x256a, 0x2518, 0x250c, 0x2588, 0x2584, 0x258c, 0x2590, 0x2580, /* d8 */ 0x03b1, 0x00df, 0x0393, 0x03c0, 0x03a3, 0x03c3, 0x00b5, 0x03c4, /* e0 */ 0x03a6, 0x0398, 0x03a9, 0x03b4, 0x221e, 0x03c6, 0x03b5, 0x2229, /* e8 */ 0x2261, 0x00b1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00f7, 0x2248, /* f0 */ 0x00b0, 0x2219, 0x00b7, 0x221a, 0x207f, 0x00b2, 0x25a0, 0x00a0 /* f8 */ }; struct x_to_unicode u_cp850 = { 128, 0, X2U_CP, AL_ROMAN,"PC Code Page 850","cp850", 0, NULL, 0x00c7, 0x00fc, 0x00e9, 0x00e2, 0x00e4, 0x00e0, 0x00e5, 0x00e7, 0x00ea, 0x00eb, 0x00e8, 0x00ef, 0x00ee, 0x00ec, 0x00c4, 0x00c5, 0x00c9, 0x00e6, 0x00c6, 0x00f4, 0x00f6, 0x00f2, 0x00fb, 0x00f9, 0x00ff, 0x00d6, 0x00dc, 0x00f8, 0x00a3, 0x00d8, 0x00d7, 0x0192, 0x00e1, 0x00ed, 0x00f3, 0x00fa, 0x00f1, 0x00d1, 0x00aa, 0x00ba, 0x00bf, 0x00ae, 0x00ac, 0x00bd, 0x00bc, 0x00a1, 0x00ab, 0x00bb, 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x00c1, 0x00c2, 0x00c0, 0x00a9, 0x2563, 0x2551, 0x2557, 0x255d, 0x00a2, 0x00a5, 0x2510, 0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x00e3, 0x00c3, 0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x00a4, 0x00f0, 0x00d0, 0x00ca, 0x00cb, 0x00c8, 0x0131, 0x00cd, 0x00ce, 0x00cf, 0x2518, 0x250c, 0x2588, 0x2584, 0x00a6, 0x00cc, 0x2580, 0x00d3, 0x00df, 0x00d4, 0x00d2, 0x00f5, 0x00d5, 0x00b5, 0x00fe, 0x00de, 0x00da, 0x00db, 0x00d9, 0x00fd, 0x00dd, 0x00af, 0x00b4, 0x00ad, 0x00b1, 0x2017, 0x00be, 0x00b6, 0x00a7, 0x00f7, 0x00b8, 0x00b0, 0x00a8, 0x00b7, 0x00b9, 0x00b3, 0x00b2, 0x25a0, 0x00a0 }; struct x_to_unicode u_cp852 = { 128, 0, X2U_CP, AL_ROMAN,"PC Code Page 852","cp852", 0, NULL, 0x00c7, 0x00fc, 0x00e9, 0x00e2, 0x00e4, 0x016f, 0x0107, 0x00e7, 0x0142, 0x00eb, 0x0150, 0x0151, 0x00ee, 0x0179, 0x00c4, 0x0106, 0x00c9, 0x0139, 0x013a, 0x00f4, 0x00f6, 0x013d, 0x013e, 0x015a, 0x015b, 0x00d6, 0x00dc, 0x0164, 0x0165, 0x0141, 0x00d7, 0x010d, 0x00e1, 0x00ed, 0x00f3, 0x00fa, 0x0104, 0x0105, 0x017d, 0x017e, 0x0118, 0x0119, 0x00ac, 0x017a, 0x010c, 0x015f, 0x00ab, 0x00bb, 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x00c1, 0x00c2, 0x011a, 0x015e, 0x2563, 0x2551, 0x2557, 0x255d, 0x017b, 0x017c, 0x2510, 0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x0102, 0x0103, 0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x00a4, 0x0111, 0x0110, 0x010e, 0x00cb, 0x010f, 0x0147, 0x00cd, 0x00ce, 0x011b, 0x2518, 0x250c, 0x2588, 0x2584, 0x0162, 0x016e, 0x2580, 0x00d3, 0x00df, 0x00d4, 0x0143, 0x0144, 0x0148, 0x0160, 0x0161, 0x0154, 0x00da, 0x0155, 0x0170, 0x00fd, 0x00dd, 0x0163, 0x00b4, 0x00ad, 0x02dd, 0x02db, 0x02c7, 0x02d8, 0x00a7, 0x00f7, 0x00b8, 0x00b0, 0x00a8, 0x02d9, 0x0171, 0x0158, 0x0159, 0x25a0, 0x00a0 }; struct x_to_unicode u_cp855 = { /* CP855 Cyrillic to Unicode */ 128, 0, X2U_CP, AL_CYRIL,"PC Code Page 855","cp855", 0, NULL, 0x0452, 0x0402, 0x0453, 0x0403, 0x0451, 0x0401, 0x0454, 0x0404, 0x0455, 0x0405, 0x0456, 0x0406, 0x0457, 0x0407, 0x0458, 0x0408, 0x0459, 0x0409, 0x045a, 0x040a, 0x045b, 0x040b, 0x045c, 0x040c, 0x045e, 0x040e, 0x045f, 0x040f, 0x044e, 0x042e, 0x044a, 0x042a, 0x0430, 0x0410, 0x0431, 0x0411, 0x0446, 0x0426, 0x0434, 0x0414, 0x0435, 0x0415, 0x0444, 0x0424, 0x0433, 0x0413, 0x00ab, 0x00bb, 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x0445, 0x0425, 0x0438, 0x0418, 0x2563, 0x2551, 0x2557, 0x255d, 0x0439, 0x0419, 0x2510, 0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x043a, 0x041a, 0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x00a4, 0x043b, 0x041b, 0x043c, 0x041c, 0x043d, 0x041d, 0x043e, 0x041e, 0x043f, 0x2518, 0x250c, 0x2588, 0x2584, 0x041f, 0x044f, 0x2580, 0x042f, 0x0440, 0x0420, 0x0441, 0x0421, 0x0442, 0x0422, 0x0443, 0x0423, 0x0436, 0x0416, 0x0432, 0x0412, 0x044c, 0x042c, 0x2116, 0x002d, 0x044b, 0x042b, 0x0437, 0x0417, 0x0448, 0x0428, 0x044d, 0x042d, 0x0449, 0x0429, 0x0447, 0x0427, 0x00a7, 0x25a0, 0x0020 }; struct x_to_unicode u_cp856 = { /* CP856 (Bulgaria) to Unicode */ 128, 0, X2U_CP, AL_CYRIL,"PC Code Page 856","cp856", 0, NULL, 0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417, 0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e, 0x041f, 0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427, 0x0428, 0x0429, 0x042a, 0x042b, 0x042c, 0x042d, 0x042e, 0x042f, 0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437, 0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e, 0x043f, 0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447, 0x0448, 0x0449, 0x044a, 0x044b, 0x044c, 0x044d, 0x044e, 0x044f, 0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x2563, 0x2551, 0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x2510, 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2116, 0x00a7, 0x2557, 0x255d, 0x2518, 0x250c, 0x2588, 0x2584, 0x258c, 0x2590, 0x2580, 0x03b1, 0x00df, 0x0393, 0x03c0, 0x03a3, 0x03c3, 0x00b5, 0x03c4, 0x03a6, 0x0398, 0x03a9, 0x03b4, 0x221e, 0x03c6, 0x03b5, 0x2229, 0x2261, 0x00b1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00f7, 0x2248, 0x00b0, 0x2219, 0x00b7, 0x221a, 0x207f, 0x00b2, 0x25a0, 0x00a0 }; struct x_to_unicode u_cp857 = { 128, 0, X2U_CP, AL_ROMAN,"PC Code Page 857","cp857", 0, NULL, 0x00c7, 0x00fc, 0x00e9, 0x00e2, 0x00e4, 0x00e0, 0x00e5, 0x00e7, /* 0x80 */ 0x00ea, 0x00eb, 0x00e8, 0x00ef, 0x00ee, 0x0131, 0x00c4, 0x00c5, /* 0x88 */ 0x00c9, 0x00e6, 0x00c6, 0x00f4, 0x00f6, 0x00f2, 0x00fb, 0x00f9, /* 0x90 */ 0x0130, 0x00d6, 0x00dc, 0x00f8, 0x00a3, 0x00d8, 0x015e, 0x015f, /* 0x98 */ 0x00e1, 0x00ed, 0x00f3, 0x00fa, 0x00f1, 0x00d1, 0x011e, 0x011f, /* 0xa0 */ 0x00bf, 0x00ae, 0x00ac, 0x00bd, 0x00bc, 0x00a1, 0x00ab, 0x00bb, /* 0xa8 */ 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x00c1, 0x00c2, 0x00c0, /* 0xb0 */ 0x00a9, 0x2563, 0x2551, 0x2557, 0x255d, 0x00a2, 0x00a5, 0x2510, /* 0xb8 */ 0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x00e3, 0x00c3, /* 0xc0 */ 0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x00a4, /* 0xc8 */ 0x00ba, 0x00aa, 0x00ca, 0x00cb, 0x00c8, 0x20ac, 0x00cd, 0x00ce, /* 0xd0 */ 0x00cf, 0x2518, 0x250c, 0x2588, 0x2584, 0x00a6, 0x00cc, 0x2580, /* 0xd8 */ 0x00d3, 0x00df, 0x00d4, 0x00d2, 0x00f5, 0x00d5, 0x00b5, 0xfffd, /* 0xe0 */ 0x00d7, 0x00da, 0x00db, 0x00d9, 0x00ec, 0x00ff, 0x00af, 0x00b4, /* 0xe8 */ 0x00ad, 0x00b1, 0xfffd, 0x00be, 0x00b6, 0x00a7, 0x00f7, 0x00b8, /* 0xf0 */ 0x00b0, 0x00a8, 0x00b7, 0x00b9, 0x00b3, 0x00b2, 0x25a0, 0x00a0 /* 0xf8 */ }; struct x_to_unicode u_cp858 = { 128, 0, X2U_CP, AL_ROMAN,"PC Code Page 858","cp858", 0, NULL, 0x00c7, 0x00fc, 0x00e9, 0x00e2, 0x00e4, 0x00e0, 0x00e5, 0x00e7, 0x00ea, 0x00eb, 0x00e8, 0x00ef, 0x00ee, 0x00ec, 0x00c4, 0x00c5, 0x00c9, 0x00e6, 0x00c6, 0x00f4, 0x00f6, 0x00f2, 0x00fb, 0x00f9, 0x00ff, 0x00d6, 0x00dc, 0x00f8, 0x00a3, 0x00d8, 0x00d7, 0x0192, 0x00e1, 0x00ed, 0x00f3, 0x00fa, 0x00f1, 0x00d1, 0x00aa, 0x00ba, 0x00bf, 0x00ae, 0x00ac, 0x00bd, 0x00bc, 0x00a1, 0x00ab, 0x00bb, 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x00c1, 0x00c2, 0x00c0, 0x00a9, 0x2563, 0x2551, 0x2557, 0x255d, 0x00a2, 0x00a5, 0x2510, 0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x00e3, 0x00c3, 0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x00a4, 0x00f0, 0x00d0, 0x00ca, 0x00cb, 0x00c8, 0x20ac, 0x00cd, 0x00ce, 0x00cf, 0x2518, 0x250c, 0x2588, 0x2584, 0x00a6, 0x00cc, 0x2580, 0x00d3, 0x00df, 0x00d4, 0x00d2, 0x00f5, 0x00d5, 0x00b5, 0x00fe, 0x00de, 0x00da, 0x00db, 0x00d9, 0x00fd, 0x00dd, 0x00af, 0x00b4, 0x00ad, 0x00b1, 0x2017, 0x00be, 0x00b6, 0x00a7, 0x00f7, 0x00b8, 0x00b0, 0x00a8, 0x00b7, 0x00b9, 0x00b3, 0x00b2, 0x25a0, 0x00a0 }; struct x_to_unicode u_cp862 = { 128, 0, X2U_CP, AL_HEBREW,"PC Code Page 862","cp862", 0, NULL, 0x05d0, 0x05d1, 0x05d2, 0x05d3, 0x05d4, 0x05d5, 0x05d6, 0x05d7, 0x05d8, 0x05d9, 0x05da, 0x05db, 0x05dc, 0x05dd, 0x05de, 0x05df, 0x05e0, 0x05e1, 0x05e2, 0x05e3, 0x05e4, 0x05e5, 0x05e6, 0x05e7, 0x05e8, 0x05e9, 0x05ea, 0x00a2, 0x00a3, 0x00a5, 0x20a7, 0x0192, 0x00e1, 0x00ed, 0x00f3, 0x00fa, 0x00f1, 0x00d1, 0x00aa, 0x00ba, 0x00bf, 0x2310, 0x00ac, 0x00bd, 0x00bc, 0x00a1, 0x00ab, 0x00bb, 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, 0x2555, 0x2563, 0x2551, 0x2557, 0x255d, 0x255c, 0x255b, 0x2510, 0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x255e, 0x255f, 0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x2567, 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256b, 0x256a, 0x2518, 0x250c, 0x2588, 0x2584, 0x258c, 0x2590, 0x2580, 0x03b1, 0x00df, 0x0393, 0x03c0, 0x03a3, 0x03c3, 0x00b5, 0x03c4, 0x03a6, 0x0398, 0x03a9, 0x03b4, 0x221e, 0x03c6, 0x03b5, 0x2229, 0x2261, 0x00b1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00f7, 0x2248, 0x00b0, 0x2219, 0x00b7, 0x221a, 0x207f, 0x00b2, 0x25a0, 0x00a0 }; struct x_to_unicode u_cp864 = { 128, 0, X2U_CP, AL_ARABIC,"PC Code Page 864","cp864", 0, NULL, 0x00b0, 0x00b7, 0x2219, 0x221a, 0x2592, 0x2500, 0x2502, 0x253c, 0x2524, 0x252c, 0x251c, 0x2534, 0x2510, 0x250c, 0x2514, 0x2518, 0x03b2, 0x221e, 0x03c6, 0x00b1, 0x00bd, 0x00bc, 0x2248, 0x00ab, 0x00bb, 0xfef7, 0xfef8, 0xfffd, 0xfffd, 0xfefb, 0xfefc, 0xfffd, 0x00a0, 0x00ad, 0xfe82, 0x00a3, 0x00a4, 0xfe84, 0xfffd, 0xfffd, 0xfe8e, 0xfe8f, 0xfe95, 0xfe99, 0x060c, 0xfe9d, 0xfea1, 0xfea5, 0x0660, 0x0661, 0x0662, 0x0663, 0x0664, 0x0665, 0x0666, 0x0667, 0x0668, 0x0669, 0xfed1, 0x061b, 0xfeb1, 0xfeb5, 0xfeb9, 0x061f, 0x00a2, 0xfe80, 0xfe81, 0xfe83, 0xfe85, 0xfeca, 0xfe8b, 0xfe8d, 0xfe91, 0xfe93, 0xfe97, 0xfe9b, 0xfe9f, 0xfea3, 0xfea7, 0xfea9, 0xfeab, 0xfead, 0xfeaf, 0xfeb3, 0xfeb7, 0xfebb, 0xfebf, 0xfec1, 0xfec5, 0xfecb, 0xfecf, 0x00a6, 0x00ac, 0x00f7, 0x00d7, 0xfec9, 0x0640, 0xfed3, 0xfed7, 0xfedb, 0xfedf, 0xfee3, 0xfee7, 0xfeeb, 0xfeed, 0xfeef, 0xfef3, 0xfebd, 0xfecc, 0xfece, 0xfecd, 0xfee1, 0xfe7d, 0x0651, 0xfee5, 0xfee9, 0xfeec, 0xfef0, 0xfef2, 0xfed0, 0xfed5, 0xfef5, 0xfef6, 0xfedd, 0xfed9, 0xfef1, 0x25a0, 0xfffd }; struct x_to_unicode u_cp866 = { 128, 0, X2U_CP, AL_CYRIL,"PC Code Page 866","cp866", 0, NULL, 0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417, 0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e, 0x041f, 0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427, 0x0428, 0x0429, 0x042a, 0x042b, 0x042c, 0x042d, 0x042e, 0x042f, 0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437, 0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e, 0x043f, 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, 0x2555, 0x2563, 0x2551, 0x2557, 0x255d, 0x255c, 0x255b, 0x2510, 0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x255e, 0x255f, 0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x2567, 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256b, 0x256a, 0x2518, 0x250c, 0x2588, 0x2584, 0x258c, 0x2590, 0x2580, 0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447, 0x0448, 0x0449, 0x044a, 0x044b, 0x044c, 0x044d, 0x044e, 0x044f, 0x0401, 0x0451, 0x0404, 0x0454, 0x0407, 0x0457, 0x040e, 0x045e, 0x00b0, 0x2219, 0x00b7, 0x221a, 0x2116, 0x00a4, 0x25a0, 0x00a0 }; struct x_to_unicode u_cp869 = { 128, 0, X2U_CP, AL_GREEK,"PC Code Page 869","cp869", 0, NULL, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x0386, 0xfffd, 0x00b7, 0x00ac, 0x00a6, 0x2018, 0x2019, 0x0388, 0x2015, 0x0389, 0x038a, 0x03aa, 0x038c, 0xfffd, 0xfffd, 0x038e, 0x03ab, 0x00a9, 0x038f, 0x00b2, 0x00b3, 0x03ac, 0x00a3, 0x03ad, 0x03ae, 0x03af, 0x03ca, 0x0390, 0x03cc, 0x03cd, 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397, 0x00bd, 0x0398, 0x0399, 0x00ab, 0x00bb, 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x039a, 0x039b, 0x039c, 0x039d, 0x2563, 0x2551, 0x2557, 0x255d, 0x039e, 0x039f, 0x2510, 0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x03a0, 0x03a1, 0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x03a3, 0x03a4, 0x03a5, 0x03a6, 0x03a7, 0x03a8, 0x03a9, 0x03b1, 0x03b2, 0x03b3, 0x2518, 0x250c, 0x2588, 0x2584, 0x03b4, 0x03b5, 0x2580, 0x03b6, 0x03b7, 0x03b8, 0x03b9, 0x03ba, 0x03bb, 0x03bc, 0x03bd, 0x03be, 0x03bf, 0x03c0, 0x03c1, 0x03c3, 0x03c2, 0x03c4, 0x0384, 0x00ad, 0x00b1, 0x03c5, 0x03c6, 0x03c7, 0x00a7, 0x03c8, 0x0385, 0x00b0, 0x00a8, 0x03c9, 0x03cb, 0x03b0, 0x03ce, 0x25a0, 0x00a0 }; /* Windows code pages */ struct x_to_unicode u_cp1250 = { /* Windows Latin-2 */ 128, 0, X2U_CP, AL_ROMAN,"Windows Code Page 1250","cp1250", 0, NULL, 0x20ac, 0xfffd, 0x201a, 0x0192, 0x201e, 0x2026, 0x2020, 0x2021, /* 80 */ 0x005e, 0x2031, 0x0160, 0x003c, 0x015a, 0x0164, 0x017d, 0x0179, /* 88 */ 0xfffd, 0x2018, 0x2019, 0x201c, 0x201d, 0x2022, 0x2012, 0x2014, /* 90 */ 0xfffd, 0x2122, 0x0161, 0x003e, 0x015b, 0x0165, 0x017e, 0x017a, /* 98 */ 0x00A0, 0x02c7, 0x02d8, 0x0141, 0x00A4, 0x0104, 0x00A6, 0x00A7, /* A0 */ 0x00A8, 0x00a9, 0x015E, 0x00ab, 0x00ac, 0x002D, 0x00ae, 0x017B, /* A8 */ 0x00B0, 0x00b1, 0x02DB, 0x0142, 0x00B4, 0x00b5, 0x00b6, 0x00b7, /* B0 */ 0x00B8, 0x0105, 0x015F, 0x00bb, 0x013d, 0x02DD, 0x013E, 0x017C, /* B8 */ 0x0154, 0x00C1, 0x00C2, 0x0102, 0x00C4, 0x0139, 0x0106, 0x00C7, /* C0 */ 0x010C, 0x00C9, 0x0118, 0x00CB, 0x011A, 0x00CD, 0x00CE, 0x010E, 0x0110, 0x0143, 0x0147, 0x00D3, 0x00D4, 0x0150, 0x00D6, 0x00D7, 0x0158, 0x016E, 0x00DA, 0x0170, 0x00DC, 0x00DD, 0x0162, 0x00DF, 0x0155, 0x00E1, 0x00E2, 0x0103, 0x00E4, 0x013A, 0x0107, 0x00E7, 0x010D, 0x00E9, 0x0119, 0x00EB, 0x011B, 0x00ED, 0x00EE, 0x010F, 0x0111, 0x0144, 0x0148, 0x00F3, 0x00F4, 0x0151, 0x00F6, 0x00F7, 0x0159, 0x016F, 0x00FA, 0x0171, 0x00FC, 0x00FD, 0x0163, 0x02D9 }; struct x_to_unicode u_cp1251 = { /* Windows Cyrillic */ 128, 0, X2U_CP, AL_CYRIL,"Windows Code Page 1251","cp1251", 0, NULL, 0x0402, 0x0403, 0x201a, 0x0453, 0x201e, 0x2026, 0x2020, 0x2021, /* 80 */ 0x20ac, 0x2031, 0x0409, 0x003c, 0x040a, 0x040c, 0x040b, 0x040f, /* 88 */ 0x0452, 0x2018, 0x2019, 0x201c, 0x201d, 0x2022, 0x2012, 0x2014, /* 90 */ 0x007e, 0x2122, 0x0459, 0x003e, 0x045a, 0x045c, 0x045b, 0x045f, /* 98 */ 0x00A0, 0x040e, 0x045e, 0x0408, 0x00A4, 0x0490, 0x00A6, 0x00A7, /* a0 */ 0x0401, 0x00A9, 0x0404, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x0407, /* a8 */ 0x00b0, 0x00b1, 0x0406, 0x0456, 0x0491, 0x00B5, 0x00B6, 0x00B7, /* b0 */ 0x0451, 0x2116, 0x0454, 0x00BB, 0x0458, 0x0405, 0x0455, 0x0457, /* b8 */ 0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417, /* c0 */ 0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e, 0x041f, /* c8 */ 0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427, /* d0 */ 0x0428, 0x0429, 0x042a, 0x042b, 0x042c, 0x042d, 0x042e, 0x042f, /* d8 */ 0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437, /* e0 */ 0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e, 0x043f, /* e8 */ 0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447, /* f0 */ 0x0448, 0x0449, 0x044a, 0x044b, 0x044c, 0x044d, 0x044e, 0x044f /* f8 */ }; struct x_to_unicode u_cp1252 = { /* Windows Latin-1 */ /* The following code points added September 1998: 0x80: Euro 0x8E: Latin Capital Letter Z with Caron 0x9E: Latin Small Letter Z with Caron Announced by Murray Sargent to Unicode consortium, email, 3 September 1998. The code page was changed in June 1998. The change is reflected in Windows 98 and "recent service packs" for Window 95 and Windows NT 4.0. */ 128, 0, X2U_CP, AL_ROMAN,"Windows Code Page 1252","cp1252", 0, NULL, 0x20ac, 0xfffd, 0x201a, 0x0192, 0x201e, 0x2026, 0x2020, 0x2021, 0x005e, 0x2031, 0x0160, 0x003c, 0x0152, 0xfffd, 0x017D, 0xfffd, 0xfffd, 0x2018, 0x2019, 0x201c, 0x201d, 0x2022, 0x2012, 0x2014, 0x007e, 0x2122, 0x0161, 0x003e, 0x0153, 0xfffd, 0x017E, 0x0178, 0x00A0, 0x00A1, 0x00A2, 0x00A3, 0x00A4, 0x00A5, 0x00A6, 0x00A7, 0x00A8, 0x00A9, 0x00AA, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00AF, 0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x00B4, 0x00B5, 0x00B6, 0x00B7, 0x00B8, 0x00B9, 0x00BA, 0x00BB, 0x00BC, 0x00BD, 0x00BE, 0x00BF, 0x00C0, 0x00C1, 0x00C2, 0x00C3, 0x00C4, 0x00C5, 0x00C6, 0x00C7, 0x00C8, 0x00C9, 0x00CA, 0x00CB, 0x00CC, 0x00CD, 0x00CE, 0x00CF, 0x00D0, 0x00D1, 0x00D2, 0x00D3, 0x00D4, 0x00D5, 0x00D6, 0x00D7, 0x00D8, 0x00D9, 0x00DA, 0x00DB, 0x00DC, 0x00DD, 0x00DE, 0x00DF, 0x00E0, 0x00E1, 0x00E2, 0x00E3, 0x00E4, 0x00E5, 0x00E6, 0x00E7, 0x00E8, 0x00E9, 0x00EA, 0x00EB, 0x00EC, 0x00ED, 0x00EE, 0x00EF, 0x00F0, 0x00F1, 0x00F2, 0x00F3, 0x00F4, 0x00F5, 0x00F6, 0x00F7, 0x00F8, 0x00F9, 0x00FA, 0x00FB, 0x00FC, 0x00FD, 0x00FE, 0x00FF }; struct x_to_unicode u_cp1253 = { /* Windows Greece */ 128, 0, X2U_CP, AL_GREEK,"Windows Code Page 1253","cp1253", 0, NULL, 0x20ac, 0xfffd, 0x201a, 0x0192, 0x201e, 0x2026, 0x2020, 0x2021, /* 80 */ 0xfffd, 0x2031, 0xfffd, 0x003c, 0xfffd, 0xfffd, 0xfffd, 0xfffd, /* 88 */ 0xfffd, 0x2018, 0x2019, 0x201c, 0x201d, 0x2022, 0x2012, 0x2014, /* 90 */ 0xfffd, 0x2122, 0xfffd, 0x003e, 0xfffd, 0xfffd, 0xfffd, 0xfffd, /* 98 */ 0x00A0, 0x00b7, 0x0386, 0x00A3, 0x00A4, 0x00A5, 0x00A6, 0x00A7, /* a0 */ 0x00A8, 0x00A9, 0x00AA, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00AF, /* a8 */ 0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x00B7, 0x00B5, 0x00B6, 0x00B7, /* b0 */ 0x0388, 0x0389, 0x038A, 0x00BB, 0x038C, 0x00BD, 0x038E, 0x038F, /* b8 */ 0x0390, 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397, /* c0 */ 0x0398, 0x0399, 0x039A, 0x039B, 0x039C, 0x039D, 0x039E, 0x039F, /* c8 */ 0x03a0, 0x03a1, 0xfffd, 0x03a3, 0x03a4, 0x03a5, 0x03a6, 0x03a7, /* d0 */ 0x03a8, 0x03a9, 0x03aA, 0x03aB, 0x03aC, 0x03aD, 0x03aE, 0x03aF, /* d8 */ 0x03b0, 0x03b1, 0x03b2, 0x03b3, 0x03b4, 0x03b5, 0x03b6, 0x03b7, /* e0 */ 0x03b8, 0x03b9, 0x03bA, 0x03bB, 0x03bC, 0x03bD, 0x03bE, 0x03bF, /* e8 */ 0x03c0, 0x03c1, 0x03c2, 0x03c3, 0x03c4, 0x03c5, 0x03c6, 0x03c7, /* f0 */ 0x03c8, 0x03c9, 0x03cA, 0x03cB, 0x03cC, 0x03cD, 0x03cE, 0xfffd /* f8 */ }; struct x_to_unicode u_cp1254 = { /* Windows Turkey */ 128, 0, X2U_CP, AL_ROMAN,"Windows Code Page 1254","cp1254", 0, NULL, 0x20ac, 0xfffd, 0x201a, 0x0192, 0x201e, 0x2026, 0x2020, 0x2021, /* 80 */ 0x005e, 0x2031, 0x0160, 0x003c, 0x0152, 0xfffd, 0xfffd, 0xfffd, /* 88 */ 0xfffd, 0x2018, 0x2019, 0x201c, 0x201d, 0x2022, 0x2012, 0x2014, /* 90 */ 0x007e, 0x2122, 0x0161, 0x003e, 0x0153, 0xfffd, 0xfffd, 0x0178, /* 98 */ 0x00A0, 0x00A1, 0x00A2, 0x00A3, 0x00A4, 0x00A5, 0x00A6, 0x00A7, 0x00A8, 0x00A9, 0x00AA, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00AF, 0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x00B4, 0x00B5, 0x00B6, 0x00B7, 0x00B8, 0x00B9, 0x00BA, 0x00BB, 0x00BC, 0x00BD, 0x00BE, 0x00BF, 0x00C0, 0x00C1, 0x00C2, 0x00C3, 0x00C4, 0x00C5, 0x00C6, 0x00C7, 0x00C8, 0x00C9, 0x00CA, 0x00CB, 0x00CC, 0x00CD, 0x00CE, 0x00CF, 0x011e, 0x00D1, 0x00D2, 0x00D3, 0x00D4, 0x00D5, 0x00D6, 0x00D7, 0x00D8, 0x00D9, 0x00DA, 0x00DB, 0x00DC, 0x0130, 0x015e, 0x00DF, 0x00E0, 0x00E1, 0x00E2, 0x00E3, 0x00E4, 0x00E5, 0x00E6, 0x00E7, 0x00E8, 0x00E9, 0x00EA, 0x00EB, 0x00EC, 0x00ED, 0x00EE, 0x00EF, 0x011f, 0x00F1, 0x00F2, 0x00F3, 0x00F4, 0x00F5, 0x00F6, 0x00F7, 0x00F8, 0x00F9, 0x00FA, 0x00FB, 0x00FC, 0x0131, 0x015f, 0x00FF }; struct x_to_unicode u_cp1255 = { /* Windows Hebrew */ 128, 0, X2U_CP, AL_ROMAN,"Windows Code Page 1255 (Hebrew)","cp1255", 0, NULL, 0x20AC, 0xFFFD, 0x201a, 0x0192, 0x201e, 0x2026, 0x2020, 0x2021, 0x02c6, 0x2030, 0xfffd, 0x2039, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x2018, 0x2019, 0x201c, 0x201d, 0x2022, 0x2013, 0x2014, 0x02dc, 0x2122, 0xfffd, 0x203a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x00a0, 0x00a1, 0x00a2, 0x00a3, 0x20aa, 0x00a5, 0x00a6, 0x00a7, 0x00a8, 0x00a9, 0x00d7, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0x00af, 0x00b0, 0x00b1, 0x00b2, 0x00b3, 0x00b4, 0x00b5, 0x00b6, 0x00b7, 0x00b8, 0x00b9, 0x00f7, 0x00bb, 0x00bc, 0x00bd, 0x00be, 0x00bf, 0x05b0, 0x05b1, 0x05b2, 0x05b3, 0x05b4, 0x05b5, 0x05b6, 0x05b7, 0x05b8, 0x05b9, 0xfffd, 0x05bb, 0x05bc, 0x05bd, 0x05be, 0x05bf, 0x05c0, 0x05c1, 0x05c2, 0x05c3, 0x05f0, 0x05f1, 0x05f2, 0x05f3, 0x05f4, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x05d0, 0x05d1, 0x05d2, 0x05d3, 0x05d4, 0x05d5, 0x05d6, 0x05d7, 0x05d8, 0x05d9, 0x05da, 0x05db, 0x05dc, 0x05dd, 0x05de, 0x05df, 0x05e0, 0x05e1, 0x05e2, 0x05e3, 0x05e4, 0x05e5, 0x05e6, 0x05e7, 0x05e8, 0x05e9, 0x05ea, 0xfffd, 0xfffd, 0x200e, 0x200f, 0xfffd }; struct x_to_unicode u_cp1256 = { /* Windows Arabic */ 128, 0, X2U_CP, AL_ROMAN,"Windows Code Page 1256 (Arabic)","cp1256", 0, NULL, 0x20ac, 0x067e, 0x201a, 0x0192, 0x201e, 0x2026, 0x2020, 0x2021, 0x02c6, 0x2030, 0xfffd, 0x2039, 0x0152, 0x0686, 0x0698, 0xfffd, /* 88 */ 0x06af, 0x2018, 0x2019, 0x201c, 0x201d, 0x2022, 0x2013, 0x2014, /* 90 */ 0xfffd, 0x2122, 0xfffd, 0x003a, 0x0153, 0x200c, 0x200d, 0xfffd, /* 98 */ 0x00A0, 0x060c, 0x00A2, 0x00A3, 0x00A4, 0x00a5, 0x00A6, 0x00A7, /* a0 */ 0x00a8, 0x00A9, 0xfffd, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00af, /* a8 */ 0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x00b4, 0x00B5, 0x00B6, 0x00B7, /* b0 */ 0x00b8, 0x00B9, 0x061b, 0x00BB, 0x00BC, 0x00BD, 0x00BE, 0x061f, /* b8 */ 0xfffd, 0x0621, 0x0622, 0x0623, 0x0624, 0x0625, 0x0626, 0x0627, /* c0 */ 0x0628, 0x0629, 0x062a, 0x062b, 0x062c, 0x062d, 0x062e, 0x062f, /* c8 */ 0x0630, 0x0631, 0x0632, 0x0633, 0x0634, 0x0635, 0x0636, 0x00D7, /* d0 */ 0x0637, 0x0638, 0x0639, 0x063a, 0x0640, 0x0641, 0x0642, 0x0643, /* d8 */ 0x00e0, 0x0644, 0x00e2, 0x0645, 0x0646, 0x0647, 0x0648, 0x00e7, /* e0 */ 0x00e8, 0x00E9, 0x00ea, 0x00eb, 0x0649, 0x064a, 0x00ee, 0x00ef, /* e8 */ 0x064b, 0x064c, 0x064d, 0x064e, 0x00f4, 0x064f, 0x0650, 0x00F7, /* f0 */ 0x0651, 0x00f9, 0x0652, 0x00fb, 0x00fc, 0x200e, 0x200f, 0xfffd /* f8 */ }; struct x_to_unicode u_cp1257 = { /* Windows Latin-4 */ 128, 0, X2U_CP, AL_ROMAN,"Windows Code Page 1257","cp1257", 0, NULL, 0x20ac, 0xfffd, 0x201a, 0xfffd, 0x201e, 0x2026, 0x2020, 0x2021, /* 80 */ 0xfffd, 0x2031, 0xfffd, 0x003c, 0xfffd, 0xfffd, 0xfffd, 0xfffd, /* 88 */ 0xfffd, 0x2018, 0x2019, 0x201c, 0x201d, 0x2022, 0x2012, 0x2014, /* 90 */ 0xfffd, 0x2122, 0xfffd, 0x003e, 0xfffd, 0xfffd, 0xfffd, 0xfffd, /* 98 */ 0x00A0, 0xfffd, 0x00A2, 0x00A3, 0x00A4, 0xfffd, 0x00A6, 0x00A7, /* a0 */ 0x00d8, 0x00A9, 0x0156, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00c6, /* a8 */ 0x00B0, 0x00B1, 0x00B2, 0x00B3, 0xfffd, 0x00B5, 0x00B6, 0x00B7, /* b0 */ 0x00f8, 0x00B9, 0x0157, 0x00BB, 0x00BC, 0x00BD, 0x00BE, 0x00e6, /* b8 */ 0x0104, 0x012e, 0x0100, 0x0106, 0x00C4, 0x00C5, 0x0118, 0x0112, /* c0 */ 0x010C, 0x00C9, 0x0179, 0x0116, 0x0122, 0x0136, 0x012a, 0x00b7, /* c8 */ 0x0160, 0x0143, 0x0145, 0x00d3, 0x014c, 0x00D5, 0x00D6, 0x00D7, /* d0 */ 0x0172, 0x0141, 0x015A, 0x016a, 0x00DC, 0x017b, 0x017d, 0x00DF, /* d8 */ 0x0105, 0x012f, 0x0101, 0x0107, 0x00E4, 0x00E5, 0x0119, 0x0113, /* e0 */ 0x010D, 0x00E9, 0x017a, 0x0117, 0x0123, 0x0137, 0x012b, 0x013c, /* e8 */ 0x0161, 0x0144, 0x0146, 0x00f3, 0x014d, 0x00F5, 0x00F6, 0x00F7, /* f0 */ 0x0173, 0x0142, 0x015b, 0x016b, 0x00fc, 0x017c, 0x017e, 0xfffd /* f8 */ }; struct x_to_unicode u_cp1258 = { /* Windows Viet Nam */ 128, 0, X2U_CP, AL_ROMAN,"Windows Code Page 1258 (Viet Nam)","cp1258", 0, NULL, 0x20ac, 0xfffd, 0x201a, 0x0192, 0x201e, 0x2026, 0x2020, 0x2021, /* 80 */ 0x02c6, 0x2030, 0xfffd, 0x2039, 0x0152, 0xfffd, 0xfffd, 0xfffd, /* 88 */ 0xfffd, 0x2018, 0x2019, 0x201c, 0x201d, 0x2022, 0x2013, 0x2014, /* 90 */ 0x02dc, 0x2122, 0xfffd, 0x203a, 0x0153, 0xfffd, 0xfffd, 0x0178, /* 98 */ 0x00A0, 0x00a1, 0x00A2, 0x00A3, 0x00A4, 0x00a5, 0x00A6, 0x00A7, /* a0 */ 0x00a8, 0x00A9, 0x00aa, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00af, /* a8 */ 0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x00b4, 0x00B5, 0x00B6, 0x00B7, /* b0 */ 0x00b8, 0x00B9, 0x00ba, 0x00BB, 0x00BC, 0x00BD, 0x00BE, 0x00bf, /* b8 */ 0x00c0, 0x00c1, 0x00c2, 0x0102, 0x00C4, 0x00C5, 0x00c6, 0x00c7, /* c0 */ 0x00c8, 0x00C9, 0x00ca, 0x00cb, 0x0300, 0x00cd, 0x00ce, 0x00cf, /* c8 */ 0x0110, 0x00d1, 0x0309, 0x00d3, 0x00d4, 0x01a0, 0x00D6, 0x00D7, /* d0 */ 0x00d8, 0x00d9, 0x00da, 0x00db, 0x00DC, 0x01af, 0x0303, 0x00DF, /* d8 */ 0x00e0, 0x00e1, 0x00e2, 0x0103, 0x00E4, 0x00E5, 0x00e6, 0x00d7, /* e0 */ 0x00e8, 0x00E9, 0x00ea, 0x00eb, 0x0301, 0x00ed, 0x00ee, 0x00ef, /* e8 */ 0x0111, 0x00f1, 0x0323, 0x00f3, 0x00f4, 0x01a1, 0x00F6, 0x00F7, /* f0 */ 0x00f8, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x01b0, 0x20ab, 0x00ff /* f8 */ }; struct x_to_unicode u_cp37 = { /* EBCDIC U.S. */ 256, 0, X2U_CP, AL_ROMAN,"Code Page 037 EBCDIC (U.S.)","cp037", 0, NULL, 0x0000, 0x0001, 0x0002, 0x0003, 0x009C, 0x0009, 0x0086, 0x007F, 0x0097, 0x008D, 0x008E, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, 0x0010, 0x0011, 0x0012, 0x0013, 0x009D, 0x0085, 0x0008, 0x0087, 0x0018, 0x0019, 0x0092, 0x008F, 0x001C, 0x001D, 0x001E, 0x001F, 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000A, 0x0017, 0x001B, 0x0088, 0x0089, 0x008A, 0x008B, 0x008C, 0x0005, 0x0006, 0x0007, 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, 0x0098, 0x0099, 0x009A, 0x009B, 0x0014, 0x0015, 0x009E, 0x001A, 0x0020, 0x00A0, 0x00E2, 0x00E4, 0x00E0, 0x00E1, 0x00E3, 0x00E5, 0x00E7, 0x00F1, 0x00A2, 0x002E, 0x003C, 0x0028, 0x002B, 0x007C, 0x0026, 0x00E9, 0x00EA, 0x00EB, 0x00E8, 0x00ED, 0x00EE, 0x00EF, 0x00EC, 0x00DF, 0x0021, 0x0024, 0x002A, 0x0029, 0x003B, 0x00AC, 0x002D, 0x002F, 0x00C2, 0x00C4, 0x00C0, 0x00C1, 0x00C3, 0x00C5, 0x00C7, 0x00D1, 0x00A6, 0x002C, 0x0025, 0x005F, 0x003E, 0x003F, 0x00F8, 0x00C9, 0x00CA, 0x00CB, 0x00C8, 0x00CD, 0x00CE, 0x00CF, 0x00CC, 0x0060, 0x003A, 0x0023, 0x0040, 0x0027, 0x003D, 0x0022, 0x00D8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00AB, 0x00BB, 0x00F0, 0x00FD, 0x00FE, 0x00B1, 0x00B0, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, 0x0070, 0x0071, 0x0072, 0x00AA, 0x00BA, 0x00E6, 0x00B8, 0x00C6, 0x00A4, 0x00B5, 0x007E, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007A, 0x00A1, 0x00BF, 0x00D0, 0x00DD, 0x00DE, 0x00AE, 0x005E, 0x00A3, 0x00A5, 0x00B7, 0x00A9, 0x00A7, 0x00B6, 0x00BC, 0x00BD, 0x00BE, 0x005B, 0x005D, 0x00AF, 0x00A8, 0x00B4, 0x00D7, 0x007B, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00AD, 0x00F4, 0x00F6, 0x00F2, 0x00F3, 0x00F5, 0x007D, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, 0x0050, 0x0051, 0x0052, 0x00B9, 0x00FB, 0x00FC, 0x00F9, 0x00FA, 0x00FF, 0x005C, 0x00F7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005A, 0x00B2, 0x00D4, 0x00D6, 0x00D2, 0x00D3, 0x00D5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00B3, 0x00DB, 0x00DC, 0x00D9, 0x00DA, 0x009F }; /* Other proprietary 8-bit sets */ struct x_to_unicode u_decmcs = { 96, 32, X2U_DEC|X2U_STD, AL_ROMAN, "DEC Multinational", "dec-mcs", 0, "%5", 0x00A0, 0x00A1, 0x00A2, 0x00A3, 0xfffd, 0x00A5, 0xfffd, 0x00A7, 0x00A4, 0x00A9, 0x00AA, 0x00AB, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x00B0, 0x00B1, 0x00B2, 0x00B3, 0xfffd, 0x00B5, 0x00B6, 0x00B7, 0xfffd, 0x00B9, 0x00BA, 0x00BB, 0x00BC, 0x00BD, 0xfffd, 0x00BF, 0x00C0, 0x00C1, 0x00C2, 0x00C3, 0x00C4, 0x00C5, 0x00C6, 0x00C7, 0x00C8, 0x00C9, 0x00CA, 0x00CB, 0x00CC, 0x00CD, 0x00CE, 0x00CF, 0xfffd, 0x00D1, 0x00D2, 0x00D3, 0x00D4, 0x00D5, 0x00D6, 0x0152, 0x00D8, 0x00D9, 0x00DA, 0x00DB, 0x00DC, 0x00DD, 0xfffd, 0x00DF, 0x00E0, 0x00E1, 0x00E2, 0x00E3, 0x00E4, 0x00E5, 0x00E6, 0x00E7, 0x00E8, 0x00E9, 0x00EA, 0x00EB, 0x00EC, 0x00ED, 0x00EE, 0x00EF, 0xfffd, 0x00F1, 0x00F2, 0x00F3, 0x00F4, 0x00F5, 0x00F6, 0x0153, 0x00F8, 0x00F9, 0x00FA, 0x00FB, 0x00FC, 0x00FD, 0xfffd, 0x00FF }; struct x_to_unicode u_hproman8 = { 96, 32, X2U_STD, AL_ROMAN, "Hewlett Packard Roman 8", "hp-roman8", 0, NULL, 0x00a0, 0x00c0, 0x00c2, 0x00c8, 0x00ca, 0x00cb, 0x00ce, 0x00cf, 0x00b4, 0x00a6, 0x00a9, 0x00a8, 0x00ac, 0x00d9, 0x00db, 0x20a4, 0x00af, 0x00dd, 0x00fd, 0x00b0, 0x00c7, 0x00e7, 0x00d1, 0x00f1, 0x00a1, 0x00bf, 0x00a4, 0x00a3, 0x00a5, 0x00a7, 0x0192, 0x00a2, 0x00e2, 0x00ea, 0x00f4, 0x00fb, 0x00e1, 0x00e9, 0x00f3, 0x00fa, 0x00e0, 0x00e8, 0x00f2, 0x00f9, 0x00e4, 0x00eb, 0x00f6, 0x00fc, 0x00c5, 0x00ee, 0x00d8, 0x00c6, 0x00e5, 0x00ed, 0x00f8, 0x00e6, 0x00c4, 0x00ec, 0x00d6, 0x00dc, 0x00c9, 0x00ef, 0x00df, 0x00d4, 0x00c1, 0x00c3, 0x00e3, 0x00d0, 0x00f0, 0x00cd, 0x00cc, 0x00d3, 0x00d2, 0x00d5, 0x00f5, 0x0160, 0x0161, 0x00da, 0x00b8, 0x00ff, 0x00de, 0x00fe, 0x00b7, 0x00b5, 0x00b6, 0x00be, 0x2015, 0x00bc, 0x00bd, 0x00aa, 0x00ba, 0x00ab, 0x2588, 0x00bb, 0x00b1, 0xfffd }; struct x_to_unicode u_dgi = { 96,32,X2U_STD,AL_ROMAN,"Data General International","dg-international",0,NULL, 0x00a0, 0x00ac, 0x00bd, 0x00b5, 0x00b2, 0x00b3, 0x00a4, 0x00a2, 0x00a3, 0x00aa, 0x00ba, 0x00a1, 0x00bf, 0x00a9, 0x00ae, 0x2021, 0x00bb, 0x00ab, 0x00b6, 0x2122, 0x0192, 0x00a5, 0x00b1, 0x2264, 0x2265, 0x00b7, 0x00b8, 0x00a7, 0x00b0, 0x00a8, 0x00b4, 0x2191, 0x00c1, 0x00c0, 0x00c2, 0x00c4, 0x00c3, 0x00c5, 0x00c6, 0x00c7, 0x00c9, 0x00c8, 0x00ca, 0x00cb, 0x00cd, 0x00cc, 0x00ce, 0x00cf, 0x00d1, 0x00d3, 0x00d2, 0x00d4, 0x00d6, 0x00d5, 0x00d8, 0x0276, 0x00da, 0x00d9, 0x00db, 0x00dc, 0xfffd, 0x0178, 0xfffd, 0xfffd, 0x00e1, 0x00e0, 0x00e2, 0x00e4, 0x00e3, 0x00e5, 0x00e6, 0x00e7, 0x00e9, 0x00e8, 0x00ea, 0x00eb, 0x00ed, 0x00ec, 0x00ee, 0x00ef, 0x00f1, 0x00f3, 0x00f2, 0x00f4, 0x00f6, 0x00f5, 0x00f8, 0x0153, 0x00fa, 0x00f9, 0x00fb, 0x00fc, 0x00df, 0x00ff, 0xfffd, 0x2588 }; struct x_to_unicode u_nextstep = { 128, 0, 0, AL_ROMAN,"NeXTSTEP Multinational","next-multinational",0,NULL, 0x00a0, 0x00c0, 0x00c1, 0x00c2, 0x00c3, 0x00c4, 0x00c5, 0x00c7, 0x00c8, 0x00c9, 0x00ca, 0x00cb, 0x00cc, 0x00cd, 0x00ce, 0x00cf, 0x00d0, 0x00d1, 0x00d2, 0x00d3, 0x00d4, 0x00d5, 0x00d6, 0x00d9, 0x00da, 0x00db, 0x00dc, 0x00dd, 0x00de, 0x00b5, 0x00d7, 0x00f7, 0x00a9, 0x00a1, 0x00a2, 0x00a3, 0x2044, 0x00a5, 0x0192, 0x00a7, 0x00a4, 0x2019, 0x201c, 0x00ab, 0x2039, 0x203a, 0xfb01, 0xfb02, 0x00ae, 0x2013, 0x2020, 0x2021, 0x00b7, 0x00a6, 0x00b6, 0x2022, 0x201a, 0x201e, 0x201d, 0x00bb, 0x2026, 0x2030, 0x00ac, 0x00bf, 0x00b9, 0x02cb, 0x00b4, 0x02c6, 0x02dc, 0x00af, 0x02d8, 0x02d9, 0x00a8, 0x00b2, 0x02da, 0x00b8, 0x00b3, 0x02dd, 0x02db, 0x02c7, 0x2014, 0x00b1, 0x00bc, 0x00bd, 0x00be, 0x00e0, 0x00e1, 0x00e2, 0x00e3, 0x00e4, 0x00e5, 0x00e7, 0x00e8, 0x00e9, 0x00ea, 0x00eb, 0x00ec, 0x00c6, 0x00ed, 0x00aa, 0x00ee, 0x00ef, 0x00f0, 0x00f1, 0x0141, 0x00d8, 0x0152, 0x00ba, 0x00f2, 0x00f3, 0x00f4, 0x00f5, 0x00f6, 0x00e6, 0x00f9, 0x00fa, 0x00fb, 0x0131, 0x00fc, 0x00fd, 0x0142, 0x00f8, 0x0153, 0x00df, 0x00fe, 0x00ff, 0xfffd, 0xfffd }; struct x_to_unicode u_maclatin = { 128, 0, 0, AL_ROMAN,"Macintosh Latin","maclatin", 0, NULL, 0x00C4, 0x00C5, 0x00C7, 0x00C9, 0x00D1, 0x00D6, 0x00DC, 0x00E1, 0x00E0, 0x00E2, 0x00E4, 0x00E3, 0x00E5, 0x00E7, 0x00E9, 0x00E8, 0x00EA, 0x00EB, 0x00ED, 0x00EC, 0x00EE, 0x00EF, 0x00F1, 0x00F3, 0x00F2, 0x00F4, 0x00F6, 0x00F5, 0x00FA, 0x00F9, 0x00FB, 0x00FC, 0x00DD, 0x00B0, 0x00A2, 0x00A3, 0x00A7, 0x2022, 0x00B6, 0x00DF, 0x00AE, 0x00A9, 0x2122, 0x00B4, 0x00A8, 0x2260, 0x00C6, 0x00D8, 0x221E, 0x00B1, 0x2264, 0x2265, 0x00A5, 0x00B5, 0x2202, 0x2211, 0x220F, 0x03C0, 0x222B, 0x00AA, 0x00BA, 0x2126, 0x00E6, 0x00F8, 0x00BF, 0x00A1, 0x00AC, 0x221A, 0x0192, 0x2248, 0x2206, 0x00AB, 0x00BB, 0x2026, 0x00A0, 0x00C0, 0x00C3, 0x00D5, 0x0152, 0x0153, 0x2013, 0x2014, 0x201C, 0x201D, 0x2018, 0x2019, 0x00F7, 0x25CA, 0x00FF, 0x0178, 0x2044, 0x00A4, 0x00D0, 0x00F0, 0x00DE, 0x00FE, 0x00FD, 0x00B7, 0x201A, 0x201E, 0x2030, 0x00C2, 0x00CA, 0x00C1, 0x00CB, 0x00C8, 0x00CD, 0x00CE, 0x00CF, 0x00CC, 0x00D3, 0x00D4, 0xF8FF, 0x00D2, 0x00DA, 0x00DB, 0x00D9, 0x0131, 0x02C6, 0x02DC, 0x00AF, 0x02D8, 0x02D9, 0x02DA, 0x00B8, 0x02DD, 0x02DB, 0x02C7 }; struct x_to_unicode u_quickdraw = { 128, 0, 0, AL_ROMAN,"QuickDraw","quickdraw", 0, NULL, 0x00C4, 0x00C5, 0x00C7, 0x00C9, 0x00D1, 0x00D6, 0x00DC, 0x00E1, 0x00E0, 0x00E2, 0x00E4, 0x00E3, 0x00E5, 0x00E7, 0x00E9, 0x00E8, 0x00EA, 0x00EB, 0x00ED, 0x00EC, 0x00EE, 0x00EF, 0x00F1, 0x00F3, 0x00F2, 0x00F4, 0x00F6, 0x00F5, 0x00FA, 0x00F9, 0x00FB, 0x00FC, 0x2020, 0x00B0, 0x00A2, 0x00A3, 0x00A7, 0x2022, 0x00B6, 0x00DF, 0x00AE, 0x00A9, 0x2122, 0x00B4, 0x00A8, 0x2260, 0x00C6, 0x00D8, 0x221E, 0x00B1, 0x2264, 0x2265, 0x00A5, 0x00B5, 0x2202, 0x2211, 0x220F, 0x03C0, 0x222B, 0x00AA, 0x00BA, 0x03A9, 0x00E6, 0x00F8, 0x00BF, 0x00A1, 0x00AC, 0x221A, 0x0192, 0x2248, 0x2206, 0x00AB, 0x00BB, 0x2026, 0x00A0, 0x00C0, 0x00C3, 0x00D5, 0x0152, 0x0153, 0x2013, 0x2014, 0x201C, 0x201D, 0x2018, 0x2019, 0x00F7, 0x25CA, 0x00FF, 0x0178, 0x2044, 0x00A4, 0x2039, 0x203A, 0xFB01, 0xFB02, 0x2021, 0x00B7, 0x201A, 0x201E, 0x2030, 0x00C2, 0x00CA, 0x00C1, 0x00CB, 0x00C8, 0x00CD, 0x00CE, 0x00CF, 0x00CC, 0x00D3, 0x00D4, 0xF8FF, 0x00D2, 0x00DA, 0x00DB, 0x00D9, 0x0131, 0x02C6, 0x02DC, 0x00AF, 0x02D8, 0x02D9, 0x02DA, 0x00B8, 0x02DD, 0x02DB, 0x02C7 }; /* DEC special graphics / technical sets for VT emulation */ #ifdef KERMITFONT struct x_to_unicode u_dectech = { 94, 33, X2U_DEC|X2U_STD,AL_ROMAN,"DEC Technical", "dec-technical", 0, ">", 0xE400, 0x250c, 0x2500, 0x2320, 0x2321, 0x2502, 0xE204, 0xE203, 0xE209, 0xE208, 0xE202, 0xE201, 0xE207, 0xE206, 0xE200, 0xE205, 0xE20D, 0xE20C, 0x2572, 0x2571, 0xE20E, 0xE20F, 0x232a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x2264, 0x2260, 0x2265, 0x222b, 0x2234, 0x221d, 0x221e, 0x00f7, 0x2206, 0x2207, 0x03a6, 0x0393, 0x223c, 0x2243, 0x0398, 0x00d7, 0x039b, 0x21d4, 0x21d2, 0x2261, 0x220f, 0x03a8, 0xE401, 0x03a3, 0xFFFD, 0xfffd, 0x221a, 0x03a9, 0x039e, 0x03d2, 0x2282, 0x2283, 0x2229, 0x222a, 0x2227, 0x2228, 0x00ac, 0x03b1, 0x03b2, 0x03c7, 0x03b4, 0x03b5, 0x03c6, 0x03b3, 0x03b7, 0x03b9, 0x03b8, 0x03ba, 0x03bb, 0xFFFD, 0x03bd, 0x2202, 0x03c0, 0x03c8, 0x03c1, 0x03c3, 0x03c4, 0xFFFD, 0x0192, 0x03c9, 0x03be, 0x03c5, 0x03b6, 0x2190, 0x2191, 0x2192, 0x2193 }; #else struct x_to_unicode u_dectech = { 94, 33, X2U_DEC|X2U_STD,AL_ROMAN,"DEC Technical", "dec-technical", 0, ">", 0x221a, 0x250c, 0x2500, 0x2320, 0x2321, 0x2502, 0x2308, /* 21-27 */ 0x230a, 0x2309, 0x230b, 0x256d, 0x2570, 0x256e, 0x256f, 0x2525, /* 28-2f */ 0x251d, 0x2211, 0x2211, 0x2572, 0x2571, 0x231d, 0x231f, 0x232a, /* 30-37 */ 0x005b, 0x2022, 0x005d, 0x00b1, 0x2264, 0x2260, 0x2265, 0x222b, /* 38-3f */ 0x2234, 0x221d, 0x221e, 0x00f7, 0x25b3, 0x25bd, 0x03a6, 0x0393, /* 40-47 */ 0x223c, 0x2243, 0x0398, 0x00d7, 0x039b, 0x21d4, 0x21d2, 0x2261, /* 48-4f */ 0x220f, 0x03a8, 0x2218, 0x2211, 0x00a7, 0x00b6, 0x221a, 0x03a9, /* 50-57 */ 0x039e, 0x03d2, 0x2282, 0x2283, 0x2229, 0x222a, 0x2227, 0x2228, /* 58-5f */ 0x00ac, 0x03b1, 0x03b2, 0x03c7, 0x03b4, 0x03b5, 0x03c6, 0x03b3, /* 60-67 */ 0x03b7, 0x03b9, 0x03b8, 0x03ba, 0x03bb, 0x03bc, 0x03bd, 0x2202, /* 68-6f */ 0x03c0, 0x03c8, 0x03c1, 0x03c3, 0x03c4, 0x0020, 0x0192, 0x03c9, /* 70-77 */ 0x03be, 0x03c5, 0x03b6, 0x2190, 0x2191, 0x2192, 0x2193 /* 78-7e */ }; #endif /* KERMITFONT */ #ifdef KERMITFONT struct x_to_unicode u_decspec = { 94,33,X2U_DEC|X2U_STD,AL_ROMAN,"DEC Special Graphics","dec-special",0,"0", 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x2666, 0x2591, 0x2409, 0x240c, 0x240d, 0x240a, 0x00b0, 0x00b1, 0x2424, 0x240b, 0x2518, 0x2510, 0x250c, 0x2514, 0x253c, 0x23BA, 0x23BB, 0x2500, 0x23BC, 0x23BD, 0x251c, 0x2524, 0x2534, 0x252c, 0x2502, 0x2264, 0x2265, 0x03c0, 0x2260, 0x00a3, 0x00B7 }; #else struct x_to_unicode u_decspec = { 94,33,X2U_DEC|X2U_STD,AL_ROMAN,"DEC Special Graphics","dec-special",0,"0", 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x2666, 0x2591, 0x2409, 0x240c, 0x240d, 0x240a, 0x00b0, 0x00b1, 0x2424, 0x240b, 0x2518, 0x2510, 0x250c, 0x2514, 0x253c, 0x2594, 0x2500, 0x2500, 0x2500, 0x2500, 0x251c, 0x2524, 0x2534, 0x252c, 0x2502, 0x2264, 0x2265, 0x03a0, 0x2260, 0x00a3, 0x00B7 }; #endif /* KERMITFONT */ /* Hazeltine 1500/1520 graphic set. Includes several approximations: . (0,9) should be heavy black right arrow. Unicode has one of these at U+27A1 but... . (3,9) should be heavy black down arrow; Unicode doesn't have one. So we use the white versions of the heavy arrows instead. . (1,9) the letters "Pe" in one cell, doesn't exist in Unicode. Substitution is just "P". */ struct x_to_unicode u_hz1500 = { 94,33,X2U_STD,AL_ROMAN,"Hazeltime Graphics","hz1500-graphics",0,"0", /* 0 1 2 3 4 5 6 7 */ 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, /* 0 */ 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, /* 1 */ 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, /* 2 */ 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, /* 3 */ 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, /* 4 */ 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, /* 5 */ 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, /* 6 */ 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, /* 7 */ 0x2500, 0x2502, 0x253c, 0x2534, 0x252c, 0x2514, 0x250c, 0x00b1, /* 8 */ 0x21e8, 0x0050, 0x00f7, 0x21e9, 0x2510, 0x2518, 0x251c, 0x2524, /* 9 */ 0x0070, 0x0071, 0x0072, 0x250c, 0x0074, 0x0075, 0x0076, 0x0077, /* a */ 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e /* b */ }; #ifdef KERMITFONT struct x_to_unicode u_heath19g = { 94,33,X2U_STD,AL_ROMAN,"Heath-19 Special Graphics","h19-special",0,NULL, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x25cf, 0xe30b, 0x2502, 0x2500, 0x253c, 0x2510, 0x2518, 0x2514, 0x250c, 0x00b1, 0x2192, 0x2592, 0x00f7, 0x2193, 0xe321, 0xe320, 0xe322, 0xe328, 0x2580, 0xe325, 0xe30a, 0x252c, 0x2524, 0x2534, 0x251c, 0x2573, 0x2571, 0x2572, 0xe311, 0xe319, 0xe300, 0xe309, 0x00b6 }; #else struct x_to_unicode u_heath19g = { 94,33,X2U_STD,AL_ROMAN,"Heath-19 Special Graphics","h19-special",0,NULL, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x25cf, 0x25e5, 0x2502, 0x2500, 0x253c, 0x2510, 0x2518, 0x2514, 0x250c, 0x00b1, 0x2192, 0x2592, 0x00f7, 0x2193, 0x2590, 0x258c, 0x258c, 0x2590, 0x2580, 0x2590, 0x25e4, 0x252c, 0x2524, 0x2534, 0x251c, 0x2573, 0x2571, 0x2572, 0x2500, 0x2500, 0x2502, 0x2502, 0x00b6 }; #endif /* KERMITFONT */ /* DG Graphic sets - "KERMITFONT" these later... */ /* Missing, backwards question mark eighth note "DT" control pic horizontal scan lines */ struct x_to_unicode u_dgspec = { /* Needs to be checked */ 94, 33, X2U_STD,AL_ROMAN,"DG Special Graphics","dg-specialgraphics",0,NULL, 0xfffd, 0xfffd, 0x2424, 0x2594, 0x2594, 0x2581, 0x2581, 0x25a1, 0x263a, 0x263b, 0x2665, 0x2663, 0x2660, 0x25cf, 0x25d8, 0x25cb, 0x25d9, 0x2642, 0x2640, 0x266a, 0x266c, 0x263c, 0x2195, 0x2583, 0x21a8, 0x231e, 0x2194, 0x2207, 0x00ff, 0x20a7, 0x00aa, 0x00ba, 0x231c, 0x231d, 0x2591, 0x2591, 0x2593, 0x2561, 0x2562, 0x2556, 0x2555, 0x2563, 0x2551, 0x2557, 0x255d, 0x255c, 0x255b, 0x255e, 0x255f, 0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x2567, 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256b, 0x256a, 0x2588, 0x2584, 0x258c, 0x2590, 0x2580, 0x0393, 0x03c0, 0x03a3, 0x03a6, 0x0398, 0x03d5, 0x03b5, 0x03a0, 0x039e, 0x00b7, 0x03b7, 0x25a0, 0x0178, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd }; /* Missing: arrow-to-line, various orientations */ struct x_to_unicode u_dgline = { 94, 33, X2U_STD,AL_ROMAN,"DG Line Drawing","dg-linedrawing",0,NULL, 0x250c, 0x2510, 0x2514, 0x2518, 0x252c, 0x2524, 0x251c, 0x2534, 0x253c, 0x2502, 0x2500, 0x219f, 0x21e5, 0x21e4, 0x21a1, 0x2506, 0x250f, 0x2513, 0x2517, 0x251b, 0x2533, 0x252b, 0x2523, 0x253b, 0x254b, 0x2503, 0x2501, 0x2504, 0x00f7, 0x00a2, 0x2122, 0x00ae, 0x00a9, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd }; struct x_to_unicode u_dgword = { 94, 33, X2U_STD,AL_ROMAN,"DG Word Processing","dg-wordprocessing",0,NULL, 0x2308, 0x230a, 0x2309, 0x230b, 0x0192, 0x223c, 0x2202, 0xfffd, 0xfffd, 0x2320, 0x2321, 0x221a, 0xfffd, 0x221e, 0x221d, 0x2070, 0x00b9, 0x00b2, 0x00b3, 0x2074, 0x2075, 0x2076, 0x2077, 0x2078, 0x2079, 0x2260, 0xfffd, 0x21ef, 0xfffd, 0x21e5, 0x00b7, 0x203c, 0x03b1, 0x03b2, 0x03b3, 0x03b4, 0x03b5, 0x03b6, 0x03b7, 0x03b8, 0x03b9, 0x03ba, 0x03bb, 0x03bc, 0x03bd, 0x03be, 0x03bf, 0x03c0, 0x03c1, 0x03c3, 0x03c4, 0x03c5, 0x03c6, 0x03c7, 0x03c8, 0x03c9, 0x03a9, 0x0394, 0x00b6, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x22a6, 0x25c6, 0x25b6, 0x25b7, 0x25c0, 0x25b2, 0x25bc, 0x2327, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x25e3, 0x25e2, 0x2080, 0x2081, 0x2082, 0x2083, 0x2084, 0x2085, 0x2086, 0x2087, 0x2088, 0x2089, 0xfffd, 0x2191, 0x2192, 0x2190, 0x2193 }; /* HP Graphic sets - "KERMITFONT" these later... */ /* Many are missing from Unicode, Single-to-triple-line box-drawing characters. Double/double cross & some others. */ struct x_to_unicode u_hpline = { /* Needs to be checked */ 94, 33, X2U_STD,AL_ROMAN,"HP Line Drawing Graphics", "hp-line-drawing",0,NULL, 0x2520, 0x2528, 0x252f, 0x2537, 0x255f, 0x2562, 0x2564, 0x2567, 0x2551, 0x2542, 0x253f, 0x2550, 0x230a, 0x2502, 0x253c, 0x254b, 0x2523, 0x252b, 0x2533, 0x253b, 0x251c, 0x2524, 0x252c, 0x2534, 0x2550, 0x2503, 0x2501, 0x256b, 0x2308, 0x256a, 0x256c, 0x255e, 0x2517, 0x2549, 0x2588, 0x258c, 0x258e, 0x2514, 0x2518, 0x2510, 0x2555, 0x252c, 0x2556, 0x2556, 0x2547, 0x2548, 0x2555, 0x230b, 0x250f, 0x250c, 0x251b, 0x2510, 0x2524, 0x254a, 0x2513, 0x2584, 0x2309, 0x2582, 0x2561, 0x2504, 0x2559, 0x2576, 0x2565, 0x255e, 0x2517, 0x2549, 0x2588, 0x258c, 0x258e, 0x2514, 0x2518, 0x2510, 0x2555, 0x252c, 0x2556, 0x2556, 0x2547, 0x2548, 0x2555, 0x230b, 0x250f, 0x250c, 0x251b, 0x2510, 0x2524, 0x254a, 0x2513, 0x2584, 0x2309, 0x2582, 0x2561, 0x2504, 0x2559, 0x2576 }; struct x_to_unicode u_hpmath = { 94, 33, X2U_STD,AL_ROMAN,"HP Math/Technical","hp-math/technical",0,NULL, 0x221a, 0x2223, 0x00a7, 0x2207, 0x00b1, 0x03b1, 0x2320, 0x00f7, 0x2243, 0x03a0, 0x0393, 0x03c8, 0x2261, 0x03a6, 0x039e, 0x2070, 0x00b9, 0x00b2, 0x00b3, 0x2074, 0x2075, 0x2076, 0x2077, 0x2078, 0x2079, 0x03a9, 0x039b, 0x221e, 0x2321, 0x2020, 0x03a3, 0x00b6, 0x03b1, 0x03b2, 0x03c8, 0x03d5, 0x03b5, 0x2202, 0x03bb, 0x03b7, 0x03b9, 0x0398, 0x03ba, 0x03c9, 0x03bc, 0x03bd, 0x03c1, 0x03c0, 0x03b3, 0x03b8, 0x03c3, 0x03c4, 0x03be, 0x0394, 0x03b4, 0x00d7, 0x03c5, 0x03b6, 0x2191, 0x2192, 0x03d2, 0x2190, 0x2193, 0x00b6, 0x03b1, 0x03b2, 0x03c8, 0x03d5, 0x03b5, 0x2202, 0x03bb, 0x03b7, 0x03b9, 0x0398, 0x03ba, 0x03c9, 0x03bc, 0x03bd, 0x03c1, 0x03c0, 0x03b3, 0x03b8, 0x03c3, 0x03c4, 0x03be, 0x0394, 0x03b4, 0x00d7, 0x03c5, 0x03b6, 0x2191, 0x2192, 0x03d2, 0x2190 }; struct x_to_unicode u_tvig = { 15,65,0,0,"Televideo Special Graphics","tvi-special",0,NULL, 0x2570, 0x256D, 0x256E, 0x256F, 0x2514, 0x250C, 0x2510, 0x2518, 0x253C, 0x2502, 0x2500, 0x2524, 0x251C, 0x252C, 0x2534 }; struct x_to_unicode u_wyse_gn = { #ifdef COMMENT 16,16,0,0,"Wyse Normal-Mode Graphics","wy-graphics-normal",0,NULL, 0x252C, 0x2514, 0x250C, 0x2510, 0x251C, 0x2518, 0x2502, 0x2588, 0x253C, 0x2524, 0x2500, 0x2592, 0x2550, 0x2534, 0x2551, 0x2591 #else 80,48,0,0,"Wyse Normal-Mode Graphics","wy-graphics-normal",0,NULL, 0x252C, 0x2514, 0x250C, 0x2510, 0x251C, 0x2518, 0x2502, 0x2588, 0x253C, 0x2524, 0x2500, 0x2592, 0x2550, 0x2534, 0x2551, 0x2591, 0x252C, 0x2514, 0x250C, 0x2510, 0x251C, 0x2518, 0x2502, 0x2588, 0x253C, 0x2524, 0x2500, 0x2592, 0x2550, 0x2534, 0x2551, 0x2591, 0x252C, 0x2514, 0x250C, 0x2510, 0x251C, 0x2518, 0x2502, 0x2588, 0x253C, 0x2524, 0x2500, 0x2592, 0x2550, 0x2534, 0x2551, 0x2591, 0x252C, 0x2514, 0x250C, 0x2510, 0x251C, 0x2518, 0x2502, 0x2588, 0x253C, 0x2524, 0x2500, 0x2592, 0x2550, 0x2534, 0x2551, 0x2591, 0x252C, 0x2514, 0x250C, 0x2510, 0x251C, 0x2518, 0x2502, 0x2588, 0x253C, 0x2524, 0x2500, 0x2592, 0x2550, 0x2534, 0x2551, 0x2591 #endif /* COMMENT */ }; struct x_to_unicode u_wyse_g1 = { 79,48,0,0,"Wyse Graphics 1","wy-graphics-1",0,NULL, 0x2070, 0x00B9, 0x00B2, 0x00B3, 0x2074, 0x2075, 0x2075, 0x2077, 0x2078, 0x2079, 0xFFFD, 0xFFFD, 0x25BA, 0x25C4, 0x25B2, 0x25BC, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0x2080, 0x2081, 0x2082, 0x2083, 0x2084, 0x2085, 0x2086, 0x2087, 0x2088, 0x2089, 0x2518, 0x2510, 0x250C, 0x2514, 0x253C, 0x258C, 0x2590, 0x2500, 0x2584, 0x2580, 0x251C, 0x2524, 0x2534, 0x252C, 0x2502, 0xFFFD, 0x256E, 0x256F, 0x2570, 0x256D, 0x258C }; struct x_to_unicode u_wyse_g2 = { 41,64,0,0,"Wyse Graphics 2","wy-graphics-2",0,NULL, 0x250C, 0xFFFD, 0xFFFD, 0xFFFD, 0x2510, 0xFFFD, 0xFFFD, 0xFFFD, 0x2514, 0xFFFD, 0xFFFD, 0xFFFD, 0x2518, 0xFFFD, 0xFFFD, 0xFFFD, 0x252C, 0xFFFD, 0xFFFD, 0xFFFD, 0x2524, 0xFFFD, 0xFFFD, 0xFFFD, 0x251C, 0xFFFD, 0xFFFD, 0xFFFD, 0x2534, 0xFFFD, 0xFFFD, 0xFFFD, 0x2500, 0xFFFD, 0xFFFD, 0xFFFD, 0x2502, 0xFFFD, 0xFFFD, 0xFFFD, 0x253C }; #ifdef KERMITFONT struct x_to_unicode u_wyse_g3 = { 31,65,0,0,"Wyse Graphics 3","wy-graphics-3",0,NULL, 0x2570, 0x256D, 0x256E, 0x256F, 0x2514, 0x250C, 0x2510, 0x2518, 0x253C, 0x2502, 0x2500, 0x2524, 0x251C, 0x252C, 0x2534, 0x23BA, 0x23BD, 0x2666, 0xE328, 0xE321, 0xE320, 0xE322, 0x2590, 0x2584, 0x258C, 0x2580, 0xE323, 0xE326, 0xE327, 0xE329, 0x258C }; #else struct x_to_unicode u_wyse_g3 = { 31,65,0,0,"Wyse Graphics 3","wy-graphics-3",0,NULL, 0x2570, 0x256D, 0x256E, 0x256F, 0x2514, 0x250C, 0x2510, 0x2518, 0x253C, 0x2502, 0x2500, 0x2524, 0x251C, 0x252C, 0x2534, 0x2500, 0x2500, 0x2666, 0x2590, 0x2590, 0x258c, 0x258c, 0x2590, 0x2584, 0x258C, 0x2580, 0x2588, 0x2588, 0x2588, 0x2588, 0x258C }; #endif /* KERMITFONT */ /* QNX Console -- This is exactly the same as CP437 except for the code point at 0xEE (epsilon vs element-of), which I think was just a mistake in reading glyphs by the QNX people, but who knows. Also the glyph at 0xED might be a fi (as it is in CP437, and as I have it here) or it might be a null-set symbol. */ struct x_to_unicode u_qnxgrph = { 128,0,0,0,"QNX Console","qnx-console",0,NULL, 0x00c7, 0x00fc, 0x00e9, 0x00e2, 0x00e4, 0x00e0, 0x00e5, 0x00e7, /* 128 */ 0x00ea, 0x00eb, 0x00e8, 0x00ef, 0x00ee, 0x00ec, 0x00c4, 0x00c5, /* 136 */ 0x00c9, 0x00e6, 0x00c6, 0x00f4, 0x00f6, 0x00f2, 0x00fb, 0x00f9, /* 144 */ 0x00ff, 0x00d6, 0x00dc, 0x00a2, 0x00a3, 0x00a5, 0x20a7, 0x0192, /* 152 */ 0x00e1, 0x00ed, 0x00f3, 0x00fa, 0x00f1, 0x00d1, 0x00aa, 0x00ba, /* 160 */ 0x00bf, 0x2310, 0x00ac, 0x00bd, 0x00bc, 0x00a1, 0x00ab, 0x00bb, /* 168 */ 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, /* 176 */ 0x2555, 0x2563, 0x2551, 0x2557, 0x255d, 0x255c, 0x255b, 0x2510, /* 184 */ 0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x255e, 0x255f, /* 192 */ 0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x2567, /* 200 */ 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256b, /* 208 */ 0x256a, 0x2518, 0x250c, 0x2588, 0x2584, 0x258c, 0x2590, 0x2580, /* 216 */ 0x221d, 0x00df, 0x0393, 0x03c0, 0x03a3, 0x03c3, 0x00b5, 0x03c4, /* 224 */ 0x03a6, 0x0398, 0x03a9, 0x03b4, 0x221e, 0x03c6, 0x2208, 0x2229, /* 232 */ 0x2261, 0x00b1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00f7, 0x2248, /* 240 */ 0x00b0, 0x2219, 0x00b7, 0x221a, 0x207f, 0x00b2, 0x25ae, 0x00a0 /* 248 */ }; struct x_to_unicode u_snibrack = { 94, 33, 0, 0,"Siemens Nixdorf 97801 Brackets","sni-brackets",0,"w", 0x2590, 0x258c, 0x2584, 0x2580, 0x2590, 0x258c, 0x2584, /* a0-7 */ 0x2580, 0x2329, 0x2327, 0x25af, 0x00b7, 0x25b9, 0x25c1, 0x003c, /* a8-f */ 0x253b, 0x2533, 0x2523, 0x252b, 0x2329, 0x232a, 0x2304, 0x2303, /* b0-7 */ 0x25e4, 0x25e5, 0x25e3, 0x25e2, 0x253f, 0x231b, 0x25cf, 0x25cb, /* b8-f */ 0x2502, 0x2500, 0x250c, 0x2510, 0x2514, 0x2518, 0x251c, 0x2524, /* c0-7 */ 0x252c, 0x2534, 0x253c, 0x2192, 0x2190, 0x2191, 0x2193, 0x2575, /* c8-f */ 0x2577, 0x25d4, 0x256d, 0x256e, 0x2570, 0x256f, 0x251c, 0x2524, /* d0-7 */ 0x252c, 0x2534, 0x253c, 0x253c, 0x2592, 0x2591, 0x2592, 0x2593, /* d8-f */ 0x2503, 0x2501, 0x250f, 0x2513, 0x2517, 0x251b, 0x2523, 0x252b, /* e0-7 */ 0x2533, 0x253b, 0x254b, 0x279e, 0x2190, 0x2191, 0x2193, 0x2579, /* e8-f */ 0x257b, 0x2261, 0x2554, 0x2557, 0x255a, 0x255d, 0x2523, 0x252b, /* f0-7 */ 0x2533, 0x253b, 0x254b, 0x254b, 0x0393, 0x03c3, 0x03c4 /* f8-f */ }; struct x_to_unicode u_sniblanks = { 94, 33, 0, 0,"Siemens Nixdorf 97801 Blanks","sni-blanks",0,"y", 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, /* a0-7 */ 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, /* a8-f */ 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, /* b0-7 */ 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, /* b8-f */ 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, /* c0-7 */ 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, /* c8-f */ 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, /* d0-7 */ 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, /* d8-f */ 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, /* e0-7 */ 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, /* e8-f */ 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, /* f0-7 */ 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020 /* f8-f */ }; struct x_to_unicode u_snifacet = { 94, 33, 0, 0,"Siemens Nixdorf 97801 Facet","sni-facet",0,"c", 0x0020, 0x2581, 0x2582, 0x2583, 0x2584, 0x2585, 0x2587, /* a1-a7 */ 0x005f, 0x2581, 0x2582, 0x2583, 0x2584, 0x2585, 0x2586, 0x2587, /* a8-af */ 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, /* b0-b7 */ 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, /* b8-bf */ 0x2503, 0x2501, 0x250f, 0x2513, 0x2517, 0x251b, 0x2523, 0x252b, /* c0-c7 */ 0x2533, 0x253b, 0x254b, 0x258f, 0x2595, 0xfffd, 0xfffd, 0xfffd, /* c8-cf */ 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, /* d0-d7 */ 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x2591, 0x2591, 0x2588, /* d8-df */ 0x2503, 0x2501, 0x250f, 0x2513, 0x2517, 0x251b, 0x2523, 0x252b, /* e0-e7 */ 0x2533, 0x253b, 0x254b, 0xfffd, 0xfffd, 0x2593, 0x2593, 0x0020, /* e8-ef */ 0x2585, 0x2586, 0x2587, 0x2588, 0xfffd, 0xfffd, 0xfffd, 0xfffd, /* f0-f7 */ 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x2594, 0x2594, 0xfffd /* f8-fe */ }; struct x_to_unicode u_sniibm = { 94, 33, 0, 0,"Siemens Nixdorf 97801 IBM","sni-ibm",0,"v", 0x263a, 0x263b, 0x2665, 0x2666, 0x2663, 0x2660, 0x25cf, 0x25d8, 0x25cb, 0x25d9, 0x2642, 0x2640, 0x266a, 0x266b, 0x263c, 0x25ba, 0x25c4, 0x2195, 0x203c, 0x00b6, 0x25c1, 0x2582, 0x21a8, 0x2191, 0x2193, 0x2192, 0x2190, 0x2319, 0x2194, 0x25b4, 0x25be, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, /* Hex */ 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, /* bytes */ 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x2070, 0x00b9, 0x00b2, 0x00b3, 0x2074, 0x2075, 0x2076, 0x2077, 0x2078, 0x2079, 0x207b, 0x207a, 0xfffd, 0xfffd, 0x2320, 0x2321, 0x2080, 0x2081, 0x2082, 0x2083, 0x2084, 0x2085, 0x2086, 0x2087, 0x2088, 0x2089, 0x208b, 0x208a, 0x221e, 0x03b1, 0x03a6 }; struct x_to_unicode u_snieuro = { 94, 33, 0, 0,"Siemens Nixdorf 97801 Euro","sni-euro",0,"u", 0x00e0, 0x00e1, 0x00e2, 0x00e4, 0x00e5, 0x0105, 0x00e3, 0x0103, 0x00e6, 0x00e7, 0x010d, 0x0107, 0x00f0, 0x0111, 0x010f, 0x00e8, 0x00e9, 0x00ea, 0x00eb, 0x011b, 0x0119, 0x011f, 0x0131, 0x00ee, 0x00ec, 0x01d0, 0x00ef, 0x0133, 0x013a, 0x0142, 0x013e, 0x0148, 0x0144, 0x00f1, 0x00f2, 0x00f3, 0x00f4, 0x00f6, 0x00f5, 0x00f8, 0x0151, 0x0153, 0x00fe, 0x0159, 0x0155, 0x0161, 0x015b, 0x015f, 0x00df, 0x0163, 0x0165, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x016f, 0x0171, 0x00fd, 0x00ff, 0x017e, 0x017a, 0x017c, 0x00c9, 0x00c5, 0x00c6, 0x00d0, 0x0130, 0x0132, 0x0167, 0x00d8, 0x0152, 0x00de, 0x00c4, 0x00d6, 0x00dc, 0x00a7, 0x0024, 0x00a3, 0x00ae, 0x00a9, 0x03a9, 0x00b5, 0x00b0, 0x00c7, 0x20a7, 0x03c0, 0x02d8, 0x00b4, 0x02dd, 0x00d1, 0x2514, 0x2518, 0x007e, 0x02c7 }; struct x_to_unicode u_smiley = { 32,0,X2U_CXG,0,"PC C0 Graphics","smiley-faces",0,NULL, 0x00a0, 0x263a, 0x263b, 0x2665, 0x2666, 0x2663, 0x2660, 0x2022, 0x25d8, 0x25ef, 0x25d9, 0x2642, 0x2640, 0x266a, 0x266c, 0x263c, 0x25ba, 0x25c4, 0x2195, 0x203c, 0x00b6, 0x00a7, 0x25ac, 0x21a8, 0x2191, 0x2193, 0x2192, 0x2190, 0x2319, 0x2194, 0x25b2, 0x25bc }; struct x_to_unicode u_c0pics = { 128,0,X2U_CXG,0,"C0/C1 Display Controls","display-controls",0,NULL, 0x2400, 0x2401, 0x2402, 0x2403, 0x2404, 0x2405, 0x2406, 0x2407, 0x2408, 0x2409, 0x240a, 0x240b, 0x240c, 0x240d, 0x240e, 0x240f, 0x2410, 0x2411, 0x2412, 0x2413, 0x2414, 0x2415, 0x2416, 0x2417, 0x2418, 0x2419, 0x241a, 0x241b, 0x241c, 0x241d, 0x241e, 0x241f, 0x2420, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x2421 }; #ifdef KERMITFONT struct x_to_unicode u_c1pics = { 32,0,X2U_CXG,0,"C1 Display Controls","c1-display-controls",0,NULL, 0xe080, 0xe081, 0xe082, 0xe083, 0xe084, 0xe085, 0xe086, 0xe087, 0xe088, 0xe089, 0xe08a, 0xe08b, 0xe08c, 0xe08d, 0xe08e, 0xe08f, 0xe090, 0xe091, 0xe092, 0xe093, 0xe094, 0xe095, 0xe096, 0xe097, 0xe098, 0xe099, 0xe09a, 0xe09b, 0xe09c, 0xe09d, 0xe09e, 0xe09f }; #else struct x_to_unicode u_c1pics = { 32,0,X2U_CXG,0,"C1 Display Controls","c1-display-controls",0,NULL, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd }; #endif /* KERMITFONT */ /* Blah-to-Unicode functions */ USHORT #ifdef CK_ANSIC ascii_u(CHAR c) #else ascii_u(c) CHAR c; #endif /* CK_ANSIC */ { if (c & 0x80) return(UNK); /* NOTE: Strict ANSI compilers complain about "<" and similar comparisons between unsigned and signed quantities, as found in all the routines of the "blah_u()" class -- casts must be added to squelch the warnings. */ if (c < u_ascii.offset) return(c); else if (c >= u_ascii.offset + u_ascii.size) return(c); else return(u_ascii.map[c - u_ascii.offset]); } USHORT #ifdef CK_ANSIC british_u(CHAR c) #else british_u(c) CHAR c; #endif /* CK_ANSIC */ { if (c & 0x80) return(UNK); if (c < u_british.offset) return(c); else if (c >= u_british.offset + u_british.size) return(c); else return(u_british.map[c - u_british.offset]); } USHORT #ifdef CK_ANSIC dutch_u(CHAR c) #else dutch_u(c) CHAR c; #endif /* CK_ANSIC */ { if (c & 0x80) return(UNK); if (c < u_dutch.offset) return(c); else if (c >= u_dutch.offset + u_dutch.size) return(c); else return(u_dutch.map[c - u_dutch.offset]); } USHORT #ifdef CK_ANSIC finnish_u(CHAR c) #else finnish_u(c) CHAR c; #endif /* CK_ANSIC */ { if (c & 0x80) return(UNK); if (c < u_finnish.offset) return(c); else if (c >= u_finnish.offset + u_finnish.size) return(c); else return(u_finnish.map[c - u_finnish.offset]); } USHORT #ifdef CK_ANSIC french_u(CHAR c) #else french_u(c) CHAR c; #endif /* CK_ANSIC */ { if (c & 0x80) return(UNK); if (c < u_french.offset) return(c); else if (c >= u_french.offset + u_french.size) return(c); else return(u_french.map[c - u_french.offset]); } USHORT #ifdef CK_ANSIC fr_canadian_u(CHAR c) #else fr_canadian_u(c) CHAR c; #endif /* CK_ANSIC */ { if (c & 0x80) return(UNK); if (c < u_fr_canadian.offset) return(c); else if (c >= u_fr_canadian.offset + u_fr_canadian.size) return(c); else return(u_fr_canadian.map[c - u_fr_canadian.offset]); } USHORT #ifdef CK_ANSIC german_u(CHAR c) #else german_u(c) CHAR c; #endif /* CK_ANSIC */ { if (c & 0x80) return(UNK); if (c < u_german.offset) return(c); else if (c >= u_german.offset + u_german.size) return(c); else return(u_german.map[c - u_german.offset]); } USHORT #ifdef CK_ANSIC hungarian_u(CHAR c) #else hungarian_u(c) CHAR c; #endif /* CK_ANSIC */ { if (c & 0x80) return(UNK); if (c < u_hungarian.offset) return(c); else if (c >= u_hungarian.offset + u_hungarian.size) return(c); else return(u_hungarian.map[c - u_hungarian.offset]); } USHORT #ifdef CK_ANSIC italian_u(CHAR c) #else italian_u(c) CHAR c; #endif /* CK_ANSIC */ { if (c & 0x80) return(UNK); if (c < u_italian.offset) return(c); else if (c >= u_italian.offset + u_italian.size) return(c); else return(u_italian.map[c - u_italian.offset]); } USHORT #ifdef CK_ANSIC icelandic_u(CHAR c) #else icelandic_u(c) CHAR c; #endif /* CK_ANSIC */ { if (c & 0x80) return(UNK); if (c < u_icelandic.offset) return(c); else if (c >= u_icelandic.offset + u_icelandic.size) return(c); else return(u_icelandic.map[c - u_icelandic.offset]); } USHORT #ifdef CK_ANSIC jis0201r_u(CHAR c) #else jis0201r_u(c) CHAR c; #endif /* CK_ANSIC */ { if (c & 0x80) return(UNK); if (c < u_jis0201r.offset) return(c); else if (c >= u_jis0201r.offset + u_jis0201r.size) return(c); else return(u_jis0201r.map[c - u_jis0201r.offset]); } USHORT #ifdef CK_ANSIC jis0201k_u(CHAR c) #else jis0201k_u(c) CHAR c; #endif /* CK_ANSIC */ { if (c & 0x80) return(UNK); if (c < u_jis0201k.offset) return(c); else if (c >= u_jis0201k.offset + u_jis0201k.size) return(c); else return(u_jis0201k.map[c - u_jis0201k.offset]); } USHORT #ifdef CK_ANSIC norwegian_u(CHAR c) #else norwegian_u(c) CHAR c; #endif /* CK_ANSIC */ { if (c & 0x80) return(UNK); if (c < u_norwegian.offset) return(c); else if (c >= u_norwegian.offset + u_norwegian.size) return(c); else return(u_norwegian.map[c - u_norwegian.offset]); } USHORT #ifdef CK_ANSIC danish_u(CHAR c) #else danish_u(c) CHAR c; #endif /* CK_ANSIC */ { if (c & 0x80) return(UNK); if (c < u_danish.offset) return(c); else if (c >= u_danish.offset + u_danish.size) return(c); else return(u_danish.map[c - u_danish.offset]); } USHORT #ifdef CK_ANSIC portuguese_u(CHAR c) #else portuguese_u(c) CHAR c; #endif /* CK_ANSIC */ { if (c & 0x80) return(UNK); if (c < u_portuguese.offset) return(c); else if (c >= u_portuguese.offset + u_portuguese.size) return(c); else return(u_portuguese.map[c - u_portuguese.offset]); } USHORT #ifdef CK_ANSIC spanish_u(CHAR c) #else spanish_u(c) CHAR c; #endif /* CK_ANSIC */ { if (c & 0x80) return(UNK); if (c < u_spanish.offset) return(c); else if (c >= u_spanish.offset + u_spanish.size) return(c); else return(u_spanish.map[c - u_spanish.offset]); } USHORT #ifdef CK_ANSIC swedish_u(CHAR c) #else swedish_u(c) CHAR c; #endif /* CK_ANSIC */ { if (c & 0x80) return(UNK); if (c < u_swedish.offset) return(c); else if (c >= u_swedish.offset + u_swedish.size) return(c); else return(u_swedish.map[c - u_swedish.offset]); } USHORT #ifdef CK_ANSIC swiss_u(CHAR c) #else swiss_u(c) CHAR c; #endif /* CK_ANSIC */ { if (c & 0x80) return(UNK); if (c < u_swiss.offset) return(c); else if (c >= u_swiss.offset + u_swiss.size) return(c); else return(u_swiss.map[c - u_swiss.offset]); } USHORT #ifdef CK_ANSIC apl1_u(CHAR c) #else apl1_u(c) CHAR c; #endif /* CK_ANSIC */ { if (c & 0x80) return(UNK); if (c < u_apl1.offset) return(c); else if (c >= u_apl1.offset + u_apl1.size) return(c); else return(u_apl1.map[c - u_apl1.offset]); } USHORT #ifdef CK_ANSIC ident_u(CHAR c) #else /* CK_ANSIC */ ident_u(c) CHAR c; #endif /* CK_ANSIC */ { return((USHORT)c); } USHORT #ifdef CK_ANSIC iso_8859_1_u(CHAR c) #else iso_8859_1_u(c) CHAR c; #endif /* CK_ANSIC */ { if (c >= 0x80 && c < 0xa0) return(c); c &= 0x7f; if (c < u_8859_1.offset) return(c); else if (c >= u_8859_1.offset + u_8859_1.size) return(c); else return(u_8859_1.map[c - u_8859_1.offset]); } USHORT #ifdef CK_ANSIC iso_8859_2_u(CHAR c) #else iso_8859_2_u(c) CHAR c; #endif /* CK_ANSIC */ { if (c >= 0x80 && c < 0xa0) return(c); c &= 0x7f; if (c < u_8859_2.offset) return(c); else if (c >= u_8859_2.offset + u_8859_2.size) return(c); else return(u_8859_2.map[c - u_8859_2.offset]); } USHORT #ifdef CK_ANSIC iso_8859_3_u(CHAR c) #else iso_8859_3_u(c) CHAR c; #endif /* CK_ANSIC */ { if (c >= 0x80 && c < 0xa0) return(c); c &= 0x7f; if (c < u_8859_3.offset) return(c); else if (c >= u_8859_3.offset + u_8859_3.size) return(c); else return(u_8859_3.map[c - u_8859_3.offset]); } USHORT #ifdef CK_ANSIC iso_8859_4_u(CHAR c) #else iso_8859_4_u(c) CHAR c; #endif /* CK_ANSIC */ { if (c >= 0x80 && c < 0xa0) return(c); c &= 0x7f; if (c < u_8859_4.offset) return(c); else if (c >= u_8859_4.offset + u_8859_4.size) return(c); else return(u_8859_4.map[c - u_8859_4.offset]); } USHORT #ifdef CK_ANSIC iso_8859_5_u(CHAR c) #else iso_8859_5_u(c) CHAR c; #endif /* CK_ANSIC */ { if (c >= 0x80 && c < 0xa0) return(c); c &= 0x7f; if (c < u_8859_5.offset) return(c); else if (c >= u_8859_5.offset + u_8859_5.size) return(c); else return(u_8859_5.map[c - u_8859_5.offset]); } USHORT #ifdef CK_ANSIC koi8_u(CHAR c) #else koi8_u(c) CHAR c; #endif /* CK_ANSIC */ { if (c >= 0x80 && c < 0xa0) return(c); c &= 0x7f; if (c < u_koi8.offset) return(c); else if (c >= u_koi8.offset + u_koi8.size) return(c); else return(u_koi8.map[c - u_koi8.offset]); } USHORT #ifdef CK_ANSIC koi8r_u(CHAR c) /* KOI8-R to Unicode */ #else koi8r_u(c) CHAR c; #endif /* CK_ANSIC */ { c &= 0x7f; if (c < u_koi8r.offset) return(c); else if (c >= u_koi8r.offset + u_koi8r.size) return(c); else return(u_koi8r.map[c - u_koi8r.offset]); } USHORT #ifdef CK_ANSIC koi8u_u(CHAR c) #else koi8u_u(c) CHAR c; #endif /* CK_ANSIC */ { c &= 0x7f; if (c < u_koi8u.offset) return(c); else if (c >= u_koi8u.offset + u_koi8u.size) return(c); else return(u_koi8u.map[c - u_koi8u.offset]); } USHORT #ifdef CK_ANSIC iso_8859_6_u(CHAR c) #else iso_8859_6_u(c) CHAR c; #endif /* CK_ANSIC */ { if (c >= 0x80 && c < 0xa0) return(c); c &= 0x7f; if (c < u_8859_6.offset) return(c); else if (c >= u_8859_6.offset + u_8859_6.size) return(c); else return(u_8859_6.map[c - u_8859_6.offset]); } USHORT #ifdef CK_ANSIC iso_8859_7_u(CHAR c) #else iso_8859_7_u(c) CHAR c; #endif /* CK_ANSIC */ { if (c >= 0x80 && c < 0xa0) return(c); c &= 0x7f; if (c < u_8859_7.offset) return(c); else if (c >= u_8859_7.offset + u_8859_7.size) return(c); else return(u_8859_7.map[c - u_8859_7.offset]); } USHORT #ifdef CK_ANSIC iso_8859_8_u(CHAR c) #else iso_8859_8_u(c) CHAR c; #endif /* CK_ANSIC */ { if (c >= 0x80 && c < 0xa0) return(c); c &= 0x7f; if (c < u_8859_8.offset) return(c); else if (c >= u_8859_8.offset + u_8859_8.size) return(c); else return(u_8859_8.map[c - u_8859_8.offset]); } USHORT #ifdef CK_ANSIC hebrew7_u(CHAR c) #else hebrew7_u(c) CHAR c; #endif /* CK_ANSIC */ { c &= 0x7f; if (c < u_hebrew7.offset) return(c); else if (c >= u_hebrew7.offset + u_hebrew7.size) return(c); else return(u_hebrew7.map[c - u_hebrew7.offset]); } USHORT #ifdef CK_ANSIC elot927_u(CHAR c) #else elot927_u(c) CHAR c; #endif /* CK_ANSIC */ { c &= 0x7f; if (c < u_elot927.offset) return(c); else if (c >= u_elot927.offset + u_elot927.size) return(c); else return(u_elot927.map[c - u_elot927.offset]); } USHORT #ifdef CK_ANSIC iso_8859_9_u(CHAR c) #else iso_8859_9_u(c) CHAR c; #endif /* CK_ANSIC */ { if (c >= 0x80 && c < 0xa0) return(c); c &= 0x7f; if (c < u_8859_9.offset) return(c); else if (c >= u_8859_9.offset + u_8859_9.size) return(c); else return(u_8859_9.map[c - u_8859_9.offset]); } USHORT #ifdef CK_ANSIC iso_8859_10_u(CHAR c) #else iso_8859_10_u(c) CHAR c; #endif /* CK_ANSIC */ { if (c >= 0x80 && c < 0xa0) return(c); c &= 0x7f; if (c < u_8859_10.offset) return(c); else if (c >= u_8859_10.offset + u_8859_10.size) return(c); else return(u_8859_10.map[c - u_8859_10.offset]); } USHORT #ifdef CK_ANSIC iso_8859_15_u(CHAR c) #else iso_8859_15_u(c) CHAR c; #endif /* CK_ANSIC */ { if (c >= 0x80 && c < 0xa0) return(c); c &= 0x7f; if (c < u_8859_15.offset) return(c); else if (c >= u_8859_15.offset + u_8859_15.size) return(c); else return(u_8859_15.map[c - u_8859_15.offset]); } USHORT #ifdef CK_ANSIC apl2_u(CHAR c) #else apl2_u(c) CHAR c; #endif /* CK_ANSIC */ { if (c >= 0x80 && c < 0xa0) return(c); c &= 0x7f; if (c < u_apl2.offset) return(c); else if (c >= u_apl2.offset + u_apl2.size) return(c); else return(u_apl2.map[c - u_apl2.offset]); } USHORT #ifdef CK_ANSIC apl3_u(CHAR c) #else apl3_u(c) CHAR c; #endif /* CK_ANSIC */ { c &= 0x7f; if (c < u_apl3.offset) return(c); else if (c >= u_apl3.offset + u_apl3.size) return(c); else return(u_apl3.map[c - u_apl3.offset]); } USHORT #ifdef CK_ANSIC apl4_u(CHAR c) #else apl4_u(c) CHAR c; #endif /* CK_ANSIC */ { c &= 0x7f; if (c < u_apl4.offset) return(c); else if (c >= u_apl4.offset + u_apl4.size) return(c); else return(u_apl4.map[c - u_apl4.offset]); } USHORT #ifdef CK_ANSIC apl5_u(CHAR c) #else apl5_u(c) CHAR c; #endif /* CK_ANSIC */ { c &= 0x7f; if (c < u_apl5.offset) return(c); else if (c >= u_apl5.offset + u_apl5.size) return(c); else return(u_apl5.map[c - u_apl5.offset]); } USHORT #ifdef CK_ANSIC koi7_u(CHAR c) #else koi7_u(c) CHAR c; #endif /* CK_ANSIC */ { if (c & 0x80) return(UNK); if (c < u_koi7.offset) return(c); else if (c >= u_koi7.offset + u_koi7.size) return(c); else return(u_koi7.map[c - u_koi7.offset]); } USHORT #ifdef CK_ANSIC decmcs_u(CHAR c) #else decmcs_u(c) CHAR c; #endif /* CK_ANSIC */ { if (c >= 0x80 && c < 0xa0) return(c); c &= 0x7f; if (c < u_decmcs.offset) return(c); else if (c >= u_decmcs.offset + u_decmcs.size) return(c); else return(u_decmcs.map[c - u_decmcs.offset]); } USHORT #ifdef CK_ANSIC nextstep_u(CHAR c) #else nextstep_u(c) CHAR c; #endif /* CK_ANSIC */ { return(u_nextstep.map[(c & 0x7f) - u_nextstep.offset]); } USHORT #ifdef CK_ANSIC dgi_u(CHAR c) #else dgi_u(c) CHAR c; #endif /* CK_ANSIC */ { if (c >= 0x80 && c < 0xa0) return(c); return(u_dgi.map[(c & 0x7f) - u_dgi.offset]); } USHORT #ifdef CK_ANSIC hproman8_u(CHAR c) #else hproman8_u(c) CHAR c; #endif /* CK_ANSIC */ { if (c >= 0x80 && c < 0xa0) return(c); return(u_hproman8.map[(c & 0x7f) - u_hproman8.offset]); } USHORT #ifdef CK_ANSIC cp37_u(CHAR c) #else cp37_u(c) CHAR c; #endif /* CK_ANSIC */ { return(u_cp37.map[c & 0x7f]); } USHORT #ifdef CK_ANSIC cp437_u(CHAR c) #else cp437_u(c) CHAR c; #endif /* CK_ANSIC */ { return(u_cp437.map[c & 0x7f]); } USHORT #ifdef CK_ANSIC mazovia_u(CHAR c) /* Mazovia = CP437 with substitutions */ #else mazovia_u(c) CHAR c; #endif /* CK_ANSIC */ { return(u_mazovia.map[c & 0x7f]); } USHORT #ifdef CK_ANSIC cp850_u(CHAR c) #else cp850_u(c) CHAR c; #endif /* CK_ANSIC */ { return(u_cp850.map[c & 0x7f]); } USHORT #ifdef CK_ANSIC cp858_u(CHAR c) #else cp858_u(c) CHAR c; #endif /* CK_ANSIC */ { return(u_cp858.map[c & 0x7f]); } USHORT #ifdef CK_ANSIC cp1250_u(CHAR c) #else cp1250_u(c) CHAR c; #endif /* CK_ANSIC */ { return(u_cp1250.map[c & 0x7f]); } USHORT #ifdef CK_ANSIC cp1251_u(CHAR c) #else cp1251_u(c) CHAR c; #endif /* CK_ANSIC */ { return(u_cp1251.map[c & 0x7f]); } USHORT #ifdef CK_ANSIC cp1252_u(CHAR c) #else cp1252_u(c) CHAR c; #endif /* CK_ANSIC */ { return(u_cp1252.map[c & 0x7f]); } USHORT #ifdef CK_ANSIC cp1253_u(CHAR c) #else cp1253_u(c) CHAR c; #endif /* CK_ANSIC */ { return(u_cp1253.map[c & 0x7f]); } USHORT #ifdef CK_ANSIC cp1254_u(CHAR c) #else cp1254_u(c) CHAR c; #endif /* CK_ANSIC */ { return(u_cp1254.map[c & 0x7f]); } USHORT #ifdef CK_ANSIC cp1255_u(CHAR c) #else cp1255_u(c) CHAR c; #endif /* CK_ANSIC */ { return(u_cp1255.map[c & 0x7f]); } USHORT #ifdef CK_ANSIC cp1256_u(CHAR c) #else cp1256_u(c) CHAR c; #endif /* CK_ANSIC */ { return(u_cp1256.map[c & 0x7f]); } USHORT #ifdef CK_ANSIC cp1257_u(CHAR c) #else cp1257_u(c) CHAR c; #endif /* CK_ANSIC */ { return(u_cp1257.map[c & 0x7f]); } USHORT #ifdef CK_ANSIC cp1258_u(CHAR c) #else cp1258_u(c) CHAR c; #endif /* CK_ANSIC */ { return(u_cp1258.map[c & 0x7f]); } USHORT #ifdef CK_ANSIC cp852_u(CHAR c) #else cp852_u(c) CHAR c; #endif /* CK_ANSIC */ { return(u_cp852.map[c & 0x7f]); } USHORT /* Cyrillic */ #ifdef CK_ANSIC cp855_u(CHAR c) #else cp855_u(c) CHAR c; #endif /* CK_ANSIC */ { return(u_cp855.map[c & 0x7f]); } USHORT /* Bulgaria */ #ifdef CK_ANSIC cp856_u(CHAR c) #else cp856_u(c) CHAR c; #endif /* CK_ANSIC */ { return(u_cp856.map[c & 0x7f]); } USHORT #ifdef CK_ANSIC cp857_u(CHAR c) #else cp857_u(c) CHAR c; #endif /* CK_ANSIC */ { return(u_cp857.map[c & 0x7f]); } USHORT #ifdef CK_ANSIC cp862_u(CHAR c) #else cp862_u(c) CHAR c; #endif /* CK_ANSIC */ { return(u_cp862.map[c & 0x7f]); } USHORT #ifdef CK_ANSIC cp864_u(CHAR c) #else cp864_u(c) CHAR c; #endif /* CK_ANSIC */ { return(u_cp864.map[c & 0x7f]); } USHORT #ifdef CK_ANSIC cp866_u(CHAR c) #else cp866_u(c) CHAR c; #endif /* CK_ANSIC */ { return(u_cp866.map[c & 0x7f]); } USHORT #ifdef CK_ANSIC cp869_u(CHAR c) #else cp869_u(c) CHAR c; #endif /* CK_ANSIC */ { return(u_cp869.map[c & 0x7f]); } USHORT #ifdef CK_ANSIC maclatin_u(CHAR c) #else maclatin_u(c) CHAR c; #endif /* CK_ANSIC */ { return(u_maclatin.map[c & 0x7f]); } USHORT #ifdef CK_ANSIC quickdraw_u(CHAR c) #else quickdraw_u(c) CHAR c; #endif /* CK_ANSIC */ { return(u_quickdraw.map[c & 0x7f]); } USHORT #ifdef CK_ANSIC decspec_u(CHAR c) #else decspec_u(c) CHAR c; #endif /* CK_ANSIC */ { c &= 0x7f; if (c < u_decspec.offset) return(c); else if (c >= u_decspec.offset + u_decspec.size) return(c); else return (u_decspec.map[c - u_decspec.offset]); } USHORT #ifdef CK_ANSIC dectech_u(CHAR c) #else dectech_u(c) CHAR c; #endif /* CK_ANSIC */ { c &= 0x7f; if (c < u_dectech.offset) return(c); else if (c >= u_dectech.offset + u_dectech.size) return(c); else return(u_dectech.map[c - u_dectech.offset]); } USHORT #ifdef CK_ANSIC dgspec_u(CHAR c) #else dgspec_u(c) CHAR c; #endif /* CK_ANSIC */ { c &= 0x7f; if (c < u_dgspec.offset) return(c); else if (c >= u_dgspec.offset + u_dgspec.size) return(c); else return(u_dgspec.map[c - u_dgspec.offset]); } USHORT #ifdef CK_ANSIC dgline_u(CHAR c) #else dgline_u(c) CHAR c; #endif /* CK_ANSIC */ { c &= 0x7f; if (c < u_dgline.offset) return(c); else if (c >= u_dgline.offset + u_dgline.size) return(c); else return(u_dgline.map[c - u_dgline.offset]); } USHORT #ifdef CK_ANSIC dgword_u(CHAR c) #else dgword_u(c) CHAR c; #endif /* CK_ANSIC */ { c &= 0x7f; if (c < u_dgword.offset) return(c); else if (c >= u_dgword.offset + u_dgword.size) return(c); else return(u_dgword.map[c - u_dgword.offset]); } USHORT #ifdef CK_ANSIC hpline_u(CHAR c) #else hpline_u(c) CHAR c; #endif /* CK_ANSIC */ { c &= 0x7f; if (c < u_hpline.offset) return(c); else if (c >= u_hpline.offset + u_hpline.size) return(c); else return(u_hpline.map[c - u_hpline.offset]); } USHORT #ifdef CK_ANSIC hpmath_u(CHAR c) #else hpmath_u(c) CHAR c; #endif /* CK_ANSIC */ { c &= 0x7f; if (c < u_hpmath.offset) return(c); else if (c >= u_hpmath.offset + u_hpmath.size) return(c); else return(u_hpmath.map[c - u_hpmath.offset]); } USHORT #ifdef CK_ANSIC qnxgrph_u(CHAR c) #else qnxgrph_u(c) CHAR c; #endif /* CK_ANSIC */ { c &= 0x7f; if (c < u_qnxgrph.offset) return(c); else if (c >= u_qnxgrph.offset + u_qnxgrph.size) return(c); else return(u_qnxgrph.map[c - u_qnxgrph.offset]); } USHORT #ifdef CK_ANSIC hz1500_u(CHAR c) #else hz1500_u(c) CHAR c; #endif /* CK_ANSIC */ { c &= 0x7f; if (c < u_hz1500.offset) return(c); else if (c >= u_hz1500.offset + u_hz1500.size) return(c); else return(u_hz1500.map[c - u_hz1500.offset]); } USHORT #ifdef CK_ANSIC sniblanks_u(CHAR c) #else sniblanks_u(c) CHAR c; #endif /* CK_ANSIC */ { c &= 0x7f; if (c < u_sniblanks.offset) return(c); else if (c >= u_sniblanks.offset + u_sniblanks.size) return(c); else return(u_sniblanks.map[c - u_sniblanks.offset]); } USHORT #ifdef CK_ANSIC snibrack_u(CHAR c) #else snibrack_u(c) CHAR c; #endif /* CK_ANSIC */ { c &= 0x7f; if (c < u_snibrack.offset) return(c); else if (c >= u_snibrack.offset + u_snibrack.size) return(c); else return(u_snibrack.map[c - u_snibrack.offset]); } USHORT #ifdef CK_ANSIC snifacet_u(CHAR c) #else snifacet_u(c) CHAR c; #endif /* CK_ANSIC */ { c &= 0x7f; if (c < u_snifacet.offset) return(c); else if (c >= u_snifacet.offset + u_snifacet.size) return(c); else return(u_snifacet.map[c - u_snifacet.offset]); } USHORT #ifdef CK_ANSIC sniibm_u(CHAR c) #else sniibm_u(c) CHAR c; #endif /* CK_ANSIC */ { c &= 0x7f; if (c < u_sniibm.offset) return(c); else if (c >= u_sniibm.offset + u_sniibm.size) return(c); else return(u_sniibm.map[c - u_sniibm.offset]); } USHORT #ifdef CK_ANSIC snieuro_u(CHAR c) #else snieuro_u(c) CHAR c; #endif /* CK_ANSIC */ { c &= 0x7f; if (c < u_snieuro.offset) return(c); else if (c >= u_snieuro.offset + u_snieuro.size) return(c); else return(u_snieuro.map[c - u_snieuro.offset]); } USHORT #ifdef CK_ANSIC heath19g_u(CHAR c) #else heath19g_u(c) CHAR c; #endif /* CK_ANSIC */ { c &= 0x7f; if (c < u_heath19g.offset) return(c); else if (c >= u_heath19g.offset + u_heath19g.size) return(c); else return(u_heath19g.map[c - u_heath19g.offset]); } USHORT #ifdef CK_ANSIC tvig_u(CHAR c) #else tvig_u(c) CHAR c; #endif /* CK_ANSIC */ { c &= 0x7f; if (c < u_tvig.offset) return(c); else if (c >= u_tvig.offset + u_tvig.size) return(c); else return(u_tvig.map[c - u_tvig.offset]); } USHORT #ifdef CK_ANSIC wyse_gn_u(CHAR c) #else wyse_gn_u(c) CHAR c; #endif /* CK_ANSIC */ { c &= 0x7f; if (c < u_wyse_gn.offset) return(c); else if (c >= u_wyse_gn.offset + u_wyse_gn.size) return(c); else return(u_wyse_gn.map[c - u_wyse_gn.offset]); } USHORT #ifdef CK_ANSIC wyse_g1_u(CHAR c) #else wyse_g1_u(c) CHAR c; #endif /* CK_ANSIC */ { c &= 0x7f; if (c < u_wyse_g1.offset) return(c); else if (c >= u_wyse_g1.offset + u_wyse_g1.size) return(c); else return(u_wyse_g1.map[c - u_wyse_g1.offset]); } USHORT #ifdef CK_ANSIC wyse_g2_u(CHAR c) #else wyse_g2_u(c) CHAR c; #endif /* CK_ANSIC */ { c &= 0x7f; if (c < u_wyse_g2.offset) return(c); else if (c >= u_wyse_g2.offset + u_wyse_g2.size) return(c); else return(u_wyse_g2.map[c - u_wyse_g2.offset]); } USHORT #ifdef CK_ANSIC wyse_g3_u(CHAR c) #else wyse_g3_u(c) CHAR c; #endif /* CK_ANSIC */ { c &= 0x7f; if (c < u_wyse_g3.offset) return(c); else if (c >= u_wyse_g3.offset + u_wyse_g3.size) return(c); else return(u_wyse_g3.map[c - u_wyse_g3.offset]); } USHORT #ifdef CK_ANSIC smiley_u(CHAR c) #else smiley_u(c) CHAR c; #endif /* CK_ANSIC */ { c &= 0x7f; if (c < u_smiley.offset) return(c); else if (c >= u_smiley.offset + u_smiley.size) return(c); else return(u_smiley.map[c - u_smiley.offset]); } USHORT #ifdef CK_ANSIC c0pics_u(CHAR c) #else c0pics_u(c) CHAR c; #endif /* CK_ANSIC */ { c &= 0x7f; if (c < u_c0pics.offset) return(c); else if (c >= u_c0pics.offset + u_c0pics.size) return(c); else return(u_c0pics.map[c - u_c0pics.offset]); } USHORT #ifdef CK_ANSIC c1pics_u(CHAR c) #else c1pics_u(c) CHAR c; #endif /* CK_ANSIC */ { c &= 0x7f; if (c < u_c1pics.offset) return(c); else if (c >= u_c1pics.offset + u_c1pics.size) return(c); else return(u_c1pics.map[c - u_c1pics.offset]); } #ifdef KANJI /* Kanji/Unicode functions */ static long /* Statistics counters */ bad = 0, /* REMOVE THESE LATER... */ kanji = 0, kana = 0, greek = 0, cyrillic = 0, special = 0, roman = 0; USHORT #ifdef CK_ANSIC sj_to_un(USHORT sj) /* Shift-JIS to Unicode */ #else sj_to_un(sj) USHORT sj; #endif /* CK_ANSIC */ { /* Kanji blocks */ if (sj >= 0x8140) { /* All possible Kanjis */ kanji++; /* Optimistically count a Kanji */ if (sj <= 0x9ffc) { /* 7869-element table */ return(sju_8140[sj - 0x8140]); } else if (sj >= 0xe040 && sj <= 0xeaa4) { /* 2660-element table */ return(sju_e040[sj - 0xe040]); } else if (sj >= 0xf040) { /* User-defined areas */ if (sj <= 0xf0fc) { /* ten 189-char chunks */ return(0xe000 + (sj - 0xf040)); } else if (sj >= 0xf140 && sj <= 0xf1fc) { return(0xe0bc + (sj - 0xf140)); } else if (sj >= 0xf240 && sj <= 0xf2fc) { return(0xe178 + (sj - 0xf240)); } else if (sj >= 0xf340 && sj <= 0xf3fc) { return(0xe234 + (sj - 0xf340)); } else if (sj >= 0xf440 && sj <= 0xf4fc) { return(0xe2f0 + (sj - 0xf440)); } else if (sj >= 0xf540 && sj <= 0xf5fc) { return(0xe3ac + (sj - 0xf540)); } else if (sj >= 0xf640 && sj <= 0xf6fc) { return(0xe468 + (sj - 0xf640)); } else if (sj >= 0xf740 && sj <= 0xf7fc) { return(0xe524 + (sj - 0xf740)); } else if (sj >= 0xf840 && sj <= 0xf8fc) { return(0xe5e0 + (sj - 0xf840)); } else if (sj >= 0xf940 && sj <= 0xf9fc) { return(0xe69c + (sj - 0xf940)); } } kanji--; /* None of the above, uncount */ } /* C0 / Halfwidth-Roman / C1 block (0x00-0x9f, no holes) */ else if (sj < 0x00a0) { roman++; /* Count a Roman */ if (sj == 0x5c) { /* Yen sign */ return(0x00a5); } else if (sj == 0x7e) { /* Overline (macron) */ return(0x203e); } else { /* Control or Halfwidth Roman */ return(sj); } } /* Halfwidth Katakana block (0xa0-0xdf, no holes) */ else if (sj >= 0xa1 && sj <= 0xdf) { kana++; return(sj + 0xfec0); } /* Catch-all must be final */ bad++; return(0xfffd); } USHORT #ifdef CK_ANSIC un_to_sj(USHORT un) /* Unicode to Shift-JIS */ #else un_to_sj(un) USHORT un; #endif /* CK_ANSIC */ { if (un < 0x00a0) { switch (un) { case 0x005c: roman++; return(0x815f); /* Backslash */ case 0x007e: bad++; return(0xfffd); /* No tilde in Shift-JIS */ default: /* ASCII or C0/C1 control */ roman++; return(un); } } if (un >= 0x00a0 && un < 0x0391) { /* Latin-1 symbols */ roman++; switch(un) { case 0x00A2: return(0x8191); case 0x00A3: return(0x8192); case 0x00A5: return(0x005C); /* Yen */ case 0x00A7: return(0x8198); case 0x00A8: return(0x814E); case 0x00AC: return(0x81CA); case 0x00B0: return(0x818B); case 0x00B1: return(0x817D); case 0x00B4: return(0x814C); case 0x00B6: return(0x81F7); case 0x00D7: return(0x817E); case 0x00F7: return(0x8180); default: roman--; bad++; return(0xfffd); } } if (un >= 0x0391 && un < 0x0401) { /* Greek */ greek++; if (un <= 0x039c) return(usj_0391[un-0x0391]); greek--; bad++; return(0xfffd); } if (un >= 0x0401 && un < 0x2010) { /* Cyrillic */ cyrillic++; if (un <= 0x0451) return(usj_0401[un-0x0401]); cyrillic--; bad++; return(0xfffd); } if (un >= 0x2010 && un < 0x2500) { /* General punctuation */ special++; switch(un) { case 0x2010: return(0x815D); case 0x2015: return(0x815C); case 0x2016: return(0x8161); case 0x2018: return(0x8165); case 0x2019: return(0x8166); case 0x201C: return(0x8167); case 0x201D: return(0x8168); case 0x2020: return(0x81F5); case 0x2021: return(0x81F6); case 0x2025: return(0x8164); case 0x2026: return(0x8163); case 0x2030: return(0x81F1); case 0x2032: return(0x818C); case 0x2033: return(0x818D); case 0x203B: return(0x81A6); case 0x203E: return(0x007E); case 0x2103: return(0x818E); /* Letterlike symbols */ case 0x212B: return(0x81F0); case 0x2190: return(0x81A9); /* Arrows */ case 0x2191: return(0x81AA); case 0x2192: return(0x81A8); case 0x2193: return(0x81AB); case 0x21D2: return(0x81CB); case 0x21D4: return(0x81CC); case 0x2200: return(0x81CD); /* Math */ case 0x2202: return(0x81DD); case 0x2203: return(0x81CE); case 0x2207: return(0x81DE); case 0x2208: return(0x81B8); case 0x220B: return(0x81B9); case 0x2212: return(0x817C); case 0x221A: return(0x81E3); case 0x221D: return(0x81E5); case 0x221E: return(0x8187); case 0x2220: return(0x81DA); case 0x2227: return(0x81C8); case 0x2228: return(0x81C9); case 0x2229: return(0x81BF); case 0x222A: return(0x81BE); case 0x222B: return(0x81E7); case 0x222C: return(0x81E8); case 0x2234: return(0x8188); case 0x2235: return(0x81E6); case 0x223D: return(0x81E4); case 0x2252: return(0x81E0); case 0x2260: return(0x8182); case 0x2261: return(0x81DF); case 0x2266: return(0x8185); case 0x2267: return(0x8186); case 0x226A: return(0x81E1); case 0x226B: return(0x81E2); case 0x2282: return(0x81BC); case 0x2283: return(0x81BD); case 0x2286: return(0x81BA); case 0x2287: return(0x81BB); case 0x22A5: return(0x81DB); case 0x2312: return(0x81DC); /* Arc */ default: special--; bad++; return(0xfffd); } } if (un >= 0x2500 && un < 0x3000) { /* Box drawing */ special++; switch(un) { case 0x2500: return(0x849F); case 0x2501: return(0x84AA); case 0x2502: return(0x84A0); case 0x2503: return(0x84AB); case 0x250C: return(0x84A1); case 0x250F: return(0x84AC); case 0x2510: return(0x84A2); case 0x2513: return(0x84AD); case 0x2514: return(0x84A4); case 0x2517: return(0x84AF); case 0x2518: return(0x84A3); case 0x251B: return(0x84AE); case 0x251C: return(0x84A5); case 0x251D: return(0x84BA); case 0x2520: return(0x84B5); case 0x2523: return(0x84B0); case 0x2524: return(0x84A7); case 0x2525: return(0x84BC); case 0x2528: return(0x84B7); case 0x252B: return(0x84B2); case 0x252C: return(0x84A6); case 0x252F: return(0x84B6); case 0x2530: return(0x84BB); case 0x2533: return(0x84B1); case 0x2534: return(0x84A8); case 0x2537: return(0x84B8); case 0x2538: return(0x84BD); case 0x253B: return(0x84B3); case 0x253C: return(0x84A9); case 0x253F: return(0x84B9); case 0x2542: return(0x84BE); case 0x254B: return(0x84B4); case 0x25A0: return(0x81A1); /* Geometric shapes */ case 0x25A1: return(0x81A0); case 0x25B2: return(0x81A3); case 0x25B3: return(0x81A2); case 0x25BC: return(0x81A5); case 0x25BD: return(0x81A4); case 0x25C6: return(0x819F); case 0x25C7: return(0x819E); case 0x25CB: return(0x819B); case 0x25CE: return(0x819D); case 0x25CF: return(0x819C); case 0x25EF: return(0x81FC); case 0x2605: return(0x819A); /* Misc symbols */ case 0x2606: return(0x8199); case 0x2640: return(0x818A); case 0x2642: return(0x8189); case 0x266A: return(0x81F4); case 0x266D: return(0x81F3); case 0x266F: return(0x81F2); default: special--; bad++; return(0xfffd); } } if (un >= 0x3000 && un < 0x4e00) { /* CJK symbols & punc */ kanji++; if (un <= 0x30ff) return(usj_3000[un-0x3000]); kanji--; bad++; return(0xfffd); } if (un >= 0xff00 && un < 0xffff) { /* Half/full-width Roman & Katakana */ if (un <= 0xff9f) { if (un > 0xff60) kana++; return(usj_ff00[un-0xff00]); } bad++; return(0xfffd); } if (un >= 0x4e00 && un < 0xe000) { /* Kanji */ kanji++; if (un <= 0x9fa0) return(usj_4e00[un-0x4e00]); kanji--; bad++; return(0xfffd); } if (un >= 0xe000 && un < 0xff00) { /* User-defined (Gaiji) */ kanji++; if (un <= 0xe0bb) { /* ten 189-char chunks */ return(0xf040 + (un - 0xe000)); } else if (un >= 0xe0bc && un <= 0xe177) { return(0xf140 + (un - 0xe0bc)); } else if (un >= 0xe178 && un <= 0xe233) { return(0xf240 + (un - 0xe178)); } else if (un >= 0xe234 && un <= 0xe2ef) { return(0xf340 + (un - 0xe234)); } else if (un >= 0xe2f0 && un <= 0xe3ab) { return(0xf440 + (un - 0xe2f0)); } else if (un >= 0xe3ac && un <= 0xe467) { return(0xf540 + (un - 0xe3ac)); } else if (un >= 0xe468 && un <= 0xe523) { return(0xf640 + (un - 0xe468)); } else if (un >= 0xe524 && un <= 0xe5df) { return(0xf740 + (un - 0xe524)); } else if (un >= 0xe5e0 && un <= 0xe69b) { return(0xf840 + (un - 0xe5e0)); } else if (un >= 0xe69c && un <= 0xe757) { return(0xf940 + (un - 0xe69c)); } bad++; return(0xfffd); } /* NOTREACHED */ /* Some compilers (correctly) warn of "statement not reached" here. */ /* But others give up the ghost with "no return value". The former */ /* is the lesser of two evils. */ bad++; return(0xfffd); } #endif /* KANJI */ /* Unicode-to-blah functions, tx_blah(). */ static int #ifdef CK_ANSIC tx_punc(USHORT c) #else tx_punc(c) USHORT c; #endif /* CK_ANSIC */ { if (c >= 0x2000 && c <= 0x200a) /* Various-width spaces */ return((CHAR)(0x20)); else if (c >= 0x2010 && c <= 0x2015) /* Various-width dashes */ return((CHAR)'-'); else if (c >= 0x2018 && c <= 0x201b) /* Assorted single quotes */ return((CHAR)0x27); else if (c >= 0x201c && c <= 0x201f) /* Assorted double quotes */ return((CHAR)0x22); else if ((c >= 0x2022 && c <= 0x2024) || c == 0x2043) /* Bullets */ return((CHAR)0xb7); switch (c) { case 0x2039: /* Less-than sign */ return((CHAR)0x3c); case 0x203a: /* Greater-than sign */ return((CHAR)0x3e); case 0x2044: /* Solidus -> Slash */ return((CHAR)0x2f); default: return(-1); } } int /* For Latin-1 */ #ifdef CK_ANSIC tx_ident(USHORT c) #else tx_ident(c) USHORT c; #endif /* CK_ANSIC */ { if (c == 0x203e) /* Overline -> Macron */ return((CHAR)0xaf); else if (c < 0x100) /* Latin-1 range */ return((CHAR)(c & 0xff)); else /* Or maybe from punctuation block */ return(tx_punc(c)); } int #ifdef CK_ANSIC tx_usascii(USHORT c) #else tx_usascii(c) USHORT c; /* US ASCII */ #endif /* CK_ANSIC */ { if (c < 0x80) return((CHAR)(c & 0xff)); else if (c >= 0x2000 && c <= 0x200a) /* Various-width spaces */ return((CHAR)(0x20)); else if (c >= 0x2010 && c <= 0x2015) /* Various-width dashes */ return((CHAR)'-'); else if (c >= 0x2018 && c <= 0x201b) /* Assorted single quotes */ return((CHAR)0x27); else if (c >= 0x201c && c <= 0x201f) /* Assorted double quotes */ return((CHAR)0x22); else if ((c >= 0x2022 && c <= 0x2024) || c == 0x2043) /* Bullets */ return((CHAR)0xb7); switch (c) { case 0x2039: /* Less-than sign */ return((CHAR)0x3c); case 0x203a: /* Greater-than sign */ return((CHAR)0x3e); case 0x2044: /* Solidus -> Slash */ return((CHAR)0x2f); } /* Here we might also (a) map accented Roman letters to unaccented ones; (b) map Greek/Cyrillic A (etc) to Roman, and so on. */ return((c & 0xff80) ? -1 : (CHAR)(c & 0x7f)); } int #ifdef CK_ANSIC tx_british(USHORT c) #else tx_british(c) USHORT c; /* British */ #endif /* CK_ANSIC */ { if (c & 0xff00) return(-1); else if (c == (USHORT) 0x00a3) /* Pound sign */ return(0x2b); else return(tx_usascii(c)); } int #ifdef CK_ANSIC tx_apl1(USHORT c) #else tx_apl1(c) USHORT c; /* Apl1 */ #endif /* CK_ANSIC */ { if (c >= 0x0041 && c <= 0x005a) /* Letters */ return(c + 0x20); switch (c) { /* Others */ case 0x0024: return((CHAR)0x7e); case 0x0027: return((CHAR)0x4b); case 0x0028: return((CHAR)0x3a); case 0x0029: return((CHAR)0x22); case 0x002b: return((CHAR)0x2d); case 0x002c: return((CHAR)0x2c); case 0x002d: return((CHAR)0x5f); case 0x002e: return((CHAR)0x2e); case 0x002f: return((CHAR)0x2f); case 0x0030: return((CHAR)0x30); case 0x0031: return((CHAR)0x31); case 0x0032: return((CHAR)0x32); case 0x0033: return((CHAR)0x33); case 0x0034: return((CHAR)0x34); case 0x0035: return((CHAR)0x35); case 0x0036: return((CHAR)0x36); case 0x0037: return((CHAR)0x37); case 0x0038: return((CHAR)0x38); case 0x0039: return((CHAR)0x39); case 0x003a: return((CHAR)0x3e); case 0x003b: return((CHAR)0x3c); case 0x003c: return((CHAR)0x23); case 0x003d: return((CHAR)0x25); case 0x003e: return((CHAR)0x26); case 0x003f: return((CHAR)0x51); case 0x005b: return((CHAR)0x3b); case 0x005c: return((CHAR)0x3f); case 0x005d: return((CHAR)0x27); case 0x005f: return((CHAR)0x46); case 0x007b: return((CHAR)0x7b); case 0x007c: return((CHAR)0x4d); case 0x007d: return((CHAR)0x7d); case 0x00a8: return((CHAR)0x21); case 0x00af: return((CHAR)0x40); case 0x00d7: return((CHAR)0x3d); case 0x00f7: return((CHAR)0x2b); case 0x2190: return((CHAR)0x5b); case 0x2191: return((CHAR)0x59); case 0x2192: return((CHAR)0x5d); case 0x2193: return((CHAR)0x55); case 0x2206: return((CHAR)0x48); case 0x2207: return((CHAR)0x47); case 0x220a: return((CHAR)0x45); case 0x2218: return((CHAR)0x4a); case 0x2227: return((CHAR)0x29); case 0x2228: return((CHAR)0x28); case 0x222a: return((CHAR)0x56); case 0x223c: return((CHAR)0x54); case 0x2260: return((CHAR)0x2a); case 0x2264: return((CHAR)0x24); case 0x2265: return((CHAR)0x5e); case 0x2282: return((CHAR)0x5a); case 0x2283: return((CHAR)0x58); case 0x22a2: return((CHAR)0x5c); case 0x22a3: return((CHAR)0x7c); case 0x22a4: return((CHAR)0x4e); case 0x22a5: return((CHAR)0x42); case 0x22c2: return((CHAR)0x43); case 0x22c4: return((CHAR)0x60); case 0x22c6: return((CHAR)0x50); case 0x2308: return((CHAR)0x53); case 0x230a: return((CHAR)0x44); case 0x2373: return((CHAR)0x49); case 0x2374: return((CHAR)0x52); case 0x2375: return((CHAR)0x57); case 0x237a: return((CHAR)0x41); case 0x25af: return((CHAR)0x4c); case 0x25cb: return((CHAR)0x4f); default: return(tx_usascii(c)); } } int /* Canadian French */ #ifdef CK_ANSIC tx_fr_canadian(USHORT c) #else tx_fr_canadian(c) USHORT c; #endif /* CK_ANSIC */ { if (c & 0xff00) /* Out of range */ return(-1); switch(c) { case 0xe0: return(0x40); /* a grave */ case 0xe2: return(0x5b); /* a circumflex */ case 0xe7: return(0x5c); /* c cedilla */ case 0xe8: return(0x7d); /* e grave */ case 0xe9: return(0x7b); /* e acute */ case 0xea: return(0x5d); /* e circumflex */ case 0xee: return(0x5e); /* i circumflex */ case 0xf4: return(0x60); /* o circumflex */ case 0xf9: return(0x7c); /* u grave */ case 0xfb: return(0x6e); /* u circumflex */ default: return(tx_usascii(c)); } } int /* Danish/Norwegian */ #ifdef CK_ANSIC tx_danish(USHORT c) #else tx_danish(c) USHORT c; #endif /* CK_ANSIC */ { if (c & 0xff00) /* Out of range */ return(-1); switch(c) { case 0xc6: return(0x5b); /* AE */ case 0xd8: return(0x5c); /* O stroke */ case 0xe6: return(0x7b); /* ae */ case 0xf8: return(0x7c); /* o stroke */ case 0xe5: return(0x7d); /* a ring */ case 0xaf: return(0x7e); /* macron */ default: return(tx_usascii(c)); } } int /* Dutch */ #ifdef CK_ANSIC tx_dutch(USHORT c) #else tx_dutch(c) USHORT c; #endif /* CK_ANSIC */ { if (c & 0xfe00) /* Out of range */ return(-1); switch(c) { case 0x007c: return(0x5d); /* vertical bar */ case 0x00a3: return(0x23); /* pound sign */ case 0x00ab: return(0x7b); /* diaeresis */ case 0x00b4: return(0x7e); /* acute accent */ case 0x00bc: return(0x7d); /* 1/4 */ case 0x00be: return(0x40); /* 3/4 */ case 0x00bd: return(0x5c); /* 1/2 */ case 0x00ff: return(0x5b); /* y diaeresis (ij) */ case 0x0192: return(0x7c); /* Florin */ default: return((c & 0x80) ? -1 : (CHAR)(c & 0x7f)); } } int /* Finnish */ #ifdef CK_ANSIC tx_finnish(USHORT c) #else tx_finnish(c) USHORT c; #endif /* CK_ANSIC */ { if (c & 0xff00) /* Out of range */ return(-1); switch(c) { case 0xc4: return(0x5b); /* A diaeresis */ case 0xd6: return(0x5c); /* O diaeresis */ case 0xc5: return(0x5d); /* A ring */ case 0xdc: return(0x5e); /* U diaeresis */ case 0xe9: return(0x60); /* e acute */ case 0xe4: return(0x7b); /* a diaeresis */ case 0xf6: return(0x7c); /* o diaeresis */ case 0xe5: return(0x7d); /* a ring */ case 0xfc: return(0x7e); /* u diaeresis */ default: return(tx_usascii(c)); } } int /* French */ #ifdef CK_ANSIC tx_french(USHORT c) #else tx_french(c) USHORT c; #endif /* CK_ANSIC */ { if (c & 0xff00) /* Out of range */ return(-1); switch(c) { case 0xa3: return(0x23); /* pound sign */ case 0xa7: return(0x5d); /* section sign */ case 0xa8: return(0x7e); /* diaeresis */ case 0xb0: return(0x5b); /* ring */ case 0xb5: return(0x60); /* micron sign (mu) */ case 0xe0: return(0x40); /* a grave */ case 0xe7: return(0x5c); /* c cedilla */ case 0xe8: return(0x7d); /* e grave */ case 0xe9: return(0x7b); /* e acute */ case 0xf9: return(0x7c); /* u grave */ default: return(tx_usascii(c)); } } int /* German */ #ifdef CK_ANSIC tx_german(USHORT c) #else tx_german(c) USHORT c; #endif /* CK_ANSIC */ { if (c & 0xff00) /* Out of range */ return(-1); switch(c) { case 0xa7: return(0x40); /* section sign */ case 0xc4: return(0x5b); /* A umlaut */ case 0xd6: return(0x5c); /* O umlaut */ case 0xdc: return(0x5d); /* U umlaut */ case 0xdf: return(0x7e); /* ess-zet */ case 0xe4: return(0x7b); /* a umlaut */ case 0xf6: return(0x7c); /* o umlaut */ case 0xfc: return(0x7d); /* u umlaut*/ default: return(tx_usascii(c)); } } int /* Hebrew-7 */ #ifdef CK_ANSIC tx_hebrew7(USHORT c) #else tx_hebrew7(c) USHORT c; #endif /* CK_ANSIC */ { if (c < 0x60) /* ASCII */ return((CHAR)(c & 0x7f)); else if (c >= 123 && c < 128) /* ASCII */ return((CHAR)(c & 0x7f)); else if (c >= 0x05d0 && c <= 0x05ea) /* Hebrew 27 contiguous characters */ return((CHAR)((int)c - 0x5d0 + 96)); else return(-1); } int /* Greek ELOT 927 */ #ifdef CK_ANSIC tx_elot927(USHORT c) #else tx_elot927(c) USHORT c; #endif /* CK_ANSIC */ { if (c <= 0x80) { /* ASCII */ if (islower(c)) c = toupper(c); /* Send all letters in uppercase */ return((CHAR)(c & 0x7f)); } /* Greek -- map all Greek characters to unaccented uppercase */ if (c >= 0x0391 && c <= 0x03a1) /* Alpha thru Rho - uppercase */ return((CHAR)((int)c - 0x0391 + 97)); else if (c >= 0x03a3 && c <= 0x03a9) /* Sigma thru Omega - uppercase */ return((CHAR)((int)c - 0x0391 + 96)); else if (c >= 0x03b1 && c <= 0x03c1) /* Alpha thru Rho - lowercase */ return((CHAR)((int)c - 0x0391 + 97)); else if (c >= 0x03c3 && c <= 0x03c9) /* Sigma thru Omega - uppercase */ return((CHAR)((int)c - 0x0391 + 96)); switch (c) { case 0x03c2: return((CHAR)114); /* Terminal sigma */ case 0x0386: return((CHAR)97); /* Alpha Tonos */ case 0x03ac: return((CHAR)97); /* alpha Tonos */ case 0x0388: return((CHAR)101); /* Epsilon Tonos */ case 0x03ad: return((CHAR)101); /* epsilon Tonos */ case 0x0389: return((CHAR)103); /* Eta Tonos */ case 0x03ae: return((CHAR)103); /* eta Tonos */ case 0x038a: return((CHAR)105); /* Iota Tonos */ case 0x03af: return((CHAR)105); /* iota Tonos */ case 0x03ca: return((CHAR)105); /* iota Dialytika */ case 0x038c: return((CHAR)111); /* Omicron Tonos */ case 0x03cc: return((CHAR)111); /* omicron Tonos */ case 0x038e: return((CHAR)116); /* Upsilon Tonos */ case 0x03d3: return((CHAR)116); /* Upsilon Tonos */ case 0x03cd: return((CHAR)116); /* upsilon Tonos */ case 0x03cb: return((CHAR)116); /* upsilon Dialytika */ case 0x03b0: return((CHAR)116); /* upsilon Dialytika+Tonos */ case 0x038f: return((CHAR)120); /* Omega Tonos */ case 0x03ce: return((CHAR)120); /* omega Tonos */ case 0x0390: return((CHAR)105); /* iota Dialytika+Tonos */ case 0x03aa: return((CHAR)105); /* Iota Dialytika */ case 0x03ab: return((CHAR)116); /* Upsilon Dialytika */ case 0x03d4: return((CHAR)116); /* Upsilon Dialytika */ case 0x03d0: return((CHAR)98); /* Alternative beta */ case 0x03d1: return((CHAR)104); /* Open theta */ case 0x03d5: return((CHAR)117); /* Open phi */ case 0x03d6: return((CHAR)112); /* Alternative Pi */ default: return(-1); } } int /* Hungarian */ #ifdef CK_ANSIC tx_hungarian(USHORT c) #else tx_hungarian(c) USHORT c; #endif /* CK_ANSIC */ { if (c == 0x02dd || c == 0x2033) return(0x7e); /* double acute accent */ else if (c & 0xff00) /* Out of range */ return(-1); switch(c) { case 0xc1: return(0x40); /* A acute */ case 0xc9: return(0x5b); /* E acute */ case 0xd6: return(0x5c); /* O umlaut */ case 0xdc: return(0x5d); /* U umlaut */ case 0xe9: return(0x7b); /* e acute */ case 0xf6: return(0x7c); /* o umlaut */ case 0xfa: return(0x60); /* u acute */ case 0xfc: return(0x7d); /* u umlaut */ default: return(tx_usascii(c)); } } int /* Icelandic */ #ifdef CK_ANSIC tx_icelandic(USHORT c) #else tx_icelandic(c) USHORT c; #endif /* CK_ANSIC */ { if (c & 0xff00) /* Out of range */ return(-1); switch(c) { case 0xde: return(0x40); /* Thorn */ case 0xd0: return(0x5b); /* Eth */ case 0xc6: return(0x5d); /* AE */ case 0xd6: return(0x5e); /* O umlaut */ case 0xfe: return(0x60); /* thorn */ case 0xf0: return(0x7b); /* eth */ case 0xe6: return(0x7d); /* ae */ case 0xf6: return(0x7e); /* o umlaut */ default: return(tx_usascii(c)); } } int /* Italian */ #ifdef CK_ANSIC tx_italian(USHORT c) #else tx_italian(c) USHORT c; #endif /* CK_ANSIC */ { if (c & 0xff00) /* Out of range */ return(-1); switch(c) { case 0xa3: return(0x23); /* pound sign */ case 0xa7: return(0x40); /* section sign */ case 0xb0: return(0x5b); /* ring */ case 0xe7: return(0x5c); /* c cedilla */ case 0xe9: return(0x5d); /* e acute */ case 0xf9: return(0x60); /* u grave */ case 0xe0: return(0x7b); /* a grave */ case 0xf2: return(0x7c); /* o grave */ case 0xe8: return(0x7d); /* e grave */ case 0xec: return(0x7e); /* i grave */ default: return(tx_usascii(c)); } } int /* JIS 0201 Roman */ #ifdef CK_ANSIC tx_jis0201r(USHORT c) #else tx_jis0201r(c) USHORT c; #endif /* CK_ANSIC */ { if (c && 0xff80) /* 7 bits */ return(-1); switch (c) { /* Like ASCII with */ case 0x00a5: return(92); /* two exceptions */ case 0x00af: return(126); case 0x203e: return(126); default: return(tx_usascii(c)); } } int /* JIS 0201 Katakana */ #ifdef CK_ANSIC tx_jis0201k(USHORT c) #else tx_jis0201k(c) USHORT c; #endif /* CK_ANSIC */ { if (c < 0xff61 || c > 0xff9f) return(-1); /* Out of range */ else return((int)c - 0xfec0); /* 0xff61 - a0 = 0xfec0 */ } int /* Short KOI */ #ifdef CK_ANSIC tx_koi7(USHORT c) #else tx_koi7(c) USHORT c; #endif /* CK_ANSIC */ { if (c < 0x50) return((CHAR)(c & 0x7f)); else if (c > 0x7f) return(-1); /* Out of range */ switch(c) { case 0x0410: return((CHAR)97); case 0x0411: return((CHAR)98); case 0x0412: return((CHAR)119); case 0x0413: return((CHAR)103); case 0x0414: return((CHAR)100); case 0x0415: return((CHAR)101); case 0x0416: return((CHAR)118); case 0x0417: return((CHAR)122); case 0x0418: return((CHAR)105); case 0x0419: return((CHAR)106); case 0x041a: return((CHAR)107); case 0x041b: return((CHAR)108); case 0x041c: return((CHAR)109); case 0x041d: return((CHAR)110); case 0x041e: return((CHAR)111); case 0x041f: return((CHAR)112); case 0x0420: return((CHAR)114); case 0x0421: return((CHAR)115); case 0x0422: return((CHAR)116); case 0x0423: return((CHAR)117); case 0x0424: return((CHAR)102); case 0x0425: return((CHAR)104); case 0x0426: return((CHAR)99); case 0x0427: return((CHAR)126); case 0x0428: return((CHAR)123); case 0x0429: return((CHAR)125); case 0x042b: return((CHAR)121); case 0x042c: return((CHAR)120); case 0x042d: return((CHAR)124); case 0x042e: return((CHAR)96); case 0x042f: return((CHAR)113); default: return(-1); } } int /* Portuguese */ #ifdef CK_ANSIC tx_portuguese(USHORT c) #else tx_portuguese(c) USHORT c; #endif /* CK_ANSIC */ { if (c & 0xff00) /* Out of range */ return(-1); switch(c) { case 0xe0: return(0xa7); /* section sign */ case 0xb0: return(0xc3); /* A tilde */ case 0xe7: return(0xc7); /* C cedilla */ case 0xa7: return(0xd5); /* O tilde */ case 0xe9: return(0xe3); /* a tilde */ case 0xf9: return(0xe7); /* c cedilla */ case 0xe8: return(0xf5); /* o tilde */ case 0xa8: return(0xb0); /* ring */ default: return(tx_usascii(c)); } } int /* Spanish */ #ifdef CK_ANSIC tx_spanish(USHORT c) #else tx_spanish(c) USHORT c; #endif /* CK_ANSIC */ { if (c & 0xff00) /* Out of range */ return(-1); switch(c) { case 0xa3: return(0x23); /* pound sign */ case 0xa7: return(0x40); /* section */ case 0xa1: return(0x5b); /* inverted exclamation */ case 0xd1: return(0x5c); /* N tilde */ case 0xbf: return(0x5d); /* inverted question mark */ case 0xb0: return(0x7b); /* ring */ case 0xf1: return(0x7c); /* n tilde */ case 0xe7: return(0x7d); /* c cedilla */ default: return(tx_usascii(c)); } } int /* Swedish */ #ifdef CK_ANSIC tx_swedish(USHORT c) #else tx_swedish(c) USHORT c; #endif /* CK_ANSIC */ { if (c & 0xff00) /* Out of range */ return(-1); switch(c) { case 0xc9: return(0x40); /* E acute */ case 0xc4: return(0x5b); /* A umlaut*/ case 0xd6: return(0x5c); /* O umlaut */ case 0xc5: return(0x5d); /* A ring */ case 0xdc: return(0x5e); /* U umlaut */ case 0xe9: return(0x60); /* e acute */ case 0xe4: return(0x7b); /* a umlaut */ case 0xf6: return(0x7c); /* o umlaut */ case 0xe5: return(0x7d); /* a ring */ case 0xfc: return(0x7e); /* u umlaut */ default: return(tx_usascii(c)); } } int /* Swiss NRC */ #ifdef CK_ANSIC tx_swiss(USHORT c) #else tx_swiss(c) USHORT c; #endif /* CK_ANSIC */ { if (c & 0xff00) /* Out of range */ return(-1); switch(c) { case 0xf9: return(0x23); /* u grave */ case 0xe0: return(0x40); /* a grave */ case 0xe9: return(0x5b); /* e acute */ case 0xe7: return(0x5c); /* c cedilla */ case 0xea: return(0x5d); /* e circumflex */ case 0xee: return(0x5e); /* i circumflex */ case 0xe8: return(0x5f); /* e grave */ case 0xf4: return(0x60); /* o circumflex */ case 0xe4: return(0x7b); /* a umlaut */ case 0xf6: return(0x7c); /* o umlaut */ case 0xfc: return(0x7d); /* u umlaut */ case 0xfb: return(0x7e); /* u circumflex */ default: return(tx_usascii(c)); } } int /* Dyadic APL */ #ifdef CK_ANSIC tx_apl2(USHORT c) #else tx_apl2(c) USHORT c; #endif /* CK_ANSIC */ { if (c >= 0x0041 && c <= 0x005a) /* Letters */ return(c - 0xa2); switch (c) { case 0x00a0: return((CHAR)0xa0); case 0x00a2: return((CHAR)0xa4); case 0x00a3: return((CHAR)0xd4); case 0x00a8: return((CHAR)0xdc); case 0x00af: return((CHAR)0xda); case 0x00d7: return((CHAR)0xa1); case 0x00f7: return((CHAR)0xaf); case 0x2190: return((CHAR)0xbb); case 0x2191: return((CHAR)0xfe); case 0x2192: return((CHAR)0xde); case 0x2193: return((CHAR)0xff); case 0x2206: return((CHAR)0xae); case 0x2207: return((CHAR)0xfd); case 0x220a: return((CHAR)0xb5); case 0x2218: return((CHAR)0xbc); case 0x2228: return((CHAR)0xdf); case 0x2229: return((CHAR)0xd1); case 0x222a: return((CHAR)0xd2); case 0x2260: return((CHAR)0xb0); case 0x2261: return((CHAR)0xb6); case 0x2262: return((CHAR)0xcd); case 0x2264: return((CHAR)0xb8); case 0x2265: return((CHAR)0xb7); case 0x2282: return((CHAR)0xe0); case 0x2283: return((CHAR)0xe1); case 0x2296: return((CHAR)0xd6); case 0x22a2: return((CHAR)0xd7); case 0x22a3: return((CHAR)0xd8); case 0x22a4: return((CHAR)0xba); case 0x22a5: return((CHAR)0xb9); case 0x22c4: return((CHAR)0xb1); case 0x2308: return((CHAR)0xcf); case 0x230a: return((CHAR)0xce); case 0x2337: return((CHAR)0xd9); case 0x2339: return((CHAR)0xca); case 0x233d: return((CHAR)0xd5); case 0x233f: return((CHAR)0xbe); case 0x2340: return((CHAR)0xbf); case 0x2349: return((CHAR)0xd0); case 0x234b: return((CHAR)0xc2); case 0x234e: return((CHAR)0xc0); case 0x2352: return((CHAR)0xc3); case 0x2355: return((CHAR)0xc1); case 0x2359: return((CHAR)0xe2); case 0x235d: return((CHAR)0xbd); case 0x235e: return((CHAR)0xc9); case 0x235f: return((CHAR)0xc7); case 0x2368: return((CHAR)0xc6); case 0x236a: return((CHAR)0xcc); case 0x236b: return((CHAR)0xcb); case 0x236c: return((CHAR)0xd3); case 0x2371: return((CHAR)0xc5); case 0x2372: return((CHAR)0xc4); case 0x2373: return((CHAR)0xdb); case 0x2374: return((CHAR)0xb3); case 0x2375: return((CHAR)0xb2); case 0x237a: return((CHAR)0xb4); case 0x2500: return((CHAR)0xaa); case 0x2502: return((CHAR)0xa2); case 0x250c: return((CHAR)0xad); case 0x2510: return((CHAR)0xa5); case 0x2514: return((CHAR)0xa6); case 0x2518: return((CHAR)0xac); case 0x251c: return((CHAR)0xa9); case 0x2524: return((CHAR)0xa3); case 0x252c: return((CHAR)0xa8); case 0x2534: return((CHAR)0xa7); case 0x253c: return((CHAR)0xab); case 0x25af: return((CHAR)0xc8); case 0x25cb: return((CHAR)0xdd); default: if (c < 0xa0) return((CHAR)(c & 0xff)); return(tx_punc(c)); } } int /* APL-Plus */ #ifdef CK_ANSIC tx_apl3(USHORT c) #else tx_apl3(c) USHORT c; #endif /* CK_ANSIC */ { switch (c) { case 0x00a0: return((CHAR)0xa0); case 0x00a1: return((CHAR)0xa1); case 0x00a2: return((CHAR)0xa2); case 0x00a3: return((CHAR)0xa3); case 0x00a5: return((CHAR)0xa5); case 0x00a6: return((CHAR)0xa6); case 0x00a7: return((CHAR)0xa7); case 0x00a8: return((CHAR)0xa8); case 0x00ab: return((CHAR)0xab); case 0x00af: return((CHAR)0xaf); case 0x00b6: return((CHAR)0xb6); case 0x00b7: return((CHAR)0xb7); case 0x00bb: return((CHAR)0xbb); case 0x00bf: return((CHAR)0xbf); case 0x00c0: return((CHAR)0xc0); case 0x00c1: return((CHAR)0xc1); case 0x00c2: return((CHAR)0xc2); case 0x00c3: return((CHAR)0xc3); case 0x00c4: return((CHAR)0xc4); case 0x00c5: return((CHAR)0xc5); case 0x00c6: return((CHAR)0xc6); case 0x00c7: return((CHAR)0xc7); case 0x00c8: return((CHAR)0xc8); case 0x00c9: return((CHAR)0xc9); case 0x00ca: return((CHAR)0xca); case 0x00cb: return((CHAR)0xcb); case 0x00cc: return((CHAR)0xcc); case 0x00cd: return((CHAR)0xcd); case 0x00ce: return((CHAR)0xce); case 0x00cf: return((CHAR)0xcf); case 0x00d1: return((CHAR)0xd1); case 0x00d2: return((CHAR)0xd2); case 0x00d3: return((CHAR)0xd3); case 0x00d4: return((CHAR)0xd4); case 0x00d5: return((CHAR)0xd5); case 0x00d6: return((CHAR)0xd6); case 0x00d7: return((CHAR)0xd7); case 0x00d8: return((CHAR)0xd8); case 0x00d9: return((CHAR)0xd9); case 0x00da: return((CHAR)0xda); case 0x00db: return((CHAR)0xdb); case 0x00dc: return((CHAR)0xdc); case 0x00dd: return((CHAR)0xdd); case 0x00df: return((CHAR)0xdf); case 0x00e0: return((CHAR)0xe0); case 0x00e1: return((CHAR)0xe1); case 0x00e2: return((CHAR)0xe2); case 0x00e3: return((CHAR)0xe3); case 0x00e4: return((CHAR)0xe4); case 0x00e5: return((CHAR)0xe5); case 0x00e6: return((CHAR)0xe6); case 0x00e7: return((CHAR)0xe7); case 0x00e8: return((CHAR)0xe8); case 0x00e9: return((CHAR)0xe9); case 0x00ea: return((CHAR)0xea); case 0x00eb: return((CHAR)0xeb); case 0x00ec: return((CHAR)0xec); case 0x00ed: return((CHAR)0xed); case 0x00ee: return((CHAR)0xee); case 0x00ef: return((CHAR)0xef); case 0x00f1: return((CHAR)0xf1); case 0x00f2: return((CHAR)0xf2); case 0x00f3: return((CHAR)0xf3); case 0x00f4: return((CHAR)0xf4); case 0x00f5: return((CHAR)0xf5); case 0x00f6: return((CHAR)0xf6); case 0x00f7: return((CHAR)0xf7); case 0x00f9: return((CHAR)0xf9); case 0x00fa: return((CHAR)0xfa); case 0x00fb: return((CHAR)0xfb); case 0x00fc: return((CHAR)0xfc); case 0x00fd: return((CHAR)0xfd); case 0x00ff: return((CHAR)0xff); case 0x20ac: return((CHAR)0x80); case 0x2190: return((CHAR)0x84); case 0x2191: return((CHAR)0x86); case 0x2192: return((CHAR)0x85); case 0x2193: return((CHAR)0x87); case 0x2205: return((CHAR)0xf8); case 0x2206: return((CHAR)0x91); case 0x2207: return((CHAR)0x92); case 0x220a: return((CHAR)0xb9); case 0x2218: return((CHAR)0xb0); case 0x2228: return((CHAR)0x9f); case 0x2229: return((CHAR)0x9d); case 0x222a: return((CHAR)0x9e); case 0x2260: return((CHAR)0xac); case 0x2261: return((CHAR)0xad); case 0x2264: return((CHAR)0x88); case 0x2265: return((CHAR)0x89); case 0x2282: return((CHAR)0x9b); case 0x2283: return((CHAR)0x9c); case 0x2296: return((CHAR)0xb4); case 0x22a2: return((CHAR)0xa4); case 0x22a3: return((CHAR)0x81); case 0x22a4: return((CHAR)0x82); case 0x22a5: return((CHAR)0x83); case 0x22c4: return((CHAR)0xaa); case 0x2308: return((CHAR)0x97); case 0x230a: return((CHAR)0x98); case 0x2337: return((CHAR)0xde); case 0x2339: return((CHAR)0x8e); case 0x233d: return((CHAR)0xb2); case 0x233f: return((CHAR)0x9a); case 0x2340: return((CHAR)0x99); case 0x2349: return((CHAR)0xb3); case 0x234b: return((CHAR)0x93); case 0x234e: return((CHAR)0x96); case 0x2352: return((CHAR)0x94); case 0x2355: return((CHAR)0x95); case 0x2359: return((CHAR)0x8f); case 0x235d: return((CHAR)0xa9); case 0x235e: return((CHAR)0x8d); case 0x235f: return((CHAR)0xb5); case 0x2364: return((CHAR)0xf0); case 0x2368: return((CHAR)0xfe); case 0x236a: return((CHAR)0xae); case 0x236b: return((CHAR)0x90); case 0x236c: return((CHAR)0xd0); case 0x2371: return((CHAR)0x8b); case 0x2372: return((CHAR)0x8a); case 0x2373: return((CHAR)0xbc); case 0x2374: return((CHAR)0xbd); case 0x2375: return((CHAR)0xbe); case 0x2377: return((CHAR)0xba); case 0x237a: return((CHAR)0xb8); case 0x25af: return((CHAR)0x8c); case 0x25cb: return((CHAR)0xb1); default: return(tx_punc(c)); } } int /* IBM APL2 */ #ifdef CK_ANSIC tx_apl4(USHORT c) #else tx_apl4(c) USHORT c; #endif /* CK_ANSIC */ { switch (c) { case 0x00a0: return((CHAR)0xff); case 0x00a1: return((CHAR)0xad); case 0x00a3: return((CHAR)0x9c); case 0x00a6: return((CHAR)0xdd); case 0x00a8: return((CHAR)0xfe); case 0x00aa: return((CHAR)0xa6); case 0x00ac: return((CHAR)0xaa); case 0x00af: return((CHAR)0xfd); case 0x00ba: return((CHAR)0xa7); case 0x00bf: return((CHAR)0xa8); case 0x00c4: return((CHAR)0x8e); case 0x00c5: return((CHAR)0xee); /* and 0x8f */ case 0x00c7: return((CHAR)0x80); case 0x00cc: return((CHAR)0xde); case 0x00d1: return((CHAR)0xa5); case 0x00d6: return((CHAR)0x99); case 0x00d7: return((CHAR)0xf5); case 0x00dc: return((CHAR)0x9a); case 0x00df: return((CHAR)0xe1); case 0x00e0: return((CHAR)0x85); case 0x00e1: return((CHAR)0xa0); case 0x00e2: return((CHAR)0x83); case 0x00e4: return((CHAR)0x84); case 0x00e5: return((CHAR)0x86); case 0x00e7: return((CHAR)0x87); case 0x00e8: return((CHAR)0x8a); case 0x00e9: return((CHAR)0x82); case 0x00ea: return((CHAR)0x88); case 0x00eb: return((CHAR)0x89); case 0x00ec: return((CHAR)0x8d); case 0x00ed: return((CHAR)0xa1); case 0x00ee: return((CHAR)0x8c); case 0x00ef: return((CHAR)0x8b); case 0x00f1: return((CHAR)0xa4); case 0x00f2: return((CHAR)0x95); case 0x00f3: return((CHAR)0xa2); case 0x00f4: return((CHAR)0x93); case 0x00f6: return((CHAR)0x94); case 0x00f7: return((CHAR)0xf6); case 0x00f8: return((CHAR)0x9b); case 0x00f9: return((CHAR)0x97); case 0x00fa: return((CHAR)0xa3); case 0x00fb: return((CHAR)0x96); case 0x00fc: return((CHAR)0x81); case 0x2190: return((CHAR)0x9e); case 0x2191: return((CHAR)0xc6); case 0x2192: return((CHAR)0xab); case 0x2193: return((CHAR)0xc7); case 0x2206: return((CHAR)0xb6); case 0x2207: return((CHAR)0xb7); case 0x2218: return((CHAR)0xf8); case 0x2228: return((CHAR)0xeb); case 0x2229: return((CHAR)0xef); case 0x222a: return((CHAR)0xac); case 0x2235: return((CHAR)0xd2); case 0x2260: return((CHAR)0xf4); case 0x2261: return((CHAR)0xcf); case 0x2264: return((CHAR)0xf3); case 0x2265: return((CHAR)0xf2); case 0x2282: return((CHAR)0xe2); case 0x2283: return((CHAR)0xe3); case 0x2296: return((CHAR)0xe9); case 0x22a2: return((CHAR)0xd6); case 0x22a3: return((CHAR)0xd7); case 0x22a4: return((CHAR)0x98); case 0x22a5: return((CHAR)0x9d); case 0x22c4: return((CHAR)0xd8); case 0x2308: return((CHAR)0xa9); case 0x230a: return((CHAR)0xbe); case 0x2336: return((CHAR)0x9f); case 0x2337: return((CHAR)0xd3); case 0x2339: return((CHAR)0x92); case 0x233b: return((CHAR)0xd5); case 0x233d: return((CHAR)0xe8); case 0x233f: return((CHAR)0xf0); case 0x2340: return((CHAR)0xf1); case 0x2342: return((CHAR)0xd4); case 0x2349: return((CHAR)0xed); case 0x234b: return((CHAR)0xfb); case 0x234e: return((CHAR)0xaf); case 0x2352: return((CHAR)0xfc); case 0x2355: return((CHAR)0xae); case 0x2359: return((CHAR)0xf7); case 0x235d: return((CHAR)0xe4); case 0x235e: return((CHAR)0x91); case 0x235f: return((CHAR)0xb5); case 0x236b: return((CHAR)0xfa); case 0x2371: return((CHAR)0xe7); case 0x2372: return((CHAR)0xe5); case 0x2373: return((CHAR)0xec); case 0x2374: return((CHAR)0xe6); case 0x2375: return((CHAR)0xf9); case 0x2377: return((CHAR)0xd1); case 0x2378: return((CHAR)0xd0); case 0x237a: return((CHAR)0xe0); case 0x2500: return((CHAR)0xc4); case 0x2502: return((CHAR)0xb3); case 0x250c: return((CHAR)0xda); case 0x2510: return((CHAR)0xbf); case 0x2514: return((CHAR)0xc0); case 0x2518: return((CHAR)0xd9); case 0x251c: return((CHAR)0xc3); case 0x2524: return((CHAR)0xb4); case 0x252c: return((CHAR)0xc2); case 0x2534: return((CHAR)0xc1); case 0x253c: return((CHAR)0xc5); case 0x2550: return((CHAR)0xcd); case 0x2551: return((CHAR)0xba); case 0x2554: return((CHAR)0xc9); case 0x2557: return((CHAR)0xbb); case 0x255a: return((CHAR)0xc8); case 0x255d: return((CHAR)0xbc); case 0x2560: return((CHAR)0xcc); case 0x2563: return((CHAR)0xb9); case 0x2566: return((CHAR)0xcb); case 0x2569: return((CHAR)0xca); case 0x256c: return((CHAR)0xce); case 0x2580: return((CHAR)0xdf); case 0x2584: return((CHAR)0xdc); case 0x2588: return((CHAR)0xdb); case 0x2591: return((CHAR)0xb0); case 0x2592: return((CHAR)0xb1); case 0x2593: return((CHAR)0xb2); case 0x25af: return((CHAR)0x90); case 0x25cb: return((CHAR)0xea); default: return(tx_punc(c)); } } int /* APL-2741 */ #ifdef CK_ANSIC tx_apl5(USHORT c) #else tx_apl5(c) USHORT c; #endif /* CK_ANSIC */ { switch (c) { case 0x00a0: return((CHAR)0xa0); case 0x00a1: return((CHAR)0xa1); case 0x00a2: return((CHAR)0xa2); case 0x00a3: return((CHAR)0xa3); case 0x00a8: return((CHAR)0xa8); case 0x00af: return((CHAR)0xaf); case 0x00b6: return((CHAR)0xb6); case 0x00b7: return((CHAR)0xb7); case 0x00bf: return((CHAR)0xbf); case 0x00c4: return((CHAR)0xc4); case 0x00c5: return((CHAR)0xc5); case 0x00c6: return((CHAR)0xc6); case 0x00c7: return((CHAR)0xc7); case 0x00c8: return((CHAR)0xc8); case 0x00c9: return((CHAR)0xc9); case 0x00cd: return((CHAR)0xcd); case 0x00d1: return((CHAR)0xd1); case 0x00d6: return((CHAR)0xd6); case 0x00d7: return((CHAR)0xd7); case 0x00d8: return((CHAR)0xd8); case 0x00dc: return((CHAR)0xdc); case 0x00df: return((CHAR)0xdf); case 0x00e0: return((CHAR)0xe0); case 0x00e1: return((CHAR)0xe1); case 0x00e2: return((CHAR)0xe2); case 0x00e3: return((CHAR)0xe3); case 0x00e4: return((CHAR)0xe4); case 0x00e5: return((CHAR)0xe5); case 0x00e6: return((CHAR)0xe6); case 0x00e7: return((CHAR)0xe7); case 0x00e8: return((CHAR)0xe8); case 0x00e9: return((CHAR)0xe9); case 0x00ea: return((CHAR)0xea); case 0x00eb: return((CHAR)0xeb); case 0x00ec: return((CHAR)0xec); case 0x00ed: return((CHAR)0xed); case 0x00ee: return((CHAR)0xee); case 0x00ef: return((CHAR)0xef); case 0x00f1: return((CHAR)0xf1); case 0x00f2: return((CHAR)0xf2); case 0x00f3: return((CHAR)0xf3); case 0x00f4: return((CHAR)0xf4); case 0x00f5: return((CHAR)0xf5); case 0x00f6: return((CHAR)0xf6); case 0x00f7: return((CHAR)0xf7); case 0x00f9: return((CHAR)0xf9); case 0x00fa: return((CHAR)0xfa); case 0x00fb: return((CHAR)0xfb); case 0x00fc: return((CHAR)0xfc); case 0x20ac: return((CHAR)0x80); case 0x2190: return((CHAR)0x84); case 0x2191: return((CHAR)0x86); case 0x2192: return((CHAR)0x85); case 0x2193: return((CHAR)0x87); case 0x2205: return((CHAR)0xf8); case 0x2206: return((CHAR)0x91); case 0x2207: return((CHAR)0x92); case 0x220a: return((CHAR)0xb9); case 0x2218: return((CHAR)0xb0); case 0x2228: return((CHAR)0x9f); case 0x2229: return((CHAR)0x9d); case 0x222a: return((CHAR)0x9e); case 0x2235: return((CHAR)0xfd); case 0x2260: return((CHAR)0xac); case 0x2261: return((CHAR)0xa6); case 0x2262: return((CHAR)0xbb); case 0x2264: return((CHAR)0x88); case 0x2265: return((CHAR)0x89); case 0x2282: return((CHAR)0x9b); case 0x2283: return((CHAR)0x9c); case 0x2296: return((CHAR)0xb4); case 0x22a2: return((CHAR)0xa4); case 0x22a3: return((CHAR)0x81); case 0x22a4: return((CHAR)0x82); case 0x22a5: return((CHAR)0x83); case 0x22c4: return((CHAR)0xaa); case 0x2308: return((CHAR)0x97); case 0x230a: return((CHAR)0x98); case 0x2336: return((CHAR)0xa7); case 0x2337: return((CHAR)0xde); case 0x2339: return((CHAR)0x8e); case 0x233b: return((CHAR)0xcb); case 0x233d: return((CHAR)0xb2); case 0x233f: return((CHAR)0x9a); case 0x2340: return((CHAR)0x99); case 0x2342: return((CHAR)0xca); case 0x2347: return((CHAR)0xd4); case 0x2348: return((CHAR)0xd5); case 0x2349: return((CHAR)0xb3); case 0x234b: return((CHAR)0x93); case 0x234e: return((CHAR)0x96); case 0x2350: return((CHAR)0xd2); case 0x2352: return((CHAR)0x94); case 0x2355: return((CHAR)0x95); case 0x2357: return((CHAR)0xd3); case 0x2359: return((CHAR)0x8f); case 0x235d: return((CHAR)0xa9); case 0x235e: return((CHAR)0x8d); case 0x235f: return((CHAR)0xb5); case 0x2364: return((CHAR)0xf0); case 0x2365: return((CHAR)0xff); case 0x2368: return((CHAR)0xfe); case 0x236a: return((CHAR)0xae); case 0x236b: return((CHAR)0x90); case 0x236c: return((CHAR)0xab); case 0x2371: return((CHAR)0x8b); case 0x2372: return((CHAR)0x8a); case 0x2373: return((CHAR)0xbc); case 0x2374: return((CHAR)0xbd); case 0x2375: return((CHAR)0xbe); case 0x2377: return((CHAR)0xba); case 0x2378: return((CHAR)0xa5); case 0x237a: return((CHAR)0xb8); case 0x2500: return((CHAR)0xce); case 0x2502: return((CHAR)0xdb); case 0x250c: return((CHAR)0xda); case 0x2510: return((CHAR)0xcc); case 0x2514: return((CHAR)0xc0); case 0x2518: return((CHAR)0xd9); case 0x251c: return((CHAR)0xc3); case 0x2524: return((CHAR)0xdd); case 0x252c: return((CHAR)0xc2); case 0x2534: return((CHAR)0xc1); case 0x253c: return((CHAR)0xcf); case 0x25af: return((CHAR)0x8c); case 0x25cb: return((CHAR)0xb1); default: return(tx_punc(c)); } } /* For Latin-1, use tx_ident() */ int /* Latin-2 */ #ifdef CK_ANSIC tx_8859_2(USHORT c) #else tx_8859_2(c) USHORT c; #endif /* CK_ANSIC */ { if (c < 0xa0) return((CHAR)(c & 0xff)); switch(c) { case 0x00A0: return((CHAR)160); case 0x00A4: return((CHAR)164); case 0x00A7: return((CHAR)167); case 0x00A8: return((CHAR)168); case 0x00AD: return((CHAR)173); case 0x00B0: return((CHAR)176); case 0x00B4: return((CHAR)180); case 0x00B8: return((CHAR)184); case 0x00C1: return((CHAR)193); case 0x00C2: return((CHAR)194); case 0x00C4: return((CHAR)196); case 0x00C7: return((CHAR)199); case 0x00C9: return((CHAR)201); case 0x00CB: return((CHAR)203); case 0x00CD: return((CHAR)205); case 0x00CE: return((CHAR)206); case 0x00D3: return((CHAR)211); case 0x00D4: return((CHAR)212); case 0x00D6: return((CHAR)214); case 0x00D7: return((CHAR)215); case 0x00DA: return((CHAR)218); case 0x00DC: return((CHAR)220); case 0x00DD: return((CHAR)221); case 0x00DF: return((CHAR)223); case 0x00E1: return((CHAR)225); case 0x00E2: return((CHAR)226); case 0x00E4: return((CHAR)228); case 0x00E7: return((CHAR)231); case 0x00E9: return((CHAR)233); case 0x00EB: return((CHAR)235); case 0x00ED: return((CHAR)237); case 0x00EE: return((CHAR)238); case 0x00F3: return((CHAR)243); case 0x00F4: return((CHAR)244); case 0x00F6: return((CHAR)246); case 0x00F7: return((CHAR)247); case 0x00FA: return((CHAR)250); case 0x00FC: return((CHAR)252); case 0x00FD: return((CHAR)253); case 0x0102: return((CHAR)195); case 0x0103: return((CHAR)227); case 0x0104: return((CHAR)161); case 0x0105: return((CHAR)177); case 0x0106: return((CHAR)198); case 0x0107: return((CHAR)230); case 0x010C: return((CHAR)200); case 0x010D: return((CHAR)232); case 0x010E: return((CHAR)207); case 0x010F: return((CHAR)239); case 0x0110: return((CHAR)208); case 0x0111: return((CHAR)240); case 0x0118: return((CHAR)202); case 0x0119: return((CHAR)234); case 0x011A: return((CHAR)204); case 0x011B: return((CHAR)236); case 0x0139: return((CHAR)197); case 0x013A: return((CHAR)229); case 0x013D: return((CHAR)165); case 0x013E: return((CHAR)181); case 0x0141: return((CHAR)163); case 0x0142: return((CHAR)179); case 0x0143: return((CHAR)209); case 0x0144: return((CHAR)241); case 0x0147: return((CHAR)210); case 0x0148: return((CHAR)242); case 0x0150: return((CHAR)213); case 0x0151: return((CHAR)245); case 0x0154: return((CHAR)192); case 0x0155: return((CHAR)224); case 0x0158: return((CHAR)216); case 0x0159: return((CHAR)248); case 0x015A: return((CHAR)166); case 0x015B: return((CHAR)182); case 0x015E: return((CHAR)170); case 0x015F: return((CHAR)186); case 0x0160: return((CHAR)169); case 0x0161: return((CHAR)185); case 0x0162: return((CHAR)222); case 0x0163: return((CHAR)254); case 0x0164: return((CHAR)171); case 0x0165: return((CHAR)187); case 0x016E: return((CHAR)217); case 0x016F: return((CHAR)249); case 0x0170: return((CHAR)219); case 0x0171: return((CHAR)251); case 0x0179: return((CHAR)172); case 0x017A: return((CHAR)188); case 0x017B: return((CHAR)175); case 0x017C: return((CHAR)191); case 0x017D: return((CHAR)174); case 0x017E: return((CHAR)190); case 0x02C7: return((CHAR)183); case 0x02D8: return((CHAR)162); case 0x02D9: return((CHAR)255); case 0x02DB: return((CHAR)178); case 0x02DD: return((CHAR)189); default: return(tx_punc(c)); } } int /* Latin-3 */ #ifdef CK_ANSIC tx_8859_3(USHORT c) #else tx_8859_3(c) USHORT c; #endif /* CK_ANSIC */ { if (c < 0xa0) return((CHAR)(c & 0xff)); switch(c) { case 0x00A0: return((CHAR)160); case 0x00A3: return((CHAR)163); case 0x00A4: return((CHAR)164); case 0x00A7: return((CHAR)167); case 0x00A8: return((CHAR)168); case 0x00AD: return((CHAR)173); case 0x00B0: return((CHAR)176); case 0x00B2: return((CHAR)178); case 0x00B3: return((CHAR)179); case 0x00B4: return((CHAR)180); case 0x00B5: return((CHAR)181); case 0x00B7: return((CHAR)183); case 0x00B8: return((CHAR)184); case 0x00BD: return((CHAR)189); case 0x00C0: return((CHAR)192); case 0x00C1: return((CHAR)193); case 0x00C2: return((CHAR)194); case 0x00C4: return((CHAR)196); case 0x00C7: return((CHAR)199); case 0x00C8: return((CHAR)200); case 0x00C9: return((CHAR)201); case 0x00CA: return((CHAR)202); case 0x00CB: return((CHAR)203); case 0x00CC: return((CHAR)204); case 0x00CD: return((CHAR)205); case 0x00CE: return((CHAR)206); case 0x00CF: return((CHAR)207); case 0x00D1: return((CHAR)209); case 0x00D2: return((CHAR)210); case 0x00D3: return((CHAR)211); case 0x00D4: return((CHAR)212); case 0x00D6: return((CHAR)214); case 0x00D7: return((CHAR)215); case 0x00D9: return((CHAR)217); case 0x00DA: return((CHAR)218); case 0x00DB: return((CHAR)219); case 0x00DC: return((CHAR)220); case 0x00DF: return((CHAR)223); case 0x00E0: return((CHAR)224); case 0x00E1: return((CHAR)225); case 0x00E2: return((CHAR)226); case 0x00E4: return((CHAR)228); case 0x00E7: return((CHAR)231); case 0x00E8: return((CHAR)232); case 0x00E9: return((CHAR)233); case 0x00EA: return((CHAR)234); case 0x00EB: return((CHAR)235); case 0x00EC: return((CHAR)236); case 0x00ED: return((CHAR)237); case 0x00EE: return((CHAR)238); case 0x00EF: return((CHAR)239); case 0x00F1: return((CHAR)241); case 0x00F2: return((CHAR)242); case 0x00F3: return((CHAR)243); case 0x00F4: return((CHAR)244); case 0x00F6: return((CHAR)246); case 0x00F7: return((CHAR)247); case 0x00F9: return((CHAR)249); case 0x00FA: return((CHAR)250); case 0x00FB: return((CHAR)251); case 0x00FC: return((CHAR)252); case 0x0108: return((CHAR)198); case 0x0109: return((CHAR)230); case 0x010A: return((CHAR)197); case 0x010B: return((CHAR)229); case 0x011C: return((CHAR)216); case 0x011D: return((CHAR)248); case 0x011E: return((CHAR)171); case 0x011F: return((CHAR)187); case 0x0120: return((CHAR)213); case 0x0121: return((CHAR)245); case 0x0124: return((CHAR)166); case 0x0125: return((CHAR)182); case 0x0126: return((CHAR)161); case 0x0127: return((CHAR)177); case 0x0130: return((CHAR)169); case 0x0131: return((CHAR)185); case 0x0134: return((CHAR)172); case 0x0135: return((CHAR)188); case 0x015C: return((CHAR)222); case 0x015D: return((CHAR)254); case 0x015E: return((CHAR)170); case 0x015F: return((CHAR)186); case 0x016C: return((CHAR)221); case 0x016D: return((CHAR)253); case 0x017B: return((CHAR)175); case 0x017C: return((CHAR)191); case 0x02D8: return((CHAR)162); case 0x02D9: return((CHAR)255); default: return(tx_punc(c)); } } int /* Latin-4 */ #ifdef CK_ANSIC tx_8859_4(USHORT c) #else tx_8859_4(c) USHORT c; #endif /* CK_ANSIC */ { if (c < 0xa0) return((CHAR)(c & 0xff)); switch(c) { case 0x00A0: return((CHAR)160); case 0x00A4: return((CHAR)164); case 0x00A7: return((CHAR)167); case 0x00A8: return((CHAR)168); case 0x00AD: return((CHAR)173); case 0x00AF: return((CHAR)175); case 0x00B0: return((CHAR)176); case 0x00B4: return((CHAR)180); case 0x00B8: return((CHAR)184); case 0x00C1: return((CHAR)193); case 0x00C2: return((CHAR)194); case 0x00C3: return((CHAR)195); case 0x00C4: return((CHAR)196); case 0x00C5: return((CHAR)197); case 0x00C6: return((CHAR)198); case 0x00C9: return((CHAR)201); case 0x00CB: return((CHAR)203); case 0x00CD: return((CHAR)205); case 0x00CE: return((CHAR)206); case 0x00D4: return((CHAR)212); case 0x00D5: return((CHAR)213); case 0x00D6: return((CHAR)214); case 0x00D7: return((CHAR)215); case 0x00D8: return((CHAR)216); case 0x00DA: return((CHAR)218); case 0x00DB: return((CHAR)219); case 0x00DC: return((CHAR)220); case 0x00DF: return((CHAR)223); case 0x00E1: return((CHAR)225); case 0x00E2: return((CHAR)226); case 0x00E3: return((CHAR)227); case 0x00E4: return((CHAR)228); case 0x00E5: return((CHAR)229); case 0x00E6: return((CHAR)230); case 0x00E9: return((CHAR)233); case 0x00EB: return((CHAR)235); case 0x00ED: return((CHAR)237); case 0x00EE: return((CHAR)238); case 0x00F4: return((CHAR)244); case 0x00F5: return((CHAR)245); case 0x00F6: return((CHAR)246); case 0x00F7: return((CHAR)247); case 0x00F8: return((CHAR)248); case 0x00FA: return((CHAR)250); case 0x00FB: return((CHAR)251); case 0x00FC: return((CHAR)252); case 0x0100: return((CHAR)192); case 0x0101: return((CHAR)224); case 0x0104: return((CHAR)161); case 0x0105: return((CHAR)177); case 0x010C: return((CHAR)200); case 0x010D: return((CHAR)232); case 0x0110: return((CHAR)208); case 0x0111: return((CHAR)240); case 0x0112: return((CHAR)170); case 0x0113: return((CHAR)186); case 0x0116: return((CHAR)204); case 0x0117: return((CHAR)236); case 0x0118: return((CHAR)202); case 0x0119: return((CHAR)234); case 0x0122: return((CHAR)171); case 0x0123: return((CHAR)187); case 0x0128: return((CHAR)165); case 0x0129: return((CHAR)181); case 0x012A: return((CHAR)207); case 0x012B: return((CHAR)239); case 0x012E: return((CHAR)199); case 0x012F: return((CHAR)231); case 0x0136: return((CHAR)211); case 0x0137: return((CHAR)243); case 0x0138: return((CHAR)162); case 0x013B: return((CHAR)166); case 0x013C: return((CHAR)182); case 0x0145: return((CHAR)209); case 0x0146: return((CHAR)241); case 0x014A: return((CHAR)189); case 0x014B: return((CHAR)191); case 0x014C: return((CHAR)210); case 0x014D: return((CHAR)242); case 0x0156: return((CHAR)163); case 0x0157: return((CHAR)179); case 0x0160: return((CHAR)169); case 0x0161: return((CHAR)185); case 0x0166: return((CHAR)172); case 0x0167: return((CHAR)188); case 0x0168: return((CHAR)221); case 0x0169: return((CHAR)253); case 0x016A: return((CHAR)222); case 0x016B: return((CHAR)254); case 0x0172: return((CHAR)217); case 0x0173: return((CHAR)249); case 0x017D: return((CHAR)174); case 0x017E: return((CHAR)190); case 0x02C7: return((CHAR)183); case 0x02D9: return((CHAR)255); case 0x02DB: return((CHAR)178); default: return(tx_punc(c)); } } int /* ISO 8859-5 (Latin/Cyrillic) */ #ifdef CK_ANSIC tx_8859_5(USHORT c) #else tx_8859_5(c) USHORT c; #endif /* CK_ANSIC */ { if (c < 0xa0) /* (8859-5 is not Latin-5!) */ return((CHAR)(c & 0xff)); switch(c) { case 0x00A0: return((CHAR)160); case 0x00A7: return((CHAR)253); case 0x00AD: return((CHAR)173); case 0x0401: return((CHAR)161); case 0x0402: return((CHAR)162); case 0x0403: return((CHAR)163); case 0x0404: return((CHAR)164); case 0x0405: return((CHAR)165); case 0x0406: return((CHAR)166); case 0x0407: return((CHAR)167); case 0x0408: return((CHAR)168); case 0x0409: return((CHAR)169); case 0x040A: return((CHAR)170); case 0x040B: return((CHAR)171); case 0x040C: return((CHAR)172); case 0x040E: return((CHAR)174); case 0x040F: return((CHAR)175); case 0x0410: return((CHAR)176); case 0x0411: return((CHAR)177); case 0x0412: return((CHAR)178); case 0x0413: return((CHAR)179); case 0x0414: return((CHAR)180); case 0x0415: return((CHAR)181); case 0x0416: return((CHAR)182); case 0x0417: return((CHAR)183); case 0x0418: return((CHAR)184); case 0x0419: return((CHAR)185); case 0x041A: return((CHAR)186); case 0x041B: return((CHAR)187); case 0x041C: return((CHAR)188); case 0x041D: return((CHAR)189); case 0x041E: return((CHAR)190); case 0x041F: return((CHAR)191); case 0x0420: return((CHAR)192); case 0x0421: return((CHAR)193); case 0x0422: return((CHAR)194); case 0x0423: return((CHAR)195); case 0x0424: return((CHAR)196); case 0x0425: return((CHAR)197); case 0x0426: return((CHAR)198); case 0x0427: return((CHAR)199); case 0x0428: return((CHAR)200); case 0x0429: return((CHAR)201); case 0x042A: return((CHAR)202); case 0x042B: return((CHAR)203); case 0x042C: return((CHAR)204); case 0x042D: return((CHAR)205); case 0x042E: return((CHAR)206); case 0x042F: return((CHAR)207); case 0x0430: return((CHAR)208); case 0x0431: return((CHAR)209); case 0x0432: return((CHAR)210); case 0x0433: return((CHAR)211); case 0x0434: return((CHAR)212); case 0x0435: return((CHAR)213); case 0x0436: return((CHAR)214); case 0x0437: return((CHAR)215); case 0x0438: return((CHAR)216); case 0x0439: return((CHAR)217); case 0x043A: return((CHAR)218); case 0x043B: return((CHAR)219); case 0x043C: return((CHAR)220); case 0x043D: return((CHAR)221); case 0x043E: return((CHAR)222); case 0x043F: return((CHAR)223); case 0x0440: return((CHAR)224); case 0x0441: return((CHAR)225); case 0x0442: return((CHAR)226); case 0x0443: return((CHAR)227); case 0x0444: return((CHAR)228); case 0x0445: return((CHAR)229); case 0x0446: return((CHAR)230); case 0x0447: return((CHAR)231); case 0x0448: return((CHAR)232); case 0x0449: return((CHAR)233); case 0x044A: return((CHAR)234); case 0x044B: return((CHAR)235); case 0x044C: return((CHAR)236); case 0x044D: return((CHAR)237); case 0x044E: return((CHAR)238); case 0x044F: return((CHAR)239); case 0x0451: return((CHAR)241); case 0x0452: return((CHAR)242); case 0x0453: return((CHAR)243); case 0x0454: return((CHAR)244); case 0x0455: return((CHAR)245); case 0x0456: return((CHAR)246); case 0x0457: return((CHAR)247); case 0x0458: return((CHAR)248); case 0x0459: return((CHAR)249); case 0x045A: return((CHAR)250); case 0x045B: return((CHAR)251); case 0x045C: return((CHAR)252); case 0x045E: return((CHAR)254); case 0x045F: return((CHAR)255); case 0x2116: return((CHAR)240); default: return(tx_punc(c)); } } int /* ISO 8859-6 (Latin/Arabic) */ #ifdef CK_ANSIC tx_8859_6(USHORT c) #else tx_8859_6(c) USHORT c; #endif /* CK_ANSIC */ { if (c < 0xa0) /* (8859-6 != Latin-6) */ return((CHAR)(c & 0xff)); switch(c) { case 0x00A0: return((CHAR)160); case 0x00A4: return((CHAR)164); case 0x00AD: return((CHAR)173); case 0x060C: return((CHAR)172); case 0x061B: return((CHAR)187); case 0x061F: return((CHAR)191); case 0x0621: return((CHAR)193); case 0x0622: return((CHAR)194); case 0x0623: return((CHAR)195); case 0x0624: return((CHAR)196); case 0x0625: return((CHAR)197); case 0x0626: return((CHAR)198); case 0x0627: return((CHAR)199); case 0x0628: return((CHAR)200); case 0x0629: return((CHAR)201); case 0x062A: return((CHAR)202); case 0x062B: return((CHAR)203); case 0x062C: return((CHAR)204); case 0x062D: return((CHAR)205); case 0x062E: return((CHAR)206); case 0x062F: return((CHAR)207); case 0x0630: return((CHAR)208); case 0x0631: return((CHAR)209); case 0x0632: return((CHAR)210); case 0x0633: return((CHAR)211); case 0x0634: return((CHAR)212); case 0x0635: return((CHAR)213); case 0x0636: return((CHAR)214); case 0x0637: return((CHAR)215); case 0x0638: return((CHAR)216); case 0x0639: return((CHAR)217); case 0x063A: return((CHAR)218); case 0x0640: return((CHAR)224); case 0x0641: return((CHAR)225); case 0x0642: return((CHAR)226); case 0x0643: return((CHAR)227); case 0x0644: return((CHAR)228); case 0x0645: return((CHAR)229); case 0x0646: return((CHAR)230); case 0x0647: return((CHAR)231); case 0x0648: return((CHAR)232); case 0x0649: return((CHAR)233); case 0x064A: return((CHAR)234); case 0x064B: return((CHAR)235); case 0x064C: return((CHAR)236); case 0x064D: return((CHAR)237); case 0x064E: return((CHAR)238); case 0x064F: return((CHAR)239); case 0x0650: return((CHAR)240); case 0x0651: return((CHAR)241); case 0x0652: return((CHAR)242); default: return(tx_punc(c)); } } int /* ISO 8859-7 (Latin/Greek) */ #ifdef CK_ANSIC tx_8859_7(USHORT c) #else tx_8859_7(c) USHORT c; #endif /* CK_ANSIC */ { if (c < 0xa0) return((CHAR)(c & 0xff)); switch(c) { case 0x00a0: return((CHAR)160); case 0x00a3: return((CHAR)163); case 0x00a6: return((CHAR)166); case 0x00a7: return((CHAR)167); case 0x00a8: return((CHAR)168); case 0x00a9: return((CHAR)169); case 0x00ab: return((CHAR)171); case 0x00ac: return((CHAR)172); case 0x00ad: return((CHAR)173); case 0x00b0: return((CHAR)176); case 0x00b1: return((CHAR)177); case 0x00b2: return((CHAR)178); case 0x00b3: return((CHAR)179); case 0x00b7: return((CHAR)183); case 0x00bb: return((CHAR)187); case 0x00bd: return((CHAR)189); case 0x02bc: return((CHAR)162); case 0x02bd: return((CHAR)161); case 0x0384: return((CHAR)180); case 0x0385: return((CHAR)181); case 0x0386: return((CHAR)182); case 0x0388: return((CHAR)184); case 0x0389: return((CHAR)185); case 0x038a: return((CHAR)186); case 0x038c: return((CHAR)188); case 0x038e: return((CHAR)190); case 0x038f: return((CHAR)191); case 0x0390: return((CHAR)192); case 0x0391: return((CHAR)193); case 0x0392: return((CHAR)194); case 0x0393: return((CHAR)195); case 0x0394: return((CHAR)196); case 0x0395: return((CHAR)197); case 0x0396: return((CHAR)198); case 0x0397: return((CHAR)199); case 0x0398: return((CHAR)200); case 0x0399: return((CHAR)201); case 0x039a: return((CHAR)202); case 0x039b: return((CHAR)203); case 0x039c: return((CHAR)204); case 0x039d: return((CHAR)205); case 0x039e: return((CHAR)206); case 0x039f: return((CHAR)207); case 0x03a0: return((CHAR)208); case 0x03a1: return((CHAR)209); case 0x03a3: return((CHAR)211); case 0x03a4: return((CHAR)212); case 0x03a5: return((CHAR)213); case 0x03a6: return((CHAR)214); case 0x03a7: return((CHAR)215); case 0x03a8: return((CHAR)216); case 0x03a9: return((CHAR)217); case 0x03aa: return((CHAR)218); case 0x03ab: return((CHAR)219); case 0x03ac: return((CHAR)220); case 0x03ad: return((CHAR)221); case 0x03ae: return((CHAR)222); case 0x03af: return((CHAR)223); case 0x03b0: return((CHAR)224); case 0x03b1: return((CHAR)225); case 0x03b2: return((CHAR)226); case 0x03b3: return((CHAR)227); case 0x03b4: return((CHAR)228); case 0x03b5: return((CHAR)229); case 0x03b6: return((CHAR)230); case 0x03b7: return((CHAR)231); case 0x03b8: return((CHAR)232); case 0x03b9: return((CHAR)233); case 0x03ba: return((CHAR)234); case 0x03bb: return((CHAR)235); case 0x03bc: return((CHAR)236); case 0x03bd: return((CHAR)237); case 0x03be: return((CHAR)238); case 0x03bf: return((CHAR)239); case 0x03c0: return((CHAR)240); case 0x03c1: return((CHAR)241); case 0x03c2: return((CHAR)242); case 0x03c3: return((CHAR)243); case 0x03c4: return((CHAR)244); case 0x03c5: return((CHAR)245); case 0x03c6: return((CHAR)246); case 0x03c7: return((CHAR)247); case 0x03c8: return((CHAR)248); case 0x03c9: return((CHAR)249); case 0x03ca: return((CHAR)250); case 0x03cb: return((CHAR)251); case 0x03cc: return((CHAR)252); case 0x03cd: return((CHAR)253); case 0x03ce: return((CHAR)254); case 0x2015: return((CHAR)175); case 0x2018: return((CHAR)161); case 0x2019: return((CHAR)162); default: return(tx_punc(c)); } } int /* ISO 8859-8 (Latin/Hebrew) */ #ifdef CK_ANSIC tx_8859_8(USHORT c) #else tx_8859_8(c) USHORT c; #endif /* CK_ANSIC */ { if (c < 0xa0) return((CHAR)(c & 0xff)); switch(c) { case 0x00a0: return((CHAR)160); case 0x00a2: return((CHAR)162); case 0x00a3: return((CHAR)163); case 0x00a4: return((CHAR)164); case 0x00a5: return((CHAR)165); case 0x00a6: return((CHAR)166); case 0x00a7: return((CHAR)167); case 0x00a8: return((CHAR)168); case 0x00a9: return((CHAR)169); case 0x00d7: return((CHAR)170); case 0x00ab: return((CHAR)171); case 0x00ac: return((CHAR)172); case 0x00ad: return((CHAR)173); case 0x00ae: return((CHAR)174); case 0x203e: return((CHAR)175); case 0x00b0: return((CHAR)176); case 0x00b1: return((CHAR)177); case 0x00b2: return((CHAR)178); case 0x00b3: return((CHAR)179); case 0x00b4: return((CHAR)180); case 0x00b5: return((CHAR)181); case 0x00b6: return((CHAR)182); case 0x00b7: return((CHAR)183); case 0x00b8: return((CHAR)184); case 0x00b9: return((CHAR)185); case 0x00f7: return((CHAR)186); case 0x00bb: return((CHAR)187); case 0x00bc: return((CHAR)188); case 0x00bd: return((CHAR)189); case 0x00be: return((CHAR)190); case 0x2017: return((CHAR)223); case 0x05d0: return((CHAR)224); case 0x05d1: return((CHAR)225); case 0x05d2: return((CHAR)226); case 0x05d3: return((CHAR)227); case 0x05d4: return((CHAR)228); case 0x05d5: return((CHAR)229); case 0x05d6: return((CHAR)230); case 0x05d7: return((CHAR)231); case 0x05d8: return((CHAR)232); case 0x05d9: return((CHAR)233); case 0x05da: return((CHAR)234); case 0x05db: return((CHAR)235); case 0x05dc: return((CHAR)236); case 0x05dd: return((CHAR)237); case 0x05de: return((CHAR)238); case 0x05df: return((CHAR)239); case 0x05e0: return((CHAR)240); case 0x05e1: return((CHAR)241); case 0x05e2: return((CHAR)242); case 0x05e3: return((CHAR)243); case 0x05e4: return((CHAR)244); case 0x05e5: return((CHAR)245); case 0x05e6: return((CHAR)246); case 0x05e7: return((CHAR)247); case 0x05e8: return((CHAR)248); case 0x05e9: return((CHAR)249); case 0x05ea: return((CHAR)250); default: return(tx_punc(c)); } } int /* ISO 8859-9 (Latin-4) */ #ifdef CK_ANSIC tx_8859_9(USHORT c) #else tx_8859_9(c) USHORT c; #endif /* CK_ANSIC */ { if (c < 0xa0) return((CHAR)(c & 0xff)); switch(c) { case 0x011E: return((CHAR)208); /* Differs from Latin-1 in */ case 0x011F: return((CHAR)240); /* only six places */ case 0x0130: return((CHAR)221); case 0x0131: return((CHAR)253); case 0x015E: return((CHAR)222); case 0x015F: return((CHAR)254); default: return(tx_ident(c)); } } int /* Latin-6 */ #ifdef CK_ANSIC tx_8859_10(USHORT c) #else tx_8859_10(c) USHORT c; #endif /* CK_ANSIC */ { if (c < 0xa0) return((CHAR)(c & 0xff)); switch(c) { case 0x00a0: return((CHAR)160); case 0x00ad: return((CHAR)173); case 0x00bd: return((CHAR)189); case 0x00be: return((CHAR)190); case 0x00c1: return((CHAR)193); case 0x00c2: return((CHAR)194); case 0x00c3: return((CHAR)195); case 0x00c4: return((CHAR)196); case 0x00c5: return((CHAR)197); case 0x00c6: return((CHAR)198); case 0x00c9: return((CHAR)201); case 0x00cb: return((CHAR)203); case 0x00cd: return((CHAR)205); case 0x00ce: return((CHAR)206); case 0x00cf: return((CHAR)207); case 0x00d3: return((CHAR)211); case 0x00d4: return((CHAR)212); case 0x00d5: return((CHAR)213); case 0x00d6: return((CHAR)214); case 0x00d8: return((CHAR)216); case 0x00da: return((CHAR)218); case 0x00db: return((CHAR)219); case 0x00dc: return((CHAR)220); case 0x00dd: return((CHAR)221); case 0x00de: return((CHAR)222); case 0x00e1: return((CHAR)225); case 0x00e2: return((CHAR)226); case 0x00e3: return((CHAR)227); case 0x00e4: return((CHAR)228); case 0x00e5: return((CHAR)229); case 0x00e6: return((CHAR)230); case 0x00e9: return((CHAR)233); case 0x00eb: return((CHAR)235); case 0x00ed: return((CHAR)237); case 0x00ee: return((CHAR)238); case 0x00ef: return((CHAR)239); case 0x00f0: return((CHAR)240); case 0x00f1: return((CHAR)241); case 0x00f3: return((CHAR)243); case 0x00f4: return((CHAR)244); case 0x00f5: return((CHAR)245); case 0x00f6: return((CHAR)246); case 0x00f8: return((CHAR)248); case 0x00fa: return((CHAR)250); case 0x00fb: return((CHAR)251); case 0x00fc: return((CHAR)252); case 0x00fd: return((CHAR)253); case 0x00fe: return((CHAR)254); case 0x0100: return((CHAR)192); case 0x0101: return((CHAR)224); case 0x0104: return((CHAR)161); case 0x0105: return((CHAR)177); case 0x010c: return((CHAR)200); case 0x010d: return((CHAR)232); case 0x0110: return((CHAR)208); case 0x0111: return((CHAR)176); case 0x0112: return((CHAR)162); case 0x0113: return((CHAR)178); case 0x0116: return((CHAR)204); case 0x0117: return((CHAR)236); case 0x0118: return((CHAR)202); case 0x0119: return((CHAR)234); case 0x0122: return((CHAR)163); case 0x0123: return((CHAR)179); case 0x0128: return((CHAR)165); case 0x0129: return((CHAR)181); case 0x012a: return((CHAR)164); case 0x012b: return((CHAR)180); case 0x012e: return((CHAR)199); case 0x012f: return((CHAR)231); case 0x0136: return((CHAR)166); case 0x0137: return((CHAR)182); case 0x0138: return((CHAR)174); case 0x013b: return((CHAR)167); case 0x013c: return((CHAR)183); case 0x0143: return((CHAR)168); case 0x0144: return((CHAR)184); case 0x0145: return((CHAR)209); case 0x014a: return((CHAR)175); case 0x014b: return((CHAR)191); case 0x014c: return((CHAR)210); case 0x014d: return((CHAR)242); case 0x0156: return((CHAR)169); case 0x0157: return((CHAR)185); case 0x0160: return((CHAR)170); case 0x0161: return((CHAR)186); case 0x0166: return((CHAR)171); case 0x0167: return((CHAR)187); case 0x0168: return((CHAR)215); case 0x0169: return((CHAR)247); case 0x016a: return((CHAR)223); case 0x016b: return((CHAR)255); case 0x0172: return((CHAR)217); case 0x0173: return((CHAR)249); case 0x017d: return((CHAR)172); case 0x017e: return((CHAR)188); default: return(tx_ident(c)); } } int /* ISO 8859-15 Latin-9 */ #ifdef CK_ANSIC tx_8859_15(USHORT c) #else tx_8859_15(c) USHORT c; #endif /* CK_ANSIC */ { if (c < 0xa0) return((CHAR)(c & 0xff)); switch(c) { case 0x20AC: return((CHAR)0xA4); /* Differs from Latin-1 in */ case 0x0160: return((CHAR)0xAC); /* only eight places */ case 0x0161: return((CHAR)0xA8); case 0x017D: return((CHAR)0xB4); case 0x017E: return((CHAR)0xB8); case 0x0152: return((CHAR)0xBC); case 0x0153: return((CHAR)0xBD); case 0x0178: return((CHAR)0xBE); default: return(tx_ident(c)); } } int /* Old KOI-8 (ECMA 113 First Ed.) */ #ifdef CK_ANSIC tx_koi8(USHORT c) #else tx_koi8(c) USHORT c; #endif /* CK_ANSIC */ { if (c < 0xa0) return((CHAR)(c & 0xff)); switch(c) { case 0x0410: return((CHAR)(225 & 0xff)); case 0x0411: return((CHAR)(226 & 0xff)); case 0x0412: return((CHAR)(247 & 0xff)); case 0x0413: return((CHAR)(231 & 0xff)); case 0x0414: return((CHAR)(228 & 0xff)); case 0x0415: return((CHAR)(229 & 0xff)); case 0x0416: return((CHAR)(246 & 0xff)); case 0x0417: return((CHAR)(250 & 0xff)); case 0x0418: return((CHAR)(233 & 0xff)); case 0x0419: return((CHAR)(234 & 0xff)); case 0x041a: return((CHAR)(235 & 0xff)); case 0x041b: return((CHAR)(236 & 0xff)); case 0x041c: return((CHAR)(237 & 0xff)); case 0x041d: return((CHAR)(238 & 0xff)); case 0x041e: return((CHAR)(239 & 0xff)); case 0x041f: return((CHAR)(240 & 0xff)); case 0x0420: return((CHAR)(242 & 0xff)); case 0x0421: return((CHAR)(243 & 0xff)); case 0x0422: return((CHAR)(244 & 0xff)); case 0x0423: return((CHAR)(245 & 0xff)); case 0x0424: return((CHAR)(230 & 0xff)); case 0x0425: return((CHAR)(232 & 0xff)); case 0x0426: return((CHAR)(227 & 0xff)); case 0x0427: return((CHAR)(254 & 0xff)); case 0x0428: return((CHAR)(251 & 0xff)); case 0x0429: return((CHAR)(253 & 0xff)); case 0x042b: return((CHAR)(249 & 0xff)); case 0x042c: return((CHAR)(248 & 0xff)); case 0x042d: return((CHAR)(252 & 0xff)); case 0x042e: return((CHAR)(224 & 0xff)); case 0x042f: return((CHAR)(241 & 0xff)); case 0x0430: return((CHAR)(193 & 0xff)); case 0x0431: return((CHAR)(194 & 0xff)); case 0x0432: return((CHAR)(215 & 0xff)); case 0x0433: return((CHAR)(199 & 0xff)); case 0x0434: return((CHAR)(196 & 0xff)); case 0x0435: return((CHAR)(197 & 0xff)); case 0x0436: return((CHAR)(214 & 0xff)); case 0x0437: return((CHAR)(218 & 0xff)); case 0x0438: return((CHAR)(201 & 0xff)); case 0x0439: return((CHAR)(202 & 0xff)); case 0x043a: return((CHAR)(203 & 0xff)); case 0x043b: return((CHAR)(204 & 0xff)); case 0x043c: return((CHAR)(205 & 0xff)); case 0x043d: return((CHAR)(206 & 0xff)); case 0x043e: return((CHAR)(207 & 0xff)); case 0x043f: return((CHAR)(208 & 0xff)); case 0x0440: return((CHAR)(210 & 0xff)); case 0x0441: return((CHAR)(211 & 0xff)); case 0x0442: return((CHAR)(212 & 0xff)); case 0x0443: return((CHAR)(213 & 0xff)); case 0x0444: return((CHAR)(198 & 0xff)); case 0x0445: return((CHAR)(200 & 0xff)); case 0x0446: return((CHAR)(195 & 0xff)); case 0x0447: return((CHAR)(222 & 0xff)); case 0x0448: return((CHAR)(219 & 0xff)); case 0x0449: return((CHAR)(221 & 0xff)); case 0x044a: return((CHAR)(223 & 0xff)); case 0x044b: return((CHAR)(217 & 0xff)); case 0x044c: return((CHAR)(216 & 0xff)); case 0x044d: return((CHAR)(220 & 0xff)); case 0x044e: return((CHAR)(192 & 0xff)); case 0x044f: return((CHAR)(209 & 0xff)); default: return(tx_ident(c)); } } int /* UCS-2 to KOI8-R (Russia) */ #ifdef CK_ANSIC tx_koi8r(USHORT c) #else tx_koi8r(c) USHORT c; #endif /* CK_ANSIC */ { if (c < 0x00A0) return((CHAR)(c & 0xff)); switch(c) { case 0x00A0: return((CHAR)(154 & 0xff)); case 0x00A9: return((CHAR)(191 & 0xff)); case 0x00B0: return((CHAR)(156 & 0xff)); case 0x00B2: return((CHAR)(157 & 0xff)); case 0x00B7: return((CHAR)(158 & 0xff)); case 0x00F7: return((CHAR)(159 & 0xff)); case 0x0401: return((CHAR)(179 & 0xff)); case 0x0410: return((CHAR)(225 & 0xff)); case 0x0411: return((CHAR)(226 & 0xff)); case 0x0412: return((CHAR)(247 & 0xff)); case 0x0413: return((CHAR)(231 & 0xff)); case 0x0414: return((CHAR)(228 & 0xff)); case 0x0415: return((CHAR)(229 & 0xff)); case 0x0416: return((CHAR)(246 & 0xff)); case 0x0417: return((CHAR)(250 & 0xff)); case 0x0418: return((CHAR)(233 & 0xff)); case 0x0419: return((CHAR)(234 & 0xff)); case 0x041A: return((CHAR)(235 & 0xff)); case 0x041B: return((CHAR)(236 & 0xff)); case 0x041C: return((CHAR)(237 & 0xff)); case 0x041D: return((CHAR)(238 & 0xff)); case 0x041E: return((CHAR)(239 & 0xff)); case 0x041F: return((CHAR)(240 & 0xff)); case 0x0420: return((CHAR)(242 & 0xff)); case 0x0421: return((CHAR)(243 & 0xff)); case 0x0422: return((CHAR)(244 & 0xff)); case 0x0423: return((CHAR)(245 & 0xff)); case 0x0424: return((CHAR)(230 & 0xff)); case 0x0425: return((CHAR)(232 & 0xff)); case 0x0426: return((CHAR)(227 & 0xff)); case 0x0427: return((CHAR)(254 & 0xff)); case 0x0428: return((CHAR)(251 & 0xff)); case 0x0429: return((CHAR)(253 & 0xff)); case 0x042A: return((CHAR)(255 & 0xff)); case 0x042B: return((CHAR)(249 & 0xff)); case 0x042C: return((CHAR)(248 & 0xff)); case 0x042D: return((CHAR)(252 & 0xff)); case 0x042E: return((CHAR)(224 & 0xff)); case 0x042F: return((CHAR)(241 & 0xff)); case 0x0430: return((CHAR)(193 & 0xff)); case 0x0431: return((CHAR)(194 & 0xff)); case 0x0432: return((CHAR)(215 & 0xff)); case 0x0433: return((CHAR)(199 & 0xff)); case 0x0434: return((CHAR)(196 & 0xff)); case 0x0435: return((CHAR)(197 & 0xff)); case 0x0436: return((CHAR)(214 & 0xff)); case 0x0437: return((CHAR)(218 & 0xff)); case 0x0438: return((CHAR)(201 & 0xff)); case 0x0439: return((CHAR)(202 & 0xff)); case 0x043A: return((CHAR)(203 & 0xff)); case 0x043B: return((CHAR)(204 & 0xff)); case 0x043C: return((CHAR)(205 & 0xff)); case 0x043D: return((CHAR)(206 & 0xff)); case 0x043E: return((CHAR)(207 & 0xff)); case 0x043F: return((CHAR)(208 & 0xff)); case 0x0440: return((CHAR)(210 & 0xff)); case 0x0441: return((CHAR)(211 & 0xff)); case 0x0442: return((CHAR)(212 & 0xff)); case 0x0443: return((CHAR)(213 & 0xff)); case 0x0444: return((CHAR)(198 & 0xff)); case 0x0445: return((CHAR)(200 & 0xff)); case 0x0446: return((CHAR)(195 & 0xff)); case 0x0447: return((CHAR)(222 & 0xff)); case 0x0448: return((CHAR)(219 & 0xff)); case 0x0449: return((CHAR)(221 & 0xff)); case 0x044A: return((CHAR)(223 & 0xff)); case 0x044B: return((CHAR)(217 & 0xff)); case 0x044C: return((CHAR)(216 & 0xff)); case 0x044D: return((CHAR)(220 & 0xff)); case 0x044E: return((CHAR)(192 & 0xff)); case 0x044F: return((CHAR)(209 & 0xff)); case 0x0451: return((CHAR)(163 & 0xff)); case 0x2219: return((CHAR)(149 & 0xff)); case 0x221A: return((CHAR)(150 & 0xff)); case 0x2248: return((CHAR)(151 & 0xff)); case 0x2264: return((CHAR)(152 & 0xff)); case 0x2265: return((CHAR)(153 & 0xff)); case 0x2320: return((CHAR)(147 & 0xff)); case 0x2321: return((CHAR)(155 & 0xff)); case 0x2500: return((CHAR)(128 & 0xff)); case 0x2502: return((CHAR)(129 & 0xff)); case 0x250C: return((CHAR)(130 & 0xff)); case 0x2510: return((CHAR)(131 & 0xff)); case 0x2514: return((CHAR)(132 & 0xff)); case 0x2518: return((CHAR)(133 & 0xff)); case 0x251C: return((CHAR)(134 & 0xff)); case 0x2524: return((CHAR)(135 & 0xff)); case 0x252C: return((CHAR)(136 & 0xff)); case 0x2534: return((CHAR)(137 & 0xff)); case 0x253C: return((CHAR)(138 & 0xff)); case 0x2550: return((CHAR)(160 & 0xff)); case 0x2551: return((CHAR)(161 & 0xff)); case 0x2552: return((CHAR)(162 & 0xff)); case 0x2553: return((CHAR)(164 & 0xff)); case 0x2554: return((CHAR)(165 & 0xff)); case 0x2555: return((CHAR)(166 & 0xff)); case 0x2556: return((CHAR)(167 & 0xff)); case 0x2557: return((CHAR)(168 & 0xff)); case 0x2558: return((CHAR)(169 & 0xff)); case 0x2559: return((CHAR)(170 & 0xff)); case 0x255A: return((CHAR)(171 & 0xff)); case 0x255B: return((CHAR)(172 & 0xff)); case 0x255C: return((CHAR)(173 & 0xff)); case 0x255D: return((CHAR)(174 & 0xff)); case 0x255E: return((CHAR)(175 & 0xff)); case 0x255F: return((CHAR)(176 & 0xff)); case 0x2560: return((CHAR)(177 & 0xff)); case 0x2561: return((CHAR)(178 & 0xff)); case 0x2562: return((CHAR)(180 & 0xff)); case 0x2563: return((CHAR)(181 & 0xff)); case 0x2564: return((CHAR)(182 & 0xff)); case 0x2565: return((CHAR)(183 & 0xff)); case 0x2566: return((CHAR)(184 & 0xff)); case 0x2567: return((CHAR)(185 & 0xff)); case 0x2568: return((CHAR)(186 & 0xff)); case 0x2569: return((CHAR)(187 & 0xff)); case 0x256A: return((CHAR)(188 & 0xff)); case 0x256B: return((CHAR)(189 & 0xff)); case 0x256C: return((CHAR)(190 & 0xff)); case 0x2580: return((CHAR)(139 & 0xff)); case 0x2584: return((CHAR)(140 & 0xff)); case 0x2588: return((CHAR)(141 & 0xff)); case 0x258C: return((CHAR)(142 & 0xff)); case 0x2590: return((CHAR)(143 & 0xff)); case 0x2591: return((CHAR)(144 & 0xff)); case 0x2592: return((CHAR)(145 & 0xff)); case 0x2593: return((CHAR)(146 & 0xff)); case 0x25A0: return((CHAR)(148 & 0xff)); default: return(tx_ident(c)); } } int /* KOI8-U (Ukraine) */ #ifdef CK_ANSIC tx_koi8u(USHORT c) #else tx_koi8u(c) USHORT c; #endif /* CK_ANSIC */ { if (c < 0xa0) return((CHAR)(c & 0xff)); switch(c) { case 0x00A0: return((CHAR)(154 & 0xff)); case 0x00A9: return((CHAR)(191 & 0xff)); case 0x00B0: return((CHAR)(156 & 0xff)); case 0x00B2: return((CHAR)(157 & 0xff)); case 0x00B7: return((CHAR)(158 & 0xff)); case 0x00F7: return((CHAR)(159 & 0xff)); case 0x0401: return((CHAR)(179 & 0xff)); case 0x0404: return((CHAR)(180 & 0xff)); case 0x0406: return((CHAR)(182 & 0xff)); case 0x0407: return((CHAR)(183 & 0xff)); case 0x0410: return((CHAR)(225 & 0xff)); case 0x0411: return((CHAR)(226 & 0xff)); case 0x0412: return((CHAR)(247 & 0xff)); case 0x0413: return((CHAR)(231 & 0xff)); case 0x0414: return((CHAR)(228 & 0xff)); case 0x0415: return((CHAR)(229 & 0xff)); case 0x0416: return((CHAR)(246 & 0xff)); case 0x0417: return((CHAR)(250 & 0xff)); case 0x0418: return((CHAR)(233 & 0xff)); case 0x0419: return((CHAR)(234 & 0xff)); case 0x041A: return((CHAR)(235 & 0xff)); case 0x041B: return((CHAR)(236 & 0xff)); case 0x041C: return((CHAR)(237 & 0xff)); case 0x041D: return((CHAR)(238 & 0xff)); case 0x041E: return((CHAR)(239 & 0xff)); case 0x041F: return((CHAR)(240 & 0xff)); case 0x0420: return((CHAR)(242 & 0xff)); case 0x0421: return((CHAR)(243 & 0xff)); case 0x0422: return((CHAR)(244 & 0xff)); case 0x0423: return((CHAR)(245 & 0xff)); case 0x0424: return((CHAR)(230 & 0xff)); case 0x0425: return((CHAR)(232 & 0xff)); case 0x0426: return((CHAR)(227 & 0xff)); case 0x0427: return((CHAR)(254 & 0xff)); case 0x0428: return((CHAR)(251 & 0xff)); case 0x0429: return((CHAR)(253 & 0xff)); case 0x042A: return((CHAR)(255 & 0xff)); case 0x042B: return((CHAR)(249 & 0xff)); case 0x042C: return((CHAR)(248 & 0xff)); case 0x042D: return((CHAR)(252 & 0xff)); case 0x042E: return((CHAR)(224 & 0xff)); case 0x042F: return((CHAR)(241 & 0xff)); case 0x0430: return((CHAR)(193 & 0xff)); case 0x0431: return((CHAR)(194 & 0xff)); case 0x0432: return((CHAR)(215 & 0xff)); case 0x0433: return((CHAR)(199 & 0xff)); case 0x0434: return((CHAR)(196 & 0xff)); case 0x0435: return((CHAR)(197 & 0xff)); case 0x0436: return((CHAR)(214 & 0xff)); case 0x0437: return((CHAR)(218 & 0xff)); case 0x0438: return((CHAR)(201 & 0xff)); case 0x0439: return((CHAR)(202 & 0xff)); case 0x043A: return((CHAR)(203 & 0xff)); case 0x043B: return((CHAR)(204 & 0xff)); case 0x043C: return((CHAR)(205 & 0xff)); case 0x043D: return((CHAR)(206 & 0xff)); case 0x043E: return((CHAR)(207 & 0xff)); case 0x043F: return((CHAR)(208 & 0xff)); case 0x0440: return((CHAR)(210 & 0xff)); case 0x0441: return((CHAR)(211 & 0xff)); case 0x0442: return((CHAR)(212 & 0xff)); case 0x0443: return((CHAR)(213 & 0xff)); case 0x0444: return((CHAR)(198 & 0xff)); case 0x0445: return((CHAR)(200 & 0xff)); case 0x0446: return((CHAR)(195 & 0xff)); case 0x0447: return((CHAR)(222 & 0xff)); case 0x0448: return((CHAR)(219 & 0xff)); case 0x0449: return((CHAR)(221 & 0xff)); case 0x044A: return((CHAR)(223 & 0xff)); case 0x044B: return((CHAR)(217 & 0xff)); case 0x044C: return((CHAR)(216 & 0xff)); case 0x044D: return((CHAR)(220 & 0xff)); case 0x044E: return((CHAR)(192 & 0xff)); case 0x044F: return((CHAR)(209 & 0xff)); case 0x0451: return((CHAR)(163 & 0xff)); case 0x0454: return((CHAR)(164 & 0xff)); case 0x0456: return((CHAR)(166 & 0xff)); case 0x0457: return((CHAR)(167 & 0xff)); case 0x0490: return((CHAR)(189 & 0xff)); case 0x0491: return((CHAR)(173 & 0xff)); case 0x2219: return((CHAR)(149 & 0xff)); case 0x221A: return((CHAR)(150 & 0xff)); case 0x2248: return((CHAR)(151 & 0xff)); case 0x2264: return((CHAR)(152 & 0xff)); case 0x2265: return((CHAR)(153 & 0xff)); case 0x2320: return((CHAR)(147 & 0xff)); case 0x2321: return((CHAR)(155 & 0xff)); case 0x2500: return((CHAR)(128 & 0xff)); case 0x2502: return((CHAR)(129 & 0xff)); case 0x250C: return((CHAR)(130 & 0xff)); case 0x2510: return((CHAR)(131 & 0xff)); case 0x2514: return((CHAR)(132 & 0xff)); case 0x2518: return((CHAR)(133 & 0xff)); case 0x251C: return((CHAR)(134 & 0xff)); case 0x2524: return((CHAR)(135 & 0xff)); case 0x252C: return((CHAR)(136 & 0xff)); case 0x2534: return((CHAR)(137 & 0xff)); case 0x253C: return((CHAR)(138 & 0xff)); case 0x2550: return((CHAR)(160 & 0xff)); case 0x2551: return((CHAR)(161 & 0xff)); case 0x2552: return((CHAR)(162 & 0xff)); case 0x2554: return((CHAR)(165 & 0xff)); case 0x2557: return((CHAR)(168 & 0xff)); case 0x2558: return((CHAR)(169 & 0xff)); case 0x2559: return((CHAR)(170 & 0xff)); case 0x255A: return((CHAR)(171 & 0xff)); case 0x255B: return((CHAR)(172 & 0xff)); case 0x255D: return((CHAR)(174 & 0xff)); case 0x255E: return((CHAR)(175 & 0xff)); case 0x255F: return((CHAR)(176 & 0xff)); case 0x2560: return((CHAR)(177 & 0xff)); case 0x2561: return((CHAR)(178 & 0xff)); case 0x2563: return((CHAR)(181 & 0xff)); case 0x2566: return((CHAR)(184 & 0xff)); case 0x2567: return((CHAR)(185 & 0xff)); case 0x2568: return((CHAR)(186 & 0xff)); case 0x2569: return((CHAR)(187 & 0xff)); case 0x256A: return((CHAR)(188 & 0xff)); case 0x256C: return((CHAR)(190 & 0xff)); case 0x2580: return((CHAR)(139 & 0xff)); case 0x2584: return((CHAR)(140 & 0xff)); case 0x2588: return((CHAR)(141 & 0xff)); case 0x258C: return((CHAR)(142 & 0xff)); case 0x2590: return((CHAR)(143 & 0xff)); case 0x2591: return((CHAR)(144 & 0xff)); case 0x2592: return((CHAR)(145 & 0xff)); case 0x2593: return((CHAR)(146 & 0xff)); case 0x25A0: return((CHAR)(148 & 0xff)); default: return(tx_ident(c)); } } int /* DEC MCS */ #ifdef CK_ANSIC tx_decmcs(USHORT c) #else tx_decmcs(c) USHORT c; #endif /* CK_ANSIC */ { if (c < 0xa0) return((CHAR)(c & 0xff)); switch(c) { case 0x00a6: case 0x00a8: case 0x00ac: case 0x00ae: case 0x00af: case 0x00b4: case 0x00b8: case 0x00be: case 0x00d0: case 0x00de: case 0x00f0: case 0x00fe: case 0x00ff: return(-1); /* These are all undefined in DECMCS */ case 0x00a4: /* Currency sign */ return((CHAR)0xa8); case 0x0152: /* OE */ return((CHAR)0xd7); case 0x0153: /* oe */ return((CHAR)0xf7); default: return(tx_ident(c)); } } int /* NeXTSTEP */ #ifdef CK_ANSIC tx_nextstep(USHORT c) #else tx_nextstep(c) USHORT c; #endif /* CK_ANSIC */ { if (c < 0x80) /* Has C1 graphics */ return((CHAR)(c & 0xff)); switch (c) { case 0x00a0: return((CHAR)(128 & 0xff)); case 0x00a1: return((CHAR)(161 & 0xff)); case 0x00a2: return((CHAR)(162 & 0xff)); case 0x00a3: return((CHAR)(163 & 0xff)); case 0x00a4: return((CHAR)(168 & 0xff)); case 0x00a5: return((CHAR)(165 & 0xff)); case 0x00a6: return((CHAR)(181 & 0xff)); case 0x00a7: return((CHAR)(167 & 0xff)); case 0x00a8: return((CHAR)(200 & 0xff)); case 0x00a9: return((CHAR)(160 & 0xff)); case 0x00aa: return((CHAR)(227 & 0xff)); case 0x00ab: return((CHAR)(171 & 0xff)); case 0x00ac: return((CHAR)(190 & 0xff)); case 0x00ae: return((CHAR)(176 & 0xff)); case 0x00af: return((CHAR)(197 & 0xff)); case 0x00b1: return((CHAR)(209 & 0xff)); case 0x00b2: return((CHAR)(201 & 0xff)); case 0x00b3: return((CHAR)(204 & 0xff)); case 0x00b4: return((CHAR)(194 & 0xff)); case 0x00b5: return((CHAR)(157 & 0xff)); case 0x00b6: return((CHAR)(182 & 0xff)); case 0x00b7: return((CHAR)(180 & 0xff)); case 0x00b8: return((CHAR)(203 & 0xff)); case 0x00b9: return((CHAR)(192 & 0xff)); case 0x00ba: return((CHAR)(235 & 0xff)); case 0x00bb: return((CHAR)(187 & 0xff)); case 0x00bc: return((CHAR)(210 & 0xff)); case 0x00bd: return((CHAR)(211 & 0xff)); case 0x00be: return((CHAR)(212 & 0xff)); case 0x00bf: return((CHAR)(191 & 0xff)); case 0x00c0: return((CHAR)(129 & 0xff)); case 0x00c1: return((CHAR)(130 & 0xff)); case 0x00c2: return((CHAR)(131 & 0xff)); case 0x00c3: return((CHAR)(132 & 0xff)); case 0x00c4: return((CHAR)(133 & 0xff)); case 0x00c5: return((CHAR)(134 & 0xff)); case 0x00c6: return((CHAR)(225 & 0xff)); case 0x00c7: return((CHAR)(135 & 0xff)); case 0x00c8: return((CHAR)(136 & 0xff)); case 0x00c9: return((CHAR)(137 & 0xff)); case 0x00ca: return((CHAR)(138 & 0xff)); case 0x00cb: return((CHAR)(139 & 0xff)); case 0x00cc: return((CHAR)(140 & 0xff)); case 0x00cd: return((CHAR)(141 & 0xff)); case 0x00ce: return((CHAR)(142 & 0xff)); case 0x00cf: return((CHAR)(143 & 0xff)); case 0x00d0: return((CHAR)(144 & 0xff)); case 0x00d1: return((CHAR)(145 & 0xff)); case 0x00d2: return((CHAR)(146 & 0xff)); case 0x00d3: return((CHAR)(147 & 0xff)); case 0x00d4: return((CHAR)(148 & 0xff)); case 0x00d5: return((CHAR)(149 & 0xff)); case 0x00d6: return((CHAR)(150 & 0xff)); case 0x00d7: return((CHAR)(158 & 0xff)); case 0x00d8: return((CHAR)(233 & 0xff)); case 0x00d9: return((CHAR)(151 & 0xff)); case 0x00da: return((CHAR)(152 & 0xff)); case 0x00db: return((CHAR)(153 & 0xff)); case 0x00dc: return((CHAR)(154 & 0xff)); case 0x00dd: return((CHAR)(155 & 0xff)); case 0x00de: return((CHAR)(156 & 0xff)); case 0x00df: return((CHAR)(251 & 0xff)); case 0x00e0: return((CHAR)(213 & 0xff)); case 0x00e1: return((CHAR)(214 & 0xff)); case 0x00e2: return((CHAR)(215 & 0xff)); case 0x00e3: return((CHAR)(216 & 0xff)); case 0x00e4: return((CHAR)(217 & 0xff)); case 0x00e5: return((CHAR)(218 & 0xff)); case 0x00e6: return((CHAR)(241 & 0xff)); case 0x00e7: return((CHAR)(219 & 0xff)); case 0x00e8: return((CHAR)(220 & 0xff)); case 0x00e9: return((CHAR)(221 & 0xff)); case 0x00ea: return((CHAR)(222 & 0xff)); case 0x00eb: return((CHAR)(223 & 0xff)); case 0x00ec: return((CHAR)(224 & 0xff)); case 0x00ed: return((CHAR)(226 & 0xff)); case 0x00ee: return((CHAR)(228 & 0xff)); case 0x00ef: return((CHAR)(229 & 0xff)); case 0x00f0: return((CHAR)(230 & 0xff)); case 0x00f1: return((CHAR)(231 & 0xff)); case 0x00f2: return((CHAR)(236 & 0xff)); case 0x00f3: return((CHAR)(237 & 0xff)); case 0x00f4: return((CHAR)(238 & 0xff)); case 0x00f5: return((CHAR)(239 & 0xff)); case 0x00f6: return((CHAR)(240 & 0xff)); case 0x00f7: return((CHAR)(159 & 0xff)); case 0x00f8: return((CHAR)(249 & 0xff)); case 0x00f9: return((CHAR)(242 & 0xff)); case 0x00fa: return((CHAR)(243 & 0xff)); case 0x00fb: return((CHAR)(244 & 0xff)); case 0x00fc: return((CHAR)(246 & 0xff)); case 0x00fd: return((CHAR)(247 & 0xff)); case 0x00fe: return((CHAR)(252 & 0xff)); case 0x00ff: return((CHAR)(253 & 0xff)); case 0x0131: return((CHAR)(245 & 0xff)); case 0x0141: return((CHAR)(232 & 0xff)); case 0x0142: return((CHAR)(248 & 0xff)); case 0x0152: return((CHAR)(234 & 0xff)); case 0x0153: return((CHAR)(250 & 0xff)); case 0x0192: return((CHAR)(166 & 0xff)); case 0x02c6: return((CHAR)(195 & 0xff)); case 0x02c7: return((CHAR)(207 & 0xff)); case 0x02cb: return((CHAR)(193 & 0xff)); case 0x02d8: return((CHAR)(198 & 0xff)); case 0x02d9: return((CHAR)(199 & 0xff)); case 0x02da: return((CHAR)(202 & 0xff)); case 0x02db: return((CHAR)(206 & 0xff)); case 0x02dc: return((CHAR)(196 & 0xff)); case 0x02dd: return((CHAR)(205 & 0xff)); case 0x2013: return((CHAR)(177 & 0xff)); case 0x2014: return((CHAR)(208 & 0xff)); case 0x2019: return((CHAR)(169 & 0xff)); case 0x201a: return((CHAR)(184 & 0xff)); case 0x201c: return((CHAR)(170 & 0xff)); case 0x201d: return((CHAR)(186 & 0xff)); case 0x201e: return((CHAR)(185 & 0xff)); case 0x2020: return((CHAR)(178 & 0xff)); case 0x2021: return((CHAR)(179 & 0xff)); case 0x2022: return((CHAR)(183 & 0xff)); case 0x2026: return((CHAR)(188 & 0xff)); case 0x2030: return((CHAR)(189 & 0xff)); case 0x2039: return((CHAR)(172 & 0xff)); case 0x203a: return((CHAR)(173 & 0xff)); case 0x2044: return((CHAR)(164 & 0xff)); case 0xfb01: return((CHAR)(174 & 0xff)); case 0xfb02: return((CHAR)(175 & 0xff)); default: return(tx_punc(c)); } } int /* DG International */ #ifdef CK_ANSIC tx_dgi(USHORT c) #else tx_dgi(c) USHORT c; #endif /* CK_ANSIC */ { if (c < 0xa0) return((CHAR)(c & 0xff)); switch(c) { case 0x00a0: return((CHAR)(160 & 0xff)); case 0x00a1: return((CHAR)(171 & 0xff)); case 0x00a2: return((CHAR)(167 & 0xff)); case 0x00a3: return((CHAR)(168 & 0xff)); case 0x00a4: return((CHAR)(166 & 0xff)); case 0x00a5: return((CHAR)(181 & 0xff)); case 0x00a7: return((CHAR)(187 & 0xff)); case 0x00a8: return((CHAR)(189 & 0xff)); case 0x00a9: return((CHAR)(173 & 0xff)); case 0x00aa: return((CHAR)(169 & 0xff)); case 0x00ab: return((CHAR)(177 & 0xff)); case 0x00ac: return((CHAR)(161 & 0xff)); case 0x00ae: return((CHAR)(174 & 0xff)); case 0x00b0: return((CHAR)(188 & 0xff)); case 0x00b1: return((CHAR)(182 & 0xff)); case 0x00b2: return((CHAR)(164 & 0xff)); case 0x00b3: return((CHAR)(165 & 0xff)); case 0x00b4: return((CHAR)(190 & 0xff)); case 0x00b5: return((CHAR)(163 & 0xff)); case 0x00b6: return((CHAR)(178 & 0xff)); case 0x00b7: return((CHAR)(185 & 0xff)); case 0x00b8: return((CHAR)(186 & 0xff)); case 0x00ba: return((CHAR)(170 & 0xff)); case 0x00bb: return((CHAR)(176 & 0xff)); case 0x00bd: return((CHAR)(162 & 0xff)); case 0x00bf: return((CHAR)(172 & 0xff)); case 0x00c0: return((CHAR)(193 & 0xff)); case 0x00c1: return((CHAR)(192 & 0xff)); case 0x00c2: return((CHAR)(194 & 0xff)); case 0x00c3: return((CHAR)(196 & 0xff)); case 0x00c4: return((CHAR)(195 & 0xff)); case 0x00c5: return((CHAR)(197 & 0xff)); case 0x00c6: return((CHAR)(198 & 0xff)); case 0x00c7: return((CHAR)(199 & 0xff)); case 0x00c8: return((CHAR)(201 & 0xff)); case 0x00c9: return((CHAR)(200 & 0xff)); case 0x00ca: return((CHAR)(202 & 0xff)); case 0x00cb: return((CHAR)(203 & 0xff)); case 0x00cc: return((CHAR)(205 & 0xff)); case 0x00cd: return((CHAR)(204 & 0xff)); case 0x00ce: return((CHAR)(206 & 0xff)); case 0x00cf: return((CHAR)(207 & 0xff)); case 0x00d1: return((CHAR)(208 & 0xff)); case 0x00d2: return((CHAR)(210 & 0xff)); case 0x00d3: return((CHAR)(209 & 0xff)); case 0x00d4: return((CHAR)(211 & 0xff)); case 0x00d5: return((CHAR)(213 & 0xff)); case 0x00d6: return((CHAR)(212 & 0xff)); case 0x00d8: return((CHAR)(214 & 0xff)); case 0x00d9: return((CHAR)(217 & 0xff)); case 0x00da: return((CHAR)(216 & 0xff)); case 0x00db: return((CHAR)(218 & 0xff)); case 0x00dc: return((CHAR)(219 & 0xff)); case 0x00df: return((CHAR)(252 & 0xff)); case 0x00e0: return((CHAR)(225 & 0xff)); case 0x00e1: return((CHAR)(224 & 0xff)); case 0x00e2: return((CHAR)(226 & 0xff)); case 0x00e3: return((CHAR)(228 & 0xff)); case 0x00e4: return((CHAR)(227 & 0xff)); case 0x00e5: return((CHAR)(229 & 0xff)); case 0x00e6: return((CHAR)(230 & 0xff)); case 0x00e7: return((CHAR)(231 & 0xff)); case 0x00e8: return((CHAR)(233 & 0xff)); case 0x00e9: return((CHAR)(232 & 0xff)); case 0x00ea: return((CHAR)(234 & 0xff)); case 0x00eb: return((CHAR)(235 & 0xff)); case 0x00ec: return((CHAR)(237 & 0xff)); case 0x00ed: return((CHAR)(236 & 0xff)); case 0x00ee: return((CHAR)(238 & 0xff)); case 0x00ef: return((CHAR)(239 & 0xff)); case 0x00f1: return((CHAR)(240 & 0xff)); case 0x00f2: return((CHAR)(242 & 0xff)); case 0x00f3: return((CHAR)(241 & 0xff)); case 0x00f4: return((CHAR)(243 & 0xff)); case 0x00f5: return((CHAR)(245 & 0xff)); case 0x00f6: return((CHAR)(244 & 0xff)); case 0x00f8: return((CHAR)(246 & 0xff)); case 0x00f9: return((CHAR)(249 & 0xff)); case 0x00fa: return((CHAR)(248 & 0xff)); case 0x00fb: return((CHAR)(250 & 0xff)); case 0x00fc: return((CHAR)(251 & 0xff)); case 0x00ff: return((CHAR)(253 & 0xff)); case 0x0153: return((CHAR)(247 & 0xff)); case 0x0178: return((CHAR)(221 & 0xff)); case 0x0192: return((CHAR)(180 & 0xff)); case 0x0276: return((CHAR)(215 & 0xff)); case 0x2021: return((CHAR)(175 & 0xff)); case 0x2122: return((CHAR)(179 & 0xff)); case 0x2191: return((CHAR)(191 & 0xff)); case 0x2264: return((CHAR)(183 & 0xff)); case 0x2265: return((CHAR)(184 & 0xff)); case 0x2588: return((CHAR)(255 & 0xff)); default: return(tx_punc(c)); } } int /* Macintosh Latin */ #ifdef CK_ANSIC tx_maclatin(USHORT c) #else tx_maclatin(c) USHORT c; #endif /* CK_ANSIC */ { if (c < 0x80) /* Has C1 graphics */ return((CHAR)(c & 0xff)); switch (c) { case 0x00a0: return((CHAR)(202 & 0xff)); case 0x00a1: return((CHAR)(193 & 0xff)); case 0x00a2: return((CHAR)(162 & 0xff)); case 0x00a3: return((CHAR)(163 & 0xff)); case 0x00a4: return((CHAR)(219 & 0xff)); case 0x00a5: return((CHAR)(180 & 0xff)); case 0x00a7: return((CHAR)(164 & 0xff)); case 0x00a8: return((CHAR)(172 & 0xff)); case 0x00a9: return((CHAR)(169 & 0xff)); case 0x00aa: return((CHAR)(187 & 0xff)); case 0x00ab: return((CHAR)(199 & 0xff)); case 0x00ac: return((CHAR)(194 & 0xff)); case 0x00ae: return((CHAR)(168 & 0xff)); case 0x00af: return((CHAR)(248 & 0xff)); case 0x00b0: return((CHAR)(161 & 0xff)); case 0x00b1: return((CHAR)(177 & 0xff)); case 0x00b4: return((CHAR)(171 & 0xff)); case 0x00b5: return((CHAR)(181 & 0xff)); case 0x00b6: return((CHAR)(166 & 0xff)); case 0x00b7: return((CHAR)(225 & 0xff)); case 0x00b8: return((CHAR)(252 & 0xff)); case 0x00ba: return((CHAR)(188 & 0xff)); case 0x00bb: return((CHAR)(200 & 0xff)); case 0x00bf: return((CHAR)(192 & 0xff)); case 0x00c0: return((CHAR)(203 & 0xff)); case 0x00c1: return((CHAR)(231 & 0xff)); case 0x00c2: return((CHAR)(229 & 0xff)); case 0x00c3: return((CHAR)(204 & 0xff)); case 0x00c4: return((CHAR)(128 & 0xff)); case 0x00c5: return((CHAR)(129 & 0xff)); case 0x00c6: return((CHAR)(174 & 0xff)); case 0x00c7: return((CHAR)(130 & 0xff)); case 0x00c8: return((CHAR)(233 & 0xff)); case 0x00c9: return((CHAR)(131 & 0xff)); case 0x00ca: return((CHAR)(230 & 0xff)); case 0x00cb: return((CHAR)(232 & 0xff)); case 0x00cc: return((CHAR)(237 & 0xff)); case 0x00cd: return((CHAR)(234 & 0xff)); case 0x00ce: return((CHAR)(235 & 0xff)); case 0x00cf: return((CHAR)(236 & 0xff)); case 0x00d0: return((CHAR)(220 & 0xff)); case 0x00d1: return((CHAR)(132 & 0xff)); case 0x00d2: return((CHAR)(241 & 0xff)); case 0x00d3: return((CHAR)(238 & 0xff)); case 0x00d4: return((CHAR)(239 & 0xff)); case 0x00d5: return((CHAR)(205 & 0xff)); case 0x00d6: return((CHAR)(133 & 0xff)); case 0x00d8: return((CHAR)(175 & 0xff)); case 0x00d9: return((CHAR)(244 & 0xff)); case 0x00da: return((CHAR)(242 & 0xff)); case 0x00db: return((CHAR)(243 & 0xff)); case 0x00dc: return((CHAR)(134 & 0xff)); case 0x00dd: return((CHAR)(160 & 0xff)); case 0x00de: return((CHAR)(222 & 0xff)); case 0x00df: return((CHAR)(167 & 0xff)); case 0x00e0: return((CHAR)(136 & 0xff)); case 0x00e1: return((CHAR)(135 & 0xff)); case 0x00e2: return((CHAR)(137 & 0xff)); case 0x00e3: return((CHAR)(139 & 0xff)); case 0x00e4: return((CHAR)(138 & 0xff)); case 0x00e5: return((CHAR)(140 & 0xff)); case 0x00e6: return((CHAR)(190 & 0xff)); case 0x00e7: return((CHAR)(141 & 0xff)); case 0x00e8: return((CHAR)(143 & 0xff)); case 0x00e9: return((CHAR)(142 & 0xff)); case 0x00ea: return((CHAR)(144 & 0xff)); case 0x00eb: return((CHAR)(145 & 0xff)); case 0x00ec: return((CHAR)(147 & 0xff)); case 0x00ed: return((CHAR)(146 & 0xff)); case 0x00ee: return((CHAR)(148 & 0xff)); case 0x00ef: return((CHAR)(149 & 0xff)); case 0x00f0: return((CHAR)(221 & 0xff)); case 0x00f1: return((CHAR)(150 & 0xff)); case 0x00f2: return((CHAR)(152 & 0xff)); case 0x00f3: return((CHAR)(151 & 0xff)); case 0x00f4: return((CHAR)(153 & 0xff)); case 0x00f5: return((CHAR)(155 & 0xff)); case 0x00f6: return((CHAR)(154 & 0xff)); case 0x00f7: return((CHAR)(214 & 0xff)); case 0x00f8: return((CHAR)(191 & 0xff)); case 0x00f9: return((CHAR)(157 & 0xff)); case 0x00fa: return((CHAR)(156 & 0xff)); case 0x00fb: return((CHAR)(158 & 0xff)); case 0x00fc: return((CHAR)(159 & 0xff)); case 0x00fd: return((CHAR)(224 & 0xff)); case 0x00fe: return((CHAR)(223 & 0xff)); case 0x00ff: return((CHAR)(216 & 0xff)); case 0x0131: return((CHAR)(245 & 0xff)); case 0x0152: return((CHAR)(206 & 0xff)); case 0x0153: return((CHAR)(207 & 0xff)); case 0x0178: return((CHAR)(217 & 0xff)); case 0x0192: return((CHAR)(196 & 0xff)); case 0x02c6: return((CHAR)(246 & 0xff)); case 0x02c7: return((CHAR)(255 & 0xff)); case 0x02d8: return((CHAR)(249 & 0xff)); case 0x02d9: return((CHAR)(250 & 0xff)); case 0x02da: return((CHAR)(251 & 0xff)); case 0x02db: return((CHAR)(254 & 0xff)); case 0x02dc: return((CHAR)(247 & 0xff)); case 0x02dd: return((CHAR)(253 & 0xff)); case 0x03c0: return((CHAR)(185 & 0xff)); case 0x2013: return((CHAR)(208 & 0xff)); case 0x2014: return((CHAR)(209 & 0xff)); case 0x2018: return((CHAR)(212 & 0xff)); case 0x2019: return((CHAR)(213 & 0xff)); case 0x201a: return((CHAR)(226 & 0xff)); case 0x201c: return((CHAR)(210 & 0xff)); case 0x201d: return((CHAR)(211 & 0xff)); case 0x201e: return((CHAR)(227 & 0xff)); case 0x2022: return((CHAR)(165 & 0xff)); case 0x2026: return((CHAR)(201 & 0xff)); case 0x2030: return((CHAR)(228 & 0xff)); case 0x2044: return((CHAR)(218 & 0xff)); case 0x2122: return((CHAR)(170 & 0xff)); case 0x2126: return((CHAR)(189 & 0xff)); case 0x2202: return((CHAR)(182 & 0xff)); case 0x2206: return((CHAR)(198 & 0xff)); case 0x220f: return((CHAR)(184 & 0xff)); case 0x2211: return((CHAR)(183 & 0xff)); case 0x221a: return((CHAR)(195 & 0xff)); case 0x221e: return((CHAR)(176 & 0xff)); case 0x222b: return((CHAR)(186 & 0xff)); case 0x2248: return((CHAR)(197 & 0xff)); case 0x2260: return((CHAR)(173 & 0xff)); case 0x2264: return((CHAR)(178 & 0xff)); case 0x2265: return((CHAR)(179 & 0xff)); case 0x25ca: return((CHAR)(215 & 0xff)); case 0xf8ff: return((CHAR)(240 & 0xff)); default: return(tx_punc(c)); } } int /* Apple QuickDraw / CP10000 */ #ifdef CK_ANSIC tx_quickdraw(USHORT c) #else tx_quickdraw(c) USHORT c; #endif /* CK_ANSIC */ { if (c < 0x80) /* Has C1 graphics */ return((CHAR)(c & 0xff)); switch (c) { case 0x00a0: return((CHAR)(202 & 0xff)); case 0x00a1: return((CHAR)(193 & 0xff)); case 0x00a2: return((CHAR)(162 & 0xff)); case 0x00a3: return((CHAR)(163 & 0xff)); case 0x00a4: return((CHAR)(219 & 0xff)); case 0x00a5: return((CHAR)(180 & 0xff)); case 0x00a7: return((CHAR)(164 & 0xff)); case 0x00a8: return((CHAR)(172 & 0xff)); case 0x00a9: return((CHAR)(169 & 0xff)); case 0x00aa: return((CHAR)(187 & 0xff)); case 0x00ab: return((CHAR)(199 & 0xff)); case 0x00ac: return((CHAR)(194 & 0xff)); case 0x00ae: return((CHAR)(168 & 0xff)); case 0x00af: return((CHAR)(248 & 0xff)); case 0x00b0: return((CHAR)(161 & 0xff)); case 0x00b1: return((CHAR)(177 & 0xff)); case 0x00b4: return((CHAR)(171 & 0xff)); case 0x00b5: return((CHAR)(181 & 0xff)); case 0x00b6: return((CHAR)(166 & 0xff)); case 0x00b7: return((CHAR)(225 & 0xff)); case 0x00b8: return((CHAR)(252 & 0xff)); case 0x00ba: return((CHAR)(188 & 0xff)); case 0x00bb: return((CHAR)(200 & 0xff)); case 0x00bf: return((CHAR)(192 & 0xff)); case 0x00c0: return((CHAR)(203 & 0xff)); case 0x00c1: return((CHAR)(231 & 0xff)); case 0x00c2: return((CHAR)(229 & 0xff)); case 0x00c3: return((CHAR)(204 & 0xff)); case 0x00c4: return((CHAR)(128 & 0xff)); case 0x00c5: return((CHAR)(129 & 0xff)); case 0x00c6: return((CHAR)(174 & 0xff)); case 0x00c7: return((CHAR)(130 & 0xff)); case 0x00c8: return((CHAR)(233 & 0xff)); case 0x00c9: return((CHAR)(131 & 0xff)); case 0x00ca: return((CHAR)(230 & 0xff)); case 0x00cb: return((CHAR)(232 & 0xff)); case 0x00cc: return((CHAR)(237 & 0xff)); case 0x00cd: return((CHAR)(234 & 0xff)); case 0x00ce: return((CHAR)(235 & 0xff)); case 0x00cf: return((CHAR)(236 & 0xff)); case 0x2039: return((CHAR)(220 & 0xff)); case 0x00d1: return((CHAR)(132 & 0xff)); case 0x00d2: return((CHAR)(241 & 0xff)); case 0x00d3: return((CHAR)(238 & 0xff)); case 0x00d4: return((CHAR)(239 & 0xff)); case 0x00d5: return((CHAR)(205 & 0xff)); case 0x00d6: return((CHAR)(133 & 0xff)); case 0x00d8: return((CHAR)(175 & 0xff)); case 0x00d9: return((CHAR)(244 & 0xff)); case 0x00da: return((CHAR)(242 & 0xff)); case 0x00db: return((CHAR)(243 & 0xff)); case 0x00dc: return((CHAR)(134 & 0xff)); case 0x2020: return((CHAR)(160 & 0xff)); case 0xfb01: return((CHAR)(222 & 0xff)); case 0x00df: return((CHAR)(167 & 0xff)); case 0x00e0: return((CHAR)(136 & 0xff)); case 0x00e1: return((CHAR)(135 & 0xff)); case 0x00e2: return((CHAR)(137 & 0xff)); case 0x00e3: return((CHAR)(139 & 0xff)); case 0x00e4: return((CHAR)(138 & 0xff)); case 0x00e5: return((CHAR)(140 & 0xff)); case 0x00e6: return((CHAR)(190 & 0xff)); case 0x00e7: return((CHAR)(141 & 0xff)); case 0x00e8: return((CHAR)(143 & 0xff)); case 0x00e9: return((CHAR)(142 & 0xff)); case 0x00ea: return((CHAR)(144 & 0xff)); case 0x00eb: return((CHAR)(145 & 0xff)); case 0x00ec: return((CHAR)(147 & 0xff)); case 0x00ed: return((CHAR)(146 & 0xff)); case 0x00ee: return((CHAR)(148 & 0xff)); case 0x00ef: return((CHAR)(149 & 0xff)); case 0x203a: return((CHAR)(221 & 0xff)); case 0x00f1: return((CHAR)(150 & 0xff)); case 0x00f2: return((CHAR)(152 & 0xff)); case 0x00f3: return((CHAR)(151 & 0xff)); case 0x00f4: return((CHAR)(153 & 0xff)); case 0x00f5: return((CHAR)(155 & 0xff)); case 0x00f6: return((CHAR)(154 & 0xff)); case 0x00f7: return((CHAR)(214 & 0xff)); case 0x00f8: return((CHAR)(191 & 0xff)); case 0x00f9: return((CHAR)(157 & 0xff)); case 0x00fa: return((CHAR)(156 & 0xff)); case 0x00fb: return((CHAR)(158 & 0xff)); case 0x00fc: return((CHAR)(159 & 0xff)); case 0x2021: return((CHAR)(224 & 0xff)); case 0xfb02: return((CHAR)(223 & 0xff)); case 0x00ff: return((CHAR)(216 & 0xff)); case 0x0131: return((CHAR)(245 & 0xff)); case 0x0152: return((CHAR)(206 & 0xff)); case 0x0153: return((CHAR)(207 & 0xff)); case 0x0178: return((CHAR)(217 & 0xff)); case 0x0192: return((CHAR)(196 & 0xff)); case 0x02c6: return((CHAR)(246 & 0xff)); case 0x02c7: return((CHAR)(255 & 0xff)); case 0x02d8: return((CHAR)(249 & 0xff)); case 0x02d9: return((CHAR)(250 & 0xff)); case 0x02da: return((CHAR)(251 & 0xff)); case 0x02db: return((CHAR)(254 & 0xff)); case 0x02dc: return((CHAR)(247 & 0xff)); case 0x02dd: return((CHAR)(253 & 0xff)); case 0x03c0: return((CHAR)(185 & 0xff)); case 0x2013: return((CHAR)(208 & 0xff)); case 0x2014: return((CHAR)(209 & 0xff)); case 0x2018: return((CHAR)(212 & 0xff)); case 0x2019: return((CHAR)(213 & 0xff)); case 0x201a: return((CHAR)(226 & 0xff)); case 0x201c: return((CHAR)(210 & 0xff)); case 0x201d: return((CHAR)(211 & 0xff)); case 0x201e: return((CHAR)(227 & 0xff)); case 0x2022: return((CHAR)(165 & 0xff)); case 0x2026: return((CHAR)(201 & 0xff)); case 0x2030: return((CHAR)(228 & 0xff)); case 0x2044: return((CHAR)(218 & 0xff)); case 0x2122: return((CHAR)(170 & 0xff)); case 0x03a9: return((CHAR)(189 & 0xff)); case 0x2202: return((CHAR)(182 & 0xff)); case 0x2206: return((CHAR)(198 & 0xff)); case 0x220f: return((CHAR)(184 & 0xff)); case 0x2211: return((CHAR)(183 & 0xff)); case 0x221a: return((CHAR)(195 & 0xff)); case 0x221e: return((CHAR)(176 & 0xff)); case 0x222b: return((CHAR)(186 & 0xff)); case 0x2248: return((CHAR)(197 & 0xff)); case 0x2260: return((CHAR)(173 & 0xff)); case 0x2264: return((CHAR)(178 & 0xff)); case 0x2265: return((CHAR)(179 & 0xff)); case 0x25ca: return((CHAR)(215 & 0xff)); case 0xf8ff: return((CHAR)(240 & 0xff)); default: return(tx_punc(c)); } } int /* HP Roman-8 */ #ifdef CK_ANSIC tx_hproman8(USHORT c) #else tx_hproman8(c) USHORT c; #endif /* CK_ANSIC */ { if (c < 0xa0) return((CHAR)(c & 0xff)); switch(c) { case 0x00a0: return((CHAR)(160 & 0xff)); case 0x00a1: return((CHAR)(171 & 0xff)); case 0x00a2: return((CHAR)(167 & 0xff)); case 0x00a3: return((CHAR)(168 & 0xff)); case 0x00a4: return((CHAR)(166 & 0xff)); case 0x00a5: return((CHAR)(181 & 0xff)); case 0x00a7: return((CHAR)(187 & 0xff)); case 0x00a8: return((CHAR)(189 & 0xff)); case 0x00a9: return((CHAR)(173 & 0xff)); case 0x00aa: return((CHAR)(169 & 0xff)); case 0x00ab: return((CHAR)(177 & 0xff)); case 0x00ac: return((CHAR)(161 & 0xff)); case 0x00ae: return((CHAR)(174 & 0xff)); case 0x00b0: return((CHAR)(188 & 0xff)); case 0x00b1: return((CHAR)(182 & 0xff)); case 0x00b2: return((CHAR)(164 & 0xff)); case 0x00b3: return((CHAR)(165 & 0xff)); case 0x00b4: return((CHAR)(190 & 0xff)); case 0x00b5: return((CHAR)(163 & 0xff)); case 0x00b6: return((CHAR)(178 & 0xff)); case 0x00b7: return((CHAR)(185 & 0xff)); case 0x00b8: return((CHAR)(186 & 0xff)); case 0x00ba: return((CHAR)(170 & 0xff)); case 0x00bb: return((CHAR)(176 & 0xff)); case 0x00bd: return((CHAR)(162 & 0xff)); case 0x00bf: return((CHAR)(172 & 0xff)); case 0x00c0: return((CHAR)(193 & 0xff)); case 0x00c1: return((CHAR)(192 & 0xff)); case 0x00c2: return((CHAR)(194 & 0xff)); case 0x00c3: return((CHAR)(196 & 0xff)); case 0x00c4: return((CHAR)(195 & 0xff)); case 0x00c5: return((CHAR)(197 & 0xff)); case 0x00c6: return((CHAR)(198 & 0xff)); case 0x00c7: return((CHAR)(199 & 0xff)); case 0x00c8: return((CHAR)(201 & 0xff)); case 0x00c9: return((CHAR)(200 & 0xff)); case 0x00ca: return((CHAR)(202 & 0xff)); case 0x00cb: return((CHAR)(203 & 0xff)); case 0x00cc: return((CHAR)(205 & 0xff)); case 0x00cd: return((CHAR)(204 & 0xff)); case 0x00ce: return((CHAR)(206 & 0xff)); case 0x00cf: return((CHAR)(207 & 0xff)); case 0x00d1: return((CHAR)(208 & 0xff)); case 0x00d2: return((CHAR)(210 & 0xff)); case 0x00d3: return((CHAR)(209 & 0xff)); case 0x00d4: return((CHAR)(211 & 0xff)); case 0x00d5: return((CHAR)(213 & 0xff)); case 0x00d6: return((CHAR)(212 & 0xff)); case 0x00d8: return((CHAR)(214 & 0xff)); case 0x00d9: return((CHAR)(217 & 0xff)); case 0x00da: return((CHAR)(216 & 0xff)); case 0x00db: return((CHAR)(218 & 0xff)); case 0x00dc: return((CHAR)(219 & 0xff)); case 0x00df: return((CHAR)(252 & 0xff)); case 0x00e0: return((CHAR)(225 & 0xff)); case 0x00e1: return((CHAR)(224 & 0xff)); case 0x00e2: return((CHAR)(226 & 0xff)); case 0x00e3: return((CHAR)(228 & 0xff)); case 0x00e4: return((CHAR)(227 & 0xff)); case 0x00e5: return((CHAR)(229 & 0xff)); case 0x00e6: return((CHAR)(230 & 0xff)); case 0x00e7: return((CHAR)(231 & 0xff)); case 0x00e8: return((CHAR)(233 & 0xff)); case 0x00e9: return((CHAR)(232 & 0xff)); case 0x00ea: return((CHAR)(234 & 0xff)); case 0x00eb: return((CHAR)(235 & 0xff)); case 0x00ec: return((CHAR)(237 & 0xff)); case 0x00ed: return((CHAR)(236 & 0xff)); case 0x00ee: return((CHAR)(238 & 0xff)); case 0x00ef: return((CHAR)(239 & 0xff)); case 0x00f1: return((CHAR)(240 & 0xff)); case 0x00f2: return((CHAR)(242 & 0xff)); case 0x00f3: return((CHAR)(241 & 0xff)); case 0x00f4: return((CHAR)(243 & 0xff)); case 0x00f5: return((CHAR)(245 & 0xff)); case 0x00f6: return((CHAR)(244 & 0xff)); case 0x00f8: return((CHAR)(246 & 0xff)); case 0x00f9: return((CHAR)(249 & 0xff)); case 0x00fa: return((CHAR)(248 & 0xff)); case 0x00fb: return((CHAR)(250 & 0xff)); case 0x00fc: return((CHAR)(251 & 0xff)); case 0x00ff: return((CHAR)(253 & 0xff)); case 0x0153: return((CHAR)(247 & 0xff)); case 0x0178: return((CHAR)(221 & 0xff)); case 0x0192: return((CHAR)(180 & 0xff)); case 0x0276: return((CHAR)(215 & 0xff)); case 0x2021: return((CHAR)(175 & 0xff)); case 0x2122: return((CHAR)(179 & 0xff)); case 0x2191: return((CHAR)(191 & 0xff)); case 0x2264: return((CHAR)(183 & 0xff)); case 0x2265: return((CHAR)(184 & 0xff)); case 0x2588: return((CHAR)(255 & 0xff)); default: return(tx_punc(c)); } } int /* PC Code Page 437 */ #ifdef CK_ANSIC tx_cp437(USHORT c) #else tx_cp437(c) USHORT c; #endif /* CK_ANSIC */ { if (c < 0x80) /* Has C1 graphics */ return((CHAR)(c & 0xff)); switch (c) { case 0x00a0: return((CHAR)(255 & 0xff)); case 0x00a1: return((CHAR)(173 & 0xff)); case 0x00a2: return((CHAR)(155 & 0xff)); case 0x00a3: return((CHAR)(156 & 0xff)); case 0x00a4: return((CHAR)(15 & 0xff)); case 0x00a5: return((CHAR)(157 & 0xff)); case 0x00a6: return((CHAR)(124 & 0xff)); case 0x00a7: return((CHAR)(21 & 0xff)); case 0x00a8: return((CHAR)(34 & 0xff)); case 0x00a9: return((CHAR)(67 & 0xff)); case 0x00aa: return((CHAR)(166 & 0xff)); case 0x00ab: return((CHAR)(174 & 0xff)); case 0x00ac: return((CHAR)(170 & 0xff)); case 0x00ad: return((CHAR)(45 & 0xff)); case 0x00ae: return((CHAR)(84 & 0xff)); case 0x00af: return((CHAR)(22 & 0xff)); case 0x00b0: return((CHAR)(248 & 0xff)); case 0x00b1: return((CHAR)(241 & 0xff)); case 0x00b2: return((CHAR)(253 & 0xff)); case 0x00b3: return((CHAR)(51 & 0xff)); case 0x00b4: return((CHAR)(39 & 0xff)); case 0x00b5: return((CHAR)(230 & 0xff)); case 0x00b6: return((CHAR)(20 & 0xff)); case 0x00b7: return((CHAR)(250 & 0xff)); case 0x00b8: return((CHAR)(44 & 0xff)); case 0x00b9: return((CHAR)(49 & 0xff)); case 0x00ba: return((CHAR)(167 & 0xff)); case 0x00bb: return((CHAR)(175 & 0xff)); case 0x00bc: return((CHAR)(172 & 0xff)); case 0x00bd: return((CHAR)(171 & 0xff)); case 0x00be: return((CHAR)(19 & 0xff)); case 0x00bf: return((CHAR)(168 & 0xff)); case 0x00c0: return((CHAR)(65 & 0xff)); case 0x00c1: return((CHAR)(65 & 0xff)); case 0x00c2: return((CHAR)(65 & 0xff)); case 0x00c3: return((CHAR)(65 & 0xff)); case 0x00c4: return((CHAR)(142 & 0xff)); case 0x00c5: return((CHAR)(143 & 0xff)); case 0x00c6: return((CHAR)(146 & 0xff)); case 0x00c7: return((CHAR)(128 & 0xff)); case 0x00c8: return((CHAR)(69 & 0xff)); case 0x00c9: return((CHAR)(144 & 0xff)); case 0x00ca: return((CHAR)(69 & 0xff)); case 0x00cb: return((CHAR)(69 & 0xff)); case 0x00cc: return((CHAR)(73 & 0xff)); case 0x00cd: return((CHAR)(73 & 0xff)); case 0x00ce: return((CHAR)(73 & 0xff)); case 0x00cf: return((CHAR)(73 & 0xff)); case 0x00d0: return((CHAR)(19 & 0xff)); case 0x00d1: return((CHAR)(165 & 0xff)); case 0x00d2: return((CHAR)(79 & 0xff)); case 0x00d3: return((CHAR)(79 & 0xff)); case 0x00d4: return((CHAR)(79 & 0xff)); case 0x00d5: return((CHAR)(79 & 0xff)); case 0x00d6: return((CHAR)(153 & 0xff)); case 0x00d7: return((CHAR)(120 & 0xff)); case 0x00d8: return((CHAR)(79 & 0xff)); case 0x00d9: return((CHAR)(85 & 0xff)); case 0x00da: return((CHAR)(85 & 0xff)); case 0x00db: return((CHAR)(85 & 0xff)); case 0x00dc: return((CHAR)(154 & 0xff)); case 0x00dd: return((CHAR)(89 & 0xff)); case 0x00de: return((CHAR)(19 & 0xff)); case 0x00df: return((CHAR)(225 & 0xff)); case 0x00e0: return((CHAR)(133 & 0xff)); case 0x00e1: return((CHAR)(160 & 0xff)); case 0x00e2: return((CHAR)(131 & 0xff)); case 0x00e3: return((CHAR)(97 & 0xff)); /* a-tilde -> a (not 101 = e) */ case 0x00e4: return((CHAR)(132 & 0xff)); case 0x00e5: return((CHAR)(134 & 0xff)); case 0x00e6: return((CHAR)(145 & 0xff)); case 0x00e7: return((CHAR)(135 & 0xff)); case 0x00e8: return((CHAR)(138 & 0xff)); case 0x00e9: return((CHAR)(130 & 0xff)); case 0x00ea: return((CHAR)(136 & 0xff)); case 0x00eb: return((CHAR)(137 & 0xff)); case 0x00ec: return((CHAR)(141 & 0xff)); case 0x00ed: return((CHAR)(161 & 0xff)); case 0x00ee: return((CHAR)(140 & 0xff)); case 0x00ef: return((CHAR)(139 & 0xff)); case 0x00f0: return((CHAR)(19 & 0xff)); case 0x00f1: return((CHAR)(164 & 0xff)); case 0x00f2: return((CHAR)(149 & 0xff)); case 0x00f3: return((CHAR)(162 & 0xff)); case 0x00f4: return((CHAR)(147 & 0xff)); case 0x00f5: return((CHAR)(111 & 0xff)); case 0x00f6: return((CHAR)(148 & 0xff)); case 0x00f7: return((CHAR)(246 & 0xff)); case 0x00f8: return((CHAR)(111 & 0xff)); case 0x00f9: return((CHAR)(151 & 0xff)); case 0x00fa: return((CHAR)(163 & 0xff)); case 0x00fb: return((CHAR)(150 & 0xff)); case 0x00fc: return((CHAR)(129 & 0xff)); case 0x00fd: return((CHAR)(121 & 0xff)); case 0x00fe: return((CHAR)(19 & 0xff)); case 0x00ff: return((CHAR)(152 & 0xff)); case 0x0192: return((CHAR)(159 & 0xff)); case 0x0393: return((CHAR)(226 & 0xff)); case 0x0398: return((CHAR)(233 & 0xff)); case 0x03a3: return((CHAR)(228 & 0xff)); case 0x03a6: return((CHAR)(232 & 0xff)); case 0x03a9: return((CHAR)(234 & 0xff)); case 0x03b1: return((CHAR)(224 & 0xff)); case 0x03b4: return((CHAR)(235 & 0xff)); case 0x03b5: return((CHAR)(238 & 0xff)); case 0x03c0: return((CHAR)(227 & 0xff)); case 0x03c3: return((CHAR)(229 & 0xff)); case 0x03c4: return((CHAR)(231 & 0xff)); case 0x03c6: return((CHAR)(237 & 0xff)); case 0x207f: return((CHAR)(252 & 0xff)); case 0x20a7: return((CHAR)(158 & 0xff)); case 0x2219: return((CHAR)(249 & 0xff)); case 0x221a: return((CHAR)(251 & 0xff)); case 0x221e: return((CHAR)(236 & 0xff)); case 0x2229: return((CHAR)(239 & 0xff)); case 0x2248: return((CHAR)(247 & 0xff)); case 0x2261: return((CHAR)(240 & 0xff)); case 0x2264: return((CHAR)(243 & 0xff)); case 0x2265: return((CHAR)(242 & 0xff)); case 0x2310: return((CHAR)(169 & 0xff)); case 0x2320: return((CHAR)(244 & 0xff)); case 0x2321: return((CHAR)(245 & 0xff)); case 0x2500: return((CHAR)(196 & 0xff)); case 0x2502: return((CHAR)(179 & 0xff)); case 0x250c: return((CHAR)(218 & 0xff)); case 0x2510: return((CHAR)(191 & 0xff)); case 0x2514: return((CHAR)(192 & 0xff)); case 0x2518: return((CHAR)(217 & 0xff)); case 0x251c: return((CHAR)(195 & 0xff)); case 0x2524: return((CHAR)(180 & 0xff)); case 0x252c: return((CHAR)(194 & 0xff)); case 0x2534: return((CHAR)(193 & 0xff)); case 0x253c: return((CHAR)(197 & 0xff)); case 0x2550: return((CHAR)(205 & 0xff)); case 0x2551: return((CHAR)(186 & 0xff)); case 0x2552: return((CHAR)(213 & 0xff)); case 0x2553: return((CHAR)(214 & 0xff)); case 0x2554: return((CHAR)(201 & 0xff)); case 0x2555: return((CHAR)(184 & 0xff)); case 0x2556: return((CHAR)(183 & 0xff)); case 0x2557: return((CHAR)(187 & 0xff)); case 0x2558: return((CHAR)(212 & 0xff)); case 0x2559: return((CHAR)(211 & 0xff)); case 0x255a: return((CHAR)(200 & 0xff)); case 0x255b: return((CHAR)(190 & 0xff)); case 0x255c: return((CHAR)(189 & 0xff)); case 0x255d: return((CHAR)(188 & 0xff)); case 0x255e: return((CHAR)(198 & 0xff)); case 0x255f: return((CHAR)(199 & 0xff)); case 0x2560: return((CHAR)(204 & 0xff)); case 0x2561: return((CHAR)(181 & 0xff)); case 0x2562: return((CHAR)(182 & 0xff)); case 0x2563: return((CHAR)(185 & 0xff)); case 0x2564: return((CHAR)(209 & 0xff)); case 0x2565: return((CHAR)(210 & 0xff)); case 0x2566: return((CHAR)(203 & 0xff)); case 0x2567: return((CHAR)(207 & 0xff)); case 0x2568: return((CHAR)(208 & 0xff)); case 0x2569: return((CHAR)(202 & 0xff)); case 0x256a: return((CHAR)(216 & 0xff)); case 0x256b: return((CHAR)(215 & 0xff)); case 0x256c: return((CHAR)(206 & 0xff)); case 0x2580: return((CHAR)(223 & 0xff)); case 0x2584: return((CHAR)(220 & 0xff)); case 0x2588: return((CHAR)(219 & 0xff)); case 0x258c: return((CHAR)(221 & 0xff)); case 0x2590: return((CHAR)(222 & 0xff)); case 0x2591: return((CHAR)(176 & 0xff)); case 0x2592: return((CHAR)(177 & 0xff)); case 0x2593: return((CHAR)(178 & 0xff)); case 0x25a0: return((CHAR)(254 & 0xff)); /* Black square */ default: return(tx_cpsub(c)); /* For box characters etc */ } } int /* Mazovia */ #ifdef CK_ANSIC tx_mazovia(USHORT c) #else tx_mazovia(c) USHORT c; #endif /* CK_ANSIC */ { if (c < 0x80) /* Has C1 graphics */ return((CHAR)(c & 0xff)); switch (c) { case 0x00d3: return((CHAR)0xa3 & 0xff); /* O acute */ case 0x00f3: return((CHAR)0xa2 & 0xff); /* O acute */ case 0x0104: return((CHAR)0x8f & 0xff); /* A Ogonek */ case 0x0105: return((CHAR)0x86 & 0xff); /* a Ogonek */ case 0x0106: return((CHAR)0x95 & 0xff); /* C acute */ case 0x0107: return((CHAR)0x8d & 0xff); /* c acute */ case 0x0118: return((CHAR)0x90 & 0xff); /* E Ogonek */ case 0x0119: return((CHAR)0x91 & 0xff); /* E Ogonek */ case 0x0141: return((CHAR)0x9c & 0xff); /* L stroke */ case 0x0142: return((CHAR)0x92 & 0xff); /* L stroke */ case 0x0143: return((CHAR)0xa5 & 0xff); /* N acute */ case 0x0144: return((CHAR)0xa4 & 0xff); /* N acute */ case 0x015a: return((CHAR)0x98 & 0xff); /* S acute */ case 0x015b: return((CHAR)0x9e & 0xff); /* S acute */ case 0x0179: return((CHAR)0xa0 & 0xff); /* Z acute */ case 0x017a: return((CHAR)0xa6 & 0xff); /* Z acute */ case 0x017b: return((CHAR)0xa1 & 0xff); /* Z dot above */ case 0x017c: return((CHAR)0xa7 & 0xff); /* Z dot above */ default: return(tx_cp437(c)); } } int /* PC Code Page 850 */ #ifdef CK_ANSIC tx_cp850(USHORT c) #else tx_cp850(c) USHORT c; #endif /* CK_ANSIC */ { if (c < 0x80) /* Has C1 graphics */ return((CHAR)(c & 0xff)); switch (c) { case 0x00a0: return((CHAR)(255 & 0xff)); case 0x00a1: return((CHAR)(173 & 0xff)); case 0x00a2: return((CHAR)(189 & 0xff)); case 0x00a3: return((CHAR)(156 & 0xff)); case 0x00a4: return((CHAR)(207 & 0xff)); case 0x00a5: return((CHAR)(190 & 0xff)); case 0x00a6: return((CHAR)(221 & 0xff)); case 0x00a7: return((CHAR)(245 & 0xff)); case 0x00a8: return((CHAR)(249 & 0xff)); case 0x00a9: return((CHAR)(184 & 0xff)); case 0x00aa: return((CHAR)(166 & 0xff)); case 0x00ab: return((CHAR)(174 & 0xff)); case 0x00ac: return((CHAR)(170 & 0xff)); case 0x00ad: return((CHAR)(240 & 0xff)); case 0x00ae: return((CHAR)(169 & 0xff)); case 0x00af: return((CHAR)(238 & 0xff)); case 0x00b0: return((CHAR)(248 & 0xff)); case 0x00b1: return((CHAR)(241 & 0xff)); case 0x00b2: return((CHAR)(253 & 0xff)); case 0x00b3: return((CHAR)(252 & 0xff)); case 0x00b4: return((CHAR)(239 & 0xff)); case 0x00b5: return((CHAR)(230 & 0xff)); case 0x00b6: return((CHAR)(244 & 0xff)); case 0x00b7: return((CHAR)(250 & 0xff)); case 0x00b8: return((CHAR)(247 & 0xff)); case 0x00b9: return((CHAR)(251 & 0xff)); case 0x00ba: return((CHAR)(167 & 0xff)); case 0x00bb: return((CHAR)(175 & 0xff)); case 0x00bc: return((CHAR)(172 & 0xff)); case 0x00bd: return((CHAR)(171 & 0xff)); case 0x00be: return((CHAR)(243 & 0xff)); case 0x00bf: return((CHAR)(168 & 0xff)); case 0x00c0: return((CHAR)(183 & 0xff)); case 0x00c1: return((CHAR)(181 & 0xff)); case 0x00c2: return((CHAR)(182 & 0xff)); case 0x00c3: return((CHAR)(199 & 0xff)); case 0x00c4: return((CHAR)(142 & 0xff)); case 0x00c5: return((CHAR)(143 & 0xff)); case 0x00c6: return((CHAR)(146 & 0xff)); case 0x00c7: return((CHAR)(128 & 0xff)); case 0x00c8: return((CHAR)(212 & 0xff)); case 0x00c9: return((CHAR)(144 & 0xff)); case 0x00ca: return((CHAR)(210 & 0xff)); case 0x00cb: return((CHAR)(211 & 0xff)); case 0x00cc: return((CHAR)(222 & 0xff)); case 0x00cd: return((CHAR)(214 & 0xff)); case 0x00ce: return((CHAR)(215 & 0xff)); case 0x00cf: return((CHAR)(216 & 0xff)); case 0x00d0: return((CHAR)(209 & 0xff)); case 0x00d1: return((CHAR)(165 & 0xff)); case 0x00d2: return((CHAR)(227 & 0xff)); case 0x00d3: return((CHAR)(224 & 0xff)); case 0x00d4: return((CHAR)(226 & 0xff)); case 0x00d5: return((CHAR)(229 & 0xff)); case 0x00d6: return((CHAR)(153 & 0xff)); case 0x00d7: return((CHAR)(158 & 0xff)); case 0x00d8: return((CHAR)(157 & 0xff)); case 0x00d9: return((CHAR)(235 & 0xff)); case 0x00da: return((CHAR)(233 & 0xff)); case 0x00db: return((CHAR)(234 & 0xff)); case 0x00dc: return((CHAR)(154 & 0xff)); case 0x00dd: return((CHAR)(237 & 0xff)); case 0x00de: return((CHAR)(232 & 0xff)); case 0x00df: return((CHAR)(225 & 0xff)); case 0x00e0: return((CHAR)(133 & 0xff)); case 0x00e1: return((CHAR)(160 & 0xff)); case 0x00e2: return((CHAR)(131 & 0xff)); case 0x00e3: return((CHAR)(198 & 0xff)); case 0x00e4: return((CHAR)(132 & 0xff)); case 0x00e5: return((CHAR)(134 & 0xff)); case 0x00e6: return((CHAR)(145 & 0xff)); case 0x00e7: return((CHAR)(135 & 0xff)); case 0x00e8: return((CHAR)(138 & 0xff)); case 0x00e9: return((CHAR)(130 & 0xff)); case 0x00ea: return((CHAR)(136 & 0xff)); case 0x00eb: return((CHAR)(137 & 0xff)); case 0x00ec: return((CHAR)(141 & 0xff)); case 0x00ed: return((CHAR)(161 & 0xff)); case 0x00ee: return((CHAR)(140 & 0xff)); case 0x00ef: return((CHAR)(139 & 0xff)); case 0x00f0: return((CHAR)(208 & 0xff)); case 0x00f1: return((CHAR)(164 & 0xff)); case 0x00f2: return((CHAR)(149 & 0xff)); case 0x00f3: return((CHAR)(162 & 0xff)); case 0x00f4: return((CHAR)(147 & 0xff)); case 0x00f5: return((CHAR)(228 & 0xff)); case 0x00f6: return((CHAR)(148 & 0xff)); case 0x00f7: return((CHAR)(246 & 0xff)); case 0x00f8: return((CHAR)(155 & 0xff)); case 0x00f9: return((CHAR)(151 & 0xff)); case 0x00fa: return((CHAR)(163 & 0xff)); case 0x00fb: return((CHAR)(150 & 0xff)); case 0x00fc: return((CHAR)(129 & 0xff)); case 0x00fd: return((CHAR)(236 & 0xff)); case 0x00fe: return((CHAR)(231 & 0xff)); case 0x00ff: return((CHAR)(152 & 0xff)); case 0x0131: return((CHAR)(213 & 0xff)); case 0x0192: return((CHAR)(159 & 0xff)); case 0x2017: return((CHAR)(242 & 0xff)); case 0x2500: return((CHAR)(196 & 0xff)); case 0x2502: return((CHAR)(179 & 0xff)); case 0x250c: return((CHAR)(218 & 0xff)); case 0x2510: return((CHAR)(191 & 0xff)); case 0x2514: return((CHAR)(192 & 0xff)); case 0x2518: return((CHAR)(217 & 0xff)); case 0x251c: return((CHAR)(195 & 0xff)); case 0x2524: return((CHAR)(180 & 0xff)); case 0x252c: return((CHAR)(194 & 0xff)); case 0x2534: return((CHAR)(193 & 0xff)); case 0x253c: return((CHAR)(197 & 0xff)); case 0x2550: return((CHAR)(205 & 0xff)); case 0x2551: return((CHAR)(186 & 0xff)); case 0x2554: return((CHAR)(201 & 0xff)); case 0x2557: return((CHAR)(187 & 0xff)); case 0x255a: return((CHAR)(200 & 0xff)); case 0x255d: return((CHAR)(188 & 0xff)); case 0x2560: return((CHAR)(204 & 0xff)); case 0x2563: return((CHAR)(185 & 0xff)); case 0x2566: return((CHAR)(203 & 0xff)); case 0x2569: return((CHAR)(202 & 0xff)); case 0x256c: return((CHAR)(206 & 0xff)); case 0x2580: return((CHAR)(223 & 0xff)); case 0x2584: return((CHAR)(220 & 0xff)); case 0x2588: return((CHAR)(219 & 0xff)); case 0x2591: return((CHAR)(176 & 0xff)); case 0x2592: return((CHAR)(177 & 0xff)); case 0x2593: return((CHAR)(178 & 0xff)); case 0x25a0: return((CHAR)(254 & 0xff)); default: return(tx_cpsub(c)); /* For box characters etc */ } } int /* PC Code Page 858 */ #ifdef CK_ANSIC tx_cp858(USHORT c) #else tx_cp858(c) USHORT c; #endif /* CK_ANSIC */ { if (c < 0x80) /* Has C1 graphics */ return((CHAR)(c & 0xff)); switch (c) { case 0x00a0: return((CHAR)(255 & 0xff)); case 0x00a1: return((CHAR)(173 & 0xff)); case 0x00a2: return((CHAR)(189 & 0xff)); case 0x00a3: return((CHAR)(156 & 0xff)); case 0x00a4: return((CHAR)(207 & 0xff)); case 0x00a5: return((CHAR)(190 & 0xff)); case 0x00a6: return((CHAR)(221 & 0xff)); case 0x00a7: return((CHAR)(245 & 0xff)); case 0x00a8: return((CHAR)(249 & 0xff)); case 0x00a9: return((CHAR)(184 & 0xff)); case 0x00aa: return((CHAR)(166 & 0xff)); case 0x00ab: return((CHAR)(174 & 0xff)); case 0x00ac: return((CHAR)(170 & 0xff)); case 0x00ad: return((CHAR)(240 & 0xff)); case 0x00ae: return((CHAR)(169 & 0xff)); case 0x00af: return((CHAR)(238 & 0xff)); case 0x00b0: return((CHAR)(248 & 0xff)); case 0x00b1: return((CHAR)(241 & 0xff)); case 0x00b2: return((CHAR)(253 & 0xff)); case 0x00b3: return((CHAR)(252 & 0xff)); case 0x00b4: return((CHAR)(239 & 0xff)); case 0x00b5: return((CHAR)(230 & 0xff)); case 0x00b6: return((CHAR)(244 & 0xff)); case 0x00b7: return((CHAR)(250 & 0xff)); case 0x00b8: return((CHAR)(247 & 0xff)); case 0x00b9: return((CHAR)(251 & 0xff)); case 0x00ba: return((CHAR)(167 & 0xff)); case 0x00bb: return((CHAR)(175 & 0xff)); case 0x00bc: return((CHAR)(172 & 0xff)); case 0x00bd: return((CHAR)(171 & 0xff)); case 0x00be: return((CHAR)(243 & 0xff)); case 0x00bf: return((CHAR)(168 & 0xff)); case 0x00c0: return((CHAR)(183 & 0xff)); case 0x00c1: return((CHAR)(181 & 0xff)); case 0x00c2: return((CHAR)(182 & 0xff)); case 0x00c3: return((CHAR)(199 & 0xff)); case 0x00c4: return((CHAR)(142 & 0xff)); case 0x00c5: return((CHAR)(143 & 0xff)); case 0x00c6: return((CHAR)(146 & 0xff)); case 0x00c7: return((CHAR)(128 & 0xff)); case 0x00c8: return((CHAR)(212 & 0xff)); case 0x00c9: return((CHAR)(144 & 0xff)); case 0x00ca: return((CHAR)(210 & 0xff)); case 0x00cb: return((CHAR)(211 & 0xff)); case 0x00cc: return((CHAR)(222 & 0xff)); case 0x00cd: return((CHAR)(214 & 0xff)); case 0x00ce: return((CHAR)(215 & 0xff)); case 0x00cf: return((CHAR)(216 & 0xff)); case 0x00d0: return((CHAR)(209 & 0xff)); case 0x00d1: return((CHAR)(165 & 0xff)); case 0x00d2: return((CHAR)(227 & 0xff)); case 0x00d3: return((CHAR)(224 & 0xff)); case 0x00d4: return((CHAR)(226 & 0xff)); case 0x00d5: return((CHAR)(229 & 0xff)); case 0x00d6: return((CHAR)(153 & 0xff)); case 0x00d7: return((CHAR)(158 & 0xff)); case 0x00d8: return((CHAR)(157 & 0xff)); case 0x00d9: return((CHAR)(235 & 0xff)); case 0x00da: return((CHAR)(233 & 0xff)); case 0x00db: return((CHAR)(234 & 0xff)); case 0x00dc: return((CHAR)(154 & 0xff)); case 0x00dd: return((CHAR)(237 & 0xff)); case 0x00de: return((CHAR)(232 & 0xff)); case 0x00df: return((CHAR)(225 & 0xff)); case 0x00e0: return((CHAR)(133 & 0xff)); case 0x00e1: return((CHAR)(160 & 0xff)); case 0x00e2: return((CHAR)(131 & 0xff)); case 0x00e3: return((CHAR)(198 & 0xff)); case 0x00e4: return((CHAR)(132 & 0xff)); case 0x00e5: return((CHAR)(134 & 0xff)); case 0x00e6: return((CHAR)(145 & 0xff)); case 0x00e7: return((CHAR)(135 & 0xff)); case 0x00e8: return((CHAR)(138 & 0xff)); case 0x00e9: return((CHAR)(130 & 0xff)); case 0x00ea: return((CHAR)(136 & 0xff)); case 0x00eb: return((CHAR)(137 & 0xff)); case 0x00ec: return((CHAR)(141 & 0xff)); case 0x00ed: return((CHAR)(161 & 0xff)); case 0x00ee: return((CHAR)(140 & 0xff)); case 0x00ef: return((CHAR)(139 & 0xff)); case 0x00f0: return((CHAR)(208 & 0xff)); case 0x00f1: return((CHAR)(164 & 0xff)); case 0x00f2: return((CHAR)(149 & 0xff)); case 0x00f3: return((CHAR)(162 & 0xff)); case 0x00f4: return((CHAR)(147 & 0xff)); case 0x00f5: return((CHAR)(228 & 0xff)); case 0x00f6: return((CHAR)(148 & 0xff)); case 0x00f7: return((CHAR)(246 & 0xff)); case 0x00f8: return((CHAR)(155 & 0xff)); case 0x00f9: return((CHAR)(151 & 0xff)); case 0x00fa: return((CHAR)(163 & 0xff)); case 0x00fb: return((CHAR)(150 & 0xff)); case 0x00fc: return((CHAR)(129 & 0xff)); case 0x00fd: return((CHAR)(236 & 0xff)); case 0x00fe: return((CHAR)(231 & 0xff)); case 0x00ff: return((CHAR)(152 & 0xff)); case 0x20ac: return((CHAR)(213 & 0xff)); case 0x0192: return((CHAR)(159 & 0xff)); case 0x2017: return((CHAR)(242 & 0xff)); case 0x2500: return((CHAR)(196 & 0xff)); case 0x2502: return((CHAR)(179 & 0xff)); case 0x250c: return((CHAR)(218 & 0xff)); case 0x2510: return((CHAR)(191 & 0xff)); case 0x2514: return((CHAR)(192 & 0xff)); case 0x2518: return((CHAR)(217 & 0xff)); case 0x251c: return((CHAR)(195 & 0xff)); case 0x2524: return((CHAR)(180 & 0xff)); case 0x252c: return((CHAR)(194 & 0xff)); case 0x2534: return((CHAR)(193 & 0xff)); case 0x253c: return((CHAR)(197 & 0xff)); case 0x2550: return((CHAR)(205 & 0xff)); case 0x2551: return((CHAR)(186 & 0xff)); case 0x2554: return((CHAR)(201 & 0xff)); case 0x2557: return((CHAR)(187 & 0xff)); case 0x255a: return((CHAR)(200 & 0xff)); case 0x255d: return((CHAR)(188 & 0xff)); case 0x2560: return((CHAR)(204 & 0xff)); case 0x2563: return((CHAR)(185 & 0xff)); case 0x2566: return((CHAR)(203 & 0xff)); case 0x2569: return((CHAR)(202 & 0xff)); case 0x256c: return((CHAR)(206 & 0xff)); case 0x2580: return((CHAR)(223 & 0xff)); case 0x2584: return((CHAR)(220 & 0xff)); case 0x2588: return((CHAR)(219 & 0xff)); case 0x2591: return((CHAR)(176 & 0xff)); case 0x2592: return((CHAR)(177 & 0xff)); case 0x2593: return((CHAR)(178 & 0xff)); case 0x25a0: return((CHAR)(254 & 0xff)); default: return(tx_cpsub(c)); /* For box characters etc */ } } int /* Windows Code Page 1250 (Latin-2) */ #ifdef CK_ANSIC tx_cp1250(USHORT c) #else tx_cp1250(c) USHORT c; #endif /* CK_ANSIC */ { if (c < 0x80 || (c > 0xbf && c <= 0xff)) /* Has C1 graphics */ return((CHAR)(c & 0xff)); switch (c) { case 0x002D: return((CHAR)(0xad & 0xff)); case 0x00A0: return((CHAR)(0xa0 & 0xff)); case 0x00A4: return((CHAR)(0xa4 & 0xff)); case 0x00A6: return((CHAR)(0xa6 & 0xff)); case 0x00A7: return((CHAR)(0xa7 & 0xff)); case 0x00A8: return((CHAR)(0xa8 & 0xff)); case 0x00A9: return((CHAR)(0xa9 & 0xff)); case 0x00AB: return((CHAR)(0xab & 0xff)); case 0x00AC: return((CHAR)(0xac & 0xff)); case 0x00AE: return((CHAR)(0xae & 0xff)); case 0x00B0: return((CHAR)(0xb0 & 0xff)); case 0x00B1: return((CHAR)(0xb1 & 0xff)); case 0x00B4: return((CHAR)(0xb4 & 0xff)); case 0x00B5: return((CHAR)(0xb5 & 0xff)); case 0x00B6: return((CHAR)(0xb6 & 0xff)); case 0x00B7: return((CHAR)(0xb7 & 0xff)); case 0x00B8: return((CHAR)(0xb8 & 0xff)); case 0x00BB: return((CHAR)(0xbb & 0xff)); case 0x0104: return((CHAR)(0xa5 & 0xff)); case 0x0105: return((CHAR)(0xb9 & 0xff)); case 0x013D: return((CHAR)(0xbc & 0xff)); case 0x013E: return((CHAR)(0xbe & 0xff)); case 0x0141: return((CHAR)(0xa3 & 0xff)); case 0x0142: return((CHAR)(0xb3 & 0xff)); case 0x015A: return((CHAR)(0x8c & 0xff)); /* S acute */ case 0x015E: return((CHAR)(0xaa & 0xff)); case 0x015F: return((CHAR)(0xba & 0xff)); case 0x015b: return((CHAR)(0x9c & 0xff)); /* s acute */ case 0x0164: return((CHAR)(0x8d & 0xff)); /* T caron */ case 0x0165: return((CHAR)(0x9d & 0xff)); /* t caron */ case 0x0173: return((CHAR)(0x9e & 0xff)); /* z caron */ case 0x0179: return((CHAR)(0x8f & 0xff)); /* Z acute */ case 0x017A: return((CHAR)(0x9f & 0xff)); /* z acute */ case 0x017B: return((CHAR)(0xaf & 0xff)); case 0x017C: return((CHAR)(0xbf & 0xff)); case 0x017D: return((CHAR)(0x8e & 0xff)); /* Z caron */ case 0x02C7: return((CHAR)(0xa1 & 0xff)); case 0x02D8: return((CHAR)(0xa2 & 0xff)); case 0x02DB: return((CHAR)(0xb2 & 0xff)); case 0x02DD: return((CHAR)(0xbd & 0xff)); case 0x2010: case 0x2011: /* Hyphens */ return((CHAR)(0x2d & 0xff)); case 0x2012: case 0x2013: /* en-dashes */ return((CHAR)(0x96 & 0xff)); case 0x2014: case 0x2015: /* em-dashes */ return((CHAR)(0x97 & 0xff)); case 0x2018: /* Various quotation marks... */ return((CHAR)(0x91 & 0xff)); case 0x2019: return((CHAR)(0x92 & 0xff)); case 0x201c: return((CHAR)(0x93 & 0xff)); case 0x201d: return((CHAR)(0x94 & 0xff)); case 0x201e: return((CHAR)(0x84 & 0xff)); case 0x2020: /* Dagger */ return((CHAR)(0x86 & 0xff)); case 0x2021: /* Double Dagger */ return((CHAR)(0x87 & 0xff)); case 0x2022: /* Bullet */ return((CHAR)(0x95 & 0xff)); case 0x2026: /* Ellipsis */ return((CHAR)(0x85 & 0xff)); case 0x2030: /* Per mil */ return((CHAR)(0x89 & 0xff)); case 0x20AC: /* Euro */ return((CHAR)(0x80 & 0xff)); case 0x2122: /* Trade Mark */ return((CHAR)(0x99 & 0xff)); default: return(0x003f); } } int /* Windows Code Page 1251 (Cyrillic) */ #ifdef CK_ANSIC tx_cp1251(USHORT c) #else tx_cp1251(c) USHORT c; #endif /* CK_ANSIC */ { if (c < 0x80) /* Has C1 graphics */ return((CHAR)(c & 0xff)); /* This is simply the inverse of u_cp1251.map */ switch (c) { case 0x003c: return((CHAR)(0x8b & 0xff)); case 0x003e: return((CHAR)(0x9b & 0xff)); case 0x007e: return((CHAR)(0x98 & 0xff)); case 0x00A0: return((CHAR)(0xa0 & 0xff)); case 0x00A4: return((CHAR)(0xa4 & 0xff)); case 0x00A6: return((CHAR)(0xa6 & 0xff)); case 0x00A7: return((CHAR)(0xa7 & 0xff)); case 0x00A9: return((CHAR)(0xa9 & 0xff)); case 0x00AB: return((CHAR)(0xab & 0xff)); case 0x00AC: return((CHAR)(0xac & 0xff)); case 0x00AD: return((CHAR)(0xad & 0xff)); case 0x00AE: return((CHAR)(0xae & 0xff)); case 0x00b0: return((CHAR)(0xb0 & 0xff)); case 0x00b1: return((CHAR)(0xb1 & 0xff)); case 0x00B5: return((CHAR)(0xb5 & 0xff)); case 0x00B6: return((CHAR)(0xb6 & 0xff)); case 0x00B7: return((CHAR)(0xb7 & 0xff)); case 0x00BB: return((CHAR)(0xbb & 0xff)); case 0x0401: return((CHAR)(0xa8 & 0xff)); case 0x0402: return((CHAR)(0x80 & 0xff)); case 0x0403: return((CHAR)(0x81 & 0xff)); case 0x0404: return((CHAR)(0xaa & 0xff)); case 0x0405: return((CHAR)(0xbd & 0xff)); case 0x0406: return((CHAR)(0xb2 & 0xff)); case 0x0407: return((CHAR)(0xaf & 0xff)); case 0x0408: return((CHAR)(0xa3 & 0xff)); case 0x0409: return((CHAR)(0x8a & 0xff)); case 0x040a: return((CHAR)(0x8c & 0xff)); case 0x040b: return((CHAR)(0x8e & 0xff)); case 0x040c: return((CHAR)(0x8d & 0xff)); case 0x040e: return((CHAR)(0xa1 & 0xff)); case 0x040f: return((CHAR)(0x8f & 0xff)); case 0x0410: return((CHAR)(0xc0 & 0xff)); case 0x0411: return((CHAR)(0xc1 & 0xff)); case 0x0412: return((CHAR)(0xc2 & 0xff)); case 0x0413: return((CHAR)(0xc3 & 0xff)); case 0x0414: return((CHAR)(0xc4 & 0xff)); case 0x0415: return((CHAR)(0xc5 & 0xff)); case 0x0416: return((CHAR)(0xc6 & 0xff)); case 0x0417: return((CHAR)(0xc7 & 0xff)); case 0x0418: return((CHAR)(0xc8 & 0xff)); case 0x0419: return((CHAR)(0xc9 & 0xff)); case 0x041a: return((CHAR)(0xca & 0xff)); case 0x041b: return((CHAR)(0xcb & 0xff)); case 0x041c: return((CHAR)(0xcc & 0xff)); case 0x041d: return((CHAR)(0xcd & 0xff)); case 0x041e: return((CHAR)(0xce & 0xff)); case 0x041f: return((CHAR)(0xcf & 0xff)); case 0x0420: return((CHAR)(0xd0 & 0xff)); case 0x0421: return((CHAR)(0xd1 & 0xff)); case 0x0422: return((CHAR)(0xd2 & 0xff)); case 0x0423: return((CHAR)(0xd3 & 0xff)); case 0x0424: return((CHAR)(0xd4 & 0xff)); case 0x0425: return((CHAR)(0xd5 & 0xff)); case 0x0426: return((CHAR)(0xd6 & 0xff)); case 0x0427: return((CHAR)(0xd7 & 0xff)); case 0x0428: return((CHAR)(0xd8 & 0xff)); case 0x0429: return((CHAR)(0xd9 & 0xff)); case 0x042a: return((CHAR)(0xda & 0xff)); case 0x042b: return((CHAR)(0xdb & 0xff)); case 0x042c: return((CHAR)(0xdc & 0xff)); case 0x042d: return((CHAR)(0xdd & 0xff)); case 0x042e: return((CHAR)(0xde & 0xff)); case 0x042f: return((CHAR)(0xdf & 0xff)); case 0x0430: return((CHAR)(0xe0 & 0xff)); case 0x0431: return((CHAR)(0xe1 & 0xff)); case 0x0432: return((CHAR)(0xe2 & 0xff)); case 0x0433: return((CHAR)(0xe3 & 0xff)); case 0x0434: return((CHAR)(0xe4 & 0xff)); case 0x0435: return((CHAR)(0xe5 & 0xff)); case 0x0436: return((CHAR)(0xe6 & 0xff)); case 0x0437: return((CHAR)(0xe7 & 0xff)); case 0x0438: return((CHAR)(0xe8 & 0xff)); case 0x0439: return((CHAR)(0xe9 & 0xff)); case 0x043a: return((CHAR)(0xea & 0xff)); case 0x043b: return((CHAR)(0xeb & 0xff)); case 0x043c: return((CHAR)(0xec & 0xff)); case 0x043d: return((CHAR)(0xed & 0xff)); case 0x043e: return((CHAR)(0xee & 0xff)); case 0x043f: return((CHAR)(0xef & 0xff)); case 0x0440: return((CHAR)(0xf0 & 0xff)); case 0x0441: return((CHAR)(0xf1 & 0xff)); case 0x0442: return((CHAR)(0xf2 & 0xff)); case 0x0443: return((CHAR)(0xf3 & 0xff)); case 0x0444: return((CHAR)(0xf4 & 0xff)); case 0x0445: return((CHAR)(0xf5 & 0xff)); case 0x0446: return((CHAR)(0xf6 & 0xff)); case 0x0447: return((CHAR)(0xf7 & 0xff)); case 0x0448: return((CHAR)(0xf8 & 0xff)); case 0x0449: return((CHAR)(0xf9 & 0xff)); case 0x044a: return((CHAR)(0xfa & 0xff)); case 0x044b: return((CHAR)(0xfb & 0xff)); case 0x044c: return((CHAR)(0xfc & 0xff)); case 0x044d: return((CHAR)(0xfd & 0xff)); case 0x044e: return((CHAR)(0xfe & 0xff)); case 0x044f: return((CHAR)(0xff & 0xff)); case 0x0451: return((CHAR)(0xb8 & 0xff)); case 0x0452: return((CHAR)(0x90 & 0xff)); case 0x0453: return((CHAR)(0x83 & 0xff)); case 0x0454: return((CHAR)(0xba & 0xff)); case 0x0455: return((CHAR)(0xbe & 0xff)); case 0x0456: return((CHAR)(0xb3 & 0xff)); case 0x0457: return((CHAR)(0xbf & 0xff)); case 0x0458: return((CHAR)(0xbc & 0xff)); case 0x0459: return((CHAR)(0x9a & 0xff)); case 0x045a: return((CHAR)(0x9c & 0xff)); case 0x045b: return((CHAR)(0x9e & 0xff)); case 0x045c: return((CHAR)(0x9d & 0xff)); case 0x045e: return((CHAR)(0xa2 & 0xff)); case 0x045f: return((CHAR)(0x9f & 0xff)); case 0x0490: return((CHAR)(0xa5 & 0xff)); case 0x0491: return((CHAR)(0xb4 & 0xff)); case 0x2012: return((CHAR)(0x96 & 0xff)); case 0x2014: return((CHAR)(0x97 & 0xff)); case 0x2018: return((CHAR)(0x91 & 0xff)); case 0x2019: return((CHAR)(0x92 & 0xff)); case 0x201a: return((CHAR)(0x82 & 0xff)); case 0x201c: return((CHAR)(0x93 & 0xff)); case 0x201d: return((CHAR)(0x94 & 0xff)); case 0x201e: return((CHAR)(0x84 & 0xff)); case 0x2020: return((CHAR)(0x86 & 0xff)); case 0x2021: return((CHAR)(0x87 & 0xff)); case 0x2022: return((CHAR)(0x95 & 0xff)); case 0x2026: return((CHAR)(0x85 & 0xff)); case 0x2031: return((CHAR)(0x89 & 0xff)); case 0x20AC: /* Euro */ return((CHAR)(0x88 & 0xff)); case 0x2116: return((CHAR)(0xb9 & 0xff)); case 0x2122: return((CHAR)(0x99 & 0xff)); default: return(0x003f); } } int /* Unicode to Windows Code Page 1252 (Latin-1) */ #ifdef CK_ANSIC tx_cp1252(USHORT c) #else tx_cp1252(c) USHORT c; #endif /* CK_ANSIC */ { if (c < 0x80 || (c > 0x9f && c <= 0xff)) /* Has C1 graphics */ return((CHAR)(c & 0xff)); switch (c) { case 0x0152: /* OE */ return((CHAR)(0x8c & 0xff)); case 0x0153: /* oe */ return((CHAR)(0x9c & 0xff)); case 0x0160: /* S caron */ return((CHAR)(0x8a & 0xff)); case 0x0161: /* s caron */ return((CHAR)(0x9a & 0xff)); case 0x0178: /* Y diaeresis */ return((CHAR)(0x9f & 0xff)); case 0x017D: /* Z caron */ return((CHAR)(0x8e & 0xff)); case 0x017E: /* z caron */ return((CHAR)(0x9e & 0xff)); case 0x0192: /* Florin */ return((CHAR)(0x83 & 0xff)); case 0x2010: case 0x2011: /* Hyphens */ return((CHAR)(0x2d & 0xff)); case 0x2012: case 0x2013: /* en-dashes */ return((CHAR)(0x96 & 0xff)); case 0x2014: case 0x2015: /* em-dashes */ return((CHAR)(0x97 & 0xff)); case 0x2018: /* Various quotation marks... */ return((CHAR)(0x91 & 0xff)); case 0x2019: return((CHAR)(0x92 & 0xff)); case 0x201c: return((CHAR)(0x93 & 0xff)); case 0x201d: return((CHAR)(0x94 & 0xff)); case 0x201e: return((CHAR)(0x84 & 0xff)); case 0x2020: /* Dagger */ return((CHAR)(0x86 & 0xff)); case 0x2021: /* Double Dagger */ return((CHAR)(0x87 & 0xff)); case 0x2022: /* Bullet */ return((CHAR)(0x95 & 0xff)); case 0x2026: /* Ellipsis */ return((CHAR)(0x85 & 0xff)); case 0x2030: /* Per mil */ return((CHAR)(0x89 & 0xff)); case 0x20AC: /* Euro */ return((CHAR)(0x80 & 0xff)); case 0x2122: /* Trade Mark */ return((CHAR)(0x99 & 0xff)); default: return(0x003f); } } int /* PC Code Page 852 */ #ifdef CK_ANSIC tx_cp852(USHORT c) #else tx_cp852(c) USHORT c; #endif /* CK_ANSIC */ { if (c < 0x80) /* Has C1 graphics */ return((CHAR)(c & 0xff)); switch (c) { case 0x00a0: return((CHAR)(255 & 0xff)); case 0x00a4: return((CHAR)(207 & 0xff)); case 0x00a7: return((CHAR)(245 & 0xff)); case 0x00a8: return((CHAR)(249 & 0xff)); case 0x00ab: return((CHAR)(174 & 0xff)); case 0x00ac: return((CHAR)(170 & 0xff)); case 0x00ad: return((CHAR)(240 & 0xff)); case 0x00b0: return((CHAR)(248 & 0xff)); case 0x00b4: return((CHAR)(239 & 0xff)); case 0x00b8: return((CHAR)(247 & 0xff)); case 0x00bb: return((CHAR)(175 & 0xff)); case 0x00c1: return((CHAR)(181 & 0xff)); case 0x00c2: return((CHAR)(182 & 0xff)); case 0x00c4: return((CHAR)(142 & 0xff)); case 0x00c7: return((CHAR)(128 & 0xff)); case 0x00c9: return((CHAR)(144 & 0xff)); case 0x00cb: return((CHAR)(211 & 0xff)); case 0x00cd: return((CHAR)(214 & 0xff)); case 0x00ce: return((CHAR)(215 & 0xff)); case 0x00d3: return((CHAR)(224 & 0xff)); case 0x00d4: return((CHAR)(226 & 0xff)); case 0x00d6: return((CHAR)(153 & 0xff)); case 0x00d7: return((CHAR)(158 & 0xff)); case 0x00da: return((CHAR)(233 & 0xff)); case 0x00dc: return((CHAR)(154 & 0xff)); case 0x00dd: return((CHAR)(237 & 0xff)); case 0x00df: return((CHAR)(225 & 0xff)); case 0x00e1: return((CHAR)(160 & 0xff)); case 0x00e2: return((CHAR)(131 & 0xff)); case 0x00e4: return((CHAR)(132 & 0xff)); case 0x00e7: return((CHAR)(135 & 0xff)); case 0x00e9: return((CHAR)(130 & 0xff)); case 0x00eb: return((CHAR)(137 & 0xff)); case 0x00ed: return((CHAR)(161 & 0xff)); case 0x00ee: return((CHAR)(140 & 0xff)); case 0x00f3: return((CHAR)(162 & 0xff)); case 0x00f4: return((CHAR)(147 & 0xff)); case 0x00f6: return((CHAR)(148 & 0xff)); case 0x00f7: return((CHAR)(246 & 0xff)); case 0x00fa: return((CHAR)(163 & 0xff)); case 0x00fc: return((CHAR)(129 & 0xff)); case 0x00fd: return((CHAR)(236 & 0xff)); case 0x0102: return((CHAR)(198 & 0xff)); case 0x0103: return((CHAR)(199 & 0xff)); case 0x0104: return((CHAR)(164 & 0xff)); case 0x0105: return((CHAR)(165 & 0xff)); case 0x0106: return((CHAR)(143 & 0xff)); case 0x0107: return((CHAR)(134 & 0xff)); case 0x010c: return((CHAR)(172 & 0xff)); case 0x010d: return((CHAR)(159 & 0xff)); case 0x010e: return((CHAR)(210 & 0xff)); case 0x010f: return((CHAR)(212 & 0xff)); case 0x0110: return((CHAR)(209 & 0xff)); case 0x0111: return((CHAR)(208 & 0xff)); case 0x0118: return((CHAR)(168 & 0xff)); case 0x0119: return((CHAR)(169 & 0xff)); case 0x011a: return((CHAR)(183 & 0xff)); case 0x011b: return((CHAR)(216 & 0xff)); case 0x0139: return((CHAR)(145 & 0xff)); case 0x013a: return((CHAR)(146 & 0xff)); case 0x013d: return((CHAR)(149 & 0xff)); case 0x013e: return((CHAR)(150 & 0xff)); case 0x0141: return((CHAR)(157 & 0xff)); case 0x0142: return((CHAR)(136 & 0xff)); case 0x0143: return((CHAR)(227 & 0xff)); case 0x0144: return((CHAR)(228 & 0xff)); case 0x0147: return((CHAR)(213 & 0xff)); case 0x0148: return((CHAR)(229 & 0xff)); case 0x0150: return((CHAR)(138 & 0xff)); case 0x0151: return((CHAR)(139 & 0xff)); case 0x0154: return((CHAR)(232 & 0xff)); case 0x0155: return((CHAR)(234 & 0xff)); case 0x0158: return((CHAR)(252 & 0xff)); case 0x0159: return((CHAR)(253 & 0xff)); case 0x015a: return((CHAR)(151 & 0xff)); case 0x015b: return((CHAR)(152 & 0xff)); case 0x015e: return((CHAR)(184 & 0xff)); case 0x015f: return((CHAR)(173 & 0xff)); case 0x0160: return((CHAR)(230 & 0xff)); case 0x0161: return((CHAR)(231 & 0xff)); case 0x0162: return((CHAR)(221 & 0xff)); case 0x0163: return((CHAR)(238 & 0xff)); case 0x0164: return((CHAR)(155 & 0xff)); case 0x0165: return((CHAR)(156 & 0xff)); case 0x016e: return((CHAR)(222 & 0xff)); case 0x016f: return((CHAR)(133 & 0xff)); case 0x0170: return((CHAR)(235 & 0xff)); case 0x0171: return((CHAR)(251 & 0xff)); case 0x0179: return((CHAR)(141 & 0xff)); case 0x017a: return((CHAR)(171 & 0xff)); case 0x017b: return((CHAR)(189 & 0xff)); case 0x017c: return((CHAR)(190 & 0xff)); case 0x017d: return((CHAR)(166 & 0xff)); case 0x017e: return((CHAR)(167 & 0xff)); case 0x02c7: return((CHAR)(243 & 0xff)); case 0x02d8: return((CHAR)(244 & 0xff)); case 0x02d9: return((CHAR)(250 & 0xff)); case 0x02db: return((CHAR)(242 & 0xff)); case 0x02dd: return((CHAR)(241 & 0xff)); case 0x2500: return((CHAR)(196 & 0xff)); case 0x2502: return((CHAR)(179 & 0xff)); case 0x250c: return((CHAR)(218 & 0xff)); case 0x2510: return((CHAR)(191 & 0xff)); case 0x2514: return((CHAR)(192 & 0xff)); case 0x2518: return((CHAR)(217 & 0xff)); case 0x251c: return((CHAR)(195 & 0xff)); case 0x2524: return((CHAR)(180 & 0xff)); case 0x252c: return((CHAR)(194 & 0xff)); case 0x2534: return((CHAR)(193 & 0xff)); case 0x253c: return((CHAR)(197 & 0xff)); case 0x2550: return((CHAR)(205 & 0xff)); case 0x2551: return((CHAR)(186 & 0xff)); case 0x2554: return((CHAR)(201 & 0xff)); case 0x2557: return((CHAR)(187 & 0xff)); case 0x255a: return((CHAR)(200 & 0xff)); case 0x255d: return((CHAR)(188 & 0xff)); case 0x2560: return((CHAR)(204 & 0xff)); case 0x2563: return((CHAR)(185 & 0xff)); case 0x2566: return((CHAR)(203 & 0xff)); case 0x2569: return((CHAR)(202 & 0xff)); case 0x256c: return((CHAR)(206 & 0xff)); case 0x2580: return((CHAR)(223 & 0xff)); case 0x2584: return((CHAR)(220 & 0xff)); case 0x2588: return((CHAR)(219 & 0xff)); case 0x2591: return((CHAR)(176 & 0xff)); case 0x2592: return((CHAR)(177 & 0xff)); case 0x2593: return((CHAR)(178 & 0xff)); case 0x25a0: return((CHAR)(254 & 0xff)); default: return(tx_cpsub(c)); /* For box characters etc */ } } int /* Windows Code Page 1253 (Greek) */ #ifdef CK_ANSIC tx_cp1253(USHORT c) #else tx_cp1253(c) USHORT c; #endif /* CK_ANSIC */ { if (c < 0x80) /* Has C1 graphics */ return((CHAR)(c & 0xff)); switch (c) { case 0x003c: return((CHAR)(0x8b & 0xff)); case 0x003e: return((CHAR)(0x9b & 0xff)); case 0x00A0: return((CHAR)(0xa0 & 0xff)); case 0x00A3: return((CHAR)(0xa3 & 0xff)); case 0x00A4: return((CHAR)(0xa4 & 0xff)); case 0x00A5: return((CHAR)(0xa5 & 0xff)); case 0x00A6: return((CHAR)(0xa6 & 0xff)); case 0x00A7: return((CHAR)(0xa7 & 0xff)); case 0x00A8: return((CHAR)(0xa8 & 0xff)); case 0x00A9: return((CHAR)(0xa9 & 0xff)); case 0x00AA: return((CHAR)(0xaa & 0xff)); case 0x00AB: return((CHAR)(0xab & 0xff)); case 0x00AC: return((CHAR)(0xac & 0xff)); case 0x00AD: return((CHAR)(0xad & 0xff)); case 0x00AE: return((CHAR)(0xae & 0xff)); case 0x00AF: return((CHAR)(0xaf & 0xff)); case 0x00B0: return((CHAR)(0xb0 & 0xff)); case 0x00B1: return((CHAR)(0xb1 & 0xff)); case 0x00B2: return((CHAR)(0xb2 & 0xff)); case 0x00B3: return((CHAR)(0xb3 & 0xff)); case 0x00B5: return((CHAR)(0xb5 & 0xff)); case 0x00B6: return((CHAR)(0xb6 & 0xff)); case 0x00b7: return((CHAR)(0xa1 & 0xff)); case 0x00BB: return((CHAR)(0xbb & 0xff)); case 0x00BD: return((CHAR)(0xbd & 0xff)); case 0x0192: return((CHAR)(0x83 & 0xff)); case 0x0386: return((CHAR)(0xa2 & 0xff)); case 0x0388: return((CHAR)(0xb8 & 0xff)); case 0x0389: return((CHAR)(0xb9 & 0xff)); case 0x038A: return((CHAR)(0xba & 0xff)); case 0x038C: return((CHAR)(0xbc & 0xff)); case 0x038E: return((CHAR)(0xbe & 0xff)); case 0x038F: return((CHAR)(0xbf & 0xff)); case 0x0390: return((CHAR)(0xc0 & 0xff)); case 0x0391: return((CHAR)(0xc1 & 0xff)); case 0x0392: return((CHAR)(0xc2 & 0xff)); case 0x0393: return((CHAR)(0xc3 & 0xff)); case 0x0394: return((CHAR)(0xc4 & 0xff)); case 0x0395: return((CHAR)(0xc5 & 0xff)); case 0x0396: return((CHAR)(0xc6 & 0xff)); case 0x0397: return((CHAR)(0xc7 & 0xff)); case 0x0398: return((CHAR)(0xc8 & 0xff)); case 0x0399: return((CHAR)(0xc9 & 0xff)); case 0x039A: return((CHAR)(0xca & 0xff)); case 0x039B: return((CHAR)(0xcb & 0xff)); case 0x039C: return((CHAR)(0xcc & 0xff)); case 0x039D: return((CHAR)(0xcd & 0xff)); case 0x039E: return((CHAR)(0xce & 0xff)); case 0x039F: return((CHAR)(0xcf & 0xff)); case 0x03a0: return((CHAR)(0xd0 & 0xff)); case 0x03a1: return((CHAR)(0xd1 & 0xff)); case 0x03a3: return((CHAR)(0xd3 & 0xff)); case 0x03a4: return((CHAR)(0xd4 & 0xff)); case 0x03a5: return((CHAR)(0xd5 & 0xff)); case 0x03a6: return((CHAR)(0xd6 & 0xff)); case 0x03a7: return((CHAR)(0xd7 & 0xff)); case 0x03a8: return((CHAR)(0xd8 & 0xff)); case 0x03a9: return((CHAR)(0xd9 & 0xff)); case 0x03aA: return((CHAR)(0xda & 0xff)); case 0x03aB: return((CHAR)(0xdb & 0xff)); case 0x03aC: return((CHAR)(0xdc & 0xff)); case 0x03aD: return((CHAR)(0xdd & 0xff)); case 0x03aE: return((CHAR)(0xde & 0xff)); case 0x03aF: return((CHAR)(0xdf & 0xff)); case 0x03b0: return((CHAR)(0xe0 & 0xff)); case 0x03b1: return((CHAR)(0xe1 & 0xff)); case 0x03b2: return((CHAR)(0xe2 & 0xff)); case 0x03b3: return((CHAR)(0xe3 & 0xff)); case 0x03b4: return((CHAR)(0xe4 & 0xff)); case 0x03b5: return((CHAR)(0xe5 & 0xff)); case 0x03b6: return((CHAR)(0xe6 & 0xff)); case 0x03b7: return((CHAR)(0xe7 & 0xff)); case 0x03b8: return((CHAR)(0xe8 & 0xff)); case 0x03b9: return((CHAR)(0xe9 & 0xff)); case 0x03bA: return((CHAR)(0xea & 0xff)); case 0x03bB: return((CHAR)(0xeb & 0xff)); case 0x03bC: return((CHAR)(0xec & 0xff)); case 0x03bD: return((CHAR)(0xed & 0xff)); case 0x03bE: return((CHAR)(0xee & 0xff)); case 0x03bF: return((CHAR)(0xef & 0xff)); case 0x03c0: return((CHAR)(0xf0 & 0xff)); case 0x03c1: return((CHAR)(0xf1 & 0xff)); case 0x03c2: return((CHAR)(0xf2 & 0xff)); case 0x03c3: return((CHAR)(0xf3 & 0xff)); case 0x03c4: return((CHAR)(0xf4 & 0xff)); case 0x03c5: return((CHAR)(0xf5 & 0xff)); case 0x03c6: return((CHAR)(0xf6 & 0xff)); case 0x03c7: return((CHAR)(0xf7 & 0xff)); case 0x03c8: return((CHAR)(0xf8 & 0xff)); case 0x03c9: return((CHAR)(0xf9 & 0xff)); case 0x03cA: return((CHAR)(0xfa & 0xff)); case 0x03cB: return((CHAR)(0xfb & 0xff)); case 0x03cC: return((CHAR)(0xfc & 0xff)); case 0x03cD: return((CHAR)(0xfd & 0xff)); case 0x03cE: return((CHAR)(0xfe & 0xff)); case 0x2012: return((CHAR)(0x96 & 0xff)); case 0x2014: return((CHAR)(0x97 & 0xff)); case 0x2018: return((CHAR)(0x91 & 0xff)); case 0x2019: return((CHAR)(0x92 & 0xff)); case 0x201a: return((CHAR)(0x82 & 0xff)); case 0x201c: return((CHAR)(0x93 & 0xff)); case 0x201d: return((CHAR)(0x94 & 0xff)); case 0x201e: return((CHAR)(0x84 & 0xff)); case 0x2020: return((CHAR)(0x86 & 0xff)); case 0x2021: return((CHAR)(0x87 & 0xff)); case 0x2022: return((CHAR)(0x95 & 0xff)); case 0x2026: return((CHAR)(0x85 & 0xff)); case 0x2031: return((CHAR)(0x89 & 0xff)); case 0x20AC: /* Euro */ return((CHAR)(0x80 & 0xff)); case 0x2122: return((CHAR)(0x99 & 0xff)); default: return(0x003f); } } int /* Windows Code Page 1254 (Turkish) */ #ifdef CK_ANSIC tx_cp1254(USHORT c) #else tx_cp1254(c) USHORT c; #endif /* CK_ANSIC */ { if (c < 0x80) return((CHAR)(c & 0xff)); switch (c) { case 0x011e: return((CHAR)(0xd0 & 0xff)); /* G breve */ case 0x0130: return((CHAR)(0xdd & 0xff)); /* I with dot */ case 0x015e: return((CHAR)(0xde & 0xff)); /* S cedilla */ case 0x011f: return((CHAR)(0xf0 & 0xff)); /* g breve */ case 0x0131: return((CHAR)(0xfd & 0xff)); /* i dotless */ case 0x015f: return((CHAR)(0xfe & 0xff)); /* s cedilla */ default: return(tx_cp1252(c)); /* The rest is like Windows Latin-1 */ } } int #ifdef CK_ANSIC tx_cp1255(USHORT c) #else tx_cp1255(c) USHORT c; #endif /* CK_ANSIC */ { if (c < 0x080) return((CHAR)(c & 0xff)); switch (c) { case 0x20AC: return((CHAR)(0x80 & 0xff)); /* EURO SIGN */ case 0x201A: return((CHAR)(0x82 & 0xff)); /* SINGLE LOW-9 QUOTATION MARK */ case 0x0192: return((CHAR)(0x83 & 0xff)); /* LATIN SMALL LETTER F WITH HOOK */ case 0x201E: return((CHAR)(0x84 & 0xff)); /* DOUBLE LOW-9 QUOTATION MARK */ case 0x2026: return((CHAR)(0x85 & 0xff)); /* HORIZONTAL ELLIPSIS */ case 0x2020: return((CHAR)(0x86 & 0xff)); /* DAGGER */ case 0x2021: return((CHAR)(0x87 & 0xff)); /* DOUBLE DAGGER */ case 0x02C6: return((CHAR)(0x88 & 0xff)); /* MODIFIER LETTER CIRCUMFLEX ACCENT */ case 0x2030: return((CHAR)(0x89 & 0xff)); /* PER MILLE SIGN */ case 0x2039: return((CHAR)(0x8B & 0xff)); /* SINGLE LEFT-POINTING ANGLE QUOTE */ case 0x2018: return((CHAR)(0x91 & 0xff)); /* LEFT SINGLE QUOTATION MARK */ case 0x2019: return((CHAR)(0x92 & 0xff)); /* RIGHT SINGLE QUOTATION MARK */ case 0x201C: return((CHAR)(0x93 & 0xff)); /* LEFT DOUBLE QUOTATION MARK */ case 0x201D: return((CHAR)(0x94 & 0xff)); /* RIGHT DOUBLE QUOTATION MARK */ case 0x2022: return((CHAR)(0x95 & 0xff)); /* BULLET */ case 0x2013: return((CHAR)(0x96 & 0xff)); /* EN DASH */ case 0x2014: return((CHAR)(0x97 & 0xff)); /* EM DASH */ case 0x02DC: return((CHAR)(0x98 & 0xff)); /* SMALL TILDE */ case 0x2122: return((CHAR)(0x99 & 0xff)); /* TRADE MARK SIGN */ case 0x203A: return((CHAR)(0x9B & 0xff)); /* SINGLE RIGHT-POINTING ANGLE QUOTE */ case 0x00A0: return((CHAR)(0xA0 & 0xff)); /* NO-BREAK SPACE */ case 0x00A1: return((CHAR)(0xA1 & 0xff)); /* INVERTED EXCLAMATION MARK */ case 0x00A2: return((CHAR)(0xA2 & 0xff)); /* CENT SIGN */ case 0x00A3: return((CHAR)(0xA3 & 0xff)); /* POUND SIGN */ case 0x20AA: return((CHAR)(0xA4 & 0xff)); /* NEW SHEQEL SIGN */ case 0x00A5: return((CHAR)(0xA5 & 0xff)); /* YEN SIGN */ case 0x00A6: return((CHAR)(0xA6 & 0xff)); /* BROKEN BAR */ case 0x00A7: return((CHAR)(0xA7 & 0xff)); /* SECTION SIGN */ case 0x00A8: return((CHAR)(0xA8 & 0xff)); /* DIAERESIS */ case 0x00A9: return((CHAR)(0xA9 & 0xff)); /* COPYRIGHT SIGN */ case 0x00D7: return((CHAR)(0xAA & 0xff)); /* MULTIPLICATION SIGN */ case 0x00AB: return((CHAR)(0xAB & 0xff)); /* LEFT-POINTING DOUBLE ANGLE QUOTE */ case 0x00AC: return((CHAR)(0xAC & 0xff)); /* NOT SIGN */ case 0x00AD: return((CHAR)(0xAD & 0xff)); /* SOFT HYPHEN */ case 0x00AE: return((CHAR)(0xAE & 0xff)); /* REGISTERED SIGN */ case 0x00AF: return((CHAR)(0xAF & 0xff)); /* MACRON */ case 0x00B0: return((CHAR)(0xB0 & 0xff)); /* DEGREE SIGN */ case 0x00B1: return((CHAR)(0xB1 & 0xff)); /* PLUS-MINUS SIGN */ case 0x00B2: return((CHAR)(0xB2 & 0xff)); /* SUPERSCRIPT TWO */ case 0x00B3: return((CHAR)(0xB3 & 0xff)); /* SUPERSCRIPT THREE */ case 0x00B4: return((CHAR)(0xB4 & 0xff)); /* ACUTE ACCENT */ case 0x00B5: return((CHAR)(0xB5 & 0xff)); /* MICRO SIGN */ case 0x00B6: return((CHAR)(0xB6 & 0xff)); /* PILCROW SIGN */ case 0x00B7: return((CHAR)(0xB7 & 0xff)); /* MIDDLE DOT */ case 0x00B8: return((CHAR)(0xB8 & 0xff)); /* CEDILLA */ case 0x00B9: return((CHAR)(0xB9 & 0xff)); /* SUPERSCRIPT ONE */ case 0x00F7: return((CHAR)(0xBA & 0xff)); /* DIVISION SIGN */ case 0x00BB: return((CHAR)(0xBB & 0xff)); /* RIGHT-POINTING DOUBLE ANGLE QUOTE */ case 0x00BC: return((CHAR)(0xBC & 0xff)); /* VULGAR FRACTION ONE QUARTER */ case 0x00BD: return((CHAR)(0xBD & 0xff)); /* VULGAR FRACTION ONE HALF */ case 0x00BE: return((CHAR)(0xBE & 0xff)); /* VULGAR FRACTION THREE QUARTERS */ case 0x00BF: return((CHAR)(0xBF & 0xff)); /* INVERTED QUESTION MARK */ case 0x05B0: return((CHAR)(0xC0 & 0xff)); /* HEBREW POINT SHEVA */ case 0x05B1: return((CHAR)(0xC1 & 0xff)); /* HEBREW POINT HATAF SEGOL */ case 0x05B2: return((CHAR)(0xC2 & 0xff)); /* HEBREW POINT HATAF PATAH */ case 0x05B3: return((CHAR)(0xC3 & 0xff)); /* HEBREW POINT HATAF QAMATS */ case 0x05B4: return((CHAR)(0xC4 & 0xff)); /* HEBREW POINT HIRIQ */ case 0x05B5: return((CHAR)(0xC5 & 0xff)); /* HEBREW POINT TSERE */ case 0x05B6: return((CHAR)(0xC6 & 0xff)); /* HEBREW POINT SEGOL */ case 0x05B7: return((CHAR)(0xC7 & 0xff)); /* HEBREW POINT PATAH */ case 0x05B8: return((CHAR)(0xC8 & 0xff)); /* HEBREW POINT QAMATS */ case 0x05B9: return((CHAR)(0xC9 & 0xff)); /* HEBREW POINT HOLAM */ case 0x05BB: return((CHAR)(0xCB & 0xff)); /* HEBREW POINT QUBUTS */ case 0x05BC: return((CHAR)(0xCC & 0xff)); /* HEBREW POINT DAGESH OR MAPIQ */ case 0x05BD: return((CHAR)(0xCD & 0xff)); /* HEBREW POINT METEG */ case 0x05BE: return((CHAR)(0xCE & 0xff)); /* HEBREW PUNCTUATION MAQAF */ case 0x05BF: return((CHAR)(0xCF & 0xff)); /* HEBREW POINT RAFE */ case 0x05C0: return((CHAR)(0xD0 & 0xff)); /* HEBREW PUNCTUATION PASEQ */ case 0x05C1: return((CHAR)(0xD1 & 0xff)); /* HEBREW POINT SHIN DOT */ case 0x05C2: return((CHAR)(0xD2 & 0xff)); /* HEBREW POINT SIN DOT */ case 0x05C3: return((CHAR)(0xD3 & 0xff)); /* HEBREW PUNCTUATION SOF PASUQ */ case 0x05F0: return((CHAR)(0xD4 & 0xff)); /* HEBREW LIG. YIDDISH DOUBLE VAV */ case 0x05F1: return((CHAR)(0xD5 & 0xff)); /* HEBREW LIGATURE YIDDISH VAV YOD */ case 0x05F2: return((CHAR)(0xD6 & 0xff)); /* HEBREW LIG. YIDDISH DOUBLE YOD */ case 0x05F3: return((CHAR)(0xD7 & 0xff)); /* HEBREW PUNCTUATION GERESH */ case 0x05F4: return((CHAR)(0xD8 & 0xff)); /* HEBREW PUNCTUATION GERSHAYIM */ case 0x05D0: return((CHAR)(0xE0 & 0xff)); /* HEBREW LETTER ALEF */ case 0x05D1: return((CHAR)(0xE1 & 0xff)); /* HEBREW LETTER BET */ case 0x05D2: return((CHAR)(0xE2 & 0xff)); /* HEBREW LETTER GIMEL */ case 0x05D3: return((CHAR)(0xE3 & 0xff)); /* HEBREW LETTER DALET */ case 0x05D4: return((CHAR)(0xE4 & 0xff)); /* HEBREW LETTER HE */ case 0x05D5: return((CHAR)(0xE5 & 0xff)); /* HEBREW LETTER VAV */ case 0x05D6: return((CHAR)(0xE6 & 0xff)); /* HEBREW LETTER ZAYIN */ case 0x05D7: return((CHAR)(0xE7 & 0xff)); /* HEBREW LETTER HET */ case 0x05D8: return((CHAR)(0xE8 & 0xff)); /* HEBREW LETTER TET */ case 0x05D9: return((CHAR)(0xE9 & 0xff)); /* HEBREW LETTER YOD */ case 0x05DA: return((CHAR)(0xEA & 0xff)); /* HEBREW LETTER FINAL KAF */ case 0x05DB: return((CHAR)(0xEB & 0xff)); /* HEBREW LETTER KAF */ case 0x05DC: return((CHAR)(0xEC & 0xff)); /* HEBREW LETTER LAMED */ case 0x05DD: return((CHAR)(0xED & 0xff)); /* HEBREW LETTER FINAL MEM */ case 0x05DE: return((CHAR)(0xEE & 0xff)); /* HEBREW LETTER MEM */ case 0x05DF: return((CHAR)(0xEF & 0xff)); /* HEBREW LETTER FINAL NUN */ case 0x05E0: return((CHAR)(0xF0 & 0xff)); /* HEBREW LETTER NUN */ case 0x05E1: return((CHAR)(0xF1 & 0xff)); /* HEBREW LETTER SAMEKH */ case 0x05E2: return((CHAR)(0xF2 & 0xff)); /* HEBREW LETTER AYIN */ case 0x05E3: return((CHAR)(0xF3 & 0xff)); /* HEBREW LETTER FINAL PE */ case 0x05E4: return((CHAR)(0xF4 & 0xff)); /* HEBREW LETTER PE */ case 0x05E5: return((CHAR)(0xF5 & 0xff)); /* HEBREW LETTER FINAL TSADI */ case 0x05E6: return((CHAR)(0xF6 & 0xff)); /* HEBREW LETTER TSADI */ case 0x05E7: return((CHAR)(0xF7 & 0xff)); /* HEBREW LETTER QOF */ case 0x05E8: return((CHAR)(0xF8 & 0xff)); /* HEBREW LETTER RESH */ case 0x05E9: return((CHAR)(0xF9 & 0xff)); /* HEBREW LETTER SHIN */ case 0x05EA: return((CHAR)(0xFA & 0xff)); /* HEBREW LETTER TAV */ case 0x200E: return((CHAR)(0xFD & 0xff)); /* LEFT-TO-RIGHT MARK */ case 0x200F: return((CHAR)(0xFE & 0xff)); /* RIGHT-TO-LEFT MARK */ default: return(0x003f); } } int /* Windows Arabic */ #ifdef CK_ANSIC tx_cp1256(USHORT c) #else tx_cp1256(c) USHORT c; #endif /* CK_ANSIC */ { if (c < 0x80) return((CHAR)(c & 0xff)); switch (c) { case 0x20AC: return((CHAR)(0x80 & 0xff)); /* EURO SIGN */ case 0x067E: return((CHAR)(0x81 & 0xff)); /* ARABIC LETTER PEH */ case 0x201A: return((CHAR)(0x82 & 0xff)); /* SINGLE LOW-9 QUOTATION MARK */ case 0x0192: return((CHAR)(0x83 & 0xff)); /* LATIN SMALL LETTER F WITH HOOK */ case 0x201E: return((CHAR)(0x84 & 0xff)); /* DOUBLE LOW-9 QUOTATION MARK */ case 0x2026: return((CHAR)(0x85 & 0xff)); /* HORIZONTAL ELLIPSIS */ case 0x2020: return((CHAR)(0x86 & 0xff)); /* DAGGER */ case 0x2021: return((CHAR)(0x87 & 0xff)); /* DOUBLE DAGGER */ case 0x02C6: return((CHAR)(0x88 & 0xff)); /* MODIFIER LETTER CIRCUMFLEX ACCENT */ case 0x2030: return((CHAR)(0x89 & 0xff)); /* PER MILLE SIGN */ case 0x2039: return((CHAR)(0x8B & 0xff)); /* SINGLE LEFT-POINTING ANGLE QUOTE */ case 0x0152: return((CHAR)(0x8C & 0xff)); /* LATIN CAPITAL LIGATURE OE */ case 0x0686: return((CHAR)(0x8D & 0xff)); /* ARABIC LETTER TCHEH */ case 0x0698: return((CHAR)(0x8E & 0xff)); /* ARABIC LETTER JEH */ case 0x06AF: return((CHAR)(0x90 & 0xff)); /* ARABIC LETTER GAF */ case 0x2018: return((CHAR)(0x91 & 0xff)); /* LEFT SINGLE QUOTATION MARK */ case 0x2019: return((CHAR)(0x92 & 0xff)); /* RIGHT SINGLE QUOTATION MARK */ case 0x201C: return((CHAR)(0x93 & 0xff)); /* LEFT DOUBLE QUOTATION MARK */ case 0x201D: return((CHAR)(0x94 & 0xff)); /* RIGHT DOUBLE QUOTATION MARK */ case 0x2022: return((CHAR)(0x95 & 0xff)); /* BULLET */ case 0x2013: return((CHAR)(0x96 & 0xff)); /* EN DASH */ case 0x2014: return((CHAR)(0x97 & 0xff)); /* EM DASH */ case 0x2122: return((CHAR)(0x99 & 0xff)); /* TRADE MARK SIGN */ case 0x203A: return((CHAR)(0x9B & 0xff)); /* SINGLE RIGHT-POINTING ANGLE QUOTE */ case 0x0153: return((CHAR)(0x9C & 0xff)); /* LATIN SMALL LIGATURE OE */ case 0x200C: return((CHAR)(0x9D & 0xff)); /* ZERO WIDTH NON-JOINER */ case 0x200D: return((CHAR)(0x9E & 0xff)); /* ZERO WIDTH JOINER */ case 0x00A0: return((CHAR)(0xA0 & 0xff)); /* NO-BREAK SPACE */ case 0x060C: return((CHAR)(0xA1 & 0xff)); /* ARABIC COMMA */ case 0x00A2: return((CHAR)(0xA2 & 0xff)); /* CENT SIGN */ case 0x00A3: return((CHAR)(0xA3 & 0xff)); /* POUND SIGN */ case 0x00A4: return((CHAR)(0xA4 & 0xff)); /* CURRENCY SIGN */ case 0x00A5: return((CHAR)(0xA5 & 0xff)); /* YEN SIGN */ case 0x00A6: return((CHAR)(0xA6 & 0xff)); /* BROKEN BAR */ case 0x00A7: return((CHAR)(0xA7 & 0xff)); /* SECTION SIGN */ case 0x00A8: return((CHAR)(0xA8 & 0xff)); /* DIAERESIS */ case 0x00A9: return((CHAR)(0xA9 & 0xff)); /* COPYRIGHT SIGN */ case 0x00AB: return((CHAR)(0xAB & 0xff)); /* LEFT-POINTING DOUBLE ANGLE QUOTE */ case 0x00AC: return((CHAR)(0xAC & 0xff)); /* NOT SIGN */ case 0x00AD: return((CHAR)(0xAD & 0xff)); /* SOFT HYPHEN */ case 0x00AE: return((CHAR)(0xAE & 0xff)); /* REGISTERED SIGN */ case 0x00AF: return((CHAR)(0xAF & 0xff)); /* MACRON */ case 0x00B0: return((CHAR)(0xB0 & 0xff)); /* DEGREE SIGN */ case 0x00B1: return((CHAR)(0xB1 & 0xff)); /* PLUS-MINUS SIGN */ case 0x00B2: return((CHAR)(0xB2 & 0xff)); /* SUPERSCRIPT TWO */ case 0x00B3: return((CHAR)(0xB3 & 0xff)); /* SUPERSCRIPT THREE */ case 0x00B4: return((CHAR)(0xB4 & 0xff)); /* ACUTE ACCENT */ case 0x00B5: return((CHAR)(0xB5 & 0xff)); /* MICRO SIGN */ case 0x00B6: return((CHAR)(0xB6 & 0xff)); /* PILCROW SIGN */ case 0x00B7: return((CHAR)(0xB7 & 0xff)); /* MIDDLE DOT */ case 0x00B8: return((CHAR)(0xB8 & 0xff)); /* CEDILLA */ case 0x00B9: return((CHAR)(0xB9 & 0xff)); /* SUPERSCRIPT ONE */ case 0x061B: return((CHAR)(0xBA & 0xff)); /* ARABIC SEMICOLON */ case 0x00BB: return((CHAR)(0xBB & 0xff)); /* RIGHT-POINTING DOUBLE ANGLE QUOTE */ case 0x00BC: return((CHAR)(0xBC & 0xff)); /* VULGAR FRACTION ONE QUARTER */ case 0x00BD: return((CHAR)(0xBD & 0xff)); /* VULGAR FRACTION ONE HALF */ case 0x00BE: return((CHAR)(0xBE & 0xff)); /* VULGAR FRACTION THREE QUARTERS */ case 0x061F: return((CHAR)(0xBF & 0xff)); /* ARABIC QUESTION MARK */ case 0x0621: return((CHAR)(0xC1 & 0xff)); /* ARABIC LETTER HAMZA */ case 0x0622: return((CHAR)(0xC2 & 0xff)); /* ARABIC LTR. ALEF WITH MADDA ABOVE */ case 0x0623: return((CHAR)(0xC3 & 0xff)); /* ARABIC LTR. ALEF WITH HAMZA ABOVE */ case 0x0624: return((CHAR)(0xC4 & 0xff)); /* ARABIC LTR. WAW WITH HAMZA ABOVE */ case 0x0625: return((CHAR)(0xC5 & 0xff)); /* ARABIC LTR. ALEF WITH HAMZA BELOW */ case 0x0626: return((CHAR)(0xC6 & 0xff)); /* ARABIC LTR. YEH WITH HAMZA ABOVE */ case 0x0627: return((CHAR)(0xC7 & 0xff)); /* ARABIC LTR. ALEF */ case 0x0628: return((CHAR)(0xC8 & 0xff)); /* ARABIC LTR. BEH */ case 0x0629: return((CHAR)(0xC9 & 0xff)); /* ARABIC LETTER TEH MARBUTA */ case 0x062A: return((CHAR)(0xCA & 0xff)); /* ARABIC LETTER TEH */ case 0x062B: return((CHAR)(0xCB & 0xff)); /* ARABIC LETTER THEH */ case 0x062C: return((CHAR)(0xCC & 0xff)); /* ARABIC LETTER JEEM */ case 0x062D: return((CHAR)(0xCD & 0xff)); /* ARABIC LETTER HAH */ case 0x062E: return((CHAR)(0xCE & 0xff)); /* ARABIC LETTER KHAH */ case 0x062F: return((CHAR)(0xCF & 0xff)); /* ARABIC LETTER DAL */ case 0x0630: return((CHAR)(0xD0 & 0xff)); /* ARABIC LETTER THAL */ case 0x0631: return((CHAR)(0xD1 & 0xff)); /* ARABIC LETTER REH */ case 0x0632: return((CHAR)(0xD2 & 0xff)); /* ARABIC LETTER ZAIN */ case 0x0633: return((CHAR)(0xD3 & 0xff)); /* ARABIC LETTER SEEN */ case 0x0634: return((CHAR)(0xD4 & 0xff)); /* ARABIC LETTER SHEEN */ case 0x0635: return((CHAR)(0xD5 & 0xff)); /* ARABIC LETTER SAD */ case 0x0636: return((CHAR)(0xD6 & 0xff)); /* ARABIC LETTER DAD */ case 0x00D7: return((CHAR)(0xD7 & 0xff)); /* MULTIPLICATION SIGN */ case 0x0637: return((CHAR)(0xD8 & 0xff)); /* ARABIC LETTER TAH */ case 0x0638: return((CHAR)(0xD9 & 0xff)); /* ARABIC LETTER ZAH */ case 0x0639: return((CHAR)(0xDA & 0xff)); /* ARABIC LETTER AIN */ case 0x063A: return((CHAR)(0xDB & 0xff)); /* ARABIC LETTER GHAIN */ case 0x0640: return((CHAR)(0xDC & 0xff)); /* ARABIC TATWEEL */ case 0x0641: return((CHAR)(0xDD & 0xff)); /* ARABIC LETTER FEH */ case 0x0642: return((CHAR)(0xDE & 0xff)); /* ARABIC LETTER QAF */ case 0x0643: return((CHAR)(0xDF & 0xff)); /* ARABIC LETTER KAF */ case 0x00E0: return((CHAR)(0xE0 & 0xff)); /* LATIN SMALL LETTER A WITH GRAVE */ case 0x0644: return((CHAR)(0xE1 & 0xff)); /* ARABIC LETTER LAM */ case 0x00E2: return((CHAR)(0xE2 & 0xff)); /* SMALL LETTER A WITH CIRCUMFLEX */ case 0x0645: return((CHAR)(0xE3 & 0xff)); /* ARABIC LETTER MEEM */ case 0x0646: return((CHAR)(0xE4 & 0xff)); /* ARABIC LETTER NOON */ case 0x0647: return((CHAR)(0xE5 & 0xff)); /* ARABIC LETTER HEH */ case 0x0648: return((CHAR)(0xE6 & 0xff)); /* ARABIC LETTER WAW */ case 0x00E7: return((CHAR)(0xE7 & 0xff)); /* LATIN SMALL LETTER C WITH CEDILLA */ case 0x00E8: return((CHAR)(0xE8 & 0xff)); /* LATIN SMALL LETTER E WITH GRAVE */ case 0x00E9: return((CHAR)(0xE9 & 0xff)); /* LATIN SMALL LETTER E WITH ACUTE */ case 0x00EA: return((CHAR)(0xEA & 0xff)); /* SMALL LETTER E WITH CIRCUMFLEX */ case 0x00EB: return((CHAR)(0xEB & 0xff)); /* SMALL LETTER E WITH DIAERESIS */ case 0x0649: return((CHAR)(0xEC & 0xff)); /* ARABIC LETTER ALEF MAKSURA */ case 0x064A: return((CHAR)(0xED & 0xff)); /* ARABIC LETTER YEH */ case 0x00EE: return((CHAR)(0xEE & 0xff)); /* SMALL LETTER I WITH CIRCUMFLEX */ case 0x00EF: return((CHAR)(0xEF & 0xff)); /* SMALL LETTER I WITH DIAERESIS */ case 0x064B: return((CHAR)(0xF0 & 0xff)); /* ARABIC FATHATAN */ case 0x064C: return((CHAR)(0xF1 & 0xff)); /* ARABIC DAMMATAN */ case 0x064D: return((CHAR)(0xF2 & 0xff)); /* ARABIC KASRATAN */ case 0x064E: return((CHAR)(0xF3 & 0xff)); /* ARABIC FATHA */ case 0x00F4: return((CHAR)(0xF4 & 0xff)); /* SMALL LETTER O WITH CIRCUMFLEX */ case 0x064F: return((CHAR)(0xF5 & 0xff)); /* ARABIC DAMMA */ case 0x0650: return((CHAR)(0xF6 & 0xff)); /* ARABIC KASRA */ case 0x00F7: return((CHAR)(0xF7 & 0xff)); /* DIVISION SIGN */ case 0x0651: return((CHAR)(0xF8 & 0xff)); /* ARABIC SHADDA */ case 0x00F9: return((CHAR)(0xF9 & 0xff)); /* LATIN SMALL LETTER U WITH GRAVE */ case 0x0652: return((CHAR)(0xFA & 0xff)); /* ARABIC SUKUN */ case 0x00FB: return((CHAR)(0xFB & 0xff)); /* SMALL LETTER U WITH CIRCUMFLEX */ case 0x00FC: return((CHAR)(0xFC & 0xff)); /* SMALL LETTER U WITH DIAERESIS */ case 0x200E: return((CHAR)(0xFD & 0xff)); /* LEFT-TO-RIGHT MARK */ case 0x200F: return((CHAR)(0xFE & 0xff)); /* RIGHT-TO-LEFT MARK */ default: return(0x003f); } } int /* Windows Code Page 1257 (Latin-4) */ #ifdef CK_ANSIC tx_cp1257(USHORT c) #else tx_cp1257(c) USHORT c; #endif /* CK_ANSIC */ { if (c < 0x80) return((CHAR)(c & 0xff)); switch (c) { case 0x003c: return((CHAR)(0x8b & 0xff)); case 0x003e: return((CHAR)(0x9b & 0xff)); case 0x00A0: return((CHAR)(0xa0 & 0xff)); case 0x00A2: return((CHAR)(0xa2 & 0xff)); case 0x00A3: return((CHAR)(0xa3 & 0xff)); case 0x00A4: return((CHAR)(0xa4 & 0xff)); case 0x00A6: return((CHAR)(0xa6 & 0xff)); case 0x00A7: return((CHAR)(0xa7 & 0xff)); case 0x00A9: return((CHAR)(0xa9 & 0xff)); case 0x00AB: return((CHAR)(0xab & 0xff)); case 0x00AC: return((CHAR)(0xac & 0xff)); case 0x00AD: return((CHAR)(0xad & 0xff)); case 0x00AE: return((CHAR)(0xae & 0xff)); case 0x00B0: return((CHAR)(0xb0 & 0xff)); case 0x00B1: return((CHAR)(0xb1 & 0xff)); case 0x00B2: return((CHAR)(0xb2 & 0xff)); case 0x00B3: return((CHAR)(0xb3 & 0xff)); case 0x00B5: return((CHAR)(0xb5 & 0xff)); case 0x00B6: return((CHAR)(0xb6 & 0xff)); case 0x00B7: return((CHAR)(0xb7 & 0xff)); case 0x00B9: return((CHAR)(0xb9 & 0xff)); case 0x00BB: return((CHAR)(0xbb & 0xff)); case 0x00BC: return((CHAR)(0xbc & 0xff)); case 0x00BD: return((CHAR)(0xbd & 0xff)); case 0x00BE: return((CHAR)(0xbe & 0xff)); case 0x00C4: return((CHAR)(0xc4 & 0xff)); case 0x00C5: return((CHAR)(0xc5 & 0xff)); case 0x00c6: return((CHAR)(0xaf & 0xff)); case 0x00C9: return((CHAR)(0xc9 & 0xff)); case 0x00d3: return((CHAR)(0xd3 & 0xff)); case 0x00D5: return((CHAR)(0xd5 & 0xff)); case 0x00D6: return((CHAR)(0xd6 & 0xff)); case 0x00D7: return((CHAR)(0xd7 & 0xff)); case 0x00d8: return((CHAR)(0xa8 & 0xff)); case 0x00DC: return((CHAR)(0xdc & 0xff)); case 0x00DF: return((CHAR)(0xdf & 0xff)); case 0x00E4: return((CHAR)(0xe4 & 0xff)); case 0x00E5: return((CHAR)(0xe5 & 0xff)); case 0x00e6: return((CHAR)(0xbf & 0xff)); case 0x00E9: return((CHAR)(0xe9 & 0xff)); case 0x00f3: return((CHAR)(0xf3 & 0xff)); case 0x00F5: return((CHAR)(0xf5 & 0xff)); case 0x00F6: return((CHAR)(0xf6 & 0xff)); case 0x00F7: return((CHAR)(0xf7 & 0xff)); case 0x00f8: return((CHAR)(0xb8 & 0xff)); case 0x00fc: return((CHAR)(0xfc & 0xff)); case 0x0100: return((CHAR)(0xc2 & 0xff)); case 0x0101: return((CHAR)(0xe2 & 0xff)); case 0x0104: return((CHAR)(0xc0 & 0xff)); case 0x0105: return((CHAR)(0xe0 & 0xff)); case 0x0106: return((CHAR)(0xc3 & 0xff)); case 0x0107: return((CHAR)(0xe3 & 0xff)); case 0x010C: return((CHAR)(0xc8 & 0xff)); case 0x010D: return((CHAR)(0xe8 & 0xff)); case 0x0112: return((CHAR)(0xc7 & 0xff)); case 0x0113: return((CHAR)(0xe7 & 0xff)); case 0x0116: return((CHAR)(0xcb & 0xff)); case 0x0117: return((CHAR)(0xeb & 0xff)); case 0x0118: return((CHAR)(0xc6 & 0xff)); case 0x0119: return((CHAR)(0xe6 & 0xff)); case 0x0122: return((CHAR)(0xcc & 0xff)); case 0x0123: return((CHAR)(0xec & 0xff)); case 0x012a: return((CHAR)(0xce & 0xff)); case 0x012b: return((CHAR)(0xee & 0xff)); case 0x012e: return((CHAR)(0xc1 & 0xff)); case 0x012f: return((CHAR)(0xe1 & 0xff)); case 0x0136: return((CHAR)(0xcd & 0xff)); case 0x0137: return((CHAR)(0xed & 0xff)); case 0x013c: return((CHAR)(0xef & 0xff)); case 0x0141: return((CHAR)(0xd9 & 0xff)); case 0x0142: return((CHAR)(0xf9 & 0xff)); case 0x0143: return((CHAR)(0xd1 & 0xff)); case 0x0144: return((CHAR)(0xf1 & 0xff)); case 0x0145: return((CHAR)(0xd2 & 0xff)); case 0x0146: return((CHAR)(0xf2 & 0xff)); case 0x014c: return((CHAR)(0xd4 & 0xff)); case 0x014d: return((CHAR)(0xf4 & 0xff)); case 0x0156: return((CHAR)(0xaa & 0xff)); case 0x0157: return((CHAR)(0xba & 0xff)); case 0x015A: return((CHAR)(0xda & 0xff)); case 0x015b: return((CHAR)(0xfa & 0xff)); case 0x0160: return((CHAR)(0xd0 & 0xff)); case 0x0161: return((CHAR)(0xf0 & 0xff)); case 0x016a: return((CHAR)(0xdb & 0xff)); case 0x016b: return((CHAR)(0xfb & 0xff)); case 0x0172: return((CHAR)(0xd8 & 0xff)); case 0x0173: return((CHAR)(0xf8 & 0xff)); case 0x0179: return((CHAR)(0xca & 0xff)); case 0x017a: return((CHAR)(0xea & 0xff)); case 0x017b: return((CHAR)(0xdd & 0xff)); case 0x017c: return((CHAR)(0xfd & 0xff)); case 0x017d: return((CHAR)(0xde & 0xff)); case 0x017e: return((CHAR)(0xfe & 0xff)); case 0x2012: return((CHAR)(0x96 & 0xff)); case 0x2014: return((CHAR)(0x97 & 0xff)); case 0x2018: return((CHAR)(0x91 & 0xff)); case 0x2019: return((CHAR)(0x92 & 0xff)); case 0x201a: return((CHAR)(0x82 & 0xff)); case 0x201c: return((CHAR)(0x93 & 0xff)); case 0x201d: return((CHAR)(0x94 & 0xff)); case 0x201e: return((CHAR)(0x84 & 0xff)); case 0x2020: return((CHAR)(0x86 & 0xff)); case 0x2021: return((CHAR)(0x87 & 0xff)); case 0x2022: return((CHAR)(0x95 & 0xff)); case 0x2026: return((CHAR)(0x85 & 0xff)); case 0x2031: return((CHAR)(0x89 & 0xff)); case 0x20AC: /* Euro */ return((CHAR)(0x80 & 0xff)); case 0x2122: return((CHAR)(0x99 & 0xff)); default: return(0x003f); } } int /* Windows Code Page 1258 (Viet Nam) */ #ifdef CK_ANSIC tx_cp1258(USHORT c) #else tx_cp1258(c) USHORT c; #endif /* CK_ANSIC */ { if (c < 0x80) /* Has C1 graphics */ return((CHAR)(c & 0xff)); switch (c) { case 0x20AC: return((CHAR)(0x80 & 0xff)); /* EURO SIGN */ case 0x201A: return((CHAR)(0x82 & 0xff)); /* SINGLE LOW-9 QUOTATION MARK */ case 0x0192: return((CHAR)(0x83 & 0xff)); /* LATIN SMALL LETTER F WITH HOOK */ case 0x201E: return((CHAR)(0x84 & 0xff)); /* DOUBLE LOW-9 QUOTATION MARK */ case 0x2026: return((CHAR)(0x85 & 0xff)); /* HORIZONTAL ELLIPSIS */ case 0x2020: return((CHAR)(0x86 & 0xff)); /* DAGGER */ case 0x2021: return((CHAR)(0x87 & 0xff)); /* DOUBLE DAGGER */ case 0x02C6: return((CHAR)(0x88 & 0xff)); /* MODIFIER LETTER CIRCUMFLEX ACCENT */ case 0x2030: return((CHAR)(0x89 & 0xff)); /* PER MILLE SIGN */ case 0x2039: return((CHAR)(0x8B & 0xff)); /* SINGLE LEFT ANGLE QUOTATION MARK */ case 0x0152: return((CHAR)(0x8C & 0xff)); /* LATIN CAPITAL LIGATURE OE */ case 0x2018: return((CHAR)(0x91 & 0xff)); /* LEFT SINGLE QUOTATION MARK */ case 0x2019: return((CHAR)(0x92 & 0xff)); /* RIGHT SINGLE QUOTATION MARK */ case 0x201C: return((CHAR)(0x93 & 0xff)); /* LEFT DOUBLE QUOTATION MARK */ case 0x201D: return((CHAR)(0x94 & 0xff)); /* RIGHT DOUBLE QUOTATION MARK */ case 0x2022: return((CHAR)(0x95 & 0xff)); /* BULLET */ case 0x2013: return((CHAR)(0x96 & 0xff)); /* EN DASH */ case 0x2014: return((CHAR)(0x97 & 0xff)); /* EM DASH */ case 0x02DC: return((CHAR)(0x98 & 0xff)); /* SMALL TILDE */ case 0x2122: return((CHAR)(0x99 & 0xff)); /* TRADE MARK SIGN */ case 0x203A: /* SINGLE RIGHT-POINTING ANGLE QUOTATION MAR K*/ return((CHAR)(0x9B & 0xff)); case 0x0153: return((CHAR)(0x9C & 0xff)); /* LATIN SMALL LIGATURE OE */ case 0x0178: /* LATIN CAPITAL LETTER Y WITH DIAERESIS */ return((CHAR)(0x9F & 0xff)); case 0x00A0: return((CHAR)(0xA0 & 0xff)); /* NO-BREAK SPACE */ case 0x00A1: return((CHAR)(0xA1 & 0xff)); /* INVERTED EXCLAMATION MARK */ case 0x00A2: return((CHAR)(0xA2 & 0xff)); /* CENT SIGN */ case 0x00A3: return((CHAR)(0xA3 & 0xff)); /* POUND SIGN */ case 0x00A4: return((CHAR)(0xA4 & 0xff)); /* CURRENCY SIGN */ case 0x00A5: return((CHAR)(0xA5 & 0xff)); /* YEN SIGN */ case 0x00A6: return((CHAR)(0xA6 & 0xff)); /* BROKEN BAR */ case 0x00A7: return((CHAR)(0xA7 & 0xff)); /* SECTION SIGN */ case 0x00A8: return((CHAR)(0xA8 & 0xff)); /* DIAERESIS */ case 0x00A9: return((CHAR)(0xA9 & 0xff)); /* COPYRIGHT SIGN */ case 0x00AA: return((CHAR)(0xAA & 0xff)); /* FEMININE ORDINAL INDICATOR */ case 0x00AB: /* LEFT-POINTING DOUBLE ANGLE QUOTATION MARK */ return((CHAR)(0xAB & 0xff)); case 0x00AC: return((CHAR)(0xAC & 0xff)); /* NOT SIGN */ case 0x00AD: return((CHAR)(0xAD & 0xff)); /* SOFT HYPHEN */ case 0x00AE: return((CHAR)(0xAE & 0xff)); /* REGISTERED SIGN */ case 0x00AF: return((CHAR)(0xAF & 0xff)); /* MACRON */ case 0x00B0: return((CHAR)(0xB0 & 0xff)); /* DEGREE SIGN */ case 0x00B1: return((CHAR)(0xB1 & 0xff)); /* PLUS-MINUS SIGN */ case 0x00B2: return((CHAR)(0xB2 & 0xff)); /* SUPERSCRIPT TWO */ case 0x00B3: return((CHAR)(0xB3 & 0xff)); /* SUPERSCRIPT THREE */ case 0x00B4: return((CHAR)(0xB4 & 0xff)); /* ACUTE ACCENT */ case 0x00B5: return((CHAR)(0xB5 & 0xff)); /* MICRO SIGN */ case 0x00B6: return((CHAR)(0xB6 & 0xff)); /* PILCROW SIGN */ case 0x00B7: return((CHAR)(0xB7 & 0xff)); /* MIDDLE DOT */ case 0x00B8: return((CHAR)(0xB8 & 0xff)); /* CEDILLA */ case 0x00B9: return((CHAR)(0xB9 & 0xff)); /* SUPERSCRIPT ONE */ case 0x00BA: return((CHAR)(0xBA & 0xff)); /* MASCULINE ORDINAL INDICATOR */ case 0x00BB: /* RIGHT-POINTING DOUBLE ANGLE QUOTATION MAR K*/ return((CHAR)(0xBB & 0xff)); case 0x00BC: return((CHAR)(0xBC & 0xff)); /* VULGAR FRACTION ONE QUARTER */ case 0x00BD: return((CHAR)(0xBD & 0xff)); /* VULGAR FRACTION ONE HALF */ case 0x00BE: return((CHAR)(0xBE & 0xff)); /* VULGAR FRACTION THREE QUARTERS */ case 0x00BF: return((CHAR)(0xBF & 0xff)); /* INVERTED QUESTION MARK */ case 0x00C0: return((CHAR)(0xC0 & 0xff)); /* LATIN CAPITAL LETTER A WITH GRAVE */ case 0x00C1: return((CHAR)(0xC1 & 0xff)); /* LATIN CAPITAL LETTER A WITH ACUTE */ case 0x00C2: return((CHAR)(0xC2 & 0xff)); /* A CIRCUMFLEX */ case 0x0102: return((CHAR)(0xC3 & 0xff)); /* LATIN CAPITAL LETTER A WITH BREVE */ case 0x00C4: return((CHAR)(0xC4 & 0xff)); /* A DIAERESIS */ case 0x00C5: return((CHAR)(0xC5 & 0xff)); /* A RING */ case 0x00C6: return((CHAR)(0xC6 & 0xff)); /* LATIN CAPITAL LETTER AE */ case 0x00C7: return((CHAR)(0xC7 & 0xff)); /* C CEDILLA */ case 0x00C8: return((CHAR)(0xC8 & 0xff)); /* E GRAVE */ case 0x00C9: return((CHAR)(0xC9 & 0xff)); /* LATIN CAPITAL LETTER E WITH ACUTE */ case 0x00CA: return((CHAR)(0xCA & 0xff)); /* E WITH CIRCUMFLEX */ case 0x00CB: return((CHAR)(0xCB & 0xff)); /* E WITH DIAERESIS */ case 0x0300: return((CHAR)(0xCC & 0xff)); /* COMBINING GRAVE ACCENT */ case 0x00CD: return((CHAR)(0xCD & 0xff)); /* I WITH ACUTE */ case 0x00CE: return((CHAR)(0xCE & 0xff)); /* I WITH CIRCUMFLEX */ case 0x00CF: return((CHAR)(0xCF & 0xff)); /* I WITH DIAERESIS */ case 0x0110: return((CHAR)(0xD0 & 0xff)); /* D WITH STROKE */ case 0x00D1: return((CHAR)(0xD1 & 0xff)); /* LATIN CAPITAL LETTER N WITH TILDE */ case 0x0309: return((CHAR)(0xD2 & 0xff)); /* COMBINING HOOK ABOVE */ case 0x00D3: return((CHAR)(0xD3 & 0xff)); /* LATIN CAPITAL LETTER O WITH ACUTE */ case 0x00D4: return((CHAR)(0xD4 & 0xff)); /* O WITH CIRCUMFLEX */ case 0x01A0: return((CHAR)(0xD5 & 0xff)); /* LATIN CAPITAL LETTER O WITH HORN */ case 0x00D6: return((CHAR)(0xD6 & 0xff)); /* O WITH DIAERESIS */ case 0x00D7: return((CHAR)(0xD7 & 0xff)); /* MULTIPLICATION SIGN */ case 0x00D8: return((CHAR)(0xD8 & 0xff)); /* O WITH STROKE */ case 0x00D9: return((CHAR)(0xD9 & 0xff)); /* LATIN CAPITAL LETTER U WITH GRAVE */ case 0x00DA: return((CHAR)(0xDA & 0xff)); /* LATIN CAPITAL LETTER U WITH ACUTE */ case 0x00DB: return((CHAR)(0xDB & 0xff)); /* U WITH CIRCUMFLEX */ case 0x00DC: return((CHAR)(0xDC & 0xff)); /* U WITH DIAERESIS */ case 0x01AF: return((CHAR)(0xDD & 0xff)); /* LATIN CAPITAL LETTER U WITH HORN */ case 0x0303: return((CHAR)(0xDE & 0xff)); /* COMBINING TILDE */ case 0x00DF: return((CHAR)(0xDF & 0xff)); /* LATIN SMALL LETTER SHARP S */ case 0x00E0: return((CHAR)(0xE0 & 0xff)); /* LATIN SMALL LETTER A WITH GRAVE */ case 0x00E1: return((CHAR)(0xE1 & 0xff)); /* LATIN SMALL LETTER A WITH ACUTE */ case 0x00E2: return((CHAR)(0xE2 & 0xff)); /* SMALL A WITH CIRCUMFLEX */ case 0x0103: return((CHAR)(0xE3 & 0xff)); /* LATIN SMALL LETTER A WITH BREVE */ case 0x00E4: return((CHAR)(0xE4 & 0xff)); /* SMALL A WITH DIAERESIS */ case 0x00E5: return((CHAR)(0xE5 & 0xff)); /* SMALL A WITH RING ABOVE */ case 0x00E6: return((CHAR)(0xE6 & 0xff)); /* LATIN SMALL LETTER AE */ case 0x00E7: return((CHAR)(0xE7 & 0xff)); /* LATIN SMALL LETTER C WITH CEDILLA */ case 0x00E8: return((CHAR)(0xE8 & 0xff)); /* LATIN SMALL LETTER E WITH GRAVE */ case 0x00E9: return((CHAR)(0xE9 & 0xff)); /* LATIN SMALL LETTER E WITH ACUTE */ case 0x00EA: return((CHAR)(0xEA & 0xff)); /* SMALL E WITH CIRCUMFLEX */ case 0x00EB: return((CHAR)(0xEB & 0xff)); /* SMALL E WITH DIAERESIS */ case 0x0301: return((CHAR)(0xEC & 0xff)); /* COMBINING ACUTE ACCENT */ case 0x00ED: return((CHAR)(0xED & 0xff)); /* LATIN SMALL LETTER I WITH ACUTE */ case 0x00EE: return((CHAR)(0xEE & 0xff)); /* SMALL I WITH CIRCUMFLEX */ case 0x00EF: return((CHAR)(0xEF & 0xff)); /* SMALL I WITH DIAERESIS */ case 0x0111: return((CHAR)(0xF0 & 0xff)); /* LATIN SMALL LETTER D WITH STROKE */ case 0x00F1: return((CHAR)(0xF1 & 0xff)); /* LATIN SMALL LETTER N WITH TILDE */ case 0x0323: return((CHAR)(0xF2 & 0xff)); /* COMBINING DOT BELOW */ case 0x00F3: return((CHAR)(0xF3 & 0xff)); /* LATIN SMALL LETTER O WITH ACUTE */ case 0x00F4: return((CHAR)(0xF4 & 0xff)); /* SMALL O WITH CIRCUMFLEX */ case 0x01A1: return((CHAR)(0xF5 & 0xff)); /* LATIN SMALL LETTER O WITH HORN */ case 0x00F6: return((CHAR)(0xF6 & 0xff)); /* SMALL O WITH DIAERESIS */ case 0x00F7: return((CHAR)(0xF7 & 0xff)); /* DIVISION SIGN */ case 0x00F8: return((CHAR)(0xF8 & 0xff)); /* LATIN SMALL LETTER O WITH STROKE */ case 0x00F9: return((CHAR)(0xF9 & 0xff)); /* LATIN SMALL LETTER U WITH GRAVE */ case 0x00FA: return((CHAR)(0xFA & 0xff)); /* LATIN SMALL LETTER U WITH ACUTE */ case 0x00FB: return((CHAR)(0xFB & 0xff)); /* SMALL U WITH CIRCUMFLEX */ case 0x00FC: return((CHAR)(0xFC & 0xff)); /* SMALL U WITH DIAERESIS */ case 0x01B0: return((CHAR)(0xFD & 0xff)); /* LATIN SMALL LETTER U WITH HORN */ case 0x20AB: return((CHAR)(0xFE & 0xff)); /* DONG SIGN */ case 0x00FF: return((CHAR)(0xFF & 0xff)); /* SMALL Y WITH DIAERESIS */ default: return(0x003f); } } int /* Code Page 037 - EBCDIC (U.S.) */ #ifdef CK_ANSIC tx_cp37(USHORT c) #else tx_cp37(c) USHORT c; #endif /* CK_ANSIC */ { switch (c) { case 0x0000: return((CHAR)(0x00 & 0xff)); /* NULL */ case 0x0001: return((CHAR)(0x01 & 0xff)); /* START OF HEADING */ case 0x0002: return((CHAR)(0x02 & 0xff)); /* START OF TEXT */ case 0x0003: return((CHAR)(0x03 & 0xff)); /* END OF TEXT */ case 0x009C: return((CHAR)(0x04 & 0xff)); /* CONTROL */ case 0x0009: return((CHAR)(0x05 & 0xff)); /* HORIZONTAL TABULATION */ case 0x0086: return((CHAR)(0x06 & 0xff)); /* CONTROL */ case 0x007F: return((CHAR)(0x07 & 0xff)); /* DELETE */ case 0x0097: return((CHAR)(0x08 & 0xff)); /* CONTROL */ case 0x008D: return((CHAR)(0x09 & 0xff)); /* CONTROL */ case 0x008E: return((CHAR)(0x0A & 0xff)); /* CONTROL */ case 0x000B: return((CHAR)(0x0B & 0xff)); /* VERTICAL TABULATION */ case 0x000C: return((CHAR)(0x0C & 0xff)); /* FORM FEED */ case 0x000D: return((CHAR)(0x0D & 0xff)); /* CARRIAGE RETURN */ case 0x000E: return((CHAR)(0x0E & 0xff)); /* SHIFT OUT */ case 0x000F: return((CHAR)(0x0F & 0xff)); /* SHIFT IN */ case 0x0010: return((CHAR)(0x10 & 0xff)); /* DATA LINK ESCAPE */ case 0x0011: return((CHAR)(0x11 & 0xff)); /* DEVICE CONTROL ONE */ case 0x0012: return((CHAR)(0x12 & 0xff)); /* DEVICE CONTROL TWO */ case 0x0013: return((CHAR)(0x13 & 0xff)); /* DEVICE CONTROL THREE */ case 0x009D: return((CHAR)(0x14 & 0xff)); /* CONTROL */ case 0x0085: return((CHAR)(0x15 & 0xff)); /* CONTROL */ case 0x0008: return((CHAR)(0x16 & 0xff)); /* BACKSPACE */ case 0x0087: return((CHAR)(0x17 & 0xff)); /* CONTROL */ case 0x0018: return((CHAR)(0x18 & 0xff)); /* CANCEL */ case 0x0019: return((CHAR)(0x19 & 0xff)); /* END OF MEDIUM */ case 0x0092: return((CHAR)(0x1A & 0xff)); /* CONTROL */ case 0x008F: return((CHAR)(0x1B & 0xff)); /* CONTROL */ case 0x001C: return((CHAR)(0x1C & 0xff)); /* FILE SEPARATOR */ case 0x001D: return((CHAR)(0x1D & 0xff)); /* GROUP SEPARATOR */ case 0x001E: return((CHAR)(0x1E & 0xff)); /* RECORD SEPARATOR */ case 0x001F: return((CHAR)(0x1F & 0xff)); /* UNIT SEPARATOR */ case 0x0080: return((CHAR)(0x20 & 0xff)); /* CONTROL */ case 0x0081: return((CHAR)(0x21 & 0xff)); /* CONTROL */ case 0x0082: return((CHAR)(0x22 & 0xff)); /* CONTROL */ case 0x0083: return((CHAR)(0x23 & 0xff)); /* CONTROL */ case 0x0084: return((CHAR)(0x24 & 0xff)); /* CONTROL */ case 0x000A: return((CHAR)(0x25 & 0xff)); /* LINE FEED */ case 0x0017: return((CHAR)(0x26 & 0xff)); /* END OF TRANSMISSION BLOCK */ case 0x001B: return((CHAR)(0x27 & 0xff)); /* ESCAPE */ case 0x0088: return((CHAR)(0x28 & 0xff)); /* CONTROL */ case 0x0089: return((CHAR)(0x29 & 0xff)); /* CONTROL */ case 0x008A: return((CHAR)(0x2A & 0xff)); /* CONTROL */ case 0x008B: return((CHAR)(0x2B & 0xff)); /* CONTROL */ case 0x008C: return((CHAR)(0x2C & 0xff)); /* CONTROL */ case 0x0005: return((CHAR)(0x2D & 0xff)); /* ENQUIRY */ case 0x0006: return((CHAR)(0x2E & 0xff)); /* ACKNOWLEDGE */ case 0x0007: return((CHAR)(0x2F & 0xff)); /* BELL */ case 0x0090: return((CHAR)(0x30 & 0xff)); /* CONTROL */ case 0x0091: return((CHAR)(0x31 & 0xff)); /* CONTROL */ case 0x0016: return((CHAR)(0x32 & 0xff)); /* SYNCHRONOUS IDLE */ case 0x0093: return((CHAR)(0x33 & 0xff)); /* CONTROL */ case 0x0094: return((CHAR)(0x34 & 0xff)); /* CONTROL */ case 0x0095: return((CHAR)(0x35 & 0xff)); /* CONTROL */ case 0x0096: return((CHAR)(0x36 & 0xff)); /* CONTROL */ case 0x0004: return((CHAR)(0x37 & 0xff)); /* END OF TRANSMISSION */ case 0x0098: return((CHAR)(0x38 & 0xff)); /* CONTROL */ case 0x0099: return((CHAR)(0x39 & 0xff)); /* CONTROL */ case 0x009A: return((CHAR)(0x3A & 0xff)); /* CONTROL */ case 0x009B: return((CHAR)(0x3B & 0xff)); /* CONTROL */ case 0x0014: return((CHAR)(0x3C & 0xff)); /* DEVICE CONTROL FOUR */ case 0x0015: return((CHAR)(0x3D & 0xff)); /* NEGATIVE ACKNOWLEDGE */ case 0x009E: return((CHAR)(0x3E & 0xff)); /* CONTROL */ case 0x001A: return((CHAR)(0x3F & 0xff)); /* SUBSTITUTE */ case 0x0020: return((CHAR)(0x40 & 0xff)); /* SPACE */ case 0x00A0: return((CHAR)(0x41 & 0xff)); /* NO-BREAK SPACE */ case 0x00E2: return((CHAR)(0x42 & 0xff)); /* SMALL LETTER A WITH CIRCUMFLEX */ case 0x00E4: return((CHAR)(0x43 & 0xff)); /* SMALL LETTER A WITH DIAERESIS */ case 0x00E0: return((CHAR)(0x44 & 0xff)); /* LATIN SMALL LETTER A WITH GRAVE */ case 0x00E1: return((CHAR)(0x45 & 0xff)); /* LATIN SMALL LETTER A WITH ACUTE */ case 0x00E3: return((CHAR)(0x46 & 0xff)); /* LATIN SMALL LETTER A WITH TILDE */ case 0x00E5: return((CHAR)(0x47 & 0xff)); /* SMALL LETTER A WITH RING ABOVE */ case 0x00E7: return((CHAR)(0x48 & 0xff)); /* LATIN SMALL LETTER C WITH CEDILLA */ case 0x00F1: return((CHAR)(0x49 & 0xff)); /* LATIN SMALL LETTER N WITH TILDE */ case 0x00A2: return((CHAR)(0x4A & 0xff)); /* CENT SIGN */ case 0x002E: return((CHAR)(0x4B & 0xff)); /* FULL STOP */ case 0x003C: return((CHAR)(0x4C & 0xff)); /* LESS-THAN SIGN */ case 0x0028: return((CHAR)(0x4D & 0xff)); /* LEFT PARENTHESIS */ case 0x002B: return((CHAR)(0x4E & 0xff)); /* PLUS SIGN */ case 0x007C: return((CHAR)(0x4F & 0xff)); /* VERTICAL LINE */ case 0x0026: return((CHAR)(0x50 & 0xff)); /* AMPERSAND */ case 0x00E9: return((CHAR)(0x51 & 0xff)); /* SMALL LETTER E WITH ACUTE */ case 0x00EA: return((CHAR)(0x52 & 0xff)); /* SMALL LETTER E WITH CIRCUMFLEX */ case 0x00EB: return((CHAR)(0x53 & 0xff)); /* SMALL LETTER E WITH DIAERESIS */ case 0x00E8: return((CHAR)(0x54 & 0xff)); /* LATIN SMALL LETTER E WITH GRAVE */ case 0x00ED: return((CHAR)(0x55 & 0xff)); /* LATIN SMALL LETTER I WITH ACUTE */ case 0x00EE: return((CHAR)(0x56 & 0xff)); /* SMALL LETTER I WITH CIRCUMFLEX */ case 0x00EF: return((CHAR)(0x57 & 0xff)); /* SMALL LETTER I WITH DIAERESIS */ case 0x00EC: return((CHAR)(0x58 & 0xff)); /* LATIN SMALL LETTER I WITH GRAVE */ case 0x00DF: return((CHAR)(0x59 & 0xff)); /* SMALL LETTER SHARP S (GERMAN) */ case 0x0021: return((CHAR)(0x5A & 0xff)); /* EXCLAMATION MARK */ case 0x0024: return((CHAR)(0x5B & 0xff)); /* DOLLAR SIGN */ case 0x002A: return((CHAR)(0x5C & 0xff)); /* ASTERISK */ case 0x0029: return((CHAR)(0x5D & 0xff)); /* RIGHT PARENTHESIS */ case 0x003B: return((CHAR)(0x5E & 0xff)); /* SEMICOLON */ case 0x00AC: return((CHAR)(0x5F & 0xff)); /* NOT SIGN */ case 0x002D: return((CHAR)(0x60 & 0xff)); /* HYPHEN-MINUS */ case 0x002F: return((CHAR)(0x61 & 0xff)); /* SOLIDUS */ case 0x00C2: return((CHAR)(0x62 & 0xff)); /* CAPITAL LETTER A WITH CIRCUMFLEX */ case 0x00C4: return((CHAR)(0x63 & 0xff)); /* CAPITAL LETTER A WITH DIAERESIS */ case 0x00C0: return((CHAR)(0x64 & 0xff)); /* LATIN CAPITAL LETTER A WITH GRAVE */ case 0x00C1: return((CHAR)(0x65 & 0xff)); /* LATIN CAPITAL LETTER A WITH ACUTE */ case 0x00C3: return((CHAR)(0x66 & 0xff)); /* LATIN CAPITAL LETTER A WITH TILDE */ case 0x00C5: return((CHAR)(0x67 & 0xff)); /* CAPITAL LETTER A WITH RING ABOVE */ case 0x00C7: return((CHAR)(0x68 & 0xff)); /* CAPITAL LETTER C WITH CEDILLA */ case 0x00D1: return((CHAR)(0x69 & 0xff)); /* LATIN CAPITAL LETTER N WITH TILDE */ case 0x00A6: return((CHAR)(0x6A & 0xff)); /* BROKEN BAR */ case 0x002C: return((CHAR)(0x6B & 0xff)); /* COMMA */ case 0x0025: return((CHAR)(0x6C & 0xff)); /* PERCENT SIGN */ case 0x005F: return((CHAR)(0x6D & 0xff)); /* LOW LINE */ case 0x003E: return((CHAR)(0x6E & 0xff)); /* GREATER-THAN SIGN */ case 0x003F: return((CHAR)(0x6F & 0xff)); /* QUESTION MARK */ case 0x00F8: return((CHAR)(0x70 & 0xff)); /* LATIN SMALL LETTER O WITH STROKE */ case 0x00C9: return((CHAR)(0x71 & 0xff)); /* LATIN CAPITAL LETTER E WITH ACUTE */ case 0x00CA: /* LATIN CAPITAL LETTER E WITH CIRCUMFLEX */ return((CHAR)(0x72 & 0xff)); case 0x00CB: /* LATIN CAPITAL LETTER E WITH DIAERESIS */ return((CHAR)(0x73 & 0xff)); case 0x00C8: return((CHAR)(0x74 & 0xff)); /* LATIN CAPITAL LETTER E WITH GRAVE */ case 0x00CD: return((CHAR)(0x75 & 0xff)); /* LATIN CAPITAL LETTER I WITH ACUTE */ case 0x00CE: /* LATIN CAPITAL LETTER I WITH CIRCUMFLEX */ return((CHAR)(0x76 & 0xff)); case 0x00CF: /* LATIN CAPITAL LETTER I WITH DIAERESIS */ return((CHAR)(0x77 & 0xff)); case 0x00CC: return((CHAR)(0x78 & 0xff)); /* LATIN CAPITAL LETTER I WITH GRAVE */ case 0x0060: return((CHAR)(0x79 & 0xff)); /* GRAVE ACCENT */ case 0x003A: return((CHAR)(0x7A & 0xff)); /* COLON */ case 0x0023: return((CHAR)(0x7B & 0xff)); /* NUMBER SIGN */ case 0x0040: return((CHAR)(0x7C & 0xff)); /* COMMERCIAL AT */ case 0x0027: return((CHAR)(0x7D & 0xff)); /* APOSTROPHE */ case 0x003D: return((CHAR)(0x7E & 0xff)); /* EQUALS SIGN */ case 0x0022: return((CHAR)(0x7F & 0xff)); /* QUOTATION MARK */ case 0x00D8: /* LATIN CAPITAL LETTER O WITH STROKE */ return((CHAR)(0x80 & 0xff)); case 0x0061: return((CHAR)(0x81 & 0xff)); /* LATIN SMALL LETTER A */ case 0x0062: return((CHAR)(0x82 & 0xff)); /* LATIN SMALL LETTER B */ case 0x0063: return((CHAR)(0x83 & 0xff)); /* LATIN SMALL LETTER C */ case 0x0064: return((CHAR)(0x84 & 0xff)); /* LATIN SMALL LETTER D */ case 0x0065: return((CHAR)(0x85 & 0xff)); /* LATIN SMALL LETTER E */ case 0x0066: return((CHAR)(0x86 & 0xff)); /* LATIN SMALL LETTER F */ case 0x0067: return((CHAR)(0x87 & 0xff)); /* LATIN SMALL LETTER G */ case 0x0068: return((CHAR)(0x88 & 0xff)); /* LATIN SMALL LETTER H */ case 0x0069: return((CHAR)(0x89 & 0xff)); /* LATIN SMALL LETTER I */ case 0x00AB: /* LEFT-POINTING DOUBLE ANGLE QUOTATION MARK */ return((CHAR)(0x8A & 0xff)); case 0x00BB: /* RIGHT-POINTING DOUBLE ANGLE QUOTATION MAR K*/ return((CHAR)(0x8B & 0xff)); case 0x00F0: /* LATIN SMALL LETTER ETH (ICELANDIC) */ return((CHAR)(0x8C & 0xff)); case 0x00FD: return((CHAR)(0x8D & 0xff)); /* LATIN SMALL LETTER Y WITH ACUTE */ case 0x00FE: /* LATIN SMALL LETTER THORN (ICELANDIC) */ return((CHAR)(0x8E & 0xff)); case 0x00B1: return((CHAR)(0x8F & 0xff)); /* PLUS-MINUS SIGN */ case 0x00B0: return((CHAR)(0x90 & 0xff)); /* DEGREE SIGN */ case 0x006A: return((CHAR)(0x91 & 0xff)); /* LATIN SMALL LETTER J */ case 0x006B: return((CHAR)(0x92 & 0xff)); /* LATIN SMALL LETTER K */ case 0x006C: return((CHAR)(0x93 & 0xff)); /* LATIN SMALL LETTER L */ case 0x006D: return((CHAR)(0x94 & 0xff)); /* LATIN SMALL LETTER M */ case 0x006E: return((CHAR)(0x95 & 0xff)); /* LATIN SMALL LETTER N */ case 0x006F: return((CHAR)(0x96 & 0xff)); /* LATIN SMALL LETTER O */ case 0x0070: return((CHAR)(0x97 & 0xff)); /* LATIN SMALL LETTER P */ case 0x0071: return((CHAR)(0x98 & 0xff)); /* LATIN SMALL LETTER Q */ case 0x0072: return((CHAR)(0x99 & 0xff)); /* LATIN SMALL LETTER R */ case 0x00AA: return((CHAR)(0x9A & 0xff)); /* FEMININE ORDINAL INDICATOR */ case 0x00BA: return((CHAR)(0x9B & 0xff)); /* MASCULINE ORDINAL INDICATOR */ case 0x00E6: return((CHAR)(0x9C & 0xff)); /* LATIN SMALL LIGATURE AE */ case 0x00B8: return((CHAR)(0x9D & 0xff)); /* CEDILLA */ case 0x00C6: return((CHAR)(0x9E & 0xff)); /* LATIN CAPITAL LIGATURE AE */ case 0x00A4: return((CHAR)(0x9F & 0xff)); /* CURRENCY SIGN */ case 0x00B5: return((CHAR)(0xA0 & 0xff)); /* MICRO SIGN */ case 0x007E: return((CHAR)(0xA1 & 0xff)); /* TILDE */ case 0x0073: return((CHAR)(0xA2 & 0xff)); /* LATIN SMALL LETTER S */ case 0x0074: return((CHAR)(0xA3 & 0xff)); /* LATIN SMALL LETTER T */ case 0x0075: return((CHAR)(0xA4 & 0xff)); /* LATIN SMALL LETTER U */ case 0x0076: return((CHAR)(0xA5 & 0xff)); /* LATIN SMALL LETTER V */ case 0x0077: return((CHAR)(0xA6 & 0xff)); /* LATIN SMALL LETTER W */ case 0x0078: return((CHAR)(0xA7 & 0xff)); /* LATIN SMALL LETTER X */ case 0x0079: return((CHAR)(0xA8 & 0xff)); /* LATIN SMALL LETTER Y */ case 0x007A: return((CHAR)(0xA9 & 0xff)); /* LATIN SMALL LETTER Z */ case 0x00A1: return((CHAR)(0xAA & 0xff)); /* INVERTED EXCLAMATION MARK */ case 0x00BF: return((CHAR)(0xAB & 0xff)); /* INVERTED QUESTION MARK */ case 0x00D0: /* LATIN CAPITAL LETTER ETH (ICELANDIC) */ return((CHAR)(0xAC & 0xff)); case 0x00DD: return((CHAR)(0xAD & 0xff)); /* LATIN CAPITAL LETTER Y WITH ACUTE */ case 0x00DE: /* LATIN CAPITAL LETTER THORN (ICELANDIC) */ return((CHAR)(0xAE & 0xff)); case 0x00AE: return((CHAR)(0xAF & 0xff)); /* REGISTERED SIGN */ case 0x005E: return((CHAR)(0xB0 & 0xff)); /* CIRCUMFLEX ACCENT */ case 0x00A3: return((CHAR)(0xB1 & 0xff)); /* POUND SIGN */ case 0x00A5: return((CHAR)(0xB2 & 0xff)); /* YEN SIGN */ case 0x00B7: return((CHAR)(0xB3 & 0xff)); /* MIDDLE DOT */ case 0x00A9: return((CHAR)(0xB4 & 0xff)); /* COPYRIGHT SIGN */ case 0x00A7: return((CHAR)(0xB5 & 0xff)); /* SECTION SIGN */ case 0x00B6: return((CHAR)(0xB6 & 0xff)); /* PILCROW SIGN */ case 0x00BC: return((CHAR)(0xB7 & 0xff)); /* VULGAR FRACTION ONE QUARTER */ case 0x00BD: return((CHAR)(0xB8 & 0xff)); /* VULGAR FRACTION ONE HALF */ case 0x00BE: return((CHAR)(0xB9 & 0xff)); /* VULGAR FRACTION THREE QUARTERS */ case 0x005B: return((CHAR)(0xBA & 0xff)); /* LEFT SQUARE BRACKET */ case 0x005D: return((CHAR)(0xBB & 0xff)); /* RIGHT SQUARE BRACKET */ case 0x00AF: return((CHAR)(0xBC & 0xff)); /* MACRON */ case 0x00A8: return((CHAR)(0xBD & 0xff)); /* DIAERESIS */ case 0x00B4: return((CHAR)(0xBE & 0xff)); /* ACUTE ACCENT */ case 0x00D7: return((CHAR)(0xBF & 0xff)); /* MULTIPLICATION SIGN */ case 0x007B: return((CHAR)(0xC0 & 0xff)); /* LEFT CURLY BRACKET */ case 0x0041: return((CHAR)(0xC1 & 0xff)); /* LATIN CAPITAL LETTER A */ case 0x0042: return((CHAR)(0xC2 & 0xff)); /* LATIN CAPITAL LETTER B */ case 0x0043: return((CHAR)(0xC3 & 0xff)); /* LATIN CAPITAL LETTER C */ case 0x0044: return((CHAR)(0xC4 & 0xff)); /* LATIN CAPITAL LETTER D */ case 0x0045: return((CHAR)(0xC5 & 0xff)); /* LATIN CAPITAL LETTER E */ case 0x0046: return((CHAR)(0xC6 & 0xff)); /* LATIN CAPITAL LETTER F */ case 0x0047: return((CHAR)(0xC7 & 0xff)); /* LATIN CAPITAL LETTER G */ case 0x0048: return((CHAR)(0xC8 & 0xff)); /* LATIN CAPITAL LETTER H */ case 0x0049: return((CHAR)(0xC9 & 0xff)); /* LATIN CAPITAL LETTER I */ case 0x00AD: return((CHAR)(0xCA & 0xff)); /* SOFT HYPHEN */ case 0x00F4: return((CHAR)(0xCB & 0xff)); /* SMALL LETTER O WITH CIRCUMFLEX */ case 0x00F6: return((CHAR)(0xCC & 0xff)); /* SMALL LETTER O WITH DIAERESIS */ case 0x00F2: return((CHAR)(0xCD & 0xff)); /* LATIN SMALL LETTER O WITH GRAVE */ case 0x00F3: return((CHAR)(0xCE & 0xff)); /* LATIN SMALL LETTER O WITH ACUTE */ case 0x00F5: return((CHAR)(0xCF & 0xff)); /* LATIN SMALL LETTER O WITH TILDE */ case 0x007D: return((CHAR)(0xD0 & 0xff)); /* RIGHT CURLY BRACKET */ case 0x004A: return((CHAR)(0xD1 & 0xff)); /* LATIN CAPITAL LETTER J */ case 0x004B: return((CHAR)(0xD2 & 0xff)); /* LATIN CAPITAL LETTER K */ case 0x004C: return((CHAR)(0xD3 & 0xff)); /* LATIN CAPITAL LETTER L */ case 0x004D: return((CHAR)(0xD4 & 0xff)); /* LATIN CAPITAL LETTER M */ case 0x004E: return((CHAR)(0xD5 & 0xff)); /* LATIN CAPITAL LETTER N */ case 0x004F: return((CHAR)(0xD6 & 0xff)); /* LATIN CAPITAL LETTER O */ case 0x0050: return((CHAR)(0xD7 & 0xff)); /* LATIN CAPITAL LETTER P */ case 0x0051: return((CHAR)(0xD8 & 0xff)); /* LATIN CAPITAL LETTER Q */ case 0x0052: return((CHAR)(0xD9 & 0xff)); /* LATIN CAPITAL LETTER R */ case 0x00B9: return((CHAR)(0xDA & 0xff)); /* SUPERSCRIPT ONE */ case 0x00FB: return((CHAR)(0xDB & 0xff)); /* SMALL LETTER U WITH CIRCUMFLEX */ case 0x00FC: return((CHAR)(0xDC & 0xff)); /* SMALL LETTER U WITH DIAERESIS */ case 0x00F9: return((CHAR)(0xDD & 0xff)); /* SMALL LETTER U WITH GRAVE */ case 0x00FA: return((CHAR)(0xDE & 0xff)); /* SMALL LETTER U WITH ACUTE */ case 0x00FF: return((CHAR)(0xDF & 0xff)); /* SMALL LETTER Y WITH DIAERESIS */ case 0x005C: return((CHAR)(0xE0 & 0xff)); /* REVERSE SOLIDUS */ case 0x00F7: return((CHAR)(0xE1 & 0xff)); /* DIVISION SIGN */ case 0x0053: return((CHAR)(0xE2 & 0xff)); /* LATIN CAPITAL LETTER S */ case 0x0054: return((CHAR)(0xE3 & 0xff)); /* LATIN CAPITAL LETTER T */ case 0x0055: return((CHAR)(0xE4 & 0xff)); /* LATIN CAPITAL LETTER U */ case 0x0056: return((CHAR)(0xE5 & 0xff)); /* LATIN CAPITAL LETTER V */ case 0x0057: return((CHAR)(0xE6 & 0xff)); /* LATIN CAPITAL LETTER W */ case 0x0058: return((CHAR)(0xE7 & 0xff)); /* LATIN CAPITAL LETTER X */ case 0x0059: return((CHAR)(0xE8 & 0xff)); /* LATIN CAPITAL LETTER Y */ case 0x005A: return((CHAR)(0xE9 & 0xff)); /* LATIN CAPITAL LETTER Z */ case 0x00B2: return((CHAR)(0xEA & 0xff)); /* SUPERSCRIPT TWO */ case 0x00D4: return((CHAR)(0xEB & 0xff)); /* CAPITAL LETTER O WITH CIRCUMFLEX */ case 0x00D6: return((CHAR)(0xEC & 0xff)); /* CAPITAL LETTER O WITH DIAERESIS */ case 0x00D2: return((CHAR)(0xED & 0xff)); /* CAPITAL LETTER O WITH GRAVE */ case 0x00D3: return((CHAR)(0xEE & 0xff)); /* CAPITAL LETTER O WITH ACUTE */ case 0x00D5: return((CHAR)(0xEF & 0xff)); /* CAPITAL LETTER O WITH TILDE */ case 0x0030: return((CHAR)(0xF0 & 0xff)); /* DIGIT ZERO */ case 0x0031: return((CHAR)(0xF1 & 0xff)); /* DIGIT ONE */ case 0x0032: return((CHAR)(0xF2 & 0xff)); /* DIGIT TWO */ case 0x0033: return((CHAR)(0xF3 & 0xff)); /* DIGIT THREE */ case 0x0034: return((CHAR)(0xF4 & 0xff)); /* DIGIT FOUR */ case 0x0035: return((CHAR)(0xF5 & 0xff)); /* DIGIT FIVE */ case 0x0036: return((CHAR)(0xF6 & 0xff)); /* DIGIT SIX */ case 0x0037: return((CHAR)(0xF7 & 0xff)); /* DIGIT SEVEN */ case 0x0038: return((CHAR)(0xF8 & 0xff)); /* DIGIT EIGHT */ case 0x0039: return((CHAR)(0xF9 & 0xff)); /* DIGIT NINE */ case 0x00B3: return((CHAR)(0xFA & 0xff)); /* SUPERSCRIPT THREE */ case 0x00DB: return((CHAR)(0xFB & 0xff)); /* CAPITAL LETTER U WITH CIRCUMFLEX */ case 0x00DC: return((CHAR)(0xFC & 0xff)); /* CAPITAL LETTER U WITH DIAERESIS */ case 0x00D9: return((CHAR)(0xFD & 0xff)); /* LATIN CAPITAL LETTER U WITH GRAVE */ case 0x00DA: return((CHAR)(0xFE & 0xff)); /* LATIN CAPITAL LETTER U WITH ACUTE */ case 0x009F: return((CHAR)(0xFF & 0xff)); /* CONTROL */ default: return(0x003f); } } int /* PC Code Page 855 */ #ifdef CK_ANSIC tx_cp855(USHORT c) #else tx_cp855(c) USHORT c; #endif /* CK_ANSIC */ { if (c < 0x80) /* Has C1 graphics */ return((CHAR)(c & 0xff)); switch (c) { case 0x00a4: return((CHAR)(207 & 0xff)); case 0x00a7: return((CHAR)(253 & 0xff)); case 0x00ab: return((CHAR)(174 & 0xff)); case 0x00bb: return((CHAR)(175 & 0xff)); case 0x0401: return((CHAR)(133 & 0xff)); case 0x0402: return((CHAR)(129 & 0xff)); case 0x0403: return((CHAR)(131 & 0xff)); case 0x0404: return((CHAR)(135 & 0xff)); case 0x0405: return((CHAR)(137 & 0xff)); case 0x0406: return((CHAR)(139 & 0xff)); case 0x0407: return((CHAR)(141 & 0xff)); case 0x0408: return((CHAR)(143 & 0xff)); case 0x0409: return((CHAR)(145 & 0xff)); case 0x040a: return((CHAR)(147 & 0xff)); case 0x040b: return((CHAR)(149 & 0xff)); case 0x040c: return((CHAR)(151 & 0xff)); case 0x040e: return((CHAR)(153 & 0xff)); case 0x040f: return((CHAR)(155 & 0xff)); case 0x0410: return((CHAR)(161 & 0xff)); case 0x0411: return((CHAR)(163 & 0xff)); case 0x0412: return((CHAR)(236 & 0xff)); case 0x0413: return((CHAR)(173 & 0xff)); case 0x0414: return((CHAR)(167 & 0xff)); case 0x0415: return((CHAR)(169 & 0xff)); case 0x0416: return((CHAR)(234 & 0xff)); case 0x0417: return((CHAR)(244 & 0xff)); case 0x0418: return((CHAR)(184 & 0xff)); case 0x0419: return((CHAR)(190 & 0xff)); case 0x041a: return((CHAR)(199 & 0xff)); case 0x041b: return((CHAR)(209 & 0xff)); case 0x041c: return((CHAR)(211 & 0xff)); case 0x041d: return((CHAR)(213 & 0xff)); case 0x041e: return((CHAR)(215 & 0xff)); case 0x041f: return((CHAR)(221 & 0xff)); case 0x0420: return((CHAR)(226 & 0xff)); case 0x0421: return((CHAR)(228 & 0xff)); case 0x0422: return((CHAR)(230 & 0xff)); case 0x0423: return((CHAR)(232 & 0xff)); case 0x0424: return((CHAR)(171 & 0xff)); case 0x0425: return((CHAR)(182 & 0xff)); case 0x0426: return((CHAR)(165 & 0xff)); case 0x0427: return((CHAR)(252 & 0xff)); case 0x0428: return((CHAR)(246 & 0xff)); case 0x0429: return((CHAR)(250 & 0xff)); case 0x042a: return((CHAR)(159 & 0xff)); case 0x042b: return((CHAR)(242 & 0xff)); case 0x042c: return((CHAR)(238 & 0xff)); case 0x042d: return((CHAR)(248 & 0xff)); case 0x042e: return((CHAR)(157 & 0xff)); case 0x042f: return((CHAR)(224 & 0xff)); case 0x0430: return((CHAR)(160 & 0xff)); case 0x0431: return((CHAR)(162 & 0xff)); case 0x0432: return((CHAR)(235 & 0xff)); case 0x0433: return((CHAR)(172 & 0xff)); case 0x0434: return((CHAR)(166 & 0xff)); case 0x0435: return((CHAR)(168 & 0xff)); case 0x0436: return((CHAR)(233 & 0xff)); case 0x0437: return((CHAR)(243 & 0xff)); case 0x0438: return((CHAR)(183 & 0xff)); case 0x0439: return((CHAR)(189 & 0xff)); case 0x043a: return((CHAR)(198 & 0xff)); case 0x043b: return((CHAR)(208 & 0xff)); case 0x043c: return((CHAR)(210 & 0xff)); case 0x043d: return((CHAR)(212 & 0xff)); case 0x043e: return((CHAR)(214 & 0xff)); case 0x043f: return((CHAR)(216 & 0xff)); case 0x0440: return((CHAR)(225 & 0xff)); case 0x0441: return((CHAR)(227 & 0xff)); case 0x0442: return((CHAR)(229 & 0xff)); case 0x0443: return((CHAR)(231 & 0xff)); case 0x0444: return((CHAR)(170 & 0xff)); case 0x0445: return((CHAR)(181 & 0xff)); case 0x0446: return((CHAR)(164 & 0xff)); case 0x0447: return((CHAR)(251 & 0xff)); case 0x0448: return((CHAR)(245 & 0xff)); case 0x0449: return((CHAR)(249 & 0xff)); case 0x044a: return((CHAR)(158 & 0xff)); case 0x044b: return((CHAR)(241 & 0xff)); case 0x044c: return((CHAR)(237 & 0xff)); case 0x044d: return((CHAR)(247 & 0xff)); case 0x044e: return((CHAR)(156 & 0xff)); case 0x044f: return((CHAR)(222 & 0xff)); case 0x0451: return((CHAR)(132 & 0xff)); case 0x0452: return((CHAR)(128 & 0xff)); case 0x0453: return((CHAR)(130 & 0xff)); case 0x0454: return((CHAR)(134 & 0xff)); case 0x0455: return((CHAR)(136 & 0xff)); case 0x0456: return((CHAR)(138 & 0xff)); case 0x0457: return((CHAR)(140 & 0xff)); case 0x0458: return((CHAR)(142 & 0xff)); case 0x0459: return((CHAR)(144 & 0xff)); case 0x045a: return((CHAR)(146 & 0xff)); case 0x045b: return((CHAR)(148 & 0xff)); case 0x045c: return((CHAR)(150 & 0xff)); case 0x045e: return((CHAR)(152 & 0xff)); case 0x045f: return((CHAR)(154 & 0xff)); case 0x2116: return((CHAR)(239 & 0xff)); case 0x2500: return((CHAR)(196 & 0xff)); case 0x2502: return((CHAR)(179 & 0xff)); case 0x250c: return((CHAR)(218 & 0xff)); case 0x2510: return((CHAR)(191 & 0xff)); case 0x2514: return((CHAR)(192 & 0xff)); case 0x2518: return((CHAR)(217 & 0xff)); case 0x251c: return((CHAR)(195 & 0xff)); case 0x2524: return((CHAR)(180 & 0xff)); case 0x252c: return((CHAR)(194 & 0xff)); case 0x2534: return((CHAR)(193 & 0xff)); case 0x253c: return((CHAR)(197 & 0xff)); case 0x2550: return((CHAR)(205 & 0xff)); case 0x2551: return((CHAR)(186 & 0xff)); case 0x2554: return((CHAR)(201 & 0xff)); case 0x2557: return((CHAR)(187 & 0xff)); case 0x255a: return((CHAR)(200 & 0xff)); case 0x255d: return((CHAR)(188 & 0xff)); case 0x2560: return((CHAR)(204 & 0xff)); case 0x2563: return((CHAR)(185 & 0xff)); case 0x2566: return((CHAR)(203 & 0xff)); case 0x2569: return((CHAR)(202 & 0xff)); case 0x256c: return((CHAR)(206 & 0xff)); case 0x2580: return((CHAR)(223 & 0xff)); case 0x2584: return((CHAR)(220 & 0xff)); case 0x2588: return((CHAR)(219 & 0xff)); case 0x2591: return((CHAR)(176 & 0xff)); case 0x2592: return((CHAR)(177 & 0xff)); case 0x2593: return((CHAR)(178 & 0xff)); case 0x25a0: return((CHAR)(254 & 0xff)); default: return(tx_cpsub(c)); /* For box characters etc */ } } int /* PC Code Page 856 */ #ifdef CK_ANSIC tx_cp856(USHORT c) #else tx_cp856(c) USHORT c; #endif /* CK_ANSIC */ { if (c < 0x80) /* Has C1 graphics */ return((CHAR)(c & 0xff)); switch (c) { case 0x00a0: return((CHAR)(0xff & 0xff)); case 0x00a7: return((CHAR)(0xd6 & 0xff)); case 0x00b0: return((CHAR)(0xf8 & 0xff)); case 0x00b1: return((CHAR)(0xf1 & 0xff)); case 0x00b2: return((CHAR)(0xfd & 0xff)); case 0x00b5: return((CHAR)(0xe6 & 0xff)); case 0x00b7: return((CHAR)(0xfa & 0xff)); case 0x00df: return((CHAR)(0xe1 & 0xff)); case 0x00f7: return((CHAR)(0xf6 & 0xff)); case 0x0393: return((CHAR)(0xe2 & 0xff)); case 0x0398: return((CHAR)(0xe9 & 0xff)); case 0x03a3: return((CHAR)(0xe4 & 0xff)); case 0x03a6: return((CHAR)(0xe8 & 0xff)); case 0x03a9: return((CHAR)(0xea & 0xff)); case 0x03b1: return((CHAR)(0xe0 & 0xff)); case 0x03b4: return((CHAR)(0xeb & 0xff)); case 0x03b5: return((CHAR)(0xee & 0xff)); case 0x03c0: return((CHAR)(0xe3 & 0xff)); case 0x03c3: return((CHAR)(0xe5 & 0xff)); case 0x03c4: return((CHAR)(0xe7 & 0xff)); case 0x03c6: return((CHAR)(0xed & 0xff)); case 0x0410: return((CHAR)(0x80 & 0xff)); case 0x0411: return((CHAR)(0x81 & 0xff)); case 0x0412: return((CHAR)(0x82 & 0xff)); case 0x0413: return((CHAR)(0x83 & 0xff)); case 0x0414: return((CHAR)(0x84 & 0xff)); case 0x0415: return((CHAR)(0x85 & 0xff)); case 0x0416: return((CHAR)(0x86 & 0xff)); case 0x0417: return((CHAR)(0x87 & 0xff)); case 0x0418: return((CHAR)(0x88 & 0xff)); case 0x0419: return((CHAR)(0x89 & 0xff)); case 0x041a: return((CHAR)(0x8a & 0xff)); case 0x041b: return((CHAR)(0x8b & 0xff)); case 0x041c: return((CHAR)(0x8c & 0xff)); case 0x041d: return((CHAR)(0x8d & 0xff)); case 0x041e: return((CHAR)(0x8e & 0xff)); case 0x041f: return((CHAR)(0x8f & 0xff)); case 0x0420: return((CHAR)(0x90 & 0xff)); case 0x0421: return((CHAR)(0x91 & 0xff)); case 0x0422: return((CHAR)(0x92 & 0xff)); case 0x0423: return((CHAR)(0x93 & 0xff)); case 0x0424: return((CHAR)(0x94 & 0xff)); case 0x0425: return((CHAR)(0x95 & 0xff)); case 0x0426: return((CHAR)(0x96 & 0xff)); case 0x0427: return((CHAR)(0x97 & 0xff)); case 0x0428: return((CHAR)(0x98 & 0xff)); case 0x0429: return((CHAR)(0x99 & 0xff)); case 0x042a: return((CHAR)(0x9a & 0xff)); case 0x042b: return((CHAR)(0x9b & 0xff)); case 0x042c: return((CHAR)(0x9c & 0xff)); case 0x042d: return((CHAR)(0x9d & 0xff)); case 0x042e: return((CHAR)(0x9e & 0xff)); case 0x042f: return((CHAR)(0x9f & 0xff)); case 0x0430: return((CHAR)(0xa0 & 0xff)); case 0x0431: return((CHAR)(0xa1 & 0xff)); case 0x0432: return((CHAR)(0xa2 & 0xff)); case 0x0433: return((CHAR)(0xa3 & 0xff)); case 0x0434: return((CHAR)(0xa4 & 0xff)); case 0x0435: return((CHAR)(0xa5 & 0xff)); case 0x0436: return((CHAR)(0xa6 & 0xff)); case 0x0437: return((CHAR)(0xa7 & 0xff)); case 0x0438: return((CHAR)(0xa8 & 0xff)); case 0x0439: return((CHAR)(0xa9 & 0xff)); case 0x043a: return((CHAR)(0xaa & 0xff)); case 0x043b: return((CHAR)(0xab & 0xff)); case 0x043c: return((CHAR)(0xac & 0xff)); case 0x043d: return((CHAR)(0xad & 0xff)); case 0x043e: return((CHAR)(0xae & 0xff)); case 0x043f: return((CHAR)(0xaf & 0xff)); case 0x0440: return((CHAR)(0xb0 & 0xff)); case 0x0441: return((CHAR)(0xb1 & 0xff)); case 0x0442: return((CHAR)(0xb2 & 0xff)); case 0x0443: return((CHAR)(0xb3 & 0xff)); case 0x0444: return((CHAR)(0xb4 & 0xff)); case 0x0445: return((CHAR)(0xb5 & 0xff)); case 0x0446: return((CHAR)(0xb6 & 0xff)); case 0x0447: return((CHAR)(0xb7 & 0xff)); case 0x0448: return((CHAR)(0xb8 & 0xff)); case 0x0449: return((CHAR)(0xb9 & 0xff)); case 0x044a: return((CHAR)(0xba & 0xff)); case 0x044b: return((CHAR)(0xbb & 0xff)); case 0x044c: return((CHAR)(0xbc & 0xff)); case 0x044d: return((CHAR)(0xbd & 0xff)); case 0x044e: return((CHAR)(0xbe & 0xff)); case 0x044f: return((CHAR)(0xbf & 0xff)); case 0x207f: return((CHAR)(0xfc & 0xff)); case 0x2116: return((CHAR)(0xd5 & 0xff)); case 0x2219: return((CHAR)(0xf9 & 0xff)); case 0x221a: return((CHAR)(0xfb & 0xff)); case 0x221e: return((CHAR)(0xec & 0xff)); case 0x2229: return((CHAR)(0xef & 0xff)); case 0x2248: return((CHAR)(0xf7 & 0xff)); case 0x2261: return((CHAR)(0xf0 & 0xff)); case 0x2264: return((CHAR)(0xf3 & 0xff)); case 0x2265: return((CHAR)(0xf2 & 0xff)); case 0x2320: return((CHAR)(0xf4 & 0xff)); case 0x2321: return((CHAR)(0xf5 & 0xff)); case 0x2500: return((CHAR)(0xc4 & 0xff)); case 0x2502: return((CHAR)(0xd3 & 0xff)); case 0x250c: return((CHAR)(0xda & 0xff)); case 0x2510: return((CHAR)(0xcf & 0xff)); case 0x2514: return((CHAR)(0xc0 & 0xff)); case 0x2518: return((CHAR)(0xd9 & 0xff)); case 0x251c: return((CHAR)(0xc3 & 0xff)); case 0x2524: return((CHAR)(0xd4 & 0xff)); case 0x252c: return((CHAR)(0xc2 & 0xff)); case 0x2534: return((CHAR)(0xc1 & 0xff)); case 0x253c: return((CHAR)(0xc5 & 0xff)); case 0x2550: return((CHAR)(0xcd & 0xff)); case 0x2551: return((CHAR)(0xc7 & 0xff)); case 0x2554: return((CHAR)(0xc9 & 0xff)); case 0x2557: return((CHAR)(0xd7 & 0xff)); case 0x255a: return((CHAR)(0xc8 & 0xff)); case 0x255d: return((CHAR)(0xd8 & 0xff)); case 0x2560: return((CHAR)(0xcc & 0xff)); case 0x2563: return((CHAR)(0xc6 & 0xff)); case 0x2566: return((CHAR)(0xcb & 0xff)); case 0x2569: return((CHAR)(0xca & 0xff)); case 0x256c: return((CHAR)(0xce & 0xff)); case 0x2580: return((CHAR)(0xdf & 0xff)); case 0x2584: return((CHAR)(0xdc & 0xff)); case 0x2588: return((CHAR)(0xdb & 0xff)); case 0x258c: return((CHAR)(0xdd & 0xff)); case 0x2590: return((CHAR)(0xde & 0xff)); case 0x2591: return((CHAR)(0xd0 & 0xff)); case 0x2592: return((CHAR)(0xd1 & 0xff)); case 0x2593: return((CHAR)(0xd2 & 0xff)); case 0x25a0: return((CHAR)(0xfe & 0xff)); default: return(tx_cpsub(c)); /* For box characters etc */ } } int /* PC Code Page 857 */ #ifdef CK_ANSIC tx_cp857(USHORT c) #else tx_cp857(c) USHORT c; #endif /* CK_ANSIC */ { if (c < 0x80) /* Has C1 graphics */ return((CHAR)(c & 0xff)); switch (c) { case 0x00c7: return((CHAR)(128 & 0xff)); case 0x00fc: return((CHAR)(129 & 0xff)); case 0x00e9: return((CHAR)(130 & 0xff)); case 0x00e2: return((CHAR)(131 & 0xff)); case 0x00e4: return((CHAR)(132 & 0xff)); case 0x00e0: return((CHAR)(133 & 0xff)); case 0x00e5: return((CHAR)(134 & 0xff)); case 0x00e7: return((CHAR)(135 & 0xff)); case 0x00ea: return((CHAR)(136 & 0xff)); case 0x00eb: return((CHAR)(137 & 0xff)); case 0x00e8: return((CHAR)(138 & 0xff)); case 0x00ef: return((CHAR)(139 & 0xff)); case 0x00ee: return((CHAR)(140 & 0xff)); case 0x0131: return((CHAR)(141 & 0xff)); case 0x00c4: return((CHAR)(142 & 0xff)); case 0x00c5: return((CHAR)(143 & 0xff)); case 0x00c9: return((CHAR)(144 & 0xff)); case 0x00e6: return((CHAR)(145 & 0xff)); case 0x00c6: return((CHAR)(146 & 0xff)); case 0x00f4: return((CHAR)(147 & 0xff)); case 0x00f6: return((CHAR)(148 & 0xff)); case 0x00f2: return((CHAR)(149 & 0xff)); case 0x00fb: return((CHAR)(150 & 0xff)); case 0x00f9: return((CHAR)(151 & 0xff)); case 0x0130: return((CHAR)(152 & 0xff)); case 0x00d6: return((CHAR)(153 & 0xff)); case 0x00dc: return((CHAR)(154 & 0xff)); case 0x00f8: return((CHAR)(155 & 0xff)); case 0x00a3: return((CHAR)(156 & 0xff)); case 0x00d8: return((CHAR)(157 & 0xff)); case 0x015e: return((CHAR)(158 & 0xff)); case 0x015f: return((CHAR)(159 & 0xff)); case 0x00e1: return((CHAR)(160 & 0xff)); case 0x00ed: return((CHAR)(161 & 0xff)); case 0x00f3: return((CHAR)(162 & 0xff)); case 0x00fa: return((CHAR)(163 & 0xff)); case 0x00f1: return((CHAR)(164 & 0xff)); case 0x00d1: return((CHAR)(165 & 0xff)); case 0x011e: return((CHAR)(166 & 0xff)); case 0x011f: return((CHAR)(167 & 0xff)); case 0x00bf: return((CHAR)(168 & 0xff)); case 0x00ae: return((CHAR)(169 & 0xff)); case 0x00ac: return((CHAR)(170 & 0xff)); case 0x00bd: return((CHAR)(171 & 0xff)); case 0x00bc: return((CHAR)(172 & 0xff)); case 0x00a1: return((CHAR)(173 & 0xff)); case 0x00ab: return((CHAR)(174 & 0xff)); case 0x00bb: return((CHAR)(175 & 0xff)); case 0x20ac: return((CHAR)(213 & 0xff)); /* Euro */ case 0x2591: return((CHAR)(176 & 0xff)); case 0x2592: return((CHAR)(177 & 0xff)); case 0x2593: return((CHAR)(178 & 0xff)); case 0x2502: return((CHAR)(179 & 0xff)); case 0x2524: return((CHAR)(180 & 0xff)); case 0x00c1: return((CHAR)(181 & 0xff)); case 0x00c2: return((CHAR)(182 & 0xff)); case 0x00c0: return((CHAR)(183 & 0xff)); case 0x00a9: return((CHAR)(184 & 0xff)); case 0x2563: return((CHAR)(185 & 0xff)); case 0x2551: return((CHAR)(186 & 0xff)); case 0x2557: return((CHAR)(187 & 0xff)); case 0x255d: return((CHAR)(188 & 0xff)); case 0x00a2: return((CHAR)(189 & 0xff)); case 0x00a5: return((CHAR)(190 & 0xff)); case 0x2510: return((CHAR)(191 & 0xff)); case 0x2514: return((CHAR)(192 & 0xff)); case 0x2534: return((CHAR)(193 & 0xff)); case 0x252c: return((CHAR)(194 & 0xff)); case 0x251c: return((CHAR)(195 & 0xff)); case 0x2500: return((CHAR)(196 & 0xff)); case 0x253c: return((CHAR)(197 & 0xff)); case 0x00e3: return((CHAR)(198 & 0xff)); case 0x00c3: return((CHAR)(199 & 0xff)); case 0x255a: return((CHAR)(200 & 0xff)); case 0x2554: return((CHAR)(201 & 0xff)); case 0x2569: return((CHAR)(202 & 0xff)); case 0x2566: return((CHAR)(203 & 0xff)); case 0x2560: return((CHAR)(204 & 0xff)); case 0x2550: return((CHAR)(205 & 0xff)); case 0x256c: return((CHAR)(206 & 0xff)); case 0x00a4: return((CHAR)(207 & 0xff)); case 0x00ba: return((CHAR)(208 & 0xff)); case 0x00aa: return((CHAR)(209 & 0xff)); case 0x00ca: return((CHAR)(210 & 0xff)); case 0x00cb: return((CHAR)(211 & 0xff)); case 0x00c8: return((CHAR)(212 & 0xff)); case 0x00cd: return((CHAR)(214 & 0xff)); case 0x00ce: return((CHAR)(215 & 0xff)); case 0x00cf: return((CHAR)(216 & 0xff)); case 0x2518: return((CHAR)(217 & 0xff)); case 0x250c: return((CHAR)(218 & 0xff)); case 0x2588: return((CHAR)(219 & 0xff)); case 0x2584: return((CHAR)(220 & 0xff)); case 0x00a6: return((CHAR)(221 & 0xff)); case 0x00cc: return((CHAR)(222 & 0xff)); case 0x2580: return((CHAR)(223 & 0xff)); case 0x00d3: return((CHAR)(224 & 0xff)); case 0x00df: return((CHAR)(225 & 0xff)); case 0x00d4: return((CHAR)(226 & 0xff)); case 0x00d2: return((CHAR)(227 & 0xff)); case 0x00f5: return((CHAR)(228 & 0xff)); case 0x00d5: return((CHAR)(229 & 0xff)); case 0x00b5: return((CHAR)(230 & 0xff)); case 0x00d7: return((CHAR)(232 & 0xff)); case 0x00da: return((CHAR)(233 & 0xff)); case 0x00db: return((CHAR)(234 & 0xff)); case 0x00d9: return((CHAR)(235 & 0xff)); case 0x00ec: return((CHAR)(236 & 0xff)); case 0x00ff: return((CHAR)(237 & 0xff)); case 0x00af: return((CHAR)(238 & 0xff)); case 0x00b4: return((CHAR)(239 & 0xff)); case 0x00ad: return((CHAR)(240 & 0xff)); case 0x00b1: return((CHAR)(241 & 0xff)); case 0x00be: return((CHAR)(243 & 0xff)); case 0x00b6: return((CHAR)(244 & 0xff)); case 0x00a7: return((CHAR)(245 & 0xff)); case 0x00f7: return((CHAR)(246 & 0xff)); case 0x00b8: return((CHAR)(247 & 0xff)); case 0x00b0: return((CHAR)(248 & 0xff)); case 0x00a8: return((CHAR)(249 & 0xff)); case 0x00b7: return((CHAR)(250 & 0xff)); case 0x00b9: return((CHAR)(251 & 0xff)); case 0x00b3: return((CHAR)(252 & 0xff)); case 0x00b2: return((CHAR)(253 & 0xff)); case 0x25a0: return((CHAR)(254 & 0xff)); case 0x00a0: return((CHAR)(255 & 0xff)); default: return(tx_cpsub(c)); /* For box characters etc */ } } int /* PC Code Page 862 */ #ifdef CK_ANSIC tx_cp862(USHORT c) #else tx_cp862(c) USHORT c; #endif /* CK_ANSIC */ { if (c < 0x80) /* Has C1 graphics */ return((CHAR)(c & 0xff)); switch (c) { case 0x05d0: return((CHAR)(128 & 0xff)); case 0x05d1: return((CHAR)(129 & 0xff)); case 0x05d2: return((CHAR)(130 & 0xff)); case 0x05d3: return((CHAR)(131 & 0xff)); case 0x05d4: return((CHAR)(132 & 0xff)); case 0x05d5: return((CHAR)(133 & 0xff)); case 0x05d6: return((CHAR)(134 & 0xff)); case 0x05d7: return((CHAR)(135 & 0xff)); case 0x05d8: return((CHAR)(136 & 0xff)); case 0x05d9: return((CHAR)(137 & 0xff)); case 0x05da: return((CHAR)(138 & 0xff)); case 0x05db: return((CHAR)(139 & 0xff)); case 0x05dc: return((CHAR)(140 & 0xff)); case 0x05dd: return((CHAR)(141 & 0xff)); case 0x05de: return((CHAR)(142 & 0xff)); case 0x05df: return((CHAR)(143 & 0xff)); case 0x05e0: return((CHAR)(144 & 0xff)); case 0x05e1: return((CHAR)(145 & 0xff)); case 0x05e2: return((CHAR)(146 & 0xff)); case 0x05e3: return((CHAR)(147 & 0xff)); case 0x05e4: return((CHAR)(148 & 0xff)); case 0x05e5: return((CHAR)(149 & 0xff)); case 0x05e6: return((CHAR)(150 & 0xff)); case 0x05e7: return((CHAR)(151 & 0xff)); case 0x05e8: return((CHAR)(152 & 0xff)); case 0x05e9: return((CHAR)(153 & 0xff)); case 0x05ea: return((CHAR)(154 & 0xff)); case 0x00a2: return((CHAR)(155 & 0xff)); case 0x00a3: return((CHAR)(156 & 0xff)); case 0x00a5: return((CHAR)(157 & 0xff)); case 0x20a7: return((CHAR)(158 & 0xff)); case 0x0192: return((CHAR)(159 & 0xff)); case 0x00e1: return((CHAR)(160 & 0xff)); case 0x00ed: return((CHAR)(161 & 0xff)); case 0x00f3: return((CHAR)(162 & 0xff)); case 0x00fa: return((CHAR)(163 & 0xff)); case 0x00f1: return((CHAR)(164 & 0xff)); case 0x00d1: return((CHAR)(165 & 0xff)); case 0x00aa: return((CHAR)(166 & 0xff)); case 0x00ba: return((CHAR)(167 & 0xff)); case 0x00bf: return((CHAR)(168 & 0xff)); case 0x2310: return((CHAR)(169 & 0xff)); case 0x00ac: return((CHAR)(170 & 0xff)); case 0x00bd: return((CHAR)(171 & 0xff)); case 0x00bc: return((CHAR)(172 & 0xff)); case 0x00a1: return((CHAR)(173 & 0xff)); case 0x00ab: return((CHAR)(174 & 0xff)); case 0x00bb: return((CHAR)(175 & 0xff)); case 0x2591: return((CHAR)(176 & 0xff)); case 0x2592: return((CHAR)(177 & 0xff)); case 0x2593: return((CHAR)(178 & 0xff)); case 0x2502: return((CHAR)(179 & 0xff)); case 0x2524: return((CHAR)(180 & 0xff)); case 0x2561: return((CHAR)(181 & 0xff)); case 0x2562: return((CHAR)(182 & 0xff)); case 0x2556: return((CHAR)(183 & 0xff)); case 0x2555: return((CHAR)(184 & 0xff)); case 0x2563: return((CHAR)(185 & 0xff)); case 0x2551: return((CHAR)(186 & 0xff)); case 0x2557: return((CHAR)(187 & 0xff)); case 0x255d: return((CHAR)(188 & 0xff)); case 0x255c: return((CHAR)(189 & 0xff)); case 0x255b: return((CHAR)(190 & 0xff)); case 0x2510: return((CHAR)(191 & 0xff)); case 0x2514: return((CHAR)(192 & 0xff)); case 0x2534: return((CHAR)(193 & 0xff)); case 0x252c: return((CHAR)(194 & 0xff)); case 0x251c: return((CHAR)(195 & 0xff)); case 0x2500: return((CHAR)(196 & 0xff)); case 0x253c: return((CHAR)(197 & 0xff)); case 0x255e: return((CHAR)(198 & 0xff)); case 0x255f: return((CHAR)(199 & 0xff)); case 0x255a: return((CHAR)(200 & 0xff)); case 0x2554: return((CHAR)(201 & 0xff)); case 0x2569: return((CHAR)(202 & 0xff)); case 0x2566: return((CHAR)(203 & 0xff)); case 0x2560: return((CHAR)(204 & 0xff)); case 0x2550: return((CHAR)(205 & 0xff)); case 0x256c: return((CHAR)(206 & 0xff)); case 0x2567: return((CHAR)(207 & 0xff)); case 0x2568: return((CHAR)(208 & 0xff)); case 0x2564: return((CHAR)(209 & 0xff)); case 0x2565: return((CHAR)(210 & 0xff)); case 0x2559: return((CHAR)(211 & 0xff)); case 0x2558: return((CHAR)(212 & 0xff)); case 0x2552: return((CHAR)(213 & 0xff)); case 0x2553: return((CHAR)(214 & 0xff)); case 0x256b: return((CHAR)(215 & 0xff)); case 0x256a: return((CHAR)(216 & 0xff)); case 0x2518: return((CHAR)(217 & 0xff)); case 0x250c: return((CHAR)(218 & 0xff)); case 0x2588: return((CHAR)(219 & 0xff)); case 0x2584: return((CHAR)(220 & 0xff)); case 0x258c: return((CHAR)(221 & 0xff)); case 0x2590: return((CHAR)(222 & 0xff)); case 0x2580: return((CHAR)(223 & 0xff)); case 0x03b1: return((CHAR)(224 & 0xff)); case 0x00df: return((CHAR)(225 & 0xff)); case 0x0393: return((CHAR)(226 & 0xff)); case 0x03c0: return((CHAR)(227 & 0xff)); case 0x03a3: return((CHAR)(228 & 0xff)); case 0x03c3: return((CHAR)(229 & 0xff)); case 0x00b5: return((CHAR)(230 & 0xff)); case 0x03c4: return((CHAR)(231 & 0xff)); case 0x03a6: return((CHAR)(232 & 0xff)); case 0x0398: return((CHAR)(233 & 0xff)); case 0x03a9: return((CHAR)(234 & 0xff)); case 0x03b4: return((CHAR)(235 & 0xff)); case 0x221e: return((CHAR)(236 & 0xff)); case 0x03c6: return((CHAR)(237 & 0xff)); case 0x03b5: return((CHAR)(238 & 0xff)); case 0x2229: return((CHAR)(239 & 0xff)); case 0x2261: return((CHAR)(240 & 0xff)); case 0x00b1: return((CHAR)(241 & 0xff)); case 0x2265: return((CHAR)(242 & 0xff)); case 0x2264: return((CHAR)(243 & 0xff)); case 0x2320: return((CHAR)(244 & 0xff)); case 0x2321: return((CHAR)(245 & 0xff)); case 0x00f7: return((CHAR)(246 & 0xff)); case 0x2248: return((CHAR)(247 & 0xff)); case 0x00b0: return((CHAR)(248 & 0xff)); case 0x2219: return((CHAR)(249 & 0xff)); case 0x00b7: return((CHAR)(250 & 0xff)); case 0x221a: return((CHAR)(251 & 0xff)); case 0x207f: return((CHAR)(252 & 0xff)); case 0x00b2: return((CHAR)(253 & 0xff)); case 0x25a0: return((CHAR)(254 & 0xff)); case 0x00a0: return((CHAR)(255 & 0xff)); default: return(tx_cpsub(c)); /* For box characters etc */ } } int /* PC Code Page 864 */ #ifdef CK_ANSIC tx_cp864(USHORT c) #else tx_cp864(c) USHORT c; #endif /* CK_ANSIC */ { if (c < 0x80) /* Has C1 graphics */ return((CHAR)(c & 0xff)); switch (c) { case 0x00b0: return((CHAR)0x80 & 0xff); case 0x00b7: return((CHAR)0x81 & 0xff); case 0x2219: return((CHAR)0x82 & 0xff); case 0x221a: return((CHAR)0x83 & 0xff); case 0x2592: return((CHAR)0x84 & 0xff); case 0x2500: return((CHAR)0x85 & 0xff); case 0x2502: return((CHAR)0x86 & 0xff); case 0x253c: return((CHAR)0x87 & 0xff); case 0x2524: return((CHAR)0x88 & 0xff); case 0x252c: return((CHAR)0x89 & 0xff); case 0x251c: return((CHAR)0x8a & 0xff); case 0x2534: return((CHAR)0x8b & 0xff); case 0x2510: return((CHAR)0x8c & 0xff); case 0x250c: return((CHAR)0x8d & 0xff); case 0x2514: return((CHAR)0x8e & 0xff); case 0x2518: return((CHAR)0x8f & 0xff); case 0x03b2: return((CHAR)0x90 & 0xff); case 0x221e: return((CHAR)0x91 & 0xff); case 0x03c6: return((CHAR)0x92 & 0xff); case 0x00b1: return((CHAR)0x93 & 0xff); case 0x00bd: return((CHAR)0x94 & 0xff); case 0x00bc: return((CHAR)0x95 & 0xff); case 0x2248: return((CHAR)0x96 & 0xff); case 0x00ab: return((CHAR)0x97 & 0xff); case 0x00bb: return((CHAR)0x98 & 0xff); case 0xfef7: return((CHAR)0x99 & 0xff); case 0xfef8: return((CHAR)0x9a & 0xff); case 0xfefb: return((CHAR)0x9d & 0xff); case 0xfefc: return((CHAR)0x9e & 0xff); case 0x00a0: return((CHAR)0xa0 & 0xff); case 0x00ad: return((CHAR)0xa1 & 0xff); case 0xfe82: return((CHAR)0xa2 & 0xff); case 0x00a3: return((CHAR)0xa3 & 0xff); case 0x00a4: return((CHAR)0xa4 & 0xff); case 0xfe84: return((CHAR)0xa5 & 0xff); case 0xfe8e: return((CHAR)0xa8 & 0xff); case 0xfe8f: return((CHAR)0xa9 & 0xff); case 0xfe95: return((CHAR)0xaa & 0xff); case 0xfe99: return((CHAR)0xab & 0xff); case 0x060c: return((CHAR)0xac & 0xff); case 0xfe9d: return((CHAR)0xad & 0xff); case 0xfea1: return((CHAR)0xae & 0xff); case 0xfea5: return((CHAR)0xaf & 0xff); case 0x0660: return((CHAR)0xb0 & 0xff); case 0x0661: return((CHAR)0xb1 & 0xff); case 0x0662: return((CHAR)0xb2 & 0xff); case 0x0663: return((CHAR)0xb3 & 0xff); case 0x0664: return((CHAR)0xb4 & 0xff); case 0x0665: return((CHAR)0xb5 & 0xff); case 0x0666: return((CHAR)0xb6 & 0xff); case 0x0667: return((CHAR)0xb7 & 0xff); case 0x0668: return((CHAR)0xb8 & 0xff); case 0x0669: return((CHAR)0xb9 & 0xff); case 0xfed1: return((CHAR)0xba & 0xff); case 0x061b: return((CHAR)0xbb & 0xff); case 0xfeb1: return((CHAR)0xbc & 0xff); case 0xfeb5: return((CHAR)0xbd & 0xff); case 0xfeb9: return((CHAR)0xbe & 0xff); case 0x061f: return((CHAR)0xbf & 0xff); case 0x00a2: return((CHAR)0xc0 & 0xff); case 0xfe80: return((CHAR)0xc1 & 0xff); case 0xfe81: return((CHAR)0xc2 & 0xff); case 0xfe83: return((CHAR)0xc3 & 0xff); case 0xfe85: return((CHAR)0xc4 & 0xff); case 0xfeca: return((CHAR)0xc5 & 0xff); case 0xfe8b: return((CHAR)0xc6 & 0xff); case 0xfe8d: return((CHAR)0xc7 & 0xff); case 0xfe91: return((CHAR)0xc8 & 0xff); case 0xfe93: return((CHAR)0xc9 & 0xff); case 0xfe97: return((CHAR)0xca & 0xff); case 0xfe9b: return((CHAR)0xcb & 0xff); case 0xfe9f: return((CHAR)0xcc & 0xff); case 0xfea3: return((CHAR)0xcd & 0xff); case 0xfea7: return((CHAR)0xce & 0xff); case 0xfea9: return((CHAR)0xcf & 0xff); case 0xfeab: return((CHAR)0xd0 & 0xff); case 0xfead: return((CHAR)0xd1 & 0xff); case 0xfeaf: return((CHAR)0xd2 & 0xff); case 0xfeb3: return((CHAR)0xd3 & 0xff); case 0xfeb7: return((CHAR)0xd4 & 0xff); case 0xfebb: return((CHAR)0xd5 & 0xff); case 0xfebf: return((CHAR)0xd6 & 0xff); case 0xfec1: return((CHAR)0xd7 & 0xff); case 0xfec5: return((CHAR)0xd8 & 0xff); case 0xfecb: return((CHAR)0xd9 & 0xff); case 0xfecf: return((CHAR)0xda & 0xff); case 0x00a6: return((CHAR)0xdb & 0xff); case 0x00ac: return((CHAR)0xdc & 0xff); case 0x00f7: return((CHAR)0xdd & 0xff); case 0x00d7: return((CHAR)0xde & 0xff); case 0xfec9: return((CHAR)0xdf & 0xff); case 0x0640: return((CHAR)0xe0 & 0xff); case 0xfed3: return((CHAR)0xe1 & 0xff); case 0xfed7: return((CHAR)0xe2 & 0xff); case 0xfedb: return((CHAR)0xe3 & 0xff); case 0xfedf: return((CHAR)0xe4 & 0xff); case 0xfee3: return((CHAR)0xe5 & 0xff); case 0xfee7: return((CHAR)0xe6 & 0xff); case 0xfeeb: return((CHAR)0xe7 & 0xff); case 0xfeed: return((CHAR)0xe8 & 0xff); case 0xfeef: return((CHAR)0xe9 & 0xff); case 0xfef3: return((CHAR)0xea & 0xff); case 0xfebd: return((CHAR)0xeb & 0xff); case 0xfecc: return((CHAR)0xec & 0xff); case 0xfece: return((CHAR)0xed & 0xff); case 0xfecd: return((CHAR)0xee & 0xff); case 0xfee1: return((CHAR)0xef & 0xff); case 0xfe7d: return((CHAR)0xf0 & 0xff); case 0x0651: return((CHAR)0xf1 & 0xff); case 0xfee5: return((CHAR)0xf2 & 0xff); case 0xfee9: return((CHAR)0xf3 & 0xff); case 0xfeec: return((CHAR)0xf4 & 0xff); case 0xfef0: return((CHAR)0xf5 & 0xff); case 0xfef2: return((CHAR)0xf6 & 0xff); case 0xfed0: return((CHAR)0xf7 & 0xff); case 0xfed5: return((CHAR)0xf8 & 0xff); case 0xfef5: return((CHAR)0xf9 & 0xff); case 0xfef6: return((CHAR)0xfa & 0xff); case 0xfedd: return((CHAR)0xfb & 0xff); case 0xfed9: return((CHAR)0xfc & 0xff); case 0xfef1: return((CHAR)0xfd & 0xff); case 0x25a0: return((CHAR)0xfe & 0xff); default: return(tx_cpsub(c)); /* For box characters etc */ } } int /* PC Code Page 866 */ #ifdef CK_ANSIC tx_cp866(USHORT c) #else tx_cp866(c) USHORT c; #endif /* CK_ANSIC */ { if (c < 0x80) /* Has C1 graphics */ return((CHAR)(c & 0xff)); switch (c) { case 0x00a0: return((CHAR)(255 & 0xff)); case 0x00a4: return((CHAR)(253 & 0xff)); case 0x00b0: return((CHAR)(248 & 0xff)); case 0x00b7: return((CHAR)(250 & 0xff)); case 0x0401: return((CHAR)(240 & 0xff)); case 0x0404: return((CHAR)(242 & 0xff)); case 0x0407: return((CHAR)(244 & 0xff)); case 0x040e: return((CHAR)(246 & 0xff)); case 0x0410: return((CHAR)(128 & 0xff)); case 0x0411: return((CHAR)(129 & 0xff)); case 0x0412: return((CHAR)(130 & 0xff)); case 0x0413: return((CHAR)(131 & 0xff)); case 0x0414: return((CHAR)(132 & 0xff)); case 0x0415: return((CHAR)(133 & 0xff)); case 0x0416: return((CHAR)(134 & 0xff)); case 0x0417: return((CHAR)(135 & 0xff)); case 0x0418: return((CHAR)(136 & 0xff)); case 0x0419: return((CHAR)(137 & 0xff)); case 0x041a: return((CHAR)(138 & 0xff)); case 0x041b: return((CHAR)(139 & 0xff)); case 0x041c: return((CHAR)(140 & 0xff)); case 0x041d: return((CHAR)(141 & 0xff)); case 0x041e: return((CHAR)(142 & 0xff)); case 0x041f: return((CHAR)(143 & 0xff)); case 0x0420: return((CHAR)(144 & 0xff)); case 0x0421: return((CHAR)(145 & 0xff)); case 0x0422: return((CHAR)(146 & 0xff)); case 0x0423: return((CHAR)(147 & 0xff)); case 0x0424: return((CHAR)(148 & 0xff)); case 0x0425: return((CHAR)(149 & 0xff)); case 0x0426: return((CHAR)(150 & 0xff)); case 0x0427: return((CHAR)(151 & 0xff)); case 0x0428: return((CHAR)(152 & 0xff)); case 0x0429: return((CHAR)(153 & 0xff)); case 0x042a: return((CHAR)(154 & 0xff)); case 0x042b: return((CHAR)(155 & 0xff)); case 0x042c: return((CHAR)(156 & 0xff)); case 0x042d: return((CHAR)(157 & 0xff)); case 0x042e: return((CHAR)(158 & 0xff)); case 0x042f: return((CHAR)(159 & 0xff)); case 0x0430: return((CHAR)(160 & 0xff)); case 0x0431: return((CHAR)(161 & 0xff)); case 0x0432: return((CHAR)(162 & 0xff)); case 0x0433: return((CHAR)(163 & 0xff)); case 0x0434: return((CHAR)(164 & 0xff)); case 0x0435: return((CHAR)(165 & 0xff)); case 0x0436: return((CHAR)(166 & 0xff)); case 0x0437: return((CHAR)(167 & 0xff)); case 0x0438: return((CHAR)(168 & 0xff)); case 0x0439: return((CHAR)(169 & 0xff)); case 0x043a: return((CHAR)(170 & 0xff)); case 0x043b: return((CHAR)(171 & 0xff)); case 0x043c: return((CHAR)(172 & 0xff)); case 0x043d: return((CHAR)(173 & 0xff)); case 0x043e: return((CHAR)(174 & 0xff)); case 0x043f: return((CHAR)(175 & 0xff)); case 0x0440: return((CHAR)(224 & 0xff)); case 0x0441: return((CHAR)(225 & 0xff)); case 0x0442: return((CHAR)(226 & 0xff)); case 0x0443: return((CHAR)(227 & 0xff)); case 0x0444: return((CHAR)(228 & 0xff)); case 0x0445: return((CHAR)(229 & 0xff)); case 0x0446: return((CHAR)(230 & 0xff)); case 0x0447: return((CHAR)(231 & 0xff)); case 0x0448: return((CHAR)(232 & 0xff)); case 0x0449: return((CHAR)(233 & 0xff)); case 0x044a: return((CHAR)(234 & 0xff)); case 0x044b: return((CHAR)(235 & 0xff)); case 0x044c: return((CHAR)(236 & 0xff)); case 0x044d: return((CHAR)(237 & 0xff)); case 0x044e: return((CHAR)(238 & 0xff)); case 0x044f: return((CHAR)(239 & 0xff)); case 0x0451: return((CHAR)(241 & 0xff)); case 0x0454: return((CHAR)(243 & 0xff)); case 0x0457: return((CHAR)(245 & 0xff)); case 0x045e: return((CHAR)(247 & 0xff)); case 0x2116: return((CHAR)(252 & 0xff)); case 0x2219: return((CHAR)(249 & 0xff)); case 0x221a: return((CHAR)(251 & 0xff)); case 0x2500: return((CHAR)(196 & 0xff)); case 0x2502: return((CHAR)(179 & 0xff)); case 0x250c: return((CHAR)(218 & 0xff)); case 0x2510: return((CHAR)(191 & 0xff)); case 0x2514: return((CHAR)(192 & 0xff)); case 0x2518: return((CHAR)(217 & 0xff)); case 0x251c: return((CHAR)(195 & 0xff)); case 0x2524: return((CHAR)(180 & 0xff)); case 0x252c: return((CHAR)(194 & 0xff)); case 0x2534: return((CHAR)(193 & 0xff)); case 0x253c: return((CHAR)(197 & 0xff)); case 0x2550: return((CHAR)(205 & 0xff)); case 0x2551: return((CHAR)(186 & 0xff)); case 0x2552: return((CHAR)(213 & 0xff)); case 0x2553: return((CHAR)(214 & 0xff)); case 0x2554: return((CHAR)(201 & 0xff)); case 0x2555: return((CHAR)(184 & 0xff)); case 0x2556: return((CHAR)(183 & 0xff)); case 0x2557: return((CHAR)(187 & 0xff)); case 0x2558: return((CHAR)(212 & 0xff)); case 0x2559: return((CHAR)(211 & 0xff)); case 0x255a: return((CHAR)(200 & 0xff)); case 0x255b: return((CHAR)(190 & 0xff)); case 0x255c: return((CHAR)(189 & 0xff)); case 0x255d: return((CHAR)(188 & 0xff)); case 0x255e: return((CHAR)(198 & 0xff)); case 0x255f: return((CHAR)(199 & 0xff)); case 0x2560: return((CHAR)(204 & 0xff)); case 0x2561: return((CHAR)(181 & 0xff)); case 0x2562: return((CHAR)(182 & 0xff)); case 0x2563: return((CHAR)(185 & 0xff)); case 0x2564: return((CHAR)(209 & 0xff)); case 0x2565: return((CHAR)(210 & 0xff)); case 0x2566: return((CHAR)(203 & 0xff)); case 0x2567: return((CHAR)(207 & 0xff)); case 0x2568: return((CHAR)(208 & 0xff)); case 0x2569: return((CHAR)(202 & 0xff)); case 0x256a: return((CHAR)(216 & 0xff)); case 0x256b: return((CHAR)(215 & 0xff)); case 0x256c: return((CHAR)(206 & 0xff)); case 0x2580: return((CHAR)(223 & 0xff)); case 0x2584: return((CHAR)(220 & 0xff)); case 0x2588: return((CHAR)(219 & 0xff)); case 0x258c: return((CHAR)(221 & 0xff)); case 0x2590: return((CHAR)(222 & 0xff)); case 0x2591: return((CHAR)(176 & 0xff)); case 0x2592: return((CHAR)(177 & 0xff)); case 0x2593: return((CHAR)(178 & 0xff)); case 0x25a0: return((CHAR)(254 & 0xff)); default: return(tx_cpsub(c)); /* For box characters etc */ } } int /* PC Code Page 869 */ #ifdef CK_ANSIC tx_cp869(USHORT c) #else tx_cp869(c) USHORT c; #endif /* CK_ANSIC */ { if (c < 0x80) /* Has C1 graphics */ return((CHAR)(c & 0xff)); switch (c) { case 0x00a0: return((CHAR)(255 & 0xff)); case 0x00a3: return((CHAR)(156 & 0xff)); case 0x00a6: return((CHAR)(138 & 0xff)); case 0x00a7: return((CHAR)(245 & 0xff)); case 0x00a8: return((CHAR)(249 & 0xff)); case 0x00a9: return((CHAR)(151 & 0xff)); case 0x00ab: return((CHAR)(174 & 0xff)); case 0x00ac: return((CHAR)(137 & 0xff)); case 0x00ad: return((CHAR)(240 & 0xff)); case 0x00b0: return((CHAR)(248 & 0xff)); case 0x00b1: return((CHAR)(241 & 0xff)); case 0x00b2: return((CHAR)(153 & 0xff)); case 0x00b3: return((CHAR)(154 & 0xff)); case 0x00b7: return((CHAR)(136 & 0xff)); case 0x00bb: return((CHAR)(175 & 0xff)); case 0x00bd: return((CHAR)(171 & 0xff)); case 0x0384: return((CHAR)(239 & 0xff)); case 0x0385: return((CHAR)(247 & 0xff)); case 0x0386: return((CHAR)(134 & 0xff)); case 0x0388: return((CHAR)(141 & 0xff)); case 0x0389: return((CHAR)(143 & 0xff)); case 0x038a: return((CHAR)(144 & 0xff)); case 0x038c: return((CHAR)(146 & 0xff)); case 0x038e: return((CHAR)(149 & 0xff)); case 0x038f: return((CHAR)(152 & 0xff)); case 0x0390: return((CHAR)(161 & 0xff)); case 0x0391: return((CHAR)(164 & 0xff)); case 0x0392: return((CHAR)(165 & 0xff)); case 0x0393: return((CHAR)(166 & 0xff)); case 0x0394: return((CHAR)(167 & 0xff)); case 0x0395: return((CHAR)(168 & 0xff)); case 0x0396: return((CHAR)(169 & 0xff)); case 0x0397: return((CHAR)(170 & 0xff)); case 0x0398: return((CHAR)(172 & 0xff)); case 0x0399: return((CHAR)(173 & 0xff)); case 0x039a: return((CHAR)(181 & 0xff)); case 0x039b: return((CHAR)(182 & 0xff)); case 0x039c: return((CHAR)(183 & 0xff)); case 0x039d: return((CHAR)(184 & 0xff)); case 0x039e: return((CHAR)(189 & 0xff)); case 0x039f: return((CHAR)(190 & 0xff)); case 0x03a0: return((CHAR)(198 & 0xff)); case 0x03a1: return((CHAR)(199 & 0xff)); case 0x03a3: return((CHAR)(207 & 0xff)); case 0x03a4: return((CHAR)(208 & 0xff)); case 0x03a5: return((CHAR)(209 & 0xff)); case 0x03a6: return((CHAR)(210 & 0xff)); case 0x03a7: return((CHAR)(211 & 0xff)); case 0x03a8: return((CHAR)(212 & 0xff)); case 0x03a9: return((CHAR)(213 & 0xff)); case 0x03aa: return((CHAR)(145 & 0xff)); case 0x03ab: return((CHAR)(150 & 0xff)); case 0x03ac: return((CHAR)(155 & 0xff)); case 0x03ad: return((CHAR)(157 & 0xff)); case 0x03ae: return((CHAR)(158 & 0xff)); case 0x03af: return((CHAR)(159 & 0xff)); case 0x03b0: return((CHAR)(252 & 0xff)); case 0x03b1: return((CHAR)(214 & 0xff)); case 0x03b2: return((CHAR)(215 & 0xff)); case 0x03b3: return((CHAR)(216 & 0xff)); case 0x03b4: return((CHAR)(221 & 0xff)); case 0x03b5: return((CHAR)(222 & 0xff)); case 0x03b6: return((CHAR)(224 & 0xff)); case 0x03b7: return((CHAR)(225 & 0xff)); case 0x03b8: return((CHAR)(226 & 0xff)); case 0x03b9: return((CHAR)(227 & 0xff)); case 0x03ba: return((CHAR)(228 & 0xff)); case 0x03bb: return((CHAR)(229 & 0xff)); case 0x03bc: return((CHAR)(230 & 0xff)); case 0x03bd: return((CHAR)(231 & 0xff)); case 0x03be: return((CHAR)(232 & 0xff)); case 0x03bf: return((CHAR)(233 & 0xff)); case 0x03c0: return((CHAR)(234 & 0xff)); case 0x03c1: return((CHAR)(235 & 0xff)); case 0x03c2: return((CHAR)(237 & 0xff)); case 0x03c3: return((CHAR)(236 & 0xff)); case 0x03c4: return((CHAR)(238 & 0xff)); case 0x03c5: return((CHAR)(242 & 0xff)); case 0x03c6: return((CHAR)(243 & 0xff)); case 0x03c7: return((CHAR)(244 & 0xff)); case 0x03c8: return((CHAR)(246 & 0xff)); case 0x03c9: return((CHAR)(250 & 0xff)); case 0x03ca: return((CHAR)(160 & 0xff)); case 0x03cb: return((CHAR)(251 & 0xff)); case 0x03cc: return((CHAR)(162 & 0xff)); case 0x03cd: return((CHAR)(163 & 0xff)); case 0x03ce: return((CHAR)(253 & 0xff)); case 0x2015: return((CHAR)(142 & 0xff)); case 0x2018: return((CHAR)(139 & 0xff)); case 0x2019: return((CHAR)(140 & 0xff)); case 0x2500: return((CHAR)(196 & 0xff)); case 0x2502: return((CHAR)(179 & 0xff)); case 0x250c: return((CHAR)(218 & 0xff)); case 0x2510: return((CHAR)(191 & 0xff)); case 0x2514: return((CHAR)(192 & 0xff)); case 0x2518: return((CHAR)(217 & 0xff)); case 0x251c: return((CHAR)(195 & 0xff)); case 0x2524: return((CHAR)(180 & 0xff)); case 0x252c: return((CHAR)(194 & 0xff)); case 0x2534: return((CHAR)(193 & 0xff)); case 0x253c: return((CHAR)(197 & 0xff)); case 0x2550: return((CHAR)(205 & 0xff)); case 0x2551: return((CHAR)(186 & 0xff)); case 0x2554: return((CHAR)(201 & 0xff)); case 0x2557: return((CHAR)(187 & 0xff)); case 0x255a: return((CHAR)(200 & 0xff)); case 0x255d: return((CHAR)(188 & 0xff)); case 0x2560: return((CHAR)(204 & 0xff)); case 0x2563: return((CHAR)(185 & 0xff)); case 0x2566: return((CHAR)(203 & 0xff)); case 0x2569: return((CHAR)(202 & 0xff)); case 0x256c: return((CHAR)(206 & 0xff)); case 0x2580: return((CHAR)(223 & 0xff)); case 0x2584: return((CHAR)(220 & 0xff)); case 0x2588: return((CHAR)(219 & 0xff)); case 0x2591: return((CHAR)(176 & 0xff)); case 0x2592: return((CHAR)(177 & 0xff)); case 0x2593: return((CHAR)(178 & 0xff)); case 0x25a0: return((CHAR)(254 & 0xff)); default: return(tx_cpsub(c)); /* For box characters etc */ } } int /* PC Code Page C0 graphics */ #ifdef CK_ANSIC tx_smiley(USHORT c) #else tx_smiley(c) USHORT c; #endif /* CK_ANSIC */ { if (c > 0x1f) return(-1); switch (c) { case 0x00a0: return((CHAR)0 & 0x7f); case 0x00a7: return((CHAR)21 & 0x7f); case 0x00b6: return((CHAR)20 & 0x7f); case 0x2022: return((CHAR)7 & 0x7f); case 0x203c: return((CHAR)19 & 0x7f); case 0x2190: return((CHAR)27 & 0x7f); case 0x2191: return((CHAR)24 & 0x7f); case 0x2192: return((CHAR)26 & 0x7f); case 0x2193: return((CHAR)25 & 0x7f); case 0x2194: return((CHAR)29 & 0x7f); case 0x2195: return((CHAR)18 & 0x7f); case 0x21a8: return((CHAR)23 & 0x7f); case 0x2319: return((CHAR)28 & 0x7f); case 0x25ac: return((CHAR)22 & 0x7f); case 0x25b2: return((CHAR)30 & 0x7f); case 0x25ba: return((CHAR)16 & 0x7f); case 0x25bc: return((CHAR)31 & 0x7f); case 0x25c4: return((CHAR)17 & 0x7f); case 0x25d8: return((CHAR)8 & 0x7f); case 0x25d9: return((CHAR)10 & 0x7f); case 0x25ef: return((CHAR)9 & 0x7f); case 0x263a: return((CHAR)1 & 0x7f); case 0x263b: return((CHAR)2 & 0x7f); case 0x263c: return((CHAR)15 & 0x7f); case 0x2640: return((CHAR)12 & 0x7f); case 0x2642: return((CHAR)11 & 0x7f); case 0x2660: return((CHAR)6 & 0x7f); case 0x2663: return((CHAR)5 & 0x7f); case 0x2665: return((CHAR)3 & 0x7f); case 0x2666: return((CHAR)4 & 0x7f); case 0x266a: return((CHAR)13 & 0x7f); case 0x266c: return((CHAR)14 & 0x7f); default: return(-1); } } USHORT /* Horizontal Scan Lines Unicode substitutions */ #ifdef CK_ANSIC tx_hslsub(USHORT c) #else tx_hslsub(c) USHORT c; #endif /* CK_ANSIC */ { if (c >= 0x23BA && c <= 0x23BD ) switch (c) { case 0x23BA: return(0x2500); /* H line - Scan 1 */ case 0x23BB: return(0x2500); /* H line - Scan 3 */ case 0x23BC: return(0x2500); /* H line - Scan 7 */ case 0x23BD: return(0x2500); /* H line - Scan 9 */ } return(c); } USHORT /* Kermit font 0xE??? Unicode substitutions */ #ifdef CK_ANSIC tx_usub(USHORT c) #else tx_usub(c) USHORT c; #endif /* CK_ANSIC */ { if (c < 0xE000 || c > 0xEFFF) return(c); switch (c) { case 0xE200: return(0x2524); /* Extensible Left Brace Middle */ case 0xE201: return(0x2570); /* Extensible Left Parenthesis bot */ case 0xE202: return(0x256d); /* Extensible left parenthesis top */ case 0xE203: return(0x2514); /* Extensible left SB bot */ case 0xE204: return(0x250c); /* Extensible left SB top */ case 0xE205: return(0x251c); /* Extensible right brace middle */ case 0xE206: return(0x256f); /* Extensible right parenthesis bot */ case 0xE207: return(0x256e); /* Extensible right parenthesis top */ case 0xE208: return(0x2518); /* Extensible right SB bot */ case 0xE209: return(0x2510); /* Extensible right SB top */ case 0xE20C: return(0x03a3); /* Summation symbol bot */ case 0xE20D: return(0x03a3); /* Summation symbol top */ case 0xE20E: return(0x2510); /* Right ceiling corner */ case 0xE20F: return(0x2518); /* Right floor corner */ case 0xE300: return(0x2502); /* V box line, extensible, left */ case 0xE309: return(0x2502); /* V box line, extensible, right */ case 0xE30A: return(0x258c); /* Diagonal fill, dark, UL */ case 0xE30B: return(0x2590); /* Diagonal fill, dark, UR */ case 0xE320: return(0x2583); /* Quadrant LL */ case 0xE321: return(0x2490); /* Quadrant LR */ case 0xE322: return(0x258c); /* Quadrant UL */ case 0xE323: return(0x2588); /* Quadrant UL and LL and LR */ case 0xE324: return(0x2588); /* Quadrant UL and LR */ case 0xE325: return(0x2588); /* Quadrant UL and LR */ case 0xE326: return(0x2588); /* Quadrant UL and UR and LL */ case 0xE327: return(0x2588); /* Quadrant UL and UR and LR */ case 0xE328: return(0x2590); /* Quadrant UR */ case 0xE329: return(0x2588); /* Quadrant UR and LL and LR */ case 0xE400: return(0x221a); /* Radical symbol, small */ case 0xE401: return(0x00bf); /* Reverse question mark */ default: return((unsigned)0xfffd); } } int /* Unicode to CP437 substitutions */ #ifdef CK_ANSIC tx_cpsub(USHORT c) #else tx_cpsub(c) USHORT c; #endif /* CK_ANSIC */ { int x; if (c < 0x0080) /* ASCII */ return((CHAR)(c & 0xff)); if (c >= 0x0080 && c <= 0x0100) { switch (c) { /* Latin-1 */ case 0x00A2: return(0x9b); /* Cent sign */ case 0x00A3: return(156); /* Pound sign */ case 0x00AC: return(170); /* Not symbol */ case 0x00B0: return(248); /* Degree symbol */ case 0x00B1: return(241); /* Plus or minus symbol */ case 0x00B2: return(253); /* Superscript 2 */ case 0x00B3: return(51); /* Superscript 3 */ case 0x00B6: return(14); /* Pilcrow symbol */ case 0x00B7: return(250); /* Center dot, small */ case 0x00B9: return(49); /* Superscript 1 */ case 0x00D0: return(68); /* Eth -> D */ case 0x00D7: return(120); /* Multiplication symbol */ case 0x00DE: return(84); /* Thorn -> T */ case 0x00F0: return(100); /* eth -> eth */ case 0x00F7: return(246); /* Division symbol */ case 0x00FE: return(116); /* thorn -> t */ default: return(0x13); } } else if (c >= 0x0100 && c <= 0x02ff) { /* Latin-2 etc */ switch (c) { case 0x0103: return(97); /* a breve */ case 0x0105: return(97); /* a ogonek */ case 0x0107: /* c acute */ case 0x010d: return(99); /* c caron */ case 0x010f: /* d caron */ case 0x0111: return(100); /* d with stroke */ case 0x0119: /* e ogonek */ case 0x011b: return(101); /* e caron */ case 0x011f: return(103); /* g breve */ case 0x0130: return(73); /* Capital I with Dot */ case 0x0131: return(105); /* Dotless i */ case 0x0132: return(89); /* IJ => Y */ case 0x0133: return(152); /* ij -> y diaeresis */ case 0x013a: /* l acute */ case 0x013e: /* l caron */ case 0x0142: return(108); /* l with stroke */ case 0x0144: /* n acute */ case 0x0148: return(110); /* n caron */ case 0x0151: return(111); /* o double acute */ case 0x0152: return(79); /* OE */ case 0x0153: return(111); /* oe */ case 0x0155: /* r acute */ case 0x0159: return(114); /* r caron */ case 0x015b: /* s acute */ case 0x015f: /* s ogonek */ case 0x0161: return(115); /* s caron */ case 0x0163: /* t ogonek */ case 0x0165: /* t caron */ case 0x0167: return(116); /* t with stroke */ case 0x016f: /* u ring */ case 0x0171: return(117); /* u double acute */ case 0x017a: /* z acute */ case 0x017c: /* z dot above */ case 0x017e: return(122); /* z caron */ case 0x0192: return(159); /* Function-of symbol, Script f */ case 0x01d0: return(105); /* i caron */ case 0x02c7: /* caron -> UNK */ case 0x02d8: return(0x13); /* breve -> UNK */ case 0x02dd: return(34); /* Double acute -> Doublequote */ default: return(0x13); } } else if (c >= 0x0300 && c <= 0x03ff) { /* Greek */ switch (c) { case 0x0393: return(226); /* Uppercase Greek Gamma */ case 0x0398: return(233); /* Uppercase Greek Theta */ case 0x039B: return(235); /* Uppercase Greek Lambda */ case 0x03A0: return(227); /* Uppercase Greek Pi */ case 0x03A3: return(228); /* Uppercase Greek Sigma */ case 0x03A4: return(0xEA); /* Omega */ case 0x03A6: return(232); /* Uppercase Greek Phi */ case 0x03A9: return(234); /* Uppercase Greek Omega */ case 0x03B1: return(0xE0); /* alpha */ case 0x03B2: return(0xE1); /* beta */ case 0x03B3: return(226); /* Lowercase Greek gamma */ case 0x03B4: return(0xEB); /* delta */ case 0x03B5: return(238); /* Lowercase Greek epsilon */ case 0x03B7: return(238); /* Lowercase Greek eta */ case 0x03B8: return(233); /* Lowercase Greek theta */ case 0x03B9: return(105); /* Lowercase Greek iota */ case 0x03BA: return(107); /* Lowercase Greek kappa */ case 0x03BB: return(235); /* Lowercase Greek lambda */ case 0x03BC: return(230); /* Lowercase Greek mu */ case 0x03C0: return(227); /* Lowercase Greek pi */ case 0x03C3: return(229); /* Lowercase Greek sigma */ case 0x03C4: return(231); /* Lowercase Greek tau */ case 0x03C6: return(237); /* Lowercase Greek phi */ case 0x03C7: return(120); /* Lowercase Greek chi */ case 0x03C9: return(234); /* Lowercase Greek omega */ default: return(0x13); } } else if (c >= 0x2000 && c <= 0x20ff) { /* Sub+Superscripts & Currency */ switch (c) { case 0x203C: return(0x13); /* !! */ case 0x2070: return(48); /* Superscript 0 */ case 0x2074: return(52); /* Superscript 4 */ case 0x2075: return(53); /* Superscript 5 */ case 0x2076: return(54); /* Superscript 6 */ case 0x2077: return(55); /* Superscript 7 */ case 0x2078: return(56); /* Superscript 8 */ case 0x2079: return(57); /* Superscript 9 */ case 0x207a: return(43); /* Superscript + */ case 0x207b: return(45); /* Superscript - */ case 0x207F: return(252); /* Superscript n */ case 0x2080: return(48); /* Subscript 0 */ case 0x2081: return(49); /* Subscript 1 */ case 0x2082: return(50); /* Subscript 2 */ case 0x2083: return(51); /* Subscript 3 */ case 0x2084: return(52); /* Subscript 4 */ case 0x2085: return(53); /* Subscript 5 */ case 0x2086: return(54); /* Subscript 6 */ case 0x2087: return(55); /* Subscript 7 */ case 0x2088: return(56); /* Subscript 8 */ case 0x2089: return(57); /* Subscript 9 */ case 0x208a: return(43); /* Subscript + */ case 0x208b: return(45); /* Subscript - */ case 0x20a7: return(0x93); /* Peseta */ default: x = tx_punc(c); /* Various spaces, dashes, etc */ return((x < 0) ? 0x13 : x); } } else if (c >= 0x2100 && c <= 0x21ff) { /* Arrows */ switch (c) { case 0x2190: return(27); /* Arrow, left-pointing */ case 0x2191: return(24); /* Arrow, up-pointing */ case 0x2192: return(26); /* Arrow, right-pointing */ case 0x2193: return(25); /* Arrow, down-pointing */ case 0x2194: return(0x1d); /* Arrow, left-right */ case 0x2195: return(0x12); /* Arrow, up-down */ case 0x219F: return(0x18); /* Arrow, up, doublehead */ case 0x21A1: return(0x19); /* Arrow, down, doublehead */ case 0x21A8: return(0x17); /* Arrow, up-down with base */ case 0x21D2: return(26); /* Implies symbol */ case 0x21D4: return(29); /* If and only if symbol */ case 0x21E4: return(0x1B); /* Arrow, left, to bar */ case 0x21E5: return(0x1A); /* Arrow, right, to bar */ case 0x21E8: return(0x10); /* Outline white right arrow */ case 0x21E9: return(0x0f); /* Outline white down arrow */ default: return(0x13); } } else if (c >= 0x2200 && c <= 0x22ff) { /* Math */ switch (c) { case 0x2202: return(235); /* Partial differential symbol */ case 0x2207: return(31); /* Nabla, Laplace operator */ case 0x2208: return(0x33); /* (because of QNX misunderstanding) */ case 0x221A: return(251); /* Radical symbol */ case 0x221D: return(236); /* Proportional-to */ case 0x221E: return(236); /* Infinity symbol */ case 0x2227: return(30); /* Logical AND */ case 0x2228: return(31); /* Logical OR */ case 0x2229: return(239); /* Intersection symbol */ case 0x222A: return(85); /* Union symbol */ case 0x222B: return(244); /* Integral symbol */ case 0x2234: return(254); /* Therefore symbol */ case 0x223C: return(126); /* Centered tilde operator */ case 0x2243: return(247); /* Asymptotically equals */ case 0x2248: return(247); /* Almost equal to symbol */ case 0x2260: return(88); /* Not equal symbol */ case 0x2261: return(240); /* Identity symbol */ case 0x2264: return(243); /* Less than or equal symbol */ case 0x2265: return(242); /* Greater than or equal symbol */ case 0x2282: return(40); /* Subset symbol */ case 0x2283: return(41); /* Superset symbol */ case 0x22A6: return(0xC3); /* Assertion symbol */ default: return(0x13); } } else if (c >= 0x23BA && c <= 0x23BD ) { switch (c) { case 0x23BA: return(0x2500); /* H line - Scan 1 */ case 0x23BB: return(0x2500); /* H line - Scan 3 */ case 0x23BC: return(0x2500); /* H line - Scan 7 */ case 0x23BD: return(0x2500); /* H line - Scan 9 */ } } else if (c >= 0x2300 && c <= 0x24ff) { /* Tech */ switch (c) { case 0x2308: return(0xDA); /* Left ceiling */ case 0x2309: return(0xBF); /* Right ceiling */ case 0x230A: return(0xC0); /* Left floor */ case 0x230B: return(0xD9); /* Right floor */ case 0x2319: return(0x1C); /* Turned Not sign */ case 0x2320: return(244); /* Integral symbol top */ case 0x2321: return(245); /* Integral symbol bot */ case 0x2329: return(60); /* BRA, large left angle bracket */ case 0x232A: return(62); /* KET, large right angle bracket */ case 0x2409: return(26); /* "HT" becomes right arrow */ case 0x240A: return(25); /* "LF" becomes down arrow */ case 0x240B: return(23); /* "VT" becomes up-down arrow */ case 0x240C: return(24); /* "FF" becomes up arrow */ case 0x240D: return(27); /* "CR" becomes left arrow */ case 0x2424: return(31); /* "NL" becomes down triangle */ default: return(0x13); } } else if (c >= 0x2500 && c <= 0x2552) { /* Box drawing */ switch (c) { case 0x2500: return(196); /* Center box bar horizontal */ case 0x2501: return(0xCD); /* Bold -> Double */ case 0x2502: return(179); /* Center box bar vertical */ case 0x2503: return(0xBA); /* Bold */ case 0x2504: return(45); /* Dashed line */ case 0x2506: return(124); /* Broken vertical bar */ case 0x250C: return(218); /* UL box corner */ case 0x250F: return(0xC9); /* Bold */ case 0x2510: return(191); /* UR Box Corner */ case 0x2513: return(0xBB); /* Bold */ case 0x2514: return(192); /* LL box corner */ case 0x2517: return(0xC8); /* Bold */ case 0x2518: return(217); /* LR box corner */ case 0x251B: return(0xBC); /* Bold */ case 0x251C: return(195); /* Left middle box side */ case 0x2520: return(0xC3); case 0x2523: return(0xCC); /* Bold */ case 0x2524: return(180); /* Right middle box side */ case 0x2528: return(180); case 0x252B: return(0xB9); /* Bold */ case 0x252C: return(194); /* Middle box top */ case 0x252F: return(194); case 0x2533: return(0xCB); /* Bold */ case 0x2534: return(193); /* Middle box bot */ case 0x2537: return(193); case 0x253B: return(0xCA); /* Bold */ case 0x253C: return(197); /* Box intersection */ case 0x253F: return(197); case 0x2542: return(197); case 0x2547: return(197); case 0x2548: return(197); case 0x2549: return(197); case 0x254A: return(197); case 0x254B: return(0xCE); /* Bold */ case 0x2550: return(205); /* Center box bar horizontal double */ case 0x2551: return(186); /* Center box bar vertical double */ case 0x2552: return(213); /* UL box corner single to double */ default: return(0x13); } } else if (c >= 0x2553 && c <= 0x2579) { /* More box drawing */ switch (c) { case 0x2553: return(214); /* UL box corner double to single */ case 0x2554: return(201); /* UL box corner double */ case 0x2555: return(184); /* UR box corner double to single */ case 0x2556: return(183); /* UR box corner single to double */ case 0x2557: return(187); /* UR box corner double */ case 0x2558: return(212); /* LL box corner single to double */ case 0x2559: return(211); /* LL box corner double to single */ case 0x255A: return(200); /* LL box corner double */ case 0x255B: return(190); /* LR box corner double to single */ case 0x255C: return(189); /* LR box corner single to double */ case 0x255D: return(188); /* LR box corner double */ case 0x255E: return(198); /* Left mid box side single to doubl */ case 0x255F: return(199); /* Left mid box side double to singl */ case 0x2560: return(204); /* Left middle box side double */ case 0x2561: return(181); /* Right box side double to single */ case 0x2562: return(182); /* Right box side single to double */ case 0x2563: return(185); /* Right middle box side double */ case 0x2564: return(209); /* Middle box top double to single */ case 0x2565: return(210); /* Middle box top single to double */ case 0x2566: return(203); /* Middle box top double */ case 0x2567: return(207); /* Middle box bot single to double */ case 0x2568: return(208); /* Middle box bot double to single */ case 0x2569: return(202); /* Middle box bot double */ case 0x256A: return(216); /* Box intersection double to single */ case 0x256B: return(215); /* Box intersection single to double */ case 0x256C: return(206); /* Box intersection double */ case 0x256D: return(218); /* UL arc */ case 0x256E: return(191); /* UR arc */ case 0x256F: return(217); /* LR arc */ case 0x2570: return(192); /* LL arc */ case 0x2571: return(179); /* Diagonal line LL to UR */ case 0x2572: return(196); /* Diagonal line UL to LR */ case 0x2573: return(88); /* Diagonal lines crossed */ case 0x2575: return(0xb3); /* High vertical line */ case 0x2576: return(45); /* Short horizontal line */ case 0x2577: return(0xb3); /* Low vertical line */ case 0x2579: return(0xb3); /* High vertical line bold */ default: return(0x13); } } else if (c >= 0x257a && c <= 0x25ff) { /* Still more box drawing */ switch (c) { case 0x257b: return(0xb3); /* Low vertical line bold */ case 0x2580: return(223); /* Quadrant UL and UR (top half) */ case 0x2581: return(0xc4); /* Scan line 9 */ case 0x2582: return(0xDC); /* Black blob lower half */ case 0x2584: return(220); /* Quadrant LL and LR (lower half) */ case 0x2588: return(219); /* Fill character dark */ case 0x258C: return(221); /* Quadrant UL and LL (left half) */ case 0x258E: return(0xDD); case 0x2590: return(222); /* Quadrant UR and LR (right half) */ case 0x2591: return(176); /* Fill character light */ case 0x2592: return(177); /* Fill character medium */ case 0x2593: return(178); /* Fill character heavy */ case 0x2594: return(0xc4); /* Scan line 1 */ case 0x25A0: return(254); /* Solid square, center */ case 0x25A6: return(177); /* Blotch */ case 0x25AC: /* Black rectangle */ case 0x25AF: return(0x16); /* White rectangle */ case 0x25B2: /* Triangle, up-pointing */ case 0x25B4: return(0x1e); /* Triangle, up-pointing */ case 0x25B6: /* Triangle, right-pointing, dark */ case 0x25B7: /* Triangle, right-pointing, light */ case 0x25B9: /* Triangle, right-pointing, light */ case 0x25BA: return(0x10); /* Triangle, right-pointing, narrow */ case 0x25BC: /* Triangle, down-pointing */ case 0x25BE: return(0x1f); /* Triangle, down-pointing */ case 0x25C0: /* Triangle, left-pointing, dark */ case 0x25C1: /* Triangle, left-pointing, dark */ case 0x25C4: return(0x11); /* Triangle, left-pointing, narrow */ case 0x25C6: return(4); /* Diamond, center, solid */ case 0x25CB: return(0x09); /* Circle */ case 0x25CF: return(249); /* Center dot, large */ case 0x25d8: return(0x08); /* Inverse bullet */ case 0x25d9: return(0x0a); /* Inverse white circle */ case 0x25E2: return(0xD9); /* Lower right triangle */ case 0x25E3: return(0xC0); /* Lower left triangle */ case 0x25E4: return(0xDA); /* Upper left triangle */ case 0x25E5: return(0xBf); /* Upper right triangle */ default: return(0x13); } } else if (c >= 0x2600) { /* All the rest */ switch (c) { case 0x263a: return(0x01); /* Smiley */ case 0x263b: return(0x02); /* Inverse Smiley */ case 0x263c: return(0x0f); /* White Sun with Rays */ case 0x2640: return(0x0c); /* Male sign */ case 0x2642: return(0x0b); /* Female sign */ case 0x2660: return(0x06); /* Spade */ case 0x2663: return(0x05); /* Club */ case 0x2665: return(0x03); /* Heart */ case 0x2666: return(0x04); /* Diamond, center, solid */ case 0x266a: return(0x0d); /* Quarter note */ case 0x266b: /* Beamed quarter notes */ case 0x266c: return(0x0e); /* Beamed 8th notes */ case 0x279e: return(0x1a); /* Bold right arrow */ case 0x27a1: return(0x1a); /* Heavy black right arrow. */ case 0xE200: return(180); /* Extensible left brace middle */ case 0xE201: return(192); /* Extensible Left parenthesis bot */ case 0xE202: return(218); /* Extensible left parenthesis top */ case 0xE203: return(192); /* Extensible left SB bot */ case 0xE204: return(218); /* Extensible left SB top */ case 0xE205: return(195); /* Extensible right brace middle */ case 0xE206: return(217); /* Extensible right parenthesis bot */ case 0xE207: return(191); /* Extensible right parenthesis top */ case 0xE208: return(217); /* Extensible right SB bot */ case 0xE209: return(191); /* Extensible right SB top */ case 0xE20C: return(228); /* Summation symbol bot */ case 0xE20D: return(228); /* Summation symbol top */ case 0xE20E: return(191); /* Right ceiling corner */ case 0xE20F: return(217); /* Right floor corner */ case 0xE300: return(179); /* V box line, extensible, left */ case 0xE309: return(179); /* V box line, extensible, right */ case 0xE30A: return(221); /* Diagonal fill, dark, UL */ case 0xE30B: return(222); /* Diagonal fill, dark, UR */ case 0xE320: return(221); /* Quadrant LL */ case 0xE321: return(222); /* Quadrant LR */ case 0xE322: return(221); /* Quadrant UL */ case 0xE323: return(219); /* Quadrant UL and LL and LR */ case 0xE324: return(219); /* Quadrant UL and LR */ case 0xE325: return(219); /* Quadrant UL and LR */ case 0xE326: return(219); /* Quadrant UL and UR and LL */ case 0xE327: return(219); /* Quadrant UL and UR and LR */ case 0xE328: return(222); /* Quadrant UR */ case 0xE329: return(219); /* Quadrant UR and LL and LR */ case 0xE400: return(251); /* Radical symbol, small */ case 0xE401: return(168); /* Reverse question mark */ case 0xFFFD: return(0x13); /* !! for unknown */ default: return(0x13); } } return(0x13); } #ifdef OS2 /* Lucida Console is a Unicode font, but it is very sparsely populated. Since it is the only monospace Unicode font most people have, we have to make reasonable substitutions or else 3/4 of the glyphs will show up as blobs on the screen. */ USHORT /* Unicode to Lucida Console */ #ifdef CK_ANSIC tx_lucidasub(USHORT c) #else tx_lucidasub(c) USHORT c; #endif /* CK_ANSIC */ { if (c < 0x0180) /* Latin-1 and Extended A */ return(c); /* For efficiency we try to arrange the sections by frequency of use. */ if (c >= 0x23BA && c <= 0x23BD) { switch(c) { case 0x23BA: /* H line - Scan 1 */ case 0x23BB: /* H line - Scan 3 */ case 0x23BC: /* H line - Scan 7 */ case 0x23BD: /* H line - Scan 9 */ return(0x2500); } } if (c >= 0x2500 && c <= 0x257f) { /* Box drawing */ if (c >= 0x2550 && c <= 0x256c) return(c); switch (c) { /* Themselves */ case 0x2500: case 0x2502: case 0x250c: case 0x2510: case 0x2514: case 0x2518: case 0x251c: case 0x2524: case 0x252c: case 0x2534: case 0x253c: return(c); /* Horizontal lines */ case 0x2501: /* Bold */ return(0x2550); /* Use double */ case 0x2504: case 0x2505: case 0x2508: case 0x2509: case 0x254c: case 0x254d: case 0x257c: case 0x257e: return(0x2500); /* Vertical lines */ case 0x2503: /* Bold */ return(0x2551); /* Use double */ case 0x2506: case 0x2507: case 0x250a: case 0x250b: /* Other */ case 0x254e: case 0x254f: case 0x257d: case 0x257f: case 0x2575: case 0x2577: case 0x2579: case 0x257b: return(0x2502); /* Upper left box corner */ case 0x250f: /* Bold */ return(0x2554); /* Use double */ case 0x250d: case 0x250e: /* Other */ return(0x250c); /* Upper right box corner */ case 0x2513: /* Bold */ return(0x2557); case 0x2511: case 0x2512: /* Other */ return(0x2510); /* Lower left box corner */ case 0x2517: /* Bold */ return(0x255a); case 0x2515: case 0x2516: /* Other */ return(0x2514); /* Lower right box corner */ case 0x251b: /* Bold */ return(0x255d); case 0x2519: case 0x251a: /* Other */ return(0x2518); /* Vertical and right */ case 0x2523: /* Bold */ return(0x2560); case 0x251d: case 0x251e: case 0x251f: case 0x2520: case 0x2521: case 0x2522: return(0x251c); /* Vertical and left */ case 0x252b: /* Bold */ return(0x2563); case 0x2525: case 0x2526: case 0x2527: case 0x2528: case 0x2529: case 0x252a: return(0x2524); /* Horizontal and down */ case 0x2533: /* Bold */ return(0x2566); case 0x252d: case 0x252e: case 0x252f: case 0x2530: case 0x2531: case 0x2532: return(0x252c); /* Horizontal and up */ case 0x253b: /* Bold */ return(0x2569); case 0x2535: case 0x2536: case 0x2537: case 0x2538: case 0x2539: case 0x253a: return(0x2534); /* Horizontal and Vertical */ case 0x254b: /* Bold */ return(0x256c); case 0x253d: case 0x253e: case 0x253f: case 0x2540: case 0x2541: case 0x2542: case 0x2543: case 0x2544: case 0x2545: case 0x2546: case 0x2547: case 0x2548: case 0x2549: case 0x254a: return(0x253c); /* Curved corners */ case 0x256d: /* UL */ return(0x250c); case 0x256e: /* UR */ return(0x2510); case 0x256f: /* LL */ return(0x2518); case 0x2570: /* LR */ return(0x2514); case 0x2571: /* Diagonal */ return(0x002f); case 0x2572: /* Other diagonal */ return(0x005c); case 0x2573: /* Diagonal cross */ return(0x00d7); /* Partial horizontal lines */ case 0x2574: case 0x2576: case 0x2578: case 0x257a: return(0x002d); default: return(0xfffd); } } if (c >= 0x2190 && c <= 0x21ff) { /* Arrows */ if (c >= 0x2190 && c <= 0x2195 || c == 0x21a8) return(c); switch (c) { /* Left-arrow forms */ case 0x219e: case 0x21a2: case 0x21a4: case 0x21a9: case 0x21bc: case 0x21d0: case 0x21da: case 0x21dc: case 0x21e0: case 0x21e4: case 0x21e6: case 0x21c7: return(0x2190); /* Right-arrow forms */ case 0x21a0: case 0x21a3: case 0x21a6: case 0x21aa: case 0x21c0: case 0x21c1: case 0x21c9: case 0x21d2: case 0x21db: case 0x21dd: case 0x21e2: case 0x21e5: case 0x21e8: return(0x2192); /* Up-arrow forms */ case 0x219f: case 0x21a5: case 0x21be: case 0x21bf: case 0x21c8: case 0x21d1: case 0x21de: case 0x21e1: case 0x21e7: case 0x21ea: return(0x2191); /* Down-arrow forms */ case 0x21a1: case 0x21a7: case 0x21af: case 0x21c2: case 0x21ce: case 0x21ca: case 0x21d3: case 0x21df: case 0x21e3: case 0x21e9: return(0x2193); /* Up-down-arrow forms */ case 0x21c5: case 0x21d5: return(0x2195); default: return(0xfffd); } } if (c >= 0x2580 && c <= 0x259f) { /* Block elements */ switch (c) { case 0x2580: case 0x2584: case 0x2588: case 0x258c: case 0x2590: case 0x2591: case 0x2592: case 0x2593: return(c); case 0x2581: case 0x2582: case 0x2583: case 0x2585: case 0x2586: case 0x2587: return(0x2584); case 0x2589: case 0x258a: case 0x258b: case 0x258d: case 0x258e: case 0x258f: return(0x258c); case 0x2595: return(0x2502); default: return(0xfffd); } } if (c >= 0x2200 && c <= 0x22ff) { /* Mathematical operators */ switch (c) { case 0x2202: case 0x2206: case 0x220f: case 0x2211: case 0x2212: case 0x2219: case 0x2220: case 0x221e: case 0x221f: case 0x2229: case 0x222b: case 0x2248: case 0x2260: case 0x2261: case 0x2264: case 0x2265: return(c); default: return(0xfffd); } } if (c >= 0x2300 && c <= 0x237f) { /* Miscellaneous Technical */ if (c == 0x2302 || c == 0x2310 || c == 0x2320 || c == 0x2321) return(c); switch (c) { case 0x2329: /* BRA */ return(0x003c); case 0x232a: /* KET */ return(0x003e); default: return(0xfffd); } } if (c >= 0x25a0 && c <= 0x25ff) { /* Geometric shapes */ switch (c) { /* Themselves */ case 0x25a0: case 0x25ac: case 0x25b2: case 0x25ba: case 0x25bc: case 0x25c4: case 0x25ca: case 0x25cb: case 0x25d8: case 0x25d9: return(c); /* Squares */ case 0x25a1: case 0x25a2: case 0x25a3: case 0x25a4: case 0x25a5: case 0x25a6: case 0x25a7: case 0x25a8: case 0x25a9: case 0x25aa: case 0x25ab: case 0x25e7: case 0x25e8: case 0x25e9: case 0x25ea: case 0x25eb: return(0x25a0); case 0x25ad: case 0x25ae: case 0x25af: /* Rectangles */ case 0x25b0: case 0x25b1: return(0x25ac); case 0x25b3: case 0x25b4: case 0x25b5: /* Upright triangles */ case 0x25ec: case 0x25ed: case 0x25ee: return(0x25b2); case 0x25b6: case 0x25b7: case 0x25b8: case 0x25b9: case 0x25bb: return(0x25ba); /* Right-pointing triangles */ case 0x25bd: case 0x25be: case 0x25bf: /* Down-pointing triangles */ return(0x25bc); case 0x25c0: case 0x25c1: case 0x25c2: case 0x25c3: case 0x25c5: return(0x25c4); /* Left-pointing triangles */ case 0x25c6: case 0x25c7: case 0x25c8: /* Diamonds */ return(0x2666); /* Circles */ case 0x25c9: case 0x25cc: case 0x25cd: case 0x25ce: case 0x25cf: case 0x25d0: case 0x25d1: case 0x25d2: case 0x25d3: case 0x25d4: case 0x25d5: case 0x25e6: case 0x25ef: return(0x25cb); /* Curves and corner triangles */ case 0x25dc: case 0x25e4: /* UL */ return(0x250c); case 0x25dd: case 0x25e5: /* UR */ return(0x2510); case 0x25df: case 0x25e3: /* LL */ return(0x2514); case 0x25de: case 0x25e2: /* LR */ return(0x2518); default: return(0xfffd); } } if (c >= 0x2600 && c <= 0x26ff) { /* Misc symbols */ switch (c) { /* Themselves */ case 0x263a: case 0x263b: case 0x263c: case 0x2640: case 0x2642: case 0x2660: case 0x2663: case 0x2665: case 0x2666: case 0x266a: case 0x266b: return(c); default: return(0xfffd); } } if (c >= 0x2794 && c <= 0x27be) /* Right-arrow Dingbats */ return(0x2192); if (c >= 0x2070 && c <= 0x209f) { /* Super & subscripts */ if (c == 0x207f) /* n */ return(c); else if (c == 0x2070) /* 0 */ return(0x0030); else if (c >= 0x2074 && c <= 0x2079) return(c - 0x2040); else if (c >= 0x2080 && c <= 0x2089) return(c - 0x2050); switch (c) { case 0x207a: case 0x208a: return(0x002b); case 0x207b: case 0x208b: return(0x002d); case 0x207c: case 0x208c: return(0x003d); case 0x207d: case 0x208d: return(0x0028); case 0x207e: case 0x208e: return(0x0029); default: return(0xfffd); } } if (c >= 0x0180 && c <= 0x024f) { /* Latin Extended B, Part I */ if (c == 0x0192 || c >= 0x01fa && c <= 0x01ff) return(c); /* Latin Extended B */ switch (c) { case 0x0180: case 0x0183: case 0x0184: case 0x0185: return(0x0062); /* Lowercase b variants */ case 0x0181: case 0x0182: return(0x0042); /* Uppercase B variants */ case 0x0186: case 0x0187: return(0x0043); /* Uppercase C variants */ case 0x0189: /* D with stroke */ return(0x00D0); /* Looks just like Eth */ case 0x018a: /* D with hook */ return(0x0044); case 0x018e: case 0x0190: /* E-like letters */ return(0x0045); case 0x018f: /* e-like letters */ return(0x0065); case 0x0191: /* F-like */ return(0x0046); case 0x0193: /* G-like */ return(0x0047); case 0x0194: /* Latin Capital Gamma */ return(0x0393); /* Use Greek */ case 0x0195: /* Gothic hv */ return(0x0068); /* Use h */ case 0x0196: /* Latin Capital Iota */ return(0x0399); /* Use Greek */ case 0x0197: /* I with bar */ return(0x0069); case 0x0198: /* K with hook */ return(0x004B); case 0x0199: /* k with hook */ return(0x006B); case 0x019A: /* l with bar */ return(0x006C); case 0x019B: /* lambda with bar */ return(0x03bb); /* Use Greek */ case 0x019C: /* Upside down m */ return(0x006d); case 0x019D: /* N with left hook */ return(0x004e); case 0x019E: /* n with long right leg */ return(0x006e); case 0x019F: case 0x01a0: case 0x01a2: /* O-like letters */ return(0x004f); case 0x01a1: case 0x01a3: /* o-like */ return(0x006f); case 0x01A4: /* P with hook */ return(0x0050); case 0x01A5: /* p with hook */ return(0x0070); case 0x01A6: /* Old Norse YR */ return(0x0052); case 0x01A7: /* Backwards S */ return(0x0053); case 0x01A8: case 0x01AA: /* s-like letters */ return(0x0073); case 0x01A9: /* Esh */ return(0x03a3); /* Looks just like Sigma */ case 0x01AB: case 0x01AD: /* t-like */ return(0x0074); case 0x01AC: case 0x01AE: /* T-like */ return(0x0054); case 0x01AF: case 0x01B1: /* U-like */ return(0x0055); case 0x01B0: /* u-like */ return(0x0075); case 0x01B2: /* V-like */ return(0x0056); case 0x01B3: /* Y-like */ return(0x0059); case 0x01B4: /* y-like */ return(0x0079); case 0x01B5: /* Z-like */ return(0x005a); case 0x01B6: /* z-like */ return(0x007a); case 0x01B7: /* Yogh */ return(0x0033); /* Use "3" */ case 0x01BF: /* Wynn */ return(0x0077); /* Use "w" */ case 0x01CD: /* A caron */ return(0x0041); case 0x01CE: /* a caron */ return(0x0061); case 0x01CF: /* I caron */ return(0x0049); case 0x01D0: /* i caron */ return(0x0069); case 0x01D1: /* O caron */ return(0x004f); case 0x01D2: /* o caron */ return(0x006f); case 0x01D3: /* U caron */ return(0x0055); case 0x01D4: /* u caron */ return(0x0075); /* U diaeresis + other things */ case 0x01D5: case 0x01D7: case 0x01D9: case 0x01DB: return(0x00dc); /* u diaeresis + other things */ case 0x01D6: case 0x01Da: case 0x01Dc: return(0x00fc); /* Fill in more here if anybody asks */ default: return(0xfffd); } } if (c >= 0x1e00 && c <= 0x1eff) { /* Latin Extended Additional */ if (c >= 0x1e80 && c <= 0x1e85) return(c); else return(0xfffd); } if (c >= 0x0400 && c <= 0x04ff) { /* Cyrillic */ if (c >= 0x0400 && c <= 0x045f || c == 0x0490 || c == 0x0491) return(c); else return(0xfffd); } if (c >= 0x0370 && c <= 0x03ff) { /* Greek */ if (c == 0x037e || c >= 0x0384 && c <= 0x03ce) return(c); switch (c) { case 0x0374: case 0x0375: return(0x0027); case 0x037a: return(0x002c); /* Fill in more here if needed */ default: return(0xfffd); } } if (c >= 0x1f00 && c <= 0x1fff) { /* Greek Extended */ /* Fill in if asked */ return(0xfffd); } if (c >= 0x20a0 && c <= 0x20cf) { /* Currency symbols */ if (c == 0x20a3 || c == 0x20a4 || c == 0x20a7 || c == 0x20ac) return(c); else return(0xfffd); } if (c >= 0x2100 && c <= 0x214f) { /* Letterlike symbols */ if (c == 0x2116 || c == 0x2122 || c == 0x2126) return(c); else return(0xfffd); } if (c >= 0x2150 && c <= 0x218f) { /* Number forms */ if (c >= 0x215b && c <= 0x215e) /* Roman numerals etc */ return(c); else return(0xfffd); } if (c >= 0x02b0 && c <= 0x02ff) { /* Spacing modifier letters */ if (c == 0x02c6 || c == 0x02c7 || c == 0x02c9 || c >= 0x02d8 && c <= 0x02dd) return(c); switch (c) { case 0x02b0: case 0x02b1: return(0x0068); case 0x02b2: return(0x006a); case 0x02b3: case 0x02b4: case 0x02b5: return(0x0072); case 0x02b7: return(0x0077); case 0x02b8: return(0x0079); case 0x02b9: return(0x00b4); case 0x02ba: return(0x0022); case 0x02bb: case 0x02bc: case 0x02bd: case 0x02be: case 0x02bf: return(0x0027); case 0x02c2: return(0x003c); case 0x02c3: return(0x003e); case 0x02da: return(0x00b0); case 0x02dc: return(0x007e); default: return(0xfffd); } } if (c >= 0x2000 && c <= 0x206f) { /* General Punctuation */ if (c >= 0x2013 && c <= 0x2015 || c >= 0x2017 && c <= 0x201a || c >= 0x201c && c <= 0x201e || c >= 0x2020 && c <= 0x2022 || c == 0x2026 || c == 0x2030 || c >= 0x2039 && c <= 0x203a || c == 0x203c || c == 0x203e || c == 0x2044) return(c); else if (c == 0x2016) return(0x2551); else if (c == 0x2017) return(0x2550); else if (c == 0x2044) return(0x002f); else return(0xfffd); } if (c == 0xfb01 || c == 0xfb02) /* Alphabetic Presentation Forms */ return(c); return(0xfffd); /* Catch-all */ } #endif /* OS2 */ /* Table of Blah-to-Unicode information structures. KEEP THIS IN SYNC WITH THE TX_blah DEFINITIONS in ckcuni.h. */ struct x_to_unicode * txrinfo[MAXTXSETS+1] = { &u_ascii, /* 0 US ISO 646 (ASCII) */ &u_british, /* 1 UK ISO 646 */ &u_fr_canadian, /* 2 Canadian French NRC */ NULL, /* 3 Cuba */ NULL, /* 4 Czecho */ &u_danish, /* 5 Danish/Norwegian ISO 646 */ &u_dutch, /* 6 Dutch NRC */ &u_finnish, /* 7 Finnish NRC */ &u_french, /* 8 French ISO 646 */ &u_german, /* 9 German ISO 646 */ &u_hebrew7, /* 10 Hebrew-7 (DEC) */ &u_hungarian, /* 11 Hungarian ISO 646 */ &u_icelandic, /* 12 Icelandic NRC */ &u_italian, /* 13 Italian ISO 646 */ &u_jis0201r, /* 14 Japanese Roman ISO 646 */ &u_jis0201k, /* 15 Japanese Katakana */ &u_koi7, /* 16 Short KOI */ &u_danish, /* 17 Norwegian/Danish ISO 646 */ &u_portuguese, /* 18 Portuguese ISO 646 */ &u_spanish, /* 19 spanish ISO 646 */ &u_swedish, /* 20 Swedish ISO 646 */ NULL, /* 21 Swedish ISO 646 for names */ &u_swiss, /* 22 Swiss NRC */ &u_8859_1, /* 23 ISO 8859-1 */ &u_8859_2, /* 24 ISO 8859-2 */ &u_8859_3, /* 25 ISO 8859-3 */ &u_8859_4, /* 26 ISO 8859-4 */ &u_8859_5, /* 27 ISO 8859-5 */ /* Cyrillic */ &u_8859_6, /* 28 ISO 8859-6 */ /* Arabic */ &u_8859_7, /* 29 ISO 8859-7 */ /* Greek */ &u_8859_8, /* 30 ISO 8859-8 */ /* Hebrew */ &u_8859_9, /* 31 ISO 8859-9 */ &u_8859_10, /* 32 ISO 8859-10 */ &u_koi8, /* 33 KOI-8 */ NULL, /* 34 JIS-7 */ NULL, /* 35 Shift JIS */ NULL, /* 36 Japanese EUC (JAE) */ NULL, /* 37 Japanese DEC Kanji */ &u_decmcs, /* 38 DEC MCS */ &u_nextstep, /* 39 NeXT */ &u_dgi, /* 40 DGI */ &u_maclatin, /* 41 Macintosh Latin */ &u_hproman8, /* 42 HP Roman 8 */ &u_cp437, /* 43 CP437 - Original */ &u_cp850, /* 44 CP850 - W Europe */ &u_cp852, /* 45 CP852 - E Europe */ &u_cp857, /* 46 CP857 - Turkish */ &u_cp862, /* 47 CP862 - Hebrew */ &u_cp864, /* 48 CP864 - Arabic */ &u_cp866, /* 49 CP866 - Cyrillic */ &u_cp869, /* 50 CP869 - Greek */ &u_decspec, /* 51 DEC Special Graphics */ &u_dectech, /* 52 DEC Technical */ &u_c0pics, /* 53 C0 Pictures */ &u_c1pics, /* 54 C1 Pictures */ &u_smiley, /* 55 IBM C0 Graphics */ &u_heath19g, /* 56 Heath 19 Graphics */ &u_tvig, /* 57 TVI Graphics */ &u_wyse_gn, /* 58 Wyse 60 Graphics Normal */ &u_wyse_g1, /* 59 Wyse 60 Graphics 1 */ &u_wyse_g2, /* 60 Wyse 60 Graphics 2 */ &u_wyse_g3, /* 61 Wyse 60 Graphics 3 */ &u_elot927, /* 62 Greek ELOT 927 */ &u_dgspec, /* 63 DG Special graphics */ &u_dgline, /* 64 DG Line drawing */ &u_dgword, /* 65 DG Word processing */ &u_hpline, /* 66 HP Line drawing */ &u_hpmath, /* 67 HP Math/Technical */ &u_qnxgrph, /* 68 QNX Graphics */ &u_snibrack, /* 69 SNI Brackets */ &u_snieuro, /* 70 SNI Euro */ &u_snifacet, /* 71 SNI Facet */ &u_sniibm, /* 72 SNI IBM */ &u_sniblanks, /* 73 SNI Blanks */ &u_cp1252, /* 74 Windows Latin-1 */ &u_cp1250, /* 75 Windows Latin-2 */ &u_cp1251, /* 76 Windows Cyrillic */ &u_cp1253, /* 77 Windows Greek */ &u_cp1254, /* 78 Windows Turkish */ &u_cp1257, /* 79 Windows Latin-4 */ &u_cp856, /* 80 Cyrillic PC Code Page 856 */ &u_cp855, /* 81 Cyrillic PC Code Page 855 */ &u_8859_1, /* 82 CP819 - Same as 8859-1 */ &u_8859_2, /* 83 CP912 - Same as 8859-2 */ &u_8859_3, /* 84 CP913 - Same as 8859-3 */ &u_8859_4, /* 85 CP914 - Same as 8859-4 */ &u_8859_5, /* 86 CP915 - Same as 8859-5 */ &u_8859_6, /* 87 CP1089 - Same as 8859-6 */ &u_8859_7, /* 88 CP813 - Same as 8859-7 */ &u_8859_8, /* 89 CP916 - Same as 8859-8 */ &u_8859_9, /* 90 CP920 - Same as 8859-9 */ &u_hproman8, /* 91 CP1051 - Same as HP Roman 8 */ &u_cp858, /* 92 CP858 - W Europe w/Euro */ &u_8859_15, /* 93 ISO 8859-15 Latin-15 */ &u_8859_15, /* 94 CP923 - Same as 8859-15 */ &u_8859_7, /* 95 ELOT928 - Same as 8859-7 */ &u_quickdraw, /* 96 CP10000 - Apple Quickdraw */ &u_cp37, /* 97 CP37 - U.S. EBCDIC */ &u_cp1255, /* 98 CP1255 - Windows Hebrew */ &u_cp1256, /* 99 CP1256 - Windows Arabic */ &u_cp1258, /* 100 CP1258 - Windows Viet Nam */ &u_mazovia, /* 101 Mazovia Polish code page */ &u_transparent, /* 102 Transparent */ &u_hz1500, /* 103 Hazeltine 1500/1520 graphics */ &u_koi8r, /* 104 KOI8-R */ &u_koi8u, /* 105 KOI8-U */ &u_apl1, /* 106 APL 1 (ISO) */ &u_apl2, /* 107 APL 2 (Dyadic) */ &u_apl3, /* 108 APL 3 (Plus) */ &u_apl4, /* 108 APL 4 (IBM) */ &u_apl5 /* 110 APL 5 (2741) */ }; /* Table of Blah-to-Unicode translation functions. KEEP THIS IN SYNC WITH THE TX_blah DEFINITITIONS in ckcuni.h. */ USHORT #ifdef CK_ANSIC (*xl_u[MAXTXSETS+1])(CHAR) #else (*xl_u[MAXTXSETS+1])() #endif /* CK_ANSIC */ = { ascii_u, /* 0 US ISO 646 (ASCII) */ british_u, /* 1 UK ISO 646 */ fr_canadian_u, /* 2 Canadian French NRC */ NULL, /* 3 Cuba */ NULL, /* 4 Czecho */ danish_u, /* 5 Danish/Norwegian ISO 646 */ dutch_u, /* 6 Dutch NRC */ finnish_u, /* 7 Finnish NRC */ french_u, /* 8 French ISO 646 */ german_u, /* 9 German ISO 646 */ hebrew7_u, /* 10 Hebrew-7 (DEC) */ hungarian_u, /* 11 Hungarian ISO 646 */ icelandic_u, /* 12 Icelandic */ italian_u, /* 13 Italian ISO 646 */ jis0201r_u, /* 14 Japanese Roman ISO 646 */ jis0201k_u, /* 15 Japanese Katakana */ koi7_u, /* 16 Short KOI */ danish_u, /* 17 Norwegian/Danish ISO 646 */ portuguese_u, /* 18 Portuguese ISO 646 */ spanish_u, /* 19 spanish ISO 646 */ swedish_u, /* 20 Swedish ISO 646 */ NULL, /* 21 Swedish ISO 646 for names */ swiss_u, /* 22 Swiss NRC */ iso_8859_1_u, /* 23 ISO 8859-1 */ iso_8859_2_u, /* 24 ISO 8859-2 */ iso_8859_3_u, /* 25 ISO 8859-3 */ iso_8859_4_u, /* 26 ISO 8859-4 */ iso_8859_5_u, /* 27 ISO 8859-5 */ /* Cyrillic */ iso_8859_6_u, /* 28 ISO 8859-6 */ /* Arabic */ iso_8859_7_u, /* 29 ISO 8859-7 */ /* Greek */ iso_8859_8_u, /* 30 ISO 8859-8 */ /* Hebrew */ iso_8859_9_u, /* 31 ISO 8859-9 */ /* Latin-5 */ iso_8859_10_u, /* 32 ISO 8859-10 */ koi8_u, /* 33 KOI-8 */ NULL, /* 34 JIS-7 */ NULL, /* 35 Shift JIS */ NULL, /* 36 Japanese EUC (JAE) */ NULL, /* 37 Japanese DEC Kanji */ decmcs_u, /* 38 DEC MCS */ nextstep_u, /* 39 NeXT */ dgi_u, /* 40 DGI */ maclatin_u, /* 41 Macintosh Latin */ hproman8_u, /* 42 HP Roman 8 */ cp437_u, /* 43 CP437 - Original */ cp850_u, /* 44 CP850 - W Europe */ cp852_u, /* 45 CP852 - E Europe */ cp857_u, /* 46 CP857 - Turkish */ cp862_u, /* 47 CP862 - Hebrew */ cp864_u, /* 48 CP864 - Arabic */ cp866_u, /* 49 CP866 - Cyrillic */ cp869_u, /* 50 CP869 - Greek */ decspec_u, /* 51 DEC Special Graphics */ dectech_u, /* 52 DEC Technical */ c0pics_u, /* 53 C0 Pictures */ c1pics_u, /* 54 C1 Pictures */ smiley_u, /* 55 IBM C0 Graphics */ heath19g_u, /* 56 Heath 19 graphics */ tvig_u, /* 57 TVI graphics */ wyse_gn_u, /* 58 Wyse 60 normal-mode graphics */ wyse_g1_u, /* 59 Wyse 60 graphics 1 */ wyse_g2_u, /* 60 Wyse 60 graphics 2 */ wyse_g3_u, /* 61 Wyse 60 graphics 3 */ elot927_u, /* 62 Greek ELOT 927 */ dgspec_u, /* 63 DG Special graphics */ dgline_u, /* 64 DG Line drawing */ dgword_u, /* 65 DG Word processing */ hpline_u, /* 66 HP Line drawing */ hpmath_u, /* 67 HP Math/Technical */ qnxgrph_u, /* 68 QNX Graphics */ snibrack_u, /* 69 SNI Brackets */ snieuro_u, /* 70 SNI Euro */ snifacet_u, /* 71 SNI Facet */ sniibm_u, /* 72 SNI IBM */ sniblanks_u, /* 73 SNI Blanks */ cp1252_u, /* 74 Windows Latin-1 */ cp1250_u, /* 75 Windows Latin-2 */ cp1251_u, /* 76 Windows Cyrillic */ cp1253_u, /* 77 Windows Greek */ cp1254_u, /* 78 Windows Turkish */ cp1257_u, /* 79 Windows Latin-4 */ cp856_u, /* 80 Cyrillic PC Code Page 856 */ cp855_u, /* 81 Cyrillic PC Code Page 856 */ iso_8859_1_u, /* 82 CP819 - Same as 8859-1 */ iso_8859_2_u, /* 83 CP912 - Same as 8859-2 */ iso_8859_3_u, /* 84 CP913 - Same as 8859-3 */ iso_8859_4_u, /* 85 CP914 - Same as 8859-4 */ iso_8859_5_u, /* 86 CP915 - Same as 8859-5 */ iso_8859_6_u, /* 87 CP1089 - Same as 8859-6 */ iso_8859_7_u, /* 88 CP813 - Same as 8859-7 */ iso_8859_8_u, /* 89 CP916 - Same as 8859-8 */ iso_8859_9_u, /* 90 CP920 - Same as 8859-9 */ hproman8_u, /* 91 CP1051 -Same as HP Roman 8 */ cp858_u, /* 92 CP858 - W Europe w/Euro */ iso_8859_15_u, /* 93 ISO 8859-15 Latin 15 */ iso_8859_15_u, /* 94 CP923 - Same as 8859-15 */ iso_8859_7_u, /* 95 ELOT928 - Same as 8859-7 */ quickdraw_u, /* 96 CP10000 - Apple Quickdraw */ cp37_u, /* 97 CP37 - U.S. EBCDIC */ cp1255_u, /* 98 CP1255 - Windows Hebrew */ cp1256_u, /* 99 CP1256 - Windows Arabic */ cp1258_u, /* 100 CP1258 - Windows Viet Nam */ mazovia_u, /* 101 Mazovia PC code page */ ident_u, /* 102 Transparent - no translation */ hz1500_u, /* 103 Hazeltine 1500/1520 graphics */ koi8r_u, /* 104 KOI8-R */ koi8u_u, /* 105 KOI8-U */ apl1_u, /* 106 APL 1 (ISO) */ apl2_u, /* 107 APL 2 (AIX) */ apl3_u, /* 108 APL 3 (Plus) */ apl4_u, /* 109 APL 4 (IBM) */ apl5_u /* 110 APL 5 (2741) */ }; /* Table of Unicode-to-Blah translation functions. KEEP THIS IN SYNC WITH THE TX_blah DEFINITITIONS in ckcuni.h, and also with the tables above. */ int #ifdef CK_ANSIC (*xl_tx[MAXTXSETS+1])(USHORT) #else (*xl_tx[MAXTXSETS+1])() #endif /* CK_ANSIC */ = { tx_usascii, /* 0 US ISO 646 (ASCII) */ tx_british, /* 1 UK ISO 646 */ tx_fr_canadian, /* 2 Canadian French NRC */ NULL, /* 3 Cuba */ NULL, /* 4 Czecho */ tx_danish, /* 5 Danish/Norwegian ISO 646 */ tx_dutch, /* 6 Dutch NRC */ tx_finnish, /* 7 Finnish NRC */ tx_french, /* 8 French ISO 646 */ tx_german, /* 9 German ISO 646 */ tx_hebrew7, /* 10 Hebrew-7 (DEC) */ tx_hungarian, /* 11 Hungarian ISO 646 */ tx_icelandic, /* 12 Icelandic */ tx_italian, /* 13 Italian ISO 646 */ tx_jis0201r, /* 14 Japanese Roman ISO 646 */ tx_jis0201k, /* 15 Japanese Katakana */ tx_koi7, /* 16 Short KOI */ tx_danish, /* 17 Norwegian/Danish ISO 646 */ tx_portuguese, /* 18 Portuguese ISO 646 */ tx_spanish, /* 19 spanish ISO 646 */ tx_swedish, /* 20 Swedish ISO 646 */ NULL, /* 21 Swedish ISO 646 for names */ tx_swiss, /* 22 Swiss NRC */ tx_ident, /* 23 ISO 8859-1 */ tx_8859_2, /* 24 ISO 8859-2 */ tx_8859_3, /* 25 ISO 8859-3 */ tx_8859_4, /* 26 ISO 8859-4 */ tx_8859_5, /* 27 ISO 8859-5 */ /* Cyrillic */ tx_8859_6, /* 28 ISO 8859-6 */ /* Arabic */ tx_8859_7, /* 29 ISO 8859-7 */ /* Greek */ tx_8859_8, /* 30 ISO 8859-8 */ /* Hebrew */ tx_8859_9, /* 31 ISO 8859-9 */ /* Latin-5 */ tx_8859_10, /* 32 ISO 8859-10 */ /* Latin-6 */ tx_koi8, /* 33 KOI-8 */ NULL, /* 34 JIS-7 */ NULL, /* 35 Shift JIS */ NULL, /* 36 Japanese EUC (JAE) */ NULL, /* 37 Japanese DEC Kanji */ tx_decmcs, /* 38 DEC MCS */ tx_nextstep, /* 39 NeXT */ tx_dgi, /* 40 DGI */ tx_maclatin, /* 41 Macintosh Latin */ tx_hproman8, /* 42 HP Roman 8 */ tx_cp437, /* 43 CP437 - Original */ tx_cp850, /* 44 CP850 - W Europe */ tx_cp852, /* 45 CP852 - E Europe */ tx_cp857, /* 46 CP857 - Turkish */ tx_cp862, /* 47 CP862 - Hebrew */ tx_cp866, /* 48 CP864 - Arabic */ tx_cp866, /* 49 CP866 - Cyrillic */ tx_cp869, /* 50 CP869 - Greek */ NULL, /* Display only */ /* 51 DEC Special Graphics */ NULL, /* Display only */ /* 52 DEC Technical */ NULL, /* Display only */ /* 53 C0 Pictures */ NULL, /* Display only */ /* 54 C1 Pictures */ NULL, /* Display only */ /* 55 IBM C0 Graphics */ NULL, /* Display only */ /* 56 Heath 19 graphics */ NULL, /* Display only */ /* 57 TVI graphics */ NULL, /* Display only */ /* 58 Wyse 60 normal-mode graphics */ NULL, /* Display only */ /* 59 Wyse 60 graphics 1 */ NULL, /* Display only */ /* 60 Wyse 60 graphics 2 */ NULL, /* Display only */ /* 61 Wyse 60 graphics 3 */ tx_elot927, /* 62 Greek ELOT 927 */ NULL, /* Display only */ /* 63 DG special graphics */ NULL, /* Display only */ /* 64 DG line-drawing */ NULL, /* Display only */ /* 65 DG word-processing */ NULL, /* Display only */ /* 66 HP line-drawing */ NULL, /* Display only */ /* 67 HP math/techical */ NULL, /* Display only */ /* 68 QNX Graphics */ NULL, /* Display only */ /* 69 SNI Brackets */ NULL, /* Display only */ /* 70 SNI Euro */ NULL, /* Display only */ /* 71 SNI Facet */ NULL, /* Display only */ /* 72 SNI IBM */ NULL, /* Display only */ /* 73 SNI Blanks */ tx_cp1252, /* 74 Windows Latin-1 */ tx_cp1250, /* 75 Windows Latin-2 */ tx_cp1251, /* 76 Windows Cyrillic */ tx_cp1253, /* 77 Windows Greek */ tx_cp1254, /* 78 Windows Turkish */ tx_cp1257, /* 79 Windows Latin-4 */ tx_cp856, /* 80 Cyrillic PC Code Page 856 */ tx_cp855, /* 81 Cyrillic PC Code Page 855 */ tx_ident, /* 82 CP819 - Same as 8859-1 */ tx_8859_2, /* 83 CP912 - Same as 8859-2 */ tx_8859_3, /* 84 CP913 - Same as 8859-3 */ tx_8859_4, /* 85 CP914 - Same as 8859-4 */ tx_8859_5, /* 86 CP915 - Same as 8859-5 */ tx_8859_6, /* 87 CP1089 - Same as 8859-6 */ tx_8859_7, /* 88 CP813 - Same as 8859-7 */ tx_8859_8, /* 89 CP916 - Same as 8859-8 */ tx_8859_9, /* 90 CP920 - Same as 8859-9 */ tx_hproman8, /* 91 CP1051 -Same as HP Roman 8 */ tx_cp858, /* 92 CP858 - W Europe w/Euro */ tx_8859_15, /* 93 ISO 8859-15 Latin 15 */ tx_8859_15, /* 94 CP923 - Same as Latin 15 */ tx_8859_7, /* 95 ELOT928 - Same as 8859-7 */ tx_quickdraw, /* 96 CP10000 - Apple Quickdraw */ tx_cp37, /* 97 CP37 - U.S. EBCDIC */ tx_cp1255, /* 98 CP1255 - Windows Hebrew */ tx_cp1256, /* 99 CP1256 - Windows Arabic */ tx_cp1258, /* 100 CP1258 - Windows Viet Nam */ tx_mazovia, /* 101 Mazovia PC code page */ tx_ident, /* 102 Transparent - no translation */ NULL, /* Display only */ /* 103 Hazeltine 1500/1520 graphics */ tx_koi8r, /* 104 KOI8-R */ tx_koi8u, /* 105 KOI8-U */ tx_apl1, /* 106 APL 1 (ISO) */ tx_apl2, /* 107 APL 2 (AIX) */ tx_apl3, /* 108 APL 3 (Plus) */ tx_apl4, /* 108 APL 4 (IBM) */ tx_apl5 /* 110 APL 5 (2741) */ }; /* Table of FCS-to-Unicode translation functions. KEEP THIS IN SYNC WITH THE FC_blah DEFINITITIONS in ckuxla.h. */ USHORT #ifdef CK_ANSIC (*xl_fcu[MAXFCSETS+1])(CHAR) #else (*xl_fcu[MAXFCSETS+1])() #endif /* CK_ANSIC */ = { ascii_u, /* 0 US ISO 646 (ASCII) */ british_u, /* 1 UK ISO 646 */ dutch_u, /* 2 Dutch NRC */ finnish_u, /* 3 Finnish NRC */ french_u, /* 4 French ISO 646 */ fr_canadian_u, /* 5 Canadian French NRC */ german_u, /* 6 German ISO 646 */ hungarian_u, /* 7 Hungarian ISO 646 */ italian_u, /* 8 Italian ISO 646 */ danish_u, /* 9 Danish/Norwegian ISO 646 */ portuguese_u, /* 10 Portuguese ISO 646 */ spanish_u, /* 11 spanish ISO 646 */ swedish_u, /* 12 Swedish ISO 646 */ swiss_u, /* 13 Swiss NRC */ iso_8859_1_u, /* 14 ISO 8859-1 Latin-1 */ iso_8859_2_u, /* 15 ISO 8859-2 Latin-2 */ decmcs_u, /* 16 DEC MCS */ nextstep_u, /* 17 NeXT */ cp437_u, /* 18 CP437 - Original */ cp850_u, /* 19 CP850 - W Europe */ cp852_u, /* 20 CP852 - E Europe */ quickdraw_u, /* 21 CP10000 - Apple Quickdraw */ dgi_u, /* 22 DGI */ hproman8_u, /* 23 HP Roman 8 */ iso_8859_5_u, /* 24 ISO 8859-5 Cyrillic */ cp866_u, /* 25 CP866 - Cyrillic */ koi7_u, /* 26 Short KOI */ koi8_u, /* 27 KOI-8 */ NULL, /* 28 JIS-7 */ NULL, /* 29 Shift-JIS */ NULL, /* 30 Japanese EUC */ NULL, /* 31 DEC Kanji */ hebrew7_u, /* 32 Hebrew-7 (DEC) */ iso_8859_8_u, /* 33 ISO 8859-8 Hebrew */ cp862_u, /* 34 CP862 Hebrew */ elot927_u, /* 35 Greek ELOT 927 */ iso_8859_7_u, /* 36 ISO 8859-7 Greek */ cp869_u, /* 37 CP869 Greek */ iso_8859_15_u, /* 38 ISO 8859-15 Latin-9 */ cp858_u, /* 39 CP858 - W Europe w/Euro */ cp855_u, /* 40 Cyrillic PC Code Page 856 */ cp1251_u, /* 41 Windows Cyrillic */ cp856_u, /* 42 Bulgarian PC Code Page 856 */ cp1250_u, /* 43 Windows Latin-2 */ mazovia_u, /* 44 Mazovia PC code page */ NULL, /* 45 UCS-2 */ NULL, /* 46 UTF-8 */ koi8r_u, /* 47 KOI8-R */ koi8u_u, /* 48 KOI8-U */ cp1252_u /* 49 CP1252 */ }; /* Table of Unicode-to-FCS translation functions. KEEP THIS IN SYNC WITH THE FC_blah DEFINITITIONS in ckuxla.h. */ int #ifdef CK_ANSIC (*xl_ufc[MAXFCSETS+1])(USHORT) #else (*xl_ufc[MAXFCSETS+1])() #endif /* CK_ANSIC */ = { tx_usascii, /* 0 US ISO 646 (ASCII) */ tx_british, /* 1 UK ISO 646 */ tx_dutch, /* 2 Dutch NRC */ tx_finnish, /* 3 Finnish NRC */ tx_french, /* 4 French ISO 646 */ tx_fr_canadian, /* 5 Canadian French NRC */ tx_german, /* 6 German ISO 646 */ tx_hungarian, /* 7 Hungarian ISO 646 */ tx_italian, /* 8 Italian ISO 646 */ tx_danish, /* 9 Danish/Norwegian ISO 646 */ tx_portuguese, /* 10 Portuguese ISO 646 */ tx_spanish, /* 11 spanish ISO 646 */ tx_swedish, /* 12 Swedish ISO 646 */ tx_swiss, /* 13 Swiss NRC */ tx_ident, /* 14 ISO 8859-1 Latin-1 */ tx_8859_2, /* 15 ISO 8859-2 Latin-2 */ tx_decmcs, /* 16 DEC MCS */ tx_nextstep, /* 17 NeXT */ tx_cp437, /* 18 CP437 - Original */ tx_cp850, /* 19 CP850 - W Europe */ tx_cp852, /* 20 CP852 - E Europe */ tx_quickdraw, /* 21 CP10000 - Apple Quickdraw */ tx_dgi, /* 22 DGI */ tx_hproman8, /* 23 HP Roman 8 */ tx_8859_5, /* 24 ISO 8859-5 Cyrillic */ tx_cp866, /* 25 CP866 - Cyrillic */ tx_koi7, /* 26 Short KOI */ tx_koi8, /* 27 KOI-8 */ NULL, /* 28 JIS-7 */ NULL, /* 29 Shift-JIS */ NULL, /* 30 Japanese EUC */ NULL, /* 31 DEC Kanji */ tx_hebrew7, /* 32 Hebrew-7 (DEC) */ tx_8859_8, /* 33 ISO 8859-8 Hebrew */ tx_cp862, /* 34 CP862 Hebrew */ tx_elot927, /* 35 Greek ELOT 927 */ tx_8859_7, /* 36 ISO 8859-7 Greek */ tx_cp869, /* 37 CP869 Greek */ tx_8859_15, /* 38 ISO 8859-15 Latin-9 */ tx_cp858, /* 39 CP858 - W Europe w/Euro */ tx_cp855, /* 40 Cyrillic PC Code Page 856 */ tx_cp1251, /* 41 Windows Cyrillic */ tx_cp856, /* 42 Bulgarian PC Code Page 856 */ tx_cp1250, /* 43 Windows Latin-2 */ tx_mazovia, /* 44 Mazovia PC code page */ NULL, /* 45 UCS-2 */ NULL, /* 46 UTF-8 */ tx_koi8r, /* 47 KOI8-R */ tx_koi8u, /* 48 KOI8-U */ tx_cp1252 /* 49 CP1252 */ }; /* Table of TCS-to-Unicode translation functions. KEEP THIS IN SYNC WITH THE TC_blah DEFINITIONS in ckuxla.h. */ USHORT #ifdef CK_ANSIC (*xl_tcu[MAXTCSETS+1])(CHAR) #else (*xl_tcu[MAXTCSETS+1])() #endif /* CK_ANSIC */ = { NULL, /* 0 = Transparent */ ascii_u, /* 1 = ASCII */ iso_8859_1_u, /* 2 ISO 8859-1 Latin-1 */ iso_8859_2_u, /* 3 ISO 8859-2 Latin-2 */ iso_8859_5_u, /* 4 ISO 8859-5 Cyrillic */ NULL, /* 5 Japanese EUC */ iso_8859_8_u, /* 6 ISO 8859-8 Hebrew */ iso_8859_7_u, /* 7 ISO 8859-7 Greek */ iso_8859_15_u, /* 8 ISO 8859-15 Latin-9 */ NULL, /* 9 UCS-2 */ NULL /* 10 UTF-8 */ }; /* Table of Unicode-to-TCS translation functions. KEEP THIS IN SYNC WITH THE TC_blah DEFINITIONS in ckuxla.h. */ int #ifdef CK_ANSIC (*xl_utc[MAXTCSETS+1])(USHORT) #else (*xl_utc[MAXTCSETS+1])() #endif /* CK_ANSIC */ = { NULL, /* 0 = Transparent */ tx_usascii, /* 1 = ASCII */ tx_ident, /* 2 ISO 8859-1 Latin-1 */ tx_8859_2, /* 3 ISO 8859-2 Latin-2 */ tx_8859_5, /* 4 ISO 8859-5 Cyrillic */ NULL, /* 5 Japanese EUC */ tx_8859_8, /* 6 ISO 8859-8 Hebrew */ tx_8859_7, /* 7 ISO 8859-7 Greek */ tx_8859_15, /* 8 ISO 8859-15 Latin-9 */ NULL, /* 9 UCS-2 */ NULL /* 10 UTF-8 */ }; #ifdef COMMENT /* The UTF8 conversions are based on the ConvertUTF functions written by Mark E. Davis, copyright 1994 Taligent, Inc. Tables for use in calculating UTF8 conversions. These contain support for ISO-10646 which supports a 31-bit char size. NOTE: 0xnnnUL is NOT portable! */ ULONG offsetsFromUTF8[7] = { #ifdef CK_ANSIC 0x00000000UL, /* Ignored */ 0x00000000UL, 0x00003080UL, 0x000E2080UL, 0x03C82080UL, 0xFA082080UL, 0x82082080UL #else 0x00000000L, /* Ignored */ 0x00000000L, 0x00003080L, 0x000E2080L, 0x03C82080L, (unsigned) 0xFA082080L, (unsigned) 0x82082080L #endif /* CK_ANSIC */ }; CHAR bytesInUTF8[256] = { 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3, 4,4,4,4,4,4,4,4,5,5,5,5,6,6,6,6 }; #endif /* COMMENT */ CHAR firstByteMark[7] = {0x00, 0x00, 0xC0, 0xE0, 0xF0, 0xF8, 0xFC}; /* utf8_to_ucs2() takes one UTF-8 byte at a time. It returns a pointer the UCS-2 character if and only if the entire UTF-8 string has been received. Return values: 0: Complete UTF-8 sequence received; ucs2 points to valid ucs2 character. >0: UTF-8 sequence incomplete, ignore ucs2 value. <0: UTF-8 error, 0xfffd should be inserted BEFORE the ucs2 value. NOTE: A negative value is returned only when two return values are indicated, e.g. when a UTF-8 sequence is interrupted by an ASCII char. In this case the incomplete UTF-8 sequence must be replaced by 0xfffd, and then the ASCII character is kept as-is. In other error cases, ucs2 is set to 0xfffd and the return value is 0. */ #define UTFBUFSIZ 16 int #ifdef CK_ANSIC utf8_to_ucs2(CHAR ch, USHORT ** ucs2) #else utf8_to_ucs2(ch, ucs2) CHAR ch; USHORT ** ucs2; #endif /* CK_ANSIC */ { static USHORT ucs2return = 0; #ifdef COMMENT /* Unicode Consortium sample code works only with well-formed UTF8 */ int i = 0; static int len = 0; static CHAR utf8[UTFBUFSIZ] = { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 }; ULONG ucs4 = 0; utf8[len++] = ch; /* Add char to string to process */ if (len < bytesInUTF8[utf8[0]]) /* Need more bytes */ return(bytesInUTF8[utf8[0]] - len); switch (len) { /* Have complete sequence... */ case 6: ucs4 += utf8[i++]; ucs4 <<= 6; /* (fall-thru is intentional) */ case 5: ucs4 += utf8[i++]; ucs4 <<= 6; case 4: ucs4 += utf8[i++]; ucs4 <<= 6; case 3: ucs4 += utf8[i++]; ucs4 <<= 6; case 2: ucs4 += utf8[i++]; ucs4 <<= 6; case 1: ucs4 += utf8[i++]; } ucs4 -= offsetsFromUTF8[len]; ucs2return = (USHORT)(ucs4 & 0xFFFF); #ifdef DEBUG /* This shows that our return value is in the prevailing byte order: */ /* e.g. LE on PC, BE on Sparc. */ if (deblog) { char buf[16]; union ck_short xx; xx.x_short = ucs2return; sprintf(buf,"%04X",ucs2return); debug(F111,"utf8_to_ucs2 short",buf,ucs2return); debug(F101,"utf8_to_ucs2 char[0]","",xx.x_char[0]); debug(F101,"utf8_to_ucs2 char[1]","",xx.x_char[1]); } #endif /* DEBUG */ *ucs2 = &ucs2return; len = 0; return(0); #else /* Robuster code adapted from Thomas Dickey, Xfree86, recommended by Markus Kuhn. */ static int utfcount = 0; /* Position in UTF sequence */ int utferror = 0; /* Flag for malformed UTF */ unsigned c = ch; /* Input byte */ int haveucs2 = 0; if (ch < 0x80) { /* ASCII char... */ if (utfcount > 0) /* Not legal in UTF-8 sequence */ utferror = 1; /* so flag */ haveucs2 = 1; ucs2return = ch; /* but also return it */ utfcount = 0; /* reset UTF-8 count */ } else if (ch < 0xc0) { /* 0x80 <= c < 0xc0... */ if (utfcount < 1) { /* Not valid in first position... */ utferror = 1; } else { /* Maybe valid */ if (ucs2return > 0x03ff) { /* Value would be > 0xffff */ utferror = 1; /* so not valid */ } else { /* OK... */ ucs2return <<= 6; /* Shift result */ ucs2return |= (ch & 0x3f); /* and OR in this byte */ } if (--utfcount == 0) haveucs2 = 1; } } else { /* c >= 0xc0... */ if (utfcount > 0) utferror = 1; if (c < 0xe0) { utfcount = 1; ucs2return = (c & 0x1f); haveucs2 = 1; } else if (c < 0xf0) { utfcount = 2; ucs2return = (c & 0x0f); haveucs2 = 1; } else if (c < 0xf8) { utfcount = 3; ucs2return = (c & 0x07); haveucs2 = 1; } else if (c < 0xfc) { utfcount = 4; ucs2return = (c & 0x03); haveucs2 = 1; } else if (c < 0xfe) { utfcount = 5; ucs2return = (c & 0x01); haveucs2 = 1; } else { utferror = 1; utfcount = 0; } } if (haveucs2 == 0 && utferror != 0) { haveucs2 = 1; ucs2return = 0xfffd; utferror = 0; } if (haveucs2) { *ucs2 = &ucs2return; if (utferror) utfcount = 0 - utfcount; return(utfcount); } else { if (utfcount == 0) utfcount++; return(utfcount); } #endif /* COMMENT */ } /* ucs2_to_utf8() takes one ucs2 character and returns the length and and a pointer to an array containing the equivalent utf8 string. This code can easily be altered to support UCS4 simply by changing the input from USHORT to ULONG. Returns: >0: Number of bytes in the utf8 string. 0: (or less) Error. */ int #ifdef CK_ANSIC ucs2_to_utf8(USHORT ucs2, CHAR ** utf8) #else ucs2_to_utf8(ucs2, utf8) USHORT ucs2; CHAR ** utf8; #endif /* CK_ANSIC */ { static CHAR utf8return[8]={0,0,0,0,0,0,0,0}; register CONST ULONG byteMask = 0xBF; register CONST ULONG byteMark = 0x80; int utf8len = 0; int i = 0; if (ucs2 < 0x80) { utf8len = 1; debug(F101,"ucs2_to_utf8 X1","",utf8len); } else if (ucs2 < 0x800) { utf8len = 2; debug(F101,"ucs2_to_utf8 X2","",utf8len); } else #ifdef DO_UCS4 /* This is always true for UCS-2 but would be needed for UCS-4*/ /* When ucs2 is USHORT this gives compiler warnings. */ if (ucs2 <= 0xffff) #endif /* DO_UCS4 */ { utf8len = 3; debug(F101,"ucs2_to_utf8 X3","",utf8len); } #ifdef DO_UCS4 /* The following would be for UCS-4 */ else if (ucs2 < 0x200000) { utf8len = 4; } else if (ucs2 < 0x4000000) { utf8len = 5; } else if (ucs2 <= #ifdef CK_ANSIC 0x7FFFFFFFUL /* (doesn't really need the "U") */ #else 0x7FFFFFFFL #endif /* CK_ANSIC */ ) { /* 31 bits = max for UCS4 */ utf8len = 6; } else { utf8len = 2; ucs2 = 0xFFFD; /* Replacement for invalid char */ } #endif /* DO_UCS4 */ i = utf8len; /* index into utf8return */ utf8return[i--] = 0; /* Null terminate the string */ switch (utf8len) { /* code falls through cases! */ case 6: utf8return[i--] = (ucs2 | byteMark) & byteMask; ucs2 >>= 6; case 5: utf8return[i--] = (ucs2 | byteMark) & byteMask; ucs2 >>= 6; case 4: utf8return[i--] = (ucs2 | byteMark) & byteMask; ucs2 >>= 6; case 3: utf8return[i--] = (ucs2 | byteMark) & byteMask; ucs2 >>= 6; case 2: utf8return[i--] = (ucs2 | byteMark) & byteMask; ucs2 >>= 6; case 1: utf8return[i--] = ucs2 | firstByteMark[utf8len]; } debug(F111,"ucs2_to_utf8",utf8return,utf8len); *utf8 = utf8return; return(utf8len); } /* UTF-8 functions... */ #ifdef CK_ANSIC extern int (*xuf)(USHORT); /* Translation function UCS to FCS */ extern USHORT (*xfu)(CHAR); /* Translation function FCS to UCS */ #else extern int (*xuf)(); extern USHORT (*xfu)(); #endif /* CK_ANSIC */ /* u _ t o _ b -- UTF-8 to Byte */ /* Converts from UTF-8 to the current terminal or file character set. Call with: c: a single byte, which is part of a UTF-8 stream. Returns: -9: Error, with second char to follow (call u_to_b2() to get it). -2: UCS line/paragraph end (LS or PS). -1: UTF-8 stream is incomplete and more input is required. >=0: Byte value of result, possibly the "error" byte (e.g. '?'). Requires: Global (*xuf)() to point to a function that translates from UCS-2 to the appropriate term/file character set. */ static int savedbyte = 0; int /* Call if u_to_b() returns -9 */ u_to_b2() { return((unsigned)(savedbyte & 0xff)); } int /* UTF-8 to byte */ #ifdef CK_ANSIC u_to_b(CHAR c) #else u_to_b(c) CHAR c; #endif /* CK_ANSIC */ { int x; USHORT * ucs2, uc; if (!xuf) /* If no conversion function */ return(c); /* don't convert (shouldn't happen). */ x = utf8_to_ucs2(c,&ucs2); /* Send for conversion to UCS-2 */ if (x > 0) /* Not done yet... */ return(-1); uc = (x < 0) ? 0xfffd : *ucs2; /* Done, check result */ if (uc == 0x2028 || uc == 0x2029) /* LS or PS */ return(-2); return((unsigned)(((*xuf)(uc)) & 0xff)); /* Convert UCS-2 to byte */ } /* b _ t o _ u -- Byte to UTF-8 */ /* Converts a byte from the current terminal or file character set to UTF-8. Call with: c........ The byte to be converted. buf...... Pointer to buffer in which to place the result. buflen... Length of the result buffer. setsize.. The size of the source character set (128 or 256). Requires: Global (*xfu)() to point to the function to convert the byte to UCS-2. Returns: -1 if the xfu is NULL; otherwise: >0 indicating the length (in bytes) of the UTF-8 string. If the translation fails, the Unicode "Replacement Character" is returned (0xFFFD translated to UTF-8 == 0xFFBD). */ int /* Byte to UTF-8 */ #ifdef CK_ANSIC b_to_u(CHAR c, CHAR * buf, int buflen, int setsize) #else b_to_u(c, buf, buflen, setsize) CHAR c, * buf; int buflen, setsize; #endif /* CK_ANSIC */ { CHAR * tmp = NULL; int i, count = 0; USHORT uc; if (!xfu) { debug(F100,"b_to_u no xfu","",0); return(-1); } uc = c; if (((setsize > 128) && (c & 0x80)) || setsize <= 128) { if (xfu) /* FCS-to-UCS function */ uc = (*xfu)(c); } count = ucs2_to_utf8(uc,&tmp); if (count < 0) { buf[0] = 0xef; /* == 0xFFFD in UTF-8 */ buf[1] = 0xbf; buf[2] = 0xbd; buf[3] = '\0'; return(2); } if (count >= buflen) { debug(F101,"WARNING: UTF8 buffer overflow","",count); count = buflen - 1; } for (i = 0; i < count; i++) /* Copy to result buffer */ buf[i] = tmp[i]; buf[i] = '\0'; return(count); } #ifndef OS2 int isunicode( /* Tells whether the host we are */ #ifdef CK_ANSIC /* running on supports Unicode */ void /* display */ #endif /* CK_ANSIC */ ) { #ifdef NT extern int tt_unicode; #ifdef KUI return(tt_unicode); #else /* KUI */ if (tt_unicode && !isWin95()) return(1); else return(0); #endif /* KUI */ #else /* NT */ return(0); #endif /* NT */ } #endif /* OS2 */ #endif /* UNICODE */