applied 050_ck_patch.patch
[ckermit.git] / ckcuni.c
1 char * ckcuni = "Unicode support 8.0.115, 9 Oct 2002";
2
3 #ifdef OS2
4 #define KERMITFONT
5 #endif /* OS2 */
6
7 /*  C K C U N I . C  --  Unicode/Terminal character-set translations  */
8
9 /*
10   Copyright (C) 1999, 2004,
11     Trustees of Columbia University in the City of New York.
12     All rights reserved.  See the C-Kermit COPYING.TXT file or the
13     copyright text in the ckcmai.c module for disclaimer and permissions.
14
15   Authors:
16     Frank da Cruz <fdc@columbia.edu>
17       The Kermit Project, Columbia University, New York City.
18     Jeffrey E Altman <jaltman@secure-endpoints.com>
19       Secure Endpoints Inc., New York City
20
21   Functions u_blah() translate from blah to Unicode (incoming material).
22   Functions tx_blah() translate from Unicode to blah (keystrokes).
23   Function pointers are kept in parallel arrays indexed by TX_blah values
24   defined in ckcuni.h.   NOTE: tx_decspec and tx_dectech are undefined since
25   these character sets are never typed, only displayed.
26
27   The blah_u() routines accept an unsigned character value in character-set
28   blah, and return the Unicode translation, or 0xfffd if the character is not
29   defined in Unicode.  The 8th bit of the argument should be ignored, a`la ISO
30   4873 and 2022.
31
32   The tx_blah() routines accept a unicode value and return the value of the
33   corresponding character in character-set blah, or else -1 if the character
34   does not exist in blah.  In this case, the full 8-bit value is returned,
35   since ISO 2022 only works in the host-to-terminal direction.
36
37   NOTE: KERMITFONT should be defined only if we are using the new (still
38   hypothetical) Kermit font that has all the VT/Heath/Wyse/TVI graphic
39   characters in it.  IMPORTANT: all Kermitfont code points need updating to
40   the values in the final proposal to the UTC.
41
42   LATER NOTE: The needed characters were approved for Unicode 3.1, and
43   therefore nothing special should be required to use them, except that it
44   will take some time for them to show up in commercial fonts.
45
46   TO DO: A lot of the functions can be tightened up -- use ranges when
47   possible, sort switch statements in order of frequency, etc.
48 */
49 #include "ckcsym.h"                     /* Includes... */
50 #include "ckcdeb.h"
51 #include "ckcker.h"
52 #include "ckucmd.h"
53 #include "ckcxla.h"
54 #include "ckuxla.h"
55
56 #ifdef UNICODE
57
58 #ifdef OS2
59 /*
60   This material is needed for the integration of TextPS into Kermit 95.
61   When printing a file we use the SET FILE CHARACTER-SET value as the input
62   character-set and then convert it to the special Latin1 set called
63   CourierLatin1 using the Unicode translation functions.
64 */
65 struct _pair { int tx; int fc; } TXFC[] = {
66     TX_ASCII,       FC_USASCII,
67     TX_BRITISH,     FC_UKASCII,
68     TX_CN_FRENCH,   FC_FCASCII,
69     TX_CP437,       FC_CP437,
70     TX_CP850,       FC_CP850,
71     TX_CP852,       FC_CP852,
72     TX_CP857,       -2,
73     TX_CP862,       FC_CP862,
74     TX_CP864,       -2,
75     TX_CP866,       FC_CP866,
76     TX_CP869,       -2,
77     TX_CUBAN,       -2,
78     TX_CZECH,       -2,
79     TX_DANISH,      -2,
80     TX_DECMCS,      FC_DECMCS,
81     TX_DECSPEC,     -2,             /* while defined, not in fcs tables */
82     TX_DECTECH,     -2,             /* while defined, not in fcs tables */
83     TX_DGI,         FC_DGMCS,
84     TX_DUTCH,       FC_DUASCII,
85     TX_FINNISH,     FC_FIASCII,
86     TX_FRENCH,      FC_FRASCII,
87     TX_GERMAN,      FC_GEASCII,
88     TX_HE7,         FC_HE7,
89     TX_HPR8,        FC_HPR8,
90     TX_HUNGARIAN,   FC_HUASCII,
91     TX_ITALIAN,     FC_ITASCII,
92     TX_J201R,       -2,
93     TX_J201K,       -2,
94     TX_KOI7,        FC_KOI7,
95     TX_KOI8,        FC_KOI8,
96     TX_KOI8R,       FC_KOI8R,
97     TX_KOI8U,       FC_KOI8U,
98     TX_8859_1,      FC_1LATIN,
99     TX_8859_2,      FC_2LATIN,
100     TX_8859_3,      -2,
101     TX_8859_4,      -2,
102     TX_8859_5,      FC_CYRILL,
103     TX_8859_6,      -2,
104     TX_8859_7,      -2,
105     TX_8859_8,      FC_HEBREW,
106     TX_8859_9,      -2,
107     TX_8859_10,     -2,
108     TX_8859_15,     -2,
109     TX_MACL1,       FC_APPQD,
110     TX_NEXT,        FC_NEXT,
111     TX_NORWEGIAN,   FC_NOASCII,
112     TX_PORTUGUESE,  FC_POASCII,
113     TX_SPANISH,     FC_SPASCII,
114     TX_SWEDISH,     FC_SWASCII,
115     TX_SWISS,       FC_CHASCII,
116     TX_ICELANDIC,   -2,
117     TX_JIS7,        -2,
118     TX_SHJIS,       FC_SHJIS,
119     TX_JEUC,        FC_JEUC,
120     TX_JDEC,        FC_JDEC,
121     TX_ELOT927,     FC_ELOT,
122     TX_DGPCGRPH,    -2,
123     TX_DGLDGRPH,    -2,
124     TX_DGWPGRPH,    -2,
125     TX_HPLINE,      -2,
126     TX_HPMATH,      -2,
127     TX_QNXGRPH,     -2,
128     TX_SNIBRACK,    -2,
129     TX_SNIEURO,     -2,
130     TX_SNIFACET,    -2,
131     TX_SNIIBM,      -2,
132     TX_SNIBLANK,    -2,
133     TX_CP1252,      -2,
134     TX_CP1250,      FC_CP1250,
135     TX_CP1251,      FC_CP1251,
136     TX_CP1253,      -2,
137     TX_CP1254,      -2,
138     TX_CP1257,      -2,
139     TX_CP856,       -2,
140     TX_CP855,       FC_CP855,
141     TX_CP819,       FC_1LATIN,
142     TX_CP912,       FC_2LATIN,
143     TX_CP913,       -2,
144     TX_CP914,       -2,
145     TX_CP915,       FC_CYRILL,
146     TX_CP1089,      -2,
147     TX_CP813,       FC_GREEK,
148     TX_CP916,       FC_HEBREW,
149     TX_CP920,       -2,
150     TX_CP1051,      -2,
151     TX_CP858,       FC_CP858,
152     TX_8859_15,     FC_9LATIN,
153     TX_CP923,       FC_CP923,
154     TX_ELOT928,     -2,
155     TX_CP10000,     -2,
156     TX_CP37,        -2,
157     TX_CP1255,      -2,
158     TX_CP1256,      -2,
159     TX_CP1258,      -2,
160     TX_MAZOVIA,     FC_MAZOVIA,
161     TX_APL1,        -2,
162     TX_APL2,        -2,
163     TX_APL3,        -2,
164     TX_APL4,        -2,
165     TX_APL5,        -2,
166     TX_TRANSP,      FC_TRANSP
167 };
168 int nTXFC = sizeof(TXFC) / sizeof(struct _pair);
169
170 int
171 #ifdef CK_ANSIC
172 fc2tx(int fc)
173 #else
174 fc2tx(int c) int fc;
175 #endif /* CK_ANSIC */
176 {
177     int i;
178     for (i = 0; i < nTXFC ; i++)
179       if (TXFC[i].fc == fc && TXFC[i].tx >= 0)
180         return(TXFC[i].tx);
181     return(TX_ASCII);
182 }
183
184 int
185 #ifdef CK_ANSIC
186 tx2fc(int tx)
187 #else
188 tx2fc(int x) int tx;
189 #endif /* CK_ANSIC */
190 {
191     int i;
192     for (i = 0; i < nTXFC ; i++)
193       if (TXFC[i].tx == tx && TXFC[i].fc >= 0)
194         return(TXFC[i].fc);
195     return(FC_USASCII);
196 }
197
198 /* SET TERMINAL REMOTE CHARACTER-SET keyword table */
199
200 struct keytab txrtab[] = {
201     "apl2-ibm",         TX_APL4,       0,
202     "apl-2741",         TX_APL5,       0,
203     "apl-dyadic",       TX_APL2,       0,
204     "apl-iso",          TX_APL1,       0,
205     "apl-plus-2000",    TX_APL3,       0, /* = APL-2000 */
206     "arabic-iso",       TX_8859_6,     0,
207     "ascii",            TX_ASCII,      0,
208     "british",          TX_BRITISH,    0,
209     "canadian-french",  TX_CN_FRENCH,  0,
210     "bulgaria-pc",      TX_CP856,      0,
211 #ifdef COMMENT
212     "cp037",            TX_CP37,       0, /* U.S. EBCDIC */
213 #endif /* COMMENT */
214     "cp10000",          TX_CP10000,    0, /* Apple Quickdraw */
215     "cp1051",           TX_CP1051,     0, /* Same as HP Roman 8 */
216     "cp1089",           TX_CP1089,     0, /* Same as ISO 8859-6 */
217     "cp1250",           TX_CP1250,     0, /* Latin-2 Windows */
218     "cp1251",           TX_CP1251,     0, /* Cyrillic Windows */
219     "cp1252",           TX_CP1252,     0, /* Latin-1 Windows */
220     "cp1253",           TX_CP1253,     0, /* Greek Windows */
221     "cp1254",           TX_CP1254,     0, /* Turkey Windows */
222     "cp1255",           TX_CP1255,     0, /* Hebrew Windows */
223     "cp1256",           TX_CP1256,     0, /* Arabic Windows */
224     "cp1257",           TX_CP1257,     0, /* Latin-4 Windows */
225     "cp1258",           TX_CP1258,     0, /* Viet Nam Windows */
226     "cp437",            TX_CP437,      0,
227     "cp813",            TX_CP813,      0, /* Same as ISO 8859-7 */
228     "cp819",            TX_CP819,      0, /* Same as ISO 8859-1 */
229     "cp850",            TX_CP850,      0,
230     "cp852",            TX_CP852,      0,
231     "cp855",            TX_CP855,      0, /* Cyrillic */
232     "cp856",            TX_CP856,      CM_INV, /* Bulgaria */
233     "cp857",            TX_CP857,      0, /* Latin-5 */
234     "cp858",            TX_CP858,      0, /* Euro modified cp850 */
235     "cp862-hebrew",     TX_CP862,      0, /* Hebrew */
236     "cp864",            TX_CP864,      0, /* Arabic */
237     "cp866",            TX_CP866,      0, /* Cyrillic */
238     "cp869",            TX_CP869,      0, /* Greek */
239     "cp912",            TX_CP912,      0, /* Same as ISO 8859-2 */
240     "cp913",            TX_CP913,      0, /* Same as ISO 8859-3 */
241     "cp914",            TX_CP914,      0, /* Same as ISO 8859-4 */
242     "cp915",            TX_CP915,      0, /* Same as ISO 8859-5 */
243     "cp916",            TX_CP916,      0, /* Same as ISO 8859-8 */
244     "cp920",            TX_CP920,      0, /* Same as ISO 8859-9 */
245     "cp923",            TX_CP923,      0, /* Same as ISO 8859-15 */
246 #ifdef COMMENT
247 /* Not implemented yet */
248     "cuban",            TX_CUBAN,      0,
249 #endif /* COMMENT */
250     "cyrillic-iso",     TX_8859_5,     0,
251 #ifdef COMMENT
252 /* Not implemented yet */
253     "czech",            TX_CZECH,      0,
254 #endif /* COMMENT */
255     "danish",           TX_DANISH,     0,
256     "dec-m",            TX_DECMCS,     CM_ABR|CM_INV,
257     "dec-mcs",          TX_DECMCS,     CM_INV,
258     "dec-multinational",TX_DECMCS,     0,
259 #ifdef COMMENT                          /* Not implemented yet */
260     "dec-kanji",        TX_JDEC,       0,
261 #endif /* COMMENT */
262     "dec-special",      TX_DECSPEC,    0,
263     "dec-technical",    TX_DECTECH,    0,
264     "dg-international", TX_DGI,        0,
265     "dg-linedrawing",   TX_DGLDGRPH,   0,
266     "dg-specialgraphcs",TX_DGPCGRPH,   0,
267     "dg-wordprocessing",TX_DGWPGRPH,   0,
268     "dutch",            TX_DUTCH,      0,
269     "elot927-greek",    TX_ELOT927,    0,
270     "elot928-greek",    TX_ELOT928,    0,
271     "finnish",          TX_FINNISH,    0,
272     "french",           TX_FRENCH,     0,
273     "german",           TX_GERMAN,     0,
274     "greek-iso",        TX_8859_7,     0,
275     "hebrew-7",         TX_HE7,        0,
276     "hebrew-iso",       TX_8859_8,     0,
277     "hp-line-drawing",  TX_HPLINE,     0,
278     "hp-math/technical",TX_HPMATH,     0,
279     "hp-roman8",        TX_HPR8,       0,
280     "hungarian",        TX_HUNGARIAN,  0,
281     "italian",          TX_ITALIAN,    0,
282     "japanese-roman",   TX_J201R,      0,
283 #ifdef COMMENT                          /* Not implemented yet */
284     "japanese-euc",     TX_JEUC,       0,
285     "jis7-kanji",       TX_JIS7,       0,
286 #endif /* COMMENT */
287     "katakana",         TX_J201K,      0,
288     "ko",               TX_KOI8,       CM_ABR|CM_INV,
289     "koi",              TX_KOI8,       CM_ABR|CM_INV,
290     "koi8",             TX_KOI8,       0,
291     "koi8-cyrillic",    TX_KOI8,       CM_INV,
292     "koi8r",            TX_KOI8R,      0,
293     "koi8u",            TX_KOI8U,      0,
294     "l",                TX_8859_1,     CM_ABR|CM_INV,
295     "la",               TX_8859_1,     CM_ABR|CM_INV,
296     "lat",              TX_8859_1,     CM_ABR|CM_INV,
297     "lati",             TX_8859_1,     CM_ABR|CM_INV,
298     "latin",            TX_8859_1,     CM_ABR|CM_INV,
299     "latin1-iso",       TX_8859_1,     0,
300     "latin2-iso",       TX_8859_2,     0,
301     "latin3-iso",       TX_8859_3,     0,
302     "latin4-iso",       TX_8859_4,     0,
303     "latin5-iso",       TX_8859_9,     0,
304     "latin6-iso",       TX_8859_10,    0,
305     "latin9-iso",       TX_8859_15,    0,
306     "macintosh-latin",  TX_MACL1,      0,
307     "mazovia-pc",       TX_MAZOVIA,    0,
308     "next-multinational",TX_NEXT,      0,
309     "norwegian",        TX_NORWEGIAN,  0,
310     "portuguese",       TX_PORTUGUESE, 0,
311     "qnx-console",      TX_QNXGRPH,    0,
312 #ifdef COMMENT                          /* Not implemented yet */
313     "shift-jis",        TX_SHJIS,      0,
314 #endif /* COMMENT */
315     "short-koi",        TX_KOI7,       0,
316     "sni-blanks",       TX_SNIBLANK,   0,
317     "sni-brackets",     TX_SNIBRACK,   0,
318     "sni-euro",         TX_SNIEURO,    0,
319     "sni-facet",        TX_SNIFACET,   0,
320     "sni-ibm",          TX_SNIIBM,     0,
321     "spanish",          TX_SPANISH,    0,
322     "swedish",          TX_SWEDISH,    0,
323     "swiss",            TX_SWISS,      0,
324     "transparent",      TX_TRANSP,     0,
325 #ifdef COMMENT
326     "utf7",             TX_UTF7,       0,
327 #endif /* COMMENT */
328     "utf8",             TX_UTF8,       0,
329     "", 0, 0
330 };
331 int ntxrtab = sizeof(txrtab)/sizeof(struct keytab) - 1;
332 #endif /* OS2 */
333
334 #ifdef KANJI
335 /*
336   All Kanji/Unicode translations are based on the Unicode 3.0
337   Shift-JIS mapping.  Other character sets, like EUC-JP, JIS-7, etc,
338   are transformed algorithmically to/from Shift-JIS before/after
339   conversion to/from Unicode.  This is because Kanji/Unicode mapping
340   tables add about 120K to the program, and we don't want to do this
341   for each Kanji character set.
342 */
343 static USHORT                           /* Shift-JIS to Unicode */
344 sju_8140[] = {                          /* 0x8140 thru 0x9ffc */
345     0x3000, 0x3001, 0x3002, 0xff0c, 0xff0e, 0x30fb, 0xff1a, 0xff1b,
346     0xff1f, 0xff01, 0x309b, 0x309c, 0x00b4, 0xff40, 0x00a8, 0xff3e,
347     0xffe3, 0xff3f, 0x30fd, 0x30fe, 0x309d, 0x309e, 0x3003, 0x4edd,
348     0x3005, 0x3006, 0x3007, 0x30fc, 0x2015, 0x2010, 0xff0f, 0x005c,
349     0x301c, 0x2016, 0xff5c, 0x2026, 0x2025, 0x2018, 0x2019, 0x201c,
350     0x201d, 0xff08, 0xff09, 0x3014, 0x3015, 0xff3b, 0xff3d, 0xff5b,
351     0xff5d, 0x3008, 0x3009, 0x300a, 0x300b, 0x300c, 0x300d, 0x300e,
352     0x300f, 0x3010, 0x3011, 0xff0b, 0x2212, 0x00b1, 0x00d7, 0xfffd,
353     0x00f7, 0xff1d, 0x2260, 0xff1c, 0xff1e, 0x2266, 0x2267, 0x221e,
354     0x2234, 0x2642, 0x2640, 0x00b0, 0x2032, 0x2033, 0x2103, 0xffe5,
355     0xff04, 0x00a2, 0x00a3, 0xff05, 0xff03, 0xff06, 0xff0a, 0xff20,
356     0x00a7, 0x2606, 0x2605, 0x25cb, 0x25cf, 0x25ce, 0x25c7, 0x25c6,
357     0x25a1, 0x25a0, 0x25b3, 0x25b2, 0x25bd, 0x25bc, 0x203b, 0x3012,
358     0x2192, 0x2190, 0x2191, 0x2193, 0x3013, 0xfffd, 0xfffd, 0xfffd,
359     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
360     0x2208, 0x220b, 0x2286, 0x2287, 0x2282, 0x2283, 0x222a, 0x2229,
361     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
362     0x2227, 0x2228, 0x00ac, 0x21d2, 0x21d4, 0x2200, 0x2203, 0xfffd,
363     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
364     0xfffd, 0xfffd, 0x2220, 0x22a5, 0x2312, 0x2202, 0x2207, 0x2261,
365     0x2252, 0x226a, 0x226b, 0x221a, 0x223d, 0x221d, 0x2235, 0x222b,
366     0x222c, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
367     0x212b, 0x2030, 0x266f, 0x266d, 0x266a, 0x2020, 0x2021, 0x00b6,
368     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x25ef, 0xfffd, 0xfffd, 0xfffd,
369     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
370     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
371     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
372     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
373     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
374     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
375     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
376     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
377     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
378     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xff10,
379     0xff11, 0xff12, 0xff13, 0xff14, 0xff15, 0xff16, 0xff17, 0xff18,
380     0xff19, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
381     0xff21, 0xff22, 0xff23, 0xff24, 0xff25, 0xff26, 0xff27, 0xff28,
382     0xff29, 0xff2a, 0xff2b, 0xff2c, 0xff2d, 0xff2e, 0xff2f, 0xff30,
383     0xff31, 0xff32, 0xff33, 0xff34, 0xff35, 0xff36, 0xff37, 0xff38,
384     0xff39, 0xff3a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
385     0xfffd, 0xff41, 0xff42, 0xff43, 0xff44, 0xff45, 0xff46, 0xff47,
386     0xff48, 0xff49, 0xff4a, 0xff4b, 0xff4c, 0xff4d, 0xff4e, 0xff4f,
387     0xff50, 0xff51, 0xff52, 0xff53, 0xff54, 0xff55, 0xff56, 0xff57,
388     0xff58, 0xff59, 0xff5a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x3041,
389     0x3042, 0x3043, 0x3044, 0x3045, 0x3046, 0x3047, 0x3048, 0x3049,
390     0x304a, 0x304b, 0x304c, 0x304d, 0x304e, 0x304f, 0x3050, 0x3051,
391     0x3052, 0x3053, 0x3054, 0x3055, 0x3056, 0x3057, 0x3058, 0x3059,
392     0x305a, 0x305b, 0x305c, 0x305d, 0x305e, 0x305f, 0x3060, 0x3061,
393     0x3062, 0x3063, 0x3064, 0x3065, 0x3066, 0x3067, 0x3068, 0x3069,
394     0x306a, 0x306b, 0x306c, 0x306d, 0x306e, 0x306f, 0x3070, 0x3071,
395     0x3072, 0x3073, 0x3074, 0x3075, 0x3076, 0x3077, 0x3078, 0x3079,
396     0x307a, 0x307b, 0x307c, 0x307d, 0x307e, 0x307f, 0x3080, 0x3081,
397     0x3082, 0x3083, 0x3084, 0x3085, 0x3086, 0x3087, 0x3088, 0x3089,
398     0x308a, 0x308b, 0x308c, 0x308d, 0x308e, 0x308f, 0x3090, 0x3091,
399     0x3092, 0x3093, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
400     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
401     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
402     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
403     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
404     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
405     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
406     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
407     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
408     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
409     0x30a1, 0x30a2, 0x30a3, 0x30a4, 0x30a5, 0x30a6, 0x30a7, 0x30a8,
410     0x30a9, 0x30aa, 0x30ab, 0x30ac, 0x30ad, 0x30ae, 0x30af, 0x30b0,
411     0x30b1, 0x30b2, 0x30b3, 0x30b4, 0x30b5, 0x30b6, 0x30b7, 0x30b8,
412     0x30b9, 0x30ba, 0x30bb, 0x30bc, 0x30bd, 0x30be, 0x30bf, 0x30c0,
413     0x30c1, 0x30c2, 0x30c3, 0x30c4, 0x30c5, 0x30c6, 0x30c7, 0x30c8,
414     0x30c9, 0x30ca, 0x30cb, 0x30cc, 0x30cd, 0x30ce, 0x30cf, 0x30d0,
415     0x30d1, 0x30d2, 0x30d3, 0x30d4, 0x30d5, 0x30d6, 0x30d7, 0x30d8,
416     0x30d9, 0x30da, 0x30db, 0x30dc, 0x30dd, 0x30de, 0x30df, 0xfffd,
417     0x30e0, 0x30e1, 0x30e2, 0x30e3, 0x30e4, 0x30e5, 0x30e6, 0x30e7,
418     0x30e8, 0x30e9, 0x30ea, 0x30eb, 0x30ec, 0x30ed, 0x30ee, 0x30ef,
419     0x30f0, 0x30f1, 0x30f2, 0x30f3, 0x30f4, 0x30f5, 0x30f6, 0xfffd,
420     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x0391,
421     0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397, 0x0398, 0x0399,
422     0x039a, 0x039b, 0x039c, 0x039d, 0x039e, 0x039f, 0x03a0, 0x03a1,
423     0x03a3, 0x03a4, 0x03a5, 0x03a6, 0x03a7, 0x03a8, 0x03a9, 0xfffd,
424     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x03b1,
425     0x03b2, 0x03b3, 0x03b4, 0x03b5, 0x03b6, 0x03b7, 0x03b8, 0x03b9,
426     0x03ba, 0x03bb, 0x03bc, 0x03bd, 0x03be, 0x03bf, 0x03c0, 0x03c1,
427     0x03c3, 0x03c4, 0x03c5, 0x03c6, 0x03c7, 0x03c8, 0x03c9, 0xfffd,
428     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
429     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
430     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
431     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
432     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
433     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
434     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
435     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
436     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
437     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
438     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
439     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
440     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
441     0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0401, 0x0416,
442     0x0417, 0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e,
443     0x041f, 0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426,
444     0x0427, 0x0428, 0x0429, 0x042a, 0x042b, 0x042c, 0x042d, 0x042e,
445     0x042f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
446     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
447     0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0451, 0x0436,
448     0x0437, 0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0xfffd,
449     0x043e, 0x043f, 0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445,
450     0x0446, 0x0447, 0x0448, 0x0449, 0x044a, 0x044b, 0x044c, 0x044d,
451     0x044e, 0x044f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
452     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x2500,
453     0x2502, 0x250c, 0x2510, 0x2518, 0x2514, 0x251c, 0x252c, 0x2524,
454     0x2534, 0x253c, 0x2501, 0x2503, 0x250f, 0x2513, 0x251b, 0x2517,
455     0x2523, 0x2533, 0x252b, 0x253b, 0x254b, 0x2520, 0x252f, 0x2528,
456     0x2537, 0x253f, 0x251d, 0x2530, 0x2525, 0x2538, 0x2542, 0xfffd,
457     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
458     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
459     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
460     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
461     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
462     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
463     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
464     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
465     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
466     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
467     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
468     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
469     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
470     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
471     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
472     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
473     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
474     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
475     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
476     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
477     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
478     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
479     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
480     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
481     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
482     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
483     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
484     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
485     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
486     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
487     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
488     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
489     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
490     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
491     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
492     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
493     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
494     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
495     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
496     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
497     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
498     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
499     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
500     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
501     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
502     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
503     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
504     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
505     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
506     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
507     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
508     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
509     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
510     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
511     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
512     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
513     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
514     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
515     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
516     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
517     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
518     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
519     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
520     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
521     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
522     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
523     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
524     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
525     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
526     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
527     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
528     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
529     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
530     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
531     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
532     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
533     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
534     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
535     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
536     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
537     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
538     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
539     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
540     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
541     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
542     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
543     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
544     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
545     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
546     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
547     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
548     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
549     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
550     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
551     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
552     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
553     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
554     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
555     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
556     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
557     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
558     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
559     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
560     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
561     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
562     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
563     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
564     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
565     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
566     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
567     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
568     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
569     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
570     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
571     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
572     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
573     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
574     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
575     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
576     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
577     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
578     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
579     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
580     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x4e9c,
581     0x5516, 0x5a03, 0x963f, 0x54c0, 0x611b, 0x6328, 0x59f6, 0x9022,
582     0x8475, 0x831c, 0x7a50, 0x60aa, 0x63e1, 0x6e25, 0x65ed, 0x8466,
583     0x82a6, 0x9bf5, 0x6893, 0x5727, 0x65a1, 0x6271, 0x5b9b, 0x59d0,
584     0x867b, 0x98f4, 0x7d62, 0x7dbe, 0x9b8e, 0x6216, 0x7c9f, 0x88b7,
585     0x5b89, 0x5eb5, 0x6309, 0x6697, 0x6848, 0x95c7, 0x978d, 0x674f,
586     0x4ee5, 0x4f0a, 0x4f4d, 0x4f9d, 0x5049, 0x56f2, 0x5937, 0x59d4,
587     0x5a01, 0x5c09, 0x60df, 0x610f, 0x6170, 0x6613, 0x6905, 0x70ba,
588     0x754f, 0x7570, 0x79fb, 0x7dad, 0x7def, 0x80c3, 0x840e, 0x8863,
589     0x8b02, 0x9055, 0x907a, 0x533b, 0x4e95, 0x4ea5, 0x57df, 0x80b2,
590     0x90c1, 0x78ef, 0x4e00, 0x58f1, 0x6ea2, 0x9038, 0x7a32, 0x8328,
591     0x828b, 0x9c2f, 0x5141, 0x5370, 0x54bd, 0x54e1, 0x56e0, 0x59fb,
592     0x5f15, 0x98f2, 0x6deb, 0x80e4, 0x852d, 0xfffd, 0xfffd, 0xfffd,
593     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
594     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
595     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
596     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
597     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
598     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
599     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
600     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
601     0x9662, 0x9670, 0x96a0, 0x97fb, 0x540b, 0x53f3, 0x5b87, 0x70cf,
602     0x7fbd, 0x8fc2, 0x96e8, 0x536f, 0x9d5c, 0x7aba, 0x4e11, 0x7893,
603     0x81fc, 0x6e26, 0x5618, 0x5504, 0x6b1d, 0x851a, 0x9c3b, 0x59e5,
604     0x53a9, 0x6d66, 0x74dc, 0x958f, 0x5642, 0x4e91, 0x904b, 0x96f2,
605     0x834f, 0x990c, 0x53e1, 0x55b6, 0x5b30, 0x5f71, 0x6620, 0x66f3,
606     0x6804, 0x6c38, 0x6cf3, 0x6d29, 0x745b, 0x76c8, 0x7a4e, 0x9834,
607     0x82f1, 0x885b, 0x8a60, 0x92ed, 0x6db2, 0x75ab, 0x76ca, 0x99c5,
608     0x60a6, 0x8b01, 0x8d8a, 0x95b2, 0x698e, 0x53ad, 0x5186, 0xfffd,
609     0x5712, 0x5830, 0x5944, 0x5bb4, 0x5ef6, 0x6028, 0x63a9, 0x63f4,
610     0x6cbf, 0x6f14, 0x708e, 0x7114, 0x7159, 0x71d5, 0x733f, 0x7e01,
611     0x8276, 0x82d1, 0x8597, 0x9060, 0x925b, 0x9d1b, 0x5869, 0x65bc,
612     0x6c5a, 0x7525, 0x51f9, 0x592e, 0x5965, 0x5f80, 0x5fdc, 0x62bc,
613     0x65fa, 0x6a2a, 0x6b27, 0x6bb4, 0x738b, 0x7fc1, 0x8956, 0x9d2c,
614     0x9d0e, 0x9ec4, 0x5ca1, 0x6c96, 0x837b, 0x5104, 0x5c4b, 0x61b6,
615     0x81c6, 0x6876, 0x7261, 0x4e59, 0x4ffa, 0x5378, 0x6069, 0x6e29,
616     0x7a4f, 0x97f3, 0x4e0b, 0x5316, 0x4eee, 0x4f55, 0x4f3d, 0x4fa1,
617     0x4f73, 0x52a0, 0x53ef, 0x5609, 0x590f, 0x5ac1, 0x5bb6, 0x5be1,
618     0x79d1, 0x6687, 0x679c, 0x67b6, 0x6b4c, 0x6cb3, 0x706b, 0x73c2,
619     0x798d, 0x79be, 0x7a3c, 0x7b87, 0x82b1, 0x82db, 0x8304, 0x8377,
620     0x83ef, 0x83d3, 0x8766, 0x8ab2, 0x5629, 0x8ca8, 0x8fe6, 0x904e,
621     0x971e, 0x868a, 0x4fc4, 0x5ce8, 0x6211, 0x7259, 0x753b, 0x81e5,
622     0x82bd, 0x86fe, 0x8cc0, 0x96c5, 0x9913, 0x99d5, 0x4ecb, 0x4f1a,
623     0x89e3, 0x56de, 0x584a, 0x58ca, 0x5efb, 0x5feb, 0x602a, 0x6094,
624     0x6062, 0x61d0, 0x6212, 0x62d0, 0x6539, 0xfffd, 0xfffd, 0xfffd,
625     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
626     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
627     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
628     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
629     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
630     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
631     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
632     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
633     0x9b41, 0x6666, 0x68b0, 0x6d77, 0x7070, 0x754c, 0x7686, 0x7d75,
634     0x82a5, 0x87f9, 0x958b, 0x968e, 0x8c9d, 0x51f1, 0x52be, 0x5916,
635     0x54b3, 0x5bb3, 0x5d16, 0x6168, 0x6982, 0x6daf, 0x788d, 0x84cb,
636     0x8857, 0x8a72, 0x93a7, 0x9ab8, 0x6d6c, 0x99a8, 0x86d9, 0x57a3,
637     0x67ff, 0x86ce, 0x920e, 0x5283, 0x5687, 0x5404, 0x5ed3, 0x62e1,
638     0x64b9, 0x683c, 0x6838, 0x6bbb, 0x7372, 0x78ba, 0x7a6b, 0x899a,
639     0x89d2, 0x8d6b, 0x8f03, 0x90ed, 0x95a3, 0x9694, 0x9769, 0x5b66,
640     0x5cb3, 0x697d, 0x984d, 0x984e, 0x639b, 0x7b20, 0x6a2b, 0xfffd,
641     0x6a7f, 0x68b6, 0x9c0d, 0x6f5f, 0x5272, 0x559d, 0x6070, 0x62ec,
642     0x6d3b, 0x6e07, 0x6ed1, 0x845b, 0x8910, 0x8f44, 0x4e14, 0x9c39,
643     0x53f6, 0x691b, 0x6a3a, 0x9784, 0x682a, 0x515c, 0x7ac3, 0x84b2,
644     0x91dc, 0x938c, 0x565b, 0x9d28, 0x6822, 0x8305, 0x8431, 0x7ca5,
645     0x5208, 0x82c5, 0x74e6, 0x4e7e, 0x4f83, 0x51a0, 0x5bd2, 0x520a,
646     0x52d8, 0x52e7, 0x5dfb, 0x559a, 0x582a, 0x59e6, 0x5b8c, 0x5b98,
647     0x5bdb, 0x5e72, 0x5e79, 0x60a3, 0x611f, 0x6163, 0x61be, 0x63db,
648     0x6562, 0x67d1, 0x6853, 0x68fa, 0x6b3e, 0x6b53, 0x6c57, 0x6f22,
649     0x6f97, 0x6f45, 0x74b0, 0x7518, 0x76e3, 0x770b, 0x7aff, 0x7ba1,
650     0x7c21, 0x7de9, 0x7f36, 0x7ff0, 0x809d, 0x8266, 0x839e, 0x89b3,
651     0x8acc, 0x8cab, 0x9084, 0x9451, 0x9593, 0x9591, 0x95a2, 0x9665,
652     0x97d3, 0x9928, 0x8218, 0x4e38, 0x542b, 0x5cb8, 0x5dcc, 0x73a9,
653     0x764c, 0x773c, 0x5ca9, 0x7feb, 0x8d0b, 0x96c1, 0x9811, 0x9854,
654     0x9858, 0x4f01, 0x4f0e, 0x5371, 0x559c, 0x5668, 0x57fa, 0x5947,
655     0x5b09, 0x5bc4, 0x5c90, 0x5e0c, 0x5e7e, 0x5fcc, 0x63ee, 0x673a,
656     0x65d7, 0x65e2, 0x671f, 0x68cb, 0x68c4, 0xfffd, 0xfffd, 0xfffd,
657     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
658     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
659     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
660     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
661     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
662     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
663     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
664     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
665     0x6a5f, 0x5e30, 0x6bc5, 0x6c17, 0x6c7d, 0x757f, 0x7948, 0x5b63,
666     0x7a00, 0x7d00, 0x5fbd, 0x898f, 0x8a18, 0x8cb4, 0x8d77, 0x8ecc,
667     0x8f1d, 0x98e2, 0x9a0e, 0x9b3c, 0x4e80, 0x507d, 0x5100, 0x5993,
668     0x5b9c, 0x622f, 0x6280, 0x64ec, 0x6b3a, 0x72a0, 0x7591, 0x7947,
669     0x7fa9, 0x87fb, 0x8abc, 0x8b70, 0x63ac, 0x83ca, 0x97a0, 0x5409,
670     0x5403, 0x55ab, 0x6854, 0x6a58, 0x8a70, 0x7827, 0x6775, 0x9ecd,
671     0x5374, 0x5ba2, 0x811a, 0x8650, 0x9006, 0x4e18, 0x4e45, 0x4ec7,
672     0x4f11, 0x53ca, 0x5438, 0x5bae, 0x5f13, 0x6025, 0x6551, 0xfffd,
673     0x673d, 0x6c42, 0x6c72, 0x6ce3, 0x7078, 0x7403, 0x7a76, 0x7aae,
674     0x7b08, 0x7d1a, 0x7cfe, 0x7d66, 0x65e7, 0x725b, 0x53bb, 0x5c45,
675     0x5de8, 0x62d2, 0x62e0, 0x6319, 0x6e20, 0x865a, 0x8a31, 0x8ddd,
676     0x92f8, 0x6f01, 0x79a6, 0x9b5a, 0x4ea8, 0x4eab, 0x4eac, 0x4f9b,
677     0x4fa0, 0x50d1, 0x5147, 0x7af6, 0x5171, 0x51f6, 0x5354, 0x5321,
678     0x537f, 0x53eb, 0x55ac, 0x5883, 0x5ce1, 0x5f37, 0x5f4a, 0x602f,
679     0x6050, 0x606d, 0x631f, 0x6559, 0x6a4b, 0x6cc1, 0x72c2, 0x72ed,
680     0x77ef, 0x80f8, 0x8105, 0x8208, 0x854e, 0x90f7, 0x93e1, 0x97ff,
681     0x9957, 0x9a5a, 0x4ef0, 0x51dd, 0x5c2d, 0x6681, 0x696d, 0x5c40,
682     0x66f2, 0x6975, 0x7389, 0x6850, 0x7c81, 0x50c5, 0x52e4, 0x5747,
683     0x5dfe, 0x9326, 0x65a4, 0x6b23, 0x6b3d, 0x7434, 0x7981, 0x79bd,
684     0x7b4b, 0x7dca, 0x82b9, 0x83cc, 0x887f, 0x895f, 0x8b39, 0x8fd1,
685     0x91d1, 0x541f, 0x9280, 0x4e5d, 0x5036, 0x53e5, 0x533a, 0x72d7,
686     0x7396, 0x77e9, 0x82e6, 0x8eaf, 0x99c6, 0x99c8, 0x99d2, 0x5177,
687     0x611a, 0x865e, 0x55b0, 0x7a7a, 0x5076, 0x5bd3, 0x9047, 0x9685,
688     0x4e32, 0x6adb, 0x91e7, 0x5c51, 0x5c48, 0xfffd, 0xfffd, 0xfffd,
689     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
690     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
691     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
692     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
693     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
694     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
695     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
696     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
697     0x6398, 0x7a9f, 0x6c93, 0x9774, 0x8f61, 0x7aaa, 0x718a, 0x9688,
698     0x7c82, 0x6817, 0x7e70, 0x6851, 0x936c, 0x52f2, 0x541b, 0x85ab,
699     0x8a13, 0x7fa4, 0x8ecd, 0x90e1, 0x5366, 0x8888, 0x7941, 0x4fc2,
700     0x50be, 0x5211, 0x5144, 0x5553, 0x572d, 0x73ea, 0x578b, 0x5951,
701     0x5f62, 0x5f84, 0x6075, 0x6176, 0x6167, 0x61a9, 0x63b2, 0x643a,
702     0x656c, 0x666f, 0x6842, 0x6e13, 0x7566, 0x7a3d, 0x7cfb, 0x7d4c,
703     0x7d99, 0x7e4b, 0x7f6b, 0x830e, 0x834a, 0x86cd, 0x8a08, 0x8a63,
704     0x8b66, 0x8efd, 0x981a, 0x9d8f, 0x82b8, 0x8fce, 0x9be8, 0xfffd,
705     0x5287, 0x621f, 0x6483, 0x6fc0, 0x9699, 0x6841, 0x5091, 0x6b20,
706     0x6c7a, 0x6f54, 0x7a74, 0x7d50, 0x8840, 0x8a23, 0x6708, 0x4ef6,
707     0x5039, 0x5026, 0x5065, 0x517c, 0x5238, 0x5263, 0x55a7, 0x570f,
708     0x5805, 0x5acc, 0x5efa, 0x61b2, 0x61f8, 0x62f3, 0x6372, 0x691c,
709     0x6a29, 0x727d, 0x72ac, 0x732e, 0x7814, 0x786f, 0x7d79, 0x770c,
710     0x80a9, 0x898b, 0x8b19, 0x8ce2, 0x8ed2, 0x9063, 0x9375, 0x967a,
711     0x9855, 0x9a13, 0x9e78, 0x5143, 0x539f, 0x53b3, 0x5e7b, 0x5f26,
712     0x6e1b, 0x6e90, 0x7384, 0x73fe, 0x7d43, 0x8237, 0x8a00, 0x8afa,
713     0x9650, 0x4e4e, 0x500b, 0x53e4, 0x547c, 0x56fa, 0x59d1, 0x5b64,
714     0x5df1, 0x5eab, 0x5f27, 0x6238, 0x6545, 0x67af, 0x6e56, 0x72d0,
715     0x7cca, 0x88b4, 0x80a1, 0x80e1, 0x83f0, 0x864e, 0x8a87, 0x8de8,
716     0x9237, 0x96c7, 0x9867, 0x9f13, 0x4e94, 0x4e92, 0x4f0d, 0x5348,
717     0x5449, 0x543e, 0x5a2f, 0x5f8c, 0x5fa1, 0x609f, 0x68a7, 0x6a8e,
718     0x745a, 0x7881, 0x8a9e, 0x8aa4, 0x8b77, 0x9190, 0x4e5e, 0x9bc9,
719     0x4ea4, 0x4f7c, 0x4faf, 0x5019, 0x5016, 0x5149, 0x516c, 0x529f,
720     0x52b9, 0x52fe, 0x539a, 0x53e3, 0x5411, 0xfffd, 0xfffd, 0xfffd,
721     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
722     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
723     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
724     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
725     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
726     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
727     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
728     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
729     0x540e, 0x5589, 0x5751, 0x57a2, 0x597d, 0x5b54, 0x5b5d, 0x5b8f,
730     0x5de5, 0x5de7, 0x5df7, 0x5e78, 0x5e83, 0x5e9a, 0x5eb7, 0x5f18,
731     0x6052, 0x614c, 0x6297, 0x62d8, 0x63a7, 0x653b, 0x6602, 0x6643,
732     0x66f4, 0x676d, 0x6821, 0x6897, 0x69cb, 0x6c5f, 0x6d2a, 0x6d69,
733     0x6e2f, 0x6e9d, 0x7532, 0x7687, 0x786c, 0x7a3f, 0x7ce0, 0x7d05,
734     0x7d18, 0x7d5e, 0x7db1, 0x8015, 0x8003, 0x80af, 0x80b1, 0x8154,
735     0x818f, 0x822a, 0x8352, 0x884c, 0x8861, 0x8b1b, 0x8ca2, 0x8cfc,
736     0x90ca, 0x9175, 0x9271, 0x783f, 0x92fc, 0x95a4, 0x964d, 0xfffd,
737     0x9805, 0x9999, 0x9ad8, 0x9d3b, 0x525b, 0x52ab, 0x53f7, 0x5408,
738     0x58d5, 0x62f7, 0x6fe0, 0x8c6a, 0x8f5f, 0x9eb9, 0x514b, 0x523b,
739     0x544a, 0x56fd, 0x7a40, 0x9177, 0x9d60, 0x9ed2, 0x7344, 0x6f09,
740     0x8170, 0x7511, 0x5ffd, 0x60da, 0x9aa8, 0x72db, 0x8fbc, 0x6b64,
741     0x9803, 0x4eca, 0x56f0, 0x5764, 0x58be, 0x5a5a, 0x6068, 0x61c7,
742     0x660f, 0x6606, 0x6839, 0x68b1, 0x6df7, 0x75d5, 0x7d3a, 0x826e,
743     0x9b42, 0x4e9b, 0x4f50, 0x53c9, 0x5506, 0x5d6f, 0x5de6, 0x5dee,
744     0x67fb, 0x6c99, 0x7473, 0x7802, 0x8a50, 0x9396, 0x88df, 0x5750,
745     0x5ea7, 0x632b, 0x50b5, 0x50ac, 0x518d, 0x6700, 0x54c9, 0x585e,
746     0x59bb, 0x5bb0, 0x5f69, 0x624d, 0x63a1, 0x683d, 0x6b73, 0x6e08,
747     0x707d, 0x91c7, 0x7280, 0x7815, 0x7826, 0x796d, 0x658e, 0x7d30,
748     0x83dc, 0x88c1, 0x8f09, 0x969b, 0x5264, 0x5728, 0x6750, 0x7f6a,
749     0x8ca1, 0x51b4, 0x5742, 0x962a, 0x583a, 0x698a, 0x80b4, 0x54b2,
750     0x5d0e, 0x57fc, 0x7895, 0x9dfa, 0x4f5c, 0x524a, 0x548b, 0x643e,
751     0x6628, 0x6714, 0x67f5, 0x7a84, 0x7b56, 0x7d22, 0x932f, 0x685c,
752     0x9bad, 0x7b39, 0x5319, 0x518a, 0x5237, 0xfffd, 0xfffd, 0xfffd,
753     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
754     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
755     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
756     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
757     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
758     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
759     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
760     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
761     0x5bdf, 0x62f6, 0x64ae, 0x64e6, 0x672d, 0x6bba, 0x85a9, 0x96d1,
762     0x7690, 0x9bd6, 0x634c, 0x9306, 0x9bab, 0x76bf, 0x6652, 0x4e09,
763     0x5098, 0x53c2, 0x5c71, 0x60e8, 0x6492, 0x6563, 0x685f, 0x71e6,
764     0x73ca, 0x7523, 0x7b97, 0x7e82, 0x8695, 0x8b83, 0x8cdb, 0x9178,
765     0x9910, 0x65ac, 0x66ab, 0x6b8b, 0x4ed5, 0x4ed4, 0x4f3a, 0x4f7f,
766     0x523a, 0x53f8, 0x53f2, 0x55e3, 0x56db, 0x58eb, 0x59cb, 0x59c9,
767     0x59ff, 0x5b50, 0x5c4d, 0x5e02, 0x5e2b, 0x5fd7, 0x601d, 0x6307,
768     0x652f, 0x5b5c, 0x65af, 0x65bd, 0x65e8, 0x679d, 0x6b62, 0xfffd,
769     0x6b7b, 0x6c0f, 0x7345, 0x7949, 0x79c1, 0x7cf8, 0x7d19, 0x7d2b,
770     0x80a2, 0x8102, 0x81f3, 0x8996, 0x8a5e, 0x8a69, 0x8a66, 0x8a8c,
771     0x8aee, 0x8cc7, 0x8cdc, 0x96cc, 0x98fc, 0x6b6f, 0x4e8b, 0x4f3c,
772     0x4f8d, 0x5150, 0x5b57, 0x5bfa, 0x6148, 0x6301, 0x6642, 0x6b21,
773     0x6ecb, 0x6cbb, 0x723e, 0x74bd, 0x75d4, 0x78c1, 0x793a, 0x800c,
774     0x8033, 0x81ea, 0x8494, 0x8f9e, 0x6c50, 0x9e7f, 0x5f0f, 0x8b58,
775     0x9d2b, 0x7afa, 0x8ef8, 0x5b8d, 0x96eb, 0x4e03, 0x53f1, 0x57f7,
776     0x5931, 0x5ac9, 0x5ba4, 0x6089, 0x6e7f, 0x6f06, 0x75be, 0x8cea,
777     0x5b9f, 0x8500, 0x7be0, 0x5072, 0x67f4, 0x829d, 0x5c61, 0x854a,
778     0x7e1e, 0x820e, 0x5199, 0x5c04, 0x6368, 0x8d66, 0x659c, 0x716e,
779     0x793e, 0x7d17, 0x8005, 0x8b1d, 0x8eca, 0x906e, 0x86c7, 0x90aa,
780     0x501f, 0x52fa, 0x5c3a, 0x6753, 0x707c, 0x7235, 0x914c, 0x91c8,
781     0x932b, 0x82e5, 0x5bc2, 0x5f31, 0x60f9, 0x4e3b, 0x53d6, 0x5b88,
782     0x624b, 0x6731, 0x6b8a, 0x72e9, 0x73e0, 0x7a2e, 0x816b, 0x8da3,
783     0x9152, 0x9996, 0x5112, 0x53d7, 0x546a, 0x5bff, 0x6388, 0x6a39,
784     0x7dac, 0x9700, 0x56da, 0x53ce, 0x5468, 0xfffd, 0xfffd, 0xfffd,
785     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
786     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
787     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
788     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
789     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
790     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
791     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
792     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
793     0x5b97, 0x5c31, 0x5dde, 0x4fee, 0x6101, 0x62fe, 0x6d32, 0x79c0,
794     0x79cb, 0x7d42, 0x7e4d, 0x7fd2, 0x81ed, 0x821f, 0x8490, 0x8846,
795     0x8972, 0x8b90, 0x8e74, 0x8f2f, 0x9031, 0x914b, 0x916c, 0x96c6,
796     0x919c, 0x4ec0, 0x4f4f, 0x5145, 0x5341, 0x5f93, 0x620e, 0x67d4,
797     0x6c41, 0x6e0b, 0x7363, 0x7e26, 0x91cd, 0x9283, 0x53d4, 0x5919,
798     0x5bbf, 0x6dd1, 0x795d, 0x7e2e, 0x7c9b, 0x587e, 0x719f, 0x51fa,
799     0x8853, 0x8ff0, 0x4fca, 0x5cfb, 0x6625, 0x77ac, 0x7ae3, 0x821c,
800     0x99ff, 0x51c6, 0x5faa, 0x65ec, 0x696f, 0x6b89, 0x6df3, 0xfffd,
801     0x6e96, 0x6f64, 0x76fe, 0x7d14, 0x5de1, 0x9075, 0x9187, 0x9806,
802     0x51e6, 0x521d, 0x6240, 0x6691, 0x66d9, 0x6e1a, 0x5eb6, 0x7dd2,
803     0x7f72, 0x66f8, 0x85af, 0x85f7, 0x8af8, 0x52a9, 0x53d9, 0x5973,
804     0x5e8f, 0x5f90, 0x6055, 0x92e4, 0x9664, 0x50b7, 0x511f, 0x52dd,
805     0x5320, 0x5347, 0x53ec, 0x54e8, 0x5546, 0x5531, 0x5617, 0x5968,
806     0x59be, 0x5a3c, 0x5bb5, 0x5c06, 0x5c0f, 0x5c11, 0x5c1a, 0x5e84,
807     0x5e8a, 0x5ee0, 0x5f70, 0x627f, 0x6284, 0x62db, 0x638c, 0x6377,
808     0x6607, 0x660c, 0x662d, 0x6676, 0x677e, 0x68a2, 0x6a1f, 0x6a35,
809     0x6cbc, 0x6d88, 0x6e09, 0x6e58, 0x713c, 0x7126, 0x7167, 0x75c7,
810     0x7701, 0x785d, 0x7901, 0x7965, 0x79f0, 0x7ae0, 0x7b11, 0x7ca7,
811     0x7d39, 0x8096, 0x83d6, 0x848b, 0x8549, 0x885d, 0x88f3, 0x8a1f,
812     0x8a3c, 0x8a54, 0x8a73, 0x8c61, 0x8cde, 0x91a4, 0x9266, 0x937e,
813     0x9418, 0x969c, 0x9798, 0x4e0a, 0x4e08, 0x4e1e, 0x4e57, 0x5197,
814     0x5270, 0x57ce, 0x5834, 0x58cc, 0x5b22, 0x5e38, 0x60c5, 0x64fe,
815     0x6761, 0x6756, 0x6d44, 0x72b6, 0x7573, 0x7a63, 0x84b8, 0x8b72,
816     0x91b8, 0x9320, 0x5631, 0x57f4, 0x98fe, 0xfffd, 0xfffd, 0xfffd,
817     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
818     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
819     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
820     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
821     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
822     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
823     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
824     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
825     0x62ed, 0x690d, 0x6b96, 0x71ed, 0x7e54, 0x8077, 0x8272, 0x89e6,
826     0x98df, 0x8755, 0x8fb1, 0x5c3b, 0x4f38, 0x4fe1, 0x4fb5, 0x5507,
827     0x5a20, 0x5bdd, 0x5be9, 0x5fc3, 0x614e, 0x632f, 0x65b0, 0x664b,
828     0x68ee, 0x699b, 0x6d78, 0x6df1, 0x7533, 0x75b9, 0x771f, 0x795e,
829     0x79e6, 0x7d33, 0x81e3, 0x82af, 0x85aa, 0x89aa, 0x8a3a, 0x8eab,
830     0x8f9b, 0x9032, 0x91dd, 0x9707, 0x4eba, 0x4ec1, 0x5203, 0x5875,
831     0x58ec, 0x5c0b, 0x751a, 0x5c3d, 0x814e, 0x8a0a, 0x8fc5, 0x9663,
832     0x976d, 0x7b25, 0x8acf, 0x9808, 0x9162, 0x56f3, 0x53a8, 0xfffd,
833     0x9017, 0x5439, 0x5782, 0x5e25, 0x63a8, 0x6c34, 0x708a, 0x7761,
834     0x7c8b, 0x7fe0, 0x8870, 0x9042, 0x9154, 0x9310, 0x9318, 0x968f,
835     0x745e, 0x9ac4, 0x5d07, 0x5d69, 0x6570, 0x67a2, 0x8da8, 0x96db,
836     0x636e, 0x6749, 0x6919, 0x83c5, 0x9817, 0x96c0, 0x88fe, 0x6f84,
837     0x647a, 0x5bf8, 0x4e16, 0x702c, 0x755d, 0x662f, 0x51c4, 0x5236,
838     0x52e2, 0x59d3, 0x5f81, 0x6027, 0x6210, 0x653f, 0x6574, 0x661f,
839     0x6674, 0x68f2, 0x6816, 0x6b63, 0x6e05, 0x7272, 0x751f, 0x76db,
840     0x7cbe, 0x8056, 0x58f0, 0x88fd, 0x897f, 0x8aa0, 0x8a93, 0x8acb,
841     0x901d, 0x9192, 0x9752, 0x9759, 0x6589, 0x7a0e, 0x8106, 0x96bb,
842     0x5e2d, 0x60dc, 0x621a, 0x65a5, 0x6614, 0x6790, 0x77f3, 0x7a4d,
843     0x7c4d, 0x7e3e, 0x810a, 0x8cac, 0x8d64, 0x8de1, 0x8e5f, 0x78a9,
844     0x5207, 0x62d9, 0x63a5, 0x6442, 0x6298, 0x8a2d, 0x7a83, 0x7bc0,
845     0x8aac, 0x96ea, 0x7d76, 0x820c, 0x8749, 0x4ed9, 0x5148, 0x5343,
846     0x5360, 0x5ba3, 0x5c02, 0x5c16, 0x5ddd, 0x6226, 0x6247, 0x64b0,
847     0x6813, 0x6834, 0x6cc9, 0x6d45, 0x6d17, 0x67d3, 0x6f5c, 0x714e,
848     0x717d, 0x65cb, 0x7a7f, 0x7bad, 0x7dda, 0xfffd, 0xfffd, 0xfffd,
849     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
850     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
851     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
852     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
853     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
854     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
855     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
856     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
857     0x7e4a, 0x7fa8, 0x817a, 0x821b, 0x8239, 0x85a6, 0x8a6e, 0x8cce,
858     0x8df5, 0x9078, 0x9077, 0x92ad, 0x9291, 0x9583, 0x9bae, 0x524d,
859     0x5584, 0x6f38, 0x7136, 0x5168, 0x7985, 0x7e55, 0x81b3, 0x7cce,
860     0x564c, 0x5851, 0x5ca8, 0x63aa, 0x66fe, 0x66fd, 0x695a, 0x72d9,
861     0x758f, 0x758e, 0x790e, 0x7956, 0x79df, 0x7c97, 0x7d20, 0x7d44,
862     0x8607, 0x8a34, 0x963b, 0x9061, 0x9f20, 0x50e7, 0x5275, 0x53cc,
863     0x53e2, 0x5009, 0x55aa, 0x58ee, 0x594f, 0x723d, 0x5b8b, 0x5c64,
864     0x531d, 0x60e3, 0x60f3, 0x635c, 0x6383, 0x633f, 0x63bb, 0xfffd,
865     0x64cd, 0x65e9, 0x66f9, 0x5de3, 0x69cd, 0x69fd, 0x6f15, 0x71e5,
866     0x4e89, 0x75e9, 0x76f8, 0x7a93, 0x7cdf, 0x7dcf, 0x7d9c, 0x8061,
867     0x8349, 0x8358, 0x846c, 0x84bc, 0x85fb, 0x88c5, 0x8d70, 0x9001,
868     0x906d, 0x9397, 0x971c, 0x9a12, 0x50cf, 0x5897, 0x618e, 0x81d3,
869     0x8535, 0x8d08, 0x9020, 0x4fc3, 0x5074, 0x5247, 0x5373, 0x606f,
870     0x6349, 0x675f, 0x6e2c, 0x8db3, 0x901f, 0x4fd7, 0x5c5e, 0x8cca,
871     0x65cf, 0x7d9a, 0x5352, 0x8896, 0x5176, 0x63c3, 0x5b58, 0x5b6b,
872     0x5c0a, 0x640d, 0x6751, 0x905c, 0x4ed6, 0x591a, 0x592a, 0x6c70,
873     0x8a51, 0x553e, 0x5815, 0x59a5, 0x60f0, 0x6253, 0x67c1, 0x8235,
874     0x6955, 0x9640, 0x99c4, 0x9a28, 0x4f53, 0x5806, 0x5bfe, 0x8010,
875     0x5cb1, 0x5e2f, 0x5f85, 0x6020, 0x614b, 0x6234, 0x66ff, 0x6cf0,
876     0x6ede, 0x80ce, 0x817f, 0x82d4, 0x888b, 0x8cb8, 0x9000, 0x902e,
877     0x968a, 0x9edb, 0x9bdb, 0x4ee3, 0x53f0, 0x5927, 0x7b2c, 0x918d,
878     0x984c, 0x9df9, 0x6edd, 0x7027, 0x5353, 0x5544, 0x5b85, 0x6258,
879     0x629e, 0x62d3, 0x6ca2, 0x6fef, 0x7422, 0x8a17, 0x9438, 0x6fc1,
880     0x8afe, 0x8338, 0x51e7, 0x86f8, 0x53ea, 0xfffd, 0xfffd, 0xfffd,
881     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
882     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
883     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
884     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
885     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
886     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
887     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
888     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
889     0x53e9, 0x4f46, 0x9054, 0x8fb0, 0x596a, 0x8131, 0x5dfd, 0x7aea,
890     0x8fbf, 0x68da, 0x8c37, 0x72f8, 0x9c48, 0x6a3d, 0x8ab0, 0x4e39,
891     0x5358, 0x5606, 0x5766, 0x62c5, 0x63a2, 0x65e6, 0x6b4e, 0x6de1,
892     0x6e5b, 0x70ad, 0x77ed, 0x7aef, 0x7baa, 0x7dbb, 0x803d, 0x80c6,
893     0x86cb, 0x8a95, 0x935b, 0x56e3, 0x58c7, 0x5f3e, 0x65ad, 0x6696,
894     0x6a80, 0x6bb5, 0x7537, 0x8ac7, 0x5024, 0x77e5, 0x5730, 0x5f1b,
895     0x6065, 0x667a, 0x6c60, 0x75f4, 0x7a1a, 0x7f6e, 0x81f4, 0x8718,
896     0x9045, 0x99b3, 0x7bc9, 0x755c, 0x7af9, 0x7b51, 0x84c4, 0xfffd,
897     0x9010, 0x79e9, 0x7a92, 0x8336, 0x5ae1, 0x7740, 0x4e2d, 0x4ef2,
898     0x5b99, 0x5fe0, 0x62bd, 0x663c, 0x67f1, 0x6ce8, 0x866b, 0x8877,
899     0x8a3b, 0x914e, 0x92f3, 0x99d0, 0x6a17, 0x7026, 0x732a, 0x82e7,
900     0x8457, 0x8caf, 0x4e01, 0x5146, 0x51cb, 0x558b, 0x5bf5, 0x5e16,
901     0x5e33, 0x5e81, 0x5f14, 0x5f35, 0x5f6b, 0x5fb4, 0x61f2, 0x6311,
902     0x66a2, 0x671d, 0x6f6e, 0x7252, 0x753a, 0x773a, 0x8074, 0x8139,
903     0x8178, 0x8776, 0x8abf, 0x8adc, 0x8d85, 0x8df3, 0x929a, 0x9577,
904     0x9802, 0x9ce5, 0x52c5, 0x6357, 0x76f4, 0x6715, 0x6c88, 0x73cd,
905     0x8cc3, 0x93ae, 0x9673, 0x6d25, 0x589c, 0x690e, 0x69cc, 0x8ffd,
906     0x939a, 0x75db, 0x901a, 0x585a, 0x6802, 0x63b4, 0x69fb, 0x4f43,
907     0x6f2c, 0x67d8, 0x8fbb, 0x8526, 0x7db4, 0x9354, 0x693f, 0x6f70,
908     0x576a, 0x58f7, 0x5b2c, 0x7d2c, 0x722a, 0x540a, 0x91e3, 0x9db4,
909     0x4ead, 0x4f4e, 0x505c, 0x5075, 0x5243, 0x8c9e, 0x5448, 0x5824,
910     0x5b9a, 0x5e1d, 0x5e95, 0x5ead, 0x5ef7, 0x5f1f, 0x608c, 0x62b5,
911     0x633a, 0x63d0, 0x68af, 0x6c40, 0x7887, 0x798e, 0x7a0b, 0x7de0,
912     0x8247, 0x8a02, 0x8ae6, 0x8e44, 0x9013, 0xfffd, 0xfffd, 0xfffd,
913     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
914     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
915     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
916     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
917     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
918     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
919     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
920     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
921     0x90b8, 0x912d, 0x91d8, 0x9f0e, 0x6ce5, 0x6458, 0x64e2, 0x6575,
922     0x6ef4, 0x7684, 0x7b1b, 0x9069, 0x93d1, 0x6eba, 0x54f2, 0x5fb9,
923     0x64a4, 0x8f4d, 0x8fed, 0x9244, 0x5178, 0x586b, 0x5929, 0x5c55,
924     0x5e97, 0x6dfb, 0x7e8f, 0x751c, 0x8cbc, 0x8ee2, 0x985b, 0x70b9,
925     0x4f1d, 0x6bbf, 0x6fb1, 0x7530, 0x96fb, 0x514e, 0x5410, 0x5835,
926     0x5857, 0x59ac, 0x5c60, 0x5f92, 0x6597, 0x675c, 0x6e21, 0x767b,
927     0x83df, 0x8ced, 0x9014, 0x90fd, 0x934d, 0x7825, 0x783a, 0x52aa,
928     0x5ea6, 0x571f, 0x5974, 0x6012, 0x5012, 0x515a, 0x51ac, 0xfffd,
929     0x51cd, 0x5200, 0x5510, 0x5854, 0x5858, 0x5957, 0x5b95, 0x5cf6,
930     0x5d8b, 0x60bc, 0x6295, 0x642d, 0x6771, 0x6843, 0x68bc, 0x68df,
931     0x76d7, 0x6dd8, 0x6e6f, 0x6d9b, 0x706f, 0x71c8, 0x5f53, 0x75d8,
932     0x7977, 0x7b49, 0x7b54, 0x7b52, 0x7cd6, 0x7d71, 0x5230, 0x8463,
933     0x8569, 0x85e4, 0x8a0e, 0x8b04, 0x8c46, 0x8e0f, 0x9003, 0x900f,
934     0x9419, 0x9676, 0x982d, 0x9a30, 0x95d8, 0x50cd, 0x52d5, 0x540c,
935     0x5802, 0x5c0e, 0x61a7, 0x649e, 0x6d1e, 0x77b3, 0x7ae5, 0x80f4,
936     0x8404, 0x9053, 0x9285, 0x5ce0, 0x9d07, 0x533f, 0x5f97, 0x5fb3,
937     0x6d9c, 0x7279, 0x7763, 0x79bf, 0x7be4, 0x6bd2, 0x72ec, 0x8aad,
938     0x6803, 0x6a61, 0x51f8, 0x7a81, 0x6934, 0x5c4a, 0x9cf6, 0x82eb,
939     0x5bc5, 0x9149, 0x701e, 0x5678, 0x5c6f, 0x60c7, 0x6566, 0x6c8c,
940     0x8c5a, 0x9041, 0x9813, 0x5451, 0x66c7, 0x920d, 0x5948, 0x90a3,
941     0x5185, 0x4e4d, 0x51ea, 0x8599, 0x8b0e, 0x7058, 0x637a, 0x934b,
942     0x6962, 0x99b4, 0x7e04, 0x7577, 0x5357, 0x6960, 0x8edf, 0x96e3,
943     0x6c5d, 0x4e8c, 0x5c3c, 0x5f10, 0x8fe9, 0x5302, 0x8cd1, 0x8089,
944     0x8679, 0x5eff, 0x65e5, 0x4e73, 0x5165, 0xfffd, 0xfffd, 0xfffd,
945     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
946     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
947     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
948     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
949     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
950     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
951     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
952     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
953     0x5982, 0x5c3f, 0x97ee, 0x4efb, 0x598a, 0x5fcd, 0x8a8d, 0x6fe1,
954     0x79b0, 0x7962, 0x5be7, 0x8471, 0x732b, 0x71b1, 0x5e74, 0x5ff5,
955     0x637b, 0x649a, 0x71c3, 0x7c98, 0x4e43, 0x5efc, 0x4e4b, 0x57dc,
956     0x56a2, 0x60a9, 0x6fc3, 0x7d0d, 0x80fd, 0x8133, 0x81bf, 0x8fb2,
957     0x8997, 0x86a4, 0x5df4, 0x628a, 0x64ad, 0x8987, 0x6777, 0x6ce2,
958     0x6d3e, 0x7436, 0x7834, 0x5a46, 0x7f75, 0x82ad, 0x99ac, 0x4ff3,
959     0x5ec3, 0x62dd, 0x6392, 0x6557, 0x676f, 0x76c3, 0x724c, 0x80cc,
960     0x80ba, 0x8f29, 0x914d, 0x500d, 0x57f9, 0x5a92, 0x6885, 0xfffd,
961     0x6973, 0x7164, 0x72fd, 0x8cb7, 0x58f2, 0x8ce0, 0x966a, 0x9019,
962     0x877f, 0x79e4, 0x77e7, 0x8429, 0x4f2f, 0x5265, 0x535a, 0x62cd,
963     0x67cf, 0x6cca, 0x767d, 0x7b94, 0x7c95, 0x8236, 0x8584, 0x8feb,
964     0x66dd, 0x6f20, 0x7206, 0x7e1b, 0x83ab, 0x99c1, 0x9ea6, 0x51fd,
965     0x7bb1, 0x7872, 0x7bb8, 0x8087, 0x7b48, 0x6ae8, 0x5e61, 0x808c,
966     0x7551, 0x7560, 0x516b, 0x9262, 0x6e8c, 0x767a, 0x9197, 0x9aea,
967     0x4f10, 0x7f70, 0x629c, 0x7b4f, 0x95a5, 0x9ce9, 0x567a, 0x5859,
968     0x86e4, 0x96bc, 0x4f34, 0x5224, 0x534a, 0x53cd, 0x53db, 0x5e06,
969     0x642c, 0x6591, 0x677f, 0x6c3e, 0x6c4e, 0x7248, 0x72af, 0x73ed,
970     0x7554, 0x7e41, 0x822c, 0x85e9, 0x8ca9, 0x7bc4, 0x91c6, 0x7169,
971     0x9812, 0x98ef, 0x633d, 0x6669, 0x756a, 0x76e4, 0x78d0, 0x8543,
972     0x86ee, 0x532a, 0x5351, 0x5426, 0x5983, 0x5e87, 0x5f7c, 0x60b2,
973     0x6249, 0x6279, 0x62ab, 0x6590, 0x6bd4, 0x6ccc, 0x75b2, 0x76ae,
974     0x7891, 0x79d8, 0x7dcb, 0x7f77, 0x80a5, 0x88ab, 0x8ab9, 0x8cbb,
975     0x907f, 0x975e, 0x98db, 0x6a0b, 0x7c38, 0x5099, 0x5c3e, 0x5fae,
976     0x6787, 0x6bd8, 0x7435, 0x7709, 0x7f8e, 0xfffd, 0xfffd, 0xfffd,
977     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
978     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
979     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
980     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
981     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
982     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
983     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
984     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
985     0x9f3b, 0x67ca, 0x7a17, 0x5339, 0x758b, 0x9aed, 0x5f66, 0x819d,
986     0x83f1, 0x8098, 0x5f3c, 0x5fc5, 0x7562, 0x7b46, 0x903c, 0x6867,
987     0x59eb, 0x5a9b, 0x7d10, 0x767e, 0x8b2c, 0x4ff5, 0x5f6a, 0x6a19,
988     0x6c37, 0x6f02, 0x74e2, 0x7968, 0x8868, 0x8a55, 0x8c79, 0x5edf,
989     0x63cf, 0x75c5, 0x79d2, 0x82d7, 0x9328, 0x92f2, 0x849c, 0x86ed,
990     0x9c2d, 0x54c1, 0x5f6c, 0x658c, 0x6d5c, 0x7015, 0x8ca7, 0x8cd3,
991     0x983b, 0x654f, 0x74f6, 0x4e0d, 0x4ed8, 0x57e0, 0x592b, 0x5a66,
992     0x5bcc, 0x51a8, 0x5e03, 0x5e9c, 0x6016, 0x6276, 0x6577, 0xfffd,
993     0x65a7, 0x666e, 0x6d6e, 0x7236, 0x7b26, 0x8150, 0x819a, 0x8299,
994     0x8b5c, 0x8ca0, 0x8ce6, 0x8d74, 0x961c, 0x9644, 0x4fae, 0x64ab,
995     0x6b66, 0x821e, 0x8461, 0x856a, 0x90e8, 0x5c01, 0x6953, 0x98a8,
996     0x847a, 0x8557, 0x4f0f, 0x526f, 0x5fa9, 0x5e45, 0x670d, 0x798f,
997     0x8179, 0x8907, 0x8986, 0x6df5, 0x5f17, 0x6255, 0x6cb8, 0x4ecf,
998     0x7269, 0x9b92, 0x5206, 0x543b, 0x5674, 0x58b3, 0x61a4, 0x626e,
999     0x711a, 0x596e, 0x7c89, 0x7cde, 0x7d1b, 0x96f0, 0x6587, 0x805e,
1000     0x4e19, 0x4f75, 0x5175, 0x5840, 0x5e63, 0x5e73, 0x5f0a, 0x67c4,
1001     0x4e26, 0x853d, 0x9589, 0x965b, 0x7c73, 0x9801, 0x50fb, 0x58c1,
1002     0x7656, 0x78a7, 0x5225, 0x77a5, 0x8511, 0x7b86, 0x504f, 0x5909,
1003     0x7247, 0x7bc7, 0x7de8, 0x8fba, 0x8fd4, 0x904d, 0x4fbf, 0x52c9,
1004     0x5a29, 0x5f01, 0x97ad, 0x4fdd, 0x8217, 0x92ea, 0x5703, 0x6355,
1005     0x6b69, 0x752b, 0x88dc, 0x8f14, 0x7a42, 0x52df, 0x5893, 0x6155,
1006     0x620a, 0x66ae, 0x6bcd, 0x7c3f, 0x83e9, 0x5023, 0x4ff8, 0x5305,
1007     0x5446, 0x5831, 0x5949, 0x5b9d, 0x5cf0, 0x5cef, 0x5d29, 0x5e96,
1008     0x62b1, 0x6367, 0x653e, 0x65b9, 0x670b, 0xfffd, 0xfffd, 0xfffd,
1009     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1010     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1011     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1012     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1013     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1014     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1015     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1016     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1017     0x6cd5, 0x6ce1, 0x70f9, 0x7832, 0x7e2b, 0x80de, 0x82b3, 0x840c,
1018     0x84ec, 0x8702, 0x8912, 0x8a2a, 0x8c4a, 0x90a6, 0x92d2, 0x98fd,
1019     0x9cf3, 0x9d6c, 0x4e4f, 0x4ea1, 0x508d, 0x5256, 0x574a, 0x59a8,
1020     0x5e3d, 0x5fd8, 0x5fd9, 0x623f, 0x66b4, 0x671b, 0x67d0, 0x68d2,
1021     0x5192, 0x7d21, 0x80aa, 0x81a8, 0x8b00, 0x8c8c, 0x8cbf, 0x927e,
1022     0x9632, 0x5420, 0x982c, 0x5317, 0x50d5, 0x535c, 0x58a8, 0x64b2,
1023     0x6734, 0x7267, 0x7766, 0x7a46, 0x91e6, 0x52c3, 0x6ca1, 0x6b86,
1024     0x5800, 0x5e4c, 0x5954, 0x672c, 0x7ffb, 0x51e1, 0x76c6, 0xfffd,
1025     0x6469, 0x78e8, 0x9b54, 0x9ebb, 0x57cb, 0x59b9, 0x6627, 0x679a,
1026     0x6bce, 0x54e9, 0x69d9, 0x5e55, 0x819c, 0x6795, 0x9baa, 0x67fe,
1027     0x9c52, 0x685d, 0x4ea6, 0x4fe3, 0x53c8, 0x62b9, 0x672b, 0x6cab,
1028     0x8fc4, 0x4fad, 0x7e6d, 0x9ebf, 0x4e07, 0x6162, 0x6e80, 0x6f2b,
1029     0x8513, 0x5473, 0x672a, 0x9b45, 0x5df3, 0x7b95, 0x5cac, 0x5bc6,
1030     0x871c, 0x6e4a, 0x84d1, 0x7a14, 0x8108, 0x5999, 0x7c8d, 0x6c11,
1031     0x7720, 0x52d9, 0x5922, 0x7121, 0x725f, 0x77db, 0x9727, 0x9d61,
1032     0x690b, 0x5a7f, 0x5a18, 0x51a5, 0x540d, 0x547d, 0x660e, 0x76df,
1033     0x8ff7, 0x9298, 0x9cf4, 0x59ea, 0x725d, 0x6ec5, 0x514d, 0x68c9,
1034     0x7dbf, 0x7dec, 0x9762, 0x9eba, 0x6478, 0x6a21, 0x8302, 0x5984,
1035     0x5b5f, 0x6bdb, 0x731b, 0x76f2, 0x7db2, 0x8017, 0x8499, 0x5132,
1036     0x6728, 0x9ed9, 0x76ee, 0x6762, 0x52ff, 0x9905, 0x5c24, 0x623b,
1037     0x7c7e, 0x8cb0, 0x554f, 0x60b6, 0x7d0b, 0x9580, 0x5301, 0x4e5f,
1038     0x51b6, 0x591c, 0x723a, 0x8036, 0x91ce, 0x5f25, 0x77e2, 0x5384,
1039     0x5f79, 0x7d04, 0x85ac, 0x8a33, 0x8e8d, 0x9756, 0x67f3, 0x85ae,
1040     0x9453, 0x6109, 0x6108, 0x6cb9, 0x7652, 0xfffd, 0xfffd, 0xfffd,
1041     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1042     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1043     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1044     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1045     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1046     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1047     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1048     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1049     0x8aed, 0x8f38, 0x552f, 0x4f51, 0x512a, 0x52c7, 0x53cb, 0x5ba5,
1050     0x5e7d, 0x60a0, 0x6182, 0x63d6, 0x6709, 0x67da, 0x6e67, 0x6d8c,
1051     0x7336, 0x7337, 0x7531, 0x7950, 0x88d5, 0x8a98, 0x904a, 0x9091,
1052     0x90f5, 0x96c4, 0x878d, 0x5915, 0x4e88, 0x4f59, 0x4e0e, 0x8a89,
1053     0x8f3f, 0x9810, 0x50ad, 0x5e7c, 0x5996, 0x5bb9, 0x5eb8, 0x63da,
1054     0x63fa, 0x64c1, 0x66dc, 0x694a, 0x69d8, 0x6d0b, 0x6eb6, 0x7194,
1055     0x7528, 0x7aaf, 0x7f8a, 0x8000, 0x8449, 0x84c9, 0x8981, 0x8b21,
1056     0x8e0a, 0x9065, 0x967d, 0x990a, 0x617e, 0x6291, 0x6b32, 0xfffd,
1057     0x6c83, 0x6d74, 0x7fcc, 0x7ffc, 0x6dc0, 0x7f85, 0x87ba, 0x88f8,
1058     0x6765, 0x83b1, 0x983c, 0x96f7, 0x6d1b, 0x7d61, 0x843d, 0x916a,
1059     0x4e71, 0x5375, 0x5d50, 0x6b04, 0x6feb, 0x85cd, 0x862d, 0x89a7,
1060     0x5229, 0x540f, 0x5c65, 0x674e, 0x68a8, 0x7406, 0x7483, 0x75e2,
1061     0x88cf, 0x88e1, 0x91cc, 0x96e2, 0x9678, 0x5f8b, 0x7387, 0x7acb,
1062     0x844e, 0x63a0, 0x7565, 0x5289, 0x6d41, 0x6e9c, 0x7409, 0x7559,
1063     0x786b, 0x7c92, 0x9686, 0x7adc, 0x9f8d, 0x4fb6, 0x616e, 0x65c5,
1064     0x865c, 0x4e86, 0x4eae, 0x50da, 0x4e21, 0x51cc, 0x5bee, 0x6599,
1065     0x6881, 0x6dbc, 0x731f, 0x7642, 0x77ad, 0x7a1c, 0x7ce7, 0x826f,
1066     0x8ad2, 0x907c, 0x91cf, 0x9675, 0x9818, 0x529b, 0x7dd1, 0x502b,
1067     0x5398, 0x6797, 0x6dcb, 0x71d0, 0x7433, 0x81e8, 0x8f2a, 0x96a3,
1068     0x9c57, 0x9e9f, 0x7460, 0x5841, 0x6d99, 0x7d2f, 0x985e, 0x4ee4,
1069     0x4f36, 0x4f8b, 0x51b7, 0x52b1, 0x5dba, 0x601c, 0x73b2, 0x793c,
1070     0x82d3, 0x9234, 0x96b7, 0x96f6, 0x970a, 0x9e97, 0x9f62, 0x66a6,
1071     0x6b74, 0x5217, 0x52a3, 0x70c8, 0x88c2, 0x5ec9, 0x604b, 0x6190,
1072     0x6f23, 0x7149, 0x7c3e, 0x7df4, 0x806f, 0xfffd, 0xfffd, 0xfffd,
1073     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1074     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1075     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1076     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1077     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1078     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1079     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1080     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1081     0x84ee, 0x9023, 0x932c, 0x5442, 0x9b6f, 0x6ad3, 0x7089, 0x8cc2,
1082     0x8def, 0x9732, 0x52b4, 0x5a41, 0x5eca, 0x5f04, 0x6717, 0x697c,
1083     0x6994, 0x6d6a, 0x6f0f, 0x7262, 0x72fc, 0x7bed, 0x8001, 0x807e,
1084     0x874b, 0x90ce, 0x516d, 0x9e93, 0x7984, 0x808b, 0x9332, 0x8ad6,
1085     0x502d, 0x548c, 0x8a71, 0x6b6a, 0x8cc4, 0x8107, 0x60d1, 0x67a0,
1086     0x9df2, 0x4e99, 0x4e98, 0x9c10, 0x8a6b, 0x85c1, 0x8568, 0x6900,
1087     0x6e7e, 0x7897, 0x8155, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1088     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1089     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1090     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1091     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1092     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x5f0c,
1093     0x4e10, 0x4e15, 0x4e2a, 0x4e31, 0x4e36, 0x4e3c, 0x4e3f, 0x4e42,
1094     0x4e56, 0x4e58, 0x4e82, 0x4e85, 0x8c6b, 0x4e8a, 0x8212, 0x5f0d,
1095     0x4e8e, 0x4e9e, 0x4e9f, 0x4ea0, 0x4ea2, 0x4eb0, 0x4eb3, 0x4eb6,
1096     0x4ece, 0x4ecd, 0x4ec4, 0x4ec6, 0x4ec2, 0x4ed7, 0x4ede, 0x4eed,
1097     0x4edf, 0x4ef7, 0x4f09, 0x4f5a, 0x4f30, 0x4f5b, 0x4f5d, 0x4f57,
1098     0x4f47, 0x4f76, 0x4f88, 0x4f8f, 0x4f98, 0x4f7b, 0x4f69, 0x4f70,
1099     0x4f91, 0x4f6f, 0x4f86, 0x4f96, 0x5118, 0x4fd4, 0x4fdf, 0x4fce,
1100     0x4fd8, 0x4fdb, 0x4fd1, 0x4fda, 0x4fd0, 0x4fe4, 0x4fe5, 0x501a,
1101     0x5028, 0x5014, 0x502a, 0x5025, 0x5005, 0x4f1c, 0x4ff6, 0x5021,
1102     0x5029, 0x502c, 0x4ffe, 0x4fef, 0x5011, 0x5006, 0x5043, 0x5047,
1103     0x6703, 0x5055, 0x5050, 0x5048, 0x505a, 0x5056, 0x506c, 0x5078,
1104     0x5080, 0x509a, 0x5085, 0x50b4, 0x50b2, 0xfffd, 0xfffd, 0xfffd,
1105     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1106     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1107     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1108     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1109     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1110     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1111     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1112     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1113     0x50c9, 0x50ca, 0x50b3, 0x50c2, 0x50d6, 0x50de, 0x50e5, 0x50ed,
1114     0x50e3, 0x50ee, 0x50f9, 0x50f5, 0x5109, 0x5101, 0x5102, 0x5116,
1115     0x5115, 0x5114, 0x511a, 0x5121, 0x513a, 0x5137, 0x513c, 0x513b,
1116     0x513f, 0x5140, 0x5152, 0x514c, 0x5154, 0x5162, 0x7af8, 0x5169,
1117     0x516a, 0x516e, 0x5180, 0x5182, 0x56d8, 0x518c, 0x5189, 0x518f,
1118     0x5191, 0x5193, 0x5195, 0x5196, 0x51a4, 0x51a6, 0x51a2, 0x51a9,
1119     0x51aa, 0x51ab, 0x51b3, 0x51b1, 0x51b2, 0x51b0, 0x51b5, 0x51bd,
1120     0x51c5, 0x51c9, 0x51db, 0x51e0, 0x8655, 0x51e9, 0x51ed, 0xfffd,
1121     0x51f0, 0x51f5, 0x51fe, 0x5204, 0x520b, 0x5214, 0x520e, 0x5227,
1122     0x522a, 0x522e, 0x5233, 0x5239, 0x524f, 0x5244, 0x524b, 0x524c,
1123     0x525e, 0x5254, 0x526a, 0x5274, 0x5269, 0x5273, 0x527f, 0x527d,
1124     0x528d, 0x5294, 0x5292, 0x5271, 0x5288, 0x5291, 0x8fa8, 0x8fa7,
1125     0x52ac, 0x52ad, 0x52bc, 0x52b5, 0x52c1, 0x52cd, 0x52d7, 0x52de,
1126     0x52e3, 0x52e6, 0x98ed, 0x52e0, 0x52f3, 0x52f5, 0x52f8, 0x52f9,
1127     0x5306, 0x5308, 0x7538, 0x530d, 0x5310, 0x530f, 0x5315, 0x531a,
1128     0x5323, 0x532f, 0x5331, 0x5333, 0x5338, 0x5340, 0x5346, 0x5345,
1129     0x4e17, 0x5349, 0x534d, 0x51d6, 0x535e, 0x5369, 0x536e, 0x5918,
1130     0x537b, 0x5377, 0x5382, 0x5396, 0x53a0, 0x53a6, 0x53a5, 0x53ae,
1131     0x53b0, 0x53b6, 0x53c3, 0x7c12, 0x96d9, 0x53df, 0x66fc, 0x71ee,
1132     0x53ee, 0x53e8, 0x53ed, 0x53fa, 0x5401, 0x543d, 0x5440, 0x542c,
1133     0x542d, 0x543c, 0x542e, 0x5436, 0x5429, 0x541d, 0x544e, 0x548f,
1134     0x5475, 0x548e, 0x545f, 0x5471, 0x5477, 0x5470, 0x5492, 0x547b,
1135     0x5480, 0x5476, 0x5484, 0x5490, 0x5486, 0x54c7, 0x54a2, 0x54b8,
1136     0x54a5, 0x54ac, 0x54c4, 0x54c8, 0x54a8, 0xfffd, 0xfffd, 0xfffd,
1137     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1138     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1139     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1140     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1141     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1142     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1143     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1144     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1145     0x54ab, 0x54c2, 0x54a4, 0x54be, 0x54bc, 0x54d8, 0x54e5, 0x54e6,
1146     0x550f, 0x5514, 0x54fd, 0x54ee, 0x54ed, 0x54fa, 0x54e2, 0x5539,
1147     0x5540, 0x5563, 0x554c, 0x552e, 0x555c, 0x5545, 0x5556, 0x5557,
1148     0x5538, 0x5533, 0x555d, 0x5599, 0x5580, 0x54af, 0x558a, 0x559f,
1149     0x557b, 0x557e, 0x5598, 0x559e, 0x55ae, 0x557c, 0x5583, 0x55a9,
1150     0x5587, 0x55a8, 0x55da, 0x55c5, 0x55df, 0x55c4, 0x55dc, 0x55e4,
1151     0x55d4, 0x5614, 0x55f7, 0x5616, 0x55fe, 0x55fd, 0x561b, 0x55f9,
1152     0x564e, 0x5650, 0x71df, 0x5634, 0x5636, 0x5632, 0x5638, 0xfffd,
1153     0x566b, 0x5664, 0x562f, 0x566c, 0x566a, 0x5686, 0x5680, 0x568a,
1154     0x56a0, 0x5694, 0x568f, 0x56a5, 0x56ae, 0x56b6, 0x56b4, 0x56c2,
1155     0x56bc, 0x56c1, 0x56c3, 0x56c0, 0x56c8, 0x56ce, 0x56d1, 0x56d3,
1156     0x56d7, 0x56ee, 0x56f9, 0x5700, 0x56ff, 0x5704, 0x5709, 0x5708,
1157     0x570b, 0x570d, 0x5713, 0x5718, 0x5716, 0x55c7, 0x571c, 0x5726,
1158     0x5737, 0x5738, 0x574e, 0x573b, 0x5740, 0x574f, 0x5769, 0x57c0,
1159     0x5788, 0x5761, 0x577f, 0x5789, 0x5793, 0x57a0, 0x57b3, 0x57a4,
1160     0x57aa, 0x57b0, 0x57c3, 0x57c6, 0x57d4, 0x57d2, 0x57d3, 0x580a,
1161     0x57d6, 0x57e3, 0x580b, 0x5819, 0x581d, 0x5872, 0x5821, 0x5862,
1162     0x584b, 0x5870, 0x6bc0, 0x5852, 0x583d, 0x5879, 0x5885, 0x58b9,
1163     0x589f, 0x58ab, 0x58ba, 0x58de, 0x58bb, 0x58b8, 0x58ae, 0x58c5,
1164     0x58d3, 0x58d1, 0x58d7, 0x58d9, 0x58d8, 0x58e5, 0x58dc, 0x58e4,
1165     0x58df, 0x58ef, 0x58fa, 0x58f9, 0x58fb, 0x58fc, 0x58fd, 0x5902,
1166     0x590a, 0x5910, 0x591b, 0x68a6, 0x5925, 0x592c, 0x592d, 0x5932,
1167     0x5938, 0x593e, 0x7ad2, 0x5955, 0x5950, 0x594e, 0x595a, 0x5958,
1168     0x5962, 0x5960, 0x5967, 0x596c, 0x5969, 0xfffd, 0xfffd, 0xfffd,
1169     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1170     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1171     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1172     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1173     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1174     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1175     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1176     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1177     0x5978, 0x5981, 0x599d, 0x4f5e, 0x4fab, 0x59a3, 0x59b2, 0x59c6,
1178     0x59e8, 0x59dc, 0x598d, 0x59d9, 0x59da, 0x5a25, 0x5a1f, 0x5a11,
1179     0x5a1c, 0x5a09, 0x5a1a, 0x5a40, 0x5a6c, 0x5a49, 0x5a35, 0x5a36,
1180     0x5a62, 0x5a6a, 0x5a9a, 0x5abc, 0x5abe, 0x5acb, 0x5ac2, 0x5abd,
1181     0x5ae3, 0x5ad7, 0x5ae6, 0x5ae9, 0x5ad6, 0x5afa, 0x5afb, 0x5b0c,
1182     0x5b0b, 0x5b16, 0x5b32, 0x5ad0, 0x5b2a, 0x5b36, 0x5b3e, 0x5b43,
1183     0x5b45, 0x5b40, 0x5b51, 0x5b55, 0x5b5a, 0x5b5b, 0x5b65, 0x5b69,
1184     0x5b70, 0x5b73, 0x5b75, 0x5b78, 0x6588, 0x5b7a, 0x5b80, 0xfffd,
1185     0x5b83, 0x5ba6, 0x5bb8, 0x5bc3, 0x5bc7, 0x5bc9, 0x5bd4, 0x5bd0,
1186     0x5be4, 0x5be6, 0x5be2, 0x5bde, 0x5be5, 0x5beb, 0x5bf0, 0x5bf6,
1187     0x5bf3, 0x5c05, 0x5c07, 0x5c08, 0x5c0d, 0x5c13, 0x5c20, 0x5c22,
1188     0x5c28, 0x5c38, 0x5c39, 0x5c41, 0x5c46, 0x5c4e, 0x5c53, 0x5c50,
1189     0x5c4f, 0x5b71, 0x5c6c, 0x5c6e, 0x4e62, 0x5c76, 0x5c79, 0x5c8c,
1190     0x5c91, 0x5c94, 0x599b, 0x5cab, 0x5cbb, 0x5cb6, 0x5cbc, 0x5cb7,
1191     0x5cc5, 0x5cbe, 0x5cc7, 0x5cd9, 0x5ce9, 0x5cfd, 0x5cfa, 0x5ced,
1192     0x5d8c, 0x5cea, 0x5d0b, 0x5d15, 0x5d17, 0x5d5c, 0x5d1f, 0x5d1b,
1193     0x5d11, 0x5d14, 0x5d22, 0x5d1a, 0x5d19, 0x5d18, 0x5d4c, 0x5d52,
1194     0x5d4e, 0x5d4b, 0x5d6c, 0x5d73, 0x5d76, 0x5d87, 0x5d84, 0x5d82,
1195     0x5da2, 0x5d9d, 0x5dac, 0x5dae, 0x5dbd, 0x5d90, 0x5db7, 0x5dbc,
1196     0x5dc9, 0x5dcd, 0x5dd3, 0x5dd2, 0x5dd6, 0x5ddb, 0x5deb, 0x5df2,
1197     0x5df5, 0x5e0b, 0x5e1a, 0x5e19, 0x5e11, 0x5e1b, 0x5e36, 0x5e37,
1198     0x5e44, 0x5e43, 0x5e40, 0x5e4e, 0x5e57, 0x5e54, 0x5e5f, 0x5e62,
1199     0x5e64, 0x5e47, 0x5e75, 0x5e76, 0x5e7a, 0x9ebc, 0x5e7f, 0x5ea0,
1200     0x5ec1, 0x5ec2, 0x5ec8, 0x5ed0, 0x5ecf, 0xfffd, 0xfffd, 0xfffd,
1201     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1202     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1203     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1204     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1205     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1206     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1207     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1208     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1209     0x5ed6, 0x5ee3, 0x5edd, 0x5eda, 0x5edb, 0x5ee2, 0x5ee1, 0x5ee8,
1210     0x5ee9, 0x5eec, 0x5ef1, 0x5ef3, 0x5ef0, 0x5ef4, 0x5ef8, 0x5efe,
1211     0x5f03, 0x5f09, 0x5f5d, 0x5f5c, 0x5f0b, 0x5f11, 0x5f16, 0x5f29,
1212     0x5f2d, 0x5f38, 0x5f41, 0x5f48, 0x5f4c, 0x5f4e, 0x5f2f, 0x5f51,
1213     0x5f56, 0x5f57, 0x5f59, 0x5f61, 0x5f6d, 0x5f73, 0x5f77, 0x5f83,
1214     0x5f82, 0x5f7f, 0x5f8a, 0x5f88, 0x5f91, 0x5f87, 0x5f9e, 0x5f99,
1215     0x5f98, 0x5fa0, 0x5fa8, 0x5fad, 0x5fbc, 0x5fd6, 0x5ffb, 0x5fe4,
1216     0x5ff8, 0x5ff1, 0x5fdd, 0x60b3, 0x5fff, 0x6021, 0x6060, 0xfffd,
1217     0x6019, 0x6010, 0x6029, 0x600e, 0x6031, 0x601b, 0x6015, 0x602b,
1218     0x6026, 0x600f, 0x603a, 0x605a, 0x6041, 0x606a, 0x6077, 0x605f,
1219     0x604a, 0x6046, 0x604d, 0x6063, 0x6043, 0x6064, 0x6042, 0x606c,
1220     0x606b, 0x6059, 0x6081, 0x608d, 0x60e7, 0x6083, 0x609a, 0x6084,
1221     0x609b, 0x6096, 0x6097, 0x6092, 0x60a7, 0x608b, 0x60e1, 0x60b8,
1222     0x60e0, 0x60d3, 0x60b4, 0x5ff0, 0x60bd, 0x60c6, 0x60b5, 0x60d8,
1223     0x614d, 0x6115, 0x6106, 0x60f6, 0x60f7, 0x6100, 0x60f4, 0x60fa,
1224     0x6103, 0x6121, 0x60fb, 0x60f1, 0x610d, 0x610e, 0x6147, 0x613e,
1225     0x6128, 0x6127, 0x614a, 0x613f, 0x613c, 0x612c, 0x6134, 0x613d,
1226     0x6142, 0x6144, 0x6173, 0x6177, 0x6158, 0x6159, 0x615a, 0x616b,
1227     0x6174, 0x616f, 0x6165, 0x6171, 0x615f, 0x615d, 0x6153, 0x6175,
1228     0x6199, 0x6196, 0x6187, 0x61ac, 0x6194, 0x619a, 0x618a, 0x6191,
1229     0x61ab, 0x61ae, 0x61cc, 0x61ca, 0x61c9, 0x61f7, 0x61c8, 0x61c3,
1230     0x61c6, 0x61ba, 0x61cb, 0x7f79, 0x61cd, 0x61e6, 0x61e3, 0x61f6,
1231     0x61fa, 0x61f4, 0x61ff, 0x61fd, 0x61fc, 0x61fe, 0x6200, 0x6208,
1232     0x6209, 0x620d, 0x620c, 0x6214, 0x621b, 0xfffd, 0xfffd, 0xfffd,
1233     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1234     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1235     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1236     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1237     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1238     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1239     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1240     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1241     0x621e, 0x6221, 0x622a, 0x622e, 0x6230, 0x6232, 0x6233, 0x6241,
1242     0x624e, 0x625e, 0x6263, 0x625b, 0x6260, 0x6268, 0x627c, 0x6282,
1243     0x6289, 0x627e, 0x6292, 0x6293, 0x6296, 0x62d4, 0x6283, 0x6294,
1244     0x62d7, 0x62d1, 0x62bb, 0x62cf, 0x62ff, 0x62c6, 0x64d4, 0x62c8,
1245     0x62dc, 0x62cc, 0x62ca, 0x62c2, 0x62c7, 0x629b, 0x62c9, 0x630c,
1246     0x62ee, 0x62f1, 0x6327, 0x6302, 0x6308, 0x62ef, 0x62f5, 0x6350,
1247     0x633e, 0x634d, 0x641c, 0x634f, 0x6396, 0x638e, 0x6380, 0x63ab,
1248     0x6376, 0x63a3, 0x638f, 0x6389, 0x639f, 0x63b5, 0x636b, 0xfffd,
1249     0x6369, 0x63be, 0x63e9, 0x63c0, 0x63c6, 0x63e3, 0x63c9, 0x63d2,
1250     0x63f6, 0x63c4, 0x6416, 0x6434, 0x6406, 0x6413, 0x6426, 0x6436,
1251     0x651d, 0x6417, 0x6428, 0x640f, 0x6467, 0x646f, 0x6476, 0x644e,
1252     0x652a, 0x6495, 0x6493, 0x64a5, 0x64a9, 0x6488, 0x64bc, 0x64da,
1253     0x64d2, 0x64c5, 0x64c7, 0x64bb, 0x64d8, 0x64c2, 0x64f1, 0x64e7,
1254     0x8209, 0x64e0, 0x64e1, 0x62ac, 0x64e3, 0x64ef, 0x652c, 0x64f6,
1255     0x64f4, 0x64f2, 0x64fa, 0x6500, 0x64fd, 0x6518, 0x651c, 0x6505,
1256     0x6524, 0x6523, 0x652b, 0x6534, 0x6535, 0x6537, 0x6536, 0x6538,
1257     0x754b, 0x6548, 0x6556, 0x6555, 0x654d, 0x6558, 0x655e, 0x655d,
1258     0x6572, 0x6578, 0x6582, 0x6583, 0x8b8a, 0x659b, 0x659f, 0x65ab,
1259     0x65b7, 0x65c3, 0x65c6, 0x65c1, 0x65c4, 0x65cc, 0x65d2, 0x65db,
1260     0x65d9, 0x65e0, 0x65e1, 0x65f1, 0x6772, 0x660a, 0x6603, 0x65fb,
1261     0x6773, 0x6635, 0x6636, 0x6634, 0x661c, 0x664f, 0x6644, 0x6649,
1262     0x6641, 0x665e, 0x665d, 0x6664, 0x6667, 0x6668, 0x665f, 0x6662,
1263     0x6670, 0x6683, 0x6688, 0x668e, 0x6689, 0x6684, 0x6698, 0x669d,
1264     0x66c1, 0x66b9, 0x66c9, 0x66be, 0x66bc, 0xfffd, 0xfffd, 0xfffd,
1265     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1266     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1267     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1268     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1269     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1270     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1271     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1272     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1273     0x66c4, 0x66b8, 0x66d6, 0x66da, 0x66e0, 0x663f, 0x66e6, 0x66e9,
1274     0x66f0, 0x66f5, 0x66f7, 0x670f, 0x6716, 0x671e, 0x6726, 0x6727,
1275     0x9738, 0x672e, 0x673f, 0x6736, 0x6741, 0x6738, 0x6737, 0x6746,
1276     0x675e, 0x6760, 0x6759, 0x6763, 0x6764, 0x6789, 0x6770, 0x67a9,
1277     0x677c, 0x676a, 0x678c, 0x678b, 0x67a6, 0x67a1, 0x6785, 0x67b7,
1278     0x67ef, 0x67b4, 0x67ec, 0x67b3, 0x67e9, 0x67b8, 0x67e4, 0x67de,
1279     0x67dd, 0x67e2, 0x67ee, 0x67b9, 0x67ce, 0x67c6, 0x67e7, 0x6a9c,
1280     0x681e, 0x6846, 0x6829, 0x6840, 0x684d, 0x6832, 0x684e, 0xfffd,
1281     0x68b3, 0x682b, 0x6859, 0x6863, 0x6877, 0x687f, 0x689f, 0x688f,
1282     0x68ad, 0x6894, 0x689d, 0x689b, 0x6883, 0x6aae, 0x68b9, 0x6874,
1283     0x68b5, 0x68a0, 0x68ba, 0x690f, 0x688d, 0x687e, 0x6901, 0x68ca,
1284     0x6908, 0x68d8, 0x6922, 0x6926, 0x68e1, 0x690c, 0x68cd, 0x68d4,
1285     0x68e7, 0x68d5, 0x6936, 0x6912, 0x6904, 0x68d7, 0x68e3, 0x6925,
1286     0x68f9, 0x68e0, 0x68ef, 0x6928, 0x692a, 0x691a, 0x6923, 0x6921,
1287     0x68c6, 0x6979, 0x6977, 0x695c, 0x6978, 0x696b, 0x6954, 0x697e,
1288     0x696e, 0x6939, 0x6974, 0x693d, 0x6959, 0x6930, 0x6961, 0x695e,
1289     0x695d, 0x6981, 0x696a, 0x69b2, 0x69ae, 0x69d0, 0x69bf, 0x69c1,
1290     0x69d3, 0x69be, 0x69ce, 0x5be8, 0x69ca, 0x69dd, 0x69bb, 0x69c3,
1291     0x69a7, 0x6a2e, 0x6991, 0x69a0, 0x699c, 0x6995, 0x69b4, 0x69de,
1292     0x69e8, 0x6a02, 0x6a1b, 0x69ff, 0x6b0a, 0x69f9, 0x69f2, 0x69e7,
1293     0x6a05, 0x69b1, 0x6a1e, 0x69ed, 0x6a14, 0x69eb, 0x6a0a, 0x6a12,
1294     0x6ac1, 0x6a23, 0x6a13, 0x6a44, 0x6a0c, 0x6a72, 0x6a36, 0x6a78,
1295     0x6a47, 0x6a62, 0x6a59, 0x6a66, 0x6a48, 0x6a38, 0x6a22, 0x6a90,
1296     0x6a8d, 0x6aa0, 0x6a84, 0x6aa2, 0x6aa3, 0xfffd, 0xfffd, 0xfffd,
1297     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1298     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1299     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1300     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1301     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1302     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1303     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1304     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1305     0x6a97, 0x8617, 0x6abb, 0x6ac3, 0x6ac2, 0x6ab8, 0x6ab3, 0x6aac,
1306     0x6ade, 0x6ad1, 0x6adf, 0x6aaa, 0x6ada, 0x6aea, 0x6afb, 0x6b05,
1307     0x8616, 0x6afa, 0x6b12, 0x6b16, 0x9b31, 0x6b1f, 0x6b38, 0x6b37,
1308     0x76dc, 0x6b39, 0x98ee, 0x6b47, 0x6b43, 0x6b49, 0x6b50, 0x6b59,
1309     0x6b54, 0x6b5b, 0x6b5f, 0x6b61, 0x6b78, 0x6b79, 0x6b7f, 0x6b80,
1310     0x6b84, 0x6b83, 0x6b8d, 0x6b98, 0x6b95, 0x6b9e, 0x6ba4, 0x6baa,
1311     0x6bab, 0x6baf, 0x6bb2, 0x6bb1, 0x6bb3, 0x6bb7, 0x6bbc, 0x6bc6,
1312     0x6bcb, 0x6bd3, 0x6bdf, 0x6bec, 0x6beb, 0x6bf3, 0x6bef, 0xfffd,
1313     0x9ebe, 0x6c08, 0x6c13, 0x6c14, 0x6c1b, 0x6c24, 0x6c23, 0x6c5e,
1314     0x6c55, 0x6c62, 0x6c6a, 0x6c82, 0x6c8d, 0x6c9a, 0x6c81, 0x6c9b,
1315     0x6c7e, 0x6c68, 0x6c73, 0x6c92, 0x6c90, 0x6cc4, 0x6cf1, 0x6cd3,
1316     0x6cbd, 0x6cd7, 0x6cc5, 0x6cdd, 0x6cae, 0x6cb1, 0x6cbe, 0x6cba,
1317     0x6cdb, 0x6cef, 0x6cd9, 0x6cea, 0x6d1f, 0x884d, 0x6d36, 0x6d2b,
1318     0x6d3d, 0x6d38, 0x6d19, 0x6d35, 0x6d33, 0x6d12, 0x6d0c, 0x6d63,
1319     0x6d93, 0x6d64, 0x6d5a, 0x6d79, 0x6d59, 0x6d8e, 0x6d95, 0x6fe4,
1320     0x6d85, 0x6df9, 0x6e15, 0x6e0a, 0x6db5, 0x6dc7, 0x6de6, 0x6db8,
1321     0x6dc6, 0x6dec, 0x6dde, 0x6dcc, 0x6de8, 0x6dd2, 0x6dc5, 0x6dfa,
1322     0x6dd9, 0x6de4, 0x6dd5, 0x6dea, 0x6dee, 0x6e2d, 0x6e6e, 0x6e2e,
1323     0x6e19, 0x6e72, 0x6e5f, 0x6e3e, 0x6e23, 0x6e6b, 0x6e2b, 0x6e76,
1324     0x6e4d, 0x6e1f, 0x6e43, 0x6e3a, 0x6e4e, 0x6e24, 0x6eff, 0x6e1d,
1325     0x6e38, 0x6e82, 0x6eaa, 0x6e98, 0x6ec9, 0x6eb7, 0x6ed3, 0x6ebd,
1326     0x6eaf, 0x6ec4, 0x6eb2, 0x6ed4, 0x6ed5, 0x6e8f, 0x6ea5, 0x6ec2,
1327     0x6e9f, 0x6f41, 0x6f11, 0x704c, 0x6eec, 0x6ef8, 0x6efe, 0x6f3f,
1328     0x6ef2, 0x6f31, 0x6eef, 0x6f32, 0x6ecc
1329 };
1330
1331 static USHORT                           /* Shift-JIS to Unicode */
1332 sju_e040[] = {                          /* 0xe040 thru 0xeaa4 */
1333     0x6f3e, 0x6f13, 0x6ef7, 0x6f86, 0x6f7a, 0x6f78, 0x6f81, 0x6f80,
1334     0x6f6f, 0x6f5b, 0x6ff3, 0x6f6d, 0x6f82, 0x6f7c, 0x6f58, 0x6f8e,
1335     0x6f91, 0x6fc2, 0x6f66, 0x6fb3, 0x6fa3, 0x6fa1, 0x6fa4, 0x6fb9,
1336     0x6fc6, 0x6faa, 0x6fdf, 0x6fd5, 0x6fec, 0x6fd4, 0x6fd8, 0x6ff1,
1337     0x6fee, 0x6fdb, 0x7009, 0x700b, 0x6ffa, 0x7011, 0x7001, 0x700f,
1338     0x6ffe, 0x701b, 0x701a, 0x6f74, 0x701d, 0x7018, 0x701f, 0x7030,
1339     0x703e, 0x7032, 0x7051, 0x7063, 0x7099, 0x7092, 0x70af, 0x70f1,
1340     0x70ac, 0x70b8, 0x70b3, 0x70ae, 0x70df, 0x70cb, 0x70dd, 0xfffd,
1341     0x70d9, 0x7109, 0x70fd, 0x711c, 0x7119, 0x7165, 0x7155, 0x7188,
1342     0x7166, 0x7162, 0x714c, 0x7156, 0x716c, 0x718f, 0x71fb, 0x7184,
1343     0x7195, 0x71a8, 0x71ac, 0x71d7, 0x71b9, 0x71be, 0x71d2, 0x71c9,
1344     0x71d4, 0x71ce, 0x71e0, 0x71ec, 0x71e7, 0x71f5, 0x71fc, 0x71f9,
1345     0x71ff, 0x720d, 0x7210, 0x721b, 0x7228, 0x722d, 0x722c, 0x7230,
1346     0x7232, 0x723b, 0x723c, 0x723f, 0x7240, 0x7246, 0x724b, 0x7258,
1347     0x7274, 0x727e, 0x7282, 0x7281, 0x7287, 0x7292, 0x7296, 0x72a2,
1348     0x72a7, 0x72b9, 0x72b2, 0x72c3, 0x72c6, 0x72c4, 0x72ce, 0x72d2,
1349     0x72e2, 0x72e0, 0x72e1, 0x72f9, 0x72f7, 0x500f, 0x7317, 0x730a,
1350     0x731c, 0x7316, 0x731d, 0x7334, 0x732f, 0x7329, 0x7325, 0x733e,
1351     0x734e, 0x734f, 0x9ed8, 0x7357, 0x736a, 0x7368, 0x7370, 0x7378,
1352     0x7375, 0x737b, 0x737a, 0x73c8, 0x73b3, 0x73ce, 0x73bb, 0x73c0,
1353     0x73e5, 0x73ee, 0x73de, 0x74a2, 0x7405, 0x746f, 0x7425, 0x73f8,
1354     0x7432, 0x743a, 0x7455, 0x743f, 0x745f, 0x7459, 0x7441, 0x745c,
1355     0x7469, 0x7470, 0x7463, 0x746a, 0x7476, 0x747e, 0x748b, 0x749e,
1356     0x74a7, 0x74ca, 0x74cf, 0x74d4, 0x73f1, 0xfffd, 0xfffd, 0xfffd,
1357     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1358     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1359     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1360     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1361     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1362     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1363     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1364     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1365     0x74e0, 0x74e3, 0x74e7, 0x74e9, 0x74ee, 0x74f2, 0x74f0, 0x74f1,
1366     0x74f8, 0x74f7, 0x7504, 0x7503, 0x7505, 0x750c, 0x750e, 0x750d,
1367     0x7515, 0x7513, 0x751e, 0x7526, 0x752c, 0x753c, 0x7544, 0x754d,
1368     0x754a, 0x7549, 0x755b, 0x7546, 0x755a, 0x7569, 0x7564, 0x7567,
1369     0x756b, 0x756d, 0x7578, 0x7576, 0x7586, 0x7587, 0x7574, 0x758a,
1370     0x7589, 0x7582, 0x7594, 0x759a, 0x759d, 0x75a5, 0x75a3, 0x75c2,
1371     0x75b3, 0x75c3, 0x75b5, 0x75bd, 0x75b8, 0x75bc, 0x75b1, 0x75cd,
1372     0x75ca, 0x75d2, 0x75d9, 0x75e3, 0x75de, 0x75fe, 0x75ff, 0xfffd,
1373     0x75fc, 0x7601, 0x75f0, 0x75fa, 0x75f2, 0x75f3, 0x760b, 0x760d,
1374     0x7609, 0x761f, 0x7627, 0x7620, 0x7621, 0x7622, 0x7624, 0x7634,
1375     0x7630, 0x763b, 0x7647, 0x7648, 0x7646, 0x765c, 0x7658, 0x7661,
1376     0x7662, 0x7668, 0x7669, 0x766a, 0x7667, 0x766c, 0x7670, 0x7672,
1377     0x7676, 0x7678, 0x767c, 0x7680, 0x7683, 0x7688, 0x768b, 0x768e,
1378     0x7696, 0x7693, 0x7699, 0x769a, 0x76b0, 0x76b4, 0x76b8, 0x76b9,
1379     0x76ba, 0x76c2, 0x76cd, 0x76d6, 0x76d2, 0x76de, 0x76e1, 0x76e5,
1380     0x76e7, 0x76ea, 0x862f, 0x76fb, 0x7708, 0x7707, 0x7704, 0x7729,
1381     0x7724, 0x771e, 0x7725, 0x7726, 0x771b, 0x7737, 0x7738, 0x7747,
1382     0x775a, 0x7768, 0x776b, 0x775b, 0x7765, 0x777f, 0x777e, 0x7779,
1383     0x778e, 0x778b, 0x7791, 0x77a0, 0x779e, 0x77b0, 0x77b6, 0x77b9,
1384     0x77bf, 0x77bc, 0x77bd, 0x77bb, 0x77c7, 0x77cd, 0x77d7, 0x77da,
1385     0x77dc, 0x77e3, 0x77ee, 0x77fc, 0x780c, 0x7812, 0x7926, 0x7820,
1386     0x792a, 0x7845, 0x788e, 0x7874, 0x7886, 0x787c, 0x789a, 0x788c,
1387     0x78a3, 0x78b5, 0x78aa, 0x78af, 0x78d1, 0x78c6, 0x78cb, 0x78d4,
1388     0x78be, 0x78bc, 0x78c5, 0x78ca, 0x78ec, 0xfffd, 0xfffd, 0xfffd,
1389     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1390     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1391     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1392     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1393     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1394     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1395     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1396     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1397     0x78e7, 0x78da, 0x78fd, 0x78f4, 0x7907, 0x7912, 0x7911, 0x7919,
1398     0x792c, 0x792b, 0x7940, 0x7960, 0x7957, 0x795f, 0x795a, 0x7955,
1399     0x7953, 0x797a, 0x797f, 0x798a, 0x799d, 0x79a7, 0x9f4b, 0x79aa,
1400     0x79ae, 0x79b3, 0x79b9, 0x79ba, 0x79c9, 0x79d5, 0x79e7, 0x79ec,
1401     0x79e1, 0x79e3, 0x7a08, 0x7a0d, 0x7a18, 0x7a19, 0x7a20, 0x7a1f,
1402     0x7980, 0x7a31, 0x7a3b, 0x7a3e, 0x7a37, 0x7a43, 0x7a57, 0x7a49,
1403     0x7a61, 0x7a62, 0x7a69, 0x9f9d, 0x7a70, 0x7a79, 0x7a7d, 0x7a88,
1404     0x7a97, 0x7a95, 0x7a98, 0x7a96, 0x7aa9, 0x7ac8, 0x7ab0, 0xfffd,
1405     0x7ab6, 0x7ac5, 0x7ac4, 0x7abf, 0x9083, 0x7ac7, 0x7aca, 0x7acd,
1406     0x7acf, 0x7ad5, 0x7ad3, 0x7ad9, 0x7ada, 0x7add, 0x7ae1, 0x7ae2,
1407     0x7ae6, 0x7aed, 0x7af0, 0x7b02, 0x7b0f, 0x7b0a, 0x7b06, 0x7b33,
1408     0x7b18, 0x7b19, 0x7b1e, 0x7b35, 0x7b28, 0x7b36, 0x7b50, 0x7b7a,
1409     0x7b04, 0x7b4d, 0x7b0b, 0x7b4c, 0x7b45, 0x7b75, 0x7b65, 0x7b74,
1410     0x7b67, 0x7b70, 0x7b71, 0x7b6c, 0x7b6e, 0x7b9d, 0x7b98, 0x7b9f,
1411     0x7b8d, 0x7b9c, 0x7b9a, 0x7b8b, 0x7b92, 0x7b8f, 0x7b5d, 0x7b99,
1412     0x7bcb, 0x7bc1, 0x7bcc, 0x7bcf, 0x7bb4, 0x7bc6, 0x7bdd, 0x7be9,
1413     0x7c11, 0x7c14, 0x7be6, 0x7be5, 0x7c60, 0x7c00, 0x7c07, 0x7c13,
1414     0x7bf3, 0x7bf7, 0x7c17, 0x7c0d, 0x7bf6, 0x7c23, 0x7c27, 0x7c2a,
1415     0x7c1f, 0x7c37, 0x7c2b, 0x7c3d, 0x7c4c, 0x7c43, 0x7c54, 0x7c4f,
1416     0x7c40, 0x7c50, 0x7c58, 0x7c5f, 0x7c64, 0x7c56, 0x7c65, 0x7c6c,
1417     0x7c75, 0x7c83, 0x7c90, 0x7ca4, 0x7cad, 0x7ca2, 0x7cab, 0x7ca1,
1418     0x7ca8, 0x7cb3, 0x7cb2, 0x7cb1, 0x7cae, 0x7cb9, 0x7cbd, 0x7cc0,
1419     0x7cc5, 0x7cc2, 0x7cd8, 0x7cd2, 0x7cdc, 0x7ce2, 0x9b3b, 0x7cef,
1420     0x7cf2, 0x7cf4, 0x7cf6, 0x7cfa, 0x7d06, 0xfffd, 0xfffd, 0xfffd,
1421     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1422     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1423     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1424     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1425     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1426     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1427     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1428     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1429     0x7d02, 0x7d1c, 0x7d15, 0x7d0a, 0x7d45, 0x7d4b, 0x7d2e, 0x7d32,
1430     0x7d3f, 0x7d35, 0x7d46, 0x7d73, 0x7d56, 0x7d4e, 0x7d72, 0x7d68,
1431     0x7d6e, 0x7d4f, 0x7d63, 0x7d93, 0x7d89, 0x7d5b, 0x7d8f, 0x7d7d,
1432     0x7d9b, 0x7dba, 0x7dae, 0x7da3, 0x7db5, 0x7dc7, 0x7dbd, 0x7dab,
1433     0x7e3d, 0x7da2, 0x7daf, 0x7ddc, 0x7db8, 0x7d9f, 0x7db0, 0x7dd8,
1434     0x7ddd, 0x7de4, 0x7dde, 0x7dfb, 0x7df2, 0x7de1, 0x7e05, 0x7e0a,
1435     0x7e23, 0x7e21, 0x7e12, 0x7e31, 0x7e1f, 0x7e09, 0x7e0b, 0x7e22,
1436     0x7e46, 0x7e66, 0x7e3b, 0x7e35, 0x7e39, 0x7e43, 0x7e37, 0xfffd,
1437     0x7e32, 0x7e3a, 0x7e67, 0x7e5d, 0x7e56, 0x7e5e, 0x7e59, 0x7e5a,
1438     0x7e79, 0x7e6a, 0x7e69, 0x7e7c, 0x7e7b, 0x7e83, 0x7dd5, 0x7e7d,
1439     0x8fae, 0x7e7f, 0x7e88, 0x7e89, 0x7e8c, 0x7e92, 0x7e90, 0x7e93,
1440     0x7e94, 0x7e96, 0x7e8e, 0x7e9b, 0x7e9c, 0x7f38, 0x7f3a, 0x7f45,
1441     0x7f4c, 0x7f4d, 0x7f4e, 0x7f50, 0x7f51, 0x7f55, 0x7f54, 0x7f58,
1442     0x7f5f, 0x7f60, 0x7f68, 0x7f69, 0x7f67, 0x7f78, 0x7f82, 0x7f86,
1443     0x7f83, 0x7f88, 0x7f87, 0x7f8c, 0x7f94, 0x7f9e, 0x7f9d, 0x7f9a,
1444     0x7fa3, 0x7faf, 0x7fb2, 0x7fb9, 0x7fae, 0x7fb6, 0x7fb8, 0x8b71,
1445     0x7fc5, 0x7fc6, 0x7fca, 0x7fd5, 0x7fd4, 0x7fe1, 0x7fe6, 0x7fe9,
1446     0x7ff3, 0x7ff9, 0x98dc, 0x8006, 0x8004, 0x800b, 0x8012, 0x8018,
1447     0x8019, 0x801c, 0x8021, 0x8028, 0x803f, 0x803b, 0x804a, 0x8046,
1448     0x8052, 0x8058, 0x805a, 0x805f, 0x8062, 0x8068, 0x8073, 0x8072,
1449     0x8070, 0x8076, 0x8079, 0x807d, 0x807f, 0x8084, 0x8086, 0x8085,
1450     0x809b, 0x8093, 0x809a, 0x80ad, 0x5190, 0x80ac, 0x80db, 0x80e5,
1451     0x80d9, 0x80dd, 0x80c4, 0x80da, 0x80d6, 0x8109, 0x80ef, 0x80f1,
1452     0x811b, 0x8129, 0x8123, 0x812f, 0x814b, 0xfffd, 0xfffd, 0xfffd,
1453     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1454     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1455     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1456     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1457     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1458     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1459     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1460     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1461     0x968b, 0x8146, 0x813e, 0x8153, 0x8151, 0x80fc, 0x8171, 0x816e,
1462     0x8165, 0x8166, 0x8174, 0x8183, 0x8188, 0x818a, 0x8180, 0x8182,
1463     0x81a0, 0x8195, 0x81a4, 0x81a3, 0x815f, 0x8193, 0x81a9, 0x81b0,
1464     0x81b5, 0x81be, 0x81b8, 0x81bd, 0x81c0, 0x81c2, 0x81ba, 0x81c9,
1465     0x81cd, 0x81d1, 0x81d9, 0x81d8, 0x81c8, 0x81da, 0x81df, 0x81e0,
1466     0x81e7, 0x81fa, 0x81fb, 0x81fe, 0x8201, 0x8202, 0x8205, 0x8207,
1467     0x820a, 0x820d, 0x8210, 0x8216, 0x8229, 0x822b, 0x8238, 0x8233,
1468     0x8240, 0x8259, 0x8258, 0x825d, 0x825a, 0x825f, 0x8264, 0xfffd,
1469     0x8262, 0x8268, 0x826a, 0x826b, 0x822e, 0x8271, 0x8277, 0x8278,
1470     0x827e, 0x828d, 0x8292, 0x82ab, 0x829f, 0x82bb, 0x82ac, 0x82e1,
1471     0x82e3, 0x82df, 0x82d2, 0x82f4, 0x82f3, 0x82fa, 0x8393, 0x8303,
1472     0x82fb, 0x82f9, 0x82de, 0x8306, 0x82dc, 0x8309, 0x82d9, 0x8335,
1473     0x8334, 0x8316, 0x8332, 0x8331, 0x8340, 0x8339, 0x8350, 0x8345,
1474     0x832f, 0x832b, 0x8317, 0x8318, 0x8385, 0x839a, 0x83aa, 0x839f,
1475     0x83a2, 0x8396, 0x8323, 0x838e, 0x8387, 0x838a, 0x837c, 0x83b5,
1476     0x8373, 0x8375, 0x83a0, 0x8389, 0x83a8, 0x83f4, 0x8413, 0x83eb,
1477     0x83ce, 0x83fd, 0x8403, 0x83d8, 0x840b, 0x83c1, 0x83f7, 0x8407,
1478     0x83e0, 0x83f2, 0x840d, 0x8422, 0x8420, 0x83bd, 0x8438, 0x8506,
1479     0x83fb, 0x846d, 0x842a, 0x843c, 0x855a, 0x8484, 0x8477, 0x846b,
1480     0x84ad, 0x846e, 0x8482, 0x8469, 0x8446, 0x842c, 0x846f, 0x8479,
1481     0x8435, 0x84ca, 0x8462, 0x84b9, 0x84bf, 0x849f, 0x84d9, 0x84cd,
1482     0x84bb, 0x84da, 0x84d0, 0x84c1, 0x84c6, 0x84d6, 0x84a1, 0x8521,
1483     0x84ff, 0x84f4, 0x8517, 0x8518, 0x852c, 0x851f, 0x8515, 0x8514,
1484     0x84fc, 0x8540, 0x8563, 0x8558, 0x8548, 0xfffd, 0xfffd, 0xfffd,
1485     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1486     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1487     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1488     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1489     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1490     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1491     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1492     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1493     0x8541, 0x8602, 0x854b, 0x8555, 0x8580, 0x85a4, 0x8588, 0x8591,
1494     0x858a, 0x85a8, 0x856d, 0x8594, 0x859b, 0x85ea, 0x8587, 0x859c,
1495     0x8577, 0x857e, 0x8590, 0x85c9, 0x85ba, 0x85cf, 0x85b9, 0x85d0,
1496     0x85d5, 0x85dd, 0x85e5, 0x85dc, 0x85f9, 0x860a, 0x8613, 0x860b,
1497     0x85fe, 0x85fa, 0x8606, 0x8622, 0x861a, 0x8630, 0x863f, 0x864d,
1498     0x4e55, 0x8654, 0x865f, 0x8667, 0x8671, 0x8693, 0x86a3, 0x86a9,
1499     0x86aa, 0x868b, 0x868c, 0x86b6, 0x86af, 0x86c4, 0x86c6, 0x86b0,
1500     0x86c9, 0x8823, 0x86ab, 0x86d4, 0x86de, 0x86e9, 0x86ec, 0xfffd,
1501     0x86df, 0x86db, 0x86ef, 0x8712, 0x8706, 0x8708, 0x8700, 0x8703,
1502     0x86fb, 0x8711, 0x8709, 0x870d, 0x86f9, 0x870a, 0x8734, 0x873f,
1503     0x8737, 0x873b, 0x8725, 0x8729, 0x871a, 0x8760, 0x875f, 0x8778,
1504     0x874c, 0x874e, 0x8774, 0x8757, 0x8768, 0x876e, 0x8759, 0x8753,
1505     0x8763, 0x876a, 0x8805, 0x87a2, 0x879f, 0x8782, 0x87af, 0x87cb,
1506     0x87bd, 0x87c0, 0x87d0, 0x96d6, 0x87ab, 0x87c4, 0x87b3, 0x87c7,
1507     0x87c6, 0x87bb, 0x87ef, 0x87f2, 0x87e0, 0x880f, 0x880d, 0x87fe,
1508     0x87f6, 0x87f7, 0x880e, 0x87d2, 0x8811, 0x8816, 0x8815, 0x8822,
1509     0x8821, 0x8831, 0x8836, 0x8839, 0x8827, 0x883b, 0x8844, 0x8842,
1510     0x8852, 0x8859, 0x885e, 0x8862, 0x886b, 0x8881, 0x887e, 0x889e,
1511     0x8875, 0x887d, 0x88b5, 0x8872, 0x8882, 0x8897, 0x8892, 0x88ae,
1512     0x8899, 0x88a2, 0x888d, 0x88a4, 0x88b0, 0x88bf, 0x88b1, 0x88c3,
1513     0x88c4, 0x88d4, 0x88d8, 0x88d9, 0x88dd, 0x88f9, 0x8902, 0x88fc,
1514     0x88f4, 0x88e8, 0x88f2, 0x8904, 0x890c, 0x890a, 0x8913, 0x8943,
1515     0x891e, 0x8925, 0x892a, 0x892b, 0x8941, 0x8944, 0x893b, 0x8936,
1516     0x8938, 0x894c, 0x891d, 0x8960, 0x895e, 0xfffd, 0xfffd, 0xfffd,
1517     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1518     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1519     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1520     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1521     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1522     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1523     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1524     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1525     0x8966, 0x8964, 0x896d, 0x896a, 0x896f, 0x8974, 0x8977, 0x897e,
1526     0x8983, 0x8988, 0x898a, 0x8993, 0x8998, 0x89a1, 0x89a9, 0x89a6,
1527     0x89ac, 0x89af, 0x89b2, 0x89ba, 0x89bd, 0x89bf, 0x89c0, 0x89da,
1528     0x89dc, 0x89dd, 0x89e7, 0x89f4, 0x89f8, 0x8a03, 0x8a16, 0x8a10,
1529     0x8a0c, 0x8a1b, 0x8a1d, 0x8a25, 0x8a36, 0x8a41, 0x8a5b, 0x8a52,
1530     0x8a46, 0x8a48, 0x8a7c, 0x8a6d, 0x8a6c, 0x8a62, 0x8a85, 0x8a82,
1531     0x8a84, 0x8aa8, 0x8aa1, 0x8a91, 0x8aa5, 0x8aa6, 0x8a9a, 0x8aa3,
1532     0x8ac4, 0x8acd, 0x8ac2, 0x8ada, 0x8aeb, 0x8af3, 0x8ae7, 0xfffd,
1533     0x8ae4, 0x8af1, 0x8b14, 0x8ae0, 0x8ae2, 0x8af7, 0x8ade, 0x8adb,
1534     0x8b0c, 0x8b07, 0x8b1a, 0x8ae1, 0x8b16, 0x8b10, 0x8b17, 0x8b20,
1535     0x8b33, 0x97ab, 0x8b26, 0x8b2b, 0x8b3e, 0x8b28, 0x8b41, 0x8b4c,
1536     0x8b4f, 0x8b4e, 0x8b49, 0x8b56, 0x8b5b, 0x8b5a, 0x8b6b, 0x8b5f,
1537     0x8b6c, 0x8b6f, 0x8b74, 0x8b7d, 0x8b80, 0x8b8c, 0x8b8e, 0x8b92,
1538     0x8b93, 0x8b96, 0x8b99, 0x8b9a, 0x8c3a, 0x8c41, 0x8c3f, 0x8c48,
1539     0x8c4c, 0x8c4e, 0x8c50, 0x8c55, 0x8c62, 0x8c6c, 0x8c78, 0x8c7a,
1540     0x8c82, 0x8c89, 0x8c85, 0x8c8a, 0x8c8d, 0x8c8e, 0x8c94, 0x8c7c,
1541     0x8c98, 0x621d, 0x8cad, 0x8caa, 0x8cbd, 0x8cb2, 0x8cb3, 0x8cae,
1542     0x8cb6, 0x8cc8, 0x8cc1, 0x8ce4, 0x8ce3, 0x8cda, 0x8cfd, 0x8cfa,
1543     0x8cfb, 0x8d04, 0x8d05, 0x8d0a, 0x8d07, 0x8d0f, 0x8d0d, 0x8d10,
1544     0x9f4e, 0x8d13, 0x8ccd, 0x8d14, 0x8d16, 0x8d67, 0x8d6d, 0x8d71,
1545     0x8d73, 0x8d81, 0x8d99, 0x8dc2, 0x8dbe, 0x8dba, 0x8dcf, 0x8dda,
1546     0x8dd6, 0x8dcc, 0x8ddb, 0x8dcb, 0x8dea, 0x8deb, 0x8ddf, 0x8de3,
1547     0x8dfc, 0x8e08, 0x8e09, 0x8dff, 0x8e1d, 0x8e1e, 0x8e10, 0x8e1f,
1548     0x8e42, 0x8e35, 0x8e30, 0x8e34, 0x8e4a, 0xfffd, 0xfffd, 0xfffd,
1549     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1550     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1551     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1552     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1553     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1554     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1555     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1556     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1557     0x8e47, 0x8e49, 0x8e4c, 0x8e50, 0x8e48, 0x8e59, 0x8e64, 0x8e60,
1558     0x8e2a, 0x8e63, 0x8e55, 0x8e76, 0x8e72, 0x8e7c, 0x8e81, 0x8e87,
1559     0x8e85, 0x8e84, 0x8e8b, 0x8e8a, 0x8e93, 0x8e91, 0x8e94, 0x8e99,
1560     0x8eaa, 0x8ea1, 0x8eac, 0x8eb0, 0x8ec6, 0x8eb1, 0x8ebe, 0x8ec5,
1561     0x8ec8, 0x8ecb, 0x8edb, 0x8ee3, 0x8efc, 0x8efb, 0x8eeb, 0x8efe,
1562     0x8f0a, 0x8f05, 0x8f15, 0x8f12, 0x8f19, 0x8f13, 0x8f1c, 0x8f1f,
1563     0x8f1b, 0x8f0c, 0x8f26, 0x8f33, 0x8f3b, 0x8f39, 0x8f45, 0x8f42,
1564     0x8f3e, 0x8f4c, 0x8f49, 0x8f46, 0x8f4e, 0x8f57, 0x8f5c, 0xfffd,
1565     0x8f62, 0x8f63, 0x8f64, 0x8f9c, 0x8f9f, 0x8fa3, 0x8fad, 0x8faf,
1566     0x8fb7, 0x8fda, 0x8fe5, 0x8fe2, 0x8fea, 0x8fef, 0x9087, 0x8ff4,
1567     0x9005, 0x8ff9, 0x8ffa, 0x9011, 0x9015, 0x9021, 0x900d, 0x901e,
1568     0x9016, 0x900b, 0x9027, 0x9036, 0x9035, 0x9039, 0x8ff8, 0x904f,
1569     0x9050, 0x9051, 0x9052, 0x900e, 0x9049, 0x903e, 0x9056, 0x9058,
1570     0x905e, 0x9068, 0x906f, 0x9076, 0x96a8, 0x9072, 0x9082, 0x907d,
1571     0x9081, 0x9080, 0x908a, 0x9089, 0x908f, 0x90a8, 0x90af, 0x90b1,
1572     0x90b5, 0x90e2, 0x90e4, 0x6248, 0x90db, 0x9102, 0x9112, 0x9119,
1573     0x9132, 0x9130, 0x914a, 0x9156, 0x9158, 0x9163, 0x9165, 0x9169,
1574     0x9173, 0x9172, 0x918b, 0x9189, 0x9182, 0x91a2, 0x91ab, 0x91af,
1575     0x91aa, 0x91b5, 0x91b4, 0x91ba, 0x91c0, 0x91c1, 0x91c9, 0x91cb,
1576     0x91d0, 0x91d6, 0x91df, 0x91e1, 0x91db, 0x91fc, 0x91f5, 0x91f6,
1577     0x921e, 0x91ff, 0x9214, 0x922c, 0x9215, 0x9211, 0x925e, 0x9257,
1578     0x9245, 0x9249, 0x9264, 0x9248, 0x9295, 0x923f, 0x924b, 0x9250,
1579     0x929c, 0x9296, 0x9293, 0x929b, 0x925a, 0x92cf, 0x92b9, 0x92b7,
1580     0x92e9, 0x930f, 0x92fa, 0x9344, 0x932e, 0xfffd, 0xfffd, 0xfffd,
1581     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1582     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1583     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1584     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1585     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1586     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1587     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1588     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1589     0x9319, 0x9322, 0x931a, 0x9323, 0x933a, 0x9335, 0x933b, 0x935c,
1590     0x9360, 0x937c, 0x936e, 0x9356, 0x93b0, 0x93ac, 0x93ad, 0x9394,
1591     0x93b9, 0x93d6, 0x93d7, 0x93e8, 0x93e5, 0x93d8, 0x93c3, 0x93dd,
1592     0x93d0, 0x93c8, 0x93e4, 0x941a, 0x9414, 0x9413, 0x9403, 0x9407,
1593     0x9410, 0x9436, 0x942b, 0x9435, 0x9421, 0x943a, 0x9441, 0x9452,
1594     0x9444, 0x945b, 0x9460, 0x9462, 0x945e, 0x946a, 0x9229, 0x9470,
1595     0x9475, 0x9477, 0x947d, 0x945a, 0x947c, 0x947e, 0x9481, 0x947f,
1596     0x9582, 0x9587, 0x958a, 0x9594, 0x9596, 0x9598, 0x9599, 0xfffd,
1597     0x95a0, 0x95a8, 0x95a7, 0x95ad, 0x95bc, 0x95bb, 0x95b9, 0x95be,
1598     0x95ca, 0x6ff6, 0x95c3, 0x95cd, 0x95cc, 0x95d5, 0x95d4, 0x95d6,
1599     0x95dc, 0x95e1, 0x95e5, 0x95e2, 0x9621, 0x9628, 0x962e, 0x962f,
1600     0x9642, 0x964c, 0x964f, 0x964b, 0x9677, 0x965c, 0x965e, 0x965d,
1601     0x965f, 0x9666, 0x9672, 0x966c, 0x968d, 0x9698, 0x9695, 0x9697,
1602     0x96aa, 0x96a7, 0x96b1, 0x96b2, 0x96b0, 0x96b4, 0x96b6, 0x96b8,
1603     0x96b9, 0x96ce, 0x96cb, 0x96c9, 0x96cd, 0x894d, 0x96dc, 0x970d,
1604     0x96d5, 0x96f9, 0x9704, 0x9706, 0x9708, 0x9713, 0x970e, 0x9711,
1605     0x970f, 0x9716, 0x9719, 0x9724, 0x972a, 0x9730, 0x9739, 0x973d,
1606     0x973e, 0x9744, 0x9746, 0x9748, 0x9742, 0x9749, 0x975c, 0x9760,
1607     0x9764, 0x9766, 0x9768, 0x52d2, 0x976b, 0x9771, 0x9779, 0x9785,
1608     0x977c, 0x9781, 0x977a, 0x9786, 0x978b, 0x978f, 0x9790, 0x979c,
1609     0x97a8, 0x97a6, 0x97a3, 0x97b3, 0x97b4, 0x97c3, 0x97c6, 0x97c8,
1610     0x97cb, 0x97dc, 0x97ed, 0x9f4f, 0x97f2, 0x7adf, 0x97f6, 0x97f5,
1611     0x980f, 0x980c, 0x9838, 0x9824, 0x9821, 0x9837, 0x983d, 0x9846,
1612     0x984f, 0x984b, 0x986b, 0x986f, 0x9870, 0xfffd, 0xfffd, 0xfffd,
1613     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1614     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1615     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1616     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1617     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1618     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1619     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1620     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1621     0x9871, 0x9874, 0x9873, 0x98aa, 0x98af, 0x98b1, 0x98b6, 0x98c4,
1622     0x98c3, 0x98c6, 0x98e9, 0x98eb, 0x9903, 0x9909, 0x9912, 0x9914,
1623     0x9918, 0x9921, 0x991d, 0x991e, 0x9924, 0x9920, 0x992c, 0x992e,
1624     0x993d, 0x993e, 0x9942, 0x9949, 0x9945, 0x9950, 0x994b, 0x9951,
1625     0x9952, 0x994c, 0x9955, 0x9997, 0x9998, 0x99a5, 0x99ad, 0x99ae,
1626     0x99bc, 0x99df, 0x99db, 0x99dd, 0x99d8, 0x99d1, 0x99ed, 0x99ee,
1627     0x99f1, 0x99f2, 0x99fb, 0x99f8, 0x9a01, 0x9a0f, 0x9a05, 0x99e2,
1628     0x9a19, 0x9a2b, 0x9a37, 0x9a45, 0x9a42, 0x9a40, 0x9a43, 0xfffd,
1629     0x9a3e, 0x9a55, 0x9a4d, 0x9a5b, 0x9a57, 0x9a5f, 0x9a62, 0x9a65,
1630     0x9a64, 0x9a69, 0x9a6b, 0x9a6a, 0x9aad, 0x9ab0, 0x9abc, 0x9ac0,
1631     0x9acf, 0x9ad1, 0x9ad3, 0x9ad4, 0x9ade, 0x9adf, 0x9ae2, 0x9ae3,
1632     0x9ae6, 0x9aef, 0x9aeb, 0x9aee, 0x9af4, 0x9af1, 0x9af7, 0x9afb,
1633     0x9b06, 0x9b18, 0x9b1a, 0x9b1f, 0x9b22, 0x9b23, 0x9b25, 0x9b27,
1634     0x9b28, 0x9b29, 0x9b2a, 0x9b2e, 0x9b2f, 0x9b32, 0x9b44, 0x9b43,
1635     0x9b4f, 0x9b4d, 0x9b4e, 0x9b51, 0x9b58, 0x9b74, 0x9b93, 0x9b83,
1636     0x9b91, 0x9b96, 0x9b97, 0x9b9f, 0x9ba0, 0x9ba8, 0x9bb4, 0x9bc0,
1637     0x9bca, 0x9bb9, 0x9bc6, 0x9bcf, 0x9bd1, 0x9bd2, 0x9be3, 0x9be2,
1638     0x9be4, 0x9bd4, 0x9be1, 0x9c3a, 0x9bf2, 0x9bf1, 0x9bf0, 0x9c15,
1639     0x9c14, 0x9c09, 0x9c13, 0x9c0c, 0x9c06, 0x9c08, 0x9c12, 0x9c0a,
1640     0x9c04, 0x9c2e, 0x9c1b, 0x9c25, 0x9c24, 0x9c21, 0x9c30, 0x9c47,
1641     0x9c32, 0x9c46, 0x9c3e, 0x9c5a, 0x9c60, 0x9c67, 0x9c76, 0x9c78,
1642     0x9ce7, 0x9cec, 0x9cf0, 0x9d09, 0x9d08, 0x9ceb, 0x9d03, 0x9d06,
1643     0x9d2a, 0x9d26, 0x9daf, 0x9d23, 0x9d1f, 0x9d44, 0x9d15, 0x9d12,
1644     0x9d41, 0x9d3f, 0x9d3e, 0x9d46, 0x9d48, 0xfffd, 0xfffd, 0xfffd,
1645     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1646     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1647     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1648     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1649     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1650     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1651     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1652     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1653     0x9d5d, 0x9d5e, 0x9d64, 0x9d51, 0x9d50, 0x9d59, 0x9d72, 0x9d89,
1654     0x9d87, 0x9dab, 0x9d6f, 0x9d7a, 0x9d9a, 0x9da4, 0x9da9, 0x9db2,
1655     0x9dc4, 0x9dc1, 0x9dbb, 0x9db8, 0x9dba, 0x9dc6, 0x9dcf, 0x9dc2,
1656     0x9dd9, 0x9dd3, 0x9df8, 0x9de6, 0x9ded, 0x9def, 0x9dfd, 0x9e1a,
1657     0x9e1b, 0x9e1e, 0x9e75, 0x9e79, 0x9e7d, 0x9e81, 0x9e88, 0x9e8b,
1658     0x9e8c, 0x9e92, 0x9e95, 0x9e91, 0x9e9d, 0x9ea5, 0x9ea9, 0x9eb8,
1659     0x9eaa, 0x9ead, 0x9761, 0x9ecc, 0x9ece, 0x9ecf, 0x9ed0, 0x9ed4,
1660     0x9edc, 0x9ede, 0x9edd, 0x9ee0, 0x9ee5, 0x9ee8, 0x9eef, 0xfffd,
1661     0x9ef4, 0x9ef6, 0x9ef7, 0x9ef9, 0x9efb, 0x9efc, 0x9efd, 0x9f07,
1662     0x9f08, 0x76b7, 0x9f15, 0x9f21, 0x9f2c, 0x9f3e, 0x9f4a, 0x9f52,
1663     0x9f54, 0x9f63, 0x9f5f, 0x9f60, 0x9f61, 0x9f66, 0x9f67, 0x9f6c,
1664     0x9f6a, 0x9f77, 0x9f72, 0x9f76, 0x9f95, 0x9f9c, 0x9fa0, 0x582f,
1665     0x69c7, 0x9059, 0x7464, 0x51dc, 0x7199
1666 };
1667
1668 /* Unicode-to-Kanji tables... */
1669
1670 static USHORT                           /* Unicode to Shift-JIS */
1671 usj_0391[] = {                          /* 0x0391 thru 0x039c */
1672     0x839f, 0x83a0, 0x83a1, 0x83a2, 0x83a3, 0x83a4, 0x83a5, 0x83a6,
1673     0x83a7, 0x83a8, 0x83a9, 0x83aa, 0x83ab, 0x83ac, 0x83ad, 0x83ae,
1674     0x83af, 0xfffd, 0x83b0, 0x83b1, 0x83b2, 0x83b3, 0x83b4, 0x83b5,
1675     0x83b6, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1676     0x83bf, 0x83c0, 0x83c1, 0x83c2, 0x83c3, 0x83c4, 0x83c5, 0x83c6,
1677     0x83c7, 0x83c8, 0x83c9, 0x83ca, 0x83cb, 0x83cc, 0x83cd, 0x83ce,
1678     0x83cf, 0xfffd, 0x83d0, 0x83d1, 0x83d2, 0x83d3, 0x83d4, 0x83d5, 0x83d6
1679 };
1680
1681 static USHORT                           /* Unicode to Shift-JIS */
1682 usj_0401[] = {                          /* 0x0401 thru 0x0451 */
1683     0x8446, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1684     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8440,
1685     0x8441, 0x8442, 0x8443, 0x8444, 0x8445, 0x8447, 0x8448, 0x8449,
1686     0x844a, 0x844b, 0x844c, 0x844d, 0x844e, 0x844f, 0x8450, 0x8451,
1687     0x8452, 0x8453, 0x8454, 0x8455, 0x8456, 0x8457, 0x8458, 0x8459,
1688     0x845a, 0x845b, 0x845c, 0x845d, 0x845e, 0x845f, 0x8460, 0x8470,
1689     0x8471, 0x8472, 0x8473, 0x8474, 0x8475, 0x8477, 0x8478, 0x8479,
1690     0x847a, 0x847b, 0x847c, 0x847d, 0x847e, 0x8480, 0x8481, 0x8482,
1691     0x8483, 0x8484, 0x8485, 0x8486, 0x8487, 0x8488, 0x8489, 0x848a,
1692     0x848b, 0x848c, 0x848d, 0x848e, 0x848f, 0x8490, 0x8491, 0xfffd, 0x8476
1693 };
1694
1695 static USHORT                           /* Unicode to Shift-JIS */
1696 usj_3000[] = {                          /* 0x3000 thru 0x30ff */
1697     0x8140, 0x8141, 0x8142, 0x8156, 0xfffd, 0x8158, 0x8159, 0x815a,
1698     0x8171, 0x8172, 0x8173, 0x8174, 0x8175, 0x8176, 0x8177, 0x8178,
1699     0x8179, 0x817a, 0x81a7, 0x81ac, 0x816b, 0x816c, 0xfffd, 0xfffd,
1700     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8160, 0xfffd, 0xfffd, 0xfffd,
1701     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1702     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1703     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1704     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1705     0xfffd, 0x829f, 0x82a0, 0x82a1, 0x82a2, 0x82a3, 0x82a4, 0x82a5,
1706     0x82a6, 0x82a7, 0x82a8, 0x82a9, 0x82aa, 0x82ab, 0x82ac, 0x82ad,
1707     0x82ae, 0x82af, 0x82b0, 0x82b1, 0x82b2, 0x82b3, 0x82b4, 0x82b5,
1708     0x82b6, 0x82b7, 0x82b8, 0x82b9, 0x82ba, 0x82bb, 0x82bc, 0x82bd,
1709     0x82be, 0x82bf, 0x82c0, 0x82c1, 0x82c2, 0x82c3, 0x82c4, 0x82c5,
1710     0x82c6, 0x82c7, 0x82c8, 0x82c9, 0x82ca, 0x82cb, 0x82cc, 0x82cd,
1711     0x82ce, 0x82cf, 0x82d0, 0x82d1, 0x82d2, 0x82d3, 0x82d4, 0x82d5,
1712     0x82d6, 0x82d7, 0x82d8, 0x82d9, 0x82da, 0x82db, 0x82dc, 0x82dd,
1713     0x82de, 0x82df, 0x82e0, 0x82e1, 0x82e2, 0x82e3, 0x82e4, 0x82e5,
1714     0x82e6, 0x82e7, 0x82e8, 0x82e9, 0x82ea, 0x82eb, 0x82ec, 0x82ed,
1715     0x82ee, 0x82ef, 0x82f0, 0x82f1, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1716     0xfffd, 0xfffd, 0xfffd, 0x814a, 0x814b, 0x8154, 0x8155, 0xfffd,
1717     0xfffd, 0x8340, 0x8341, 0x8342, 0x8343, 0x8344, 0x8345, 0x8346,
1718     0x8347, 0x8348, 0x8349, 0x834a, 0x834b, 0x834c, 0x834d, 0x834e,
1719     0x834f, 0x8350, 0x8351, 0x8352, 0x8353, 0x8354, 0x8355, 0x8356,
1720     0x8357, 0x8358, 0x8359, 0x835a, 0x835b, 0x835c, 0x835d, 0x835e,
1721     0x835f, 0x8360, 0x8361, 0x8362, 0x8363, 0x8364, 0x8365, 0x8366,
1722     0x8367, 0x8368, 0x8369, 0x836a, 0x836b, 0x836c, 0x836d, 0x836e,
1723     0x836f, 0x8370, 0x8371, 0x8372, 0x8373, 0x8374, 0x8375, 0x8376,
1724     0x8377, 0x8378, 0x8379, 0x837a, 0x837b, 0x837c, 0x837d, 0x837e,
1725     0x8380, 0x8381, 0x8382, 0x8383, 0x8384, 0x8385, 0x8386, 0x8387,
1726     0x8388, 0x8389, 0x838a, 0x838b, 0x838c, 0x838d, 0x838e, 0x838f,
1727     0x8390, 0x8391, 0x8392, 0x8393, 0x8394, 0x8395, 0x8396, 0xfffd,
1728     0xfffd, 0xfffd, 0xfffd, 0x8145, 0x815b, 0x8152, 0x8153, 0xfffd
1729 };
1730
1731 static USHORT                           /* Unicode to Shift-JIS */
1732 usj_ff00[] = {                          /* 0xff00 thru 0x0ff9f */
1733     0xfffd, 0x8149, 0xfffd, 0x8194, 0x8190, 0x8193, 0x8195, 0xfffd,
1734     0x8169, 0x816a, 0x8196, 0x817b, 0x8143, 0xfffd, 0x8144, 0x815e,
1735     0x824f, 0x8250, 0x8251, 0x8252, 0x8253, 0x8254, 0x8255, 0x8256,
1736     0x8257, 0x8258, 0x8146, 0x8147, 0x8183, 0x8181, 0x8184, 0x8148,
1737     0x8197, 0x8260, 0x8261, 0x8262, 0x8263, 0x8264, 0x8265, 0x8266,
1738     0x8267, 0x8268, 0x8269, 0x826a, 0x826b, 0x826c, 0x826d, 0x826e,
1739     0x826f, 0x8270, 0x8271, 0x8272, 0x8273, 0x8274, 0x8275, 0x8276,
1740     0x8277, 0x8278, 0x8279, 0x816d, 0xfffd, 0x816e, 0x814f, 0x8151,
1741     0x814d, 0x8281, 0x8282, 0x8283, 0x8284, 0x8285, 0x8286, 0x8287,
1742     0x8288, 0x8289, 0x828a, 0x828b, 0x828c, 0x828d, 0x828e, 0x828f,
1743     0x8290, 0x8291, 0x8292, 0x8293, 0x8294, 0x8295, 0x8296, 0x8297,
1744     0x8298, 0x8299, 0x829a, 0x816f, 0x8162, 0x8170, 0xfffd, 0xfffd,
1745     0xfffd, 0x00a1, 0x00a2, 0x00a3, 0x00a4, 0x00a5, 0x00a6, 0x00a7,
1746     0x00a8, 0x00a9, 0x00aa, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0x00af,
1747     0x00b0, 0x00b1, 0x00b2, 0x00b3, 0x00b4, 0x00b5, 0x00b6, 0x00b7,
1748     0x00b8, 0x00b9, 0x00ba, 0x00bb, 0x00bc, 0x00bd, 0x00be, 0x00bf,
1749     0x00c0, 0x00c1, 0x00c2, 0x00c3, 0x00c4, 0x00c5, 0x00c6, 0x00c7,
1750     0x00c8, 0x00c9, 0x00ca, 0x00cb, 0x00cc, 0x00cd, 0x00ce, 0x00cf,
1751     0x00d0, 0x00d1, 0x00d2, 0x00d3, 0x00d4, 0x00d5, 0x00d6, 0x00d7,
1752     0x00d8, 0x00d9, 0x00da, 0x00db, 0x00dc, 0x00dd, 0x00de, 0x00df
1753 };
1754
1755 /* Now one humongous table for Kanji */
1756
1757 static USHORT                           /* Unicode to Shift-JIS */
1758 usj_4e00[] = {                          /* 0x4e00 thru 0x9fa0 */
1759     0x88ea, 0x929a, 0xfffd, 0x8eb5, 0xfffd, 0xfffd, 0xfffd, 0x969c,
1760     0x8fe4, 0x8e4f, 0x8fe3, 0x89ba, 0xfffd, 0x9573, 0x975e, 0xfffd,
1761     0x98a0, 0x894e, 0xfffd, 0xfffd, 0x8a8e, 0x98a1, 0x90a2, 0x99c0,
1762     0x8b75, 0x95b8, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8fe5, 0xfffd,
1763     0xfffd, 0x97bc, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x95c0, 0xfffd,
1764     0xfffd, 0xfffd, 0x98a2, 0xfffd, 0xfffd, 0x9286, 0xfffd, 0xfffd,
1765     0xfffd, 0x98a3, 0x8bf8, 0xfffd, 0xfffd, 0xfffd, 0x98a4, 0xfffd,
1766     0x8adb, 0x924f, 0xfffd, 0x8ee5, 0x98a5, 0xfffd, 0xfffd, 0x98a6,
1767     0xfffd, 0xfffd, 0x98a7, 0x9454, 0xfffd, 0x8b76, 0xfffd, 0xfffd,
1768     0xfffd, 0xfffd, 0xfffd, 0x9456, 0xfffd, 0x93e1, 0x8cc1, 0x9652,
1769     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe568, 0x98a8, 0x8fe6,
1770     0x98a9, 0x89b3, 0xfffd, 0xfffd, 0xfffd, 0x8be3, 0x8cee, 0x96e7,
1771     0xfffd, 0xfffd, 0x9ba4, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1772     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1773     0xfffd, 0x9790, 0xfffd, 0x93fb, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1774     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8aa3, 0xfffd,
1775     0x8b54, 0xfffd, 0x98aa, 0xfffd, 0xfffd, 0x98ab, 0x97b9, 0xfffd,
1776     0x975c, 0x9188, 0x98ad, 0x8e96, 0x93f1, 0xfffd, 0x98b0, 0xfffd,
1777     0xfffd, 0x895d, 0x8cdd, 0xfffd, 0x8cdc, 0x88e4, 0xfffd, 0xfffd,
1778     0x986a, 0x9869, 0xfffd, 0x8db1, 0x889f, 0xfffd, 0x98b1, 0x98b2,
1779     0x98b3, 0x9653, 0x98b4, 0xfffd, 0x8cf0, 0x88e5, 0x9692, 0xfffd,
1780     0x8b9c, 0xfffd, 0xfffd, 0x8b9d, 0x8b9e, 0x92e0, 0x97ba, 0xfffd,
1781     0x98b5, 0xfffd, 0xfffd, 0x98b6, 0xfffd, 0xfffd, 0x98b7, 0xfffd,
1782     0xfffd, 0xfffd, 0x906c, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1783     0x8f59, 0x906d, 0x98bc, 0xfffd, 0x98ba, 0xfffd, 0x98bb, 0x8b77,
1784     0xfffd, 0xfffd, 0x8da1, 0x89ee, 0xfffd, 0x98b9, 0x98b8, 0x95a7,
1785     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8e65, 0x8e64, 0x91bc, 0x98bd,
1786     0x9574, 0x90e5, 0xfffd, 0xfffd, 0xfffd, 0x8157, 0x98be, 0x98c0,
1787     0xfffd, 0xfffd, 0xfffd, 0x91e3, 0x97df, 0x88c8, 0xfffd, 0xfffd,
1788     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x98bf, 0x89bc, 0xfffd,
1789     0x8bc2, 0xfffd, 0x9287, 0xfffd, 0xfffd, 0xfffd, 0x8c8f, 0x98c1,
1790     0xfffd, 0xfffd, 0xfffd, 0x9443, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1791     0xfffd, 0x8ae9, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1792     0xfffd, 0x98c2, 0x88c9, 0xfffd, 0xfffd, 0x8cde, 0x8aea, 0x959a,
1793     0x94b0, 0x8b78, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1794     0xfffd, 0xfffd, 0x89ef, 0xfffd, 0x98e5, 0x9360, 0xfffd, 0xfffd,
1795     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1796     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x948c,
1797     0x98c4, 0xfffd, 0xfffd, 0xfffd, 0x94ba, 0xfffd, 0x97e0, 0xfffd,
1798     0x904c, 0xfffd, 0x8e66, 0xfffd, 0x8e97, 0x89be, 0xfffd, 0xfffd,
1799     0xfffd, 0xfffd, 0xfffd, 0x92cf, 0xfffd, 0xfffd, 0x9241, 0x98c8,
1800     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x88ca, 0x92e1, 0x8f5a,
1801     0x8db2, 0x9743, 0xfffd, 0x91cc, 0xfffd, 0x89bd, 0xfffd, 0x98c7,
1802     0xfffd, 0x975d, 0x98c3, 0x98c5, 0x8dec, 0x98c6, 0x9b43, 0xfffd,
1803     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1804     0xfffd, 0x98ce, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x98d1,
1805     0x98cf, 0xfffd, 0xfffd, 0x89c0, 0xfffd, 0x95b9, 0x98c9, 0xfffd,
1806     0xfffd, 0xfffd, 0xfffd, 0x98cd, 0x8cf1, 0xfffd, 0xfffd, 0x8e67,
1807     0xfffd, 0xfffd, 0xfffd, 0x8aa4, 0xfffd, 0xfffd, 0x98d2, 0xfffd,
1808     0x98ca, 0xfffd, 0xfffd, 0x97e1, 0xfffd, 0x8e98, 0xfffd, 0x98cb,
1809     0xfffd, 0x98d0, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x98d3, 0xfffd,
1810     0x98cc, 0xfffd, 0xfffd, 0x8b9f, 0xfffd, 0x88cb, 0xfffd, 0xfffd,
1811     0x8ba0, 0x89bf, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1812     0xfffd, 0xfffd, 0xfffd, 0x9b44, 0xfffd, 0x9699, 0x958e, 0x8cf2,
1813     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x904e, 0x97b5, 0xfffd,
1814     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x95d6,
1815     0xfffd, 0xfffd, 0x8c57, 0x91a3, 0x89e2, 0xfffd, 0xfffd, 0xfffd,
1816     0xfffd, 0xfffd, 0x8f72, 0xfffd, 0xfffd, 0xfffd, 0x98d7, 0xfffd,
1817     0x98dc, 0x98da, 0xfffd, 0xfffd, 0x98d5, 0xfffd, 0xfffd, 0x91ad,
1818     0x98d8, 0xfffd, 0x98db, 0x98d9, 0xfffd, 0x95db, 0xfffd, 0x98d6,
1819     0xfffd, 0x904d, 0xfffd, 0x9693, 0x98dd, 0x98de, 0xfffd, 0xfffd,
1820     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8f43, 0x98eb,
1821     0xfffd, 0xfffd, 0xfffd, 0x946f, 0xfffd, 0x9555, 0x98e6, 0xfffd,
1822     0x95ee, 0xfffd, 0x89b4, 0xfffd, 0xfffd, 0xfffd, 0x98ea, 0xfffd,
1823     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x98e4, 0x98ed, 0xfffd,
1824     0xfffd, 0x9171, 0xfffd, 0x8cc2, 0xfffd, 0x947b, 0xfffd, 0xe0c5,
1825     0xfffd, 0x98ec, 0x937c, 0xfffd, 0x98e1, 0xfffd, 0x8cf4, 0xfffd,
1826     0xfffd, 0x8cf3, 0x98df, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8ed8,
1827     0xfffd, 0x98e7, 0xfffd, 0x95ed, 0x926c, 0x98e3, 0x8c91, 0xfffd,
1828     0x98e0, 0x98e8, 0x98e2, 0x97cf, 0x98e9, 0x9860, 0xfffd, 0xfffd,
1829     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8be4, 0xfffd,
1830     0xfffd, 0x8c90, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1831     0xfffd, 0xfffd, 0xfffd, 0x98ee, 0xfffd, 0xfffd, 0xfffd, 0x98ef,
1832     0x98f3, 0x88cc, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x95ce,
1833     0x98f2, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x98f1, 0x98f5, 0xfffd,
1834     0xfffd, 0xfffd, 0x98f4, 0xfffd, 0x92e2, 0xfffd, 0xfffd, 0xfffd,
1835     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8c92, 0xfffd, 0xfffd,
1836     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x98f6, 0xfffd, 0xfffd, 0xfffd,
1837     0xfffd, 0xfffd, 0x8ec3, 0xfffd, 0x91a4, 0x92e3, 0x8bf4, 0xfffd,
1838     0x98f7, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8b55, 0xfffd, 0xfffd,
1839     0x98f8, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x98fa, 0xfffd, 0xfffd,
1840     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9654, 0xfffd, 0xfffd,
1841     0xfffd, 0x8c86, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1842     0x8e50, 0x94f5, 0x98f9, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1843     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1844     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8dc3, 0x9762, 0xfffd, 0xfffd,
1845     0xfffd, 0xfffd, 0x98fc, 0x9942, 0x98fb, 0x8dc2, 0xfffd, 0x8f9d,
1846     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8c58, 0xfffd,
1847     0xfffd, 0xfffd, 0x9943, 0xfffd, 0xfffd, 0x8bcd, 0xfffd, 0xfffd,
1848     0xfffd, 0x9940, 0x9941, 0xfffd, 0xfffd, 0x93ad, 0xfffd, 0x919c,
1849     0xfffd, 0x8ba1, 0xfffd, 0xfffd, 0xfffd, 0x966c, 0x9944, 0xfffd,
1850     0xfffd, 0xfffd, 0x97bb, 0xfffd, 0xfffd, 0xfffd, 0x9945, 0xfffd,
1851     0xfffd, 0xfffd, 0xfffd, 0x9948, 0xfffd, 0x9946, 0xfffd, 0x916d,
1852     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9947, 0x9949, 0xfffd,
1853     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x994b, 0xfffd, 0xfffd,
1854     0xfffd, 0x994a, 0xfffd, 0x95c6, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1855     0x8b56, 0x994d, 0x994e, 0xfffd, 0x89ad, 0xfffd, 0xfffd, 0xfffd,
1856     0xfffd, 0x994c, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1857     0xfffd, 0xfffd, 0x8ef2, 0xfffd, 0x9951, 0x9950, 0x994f, 0xfffd,
1858     0x98d4, 0xfffd, 0x9952, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8f9e,
1859     0xfffd, 0x9953, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1860     0xfffd, 0xfffd, 0x9744, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1861     0xfffd, 0xfffd, 0x96d7, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9955,
1862     0xfffd, 0xfffd, 0x9954, 0x9957, 0x9956, 0xfffd, 0xfffd, 0x9958,
1863     0x9959, 0x88f2, 0xfffd, 0x8cb3, 0x8c5a, 0x8f5b, 0x929b, 0x8ba2,
1864     0x90e6, 0x8cf5, 0xfffd, 0x8d8e, 0x995b, 0x96c6, 0x9365, 0xfffd,
1865     0x8e99, 0xfffd, 0x995a, 0xfffd, 0x995c, 0xfffd, 0xfffd, 0xfffd,
1866     0xfffd, 0xfffd, 0x937d, 0xfffd, 0x8a95, 0xfffd, 0xfffd, 0xfffd,
1867     0xfffd, 0xfffd, 0x995d, 0xfffd, 0xfffd, 0x93fc, 0xfffd, 0xfffd,
1868     0x9153, 0x995f, 0x9960, 0x94aa, 0x8cf6, 0x985a, 0x9961, 0xfffd,
1869     0xfffd, 0x8ba4, 0xfffd, 0xfffd, 0xfffd, 0x95ba, 0x91b4, 0x8bef,
1870     0x9354, 0xfffd, 0xfffd, 0xfffd, 0x8c93, 0xfffd, 0xfffd, 0xfffd,
1871     0x9962, 0xfffd, 0x9963, 0xfffd, 0xfffd, 0x93e0, 0x897e, 0xfffd,
1872     0xfffd, 0x9966, 0x8dfb, 0xfffd, 0x9965, 0x8dc4, 0xfffd, 0x9967,
1873     0xe3ec, 0x9968, 0x9660, 0x9969, 0xfffd, 0x996a, 0x996b, 0x8fe7,
1874     0xfffd, 0x8eca, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1875     0x8aa5, 0xfffd, 0x996e, 0xfffd, 0x996c, 0x96bb, 0x996d, 0xfffd,
1876     0x9579, 0x996f, 0x9970, 0x9971, 0x937e, 0xfffd, 0xfffd, 0xfffd,
1877     0x9975, 0x9973, 0x9974, 0x9972, 0x8de1, 0x9976, 0x96e8, 0x97e2,
1878     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9977, 0xfffd, 0xfffd,
1879     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x90a6, 0x9978, 0x8f79, 0xfffd,
1880     0xfffd, 0x9979, 0xfffd, 0x929c, 0x97bd, 0x9380, 0xfffd, 0xfffd,
1881     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x99c3, 0xfffd,
1882     0xfffd, 0xfffd, 0xfffd, 0x997a, 0xeaa3, 0x8bc3, 0xfffd, 0xfffd,
1883     0x997b, 0x967d, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8f88, 0x91fa,
1884     0xfffd, 0x997d, 0x93e2, 0xfffd, 0xfffd, 0x997e, 0xfffd, 0xfffd,
1885     0x9980, 0x8a4d, 0xfffd, 0xfffd, 0xfffd, 0x9981, 0x8ba5, 0xfffd,
1886     0x93ca, 0x899a, 0x8f6f, 0xfffd, 0xfffd, 0x949f, 0x9982, 0xfffd,
1887     0x9381, 0xfffd, 0xfffd, 0x906e, 0x9983, 0xfffd, 0x95aa, 0x90d8,
1888     0x8aa0, 0xfffd, 0x8aa7, 0x9984, 0xfffd, 0xfffd, 0x9986, 0xfffd,
1889     0xfffd, 0x8c59, 0xfffd, 0xfffd, 0x9985, 0xfffd, 0xfffd, 0x97f1,
1890     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8f89, 0xfffd, 0xfffd,
1891     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x94bb, 0x95ca, 0xfffd, 0x9987,
1892     0xfffd, 0x9798, 0x9988, 0xfffd, 0xfffd, 0xfffd, 0x9989, 0xfffd,
1893     0x939e, 0xfffd, 0xfffd, 0x998a, 0xfffd, 0xfffd, 0x90a7, 0x8dfc,
1894     0x8c94, 0x998b, 0x8e68, 0x8d8f, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1895     0xfffd, 0xfffd, 0xfffd, 0x92e4, 0x998d, 0xfffd, 0xfffd, 0x91a5,
1896     0xfffd, 0xfffd, 0x8ded, 0x998e, 0x998f, 0x914f, 0xfffd, 0x998c,
1897     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9991, 0xfffd, 0x9655, 0xfffd,
1898     0xfffd, 0xfffd, 0xfffd, 0x8d84, 0xfffd, 0xfffd, 0x9990, 0xfffd,
1899     0xfffd, 0xfffd, 0xfffd, 0x8c95, 0x8ddc, 0x948d, 0xfffd, 0xfffd,
1900     0xfffd, 0x9994, 0x9992, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x959b,
1901     0x8fe8, 0x999b, 0x8a84, 0x9995, 0x9993, 0x916e, 0xfffd, 0xfffd,
1902     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9997, 0xfffd, 0x9996,
1903     0xfffd, 0xfffd, 0xfffd, 0x8a63, 0xfffd, 0xfffd, 0xfffd, 0x8c80,
1904     0x999c, 0x97ab, 0xfffd, 0xfffd, 0xfffd, 0x9998, 0xfffd, 0xfffd,
1905     0xfffd, 0x999d, 0x999a, 0xfffd, 0x9999, 0xfffd, 0xfffd, 0xfffd,
1906     0xfffd, 0xfffd, 0xfffd, 0x97cd, 0xfffd, 0xfffd, 0xfffd, 0x8cf7,
1907     0x89c1, 0xfffd, 0xfffd, 0x97f2, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1908     0xfffd, 0x8f95, 0x9377, 0x8d85, 0x99a0, 0x99a1, 0xfffd, 0xfffd,
1909     0xfffd, 0x97e3, 0xfffd, 0xfffd, 0x984a, 0x99a3, 0xfffd, 0xfffd,
1910     0xfffd, 0x8cf8, 0xfffd, 0xfffd, 0x99a2, 0xfffd, 0x8a4e, 0xfffd,
1911     0xfffd, 0x99a4, 0xfffd, 0x9675, 0xfffd, 0x92ba, 0xfffd, 0x9745,
1912     0xfffd, 0x95d7, 0xfffd, 0xfffd, 0xfffd, 0x99a5, 0xfffd, 0xfffd,
1913     0xfffd, 0xfffd, 0xe8d3, 0xfffd, 0xfffd, 0x93ae, 0xfffd, 0x99a6,
1914     0x8aa8, 0x96b1, 0xfffd, 0xfffd, 0xfffd, 0x8f9f, 0x99a7, 0x95e5,
1915     0x99ab, 0xfffd, 0x90a8, 0x99a8, 0x8bce, 0xfffd, 0x99a9, 0x8aa9,
1916     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1917     0xfffd, 0xfffd, 0x8c4d, 0x99ac, 0xfffd, 0x99ad, 0xfffd, 0xfffd,
1918     0x99ae, 0x99af, 0x8ed9, 0xfffd, 0xfffd, 0xfffd, 0x8cf9, 0x96dc,
1919     0xfffd, 0x96e6, 0x93f5, 0xfffd, 0xfffd, 0x95ef, 0x99b0, 0xfffd,
1920     0x99b1, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x99b3, 0xfffd, 0x99b5,
1921     0x99b4, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x99b6, 0x89bb, 0x966b,
1922     0xfffd, 0x8dfa, 0x99b7, 0xfffd, 0xfffd, 0x9178, 0xfffd, 0xfffd,
1923     0x8fa0, 0x8ba7, 0xfffd, 0x99b8, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1924     0xfffd, 0xfffd, 0x94d9, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x99b9,
1925     0xfffd, 0x99ba, 0xfffd, 0x99bb, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1926     0x99bc, 0x9543, 0x8be6, 0x88e3, 0xfffd, 0xfffd, 0xfffd, 0x93bd,
1927     0x99bd, 0x8f5c, 0xfffd, 0x90e7, 0xfffd, 0x99bf, 0x99be, 0x8fa1,
1928     0x8cdf, 0x99c1, 0x94bc, 0xfffd, 0xfffd, 0x99c2, 0xfffd, 0xfffd,
1929     0xfffd, 0x94da, 0x91b2, 0x91ec, 0x8ba6, 0xfffd, 0xfffd, 0x93ec,
1930     0x9250, 0xfffd, 0x948e, 0xfffd, 0x966d, 0xfffd, 0x99c4, 0xfffd,
1931     0x90e8, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8c54, 0xfffd,
1932     0xfffd, 0x99c5, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x99c6, 0x894b,
1933     0x88f3, 0x8aeb, 0xfffd, 0x91a6, 0x8b70, 0x9791, 0xfffd, 0x99c9,
1934     0x89b5, 0xfffd, 0xfffd, 0x99c8, 0xfffd, 0xfffd, 0xfffd, 0x8ba8,
1935     0xfffd, 0xfffd, 0x99ca, 0xfffd, 0x96ef, 0xfffd, 0xfffd, 0xfffd,
1936     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1937     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x99cb, 0xfffd,
1938     0x97d0, 0xfffd, 0x8cfa, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8cb4,
1939     0x99cc, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x99ce, 0x99cd, 0xfffd,
1940     0x907e, 0x8958, 0xfffd, 0xfffd, 0xfffd, 0x897d, 0x99cf, 0xfffd,
1941     0x99d0, 0xfffd, 0xfffd, 0x8cb5, 0xfffd, 0xfffd, 0x99d1, 0xfffd,
1942     0xfffd, 0xfffd, 0xfffd, 0x8b8e, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1943     0xfffd, 0xfffd, 0x8e51, 0x99d2, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1944     0x9694, 0x8db3, 0x8b79, 0x9746, 0x916f, 0x94bd, 0x8efb, 0xfffd,
1945     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8f66, 0xfffd, 0x8ee6, 0x8ef3,
1946     0xfffd, 0x8f96, 0xfffd, 0x94be, 0xfffd, 0xfffd, 0xfffd, 0x99d5,
1947     0xfffd, 0x8962, 0x9170, 0x8cfb, 0x8cc3, 0x8be5, 0xfffd, 0xfffd,
1948     0x99d9, 0x9240, 0x91fc, 0x8ba9, 0x8fa2, 0x99da, 0x99d8, 0x89c2,
1949     0x91e4, 0x8eb6, 0x8e6a, 0x8945, 0xfffd, 0xfffd, 0x8a90, 0x8d86,
1950     0x8e69, 0xfffd, 0x99db, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1951     0xfffd, 0x99dc, 0xfffd, 0x8b68, 0x8a65, 0xfffd, 0xfffd, 0xfffd,
1952     0x8d87, 0x8b67, 0x92dd, 0x8944, 0x93af, 0x96bc, 0x8d40, 0x9799,
1953     0x9366, 0x8cfc, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1954     0xfffd, 0xfffd, 0xfffd, 0x8c4e, 0xfffd, 0x99e5, 0xfffd, 0x8be1,
1955     0x9669, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x94db, 0xfffd,
1956     0xfffd, 0x99e4, 0xfffd, 0x8adc, 0x99df, 0x99e0, 0x99e2, 0xfffd,
1957     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x99e3, 0xfffd,
1958     0x8b7a, 0x9081, 0xfffd, 0x95ab, 0x99e1, 0x99dd, 0x8ce1, 0xfffd,
1959     0x99de, 0xfffd, 0x9843, 0xfffd, 0xfffd, 0xfffd, 0x95f0, 0xfffd,
1960     0x92e6, 0x8ce0, 0x8d90, 0xfffd, 0xfffd, 0xfffd, 0x99e6, 0xfffd,
1961     0xfffd, 0x93db, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1962     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x99ea,
1963     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1964     0x8efc, 0xfffd, 0x8ef4, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1965     0x99ed, 0x99eb, 0xfffd, 0x96a1, 0xfffd, 0x99e8, 0x99f1, 0x99ec,
1966     0xfffd, 0xfffd, 0xfffd, 0x99ef, 0x8cc4, 0x96bd, 0xfffd, 0xfffd,
1967     0x99f0, 0xfffd, 0xfffd, 0xfffd, 0x99f2, 0xfffd, 0x99f4, 0xfffd,
1968     0xfffd, 0xfffd, 0xfffd, 0x8dee, 0x9861, 0xfffd, 0x99e9, 0x99e7,
1969     0x99f3, 0xfffd, 0x99ee, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1970     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1971     0xfffd, 0xfffd, 0x99f6, 0xfffd, 0x9a42, 0x99f8, 0xfffd, 0xfffd,
1972     0x99fc, 0xfffd, 0xfffd, 0x9a40, 0x99f9, 0xfffd, 0xfffd, 0x9a5d,
1973     0xfffd, 0xfffd, 0x8de7, 0x8a50, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1974     0x99f7, 0xfffd, 0xfffd, 0xfffd, 0x9a44, 0x88f4, 0x9a43, 0xfffd,
1975     0x88a3, 0x9569, 0x9a41, 0xfffd, 0x99fa, 0xfffd, 0xfffd, 0x99f5,
1976     0x99fb, 0x8dc6, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1977     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1978     0x9a45, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1979     0xfffd, 0x88f5, 0x9a4e, 0xfffd, 0xfffd, 0x9a46, 0x9a47, 0xfffd,
1980     0x8fa3, 0x9689, 0xfffd, 0xfffd, 0xfffd, 0x9a4c, 0x9a4b, 0xfffd,
1981     0xfffd, 0xfffd, 0x934e, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1982     0xfffd, 0xfffd, 0x9a4d, 0xfffd, 0xfffd, 0x9a4a, 0xfffd, 0xfffd,
1983     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8953, 0xfffd, 0x8db4, 0x904f,
1984     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9a48,
1985     0x9382, 0xfffd, 0xfffd, 0xfffd, 0x9a49, 0xfffd, 0x88a0, 0xfffd,
1986     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1987     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1988     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9a53, 0x9742,
1989     0xfffd, 0x8fa5, 0xfffd, 0x9a59, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1990     0x9a58, 0x9a4f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x91c1, 0xfffd,
1991     0x9a50, 0xfffd, 0xfffd, 0xfffd, 0x91ed, 0x9a55, 0x8fa4, 0xfffd,
1992     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9a52, 0xfffd, 0xfffd, 0x96e2,
1993     0xfffd, 0xfffd, 0xfffd, 0x8c5b, 0xfffd, 0xfffd, 0x9a56, 0x9a57,
1994     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9a54, 0x9a5a, 0xfffd, 0xfffd,
1995     0xfffd, 0xfffd, 0xfffd, 0x9a51, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1996     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1997     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
1998     0xfffd, 0xfffd, 0xfffd, 0x9a60, 0x9a65, 0xfffd, 0x9a61, 0xfffd,
1999     0x9a5c, 0xfffd, 0xfffd, 0x9a66, 0x9150, 0xfffd, 0xfffd, 0x9a68,
2000     0xfffd, 0x8d41, 0x9a5e, 0x929d, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2001     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2002     0x9a62, 0x9a5b, 0x8aab, 0xfffd, 0x8aec, 0x8a85, 0x9a63, 0x9a5f,
2003     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8c96,
2004     0x9a69, 0x9a67, 0x9172, 0x8b69, 0x8baa, 0xfffd, 0x9a64, 0xfffd,
2005     0x8bf2, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8963, 0xfffd,
2006     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2007     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9a6d, 0x9a6b, 0xfffd, 0x9aa5,
2008     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2009     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9a70, 0xfffd, 0xfffd, 0xfffd,
2010     0xfffd, 0xfffd, 0x9a6a, 0xfffd, 0x9a6e, 0xfffd, 0xfffd, 0x9a6c,
2011     0xfffd, 0xfffd, 0xfffd, 0x8e6b, 0x9a6f, 0xfffd, 0xfffd, 0xfffd,
2012     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2013     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9a72,
2014     0xfffd, 0x9a77, 0xfffd, 0xfffd, 0xfffd, 0x9a75, 0x9a74, 0xfffd,
2015     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9251, 0xfffd,
2016     0xfffd, 0x89c3, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2017     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9a71, 0xfffd, 0x9a73, 0x8fa6,
2018     0x8952, 0xfffd, 0xfffd, 0x9a76, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2019     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2020     0xfffd, 0x89dc, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9a82,
2021     0xfffd, 0x8ffa, 0x9a7d, 0xfffd, 0x9a7b, 0xfffd, 0x9a7c, 0xfffd,
2022     0x9a7e, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2023     0xfffd, 0xfffd, 0x895c, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2024     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9158, 0xfffd, 0x9a78, 0xfffd,
2025     0x9a79, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2026     0xfffd, 0xfffd, 0xfffd, 0x8a9a, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2027     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9a81, 0xfffd, 0xfffd, 0xfffd,
2028     0x8aed, 0xfffd, 0x9a84, 0x9a80, 0x9a83, 0xfffd, 0xfffd, 0xfffd,
2029     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x95ac, 0xfffd, 0xfffd, 0xfffd,
2030     0x93d3, 0xfffd, 0x94b6, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2031     0x9a86, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9a85, 0x8a64,
2032     0xfffd, 0xfffd, 0x9a87, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9a8a,
2033     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9a89, 0xfffd, 0xfffd, 0xfffd,
2034     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2035     0x9a88, 0xfffd, 0x9458, 0xfffd, 0xfffd, 0x9a8b, 0xfffd, 0xfffd,
2036     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9a8c, 0xfffd,
2037     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9a8e, 0xfffd, 0x9a8d, 0xfffd,
2038     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9a90, 0xfffd, 0xfffd, 0xfffd,
2039     0x9a93, 0x9a91, 0x9a8f, 0x9a92, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2040     0x9a94, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9a95, 0xfffd,
2041     0xfffd, 0x9a96, 0xfffd, 0x9a97, 0xfffd, 0xfffd, 0xfffd, 0x9a98,
2042     0x9964, 0xfffd, 0x8efa, 0x8e6c, 0xfffd, 0xfffd, 0x89f1, 0xfffd,
2043     0x88f6, 0xfffd, 0xfffd, 0x9263, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2044     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9a99, 0xfffd,
2045     0x8da2, 0xfffd, 0x88cd, 0x907d, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2046     0xfffd, 0x9a9a, 0x8cc5, 0xfffd, 0xfffd, 0x8d91, 0xfffd, 0x9a9c,
2047     0x9a9b, 0xfffd, 0xfffd, 0x95de, 0x9a9d, 0xfffd, 0xfffd, 0xfffd,
2048     0x9a9f, 0x9a9e, 0xfffd, 0x9aa0, 0xfffd, 0x9aa1, 0xfffd, 0x8c97,
2049     0xfffd, 0xfffd, 0x8980, 0x9aa2, 0xfffd, 0xfffd, 0x9aa4, 0xfffd,
2050     0x9aa3, 0xfffd, 0xfffd, 0xfffd, 0x9aa6, 0xfffd, 0xfffd, 0x9379,
2051     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9aa7, 0x88b3,
2052     0x8ddd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8c5c, 0xfffd, 0xfffd,
2053     0x926e, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9aa8,
2054     0x9aa9, 0xfffd, 0xfffd, 0x9aab, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2055     0x9aac, 0xfffd, 0x8de2, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8bcf,
2056     0xfffd, 0xfffd, 0x9656, 0xfffd, 0xfffd, 0xfffd, 0x9aaa, 0x9aad,
2057     0x8dbf, 0x8d42, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2058     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2059     0xfffd, 0x9ab1, 0xfffd, 0xfffd, 0x8da3, 0xfffd, 0x9252, 0xfffd,
2060     0xfffd, 0x9aae, 0x92d8, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2061     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2062     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9ab2,
2063     0xfffd, 0xfffd, 0x9082, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2064     0x9ab0, 0x9ab3, 0xfffd, 0x8c5e, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2065     0xfffd, 0xfffd, 0xfffd, 0x9ab4, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2066     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2067     0x9ab5, 0xfffd, 0x8d43, 0x8a5f, 0x9ab7, 0xfffd, 0xfffd, 0xfffd,
2068     0xfffd, 0xfffd, 0x9ab8, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2069     0x9ab9, 0xfffd, 0xfffd, 0x9ab6, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2070     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2071     0x9aaf, 0xfffd, 0xfffd, 0x9aba, 0xfffd, 0xfffd, 0x9abb, 0xfffd,
2072     0xfffd, 0xfffd, 0xfffd, 0x9684, 0xfffd, 0xfffd, 0x8fe9, 0xfffd,
2073     0xfffd, 0xfffd, 0x9abd, 0x9abe, 0x9abc, 0xfffd, 0x9ac0, 0xfffd,
2074     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9457, 0xfffd, 0xfffd, 0x88e6,
2075     0x9575, 0xfffd, 0xfffd, 0x9ac1, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2076     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2077     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8ffb, 0xfffd, 0xfffd, 0x8eb7,
2078     0xfffd, 0x947c, 0x8aee, 0xfffd, 0x8de9, 0xfffd, 0xfffd, 0xfffd,
2079     0x9678, 0xfffd, 0x93b0, 0xfffd, 0xfffd, 0x8c98, 0x91cd, 0xfffd,
2080     0xfffd, 0xfffd, 0x9abf, 0x9ac2, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2081     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x91c2, 0xfffd, 0xfffd,
2082     0xfffd, 0x9ac3, 0xfffd, 0xfffd, 0xfffd, 0x9ac4, 0xfffd, 0xfffd,
2083     0xfffd, 0x9ac6, 0xfffd, 0xfffd, 0x92e7, 0xfffd, 0xfffd, 0xfffd,
2084     0xfffd, 0xfffd, 0x8aac, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xea9f,
2085     0x8981, 0x95f1, 0xfffd, 0xfffd, 0x8fea, 0x9367, 0xfffd, 0xfffd,
2086     0xfffd, 0xfffd, 0x8de4, 0xfffd, 0xfffd, 0x9acc, 0xfffd, 0xfffd,
2087     0x95bb, 0x97db, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2088     0xfffd, 0xfffd, 0x89f2, 0x9ac8, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2089     0xfffd, 0x9159, 0x9acb, 0xfffd, 0x9383, 0xfffd, 0xfffd, 0x9368,
2090     0x9384, 0x94b7, 0x92cb, 0xfffd, 0xfffd, 0xfffd, 0x8dc7, 0xfffd,
2091     0xfffd, 0xfffd, 0x9ac7, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2092     0xfffd, 0x8996, 0xfffd, 0x9355, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2093     0x9ac9, 0xfffd, 0x9ac5, 0xfffd, 0xfffd, 0x906f, 0xfffd, 0xfffd,
2094     0xfffd, 0x9acd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8f6d, 0xfffd,
2095     0xfffd, 0xfffd, 0xfffd, 0x8bab, 0xfffd, 0x9ace, 0xfffd, 0xfffd,
2096     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2097     0xfffd, 0xfffd, 0xfffd, 0x95e6, 0xfffd, 0xfffd, 0xfffd, 0x919d,
2098     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x92c4, 0xfffd, 0xfffd, 0x9ad0,
2099     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2100     0x966e, 0xfffd, 0xfffd, 0x9ad1, 0xfffd, 0xfffd, 0x9ad6, 0xfffd,
2101     0xfffd, 0xfffd, 0xfffd, 0x95ad, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2102     0x9ad5, 0x9acf, 0x9ad2, 0x9ad4, 0xfffd, 0xfffd, 0x8da4, 0xfffd,
2103     0xfffd, 0x95c7, 0xfffd, 0xfffd, 0xfffd, 0x9ad7, 0xfffd, 0x9264,
2104     0xfffd, 0xfffd, 0x89f3, 0xfffd, 0x8feb, 0xfffd, 0xfffd, 0xfffd,
2105     0xfffd, 0x9ad9, 0xfffd, 0x9ad8, 0xfffd, 0x8d88, 0xfffd, 0x9ada,
2106     0x9adc, 0x9adb, 0xfffd, 0xfffd, 0x9ade, 0xfffd, 0x9ad3, 0x9ae0,
2107     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9adf, 0x9add, 0xfffd, 0xfffd,
2108     0xfffd, 0xfffd, 0xfffd, 0x8e6d, 0x9070, 0xfffd, 0x9173, 0x9ae1,
2109     0x90ba, 0x88eb, 0x9484, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x92d9,
2110     0xfffd, 0x9ae3, 0x9ae2, 0x9ae4, 0x9ae5, 0x9ae6, 0xfffd, 0xfffd,
2111     0xfffd, 0xfffd, 0x9ae7, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2112     0xfffd, 0x95cf, 0x9ae8, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x89c4,
2113     0x9ae9, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x975b, 0x8a4f, 0xfffd,
2114     0x99c7, 0x8f67, 0x91bd, 0x9aea, 0x96e9, 0xfffd, 0xfffd, 0xfffd,
2115     0xfffd, 0xfffd, 0x96b2, 0xfffd, 0xfffd, 0x9aec, 0xfffd, 0x91e5,
2116     0xfffd, 0x9356, 0x91be, 0x9576, 0x9aed, 0x9aee, 0x899b, 0xfffd,
2117     0xfffd, 0x8eb8, 0x9aef, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x88ce,
2118     0x9af0, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9af1, 0xfffd,
2119     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8982, 0xfffd, 0xfffd, 0x8aef,
2120     0x93de, 0x95f2, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9af5, 0x9174,
2121     0x9af4, 0x8c5f, 0xfffd, 0xfffd, 0x967a, 0x9af3, 0xfffd, 0x9385,
2122     0x9af7, 0xfffd, 0x9af6, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2123     0x9af9, 0xfffd, 0x9af8, 0xfffd, 0xfffd, 0x899c, 0xfffd, 0x9afa,
2124     0x8fa7, 0x9afc, 0x9244, 0xfffd, 0x9afb, 0xfffd, 0x95b1, 0xfffd,
2125     0xfffd, 0xfffd, 0xfffd, 0x8f97, 0x937a, 0xfffd, 0xfffd, 0xfffd,
2126     0x9b40, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8d44, 0xfffd, 0xfffd,
2127     0xfffd, 0x9b41, 0x9440, 0x94dc, 0x96cf, 0xfffd, 0xfffd, 0xfffd,
2128     0xfffd, 0xfffd, 0x9444, 0xfffd, 0xfffd, 0x9b4a, 0xfffd, 0xfffd,
2129     0xfffd, 0xfffd, 0xfffd, 0x8b57, 0xfffd, 0xfffd, 0x9764, 0xfffd,
2130     0xfffd, 0x96ad, 0xfffd, 0x9baa, 0xfffd, 0x9b42, 0xfffd, 0xfffd,
2131     0xfffd, 0xfffd, 0xfffd, 0x9b45, 0xfffd, 0x91c3, 0xfffd, 0xfffd,
2132     0x9657, 0xfffd, 0xfffd, 0xfffd, 0x9369, 0xfffd, 0xfffd, 0xfffd,
2133     0xfffd, 0xfffd, 0x9b46, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2134     0xfffd, 0x9685, 0xfffd, 0x8dc8, 0xfffd, 0xfffd, 0x8fa8, 0xfffd,
2135     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9b47, 0xfffd,
2136     0xfffd, 0x8e6f, 0xfffd, 0x8e6e, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2137     0x88b7, 0x8cc6, 0xfffd, 0x90a9, 0x88cf, 0xfffd, 0xfffd, 0xfffd,
2138     0xfffd, 0x9b4b, 0x9b4c, 0xfffd, 0x9b49, 0xfffd, 0xfffd, 0xfffd,
2139     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8957, 0x8aad, 0xfffd,
2140     0x9b48, 0xfffd, 0x96c3, 0x9550, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2141     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x88a6, 0xfffd,
2142     0xfffd, 0xfffd, 0xfffd, 0x88f7, 0xfffd, 0xfffd, 0xfffd, 0x8e70,
2143     0xfffd, 0x88d0, 0xfffd, 0x88a1, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2144     0xfffd, 0x9b51, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2145     0xfffd, 0x9b4f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2146     0x96ba, 0xfffd, 0x9b52, 0xfffd, 0x9b50, 0xfffd, 0xfffd, 0x9b4e,
2147     0x9050, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9b4d, 0xfffd, 0xfffd,
2148     0xfffd, 0x95d8, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8ce2,
2149     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9b56, 0x9b57, 0xfffd,
2150     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8fa9, 0xfffd, 0xfffd, 0xfffd,
2151     0x9b53, 0x984b, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x946b, 0xfffd,
2152     0xfffd, 0x9b55, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2153     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2154     0xfffd, 0xfffd, 0x8da5, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2155     0xfffd, 0xfffd, 0x9b58, 0xfffd, 0xfffd, 0xfffd, 0x9577, 0xfffd,
2156     0xfffd, 0xfffd, 0x9b59, 0xfffd, 0x9b54, 0xfffd, 0xfffd, 0xfffd,
2157     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2158     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x96b9,
2159     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2160     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2161     0xfffd, 0xfffd, 0x947d, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2162     0xfffd, 0xfffd, 0x9b5a, 0x9551, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2163     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2164     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2165     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2166     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9b5b, 0x9b5f, 0x9b5c, 0xfffd,
2167     0xfffd, 0x89c5, 0x9b5e, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2168     0xfffd, 0x8eb9, 0xfffd, 0x9b5d, 0x8c99, 0xfffd, 0xfffd, 0xfffd,
2169     0x9b6b, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9b64, 0x9b61,
2170     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2171     0xfffd, 0x9284, 0xfffd, 0x9b60, 0xfffd, 0xfffd, 0x9b62, 0xfffd,
2172     0xfffd, 0x9b63, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2173     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2174     0xfffd, 0xfffd, 0x9b65, 0x9b66, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2175     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2176     0xfffd, 0x8af0, 0xfffd, 0x9b68, 0x9b67, 0xfffd, 0xfffd, 0xfffd,
2177     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9b69, 0xfffd,
2178     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2179     0xfffd, 0xfffd, 0x8fec, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2180     0xfffd, 0xfffd, 0x9b6c, 0xfffd, 0x92da, 0xfffd, 0xfffd, 0xfffd,
2181     0x8964, 0xfffd, 0x9b6a, 0xfffd, 0xfffd, 0xfffd, 0x9b6d, 0xfffd,
2182     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9b6e, 0xfffd,
2183     0x9b71, 0xfffd, 0xfffd, 0x9b6f, 0xfffd, 0x9b70, 0xfffd, 0xfffd,
2184     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2185     0x8e71, 0x9b72, 0xfffd, 0xfffd, 0x8d45, 0x9b73, 0xfffd, 0x8e9a,
2186     0x91b6, 0xfffd, 0x9b74, 0x9b75, 0x8e79, 0x8d46, 0xfffd, 0x96d0,
2187     0xfffd, 0xfffd, 0xfffd, 0x8b47, 0x8cc7, 0x9b76, 0x8a77, 0xfffd,
2188     0xfffd, 0x9b77, 0xfffd, 0x91b7, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2189     0x9b78, 0x9ba1, 0xfffd, 0x9b79, 0xfffd, 0x9b7a, 0xfffd, 0xfffd,
2190     0x9b7b, 0xfffd, 0x9b7d, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2191     0x9b7e, 0xfffd, 0xfffd, 0x9b80, 0xfffd, 0x91ee, 0xfffd, 0x8946,
2192     0x8ee7, 0x88c0, 0xfffd, 0x9176, 0x8aae, 0x8eb3, 0xfffd, 0x8d47,
2193     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9386, 0xfffd, 0x8f40,
2194     0x8aaf, 0x9288, 0x92e8, 0x88b6, 0x8b58, 0x95f3, 0xfffd, 0x8ec0,
2195     0xfffd, 0xfffd, 0x8b71, 0x90e9, 0x8eba, 0x9747, 0x9b81, 0xfffd,
2196     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8b7b, 0xfffd,
2197     0x8dc9, 0xfffd, 0xfffd, 0x8a51, 0x8983, 0x8faa, 0x89c6, 0xfffd,
2198     0x9b82, 0x9765, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8f68,
2199     0xfffd, 0xfffd, 0x8ee2, 0x9b83, 0x8af1, 0x93d0, 0x96a7, 0x9b84,
2200     0xfffd, 0x9b85, 0xfffd, 0xfffd, 0x9578, 0xfffd, 0xfffd, 0xfffd,
2201     0x9b87, 0xfffd, 0x8aa6, 0x8bf5, 0x9b86, 0xfffd, 0xfffd, 0xfffd,
2202     0xfffd, 0xfffd, 0xfffd, 0x8ab0, 0xfffd, 0x9051, 0x9b8b, 0x8e40,
2203     0xfffd, 0x89c7, 0x9b8a, 0xfffd, 0x9b88, 0x9b8c, 0x9b89, 0x944a,
2204     0x9ecb, 0x9052, 0xfffd, 0x9b8d, 0xfffd, 0xfffd, 0x97be, 0xfffd,
2205     0x9b8e, 0xfffd, 0xfffd, 0x9b90, 0xfffd, 0x929e, 0x9b8f, 0xfffd,
2206     0x90a1, 0xfffd, 0x8e9b, 0xfffd, 0xfffd, 0xfffd, 0x91ce, 0x8ef5,
2207     0xfffd, 0x9595, 0x90ea, 0xfffd, 0x8ecb, 0x9b91, 0x8fab, 0x9b92,
2208     0x9b93, 0x88d1, 0x91b8, 0x9071, 0xfffd, 0x9b94, 0x93b1, 0x8fac,
2209     0xfffd, 0x8fad, 0xfffd, 0x9b95, 0xfffd, 0xfffd, 0x90eb, 0xfffd,
2210     0xfffd, 0xfffd, 0x8fae, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2211     0x9b96, 0xfffd, 0x9b97, 0xfffd, 0x96de, 0xfffd, 0xfffd, 0xfffd,
2212     0x9b98, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8bc4, 0xfffd, 0xfffd,
2213     0xfffd, 0x8f41, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2214     0x9b99, 0x9b9a, 0x8eda, 0x904b, 0x93f2, 0x9073, 0x94f6, 0x9441,
2215     0x8bc7, 0x9b9b, 0xfffd, 0xfffd, 0xfffd, 0x8b8f, 0x9b9c, 0xfffd,
2216     0x8bfc, 0xfffd, 0x93cd, 0x89ae, 0xfffd, 0x8e72, 0x9b9d, 0x9ba0,
2217     0x9b9f, 0x8bfb, 0xfffd, 0x9b9e, 0xfffd, 0x9357, 0xfffd, 0xfffd,
2218     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x91ae, 0xfffd,
2219     0x936a, 0x8ec6, 0xfffd, 0xfffd, 0x9177, 0x979a, 0xfffd, 0xfffd,
2220     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9ba2, 0xfffd, 0x9ba3, 0x93d4,
2221     0xfffd, 0x8e52, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9ba5, 0xfffd,
2222     0xfffd, 0x9ba6, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2223     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2224     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9ba7, 0xfffd, 0xfffd, 0xfffd,
2225     0x8af2, 0x9ba8, 0xfffd, 0xfffd, 0x9ba9, 0xfffd, 0xfffd, 0xfffd,
2226     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2227     0xfffd, 0x89aa, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2228     0x915a, 0x8ae2, 0xfffd, 0x9bab, 0x96a6, 0xfffd, 0xfffd, 0xfffd,
2229     0xfffd, 0x91d0, 0xfffd, 0x8a78, 0xfffd, 0xfffd, 0x9bad, 0x9baf,
2230     0x8add, 0xfffd, 0xfffd, 0x9bac, 0x9bae, 0xfffd, 0x9bb1, 0xfffd,
2231     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9bb0, 0xfffd, 0x9bb2,
2232     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2233     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2234     0xfffd, 0x9bb3, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2235     0x93bb, 0x8bac, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2236     0x89e3, 0x9bb4, 0x9bb9, 0xfffd, 0xfffd, 0x9bb7, 0xfffd, 0x95f5,
2237     0x95f4, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9387, 0xfffd,
2238     0xfffd, 0xfffd, 0x9bb6, 0x8f73, 0xfffd, 0x9bb5, 0xfffd, 0xfffd,
2239     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9092,
2240     0xfffd, 0xfffd, 0xfffd, 0x9bba, 0xfffd, 0xfffd, 0x8de8, 0xfffd,
2241     0xfffd, 0x9bc0, 0xfffd, 0xfffd, 0x9bc1, 0x9bbb, 0x8a52, 0x9bbc,
2242     0x9bc5, 0x9bc4, 0x9bc3, 0x9bbf, 0xfffd, 0xfffd, 0xfffd, 0x9bbe,
2243     0xfffd, 0xfffd, 0x9bc2, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2244     0xfffd, 0x95f6, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2245     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2246     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2247     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2248     0xfffd, 0xfffd, 0xfffd, 0x9bc9, 0x9bc6, 0xfffd, 0x9bc8, 0xfffd,
2249     0x9792, 0xfffd, 0x9bc7, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2250     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9bbd, 0xfffd, 0xfffd, 0xfffd,
2251     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2252     0xfffd, 0x9093, 0xfffd, 0xfffd, 0x9bca, 0xfffd, 0xfffd, 0x8db5,
2253     0xfffd, 0xfffd, 0xfffd, 0x9bcb, 0xfffd, 0xfffd, 0x9bcc, 0xfffd,
2254     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2255     0xfffd, 0xfffd, 0x9bcf, 0xfffd, 0x9bce, 0xfffd, 0xfffd, 0x9bcd,
2256     0xfffd, 0xfffd, 0xfffd, 0x9388, 0x9bb8, 0xfffd, 0xfffd, 0xfffd,
2257     0x9bd5, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2258     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9bd1, 0xfffd, 0xfffd,
2259     0xfffd, 0xfffd, 0x9bd0, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2260     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9bd2, 0xfffd, 0x9bd3, 0xfffd,
2261     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9bd6,
2262     0xfffd, 0xfffd, 0x97e4, 0xfffd, 0x9bd7, 0x9bd4, 0xfffd, 0xfffd,
2263     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2264     0xfffd, 0x9bd8, 0xfffd, 0xfffd, 0x8ade, 0x9bd9, 0xfffd, 0xfffd,
2265     0xfffd, 0xfffd, 0x9bdb, 0x9bda, 0xfffd, 0xfffd, 0x9bdc, 0xfffd,
2266     0xfffd, 0xfffd, 0xfffd, 0x9bdd, 0xfffd, 0x90ec, 0x8f42, 0xfffd,
2267     0xfffd, 0x8f84, 0xfffd, 0x9183, 0xfffd, 0x8d48, 0x8db6, 0x8d49,
2268     0x8b90, 0xfffd, 0xfffd, 0x9bde, 0xfffd, 0xfffd, 0x8db7, 0xfffd,
2269     0xfffd, 0x8cc8, 0x9bdf, 0x96a4, 0x9462, 0x9be0, 0xfffd, 0x8d4a,
2270     0xfffd, 0xfffd, 0xfffd, 0x8aaa, 0xfffd, 0x9246, 0x8bd0, 0xfffd,
2271     0xfffd, 0xfffd, 0x8e73, 0x957a, 0xfffd, 0xfffd, 0x94bf, 0xfffd,
2272     0xfffd, 0xfffd, 0xfffd, 0x9be1, 0x8af3, 0xfffd, 0xfffd, 0xfffd,
2273     0xfffd, 0x9be4, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x929f, 0xfffd,
2274     0xfffd, 0x9be3, 0x9be2, 0x9be5, 0xfffd, 0x92e9, 0xfffd, 0xfffd,
2275     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9083, 0xfffd, 0xfffd,
2276     0xfffd, 0xfffd, 0xfffd, 0x8e74, 0xfffd, 0x90c8, 0xfffd, 0x91d1,
2277     0x8b41, 0xfffd, 0xfffd, 0x92a0, 0xfffd, 0xfffd, 0x9be6, 0x9be7,
2278     0x8fed, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9658, 0xfffd, 0xfffd,
2279     0x9bea, 0xfffd, 0xfffd, 0x9be9, 0x9be8, 0x959d, 0xfffd, 0x9bf1,
2280     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9679, 0xfffd, 0x9beb, 0xfffd,
2281     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9bed, 0x968b, 0xfffd, 0x9bec,
2282     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9bee,
2283     0xfffd, 0x94a6, 0x9bef, 0x95bc, 0x9bf0, 0xfffd, 0xfffd, 0xfffd,
2284     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2285     0xfffd, 0xfffd, 0x8ab1, 0x95bd, 0x944e, 0x9bf2, 0x9bf3, 0xfffd,
2286     0x8d4b, 0x8ab2, 0x9bf4, 0x8cb6, 0x9763, 0x9748, 0x8af4, 0x9bf6,
2287     0xfffd, 0x92a1, 0xfffd, 0x8d4c, 0x8faf, 0xfffd, 0xfffd, 0x94dd,
2288     0xfffd, 0xfffd, 0x8fb0, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8f98,
2289     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x92ea, 0x95f7, 0x9358,
2290     0xfffd, 0xfffd, 0x8d4d, 0xfffd, 0x957b, 0xfffd, 0xfffd, 0xfffd,
2291     0x9bf7, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9378, 0x8dc0,
2292     0xfffd, 0xfffd, 0xfffd, 0x8cc9, 0xfffd, 0x92eb, 0xfffd, 0xfffd,
2293     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x88c1, 0x8f8e, 0x8d4e,
2294     0x9766, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2295     0xfffd, 0x9bf8, 0x9bf9, 0x9470, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2296     0x9bfa, 0x97f5, 0x984c, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9bfc,
2297     0x9bfb, 0xfffd, 0xfffd, 0x8a66, 0xfffd, 0xfffd, 0x9c40, 0xfffd,
2298     0xfffd, 0xfffd, 0x9c43, 0x9c44, 0xfffd, 0x9c42, 0xfffd, 0x955f,
2299     0x8fb1, 0x9c46, 0x9c45, 0x9c41, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2300     0x9c47, 0x9c48, 0xfffd, 0xfffd, 0x9c49, 0xfffd, 0xfffd, 0xfffd,
2301     0x9c4c, 0x9c4a, 0xfffd, 0x9c4b, 0x9c4d, 0xfffd, 0x8984, 0x92ec,
2302     0x9c4e, 0xfffd, 0x8c9a, 0x89f4, 0x9455, 0xfffd, 0x9c4f, 0x93f9,
2303     0xfffd, 0x95d9, 0xfffd, 0x9c50, 0x984d, 0xfffd, 0xfffd, 0xfffd,
2304     0xfffd, 0x9c51, 0x95be, 0x9c54, 0x989f, 0x98af, 0xfffd, 0x8eae,
2305     0x93f3, 0x9c55, 0xfffd, 0x8b7c, 0x92a2, 0x88f8, 0x9c56, 0x95a4,
2306     0x8d4f, 0xfffd, 0xfffd, 0x926f, 0xfffd, 0xfffd, 0xfffd, 0x92ed,
2307     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x96ed, 0x8cb7, 0x8cca,
2308     0xfffd, 0x9c57, 0xfffd, 0xfffd, 0xfffd, 0x9c58, 0xfffd, 0x9c5e,
2309     0xfffd, 0x8ee3, 0xfffd, 0xfffd, 0xfffd, 0x92a3, 0xfffd, 0x8bad,
2310     0x9c59, 0xfffd, 0xfffd, 0xfffd, 0x954a, 0xfffd, 0x9265, 0xfffd,
2311     0xfffd, 0x9c5a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2312     0x9c5b, 0xfffd, 0x8bae, 0xfffd, 0x9c5c, 0xfffd, 0x9c5d, 0xfffd,
2313     0xfffd, 0x9c5f, 0xfffd, 0x9396, 0xfffd, 0xfffd, 0x9c60, 0x9c61,
2314     0xfffd, 0x9c62, 0xfffd, 0xfffd, 0x9c53, 0x9c52, 0xfffd, 0xfffd,
2315     0xfffd, 0x9c63, 0x8c60, 0xfffd, 0xfffd, 0xfffd, 0x9546, 0xfffd,
2316     0xfffd, 0x8dca, 0x9556, 0x92a4, 0x956a, 0x9c64, 0xfffd, 0xfffd,
2317     0x8fb2, 0x8965, 0xfffd, 0x9c65, 0xfffd, 0xfffd, 0xfffd, 0x9c66,
2318     0xfffd, 0x96f0, 0xfffd, 0xfffd, 0x94de, 0xfffd, 0xfffd, 0x9c69,
2319     0x899d, 0x90aa, 0x9c68, 0x9c67, 0x8c61, 0x91d2, 0xfffd, 0x9c6d,
2320     0x9c6b, 0xfffd, 0x9c6a, 0x97a5, 0x8ce3, 0xfffd, 0xfffd, 0xfffd,
2321     0x8f99, 0x9c6c, 0x936b, 0x8f5d, 0xfffd, 0xfffd, 0xfffd, 0x93be,
2322     0x9c70, 0x9c6f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9c6e, 0xfffd,
2323     0x9c71, 0x8ce4, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2324     0x9c72, 0x959c, 0x8f7a, 0xfffd, 0xfffd, 0x9c73, 0x94f7, 0xfffd,
2325     0xfffd, 0xfffd, 0xfffd, 0x93bf, 0x92a5, 0xfffd, 0xfffd, 0xfffd,
2326     0xfffd, 0x934f, 0xfffd, 0xfffd, 0x9c74, 0x8b4a, 0xfffd, 0xfffd,
2327     0xfffd, 0xfffd, 0xfffd, 0x9053, 0xfffd, 0x954b, 0xfffd, 0xfffd,
2328     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8af5, 0x9445, 0xfffd, 0xfffd,
2329     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9c75, 0x8e75,
2330     0x9659, 0x965a, 0xfffd, 0xfffd, 0x899e, 0x9c7a, 0xfffd, 0xfffd,
2331     0x9289, 0xfffd, 0xfffd, 0xfffd, 0x9c77, 0xfffd, 0xfffd, 0xfffd,
2332     0xfffd, 0xfffd, 0xfffd, 0x89f5, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2333     0x9cab, 0x9c79, 0xfffd, 0xfffd, 0xfffd, 0x944f, 0xfffd, 0xfffd,
2334     0x9c78, 0xfffd, 0xfffd, 0x9c76, 0xfffd, 0x8d9a, 0xfffd, 0x9c7c,
2335     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2336     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9c83, 0x9c89,
2337     0x9c81, 0xfffd, 0x937b, 0xfffd, 0xfffd, 0x9c86, 0x957c, 0xfffd,
2338     0xfffd, 0x9c80, 0xfffd, 0x9c85, 0x97e5, 0x8e76, 0xfffd, 0xfffd,
2339     0x91d3, 0x9c7d, 0xfffd, 0xfffd, 0xfffd, 0x8b7d, 0x9c88, 0x90ab,
2340     0x8985, 0x9c82, 0x89f6, 0x9c87, 0xfffd, 0xfffd, 0xfffd, 0x8baf,
2341     0xfffd, 0x9c84, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2342     0xfffd, 0xfffd, 0x9c8a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2343     0xfffd, 0x9c8c, 0x9c96, 0x9c94, 0xfffd, 0xfffd, 0x9c91, 0xfffd,
2344     0xfffd, 0xfffd, 0x9c90, 0x97f6, 0xfffd, 0x9c92, 0xfffd, 0xfffd,
2345     0x8bb0, 0xfffd, 0x8d50, 0xfffd, 0xfffd, 0x8f9a, 0xfffd, 0xfffd,
2346     0xfffd, 0x9c99, 0x9c8b, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9c8f,
2347     0x9c7e, 0xfffd, 0x89f8, 0x9c93, 0x9c95, 0x9270, 0xfffd, 0xfffd,
2348     0x8da6, 0x89b6, 0x9c8d, 0x9c98, 0x9c97, 0x8bb1, 0xfffd, 0x91a7,
2349     0x8a86, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8c62, 0xfffd, 0x9c8e,
2350     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2351     0xfffd, 0x9c9a, 0xfffd, 0x9c9d, 0x9c9f, 0xfffd, 0xfffd, 0xfffd,
2352     0xfffd, 0x8ebb, 0xfffd, 0x9ca5, 0x92ee, 0x9c9b, 0xfffd, 0xfffd,
2353     0xfffd, 0xfffd, 0x9ca3, 0xfffd, 0x89f7, 0xfffd, 0x9ca1, 0x9ca2,
2354     0xfffd, 0xfffd, 0x9c9e, 0x9ca0, 0xfffd, 0xfffd, 0xfffd, 0x8ce5,
2355     0x9749, 0xfffd, 0xfffd, 0x8ab3, 0xfffd, 0xfffd, 0x8978, 0x9ca4,
2356     0xfffd, 0x9459, 0x88ab, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2357     0xfffd, 0xfffd, 0x94df, 0x9c7b, 0x9caa, 0x9cae, 0x96e3, 0xfffd,
2358     0x9ca7, 0xfffd, 0xfffd, 0xfffd, 0x9389, 0x9cac, 0xfffd, 0xfffd,
2359     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8fee, 0x9cad, 0x93d5,
2360     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2361     0xfffd, 0x9866, 0xfffd, 0x9ca9, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2362     0x9caf, 0xfffd, 0x8d9b, 0xfffd, 0x90c9, 0xfffd, 0xfffd, 0x88d2,
2363     0x9ca8, 0x9ca6, 0xfffd, 0x9179, 0xfffd, 0xfffd, 0xfffd, 0x9c9c,
2364     0x8e53, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2365     0x91c4, 0x9cbb, 0xfffd, 0x917a, 0x9cb6, 0xfffd, 0x9cb3, 0x9cb4,
2366     0xfffd, 0x8ee4, 0x9cb7, 0x9cba, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2367     0x9cb5, 0x8f44, 0xfffd, 0x9cb8, 0xfffd, 0xfffd, 0x9cb2, 0xfffd,
2368     0x96fa, 0x96f9, 0xfffd, 0xfffd, 0xfffd, 0x9cbc, 0x9cbd, 0x88d3,
2369     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9cb1, 0xfffd, 0xfffd,
2370     0xfffd, 0xfffd, 0x8bf0, 0x88a4, 0xfffd, 0xfffd, 0xfffd, 0x8ab4,
2371     0xfffd, 0x9cb9, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9cc1,
2372     0x9cc0, 0xfffd, 0xfffd, 0xfffd, 0x9cc5, 0xfffd, 0xfffd, 0xfffd,
2373     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9cc6, 0xfffd, 0xfffd, 0xfffd,
2374     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9cc4, 0x9cc7, 0x9cbf, 0x9cc3,
2375     0xfffd, 0xfffd, 0x9cc8, 0xfffd, 0x9cc9, 0xfffd, 0xfffd, 0x9cbe,
2376     0x8e9c, 0xfffd, 0x9cc2, 0x91d4, 0x8d51, 0x9cb0, 0x9054, 0xfffd,
2377     0xfffd, 0xfffd, 0xfffd, 0x9cd6, 0xfffd, 0x95e7, 0xfffd, 0xfffd,
2378     0x9ccc, 0x9ccd, 0x9cce, 0xfffd, 0xfffd, 0x9cd5, 0xfffd, 0x9cd4,
2379     0xfffd, 0xfffd, 0x969d, 0x8ab5, 0xfffd, 0x9cd2, 0xfffd, 0x8c64,
2380     0x8a53, 0xfffd, 0xfffd, 0x9ccf, 0xfffd, 0xfffd, 0x97b6, 0x9cd1,
2381     0x88d4, 0x9cd3, 0xfffd, 0x9cca, 0x9cd0, 0x9cd7, 0x8c63, 0x9ccb,
2382     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x977c, 0xfffd,
2383     0xfffd, 0xfffd, 0x974a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9cda,
2384     0xfffd, 0xfffd, 0x9cde, 0xfffd, 0xfffd, 0xfffd, 0x919e, 0xfffd,
2385     0x97f7, 0x9cdf, 0xfffd, 0xfffd, 0x9cdc, 0xfffd, 0x9cd9, 0xfffd,
2386     0xfffd, 0x9cd8, 0x9cdd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2387     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x95ae, 0xfffd, 0xfffd, 0x93b2,
2388     0xfffd, 0x8c65, 0xfffd, 0x9ce0, 0x9cdb, 0xfffd, 0x9ce1, 0xfffd,
2389     0xfffd, 0xfffd, 0x8c9b, 0xfffd, 0xfffd, 0xfffd, 0x89af, 0xfffd,
2390     0xfffd, 0xfffd, 0x9ce9, 0xfffd, 0xfffd, 0xfffd, 0x8ab6, 0xfffd,
2391     0xfffd, 0xfffd, 0xfffd, 0x9ce7, 0xfffd, 0xfffd, 0x9ce8, 0x8da7,
2392     0x9ce6, 0x9ce4, 0x9ce3, 0x9cea, 0x9ce2, 0x9cec, 0xfffd, 0xfffd,
2393     0x89f9, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2394     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2395     0xfffd, 0xfffd, 0xfffd, 0x9cee, 0xfffd, 0xfffd, 0x9ced, 0xfffd,
2396     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2397     0xfffd, 0xfffd, 0x92a6, 0xfffd, 0x9cf1, 0xfffd, 0x9cef, 0x9ce5,
2398     0x8c9c, 0xfffd, 0x9cf0, 0xfffd, 0x9cf4, 0x9cf3, 0x9cf5, 0x9cf2,
2399     0x9cf6, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2400     0x9cf7, 0x9cf8, 0x95e8, 0xfffd, 0x9cfa, 0x9cf9, 0x8f5e, 0xfffd,
2401     0x90ac, 0x89e4, 0x89fa, 0xfffd, 0x9cfb, 0xfffd, 0x88bd, 0xfffd,
2402     0xfffd, 0xfffd, 0x90ca, 0x9cfc, 0xfffd, 0xe6c1, 0x9d40, 0x8c81,
2403     0xfffd, 0x9d41, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x90ed, 0xfffd,
2404     0xfffd, 0xfffd, 0x9d42, 0xfffd, 0xfffd, 0xfffd, 0x9d43, 0x8b59,
2405     0x9d44, 0xfffd, 0x9d45, 0x9d46, 0x91d5, 0xfffd, 0xfffd, 0xfffd,
2406     0x8ccb, 0xfffd, 0xfffd, 0x96df, 0xfffd, 0xfffd, 0xfffd, 0x965b,
2407     0x8f8a, 0x9d47, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x90ee,
2408     0xe7bb, 0x94e0, 0xfffd, 0x8ee8, 0xfffd, 0x8dcb, 0x9d48, 0xfffd,
2409     0xfffd, 0xfffd, 0xfffd, 0x91c5, 0xfffd, 0x95a5, 0xfffd, 0xfffd,
2410     0x91ef, 0xfffd, 0xfffd, 0x9d4b, 0xfffd, 0xfffd, 0x9d49, 0xfffd,
2411     0x9d4c, 0xfffd, 0xfffd, 0x9d4a, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2412     0x9d4d, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x95af, 0xfffd,
2413     0xfffd, 0x88b5, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x957d, 0xfffd,
2414     0xfffd, 0x94e1, 0xfffd, 0xfffd, 0x9d4e, 0xfffd, 0x9d51, 0x8fb3,
2415     0x8b5a, 0xfffd, 0x9d4f, 0x9d56, 0x8fb4, 0xfffd, 0xfffd, 0xfffd,
2416     0xfffd, 0x9d50, 0x9463, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2417     0xfffd, 0x977d, 0x9d52, 0x9d53, 0x9d57, 0x938a, 0x9d54, 0x8d52,
2418     0x90dc, 0xfffd, 0xfffd, 0x9d65, 0x94b2, 0xfffd, 0x91f0, 0xfffd,
2419     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2420     0xfffd, 0xfffd, 0xfffd, 0x94e2, 0x9dab, 0xfffd, 0xfffd, 0xfffd,
2421     0xfffd, 0x95f8, 0xfffd, 0xfffd, 0xfffd, 0x92ef, 0xfffd, 0xfffd,
2422     0xfffd, 0x9695, 0xfffd, 0x9d5a, 0x899f, 0x928a, 0xfffd, 0xfffd,
2423     0xfffd, 0xfffd, 0x9d63, 0xfffd, 0xfffd, 0x9253, 0x9d5d, 0x9d64,
2424     0x9d5f, 0x9d66, 0x9d62, 0xfffd, 0x9d61, 0x948f, 0xfffd, 0x9d5b,
2425     0x89fb, 0x9d59, 0x8b91, 0x91f1, 0x9d55, 0xfffd, 0xfffd, 0x9d58,
2426     0x8d53, 0x90d9, 0xfffd, 0x8fb5, 0x9d60, 0x9471, 0xfffd, 0xfffd,
2427     0x8b92, 0x8a67, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2428     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8a87, 0x9040, 0x9d68, 0x9d6d,
2429     0xfffd, 0x9d69, 0xfffd, 0x8c9d, 0xfffd, 0x9d6e, 0x8e41, 0x8d89,
2430     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8f45, 0x9d5c,
2431     0xfffd, 0x8e9d, 0x9d6b, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8e77,
2432     0x9d6c, 0x88c2, 0xfffd, 0xfffd, 0x9d67, 0xfffd, 0xfffd, 0xfffd,
2433     0xfffd, 0x92a7, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2434     0xfffd, 0x8b93, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8bb2,
2435     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9d6a,
2436     0x88a5, 0xfffd, 0xfffd, 0x8dc1, 0xfffd, 0xfffd, 0xfffd, 0x9055,
2437     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2438     0xfffd, 0xfffd, 0x92f0, 0xfffd, 0xfffd, 0x94d2, 0x9d70, 0x917d,
2439     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2440     0xfffd, 0x91a8, 0xfffd, 0xfffd, 0x8e4a, 0x9d71, 0xfffd, 0x9d73,
2441     0x9d6f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x95df, 0xfffd, 0x92bb,
2442     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x917b, 0xfffd, 0xfffd, 0xfffd,
2443     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x95f9,
2444     0x8ecc, 0x9d80, 0xfffd, 0x9d7e, 0xfffd, 0xfffd, 0x9098, 0xfffd,
2445     0xfffd, 0xfffd, 0x8c9e, 0xfffd, 0xfffd, 0xfffd, 0x9d78, 0x8fb7,
2446     0xfffd, 0xfffd, 0x93e6, 0x9450, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2447     0x9d76, 0xfffd, 0xfffd, 0x917c, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2448     0x8ef6, 0x9d7b, 0xfffd, 0xfffd, 0x8fb6, 0xfffd, 0x9d75, 0x9d7a,
2449     0xfffd, 0xfffd, 0x9472, 0xfffd, 0xfffd, 0xfffd, 0x9d74, 0xfffd,
2450     0x8c40, 0xfffd, 0xfffd, 0x8a7c, 0xfffd, 0xfffd, 0xfffd, 0x9d7c,
2451     0x97a9, 0x8dcc, 0x9254, 0x9d79, 0xfffd, 0x90da, 0xfffd, 0x8d54,
2452     0x9084, 0x8986, 0x915b, 0x9d77, 0x8b64, 0xfffd, 0xfffd, 0xfffd,
2453     0xfffd, 0xfffd, 0x8c66, 0xfffd, 0x92cd, 0x9d7d, 0xfffd, 0xfffd,
2454     0xfffd, 0xfffd, 0xfffd, 0x917e, 0xfffd, 0xfffd, 0x9d81, 0xfffd,
2455     0x9d83, 0xfffd, 0xfffd, 0x91b5, 0x9d89, 0xfffd, 0x9d84, 0xfffd,
2456     0xfffd, 0x9d86, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9560,
2457     0x92f1, 0xfffd, 0x9d87, 0xfffd, 0xfffd, 0xfffd, 0x974b, 0xfffd,
2458     0xfffd, 0xfffd, 0x9767, 0x8ab7, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2459     0xfffd, 0x88ac, 0xfffd, 0x9d85, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2460     0xfffd, 0x9d82, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8af6, 0xfffd,
2461     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8987, 0xfffd, 0x9d88, 0xfffd,
2462     0xfffd, 0xfffd, 0x9768, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2463     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9d8c, 0xfffd,
2464     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x91b9, 0xfffd, 0x9d93,
2465     0xfffd, 0xfffd, 0xfffd, 0x9d8d, 0xfffd, 0xfffd, 0x9d8a, 0x9d91,
2466     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9d72, 0xfffd, 0xfffd, 0xfffd,
2467     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9d8e, 0xfffd,
2468     0x9d92, 0xfffd, 0xfffd, 0xfffd, 0x94c0, 0x938b, 0xfffd, 0xfffd,
2469     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9d8b, 0xfffd, 0x9d8f, 0xfffd,
2470     0xfffd, 0xfffd, 0x8c67, 0xfffd, 0xfffd, 0xfffd, 0x8def, 0xfffd,
2471     0xfffd, 0xfffd, 0x90db, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2472     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9d97, 0xfffd,
2473     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2474     0x9345, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2475     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9d94,
2476     0xfffd, 0x9680, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9d95,
2477     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9d96, 0xfffd,
2478     0x96cc, 0xfffd, 0x90a0, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2479     0xfffd, 0xfffd, 0xfffd, 0x8c82, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2480     0x9d9d, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2481     0xfffd, 0xfffd, 0x8e54, 0x9d9a, 0xfffd, 0x9d99, 0xfffd, 0xfffd,
2482     0xfffd, 0xfffd, 0x9451, 0xfffd, 0xfffd, 0xfffd, 0x93b3, 0xfffd,
2483     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9350, 0x9d9b, 0xfffd, 0xfffd,
2484     0xfffd, 0x9d9c, 0xfffd, 0x958f, 0xfffd, 0x9464, 0x8e42, 0xfffd,
2485     0x90ef, 0xfffd, 0x966f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2486     0xfffd, 0x8a68, 0xfffd, 0x9da3, 0x9d9e, 0xfffd, 0xfffd, 0xfffd,
2487     0xfffd, 0x9769, 0x9da5, 0xfffd, 0xfffd, 0x9da1, 0xfffd, 0x9da2,
2488     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9180, 0xfffd, 0xfffd,
2489     0xfffd, 0xfffd, 0x9da0, 0xfffd, 0x9d5e, 0xfffd, 0xfffd, 0xfffd,
2490     0x9da4, 0xfffd, 0x9d9f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2491     0x9da9, 0x9daa, 0x9346, 0x9dac, 0xfffd, 0xfffd, 0x8e43, 0x9da7,
2492     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8b5b, 0xfffd, 0xfffd, 0x9dad,
2493     0xfffd, 0x9da6, 0x9db1, 0xfffd, 0x9db0, 0xfffd, 0x9daf, 0xfffd,
2494     0xfffd, 0xfffd, 0x9db2, 0xfffd, 0xfffd, 0x9db4, 0x8fef, 0xfffd,
2495     0x9db3, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9db7, 0xfffd, 0xfffd,
2496     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2497     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2498     0x9db5, 0xfffd, 0xfffd, 0xfffd, 0x9db6, 0x9d90, 0xfffd, 0xfffd,
2499     0xfffd, 0xfffd, 0xfffd, 0x9db9, 0x9db8, 0xfffd, 0xfffd, 0xfffd,
2500     0xfffd, 0xfffd, 0x9d98, 0x9dba, 0x9dae, 0xfffd, 0xfffd, 0x8e78,
2501     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9dbb, 0x9dbc, 0x9dbe, 0x9dbd,
2502     0x9dbf, 0x89fc, 0xfffd, 0x8d55, 0xfffd, 0xfffd, 0x95fa, 0x90ad,
2503     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8ccc, 0xfffd, 0xfffd,
2504     0x9dc1, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9dc4, 0xfffd, 0x9571,
2505     0xfffd, 0x8b7e, 0xfffd, 0xfffd, 0xfffd, 0x9dc3, 0x9dc2, 0x9473,
2506     0x9dc5, 0x8bb3, 0xfffd, 0xfffd, 0xfffd, 0x9dc7, 0x9dc6, 0xfffd,
2507     0xfffd, 0xfffd, 0x8ab8, 0x8e55, 0xfffd, 0xfffd, 0x93d6, 0xfffd,
2508     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8c68, 0xfffd, 0xfffd, 0xfffd,
2509     0x9094, 0xfffd, 0x9dc8, 0xfffd, 0x90ae, 0x9347, 0xfffd, 0x957e,
2510     0x9dc9, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2511     0xfffd, 0xfffd, 0x9dca, 0x9dcb, 0xfffd, 0xfffd, 0xfffd, 0x95b6,
2512     0x9b7c, 0x90c4, 0xfffd, 0xfffd, 0x956b, 0xfffd, 0x8dd6, 0xfffd,
2513     0x94e3, 0x94c1, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x936c,
2514     0xfffd, 0x97bf, 0xfffd, 0x9dcd, 0x8ece, 0xfffd, 0xfffd, 0x9dce,
2515     0xfffd, 0x88b4, 0xfffd, 0xfffd, 0x8bd2, 0x90cb, 0xfffd, 0x9580,
2516     0xfffd, 0xfffd, 0xfffd, 0x9dcf, 0x8e61, 0x9266, 0xfffd, 0x8e7a,
2517     0x9056, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9dd0,
2518     0xfffd, 0x95fb, 0xfffd, 0xfffd, 0x8997, 0x8e7b, 0xfffd, 0xfffd,
2519     0xfffd, 0x9dd3, 0xfffd, 0x9dd1, 0x9dd4, 0x97b7, 0x9dd2, 0xfffd,
2520     0xfffd, 0xfffd, 0xfffd, 0x90f9, 0x9dd5, 0xfffd, 0xfffd, 0x91b0,
2521     0xfffd, 0xfffd, 0x9dd6, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8af8,
2522     0xfffd, 0x9dd8, 0xfffd, 0x9dd7, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2523     0x9dd9, 0x9dda, 0x8af9, 0xfffd, 0xfffd, 0x93fa, 0x9255, 0x8b8c,
2524     0x8e7c, 0x9181, 0xfffd, 0xfffd, 0x8f7b, 0x88ae, 0xfffd, 0xfffd,
2525     0xfffd, 0x9ddb, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2526     0xfffd, 0xfffd, 0x89a0, 0x9ddf, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2527     0xfffd, 0xfffd, 0x8d56, 0x9dde, 0xfffd, 0xfffd, 0x8da9, 0x8fb8,
2528     0xfffd, 0xfffd, 0x9ddd, 0xfffd, 0x8fb9, 0xfffd, 0x96be, 0x8da8,
2529     0xfffd, 0xfffd, 0xfffd, 0x88d5, 0x90cc, 0xfffd, 0xfffd, 0xfffd,
2530     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9de4, 0xfffd, 0xfffd, 0x90af,
2531     0x8966, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8f74, 0xfffd, 0x9686,
2532     0x8df0, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8fba, 0xfffd, 0x90a5,
2533     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9de3, 0x9de1, 0x9de2, 0xfffd,
2534     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x928b, 0xfffd, 0xfffd, 0x9e45,
2535     0xfffd, 0x9de8, 0x8e9e, 0x8d57, 0x9de6, 0xfffd, 0xfffd, 0xfffd,
2536     0xfffd, 0x9de7, 0xfffd, 0x9057, 0xfffd, 0xfffd, 0xfffd, 0x9de5,
2537     0xfffd, 0xfffd, 0x8e4e, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2538     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9dea, 0x9de9, 0x9dee,
2539     0xfffd, 0xfffd, 0x9def, 0xfffd, 0x9deb, 0xfffd, 0x8a41, 0x9dec,
2540     0x9ded, 0x94d3, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9581, 0x8c69,
2541     0x9df0, 0xfffd, 0xfffd, 0xfffd, 0x90b0, 0xfffd, 0x8fbb, 0xfffd,
2542     0xfffd, 0xfffd, 0x9271, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2543     0xfffd, 0x8bc5, 0xfffd, 0x9df1, 0x9df5, 0xfffd, 0xfffd, 0x89c9,
2544     0x9df2, 0x9df4, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9df3, 0xfffd,
2545     0xfffd, 0x8f8b, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9267, 0x88c3,
2546     0x9df6, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9df7, 0xfffd, 0xfffd,
2547     0xfffd, 0xfffd, 0x92a8, 0xfffd, 0xfffd, 0xfffd, 0x97ef, 0xfffd,
2548     0xfffd, 0xfffd, 0xfffd, 0x8e62, 0xfffd, 0xfffd, 0x95e9, 0xfffd,
2549     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x965c, 0xfffd, 0xfffd, 0xfffd,
2550     0x9e41, 0x9df9, 0xfffd, 0xfffd, 0x9dfc, 0xfffd, 0x9dfb, 0xfffd,
2551     0xfffd, 0x9df8, 0xfffd, 0xfffd, 0x9e40, 0xfffd, 0xfffd, 0x93dc,
2552     0xfffd, 0x9dfa, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2553     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9e42, 0xfffd,
2554     0xfffd, 0x8f8c, 0x9e43, 0xfffd, 0x976a, 0x9498, 0xfffd, 0xfffd,
2555     0x9e44, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9e46, 0xfffd,
2556     0xfffd, 0x9e47, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2557     0x9e48, 0xfffd, 0x8bc8, 0x8967, 0x8d58, 0x9e49, 0xfffd, 0x9e4a,
2558     0x8f91, 0x9182, 0xfffd, 0xfffd, 0x99d6, 0x915d, 0x915c, 0x91d6,
2559     0x8dc5, 0xfffd, 0xfffd, 0x98f0, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2560     0x8c8e, 0x974c, 0xfffd, 0x95fc, 0xfffd, 0x959e, 0xfffd, 0x9e4b,
2561     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8df1, 0x92bd, 0x9e4c, 0x984e,
2562     0xfffd, 0xfffd, 0xfffd, 0x965d, 0xfffd, 0x92a9, 0x9e4d, 0x8afa,
2563     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9e4e, 0x9e4f,
2564     0x96d8, 0xfffd, 0x96a2, 0x9696, 0x967b, 0x8e44, 0x9e51, 0xfffd,
2565     0xfffd, 0x8ee9, 0xfffd, 0xfffd, 0x9670, 0xfffd, 0x9e53, 0x9e56,
2566     0x9e55, 0xfffd, 0x8af7, 0xfffd, 0xfffd, 0x8b80, 0xfffd, 0x9e52,
2567     0xfffd, 0x9e54, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9e57, 0xfffd,
2568     0xfffd, 0x9099, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x979b, 0x88c7,
2569     0x8dde, 0x91ba, 0xfffd, 0x8edb, 0xfffd, 0xfffd, 0x8ff1, 0xfffd,
2570     0xfffd, 0x9e5a, 0xfffd, 0xfffd, 0x936d, 0xfffd, 0x9e58, 0x91a9,
2571     0x9e59, 0x8ff0, 0x96db, 0x9e5b, 0x9e5c, 0x9788, 0xfffd, 0xfffd,
2572     0xfffd, 0xfffd, 0x9e61, 0xfffd, 0xfffd, 0x8d59, 0xfffd, 0x9474,
2573     0x9e5e, 0x938c, 0x9ddc, 0x9de0, 0xfffd, 0x8b6e, 0xfffd, 0x9466,
2574     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9e60, 0xfffd, 0x8fbc, 0x94c2,
2575     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9e66, 0xfffd, 0x94f8,
2576     0xfffd, 0x9e5d, 0xfffd, 0x9e63, 0x9e62, 0xfffd, 0xfffd, 0xfffd,
2577     0x90cd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x968d, 0xfffd, 0x97d1,
2578     0xfffd, 0xfffd, 0x9687, 0xfffd, 0x89ca, 0x8e7d, 0xfffd, 0xfffd,
2579     0x9867, 0x9e65, 0x9095, 0xfffd, 0xfffd, 0xfffd, 0x9e64, 0xfffd,
2580     0xfffd, 0x9e5f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8ccd,
2581     0xfffd, 0xfffd, 0xfffd, 0x9e6b, 0x9e69, 0xfffd, 0x89cb, 0x9e67,
2582     0x9e6d, 0x9e73, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2583     0xfffd, 0x91c6, 0xfffd, 0xfffd, 0x95bf, 0xfffd, 0x9e75, 0xfffd,
2584     0xfffd, 0xfffd, 0x9541, 0xfffd, 0xfffd, 0xfffd, 0x9e74, 0x9490,
2585     0x965e, 0x8ab9, 0xfffd, 0x90f5, 0x8f5f, 0xfffd, 0xfffd, 0xfffd,
2586     0x92d1, 0xfffd, 0x974d, 0xfffd, 0xfffd, 0x9e70, 0x9e6f, 0xfffd,
2587     0xfffd, 0xfffd, 0x9e71, 0xfffd, 0x9e6e, 0xfffd, 0xfffd, 0x9e76,
2588     0xfffd, 0x9e6c, 0xfffd, 0xfffd, 0x9e6a, 0xfffd, 0x9e72, 0x9e68,
2589     0xfffd, 0x928c, 0xfffd, 0x96f6, 0x8ec4, 0x8df2, 0xfffd, 0xfffd,
2590     0xfffd, 0xfffd, 0xfffd, 0x8db8, 0xfffd, 0xfffd, 0x968f, 0x8a60,
2591     0xfffd, 0xfffd, 0x92cc, 0x93c8, 0x8968, 0xfffd, 0xfffd, 0xfffd,
2592     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2593     0xfffd, 0xfffd, 0xfffd, 0x90f0, 0xfffd, 0xfffd, 0x90b2, 0x8c49,
2594     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9e78, 0xfffd,
2595     0xfffd, 0x8d5a, 0x8a9c, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2596     0xfffd, 0x9e7a, 0x8a94, 0x9e81, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2597     0xfffd, 0xfffd, 0x9e7d, 0xfffd, 0x90f1, 0xfffd, 0xfffd, 0xfffd,
2598     0x8a6a, 0x8daa, 0xfffd, 0xfffd, 0x8a69, 0x8dcd, 0xfffd, 0xfffd,
2599     0x9e7b, 0x8c85, 0x8c6a, 0x938d, 0xfffd, 0xfffd, 0x9e79, 0xfffd,
2600     0x88c4, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9e7c, 0x9e7e, 0xfffd,
2601     0x8bcb, 0x8c4b, 0xfffd, 0x8aba, 0x8b6a, 0xfffd, 0xfffd, 0xfffd,
2602     0xfffd, 0x9e82, 0xfffd, 0xfffd, 0x8df7, 0x9691, 0xfffd, 0x8e56,
2603     0xfffd, 0xfffd, 0xfffd, 0x9e83, 0xfffd, 0xfffd, 0xfffd, 0x954f,
2604     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2605     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9e8f, 0xfffd, 0x89b1, 0x9e84,
2606     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9e95, 0x9e85,
2607     0xfffd, 0x97c0, 0xfffd, 0x9e8c, 0xfffd, 0x947e, 0xfffd, 0xfffd,
2608     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9e94, 0xfffd, 0x9e87,
2609     0xfffd, 0xfffd, 0xfffd, 0x88b2, 0x9e89, 0xfffd, 0xfffd, 0x8d5b,
2610     0xfffd, 0xfffd, 0xfffd, 0x9e8b, 0xfffd, 0x9e8a, 0xfffd, 0x9e86,
2611     0x9e91, 0xfffd, 0x8fbd, 0xfffd, 0xfffd, 0xfffd, 0x9aeb, 0x8ce6,
2612     0x979c, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9e88, 0xfffd, 0x92f2,
2613     0x8a42, 0x8dab, 0xfffd, 0x9e80, 0xfffd, 0x9e90, 0x8a81, 0xfffd,
2614     0xfffd, 0x9e8e, 0x9e92, 0xfffd, 0x938e, 0xfffd, 0xfffd, 0xfffd,
2615     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8afc, 0xfffd, 0x9eb0, 0xfffd,
2616     0xfffd, 0x96c7, 0x9e97, 0x8afb, 0xfffd, 0x9e9e, 0xfffd, 0xfffd,
2617     0xfffd, 0xfffd, 0x965f, 0xfffd, 0x9e9f, 0x9ea1, 0xfffd, 0x9ea5,
2618     0x9e99, 0xfffd, 0x9249, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x938f,
2619     0x9ea9, 0x9e9c, 0xfffd, 0x9ea6, 0xfffd, 0xfffd, 0xfffd, 0x9ea0,
2620     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9058, 0x9eaa,
2621     0xfffd, 0xfffd, 0x90b1, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2622     0xfffd, 0x9ea8, 0x8abb, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2623     0x986f, 0x9e96, 0xfffd, 0xfffd, 0x9ea4, 0x88d6, 0xfffd, 0xfffd,
2624     0x9e98, 0xfffd, 0xfffd, 0x96b8, 0x9e9d, 0x9041, 0x92c5, 0x9e93,
2625     0xfffd, 0xfffd, 0x9ea3, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2626     0xfffd, 0x909a, 0x9ead, 0x8a91, 0x8c9f, 0xfffd, 0xfffd, 0xfffd,
2627     0xfffd, 0x9eaf, 0x9e9a, 0x9eae, 0xfffd, 0x9ea7, 0x9e9b, 0xfffd,
2628     0x9eab, 0xfffd, 0x9eac, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2629     0x9ebd, 0xfffd, 0xfffd, 0xfffd, 0x93cc, 0xfffd, 0x9ea2, 0xfffd,
2630     0xfffd, 0x9eb9, 0xfffd, 0xfffd, 0xfffd, 0x9ebb, 0xfffd, 0x92d6,
2631     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2632     0xfffd, 0xfffd, 0x976b, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2633     0xfffd, 0xfffd, 0xfffd, 0x9596, 0x9eb6, 0x91c8, 0xfffd, 0xfffd,
2634     0xfffd, 0x9ebc, 0x915e, 0xfffd, 0x9eb3, 0x9ec0, 0x9ebf, 0xfffd,
2635     0x93ed, 0x9ebe, 0x93e8, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2636     0xfffd, 0xfffd, 0x9ec2, 0x9eb5, 0xfffd, 0x8bc6, 0x9eb8, 0x8f7c,
2637     0xfffd, 0xfffd, 0xfffd, 0x9480, 0x9eba, 0x8bc9, 0xfffd, 0x9eb2,
2638     0x9eb4, 0x9eb1, 0xfffd, 0xfffd, 0x984f, 0x8a79, 0x9eb7, 0xfffd,
2639     0xfffd, 0x9ec1, 0x8a54, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2640     0xfffd, 0xfffd, 0x8de5, 0xfffd, 0xfffd, 0xfffd, 0x897c, 0xfffd,
2641     0xfffd, 0x9ed2, 0xfffd, 0xfffd, 0x9850, 0x9ed5, 0xfffd, 0xfffd,
2642     0xfffd, 0xfffd, 0xfffd, 0x9059, 0x9ed4, 0xfffd, 0xfffd, 0xfffd,
2643     0x9ed3, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9ed0,
2644     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9ec4, 0xfffd,
2645     0xfffd, 0x9ee1, 0x9ec3, 0xfffd, 0x9ed6, 0xfffd, 0xfffd, 0xfffd,
2646     0xfffd, 0xfffd, 0xfffd, 0x9ece, 0xfffd, 0xfffd, 0x9ec9, 0x9ec6,
2647     0xfffd, 0x9ec7, 0xfffd, 0x9ecf, 0xfffd, 0xfffd, 0xfffd, 0xeaa0,
2648     0xfffd, 0xfffd, 0x9ecc, 0x8d5c, 0x92c6, 0x9184, 0x9eca, 0xfffd,
2649     0x9ec5, 0xfffd, 0xfffd, 0x9ec8, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2650     0x976c, 0x968a, 0xfffd, 0xfffd, 0xfffd, 0x9ecd, 0x9ed7, 0xfffd,
2651     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9edf,
2652     0x9ed8, 0xfffd, 0xfffd, 0x9ee5, 0xfffd, 0x9ee3, 0xfffd, 0xfffd,
2653     0xfffd, 0xfffd, 0x9ede, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2654     0xfffd, 0x9edd, 0xfffd, 0x92ce, 0xfffd, 0x9185, 0xfffd, 0x9edb,
2655     0xfffd, 0xfffd, 0x9ed9, 0xfffd, 0xfffd, 0x9ee0, 0xfffd, 0xfffd,
2656     0xfffd, 0xfffd, 0x9ee6, 0x94f3, 0x9eec, 0xfffd, 0xfffd, 0xfffd,
2657     0xfffd, 0xfffd, 0x9ee7, 0x9eea, 0x9ee4, 0xfffd, 0xfffd, 0x9294,
2658     0xfffd, 0x9557, 0xfffd, 0x9eda, 0xfffd, 0xfffd, 0x9ee2, 0x8fbe,
2659     0xfffd, 0x96cd, 0x9ef6, 0x9ee9, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2660     0xfffd, 0x8ca0, 0x89a1, 0x8a7e, 0xfffd, 0xfffd, 0x9ed1, 0xfffd,
2661     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8fbf, 0x9eee, 0xfffd,
2662     0x9ef5, 0x8ef7, 0x8a92, 0xfffd, 0xfffd, 0x924d, 0xfffd, 0xfffd,
2663     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9eeb, 0xfffd, 0xfffd, 0x9ef0,
2664     0x9ef4, 0xfffd, 0xfffd, 0x8bb4, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2665     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2666     0x8b6b, 0x9ef2, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8b40,
2667     0xfffd, 0x93c9, 0x9ef1, 0xfffd, 0xfffd, 0xfffd, 0x9ef3, 0xfffd,
2668     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2669     0xfffd, 0xfffd, 0x9eed, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2670     0x9eef, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8a80,
2671     0x9268, 0xfffd, 0xfffd, 0xfffd, 0x9efa, 0xfffd, 0xfffd, 0xfffd,
2672     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9ef8, 0x8ce7, 0xfffd,
2673     0x9ef7, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9f40,
2674     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9e77, 0xfffd, 0xfffd, 0xfffd,
2675     0x9ef9, 0xfffd, 0x9efb, 0x9efc, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2676     0xfffd, 0xfffd, 0x9f4b, 0xfffd, 0x9f47, 0xfffd, 0x9e8d, 0xfffd,
2677     0xfffd, 0xfffd, 0xfffd, 0x9f46, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2678     0x9f45, 0xfffd, 0xfffd, 0x9f42, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2679     0xfffd, 0x9ee8, 0x9f44, 0x9f43, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2680     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2681     0xfffd, 0x9f49, 0xfffd, 0x9845, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2682     0xfffd, 0xfffd, 0x9f4c, 0x8bf9, 0xfffd, 0xfffd, 0x9f48, 0x9f4a,
2683     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2684     0x94a5, 0xfffd, 0x9f4d, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2685     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2686     0xfffd, 0xfffd, 0x9f51, 0x9f4e, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2687     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9793, 0x9f4f, 0xfffd, 0xfffd,
2688     0xfffd, 0xfffd, 0x9edc, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2689     0xfffd, 0xfffd, 0x9f52, 0xfffd, 0xfffd, 0xfffd, 0x9f53, 0xfffd,
2690     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8954, 0xfffd, 0x9f55,
2691     0x8c87, 0x8e9f, 0xfffd, 0x8bd3, 0xfffd, 0xfffd, 0xfffd, 0x89a2,
2692     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2693     0xfffd, 0xfffd, 0x977e, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9f57,
2694     0x9f56, 0x9f59, 0x8b5c, 0xfffd, 0xfffd, 0x8bd4, 0x8abc, 0xfffd,
2695     0xfffd, 0xfffd, 0xfffd, 0x9f5c, 0xfffd, 0xfffd, 0xfffd, 0x9f5b,
2696     0xfffd, 0x9f5d, 0xfffd, 0xfffd, 0x89cc, 0xfffd, 0x9256, 0xfffd,
2697     0x9f5e, 0xfffd, 0xfffd, 0x8abd, 0x9f60, 0xfffd, 0xfffd, 0xfffd,
2698     0xfffd, 0x9f5f, 0xfffd, 0x9f61, 0xfffd, 0xfffd, 0xfffd, 0x9f62,
2699     0xfffd, 0x9f63, 0x8e7e, 0x90b3, 0x8d9f, 0xfffd, 0x9590, 0xfffd,
2700     0xfffd, 0x95e0, 0x9863, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8e95,
2701     0xfffd, 0xfffd, 0xfffd, 0x8dce, 0x97f0, 0xfffd, 0xfffd, 0xfffd,
2702     0x9f64, 0x9f65, 0xfffd, 0x8e80, 0xfffd, 0xfffd, 0xfffd, 0x9f66,
2703     0x9f67, 0xfffd, 0xfffd, 0x9f69, 0x9f68, 0xfffd, 0x9677, 0xfffd,
2704     0xfffd, 0x8f7d, 0x8eea, 0x8e63, 0xfffd, 0x9f6a, 0xfffd, 0xfffd,
2705     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9f6c, 0x9042, 0xfffd,
2706     0x9f6b, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9f6d, 0xfffd,
2707     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9f6e, 0xfffd, 0xfffd, 0xfffd,
2708     0xfffd, 0xfffd, 0x9f6f, 0x9f70, 0xfffd, 0xfffd, 0xfffd, 0x9f71,
2709     0xfffd, 0x9f73, 0x9f72, 0x9f74, 0x89a3, 0x9269, 0xfffd, 0x9f75,
2710     0xfffd, 0xfffd, 0x8e45, 0x8a6b, 0x9f76, 0xfffd, 0xfffd, 0x9361,
2711     0x9aca, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8b42, 0x9f77, 0xfffd,
2712     0xfffd, 0xfffd, 0xfffd, 0x9f78, 0xfffd, 0x95ea, 0x9688, 0xfffd,
2713     0xfffd, 0xfffd, 0x93c5, 0x9f79, 0x94e4, 0xfffd, 0xfffd, 0xfffd,
2714     0x94f9, 0xfffd, 0xfffd, 0x96d1, 0xfffd, 0xfffd, 0xfffd, 0x9f7a,
2715     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2716     0xfffd, 0xfffd, 0xfffd, 0x9f7c, 0x9f7b, 0xfffd, 0xfffd, 0x9f7e,
2717     0xfffd, 0xfffd, 0xfffd, 0x9f7d, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2718     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2719     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2720     0x9f81, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8e81,
2721     0xfffd, 0x96af, 0xfffd, 0x9f82, 0x9f83, 0xfffd, 0xfffd, 0x8b43,
2722     0xfffd, 0xfffd, 0xfffd, 0x9f84, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2723     0xfffd, 0xfffd, 0xfffd, 0x9f86, 0x9f85, 0xfffd, 0xfffd, 0xfffd,
2724     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2725     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9085, 0xfffd, 0xfffd, 0x9558,
2726     0x8969, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x94c3, 0xfffd,
2727     0x92f3, 0x8f60, 0x8b81, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2728     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x94c4, 0xfffd,
2729     0x8eac, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9f88, 0xfffd, 0x8abe,
2730     0xfffd, 0xfffd, 0x8998, 0xfffd, 0xfffd, 0x93f0, 0x9f87, 0x8d5d,
2731     0x9272, 0xfffd, 0x9f89, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2732     0x9f91, 0xfffd, 0x9f8a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2733     0x91bf, 0xfffd, 0x8b82, 0x9f92, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2734     0xfffd, 0xfffd, 0x8c88, 0xfffd, 0xfffd, 0x8b44, 0x9f90, 0xfffd,
2735     0xfffd, 0x9f8e, 0x9f8b, 0x9780, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2736     0x92be, 0xfffd, 0xfffd, 0xfffd, 0x93d7, 0x9f8c, 0xfffd, 0xfffd,
2737     0x9f94, 0xfffd, 0x9f93, 0x8c42, 0xfffd, 0xfffd, 0x89ab, 0xfffd,
2738     0xfffd, 0x8db9, 0x9f8d, 0x9f8f, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2739     0xfffd, 0x9676, 0x91f2, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2740     0xfffd, 0xfffd, 0xfffd, 0x9697, 0xfffd, 0xfffd, 0x9f9c, 0xfffd,
2741     0xfffd, 0x9f9d, 0xfffd, 0x89cd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2742     0x95a6, 0x96fb, 0x9f9f, 0x8ea1, 0x8fc0, 0x9f98, 0x9f9e, 0x8988,
2743     0xfffd, 0x8bb5, 0xfffd, 0xfffd, 0x9f95, 0x9f9a, 0xfffd, 0xfffd,
2744     0xfffd, 0x90f2, 0x9491, 0xfffd, 0x94e5, 0xfffd, 0xfffd, 0xfffd,
2745     0xfffd, 0xfffd, 0xfffd, 0x9f97, 0xfffd, 0x9640, 0xfffd, 0x9f99,
2746     0xfffd, 0x9fa2, 0xfffd, 0x9fa0, 0xfffd, 0x9f9b, 0xfffd, 0xfffd,
2747     0xfffd, 0x9641, 0x9467, 0x8b83, 0xfffd, 0x9344, 0xfffd, 0xfffd,
2748     0x928d, 0xfffd, 0x9fa3, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9fa1,
2749     0x91d7, 0x9f96, 0xfffd, 0x896a, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2750     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2751     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2752     0xfffd, 0xfffd, 0xfffd, 0x976d, 0x9fae, 0xfffd, 0xfffd, 0xfffd,
2753     0xfffd, 0xfffd, 0x9fad, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x90f4,
2754     0xfffd, 0x9faa, 0xfffd, 0x978c, 0xfffd, 0xfffd, 0x93b4, 0x9fa4,
2755     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x92c3, 0xfffd, 0xfffd,
2756     0xfffd, 0x896b, 0x8d5e, 0x9fa7, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2757     0xfffd, 0xfffd, 0x8f46, 0x9fac, 0xfffd, 0x9fab, 0x9fa6, 0xfffd,
2758     0x9fa9, 0xfffd, 0xfffd, 0x8a88, 0xfffd, 0x9fa8, 0x9468, 0xfffd,
2759     0xfffd, 0x97ac, 0xfffd, 0xfffd, 0x8ff2, 0x90f3, 0xfffd, 0xfffd,
2760     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2761     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2762     0xfffd, 0x9fb4, 0x9fb2, 0xfffd, 0x956c, 0xfffd, 0xfffd, 0xfffd,
2763     0xfffd, 0xfffd, 0xfffd, 0x9faf, 0x9fb1, 0xfffd, 0x8959, 0xfffd,
2764     0xfffd, 0x8d5f, 0x9851, 0xfffd, 0x8a5c, 0xfffd, 0x9582, 0xfffd,
2765     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9781, 0xfffd, 0xfffd, 0x8a43,
2766     0x905a, 0x9fb3, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2767     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9fb8, 0xfffd, 0xfffd,
2768     0x8fc1, 0xfffd, 0xfffd, 0xfffd, 0x974f, 0xfffd, 0x9fb5, 0xfffd,
2769     0xfffd, 0xfffd, 0xfffd, 0x9fb0, 0xfffd, 0x9fb6, 0xfffd, 0xfffd,
2770     0xfffd, 0x97dc, 0xfffd, 0x9393, 0x93c0, 0xfffd, 0xfffd, 0xfffd,
2771     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2772     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8a55,
2773     0xfffd, 0xfffd, 0x8974, 0xfffd, 0xfffd, 0x9fbc, 0xfffd, 0xfffd,
2774     0x9fbf, 0xfffd, 0xfffd, 0xfffd, 0x97c1, 0xfffd, 0xfffd, 0xfffd,
2775     0x9784, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9fc6, 0x9fc0, 0x9fbd,
2776     0xfffd, 0xfffd, 0xfffd, 0x97d2, 0x9fc3, 0xfffd, 0xfffd, 0xfffd,
2777     0xfffd, 0x8f69, 0x9fc5, 0xfffd, 0xfffd, 0x9fca, 0xfffd, 0xfffd,
2778     0x9391, 0x9fc8, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9fc2, 0xfffd,
2779     0xfffd, 0x9257, 0xfffd, 0xfffd, 0x9fc9, 0xfffd, 0x9fbe, 0xfffd,
2780     0x9fc4, 0xfffd, 0x9fcb, 0x88fa, 0x9fc1, 0xfffd, 0x9fcc, 0xfffd,
2781     0xfffd, 0x905b, 0xfffd, 0x8f7e, 0xfffd, 0x95a3, 0xfffd, 0x8dac,
2782     0xfffd, 0x9fb9, 0x9fc7, 0x9359, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2783     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x90b4, 0xfffd, 0x8a89,
2784     0x8dcf, 0x8fc2, 0x9fbb, 0x8f61, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2785     0xfffd, 0xfffd, 0xfffd, 0x8c6b, 0xfffd, 0x9fba, 0xfffd, 0xfffd,
2786     0xfffd, 0x9fd0, 0x8f8d, 0x8cb8, 0xfffd, 0x9fdf, 0xfffd, 0x9fd9,
2787     0x8b94, 0x936e, 0xfffd, 0x9fd4, 0x9fdd, 0x88ad, 0x8951, 0xfffd,
2788     0xfffd, 0x89b7, 0xfffd, 0x9fd6, 0x91aa, 0x9fcd, 0x9fcf, 0x8d60,
2789     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2790     0x9fe0, 0xfffd, 0x9fdb, 0xfffd, 0xfffd, 0xfffd, 0x9fd3, 0xfffd,
2791     0xfffd, 0xfffd, 0xfffd, 0x9fda, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2792     0xfffd, 0xfffd, 0x96a9, 0xfffd, 0xfffd, 0x9fd8, 0x9fdc, 0xfffd,
2793     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8cce, 0xfffd,
2794     0x8fc3, 0xfffd, 0xfffd, 0x9258, 0xfffd, 0xfffd, 0xfffd, 0x9fd2,
2795     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x974e,
2796     0xfffd, 0xfffd, 0xfffd, 0x9fd5, 0xfffd, 0xfffd, 0x9fce, 0x9392,
2797     0xfffd, 0xfffd, 0x9fd1, 0xfffd, 0xfffd, 0xfffd, 0x9fd7, 0xfffd,
2798     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9870, 0x8ebc,
2799     0x969e, 0xfffd, 0x9fe1, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2800     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x94ac, 0xfffd, 0xfffd, 0x9fed,
2801     0x8cb9, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8f80, 0xfffd,
2802     0x9fe3, 0xfffd, 0xfffd, 0xfffd, 0x97ad, 0x8d61, 0xfffd, 0x9ff0,
2803     0xfffd, 0xfffd, 0x88ec, 0xfffd, 0xfffd, 0x9fee, 0xfffd, 0xfffd,
2804     0xfffd, 0xfffd, 0x9fe2, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9fe8,
2805     0xfffd, 0xfffd, 0x9fea, 0xfffd, 0xfffd, 0xfffd, 0x976e, 0x9fe5,
2806     0xfffd, 0xfffd, 0x934d, 0xfffd, 0xfffd, 0x9fe7, 0xfffd, 0xfffd,
2807     0xfffd, 0xfffd, 0x9fef, 0xfffd, 0x9fe9, 0x96c5, 0xfffd, 0xfffd,
2808     0xfffd, 0x9fe4, 0xfffd, 0x8ea0, 0x9ffc, 0xfffd, 0xfffd, 0xfffd,
2809     0xfffd, 0x8a8a, 0xfffd, 0x9fe6, 0x9feb, 0x9fec, 0xfffd, 0xfffd,
2810     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x91ea, 0x91d8, 0xfffd,
2811     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2812     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9ff4, 0xfffd, 0xfffd, 0x9ffa,
2813     0xfffd, 0xfffd, 0x9ff8, 0xfffd, 0x9348, 0xfffd, 0xfffd, 0xe042,
2814     0x9ff5, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9ff6, 0x9fde,
2815     0xfffd, 0x8b99, 0x9559, 0xfffd, 0xfffd, 0xfffd, 0x8ebd, 0xfffd,
2816     0xfffd, 0x8d97, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9852,
2817     0xfffd, 0x9ff2, 0xfffd, 0xe041, 0x8989, 0x9186, 0xfffd, 0xfffd,
2818     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2819     0x9499, 0xfffd, 0x8abf, 0x97f8, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2820     0xfffd, 0xfffd, 0xfffd, 0x969f, 0x92d0, 0xfffd, 0xfffd, 0xfffd,
2821     0xfffd, 0x9ff9, 0x9ffb, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2822     0x9151, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe040, 0x9ff7,
2823     0xfffd, 0x9ff1, 0xfffd, 0xfffd, 0xfffd, 0x8ac1, 0xfffd, 0xfffd,
2824     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2825     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8c89, 0xfffd, 0xfffd, 0xfffd,
2826     0xe04e, 0xfffd, 0xfffd, 0xe049, 0x90f6, 0xfffd, 0xfffd, 0x8a83,
2827     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8f81, 0xfffd, 0xe052, 0xfffd,
2828     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe04b, 0x92aa, 0xe048,
2829     0x92d7, 0xfffd, 0xfffd, 0xfffd, 0xe06b, 0xfffd, 0xfffd, 0xfffd,
2830     0xe045, 0xfffd, 0xe044, 0xfffd, 0xe04d, 0xfffd, 0xfffd, 0xfffd,
2831     0xe047, 0xe046, 0xe04c, 0xfffd, 0x909f, 0xfffd, 0xe043, 0xfffd,
2832     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe04f, 0xfffd,
2833     0xfffd, 0xe050, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8ac0,
2834     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2835     0xfffd, 0xe055, 0xfffd, 0xe054, 0xe056, 0xfffd, 0xfffd, 0xfffd,
2836     0xfffd, 0xfffd, 0xe059, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2837     0xfffd, 0x9362, 0xfffd, 0xe053, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2838     0xfffd, 0xe057, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2839     0x8c83, 0x91f7, 0xe051, 0x945a, 0xfffd, 0xfffd, 0xe058, 0xfffd,
2840     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2841     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe05d, 0xe05b, 0xfffd, 0xfffd,
2842     0xe05e, 0xfffd, 0xfffd, 0xe061, 0xfffd, 0xfffd, 0xfffd, 0xe05a,
2843     0x8d8a, 0x9447, 0xfffd, 0xfffd, 0x9fb7, 0xfffd, 0xfffd, 0xfffd,
2844     0xfffd, 0xfffd, 0xfffd, 0x9794, 0xe05c, 0xfffd, 0xe060, 0x91f3,
2845     0xfffd, 0xe05f, 0xfffd, 0xe04a, 0xfffd, 0xfffd, 0xe889, 0xfffd,
2846     0xfffd, 0xfffd, 0xe064, 0xfffd, 0xfffd, 0xfffd, 0xe068, 0xfffd,
2847     0xfffd, 0xe066, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2848     0xfffd, 0xe062, 0xfffd, 0xe063, 0xfffd, 0xfffd, 0xfffd, 0xe067,
2849     0xfffd, 0xe065, 0xfffd, 0xfffd, 0xfffd, 0x956d, 0xfffd, 0xfffd,
2850     0xe06d, 0xfffd, 0xe06a, 0xe069, 0xfffd, 0xe06c, 0x93d2, 0xe06e,
2851     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9295, 0x91eb,
2852     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x90a3, 0xfffd, 0xfffd, 0xfffd,
2853     0xe06f, 0xfffd, 0xe071, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2854     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe070, 0xfffd,
2855     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2856     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9ff3, 0xfffd, 0xfffd, 0xfffd,
2857     0xfffd, 0xe072, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2858     0x93e5, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2859     0xfffd, 0xfffd, 0xfffd, 0xe073, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2860     0xfffd, 0xfffd, 0xfffd, 0x89ce, 0xfffd, 0xfffd, 0xfffd, 0x9394,
2861     0x8a44, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2862     0x8b84, 0xfffd, 0xfffd, 0xfffd, 0x8edc, 0x8dd0, 0xfffd, 0xfffd,
2863     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2864     0xfffd, 0x9846, 0x9086, 0xfffd, 0xfffd, 0xfffd, 0x898a, 0xfffd,
2865     0xfffd, 0xfffd, 0xe075, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2866     0xfffd, 0xe074, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2867     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2868     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe078, 0x9259, 0xe07b, 0xe076,
2869     0xfffd, 0xfffd, 0xfffd, 0xe07a, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2870     0xe079, 0x935f, 0x88d7, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2871     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2872     0x97f3, 0xfffd, 0xfffd, 0xe07d, 0xfffd, 0xfffd, 0xfffd, 0x8947,
2873     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2874     0xfffd, 0xe080, 0xfffd, 0xfffd, 0xfffd, 0xe07e, 0xfffd, 0xe07c,
2875     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2876     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2877     0xfffd, 0xe077, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2878     0xfffd, 0x9642, 0xfffd, 0xfffd, 0xfffd, 0xe082, 0xfffd, 0xfffd,
2879     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2880     0xfffd, 0xe081, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2881     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x898b, 0xfffd, 0xfffd, 0xfffd,
2882     0xfffd, 0xe084, 0x95b0, 0xfffd, 0xe083, 0xfffd, 0xfffd, 0xfffd,
2883     0xfffd, 0x96b3, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8fc5, 0xfffd,
2884     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2885     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9152, 0xfffd,
2886     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8fc4, 0xfffd, 0xfffd, 0xfffd,
2887     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2888     0xfffd, 0x97f9, 0xfffd, 0xfffd, 0xe08a, 0xfffd, 0x90f7, 0xfffd,
2889     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe086, 0xe08b, 0xfffd,
2890     0xfffd, 0x898c, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2891     0xfffd, 0xfffd, 0xe089, 0xfffd, 0x9481, 0xe085, 0xe088, 0x8fc6,
2892     0xfffd, 0x94cf, 0xfffd, 0xfffd, 0xe08c, 0xfffd, 0x8ecf, 0xfffd,
2893     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2894     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x90f8, 0xfffd, 0xfffd,
2895     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe08f, 0xfffd, 0xfffd, 0xfffd,
2896     0xe087, 0xfffd, 0x8c46, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe08d,
2897     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x976f, 0xe090, 0xfffd, 0xfffd,
2898     0xfffd, 0xeaa4, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8f6e,
2899     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2900     0xe091, 0xfffd, 0xfffd, 0xfffd, 0xe092, 0xfffd, 0xfffd, 0xfffd,
2901     0xfffd, 0x944d, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2902     0xfffd, 0xe094, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe095, 0xfffd,
2903     0xfffd, 0xfffd, 0xfffd, 0x9452, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2904     0x9395, 0xe097, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe099, 0xfffd,
2905     0x97d3, 0xfffd, 0xe096, 0xfffd, 0xe098, 0x898d, 0xfffd, 0xe093,
2906     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9a7a,
2907     0xe09a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9187, 0x8e57, 0xe09c,
2908     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe09b, 0x9043, 0x99d7, 0xfffd,
2909     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe09d, 0xfffd, 0xfffd,
2910     0xfffd, 0xe09f, 0xfffd, 0xe08e, 0xe09e, 0xfffd, 0xfffd, 0xe0a0,
2911     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x949a, 0xfffd,
2912     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe0a1, 0xfffd, 0xfffd,
2913     0xe0a2, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2914     0xfffd, 0xfffd, 0xfffd, 0xe0a3, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2915     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2916     0xe0a4, 0xfffd, 0x92dc, 0xfffd, 0xe0a6, 0xe0a5, 0xfffd, 0xfffd,
2917     0xe0a7, 0xfffd, 0xe0a8, 0xfffd, 0xfffd, 0x8edd, 0x9583, 0xfffd,
2918     0xfffd, 0xfffd, 0x96ea, 0xe0a9, 0xe0aa, 0x9175, 0x8ea2, 0xe0ab,
2919     0xe0ac, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe0ad, 0x95d0,
2920     0x94c5, 0xfffd, 0xfffd, 0xe0ae, 0x9476, 0xfffd, 0xfffd, 0xfffd,
2921     0xfffd, 0xfffd, 0x92ab, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2922     0xe0af, 0x89e5, 0xfffd, 0x8b8d, 0xfffd, 0x96c4, 0xfffd, 0x96b4,
2923     0xfffd, 0x89b2, 0x9853, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9671,
2924     0xfffd, 0x95a8, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2925     0xfffd, 0xfffd, 0x90b5, 0xfffd, 0xe0b0, 0xfffd, 0xfffd, 0xfffd,
2926     0xfffd, 0x93c1, 0xfffd, 0xfffd, 0xfffd, 0x8ca1, 0xe0b1, 0xfffd,
2927     0x8dd2, 0xe0b3, 0xe0b2, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe0b4,
2928     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2929     0xfffd, 0xfffd, 0xe0b5, 0xfffd, 0xfffd, 0xfffd, 0xe0b6, 0xfffd,
2930     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2931     0x8b5d, 0xfffd, 0xe0b7, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe0b8,
2932     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8ca2, 0xfffd, 0xfffd, 0x94c6,
2933     0xfffd, 0xfffd, 0xe0ba, 0xfffd, 0xfffd, 0xfffd, 0x8ff3, 0xfffd,
2934     0xfffd, 0xe0b9, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2935     0xfffd, 0xfffd, 0x8bb6, 0xe0bb, 0xe0bd, 0xfffd, 0xe0bc, 0xfffd,
2936     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe0be, 0xfffd,
2937     0x8ccf, 0xfffd, 0xe0bf, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8be7,
2938     0xfffd, 0x915f, 0xfffd, 0x8d9d, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2939     0xe0c1, 0xe0c2, 0xe0c0, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2940     0xfffd, 0x8eeb, 0xfffd, 0xfffd, 0x93c6, 0x8bb7, 0xfffd, 0xfffd,
2941     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe0c4,
2942     0x924b, 0xe0c3, 0xfffd, 0xfffd, 0x9854, 0x9482, 0xfffd, 0xfffd,
2943     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2944     0xfffd, 0xfffd, 0xe0c7, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2945     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe0c9, 0xe0c6,
2946     0xfffd, 0xfffd, 0xfffd, 0x96d2, 0xe0c8, 0xe0ca, 0xfffd, 0x97c2,
2947     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe0ce, 0xfffd, 0xfffd,
2948     0xfffd, 0xe0cd, 0x9296, 0x944c, 0xfffd, 0xfffd, 0x8ca3, 0xe0cc,
2949     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe0cb, 0xfffd, 0x9750, 0x9751,
2950     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe0cf, 0x898e,
2951     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8d96, 0x8e82, 0xfffd, 0xfffd,
2952     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe0d0, 0xe0d1,
2953     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe0d3,
2954     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2955     0xfffd, 0xfffd, 0xfffd, 0x8f62, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2956     0xe0d5, 0xfffd, 0xe0d4, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2957     0xe0d6, 0xfffd, 0x8a6c, 0xfffd, 0xfffd, 0xe0d8, 0xfffd, 0xfffd,
2958     0xe0d7, 0xfffd, 0xe0da, 0xe0d9, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2959     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8cba, 0xfffd, 0xfffd, 0x97a6,
2960     0xfffd, 0x8bca, 0xfffd, 0x89a4, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2961     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8be8, 0xfffd,
2962     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2963     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2964     0xfffd, 0x8adf, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2965     0xfffd, 0xfffd, 0x97e6, 0xe0dc, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2966     0xfffd, 0xfffd, 0xfffd, 0xe0de, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2967     0xe0df, 0xfffd, 0x89cf, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2968     0xe0db, 0xfffd, 0x8e58, 0xfffd, 0xfffd, 0x92bf, 0xe0dd, 0xfffd,
2969     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2970     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe0e2, 0xfffd,
2971     0x8eec, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe0e0, 0xfffd, 0xfffd,
2972     0xfffd, 0xfffd, 0x8c5d, 0xfffd, 0xfffd, 0x94c7, 0xe0e1, 0xfffd,
2973     0xfffd, 0xe0fc, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2974     0xe0e7, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8cbb, 0xfffd,
2975     0xfffd, 0xfffd, 0xfffd, 0x8b85, 0xfffd, 0xe0e4, 0x979d, 0xfffd,
2976     0xfffd, 0x97ae, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2977     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2978     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2979     0xfffd, 0xfffd, 0x91f4, 0xfffd, 0xfffd, 0xe0e6, 0xfffd, 0xfffd,
2980     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2981     0xfffd, 0xfffd, 0xe0e8, 0x97d4, 0x8bd5, 0x94fa, 0x9469, 0xfffd,
2982     0xfffd, 0xfffd, 0xe0e9, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe0eb,
2983     0xfffd, 0xe0ee, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2984     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2985     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe0ea, 0xfffd, 0xfffd,
2986     0xfffd, 0xe0ed, 0x8ce8, 0x896c, 0xe0ef, 0xfffd, 0x9090, 0xe0ec,
2987     0x97da, 0xfffd, 0xfffd, 0xe0f2, 0xeaa2, 0xfffd, 0xfffd, 0xfffd,
2988     0xfffd, 0xe0f0, 0xe0f3, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe0e5,
2989     0xe0f1, 0xfffd, 0xfffd, 0x8dba, 0xfffd, 0xfffd, 0xe0f4, 0xfffd,
2990     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe0f5, 0xfffd,
2991     0xfffd, 0xfffd, 0xfffd, 0x979e, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2992     0xfffd, 0xfffd, 0xfffd, 0xe0f6, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2993     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2994     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe0f7, 0xfffd,
2995     0xfffd, 0xfffd, 0xe0e3, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe0f8,
2996     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2997     0x8ac2, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
2998     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8ea3, 0xfffd, 0xfffd,
2999     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3000     0xfffd, 0xfffd, 0xe0f9, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe0fa,
3001     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe0fb, 0xfffd, 0xfffd, 0xfffd,
3002     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x895a, 0xfffd, 0xfffd, 0xfffd,
3003     0xe140, 0xfffd, 0x955a, 0xe141, 0xfffd, 0xfffd, 0x8aa2, 0xe142,
3004     0xfffd, 0xe143, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe144, 0xfffd,
3005     0xe146, 0xe147, 0xe145, 0xfffd, 0xfffd, 0xfffd, 0x9572, 0xe149,
3006     0xe148, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3007     0xfffd, 0xfffd, 0xfffd, 0xe14b, 0xe14a, 0xe14c, 0xfffd, 0xfffd,
3008     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe14d, 0xe14f, 0xe14e, 0xfffd,
3009     0xfffd, 0x8d99, 0xfffd, 0xe151, 0xfffd, 0xe150, 0xfffd, 0xfffd,
3010     0x8ac3, 0xfffd, 0x9072, 0xfffd, 0x935b, 0xfffd, 0xe152, 0x90b6,
3011     0xfffd, 0xfffd, 0xfffd, 0x8e59, 0xfffd, 0x8999, 0xe153, 0xfffd,
3012     0x9770, 0xfffd, 0xfffd, 0x95e1, 0xe154, 0xfffd, 0xfffd, 0xfffd,
3013     0x9363, 0x9752, 0x8d62, 0x905c, 0xfffd, 0xfffd, 0xfffd, 0x926a,
3014     0x99b2, 0xfffd, 0x92ac, 0x89e6, 0xe155, 0xfffd, 0xfffd, 0xfffd,
3015     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe156, 0xfffd, 0xe15b, 0xfffd,
3016     0xfffd, 0xe159, 0xe158, 0x9dc0, 0x8a45, 0xe157, 0xfffd, 0x88d8,
3017     0xfffd, 0x94a8, 0xfffd, 0xfffd, 0x94c8, 0xfffd, 0xfffd, 0xfffd,
3018     0xfffd, 0x97af, 0xe15c, 0xe15a, 0x927b, 0x90a4, 0xfffd, 0xfffd,
3019     0x94a9, 0xfffd, 0x954c, 0xfffd, 0xe15e, 0x97aa, 0x8c6c, 0xe15f,
3020     0xfffd, 0xe15d, 0x94d4, 0xe160, 0xfffd, 0xe161, 0xfffd, 0xfffd,
3021     0x88d9, 0xfffd, 0xfffd, 0x8ff4, 0xe166, 0xfffd, 0xe163, 0x93eb,
3022     0xe162, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8b45,
3023     0xfffd, 0xfffd, 0xe169, 0xfffd, 0xfffd, 0xfffd, 0xe164, 0xe165,
3024     0xfffd, 0xe168, 0xe167, 0x9544, 0xfffd, 0xfffd, 0x9161, 0x9160,
3025     0xfffd, 0x8b5e, 0xfffd, 0xfffd, 0xe16a, 0xfffd, 0xfffd, 0xfffd,
3026     0xfffd, 0xfffd, 0xe16b, 0xfffd, 0xfffd, 0xe16c, 0xfffd, 0xfffd,
3027     0xfffd, 0xfffd, 0xfffd, 0xe16e, 0xfffd, 0xe16d, 0xfffd, 0xfffd,
3028     0xfffd, 0xfffd, 0xfffd, 0x8975, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3029     0xfffd, 0xe176, 0x94e6, 0xe170, 0xfffd, 0xe172, 0xfffd, 0xfffd,
3030     0xe174, 0x905d, 0xfffd, 0xfffd, 0xe175, 0xe173, 0x8ebe, 0xfffd,
3031     0xfffd, 0xfffd, 0xe16f, 0xe171, 0xfffd, 0x9561, 0xfffd, 0x8fc7,
3032     0xfffd, 0xfffd, 0xe178, 0xfffd, 0xfffd, 0xe177, 0xfffd, 0xfffd,
3033     0xfffd, 0xfffd, 0xe179, 0xfffd, 0x8ea4, 0x8dad, 0xfffd, 0xfffd,
3034     0x9397, 0xe17a, 0xfffd, 0x92c9, 0xfffd, 0xfffd, 0xe17c, 0xfffd,
3035     0xfffd, 0xfffd, 0x979f, 0xe17b, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3036     0xfffd, 0x9189, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3037     0xe182, 0xfffd, 0xe184, 0xe185, 0x9273, 0xfffd, 0xfffd, 0xfffd,
3038     0xfffd, 0xfffd, 0xe183, 0xfffd, 0xe180, 0xfffd, 0xe17d, 0xe17e,
3039     0xfffd, 0xe181, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3040     0xfffd, 0xe188, 0xfffd, 0xe186, 0xfffd, 0xe187, 0xfffd, 0xfffd,
3041     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3042     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe189,
3043     0xe18b, 0xe18c, 0xe18d, 0xfffd, 0xe18e, 0xfffd, 0xfffd, 0xe18a,
3044     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3045     0xe190, 0xfffd, 0xfffd, 0xfffd, 0xe18f, 0xfffd, 0xfffd, 0xfffd,
3046     0xfffd, 0xfffd, 0xfffd, 0xe191, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3047     0xfffd, 0xfffd, 0x97c3, 0xfffd, 0xfffd, 0xfffd, 0xe194, 0xe192,
3048     0xe193, 0xfffd, 0xfffd, 0xfffd, 0x8ae0, 0xfffd, 0xfffd, 0xfffd,
3049     0xfffd, 0xfffd, 0x96fc, 0xfffd, 0xfffd, 0xfffd, 0x95c8, 0xfffd,
3050     0xe196, 0xfffd, 0xfffd, 0xfffd, 0xe195, 0xfffd, 0xfffd, 0xfffd,
3051     0xfffd, 0xe197, 0xe198, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe19c,
3052     0xe199, 0xe19a, 0xe19b, 0xfffd, 0xe19d, 0xfffd, 0xfffd, 0xfffd,
3053     0xe19e, 0xfffd, 0xe19f, 0xfffd, 0xfffd, 0xfffd, 0xe1a0, 0xfffd,
3054     0xe1a1, 0xfffd, 0x94ad, 0x936f, 0xe1a2, 0x9492, 0x9553, 0xfffd,
3055     0xe1a3, 0xfffd, 0xfffd, 0xe1a4, 0x9349, 0xfffd, 0x8a46, 0x8d63,
3056     0xe1a5, 0xfffd, 0xfffd, 0xe1a6, 0xfffd, 0xfffd, 0xe1a7, 0xfffd,
3057     0x8e48, 0xfffd, 0xfffd, 0xe1a9, 0xfffd, 0xfffd, 0xe1a8, 0xfffd,
3058     0xfffd, 0xe1aa, 0xe1ab, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3059     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3060     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x94e7, 0xfffd,
3061     0xe1ac, 0xfffd, 0xfffd, 0xfffd, 0xe1ad, 0xfffd, 0xfffd, 0xea89,
3062     0xe1ae, 0xe1af, 0xe1b0, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8e4d,
3063     0xfffd, 0xfffd, 0xe1b1, 0x9475, 0xfffd, 0xfffd, 0x967e, 0xfffd,
3064     0x896d, 0xfffd, 0x8976, 0xfffd, 0xfffd, 0xe1b2, 0xfffd, 0xfffd,
3065     0xfffd, 0xfffd, 0xe1b4, 0xfffd, 0xfffd, 0xfffd, 0xe1b3, 0x9390,
3066     0xfffd, 0xfffd, 0xfffd, 0x90b7, 0x9f58, 0xfffd, 0xe1b5, 0x96bf,
3067     0xfffd, 0xe1b6, 0xfffd, 0x8ac4, 0x94d5, 0xe1b7, 0xfffd, 0xe1b8,
3068     0xfffd, 0xfffd, 0xe1b9, 0xfffd, 0xfffd, 0xfffd, 0x96da, 0xfffd,
3069     0xfffd, 0xfffd, 0x96d3, 0xfffd, 0x92bc, 0xfffd, 0xfffd, 0xfffd,
3070     0x918a, 0xfffd, 0xfffd, 0xe1bb, 0xfffd, 0xfffd, 0x8f82, 0xfffd,
3071     0xfffd, 0x8fc8, 0xfffd, 0xfffd, 0xe1be, 0xfffd, 0xfffd, 0xe1bd,
3072     0xe1bc, 0x94fb, 0xfffd, 0x8ac5, 0x8ca7, 0xfffd, 0xfffd, 0xfffd,
3073     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3074     0xfffd, 0xfffd, 0xfffd, 0xe1c4, 0xfffd, 0xfffd, 0xe1c1, 0x905e,
3075     0x96b0, 0xfffd, 0xfffd, 0xfffd, 0xe1c0, 0xe1c2, 0xe1c3, 0xfffd,
3076     0xfffd, 0xe1bf, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3077     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe1c5,
3078     0xe1c6, 0xfffd, 0x92ad, 0xfffd, 0x8ae1, 0xfffd, 0xfffd, 0xfffd,
3079     0x9285, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe1c7,
3080     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3081     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3082     0xfffd, 0xfffd, 0xe1c8, 0xe1cb, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3083     0xfffd, 0x9087, 0xfffd, 0x93c2, 0xfffd, 0xe1cc, 0x9672, 0xfffd,
3084     0xe1c9, 0xfffd, 0xfffd, 0xe1ca, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3085     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3086     0xfffd, 0xe1cf, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe1ce, 0xe1cd,
3087     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3088     0xfffd, 0xfffd, 0xfffd, 0xe1d1, 0xfffd, 0xfffd, 0xe1d0, 0xfffd,
3089     0xfffd, 0xe1d2, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3090     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe1d4, 0xfffd,
3091     0xe1d3, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x95cb, 0xfffd, 0xfffd,
3092     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8f75, 0x97c4, 0xfffd, 0xfffd,
3093     0xe1d5, 0xfffd, 0xfffd, 0x93b5, 0xfffd, 0xfffd, 0xe1d6, 0xfffd,
3094     0xfffd, 0xe1d7, 0xfffd, 0xe1db, 0xe1d9, 0xe1da, 0xfffd, 0xe1d8,
3095     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe1dc,
3096     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe1dd, 0xfffd, 0xfffd,
3097     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe1de,
3098     0xfffd, 0xfffd, 0xe1df, 0x96b5, 0xe1e0, 0xfffd, 0xfffd, 0xfffd,
3099     0xfffd, 0xfffd, 0x96ee, 0xe1e1, 0xfffd, 0x926d, 0xfffd, 0x948a,
3100     0xfffd, 0x8be9, 0xfffd, 0xfffd, 0xfffd, 0x925a, 0xe1e2, 0x8bb8,
3101     0xfffd, 0xfffd, 0xfffd, 0x90ce, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3102     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe1e3, 0xfffd, 0xfffd, 0xfffd,
3103     0xfffd, 0xfffd, 0x8dbb, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3104     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe1e4, 0xfffd, 0xfffd, 0xfffd,
3105     0xfffd, 0xfffd, 0xe1e5, 0xfffd, 0x8ca4, 0x8dd3, 0xfffd, 0xfffd,
3106     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3107     0xe1e7, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9375, 0x8dd4, 0x8b6d,
3108     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3109     0xfffd, 0xfffd, 0x9643, 0xfffd, 0x946a, 0xfffd, 0xfffd, 0xfffd,
3110     0xfffd, 0xfffd, 0x9376, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8d7b,
3111     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe1e9, 0xfffd, 0xfffd,
3112     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3113     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3114     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8fc9, 0xfffd, 0xfffd,
3115     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3116     0xfffd, 0xfffd, 0xfffd, 0x97b0, 0x8d64, 0xfffd, 0xfffd, 0x8ca5,
3117     0xfffd, 0xfffd, 0x94a1, 0xfffd, 0xe1eb, 0xfffd, 0xfffd, 0xfffd,
3118     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe1ed, 0xfffd, 0xfffd, 0xfffd,
3119     0xfffd, 0x8ce9, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe1ec, 0x92f4,
3120     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe1ef, 0x8a56, 0xe1ea, 0xfffd,
3121     0xfffd, 0x94e8, 0xfffd, 0x894f, 0xfffd, 0x8dea, 0xfffd, 0x9871,
3122     0xfffd, 0xfffd, 0xe1ee, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3123     0xfffd, 0xfffd, 0xfffd, 0xe1f0, 0xfffd, 0xfffd, 0xfffd, 0x95c9,
3124     0xfffd, 0x90d7, 0xe1f2, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe1f3,
3125     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe1f1, 0xfffd, 0xfffd,
3126     0xfffd, 0xfffd, 0x8a6d, 0xfffd, 0xe1f9, 0xfffd, 0xe1f8, 0xfffd,
3127     0xfffd, 0x8ea5, 0xfffd, 0xfffd, 0xfffd, 0xe1fa, 0xe1f5, 0xfffd,
3128     0xfffd, 0xfffd, 0xe1fb, 0xe1f6, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3129     0x94d6, 0xe1f4, 0xfffd, 0xfffd, 0xe1f7, 0xfffd, 0xfffd, 0xfffd,
3130     0xfffd, 0xfffd, 0xe241, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3131     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe240,
3132     0x9681, 0xfffd, 0xfffd, 0xfffd, 0xe1fc, 0xfffd, 0xfffd, 0x88e9,
3133     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe243, 0xfffd, 0xfffd, 0xfffd,
3134     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe242, 0xfffd, 0xfffd,
3135     0xfffd, 0x8fca, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe244,
3136     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9162, 0xfffd,
3137     0xfffd, 0xe246, 0xe245, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3138     0xfffd, 0xe247, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3139     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe1e6, 0xfffd,
3140     0xfffd, 0xfffd, 0xe1e8, 0xe249, 0xe248, 0xfffd, 0xfffd, 0xfffd,
3141     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3142     0xfffd, 0xfffd, 0x8ea6, 0xfffd, 0x97e7, 0xfffd, 0x8ed0, 0xfffd,
3143     0xe24a, 0x8c56, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8b5f,
3144     0x8b46, 0x8e83, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3145     0x9753, 0xfffd, 0xfffd, 0xe250, 0xfffd, 0xe24f, 0x9163, 0xe24c,
3146     0xfffd, 0xfffd, 0xe24e, 0xfffd, 0xfffd, 0x8f6a, 0x905f, 0xe24d,
3147     0xe24b, 0xfffd, 0x9449, 0xfffd, 0xfffd, 0x8fcb, 0xfffd, 0xfffd,
3148     0x955b, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8dd5, 0xfffd, 0xfffd,
3149     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9398,
3150     0xfffd, 0xfffd, 0xe251, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe252,
3151     0xe268, 0x8bd6, 0xfffd, 0xfffd, 0x985c, 0x9154, 0xfffd, 0xfffd,
3152     0xfffd, 0xfffd, 0xe253, 0xfffd, 0xfffd, 0x89d0, 0x92f5, 0x959f,
3153     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3154     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe254, 0xfffd, 0xfffd,
3155     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8b9a, 0xe255,
3156     0xfffd, 0xfffd, 0xe257, 0xfffd, 0xfffd, 0xfffd, 0xe258, 0xfffd,
3157     0x9448, 0xfffd, 0xfffd, 0xe259, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3158     0xfffd, 0xe25a, 0xe25b, 0xfffd, 0xfffd, 0x8bd7, 0x89d1, 0x93c3,
3159     0x8f47, 0x8e84, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3160     0xfffd, 0xe25c, 0xfffd, 0x8f48, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3161     0xfffd, 0x89c8, 0x9562, 0xfffd, 0xfffd, 0xe25d, 0xfffd, 0xfffd,
3162     0x94e9, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9164,
3163     0xfffd, 0xe260, 0xfffd, 0xe261, 0x9489, 0xfffd, 0x9060, 0xe25e,
3164     0xfffd, 0x9281, 0xfffd, 0xfffd, 0xe25f, 0xfffd, 0xfffd, 0xfffd,
3165     0x8fcc, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3166     0xfffd, 0xfffd, 0xfffd, 0x88da, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3167     0x8b48, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3168     0xe262, 0xfffd, 0xfffd, 0x92f6, 0xfffd, 0xe263, 0x90c5, 0xfffd,
3169     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x96ab, 0xfffd, 0xfffd, 0x9542,
3170     0xe264, 0xe265, 0x9274, 0xfffd, 0x97c5, 0xfffd, 0xfffd, 0xe267,
3171     0xe266, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3172     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8eed, 0xfffd,
3173     0xfffd, 0xe269, 0x88ee, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe26c,
3174     0xfffd, 0xfffd, 0xfffd, 0xe26a, 0x89d2, 0x8c6d, 0xe26b, 0x8d65,
3175     0x8d92, 0xfffd, 0x95e4, 0xe26d, 0xfffd, 0xfffd, 0x9673, 0xfffd,
3176     0xfffd, 0xe26f, 0xfffd, 0xfffd, 0xfffd, 0x90cf, 0x896e, 0x89b8,
3177     0x88aa, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe26e,
3178     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3179     0xfffd, 0xe270, 0xe271, 0x8ff5, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3180     0xfffd, 0xe272, 0xfffd, 0x8a6e, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3181     0xe274, 0xfffd, 0xfffd, 0xfffd, 0x8c8a, 0xfffd, 0x8b86, 0xfffd,
3182     0xfffd, 0xe275, 0x8bf3, 0xfffd, 0xfffd, 0xe276, 0xfffd, 0x90fa,
3183     0xfffd, 0x93cb, 0xfffd, 0x90de, 0x8df3, 0xfffd, 0xfffd, 0xfffd,
3184     0xe277, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3185     0xfffd, 0xfffd, 0x9282, 0x918b, 0xfffd, 0xe279, 0xe27b, 0xe278,
3186     0xe27a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8c41,
3187     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3188     0xfffd, 0xe27c, 0x8c45, 0xfffd, 0xfffd, 0xfffd, 0x8b87, 0x9771,
3189     0xe27e, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe280, 0xfffd,
3190     0xfffd, 0xfffd, 0x894d, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe283,
3191     0xfffd, 0xfffd, 0xfffd, 0x8a96, 0xe282, 0xe281, 0xfffd, 0xe285,
3192     0xe27d, 0xfffd, 0xe286, 0x97a7, 0xfffd, 0xe287, 0xfffd, 0xe288,
3193     0xfffd, 0xfffd, 0x9af2, 0xe28a, 0xfffd, 0xe289, 0xfffd, 0xfffd,
3194     0xfffd, 0xe28b, 0xe28c, 0xfffd, 0x97b3, 0xe28d, 0xfffd, 0xe8ed,
3195     0x8fcd, 0xe28e, 0xe28f, 0x8f76, 0xfffd, 0x93b6, 0xe290, 0xfffd,
3196     0xfffd, 0xfffd, 0x9247, 0xfffd, 0xfffd, 0xe291, 0xfffd, 0x925b,
3197     0xe292, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8ba3, 0xfffd,
3198     0x995e, 0x927c, 0x8eb1, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8ac6,
3199     0xfffd, 0xfffd, 0xe293, 0xfffd, 0xe2a0, 0xfffd, 0xe296, 0xfffd,
3200     0x8b88, 0xfffd, 0xe295, 0xe2a2, 0xfffd, 0xfffd, 0xfffd, 0xe294,
3201     0xfffd, 0x8fce, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3202     0xe298, 0xe299, 0xfffd, 0x934a, 0xfffd, 0xfffd, 0xe29a, 0xfffd,
3203     0x8a7d, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9079, 0x9584, 0xfffd,
3204     0xe29c, 0xfffd, 0xfffd, 0xfffd, 0x91e6, 0xfffd, 0xfffd, 0xfffd,
3205     0xfffd, 0xfffd, 0xfffd, 0xe297, 0xfffd, 0xe29b, 0xe29d, 0xfffd,
3206     0xfffd, 0x8df9, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3207     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe2a4, 0x954d, 0xfffd,
3208     0x94a4, 0x9399, 0xfffd, 0x8bd8, 0xe2a3, 0xe2a1, 0xfffd, 0x94b3,
3209     0xe29e, 0x927d, 0x939b, 0xfffd, 0x939a, 0xfffd, 0x8df4, 0xfffd,
3210     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe2b6, 0xfffd, 0xfffd,
3211     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe2a6, 0xfffd, 0xe2a8,
3212     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe2ab, 0xfffd, 0xe2ac, 0xfffd,
3213     0xe2a9, 0xe2aa, 0xfffd, 0xfffd, 0xe2a7, 0xe2a5, 0xfffd, 0xfffd,
3214     0xfffd, 0xfffd, 0xe29f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3215     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x95cd, 0x89d3,
3216     0xfffd, 0xfffd, 0xfffd, 0xe2b3, 0xfffd, 0xe2b0, 0xfffd, 0xe2b5,
3217     0xfffd, 0xfffd, 0xe2b4, 0xfffd, 0x9493, 0x96a5, 0xfffd, 0x8e5a,
3218     0xe2ae, 0xe2b7, 0xe2b2, 0xfffd, 0xe2b1, 0xe2ad, 0xfffd, 0xe2af,
3219     0xfffd, 0x8ac7, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3220     0xfffd, 0xfffd, 0x925c, 0xfffd, 0xfffd, 0x90fb, 0xfffd, 0xfffd,
3221     0xfffd, 0x94a0, 0xfffd, 0xfffd, 0xe2bc, 0xfffd, 0xfffd, 0xfffd,
3222     0x94a2, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3223     0x90df, 0xe2b9, 0xfffd, 0xfffd, 0x94cd, 0xfffd, 0xe2bd, 0x95d1,
3224     0xfffd, 0x927a, 0xfffd, 0xe2b8, 0xe2ba, 0xfffd, 0xfffd, 0xe2bb,
3225     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3226     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe2be, 0xfffd, 0xfffd,
3227     0x8ec2, 0xfffd, 0xfffd, 0xfffd, 0x93c4, 0xe2c3, 0xe2c2, 0xfffd,
3228     0xfffd, 0xe2bf, 0xfffd, 0xfffd, 0xfffd, 0x9855, 0xfffd, 0xfffd,
3229     0xfffd, 0xfffd, 0xfffd, 0xe2c8, 0xfffd, 0xfffd, 0xe2cc, 0xe2c9,
3230     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3231     0xe2c5, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe2c6,
3232     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe2cb, 0xfffd, 0xfffd,
3233     0xfffd, 0xe2c0, 0x99d3, 0xe2c7, 0xe2c1, 0xfffd, 0xfffd, 0xe2ca,
3234     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe2d0,
3235     0xfffd, 0x8ac8, 0xfffd, 0xe2cd, 0xfffd, 0xfffd, 0xfffd, 0xe2ce,
3236     0xfffd, 0xfffd, 0xe2cf, 0xe2d2, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3237     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe2d1,
3238     0x94f4, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe2d3, 0x97fa, 0x95eb,
3239     0xe2d8, 0xfffd, 0xfffd, 0xe2d5, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3240     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe2d4, 0x90d0, 0xfffd, 0xe2d7,
3241     0xe2d9, 0xfffd, 0xfffd, 0xfffd, 0xe2d6, 0xfffd, 0xe2dd, 0xfffd,
3242     0xe2da, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe2db,
3243     0xe2c4, 0xfffd, 0xfffd, 0xfffd, 0xe2dc, 0xe2de, 0xfffd, 0xfffd,
3244     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe2df, 0xfffd, 0xfffd, 0xfffd,
3245     0xfffd, 0xfffd, 0xfffd, 0x95c4, 0xfffd, 0xe2e0, 0xfffd, 0xfffd,
3246     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x96e0, 0xfffd,
3247     0xfffd, 0x8bcc, 0x8c48, 0xe2e1, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3248     0xfffd, 0x95b2, 0xfffd, 0x9088, 0xfffd, 0x96ae, 0xfffd, 0xfffd,
3249     0xe2e2, 0xfffd, 0x97b1, 0xfffd, 0xfffd, 0x9494, 0xfffd, 0x9165,
3250     0x9453, 0xfffd, 0xfffd, 0x8f6c, 0xfffd, 0xfffd, 0xfffd, 0x88be,
3251     0xfffd, 0xe2e7, 0xe2e5, 0xfffd, 0xe2e3, 0x8a9f, 0xfffd, 0x8fcf,
3252     0xe2e8, 0xfffd, 0xfffd, 0xe2e6, 0xfffd, 0xe2e4, 0xe2ec, 0xfffd,
3253     0xfffd, 0xe2eb, 0xe2ea, 0xe2e9, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3254     0xfffd, 0xe2ed, 0xfffd, 0xfffd, 0xfffd, 0xe2ee, 0x90b8, 0xfffd,
3255     0xe2ef, 0xfffd, 0xe2f1, 0xfffd, 0xfffd, 0xe2f0, 0xfffd, 0xfffd,
3256     0xfffd, 0xfffd, 0x8cd0, 0xfffd, 0xfffd, 0xfffd, 0x9157, 0xfffd,
3257     0xfffd, 0xfffd, 0xe2f3, 0xfffd, 0xfffd, 0xfffd, 0x939c, 0xfffd,
3258     0xe2f2, 0xfffd, 0xfffd, 0xfffd, 0xe2f4, 0xfffd, 0x95b3, 0x918c,
3259     0x8d66, 0xfffd, 0xe2f5, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x97c6,
3260     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe2f7,
3261     0xfffd, 0xfffd, 0xe2f8, 0xfffd, 0xe2f9, 0xfffd, 0xe2fa, 0xfffd,
3262     0x8e85, 0xfffd, 0xe2fb, 0x8c6e, 0xfffd, 0xfffd, 0x8b8a, 0xfffd,
3263     0x8b49, 0xfffd, 0xe340, 0xfffd, 0x96f1, 0x8d67, 0xe2fc, 0xfffd,
3264     0xfffd, 0xfffd, 0xe343, 0x96e4, 0xfffd, 0x945b, 0xfffd, 0xfffd,
3265     0x9552, 0xfffd, 0xfffd, 0xfffd, 0x8f83, 0xe342, 0xfffd, 0x8ed1,
3266     0x8d68, 0x8e86, 0x8b89, 0x95b4, 0xe341, 0xfffd, 0xfffd, 0xfffd,
3267     0x9166, 0x9661, 0x8df5, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3268     0xfffd, 0xfffd, 0xfffd, 0x8e87, 0x92db, 0xfffd, 0xe346, 0x97dd,
3269     0x8dd7, 0xfffd, 0xe347, 0x9061, 0xfffd, 0xe349, 0xfffd, 0xfffd,
3270     0xfffd, 0x8fd0, 0x8dae, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe348,
3271     0xfffd, 0xfffd, 0x8f49, 0x8cbc, 0x9167, 0xe344, 0xe34a, 0xfffd,
3272     0xfffd, 0xfffd, 0xfffd, 0xe345, 0x8c6f, 0xfffd, 0xe34d, 0xe351,
3273     0x8c8b, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe34c, 0xfffd,
3274     0xfffd, 0xfffd, 0xfffd, 0xe355, 0xfffd, 0xfffd, 0x8d69, 0xfffd,
3275     0xfffd, 0x978d, 0x88ba, 0xe352, 0xfffd, 0xfffd, 0x8b8b, 0xfffd,
3276     0xe34f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe350, 0xfffd,
3277     0xfffd, 0x939d, 0xe34e, 0xe34b, 0xfffd, 0x8a47, 0x90e2, 0xfffd,
3278     0xfffd, 0x8ca6, 0xfffd, 0xfffd, 0xfffd, 0xe357, 0xfffd, 0xfffd,
3279     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3280     0xfffd, 0xe354, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe356,
3281     0xfffd, 0xfffd, 0xfffd, 0xe353, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3282     0xfffd, 0x8c70, 0x91b1, 0xe358, 0x918e, 0xfffd, 0xfffd, 0xe365,
3283     0xfffd, 0xfffd, 0xe361, 0xe35b, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3284     0xfffd, 0xfffd, 0xfffd, 0xe35f, 0x8ef8, 0x88db, 0xe35a, 0xe362,
3285     0xe366, 0x8d6a, 0x96d4, 0xfffd, 0x92d4, 0xe35c, 0xfffd, 0xfffd,
3286     0xe364, 0xfffd, 0xe359, 0x925d, 0xfffd, 0xe35e, 0x88bb, 0x96c8,
3287     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe35d,
3288     0xfffd, 0xfffd, 0x8bd9, 0x94ea, 0xfffd, 0xfffd, 0xfffd, 0x918d,
3289     0xfffd, 0x97ce, 0x8f8f, 0xfffd, 0xfffd, 0xe38e, 0xfffd, 0xfffd,
3290     0xe367, 0xfffd, 0x90fc, 0xfffd, 0xe363, 0xe368, 0xe36a, 0xfffd,
3291     0x92f7, 0xe36d, 0xfffd, 0xfffd, 0xe369, 0xfffd, 0xfffd, 0xfffd,
3292     0x95d2, 0x8ac9, 0xfffd, 0xfffd, 0x96c9, 0xfffd, 0xfffd, 0x88dc,
3293     0xfffd, 0xfffd, 0xe36c, 0xfffd, 0x97fb, 0xfffd, 0xfffd, 0xfffd,
3294     0xfffd, 0xfffd, 0xfffd, 0xe36b, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3295     0xfffd, 0x898f, 0xfffd, 0xfffd, 0x93ea, 0xe36e, 0xfffd, 0xfffd,
3296     0xfffd, 0xe375, 0xe36f, 0xe376, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3297     0xfffd, 0xfffd, 0xe372, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3298     0xfffd, 0xfffd, 0xfffd, 0x949b, 0xfffd, 0xfffd, 0x8ec8, 0xe374,
3299     0xfffd, 0xe371, 0xe377, 0xe370, 0xfffd, 0xfffd, 0x8f63, 0xfffd,
3300     0xfffd, 0xfffd, 0xfffd, 0x9644, 0xfffd, 0xfffd, 0x8f6b, 0xfffd,
3301     0xfffd, 0xe373, 0xe380, 0xfffd, 0xfffd, 0xe37b, 0xfffd, 0xe37e,
3302     0xfffd, 0xe37c, 0xe381, 0xe37a, 0xfffd, 0xe360, 0x90d1, 0xfffd,
3303     0xfffd, 0x94c9, 0xfffd, 0xe37d, 0xfffd, 0xfffd, 0xe378, 0xfffd,
3304     0xfffd, 0xfffd, 0x9140, 0x8c71, 0xfffd, 0x8f4a, 0xfffd, 0xfffd,
3305     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9044, 0x9155, 0xe384, 0xfffd,
3306     0xfffd, 0xe386, 0xe387, 0xfffd, 0xfffd, 0xe383, 0xe385, 0xfffd,
3307     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe379, 0xe382,
3308     0xfffd, 0xe38a, 0xe389, 0xfffd, 0xfffd, 0x969a, 0xfffd, 0xfffd,
3309     0x8c4a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3310     0xfffd, 0xe388, 0xfffd, 0xe38c, 0xe38b, 0xe38f, 0xfffd, 0xe391,
3311     0xfffd, 0xfffd, 0x8e5b, 0xe38d, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3312     0xe392, 0xe393, 0xfffd, 0xfffd, 0xe394, 0xfffd, 0xe39a, 0x935a,
3313     0xe396, 0xfffd, 0xe395, 0xe397, 0xe398, 0xfffd, 0xe399, 0xfffd,
3314     0xfffd, 0xfffd, 0xfffd, 0xe39b, 0xe39c, 0xfffd, 0xfffd, 0xfffd,
3315     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3316     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3317     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3318     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3319     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3320     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3321     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3322     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3323     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3324     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3325     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3326     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3327     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3328     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3329     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3330     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3331     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3332     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3333     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8aca, 0xfffd,
3334     0xe39d, 0xfffd, 0xe39e, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3335     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe39f, 0xfffd, 0xfffd,
3336     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe3a0, 0xe3a1, 0xe3a2, 0xfffd,
3337     0xe3a3, 0xe3a4, 0xfffd, 0xfffd, 0xe3a6, 0xe3a5, 0xfffd, 0xfffd,
3338     0xe3a7, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe3a8,
3339     0xe3a9, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe3ac,
3340     0xe3aa, 0xe3ab, 0x8ddf, 0x8c72, 0xfffd, 0xfffd, 0x9275, 0xfffd,
3341     0x94b1, 0xfffd, 0x8f90, 0xfffd, 0xfffd, 0x946c, 0xfffd, 0x94eb,
3342     0xe3ad, 0x9ceb, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3343     0xfffd, 0xfffd, 0xe3ae, 0xe3b0, 0xfffd, 0x9785, 0xe3af, 0xe3b2,
3344     0xe3b1, 0xfffd, 0x9772, 0xfffd, 0xe3b3, 0xfffd, 0x94fc, 0xfffd,
3345     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe3b4, 0xfffd, 0xfffd, 0xfffd,
3346     0xfffd, 0xfffd, 0xe3b7, 0xfffd, 0xfffd, 0xe3b6, 0xe3b5, 0xfffd,
3347     0xfffd, 0xfffd, 0xfffd, 0xe3b8, 0x8c51, 0xfffd, 0xfffd, 0xfffd,
3348     0x9141, 0x8b60, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe3bc, 0xe3b9,
3349     0xfffd, 0xfffd, 0xe3ba, 0xfffd, 0xfffd, 0xfffd, 0xe3bd, 0xfffd,
3350     0xe3be, 0xe3bb, 0xfffd, 0xfffd, 0xfffd, 0x8948, 0xfffd, 0xfffd,
3351     0xfffd, 0x89a5, 0xfffd, 0xfffd, 0xfffd, 0xe3c0, 0xe3c1, 0xfffd,
3352     0xfffd, 0xfffd, 0xe3c2, 0xfffd, 0x9782, 0xfffd, 0xfffd, 0xfffd,
3353     0xfffd, 0xfffd, 0x8f4b, 0xfffd, 0xe3c4, 0xe3c3, 0xfffd, 0xfffd,
3354     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3355     0x9089, 0xe3c5, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe3c6, 0xfffd,
3356     0xfffd, 0xe3c7, 0xfffd, 0x8ae3, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3357     0x8acb, 0xfffd, 0xfffd, 0xe3c8, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3358     0xfffd, 0xe3c9, 0xfffd, 0x967c, 0x9783, 0xfffd, 0xfffd, 0xfffd,
3359     0x9773, 0x9856, 0xfffd, 0x8d6c, 0xe3cc, 0x8ed2, 0xe3cb, 0xfffd,
3360     0xfffd, 0xfffd, 0xfffd, 0xe3cd, 0x8ea7, 0xfffd, 0xfffd, 0xfffd,
3361     0x91cf, 0xfffd, 0xe3ce, 0xfffd, 0xfffd, 0x8d6b, 0xfffd, 0x96d5,
3362     0xe3cf, 0xe3d0, 0xfffd, 0xfffd, 0xe3d1, 0xfffd, 0xfffd, 0xfffd,
3363     0xfffd, 0xe3d2, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3364     0xe3d3, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3365     0xfffd, 0xfffd, 0xfffd, 0x8ea8, 0xfffd, 0xfffd, 0x96eb, 0xfffd,
3366     0xfffd, 0xfffd, 0xfffd, 0xe3d5, 0xfffd, 0x925e, 0xfffd, 0xe3d4,
3367     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe3d7, 0xfffd,
3368     0xfffd, 0xfffd, 0xe3d6, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3369     0xfffd, 0xfffd, 0xe3d8, 0xfffd, 0xfffd, 0xfffd, 0x90b9, 0xfffd,
3370     0xe3d9, 0xfffd, 0xe3da, 0xfffd, 0xfffd, 0xfffd, 0x95b7, 0xe3db,
3371     0xfffd, 0x918f, 0xe3dc, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3372     0xe3dd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x97fc,
3373     0xe3e0, 0xfffd, 0xe3df, 0xe3de, 0x92ae, 0xfffd, 0xe3e1, 0x9045,
3374     0xfffd, 0xe3e2, 0xfffd, 0xfffd, 0xfffd, 0xe3e3, 0x9857, 0xe3e4,
3375     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe3e5, 0xe3e7, 0xe3e6, 0x94a3,
3376     0xfffd, 0x93f7, 0xfffd, 0x985d, 0x94a7, 0xfffd, 0xfffd, 0xfffd,
3377     0xfffd, 0xfffd, 0xfffd, 0xe3e9, 0xfffd, 0xfffd, 0x8fd1, 0xfffd,
3378     0x9549, 0xfffd, 0xe3ea, 0xe3e8, 0xfffd, 0x8acc, 0xfffd, 0xfffd,
3379     0xfffd, 0x8cd2, 0x8e88, 0xfffd, 0xfffd, 0x94ec, 0xfffd, 0xfffd,
3380     0xfffd, 0x8ca8, 0x9662, 0xfffd, 0xe3ed, 0xe3eb, 0xfffd, 0x8d6d,
3381     0xfffd, 0x8d6e, 0x88e7, 0xfffd, 0x8de6, 0xfffd, 0xfffd, 0xfffd,
3382     0xfffd, 0xfffd, 0x9478, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3383     0xfffd, 0xfffd, 0xfffd, 0x88dd, 0xe3f2, 0xfffd, 0x925f, 0xfffd,
3384     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9477, 0xfffd, 0x91d9, 0xfffd,
3385     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe3f4, 0xfffd,
3386     0xfffd, 0xe3f0, 0xe3f3, 0xe3ee, 0xfffd, 0xe3f1, 0x9645, 0xfffd,
3387     0xfffd, 0x8cd3, 0xfffd, 0xfffd, 0x88fb, 0xe3ef, 0xfffd, 0xfffd,
3388     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe3f6,
3389     0xfffd, 0xe3f7, 0xfffd, 0xfffd, 0x93b7, 0xfffd, 0xfffd, 0xfffd,
3390     0x8bb9, 0xfffd, 0xfffd, 0xfffd, 0xe445, 0x945c, 0xfffd, 0xfffd,
3391     0xfffd, 0xfffd, 0x8e89, 0xfffd, 0xfffd, 0x8bba, 0x90c6, 0x9865,
3392     0x96ac, 0xe3f5, 0x90d2, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3393     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3394     0xfffd, 0xfffd, 0x8b72, 0xe3f8, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3395     0xfffd, 0xfffd, 0xfffd, 0xe3fa, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3396     0xfffd, 0xe3f9, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe3fb,
3397     0xfffd, 0x9245, 0xfffd, 0x945d, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3398     0xfffd, 0x92af, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe442, 0xfffd,
3399     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe441, 0xfffd,
3400     0xfffd, 0xfffd, 0xfffd, 0xe3fc, 0xfffd, 0xfffd, 0x9074, 0xfffd,
3401     0x9585, 0xe444, 0xfffd, 0xe443, 0x8d6f, 0x9872, 0xfffd, 0xfffd,
3402     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe454,
3403     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe448, 0xe449, 0xfffd,
3404     0xfffd, 0xfffd, 0xfffd, 0x8eee, 0xfffd, 0xfffd, 0xe447, 0xfffd,
3405     0x8d98, 0xe446, 0xfffd, 0xfffd, 0xe44a, 0xfffd, 0xfffd, 0xfffd,
3406     0x92b0, 0x95a0, 0x9142, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x91da,
3407     0xe44e, 0xfffd, 0xe44f, 0xe44b, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3408     0xe44c, 0xfffd, 0xe44d, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8d70,
3409     0xfffd, 0xfffd, 0xfffd, 0xe455, 0xfffd, 0xe451, 0xfffd, 0xfffd,
3410     0xfffd, 0xfffd, 0x9586, 0xfffd, 0x968c, 0x9547, 0xfffd, 0xfffd,
3411     0xe450, 0xfffd, 0xfffd, 0xe453, 0xe452, 0xfffd, 0xfffd, 0xfffd,
3412     0x9663, 0xe456, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3413     0xe457, 0xfffd, 0xfffd, 0x9156, 0xfffd, 0xe458, 0xfffd, 0xfffd,
3414     0xe45a, 0xfffd, 0xe45e, 0xfffd, 0xfffd, 0xe45b, 0xe459, 0x945e,
3415     0xe45c, 0xfffd, 0xe45d, 0xfffd, 0xfffd, 0xfffd, 0x89b0, 0xfffd,
3416     0xe464, 0xe45f, 0xfffd, 0xfffd, 0xfffd, 0xe460, 0xfffd, 0xfffd,
3417     0xfffd, 0xe461, 0xfffd, 0x919f, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3418     0xe463, 0xe462, 0xe465, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe466,
3419     0xe467, 0xfffd, 0xfffd, 0x9062, 0xfffd, 0x89e7, 0xfffd, 0xe468,
3420     0x97d5, 0xfffd, 0x8ea9, 0xfffd, 0xfffd, 0x8f4c, 0xfffd, 0xfffd,
3421     0xfffd, 0xfffd, 0xfffd, 0x8e8a, 0x9276, 0xfffd, 0xfffd, 0xfffd,
3422     0xfffd, 0xfffd, 0xe469, 0xe46a, 0x8950, 0xfffd, 0xe46b, 0xfffd,
3423     0xfffd, 0xe46c, 0xe46d, 0xfffd, 0xfffd, 0xe46e, 0xfffd, 0xe46f,
3424     0x8bbb, 0x9da8, 0xe470, 0xfffd, 0x90e3, 0xe471, 0x8ec9, 0xfffd,
3425     0xe472, 0xfffd, 0x98ae, 0xfffd, 0xfffd, 0xfffd, 0xe473, 0x95dc,
3426     0x8ada, 0xfffd, 0xfffd, 0x9143, 0x8f77, 0xfffd, 0x9591, 0x8f4d,
3427     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3428     0xfffd, 0xe474, 0x8d71, 0xe475, 0x94ca, 0xfffd, 0xe484, 0xfffd,
3429     0xfffd, 0xfffd, 0xfffd, 0xe477, 0xfffd, 0x91c7, 0x9495, 0x8cbd,
3430     0xe476, 0x9144, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3431     0xe478, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x92f8,
3432     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3433     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3434     0xe47a, 0xe479, 0xe47c, 0xfffd, 0xfffd, 0xe47b, 0xfffd, 0xe47d,
3435     0xfffd, 0xfffd, 0xe480, 0xfffd, 0xe47e, 0xfffd, 0x8acd, 0xfffd,
3436     0xe481, 0xfffd, 0xe482, 0xe483, 0xfffd, 0xfffd, 0x8daf, 0x97c7,
3437     0xfffd, 0xe485, 0x9046, 0xfffd, 0xfffd, 0xfffd, 0x8990, 0xe486,
3438     0xe487, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe488, 0xfffd,
3439     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3440     0xfffd, 0xfffd, 0xfffd, 0x88f0, 0xfffd, 0xe489, 0xfffd, 0xfffd,
3441     0xfffd, 0xfffd, 0xe48a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3442     0xfffd, 0x9587, 0xfffd, 0xfffd, 0xfffd, 0x8ec5, 0xfffd, 0xe48c,
3443     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8a48, 0x88b0, 0xfffd,
3444     0xfffd, 0xfffd, 0xfffd, 0xe48b, 0xe48e, 0x946d, 0xfffd, 0x9063,
3445     0xfffd, 0x89d4, 0xfffd, 0x9646, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3446     0x8c7c, 0x8bda, 0xfffd, 0xe48d, 0xfffd, 0x89e8, 0xfffd, 0xfffd,
3447     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8aa1, 0xfffd, 0xfffd,
3448     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3449     0xfffd, 0x8991, 0xe492, 0x97e8, 0x91db, 0xfffd, 0xfffd, 0x9563,
3450     0xfffd, 0xe49e, 0xfffd, 0x89d5, 0xe49c, 0xfffd, 0xe49a, 0xe491,
3451     0xfffd, 0xe48f, 0xfffd, 0xe490, 0xfffd, 0x8ee1, 0x8bea, 0x9297,
3452     0xfffd, 0xfffd, 0xfffd, 0x93cf, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3453     0xfffd, 0x8970, 0xfffd, 0xe494, 0xe493, 0xfffd, 0xfffd, 0xfffd,
3454     0xfffd, 0xe499, 0xe495, 0xe498, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3455     0xfffd, 0xfffd, 0x96ce, 0xe497, 0x89d6, 0x8a9d, 0xe49b, 0xfffd,
3456     0xfffd, 0xe49d, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8c73, 0xfffd,
3457     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe4a1, 0xe4aa,
3458     0xe4ab, 0xfffd, 0xfffd, 0xfffd, 0x88a9, 0xfffd, 0xfffd, 0xfffd,
3459     0xfffd, 0xfffd, 0xfffd, 0xe4b2, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3460     0x88ef, 0xfffd, 0xfffd, 0xe4a9, 0xfffd, 0xfffd, 0xfffd, 0xe4a8,
3461     0xfffd, 0xe4a3, 0xe4a2, 0xfffd, 0xe4a0, 0xe49f, 0x9283, 0xfffd,
3462     0x91f9, 0xe4a5, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3463     0xe4a4, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe4a7, 0xfffd, 0xfffd,
3464     0xfffd, 0x9190, 0x8c74, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8960,
3465     0xe4a6, 0xfffd, 0x8d72, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3466     0x9191, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3467     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3468     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3469     0xfffd, 0xfffd, 0xfffd, 0xe4b8, 0xfffd, 0xe4b9, 0xfffd, 0x89d7,
3470     0xfffd, 0xfffd, 0xfffd, 0x89ac, 0xe4b6, 0xfffd, 0xfffd, 0xfffd,
3471     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe4ac, 0xfffd, 0xe4b4,
3472     0xfffd, 0xe4bb, 0xe4b5, 0xfffd, 0xfffd, 0xfffd, 0xe4b3, 0xfffd,
3473     0xfffd, 0xfffd, 0xfffd, 0xe496, 0xfffd, 0xfffd, 0xe4b1, 0xfffd,
3474     0xfffd, 0xfffd, 0xe4ad, 0xfffd, 0xfffd, 0xfffd, 0x8ace, 0xe4af,
3475     0xe4ba, 0xfffd, 0xe4b0, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3476     0xe4bc, 0xfffd, 0xe4ae, 0x949c, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3477     0xfffd, 0x9789, 0xfffd, 0xfffd, 0xfffd, 0xe4b7, 0xfffd, 0xfffd,
3478     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe4cd, 0xfffd, 0xfffd,
3479     0xfffd, 0xe4c5, 0xfffd, 0xfffd, 0xfffd, 0x909b, 0xfffd, 0xfffd,
3480     0xfffd, 0xfffd, 0x8b65, 0xfffd, 0x8bdb, 0xfffd, 0xe4c0, 0xfffd,
3481     0xfffd, 0xfffd, 0xfffd, 0x89d9, 0xfffd, 0xfffd, 0x8fd2, 0xfffd,
3482     0xe4c3, 0xfffd, 0xfffd, 0xfffd, 0x8dd8, 0xfffd, 0xfffd, 0x9370,
3483     0xe4c8, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3484     0xfffd, 0x95ec, 0xfffd, 0xe4bf, 0xfffd, 0xfffd, 0xfffd, 0x89d8,
3485     0x8cd4, 0x9548, 0xe4c9, 0xfffd, 0xe4bd, 0xfffd, 0xfffd, 0xe4c6,
3486     0xfffd, 0xfffd, 0xfffd, 0xe4d0, 0xfffd, 0xe4c1, 0xfffd, 0xfffd,
3487     0xfffd, 0xfffd, 0xfffd, 0xe4c2, 0x93b8, 0xfffd, 0xfffd, 0xe4c7,
3488     0xfffd, 0xfffd, 0xfffd, 0xe4c4, 0x9647, 0xe4ca, 0x88de, 0xfffd,
3489     0xfffd, 0xfffd, 0xfffd, 0xe4be, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3490     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3491     0xe4cc, 0xfffd, 0xe4cb, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3492     0xfffd, 0x948b, 0xe4d2, 0xfffd, 0xe4dd, 0xfffd, 0xfffd, 0xfffd,
3493     0xfffd, 0x8a9e, 0xfffd, 0xfffd, 0xfffd, 0xe4e0, 0xfffd, 0xfffd,
3494     0xe4ce, 0xfffd, 0xfffd, 0xfffd, 0xe4d3, 0x978e, 0xfffd, 0xfffd,
3495     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe4dc, 0xfffd,
3496     0xfffd, 0x9774, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x97a8, 0xfffd,
3497     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9298,
3498     0xfffd, 0xfffd, 0xfffd, 0x8a8b, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3499     0xfffd, 0x9592, 0xe4e2, 0x939f, 0xfffd, 0xfffd, 0x88af, 0xfffd,
3500     0xfffd, 0xe4db, 0xfffd, 0xe4d7, 0x9192, 0xe4d1, 0xe4d9, 0xe4de,
3501     0xfffd, 0x944b, 0xfffd, 0xfffd, 0xfffd, 0x88a8, 0xfffd, 0xe4d6,
3502     0xfffd, 0xe4df, 0x9598, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3503     0xfffd, 0xfffd, 0xe4da, 0xfffd, 0xe4d5, 0xfffd, 0xfffd, 0xfffd,
3504     0xfffd, 0xfffd, 0xfffd, 0x8fd3, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3505     0x8f4e, 0xfffd, 0xfffd, 0xfffd, 0x8eaa, 0xfffd, 0xfffd, 0xfffd,
3506     0xfffd, 0x96d6, 0xfffd, 0xfffd, 0x9566, 0xfffd, 0xfffd, 0xe4e5,
3507     0xfffd, 0xe4ee, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3508     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe4d8, 0xfffd, 0xfffd,
3509     0xfffd, 0xfffd, 0x8a97, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3510     0x8ff6, 0xe4e3, 0xfffd, 0xe4e8, 0x9193, 0xfffd, 0xfffd, 0xe4e4,
3511     0xfffd, 0xe4eb, 0xfffd, 0xfffd, 0x927e, 0xfffd, 0xe4ec, 0xfffd,
3512     0xfffd, 0x9775, 0xe4e1, 0x8a57, 0xfffd, 0xe4e7, 0xfffd, 0xfffd,
3513     0xe4ea, 0x96aa, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe4ed, 0xfffd,
3514     0xfffd, 0xe4e6, 0xe4e9, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3515     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3516     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9648, 0xfffd, 0x9840, 0xfffd,
3517     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe4f1, 0xfffd, 0xfffd, 0xfffd,
3518     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe4f8, 0xfffd, 0xfffd, 0xe4f0,
3519     0x8ec1, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe4cf, 0xfffd,
3520     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3521     0xfffd, 0x95cc, 0xfffd, 0x96a0, 0xe4f7, 0xe4f6, 0xfffd, 0xe4f2,
3522     0xe4f3, 0xfffd, 0x8955, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe4f5,
3523     0xfffd, 0xe4ef, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x92d3, 0xfffd,
3524     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe4f4, 0x88fc, 0xfffd, 0xfffd,
3525     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x91a0, 0xfffd, 0xfffd,
3526     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x95c1, 0xfffd, 0xfffd,
3527     0xe4f9, 0xe540, 0xfffd, 0x94d7, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3528     0xe4fc, 0x8fd4, 0x8ec7, 0xe542, 0xfffd, 0xfffd, 0x8bbc, 0xfffd,
3529     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe543, 0xfffd, 0x9599,
3530     0xe4fb, 0xfffd, 0xe4d4, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3531     0xfffd, 0xfffd, 0xfffd, 0xe4fa, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3532     0x986e, 0x93a0, 0x9593, 0xfffd, 0xfffd, 0xe54a, 0xfffd, 0xfffd,
3533     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe550,
3534     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe551, 0xfffd,
3535     0xe544, 0xfffd, 0xfffd, 0xfffd, 0x9496, 0xfffd, 0xfffd, 0xe54e,
3536     0xe546, 0xfffd, 0xe548, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3537     0xe552, 0xe547, 0xfffd, 0xfffd, 0xe54b, 0xfffd, 0xfffd, 0x8992,
3538     0xfffd, 0x93e3, 0xfffd, 0xe54c, 0xe54f, 0xfffd, 0xfffd, 0xfffd,
3539     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe545, 0xfffd, 0x9145, 0xfffd,
3540     0xe549, 0x8e46, 0x9064, 0x8c4f, 0x96f2, 0xfffd, 0x96f7, 0x8f92,
3541     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3542     0xfffd, 0xe556, 0xe554, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3543     0xfffd, 0x986d, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3544     0xfffd, 0xe553, 0xfffd, 0xfffd, 0xfffd, 0x9795, 0xfffd, 0xe555,
3545     0xe557, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe558, 0xfffd, 0xfffd,
3546     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe55b, 0xe559, 0xfffd, 0xfffd,
3547     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x93a1, 0xe55a, 0xfffd, 0xfffd,
3548     0xfffd, 0x94cb, 0xe54d, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3549     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8f93,
3550     0xfffd, 0xe55c, 0xe561, 0x9194, 0xfffd, 0xfffd, 0xe560, 0xfffd,
3551     0xfffd, 0xfffd, 0xe541, 0xfffd, 0xfffd, 0xfffd, 0xe562, 0x9168,
3552     0xfffd, 0xfffd, 0xe55d, 0xe55f, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3553     0xfffd, 0xfffd, 0xfffd, 0xe55e, 0xfffd, 0xfffd, 0x9f50, 0x9f41,
3554     0xfffd, 0xfffd, 0xe564, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3555     0xfffd, 0xfffd, 0xe563, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3556     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9796, 0xfffd, 0xe1ba,
3557     0xe565, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3558     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe566,
3559     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3560     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe567, 0x8cd5, 0xfffd,
3561     0x8b73, 0xfffd, 0xfffd, 0xfffd, 0xe569, 0x997c, 0xfffd, 0xfffd,
3562     0xfffd, 0xfffd, 0x8b95, 0xfffd, 0x97b8, 0xfffd, 0x8bf1, 0xe56a,
3563     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe56b,
3564     0xfffd, 0xfffd, 0xfffd, 0x928e, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3565     0xfffd, 0xe56c, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3566     0xfffd, 0x93f8, 0xfffd, 0x88b8, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3567     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3568     0xfffd, 0xfffd, 0x89e1, 0xe571, 0xe572, 0xfffd, 0xfffd, 0xfffd,
3569     0xfffd, 0xfffd, 0xfffd, 0xe56d, 0xfffd, 0x8e5c, 0xfffd, 0xfffd,
3570     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3571     0xfffd, 0xfffd, 0xfffd, 0xe56e, 0x9461, 0xfffd, 0xfffd, 0xfffd,
3572     0xfffd, 0xe56f, 0xe570, 0xe57a, 0xfffd, 0xfffd, 0xfffd, 0xe574,
3573     0xe577, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe573, 0xfffd,
3574     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3575     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe575, 0xfffd, 0xe576, 0x8ed6,
3576     0xfffd, 0xe578, 0xfffd, 0x9260, 0xfffd, 0x8c75, 0x8a61, 0xfffd,
3577     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe57b, 0xfffd, 0xfffd, 0xfffd,
3578     0xfffd, 0x8a5e, 0xfffd, 0xe581, 0xfffd, 0xfffd, 0xe57c, 0xe580,
3579     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x94b8, 0xfffd, 0xfffd, 0xfffd,
3580     0xfffd, 0xe57d, 0xfffd, 0xfffd, 0xe57e, 0x9567, 0x94d8, 0xe582,
3581     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3582     0x91fb, 0xe58c, 0xfffd, 0xe588, 0xfffd, 0xfffd, 0x89e9, 0xfffd,
3583     0xe586, 0xfffd, 0x9649, 0xe587, 0xfffd, 0xfffd, 0xe584, 0xfffd,
3584     0xe585, 0xe58a, 0xe58d, 0xfffd, 0xfffd, 0xe58b, 0xfffd, 0xfffd,
3585     0xfffd, 0xe589, 0xe583, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3586     0x9277, 0xfffd, 0xe594, 0xfffd, 0x96a8, 0xfffd, 0xfffd, 0xfffd,
3587     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe592, 0xfffd, 0xfffd,
3588     0xfffd, 0xe593, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3589     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe58e, 0xfffd, 0xfffd, 0xe590,
3590     0xfffd, 0xfffd, 0xfffd, 0xe591, 0xfffd, 0xfffd, 0xfffd, 0xe58f,
3591     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3592     0xfffd, 0x90e4, 0xfffd, 0x9858, 0xe598, 0xfffd, 0xe599, 0xfffd,
3593     0xfffd, 0xfffd, 0xfffd, 0xe59f, 0xfffd, 0x9049, 0xfffd, 0xe59b,
3594     0xfffd, 0xe59e, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe596,
3595     0xe595, 0xfffd, 0xfffd, 0xe5a0, 0xfffd, 0xfffd, 0x89da, 0xfffd,
3596     0xe59c, 0xfffd, 0xe5a1, 0xfffd, 0xfffd, 0xfffd, 0xe59d, 0xfffd,
3597     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe59a, 0xfffd, 0x92b1, 0xfffd,
3598     0xe597, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9488,
3599     0xfffd, 0xfffd, 0xe5a5, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3600     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x975a, 0xfffd, 0xfffd,
3601     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3602     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe5a4,
3603     0xfffd, 0xfffd, 0xe5a3, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3604     0xfffd, 0xfffd, 0xfffd, 0xe5ac, 0xfffd, 0xfffd, 0xfffd, 0xe5a6,
3605     0xfffd, 0xfffd, 0xfffd, 0xe5ae, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3606     0xfffd, 0xfffd, 0x9786, 0xe5b1, 0xfffd, 0xe5a8, 0xfffd, 0xfffd,
3607     0xe5a9, 0xfffd, 0xfffd, 0xfffd, 0xe5ad, 0xfffd, 0xe5b0, 0xe5af,
3608     0xfffd, 0xfffd, 0xfffd, 0xe5a7, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3609     0xe5aa, 0xfffd, 0xe5bb, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3610     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3611     0xe5b4, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3612     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe5b2,
3613     0xfffd, 0xfffd, 0xe5b3, 0xfffd, 0xfffd, 0xfffd, 0xe5b8, 0xe5b9,
3614     0xfffd, 0x8a49, 0xfffd, 0x8b61, 0xfffd, 0xfffd, 0xe5b7, 0xfffd,
3615     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe5a2, 0xfffd, 0xfffd,
3616     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe5b6, 0xe5ba, 0xe5b5,
3617     0xfffd, 0xe5bc, 0xfffd, 0xfffd, 0xfffd, 0xe5be, 0xe5bd, 0xfffd,
3618     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3619     0xfffd, 0xe5c0, 0xe5bf, 0xe579, 0xfffd, 0xfffd, 0xfffd, 0xe5c4,
3620     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3621     0xfffd, 0xe5c1, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe5c2, 0xfffd,
3622     0xfffd, 0xe5c3, 0xfffd, 0xe5c5, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3623     0x8c8c, 0xfffd, 0xe5c7, 0xfffd, 0xe5c6, 0xfffd, 0x8f4f, 0xfffd,
3624     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8d73, 0x9fa5, 0xfffd, 0xfffd,
3625     0xfffd, 0xfffd, 0xe5c8, 0x8f70, 0xfffd, 0xfffd, 0xfffd, 0x8a58,
3626     0xfffd, 0xe5c9, 0xfffd, 0x8971, 0xfffd, 0x8fd5, 0xe5ca, 0xfffd,
3627     0xfffd, 0x8d74, 0xe5cb, 0x88df, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3628     0x955c, 0xfffd, 0xfffd, 0xe5cc, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3629     0x908a, 0xfffd, 0xe5d3, 0xfffd, 0xfffd, 0xe5d0, 0xfffd, 0x928f,
3630     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe5d1, 0xe5ce, 0x8bdc,
3631     0xfffd, 0xe5cd, 0xe5d4, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3632     0x8c55, 0xfffd, 0xfffd, 0x91dc, 0xfffd, 0xe5da, 0xfffd, 0xfffd,
3633     0xfffd, 0xfffd, 0xe5d6, 0xfffd, 0xfffd, 0xfffd, 0x91b3, 0xe5d5,
3634     0xfffd, 0xe5d8, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe5cf, 0xfffd,
3635     0xfffd, 0xfffd, 0xe5d9, 0xfffd, 0xe5db, 0xfffd, 0xfffd, 0xfffd,
3636     0xfffd, 0xfffd, 0xfffd, 0x94ed, 0xfffd, 0xfffd, 0xe5d7, 0xfffd,
3637     0xe5dc, 0xe5de, 0xfffd, 0xfffd, 0x8cd1, 0xe5d2, 0xfffd, 0x88bf,
3638     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe5dd,
3639     0xfffd, 0x8dd9, 0x97f4, 0xe5df, 0xe5e0, 0x9195, 0xfffd, 0xfffd,
3640     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x97a0,
3641     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe5e1, 0x9754, 0xfffd, 0xfffd,
3642     0xe5e2, 0xe5e3, 0xfffd, 0xfffd, 0x95e2, 0xe5e4, 0xfffd, 0x8dbe,
3643     0xfffd, 0x97a1, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3644     0xe5e9, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3645     0xfffd, 0xfffd, 0xe5ea, 0x8fd6, 0xe5e8, 0xfffd, 0xfffd, 0xfffd,
3646     0x9787, 0xe5e5, 0xfffd, 0xfffd, 0xe5e7, 0x90bb, 0x909e, 0xfffd,
3647     0xfffd, 0xfffd, 0xe5e6, 0xfffd, 0xe5eb, 0xfffd, 0xfffd, 0x95a1,
3648     0xfffd, 0xfffd, 0xe5ed, 0xfffd, 0xe5ec, 0xfffd, 0xfffd, 0xfffd,
3649     0x8a8c, 0xfffd, 0x964a, 0xe5ee, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3650     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe5fa, 0xe5f0, 0xfffd,
3651     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe5f1, 0xfffd, 0xfffd,
3652     0xfffd, 0xfffd, 0xe5f2, 0xe5f3, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3653     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe5f7, 0xfffd,
3654     0xe5f8, 0xfffd, 0xfffd, 0xe5f6, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3655     0xfffd, 0xe5f4, 0xfffd, 0xe5ef, 0xe5f5, 0xfffd, 0xfffd, 0xfffd,
3656     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe5f9, 0xe8b5, 0xfffd, 0xfffd,
3657     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x89a6, 0xfffd,
3658     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe5fc, 0x8bdd,
3659     0xe5fb, 0xfffd, 0xfffd, 0xfffd, 0xe641, 0xfffd, 0xe640, 0xfffd,
3660     0xfffd, 0xfffd, 0xe643, 0xfffd, 0xfffd, 0xe642, 0xfffd, 0xe644,
3661     0xfffd, 0xfffd, 0x8f50, 0xfffd, 0xe645, 0xfffd, 0xfffd, 0xe646,
3662     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe647, 0x90bc,
3663     0xfffd, 0x9776, 0xfffd, 0xe648, 0xfffd, 0xfffd, 0x95a2, 0x9465,
3664     0xe649, 0xfffd, 0xe64a, 0x8ca9, 0xfffd, 0xfffd, 0xfffd, 0x8b4b,
3665     0xfffd, 0xfffd, 0xfffd, 0xe64b, 0xfffd, 0xfffd, 0x8e8b, 0x9460,
3666     0xe64c, 0xfffd, 0x8a6f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3667     0xfffd, 0xe64d, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe64f, 0x9797,
3668     0xfffd, 0xe64e, 0x9065, 0xfffd, 0xe650, 0xfffd, 0xfffd, 0xe651,
3669     0xfffd, 0xfffd, 0xe652, 0x8acf, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3670     0xfffd, 0xfffd, 0xe653, 0xfffd, 0xfffd, 0xe654, 0xfffd, 0xe655,
3671     0xe656, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3672     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3673     0xfffd, 0xfffd, 0x8a70, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3674     0xfffd, 0xfffd, 0xe657, 0xfffd, 0xe658, 0xe659, 0xfffd, 0xfffd,
3675     0xfffd, 0xfffd, 0xfffd, 0x89f0, 0xfffd, 0xfffd, 0x9047, 0xe65a,
3676     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3677     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe65b, 0xfffd, 0xfffd, 0xfffd,
3678     0xe65c, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3679     0x8cbe, 0xfffd, 0x92f9, 0xe65d, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3680     0x8c76, 0xfffd, 0x9075, 0xfffd, 0xe660, 0xfffd, 0x93a2, 0xfffd,
3681     0xe65f, 0xfffd, 0xfffd, 0x8c50, 0xfffd, 0xfffd, 0xe65e, 0x91f5,
3682     0x8b4c, 0xfffd, 0xfffd, 0xe661, 0xfffd, 0xe662, 0xfffd, 0x8fd7,
3683     0xfffd, 0xfffd, 0xfffd, 0x8c8d, 0xfffd, 0xe663, 0xfffd, 0xfffd,
3684     0xfffd, 0xfffd, 0x964b, 0xfffd, 0xfffd, 0x90dd, 0xfffd, 0xfffd,
3685     0xfffd, 0x8b96, 0xfffd, 0x96f3, 0x9169, 0xfffd, 0xe664, 0xfffd,
3686     0xfffd, 0xfffd, 0x9066, 0x9290, 0x8fd8, 0xfffd, 0xfffd, 0xfffd,
3687     0xfffd, 0xe665, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe668, 0xfffd,
3688     0xe669, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3689     0x8dbc, 0x91c0, 0xe667, 0xfffd, 0x8fd9, 0x955d, 0xfffd, 0xfffd,
3690     0xfffd, 0xfffd, 0xfffd, 0xe666, 0xfffd, 0xfffd, 0x8e8c, 0xfffd,
3691     0x8972, 0xfffd, 0xe66d, 0x8c77, 0xfffd, 0xfffd, 0x8e8e, 0xfffd,
3692     0xfffd, 0x8e8d, 0xfffd, 0x986c, 0xe66c, 0xe66b, 0x9146, 0xfffd,
3693     0x8b6c, 0x9862, 0x8a59, 0x8fda, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3694     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe66a, 0xfffd, 0xfffd, 0xfffd,
3695     0xfffd, 0xfffd, 0xe66f, 0xfffd, 0xe670, 0xe66e, 0xfffd, 0x8cd6,
3696     0xfffd, 0x975f, 0xfffd, 0xfffd, 0x8e8f, 0x9446, 0xfffd, 0xfffd,
3697     0xfffd, 0xe673, 0xfffd, 0x90be, 0xfffd, 0x9261, 0xfffd, 0xfffd,
3698     0x9755, 0xfffd, 0xe676, 0xfffd, 0xfffd, 0xfffd, 0x8cea, 0xfffd,
3699     0x90bd, 0xe672, 0xfffd, 0xe677, 0x8ceb, 0xe674, 0xe675, 0xfffd,
3700     0xe671, 0xfffd, 0xfffd, 0xfffd, 0x90e0, 0x93c7, 0xfffd, 0xfffd,
3701     0x924e, 0xfffd, 0x89db, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3702     0xfffd, 0x94ee, 0xfffd, 0xfffd, 0x8b62, 0xfffd, 0xfffd, 0x92b2,
3703     0xfffd, 0xfffd, 0xe67a, 0xfffd, 0xe678, 0xfffd, 0xfffd, 0x926b,
3704     0xfffd, 0xfffd, 0xfffd, 0x90bf, 0x8ad0, 0xe679, 0xfffd, 0x907a,
3705     0xfffd, 0xfffd, 0x97c8, 0xfffd, 0xfffd, 0xfffd, 0x985f, 0xfffd,
3706     0xfffd, 0xfffd, 0xe67b, 0xe687, 0x92b3, 0xfffd, 0xe686, 0xfffd,
3707     0xe683, 0xe68b, 0xe684, 0xfffd, 0xe680, 0xfffd, 0x92fa, 0xe67e,
3708     0xfffd, 0xfffd, 0xfffd, 0xe67c, 0xfffd, 0x9740, 0x8e90, 0xfffd,
3709     0xfffd, 0xe681, 0xfffd, 0xe67d, 0xfffd, 0xfffd, 0xfffd, 0xe685,
3710     0x8f94, 0xfffd, 0x8cbf, 0xfffd, 0xfffd, 0xfffd, 0x91f8, 0xfffd,
3711     0x9664, 0x8979, 0x88e0, 0xfffd, 0x93a3, 0xfffd, 0xfffd, 0xe689,
3712     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe688, 0xfffd, 0x93e4, 0xfffd,
3713     0xe68d, 0xfffd, 0xfffd, 0xfffd, 0xe682, 0xfffd, 0xe68c, 0xe68e,
3714     0xfffd, 0x8caa, 0xe68a, 0x8d75, 0xfffd, 0x8ed3, 0xfffd, 0xfffd,
3715     0xe68f, 0x9777, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe692, 0xfffd,
3716     0xe695, 0xfffd, 0xfffd, 0xe693, 0x9554, 0xfffd, 0xfffd, 0xfffd,
3717     0xfffd, 0xfffd, 0xfffd, 0xe690, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3718     0xfffd, 0x8bde, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe694, 0xfffd,
3719     0xfffd, 0xe696, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3720     0xfffd, 0xe69a, 0xfffd, 0xfffd, 0xe697, 0xfffd, 0xe699, 0xe698,
3721     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe69b, 0xfffd,
3722     0x8eaf, 0xfffd, 0xe69d, 0xe69c, 0x9588, 0xfffd, 0xfffd, 0xe69f,
3723     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8c78, 0xfffd,
3724     0xfffd, 0xfffd, 0xfffd, 0xe69e, 0xe6a0, 0xfffd, 0xfffd, 0xe6a1,
3725     0x8b63, 0xe3bf, 0x8ff7, 0xfffd, 0xe6a2, 0xfffd, 0xfffd, 0x8cec,
3726     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe6a3, 0xfffd, 0xfffd,
3727     0xe6a4, 0xfffd, 0xfffd, 0x8e5d, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3728     0xfffd, 0xfffd, 0x9dcc, 0xfffd, 0xe6a5, 0xfffd, 0xe6a6, 0xfffd,
3729     0x8f51, 0xfffd, 0xe6a7, 0xe6a8, 0xfffd, 0xfffd, 0xe6a9, 0xfffd,
3730     0xfffd, 0xe6aa, 0xe6ab, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3731     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3732     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3733     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3734     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3735     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3736     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3737     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3738     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3739     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3740     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3741     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3742     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3743     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3744     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3745     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3746     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3747     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3748     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3749     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x924a,
3750     0xfffd, 0xfffd, 0xe6ac, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe6ae,
3751     0xfffd, 0xe6ad, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x93a4, 0xfffd,
3752     0xe6af, 0xfffd, 0x964c, 0xfffd, 0xe6b0, 0xfffd, 0xe6b1, 0xfffd,
3753     0xe6b2, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe6b3, 0xfffd, 0xfffd,
3754     0xfffd, 0xfffd, 0x93d8, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3755     0xfffd, 0x8fdb, 0xe6b4, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3756     0xfffd, 0xfffd, 0x8d8b, 0x98ac, 0xe6b5, 0xfffd, 0xfffd, 0xfffd,
3757     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3758     0xe6b6, 0x955e, 0xe6b7, 0xfffd, 0xe6bf, 0xfffd, 0xfffd, 0xfffd,
3759     0xfffd, 0xfffd, 0xe6b8, 0xfffd, 0xfffd, 0xe6ba, 0xfffd, 0xfffd,
3760     0xfffd, 0xe6b9, 0xe6bb, 0xfffd, 0x9665, 0xe6bc, 0xe6bd, 0xfffd,
3761     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe6be, 0xfffd, 0xfffd, 0xfffd,
3762     0xe6c0, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8a4c, 0x92e5, 0xfffd,
3763     0x9589, 0x8de0, 0x8d76, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x956e,
3764     0x89dd, 0x94cc, 0xe6c3, 0x8ad1, 0x90d3, 0xe6c2, 0xe6c7, 0x9299,
3765     0x96e1, 0xfffd, 0xe6c5, 0xe6c6, 0x8b4d, 0xfffd, 0xe6c8, 0x9483,
3766     0x91dd, 0xfffd, 0xfffd, 0x94ef, 0x935c, 0xe6c4, 0xfffd, 0x9666,
3767     0x89ea, 0xe6ca, 0x9847, 0x92c0, 0x9864, 0xfffd, 0xfffd, 0x8e91,
3768     0xe6c9, 0xfffd, 0x91af, 0xfffd, 0xfffd, 0xe6da, 0x9147, 0xfffd,
3769     0xfffd, 0x93f6, 0xfffd, 0x956f, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3770     0xfffd, 0xfffd, 0xe6cd, 0x8e5e, 0x8e92, 0xfffd, 0x8fdc, 0xfffd,
3771     0x9485, 0xfffd, 0x8cab, 0xe6cc, 0xe6cb, 0xfffd, 0x958a, 0xfffd,
3772     0xfffd, 0xfffd, 0x8ebf, 0xfffd, 0xfffd, 0x9371, 0xfffd, 0xfffd,
3773     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3774     0xfffd, 0xfffd, 0xe6cf, 0xe6d0, 0x8d77, 0xe6ce, 0xfffd, 0xfffd,
3775     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe6d1, 0xe6d2, 0xfffd, 0xe6d4,
3776     0x91a1, 0xfffd, 0xe6d3, 0x8ae4, 0xfffd, 0xe6d6, 0xfffd, 0xe6d5,
3777     0xe6d7, 0xfffd, 0xfffd, 0xe6d9, 0xe6db, 0xfffd, 0xe6dc, 0xfffd,
3778     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3779     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3780     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3781     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3782     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3783     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3784     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3785     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3786     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3787     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x90d4, 0xfffd, 0x8ecd, 0xe6dd,
3788     0xfffd, 0xfffd, 0xfffd, 0x8a71, 0xfffd, 0xe6de, 0xfffd, 0xfffd,
3789     0x9196, 0xe6df, 0xfffd, 0xe6e0, 0x958b, 0xfffd, 0xfffd, 0x8b4e,
3790     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3791     0xfffd, 0xe6e1, 0xfffd, 0xfffd, 0xfffd, 0x92b4, 0xfffd, 0xfffd,
3792     0xfffd, 0xfffd, 0x897a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3793     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3794     0xfffd, 0xe6e2, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3795     0xfffd, 0xfffd, 0xfffd, 0x8eef, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3796     0x9096, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3797     0xfffd, 0xfffd, 0xfffd, 0x91ab, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3798     0xfffd, 0xfffd, 0xe6e5, 0xfffd, 0xfffd, 0xfffd, 0xe6e4, 0xfffd,
3799     0xfffd, 0xfffd, 0xe6e3, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3800     0xfffd, 0xfffd, 0xfffd, 0xe6eb, 0xe6e9, 0xfffd, 0xfffd, 0xe6e6,
3801     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe6e8, 0xfffd,
3802     0xfffd, 0xfffd, 0xe6e7, 0xe6ea, 0xfffd, 0x8b97, 0xfffd, 0xe6ee,
3803     0xfffd, 0x90d5, 0xfffd, 0xe6ef, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3804     0x8cd7, 0xfffd, 0xe6ec, 0xe6ed, 0xfffd, 0xfffd, 0xfffd, 0x9848,
3805     0xfffd, 0xfffd, 0xfffd, 0x92b5, 0xfffd, 0x9148, 0xfffd, 0xfffd,
3806     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe6f0, 0xfffd, 0xfffd, 0xe6f3,
3807     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3808     0xe6f1, 0xe6f2, 0x9778, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x93a5,
3809     0xe6f6, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3810     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe6f4, 0xe6f5, 0xe6f7,
3811     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3812     0xfffd, 0xfffd, 0xe748, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3813     0xe6fa, 0xfffd, 0xfffd, 0xfffd, 0xe6fb, 0xe6f9, 0xfffd, 0xfffd,
3814     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3815     0xfffd, 0xfffd, 0xe6f8, 0xfffd, 0x92fb, 0xfffd, 0xfffd, 0xe740,
3816     0xe744, 0xe741, 0xe6fc, 0xfffd, 0xe742, 0xfffd, 0xfffd, 0xfffd,
3817     0xe743, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe74a, 0xfffd, 0xfffd,
3818     0xfffd, 0xe745, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x90d6,
3819     0xe747, 0xfffd, 0xfffd, 0xe749, 0xe746, 0xfffd, 0xfffd, 0xfffd,
3820     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3821     0xfffd, 0xfffd, 0xe74c, 0xfffd, 0x8f52, 0xfffd, 0xe74b, 0xfffd,
3822     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe74d, 0xfffd, 0xfffd, 0xfffd,
3823     0xfffd, 0xe74e, 0xfffd, 0xfffd, 0xe751, 0xe750, 0xfffd, 0xe74f,
3824     0xfffd, 0xfffd, 0xe753, 0xe752, 0xfffd, 0x96f4, 0xfffd, 0xfffd,
3825     0xfffd, 0xe755, 0xfffd, 0xe754, 0xe756, 0xfffd, 0xfffd, 0xfffd,
3826     0xfffd, 0xe757, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3827     0xfffd, 0xe759, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3828     0xfffd, 0xfffd, 0xe758, 0x9067, 0xe75a, 0xfffd, 0xfffd, 0x8beb,
3829     0xe75b, 0xe75d, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3830     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe75e, 0xfffd,
3831     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe75f, 0xe75c, 0xfffd,
3832     0xe760, 0xfffd, 0x8ed4, 0xe761, 0x8b4f, 0x8c52, 0xfffd, 0xfffd,
3833     0xfffd, 0xfffd, 0x8cac, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3834     0xfffd, 0xfffd, 0xfffd, 0xe762, 0xfffd, 0xfffd, 0xfffd, 0x93ee,
3835     0xfffd, 0xfffd, 0x935d, 0xe763, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3836     0xfffd, 0xfffd, 0xfffd, 0xe766, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3837     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3838     0x8eb2, 0xfffd, 0xfffd, 0xe765, 0xe764, 0x8c79, 0xe767, 0xfffd,
3839     0xfffd, 0xfffd, 0xfffd, 0x8a72, 0xfffd, 0xe769, 0xfffd, 0xfffd,
3840     0xfffd, 0x8dda, 0xe768, 0xfffd, 0xe771, 0xfffd, 0xfffd, 0xfffd,
3841     0xfffd, 0xfffd, 0xe76b, 0xe76d, 0x95e3, 0xe76a, 0xfffd, 0xfffd,
3842     0xfffd, 0xe76c, 0xfffd, 0xe770, 0xe76e, 0x8b50, 0xfffd, 0xe76f,
3843     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe772, 0xfffd,
3844     0xfffd, 0x9479, 0x97d6, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8f53,
3845     0xfffd, 0xfffd, 0xfffd, 0xe773, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3846     0x9741, 0xe775, 0xfffd, 0xe774, 0xfffd, 0xfffd, 0xe778, 0x9760,
3847     0xfffd, 0xfffd, 0xe777, 0xfffd, 0x8a8d, 0xe776, 0xe77b, 0xfffd,
3848     0xfffd, 0xe77a, 0xfffd, 0xfffd, 0xe779, 0x9351, 0xe77c, 0xfffd,
3849     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe77d,
3850     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe77e, 0xfffd, 0xfffd, 0x8d8c,
3851     0xfffd, 0x8c44, 0xe780, 0xe781, 0xe782, 0xfffd, 0xfffd, 0xfffd,
3852     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3853     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3854     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3855     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3856     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3857     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3858     0xfffd, 0xfffd, 0xfffd, 0x9068, 0xe783, 0xfffd, 0x8eab, 0xe784,
3859     0xfffd, 0xfffd, 0xfffd, 0xe785, 0xfffd, 0xfffd, 0xfffd, 0x999f,
3860     0x999e, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe786, 0xe390, 0xe787,
3861     0x9243, 0x904a, 0x945f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe788,
3862     0xfffd, 0xfffd, 0x95d3, 0x92d2, 0x8d9e, 0xfffd, 0xfffd, 0x9248,
3863     0xfffd, 0xfffd, 0x8949, 0xfffd, 0x9698, 0x9076, 0xfffd, 0xfffd,
3864     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8c7d, 0xfffd,
3865     0xfffd, 0x8bdf, 0xfffd, 0xfffd, 0x95d4, 0xfffd, 0xfffd, 0xfffd,
3866     0xfffd, 0xfffd, 0xe789, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3867     0xfffd, 0xfffd, 0xe78b, 0xfffd, 0xfffd, 0xe78a, 0x89de, 0xfffd,
3868     0xfffd, 0x93f4, 0xe78c, 0x9497, 0xfffd, 0x9352, 0xfffd, 0xe78d,
3869     0x8f71, 0xfffd, 0xfffd, 0xfffd, 0xe78f, 0xfffd, 0xfffd, 0x96c0,
3870     0xe79e, 0xe791, 0xe792, 0xfffd, 0xfffd, 0x92c7, 0xfffd, 0xfffd,
3871     0x91de, 0x9197, 0xfffd, 0x93a6, 0xfffd, 0xe790, 0x8b74, 0xfffd,
3872     0xfffd, 0xfffd, 0xfffd, 0xe799, 0xfffd, 0xe796, 0xe7a3, 0x93a7,
3873     0x9280, 0xe793, 0xfffd, 0x92fc, 0x9372, 0xe794, 0xe798, 0x9080,
3874     0xfffd, 0x9487, 0x92ca, 0xfffd, 0xfffd, 0x90c0, 0xe797, 0x91ac,
3875     0x91a2, 0xe795, 0x88a7, 0x9841, 0xfffd, 0xfffd, 0xfffd, 0xe79a,
3876     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x91df, 0xfffd,
3877     0xfffd, 0x8f54, 0x9069, 0xfffd, 0xfffd, 0xe79c, 0xe79b, 0xfffd,
3878     0x88ed, 0xe79d, 0xfffd, 0xfffd, 0x954e, 0xfffd, 0xe7a5, 0xfffd,
3879     0xfffd, 0x93d9, 0x908b, 0xfffd, 0xfffd, 0x9278, 0xfffd, 0x8bf6,
3880     0xfffd, 0xe7a4, 0x9756, 0x895e, 0xfffd, 0x95d5, 0x89df, 0xe79f,
3881     0xe7a0, 0xe7a1, 0xe7a2, 0x93b9, 0x9242, 0x88e1, 0xe7a6, 0xfffd,
3882     0xe7a7, 0xeaa1, 0xfffd, 0xfffd, 0x91bb, 0xfffd, 0xe7a8, 0xfffd,
3883     0x8993, 0x916b, 0xfffd, 0x8cad, 0xfffd, 0x9779, 0xfffd, 0xfffd,
3884     0xe7a9, 0x934b, 0xfffd, 0xfffd, 0xfffd, 0x9198, 0x8ed5, 0xe7aa,
3885     0xfffd, 0xfffd, 0xe7ad, 0xfffd, 0xfffd, 0x8f85, 0xe7ab, 0x914a,
3886     0x9149, 0xfffd, 0x88e2, 0xfffd, 0x97c9, 0xe7af, 0xfffd, 0x94f0,
3887     0xe7b1, 0xe7b0, 0xe7ae, 0xe284, 0x8ad2, 0xfffd, 0xfffd, 0xe78e,
3888     0xfffd, 0xe7b3, 0xe7b2, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe7b4,
3889     0xfffd, 0x9757, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3890     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3891     0xfffd, 0xfffd, 0xfffd, 0x93df, 0xfffd, 0xfffd, 0x964d, 0xfffd,
3892     0xe7b5, 0xfffd, 0x8ed7, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe7b6,
3893     0xfffd, 0xe7b7, 0xfffd, 0xfffd, 0xfffd, 0xe7b8, 0xfffd, 0xfffd,
3894     0x9340, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3895     0xfffd, 0x88e8, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3896     0xfffd, 0xfffd, 0x8d78, 0xfffd, 0xfffd, 0xfffd, 0x9859, 0xfffd,
3897     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3898     0xfffd, 0xfffd, 0xfffd, 0xe7bc, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3899     0xfffd, 0x8c53, 0xe7b9, 0xfffd, 0xe7ba, 0xfffd, 0xfffd, 0xfffd,
3900     0x9594, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8a73, 0xfffd, 0xfffd,
3901     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9758, 0xfffd, 0x8bbd,
3902     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9373, 0xfffd, 0xfffd,
3903     0xfffd, 0xfffd, 0xe7bd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3904     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3905     0xfffd, 0xfffd, 0xe7be, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3906     0xfffd, 0xe7bf, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3907     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3908     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9341, 0xfffd, 0xfffd,
3909     0xe7c1, 0xfffd, 0xe7c0, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3910     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3911     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3912     0xfffd, 0x93d1, 0xe7c2, 0x8f55, 0x8ede, 0x947a, 0x9291, 0xfffd,
3913     0xfffd, 0xfffd, 0x8ef0, 0xfffd, 0x908c, 0xfffd, 0xe7c3, 0xfffd,
3914     0xe7c4, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3915     0xfffd, 0xfffd, 0x907c, 0xe7c5, 0xfffd, 0xe7c6, 0xfffd, 0xfffd,
3916     0xfffd, 0xe7c7, 0x978f, 0xfffd, 0x8f56, 0xfffd, 0xfffd, 0xfffd,
3917     0xfffd, 0xfffd, 0xe7c9, 0xe7c8, 0xfffd, 0x8d79, 0xfffd, 0x8d93,
3918     0x8e5f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3919     0xfffd, 0xfffd, 0xe7cc, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8f86,
3920     0xfffd, 0xe7cb, 0xfffd, 0xe7ca, 0xfffd, 0x91e7, 0xfffd, 0xfffd,
3921     0x8ced, 0xfffd, 0x90c1, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x94ae,
3922     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8f58, 0xfffd, 0xfffd, 0xfffd,
3923     0xfffd, 0xfffd, 0xe7cd, 0xfffd, 0x8fdd, 0xfffd, 0xfffd, 0xfffd,
3924     0xfffd, 0xfffd, 0xe7d0, 0xe7ce, 0xfffd, 0xfffd, 0xfffd, 0xe7cf,
3925     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe7d2, 0xe7d1, 0xfffd, 0xfffd,
3926     0x8ff8, 0xfffd, 0xe7d3, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3927     0xe7d4, 0xe7d5, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x94ce, 0x8dd1,
3928     0x8edf, 0xe7d6, 0xfffd, 0xe7d7, 0x97a2, 0x8f64, 0x96ec, 0x97ca,
3929     0xe7d8, 0x8be0, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe7d9, 0xfffd,
3930     0x9342, 0xfffd, 0xfffd, 0xe7dc, 0x8a98, 0x906a, 0xfffd, 0xe7da,
3931     0xfffd, 0xe7db, 0xfffd, 0x92de, 0xfffd, 0xfffd, 0x9674, 0x8bfa,
3932     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3933     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe7de, 0xe7df, 0xfffd,
3934     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe7dd, 0xfffd, 0xfffd, 0xe7e1,
3935     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3936     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x93dd, 0x8a62, 0xfffd,
3937     0xfffd, 0xe7e5, 0xfffd, 0xfffd, 0xe7e2, 0xe7e4, 0xfffd, 0xfffd,
3938     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe7e0, 0xfffd,
3939     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3940     0xfffd, 0xe86e, 0xfffd, 0xfffd, 0xe7e3, 0xfffd, 0xfffd, 0xfffd,
3941     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x97e9, 0xfffd, 0xfffd, 0x8cd8,
3942     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe7ed,
3943     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9353, 0xe7e8, 0xfffd, 0xfffd,
3944     0xe7eb, 0xe7e9, 0xfffd, 0xe7ee, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3945     0xe7ef, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe7e7,
3946     0xfffd, 0xfffd, 0xe7f4, 0x8994, 0xfffd, 0xfffd, 0xe7e6, 0xfffd,
3947     0xfffd, 0xfffd, 0x94ab, 0xfffd, 0xe7ea, 0xfffd, 0x8fde, 0xfffd,
3948     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3949     0xfffd, 0x8d7a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3950     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9667, 0xfffd,
3951     0x8be2, 0xfffd, 0xfffd, 0x8f65, 0xfffd, 0x93ba, 0xfffd, 0xfffd,
3952     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3953     0xfffd, 0x914c, 0xfffd, 0xe7f2, 0xfffd, 0xe7ec, 0xe7f1, 0xfffd,
3954     0x96c1, 0xfffd, 0x92b6, 0xe7f3, 0xe7f0, 0xfffd, 0xfffd, 0xfffd,
3955     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3956     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x914b, 0xfffd, 0xfffd,
3957     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe7f7,
3958     0xfffd, 0xe7f6, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3959     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3960     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe7f5,
3961     0xfffd, 0xfffd, 0x964e, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3962     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3963     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8f9b, 0xfffd, 0xfffd, 0xfffd,
3964     0xfffd, 0xe7f8, 0x95dd, 0xfffd, 0xfffd, 0x8973, 0xfffd, 0xfffd,
3965     0xfffd, 0xfffd, 0x9565, 0x9292, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3966     0x8b98, 0xfffd, 0xe7fa, 0xfffd, 0x8d7c, 0xfffd, 0xfffd, 0xfffd,
3967     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8e4b, 0xfffd,
3968     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe7f9,
3969     0x908d, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3970     0x908e, 0xe840, 0xe842, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3971     0x8ff9, 0xfffd, 0xe841, 0xe843, 0xfffd, 0xfffd, 0x8bd1, 0xfffd,
3972     0x9564, 0xfffd, 0xfffd, 0x8ee0, 0x9842, 0xfffd, 0xe7fc, 0x8df6,
3973     0xfffd, 0xfffd, 0x985e, 0xfffd, 0xfffd, 0xe845, 0xfffd, 0xfffd,
3974     0xfffd, 0xfffd, 0xe844, 0xe846, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3975     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe7fb, 0xfffd, 0xfffd, 0xfffd,
3976     0xfffd, 0xfffd, 0xfffd, 0x93e7, 0xfffd, 0x9374, 0xfffd, 0xfffd,
3977     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x92d5, 0xfffd, 0xe84b, 0xfffd,
3978     0xfffd, 0xfffd, 0xfffd, 0x9262, 0xe847, 0xfffd, 0xfffd, 0xfffd,
3979     0xe848, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3980     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8c4c, 0xfffd, 0xe84a, 0xfffd,
3981     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8cae, 0xfffd, 0xfffd,
3982     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe849, 0xfffd, 0x8fdf, 0xfffd,
3983     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3984     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8a99, 0xfffd, 0xfffd, 0xfffd,
3985     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe84f, 0xfffd, 0x8dbd, 0x9199,
3986     0xfffd, 0xfffd, 0x92c8, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3987     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8a5a,
3988     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe84d, 0xe84e, 0x92c1, 0xfffd,
3989     0xe84c, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3990     0xfffd, 0xe850, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3991     0xfffd, 0xfffd, 0xfffd, 0xe856, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3992     0xe859, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3993     0xe858, 0x934c, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe851, 0xe852,
3994     0xe855, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe857, 0xfffd, 0xfffd,
3995     0xfffd, 0x8bbe, 0xfffd, 0xfffd, 0xe85a, 0xe854, 0xfffd, 0xfffd,
3996     0xe853, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3997     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3998     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
3999     0xfffd, 0xfffd, 0xfffd, 0xe85e, 0xfffd, 0xfffd, 0xfffd, 0xe85f,
4000     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4001     0xe860, 0xfffd, 0xfffd, 0xe85d, 0xe85c, 0xfffd, 0xfffd, 0xfffd,
4002     0x8fe0, 0x93a8, 0xe85b, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4003     0xfffd, 0xe864, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4004     0xfffd, 0xfffd, 0xfffd, 0xe862, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4005     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe863, 0xe861, 0xfffd,
4006     0x91f6, 0xfffd, 0xe865, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4007     0xfffd, 0xe866, 0xfffd, 0xfffd, 0xe868, 0xfffd, 0xfffd, 0xfffd,
4008     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4009     0xfffd, 0x8ad3, 0xe867, 0x96f8, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4010     0xfffd, 0xfffd, 0xe873, 0xe869, 0xfffd, 0xfffd, 0xe86c, 0xfffd,
4011     0xe86a, 0xfffd, 0xe86b, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4012     0xfffd, 0xfffd, 0xe86d, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4013     0xe86f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe870, 0xfffd, 0xe871,
4014     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe874, 0xe872, 0xe875, 0xe877,
4015     0xfffd, 0xe876, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4016     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4017     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4018     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4019     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4020     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4021     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4022     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4023     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4024     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4025     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4026     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4027     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4028     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4029     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4030     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4031     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4032     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4033     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4034     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4035     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4036     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4037     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4038     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4039     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4040     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4041     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4042     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4043     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4044     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4045     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x92b7,
4046     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4047     0x96e5, 0xfffd, 0xe878, 0x914d, 0xfffd, 0xfffd, 0xfffd, 0xe879,
4048     0xfffd, 0x95c2, 0xe87a, 0x8a4a, 0xfffd, 0xfffd, 0xfffd, 0x895b,
4049     0xfffd, 0x8ad5, 0xfffd, 0x8ad4, 0xe87b, 0xfffd, 0xe87c, 0xfffd,
4050     0xe87d, 0xe87e, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4051     0xe880, 0xfffd, 0x8ad6, 0x8a74, 0x8d7d, 0x94b4, 0xfffd, 0xe882,
4052     0xe881, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe883, 0xfffd, 0xfffd,
4053     0xfffd, 0xfffd, 0x897b, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4054     0xfffd, 0xe886, 0xfffd, 0xe885, 0xe884, 0xfffd, 0xe887, 0xfffd,
4055     0xfffd, 0xfffd, 0xfffd, 0xe88a, 0xfffd, 0xfffd, 0xfffd, 0x88c5,
4056     0xfffd, 0xfffd, 0xe888, 0xfffd, 0xe88c, 0xe88b, 0xfffd, 0xfffd,
4057     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe88e, 0xe88d, 0xe88f, 0xfffd,
4058     0x93ac, 0xfffd, 0xfffd, 0xfffd, 0xe890, 0xfffd, 0xfffd, 0xfffd,
4059     0xfffd, 0xe891, 0xe893, 0xfffd, 0xfffd, 0xe892, 0xfffd, 0xfffd,
4060     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4061     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4062     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4063     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4064     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4065     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4066     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x958c, 0xfffd, 0xfffd, 0xfffd,
4067     0xfffd, 0xe894, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4068     0xe895, 0xfffd, 0x8de3, 0xfffd, 0xfffd, 0xfffd, 0xe896, 0xe897,
4069     0xfffd, 0xfffd, 0x9668, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4070     0xfffd, 0xfffd, 0xfffd, 0x916a, 0xfffd, 0xfffd, 0xfffd, 0x88a2,
4071     0x91c9, 0xfffd, 0xe898, 0xfffd, 0x958d, 0xfffd, 0xfffd, 0xfffd,
4072     0xfffd, 0xfffd, 0xfffd, 0xe89b, 0xe899, 0x8d7e, 0xfffd, 0xe89a,
4073     0x8cc0, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4074     0xfffd, 0xfffd, 0xfffd, 0x95c3, 0xe89d, 0xe89f, 0xe89e, 0xe8a0,
4075     0xfffd, 0xfffd, 0x8940, 0x9077, 0x8f9c, 0x8ad7, 0xe8a1, 0xfffd,
4076     0xfffd, 0xfffd, 0x9486, 0xfffd, 0xe8a3, 0xfffd, 0xfffd, 0xfffd,
4077     0x8941, 0xfffd, 0xe8a2, 0x92c2, 0xfffd, 0x97cb, 0x93a9, 0xe89c,
4078     0x97a4, 0xfffd, 0x8caf, 0xfffd, 0xfffd, 0x977a, 0xfffd, 0xfffd,
4079     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8bf7, 0x97b2, 0xfffd,
4080     0x8c47, 0xfffd, 0x91e0, 0xe440, 0xfffd, 0xe8a4, 0x8a4b, 0x908f,
4081     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8a75, 0xe8a6, 0xfffd, 0xe8a7,
4082     0xe8a5, 0x8c84, 0xfffd, 0x8ddb, 0x8fe1, 0xfffd, 0xfffd, 0xfffd,
4083     0x8942, 0xfffd, 0xfffd, 0x97d7, 0xfffd, 0xfffd, 0xfffd, 0xe8a9,
4084     0xe7ac, 0xfffd, 0xe8a8, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4085     0xe8ac, 0xe8aa, 0xe8ab, 0xfffd, 0xe8ad, 0xfffd, 0xe8ae, 0x97ea,
4086     0xe8af, 0xe8b0, 0xfffd, 0x90c7, 0x94b9, 0xfffd, 0xfffd, 0xfffd,
4087     0x909d, 0x8ae5, 0xfffd, 0xfffd, 0x9759, 0x89eb, 0x8f57, 0x8cd9,
4088     0xfffd, 0xe8b3, 0xfffd, 0xe8b2, 0x8e93, 0xe8b4, 0xe8b1, 0xfffd,
4089     0xfffd, 0x8e47, 0xfffd, 0xfffd, 0xfffd, 0xe8b8, 0xe5ab, 0xfffd,
4090     0xfffd, 0x99d4, 0xfffd, 0x9097, 0xe8b6, 0xfffd, 0xfffd, 0xfffd,
4091     0xfffd, 0xfffd, 0x97a3, 0x93ef, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4092     0x894a, 0xfffd, 0x90e1, 0x8eb4, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4093     0x95b5, 0xfffd, 0x895f, 0xfffd, 0xfffd, 0xfffd, 0x97eb, 0x978b,
4094     0xfffd, 0xe8b9, 0xfffd, 0x9364, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4095     0x8ef9, 0xfffd, 0xfffd, 0xfffd, 0xe8ba, 0xfffd, 0xe8bb, 0x906b,
4096     0xe8bc, 0xfffd, 0x97ec, 0xfffd, 0xfffd, 0xe8b7, 0xe8be, 0xe8c0,
4097     0xfffd, 0xe8bf, 0xfffd, 0xe8bd, 0xfffd, 0xfffd, 0xe8c1, 0xfffd,
4098     0xfffd, 0xe8c2, 0xfffd, 0xfffd, 0x919a, 0xfffd, 0x89e0, 0xfffd,
4099     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe8c3, 0xfffd, 0xfffd, 0x96b6,
4100     0xfffd, 0xfffd, 0xe8c4, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4101     0xe8c5, 0xfffd, 0x9849, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4102     0x9e50, 0xe8c6, 0xfffd, 0xfffd, 0xfffd, 0xe8c7, 0xe8c8, 0xfffd,
4103     0xfffd, 0xfffd, 0xe8cc, 0xfffd, 0xe8c9, 0xfffd, 0xe8ca, 0xfffd,
4104     0xe8cb, 0xe8cd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4105     0xfffd, 0xfffd, 0x90c2, 0xfffd, 0xfffd, 0xfffd, 0x96f5, 0xfffd,
4106     0xfffd, 0x90c3, 0xfffd, 0xfffd, 0xe8ce, 0xfffd, 0x94f1, 0xfffd,
4107     0xe8cf, 0xea72, 0x96ca, 0xfffd, 0xe8d0, 0xfffd, 0xe8d1, 0xfffd,
4108     0xe8d2, 0x8a76, 0xfffd, 0xe8d4, 0xfffd, 0x9078, 0xfffd, 0xfffd,
4109     0xfffd, 0xe8d5, 0xfffd, 0xfffd, 0x8c43, 0xfffd, 0xfffd, 0xfffd,
4110     0xfffd, 0xe8d6, 0xe8da, 0xfffd, 0xe8d8, 0xfffd, 0xfffd, 0xfffd,
4111     0xfffd, 0xe8d9, 0xfffd, 0xfffd, 0x8a93, 0xe8d7, 0xe8db, 0xfffd,
4112     0xfffd, 0xfffd, 0xfffd, 0xe8dc, 0xfffd, 0x88c6, 0xfffd, 0xe8dd,
4113     0xe8de, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4114     0x8fe2, 0xfffd, 0xfffd, 0xfffd, 0xe8df, 0xfffd, 0xfffd, 0xfffd,
4115     0x8b66, 0xfffd, 0xfffd, 0xe8e2, 0xfffd, 0xfffd, 0xe8e1, 0xfffd,
4116     0xe8e0, 0xfffd, 0xfffd, 0xe691, 0xfffd, 0x95da, 0xfffd, 0xfffd,
4117     0xfffd, 0xfffd, 0xfffd, 0xe8e3, 0xe8e4, 0xfffd, 0xfffd, 0xfffd,
4118     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4119     0xfffd, 0xfffd, 0xfffd, 0xe8e5, 0xfffd, 0xfffd, 0xe8e6, 0xfffd,
4120     0xe8e7, 0xfffd, 0xfffd, 0xe8e8, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4121     0xfffd, 0xfffd, 0xfffd, 0x8ad8, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4122     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe8e9, 0xfffd, 0xfffd, 0xfffd,
4123     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4124     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe8ea, 0x9442, 0xfffd,
4125     0xfffd, 0xfffd, 0xe8ec, 0x89b9, 0xfffd, 0xe8ef, 0xe8ee, 0xfffd,
4126     0xfffd, 0xfffd, 0xfffd, 0x8943, 0xfffd, 0xfffd, 0xfffd, 0x8bbf,
4127     0xfffd, 0x95c5, 0x92b8, 0x8da0, 0xfffd, 0x8d80, 0x8f87, 0xfffd,
4128     0x907b, 0xfffd, 0xfffd, 0xfffd, 0xe8f1, 0xfffd, 0xfffd, 0xe8f0,
4129     0x9761, 0x8ae6, 0x94d0, 0x93da, 0xfffd, 0xfffd, 0xfffd, 0x909c,
4130     0x97cc, 0xfffd, 0x8c7a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4131     0xfffd, 0xe8f4, 0xfffd, 0xfffd, 0xe8f3, 0xfffd, 0xfffd, 0xfffd,
4132     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x966a, 0x93aa, 0xfffd, 0xfffd,
4133     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x896f, 0xfffd, 0xfffd, 0xe8f5,
4134     0xe8f2, 0xfffd, 0xfffd, 0x9570, 0x978a, 0xe8f6, 0xfffd, 0xfffd,
4135     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe8f7, 0xfffd,
4136     0xfffd, 0xfffd, 0xfffd, 0xe8f9, 0x91e8, 0x8a7a, 0x8a7b, 0xe8f8,
4137     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8ae7, 0x8cb0, 0xfffd, 0xfffd,
4138     0x8ae8, 0xfffd, 0xfffd, 0x935e, 0xfffd, 0xfffd, 0x97de, 0xfffd,
4139     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8cda,
4140     0xfffd, 0xfffd, 0xfffd, 0xe8fa, 0xfffd, 0xfffd, 0xfffd, 0xe8fb,
4141     0xe8fc, 0xe940, 0xfffd, 0xe942, 0xe941, 0xfffd, 0xfffd, 0xfffd,
4142     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4143     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4144     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4145     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4146     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4147     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4148     0x9597, 0xfffd, 0xe943, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe944,
4149     0xfffd, 0xe945, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe946, 0xfffd,
4150     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4151     0xfffd, 0xfffd, 0xfffd, 0xe948, 0xe947, 0xfffd, 0xe949, 0xfffd,
4152     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4153     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4154     0xfffd, 0xfffd, 0xfffd, 0x94f2, 0xe3ca, 0xfffd, 0xfffd, 0x9048,
4155     0xfffd, 0xfffd, 0x8b51, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4156     0xfffd, 0xe94a, 0xfffd, 0xe94b, 0xfffd, 0x99aa, 0x9f5a, 0x94d1,
4157     0xfffd, 0xfffd, 0x88f9, 0xfffd, 0x88b9, 0xfffd, 0xfffd, 0xfffd,
4158     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8e94, 0x964f, 0x8ffc, 0xfffd,
4159     0xfffd, 0xfffd, 0xfffd, 0xe94c, 0xfffd, 0x96dd, 0xfffd, 0xfffd,
4160     0xfffd, 0xe94d, 0x977b, 0xfffd, 0x8961, 0xfffd, 0xfffd, 0xfffd,
4161     0x8e60, 0xfffd, 0xe94e, 0x89ec, 0xe94f, 0xfffd, 0xfffd, 0xfffd,
4162     0xe950, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe952, 0xe953, 0xfffd,
4163     0xe955, 0xe951, 0xfffd, 0xfffd, 0xe954, 0xfffd, 0xfffd, 0xfffd,
4164     0x8ad9, 0xfffd, 0xfffd, 0xfffd, 0xe956, 0xfffd, 0xe957, 0xfffd,
4165     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4166     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe958, 0xe959, 0xfffd,
4167     0xfffd, 0xfffd, 0xe95a, 0xfffd, 0xfffd, 0xe95c, 0xfffd, 0xfffd,
4168     0xfffd, 0xe95b, 0xfffd, 0xe95e, 0xe961, 0xfffd, 0xfffd, 0xfffd,
4169     0xe95d, 0xe95f, 0xe960, 0xfffd, 0xfffd, 0xe962, 0xfffd, 0x8bc0,
4170     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4171     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4172     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4173     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4174     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4175     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4176     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4177     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8ef1, 0xe963,
4178     0xe964, 0x8d81, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4179     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe965, 0xfffd, 0xfffd,
4180     0x8a5d, 0xfffd, 0xfffd, 0xfffd, 0x946e, 0xe966, 0xe967, 0xfffd,
4181     0xfffd, 0xfffd, 0xfffd, 0x9279, 0x93e9, 0xfffd, 0xfffd, 0xfffd,
4182     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe968, 0xfffd, 0xfffd, 0xfffd,
4183     0xfffd, 0x949d, 0xfffd, 0xfffd, 0x91ca, 0x8977, 0x8bec, 0xfffd,
4184     0x8bed, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4185     0x9293, 0xe96d, 0x8bee, 0xfffd, 0xfffd, 0x89ed, 0xfffd, 0xfffd,
4186     0xe96c, 0xfffd, 0xfffd, 0xe96a, 0xfffd, 0xe96b, 0xfffd, 0xe969,
4187     0xfffd, 0xfffd, 0xe977, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4188     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe96e, 0xe96f, 0xfffd,
4189     0xfffd, 0xe970, 0xe971, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4190     0xe973, 0xfffd, 0xfffd, 0xe972, 0xfffd, 0xfffd, 0xfffd, 0x8f78,
4191     0xfffd, 0xe974, 0xfffd, 0xfffd, 0xfffd, 0xe976, 0xfffd, 0xfffd,
4192     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8b52, 0xe975,
4193     0xfffd, 0xfffd, 0x919b, 0x8cb1, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4194     0xfffd, 0xe978, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4195     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4196     0x91cb, 0xfffd, 0xfffd, 0xe979, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4197     0x93ab, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe97a,
4198     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe980, 0xfffd,
4199     0xe97d, 0xfffd, 0xe97c, 0xe97e, 0xfffd, 0xe97b, 0xfffd, 0xfffd,
4200     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe982, 0xfffd, 0xfffd,
4201     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe981, 0xfffd, 0xe984,
4202     0xfffd, 0xfffd, 0x8bc1, 0xe983, 0xfffd, 0xfffd, 0xfffd, 0xe985,
4203     0xfffd, 0xfffd, 0xe986, 0xfffd, 0xe988, 0xe987, 0xfffd, 0xfffd,
4204     0xfffd, 0xe989, 0xe98b, 0xe98a, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4205     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4206     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4207     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4208     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4209     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4210     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4211     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4212     0x8d9c, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe98c, 0xfffd, 0xfffd,
4213     0xe98d, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4214     0x8a5b, 0xfffd, 0xfffd, 0xfffd, 0xe98e, 0xfffd, 0xfffd, 0xfffd,
4215     0xe98f, 0xfffd, 0xfffd, 0xfffd, 0x9091, 0xfffd, 0xfffd, 0xfffd,
4216     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe990,
4217     0xfffd, 0xe991, 0xfffd, 0xe992, 0xe993, 0xfffd, 0xfffd, 0xfffd,
4218     0x8d82, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe994, 0xe995,
4219     0xfffd, 0xfffd, 0xe996, 0xe997, 0xfffd, 0xfffd, 0xe998, 0xfffd,
4220     0xfffd, 0xfffd, 0x94af, 0xe99a, 0xfffd, 0x9545, 0xe99b, 0xe999,
4221     0xfffd, 0xe99d, 0xfffd, 0xfffd, 0xe99c, 0xfffd, 0xfffd, 0xe99e,
4222     0xfffd, 0xfffd, 0xfffd, 0xe99f, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4223     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe9a0, 0xfffd,
4224     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4225     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4226     0xe9a1, 0xfffd, 0xe9a2, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe9a3,
4227     0xfffd, 0xfffd, 0xe9a4, 0xe9a5, 0xfffd, 0xe9a6, 0xfffd, 0xe9a7,
4228     0xe9a8, 0xe9a9, 0xe9aa, 0xfffd, 0xfffd, 0xfffd, 0xe9ab, 0xe9ac,
4229     0xfffd, 0x9f54, 0xe9ad, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4230     0xfffd, 0xfffd, 0xfffd, 0xe2f6, 0x8b53, 0xfffd, 0xfffd, 0xfffd,
4231     0xfffd, 0x8a40, 0x8db0, 0xe9af, 0xe9ae, 0x96a3, 0xfffd, 0xfffd,
4232     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe9b1, 0xe9b2, 0xe9b0,
4233     0xfffd, 0xe9b3, 0xfffd, 0xfffd, 0x9682, 0xfffd, 0xfffd, 0xfffd,
4234     0xe9b4, 0xfffd, 0x8b9b, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4235     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4236     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9844,
4237     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe9b5, 0xfffd, 0xfffd, 0xfffd,
4238     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4239     0xfffd, 0xfffd, 0xfffd, 0xe9b7, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4240     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x88bc, 0xfffd,
4241     0xfffd, 0xe9b8, 0x95a9, 0xe9b6, 0xfffd, 0xfffd, 0xe9b9, 0xe9ba,
4242     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe9bb,
4243     0xe9bc, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4244     0xe9bd, 0xfffd, 0x968e, 0x8e4c, 0xfffd, 0x8df8, 0x914e, 0xfffd,
4245     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe9be, 0xfffd, 0xfffd, 0xfffd,
4246     0xfffd, 0xe9c1, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4247     0xe9bf, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe9c2, 0xfffd,
4248     0xfffd, 0x8cef, 0xe9c0, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe9c3,
4249     0xfffd, 0xe9c4, 0xe9c5, 0xfffd, 0xe9c9, 0xfffd, 0x8e49, 0xfffd,
4250     0xfffd, 0xfffd, 0xfffd, 0x91e2, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4251     0xfffd, 0xe9ca, 0xe9c7, 0xe9c6, 0xe9c8, 0xfffd, 0xfffd, 0xfffd,
4252     0x8c7e, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4253     0xe9ce, 0xe9cd, 0xe9cc, 0xfffd, 0xfffd, 0x88b1, 0xfffd, 0xfffd,
4254     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4255     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe9d8, 0xfffd, 0xe9d4, 0xfffd,
4256     0xe9d5, 0xe9d1, 0xe9d7, 0xfffd, 0xe9d3, 0x8a82, 0xfffd, 0xfffd,
4257     0x986b, 0xfffd, 0xe9d6, 0xe9d2, 0xe9d0, 0xe9cf, 0xfffd, 0xfffd,
4258     0xfffd, 0xfffd, 0xfffd, 0xe9da, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4259     0xfffd, 0xe9dd, 0xfffd, 0xfffd, 0xe9dc, 0xe9db, 0xfffd, 0xfffd,
4260     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9568, 0xe9d9, 0x88f1,
4261     0xe9de, 0xfffd, 0xe9e0, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4262     0xfffd, 0x8a8f, 0xe9cb, 0x8956, 0xfffd, 0xfffd, 0xe9e2, 0xfffd,
4263     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe9e1, 0xe9df,
4264     0x924c, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4265     0xfffd, 0xfffd, 0x9690, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x97d8,
4266     0xfffd, 0xfffd, 0xe9e3, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4267     0xe9e4, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe9e5,
4268     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4269     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xe9e6, 0xfffd,
4270     0xe9e7, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4271     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4272     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4273     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4274     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4275     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4276     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4277     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4278     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4279     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4280     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4281     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4282     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4283     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x92b9, 0xfffd, 0xe9e8,
4284     0xfffd, 0x94b5, 0xfffd, 0xe9ed, 0xe9e9, 0xfffd, 0xfffd, 0xfffd,
4285     0xe9ea, 0xfffd, 0xfffd, 0x9650, 0x96c2, 0xfffd, 0x93ce, 0xfffd,
4286     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4287     0xfffd, 0xfffd, 0xfffd, 0xe9ee, 0xfffd, 0xfffd, 0xe9ef, 0x93bc,
4288     0xe9ec, 0xe9eb, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x89a8, 0xfffd,
4289     0xfffd, 0xfffd, 0xe9f7, 0xfffd, 0xfffd, 0xe9f6, 0xfffd, 0xfffd,
4290     0xfffd, 0xfffd, 0xfffd, 0x8995, 0xfffd, 0xfffd, 0xfffd, 0xe9f4,
4291     0xfffd, 0xfffd, 0xfffd, 0xe9f3, 0xfffd, 0xfffd, 0xe9f1, 0xfffd,
4292     0x8a9b, 0xfffd, 0xe9f0, 0x8eb0, 0x89a7, 0xfffd, 0xfffd, 0xfffd,
4293     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4294     0xfffd, 0xfffd, 0xfffd, 0x8d83, 0xfffd, 0xfffd, 0xe9fa, 0xe9f9,
4295     0xfffd, 0xe9f8, 0xfffd, 0xfffd, 0xe9f5, 0xfffd, 0xe9fb, 0xfffd,
4296     0xe9fc, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4297     0xea44, 0xea43, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4298     0xfffd, 0xea45, 0xfffd, 0xfffd, 0x894c, 0xea40, 0xea41, 0xfffd,
4299     0x8d94, 0x96b7, 0xfffd, 0xfffd, 0xea42, 0xfffd, 0xfffd, 0xfffd,
4300     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9651, 0xfffd, 0xfffd, 0xea4a,
4301     0xfffd, 0xfffd, 0xea46, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4302     0xfffd, 0xfffd, 0xea4b, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4303     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xea48,
4304     0xfffd, 0xea47, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8c7b,
4305     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4306     0xfffd, 0xfffd, 0xea4c, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4307     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xea4d, 0xfffd, 0xfffd, 0xfffd,
4308     0xfffd, 0xea4e, 0xfffd, 0xea49, 0xfffd, 0xfffd, 0xfffd, 0xe9f2,
4309     0xfffd, 0xfffd, 0xea4f, 0xfffd, 0x92df, 0xfffd, 0xfffd, 0xfffd,
4310     0xea53, 0xfffd, 0xea54, 0xea52, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4311     0xfffd, 0xea51, 0xea57, 0xfffd, 0xea50, 0xfffd, 0xea55, 0xfffd,
4312     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xea56,
4313     0xfffd, 0xfffd, 0xfffd, 0xea59, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4314     0xfffd, 0xea58, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4315     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xea5b, 0xfffd,
4316     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xea5c, 0xfffd, 0xea5d,
4317     0xfffd, 0xfffd, 0x9868, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4318     0xea5a, 0x91e9, 0x8deb, 0xfffd, 0xfffd, 0xea5e, 0xfffd, 0xfffd,
4319     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4320     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4321     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4322     0xfffd, 0xfffd, 0xea5f, 0xea60, 0xfffd, 0xfffd, 0xea61, 0xfffd,
4323     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4324     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4325     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4326     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4327     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4328     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4329     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4330     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4331     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4332     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4333     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xea62, 0xfffd, 0xfffd,
4334     0x8cb2, 0xea63, 0xfffd, 0xfffd, 0xfffd, 0xea64, 0xfffd, 0x8ead,
4335     0xfffd, 0xea65, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4336     0xea66, 0xfffd, 0xfffd, 0xea67, 0xea68, 0xfffd, 0xfffd, 0xfffd,
4337     0xfffd, 0xea6b, 0xea69, 0x985b, 0xfffd, 0xea6a, 0xfffd, 0x97ed,
4338     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xea6c, 0xfffd, 0x97d9,
4339     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xea6d, 0x949e, 0xfffd,
4340     0xfffd, 0xea6e, 0xea70, 0xfffd, 0xfffd, 0xea71, 0xfffd, 0xfffd,
4341     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4342     0xea6f, 0x8d8d, 0x96cb, 0x9683, 0x9bf5, 0xfffd, 0x9f80, 0x969b,
4343     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x89a9, 0xfffd, 0xfffd, 0xfffd,
4344     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xea73, 0x8b6f, 0xea74, 0xea75,
4345     0xea76, 0xfffd, 0x8d95, 0xfffd, 0xea77, 0xfffd, 0xfffd, 0xfffd,
4346     0xe0d2, 0x96d9, 0xfffd, 0x91e1, 0xea78, 0xea7a, 0xea79, 0xfffd,
4347     0xea7b, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xea7c, 0xfffd, 0xfffd,
4348     0xea7d, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xea7e,
4349     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xea80, 0xfffd, 0xea81, 0xea82,
4350     0xfffd, 0xea83, 0xfffd, 0xea84, 0xea85, 0xea86, 0xfffd, 0xfffd,
4351     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xea87,
4352     0xea88, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9343, 0xfffd,
4353     0xfffd, 0xfffd, 0xfffd, 0x8cdb, 0xfffd, 0xea8a, 0xfffd, 0xfffd,
4354     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4355     0x916c, 0xea8b, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4356     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xea8c, 0xfffd, 0xfffd, 0xfffd,
4357     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4358     0xfffd, 0xfffd, 0xfffd, 0x9540, 0xfffd, 0xfffd, 0xea8d, 0xfffd,
4359     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4360     0xfffd, 0xfffd, 0xea8e, 0xe256, 0xfffd, 0xfffd, 0xe6d8, 0xe8eb,
4361     0xfffd, 0xfffd, 0xea8f, 0xfffd, 0xea90, 0xfffd, 0xfffd, 0xfffd,
4362     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xea92,
4363     0xea93, 0xea94, 0x97ee, 0xea91, 0xfffd, 0xfffd, 0xea95, 0xea96,
4364     0xfffd, 0xfffd, 0xea98, 0xfffd, 0xea97, 0xfffd, 0xfffd, 0xfffd,
4365     0xfffd, 0xfffd, 0xea9a, 0xfffd, 0xfffd, 0xfffd, 0xea9b, 0xea99,
4366     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4367     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4368     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x97b4, 0xfffd, 0xfffd,
4369     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xea9c, 0xfffd, 0xfffd,
4370     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xea9d, 0xe273, 0xfffd, 0xfffd,
4371     0xea9e, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000
4372 };
4373
4374 #endif /* KANJI */
4375
4376 /* Blah-to-Unicode translation tables */
4377
4378 struct x_to_unicode u_transparent = {
4379     256, X2U_CXG, 0, 0, "Transparent", "transparent", 0, "",
4380     0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
4381     0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F,
4382     0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
4383     0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F,
4384     0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27,
4385     0x28, 0x29, 0x2A, 0x2B, 0x2C, 0x2D, 0x2E, 0x2F,
4386     0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,
4387     0x38, 0x39, 0x3A, 0x3B, 0x3C, 0x3D, 0x3E, 0x3F,
4388     0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,
4389     0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F,
4390     0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57,
4391     0x58, 0x59, 0x5A, 0x5B, 0x5C, 0x5D, 0x5E, 0x5F,
4392     0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,
4393     0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F,
4394     0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,
4395     0x78, 0x79, 0x7A, 0x7B, 0x7C, 0x7D, 0x7E, 0x7F,
4396     0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87,
4397     0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F,
4398     0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97,
4399     0x98, 0x99, 0x9A, 0x9B, 0x9C, 0x9D, 0x9E, 0x9F,
4400     0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7,
4401     0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF,
4402     0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7,
4403     0xB8, 0xB9, 0xBA, 0xBB, 0xBC, 0xBD, 0xBE, 0xBF,
4404     0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7,
4405     0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF,
4406     0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7,
4407     0xD8, 0xD9, 0xDA, 0xDB, 0xDC, 0xDD, 0xDE, 0xDF,
4408     0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7,
4409     0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF,
4410     0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7,
4411     0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xFF
4412 };
4413
4414 /* 7-bit character sets: ISO 646, DEC NRCs, Short KOI, and Hebrew-7 */
4415
4416 struct x_to_unicode u_ascii = {
4417     94, 33, X2U_ISO|X2U_STD, AL_ROMAN, "US ASCII", "ascii", 6, "B",
4418             0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027,
4419     0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f,
4420     0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037,
4421     0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f,
4422     0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,
4423     0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f,
4424     0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057,
4425     0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f,
4426     0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,
4427     0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f,
4428     0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077,
4429     0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e
4430 };
4431
4432 struct x_to_unicode u_british = {
4433     94, 33, X2U_ISO|X2U_STD, AL_ROMAN, "British ISO 646", "british", 1, "A",
4434             0x0021, 0x0022, 0x00a3, 0x0024, 0x0025, 0x0026, 0x0027,
4435     0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f,
4436     0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037,
4437     0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f,
4438     0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,
4439     0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f,
4440     0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057,
4441     0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f,
4442     0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,
4443     0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f,
4444     0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077,
4445     0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e
4446 };
4447
4448 struct x_to_unicode u_dutch = {
4449     94, 33, X2U_DEC|X2U_STD, AL_ROMAN, "Dutch NRC", "dutch", 0, "4",
4450             0x0021, 0x0022, 0x00a3, 0x0024, 0x0025, 0x0026, 0x0027,
4451     0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f,
4452     0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037,
4453     0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f,
4454     0x00be, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,
4455     0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f,
4456     0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057,
4457     0x0058, 0x0059, 0x005a, 0x00ff, 0x00bd, 0x007c, 0x005e, 0x005f,
4458     0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,
4459     0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f,
4460     0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077,
4461     0x0078, 0x0079, 0x007a, 0x00a8, 0x00a4, 0x00bc, 0x0027
4462 };
4463
4464 struct x_to_unicode u_finnish = {
4465     94, 33, X2U_DEC|X2U_STD, AL_ROMAN, "Finnish NRC", "finnish", 0, "5C",
4466             0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027,
4467     0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f,
4468     0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037,
4469     0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f,
4470     0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,
4471     0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f,
4472     0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057,
4473     0x0058, 0x0059, 0x005a, 0x00c4, 0x00d6, 0x00c5, 0x00dc, 0x005f,
4474     0x00e9, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,
4475     0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f,
4476     0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077,
4477     0x0078, 0x0079, 0x007a, 0x00e4, 0x00f6, 0x00e5, 0x00fc
4478 };
4479
4480 struct x_to_unicode u_french = {
4481     94, 33, X2U_ISO|X2U_STD, AL_ROMAN, "French ISO 646", "french", 0, "fR",
4482             0x0021, 0x0022, 0x00a3, 0x0024, 0x0025, 0x0026, 0x0027,
4483     0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f,
4484     0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037,
4485     0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f,
4486     0x00e0, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,
4487     0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f,
4488     0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057,
4489     0x0058, 0x0059, 0x005a, 0x00b0, 0x00e7, 0x00a7, 0x005e, 0x005f,
4490     0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,
4491     0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f,
4492     0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077,
4493     0x0078, 0x0079, 0x007a, 0x00e9, 0x00f9, 0x00e8, 0x00a8
4494 };
4495
4496 struct x_to_unicode u_fr_canadian = {
4497  94,33,X2U_DEC|X2U_STD,AL_ROMAN,"French Canadian NRC","canadian-french",0,"9Q",
4498             0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027,
4499     0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f,
4500     0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037,
4501     0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f,
4502     0x00e0, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,
4503     0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f,
4504     0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057,
4505     0x0058, 0x0059, 0x005a, 0x00e2, 0x00e7, 0x00ea, 0x00ee, 0x005f,
4506     0x00f4, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,
4507     0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f,
4508     0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077,
4509     0x0078, 0x0079, 0x007a, 0x00e9, 0x00f9, 0x00e8, 0x00fb
4510 };
4511
4512 struct x_to_unicode u_german = {
4513     94, 33, X2U_ISO|X2U_STD, AL_ROMAN, "German ISO 646", "german", 21, "K",
4514             0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027,
4515     0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f,
4516     0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037,
4517     0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f,
4518     0x00a7, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,
4519     0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f,
4520     0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057,
4521     0x0058, 0x0059, 0x005a, 0x00c4, 0x00d6, 0x00dc, 0x005e, 0x005f,
4522     0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,
4523     0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f,
4524     0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077,
4525     0x0078, 0x0079, 0x007a, 0x00e4, 0x00f6, 0x00fc, 0x00df
4526 };
4527
4528 struct x_to_unicode u_hungarian = {
4529     94, 33, X2U_ISO|X2U_STD, AL_ROMAN, "Hungarian ISO 646","hungarian",86,"i",
4530             0x0021, 0x0022, 0x0023, 0x00a4, 0x0025, 0x0026, 0x0027,
4531     0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f,
4532     0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037,
4533     0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f,
4534     0x00c1, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,
4535     0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f,
4536     0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057,
4537     0x0058, 0x0059, 0x005a, 0x00c9, 0x00d6, 0x00dc, 0x005e, 0x005f,
4538     0x00e1, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,
4539     0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f,
4540     0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077,
4541     0x0078, 0x0079, 0x007a, 0x00e9, 0x00f6, 0x00fc, 0x0022, 0x02dd
4542 };
4543
4544 struct x_to_unicode u_italian = {
4545     94, 33, X2U_ISO|X2U_STD, AL_ROMAN, "Italian ISO 646", "italian", 15, "Y",
4546             0x0021, 0x0022, 0x00a3, 0x0024, 0x0025, 0x0026, 0x0027,
4547     0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f,
4548     0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037,
4549     0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f,
4550     0x00a7, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,
4551     0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f,
4552     0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057,
4553     0x0058, 0x0059, 0x005a, 0x00b0, 0x00e7, 0x00e9, 0x005e, 0x005f,
4554     0x00f9, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,
4555     0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f,
4556     0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077,
4557     0x0078, 0x0079, 0x007a, 0x00e0, 0x00f2, 0x00e8, 0x00ec
4558 };
4559
4560 struct x_to_unicode u_icelandic = {
4561     94, 33, X2U_DEC|X2U_STD, AL_ROMAN, "Icelandic NRC", "icelandic", 0, NULL,
4562             0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027,
4563     0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f,
4564     0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037,
4565     0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f,
4566     0x00de, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,
4567     0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f,
4568     0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057,
4569     0x0058, 0x0059, 0x005a, 0x00f0, 0x00d8, 0x00c6, 0x00d6, 0x005f,
4570     0x00fe, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,
4571     0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f,
4572     0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077,
4573     0x0078, 0x0079, 0x007a, 0x00f0, 0x007c, 0x00e6, 0x00f6
4574 };
4575
4576 struct x_to_unicode u_jis0201r = {
4577     94, 33, X2U_ISO|X2U_STD,AL_ROMAN,"Japanese Roman","japanese-roman",14,"J",
4578             0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027,
4579     0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f,
4580     0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037,
4581     0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f,
4582     0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,
4583     0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f,
4584     0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057,
4585     0x0058, 0x0059, 0x005a, 0x005b, 0x00a5, 0x005d, 0x005e, 0x005f,
4586     0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,
4587     0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f,
4588     0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077,
4589     0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x203e
4590 };
4591
4592 struct x_to_unicode u_jis0201k = {
4593     94, 33, X2U_ISO|X2U_STD,AL_KANA,"Japanese Katakana", "katakana", 13, "I",
4594             0xff61, 0xff62, 0xff63, 0xff64, 0xff65, 0xff66, 0xff67,
4595     0xff68, 0xff69, 0xff6a, 0xff6b, 0xff6c, 0xff6d, 0xff6e, 0xff6f,
4596     0xff70, 0xff71, 0xff72, 0xff73, 0xff74, 0xff75, 0xff76, 0xff77,
4597     0xff78, 0xff79, 0xff7a, 0xff7b, 0xff7c, 0xff7d, 0xff7e, 0xff7f,
4598     0xff80, 0xff81, 0xff82, 0xff83, 0xff84, 0xff85, 0xff86, 0xff87,
4599     0xff88, 0xff89, 0xff8a, 0xff8b, 0xff8c, 0xff8d, 0xff8e, 0xff8f,
4600     0xff90, 0xff91, 0xff92, 0xff93, 0xff94, 0xff95, 0xff96, 0xff97,
4601     0xff98, 0xff99, 0xff9a, 0xff9b, 0xff9c, 0xff9d, 0xff9e, 0xff9f,
4602     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4603     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4604     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4605     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd
4606 };
4607
4608 struct x_to_unicode u_norwegian = {     /* Same as Danish */
4609     94,33,X2U_ISO|X2U_STD,AL_ROMAN,"Norwegian ISO 646", "norwegian", 60, "`E6",
4610             0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027,
4611     0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f,
4612     0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037,
4613     0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f,
4614     0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,
4615     0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f,
4616     0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057,
4617     0x0058, 0x0059, 0x005a, 0x00c6, 0x00d8, 0x00c5, 0x005e, 0x005f,
4618     0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,
4619     0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f,
4620     0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077,
4621     0x0078, 0x0079, 0x007a, 0x00e6, 0x00f8, 0x00e5, 0x007e
4622 };
4623
4624 struct x_to_unicode u_danish = {        /* Same as Norwegian */
4625     94, 33, X2U_ISO|X2U_STD, AL_ROMAN, "Danish ISO 646", "danish", 60, "`E6",
4626             0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027,
4627     0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f,
4628     0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037,
4629     0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f,
4630     0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,
4631     0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f,
4632     0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057,
4633     0x0058, 0x0059, 0x005a, 0x00c6, 0x00d8, 0x00c5, 0x005e, 0x005f,
4634     0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,
4635     0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f,
4636     0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077,
4637     0x0078, 0x0079, 0x007a, 0x00e6, 0x00f8, 0x00e5, 0x007e
4638 };
4639
4640 struct x_to_unicode u_portuguese = {
4641     94,33,X2U_ISO|X2U_STD,AL_ROMAN,"Portuguese ISO 646","portuguese",16,"L%6",
4642             0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027,
4643     0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f,
4644     0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037,
4645     0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f,
4646     0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,
4647     0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f,
4648     0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057,
4649     0x0058, 0x0059, 0x005a, 0x00c6, 0x00d8, 0x00c5, 0x005e, 0x005f,
4650     0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,
4651     0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f,
4652     0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077,
4653     0x0078, 0x0079, 0x007a, 0x00e6, 0x00f8, 0x00e5, 0x007e
4654 };
4655
4656 struct x_to_unicode u_spanish = {
4657     94, 33, X2U_ISO|X2U_STD, AL_ROMAN, "Spanish ISO 646", "spanish", 17, "Z",
4658             0x0021, 0x0022, 0x00a3, 0x0024, 0x0025, 0x0026, 0x0027,
4659     0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f,
4660     0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037,
4661     0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f,
4662     0x00a7, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,
4663     0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f,
4664     0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057,
4665     0x0058, 0x0059, 0x005a, 0x00a1, 0x00d1, 0x00bf, 0x005e, 0x005f,
4666     0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,
4667     0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f,
4668     0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077,
4669     0x0078, 0x0079, 0x007a, 0x00b0, 0x00f1, 0x00e7, 0x007e
4670 };
4671
4672 struct x_to_unicode u_swedish = {
4673     94, 33, X2U_ISO|X2U_STD, AL_ROMAN, "Swedish ISO 646", "swedish", 11, "HG",
4674             0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027,
4675     0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f,
4676     0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037,
4677     0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f,
4678     0x00c9, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,
4679     0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f,
4680     0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057,
4681     0x0058, 0x0059, 0x005a, 0x00c4, 0x00d6, 0x00c5, 0x00dc, 0x005f,
4682     0x00e9, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,
4683     0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f,
4684     0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077,
4685     0x0078, 0x0079, 0x007a, 0x00e4, 0x00f6, 0x00e5, 0x00fc
4686 };
4687
4688 struct x_to_unicode u_swiss = {
4689     94, 33, X2U_DEC|X2U_STD, AL_ROMAN, "Swiss NRC", "swiss", 0, "=",
4690             0x0021, 0x0022, 0x00f9, 0x0024, 0x0025, 0x0026, 0x0027,
4691     0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f,
4692     0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037,
4693     0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f,
4694     0x00e0, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,
4695     0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f,
4696     0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057,
4697     0x0058, 0x0059, 0x005a, 0x00e9, 0x00e7, 0x00ea, 0x00ee, 0x00e8,
4698     0x00f4, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,
4699     0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f,
4700     0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077,
4701     0x0078, 0x0079, 0x007a, 0x00e4, 0x00f6, 0x00fc, 0x00fb
4702 };
4703
4704 struct x_to_unicode u_koi7 = {
4705     94, 33, X2U_STD, AL_CYRIL, "Short KOI", "short-koi", 0, NULL,
4706             0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027,
4707     0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f,
4708     0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037,
4709     0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f,
4710     0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,
4711     0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f,
4712     0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057,
4713     0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f,
4714     0x042e, 0x0410, 0x0411, 0x0426, 0x0414, 0x0415, 0x0424, 0x0413,
4715     0x0425, 0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e,
4716     0x041f, 0x042f, 0x0420, 0x0421, 0x0422, 0x0423, 0x0416, 0x0412,
4717     0x042c, 0x042b, 0x0417, 0x0428, 0x042d, 0x0429, 0x0427
4718 };
4719
4720 struct x_to_unicode u_elot927 = {
4721     94, 33, X2U_STD, AL_GREEK, "ELOT 927", "elot927-greek", 0, NULL,
4722             0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027,
4723     0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f,
4724     0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037,
4725     0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f,
4726     0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,
4727     0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f,
4728     0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057,
4729     0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f,
4730     0x0060, 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397,
4731     0x0398, 0x0399, 0x039a, 0x039b, 0x039c, 0x039d, 0x039e, 0x039f,
4732     0x03a0, 0x03a1, 0x03a3, 0x03a4, 0x03a5, 0x03a6, 0x03a7, 0x03a8,
4733     0x03a9, 0x0020, 0x0020, 0x007b, 0x007c, 0x007d, 0x007e
4734 };
4735
4736
4737 struct x_to_unicode u_hebrew7 = {
4738     94, 33, X2U_STD, AL_HEBREW, "Hebrew-7", "hebrew-7", 0, NULL,
4739             0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027,
4740     0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f,
4741     0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037,
4742     0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f,
4743     0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,
4744     0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f,
4745     0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057,
4746     0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f,
4747     0x05d0, 0x05d1, 0x05d2, 0x05d3, 0x05d4, 0x05d5, 0x05d6, 0x05d7,
4748     0x05d8, 0x05d9, 0x05da, 0x05db, 0x05dc, 0x05dd, 0x05de, 0x05df,
4749     0x05e0, 0x05e1, 0x05e2, 0x05e3, 0x05e4, 0x05e5, 0x05e6, 0x05e7,
4750     0x05e8, 0x05e9, 0x05ea, 0x007b, 0x007c, 0x007d, 0x007e
4751 };
4752
4753 struct x_to_unicode u_apl1 = {
4754     94, 33, X2U_ISO|X2U_STD, AL_ROMAN, "APL ISO", "apl-iso", 68, "e",
4755             0x00a8, 0x0029, 0x003c, 0x2264, 0x003d, 0x003e, 0x005d,
4756     0x2228, 0x2227, 0x2260, 0x00f7, 0x002c, 0x002b, 0x002e, 0x002f,
4757     0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037,
4758     0x0038, 0x0039, 0x0028, 0x005b, 0x003b, 0x00d7, 0x003a, 0x005c,
4759     0x00af, 0x237a, 0x22a5, 0x22c2, 0x230a, 0x220a, 0x005f, 0x2207,
4760     0x2206, 0x2373, 0x2218, 0x0027, 0x25af, 0x007c, 0x22a4, 0x25cb,
4761     0x22c6, 0x003f, 0x2374, 0x2308, 0x223c, 0x2193, 0x222a, 0x2375,
4762     0x2283, 0x2191, 0x2282, 0x2190, 0x22a2, 0x2192, 0x2265, 0x002d,
4763     0x22c4, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,
4764     0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f,
4765     0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057,
4766     0x0058, 0x0059, 0x005a, 0x007b, 0x22a3, 0x007d, 0x0024
4767 };
4768
4769 /* ISO 8859 Latin Alphabets */
4770
4771 struct x_to_unicode u_8859_1 = {
4772     96, 32, X2U_ISO|X2U_STD, AL_ROMAN, "ISO Latin-1", "latin1", 100, "A",
4773     0x00A0, 0x00A1, 0x00A2, 0x00A3, 0x00A4, 0x00A5, 0x00A6, 0x00A7,
4774     0x00A8, 0x00A9, 0x00AA, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00AF,
4775     0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x00B4, 0x00B5, 0x00B6, 0x00B7,
4776     0x00B8, 0x00B9, 0x00BA, 0x00BB, 0x00BC, 0x00BD, 0x00BE, 0x00BF,
4777     0x00C0, 0x00C1, 0x00C2, 0x00C3, 0x00C4, 0x00C5, 0x00C6, 0x00C7,
4778     0x00C8, 0x00C9, 0x00CA, 0x00CB, 0x00CC, 0x00CD, 0x00CE, 0x00CF,
4779     0x00D0, 0x00D1, 0x00D2, 0x00D3, 0x00D4, 0x00D5, 0x00D6, 0x00D7,
4780     0x00D8, 0x00D9, 0x00DA, 0x00DB, 0x00DC, 0x00DD, 0x00DE, 0x00DF,
4781     0x00E0, 0x00E1, 0x00E2, 0x00E3, 0x00E4, 0x00E5, 0x00E6, 0x00E7,
4782     0x00E8, 0x00E9, 0x00EA, 0x00EB, 0x00EC, 0x00ED, 0x00EE, 0x00EF,
4783     0x00F0, 0x00F1, 0x00F2, 0x00F3, 0x00F4, 0x00F5, 0x00F6, 0x00F7,
4784     0x00F8, 0x00F9, 0x00FA, 0x00FB, 0x00FC, 0x00FD, 0x00FE, 0x00FF
4785 };
4786
4787 struct x_to_unicode u_8859_2 = {
4788     96, 32, X2U_ISO|X2U_STD, AL_ROMAN, "ISO Latin-2", "latin2", 101, "B",
4789     0x00A0, 0x0104, 0x02D8, 0x0141, 0x00A4, 0x013D, 0x015A, 0x00A7,
4790     0x00A8, 0x0160, 0x015E, 0x0164, 0x0179, 0x00AD, 0x017D, 0x017B,
4791     0x00B0, 0x0105, 0x02DB, 0x0142, 0x00B4, 0x013E, 0x015B, 0x02C7,
4792     0x00B8, 0x0161, 0x015F, 0x0165, 0x017A, 0x02DD, 0x017E, 0x017C,
4793     0x0154, 0x00C1, 0x00C2, 0x0102, 0x00C4, 0x0139, 0x0106, 0x00C7,
4794     0x010C, 0x00C9, 0x0118, 0x00CB, 0x011A, 0x00CD, 0x00CE, 0x010E,
4795     0x0110, 0x0143, 0x0147, 0x00D3, 0x00D4, 0x0150, 0x00D6, 0x00D7,
4796     0x0158, 0x016E, 0x00DA, 0x0170, 0x00DC, 0x00DD, 0x0162, 0x00DF,
4797     0x0155, 0x00E1, 0x00E2, 0x0103, 0x00E4, 0x013A, 0x0107, 0x00E7,
4798     0x010D, 0x00E9, 0x0119, 0x00EB, 0x011B, 0x00ED, 0x00EE, 0x010F,
4799     0x0111, 0x0144, 0x0148, 0x00F3, 0x00F4, 0x0151, 0x00F6, 0x00F7,
4800     0x0159, 0x016F, 0x00FA, 0x0171, 0x00FC, 0x00FD, 0x0163, 0x02D9
4801 };
4802
4803 struct x_to_unicode u_8859_3 = {
4804     96, 32, X2U_ISO|X2U_STD, AL_ROMAN, "ISO Latin-3", "latin3", 109, "C",
4805     0x00A0, 0x0126, 0x02D8, 0x00A3, 0x00A4, 0xfffd, 0x0124, 0x00A7,
4806     0x00A8, 0x0130, 0x015E, 0x011E, 0x0134, 0x00AD, 0xfffd, 0x017B,
4807     0x00B0, 0x0127, 0x00B2, 0x00B3, 0x00B4, 0x00B5, 0x0125, 0x00B7,
4808     0x00B8, 0x0131, 0x015F, 0x011F, 0x0135, 0x00BD, 0xfffd, 0x017C,
4809     0x00C0, 0x00C1, 0x00C2, 0xfffd, 0x00C4, 0x010A, 0x0108, 0x00C7,
4810     0x00C8, 0x00C9, 0x00CA, 0x00CB, 0x00CC, 0x00CD, 0x00CE, 0x00CF,
4811     0xfffd, 0x00D1, 0x00D2, 0x00D3, 0x00D4, 0x0120, 0x00D6, 0x00D7,
4812     0x011C, 0x00D9, 0x00DA, 0x00DB, 0x00DC, 0x016C, 0x015C, 0x00DF,
4813     0x00E0, 0x00E1, 0x00E2, 0xfffd, 0x00E4, 0x010B, 0x0109, 0x00E7,
4814     0x00E8, 0x00E9, 0x00EA, 0x00EB, 0x00EC, 0x00ED, 0x00EE, 0x00EF,
4815     0xfffd, 0x00F1, 0x00F2, 0x00F3, 0x00F4, 0x0121, 0x00F6, 0x00F7,
4816     0x011D, 0x00F9, 0x00FA, 0x00FB, 0x00FC, 0x016D, 0x015D, 0x02D9
4817 };
4818
4819 struct x_to_unicode u_8859_4 = {
4820     96, 32, X2U_ISO|X2U_STD, AL_ROMAN, "ISO Latin-4", "latin4", 110, "D",
4821     0x00A0, 0x0104, 0x0138, 0x0156, 0x00A4, 0x0128, 0x013B, 0x00A7,
4822     0x00A8, 0x0160, 0x0112, 0x0122, 0x0166, 0x00AD, 0x017D, 0x00AF,
4823     0x00B0, 0x0105, 0x02DB, 0x0157, 0x00B4, 0x0129, 0x013C, 0x02C7,
4824     0x00B8, 0x0161, 0x0113, 0x0123, 0x0167, 0x014A, 0x017E, 0x014B,
4825     0x0100, 0x00C1, 0x00C2, 0x00C3, 0x00C4, 0x00C5, 0x00C6, 0x012E,
4826     0x010C, 0x00C9, 0x0118, 0x00CB, 0x0116, 0x00CD, 0x00CE, 0x012A,
4827     0x0110, 0x0145, 0x014C, 0x0136, 0x00D4, 0x00D5, 0x00D6, 0x00D7,
4828     0x00D8, 0x0172, 0x00DA, 0x00DB, 0x00DC, 0x0168, 0x016A, 0x00DF,
4829     0x0101, 0x00E1, 0x00E2, 0x00E3, 0x00E4, 0x00E5, 0x00E6, 0x012F,
4830     0x010D, 0x00E9, 0x0119, 0x00EB, 0x0117, 0x00ED, 0x00EE, 0x012B,
4831     0x0111, 0x0146, 0x014D, 0x0137, 0x00F4, 0x00F5, 0x00F6, 0x00F7,
4832     0x00F8, 0x0173, 0x00FA, 0x00FB, 0x00FC, 0x0169, 0x016B, 0x02D9
4833 };
4834
4835 struct x_to_unicode u_8859_5 = {
4836     96,32,X2U_ISO|X2U_STD,AL_CYRIL,"ISO Latin/Cyrillic","cyrillic-iso",144,"L",
4837     0x00A0, 0x0401, 0x0402, 0x0403, 0x0404, 0x0405, 0x0406, 0x0407,
4838     0x0408, 0x0409, 0x040A, 0x040B, 0x040C, 0x00AD, 0x040E, 0x040F,
4839     0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417,
4840     0x0418, 0x0419, 0x041A, 0x041B, 0x041C, 0x041D, 0x041E, 0x041F,
4841     0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427,
4842     0x0428, 0x0429, 0x042A, 0x042B, 0x042C, 0x042D, 0x042E, 0x042F,
4843     0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437,
4844     0x0438, 0x0439, 0x043A, 0x043B, 0x043C, 0x043D, 0x043E, 0x043F,
4845     0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447,
4846     0x0448, 0x0449, 0x044A, 0x044B, 0x044C, 0x044D, 0x044E, 0x044F,
4847     0x2116, 0x0451, 0x0452, 0x0453, 0x0454, 0x0455, 0x0456, 0x0457,
4848     0x0458, 0x0459, 0x045A, 0x045B, 0x045C, 0x00A7, 0x045E, 0x045F
4849 };
4850
4851 struct x_to_unicode u_8859_6 = {
4852     96, 32, X2U_ISO|X2U_STD,AL_ARABIC,"ISO Latin/Arabic","arabic-iso",127,"G",
4853     0x00A0, 0xfffd, 0xfffd, 0xfffd, 0x00A4, 0xfffd, 0xfffd, 0xfffd,
4854     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x060C, 0x00AD, 0xfffd, 0xfffd,
4855     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4856     0xfffd, 0xfffd, 0xfffd, 0x061B, 0xfffd, 0xfffd, 0xfffd, 0x061F,
4857     0xfffd, 0x0621, 0x0622, 0x0623, 0x0624, 0x0625, 0x0626, 0x0627,
4858     0x0628, 0x0629, 0x062A, 0x062B, 0x062C, 0x062D, 0x062E, 0x062F,
4859     0x0630, 0x0631, 0x0632, 0x0633, 0x0634, 0x0635, 0x0636, 0x0637,
4860     0x0638, 0x0639, 0x063A, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4861     0x0640, 0x0641, 0x0642, 0x0643, 0x0644, 0x0645, 0x0646, 0x0647,
4862     0x0648, 0x0649, 0x064A, 0x064B, 0x064C, 0x064D, 0x064E, 0x064F,
4863     0x0650, 0x0651, 0x0652, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4864     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd
4865 };
4866
4867 struct x_to_unicode u_8859_7 = {
4868     96, 32, X2U_ISO|X2U_STD,AL_GREEK,"ISO Latin/Greek", "greek-iso", 126, "F",
4869     0x00A0, 0x2018, 0x2019, 0x00A3, 0xFFFD, 0xFFFD, 0x00A6, 0x00A7,
4870     0x00A8, 0x00A9, 0xFFFD, 0x00AB, 0x00AC, 0x00AD, 0xFFFD, 0x2015,
4871     0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x0384, 0x0385, 0x0386, 0x00B7,
4872     0x0388, 0x0389, 0x038A, 0x00BB, 0x038C, 0x00BD, 0x038E, 0x038F,
4873     0x0390, 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397,
4874     0x0398, 0x0399, 0x039A, 0x039B, 0x039C, 0x039D, 0x039E, 0x039F,
4875     0x03A0, 0x03A1, 0xfffd, 0x03A3, 0x03A4, 0x03A5, 0x03A6, 0x03A7,
4876     0x03A8, 0x03A9, 0x03AA, 0x03AB, 0x03AC, 0x03AD, 0x03AE, 0x03AF,
4877     0x03B0, 0x03B1, 0x03B2, 0x03B3, 0x03B4, 0x03B5, 0x03B6, 0x03B7,
4878     0x03B8, 0x03B9, 0x03BA, 0x03BB, 0x03BC, 0x03BD, 0x03BE, 0x03BF,
4879     0x03C0, 0x03C1, 0x03C2, 0x03C3, 0x03C4, 0x03C5, 0x03C6, 0x03C7,
4880     0x03C8, 0x03C9, 0x03CA, 0x03CB, 0x03CC, 0x03CD, 0x03CE, 0xfffd
4881 };
4882
4883 struct x_to_unicode u_8859_8 = {
4884     96, 32, X2U_ISO|X2U_STD,AL_HEBREW,"ISO Latin/Hebrew","hebrew-iso",121,"H",
4885     0x00A0, 0xfffd, 0x00A2, 0x00A3, 0x00A4, 0x00A5, 0x00A6, 0x00A7,
4886     0x00A8, 0x00A9, 0x00D7, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x203E,
4887     0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x00B4, 0x00B5, 0x00B6, 0x00B7,
4888     0x00B8, 0x00B9, 0x00F7, 0x00BB, 0x00BC, 0x00BD, 0x00BE, 0xfffd,
4889     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4890     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4891     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
4892     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x2017,
4893     0x05D0, 0x05D1, 0x05D2, 0x05D3, 0x05D4, 0x05D5, 0x05D6, 0x05D7,
4894     0x05D8, 0x05D9, 0x05DA, 0x05DB, 0x05DC, 0x05DD, 0x05DE, 0x05DF,
4895     0x05E0, 0x05E1, 0x05E2, 0x05E3, 0x05E4, 0x05E5, 0x05E6, 0x05E7,
4896     0x05E8, 0x05E9, 0x05EA, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd
4897 };
4898
4899 struct x_to_unicode u_8859_9 = {
4900     96, 32, X2U_ISO|X2U_STD, AL_ROMAN, "ISO Latin-5", "latin5", 148, "M",
4901     0x00A0, 0x00A1, 0x00A2, 0x00A3, 0x00A4, 0x00A5, 0x00A6, 0x00A7,
4902     0x00A8, 0x00A9, 0x00AA, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00AF,
4903     0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x00B4, 0x00B5, 0x00B6, 0x00B7,
4904     0x00B8, 0x00B9, 0x00BA, 0x00BB, 0x00BC, 0x00BD, 0x00BE, 0x00BF,
4905     0x00C0, 0x00C1, 0x00C2, 0x00C3, 0x00C4, 0x00C5, 0x00C6, 0x00C7,
4906     0x00C8, 0x00C9, 0x00CA, 0x00CB, 0x00CC, 0x00CD, 0x00CE, 0x00CF,
4907     0x011E, 0x00D1, 0x00D2, 0x00D3, 0x00D4, 0x00D5, 0x00D6, 0x00D7,
4908     0x00D8, 0x00D9, 0x00DA, 0x00DB, 0x00DC, 0x0130, 0x015E, 0x00DF,
4909     0x00E0, 0x00E1, 0x00E2, 0x00E3, 0x00E4, 0x00E5, 0x00E6, 0x00E7,
4910     0x00E8, 0x00E9, 0x00EA, 0x00EB, 0x00EC, 0x00ED, 0x00EE, 0x00EF,
4911     0x011F, 0x00F1, 0x00F2, 0x00F3, 0x00F4, 0x00F5, 0x00F6, 0x00F7,
4912     0x00F8, 0x00F9, 0x00FA, 0x00FB, 0x00FC, 0x0131, 0x015F, 0x00FF
4913 };
4914
4915 struct x_to_unicode u_8859_10 = {
4916     96, 32, X2U_ISO|X2U_STD, AL_ROMAN, "ISO Latin-6", "latin6", 157, "V",
4917     0x00a0, 0x0104, 0x0112, 0x0122, 0x012a, 0x0128, 0x0136, 0x013b,
4918     0x0143, 0x0156, 0x0160, 0x0166, 0x017d, 0x00ad, 0x0138, 0x014a,
4919     0x0111, 0x0105, 0x0113, 0x0123, 0x012b, 0x0129, 0x0137, 0x013c,
4920     0x0144, 0x0157, 0x0161, 0x0167, 0x017e, 0x00bd, 0x00be, 0x014b,
4921     0x0100, 0x00c1, 0x00c2, 0x00c3, 0x00c4, 0x00c5, 0x00c6, 0x012e,
4922     0x010c, 0x00c9, 0x0118, 0x00cb, 0x0116, 0x00cd, 0x00ce, 0x00cf,
4923     0x0110, 0x0145, 0x014c, 0x00de, 0x00d4, 0x00d5, 0x00d6, 0x0168,
4924     0x00d8, 0x0172, 0x00da, 0x00db, 0x00dc, 0x00dd, 0x00de, 0x016a,
4925     0x0101, 0x00e1, 0x00e2, 0x00d3, 0x00e4, 0x00e5, 0x00e6, 0x012f,
4926     0x010d, 0x00e9, 0x0119, 0x00eb, 0x0117, 0x00ed, 0x00ee, 0x00ef,
4927     0x00f0, 0x00f1, 0x014d, 0x00f3, 0x00f4, 0x00f5, 0x00f6, 0x0169,
4928     0x00f8, 0x0173, 0x00fa, 0x00fb, 0x00fc, 0x00fd, 0x00fe, 0x016b
4929 };
4930
4931 /* Latin-9 (ISO 8859-15) is the same as Latin-1 with the following changes:
4932  *   A4 is Euro Symbol           20AC
4933  *   A6 is Capital S Caron       0160
4934  *   A8 is Small s caron         0161
4935  *   B4 is Capital Z caron       017D
4936  *   B8 is Small z caron         017E
4937  *   BC is Capital OE ligature   0152
4938  *   BD is Small oe ligature     0153
4939  *   BE is Capital Y diaeresis   0178
4940  */
4941
4942 struct x_to_unicode u_8859_15 = {
4943     96, 32, X2U_ISO|X2U_STD, AL_ROMAN, "ISO Latin-9", "latin9", 0, NULL,
4944     0x00A0, 0x00A1, 0x00A2, 0x00A3, 0x20AC, 0x00A5, 0x0160, 0x00A7,
4945     0x0161, 0x00A9, 0x00AA, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00AF,
4946     0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x017D, 0x00B5, 0x00B6, 0x00B7,
4947     0x017E, 0x00B9, 0x00BA, 0x00BB, 0x0152, 0x0153, 0x0178, 0x00BF,
4948     0x00C0, 0x00C1, 0x00C2, 0x00C3, 0x00C4, 0x00C5, 0x00C6, 0x00C7,
4949     0x00C8, 0x00C9, 0x00CA, 0x00CB, 0x00CC, 0x00CD, 0x00CE, 0x00CF,
4950     0x00D0, 0x00D1, 0x00D2, 0x00D3, 0x00D4, 0x00D5, 0x00D6, 0x00D7,
4951     0x00D8, 0x00D9, 0x00DA, 0x00DB, 0x00DC, 0x00DD, 0x00DE, 0x00DF,
4952     0x00E0, 0x00E1, 0x00E2, 0x00E3, 0x00E4, 0x00E5, 0x00E6, 0x00E7,
4953     0x00E8, 0x00E9, 0x00EA, 0x00EB, 0x00EC, 0x00ED, 0x00EE, 0x00EF,
4954     0x00F0, 0x00F1, 0x00F2, 0x00F3, 0x00F4, 0x00F5, 0x00F6, 0x00F7,
4955     0x00F8, 0x00F9, 0x00FA, 0x00FB, 0x00FC, 0x00FD, 0x00FE, 0x00FF
4956 };
4957
4958 /* Dyadic Systems Dyalog/X APL, corresponds to APLTERMI.TTF. */
4959 /* Unicode mappings according to ISO-IEC / JTC 1 / SC 22 N 3067, 1999-12-28. */
4960
4961 struct x_to_unicode u_apl2 = {          /* Dyadic Systems APL + box drawings */
4962     96, 32, X2U_STD, AL_ROMAN, "Dyadic Systems APL", "apl-dyadic", 0, NULL,
4963     0x00a0, 0x00d7, 0x2502, 0x2524, 0x00a2, 0x2510, 0x2514, 0x2534,
4964     0x252c, 0x251c, 0x2500, 0x253c, 0x2518, 0x250c, 0x2206, 0x00f7,
4965     0x2260, 0x22c4, 0x2375, 0x2374, 0x237a, 0x220a, 0x2261, 0x2265,
4966     0x2264, 0x22a5, 0x22a4, 0x2190, 0x2218, 0x235d, 0x233f, 0x2340,
4967     0x234e, 0x2355, 0x234b, 0x2352, 0x2372, 0x2371, 0x2368, 0x235f,
4968     0x25af, 0x235e, 0x2339, 0x236b, 0x236a, 0x2262, 0x230a, 0x2308,
4969     0x2349, 0x2229, 0x222a, 0x236c, 0x00a3, 0x233d, 0x2296, 0x22a2,
4970     0x22a3, 0x2337, 0x00af, 0x2373, 0x00a8, 0x25cb, 0x2192, 0x2228,
4971     0x2282, 0x2283, 0x2359, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045,
4972     0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d,
4973     0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055,
4974     0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x2207, 0x2191, 0x2193
4975 };
4976
4977 struct x_to_unicode u_apl3 = {          /* APL-Plus = APL-2000 */
4978     128, 0, X2U_CXG, AL_ROMAN, "APL-2000", "apl-2000", 0, NULL,
4979     0x20ac, 0x22a3, 0x22a4, 0x22a5, 0x2190, 0x2192, 0x2191, 0x2193,
4980     0x2264, 0x2265, 0x2372, 0x2371, 0x25af, 0x235e, 0x2339, 0x2359,
4981     0x236b, 0x2206, 0x2207, 0x234b, 0x2352, 0x2355, 0x234e, 0x2308,
4982     0x230a, 0x2340, 0x233f, 0x2282, 0x2283, 0x2229, 0x222a, 0x2228,
4983     0x00a0, 0x00a1, 0x00a2, 0x00a3, 0x22a2, 0x00a5, 0x00a6, 0x00a7,
4984     0x00a8, 0x235d, 0x22c4, 0x00ab, 0x2260, 0x2261, 0x236a, 0x00af,
4985     0x2218, 0x25cb, 0x233d, 0x2349, 0x2296, 0x235f, 0x00b6, 0x00b7,
4986     0x237a, 0x220a, 0x2377, 0x00bb, 0x2373, 0x2374, 0x2375, 0x00bf,
4987     0x00c0, 0x00c1, 0x00c2, 0x00c3, 0x00c4, 0x00c5, 0x00c6, 0x00c7,
4988     0x00c8, 0x00c9, 0x00ca, 0x00cb, 0x00cc, 0x00cd, 0x00ce, 0x00cf,
4989     0x236c, 0x00d1, 0x00d2, 0x00d3, 0x00d4, 0x00d5, 0x00d6, 0x00d7,
4990     0x00d8, 0x00d9, 0x00da, 0x00db, 0x00dc, 0x00dd, 0x2337, 0x00df,
4991     0x00e0, 0x00e1, 0x00e2, 0x00e3, 0x00e4, 0x00e5, 0x00e6, 0x00e7,
4992     0x00e8, 0x00e9, 0x00ea, 0x00eb, 0x00ec, 0x00ed, 0x00ee, 0x00ef,
4993     0x2364, 0x00f1, 0x00f2, 0x00f3, 0x00f4, 0x00f5, 0x00f6, 0x00f7,
4994     0x2205, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x00fd, 0x2368, 0x00ff
4995 };
4996
4997 struct x_to_unicode u_apl4 = {          /* IBM APL2 */
4998     128, 0, X2U_CXG, AL_ROMAN, "IBM APL2", "apl2-ibm", 0, NULL,
4999     0x00c7, 0x00fc, 0x00e9, 0x00e2, 0x00e4, 0x00e0, 0x00e5, 0x00e7,
5000     0x00ea, 0x00eb, 0x00e8, 0x00ef, 0x00ee, 0x00ec, 0x00c4, 0x00c5,
5001     0x25af, 0x235e, 0x2339, 0x00f4, 0x00f6, 0x00f2, 0x00fb, 0x00f9,
5002     0x22a4, 0x00d6, 0x00dc, 0x00f8, 0x00a3, 0x22a5, 0x2190, 0x2336,
5003     0x00e1, 0x00ed, 0x00f3, 0x00fa, 0x00f1, 0x00d1, 0x00aa, 0x00ba,
5004     0x00bf, 0x2308, 0x00ac, 0x2192, 0x222a, 0x00a1, 0x2355, 0x234e,
5005     0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x235f, 0x2206, 0x2207,
5006     0x2192, 0x2563, 0x2551, 0x2557, 0x255d, 0x2190, 0x230a, 0x2510,
5007     0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x2191, 0x2193,
5008     0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x2261,
5009     0x2378, 0x2377, 0x2235, 0x2337, 0x2342, 0x233b, 0x22a2, 0x22a3,
5010     0x22c4, 0x2518, 0x250c, 0x2588, 0x2584, 0x00a6, 0x00cc, 0x2580,
5011     0x237a, 0x00df, 0x2282, 0x2283, 0x235d, 0x2372, 0x2374, 0x2371,
5012     0x233d, 0x2296, 0x25cb, 0x2228, 0x2373, 0x2349, 0x00c5, 0x2229,
5013     0x233f, 0x2340, 0x2265, 0x2264, 0x2260, 0x00d7, 0x00f7, 0x2359,
5014     0x2218, 0x2375, 0x236b, 0x234b, 0x2352, 0x00af, 0x00a8, 0x00a0
5015 };
5016
5017 struct x_to_unicode u_apl5 = {          /* APL-2741 */
5018     128, 0, X2U_CXG, AL_ROMAN, "APL-2741", "apl-2741", 0, NULL,
5019     0x20ac, 0x22a3, 0x22a4, 0x22a5, 0x2190, 0x2192, 0x2191, 0x2193,
5020     0x2264, 0x2265, 0x2372, 0x2371, 0x25af, 0x235e, 0x2339, 0x2359,
5021     0x236b, 0x2206, 0x2207, 0x234b, 0x2352, 0x2355, 0x234e, 0x2308,
5022     0x230a, 0x2340, 0x233f, 0x2282, 0x2283, 0x2229, 0x222a, 0x2228,
5023     0x00a0, 0x00a1, 0x00a2, 0x00a3, 0x22a2, 0x2378, 0x2261, 0x2336,
5024     0x00a8, 0x235d, 0x22c4, 0x236c, 0x2260, 0x2261, 0x236a, 0x00af,
5025     0x2218, 0x25cb, 0x233d, 0x2349, 0x2296, 0x235f, 0x00b6, 0x00b7,
5026     0x237a, 0x220a, 0x2377, 0x2262, 0x2373, 0x2374, 0x2375, 0x00bf,
5027     0x2514, 0x2534, 0x252c, 0x251c, 0x00c4, 0x00c5, 0x00c6, 0x00c7,
5028     0x00c8, 0x00c9, 0x2342, 0x233b, 0x2510, 0x00cd, 0x2500, 0x253c,
5029     0x236c, 0x00d1, 0x2350, 0x2357, 0x2347, 0x2348, 0x00d6, 0x00d7,
5030     0x00d8, 0x2518, 0x250c, 0x2502, 0x00dc, 0x2524, 0x2337, 0x00df,
5031     0x00e0, 0x00e1, 0x00e2, 0x00e3, 0x00e4, 0x00e5, 0x00e6, 0x00e7,
5032     0x00e8, 0x00e9, 0x00ea, 0x00eb, 0x00ec, 0x00ed, 0x00ee, 0x00ef,
5033     0x2364, 0x00f1, 0x00f2, 0x00f3, 0x00f4, 0x00f5, 0x00f6, 0x00f7,
5034     0x2205, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x2235, 0x2368, 0x2365
5035 };
5036
5037 /* 8-bit GOST standard sets */
5038
5039 struct x_to_unicode u_koi8 = {
5040     96, 32, X2U_STD, AL_CYRIL, "KOI-8", "koi8", 0, NULL,
5041     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
5042     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
5043     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
5044     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
5045     0x044E, 0x0430, 0x0431, 0x0446, 0x0434, 0x0435, 0x0444, 0x0433,
5046     0x0445, 0x0438, 0x0439, 0x043A, 0x043B, 0x043C, 0x043D, 0x043E,
5047     0x043F, 0x044F, 0x0440, 0x0441, 0x0442, 0x0443, 0x0436, 0x0432,
5048     0x044C, 0x044B, 0x0437, 0x0448, 0x044D, 0x0449, 0x0447, 0x044A,
5049     0x042E, 0x0410, 0x0411, 0x0426, 0x0414, 0x0415, 0x0424, 0x0413,
5050     0x0425, 0x0418, 0x0419, 0x041A, 0x041B, 0x041C, 0x041D, 0x041E,
5051     0x041F, 0x042F, 0x0420, 0x0421, 0x0422, 0x0423, 0x0416, 0x0412,
5052     0x042C, 0x042B, 0x0417, 0x0428, 0x042D, 0x0429, 0x0427, 0xfffd
5053 };
5054
5055 /* Other KOI-8 based sets */
5056
5057 struct x_to_unicode u_koi8r = {         /* (Russia) Table from RFC1489 */
5058     128, 0, X2U_CP, AL_CYRIL, "KOI8-R", "koi8r", 0, NULL,
5059     0x2500, 0x2502, 0x250C, 0x2510, 0x2514, 0x2518, 0x251C, 0x2524,
5060     0x252C, 0x2534, 0x253C, 0x2580, 0x2584, 0x2588, 0x258C, 0x2590,
5061     0x2591, 0x2592, 0x2593, 0x2320, 0x25A0, 0x2219, 0x221A, 0x2248,
5062     0x2264, 0x2265, 0x00A0, 0x2321, 0x00B0, 0x00B2, 0x00B7, 0x00F7,
5063     0x2550, 0x2551, 0x2552, 0x0451, 0x2553, 0x2554, 0x2555, 0x2556,
5064     0x2557, 0x2558, 0x2559, 0x255A, 0x255B, 0x255C, 0x255D, 0x255E,
5065     0x255F, 0x2560, 0x2561, 0x0401, 0x2562, 0x2563, 0x2564, 0x2565,
5066     0x2566, 0x2567, 0x2568, 0x2569, 0x256A, 0x256B, 0x256C, 0x00A9,
5067     0x044E, 0x0430, 0x0431, 0x0446, 0x0434, 0x0435, 0x0444, 0x0433,
5068     0x0445, 0x0438, 0x0439, 0x043A, 0x043B, 0x043C, 0x043D, 0x043E,
5069     0x043F, 0x044F, 0x0440, 0x0441, 0x0442, 0x0443, 0x0436, 0x0432,
5070     0x044C, 0x044B, 0x0437, 0x0448, 0x044D, 0x0449, 0x0447, 0x044A,
5071     0x042E, 0x0410, 0x0411, 0x0426, 0x0414, 0x0415, 0x0424, 0x0413,
5072     0x0425, 0x0418, 0x0419, 0x041A, 0x041B, 0x041C, 0x041D, 0x041E,
5073     0x041F, 0x042F, 0x0420, 0x0421, 0x0422, 0x0423, 0x0416, 0x0412,
5074     0x042C, 0x042B, 0x0417, 0x0428, 0x042D, 0x0429, 0x0427, 0x042A
5075 };
5076
5077 struct x_to_unicode u_koi8u = {         /* (Ukraine) From RFC2319 */
5078    128, 0, X2U_CP, AL_CYRIL, "KOI8-U", "koi8u", 0, NULL,
5079     0x2500, 0x2502, 0x250C, 0x2510, 0x2514, 0x2518, 0x251C, 0x2524,
5080     0x252C, 0x2534, 0x253C, 0x2580, 0x2584, 0x2588, 0x258C, 0x2590,
5081     0x2591, 0x2592, 0x2593, 0x2320, 0x25A0, 0x2219, 0x221A, 0x2248,
5082     0x2264, 0x2265, 0x00A0, 0x2321, 0x00B0, 0x00B2, 0x00B7, 0x00F7,
5083     0x2550, 0x2551, 0x2552, 0x0451, 0x0454, 0x2554, 0x0456, 0x0457,
5084     0x2557, 0x2558, 0x2559, 0x255A, 0x255B, 0x0491, 0x255D, 0x255E,
5085     0x255F, 0x2560, 0x2561, 0x0401, 0x0404, 0x2563, 0x0406, 0x0407,
5086     0x2566, 0x2567, 0x2568, 0x2569, 0x256A, 0x0490, 0x256C, 0x00A9,
5087     0x044E, 0x0430, 0x0431, 0x0446, 0x0434, 0x0435, 0x0444, 0x0433,
5088     0x0445, 0x0438, 0x0439, 0x043A, 0x043B, 0x043C, 0x043D, 0x043E,
5089     0x043F, 0x044F, 0x0440, 0x0441, 0x0442, 0x0443, 0x0436, 0x0432,
5090     0x044C, 0x044B, 0x0437, 0x0448, 0x044D, 0x0449, 0x0447, 0x044A,
5091     0x042E, 0x0410, 0x0411, 0x0426, 0x0414, 0x0415, 0x0424, 0x0413,
5092     0x0425, 0x0418, 0x0419, 0x041A, 0x041B, 0x041C, 0x041D, 0x041E,
5093     0x041F, 0x042F, 0x0420, 0x0421, 0x0422, 0x0423, 0x0416, 0x0412,
5094     0x042C, 0x042B, 0x0417, 0x0428, 0x042D, 0x0429, 0x0427, 0x042A
5095 };
5096
5097 /* PC Code Pages */
5098
5099 struct x_to_unicode u_cp437 = {
5100     128, 0, X2U_CP, AL_ROMAN,"PC Code Page 437","cp437", 0, NULL,
5101     0x00c7, 0x00fc, 0x00e9, 0x00e2, 0x00e4, 0x00e0, 0x00e5, 0x00e7,
5102     0x00ea, 0x00eb, 0x00e8, 0x00ef, 0x00ee, 0x00ec, 0x00c4, 0x00c5,
5103     0x00c9, 0x00e6, 0x00c6, 0x00f4, 0x00f6, 0x00f2, 0x00fb, 0x00f9,
5104     0x00ff, 0x00d6, 0x00dc, 0x00a2, 0x00a3, 0x00a5, 0x20a7, 0x0192,
5105     0x00e1, 0x00ed, 0x00f3, 0x00fa, 0x00f1, 0x00d1, 0x00aa, 0x00ba,
5106     0x00bf, 0x2310, 0x00ac, 0x00bd, 0x00bc, 0x00a1, 0x00ab, 0x00bb,
5107     0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556,
5108     0x2555, 0x2563, 0x2551, 0x2557, 0x255d, 0x255c, 0x255b, 0x2510,
5109     0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x255e, 0x255f,
5110     0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x2567,
5111     0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256b,
5112     0x256a, 0x2518, 0x250c, 0x2588, 0x2584, 0x258c, 0x2590, 0x2580,
5113     0x03b1, 0x00df, 0x0393, 0x03c0, 0x03a3, 0x03c3, 0x00b5, 0x03c4,
5114     0x03a6, 0x0398, 0x03a9, 0x03b4, 0x221e, 0x03c6, 0x03b5, 0x2229,
5115     0x2261, 0x00b1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00f7, 0x2248,
5116     0x00b0, 0x2219, 0x00b7, 0x221a, 0x207f, 0x00b2, /* 0x25ae */ 0x25a0, 0x00a0
5117 };
5118
5119 struct x_to_unicode u_mazovia = {
5120     128, 0, X2U_CP, AL_ROMAN,"Polish Mazovia PC Code Page","mazovia", 0, NULL,
5121     0x00c7, 0x00fc, 0x00e9, 0x00e2, 0x00e4, 0x00e0, 0x0105, 0x00e7, /* 80 */
5122     0x00ea, 0x00eb, 0x00e8, 0x00ef, 0x00ee, 0x0107, 0x00c4, 0x0104, /* 88 */
5123     0x0118, 0x0119, 0x0142, 0x00f4, 0x00f6, 0x0106, 0x00fb, 0x00f9, /* 90 */
5124     0x015a, 0x00d6, 0x00dc, 0x00a2, 0x0141, 0x00a5, 0x015b, 0x0192, /* 98 */
5125     0x0179, 0x017b, 0x00f3, 0x00d3, 0x0144, 0x0143, 0x017a, 0x017c, /* a0 */
5126     0x00bf, 0x2310, 0x00ac, 0x00bd, 0x00bc, 0x00a1, 0x00ab, 0x00bb, /* a8 */
5127     0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, /* b0 */
5128     0x2555, 0x2563, 0x2551, 0x2557, 0x255d, 0x255c, 0x255b, 0x2510, /* b8 */
5129     0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x255e, 0x255f, /* c0 */
5130     0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x2567, /* c8 */
5131     0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256b, /* d0 */
5132     0x256a, 0x2518, 0x250c, 0x2588, 0x2584, 0x258c, 0x2590, 0x2580, /* d8 */
5133     0x03b1, 0x00df, 0x0393, 0x03c0, 0x03a3, 0x03c3, 0x00b5, 0x03c4, /* e0 */
5134     0x03a6, 0x0398, 0x03a9, 0x03b4, 0x221e, 0x03c6, 0x03b5, 0x2229, /* e8 */
5135     0x2261, 0x00b1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00f7, 0x2248, /* f0 */
5136     0x00b0, 0x2219, 0x00b7, 0x221a, 0x207f, 0x00b2, 0x25a0, 0x00a0  /* f8 */
5137 };
5138
5139 struct x_to_unicode u_cp850 = {
5140     128, 0, X2U_CP, AL_ROMAN,"PC Code Page 850","cp850", 0, NULL,
5141     0x00c7, 0x00fc, 0x00e9, 0x00e2, 0x00e4, 0x00e0, 0x00e5, 0x00e7,
5142     0x00ea, 0x00eb, 0x00e8, 0x00ef, 0x00ee, 0x00ec, 0x00c4, 0x00c5,
5143     0x00c9, 0x00e6, 0x00c6, 0x00f4, 0x00f6, 0x00f2, 0x00fb, 0x00f9,
5144     0x00ff, 0x00d6, 0x00dc, 0x00f8, 0x00a3, 0x00d8, 0x00d7, 0x0192,
5145     0x00e1, 0x00ed, 0x00f3, 0x00fa, 0x00f1, 0x00d1, 0x00aa, 0x00ba,
5146     0x00bf, 0x00ae, 0x00ac, 0x00bd, 0x00bc, 0x00a1, 0x00ab, 0x00bb,
5147     0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x00c1, 0x00c2, 0x00c0,
5148     0x00a9, 0x2563, 0x2551, 0x2557, 0x255d, 0x00a2, 0x00a5, 0x2510,
5149     0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x00e3, 0x00c3,
5150     0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x00a4,
5151     0x00f0, 0x00d0, 0x00ca, 0x00cb, 0x00c8, 0x0131, 0x00cd, 0x00ce,
5152     0x00cf, 0x2518, 0x250c, 0x2588, 0x2584, 0x00a6, 0x00cc, 0x2580,
5153     0x00d3, 0x00df, 0x00d4, 0x00d2, 0x00f5, 0x00d5, 0x00b5, 0x00fe,
5154     0x00de, 0x00da, 0x00db, 0x00d9, 0x00fd, 0x00dd, 0x00af, 0x00b4,
5155     0x00ad, 0x00b1, 0x2017, 0x00be, 0x00b6, 0x00a7, 0x00f7, 0x00b8,
5156     0x00b0, 0x00a8, 0x00b7, 0x00b9, 0x00b3, 0x00b2, 0x25a0, 0x00a0
5157 };
5158
5159 struct x_to_unicode u_cp852 = {
5160     128, 0, X2U_CP, AL_ROMAN,"PC Code Page 852","cp852", 0, NULL,
5161     0x00c7, 0x00fc, 0x00e9, 0x00e2, 0x00e4, 0x016f, 0x0107, 0x00e7,
5162     0x0142, 0x00eb, 0x0150, 0x0151, 0x00ee, 0x0179, 0x00c4, 0x0106,
5163     0x00c9, 0x0139, 0x013a, 0x00f4, 0x00f6, 0x013d, 0x013e, 0x015a,
5164     0x015b, 0x00d6, 0x00dc, 0x0164, 0x0165, 0x0141, 0x00d7, 0x010d,
5165     0x00e1, 0x00ed, 0x00f3, 0x00fa, 0x0104, 0x0105, 0x017d, 0x017e,
5166     0x0118, 0x0119, 0x00ac, 0x017a, 0x010c, 0x015f, 0x00ab, 0x00bb,
5167     0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x00c1, 0x00c2, 0x011a,
5168     0x015e, 0x2563, 0x2551, 0x2557, 0x255d, 0x017b, 0x017c, 0x2510,
5169     0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x0102, 0x0103,
5170     0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x00a4,
5171     0x0111, 0x0110, 0x010e, 0x00cb, 0x010f, 0x0147, 0x00cd, 0x00ce,
5172     0x011b, 0x2518, 0x250c, 0x2588, 0x2584, 0x0162, 0x016e, 0x2580,
5173     0x00d3, 0x00df, 0x00d4, 0x0143, 0x0144, 0x0148, 0x0160, 0x0161,
5174     0x0154, 0x00da, 0x0155, 0x0170, 0x00fd, 0x00dd, 0x0163, 0x00b4,
5175     0x00ad, 0x02dd, 0x02db, 0x02c7, 0x02d8, 0x00a7, 0x00f7, 0x00b8,
5176     0x00b0, 0x00a8, 0x02d9, 0x0171, 0x0158, 0x0159, 0x25a0, 0x00a0
5177 };
5178
5179 struct x_to_unicode u_cp855 = {         /* CP855 Cyrillic to Unicode */
5180     128, 0, X2U_CP, AL_CYRIL,"PC Code Page 855","cp855", 0, NULL,
5181     0x0452, 0x0402, 0x0453, 0x0403, 0x0451, 0x0401, 0x0454, 0x0404,
5182     0x0455, 0x0405, 0x0456, 0x0406, 0x0457, 0x0407, 0x0458, 0x0408,
5183     0x0459, 0x0409, 0x045a, 0x040a, 0x045b, 0x040b, 0x045c, 0x040c,
5184     0x045e, 0x040e, 0x045f, 0x040f, 0x044e, 0x042e, 0x044a, 0x042a,
5185     0x0430, 0x0410, 0x0431, 0x0411, 0x0446, 0x0426, 0x0434, 0x0414,
5186     0x0435, 0x0415, 0x0444, 0x0424, 0x0433, 0x0413, 0x00ab, 0x00bb,
5187     0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x0445, 0x0425, 0x0438,
5188     0x0418, 0x2563, 0x2551, 0x2557, 0x255d, 0x0439, 0x0419, 0x2510,
5189     0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x043a, 0x041a,
5190     0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x00a4,
5191     0x043b, 0x041b, 0x043c, 0x041c, 0x043d, 0x041d, 0x043e, 0x041e,
5192     0x043f, 0x2518, 0x250c, 0x2588, 0x2584, 0x041f, 0x044f, 0x2580,
5193     0x042f, 0x0440, 0x0420, 0x0441, 0x0421, 0x0442, 0x0422, 0x0443,
5194     0x0423, 0x0436, 0x0416, 0x0432, 0x0412, 0x044c, 0x042c, 0x2116,
5195     0x002d, 0x044b, 0x042b, 0x0437, 0x0417, 0x0448, 0x0428, 0x044d,
5196     0x042d, 0x0449, 0x0429, 0x0447, 0x0427, 0x00a7, 0x25a0, 0x0020
5197 };
5198
5199 struct x_to_unicode u_cp856 = {         /* CP856 (Bulgaria) to Unicode */
5200     128, 0, X2U_CP, AL_CYRIL,"PC Code Page 856","cp856", 0, NULL,
5201     0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417,
5202     0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e, 0x041f,
5203     0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427,
5204     0x0428, 0x0429, 0x042a, 0x042b, 0x042c, 0x042d, 0x042e, 0x042f,
5205     0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437,
5206     0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e, 0x043f,
5207     0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447,
5208     0x0448, 0x0449, 0x044a, 0x044b, 0x044c, 0x044d, 0x044e, 0x044f,
5209     0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x2563, 0x2551,
5210     0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x2510,
5211     0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2116, 0x00a7, 0x2557,
5212     0x255d, 0x2518, 0x250c, 0x2588, 0x2584, 0x258c, 0x2590, 0x2580,
5213     0x03b1, 0x00df, 0x0393, 0x03c0, 0x03a3, 0x03c3, 0x00b5, 0x03c4,
5214     0x03a6, 0x0398, 0x03a9, 0x03b4, 0x221e, 0x03c6, 0x03b5, 0x2229,
5215     0x2261, 0x00b1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00f7, 0x2248,
5216     0x00b0, 0x2219, 0x00b7, 0x221a, 0x207f, 0x00b2, 0x25a0, 0x00a0
5217 };
5218
5219 struct x_to_unicode u_cp857 = {
5220     128, 0, X2U_CP, AL_ROMAN,"PC Code Page 857","cp857", 0, NULL,
5221     0x00c7, 0x00fc, 0x00e9, 0x00e2, 0x00e4, 0x00e0, 0x00e5, 0x00e7, /* 0x80 */
5222     0x00ea, 0x00eb, 0x00e8, 0x00ef, 0x00ee, 0x0131, 0x00c4, 0x00c5, /* 0x88 */
5223     0x00c9, 0x00e6, 0x00c6, 0x00f4, 0x00f6, 0x00f2, 0x00fb, 0x00f9, /* 0x90 */
5224     0x0130, 0x00d6, 0x00dc, 0x00f8, 0x00a3, 0x00d8, 0x015e, 0x015f, /* 0x98 */
5225     0x00e1, 0x00ed, 0x00f3, 0x00fa, 0x00f1, 0x00d1, 0x011e, 0x011f, /* 0xa0 */
5226     0x00bf, 0x00ae, 0x00ac, 0x00bd, 0x00bc, 0x00a1, 0x00ab, 0x00bb, /* 0xa8 */
5227     0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x00c1, 0x00c2, 0x00c0, /* 0xb0 */
5228     0x00a9, 0x2563, 0x2551, 0x2557, 0x255d, 0x00a2, 0x00a5, 0x2510, /* 0xb8 */
5229     0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x00e3, 0x00c3, /* 0xc0 */
5230     0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x00a4, /* 0xc8 */
5231     0x00ba, 0x00aa, 0x00ca, 0x00cb, 0x00c8, 0x20ac, 0x00cd, 0x00ce, /* 0xd0 */
5232     0x00cf, 0x2518, 0x250c, 0x2588, 0x2584, 0x00a6, 0x00cc, 0x2580, /* 0xd8 */
5233     0x00d3, 0x00df, 0x00d4, 0x00d2, 0x00f5, 0x00d5, 0x00b5, 0xfffd, /* 0xe0 */
5234     0x00d7, 0x00da, 0x00db, 0x00d9, 0x00ec, 0x00ff, 0x00af, 0x00b4, /* 0xe8 */
5235     0x00ad, 0x00b1, 0xfffd, 0x00be, 0x00b6, 0x00a7, 0x00f7, 0x00b8, /* 0xf0 */
5236     0x00b0, 0x00a8, 0x00b7, 0x00b9, 0x00b3, 0x00b2, 0x25a0, 0x00a0  /* 0xf8 */
5237 };
5238
5239 struct x_to_unicode u_cp858 = {
5240     128, 0, X2U_CP, AL_ROMAN,"PC Code Page 858","cp858", 0, NULL,
5241     0x00c7, 0x00fc, 0x00e9, 0x00e2, 0x00e4, 0x00e0, 0x00e5, 0x00e7,
5242     0x00ea, 0x00eb, 0x00e8, 0x00ef, 0x00ee, 0x00ec, 0x00c4, 0x00c5,
5243     0x00c9, 0x00e6, 0x00c6, 0x00f4, 0x00f6, 0x00f2, 0x00fb, 0x00f9,
5244     0x00ff, 0x00d6, 0x00dc, 0x00f8, 0x00a3, 0x00d8, 0x00d7, 0x0192,
5245     0x00e1, 0x00ed, 0x00f3, 0x00fa, 0x00f1, 0x00d1, 0x00aa, 0x00ba,
5246     0x00bf, 0x00ae, 0x00ac, 0x00bd, 0x00bc, 0x00a1, 0x00ab, 0x00bb,
5247     0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x00c1, 0x00c2, 0x00c0,
5248     0x00a9, 0x2563, 0x2551, 0x2557, 0x255d, 0x00a2, 0x00a5, 0x2510,
5249     0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x00e3, 0x00c3,
5250     0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x00a4,
5251     0x00f0, 0x00d0, 0x00ca, 0x00cb, 0x00c8, 0x20ac, 0x00cd, 0x00ce,
5252     0x00cf, 0x2518, 0x250c, 0x2588, 0x2584, 0x00a6, 0x00cc, 0x2580,
5253     0x00d3, 0x00df, 0x00d4, 0x00d2, 0x00f5, 0x00d5, 0x00b5, 0x00fe,
5254     0x00de, 0x00da, 0x00db, 0x00d9, 0x00fd, 0x00dd, 0x00af, 0x00b4,
5255     0x00ad, 0x00b1, 0x2017, 0x00be, 0x00b6, 0x00a7, 0x00f7, 0x00b8,
5256     0x00b0, 0x00a8, 0x00b7, 0x00b9, 0x00b3, 0x00b2, 0x25a0, 0x00a0
5257 };
5258
5259 struct x_to_unicode u_cp862 = {
5260     128, 0, X2U_CP, AL_HEBREW,"PC Code Page 862","cp862", 0, NULL,
5261     0x05d0, 0x05d1, 0x05d2, 0x05d3, 0x05d4, 0x05d5, 0x05d6, 0x05d7,
5262     0x05d8, 0x05d9, 0x05da, 0x05db, 0x05dc, 0x05dd, 0x05de, 0x05df,
5263     0x05e0, 0x05e1, 0x05e2, 0x05e3, 0x05e4, 0x05e5, 0x05e6, 0x05e7,
5264     0x05e8, 0x05e9, 0x05ea, 0x00a2, 0x00a3, 0x00a5, 0x20a7, 0x0192,
5265     0x00e1, 0x00ed, 0x00f3, 0x00fa, 0x00f1, 0x00d1, 0x00aa, 0x00ba,
5266     0x00bf, 0x2310, 0x00ac, 0x00bd, 0x00bc, 0x00a1, 0x00ab, 0x00bb,
5267     0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556,
5268     0x2555, 0x2563, 0x2551, 0x2557, 0x255d, 0x255c, 0x255b, 0x2510,
5269     0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x255e, 0x255f,
5270     0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x2567,
5271     0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256b,
5272     0x256a, 0x2518, 0x250c, 0x2588, 0x2584, 0x258c, 0x2590, 0x2580,
5273     0x03b1, 0x00df, 0x0393, 0x03c0, 0x03a3, 0x03c3, 0x00b5, 0x03c4,
5274     0x03a6, 0x0398, 0x03a9, 0x03b4, 0x221e, 0x03c6, 0x03b5, 0x2229,
5275     0x2261, 0x00b1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00f7, 0x2248,
5276     0x00b0, 0x2219, 0x00b7, 0x221a, 0x207f, 0x00b2, 0x25a0, 0x00a0
5277 };
5278
5279 struct x_to_unicode u_cp864 = {
5280     128, 0, X2U_CP, AL_ARABIC,"PC Code Page 864","cp864", 0, NULL,
5281     0x00b0, 0x00b7, 0x2219, 0x221a, 0x2592, 0x2500, 0x2502, 0x253c,
5282     0x2524, 0x252c, 0x251c, 0x2534, 0x2510, 0x250c, 0x2514, 0x2518,
5283     0x03b2, 0x221e, 0x03c6, 0x00b1, 0x00bd, 0x00bc, 0x2248, 0x00ab,
5284     0x00bb, 0xfef7, 0xfef8, 0xfffd, 0xfffd, 0xfefb, 0xfefc, 0xfffd,
5285     0x00a0, 0x00ad, 0xfe82, 0x00a3, 0x00a4, 0xfe84, 0xfffd, 0xfffd,
5286     0xfe8e, 0xfe8f, 0xfe95, 0xfe99, 0x060c, 0xfe9d, 0xfea1, 0xfea5,
5287     0x0660, 0x0661, 0x0662, 0x0663, 0x0664, 0x0665, 0x0666, 0x0667,
5288     0x0668, 0x0669, 0xfed1, 0x061b, 0xfeb1, 0xfeb5, 0xfeb9, 0x061f,
5289     0x00a2, 0xfe80, 0xfe81, 0xfe83, 0xfe85, 0xfeca, 0xfe8b, 0xfe8d,
5290     0xfe91, 0xfe93, 0xfe97, 0xfe9b, 0xfe9f, 0xfea3, 0xfea7, 0xfea9,
5291     0xfeab, 0xfead, 0xfeaf, 0xfeb3, 0xfeb7, 0xfebb, 0xfebf, 0xfec1,
5292     0xfec5, 0xfecb, 0xfecf, 0x00a6, 0x00ac, 0x00f7, 0x00d7, 0xfec9,
5293     0x0640, 0xfed3, 0xfed7, 0xfedb, 0xfedf, 0xfee3, 0xfee7, 0xfeeb,
5294     0xfeed, 0xfeef, 0xfef3, 0xfebd, 0xfecc, 0xfece, 0xfecd, 0xfee1,
5295     0xfe7d, 0x0651, 0xfee5, 0xfee9, 0xfeec, 0xfef0, 0xfef2, 0xfed0,
5296     0xfed5, 0xfef5, 0xfef6, 0xfedd, 0xfed9, 0xfef1, 0x25a0, 0xfffd
5297 };
5298
5299 struct x_to_unicode u_cp866 = {
5300     128, 0, X2U_CP, AL_CYRIL,"PC Code Page 866","cp866", 0, NULL,
5301     0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417,
5302     0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e, 0x041f,
5303     0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427,
5304     0x0428, 0x0429, 0x042a, 0x042b, 0x042c, 0x042d, 0x042e, 0x042f,
5305     0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437,
5306     0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e, 0x043f,
5307     0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556,
5308     0x2555, 0x2563, 0x2551, 0x2557, 0x255d, 0x255c, 0x255b, 0x2510,
5309     0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x255e, 0x255f,
5310     0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x2567,
5311     0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256b,
5312     0x256a, 0x2518, 0x250c, 0x2588, 0x2584, 0x258c, 0x2590, 0x2580,
5313     0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447,
5314     0x0448, 0x0449, 0x044a, 0x044b, 0x044c, 0x044d, 0x044e, 0x044f,
5315     0x0401, 0x0451, 0x0404, 0x0454, 0x0407, 0x0457, 0x040e, 0x045e,
5316     0x00b0, 0x2219, 0x00b7, 0x221a, 0x2116, 0x00a4, 0x25a0, 0x00a0
5317 };
5318
5319 struct x_to_unicode u_cp869 = {
5320     128, 0, X2U_CP, AL_GREEK,"PC Code Page 869","cp869", 0, NULL,
5321     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x0386, 0xfffd,
5322     0x00b7, 0x00ac, 0x00a6, 0x2018, 0x2019, 0x0388, 0x2015, 0x0389,
5323     0x038a, 0x03aa, 0x038c, 0xfffd, 0xfffd, 0x038e, 0x03ab, 0x00a9,
5324     0x038f, 0x00b2, 0x00b3, 0x03ac, 0x00a3, 0x03ad, 0x03ae, 0x03af,
5325     0x03ca, 0x0390, 0x03cc, 0x03cd, 0x0391, 0x0392, 0x0393, 0x0394,
5326     0x0395, 0x0396, 0x0397, 0x00bd, 0x0398, 0x0399, 0x00ab, 0x00bb,
5327     0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x039a, 0x039b, 0x039c,
5328     0x039d, 0x2563, 0x2551, 0x2557, 0x255d, 0x039e, 0x039f, 0x2510,
5329     0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x03a0, 0x03a1,
5330     0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x03a3,
5331     0x03a4, 0x03a5, 0x03a6, 0x03a7, 0x03a8, 0x03a9, 0x03b1, 0x03b2,
5332     0x03b3, 0x2518, 0x250c, 0x2588, 0x2584, 0x03b4, 0x03b5, 0x2580,
5333     0x03b6, 0x03b7, 0x03b8, 0x03b9, 0x03ba, 0x03bb, 0x03bc, 0x03bd,
5334     0x03be, 0x03bf, 0x03c0, 0x03c1, 0x03c3, 0x03c2, 0x03c4, 0x0384,
5335     0x00ad, 0x00b1, 0x03c5, 0x03c6, 0x03c7, 0x00a7, 0x03c8, 0x0385,
5336     0x00b0, 0x00a8, 0x03c9, 0x03cb, 0x03b0, 0x03ce, 0x25a0, 0x00a0
5337 };
5338
5339 /* Windows code pages */
5340
5341 struct x_to_unicode u_cp1250 = {        /* Windows Latin-2 */
5342     128, 0, X2U_CP, AL_ROMAN,"Windows Code Page 1250","cp1250", 0, NULL,
5343     0x20ac, 0xfffd, 0x201a, 0x0192, 0x201e, 0x2026, 0x2020, 0x2021, /* 80 */
5344     0x005e, 0x2031, 0x0160, 0x003c, 0x015a, 0x0164, 0x017d, 0x0179, /* 88 */
5345     0xfffd, 0x2018, 0x2019, 0x201c, 0x201d, 0x2022, 0x2012, 0x2014, /* 90 */
5346     0xfffd, 0x2122, 0x0161, 0x003e, 0x015b, 0x0165, 0x017e, 0x017a, /* 98 */
5347     0x00A0, 0x02c7, 0x02d8, 0x0141, 0x00A4, 0x0104, 0x00A6, 0x00A7, /* A0 */
5348     0x00A8, 0x00a9, 0x015E, 0x00ab, 0x00ac, 0x002D, 0x00ae, 0x017B, /* A8 */
5349     0x00B0, 0x00b1, 0x02DB, 0x0142, 0x00B4, 0x00b5, 0x00b6, 0x00b7, /* B0 */
5350     0x00B8, 0x0105, 0x015F, 0x00bb, 0x013d, 0x02DD, 0x013E, 0x017C, /* B8 */
5351     0x0154, 0x00C1, 0x00C2, 0x0102, 0x00C4, 0x0139, 0x0106, 0x00C7, /* C0 */
5352     0x010C, 0x00C9, 0x0118, 0x00CB, 0x011A, 0x00CD, 0x00CE, 0x010E,
5353     0x0110, 0x0143, 0x0147, 0x00D3, 0x00D4, 0x0150, 0x00D6, 0x00D7,
5354     0x0158, 0x016E, 0x00DA, 0x0170, 0x00DC, 0x00DD, 0x0162, 0x00DF,
5355     0x0155, 0x00E1, 0x00E2, 0x0103, 0x00E4, 0x013A, 0x0107, 0x00E7,
5356     0x010D, 0x00E9, 0x0119, 0x00EB, 0x011B, 0x00ED, 0x00EE, 0x010F,
5357     0x0111, 0x0144, 0x0148, 0x00F3, 0x00F4, 0x0151, 0x00F6, 0x00F7,
5358     0x0159, 0x016F, 0x00FA, 0x0171, 0x00FC, 0x00FD, 0x0163, 0x02D9
5359 };
5360
5361 struct x_to_unicode u_cp1251 = {        /* Windows Cyrillic */
5362     128, 0, X2U_CP, AL_CYRIL,"Windows Code Page 1251","cp1251", 0, NULL,
5363     0x0402, 0x0403, 0x201a, 0x0453, 0x201e, 0x2026, 0x2020, 0x2021, /* 80 */
5364     0x20ac, 0x2031, 0x0409, 0x003c, 0x040a, 0x040c, 0x040b, 0x040f, /* 88 */
5365     0x0452, 0x2018, 0x2019, 0x201c, 0x201d, 0x2022, 0x2012, 0x2014, /* 90 */
5366     0x007e, 0x2122, 0x0459, 0x003e, 0x045a, 0x045c, 0x045b, 0x045f, /* 98 */
5367     0x00A0, 0x040e, 0x045e, 0x0408, 0x00A4, 0x0490, 0x00A6, 0x00A7, /* a0 */
5368     0x0401, 0x00A9, 0x0404, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x0407, /* a8 */
5369     0x00b0, 0x00b1, 0x0406, 0x0456, 0x0491, 0x00B5, 0x00B6, 0x00B7, /* b0 */
5370     0x0451, 0x2116, 0x0454, 0x00BB, 0x0458, 0x0405, 0x0455, 0x0457, /* b8 */
5371     0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417, /* c0 */
5372     0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e, 0x041f, /* c8 */
5373     0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427, /* d0 */
5374     0x0428, 0x0429, 0x042a, 0x042b, 0x042c, 0x042d, 0x042e, 0x042f, /* d8 */
5375     0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437, /* e0 */
5376     0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e, 0x043f, /* e8 */
5377     0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447, /* f0 */
5378     0x0448, 0x0449, 0x044a, 0x044b, 0x044c, 0x044d, 0x044e, 0x044f  /* f8 */
5379 };
5380
5381 struct x_to_unicode u_cp1252 = {        /* Windows Latin-1 */
5382 /*
5383   The following code points added September 1998:
5384   0x80: Euro
5385   0x8E: Latin Capital Letter Z with Caron
5386   0x9E: Latin Small Letter Z with Caron
5387   Announced by Murray Sargent <murrays@microsoft.com> to Unicode consortium,
5388   email, 3 September 1998.  The code page was changed in June 1998.  The
5389   change is reflected in Windows 98 and "recent service packs" for Window 95
5390   and Windows NT 4.0.
5391 */
5392     128, 0, X2U_CP, AL_ROMAN,"Windows Code Page 1252","cp1252", 0, NULL,
5393     0x20ac, 0xfffd, 0x201a, 0x0192, 0x201e, 0x2026, 0x2020, 0x2021,
5394     0x005e, 0x2031, 0x0160, 0x003c, 0x0152, 0xfffd, 0x017D, 0xfffd,
5395     0xfffd, 0x2018, 0x2019, 0x201c, 0x201d, 0x2022, 0x2012, 0x2014,
5396     0x007e, 0x2122, 0x0161, 0x003e, 0x0153, 0xfffd, 0x017E, 0x0178,
5397     0x00A0, 0x00A1, 0x00A2, 0x00A3, 0x00A4, 0x00A5, 0x00A6, 0x00A7,
5398     0x00A8, 0x00A9, 0x00AA, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00AF,
5399     0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x00B4, 0x00B5, 0x00B6, 0x00B7,
5400     0x00B8, 0x00B9, 0x00BA, 0x00BB, 0x00BC, 0x00BD, 0x00BE, 0x00BF,
5401     0x00C0, 0x00C1, 0x00C2, 0x00C3, 0x00C4, 0x00C5, 0x00C6, 0x00C7,
5402     0x00C8, 0x00C9, 0x00CA, 0x00CB, 0x00CC, 0x00CD, 0x00CE, 0x00CF,
5403     0x00D0, 0x00D1, 0x00D2, 0x00D3, 0x00D4, 0x00D5, 0x00D6, 0x00D7,
5404     0x00D8, 0x00D9, 0x00DA, 0x00DB, 0x00DC, 0x00DD, 0x00DE, 0x00DF,
5405     0x00E0, 0x00E1, 0x00E2, 0x00E3, 0x00E4, 0x00E5, 0x00E6, 0x00E7,
5406     0x00E8, 0x00E9, 0x00EA, 0x00EB, 0x00EC, 0x00ED, 0x00EE, 0x00EF,
5407     0x00F0, 0x00F1, 0x00F2, 0x00F3, 0x00F4, 0x00F5, 0x00F6, 0x00F7,
5408     0x00F8, 0x00F9, 0x00FA, 0x00FB, 0x00FC, 0x00FD, 0x00FE, 0x00FF
5409 };
5410
5411 struct x_to_unicode u_cp1253 = {        /* Windows Greece */
5412     128, 0, X2U_CP, AL_GREEK,"Windows Code Page 1253","cp1253", 0, NULL,
5413     0x20ac, 0xfffd, 0x201a, 0x0192, 0x201e, 0x2026, 0x2020, 0x2021, /* 80 */
5414     0xfffd, 0x2031, 0xfffd, 0x003c, 0xfffd, 0xfffd, 0xfffd, 0xfffd, /* 88 */
5415     0xfffd, 0x2018, 0x2019, 0x201c, 0x201d, 0x2022, 0x2012, 0x2014, /* 90 */
5416     0xfffd, 0x2122, 0xfffd, 0x003e, 0xfffd, 0xfffd, 0xfffd, 0xfffd, /* 98 */
5417     0x00A0, 0x00b7, 0x0386, 0x00A3, 0x00A4, 0x00A5, 0x00A6, 0x00A7, /* a0 */
5418     0x00A8, 0x00A9, 0x00AA, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00AF, /* a8 */
5419     0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x00B7, 0x00B5, 0x00B6, 0x00B7, /* b0 */
5420     0x0388, 0x0389, 0x038A, 0x00BB, 0x038C, 0x00BD, 0x038E, 0x038F, /* b8 */
5421     0x0390, 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397, /* c0 */
5422     0x0398, 0x0399, 0x039A, 0x039B, 0x039C, 0x039D, 0x039E, 0x039F, /* c8 */
5423     0x03a0, 0x03a1, 0xfffd, 0x03a3, 0x03a4, 0x03a5, 0x03a6, 0x03a7, /* d0 */
5424     0x03a8, 0x03a9, 0x03aA, 0x03aB, 0x03aC, 0x03aD, 0x03aE, 0x03aF, /* d8 */
5425     0x03b0, 0x03b1, 0x03b2, 0x03b3, 0x03b4, 0x03b5, 0x03b6, 0x03b7, /* e0 */
5426     0x03b8, 0x03b9, 0x03bA, 0x03bB, 0x03bC, 0x03bD, 0x03bE, 0x03bF, /* e8 */
5427     0x03c0, 0x03c1, 0x03c2, 0x03c3, 0x03c4, 0x03c5, 0x03c6, 0x03c7, /* f0 */
5428     0x03c8, 0x03c9, 0x03cA, 0x03cB, 0x03cC, 0x03cD, 0x03cE, 0xfffd  /* f8 */
5429 };
5430
5431 struct x_to_unicode u_cp1254 = {        /* Windows Turkey */
5432     128, 0, X2U_CP, AL_ROMAN,"Windows Code Page 1254","cp1254", 0, NULL,
5433     0x20ac, 0xfffd, 0x201a, 0x0192, 0x201e, 0x2026, 0x2020, 0x2021, /* 80 */
5434     0x005e, 0x2031, 0x0160, 0x003c, 0x0152, 0xfffd, 0xfffd, 0xfffd, /* 88 */
5435     0xfffd, 0x2018, 0x2019, 0x201c, 0x201d, 0x2022, 0x2012, 0x2014, /* 90 */
5436     0x007e, 0x2122, 0x0161, 0x003e, 0x0153, 0xfffd, 0xfffd, 0x0178, /* 98 */
5437     0x00A0, 0x00A1, 0x00A2, 0x00A3, 0x00A4, 0x00A5, 0x00A6, 0x00A7,
5438     0x00A8, 0x00A9, 0x00AA, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00AF,
5439     0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x00B4, 0x00B5, 0x00B6, 0x00B7,
5440     0x00B8, 0x00B9, 0x00BA, 0x00BB, 0x00BC, 0x00BD, 0x00BE, 0x00BF,
5441     0x00C0, 0x00C1, 0x00C2, 0x00C3, 0x00C4, 0x00C5, 0x00C6, 0x00C7,
5442     0x00C8, 0x00C9, 0x00CA, 0x00CB, 0x00CC, 0x00CD, 0x00CE, 0x00CF,
5443     0x011e, 0x00D1, 0x00D2, 0x00D3, 0x00D4, 0x00D5, 0x00D6, 0x00D7,
5444     0x00D8, 0x00D9, 0x00DA, 0x00DB, 0x00DC, 0x0130, 0x015e, 0x00DF,
5445     0x00E0, 0x00E1, 0x00E2, 0x00E3, 0x00E4, 0x00E5, 0x00E6, 0x00E7,
5446     0x00E8, 0x00E9, 0x00EA, 0x00EB, 0x00EC, 0x00ED, 0x00EE, 0x00EF,
5447     0x011f, 0x00F1, 0x00F2, 0x00F3, 0x00F4, 0x00F5, 0x00F6, 0x00F7,
5448     0x00F8, 0x00F9, 0x00FA, 0x00FB, 0x00FC, 0x0131, 0x015f, 0x00FF
5449 };
5450
5451 struct x_to_unicode u_cp1255 = {        /* Windows Hebrew */
5452     128, 0, X2U_CP, AL_ROMAN,"Windows Code Page 1255 (Hebrew)","cp1255",
5453     0, NULL,
5454     0x20AC, 0xFFFD, 0x201a, 0x0192, 0x201e, 0x2026, 0x2020, 0x2021,
5455     0x02c6, 0x2030, 0xfffd, 0x2039, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
5456     0xfffd, 0x2018, 0x2019, 0x201c, 0x201d, 0x2022, 0x2013, 0x2014,
5457     0x02dc, 0x2122, 0xfffd, 0x203a, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
5458     0x00a0, 0x00a1, 0x00a2, 0x00a3, 0x20aa, 0x00a5, 0x00a6, 0x00a7,
5459     0x00a8, 0x00a9, 0x00d7, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0x00af,
5460     0x00b0, 0x00b1, 0x00b2, 0x00b3, 0x00b4, 0x00b5, 0x00b6, 0x00b7,
5461     0x00b8, 0x00b9, 0x00f7, 0x00bb, 0x00bc, 0x00bd, 0x00be, 0x00bf,
5462     0x05b0, 0x05b1, 0x05b2, 0x05b3, 0x05b4, 0x05b5, 0x05b6, 0x05b7,
5463     0x05b8, 0x05b9, 0xfffd, 0x05bb, 0x05bc, 0x05bd, 0x05be, 0x05bf,
5464     0x05c0, 0x05c1, 0x05c2, 0x05c3, 0x05f0, 0x05f1, 0x05f2, 0x05f3,
5465     0x05f4, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
5466     0x05d0, 0x05d1, 0x05d2, 0x05d3, 0x05d4, 0x05d5, 0x05d6, 0x05d7,
5467     0x05d8, 0x05d9, 0x05da, 0x05db, 0x05dc, 0x05dd, 0x05de, 0x05df,
5468     0x05e0, 0x05e1, 0x05e2, 0x05e3, 0x05e4, 0x05e5, 0x05e6, 0x05e7,
5469     0x05e8, 0x05e9, 0x05ea, 0xfffd, 0xfffd, 0x200e, 0x200f, 0xfffd
5470 };
5471
5472 struct x_to_unicode u_cp1256 = {        /* Windows Arabic */
5473     128, 0, X2U_CP, AL_ROMAN,"Windows Code Page 1256 (Arabic)","cp1256",
5474     0, NULL,
5475     0x20ac, 0x067e, 0x201a, 0x0192, 0x201e, 0x2026, 0x2020, 0x2021,
5476     0x02c6, 0x2030, 0xfffd, 0x2039, 0x0152, 0x0686, 0x0698, 0xfffd, /* 88 */
5477     0x06af, 0x2018, 0x2019, 0x201c, 0x201d, 0x2022, 0x2013, 0x2014, /* 90 */
5478     0xfffd, 0x2122, 0xfffd, 0x003a, 0x0153, 0x200c, 0x200d, 0xfffd, /* 98 */
5479     0x00A0, 0x060c, 0x00A2, 0x00A3, 0x00A4, 0x00a5, 0x00A6, 0x00A7, /* a0 */
5480     0x00a8, 0x00A9, 0xfffd, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00af, /* a8 */
5481     0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x00b4, 0x00B5, 0x00B6, 0x00B7, /* b0 */
5482     0x00b8, 0x00B9, 0x061b, 0x00BB, 0x00BC, 0x00BD, 0x00BE, 0x061f, /* b8 */
5483     0xfffd, 0x0621, 0x0622, 0x0623, 0x0624, 0x0625, 0x0626, 0x0627, /* c0 */
5484     0x0628, 0x0629, 0x062a, 0x062b, 0x062c, 0x062d, 0x062e, 0x062f, /* c8 */
5485     0x0630, 0x0631, 0x0632, 0x0633, 0x0634, 0x0635, 0x0636, 0x00D7, /* d0 */
5486     0x0637, 0x0638, 0x0639, 0x063a, 0x0640, 0x0641, 0x0642, 0x0643, /* d8 */
5487     0x00e0, 0x0644, 0x00e2, 0x0645, 0x0646, 0x0647, 0x0648, 0x00e7, /* e0 */
5488     0x00e8, 0x00E9, 0x00ea, 0x00eb, 0x0649, 0x064a, 0x00ee, 0x00ef, /* e8 */
5489     0x064b, 0x064c, 0x064d, 0x064e, 0x00f4, 0x064f, 0x0650, 0x00F7, /* f0 */
5490     0x0651, 0x00f9, 0x0652, 0x00fb, 0x00fc, 0x200e, 0x200f, 0xfffd  /* f8 */
5491 };
5492
5493 struct x_to_unicode u_cp1257 = {        /* Windows Latin-4 */
5494     128, 0, X2U_CP, AL_ROMAN,"Windows Code Page 1257","cp1257", 0, NULL,
5495     0x20ac, 0xfffd, 0x201a, 0xfffd, 0x201e, 0x2026, 0x2020, 0x2021, /* 80 */
5496     0xfffd, 0x2031, 0xfffd, 0x003c, 0xfffd, 0xfffd, 0xfffd, 0xfffd, /* 88 */
5497     0xfffd, 0x2018, 0x2019, 0x201c, 0x201d, 0x2022, 0x2012, 0x2014, /* 90 */
5498     0xfffd, 0x2122, 0xfffd, 0x003e, 0xfffd, 0xfffd, 0xfffd, 0xfffd, /* 98 */
5499     0x00A0, 0xfffd, 0x00A2, 0x00A3, 0x00A4, 0xfffd, 0x00A6, 0x00A7, /* a0 */
5500     0x00d8, 0x00A9, 0x0156, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00c6, /* a8 */
5501     0x00B0, 0x00B1, 0x00B2, 0x00B3, 0xfffd, 0x00B5, 0x00B6, 0x00B7, /* b0 */
5502     0x00f8, 0x00B9, 0x0157, 0x00BB, 0x00BC, 0x00BD, 0x00BE, 0x00e6, /* b8 */
5503     0x0104, 0x012e, 0x0100, 0x0106, 0x00C4, 0x00C5, 0x0118, 0x0112, /* c0 */
5504     0x010C, 0x00C9, 0x0179, 0x0116, 0x0122, 0x0136, 0x012a, 0x00b7, /* c8 */
5505     0x0160, 0x0143, 0x0145, 0x00d3, 0x014c, 0x00D5, 0x00D6, 0x00D7, /* d0 */
5506     0x0172, 0x0141, 0x015A, 0x016a, 0x00DC, 0x017b, 0x017d, 0x00DF, /* d8 */
5507     0x0105, 0x012f, 0x0101, 0x0107, 0x00E4, 0x00E5, 0x0119, 0x0113, /* e0 */
5508     0x010D, 0x00E9, 0x017a, 0x0117, 0x0123, 0x0137, 0x012b, 0x013c, /* e8 */
5509     0x0161, 0x0144, 0x0146, 0x00f3, 0x014d, 0x00F5, 0x00F6, 0x00F7, /* f0 */
5510     0x0173, 0x0142, 0x015b, 0x016b, 0x00fc, 0x017c, 0x017e, 0xfffd  /* f8 */
5511 };
5512
5513 struct x_to_unicode u_cp1258 = {        /* Windows Viet Nam */
5514     128, 0, X2U_CP, AL_ROMAN,"Windows Code Page 1258 (Viet Nam)","cp1258",
5515     0, NULL,
5516     0x20ac, 0xfffd, 0x201a, 0x0192, 0x201e, 0x2026, 0x2020, 0x2021, /* 80 */
5517     0x02c6, 0x2030, 0xfffd, 0x2039, 0x0152, 0xfffd, 0xfffd, 0xfffd, /* 88 */
5518     0xfffd, 0x2018, 0x2019, 0x201c, 0x201d, 0x2022, 0x2013, 0x2014, /* 90 */
5519     0x02dc, 0x2122, 0xfffd, 0x203a, 0x0153, 0xfffd, 0xfffd, 0x0178, /* 98 */
5520     0x00A0, 0x00a1, 0x00A2, 0x00A3, 0x00A4, 0x00a5, 0x00A6, 0x00A7, /* a0 */
5521     0x00a8, 0x00A9, 0x00aa, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00af, /* a8 */
5522     0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x00b4, 0x00B5, 0x00B6, 0x00B7, /* b0 */
5523     0x00b8, 0x00B9, 0x00ba, 0x00BB, 0x00BC, 0x00BD, 0x00BE, 0x00bf, /* b8 */
5524     0x00c0, 0x00c1, 0x00c2, 0x0102, 0x00C4, 0x00C5, 0x00c6, 0x00c7, /* c0 */
5525     0x00c8, 0x00C9, 0x00ca, 0x00cb, 0x0300, 0x00cd, 0x00ce, 0x00cf, /* c8 */
5526     0x0110, 0x00d1, 0x0309, 0x00d3, 0x00d4, 0x01a0, 0x00D6, 0x00D7, /* d0 */
5527     0x00d8, 0x00d9, 0x00da, 0x00db, 0x00DC, 0x01af, 0x0303, 0x00DF, /* d8 */
5528     0x00e0, 0x00e1, 0x00e2, 0x0103, 0x00E4, 0x00E5, 0x00e6, 0x00d7, /* e0 */
5529     0x00e8, 0x00E9, 0x00ea, 0x00eb, 0x0301, 0x00ed, 0x00ee, 0x00ef, /* e8 */
5530     0x0111, 0x00f1, 0x0323, 0x00f3, 0x00f4, 0x01a1, 0x00F6, 0x00F7, /* f0 */
5531     0x00f8, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x01b0, 0x20ab, 0x00ff  /* f8 */
5532 };
5533
5534 struct x_to_unicode u_cp37 = {  /* EBCDIC U.S. */
5535     256, 0, X2U_CP, AL_ROMAN,"Code Page 037 EBCDIC (U.S.)","cp037", 0, NULL,
5536     0x0000, 0x0001, 0x0002, 0x0003, 0x009C, 0x0009, 0x0086, 0x007F,
5537     0x0097, 0x008D, 0x008E, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F,
5538     0x0010, 0x0011, 0x0012, 0x0013, 0x009D, 0x0085, 0x0008, 0x0087,
5539     0x0018, 0x0019, 0x0092, 0x008F, 0x001C, 0x001D, 0x001E, 0x001F,
5540     0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000A, 0x0017, 0x001B,
5541     0x0088, 0x0089, 0x008A, 0x008B, 0x008C, 0x0005, 0x0006, 0x0007,
5542     0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004,
5543     0x0098, 0x0099, 0x009A, 0x009B, 0x0014, 0x0015, 0x009E, 0x001A,
5544     0x0020, 0x00A0, 0x00E2, 0x00E4, 0x00E0, 0x00E1, 0x00E3, 0x00E5,
5545     0x00E7, 0x00F1, 0x00A2, 0x002E, 0x003C, 0x0028, 0x002B, 0x007C,
5546     0x0026, 0x00E9, 0x00EA, 0x00EB, 0x00E8, 0x00ED, 0x00EE, 0x00EF,
5547     0x00EC, 0x00DF, 0x0021, 0x0024, 0x002A, 0x0029, 0x003B, 0x00AC,
5548     0x002D, 0x002F, 0x00C2, 0x00C4, 0x00C0, 0x00C1, 0x00C3, 0x00C5,
5549     0x00C7, 0x00D1, 0x00A6, 0x002C, 0x0025, 0x005F, 0x003E, 0x003F,
5550     0x00F8, 0x00C9, 0x00CA, 0x00CB, 0x00C8, 0x00CD, 0x00CE, 0x00CF,
5551     0x00CC, 0x0060, 0x003A, 0x0023, 0x0040, 0x0027, 0x003D, 0x0022,
5552     0x00D8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,
5553     0x0068, 0x0069, 0x00AB, 0x00BB, 0x00F0, 0x00FD, 0x00FE, 0x00B1,
5554     0x00B0, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, 0x0070,
5555     0x0071, 0x0072, 0x00AA, 0x00BA, 0x00E6, 0x00B8, 0x00C6, 0x00A4,
5556     0x00B5, 0x007E, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078,
5557     0x0079, 0x007A, 0x00A1, 0x00BF, 0x00D0, 0x00DD, 0x00DE, 0x00AE,
5558     0x005E, 0x00A3, 0x00A5, 0x00B7, 0x00A9, 0x00A7, 0x00B6, 0x00BC,
5559     0x00BD, 0x00BE, 0x005B, 0x005D, 0x00AF, 0x00A8, 0x00B4, 0x00D7,
5560     0x007B, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,
5561     0x0048, 0x0049, 0x00AD, 0x00F4, 0x00F6, 0x00F2, 0x00F3, 0x00F5,
5562     0x007D, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, 0x0050,
5563     0x0051, 0x0052, 0x00B9, 0x00FB, 0x00FC, 0x00F9, 0x00FA, 0x00FF,
5564     0x005C, 0x00F7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058,
5565     0x0059, 0x005A, 0x00B2, 0x00D4, 0x00D6, 0x00D2, 0x00D3, 0x00D5,
5566     0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037,
5567     0x0038, 0x0039, 0x00B3, 0x00DB, 0x00DC, 0x00D9, 0x00DA, 0x009F
5568 };
5569
5570 /* Other proprietary 8-bit sets */
5571
5572 struct x_to_unicode u_decmcs = {
5573     96, 32, X2U_DEC|X2U_STD, AL_ROMAN, "DEC Multinational", "dec-mcs", 0, "%5",
5574     0x00A0, 0x00A1, 0x00A2, 0x00A3, 0xfffd, 0x00A5, 0xfffd, 0x00A7,
5575     0x00A4, 0x00A9, 0x00AA, 0x00AB, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
5576     0x00B0, 0x00B1, 0x00B2, 0x00B3, 0xfffd, 0x00B5, 0x00B6, 0x00B7,
5577     0xfffd, 0x00B9, 0x00BA, 0x00BB, 0x00BC, 0x00BD, 0xfffd, 0x00BF,
5578     0x00C0, 0x00C1, 0x00C2, 0x00C3, 0x00C4, 0x00C5, 0x00C6, 0x00C7,
5579     0x00C8, 0x00C9, 0x00CA, 0x00CB, 0x00CC, 0x00CD, 0x00CE, 0x00CF,
5580     0xfffd, 0x00D1, 0x00D2, 0x00D3, 0x00D4, 0x00D5, 0x00D6, 0x0152,
5581     0x00D8, 0x00D9, 0x00DA, 0x00DB, 0x00DC, 0x00DD, 0xfffd, 0x00DF,
5582     0x00E0, 0x00E1, 0x00E2, 0x00E3, 0x00E4, 0x00E5, 0x00E6, 0x00E7,
5583     0x00E8, 0x00E9, 0x00EA, 0x00EB, 0x00EC, 0x00ED, 0x00EE, 0x00EF,
5584     0xfffd, 0x00F1, 0x00F2, 0x00F3, 0x00F4, 0x00F5, 0x00F6, 0x0153,
5585     0x00F8, 0x00F9, 0x00FA, 0x00FB, 0x00FC, 0x00FD, 0xfffd, 0x00FF
5586 };
5587
5588 struct x_to_unicode u_hproman8 = {
5589     96, 32, X2U_STD, AL_ROMAN, "Hewlett Packard Roman 8", "hp-roman8", 0, NULL,
5590     0x00a0, 0x00c0, 0x00c2, 0x00c8, 0x00ca, 0x00cb, 0x00ce, 0x00cf,
5591     0x00b4, 0x00a6, 0x00a9, 0x00a8, 0x00ac, 0x00d9, 0x00db, 0x20a4,
5592     0x00af, 0x00dd, 0x00fd, 0x00b0, 0x00c7, 0x00e7, 0x00d1, 0x00f1,
5593     0x00a1, 0x00bf, 0x00a4, 0x00a3, 0x00a5, 0x00a7, 0x0192, 0x00a2,
5594     0x00e2, 0x00ea, 0x00f4, 0x00fb, 0x00e1, 0x00e9, 0x00f3, 0x00fa,
5595     0x00e0, 0x00e8, 0x00f2, 0x00f9, 0x00e4, 0x00eb, 0x00f6, 0x00fc,
5596     0x00c5, 0x00ee, 0x00d8, 0x00c6, 0x00e5, 0x00ed, 0x00f8, 0x00e6,
5597     0x00c4, 0x00ec, 0x00d6, 0x00dc, 0x00c9, 0x00ef, 0x00df, 0x00d4,
5598     0x00c1, 0x00c3, 0x00e3, 0x00d0, 0x00f0, 0x00cd, 0x00cc, 0x00d3,
5599     0x00d2, 0x00d5, 0x00f5, 0x0160, 0x0161, 0x00da, 0x00b8, 0x00ff,
5600     0x00de, 0x00fe, 0x00b7, 0x00b5, 0x00b6, 0x00be, 0x2015, 0x00bc,
5601     0x00bd, 0x00aa, 0x00ba, 0x00ab, 0x2588, 0x00bb, 0x00b1, 0xfffd
5602 };
5603
5604 struct x_to_unicode u_dgi = {
5605  96,32,X2U_STD,AL_ROMAN,"Data General International","dg-international",0,NULL,
5606     0x00a0, 0x00ac, 0x00bd, 0x00b5, 0x00b2, 0x00b3, 0x00a4, 0x00a2,
5607     0x00a3, 0x00aa, 0x00ba, 0x00a1, 0x00bf, 0x00a9, 0x00ae, 0x2021,
5608     0x00bb, 0x00ab, 0x00b6, 0x2122, 0x0192, 0x00a5, 0x00b1, 0x2264,
5609     0x2265, 0x00b7, 0x00b8, 0x00a7, 0x00b0, 0x00a8, 0x00b4, 0x2191,
5610     0x00c1, 0x00c0, 0x00c2, 0x00c4, 0x00c3, 0x00c5, 0x00c6, 0x00c7,
5611     0x00c9, 0x00c8, 0x00ca, 0x00cb, 0x00cd, 0x00cc, 0x00ce, 0x00cf,
5612     0x00d1, 0x00d3, 0x00d2, 0x00d4, 0x00d6, 0x00d5, 0x00d8, 0x0276,
5613     0x00da, 0x00d9, 0x00db, 0x00dc, 0xfffd, 0x0178, 0xfffd, 0xfffd,
5614     0x00e1, 0x00e0, 0x00e2, 0x00e4, 0x00e3, 0x00e5, 0x00e6, 0x00e7,
5615     0x00e9, 0x00e8, 0x00ea, 0x00eb, 0x00ed, 0x00ec, 0x00ee, 0x00ef,
5616     0x00f1, 0x00f3, 0x00f2, 0x00f4, 0x00f6, 0x00f5, 0x00f8, 0x0153,
5617     0x00fa, 0x00f9, 0x00fb, 0x00fc, 0x00df, 0x00ff, 0xfffd, 0x2588
5618 };
5619
5620 struct x_to_unicode u_nextstep = {
5621     128, 0, 0, AL_ROMAN,"NeXTSTEP Multinational","next-multinational",0,NULL,
5622     0x00a0, 0x00c0, 0x00c1, 0x00c2, 0x00c3, 0x00c4, 0x00c5, 0x00c7,
5623     0x00c8, 0x00c9, 0x00ca, 0x00cb, 0x00cc, 0x00cd, 0x00ce, 0x00cf,
5624     0x00d0, 0x00d1, 0x00d2, 0x00d3, 0x00d4, 0x00d5, 0x00d6, 0x00d9,
5625     0x00da, 0x00db, 0x00dc, 0x00dd, 0x00de, 0x00b5, 0x00d7, 0x00f7,
5626     0x00a9, 0x00a1, 0x00a2, 0x00a3, 0x2044, 0x00a5, 0x0192, 0x00a7,
5627     0x00a4, 0x2019, 0x201c, 0x00ab, 0x2039, 0x203a, 0xfb01, 0xfb02,
5628     0x00ae, 0x2013, 0x2020, 0x2021, 0x00b7, 0x00a6, 0x00b6, 0x2022,
5629     0x201a, 0x201e, 0x201d, 0x00bb, 0x2026, 0x2030, 0x00ac, 0x00bf,
5630     0x00b9, 0x02cb, 0x00b4, 0x02c6, 0x02dc, 0x00af, 0x02d8, 0x02d9,
5631     0x00a8, 0x00b2, 0x02da, 0x00b8, 0x00b3, 0x02dd, 0x02db, 0x02c7,
5632     0x2014, 0x00b1, 0x00bc, 0x00bd, 0x00be, 0x00e0, 0x00e1, 0x00e2,
5633     0x00e3, 0x00e4, 0x00e5, 0x00e7, 0x00e8, 0x00e9, 0x00ea, 0x00eb,
5634     0x00ec, 0x00c6, 0x00ed, 0x00aa, 0x00ee, 0x00ef, 0x00f0, 0x00f1,
5635     0x0141, 0x00d8, 0x0152, 0x00ba, 0x00f2, 0x00f3, 0x00f4, 0x00f5,
5636     0x00f6, 0x00e6, 0x00f9, 0x00fa, 0x00fb, 0x0131, 0x00fc, 0x00fd,
5637     0x0142, 0x00f8, 0x0153, 0x00df, 0x00fe, 0x00ff, 0xfffd, 0xfffd
5638 };
5639
5640 struct x_to_unicode u_maclatin = {
5641     128, 0, 0, AL_ROMAN,"Macintosh Latin","maclatin", 0, NULL,
5642     0x00C4, 0x00C5, 0x00C7, 0x00C9, 0x00D1, 0x00D6, 0x00DC, 0x00E1,
5643     0x00E0, 0x00E2, 0x00E4, 0x00E3, 0x00E5, 0x00E7, 0x00E9, 0x00E8,
5644     0x00EA, 0x00EB, 0x00ED, 0x00EC, 0x00EE, 0x00EF, 0x00F1, 0x00F3,
5645     0x00F2, 0x00F4, 0x00F6, 0x00F5, 0x00FA, 0x00F9, 0x00FB, 0x00FC,
5646     0x00DD, 0x00B0, 0x00A2, 0x00A3, 0x00A7, 0x2022, 0x00B6, 0x00DF,
5647     0x00AE, 0x00A9, 0x2122, 0x00B4, 0x00A8, 0x2260, 0x00C6, 0x00D8,
5648     0x221E, 0x00B1, 0x2264, 0x2265, 0x00A5, 0x00B5, 0x2202, 0x2211,
5649     0x220F, 0x03C0, 0x222B, 0x00AA, 0x00BA, 0x2126, 0x00E6, 0x00F8,
5650     0x00BF, 0x00A1, 0x00AC, 0x221A, 0x0192, 0x2248, 0x2206, 0x00AB,
5651     0x00BB, 0x2026, 0x00A0, 0x00C0, 0x00C3, 0x00D5, 0x0152, 0x0153,
5652     0x2013, 0x2014, 0x201C, 0x201D, 0x2018, 0x2019, 0x00F7, 0x25CA,
5653     0x00FF, 0x0178, 0x2044, 0x00A4, 0x00D0, 0x00F0, 0x00DE, 0x00FE,
5654     0x00FD, 0x00B7, 0x201A, 0x201E, 0x2030, 0x00C2, 0x00CA, 0x00C1,
5655     0x00CB, 0x00C8, 0x00CD, 0x00CE, 0x00CF, 0x00CC, 0x00D3, 0x00D4,
5656     0xF8FF, 0x00D2, 0x00DA, 0x00DB, 0x00D9, 0x0131, 0x02C6, 0x02DC,
5657     0x00AF, 0x02D8, 0x02D9, 0x02DA, 0x00B8, 0x02DD, 0x02DB, 0x02C7
5658 };
5659
5660 struct x_to_unicode u_quickdraw = {
5661     128, 0, 0, AL_ROMAN,"QuickDraw","quickdraw", 0, NULL,
5662     0x00C4, 0x00C5, 0x00C7, 0x00C9, 0x00D1, 0x00D6, 0x00DC, 0x00E1,
5663     0x00E0, 0x00E2, 0x00E4, 0x00E3, 0x00E5, 0x00E7, 0x00E9, 0x00E8,
5664     0x00EA, 0x00EB, 0x00ED, 0x00EC, 0x00EE, 0x00EF, 0x00F1, 0x00F3,
5665     0x00F2, 0x00F4, 0x00F6, 0x00F5, 0x00FA, 0x00F9, 0x00FB, 0x00FC,
5666     0x2020, 0x00B0, 0x00A2, 0x00A3, 0x00A7, 0x2022, 0x00B6, 0x00DF,
5667     0x00AE, 0x00A9, 0x2122, 0x00B4, 0x00A8, 0x2260, 0x00C6, 0x00D8,
5668     0x221E, 0x00B1, 0x2264, 0x2265, 0x00A5, 0x00B5, 0x2202, 0x2211,
5669     0x220F, 0x03C0, 0x222B, 0x00AA, 0x00BA, 0x03A9, 0x00E6, 0x00F8,
5670     0x00BF, 0x00A1, 0x00AC, 0x221A, 0x0192, 0x2248, 0x2206, 0x00AB,
5671     0x00BB, 0x2026, 0x00A0, 0x00C0, 0x00C3, 0x00D5, 0x0152, 0x0153,
5672     0x2013, 0x2014, 0x201C, 0x201D, 0x2018, 0x2019, 0x00F7, 0x25CA,
5673     0x00FF, 0x0178, 0x2044, 0x00A4, 0x2039, 0x203A, 0xFB01, 0xFB02,
5674     0x2021, 0x00B7, 0x201A, 0x201E, 0x2030, 0x00C2, 0x00CA, 0x00C1,
5675     0x00CB, 0x00C8, 0x00CD, 0x00CE, 0x00CF, 0x00CC, 0x00D3, 0x00D4,
5676     0xF8FF, 0x00D2, 0x00DA, 0x00DB, 0x00D9, 0x0131, 0x02C6, 0x02DC,
5677     0x00AF, 0x02D8, 0x02D9, 0x02DA, 0x00B8, 0x02DD, 0x02DB, 0x02C7
5678 };
5679
5680 /* DEC special graphics / technical sets for VT emulation */
5681
5682 #ifdef KERMITFONT
5683 struct x_to_unicode u_dectech = {
5684     94, 33, X2U_DEC|X2U_STD,AL_ROMAN,"DEC Technical", "dec-technical", 0, ">",
5685             0xE400, 0x250c, 0x2500, 0x2320, 0x2321, 0x2502, 0xE204,
5686     0xE203, 0xE209, 0xE208, 0xE202, 0xE201, 0xE207, 0xE206, 0xE200,
5687     0xE205, 0xE20D, 0xE20C, 0x2572, 0x2571, 0xE20E, 0xE20F, 0x232a,
5688     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x2264, 0x2260, 0x2265, 0x222b,
5689     0x2234, 0x221d, 0x221e, 0x00f7, 0x2206, 0x2207, 0x03a6, 0x0393,
5690     0x223c, 0x2243, 0x0398, 0x00d7, 0x039b, 0x21d4, 0x21d2, 0x2261,
5691     0x220f, 0x03a8, 0xE401, 0x03a3, 0xFFFD, 0xfffd, 0x221a, 0x03a9,
5692     0x039e, 0x03d2, 0x2282, 0x2283, 0x2229, 0x222a, 0x2227, 0x2228,
5693     0x00ac, 0x03b1, 0x03b2, 0x03c7, 0x03b4, 0x03b5, 0x03c6, 0x03b3,
5694     0x03b7, 0x03b9, 0x03b8, 0x03ba, 0x03bb, 0xFFFD, 0x03bd, 0x2202,
5695     0x03c0, 0x03c8, 0x03c1, 0x03c3, 0x03c4, 0xFFFD, 0x0192, 0x03c9,
5696     0x03be, 0x03c5, 0x03b6, 0x2190, 0x2191, 0x2192, 0x2193
5697 };
5698 #else
5699 struct x_to_unicode u_dectech = {
5700     94, 33, X2U_DEC|X2U_STD,AL_ROMAN,"DEC Technical", "dec-technical", 0, ">",
5701             0x221a, 0x250c, 0x2500, 0x2320, 0x2321, 0x2502, 0x2308, /* 21-27 */
5702     0x230a, 0x2309, 0x230b, 0x256d, 0x2570, 0x256e, 0x256f, 0x2525, /* 28-2f */
5703     0x251d, 0x2211, 0x2211, 0x2572, 0x2571, 0x231d, 0x231f, 0x232a, /* 30-37 */
5704     0x005b, 0x2022, 0x005d, 0x00b1, 0x2264, 0x2260, 0x2265, 0x222b, /* 38-3f */
5705     0x2234, 0x221d, 0x221e, 0x00f7, 0x25b3, 0x25bd, 0x03a6, 0x0393, /* 40-47 */
5706     0x223c, 0x2243, 0x0398, 0x00d7, 0x039b, 0x21d4, 0x21d2, 0x2261, /* 48-4f */
5707     0x220f, 0x03a8, 0x2218, 0x2211, 0x00a7, 0x00b6, 0x221a, 0x03a9, /* 50-57 */
5708     0x039e, 0x03d2, 0x2282, 0x2283, 0x2229, 0x222a, 0x2227, 0x2228, /* 58-5f */
5709     0x00ac, 0x03b1, 0x03b2, 0x03c7, 0x03b4, 0x03b5, 0x03c6, 0x03b3, /* 60-67 */
5710     0x03b7, 0x03b9, 0x03b8, 0x03ba, 0x03bb, 0x03bc, 0x03bd, 0x2202, /* 68-6f */
5711     0x03c0, 0x03c8, 0x03c1, 0x03c3, 0x03c4, 0x0020, 0x0192, 0x03c9, /* 70-77 */
5712     0x03be, 0x03c5, 0x03b6, 0x2190, 0x2191, 0x2192, 0x2193          /* 78-7e */
5713 };
5714 #endif /* KERMITFONT */
5715
5716 #ifdef KERMITFONT
5717 struct x_to_unicode u_decspec = {
5718     94,33,X2U_DEC|X2U_STD,AL_ROMAN,"DEC Special Graphics","dec-special",0,"0",
5719             0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027,
5720     0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f,
5721     0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037,
5722     0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f,
5723     0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,
5724     0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f,
5725     0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057,
5726     0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f,
5727     0x2666, 0x2591, 0x2409, 0x240c, 0x240d, 0x240a, 0x00b0, 0x00b1,
5728     0x2424, 0x240b, 0x2518, 0x2510, 0x250c, 0x2514, 0x253c, 0x23BA,
5729     0x23BB, 0x2500, 0x23BC, 0x23BD, 0x251c, 0x2524, 0x2534, 0x252c,
5730     0x2502, 0x2264, 0x2265, 0x03c0, 0x2260, 0x00a3, 0x00B7
5731 };
5732 #else
5733 struct x_to_unicode u_decspec = {
5734     94,33,X2U_DEC|X2U_STD,AL_ROMAN,"DEC Special Graphics","dec-special",0,"0",
5735             0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027,
5736     0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f,
5737     0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037,
5738     0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f,
5739     0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,
5740     0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f,
5741     0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057,
5742     0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f,
5743     0x2666, 0x2591, 0x2409, 0x240c, 0x240d, 0x240a, 0x00b0, 0x00b1,
5744     0x2424, 0x240b, 0x2518, 0x2510, 0x250c, 0x2514, 0x253c, 0x2594,
5745     0x2500, 0x2500, 0x2500, 0x2500, 0x251c, 0x2524, 0x2534, 0x252c,
5746     0x2502, 0x2264, 0x2265, 0x03a0, 0x2260, 0x00a3, 0x00B7
5747 };
5748 #endif /* KERMITFONT */
5749
5750 /*
5751   Hazeltine 1500/1520 graphic set.  Includes several approximations:
5752    . (0,9) should be heavy black right arrow.  Unicode has one of these
5753      at U+27A1 but...
5754    . (3,9) should be heavy black down arrow; Unicode doesn't have one.
5755      So we use the white versions of the heavy arrows instead.
5756    . (1,9) the letters "Pe" in one cell, doesn't exist in Unicode.
5757      Substitution is just "P".
5758 */
5759 struct x_to_unicode u_hz1500 = {
5760     94,33,X2U_STD,AL_ROMAN,"Hazeltime Graphics","hz1500-graphics",0,"0",
5761 /*     0       1       2       3       4       5       6       7         */
5762             0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, /* 0 */
5763     0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, /* 1 */
5764     0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, /* 2 */
5765     0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, /* 3 */
5766     0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, /* 4 */
5767     0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, /* 5 */
5768     0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, /* 6 */
5769     0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, /* 7 */
5770     0x2500, 0x2502, 0x253c, 0x2534, 0x252c, 0x2514, 0x250c, 0x00b1, /* 8 */
5771     0x21e8, 0x0050, 0x00f7, 0x21e9, 0x2510, 0x2518, 0x251c, 0x2524, /* 9 */
5772     0x0070, 0x0071, 0x0072, 0x250c, 0x0074, 0x0075, 0x0076, 0x0077, /* a */
5773     0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e          /* b */
5774
5775 };
5776
5777 #ifdef KERMITFONT
5778 struct x_to_unicode u_heath19g = {
5779     94,33,X2U_STD,AL_ROMAN,"Heath-19 Special Graphics","h19-special",0,NULL,
5780             0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027,
5781     0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f,
5782     0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037,
5783     0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f,
5784     0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,
5785     0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f,
5786     0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057,
5787     0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x25cf, 0xe30b,
5788     0x2502, 0x2500, 0x253c, 0x2510, 0x2518, 0x2514, 0x250c, 0x00b1,
5789     0x2192, 0x2592, 0x00f7, 0x2193, 0xe321, 0xe320, 0xe322, 0xe328,
5790     0x2580, 0xe325, 0xe30a, 0x252c, 0x2524, 0x2534, 0x251c, 0x2573,
5791     0x2571, 0x2572, 0xe311, 0xe319, 0xe300, 0xe309, 0x00b6
5792 };
5793 #else
5794 struct x_to_unicode u_heath19g = {
5795     94,33,X2U_STD,AL_ROMAN,"Heath-19 Special Graphics","h19-special",0,NULL,
5796             0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027,
5797     0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f,
5798     0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037,
5799     0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f,
5800     0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,
5801     0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f,
5802     0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057,
5803     0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x25cf, 0x25e5,
5804     0x2502, 0x2500, 0x253c, 0x2510, 0x2518, 0x2514, 0x250c, 0x00b1,
5805     0x2192, 0x2592, 0x00f7, 0x2193, 0x2590, 0x258c, 0x258c, 0x2590,
5806     0x2580, 0x2590, 0x25e4, 0x252c, 0x2524, 0x2534, 0x251c, 0x2573,
5807     0x2571, 0x2572, 0x2500, 0x2500, 0x2502, 0x2502, 0x00b6
5808 };
5809 #endif /* KERMITFONT */
5810
5811 /* DG Graphic sets - "KERMITFONT" these later... */
5812
5813 /* Missing,    backwards question mark
5814    eighth note
5815    "DT" control pic
5816    horizontal scan lines
5817 */
5818 struct x_to_unicode u_dgspec = {        /* Needs to be checked */
5819     94, 33, X2U_STD,AL_ROMAN,"DG Special Graphics","dg-specialgraphics",0,NULL,
5820             0xfffd, 0xfffd, 0x2424, 0x2594, 0x2594, 0x2581, 0x2581,
5821     0x25a1, 0x263a, 0x263b, 0x2665, 0x2663, 0x2660, 0x25cf, 0x25d8,
5822     0x25cb, 0x25d9, 0x2642, 0x2640, 0x266a, 0x266c, 0x263c, 0x2195,
5823     0x2583, 0x21a8, 0x231e, 0x2194, 0x2207, 0x00ff, 0x20a7, 0x00aa,
5824     0x00ba, 0x231c, 0x231d, 0x2591, 0x2591, 0x2593, 0x2561, 0x2562,
5825     0x2556, 0x2555, 0x2563, 0x2551, 0x2557, 0x255d, 0x255c, 0x255b,
5826     0x255e, 0x255f, 0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550,
5827     0x256c, 0x2567, 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552,
5828     0x2553, 0x256b, 0x256a, 0x2588, 0x2584, 0x258c, 0x2590, 0x2580,
5829     0x0393, 0x03c0, 0x03a3, 0x03a6, 0x0398, 0x03d5, 0x03b5, 0x03a0,
5830     0x039e, 0x00b7, 0x03b7, 0x25a0, 0x0178, 0xfffd, 0xfffd, 0xfffd,
5831     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd
5832 };
5833
5834 /* Missing: arrow-to-line, various orientations */
5835
5836 struct x_to_unicode u_dgline = {
5837     94, 33, X2U_STD,AL_ROMAN,"DG Line Drawing","dg-linedrawing",0,NULL,
5838             0x250c, 0x2510, 0x2514, 0x2518, 0x252c, 0x2524, 0x251c,
5839     0x2534, 0x253c, 0x2502, 0x2500, 0x219f, 0x21e5, 0x21e4, 0x21a1,
5840     0x2506, 0x250f, 0x2513, 0x2517, 0x251b, 0x2533, 0x252b, 0x2523,
5841     0x253b, 0x254b, 0x2503, 0x2501, 0x2504, 0x00f7, 0x00a2, 0x2122,
5842     0x00ae, 0x00a9, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
5843     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
5844     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
5845     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
5846     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
5847     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
5848     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
5849     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd
5850 };
5851
5852 struct x_to_unicode u_dgword = {
5853     94, 33, X2U_STD,AL_ROMAN,"DG Word Processing","dg-wordprocessing",0,NULL,
5854             0x2308, 0x230a, 0x2309, 0x230b, 0x0192, 0x223c, 0x2202,
5855     0xfffd, 0xfffd, 0x2320, 0x2321, 0x221a, 0xfffd, 0x221e, 0x221d,
5856     0x2070, 0x00b9, 0x00b2, 0x00b3, 0x2074, 0x2075, 0x2076, 0x2077,
5857     0x2078, 0x2079, 0x2260, 0xfffd, 0x21ef, 0xfffd, 0x21e5, 0x00b7,
5858     0x203c, 0x03b1, 0x03b2, 0x03b3, 0x03b4, 0x03b5, 0x03b6, 0x03b7,
5859     0x03b8, 0x03b9, 0x03ba, 0x03bb, 0x03bc, 0x03bd, 0x03be, 0x03bf,
5860     0x03c0, 0x03c1, 0x03c3, 0x03c4, 0x03c5, 0x03c6, 0x03c7, 0x03c8,
5861     0x03c9, 0x03a9, 0x0394, 0x00b6, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
5862     0x22a6, 0x25c6, 0x25b6, 0x25b7, 0x25c0, 0x25b2, 0x25bc, 0x2327,
5863     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x25e3, 0x25e2,
5864     0x2080, 0x2081, 0x2082, 0x2083, 0x2084, 0x2085, 0x2086, 0x2087,
5865     0x2088, 0x2089, 0xfffd, 0x2191, 0x2192, 0x2190, 0x2193
5866 };
5867
5868 /* HP Graphic sets - "KERMITFONT" these later... */
5869
5870 /*
5871   Many are missing from Unicode,
5872   Single-to-triple-line box-drawing characters.
5873   Double/double cross & some others.
5874 */
5875 struct x_to_unicode u_hpline = {        /* Needs to be checked */
5876     94, 33, X2U_STD,AL_ROMAN,"HP Line Drawing Graphics",
5877     "hp-line-drawing",0,NULL,
5878             0x2520, 0x2528, 0x252f, 0x2537, 0x255f, 0x2562, 0x2564,
5879     0x2567, 0x2551, 0x2542, 0x253f, 0x2550, 0x230a, 0x2502, 0x253c,
5880     0x254b, 0x2523, 0x252b, 0x2533, 0x253b, 0x251c, 0x2524, 0x252c,
5881     0x2534, 0x2550, 0x2503, 0x2501, 0x256b, 0x2308, 0x256a, 0x256c,
5882     0x255e, 0x2517, 0x2549, 0x2588, 0x258c, 0x258e, 0x2514, 0x2518,
5883     0x2510, 0x2555, 0x252c, 0x2556, 0x2556, 0x2547, 0x2548, 0x2555,
5884     0x230b, 0x250f, 0x250c, 0x251b, 0x2510, 0x2524, 0x254a, 0x2513,
5885     0x2584, 0x2309, 0x2582, 0x2561, 0x2504, 0x2559, 0x2576, 0x2565,
5886     0x255e, 0x2517, 0x2549, 0x2588, 0x258c, 0x258e, 0x2514, 0x2518,
5887     0x2510, 0x2555, 0x252c, 0x2556, 0x2556, 0x2547, 0x2548, 0x2555,
5888     0x230b, 0x250f, 0x250c, 0x251b, 0x2510, 0x2524, 0x254a, 0x2513,
5889     0x2584, 0x2309, 0x2582, 0x2561, 0x2504, 0x2559, 0x2576
5890 };
5891
5892 struct x_to_unicode u_hpmath = {
5893     94, 33, X2U_STD,AL_ROMAN,"HP Math/Technical","hp-math/technical",0,NULL,
5894             0x221a, 0x2223, 0x00a7, 0x2207, 0x00b1, 0x03b1, 0x2320,
5895     0x00f7, 0x2243, 0x03a0, 0x0393, 0x03c8, 0x2261, 0x03a6, 0x039e,
5896     0x2070, 0x00b9, 0x00b2, 0x00b3, 0x2074, 0x2075, 0x2076, 0x2077,
5897     0x2078, 0x2079, 0x03a9, 0x039b, 0x221e, 0x2321, 0x2020, 0x03a3,
5898     0x00b6, 0x03b1, 0x03b2, 0x03c8, 0x03d5, 0x03b5, 0x2202, 0x03bb,
5899     0x03b7, 0x03b9, 0x0398, 0x03ba, 0x03c9, 0x03bc, 0x03bd, 0x03c1,
5900     0x03c0, 0x03b3, 0x03b8, 0x03c3, 0x03c4, 0x03be, 0x0394, 0x03b4,
5901     0x00d7, 0x03c5, 0x03b6, 0x2191, 0x2192, 0x03d2, 0x2190, 0x2193,
5902     0x00b6, 0x03b1, 0x03b2, 0x03c8, 0x03d5, 0x03b5, 0x2202, 0x03bb,
5903     0x03b7, 0x03b9, 0x0398, 0x03ba, 0x03c9, 0x03bc, 0x03bd, 0x03c1,
5904     0x03c0, 0x03b3, 0x03b8, 0x03c3, 0x03c4, 0x03be, 0x0394, 0x03b4,
5905     0x00d7, 0x03c5, 0x03b6, 0x2191, 0x2192, 0x03d2, 0x2190
5906 };
5907
5908 struct x_to_unicode u_tvig = {
5909     15,65,0,0,"Televideo Special Graphics","tvi-special",0,NULL,
5910             0x2570, 0x256D, 0x256E, 0x256F, 0x2514, 0x250C, 0x2510,
5911     0x2518, 0x253C, 0x2502, 0x2500, 0x2524, 0x251C, 0x252C, 0x2534
5912 };
5913
5914 struct x_to_unicode u_wyse_gn = {
5915 #ifdef COMMENT
5916     16,16,0,0,"Wyse Normal-Mode Graphics","wy-graphics-normal",0,NULL,
5917     0x252C, 0x2514, 0x250C, 0x2510, 0x251C, 0x2518, 0x2502, 0x2588,
5918     0x253C, 0x2524, 0x2500, 0x2592, 0x2550, 0x2534, 0x2551, 0x2591
5919 #else
5920     80,48,0,0,"Wyse Normal-Mode Graphics","wy-graphics-normal",0,NULL,
5921     0x252C, 0x2514, 0x250C, 0x2510, 0x251C, 0x2518, 0x2502, 0x2588,
5922     0x253C, 0x2524, 0x2500, 0x2592, 0x2550, 0x2534, 0x2551, 0x2591,
5923     0x252C, 0x2514, 0x250C, 0x2510, 0x251C, 0x2518, 0x2502, 0x2588,
5924     0x253C, 0x2524, 0x2500, 0x2592, 0x2550, 0x2534, 0x2551, 0x2591,
5925     0x252C, 0x2514, 0x250C, 0x2510, 0x251C, 0x2518, 0x2502, 0x2588,
5926     0x253C, 0x2524, 0x2500, 0x2592, 0x2550, 0x2534, 0x2551, 0x2591,
5927     0x252C, 0x2514, 0x250C, 0x2510, 0x251C, 0x2518, 0x2502, 0x2588,
5928     0x253C, 0x2524, 0x2500, 0x2592, 0x2550, 0x2534, 0x2551, 0x2591,
5929     0x252C, 0x2514, 0x250C, 0x2510, 0x251C, 0x2518, 0x2502, 0x2588,
5930     0x253C, 0x2524, 0x2500, 0x2592, 0x2550, 0x2534, 0x2551, 0x2591
5931 #endif /* COMMENT */
5932 };
5933
5934 struct x_to_unicode u_wyse_g1 = {
5935     79,48,0,0,"Wyse Graphics 1","wy-graphics-1",0,NULL,
5936     0x2070, 0x00B9, 0x00B2, 0x00B3, 0x2074, 0x2075, 0x2075, 0x2077,
5937     0x2078, 0x2079, 0xFFFD, 0xFFFD, 0x25BA, 0x25C4, 0x25B2, 0x25BC,
5938     0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD,
5939     0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD,
5940     0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD,
5941     0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD,
5942     0x2080, 0x2081, 0x2082, 0x2083, 0x2084, 0x2085, 0x2086, 0x2087,
5943     0x2088, 0x2089, 0x2518, 0x2510, 0x250C, 0x2514, 0x253C, 0x258C,
5944     0x2590, 0x2500, 0x2584, 0x2580, 0x251C, 0x2524, 0x2534, 0x252C,
5945     0x2502, 0xFFFD, 0x256E, 0x256F, 0x2570, 0x256D, 0x258C
5946 };
5947
5948 struct x_to_unicode u_wyse_g2 = {
5949     41,64,0,0,"Wyse Graphics 2","wy-graphics-2",0,NULL,
5950     0x250C, 0xFFFD, 0xFFFD, 0xFFFD, 0x2510, 0xFFFD, 0xFFFD, 0xFFFD,
5951     0x2514, 0xFFFD, 0xFFFD, 0xFFFD, 0x2518, 0xFFFD, 0xFFFD, 0xFFFD,
5952     0x252C, 0xFFFD, 0xFFFD, 0xFFFD, 0x2524, 0xFFFD, 0xFFFD, 0xFFFD,
5953     0x251C, 0xFFFD, 0xFFFD, 0xFFFD, 0x2534, 0xFFFD, 0xFFFD, 0xFFFD,
5954     0x2500, 0xFFFD, 0xFFFD, 0xFFFD, 0x2502, 0xFFFD, 0xFFFD, 0xFFFD,
5955     0x253C
5956 };
5957
5958 #ifdef KERMITFONT
5959 struct x_to_unicode u_wyse_g3 = {
5960     31,65,0,0,"Wyse Graphics 3","wy-graphics-3",0,NULL,
5961             0x2570, 0x256D, 0x256E, 0x256F, 0x2514, 0x250C, 0x2510,
5962     0x2518, 0x253C, 0x2502, 0x2500, 0x2524, 0x251C, 0x252C, 0x2534,
5963     0x23BA, 0x23BD, 0x2666, 0xE328, 0xE321, 0xE320, 0xE322, 0x2590,
5964     0x2584, 0x258C, 0x2580, 0xE323, 0xE326, 0xE327, 0xE329, 0x258C
5965 };
5966 #else
5967 struct x_to_unicode u_wyse_g3 = {
5968     31,65,0,0,"Wyse Graphics 3","wy-graphics-3",0,NULL,
5969             0x2570, 0x256D, 0x256E, 0x256F, 0x2514, 0x250C, 0x2510,
5970     0x2518, 0x253C, 0x2502, 0x2500, 0x2524, 0x251C, 0x252C, 0x2534,
5971     0x2500, 0x2500, 0x2666, 0x2590, 0x2590, 0x258c, 0x258c, 0x2590,
5972     0x2584, 0x258C, 0x2580, 0x2588, 0x2588, 0x2588, 0x2588, 0x258C
5973 };
5974 #endif /* KERMITFONT */
5975 /*
5976   QNX Console  --  This is exactly the same as CP437 except for the code
5977   point at 0xEE (epsilon vs element-of), which I think was just a mistake
5978   in reading glyphs by the QNX people, but who knows.  Also the glyph at
5979   0xED might be a fi (as it is in CP437, and as I have it here) or it might
5980   be a null-set symbol.
5981 */
5982 struct x_to_unicode u_qnxgrph = {
5983     128,0,0,0,"QNX Console","qnx-console",0,NULL,
5984     0x00c7, 0x00fc, 0x00e9, 0x00e2, 0x00e4, 0x00e0, 0x00e5, 0x00e7, /* 128 */
5985     0x00ea, 0x00eb, 0x00e8, 0x00ef, 0x00ee, 0x00ec, 0x00c4, 0x00c5, /* 136 */
5986     0x00c9, 0x00e6, 0x00c6, 0x00f4, 0x00f6, 0x00f2, 0x00fb, 0x00f9, /* 144 */
5987     0x00ff, 0x00d6, 0x00dc, 0x00a2, 0x00a3, 0x00a5, 0x20a7, 0x0192, /* 152 */
5988     0x00e1, 0x00ed, 0x00f3, 0x00fa, 0x00f1, 0x00d1, 0x00aa, 0x00ba, /* 160 */
5989     0x00bf, 0x2310, 0x00ac, 0x00bd, 0x00bc, 0x00a1, 0x00ab, 0x00bb, /* 168 */
5990     0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, /* 176 */
5991     0x2555, 0x2563, 0x2551, 0x2557, 0x255d, 0x255c, 0x255b, 0x2510, /* 184 */
5992     0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x255e, 0x255f, /* 192 */
5993     0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x2567, /* 200 */
5994     0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256b, /* 208 */
5995     0x256a, 0x2518, 0x250c, 0x2588, 0x2584, 0x258c, 0x2590, 0x2580, /* 216 */
5996     0x221d, 0x00df, 0x0393, 0x03c0, 0x03a3, 0x03c3, 0x00b5, 0x03c4, /* 224 */
5997     0x03a6, 0x0398, 0x03a9, 0x03b4, 0x221e, 0x03c6, 0x2208, 0x2229, /* 232 */
5998     0x2261, 0x00b1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00f7, 0x2248, /* 240 */
5999     0x00b0, 0x2219, 0x00b7, 0x221a, 0x207f, 0x00b2, 0x25ae, 0x00a0  /* 248 */
6000 };
6001
6002 struct x_to_unicode u_snibrack = {
6003     94, 33, 0, 0,"Siemens Nixdorf 97801 Brackets","sni-brackets",0,"w",
6004             0x2590, 0x258c, 0x2584, 0x2580, 0x2590, 0x258c, 0x2584, /* a0-7 */
6005     0x2580, 0x2329, 0x2327, 0x25af, 0x00b7, 0x25b9, 0x25c1, 0x003c, /* a8-f */
6006     0x253b, 0x2533, 0x2523, 0x252b, 0x2329, 0x232a, 0x2304, 0x2303, /* b0-7 */
6007     0x25e4, 0x25e5, 0x25e3, 0x25e2, 0x253f, 0x231b, 0x25cf, 0x25cb, /* b8-f */
6008     0x2502, 0x2500, 0x250c, 0x2510, 0x2514, 0x2518, 0x251c, 0x2524, /* c0-7 */
6009     0x252c, 0x2534, 0x253c, 0x2192, 0x2190, 0x2191, 0x2193, 0x2575, /* c8-f */
6010     0x2577, 0x25d4, 0x256d, 0x256e, 0x2570, 0x256f, 0x251c, 0x2524, /* d0-7 */
6011     0x252c, 0x2534, 0x253c, 0x253c, 0x2592, 0x2591, 0x2592, 0x2593, /* d8-f */
6012     0x2503, 0x2501, 0x250f, 0x2513, 0x2517, 0x251b, 0x2523, 0x252b, /* e0-7 */
6013     0x2533, 0x253b, 0x254b, 0x279e, 0x2190, 0x2191, 0x2193, 0x2579, /* e8-f */
6014     0x257b, 0x2261, 0x2554, 0x2557, 0x255a, 0x255d, 0x2523, 0x252b, /* f0-7 */
6015     0x2533, 0x253b, 0x254b, 0x254b, 0x0393, 0x03c3, 0x03c4          /* f8-f */
6016 };
6017
6018 struct x_to_unicode u_sniblanks = {
6019     94, 33, 0, 0,"Siemens Nixdorf 97801 Blanks","sni-blanks",0,"y",
6020             0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, /* a0-7 */
6021     0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, /* a8-f */
6022     0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, /* b0-7 */
6023     0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, /* b8-f */
6024     0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, /* c0-7 */
6025     0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, /* c8-f */
6026     0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, /* d0-7 */
6027     0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, /* d8-f */
6028     0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, /* e0-7 */
6029     0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, /* e8-f */
6030     0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, /* f0-7 */
6031     0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020          /* f8-f */
6032 };
6033
6034 struct x_to_unicode u_snifacet = {
6035     94, 33, 0, 0,"Siemens Nixdorf 97801 Facet","sni-facet",0,"c",
6036             0x0020, 0x2581, 0x2582, 0x2583, 0x2584, 0x2585, 0x2587, /* a1-a7 */
6037     0x005f, 0x2581, 0x2582, 0x2583, 0x2584, 0x2585, 0x2586, 0x2587, /* a8-af */
6038     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, /* b0-b7 */
6039     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, /* b8-bf */
6040     0x2503, 0x2501, 0x250f, 0x2513, 0x2517, 0x251b, 0x2523, 0x252b, /* c0-c7 */
6041     0x2533, 0x253b, 0x254b, 0x258f, 0x2595, 0xfffd, 0xfffd, 0xfffd, /* c8-cf */
6042     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, /* d0-d7 */
6043     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x2591, 0x2591, 0x2588, /* d8-df */
6044     0x2503, 0x2501, 0x250f, 0x2513, 0x2517, 0x251b, 0x2523, 0x252b, /* e0-e7 */
6045     0x2533, 0x253b, 0x254b, 0xfffd, 0xfffd, 0x2593, 0x2593, 0x0020, /* e8-ef */
6046     0x2585, 0x2586, 0x2587, 0x2588, 0xfffd, 0xfffd, 0xfffd, 0xfffd, /* f0-f7 */
6047     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x2594, 0x2594, 0xfffd          /* f8-fe */
6048 };
6049
6050 struct x_to_unicode u_sniibm = {
6051     94, 33, 0, 0,"Siemens Nixdorf 97801 IBM","sni-ibm",0,"v",
6052             0x263a, 0x263b, 0x2665, 0x2666, 0x2663, 0x2660, 0x25cf,
6053     0x25d8, 0x25cb, 0x25d9, 0x2642, 0x2640, 0x266a, 0x266b, 0x263c,
6054     0x25ba, 0x25c4, 0x2195, 0x203c, 0x00b6, 0x25c1, 0x2582, 0x21a8,
6055     0x2191, 0x2193, 0x2192, 0x2190, 0x2319, 0x2194, 0x25b4, 0x25be,
6056     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, /* Hex */
6057     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, /* bytes */
6058     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
6059     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
6060     0x2070, 0x00b9, 0x00b2, 0x00b3, 0x2074, 0x2075, 0x2076, 0x2077,
6061     0x2078, 0x2079, 0x207b, 0x207a, 0xfffd, 0xfffd, 0x2320, 0x2321,
6062     0x2080, 0x2081, 0x2082, 0x2083, 0x2084, 0x2085, 0x2086, 0x2087,
6063     0x2088, 0x2089, 0x208b, 0x208a, 0x221e, 0x03b1, 0x03a6
6064 };
6065
6066 struct x_to_unicode u_snieuro = {
6067     94, 33, 0, 0,"Siemens Nixdorf 97801 Euro","sni-euro",0,"u",
6068             0x00e0, 0x00e1, 0x00e2, 0x00e4, 0x00e5, 0x0105, 0x00e3,
6069     0x0103, 0x00e6, 0x00e7, 0x010d, 0x0107, 0x00f0, 0x0111, 0x010f,
6070     0x00e8, 0x00e9, 0x00ea, 0x00eb, 0x011b, 0x0119, 0x011f, 0x0131,
6071     0x00ee, 0x00ec, 0x01d0, 0x00ef, 0x0133, 0x013a, 0x0142, 0x013e,
6072     0x0148, 0x0144, 0x00f1, 0x00f2, 0x00f3, 0x00f4, 0x00f6, 0x00f5,
6073     0x00f8, 0x0151, 0x0153, 0x00fe, 0x0159, 0x0155, 0x0161, 0x015b,
6074     0x015f, 0x00df, 0x0163, 0x0165, 0x00f9, 0x00fa, 0x00fb, 0x00fc,
6075     0x016f, 0x0171, 0x00fd, 0x00ff, 0x017e, 0x017a, 0x017c, 0x00c9,
6076     0x00c5, 0x00c6, 0x00d0, 0x0130, 0x0132, 0x0167, 0x00d8, 0x0152,
6077     0x00de, 0x00c4, 0x00d6, 0x00dc, 0x00a7, 0x0024, 0x00a3, 0x00ae,
6078     0x00a9, 0x03a9, 0x00b5, 0x00b0, 0x00c7, 0x20a7, 0x03c0, 0x02d8,
6079     0x00b4, 0x02dd, 0x00d1, 0x2514, 0x2518, 0x007e, 0x02c7
6080 };
6081
6082 struct x_to_unicode u_smiley = {
6083     32,0,X2U_CXG,0,"PC C0 Graphics","smiley-faces",0,NULL,
6084     0x00a0, 0x263a, 0x263b, 0x2665, 0x2666, 0x2663, 0x2660, 0x2022,
6085     0x25d8, 0x25ef, 0x25d9, 0x2642, 0x2640, 0x266a, 0x266c, 0x263c,
6086     0x25ba, 0x25c4, 0x2195, 0x203c, 0x00b6, 0x00a7, 0x25ac, 0x21a8,
6087     0x2191, 0x2193, 0x2192, 0x2190, 0x2319, 0x2194, 0x25b2, 0x25bc
6088 };
6089
6090 struct x_to_unicode u_c0pics = {
6091     128,0,X2U_CXG,0,"C0/C1 Display Controls","display-controls",0,NULL,
6092     0x2400, 0x2401, 0x2402, 0x2403, 0x2404, 0x2405, 0x2406, 0x2407,
6093     0x2408, 0x2409, 0x240a, 0x240b, 0x240c, 0x240d, 0x240e, 0x240f,
6094     0x2410, 0x2411, 0x2412, 0x2413, 0x2414, 0x2415, 0x2416, 0x2417,
6095     0x2418, 0x2419, 0x241a, 0x241b, 0x241c, 0x241d, 0x241e, 0x241f,
6096     0x2420, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
6097     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
6098     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
6099     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
6100     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
6101     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
6102     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
6103     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
6104     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
6105     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
6106     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
6107     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x2421
6108 };
6109
6110 #ifdef KERMITFONT
6111 struct x_to_unicode u_c1pics = {
6112     32,0,X2U_CXG,0,"C1 Display Controls","c1-display-controls",0,NULL,
6113     0xe080, 0xe081, 0xe082, 0xe083, 0xe084, 0xe085, 0xe086, 0xe087,
6114     0xe088, 0xe089, 0xe08a, 0xe08b, 0xe08c, 0xe08d, 0xe08e, 0xe08f,
6115     0xe090, 0xe091, 0xe092, 0xe093, 0xe094, 0xe095, 0xe096, 0xe097,
6116     0xe098, 0xe099, 0xe09a, 0xe09b, 0xe09c, 0xe09d, 0xe09e, 0xe09f
6117 };
6118 #else
6119 struct x_to_unicode u_c1pics = {
6120     32,0,X2U_CXG,0,"C1 Display Controls","c1-display-controls",0,NULL,
6121     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
6122     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
6123     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
6124     0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd
6125 };
6126 #endif /* KERMITFONT */
6127
6128
6129 /* Blah-to-Unicode functions */
6130
6131 USHORT
6132 #ifdef CK_ANSIC
6133 ascii_u(CHAR c)
6134 #else
6135 ascii_u(c) CHAR c;
6136 #endif /* CK_ANSIC */
6137 {
6138     if (c & 0x80)
6139       return(UNK);
6140 /*
6141   NOTE: Strict ANSI compilers complain about "<" and similar comparisons
6142   between unsigned and signed quantities, as found in all the routines of
6143   the "blah_u()" class -- casts must be added to squelch the warnings.
6144 */
6145     if (c < u_ascii.offset)
6146       return(c);
6147     else if (c >= u_ascii.offset + u_ascii.size)
6148       return(c);
6149     else
6150       return(u_ascii.map[c - u_ascii.offset]);
6151 }
6152
6153 USHORT
6154 #ifdef CK_ANSIC
6155 british_u(CHAR c)
6156 #else
6157 british_u(c) CHAR c;
6158 #endif /* CK_ANSIC */
6159 {
6160     if (c & 0x80)
6161       return(UNK);
6162     if (c < u_british.offset)
6163       return(c);
6164     else if (c >= u_british.offset + u_british.size)
6165       return(c);
6166     else
6167       return(u_british.map[c - u_british.offset]);
6168 }
6169
6170 USHORT
6171 #ifdef CK_ANSIC
6172 dutch_u(CHAR c)
6173 #else
6174 dutch_u(c) CHAR c;
6175 #endif /* CK_ANSIC */
6176 {
6177     if (c & 0x80)
6178       return(UNK);
6179     if (c < u_dutch.offset)
6180       return(c);
6181     else if (c >= u_dutch.offset + u_dutch.size)
6182       return(c);
6183     else
6184       return(u_dutch.map[c - u_dutch.offset]);
6185 }
6186
6187 USHORT
6188 #ifdef CK_ANSIC
6189 finnish_u(CHAR c)
6190 #else
6191 finnish_u(c) CHAR c;
6192 #endif /* CK_ANSIC */
6193 {
6194     if (c & 0x80)
6195       return(UNK);
6196     if (c < u_finnish.offset)
6197       return(c);
6198     else if (c >= u_finnish.offset + u_finnish.size)
6199       return(c);
6200     else
6201       return(u_finnish.map[c - u_finnish.offset]);
6202 }
6203
6204 USHORT
6205 #ifdef CK_ANSIC
6206 french_u(CHAR c)
6207 #else
6208 french_u(c) CHAR c;
6209 #endif /* CK_ANSIC */
6210 {
6211     if (c & 0x80)
6212       return(UNK);
6213     if (c < u_french.offset)
6214       return(c);
6215     else if (c >= u_french.offset + u_french.size)
6216       return(c);
6217     else
6218       return(u_french.map[c - u_french.offset]);
6219 }
6220
6221 USHORT
6222 #ifdef CK_ANSIC
6223 fr_canadian_u(CHAR c)
6224 #else
6225 fr_canadian_u(c) CHAR c;
6226 #endif /* CK_ANSIC */
6227 {
6228     if (c & 0x80)
6229       return(UNK);
6230     if (c < u_fr_canadian.offset)
6231       return(c);
6232     else if (c >= u_fr_canadian.offset + u_fr_canadian.size)
6233       return(c);
6234     else
6235       return(u_fr_canadian.map[c - u_fr_canadian.offset]);
6236 }
6237
6238 USHORT
6239 #ifdef CK_ANSIC
6240 german_u(CHAR c)
6241 #else
6242 german_u(c) CHAR c;
6243 #endif /* CK_ANSIC */
6244 {
6245     if (c & 0x80)
6246       return(UNK);
6247     if (c < u_german.offset)
6248       return(c);
6249     else if (c >= u_german.offset + u_german.size)
6250       return(c);
6251     else
6252       return(u_german.map[c - u_german.offset]);
6253 }
6254
6255 USHORT
6256 #ifdef CK_ANSIC
6257 hungarian_u(CHAR c)
6258 #else
6259 hungarian_u(c) CHAR c;
6260 #endif /* CK_ANSIC */
6261 {
6262     if (c & 0x80)
6263       return(UNK);
6264     if (c < u_hungarian.offset)
6265       return(c);
6266     else if (c >= u_hungarian.offset + u_hungarian.size)
6267       return(c);
6268     else
6269       return(u_hungarian.map[c - u_hungarian.offset]);
6270 }
6271
6272 USHORT
6273 #ifdef CK_ANSIC
6274 italian_u(CHAR c)
6275 #else
6276 italian_u(c) CHAR c;
6277 #endif /* CK_ANSIC */
6278 {
6279     if (c & 0x80)
6280       return(UNK);
6281     if (c < u_italian.offset)
6282       return(c);
6283     else if (c >= u_italian.offset + u_italian.size)
6284       return(c);
6285     else
6286       return(u_italian.map[c - u_italian.offset]);
6287 }
6288
6289 USHORT
6290 #ifdef CK_ANSIC
6291 icelandic_u(CHAR c)
6292 #else
6293 icelandic_u(c) CHAR c;
6294 #endif /* CK_ANSIC */
6295 {
6296     if (c & 0x80)
6297       return(UNK);
6298     if (c < u_icelandic.offset)
6299       return(c);
6300     else if (c >= u_icelandic.offset + u_icelandic.size)
6301       return(c);
6302     else
6303       return(u_icelandic.map[c - u_icelandic.offset]);
6304 }
6305
6306 USHORT
6307 #ifdef CK_ANSIC
6308 jis0201r_u(CHAR c)
6309 #else
6310 jis0201r_u(c) CHAR c;
6311 #endif /* CK_ANSIC */
6312 {
6313     if (c & 0x80)
6314       return(UNK);
6315     if (c < u_jis0201r.offset)
6316       return(c);
6317     else if (c >= u_jis0201r.offset + u_jis0201r.size)
6318       return(c);
6319     else
6320       return(u_jis0201r.map[c - u_jis0201r.offset]);
6321 }
6322
6323 USHORT
6324 #ifdef CK_ANSIC
6325 jis0201k_u(CHAR c)
6326 #else
6327 jis0201k_u(c) CHAR c;
6328 #endif /* CK_ANSIC */
6329 {
6330     if (c & 0x80)
6331       return(UNK);
6332     if (c < u_jis0201k.offset)
6333       return(c);
6334     else if (c >= u_jis0201k.offset + u_jis0201k.size)
6335       return(c);
6336     else
6337       return(u_jis0201k.map[c - u_jis0201k.offset]);
6338 }
6339
6340 USHORT
6341 #ifdef CK_ANSIC
6342 norwegian_u(CHAR c)
6343 #else
6344 norwegian_u(c) CHAR c;
6345 #endif /* CK_ANSIC */
6346 {
6347     if (c & 0x80)
6348       return(UNK);
6349     if (c < u_norwegian.offset)
6350       return(c);
6351     else if (c >= u_norwegian.offset + u_norwegian.size)
6352       return(c);
6353     else
6354       return(u_norwegian.map[c - u_norwegian.offset]);
6355 }
6356
6357 USHORT
6358 #ifdef CK_ANSIC
6359 danish_u(CHAR c)
6360 #else
6361 danish_u(c) CHAR c;
6362 #endif /* CK_ANSIC */
6363 {
6364     if (c & 0x80)
6365       return(UNK);
6366     if (c < u_danish.offset)
6367       return(c);
6368     else if (c >= u_danish.offset + u_danish.size)
6369       return(c);
6370     else
6371       return(u_danish.map[c - u_danish.offset]);
6372 }
6373
6374 USHORT
6375 #ifdef CK_ANSIC
6376 portuguese_u(CHAR c)
6377 #else
6378 portuguese_u(c) CHAR c;
6379 #endif /* CK_ANSIC */
6380 {
6381     if (c & 0x80)
6382       return(UNK);
6383     if (c < u_portuguese.offset)
6384       return(c);
6385     else if (c >= u_portuguese.offset + u_portuguese.size)
6386       return(c);
6387     else
6388       return(u_portuguese.map[c - u_portuguese.offset]);
6389 }
6390
6391 USHORT
6392 #ifdef CK_ANSIC
6393 spanish_u(CHAR c)
6394 #else
6395 spanish_u(c) CHAR c;
6396 #endif /* CK_ANSIC */
6397 {
6398     if (c & 0x80)
6399       return(UNK);
6400     if (c < u_spanish.offset)
6401       return(c);
6402     else if (c >= u_spanish.offset + u_spanish.size)
6403       return(c);
6404     else
6405       return(u_spanish.map[c - u_spanish.offset]);
6406 }
6407
6408 USHORT
6409 #ifdef CK_ANSIC
6410 swedish_u(CHAR c)
6411 #else
6412 swedish_u(c) CHAR c;
6413 #endif /* CK_ANSIC */
6414 {
6415     if (c & 0x80)
6416       return(UNK);
6417     if (c < u_swedish.offset)
6418       return(c);
6419     else if (c >= u_swedish.offset + u_swedish.size)
6420       return(c);
6421     else
6422       return(u_swedish.map[c - u_swedish.offset]);
6423 }
6424
6425 USHORT
6426 #ifdef CK_ANSIC
6427 swiss_u(CHAR c)
6428 #else
6429 swiss_u(c) CHAR c;
6430 #endif /* CK_ANSIC */
6431 {
6432     if (c & 0x80)
6433       return(UNK);
6434     if (c < u_swiss.offset)
6435       return(c);
6436     else if (c >= u_swiss.offset + u_swiss.size)
6437       return(c);
6438     else
6439       return(u_swiss.map[c - u_swiss.offset]);
6440 }
6441
6442 USHORT
6443 #ifdef CK_ANSIC
6444 apl1_u(CHAR c)
6445 #else
6446 apl1_u(c) CHAR c;
6447 #endif /* CK_ANSIC */
6448 {
6449     if (c & 0x80)
6450       return(UNK);
6451     if (c < u_apl1.offset)
6452       return(c);
6453     else if (c >= u_apl1.offset + u_apl1.size)
6454       return(c);
6455     else
6456       return(u_apl1.map[c - u_apl1.offset]);
6457 }
6458
6459 USHORT
6460 #ifdef CK_ANSIC
6461 ident_u(CHAR c)
6462 #else /* CK_ANSIC */
6463 ident_u(c) CHAR c;
6464 #endif /* CK_ANSIC */
6465 {
6466     return((USHORT)c);
6467 }
6468
6469 USHORT
6470 #ifdef CK_ANSIC
6471 iso_8859_1_u(CHAR c)
6472 #else
6473 iso_8859_1_u(c) CHAR c;
6474 #endif /* CK_ANSIC */
6475 {
6476     if (c >= 0x80 && c < 0xa0)
6477       return(c);
6478     c &= 0x7f;
6479     if (c < u_8859_1.offset)
6480       return(c);
6481     else if (c >= u_8859_1.offset + u_8859_1.size)
6482       return(c);
6483     else
6484       return(u_8859_1.map[c - u_8859_1.offset]);
6485 }
6486
6487 USHORT
6488 #ifdef CK_ANSIC
6489 iso_8859_2_u(CHAR c)
6490 #else
6491 iso_8859_2_u(c) CHAR c;
6492 #endif /* CK_ANSIC */
6493 {
6494     if (c >= 0x80 && c < 0xa0)
6495       return(c);
6496     c &= 0x7f;
6497     if (c < u_8859_2.offset)
6498       return(c);
6499     else if (c >= u_8859_2.offset + u_8859_2.size)
6500       return(c);
6501     else
6502       return(u_8859_2.map[c - u_8859_2.offset]);
6503 }
6504
6505 USHORT
6506 #ifdef CK_ANSIC
6507 iso_8859_3_u(CHAR c)
6508 #else
6509 iso_8859_3_u(c) CHAR c;
6510 #endif /* CK_ANSIC */
6511 {
6512     if (c >= 0x80 && c < 0xa0)
6513       return(c);
6514     c &= 0x7f;
6515     if (c < u_8859_3.offset)
6516       return(c);
6517     else if (c >= u_8859_3.offset + u_8859_3.size)
6518       return(c);
6519     else
6520       return(u_8859_3.map[c - u_8859_3.offset]);
6521 }
6522
6523 USHORT
6524 #ifdef CK_ANSIC
6525 iso_8859_4_u(CHAR c)
6526 #else
6527 iso_8859_4_u(c) CHAR c;
6528 #endif /* CK_ANSIC */
6529 {
6530     if (c >= 0x80 && c < 0xa0)
6531       return(c);
6532     c &= 0x7f;
6533     if (c < u_8859_4.offset)
6534       return(c);
6535     else if (c >= u_8859_4.offset + u_8859_4.size)
6536       return(c);
6537     else
6538       return(u_8859_4.map[c - u_8859_4.offset]);
6539 }
6540
6541 USHORT
6542 #ifdef CK_ANSIC
6543 iso_8859_5_u(CHAR c)
6544 #else
6545 iso_8859_5_u(c) CHAR c;
6546 #endif /* CK_ANSIC */
6547 {
6548     if (c >= 0x80 && c < 0xa0)
6549       return(c);
6550     c &= 0x7f;
6551     if (c < u_8859_5.offset)
6552       return(c);
6553     else if (c >= u_8859_5.offset + u_8859_5.size)
6554       return(c);
6555     else
6556       return(u_8859_5.map[c - u_8859_5.offset]);
6557 }
6558
6559 USHORT
6560 #ifdef CK_ANSIC
6561 koi8_u(CHAR c)
6562 #else
6563 koi8_u(c) CHAR c;
6564 #endif /* CK_ANSIC */
6565 {
6566     if (c >= 0x80 && c < 0xa0)
6567       return(c);
6568     c &= 0x7f;
6569     if (c < u_koi8.offset)
6570       return(c);
6571     else if (c >= u_koi8.offset + u_koi8.size)
6572       return(c);
6573     else
6574       return(u_koi8.map[c - u_koi8.offset]);
6575 }
6576
6577 USHORT
6578 #ifdef CK_ANSIC
6579 koi8r_u(CHAR c)                         /* KOI8-R to Unicode */
6580 #else
6581 koi8r_u(c) CHAR c;
6582 #endif /* CK_ANSIC */
6583 {
6584     c &= 0x7f;
6585     if (c < u_koi8r.offset)
6586       return(c);
6587     else if (c >= u_koi8r.offset + u_koi8r.size)
6588       return(c);
6589     else
6590       return(u_koi8r.map[c - u_koi8r.offset]);
6591 }
6592
6593 USHORT
6594 #ifdef CK_ANSIC
6595 koi8u_u(CHAR c)
6596 #else
6597 koi8u_u(c) CHAR c;
6598 #endif /* CK_ANSIC */
6599 {
6600     c &= 0x7f;
6601     if (c < u_koi8u.offset)
6602       return(c);
6603     else if (c >= u_koi8u.offset + u_koi8u.size)
6604       return(c);
6605     else
6606       return(u_koi8u.map[c - u_koi8u.offset]);
6607 }
6608
6609 USHORT
6610 #ifdef CK_ANSIC
6611 iso_8859_6_u(CHAR c)
6612 #else
6613 iso_8859_6_u(c) CHAR c;
6614 #endif /* CK_ANSIC */
6615 {
6616     if (c >= 0x80 && c < 0xa0)
6617       return(c);
6618     c &= 0x7f;
6619     if (c < u_8859_6.offset)
6620       return(c);
6621     else if (c >= u_8859_6.offset + u_8859_6.size)
6622       return(c);
6623     else
6624       return(u_8859_6.map[c - u_8859_6.offset]);
6625 }
6626
6627 USHORT
6628 #ifdef CK_ANSIC
6629 iso_8859_7_u(CHAR c)
6630 #else
6631 iso_8859_7_u(c) CHAR c;
6632 #endif /* CK_ANSIC */
6633 {
6634     if (c >= 0x80 && c < 0xa0)
6635       return(c);
6636     c &= 0x7f;
6637     if (c < u_8859_7.offset)
6638       return(c);
6639     else if (c >= u_8859_7.offset + u_8859_7.size)
6640       return(c);
6641     else
6642       return(u_8859_7.map[c - u_8859_7.offset]);
6643 }
6644
6645 USHORT
6646 #ifdef CK_ANSIC
6647 iso_8859_8_u(CHAR c)
6648 #else
6649 iso_8859_8_u(c) CHAR c;
6650 #endif /* CK_ANSIC */
6651 {
6652     if (c >= 0x80 && c < 0xa0)
6653       return(c);
6654     c &= 0x7f;
6655     if (c < u_8859_8.offset)
6656       return(c);
6657     else if (c >= u_8859_8.offset + u_8859_8.size)
6658       return(c);
6659     else
6660       return(u_8859_8.map[c - u_8859_8.offset]);
6661 }
6662
6663 USHORT
6664 #ifdef CK_ANSIC
6665 hebrew7_u(CHAR c)
6666 #else
6667 hebrew7_u(c) CHAR c;
6668 #endif /* CK_ANSIC */
6669 {
6670     c &= 0x7f;
6671     if (c < u_hebrew7.offset)
6672       return(c);
6673     else if (c >= u_hebrew7.offset + u_hebrew7.size)
6674       return(c);
6675     else
6676       return(u_hebrew7.map[c - u_hebrew7.offset]);
6677 }
6678
6679 USHORT
6680 #ifdef CK_ANSIC
6681 elot927_u(CHAR c)
6682 #else
6683 elot927_u(c) CHAR c;
6684 #endif /* CK_ANSIC */
6685 {
6686     c &= 0x7f;
6687     if (c < u_elot927.offset)
6688       return(c);
6689     else if (c >= u_elot927.offset + u_elot927.size)
6690       return(c);
6691     else
6692       return(u_elot927.map[c - u_elot927.offset]);
6693 }
6694
6695 USHORT
6696 #ifdef CK_ANSIC
6697 iso_8859_9_u(CHAR c)
6698 #else
6699 iso_8859_9_u(c) CHAR c;
6700 #endif /* CK_ANSIC */
6701 {
6702     if (c >= 0x80 && c < 0xa0)
6703       return(c);
6704     c &= 0x7f;
6705     if (c < u_8859_9.offset)
6706       return(c);
6707     else if (c >= u_8859_9.offset + u_8859_9.size)
6708       return(c);
6709     else
6710       return(u_8859_9.map[c - u_8859_9.offset]);
6711 }
6712
6713 USHORT
6714 #ifdef CK_ANSIC
6715 iso_8859_10_u(CHAR c)
6716 #else
6717 iso_8859_10_u(c) CHAR c;
6718 #endif /* CK_ANSIC */
6719 {
6720     if (c >= 0x80 && c < 0xa0)
6721       return(c);
6722     c &= 0x7f;
6723     if (c < u_8859_10.offset)
6724       return(c);
6725     else if (c >= u_8859_10.offset + u_8859_10.size)
6726       return(c);
6727     else
6728       return(u_8859_10.map[c - u_8859_10.offset]);
6729 }
6730
6731 USHORT
6732 #ifdef CK_ANSIC
6733 iso_8859_15_u(CHAR c)
6734 #else
6735 iso_8859_15_u(c) CHAR c;
6736 #endif /* CK_ANSIC */
6737 {
6738     if (c >= 0x80 && c < 0xa0)
6739       return(c);
6740     c &= 0x7f;
6741     if (c < u_8859_15.offset)
6742       return(c);
6743     else if (c >= u_8859_15.offset + u_8859_15.size)
6744       return(c);
6745     else
6746       return(u_8859_15.map[c - u_8859_15.offset]);
6747 }
6748
6749 USHORT
6750 #ifdef CK_ANSIC
6751 apl2_u(CHAR c)
6752 #else
6753 apl2_u(c) CHAR c;
6754 #endif /* CK_ANSIC */
6755 {
6756     if (c >= 0x80 && c < 0xa0)
6757       return(c);
6758     c &= 0x7f;
6759     if (c < u_apl2.offset)
6760       return(c);
6761     else if (c >= u_apl2.offset + u_apl2.size)
6762       return(c);
6763     else
6764       return(u_apl2.map[c - u_apl2.offset]);
6765 }
6766
6767 USHORT
6768 #ifdef CK_ANSIC
6769 apl3_u(CHAR c)
6770 #else
6771 apl3_u(c) CHAR c;
6772 #endif /* CK_ANSIC */
6773 {
6774     c &= 0x7f;
6775     if (c < u_apl3.offset)
6776       return(c);
6777     else if (c >= u_apl3.offset + u_apl3.size)
6778       return(c);
6779     else
6780       return(u_apl3.map[c - u_apl3.offset]);
6781 }
6782
6783 USHORT
6784 #ifdef CK_ANSIC
6785 apl4_u(CHAR c)
6786 #else
6787 apl4_u(c) CHAR c;
6788 #endif /* CK_ANSIC */
6789 {
6790     c &= 0x7f;
6791     if (c < u_apl4.offset)
6792       return(c);
6793     else if (c >= u_apl4.offset + u_apl4.size)
6794       return(c);
6795     else
6796       return(u_apl4.map[c - u_apl4.offset]);
6797 }
6798
6799 USHORT
6800 #ifdef CK_ANSIC
6801 apl5_u(CHAR c)
6802 #else
6803 apl5_u(c) CHAR c;
6804 #endif /* CK_ANSIC */
6805 {
6806     c &= 0x7f;
6807     if (c < u_apl5.offset)
6808       return(c);
6809     else if (c >= u_apl5.offset + u_apl5.size)
6810       return(c);
6811     else
6812       return(u_apl5.map[c - u_apl5.offset]);
6813 }
6814
6815 USHORT
6816 #ifdef CK_ANSIC
6817 koi7_u(CHAR c)
6818 #else
6819 koi7_u(c) CHAR c;
6820 #endif /* CK_ANSIC */
6821 {
6822     if (c & 0x80)
6823       return(UNK);
6824     if (c < u_koi7.offset)
6825       return(c);
6826     else if (c >= u_koi7.offset + u_koi7.size)
6827       return(c);
6828     else
6829       return(u_koi7.map[c - u_koi7.offset]);
6830 }
6831
6832 USHORT
6833 #ifdef CK_ANSIC
6834 decmcs_u(CHAR c)
6835 #else
6836 decmcs_u(c) CHAR c;
6837 #endif /* CK_ANSIC */
6838 {
6839     if (c >= 0x80 && c < 0xa0)
6840       return(c);
6841     c &= 0x7f;
6842     if (c < u_decmcs.offset)
6843       return(c);
6844     else if (c >= u_decmcs.offset + u_decmcs.size)
6845       return(c);
6846     else
6847       return(u_decmcs.map[c - u_decmcs.offset]);
6848 }
6849
6850 USHORT
6851 #ifdef CK_ANSIC
6852 nextstep_u(CHAR c)
6853 #else
6854 nextstep_u(c) CHAR c;
6855 #endif /* CK_ANSIC */
6856 {
6857     return(u_nextstep.map[(c & 0x7f) - u_nextstep.offset]);
6858 }
6859
6860 USHORT
6861 #ifdef CK_ANSIC
6862 dgi_u(CHAR c)
6863 #else
6864 dgi_u(c) CHAR c;
6865 #endif /* CK_ANSIC */
6866 {
6867     if (c >= 0x80 && c < 0xa0)
6868       return(c);
6869     return(u_dgi.map[(c & 0x7f) - u_dgi.offset]);
6870 }
6871
6872 USHORT
6873 #ifdef CK_ANSIC
6874 hproman8_u(CHAR c)
6875 #else
6876 hproman8_u(c) CHAR c;
6877 #endif /* CK_ANSIC */
6878 {
6879     if (c >= 0x80 && c < 0xa0)
6880       return(c);
6881     return(u_hproman8.map[(c & 0x7f) - u_hproman8.offset]);
6882 }
6883
6884 USHORT
6885 #ifdef CK_ANSIC
6886 cp37_u(CHAR c)
6887 #else
6888 cp37_u(c) CHAR c;
6889 #endif /* CK_ANSIC */
6890 {
6891     return(u_cp37.map[c & 0x7f]);
6892 }
6893
6894 USHORT
6895 #ifdef CK_ANSIC
6896 cp437_u(CHAR c)
6897 #else
6898 cp437_u(c) CHAR c;
6899 #endif /* CK_ANSIC */
6900 {
6901     return(u_cp437.map[c & 0x7f]);
6902 }
6903
6904 USHORT
6905 #ifdef CK_ANSIC
6906 mazovia_u(CHAR c) /* Mazovia = CP437 with substitutions */
6907 #else
6908 mazovia_u(c) CHAR c;
6909 #endif /* CK_ANSIC */
6910 {
6911     return(u_mazovia.map[c & 0x7f]);
6912 }
6913
6914 USHORT
6915 #ifdef CK_ANSIC
6916 cp850_u(CHAR c)
6917 #else
6918 cp850_u(c) CHAR c;
6919 #endif /* CK_ANSIC */
6920 {
6921     return(u_cp850.map[c & 0x7f]);
6922 }
6923
6924 USHORT
6925 #ifdef CK_ANSIC
6926 cp858_u(CHAR c)
6927 #else
6928 cp858_u(c) CHAR c;
6929 #endif /* CK_ANSIC */
6930 {
6931     return(u_cp858.map[c & 0x7f]);
6932 }
6933
6934 USHORT
6935 #ifdef CK_ANSIC
6936 cp1250_u(CHAR c)
6937 #else
6938 cp1250_u(c) CHAR c;
6939 #endif /* CK_ANSIC */
6940 {
6941     return(u_cp1250.map[c & 0x7f]);
6942 }
6943
6944 USHORT
6945 #ifdef CK_ANSIC
6946 cp1251_u(CHAR c)
6947 #else
6948 cp1251_u(c) CHAR c;
6949 #endif /* CK_ANSIC */
6950 {
6951     return(u_cp1251.map[c & 0x7f]);
6952 }
6953
6954 USHORT
6955 #ifdef CK_ANSIC
6956 cp1252_u(CHAR c)
6957 #else
6958 cp1252_u(c) CHAR c;
6959 #endif /* CK_ANSIC */
6960 {
6961     return(u_cp1252.map[c & 0x7f]);
6962 }
6963
6964 USHORT
6965 #ifdef CK_ANSIC
6966 cp1253_u(CHAR c)
6967 #else
6968 cp1253_u(c) CHAR c;
6969 #endif /* CK_ANSIC */
6970 {
6971     return(u_cp1253.map[c & 0x7f]);
6972 }
6973
6974 USHORT
6975 #ifdef CK_ANSIC
6976 cp1254_u(CHAR c)
6977 #else
6978 cp1254_u(c) CHAR c;
6979 #endif /* CK_ANSIC */
6980 {
6981     return(u_cp1254.map[c & 0x7f]);
6982 }
6983
6984 USHORT
6985 #ifdef CK_ANSIC
6986 cp1255_u(CHAR c)
6987 #else
6988 cp1255_u(c) CHAR c;
6989 #endif /* CK_ANSIC */
6990 {
6991     return(u_cp1255.map[c & 0x7f]);
6992 }
6993
6994 USHORT
6995 #ifdef CK_ANSIC
6996 cp1256_u(CHAR c)
6997 #else
6998 cp1256_u(c) CHAR c;
6999 #endif /* CK_ANSIC */
7000 {
7001     return(u_cp1256.map[c & 0x7f]);
7002 }
7003
7004 USHORT
7005 #ifdef CK_ANSIC
7006 cp1257_u(CHAR c)
7007 #else
7008 cp1257_u(c) CHAR c;
7009 #endif /* CK_ANSIC */
7010 {
7011     return(u_cp1257.map[c & 0x7f]);
7012 }
7013
7014 USHORT
7015 #ifdef CK_ANSIC
7016 cp1258_u(CHAR c)
7017 #else
7018 cp1258_u(c) CHAR c;
7019 #endif /* CK_ANSIC */
7020 {
7021     return(u_cp1258.map[c & 0x7f]);
7022 }
7023
7024 USHORT
7025 #ifdef CK_ANSIC
7026 cp852_u(CHAR c)
7027 #else
7028 cp852_u(c) CHAR c;
7029 #endif /* CK_ANSIC */
7030 {
7031     return(u_cp852.map[c & 0x7f]);
7032 }
7033
7034 USHORT                                  /* Cyrillic */
7035 #ifdef CK_ANSIC
7036 cp855_u(CHAR c)
7037 #else
7038 cp855_u(c) CHAR c;
7039 #endif /* CK_ANSIC */
7040 {
7041     return(u_cp855.map[c & 0x7f]);
7042 }
7043
7044 USHORT                                  /* Bulgaria */
7045 #ifdef CK_ANSIC
7046 cp856_u(CHAR c)
7047 #else
7048 cp856_u(c) CHAR c;
7049 #endif /* CK_ANSIC */
7050 {
7051     return(u_cp856.map[c & 0x7f]);
7052 }
7053
7054 USHORT
7055 #ifdef CK_ANSIC
7056 cp857_u(CHAR c)
7057 #else
7058 cp857_u(c) CHAR c;
7059 #endif /* CK_ANSIC */
7060 {
7061     return(u_cp857.map[c & 0x7f]);
7062 }
7063
7064 USHORT
7065 #ifdef CK_ANSIC
7066 cp862_u(CHAR c)
7067 #else
7068 cp862_u(c) CHAR c;
7069 #endif /* CK_ANSIC */
7070 {
7071     return(u_cp862.map[c & 0x7f]);
7072 }
7073
7074 USHORT
7075 #ifdef CK_ANSIC
7076 cp864_u(CHAR c)
7077 #else
7078 cp864_u(c) CHAR c;
7079 #endif /* CK_ANSIC */
7080 {
7081     return(u_cp864.map[c & 0x7f]);
7082 }
7083
7084 USHORT
7085 #ifdef CK_ANSIC
7086 cp866_u(CHAR c)
7087 #else
7088 cp866_u(c) CHAR c;
7089 #endif /* CK_ANSIC */
7090 {
7091     return(u_cp866.map[c & 0x7f]);
7092 }
7093
7094 USHORT
7095 #ifdef CK_ANSIC
7096 cp869_u(CHAR c)
7097 #else
7098 cp869_u(c) CHAR c;
7099 #endif /* CK_ANSIC */
7100 {
7101     return(u_cp869.map[c & 0x7f]);
7102 }
7103
7104 USHORT
7105 #ifdef CK_ANSIC
7106 maclatin_u(CHAR c)
7107 #else
7108 maclatin_u(c) CHAR c;
7109 #endif /* CK_ANSIC */
7110 {
7111     return(u_maclatin.map[c & 0x7f]);
7112 }
7113
7114 USHORT
7115 #ifdef CK_ANSIC
7116 quickdraw_u(CHAR c)
7117 #else
7118 quickdraw_u(c) CHAR c;
7119 #endif /* CK_ANSIC */
7120 {
7121     return(u_quickdraw.map[c & 0x7f]);
7122 }
7123
7124 USHORT
7125 #ifdef CK_ANSIC
7126 decspec_u(CHAR c)
7127 #else
7128 decspec_u(c) CHAR c;
7129 #endif /* CK_ANSIC */
7130 {
7131     c &= 0x7f;
7132     if (c < u_decspec.offset)
7133       return(c);
7134     else if (c >= u_decspec.offset + u_decspec.size)
7135       return(c);
7136     else
7137       return (u_decspec.map[c - u_decspec.offset]);
7138 }
7139
7140 USHORT
7141 #ifdef CK_ANSIC
7142 dectech_u(CHAR c)
7143 #else
7144 dectech_u(c) CHAR c;
7145 #endif /* CK_ANSIC */
7146 {
7147     c &= 0x7f;
7148     if (c < u_dectech.offset)
7149       return(c);
7150     else if (c >= u_dectech.offset + u_dectech.size)
7151       return(c);
7152     else
7153       return(u_dectech.map[c - u_dectech.offset]);
7154 }
7155
7156 USHORT
7157 #ifdef CK_ANSIC
7158 dgspec_u(CHAR c)
7159 #else
7160 dgspec_u(c) CHAR c;
7161 #endif /* CK_ANSIC */
7162 {
7163     c &= 0x7f;
7164     if (c < u_dgspec.offset)
7165       return(c);
7166     else if (c >= u_dgspec.offset + u_dgspec.size)
7167       return(c);
7168     else
7169       return(u_dgspec.map[c - u_dgspec.offset]);
7170 }
7171
7172 USHORT
7173 #ifdef CK_ANSIC
7174 dgline_u(CHAR c)
7175 #else
7176 dgline_u(c) CHAR c;
7177 #endif /* CK_ANSIC */
7178 {
7179     c &= 0x7f;
7180     if (c < u_dgline.offset)
7181       return(c);
7182     else if (c >= u_dgline.offset + u_dgline.size)
7183       return(c);
7184     else
7185       return(u_dgline.map[c - u_dgline.offset]);
7186 }
7187
7188 USHORT
7189 #ifdef CK_ANSIC
7190 dgword_u(CHAR c)
7191 #else
7192 dgword_u(c) CHAR c;
7193 #endif /* CK_ANSIC */
7194 {
7195     c &= 0x7f;
7196     if (c < u_dgword.offset)
7197       return(c);
7198     else if (c >= u_dgword.offset + u_dgword.size)
7199       return(c);
7200     else
7201       return(u_dgword.map[c - u_dgword.offset]);
7202 }
7203
7204 USHORT
7205 #ifdef CK_ANSIC
7206 hpline_u(CHAR c)
7207 #else
7208 hpline_u(c) CHAR c;
7209 #endif /* CK_ANSIC */
7210 {
7211     c &= 0x7f;
7212     if (c < u_hpline.offset)
7213       return(c);
7214     else if (c >= u_hpline.offset + u_hpline.size)
7215       return(c);
7216     else
7217       return(u_hpline.map[c - u_hpline.offset]);
7218 }
7219
7220 USHORT
7221 #ifdef CK_ANSIC
7222 hpmath_u(CHAR c)
7223 #else
7224 hpmath_u(c) CHAR c;
7225 #endif /* CK_ANSIC */
7226 {
7227     c &= 0x7f;
7228     if (c < u_hpmath.offset)
7229       return(c);
7230     else if (c >= u_hpmath.offset + u_hpmath.size)
7231       return(c);
7232     else
7233       return(u_hpmath.map[c - u_hpmath.offset]);
7234 }
7235
7236 USHORT
7237 #ifdef CK_ANSIC
7238 qnxgrph_u(CHAR c)
7239 #else
7240 qnxgrph_u(c) CHAR c;
7241 #endif /* CK_ANSIC */
7242 {
7243     c &= 0x7f;
7244     if (c < u_qnxgrph.offset)
7245       return(c);
7246     else if (c >= u_qnxgrph.offset + u_qnxgrph.size)
7247       return(c);
7248     else
7249       return(u_qnxgrph.map[c - u_qnxgrph.offset]);
7250 }
7251
7252 USHORT
7253 #ifdef CK_ANSIC
7254 hz1500_u(CHAR c)
7255 #else
7256 hz1500_u(c) CHAR c;
7257 #endif /* CK_ANSIC */
7258 {
7259     c &= 0x7f;
7260     if (c < u_hz1500.offset)
7261       return(c);
7262     else if (c >= u_hz1500.offset + u_hz1500.size)
7263       return(c);
7264     else
7265       return(u_hz1500.map[c - u_hz1500.offset]);
7266 }
7267
7268 USHORT
7269 #ifdef CK_ANSIC
7270 sniblanks_u(CHAR c)
7271 #else
7272 sniblanks_u(c) CHAR c;
7273 #endif /* CK_ANSIC */
7274 {
7275     c &= 0x7f;
7276     if (c < u_sniblanks.offset)
7277       return(c);
7278     else if (c >= u_sniblanks.offset + u_sniblanks.size)
7279       return(c);
7280     else
7281       return(u_sniblanks.map[c - u_sniblanks.offset]);
7282 }
7283
7284 USHORT
7285 #ifdef CK_ANSIC
7286 snibrack_u(CHAR c)
7287 #else
7288 snibrack_u(c) CHAR c;
7289 #endif /* CK_ANSIC */
7290 {
7291     c &= 0x7f;
7292     if (c < u_snibrack.offset)
7293       return(c);
7294     else if (c >= u_snibrack.offset + u_snibrack.size)
7295       return(c);
7296     else
7297       return(u_snibrack.map[c - u_snibrack.offset]);
7298 }
7299
7300 USHORT
7301 #ifdef CK_ANSIC
7302 snifacet_u(CHAR c)
7303 #else
7304 snifacet_u(c) CHAR c;
7305 #endif /* CK_ANSIC */
7306 {
7307     c &= 0x7f;
7308     if (c < u_snifacet.offset)
7309       return(c);
7310     else if (c >= u_snifacet.offset + u_snifacet.size)
7311       return(c);
7312     else
7313       return(u_snifacet.map[c - u_snifacet.offset]);
7314 }
7315
7316 USHORT
7317 #ifdef CK_ANSIC
7318 sniibm_u(CHAR c)
7319 #else
7320 sniibm_u(c) CHAR c;
7321 #endif /* CK_ANSIC */
7322 {
7323     c &= 0x7f;
7324     if (c < u_sniibm.offset)
7325       return(c);
7326     else if (c >= u_sniibm.offset + u_sniibm.size)
7327       return(c);
7328     else
7329       return(u_sniibm.map[c - u_sniibm.offset]);
7330 }
7331
7332 USHORT
7333 #ifdef CK_ANSIC
7334 snieuro_u(CHAR c)
7335 #else
7336 snieuro_u(c) CHAR c;
7337 #endif /* CK_ANSIC */
7338 {
7339     c &= 0x7f;
7340     if (c < u_snieuro.offset)
7341       return(c);
7342     else if (c >= u_snieuro.offset + u_snieuro.size)
7343       return(c);
7344     else
7345       return(u_snieuro.map[c - u_snieuro.offset]);
7346 }
7347
7348 USHORT
7349 #ifdef CK_ANSIC
7350 heath19g_u(CHAR c)
7351 #else
7352 heath19g_u(c) CHAR c;
7353 #endif /* CK_ANSIC */
7354 {
7355     c &= 0x7f;
7356     if (c < u_heath19g.offset)
7357       return(c);
7358     else if (c >= u_heath19g.offset + u_heath19g.size)
7359       return(c);
7360     else
7361       return(u_heath19g.map[c - u_heath19g.offset]);
7362 }
7363
7364 USHORT
7365 #ifdef CK_ANSIC
7366 tvig_u(CHAR c)
7367 #else
7368 tvig_u(c) CHAR c;
7369 #endif /* CK_ANSIC */
7370 {
7371     c &= 0x7f;
7372     if (c < u_tvig.offset)
7373       return(c);
7374     else if (c >= u_tvig.offset + u_tvig.size)
7375       return(c);
7376     else
7377       return(u_tvig.map[c - u_tvig.offset]);
7378 }
7379
7380 USHORT
7381 #ifdef CK_ANSIC
7382 wyse_gn_u(CHAR c)
7383 #else
7384 wyse_gn_u(c) CHAR c;
7385 #endif /* CK_ANSIC */
7386 {
7387     c &= 0x7f;
7388     if (c < u_wyse_gn.offset)
7389       return(c);
7390     else if (c >= u_wyse_gn.offset + u_wyse_gn.size)
7391       return(c);
7392     else
7393       return(u_wyse_gn.map[c - u_wyse_gn.offset]);
7394 }
7395
7396 USHORT
7397 #ifdef CK_ANSIC
7398 wyse_g1_u(CHAR c)
7399 #else
7400 wyse_g1_u(c) CHAR c;
7401 #endif /* CK_ANSIC */
7402 {
7403     c &= 0x7f;
7404     if (c < u_wyse_g1.offset)
7405       return(c);
7406     else if (c >= u_wyse_g1.offset + u_wyse_g1.size)
7407       return(c);
7408     else
7409       return(u_wyse_g1.map[c - u_wyse_g1.offset]);
7410 }
7411
7412 USHORT
7413 #ifdef CK_ANSIC
7414 wyse_g2_u(CHAR c)
7415 #else
7416 wyse_g2_u(c) CHAR c;
7417 #endif /* CK_ANSIC */
7418 {
7419     c &= 0x7f;
7420     if (c < u_wyse_g2.offset)
7421       return(c);
7422     else if (c >= u_wyse_g2.offset + u_wyse_g2.size)
7423       return(c);
7424     else
7425       return(u_wyse_g2.map[c - u_wyse_g2.offset]);
7426 }
7427
7428 USHORT
7429 #ifdef CK_ANSIC
7430 wyse_g3_u(CHAR c)
7431 #else
7432 wyse_g3_u(c) CHAR c;
7433 #endif /* CK_ANSIC */
7434 {
7435     c &= 0x7f;
7436     if (c < u_wyse_g3.offset)
7437       return(c);
7438     else if (c >= u_wyse_g3.offset + u_wyse_g3.size)
7439       return(c);
7440     else
7441       return(u_wyse_g3.map[c - u_wyse_g3.offset]);
7442 }
7443
7444 USHORT
7445 #ifdef CK_ANSIC
7446 smiley_u(CHAR c)
7447 #else
7448 smiley_u(c) CHAR c;
7449 #endif /* CK_ANSIC */
7450 {
7451     c &= 0x7f;
7452     if (c < u_smiley.offset)
7453       return(c);
7454     else if (c >= u_smiley.offset + u_smiley.size)
7455       return(c);
7456     else
7457       return(u_smiley.map[c - u_smiley.offset]);
7458 }
7459
7460 USHORT
7461 #ifdef CK_ANSIC
7462 c0pics_u(CHAR c)
7463 #else
7464 c0pics_u(c) CHAR c;
7465 #endif /* CK_ANSIC */
7466 {
7467     c &= 0x7f;
7468     if (c < u_c0pics.offset)
7469       return(c);
7470     else if (c >= u_c0pics.offset + u_c0pics.size)
7471       return(c);
7472     else
7473       return(u_c0pics.map[c - u_c0pics.offset]);
7474 }
7475
7476 USHORT
7477 #ifdef CK_ANSIC
7478 c1pics_u(CHAR c)
7479 #else
7480 c1pics_u(c) CHAR c;
7481 #endif /* CK_ANSIC */
7482 {
7483     c &= 0x7f;
7484     if (c < u_c1pics.offset)
7485       return(c);
7486     else if (c >= u_c1pics.offset + u_c1pics.size)
7487       return(c);
7488     else
7489       return(u_c1pics.map[c - u_c1pics.offset]);
7490 }
7491
7492 #ifdef KANJI                            /* Kanji/Unicode functions */
7493
7494 static long                             /* Statistics counters */
7495   bad = 0,                              /* REMOVE THESE LATER... */
7496   kanji = 0,
7497   kana = 0,
7498   greek = 0,
7499   cyrillic = 0,
7500   special = 0,
7501   roman = 0;
7502
7503 USHORT
7504 #ifdef CK_ANSIC
7505 sj_to_un(USHORT sj)                     /* Shift-JIS to Unicode */
7506 #else
7507 sj_to_un(sj) USHORT sj;
7508 #endif /* CK_ANSIC */
7509 {
7510
7511 /* Kanji blocks */
7512
7513     if (sj >= 0x8140) {                 /* All possible Kanjis */
7514         kanji++;                        /* Optimistically count a Kanji */
7515         if (sj <= 0x9ffc) {             /* 7869-element table */
7516             return(sju_8140[sj - 0x8140]);
7517         } else if (sj >= 0xe040 && sj <= 0xeaa4) { /* 2660-element table */
7518             return(sju_e040[sj - 0xe040]);
7519         } else if (sj >= 0xf040) {      /* User-defined areas */
7520             if (sj <= 0xf0fc) {         /* ten 189-char chunks */
7521                 return(0xe000 + (sj - 0xf040));
7522             } else if (sj >= 0xf140 && sj <= 0xf1fc) {
7523                 return(0xe0bc + (sj - 0xf140));
7524             } else if (sj >= 0xf240 && sj <= 0xf2fc) {
7525                 return(0xe178 + (sj - 0xf240));
7526             } else if (sj >= 0xf340 && sj <= 0xf3fc) {
7527                 return(0xe234 + (sj - 0xf340));
7528             } else if (sj >= 0xf440 && sj <= 0xf4fc) {
7529                 return(0xe2f0 + (sj - 0xf440));
7530             } else if (sj >= 0xf540 && sj <= 0xf5fc) {
7531                 return(0xe3ac + (sj - 0xf540));
7532             } else if (sj >= 0xf640 && sj <= 0xf6fc) {
7533                 return(0xe468 + (sj - 0xf640));
7534             } else if (sj >= 0xf740 && sj <= 0xf7fc) {
7535                 return(0xe524 + (sj - 0xf740));
7536             } else if (sj >= 0xf840 && sj <= 0xf8fc) {
7537                 return(0xe5e0 + (sj - 0xf840));
7538             } else if (sj >= 0xf940 && sj <= 0xf9fc) {
7539                 return(0xe69c + (sj - 0xf940));
7540             }
7541         }
7542         kanji--;                        /* None of the above, uncount */
7543     }
7544
7545 /* C0 / Halfwidth-Roman / C1 block (0x00-0x9f, no holes) */
7546
7547     else if (sj < 0x00a0) {
7548         roman++;                        /* Count a Roman */
7549         if (sj == 0x5c) {               /* Yen sign */
7550             return(0x00a5);
7551         } else if (sj == 0x7e) {        /* Overline (macron) */
7552             return(0x203e);
7553         } else {                        /* Control or Halfwidth Roman */
7554             return(sj);
7555         }
7556     }
7557
7558 /* Halfwidth Katakana block (0xa0-0xdf, no holes) */
7559
7560     else if (sj >= 0xa1 && sj <= 0xdf) {
7561         kana++;
7562         return(sj + 0xfec0);
7563     }
7564
7565 /* Catch-all must be final */
7566
7567     bad++;
7568     return(0xfffd);
7569 }
7570
7571 USHORT
7572 #ifdef CK_ANSIC
7573 un_to_sj(USHORT un)                     /* Unicode to Shift-JIS */
7574 #else
7575 un_to_sj(un) USHORT un;
7576 #endif /* CK_ANSIC */
7577 {
7578
7579     if (un < 0x00a0) {
7580         switch (un) {
7581           case 0x005c: roman++; return(0x815f); /* Backslash */
7582           case 0x007e: bad++;   return(0xfffd); /* No tilde in Shift-JIS */
7583           default:                              /* ASCII or C0/C1 control */
7584             roman++;
7585             return(un);
7586         }
7587     }
7588     if (un >= 0x00a0 && un < 0x0391) { /* Latin-1 symbols */
7589         roman++;
7590         switch(un) {
7591           case 0x00A2: return(0x8191);
7592           case 0x00A3: return(0x8192);
7593           case 0x00A5: return(0x005C);  /* Yen */
7594           case 0x00A7: return(0x8198);
7595           case 0x00A8: return(0x814E);
7596           case 0x00AC: return(0x81CA);
7597           case 0x00B0: return(0x818B);
7598           case 0x00B1: return(0x817D);
7599           case 0x00B4: return(0x814C);
7600           case 0x00B6: return(0x81F7);
7601           case 0x00D7: return(0x817E);
7602           case 0x00F7: return(0x8180);
7603           default:
7604             roman--;
7605             bad++;
7606             return(0xfffd);
7607         }
7608     }
7609     if (un >= 0x0391 && un < 0x0401) {  /* Greek */
7610         greek++;
7611         if (un <= 0x039c)
7612           return(usj_0391[un-0x0391]);
7613         greek--;
7614         bad++;
7615         return(0xfffd);
7616     }
7617     if (un >= 0x0401 && un < 0x2010) {  /* Cyrillic */
7618         cyrillic++;
7619         if (un <= 0x0451)
7620           return(usj_0401[un-0x0401]);
7621         cyrillic--;
7622         bad++;
7623         return(0xfffd);
7624     }
7625     if (un >= 0x2010 && un < 0x2500) {  /* General punctuation */
7626         special++;
7627         switch(un) {
7628           case 0x2010: return(0x815D);
7629           case 0x2015: return(0x815C);
7630           case 0x2016: return(0x8161);
7631           case 0x2018: return(0x8165);
7632           case 0x2019: return(0x8166);
7633           case 0x201C: return(0x8167);
7634           case 0x201D: return(0x8168);
7635           case 0x2020: return(0x81F5);
7636           case 0x2021: return(0x81F6);
7637           case 0x2025: return(0x8164);
7638           case 0x2026: return(0x8163);
7639           case 0x2030: return(0x81F1);
7640           case 0x2032: return(0x818C);
7641           case 0x2033: return(0x818D);
7642           case 0x203B: return(0x81A6);
7643           case 0x203E: return(0x007E);
7644           case 0x2103: return(0x818E);  /* Letterlike symbols */
7645           case 0x212B: return(0x81F0);
7646           case 0x2190: return(0x81A9);  /* Arrows */
7647           case 0x2191: return(0x81AA);
7648           case 0x2192: return(0x81A8);
7649           case 0x2193: return(0x81AB);
7650           case 0x21D2: return(0x81CB);
7651           case 0x21D4: return(0x81CC);
7652           case 0x2200: return(0x81CD);  /* Math */
7653           case 0x2202: return(0x81DD);
7654           case 0x2203: return(0x81CE);
7655           case 0x2207: return(0x81DE);
7656           case 0x2208: return(0x81B8);
7657           case 0x220B: return(0x81B9);
7658           case 0x2212: return(0x817C);
7659           case 0x221A: return(0x81E3);
7660           case 0x221D: return(0x81E5);
7661           case 0x221E: return(0x8187);
7662           case 0x2220: return(0x81DA);
7663           case 0x2227: return(0x81C8);
7664           case 0x2228: return(0x81C9);
7665           case 0x2229: return(0x81BF);
7666           case 0x222A: return(0x81BE);
7667           case 0x222B: return(0x81E7);
7668           case 0x222C: return(0x81E8);
7669           case 0x2234: return(0x8188);
7670           case 0x2235: return(0x81E6);
7671           case 0x223D: return(0x81E4);
7672           case 0x2252: return(0x81E0);
7673           case 0x2260: return(0x8182);
7674           case 0x2261: return(0x81DF);
7675           case 0x2266: return(0x8185);
7676           case 0x2267: return(0x8186);
7677           case 0x226A: return(0x81E1);
7678           case 0x226B: return(0x81E2);
7679           case 0x2282: return(0x81BC);
7680           case 0x2283: return(0x81BD);
7681           case 0x2286: return(0x81BA);
7682           case 0x2287: return(0x81BB);
7683           case 0x22A5: return(0x81DB);
7684           case 0x2312: return(0x81DC);  /* Arc */
7685           default:
7686             special--;
7687             bad++;
7688             return(0xfffd);
7689         }
7690     }
7691     if (un >= 0x2500 && un < 0x3000) {  /* Box drawing */
7692         special++;
7693         switch(un) {
7694           case 0x2500: return(0x849F);
7695           case 0x2501: return(0x84AA);
7696           case 0x2502: return(0x84A0);
7697           case 0x2503: return(0x84AB);
7698           case 0x250C: return(0x84A1);
7699           case 0x250F: return(0x84AC);
7700           case 0x2510: return(0x84A2);
7701           case 0x2513: return(0x84AD);
7702           case 0x2514: return(0x84A4);
7703           case 0x2517: return(0x84AF);
7704           case 0x2518: return(0x84A3);
7705           case 0x251B: return(0x84AE);
7706           case 0x251C: return(0x84A5);
7707           case 0x251D: return(0x84BA);
7708           case 0x2520: return(0x84B5);
7709           case 0x2523: return(0x84B0);
7710           case 0x2524: return(0x84A7);
7711           case 0x2525: return(0x84BC);
7712           case 0x2528: return(0x84B7);
7713           case 0x252B: return(0x84B2);
7714           case 0x252C: return(0x84A6);
7715           case 0x252F: return(0x84B6);
7716           case 0x2530: return(0x84BB);
7717           case 0x2533: return(0x84B1);
7718           case 0x2534: return(0x84A8);
7719           case 0x2537: return(0x84B8);
7720           case 0x2538: return(0x84BD);
7721           case 0x253B: return(0x84B3);
7722           case 0x253C: return(0x84A9);
7723           case 0x253F: return(0x84B9);
7724           case 0x2542: return(0x84BE);
7725           case 0x254B: return(0x84B4);
7726           case 0x25A0: return(0x81A1);  /* Geometric shapes */
7727           case 0x25A1: return(0x81A0);
7728           case 0x25B2: return(0x81A3);
7729           case 0x25B3: return(0x81A2);
7730           case 0x25BC: return(0x81A5);
7731           case 0x25BD: return(0x81A4);
7732           case 0x25C6: return(0x819F);
7733           case 0x25C7: return(0x819E);
7734           case 0x25CB: return(0x819B);
7735           case 0x25CE: return(0x819D);
7736           case 0x25CF: return(0x819C);
7737           case 0x25EF: return(0x81FC);
7738           case 0x2605: return(0x819A);  /* Misc symbols */
7739           case 0x2606: return(0x8199);
7740           case 0x2640: return(0x818A);
7741           case 0x2642: return(0x8189);
7742           case 0x266A: return(0x81F4);
7743           case 0x266D: return(0x81F3);
7744           case 0x266F: return(0x81F2);
7745           default:
7746             special--;
7747             bad++;
7748             return(0xfffd);
7749         }
7750     }
7751     if (un >= 0x3000 && un < 0x4e00) {  /* CJK symbols & punc */
7752         kanji++;
7753         if (un <= 0x30ff)
7754           return(usj_3000[un-0x3000]);
7755         kanji--;
7756         bad++;
7757         return(0xfffd);
7758     }
7759     if (un >= 0xff00 && un < 0xffff) {  /* Half/full-width Roman & Katakana */
7760         if (un <= 0xff9f) {
7761             if (un > 0xff60)
7762               kana++;
7763             return(usj_ff00[un-0xff00]);
7764         }
7765         bad++;
7766         return(0xfffd);
7767     }
7768     if (un >= 0x4e00 && un < 0xe000) {  /* Kanji */
7769         kanji++;
7770         if (un <= 0x9fa0)
7771           return(usj_4e00[un-0x4e00]);
7772         kanji--;
7773         bad++;
7774         return(0xfffd);
7775     }
7776     if (un >= 0xe000 && un < 0xff00) {  /* User-defined (Gaiji) */
7777         kanji++;
7778         if (un <= 0xe0bb) {             /* ten 189-char chunks */
7779             return(0xf040 + (un - 0xe000));
7780         } else if (un >= 0xe0bc && un <= 0xe177) {
7781             return(0xf140 + (un - 0xe0bc));
7782         } else if (un >= 0xe178 && un <= 0xe233) {
7783             return(0xf240 + (un - 0xe178));
7784         } else if (un >= 0xe234 && un <= 0xe2ef) {
7785             return(0xf340 + (un - 0xe234));
7786         } else if (un >= 0xe2f0 && un <= 0xe3ab) {
7787             return(0xf440 + (un - 0xe2f0));
7788         } else if (un >= 0xe3ac && un <= 0xe467) {
7789             return(0xf540 + (un - 0xe3ac));
7790         } else if (un >= 0xe468 && un <= 0xe523) {
7791             return(0xf640 + (un - 0xe468));
7792         } else if (un >= 0xe524 && un <= 0xe5df) {
7793             return(0xf740 + (un - 0xe524));
7794         } else if (un >= 0xe5e0 && un <= 0xe69b) {
7795             return(0xf840 + (un - 0xe5e0));
7796         } else if (un >= 0xe69c && un <= 0xe757) {
7797             return(0xf940 + (un - 0xe69c));
7798         }
7799         bad++;
7800         return(0xfffd);
7801     }
7802     /* NOTREACHED */
7803     /* Some compilers (correctly) warn of "statement not reached" here. */
7804     /* But others give up the ghost with "no return value".  The former */
7805     /* is the lesser of two evils. */
7806     bad++;
7807     return(0xfffd);
7808 }
7809 #endif /* KANJI */
7810
7811 /* Unicode-to-blah functions, tx_blah(). */
7812
7813 static int
7814 #ifdef CK_ANSIC
7815 tx_punc(USHORT c)
7816 #else
7817 tx_punc(c) USHORT c;
7818 #endif /* CK_ANSIC */
7819 {
7820     if (c >= 0x2000 && c <= 0x200a)     /* Various-width spaces */
7821       return((CHAR)(0x20));
7822     else if (c >= 0x2010 && c <= 0x2015) /* Various-width dashes */
7823       return((CHAR)'-');
7824     else if (c >= 0x2018 && c <= 0x201b) /* Assorted single quotes */
7825       return((CHAR)0x27);
7826     else if (c >= 0x201c && c <= 0x201f) /* Assorted double quotes */
7827       return((CHAR)0x22);
7828     else if ((c >= 0x2022 && c <= 0x2024) || c == 0x2043) /* Bullets */
7829       return((CHAR)0xb7);
7830     switch (c) {
7831       case 0x2039:                      /* Less-than sign */
7832         return((CHAR)0x3c);
7833       case 0x203a:                      /* Greater-than sign */
7834         return((CHAR)0x3e);
7835       case 0x2044:                      /* Solidus -> Slash */
7836         return((CHAR)0x2f);
7837       default:
7838         return(-1);
7839     }
7840 }
7841
7842
7843 int                                     /* For Latin-1 */
7844 #ifdef CK_ANSIC
7845 tx_ident(USHORT c)
7846 #else
7847 tx_ident(c) USHORT c;
7848 #endif /* CK_ANSIC */
7849 {
7850     if (c == 0x203e)                    /* Overline -> Macron */
7851       return((CHAR)0xaf);
7852     else if (c < 0x100)                 /* Latin-1 range */
7853       return((CHAR)(c & 0xff));
7854     else                                /* Or maybe from punctuation block */
7855       return(tx_punc(c));
7856 }
7857
7858 int
7859 #ifdef CK_ANSIC
7860 tx_usascii(USHORT c)
7861 #else
7862 tx_usascii(c) USHORT c;                 /* US ASCII */
7863 #endif /* CK_ANSIC */
7864 {
7865     if (c < 0x80)
7866       return((CHAR)(c & 0xff));
7867     else if (c >= 0x2000 && c <= 0x200a) /* Various-width spaces */
7868       return((CHAR)(0x20));
7869     else if (c >= 0x2010 && c <= 0x2015) /* Various-width dashes */
7870       return((CHAR)'-');
7871     else if (c >= 0x2018 && c <= 0x201b) /* Assorted single quotes */
7872       return((CHAR)0x27);
7873     else if (c >= 0x201c && c <= 0x201f) /* Assorted double quotes */
7874       return((CHAR)0x22);
7875     else if ((c >= 0x2022 && c <= 0x2024) || c == 0x2043) /* Bullets */
7876       return((CHAR)0xb7);
7877     switch (c) {
7878       case 0x2039:                      /* Less-than sign */
7879         return((CHAR)0x3c);
7880       case 0x203a:                      /* Greater-than sign */
7881         return((CHAR)0x3e);
7882       case 0x2044:                      /* Solidus -> Slash */
7883         return((CHAR)0x2f);
7884     }
7885     /*
7886       Here we might also (a) map accented Roman letters to unaccented ones;
7887       (b) map Greek/Cyrillic A (etc) to Roman, and so on.
7888     */
7889     return((c & 0xff80) ? -1 : (CHAR)(c & 0x7f));
7890 }
7891
7892 int
7893 #ifdef CK_ANSIC
7894 tx_british(USHORT c)
7895 #else
7896 tx_british(c) USHORT c;                 /* British */
7897 #endif /* CK_ANSIC */
7898 {
7899     if (c & 0xff00)
7900       return(-1);
7901     else if (c == (USHORT) 0x00a3)      /* Pound sign */
7902       return(0x2b);
7903     else
7904       return(tx_usascii(c));
7905 }
7906
7907 int
7908 #ifdef CK_ANSIC
7909 tx_apl1(USHORT c)
7910 #else
7911 tx_apl1(c) USHORT c;                    /* Apl1 */
7912 #endif /* CK_ANSIC */
7913 {
7914     if (c >= 0x0041 && c <= 0x005a)     /* Letters */
7915       return(c + 0x20);
7916     switch (c) {                        /* Others */
7917       case 0x0024: return((CHAR)0x7e);
7918       case 0x0027: return((CHAR)0x4b);
7919       case 0x0028: return((CHAR)0x3a);
7920       case 0x0029: return((CHAR)0x22);
7921       case 0x002b: return((CHAR)0x2d);
7922       case 0x002c: return((CHAR)0x2c);
7923       case 0x002d: return((CHAR)0x5f);
7924       case 0x002e: return((CHAR)0x2e);
7925       case 0x002f: return((CHAR)0x2f);
7926       case 0x0030: return((CHAR)0x30);
7927       case 0x0031: return((CHAR)0x31);
7928       case 0x0032: return((CHAR)0x32);
7929       case 0x0033: return((CHAR)0x33);
7930       case 0x0034: return((CHAR)0x34);
7931       case 0x0035: return((CHAR)0x35);
7932       case 0x0036: return((CHAR)0x36);
7933       case 0x0037: return((CHAR)0x37);
7934       case 0x0038: return((CHAR)0x38);
7935       case 0x0039: return((CHAR)0x39);
7936       case 0x003a: return((CHAR)0x3e);
7937       case 0x003b: return((CHAR)0x3c);
7938       case 0x003c: return((CHAR)0x23);
7939       case 0x003d: return((CHAR)0x25);
7940       case 0x003e: return((CHAR)0x26);
7941       case 0x003f: return((CHAR)0x51);
7942       case 0x005b: return((CHAR)0x3b);
7943       case 0x005c: return((CHAR)0x3f);
7944       case 0x005d: return((CHAR)0x27);
7945       case 0x005f: return((CHAR)0x46);
7946       case 0x007b: return((CHAR)0x7b);
7947       case 0x007c: return((CHAR)0x4d);
7948       case 0x007d: return((CHAR)0x7d);
7949       case 0x00a8: return((CHAR)0x21);
7950       case 0x00af: return((CHAR)0x40);
7951       case 0x00d7: return((CHAR)0x3d);
7952       case 0x00f7: return((CHAR)0x2b);
7953       case 0x2190: return((CHAR)0x5b);
7954       case 0x2191: return((CHAR)0x59);
7955       case 0x2192: return((CHAR)0x5d);
7956       case 0x2193: return((CHAR)0x55);
7957       case 0x2206: return((CHAR)0x48);
7958       case 0x2207: return((CHAR)0x47);
7959       case 0x220a: return((CHAR)0x45);
7960       case 0x2218: return((CHAR)0x4a);
7961       case 0x2227: return((CHAR)0x29);
7962       case 0x2228: return((CHAR)0x28);
7963       case 0x222a: return((CHAR)0x56);
7964       case 0x223c: return((CHAR)0x54);
7965       case 0x2260: return((CHAR)0x2a);
7966       case 0x2264: return((CHAR)0x24);
7967       case 0x2265: return((CHAR)0x5e);
7968       case 0x2282: return((CHAR)0x5a);
7969       case 0x2283: return((CHAR)0x58);
7970       case 0x22a2: return((CHAR)0x5c);
7971       case 0x22a3: return((CHAR)0x7c);
7972       case 0x22a4: return((CHAR)0x4e);
7973       case 0x22a5: return((CHAR)0x42);
7974       case 0x22c2: return((CHAR)0x43);
7975       case 0x22c4: return((CHAR)0x60);
7976       case 0x22c6: return((CHAR)0x50);
7977       case 0x2308: return((CHAR)0x53);
7978       case 0x230a: return((CHAR)0x44);
7979       case 0x2373: return((CHAR)0x49);
7980       case 0x2374: return((CHAR)0x52);
7981       case 0x2375: return((CHAR)0x57);
7982       case 0x237a: return((CHAR)0x41);
7983       case 0x25af: return((CHAR)0x4c);
7984       case 0x25cb: return((CHAR)0x4f);
7985       default:   return(tx_usascii(c));
7986     }
7987 }
7988
7989 int                                     /* Canadian French */
7990 #ifdef CK_ANSIC
7991 tx_fr_canadian(USHORT c)
7992 #else
7993 tx_fr_canadian(c) USHORT c;
7994 #endif /* CK_ANSIC */
7995 {
7996     if (c & 0xff00)                     /* Out of range */
7997       return(-1);
7998     switch(c) {
7999       case 0xe0: return(0x40);          /* a grave */
8000       case 0xe2: return(0x5b);          /* a circumflex */
8001       case 0xe7: return(0x5c);          /* c cedilla */
8002       case 0xe8: return(0x7d);          /* e grave */
8003       case 0xe9: return(0x7b);          /* e acute */
8004       case 0xea: return(0x5d);          /* e circumflex */
8005       case 0xee: return(0x5e);          /* i circumflex */
8006       case 0xf4: return(0x60);          /* o circumflex */
8007       case 0xf9: return(0x7c);          /* u grave */
8008       case 0xfb: return(0x6e);          /* u circumflex */
8009       default:   return(tx_usascii(c));
8010     }
8011 }
8012
8013 int                                     /* Danish/Norwegian */
8014 #ifdef CK_ANSIC
8015 tx_danish(USHORT c)
8016 #else
8017 tx_danish(c) USHORT c;
8018 #endif /* CK_ANSIC */
8019 {
8020     if (c & 0xff00)                     /* Out of range */
8021       return(-1);
8022     switch(c) {
8023       case 0xc6: return(0x5b);          /* AE */
8024       case 0xd8: return(0x5c);          /* O stroke */
8025       case 0xe6: return(0x7b);          /* ae */
8026       case 0xf8: return(0x7c);          /* o stroke */
8027       case 0xe5: return(0x7d);          /* a ring */
8028       case 0xaf: return(0x7e);          /* macron */
8029       default:   return(tx_usascii(c));
8030     }
8031 }
8032
8033 int                                     /* Dutch */
8034 #ifdef CK_ANSIC
8035 tx_dutch(USHORT c)
8036 #else
8037 tx_dutch(c) USHORT c;
8038 #endif /* CK_ANSIC */
8039 {
8040     if (c & 0xfe00)                     /* Out of range */
8041       return(-1);
8042     switch(c) {
8043       case 0x007c: return(0x5d);        /* vertical bar */
8044       case 0x00a3: return(0x23);        /* pound sign */
8045       case 0x00ab: return(0x7b);        /* diaeresis */
8046       case 0x00b4: return(0x7e);        /* acute accent */
8047       case 0x00bc: return(0x7d);        /* 1/4 */
8048       case 0x00be: return(0x40);        /* 3/4 */
8049       case 0x00bd: return(0x5c);        /* 1/2 */
8050       case 0x00ff: return(0x5b);        /* y diaeresis (ij) */
8051       case 0x0192: return(0x7c);        /* Florin */
8052       default:   return((c & 0x80) ? -1 : (CHAR)(c & 0x7f));
8053     }
8054 }
8055
8056 int                                     /* Finnish */
8057 #ifdef CK_ANSIC
8058 tx_finnish(USHORT c)
8059 #else
8060 tx_finnish(c) USHORT c;
8061 #endif /* CK_ANSIC */
8062 {
8063     if (c & 0xff00)                     /* Out of range */
8064       return(-1);
8065     switch(c) {
8066       case 0xc4: return(0x5b);          /* A diaeresis */
8067       case 0xd6: return(0x5c);          /* O diaeresis */
8068       case 0xc5: return(0x5d);          /* A ring */
8069       case 0xdc: return(0x5e);          /* U diaeresis */
8070       case 0xe9: return(0x60);          /* e acute */
8071       case 0xe4: return(0x7b);          /* a diaeresis */
8072       case 0xf6: return(0x7c);          /* o diaeresis */
8073       case 0xe5: return(0x7d);          /* a ring */
8074       case 0xfc: return(0x7e);          /* u diaeresis */
8075       default:   return(tx_usascii(c));
8076     }
8077 }
8078
8079 int                                     /* French */
8080 #ifdef CK_ANSIC
8081 tx_french(USHORT c)
8082 #else
8083 tx_french(c) USHORT c;
8084 #endif /* CK_ANSIC */
8085 {
8086     if (c & 0xff00)                     /* Out of range */
8087       return(-1);
8088     switch(c) {
8089       case 0xa3: return(0x23);          /* pound sign */
8090       case 0xa7: return(0x5d);          /* section sign */
8091       case 0xa8: return(0x7e);          /* diaeresis */
8092       case 0xb0: return(0x5b);          /* ring */
8093       case 0xb5: return(0x60);          /* micron sign (mu) */
8094       case 0xe0: return(0x40);          /* a grave */
8095       case 0xe7: return(0x5c);          /* c cedilla */
8096       case 0xe8: return(0x7d);          /* e grave */
8097       case 0xe9: return(0x7b);          /* e acute */
8098       case 0xf9: return(0x7c);          /* u grave */
8099       default:   return(tx_usascii(c));
8100     }
8101 }
8102
8103 int                                     /* German */
8104 #ifdef CK_ANSIC
8105 tx_german(USHORT c)
8106 #else
8107 tx_german(c) USHORT c;
8108 #endif /* CK_ANSIC */
8109 {
8110     if (c & 0xff00)                     /* Out of range */
8111       return(-1);
8112     switch(c) {
8113       case 0xa7: return(0x40);          /* section sign */
8114       case 0xc4: return(0x5b);          /* A umlaut */
8115       case 0xd6: return(0x5c);          /* O umlaut */
8116       case 0xdc: return(0x5d);          /* U umlaut */
8117       case 0xdf: return(0x7e);          /* ess-zet */
8118       case 0xe4: return(0x7b);          /* a umlaut */
8119       case 0xf6: return(0x7c);          /* o umlaut */
8120       case 0xfc: return(0x7d);          /* u umlaut*/
8121       default:   return(tx_usascii(c));
8122     }
8123 }
8124
8125 int                                     /* Hebrew-7 */
8126 #ifdef CK_ANSIC
8127 tx_hebrew7(USHORT c)
8128 #else
8129 tx_hebrew7(c) USHORT c;
8130 #endif /* CK_ANSIC */
8131 {
8132     if (c < 0x60)                       /* ASCII */
8133       return((CHAR)(c & 0x7f));
8134     else if (c >= 123 && c < 128)       /* ASCII */
8135       return((CHAR)(c & 0x7f));
8136     else if (c >= 0x05d0 && c <= 0x05ea) /* Hebrew 27 contiguous characters */
8137       return((CHAR)((int)c - 0x5d0 + 96));
8138     else return(-1);
8139 }
8140
8141 int                                     /* Greek ELOT 927 */
8142 #ifdef CK_ANSIC
8143 tx_elot927(USHORT c)
8144 #else
8145 tx_elot927(c) USHORT c;
8146 #endif /* CK_ANSIC */
8147 {
8148     if (c <= 0x80) {                    /* ASCII */
8149         if (islower(c)) c = toupper(c); /* Send all letters in uppercase */
8150         return((CHAR)(c & 0x7f));
8151     }
8152
8153 /* Greek -- map all Greek characters to unaccented uppercase */
8154
8155     if (c >= 0x0391 && c <= 0x03a1) /* Alpha thru Rho - uppercase */
8156       return((CHAR)((int)c - 0x0391 + 97));
8157     else if (c >= 0x03a3 && c <= 0x03a9) /* Sigma thru Omega - uppercase */
8158       return((CHAR)((int)c - 0x0391 + 96));
8159     else if (c >= 0x03b1 && c <= 0x03c1) /* Alpha thru Rho - lowercase */
8160       return((CHAR)((int)c - 0x0391 + 97));
8161     else if (c >= 0x03c3 && c <= 0x03c9) /* Sigma thru Omega - uppercase */
8162       return((CHAR)((int)c - 0x0391 + 96));
8163     switch (c) {
8164       case 0x03c2: return((CHAR)114);   /* Terminal sigma */
8165       case 0x0386: return((CHAR)97);    /* Alpha Tonos */
8166       case 0x03ac: return((CHAR)97);    /* alpha Tonos */
8167       case 0x0388: return((CHAR)101);   /* Epsilon Tonos */
8168       case 0x03ad: return((CHAR)101);   /* epsilon Tonos */
8169       case 0x0389: return((CHAR)103);   /* Eta Tonos */
8170       case 0x03ae: return((CHAR)103);   /* eta Tonos */
8171       case 0x038a: return((CHAR)105);   /* Iota Tonos */
8172       case 0x03af: return((CHAR)105);   /* iota Tonos */
8173       case 0x03ca: return((CHAR)105);   /* iota Dialytika */
8174       case 0x038c: return((CHAR)111);   /* Omicron Tonos */
8175       case 0x03cc: return((CHAR)111);   /* omicron Tonos */
8176       case 0x038e: return((CHAR)116);   /* Upsilon Tonos */
8177       case 0x03d3: return((CHAR)116);   /* Upsilon Tonos */
8178       case 0x03cd: return((CHAR)116);   /* upsilon Tonos */
8179       case 0x03cb: return((CHAR)116);   /* upsilon Dialytika */
8180       case 0x03b0: return((CHAR)116);   /* upsilon Dialytika+Tonos */
8181       case 0x038f: return((CHAR)120);   /* Omega Tonos */
8182       case 0x03ce: return((CHAR)120);   /* omega Tonos */
8183       case 0x0390: return((CHAR)105);   /* iota Dialytika+Tonos */
8184       case 0x03aa: return((CHAR)105);   /* Iota Dialytika */
8185       case 0x03ab: return((CHAR)116);   /* Upsilon Dialytika */
8186       case 0x03d4: return((CHAR)116);   /* Upsilon Dialytika */
8187       case 0x03d0: return((CHAR)98);    /* Alternative beta */
8188       case 0x03d1: return((CHAR)104);   /* Open theta */
8189       case 0x03d5: return((CHAR)117);   /* Open phi */
8190       case 0x03d6: return((CHAR)112);   /* Alternative Pi */
8191       default: return(-1);
8192     }
8193 }
8194
8195 int                                     /* Hungarian */
8196 #ifdef CK_ANSIC
8197 tx_hungarian(USHORT c)
8198 #else
8199 tx_hungarian(c) USHORT c;
8200 #endif /* CK_ANSIC */
8201 {
8202     if (c == 0x02dd || c == 0x2033)
8203       return(0x7e);                     /* double acute accent */
8204     else if (c & 0xff00)                /* Out of range */
8205       return(-1);
8206     switch(c) {
8207       case 0xc1: return(0x40);          /* A acute */
8208       case 0xc9: return(0x5b);          /* E acute */
8209       case 0xd6: return(0x5c);          /* O umlaut */
8210       case 0xdc: return(0x5d);          /* U umlaut */
8211       case 0xe9: return(0x7b);          /* e acute */
8212       case 0xf6: return(0x7c);          /* o umlaut */
8213       case 0xfa: return(0x60);          /* u acute */
8214       case 0xfc: return(0x7d);          /* u umlaut */
8215       default:   return(tx_usascii(c));
8216     }
8217 }
8218
8219 int                                     /* Icelandic */
8220 #ifdef CK_ANSIC
8221 tx_icelandic(USHORT c)
8222 #else
8223 tx_icelandic(c) USHORT c;
8224 #endif /* CK_ANSIC */
8225 {
8226     if (c & 0xff00)                     /* Out of range */
8227       return(-1);
8228     switch(c) {
8229       case 0xde: return(0x40);          /* Thorn */
8230       case 0xd0: return(0x5b);          /* Eth */
8231       case 0xc6: return(0x5d);          /* AE */
8232       case 0xd6: return(0x5e);          /* O umlaut */
8233       case 0xfe: return(0x60);          /* thorn */
8234       case 0xf0: return(0x7b);          /* eth */
8235       case 0xe6: return(0x7d);          /* ae */
8236       case 0xf6: return(0x7e);          /* o umlaut */
8237       default:   return(tx_usascii(c));
8238     }
8239 }
8240
8241 int                                     /* Italian */
8242 #ifdef CK_ANSIC
8243 tx_italian(USHORT c)
8244 #else
8245 tx_italian(c) USHORT c;
8246 #endif /* CK_ANSIC */
8247 {
8248     if (c & 0xff00)                     /* Out of range */
8249       return(-1);
8250     switch(c) {
8251       case 0xa3: return(0x23);          /* pound sign */
8252       case 0xa7: return(0x40);          /* section sign */
8253       case 0xb0: return(0x5b);          /* ring */
8254       case 0xe7: return(0x5c);          /* c cedilla */
8255       case 0xe9: return(0x5d);          /* e acute */
8256       case 0xf9: return(0x60);          /* u grave */
8257       case 0xe0: return(0x7b);          /* a grave */
8258       case 0xf2: return(0x7c);          /* o grave */
8259       case 0xe8: return(0x7d);          /* e grave */
8260       case 0xec: return(0x7e);          /* i grave */
8261       default:   return(tx_usascii(c));
8262     }
8263 }
8264
8265 int                                     /* JIS 0201 Roman */
8266 #ifdef CK_ANSIC
8267 tx_jis0201r(USHORT c)
8268 #else
8269 tx_jis0201r(c) USHORT c;
8270 #endif /* CK_ANSIC */
8271 {
8272     if (c && 0xff80)                    /* 7 bits */
8273       return(-1);
8274     switch (c) {                        /* Like ASCII with */
8275       case 0x00a5: return(92);          /* two exceptions */
8276       case 0x00af: return(126);
8277       case 0x203e: return(126);
8278       default:   return(tx_usascii(c));
8279     }
8280 }
8281
8282 int                                     /* JIS 0201 Katakana */
8283 #ifdef CK_ANSIC
8284 tx_jis0201k(USHORT c)
8285 #else
8286 tx_jis0201k(c) USHORT c;
8287 #endif /* CK_ANSIC */
8288 {
8289     if (c < 0xff61 || c > 0xff9f)
8290       return(-1);                       /* Out of range */
8291     else
8292       return((int)c - 0xfec0);          /* 0xff61 - a0 = 0xfec0 */
8293 }
8294
8295 int                                     /* Short KOI */
8296 #ifdef CK_ANSIC
8297 tx_koi7(USHORT c)
8298 #else
8299 tx_koi7(c) USHORT c;
8300 #endif /* CK_ANSIC */
8301 {
8302     if (c < 0x50)
8303       return((CHAR)(c & 0x7f));
8304     else if (c > 0x7f)
8305       return(-1);                       /* Out of range */
8306     switch(c) {
8307       case 0x0410: return((CHAR)97);
8308       case 0x0411: return((CHAR)98);
8309       case 0x0412: return((CHAR)119);
8310       case 0x0413: return((CHAR)103);
8311       case 0x0414: return((CHAR)100);
8312       case 0x0415: return((CHAR)101);
8313       case 0x0416: return((CHAR)118);
8314       case 0x0417: return((CHAR)122);
8315       case 0x0418: return((CHAR)105);
8316       case 0x0419: return((CHAR)106);
8317       case 0x041a: return((CHAR)107);
8318       case 0x041b: return((CHAR)108);
8319       case 0x041c: return((CHAR)109);
8320       case 0x041d: return((CHAR)110);
8321       case 0x041e: return((CHAR)111);
8322       case 0x041f: return((CHAR)112);
8323       case 0x0420: return((CHAR)114);
8324       case 0x0421: return((CHAR)115);
8325       case 0x0422: return((CHAR)116);
8326       case 0x0423: return((CHAR)117);
8327       case 0x0424: return((CHAR)102);
8328       case 0x0425: return((CHAR)104);
8329       case 0x0426: return((CHAR)99);
8330       case 0x0427: return((CHAR)126);
8331       case 0x0428: return((CHAR)123);
8332       case 0x0429: return((CHAR)125);
8333       case 0x042b: return((CHAR)121);
8334       case 0x042c: return((CHAR)120);
8335       case 0x042d: return((CHAR)124);
8336       case 0x042e: return((CHAR)96);
8337       case 0x042f: return((CHAR)113);
8338       default: return(-1);
8339     }
8340 }
8341
8342 int                                     /* Portuguese */
8343 #ifdef CK_ANSIC
8344 tx_portuguese(USHORT c)
8345 #else
8346 tx_portuguese(c) USHORT c;
8347 #endif /* CK_ANSIC */
8348 {
8349     if (c & 0xff00)                     /* Out of range */
8350       return(-1);
8351     switch(c) {
8352       case 0xe0: return(0xa7);          /* section sign */
8353       case 0xb0: return(0xc3);          /* A tilde */
8354       case 0xe7: return(0xc7);          /* C cedilla */
8355       case 0xa7: return(0xd5);          /* O tilde */
8356       case 0xe9: return(0xe3);          /* a tilde */
8357       case 0xf9: return(0xe7);          /* c cedilla */
8358       case 0xe8: return(0xf5);          /* o tilde */
8359       case 0xa8: return(0xb0);          /* ring */
8360       default:   return(tx_usascii(c));
8361     }
8362 }
8363
8364 int                                     /* Spanish */
8365 #ifdef CK_ANSIC
8366 tx_spanish(USHORT c)
8367 #else
8368 tx_spanish(c) USHORT c;
8369 #endif /* CK_ANSIC */
8370 {
8371     if (c & 0xff00)                     /* Out of range */
8372       return(-1);
8373     switch(c) {
8374       case 0xa3: return(0x23);          /* pound sign */
8375       case 0xa7: return(0x40);          /* section */
8376       case 0xa1: return(0x5b);          /* inverted exclamation */
8377       case 0xd1: return(0x5c);          /* N tilde */
8378       case 0xbf: return(0x5d);          /* inverted question mark */
8379       case 0xb0: return(0x7b);          /* ring */
8380       case 0xf1: return(0x7c);          /* n tilde */
8381       case 0xe7: return(0x7d);          /* c cedilla */
8382       default:   return(tx_usascii(c));
8383     }
8384 }
8385
8386 int                                     /* Swedish */
8387 #ifdef CK_ANSIC
8388 tx_swedish(USHORT c)
8389 #else
8390 tx_swedish(c) USHORT c;
8391 #endif /* CK_ANSIC */
8392 {
8393     if (c & 0xff00)                     /* Out of range */
8394       return(-1);
8395     switch(c) {
8396       case 0xc9: return(0x40);          /* E acute */
8397       case 0xc4: return(0x5b);          /* A umlaut*/
8398       case 0xd6: return(0x5c);          /* O umlaut */
8399       case 0xc5: return(0x5d);          /* A ring */
8400       case 0xdc: return(0x5e);          /* U umlaut */
8401       case 0xe9: return(0x60);          /* e acute */
8402       case 0xe4: return(0x7b);          /* a umlaut */
8403       case 0xf6: return(0x7c);          /* o umlaut */
8404       case 0xe5: return(0x7d);          /* a ring */
8405       case 0xfc: return(0x7e);          /* u umlaut */
8406       default:   return(tx_usascii(c));
8407     }
8408 }
8409
8410
8411 int                                     /* Swiss NRC */
8412 #ifdef CK_ANSIC
8413 tx_swiss(USHORT c)
8414 #else
8415 tx_swiss(c) USHORT c;
8416 #endif /* CK_ANSIC */
8417 {
8418     if (c & 0xff00)                     /* Out of range */
8419       return(-1);
8420     switch(c) {
8421       case 0xf9: return(0x23);          /* u grave */
8422       case 0xe0: return(0x40);          /* a grave */
8423       case 0xe9: return(0x5b);          /* e acute */
8424       case 0xe7: return(0x5c);          /* c cedilla */
8425       case 0xea: return(0x5d);          /* e circumflex */
8426       case 0xee: return(0x5e);          /* i circumflex */
8427       case 0xe8: return(0x5f);          /* e grave */
8428       case 0xf4: return(0x60);          /* o circumflex */
8429       case 0xe4: return(0x7b);          /* a umlaut */
8430       case 0xf6: return(0x7c);          /* o umlaut */
8431       case 0xfc: return(0x7d);          /* u umlaut */
8432       case 0xfb: return(0x7e);          /* u circumflex */
8433       default:   return(tx_usascii(c));
8434     }
8435 }
8436
8437 int                                     /* Dyadic APL */
8438 #ifdef CK_ANSIC
8439 tx_apl2(USHORT c)
8440 #else
8441 tx_apl2(c) USHORT c;
8442 #endif /* CK_ANSIC */
8443 {
8444     if (c >= 0x0041 && c <= 0x005a)     /* Letters */
8445       return(c - 0xa2);
8446     switch (c) {
8447       case 0x00a0: return((CHAR)0xa0);
8448       case 0x00a2: return((CHAR)0xa4);
8449       case 0x00a3: return((CHAR)0xd4);
8450       case 0x00a8: return((CHAR)0xdc);
8451       case 0x00af: return((CHAR)0xda);
8452       case 0x00d7: return((CHAR)0xa1);
8453       case 0x00f7: return((CHAR)0xaf);
8454       case 0x2190: return((CHAR)0xbb);
8455       case 0x2191: return((CHAR)0xfe);
8456       case 0x2192: return((CHAR)0xde);
8457       case 0x2193: return((CHAR)0xff);
8458       case 0x2206: return((CHAR)0xae);
8459       case 0x2207: return((CHAR)0xfd);
8460       case 0x220a: return((CHAR)0xb5);
8461       case 0x2218: return((CHAR)0xbc);
8462       case 0x2228: return((CHAR)0xdf);
8463       case 0x2229: return((CHAR)0xd1);
8464       case 0x222a: return((CHAR)0xd2);
8465       case 0x2260: return((CHAR)0xb0);
8466       case 0x2261: return((CHAR)0xb6);
8467       case 0x2262: return((CHAR)0xcd);
8468       case 0x2264: return((CHAR)0xb8);
8469       case 0x2265: return((CHAR)0xb7);
8470       case 0x2282: return((CHAR)0xe0);
8471       case 0x2283: return((CHAR)0xe1);
8472       case 0x2296: return((CHAR)0xd6);
8473       case 0x22a2: return((CHAR)0xd7);
8474       case 0x22a3: return((CHAR)0xd8);
8475       case 0x22a4: return((CHAR)0xba);
8476       case 0x22a5: return((CHAR)0xb9);
8477       case 0x22c4: return((CHAR)0xb1);
8478       case 0x2308: return((CHAR)0xcf);
8479       case 0x230a: return((CHAR)0xce);
8480       case 0x2337: return((CHAR)0xd9);
8481       case 0x2339: return((CHAR)0xca);
8482       case 0x233d: return((CHAR)0xd5);
8483       case 0x233f: return((CHAR)0xbe);
8484       case 0x2340: return((CHAR)0xbf);
8485       case 0x2349: return((CHAR)0xd0);
8486       case 0x234b: return((CHAR)0xc2);
8487       case 0x234e: return((CHAR)0xc0);
8488       case 0x2352: return((CHAR)0xc3);
8489       case 0x2355: return((CHAR)0xc1);
8490       case 0x2359: return((CHAR)0xe2);
8491       case 0x235d: return((CHAR)0xbd);
8492       case 0x235e: return((CHAR)0xc9);
8493       case 0x235f: return((CHAR)0xc7);
8494       case 0x2368: return((CHAR)0xc6);
8495       case 0x236a: return((CHAR)0xcc);
8496       case 0x236b: return((CHAR)0xcb);
8497       case 0x236c: return((CHAR)0xd3);
8498       case 0x2371: return((CHAR)0xc5);
8499       case 0x2372: return((CHAR)0xc4);
8500       case 0x2373: return((CHAR)0xdb);
8501       case 0x2374: return((CHAR)0xb3);
8502       case 0x2375: return((CHAR)0xb2);
8503       case 0x237a: return((CHAR)0xb4);
8504       case 0x2500: return((CHAR)0xaa);
8505       case 0x2502: return((CHAR)0xa2);
8506       case 0x250c: return((CHAR)0xad);
8507       case 0x2510: return((CHAR)0xa5);
8508       case 0x2514: return((CHAR)0xa6);
8509       case 0x2518: return((CHAR)0xac);
8510       case 0x251c: return((CHAR)0xa9);
8511       case 0x2524: return((CHAR)0xa3);
8512       case 0x252c: return((CHAR)0xa8);
8513       case 0x2534: return((CHAR)0xa7);
8514       case 0x253c: return((CHAR)0xab);
8515       case 0x25af: return((CHAR)0xc8);
8516       case 0x25cb: return((CHAR)0xdd);
8517       default:
8518         if (c < 0xa0)
8519           return((CHAR)(c & 0xff));
8520         return(tx_punc(c));
8521     }
8522 }
8523
8524 int                                     /* APL-Plus */
8525 #ifdef CK_ANSIC
8526 tx_apl3(USHORT c)
8527 #else
8528 tx_apl3(c) USHORT c;
8529 #endif /* CK_ANSIC */
8530 {
8531     switch (c) {
8532       case 0x00a0: return((CHAR)0xa0);
8533       case 0x00a1: return((CHAR)0xa1);
8534       case 0x00a2: return((CHAR)0xa2);
8535       case 0x00a3: return((CHAR)0xa3);
8536       case 0x00a5: return((CHAR)0xa5);
8537       case 0x00a6: return((CHAR)0xa6);
8538       case 0x00a7: return((CHAR)0xa7);
8539       case 0x00a8: return((CHAR)0xa8);
8540       case 0x00ab: return((CHAR)0xab);
8541       case 0x00af: return((CHAR)0xaf);
8542       case 0x00b6: return((CHAR)0xb6);
8543       case 0x00b7: return((CHAR)0xb7);
8544       case 0x00bb: return((CHAR)0xbb);
8545       case 0x00bf: return((CHAR)0xbf);
8546       case 0x00c0: return((CHAR)0xc0);
8547       case 0x00c1: return((CHAR)0xc1);
8548       case 0x00c2: return((CHAR)0xc2);
8549       case 0x00c3: return((CHAR)0xc3);
8550       case 0x00c4: return((CHAR)0xc4);
8551       case 0x00c5: return((CHAR)0xc5);
8552       case 0x00c6: return((CHAR)0xc6);
8553       case 0x00c7: return((CHAR)0xc7);
8554       case 0x00c8: return((CHAR)0xc8);
8555       case 0x00c9: return((CHAR)0xc9);
8556       case 0x00ca: return((CHAR)0xca);
8557       case 0x00cb: return((CHAR)0xcb);
8558       case 0x00cc: return((CHAR)0xcc);
8559       case 0x00cd: return((CHAR)0xcd);
8560       case 0x00ce: return((CHAR)0xce);
8561       case 0x00cf: return((CHAR)0xcf);
8562       case 0x00d1: return((CHAR)0xd1);
8563       case 0x00d2: return((CHAR)0xd2);
8564       case 0x00d3: return((CHAR)0xd3);
8565       case 0x00d4: return((CHAR)0xd4);
8566       case 0x00d5: return((CHAR)0xd5);
8567       case 0x00d6: return((CHAR)0xd6);
8568       case 0x00d7: return((CHAR)0xd7);
8569       case 0x00d8: return((CHAR)0xd8);
8570       case 0x00d9: return((CHAR)0xd9);
8571       case 0x00da: return((CHAR)0xda);
8572       case 0x00db: return((CHAR)0xdb);
8573       case 0x00dc: return((CHAR)0xdc);
8574       case 0x00dd: return((CHAR)0xdd);
8575       case 0x00df: return((CHAR)0xdf);
8576       case 0x00e0: return((CHAR)0xe0);
8577       case 0x00e1: return((CHAR)0xe1);
8578       case 0x00e2: return((CHAR)0xe2);
8579       case 0x00e3: return((CHAR)0xe3);
8580       case 0x00e4: return((CHAR)0xe4);
8581       case 0x00e5: return((CHAR)0xe5);
8582       case 0x00e6: return((CHAR)0xe6);
8583       case 0x00e7: return((CHAR)0xe7);
8584       case 0x00e8: return((CHAR)0xe8);
8585       case 0x00e9: return((CHAR)0xe9);
8586       case 0x00ea: return((CHAR)0xea);
8587       case 0x00eb: return((CHAR)0xeb);
8588       case 0x00ec: return((CHAR)0xec);
8589       case 0x00ed: return((CHAR)0xed);
8590       case 0x00ee: return((CHAR)0xee);
8591       case 0x00ef: return((CHAR)0xef);
8592       case 0x00f1: return((CHAR)0xf1);
8593       case 0x00f2: return((CHAR)0xf2);
8594       case 0x00f3: return((CHAR)0xf3);
8595       case 0x00f4: return((CHAR)0xf4);
8596       case 0x00f5: return((CHAR)0xf5);
8597       case 0x00f6: return((CHAR)0xf6);
8598       case 0x00f7: return((CHAR)0xf7);
8599       case 0x00f9: return((CHAR)0xf9);
8600       case 0x00fa: return((CHAR)0xfa);
8601       case 0x00fb: return((CHAR)0xfb);
8602       case 0x00fc: return((CHAR)0xfc);
8603       case 0x00fd: return((CHAR)0xfd);
8604       case 0x00ff: return((CHAR)0xff);
8605       case 0x20ac: return((CHAR)0x80);
8606       case 0x2190: return((CHAR)0x84);
8607       case 0x2191: return((CHAR)0x86);
8608       case 0x2192: return((CHAR)0x85);
8609       case 0x2193: return((CHAR)0x87);
8610       case 0x2205: return((CHAR)0xf8);
8611       case 0x2206: return((CHAR)0x91);
8612       case 0x2207: return((CHAR)0x92);
8613       case 0x220a: return((CHAR)0xb9);
8614       case 0x2218: return((CHAR)0xb0);
8615       case 0x2228: return((CHAR)0x9f);
8616       case 0x2229: return((CHAR)0x9d);
8617       case 0x222a: return((CHAR)0x9e);
8618       case 0x2260: return((CHAR)0xac);
8619       case 0x2261: return((CHAR)0xad);
8620       case 0x2264: return((CHAR)0x88);
8621       case 0x2265: return((CHAR)0x89);
8622       case 0x2282: return((CHAR)0x9b);
8623       case 0x2283: return((CHAR)0x9c);
8624       case 0x2296: return((CHAR)0xb4);
8625       case 0x22a2: return((CHAR)0xa4);
8626       case 0x22a3: return((CHAR)0x81);
8627       case 0x22a4: return((CHAR)0x82);
8628       case 0x22a5: return((CHAR)0x83);
8629       case 0x22c4: return((CHAR)0xaa);
8630       case 0x2308: return((CHAR)0x97);
8631       case 0x230a: return((CHAR)0x98);
8632       case 0x2337: return((CHAR)0xde);
8633       case 0x2339: return((CHAR)0x8e);
8634       case 0x233d: return((CHAR)0xb2);
8635       case 0x233f: return((CHAR)0x9a);
8636       case 0x2340: return((CHAR)0x99);
8637       case 0x2349: return((CHAR)0xb3);
8638       case 0x234b: return((CHAR)0x93);
8639       case 0x234e: return((CHAR)0x96);
8640       case 0x2352: return((CHAR)0x94);
8641       case 0x2355: return((CHAR)0x95);
8642       case 0x2359: return((CHAR)0x8f);
8643       case 0x235d: return((CHAR)0xa9);
8644       case 0x235e: return((CHAR)0x8d);
8645       case 0x235f: return((CHAR)0xb5);
8646       case 0x2364: return((CHAR)0xf0);
8647       case 0x2368: return((CHAR)0xfe);
8648       case 0x236a: return((CHAR)0xae);
8649       case 0x236b: return((CHAR)0x90);
8650       case 0x236c: return((CHAR)0xd0);
8651       case 0x2371: return((CHAR)0x8b);
8652       case 0x2372: return((CHAR)0x8a);
8653       case 0x2373: return((CHAR)0xbc);
8654       case 0x2374: return((CHAR)0xbd);
8655       case 0x2375: return((CHAR)0xbe);
8656       case 0x2377: return((CHAR)0xba);
8657       case 0x237a: return((CHAR)0xb8);
8658       case 0x25af: return((CHAR)0x8c);
8659       case 0x25cb: return((CHAR)0xb1);
8660       default:
8661         return(tx_punc(c));
8662     }
8663 }
8664
8665 int                                     /* IBM APL2 */
8666 #ifdef CK_ANSIC
8667 tx_apl4(USHORT c)
8668 #else
8669 tx_apl4(c) USHORT c;
8670 #endif /* CK_ANSIC */
8671 {
8672     switch (c) {
8673       case 0x00a0: return((CHAR)0xff);
8674       case 0x00a1: return((CHAR)0xad);
8675       case 0x00a3: return((CHAR)0x9c);
8676       case 0x00a6: return((CHAR)0xdd);
8677       case 0x00a8: return((CHAR)0xfe);
8678       case 0x00aa: return((CHAR)0xa6);
8679       case 0x00ac: return((CHAR)0xaa);
8680       case 0x00af: return((CHAR)0xfd);
8681       case 0x00ba: return((CHAR)0xa7);
8682       case 0x00bf: return((CHAR)0xa8);
8683       case 0x00c4: return((CHAR)0x8e);
8684       case 0x00c5: return((CHAR)0xee);  /* and 0x8f */
8685       case 0x00c7: return((CHAR)0x80);
8686       case 0x00cc: return((CHAR)0xde);
8687       case 0x00d1: return((CHAR)0xa5);
8688       case 0x00d6: return((CHAR)0x99);
8689       case 0x00d7: return((CHAR)0xf5);
8690       case 0x00dc: return((CHAR)0x9a);
8691       case 0x00df: return((CHAR)0xe1);
8692       case 0x00e0: return((CHAR)0x85);
8693       case 0x00e1: return((CHAR)0xa0);
8694       case 0x00e2: return((CHAR)0x83);
8695       case 0x00e4: return((CHAR)0x84);
8696       case 0x00e5: return((CHAR)0x86);
8697       case 0x00e7: return((CHAR)0x87);
8698       case 0x00e8: return((CHAR)0x8a);
8699       case 0x00e9: return((CHAR)0x82);
8700       case 0x00ea: return((CHAR)0x88);
8701       case 0x00eb: return((CHAR)0x89);
8702       case 0x00ec: return((CHAR)0x8d);
8703       case 0x00ed: return((CHAR)0xa1);
8704       case 0x00ee: return((CHAR)0x8c);
8705       case 0x00ef: return((CHAR)0x8b);
8706       case 0x00f1: return((CHAR)0xa4);
8707       case 0x00f2: return((CHAR)0x95);
8708       case 0x00f3: return((CHAR)0xa2);
8709       case 0x00f4: return((CHAR)0x93);
8710       case 0x00f6: return((CHAR)0x94);
8711       case 0x00f7: return((CHAR)0xf6);
8712       case 0x00f8: return((CHAR)0x9b);
8713       case 0x00f9: return((CHAR)0x97);
8714       case 0x00fa: return((CHAR)0xa3);
8715       case 0x00fb: return((CHAR)0x96);
8716       case 0x00fc: return((CHAR)0x81);
8717       case 0x2190: return((CHAR)0x9e);
8718       case 0x2191: return((CHAR)0xc6);
8719       case 0x2192: return((CHAR)0xab);
8720       case 0x2193: return((CHAR)0xc7);
8721       case 0x2206: return((CHAR)0xb6);
8722       case 0x2207: return((CHAR)0xb7);
8723       case 0x2218: return((CHAR)0xf8);
8724       case 0x2228: return((CHAR)0xeb);
8725       case 0x2229: return((CHAR)0xef);
8726       case 0x222a: return((CHAR)0xac);
8727       case 0x2235: return((CHAR)0xd2);
8728       case 0x2260: return((CHAR)0xf4);
8729       case 0x2261: return((CHAR)0xcf);
8730       case 0x2264: return((CHAR)0xf3);
8731       case 0x2265: return((CHAR)0xf2);
8732       case 0x2282: return((CHAR)0xe2);
8733       case 0x2283: return((CHAR)0xe3);
8734       case 0x2296: return((CHAR)0xe9);
8735       case 0x22a2: return((CHAR)0xd6);
8736       case 0x22a3: return((CHAR)0xd7);
8737       case 0x22a4: return((CHAR)0x98);
8738       case 0x22a5: return((CHAR)0x9d);
8739       case 0x22c4: return((CHAR)0xd8);
8740       case 0x2308: return((CHAR)0xa9);
8741       case 0x230a: return((CHAR)0xbe);
8742       case 0x2336: return((CHAR)0x9f);
8743       case 0x2337: return((CHAR)0xd3);
8744       case 0x2339: return((CHAR)0x92);
8745       case 0x233b: return((CHAR)0xd5);
8746       case 0x233d: return((CHAR)0xe8);
8747       case 0x233f: return((CHAR)0xf0);
8748       case 0x2340: return((CHAR)0xf1);
8749       case 0x2342: return((CHAR)0xd4);
8750       case 0x2349: return((CHAR)0xed);
8751       case 0x234b: return((CHAR)0xfb);
8752       case 0x234e: return((CHAR)0xaf);
8753       case 0x2352: return((CHAR)0xfc);
8754       case 0x2355: return((CHAR)0xae);
8755       case 0x2359: return((CHAR)0xf7);
8756       case 0x235d: return((CHAR)0xe4);
8757       case 0x235e: return((CHAR)0x91);
8758       case 0x235f: return((CHAR)0xb5);
8759       case 0x236b: return((CHAR)0xfa);
8760       case 0x2371: return((CHAR)0xe7);
8761       case 0x2372: return((CHAR)0xe5);
8762       case 0x2373: return((CHAR)0xec);
8763       case 0x2374: return((CHAR)0xe6);
8764       case 0x2375: return((CHAR)0xf9);
8765       case 0x2377: return((CHAR)0xd1);
8766       case 0x2378: return((CHAR)0xd0);
8767       case 0x237a: return((CHAR)0xe0);
8768       case 0x2500: return((CHAR)0xc4);
8769       case 0x2502: return((CHAR)0xb3);
8770       case 0x250c: return((CHAR)0xda);
8771       case 0x2510: return((CHAR)0xbf);
8772       case 0x2514: return((CHAR)0xc0);
8773       case 0x2518: return((CHAR)0xd9);
8774       case 0x251c: return((CHAR)0xc3);
8775       case 0x2524: return((CHAR)0xb4);
8776       case 0x252c: return((CHAR)0xc2);
8777       case 0x2534: return((CHAR)0xc1);
8778       case 0x253c: return((CHAR)0xc5);
8779       case 0x2550: return((CHAR)0xcd);
8780       case 0x2551: return((CHAR)0xba);
8781       case 0x2554: return((CHAR)0xc9);
8782       case 0x2557: return((CHAR)0xbb);
8783       case 0x255a: return((CHAR)0xc8);
8784       case 0x255d: return((CHAR)0xbc);
8785       case 0x2560: return((CHAR)0xcc);
8786       case 0x2563: return((CHAR)0xb9);
8787       case 0x2566: return((CHAR)0xcb);
8788       case 0x2569: return((CHAR)0xca);
8789       case 0x256c: return((CHAR)0xce);
8790       case 0x2580: return((CHAR)0xdf);
8791       case 0x2584: return((CHAR)0xdc);
8792       case 0x2588: return((CHAR)0xdb);
8793       case 0x2591: return((CHAR)0xb0);
8794       case 0x2592: return((CHAR)0xb1);
8795       case 0x2593: return((CHAR)0xb2);
8796       case 0x25af: return((CHAR)0x90);
8797       case 0x25cb: return((CHAR)0xea);
8798       default:
8799         return(tx_punc(c));
8800     }
8801 }
8802
8803 int                                     /* APL-2741 */
8804 #ifdef CK_ANSIC
8805 tx_apl5(USHORT c)
8806 #else
8807 tx_apl5(c) USHORT c;
8808 #endif /* CK_ANSIC */
8809 {
8810     switch (c) {
8811       case 0x00a0: return((CHAR)0xa0);
8812       case 0x00a1: return((CHAR)0xa1);
8813       case 0x00a2: return((CHAR)0xa2);
8814       case 0x00a3: return((CHAR)0xa3);
8815       case 0x00a8: return((CHAR)0xa8);
8816       case 0x00af: return((CHAR)0xaf);
8817       case 0x00b6: return((CHAR)0xb6);
8818       case 0x00b7: return((CHAR)0xb7);
8819       case 0x00bf: return((CHAR)0xbf);
8820       case 0x00c4: return((CHAR)0xc4);
8821       case 0x00c5: return((CHAR)0xc5);
8822       case 0x00c6: return((CHAR)0xc6);
8823       case 0x00c7: return((CHAR)0xc7);
8824       case 0x00c8: return((CHAR)0xc8);
8825       case 0x00c9: return((CHAR)0xc9);
8826       case 0x00cd: return((CHAR)0xcd);
8827       case 0x00d1: return((CHAR)0xd1);
8828       case 0x00d6: return((CHAR)0xd6);
8829       case 0x00d7: return((CHAR)0xd7);
8830       case 0x00d8: return((CHAR)0xd8);
8831       case 0x00dc: return((CHAR)0xdc);
8832       case 0x00df: return((CHAR)0xdf);
8833       case 0x00e0: return((CHAR)0xe0);
8834       case 0x00e1: return((CHAR)0xe1);
8835       case 0x00e2: return((CHAR)0xe2);
8836       case 0x00e3: return((CHAR)0xe3);
8837       case 0x00e4: return((CHAR)0xe4);
8838       case 0x00e5: return((CHAR)0xe5);
8839       case 0x00e6: return((CHAR)0xe6);
8840       case 0x00e7: return((CHAR)0xe7);
8841       case 0x00e8: return((CHAR)0xe8);
8842       case 0x00e9: return((CHAR)0xe9);
8843       case 0x00ea: return((CHAR)0xea);
8844       case 0x00eb: return((CHAR)0xeb);
8845       case 0x00ec: return((CHAR)0xec);
8846       case 0x00ed: return((CHAR)0xed);
8847       case 0x00ee: return((CHAR)0xee);
8848       case 0x00ef: return((CHAR)0xef);
8849       case 0x00f1: return((CHAR)0xf1);
8850       case 0x00f2: return((CHAR)0xf2);
8851       case 0x00f3: return((CHAR)0xf3);
8852       case 0x00f4: return((CHAR)0xf4);
8853       case 0x00f5: return((CHAR)0xf5);
8854       case 0x00f6: return((CHAR)0xf6);
8855       case 0x00f7: return((CHAR)0xf7);
8856       case 0x00f9: return((CHAR)0xf9);
8857       case 0x00fa: return((CHAR)0xfa);
8858       case 0x00fb: return((CHAR)0xfb);
8859       case 0x00fc: return((CHAR)0xfc);
8860       case 0x20ac: return((CHAR)0x80);
8861       case 0x2190: return((CHAR)0x84);
8862       case 0x2191: return((CHAR)0x86);
8863       case 0x2192: return((CHAR)0x85);
8864       case 0x2193: return((CHAR)0x87);
8865       case 0x2205: return((CHAR)0xf8);
8866       case 0x2206: return((CHAR)0x91);
8867       case 0x2207: return((CHAR)0x92);
8868       case 0x220a: return((CHAR)0xb9);
8869       case 0x2218: return((CHAR)0xb0);
8870       case 0x2228: return((CHAR)0x9f);
8871       case 0x2229: return((CHAR)0x9d);
8872       case 0x222a: return((CHAR)0x9e);
8873       case 0x2235: return((CHAR)0xfd);
8874       case 0x2260: return((CHAR)0xac);
8875       case 0x2261: return((CHAR)0xa6);
8876       case 0x2262: return((CHAR)0xbb);
8877       case 0x2264: return((CHAR)0x88);
8878       case 0x2265: return((CHAR)0x89);
8879       case 0x2282: return((CHAR)0x9b);
8880       case 0x2283: return((CHAR)0x9c);
8881       case 0x2296: return((CHAR)0xb4);
8882       case 0x22a2: return((CHAR)0xa4);
8883       case 0x22a3: return((CHAR)0x81);
8884       case 0x22a4: return((CHAR)0x82);
8885       case 0x22a5: return((CHAR)0x83);
8886       case 0x22c4: return((CHAR)0xaa);
8887       case 0x2308: return((CHAR)0x97);
8888       case 0x230a: return((CHAR)0x98);
8889       case 0x2336: return((CHAR)0xa7);
8890       case 0x2337: return((CHAR)0xde);
8891       case 0x2339: return((CHAR)0x8e);
8892       case 0x233b: return((CHAR)0xcb);
8893       case 0x233d: return((CHAR)0xb2);
8894       case 0x233f: return((CHAR)0x9a);
8895       case 0x2340: return((CHAR)0x99);
8896       case 0x2342: return((CHAR)0xca);
8897       case 0x2347: return((CHAR)0xd4);
8898       case 0x2348: return((CHAR)0xd5);
8899       case 0x2349: return((CHAR)0xb3);
8900       case 0x234b: return((CHAR)0x93);
8901       case 0x234e: return((CHAR)0x96);
8902       case 0x2350: return((CHAR)0xd2);
8903       case 0x2352: return((CHAR)0x94);
8904       case 0x2355: return((CHAR)0x95);
8905       case 0x2357: return((CHAR)0xd3);
8906       case 0x2359: return((CHAR)0x8f);
8907       case 0x235d: return((CHAR)0xa9);
8908       case 0x235e: return((CHAR)0x8d);
8909       case 0x235f: return((CHAR)0xb5);
8910       case 0x2364: return((CHAR)0xf0);
8911       case 0x2365: return((CHAR)0xff);
8912       case 0x2368: return((CHAR)0xfe);
8913       case 0x236a: return((CHAR)0xae);
8914       case 0x236b: return((CHAR)0x90);
8915       case 0x236c: return((CHAR)0xab);
8916       case 0x2371: return((CHAR)0x8b);
8917       case 0x2372: return((CHAR)0x8a);
8918       case 0x2373: return((CHAR)0xbc);
8919       case 0x2374: return((CHAR)0xbd);
8920       case 0x2375: return((CHAR)0xbe);
8921       case 0x2377: return((CHAR)0xba);
8922       case 0x2378: return((CHAR)0xa5);
8923       case 0x237a: return((CHAR)0xb8);
8924       case 0x2500: return((CHAR)0xce);
8925       case 0x2502: return((CHAR)0xdb);
8926       case 0x250c: return((CHAR)0xda);
8927       case 0x2510: return((CHAR)0xcc);
8928       case 0x2514: return((CHAR)0xc0);
8929       case 0x2518: return((CHAR)0xd9);
8930       case 0x251c: return((CHAR)0xc3);
8931       case 0x2524: return((CHAR)0xdd);
8932       case 0x252c: return((CHAR)0xc2);
8933       case 0x2534: return((CHAR)0xc1);
8934       case 0x253c: return((CHAR)0xcf);
8935       case 0x25af: return((CHAR)0x8c);
8936       case 0x25cb: return((CHAR)0xb1);
8937       default:
8938         return(tx_punc(c));
8939     }
8940 }
8941
8942 /* For Latin-1, use tx_ident() */
8943
8944 int                                     /* Latin-2 */
8945 #ifdef CK_ANSIC
8946 tx_8859_2(USHORT c)
8947 #else
8948 tx_8859_2(c) USHORT c;
8949 #endif /* CK_ANSIC */
8950 {
8951     if (c < 0xa0)
8952       return((CHAR)(c & 0xff));
8953     switch(c) {
8954       case 0x00A0: return((CHAR)160);
8955       case 0x00A4: return((CHAR)164);
8956       case 0x00A7: return((CHAR)167);
8957       case 0x00A8: return((CHAR)168);
8958       case 0x00AD: return((CHAR)173);
8959       case 0x00B0: return((CHAR)176);
8960       case 0x00B4: return((CHAR)180);
8961       case 0x00B8: return((CHAR)184);
8962       case 0x00C1: return((CHAR)193);
8963       case 0x00C2: return((CHAR)194);
8964       case 0x00C4: return((CHAR)196);
8965       case 0x00C7: return((CHAR)199);
8966       case 0x00C9: return((CHAR)201);
8967       case 0x00CB: return((CHAR)203);
8968       case 0x00CD: return((CHAR)205);
8969       case 0x00CE: return((CHAR)206);
8970       case 0x00D3: return((CHAR)211);
8971       case 0x00D4: return((CHAR)212);
8972       case 0x00D6: return((CHAR)214);
8973       case 0x00D7: return((CHAR)215);
8974       case 0x00DA: return((CHAR)218);
8975       case 0x00DC: return((CHAR)220);
8976       case 0x00DD: return((CHAR)221);
8977       case 0x00DF: return((CHAR)223);
8978       case 0x00E1: return((CHAR)225);
8979       case 0x00E2: return((CHAR)226);
8980       case 0x00E4: return((CHAR)228);
8981       case 0x00E7: return((CHAR)231);
8982       case 0x00E9: return((CHAR)233);
8983       case 0x00EB: return((CHAR)235);
8984       case 0x00ED: return((CHAR)237);
8985       case 0x00EE: return((CHAR)238);
8986       case 0x00F3: return((CHAR)243);
8987       case 0x00F4: return((CHAR)244);
8988       case 0x00F6: return((CHAR)246);
8989       case 0x00F7: return((CHAR)247);
8990       case 0x00FA: return((CHAR)250);
8991       case 0x00FC: return((CHAR)252);
8992       case 0x00FD: return((CHAR)253);
8993       case 0x0102: return((CHAR)195);
8994       case 0x0103: return((CHAR)227);
8995       case 0x0104: return((CHAR)161);
8996       case 0x0105: return((CHAR)177);
8997       case 0x0106: return((CHAR)198);
8998       case 0x0107: return((CHAR)230);
8999       case 0x010C: return((CHAR)200);
9000       case 0x010D: return((CHAR)232);
9001       case 0x010E: return((CHAR)207);
9002       case 0x010F: return((CHAR)239);
9003       case 0x0110: return((CHAR)208);
9004       case 0x0111: return((CHAR)240);
9005       case 0x0118: return((CHAR)202);
9006       case 0x0119: return((CHAR)234);
9007       case 0x011A: return((CHAR)204);
9008       case 0x011B: return((CHAR)236);
9009       case 0x0139: return((CHAR)197);
9010       case 0x013A: return((CHAR)229);
9011       case 0x013D: return((CHAR)165);
9012       case 0x013E: return((CHAR)181);
9013       case 0x0141: return((CHAR)163);
9014       case 0x0142: return((CHAR)179);
9015       case 0x0143: return((CHAR)209);
9016       case 0x0144: return((CHAR)241);
9017       case 0x0147: return((CHAR)210);
9018       case 0x0148: return((CHAR)242);
9019       case 0x0150: return((CHAR)213);
9020       case 0x0151: return((CHAR)245);
9021       case 0x0154: return((CHAR)192);
9022       case 0x0155: return((CHAR)224);
9023       case 0x0158: return((CHAR)216);
9024       case 0x0159: return((CHAR)248);
9025       case 0x015A: return((CHAR)166);
9026       case 0x015B: return((CHAR)182);
9027       case 0x015E: return((CHAR)170);
9028       case 0x015F: return((CHAR)186);
9029       case 0x0160: return((CHAR)169);
9030       case 0x0161: return((CHAR)185);
9031       case 0x0162: return((CHAR)222);
9032       case 0x0163: return((CHAR)254);
9033       case 0x0164: return((CHAR)171);
9034       case 0x0165: return((CHAR)187);
9035       case 0x016E: return((CHAR)217);
9036       case 0x016F: return((CHAR)249);
9037       case 0x0170: return((CHAR)219);
9038       case 0x0171: return((CHAR)251);
9039       case 0x0179: return((CHAR)172);
9040       case 0x017A: return((CHAR)188);
9041       case 0x017B: return((CHAR)175);
9042       case 0x017C: return((CHAR)191);
9043       case 0x017D: return((CHAR)174);
9044       case 0x017E: return((CHAR)190);
9045       case 0x02C7: return((CHAR)183);
9046       case 0x02D8: return((CHAR)162);
9047       case 0x02D9: return((CHAR)255);
9048       case 0x02DB: return((CHAR)178);
9049       case 0x02DD: return((CHAR)189);
9050       default: return(tx_punc(c));
9051     }
9052 }
9053
9054 int                                     /* Latin-3 */
9055 #ifdef CK_ANSIC
9056 tx_8859_3(USHORT c)
9057 #else
9058 tx_8859_3(c) USHORT c;
9059 #endif /* CK_ANSIC */
9060 {
9061     if (c < 0xa0)
9062       return((CHAR)(c & 0xff));
9063     switch(c) {
9064       case 0x00A0: return((CHAR)160);
9065       case 0x00A3: return((CHAR)163);
9066       case 0x00A4: return((CHAR)164);
9067       case 0x00A7: return((CHAR)167);
9068       case 0x00A8: return((CHAR)168);
9069       case 0x00AD: return((CHAR)173);
9070       case 0x00B0: return((CHAR)176);
9071       case 0x00B2: return((CHAR)178);
9072       case 0x00B3: return((CHAR)179);
9073       case 0x00B4: return((CHAR)180);
9074       case 0x00B5: return((CHAR)181);
9075       case 0x00B7: return((CHAR)183);
9076       case 0x00B8: return((CHAR)184);
9077       case 0x00BD: return((CHAR)189);
9078       case 0x00C0: return((CHAR)192);
9079       case 0x00C1: return((CHAR)193);
9080       case 0x00C2: return((CHAR)194);
9081       case 0x00C4: return((CHAR)196);
9082       case 0x00C7: return((CHAR)199);
9083       case 0x00C8: return((CHAR)200);
9084       case 0x00C9: return((CHAR)201);
9085       case 0x00CA: return((CHAR)202);
9086       case 0x00CB: return((CHAR)203);
9087       case 0x00CC: return((CHAR)204);
9088       case 0x00CD: return((CHAR)205);
9089       case 0x00CE: return((CHAR)206);
9090       case 0x00CF: return((CHAR)207);
9091       case 0x00D1: return((CHAR)209);
9092       case 0x00D2: return((CHAR)210);
9093       case 0x00D3: return((CHAR)211);
9094       case 0x00D4: return((CHAR)212);
9095       case 0x00D6: return((CHAR)214);
9096       case 0x00D7: return((CHAR)215);
9097       case 0x00D9: return((CHAR)217);
9098       case 0x00DA: return((CHAR)218);
9099       case 0x00DB: return((CHAR)219);
9100       case 0x00DC: return((CHAR)220);
9101       case 0x00DF: return((CHAR)223);
9102       case 0x00E0: return((CHAR)224);
9103       case 0x00E1: return((CHAR)225);
9104       case 0x00E2: return((CHAR)226);
9105       case 0x00E4: return((CHAR)228);
9106       case 0x00E7: return((CHAR)231);
9107       case 0x00E8: return((CHAR)232);
9108       case 0x00E9: return((CHAR)233);
9109       case 0x00EA: return((CHAR)234);
9110       case 0x00EB: return((CHAR)235);
9111       case 0x00EC: return((CHAR)236);
9112       case 0x00ED: return((CHAR)237);
9113       case 0x00EE: return((CHAR)238);
9114       case 0x00EF: return((CHAR)239);
9115       case 0x00F1: return((CHAR)241);
9116       case 0x00F2: return((CHAR)242);
9117       case 0x00F3: return((CHAR)243);
9118       case 0x00F4: return((CHAR)244);
9119       case 0x00F6: return((CHAR)246);
9120       case 0x00F7: return((CHAR)247);
9121       case 0x00F9: return((CHAR)249);
9122       case 0x00FA: return((CHAR)250);
9123       case 0x00FB: return((CHAR)251);
9124       case 0x00FC: return((CHAR)252);
9125       case 0x0108: return((CHAR)198);
9126       case 0x0109: return((CHAR)230);
9127       case 0x010A: return((CHAR)197);
9128       case 0x010B: return((CHAR)229);
9129       case 0x011C: return((CHAR)216);
9130       case 0x011D: return((CHAR)248);
9131       case 0x011E: return((CHAR)171);
9132       case 0x011F: return((CHAR)187);
9133       case 0x0120: return((CHAR)213);
9134       case 0x0121: return((CHAR)245);
9135       case 0x0124: return((CHAR)166);
9136       case 0x0125: return((CHAR)182);
9137       case 0x0126: return((CHAR)161);
9138       case 0x0127: return((CHAR)177);
9139       case 0x0130: return((CHAR)169);
9140       case 0x0131: return((CHAR)185);
9141       case 0x0134: return((CHAR)172);
9142       case 0x0135: return((CHAR)188);
9143       case 0x015C: return((CHAR)222);
9144       case 0x015D: return((CHAR)254);
9145       case 0x015E: return((CHAR)170);
9146       case 0x015F: return((CHAR)186);
9147       case 0x016C: return((CHAR)221);
9148       case 0x016D: return((CHAR)253);
9149       case 0x017B: return((CHAR)175);
9150       case 0x017C: return((CHAR)191);
9151       case 0x02D8: return((CHAR)162);
9152       case 0x02D9: return((CHAR)255);
9153       default: return(tx_punc(c));
9154     }
9155 }
9156
9157 int                                     /* Latin-4 */
9158 #ifdef CK_ANSIC
9159 tx_8859_4(USHORT c)
9160 #else
9161 tx_8859_4(c) USHORT c;
9162 #endif /* CK_ANSIC */
9163 {
9164     if (c < 0xa0)
9165       return((CHAR)(c & 0xff));
9166     switch(c) {
9167       case 0x00A0: return((CHAR)160);
9168       case 0x00A4: return((CHAR)164);
9169       case 0x00A7: return((CHAR)167);
9170       case 0x00A8: return((CHAR)168);
9171       case 0x00AD: return((CHAR)173);
9172       case 0x00AF: return((CHAR)175);
9173       case 0x00B0: return((CHAR)176);
9174       case 0x00B4: return((CHAR)180);
9175       case 0x00B8: return((CHAR)184);
9176       case 0x00C1: return((CHAR)193);
9177       case 0x00C2: return((CHAR)194);
9178       case 0x00C3: return((CHAR)195);
9179       case 0x00C4: return((CHAR)196);
9180       case 0x00C5: return((CHAR)197);
9181       case 0x00C6: return((CHAR)198);
9182       case 0x00C9: return((CHAR)201);
9183       case 0x00CB: return((CHAR)203);
9184       case 0x00CD: return((CHAR)205);
9185       case 0x00CE: return((CHAR)206);
9186       case 0x00D4: return((CHAR)212);
9187       case 0x00D5: return((CHAR)213);
9188       case 0x00D6: return((CHAR)214);
9189       case 0x00D7: return((CHAR)215);
9190       case 0x00D8: return((CHAR)216);
9191       case 0x00DA: return((CHAR)218);
9192       case 0x00DB: return((CHAR)219);
9193       case 0x00DC: return((CHAR)220);
9194       case 0x00DF: return((CHAR)223);
9195       case 0x00E1: return((CHAR)225);
9196       case 0x00E2: return((CHAR)226);
9197       case 0x00E3: return((CHAR)227);
9198       case 0x00E4: return((CHAR)228);
9199       case 0x00E5: return((CHAR)229);
9200       case 0x00E6: return((CHAR)230);
9201       case 0x00E9: return((CHAR)233);
9202       case 0x00EB: return((CHAR)235);
9203       case 0x00ED: return((CHAR)237);
9204       case 0x00EE: return((CHAR)238);
9205       case 0x00F4: return((CHAR)244);
9206       case 0x00F5: return((CHAR)245);
9207       case 0x00F6: return((CHAR)246);
9208       case 0x00F7: return((CHAR)247);
9209       case 0x00F8: return((CHAR)248);
9210       case 0x00FA: return((CHAR)250);
9211       case 0x00FB: return((CHAR)251);
9212       case 0x00FC: return((CHAR)252);
9213       case 0x0100: return((CHAR)192);
9214       case 0x0101: return((CHAR)224);
9215       case 0x0104: return((CHAR)161);
9216       case 0x0105: return((CHAR)177);
9217       case 0x010C: return((CHAR)200);
9218       case 0x010D: return((CHAR)232);
9219       case 0x0110: return((CHAR)208);
9220       case 0x0111: return((CHAR)240);
9221       case 0x0112: return((CHAR)170);
9222       case 0x0113: return((CHAR)186);
9223       case 0x0116: return((CHAR)204);
9224       case 0x0117: return((CHAR)236);
9225       case 0x0118: return((CHAR)202);
9226       case 0x0119: return((CHAR)234);
9227       case 0x0122: return((CHAR)171);
9228       case 0x0123: return((CHAR)187);
9229       case 0x0128: return((CHAR)165);
9230       case 0x0129: return((CHAR)181);
9231       case 0x012A: return((CHAR)207);
9232       case 0x012B: return((CHAR)239);
9233       case 0x012E: return((CHAR)199);
9234       case 0x012F: return((CHAR)231);
9235       case 0x0136: return((CHAR)211);
9236       case 0x0137: return((CHAR)243);
9237       case 0x0138: return((CHAR)162);
9238       case 0x013B: return((CHAR)166);
9239       case 0x013C: return((CHAR)182);
9240       case 0x0145: return((CHAR)209);
9241       case 0x0146: return((CHAR)241);
9242       case 0x014A: return((CHAR)189);
9243       case 0x014B: return((CHAR)191);
9244       case 0x014C: return((CHAR)210);
9245       case 0x014D: return((CHAR)242);
9246       case 0x0156: return((CHAR)163);
9247       case 0x0157: return((CHAR)179);
9248       case 0x0160: return((CHAR)169);
9249       case 0x0161: return((CHAR)185);
9250       case 0x0166: return((CHAR)172);
9251       case 0x0167: return((CHAR)188);
9252       case 0x0168: return((CHAR)221);
9253       case 0x0169: return((CHAR)253);
9254       case 0x016A: return((CHAR)222);
9255       case 0x016B: return((CHAR)254);
9256       case 0x0172: return((CHAR)217);
9257       case 0x0173: return((CHAR)249);
9258       case 0x017D: return((CHAR)174);
9259       case 0x017E: return((CHAR)190);
9260       case 0x02C7: return((CHAR)183);
9261       case 0x02D9: return((CHAR)255);
9262       case 0x02DB: return((CHAR)178);
9263       default: return(tx_punc(c));
9264     }
9265 }
9266
9267 int                                     /* ISO 8859-5 (Latin/Cyrillic) */
9268 #ifdef CK_ANSIC
9269 tx_8859_5(USHORT c)
9270 #else
9271 tx_8859_5(c) USHORT c;
9272 #endif /* CK_ANSIC */
9273 {
9274     if (c < 0xa0)                       /* (8859-5 is not Latin-5!) */
9275       return((CHAR)(c & 0xff));
9276     switch(c) {
9277       case 0x00A0: return((CHAR)160);
9278       case 0x00A7: return((CHAR)253);
9279       case 0x00AD: return((CHAR)173);
9280       case 0x0401: return((CHAR)161);
9281       case 0x0402: return((CHAR)162);
9282       case 0x0403: return((CHAR)163);
9283       case 0x0404: return((CHAR)164);
9284       case 0x0405: return((CHAR)165);
9285       case 0x0406: return((CHAR)166);
9286       case 0x0407: return((CHAR)167);
9287       case 0x0408: return((CHAR)168);
9288       case 0x0409: return((CHAR)169);
9289       case 0x040A: return((CHAR)170);
9290       case 0x040B: return((CHAR)171);
9291       case 0x040C: return((CHAR)172);
9292       case 0x040E: return((CHAR)174);
9293       case 0x040F: return((CHAR)175);
9294       case 0x0410: return((CHAR)176);
9295       case 0x0411: return((CHAR)177);
9296       case 0x0412: return((CHAR)178);
9297       case 0x0413: return((CHAR)179);
9298       case 0x0414: return((CHAR)180);
9299       case 0x0415: return((CHAR)181);
9300       case 0x0416: return((CHAR)182);
9301       case 0x0417: return((CHAR)183);
9302       case 0x0418: return((CHAR)184);
9303       case 0x0419: return((CHAR)185);
9304       case 0x041A: return((CHAR)186);
9305       case 0x041B: return((CHAR)187);
9306       case 0x041C: return((CHAR)188);
9307       case 0x041D: return((CHAR)189);
9308       case 0x041E: return((CHAR)190);
9309       case 0x041F: return((CHAR)191);
9310       case 0x0420: return((CHAR)192);
9311       case 0x0421: return((CHAR)193);
9312       case 0x0422: return((CHAR)194);
9313       case 0x0423: return((CHAR)195);
9314       case 0x0424: return((CHAR)196);
9315       case 0x0425: return((CHAR)197);
9316       case 0x0426: return((CHAR)198);
9317       case 0x0427: return((CHAR)199);
9318       case 0x0428: return((CHAR)200);
9319       case 0x0429: return((CHAR)201);
9320       case 0x042A: return((CHAR)202);
9321       case 0x042B: return((CHAR)203);
9322       case 0x042C: return((CHAR)204);
9323       case 0x042D: return((CHAR)205);
9324       case 0x042E: return((CHAR)206);
9325       case 0x042F: return((CHAR)207);
9326       case 0x0430: return((CHAR)208);
9327       case 0x0431: return((CHAR)209);
9328       case 0x0432: return((CHAR)210);
9329       case 0x0433: return((CHAR)211);
9330       case 0x0434: return((CHAR)212);
9331       case 0x0435: return((CHAR)213);
9332       case 0x0436: return((CHAR)214);
9333       case 0x0437: return((CHAR)215);
9334       case 0x0438: return((CHAR)216);
9335       case 0x0439: return((CHAR)217);
9336       case 0x043A: return((CHAR)218);
9337       case 0x043B: return((CHAR)219);
9338       case 0x043C: return((CHAR)220);
9339       case 0x043D: return((CHAR)221);
9340       case 0x043E: return((CHAR)222);
9341       case 0x043F: return((CHAR)223);
9342       case 0x0440: return((CHAR)224);
9343       case 0x0441: return((CHAR)225);
9344       case 0x0442: return((CHAR)226);
9345       case 0x0443: return((CHAR)227);
9346       case 0x0444: return((CHAR)228);
9347       case 0x0445: return((CHAR)229);
9348       case 0x0446: return((CHAR)230);
9349       case 0x0447: return((CHAR)231);
9350       case 0x0448: return((CHAR)232);
9351       case 0x0449: return((CHAR)233);
9352       case 0x044A: return((CHAR)234);
9353       case 0x044B: return((CHAR)235);
9354       case 0x044C: return((CHAR)236);
9355       case 0x044D: return((CHAR)237);
9356       case 0x044E: return((CHAR)238);
9357       case 0x044F: return((CHAR)239);
9358       case 0x0451: return((CHAR)241);
9359       case 0x0452: return((CHAR)242);
9360       case 0x0453: return((CHAR)243);
9361       case 0x0454: return((CHAR)244);
9362       case 0x0455: return((CHAR)245);
9363       case 0x0456: return((CHAR)246);
9364       case 0x0457: return((CHAR)247);
9365       case 0x0458: return((CHAR)248);
9366       case 0x0459: return((CHAR)249);
9367       case 0x045A: return((CHAR)250);
9368       case 0x045B: return((CHAR)251);
9369       case 0x045C: return((CHAR)252);
9370       case 0x045E: return((CHAR)254);
9371       case 0x045F: return((CHAR)255);
9372       case 0x2116: return((CHAR)240);
9373       default: return(tx_punc(c));
9374     }
9375 }
9376
9377 int                                     /* ISO 8859-6 (Latin/Arabic) */
9378 #ifdef CK_ANSIC
9379 tx_8859_6(USHORT c)
9380 #else
9381 tx_8859_6(c) USHORT c;
9382 #endif /* CK_ANSIC */
9383 {
9384     if (c < 0xa0)                       /* (8859-6 != Latin-6) */
9385       return((CHAR)(c & 0xff));
9386     switch(c) {
9387       case 0x00A0: return((CHAR)160);
9388       case 0x00A4: return((CHAR)164);
9389       case 0x00AD: return((CHAR)173);
9390       case 0x060C: return((CHAR)172);
9391       case 0x061B: return((CHAR)187);
9392       case 0x061F: return((CHAR)191);
9393       case 0x0621: return((CHAR)193);
9394       case 0x0622: return((CHAR)194);
9395       case 0x0623: return((CHAR)195);
9396       case 0x0624: return((CHAR)196);
9397       case 0x0625: return((CHAR)197);
9398       case 0x0626: return((CHAR)198);
9399       case 0x0627: return((CHAR)199);
9400       case 0x0628: return((CHAR)200);
9401       case 0x0629: return((CHAR)201);
9402       case 0x062A: return((CHAR)202);
9403       case 0x062B: return((CHAR)203);
9404       case 0x062C: return((CHAR)204);
9405       case 0x062D: return((CHAR)205);
9406       case 0x062E: return((CHAR)206);
9407       case 0x062F: return((CHAR)207);
9408       case 0x0630: return((CHAR)208);
9409       case 0x0631: return((CHAR)209);
9410       case 0x0632: return((CHAR)210);
9411       case 0x0633: return((CHAR)211);
9412       case 0x0634: return((CHAR)212);
9413       case 0x0635: return((CHAR)213);
9414       case 0x0636: return((CHAR)214);
9415       case 0x0637: return((CHAR)215);
9416       case 0x0638: return((CHAR)216);
9417       case 0x0639: return((CHAR)217);
9418       case 0x063A: return((CHAR)218);
9419       case 0x0640: return((CHAR)224);
9420       case 0x0641: return((CHAR)225);
9421       case 0x0642: return((CHAR)226);
9422       case 0x0643: return((CHAR)227);
9423       case 0x0644: return((CHAR)228);
9424       case 0x0645: return((CHAR)229);
9425       case 0x0646: return((CHAR)230);
9426       case 0x0647: return((CHAR)231);
9427       case 0x0648: return((CHAR)232);
9428       case 0x0649: return((CHAR)233);
9429       case 0x064A: return((CHAR)234);
9430       case 0x064B: return((CHAR)235);
9431       case 0x064C: return((CHAR)236);
9432       case 0x064D: return((CHAR)237);
9433       case 0x064E: return((CHAR)238);
9434       case 0x064F: return((CHAR)239);
9435       case 0x0650: return((CHAR)240);
9436       case 0x0651: return((CHAR)241);
9437       case 0x0652: return((CHAR)242);
9438       default: return(tx_punc(c));
9439     }
9440 }
9441
9442 int                                     /* ISO 8859-7 (Latin/Greek) */
9443 #ifdef CK_ANSIC
9444 tx_8859_7(USHORT c)
9445 #else
9446 tx_8859_7(c) USHORT c;
9447 #endif /* CK_ANSIC */
9448 {
9449     if (c < 0xa0)
9450       return((CHAR)(c & 0xff));
9451     switch(c) {
9452         case 0x00a0: return((CHAR)160);
9453         case 0x00a3: return((CHAR)163);
9454         case 0x00a6: return((CHAR)166);
9455         case 0x00a7: return((CHAR)167);
9456         case 0x00a8: return((CHAR)168);
9457         case 0x00a9: return((CHAR)169);
9458         case 0x00ab: return((CHAR)171);
9459         case 0x00ac: return((CHAR)172);
9460         case 0x00ad: return((CHAR)173);
9461         case 0x00b0: return((CHAR)176);
9462         case 0x00b1: return((CHAR)177);
9463         case 0x00b2: return((CHAR)178);
9464         case 0x00b3: return((CHAR)179);
9465         case 0x00b7: return((CHAR)183);
9466         case 0x00bb: return((CHAR)187);
9467         case 0x00bd: return((CHAR)189);
9468         case 0x02bc: return((CHAR)162);
9469         case 0x02bd: return((CHAR)161);
9470         case 0x0384: return((CHAR)180);
9471         case 0x0385: return((CHAR)181);
9472         case 0x0386: return((CHAR)182);
9473         case 0x0388: return((CHAR)184);
9474         case 0x0389: return((CHAR)185);
9475         case 0x038a: return((CHAR)186);
9476         case 0x038c: return((CHAR)188);
9477         case 0x038e: return((CHAR)190);
9478         case 0x038f: return((CHAR)191);
9479         case 0x0390: return((CHAR)192);
9480         case 0x0391: return((CHAR)193);
9481         case 0x0392: return((CHAR)194);
9482         case 0x0393: return((CHAR)195);
9483         case 0x0394: return((CHAR)196);
9484         case 0x0395: return((CHAR)197);
9485         case 0x0396: return((CHAR)198);
9486         case 0x0397: return((CHAR)199);
9487         case 0x0398: return((CHAR)200);
9488         case 0x0399: return((CHAR)201);
9489         case 0x039a: return((CHAR)202);
9490         case 0x039b: return((CHAR)203);
9491         case 0x039c: return((CHAR)204);
9492         case 0x039d: return((CHAR)205);
9493         case 0x039e: return((CHAR)206);
9494         case 0x039f: return((CHAR)207);
9495         case 0x03a0: return((CHAR)208);
9496         case 0x03a1: return((CHAR)209);
9497         case 0x03a3: return((CHAR)211);
9498         case 0x03a4: return((CHAR)212);
9499         case 0x03a5: return((CHAR)213);
9500         case 0x03a6: return((CHAR)214);
9501         case 0x03a7: return((CHAR)215);
9502         case 0x03a8: return((CHAR)216);
9503         case 0x03a9: return((CHAR)217);
9504         case 0x03aa: return((CHAR)218);
9505         case 0x03ab: return((CHAR)219);
9506         case 0x03ac: return((CHAR)220);
9507         case 0x03ad: return((CHAR)221);
9508         case 0x03ae: return((CHAR)222);
9509         case 0x03af: return((CHAR)223);
9510         case 0x03b0: return((CHAR)224);
9511         case 0x03b1: return((CHAR)225);
9512         case 0x03b2: return((CHAR)226);
9513         case 0x03b3: return((CHAR)227);
9514         case 0x03b4: return((CHAR)228);
9515         case 0x03b5: return((CHAR)229);
9516         case 0x03b6: return((CHAR)230);
9517         case 0x03b7: return((CHAR)231);
9518         case 0x03b8: return((CHAR)232);
9519         case 0x03b9: return((CHAR)233);
9520         case 0x03ba: return((CHAR)234);
9521         case 0x03bb: return((CHAR)235);
9522         case 0x03bc: return((CHAR)236);
9523         case 0x03bd: return((CHAR)237);
9524         case 0x03be: return((CHAR)238);
9525         case 0x03bf: return((CHAR)239);
9526         case 0x03c0: return((CHAR)240);
9527         case 0x03c1: return((CHAR)241);
9528         case 0x03c2: return((CHAR)242);
9529         case 0x03c3: return((CHAR)243);
9530         case 0x03c4: return((CHAR)244);
9531         case 0x03c5: return((CHAR)245);
9532         case 0x03c6: return((CHAR)246);
9533         case 0x03c7: return((CHAR)247);
9534         case 0x03c8: return((CHAR)248);
9535         case 0x03c9: return((CHAR)249);
9536         case 0x03ca: return((CHAR)250);
9537         case 0x03cb: return((CHAR)251);
9538         case 0x03cc: return((CHAR)252);
9539         case 0x03cd: return((CHAR)253);
9540         case 0x03ce: return((CHAR)254);
9541         case 0x2015: return((CHAR)175);
9542         case 0x2018: return((CHAR)161);
9543         case 0x2019: return((CHAR)162);
9544         default: return(tx_punc(c));
9545     }
9546 }
9547
9548 int                                     /* ISO 8859-8 (Latin/Hebrew) */
9549 #ifdef CK_ANSIC
9550 tx_8859_8(USHORT c)
9551 #else
9552 tx_8859_8(c) USHORT c;
9553 #endif /* CK_ANSIC */
9554 {
9555     if (c < 0xa0)
9556       return((CHAR)(c & 0xff));
9557     switch(c) {
9558       case 0x00a0: return((CHAR)160);
9559       case 0x00a2: return((CHAR)162);
9560       case 0x00a3: return((CHAR)163);
9561       case 0x00a4: return((CHAR)164);
9562       case 0x00a5: return((CHAR)165);
9563       case 0x00a6: return((CHAR)166);
9564       case 0x00a7: return((CHAR)167);
9565       case 0x00a8: return((CHAR)168);
9566       case 0x00a9: return((CHAR)169);
9567       case 0x00d7: return((CHAR)170);
9568       case 0x00ab: return((CHAR)171);
9569       case 0x00ac: return((CHAR)172);
9570       case 0x00ad: return((CHAR)173);
9571       case 0x00ae: return((CHAR)174);
9572       case 0x203e: return((CHAR)175);
9573       case 0x00b0: return((CHAR)176);
9574       case 0x00b1: return((CHAR)177);
9575       case 0x00b2: return((CHAR)178);
9576       case 0x00b3: return((CHAR)179);
9577       case 0x00b4: return((CHAR)180);
9578       case 0x00b5: return((CHAR)181);
9579       case 0x00b6: return((CHAR)182);
9580       case 0x00b7: return((CHAR)183);
9581       case 0x00b8: return((CHAR)184);
9582       case 0x00b9: return((CHAR)185);
9583       case 0x00f7: return((CHAR)186);
9584       case 0x00bb: return((CHAR)187);
9585       case 0x00bc: return((CHAR)188);
9586       case 0x00bd: return((CHAR)189);
9587       case 0x00be: return((CHAR)190);
9588       case 0x2017: return((CHAR)223);
9589       case 0x05d0: return((CHAR)224);
9590       case 0x05d1: return((CHAR)225);
9591       case 0x05d2: return((CHAR)226);
9592       case 0x05d3: return((CHAR)227);
9593       case 0x05d4: return((CHAR)228);
9594       case 0x05d5: return((CHAR)229);
9595       case 0x05d6: return((CHAR)230);
9596       case 0x05d7: return((CHAR)231);
9597       case 0x05d8: return((CHAR)232);
9598       case 0x05d9: return((CHAR)233);
9599       case 0x05da: return((CHAR)234);
9600       case 0x05db: return((CHAR)235);
9601       case 0x05dc: return((CHAR)236);
9602       case 0x05dd: return((CHAR)237);
9603       case 0x05de: return((CHAR)238);
9604       case 0x05df: return((CHAR)239);
9605       case 0x05e0: return((CHAR)240);
9606       case 0x05e1: return((CHAR)241);
9607       case 0x05e2: return((CHAR)242);
9608       case 0x05e3: return((CHAR)243);
9609       case 0x05e4: return((CHAR)244);
9610       case 0x05e5: return((CHAR)245);
9611       case 0x05e6: return((CHAR)246);
9612       case 0x05e7: return((CHAR)247);
9613       case 0x05e8: return((CHAR)248);
9614       case 0x05e9: return((CHAR)249);
9615       case 0x05ea: return((CHAR)250);
9616       default: return(tx_punc(c));
9617     }
9618 }
9619
9620 int                                     /* ISO 8859-9 (Latin-4) */
9621 #ifdef CK_ANSIC
9622 tx_8859_9(USHORT c)
9623 #else
9624 tx_8859_9(c) USHORT c;
9625 #endif /* CK_ANSIC */
9626 {
9627     if (c < 0xa0)
9628       return((CHAR)(c & 0xff));
9629     switch(c) {
9630       case 0x011E: return((CHAR)208);   /* Differs from Latin-1 in */
9631       case 0x011F: return((CHAR)240);   /* only six places */
9632       case 0x0130: return((CHAR)221);
9633       case 0x0131: return((CHAR)253);
9634       case 0x015E: return((CHAR)222);
9635       case 0x015F: return((CHAR)254);
9636       default: return(tx_ident(c));
9637     }
9638 }
9639
9640 int                                     /* Latin-6 */
9641 #ifdef CK_ANSIC
9642 tx_8859_10(USHORT c)
9643 #else
9644 tx_8859_10(c) USHORT c;
9645 #endif /* CK_ANSIC */
9646 {
9647     if (c < 0xa0)
9648       return((CHAR)(c & 0xff));
9649     switch(c) {
9650       case 0x00a0: return((CHAR)160);
9651       case 0x00ad: return((CHAR)173);
9652       case 0x00bd: return((CHAR)189);
9653       case 0x00be: return((CHAR)190);
9654       case 0x00c1: return((CHAR)193);
9655       case 0x00c2: return((CHAR)194);
9656       case 0x00c3: return((CHAR)195);
9657       case 0x00c4: return((CHAR)196);
9658       case 0x00c5: return((CHAR)197);
9659       case 0x00c6: return((CHAR)198);
9660       case 0x00c9: return((CHAR)201);
9661       case 0x00cb: return((CHAR)203);
9662       case 0x00cd: return((CHAR)205);
9663       case 0x00ce: return((CHAR)206);
9664       case 0x00cf: return((CHAR)207);
9665       case 0x00d3: return((CHAR)211);
9666       case 0x00d4: return((CHAR)212);
9667       case 0x00d5: return((CHAR)213);
9668       case 0x00d6: return((CHAR)214);
9669       case 0x00d8: return((CHAR)216);
9670       case 0x00da: return((CHAR)218);
9671       case 0x00db: return((CHAR)219);
9672       case 0x00dc: return((CHAR)220);
9673       case 0x00dd: return((CHAR)221);
9674       case 0x00de: return((CHAR)222);
9675       case 0x00e1: return((CHAR)225);
9676       case 0x00e2: return((CHAR)226);
9677       case 0x00e3: return((CHAR)227);
9678       case 0x00e4: return((CHAR)228);
9679       case 0x00e5: return((CHAR)229);
9680       case 0x00e6: return((CHAR)230);
9681       case 0x00e9: return((CHAR)233);
9682       case 0x00eb: return((CHAR)235);
9683       case 0x00ed: return((CHAR)237);
9684       case 0x00ee: return((CHAR)238);
9685       case 0x00ef: return((CHAR)239);
9686       case 0x00f0: return((CHAR)240);
9687       case 0x00f1: return((CHAR)241);
9688       case 0x00f3: return((CHAR)243);
9689       case 0x00f4: return((CHAR)244);
9690       case 0x00f5: return((CHAR)245);
9691       case 0x00f6: return((CHAR)246);
9692       case 0x00f8: return((CHAR)248);
9693       case 0x00fa: return((CHAR)250);
9694       case 0x00fb: return((CHAR)251);
9695       case 0x00fc: return((CHAR)252);
9696       case 0x00fd: return((CHAR)253);
9697       case 0x00fe: return((CHAR)254);
9698       case 0x0100: return((CHAR)192);
9699       case 0x0101: return((CHAR)224);
9700       case 0x0104: return((CHAR)161);
9701       case 0x0105: return((CHAR)177);
9702       case 0x010c: return((CHAR)200);
9703       case 0x010d: return((CHAR)232);
9704       case 0x0110: return((CHAR)208);
9705       case 0x0111: return((CHAR)176);
9706       case 0x0112: return((CHAR)162);
9707       case 0x0113: return((CHAR)178);
9708       case 0x0116: return((CHAR)204);
9709       case 0x0117: return((CHAR)236);
9710       case 0x0118: return((CHAR)202);
9711       case 0x0119: return((CHAR)234);
9712       case 0x0122: return((CHAR)163);
9713       case 0x0123: return((CHAR)179);
9714       case 0x0128: return((CHAR)165);
9715       case 0x0129: return((CHAR)181);
9716       case 0x012a: return((CHAR)164);
9717       case 0x012b: return((CHAR)180);
9718       case 0x012e: return((CHAR)199);
9719       case 0x012f: return((CHAR)231);
9720       case 0x0136: return((CHAR)166);
9721       case 0x0137: return((CHAR)182);
9722       case 0x0138: return((CHAR)174);
9723       case 0x013b: return((CHAR)167);
9724       case 0x013c: return((CHAR)183);
9725       case 0x0143: return((CHAR)168);
9726       case 0x0144: return((CHAR)184);
9727       case 0x0145: return((CHAR)209);
9728       case 0x014a: return((CHAR)175);
9729       case 0x014b: return((CHAR)191);
9730       case 0x014c: return((CHAR)210);
9731       case 0x014d: return((CHAR)242);
9732       case 0x0156: return((CHAR)169);
9733       case 0x0157: return((CHAR)185);
9734       case 0x0160: return((CHAR)170);
9735       case 0x0161: return((CHAR)186);
9736       case 0x0166: return((CHAR)171);
9737       case 0x0167: return((CHAR)187);
9738       case 0x0168: return((CHAR)215);
9739       case 0x0169: return((CHAR)247);
9740       case 0x016a: return((CHAR)223);
9741       case 0x016b: return((CHAR)255);
9742       case 0x0172: return((CHAR)217);
9743       case 0x0173: return((CHAR)249);
9744       case 0x017d: return((CHAR)172);
9745       case 0x017e: return((CHAR)188);
9746       default: return(tx_ident(c));
9747     }
9748 }
9749
9750
9751 int                                     /* ISO 8859-15 Latin-9 */
9752 #ifdef CK_ANSIC
9753 tx_8859_15(USHORT c)
9754 #else
9755 tx_8859_15(c) USHORT c;
9756 #endif /* CK_ANSIC */
9757 {
9758     if (c < 0xa0)
9759       return((CHAR)(c & 0xff));
9760     switch(c) {
9761       case 0x20AC: return((CHAR)0xA4);  /* Differs from Latin-1 in */
9762       case 0x0160: return((CHAR)0xAC);  /* only eight places */
9763       case 0x0161: return((CHAR)0xA8);
9764       case 0x017D: return((CHAR)0xB4);
9765       case 0x017E: return((CHAR)0xB8);
9766       case 0x0152: return((CHAR)0xBC);
9767       case 0x0153: return((CHAR)0xBD);
9768       case 0x0178: return((CHAR)0xBE);
9769       default: return(tx_ident(c));
9770     }
9771 }
9772
9773 int                                     /* Old KOI-8 (ECMA 113 First Ed.) */
9774 #ifdef CK_ANSIC
9775 tx_koi8(USHORT c)
9776 #else
9777 tx_koi8(c) USHORT c;
9778 #endif /* CK_ANSIC */
9779 {
9780     if (c < 0xa0)
9781       return((CHAR)(c & 0xff));
9782     switch(c) {
9783       case 0x0410: return((CHAR)(225 & 0xff));
9784       case 0x0411: return((CHAR)(226 & 0xff));
9785       case 0x0412: return((CHAR)(247 & 0xff));
9786       case 0x0413: return((CHAR)(231 & 0xff));
9787       case 0x0414: return((CHAR)(228 & 0xff));
9788       case 0x0415: return((CHAR)(229 & 0xff));
9789       case 0x0416: return((CHAR)(246 & 0xff));
9790       case 0x0417: return((CHAR)(250 & 0xff));
9791       case 0x0418: return((CHAR)(233 & 0xff));
9792       case 0x0419: return((CHAR)(234 & 0xff));
9793       case 0x041a: return((CHAR)(235 & 0xff));
9794       case 0x041b: return((CHAR)(236 & 0xff));
9795       case 0x041c: return((CHAR)(237 & 0xff));
9796       case 0x041d: return((CHAR)(238 & 0xff));
9797       case 0x041e: return((CHAR)(239 & 0xff));
9798       case 0x041f: return((CHAR)(240 & 0xff));
9799       case 0x0420: return((CHAR)(242 & 0xff));
9800       case 0x0421: return((CHAR)(243 & 0xff));
9801       case 0x0422: return((CHAR)(244 & 0xff));
9802       case 0x0423: return((CHAR)(245 & 0xff));
9803       case 0x0424: return((CHAR)(230 & 0xff));
9804       case 0x0425: return((CHAR)(232 & 0xff));
9805       case 0x0426: return((CHAR)(227 & 0xff));
9806       case 0x0427: return((CHAR)(254 & 0xff));
9807       case 0x0428: return((CHAR)(251 & 0xff));
9808       case 0x0429: return((CHAR)(253 & 0xff));
9809       case 0x042b: return((CHAR)(249 & 0xff));
9810       case 0x042c: return((CHAR)(248 & 0xff));
9811       case 0x042d: return((CHAR)(252 & 0xff));
9812       case 0x042e: return((CHAR)(224 & 0xff));
9813       case 0x042f: return((CHAR)(241 & 0xff));
9814       case 0x0430: return((CHAR)(193 & 0xff));
9815       case 0x0431: return((CHAR)(194 & 0xff));
9816       case 0x0432: return((CHAR)(215 & 0xff));
9817       case 0x0433: return((CHAR)(199 & 0xff));
9818       case 0x0434: return((CHAR)(196 & 0xff));
9819       case 0x0435: return((CHAR)(197 & 0xff));
9820       case 0x0436: return((CHAR)(214 & 0xff));
9821       case 0x0437: return((CHAR)(218 & 0xff));
9822       case 0x0438: return((CHAR)(201 & 0xff));
9823       case 0x0439: return((CHAR)(202 & 0xff));
9824       case 0x043a: return((CHAR)(203 & 0xff));
9825       case 0x043b: return((CHAR)(204 & 0xff));
9826       case 0x043c: return((CHAR)(205 & 0xff));
9827       case 0x043d: return((CHAR)(206 & 0xff));
9828       case 0x043e: return((CHAR)(207 & 0xff));
9829       case 0x043f: return((CHAR)(208 & 0xff));
9830       case 0x0440: return((CHAR)(210 & 0xff));
9831       case 0x0441: return((CHAR)(211 & 0xff));
9832       case 0x0442: return((CHAR)(212 & 0xff));
9833       case 0x0443: return((CHAR)(213 & 0xff));
9834       case 0x0444: return((CHAR)(198 & 0xff));
9835       case 0x0445: return((CHAR)(200 & 0xff));
9836       case 0x0446: return((CHAR)(195 & 0xff));
9837       case 0x0447: return((CHAR)(222 & 0xff));
9838       case 0x0448: return((CHAR)(219 & 0xff));
9839       case 0x0449: return((CHAR)(221 & 0xff));
9840       case 0x044a: return((CHAR)(223 & 0xff));
9841       case 0x044b: return((CHAR)(217 & 0xff));
9842       case 0x044c: return((CHAR)(216 & 0xff));
9843       case 0x044d: return((CHAR)(220 & 0xff));
9844       case 0x044e: return((CHAR)(192 & 0xff));
9845       case 0x044f: return((CHAR)(209 & 0xff));
9846       default: return(tx_ident(c));
9847     }
9848 }
9849
9850 int                                     /* UCS-2 to KOI8-R (Russia) */
9851 #ifdef CK_ANSIC
9852 tx_koi8r(USHORT c)
9853 #else
9854 tx_koi8r(c) USHORT c;
9855 #endif /* CK_ANSIC */
9856 {
9857     if (c < 0x00A0)
9858       return((CHAR)(c & 0xff));
9859     switch(c) {
9860       case 0x00A0: return((CHAR)(154 & 0xff));
9861       case 0x00A9: return((CHAR)(191 & 0xff));
9862       case 0x00B0: return((CHAR)(156 & 0xff));
9863       case 0x00B2: return((CHAR)(157 & 0xff));
9864       case 0x00B7: return((CHAR)(158 & 0xff));
9865       case 0x00F7: return((CHAR)(159 & 0xff));
9866       case 0x0401: return((CHAR)(179 & 0xff));
9867       case 0x0410: return((CHAR)(225 & 0xff));
9868       case 0x0411: return((CHAR)(226 & 0xff));
9869       case 0x0412: return((CHAR)(247 & 0xff));
9870       case 0x0413: return((CHAR)(231 & 0xff));
9871       case 0x0414: return((CHAR)(228 & 0xff));
9872       case 0x0415: return((CHAR)(229 & 0xff));
9873       case 0x0416: return((CHAR)(246 & 0xff));
9874       case 0x0417: return((CHAR)(250 & 0xff));
9875       case 0x0418: return((CHAR)(233 & 0xff));
9876       case 0x0419: return((CHAR)(234 & 0xff));
9877       case 0x041A: return((CHAR)(235 & 0xff));
9878       case 0x041B: return((CHAR)(236 & 0xff));
9879       case 0x041C: return((CHAR)(237 & 0xff));
9880       case 0x041D: return((CHAR)(238 & 0xff));
9881       case 0x041E: return((CHAR)(239 & 0xff));
9882       case 0x041F: return((CHAR)(240 & 0xff));
9883       case 0x0420: return((CHAR)(242 & 0xff));
9884       case 0x0421: return((CHAR)(243 & 0xff));
9885       case 0x0422: return((CHAR)(244 & 0xff));
9886       case 0x0423: return((CHAR)(245 & 0xff));
9887       case 0x0424: return((CHAR)(230 & 0xff));
9888       case 0x0425: return((CHAR)(232 & 0xff));
9889       case 0x0426: return((CHAR)(227 & 0xff));
9890       case 0x0427: return((CHAR)(254 & 0xff));
9891       case 0x0428: return((CHAR)(251 & 0xff));
9892       case 0x0429: return((CHAR)(253 & 0xff));
9893       case 0x042A: return((CHAR)(255 & 0xff));
9894       case 0x042B: return((CHAR)(249 & 0xff));
9895       case 0x042C: return((CHAR)(248 & 0xff));
9896       case 0x042D: return((CHAR)(252 & 0xff));
9897       case 0x042E: return((CHAR)(224 & 0xff));
9898       case 0x042F: return((CHAR)(241 & 0xff));
9899       case 0x0430: return((CHAR)(193 & 0xff));
9900       case 0x0431: return((CHAR)(194 & 0xff));
9901       case 0x0432: return((CHAR)(215 & 0xff));
9902       case 0x0433: return((CHAR)(199 & 0xff));
9903       case 0x0434: return((CHAR)(196 & 0xff));
9904       case 0x0435: return((CHAR)(197 & 0xff));
9905       case 0x0436: return((CHAR)(214 & 0xff));
9906       case 0x0437: return((CHAR)(218 & 0xff));
9907       case 0x0438: return((CHAR)(201 & 0xff));
9908       case 0x0439: return((CHAR)(202 & 0xff));
9909       case 0x043A: return((CHAR)(203 & 0xff));
9910       case 0x043B: return((CHAR)(204 & 0xff));
9911       case 0x043C: return((CHAR)(205 & 0xff));
9912       case 0x043D: return((CHAR)(206 & 0xff));
9913       case 0x043E: return((CHAR)(207 & 0xff));
9914       case 0x043F: return((CHAR)(208 & 0xff));
9915       case 0x0440: return((CHAR)(210 & 0xff));
9916       case 0x0441: return((CHAR)(211 & 0xff));
9917       case 0x0442: return((CHAR)(212 & 0xff));
9918       case 0x0443: return((CHAR)(213 & 0xff));
9919       case 0x0444: return((CHAR)(198 & 0xff));
9920       case 0x0445: return((CHAR)(200 & 0xff));
9921       case 0x0446: return((CHAR)(195 & 0xff));
9922       case 0x0447: return((CHAR)(222 & 0xff));
9923       case 0x0448: return((CHAR)(219 & 0xff));
9924       case 0x0449: return((CHAR)(221 & 0xff));
9925       case 0x044A: return((CHAR)(223 & 0xff));
9926       case 0x044B: return((CHAR)(217 & 0xff));
9927       case 0x044C: return((CHAR)(216 & 0xff));
9928       case 0x044D: return((CHAR)(220 & 0xff));
9929       case 0x044E: return((CHAR)(192 & 0xff));
9930       case 0x044F: return((CHAR)(209 & 0xff));
9931       case 0x0451: return((CHAR)(163 & 0xff));
9932       case 0x2219: return((CHAR)(149 & 0xff));
9933       case 0x221A: return((CHAR)(150 & 0xff));
9934       case 0x2248: return((CHAR)(151 & 0xff));
9935       case 0x2264: return((CHAR)(152 & 0xff));
9936       case 0x2265: return((CHAR)(153 & 0xff));
9937       case 0x2320: return((CHAR)(147 & 0xff));
9938       case 0x2321: return((CHAR)(155 & 0xff));
9939       case 0x2500: return((CHAR)(128 & 0xff));
9940       case 0x2502: return((CHAR)(129 & 0xff));
9941       case 0x250C: return((CHAR)(130 & 0xff));
9942       case 0x2510: return((CHAR)(131 & 0xff));
9943       case 0x2514: return((CHAR)(132 & 0xff));
9944       case 0x2518: return((CHAR)(133 & 0xff));
9945       case 0x251C: return((CHAR)(134 & 0xff));
9946       case 0x2524: return((CHAR)(135 & 0xff));
9947       case 0x252C: return((CHAR)(136 & 0xff));
9948       case 0x2534: return((CHAR)(137 & 0xff));
9949       case 0x253C: return((CHAR)(138 & 0xff));
9950       case 0x2550: return((CHAR)(160 & 0xff));
9951       case 0x2551: return((CHAR)(161 & 0xff));
9952       case 0x2552: return((CHAR)(162 & 0xff));
9953       case 0x2553: return((CHAR)(164 & 0xff));
9954       case 0x2554: return((CHAR)(165 & 0xff));
9955       case 0x2555: return((CHAR)(166 & 0xff));
9956       case 0x2556: return((CHAR)(167 & 0xff));
9957       case 0x2557: return((CHAR)(168 & 0xff));
9958       case 0x2558: return((CHAR)(169 & 0xff));
9959       case 0x2559: return((CHAR)(170 & 0xff));
9960       case 0x255A: return((CHAR)(171 & 0xff));
9961       case 0x255B: return((CHAR)(172 & 0xff));
9962       case 0x255C: return((CHAR)(173 & 0xff));
9963       case 0x255D: return((CHAR)(174 & 0xff));
9964       case 0x255E: return((CHAR)(175 & 0xff));
9965       case 0x255F: return((CHAR)(176 & 0xff));
9966       case 0x2560: return((CHAR)(177 & 0xff));
9967       case 0x2561: return((CHAR)(178 & 0xff));
9968       case 0x2562: return((CHAR)(180 & 0xff));
9969       case 0x2563: return((CHAR)(181 & 0xff));
9970       case 0x2564: return((CHAR)(182 & 0xff));
9971       case 0x2565: return((CHAR)(183 & 0xff));
9972       case 0x2566: return((CHAR)(184 & 0xff));
9973       case 0x2567: return((CHAR)(185 & 0xff));
9974       case 0x2568: return((CHAR)(186 & 0xff));
9975       case 0x2569: return((CHAR)(187 & 0xff));
9976       case 0x256A: return((CHAR)(188 & 0xff));
9977       case 0x256B: return((CHAR)(189 & 0xff));
9978       case 0x256C: return((CHAR)(190 & 0xff));
9979       case 0x2580: return((CHAR)(139 & 0xff));
9980       case 0x2584: return((CHAR)(140 & 0xff));
9981       case 0x2588: return((CHAR)(141 & 0xff));
9982       case 0x258C: return((CHAR)(142 & 0xff));
9983       case 0x2590: return((CHAR)(143 & 0xff));
9984       case 0x2591: return((CHAR)(144 & 0xff));
9985       case 0x2592: return((CHAR)(145 & 0xff));
9986       case 0x2593: return((CHAR)(146 & 0xff));
9987       case 0x25A0: return((CHAR)(148 & 0xff));
9988       default: return(tx_ident(c));
9989     }
9990 }
9991
9992 int                                     /* KOI8-U (Ukraine) */
9993 #ifdef CK_ANSIC
9994 tx_koi8u(USHORT c)
9995 #else
9996 tx_koi8u(c) USHORT c;
9997 #endif /* CK_ANSIC */
9998 {
9999     if (c < 0xa0)
10000       return((CHAR)(c & 0xff));
10001     switch(c) {
10002       case 0x00A0: return((CHAR)(154 & 0xff));
10003       case 0x00A9: return((CHAR)(191 & 0xff));
10004       case 0x00B0: return((CHAR)(156 & 0xff));
10005       case 0x00B2: return((CHAR)(157 & 0xff));
10006       case 0x00B7: return((CHAR)(158 & 0xff));
10007       case 0x00F7: return((CHAR)(159 & 0xff));
10008       case 0x0401: return((CHAR)(179 & 0xff));
10009       case 0x0404: return((CHAR)(180 & 0xff));
10010       case 0x0406: return((CHAR)(182 & 0xff));
10011       case 0x0407: return((CHAR)(183 & 0xff));
10012       case 0x0410: return((CHAR)(225 & 0xff));
10013       case 0x0411: return((CHAR)(226 & 0xff));
10014       case 0x0412: return((CHAR)(247 & 0xff));
10015       case 0x0413: return((CHAR)(231 & 0xff));
10016       case 0x0414: return((CHAR)(228 & 0xff));
10017       case 0x0415: return((CHAR)(229 & 0xff));
10018       case 0x0416: return((CHAR)(246 & 0xff));
10019       case 0x0417: return((CHAR)(250 & 0xff));
10020       case 0x0418: return((CHAR)(233 & 0xff));
10021       case 0x0419: return((CHAR)(234 & 0xff));
10022       case 0x041A: return((CHAR)(235 & 0xff));
10023       case 0x041B: return((CHAR)(236 & 0xff));
10024       case 0x041C: return((CHAR)(237 & 0xff));
10025       case 0x041D: return((CHAR)(238 & 0xff));
10026       case 0x041E: return((CHAR)(239 & 0xff));
10027       case 0x041F: return((CHAR)(240 & 0xff));
10028       case 0x0420: return((CHAR)(242 & 0xff));
10029       case 0x0421: return((CHAR)(243 & 0xff));
10030       case 0x0422: return((CHAR)(244 & 0xff));
10031       case 0x0423: return((CHAR)(245 & 0xff));
10032       case 0x0424: return((CHAR)(230 & 0xff));
10033       case 0x0425: return((CHAR)(232 & 0xff));
10034       case 0x0426: return((CHAR)(227 & 0xff));
10035       case 0x0427: return((CHAR)(254 & 0xff));
10036       case 0x0428: return((CHAR)(251 & 0xff));
10037       case 0x0429: return((CHAR)(253 & 0xff));
10038       case 0x042A: return((CHAR)(255 & 0xff));
10039       case 0x042B: return((CHAR)(249 & 0xff));
10040       case 0x042C: return((CHAR)(248 & 0xff));
10041       case 0x042D: return((CHAR)(252 & 0xff));
10042       case 0x042E: return((CHAR)(224 & 0xff));
10043       case 0x042F: return((CHAR)(241 & 0xff));
10044       case 0x0430: return((CHAR)(193 & 0xff));
10045       case 0x0431: return((CHAR)(194 & 0xff));
10046       case 0x0432: return((CHAR)(215 & 0xff));
10047       case 0x0433: return((CHAR)(199 & 0xff));
10048       case 0x0434: return((CHAR)(196 & 0xff));
10049       case 0x0435: return((CHAR)(197 & 0xff));
10050       case 0x0436: return((CHAR)(214 & 0xff));
10051       case 0x0437: return((CHAR)(218 & 0xff));
10052       case 0x0438: return((CHAR)(201 & 0xff));
10053       case 0x0439: return((CHAR)(202 & 0xff));
10054       case 0x043A: return((CHAR)(203 & 0xff));
10055       case 0x043B: return((CHAR)(204 & 0xff));
10056       case 0x043C: return((CHAR)(205 & 0xff));
10057       case 0x043D: return((CHAR)(206 & 0xff));
10058       case 0x043E: return((CHAR)(207 & 0xff));
10059       case 0x043F: return((CHAR)(208 & 0xff));
10060       case 0x0440: return((CHAR)(210 & 0xff));
10061       case 0x0441: return((CHAR)(211 & 0xff));
10062       case 0x0442: return((CHAR)(212 & 0xff));
10063       case 0x0443: return((CHAR)(213 & 0xff));
10064       case 0x0444: return((CHAR)(198 & 0xff));
10065       case 0x0445: return((CHAR)(200 & 0xff));
10066       case 0x0446: return((CHAR)(195 & 0xff));
10067       case 0x0447: return((CHAR)(222 & 0xff));
10068       case 0x0448: return((CHAR)(219 & 0xff));
10069       case 0x0449: return((CHAR)(221 & 0xff));
10070       case 0x044A: return((CHAR)(223 & 0xff));
10071       case 0x044B: return((CHAR)(217 & 0xff));
10072       case 0x044C: return((CHAR)(216 & 0xff));
10073       case 0x044D: return((CHAR)(220 & 0xff));
10074       case 0x044E: return((CHAR)(192 & 0xff));
10075       case 0x044F: return((CHAR)(209 & 0xff));
10076       case 0x0451: return((CHAR)(163 & 0xff));
10077       case 0x0454: return((CHAR)(164 & 0xff));
10078       case 0x0456: return((CHAR)(166 & 0xff));
10079       case 0x0457: return((CHAR)(167 & 0xff));
10080       case 0x0490: return((CHAR)(189 & 0xff));
10081       case 0x0491: return((CHAR)(173 & 0xff));
10082       case 0x2219: return((CHAR)(149 & 0xff));
10083       case 0x221A: return((CHAR)(150 & 0xff));
10084       case 0x2248: return((CHAR)(151 & 0xff));
10085       case 0x2264: return((CHAR)(152 & 0xff));
10086       case 0x2265: return((CHAR)(153 & 0xff));
10087       case 0x2320: return((CHAR)(147 & 0xff));
10088       case 0x2321: return((CHAR)(155 & 0xff));
10089       case 0x2500: return((CHAR)(128 & 0xff));
10090       case 0x2502: return((CHAR)(129 & 0xff));
10091       case 0x250C: return((CHAR)(130 & 0xff));
10092       case 0x2510: return((CHAR)(131 & 0xff));
10093       case 0x2514: return((CHAR)(132 & 0xff));
10094       case 0x2518: return((CHAR)(133 & 0xff));
10095       case 0x251C: return((CHAR)(134 & 0xff));
10096       case 0x2524: return((CHAR)(135 & 0xff));
10097       case 0x252C: return((CHAR)(136 & 0xff));
10098       case 0x2534: return((CHAR)(137 & 0xff));
10099       case 0x253C: return((CHAR)(138 & 0xff));
10100       case 0x2550: return((CHAR)(160 & 0xff));
10101       case 0x2551: return((CHAR)(161 & 0xff));
10102       case 0x2552: return((CHAR)(162 & 0xff));
10103       case 0x2554: return((CHAR)(165 & 0xff));
10104       case 0x2557: return((CHAR)(168 & 0xff));
10105       case 0x2558: return((CHAR)(169 & 0xff));
10106       case 0x2559: return((CHAR)(170 & 0xff));
10107       case 0x255A: return((CHAR)(171 & 0xff));
10108       case 0x255B: return((CHAR)(172 & 0xff));
10109       case 0x255D: return((CHAR)(174 & 0xff));
10110       case 0x255E: return((CHAR)(175 & 0xff));
10111       case 0x255F: return((CHAR)(176 & 0xff));
10112       case 0x2560: return((CHAR)(177 & 0xff));
10113       case 0x2561: return((CHAR)(178 & 0xff));
10114       case 0x2563: return((CHAR)(181 & 0xff));
10115       case 0x2566: return((CHAR)(184 & 0xff));
10116       case 0x2567: return((CHAR)(185 & 0xff));
10117       case 0x2568: return((CHAR)(186 & 0xff));
10118       case 0x2569: return((CHAR)(187 & 0xff));
10119       case 0x256A: return((CHAR)(188 & 0xff));
10120       case 0x256C: return((CHAR)(190 & 0xff));
10121       case 0x2580: return((CHAR)(139 & 0xff));
10122       case 0x2584: return((CHAR)(140 & 0xff));
10123       case 0x2588: return((CHAR)(141 & 0xff));
10124       case 0x258C: return((CHAR)(142 & 0xff));
10125       case 0x2590: return((CHAR)(143 & 0xff));
10126       case 0x2591: return((CHAR)(144 & 0xff));
10127       case 0x2592: return((CHAR)(145 & 0xff));
10128       case 0x2593: return((CHAR)(146 & 0xff));
10129       case 0x25A0: return((CHAR)(148 & 0xff));
10130       default: return(tx_ident(c));
10131     }
10132 }
10133
10134
10135 int                                     /* DEC MCS */
10136 #ifdef CK_ANSIC
10137 tx_decmcs(USHORT c)
10138 #else
10139 tx_decmcs(c) USHORT c;
10140 #endif /* CK_ANSIC */
10141 {
10142     if (c < 0xa0)
10143       return((CHAR)(c & 0xff));
10144     switch(c) {
10145       case 0x00a6:
10146       case 0x00a8:
10147       case 0x00ac:
10148       case 0x00ae:
10149       case 0x00af:
10150       case 0x00b4:
10151       case 0x00b8:
10152       case 0x00be:
10153       case 0x00d0:
10154       case 0x00de:
10155       case 0x00f0:
10156       case 0x00fe:
10157       case 0x00ff:
10158         return(-1);                     /* These are all undefined in DECMCS */
10159       case 0x00a4:                      /* Currency sign */
10160         return((CHAR)0xa8);
10161       case 0x0152:                      /* OE */
10162         return((CHAR)0xd7);
10163       case 0x0153:                      /* oe */
10164         return((CHAR)0xf7);
10165       default: return(tx_ident(c));
10166     }
10167 }
10168
10169 int                                     /* NeXTSTEP */
10170 #ifdef CK_ANSIC
10171 tx_nextstep(USHORT c)
10172 #else
10173 tx_nextstep(c) USHORT c;
10174 #endif /* CK_ANSIC */
10175 {
10176     if (c < 0x80)                       /* Has C1 graphics */
10177       return((CHAR)(c & 0xff));
10178     switch (c) {
10179       case 0x00a0: return((CHAR)(128 & 0xff));
10180       case 0x00a1: return((CHAR)(161 & 0xff));
10181       case 0x00a2: return((CHAR)(162 & 0xff));
10182       case 0x00a3: return((CHAR)(163 & 0xff));
10183       case 0x00a4: return((CHAR)(168 & 0xff));
10184       case 0x00a5: return((CHAR)(165 & 0xff));
10185       case 0x00a6: return((CHAR)(181 & 0xff));
10186       case 0x00a7: return((CHAR)(167 & 0xff));
10187       case 0x00a8: return((CHAR)(200 & 0xff));
10188       case 0x00a9: return((CHAR)(160 & 0xff));
10189       case 0x00aa: return((CHAR)(227 & 0xff));
10190       case 0x00ab: return((CHAR)(171 & 0xff));
10191       case 0x00ac: return((CHAR)(190 & 0xff));
10192       case 0x00ae: return((CHAR)(176 & 0xff));
10193       case 0x00af: return((CHAR)(197 & 0xff));
10194       case 0x00b1: return((CHAR)(209 & 0xff));
10195       case 0x00b2: return((CHAR)(201 & 0xff));
10196       case 0x00b3: return((CHAR)(204 & 0xff));
10197       case 0x00b4: return((CHAR)(194 & 0xff));
10198       case 0x00b5: return((CHAR)(157 & 0xff));
10199       case 0x00b6: return((CHAR)(182 & 0xff));
10200       case 0x00b7: return((CHAR)(180 & 0xff));
10201       case 0x00b8: return((CHAR)(203 & 0xff));
10202       case 0x00b9: return((CHAR)(192 & 0xff));
10203       case 0x00ba: return((CHAR)(235 & 0xff));
10204       case 0x00bb: return((CHAR)(187 & 0xff));
10205       case 0x00bc: return((CHAR)(210 & 0xff));
10206       case 0x00bd: return((CHAR)(211 & 0xff));
10207       case 0x00be: return((CHAR)(212 & 0xff));
10208       case 0x00bf: return((CHAR)(191 & 0xff));
10209       case 0x00c0: return((CHAR)(129 & 0xff));
10210       case 0x00c1: return((CHAR)(130 & 0xff));
10211       case 0x00c2: return((CHAR)(131 & 0xff));
10212       case 0x00c3: return((CHAR)(132 & 0xff));
10213       case 0x00c4: return((CHAR)(133 & 0xff));
10214       case 0x00c5: return((CHAR)(134 & 0xff));
10215       case 0x00c6: return((CHAR)(225 & 0xff));
10216       case 0x00c7: return((CHAR)(135 & 0xff));
10217       case 0x00c8: return((CHAR)(136 & 0xff));
10218       case 0x00c9: return((CHAR)(137 & 0xff));
10219       case 0x00ca: return((CHAR)(138 & 0xff));
10220       case 0x00cb: return((CHAR)(139 & 0xff));
10221       case 0x00cc: return((CHAR)(140 & 0xff));
10222       case 0x00cd: return((CHAR)(141 & 0xff));
10223       case 0x00ce: return((CHAR)(142 & 0xff));
10224       case 0x00cf: return((CHAR)(143 & 0xff));
10225       case 0x00d0: return((CHAR)(144 & 0xff));
10226       case 0x00d1: return((CHAR)(145 & 0xff));
10227       case 0x00d2: return((CHAR)(146 & 0xff));
10228       case 0x00d3: return((CHAR)(147 & 0xff));
10229       case 0x00d4: return((CHAR)(148 & 0xff));
10230       case 0x00d5: return((CHAR)(149 & 0xff));
10231       case 0x00d6: return((CHAR)(150 & 0xff));
10232       case 0x00d7: return((CHAR)(158 & 0xff));
10233       case 0x00d8: return((CHAR)(233 & 0xff));
10234       case 0x00d9: return((CHAR)(151 & 0xff));
10235       case 0x00da: return((CHAR)(152 & 0xff));
10236       case 0x00db: return((CHAR)(153 & 0xff));
10237       case 0x00dc: return((CHAR)(154 & 0xff));
10238       case 0x00dd: return((CHAR)(155 & 0xff));
10239       case 0x00de: return((CHAR)(156 & 0xff));
10240       case 0x00df: return((CHAR)(251 & 0xff));
10241       case 0x00e0: return((CHAR)(213 & 0xff));
10242       case 0x00e1: return((CHAR)(214 & 0xff));
10243       case 0x00e2: return((CHAR)(215 & 0xff));
10244       case 0x00e3: return((CHAR)(216 & 0xff));
10245       case 0x00e4: return((CHAR)(217 & 0xff));
10246       case 0x00e5: return((CHAR)(218 & 0xff));
10247       case 0x00e6: return((CHAR)(241 & 0xff));
10248       case 0x00e7: return((CHAR)(219 & 0xff));
10249       case 0x00e8: return((CHAR)(220 & 0xff));
10250       case 0x00e9: return((CHAR)(221 & 0xff));
10251       case 0x00ea: return((CHAR)(222 & 0xff));
10252       case 0x00eb: return((CHAR)(223 & 0xff));
10253       case 0x00ec: return((CHAR)(224 & 0xff));
10254       case 0x00ed: return((CHAR)(226 & 0xff));
10255       case 0x00ee: return((CHAR)(228 & 0xff));
10256       case 0x00ef: return((CHAR)(229 & 0xff));
10257       case 0x00f0: return((CHAR)(230 & 0xff));
10258       case 0x00f1: return((CHAR)(231 & 0xff));
10259       case 0x00f2: return((CHAR)(236 & 0xff));
10260       case 0x00f3: return((CHAR)(237 & 0xff));
10261       case 0x00f4: return((CHAR)(238 & 0xff));
10262       case 0x00f5: return((CHAR)(239 & 0xff));
10263       case 0x00f6: return((CHAR)(240 & 0xff));
10264       case 0x00f7: return((CHAR)(159 & 0xff));
10265       case 0x00f8: return((CHAR)(249 & 0xff));
10266       case 0x00f9: return((CHAR)(242 & 0xff));
10267       case 0x00fa: return((CHAR)(243 & 0xff));
10268       case 0x00fb: return((CHAR)(244 & 0xff));
10269       case 0x00fc: return((CHAR)(246 & 0xff));
10270       case 0x00fd: return((CHAR)(247 & 0xff));
10271       case 0x00fe: return((CHAR)(252 & 0xff));
10272       case 0x00ff: return((CHAR)(253 & 0xff));
10273       case 0x0131: return((CHAR)(245 & 0xff));
10274       case 0x0141: return((CHAR)(232 & 0xff));
10275       case 0x0142: return((CHAR)(248 & 0xff));
10276       case 0x0152: return((CHAR)(234 & 0xff));
10277       case 0x0153: return((CHAR)(250 & 0xff));
10278       case 0x0192: return((CHAR)(166 & 0xff));
10279       case 0x02c6: return((CHAR)(195 & 0xff));
10280       case 0x02c7: return((CHAR)(207 & 0xff));
10281       case 0x02cb: return((CHAR)(193 & 0xff));
10282       case 0x02d8: return((CHAR)(198 & 0xff));
10283       case 0x02d9: return((CHAR)(199 & 0xff));
10284       case 0x02da: return((CHAR)(202 & 0xff));
10285       case 0x02db: return((CHAR)(206 & 0xff));
10286       case 0x02dc: return((CHAR)(196 & 0xff));
10287       case 0x02dd: return((CHAR)(205 & 0xff));
10288       case 0x2013: return((CHAR)(177 & 0xff));
10289       case 0x2014: return((CHAR)(208 & 0xff));
10290       case 0x2019: return((CHAR)(169 & 0xff));
10291       case 0x201a: return((CHAR)(184 & 0xff));
10292       case 0x201c: return((CHAR)(170 & 0xff));
10293       case 0x201d: return((CHAR)(186 & 0xff));
10294       case 0x201e: return((CHAR)(185 & 0xff));
10295       case 0x2020: return((CHAR)(178 & 0xff));
10296       case 0x2021: return((CHAR)(179 & 0xff));
10297       case 0x2022: return((CHAR)(183 & 0xff));
10298       case 0x2026: return((CHAR)(188 & 0xff));
10299       case 0x2030: return((CHAR)(189 & 0xff));
10300       case 0x2039: return((CHAR)(172 & 0xff));
10301       case 0x203a: return((CHAR)(173 & 0xff));
10302       case 0x2044: return((CHAR)(164 & 0xff));
10303       case 0xfb01: return((CHAR)(174 & 0xff));
10304       case 0xfb02: return((CHAR)(175 & 0xff));
10305       default: return(tx_punc(c));
10306     }
10307 }
10308
10309 int                                     /* DG International */
10310 #ifdef CK_ANSIC
10311 tx_dgi(USHORT c)
10312 #else
10313 tx_dgi(c) USHORT c;
10314 #endif /* CK_ANSIC */
10315 {
10316     if (c < 0xa0)
10317       return((CHAR)(c & 0xff));
10318     switch(c) {
10319       case 0x00a0: return((CHAR)(160 & 0xff));
10320       case 0x00a1: return((CHAR)(171 & 0xff));
10321       case 0x00a2: return((CHAR)(167 & 0xff));
10322       case 0x00a3: return((CHAR)(168 & 0xff));
10323       case 0x00a4: return((CHAR)(166 & 0xff));
10324       case 0x00a5: return((CHAR)(181 & 0xff));
10325       case 0x00a7: return((CHAR)(187 & 0xff));
10326       case 0x00a8: return((CHAR)(189 & 0xff));
10327       case 0x00a9: return((CHAR)(173 & 0xff));
10328       case 0x00aa: return((CHAR)(169 & 0xff));
10329       case 0x00ab: return((CHAR)(177 & 0xff));
10330       case 0x00ac: return((CHAR)(161 & 0xff));
10331       case 0x00ae: return((CHAR)(174 & 0xff));
10332       case 0x00b0: return((CHAR)(188 & 0xff));
10333       case 0x00b1: return((CHAR)(182 & 0xff));
10334       case 0x00b2: return((CHAR)(164 & 0xff));
10335       case 0x00b3: return((CHAR)(165 & 0xff));
10336       case 0x00b4: return((CHAR)(190 & 0xff));
10337       case 0x00b5: return((CHAR)(163 & 0xff));
10338       case 0x00b6: return((CHAR)(178 & 0xff));
10339       case 0x00b7: return((CHAR)(185 & 0xff));
10340       case 0x00b8: return((CHAR)(186 & 0xff));
10341       case 0x00ba: return((CHAR)(170 & 0xff));
10342       case 0x00bb: return((CHAR)(176 & 0xff));
10343       case 0x00bd: return((CHAR)(162 & 0xff));
10344       case 0x00bf: return((CHAR)(172 & 0xff));
10345       case 0x00c0: return((CHAR)(193 & 0xff));
10346       case 0x00c1: return((CHAR)(192 & 0xff));
10347       case 0x00c2: return((CHAR)(194 & 0xff));
10348       case 0x00c3: return((CHAR)(196 & 0xff));
10349       case 0x00c4: return((CHAR)(195 & 0xff));
10350       case 0x00c5: return((CHAR)(197 & 0xff));
10351       case 0x00c6: return((CHAR)(198 & 0xff));
10352       case 0x00c7: return((CHAR)(199 & 0xff));
10353       case 0x00c8: return((CHAR)(201 & 0xff));
10354       case 0x00c9: return((CHAR)(200 & 0xff));
10355       case 0x00ca: return((CHAR)(202 & 0xff));
10356       case 0x00cb: return((CHAR)(203 & 0xff));
10357       case 0x00cc: return((CHAR)(205 & 0xff));
10358       case 0x00cd: return((CHAR)(204 & 0xff));
10359       case 0x00ce: return((CHAR)(206 & 0xff));
10360       case 0x00cf: return((CHAR)(207 & 0xff));
10361       case 0x00d1: return((CHAR)(208 & 0xff));
10362       case 0x00d2: return((CHAR)(210 & 0xff));
10363       case 0x00d3: return((CHAR)(209 & 0xff));
10364       case 0x00d4: return((CHAR)(211 & 0xff));
10365       case 0x00d5: return((CHAR)(213 & 0xff));
10366       case 0x00d6: return((CHAR)(212 & 0xff));
10367       case 0x00d8: return((CHAR)(214 & 0xff));
10368       case 0x00d9: return((CHAR)(217 & 0xff));
10369       case 0x00da: return((CHAR)(216 & 0xff));
10370       case 0x00db: return((CHAR)(218 & 0xff));
10371       case 0x00dc: return((CHAR)(219 & 0xff));
10372       case 0x00df: return((CHAR)(252 & 0xff));
10373       case 0x00e0: return((CHAR)(225 & 0xff));
10374       case 0x00e1: return((CHAR)(224 & 0xff));
10375       case 0x00e2: return((CHAR)(226 & 0xff));
10376       case 0x00e3: return((CHAR)(228 & 0xff));
10377       case 0x00e4: return((CHAR)(227 & 0xff));
10378       case 0x00e5: return((CHAR)(229 & 0xff));
10379       case 0x00e6: return((CHAR)(230 & 0xff));
10380       case 0x00e7: return((CHAR)(231 & 0xff));
10381       case 0x00e8: return((CHAR)(233 & 0xff));
10382       case 0x00e9: return((CHAR)(232 & 0xff));
10383       case 0x00ea: return((CHAR)(234 & 0xff));
10384       case 0x00eb: return((CHAR)(235 & 0xff));
10385       case 0x00ec: return((CHAR)(237 & 0xff));
10386       case 0x00ed: return((CHAR)(236 & 0xff));
10387       case 0x00ee: return((CHAR)(238 & 0xff));
10388       case 0x00ef: return((CHAR)(239 & 0xff));
10389       case 0x00f1: return((CHAR)(240 & 0xff));
10390       case 0x00f2: return((CHAR)(242 & 0xff));
10391       case 0x00f3: return((CHAR)(241 & 0xff));
10392       case 0x00f4: return((CHAR)(243 & 0xff));
10393       case 0x00f5: return((CHAR)(245 & 0xff));
10394       case 0x00f6: return((CHAR)(244 & 0xff));
10395       case 0x00f8: return((CHAR)(246 & 0xff));
10396       case 0x00f9: return((CHAR)(249 & 0xff));
10397       case 0x00fa: return((CHAR)(248 & 0xff));
10398       case 0x00fb: return((CHAR)(250 & 0xff));
10399       case 0x00fc: return((CHAR)(251 & 0xff));
10400       case 0x00ff: return((CHAR)(253 & 0xff));
10401       case 0x0153: return((CHAR)(247 & 0xff));
10402       case 0x0178: return((CHAR)(221 & 0xff));
10403       case 0x0192: return((CHAR)(180 & 0xff));
10404       case 0x0276: return((CHAR)(215 & 0xff));
10405       case 0x2021: return((CHAR)(175 & 0xff));
10406       case 0x2122: return((CHAR)(179 & 0xff));
10407       case 0x2191: return((CHAR)(191 & 0xff));
10408       case 0x2264: return((CHAR)(183 & 0xff));
10409       case 0x2265: return((CHAR)(184 & 0xff));
10410       case 0x2588: return((CHAR)(255 & 0xff));
10411       default: return(tx_punc(c));
10412     }
10413 }
10414
10415 int                                     /* Macintosh Latin */
10416 #ifdef CK_ANSIC
10417 tx_maclatin(USHORT c)
10418 #else
10419 tx_maclatin(c) USHORT c;
10420 #endif /* CK_ANSIC */
10421 {
10422     if (c < 0x80)                       /* Has C1 graphics */
10423       return((CHAR)(c & 0xff));
10424     switch (c) {
10425       case 0x00a0: return((CHAR)(202 & 0xff));
10426       case 0x00a1: return((CHAR)(193 & 0xff));
10427       case 0x00a2: return((CHAR)(162 & 0xff));
10428       case 0x00a3: return((CHAR)(163 & 0xff));
10429       case 0x00a4: return((CHAR)(219 & 0xff));
10430       case 0x00a5: return((CHAR)(180 & 0xff));
10431       case 0x00a7: return((CHAR)(164 & 0xff));
10432       case 0x00a8: return((CHAR)(172 & 0xff));
10433       case 0x00a9: return((CHAR)(169 & 0xff));
10434       case 0x00aa: return((CHAR)(187 & 0xff));
10435       case 0x00ab: return((CHAR)(199 & 0xff));
10436       case 0x00ac: return((CHAR)(194 & 0xff));
10437       case 0x00ae: return((CHAR)(168 & 0xff));
10438       case 0x00af: return((CHAR)(248 & 0xff));
10439       case 0x00b0: return((CHAR)(161 & 0xff));
10440       case 0x00b1: return((CHAR)(177 & 0xff));
10441       case 0x00b4: return((CHAR)(171 & 0xff));
10442       case 0x00b5: return((CHAR)(181 & 0xff));
10443       case 0x00b6: return((CHAR)(166 & 0xff));
10444       case 0x00b7: return((CHAR)(225 & 0xff));
10445       case 0x00b8: return((CHAR)(252 & 0xff));
10446       case 0x00ba: return((CHAR)(188 & 0xff));
10447       case 0x00bb: return((CHAR)(200 & 0xff));
10448       case 0x00bf: return((CHAR)(192 & 0xff));
10449       case 0x00c0: return((CHAR)(203 & 0xff));
10450       case 0x00c1: return((CHAR)(231 & 0xff));
10451       case 0x00c2: return((CHAR)(229 & 0xff));
10452       case 0x00c3: return((CHAR)(204 & 0xff));
10453       case 0x00c4: return((CHAR)(128 & 0xff));
10454       case 0x00c5: return((CHAR)(129 & 0xff));
10455       case 0x00c6: return((CHAR)(174 & 0xff));
10456       case 0x00c7: return((CHAR)(130 & 0xff));
10457       case 0x00c8: return((CHAR)(233 & 0xff));
10458       case 0x00c9: return((CHAR)(131 & 0xff));
10459       case 0x00ca: return((CHAR)(230 & 0xff));
10460       case 0x00cb: return((CHAR)(232 & 0xff));
10461       case 0x00cc: return((CHAR)(237 & 0xff));
10462       case 0x00cd: return((CHAR)(234 & 0xff));
10463       case 0x00ce: return((CHAR)(235 & 0xff));
10464       case 0x00cf: return((CHAR)(236 & 0xff));
10465       case 0x00d0: return((CHAR)(220 & 0xff));
10466       case 0x00d1: return((CHAR)(132 & 0xff));
10467       case 0x00d2: return((CHAR)(241 & 0xff));
10468       case 0x00d3: return((CHAR)(238 & 0xff));
10469       case 0x00d4: return((CHAR)(239 & 0xff));
10470       case 0x00d5: return((CHAR)(205 & 0xff));
10471       case 0x00d6: return((CHAR)(133 & 0xff));
10472       case 0x00d8: return((CHAR)(175 & 0xff));
10473       case 0x00d9: return((CHAR)(244 & 0xff));
10474       case 0x00da: return((CHAR)(242 & 0xff));
10475       case 0x00db: return((CHAR)(243 & 0xff));
10476       case 0x00dc: return((CHAR)(134 & 0xff));
10477       case 0x00dd: return((CHAR)(160 & 0xff));
10478       case 0x00de: return((CHAR)(222 & 0xff));
10479       case 0x00df: return((CHAR)(167 & 0xff));
10480       case 0x00e0: return((CHAR)(136 & 0xff));
10481       case 0x00e1: return((CHAR)(135 & 0xff));
10482       case 0x00e2: return((CHAR)(137 & 0xff));
10483       case 0x00e3: return((CHAR)(139 & 0xff));
10484       case 0x00e4: return((CHAR)(138 & 0xff));
10485       case 0x00e5: return((CHAR)(140 & 0xff));
10486       case 0x00e6: return((CHAR)(190 & 0xff));
10487       case 0x00e7: return((CHAR)(141 & 0xff));
10488       case 0x00e8: return((CHAR)(143 & 0xff));
10489       case 0x00e9: return((CHAR)(142 & 0xff));
10490       case 0x00ea: return((CHAR)(144 & 0xff));
10491       case 0x00eb: return((CHAR)(145 & 0xff));
10492       case 0x00ec: return((CHAR)(147 & 0xff));
10493       case 0x00ed: return((CHAR)(146 & 0xff));
10494       case 0x00ee: return((CHAR)(148 & 0xff));
10495       case 0x00ef: return((CHAR)(149 & 0xff));
10496       case 0x00f0: return((CHAR)(221 & 0xff));
10497       case 0x00f1: return((CHAR)(150 & 0xff));
10498       case 0x00f2: return((CHAR)(152 & 0xff));
10499       case 0x00f3: return((CHAR)(151 & 0xff));
10500       case 0x00f4: return((CHAR)(153 & 0xff));
10501       case 0x00f5: return((CHAR)(155 & 0xff));
10502       case 0x00f6: return((CHAR)(154 & 0xff));
10503       case 0x00f7: return((CHAR)(214 & 0xff));
10504       case 0x00f8: return((CHAR)(191 & 0xff));
10505       case 0x00f9: return((CHAR)(157 & 0xff));
10506       case 0x00fa: return((CHAR)(156 & 0xff));
10507       case 0x00fb: return((CHAR)(158 & 0xff));
10508       case 0x00fc: return((CHAR)(159 & 0xff));
10509       case 0x00fd: return((CHAR)(224 & 0xff));
10510       case 0x00fe: return((CHAR)(223 & 0xff));
10511       case 0x00ff: return((CHAR)(216 & 0xff));
10512       case 0x0131: return((CHAR)(245 & 0xff));
10513       case 0x0152: return((CHAR)(206 & 0xff));
10514       case 0x0153: return((CHAR)(207 & 0xff));
10515       case 0x0178: return((CHAR)(217 & 0xff));
10516       case 0x0192: return((CHAR)(196 & 0xff));
10517       case 0x02c6: return((CHAR)(246 & 0xff));
10518       case 0x02c7: return((CHAR)(255 & 0xff));
10519       case 0x02d8: return((CHAR)(249 & 0xff));
10520       case 0x02d9: return((CHAR)(250 & 0xff));
10521       case 0x02da: return((CHAR)(251 & 0xff));
10522       case 0x02db: return((CHAR)(254 & 0xff));
10523       case 0x02dc: return((CHAR)(247 & 0xff));
10524       case 0x02dd: return((CHAR)(253 & 0xff));
10525       case 0x03c0: return((CHAR)(185 & 0xff));
10526       case 0x2013: return((CHAR)(208 & 0xff));
10527       case 0x2014: return((CHAR)(209 & 0xff));
10528       case 0x2018: return((CHAR)(212 & 0xff));
10529       case 0x2019: return((CHAR)(213 & 0xff));
10530       case 0x201a: return((CHAR)(226 & 0xff));
10531       case 0x201c: return((CHAR)(210 & 0xff));
10532       case 0x201d: return((CHAR)(211 & 0xff));
10533       case 0x201e: return((CHAR)(227 & 0xff));
10534       case 0x2022: return((CHAR)(165 & 0xff));
10535       case 0x2026: return((CHAR)(201 & 0xff));
10536       case 0x2030: return((CHAR)(228 & 0xff));
10537       case 0x2044: return((CHAR)(218 & 0xff));
10538       case 0x2122: return((CHAR)(170 & 0xff));
10539       case 0x2126: return((CHAR)(189 & 0xff));
10540       case 0x2202: return((CHAR)(182 & 0xff));
10541       case 0x2206: return((CHAR)(198 & 0xff));
10542       case 0x220f: return((CHAR)(184 & 0xff));
10543       case 0x2211: return((CHAR)(183 & 0xff));
10544       case 0x221a: return((CHAR)(195 & 0xff));
10545       case 0x221e: return((CHAR)(176 & 0xff));
10546       case 0x222b: return((CHAR)(186 & 0xff));
10547       case 0x2248: return((CHAR)(197 & 0xff));
10548       case 0x2260: return((CHAR)(173 & 0xff));
10549       case 0x2264: return((CHAR)(178 & 0xff));
10550       case 0x2265: return((CHAR)(179 & 0xff));
10551       case 0x25ca: return((CHAR)(215 & 0xff));
10552       case 0xf8ff: return((CHAR)(240 & 0xff));
10553       default: return(tx_punc(c));
10554     }
10555 }
10556
10557 int                                     /* Apple QuickDraw / CP10000 */
10558 #ifdef CK_ANSIC
10559 tx_quickdraw(USHORT c)
10560 #else
10561 tx_quickdraw(c) USHORT c;
10562 #endif /* CK_ANSIC */
10563 {
10564     if (c < 0x80)                       /* Has C1 graphics */
10565       return((CHAR)(c & 0xff));
10566     switch (c) {
10567       case 0x00a0: return((CHAR)(202 & 0xff));
10568       case 0x00a1: return((CHAR)(193 & 0xff));
10569       case 0x00a2: return((CHAR)(162 & 0xff));
10570       case 0x00a3: return((CHAR)(163 & 0xff));
10571       case 0x00a4: return((CHAR)(219 & 0xff));
10572       case 0x00a5: return((CHAR)(180 & 0xff));
10573       case 0x00a7: return((CHAR)(164 & 0xff));
10574       case 0x00a8: return((CHAR)(172 & 0xff));
10575       case 0x00a9: return((CHAR)(169 & 0xff));
10576       case 0x00aa: return((CHAR)(187 & 0xff));
10577       case 0x00ab: return((CHAR)(199 & 0xff));
10578       case 0x00ac: return((CHAR)(194 & 0xff));
10579       case 0x00ae: return((CHAR)(168 & 0xff));
10580       case 0x00af: return((CHAR)(248 & 0xff));
10581       case 0x00b0: return((CHAR)(161 & 0xff));
10582       case 0x00b1: return((CHAR)(177 & 0xff));
10583       case 0x00b4: return((CHAR)(171 & 0xff));
10584       case 0x00b5: return((CHAR)(181 & 0xff));
10585       case 0x00b6: return((CHAR)(166 & 0xff));
10586       case 0x00b7: return((CHAR)(225 & 0xff));
10587       case 0x00b8: return((CHAR)(252 & 0xff));
10588       case 0x00ba: return((CHAR)(188 & 0xff));
10589       case 0x00bb: return((CHAR)(200 & 0xff));
10590       case 0x00bf: return((CHAR)(192 & 0xff));
10591       case 0x00c0: return((CHAR)(203 & 0xff));
10592       case 0x00c1: return((CHAR)(231 & 0xff));
10593       case 0x00c2: return((CHAR)(229 & 0xff));
10594       case 0x00c3: return((CHAR)(204 & 0xff));
10595       case 0x00c4: return((CHAR)(128 & 0xff));
10596       case 0x00c5: return((CHAR)(129 & 0xff));
10597       case 0x00c6: return((CHAR)(174 & 0xff));
10598       case 0x00c7: return((CHAR)(130 & 0xff));
10599       case 0x00c8: return((CHAR)(233 & 0xff));
10600       case 0x00c9: return((CHAR)(131 & 0xff));
10601       case 0x00ca: return((CHAR)(230 & 0xff));
10602       case 0x00cb: return((CHAR)(232 & 0xff));
10603       case 0x00cc: return((CHAR)(237 & 0xff));
10604       case 0x00cd: return((CHAR)(234 & 0xff));
10605       case 0x00ce: return((CHAR)(235 & 0xff));
10606       case 0x00cf: return((CHAR)(236 & 0xff));
10607       case 0x2039: return((CHAR)(220 & 0xff));
10608       case 0x00d1: return((CHAR)(132 & 0xff));
10609       case 0x00d2: return((CHAR)(241 & 0xff));
10610       case 0x00d3: return((CHAR)(238 & 0xff));
10611       case 0x00d4: return((CHAR)(239 & 0xff));
10612       case 0x00d5: return((CHAR)(205 & 0xff));
10613       case 0x00d6: return((CHAR)(133 & 0xff));
10614       case 0x00d8: return((CHAR)(175 & 0xff));
10615       case 0x00d9: return((CHAR)(244 & 0xff));
10616       case 0x00da: return((CHAR)(242 & 0xff));
10617       case 0x00db: return((CHAR)(243 & 0xff));
10618       case 0x00dc: return((CHAR)(134 & 0xff));
10619       case 0x2020: return((CHAR)(160 & 0xff));
10620       case 0xfb01: return((CHAR)(222 & 0xff));
10621       case 0x00df: return((CHAR)(167 & 0xff));
10622       case 0x00e0: return((CHAR)(136 & 0xff));
10623       case 0x00e1: return((CHAR)(135 & 0xff));
10624       case 0x00e2: return((CHAR)(137 & 0xff));
10625       case 0x00e3: return((CHAR)(139 & 0xff));
10626       case 0x00e4: return((CHAR)(138 & 0xff));
10627       case 0x00e5: return((CHAR)(140 & 0xff));
10628       case 0x00e6: return((CHAR)(190 & 0xff));
10629       case 0x00e7: return((CHAR)(141 & 0xff));
10630       case 0x00e8: return((CHAR)(143 & 0xff));
10631       case 0x00e9: return((CHAR)(142 & 0xff));
10632       case 0x00ea: return((CHAR)(144 & 0xff));
10633       case 0x00eb: return((CHAR)(145 & 0xff));
10634       case 0x00ec: return((CHAR)(147 & 0xff));
10635       case 0x00ed: return((CHAR)(146 & 0xff));
10636       case 0x00ee: return((CHAR)(148 & 0xff));
10637       case 0x00ef: return((CHAR)(149 & 0xff));
10638       case 0x203a: return((CHAR)(221 & 0xff));
10639       case 0x00f1: return((CHAR)(150 & 0xff));
10640       case 0x00f2: return((CHAR)(152 & 0xff));
10641       case 0x00f3: return((CHAR)(151 & 0xff));
10642       case 0x00f4: return((CHAR)(153 & 0xff));
10643       case 0x00f5: return((CHAR)(155 & 0xff));
10644       case 0x00f6: return((CHAR)(154 & 0xff));
10645       case 0x00f7: return((CHAR)(214 & 0xff));
10646       case 0x00f8: return((CHAR)(191 & 0xff));
10647       case 0x00f9: return((CHAR)(157 & 0xff));
10648       case 0x00fa: return((CHAR)(156 & 0xff));
10649       case 0x00fb: return((CHAR)(158 & 0xff));
10650       case 0x00fc: return((CHAR)(159 & 0xff));
10651       case 0x2021: return((CHAR)(224 & 0xff));
10652       case 0xfb02: return((CHAR)(223 & 0xff));
10653       case 0x00ff: return((CHAR)(216 & 0xff));
10654       case 0x0131: return((CHAR)(245 & 0xff));
10655       case 0x0152: return((CHAR)(206 & 0xff));
10656       case 0x0153: return((CHAR)(207 & 0xff));
10657       case 0x0178: return((CHAR)(217 & 0xff));
10658       case 0x0192: return((CHAR)(196 & 0xff));
10659       case 0x02c6: return((CHAR)(246 & 0xff));
10660       case 0x02c7: return((CHAR)(255 & 0xff));
10661       case 0x02d8: return((CHAR)(249 & 0xff));
10662       case 0x02d9: return((CHAR)(250 & 0xff));
10663       case 0x02da: return((CHAR)(251 & 0xff));
10664       case 0x02db: return((CHAR)(254 & 0xff));
10665       case 0x02dc: return((CHAR)(247 & 0xff));
10666       case 0x02dd: return((CHAR)(253 & 0xff));
10667       case 0x03c0: return((CHAR)(185 & 0xff));
10668       case 0x2013: return((CHAR)(208 & 0xff));
10669       case 0x2014: return((CHAR)(209 & 0xff));
10670       case 0x2018: return((CHAR)(212 & 0xff));
10671       case 0x2019: return((CHAR)(213 & 0xff));
10672       case 0x201a: return((CHAR)(226 & 0xff));
10673       case 0x201c: return((CHAR)(210 & 0xff));
10674       case 0x201d: return((CHAR)(211 & 0xff));
10675       case 0x201e: return((CHAR)(227 & 0xff));
10676       case 0x2022: return((CHAR)(165 & 0xff));
10677       case 0x2026: return((CHAR)(201 & 0xff));
10678       case 0x2030: return((CHAR)(228 & 0xff));
10679       case 0x2044: return((CHAR)(218 & 0xff));
10680       case 0x2122: return((CHAR)(170 & 0xff));
10681       case 0x03a9: return((CHAR)(189 & 0xff));
10682       case 0x2202: return((CHAR)(182 & 0xff));
10683       case 0x2206: return((CHAR)(198 & 0xff));
10684       case 0x220f: return((CHAR)(184 & 0xff));
10685       case 0x2211: return((CHAR)(183 & 0xff));
10686       case 0x221a: return((CHAR)(195 & 0xff));
10687       case 0x221e: return((CHAR)(176 & 0xff));
10688       case 0x222b: return((CHAR)(186 & 0xff));
10689       case 0x2248: return((CHAR)(197 & 0xff));
10690       case 0x2260: return((CHAR)(173 & 0xff));
10691       case 0x2264: return((CHAR)(178 & 0xff));
10692       case 0x2265: return((CHAR)(179 & 0xff));
10693       case 0x25ca: return((CHAR)(215 & 0xff));
10694       case 0xf8ff: return((CHAR)(240 & 0xff));
10695       default: return(tx_punc(c));
10696     }
10697 }
10698
10699 int                                     /* HP Roman-8 */
10700 #ifdef CK_ANSIC
10701 tx_hproman8(USHORT c)
10702 #else
10703 tx_hproman8(c) USHORT c;
10704 #endif /* CK_ANSIC */
10705 {
10706     if (c < 0xa0)
10707       return((CHAR)(c & 0xff));
10708     switch(c) {
10709       case 0x00a0: return((CHAR)(160 & 0xff));
10710       case 0x00a1: return((CHAR)(171 & 0xff));
10711       case 0x00a2: return((CHAR)(167 & 0xff));
10712       case 0x00a3: return((CHAR)(168 & 0xff));
10713       case 0x00a4: return((CHAR)(166 & 0xff));
10714       case 0x00a5: return((CHAR)(181 & 0xff));
10715       case 0x00a7: return((CHAR)(187 & 0xff));
10716       case 0x00a8: return((CHAR)(189 & 0xff));
10717       case 0x00a9: return((CHAR)(173 & 0xff));
10718       case 0x00aa: return((CHAR)(169 & 0xff));
10719       case 0x00ab: return((CHAR)(177 & 0xff));
10720       case 0x00ac: return((CHAR)(161 & 0xff));
10721       case 0x00ae: return((CHAR)(174 & 0xff));
10722       case 0x00b0: return((CHAR)(188 & 0xff));
10723       case 0x00b1: return((CHAR)(182 & 0xff));
10724       case 0x00b2: return((CHAR)(164 & 0xff));
10725       case 0x00b3: return((CHAR)(165 & 0xff));
10726       case 0x00b4: return((CHAR)(190 & 0xff));
10727       case 0x00b5: return((CHAR)(163 & 0xff));
10728       case 0x00b6: return((CHAR)(178 & 0xff));
10729       case 0x00b7: return((CHAR)(185 & 0xff));
10730       case 0x00b8: return((CHAR)(186 & 0xff));
10731       case 0x00ba: return((CHAR)(170 & 0xff));
10732       case 0x00bb: return((CHAR)(176 & 0xff));
10733       case 0x00bd: return((CHAR)(162 & 0xff));
10734       case 0x00bf: return((CHAR)(172 & 0xff));
10735       case 0x00c0: return((CHAR)(193 & 0xff));
10736       case 0x00c1: return((CHAR)(192 & 0xff));
10737       case 0x00c2: return((CHAR)(194 & 0xff));
10738       case 0x00c3: return((CHAR)(196 & 0xff));
10739       case 0x00c4: return((CHAR)(195 & 0xff));
10740       case 0x00c5: return((CHAR)(197 & 0xff));
10741       case 0x00c6: return((CHAR)(198 & 0xff));
10742       case 0x00c7: return((CHAR)(199 & 0xff));
10743       case 0x00c8: return((CHAR)(201 & 0xff));
10744       case 0x00c9: return((CHAR)(200 & 0xff));
10745       case 0x00ca: return((CHAR)(202 & 0xff));
10746       case 0x00cb: return((CHAR)(203 & 0xff));
10747       case 0x00cc: return((CHAR)(205 & 0xff));
10748       case 0x00cd: return((CHAR)(204 & 0xff));
10749       case 0x00ce: return((CHAR)(206 & 0xff));
10750       case 0x00cf: return((CHAR)(207 & 0xff));
10751       case 0x00d1: return((CHAR)(208 & 0xff));
10752       case 0x00d2: return((CHAR)(210 & 0xff));
10753       case 0x00d3: return((CHAR)(209 & 0xff));
10754       case 0x00d4: return((CHAR)(211 & 0xff));
10755       case 0x00d5: return((CHAR)(213 & 0xff));
10756       case 0x00d6: return((CHAR)(212 & 0xff));
10757       case 0x00d8: return((CHAR)(214 & 0xff));
10758       case 0x00d9: return((CHAR)(217 & 0xff));
10759       case 0x00da: return((CHAR)(216 & 0xff));
10760       case 0x00db: return((CHAR)(218 & 0xff));
10761       case 0x00dc: return((CHAR)(219 & 0xff));
10762       case 0x00df: return((CHAR)(252 & 0xff));
10763       case 0x00e0: return((CHAR)(225 & 0xff));
10764       case 0x00e1: return((CHAR)(224 & 0xff));
10765       case 0x00e2: return((CHAR)(226 & 0xff));
10766       case 0x00e3: return((CHAR)(228 & 0xff));
10767       case 0x00e4: return((CHAR)(227 & 0xff));
10768       case 0x00e5: return((CHAR)(229 & 0xff));
10769       case 0x00e6: return((CHAR)(230 & 0xff));
10770       case 0x00e7: return((CHAR)(231 & 0xff));
10771       case 0x00e8: return((CHAR)(233 & 0xff));
10772       case 0x00e9: return((CHAR)(232 & 0xff));
10773       case 0x00ea: return((CHAR)(234 & 0xff));
10774       case 0x00eb: return((CHAR)(235 & 0xff));
10775       case 0x00ec: return((CHAR)(237 & 0xff));
10776       case 0x00ed: return((CHAR)(236 & 0xff));
10777       case 0x00ee: return((CHAR)(238 & 0xff));
10778       case 0x00ef: return((CHAR)(239 & 0xff));
10779       case 0x00f1: return((CHAR)(240 & 0xff));
10780       case 0x00f2: return((CHAR)(242 & 0xff));
10781       case 0x00f3: return((CHAR)(241 & 0xff));
10782       case 0x00f4: return((CHAR)(243 & 0xff));
10783       case 0x00f5: return((CHAR)(245 & 0xff));
10784       case 0x00f6: return((CHAR)(244 & 0xff));
10785       case 0x00f8: return((CHAR)(246 & 0xff));
10786       case 0x00f9: return((CHAR)(249 & 0xff));
10787       case 0x00fa: return((CHAR)(248 & 0xff));
10788       case 0x00fb: return((CHAR)(250 & 0xff));
10789       case 0x00fc: return((CHAR)(251 & 0xff));
10790       case 0x00ff: return((CHAR)(253 & 0xff));
10791       case 0x0153: return((CHAR)(247 & 0xff));
10792       case 0x0178: return((CHAR)(221 & 0xff));
10793       case 0x0192: return((CHAR)(180 & 0xff));
10794       case 0x0276: return((CHAR)(215 & 0xff));
10795       case 0x2021: return((CHAR)(175 & 0xff));
10796       case 0x2122: return((CHAR)(179 & 0xff));
10797       case 0x2191: return((CHAR)(191 & 0xff));
10798       case 0x2264: return((CHAR)(183 & 0xff));
10799       case 0x2265: return((CHAR)(184 & 0xff));
10800       case 0x2588: return((CHAR)(255 & 0xff));
10801       default: return(tx_punc(c));
10802     }
10803 }
10804
10805 int                                     /* PC Code Page 437 */
10806 #ifdef CK_ANSIC
10807 tx_cp437(USHORT c)
10808 #else
10809 tx_cp437(c) USHORT c;
10810 #endif /* CK_ANSIC */
10811 {
10812     if (c < 0x80)                       /* Has C1 graphics */
10813       return((CHAR)(c & 0xff));
10814     switch (c) {
10815       case 0x00a0: return((CHAR)(255 & 0xff));
10816       case 0x00a1: return((CHAR)(173 & 0xff));
10817       case 0x00a2: return((CHAR)(155 & 0xff));
10818       case 0x00a3: return((CHAR)(156 & 0xff));
10819       case 0x00a4: return((CHAR)(15 & 0xff));
10820       case 0x00a5: return((CHAR)(157 & 0xff));
10821       case 0x00a6: return((CHAR)(124 & 0xff));
10822       case 0x00a7: return((CHAR)(21 & 0xff));
10823       case 0x00a8: return((CHAR)(34 & 0xff));
10824       case 0x00a9: return((CHAR)(67 & 0xff));
10825       case 0x00aa: return((CHAR)(166 & 0xff));
10826       case 0x00ab: return((CHAR)(174 & 0xff));
10827       case 0x00ac: return((CHAR)(170 & 0xff));
10828       case 0x00ad: return((CHAR)(45 & 0xff));
10829       case 0x00ae: return((CHAR)(84 & 0xff));
10830       case 0x00af: return((CHAR)(22 & 0xff));
10831       case 0x00b0: return((CHAR)(248 & 0xff));
10832       case 0x00b1: return((CHAR)(241 & 0xff));
10833       case 0x00b2: return((CHAR)(253 & 0xff));
10834       case 0x00b3: return((CHAR)(51 & 0xff));
10835       case 0x00b4: return((CHAR)(39 & 0xff));
10836       case 0x00b5: return((CHAR)(230 & 0xff));
10837       case 0x00b6: return((CHAR)(20 & 0xff));
10838       case 0x00b7: return((CHAR)(250 & 0xff));
10839       case 0x00b8: return((CHAR)(44 & 0xff));
10840       case 0x00b9: return((CHAR)(49 & 0xff));
10841       case 0x00ba: return((CHAR)(167 & 0xff));
10842       case 0x00bb: return((CHAR)(175 & 0xff));
10843       case 0x00bc: return((CHAR)(172 & 0xff));
10844       case 0x00bd: return((CHAR)(171 & 0xff));
10845       case 0x00be: return((CHAR)(19 & 0xff));
10846       case 0x00bf: return((CHAR)(168 & 0xff));
10847       case 0x00c0: return((CHAR)(65 & 0xff));
10848       case 0x00c1: return((CHAR)(65 & 0xff));
10849       case 0x00c2: return((CHAR)(65 & 0xff));
10850       case 0x00c3: return((CHAR)(65 & 0xff));
10851       case 0x00c4: return((CHAR)(142 & 0xff));
10852       case 0x00c5: return((CHAR)(143 & 0xff));
10853       case 0x00c6: return((CHAR)(146 & 0xff));
10854       case 0x00c7: return((CHAR)(128 & 0xff));
10855       case 0x00c8: return((CHAR)(69 & 0xff));
10856       case 0x00c9: return((CHAR)(144 & 0xff));
10857       case 0x00ca: return((CHAR)(69 & 0xff));
10858       case 0x00cb: return((CHAR)(69 & 0xff));
10859       case 0x00cc: return((CHAR)(73 & 0xff));
10860       case 0x00cd: return((CHAR)(73 & 0xff));
10861       case 0x00ce: return((CHAR)(73 & 0xff));
10862       case 0x00cf: return((CHAR)(73 & 0xff));
10863       case 0x00d0: return((CHAR)(19 & 0xff));
10864       case 0x00d1: return((CHAR)(165 & 0xff));
10865       case 0x00d2: return((CHAR)(79 & 0xff));
10866       case 0x00d3: return((CHAR)(79 & 0xff));
10867       case 0x00d4: return((CHAR)(79 & 0xff));
10868       case 0x00d5: return((CHAR)(79 & 0xff));
10869       case 0x00d6: return((CHAR)(153 & 0xff));
10870       case 0x00d7: return((CHAR)(120 & 0xff));
10871       case 0x00d8: return((CHAR)(79 & 0xff));
10872       case 0x00d9: return((CHAR)(85 & 0xff));
10873       case 0x00da: return((CHAR)(85 & 0xff));
10874       case 0x00db: return((CHAR)(85 & 0xff));
10875       case 0x00dc: return((CHAR)(154 & 0xff));
10876       case 0x00dd: return((CHAR)(89 & 0xff));
10877       case 0x00de: return((CHAR)(19 & 0xff));
10878       case 0x00df: return((CHAR)(225 & 0xff));
10879       case 0x00e0: return((CHAR)(133 & 0xff));
10880       case 0x00e1: return((CHAR)(160 & 0xff));
10881       case 0x00e2: return((CHAR)(131 & 0xff));
10882       case 0x00e3: return((CHAR)(97 & 0xff)); /* a-tilde -> a (not 101 = e) */
10883       case 0x00e4: return((CHAR)(132 & 0xff));
10884       case 0x00e5: return((CHAR)(134 & 0xff));
10885       case 0x00e6: return((CHAR)(145 & 0xff));
10886       case 0x00e7: return((CHAR)(135 & 0xff));
10887       case 0x00e8: return((CHAR)(138 & 0xff));
10888       case 0x00e9: return((CHAR)(130 & 0xff));
10889       case 0x00ea: return((CHAR)(136 & 0xff));
10890       case 0x00eb: return((CHAR)(137 & 0xff));
10891       case 0x00ec: return((CHAR)(141 & 0xff));
10892       case 0x00ed: return((CHAR)(161 & 0xff));
10893       case 0x00ee: return((CHAR)(140 & 0xff));
10894       case 0x00ef: return((CHAR)(139 & 0xff));
10895       case 0x00f0: return((CHAR)(19 & 0xff));
10896       case 0x00f1: return((CHAR)(164 & 0xff));
10897       case 0x00f2: return((CHAR)(149 & 0xff));
10898       case 0x00f3: return((CHAR)(162 & 0xff));
10899       case 0x00f4: return((CHAR)(147 & 0xff));
10900       case 0x00f5: return((CHAR)(111 & 0xff));
10901       case 0x00f6: return((CHAR)(148 & 0xff));
10902       case 0x00f7: return((CHAR)(246 & 0xff));
10903       case 0x00f8: return((CHAR)(111 & 0xff));
10904       case 0x00f9: return((CHAR)(151 & 0xff));
10905       case 0x00fa: return((CHAR)(163 & 0xff));
10906       case 0x00fb: return((CHAR)(150 & 0xff));
10907       case 0x00fc: return((CHAR)(129 & 0xff));
10908       case 0x00fd: return((CHAR)(121 & 0xff));
10909       case 0x00fe: return((CHAR)(19 & 0xff));
10910       case 0x00ff: return((CHAR)(152 & 0xff));
10911       case 0x0192: return((CHAR)(159 & 0xff));
10912       case 0x0393: return((CHAR)(226 & 0xff));
10913       case 0x0398: return((CHAR)(233 & 0xff));
10914       case 0x03a3: return((CHAR)(228 & 0xff));
10915       case 0x03a6: return((CHAR)(232 & 0xff));
10916       case 0x03a9: return((CHAR)(234 & 0xff));
10917       case 0x03b1: return((CHAR)(224 & 0xff));
10918       case 0x03b4: return((CHAR)(235 & 0xff));
10919       case 0x03b5: return((CHAR)(238 & 0xff));
10920       case 0x03c0: return((CHAR)(227 & 0xff));
10921       case 0x03c3: return((CHAR)(229 & 0xff));
10922       case 0x03c4: return((CHAR)(231 & 0xff));
10923       case 0x03c6: return((CHAR)(237 & 0xff));
10924       case 0x207f: return((CHAR)(252 & 0xff));
10925       case 0x20a7: return((CHAR)(158 & 0xff));
10926       case 0x2219: return((CHAR)(249 & 0xff));
10927       case 0x221a: return((CHAR)(251 & 0xff));
10928       case 0x221e: return((CHAR)(236 & 0xff));
10929       case 0x2229: return((CHAR)(239 & 0xff));
10930       case 0x2248: return((CHAR)(247 & 0xff));
10931       case 0x2261: return((CHAR)(240 & 0xff));
10932       case 0x2264: return((CHAR)(243 & 0xff));
10933       case 0x2265: return((CHAR)(242 & 0xff));
10934       case 0x2310: return((CHAR)(169 & 0xff));
10935       case 0x2320: return((CHAR)(244 & 0xff));
10936       case 0x2321: return((CHAR)(245 & 0xff));
10937       case 0x2500: return((CHAR)(196 & 0xff));
10938       case 0x2502: return((CHAR)(179 & 0xff));
10939       case 0x250c: return((CHAR)(218 & 0xff));
10940       case 0x2510: return((CHAR)(191 & 0xff));
10941       case 0x2514: return((CHAR)(192 & 0xff));
10942       case 0x2518: return((CHAR)(217 & 0xff));
10943       case 0x251c: return((CHAR)(195 & 0xff));
10944       case 0x2524: return((CHAR)(180 & 0xff));
10945       case 0x252c: return((CHAR)(194 & 0xff));
10946       case 0x2534: return((CHAR)(193 & 0xff));
10947       case 0x253c: return((CHAR)(197 & 0xff));
10948       case 0x2550: return((CHAR)(205 & 0xff));
10949       case 0x2551: return((CHAR)(186 & 0xff));
10950       case 0x2552: return((CHAR)(213 & 0xff));
10951       case 0x2553: return((CHAR)(214 & 0xff));
10952       case 0x2554: return((CHAR)(201 & 0xff));
10953       case 0x2555: return((CHAR)(184 & 0xff));
10954       case 0x2556: return((CHAR)(183 & 0xff));
10955       case 0x2557: return((CHAR)(187 & 0xff));
10956       case 0x2558: return((CHAR)(212 & 0xff));
10957       case 0x2559: return((CHAR)(211 & 0xff));
10958       case 0x255a: return((CHAR)(200 & 0xff));
10959       case 0x255b: return((CHAR)(190 & 0xff));
10960       case 0x255c: return((CHAR)(189 & 0xff));
10961       case 0x255d: return((CHAR)(188 & 0xff));
10962       case 0x255e: return((CHAR)(198 & 0xff));
10963       case 0x255f: return((CHAR)(199 & 0xff));
10964       case 0x2560: return((CHAR)(204 & 0xff));
10965       case 0x2561: return((CHAR)(181 & 0xff));
10966       case 0x2562: return((CHAR)(182 & 0xff));
10967       case 0x2563: return((CHAR)(185 & 0xff));
10968       case 0x2564: return((CHAR)(209 & 0xff));
10969       case 0x2565: return((CHAR)(210 & 0xff));
10970       case 0x2566: return((CHAR)(203 & 0xff));
10971       case 0x2567: return((CHAR)(207 & 0xff));
10972       case 0x2568: return((CHAR)(208 & 0xff));
10973       case 0x2569: return((CHAR)(202 & 0xff));
10974       case 0x256a: return((CHAR)(216 & 0xff));
10975       case 0x256b: return((CHAR)(215 & 0xff));
10976       case 0x256c: return((CHAR)(206 & 0xff));
10977       case 0x2580: return((CHAR)(223 & 0xff));
10978       case 0x2584: return((CHAR)(220 & 0xff));
10979       case 0x2588: return((CHAR)(219 & 0xff));
10980       case 0x258c: return((CHAR)(221 & 0xff));
10981       case 0x2590: return((CHAR)(222 & 0xff));
10982       case 0x2591: return((CHAR)(176 & 0xff));
10983       case 0x2592: return((CHAR)(177 & 0xff));
10984       case 0x2593: return((CHAR)(178 & 0xff));
10985       case 0x25a0: return((CHAR)(254 & 0xff)); /* Black square */
10986       default: return(tx_cpsub(c));     /* For box characters etc */
10987     }
10988 }
10989
10990 int                                     /* Mazovia */
10991 #ifdef CK_ANSIC
10992 tx_mazovia(USHORT c)
10993 #else
10994 tx_mazovia(c) USHORT c;
10995 #endif /* CK_ANSIC */
10996 {
10997     if (c < 0x80)                       /* Has C1 graphics */
10998       return((CHAR)(c & 0xff));
10999     switch (c) {
11000       case 0x00d3: return((CHAR)0xa3 & 0xff);   /* O acute */
11001       case 0x00f3: return((CHAR)0xa2 & 0xff);   /* O acute */
11002       case 0x0104: return((CHAR)0x8f & 0xff);   /* A Ogonek */
11003       case 0x0105: return((CHAR)0x86 & 0xff);   /* a Ogonek */
11004       case 0x0106: return((CHAR)0x95 & 0xff);   /* C acute */
11005       case 0x0107: return((CHAR)0x8d & 0xff);   /* c acute */
11006       case 0x0118: return((CHAR)0x90 & 0xff);   /* E Ogonek */
11007       case 0x0119: return((CHAR)0x91 & 0xff);   /* E Ogonek */
11008       case 0x0141: return((CHAR)0x9c & 0xff);   /* L stroke */
11009       case 0x0142: return((CHAR)0x92 & 0xff);   /* L stroke */
11010       case 0x0143: return((CHAR)0xa5 & 0xff);   /* N acute */
11011       case 0x0144: return((CHAR)0xa4 & 0xff);   /* N acute */
11012       case 0x015a: return((CHAR)0x98 & 0xff);   /* S acute */
11013       case 0x015b: return((CHAR)0x9e & 0xff);   /* S acute */
11014       case 0x0179: return((CHAR)0xa0 & 0xff);   /* Z acute */
11015       case 0x017a: return((CHAR)0xa6 & 0xff);   /* Z acute */
11016       case 0x017b: return((CHAR)0xa1 & 0xff);   /* Z dot above */
11017       case 0x017c: return((CHAR)0xa7 & 0xff);   /* Z dot above */
11018       default: return(tx_cp437(c));
11019     }
11020 }
11021
11022 int                                     /* PC Code Page 850 */
11023 #ifdef CK_ANSIC
11024 tx_cp850(USHORT c)
11025 #else
11026 tx_cp850(c) USHORT c;
11027 #endif /* CK_ANSIC */
11028 {
11029     if (c < 0x80)                       /* Has C1 graphics */
11030       return((CHAR)(c & 0xff));
11031     switch (c) {
11032       case 0x00a0: return((CHAR)(255 & 0xff));
11033       case 0x00a1: return((CHAR)(173 & 0xff));
11034       case 0x00a2: return((CHAR)(189 & 0xff));
11035       case 0x00a3: return((CHAR)(156 & 0xff));
11036       case 0x00a4: return((CHAR)(207 & 0xff));
11037       case 0x00a5: return((CHAR)(190 & 0xff));
11038       case 0x00a6: return((CHAR)(221 & 0xff));
11039       case 0x00a7: return((CHAR)(245 & 0xff));
11040       case 0x00a8: return((CHAR)(249 & 0xff));
11041       case 0x00a9: return((CHAR)(184 & 0xff));
11042       case 0x00aa: return((CHAR)(166 & 0xff));
11043       case 0x00ab: return((CHAR)(174 & 0xff));
11044       case 0x00ac: return((CHAR)(170 & 0xff));
11045       case 0x00ad: return((CHAR)(240 & 0xff));
11046       case 0x00ae: return((CHAR)(169 & 0xff));
11047       case 0x00af: return((CHAR)(238 & 0xff));
11048       case 0x00b0: return((CHAR)(248 & 0xff));
11049       case 0x00b1: return((CHAR)(241 & 0xff));
11050       case 0x00b2: return((CHAR)(253 & 0xff));
11051       case 0x00b3: return((CHAR)(252 & 0xff));
11052       case 0x00b4: return((CHAR)(239 & 0xff));
11053       case 0x00b5: return((CHAR)(230 & 0xff));
11054       case 0x00b6: return((CHAR)(244 & 0xff));
11055       case 0x00b7: return((CHAR)(250 & 0xff));
11056       case 0x00b8: return((CHAR)(247 & 0xff));
11057       case 0x00b9: return((CHAR)(251 & 0xff));
11058       case 0x00ba: return((CHAR)(167 & 0xff));
11059       case 0x00bb: return((CHAR)(175 & 0xff));
11060       case 0x00bc: return((CHAR)(172 & 0xff));
11061       case 0x00bd: return((CHAR)(171 & 0xff));
11062       case 0x00be: return((CHAR)(243 & 0xff));
11063       case 0x00bf: return((CHAR)(168 & 0xff));
11064       case 0x00c0: return((CHAR)(183 & 0xff));
11065       case 0x00c1: return((CHAR)(181 & 0xff));
11066       case 0x00c2: return((CHAR)(182 & 0xff));
11067       case 0x00c3: return((CHAR)(199 & 0xff));
11068       case 0x00c4: return((CHAR)(142 & 0xff));
11069       case 0x00c5: return((CHAR)(143 & 0xff));
11070       case 0x00c6: return((CHAR)(146 & 0xff));
11071       case 0x00c7: return((CHAR)(128 & 0xff));
11072       case 0x00c8: return((CHAR)(212 & 0xff));
11073       case 0x00c9: return((CHAR)(144 & 0xff));
11074       case 0x00ca: return((CHAR)(210 & 0xff));
11075       case 0x00cb: return((CHAR)(211 & 0xff));
11076       case 0x00cc: return((CHAR)(222 & 0xff));
11077       case 0x00cd: return((CHAR)(214 & 0xff));
11078       case 0x00ce: return((CHAR)(215 & 0xff));
11079       case 0x00cf: return((CHAR)(216 & 0xff));
11080       case 0x00d0: return((CHAR)(209 & 0xff));
11081       case 0x00d1: return((CHAR)(165 & 0xff));
11082       case 0x00d2: return((CHAR)(227 & 0xff));
11083       case 0x00d3: return((CHAR)(224 & 0xff));
11084       case 0x00d4: return((CHAR)(226 & 0xff));
11085       case 0x00d5: return((CHAR)(229 & 0xff));
11086       case 0x00d6: return((CHAR)(153 & 0xff));
11087       case 0x00d7: return((CHAR)(158 & 0xff));
11088       case 0x00d8: return((CHAR)(157 & 0xff));
11089       case 0x00d9: return((CHAR)(235 & 0xff));
11090       case 0x00da: return((CHAR)(233 & 0xff));
11091       case 0x00db: return((CHAR)(234 & 0xff));
11092       case 0x00dc: return((CHAR)(154 & 0xff));
11093       case 0x00dd: return((CHAR)(237 & 0xff));
11094       case 0x00de: return((CHAR)(232 & 0xff));
11095       case 0x00df: return((CHAR)(225 & 0xff));
11096       case 0x00e0: return((CHAR)(133 & 0xff));
11097       case 0x00e1: return((CHAR)(160 & 0xff));
11098       case 0x00e2: return((CHAR)(131 & 0xff));
11099       case 0x00e3: return((CHAR)(198 & 0xff));
11100       case 0x00e4: return((CHAR)(132 & 0xff));
11101       case 0x00e5: return((CHAR)(134 & 0xff));
11102       case 0x00e6: return((CHAR)(145 & 0xff));
11103       case 0x00e7: return((CHAR)(135 & 0xff));
11104       case 0x00e8: return((CHAR)(138 & 0xff));
11105       case 0x00e9: return((CHAR)(130 & 0xff));
11106       case 0x00ea: return((CHAR)(136 & 0xff));
11107       case 0x00eb: return((CHAR)(137 & 0xff));
11108       case 0x00ec: return((CHAR)(141 & 0xff));
11109       case 0x00ed: return((CHAR)(161 & 0xff));
11110       case 0x00ee: return((CHAR)(140 & 0xff));
11111       case 0x00ef: return((CHAR)(139 & 0xff));
11112       case 0x00f0: return((CHAR)(208 & 0xff));
11113       case 0x00f1: return((CHAR)(164 & 0xff));
11114       case 0x00f2: return((CHAR)(149 & 0xff));
11115       case 0x00f3: return((CHAR)(162 & 0xff));
11116       case 0x00f4: return((CHAR)(147 & 0xff));
11117       case 0x00f5: return((CHAR)(228 & 0xff));
11118       case 0x00f6: return((CHAR)(148 & 0xff));
11119       case 0x00f7: return((CHAR)(246 & 0xff));
11120       case 0x00f8: return((CHAR)(155 & 0xff));
11121       case 0x00f9: return((CHAR)(151 & 0xff));
11122       case 0x00fa: return((CHAR)(163 & 0xff));
11123       case 0x00fb: return((CHAR)(150 & 0xff));
11124       case 0x00fc: return((CHAR)(129 & 0xff));
11125       case 0x00fd: return((CHAR)(236 & 0xff));
11126       case 0x00fe: return((CHAR)(231 & 0xff));
11127       case 0x00ff: return((CHAR)(152 & 0xff));
11128       case 0x0131: return((CHAR)(213 & 0xff));
11129       case 0x0192: return((CHAR)(159 & 0xff));
11130       case 0x2017: return((CHAR)(242 & 0xff));
11131       case 0x2500: return((CHAR)(196 & 0xff));
11132       case 0x2502: return((CHAR)(179 & 0xff));
11133       case 0x250c: return((CHAR)(218 & 0xff));
11134       case 0x2510: return((CHAR)(191 & 0xff));
11135       case 0x2514: return((CHAR)(192 & 0xff));
11136       case 0x2518: return((CHAR)(217 & 0xff));
11137       case 0x251c: return((CHAR)(195 & 0xff));
11138       case 0x2524: return((CHAR)(180 & 0xff));
11139       case 0x252c: return((CHAR)(194 & 0xff));
11140       case 0x2534: return((CHAR)(193 & 0xff));
11141       case 0x253c: return((CHAR)(197 & 0xff));
11142       case 0x2550: return((CHAR)(205 & 0xff));
11143       case 0x2551: return((CHAR)(186 & 0xff));
11144       case 0x2554: return((CHAR)(201 & 0xff));
11145       case 0x2557: return((CHAR)(187 & 0xff));
11146       case 0x255a: return((CHAR)(200 & 0xff));
11147       case 0x255d: return((CHAR)(188 & 0xff));
11148       case 0x2560: return((CHAR)(204 & 0xff));
11149       case 0x2563: return((CHAR)(185 & 0xff));
11150       case 0x2566: return((CHAR)(203 & 0xff));
11151       case 0x2569: return((CHAR)(202 & 0xff));
11152       case 0x256c: return((CHAR)(206 & 0xff));
11153       case 0x2580: return((CHAR)(223 & 0xff));
11154       case 0x2584: return((CHAR)(220 & 0xff));
11155       case 0x2588: return((CHAR)(219 & 0xff));
11156       case 0x2591: return((CHAR)(176 & 0xff));
11157       case 0x2592: return((CHAR)(177 & 0xff));
11158       case 0x2593: return((CHAR)(178 & 0xff));
11159       case 0x25a0: return((CHAR)(254 & 0xff));
11160       default: return(tx_cpsub(c));     /* For box characters etc */
11161     }
11162 }
11163
11164 int                                     /* PC Code Page 858 */
11165 #ifdef CK_ANSIC
11166 tx_cp858(USHORT c)
11167 #else
11168 tx_cp858(c) USHORT c;
11169 #endif /* CK_ANSIC */
11170 {
11171     if (c < 0x80)                       /* Has C1 graphics */
11172       return((CHAR)(c & 0xff));
11173     switch (c) {
11174       case 0x00a0: return((CHAR)(255 & 0xff));
11175       case 0x00a1: return((CHAR)(173 & 0xff));
11176       case 0x00a2: return((CHAR)(189 & 0xff));
11177       case 0x00a3: return((CHAR)(156 & 0xff));
11178       case 0x00a4: return((CHAR)(207 & 0xff));
11179       case 0x00a5: return((CHAR)(190 & 0xff));
11180       case 0x00a6: return((CHAR)(221 & 0xff));
11181       case 0x00a7: return((CHAR)(245 & 0xff));
11182       case 0x00a8: return((CHAR)(249 & 0xff));
11183       case 0x00a9: return((CHAR)(184 & 0xff));
11184       case 0x00aa: return((CHAR)(166 & 0xff));
11185       case 0x00ab: return((CHAR)(174 & 0xff));
11186       case 0x00ac: return((CHAR)(170 & 0xff));
11187       case 0x00ad: return((CHAR)(240 & 0xff));
11188       case 0x00ae: return((CHAR)(169 & 0xff));
11189       case 0x00af: return((CHAR)(238 & 0xff));
11190       case 0x00b0: return((CHAR)(248 & 0xff));
11191       case 0x00b1: return((CHAR)(241 & 0xff));
11192       case 0x00b2: return((CHAR)(253 & 0xff));
11193       case 0x00b3: return((CHAR)(252 & 0xff));
11194       case 0x00b4: return((CHAR)(239 & 0xff));
11195       case 0x00b5: return((CHAR)(230 & 0xff));
11196       case 0x00b6: return((CHAR)(244 & 0xff));
11197       case 0x00b7: return((CHAR)(250 & 0xff));
11198       case 0x00b8: return((CHAR)(247 & 0xff));
11199       case 0x00b9: return((CHAR)(251 & 0xff));
11200       case 0x00ba: return((CHAR)(167 & 0xff));
11201       case 0x00bb: return((CHAR)(175 & 0xff));
11202       case 0x00bc: return((CHAR)(172 & 0xff));
11203       case 0x00bd: return((CHAR)(171 & 0xff));
11204       case 0x00be: return((CHAR)(243 & 0xff));
11205       case 0x00bf: return((CHAR)(168 & 0xff));
11206       case 0x00c0: return((CHAR)(183 & 0xff));
11207       case 0x00c1: return((CHAR)(181 & 0xff));
11208       case 0x00c2: return((CHAR)(182 & 0xff));
11209       case 0x00c3: return((CHAR)(199 & 0xff));
11210       case 0x00c4: return((CHAR)(142 & 0xff));
11211       case 0x00c5: return((CHAR)(143 & 0xff));
11212       case 0x00c6: return((CHAR)(146 & 0xff));
11213       case 0x00c7: return((CHAR)(128 & 0xff));
11214       case 0x00c8: return((CHAR)(212 & 0xff));
11215       case 0x00c9: return((CHAR)(144 & 0xff));
11216       case 0x00ca: return((CHAR)(210 & 0xff));
11217       case 0x00cb: return((CHAR)(211 & 0xff));
11218       case 0x00cc: return((CHAR)(222 & 0xff));
11219       case 0x00cd: return((CHAR)(214 & 0xff));
11220       case 0x00ce: return((CHAR)(215 & 0xff));
11221       case 0x00cf: return((CHAR)(216 & 0xff));
11222       case 0x00d0: return((CHAR)(209 & 0xff));
11223       case 0x00d1: return((CHAR)(165 & 0xff));
11224       case 0x00d2: return((CHAR)(227 & 0xff));
11225       case 0x00d3: return((CHAR)(224 & 0xff));
11226       case 0x00d4: return((CHAR)(226 & 0xff));
11227       case 0x00d5: return((CHAR)(229 & 0xff));
11228       case 0x00d6: return((CHAR)(153 & 0xff));
11229       case 0x00d7: return((CHAR)(158 & 0xff));
11230       case 0x00d8: return((CHAR)(157 & 0xff));
11231       case 0x00d9: return((CHAR)(235 & 0xff));
11232       case 0x00da: return((CHAR)(233 & 0xff));
11233       case 0x00db: return((CHAR)(234 & 0xff));
11234       case 0x00dc: return((CHAR)(154 & 0xff));
11235       case 0x00dd: return((CHAR)(237 & 0xff));
11236       case 0x00de: return((CHAR)(232 & 0xff));
11237       case 0x00df: return((CHAR)(225 & 0xff));
11238       case 0x00e0: return((CHAR)(133 & 0xff));
11239       case 0x00e1: return((CHAR)(160 & 0xff));
11240       case 0x00e2: return((CHAR)(131 & 0xff));
11241       case 0x00e3: return((CHAR)(198 & 0xff));
11242       case 0x00e4: return((CHAR)(132 & 0xff));
11243       case 0x00e5: return((CHAR)(134 & 0xff));
11244       case 0x00e6: return((CHAR)(145 & 0xff));
11245       case 0x00e7: return((CHAR)(135 & 0xff));
11246       case 0x00e8: return((CHAR)(138 & 0xff));
11247       case 0x00e9: return((CHAR)(130 & 0xff));
11248       case 0x00ea: return((CHAR)(136 & 0xff));
11249       case 0x00eb: return((CHAR)(137 & 0xff));
11250       case 0x00ec: return((CHAR)(141 & 0xff));
11251       case 0x00ed: return((CHAR)(161 & 0xff));
11252       case 0x00ee: return((CHAR)(140 & 0xff));
11253       case 0x00ef: return((CHAR)(139 & 0xff));
11254       case 0x00f0: return((CHAR)(208 & 0xff));
11255       case 0x00f1: return((CHAR)(164 & 0xff));
11256       case 0x00f2: return((CHAR)(149 & 0xff));
11257       case 0x00f3: return((CHAR)(162 & 0xff));
11258       case 0x00f4: return((CHAR)(147 & 0xff));
11259       case 0x00f5: return((CHAR)(228 & 0xff));
11260       case 0x00f6: return((CHAR)(148 & 0xff));
11261       case 0x00f7: return((CHAR)(246 & 0xff));
11262       case 0x00f8: return((CHAR)(155 & 0xff));
11263       case 0x00f9: return((CHAR)(151 & 0xff));
11264       case 0x00fa: return((CHAR)(163 & 0xff));
11265       case 0x00fb: return((CHAR)(150 & 0xff));
11266       case 0x00fc: return((CHAR)(129 & 0xff));
11267       case 0x00fd: return((CHAR)(236 & 0xff));
11268       case 0x00fe: return((CHAR)(231 & 0xff));
11269       case 0x00ff: return((CHAR)(152 & 0xff));
11270       case 0x20ac: return((CHAR)(213 & 0xff));
11271       case 0x0192: return((CHAR)(159 & 0xff));
11272       case 0x2017: return((CHAR)(242 & 0xff));
11273       case 0x2500: return((CHAR)(196 & 0xff));
11274       case 0x2502: return((CHAR)(179 & 0xff));
11275       case 0x250c: return((CHAR)(218 & 0xff));
11276       case 0x2510: return((CHAR)(191 & 0xff));
11277       case 0x2514: return((CHAR)(192 & 0xff));
11278       case 0x2518: return((CHAR)(217 & 0xff));
11279       case 0x251c: return((CHAR)(195 & 0xff));
11280       case 0x2524: return((CHAR)(180 & 0xff));
11281       case 0x252c: return((CHAR)(194 & 0xff));
11282       case 0x2534: return((CHAR)(193 & 0xff));
11283       case 0x253c: return((CHAR)(197 & 0xff));
11284       case 0x2550: return((CHAR)(205 & 0xff));
11285       case 0x2551: return((CHAR)(186 & 0xff));
11286       case 0x2554: return((CHAR)(201 & 0xff));
11287       case 0x2557: return((CHAR)(187 & 0xff));
11288       case 0x255a: return((CHAR)(200 & 0xff));
11289       case 0x255d: return((CHAR)(188 & 0xff));
11290       case 0x2560: return((CHAR)(204 & 0xff));
11291       case 0x2563: return((CHAR)(185 & 0xff));
11292       case 0x2566: return((CHAR)(203 & 0xff));
11293       case 0x2569: return((CHAR)(202 & 0xff));
11294       case 0x256c: return((CHAR)(206 & 0xff));
11295       case 0x2580: return((CHAR)(223 & 0xff));
11296       case 0x2584: return((CHAR)(220 & 0xff));
11297       case 0x2588: return((CHAR)(219 & 0xff));
11298       case 0x2591: return((CHAR)(176 & 0xff));
11299       case 0x2592: return((CHAR)(177 & 0xff));
11300       case 0x2593: return((CHAR)(178 & 0xff));
11301       case 0x25a0: return((CHAR)(254 & 0xff));
11302       default: return(tx_cpsub(c));     /* For box characters etc */
11303     }
11304 }
11305
11306 int                                     /* Windows Code Page 1250 (Latin-2) */
11307 #ifdef CK_ANSIC
11308 tx_cp1250(USHORT c)
11309 #else
11310 tx_cp1250(c) USHORT c;
11311 #endif /* CK_ANSIC */
11312 {
11313     if (c < 0x80 || (c > 0xbf && c <= 0xff)) /* Has C1 graphics */
11314       return((CHAR)(c & 0xff));
11315     switch (c) {
11316       case 0x002D: return((CHAR)(0xad & 0xff));
11317       case 0x00A0: return((CHAR)(0xa0 & 0xff));
11318       case 0x00A4: return((CHAR)(0xa4 & 0xff));
11319       case 0x00A6: return((CHAR)(0xa6 & 0xff));
11320       case 0x00A7: return((CHAR)(0xa7 & 0xff));
11321       case 0x00A8: return((CHAR)(0xa8 & 0xff));
11322       case 0x00A9: return((CHAR)(0xa9 & 0xff));
11323       case 0x00AB: return((CHAR)(0xab & 0xff));
11324       case 0x00AC: return((CHAR)(0xac & 0xff));
11325       case 0x00AE: return((CHAR)(0xae & 0xff));
11326       case 0x00B0: return((CHAR)(0xb0 & 0xff));
11327       case 0x00B1: return((CHAR)(0xb1 & 0xff));
11328       case 0x00B4: return((CHAR)(0xb4 & 0xff));
11329       case 0x00B5: return((CHAR)(0xb5 & 0xff));
11330       case 0x00B6: return((CHAR)(0xb6 & 0xff));
11331       case 0x00B7: return((CHAR)(0xb7 & 0xff));
11332       case 0x00B8: return((CHAR)(0xb8 & 0xff));
11333       case 0x00BB: return((CHAR)(0xbb & 0xff));
11334       case 0x0104: return((CHAR)(0xa5 & 0xff));
11335       case 0x0105: return((CHAR)(0xb9 & 0xff));
11336       case 0x013D: return((CHAR)(0xbc & 0xff));
11337       case 0x013E: return((CHAR)(0xbe & 0xff));
11338       case 0x0141: return((CHAR)(0xa3 & 0xff));
11339       case 0x0142: return((CHAR)(0xb3 & 0xff));
11340       case 0x015A: return((CHAR)(0x8c & 0xff)); /* S acute */
11341       case 0x015E: return((CHAR)(0xaa & 0xff));
11342       case 0x015F: return((CHAR)(0xba & 0xff));
11343       case 0x015b: return((CHAR)(0x9c & 0xff)); /* s acute */
11344       case 0x0164: return((CHAR)(0x8d & 0xff)); /* T caron */
11345       case 0x0165: return((CHAR)(0x9d & 0xff)); /* t caron */
11346       case 0x0173: return((CHAR)(0x9e & 0xff)); /* z caron */
11347       case 0x0179: return((CHAR)(0x8f & 0xff)); /* Z acute */
11348       case 0x017A: return((CHAR)(0x9f & 0xff)); /* z acute */
11349       case 0x017B: return((CHAR)(0xaf & 0xff));
11350       case 0x017C: return((CHAR)(0xbf & 0xff));
11351       case 0x017D: return((CHAR)(0x8e & 0xff)); /* Z caron */
11352       case 0x02C7: return((CHAR)(0xa1 & 0xff));
11353       case 0x02D8: return((CHAR)(0xa2 & 0xff));
11354       case 0x02DB: return((CHAR)(0xb2 & 0xff));
11355       case 0x02DD: return((CHAR)(0xbd & 0xff));
11356       case 0x2010: case 0x2011:         /* Hyphens */
11357         return((CHAR)(0x2d & 0xff));
11358       case 0x2012: case 0x2013:         /* en-dashes */
11359         return((CHAR)(0x96 & 0xff));
11360       case 0x2014: case 0x2015:         /* em-dashes */
11361         return((CHAR)(0x97 & 0xff));
11362       case 0x2018:                      /* Various quotation marks... */
11363         return((CHAR)(0x91 & 0xff));
11364       case 0x2019:
11365         return((CHAR)(0x92 & 0xff));
11366       case 0x201c:
11367         return((CHAR)(0x93 & 0xff));
11368       case 0x201d:
11369         return((CHAR)(0x94 & 0xff));
11370       case 0x201e:
11371         return((CHAR)(0x84 & 0xff));
11372       case 0x2020:                      /* Dagger */
11373         return((CHAR)(0x86 & 0xff));
11374       case 0x2021:                      /* Double Dagger */
11375         return((CHAR)(0x87 & 0xff));
11376       case 0x2022:                      /* Bullet */
11377         return((CHAR)(0x95 & 0xff));
11378       case 0x2026:                      /* Ellipsis */
11379         return((CHAR)(0x85 & 0xff));
11380       case 0x2030:                      /* Per mil */
11381         return((CHAR)(0x89 & 0xff));
11382       case 0x20AC:                      /* Euro */
11383           return((CHAR)(0x80 & 0xff));
11384       case 0x2122:                      /* Trade Mark */
11385         return((CHAR)(0x99 & 0xff));
11386       default: return(0x003f);
11387     }
11388 }
11389
11390 int                                     /* Windows Code Page 1251 (Cyrillic) */
11391 #ifdef CK_ANSIC
11392 tx_cp1251(USHORT c)
11393 #else
11394 tx_cp1251(c) USHORT c;
11395 #endif /* CK_ANSIC */
11396 {
11397     if (c < 0x80)                       /* Has C1 graphics */
11398       return((CHAR)(c & 0xff));
11399     /* This is simply the inverse of u_cp1251.map */
11400     switch (c) {
11401       case 0x003c: return((CHAR)(0x8b & 0xff));
11402       case 0x003e: return((CHAR)(0x9b & 0xff));
11403       case 0x007e: return((CHAR)(0x98 & 0xff));
11404       case 0x00A0: return((CHAR)(0xa0 & 0xff));
11405       case 0x00A4: return((CHAR)(0xa4 & 0xff));
11406       case 0x00A6: return((CHAR)(0xa6 & 0xff));
11407       case 0x00A7: return((CHAR)(0xa7 & 0xff));
11408       case 0x00A9: return((CHAR)(0xa9 & 0xff));
11409       case 0x00AB: return((CHAR)(0xab & 0xff));
11410       case 0x00AC: return((CHAR)(0xac & 0xff));
11411       case 0x00AD: return((CHAR)(0xad & 0xff));
11412       case 0x00AE: return((CHAR)(0xae & 0xff));
11413       case 0x00b0: return((CHAR)(0xb0 & 0xff));
11414       case 0x00b1: return((CHAR)(0xb1 & 0xff));
11415       case 0x00B5: return((CHAR)(0xb5 & 0xff));
11416       case 0x00B6: return((CHAR)(0xb6 & 0xff));
11417       case 0x00B7: return((CHAR)(0xb7 & 0xff));
11418       case 0x00BB: return((CHAR)(0xbb & 0xff));
11419       case 0x0401: return((CHAR)(0xa8 & 0xff));
11420       case 0x0402: return((CHAR)(0x80 & 0xff));
11421       case 0x0403: return((CHAR)(0x81 & 0xff));
11422       case 0x0404: return((CHAR)(0xaa & 0xff));
11423       case 0x0405: return((CHAR)(0xbd & 0xff));
11424       case 0x0406: return((CHAR)(0xb2 & 0xff));
11425       case 0x0407: return((CHAR)(0xaf & 0xff));
11426       case 0x0408: return((CHAR)(0xa3 & 0xff));
11427       case 0x0409: return((CHAR)(0x8a & 0xff));
11428       case 0x040a: return((CHAR)(0x8c & 0xff));
11429       case 0x040b: return((CHAR)(0x8e & 0xff));
11430       case 0x040c: return((CHAR)(0x8d & 0xff));
11431       case 0x040e: return((CHAR)(0xa1 & 0xff));
11432       case 0x040f: return((CHAR)(0x8f & 0xff));
11433       case 0x0410: return((CHAR)(0xc0 & 0xff));
11434       case 0x0411: return((CHAR)(0xc1 & 0xff));
11435       case 0x0412: return((CHAR)(0xc2 & 0xff));
11436       case 0x0413: return((CHAR)(0xc3 & 0xff));
11437       case 0x0414: return((CHAR)(0xc4 & 0xff));
11438       case 0x0415: return((CHAR)(0xc5 & 0xff));
11439       case 0x0416: return((CHAR)(0xc6 & 0xff));
11440       case 0x0417: return((CHAR)(0xc7 & 0xff));
11441       case 0x0418: return((CHAR)(0xc8 & 0xff));
11442       case 0x0419: return((CHAR)(0xc9 & 0xff));
11443       case 0x041a: return((CHAR)(0xca & 0xff));
11444       case 0x041b: return((CHAR)(0xcb & 0xff));
11445       case 0x041c: return((CHAR)(0xcc & 0xff));
11446       case 0x041d: return((CHAR)(0xcd & 0xff));
11447       case 0x041e: return((CHAR)(0xce & 0xff));
11448       case 0x041f: return((CHAR)(0xcf & 0xff));
11449       case 0x0420: return((CHAR)(0xd0 & 0xff));
11450       case 0x0421: return((CHAR)(0xd1 & 0xff));
11451       case 0x0422: return((CHAR)(0xd2 & 0xff));
11452       case 0x0423: return((CHAR)(0xd3 & 0xff));
11453       case 0x0424: return((CHAR)(0xd4 & 0xff));
11454       case 0x0425: return((CHAR)(0xd5 & 0xff));
11455       case 0x0426: return((CHAR)(0xd6 & 0xff));
11456       case 0x0427: return((CHAR)(0xd7 & 0xff));
11457       case 0x0428: return((CHAR)(0xd8 & 0xff));
11458       case 0x0429: return((CHAR)(0xd9 & 0xff));
11459       case 0x042a: return((CHAR)(0xda & 0xff));
11460       case 0x042b: return((CHAR)(0xdb & 0xff));
11461       case 0x042c: return((CHAR)(0xdc & 0xff));
11462       case 0x042d: return((CHAR)(0xdd & 0xff));
11463       case 0x042e: return((CHAR)(0xde & 0xff));
11464       case 0x042f: return((CHAR)(0xdf & 0xff));
11465       case 0x0430: return((CHAR)(0xe0 & 0xff));
11466       case 0x0431: return((CHAR)(0xe1 & 0xff));
11467       case 0x0432: return((CHAR)(0xe2 & 0xff));
11468       case 0x0433: return((CHAR)(0xe3 & 0xff));
11469       case 0x0434: return((CHAR)(0xe4 & 0xff));
11470       case 0x0435: return((CHAR)(0xe5 & 0xff));
11471       case 0x0436: return((CHAR)(0xe6 & 0xff));
11472       case 0x0437: return((CHAR)(0xe7 & 0xff));
11473       case 0x0438: return((CHAR)(0xe8 & 0xff));
11474       case 0x0439: return((CHAR)(0xe9 & 0xff));
11475       case 0x043a: return((CHAR)(0xea & 0xff));
11476       case 0x043b: return((CHAR)(0xeb & 0xff));
11477       case 0x043c: return((CHAR)(0xec & 0xff));
11478       case 0x043d: return((CHAR)(0xed & 0xff));
11479       case 0x043e: return((CHAR)(0xee & 0xff));
11480       case 0x043f: return((CHAR)(0xef & 0xff));
11481       case 0x0440: return((CHAR)(0xf0 & 0xff));
11482       case 0x0441: return((CHAR)(0xf1 & 0xff));
11483       case 0x0442: return((CHAR)(0xf2 & 0xff));
11484       case 0x0443: return((CHAR)(0xf3 & 0xff));
11485       case 0x0444: return((CHAR)(0xf4 & 0xff));
11486       case 0x0445: return((CHAR)(0xf5 & 0xff));
11487       case 0x0446: return((CHAR)(0xf6 & 0xff));
11488       case 0x0447: return((CHAR)(0xf7 & 0xff));
11489       case 0x0448: return((CHAR)(0xf8 & 0xff));
11490       case 0x0449: return((CHAR)(0xf9 & 0xff));
11491       case 0x044a: return((CHAR)(0xfa & 0xff));
11492       case 0x044b: return((CHAR)(0xfb & 0xff));
11493       case 0x044c: return((CHAR)(0xfc & 0xff));
11494       case 0x044d: return((CHAR)(0xfd & 0xff));
11495       case 0x044e: return((CHAR)(0xfe & 0xff));
11496       case 0x044f: return((CHAR)(0xff & 0xff));
11497       case 0x0451: return((CHAR)(0xb8 & 0xff));
11498       case 0x0452: return((CHAR)(0x90 & 0xff));
11499       case 0x0453: return((CHAR)(0x83 & 0xff));
11500       case 0x0454: return((CHAR)(0xba & 0xff));
11501       case 0x0455: return((CHAR)(0xbe & 0xff));
11502       case 0x0456: return((CHAR)(0xb3 & 0xff));
11503       case 0x0457: return((CHAR)(0xbf & 0xff));
11504       case 0x0458: return((CHAR)(0xbc & 0xff));
11505       case 0x0459: return((CHAR)(0x9a & 0xff));
11506       case 0x045a: return((CHAR)(0x9c & 0xff));
11507       case 0x045b: return((CHAR)(0x9e & 0xff));
11508       case 0x045c: return((CHAR)(0x9d & 0xff));
11509       case 0x045e: return((CHAR)(0xa2 & 0xff));
11510       case 0x045f: return((CHAR)(0x9f & 0xff));
11511       case 0x0490: return((CHAR)(0xa5 & 0xff));
11512       case 0x0491: return((CHAR)(0xb4 & 0xff));
11513       case 0x2012: return((CHAR)(0x96 & 0xff));
11514       case 0x2014: return((CHAR)(0x97 & 0xff));
11515       case 0x2018: return((CHAR)(0x91 & 0xff));
11516       case 0x2019: return((CHAR)(0x92 & 0xff));
11517       case 0x201a: return((CHAR)(0x82 & 0xff));
11518       case 0x201c: return((CHAR)(0x93 & 0xff));
11519       case 0x201d: return((CHAR)(0x94 & 0xff));
11520       case 0x201e: return((CHAR)(0x84 & 0xff));
11521       case 0x2020: return((CHAR)(0x86 & 0xff));
11522       case 0x2021: return((CHAR)(0x87 & 0xff));
11523       case 0x2022: return((CHAR)(0x95 & 0xff));
11524       case 0x2026: return((CHAR)(0x85 & 0xff));
11525       case 0x2031: return((CHAR)(0x89 & 0xff));
11526       case 0x20AC:                      /* Euro */
11527           return((CHAR)(0x88 & 0xff));
11528       case 0x2116: return((CHAR)(0xb9 & 0xff));
11529       case 0x2122: return((CHAR)(0x99 & 0xff));
11530       default: return(0x003f);
11531     }
11532 }
11533
11534 int /* Unicode to Windows Code Page 1252 (Latin-1) */
11535 #ifdef CK_ANSIC
11536 tx_cp1252(USHORT c)
11537 #else
11538 tx_cp1252(c) USHORT c;
11539 #endif /* CK_ANSIC */
11540 {
11541     if (c < 0x80 || (c > 0x9f && c <= 0xff)) /* Has C1 graphics */
11542       return((CHAR)(c & 0xff));
11543     switch (c) {
11544       case 0x0152:                      /* OE */
11545         return((CHAR)(0x8c & 0xff));
11546       case 0x0153:                      /* oe */
11547         return((CHAR)(0x9c & 0xff));
11548       case 0x0160:                      /* S caron */
11549         return((CHAR)(0x8a & 0xff));
11550       case 0x0161:                      /* s caron */
11551         return((CHAR)(0x9a & 0xff));
11552       case 0x0178:                      /* Y diaeresis */
11553         return((CHAR)(0x9f & 0xff));
11554       case 0x017D:                      /* Z caron */
11555         return((CHAR)(0x8e & 0xff));
11556       case 0x017E:                      /* z caron */
11557         return((CHAR)(0x9e & 0xff));
11558       case 0x0192:                      /* Florin */
11559         return((CHAR)(0x83 & 0xff));
11560       case 0x2010: case 0x2011:         /* Hyphens */
11561         return((CHAR)(0x2d & 0xff));
11562       case 0x2012: case 0x2013:         /* en-dashes */
11563         return((CHAR)(0x96 & 0xff));
11564       case 0x2014: case 0x2015:         /* em-dashes */
11565         return((CHAR)(0x97 & 0xff));
11566       case 0x2018:                      /* Various quotation marks... */
11567         return((CHAR)(0x91 & 0xff));
11568       case 0x2019:
11569         return((CHAR)(0x92 & 0xff));
11570       case 0x201c:
11571         return((CHAR)(0x93 & 0xff));
11572       case 0x201d:
11573         return((CHAR)(0x94 & 0xff));
11574       case 0x201e:
11575         return((CHAR)(0x84 & 0xff));
11576       case 0x2020:                      /* Dagger */
11577         return((CHAR)(0x86 & 0xff));
11578       case 0x2021:                      /* Double Dagger */
11579         return((CHAR)(0x87 & 0xff));
11580       case 0x2022:                      /* Bullet */
11581         return((CHAR)(0x95 & 0xff));
11582       case 0x2026:                      /* Ellipsis */
11583         return((CHAR)(0x85 & 0xff));
11584       case 0x2030:                      /* Per mil */
11585         return((CHAR)(0x89 & 0xff));
11586       case 0x20AC:                      /* Euro */
11587           return((CHAR)(0x80 & 0xff));
11588       case 0x2122:                      /* Trade Mark */
11589         return((CHAR)(0x99 & 0xff));
11590       default: return(0x003f);
11591     }
11592 }
11593
11594 int                                     /* PC Code Page 852 */
11595 #ifdef CK_ANSIC
11596 tx_cp852(USHORT c)
11597 #else
11598 tx_cp852(c) USHORT c;
11599 #endif /* CK_ANSIC */
11600 {
11601     if (c < 0x80)                       /* Has C1 graphics */
11602       return((CHAR)(c & 0xff));
11603     switch (c) {
11604       case 0x00a0: return((CHAR)(255 & 0xff));
11605       case 0x00a4: return((CHAR)(207 & 0xff));
11606       case 0x00a7: return((CHAR)(245 & 0xff));
11607       case 0x00a8: return((CHAR)(249 & 0xff));
11608       case 0x00ab: return((CHAR)(174 & 0xff));
11609       case 0x00ac: return((CHAR)(170 & 0xff));
11610       case 0x00ad: return((CHAR)(240 & 0xff));
11611       case 0x00b0: return((CHAR)(248 & 0xff));
11612       case 0x00b4: return((CHAR)(239 & 0xff));
11613       case 0x00b8: return((CHAR)(247 & 0xff));
11614       case 0x00bb: return((CHAR)(175 & 0xff));
11615       case 0x00c1: return((CHAR)(181 & 0xff));
11616       case 0x00c2: return((CHAR)(182 & 0xff));
11617       case 0x00c4: return((CHAR)(142 & 0xff));
11618       case 0x00c7: return((CHAR)(128 & 0xff));
11619       case 0x00c9: return((CHAR)(144 & 0xff));
11620       case 0x00cb: return((CHAR)(211 & 0xff));
11621       case 0x00cd: return((CHAR)(214 & 0xff));
11622       case 0x00ce: return((CHAR)(215 & 0xff));
11623       case 0x00d3: return((CHAR)(224 & 0xff));
11624       case 0x00d4: return((CHAR)(226 & 0xff));
11625       case 0x00d6: return((CHAR)(153 & 0xff));
11626       case 0x00d7: return((CHAR)(158 & 0xff));
11627       case 0x00da: return((CHAR)(233 & 0xff));
11628       case 0x00dc: return((CHAR)(154 & 0xff));
11629       case 0x00dd: return((CHAR)(237 & 0xff));
11630       case 0x00df: return((CHAR)(225 & 0xff));
11631       case 0x00e1: return((CHAR)(160 & 0xff));
11632       case 0x00e2: return((CHAR)(131 & 0xff));
11633       case 0x00e4: return((CHAR)(132 & 0xff));
11634       case 0x00e7: return((CHAR)(135 & 0xff));
11635       case 0x00e9: return((CHAR)(130 & 0xff));
11636       case 0x00eb: return((CHAR)(137 & 0xff));
11637       case 0x00ed: return((CHAR)(161 & 0xff));
11638       case 0x00ee: return((CHAR)(140 & 0xff));
11639       case 0x00f3: return((CHAR)(162 & 0xff));
11640       case 0x00f4: return((CHAR)(147 & 0xff));
11641       case 0x00f6: return((CHAR)(148 & 0xff));
11642       case 0x00f7: return((CHAR)(246 & 0xff));
11643       case 0x00fa: return((CHAR)(163 & 0xff));
11644       case 0x00fc: return((CHAR)(129 & 0xff));
11645       case 0x00fd: return((CHAR)(236 & 0xff));
11646       case 0x0102: return((CHAR)(198 & 0xff));
11647       case 0x0103: return((CHAR)(199 & 0xff));
11648       case 0x0104: return((CHAR)(164 & 0xff));
11649       case 0x0105: return((CHAR)(165 & 0xff));
11650       case 0x0106: return((CHAR)(143 & 0xff));
11651       case 0x0107: return((CHAR)(134 & 0xff));
11652       case 0x010c: return((CHAR)(172 & 0xff));
11653       case 0x010d: return((CHAR)(159 & 0xff));
11654       case 0x010e: return((CHAR)(210 & 0xff));
11655       case 0x010f: return((CHAR)(212 & 0xff));
11656       case 0x0110: return((CHAR)(209 & 0xff));
11657       case 0x0111: return((CHAR)(208 & 0xff));
11658       case 0x0118: return((CHAR)(168 & 0xff));
11659       case 0x0119: return((CHAR)(169 & 0xff));
11660       case 0x011a: return((CHAR)(183 & 0xff));
11661       case 0x011b: return((CHAR)(216 & 0xff));
11662       case 0x0139: return((CHAR)(145 & 0xff));
11663       case 0x013a: return((CHAR)(146 & 0xff));
11664       case 0x013d: return((CHAR)(149 & 0xff));
11665       case 0x013e: return((CHAR)(150 & 0xff));
11666       case 0x0141: return((CHAR)(157 & 0xff));
11667       case 0x0142: return((CHAR)(136 & 0xff));
11668       case 0x0143: return((CHAR)(227 & 0xff));
11669       case 0x0144: return((CHAR)(228 & 0xff));
11670       case 0x0147: return((CHAR)(213 & 0xff));
11671       case 0x0148: return((CHAR)(229 & 0xff));
11672       case 0x0150: return((CHAR)(138 & 0xff));
11673       case 0x0151: return((CHAR)(139 & 0xff));
11674       case 0x0154: return((CHAR)(232 & 0xff));
11675       case 0x0155: return((CHAR)(234 & 0xff));
11676       case 0x0158: return((CHAR)(252 & 0xff));
11677       case 0x0159: return((CHAR)(253 & 0xff));
11678       case 0x015a: return((CHAR)(151 & 0xff));
11679       case 0x015b: return((CHAR)(152 & 0xff));
11680       case 0x015e: return((CHAR)(184 & 0xff));
11681       case 0x015f: return((CHAR)(173 & 0xff));
11682       case 0x0160: return((CHAR)(230 & 0xff));
11683       case 0x0161: return((CHAR)(231 & 0xff));
11684       case 0x0162: return((CHAR)(221 & 0xff));
11685       case 0x0163: return((CHAR)(238 & 0xff));
11686       case 0x0164: return((CHAR)(155 & 0xff));
11687       case 0x0165: return((CHAR)(156 & 0xff));
11688       case 0x016e: return((CHAR)(222 & 0xff));
11689       case 0x016f: return((CHAR)(133 & 0xff));
11690       case 0x0170: return((CHAR)(235 & 0xff));
11691       case 0x0171: return((CHAR)(251 & 0xff));
11692       case 0x0179: return((CHAR)(141 & 0xff));
11693       case 0x017a: return((CHAR)(171 & 0xff));
11694       case 0x017b: return((CHAR)(189 & 0xff));
11695       case 0x017c: return((CHAR)(190 & 0xff));
11696       case 0x017d: return((CHAR)(166 & 0xff));
11697       case 0x017e: return((CHAR)(167 & 0xff));
11698       case 0x02c7: return((CHAR)(243 & 0xff));
11699       case 0x02d8: return((CHAR)(244 & 0xff));
11700       case 0x02d9: return((CHAR)(250 & 0xff));
11701       case 0x02db: return((CHAR)(242 & 0xff));
11702       case 0x02dd: return((CHAR)(241 & 0xff));
11703       case 0x2500: return((CHAR)(196 & 0xff));
11704       case 0x2502: return((CHAR)(179 & 0xff));
11705       case 0x250c: return((CHAR)(218 & 0xff));
11706       case 0x2510: return((CHAR)(191 & 0xff));
11707       case 0x2514: return((CHAR)(192 & 0xff));
11708       case 0x2518: return((CHAR)(217 & 0xff));
11709       case 0x251c: return((CHAR)(195 & 0xff));
11710       case 0x2524: return((CHAR)(180 & 0xff));
11711       case 0x252c: return((CHAR)(194 & 0xff));
11712       case 0x2534: return((CHAR)(193 & 0xff));
11713       case 0x253c: return((CHAR)(197 & 0xff));
11714       case 0x2550: return((CHAR)(205 & 0xff));
11715       case 0x2551: return((CHAR)(186 & 0xff));
11716       case 0x2554: return((CHAR)(201 & 0xff));
11717       case 0x2557: return((CHAR)(187 & 0xff));
11718       case 0x255a: return((CHAR)(200 & 0xff));
11719       case 0x255d: return((CHAR)(188 & 0xff));
11720       case 0x2560: return((CHAR)(204 & 0xff));
11721       case 0x2563: return((CHAR)(185 & 0xff));
11722       case 0x2566: return((CHAR)(203 & 0xff));
11723       case 0x2569: return((CHAR)(202 & 0xff));
11724       case 0x256c: return((CHAR)(206 & 0xff));
11725       case 0x2580: return((CHAR)(223 & 0xff));
11726       case 0x2584: return((CHAR)(220 & 0xff));
11727       case 0x2588: return((CHAR)(219 & 0xff));
11728       case 0x2591: return((CHAR)(176 & 0xff));
11729       case 0x2592: return((CHAR)(177 & 0xff));
11730       case 0x2593: return((CHAR)(178 & 0xff));
11731       case 0x25a0: return((CHAR)(254 & 0xff));
11732       default: return(tx_cpsub(c));     /* For box characters etc */
11733     }
11734 }
11735
11736 int                                     /* Windows Code Page 1253 (Greek) */
11737 #ifdef CK_ANSIC
11738 tx_cp1253(USHORT c)
11739 #else
11740 tx_cp1253(c) USHORT c;
11741 #endif /* CK_ANSIC */
11742 {
11743     if (c < 0x80)                       /* Has C1 graphics */
11744       return((CHAR)(c & 0xff));
11745     switch (c) {
11746       case 0x003c: return((CHAR)(0x8b & 0xff));
11747       case 0x003e: return((CHAR)(0x9b & 0xff));
11748       case 0x00A0: return((CHAR)(0xa0 & 0xff));
11749       case 0x00A3: return((CHAR)(0xa3 & 0xff));
11750       case 0x00A4: return((CHAR)(0xa4 & 0xff));
11751       case 0x00A5: return((CHAR)(0xa5 & 0xff));
11752       case 0x00A6: return((CHAR)(0xa6 & 0xff));
11753       case 0x00A7: return((CHAR)(0xa7 & 0xff));
11754       case 0x00A8: return((CHAR)(0xa8 & 0xff));
11755       case 0x00A9: return((CHAR)(0xa9 & 0xff));
11756       case 0x00AA: return((CHAR)(0xaa & 0xff));
11757       case 0x00AB: return((CHAR)(0xab & 0xff));
11758       case 0x00AC: return((CHAR)(0xac & 0xff));
11759       case 0x00AD: return((CHAR)(0xad & 0xff));
11760       case 0x00AE: return((CHAR)(0xae & 0xff));
11761       case 0x00AF: return((CHAR)(0xaf & 0xff));
11762       case 0x00B0: return((CHAR)(0xb0 & 0xff));
11763       case 0x00B1: return((CHAR)(0xb1 & 0xff));
11764       case 0x00B2: return((CHAR)(0xb2 & 0xff));
11765       case 0x00B3: return((CHAR)(0xb3 & 0xff));
11766       case 0x00B5: return((CHAR)(0xb5 & 0xff));
11767       case 0x00B6: return((CHAR)(0xb6 & 0xff));
11768       case 0x00b7: return((CHAR)(0xa1 & 0xff));
11769       case 0x00BB: return((CHAR)(0xbb & 0xff));
11770       case 0x00BD: return((CHAR)(0xbd & 0xff));
11771       case 0x0192: return((CHAR)(0x83 & 0xff));
11772       case 0x0386: return((CHAR)(0xa2 & 0xff));
11773       case 0x0388: return((CHAR)(0xb8 & 0xff));
11774       case 0x0389: return((CHAR)(0xb9 & 0xff));
11775       case 0x038A: return((CHAR)(0xba & 0xff));
11776       case 0x038C: return((CHAR)(0xbc & 0xff));
11777       case 0x038E: return((CHAR)(0xbe & 0xff));
11778       case 0x038F: return((CHAR)(0xbf & 0xff));
11779       case 0x0390: return((CHAR)(0xc0 & 0xff));
11780       case 0x0391: return((CHAR)(0xc1 & 0xff));
11781       case 0x0392: return((CHAR)(0xc2 & 0xff));
11782       case 0x0393: return((CHAR)(0xc3 & 0xff));
11783       case 0x0394: return((CHAR)(0xc4 & 0xff));
11784       case 0x0395: return((CHAR)(0xc5 & 0xff));
11785       case 0x0396: return((CHAR)(0xc6 & 0xff));
11786       case 0x0397: return((CHAR)(0xc7 & 0xff));
11787       case 0x0398: return((CHAR)(0xc8 & 0xff));
11788       case 0x0399: return((CHAR)(0xc9 & 0xff));
11789       case 0x039A: return((CHAR)(0xca & 0xff));
11790       case 0x039B: return((CHAR)(0xcb & 0xff));
11791       case 0x039C: return((CHAR)(0xcc & 0xff));
11792       case 0x039D: return((CHAR)(0xcd & 0xff));
11793       case 0x039E: return((CHAR)(0xce & 0xff));
11794       case 0x039F: return((CHAR)(0xcf & 0xff));
11795       case 0x03a0: return((CHAR)(0xd0 & 0xff));
11796       case 0x03a1: return((CHAR)(0xd1 & 0xff));
11797       case 0x03a3: return((CHAR)(0xd3 & 0xff));
11798       case 0x03a4: return((CHAR)(0xd4 & 0xff));
11799       case 0x03a5: return((CHAR)(0xd5 & 0xff));
11800       case 0x03a6: return((CHAR)(0xd6 & 0xff));
11801       case 0x03a7: return((CHAR)(0xd7 & 0xff));
11802       case 0x03a8: return((CHAR)(0xd8 & 0xff));
11803       case 0x03a9: return((CHAR)(0xd9 & 0xff));
11804       case 0x03aA: return((CHAR)(0xda & 0xff));
11805       case 0x03aB: return((CHAR)(0xdb & 0xff));
11806       case 0x03aC: return((CHAR)(0xdc & 0xff));
11807       case 0x03aD: return((CHAR)(0xdd & 0xff));
11808       case 0x03aE: return((CHAR)(0xde & 0xff));
11809       case 0x03aF: return((CHAR)(0xdf & 0xff));
11810       case 0x03b0: return((CHAR)(0xe0 & 0xff));
11811       case 0x03b1: return((CHAR)(0xe1 & 0xff));
11812       case 0x03b2: return((CHAR)(0xe2 & 0xff));
11813       case 0x03b3: return((CHAR)(0xe3 & 0xff));
11814       case 0x03b4: return((CHAR)(0xe4 & 0xff));
11815       case 0x03b5: return((CHAR)(0xe5 & 0xff));
11816       case 0x03b6: return((CHAR)(0xe6 & 0xff));
11817       case 0x03b7: return((CHAR)(0xe7 & 0xff));
11818       case 0x03b8: return((CHAR)(0xe8 & 0xff));
11819       case 0x03b9: return((CHAR)(0xe9 & 0xff));
11820       case 0x03bA: return((CHAR)(0xea & 0xff));
11821       case 0x03bB: return((CHAR)(0xeb & 0xff));
11822       case 0x03bC: return((CHAR)(0xec & 0xff));
11823       case 0x03bD: return((CHAR)(0xed & 0xff));
11824       case 0x03bE: return((CHAR)(0xee & 0xff));
11825       case 0x03bF: return((CHAR)(0xef & 0xff));
11826       case 0x03c0: return((CHAR)(0xf0 & 0xff));
11827       case 0x03c1: return((CHAR)(0xf1 & 0xff));
11828       case 0x03c2: return((CHAR)(0xf2 & 0xff));
11829       case 0x03c3: return((CHAR)(0xf3 & 0xff));
11830       case 0x03c4: return((CHAR)(0xf4 & 0xff));
11831       case 0x03c5: return((CHAR)(0xf5 & 0xff));
11832       case 0x03c6: return((CHAR)(0xf6 & 0xff));
11833       case 0x03c7: return((CHAR)(0xf7 & 0xff));
11834       case 0x03c8: return((CHAR)(0xf8 & 0xff));
11835       case 0x03c9: return((CHAR)(0xf9 & 0xff));
11836       case 0x03cA: return((CHAR)(0xfa & 0xff));
11837       case 0x03cB: return((CHAR)(0xfb & 0xff));
11838       case 0x03cC: return((CHAR)(0xfc & 0xff));
11839       case 0x03cD: return((CHAR)(0xfd & 0xff));
11840       case 0x03cE: return((CHAR)(0xfe & 0xff));
11841       case 0x2012: return((CHAR)(0x96 & 0xff));
11842       case 0x2014: return((CHAR)(0x97 & 0xff));
11843       case 0x2018: return((CHAR)(0x91 & 0xff));
11844       case 0x2019: return((CHAR)(0x92 & 0xff));
11845       case 0x201a: return((CHAR)(0x82 & 0xff));
11846       case 0x201c: return((CHAR)(0x93 & 0xff));
11847       case 0x201d: return((CHAR)(0x94 & 0xff));
11848       case 0x201e: return((CHAR)(0x84 & 0xff));
11849       case 0x2020: return((CHAR)(0x86 & 0xff));
11850       case 0x2021: return((CHAR)(0x87 & 0xff));
11851       case 0x2022: return((CHAR)(0x95 & 0xff));
11852       case 0x2026: return((CHAR)(0x85 & 0xff));
11853       case 0x2031: return((CHAR)(0x89 & 0xff));
11854       case 0x20AC:                      /* Euro */
11855           return((CHAR)(0x80 & 0xff));
11856       case 0x2122: return((CHAR)(0x99 & 0xff));
11857       default: return(0x003f);
11858     }
11859 }
11860
11861 int                                     /* Windows Code Page 1254 (Turkish) */
11862 #ifdef CK_ANSIC
11863 tx_cp1254(USHORT c)
11864 #else
11865 tx_cp1254(c) USHORT c;
11866 #endif /* CK_ANSIC */
11867 {
11868     if (c < 0x80)
11869       return((CHAR)(c & 0xff));
11870     switch (c) {
11871       case 0x011e: return((CHAR)(0xd0 & 0xff)); /* G breve    */
11872       case 0x0130: return((CHAR)(0xdd & 0xff)); /* I with dot */
11873       case 0x015e: return((CHAR)(0xde & 0xff)); /* S cedilla  */
11874       case 0x011f: return((CHAR)(0xf0 & 0xff)); /* g breve    */
11875       case 0x0131: return((CHAR)(0xfd & 0xff)); /* i dotless */
11876       case 0x015f: return((CHAR)(0xfe & 0xff)); /* s cedilla */
11877       default: return(tx_cp1252(c));    /* The rest is like Windows Latin-1 */
11878     }
11879 }
11880
11881 int
11882 #ifdef CK_ANSIC
11883 tx_cp1255(USHORT c)
11884 #else
11885 tx_cp1255(c) USHORT c;
11886 #endif /* CK_ANSIC */
11887 {
11888     if (c < 0x080)
11889         return((CHAR)(c & 0xff));
11890     switch (c) {
11891       case 0x20AC:
11892         return((CHAR)(0x80 & 0xff));    /* EURO SIGN */
11893       case 0x201A:
11894         return((CHAR)(0x82 & 0xff));    /* SINGLE LOW-9 QUOTATION MARK */
11895       case 0x0192:
11896         return((CHAR)(0x83 & 0xff));    /* LATIN SMALL LETTER F WITH HOOK */
11897       case 0x201E:
11898         return((CHAR)(0x84 & 0xff));    /* DOUBLE LOW-9 QUOTATION MARK */
11899       case 0x2026:
11900         return((CHAR)(0x85 & 0xff));    /* HORIZONTAL ELLIPSIS */
11901       case 0x2020:
11902         return((CHAR)(0x86 & 0xff));    /* DAGGER */
11903       case 0x2021:
11904         return((CHAR)(0x87 & 0xff));    /* DOUBLE DAGGER */
11905       case 0x02C6:
11906         return((CHAR)(0x88 & 0xff));    /* MODIFIER LETTER CIRCUMFLEX ACCENT */
11907       case 0x2030:
11908         return((CHAR)(0x89 & 0xff));    /* PER MILLE SIGN */
11909       case 0x2039:
11910         return((CHAR)(0x8B & 0xff));    /* SINGLE LEFT-POINTING ANGLE QUOTE */
11911       case 0x2018:
11912         return((CHAR)(0x91 & 0xff));    /* LEFT SINGLE QUOTATION MARK */
11913       case 0x2019:
11914         return((CHAR)(0x92 & 0xff));    /* RIGHT SINGLE QUOTATION MARK */
11915       case 0x201C:
11916         return((CHAR)(0x93 & 0xff));    /* LEFT DOUBLE QUOTATION MARK */
11917       case 0x201D:
11918         return((CHAR)(0x94 & 0xff));    /* RIGHT DOUBLE QUOTATION MARK */
11919       case 0x2022:
11920         return((CHAR)(0x95 & 0xff));    /* BULLET */
11921       case 0x2013:
11922         return((CHAR)(0x96 & 0xff));    /* EN DASH */
11923       case 0x2014:
11924         return((CHAR)(0x97 & 0xff));    /* EM DASH */
11925       case 0x02DC:
11926         return((CHAR)(0x98 & 0xff));    /* SMALL TILDE */
11927       case 0x2122:
11928         return((CHAR)(0x99 & 0xff));    /* TRADE MARK SIGN */
11929       case 0x203A:
11930         return((CHAR)(0x9B & 0xff));    /* SINGLE RIGHT-POINTING ANGLE QUOTE */
11931       case 0x00A0:
11932         return((CHAR)(0xA0 & 0xff));    /* NO-BREAK SPACE */
11933       case 0x00A1:
11934         return((CHAR)(0xA1 & 0xff));    /* INVERTED EXCLAMATION MARK */
11935       case 0x00A2:
11936         return((CHAR)(0xA2 & 0xff));    /* CENT SIGN */
11937       case 0x00A3:
11938         return((CHAR)(0xA3 & 0xff));    /* POUND SIGN */
11939       case 0x20AA:
11940         return((CHAR)(0xA4 & 0xff));    /* NEW SHEQEL SIGN */
11941       case 0x00A5:
11942         return((CHAR)(0xA5 & 0xff));    /* YEN SIGN */
11943       case 0x00A6:
11944         return((CHAR)(0xA6 & 0xff));    /* BROKEN BAR */
11945       case 0x00A7:
11946         return((CHAR)(0xA7 & 0xff));    /* SECTION SIGN */
11947       case 0x00A8:
11948         return((CHAR)(0xA8 & 0xff));    /* DIAERESIS */
11949       case 0x00A9:
11950         return((CHAR)(0xA9 & 0xff));    /* COPYRIGHT SIGN */
11951       case 0x00D7:
11952         return((CHAR)(0xAA & 0xff));    /* MULTIPLICATION SIGN */
11953       case 0x00AB:
11954         return((CHAR)(0xAB & 0xff));    /* LEFT-POINTING DOUBLE ANGLE QUOTE */
11955       case 0x00AC:
11956         return((CHAR)(0xAC & 0xff));    /* NOT SIGN */
11957       case 0x00AD:
11958         return((CHAR)(0xAD & 0xff));    /* SOFT HYPHEN */
11959       case 0x00AE:
11960         return((CHAR)(0xAE & 0xff));    /* REGISTERED SIGN */
11961       case 0x00AF:
11962         return((CHAR)(0xAF & 0xff));    /* MACRON */
11963       case 0x00B0:
11964         return((CHAR)(0xB0 & 0xff));    /* DEGREE SIGN */
11965       case 0x00B1:
11966         return((CHAR)(0xB1 & 0xff));    /* PLUS-MINUS SIGN */
11967       case 0x00B2:
11968         return((CHAR)(0xB2 & 0xff));    /* SUPERSCRIPT TWO */
11969       case 0x00B3:
11970         return((CHAR)(0xB3 & 0xff));    /* SUPERSCRIPT THREE */
11971       case 0x00B4:
11972         return((CHAR)(0xB4 & 0xff));    /* ACUTE ACCENT */
11973       case 0x00B5:
11974         return((CHAR)(0xB5 & 0xff));    /* MICRO SIGN */
11975       case 0x00B6:
11976         return((CHAR)(0xB6 & 0xff));    /* PILCROW SIGN */
11977       case 0x00B7:
11978         return((CHAR)(0xB7 & 0xff));    /* MIDDLE DOT */
11979       case 0x00B8:
11980         return((CHAR)(0xB8 & 0xff));    /* CEDILLA */
11981       case 0x00B9:
11982         return((CHAR)(0xB9 & 0xff));    /* SUPERSCRIPT ONE */
11983       case 0x00F7:
11984         return((CHAR)(0xBA & 0xff));    /* DIVISION SIGN */
11985       case 0x00BB:
11986         return((CHAR)(0xBB & 0xff));    /* RIGHT-POINTING DOUBLE ANGLE QUOTE */
11987       case 0x00BC:
11988         return((CHAR)(0xBC & 0xff));    /* VULGAR FRACTION ONE QUARTER */
11989       case 0x00BD:
11990         return((CHAR)(0xBD & 0xff));    /* VULGAR FRACTION ONE HALF */
11991       case 0x00BE:
11992         return((CHAR)(0xBE & 0xff));    /* VULGAR FRACTION THREE QUARTERS */
11993       case 0x00BF:
11994         return((CHAR)(0xBF & 0xff));    /* INVERTED QUESTION MARK */
11995       case 0x05B0:
11996         return((CHAR)(0xC0 & 0xff));    /* HEBREW POINT SHEVA */
11997       case 0x05B1:
11998         return((CHAR)(0xC1 & 0xff));    /* HEBREW POINT HATAF SEGOL */
11999       case 0x05B2:
12000         return((CHAR)(0xC2 & 0xff));    /* HEBREW POINT HATAF PATAH */
12001       case 0x05B3:
12002         return((CHAR)(0xC3 & 0xff));    /* HEBREW POINT HATAF QAMATS */
12003       case 0x05B4:
12004         return((CHAR)(0xC4 & 0xff));    /* HEBREW POINT HIRIQ */
12005       case 0x05B5:
12006         return((CHAR)(0xC5 & 0xff));    /* HEBREW POINT TSERE */
12007       case 0x05B6:
12008         return((CHAR)(0xC6 & 0xff));    /* HEBREW POINT SEGOL */
12009       case 0x05B7:
12010         return((CHAR)(0xC7 & 0xff));    /* HEBREW POINT PATAH */
12011       case 0x05B8:
12012         return((CHAR)(0xC8 & 0xff));    /* HEBREW POINT QAMATS */
12013       case 0x05B9:
12014         return((CHAR)(0xC9 & 0xff));    /* HEBREW POINT HOLAM */
12015       case 0x05BB:
12016         return((CHAR)(0xCB & 0xff));    /* HEBREW POINT QUBUTS */
12017       case 0x05BC:
12018         return((CHAR)(0xCC & 0xff));    /* HEBREW POINT DAGESH OR MAPIQ */
12019       case 0x05BD:
12020         return((CHAR)(0xCD & 0xff));    /* HEBREW POINT METEG */
12021       case 0x05BE:
12022         return((CHAR)(0xCE & 0xff));    /* HEBREW PUNCTUATION MAQAF */
12023       case 0x05BF:
12024         return((CHAR)(0xCF & 0xff));    /* HEBREW POINT RAFE */
12025       case 0x05C0:
12026         return((CHAR)(0xD0 & 0xff));    /* HEBREW PUNCTUATION PASEQ */
12027       case 0x05C1:
12028         return((CHAR)(0xD1 & 0xff));    /* HEBREW POINT SHIN DOT */
12029       case 0x05C2:
12030         return((CHAR)(0xD2 & 0xff));    /* HEBREW POINT SIN DOT */
12031       case 0x05C3:
12032         return((CHAR)(0xD3 & 0xff));    /* HEBREW PUNCTUATION SOF PASUQ */
12033       case 0x05F0:
12034         return((CHAR)(0xD4 & 0xff));    /* HEBREW LIG. YIDDISH DOUBLE VAV */
12035       case 0x05F1:
12036         return((CHAR)(0xD5 & 0xff));    /* HEBREW LIGATURE YIDDISH VAV YOD */
12037       case 0x05F2:
12038         return((CHAR)(0xD6 & 0xff));    /* HEBREW LIG. YIDDISH DOUBLE YOD */
12039       case 0x05F3:
12040         return((CHAR)(0xD7 & 0xff));    /* HEBREW PUNCTUATION GERESH */
12041       case 0x05F4:
12042         return((CHAR)(0xD8 & 0xff));    /* HEBREW PUNCTUATION GERSHAYIM */
12043       case 0x05D0:
12044         return((CHAR)(0xE0 & 0xff));    /* HEBREW LETTER ALEF */
12045       case 0x05D1:
12046         return((CHAR)(0xE1 & 0xff));    /* HEBREW LETTER BET */
12047       case 0x05D2:
12048         return((CHAR)(0xE2 & 0xff));    /* HEBREW LETTER GIMEL */
12049       case 0x05D3:
12050         return((CHAR)(0xE3 & 0xff));    /* HEBREW LETTER DALET */
12051       case 0x05D4:
12052         return((CHAR)(0xE4 & 0xff));    /* HEBREW LETTER HE */
12053       case 0x05D5:
12054         return((CHAR)(0xE5 & 0xff));    /* HEBREW LETTER VAV */
12055       case 0x05D6:
12056         return((CHAR)(0xE6 & 0xff));    /* HEBREW LETTER ZAYIN */
12057       case 0x05D7:
12058         return((CHAR)(0xE7 & 0xff));    /* HEBREW LETTER HET */
12059       case 0x05D8:
12060         return((CHAR)(0xE8 & 0xff));    /* HEBREW LETTER TET */
12061       case 0x05D9:
12062         return((CHAR)(0xE9 & 0xff));    /* HEBREW LETTER YOD */
12063       case 0x05DA:
12064         return((CHAR)(0xEA & 0xff));    /* HEBREW LETTER FINAL KAF */
12065       case 0x05DB:
12066         return((CHAR)(0xEB & 0xff));    /* HEBREW LETTER KAF */
12067       case 0x05DC:
12068         return((CHAR)(0xEC & 0xff));    /* HEBREW LETTER LAMED */
12069       case 0x05DD:
12070         return((CHAR)(0xED & 0xff));    /* HEBREW LETTER FINAL MEM */
12071       case 0x05DE:
12072         return((CHAR)(0xEE & 0xff));    /* HEBREW LETTER MEM */
12073       case 0x05DF:
12074         return((CHAR)(0xEF & 0xff));    /* HEBREW LETTER FINAL NUN */
12075       case 0x05E0:
12076         return((CHAR)(0xF0 & 0xff));    /* HEBREW LETTER NUN */
12077       case 0x05E1:
12078         return((CHAR)(0xF1 & 0xff));    /* HEBREW LETTER SAMEKH */
12079       case 0x05E2:
12080         return((CHAR)(0xF2 & 0xff));    /* HEBREW LETTER AYIN */
12081       case 0x05E3:
12082         return((CHAR)(0xF3 & 0xff));    /* HEBREW LETTER FINAL PE */
12083       case 0x05E4:
12084         return((CHAR)(0xF4 & 0xff));    /* HEBREW LETTER PE */
12085       case 0x05E5:
12086         return((CHAR)(0xF5 & 0xff));    /* HEBREW LETTER FINAL TSADI */
12087       case 0x05E6:
12088         return((CHAR)(0xF6 & 0xff));    /* HEBREW LETTER TSADI */
12089       case 0x05E7:
12090         return((CHAR)(0xF7 & 0xff));    /* HEBREW LETTER QOF */
12091       case 0x05E8:
12092         return((CHAR)(0xF8 & 0xff));    /* HEBREW LETTER RESH */
12093       case 0x05E9:
12094         return((CHAR)(0xF9 & 0xff));    /* HEBREW LETTER SHIN */
12095       case 0x05EA:
12096         return((CHAR)(0xFA & 0xff));    /* HEBREW LETTER TAV */
12097       case 0x200E:
12098         return((CHAR)(0xFD & 0xff));    /* LEFT-TO-RIGHT MARK */
12099       case 0x200F:
12100         return((CHAR)(0xFE & 0xff));    /* RIGHT-TO-LEFT MARK */
12101       default: return(0x003f);
12102     }
12103 }
12104
12105 int                                     /* Windows Arabic */
12106 #ifdef CK_ANSIC
12107 tx_cp1256(USHORT c)
12108 #else
12109 tx_cp1256(c) USHORT c;
12110 #endif /* CK_ANSIC */
12111 {
12112     if (c < 0x80)
12113       return((CHAR)(c & 0xff));
12114     switch (c) {
12115       case 0x20AC:
12116         return((CHAR)(0x80 & 0xff));    /* EURO SIGN */
12117       case 0x067E:
12118         return((CHAR)(0x81 & 0xff));    /* ARABIC LETTER PEH */
12119       case 0x201A:
12120         return((CHAR)(0x82 & 0xff));    /* SINGLE LOW-9 QUOTATION MARK */
12121       case 0x0192:
12122         return((CHAR)(0x83 & 0xff));    /* LATIN SMALL LETTER F WITH HOOK */
12123       case 0x201E:
12124         return((CHAR)(0x84 & 0xff));    /* DOUBLE LOW-9 QUOTATION MARK */
12125       case 0x2026:
12126         return((CHAR)(0x85 & 0xff));    /* HORIZONTAL ELLIPSIS */
12127       case 0x2020:
12128         return((CHAR)(0x86 & 0xff));    /* DAGGER */
12129       case 0x2021:
12130         return((CHAR)(0x87 & 0xff));    /* DOUBLE DAGGER */
12131       case 0x02C6:
12132         return((CHAR)(0x88 & 0xff));    /* MODIFIER LETTER CIRCUMFLEX ACCENT */
12133       case 0x2030:
12134         return((CHAR)(0x89 & 0xff));    /* PER MILLE SIGN */
12135       case 0x2039:
12136         return((CHAR)(0x8B & 0xff));    /* SINGLE LEFT-POINTING ANGLE QUOTE */
12137       case 0x0152:
12138         return((CHAR)(0x8C & 0xff));    /* LATIN CAPITAL LIGATURE OE */
12139       case 0x0686:
12140         return((CHAR)(0x8D & 0xff));    /* ARABIC LETTER TCHEH */
12141       case 0x0698:
12142         return((CHAR)(0x8E & 0xff));    /* ARABIC LETTER JEH */
12143       case 0x06AF:
12144         return((CHAR)(0x90 & 0xff));    /* ARABIC LETTER GAF */
12145       case 0x2018:
12146         return((CHAR)(0x91 & 0xff));    /* LEFT SINGLE QUOTATION MARK */
12147       case 0x2019:
12148         return((CHAR)(0x92 & 0xff));    /* RIGHT SINGLE QUOTATION MARK */
12149       case 0x201C:
12150         return((CHAR)(0x93 & 0xff));    /* LEFT DOUBLE QUOTATION MARK */
12151       case 0x201D:
12152         return((CHAR)(0x94 & 0xff));    /* RIGHT DOUBLE QUOTATION MARK */
12153       case 0x2022:
12154         return((CHAR)(0x95 & 0xff));    /* BULLET */
12155       case 0x2013:
12156         return((CHAR)(0x96 & 0xff));    /* EN DASH */
12157       case 0x2014:
12158         return((CHAR)(0x97 & 0xff));    /* EM DASH */
12159       case 0x2122:
12160         return((CHAR)(0x99 & 0xff));    /* TRADE MARK SIGN */
12161       case 0x203A:
12162         return((CHAR)(0x9B & 0xff));    /* SINGLE RIGHT-POINTING ANGLE QUOTE */
12163       case 0x0153:
12164         return((CHAR)(0x9C & 0xff));    /* LATIN SMALL LIGATURE OE */
12165       case 0x200C:
12166         return((CHAR)(0x9D & 0xff));    /* ZERO WIDTH NON-JOINER */
12167       case 0x200D:
12168         return((CHAR)(0x9E & 0xff));    /* ZERO WIDTH JOINER */
12169       case 0x00A0:
12170         return((CHAR)(0xA0 & 0xff));    /* NO-BREAK SPACE */
12171       case 0x060C:
12172         return((CHAR)(0xA1 & 0xff));    /* ARABIC COMMA */
12173       case 0x00A2:
12174         return((CHAR)(0xA2 & 0xff));    /* CENT SIGN */
12175       case 0x00A3:
12176         return((CHAR)(0xA3 & 0xff));    /* POUND SIGN */
12177       case 0x00A4:
12178         return((CHAR)(0xA4 & 0xff));    /* CURRENCY SIGN */
12179       case 0x00A5:
12180         return((CHAR)(0xA5 & 0xff));    /* YEN SIGN */
12181       case 0x00A6:
12182         return((CHAR)(0xA6 & 0xff));    /* BROKEN BAR */
12183       case 0x00A7:
12184         return((CHAR)(0xA7 & 0xff));    /* SECTION SIGN */
12185       case 0x00A8:
12186         return((CHAR)(0xA8 & 0xff));    /* DIAERESIS */
12187       case 0x00A9:
12188         return((CHAR)(0xA9 & 0xff));    /* COPYRIGHT SIGN */
12189       case 0x00AB:
12190         return((CHAR)(0xAB & 0xff));    /* LEFT-POINTING DOUBLE ANGLE QUOTE */
12191       case 0x00AC:
12192         return((CHAR)(0xAC & 0xff));    /* NOT SIGN */
12193       case 0x00AD:
12194         return((CHAR)(0xAD & 0xff));    /* SOFT HYPHEN */
12195       case 0x00AE:
12196         return((CHAR)(0xAE & 0xff));    /* REGISTERED SIGN */
12197       case 0x00AF:
12198         return((CHAR)(0xAF & 0xff));    /* MACRON */
12199       case 0x00B0:
12200         return((CHAR)(0xB0 & 0xff));    /* DEGREE SIGN */
12201       case 0x00B1:
12202         return((CHAR)(0xB1 & 0xff));    /* PLUS-MINUS SIGN */
12203       case 0x00B2:
12204         return((CHAR)(0xB2 & 0xff));    /* SUPERSCRIPT TWO */
12205       case 0x00B3:
12206         return((CHAR)(0xB3 & 0xff));    /* SUPERSCRIPT THREE */
12207       case 0x00B4:
12208         return((CHAR)(0xB4 & 0xff));    /* ACUTE ACCENT */
12209       case 0x00B5:
12210         return((CHAR)(0xB5 & 0xff));    /* MICRO SIGN */
12211       case 0x00B6:
12212         return((CHAR)(0xB6 & 0xff));    /* PILCROW SIGN */
12213       case 0x00B7:
12214         return((CHAR)(0xB7 & 0xff));    /* MIDDLE DOT */
12215       case 0x00B8:
12216         return((CHAR)(0xB8 & 0xff));    /* CEDILLA */
12217       case 0x00B9:
12218         return((CHAR)(0xB9 & 0xff));    /* SUPERSCRIPT ONE */
12219       case 0x061B:
12220         return((CHAR)(0xBA & 0xff));    /* ARABIC SEMICOLON */
12221       case 0x00BB:
12222         return((CHAR)(0xBB & 0xff));    /* RIGHT-POINTING DOUBLE ANGLE QUOTE */
12223       case 0x00BC:
12224         return((CHAR)(0xBC & 0xff));    /* VULGAR FRACTION ONE QUARTER */
12225       case 0x00BD:
12226         return((CHAR)(0xBD & 0xff));    /* VULGAR FRACTION ONE HALF */
12227       case 0x00BE:
12228         return((CHAR)(0xBE & 0xff));    /* VULGAR FRACTION THREE QUARTERS */
12229       case 0x061F:
12230         return((CHAR)(0xBF & 0xff));    /* ARABIC QUESTION MARK */
12231       case 0x0621:
12232         return((CHAR)(0xC1 & 0xff));    /* ARABIC LETTER HAMZA */
12233       case 0x0622:
12234         return((CHAR)(0xC2 & 0xff));    /* ARABIC LTR. ALEF WITH MADDA ABOVE */
12235       case 0x0623:
12236         return((CHAR)(0xC3 & 0xff));    /* ARABIC LTR. ALEF WITH HAMZA ABOVE */
12237       case 0x0624:
12238         return((CHAR)(0xC4 & 0xff));    /* ARABIC LTR. WAW WITH HAMZA ABOVE */
12239       case 0x0625:
12240         return((CHAR)(0xC5 & 0xff));    /* ARABIC LTR. ALEF WITH HAMZA BELOW */
12241       case 0x0626:
12242         return((CHAR)(0xC6 & 0xff));    /* ARABIC LTR. YEH WITH HAMZA ABOVE */
12243       case 0x0627:
12244         return((CHAR)(0xC7 & 0xff));    /* ARABIC LTR. ALEF */
12245       case 0x0628:
12246         return((CHAR)(0xC8 & 0xff));    /* ARABIC LTR. BEH */
12247       case 0x0629:
12248         return((CHAR)(0xC9 & 0xff));    /* ARABIC LETTER TEH MARBUTA */
12249       case 0x062A:
12250         return((CHAR)(0xCA & 0xff));    /* ARABIC LETTER TEH */
12251       case 0x062B:
12252         return((CHAR)(0xCB & 0xff));    /* ARABIC LETTER THEH */
12253       case 0x062C:
12254         return((CHAR)(0xCC & 0xff));    /* ARABIC LETTER JEEM */
12255       case 0x062D:
12256         return((CHAR)(0xCD & 0xff));    /* ARABIC LETTER HAH */
12257       case 0x062E:
12258         return((CHAR)(0xCE & 0xff));    /* ARABIC LETTER KHAH */
12259       case 0x062F:
12260         return((CHAR)(0xCF & 0xff));    /* ARABIC LETTER DAL */
12261       case 0x0630:
12262         return((CHAR)(0xD0 & 0xff));    /* ARABIC LETTER THAL */
12263       case 0x0631:
12264         return((CHAR)(0xD1 & 0xff));    /* ARABIC LETTER REH */
12265       case 0x0632:
12266         return((CHAR)(0xD2 & 0xff));    /* ARABIC LETTER ZAIN */
12267       case 0x0633:
12268         return((CHAR)(0xD3 & 0xff));    /* ARABIC LETTER SEEN */
12269       case 0x0634:
12270         return((CHAR)(0xD4 & 0xff));    /* ARABIC LETTER SHEEN */
12271       case 0x0635:
12272         return((CHAR)(0xD5 & 0xff));    /* ARABIC LETTER SAD */
12273       case 0x0636:
12274         return((CHAR)(0xD6 & 0xff));    /* ARABIC LETTER DAD */
12275       case 0x00D7:
12276         return((CHAR)(0xD7 & 0xff));    /* MULTIPLICATION SIGN */
12277       case 0x0637:
12278         return((CHAR)(0xD8 & 0xff));    /* ARABIC LETTER TAH */
12279       case 0x0638:
12280         return((CHAR)(0xD9 & 0xff));    /* ARABIC LETTER ZAH */
12281       case 0x0639:
12282         return((CHAR)(0xDA & 0xff));    /* ARABIC LETTER AIN */
12283       case 0x063A:
12284         return((CHAR)(0xDB & 0xff));    /* ARABIC LETTER GHAIN */
12285       case 0x0640:
12286         return((CHAR)(0xDC & 0xff));    /* ARABIC TATWEEL */
12287       case 0x0641:
12288         return((CHAR)(0xDD & 0xff));    /* ARABIC LETTER FEH */
12289       case 0x0642:
12290         return((CHAR)(0xDE & 0xff));    /* ARABIC LETTER QAF */
12291       case 0x0643:
12292         return((CHAR)(0xDF & 0xff));    /* ARABIC LETTER KAF */
12293       case 0x00E0:
12294         return((CHAR)(0xE0 & 0xff));    /* LATIN SMALL LETTER A WITH GRAVE */
12295       case 0x0644:
12296         return((CHAR)(0xE1 & 0xff));    /* ARABIC LETTER LAM */
12297       case 0x00E2:
12298         return((CHAR)(0xE2 & 0xff));    /* SMALL LETTER A WITH CIRCUMFLEX */
12299       case 0x0645:
12300         return((CHAR)(0xE3 & 0xff));    /* ARABIC LETTER MEEM */
12301       case 0x0646:
12302         return((CHAR)(0xE4 & 0xff));    /* ARABIC LETTER NOON */
12303       case 0x0647:
12304         return((CHAR)(0xE5 & 0xff));    /* ARABIC LETTER HEH */
12305       case 0x0648:
12306         return((CHAR)(0xE6 & 0xff));    /* ARABIC LETTER WAW */
12307       case 0x00E7:
12308         return((CHAR)(0xE7 & 0xff));    /* LATIN SMALL LETTER C WITH CEDILLA */
12309       case 0x00E8:
12310         return((CHAR)(0xE8 & 0xff));    /* LATIN SMALL LETTER E WITH GRAVE */
12311       case 0x00E9:
12312         return((CHAR)(0xE9 & 0xff));    /* LATIN SMALL LETTER E WITH ACUTE */
12313       case 0x00EA:
12314         return((CHAR)(0xEA & 0xff));    /* SMALL LETTER E WITH CIRCUMFLEX */
12315       case 0x00EB:
12316         return((CHAR)(0xEB & 0xff));    /* SMALL LETTER E WITH DIAERESIS */
12317       case 0x0649:
12318         return((CHAR)(0xEC & 0xff));    /* ARABIC LETTER ALEF MAKSURA */
12319       case 0x064A:
12320         return((CHAR)(0xED & 0xff));    /* ARABIC LETTER YEH */
12321       case 0x00EE:
12322         return((CHAR)(0xEE & 0xff));    /* SMALL LETTER I WITH CIRCUMFLEX */
12323       case 0x00EF:
12324         return((CHAR)(0xEF & 0xff));    /* SMALL LETTER I WITH DIAERESIS */
12325       case 0x064B:
12326         return((CHAR)(0xF0 & 0xff));    /* ARABIC FATHATAN */
12327       case 0x064C:
12328         return((CHAR)(0xF1 & 0xff));    /* ARABIC DAMMATAN */
12329       case 0x064D:
12330         return((CHAR)(0xF2 & 0xff));    /* ARABIC KASRATAN */
12331       case 0x064E:
12332         return((CHAR)(0xF3 & 0xff));    /* ARABIC FATHA */
12333       case 0x00F4:
12334         return((CHAR)(0xF4 & 0xff));    /* SMALL LETTER O WITH CIRCUMFLEX */
12335       case 0x064F:
12336         return((CHAR)(0xF5 & 0xff));    /* ARABIC DAMMA */
12337       case 0x0650:
12338         return((CHAR)(0xF6 & 0xff));    /* ARABIC KASRA */
12339       case 0x00F7:
12340         return((CHAR)(0xF7 & 0xff));    /* DIVISION SIGN */
12341       case 0x0651:
12342         return((CHAR)(0xF8 & 0xff));    /* ARABIC SHADDA */
12343       case 0x00F9:
12344         return((CHAR)(0xF9 & 0xff));    /* LATIN SMALL LETTER U WITH GRAVE */
12345       case 0x0652:
12346         return((CHAR)(0xFA & 0xff));    /* ARABIC SUKUN */
12347       case 0x00FB:
12348         return((CHAR)(0xFB & 0xff));    /* SMALL LETTER U WITH CIRCUMFLEX */
12349       case 0x00FC:
12350         return((CHAR)(0xFC & 0xff));    /* SMALL LETTER U WITH DIAERESIS */
12351       case 0x200E:
12352         return((CHAR)(0xFD & 0xff));    /* LEFT-TO-RIGHT MARK */
12353       case 0x200F:
12354         return((CHAR)(0xFE & 0xff));    /* RIGHT-TO-LEFT MARK */
12355       default: return(0x003f);
12356     }
12357 }
12358
12359 int                                     /* Windows Code Page 1257 (Latin-4) */
12360 #ifdef CK_ANSIC
12361 tx_cp1257(USHORT c)
12362 #else
12363 tx_cp1257(c) USHORT c;
12364 #endif /* CK_ANSIC */
12365 {
12366     if (c < 0x80)
12367       return((CHAR)(c & 0xff));
12368     switch (c) {
12369       case 0x003c: return((CHAR)(0x8b & 0xff));
12370       case 0x003e: return((CHAR)(0x9b & 0xff));
12371       case 0x00A0: return((CHAR)(0xa0 & 0xff));
12372       case 0x00A2: return((CHAR)(0xa2 & 0xff));
12373       case 0x00A3: return((CHAR)(0xa3 & 0xff));
12374       case 0x00A4: return((CHAR)(0xa4 & 0xff));
12375       case 0x00A6: return((CHAR)(0xa6 & 0xff));
12376       case 0x00A7: return((CHAR)(0xa7 & 0xff));
12377       case 0x00A9: return((CHAR)(0xa9 & 0xff));
12378       case 0x00AB: return((CHAR)(0xab & 0xff));
12379       case 0x00AC: return((CHAR)(0xac & 0xff));
12380       case 0x00AD: return((CHAR)(0xad & 0xff));
12381       case 0x00AE: return((CHAR)(0xae & 0xff));
12382       case 0x00B0: return((CHAR)(0xb0 & 0xff));
12383       case 0x00B1: return((CHAR)(0xb1 & 0xff));
12384       case 0x00B2: return((CHAR)(0xb2 & 0xff));
12385       case 0x00B3: return((CHAR)(0xb3 & 0xff));
12386       case 0x00B5: return((CHAR)(0xb5 & 0xff));
12387       case 0x00B6: return((CHAR)(0xb6 & 0xff));
12388       case 0x00B7: return((CHAR)(0xb7 & 0xff));
12389       case 0x00B9: return((CHAR)(0xb9 & 0xff));
12390       case 0x00BB: return((CHAR)(0xbb & 0xff));
12391       case 0x00BC: return((CHAR)(0xbc & 0xff));
12392       case 0x00BD: return((CHAR)(0xbd & 0xff));
12393       case 0x00BE: return((CHAR)(0xbe & 0xff));
12394       case 0x00C4: return((CHAR)(0xc4 & 0xff));
12395       case 0x00C5: return((CHAR)(0xc5 & 0xff));
12396       case 0x00c6: return((CHAR)(0xaf & 0xff));
12397       case 0x00C9: return((CHAR)(0xc9 & 0xff));
12398       case 0x00d3: return((CHAR)(0xd3 & 0xff));
12399       case 0x00D5: return((CHAR)(0xd5 & 0xff));
12400       case 0x00D6: return((CHAR)(0xd6 & 0xff));
12401       case 0x00D7: return((CHAR)(0xd7 & 0xff));
12402       case 0x00d8: return((CHAR)(0xa8 & 0xff));
12403       case 0x00DC: return((CHAR)(0xdc & 0xff));
12404       case 0x00DF: return((CHAR)(0xdf & 0xff));
12405       case 0x00E4: return((CHAR)(0xe4 & 0xff));
12406       case 0x00E5: return((CHAR)(0xe5 & 0xff));
12407       case 0x00e6: return((CHAR)(0xbf & 0xff));
12408       case 0x00E9: return((CHAR)(0xe9 & 0xff));
12409       case 0x00f3: return((CHAR)(0xf3 & 0xff));
12410       case 0x00F5: return((CHAR)(0xf5 & 0xff));
12411       case 0x00F6: return((CHAR)(0xf6 & 0xff));
12412       case 0x00F7: return((CHAR)(0xf7 & 0xff));
12413       case 0x00f8: return((CHAR)(0xb8 & 0xff));
12414       case 0x00fc: return((CHAR)(0xfc & 0xff));
12415       case 0x0100: return((CHAR)(0xc2 & 0xff));
12416       case 0x0101: return((CHAR)(0xe2 & 0xff));
12417       case 0x0104: return((CHAR)(0xc0 & 0xff));
12418       case 0x0105: return((CHAR)(0xe0 & 0xff));
12419       case 0x0106: return((CHAR)(0xc3 & 0xff));
12420       case 0x0107: return((CHAR)(0xe3 & 0xff));
12421       case 0x010C: return((CHAR)(0xc8 & 0xff));
12422       case 0x010D: return((CHAR)(0xe8 & 0xff));
12423       case 0x0112: return((CHAR)(0xc7 & 0xff));
12424       case 0x0113: return((CHAR)(0xe7 & 0xff));
12425       case 0x0116: return((CHAR)(0xcb & 0xff));
12426       case 0x0117: return((CHAR)(0xeb & 0xff));
12427       case 0x0118: return((CHAR)(0xc6 & 0xff));
12428       case 0x0119: return((CHAR)(0xe6 & 0xff));
12429       case 0x0122: return((CHAR)(0xcc & 0xff));
12430       case 0x0123: return((CHAR)(0xec & 0xff));
12431       case 0x012a: return((CHAR)(0xce & 0xff));
12432       case 0x012b: return((CHAR)(0xee & 0xff));
12433       case 0x012e: return((CHAR)(0xc1 & 0xff));
12434       case 0x012f: return((CHAR)(0xe1 & 0xff));
12435       case 0x0136: return((CHAR)(0xcd & 0xff));
12436       case 0x0137: return((CHAR)(0xed & 0xff));
12437       case 0x013c: return((CHAR)(0xef & 0xff));
12438       case 0x0141: return((CHAR)(0xd9 & 0xff));
12439       case 0x0142: return((CHAR)(0xf9 & 0xff));
12440       case 0x0143: return((CHAR)(0xd1 & 0xff));
12441       case 0x0144: return((CHAR)(0xf1 & 0xff));
12442       case 0x0145: return((CHAR)(0xd2 & 0xff));
12443       case 0x0146: return((CHAR)(0xf2 & 0xff));
12444       case 0x014c: return((CHAR)(0xd4 & 0xff));
12445       case 0x014d: return((CHAR)(0xf4 & 0xff));
12446       case 0x0156: return((CHAR)(0xaa & 0xff));
12447       case 0x0157: return((CHAR)(0xba & 0xff));
12448       case 0x015A: return((CHAR)(0xda & 0xff));
12449       case 0x015b: return((CHAR)(0xfa & 0xff));
12450       case 0x0160: return((CHAR)(0xd0 & 0xff));
12451       case 0x0161: return((CHAR)(0xf0 & 0xff));
12452       case 0x016a: return((CHAR)(0xdb & 0xff));
12453       case 0x016b: return((CHAR)(0xfb & 0xff));
12454       case 0x0172: return((CHAR)(0xd8 & 0xff));
12455       case 0x0173: return((CHAR)(0xf8 & 0xff));
12456       case 0x0179: return((CHAR)(0xca & 0xff));
12457       case 0x017a: return((CHAR)(0xea & 0xff));
12458       case 0x017b: return((CHAR)(0xdd & 0xff));
12459       case 0x017c: return((CHAR)(0xfd & 0xff));
12460       case 0x017d: return((CHAR)(0xde & 0xff));
12461       case 0x017e: return((CHAR)(0xfe & 0xff));
12462       case 0x2012: return((CHAR)(0x96 & 0xff));
12463       case 0x2014: return((CHAR)(0x97 & 0xff));
12464       case 0x2018: return((CHAR)(0x91 & 0xff));
12465       case 0x2019: return((CHAR)(0x92 & 0xff));
12466       case 0x201a: return((CHAR)(0x82 & 0xff));
12467       case 0x201c: return((CHAR)(0x93 & 0xff));
12468       case 0x201d: return((CHAR)(0x94 & 0xff));
12469       case 0x201e: return((CHAR)(0x84 & 0xff));
12470       case 0x2020: return((CHAR)(0x86 & 0xff));
12471       case 0x2021: return((CHAR)(0x87 & 0xff));
12472       case 0x2022: return((CHAR)(0x95 & 0xff));
12473       case 0x2026: return((CHAR)(0x85 & 0xff));
12474       case 0x2031: return((CHAR)(0x89 & 0xff));
12475       case 0x20AC:                      /* Euro */
12476           return((CHAR)(0x80 & 0xff));
12477       case 0x2122: return((CHAR)(0x99 & 0xff));
12478       default: return(0x003f);
12479     }
12480 }
12481
12482 int                                     /* Windows Code Page 1258 (Viet Nam) */
12483 #ifdef CK_ANSIC
12484 tx_cp1258(USHORT c)
12485 #else
12486 tx_cp1258(c) USHORT c;
12487 #endif /* CK_ANSIC */
12488 {
12489     if (c < 0x80)                       /* Has C1 graphics */
12490       return((CHAR)(c & 0xff));
12491     switch (c) {
12492       case 0x20AC:
12493         return((CHAR)(0x80 & 0xff));    /* EURO SIGN */
12494       case 0x201A:
12495         return((CHAR)(0x82 & 0xff));    /* SINGLE LOW-9 QUOTATION MARK */
12496       case 0x0192:
12497         return((CHAR)(0x83 & 0xff));    /* LATIN SMALL LETTER F WITH HOOK */
12498       case 0x201E:
12499         return((CHAR)(0x84 & 0xff));    /* DOUBLE LOW-9 QUOTATION MARK */
12500       case 0x2026: return((CHAR)(0x85 & 0xff)); /* HORIZONTAL ELLIPSIS */
12501       case 0x2020: return((CHAR)(0x86 & 0xff)); /* DAGGER */
12502       case 0x2021: return((CHAR)(0x87 & 0xff)); /* DOUBLE DAGGER */
12503       case 0x02C6:
12504         return((CHAR)(0x88 & 0xff));    /* MODIFIER LETTER CIRCUMFLEX ACCENT */
12505       case 0x2030: return((CHAR)(0x89 & 0xff)); /* PER MILLE SIGN */
12506       case 0x2039:
12507         return((CHAR)(0x8B & 0xff));    /* SINGLE LEFT ANGLE QUOTATION MARK */
12508       case 0x0152: return((CHAR)(0x8C & 0xff)); /* LATIN CAPITAL LIGATURE OE */
12509       case 0x2018:
12510         return((CHAR)(0x91 & 0xff));    /* LEFT SINGLE QUOTATION MARK */
12511       case 0x2019:
12512         return((CHAR)(0x92 & 0xff));    /* RIGHT SINGLE QUOTATION MARK */
12513       case 0x201C:
12514         return((CHAR)(0x93 & 0xff));    /* LEFT DOUBLE QUOTATION MARK */
12515       case 0x201D:
12516         return((CHAR)(0x94 & 0xff));    /* RIGHT DOUBLE QUOTATION MARK */
12517       case 0x2022:
12518         return((CHAR)(0x95 & 0xff));    /* BULLET */
12519       case 0x2013:
12520         return((CHAR)(0x96 & 0xff));    /* EN DASH */
12521       case 0x2014:
12522         return((CHAR)(0x97 & 0xff));    /* EM DASH */
12523       case 0x02DC:
12524         return((CHAR)(0x98 & 0xff));    /* SMALL TILDE */
12525       case 0x2122:
12526         return((CHAR)(0x99 & 0xff));    /* TRADE MARK SIGN */
12527       case 0x203A:
12528         /* SINGLE RIGHT-POINTING ANGLE QUOTATION MAR K*/
12529         return((CHAR)(0x9B & 0xff));
12530       case 0x0153:
12531         return((CHAR)(0x9C & 0xff));    /* LATIN SMALL LIGATURE OE */
12532       case 0x0178:
12533         /* LATIN CAPITAL LETTER Y WITH DIAERESIS */
12534         return((CHAR)(0x9F & 0xff));
12535       case 0x00A0:
12536         return((CHAR)(0xA0 & 0xff));    /* NO-BREAK SPACE */
12537       case 0x00A1:
12538         return((CHAR)(0xA1 & 0xff));    /* INVERTED EXCLAMATION MARK */
12539       case 0x00A2:
12540         return((CHAR)(0xA2 & 0xff));    /* CENT SIGN */
12541       case 0x00A3:
12542         return((CHAR)(0xA3 & 0xff));    /* POUND SIGN */
12543       case 0x00A4:
12544         return((CHAR)(0xA4 & 0xff));    /* CURRENCY SIGN */
12545       case 0x00A5:
12546         return((CHAR)(0xA5 & 0xff));    /* YEN SIGN */
12547       case 0x00A6:
12548         return((CHAR)(0xA6 & 0xff));    /* BROKEN BAR */
12549       case 0x00A7:
12550         return((CHAR)(0xA7 & 0xff));    /* SECTION SIGN */
12551       case 0x00A8:
12552         return((CHAR)(0xA8 & 0xff));    /* DIAERESIS */
12553       case 0x00A9:
12554         return((CHAR)(0xA9 & 0xff));    /* COPYRIGHT SIGN */
12555       case 0x00AA:
12556         return((CHAR)(0xAA & 0xff));    /* FEMININE ORDINAL INDICATOR */
12557       case 0x00AB:
12558         /* LEFT-POINTING DOUBLE ANGLE QUOTATION MARK */
12559         return((CHAR)(0xAB & 0xff));
12560       case 0x00AC:
12561         return((CHAR)(0xAC & 0xff));    /* NOT SIGN */
12562       case 0x00AD:
12563         return((CHAR)(0xAD & 0xff));    /* SOFT HYPHEN */
12564       case 0x00AE:
12565         return((CHAR)(0xAE & 0xff));    /* REGISTERED SIGN */
12566       case 0x00AF:
12567         return((CHAR)(0xAF & 0xff));    /* MACRON */
12568       case 0x00B0:
12569         return((CHAR)(0xB0 & 0xff));    /* DEGREE SIGN */
12570       case 0x00B1:
12571         return((CHAR)(0xB1 & 0xff));    /* PLUS-MINUS SIGN */
12572       case 0x00B2:
12573         return((CHAR)(0xB2 & 0xff));    /* SUPERSCRIPT TWO */
12574       case 0x00B3:
12575         return((CHAR)(0xB3 & 0xff));    /* SUPERSCRIPT THREE */
12576       case 0x00B4:
12577         return((CHAR)(0xB4 & 0xff));    /* ACUTE ACCENT */
12578       case 0x00B5:
12579         return((CHAR)(0xB5 & 0xff));    /* MICRO SIGN */
12580       case 0x00B6:
12581         return((CHAR)(0xB6 & 0xff));    /* PILCROW SIGN */
12582       case 0x00B7:
12583         return((CHAR)(0xB7 & 0xff));    /* MIDDLE DOT */
12584       case 0x00B8:
12585         return((CHAR)(0xB8 & 0xff));    /* CEDILLA */
12586       case 0x00B9:
12587         return((CHAR)(0xB9 & 0xff));    /* SUPERSCRIPT ONE */
12588       case 0x00BA:
12589         return((CHAR)(0xBA & 0xff));    /* MASCULINE ORDINAL INDICATOR */
12590       case 0x00BB:
12591         /* RIGHT-POINTING DOUBLE ANGLE QUOTATION MAR K*/
12592         return((CHAR)(0xBB & 0xff));
12593       case 0x00BC:
12594         return((CHAR)(0xBC & 0xff));    /* VULGAR FRACTION ONE QUARTER */
12595       case 0x00BD:
12596         return((CHAR)(0xBD & 0xff));    /* VULGAR FRACTION ONE HALF */
12597       case 0x00BE:
12598         return((CHAR)(0xBE & 0xff));    /* VULGAR FRACTION THREE QUARTERS */
12599       case 0x00BF:
12600         return((CHAR)(0xBF & 0xff));    /* INVERTED QUESTION MARK */
12601       case 0x00C0:
12602         return((CHAR)(0xC0 & 0xff));    /* LATIN CAPITAL LETTER A WITH GRAVE */
12603       case 0x00C1:
12604         return((CHAR)(0xC1 & 0xff));    /* LATIN CAPITAL LETTER A WITH ACUTE */
12605       case 0x00C2:
12606         return((CHAR)(0xC2 & 0xff));    /* A CIRCUMFLEX */
12607       case 0x0102:
12608         return((CHAR)(0xC3 & 0xff));    /* LATIN CAPITAL LETTER A WITH BREVE */
12609       case 0x00C4:
12610         return((CHAR)(0xC4 & 0xff));    /* A DIAERESIS */
12611       case 0x00C5:
12612         return((CHAR)(0xC5 & 0xff));    /* A RING */
12613       case 0x00C6:
12614         return((CHAR)(0xC6 & 0xff));    /* LATIN CAPITAL LETTER AE */
12615       case 0x00C7:
12616         return((CHAR)(0xC7 & 0xff));    /* C CEDILLA */
12617       case 0x00C8:
12618         return((CHAR)(0xC8 & 0xff));    /* E GRAVE */
12619       case 0x00C9:
12620         return((CHAR)(0xC9 & 0xff));    /* LATIN CAPITAL LETTER E WITH ACUTE */
12621       case 0x00CA:
12622         return((CHAR)(0xCA & 0xff));    /* E WITH CIRCUMFLEX */
12623       case 0x00CB:
12624         return((CHAR)(0xCB & 0xff));    /* E WITH DIAERESIS */
12625       case 0x0300:
12626         return((CHAR)(0xCC & 0xff));    /* COMBINING GRAVE ACCENT */
12627       case 0x00CD:
12628         return((CHAR)(0xCD & 0xff));    /* I WITH ACUTE */
12629       case 0x00CE:
12630         return((CHAR)(0xCE & 0xff));    /* I WITH CIRCUMFLEX */
12631       case 0x00CF:
12632         return((CHAR)(0xCF & 0xff));    /* I WITH DIAERESIS */
12633       case 0x0110:
12634         return((CHAR)(0xD0 & 0xff));    /* D WITH STROKE */
12635       case 0x00D1:
12636         return((CHAR)(0xD1 & 0xff));    /* LATIN CAPITAL LETTER N WITH TILDE */
12637       case 0x0309:
12638         return((CHAR)(0xD2 & 0xff));    /* COMBINING HOOK ABOVE */
12639       case 0x00D3:
12640         return((CHAR)(0xD3 & 0xff));    /* LATIN CAPITAL LETTER O WITH ACUTE */
12641       case 0x00D4:
12642         return((CHAR)(0xD4 & 0xff));    /* O WITH CIRCUMFLEX */
12643       case 0x01A0:
12644         return((CHAR)(0xD5 & 0xff));    /* LATIN CAPITAL LETTER O WITH HORN */
12645       case 0x00D6:
12646         return((CHAR)(0xD6 & 0xff));    /* O WITH DIAERESIS */
12647       case 0x00D7:
12648         return((CHAR)(0xD7 & 0xff));    /* MULTIPLICATION SIGN */
12649       case 0x00D8:
12650         return((CHAR)(0xD8 & 0xff));    /* O WITH STROKE */
12651       case 0x00D9:
12652         return((CHAR)(0xD9 & 0xff));    /* LATIN CAPITAL LETTER U WITH GRAVE */
12653       case 0x00DA:
12654         return((CHAR)(0xDA & 0xff));    /* LATIN CAPITAL LETTER U WITH ACUTE */
12655       case 0x00DB:
12656         return((CHAR)(0xDB & 0xff));    /* U WITH CIRCUMFLEX */
12657       case 0x00DC:
12658         return((CHAR)(0xDC & 0xff));    /* U WITH DIAERESIS */
12659       case 0x01AF:
12660         return((CHAR)(0xDD & 0xff));    /* LATIN CAPITAL LETTER U WITH HORN */
12661       case 0x0303:
12662         return((CHAR)(0xDE & 0xff));    /* COMBINING TILDE */
12663       case 0x00DF:
12664         return((CHAR)(0xDF & 0xff));    /* LATIN SMALL LETTER SHARP S */
12665       case 0x00E0:
12666         return((CHAR)(0xE0 & 0xff));    /* LATIN SMALL LETTER A WITH GRAVE */
12667       case 0x00E1:
12668         return((CHAR)(0xE1 & 0xff));    /* LATIN SMALL LETTER A WITH ACUTE */
12669       case 0x00E2:
12670         return((CHAR)(0xE2 & 0xff));    /* SMALL A WITH CIRCUMFLEX */
12671       case 0x0103:
12672         return((CHAR)(0xE3 & 0xff));    /* LATIN SMALL LETTER A WITH BREVE */
12673       case 0x00E4:
12674         return((CHAR)(0xE4 & 0xff));    /* SMALL A WITH DIAERESIS */
12675       case 0x00E5:
12676         return((CHAR)(0xE5 & 0xff));    /* SMALL A WITH RING ABOVE */
12677       case 0x00E6:
12678         return((CHAR)(0xE6 & 0xff));    /* LATIN SMALL LETTER AE */
12679       case 0x00E7:
12680         return((CHAR)(0xE7 & 0xff));    /* LATIN SMALL LETTER C WITH CEDILLA */
12681       case 0x00E8:
12682         return((CHAR)(0xE8 & 0xff));    /* LATIN SMALL LETTER E WITH GRAVE */
12683       case 0x00E9:
12684         return((CHAR)(0xE9 & 0xff));    /* LATIN SMALL LETTER E WITH ACUTE */
12685       case 0x00EA:
12686         return((CHAR)(0xEA & 0xff));    /* SMALL E WITH CIRCUMFLEX */
12687       case 0x00EB:
12688         return((CHAR)(0xEB & 0xff));    /* SMALL E WITH DIAERESIS */
12689       case 0x0301:
12690         return((CHAR)(0xEC & 0xff));    /* COMBINING ACUTE ACCENT */
12691       case 0x00ED:
12692         return((CHAR)(0xED & 0xff));    /* LATIN SMALL LETTER I WITH ACUTE */
12693       case 0x00EE:
12694         return((CHAR)(0xEE & 0xff));    /* SMALL I WITH CIRCUMFLEX */
12695       case 0x00EF:
12696         return((CHAR)(0xEF & 0xff));    /* SMALL I WITH DIAERESIS */
12697       case 0x0111:
12698         return((CHAR)(0xF0 & 0xff));    /* LATIN SMALL LETTER D WITH STROKE */
12699       case 0x00F1:
12700         return((CHAR)(0xF1 & 0xff));    /* LATIN SMALL LETTER N WITH TILDE */
12701       case 0x0323:
12702         return((CHAR)(0xF2 & 0xff));    /* COMBINING DOT BELOW */
12703       case 0x00F3:
12704         return((CHAR)(0xF3 & 0xff));    /* LATIN SMALL LETTER O WITH ACUTE */
12705       case 0x00F4:
12706         return((CHAR)(0xF4 & 0xff));    /* SMALL O WITH CIRCUMFLEX */
12707       case 0x01A1:
12708         return((CHAR)(0xF5 & 0xff));    /* LATIN SMALL LETTER O WITH HORN */
12709       case 0x00F6:
12710         return((CHAR)(0xF6 & 0xff));    /* SMALL O WITH DIAERESIS */
12711       case 0x00F7:
12712         return((CHAR)(0xF7 & 0xff));    /* DIVISION SIGN */
12713       case 0x00F8:
12714         return((CHAR)(0xF8 & 0xff));    /* LATIN SMALL LETTER O WITH STROKE */
12715       case 0x00F9:
12716         return((CHAR)(0xF9 & 0xff));    /* LATIN SMALL LETTER U WITH GRAVE */
12717       case 0x00FA:
12718         return((CHAR)(0xFA & 0xff));    /* LATIN SMALL LETTER U WITH ACUTE */
12719       case 0x00FB:
12720         return((CHAR)(0xFB & 0xff));    /* SMALL U WITH CIRCUMFLEX */
12721       case 0x00FC:
12722         return((CHAR)(0xFC & 0xff));    /* SMALL U WITH DIAERESIS */
12723       case 0x01B0:
12724         return((CHAR)(0xFD & 0xff));    /* LATIN SMALL LETTER U WITH HORN */
12725       case 0x20AB:
12726         return((CHAR)(0xFE & 0xff));    /* DONG SIGN */
12727       case 0x00FF:
12728         return((CHAR)(0xFF & 0xff));    /* SMALL Y WITH DIAERESIS */
12729     default: return(0x003f);
12730   }
12731 }
12732
12733 int                                     /* Code Page 037 - EBCDIC (U.S.) */
12734 #ifdef CK_ANSIC
12735 tx_cp37(USHORT c)
12736 #else
12737 tx_cp37(c) USHORT c;
12738 #endif /* CK_ANSIC */
12739 {
12740     switch (c) {
12741       case 0x0000:
12742         return((CHAR)(0x00 & 0xff));    /* NULL */
12743       case 0x0001:
12744         return((CHAR)(0x01 & 0xff));    /* START OF HEADING */
12745       case 0x0002:
12746         return((CHAR)(0x02 & 0xff));    /* START OF TEXT */
12747       case 0x0003:
12748         return((CHAR)(0x03 & 0xff));    /* END OF TEXT */
12749       case 0x009C:
12750         return((CHAR)(0x04 & 0xff));    /* CONTROL */
12751       case 0x0009:
12752         return((CHAR)(0x05 & 0xff));    /* HORIZONTAL TABULATION */
12753       case 0x0086:
12754         return((CHAR)(0x06 & 0xff));    /* CONTROL */
12755       case 0x007F:
12756         return((CHAR)(0x07 & 0xff));    /* DELETE */
12757       case 0x0097:
12758         return((CHAR)(0x08 & 0xff));    /* CONTROL */
12759       case 0x008D:
12760         return((CHAR)(0x09 & 0xff));    /* CONTROL */
12761       case 0x008E:
12762         return((CHAR)(0x0A & 0xff));    /* CONTROL */
12763       case 0x000B:
12764         return((CHAR)(0x0B & 0xff));    /* VERTICAL TABULATION */
12765       case 0x000C:
12766         return((CHAR)(0x0C & 0xff));    /* FORM FEED */
12767       case 0x000D:
12768         return((CHAR)(0x0D & 0xff));    /* CARRIAGE RETURN */
12769       case 0x000E:
12770         return((CHAR)(0x0E & 0xff));    /* SHIFT OUT */
12771       case 0x000F:
12772         return((CHAR)(0x0F & 0xff));    /* SHIFT IN */
12773       case 0x0010:
12774         return((CHAR)(0x10 & 0xff));    /* DATA LINK ESCAPE */
12775       case 0x0011:
12776         return((CHAR)(0x11 & 0xff));    /* DEVICE CONTROL ONE */
12777       case 0x0012:
12778         return((CHAR)(0x12 & 0xff));    /* DEVICE CONTROL TWO */
12779       case 0x0013:
12780         return((CHAR)(0x13 & 0xff));    /* DEVICE CONTROL THREE */
12781       case 0x009D:
12782         return((CHAR)(0x14 & 0xff));    /* CONTROL */
12783       case 0x0085:
12784         return((CHAR)(0x15 & 0xff));    /* CONTROL */
12785       case 0x0008:
12786         return((CHAR)(0x16 & 0xff));    /* BACKSPACE */
12787       case 0x0087:
12788         return((CHAR)(0x17 & 0xff));    /* CONTROL */
12789       case 0x0018:
12790         return((CHAR)(0x18 & 0xff));    /* CANCEL */
12791       case 0x0019:
12792         return((CHAR)(0x19 & 0xff));    /* END OF MEDIUM */
12793       case 0x0092:
12794         return((CHAR)(0x1A & 0xff));    /* CONTROL */
12795       case 0x008F:
12796         return((CHAR)(0x1B & 0xff));    /* CONTROL */
12797       case 0x001C:
12798         return((CHAR)(0x1C & 0xff));    /* FILE SEPARATOR */
12799       case 0x001D:
12800         return((CHAR)(0x1D & 0xff));    /* GROUP SEPARATOR */
12801       case 0x001E:
12802         return((CHAR)(0x1E & 0xff));    /* RECORD SEPARATOR */
12803       case 0x001F:
12804         return((CHAR)(0x1F & 0xff));    /* UNIT SEPARATOR */
12805       case 0x0080:
12806         return((CHAR)(0x20 & 0xff));    /* CONTROL */
12807       case 0x0081:
12808         return((CHAR)(0x21 & 0xff));    /* CONTROL */
12809       case 0x0082:
12810         return((CHAR)(0x22 & 0xff));    /* CONTROL */
12811       case 0x0083:
12812         return((CHAR)(0x23 & 0xff));    /* CONTROL */
12813       case 0x0084:
12814         return((CHAR)(0x24 & 0xff));    /* CONTROL */
12815       case 0x000A:
12816         return((CHAR)(0x25 & 0xff));    /* LINE FEED */
12817       case 0x0017:
12818         return((CHAR)(0x26 & 0xff));    /* END OF TRANSMISSION BLOCK */
12819       case 0x001B:
12820         return((CHAR)(0x27 & 0xff));    /* ESCAPE */
12821       case 0x0088:
12822         return((CHAR)(0x28 & 0xff));    /* CONTROL */
12823       case 0x0089:
12824         return((CHAR)(0x29 & 0xff));    /* CONTROL */
12825       case 0x008A:
12826         return((CHAR)(0x2A & 0xff));    /* CONTROL */
12827       case 0x008B:
12828         return((CHAR)(0x2B & 0xff));    /* CONTROL */
12829       case 0x008C:
12830         return((CHAR)(0x2C & 0xff));    /* CONTROL */
12831       case 0x0005:
12832         return((CHAR)(0x2D & 0xff));    /* ENQUIRY */
12833       case 0x0006:
12834         return((CHAR)(0x2E & 0xff));    /* ACKNOWLEDGE */
12835       case 0x0007:
12836         return((CHAR)(0x2F & 0xff));    /* BELL */
12837       case 0x0090:
12838         return((CHAR)(0x30 & 0xff));    /* CONTROL */
12839       case 0x0091:
12840         return((CHAR)(0x31 & 0xff));    /* CONTROL */
12841       case 0x0016:
12842         return((CHAR)(0x32 & 0xff));    /* SYNCHRONOUS IDLE */
12843       case 0x0093:
12844         return((CHAR)(0x33 & 0xff));    /* CONTROL */
12845       case 0x0094:
12846         return((CHAR)(0x34 & 0xff));    /* CONTROL */
12847       case 0x0095:
12848         return((CHAR)(0x35 & 0xff));    /* CONTROL */
12849       case 0x0096:
12850         return((CHAR)(0x36 & 0xff));    /* CONTROL */
12851       case 0x0004:
12852         return((CHAR)(0x37 & 0xff));    /* END OF TRANSMISSION */
12853       case 0x0098:
12854         return((CHAR)(0x38 & 0xff));    /* CONTROL */
12855       case 0x0099:
12856         return((CHAR)(0x39 & 0xff));    /* CONTROL */
12857       case 0x009A:
12858         return((CHAR)(0x3A & 0xff));    /* CONTROL */
12859       case 0x009B:
12860         return((CHAR)(0x3B & 0xff));    /* CONTROL */
12861       case 0x0014:
12862         return((CHAR)(0x3C & 0xff));    /* DEVICE CONTROL FOUR */
12863       case 0x0015:
12864         return((CHAR)(0x3D & 0xff));    /* NEGATIVE ACKNOWLEDGE */
12865       case 0x009E:
12866         return((CHAR)(0x3E & 0xff));    /* CONTROL */
12867       case 0x001A:
12868         return((CHAR)(0x3F & 0xff));    /* SUBSTITUTE */
12869       case 0x0020:
12870         return((CHAR)(0x40 & 0xff));    /* SPACE */
12871       case 0x00A0:
12872         return((CHAR)(0x41 & 0xff));    /* NO-BREAK SPACE */
12873       case 0x00E2:
12874         return((CHAR)(0x42 & 0xff));    /* SMALL LETTER A WITH CIRCUMFLEX */
12875       case 0x00E4:
12876         return((CHAR)(0x43 & 0xff));    /* SMALL LETTER A WITH DIAERESIS */
12877       case 0x00E0:
12878         return((CHAR)(0x44 & 0xff));    /* LATIN SMALL LETTER A WITH GRAVE */
12879       case 0x00E1:
12880         return((CHAR)(0x45 & 0xff));    /* LATIN SMALL LETTER A WITH ACUTE */
12881       case 0x00E3:
12882         return((CHAR)(0x46 & 0xff));    /* LATIN SMALL LETTER A WITH TILDE */
12883       case 0x00E5:
12884         return((CHAR)(0x47 & 0xff));    /* SMALL LETTER A WITH RING ABOVE */
12885       case 0x00E7:
12886         return((CHAR)(0x48 & 0xff));    /* LATIN SMALL LETTER C WITH CEDILLA */
12887       case 0x00F1:
12888         return((CHAR)(0x49 & 0xff));    /* LATIN SMALL LETTER N WITH TILDE */
12889       case 0x00A2:
12890         return((CHAR)(0x4A & 0xff));    /* CENT SIGN */
12891       case 0x002E:
12892         return((CHAR)(0x4B & 0xff));    /* FULL STOP */
12893       case 0x003C:
12894         return((CHAR)(0x4C & 0xff));    /* LESS-THAN SIGN */
12895       case 0x0028:
12896         return((CHAR)(0x4D & 0xff));    /* LEFT PARENTHESIS */
12897       case 0x002B:
12898         return((CHAR)(0x4E & 0xff));    /* PLUS SIGN */
12899       case 0x007C:
12900         return((CHAR)(0x4F & 0xff));    /* VERTICAL LINE */
12901       case 0x0026:
12902         return((CHAR)(0x50 & 0xff));    /* AMPERSAND */
12903       case 0x00E9:
12904         return((CHAR)(0x51 & 0xff));    /* SMALL LETTER E WITH ACUTE */
12905       case 0x00EA:
12906         return((CHAR)(0x52 & 0xff));    /* SMALL LETTER E WITH CIRCUMFLEX */
12907       case 0x00EB:
12908         return((CHAR)(0x53 & 0xff));    /* SMALL LETTER E WITH DIAERESIS */
12909       case 0x00E8:
12910         return((CHAR)(0x54 & 0xff));    /* LATIN SMALL LETTER E WITH GRAVE */
12911       case 0x00ED:
12912         return((CHAR)(0x55 & 0xff));    /* LATIN SMALL LETTER I WITH ACUTE */
12913       case 0x00EE:
12914         return((CHAR)(0x56 & 0xff));    /* SMALL LETTER I WITH CIRCUMFLEX */
12915       case 0x00EF:
12916         return((CHAR)(0x57 & 0xff));    /* SMALL LETTER I WITH DIAERESIS */
12917       case 0x00EC:
12918         return((CHAR)(0x58 & 0xff));    /* LATIN SMALL LETTER I WITH GRAVE */
12919       case 0x00DF:
12920         return((CHAR)(0x59 & 0xff));    /* SMALL LETTER SHARP S (GERMAN) */
12921       case 0x0021:
12922         return((CHAR)(0x5A & 0xff));    /* EXCLAMATION MARK */
12923       case 0x0024:
12924         return((CHAR)(0x5B & 0xff));    /* DOLLAR SIGN */
12925       case 0x002A:
12926         return((CHAR)(0x5C & 0xff));    /* ASTERISK */
12927       case 0x0029:
12928         return((CHAR)(0x5D & 0xff));    /* RIGHT PARENTHESIS */
12929       case 0x003B:
12930         return((CHAR)(0x5E & 0xff));    /* SEMICOLON */
12931       case 0x00AC:
12932         return((CHAR)(0x5F & 0xff));    /* NOT SIGN */
12933       case 0x002D:
12934         return((CHAR)(0x60 & 0xff));    /* HYPHEN-MINUS */
12935       case 0x002F:
12936         return((CHAR)(0x61 & 0xff));    /* SOLIDUS */
12937       case 0x00C2:
12938         return((CHAR)(0x62 & 0xff));    /* CAPITAL LETTER A WITH CIRCUMFLEX */
12939       case 0x00C4:
12940         return((CHAR)(0x63 & 0xff));    /* CAPITAL LETTER A WITH DIAERESIS */
12941       case 0x00C0:
12942         return((CHAR)(0x64 & 0xff));    /* LATIN CAPITAL LETTER A WITH GRAVE */
12943       case 0x00C1:
12944         return((CHAR)(0x65 & 0xff));    /* LATIN CAPITAL LETTER A WITH ACUTE */
12945       case 0x00C3:
12946         return((CHAR)(0x66 & 0xff));    /* LATIN CAPITAL LETTER A WITH TILDE */
12947       case 0x00C5:
12948         return((CHAR)(0x67 & 0xff));    /* CAPITAL LETTER A WITH RING ABOVE */
12949       case 0x00C7:
12950         return((CHAR)(0x68 & 0xff));    /* CAPITAL LETTER C WITH CEDILLA */
12951       case 0x00D1:
12952         return((CHAR)(0x69 & 0xff));    /* LATIN CAPITAL LETTER N WITH TILDE */
12953       case 0x00A6:
12954         return((CHAR)(0x6A & 0xff));    /* BROKEN BAR */
12955       case 0x002C:
12956         return((CHAR)(0x6B & 0xff));    /* COMMA */
12957       case 0x0025:
12958         return((CHAR)(0x6C & 0xff));    /* PERCENT SIGN */
12959       case 0x005F:
12960         return((CHAR)(0x6D & 0xff));    /* LOW LINE */
12961       case 0x003E:
12962         return((CHAR)(0x6E & 0xff));    /* GREATER-THAN SIGN */
12963       case 0x003F:
12964         return((CHAR)(0x6F & 0xff));    /* QUESTION MARK */
12965       case 0x00F8:
12966         return((CHAR)(0x70 & 0xff));    /* LATIN SMALL LETTER O WITH STROKE */
12967       case 0x00C9:
12968         return((CHAR)(0x71 & 0xff));    /* LATIN CAPITAL LETTER E WITH ACUTE */
12969       case 0x00CA:
12970         /* LATIN CAPITAL LETTER E WITH CIRCUMFLEX */
12971         return((CHAR)(0x72 & 0xff));
12972       case 0x00CB:
12973         /* LATIN CAPITAL LETTER E WITH DIAERESIS */
12974         return((CHAR)(0x73 & 0xff));
12975       case 0x00C8:
12976         return((CHAR)(0x74 & 0xff));    /* LATIN CAPITAL LETTER E WITH GRAVE */
12977       case 0x00CD:
12978         return((CHAR)(0x75 & 0xff));    /* LATIN CAPITAL LETTER I WITH ACUTE */
12979       case 0x00CE:
12980         /* LATIN CAPITAL LETTER I WITH CIRCUMFLEX */
12981         return((CHAR)(0x76 & 0xff));
12982       case 0x00CF:
12983         /* LATIN CAPITAL LETTER I WITH DIAERESIS */
12984         return((CHAR)(0x77 & 0xff));
12985       case 0x00CC:
12986         return((CHAR)(0x78 & 0xff));    /* LATIN CAPITAL LETTER I WITH GRAVE */
12987       case 0x0060:
12988         return((CHAR)(0x79 & 0xff));    /* GRAVE ACCENT */
12989       case 0x003A:
12990         return((CHAR)(0x7A & 0xff));    /* COLON */
12991       case 0x0023:
12992         return((CHAR)(0x7B & 0xff));    /* NUMBER SIGN */
12993       case 0x0040:
12994         return((CHAR)(0x7C & 0xff));    /* COMMERCIAL AT */
12995       case 0x0027:
12996         return((CHAR)(0x7D & 0xff));    /* APOSTROPHE */
12997       case 0x003D:
12998         return((CHAR)(0x7E & 0xff));    /* EQUALS SIGN */
12999       case 0x0022:
13000         return((CHAR)(0x7F & 0xff));    /* QUOTATION MARK */
13001       case 0x00D8:
13002         /* LATIN CAPITAL LETTER O WITH STROKE */
13003         return((CHAR)(0x80 & 0xff));
13004       case 0x0061:
13005         return((CHAR)(0x81 & 0xff));    /* LATIN SMALL LETTER A */
13006       case 0x0062:
13007         return((CHAR)(0x82 & 0xff));    /* LATIN SMALL LETTER B */
13008       case 0x0063:
13009         return((CHAR)(0x83 & 0xff));    /* LATIN SMALL LETTER C */
13010       case 0x0064:
13011         return((CHAR)(0x84 & 0xff));    /* LATIN SMALL LETTER D */
13012       case 0x0065:
13013         return((CHAR)(0x85 & 0xff));    /* LATIN SMALL LETTER E */
13014       case 0x0066:
13015         return((CHAR)(0x86 & 0xff));    /* LATIN SMALL LETTER F */
13016       case 0x0067:
13017         return((CHAR)(0x87 & 0xff));    /* LATIN SMALL LETTER G */
13018       case 0x0068:
13019         return((CHAR)(0x88 & 0xff));    /* LATIN SMALL LETTER H */
13020       case 0x0069:
13021         return((CHAR)(0x89 & 0xff));    /* LATIN SMALL LETTER I */
13022       case 0x00AB:
13023         /* LEFT-POINTING DOUBLE ANGLE QUOTATION MARK */
13024         return((CHAR)(0x8A & 0xff));
13025       case 0x00BB:
13026         /* RIGHT-POINTING DOUBLE ANGLE QUOTATION MAR K*/
13027         return((CHAR)(0x8B & 0xff));
13028       case 0x00F0:
13029         /* LATIN SMALL LETTER ETH (ICELANDIC) */
13030         return((CHAR)(0x8C & 0xff));
13031       case 0x00FD:
13032         return((CHAR)(0x8D & 0xff));    /* LATIN SMALL LETTER Y WITH ACUTE */
13033       case 0x00FE:
13034         /* LATIN SMALL LETTER THORN (ICELANDIC) */
13035         return((CHAR)(0x8E & 0xff));
13036       case 0x00B1:
13037         return((CHAR)(0x8F & 0xff));    /* PLUS-MINUS SIGN */
13038       case 0x00B0:
13039         return((CHAR)(0x90 & 0xff));    /* DEGREE SIGN */
13040       case 0x006A:
13041         return((CHAR)(0x91 & 0xff));    /* LATIN SMALL LETTER J */
13042       case 0x006B:
13043         return((CHAR)(0x92 & 0xff));    /* LATIN SMALL LETTER K */
13044       case 0x006C:
13045         return((CHAR)(0x93 & 0xff));    /* LATIN SMALL LETTER L */
13046       case 0x006D:
13047         return((CHAR)(0x94 & 0xff));    /* LATIN SMALL LETTER M */
13048       case 0x006E:
13049         return((CHAR)(0x95 & 0xff));    /* LATIN SMALL LETTER N */
13050       case 0x006F:
13051         return((CHAR)(0x96 & 0xff));    /* LATIN SMALL LETTER O */
13052       case 0x0070:
13053         return((CHAR)(0x97 & 0xff));    /* LATIN SMALL LETTER P */
13054       case 0x0071:
13055         return((CHAR)(0x98 & 0xff));    /* LATIN SMALL LETTER Q */
13056       case 0x0072:
13057         return((CHAR)(0x99 & 0xff));    /* LATIN SMALL LETTER R */
13058       case 0x00AA:
13059         return((CHAR)(0x9A & 0xff));    /* FEMININE ORDINAL INDICATOR */
13060       case 0x00BA:
13061         return((CHAR)(0x9B & 0xff));    /* MASCULINE ORDINAL INDICATOR */
13062       case 0x00E6:
13063         return((CHAR)(0x9C & 0xff));    /* LATIN SMALL LIGATURE AE */
13064       case 0x00B8:
13065         return((CHAR)(0x9D & 0xff));    /* CEDILLA */
13066       case 0x00C6:
13067         return((CHAR)(0x9E & 0xff));    /* LATIN CAPITAL LIGATURE AE */
13068       case 0x00A4:
13069         return((CHAR)(0x9F & 0xff));    /* CURRENCY SIGN */
13070       case 0x00B5:
13071         return((CHAR)(0xA0 & 0xff));    /* MICRO SIGN */
13072       case 0x007E:
13073         return((CHAR)(0xA1 & 0xff));    /* TILDE */
13074       case 0x0073:
13075         return((CHAR)(0xA2 & 0xff));    /* LATIN SMALL LETTER S */
13076       case 0x0074:
13077         return((CHAR)(0xA3 & 0xff));    /* LATIN SMALL LETTER T */
13078       case 0x0075:
13079         return((CHAR)(0xA4 & 0xff));    /* LATIN SMALL LETTER U */
13080       case 0x0076:
13081         return((CHAR)(0xA5 & 0xff));    /* LATIN SMALL LETTER V */
13082       case 0x0077:
13083         return((CHAR)(0xA6 & 0xff));    /* LATIN SMALL LETTER W */
13084       case 0x0078:
13085         return((CHAR)(0xA7 & 0xff));    /* LATIN SMALL LETTER X */
13086       case 0x0079:
13087         return((CHAR)(0xA8 & 0xff));    /* LATIN SMALL LETTER Y */
13088       case 0x007A:
13089         return((CHAR)(0xA9 & 0xff));    /* LATIN SMALL LETTER Z */
13090       case 0x00A1:
13091         return((CHAR)(0xAA & 0xff));    /* INVERTED EXCLAMATION MARK */
13092       case 0x00BF:
13093         return((CHAR)(0xAB & 0xff));    /* INVERTED QUESTION MARK */
13094       case 0x00D0:
13095         /* LATIN CAPITAL LETTER ETH (ICELANDIC) */
13096         return((CHAR)(0xAC & 0xff));
13097       case 0x00DD:
13098         return((CHAR)(0xAD & 0xff));    /* LATIN CAPITAL LETTER Y WITH ACUTE */
13099       case 0x00DE:
13100         /* LATIN CAPITAL LETTER THORN (ICELANDIC) */
13101         return((CHAR)(0xAE & 0xff));
13102       case 0x00AE:
13103         return((CHAR)(0xAF & 0xff));    /* REGISTERED SIGN */
13104       case 0x005E:
13105         return((CHAR)(0xB0 & 0xff));    /* CIRCUMFLEX ACCENT */
13106       case 0x00A3:
13107         return((CHAR)(0xB1 & 0xff));    /* POUND SIGN */
13108       case 0x00A5:
13109         return((CHAR)(0xB2 & 0xff));    /* YEN SIGN */
13110       case 0x00B7:
13111         return((CHAR)(0xB3 & 0xff));    /* MIDDLE DOT */
13112       case 0x00A9:
13113         return((CHAR)(0xB4 & 0xff));    /* COPYRIGHT SIGN */
13114       case 0x00A7:
13115         return((CHAR)(0xB5 & 0xff));    /* SECTION SIGN */
13116       case 0x00B6:
13117         return((CHAR)(0xB6 & 0xff));    /* PILCROW SIGN */
13118       case 0x00BC:
13119         return((CHAR)(0xB7 & 0xff));    /* VULGAR FRACTION ONE QUARTER */
13120       case 0x00BD:
13121         return((CHAR)(0xB8 & 0xff));    /* VULGAR FRACTION ONE HALF */
13122       case 0x00BE:
13123         return((CHAR)(0xB9 & 0xff));    /* VULGAR FRACTION THREE QUARTERS */
13124       case 0x005B:
13125         return((CHAR)(0xBA & 0xff));    /* LEFT SQUARE BRACKET */
13126       case 0x005D:
13127         return((CHAR)(0xBB & 0xff));    /* RIGHT SQUARE BRACKET */
13128       case 0x00AF:
13129         return((CHAR)(0xBC & 0xff));    /* MACRON */
13130       case 0x00A8:
13131         return((CHAR)(0xBD & 0xff));    /* DIAERESIS */
13132       case 0x00B4:
13133         return((CHAR)(0xBE & 0xff));    /* ACUTE ACCENT */
13134       case 0x00D7:
13135         return((CHAR)(0xBF & 0xff));    /* MULTIPLICATION SIGN */
13136       case 0x007B:
13137         return((CHAR)(0xC0 & 0xff));    /* LEFT CURLY BRACKET */
13138       case 0x0041:
13139         return((CHAR)(0xC1 & 0xff));    /* LATIN CAPITAL LETTER A */
13140       case 0x0042:
13141         return((CHAR)(0xC2 & 0xff));    /* LATIN CAPITAL LETTER B */
13142       case 0x0043:
13143         return((CHAR)(0xC3 & 0xff));    /* LATIN CAPITAL LETTER C */
13144       case 0x0044:
13145         return((CHAR)(0xC4 & 0xff));    /* LATIN CAPITAL LETTER D */
13146       case 0x0045:
13147         return((CHAR)(0xC5 & 0xff));    /* LATIN CAPITAL LETTER E */
13148       case 0x0046:
13149         return((CHAR)(0xC6 & 0xff));    /* LATIN CAPITAL LETTER F */
13150       case 0x0047:
13151         return((CHAR)(0xC7 & 0xff));    /* LATIN CAPITAL LETTER G */
13152       case 0x0048:
13153         return((CHAR)(0xC8 & 0xff));    /* LATIN CAPITAL LETTER H */
13154       case 0x0049:
13155         return((CHAR)(0xC9 & 0xff));    /* LATIN CAPITAL LETTER I */
13156       case 0x00AD:
13157         return((CHAR)(0xCA & 0xff));    /* SOFT HYPHEN */
13158       case 0x00F4:
13159         return((CHAR)(0xCB & 0xff));    /* SMALL LETTER O WITH CIRCUMFLEX */
13160       case 0x00F6:
13161         return((CHAR)(0xCC & 0xff));    /* SMALL LETTER O WITH DIAERESIS */
13162       case 0x00F2:
13163         return((CHAR)(0xCD & 0xff));    /* LATIN SMALL LETTER O WITH GRAVE */
13164       case 0x00F3:
13165         return((CHAR)(0xCE & 0xff));    /* LATIN SMALL LETTER O WITH ACUTE */
13166       case 0x00F5:
13167         return((CHAR)(0xCF & 0xff));    /* LATIN SMALL LETTER O WITH TILDE */
13168       case 0x007D:
13169         return((CHAR)(0xD0 & 0xff));    /* RIGHT CURLY BRACKET */
13170       case 0x004A:
13171         return((CHAR)(0xD1 & 0xff));    /* LATIN CAPITAL LETTER J */
13172       case 0x004B:
13173         return((CHAR)(0xD2 & 0xff));    /* LATIN CAPITAL LETTER K */
13174       case 0x004C:
13175         return((CHAR)(0xD3 & 0xff));    /* LATIN CAPITAL LETTER L */
13176       case 0x004D:
13177         return((CHAR)(0xD4 & 0xff));    /* LATIN CAPITAL LETTER M */
13178       case 0x004E:
13179         return((CHAR)(0xD5 & 0xff));    /* LATIN CAPITAL LETTER N */
13180       case 0x004F:
13181         return((CHAR)(0xD6 & 0xff));    /* LATIN CAPITAL LETTER O */
13182       case 0x0050:
13183         return((CHAR)(0xD7 & 0xff));    /* LATIN CAPITAL LETTER P */
13184       case 0x0051:
13185         return((CHAR)(0xD8 & 0xff));    /* LATIN CAPITAL LETTER Q */
13186       case 0x0052:
13187         return((CHAR)(0xD9 & 0xff));    /* LATIN CAPITAL LETTER R */
13188       case 0x00B9:
13189         return((CHAR)(0xDA & 0xff));    /* SUPERSCRIPT ONE */
13190       case 0x00FB:
13191         return((CHAR)(0xDB & 0xff));    /* SMALL LETTER U WITH CIRCUMFLEX */
13192       case 0x00FC:
13193         return((CHAR)(0xDC & 0xff));    /* SMALL LETTER U WITH DIAERESIS */
13194       case 0x00F9:
13195         return((CHAR)(0xDD & 0xff));    /* SMALL LETTER U WITH GRAVE */
13196       case 0x00FA:
13197         return((CHAR)(0xDE & 0xff));    /* SMALL LETTER U WITH ACUTE */
13198       case 0x00FF:
13199         return((CHAR)(0xDF & 0xff));    /* SMALL LETTER Y WITH DIAERESIS */
13200       case 0x005C:
13201         return((CHAR)(0xE0 & 0xff));    /* REVERSE SOLIDUS */
13202       case 0x00F7:
13203         return((CHAR)(0xE1 & 0xff));    /* DIVISION SIGN */
13204       case 0x0053:
13205         return((CHAR)(0xE2 & 0xff));    /* LATIN CAPITAL LETTER S */
13206       case 0x0054:
13207         return((CHAR)(0xE3 & 0xff));    /* LATIN CAPITAL LETTER T */
13208       case 0x0055:
13209         return((CHAR)(0xE4 & 0xff));    /* LATIN CAPITAL LETTER U */
13210       case 0x0056:
13211         return((CHAR)(0xE5 & 0xff));    /* LATIN CAPITAL LETTER V */
13212       case 0x0057:
13213         return((CHAR)(0xE6 & 0xff));    /* LATIN CAPITAL LETTER W */
13214       case 0x0058:
13215         return((CHAR)(0xE7 & 0xff));    /* LATIN CAPITAL LETTER X */
13216       case 0x0059:
13217         return((CHAR)(0xE8 & 0xff));    /* LATIN CAPITAL LETTER Y */
13218       case 0x005A:
13219         return((CHAR)(0xE9 & 0xff));    /* LATIN CAPITAL LETTER Z */
13220       case 0x00B2:
13221         return((CHAR)(0xEA & 0xff));    /* SUPERSCRIPT TWO */
13222       case 0x00D4:
13223         return((CHAR)(0xEB & 0xff));    /* CAPITAL LETTER O WITH CIRCUMFLEX */
13224       case 0x00D6:
13225         return((CHAR)(0xEC & 0xff));    /* CAPITAL LETTER O WITH DIAERESIS */
13226       case 0x00D2:
13227         return((CHAR)(0xED & 0xff));    /* CAPITAL LETTER O WITH GRAVE */
13228       case 0x00D3:
13229         return((CHAR)(0xEE & 0xff));    /* CAPITAL LETTER O WITH ACUTE */
13230       case 0x00D5:
13231         return((CHAR)(0xEF & 0xff));    /* CAPITAL LETTER O WITH TILDE */
13232       case 0x0030:
13233         return((CHAR)(0xF0 & 0xff));    /* DIGIT ZERO */
13234       case 0x0031:
13235         return((CHAR)(0xF1 & 0xff));    /* DIGIT ONE */
13236       case 0x0032:
13237         return((CHAR)(0xF2 & 0xff));    /* DIGIT TWO */
13238       case 0x0033:
13239         return((CHAR)(0xF3 & 0xff));    /* DIGIT THREE */
13240       case 0x0034:
13241         return((CHAR)(0xF4 & 0xff));    /* DIGIT FOUR */
13242       case 0x0035:
13243         return((CHAR)(0xF5 & 0xff));    /* DIGIT FIVE */
13244       case 0x0036:
13245         return((CHAR)(0xF6 & 0xff));    /* DIGIT SIX */
13246       case 0x0037:
13247         return((CHAR)(0xF7 & 0xff));    /* DIGIT SEVEN */
13248       case 0x0038:
13249         return((CHAR)(0xF8 & 0xff));    /* DIGIT EIGHT */
13250       case 0x0039:
13251         return((CHAR)(0xF9 & 0xff));    /* DIGIT NINE */
13252       case 0x00B3:
13253         return((CHAR)(0xFA & 0xff));    /* SUPERSCRIPT THREE */
13254       case 0x00DB:
13255         return((CHAR)(0xFB & 0xff));    /* CAPITAL LETTER U WITH CIRCUMFLEX */
13256       case 0x00DC:
13257         return((CHAR)(0xFC & 0xff));    /* CAPITAL LETTER U WITH DIAERESIS */
13258       case 0x00D9:
13259         return((CHAR)(0xFD & 0xff));    /* LATIN CAPITAL LETTER U WITH GRAVE */
13260       case 0x00DA:
13261         return((CHAR)(0xFE & 0xff));    /* LATIN CAPITAL LETTER U WITH ACUTE */
13262       case 0x009F:
13263         return((CHAR)(0xFF & 0xff));    /* CONTROL */
13264     default: return(0x003f);
13265     }
13266 }
13267
13268
13269 int                                     /* PC Code Page 855 */
13270 #ifdef CK_ANSIC
13271 tx_cp855(USHORT c)
13272 #else
13273 tx_cp855(c) USHORT c;
13274 #endif /* CK_ANSIC */
13275 {
13276     if (c < 0x80)                       /* Has C1 graphics */
13277       return((CHAR)(c & 0xff));
13278     switch (c) {
13279       case 0x00a4: return((CHAR)(207 & 0xff));
13280       case 0x00a7: return((CHAR)(253 & 0xff));
13281       case 0x00ab: return((CHAR)(174 & 0xff));
13282       case 0x00bb: return((CHAR)(175 & 0xff));
13283       case 0x0401: return((CHAR)(133 & 0xff));
13284       case 0x0402: return((CHAR)(129 & 0xff));
13285       case 0x0403: return((CHAR)(131 & 0xff));
13286       case 0x0404: return((CHAR)(135 & 0xff));
13287       case 0x0405: return((CHAR)(137 & 0xff));
13288       case 0x0406: return((CHAR)(139 & 0xff));
13289       case 0x0407: return((CHAR)(141 & 0xff));
13290       case 0x0408: return((CHAR)(143 & 0xff));
13291       case 0x0409: return((CHAR)(145 & 0xff));
13292       case 0x040a: return((CHAR)(147 & 0xff));
13293       case 0x040b: return((CHAR)(149 & 0xff));
13294       case 0x040c: return((CHAR)(151 & 0xff));
13295       case 0x040e: return((CHAR)(153 & 0xff));
13296       case 0x040f: return((CHAR)(155 & 0xff));
13297       case 0x0410: return((CHAR)(161 & 0xff));
13298       case 0x0411: return((CHAR)(163 & 0xff));
13299       case 0x0412: return((CHAR)(236 & 0xff));
13300       case 0x0413: return((CHAR)(173 & 0xff));
13301       case 0x0414: return((CHAR)(167 & 0xff));
13302       case 0x0415: return((CHAR)(169 & 0xff));
13303       case 0x0416: return((CHAR)(234 & 0xff));
13304       case 0x0417: return((CHAR)(244 & 0xff));
13305       case 0x0418: return((CHAR)(184 & 0xff));
13306       case 0x0419: return((CHAR)(190 & 0xff));
13307       case 0x041a: return((CHAR)(199 & 0xff));
13308       case 0x041b: return((CHAR)(209 & 0xff));
13309       case 0x041c: return((CHAR)(211 & 0xff));
13310       case 0x041d: return((CHAR)(213 & 0xff));
13311       case 0x041e: return((CHAR)(215 & 0xff));
13312       case 0x041f: return((CHAR)(221 & 0xff));
13313       case 0x0420: return((CHAR)(226 & 0xff));
13314       case 0x0421: return((CHAR)(228 & 0xff));
13315       case 0x0422: return((CHAR)(230 & 0xff));
13316       case 0x0423: return((CHAR)(232 & 0xff));
13317       case 0x0424: return((CHAR)(171 & 0xff));
13318       case 0x0425: return((CHAR)(182 & 0xff));
13319       case 0x0426: return((CHAR)(165 & 0xff));
13320       case 0x0427: return((CHAR)(252 & 0xff));
13321       case 0x0428: return((CHAR)(246 & 0xff));
13322       case 0x0429: return((CHAR)(250 & 0xff));
13323       case 0x042a: return((CHAR)(159 & 0xff));
13324       case 0x042b: return((CHAR)(242 & 0xff));
13325       case 0x042c: return((CHAR)(238 & 0xff));
13326       case 0x042d: return((CHAR)(248 & 0xff));
13327       case 0x042e: return((CHAR)(157 & 0xff));
13328       case 0x042f: return((CHAR)(224 & 0xff));
13329       case 0x0430: return((CHAR)(160 & 0xff));
13330       case 0x0431: return((CHAR)(162 & 0xff));
13331       case 0x0432: return((CHAR)(235 & 0xff));
13332       case 0x0433: return((CHAR)(172 & 0xff));
13333       case 0x0434: return((CHAR)(166 & 0xff));
13334       case 0x0435: return((CHAR)(168 & 0xff));
13335       case 0x0436: return((CHAR)(233 & 0xff));
13336       case 0x0437: return((CHAR)(243 & 0xff));
13337       case 0x0438: return((CHAR)(183 & 0xff));
13338       case 0x0439: return((CHAR)(189 & 0xff));
13339       case 0x043a: return((CHAR)(198 & 0xff));
13340       case 0x043b: return((CHAR)(208 & 0xff));
13341       case 0x043c: return((CHAR)(210 & 0xff));
13342       case 0x043d: return((CHAR)(212 & 0xff));
13343       case 0x043e: return((CHAR)(214 & 0xff));
13344       case 0x043f: return((CHAR)(216 & 0xff));
13345       case 0x0440: return((CHAR)(225 & 0xff));
13346       case 0x0441: return((CHAR)(227 & 0xff));
13347       case 0x0442: return((CHAR)(229 & 0xff));
13348       case 0x0443: return((CHAR)(231 & 0xff));
13349       case 0x0444: return((CHAR)(170 & 0xff));
13350       case 0x0445: return((CHAR)(181 & 0xff));
13351       case 0x0446: return((CHAR)(164 & 0xff));
13352       case 0x0447: return((CHAR)(251 & 0xff));
13353       case 0x0448: return((CHAR)(245 & 0xff));
13354       case 0x0449: return((CHAR)(249 & 0xff));
13355       case 0x044a: return((CHAR)(158 & 0xff));
13356       case 0x044b: return((CHAR)(241 & 0xff));
13357       case 0x044c: return((CHAR)(237 & 0xff));
13358       case 0x044d: return((CHAR)(247 & 0xff));
13359       case 0x044e: return((CHAR)(156 & 0xff));
13360       case 0x044f: return((CHAR)(222 & 0xff));
13361       case 0x0451: return((CHAR)(132 & 0xff));
13362       case 0x0452: return((CHAR)(128 & 0xff));
13363       case 0x0453: return((CHAR)(130 & 0xff));
13364       case 0x0454: return((CHAR)(134 & 0xff));
13365       case 0x0455: return((CHAR)(136 & 0xff));
13366       case 0x0456: return((CHAR)(138 & 0xff));
13367       case 0x0457: return((CHAR)(140 & 0xff));
13368       case 0x0458: return((CHAR)(142 & 0xff));
13369       case 0x0459: return((CHAR)(144 & 0xff));
13370       case 0x045a: return((CHAR)(146 & 0xff));
13371       case 0x045b: return((CHAR)(148 & 0xff));
13372       case 0x045c: return((CHAR)(150 & 0xff));
13373       case 0x045e: return((CHAR)(152 & 0xff));
13374       case 0x045f: return((CHAR)(154 & 0xff));
13375       case 0x2116: return((CHAR)(239 & 0xff));
13376       case 0x2500: return((CHAR)(196 & 0xff));
13377       case 0x2502: return((CHAR)(179 & 0xff));
13378       case 0x250c: return((CHAR)(218 & 0xff));
13379       case 0x2510: return((CHAR)(191 & 0xff));
13380       case 0x2514: return((CHAR)(192 & 0xff));
13381       case 0x2518: return((CHAR)(217 & 0xff));
13382       case 0x251c: return((CHAR)(195 & 0xff));
13383       case 0x2524: return((CHAR)(180 & 0xff));
13384       case 0x252c: return((CHAR)(194 & 0xff));
13385       case 0x2534: return((CHAR)(193 & 0xff));
13386       case 0x253c: return((CHAR)(197 & 0xff));
13387       case 0x2550: return((CHAR)(205 & 0xff));
13388       case 0x2551: return((CHAR)(186 & 0xff));
13389       case 0x2554: return((CHAR)(201 & 0xff));
13390       case 0x2557: return((CHAR)(187 & 0xff));
13391       case 0x255a: return((CHAR)(200 & 0xff));
13392       case 0x255d: return((CHAR)(188 & 0xff));
13393       case 0x2560: return((CHAR)(204 & 0xff));
13394       case 0x2563: return((CHAR)(185 & 0xff));
13395       case 0x2566: return((CHAR)(203 & 0xff));
13396       case 0x2569: return((CHAR)(202 & 0xff));
13397       case 0x256c: return((CHAR)(206 & 0xff));
13398       case 0x2580: return((CHAR)(223 & 0xff));
13399       case 0x2584: return((CHAR)(220 & 0xff));
13400       case 0x2588: return((CHAR)(219 & 0xff));
13401       case 0x2591: return((CHAR)(176 & 0xff));
13402       case 0x2592: return((CHAR)(177 & 0xff));
13403       case 0x2593: return((CHAR)(178 & 0xff));
13404       case 0x25a0: return((CHAR)(254 & 0xff));
13405       default: return(tx_cpsub(c));     /* For box characters etc */
13406     }
13407 }
13408
13409 int                                     /* PC Code Page 856 */
13410 #ifdef CK_ANSIC
13411 tx_cp856(USHORT c)
13412 #else
13413 tx_cp856(c) USHORT c;
13414 #endif /* CK_ANSIC */
13415 {
13416     if (c < 0x80)                       /* Has C1 graphics */
13417       return((CHAR)(c & 0xff));
13418     switch (c) {
13419       case 0x00a0: return((CHAR)(0xff & 0xff));
13420       case 0x00a7: return((CHAR)(0xd6 & 0xff));
13421       case 0x00b0: return((CHAR)(0xf8 & 0xff));
13422       case 0x00b1: return((CHAR)(0xf1 & 0xff));
13423       case 0x00b2: return((CHAR)(0xfd & 0xff));
13424       case 0x00b5: return((CHAR)(0xe6 & 0xff));
13425       case 0x00b7: return((CHAR)(0xfa & 0xff));
13426       case 0x00df: return((CHAR)(0xe1 & 0xff));
13427       case 0x00f7: return((CHAR)(0xf6 & 0xff));
13428       case 0x0393: return((CHAR)(0xe2 & 0xff));
13429       case 0x0398: return((CHAR)(0xe9 & 0xff));
13430       case 0x03a3: return((CHAR)(0xe4 & 0xff));
13431       case 0x03a6: return((CHAR)(0xe8 & 0xff));
13432       case 0x03a9: return((CHAR)(0xea & 0xff));
13433       case 0x03b1: return((CHAR)(0xe0 & 0xff));
13434       case 0x03b4: return((CHAR)(0xeb & 0xff));
13435       case 0x03b5: return((CHAR)(0xee & 0xff));
13436       case 0x03c0: return((CHAR)(0xe3 & 0xff));
13437       case 0x03c3: return((CHAR)(0xe5 & 0xff));
13438       case 0x03c4: return((CHAR)(0xe7 & 0xff));
13439       case 0x03c6: return((CHAR)(0xed & 0xff));
13440       case 0x0410: return((CHAR)(0x80 & 0xff));
13441       case 0x0411: return((CHAR)(0x81 & 0xff));
13442       case 0x0412: return((CHAR)(0x82 & 0xff));
13443       case 0x0413: return((CHAR)(0x83 & 0xff));
13444       case 0x0414: return((CHAR)(0x84 & 0xff));
13445       case 0x0415: return((CHAR)(0x85 & 0xff));
13446       case 0x0416: return((CHAR)(0x86 & 0xff));
13447       case 0x0417: return((CHAR)(0x87 & 0xff));
13448       case 0x0418: return((CHAR)(0x88 & 0xff));
13449       case 0x0419: return((CHAR)(0x89 & 0xff));
13450       case 0x041a: return((CHAR)(0x8a & 0xff));
13451       case 0x041b: return((CHAR)(0x8b & 0xff));
13452       case 0x041c: return((CHAR)(0x8c & 0xff));
13453       case 0x041d: return((CHAR)(0x8d & 0xff));
13454       case 0x041e: return((CHAR)(0x8e & 0xff));
13455       case 0x041f: return((CHAR)(0x8f & 0xff));
13456       case 0x0420: return((CHAR)(0x90 & 0xff));
13457       case 0x0421: return((CHAR)(0x91 & 0xff));
13458       case 0x0422: return((CHAR)(0x92 & 0xff));
13459       case 0x0423: return((CHAR)(0x93 & 0xff));
13460       case 0x0424: return((CHAR)(0x94 & 0xff));
13461       case 0x0425: return((CHAR)(0x95 & 0xff));
13462       case 0x0426: return((CHAR)(0x96 & 0xff));
13463       case 0x0427: return((CHAR)(0x97 & 0xff));
13464       case 0x0428: return((CHAR)(0x98 & 0xff));
13465       case 0x0429: return((CHAR)(0x99 & 0xff));
13466       case 0x042a: return((CHAR)(0x9a & 0xff));
13467       case 0x042b: return((CHAR)(0x9b & 0xff));
13468       case 0x042c: return((CHAR)(0x9c & 0xff));
13469       case 0x042d: return((CHAR)(0x9d & 0xff));
13470       case 0x042e: return((CHAR)(0x9e & 0xff));
13471       case 0x042f: return((CHAR)(0x9f & 0xff));
13472       case 0x0430: return((CHAR)(0xa0 & 0xff));
13473       case 0x0431: return((CHAR)(0xa1 & 0xff));
13474       case 0x0432: return((CHAR)(0xa2 & 0xff));
13475       case 0x0433: return((CHAR)(0xa3 & 0xff));
13476       case 0x0434: return((CHAR)(0xa4 & 0xff));
13477       case 0x0435: return((CHAR)(0xa5 & 0xff));
13478       case 0x0436: return((CHAR)(0xa6 & 0xff));
13479       case 0x0437: return((CHAR)(0xa7 & 0xff));
13480       case 0x0438: return((CHAR)(0xa8 & 0xff));
13481       case 0x0439: return((CHAR)(0xa9 & 0xff));
13482       case 0x043a: return((CHAR)(0xaa & 0xff));
13483       case 0x043b: return((CHAR)(0xab & 0xff));
13484       case 0x043c: return((CHAR)(0xac & 0xff));
13485       case 0x043d: return((CHAR)(0xad & 0xff));
13486       case 0x043e: return((CHAR)(0xae & 0xff));
13487       case 0x043f: return((CHAR)(0xaf & 0xff));
13488       case 0x0440: return((CHAR)(0xb0 & 0xff));
13489       case 0x0441: return((CHAR)(0xb1 & 0xff));
13490       case 0x0442: return((CHAR)(0xb2 & 0xff));
13491       case 0x0443: return((CHAR)(0xb3 & 0xff));
13492       case 0x0444: return((CHAR)(0xb4 & 0xff));
13493       case 0x0445: return((CHAR)(0xb5 & 0xff));
13494       case 0x0446: return((CHAR)(0xb6 & 0xff));
13495       case 0x0447: return((CHAR)(0xb7 & 0xff));
13496       case 0x0448: return((CHAR)(0xb8 & 0xff));
13497       case 0x0449: return((CHAR)(0xb9 & 0xff));
13498       case 0x044a: return((CHAR)(0xba & 0xff));
13499       case 0x044b: return((CHAR)(0xbb & 0xff));
13500       case 0x044c: return((CHAR)(0xbc & 0xff));
13501       case 0x044d: return((CHAR)(0xbd & 0xff));
13502       case 0x044e: return((CHAR)(0xbe & 0xff));
13503       case 0x044f: return((CHAR)(0xbf & 0xff));
13504       case 0x207f: return((CHAR)(0xfc & 0xff));
13505       case 0x2116: return((CHAR)(0xd5 & 0xff));
13506       case 0x2219: return((CHAR)(0xf9 & 0xff));
13507       case 0x221a: return((CHAR)(0xfb & 0xff));
13508       case 0x221e: return((CHAR)(0xec & 0xff));
13509       case 0x2229: return((CHAR)(0xef & 0xff));
13510       case 0x2248: return((CHAR)(0xf7 & 0xff));
13511       case 0x2261: return((CHAR)(0xf0 & 0xff));
13512       case 0x2264: return((CHAR)(0xf3 & 0xff));
13513       case 0x2265: return((CHAR)(0xf2 & 0xff));
13514       case 0x2320: return((CHAR)(0xf4 & 0xff));
13515       case 0x2321: return((CHAR)(0xf5 & 0xff));
13516       case 0x2500: return((CHAR)(0xc4 & 0xff));
13517       case 0x2502: return((CHAR)(0xd3 & 0xff));
13518       case 0x250c: return((CHAR)(0xda & 0xff));
13519       case 0x2510: return((CHAR)(0xcf & 0xff));
13520       case 0x2514: return((CHAR)(0xc0 & 0xff));
13521       case 0x2518: return((CHAR)(0xd9 & 0xff));
13522       case 0x251c: return((CHAR)(0xc3 & 0xff));
13523       case 0x2524: return((CHAR)(0xd4 & 0xff));
13524       case 0x252c: return((CHAR)(0xc2 & 0xff));
13525       case 0x2534: return((CHAR)(0xc1 & 0xff));
13526       case 0x253c: return((CHAR)(0xc5 & 0xff));
13527       case 0x2550: return((CHAR)(0xcd & 0xff));
13528       case 0x2551: return((CHAR)(0xc7 & 0xff));
13529       case 0x2554: return((CHAR)(0xc9 & 0xff));
13530       case 0x2557: return((CHAR)(0xd7 & 0xff));
13531       case 0x255a: return((CHAR)(0xc8 & 0xff));
13532       case 0x255d: return((CHAR)(0xd8 & 0xff));
13533       case 0x2560: return((CHAR)(0xcc & 0xff));
13534       case 0x2563: return((CHAR)(0xc6 & 0xff));
13535       case 0x2566: return((CHAR)(0xcb & 0xff));
13536       case 0x2569: return((CHAR)(0xca & 0xff));
13537       case 0x256c: return((CHAR)(0xce & 0xff));
13538       case 0x2580: return((CHAR)(0xdf & 0xff));
13539       case 0x2584: return((CHAR)(0xdc & 0xff));
13540       case 0x2588: return((CHAR)(0xdb & 0xff));
13541       case 0x258c: return((CHAR)(0xdd & 0xff));
13542       case 0x2590: return((CHAR)(0xde & 0xff));
13543       case 0x2591: return((CHAR)(0xd0 & 0xff));
13544       case 0x2592: return((CHAR)(0xd1 & 0xff));
13545       case 0x2593: return((CHAR)(0xd2 & 0xff));
13546       case 0x25a0: return((CHAR)(0xfe & 0xff));
13547       default: return(tx_cpsub(c));     /* For box characters etc */
13548     }
13549 }
13550
13551 int                                     /* PC Code Page 857 */
13552 #ifdef CK_ANSIC
13553 tx_cp857(USHORT c)
13554 #else
13555 tx_cp857(c) USHORT c;
13556 #endif /* CK_ANSIC */
13557 {
13558     if (c < 0x80)                       /* Has C1 graphics */
13559       return((CHAR)(c & 0xff));
13560     switch (c) {
13561       case 0x00c7: return((CHAR)(128 & 0xff));
13562       case 0x00fc: return((CHAR)(129 & 0xff));
13563       case 0x00e9: return((CHAR)(130 & 0xff));
13564       case 0x00e2: return((CHAR)(131 & 0xff));
13565       case 0x00e4: return((CHAR)(132 & 0xff));
13566       case 0x00e0: return((CHAR)(133 & 0xff));
13567       case 0x00e5: return((CHAR)(134 & 0xff));
13568       case 0x00e7: return((CHAR)(135 & 0xff));
13569       case 0x00ea: return((CHAR)(136 & 0xff));
13570       case 0x00eb: return((CHAR)(137 & 0xff));
13571       case 0x00e8: return((CHAR)(138 & 0xff));
13572       case 0x00ef: return((CHAR)(139 & 0xff));
13573       case 0x00ee: return((CHAR)(140 & 0xff));
13574       case 0x0131: return((CHAR)(141 & 0xff));
13575       case 0x00c4: return((CHAR)(142 & 0xff));
13576       case 0x00c5: return((CHAR)(143 & 0xff));
13577       case 0x00c9: return((CHAR)(144 & 0xff));
13578       case 0x00e6: return((CHAR)(145 & 0xff));
13579       case 0x00c6: return((CHAR)(146 & 0xff));
13580       case 0x00f4: return((CHAR)(147 & 0xff));
13581       case 0x00f6: return((CHAR)(148 & 0xff));
13582       case 0x00f2: return((CHAR)(149 & 0xff));
13583       case 0x00fb: return((CHAR)(150 & 0xff));
13584       case 0x00f9: return((CHAR)(151 & 0xff));
13585       case 0x0130: return((CHAR)(152 & 0xff));
13586       case 0x00d6: return((CHAR)(153 & 0xff));
13587       case 0x00dc: return((CHAR)(154 & 0xff));
13588       case 0x00f8: return((CHAR)(155 & 0xff));
13589       case 0x00a3: return((CHAR)(156 & 0xff));
13590       case 0x00d8: return((CHAR)(157 & 0xff));
13591       case 0x015e: return((CHAR)(158 & 0xff));
13592       case 0x015f: return((CHAR)(159 & 0xff));
13593       case 0x00e1: return((CHAR)(160 & 0xff));
13594       case 0x00ed: return((CHAR)(161 & 0xff));
13595       case 0x00f3: return((CHAR)(162 & 0xff));
13596       case 0x00fa: return((CHAR)(163 & 0xff));
13597       case 0x00f1: return((CHAR)(164 & 0xff));
13598       case 0x00d1: return((CHAR)(165 & 0xff));
13599       case 0x011e: return((CHAR)(166 & 0xff));
13600       case 0x011f: return((CHAR)(167 & 0xff));
13601       case 0x00bf: return((CHAR)(168 & 0xff));
13602       case 0x00ae: return((CHAR)(169 & 0xff));
13603       case 0x00ac: return((CHAR)(170 & 0xff));
13604       case 0x00bd: return((CHAR)(171 & 0xff));
13605       case 0x00bc: return((CHAR)(172 & 0xff));
13606       case 0x00a1: return((CHAR)(173 & 0xff));
13607       case 0x00ab: return((CHAR)(174 & 0xff));
13608       case 0x00bb: return((CHAR)(175 & 0xff));
13609       case 0x20ac: return((CHAR)(213 & 0xff)); /* Euro */
13610       case 0x2591: return((CHAR)(176 & 0xff));
13611       case 0x2592: return((CHAR)(177 & 0xff));
13612       case 0x2593: return((CHAR)(178 & 0xff));
13613       case 0x2502: return((CHAR)(179 & 0xff));
13614       case 0x2524: return((CHAR)(180 & 0xff));
13615       case 0x00c1: return((CHAR)(181 & 0xff));
13616       case 0x00c2: return((CHAR)(182 & 0xff));
13617       case 0x00c0: return((CHAR)(183 & 0xff));
13618       case 0x00a9: return((CHAR)(184 & 0xff));
13619       case 0x2563: return((CHAR)(185 & 0xff));
13620       case 0x2551: return((CHAR)(186 & 0xff));
13621       case 0x2557: return((CHAR)(187 & 0xff));
13622       case 0x255d: return((CHAR)(188 & 0xff));
13623       case 0x00a2: return((CHAR)(189 & 0xff));
13624       case 0x00a5: return((CHAR)(190 & 0xff));
13625       case 0x2510: return((CHAR)(191 & 0xff));
13626       case 0x2514: return((CHAR)(192 & 0xff));
13627       case 0x2534: return((CHAR)(193 & 0xff));
13628       case 0x252c: return((CHAR)(194 & 0xff));
13629       case 0x251c: return((CHAR)(195 & 0xff));
13630       case 0x2500: return((CHAR)(196 & 0xff));
13631       case 0x253c: return((CHAR)(197 & 0xff));
13632       case 0x00e3: return((CHAR)(198 & 0xff));
13633       case 0x00c3: return((CHAR)(199 & 0xff));
13634       case 0x255a: return((CHAR)(200 & 0xff));
13635       case 0x2554: return((CHAR)(201 & 0xff));
13636       case 0x2569: return((CHAR)(202 & 0xff));
13637       case 0x2566: return((CHAR)(203 & 0xff));
13638       case 0x2560: return((CHAR)(204 & 0xff));
13639       case 0x2550: return((CHAR)(205 & 0xff));
13640       case 0x256c: return((CHAR)(206 & 0xff));
13641       case 0x00a4: return((CHAR)(207 & 0xff));
13642       case 0x00ba: return((CHAR)(208 & 0xff));
13643       case 0x00aa: return((CHAR)(209 & 0xff));
13644       case 0x00ca: return((CHAR)(210 & 0xff));
13645       case 0x00cb: return((CHAR)(211 & 0xff));
13646       case 0x00c8: return((CHAR)(212 & 0xff));
13647       case 0x00cd: return((CHAR)(214 & 0xff));
13648       case 0x00ce: return((CHAR)(215 & 0xff));
13649       case 0x00cf: return((CHAR)(216 & 0xff));
13650       case 0x2518: return((CHAR)(217 & 0xff));
13651       case 0x250c: return((CHAR)(218 & 0xff));
13652       case 0x2588: return((CHAR)(219 & 0xff));
13653       case 0x2584: return((CHAR)(220 & 0xff));
13654       case 0x00a6: return((CHAR)(221 & 0xff));
13655       case 0x00cc: return((CHAR)(222 & 0xff));
13656       case 0x2580: return((CHAR)(223 & 0xff));
13657       case 0x00d3: return((CHAR)(224 & 0xff));
13658       case 0x00df: return((CHAR)(225 & 0xff));
13659       case 0x00d4: return((CHAR)(226 & 0xff));
13660       case 0x00d2: return((CHAR)(227 & 0xff));
13661       case 0x00f5: return((CHAR)(228 & 0xff));
13662       case 0x00d5: return((CHAR)(229 & 0xff));
13663       case 0x00b5: return((CHAR)(230 & 0xff));
13664       case 0x00d7: return((CHAR)(232 & 0xff));
13665       case 0x00da: return((CHAR)(233 & 0xff));
13666       case 0x00db: return((CHAR)(234 & 0xff));
13667       case 0x00d9: return((CHAR)(235 & 0xff));
13668       case 0x00ec: return((CHAR)(236 & 0xff));
13669       case 0x00ff: return((CHAR)(237 & 0xff));
13670       case 0x00af: return((CHAR)(238 & 0xff));
13671       case 0x00b4: return((CHAR)(239 & 0xff));
13672       case 0x00ad: return((CHAR)(240 & 0xff));
13673       case 0x00b1: return((CHAR)(241 & 0xff));
13674       case 0x00be: return((CHAR)(243 & 0xff));
13675       case 0x00b6: return((CHAR)(244 & 0xff));
13676       case 0x00a7: return((CHAR)(245 & 0xff));
13677       case 0x00f7: return((CHAR)(246 & 0xff));
13678       case 0x00b8: return((CHAR)(247 & 0xff));
13679       case 0x00b0: return((CHAR)(248 & 0xff));
13680       case 0x00a8: return((CHAR)(249 & 0xff));
13681       case 0x00b7: return((CHAR)(250 & 0xff));
13682       case 0x00b9: return((CHAR)(251 & 0xff));
13683       case 0x00b3: return((CHAR)(252 & 0xff));
13684       case 0x00b2: return((CHAR)(253 & 0xff));
13685       case 0x25a0: return((CHAR)(254 & 0xff));
13686       case 0x00a0: return((CHAR)(255 & 0xff));
13687       default: return(tx_cpsub(c));     /* For box characters etc */
13688     }
13689 }
13690
13691 int                                     /* PC Code Page 862 */
13692 #ifdef CK_ANSIC
13693 tx_cp862(USHORT c)
13694 #else
13695 tx_cp862(c) USHORT c;
13696 #endif /* CK_ANSIC */
13697 {
13698     if (c < 0x80)                       /* Has C1 graphics */
13699       return((CHAR)(c & 0xff));
13700     switch (c) {
13701       case 0x05d0: return((CHAR)(128 & 0xff));
13702       case 0x05d1: return((CHAR)(129 & 0xff));
13703       case 0x05d2: return((CHAR)(130 & 0xff));
13704       case 0x05d3: return((CHAR)(131 & 0xff));
13705       case 0x05d4: return((CHAR)(132 & 0xff));
13706       case 0x05d5: return((CHAR)(133 & 0xff));
13707       case 0x05d6: return((CHAR)(134 & 0xff));
13708       case 0x05d7: return((CHAR)(135 & 0xff));
13709       case 0x05d8: return((CHAR)(136 & 0xff));
13710       case 0x05d9: return((CHAR)(137 & 0xff));
13711       case 0x05da: return((CHAR)(138 & 0xff));
13712       case 0x05db: return((CHAR)(139 & 0xff));
13713       case 0x05dc: return((CHAR)(140 & 0xff));
13714       case 0x05dd: return((CHAR)(141 & 0xff));
13715       case 0x05de: return((CHAR)(142 & 0xff));
13716       case 0x05df: return((CHAR)(143 & 0xff));
13717       case 0x05e0: return((CHAR)(144 & 0xff));
13718       case 0x05e1: return((CHAR)(145 & 0xff));
13719       case 0x05e2: return((CHAR)(146 & 0xff));
13720       case 0x05e3: return((CHAR)(147 & 0xff));
13721       case 0x05e4: return((CHAR)(148 & 0xff));
13722       case 0x05e5: return((CHAR)(149 & 0xff));
13723       case 0x05e6: return((CHAR)(150 & 0xff));
13724       case 0x05e7: return((CHAR)(151 & 0xff));
13725       case 0x05e8: return((CHAR)(152 & 0xff));
13726       case 0x05e9: return((CHAR)(153 & 0xff));
13727       case 0x05ea: return((CHAR)(154 & 0xff));
13728       case 0x00a2: return((CHAR)(155 & 0xff));
13729       case 0x00a3: return((CHAR)(156 & 0xff));
13730       case 0x00a5: return((CHAR)(157 & 0xff));
13731       case 0x20a7: return((CHAR)(158 & 0xff));
13732       case 0x0192: return((CHAR)(159 & 0xff));
13733       case 0x00e1: return((CHAR)(160 & 0xff));
13734       case 0x00ed: return((CHAR)(161 & 0xff));
13735       case 0x00f3: return((CHAR)(162 & 0xff));
13736       case 0x00fa: return((CHAR)(163 & 0xff));
13737       case 0x00f1: return((CHAR)(164 & 0xff));
13738       case 0x00d1: return((CHAR)(165 & 0xff));
13739       case 0x00aa: return((CHAR)(166 & 0xff));
13740       case 0x00ba: return((CHAR)(167 & 0xff));
13741       case 0x00bf: return((CHAR)(168 & 0xff));
13742       case 0x2310: return((CHAR)(169 & 0xff));
13743       case 0x00ac: return((CHAR)(170 & 0xff));
13744       case 0x00bd: return((CHAR)(171 & 0xff));
13745       case 0x00bc: return((CHAR)(172 & 0xff));
13746       case 0x00a1: return((CHAR)(173 & 0xff));
13747       case 0x00ab: return((CHAR)(174 & 0xff));
13748       case 0x00bb: return((CHAR)(175 & 0xff));
13749       case 0x2591: return((CHAR)(176 & 0xff));
13750       case 0x2592: return((CHAR)(177 & 0xff));
13751       case 0x2593: return((CHAR)(178 & 0xff));
13752       case 0x2502: return((CHAR)(179 & 0xff));
13753       case 0x2524: return((CHAR)(180 & 0xff));
13754       case 0x2561: return((CHAR)(181 & 0xff));
13755       case 0x2562: return((CHAR)(182 & 0xff));
13756       case 0x2556: return((CHAR)(183 & 0xff));
13757       case 0x2555: return((CHAR)(184 & 0xff));
13758       case 0x2563: return((CHAR)(185 & 0xff));
13759       case 0x2551: return((CHAR)(186 & 0xff));
13760       case 0x2557: return((CHAR)(187 & 0xff));
13761       case 0x255d: return((CHAR)(188 & 0xff));
13762       case 0x255c: return((CHAR)(189 & 0xff));
13763       case 0x255b: return((CHAR)(190 & 0xff));
13764       case 0x2510: return((CHAR)(191 & 0xff));
13765       case 0x2514: return((CHAR)(192 & 0xff));
13766       case 0x2534: return((CHAR)(193 & 0xff));
13767       case 0x252c: return((CHAR)(194 & 0xff));
13768       case 0x251c: return((CHAR)(195 & 0xff));
13769       case 0x2500: return((CHAR)(196 & 0xff));
13770       case 0x253c: return((CHAR)(197 & 0xff));
13771       case 0x255e: return((CHAR)(198 & 0xff));
13772       case 0x255f: return((CHAR)(199 & 0xff));
13773       case 0x255a: return((CHAR)(200 & 0xff));
13774       case 0x2554: return((CHAR)(201 & 0xff));
13775       case 0x2569: return((CHAR)(202 & 0xff));
13776       case 0x2566: return((CHAR)(203 & 0xff));
13777       case 0x2560: return((CHAR)(204 & 0xff));
13778       case 0x2550: return((CHAR)(205 & 0xff));
13779       case 0x256c: return((CHAR)(206 & 0xff));
13780       case 0x2567: return((CHAR)(207 & 0xff));
13781       case 0x2568: return((CHAR)(208 & 0xff));
13782       case 0x2564: return((CHAR)(209 & 0xff));
13783       case 0x2565: return((CHAR)(210 & 0xff));
13784       case 0x2559: return((CHAR)(211 & 0xff));
13785       case 0x2558: return((CHAR)(212 & 0xff));
13786       case 0x2552: return((CHAR)(213 & 0xff));
13787       case 0x2553: return((CHAR)(214 & 0xff));
13788       case 0x256b: return((CHAR)(215 & 0xff));
13789       case 0x256a: return((CHAR)(216 & 0xff));
13790       case 0x2518: return((CHAR)(217 & 0xff));
13791       case 0x250c: return((CHAR)(218 & 0xff));
13792       case 0x2588: return((CHAR)(219 & 0xff));
13793       case 0x2584: return((CHAR)(220 & 0xff));
13794       case 0x258c: return((CHAR)(221 & 0xff));
13795       case 0x2590: return((CHAR)(222 & 0xff));
13796       case 0x2580: return((CHAR)(223 & 0xff));
13797       case 0x03b1: return((CHAR)(224 & 0xff));
13798       case 0x00df: return((CHAR)(225 & 0xff));
13799       case 0x0393: return((CHAR)(226 & 0xff));
13800       case 0x03c0: return((CHAR)(227 & 0xff));
13801       case 0x03a3: return((CHAR)(228 & 0xff));
13802       case 0x03c3: return((CHAR)(229 & 0xff));
13803       case 0x00b5: return((CHAR)(230 & 0xff));
13804       case 0x03c4: return((CHAR)(231 & 0xff));
13805       case 0x03a6: return((CHAR)(232 & 0xff));
13806       case 0x0398: return((CHAR)(233 & 0xff));
13807       case 0x03a9: return((CHAR)(234 & 0xff));
13808       case 0x03b4: return((CHAR)(235 & 0xff));
13809       case 0x221e: return((CHAR)(236 & 0xff));
13810       case 0x03c6: return((CHAR)(237 & 0xff));
13811       case 0x03b5: return((CHAR)(238 & 0xff));
13812       case 0x2229: return((CHAR)(239 & 0xff));
13813       case 0x2261: return((CHAR)(240 & 0xff));
13814       case 0x00b1: return((CHAR)(241 & 0xff));
13815       case 0x2265: return((CHAR)(242 & 0xff));
13816       case 0x2264: return((CHAR)(243 & 0xff));
13817       case 0x2320: return((CHAR)(244 & 0xff));
13818       case 0x2321: return((CHAR)(245 & 0xff));
13819       case 0x00f7: return((CHAR)(246 & 0xff));
13820       case 0x2248: return((CHAR)(247 & 0xff));
13821       case 0x00b0: return((CHAR)(248 & 0xff));
13822       case 0x2219: return((CHAR)(249 & 0xff));
13823       case 0x00b7: return((CHAR)(250 & 0xff));
13824       case 0x221a: return((CHAR)(251 & 0xff));
13825       case 0x207f: return((CHAR)(252 & 0xff));
13826       case 0x00b2: return((CHAR)(253 & 0xff));
13827       case 0x25a0: return((CHAR)(254 & 0xff));
13828       case 0x00a0: return((CHAR)(255 & 0xff));
13829       default: return(tx_cpsub(c));     /* For box characters etc */
13830     }
13831 }
13832
13833 int                                     /* PC Code Page 864 */
13834 #ifdef CK_ANSIC
13835 tx_cp864(USHORT c)
13836 #else
13837 tx_cp864(c) USHORT c;
13838 #endif /* CK_ANSIC */
13839 {
13840     if (c < 0x80)                       /* Has C1 graphics */
13841       return((CHAR)(c & 0xff));
13842     switch (c) {
13843       case 0x00b0: return((CHAR)0x80 & 0xff);
13844       case 0x00b7: return((CHAR)0x81 & 0xff);
13845       case 0x2219: return((CHAR)0x82 & 0xff);
13846       case 0x221a: return((CHAR)0x83 & 0xff);
13847       case 0x2592: return((CHAR)0x84 & 0xff);
13848       case 0x2500: return((CHAR)0x85 & 0xff);
13849       case 0x2502: return((CHAR)0x86 & 0xff);
13850       case 0x253c: return((CHAR)0x87 & 0xff);
13851       case 0x2524: return((CHAR)0x88 & 0xff);
13852       case 0x252c: return((CHAR)0x89 & 0xff);
13853       case 0x251c: return((CHAR)0x8a & 0xff);
13854       case 0x2534: return((CHAR)0x8b & 0xff);
13855       case 0x2510: return((CHAR)0x8c & 0xff);
13856       case 0x250c: return((CHAR)0x8d & 0xff);
13857       case 0x2514: return((CHAR)0x8e & 0xff);
13858       case 0x2518: return((CHAR)0x8f & 0xff);
13859       case 0x03b2: return((CHAR)0x90 & 0xff);
13860       case 0x221e: return((CHAR)0x91 & 0xff);
13861       case 0x03c6: return((CHAR)0x92 & 0xff);
13862       case 0x00b1: return((CHAR)0x93 & 0xff);
13863       case 0x00bd: return((CHAR)0x94 & 0xff);
13864       case 0x00bc: return((CHAR)0x95 & 0xff);
13865       case 0x2248: return((CHAR)0x96 & 0xff);
13866       case 0x00ab: return((CHAR)0x97 & 0xff);
13867       case 0x00bb: return((CHAR)0x98 & 0xff);
13868       case 0xfef7: return((CHAR)0x99 & 0xff);
13869       case 0xfef8: return((CHAR)0x9a & 0xff);
13870       case 0xfefb: return((CHAR)0x9d & 0xff);
13871       case 0xfefc: return((CHAR)0x9e & 0xff);
13872       case 0x00a0: return((CHAR)0xa0 & 0xff);
13873       case 0x00ad: return((CHAR)0xa1 & 0xff);
13874       case 0xfe82: return((CHAR)0xa2 & 0xff);
13875       case 0x00a3: return((CHAR)0xa3 & 0xff);
13876       case 0x00a4: return((CHAR)0xa4 & 0xff);
13877       case 0xfe84: return((CHAR)0xa5 & 0xff);
13878       case 0xfe8e: return((CHAR)0xa8 & 0xff);
13879       case 0xfe8f: return((CHAR)0xa9 & 0xff);
13880       case 0xfe95: return((CHAR)0xaa & 0xff);
13881       case 0xfe99: return((CHAR)0xab & 0xff);
13882       case 0x060c: return((CHAR)0xac & 0xff);
13883       case 0xfe9d: return((CHAR)0xad & 0xff);
13884       case 0xfea1: return((CHAR)0xae & 0xff);
13885       case 0xfea5: return((CHAR)0xaf & 0xff);
13886       case 0x0660: return((CHAR)0xb0 & 0xff);
13887       case 0x0661: return((CHAR)0xb1 & 0xff);
13888       case 0x0662: return((CHAR)0xb2 & 0xff);
13889       case 0x0663: return((CHAR)0xb3 & 0xff);
13890       case 0x0664: return((CHAR)0xb4 & 0xff);
13891       case 0x0665: return((CHAR)0xb5 & 0xff);
13892       case 0x0666: return((CHAR)0xb6 & 0xff);
13893       case 0x0667: return((CHAR)0xb7 & 0xff);
13894       case 0x0668: return((CHAR)0xb8 & 0xff);
13895       case 0x0669: return((CHAR)0xb9 & 0xff);
13896       case 0xfed1: return((CHAR)0xba & 0xff);
13897       case 0x061b: return((CHAR)0xbb & 0xff);
13898       case 0xfeb1: return((CHAR)0xbc & 0xff);
13899       case 0xfeb5: return((CHAR)0xbd & 0xff);
13900       case 0xfeb9: return((CHAR)0xbe & 0xff);
13901       case 0x061f: return((CHAR)0xbf & 0xff);
13902       case 0x00a2: return((CHAR)0xc0 & 0xff);
13903       case 0xfe80: return((CHAR)0xc1 & 0xff);
13904       case 0xfe81: return((CHAR)0xc2 & 0xff);
13905       case 0xfe83: return((CHAR)0xc3 & 0xff);
13906       case 0xfe85: return((CHAR)0xc4 & 0xff);
13907       case 0xfeca: return((CHAR)0xc5 & 0xff);
13908       case 0xfe8b: return((CHAR)0xc6 & 0xff);
13909       case 0xfe8d: return((CHAR)0xc7 & 0xff);
13910       case 0xfe91: return((CHAR)0xc8 & 0xff);
13911       case 0xfe93: return((CHAR)0xc9 & 0xff);
13912       case 0xfe97: return((CHAR)0xca & 0xff);
13913       case 0xfe9b: return((CHAR)0xcb & 0xff);
13914       case 0xfe9f: return((CHAR)0xcc & 0xff);
13915       case 0xfea3: return((CHAR)0xcd & 0xff);
13916       case 0xfea7: return((CHAR)0xce & 0xff);
13917       case 0xfea9: return((CHAR)0xcf & 0xff);
13918       case 0xfeab: return((CHAR)0xd0 & 0xff);
13919       case 0xfead: return((CHAR)0xd1 & 0xff);
13920       case 0xfeaf: return((CHAR)0xd2 & 0xff);
13921       case 0xfeb3: return((CHAR)0xd3 & 0xff);
13922       case 0xfeb7: return((CHAR)0xd4 & 0xff);
13923       case 0xfebb: return((CHAR)0xd5 & 0xff);
13924       case 0xfebf: return((CHAR)0xd6 & 0xff);
13925       case 0xfec1: return((CHAR)0xd7 & 0xff);
13926       case 0xfec5: return((CHAR)0xd8 & 0xff);
13927       case 0xfecb: return((CHAR)0xd9 & 0xff);
13928       case 0xfecf: return((CHAR)0xda & 0xff);
13929       case 0x00a6: return((CHAR)0xdb & 0xff);
13930       case 0x00ac: return((CHAR)0xdc & 0xff);
13931       case 0x00f7: return((CHAR)0xdd & 0xff);
13932       case 0x00d7: return((CHAR)0xde & 0xff);
13933       case 0xfec9: return((CHAR)0xdf & 0xff);
13934       case 0x0640: return((CHAR)0xe0 & 0xff);
13935       case 0xfed3: return((CHAR)0xe1 & 0xff);
13936       case 0xfed7: return((CHAR)0xe2 & 0xff);
13937       case 0xfedb: return((CHAR)0xe3 & 0xff);
13938       case 0xfedf: return((CHAR)0xe4 & 0xff);
13939       case 0xfee3: return((CHAR)0xe5 & 0xff);
13940       case 0xfee7: return((CHAR)0xe6 & 0xff);
13941       case 0xfeeb: return((CHAR)0xe7 & 0xff);
13942       case 0xfeed: return((CHAR)0xe8 & 0xff);
13943       case 0xfeef: return((CHAR)0xe9 & 0xff);
13944       case 0xfef3: return((CHAR)0xea & 0xff);
13945       case 0xfebd: return((CHAR)0xeb & 0xff);
13946       case 0xfecc: return((CHAR)0xec & 0xff);
13947       case 0xfece: return((CHAR)0xed & 0xff);
13948       case 0xfecd: return((CHAR)0xee & 0xff);
13949       case 0xfee1: return((CHAR)0xef & 0xff);
13950       case 0xfe7d: return((CHAR)0xf0 & 0xff);
13951       case 0x0651: return((CHAR)0xf1 & 0xff);
13952       case 0xfee5: return((CHAR)0xf2 & 0xff);
13953       case 0xfee9: return((CHAR)0xf3 & 0xff);
13954       case 0xfeec: return((CHAR)0xf4 & 0xff);
13955       case 0xfef0: return((CHAR)0xf5 & 0xff);
13956       case 0xfef2: return((CHAR)0xf6 & 0xff);
13957       case 0xfed0: return((CHAR)0xf7 & 0xff);
13958       case 0xfed5: return((CHAR)0xf8 & 0xff);
13959       case 0xfef5: return((CHAR)0xf9 & 0xff);
13960       case 0xfef6: return((CHAR)0xfa & 0xff);
13961       case 0xfedd: return((CHAR)0xfb & 0xff);
13962       case 0xfed9: return((CHAR)0xfc & 0xff);
13963       case 0xfef1: return((CHAR)0xfd & 0xff);
13964       case 0x25a0: return((CHAR)0xfe & 0xff);
13965       default: return(tx_cpsub(c));     /* For box characters etc */
13966     }
13967 }
13968
13969 int                                     /* PC Code Page 866 */
13970 #ifdef CK_ANSIC
13971 tx_cp866(USHORT c)
13972 #else
13973 tx_cp866(c) USHORT c;
13974 #endif /* CK_ANSIC */
13975 {
13976     if (c < 0x80)                       /* Has C1 graphics */
13977       return((CHAR)(c & 0xff));
13978     switch (c) {
13979       case 0x00a0: return((CHAR)(255 & 0xff));
13980       case 0x00a4: return((CHAR)(253 & 0xff));
13981       case 0x00b0: return((CHAR)(248 & 0xff));
13982       case 0x00b7: return((CHAR)(250 & 0xff));
13983       case 0x0401: return((CHAR)(240 & 0xff));
13984       case 0x0404: return((CHAR)(242 & 0xff));
13985       case 0x0407: return((CHAR)(244 & 0xff));
13986       case 0x040e: return((CHAR)(246 & 0xff));
13987       case 0x0410: return((CHAR)(128 & 0xff));
13988       case 0x0411: return((CHAR)(129 & 0xff));
13989       case 0x0412: return((CHAR)(130 & 0xff));
13990       case 0x0413: return((CHAR)(131 & 0xff));
13991       case 0x0414: return((CHAR)(132 & 0xff));
13992       case 0x0415: return((CHAR)(133 & 0xff));
13993       case 0x0416: return((CHAR)(134 & 0xff));
13994       case 0x0417: return((CHAR)(135 & 0xff));
13995       case 0x0418: return((CHAR)(136 & 0xff));
13996       case 0x0419: return((CHAR)(137 & 0xff));
13997       case 0x041a: return((CHAR)(138 & 0xff));
13998       case 0x041b: return((CHAR)(139 & 0xff));
13999       case 0x041c: return((CHAR)(140 & 0xff));
14000       case 0x041d: return((CHAR)(141 & 0xff));
14001       case 0x041e: return((CHAR)(142 & 0xff));
14002       case 0x041f: return((CHAR)(143 & 0xff));
14003       case 0x0420: return((CHAR)(144 & 0xff));
14004       case 0x0421: return((CHAR)(145 & 0xff));
14005       case 0x0422: return((CHAR)(146 & 0xff));
14006       case 0x0423: return((CHAR)(147 & 0xff));
14007       case 0x0424: return((CHAR)(148 & 0xff));
14008       case 0x0425: return((CHAR)(149 & 0xff));
14009       case 0x0426: return((CHAR)(150 & 0xff));
14010       case 0x0427: return((CHAR)(151 & 0xff));
14011       case 0x0428: return((CHAR)(152 & 0xff));
14012       case 0x0429: return((CHAR)(153 & 0xff));
14013       case 0x042a: return((CHAR)(154 & 0xff));
14014       case 0x042b: return((CHAR)(155 & 0xff));
14015       case 0x042c: return((CHAR)(156 & 0xff));
14016       case 0x042d: return((CHAR)(157 & 0xff));
14017       case 0x042e: return((CHAR)(158 & 0xff));
14018       case 0x042f: return((CHAR)(159 & 0xff));
14019       case 0x0430: return((CHAR)(160 & 0xff));
14020       case 0x0431: return((CHAR)(161 & 0xff));
14021       case 0x0432: return((CHAR)(162 & 0xff));
14022       case 0x0433: return((CHAR)(163 & 0xff));
14023       case 0x0434: return((CHAR)(164 & 0xff));
14024       case 0x0435: return((CHAR)(165 & 0xff));
14025       case 0x0436: return((CHAR)(166 & 0xff));
14026       case 0x0437: return((CHAR)(167 & 0xff));
14027       case 0x0438: return((CHAR)(168 & 0xff));
14028       case 0x0439: return((CHAR)(169 & 0xff));
14029       case 0x043a: return((CHAR)(170 & 0xff));
14030       case 0x043b: return((CHAR)(171 & 0xff));
14031       case 0x043c: return((CHAR)(172 & 0xff));
14032       case 0x043d: return((CHAR)(173 & 0xff));
14033       case 0x043e: return((CHAR)(174 & 0xff));
14034       case 0x043f: return((CHAR)(175 & 0xff));
14035       case 0x0440: return((CHAR)(224 & 0xff));
14036       case 0x0441: return((CHAR)(225 & 0xff));
14037       case 0x0442: return((CHAR)(226 & 0xff));
14038       case 0x0443: return((CHAR)(227 & 0xff));
14039       case 0x0444: return((CHAR)(228 & 0xff));
14040       case 0x0445: return((CHAR)(229 & 0xff));
14041       case 0x0446: return((CHAR)(230 & 0xff));
14042       case 0x0447: return((CHAR)(231 & 0xff));
14043       case 0x0448: return((CHAR)(232 & 0xff));
14044       case 0x0449: return((CHAR)(233 & 0xff));
14045       case 0x044a: return((CHAR)(234 & 0xff));
14046       case 0x044b: return((CHAR)(235 & 0xff));
14047       case 0x044c: return((CHAR)(236 & 0xff));
14048       case 0x044d: return((CHAR)(237 & 0xff));
14049       case 0x044e: return((CHAR)(238 & 0xff));
14050       case 0x044f: return((CHAR)(239 & 0xff));
14051       case 0x0451: return((CHAR)(241 & 0xff));
14052       case 0x0454: return((CHAR)(243 & 0xff));
14053       case 0x0457: return((CHAR)(245 & 0xff));
14054       case 0x045e: return((CHAR)(247 & 0xff));
14055       case 0x2116: return((CHAR)(252 & 0xff));
14056       case 0x2219: return((CHAR)(249 & 0xff));
14057       case 0x221a: return((CHAR)(251 & 0xff));
14058       case 0x2500: return((CHAR)(196 & 0xff));
14059       case 0x2502: return((CHAR)(179 & 0xff));
14060       case 0x250c: return((CHAR)(218 & 0xff));
14061       case 0x2510: return((CHAR)(191 & 0xff));
14062       case 0x2514: return((CHAR)(192 & 0xff));
14063       case 0x2518: return((CHAR)(217 & 0xff));
14064       case 0x251c: return((CHAR)(195 & 0xff));
14065       case 0x2524: return((CHAR)(180 & 0xff));
14066       case 0x252c: return((CHAR)(194 & 0xff));
14067       case 0x2534: return((CHAR)(193 & 0xff));
14068       case 0x253c: return((CHAR)(197 & 0xff));
14069       case 0x2550: return((CHAR)(205 & 0xff));
14070       case 0x2551: return((CHAR)(186 & 0xff));
14071       case 0x2552: return((CHAR)(213 & 0xff));
14072       case 0x2553: return((CHAR)(214 & 0xff));
14073       case 0x2554: return((CHAR)(201 & 0xff));
14074       case 0x2555: return((CHAR)(184 & 0xff));
14075       case 0x2556: return((CHAR)(183 & 0xff));
14076       case 0x2557: return((CHAR)(187 & 0xff));
14077       case 0x2558: return((CHAR)(212 & 0xff));
14078       case 0x2559: return((CHAR)(211 & 0xff));
14079       case 0x255a: return((CHAR)(200 & 0xff));
14080       case 0x255b: return((CHAR)(190 & 0xff));
14081       case 0x255c: return((CHAR)(189 & 0xff));
14082       case 0x255d: return((CHAR)(188 & 0xff));
14083       case 0x255e: return((CHAR)(198 & 0xff));
14084       case 0x255f: return((CHAR)(199 & 0xff));
14085       case 0x2560: return((CHAR)(204 & 0xff));
14086       case 0x2561: return((CHAR)(181 & 0xff));
14087       case 0x2562: return((CHAR)(182 & 0xff));
14088       case 0x2563: return((CHAR)(185 & 0xff));
14089       case 0x2564: return((CHAR)(209 & 0xff));
14090       case 0x2565: return((CHAR)(210 & 0xff));
14091       case 0x2566: return((CHAR)(203 & 0xff));
14092       case 0x2567: return((CHAR)(207 & 0xff));
14093       case 0x2568: return((CHAR)(208 & 0xff));
14094       case 0x2569: return((CHAR)(202 & 0xff));
14095       case 0x256a: return((CHAR)(216 & 0xff));
14096       case 0x256b: return((CHAR)(215 & 0xff));
14097       case 0x256c: return((CHAR)(206 & 0xff));
14098       case 0x2580: return((CHAR)(223 & 0xff));
14099       case 0x2584: return((CHAR)(220 & 0xff));
14100       case 0x2588: return((CHAR)(219 & 0xff));
14101       case 0x258c: return((CHAR)(221 & 0xff));
14102       case 0x2590: return((CHAR)(222 & 0xff));
14103       case 0x2591: return((CHAR)(176 & 0xff));
14104       case 0x2592: return((CHAR)(177 & 0xff));
14105       case 0x2593: return((CHAR)(178 & 0xff));
14106       case 0x25a0: return((CHAR)(254 & 0xff));
14107       default: return(tx_cpsub(c));     /* For box characters etc */
14108     }
14109 }
14110
14111 int                                     /* PC Code Page 869 */
14112 #ifdef CK_ANSIC
14113 tx_cp869(USHORT c)
14114 #else
14115 tx_cp869(c) USHORT c;
14116 #endif /* CK_ANSIC */
14117 {
14118     if (c < 0x80)                       /* Has C1 graphics */
14119       return((CHAR)(c & 0xff));
14120     switch (c) {
14121       case 0x00a0: return((CHAR)(255 & 0xff));
14122       case 0x00a3: return((CHAR)(156 & 0xff));
14123       case 0x00a6: return((CHAR)(138 & 0xff));
14124       case 0x00a7: return((CHAR)(245 & 0xff));
14125       case 0x00a8: return((CHAR)(249 & 0xff));
14126       case 0x00a9: return((CHAR)(151 & 0xff));
14127       case 0x00ab: return((CHAR)(174 & 0xff));
14128       case 0x00ac: return((CHAR)(137 & 0xff));
14129       case 0x00ad: return((CHAR)(240 & 0xff));
14130       case 0x00b0: return((CHAR)(248 & 0xff));
14131       case 0x00b1: return((CHAR)(241 & 0xff));
14132       case 0x00b2: return((CHAR)(153 & 0xff));
14133       case 0x00b3: return((CHAR)(154 & 0xff));
14134       case 0x00b7: return((CHAR)(136 & 0xff));
14135       case 0x00bb: return((CHAR)(175 & 0xff));
14136       case 0x00bd: return((CHAR)(171 & 0xff));
14137       case 0x0384: return((CHAR)(239 & 0xff));
14138       case 0x0385: return((CHAR)(247 & 0xff));
14139       case 0x0386: return((CHAR)(134 & 0xff));
14140       case 0x0388: return((CHAR)(141 & 0xff));
14141       case 0x0389: return((CHAR)(143 & 0xff));
14142       case 0x038a: return((CHAR)(144 & 0xff));
14143       case 0x038c: return((CHAR)(146 & 0xff));
14144       case 0x038e: return((CHAR)(149 & 0xff));
14145       case 0x038f: return((CHAR)(152 & 0xff));
14146       case 0x0390: return((CHAR)(161 & 0xff));
14147       case 0x0391: return((CHAR)(164 & 0xff));
14148       case 0x0392: return((CHAR)(165 & 0xff));
14149       case 0x0393: return((CHAR)(166 & 0xff));
14150       case 0x0394: return((CHAR)(167 & 0xff));
14151       case 0x0395: return((CHAR)(168 & 0xff));
14152       case 0x0396: return((CHAR)(169 & 0xff));
14153       case 0x0397: return((CHAR)(170 & 0xff));
14154       case 0x0398: return((CHAR)(172 & 0xff));
14155       case 0x0399: return((CHAR)(173 & 0xff));
14156       case 0x039a: return((CHAR)(181 & 0xff));
14157       case 0x039b: return((CHAR)(182 & 0xff));
14158       case 0x039c: return((CHAR)(183 & 0xff));
14159       case 0x039d: return((CHAR)(184 & 0xff));
14160       case 0x039e: return((CHAR)(189 & 0xff));
14161       case 0x039f: return((CHAR)(190 & 0xff));
14162       case 0x03a0: return((CHAR)(198 & 0xff));
14163       case 0x03a1: return((CHAR)(199 & 0xff));
14164       case 0x03a3: return((CHAR)(207 & 0xff));
14165       case 0x03a4: return((CHAR)(208 & 0xff));
14166       case 0x03a5: return((CHAR)(209 & 0xff));
14167       case 0x03a6: return((CHAR)(210 & 0xff));
14168       case 0x03a7: return((CHAR)(211 & 0xff));
14169       case 0x03a8: return((CHAR)(212 & 0xff));
14170       case 0x03a9: return((CHAR)(213 & 0xff));
14171       case 0x03aa: return((CHAR)(145 & 0xff));
14172       case 0x03ab: return((CHAR)(150 & 0xff));
14173       case 0x03ac: return((CHAR)(155 & 0xff));
14174       case 0x03ad: return((CHAR)(157 & 0xff));
14175       case 0x03ae: return((CHAR)(158 & 0xff));
14176       case 0x03af: return((CHAR)(159 & 0xff));
14177       case 0x03b0: return((CHAR)(252 & 0xff));
14178       case 0x03b1: return((CHAR)(214 & 0xff));
14179       case 0x03b2: return((CHAR)(215 & 0xff));
14180       case 0x03b3: return((CHAR)(216 & 0xff));
14181       case 0x03b4: return((CHAR)(221 & 0xff));
14182       case 0x03b5: return((CHAR)(222 & 0xff));
14183       case 0x03b6: return((CHAR)(224 & 0xff));
14184       case 0x03b7: return((CHAR)(225 & 0xff));
14185       case 0x03b8: return((CHAR)(226 & 0xff));
14186       case 0x03b9: return((CHAR)(227 & 0xff));
14187       case 0x03ba: return((CHAR)(228 & 0xff));
14188       case 0x03bb: return((CHAR)(229 & 0xff));
14189       case 0x03bc: return((CHAR)(230 & 0xff));
14190       case 0x03bd: return((CHAR)(231 & 0xff));
14191       case 0x03be: return((CHAR)(232 & 0xff));
14192       case 0x03bf: return((CHAR)(233 & 0xff));
14193       case 0x03c0: return((CHAR)(234 & 0xff));
14194       case 0x03c1: return((CHAR)(235 & 0xff));
14195       case 0x03c2: return((CHAR)(237 & 0xff));
14196       case 0x03c3: return((CHAR)(236 & 0xff));
14197       case 0x03c4: return((CHAR)(238 & 0xff));
14198       case 0x03c5: return((CHAR)(242 & 0xff));
14199       case 0x03c6: return((CHAR)(243 & 0xff));
14200       case 0x03c7: return((CHAR)(244 & 0xff));
14201       case 0x03c8: return((CHAR)(246 & 0xff));
14202       case 0x03c9: return((CHAR)(250 & 0xff));
14203       case 0x03ca: return((CHAR)(160 & 0xff));
14204       case 0x03cb: return((CHAR)(251 & 0xff));
14205       case 0x03cc: return((CHAR)(162 & 0xff));
14206       case 0x03cd: return((CHAR)(163 & 0xff));
14207       case 0x03ce: return((CHAR)(253 & 0xff));
14208       case 0x2015: return((CHAR)(142 & 0xff));
14209       case 0x2018: return((CHAR)(139 & 0xff));
14210       case 0x2019: return((CHAR)(140 & 0xff));
14211       case 0x2500: return((CHAR)(196 & 0xff));
14212       case 0x2502: return((CHAR)(179 & 0xff));
14213       case 0x250c: return((CHAR)(218 & 0xff));
14214       case 0x2510: return((CHAR)(191 & 0xff));
14215       case 0x2514: return((CHAR)(192 & 0xff));
14216       case 0x2518: return((CHAR)(217 & 0xff));
14217       case 0x251c: return((CHAR)(195 & 0xff));
14218       case 0x2524: return((CHAR)(180 & 0xff));
14219       case 0x252c: return((CHAR)(194 & 0xff));
14220       case 0x2534: return((CHAR)(193 & 0xff));
14221       case 0x253c: return((CHAR)(197 & 0xff));
14222       case 0x2550: return((CHAR)(205 & 0xff));
14223       case 0x2551: return((CHAR)(186 & 0xff));
14224       case 0x2554: return((CHAR)(201 & 0xff));
14225       case 0x2557: return((CHAR)(187 & 0xff));
14226       case 0x255a: return((CHAR)(200 & 0xff));
14227       case 0x255d: return((CHAR)(188 & 0xff));
14228       case 0x2560: return((CHAR)(204 & 0xff));
14229       case 0x2563: return((CHAR)(185 & 0xff));
14230       case 0x2566: return((CHAR)(203 & 0xff));
14231       case 0x2569: return((CHAR)(202 & 0xff));
14232       case 0x256c: return((CHAR)(206 & 0xff));
14233       case 0x2580: return((CHAR)(223 & 0xff));
14234       case 0x2584: return((CHAR)(220 & 0xff));
14235       case 0x2588: return((CHAR)(219 & 0xff));
14236       case 0x2591: return((CHAR)(176 & 0xff));
14237       case 0x2592: return((CHAR)(177 & 0xff));
14238       case 0x2593: return((CHAR)(178 & 0xff));
14239       case 0x25a0: return((CHAR)(254 & 0xff));
14240       default: return(tx_cpsub(c));     /* For box characters etc */
14241     }
14242 }
14243
14244 int                                     /* PC Code Page C0 graphics */
14245 #ifdef CK_ANSIC
14246 tx_smiley(USHORT c)
14247 #else
14248 tx_smiley(c) USHORT c;
14249 #endif /* CK_ANSIC */
14250 {
14251     if (c > 0x1f)
14252       return(-1);
14253     switch (c) {
14254       case 0x00a0: return((CHAR)0 & 0x7f);
14255       case 0x00a7: return((CHAR)21 & 0x7f);
14256       case 0x00b6: return((CHAR)20 & 0x7f);
14257       case 0x2022: return((CHAR)7 & 0x7f);
14258       case 0x203c: return((CHAR)19 & 0x7f);
14259       case 0x2190: return((CHAR)27 & 0x7f);
14260       case 0x2191: return((CHAR)24 & 0x7f);
14261       case 0x2192: return((CHAR)26 & 0x7f);
14262       case 0x2193: return((CHAR)25 & 0x7f);
14263       case 0x2194: return((CHAR)29 & 0x7f);
14264       case 0x2195: return((CHAR)18 & 0x7f);
14265       case 0x21a8: return((CHAR)23 & 0x7f);
14266       case 0x2319: return((CHAR)28 & 0x7f);
14267       case 0x25ac: return((CHAR)22 & 0x7f);
14268       case 0x25b2: return((CHAR)30 & 0x7f);
14269       case 0x25ba: return((CHAR)16 & 0x7f);
14270       case 0x25bc: return((CHAR)31 & 0x7f);
14271       case 0x25c4: return((CHAR)17 & 0x7f);
14272       case 0x25d8: return((CHAR)8 & 0x7f);
14273       case 0x25d9: return((CHAR)10 & 0x7f);
14274       case 0x25ef: return((CHAR)9 & 0x7f);
14275       case 0x263a: return((CHAR)1 & 0x7f);
14276       case 0x263b: return((CHAR)2 & 0x7f);
14277       case 0x263c: return((CHAR)15 & 0x7f);
14278       case 0x2640: return((CHAR)12 & 0x7f);
14279       case 0x2642: return((CHAR)11 & 0x7f);
14280       case 0x2660: return((CHAR)6 & 0x7f);
14281       case 0x2663: return((CHAR)5 & 0x7f);
14282       case 0x2665: return((CHAR)3 & 0x7f);
14283       case 0x2666: return((CHAR)4 & 0x7f);
14284       case 0x266a: return((CHAR)13 & 0x7f);
14285       case 0x266c: return((CHAR)14 & 0x7f);
14286       default: return(-1);
14287     }
14288 }
14289
14290 USHORT  /* Horizontal Scan Lines Unicode substitutions */
14291 #ifdef CK_ANSIC
14292 tx_hslsub(USHORT c)
14293 #else
14294 tx_hslsub(c) USHORT c;
14295 #endif /* CK_ANSIC */
14296 {
14297     if (c >= 0x23BA && c <= 0x23BD )
14298     switch (c) {
14299       case 0x23BA: return(0x2500);      /* H line - Scan 1 */
14300       case 0x23BB: return(0x2500);      /* H line - Scan 3 */
14301       case 0x23BC: return(0x2500);      /* H line - Scan 7 */
14302       case 0x23BD: return(0x2500);      /* H line - Scan 9 */
14303     }
14304     return(c);
14305 }
14306
14307 USHORT  /* Kermit font 0xE??? Unicode substitutions */
14308 #ifdef CK_ANSIC
14309 tx_usub(USHORT c)
14310 #else
14311 tx_usub(c) USHORT c;
14312 #endif /* CK_ANSIC */
14313 {
14314     if (c < 0xE000 || c > 0xEFFF)
14315       return(c);
14316     switch (c) {
14317       case 0xE200: return(0x2524);      /* Extensible Left Brace Middle */
14318       case 0xE201: return(0x2570);      /* Extensible Left Parenthesis bot */
14319       case 0xE202: return(0x256d);      /* Extensible left parenthesis top */
14320       case 0xE203: return(0x2514);      /* Extensible left SB bot */
14321       case 0xE204: return(0x250c);      /* Extensible left SB top */
14322       case 0xE205: return(0x251c);      /* Extensible right brace middle */
14323       case 0xE206: return(0x256f);      /* Extensible right parenthesis bot */
14324       case 0xE207: return(0x256e);      /* Extensible right parenthesis top */
14325       case 0xE208: return(0x2518);      /* Extensible right SB bot */
14326       case 0xE209: return(0x2510);      /* Extensible right SB top */
14327       case 0xE20C: return(0x03a3);      /* Summation symbol bot */
14328       case 0xE20D: return(0x03a3);      /* Summation symbol top */
14329       case 0xE20E: return(0x2510);      /* Right ceiling corner */
14330       case 0xE20F: return(0x2518);      /* Right floor corner */
14331       case 0xE300: return(0x2502);      /* V box line, extensible, left */
14332       case 0xE309: return(0x2502);      /* V box line, extensible, right */
14333       case 0xE30A: return(0x258c);      /* Diagonal fill, dark, UL */
14334       case 0xE30B: return(0x2590);      /* Diagonal fill, dark, UR */
14335       case 0xE320: return(0x2583);      /* Quadrant LL */
14336       case 0xE321: return(0x2490);      /* Quadrant LR */
14337       case 0xE322: return(0x258c);      /* Quadrant UL */
14338       case 0xE323: return(0x2588);      /* Quadrant UL and LL and LR */
14339       case 0xE324: return(0x2588);      /* Quadrant UL and LR */
14340       case 0xE325: return(0x2588);      /* Quadrant UL and LR */
14341       case 0xE326: return(0x2588);      /* Quadrant UL and UR and LL */
14342       case 0xE327: return(0x2588);      /* Quadrant UL and UR and LR */
14343       case 0xE328: return(0x2590);      /* Quadrant UR */
14344       case 0xE329: return(0x2588);      /* Quadrant UR and LL and LR */
14345       case 0xE400: return(0x221a);      /* Radical symbol, small */
14346       case 0xE401: return(0x00bf);      /* Reverse question mark */
14347       default: return((unsigned)0xfffd);
14348     }
14349 }
14350
14351 int                                     /* Unicode to CP437 substitutions */
14352 #ifdef CK_ANSIC
14353 tx_cpsub(USHORT c)
14354 #else
14355 tx_cpsub(c) USHORT c;
14356 #endif /* CK_ANSIC */
14357 {
14358     int x;
14359     if (c < 0x0080)                     /* ASCII */
14360       return((CHAR)(c & 0xff));
14361
14362     if (c >= 0x0080 && c <= 0x0100) {
14363         switch (c) {                    /* Latin-1 */
14364           case 0x00A2: return(0x9b);    /* Cent sign */
14365           case 0x00A3: return(156);     /* Pound sign */
14366           case 0x00AC: return(170);     /* Not symbol */
14367           case 0x00B0: return(248);     /* Degree symbol */
14368           case 0x00B1: return(241);     /* Plus or minus symbol */
14369           case 0x00B2: return(253);     /* Superscript 2 */
14370           case 0x00B3: return(51);      /* Superscript 3 */
14371           case 0x00B6: return(14);      /* Pilcrow symbol */
14372           case 0x00B7: return(250);     /* Center dot, small */
14373           case 0x00B9: return(49);      /* Superscript 1 */
14374           case 0x00D0: return(68);      /* Eth -> D */
14375           case 0x00D7: return(120);     /* Multiplication symbol */
14376           case 0x00DE: return(84);      /* Thorn -> T */
14377           case 0x00F0: return(100);     /* eth -> eth */
14378           case 0x00F7: return(246);     /* Division symbol */
14379           case 0x00FE: return(116);     /* thorn -> t */
14380           default: return(0x13);
14381         }
14382     } else if (c >= 0x0100 && c <= 0x02ff) { /* Latin-2 etc */
14383         switch (c) {
14384           case 0x0103: return(97);      /* a breve */
14385           case 0x0105: return(97);      /* a ogonek */
14386           case 0x0107:                  /* c acute */
14387           case 0x010d: return(99);      /* c caron */
14388           case 0x010f:                  /* d caron */
14389           case 0x0111: return(100);     /* d with stroke */
14390           case 0x0119:                  /* e ogonek */
14391           case 0x011b: return(101);     /* e caron */
14392           case 0x011f: return(103);     /* g breve */
14393           case 0x0130: return(73);      /* Capital I with Dot */
14394           case 0x0131: return(105);     /* Dotless i */
14395           case 0x0132: return(89);      /* IJ => Y */
14396           case 0x0133: return(152);     /* ij -> y diaeresis */
14397           case 0x013a:                  /* l acute */
14398           case 0x013e:                  /* l caron */
14399           case 0x0142: return(108);     /* l with stroke */
14400           case 0x0144:                  /* n acute */
14401           case 0x0148: return(110);     /* n caron */
14402           case 0x0151: return(111);     /* o double acute */
14403           case 0x0152: return(79);      /* OE */
14404           case 0x0153: return(111);     /* oe */
14405           case 0x0155:                  /* r acute */
14406           case 0x0159: return(114);     /* r caron */
14407           case 0x015b:                  /* s acute */
14408           case 0x015f:                  /* s ogonek */
14409           case 0x0161: return(115);     /* s caron */
14410           case 0x0163:                  /* t ogonek */
14411           case 0x0165:                  /* t caron */
14412           case 0x0167: return(116);     /* t with stroke */
14413           case 0x016f:                  /* u ring */
14414           case 0x0171: return(117);     /* u double acute */
14415           case 0x017a:                  /* z acute */
14416           case 0x017c:                  /* z dot above */
14417           case 0x017e: return(122);     /* z caron */
14418           case 0x0192: return(159);     /* Function-of symbol, Script f */
14419           case 0x01d0: return(105);     /* i caron */
14420           case 0x02c7:                  /* caron -> UNK */
14421           case 0x02d8: return(0x13);    /* breve -> UNK */
14422           case 0x02dd: return(34);      /* Double acute -> Doublequote */
14423           default: return(0x13);
14424         }
14425     } else if (c >= 0x0300 && c <= 0x03ff) { /* Greek */
14426         switch (c) {
14427           case 0x0393: return(226);     /* Uppercase Greek Gamma */
14428           case 0x0398: return(233);     /* Uppercase Greek Theta */
14429           case 0x039B: return(235);     /* Uppercase Greek Lambda */
14430           case 0x03A0: return(227);     /* Uppercase Greek Pi */
14431           case 0x03A3: return(228);     /* Uppercase Greek Sigma */
14432           case 0x03A4: return(0xEA);    /* Omega */
14433           case 0x03A6: return(232);     /* Uppercase Greek Phi */
14434           case 0x03A9: return(234);     /* Uppercase Greek Omega */
14435           case 0x03B1: return(0xE0);    /* alpha */
14436           case 0x03B2: return(0xE1);    /* beta */
14437           case 0x03B3: return(226);     /* Lowercase Greek gamma */
14438           case 0x03B4: return(0xEB);    /* delta */
14439           case 0x03B5: return(238);     /* Lowercase Greek epsilon */
14440           case 0x03B7: return(238);     /* Lowercase Greek eta */
14441           case 0x03B8: return(233);     /* Lowercase Greek theta */
14442           case 0x03B9: return(105);     /* Lowercase Greek iota */
14443           case 0x03BA: return(107);     /* Lowercase Greek kappa */
14444           case 0x03BB: return(235);     /* Lowercase Greek lambda */
14445           case 0x03BC: return(230);     /* Lowercase Greek mu */
14446           case 0x03C0: return(227);     /* Lowercase Greek pi */
14447           case 0x03C3: return(229);     /* Lowercase Greek sigma */
14448           case 0x03C4: return(231);     /* Lowercase Greek tau */
14449           case 0x03C6: return(237);     /* Lowercase Greek phi */
14450           case 0x03C7: return(120);     /* Lowercase Greek chi */
14451           case 0x03C9: return(234);     /* Lowercase Greek omega */
14452           default: return(0x13);
14453         }
14454     } else if (c >= 0x2000 && c <= 0x20ff) { /* Sub+Superscripts & Currency */
14455         switch (c) {
14456           case 0x203C: return(0x13);    /* !! */
14457           case 0x2070: return(48);      /* Superscript 0 */
14458           case 0x2074: return(52);      /* Superscript 4 */
14459           case 0x2075: return(53);      /* Superscript 5 */
14460           case 0x2076: return(54);      /* Superscript 6 */
14461           case 0x2077: return(55);      /* Superscript 7 */
14462           case 0x2078: return(56);      /* Superscript 8 */
14463           case 0x2079: return(57);      /* Superscript 9 */
14464           case 0x207a: return(43);      /* Superscript + */
14465           case 0x207b: return(45);      /* Superscript - */
14466           case 0x207F: return(252);     /* Superscript n */
14467           case 0x2080: return(48);      /* Subscript 0 */
14468           case 0x2081: return(49);      /* Subscript 1 */
14469           case 0x2082: return(50);      /* Subscript 2 */
14470           case 0x2083: return(51);      /* Subscript 3 */
14471           case 0x2084: return(52);      /* Subscript 4 */
14472           case 0x2085: return(53);      /* Subscript 5 */
14473           case 0x2086: return(54);      /* Subscript 6 */
14474           case 0x2087: return(55);      /* Subscript 7 */
14475           case 0x2088: return(56);      /* Subscript 8 */
14476           case 0x2089: return(57);      /* Subscript 9 */
14477           case 0x208a: return(43);      /* Subscript + */
14478           case 0x208b: return(45);      /* Subscript - */
14479           case 0x20a7: return(0x93);    /* Peseta */
14480           default:
14481             x = tx_punc(c);             /* Various spaces, dashes, etc */
14482             return((x < 0) ? 0x13 : x);
14483         }
14484     } else if (c >= 0x2100 && c <= 0x21ff) { /* Arrows */
14485         switch (c) {
14486           case 0x2190: return(27);      /* Arrow, left-pointing */
14487           case 0x2191: return(24);      /* Arrow, up-pointing */
14488           case 0x2192: return(26);      /* Arrow, right-pointing */
14489           case 0x2193: return(25);      /* Arrow, down-pointing */
14490           case 0x2194: return(0x1d);    /* Arrow, left-right */
14491           case 0x2195: return(0x12);    /* Arrow, up-down */
14492           case 0x219F: return(0x18);    /* Arrow, up, doublehead */
14493           case 0x21A1: return(0x19);    /* Arrow, down, doublehead */
14494           case 0x21A8: return(0x17);    /* Arrow, up-down with base */
14495           case 0x21D2: return(26);      /* Implies symbol */
14496           case 0x21D4: return(29);      /* If and only if symbol */
14497           case 0x21E4: return(0x1B);    /* Arrow, left, to bar */
14498           case 0x21E5: return(0x1A);    /* Arrow, right, to bar */
14499           case 0x21E8: return(0x10);    /* Outline white right arrow */
14500           case 0x21E9: return(0x0f);    /* Outline white down arrow */
14501           default: return(0x13);
14502         }
14503     } else if (c >= 0x2200 && c <= 0x22ff) { /* Math */
14504         switch (c) {
14505           case 0x2202: return(235);     /* Partial differential symbol */
14506           case 0x2207: return(31);      /* Nabla, Laplace operator */
14507           case 0x2208: return(0x33);    /* (because of QNX misunderstanding) */
14508           case 0x221A: return(251);     /* Radical symbol */
14509           case 0x221D: return(236);     /* Proportional-to */
14510           case 0x221E: return(236);     /* Infinity symbol */
14511           case 0x2227: return(30);      /* Logical AND */
14512           case 0x2228: return(31);      /* Logical OR */
14513           case 0x2229: return(239);     /* Intersection symbol */
14514           case 0x222A: return(85);      /* Union symbol */
14515           case 0x222B: return(244);     /* Integral symbol */
14516           case 0x2234: return(254);     /* Therefore symbol */
14517           case 0x223C: return(126);     /* Centered tilde operator */
14518           case 0x2243: return(247);     /* Asymptotically equals */
14519           case 0x2248: return(247);     /* Almost equal to symbol */
14520           case 0x2260: return(88);      /* Not equal symbol */
14521           case 0x2261: return(240);     /* Identity symbol */
14522           case 0x2264: return(243);     /* Less than or equal symbol */
14523           case 0x2265: return(242);     /* Greater than or equal symbol */
14524           case 0x2282: return(40);      /* Subset symbol */
14525           case 0x2283: return(41);      /* Superset symbol */
14526           case 0x22A6: return(0xC3);    /* Assertion symbol */
14527           default: return(0x13);
14528         }
14529     } else if (c >= 0x23BA && c <= 0x23BD ) {
14530         switch (c) {
14531         case 0x23BA: return(0x2500);      /* H line - Scan 1 */
14532         case 0x23BB: return(0x2500);      /* H line - Scan 3 */
14533         case 0x23BC: return(0x2500);      /* H line - Scan 7 */
14534         case 0x23BD: return(0x2500);      /* H line - Scan 9 */
14535         }
14536     } else if (c >= 0x2300 && c <= 0x24ff) { /* Tech */
14537         switch (c) {
14538           case 0x2308: return(0xDA);    /* Left ceiling */
14539           case 0x2309: return(0xBF);    /* Right ceiling */
14540           case 0x230A: return(0xC0);    /* Left floor */
14541           case 0x230B: return(0xD9);    /* Right floor */
14542           case 0x2319: return(0x1C);    /* Turned Not sign */
14543           case 0x2320: return(244);     /* Integral symbol top */
14544           case 0x2321: return(245);     /* Integral symbol bot */
14545           case 0x2329: return(60);      /* BRA, large left angle bracket */
14546           case 0x232A: return(62);      /* KET, large right angle bracket */
14547           case 0x2409: return(26);      /* "HT" becomes right arrow */
14548           case 0x240A: return(25);      /* "LF" becomes down arrow */
14549           case 0x240B: return(23);      /* "VT" becomes up-down arrow */
14550           case 0x240C: return(24);      /* "FF" becomes up arrow */
14551           case 0x240D: return(27);      /* "CR" becomes left arrow */
14552           case 0x2424: return(31);      /* "NL" becomes down triangle */
14553           default: return(0x13);
14554         }
14555     } else if (c >= 0x2500 && c <= 0x2552) { /* Box drawing */
14556         switch (c) {
14557           case 0x2500: return(196);     /* Center box bar horizontal */
14558           case 0x2501: return(0xCD);    /* Bold -> Double */
14559           case 0x2502: return(179);     /* Center box bar vertical */
14560           case 0x2503: return(0xBA);    /* Bold */
14561           case 0x2504: return(45);      /* Dashed line */
14562           case 0x2506: return(124);     /* Broken vertical bar */
14563           case 0x250C: return(218);     /* UL box corner */
14564           case 0x250F: return(0xC9);    /* Bold */
14565           case 0x2510: return(191);     /* UR Box Corner */
14566           case 0x2513: return(0xBB);    /* Bold */
14567           case 0x2514: return(192);     /* LL box corner */
14568           case 0x2517: return(0xC8);    /* Bold */
14569           case 0x2518: return(217);     /* LR box corner */
14570           case 0x251B: return(0xBC);    /* Bold */
14571           case 0x251C: return(195);     /* Left middle box side */
14572           case 0x2520: return(0xC3);
14573           case 0x2523: return(0xCC);    /* Bold */
14574           case 0x2524: return(180);     /* Right middle box side */
14575           case 0x2528: return(180);
14576           case 0x252B: return(0xB9);    /* Bold */
14577           case 0x252C: return(194);     /* Middle box top */
14578           case 0x252F: return(194);
14579           case 0x2533: return(0xCB);    /* Bold */
14580           case 0x2534: return(193);     /* Middle box bot */
14581           case 0x2537: return(193);
14582           case 0x253B: return(0xCA);    /* Bold */
14583           case 0x253C: return(197);     /* Box intersection */
14584           case 0x253F: return(197);
14585           case 0x2542: return(197);
14586           case 0x2547: return(197);
14587           case 0x2548: return(197);
14588           case 0x2549: return(197);
14589           case 0x254A: return(197);
14590           case 0x254B: return(0xCE);    /* Bold */
14591           case 0x2550: return(205);     /* Center box bar horizontal double */
14592           case 0x2551: return(186);     /* Center box bar vertical double */
14593           case 0x2552: return(213);     /* UL box corner single to double */
14594           default: return(0x13);
14595         }
14596     } else if (c >= 0x2553 && c <= 0x2579) { /* More box drawing */
14597         switch (c) {
14598           case 0x2553: return(214);     /* UL box corner double to single */
14599           case 0x2554: return(201);     /* UL box corner double */
14600           case 0x2555: return(184);     /* UR box corner double to single */
14601           case 0x2556: return(183);     /* UR box corner single to double */
14602           case 0x2557: return(187);     /* UR box corner double */
14603           case 0x2558: return(212);     /* LL box corner single to double */
14604           case 0x2559: return(211);     /* LL box corner double to single */
14605           case 0x255A: return(200);     /* LL box corner double */
14606           case 0x255B: return(190);     /* LR box corner double to single */
14607           case 0x255C: return(189);     /* LR box corner single to double */
14608           case 0x255D: return(188);     /* LR box corner double */
14609           case 0x255E: return(198);     /* Left mid box side single to doubl */
14610           case 0x255F: return(199);     /* Left mid box side double to singl */
14611           case 0x2560: return(204);     /* Left middle box side double */
14612           case 0x2561: return(181);     /* Right box side double to single */
14613           case 0x2562: return(182);     /* Right box side single to double */
14614           case 0x2563: return(185);     /* Right middle box side double */
14615           case 0x2564: return(209);     /* Middle box top double to single */
14616           case 0x2565: return(210);     /* Middle box top single to double */
14617           case 0x2566: return(203);     /* Middle box top double */
14618           case 0x2567: return(207);     /* Middle box bot single to double */
14619           case 0x2568: return(208);     /* Middle box bot double to single */
14620           case 0x2569: return(202);     /* Middle box bot double */
14621           case 0x256A: return(216);     /* Box intersection double to single */
14622           case 0x256B: return(215);     /* Box intersection single to double */
14623           case 0x256C: return(206);     /* Box intersection double */
14624           case 0x256D: return(218);     /* UL arc */
14625           case 0x256E: return(191);     /* UR arc */
14626           case 0x256F: return(217);     /* LR arc */
14627           case 0x2570: return(192);     /* LL arc */
14628           case 0x2571: return(179);     /* Diagonal line LL to UR */
14629           case 0x2572: return(196);     /* Diagonal line UL to LR */
14630           case 0x2573: return(88);      /* Diagonal lines crossed */
14631           case 0x2575: return(0xb3);    /* High vertical line */
14632           case 0x2576: return(45);      /* Short horizontal line */
14633           case 0x2577: return(0xb3);    /* Low vertical line */
14634           case 0x2579: return(0xb3);    /* High vertical line bold */
14635           default: return(0x13);
14636         }
14637     } else if (c >= 0x257a && c <= 0x25ff) { /* Still more box drawing */
14638         switch (c) {
14639           case 0x257b: return(0xb3);    /* Low vertical line bold */
14640           case 0x2580: return(223);     /* Quadrant UL and UR (top half) */
14641           case 0x2581: return(0xc4);    /* Scan line 9 */
14642           case 0x2582: return(0xDC);    /* Black blob lower half */
14643           case 0x2584: return(220);     /* Quadrant LL and LR (lower half) */
14644           case 0x2588: return(219);     /* Fill character dark */
14645           case 0x258C: return(221);     /* Quadrant UL and LL (left half) */
14646           case 0x258E: return(0xDD);
14647           case 0x2590: return(222);     /* Quadrant UR and LR (right half) */
14648           case 0x2591: return(176);     /* Fill character light */
14649           case 0x2592: return(177);     /* Fill character medium */
14650           case 0x2593: return(178);     /* Fill character heavy */
14651           case 0x2594: return(0xc4);    /* Scan line 1 */
14652           case 0x25A0: return(254);     /* Solid square, center */
14653           case 0x25A6: return(177);     /* Blotch */
14654           case 0x25AC:                  /* Black rectangle */
14655           case 0x25AF: return(0x16);    /* White rectangle */
14656           case 0x25B2:                  /* Triangle, up-pointing */
14657           case 0x25B4: return(0x1e);    /* Triangle, up-pointing */
14658           case 0x25B6:                  /* Triangle, right-pointing, dark */
14659           case 0x25B7:                  /* Triangle, right-pointing, light */
14660           case 0x25B9:                  /* Triangle, right-pointing, light */
14661           case 0x25BA: return(0x10);    /* Triangle, right-pointing, narrow */
14662           case 0x25BC:                  /* Triangle, down-pointing */
14663           case 0x25BE: return(0x1f);    /* Triangle, down-pointing */
14664           case 0x25C0:                  /* Triangle, left-pointing, dark */
14665           case 0x25C1:                  /* Triangle, left-pointing, dark */
14666           case 0x25C4: return(0x11);    /* Triangle, left-pointing, narrow */
14667           case 0x25C6: return(4);       /* Diamond, center, solid */
14668           case 0x25CB: return(0x09);    /* Circle */
14669           case 0x25CF: return(249);     /* Center dot, large */
14670           case 0x25d8: return(0x08);    /* Inverse bullet */
14671           case 0x25d9: return(0x0a);    /* Inverse white circle */
14672           case 0x25E2: return(0xD9);    /* Lower right triangle */
14673           case 0x25E3: return(0xC0);    /* Lower left triangle */
14674           case 0x25E4: return(0xDA);    /* Upper left triangle */
14675           case 0x25E5: return(0xBf);    /* Upper right triangle */
14676           default: return(0x13);
14677         }
14678     } else if (c >= 0x2600) {           /* All the rest */
14679         switch (c) {
14680           case 0x263a: return(0x01);    /* Smiley */
14681           case 0x263b: return(0x02);    /* Inverse Smiley */
14682           case 0x263c: return(0x0f);    /* White Sun with Rays */
14683           case 0x2640: return(0x0c);    /* Male sign */
14684           case 0x2642: return(0x0b);    /* Female sign */
14685           case 0x2660: return(0x06);    /* Spade */
14686           case 0x2663: return(0x05);    /* Club */
14687           case 0x2665: return(0x03);    /* Heart */
14688           case 0x2666: return(0x04);    /* Diamond, center, solid */
14689           case 0x266a: return(0x0d);    /* Quarter note */
14690           case 0x266b:                  /* Beamed quarter notes */
14691           case 0x266c: return(0x0e);    /* Beamed 8th notes */
14692           case 0x279e: return(0x1a);    /* Bold right arrow */
14693           case 0x27a1: return(0x1a);    /* Heavy black right arrow. */
14694           case 0xE200: return(180);     /* Extensible left brace middle */
14695           case 0xE201: return(192);     /* Extensible Left parenthesis bot */
14696           case 0xE202: return(218);     /* Extensible left parenthesis top */
14697           case 0xE203: return(192);     /* Extensible left SB bot */
14698           case 0xE204: return(218);     /* Extensible left SB top */
14699           case 0xE205: return(195);     /* Extensible right brace middle */
14700           case 0xE206: return(217);     /* Extensible right parenthesis bot */
14701           case 0xE207: return(191);     /* Extensible right parenthesis top */
14702           case 0xE208: return(217);     /* Extensible right SB bot */
14703           case 0xE209: return(191);     /* Extensible right SB top */
14704           case 0xE20C: return(228);     /* Summation symbol bot */
14705           case 0xE20D: return(228);     /* Summation symbol top */
14706           case 0xE20E: return(191);     /* Right ceiling corner */
14707           case 0xE20F: return(217);     /* Right floor corner */
14708           case 0xE300: return(179);     /* V box line, extensible, left */
14709           case 0xE309: return(179);     /* V box line, extensible, right */
14710           case 0xE30A: return(221);     /* Diagonal fill, dark, UL */
14711           case 0xE30B: return(222);     /* Diagonal fill, dark, UR */
14712           case 0xE320: return(221);     /* Quadrant LL */
14713           case 0xE321: return(222);     /* Quadrant LR */
14714           case 0xE322: return(221);     /* Quadrant UL */
14715           case 0xE323: return(219);     /* Quadrant UL and LL and LR */
14716           case 0xE324: return(219);     /* Quadrant UL and LR */
14717           case 0xE325: return(219);     /* Quadrant UL and LR */
14718           case 0xE326: return(219);     /* Quadrant UL and UR and LL */
14719           case 0xE327: return(219);     /* Quadrant UL and UR and LR */
14720           case 0xE328: return(222);     /* Quadrant UR */
14721           case 0xE329: return(219);     /* Quadrant UR and LL and LR */
14722           case 0xE400: return(251);     /* Radical symbol, small */
14723           case 0xE401: return(168);     /* Reverse question mark */
14724           case 0xFFFD: return(0x13);    /* !! for unknown */
14725           default: return(0x13);
14726         }
14727     }
14728     return(0x13);
14729 }
14730
14731 #ifdef OS2
14732 /*
14733   Lucida Console is a Unicode font, but it is very sparsely populated.
14734   Since it is the only monospace Unicode font most people have, we have
14735   to make reasonable substitutions or else 3/4 of the glyphs will show
14736   up as blobs on the screen.
14737 */
14738 USHORT                                  /* Unicode to Lucida Console */
14739 #ifdef CK_ANSIC
14740 tx_lucidasub(USHORT c)
14741 #else
14742 tx_lucidasub(c) USHORT c;
14743 #endif /* CK_ANSIC */
14744 {
14745     if (c < 0x0180)                     /* Latin-1 and Extended A */
14746       return(c);
14747
14748 /* For efficiency we try to arrange the sections by frequency of use. */
14749     if (c >= 0x23BA && c <= 0x23BD) {
14750         switch(c) {
14751           case 0x23BA:                    /* H line - Scan 1 */
14752           case 0x23BB:                    /* H line - Scan 3 */
14753           case 0x23BC:                    /* H line - Scan 7 */
14754           case 0x23BD:                    /* H line - Scan 9 */
14755             return(0x2500);
14756         }
14757     }
14758     if (c >= 0x2500 && c <= 0x257f) {   /* Box drawing */
14759         if (c >= 0x2550 && c <= 0x256c)
14760           return(c);
14761         switch (c) {
14762           /* Themselves */
14763         case 0x2500:
14764         case 0x2502:
14765         case 0x250c:
14766         case 0x2510:
14767         case 0x2514:
14768         case 0x2518:
14769         case 0x251c:
14770         case 0x2524:
14771         case 0x252c:
14772         case 0x2534:
14773         case 0x253c:
14774             return(c);
14775           /* Horizontal lines */
14776         case 0x2501:                    /* Bold */
14777             return(0x2550);             /* Use double */
14778         case 0x2504:
14779         case 0x2505:
14780         case 0x2508:
14781         case 0x2509:
14782         case 0x254c:
14783         case 0x254d:
14784         case 0x257c:
14785         case 0x257e:
14786             return(0x2500);
14787           /* Vertical lines */
14788         case 0x2503:                    /* Bold */
14789             return(0x2551);             /* Use double */
14790         case 0x2506:
14791         case 0x2507:
14792         case 0x250a:
14793         case 0x250b: /* Other */
14794         case 0x254e:
14795         case 0x254f:
14796         case 0x257d:
14797         case 0x257f:
14798         case 0x2575:
14799         case 0x2577:
14800         case 0x2579:
14801         case 0x257b:
14802             return(0x2502);
14803             /* Upper left box corner */
14804         case 0x250f:                    /* Bold */
14805             return(0x2554);             /* Use double */
14806         case 0x250d: case 0x250e:       /* Other */
14807             return(0x250c);
14808           /* Upper right box corner */
14809         case 0x2513:                    /* Bold */
14810             return(0x2557);
14811         case 0x2511:
14812         case 0x2512:    /* Other */
14813             return(0x2510);
14814           /* Lower left box corner */
14815         case 0x2517:                    /* Bold */
14816             return(0x255a);
14817         case 0x2515:
14818         case 0x2516:    /* Other */
14819             return(0x2514);
14820           /* Lower right box corner */
14821         case 0x251b:                    /* Bold */
14822             return(0x255d);
14823         case 0x2519:
14824         case 0x251a:    /* Other */
14825             return(0x2518);
14826           /* Vertical and right */
14827         case 0x2523:                    /* Bold */
14828             return(0x2560);
14829         case 0x251d:
14830         case 0x251e:
14831         case 0x251f:
14832         case 0x2520:
14833         case 0x2521:
14834         case 0x2522:
14835             return(0x251c);
14836           /* Vertical and left */
14837         case 0x252b:                    /* Bold */
14838             return(0x2563);
14839         case 0x2525:
14840         case 0x2526:
14841         case 0x2527:
14842         case 0x2528:
14843         case 0x2529:
14844         case 0x252a:
14845             return(0x2524);
14846           /* Horizontal and down */
14847           case 0x2533:                  /* Bold */
14848             return(0x2566);
14849         case 0x252d:
14850         case 0x252e:
14851         case 0x252f:
14852         case 0x2530:
14853         case 0x2531:
14854         case 0x2532:
14855             return(0x252c);
14856             /* Horizontal and up */
14857         case 0x253b:                    /* Bold */
14858             return(0x2569);
14859         case 0x2535: case 0x2536: case 0x2537:
14860         case 0x2538: case 0x2539: case 0x253a:
14861             return(0x2534);
14862           /* Horizontal and Vertical */
14863           case 0x254b:                  /* Bold */
14864             return(0x256c);
14865           case 0x253d: case 0x253e: case 0x253f:
14866         case 0x2540: case 0x2541: case 0x2542: case 0x2543:
14867         case 0x2544: case 0x2545: case 0x2546: case 0x2547:
14868         case 0x2548: case 0x2549: case 0x254a:
14869             return(0x253c);
14870           /* Curved corners */
14871           case 0x256d:                  /* UL */
14872             return(0x250c);
14873           case 0x256e:                  /* UR */
14874             return(0x2510);
14875           case 0x256f:                  /* LL */
14876             return(0x2518);
14877           case 0x2570:                  /* LR */
14878             return(0x2514);
14879           case 0x2571:                  /* Diagonal */
14880             return(0x002f);
14881           case 0x2572:                  /* Other diagonal */
14882             return(0x005c);
14883           case 0x2573:                  /* Diagonal cross */
14884             return(0x00d7);
14885           /* Partial horizontal lines */
14886         case 0x2574: case 0x2576: case 0x2578: case 0x257a:
14887             return(0x002d);
14888         default:
14889             return(0xfffd);
14890         }
14891     }
14892     if (c >= 0x2190 && c <= 0x21ff) {   /* Arrows */
14893         if (c >= 0x2190 && c <= 0x2195 || c == 0x21a8)
14894           return(c);
14895         switch (c) {
14896           /* Left-arrow forms */
14897         case 0x219e: case 0x21a2: case 0x21a4: case 0x21a9:
14898         case 0x21bc: case 0x21d0: case 0x21da: case 0x21dc:
14899         case 0x21e0: case 0x21e4: case 0x21e6: case 0x21c7:
14900             return(0x2190);
14901           /* Right-arrow forms */
14902         case 0x21a0: case 0x21a3: case 0x21a6: case 0x21aa:
14903         case 0x21c0: case 0x21c1: case 0x21c9: case 0x21d2:
14904         case 0x21db: case 0x21dd: case 0x21e2: case 0x21e5:
14905         case 0x21e8:
14906             return(0x2192);
14907           /* Up-arrow forms */
14908         case 0x219f: case 0x21a5: case 0x21be: case 0x21bf:
14909         case 0x21c8: case 0x21d1: case 0x21de: case 0x21e1:
14910         case 0x21e7: case 0x21ea:
14911             return(0x2191);
14912           /* Down-arrow forms */
14913         case 0x21a1: case 0x21a7: case 0x21af: case 0x21c2:
14914         case 0x21ce: case 0x21ca: case 0x21d3: case 0x21df:
14915         case 0x21e3: case 0x21e9:
14916             return(0x2193);
14917           /* Up-down-arrow forms */
14918         case 0x21c5: case 0x21d5:
14919             return(0x2195);
14920         default:
14921             return(0xfffd);
14922         }
14923     }
14924     if (c >= 0x2580 && c <= 0x259f) {   /* Block elements */
14925         switch (c) {
14926         case 0x2580: case 0x2584: case 0x2588: case 0x258c:
14927         case 0x2590: case 0x2591: case 0x2592: case 0x2593:
14928             return(c);
14929         case 0x2581: case 0x2582: case 0x2583:
14930         case 0x2585: case 0x2586: case 0x2587:
14931             return(0x2584);
14932         case 0x2589: case 0x258a: case 0x258b:
14933         case 0x258d: case 0x258e: case 0x258f:
14934             return(0x258c);
14935         case 0x2595:
14936             return(0x2502);
14937         default:
14938             return(0xfffd);
14939         }
14940     }
14941     if (c >= 0x2200 && c <= 0x22ff) {   /* Mathematical operators */
14942         switch (c) {
14943         case 0x2202: case 0x2206: case 0x220f: case 0x2211: case 0x2212:
14944         case 0x2219: case 0x2220: case 0x221e: case 0x221f: case 0x2229:
14945         case 0x222b: case 0x2248: case 0x2260: case 0x2261: case 0x2264:
14946         case 0x2265:
14947             return(c);
14948         default:
14949             return(0xfffd);
14950         }
14951     }
14952     if (c >= 0x2300 && c <= 0x237f) {   /* Miscellaneous Technical */
14953         if (c == 0x2302 || c == 0x2310 || c == 0x2320 || c == 0x2321)
14954           return(c);
14955         switch (c) {
14956           case 0x2329:                  /* BRA */
14957             return(0x003c);
14958           case 0x232a:                  /* KET */
14959             return(0x003e);
14960         default:
14961               return(0xfffd);
14962         }
14963     }
14964     if (c >= 0x25a0 && c <= 0x25ff) {   /* Geometric shapes */
14965         switch (c) {
14966           /* Themselves */
14967         case 0x25a0: case 0x25ac: case 0x25b2: case 0x25ba:
14968         case 0x25bc: case 0x25c4: case 0x25ca: case 0x25cb:
14969         case 0x25d8: case 0x25d9:
14970             return(c);
14971           /* Squares */
14972           case 0x25a1: case 0x25a2: case 0x25a3: case 0x25a4:
14973           case 0x25a5: case 0x25a6: case 0x25a7: case 0x25a8:
14974         case 0x25a9: case 0x25aa: case 0x25ab:
14975         case 0x25e7: case 0x25e8: case 0x25e9: case 0x25ea: case 0x25eb:
14976             return(0x25a0);
14977           case 0x25ad: case 0x25ae: case 0x25af: /* Rectangles */
14978         case 0x25b0: case 0x25b1:
14979             return(0x25ac);
14980           case 0x25b3: case 0x25b4: case 0x25b5: /* Upright triangles */
14981         case 0x25ec: case 0x25ed: case 0x25ee:
14982             return(0x25b2);
14983         case 0x25b6: case 0x25b7: case 0x25b8: case 0x25b9: case 0x25bb:
14984             return(0x25ba);                      /* Right-pointing triangles */
14985           case 0x25bd: case 0x25be: case 0x25bf: /* Down-pointing triangles */
14986             return(0x25bc);
14987         case 0x25c0: case 0x25c1: case 0x25c2: case 0x25c3: case 0x25c5:
14988             return(0x25c4);                      /* Left-pointing triangles */
14989           case 0x25c6: case 0x25c7: case 0x25c8: /* Diamonds */
14990             return(0x2666);
14991           /* Circles */
14992         case 0x25c9: case 0x25cc: case 0x25cd: case 0x25ce: case 0x25cf:
14993         case 0x25d0: case 0x25d1: case 0x25d2: case 0x25d3: case 0x25d4:
14994         case 0x25d5: case 0x25e6: case 0x25ef:
14995             return(0x25cb);
14996           /* Curves and corner triangles */
14997           case 0x25dc: case 0x25e4:     /* UL */
14998             return(0x250c);
14999           case 0x25dd: case 0x25e5:     /* UR */
15000             return(0x2510);
15001           case 0x25df: case 0x25e3:     /* LL */
15002             return(0x2514);
15003           case 0x25de: case 0x25e2:     /* LR */
15004             return(0x2518);
15005         default:
15006             return(0xfffd);
15007         }
15008     }
15009     if (c >= 0x2600 && c <= 0x26ff) {   /* Misc symbols */
15010         switch (c) {
15011           /* Themselves */
15012         case 0x263a: case 0x263b: case 0x263c: case 0x2640:
15013         case 0x2642: case 0x2660: case 0x2663: case 0x2665:
15014         case 0x2666: case 0x266a: case 0x266b:
15015             return(c);
15016         default:
15017             return(0xfffd);
15018         }
15019     }
15020     if (c >= 0x2794 && c <= 0x27be)     /* Right-arrow Dingbats */
15021       return(0x2192);
15022     if (c >= 0x2070 && c <= 0x209f) {   /* Super & subscripts */
15023         if (c == 0x207f)                /* n */
15024           return(c);
15025         else if (c == 0x2070)           /* 0 */
15026           return(0x0030);
15027         else if (c >= 0x2074 && c <= 0x2079)
15028           return(c - 0x2040);
15029         else if (c >= 0x2080 && c <= 0x2089)
15030           return(c - 0x2050);
15031         switch (c) {
15032         case 0x207a: case 0x208a:
15033             return(0x002b);
15034         case 0x207b: case 0x208b:
15035             return(0x002d);
15036         case 0x207c: case 0x208c:
15037             return(0x003d);
15038         case 0x207d: case 0x208d:
15039             return(0x0028);
15040         case 0x207e: case 0x208e:
15041             return(0x0029);
15042         default:
15043             return(0xfffd);
15044         }
15045     }
15046     if (c >= 0x0180 && c <= 0x024f) {   /* Latin Extended B, Part I */
15047         if (c == 0x0192 || c >= 0x01fa && c <= 0x01ff)
15048           return(c);                    /* Latin Extended B */
15049         switch (c) {
15050         case 0x0180: case 0x0183: case 0x0184: case 0x0185:
15051             return(0x0062);             /* Lowercase b variants */
15052         case 0x0181: case 0x0182:
15053             return(0x0042);             /* Uppercase B variants */
15054         case 0x0186: case 0x0187:
15055             return(0x0043);             /* Uppercase C variants */
15056           case 0x0189:                  /* D with stroke */
15057             return(0x00D0);             /* Looks just like Eth */
15058           case 0x018a:                  /* D with hook */
15059             return(0x0044);
15060           case 0x018e: case 0x0190:     /* E-like letters */
15061             return(0x0045);
15062           case 0x018f:                  /* e-like letters */
15063             return(0x0065);
15064           case 0x0191:                  /* F-like */
15065             return(0x0046);
15066           case 0x0193:                  /* G-like */
15067             return(0x0047);
15068           case 0x0194:                  /* Latin Capital Gamma */
15069             return(0x0393);             /* Use Greek */
15070           case 0x0195:                  /* Gothic hv */
15071             return(0x0068);             /* Use h */
15072           case 0x0196:                  /* Latin Capital Iota */
15073             return(0x0399);             /* Use Greek */
15074           case 0x0197:                  /* I with bar */
15075             return(0x0069);
15076           case 0x0198:                  /* K with hook */
15077             return(0x004B);
15078           case 0x0199:                  /* k with hook */
15079             return(0x006B);
15080           case 0x019A:                  /* l with bar */
15081             return(0x006C);
15082           case 0x019B:                  /* lambda with bar */
15083             return(0x03bb);             /* Use Greek */
15084           case 0x019C:                  /* Upside down m */
15085             return(0x006d);
15086           case 0x019D:                  /* N with left hook */
15087             return(0x004e);
15088           case 0x019E:                  /* n with long right leg */
15089             return(0x006e);
15090           case 0x019F: case 0x01a0: case 0x01a2: /* O-like letters */
15091             return(0x004f);
15092           case 0x01a1: case 0x01a3:     /* o-like */
15093             return(0x006f);
15094           case 0x01A4:                  /* P with hook */
15095             return(0x0050);
15096           case 0x01A5:                  /* p with hook */
15097             return(0x0070);
15098           case 0x01A6:                  /* Old Norse YR */
15099             return(0x0052);
15100           case 0x01A7:                  /* Backwards S */
15101             return(0x0053);
15102           case 0x01A8: case 0x01AA:     /* s-like letters */
15103             return(0x0073);
15104           case 0x01A9:                  /* Esh */
15105             return(0x03a3);             /* Looks just like Sigma */
15106           case 0x01AB: case 0x01AD:     /* t-like */
15107             return(0x0074);
15108           case 0x01AC: case 0x01AE:     /* T-like */
15109             return(0x0054);
15110           case 0x01AF: case 0x01B1:     /* U-like */
15111             return(0x0055);
15112           case 0x01B0:                  /* u-like */
15113             return(0x0075);
15114           case 0x01B2:                  /* V-like */
15115             return(0x0056);
15116           case 0x01B3:                  /* Y-like */
15117             return(0x0059);
15118           case 0x01B4:                  /* y-like */
15119             return(0x0079);
15120           case 0x01B5:                  /* Z-like */
15121             return(0x005a);
15122           case 0x01B6:                  /* z-like */
15123             return(0x007a);
15124           case 0x01B7:                  /* Yogh */
15125             return(0x0033);             /* Use "3" */
15126           case 0x01BF:                  /* Wynn */
15127             return(0x0077);             /* Use "w" */
15128           case 0x01CD:                  /* A caron */
15129             return(0x0041);
15130           case 0x01CE:                  /* a caron */
15131             return(0x0061);
15132           case 0x01CF:                  /* I caron */
15133             return(0x0049);
15134           case 0x01D0:                  /* i caron */
15135             return(0x0069);
15136           case 0x01D1:                  /* O caron */
15137             return(0x004f);
15138           case 0x01D2:                  /* o caron */
15139             return(0x006f);
15140           case 0x01D3:                  /* U caron */
15141             return(0x0055);
15142           case 0x01D4:                  /* u caron */
15143             return(0x0075);
15144           /* U diaeresis + other things */
15145         case 0x01D5: case 0x01D7: case 0x01D9: case 0x01DB:
15146             return(0x00dc);
15147           /* u diaeresis + other things */
15148         case 0x01D6: case 0x01Da: case 0x01Dc:
15149             return(0x00fc);
15150
15151           /* Fill in more here if anybody asks */
15152
15153         default:
15154             return(0xfffd);
15155         }
15156     }
15157     if (c >= 0x1e00 && c <= 0x1eff) {   /* Latin Extended Additional */
15158         if (c >= 0x1e80 && c <= 0x1e85)
15159           return(c);
15160         else
15161           return(0xfffd);
15162     }
15163     if (c >= 0x0400 && c <= 0x04ff) {   /* Cyrillic */
15164         if (c >= 0x0400 && c <= 0x045f || c == 0x0490  || c == 0x0491)
15165           return(c);
15166         else
15167           return(0xfffd);
15168     }
15169     if (c >= 0x0370 && c <= 0x03ff) {   /* Greek */
15170         if (c == 0x037e || c >= 0x0384 && c <= 0x03ce)
15171           return(c);
15172         switch (c) {
15173         case 0x0374: case 0x0375:
15174             return(0x0027);
15175         case 0x037a:
15176             return(0x002c);
15177           /* Fill in more here if needed */
15178         default:
15179             return(0xfffd);
15180         }
15181     }
15182     if (c >= 0x1f00 && c <= 0x1fff) {   /* Greek Extended */
15183         /* Fill in if asked */
15184         return(0xfffd);
15185     }
15186     if (c >= 0x20a0 && c <= 0x20cf) {   /* Currency symbols */
15187         if (c == 0x20a3 || c == 0x20a4 || c == 0x20a7 || c == 0x20ac)
15188           return(c);
15189         else
15190           return(0xfffd);
15191     }
15192     if (c >= 0x2100 && c <= 0x214f) {   /* Letterlike symbols */
15193         if (c == 0x2116 || c == 0x2122 || c == 0x2126)
15194           return(c);
15195         else
15196           return(0xfffd);
15197     }
15198     if (c >= 0x2150 && c <= 0x218f) {   /* Number forms */
15199         if (c >= 0x215b && c <= 0x215e) /* Roman numerals etc */
15200           return(c);
15201         else
15202           return(0xfffd);
15203     }
15204     if (c >= 0x02b0 && c <= 0x02ff) {   /* Spacing modifier letters */
15205         if (c == 0x02c6 || c == 0x02c7 || c == 0x02c9 ||
15206             c >= 0x02d8 && c <= 0x02dd)
15207           return(c);
15208         switch (c) {
15209         case 0x02b0: case 0x02b1:
15210             return(0x0068);
15211         case 0x02b2:
15212               return(0x006a);
15213         case 0x02b3: case 0x02b4: case 0x02b5:
15214             return(0x0072);
15215         case 0x02b7:
15216             return(0x0077);
15217         case 0x02b8:
15218             return(0x0079);
15219         case 0x02b9:
15220             return(0x00b4);
15221         case 0x02ba:
15222             return(0x0022);
15223         case 0x02bb: case 0x02bc: case 0x02bd: case 0x02be: case 0x02bf:
15224             return(0x0027);
15225           case 0x02c2:      return(0x003c);
15226           case 0x02c3:      return(0x003e);
15227           case 0x02da:      return(0x00b0);
15228           case 0x02dc:      return(0x007e);
15229           default:          return(0xfffd);
15230         }
15231     }
15232     if (c >= 0x2000 && c <= 0x206f) {   /* General Punctuation */
15233         if (c >= 0x2013 && c <= 0x2015 ||
15234             c >= 0x2017 && c <= 0x201a ||
15235             c >= 0x201c && c <= 0x201e ||
15236             c >= 0x2020 && c <= 0x2022 || c == 0x2026 || c == 0x2030 ||
15237             c >= 0x2039 && c <= 0x203a || c == 0x203c || c == 0x203e ||
15238             c == 0x2044)
15239           return(c);
15240         else if (c == 0x2016)
15241           return(0x2551);
15242         else if (c == 0x2017)
15243           return(0x2550);
15244         else if (c == 0x2044)
15245           return(0x002f);
15246         else
15247           return(0xfffd);
15248     }
15249     if (c == 0xfb01 || c == 0xfb02)     /* Alphabetic Presentation Forms */
15250       return(c);
15251     return(0xfffd);                     /* Catch-all */
15252 }
15253 #endif /* OS2 */
15254
15255
15256 /*
15257   Table of Blah-to-Unicode information structures.
15258   KEEP THIS IN SYNC WITH THE TX_blah DEFINITIONS in ckcuni.h.
15259 */
15260 struct x_to_unicode *
15261 txrinfo[MAXTXSETS+1] = {
15262     &u_ascii,                           /*  0 US ISO 646 (ASCII) */
15263     &u_british,                         /*  1 UK ISO 646 */
15264     &u_fr_canadian,                     /*  2 Canadian French NRC */
15265     NULL,                               /*  3 Cuba */
15266     NULL,                               /*  4 Czecho */
15267     &u_danish,                          /*  5 Danish/Norwegian ISO 646 */
15268     &u_dutch,                           /*  6 Dutch NRC */
15269     &u_finnish,                         /*  7 Finnish NRC  */
15270     &u_french,                          /*  8 French ISO 646 */
15271     &u_german,                          /*  9 German ISO 646 */
15272     &u_hebrew7,                         /* 10 Hebrew-7 (DEC) */
15273     &u_hungarian,                       /* 11 Hungarian ISO 646 */
15274     &u_icelandic,                       /* 12 Icelandic NRC */
15275     &u_italian,                         /* 13 Italian ISO 646 */
15276     &u_jis0201r,                        /* 14 Japanese Roman ISO 646 */
15277     &u_jis0201k,                        /* 15 Japanese Katakana */
15278     &u_koi7,                            /* 16 Short KOI */
15279     &u_danish,                          /* 17 Norwegian/Danish ISO 646 */
15280     &u_portuguese,                      /* 18 Portuguese ISO 646 */
15281     &u_spanish,                         /* 19 spanish ISO 646 */
15282     &u_swedish,                         /* 20 Swedish ISO 646 */
15283     NULL,                               /* 21 Swedish ISO 646 for names */
15284     &u_swiss,                           /* 22 Swiss NRC   */
15285     &u_8859_1,                          /* 23 ISO 8859-1  */
15286     &u_8859_2,                          /* 24 ISO 8859-2  */
15287     &u_8859_3,                          /* 25 ISO 8859-3  */
15288     &u_8859_4,                          /* 26 ISO 8859-4  */
15289     &u_8859_5,                          /* 27 ISO 8859-5  */ /* Cyrillic */
15290     &u_8859_6,                          /* 28 ISO 8859-6  */ /* Arabic */
15291     &u_8859_7,                          /* 29 ISO 8859-7  */ /* Greek */
15292     &u_8859_8,                          /* 30 ISO 8859-8  */ /* Hebrew */
15293     &u_8859_9,                          /* 31 ISO 8859-9  */
15294     &u_8859_10,                         /* 32 ISO 8859-10 */
15295     &u_koi8,                            /* 33 KOI-8       */
15296     NULL,                               /* 34 JIS-7       */
15297     NULL,                               /* 35 Shift JIS   */
15298     NULL,                               /* 36 Japanese EUC (JAE) */
15299     NULL,                               /* 37 Japanese DEC Kanji */
15300     &u_decmcs,                          /* 38 DEC MCS */
15301     &u_nextstep,                        /* 39 NeXT    */
15302     &u_dgi,                             /* 40 DGI     */
15303     &u_maclatin,                        /* 41 Macintosh Latin  */
15304     &u_hproman8,                        /* 42 HP Roman 8       */
15305     &u_cp437,                           /* 43 CP437 - Original */
15306     &u_cp850,                           /* 44 CP850 - W Europe */
15307     &u_cp852,                           /* 45 CP852 - E Europe */
15308     &u_cp857,                           /* 46 CP857 - Turkish  */
15309     &u_cp862,                           /* 47 CP862 - Hebrew   */
15310     &u_cp864,                           /* 48 CP864 - Arabic   */
15311     &u_cp866,                           /* 49 CP866 - Cyrillic */
15312     &u_cp869,                           /* 50 CP869 - Greek    */
15313     &u_decspec,                         /* 51 DEC Special Graphics */
15314     &u_dectech,                         /* 52 DEC Technical */
15315     &u_c0pics,                          /* 53 C0 Pictures */
15316     &u_c1pics,                          /* 54 C1 Pictures */
15317     &u_smiley,                          /* 55 IBM C0 Graphics */
15318     &u_heath19g,                        /* 56 Heath 19 Graphics */
15319     &u_tvig,                            /* 57 TVI Graphics */
15320     &u_wyse_gn,                         /* 58 Wyse 60 Graphics Normal */
15321     &u_wyse_g1,                         /* 59 Wyse 60 Graphics 1 */
15322     &u_wyse_g2,                         /* 60 Wyse 60 Graphics 2 */
15323     &u_wyse_g3,                         /* 61 Wyse 60 Graphics 3 */
15324     &u_elot927,                         /* 62 Greek ELOT 927 */
15325     &u_dgspec,                          /* 63 DG Special graphics */
15326     &u_dgline,                          /* 64 DG Line drawing */
15327     &u_dgword,                          /* 65 DG Word processing */
15328     &u_hpline,                          /* 66 HP Line drawing */
15329     &u_hpmath,                          /* 67 HP Math/Technical */
15330     &u_qnxgrph,                         /* 68 QNX Graphics */
15331     &u_snibrack,                        /* 69 SNI Brackets */
15332     &u_snieuro,                         /* 70 SNI Euro */
15333     &u_snifacet,                        /* 71 SNI Facet */
15334     &u_sniibm,                          /* 72 SNI IBM */
15335     &u_sniblanks,                       /* 73 SNI Blanks */
15336     &u_cp1252,                          /* 74 Windows Latin-1 */
15337     &u_cp1250,                          /* 75 Windows Latin-2 */
15338     &u_cp1251,                          /* 76 Windows Cyrillic */
15339     &u_cp1253,                          /* 77 Windows Greek */
15340     &u_cp1254,                          /* 78 Windows Turkish */
15341     &u_cp1257,                          /* 79 Windows Latin-4 */
15342     &u_cp856,                           /* 80 Cyrillic PC Code Page 856 */
15343     &u_cp855,                           /* 81 Cyrillic PC Code Page 855 */
15344     &u_8859_1,                          /* 82 CP819 - Same as 8859-1 */
15345     &u_8859_2,                          /* 83 CP912 - Same as 8859-2 */
15346     &u_8859_3,                          /* 84 CP913 - Same as 8859-3 */
15347     &u_8859_4,                          /* 85 CP914 - Same as 8859-4 */
15348     &u_8859_5,                          /* 86 CP915 - Same as 8859-5 */
15349     &u_8859_6,                          /* 87 CP1089 - Same as 8859-6 */
15350     &u_8859_7,                          /* 88 CP813 - Same as 8859-7 */
15351     &u_8859_8,                          /* 89 CP916 - Same as 8859-8 */
15352     &u_8859_9,                          /* 90 CP920 - Same as 8859-9 */
15353     &u_hproman8,                        /* 91 CP1051 - Same as HP Roman 8 */
15354     &u_cp858,                           /* 92 CP858 - W Europe w/Euro */
15355     &u_8859_15,                         /* 93 ISO 8859-15 Latin-15 */
15356     &u_8859_15,                         /* 94 CP923 - Same as 8859-15  */
15357     &u_8859_7,                          /* 95 ELOT928 - Same as 8859-7 */
15358     &u_quickdraw,                       /* 96 CP10000 - Apple Quickdraw */
15359     &u_cp37,                            /* 97 CP37 - U.S. EBCDIC */
15360     &u_cp1255,                          /* 98 CP1255 - Windows Hebrew */
15361     &u_cp1256,                          /* 99 CP1256 - Windows Arabic */
15362     &u_cp1258,                          /* 100 CP1258 - Windows Viet Nam */
15363     &u_mazovia,                         /* 101 Mazovia Polish code page */
15364     &u_transparent,                     /* 102 Transparent */
15365     &u_hz1500,                          /* 103 Hazeltine 1500/1520 graphics */
15366     &u_koi8r,                           /* 104 KOI8-R */
15367     &u_koi8u,                           /* 105 KOI8-U */
15368     &u_apl1,                            /* 106 APL 1 (ISO) */
15369     &u_apl2,                            /* 107 APL 2 (Dyadic) */
15370     &u_apl3,                            /* 108 APL 3 (Plus) */
15371     &u_apl4,                            /* 108 APL 4 (IBM) */
15372     &u_apl5                             /* 110 APL 5 (2741) */
15373 };
15374
15375 /*
15376   Table of Blah-to-Unicode translation functions.
15377   KEEP THIS IN SYNC WITH THE TX_blah DEFINITITIONS in ckcuni.h.
15378 */
15379 USHORT
15380 #ifdef CK_ANSIC
15381 (*xl_u[MAXTXSETS+1])(CHAR)
15382 #else
15383 (*xl_u[MAXTXSETS+1])()
15384 #endif /* CK_ANSIC */
15385 = {
15386     ascii_u,                            /*  0 US ISO 646 (ASCII) */
15387     british_u,                          /*  1 UK ISO 646 */
15388     fr_canadian_u,                      /*  2 Canadian French NRC */
15389     NULL,                               /*  3 Cuba */
15390     NULL,                               /*  4 Czecho */
15391     danish_u,                           /*  5 Danish/Norwegian ISO 646 */
15392     dutch_u,                            /*  6 Dutch NRC */
15393     finnish_u,                          /*  7 Finnish NRC  */
15394     french_u,                           /*  8 French ISO 646 */
15395     german_u,                           /*  9 German ISO 646 */
15396     hebrew7_u,                          /* 10 Hebrew-7 (DEC) */
15397     hungarian_u,                        /* 11 Hungarian ISO 646 */
15398     icelandic_u,                        /* 12 Icelandic */
15399     italian_u,                          /* 13 Italian ISO 646 */
15400     jis0201r_u,                         /* 14 Japanese Roman ISO 646 */
15401     jis0201k_u,                         /* 15 Japanese Katakana */
15402     koi7_u,                             /* 16 Short KOI */
15403     danish_u,                           /* 17 Norwegian/Danish ISO 646 */
15404     portuguese_u,                       /* 18 Portuguese ISO 646 */
15405     spanish_u,                          /* 19 spanish ISO 646 */
15406     swedish_u,                          /* 20 Swedish ISO 646 */
15407     NULL,                               /* 21 Swedish ISO 646 for names */
15408     swiss_u,                            /* 22 Swiss NRC   */
15409     iso_8859_1_u,                       /* 23 ISO 8859-1  */
15410     iso_8859_2_u,                       /* 24 ISO 8859-2  */
15411     iso_8859_3_u,                       /* 25 ISO 8859-3  */
15412     iso_8859_4_u,                       /* 26 ISO 8859-4  */
15413     iso_8859_5_u,                       /* 27 ISO 8859-5  */ /* Cyrillic */
15414     iso_8859_6_u,                       /* 28 ISO 8859-6  */ /* Arabic */
15415     iso_8859_7_u,                       /* 29 ISO 8859-7  */ /* Greek */
15416     iso_8859_8_u,                       /* 30 ISO 8859-8  */ /* Hebrew */
15417     iso_8859_9_u,                       /* 31 ISO 8859-9  */ /* Latin-5 */
15418     iso_8859_10_u,                      /* 32 ISO 8859-10 */
15419     koi8_u,                             /* 33 KOI-8       */
15420     NULL,                               /* 34 JIS-7       */
15421     NULL,                               /* 35 Shift JIS   */
15422     NULL,                               /* 36 Japanese EUC (JAE) */
15423     NULL,                               /* 37 Japanese DEC Kanji */
15424     decmcs_u,                           /* 38 DEC MCS */
15425     nextstep_u,                         /* 39 NeXT    */
15426     dgi_u,                              /* 40 DGI     */
15427     maclatin_u,                         /* 41 Macintosh Latin  */
15428     hproman8_u,                         /* 42 HP Roman 8       */
15429     cp437_u,                            /* 43 CP437 - Original */
15430     cp850_u,                            /* 44 CP850 - W Europe */
15431     cp852_u,                            /* 45 CP852 - E Europe */
15432     cp857_u,                            /* 46 CP857 - Turkish  */
15433     cp862_u,                            /* 47 CP862 - Hebrew   */
15434     cp864_u,                            /* 48 CP864 - Arabic   */
15435     cp866_u,                            /* 49 CP866 - Cyrillic */
15436     cp869_u,                            /* 50 CP869 - Greek    */
15437     decspec_u,                          /* 51 DEC Special Graphics */
15438     dectech_u,                          /* 52 DEC Technical */
15439     c0pics_u,                           /* 53 C0 Pictures */
15440     c1pics_u,                           /* 54 C1 Pictures */
15441     smiley_u,                           /* 55 IBM C0 Graphics */
15442     heath19g_u,                         /* 56 Heath 19 graphics */
15443     tvig_u,                             /* 57 TVI graphics */
15444     wyse_gn_u,                          /* 58 Wyse 60 normal-mode graphics */
15445     wyse_g1_u,                          /* 59 Wyse 60 graphics 1 */
15446     wyse_g2_u,                          /* 60 Wyse 60 graphics 2 */
15447     wyse_g3_u,                          /* 61 Wyse 60 graphics 3 */
15448     elot927_u,                          /* 62 Greek ELOT 927 */
15449     dgspec_u,                           /* 63 DG Special graphics */
15450     dgline_u,                           /* 64 DG Line drawing */
15451     dgword_u,                           /* 65 DG Word processing */
15452     hpline_u,                           /* 66 HP Line drawing */
15453     hpmath_u,                           /* 67 HP Math/Technical */
15454     qnxgrph_u,                          /* 68 QNX Graphics */
15455     snibrack_u,                         /* 69 SNI Brackets */
15456     snieuro_u,                          /* 70 SNI Euro */
15457     snifacet_u,                         /* 71 SNI Facet */
15458     sniibm_u,                           /* 72 SNI IBM */
15459     sniblanks_u,                        /* 73 SNI Blanks */
15460     cp1252_u,                           /* 74 Windows Latin-1 */
15461     cp1250_u,                           /* 75 Windows Latin-2 */
15462     cp1251_u,                           /* 76 Windows Cyrillic */
15463     cp1253_u,                           /* 77 Windows Greek */
15464     cp1254_u,                           /* 78 Windows Turkish */
15465     cp1257_u,                           /* 79 Windows Latin-4 */
15466     cp856_u,                            /* 80 Cyrillic PC Code Page 856 */
15467     cp855_u,                            /* 81 Cyrillic PC Code Page 856 */
15468     iso_8859_1_u,                       /* 82 CP819 - Same as 8859-1 */
15469     iso_8859_2_u,                       /* 83 CP912 - Same as 8859-2 */
15470     iso_8859_3_u,                       /* 84 CP913 - Same as 8859-3 */
15471     iso_8859_4_u,                       /* 85 CP914 - Same as 8859-4 */
15472     iso_8859_5_u,                       /* 86 CP915 - Same as 8859-5 */
15473     iso_8859_6_u,                       /* 87 CP1089 - Same as 8859-6 */
15474     iso_8859_7_u,                       /* 88 CP813 - Same as 8859-7 */
15475     iso_8859_8_u,                       /* 89 CP916 - Same as 8859-8 */
15476     iso_8859_9_u,                       /* 90 CP920 - Same as 8859-9 */
15477     hproman8_u,                         /* 91 CP1051 -Same as HP Roman 8 */
15478     cp858_u,                            /* 92 CP858 - W Europe w/Euro */
15479     iso_8859_15_u,                      /* 93 ISO 8859-15 Latin 15 */
15480     iso_8859_15_u,                      /* 94 CP923 - Same as 8859-15 */
15481     iso_8859_7_u,                       /* 95 ELOT928 - Same as 8859-7 */
15482     quickdraw_u,                        /* 96 CP10000 - Apple Quickdraw */
15483     cp37_u,                             /* 97 CP37 - U.S. EBCDIC */
15484     cp1255_u,                           /* 98 CP1255 - Windows Hebrew */
15485     cp1256_u,                           /* 99 CP1256 - Windows Arabic */
15486     cp1258_u,                           /* 100 CP1258 - Windows Viet Nam */
15487     mazovia_u,                          /* 101 Mazovia PC code page */
15488     ident_u,                            /* 102 Transparent - no translation  */
15489     hz1500_u,                           /* 103 Hazeltine 1500/1520 graphics */
15490     koi8r_u,                            /* 104 KOI8-R */
15491     koi8u_u,                            /* 105 KOI8-U */
15492     apl1_u,                             /* 106 APL 1 (ISO) */
15493     apl2_u,                             /* 107 APL 2 (AIX) */
15494     apl3_u,                             /* 108 APL 3 (Plus) */
15495     apl4_u,                             /* 109 APL 4 (IBM) */
15496     apl5_u                              /* 110 APL 5 (2741) */
15497 };
15498 /*
15499   Table of Unicode-to-Blah translation functions.
15500   KEEP THIS IN SYNC WITH THE TX_blah DEFINITITIONS in ckcuni.h, and also
15501   with the tables above.
15502 */
15503 int
15504 #ifdef CK_ANSIC
15505 (*xl_tx[MAXTXSETS+1])(USHORT)
15506 #else
15507 (*xl_tx[MAXTXSETS+1])()
15508 #endif /* CK_ANSIC */
15509  = {
15510     tx_usascii,                         /*  0 US ISO 646 (ASCII) */
15511     tx_british,                         /*  1 UK ISO 646 */
15512     tx_fr_canadian,                     /*  2 Canadian French NRC */
15513     NULL,                               /*  3 Cuba */
15514     NULL,                               /*  4 Czecho */
15515     tx_danish,                          /*  5 Danish/Norwegian ISO 646 */
15516     tx_dutch,                           /*  6 Dutch NRC */
15517     tx_finnish,                         /*  7 Finnish NRC  */
15518     tx_french,                          /*  8 French ISO 646 */
15519     tx_german,                          /*  9 German ISO 646 */
15520     tx_hebrew7,                         /* 10 Hebrew-7 (DEC) */
15521     tx_hungarian,                       /* 11 Hungarian ISO 646 */
15522     tx_icelandic,                       /* 12 Icelandic */
15523     tx_italian,                         /* 13 Italian ISO 646 */
15524     tx_jis0201r,                        /* 14 Japanese Roman ISO 646 */
15525     tx_jis0201k,                        /* 15 Japanese Katakana */
15526     tx_koi7,                            /* 16 Short KOI */
15527     tx_danish,                          /* 17 Norwegian/Danish ISO 646 */
15528     tx_portuguese,                      /* 18 Portuguese ISO 646 */
15529     tx_spanish,                         /* 19 spanish ISO 646 */
15530     tx_swedish,                         /* 20 Swedish ISO 646 */
15531     NULL,                               /* 21 Swedish ISO 646 for names */
15532     tx_swiss,                           /* 22 Swiss NRC   */
15533     tx_ident,                           /* 23 ISO 8859-1  */
15534     tx_8859_2,                          /* 24 ISO 8859-2  */
15535     tx_8859_3,                          /* 25 ISO 8859-3  */
15536     tx_8859_4,                          /* 26 ISO 8859-4  */
15537     tx_8859_5,                          /* 27 ISO 8859-5  */ /* Cyrillic */
15538     tx_8859_6,                          /* 28 ISO 8859-6  */ /* Arabic */
15539     tx_8859_7,                          /* 29 ISO 8859-7  */ /* Greek */
15540     tx_8859_8,                          /* 30 ISO 8859-8  */ /* Hebrew */
15541     tx_8859_9,                          /* 31 ISO 8859-9  */ /* Latin-5 */
15542     tx_8859_10,                         /* 32 ISO 8859-10 */ /* Latin-6 */
15543     tx_koi8,                            /* 33 KOI-8       */
15544     NULL,                               /* 34 JIS-7       */
15545     NULL,                               /* 35 Shift JIS   */
15546     NULL,                               /* 36 Japanese EUC (JAE) */
15547     NULL,                               /* 37 Japanese DEC Kanji */
15548     tx_decmcs,                          /* 38 DEC MCS */
15549     tx_nextstep,                        /* 39 NeXT    */
15550     tx_dgi,                             /* 40 DGI     */
15551     tx_maclatin,                        /* 41 Macintosh Latin  */
15552     tx_hproman8,                        /* 42 HP Roman 8       */
15553     tx_cp437,                           /* 43 CP437 - Original */
15554     tx_cp850,                           /* 44 CP850 - W Europe */
15555     tx_cp852,                           /* 45 CP852 - E Europe */
15556     tx_cp857,                           /* 46 CP857 - Turkish  */
15557     tx_cp862,                           /* 47 CP862 - Hebrew   */
15558     tx_cp866,                           /* 48 CP864 - Arabic   */
15559     tx_cp866,                           /* 49 CP866 - Cyrillic */
15560     tx_cp869,                           /* 50 CP869 - Greek    */
15561     NULL,       /* Display only */      /* 51 DEC Special Graphics */
15562     NULL,       /* Display only */      /* 52 DEC Technical */
15563     NULL,       /* Display only */      /* 53 C0 Pictures */
15564     NULL,       /* Display only */      /* 54 C1 Pictures */
15565     NULL,       /* Display only */      /* 55 IBM C0 Graphics */
15566     NULL,       /* Display only */      /* 56 Heath 19 graphics */
15567     NULL,       /* Display only */      /* 57 TVI graphics */
15568     NULL,       /* Display only */      /* 58 Wyse 60 normal-mode graphics */
15569     NULL,       /* Display only */      /* 59 Wyse 60 graphics 1 */
15570     NULL,       /* Display only */      /* 60 Wyse 60 graphics 2 */
15571     NULL,       /* Display only */      /* 61 Wyse 60 graphics 3 */
15572     tx_elot927,                         /* 62 Greek ELOT 927 */
15573     NULL,       /* Display only */      /* 63 DG special graphics */
15574     NULL,       /* Display only */      /* 64 DG line-drawing */
15575     NULL,       /* Display only */      /* 65 DG word-processing */
15576     NULL,       /* Display only */      /* 66 HP line-drawing */
15577     NULL,       /* Display only */      /* 67 HP math/techical */
15578     NULL,       /* Display only */      /* 68 QNX Graphics */
15579     NULL,       /* Display only */      /* 69 SNI Brackets */
15580     NULL,       /* Display only */      /* 70 SNI Euro */
15581     NULL,       /* Display only */      /* 71 SNI Facet */
15582     NULL,       /* Display only */      /* 72 SNI IBM */
15583     NULL,       /* Display only */      /* 73 SNI Blanks */
15584     tx_cp1252,                          /* 74 Windows Latin-1 */
15585     tx_cp1250,                          /* 75 Windows Latin-2 */
15586     tx_cp1251,                          /* 76 Windows Cyrillic */
15587     tx_cp1253,                          /* 77 Windows Greek */
15588     tx_cp1254,                          /* 78 Windows Turkish */
15589     tx_cp1257,                          /* 79 Windows Latin-4 */
15590     tx_cp856,                           /* 80 Cyrillic PC Code Page 856 */
15591     tx_cp855,                           /* 81 Cyrillic PC Code Page 855 */
15592     tx_ident,                           /* 82 CP819 - Same as 8859-1 */
15593     tx_8859_2,                          /* 83 CP912 - Same as 8859-2 */
15594     tx_8859_3,                          /* 84 CP913 - Same as 8859-3 */
15595     tx_8859_4,                          /* 85 CP914 - Same as 8859-4 */
15596     tx_8859_5,                          /* 86 CP915 - Same as 8859-5 */
15597     tx_8859_6,                          /* 87 CP1089 - Same as 8859-6 */
15598     tx_8859_7,                          /* 88 CP813 - Same as 8859-7 */
15599     tx_8859_8,                          /* 89 CP916 - Same as 8859-8 */
15600     tx_8859_9,                          /* 90 CP920 - Same as 8859-9 */
15601     tx_hproman8,                        /* 91 CP1051 -Same as HP Roman 8 */
15602     tx_cp858,                           /* 92 CP858 - W Europe w/Euro */
15603     tx_8859_15,                         /* 93 ISO 8859-15 Latin 15 */
15604     tx_8859_15,                         /* 94 CP923 - Same as Latin 15 */
15605     tx_8859_7,                          /* 95 ELOT928 - Same as 8859-7 */
15606     tx_quickdraw,                       /* 96 CP10000 - Apple Quickdraw */
15607     tx_cp37,                            /* 97 CP37 - U.S. EBCDIC */
15608     tx_cp1255,                          /* 98 CP1255 - Windows Hebrew */
15609     tx_cp1256,                          /* 99 CP1256 - Windows Arabic */
15610     tx_cp1258,                          /* 100 CP1258 - Windows Viet Nam */
15611     tx_mazovia,                         /* 101 Mazovia  PC code page */
15612     tx_ident,                           /* 102 Transparent - no translation */
15613     NULL,       /* Display only */      /* 103 Hazeltine 1500/1520 graphics */
15614     tx_koi8r,                           /* 104 KOI8-R */
15615     tx_koi8u,                           /* 105 KOI8-U */
15616     tx_apl1,                            /* 106 APL 1 (ISO) */
15617     tx_apl2,                            /* 107 APL 2 (AIX) */
15618     tx_apl3,                            /* 108 APL 3 (Plus) */
15619     tx_apl4,                            /* 108 APL 4 (IBM) */
15620     tx_apl5                             /* 110 APL 5 (2741) */
15621 };
15622
15623 /*
15624   Table of FCS-to-Unicode translation functions.
15625   KEEP THIS IN SYNC WITH THE FC_blah DEFINITITIONS in ckuxla.h.
15626 */
15627 USHORT
15628 #ifdef CK_ANSIC
15629 (*xl_fcu[MAXFCSETS+1])(CHAR)
15630 #else
15631 (*xl_fcu[MAXFCSETS+1])()
15632 #endif /* CK_ANSIC */
15633 = {
15634     ascii_u,                            /*  0 US ISO 646 (ASCII) */
15635     british_u,                          /*  1 UK ISO 646 */
15636     dutch_u,                            /*  2 Dutch NRC */
15637     finnish_u,                          /*  3 Finnish NRC  */
15638     french_u,                           /*  4 French ISO 646 */
15639     fr_canadian_u,                      /*  5 Canadian French NRC */
15640     german_u,                           /*  6 German ISO 646 */
15641     hungarian_u,                        /*  7 Hungarian ISO 646 */
15642     italian_u,                          /*  8 Italian ISO 646 */
15643     danish_u,                           /*  9 Danish/Norwegian ISO 646 */
15644     portuguese_u,                       /* 10 Portuguese ISO 646 */
15645     spanish_u,                          /* 11 spanish ISO 646 */
15646     swedish_u,                          /* 12 Swedish ISO 646 */
15647     swiss_u,                            /* 13 Swiss NRC   */
15648     iso_8859_1_u,                       /* 14 ISO 8859-1 Latin-1 */
15649     iso_8859_2_u,                       /* 15 ISO 8859-2 Latin-2 */
15650     decmcs_u,                           /* 16 DEC MCS */
15651     nextstep_u,                         /* 17 NeXT */
15652     cp437_u,                            /* 18 CP437 - Original */
15653     cp850_u,                            /* 19 CP850 - W Europe */
15654     cp852_u,                            /* 20 CP852 - E Europe */
15655     quickdraw_u,                        /* 21 CP10000 - Apple Quickdraw */
15656     dgi_u,                              /* 22 DGI */
15657     hproman8_u,                         /* 23 HP Roman 8 */
15658     iso_8859_5_u,                       /* 24 ISO 8859-5 Cyrillic */
15659     cp866_u,                            /* 25 CP866 - Cyrillic */
15660     koi7_u,                             /* 26 Short KOI */
15661     koi8_u,                             /* 27 KOI-8       */
15662     NULL,                               /* 28 JIS-7 */
15663     NULL,                               /* 29 Shift-JIS */
15664     NULL,                               /* 30 Japanese EUC */
15665     NULL,                               /* 31 DEC Kanji */
15666     hebrew7_u,                          /* 32 Hebrew-7 (DEC) */
15667     iso_8859_8_u,                       /* 33 ISO 8859-8 Hebrew */
15668     cp862_u,                            /* 34 CP862 Hebrew */
15669     elot927_u,                          /* 35 Greek ELOT 927 */
15670     iso_8859_7_u,                       /* 36 ISO 8859-7 Greek */
15671     cp869_u,                            /* 37 CP869 Greek */
15672     iso_8859_15_u,                      /* 38 ISO 8859-15 Latin-9 */
15673     cp858_u,                            /* 39 CP858 - W Europe w/Euro */
15674     cp855_u,                            /* 40 Cyrillic PC Code Page 856 */
15675     cp1251_u,                           /* 41 Windows Cyrillic */
15676     cp856_u,                            /* 42 Bulgarian PC Code Page 856 */
15677     cp1250_u,                           /* 43 Windows Latin-2 */
15678     mazovia_u,                          /* 44 Mazovia PC code page */
15679     NULL,                               /* 45 UCS-2 */
15680     NULL,                               /* 46 UTF-8 */
15681     koi8r_u,                            /* 47 KOI8-R */
15682     koi8u_u,                            /* 48 KOI8-U */
15683     cp1252_u                            /* 49 CP1252 */
15684 };
15685
15686 /*
15687   Table of Unicode-to-FCS translation functions.
15688   KEEP THIS IN SYNC WITH THE FC_blah DEFINITITIONS in ckuxla.h.
15689 */
15690 int
15691 #ifdef CK_ANSIC
15692 (*xl_ufc[MAXFCSETS+1])(USHORT)
15693 #else
15694 (*xl_ufc[MAXFCSETS+1])()
15695 #endif /* CK_ANSIC */
15696 = {
15697     tx_usascii,                         /*  0 US ISO 646 (ASCII) */
15698     tx_british,                         /*  1 UK ISO 646 */
15699     tx_dutch,                           /*  2 Dutch NRC */
15700     tx_finnish,                         /*  3 Finnish NRC  */
15701     tx_french,                          /*  4 French ISO 646 */
15702     tx_fr_canadian,                     /*  5 Canadian French NRC */
15703     tx_german,                          /*  6 German ISO 646 */
15704     tx_hungarian,                       /*  7 Hungarian ISO 646 */
15705     tx_italian,                         /*  8 Italian ISO 646 */
15706     tx_danish,                          /*  9 Danish/Norwegian ISO 646 */
15707     tx_portuguese,                      /* 10 Portuguese ISO 646 */
15708     tx_spanish,                         /* 11 spanish ISO 646 */
15709     tx_swedish,                         /* 12 Swedish ISO 646 */
15710     tx_swiss,                           /* 13 Swiss NRC   */
15711     tx_ident,                           /* 14 ISO 8859-1 Latin-1 */
15712     tx_8859_2,                          /* 15 ISO 8859-2 Latin-2 */
15713     tx_decmcs,                          /* 16 DEC MCS */
15714     tx_nextstep,                        /* 17 NeXT */
15715     tx_cp437,                           /* 18 CP437 - Original */
15716     tx_cp850,                           /* 19 CP850 - W Europe */
15717     tx_cp852,                           /* 20 CP852 - E Europe */
15718     tx_quickdraw,                       /* 21 CP10000 - Apple Quickdraw */
15719     tx_dgi,                             /* 22 DGI */
15720     tx_hproman8,                        /* 23 HP Roman 8 */
15721     tx_8859_5,                          /* 24 ISO 8859-5 Cyrillic */
15722     tx_cp866,                           /* 25 CP866 - Cyrillic */
15723     tx_koi7,                            /* 26 Short KOI */
15724     tx_koi8,                            /* 27 KOI-8       */
15725     NULL,                               /* 28 JIS-7 */
15726     NULL,                               /* 29 Shift-JIS */
15727     NULL,                               /* 30 Japanese EUC */
15728     NULL,                               /* 31 DEC Kanji */
15729     tx_hebrew7,                         /* 32 Hebrew-7 (DEC) */
15730     tx_8859_8,                          /* 33 ISO 8859-8 Hebrew */
15731     tx_cp862,                           /* 34 CP862 Hebrew */
15732     tx_elot927,                         /* 35 Greek ELOT 927 */
15733     tx_8859_7,                          /* 36 ISO 8859-7 Greek */
15734     tx_cp869,                           /* 37 CP869 Greek */
15735     tx_8859_15,                         /* 38 ISO 8859-15 Latin-9 */
15736     tx_cp858,                           /* 39 CP858 - W Europe w/Euro */
15737     tx_cp855,                           /* 40 Cyrillic PC Code Page 856 */
15738     tx_cp1251,                          /* 41 Windows Cyrillic */
15739     tx_cp856,                           /* 42 Bulgarian PC Code Page 856 */
15740     tx_cp1250,                          /* 43 Windows Latin-2 */
15741     tx_mazovia,                         /* 44 Mazovia PC code page */
15742     NULL,                               /* 45 UCS-2 */
15743     NULL,                               /* 46 UTF-8 */
15744     tx_koi8r,                           /* 47 KOI8-R */
15745     tx_koi8u,                           /* 48 KOI8-U */
15746     tx_cp1252                           /* 49 CP1252 */
15747 };
15748
15749 /*
15750   Table of TCS-to-Unicode translation functions.
15751   KEEP THIS IN SYNC WITH THE TC_blah DEFINITIONS in ckuxla.h.
15752 */
15753 USHORT
15754 #ifdef CK_ANSIC
15755 (*xl_tcu[MAXTCSETS+1])(CHAR)
15756 #else
15757 (*xl_tcu[MAXTCSETS+1])()
15758 #endif /* CK_ANSIC */
15759 = {
15760     NULL,                               /*  0 = Transparent */
15761     ascii_u,                            /*  1 = ASCII */
15762     iso_8859_1_u,                       /*  2 ISO 8859-1 Latin-1 */
15763     iso_8859_2_u,                       /*  3 ISO 8859-2 Latin-2 */
15764     iso_8859_5_u,                       /*  4 ISO 8859-5 Cyrillic */
15765     NULL,                               /*  5 Japanese EUC */
15766     iso_8859_8_u,                       /*  6 ISO 8859-8 Hebrew */
15767     iso_8859_7_u,                       /*  7 ISO 8859-7 Greek */
15768     iso_8859_15_u,                      /*  8 ISO 8859-15 Latin-9 */
15769     NULL,                               /*  9 UCS-2 */
15770     NULL                                /* 10 UTF-8 */
15771 };
15772
15773
15774 /*
15775   Table of Unicode-to-TCS translation functions.
15776   KEEP THIS IN SYNC WITH THE TC_blah DEFINITIONS in ckuxla.h.
15777 */
15778 int
15779 #ifdef CK_ANSIC
15780 (*xl_utc[MAXTCSETS+1])(USHORT)
15781 #else
15782 (*xl_utc[MAXTCSETS+1])()
15783 #endif /* CK_ANSIC */
15784 = {
15785     NULL,                               /*  0 = Transparent */
15786     tx_usascii,                         /*  1 = ASCII */
15787     tx_ident,                           /*  2 ISO 8859-1 Latin-1 */
15788     tx_8859_2,                          /*  3 ISO 8859-2 Latin-2 */
15789     tx_8859_5,                          /*  4 ISO 8859-5 Cyrillic */
15790     NULL,                               /*  5 Japanese EUC */
15791     tx_8859_8,                          /*  6 ISO 8859-8 Hebrew */
15792     tx_8859_7,                          /*  7 ISO 8859-7 Greek */
15793     tx_8859_15,                         /*  8 ISO 8859-15 Latin-9 */
15794     NULL,                               /*  9 UCS-2 */
15795     NULL                                /* 10 UTF-8 */
15796 };
15797
15798 #ifdef COMMENT
15799 /*
15800   The UTF8 conversions are based on the ConvertUTF functions written
15801   by Mark E. Davis, copyright 1994 Taligent, Inc.
15802
15803   Tables for use in calculating UTF8 conversions.  These contain
15804   support for ISO-10646 which supports a 31-bit char size.
15805
15806   NOTE: 0xnnnUL is NOT portable!
15807 */
15808 ULONG
15809 offsetsFromUTF8[7] = {
15810 #ifdef CK_ANSIC
15811     0x00000000UL, /* Ignored */
15812     0x00000000UL, 0x00003080UL, 0x000E2080UL,
15813     0x03C82080UL, 0xFA082080UL, 0x82082080UL
15814 #else
15815     0x00000000L, /* Ignored */
15816     0x00000000L, 0x00003080L, 0x000E2080L,
15817     0x03C82080L, (unsigned) 0xFA082080L, (unsigned) 0x82082080L
15818 #endif /* CK_ANSIC */
15819 };
15820
15821 CHAR bytesInUTF8[256] = {
15822     1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
15823     1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
15824     1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
15825     1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
15826     1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
15827     1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
15828     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,
15829     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
15830 };
15831 #endif /* COMMENT */
15832
15833 CHAR firstByteMark[7] = {0x00, 0x00, 0xC0, 0xE0, 0xF0, 0xF8, 0xFC};
15834
15835 /*
15836   utf8_to_ucs2() takes one UTF-8 byte at a time.  It returns a pointer the
15837   UCS-2 character if and only if the entire UTF-8 string has been received.
15838   Return values:
15839    0: Complete UTF-8 sequence received; ucs2 points to valid ucs2 character.
15840   >0: UTF-8 sequence incomplete, ignore ucs2 value.
15841   <0: UTF-8 error, 0xfffd should be inserted BEFORE the ucs2 value.
15842
15843   NOTE: A negative value is returned only when two return values are indicated,
15844   e.g. when a UTF-8 sequence is interrupted by an ASCII char.  In this case
15845   the incomplete UTF-8 sequence must be replaced by 0xfffd, and then the ASCII
15846   character is kept as-is.  In other error cases, ucs2 is set to 0xfffd and
15847   the return value is 0.
15848 */
15849 #define UTFBUFSIZ 16
15850
15851 int
15852 #ifdef CK_ANSIC
15853 utf8_to_ucs2(CHAR ch, USHORT ** ucs2)
15854 #else
15855 utf8_to_ucs2(ch, ucs2) CHAR ch; USHORT ** ucs2;
15856 #endif /* CK_ANSIC */
15857 {
15858     static USHORT ucs2return = 0;
15859
15860 #ifdef COMMENT
15861     /* Unicode Consortium sample code works only with well-formed UTF8 */
15862
15863     int i = 0;
15864     static int len = 0;
15865     static CHAR utf8[UTFBUFSIZ] = { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 };
15866     ULONG ucs4 = 0;
15867
15868     utf8[len++] = ch;                   /* Add char to string to process */
15869
15870     if (len < bytesInUTF8[utf8[0]])     /* Need more bytes */
15871       return(bytesInUTF8[utf8[0]] - len);
15872
15873     switch (len) {                      /* Have complete sequence... */
15874       case 6: ucs4 += utf8[i++]; ucs4 <<= 6; /* (fall-thru is intentional) */
15875       case 5: ucs4 += utf8[i++]; ucs4 <<= 6;
15876       case 4: ucs4 += utf8[i++]; ucs4 <<= 6;
15877       case 3: ucs4 += utf8[i++]; ucs4 <<= 6;
15878       case 2: ucs4 += utf8[i++]; ucs4 <<= 6;
15879       case 1: ucs4 += utf8[i++];
15880     }
15881     ucs4 -= offsetsFromUTF8[len];
15882     ucs2return = (USHORT)(ucs4 & 0xFFFF);
15883 #ifdef DEBUG
15884     /* This shows that our return value is in the prevailing byte order: */
15885     /* e.g. LE on PC, BE on Sparc. */
15886     if (deblog) {
15887         char buf[16];
15888         union ck_short xx;
15889         xx.x_short = ucs2return;
15890         sprintf(buf,"%04X",ucs2return);
15891         debug(F111,"utf8_to_ucs2 short",buf,ucs2return);
15892         debug(F101,"utf8_to_ucs2 char[0]","",xx.x_char[0]);
15893         debug(F101,"utf8_to_ucs2 char[1]","",xx.x_char[1]);
15894     }
15895 #endif /* DEBUG */
15896     *ucs2 = &ucs2return;
15897     len = 0;
15898     return(0);
15899 #else
15900     /*
15901        Robuster code adapted from Thomas Dickey, Xfree86,
15902        recommended by Markus Kuhn.
15903     */
15904     static int utfcount = 0;            /* Position in UTF sequence */
15905     int utferror = 0;                   /* Flag for malformed UTF */
15906     unsigned c = ch;                    /* Input byte */
15907     int haveucs2 = 0;
15908
15909     if (ch < 0x80) {                    /* ASCII char... */
15910         if (utfcount > 0)               /* Not legal in UTF-8 sequence */
15911           utferror = 1;                 /* so flag */
15912         haveucs2 = 1;
15913         ucs2return = ch;                /* but also return it */
15914         utfcount = 0;                   /* reset UTF-8 count */
15915     } else if (ch < 0xc0) {             /* 0x80 <= c < 0xc0... */
15916         if (utfcount < 1) {             /* Not valid in first position... */
15917             utferror = 1;
15918         } else {                        /* Maybe valid */
15919             if (ucs2return > 0x03ff) {  /* Value would be > 0xffff */
15920                 utferror = 1;           /* so not valid */
15921             } else {                    /* OK... */
15922                 ucs2return <<= 6;       /* Shift result */
15923                 ucs2return |= (ch & 0x3f); /* and OR in this byte */
15924             }
15925             if (--utfcount == 0)
15926               haveucs2 = 1;
15927         }
15928     } else {                            /* c >= 0xc0... */
15929         if (utfcount > 0)
15930           utferror = 1;
15931         if (c < 0xe0) {
15932             utfcount = 1;
15933             ucs2return = (c & 0x1f);
15934             haveucs2 = 1;
15935         } else if (c < 0xf0) {
15936             utfcount = 2;
15937             ucs2return = (c & 0x0f);
15938             haveucs2 = 1;
15939         } else if (c < 0xf8) {
15940             utfcount = 3;
15941             ucs2return = (c & 0x07);
15942             haveucs2 = 1;
15943         } else if (c < 0xfc) {
15944             utfcount = 4;
15945             ucs2return = (c & 0x03);
15946             haveucs2 = 1;
15947         } else if (c < 0xfe) {
15948             utfcount = 5;
15949             ucs2return = (c & 0x01);
15950             haveucs2 = 1;
15951         } else {
15952             utferror = 1;
15953             utfcount = 0;
15954         }
15955     }
15956     if (haveucs2 == 0 && utferror != 0) {
15957         haveucs2 = 1;
15958         ucs2return = 0xfffd;
15959         utferror = 0;
15960     }
15961     if (haveucs2) {
15962         *ucs2 = &ucs2return;
15963         if (utferror)
15964           utfcount = 0 - utfcount;
15965         return(utfcount);
15966     } else {
15967         if (utfcount == 0)
15968           utfcount++;
15969         return(utfcount);
15970     }
15971 #endif /* COMMENT */
15972 }
15973
15974 /*
15975   ucs2_to_utf8() takes one ucs2 character and returns the length and
15976   and a pointer to an array containing the equivalent utf8 string.
15977   This code can easily be altered to support UCS4 simply by changing
15978   the input from USHORT to ULONG.  Returns:
15979    >0: Number of bytes in the utf8 string.
15980     0: (or less) Error.
15981 */
15982
15983 int
15984 #ifdef CK_ANSIC
15985 ucs2_to_utf8(USHORT ucs2, CHAR ** utf8)
15986 #else
15987 ucs2_to_utf8(ucs2, utf8) USHORT ucs2; CHAR ** utf8;
15988 #endif /* CK_ANSIC */
15989 {
15990     static CHAR utf8return[8]={0,0,0,0,0,0,0,0};
15991     register CONST ULONG byteMask = 0xBF;
15992     register CONST ULONG byteMark = 0x80;
15993     int utf8len = 0;
15994     int i = 0;
15995
15996     if (ucs2 < 0x80) {
15997         utf8len = 1;
15998         debug(F101,"ucs2_to_utf8 X1","",utf8len);
15999     } else if (ucs2 < 0x800) {
16000         utf8len = 2;
16001         debug(F101,"ucs2_to_utf8 X2","",utf8len);
16002     } else
16003 #ifdef DO_UCS4
16004       /* This is always true for UCS-2 but would be needed for UCS-4*/
16005       /* When ucs2 is USHORT this gives compiler warnings. */
16006       if (ucs2 <= 0xffff)
16007 #endif /* DO_UCS4 */
16008     {
16009         utf8len = 3;
16010         debug(F101,"ucs2_to_utf8 X3","",utf8len);
16011     }
16012 #ifdef DO_UCS4
16013 /* The following would be for UCS-4 */
16014     else if (ucs2 < 0x200000) {
16015         utf8len = 4;
16016     } else if (ucs2 < 0x4000000) {
16017         utf8len = 5;
16018     } else if (ucs2 <=
16019 #ifdef CK_ANSIC
16020                0x7FFFFFFFUL             /* (doesn't really need the "U") */
16021 #else
16022                0x7FFFFFFFL
16023 #endif /* CK_ANSIC */
16024                ) {                      /* 31 bits = max for UCS4 */
16025         utf8len = 6;
16026     } else {
16027         utf8len = 2;
16028         ucs2 = 0xFFFD;                  /* Replacement for invalid char */
16029     }
16030 #endif /* DO_UCS4 */
16031     i = utf8len;                        /* index into utf8return */
16032     utf8return[i--] = 0;                /* Null terminate the string */
16033
16034     switch (utf8len) {                  /* code falls through cases! */
16035       case 6: utf8return[i--] = (ucs2 | byteMark) & byteMask; ucs2 >>= 6;
16036       case 5: utf8return[i--] = (ucs2 | byteMark) & byteMask; ucs2 >>= 6;
16037       case 4: utf8return[i--] = (ucs2 | byteMark) & byteMask; ucs2 >>= 6;
16038       case 3: utf8return[i--] = (ucs2 | byteMark) & byteMask; ucs2 >>= 6;
16039       case 2: utf8return[i--] = (ucs2 | byteMark) & byteMask; ucs2 >>= 6;
16040       case 1: utf8return[i--] =  ucs2 | firstByteMark[utf8len];
16041     }
16042     debug(F111,"ucs2_to_utf8",utf8return,utf8len);
16043     *utf8 = utf8return;
16044     return(utf8len);
16045 }
16046
16047 /*  UTF-8 functions...  */
16048
16049 #ifdef CK_ANSIC
16050 extern int (*xuf)(USHORT);              /* Translation function UCS to FCS */
16051 extern USHORT (*xfu)(CHAR);             /* Translation function FCS to UCS */
16052 #else
16053 extern int (*xuf)();
16054 extern USHORT (*xfu)();
16055 #endif /* CK_ANSIC */
16056
16057 /*  u _ t o _ b  --  UTF-8 to Byte  */
16058 /*
16059     Converts from UTF-8 to the current terminal or file character set.
16060     Call with:
16061       c: a single byte, which is part of a UTF-8 stream.
16062     Returns:
16063      -9: Error, with second char to follow (call u_to_b2() to get it).
16064      -2: UCS line/paragraph end (LS or PS).
16065      -1: UTF-8 stream is incomplete and more input is required.
16066      >=0: Byte value of result, possibly the "error" byte (e.g. '?').
16067     Requires:
16068       Global (*xuf)() to point to a function that translates from UCS-2 to
16069       the appropriate term/file character set.
16070 */
16071 static int savedbyte = 0;
16072
16073 int                                     /* Call if u_to_b() returns -9 */
16074 u_to_b2() {
16075     return((unsigned)(savedbyte & 0xff));
16076 }
16077
16078 int                                     /* UTF-8 to byte */
16079 #ifdef CK_ANSIC
16080 u_to_b(CHAR c)
16081 #else
16082 u_to_b(c) CHAR c;
16083 #endif /* CK_ANSIC */
16084 {
16085     int x;
16086     USHORT * ucs2, uc;
16087     if (!xuf)                           /* If no conversion function */
16088       return(c);                        /* don't convert (shouldn't happen). */
16089     x = utf8_to_ucs2(c,&ucs2);          /* Send for conversion to UCS-2 */
16090     if (x > 0)                          /* Not done yet... */
16091       return(-1);
16092     uc = (x < 0) ? 0xfffd : *ucs2;      /* Done, check result */
16093     if (uc == 0x2028 || uc == 0x2029)   /* LS or PS */
16094       return(-2);
16095     return((unsigned)(((*xuf)(uc)) & 0xff)); /* Convert UCS-2 to byte */
16096 }
16097
16098 /*  b _ t o _ u  --  Byte to UTF-8  */
16099 /*
16100   Converts a byte from the current terminal or file character set to UTF-8.
16101   Call with:
16102     c........ The byte to be converted.
16103     buf...... Pointer to buffer in which to place the result.
16104     buflen... Length of the result buffer.
16105     setsize.. The size of the source character set (128 or 256).
16106   Requires:
16107     Global (*xfu)() to point to the function to convert the byte to UCS-2.
16108   Returns:
16109     -1 if the xfu is NULL; otherwise:
16110     >0 indicating the length (in bytes) of the UTF-8 string.
16111   If the translation fails, the Unicode "Replacement Character" is returned
16112   (0xFFFD translated to UTF-8 == 0xFFBD).
16113 */
16114 int                                     /* Byte to UTF-8 */
16115 #ifdef CK_ANSIC
16116 b_to_u(CHAR c, CHAR * buf, int buflen, int setsize)
16117 #else
16118 b_to_u(c, buf, buflen, setsize) CHAR c, * buf; int buflen, setsize;
16119 #endif /* CK_ANSIC */
16120 {
16121     CHAR * tmp = NULL;
16122     int i, count = 0;
16123     USHORT uc;
16124     if (!xfu) {
16125         debug(F100,"b_to_u no xfu","",0);
16126         return(-1);
16127     }
16128     uc = c;
16129     if (((setsize > 128) && (c & 0x80)) || setsize <= 128) {
16130         if (xfu)                        /* FCS-to-UCS function */
16131           uc = (*xfu)(c);
16132     }
16133     count = ucs2_to_utf8(uc,&tmp);
16134     if (count < 0) {
16135         buf[0] = 0xef;                  /* == 0xFFFD in UTF-8 */
16136         buf[1] = 0xbf;
16137         buf[2] = 0xbd;
16138         buf[3] = '\0';
16139         return(2);
16140     }
16141     if (count >= buflen) {
16142         debug(F101,"WARNING: UTF8 buffer overflow","",count);
16143         count = buflen - 1;
16144     }
16145     for (i = 0; i < count; i++)         /* Copy to result buffer */
16146       buf[i] = tmp[i];
16147     buf[i] = '\0';
16148     return(count);
16149 }
16150
16151 #ifndef OS2
16152 int
16153 isunicode(                              /* Tells whether the host we are */
16154 #ifdef CK_ANSIC                         /* running on supports Unicode */
16155           void                          /* display */
16156 #endif /* CK_ANSIC */
16157           ) {
16158 #ifdef NT
16159     extern int tt_unicode;
16160 #ifdef KUI
16161     return(tt_unicode);
16162 #else /* KUI */
16163     if (tt_unicode && !isWin95())
16164       return(1);
16165     else
16166       return(0);
16167 #endif /* KUI */
16168 #else /* NT */
16169     return(0);
16170 #endif /* NT */
16171 }
16172 #endif /* OS2 */
16173 #endif /* UNICODE */