source: main/trunk/greenstone2/common-src/indexers/mgpp/lib/unitool.cpp@ 26163

Last change on this file since 26163 was 26163, checked in by kjdon, 12 years ago

added some comments to make clear whether max_output_length includes the space for the length in position zero or not (not.) And fixed up an off-by-one error to do with the same thing

  • Property svn:executable set to *
  • Property svn:keywords set to Author Date Id Revision
File size: 113.8 KB
Line 
1#include "unitool.h"
2#include "sysfuncs.h"
3
4/* unicode_cat_data is a combination of the letter, digit, and
5 * space information in a form that is quick to look up.
6 * The information about each byte is stored in two bits
7 *
8 * 00 - neither letter, digit or space
9 * 01 - letter
10 * 10 - space
11 * 11 - digit
12 *
13 * You can test for letter | space by looking at the right
14 * column
15 */
16static mg_u_long *unicode_cat_data=NULL;
17
18
19typedef struct unidecompose {
20 unsigned short ch;
21 unsigned short str[3];
22} unidecompose;
23
24typedef struct unirelate {
25 unsigned short ch1;
26 unsigned short ch2;
27} unirelate;
28
29typedef struct unirange {
30 unsigned short first;
31 unsigned short last;
32} unirange;
33
34
35
36/* This decomposition data only includes canonical decompositional
37 * characters. Any unused bytes are set to 0x0. */
38
39#define NUM_DECOMPOSE_INFO 1269
40static const unidecompose decompose_info[NUM_DECOMPOSE_INFO] = {
41 {0xC0,{0x41,0x300,0x0}}, {0xC1,{0x41,0x301,0x0}}, {0xC2,{0x41,0x302,0x0}},
42 {0xC3,{0x41,0x303,0x0}}, {0xC4,{0x41,0x308,0x0}}, {0xC5,{0x41,0x30A,0x0}},
43 {0xC7,{0x43,0x327,0x0}}, {0xC8,{0x45,0x300,0x0}}, {0xC9,{0x45,0x301,0x0}},
44 {0xCA,{0x45,0x302,0x0}}, {0xCB,{0x45,0x308,0x0}}, {0xCC,{0x49,0x300,0x0}},
45 {0xCD,{0x49,0x301,0x0}}, {0xCE,{0x49,0x302,0x0}}, {0xCF,{0x49,0x308,0x0}},
46 {0xD1,{0x4E,0x303,0x0}}, {0xD2,{0x4F,0x300,0x0}}, {0xD3,{0x4F,0x301,0x0}},
47 {0xD4,{0x4F,0x302,0x0}}, {0xD5,{0x4F,0x303,0x0}}, {0xD6,{0x4F,0x308,0x0}},
48 {0xD9,{0x55,0x300,0x0}}, {0xDA,{0x55,0x301,0x0}}, {0xDB,{0x55,0x302,0x0}},
49 {0xDC,{0x55,0x308,0x0}}, {0xDD,{0x59,0x301,0x0}}, {0xE0,{0x61,0x300,0x0}},
50 {0xE1,{0x61,0x301,0x0}}, {0xE2,{0x61,0x302,0x0}}, {0xE3,{0x61,0x303,0x0}},
51 {0xE4,{0x61,0x308,0x0}}, {0xE5,{0x61,0x30A,0x0}}, {0xE7,{0x63,0x327,0x0}},
52 {0xE8,{0x65,0x300,0x0}}, {0xE9,{0x65,0x301,0x0}}, {0xEA,{0x65,0x302,0x0}},
53 {0xEB,{0x65,0x308,0x0}}, {0xEC,{0x69,0x300,0x0}}, {0xED,{0x69,0x301,0x0}},
54 {0xEE,{0x69,0x302,0x0}}, {0xEF,{0x69,0x308,0x0}}, {0xF1,{0x6E,0x303,0x0}},
55 {0xF2,{0x6F,0x300,0x0}}, {0xF3,{0x6F,0x301,0x0}}, {0xF4,{0x6F,0x302,0x0}},
56 {0xF5,{0x6F,0x303,0x0}}, {0xF6,{0x6F,0x308,0x0}}, {0xF9,{0x75,0x300,0x0}},
57 {0xFA,{0x75,0x301,0x0}}, {0xFB,{0x75,0x302,0x0}}, {0xFC,{0x75,0x308,0x0}},
58 {0xFD,{0x79,0x301,0x0}}, {0xFF,{0x79,0x308,0x0}}, {0x100,{0x41,0x304,0x0}},
59 {0x101,{0x61,0x304,0x0}}, {0x102,{0x41,0x306,0x0}}, {0x103,{0x61,0x306,0x0}},
60 {0x104,{0x41,0x328,0x0}}, {0x105,{0x61,0x328,0x0}}, {0x106,{0x43,0x301,0x0}},
61 {0x107,{0x63,0x301,0x0}}, {0x108,{0x43,0x302,0x0}}, {0x109,{0x63,0x302,0x0}},
62 {0x10A,{0x43,0x307,0x0}}, {0x10B,{0x63,0x307,0x0}}, {0x10C,{0x43,0x30C,0x0}},
63 {0x10D,{0x63,0x30C,0x0}}, {0x10E,{0x44,0x30C,0x0}}, {0x10F,{0x64,0x30C,0x0}},
64 {0x112,{0x45,0x304,0x0}}, {0x113,{0x65,0x304,0x0}}, {0x114,{0x45,0x306,0x0}},
65 {0x115,{0x65,0x306,0x0}}, {0x116,{0x45,0x307,0x0}}, {0x117,{0x65,0x307,0x0}},
66 {0x118,{0x45,0x328,0x0}}, {0x119,{0x65,0x328,0x0}}, {0x11A,{0x45,0x30C,0x0}},
67 {0x11B,{0x65,0x30C,0x0}}, {0x11C,{0x47,0x302,0x0}}, {0x11D,{0x67,0x302,0x0}},
68 {0x11E,{0x47,0x306,0x0}}, {0x11F,{0x67,0x306,0x0}}, {0x120,{0x47,0x307,0x0}},
69 {0x121,{0x67,0x307,0x0}}, {0x122,{0x47,0x327,0x0}}, {0x123,{0x67,0x327,0x0}},
70 {0x124,{0x48,0x302,0x0}}, {0x125,{0x68,0x302,0x0}}, {0x128,{0x49,0x303,0x0}},
71 {0x129,{0x69,0x303,0x0}}, {0x12A,{0x49,0x304,0x0}}, {0x12B,{0x69,0x304,0x0}},
72 {0x12C,{0x49,0x306,0x0}}, {0x12D,{0x69,0x306,0x0}}, {0x12E,{0x49,0x328,0x0}},
73 {0x12F,{0x69,0x328,0x0}}, {0x130,{0x49,0x307,0x0}}, {0x134,{0x4A,0x302,0x0}},
74 {0x135,{0x6A,0x302,0x0}}, {0x136,{0x4B,0x327,0x0}}, {0x137,{0x6B,0x327,0x0}},
75 {0x139,{0x4C,0x301,0x0}}, {0x13A,{0x6C,0x301,0x0}}, {0x13B,{0x4C,0x327,0x0}},
76 {0x13C,{0x6C,0x327,0x0}}, {0x13D,{0x4C,0x30C,0x0}}, {0x13E,{0x6C,0x30C,0x0}},
77 {0x143,{0x4E,0x301,0x0}}, {0x144,{0x6E,0x301,0x0}}, {0x145,{0x4E,0x327,0x0}},
78 {0x146,{0x6E,0x327,0x0}}, {0x147,{0x4E,0x30C,0x0}}, {0x148,{0x6E,0x30C,0x0}},
79 {0x14C,{0x4F,0x304,0x0}}, {0x14D,{0x6F,0x304,0x0}}, {0x14E,{0x4F,0x306,0x0}},
80 {0x14F,{0x6F,0x306,0x0}}, {0x150,{0x4F,0x30B,0x0}}, {0x151,{0x6F,0x30B,0x0}},
81 {0x154,{0x52,0x301,0x0}}, {0x155,{0x72,0x301,0x0}}, {0x156,{0x52,0x327,0x0}},
82 {0x157,{0x72,0x327,0x0}}, {0x158,{0x52,0x30C,0x0}}, {0x159,{0x72,0x30C,0x0}},
83 {0x15A,{0x53,0x301,0x0}}, {0x15B,{0x73,0x301,0x0}}, {0x15C,{0x53,0x302,0x0}},
84 {0x15D,{0x73,0x302,0x0}}, {0x15E,{0x53,0x327,0x0}}, {0x15F,{0x73,0x327,0x0}},
85 {0x160,{0x53,0x30C,0x0}}, {0x161,{0x73,0x30C,0x0}}, {0x162,{0x54,0x327,0x0}},
86 {0x163,{0x74,0x327,0x0}}, {0x164,{0x54,0x30C,0x0}}, {0x165,{0x74,0x30C,0x0}},
87 {0x168,{0x55,0x303,0x0}}, {0x169,{0x75,0x303,0x0}}, {0x16A,{0x55,0x304,0x0}},
88 {0x16B,{0x75,0x304,0x0}}, {0x16C,{0x55,0x306,0x0}}, {0x16D,{0x75,0x306,0x0}},
89 {0x16E,{0x55,0x30A,0x0}}, {0x16F,{0x75,0x30A,0x0}}, {0x170,{0x55,0x30B,0x0}},
90 {0x171,{0x75,0x30B,0x0}}, {0x172,{0x55,0x328,0x0}}, {0x173,{0x75,0x328,0x0}},
91 {0x174,{0x57,0x302,0x0}}, {0x175,{0x77,0x302,0x0}}, {0x176,{0x59,0x302,0x0}},
92 {0x177,{0x79,0x302,0x0}}, {0x178,{0x59,0x308,0x0}}, {0x179,{0x5A,0x301,0x0}},
93 {0x17A,{0x7A,0x301,0x0}}, {0x17B,{0x5A,0x307,0x0}}, {0x17C,{0x7A,0x307,0x0}},
94 {0x17D,{0x5A,0x30C,0x0}}, {0x17E,{0x7A,0x30C,0x0}}, {0x1A0,{0x4F,0x31B,0x0}},
95 {0x1A1,{0x6F,0x31B,0x0}}, {0x1AF,{0x55,0x31B,0x0}}, {0x1B0,{0x75,0x31B,0x0}},
96 {0x1CD,{0x41,0x30C,0x0}}, {0x1CE,{0x61,0x30C,0x0}}, {0x1CF,{0x49,0x30C,0x0}},
97 {0x1D0,{0x69,0x30C,0x0}}, {0x1D1,{0x4F,0x30C,0x0}}, {0x1D2,{0x6F,0x30C,0x0}},
98 {0x1D3,{0x55,0x30C,0x0}}, {0x1D4,{0x75,0x30C,0x0}}, {0x1D5,{0xDC,0x304,0x0}},
99 {0x1D6,{0xFC,0x304,0x0}}, {0x1D7,{0xDC,0x301,0x0}}, {0x1D8,{0xFC,0x301,0x0}},
100 {0x1D9,{0xDC,0x30C,0x0}}, {0x1DA,{0xFC,0x30C,0x0}}, {0x1DB,{0xDC,0x300,0x0}},
101 {0x1DC,{0xFC,0x300,0x0}}, {0x1DE,{0xC4,0x304,0x0}}, {0x1DF,{0xE4,0x304,0x0}},
102 {0x1E0,{0x41,0x307,0x304}}, {0x1E1,{0x61,0x307,0x304}}, {0x1E2,{0xC6,0x304,0x0}},
103 {0x1E3,{0xE6,0x304,0x0}}, {0x1E6,{0x47,0x30C,0x0}}, {0x1E7,{0x67,0x30C,0x0}},
104 {0x1E8,{0x4B,0x30C,0x0}}, {0x1E9,{0x6B,0x30C,0x0}}, {0x1EA,{0x4F,0x328,0x0}},
105 {0x1EB,{0x6F,0x328,0x0}}, {0x1EC,{0x1EA,0x304,0x0}}, {0x1ED,{0x1EB,0x304,0x0}},
106 {0x1EE,{0x1B7,0x30C,0x0}}, {0x1EF,{0x292,0x30C,0x0}}, {0x1F0,{0x6A,0x30C,0x0}},
107 {0x1F4,{0x47,0x301,0x0}}, {0x1F5,{0x67,0x301,0x0}}, {0x1FA,{0xC5,0x301,0x0}},
108 {0x1FB,{0xE5,0x301,0x0}}, {0x1FC,{0xC6,0x301,0x0}}, {0x1FD,{0xE6,0x301,0x0}},
109 {0x1FE,{0xD8,0x301,0x0}}, {0x1FF,{0xF8,0x301,0x0}}, {0x200,{0x41,0x30F,0x0}},
110 {0x201,{0x61,0x30F,0x0}}, {0x202,{0x41,0x311,0x0}}, {0x203,{0x61,0x311,0x0}},
111 {0x204,{0x45,0x30F,0x0}}, {0x205,{0x65,0x30F,0x0}}, {0x206,{0x45,0x311,0x0}},
112 {0x207,{0x65,0x311,0x0}}, {0x208,{0x49,0x30F,0x0}}, {0x209,{0x69,0x30F,0x0}},
113 {0x20A,{0x49,0x311,0x0}}, {0x20B,{0x69,0x311,0x0}}, {0x20C,{0x4F,0x30F,0x0}},
114 {0x20D,{0x6F,0x30F,0x0}}, {0x20E,{0x4F,0x311,0x0}}, {0x20F,{0x6F,0x311,0x0}},
115 {0x210,{0x52,0x30F,0x0}}, {0x211,{0x72,0x30F,0x0}}, {0x212,{0x52,0x311,0x0}},
116 {0x213,{0x72,0x311,0x0}}, {0x214,{0x55,0x30F,0x0}}, {0x215,{0x75,0x30F,0x0}},
117 {0x216,{0x55,0x311,0x0}}, {0x217,{0x75,0x311,0x0}}, {0x310,{0x306,0x307,0x0}},
118 {0x340,{0x300,0x0,0x0}}, {0x341,{0x301,0x0,0x0}}, {0x343,{0x313,0x0,0x0}},
119 {0x344,{0x308,0x30D,0x0}}, {0x374,{0x2B9,0x0,0x0}}, {0x37E,{0x3B,0x0,0x0}},
120 {0x385,{0xA8,0x30D,0x0}}, {0x386,{0x391,0x30D,0x0}}, {0x387,{0xB7,0x0,0x0}},
121 {0x388,{0x395,0x30D,0x0}}, {0x389,{0x397,0x30D,0x0}}, {0x38A,{0x399,0x30D,0x0}},
122 {0x38C,{0x39F,0x30D,0x0}}, {0x38E,{0x3A5,0x30D,0x0}}, {0x38F,{0x3A9,0x30D,0x0}},
123 {0x390,{0x3B9,0x344,0x0}}, {0x3AA,{0x399,0x308,0x0}}, {0x3AB,{0x3A5,0x308,0x0}},
124 {0x3AC,{0x3B1,0x30D,0x0}}, {0x3AD,{0x3B5,0x30D,0x0}}, {0x3AE,{0x3B7,0x30D,0x0}},
125 {0x3AF,{0x3B9,0x30D,0x0}}, {0x3B0,{0x3C5,0x344,0x0}}, {0x3CA,{0x3B9,0x308,0x0}},
126 {0x3CB,{0x3C5,0x308,0x0}}, {0x3CC,{0x3BF,0x30D,0x0}}, {0x3CD,{0x3C5,0x30D,0x0}},
127 {0x3CE,{0x3C9,0x30D,0x0}}, {0x3D3,{0x3D2,0x30D,0x0}}, {0x3D4,{0x3D2,0x308,0x0}},
128 {0x401,{0x415,0x308,0x0}}, {0x403,{0x413,0x301,0x0}}, {0x407,{0x406,0x308,0x0}},
129 {0x40C,{0x41A,0x301,0x0}}, {0x40E,{0x423,0x306,0x0}}, {0x419,{0x418,0x306,0x0}},
130 {0x439,{0x438,0x306,0x0}}, {0x451,{0x435,0x308,0x0}}, {0x453,{0x433,0x301,0x0}},
131 {0x457,{0x456,0x308,0x0}}, {0x45C,{0x43A,0x301,0x0}}, {0x45E,{0x443,0x306,0x0}},
132 {0x476,{0x474,0x30F,0x0}}, {0x477,{0x475,0x30F,0x0}}, {0x4C1,{0x416,0x306,0x0}},
133 {0x4C2,{0x436,0x306,0x0}}, {0x4D0,{0x410,0x306,0x0}}, {0x4D1,{0x430,0x306,0x0}},
134 {0x4D2,{0x410,0x308,0x0}}, {0x4D3,{0x430,0x308,0x0}}, {0x4D6,{0x415,0x306,0x0}},
135 {0x4D7,{0x435,0x306,0x0}}, {0x4DA,{0x4D8,0x308,0x0}}, {0x4DB,{0x4D9,0x308,0x0}},
136 {0x4DC,{0x416,0x308,0x0}}, {0x4DD,{0x436,0x308,0x0}}, {0x4DE,{0x417,0x308,0x0}},
137 {0x4DF,{0x437,0x308,0x0}}, {0x4E2,{0x418,0x304,0x0}}, {0x4E3,{0x438,0x304,0x0}},
138 {0x4E4,{0x418,0x308,0x0}}, {0x4E5,{0x438,0x308,0x0}}, {0x4E6,{0x41E,0x308,0x0}},
139 {0x4E7,{0x43E,0x308,0x0}}, {0x4EA,{0x4E8,0x308,0x0}}, {0x4EB,{0x4E9,0x308,0x0}},
140 {0x4EE,{0x423,0x304,0x0}}, {0x4EF,{0x443,0x304,0x0}}, {0x4F0,{0x423,0x308,0x0}},
141 {0x4F1,{0x443,0x308,0x0}}, {0x4F2,{0x423,0x30B,0x0}}, {0x4F3,{0x443,0x30B,0x0}},
142 {0x4F4,{0x427,0x308,0x0}}, {0x4F5,{0x447,0x308,0x0}}, {0x4F8,{0x42B,0x308,0x0}},
143 {0x4F9,{0x44B,0x308,0x0}}, {0x929,{0x928,0x93C,0x0}}, {0x931,{0x930,0x93C,0x0}},
144 {0x934,{0x933,0x93C,0x0}}, {0x958,{0x915,0x93C,0x0}}, {0x959,{0x916,0x93C,0x0}},
145 {0x95A,{0x917,0x93C,0x0}}, {0x95B,{0x91C,0x93C,0x0}}, {0x95C,{0x921,0x93C,0x0}},
146 {0x95D,{0x922,0x93C,0x0}}, {0x95E,{0x92B,0x93C,0x0}}, {0x95F,{0x92F,0x93C,0x0}},
147 {0x9B0,{0x9AC,0x9BC,0x0}}, {0x9CB,{0x9C7,0x9BE,0x0}}, {0x9CC,{0x9C7,0x9D7,0x0}},
148 {0x9DC,{0x9A1,0x9BC,0x0}}, {0x9DD,{0x9A2,0x9BC,0x0}}, {0x9DF,{0x9AF,0x9BC,0x0}},
149 {0xA59,{0xA16,0xA3C,0x0}}, {0xA5A,{0xA17,0xA3C,0x0}}, {0xA5B,{0xA1C,0xA3C,0x0}},
150 {0xA5C,{0xA21,0xA3C,0x0}}, {0xA5E,{0xA2B,0xA3C,0x0}}, {0xB48,{0xB47,0xB56,0x0}},
151 {0xB4B,{0xB47,0xB3E,0x0}}, {0xB4C,{0xB47,0xB57,0x0}}, {0xB5C,{0xB21,0xB3C,0x0}},
152 {0xB5D,{0xB22,0xB3C,0x0}}, {0xB5F,{0xB2F,0xB3C,0x0}}, {0xB94,{0xB92,0xBD7,0x0}},
153 {0xBCA,{0xBC6,0xBBE,0x0}}, {0xBCB,{0xBC7,0xBBE,0x0}}, {0xBCC,{0xBC6,0xBD7,0x0}},
154 {0xC48,{0xC46,0xC56,0x0}}, {0xCC0,{0xCBF,0xCD5,0x0}}, {0xCC7,{0xCC6,0xCD5,0x0}},
155 {0xCC8,{0xCC6,0xCD6,0x0}}, {0xCCA,{0xCC6,0xCC2,0x0}}, {0xCCB,{0xCC6,0xCC2,0xCD5}},
156 {0xD4A,{0xD46,0xD3E,0x0}}, {0xD4B,{0xD47,0xD3E,0x0}}, {0xD4C,{0xD46,0xD57,0x0}},
157 {0xE33,{0xE4D,0xE32,0x0}}, {0xEB3,{0xECD,0xEB2,0x0}}, {0xF43,{0xF42,0xFB7,0x0}},
158 {0xF4D,{0xF4C,0xFB7,0x0}}, {0xF52,{0xF51,0xFB7,0x0}}, {0xF57,{0xF56,0xFB7,0x0}},
159 {0xF5C,{0xF5B,0xFB7,0x0}}, {0xF69,{0xF40,0xFB5,0x0}}, {0xF73,{0xF72,0xF71,0x0}},
160 {0xF75,{0xF71,0xF74,0x0}}, {0xF76,{0xFB2,0xF80,0x0}}, {0xF77,{0xF76,0xF71,0x0}},
161 {0xF78,{0xFB3,0xF80,0x0}}, {0xF79,{0xF78,0xF71,0x0}}, {0xF81,{0xF80,0xF71,0x0}},
162 {0xF93,{0xF92,0xFB7,0x0}}, {0xF9D,{0xF9C,0xFB7,0x0}}, {0xFA2,{0xFA1,0xFB7,0x0}},
163 {0xFA7,{0xFA6,0xFB7,0x0}}, {0xFAC,{0xFAB,0xFB7,0x0}}, {0xFB9,{0xF90,0xFB5,0x0}},
164 {0x1E00,{0x41,0x325,0x0}}, {0x1E01,{0x61,0x325,0x0}}, {0x1E02,{0x42,0x307,0x0}},
165 {0x1E03,{0x62,0x307,0x0}}, {0x1E04,{0x42,0x323,0x0}}, {0x1E05,{0x62,0x323,0x0}},
166 {0x1E06,{0x42,0x331,0x0}}, {0x1E07,{0x62,0x331,0x0}}, {0x1E08,{0xC7,0x301,0x0}},
167 {0x1E09,{0xE7,0x301,0x0}}, {0x1E0A,{0x44,0x307,0x0}}, {0x1E0B,{0x64,0x307,0x0}},
168 {0x1E0C,{0x44,0x323,0x0}}, {0x1E0D,{0x64,0x323,0x0}}, {0x1E0E,{0x44,0x331,0x0}},
169 {0x1E0F,{0x64,0x331,0x0}}, {0x1E10,{0x44,0x327,0x0}}, {0x1E11,{0x64,0x327,0x0}},
170 {0x1E12,{0x44,0x32D,0x0}}, {0x1E13,{0x64,0x32D,0x0}}, {0x1E14,{0x112,0x300,0x0}},
171 {0x1E15,{0x113,0x300,0x0}}, {0x1E16,{0x112,0x301,0x0}}, {0x1E17,{0x113,0x301,0x0}},
172 {0x1E18,{0x45,0x32D,0x0}}, {0x1E19,{0x65,0x32D,0x0}}, {0x1E1A,{0x45,0x330,0x0}},
173 {0x1E1B,{0x65,0x330,0x0}}, {0x1E1C,{0x114,0x327,0x0}}, {0x1E1D,{0x115,0x327,0x0}},
174 {0x1E1E,{0x46,0x307,0x0}}, {0x1E1F,{0x66,0x307,0x0}}, {0x1E20,{0x47,0x304,0x0}},
175 {0x1E21,{0x67,0x304,0x0}}, {0x1E22,{0x48,0x307,0x0}}, {0x1E23,{0x68,0x307,0x0}},
176 {0x1E24,{0x48,0x323,0x0}}, {0x1E25,{0x68,0x323,0x0}}, {0x1E26,{0x48,0x308,0x0}},
177 {0x1E27,{0x68,0x308,0x0}}, {0x1E28,{0x48,0x327,0x0}}, {0x1E29,{0x68,0x327,0x0}},
178 {0x1E2A,{0x48,0x32E,0x0}}, {0x1E2B,{0x68,0x32E,0x0}}, {0x1E2C,{0x49,0x330,0x0}},
179 {0x1E2D,{0x69,0x330,0x0}}, {0x1E2E,{0xCF,0x301,0x0}}, {0x1E2F,{0xEF,0x301,0x0}},
180 {0x1E30,{0x4B,0x301,0x0}}, {0x1E31,{0x6B,0x301,0x0}}, {0x1E32,{0x4B,0x323,0x0}},
181 {0x1E33,{0x6B,0x323,0x0}}, {0x1E34,{0x4B,0x331,0x0}}, {0x1E35,{0x6B,0x331,0x0}},
182 {0x1E36,{0x4C,0x323,0x0}}, {0x1E37,{0x6C,0x323,0x0}}, {0x1E38,{0x1E36,0x304,0x0}},
183 {0x1E39,{0x1E37,0x304,0x0}}, {0x1E3A,{0x4C,0x331,0x0}}, {0x1E3B,{0x6C,0x331,0x0}},
184 {0x1E3C,{0x4C,0x32D,0x0}}, {0x1E3D,{0x6C,0x32D,0x0}}, {0x1E3E,{0x4D,0x301,0x0}},
185 {0x1E3F,{0x6D,0x301,0x0}}, {0x1E40,{0x4D,0x307,0x0}}, {0x1E41,{0x6D,0x307,0x0}},
186 {0x1E42,{0x4D,0x323,0x0}}, {0x1E43,{0x6D,0x323,0x0}}, {0x1E44,{0x4E,0x307,0x0}},
187 {0x1E45,{0x6E,0x307,0x0}}, {0x1E46,{0x4E,0x323,0x0}}, {0x1E47,{0x6E,0x323,0x0}},
188 {0x1E48,{0x4E,0x331,0x0}}, {0x1E49,{0x6E,0x331,0x0}}, {0x1E4A,{0x4E,0x32D,0x0}},
189 {0x1E4B,{0x6E,0x32D,0x0}}, {0x1E4C,{0xD5,0x301,0x0}}, {0x1E4D,{0xF5,0x301,0x0}},
190 {0x1E4E,{0xD5,0x308,0x0}}, {0x1E4F,{0xF5,0x308,0x0}}, {0x1E50,{0x14C,0x300,0x0}},
191 {0x1E51,{0x14D,0x300,0x0}}, {0x1E52,{0x14C,0x301,0x0}}, {0x1E53,{0x14D,0x301,0x0}},
192 {0x1E54,{0x50,0x301,0x0}}, {0x1E55,{0x70,0x301,0x0}}, {0x1E56,{0x50,0x307,0x0}},
193 {0x1E57,{0x70,0x307,0x0}}, {0x1E58,{0x52,0x307,0x0}}, {0x1E59,{0x72,0x307,0x0}},
194 {0x1E5A,{0x52,0x323,0x0}}, {0x1E5B,{0x72,0x323,0x0}}, {0x1E5C,{0x1E5A,0x304,0x0}},
195 {0x1E5D,{0x1E5B,0x304,0x0}}, {0x1E5E,{0x52,0x331,0x0}}, {0x1E5F,{0x72,0x331,0x0}},
196 {0x1E60,{0x53,0x307,0x0}}, {0x1E61,{0x73,0x307,0x0}}, {0x1E62,{0x53,0x323,0x0}},
197 {0x1E63,{0x73,0x323,0x0}}, {0x1E64,{0x15A,0x307,0x0}}, {0x1E65,{0x15B,0x307,0x0}},
198 {0x1E66,{0x160,0x307,0x0}}, {0x1E67,{0x161,0x307,0x0}}, {0x1E68,{0x1E62,0x307,0x0}},
199 {0x1E69,{0x1E63,0x307,0x0}}, {0x1E6A,{0x54,0x307,0x0}}, {0x1E6B,{0x74,0x307,0x0}},
200 {0x1E6C,{0x54,0x323,0x0}}, {0x1E6D,{0x74,0x323,0x0}}, {0x1E6E,{0x54,0x331,0x0}},
201 {0x1E6F,{0x74,0x331,0x0}}, {0x1E70,{0x54,0x32D,0x0}}, {0x1E71,{0x74,0x32D,0x0}},
202 {0x1E72,{0x55,0x324,0x0}}, {0x1E73,{0x75,0x324,0x0}}, {0x1E74,{0x55,0x330,0x0}},
203 {0x1E75,{0x75,0x330,0x0}}, {0x1E76,{0x55,0x32D,0x0}}, {0x1E77,{0x75,0x32D,0x0}},
204 {0x1E78,{0x168,0x301,0x0}}, {0x1E79,{0x169,0x301,0x0}}, {0x1E7A,{0x16A,0x308,0x0}},
205 {0x1E7B,{0x16B,0x308,0x0}}, {0x1E7C,{0x56,0x303,0x0}}, {0x1E7D,{0x76,0x303,0x0}},
206 {0x1E7E,{0x56,0x323,0x0}}, {0x1E7F,{0x76,0x323,0x0}}, {0x1E80,{0x57,0x300,0x0}},
207 {0x1E81,{0x77,0x300,0x0}}, {0x1E82,{0x57,0x301,0x0}}, {0x1E83,{0x77,0x301,0x0}},
208 {0x1E84,{0x57,0x308,0x0}}, {0x1E85,{0x77,0x308,0x0}}, {0x1E86,{0x57,0x307,0x0}},
209 {0x1E87,{0x77,0x307,0x0}}, {0x1E88,{0x57,0x323,0x0}}, {0x1E89,{0x77,0x323,0x0}},
210 {0x1E8A,{0x58,0x307,0x0}}, {0x1E8B,{0x78,0x307,0x0}}, {0x1E8C,{0x58,0x308,0x0}},
211 {0x1E8D,{0x78,0x308,0x0}}, {0x1E8E,{0x59,0x307,0x0}}, {0x1E8F,{0x79,0x307,0x0}},
212 {0x1E90,{0x5A,0x302,0x0}}, {0x1E91,{0x7A,0x302,0x0}}, {0x1E92,{0x5A,0x323,0x0}},
213 {0x1E93,{0x7A,0x323,0x0}}, {0x1E94,{0x5A,0x331,0x0}}, {0x1E95,{0x7A,0x331,0x0}},
214 {0x1E96,{0x68,0x331,0x0}}, {0x1E97,{0x74,0x308,0x0}}, {0x1E98,{0x77,0x30A,0x0}},
215 {0x1E99,{0x79,0x30A,0x0}}, {0x1E9B,{0x17F,0x307,0x0}}, {0x1EA0,{0x41,0x323,0x0}},
216 {0x1EA1,{0x61,0x323,0x0}}, {0x1EA2,{0x41,0x309,0x0}}, {0x1EA3,{0x61,0x309,0x0}},
217 {0x1EA4,{0xC2,0x301,0x0}}, {0x1EA5,{0xE2,0x301,0x0}}, {0x1EA6,{0xC2,0x300,0x0}},
218 {0x1EA7,{0xE2,0x300,0x0}}, {0x1EA8,{0xC2,0x309,0x0}}, {0x1EA9,{0xE2,0x309,0x0}},
219 {0x1EAA,{0xC2,0x303,0x0}}, {0x1EAB,{0xE2,0x303,0x0}}, {0x1EAC,{0xC2,0x323,0x0}},
220 {0x1EAD,{0xE2,0x323,0x0}}, {0x1EAE,{0x102,0x301,0x0}}, {0x1EAF,{0x103,0x301,0x0}},
221 {0x1EB0,{0x102,0x300,0x0}}, {0x1EB1,{0x103,0x300,0x0}}, {0x1EB2,{0x102,0x309,0x0}},
222 {0x1EB3,{0x103,0x309,0x0}}, {0x1EB4,{0x102,0x303,0x0}}, {0x1EB5,{0x103,0x303,0x0}},
223 {0x1EB6,{0x102,0x323,0x0}}, {0x1EB7,{0x103,0x323,0x0}}, {0x1EB8,{0x45,0x323,0x0}},
224 {0x1EB9,{0x65,0x323,0x0}}, {0x1EBA,{0x45,0x309,0x0}}, {0x1EBB,{0x65,0x309,0x0}},
225 {0x1EBC,{0x45,0x303,0x0}}, {0x1EBD,{0x65,0x303,0x0}}, {0x1EBE,{0xCA,0x301,0x0}},
226 {0x1EBF,{0xEA,0x301,0x0}}, {0x1EC0,{0xCA,0x300,0x0}}, {0x1EC1,{0xEA,0x300,0x0}},
227 {0x1EC2,{0xCA,0x309,0x0}}, {0x1EC3,{0xEA,0x309,0x0}}, {0x1EC4,{0xCA,0x303,0x0}},
228 {0x1EC5,{0xEA,0x303,0x0}}, {0x1EC6,{0xCA,0x323,0x0}}, {0x1EC7,{0xEA,0x323,0x0}},
229 {0x1EC8,{0x49,0x309,0x0}}, {0x1EC9,{0x69,0x309,0x0}}, {0x1ECA,{0x49,0x323,0x0}},
230 {0x1ECB,{0x69,0x323,0x0}}, {0x1ECC,{0x4F,0x323,0x0}}, {0x1ECD,{0x6F,0x323,0x0}},
231 {0x1ECE,{0x4F,0x309,0x0}}, {0x1ECF,{0x6F,0x309,0x0}}, {0x1ED0,{0xD4,0x301,0x0}},
232 {0x1ED1,{0xF4,0x301,0x0}}, {0x1ED2,{0xD4,0x300,0x0}}, {0x1ED3,{0xF4,0x300,0x0}},
233 {0x1ED4,{0xD4,0x309,0x0}}, {0x1ED5,{0xF4,0x309,0x0}}, {0x1ED6,{0xD4,0x303,0x0}},
234 {0x1ED7,{0xF4,0x303,0x0}}, {0x1ED8,{0xD4,0x323,0x0}}, {0x1ED9,{0xF4,0x323,0x0}},
235 {0x1EDA,{0x1A0,0x301,0x0}}, {0x1EDB,{0x1A1,0x301,0x0}}, {0x1EDC,{0x1A0,0x300,0x0}},
236 {0x1EDD,{0x1A1,0x300,0x0}}, {0x1EDE,{0x1A0,0x309,0x0}}, {0x1EDF,{0x1A1,0x309,0x0}},
237 {0x1EE0,{0x1A0,0x303,0x0}}, {0x1EE1,{0x1A1,0x303,0x0}}, {0x1EE2,{0x1A0,0x323,0x0}},
238 {0x1EE3,{0x1A1,0x323,0x0}}, {0x1EE4,{0x55,0x323,0x0}}, {0x1EE5,{0x75,0x323,0x0}},
239 {0x1EE6,{0x55,0x309,0x0}}, {0x1EE7,{0x75,0x309,0x0}}, {0x1EE8,{0x1AF,0x301,0x0}},
240 {0x1EE9,{0x1B0,0x301,0x0}}, {0x1EEA,{0x1AF,0x300,0x0}}, {0x1EEB,{0x1B0,0x300,0x0}},
241 {0x1EEC,{0x1AF,0x309,0x0}}, {0x1EED,{0x1B0,0x309,0x0}}, {0x1EEE,{0x1AF,0x303,0x0}},
242 {0x1EEF,{0x1B0,0x303,0x0}}, {0x1EF0,{0x1AF,0x323,0x0}}, {0x1EF1,{0x1B0,0x323,0x0}},
243 {0x1EF2,{0x59,0x300,0x0}}, {0x1EF3,{0x79,0x300,0x0}}, {0x1EF4,{0x59,0x323,0x0}},
244 {0x1EF5,{0x79,0x323,0x0}}, {0x1EF6,{0x59,0x309,0x0}}, {0x1EF7,{0x79,0x309,0x0}},
245 {0x1EF8,{0x59,0x303,0x0}}, {0x1EF9,{0x79,0x303,0x0}}, {0x1F00,{0x3B1,0x313,0x0}},
246 {0x1F01,{0x3B1,0x314,0x0}}, {0x1F02,{0x1F00,0x300,0x0}}, {0x1F03,{0x1F01,0x300,0x0}},
247 {0x1F04,{0x1F00,0x301,0x0}}, {0x1F05,{0x1F01,0x301,0x0}}, {0x1F06,{0x1F00,0x342,0x0}},
248 {0x1F07,{0x1F01,0x342,0x0}}, {0x1F08,{0x391,0x313,0x0}}, {0x1F09,{0x391,0x314,0x0}},
249 {0x1F0A,{0x1F08,0x300,0x0}}, {0x1F0B,{0x1F09,0x300,0x0}}, {0x1F0C,{0x1F08,0x301,0x0}},
250 {0x1F0D,{0x1F09,0x301,0x0}}, {0x1F0E,{0x1F08,0x342,0x0}}, {0x1F0F,{0x1F09,0x342,0x0}},
251 {0x1F10,{0x3B5,0x313,0x0}}, {0x1F11,{0x3B5,0x314,0x0}}, {0x1F12,{0x1F10,0x300,0x0}},
252 {0x1F13,{0x1F11,0x300,0x0}}, {0x1F14,{0x1F10,0x301,0x0}}, {0x1F15,{0x1F11,0x301,0x0}},
253 {0x1F18,{0x395,0x313,0x0}}, {0x1F19,{0x395,0x314,0x0}}, {0x1F1A,{0x1F18,0x300,0x0}},
254 {0x1F1B,{0x1F19,0x300,0x0}}, {0x1F1C,{0x1F18,0x301,0x0}}, {0x1F1D,{0x1F19,0x301,0x0}},
255 {0x1F20,{0x3B7,0x313,0x0}}, {0x1F21,{0x3B7,0x314,0x0}}, {0x1F22,{0x1F20,0x300,0x0}},
256 {0x1F23,{0x1F21,0x300,0x0}}, {0x1F24,{0x1F20,0x301,0x0}}, {0x1F25,{0x1F21,0x301,0x0}},
257 {0x1F26,{0x1F20,0x342,0x0}}, {0x1F27,{0x1F21,0x342,0x0}}, {0x1F28,{0x397,0x313,0x0}},
258 {0x1F29,{0x397,0x314,0x0}}, {0x1F2A,{0x1F28,0x300,0x0}}, {0x1F2B,{0x1F29,0x300,0x0}},
259 {0x1F2C,{0x1F28,0x301,0x0}}, {0x1F2D,{0x1F29,0x301,0x0}}, {0x1F2E,{0x1F28,0x342,0x0}},
260 {0x1F2F,{0x1F29,0x342,0x0}}, {0x1F30,{0x3B9,0x313,0x0}}, {0x1F31,{0x3B9,0x314,0x0}},
261 {0x1F32,{0x1F30,0x300,0x0}}, {0x1F33,{0x1F31,0x300,0x0}}, {0x1F34,{0x1F30,0x301,0x0}},
262 {0x1F35,{0x1F31,0x301,0x0}}, {0x1F36,{0x1F30,0x342,0x0}}, {0x1F37,{0x1F31,0x342,0x0}},
263 {0x1F38,{0x399,0x313,0x0}}, {0x1F39,{0x399,0x314,0x0}}, {0x1F3A,{0x1F38,0x300,0x0}},
264 {0x1F3B,{0x1F39,0x300,0x0}}, {0x1F3C,{0x1F38,0x301,0x0}}, {0x1F3D,{0x1F39,0x301,0x0}},
265 {0x1F3E,{0x1F38,0x342,0x0}}, {0x1F3F,{0x1F39,0x342,0x0}}, {0x1F40,{0x3BF,0x313,0x0}},
266 {0x1F41,{0x3BF,0x314,0x0}}, {0x1F42,{0x1F40,0x300,0x0}}, {0x1F43,{0x1F41,0x300,0x0}},
267 {0x1F44,{0x1F40,0x301,0x0}}, {0x1F45,{0x1F41,0x301,0x0}}, {0x1F48,{0x39F,0x313,0x0}},
268 {0x1F49,{0x39F,0x314,0x0}}, {0x1F4A,{0x1F48,0x300,0x0}}, {0x1F4B,{0x1F49,0x300,0x0}},
269 {0x1F4C,{0x1F48,0x301,0x0}}, {0x1F4D,{0x1F49,0x301,0x0}}, {0x1F50,{0x3C5,0x313,0x0}},
270 {0x1F51,{0x3C5,0x314,0x0}}, {0x1F52,{0x1F50,0x300,0x0}}, {0x1F53,{0x1F51,0x300,0x0}},
271 {0x1F54,{0x1F50,0x301,0x0}}, {0x1F55,{0x1F51,0x301,0x0}}, {0x1F56,{0x1F50,0x342,0x0}},
272 {0x1F57,{0x1F51,0x342,0x0}}, {0x1F59,{0x3A5,0x314,0x0}}, {0x1F5B,{0x1F59,0x300,0x0}},
273 {0x1F5D,{0x1F59,0x301,0x0}}, {0x1F5F,{0x1F59,0x342,0x0}}, {0x1F60,{0x3C9,0x313,0x0}},
274 {0x1F61,{0x3C9,0x314,0x0}}, {0x1F62,{0x1F60,0x300,0x0}}, {0x1F63,{0x1F61,0x300,0x0}},
275 {0x1F64,{0x1F60,0x301,0x0}}, {0x1F65,{0x1F61,0x301,0x0}}, {0x1F66,{0x1F60,0x342,0x0}},
276 {0x1F67,{0x1F61,0x342,0x0}}, {0x1F68,{0x3A9,0x313,0x0}}, {0x1F69,{0x3A9,0x314,0x0}},
277 {0x1F6A,{0x1F68,0x300,0x0}}, {0x1F6B,{0x1F69,0x300,0x0}}, {0x1F6C,{0x1F68,0x301,0x0}},
278 {0x1F6D,{0x1F69,0x301,0x0}}, {0x1F6E,{0x1F68,0x342,0x0}}, {0x1F6F,{0x1F69,0x342,0x0}},
279 {0x1F70,{0x3B1,0x300,0x0}}, {0x1F71,{0x3B1,0x301,0x0}}, {0x1F72,{0x3B5,0x300,0x0}},
280 {0x1F73,{0x3B5,0x301,0x0}}, {0x1F74,{0x3B7,0x300,0x0}}, {0x1F75,{0x3B7,0x301,0x0}},
281 {0x1F76,{0x3B9,0x300,0x0}}, {0x1F77,{0x3B9,0x301,0x0}}, {0x1F78,{0x3BF,0x300,0x0}},
282 {0x1F79,{0x3BF,0x301,0x0}}, {0x1F7A,{0x3C5,0x300,0x0}}, {0x1F7B,{0x3C5,0x301,0x0}},
283 {0x1F7C,{0x3C9,0x300,0x0}}, {0x1F7D,{0x3C9,0x301,0x0}}, {0x1F80,{0x1F00,0x345,0x0}},
284 {0x1F81,{0x1F01,0x345,0x0}}, {0x1F82,{0x1F02,0x345,0x0}}, {0x1F83,{0x1F03,0x345,0x0}},
285 {0x1F84,{0x1F04,0x345,0x0}}, {0x1F85,{0x1F05,0x345,0x0}}, {0x1F86,{0x1F06,0x345,0x0}},
286 {0x1F87,{0x1F07,0x345,0x0}}, {0x1F88,{0x1F08,0x345,0x0}}, {0x1F89,{0x1F09,0x345,0x0}},
287 {0x1F8A,{0x1F0A,0x345,0x0}}, {0x1F8B,{0x1F0B,0x345,0x0}}, {0x1F8C,{0x1F0C,0x345,0x0}},
288 {0x1F8D,{0x1F0D,0x345,0x0}}, {0x1F8E,{0x1F0E,0x345,0x0}}, {0x1F8F,{0x1F0F,0x345,0x0}},
289 {0x1F90,{0x1F20,0x345,0x0}}, {0x1F91,{0x1F21,0x345,0x0}}, {0x1F92,{0x1F22,0x345,0x0}},
290 {0x1F93,{0x1F23,0x345,0x0}}, {0x1F94,{0x1F24,0x345,0x0}}, {0x1F95,{0x1F25,0x345,0x0}},
291 {0x1F96,{0x1F26,0x345,0x0}}, {0x1F97,{0x1F27,0x345,0x0}}, {0x1F98,{0x1F28,0x345,0x0}},
292 {0x1F99,{0x1F29,0x345,0x0}}, {0x1F9A,{0x1F2A,0x345,0x0}}, {0x1F9B,{0x1F2B,0x345,0x0}},
293 {0x1F9C,{0x1F2C,0x345,0x0}}, {0x1F9D,{0x1F2D,0x345,0x0}}, {0x1F9E,{0x1F2E,0x345,0x0}},
294 {0x1F9F,{0x1F2F,0x345,0x0}}, {0x1FA0,{0x1F60,0x345,0x0}}, {0x1FA1,{0x1F61,0x345,0x0}},
295 {0x1FA2,{0x1F62,0x345,0x0}}, {0x1FA3,{0x1F63,0x345,0x0}}, {0x1FA4,{0x1F64,0x345,0x0}},
296 {0x1FA5,{0x1F65,0x345,0x0}}, {0x1FA6,{0x1F66,0x345,0x0}}, {0x1FA7,{0x1F67,0x345,0x0}},
297 {0x1FA8,{0x1F68,0x345,0x0}}, {0x1FA9,{0x1F69,0x345,0x0}}, {0x1FAA,{0x1F6A,0x345,0x0}},
298 {0x1FAB,{0x1F6B,0x345,0x0}}, {0x1FAC,{0x1F6C,0x345,0x0}}, {0x1FAD,{0x1F6D,0x345,0x0}},
299 {0x1FAE,{0x1F6E,0x345,0x0}}, {0x1FAF,{0x1F6F,0x345,0x0}}, {0x1FB0,{0x3B1,0x306,0x0}},
300 {0x1FB1,{0x3B1,0x304,0x0}}, {0x1FB2,{0x1F70,0x345,0x0}}, {0x1FB3,{0x3B1,0x345,0x0}},
301 {0x1FB4,{0x1F71,0x345,0x0}}, {0x1FB6,{0x3B1,0x342,0x0}}, {0x1FB7,{0x1FB6,0x345,0x0}},
302 {0x1FB8,{0x391,0x306,0x0}}, {0x1FB9,{0x391,0x304,0x0}}, {0x1FBA,{0x391,0x300,0x0}},
303 {0x1FBB,{0x391,0x301,0x0}}, {0x1FBC,{0x391,0x345,0x0}}, {0x1FBE,{0x3B9,0x0,0x0}},
304 {0x1FC1,{0xA8,0x342,0x0}}, {0x1FC2,{0x1F74,0x345,0x0}}, {0x1FC3,{0x3B7,0x345,0x0}},
305 {0x1FC4,{0x1F75,0x345,0x0}}, {0x1FC6,{0x3B7,0x342,0x0}}, {0x1FC7,{0x1FC6,0x345,0x0}},
306 {0x1FC8,{0x395,0x300,0x0}}, {0x1FC9,{0x395,0x301,0x0}}, {0x1FCA,{0x397,0x300,0x0}},
307 {0x1FCB,{0x397,0x301,0x0}}, {0x1FCC,{0x397,0x345,0x0}}, {0x1FCD,{0x1FBF,0x300,0x0}},
308 {0x1FCE,{0x1FBF,0x301,0x0}}, {0x1FCF,{0x1FBF,0x342,0x0}}, {0x1FD0,{0x3B9,0x306,0x0}},
309 {0x1FD1,{0x3B9,0x304,0x0}}, {0x1FD2,{0x3CA,0x300,0x0}}, {0x1FD3,{0x3CA,0x301,0x0}},
310 {0x1FD6,{0x3B9,0x342,0x0}}, {0x1FD7,{0x3CA,0x342,0x0}}, {0x1FD8,{0x399,0x306,0x0}},
311 {0x1FD9,{0x399,0x304,0x0}}, {0x1FDA,{0x399,0x300,0x0}}, {0x1FDB,{0x399,0x301,0x0}},
312 {0x1FDD,{0x1FFE,0x300,0x0}}, {0x1FDE,{0x1FFE,0x301,0x0}}, {0x1FDF,{0x1FFE,0x342,0x0}},
313 {0x1FE0,{0x3C5,0x306,0x0}}, {0x1FE1,{0x3C5,0x304,0x0}}, {0x1FE2,{0x3CB,0x300,0x0}},
314 {0x1FE3,{0x3CB,0x301,0x0}}, {0x1FE4,{0x3C1,0x313,0x0}}, {0x1FE5,{0x3C1,0x314,0x0}},
315 {0x1FE6,{0x3C5,0x342,0x0}}, {0x1FE7,{0x3CB,0x342,0x0}}, {0x1FE8,{0x3A5,0x306,0x0}},
316 {0x1FE9,{0x3A5,0x304,0x0}}, {0x1FEA,{0x3A5,0x300,0x0}}, {0x1FEB,{0x3A5,0x301,0x0}},
317 {0x1FEC,{0x3A1,0x314,0x0}}, {0x1FED,{0xA8,0x300,0x0}}, {0x1FEE,{0xA8,0x301,0x0}},
318 {0x1FEF,{0x60,0x0,0x0}}, {0x1FF2,{0x1F7C,0x345,0x0}}, {0x1FF3,{0x3C9,0x345,0x0}},
319 {0x1FF4,{0x1F79,0x345,0x0}}, {0x1FF6,{0x3C9,0x342,0x0}}, {0x1FF7,{0x1FF6,0x345,0x0}},
320 {0x1FF8,{0x39F,0x300,0x0}}, {0x1FF9,{0x39F,0x301,0x0}}, {0x1FFA,{0x3A9,0x300,0x0}},
321 {0x1FFB,{0x3A9,0x301,0x0}}, {0x1FFC,{0x3A9,0x345,0x0}}, {0x1FFD,{0xB4,0x0,0x0}},
322 {0x2000,{0x2002,0x0,0x0}}, {0x2001,{0x2003,0x0,0x0}}, {0x2126,{0x3A9,0x0,0x0}},
323 {0x212A,{0x4B,0x0,0x0}}, {0x212B,{0xC5,0x0,0x0}}, {0x2204,{0x2203,0x338,0x0}},
324 {0x2209,{0x2208,0x338,0x0}}, {0x220C,{0x220B,0x338,0x0}}, {0x2224,{0x2223,0x338,0x0}},
325 {0x2226,{0x2225,0x338,0x0}}, {0x2241,{0x7E,0x338,0x0}}, {0x2244,{0x2243,0x338,0x0}},
326 {0x2247,{0x2245,0x338,0x0}}, {0x2249,{0x2248,0x338,0x0}}, {0x2260,{0x3D,0x338,0x0}},
327 {0x2262,{0x2261,0x338,0x0}}, {0x226D,{0x224D,0x338,0x0}}, {0x226E,{0x3C,0x338,0x0}},
328 {0x226F,{0x3E,0x338,0x0}}, {0x2270,{0x2264,0x338,0x0}}, {0x2271,{0x2265,0x338,0x0}},
329 {0x2274,{0x2272,0x338,0x0}}, {0x2275,{0x2273,0x338,0x0}}, {0x2278,{0x2276,0x338,0x0}},
330 {0x2279,{0x2277,0x338,0x0}}, {0x2280,{0x227A,0x338,0x0}}, {0x2281,{0x227B,0x338,0x0}},
331 {0x2284,{0x2282,0x338,0x0}}, {0x2285,{0x2283,0x338,0x0}}, {0x2288,{0x2286,0x338,0x0}},
332 {0x2289,{0x2287,0x338,0x0}}, {0x22AC,{0x22A2,0x338,0x0}}, {0x22AD,{0x22A8,0x338,0x0}},
333 {0x22AE,{0x22A9,0x338,0x0}}, {0x22AF,{0x22AB,0x338,0x0}}, {0x22E0,{0x227C,0x338,0x0}},
334 {0x22E1,{0x227D,0x338,0x0}}, {0x22E2,{0x2291,0x338,0x0}}, {0x22E3,{0x2292,0x338,0x0}},
335 {0x22EA,{0x22B2,0x338,0x0}}, {0x22EB,{0x22B3,0x338,0x0}}, {0x22EC,{0x22B4,0x338,0x0}},
336 {0x22ED,{0x22B5,0x338,0x0}}, {0x2329,{0x3008,0x0,0x0}}, {0x232A,{0x3009,0x0,0x0}},
337 {0x304C,{0x304B,0x3099,0x0}}, {0x304E,{0x304D,0x3099,0x0}}, {0x3050,{0x304F,0x3099,0x0}},
338 {0x3052,{0x3051,0x3099,0x0}}, {0x3054,{0x3053,0x3099,0x0}}, {0x3056,{0x3055,0x3099,0x0}},
339 {0x3058,{0x3057,0x3099,0x0}}, {0x305A,{0x3059,0x3099,0x0}}, {0x305C,{0x305B,0x3099,0x0}},
340 {0x305E,{0x305D,0x3099,0x0}}, {0x3060,{0x305F,0x3099,0x0}}, {0x3062,{0x3061,0x3099,0x0}},
341 {0x3065,{0x3064,0x3099,0x0}}, {0x3067,{0x3066,0x3099,0x0}}, {0x3069,{0x3068,0x3099,0x0}},
342 {0x3070,{0x306F,0x3099,0x0}}, {0x3071,{0x306F,0x309A,0x0}}, {0x3073,{0x3072,0x3099,0x0}},
343 {0x3074,{0x3072,0x309A,0x0}}, {0x3076,{0x3075,0x3099,0x0}}, {0x3077,{0x3075,0x309A,0x0}},
344 {0x3079,{0x3078,0x3099,0x0}}, {0x307A,{0x3078,0x309A,0x0}}, {0x307C,{0x307B,0x3099,0x0}},
345 {0x307D,{0x307B,0x309A,0x0}}, {0x3094,{0x3046,0x3099,0x0}}, {0x309E,{0x309D,0x3099,0x0}},
346 {0x30AC,{0x30AB,0x3099,0x0}}, {0x30AE,{0x30AD,0x3099,0x0}}, {0x30B0,{0x30AF,0x3099,0x0}},
347 {0x30B2,{0x30B1,0x3099,0x0}}, {0x30B4,{0x30B3,0x3099,0x0}}, {0x30B6,{0x30B5,0x3099,0x0}},
348 {0x30B8,{0x30B7,0x3099,0x0}}, {0x30BA,{0x30B9,0x3099,0x0}}, {0x30BC,{0x30BB,0x3099,0x0}},
349 {0x30BE,{0x30BD,0x3099,0x0}}, {0x30C0,{0x30BF,0x3099,0x0}}, {0x30C2,{0x30C1,0x3099,0x0}},
350 {0x30C5,{0x30C4,0x3099,0x0}}, {0x30C7,{0x30C6,0x3099,0x0}}, {0x30C9,{0x30C8,0x3099,0x0}},
351 {0x30D0,{0x30CF,0x3099,0x0}}, {0x30D1,{0x30CF,0x309A,0x0}}, {0x30D3,{0x30D2,0x3099,0x0}},
352 {0x30D4,{0x30D2,0x309A,0x0}}, {0x30D6,{0x30D5,0x3099,0x0}}, {0x30D7,{0x30D5,0x309A,0x0}},
353 {0x30D9,{0x30D8,0x3099,0x0}}, {0x30DA,{0x30D8,0x309A,0x0}}, {0x30DC,{0x30DB,0x3099,0x0}},
354 {0x30DD,{0x30DB,0x309A,0x0}}, {0x30F4,{0x30A6,0x3099,0x0}}, {0x30F7,{0x30EF,0x3099,0x0}},
355 {0x30F8,{0x30F0,0x3099,0x0}}, {0x30F9,{0x30F1,0x3099,0x0}}, {0x30FA,{0x30F2,0x3099,0x0}},
356 {0x30FE,{0x30FD,0x3099,0x0}}, {0xF900,{0x8C48,0x0,0x0}}, {0xF901,{0x66F4,0x0,0x0}},
357 {0xF902,{0x8ECA,0x0,0x0}}, {0xF903,{0x8CC8,0x0,0x0}}, {0xF904,{0x6ED1,0x0,0x0}},
358 {0xF905,{0x4E32,0x0,0x0}}, {0xF906,{0x53E5,0x0,0x0}}, {0xF907,{0x9F9C,0x0,0x0}},
359 {0xF908,{0x9F9C,0x0,0x0}}, {0xF909,{0x5951,0x0,0x0}}, {0xF90A,{0x91D1,0x0,0x0}},
360 {0xF90B,{0x5587,0x0,0x0}}, {0xF90C,{0x5948,0x0,0x0}}, {0xF90D,{0x61F6,0x0,0x0}},
361 {0xF90E,{0x7669,0x0,0x0}}, {0xF90F,{0x7F85,0x0,0x0}}, {0xF910,{0x863F,0x0,0x0}},
362 {0xF911,{0x87BA,0x0,0x0}}, {0xF912,{0x88F8,0x0,0x0}}, {0xF913,{0x908F,0x0,0x0}},
363 {0xF914,{0x6A02,0x0,0x0}}, {0xF915,{0x6D1B,0x0,0x0}}, {0xF916,{0x70D9,0x0,0x0}},
364 {0xF917,{0x73DE,0x0,0x0}}, {0xF918,{0x843D,0x0,0x0}}, {0xF919,{0x916A,0x0,0x0}},
365 {0xF91A,{0x99F1,0x0,0x0}}, {0xF91B,{0x4E82,0x0,0x0}}, {0xF91C,{0x5375,0x0,0x0}},
366 {0xF91D,{0x6B04,0x0,0x0}}, {0xF91E,{0x721B,0x0,0x0}}, {0xF91F,{0x862D,0x0,0x0}},
367 {0xF920,{0x9E1E,0x0,0x0}}, {0xF921,{0x5D50,0x0,0x0}}, {0xF922,{0x6FEB,0x0,0x0}},
368 {0xF923,{0x85CD,0x0,0x0}}, {0xF924,{0x8964,0x0,0x0}}, {0xF925,{0x62C9,0x0,0x0}},
369 {0xF926,{0x81D8,0x0,0x0}}, {0xF927,{0x881F,0x0,0x0}}, {0xF928,{0x5ECA,0x0,0x0}},
370 {0xF929,{0x6717,0x0,0x0}}, {0xF92A,{0x6D6A,0x0,0x0}}, {0xF92B,{0x72FC,0x0,0x0}},
371 {0xF92C,{0x90CE,0x0,0x0}}, {0xF92D,{0x4F86,0x0,0x0}}, {0xF92E,{0x51B7,0x0,0x0}},
372 {0xF92F,{0x52DE,0x0,0x0}}, {0xF930,{0x64C4,0x0,0x0}}, {0xF931,{0x6AD3,0x0,0x0}},
373 {0xF932,{0x7210,0x0,0x0}}, {0xF933,{0x76E7,0x0,0x0}}, {0xF934,{0x8001,0x0,0x0}},
374 {0xF935,{0x8606,0x0,0x0}}, {0xF936,{0x865C,0x0,0x0}}, {0xF937,{0x8DEF,0x0,0x0}},
375 {0xF938,{0x9732,0x0,0x0}}, {0xF939,{0x9B6F,0x0,0x0}}, {0xF93A,{0x9DFA,0x0,0x0}},
376 {0xF93B,{0x788C,0x0,0x0}}, {0xF93C,{0x797F,0x0,0x0}}, {0xF93D,{0x7DA0,0x0,0x0}},
377 {0xF93E,{0x83C9,0x0,0x0}}, {0xF93F,{0x9304,0x0,0x0}}, {0xF940,{0x9E7F,0x0,0x0}},
378 {0xF941,{0x8AD6,0x0,0x0}}, {0xF942,{0x58DF,0x0,0x0}}, {0xF943,{0x5F04,0x0,0x0}},
379 {0xF944,{0x7C60,0x0,0x0}}, {0xF945,{0x807E,0x0,0x0}}, {0xF946,{0x7262,0x0,0x0}},
380 {0xF947,{0x78CA,0x0,0x0}}, {0xF948,{0x8CC2,0x0,0x0}}, {0xF949,{0x96F7,0x0,0x0}},
381 {0xF94A,{0x58D8,0x0,0x0}}, {0xF94B,{0x5C62,0x0,0x0}}, {0xF94C,{0x6A13,0x0,0x0}},
382 {0xF94D,{0x6DDA,0x0,0x0}}, {0xF94E,{0x6F0F,0x0,0x0}}, {0xF94F,{0x7D2F,0x0,0x0}},
383 {0xF950,{0x7E37,0x0,0x0}}, {0xF951,{0x96FB,0x0,0x0}}, {0xF952,{0x52D2,0x0,0x0}},
384 {0xF953,{0x808B,0x0,0x0}}, {0xF954,{0x51DC,0x0,0x0}}, {0xF955,{0x51CC,0x0,0x0}},
385 {0xF956,{0x7A1C,0x0,0x0}}, {0xF957,{0x7DBE,0x0,0x0}}, {0xF958,{0x83F1,0x0,0x0}},
386 {0xF959,{0x9675,0x0,0x0}}, {0xF95A,{0x8B80,0x0,0x0}}, {0xF95B,{0x62CF,0x0,0x0}},
387 {0xF95C,{0x6A02,0x0,0x0}}, {0xF95D,{0x8AFE,0x0,0x0}}, {0xF95E,{0x4E39,0x0,0x0}},
388 {0xF95F,{0x5BE7,0x0,0x0}}, {0xF960,{0x6012,0x0,0x0}}, {0xF961,{0x7387,0x0,0x0}},
389 {0xF962,{0x7570,0x0,0x0}}, {0xF963,{0x5317,0x0,0x0}}, {0xF964,{0x78FB,0x0,0x0}},
390 {0xF965,{0x4FBF,0x0,0x0}}, {0xF966,{0x5FA9,0x0,0x0}}, {0xF967,{0x4E0D,0x0,0x0}},
391 {0xF968,{0x6CCC,0x0,0x0}}, {0xF969,{0x6578,0x0,0x0}}, {0xF96A,{0x7D22,0x0,0x0}},
392 {0xF96B,{0x53C3,0x0,0x0}}, {0xF96C,{0x585E,0x0,0x0}}, {0xF96D,{0x7701,0x0,0x0}},
393 {0xF96E,{0x8449,0x0,0x0}}, {0xF96F,{0x8AAA,0x0,0x0}}, {0xF970,{0x6BBA,0x0,0x0}},
394 {0xF971,{0x8FB0,0x0,0x0}}, {0xF972,{0x6C88,0x0,0x0}}, {0xF973,{0x62FE,0x0,0x0}},
395 {0xF974,{0x82E5,0x0,0x0}}, {0xF975,{0x63A0,0x0,0x0}}, {0xF976,{0x7565,0x0,0x0}},
396 {0xF977,{0x4EAE,0x0,0x0}}, {0xF978,{0x5169,0x0,0x0}}, {0xF979,{0x51C9,0x0,0x0}},
397 {0xF97A,{0x6881,0x0,0x0}}, {0xF97B,{0x7CE7,0x0,0x0}}, {0xF97C,{0x826F,0x0,0x0}},
398 {0xF97D,{0x8AD2,0x0,0x0}}, {0xF97E,{0x91CF,0x0,0x0}}, {0xF97F,{0x52F5,0x0,0x0}},
399 {0xF980,{0x5442,0x0,0x0}}, {0xF981,{0x5973,0x0,0x0}}, {0xF982,{0x5EEC,0x0,0x0}},
400 {0xF983,{0x65C5,0x0,0x0}}, {0xF984,{0x6FFE,0x0,0x0}}, {0xF985,{0x792A,0x0,0x0}},
401 {0xF986,{0x95AD,0x0,0x0}}, {0xF987,{0x9A6A,0x0,0x0}}, {0xF988,{0x9E97,0x0,0x0}},
402 {0xF989,{0x9ECE,0x0,0x0}}, {0xF98A,{0x529B,0x0,0x0}}, {0xF98B,{0x66C6,0x0,0x0}},
403 {0xF98C,{0x6B77,0x0,0x0}}, {0xF98D,{0x8F62,0x0,0x0}}, {0xF98E,{0x5E74,0x0,0x0}},
404 {0xF98F,{0x6190,0x0,0x0}}, {0xF990,{0x6200,0x0,0x0}}, {0xF991,{0x649A,0x0,0x0}},
405 {0xF992,{0x6F23,0x0,0x0}}, {0xF993,{0x7149,0x0,0x0}}, {0xF994,{0x7489,0x0,0x0}},
406 {0xF995,{0x79CA,0x0,0x0}}, {0xF996,{0x7DF4,0x0,0x0}}, {0xF997,{0x806F,0x0,0x0}},
407 {0xF998,{0x8F26,0x0,0x0}}, {0xF999,{0x84EE,0x0,0x0}}, {0xF99A,{0x9023,0x0,0x0}},
408 {0xF99B,{0x934A,0x0,0x0}}, {0xF99C,{0x5217,0x0,0x0}}, {0xF99D,{0x52A3,0x0,0x0}},
409 {0xF99E,{0x54BD,0x0,0x0}}, {0xF99F,{0x70C8,0x0,0x0}}, {0xF9A0,{0x88C2,0x0,0x0}},
410 {0xF9A1,{0x8AAA,0x0,0x0}}, {0xF9A2,{0x5EC9,0x0,0x0}}, {0xF9A3,{0x5FF5,0x0,0x0}},
411 {0xF9A4,{0x637B,0x0,0x0}}, {0xF9A5,{0x6BAE,0x0,0x0}}, {0xF9A6,{0x7C3E,0x0,0x0}},
412 {0xF9A7,{0x7375,0x0,0x0}}, {0xF9A8,{0x4EE4,0x0,0x0}}, {0xF9A9,{0x56F9,0x0,0x0}},
413 {0xF9AA,{0x5BE7,0x0,0x0}}, {0xF9AB,{0x5DBA,0x0,0x0}}, {0xF9AC,{0x601C,0x0,0x0}},
414 {0xF9AD,{0x73B2,0x0,0x0}}, {0xF9AE,{0x7469,0x0,0x0}}, {0xF9AF,{0x7F9A,0x0,0x0}},
415 {0xF9B0,{0x8046,0x0,0x0}}, {0xF9B1,{0x9234,0x0,0x0}}, {0xF9B2,{0x96F6,0x0,0x0}},
416 {0xF9B3,{0x9748,0x0,0x0}}, {0xF9B4,{0x9818,0x0,0x0}}, {0xF9B5,{0x4F8B,0x0,0x0}},
417 {0xF9B6,{0x79AE,0x0,0x0}}, {0xF9B7,{0x91B4,0x0,0x0}}, {0xF9B8,{0x96B8,0x0,0x0}},
418 {0xF9B9,{0x60E1,0x0,0x0}}, {0xF9BA,{0x4E86,0x0,0x0}}, {0xF9BB,{0x50DA,0x0,0x0}},
419 {0xF9BC,{0x5BEE,0x0,0x0}}, {0xF9BD,{0x5C3F,0x0,0x0}}, {0xF9BE,{0x6599,0x0,0x0}},
420 {0xF9BF,{0x6A02,0x0,0x0}}, {0xF9C0,{0x71CE,0x0,0x0}}, {0xF9C1,{0x7642,0x0,0x0}},
421 {0xF9C2,{0x84FC,0x0,0x0}}, {0xF9C3,{0x907C,0x0,0x0}}, {0xF9C4,{0x9F8D,0x0,0x0}},
422 {0xF9C5,{0x6688,0x0,0x0}}, {0xF9C6,{0x962E,0x0,0x0}}, {0xF9C7,{0x5289,0x0,0x0}},
423 {0xF9C8,{0x677B,0x0,0x0}}, {0xF9C9,{0x67F3,0x0,0x0}}, {0xF9CA,{0x6D41,0x0,0x0}},
424 {0xF9CB,{0x6E9C,0x0,0x0}}, {0xF9CC,{0x7409,0x0,0x0}}, {0xF9CD,{0x7559,0x0,0x0}},
425 {0xF9CE,{0x786B,0x0,0x0}}, {0xF9CF,{0x7D10,0x0,0x0}}, {0xF9D0,{0x985E,0x0,0x0}},
426 {0xF9D1,{0x516D,0x0,0x0}}, {0xF9D2,{0x622E,0x0,0x0}}, {0xF9D3,{0x9678,0x0,0x0}},
427 {0xF9D4,{0x502B,0x0,0x0}}, {0xF9D5,{0x5D19,0x0,0x0}}, {0xF9D6,{0x6DEA,0x0,0x0}},
428 {0xF9D7,{0x8F2A,0x0,0x0}}, {0xF9D8,{0x5F8B,0x0,0x0}}, {0xF9D9,{0x6144,0x0,0x0}},
429 {0xF9DA,{0x6817,0x0,0x0}}, {0xF9DB,{0x7387,0x0,0x0}}, {0xF9DC,{0x9686,0x0,0x0}},
430 {0xF9DD,{0x5229,0x0,0x0}}, {0xF9DE,{0x540F,0x0,0x0}}, {0xF9DF,{0x5C65,0x0,0x0}},
431 {0xF9E0,{0x6613,0x0,0x0}}, {0xF9E1,{0x674E,0x0,0x0}}, {0xF9E2,{0x68A8,0x0,0x0}},
432 {0xF9E3,{0x6CE5,0x0,0x0}}, {0xF9E4,{0x7406,0x0,0x0}}, {0xF9E5,{0x75E2,0x0,0x0}},
433 {0xF9E6,{0x7F79,0x0,0x0}}, {0xF9E7,{0x88CF,0x0,0x0}}, {0xF9E8,{0x88E1,0x0,0x0}},
434 {0xF9E9,{0x91CC,0x0,0x0}}, {0xF9EA,{0x96E2,0x0,0x0}}, {0xF9EB,{0x533F,0x0,0x0}},
435 {0xF9EC,{0x6EBA,0x0,0x0}}, {0xF9ED,{0x541D,0x0,0x0}}, {0xF9EE,{0x71D0,0x0,0x0}},
436 {0xF9EF,{0x7498,0x0,0x0}}, {0xF9F0,{0x85FA,0x0,0x0}}, {0xF9F1,{0x96A3,0x0,0x0}},
437 {0xF9F2,{0x9C57,0x0,0x0}}, {0xF9F3,{0x9E9F,0x0,0x0}}, {0xF9F4,{0x6797,0x0,0x0}},
438 {0xF9F5,{0x6DCB,0x0,0x0}}, {0xF9F6,{0x81E8,0x0,0x0}}, {0xF9F7,{0x7ACB,0x0,0x0}},
439 {0xF9F8,{0x7B20,0x0,0x0}}, {0xF9F9,{0x7C92,0x0,0x0}}, {0xF9FA,{0x72C0,0x0,0x0}},
440 {0xF9FB,{0x7099,0x0,0x0}}, {0xF9FC,{0x8B58,0x0,0x0}}, {0xF9FD,{0x4EC0,0x0,0x0}},
441 {0xF9FE,{0x8336,0x0,0x0}}, {0xF9FF,{0x523A,0x0,0x0}}, {0xFA00,{0x5207,0x0,0x0}},
442 {0xFA01,{0x5EA6,0x0,0x0}}, {0xFA02,{0x62D3,0x0,0x0}}, {0xFA03,{0x7CD6,0x0,0x0}},
443 {0xFA04,{0x5B85,0x0,0x0}}, {0xFA05,{0x6D1E,0x0,0x0}}, {0xFA06,{0x66B4,0x0,0x0}},
444 {0xFA07,{0x8F3B,0x0,0x0}}, {0xFA08,{0x884C,0x0,0x0}}, {0xFA09,{0x964D,0x0,0x0}},
445 {0xFA0A,{0x898B,0x0,0x0}}, {0xFA0B,{0x5ED3,0x0,0x0}}, {0xFA0C,{0x5140,0x0,0x0}},
446 {0xFA0D,{0x55C0,0x0,0x0}}, {0xFA10,{0x585A,0x0,0x0}}, {0xFA12,{0x6674,0x0,0x0}},
447 {0xFA15,{0x51DE,0x0,0x0}}, {0xFA16,{0x732A,0x0,0x0}}, {0xFA17,{0x76CA,0x0,0x0}},
448 {0xFA18,{0x793C,0x0,0x0}}, {0xFA19,{0x795E,0x0,0x0}}, {0xFA1A,{0x7965,0x0,0x0}},
449 {0xFA1B,{0x798F,0x0,0x0}}, {0xFA1C,{0x9756,0x0,0x0}}, {0xFA1D,{0x7CBE,0x0,0x0}},
450 {0xFA1E,{0x7FBD,0x0,0x0}}, {0xFA20,{0x8612,0x0,0x0}}, {0xFA22,{0x8AF8,0x0,0x0}},
451 {0xFA25,{0x9038,0x0,0x0}}, {0xFA26,{0x90FD,0x0,0x0}}, {0xFA2A,{0x98EF,0x0,0x0}},
452 {0xFA2B,{0x98FC,0x0,0x0}}, {0xFA2C,{0x9928,0x0,0x0}}, {0xFA2D,{0x9DB4,0x0,0x0}},
453 {0xFB1F,{0x5F2,0x5B7,0x0}}, {0xFB2A,{0x5E9,0x5C1,0x0}}, {0xFB2B,{0x5E9,0x5C2,0x0}},
454 {0xFB2C,{0x5E9,0x5BC,0x5C1}}, {0xFB2D,{0x5E9,0x5BC,0x5C2}}, {0xFB2E,{0x5D0,0x5B7,0x0}},
455 {0xFB2F,{0x5D0,0x5B8,0x0}}, {0xFB30,{0x5D0,0x5BC,0x0}}, {0xFB31,{0x5D1,0x5BC,0x0}},
456 {0xFB32,{0x5D2,0x5BC,0x0}}, {0xFB33,{0x5D3,0x5BC,0x0}}, {0xFB34,{0x5D4,0x5BC,0x0}},
457 {0xFB35,{0x5D5,0x5BC,0x0}}, {0xFB36,{0x5D6,0x5BC,0x0}}, {0xFB38,{0x5D8,0x5BC,0x0}},
458 {0xFB39,{0x5D9,0x5BC,0x0}}, {0xFB3A,{0x5DA,0x5BC,0x0}}, {0xFB3B,{0x5DB,0x5BC,0x0}},
459 {0xFB3C,{0x5DC,0x5BC,0x0}}, {0xFB3E,{0x5DE,0x5BC,0x0}}, {0xFB40,{0x5E0,0x5BC,0x0}},
460 {0xFB41,{0x5E1,0x5BC,0x0}}, {0xFB43,{0x5E3,0x5BC,0x0}}, {0xFB44,{0x5E4,0x5BC,0x0}},
461 {0xFB46,{0x5E6,0x5BC,0x0}}, {0xFB47,{0x5E7,0x5BC,0x0}}, {0xFB48,{0x5E8,0x5BC,0x0}},
462 {0xFB49,{0x5E9,0x5BC,0x0}}, {0xFB4A,{0x5EA,0x5BC,0x0}}, {0xFB4B,{0x5D5,0x5B9,0x0}},
463 {0xFB4C,{0x5D1,0x5BF,0x0}}, {0xFB4D,{0x5DB,0x5BF,0x0}}, {0xFB4E,{0x5E4,0x5BF,0x0}}
464};
465
466
467/* All upper-case translations are included here */
468
469#define NUM_TOUPPER_INFO 677
470static const unirelate toupper_info[NUM_TOUPPER_INFO] = {
471 {0x61,0x41}, {0x62,0x42}, {0x63,0x43}, {0x64,0x44}, {0x65,0x45},
472 {0x66,0x46}, {0x67,0x47}, {0x68,0x48}, {0x69,0x49}, {0x6A,0x4A},
473 {0x6B,0x4B}, {0x6C,0x4C}, {0x6D,0x4D}, {0x6E,0x4E}, {0x6F,0x4F},
474 {0x70,0x50}, {0x71,0x51}, {0x72,0x52}, {0x73,0x53}, {0x74,0x54},
475 {0x75,0x55}, {0x76,0x56}, {0x77,0x57}, {0x78,0x58}, {0x79,0x59},
476 {0x7A,0x5A}, {0xE0,0xC0}, {0xE1,0xC1}, {0xE2,0xC2}, {0xE3,0xC3},
477 {0xE4,0xC4}, {0xE5,0xC5}, {0xE6,0xC6}, {0xE7,0xC7}, {0xE8,0xC8},
478 {0xE9,0xC9}, {0xEA,0xCA}, {0xEB,0xCB}, {0xEC,0xCC}, {0xED,0xCD},
479 {0xEE,0xCE}, {0xEF,0xCF}, {0xF0,0xD0}, {0xF1,0xD1}, {0xF2,0xD2},
480 {0xF3,0xD3}, {0xF4,0xD4}, {0xF5,0xD5}, {0xF6,0xD6}, {0xF8,0xD8},
481 {0xF9,0xD9}, {0xFA,0xDA}, {0xFB,0xDB}, {0xFC,0xDC}, {0xFD,0xDD},
482 {0xFE,0xDE}, {0xFF,0x178}, {0x101,0x100}, {0x103,0x102}, {0x105,0x104},
483 {0x107,0x106}, {0x109,0x108}, {0x10B,0x10A}, {0x10D,0x10C}, {0x10F,0x10E},
484 {0x111,0x110}, {0x113,0x112}, {0x115,0x114}, {0x117,0x116}, {0x119,0x118},
485 {0x11B,0x11A}, {0x11D,0x11C}, {0x11F,0x11E}, {0x121,0x120}, {0x123,0x122},
486 {0x125,0x124}, {0x127,0x126}, {0x129,0x128}, {0x12B,0x12A}, {0x12D,0x12C},
487 {0x12F,0x12E}, {0x131,0x49}, {0x133,0x132}, {0x135,0x134}, {0x137,0x136},
488 {0x13A,0x139}, {0x13C,0x13B}, {0x13E,0x13D}, {0x140,0x13F}, {0x142,0x141},
489 {0x144,0x143}, {0x146,0x145}, {0x148,0x147}, {0x14B,0x14A}, {0x14D,0x14C},
490 {0x14F,0x14E}, {0x151,0x150}, {0x153,0x152}, {0x155,0x154}, {0x157,0x156},
491 {0x159,0x158}, {0x15B,0x15A}, {0x15D,0x15C}, {0x15F,0x15E}, {0x161,0x160},
492 {0x163,0x162}, {0x165,0x164}, {0x167,0x166}, {0x169,0x168}, {0x16B,0x16A},
493 {0x16D,0x16C}, {0x16F,0x16E}, {0x171,0x170}, {0x173,0x172}, {0x175,0x174},
494 {0x177,0x176}, {0x17A,0x179}, {0x17C,0x17B}, {0x17E,0x17D}, {0x17F,0x53},
495 {0x183,0x182}, {0x185,0x184}, {0x188,0x187}, {0x18C,0x18B}, {0x192,0x191},
496 {0x199,0x198}, {0x1A1,0x1A0}, {0x1A3,0x1A2}, {0x1A5,0x1A4}, {0x1A8,0x1A7},
497 {0x1AD,0x1AC}, {0x1B0,0x1AF}, {0x1B4,0x1B3}, {0x1B6,0x1B5}, {0x1B9,0x1B8},
498 {0x1BD,0x1BC}, {0x1C5,0x1C4}, {0x1C6,0x1C4}, {0x1C8,0x1C7}, {0x1C9,0x1C7},
499 {0x1CB,0x1CA}, {0x1CC,0x1CA}, {0x1CE,0x1CD}, {0x1D0,0x1CF}, {0x1D2,0x1D1},
500 {0x1D4,0x1D3}, {0x1D6,0x1D5}, {0x1D8,0x1D7}, {0x1DA,0x1D9}, {0x1DC,0x1DB},
501 {0x1DD,0x18E}, {0x1DF,0x1DE}, {0x1E1,0x1E0}, {0x1E3,0x1E2}, {0x1E5,0x1E4},
502 {0x1E7,0x1E6}, {0x1E9,0x1E8}, {0x1EB,0x1EA}, {0x1ED,0x1EC}, {0x1EF,0x1EE},
503 {0x1F2,0x1F1}, {0x1F3,0x1F1}, {0x1F5,0x1F4}, {0x1FB,0x1FA}, {0x1FD,0x1FC},
504 {0x1FF,0x1FE}, {0x201,0x200}, {0x203,0x202}, {0x205,0x204}, {0x207,0x206},
505 {0x209,0x208}, {0x20B,0x20A}, {0x20D,0x20C}, {0x20F,0x20E}, {0x211,0x210},
506 {0x213,0x212}, {0x215,0x214}, {0x217,0x216}, {0x253,0x181}, {0x254,0x186},
507 {0x256,0x189}, {0x257,0x18A}, {0x259,0x18F}, {0x25B,0x190}, {0x260,0x193},
508 {0x263,0x194}, {0x268,0x197}, {0x269,0x196}, {0x26F,0x19C}, {0x272,0x19D},
509 {0x275,0x19F}, {0x283,0x1A9}, {0x288,0x1AE}, {0x28A,0x1B1}, {0x28B,0x1B2},
510 {0x292,0x1B7}, {0x3AC,0x386}, {0x3AD,0x388}, {0x3AE,0x389}, {0x3AF,0x38A},
511 {0x3B1,0x391}, {0x3B2,0x392}, {0x3B3,0x393}, {0x3B4,0x394}, {0x3B5,0x395},
512 {0x3B6,0x396}, {0x3B7,0x397}, {0x3B8,0x398}, {0x3B9,0x399}, {0x3BA,0x39A},
513 {0x3BB,0x39B}, {0x3BC,0x39C}, {0x3BD,0x39D}, {0x3BE,0x39E}, {0x3BF,0x39F},
514 {0x3C0,0x3A0}, {0x3C1,0x3A1}, {0x3C2,0x3A3}, {0x3C3,0x3A3}, {0x3C4,0x3A4},
515 {0x3C5,0x3A5}, {0x3C6,0x3A6}, {0x3C7,0x3A7}, {0x3C8,0x3A8}, {0x3C9,0x3A9},
516 {0x3CA,0x3AA}, {0x3CB,0x3AB}, {0x3CC,0x38C}, {0x3CD,0x38E}, {0x3CE,0x38F},
517 {0x3D0,0x392}, {0x3D1,0x398}, {0x3D5,0x3A6}, {0x3D6,0x3A0}, {0x3E3,0x3E2},
518 {0x3E5,0x3E4}, {0x3E7,0x3E6}, {0x3E9,0x3E8}, {0x3EB,0x3EA}, {0x3ED,0x3EC},
519 {0x3EF,0x3EE}, {0x3F0,0x39A}, {0x3F1,0x3A1}, {0x3F2,0x3A3}, {0x430,0x410},
520 {0x431,0x411}, {0x432,0x412}, {0x433,0x413}, {0x434,0x414}, {0x435,0x415},
521 {0x436,0x416}, {0x437,0x417}, {0x438,0x418}, {0x439,0x419}, {0x43A,0x41A},
522 {0x43B,0x41B}, {0x43C,0x41C}, {0x43D,0x41D}, {0x43E,0x41E}, {0x43F,0x41F},
523 {0x440,0x420}, {0x441,0x421}, {0x442,0x422}, {0x443,0x423}, {0x444,0x424},
524 {0x445,0x425}, {0x446,0x426}, {0x447,0x427}, {0x448,0x428}, {0x449,0x429},
525 {0x44A,0x42A}, {0x44B,0x42B}, {0x44C,0x42C}, {0x44D,0x42D}, {0x44E,0x42E},
526 {0x44F,0x42F}, {0x451,0x401}, {0x452,0x402}, {0x453,0x403}, {0x454,0x404},
527 {0x455,0x405}, {0x456,0x406}, {0x457,0x407}, {0x458,0x408}, {0x459,0x409},
528 {0x45A,0x40A}, {0x45B,0x40B}, {0x45C,0x40C}, {0x45E,0x40E}, {0x45F,0x40F},
529 {0x461,0x460}, {0x463,0x462}, {0x465,0x464}, {0x467,0x466}, {0x469,0x468},
530 {0x46B,0x46A}, {0x46D,0x46C}, {0x46F,0x46E}, {0x471,0x470}, {0x473,0x472},
531 {0x475,0x474}, {0x477,0x476}, {0x479,0x478}, {0x47B,0x47A}, {0x47D,0x47C},
532 {0x47F,0x47E}, {0x481,0x480}, {0x491,0x490}, {0x493,0x492}, {0x495,0x494},
533 {0x497,0x496}, {0x499,0x498}, {0x49B,0x49A}, {0x49D,0x49C}, {0x49F,0x49E},
534 {0x4A1,0x4A0}, {0x4A3,0x4A2}, {0x4A5,0x4A4}, {0x4A7,0x4A6}, {0x4A9,0x4A8},
535 {0x4AB,0x4AA}, {0x4AD,0x4AC}, {0x4AF,0x4AE}, {0x4B1,0x4B0}, {0x4B3,0x4B2},
536 {0x4B5,0x4B4}, {0x4B7,0x4B6}, {0x4B9,0x4B8}, {0x4BB,0x4BA}, {0x4BD,0x4BC},
537 {0x4BF,0x4BE}, {0x4C2,0x4C1}, {0x4C4,0x4C3}, {0x4C8,0x4C7}, {0x4CC,0x4CB},
538 {0x4D1,0x4D0}, {0x4D3,0x4D2}, {0x4D5,0x4D4}, {0x4D7,0x4D6}, {0x4D9,0x4D8},
539 {0x4DB,0x4DA}, {0x4DD,0x4DC}, {0x4DF,0x4DE}, {0x4E1,0x4E0}, {0x4E3,0x4E2},
540 {0x4E5,0x4E4}, {0x4E7,0x4E6}, {0x4E9,0x4E8}, {0x4EB,0x4EA}, {0x4EF,0x4EE},
541 {0x4F1,0x4F0}, {0x4F3,0x4F2}, {0x4F5,0x4F4}, {0x4F9,0x4F8}, {0x561,0x531},
542 {0x562,0x532}, {0x563,0x533}, {0x564,0x534}, {0x565,0x535}, {0x566,0x536},
543 {0x567,0x537}, {0x568,0x538}, {0x569,0x539}, {0x56A,0x53A}, {0x56B,0x53B},
544 {0x56C,0x53C}, {0x56D,0x53D}, {0x56E,0x53E}, {0x56F,0x53F}, {0x570,0x540},
545 {0x571,0x541}, {0x572,0x542}, {0x573,0x543}, {0x574,0x544}, {0x575,0x545},
546 {0x576,0x546}, {0x577,0x547}, {0x578,0x548}, {0x579,0x549}, {0x57A,0x54A},
547 {0x57B,0x54B}, {0x57C,0x54C}, {0x57D,0x54D}, {0x57E,0x54E}, {0x57F,0x54F},
548 {0x580,0x550}, {0x581,0x551}, {0x582,0x552}, {0x583,0x553}, {0x584,0x554},
549 {0x585,0x555}, {0x586,0x556}, {0x1E01,0x1E00}, {0x1E03,0x1E02}, {0x1E05,0x1E04},
550 {0x1E07,0x1E06}, {0x1E09,0x1E08}, {0x1E0B,0x1E0A}, {0x1E0D,0x1E0C}, {0x1E0F,0x1E0E},
551 {0x1E11,0x1E10}, {0x1E13,0x1E12}, {0x1E15,0x1E14}, {0x1E17,0x1E16}, {0x1E19,0x1E18},
552 {0x1E1B,0x1E1A}, {0x1E1D,0x1E1C}, {0x1E1F,0x1E1E}, {0x1E21,0x1E20}, {0x1E23,0x1E22},
553 {0x1E25,0x1E24}, {0x1E27,0x1E26}, {0x1E29,0x1E28}, {0x1E2B,0x1E2A}, {0x1E2D,0x1E2C},
554 {0x1E2F,0x1E2E}, {0x1E31,0x1E30}, {0x1E33,0x1E32}, {0x1E35,0x1E34}, {0x1E37,0x1E36},
555 {0x1E39,0x1E38}, {0x1E3B,0x1E3A}, {0x1E3D,0x1E3C}, {0x1E3F,0x1E3E}, {0x1E41,0x1E40},
556 {0x1E43,0x1E42}, {0x1E45,0x1E44}, {0x1E47,0x1E46}, {0x1E49,0x1E48}, {0x1E4B,0x1E4A},
557 {0x1E4D,0x1E4C}, {0x1E4F,0x1E4E}, {0x1E51,0x1E50}, {0x1E53,0x1E52}, {0x1E55,0x1E54},
558 {0x1E57,0x1E56}, {0x1E59,0x1E58}, {0x1E5B,0x1E5A}, {0x1E5D,0x1E5C}, {0x1E5F,0x1E5E},
559 {0x1E61,0x1E60}, {0x1E63,0x1E62}, {0x1E65,0x1E64}, {0x1E67,0x1E66}, {0x1E69,0x1E68},
560 {0x1E6B,0x1E6A}, {0x1E6D,0x1E6C}, {0x1E6F,0x1E6E}, {0x1E71,0x1E70}, {0x1E73,0x1E72},
561 {0x1E75,0x1E74}, {0x1E77,0x1E76}, {0x1E79,0x1E78}, {0x1E7B,0x1E7A}, {0x1E7D,0x1E7C},
562 {0x1E7F,0x1E7E}, {0x1E81,0x1E80}, {0x1E83,0x1E82}, {0x1E85,0x1E84}, {0x1E87,0x1E86},
563 {0x1E89,0x1E88}, {0x1E8B,0x1E8A}, {0x1E8D,0x1E8C}, {0x1E8F,0x1E8E}, {0x1E91,0x1E90},
564 {0x1E93,0x1E92}, {0x1E95,0x1E94}, {0x1E9B,0x1E60}, {0x1EA1,0x1EA0}, {0x1EA3,0x1EA2},
565 {0x1EA5,0x1EA4}, {0x1EA7,0x1EA6}, {0x1EA9,0x1EA8}, {0x1EAB,0x1EAA}, {0x1EAD,0x1EAC},
566 {0x1EAF,0x1EAE}, {0x1EB1,0x1EB0}, {0x1EB3,0x1EB2}, {0x1EB5,0x1EB4}, {0x1EB7,0x1EB6},
567 {0x1EB9,0x1EB8}, {0x1EBB,0x1EBA}, {0x1EBD,0x1EBC}, {0x1EBF,0x1EBE}, {0x1EC1,0x1EC0},
568 {0x1EC3,0x1EC2}, {0x1EC5,0x1EC4}, {0x1EC7,0x1EC6}, {0x1EC9,0x1EC8}, {0x1ECB,0x1ECA},
569 {0x1ECD,0x1ECC}, {0x1ECF,0x1ECE}, {0x1ED1,0x1ED0}, {0x1ED3,0x1ED2}, {0x1ED5,0x1ED4},
570 {0x1ED7,0x1ED6}, {0x1ED9,0x1ED8}, {0x1EDB,0x1EDA}, {0x1EDD,0x1EDC}, {0x1EDF,0x1EDE},
571 {0x1EE1,0x1EE0}, {0x1EE3,0x1EE2}, {0x1EE5,0x1EE4}, {0x1EE7,0x1EE6}, {0x1EE9,0x1EE8},
572 {0x1EEB,0x1EEA}, {0x1EED,0x1EEC}, {0x1EEF,0x1EEE}, {0x1EF1,0x1EF0}, {0x1EF3,0x1EF2},
573 {0x1EF5,0x1EF4}, {0x1EF7,0x1EF6}, {0x1EF9,0x1EF8}, {0x1F00,0x1F08}, {0x1F01,0x1F09},
574 {0x1F02,0x1F0A}, {0x1F03,0x1F0B}, {0x1F04,0x1F0C}, {0x1F05,0x1F0D}, {0x1F06,0x1F0E},
575 {0x1F07,0x1F0F}, {0x1F10,0x1F18}, {0x1F11,0x1F19}, {0x1F12,0x1F1A}, {0x1F13,0x1F1B},
576 {0x1F14,0x1F1C}, {0x1F15,0x1F1D}, {0x1F20,0x1F28}, {0x1F21,0x1F29}, {0x1F22,0x1F2A},
577 {0x1F23,0x1F2B}, {0x1F24,0x1F2C}, {0x1F25,0x1F2D}, {0x1F26,0x1F2E}, {0x1F27,0x1F2F},
578 {0x1F30,0x1F38}, {0x1F31,0x1F39}, {0x1F32,0x1F3A}, {0x1F33,0x1F3B}, {0x1F34,0x1F3C},
579 {0x1F35,0x1F3D}, {0x1F36,0x1F3E}, {0x1F37,0x1F3F}, {0x1F40,0x1F48}, {0x1F41,0x1F49},
580 {0x1F42,0x1F4A}, {0x1F43,0x1F4B}, {0x1F44,0x1F4C}, {0x1F45,0x1F4D}, {0x1F51,0x1F59},
581 {0x1F53,0x1F5B}, {0x1F55,0x1F5D}, {0x1F57,0x1F5F}, {0x1F60,0x1F68}, {0x1F61,0x1F69},
582 {0x1F62,0x1F6A}, {0x1F63,0x1F6B}, {0x1F64,0x1F6C}, {0x1F65,0x1F6D}, {0x1F66,0x1F6E},
583 {0x1F67,0x1F6F}, {0x1F70,0x1FBA}, {0x1F71,0x1FBB}, {0x1F72,0x1FC8}, {0x1F73,0x1FC9},
584 {0x1F74,0x1FCA}, {0x1F75,0x1FCB}, {0x1F76,0x1FDA}, {0x1F77,0x1FDB}, {0x1F78,0x1FF8},
585 {0x1F79,0x1FF9}, {0x1F7A,0x1FEA}, {0x1F7B,0x1FEB}, {0x1F7C,0x1FFA}, {0x1F7D,0x1FFB},
586 {0x1F80,0x1F88}, {0x1F81,0x1F89}, {0x1F82,0x1F8A}, {0x1F83,0x1F8B}, {0x1F84,0x1F8C},
587 {0x1F85,0x1F8D}, {0x1F86,0x1F8E}, {0x1F87,0x1F8F}, {0x1F90,0x1F98}, {0x1F91,0x1F99},
588 {0x1F92,0x1F9A}, {0x1F93,0x1F9B}, {0x1F94,0x1F9C}, {0x1F95,0x1F9D}, {0x1F96,0x1F9E},
589 {0x1F97,0x1F9F}, {0x1FA0,0x1FA8}, {0x1FA1,0x1FA9}, {0x1FA2,0x1FAA}, {0x1FA3,0x1FAB},
590 {0x1FA4,0x1FAC}, {0x1FA5,0x1FAD}, {0x1FA6,0x1FAE}, {0x1FA7,0x1FAF}, {0x1FB0,0x1FB8},
591 {0x1FB1,0x1FB9}, {0x1FB3,0x1FBC}, {0x1FC3,0x1FCC}, {0x1FD0,0x1FD8}, {0x1FD1,0x1FD9},
592 {0x1FE0,0x1FE8}, {0x1FE1,0x1FE9}, {0x1FE5,0x1FEC}, {0x1FF3,0x1FFC}, {0x2170,0x2160},
593 {0x2171,0x2161}, {0x2172,0x2162}, {0x2173,0x2163}, {0x2174,0x2164}, {0x2175,0x2165},
594 {0x2176,0x2166}, {0x2177,0x2167}, {0x2178,0x2168}, {0x2179,0x2169}, {0x217A,0x216A},
595 {0x217B,0x216B}, {0x217C,0x216C}, {0x217D,0x216D}, {0x217E,0x216E}, {0x217F,0x216F},
596 {0x24D0,0x24B6}, {0x24D1,0x24B7}, {0x24D2,0x24B8}, {0x24D3,0x24B9}, {0x24D4,0x24BA},
597 {0x24D5,0x24BB}, {0x24D6,0x24BC}, {0x24D7,0x24BD}, {0x24D8,0x24BE}, {0x24D9,0x24BF},
598 {0x24DA,0x24C0}, {0x24DB,0x24C1}, {0x24DC,0x24C2}, {0x24DD,0x24C3}, {0x24DE,0x24C4},
599 {0x24DF,0x24C5}, {0x24E0,0x24C6}, {0x24E1,0x24C7}, {0x24E2,0x24C8}, {0x24E3,0x24C9},
600 {0x24E4,0x24CA}, {0x24E5,0x24CB}, {0x24E6,0x24CC}, {0x24E7,0x24CD}, {0x24E8,0x24CE},
601 {0x24E9,0x24CF}, {0xFF41,0xFF21}, {0xFF42,0xFF22}, {0xFF43,0xFF23}, {0xFF44,0xFF24},
602 {0xFF45,0xFF25}, {0xFF46,0xFF26}, {0xFF47,0xFF27}, {0xFF48,0xFF28}, {0xFF49,0xFF29},
603 {0xFF4A,0xFF2A}, {0xFF4B,0xFF2B}, {0xFF4C,0xFF2C}, {0xFF4D,0xFF2D}, {0xFF4E,0xFF2E},
604 {0xFF4F,0xFF2F}, {0xFF50,0xFF30}, {0xFF51,0xFF31}, {0xFF52,0xFF32}, {0xFF53,0xFF33},
605 {0xFF54,0xFF34}, {0xFF55,0xFF35}, {0xFF56,0xFF36}, {0xFF57,0xFF37}, {0xFF58,0xFF38},
606 {0xFF59,0xFF39}, {0xFF5A,0xFF3A}
607};
608
609
610
611/* All lower-case translations are included here */
612
613#define NUM_TOLOWER_INFO 705
614static const unirelate tolower_info[NUM_TOLOWER_INFO] = {
615 {0x41,0x61}, {0x42,0x62}, {0x43,0x63}, {0x44,0x64}, {0x45,0x65},
616 {0x46,0x66}, {0x47,0x67}, {0x48,0x68}, {0x49,0x69}, {0x4A,0x6A},
617 {0x4B,0x6B}, {0x4C,0x6C}, {0x4D,0x6D}, {0x4E,0x6E}, {0x4F,0x6F},
618 {0x50,0x70}, {0x51,0x71}, {0x52,0x72}, {0x53,0x73}, {0x54,0x74},
619 {0x55,0x75}, {0x56,0x76}, {0x57,0x77}, {0x58,0x78}, {0x59,0x79},
620 {0x5A,0x7A}, {0xC0,0xE0}, {0xC1,0xE1}, {0xC2,0xE2}, {0xC3,0xE3},
621 {0xC4,0xE4}, {0xC5,0xE5}, {0xC6,0xE6}, {0xC7,0xE7}, {0xC8,0xE8},
622 {0xC9,0xE9}, {0xCA,0xEA}, {0xCB,0xEB}, {0xCC,0xEC}, {0xCD,0xED},
623 {0xCE,0xEE}, {0xCF,0xEF}, {0xD0,0xF0}, {0xD1,0xF1}, {0xD2,0xF2},
624 {0xD3,0xF3}, {0xD4,0xF4}, {0xD5,0xF5}, {0xD6,0xF6}, {0xD8,0xF8},
625 {0xD9,0xF9}, {0xDA,0xFA}, {0xDB,0xFB}, {0xDC,0xFC}, {0xDD,0xFD},
626 {0xDE,0xFE}, {0x100,0x101}, {0x102,0x103}, {0x104,0x105}, {0x106,0x107},
627 {0x108,0x109}, {0x10A,0x10B}, {0x10C,0x10D}, {0x10E,0x10F}, {0x110,0x111},
628 {0x112,0x113}, {0x114,0x115}, {0x116,0x117}, {0x118,0x119}, {0x11A,0x11B},
629 {0x11C,0x11D}, {0x11E,0x11F}, {0x120,0x121}, {0x122,0x123}, {0x124,0x125},
630 {0x126,0x127}, {0x128,0x129}, {0x12A,0x12B}, {0x12C,0x12D}, {0x12E,0x12F},
631 {0x130,0x69}, {0x132,0x133}, {0x134,0x135}, {0x136,0x137}, {0x139,0x13A},
632 {0x13B,0x13C}, {0x13D,0x13E}, {0x13F,0x140}, {0x141,0x142}, {0x143,0x144},
633 {0x145,0x146}, {0x147,0x148}, {0x14A,0x14B}, {0x14C,0x14D}, {0x14E,0x14F},
634 {0x150,0x151}, {0x152,0x153}, {0x154,0x155}, {0x156,0x157}, {0x158,0x159},
635 {0x15A,0x15B}, {0x15C,0x15D}, {0x15E,0x15F}, {0x160,0x161}, {0x162,0x163},
636 {0x164,0x165}, {0x166,0x167}, {0x168,0x169}, {0x16A,0x16B}, {0x16C,0x16D},
637 {0x16E,0x16F}, {0x170,0x171}, {0x172,0x173}, {0x174,0x175}, {0x176,0x177},
638 {0x178,0xFF}, {0x179,0x17A}, {0x17B,0x17C}, {0x17D,0x17E}, {0x181,0x253},
639 {0x182,0x183}, {0x184,0x185}, {0x186,0x254}, {0x187,0x188}, {0x189,0x256},
640 {0x18A,0x257}, {0x18B,0x18C}, {0x18E,0x1DD}, {0x18F,0x259}, {0x190,0x25B},
641 {0x191,0x192}, {0x193,0x260}, {0x194,0x263}, {0x196,0x269}, {0x197,0x268},
642 {0x198,0x199}, {0x19C,0x26F}, {0x19D,0x272}, {0x19F,0x275}, {0x1A0,0x1A1},
643 {0x1A2,0x1A3}, {0x1A4,0x1A5}, {0x1A7,0x1A8}, {0x1A9,0x283}, {0x1AC,0x1AD},
644 {0x1AE,0x288}, {0x1AF,0x1B0}, {0x1B1,0x28A}, {0x1B2,0x28B}, {0x1B3,0x1B4},
645 {0x1B5,0x1B6}, {0x1B7,0x292}, {0x1B8,0x1B9}, {0x1BC,0x1BD}, {0x1C4,0x1C6},
646 {0x1C5,0x1C6}, {0x1C7,0x1C9}, {0x1C8,0x1C9}, {0x1CA,0x1CC}, {0x1CB,0x1CC},
647 {0x1CD,0x1CE}, {0x1CF,0x1D0}, {0x1D1,0x1D2}, {0x1D3,0x1D4}, {0x1D5,0x1D6},
648 {0x1D7,0x1D8}, {0x1D9,0x1DA}, {0x1DB,0x1DC}, {0x1DE,0x1DF}, {0x1E0,0x1E1},
649 {0x1E2,0x1E3}, {0x1E4,0x1E5}, {0x1E6,0x1E7}, {0x1E8,0x1E9}, {0x1EA,0x1EB},
650 {0x1EC,0x1ED}, {0x1EE,0x1EF}, {0x1F1,0x1F3}, {0x1F2,0x1F3}, {0x1F4,0x1F5},
651 {0x1FA,0x1FB}, {0x1FC,0x1FD}, {0x1FE,0x1FF}, {0x200,0x201}, {0x202,0x203},
652 {0x204,0x205}, {0x206,0x207}, {0x208,0x209}, {0x20A,0x20B}, {0x20C,0x20D},
653 {0x20E,0x20F}, {0x210,0x211}, {0x212,0x213}, {0x214,0x215}, {0x216,0x217},
654 {0x386,0x3AC}, {0x388,0x3AD}, {0x389,0x3AE}, {0x38A,0x3AF}, {0x38C,0x3CC},
655 {0x38E,0x3CD}, {0x38F,0x3CE}, {0x391,0x3B1}, {0x392,0x3B2}, {0x393,0x3B3},
656 {0x394,0x3B4}, {0x395,0x3B5}, {0x396,0x3B6}, {0x397,0x3B7}, {0x398,0x3B8},
657 {0x399,0x3B9}, {0x39A,0x3BA}, {0x39B,0x3BB}, {0x39C,0x3BC}, {0x39D,0x3BD},
658 {0x39E,0x3BE}, {0x39F,0x3BF}, {0x3A0,0x3C0}, {0x3A1,0x3C1}, {0x3A3,0x3C3},
659 {0x3A4,0x3C4}, {0x3A5,0x3C5}, {0x3A6,0x3C6}, {0x3A7,0x3C7}, {0x3A8,0x3C8},
660 {0x3A9,0x3C9}, {0x3AA,0x3CA}, {0x3AB,0x3CB}, {0x3E2,0x3E3}, {0x3E4,0x3E5},
661 {0x3E6,0x3E7}, {0x3E8,0x3E9}, {0x3EA,0x3EB}, {0x3EC,0x3ED}, {0x3EE,0x3EF},
662 {0x401,0x451}, {0x402,0x452}, {0x403,0x453}, {0x404,0x454}, {0x405,0x455},
663 {0x406,0x456}, {0x407,0x457}, {0x408,0x458}, {0x409,0x459}, {0x40A,0x45A},
664 {0x40B,0x45B}, {0x40C,0x45C}, {0x40E,0x45E}, {0x40F,0x45F}, {0x410,0x430},
665 {0x411,0x431}, {0x412,0x432}, {0x413,0x433}, {0x414,0x434}, {0x415,0x435},
666 {0x416,0x436}, {0x417,0x437}, {0x418,0x438}, {0x419,0x439}, {0x41A,0x43A},
667 {0x41B,0x43B}, {0x41C,0x43C}, {0x41D,0x43D}, {0x41E,0x43E}, {0x41F,0x43F},
668 {0x420,0x440}, {0x421,0x441}, {0x422,0x442}, {0x423,0x443}, {0x424,0x444},
669 {0x425,0x445}, {0x426,0x446}, {0x427,0x447}, {0x428,0x448}, {0x429,0x449},
670 {0x42A,0x44A}, {0x42B,0x44B}, {0x42C,0x44C}, {0x42D,0x44D}, {0x42E,0x44E},
671 {0x42F,0x44F}, {0x460,0x461}, {0x462,0x463}, {0x464,0x465}, {0x466,0x467},
672 {0x468,0x469}, {0x46A,0x46B}, {0x46C,0x46D}, {0x46E,0x46F}, {0x470,0x471},
673 {0x472,0x473}, {0x474,0x475}, {0x476,0x477}, {0x478,0x479}, {0x47A,0x47B},
674 {0x47C,0x47D}, {0x47E,0x47F}, {0x480,0x481}, {0x490,0x491}, {0x492,0x493},
675 {0x494,0x495}, {0x496,0x497}, {0x498,0x499}, {0x49A,0x49B}, {0x49C,0x49D},
676 {0x49E,0x49F}, {0x4A0,0x4A1}, {0x4A2,0x4A3}, {0x4A4,0x4A5}, {0x4A6,0x4A7},
677 {0x4A8,0x4A9}, {0x4AA,0x4AB}, {0x4AC,0x4AD}, {0x4AE,0x4AF}, {0x4B0,0x4B1},
678 {0x4B2,0x4B3}, {0x4B4,0x4B5}, {0x4B6,0x4B7}, {0x4B8,0x4B9}, {0x4BA,0x4BB},
679 {0x4BC,0x4BD}, {0x4BE,0x4BF}, {0x4C1,0x4C2}, {0x4C3,0x4C4}, {0x4C7,0x4C8},
680 {0x4CB,0x4CC}, {0x4D0,0x4D1}, {0x4D2,0x4D3}, {0x4D4,0x4D5}, {0x4D6,0x4D7},
681 {0x4D8,0x4D9}, {0x4DA,0x4DB}, {0x4DC,0x4DD}, {0x4DE,0x4DF}, {0x4E0,0x4E1},
682 {0x4E2,0x4E3}, {0x4E4,0x4E5}, {0x4E6,0x4E7}, {0x4E8,0x4E9}, {0x4EA,0x4EB},
683 {0x4EE,0x4EF}, {0x4F0,0x4F1}, {0x4F2,0x4F3}, {0x4F4,0x4F5}, {0x4F8,0x4F9},
684 {0x531,0x561}, {0x532,0x562}, {0x533,0x563}, {0x534,0x564}, {0x535,0x565},
685 {0x536,0x566}, {0x537,0x567}, {0x538,0x568}, {0x539,0x569}, {0x53A,0x56A},
686 {0x53B,0x56B}, {0x53C,0x56C}, {0x53D,0x56D}, {0x53E,0x56E}, {0x53F,0x56F},
687 {0x540,0x570}, {0x541,0x571}, {0x542,0x572}, {0x543,0x573}, {0x544,0x574},
688 {0x545,0x575}, {0x546,0x576}, {0x547,0x577}, {0x548,0x578}, {0x549,0x579},
689 {0x54A,0x57A}, {0x54B,0x57B}, {0x54C,0x57C}, {0x54D,0x57D}, {0x54E,0x57E},
690 {0x54F,0x57F}, {0x550,0x580}, {0x551,0x581}, {0x552,0x582}, {0x553,0x583},
691 {0x554,0x584}, {0x555,0x585}, {0x556,0x586}, {0x10A0,0x10D0}, {0x10A1,0x10D1},
692 {0x10A2,0x10D2}, {0x10A3,0x10D3}, {0x10A4,0x10D4}, {0x10A5,0x10D5}, {0x10A6,0x10D6},
693 {0x10A7,0x10D7}, {0x10A8,0x10D8}, {0x10A9,0x10D9}, {0x10AA,0x10DA}, {0x10AB,0x10DB},
694 {0x10AC,0x10DC}, {0x10AD,0x10DD}, {0x10AE,0x10DE}, {0x10AF,0x10DF}, {0x10B0,0x10E0},
695 {0x10B1,0x10E1}, {0x10B2,0x10E2}, {0x10B3,0x10E3}, {0x10B4,0x10E4}, {0x10B5,0x10E5},
696 {0x10B6,0x10E6}, {0x10B7,0x10E7}, {0x10B8,0x10E8}, {0x10B9,0x10E9}, {0x10BA,0x10EA},
697 {0x10BB,0x10EB}, {0x10BC,0x10EC}, {0x10BD,0x10ED}, {0x10BE,0x10EE}, {0x10BF,0x10EF},
698 {0x10C0,0x10F0}, {0x10C1,0x10F1}, {0x10C2,0x10F2}, {0x10C3,0x10F3}, {0x10C4,0x10F4},
699 {0x10C5,0x10F5}, {0x1E00,0x1E01}, {0x1E02,0x1E03}, {0x1E04,0x1E05}, {0x1E06,0x1E07},
700 {0x1E08,0x1E09}, {0x1E0A,0x1E0B}, {0x1E0C,0x1E0D}, {0x1E0E,0x1E0F}, {0x1E10,0x1E11},
701 {0x1E12,0x1E13}, {0x1E14,0x1E15}, {0x1E16,0x1E17}, {0x1E18,0x1E19}, {0x1E1A,0x1E1B},
702 {0x1E1C,0x1E1D}, {0x1E1E,0x1E1F}, {0x1E20,0x1E21}, {0x1E22,0x1E23}, {0x1E24,0x1E25},
703 {0x1E26,0x1E27}, {0x1E28,0x1E29}, {0x1E2A,0x1E2B}, {0x1E2C,0x1E2D}, {0x1E2E,0x1E2F},
704 {0x1E30,0x1E31}, {0x1E32,0x1E33}, {0x1E34,0x1E35}, {0x1E36,0x1E37}, {0x1E38,0x1E39},
705 {0x1E3A,0x1E3B}, {0x1E3C,0x1E3D}, {0x1E3E,0x1E3F}, {0x1E40,0x1E41}, {0x1E42,0x1E43},
706 {0x1E44,0x1E45}, {0x1E46,0x1E47}, {0x1E48,0x1E49}, {0x1E4A,0x1E4B}, {0x1E4C,0x1E4D},
707 {0x1E4E,0x1E4F}, {0x1E50,0x1E51}, {0x1E52,0x1E53}, {0x1E54,0x1E55}, {0x1E56,0x1E57},
708 {0x1E58,0x1E59}, {0x1E5A,0x1E5B}, {0x1E5C,0x1E5D}, {0x1E5E,0x1E5F}, {0x1E60,0x1E61},
709 {0x1E62,0x1E63}, {0x1E64,0x1E65}, {0x1E66,0x1E67}, {0x1E68,0x1E69}, {0x1E6A,0x1E6B},
710 {0x1E6C,0x1E6D}, {0x1E6E,0x1E6F}, {0x1E70,0x1E71}, {0x1E72,0x1E73}, {0x1E74,0x1E75},
711 {0x1E76,0x1E77}, {0x1E78,0x1E79}, {0x1E7A,0x1E7B}, {0x1E7C,0x1E7D}, {0x1E7E,0x1E7F},
712 {0x1E80,0x1E81}, {0x1E82,0x1E83}, {0x1E84,0x1E85}, {0x1E86,0x1E87}, {0x1E88,0x1E89},
713 {0x1E8A,0x1E8B}, {0x1E8C,0x1E8D}, {0x1E8E,0x1E8F}, {0x1E90,0x1E91}, {0x1E92,0x1E93},
714 {0x1E94,0x1E95}, {0x1EA0,0x1EA1}, {0x1EA2,0x1EA3}, {0x1EA4,0x1EA5}, {0x1EA6,0x1EA7},
715 {0x1EA8,0x1EA9}, {0x1EAA,0x1EAB}, {0x1EAC,0x1EAD}, {0x1EAE,0x1EAF}, {0x1EB0,0x1EB1},
716 {0x1EB2,0x1EB3}, {0x1EB4,0x1EB5}, {0x1EB6,0x1EB7}, {0x1EB8,0x1EB9}, {0x1EBA,0x1EBB},
717 {0x1EBC,0x1EBD}, {0x1EBE,0x1EBF}, {0x1EC0,0x1EC1}, {0x1EC2,0x1EC3}, {0x1EC4,0x1EC5},
718 {0x1EC6,0x1EC7}, {0x1EC8,0x1EC9}, {0x1ECA,0x1ECB}, {0x1ECC,0x1ECD}, {0x1ECE,0x1ECF},
719 {0x1ED0,0x1ED1}, {0x1ED2,0x1ED3}, {0x1ED4,0x1ED5}, {0x1ED6,0x1ED7}, {0x1ED8,0x1ED9},
720 {0x1EDA,0x1EDB}, {0x1EDC,0x1EDD}, {0x1EDE,0x1EDF}, {0x1EE0,0x1EE1}, {0x1EE2,0x1EE3},
721 {0x1EE4,0x1EE5}, {0x1EE6,0x1EE7}, {0x1EE8,0x1EE9}, {0x1EEA,0x1EEB}, {0x1EEC,0x1EED},
722 {0x1EEE,0x1EEF}, {0x1EF0,0x1EF1}, {0x1EF2,0x1EF3}, {0x1EF4,0x1EF5}, {0x1EF6,0x1EF7},
723 {0x1EF8,0x1EF9}, {0x1F08,0x1F00}, {0x1F09,0x1F01}, {0x1F0A,0x1F02}, {0x1F0B,0x1F03},
724 {0x1F0C,0x1F04}, {0x1F0D,0x1F05}, {0x1F0E,0x1F06}, {0x1F0F,0x1F07}, {0x1F18,0x1F10},
725 {0x1F19,0x1F11}, {0x1F1A,0x1F12}, {0x1F1B,0x1F13}, {0x1F1C,0x1F14}, {0x1F1D,0x1F15},
726 {0x1F28,0x1F20}, {0x1F29,0x1F21}, {0x1F2A,0x1F22}, {0x1F2B,0x1F23}, {0x1F2C,0x1F24},
727 {0x1F2D,0x1F25}, {0x1F2E,0x1F26}, {0x1F2F,0x1F27}, {0x1F38,0x1F30}, {0x1F39,0x1F31},
728 {0x1F3A,0x1F32}, {0x1F3B,0x1F33}, {0x1F3C,0x1F34}, {0x1F3D,0x1F35}, {0x1F3E,0x1F36},
729 {0x1F3F,0x1F37}, {0x1F48,0x1F40}, {0x1F49,0x1F41}, {0x1F4A,0x1F42}, {0x1F4B,0x1F43},
730 {0x1F4C,0x1F44}, {0x1F4D,0x1F45}, {0x1F59,0x1F51}, {0x1F5B,0x1F53}, {0x1F5D,0x1F55},
731 {0x1F5F,0x1F57}, {0x1F68,0x1F60}, {0x1F69,0x1F61}, {0x1F6A,0x1F62}, {0x1F6B,0x1F63},
732 {0x1F6C,0x1F64}, {0x1F6D,0x1F65}, {0x1F6E,0x1F66}, {0x1F6F,0x1F67}, {0x1F88,0x1F80},
733 {0x1F89,0x1F81}, {0x1F8A,0x1F82}, {0x1F8B,0x1F83}, {0x1F8C,0x1F84}, {0x1F8D,0x1F85},
734 {0x1F8E,0x1F86}, {0x1F8F,0x1F87}, {0x1F98,0x1F90}, {0x1F99,0x1F91}, {0x1F9A,0x1F92},
735 {0x1F9B,0x1F93}, {0x1F9C,0x1F94}, {0x1F9D,0x1F95}, {0x1F9E,0x1F96}, {0x1F9F,0x1F97},
736 {0x1FA8,0x1FA0}, {0x1FA9,0x1FA1}, {0x1FAA,0x1FA2}, {0x1FAB,0x1FA3}, {0x1FAC,0x1FA4},
737 {0x1FAD,0x1FA5}, {0x1FAE,0x1FA6}, {0x1FAF,0x1FA7}, {0x1FB8,0x1FB0}, {0x1FB9,0x1FB1},
738 {0x1FBA,0x1F70}, {0x1FBB,0x1F71}, {0x1FBC,0x1FB3}, {0x1FC8,0x1F72}, {0x1FC9,0x1F73},
739 {0x1FCA,0x1F74}, {0x1FCB,0x1F75}, {0x1FCC,0x1FC3}, {0x1FD8,0x1FD0}, {0x1FD9,0x1FD1},
740 {0x1FDA,0x1F76}, {0x1FDB,0x1F77}, {0x1FE8,0x1FE0}, {0x1FE9,0x1FE1}, {0x1FEA,0x1F7A},
741 {0x1FEB,0x1F7B}, {0x1FEC,0x1FE5}, {0x1FF8,0x1F78}, {0x1FF9,0x1F79}, {0x1FFA,0x1F7C},
742 {0x1FFB,0x1F7D}, {0x1FFC,0x1FF3}, {0x2160,0x2170}, {0x2161,0x2171}, {0x2162,0x2172},
743 {0x2163,0x2173}, {0x2164,0x2174}, {0x2165,0x2175}, {0x2166,0x2176}, {0x2167,0x2177},
744 {0x2168,0x2178}, {0x2169,0x2179}, {0x216A,0x217A}, {0x216B,0x217B}, {0x216C,0x217C},
745 {0x216D,0x217D}, {0x216E,0x217E}, {0x216F,0x217F}, {0x24B6,0x24D0}, {0x24B7,0x24D1},
746 {0x24B8,0x24D2}, {0x24B9,0x24D3}, {0x24BA,0x24D4}, {0x24BB,0x24D5}, {0x24BC,0x24D6},
747 {0x24BD,0x24D7}, {0x24BE,0x24D8}, {0x24BF,0x24D9}, {0x24C0,0x24DA}, {0x24C1,0x24DB},
748 {0x24C2,0x24DC}, {0x24C3,0x24DD}, {0x24C4,0x24DE}, {0x24C5,0x24DF}, {0x24C6,0x24E0},
749 {0x24C7,0x24E1}, {0x24C8,0x24E2}, {0x24C9,0x24E3}, {0x24CA,0x24E4}, {0x24CB,0x24E5},
750 {0x24CC,0x24E6}, {0x24CD,0x24E7}, {0x24CE,0x24E8}, {0x24CF,0x24E9}, {0xFF21,0xFF41},
751 {0xFF22,0xFF42}, {0xFF23,0xFF43}, {0xFF24,0xFF44}, {0xFF25,0xFF45}, {0xFF26,0xFF46},
752 {0xFF27,0xFF47}, {0xFF28,0xFF48}, {0xFF29,0xFF49}, {0xFF2A,0xFF4A}, {0xFF2B,0xFF4B},
753 {0xFF2C,0xFF4C}, {0xFF2D,0xFF4D}, {0xFF2E,0xFF4E}, {0xFF2F,0xFF4F}, {0xFF30,0xFF50},
754 {0xFF31,0xFF51}, {0xFF32,0xFF52}, {0xFF33,0xFF53}, {0xFF34,0xFF54}, {0xFF35,0xFF55},
755 {0xFF36,0xFF56}, {0xFF37,0xFF57}, {0xFF38,0xFF58}, {0xFF39,0xFF59}, {0xFF3A,0xFF5A}
756};
757
758
759
760#define NUM_TOSIMPLIFIED_INFO 2145
761static const unirelate tosimplified_info[NUM_TOSIMPLIFIED_INFO] = {
762 {0x4E48,0x9EBD}, {0x4E82,0x4E71}, {0x4E9E,0x4E9A}, {0x4F47,0x4F2B}, {0x4F59,0x9980},
763 {0x4F86,0x6765}, {0x4F96,0x4ED1}, {0x4FE0,0x4FA0}, {0x5000,0x4F25}, {0x5006,0x4FE9},
764 {0x5009,0x4ED3}, {0x500B,0x4E2A}, {0x5011,0x4EEC}, {0x502B,0x4F26}, {0x5049,0x4F1F},
765 {0x5074,0x4FA7}, {0x5075,0x4FA6}, {0x5096,0x4F27}, {0x5098,0x4F1E}, {0x5099,0x5907},
766 {0x50AD,0x4F63}, {0x50B3,0x4F20}, {0x50B4,0x4F1B}, {0x50B5,0x503A}, {0x50B7,0x4F24},
767 {0x50BE,0x503E}, {0x50C2,0x507B}, {0x50C5,0x4EC5}, {0x50C9,0x4F65}, {0x50D1,0x4FA8},
768 {0x50D5,0x4EC6}, {0x50DE,0x4F2A}, {0x50E5,0x4FA5}, {0x50E8,0x507E}, {0x50F9,0x4EF7},
769 {0x5100,0x4EEA}, {0x5102,0x4FAC}, {0x5104,0x4EBF}, {0x5108,0x4FA9}, {0x5109,0x4FED},
770 {0x5110,0x50A7}, {0x5114,0x4FE6}, {0x5115,0x4FAA}, {0x511F,0x507F}, {0x512A,0x4F18},
771 {0x5132,0x50A8}, {0x5137,0x4FEA}, {0x513A,0x50A9}, {0x513B,0x50A5}, {0x513C,0x4FE8},
772 {0x5152,0x513F}, {0x5169,0x4E24}, {0x51C8,0x51C0}, {0x51CD,0x51BB}, {0x51F1,0x51EF},
773 {0x5244,0x522D}, {0x5247,0x5219}, {0x525B,0x521A}, {0x526E,0x5250}, {0x5274,0x5240},
774 {0x5275,0x521B}, {0x5283,0x5212}, {0x5287,0x5267}, {0x5289,0x5218}, {0x528A,0x523D},
775 {0x528C,0x523F}, {0x528D,0x5251}, {0x5291,0x5242}, {0x52C1,0x52B2}, {0x52D5,0x52A8},
776 {0x52D9,0x52A1}, {0x52DB,0x52CB}, {0x52DD,0x80DC}, {0x52DE,0x52B3}, {0x52E2,0x52BF},
777 {0x52F1,0x52A2}, {0x52F5,0x52B1}, {0x52F8,0x529D}, {0x532D,0x5326}, {0x532F,0x6C47},
778 {0x5331,0x532E}, {0x5340,0x533A}, {0x5354,0x534F}, {0x5399,0x538D}, {0x53A0,0x5395},
779 {0x53AD,0x538C}, {0x53B2,0x5389}, {0x53B4,0x53A3}, {0x53C3,0x53C2}, {0x53E2,0x4E1B},
780 {0x540E,0x5F8C}, {0x54BC,0x5459}, {0x54E1,0x5458}, {0x5504,0x5457}, {0x554F,0x95EE},
781 {0x5553,0x542F}, {0x555E,0x54D1}, {0x559A,0x5524}, {0x55AA,0x4E27}, {0x55AC,0x4E54},
782 {0x55AE,0x5355}, {0x55B2,0x54DF}, {0x55C6,0x545B}, {0x55C7,0x556C}, {0x55CE,0x5417},
783 {0x55DA,0x545C}, {0x55E9,0x5522}, {0x55F6,0x54D4}, {0x5606,0x53F9}, {0x560D,0x55BD},
784 {0x5614,0x5455}, {0x5616,0x5567}, {0x5617,0x5C1D}, {0x561C,0x551B}, {0x5629,0x54D7},
785 {0x562E,0x5520}, {0x562F,0x5578}, {0x5630,0x53FD}, {0x5635,0x54D3}, {0x5638,0x5452},
786 {0x565D,0x549D}, {0x5660,0x54D2}, {0x5665,0x54DD}, {0x5666,0x54D5}, {0x566F,0x55F3},
787 {0x5672,0x54D9}, {0x5674,0x55B7}, {0x5678,0x5428}, {0x5680,0x549B}, {0x5687,0x5413},
788 {0x568C,0x54DC}, {0x5695,0x565C}, {0x5699,0x556E}, {0x56A6,0x5456}, {0x56A8,0x5499},
789 {0x56B3,0x55BE}, {0x56B4,0x4E25}, {0x56B6,0x5624}, {0x56C0,0x556D}, {0x56C1,0x55EB},
790 {0x56C2,0x56A3}, {0x56C5,0x5181}, {0x56C8,0x5453}, {0x56D1,0x5631}, {0x5707,0x56F5},
791 {0x570B,0x56FD}, {0x570D,0x56F4}, {0x5712,0x56ED}, {0x5713,0x5706}, {0x5716,0x56FE},
792 {0x5718,0x56E2}, {0x57E1,0x57AD}, {0x57F7,0x6267}, {0x5805,0x575A}, {0x580A,0x57A9},
793 {0x5816,0x57B4}, {0x581D,0x57DA}, {0x582F,0x5C27}, {0x5831,0x62A5}, {0x5834,0x573A},
794 {0x584A,0x5757}, {0x584B,0x8314}, {0x584F,0x57B2}, {0x5852,0x57D8}, {0x5857,0x6D82},
795 {0x5862,0x575E}, {0x5864,0x57D9}, {0x5875,0x5C18}, {0x5879,0x5811}, {0x588A,0x57AB},
796 {0x589C,0x5760}, {0x58AE,0x5815}, {0x58B3,0x575F}, {0x58BB,0x5899}, {0x58BE,0x57A6},
797 {0x58C7,0x575B}, {0x58D3,0x538B}, {0x58D8,0x5792}, {0x58D9,0x5739}, {0x58DA,0x5786},
798 {0x58DE,0x574F}, {0x58DF,0x5784}, {0x58E0,0x5785}, {0x58E2,0x575C}, {0x58E9,0x575D},
799 {0x58EF,0x58EE}, {0x58FA,0x58F6}, {0x58FD,0x5BFF}, {0x5922,0x68A6}, {0x593E,0x5939},
800 {0x5950,0x5942}, {0x5969,0x5941}, {0x596A,0x593A}, {0x596C,0x5956}, {0x596E,0x594B},
801 {0x599D,0x5986}, {0x5A41,0x5A04}, {0x5A66,0x5987}, {0x5A6D,0x5A05}, {0x5AA7,0x5A32},
802 {0x5ABD,0x5988}, {0x5AD7,0x59AA}, {0x5AF5,0x59A9}, {0x5AFB,0x5A34}, {0x5B00,0x59AB},
803 {0x5B08,0x5A06}, {0x5B0B,0x5A75}, {0x5B0C,0x5A07}, {0x5B19,0x5AF1}, {0x5B21,0x5AD2},
804 {0x5B2A,0x5AD4}, {0x5B30,0x5A74}, {0x5B38,0x5A76}, {0x5B4C,0x5A08}, {0x5B6B,0x5B59},
805 {0x5B78,0x5B66}, {0x5B7F,0x5B6A}, {0x5BE2,0x5BDD}, {0x5BE6,0x5B9E}, {0x5BE7,0x5B81},
806 {0x5BE9,0x5BA1}, {0x5BEB,0x5199}, {0x5BEC,0x5BBD}, {0x5BF5,0x5BA0}, {0x5BF6,0x5B9D},
807 {0x5C07,0x5C06}, {0x5C08,0x4E13}, {0x5C0B,0x5BFB}, {0x5C0D,0x5BF9}, {0x5C0E,0x5BFC},
808 {0x5C37,0x5C34}, {0x5C62,0x5C61}, {0x5C64,0x5C42}, {0x5C68,0x5C66}, {0x5C6C,0x5C5E},
809 {0x5CA1,0x5188}, {0x5CF4,0x5C98}, {0x5CF6,0x5C9B}, {0x5CFD,0x5CE1}, {0x5D0D,0x5D03},
810 {0x5D17,0x5C97}, {0x5D22,0x5CE5}, {0x5D2C,0x5CBD}, {0x5D50,0x5C9A}, {0x5D81,0x5D5D},
811 {0x5D84,0x5D2D}, {0x5D87,0x5C96}, {0x5D97,0x5D02}, {0x5DA0,0x5CE4}, {0x5DA7,0x5CC4},
812 {0x5DB8,0x5D58}, {0x5DBA,0x5CAD}, {0x5DBC,0x5C7F}, {0x5DCB,0x5CBF}, {0x5DD2,0x5CE6},
813 {0x5DD4,0x5DC5}, {0x5DF0,0x5DEF}, {0x5E25,0x5E05}, {0x5E2B,0x5E08}, {0x5E33,0x5E10},
814 {0x5E36,0x5E26}, {0x5E40,0x5E27}, {0x5E43,0x5E0F}, {0x5E57,0x5E3C}, {0x5E58,0x5E3B},
815 {0x5E5F,0x5E1C}, {0x5E63,0x5E01}, {0x5E6B,0x5E2E}, {0x5E6C,0x5E31}, {0x5E79,0x5E72},
816 {0x5E7E,0x51E0}, {0x5EAB,0x5E93}, {0x5EDF,0x5E99}, {0x5EE0,0x5382}, {0x5EE1,0x5E91},
817 {0x5EE2,0x5E9F}, {0x5EE3,0x5E7F}, {0x5EEC,0x5E90}, {0x5EF3,0x5385}, {0x5F33,0x5F2A},
818 {0x5F35,0x5F20}, {0x5F48,0x5F39}, {0x5F4C,0x5F25}, {0x5F4E,0x5F2F}, {0x5F8C,0x540E},
819 {0x5F91,0x5F84}, {0x5F9E,0x4ECE}, {0x5FA0,0x5F95}, {0x5FA9,0x590D}, {0x5FB9,0x5F7B},
820 {0x60B5,0x6005}, {0x60B6,0x95F7}, {0x60E1,0x6076}, {0x60F1,0x607C}, {0x60F2,0x607D},
821 {0x60FB,0x607B}, {0x611B,0x7231}, {0x611C,0x60EC}, {0x6134,0x6006}, {0x6137,0x607A},
822 {0x613E,0x5FFE}, {0x614B,0x6001}, {0x6158,0x60E8}, {0x615A,0x60ED}, {0x615F,0x6078},
823 {0x6163,0x60EF}, {0x6164,0x60AB}, {0x616A,0x6004}, {0x616B,0x6002}, {0x616E,0x8651},
824 {0x6173,0x60AD}, {0x6176,0x5E86}, {0x6182,0x5FE7}, {0x618A,0x60EB}, {0x6190,0x601C},
825 {0x6191,0x51ED}, {0x6192,0x6126}, {0x619A,0x60EE}, {0x61A4,0x6124}, {0x61AB,0x60AF},
826 {0x61AE,0x6003}, {0x61B2,0x5BAA}, {0x61B6,0x5FC6}, {0x61C7,0x6073}, {0x61C9,0x5E94},
827 {0x61CC,0x603F}, {0x61DF,0x603C}, {0x61E3,0x61D1}, {0x61E8,0x6079}, {0x61F2,0x60E9},
828 {0x61F6,0x61D2}, {0x61F7,0x6000}, {0x61F8,0x60AC}, {0x61FA,0x5FCF}, {0x61FC,0x60E7},
829 {0x61FE,0x6151}, {0x6200,0x604B}, {0x6207,0x6206}, {0x6214,0x620B}, {0x6227,0x6217},
830 {0x6229,0x622C}, {0x6230,0x6218}, {0x6232,0x620F}, {0x633E,0x631F}, {0x6368,0x820D},
831 {0x636B,0x626A}, {0x6383,0x626B}, {0x6384,0x62A1}, {0x6399,0x6323}, {0x63C0,0x62E3},
832 {0x63DA,0x626C}, {0x63DB,0x6362}, {0x63EE,0x6325}, {0x640D,0x635F}, {0x6417,0x6363},
833 {0x6436,0x62A2}, {0x6451,0x63B4}, {0x645C,0x63BC}, {0x645F,0x6402}, {0x646F,0x631A},
834 {0x6473,0x62A0}, {0x6476,0x629F}, {0x647B,0x63BA}, {0x6488,0x635E}, {0x6493,0x6320},
835 {0x649F,0x6322}, {0x64A3,0x63B8}, {0x64A5,0x62E8}, {0x64AB,0x629A}, {0x64B2,0x6251},
836 {0x64B3,0x63FF}, {0x64BB,0x631E}, {0x64BE,0x631D}, {0x64BF,0x6361}, {0x64C1,0x62E5},
837 {0x64C4,0x63B3}, {0x64C7,0x62E9}, {0x64CA,0x51FB}, {0x64CB,0x6321}, {0x64D4,0x62C5},
838 {0x64DA,0x636E}, {0x64E0,0x6324}, {0x64EC,0x62DF}, {0x64EF,0x6448}, {0x64F0,0x62E7},
839 {0x64F1,0x6401}, {0x64F2,0x63B7}, {0x64F4,0x6269}, {0x64F7,0x64B7}, {0x64FA,0x6446},
840 {0x64FB,0x64DE}, {0x64FC,0x64B8}, {0x64FE,0x6270}, {0x6504,0x6445}, {0x6506,0x64B5},
841 {0x650F,0x62E2}, {0x6514,0x62E6}, {0x6516,0x6484}, {0x6519,0x6400}, {0x651B,0x64BA},
842 {0x651D,0x6444}, {0x6522,0x6512}, {0x6523,0x631B}, {0x6524,0x644A}, {0x652A,0x6405},
843 {0x652C,0x63FD}, {0x6557,0x8D25}, {0x6575,0x654C}, {0x6578,0x6570}, {0x6582,0x655B},
844 {0x6583,0x6BD9}, {0x6595,0x6593}, {0x65AC,0x65A9}, {0x65B7,0x65AD}, {0x6642,0x65F6},
845 {0x6649,0x664B}, {0x665D,0x663C}, {0x6688,0x6655}, {0x6689,0x6656}, {0x66A2,0x7545},
846 {0x66AB,0x6682}, {0x66C4,0x6654}, {0x66C7,0x6619}, {0x66C9,0x6653}, {0x66D6,0x66A7},
847 {0x66E0,0x65F7}, {0x66EC,0x6652}, {0x66F8,0x4E66}, {0x6703,0x4F1A}, {0x6727,0x80E7},
848 {0x6771,0x4E1C}, {0x6898,0x67A7}, {0x689D,0x6761}, {0x689F,0x67AD}, {0x68C4,0x5F03},
849 {0x68D6,0x67A8}, {0x68D7,0x67A3}, {0x68DF,0x680B}, {0x68E7,0x6808}, {0x68F2,0x6816},
850 {0x690F,0x6860}, {0x694A,0x6768}, {0x6953,0x67AB}, {0x6968,0x6862}, {0x696D,0x4E1A},
851 {0x6975,0x6781}, {0x69AA,0x6769}, {0x69AE,0x8363}, {0x69BF,0x6864}, {0x69CB,0x6784},
852 {0x69CD,0x67AA}, {0x69E7,0x6920}, {0x69F3,0x6868}, {0x6A01,0x6869}, {0x6A02,0x4E50},
853 {0x6A05,0x679E}, {0x6A13,0x697C}, {0x6A19,0x6807}, {0x6A1E,0x67A2}, {0x6A23,0x6837},
854 {0x6A38,0x6734}, {0x6A39,0x6811}, {0x6A3A,0x6866}, {0x6A48,0x6861}, {0x6A4B,0x6865},
855 {0x6A5F,0x673A}, {0x6A62,0x692D}, {0x6A89,0x67FD}, {0x6A94,0x6863}, {0x6A9C,0x6867},
856 {0x6AA2,0x68C0}, {0x6AA3,0x6A2F}, {0x6AB3,0x69DF}, {0x6AB8,0x67E0}, {0x6ABB,0x69DB},
857 {0x6AC3,0x67DC}, {0x6AD3,0x6A79}, {0x6ADA,0x6988}, {0x6ADB,0x6809}, {0x6ADD,0x691F},
858 {0x6ADE,0x6A7C}, {0x6ADF,0x680E}, {0x6AE7,0x69E0}, {0x6AE8,0x680C}, {0x6AEA,0x67A5},
859 {0x6AEC,0x6987}, {0x6AF3,0x680A}, {0x6AF8,0x6989}, {0x6AFB,0x6A31}, {0x6B04,0x680F},
860 {0x6B0A,0x6743}, {0x6B0F,0x6924}, {0x6B12,0x683E}, {0x6B16,0x6984}, {0x6B1E,0x68C2},
861 {0x6B3D,0x94A6}, {0x6B50,0x6B27}, {0x6B5F,0x6B24}, {0x6B61,0x6B22}, {0x6B72,0x5C81},
862 {0x6B77,0x5386}, {0x6B78,0x5F52}, {0x6B98,0x6B8B}, {0x6B9E,0x6B92}, {0x6BA4,0x6B87},
863 {0x6BAB,0x6B9A}, {0x6BAE,0x6B93}, {0x6BAF,0x6BA1}, {0x6BB2,0x6B7C}, {0x6BBA,0x6740},
864 {0x6BBB,0x58F3}, {0x6BC6,0x6BB4}, {0x6BFF,0x6BF5}, {0x6C08,0x6BE1}, {0x6C0C,0x6C07},
865 {0x6C23,0x6C14}, {0x6C2B,0x6C22}, {0x6C2C,0x6C29}, {0x6D79,0x6D43}, {0x6D87,0x6CFE},
866 {0x6DEA,0x6CA6}, {0x6DF5,0x6E0A}, {0x6DF6,0x6D9E}, {0x6DFA,0x6D45}, {0x6E19,0x6DA3},
867 {0x6E26,0x6DA1}, {0x6E2C,0x6D4B}, {0x6E3E,0x6D51}, {0x6E5E,0x6D48}, {0x6E6F,0x6C64},
868 {0x6E96,0x51C6}, {0x6E9D,0x6C9F}, {0x6EC4,0x6CA7}, {0x6EC5,0x706D}, {0x6ECC,0x6DA4},
869 {0x6ECE,0x8365}, {0x6EEC,0x6CAA}, {0x6EEF,0x6EDE}, {0x6EF2,0x6E17}, {0x6EF7,0x5364},
870 {0x6EF8,0x6D52}, {0x6EFF,0x6EE1}, {0x6F01,0x6E14}, {0x6F1A,0x6CA4}, {0x6F22,0x6C49},
871 {0x6F23,0x6D9F}, {0x6F2C,0x6E0D}, {0x6F32,0x6DA8}, {0x6F38,0x6E10}, {0x6F3F,0x6D46},
872 {0x6F41,0x988D}, {0x6F51,0x6CFC}, {0x6F54,0x6D01}, {0x6F59,0x6CA9}, {0x6F5B,0x6F5C},
873 {0x6F64,0x6DA6}, {0x6F6F,0x6D54}, {0x6F70,0x6E83}, {0x6F77,0x6ED7}, {0x6F7F,0x6DA0},
874 {0x6F80,0x6DA9}, {0x6F86,0x6D47}, {0x6F87,0x6D9D}, {0x6F97,0x6DA7}, {0x6FA0,0x6E11},
875 {0x6FA4,0x6CFD}, {0x6FA9,0x6CF6}, {0x6FAE,0x6D4D}, {0x6FB1,0x6DC0}, {0x6FC1,0x6D4A},
876 {0x6FC3,0x6D53}, {0x6FD5,0x6E7F}, {0x6FD8,0x6CDE}, {0x6FDF,0x6D4E}, {0x6FE4,0x6D9B},
877 {0x6FEB,0x6EE5}, {0x6FF0,0x6F4D}, {0x6FF1,0x6EE8}, {0x6FFA,0x6E85}, {0x6FFC,0x6CFA},
878 {0x6FFE,0x6EE4}, {0x7005,0x6EE2}, {0x7006,0x6E0E}, {0x7009,0x6CFB}, {0x700B,0x6E16},
879 {0x700F,0x6D4F}, {0x7015,0x6FD2}, {0x7018,0x6CF8}, {0x701D,0x6CA5}, {0x701F,0x6F47},
880 {0x7020,0x6F46}, {0x7027,0x6CF7}, {0x7028,0x6FD1}, {0x7032,0x6F4B}, {0x703E,0x6F9C},
881 {0x7043,0x6CA3}, {0x7044,0x6EE0}, {0x7051,0x6D12}, {0x7055,0x6F13}, {0x7058,0x6EE9},
882 {0x705D,0x704F}, {0x7063,0x6E7E}, {0x7064,0x6EE6}, {0x7067,0x6EDF}, {0x70CF,0x4E4C},
883 {0x70F4,0x70C3}, {0x7121,0x65E0}, {0x7149,0x70BC}, {0x7152,0x709C}, {0x7162,0x8315},
884 {0x7165,0x7115}, {0x7169,0x70E6}, {0x716C,0x7080}, {0x7192,0x8367}, {0x7197,0x709D},
885 {0x71B1,0x70ED}, {0x71BE,0x70BD}, {0x71C1,0x70E8}, {0x71C8,0x706F}, {0x71D2,0x70E7},
886 {0x71D9,0x70EB}, {0x71DC,0x7116}, {0x71DF,0x8425}, {0x71E6,0x707F}, {0x71ED,0x70DB},
887 {0x71F4,0x70E9}, {0x71FC,0x70EC}, {0x71FE,0x7118}, {0x720D,0x70C1}, {0x7210,0x7089},
888 {0x721B,0x70C2}, {0x722D,0x4E89}, {0x7232,0x4E3A}, {0x723A,0x7237}, {0x723E,0x5C14},
889 {0x7258,0x724D}, {0x727D,0x7275}, {0x7296,0x8366}, {0x72A2,0x728A}, {0x72A7,0x727A},
890 {0x72C0,0x72B6}, {0x72F9,0x72ED}, {0x72FD,0x72C8}, {0x7319,0x72F0}, {0x7336,0x72B9},
891 {0x733B,0x72F2}, {0x7341,0x72B8}, {0x7344,0x72F1}, {0x7345,0x72EE}, {0x7368,0x72EC},
892 {0x736A,0x72EF}, {0x736B,0x7303}, {0x7370,0x72DE}, {0x7372,0x83B7}, {0x7375,0x730E},
893 {0x7377,0x72B7}, {0x7378,0x517D}, {0x737A,0x736D}, {0x737B,0x732E}, {0x737C,0x7315},
894 {0x7380,0x7321}, {0x73FE,0x73B0}, {0x743F,0x73F2}, {0x744B,0x73AE}, {0x7463,0x7410},
895 {0x7469,0x83B9}, {0x746A,0x739B}, {0x7489,0x740F}, {0x74A3,0x7391}, {0x74A6,0x7477},
896 {0x74B0,0x73AF}, {0x74BD,0x73BA}, {0x74CA,0x743C}, {0x74CF,0x73D1}, {0x74D4,0x748E},
897 {0x74DA,0x74D2}, {0x750C,0x74EF}, {0x7523,0x4EA7}, {0x755D,0x4EA9}, {0x7562,0x6BD5},
898 {0x756B,0x753B}, {0x7576,0x5F53}, {0x7587,0x7574}, {0x758A,0x53E0}, {0x75D9,0x75C9},
899 {0x7602,0x75D6}, {0x760B,0x75AF}, {0x760D,0x75A1}, {0x7613,0x75EA}, {0x761E,0x7617},
900 {0x7621,0x75AE}, {0x7627,0x759F}, {0x763B,0x7618}, {0x7642,0x7597}, {0x7646,0x75E8},
901 {0x7647,0x75EB}, {0x7649,0x7605}, {0x7658,0x75A0}, {0x765F,0x762A}, {0x7662,0x75D2},
902 {0x7664,0x7596}, {0x7665,0x75C7}, {0x7667,0x75AC}, {0x7669,0x765E}, {0x766C,0x7663},
903 {0x766D,0x763F}, {0x766E,0x763E}, {0x7670,0x75C8}, {0x7671,0x762B}, {0x7672,0x766B},
904 {0x767C,0x53D1}, {0x769A,0x7691}, {0x76B8,0x76B2}, {0x76BA,0x76B1}, {0x76DE,0x76CF},
905 {0x76E1,0x5C3D}, {0x76E3,0x76D1}, {0x76E4,0x76D8}, {0x76E7,0x5362}, {0x775C,0x7741},
906 {0x775E,0x7750}, {0x7798,0x770D}, {0x779E,0x7792}, {0x77BC,0x7751}, {0x77DA,0x77A9},
907 {0x77EF,0x77EB}, {0x7864,0x7856}, {0x7868,0x7817}, {0x786F,0x781A}, {0x78A9,0x7855},
908 {0x78AD,0x7800}, {0x78B8,0x781C}, {0x78BA,0x786E}, {0x78BC,0x7801}, {0x78DA,0x7816},
909 {0x78E3,0x789C}, {0x78E7,0x789B}, {0x78EF,0x77F6}, {0x78FD,0x7857}, {0x790E,0x7840},
910 {0x7919,0x788D}, {0x7926,0x77FF}, {0x792A,0x783A}, {0x792B,0x783E}, {0x792C,0x77FE},
911 {0x7931,0x783B}, {0x798D,0x7978}, {0x798E,0x796F}, {0x79AA,0x7985}, {0x79AE,0x793C},
912 {0x79B0,0x7962}, {0x79B1,0x7977}, {0x7A2E,0x79CD}, {0x7A31,0x79F0}, {0x7A4C,0x7A23},
913 {0x7A4D,0x79EF}, {0x7A4E,0x9896}, {0x7A61,0x7A51}, {0x7A62,0x79FD}, {0x7A69,0x7A33},
914 {0x7AA9,0x7A9D}, {0x7AAA,0x6D3C}, {0x7AAE,0x7A77}, {0x7AB6,0x7AAD}, {0x7ABA,0x7AA5},
915 {0x7AC4,0x7A9C}, {0x7AC5,0x7A8D}, {0x7AC7,0x7AA6}, {0x7AC8,0x7076}, {0x7ACA,0x7A83},
916 {0x7AEA,0x7AD6}, {0x7AF6,0x7ADE}, {0x7B46,0x7B14}, {0x7B67,0x7B15}, {0x7B8B,0x7B3A},
917 {0x7B8F,0x7B5D}, {0x7BC0,0x8282}, {0x7BC4,0x8303}, {0x7BC9,0x7B51}, {0x7BCB,0x7BA7},
918 {0x7BE4,0x7B03}, {0x7BE9,0x7B5B}, {0x7BF3,0x7B5A}, {0x7C00,0x7BA6}, {0x7C0D,0x7BD3},
919 {0x7C1E,0x7BAA}, {0x7C21,0x7B80}, {0x7C23,0x7BD1}, {0x7C2B,0x7BAB}, {0x7C3D,0x7B7E},
920 {0x7C3E,0x5E18}, {0x7C43,0x7BEE}, {0x7C4C,0x7B79}, {0x7C5C,0x7BA8}, {0x7C5F,0x7C41},
921 {0x7C60,0x7B3C}, {0x7C69,0x7B3E}, {0x7C6A,0x7C16}, {0x7C6C,0x7BF1}, {0x7C6E,0x7BA9},
922 {0x7CDD,0x7CC1}, {0x7CDE,0x7CAA}, {0x7CE7,0x7CAE}, {0x7CF2,0x7C9D}, {0x7CF4,0x7C74},
923 {0x7CF6,0x7C9C}, {0x7CF9,0x7E9F}, {0x7CFE,0x7EA0}, {0x7D00,0x7EAA}, {0x7D02,0x7EA3},
924 {0x7D04,0x7EA6}, {0x7D05,0x7EA2}, {0x7D06,0x7EA1}, {0x7D07,0x7EA5}, {0x7D08,0x7EA8},
925 {0x7D09,0x7EAB}, {0x7D0B,0x7EB9}, {0x7D0D,0x7EB3}, {0x7D10,0x7EBD}, {0x7D13,0x7EBE},
926 {0x7D14,0x7EAF}, {0x7D15,0x7EB0}, {0x7D17,0x7EB1}, {0x7D19,0x7EB8}, {0x7D1A,0x7EA7},
927 {0x7D1B,0x7EB7}, {0x7D1C,0x7EAD}, {0x7D21,0x7EBA}, {0x7D30,0x7EC6}, {0x7D31,0x7EC2},
928 {0x7D32,0x7EC1}, {0x7D33,0x7EC5}, {0x7D39,0x7ECD}, {0x7D3A,0x7EC0}, {0x7D3C,0x7ECB},
929 {0x7D3F,0x7ED0}, {0x7D40,0x7ECC}, {0x7D42,0x7EC8}, {0x7D44,0x7EC4}, {0x7D46,0x7ECA},
930 {0x7D4E,0x7ED7}, {0x7D50,0x7ED3}, {0x7D5D,0x7ED4}, {0x7D5E,0x7EDE}, {0x7D61,0x7EDC},
931 {0x7D62,0x7EDA}, {0x7D66,0x7ED9}, {0x7D68,0x7ED2}, {0x7D71,0x7EDF}, {0x7D72,0x4E1D},
932 {0x7D73,0x7EDB}, {0x7D76,0x7EDD}, {0x7D79,0x7EE2}, {0x7D81,0x7ED1}, {0x7D83,0x7EE1},
933 {0x7D86,0x7EE0}, {0x7D88,0x7EE8}, {0x7D89,0x7EE3}, {0x7D8F,0x7EE5}, {0x7D93,0x7ECF},
934 {0x7D9C,0x7EFC}, {0x7D9E,0x7F0D}, {0x7DA2,0x7EF8}, {0x7DA3,0x7EFB}, {0x7DAB,0x7EBF},
935 {0x7DAC,0x7EF6}, {0x7DAD,0x7EF4}, {0x7DB0,0x7EFE}, {0x7DB1,0x7EB2}, {0x7DB2,0x7F51},
936 {0x7DB3,0x7EF7}, {0x7DB4,0x7F00}, {0x7DB8,0x7EB6}, {0x7DB9,0x7EFA}, {0x7DBA,0x7EEE},
937 {0x7DBB,0x7EFD}, {0x7DBD,0x7EF0}, {0x7DBE,0x7EEB}, {0x7DBF,0x7EF5}, {0x7DC4,0x7EF2},
938 {0x7DC7,0x7F01}, {0x7DCA,0x7D27}, {0x7DCB,0x7EEF}, {0x7DD1,0x7EFF}, {0x7DD2,0x7EEA},
939 {0x7DD4,0x7EF1}, {0x7DD7,0x7F03}, {0x7DD8,0x7F04}, {0x7DD9,0x7F02}, {0x7DDD,0x7F09},
940 {0x7DDE,0x7F0E}, {0x7DE0,0x7F14}, {0x7DE1,0x7F17}, {0x7DE3,0x7F18}, {0x7DE6,0x7F0C},
941 {0x7DE8,0x7F16}, {0x7DE9,0x7F13}, {0x7DEC,0x7F05}, {0x7DEF,0x7EAC}, {0x7DF1,0x7F11},
942 {0x7DF2,0x7F08}, {0x7DF4,0x7EC3}, {0x7DF6,0x7F0F}, {0x7DF9,0x7F07}, {0x7E08,0x8426},
943 {0x7E09,0x7F19}, {0x7E0A,0x7F22}, {0x7E0B,0x7F12}, {0x7E10,0x7EC9}, {0x7E11,0x7F23},
944 {0x7E1B,0x7F1A}, {0x7E1D,0x7F1C}, {0x7E1E,0x7F1F}, {0x7E1F,0x7F1B}, {0x7E23,0x53BF},
945 {0x7E27,0x7EE6}, {0x7E2B,0x7F1D}, {0x7E2D,0x7F21}, {0x7E2E,0x7F29}, {0x7E31,0x7EB5},
946 {0x7E32,0x7F27}, {0x7E35,0x7F26}, {0x7E36,0x7D77}, {0x7E37,0x7F15}, {0x7E39,0x7F25},
947 {0x7E3D,0x603B}, {0x7E3E,0x7EE9}, {0x7E45,0x7F2B}, {0x7E46,0x7F2A}, {0x7E52,0x7F2F},
948 {0x7E54,0x7EC7}, {0x7E55,0x7F2E}, {0x7E5A,0x7F2D}, {0x7E5E,0x7ED5}, {0x7E62,0x7F0B},
949 {0x7E69,0x7EF3}, {0x7E6A,0x7ED8}, {0x7E6D,0x8327}, {0x7E6E,0x7F30}, {0x7E6F,0x7F33},
950 {0x7E70,0x7F32}, {0x7E73,0x7F34}, {0x7E79,0x7ECE}, {0x7E7C,0x7EE7}, {0x7E7D,0x7F24},
951 {0x7E7E,0x7F31}, {0x7E88,0x7F2C}, {0x7E8A,0x7EA9}, {0x7E8C,0x7EED}, {0x7E8F,0x7F20},
952 {0x7E93,0x7F28}, {0x7E96,0x7EA4}, {0x7E98,0x7F35}, {0x7E9C,0x7F06}, {0x7F4C,0x7F42},
953 {0x7F70,0x7F5A}, {0x7F77,0x7F62}, {0x7F85,0x7F57}, {0x7F86,0x7F74}, {0x7F88,0x7F81},
954 {0x7FA5,0x7F9F}, {0x7FA9,0x4E49}, {0x7FD2,0x4E60}, {0x7FF9,0x7FD8}, {0x802C,0x8027},
955 {0x802E,0x8022}, {0x8056,0x5723}, {0x805E,0x95FB}, {0x806F,0x8054}, {0x8070,0x806A},
956 {0x8072,0x58F0}, {0x8073,0x8038}, {0x8075,0x8069}, {0x8076,0x8042}, {0x8077,0x804C},
957 {0x8079,0x804D}, {0x807D,0x542C}, {0x807E,0x804B}, {0x8085,0x8083}, {0x8105,0x80C1},
958 {0x811B,0x80EB}, {0x8139,0x80C0}, {0x814E,0x80BE}, {0x8156,0x80E8}, {0x8161,0x8136},
959 {0x8166,0x8111}, {0x816B,0x80BF}, {0x8178,0x80A0}, {0x819A,0x80A4}, {0x81A0,0x80F6},
960 {0x81A9,0x817B}, {0x81BD,0x80C6}, {0x81BE,0x810D}, {0x81BF,0x8113}, {0x81C9,0x8138},
961 {0x81CD,0x8110}, {0x81CF,0x8191}, {0x81D8,0x814A}, {0x81DA,0x80EA}, {0x81DF,0x810F},
962 {0x81E0,0x8114}, {0x81E8,0x4E34}, {0x81FA,0x53F0}, {0x8207,0x4E0E}, {0x8208,0x5174},
963 {0x8209,0x4E3E}, {0x820A,0x65E7}, {0x8259,0x8231}, {0x8264,0x8223}, {0x8266,0x8230},
964 {0x826B,0x823B}, {0x8271,0x8270}, {0x8277,0x8273}, {0x82BB,0x520D}, {0x82E7,0x82CE},
965 {0x838A,0x5E84}, {0x8396,0x830E}, {0x83A2,0x835A}, {0x83A7,0x82CB}, {0x83EF,0x534E},
966 {0x8407,0x82CC}, {0x840A,0x83B1}, {0x842C,0x4E07}, {0x8435,0x83B4}, {0x8449,0x53F6},
967 {0x8452,0x836D}, {0x8464,0x836E}, {0x8466,0x82C7}, {0x8477,0x8364}, {0x8493,0x83BC},
968 {0x8494,0x83B3}, {0x84BC,0x82CD}, {0x84C0,0x836A}, {0x84CB,0x76D6}, {0x84EE,0x83B2},
969 {0x84EF,0x82C1}, {0x84FD,0x835C}, {0x851E,0x848C}, {0x8523,0x848B}, {0x8526,0x8311},
970 {0x852D,0x836B}, {0x8541,0x8368}, {0x8546,0x8487}, {0x854E,0x835E}, {0x8552,0x836C},
971 {0x8553,0x82B8}, {0x8555,0x83B8}, {0x8558,0x835B}, {0x8562,0x8489}, {0x8569,0x8361},
972 {0x856A,0x829C}, {0x856D,0x8427}, {0x8577,0x84E3}, {0x8588,0x835F}, {0x858A,0x84DF},
973 {0x858C,0x8297}, {0x8594,0x8537}, {0x859F,0x83B6}, {0x85A6,0x8350}, {0x85A9,0x8428},
974 {0x85BA,0x8360}, {0x85CD,0x84DD}, {0x85CE,0x8369}, {0x85DD,0x827A}, {0x85E5,0x836F},
975 {0x85EA,0x85AE}, {0x85F4,0x8574}, {0x85F6,0x82C8}, {0x85F9,0x853C}, {0x85FA,0x853A},
976 {0x8604,0x8572}, {0x8606,0x82A6}, {0x8607,0x82CF}, {0x860B,0x82F9}, {0x861A,0x85D3},
977 {0x861E,0x8539}, {0x8622,0x830F}, {0x862D,0x5170}, {0x863A,0x84E0}, {0x863F,0x841D},
978 {0x8655,0x5904}, {0x865C,0x864F}, {0x865F,0x53F7}, {0x8667,0x4E8F}, {0x86FA,0x86F1},
979 {0x8706,0x86AC}, {0x8755,0x8680}, {0x8766,0x867E}, {0x8778,0x8717}, {0x8784,0x86F3},
980 {0x879E,0x8682}, {0x87A2,0x8424}, {0x87BB,0x877C}, {0x87C4,0x86F0}, {0x87C8,0x8748},
981 {0x87CE,0x87A8}, {0x87E3,0x866E}, {0x87EC,0x8749}, {0x87EF,0x86F2}, {0x87F2,0x866B},
982 {0x87F6,0x86CF}, {0x87FB,0x8681}, {0x8805,0x8747}, {0x8806,0x867F}, {0x8810,0x86F4},
983 {0x8811,0x877E}, {0x881F,0x8721}, {0x8823,0x86CE}, {0x8831,0x86CA}, {0x8836,0x8695},
984 {0x883B,0x86EE}, {0x8846,0x4F17}, {0x8853,0x672F}, {0x885B,0x536B}, {0x885D,0x51B2},
985 {0x8879,0x53EA}, {0x88CA,0x8885}, {0x88CF,0x91CC}, {0x88DC,0x8865}, {0x88DD,0x88C5},
986 {0x8932,0x88E4}, {0x8933,0x88E2}, {0x8938,0x891B}, {0x893B,0x4EB5}, {0x8947,0x88E5},
987 {0x8956,0x8884}, {0x895D,0x88E3}, {0x8960,0x88C6}, {0x8964,0x8934}, {0x896A,0x889C},
988 {0x896F,0x886C}, {0x8972,0x88AD}, {0x898B,0x89C1}, {0x898F,0x89C4}, {0x8993,0x89C5},
989 {0x8996,0x89C6}, {0x8998,0x89C7}, {0x89A1,0x89CB}, {0x89A6,0x89CE}, {0x89AA,0x4EB2},
990 {0x89AC,0x89CA}, {0x89AF,0x89CF}, {0x89B2,0x89D0}, {0x89B7,0x89D1}, {0x89BA,0x89C9},
991 {0x89BD,0x89C8}, {0x89BF,0x89CC}, {0x89C0,0x89C2}, {0x89F4,0x89DE}, {0x89F6,0x89EF},
992 {0x89F8,0x89E6}, {0x8A01,0x8BA0}, {0x8A02,0x8BA2}, {0x8A03,0x8BA3}, {0x8A08,0x8BA1},
993 {0x8A0A,0x8BAF}, {0x8A0C,0x8BA7}, {0x8A0E,0x8BA8}, {0x8A10,0x8BA6}, {0x8A13,0x8BAD},
994 {0x8A15,0x8BAA}, {0x8A16,0x8BAB}, {0x8A18,0x8BB0}, {0x8A1B,0x8BB9}, {0x8A1D,0x8BB6},
995 {0x8A1F,0x8BBC}, {0x8A23,0x8BC0}, {0x8A25,0x8BB7}, {0x8A2A,0x8BBF}, {0x8A2D,0x8BBE},
996 {0x8A31,0x8BB8}, {0x8A34,0x8BC9}, {0x8A36,0x8BC3}, {0x8A3A,0x8BCA}, {0x8A41,0x8BC2},
997 {0x8A46,0x8BCB}, {0x8A4E,0x8BB5}, {0x8A50,0x8BC8}, {0x8A52,0x8BD2}, {0x8A54,0x8BCF},
998 {0x8A55,0x8BC4}, {0x8A58,0x8BCE}, {0x8A5B,0x8BC5}, {0x8A5E,0x8BCD}, {0x8A61,0x8BE9},
999 {0x8A62,0x8BE2}, {0x8A63,0x8BE3}, {0x8A66,0x8BD5}, {0x8A69,0x8BD7}, {0x8A6B,0x8BE7},
1000 {0x8A6C,0x8BDF}, {0x8A6D,0x8BE1}, {0x8A6E,0x8BE0}, {0x8A70,0x8BD8}, {0x8A71,0x8BDD},
1001 {0x8A72,0x8BE5}, {0x8A73,0x8BE6}, {0x8A75,0x8BDC}, {0x8A7C,0x8BD9}, {0x8A7F,0x8BD6},
1002 {0x8A84,0x8BD4}, {0x8A85,0x8BDB}, {0x8A86,0x8BD3}, {0x8A87,0x5938}, {0x8A8D,0x8BA4},
1003 {0x8A91,0x8BF3}, {0x8A92,0x8BF6}, {0x8A95,0x8BDE}, {0x8A98,0x8BF1}, {0x8A9A,0x8BEE},
1004 {0x8A9E,0x8BED}, {0x8AA0,0x8BDA}, {0x8AA1,0x8BEB}, {0x8AA3,0x8BEC}, {0x8AA4,0x8BEF},
1005 {0x8AA5,0x8BF0}, {0x8AA6,0x8BF5}, {0x8AA8,0x8BF2}, {0x8AAC,0x8BF4}, {0x8AB0,0x8C01},
1006 {0x8AB2,0x8BFE}, {0x8AB6,0x8C07}, {0x8AB9,0x8BFD}, {0x8ABC,0x8C0A}, {0x8ABF,0x8C03},
1007 {0x8AC2,0x8C04}, {0x8AC4,0x8C06}, {0x8AC7,0x8C08}, {0x8AC9,0x8BFF}, {0x8ACB,0x8BF7},
1008 {0x8ACD,0x8BE4}, {0x8ACF,0x8BF9}, {0x8AD1,0x8BFC}, {0x8AD2,0x8C05}, {0x8AD6,0x8BBA},
1009 {0x8AD7,0x8C02}, {0x8ADB,0x8C00}, {0x8ADC,0x8C0D}, {0x8ADE,0x8C1D}, {0x8AE2,0x8BE8},
1010 {0x8AE4,0x8C14}, {0x8AE6,0x8C1B}, {0x8AE7,0x8C10}, {0x8AEB,0x8C0F}, {0x8AED,0x8C15},
1011 {0x8AEE,0x8C18}, {0x8AF1,0x8BB3}, {0x8AF3,0x8C19}, {0x8AF6,0x8C0C}, {0x8AF7,0x8BBD},
1012 {0x8AF8,0x8BF8}, {0x8AFA,0x8C1A}, {0x8AFC,0x8C16}, {0x8AFE,0x8BFA}, {0x8B00,0x8C0B},
1013 {0x8B01,0x8C12}, {0x8B02,0x8C13}, {0x8B04,0x8A8A}, {0x8B05,0x8BCC}, {0x8B0A,0x8C0E},
1014 {0x8B0E,0x8C1C}, {0x8B10,0x8C27}, {0x8B14,0x8C11}, {0x8B16,0x8C21}, {0x8B17,0x8C24},
1015 {0x8B19,0x8C26}, {0x8B1A,0x8C25}, {0x8B1B,0x8BB2}, {0x8B1D,0x8C22}, {0x8B21,0x8C23},
1016 {0x8B28,0x8C1F}, {0x8B2B,0x8C2A}, {0x8B2C,0x8C2C}, {0x8B2D,0x8C2B}, {0x8B33,0x8BB4},
1017 {0x8B39,0x8C28}, {0x8B3E,0x8C29}, {0x8B49,0x8BC1}, {0x8B4E,0x8C32}, {0x8B4F,0x8BA5},
1018 {0x8B56,0x8C2E}, {0x8B58,0x8BC6}, {0x8B59,0x8C2F}, {0x8B5A,0x8C2D}, {0x8B5C,0x8C31},
1019 {0x8B6B,0x8C35}, {0x8B6F,0x8BD1}, {0x8B70,0x8BAE}, {0x8B74,0x8C34}, {0x8B77,0x62A4},
1020 {0x8B7D,0x8A89}, {0x8B80,0x8BFB}, {0x8B8A,0x53D8}, {0x8B8E,0x96E0}, {0x8B92,0x8C17},
1021 {0x8B93,0x8BA9}, {0x8B95,0x8C30}, {0x8B96,0x8C36}, {0x8B9C,0x8C20}, {0x8B9E,0x8C33},
1022 {0x8C48,0x5C82}, {0x8C50,0x4E30}, {0x8C9D,0x8D1D}, {0x8C9E,0x8D1E}, {0x8CA0,0x8D1F},
1023 {0x8CA1,0x8D22}, {0x8CA2,0x8D21}, {0x8CA7,0x8D2B}, {0x8CA8,0x8D27}, {0x8CA9,0x8D29},
1024 {0x8CAA,0x8D2A}, {0x8CAB,0x8D2F}, {0x8CAC,0x8D23}, {0x8CAF,0x8D2E}, {0x8CB0,0x8D33},
1025 {0x8CB2,0x8D40}, {0x8CB3,0x8D30}, {0x8CB4,0x8D35}, {0x8CB6,0x8D2C}, {0x8CB7,0x4E70},
1026 {0x8CB8,0x8D37}, {0x8CBA,0x8D36}, {0x8CBB,0x8D39}, {0x8CBC,0x8D34}, {0x8CBD,0x8D3B},
1027 {0x8CBF,0x8D38}, {0x8CC0,0x8D3A}, {0x8CC1,0x8D32}, {0x8CC2,0x8D42}, {0x8CC3,0x8D41},
1028 {0x8CC4,0x8D3F}, {0x8CC5,0x8D45}, {0x8CC7,0x8D44}, {0x8CC8,0x8D3E}, {0x8CCA,0x8D3C},
1029 {0x8CD1,0x8D48}, {0x8CD2,0x8D4A}, {0x8CD3,0x5BBE}, {0x8CD5,0x8D47}, {0x8CDA,0x8D49},
1030 {0x8CDC,0x8D50}, {0x8CDE,0x8D4F}, {0x8CE0,0x8D54}, {0x8CE1,0x8D53}, {0x8CE2,0x8D24},
1031 {0x8CE3,0x5356}, {0x8CE4,0x8D31}, {0x8CE6,0x8D4B}, {0x8CE7,0x8D55}, {0x8CEA,0x8D28},
1032 {0x8CEB,0x8D4D}, {0x8CEC,0x8D26}, {0x8CED,0x8D4C}, {0x8CF4,0x8D56}, {0x8CFA,0x8D5A},
1033 {0x8CFB,0x8D59}, {0x8CFC,0x8D2D}, {0x8CFD,0x8D5B}, {0x8CFE,0x8D5C}, {0x8D04,0x8D3D},
1034 {0x8D05,0x8D58}, {0x8D08,0x8D60}, {0x8D0A,0x8D5E}, {0x8D0B,0x8D5D}, {0x8D0D,0x8D61},
1035 {0x8D0F,0x8D62}, {0x8D10,0x8D46}, {0x8D16,0x8D4E}, {0x8D1B,0x8D63}, {0x8D1C,0x8D43},
1036 {0x8D95,0x8D76}, {0x8D99,0x8D75}, {0x8DA8,0x8D8B}, {0x8DB2,0x8DB1}, {0x8E10,0x8DF5},
1037 {0x8E34,0x8E0A}, {0x8E4C,0x8DC4}, {0x8E55,0x8DF8}, {0x8E63,0x8E52}, {0x8E7A,0x8DF7},
1038 {0x8E89,0x8DB8}, {0x8E8A,0x8E0C}, {0x8E8B,0x8DFB}, {0x8E8D,0x8DC3}, {0x8E91,0x8E2F},
1039 {0x8E92,0x8DDE}, {0x8E93,0x8E2C}, {0x8E9A,0x8DF9}, {0x8EA1,0x8E51}, {0x8EA5,0x8E7F},
1040 {0x8EA6,0x8E9C}, {0x8EAA,0x8E8F}, {0x8EC0,0x8EAF}, {0x8ECA,0x8F66}, {0x8ECB,0x8F67},
1041 {0x8ECC,0x8F68}, {0x8ECD,0x519B}, {0x8ED2,0x8F69}, {0x8ED4,0x8F6B}, {0x8EDB,0x8F6D},
1042 {0x8EDF,0x8F6F}, {0x8EE4,0x8F77}, {0x8EEB,0x8F78}, {0x8EF2,0x8F71}, {0x8EF8,0x8F74},
1043 {0x8EF9,0x8F75}, {0x8EFA,0x8F7A}, {0x8EFB,0x8F72}, {0x8EFC,0x8F76}, {0x8EFE,0x8F7C},
1044 {0x8F03,0x8F83}, {0x8F05,0x8F82}, {0x8F07,0x8F81}, {0x8F09,0x8F7D}, {0x8F0A,0x8F7E},
1045 {0x8F12,0x8F84}, {0x8F14,0x8F85}, {0x8F15,0x8F7B}, {0x8F1B,0x8F86}, {0x8F1C,0x8F8E},
1046 {0x8F1D,0x8F89}, {0x8F1E,0x8F8B}, {0x8F1F,0x8F8D}, {0x8F25,0x8F8A}, {0x8F26,0x8F87},
1047 {0x8F29,0x8F88}, {0x8F2A,0x8F6E}, {0x8F2F,0x8F91}, {0x8F33,0x8F8F}, {0x8F38,0x8F93},
1048 {0x8F3B,0x8F90}, {0x8F3E,0x8F97}, {0x8F3F,0x8206}, {0x8F42,0x6BC2}, {0x8F44,0x8F96},
1049 {0x8F45,0x8F95}, {0x8F46,0x8F98}, {0x8F49,0x8F6C}, {0x8F4D,0x8F99}, {0x8F4E,0x8F7F},
1050 {0x8F54,0x8F9A}, {0x8F5F,0x8F70}, {0x8F61,0x8F94}, {0x8F62,0x8F79}, {0x8F64,0x8F73},
1051 {0x8FA6,0x529E}, {0x8FAD,0x8F9E}, {0x8FAE,0x8FAB}, {0x8FAF,0x8FA9}, {0x8FB2,0x519C},
1052 {0x9015,0x8FF3}, {0x9019,0x8FD9}, {0x9023,0x8FDE}, {0x9032,0x8FDB}, {0x904B,0x8FD0},
1053 {0x904E,0x8FC7}, {0x9054,0x8FBE}, {0x9055,0x8FDD}, {0x905C,0x900A}, {0x905E,0x9012},
1054 {0x9060,0x8FDC}, {0x9069,0x9002}, {0x9072,0x8FDF}, {0x9077,0x8FC1}, {0x9078,0x9009},
1055 {0x907A,0x9057}, {0x907C,0x8FBD}, {0x9081,0x8FC8}, {0x9084,0x8FD8}, {0x9087,0x8FE9},
1056 {0x908A,0x8FB9}, {0x908F,0x903B}, {0x9090,0x9026}, {0x90DF,0x90CF}, {0x90F5,0x90AE},
1057 {0x9106,0x90D3}, {0x9109,0x4E61}, {0x9112,0x90B9}, {0x9114,0x90AC}, {0x9116,0x90E7},
1058 {0x9127,0x9093}, {0x912D,0x90D1}, {0x9130,0x90BB}, {0x9132,0x90F8}, {0x9134,0x90BA},
1059 {0x9136,0x90D0}, {0x913A,0x909D}, {0x9148,0x90E6}, {0x9196,0x915D}, {0x919C,0x4E11},
1060 {0x91AB,0x533B}, {0x91AC,0x9171}, {0x91C0,0x917F}, {0x91C1,0x8845}, {0x91C3,0x917E},
1061 {0x91C5,0x917D}, {0x91CB,0x91CA}, {0x91D2,0x9485}, {0x91D3,0x9486}, {0x91D4,0x9487},
1062 {0x91D5,0x948C}, {0x91D7,0x948A}, {0x91D8,0x9489}, {0x91D9,0x948B}, {0x91DD,0x9488},
1063 {0x91E3,0x9493}, {0x91E4,0x9490}, {0x91E7,0x948F}, {0x91E9,0x9492}, {0x91F5,0x9497},
1064 {0x91F7,0x948D}, {0x91F9,0x9495}, {0x91FA,0x948E}, {0x9200,0x94AF}, {0x9201,0x94AB},
1065 {0x9204,0x94AD}, {0x9208,0x949A}, {0x9209,0x94A0}, {0x920D,0x949D}, {0x920E,0x94A9},
1066 {0x9210,0x94A4}, {0x9211,0x94A3}, {0x9214,0x949E}, {0x9215,0x94AE}, {0x921E,0x94A7},
1067 {0x9223,0x9499}, {0x9225,0x94AC}, {0x9226,0x949B}, {0x9227,0x94AA}, {0x922E,0x94CC},
1068 {0x9230,0x94C8}, {0x9233,0x94B6}, {0x9234,0x94C3}, {0x9237,0x94B4}, {0x9238,0x94B9},
1069 {0x9239,0x94CD}, {0x923A,0x94B0}, {0x923D,0x94B8}, {0x923E,0x94C0}, {0x923F,0x94BF},
1070 {0x9240,0x94BE}, {0x9245,0x949C}, {0x9248,0x94CA}, {0x9249,0x94C9}, {0x924D,0x94CB},
1071 {0x9251,0x94C2}, {0x9255,0x94B7}, {0x9257,0x94B3}, {0x925A,0x94C6}, {0x925B,0x94C5},
1072 {0x925E,0x94BA}, {0x9262,0x94B5}, {0x9266,0x94B2}, {0x926C,0x94BC}, {0x926D,0x94BD},
1073 {0x9278,0x94F0}, {0x927A,0x94D2}, {0x927B,0x94EC}, {0x927F,0x94EA}, {0x9280,0x94F6},
1074 {0x9283,0x94F3}, {0x9285,0x94DC}, {0x9291,0x94E3}, {0x9293,0x94E8}, {0x9296,0x94E2},
1075 {0x9298,0x94ED}, {0x929A,0x94EB}, {0x929C,0x8854}, {0x92A0,0x94D1}, {0x92A3,0x94F7},
1076 {0x92A5,0x94F1}, {0x92A6,0x94DF}, {0x92A8,0x94F5}, {0x92A9,0x94E5}, {0x92AA,0x94D5},
1077 {0x92AB,0x94EF}, {0x92AC,0x94D0}, {0x92B1,0x94DE}, {0x92B7,0x9500}, {0x92B9,0x9508},
1078 {0x92BB,0x9511}, {0x92BC,0x9509}, {0x92C1,0x94DD}, {0x92C3,0x9512}, {0x92C5,0x950C},
1079 {0x92C7,0x94A1}, {0x92CC,0x94E4}, {0x92CF,0x94D7}, {0x92D2,0x950B}, {0x92DD,0x950A},
1080 {0x92DF,0x9513}, {0x92E3,0x94D8}, {0x92E4,0x9504}, {0x92E5,0x9503}, {0x92E6,0x9514},
1081 {0x92E8,0x9507}, {0x92EA,0x94FA}, {0x92ED,0x9510}, {0x92EE,0x94D6}, {0x92EF,0x9506},
1082 {0x92F0,0x9502}, {0x92F1,0x94FD}, {0x92F6,0x950D}, {0x92F8,0x952F}, {0x92FC,0x94A2},
1083 {0x9301,0x951E}, {0x9306,0x9516}, {0x9307,0x952B}, {0x9308,0x9529}, {0x9310,0x9525},
1084 {0x9312,0x9515}, {0x9315,0x951F}, {0x9318,0x9524}, {0x9319,0x9531}, {0x931A,0x94EE},
1085 {0x931B,0x951B}, {0x931F,0x952C}, {0x9320,0x952D}, {0x9322,0x94B1}, {0x9326,0x9526},
1086 {0x9328,0x951A}, {0x932B,0x9521}, {0x932E,0x9522}, {0x932F,0x9519}, {0x9332,0x5F55},
1087 {0x9333,0x9530}, {0x9338,0x94FC}, {0x9340,0x951D}, {0x9341,0x9528}, {0x9343,0x952A},
1088 {0x9346,0x9494}, {0x9347,0x9534}, {0x934B,0x9505}, {0x934D,0x9540}, {0x9354,0x9537},
1089 {0x9358,0x94E1}, {0x935B,0x953B}, {0x9364,0x9538}, {0x9365,0x9532}, {0x9369,0x9518},
1090 {0x936C,0x9539}, {0x9370,0x953E}, {0x9375,0x952E}, {0x9376,0x9536}, {0x937A,0x9517},
1091 {0x937E,0x953A}, {0x9382,0x9541}, {0x9384,0x953F}, {0x9387,0x9545}, {0x938A,0x9551},
1092 {0x9396,0x9501}, {0x9398,0x9549}, {0x93A2,0x94A8}, {0x93A3,0x84E5}, {0x93A6,0x954F},
1093 {0x93A7,0x94E0}, {0x93A9,0x94E9}, {0x93AA,0x953C}, {0x93AC,0x9550}, {0x93AE,0x9547},
1094 {0x93B0,0x9552}, {0x93B3,0x954D}, {0x93B5,0x9553}, {0x93B8,0x954C}, {0x93BF,0x954E},
1095 {0x93C3,0x955E}, {0x93C7,0x955F}, {0x93C8,0x94FE}, {0x93CC,0x9546}, {0x93CD,0x9559},
1096 {0x93D1,0x955D}, {0x93D7,0x94FF}, {0x93D8,0x9535}, {0x93DC,0x9557}, {0x93DD,0x9558},
1097 {0x93DE,0x955B}, {0x93DF,0x94F2}, {0x93E1,0x955C}, {0x93E2,0x9556}, {0x93E4,0x9542},
1098 {0x93E8,0x933E}, {0x93F5,0x94E7}, {0x93F7,0x9564}, {0x93F9,0x956A}, {0x9403,0x94D9},
1099 {0x940B,0x94F4}, {0x9410,0x9563}, {0x9412,0x94F9}, {0x9413,0x9566}, {0x9414,0x9561},
1100 {0x9418,0x949F}, {0x9419,0x956B}, {0x941D,0x9562}, {0x9420,0x9568}, {0x9426,0x950E},
1101 {0x9427,0x950F}, {0x9428,0x9544}, {0x942E,0x9570}, {0x9432,0x956F}, {0x9433,0x956D},
1102 {0x9435,0x94C1}, {0x9438,0x94CE}, {0x943A,0x94DB}, {0x943F,0x9571}, {0x9444,0x94F8},
1103 {0x944A,0x956C}, {0x944C,0x9554}, {0x9452,0x9274}, {0x9454,0x9572}, {0x9460,0x94C4},
1104 {0x9463,0x9573}, {0x9465,0x9565}, {0x946D,0x9567}, {0x9470,0x94A5}, {0x9472,0x9576},
1105 {0x9477,0x954A}, {0x9479,0x9569}, {0x947C,0x9523}, {0x947D,0x94BB}, {0x947E,0x92AE},
1106 {0x947F,0x51FF}, {0x9577,0x957F}, {0x9580,0x95E8}, {0x9582,0x95E9}, {0x9583,0x95EA},
1107 {0x9586,0x95EB}, {0x9589,0x95ED}, {0x958B,0x5F00}, {0x958C,0x95F6}, {0x958E,0x95F3},
1108 {0x958F,0x95F0}, {0x9591,0x95F2}, {0x9593,0x95F4}, {0x9594,0x95F5}, {0x9598,0x95F8},
1109 {0x95A1,0x9602}, {0x95A3,0x9601}, {0x95A5,0x9600}, {0x95A8,0x95FA}, {0x95A9,0x95FD},
1110 {0x95AB,0x9603}, {0x95AC,0x9606}, {0x95AD,0x95FE}, {0x95B2,0x9605}, {0x95B6,0x960A},
1111 {0x95B9,0x9609}, {0x95BB,0x960E}, {0x95BC,0x960F}, {0x95BD,0x960D}, {0x95BE,0x9608},
1112 {0x95BF,0x960C}, {0x95C3,0x9612}, {0x95C8,0x95F1}, {0x95CA,0x9614}, {0x95CB,0x9615},
1113 {0x95CC,0x9611}, {0x95D0,0x9617}, {0x95D4,0x9616}, {0x95D5,0x9619}, {0x95D6,0x95EF},
1114 {0x95DC,0x5173}, {0x95DE,0x961A}, {0x95E1,0x9610}, {0x95E5,0x95FC}, {0x9658,0x9649},
1115 {0x965D,0x9655}, {0x9663,0x9635}, {0x9670,0x9634}, {0x9673,0x9648}, {0x9678,0x9646},
1116 {0x967D,0x9633}, {0x9689,0x9667}, {0x968A,0x961F}, {0x968E,0x9636}, {0x9695,0x9668},
1117 {0x969B,0x9645}, {0x96A8,0x968F}, {0x96AA,0x9669}, {0x96B1,0x9690}, {0x96B4,0x9647},
1118 {0x96B8,0x96B6}, {0x96D6,0x867D}, {0x96D9,0x53CC}, {0x96DB,0x96CF}, {0x96DC,0x6742},
1119 {0x96E2,0x79BB}, {0x96E3,0x96BE}, {0x96F2,0x4E91}, {0x96FB,0x7535}, {0x9727,0x96FE},
1120 {0x973D,0x9701}, {0x9742,0x96F3}, {0x9744,0x972D}, {0x9748,0x7075}, {0x975A,0x9753},
1121 {0x975C,0x9759}, {0x9768,0x9765}, {0x978F,0x5DE9}, {0x97BD,0x9792}, {0x97C3,0x9791},
1122 {0x97C9,0x97AF}, {0x97CB,0x97E6}, {0x97CC,0x97E7}, {0x97D3,0x97E9}, {0x97D9,0x97EA},
1123 {0x97DC,0x97EC}, {0x97DE,0x97EB}, {0x97FF,0x54CD}, {0x9801,0x9875}, {0x9802,0x9876},
1124 {0x9803,0x9877}, {0x9805,0x9879}, {0x9806,0x987A}, {0x9807,0x9878}, {0x9808,0x987B},
1125 {0x980A,0x987C}, {0x980C,0x9882}, {0x980E,0x9880}, {0x980F,0x9883}, {0x9810,0x9884},
1126 {0x9811,0x987D}, {0x9812,0x9881}, {0x9813,0x987F}, {0x9817,0x9887}, {0x9818,0x9886},
1127 {0x981C,0x988C}, {0x9821,0x9889}, {0x9824,0x9890}, {0x9826,0x988F}, {0x982D,0x5934},
1128 {0x9830,0x988A}, {0x9837,0x9894}, {0x9838,0x9888}, {0x983B,0x9891}, {0x983D,0x9893},
1129 {0x9846,0x9897}, {0x984C,0x9898}, {0x984D,0x989D}, {0x984E,0x989A}, {0x9853,0x989B},
1130 {0x9854,0x989C}, {0x9858,0x613F}, {0x9859,0x98A1}, {0x985B,0x98A0}, {0x985E,0x7C7B},
1131 {0x9862,0x989F}, {0x9865,0x98A2}, {0x9867,0x987E}, {0x986B,0x98A4}, {0x986C,0x98A5},
1132 {0x986F,0x663E}, {0x9870,0x98A6}, {0x9871,0x9885}, {0x9873,0x989E}, {0x9874,0x98A7},
1133 {0x98A8,0x98CE}, {0x98AE,0x98D1}, {0x98AF,0x98D2}, {0x98B6,0x98D3}, {0x98BC,0x98D5},
1134 {0x98C4,0x98D8}, {0x98C6,0x98D9}, {0x98C8,0x98DA}, {0x98DB,0x98DE}, {0x98E0,0x9963},
1135 {0x98E9,0x9968}, {0x98EA,0x996A}, {0x98EB,0x996B}, {0x98ED,0x996C}, {0x98EF,0x996D},
1136 {0x98F2,0x996E}, {0x98F4,0x9974}, {0x98FC,0x9972}, {0x98FD,0x9971}, {0x98FE,0x9970},
1137 {0x9903,0x997A}, {0x9905,0x997C}, {0x9909,0x9977}, {0x990A,0x517B}, {0x990C,0x9975},
1138 {0x9911,0x997D}, {0x9912,0x9981}, {0x9913,0x997F}, {0x9918,0x4F59}, {0x991B,0x9984},
1139 {0x991E,0x996F}, {0x9921,0x9985}, {0x9928,0x9986}, {0x9933,0x9967}, {0x9937,0x9987},
1140 {0x993C,0x9969}, {0x993E,0x998F}, {0x993F,0x998A}, {0x9943,0x998D}, {0x9945,0x9992},
1141 {0x9948,0x9990}, {0x9949,0x9991}, {0x994A,0x9993}, {0x994B,0x9988}, {0x994C,0x9994},
1142 {0x9951,0x9965}, {0x9952,0x9976}, {0x9957,0x98E8}, {0x995C,0x990D}, {0x995E,0x998B},
1143 {0x9962,0x9995}, {0x99AC,0x9A6C}, {0x99AD,0x9A6D}, {0x99AE,0x51AF}, {0x99B1,0x9A6E},
1144 {0x99B3,0x9A70}, {0x99B4,0x9A6F}, {0x99C1,0x9A73}, {0x99D0,0x9A7B}, {0x99D1,0x9A7D},
1145 {0x99D2,0x9A79}, {0x99D4,0x9A75}, {0x99D5,0x9A7E}, {0x99D8,0x9A80}, {0x99D9,0x9A78},
1146 {0x99DB,0x9A76}, {0x99DD,0x9A7C}, {0x99DF,0x9A77}, {0x99E1,0x9A82}, {0x99E2,0x9A88},
1147 {0x99ED,0x9A87}, {0x99F1,0x9A86}, {0x99FF,0x9A8F}, {0x9A01,0x9A8B}, {0x9A05,0x9A93},
1148 {0x9A0D,0x9A92}, {0x9A0E,0x9A91}, {0x9A0F,0x9A90}, {0x9A16,0x9A9B}, {0x9A19,0x9A97},
1149 {0x9A2B,0x9A9E}, {0x9A2D,0x9A98}, {0x9A2E,0x9A9D}, {0x9A30,0x817E}, {0x9A36,0x9A7A},
1150 {0x9A37,0x9A9A}, {0x9A38,0x9A9F}, {0x9A3E,0x9AA1}, {0x9A40,0x84E6}, {0x9A41,0x9A9C},
1151 {0x9A42,0x9A96}, {0x9A43,0x9AA0}, {0x9A44,0x9AA2}, {0x9A45,0x9A71}, {0x9A4A,0x9A85},
1152 {0x9A4D,0x9A81}, {0x9A4F,0x9AA3}, {0x9A55,0x9A84}, {0x9A57,0x9A8C}, {0x9A5A,0x60CA},
1153 {0x9A5B,0x9A7F}, {0x9A5F,0x9AA4}, {0x9A62,0x9A74}, {0x9A64,0x9AA7}, {0x9A65,0x9AA5},
1154 {0x9A6A,0x9A8A}, {0x9AAF,0x80AE}, {0x9ACF,0x9AC5}, {0x9AD4,0x4F53}, {0x9AD5,0x9ACC},
1155 {0x9AD6,0x9ACB}, {0x9B06,0x677E}, {0x9B22,0x9B13}, {0x9B25,0x6597}, {0x9B27,0x95F9},
1156 {0x9B29,0x960B}, {0x9B2E,0x9604}, {0x9B31,0x90C1}, {0x9B4E,0x9B49}, {0x9B58,0x9B47},
1157 {0x9B5A,0x9C7C}, {0x9B6F,0x9C81}, {0x9B74,0x9C82}, {0x9B77,0x9C7F}, {0x9B81,0x9C85},
1158 {0x9B83,0x9C86}, {0x9B8E,0x9C87}, {0x9B90,0x9C90}, {0x9B91,0x9C8D}, {0x9B92,0x9C8B},
1159 {0x9B9A,0x9C92}, {0x9B9D,0x9C9E}, {0x9B9E,0x9C95}, {0x9BAA,0x9C94}, {0x9BAB,0x9C9B},
1160 {0x9BAD,0x9C91}, {0x9BAE,0x9C9C}, {0x9BC0,0x9CA7}, {0x9BC1,0x9CA0}, {0x9BC7,0x9CA9},
1161 {0x9BC9,0x9CA4}, {0x9BCA,0x9CA8}, {0x9BD4,0x9CBB}, {0x9BD6,0x9CAD}, {0x9BDB,0x9CB7},
1162 {0x9BDD,0x9CB4}, {0x9BE1,0x9CB1}, {0x9BE2,0x9CB5}, {0x9BE4,0x9CB2}, {0x9BE7,0x9CB3},
1163 {0x9BE8,0x9CB8}, {0x9BEA,0x9CAE}, {0x9BEB,0x9CB0}, {0x9BF0,0x9CB6}, {0x9BF4,0x9CBA},
1164 {0x9BFD,0x9CAB}, {0x9BFF,0x9CCA}, {0x9C08,0x9CBD}, {0x9C09,0x9CC7}, {0x9C0D,0x9CC5},
1165 {0x9C10,0x9CC4}, {0x9C12,0x9CC6}, {0x9C13,0x9CC3}, {0x9C20,0x9CCB}, {0x9C23,0x9CA5},
1166 {0x9C25,0x9CCF}, {0x9C28,0x9CCE}, {0x9C29,0x9CD0}, {0x9C2D,0x9CCD}, {0x9C31,0x9CA2},
1167 {0x9C32,0x9CCC}, {0x9C33,0x9CD3}, {0x9C35,0x9CD8}, {0x9C37,0x9CA6}, {0x9C39,0x9CA3},
1168 {0x9C3B,0x9CD7}, {0x9C3E,0x9CD4}, {0x9C45,0x9CD9}, {0x9C48,0x9CD5}, {0x9C49,0x9CD6},
1169 {0x9C52,0x9CDF}, {0x9C54,0x9CDD}, {0x9C56,0x9CDC}, {0x9C57,0x9CDE}, {0x9C58,0x9C9F},
1170 {0x9C5D,0x9CBC}, {0x9C5F,0x9C8E}, {0x9C67,0x9CE2}, {0x9C6D,0x9C9A}, {0x9C78,0x9C88},
1171 {0x9C7A,0x9CA1}, {0x9CE5,0x9E1F}, {0x9CE9,0x9E20}, {0x9CEC,0x51EB}, {0x9CF3,0x51E4},
1172 {0x9CF4,0x9E23}, {0x9CF6,0x9E22}, {0x9D06,0x9E29}, {0x9D07,0x9E28}, {0x9D09,0x9E26},
1173 {0x9D15,0x9E35}, {0x9D1B,0x9E33}, {0x9D1D,0x9E32}, {0x9D1F,0x9E31}, {0x9D23,0x9E2A},
1174 {0x9D26,0x9E2F}, {0x9D28,0x9E2D}, {0x9D2F,0x9E38}, {0x9D30,0x9E39}, {0x9D3B,0x9E3F},
1175 {0x9D3F,0x9E3D}, {0x9D42,0x9E3A}, {0x9D51,0x9E43}, {0x9D52,0x9E46}, {0x9D53,0x9E41},
1176 {0x9D5C,0x9E48}, {0x9D5D,0x9E45}, {0x9D60,0x9E44}, {0x9D61,0x9E49}, {0x9D6A,0x9E4C},
1177 {0x9D6C,0x9E4F}, {0x9D6F,0x9E4E}, {0x9D72,0x9E4A}, {0x9D87,0x9E2B}, {0x9D89,0x9E51},
1178 {0x9D93,0x9E4B}, {0x9D98,0x9E55}, {0x9D9A,0x9E57}, {0x9DA5,0x9E5B}, {0x9DA9,0x9E5C},
1179 {0x9DAF,0x83BA}, {0x9DB4,0x9E64}, {0x9DBB,0x9E58}, {0x9DBC,0x9E63}, {0x9DC0,0x9E5A},
1180 {0x9DC2,0x9E5E}, {0x9DC4,0x9E21}, {0x9DD3,0x9E67}, {0x9DD7,0x9E25}, {0x9DD9,0x9E37},
1181 {0x9DDA,0x9E68}, {0x9DE5,0x9E36}, {0x9DE6,0x9E6A}, {0x9DEF,0x9E69}, {0x9DF2,0x9E6B},
1182 {0x9DF3,0x9E47}, {0x9DF8,0x9E6C}, {0x9DF9,0x9E70}, {0x9DFA,0x9E6D}, {0x9E0C,0x9E71},
1183 {0x9E15,0x9E2C}, {0x9E1A,0x9E66}, {0x9E1B,0x9E73}, {0x9E1D,0x9E42}, {0x9E1E,0x9E3E},
1184 {0x9E7A,0x9E7E}, {0x9E7C,0x7877}, {0x9E7D,0x76D0}, {0x9E97,0x4E3D}, {0x9EA5,0x9EA6},
1185 {0x9EA9,0x9EB8}, {0x9EBD,0x4E48}, {0x9ECC,0x9EC9}, {0x9EDE,0x70B9}, {0x9EE8,0x515A},
1186 {0x9EF2,0x9EEA}, {0x9EF7,0x9EE9}, {0x9EFD,0x9EFE}, {0x9EFF,0x9F0B}, {0x9F09,0x9F0D},
1187 {0x9F4A,0x9F50}, {0x9F4B,0x658B}, {0x9F4F,0x9F51}, {0x9F52,0x9F7F}, {0x9F54,0x9F80},
1188 {0x9F59,0x9F85}, {0x9F5C,0x9F87}, {0x9F5F,0x9F83}, {0x9F60,0x9F86}, {0x9F61,0x9F84},
1189 {0x9F66,0x9F88}, {0x9F6A,0x9F8A}, {0x9F6C,0x9F89}, {0x9F72,0x9F8B}, {0x9F77,0x9F8C},
1190 {0x9F8D,0x9F99}, {0x9F90,0x5E9E}, {0x9F94,0x9F9A}, {0x9F95,0x9F9B}, {0x9F9C,0x9F9F}
1191};
1192
1193
1194
1195/* the letters correspond to unicode characters which
1196 * have Lu, Ll, Lt, Lm, Lo, Mn, Mc, or Me in their
1197 * GENERAL CATEGORY */
1198
1199#define NUM_LETTER_INFO 277
1200static const unirange letter_info[NUM_LETTER_INFO] = {
1201 {0x41,0x5a}, {0x61,0x7a}, {0xaa,0xaa}, {0xb5,0xb5},
1202 {0xba,0xba}, {0xc0,0xd6}, {0xd8,0xf6}, {0xf8,0x1f5},
1203 {0x1fa,0x217}, {0x250,0x2a8}, {0x2b0,0x2b8}, {0x2bb,0x2c1},
1204 {0x2d0,0x2d1}, {0x2e0,0x2e4}, {0x300,0x345}, {0x360,0x361},
1205 {0x37a,0x37a}, {0x386,0x386}, {0x388,0x38a}, {0x38c,0x38c},
1206 {0x38e,0x3a1}, {0x3a3,0x3ce}, {0x3d0,0x3d6}, {0x3da,0x3da},
1207 {0x3dc,0x3dc}, {0x3de,0x3de}, {0x3e0,0x3e0}, {0x3e2,0x3f3},
1208 {0x401,0x40c}, {0x40e,0x44f}, {0x451,0x45c}, {0x45e,0x481},
1209 {0x483,0x486}, {0x490,0x4c4}, {0x4c7,0x4c8}, {0x4cb,0x4cc},
1210 {0x4d0,0x4eb}, {0x4ee,0x4f5}, {0x4f8,0x4f9}, {0x531,0x556},
1211 {0x559,0x559}, {0x561,0x587}, {0x591,0x5a1}, {0x5a3,0x5b9},
1212 {0x5bb,0x5bd}, {0x5bf,0x5bf}, {0x5c1,0x5c2}, {0x5c4,0x5c4},
1213 {0x5d0,0x5ea}, {0x5f0,0x5f2}, {0x621,0x63a}, {0x640,0x652},
1214 {0x670,0x6b7}, {0x6ba,0x6be}, {0x6c0,0x6ce}, {0x6d0,0x6d3},
1215 {0x6d5,0x6e8}, {0x6ea,0x6ed}, {0x780,0x7b1}, {0x901,0x903}, {0x905,0x939},
1216 {0x93c,0x94d}, {0x951,0x954}, {0x958,0x963}, {0x981,0x983},
1217 {0x985,0x98c}, {0x98f,0x990}, {0x993,0x9a8}, {0x9aa,0x9b0},
1218 {0x9b2,0x9b2}, {0x9b6,0x9b9}, {0x9bc,0x9bc}, {0x9be,0x9c4},
1219 {0x9c7,0x9c8}, {0x9cb,0x9cd}, {0x9d7,0x9d7}, {0x9dc,0x9dd},
1220 {0x9df,0x9e3}, {0x9f0,0x9f1}, {0xa02,0xa02}, {0xa05,0xa0a},
1221 {0xa0f,0xa10}, {0xa13,0xa28}, {0xa2a,0xa30}, {0xa32,0xa33},
1222 {0xa35,0xa36}, {0xa38,0xa39}, {0xa3c,0xa3c}, {0xa3e,0xa42},
1223 {0xa47,0xa48}, {0xa4b,0xa4d}, {0xa59,0xa5c}, {0xa5e,0xa5e},
1224 {0xa70,0xa74}, {0xa81,0xa83}, {0xa85,0xa8b}, {0xa8d,0xa8d},
1225 {0xa8f,0xa91}, {0xa93,0xaa8}, {0xaaa,0xab0}, {0xab2,0xab3},
1226 {0xab5,0xab9}, {0xabc,0xac5}, {0xac7,0xac9}, {0xacb,0xacd},
1227 {0xae0,0xae0}, {0xb01,0xb03}, {0xb05,0xb0c}, {0xb0f,0xb10},
1228 {0xb13,0xb28}, {0xb2a,0xb30}, {0xb32,0xb33}, {0xb36,0xb39},
1229 {0xb3c,0xb43}, {0xb47,0xb48}, {0xb4b,0xb4d}, {0xb56,0xb57},
1230 {0xb5c,0xb5d}, {0xb5f,0xb61}, {0xb82,0xb83}, {0xb85,0xb8a},
1231 {0xb8e,0xb90}, {0xb92,0xb95}, {0xb99,0xb9a}, {0xb9c,0xb9c},
1232 {0xb9e,0xb9f}, {0xba3,0xba4}, {0xba8,0xbaa}, {0xbae,0xbb5},
1233 {0xbb7,0xbb9}, {0xbbe,0xbc2}, {0xbc6,0xbc8}, {0xbca,0xbcd},
1234 {0xbd7,0xbd7}, {0xc01,0xc03}, {0xc05,0xc0c}, {0xc0e,0xc10},
1235 {0xc12,0xc28}, {0xc2a,0xc33}, {0xc35,0xc39}, {0xc3e,0xc44},
1236 {0xc46,0xc48}, {0xc4a,0xc4d}, {0xc55,0xc56}, {0xc60,0xc61},
1237 {0xc82,0xc83}, {0xc85,0xc8c}, {0xc8e,0xc90}, {0xc92,0xca8},
1238 {0xcaa,0xcb3}, {0xcb5,0xcb9}, {0xcbe,0xcc4}, {0xcc6,0xcc8},
1239 {0xcca,0xccd}, {0xcd5,0xcd6}, {0xcde,0xcde}, {0xce0,0xce1},
1240 {0xd02,0xd03}, {0xd05,0xd0c}, {0xd0e,0xd10}, {0xd12,0xd28},
1241 {0xd2a,0xd39}, {0xd3e,0xd43}, {0xd46,0xd48}, {0xd4a,0xd4d},
1242 {0xd57,0xd57}, {0xd60,0xd61}, {0xe01,0xe2e}, {0xe30,0xe3a},
1243 {0xe40,0xe4e}, {0xe81,0xe82}, {0xe84,0xe84}, {0xe87,0xe88},
1244 {0xe8a,0xe8a}, {0xe8d,0xe8d}, {0xe94,0xe97}, {0xe99,0xe9f},
1245 {0xea1,0xea3}, {0xea5,0xea5}, {0xea7,0xea7}, {0xeaa,0xeab},
1246 {0xead,0xeae}, {0xeb0,0xeb9}, {0xebb,0xebd}, {0xec0,0xec4},
1247 {0xec6,0xec6}, {0xec8,0xecd}, {0xedc,0xedd}, {0xf18,0xf19},
1248 {0xf35,0xf35}, {0xf37,0xf37}, {0xf39,0xf39}, {0xf40,0xf47},
1249 {0xf49,0xf69}, {0xf71,0xf84}, {0xf86,0xf87}, {0xf90,0xf95},
1250 {0xf97,0xf97}, {0xf99,0xfad}, {0xfb1,0xfb7}, {0xfb9,0xfb9},
1251 {0x10a0,0x10c5}, {0x10d0,0x10f6}, {0x1100,0x1159}, {0x115f,0x11a2},
1252 {0x11a8,0x11f9}, {0x1820,0x1877}, {0x1880,0x18a9}, {0x1e00,0x1e9b},
1253 {0x1ea0,0x1ef9}, {0x1f00,0x1f15},
1254 {0x1f18,0x1f1d}, {0x1f20,0x1f45}, {0x1f48,0x1f4d}, {0x1f50,0x1f57},
1255 {0x1f59,0x1f59}, {0x1f5b,0x1f5b}, {0x1f5d,0x1f5d}, {0x1f5f,0x1f7d},
1256 {0x1f80,0x1fb4}, {0x1fb6,0x1fbc}, {0x1fbe,0x1fbe}, {0x1fc2,0x1fc4},
1257 {0x1fc6,0x1fcc}, {0x1fd0,0x1fd3}, {0x1fd6,0x1fdb}, {0x1fe0,0x1fec},
1258 {0x1ff2,0x1ff4}, {0x1ff6,0x1ffc}, {0x207f,0x207f}, {0x20d0,0x20e1},
1259 {0x2102,0x2102}, {0x2107,0x2107}, {0x210a,0x2113}, {0x2115,0x2115},
1260 {0x2118,0x211d}, {0x2124,0x2124}, {0x2126,0x2126}, {0x2128,0x2128},
1261 {0x212a,0x2131}, {0x2133,0x2138}, {0x3005,0x3005}, {0x302a,0x302f},
1262 {0x3031,0x3035}, {0x3041,0x3094}, {0x3099,0x309e}, {0x30a1,0x30fa},
1263 {0x30fc,0x30fe}, {0x3105,0x312c}, {0x3131,0x318e}, {0x4e00,0x9fa5},
1264 {0xac00,0xd7a3}, {0xf900,0xfa2d}, {0xfb00,0xfb06}, {0xfb13,0xfb17},
1265 {0xfb1e,0xfb28}, {0xfb2a,0xfb36}, {0xfb38,0xfb3c}, {0xfb3e,0xfb3e},
1266 {0xfb40,0xfb41}, {0xfb43,0xfb44}, {0xfb46,0xfbb1}, {0xfbd3,0xfd3d},
1267 {0xfd50,0xfd8f}, {0xfd92,0xfdc7}, {0xfdf0,0xfdfb}, {0xfe20,0xfe23},
1268 {0xfe70,0xfe72}, {0xfe74,0xfe74}, {0xfe76,0xfefc}, {0xff21,0xff3a},
1269 {0xff41,0xff5a}, {0xff66,0xffbe}, {0xffc2,0xffc7}, {0xffca,0xffcf},
1270 {0xffd2,0xffd7}, {0xffda,0xffdc}
1271};
1272
1273
1274/* the digits correspond to unicode characters which
1275 * have Nd in their GENERAL CATEGORY */
1276
1277#define NUM_DIGIT_INFO 17
1278static const unirange digit_info[NUM_DIGIT_INFO] = {
1279 {0x30,0x39}, {0x660,0x669}, {0x6f0,0x6f9}, {0x966,0x96f},
1280 {0x9e6,0x9ef}, {0xa66,0xa6f}, {0xae6,0xaef}, {0xb66,0xb6f},
1281 {0xbe7,0xbef}, {0xc66,0xc6f}, {0xce6,0xcef}, {0xd66,0xd6f},
1282 {0xe50,0xe59}, {0xed0,0xed9}, {0xf20,0xf29}, {0xff10,0xff19},
1283 {0x1810,0x1819}
1284};
1285
1286
1287/* the spaces correspond to unicode characters which
1288 * have Zs, Zl, or Zp in their GENERAL CATEGORY */
1289
1290#define NUM_SPACE_INFO 5
1291static const unirange space_info[NUM_SPACE_INFO] = {
1292 {0x20,0x20}, {0xa0,0xa0}, {0x2000,0x200b}, {0x2028,0x2029},
1293 {0x3000,0x3000}
1294};
1295
1296
1297
1298/* parse_utf8_char parses the next utf-8 character, placing its
1299 * unicode equivalent in *value. The length of the utf-8 character
1300 * is returned */
1301/* NOTE:!!!! end points to the last valid char, NOT past the end
1302 */
1303int parse_utf8_char(const unsigned char *here,
1304 const unsigned char *end,
1305 unsigned short *value) {
1306 unsigned short c1;
1307 unsigned short c2;
1308 unsigned short c3;
1309
1310 *value = 0; /* will be the value for illegal characters */
1311
1312 if (here <= end) {
1313 c1 = (unsigned short)(*here);
1314
1315 if (c1 <= 0x7f) {
1316 /* found a one-byte character */
1317 *value = c1;
1318 return 1;
1319
1320 } else if (c1 >= 0xc0 && c1 <= 0xdf && here+1 <= end &&
1321 (c2=(unsigned short)(*(here+1))) >= 0x80) {
1322 /* found a two-byte character */
1323 *value = ((c1 & 0x1f) << 6) + (c2 & 0x3f);
1324 return 2;
1325
1326 } else if (c1 >= 0xe0 && c1 <= 0xef && here+2 <= end &&
1327 (c2=(unsigned int)(*(here+1))) >= 0x80 &&
1328 (c3=(unsigned int)(*(here+2))) >= 0x80) {
1329 /* found a three-byte character */
1330 *value = ((c1 & 0xf) << 12) + ((c2 & 0x3f) << 6) +
1331 (c3 & 0x3f);
1332 return 3;
1333
1334 } else {
1335 /* error in encoding, return the length as 1 */
1336 return 1;
1337 }
1338 }
1339
1340 /* end of string */
1341 return 0;
1342}
1343
1344
1345/* output_utf8_char encodes a unicode character as a UTF-8 character.
1346 * The length of the encoding is returned. If the string was not
1347 * long enough to encode the character 0 is returned. */
1348/* NOTE:!!!! end points to the last valid char, NOT past the end
1349 */
1350int output_utf8_char (unsigned short value,
1351 unsigned char *here,
1352 unsigned char *end) {
1353 int len = (int)(end - here + 1); /* end is the last character */
1354
1355 if (value < 0x80) {
1356 /* will be encoded in one byte */
1357 if (len >= 1) {
1358 *here = (unsigned char)value;
1359 return 1;
1360 }
1361
1362 } else if (value < 0x800) {
1363 /* will be encoded in two bytes */
1364 if (len >= 2) {
1365 *here++ = 0xc0 | (unsigned char)((value >> 6) & 0x1f);
1366 *here = 0x80 | (unsigned char)(value & 0x3f);
1367
1368 return 2;
1369 }
1370
1371 } else {
1372 /* will be encoded in three bytes */
1373 if (len >= 3) {
1374 *here++ = 0xe0 | (unsigned char)((value >> 12) & 0xf);
1375 *here++ = 0x80 | (unsigned char)((value >> 6) & 0x3f);
1376 *here = 0x80 | (unsigned char)(value & 0x3f);
1377 return 3;
1378 }
1379 }
1380
1381 return 0;
1382}
1383
1384
1385static int lookup_decompose_table (unsigned short value) {
1386 int first = 0;
1387 int last = NUM_DECOMPOSE_INFO;
1388 int here;
1389
1390 while (first < last) {
1391 here = (last-first)/2 + first;
1392 if (value < decompose_info[here].ch) {
1393 last = here;
1394 } else if (value > decompose_info[here].ch) {
1395 first = here+1;
1396 } else {
1397 return here;
1398 }
1399 }
1400
1401 return -1;
1402}
1403
1404/* decompose_str will decompose a unicode string into its canonical
1405 * equivalents. NULL is returned if the input array was not
1406 * large enough to contain the fully decomposed string (the array
1407 * will be in a correct, but partially decomposed state). The input
1408 * must be null-terminated. */
1409unsigned short *decompose_str (unsigned short *input,
1410 int max_output_len) {
1411 int curpos = 0;
1412 int curlen = unicode_strlen (input);
1413 int tablepos = 0;
1414 int leninc;
1415 int i;
1416
1417 while (input[curpos] != 0) {
1418 tablepos = lookup_decompose_table (input[curpos]);
1419 if (tablepos >= 0) {
1420 /* found a decomposition */
1421 leninc = unicode_strnlen (decompose_info[tablepos].str, 3)-1;
1422 if (curlen+leninc < max_output_len) {
1423 /* enough space for this decomposition */
1424
1425 if (leninc > 1) {
1426 /* we have to shift the array along */
1427 for (i=curlen-1; i>=curpos; --i) {
1428 input[i+leninc] = input[i];
1429 }
1430 input[curlen+leninc] = 0;
1431 curlen += leninc;
1432 }
1433
1434 /* decompose the character */
1435 for (i=0; i<=leninc; ++i) {
1436 input[curpos+i] = decompose_info[tablepos].str[i];
1437 }
1438
1439 /* note: curpos is not incremented because the decomposed */
1440 /* characters might need decomposing */
1441
1442 } else {
1443 /* no space left in string */
1444 return NULL;
1445 }
1446
1447 } else {
1448 /* the character cannot be decomposed */
1449 ++curpos;
1450 }
1451 }
1452
1453 return input;
1454}
1455
1456
1457
1458/* unicode_cat_data is a combination of the letter, digit, and
1459 * space information in a form that is quick to look up.
1460 * The information about each byte is stored in two bits
1461 *
1462 * 00 - neither letter, digit or space
1463 * 01 - letter
1464 * 10 - space
1465 * 11 - digit
1466 *
1467 * You can test for letter | space by looking at the right
1468 * column
1469 */
1470/*mg_u_long *unicode_cat_data;*/
1471
1472void create_unicat_data () {
1473 int i=0;
1474 int min_start=0;
1475 int min_end=0;
1476 register mg_u_long min_value=0; /* filling the whole byte */
1477
1478 const unirange *letter_here = letter_info;
1479 const unirange *letter_end = letter_info+NUM_LETTER_INFO;
1480 const unirange *digit_here = digit_info;
1481 const unirange *digit_end = digit_info+NUM_DIGIT_INFO;
1482 const unirange *space_here = space_info;
1483 const unirange *space_end = space_info+NUM_SPACE_INFO;
1484
1485 if (unicode_cat_data != NULL) return;
1486 // 64-BIT FIX: The old malloc() parameter calculation assumed that an unsigned long was always 4 bytes, but this
1487 // isn't true on 64-bit machines. Although the space required for this structure is actually the same on 64-bit
1488 // machines (2 bits are needed for each of 65536 values), the rest of the code assumes the machine is 32-bit
1489 // and there are 16 values per array entry. Rather than trying to change the rest of the code to work on both
1490 // 32-bit and 64-bit machines, I've just changed this calculation so the block allocated is twice the size on
1491 // 64-bit machines. This is a bit wasteful because half the space isn't used, but it's only 16KB so I don't
1492 // think it's worth worrying about. [Michael Dewsnip, DL Consulting Ltd.]
1493 unicode_cat_data = (mg_u_long *) malloc((0x10000 / 16) * sizeof(mg_u_long));
1494 if (unicode_cat_data == NULL) return;
1495
1496 while (i <= 0xffff) {
1497 /* decide what to fill with next */
1498 min_start = i;
1499 min_end = 0xffff;
1500 min_value = 0; /* 00 */
1501
1502 while (letter_here < letter_end && letter_here->last < i) ++letter_here;
1503 if (letter_here < letter_end && letter_here->last <= min_end) {
1504 min_start = letter_here->first;
1505 min_end = letter_here->last;
1506 min_value = 0x55555555; /* 01 */
1507 }
1508
1509 while (digit_here < digit_end && digit_here->last < i) ++digit_here;
1510 if (digit_here < digit_end && digit_here->last <= min_end) {
1511 min_start = digit_here->first;
1512 min_end = digit_here->last;
1513 min_value = 0xffffffff; /* 11 */
1514 }
1515
1516 while (space_here < space_end && space_here->last < i) ++space_here;
1517 if (space_here < space_end && space_here->last <= min_end) {
1518 min_start = space_here->first;
1519 min_end = space_here->last;
1520 min_value = 0xaaaaaaaa; /* 10 */
1521 }
1522
1523 if (min_start < i) min_start = i;
1524 else if (min_start > i) {
1525 min_end = min_start-1;
1526 min_start = i;
1527 min_value = 0; /* 00 */
1528 }
1529
1530 /* fill the entries from min_start to min_end with min_value */
1531 while (i <= min_end) {
1532 /* special version for common case */
1533 if (i % 16 == 0) {
1534 unicode_cat_data[i/16] = min_value; /* doesn't matter if too long */
1535 i += 16;
1536 if (i > min_end) {
1537 i = min_end+1;
1538 break;
1539 }
1540
1541 } else {
1542 register mg_u_long mask = 3 << ((i % 16) * 2);
1543 unicode_cat_data[i/16] = (unicode_cat_data[i/16] & (~mask)) |
1544 (min_value & mask);
1545 ++i;
1546 }
1547 }
1548 }
1549}
1550
1551/* does a binary search on a range table */
1552static int in_unirange (const unirange *info, int num_info,
1553 unsigned short value) {
1554 int first = 0;
1555 int last = num_info;
1556 int here;
1557
1558 while (first < last) {
1559 here = (last-first)/2 + first;
1560 if (value < info[here].first) {
1561 last = here;
1562 } else if (value > info[here].last) {
1563 first = here+1;
1564 } else {
1565 return 1;
1566 }
1567 }
1568
1569 return 0;
1570}
1571
1572
1573
1574/* tests to see whether 'value' is a valid Unicode letter */
1575int is_unicode_letter (unsigned short value) {
1576 if (unicode_cat_data == NULL) create_unicat_data ();
1577 if (unicode_cat_data == NULL) {
1578 /* use old method */
1579 return in_unirange(letter_info, NUM_LETTER_INFO, value);
1580 }
1581
1582 return (((unicode_cat_data[value/16] >> ((value%16)*2)) & 0x3) == 0x1);
1583}
1584
1585/* tests to see whether 'value' is a valid Unicode digit */
1586int is_unicode_digit (unsigned short value) {
1587 if (unicode_cat_data == NULL) create_unicat_data ();
1588 if (unicode_cat_data == NULL) {
1589 /* use old method */
1590 return in_unirange(digit_info, NUM_DIGIT_INFO, value);
1591 }
1592
1593 return (((unicode_cat_data[value/16] >> ((value%16)*2)) & 0x3) == 0x3);
1594}
1595
1596/* tests to see whether 'value' is a valid Unicode letter or
1597 * digit */
1598int is_unicode_letdig (unsigned short value) {
1599 if (unicode_cat_data == NULL) create_unicat_data ();
1600 if (unicode_cat_data == NULL) {
1601 /* use old method */
1602 return (in_unirange(letter_info, NUM_LETTER_INFO, value) ||
1603 in_unirange(digit_info, NUM_DIGIT_INFO, value));
1604
1605 }
1606
1607 return ((unicode_cat_data[value/16] >> ((value%16)*2)) & 0x1);
1608}
1609
1610/* tests to see whether 'value' is a valid space
1611 * The test includes both "C" spaces and "Unicode" spaces, i.e.
1612 * form-feed, newline, carriage return, horizontal tab,
1613 * vertical tab, and the Zs, Zl, and Zp Unicode categorizations */
1614int is_unicode_space (unsigned short value) {
1615 if (value < 0x80) return isspace (value);
1616 if (unicode_cat_data == NULL) create_unicat_data ();
1617 if (unicode_cat_data == NULL) {
1618 /* use old method */
1619 return in_unirange(space_info, NUM_SPACE_INFO, value);
1620 }
1621
1622 return (((unicode_cat_data[value/16] >> ((value%16)*2)) & 0x3) == 0x2);
1623}
1624
1625/* returns the length of the unicode string */
1626int unicode_strlen (const unsigned short *str) {
1627 int len = 0;
1628
1629 /* keep going till you find the null-terminator */
1630 while (*str != 0) {
1631 ++len;
1632 ++str;
1633 }
1634
1635 return len;
1636}
1637
1638/* returns the length of the unicode string, up to a maximum */
1639int unicode_strnlen (const unsigned short *str, int max_length) {
1640 int len = 0;
1641
1642 /* keep going till you find the null-terminator */
1643 while (*str != 0 && len < max_length ) {
1644 ++len;
1645 ++str;
1646 }
1647
1648 return len;
1649}
1650
1651
1652/* Does a binary search on a relate table, returns -1 if it is not
1653 * found. */
1654static int search_unirelate (const unirelate *info, int num_info,
1655 unsigned short value) {
1656 int first = 0;
1657 int last = num_info;
1658 int here;
1659
1660 while (first < last) {
1661 here = (last-first)/2 + first;
1662 if (value < info[here].ch1) {
1663 last = here;
1664 } else if (value > info[here].ch1) {
1665 first = here+1;
1666 } else {
1667 return here;
1668 }
1669 }
1670
1671 return -1;
1672}
1673
1674
1675/* returns the upper-case equivalent of value */
1676unsigned short unicode_toupper (unsigned short value) {
1677 int related = search_unirelate (toupper_info, NUM_TOUPPER_INFO, value);
1678 if (related >= 0) {
1679 value = toupper_info[related].ch2;
1680 }
1681 return value;
1682}
1683
1684/* returns the lower-case equivalent of value */
1685unsigned short unicode_tolower (unsigned short value) {
1686 int related = search_unirelate (tolower_info, NUM_TOLOWER_INFO, value);
1687 if (related >= 0) {
1688 value = tolower_info[related].ch2;
1689 }
1690 return value;
1691}
1692
1693/* returns the simplified Chinese character equivalent of
1694 * another Chinese character */
1695unsigned short unicode_tosimplified (unsigned short value) {
1696 int related = search_unirelate (tosimplified_info, NUM_TOSIMPLIFIED_INFO, value);
1697 if (related >= 0) {
1698 value = tosimplified_info[related].ch2;
1699 }
1700 return value;
1701}
1702
1703
1704/* converts a utf-8 word (string with length stored in the first byte)
1705 * to a Unicode array. To handle all situations the output buffer should
1706 * be 256 unsigned shorts long. The output will also have the length as
1707 * the first entry.
1708 * NOTE! max_output_length is the maximum length of the output string, ie
1709 * one less than the length of the output array, ie should be <=255 if output
1710 * buffer is 256 long
1711 */
1712unsigned short *utf8_word_to_unicode (const unsigned char *input,
1713 unsigned short *output,
1714 int max_output_length) {
1715 int inlen = *input;
1716 const unsigned char *inhere = input+1;
1717 const unsigned char *inend = &inhere[inlen-1]; // points to the last valid char, not past the end.
1718 unsigned short c;
1719 int clen;
1720
1721 int outlen = 0;
1722 unsigned short *outhere = output+1;
1723
1724 while (inhere <= inend && outlen < max_output_length) {
1725 /* decode the character */
1726 clen = parse_utf8_char (inhere, inend, &c);
1727 inhere += clen;
1728
1729 if (clen > 0) {
1730 /* store the character */
1731 *outhere = c;
1732 ++outhere;
1733 ++outlen;
1734 }
1735 }
1736
1737 output[0] = outlen;
1738 return output;
1739}
1740
1741
1742/* converts a unicode word buffer (with the length stored in the
1743 * entry) to a utf8 encoded word output (with the length stored in
1744 * the first byte. Only 255 bytes (not characters) can be stored
1745 * in the output.
1746 * Note:!! max_output_length is the maximum length of the output string, ie
1747 * one less than the length of the output array, ie should be <=255 if output
1748 * buffer is 256 long
1749*/
1750unsigned char *unicode_to_utf8_word (const unsigned short *input,
1751 unsigned char *output,
1752 int max_output_length) {
1753 int inlen = *input;
1754 const unsigned short *word = input + 1;
1755 int in_i = 0;
1756 int clen;
1757
1758 int outlen = 0;
1759 unsigned char *outhere = output+1;
1760 unsigned char *outend = output+max_output_length; // points to last valid char, not past the end
1761
1762 while (in_i < inlen) {
1763 if ((clen=output_utf8_char(word[in_i], outhere, outend)) == 0) {
1764 /* ran out of space to encode the character */
1765 break;
1766 }
1767
1768 outhere += clen;
1769 outlen += clen;
1770 ++in_i;
1771 }
1772
1773 output[0] = outlen;
1774
1775 return output;
1776}
1777
Note: See TracBrowser for help on using the repository browser.