MySQL 5.6.14 Source Code Document
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
ctype-utf8.c
1 /* Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
2 
3  This library is free software; you can redistribute it and/or
4  modify it under the terms of the GNU Library General Public
5  License as published by the Free Software Foundation; version 2
6  of the License.
7 
8  This library is distributed in the hope that it will be useful,
9  but WITHOUT ANY WARRANTY; without even the implied warranty of
10  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11  Library General Public License for more details.
12 
13  You should have received a copy of the GNU Library General Public
14  License along with this library; if not, write to the Free Software
15  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */
16 
17 /* UTF8 according RFC 2279 */
18 /* Written by Alexander Barkov <bar@udm.net> */
19 
20 #include <my_global.h>
21 #include "m_string.h"
22 #include "m_ctype.h"
23 #include <errno.h>
24 
25 #ifndef EILSEQ
26 #define EILSEQ ENOENT
27 #endif
28 
29 
30 #define MY_UTF8MB3_GENERAL_CI MY_UTF8MB3 "_general_ci"
31 #define MY_UTF8MB3_GENERAL_CS MY_UTF8MB3 "_general_cs"
32 #define MY_UTF8MB3_BIN MY_UTF8MB3 "_bin"
33 #define MY_UTF8MB4_GENERAL_CI MY_UTF8MB4 "_general_ci"
34 #define MY_UTF8MB4_GENERAL_CS MY_UTF8MB4 "_general_cs"
35 #define MY_UTF8MB4_BIN MY_UTF8MB4 "_bin"
36 
37 
38 
39 #ifndef HAVE_CHARSET_utf8
40 #define HAVE_CHARSET_utf8
41 #endif
42 
43 #ifdef HAVE_CHARSET_utf8
44 #define HAVE_UNIDATA
45 #endif
46 
47 #ifdef HAVE_CHARSET_ucs2
48 #define HAVE_UNIDATA
49 #endif
50 
51 #ifdef HAVE_CHARSET_utf16
52 #define HAVE_UNIDATA
53 #endif
54 
55 #ifdef HAVE_CHARSET_utf32
56 #define HAVE_UNIDATA
57 #endif
58 
59 #ifdef HAVE_UNIDATA
60 
61 #include "my_uctype.h"
62 
63 static MY_UNICASE_CHARACTER plane00[]={
64  {0x0000,0x0000,0x0000}, {0x0001,0x0001,0x0001},
65  {0x0002,0x0002,0x0002}, {0x0003,0x0003,0x0003},
66  {0x0004,0x0004,0x0004}, {0x0005,0x0005,0x0005},
67  {0x0006,0x0006,0x0006}, {0x0007,0x0007,0x0007},
68  {0x0008,0x0008,0x0008}, {0x0009,0x0009,0x0009},
69  {0x000A,0x000A,0x000A}, {0x000B,0x000B,0x000B},
70  {0x000C,0x000C,0x000C}, {0x000D,0x000D,0x000D},
71  {0x000E,0x000E,0x000E}, {0x000F,0x000F,0x000F},
72  {0x0010,0x0010,0x0010}, {0x0011,0x0011,0x0011},
73  {0x0012,0x0012,0x0012}, {0x0013,0x0013,0x0013},
74  {0x0014,0x0014,0x0014}, {0x0015,0x0015,0x0015},
75  {0x0016,0x0016,0x0016}, {0x0017,0x0017,0x0017},
76  {0x0018,0x0018,0x0018}, {0x0019,0x0019,0x0019},
77  {0x001A,0x001A,0x001A}, {0x001B,0x001B,0x001B},
78  {0x001C,0x001C,0x001C}, {0x001D,0x001D,0x001D},
79  {0x001E,0x001E,0x001E}, {0x001F,0x001F,0x001F},
80  {0x0020,0x0020,0x0020}, {0x0021,0x0021,0x0021},
81  {0x0022,0x0022,0x0022}, {0x0023,0x0023,0x0023},
82  {0x0024,0x0024,0x0024}, {0x0025,0x0025,0x0025},
83  {0x0026,0x0026,0x0026}, {0x0027,0x0027,0x0027},
84  {0x0028,0x0028,0x0028}, {0x0029,0x0029,0x0029},
85  {0x002A,0x002A,0x002A}, {0x002B,0x002B,0x002B},
86  {0x002C,0x002C,0x002C}, {0x002D,0x002D,0x002D},
87  {0x002E,0x002E,0x002E}, {0x002F,0x002F,0x002F},
88  {0x0030,0x0030,0x0030}, {0x0031,0x0031,0x0031},
89  {0x0032,0x0032,0x0032}, {0x0033,0x0033,0x0033},
90  {0x0034,0x0034,0x0034}, {0x0035,0x0035,0x0035},
91  {0x0036,0x0036,0x0036}, {0x0037,0x0037,0x0037},
92  {0x0038,0x0038,0x0038}, {0x0039,0x0039,0x0039},
93  {0x003A,0x003A,0x003A}, {0x003B,0x003B,0x003B},
94  {0x003C,0x003C,0x003C}, {0x003D,0x003D,0x003D},
95  {0x003E,0x003E,0x003E}, {0x003F,0x003F,0x003F},
96  {0x0040,0x0040,0x0040}, {0x0041,0x0061,0x0041},
97  {0x0042,0x0062,0x0042}, {0x0043,0x0063,0x0043},
98  {0x0044,0x0064,0x0044}, {0x0045,0x0065,0x0045},
99  {0x0046,0x0066,0x0046}, {0x0047,0x0067,0x0047},
100  {0x0048,0x0068,0x0048}, {0x0049,0x0069,0x0049},
101  {0x004A,0x006A,0x004A}, {0x004B,0x006B,0x004B},
102  {0x004C,0x006C,0x004C}, {0x004D,0x006D,0x004D},
103  {0x004E,0x006E,0x004E}, {0x004F,0x006F,0x004F},
104  {0x0050,0x0070,0x0050}, {0x0051,0x0071,0x0051},
105  {0x0052,0x0072,0x0052}, {0x0053,0x0073,0x0053},
106  {0x0054,0x0074,0x0054}, {0x0055,0x0075,0x0055},
107  {0x0056,0x0076,0x0056}, {0x0057,0x0077,0x0057},
108  {0x0058,0x0078,0x0058}, {0x0059,0x0079,0x0059},
109  {0x005A,0x007A,0x005A}, {0x005B,0x005B,0x005B},
110  {0x005C,0x005C,0x005C}, {0x005D,0x005D,0x005D},
111  {0x005E,0x005E,0x005E}, {0x005F,0x005F,0x005F},
112  {0x0060,0x0060,0x0060}, {0x0041,0x0061,0x0041},
113  {0x0042,0x0062,0x0042}, {0x0043,0x0063,0x0043},
114  {0x0044,0x0064,0x0044}, {0x0045,0x0065,0x0045},
115  {0x0046,0x0066,0x0046}, {0x0047,0x0067,0x0047},
116  {0x0048,0x0068,0x0048}, {0x0049,0x0069,0x0049},
117  {0x004A,0x006A,0x004A}, {0x004B,0x006B,0x004B},
118  {0x004C,0x006C,0x004C}, {0x004D,0x006D,0x004D},
119  {0x004E,0x006E,0x004E}, {0x004F,0x006F,0x004F},
120  {0x0050,0x0070,0x0050}, {0x0051,0x0071,0x0051},
121  {0x0052,0x0072,0x0052}, {0x0053,0x0073,0x0053},
122  {0x0054,0x0074,0x0054}, {0x0055,0x0075,0x0055},
123  {0x0056,0x0076,0x0056}, {0x0057,0x0077,0x0057},
124  {0x0058,0x0078,0x0058}, {0x0059,0x0079,0x0059},
125  {0x005A,0x007A,0x005A}, {0x007B,0x007B,0x007B},
126  {0x007C,0x007C,0x007C}, {0x007D,0x007D,0x007D},
127  {0x007E,0x007E,0x007E}, {0x007F,0x007F,0x007F},
128  {0x0080,0x0080,0x0080}, {0x0081,0x0081,0x0081},
129  {0x0082,0x0082,0x0082}, {0x0083,0x0083,0x0083},
130  {0x0084,0x0084,0x0084}, {0x0085,0x0085,0x0085},
131  {0x0086,0x0086,0x0086}, {0x0087,0x0087,0x0087},
132  {0x0088,0x0088,0x0088}, {0x0089,0x0089,0x0089},
133  {0x008A,0x008A,0x008A}, {0x008B,0x008B,0x008B},
134  {0x008C,0x008C,0x008C}, {0x008D,0x008D,0x008D},
135  {0x008E,0x008E,0x008E}, {0x008F,0x008F,0x008F},
136  {0x0090,0x0090,0x0090}, {0x0091,0x0091,0x0091},
137  {0x0092,0x0092,0x0092}, {0x0093,0x0093,0x0093},
138  {0x0094,0x0094,0x0094}, {0x0095,0x0095,0x0095},
139  {0x0096,0x0096,0x0096}, {0x0097,0x0097,0x0097},
140  {0x0098,0x0098,0x0098}, {0x0099,0x0099,0x0099},
141  {0x009A,0x009A,0x009A}, {0x009B,0x009B,0x009B},
142  {0x009C,0x009C,0x009C}, {0x009D,0x009D,0x009D},
143  {0x009E,0x009E,0x009E}, {0x009F,0x009F,0x009F},
144  {0x00A0,0x00A0,0x00A0}, {0x00A1,0x00A1,0x00A1},
145  {0x00A2,0x00A2,0x00A2}, {0x00A3,0x00A3,0x00A3},
146  {0x00A4,0x00A4,0x00A4}, {0x00A5,0x00A5,0x00A5},
147  {0x00A6,0x00A6,0x00A6}, {0x00A7,0x00A7,0x00A7},
148  {0x00A8,0x00A8,0x00A8}, {0x00A9,0x00A9,0x00A9},
149  {0x00AA,0x00AA,0x00AA}, {0x00AB,0x00AB,0x00AB},
150  {0x00AC,0x00AC,0x00AC}, {0x00AD,0x00AD,0x00AD},
151  {0x00AE,0x00AE,0x00AE}, {0x00AF,0x00AF,0x00AF},
152  {0x00B0,0x00B0,0x00B0}, {0x00B1,0x00B1,0x00B1},
153  {0x00B2,0x00B2,0x00B2}, {0x00B3,0x00B3,0x00B3},
154  {0x00B4,0x00B4,0x00B4}, {0x039C,0x00B5,0x039C},
155  {0x00B6,0x00B6,0x00B6}, {0x00B7,0x00B7,0x00B7},
156  {0x00B8,0x00B8,0x00B8}, {0x00B9,0x00B9,0x00B9},
157  {0x00BA,0x00BA,0x00BA}, {0x00BB,0x00BB,0x00BB},
158  {0x00BC,0x00BC,0x00BC}, {0x00BD,0x00BD,0x00BD},
159  {0x00BE,0x00BE,0x00BE}, {0x00BF,0x00BF,0x00BF},
160  {0x00C0,0x00E0,0x0041}, {0x00C1,0x00E1,0x0041},
161  {0x00C2,0x00E2,0x0041}, {0x00C3,0x00E3,0x0041},
162  {0x00C4,0x00E4,0x0041}, {0x00C5,0x00E5,0x0041},
163  {0x00C6,0x00E6,0x00C6}, {0x00C7,0x00E7,0x0043},
164  {0x00C8,0x00E8,0x0045}, {0x00C9,0x00E9,0x0045},
165  {0x00CA,0x00EA,0x0045}, {0x00CB,0x00EB,0x0045},
166  {0x00CC,0x00EC,0x0049}, {0x00CD,0x00ED,0x0049},
167  {0x00CE,0x00EE,0x0049}, {0x00CF,0x00EF,0x0049},
168  {0x00D0,0x00F0,0x00D0}, {0x00D1,0x00F1,0x004E},
169  {0x00D2,0x00F2,0x004F}, {0x00D3,0x00F3,0x004F},
170  {0x00D4,0x00F4,0x004F}, {0x00D5,0x00F5,0x004F},
171  {0x00D6,0x00F6,0x004F}, {0x00D7,0x00D7,0x00D7},
172  {0x00D8,0x00F8,0x00D8}, {0x00D9,0x00F9,0x0055},
173  {0x00DA,0x00FA,0x0055}, {0x00DB,0x00FB,0x0055},
174  {0x00DC,0x00FC,0x0055}, {0x00DD,0x00FD,0x0059},
175  {0x00DE,0x00FE,0x00DE}, {0x00DF,0x00DF,0x0053},
176  {0x00C0,0x00E0,0x0041}, {0x00C1,0x00E1,0x0041},
177  {0x00C2,0x00E2,0x0041}, {0x00C3,0x00E3,0x0041},
178  {0x00C4,0x00E4,0x0041}, {0x00C5,0x00E5,0x0041},
179  {0x00C6,0x00E6,0x00C6}, {0x00C7,0x00E7,0x0043},
180  {0x00C8,0x00E8,0x0045}, {0x00C9,0x00E9,0x0045},
181  {0x00CA,0x00EA,0x0045}, {0x00CB,0x00EB,0x0045},
182  {0x00CC,0x00EC,0x0049}, {0x00CD,0x00ED,0x0049},
183  {0x00CE,0x00EE,0x0049}, {0x00CF,0x00EF,0x0049},
184  {0x00D0,0x00F0,0x00D0}, {0x00D1,0x00F1,0x004E},
185  {0x00D2,0x00F2,0x004F}, {0x00D3,0x00F3,0x004F},
186  {0x00D4,0x00F4,0x004F}, {0x00D5,0x00F5,0x004F},
187  {0x00D6,0x00F6,0x004F}, {0x00F7,0x00F7,0x00F7},
188  {0x00D8,0x00F8,0x00D8}, {0x00D9,0x00F9,0x0055},
189  {0x00DA,0x00FA,0x0055}, {0x00DB,0x00FB,0x0055},
190  {0x00DC,0x00FC,0x0055}, {0x00DD,0x00FD,0x0059},
191  {0x00DE,0x00FE,0x00DE}, {0x0178,0x00FF,0x0059}
192 };
193 
194 
195 /*
196  Almost similar to plane00, but maps sorting order
197  for U+00DF to 0x00DF instead of 0x0053.
198 */
199 static MY_UNICASE_CHARACTER plane00_mysql500[]={
200  {0x0000,0x0000,0x0000}, {0x0001,0x0001,0x0001},
201  {0x0002,0x0002,0x0002}, {0x0003,0x0003,0x0003},
202  {0x0004,0x0004,0x0004}, {0x0005,0x0005,0x0005},
203  {0x0006,0x0006,0x0006}, {0x0007,0x0007,0x0007},
204  {0x0008,0x0008,0x0008}, {0x0009,0x0009,0x0009},
205  {0x000A,0x000A,0x000A}, {0x000B,0x000B,0x000B},
206  {0x000C,0x000C,0x000C}, {0x000D,0x000D,0x000D},
207  {0x000E,0x000E,0x000E}, {0x000F,0x000F,0x000F},
208  {0x0010,0x0010,0x0010}, {0x0011,0x0011,0x0011},
209  {0x0012,0x0012,0x0012}, {0x0013,0x0013,0x0013},
210  {0x0014,0x0014,0x0014}, {0x0015,0x0015,0x0015},
211  {0x0016,0x0016,0x0016}, {0x0017,0x0017,0x0017},
212  {0x0018,0x0018,0x0018}, {0x0019,0x0019,0x0019},
213  {0x001A,0x001A,0x001A}, {0x001B,0x001B,0x001B},
214  {0x001C,0x001C,0x001C}, {0x001D,0x001D,0x001D},
215  {0x001E,0x001E,0x001E}, {0x001F,0x001F,0x001F},
216  {0x0020,0x0020,0x0020}, {0x0021,0x0021,0x0021},
217  {0x0022,0x0022,0x0022}, {0x0023,0x0023,0x0023},
218  {0x0024,0x0024,0x0024}, {0x0025,0x0025,0x0025},
219  {0x0026,0x0026,0x0026}, {0x0027,0x0027,0x0027},
220  {0x0028,0x0028,0x0028}, {0x0029,0x0029,0x0029},
221  {0x002A,0x002A,0x002A}, {0x002B,0x002B,0x002B},
222  {0x002C,0x002C,0x002C}, {0x002D,0x002D,0x002D},
223  {0x002E,0x002E,0x002E}, {0x002F,0x002F,0x002F},
224  {0x0030,0x0030,0x0030}, {0x0031,0x0031,0x0031},
225  {0x0032,0x0032,0x0032}, {0x0033,0x0033,0x0033},
226  {0x0034,0x0034,0x0034}, {0x0035,0x0035,0x0035},
227  {0x0036,0x0036,0x0036}, {0x0037,0x0037,0x0037},
228  {0x0038,0x0038,0x0038}, {0x0039,0x0039,0x0039},
229  {0x003A,0x003A,0x003A}, {0x003B,0x003B,0x003B},
230  {0x003C,0x003C,0x003C}, {0x003D,0x003D,0x003D},
231  {0x003E,0x003E,0x003E}, {0x003F,0x003F,0x003F},
232  {0x0040,0x0040,0x0040}, {0x0041,0x0061,0x0041},
233  {0x0042,0x0062,0x0042}, {0x0043,0x0063,0x0043},
234  {0x0044,0x0064,0x0044}, {0x0045,0x0065,0x0045},
235  {0x0046,0x0066,0x0046}, {0x0047,0x0067,0x0047},
236  {0x0048,0x0068,0x0048}, {0x0049,0x0069,0x0049},
237  {0x004A,0x006A,0x004A}, {0x004B,0x006B,0x004B},
238  {0x004C,0x006C,0x004C}, {0x004D,0x006D,0x004D},
239  {0x004E,0x006E,0x004E}, {0x004F,0x006F,0x004F},
240  {0x0050,0x0070,0x0050}, {0x0051,0x0071,0x0051},
241  {0x0052,0x0072,0x0052}, {0x0053,0x0073,0x0053},
242  {0x0054,0x0074,0x0054}, {0x0055,0x0075,0x0055},
243  {0x0056,0x0076,0x0056}, {0x0057,0x0077,0x0057},
244  {0x0058,0x0078,0x0058}, {0x0059,0x0079,0x0059},
245  {0x005A,0x007A,0x005A}, {0x005B,0x005B,0x005B},
246  {0x005C,0x005C,0x005C}, {0x005D,0x005D,0x005D},
247  {0x005E,0x005E,0x005E}, {0x005F,0x005F,0x005F},
248  {0x0060,0x0060,0x0060}, {0x0041,0x0061,0x0041},
249  {0x0042,0x0062,0x0042}, {0x0043,0x0063,0x0043},
250  {0x0044,0x0064,0x0044}, {0x0045,0x0065,0x0045},
251  {0x0046,0x0066,0x0046}, {0x0047,0x0067,0x0047},
252  {0x0048,0x0068,0x0048}, {0x0049,0x0069,0x0049},
253  {0x004A,0x006A,0x004A}, {0x004B,0x006B,0x004B},
254  {0x004C,0x006C,0x004C}, {0x004D,0x006D,0x004D},
255  {0x004E,0x006E,0x004E}, {0x004F,0x006F,0x004F},
256  {0x0050,0x0070,0x0050}, {0x0051,0x0071,0x0051},
257  {0x0052,0x0072,0x0052}, {0x0053,0x0073,0x0053},
258  {0x0054,0x0074,0x0054}, {0x0055,0x0075,0x0055},
259  {0x0056,0x0076,0x0056}, {0x0057,0x0077,0x0057},
260  {0x0058,0x0078,0x0058}, {0x0059,0x0079,0x0059},
261  {0x005A,0x007A,0x005A}, {0x007B,0x007B,0x007B},
262  {0x007C,0x007C,0x007C}, {0x007D,0x007D,0x007D},
263  {0x007E,0x007E,0x007E}, {0x007F,0x007F,0x007F},
264  {0x0080,0x0080,0x0080}, {0x0081,0x0081,0x0081},
265  {0x0082,0x0082,0x0082}, {0x0083,0x0083,0x0083},
266  {0x0084,0x0084,0x0084}, {0x0085,0x0085,0x0085},
267  {0x0086,0x0086,0x0086}, {0x0087,0x0087,0x0087},
268  {0x0088,0x0088,0x0088}, {0x0089,0x0089,0x0089},
269  {0x008A,0x008A,0x008A}, {0x008B,0x008B,0x008B},
270  {0x008C,0x008C,0x008C}, {0x008D,0x008D,0x008D},
271  {0x008E,0x008E,0x008E}, {0x008F,0x008F,0x008F},
272  {0x0090,0x0090,0x0090}, {0x0091,0x0091,0x0091},
273  {0x0092,0x0092,0x0092}, {0x0093,0x0093,0x0093},
274  {0x0094,0x0094,0x0094}, {0x0095,0x0095,0x0095},
275  {0x0096,0x0096,0x0096}, {0x0097,0x0097,0x0097},
276  {0x0098,0x0098,0x0098}, {0x0099,0x0099,0x0099},
277  {0x009A,0x009A,0x009A}, {0x009B,0x009B,0x009B},
278  {0x009C,0x009C,0x009C}, {0x009D,0x009D,0x009D},
279  {0x009E,0x009E,0x009E}, {0x009F,0x009F,0x009F},
280  {0x00A0,0x00A0,0x00A0}, {0x00A1,0x00A1,0x00A1},
281  {0x00A2,0x00A2,0x00A2}, {0x00A3,0x00A3,0x00A3},
282  {0x00A4,0x00A4,0x00A4}, {0x00A5,0x00A5,0x00A5},
283  {0x00A6,0x00A6,0x00A6}, {0x00A7,0x00A7,0x00A7},
284  {0x00A8,0x00A8,0x00A8}, {0x00A9,0x00A9,0x00A9},
285  {0x00AA,0x00AA,0x00AA}, {0x00AB,0x00AB,0x00AB},
286  {0x00AC,0x00AC,0x00AC}, {0x00AD,0x00AD,0x00AD},
287  {0x00AE,0x00AE,0x00AE}, {0x00AF,0x00AF,0x00AF},
288  {0x00B0,0x00B0,0x00B0}, {0x00B1,0x00B1,0x00B1},
289  {0x00B2,0x00B2,0x00B2}, {0x00B3,0x00B3,0x00B3},
290  {0x00B4,0x00B4,0x00B4}, {0x039C,0x00B5,0x039C},
291  {0x00B6,0x00B6,0x00B6}, {0x00B7,0x00B7,0x00B7},
292  {0x00B8,0x00B8,0x00B8}, {0x00B9,0x00B9,0x00B9},
293  {0x00BA,0x00BA,0x00BA}, {0x00BB,0x00BB,0x00BB},
294  {0x00BC,0x00BC,0x00BC}, {0x00BD,0x00BD,0x00BD},
295  {0x00BE,0x00BE,0x00BE}, {0x00BF,0x00BF,0x00BF},
296  {0x00C0,0x00E0,0x0041}, {0x00C1,0x00E1,0x0041},
297  {0x00C2,0x00E2,0x0041}, {0x00C3,0x00E3,0x0041},
298  {0x00C4,0x00E4,0x0041}, {0x00C5,0x00E5,0x0041},
299  {0x00C6,0x00E6,0x00C6}, {0x00C7,0x00E7,0x0043},
300  {0x00C8,0x00E8,0x0045}, {0x00C9,0x00E9,0x0045},
301  {0x00CA,0x00EA,0x0045}, {0x00CB,0x00EB,0x0045},
302  {0x00CC,0x00EC,0x0049}, {0x00CD,0x00ED,0x0049},
303  {0x00CE,0x00EE,0x0049}, {0x00CF,0x00EF,0x0049},
304  {0x00D0,0x00F0,0x00D0}, {0x00D1,0x00F1,0x004E},
305  {0x00D2,0x00F2,0x004F}, {0x00D3,0x00F3,0x004F},
306  {0x00D4,0x00F4,0x004F}, {0x00D5,0x00F5,0x004F},
307  {0x00D6,0x00F6,0x004F}, {0x00D7,0x00D7,0x00D7},
308  {0x00D8,0x00F8,0x00D8}, {0x00D9,0x00F9,0x0055},
309  {0x00DA,0x00FA,0x0055}, {0x00DB,0x00FB,0x0055},
310  {0x00DC,0x00FC,0x0055}, {0x00DD,0x00FD,0x0059},
311  {0x00DE,0x00FE,0x00DE}, {0x00DF,0x00DF,0x00DF},
312  {0x00C0,0x00E0,0x0041}, {0x00C1,0x00E1,0x0041},
313  {0x00C2,0x00E2,0x0041}, {0x00C3,0x00E3,0x0041},
314  {0x00C4,0x00E4,0x0041}, {0x00C5,0x00E5,0x0041},
315  {0x00C6,0x00E6,0x00C6}, {0x00C7,0x00E7,0x0043},
316  {0x00C8,0x00E8,0x0045}, {0x00C9,0x00E9,0x0045},
317  {0x00CA,0x00EA,0x0045}, {0x00CB,0x00EB,0x0045},
318  {0x00CC,0x00EC,0x0049}, {0x00CD,0x00ED,0x0049},
319  {0x00CE,0x00EE,0x0049}, {0x00CF,0x00EF,0x0049},
320  {0x00D0,0x00F0,0x00D0}, {0x00D1,0x00F1,0x004E},
321  {0x00D2,0x00F2,0x004F}, {0x00D3,0x00F3,0x004F},
322  {0x00D4,0x00F4,0x004F}, {0x00D5,0x00F5,0x004F},
323  {0x00D6,0x00F6,0x004F}, {0x00F7,0x00F7,0x00F7},
324  {0x00D8,0x00F8,0x00D8}, {0x00D9,0x00F9,0x0055},
325  {0x00DA,0x00FA,0x0055}, {0x00DB,0x00FB,0x0055},
326  {0x00DC,0x00FC,0x0055}, {0x00DD,0x00FD,0x0059},
327  {0x00DE,0x00FE,0x00DE}, {0x0178,0x00FF,0x0059}
328 };
329 
330 
331 static MY_UNICASE_CHARACTER plane01[]={
332  {0x0100,0x0101,0x0041}, {0x0100,0x0101,0x0041},
333  {0x0102,0x0103,0x0041}, {0x0102,0x0103,0x0041},
334  {0x0104,0x0105,0x0041}, {0x0104,0x0105,0x0041},
335  {0x0106,0x0107,0x0043}, {0x0106,0x0107,0x0043},
336  {0x0108,0x0109,0x0043}, {0x0108,0x0109,0x0043},
337  {0x010A,0x010B,0x0043}, {0x010A,0x010B,0x0043},
338  {0x010C,0x010D,0x0043}, {0x010C,0x010D,0x0043},
339  {0x010E,0x010F,0x0044}, {0x010E,0x010F,0x0044},
340  {0x0110,0x0111,0x0110}, {0x0110,0x0111,0x0110},
341  {0x0112,0x0113,0x0045}, {0x0112,0x0113,0x0045},
342  {0x0114,0x0115,0x0045}, {0x0114,0x0115,0x0045},
343  {0x0116,0x0117,0x0045}, {0x0116,0x0117,0x0045},
344  {0x0118,0x0119,0x0045}, {0x0118,0x0119,0x0045},
345  {0x011A,0x011B,0x0045}, {0x011A,0x011B,0x0045},
346  {0x011C,0x011D,0x0047}, {0x011C,0x011D,0x0047},
347  {0x011E,0x011F,0x0047}, {0x011E,0x011F,0x0047},
348  {0x0120,0x0121,0x0047}, {0x0120,0x0121,0x0047},
349  {0x0122,0x0123,0x0047}, {0x0122,0x0123,0x0047},
350  {0x0124,0x0125,0x0048}, {0x0124,0x0125,0x0048},
351  {0x0126,0x0127,0x0126}, {0x0126,0x0127,0x0126},
352  {0x0128,0x0129,0x0049}, {0x0128,0x0129,0x0049},
353  {0x012A,0x012B,0x0049}, {0x012A,0x012B,0x0049},
354  {0x012C,0x012D,0x0049}, {0x012C,0x012D,0x0049},
355  {0x012E,0x012F,0x0049}, {0x012E,0x012F,0x0049},
356  {0x0130,0x0069,0x0049}, {0x0049,0x0131,0x0049},
357  {0x0132,0x0133,0x0132}, {0x0132,0x0133,0x0132},
358  {0x0134,0x0135,0x004A}, {0x0134,0x0135,0x004A},
359  {0x0136,0x0137,0x004B}, {0x0136,0x0137,0x004B},
360  {0x0138,0x0138,0x0138}, {0x0139,0x013A,0x004C},
361  {0x0139,0x013A,0x004C}, {0x013B,0x013C,0x004C},
362  {0x013B,0x013C,0x004C}, {0x013D,0x013E,0x004C},
363  {0x013D,0x013E,0x004C}, {0x013F,0x0140,0x013F},
364  {0x013F,0x0140,0x013F}, {0x0141,0x0142,0x0141},
365  {0x0141,0x0142,0x0141}, {0x0143,0x0144,0x004E},
366  {0x0143,0x0144,0x004E}, {0x0145,0x0146,0x004E},
367  {0x0145,0x0146,0x004E}, {0x0147,0x0148,0x004E},
368  {0x0147,0x0148,0x004E}, {0x0149,0x0149,0x0149},
369  {0x014A,0x014B,0x014A}, {0x014A,0x014B,0x014A},
370  {0x014C,0x014D,0x004F}, {0x014C,0x014D,0x004F},
371  {0x014E,0x014F,0x004F}, {0x014E,0x014F,0x004F},
372  {0x0150,0x0151,0x004F}, {0x0150,0x0151,0x004F},
373  {0x0152,0x0153,0x0152}, {0x0152,0x0153,0x0152},
374  {0x0154,0x0155,0x0052}, {0x0154,0x0155,0x0052},
375  {0x0156,0x0157,0x0052}, {0x0156,0x0157,0x0052},
376  {0x0158,0x0159,0x0052}, {0x0158,0x0159,0x0052},
377  {0x015A,0x015B,0x0053}, {0x015A,0x015B,0x0053},
378  {0x015C,0x015D,0x0053}, {0x015C,0x015D,0x0053},
379  {0x015E,0x015F,0x0053}, {0x015E,0x015F,0x0053},
380  {0x0160,0x0161,0x0053}, {0x0160,0x0161,0x0053},
381  {0x0162,0x0163,0x0054}, {0x0162,0x0163,0x0054},
382  {0x0164,0x0165,0x0054}, {0x0164,0x0165,0x0054},
383  {0x0166,0x0167,0x0166}, {0x0166,0x0167,0x0166},
384  {0x0168,0x0169,0x0055}, {0x0168,0x0169,0x0055},
385  {0x016A,0x016B,0x0055}, {0x016A,0x016B,0x0055},
386  {0x016C,0x016D,0x0055}, {0x016C,0x016D,0x0055},
387  {0x016E,0x016F,0x0055}, {0x016E,0x016F,0x0055},
388  {0x0170,0x0171,0x0055}, {0x0170,0x0171,0x0055},
389  {0x0172,0x0173,0x0055}, {0x0172,0x0173,0x0055},
390  {0x0174,0x0175,0x0057}, {0x0174,0x0175,0x0057},
391  {0x0176,0x0177,0x0059}, {0x0176,0x0177,0x0059},
392  {0x0178,0x00FF,0x0059}, {0x0179,0x017A,0x005A},
393  {0x0179,0x017A,0x005A}, {0x017B,0x017C,0x005A},
394  {0x017B,0x017C,0x005A}, {0x017D,0x017E,0x005A},
395  {0x017D,0x017E,0x005A}, {0x0053,0x017F,0x0053},
396  {0x0180,0x0180,0x0180}, {0x0181,0x0253,0x0181},
397  {0x0182,0x0183,0x0182}, {0x0182,0x0183,0x0182},
398  {0x0184,0x0185,0x0184}, {0x0184,0x0185,0x0184},
399  {0x0186,0x0254,0x0186}, {0x0187,0x0188,0x0187},
400  {0x0187,0x0188,0x0187}, {0x0189,0x0256,0x0189},
401  {0x018A,0x0257,0x018A}, {0x018B,0x018C,0x018B},
402  {0x018B,0x018C,0x018B}, {0x018D,0x018D,0x018D},
403  {0x018E,0x01DD,0x018E}, {0x018F,0x0259,0x018F},
404  {0x0190,0x025B,0x0190}, {0x0191,0x0192,0x0191},
405  {0x0191,0x0192,0x0191}, {0x0193,0x0260,0x0193},
406  {0x0194,0x0263,0x0194}, {0x01F6,0x0195,0x01F6},
407  {0x0196,0x0269,0x0196}, {0x0197,0x0268,0x0197},
408  {0x0198,0x0199,0x0198}, {0x0198,0x0199,0x0198},
409  {0x019A,0x019A,0x019A}, {0x019B,0x019B,0x019B},
410  {0x019C,0x026F,0x019C}, {0x019D,0x0272,0x019D},
411  {0x019E,0x019E,0x019E}, {0x019F,0x0275,0x019F},
412  {0x01A0,0x01A1,0x004F}, {0x01A0,0x01A1,0x004F},
413  {0x01A2,0x01A3,0x01A2}, {0x01A2,0x01A3,0x01A2},
414  {0x01A4,0x01A5,0x01A4}, {0x01A4,0x01A5,0x01A4},
415  {0x01A6,0x0280,0x01A6}, {0x01A7,0x01A8,0x01A7},
416  {0x01A7,0x01A8,0x01A7}, {0x01A9,0x0283,0x01A9},
417  {0x01AA,0x01AA,0x01AA}, {0x01AB,0x01AB,0x01AB},
418  {0x01AC,0x01AD,0x01AC}, {0x01AC,0x01AD,0x01AC},
419  {0x01AE,0x0288,0x01AE}, {0x01AF,0x01B0,0x0055},
420  {0x01AF,0x01B0,0x0055}, {0x01B1,0x028A,0x01B1},
421  {0x01B2,0x028B,0x01B2}, {0x01B3,0x01B4,0x01B3},
422  {0x01B3,0x01B4,0x01B3}, {0x01B5,0x01B6,0x01B5},
423  {0x01B5,0x01B6,0x01B5}, {0x01B7,0x0292,0x01B7},
424  {0x01B8,0x01B9,0x01B8}, {0x01B8,0x01B9,0x01B8},
425  {0x01BA,0x01BA,0x01BA}, {0x01BB,0x01BB,0x01BB},
426  {0x01BC,0x01BD,0x01BC}, {0x01BC,0x01BD,0x01BC},
427  {0x01BE,0x01BE,0x01BE}, {0x01F7,0x01BF,0x01F7},
428  {0x01C0,0x01C0,0x01C0}, {0x01C1,0x01C1,0x01C1},
429  {0x01C2,0x01C2,0x01C2}, {0x01C3,0x01C3,0x01C3},
430  {0x01C4,0x01C6,0x01C4}, {0x01C4,0x01C6,0x01C4},
431  {0x01C4,0x01C6,0x01C4}, {0x01C7,0x01C9,0x01C7},
432  {0x01C7,0x01C9,0x01C7}, {0x01C7,0x01C9,0x01C7},
433  {0x01CA,0x01CC,0x01CA}, {0x01CA,0x01CC,0x01CA},
434  {0x01CA,0x01CC,0x01CA}, {0x01CD,0x01CE,0x0041},
435  {0x01CD,0x01CE,0x0041}, {0x01CF,0x01D0,0x0049},
436  {0x01CF,0x01D0,0x0049}, {0x01D1,0x01D2,0x004F},
437  {0x01D1,0x01D2,0x004F}, {0x01D3,0x01D4,0x0055},
438  {0x01D3,0x01D4,0x0055}, {0x01D5,0x01D6,0x0055},
439  {0x01D5,0x01D6,0x0055}, {0x01D7,0x01D8,0x0055},
440  {0x01D7,0x01D8,0x0055}, {0x01D9,0x01DA,0x0055},
441  {0x01D9,0x01DA,0x0055}, {0x01DB,0x01DC,0x0055},
442  {0x01DB,0x01DC,0x0055}, {0x018E,0x01DD,0x018E},
443  {0x01DE,0x01DF,0x0041}, {0x01DE,0x01DF,0x0041},
444  {0x01E0,0x01E1,0x0041}, {0x01E0,0x01E1,0x0041},
445  {0x01E2,0x01E3,0x00C6}, {0x01E2,0x01E3,0x00C6},
446  {0x01E4,0x01E5,0x01E4}, {0x01E4,0x01E5,0x01E4},
447  {0x01E6,0x01E7,0x0047}, {0x01E6,0x01E7,0x0047},
448  {0x01E8,0x01E9,0x004B}, {0x01E8,0x01E9,0x004B},
449  {0x01EA,0x01EB,0x004F}, {0x01EA,0x01EB,0x004F},
450  {0x01EC,0x01ED,0x004F}, {0x01EC,0x01ED,0x004F},
451  {0x01EE,0x01EF,0x01B7}, {0x01EE,0x01EF,0x01B7},
452  {0x01F0,0x01F0,0x004A}, {0x01F1,0x01F3,0x01F1},
453  {0x01F1,0x01F3,0x01F1}, {0x01F1,0x01F3,0x01F1},
454  {0x01F4,0x01F5,0x0047}, {0x01F4,0x01F5,0x0047},
455  {0x01F6,0x0195,0x01F6}, {0x01F7,0x01BF,0x01F7},
456  {0x01F8,0x01F9,0x004E}, {0x01F8,0x01F9,0x004E},
457  {0x01FA,0x01FB,0x0041}, {0x01FA,0x01FB,0x0041},
458  {0x01FC,0x01FD,0x00C6}, {0x01FC,0x01FD,0x00C6},
459  {0x01FE,0x01FF,0x00D8}, {0x01FE,0x01FF,0x00D8}
460 };
461 
462 static MY_UNICASE_CHARACTER plane02[]={
463  {0x0200,0x0201,0x0041}, {0x0200,0x0201,0x0041},
464  {0x0202,0x0203,0x0041}, {0x0202,0x0203,0x0041},
465  {0x0204,0x0205,0x0045}, {0x0204,0x0205,0x0045},
466  {0x0206,0x0207,0x0045}, {0x0206,0x0207,0x0045},
467  {0x0208,0x0209,0x0049}, {0x0208,0x0209,0x0049},
468  {0x020A,0x020B,0x0049}, {0x020A,0x020B,0x0049},
469  {0x020C,0x020D,0x004F}, {0x020C,0x020D,0x004F},
470  {0x020E,0x020F,0x004F}, {0x020E,0x020F,0x004F},
471  {0x0210,0x0211,0x0052}, {0x0210,0x0211,0x0052},
472  {0x0212,0x0213,0x0052}, {0x0212,0x0213,0x0052},
473  {0x0214,0x0215,0x0055}, {0x0214,0x0215,0x0055},
474  {0x0216,0x0217,0x0055}, {0x0216,0x0217,0x0055},
475  {0x0218,0x0219,0x0053}, {0x0218,0x0219,0x0053},
476  {0x021A,0x021B,0x0054}, {0x021A,0x021B,0x0054},
477  {0x021C,0x021D,0x021C}, {0x021C,0x021D,0x021C},
478  {0x021E,0x021F,0x0048}, {0x021E,0x021F,0x0048},
479  {0x0220,0x0220,0x0220}, {0x0221,0x0221,0x0221},
480  {0x0222,0x0223,0x0222}, {0x0222,0x0223,0x0222},
481  {0x0224,0x0225,0x0224}, {0x0224,0x0225,0x0224},
482  {0x0226,0x0227,0x0041}, {0x0226,0x0227,0x0041},
483  {0x0228,0x0229,0x0045}, {0x0228,0x0229,0x0045},
484  {0x022A,0x022B,0x004F}, {0x022A,0x022B,0x004F},
485  {0x022C,0x022D,0x004F}, {0x022C,0x022D,0x004F},
486  {0x022E,0x022F,0x004F}, {0x022E,0x022F,0x004F},
487  {0x0230,0x0231,0x004F}, {0x0230,0x0231,0x004F},
488  {0x0232,0x0233,0x0059}, {0x0232,0x0233,0x0059},
489  {0x0234,0x0234,0x0234}, {0x0235,0x0235,0x0235},
490  {0x0236,0x0236,0x0236}, {0x0237,0x0237,0x0237},
491  {0x0238,0x0238,0x0238}, {0x0239,0x0239,0x0239},
492  {0x023A,0x023A,0x023A}, {0x023B,0x023B,0x023B},
493  {0x023C,0x023C,0x023C}, {0x023D,0x023D,0x023D},
494  {0x023E,0x023E,0x023E}, {0x023F,0x023F,0x023F},
495  {0x0240,0x0240,0x0240}, {0x0241,0x0241,0x0241},
496  {0x0242,0x0242,0x0242}, {0x0243,0x0243,0x0243},
497  {0x0244,0x0244,0x0244}, {0x0245,0x0245,0x0245},
498  {0x0246,0x0246,0x0246}, {0x0247,0x0247,0x0247},
499  {0x0248,0x0248,0x0248}, {0x0249,0x0249,0x0249},
500  {0x024A,0x024A,0x024A}, {0x024B,0x024B,0x024B},
501  {0x024C,0x024C,0x024C}, {0x024D,0x024D,0x024D},
502  {0x024E,0x024E,0x024E}, {0x024F,0x024F,0x024F},
503  {0x0250,0x0250,0x0250}, {0x0251,0x0251,0x0251},
504  {0x0252,0x0252,0x0252}, {0x0181,0x0253,0x0181},
505  {0x0186,0x0254,0x0186}, {0x0255,0x0255,0x0255},
506  {0x0189,0x0256,0x0189}, {0x018A,0x0257,0x018A},
507  {0x0258,0x0258,0x0258}, {0x018F,0x0259,0x018F},
508  {0x025A,0x025A,0x025A}, {0x0190,0x025B,0x0190},
509  {0x025C,0x025C,0x025C}, {0x025D,0x025D,0x025D},
510  {0x025E,0x025E,0x025E}, {0x025F,0x025F,0x025F},
511  {0x0193,0x0260,0x0193}, {0x0261,0x0261,0x0261},
512  {0x0262,0x0262,0x0262}, {0x0194,0x0263,0x0194},
513  {0x0264,0x0264,0x0264}, {0x0265,0x0265,0x0265},
514  {0x0266,0x0266,0x0266}, {0x0267,0x0267,0x0267},
515  {0x0197,0x0268,0x0197}, {0x0196,0x0269,0x0196},
516  {0x026A,0x026A,0x026A}, {0x026B,0x026B,0x026B},
517  {0x026C,0x026C,0x026C}, {0x026D,0x026D,0x026D},
518  {0x026E,0x026E,0x026E}, {0x019C,0x026F,0x019C},
519  {0x0270,0x0270,0x0270}, {0x0271,0x0271,0x0271},
520  {0x019D,0x0272,0x019D}, {0x0273,0x0273,0x0273},
521  {0x0274,0x0274,0x0274}, {0x019F,0x0275,0x019F},
522  {0x0276,0x0276,0x0276}, {0x0277,0x0277,0x0277},
523  {0x0278,0x0278,0x0278}, {0x0279,0x0279,0x0279},
524  {0x027A,0x027A,0x027A}, {0x027B,0x027B,0x027B},
525  {0x027C,0x027C,0x027C}, {0x027D,0x027D,0x027D},
526  {0x027E,0x027E,0x027E}, {0x027F,0x027F,0x027F},
527  {0x01A6,0x0280,0x01A6}, {0x0281,0x0281,0x0281},
528  {0x0282,0x0282,0x0282}, {0x01A9,0x0283,0x01A9},
529  {0x0284,0x0284,0x0284}, {0x0285,0x0285,0x0285},
530  {0x0286,0x0286,0x0286}, {0x0287,0x0287,0x0287},
531  {0x01AE,0x0288,0x01AE}, {0x0289,0x0289,0x0289},
532  {0x01B1,0x028A,0x01B1}, {0x01B2,0x028B,0x01B2},
533  {0x028C,0x028C,0x028C}, {0x028D,0x028D,0x028D},
534  {0x028E,0x028E,0x028E}, {0x028F,0x028F,0x028F},
535  {0x0290,0x0290,0x0290}, {0x0291,0x0291,0x0291},
536  {0x01B7,0x0292,0x01B7}, {0x0293,0x0293,0x0293},
537  {0x0294,0x0294,0x0294}, {0x0295,0x0295,0x0295},
538  {0x0296,0x0296,0x0296}, {0x0297,0x0297,0x0297},
539  {0x0298,0x0298,0x0298}, {0x0299,0x0299,0x0299},
540  {0x029A,0x029A,0x029A}, {0x029B,0x029B,0x029B},
541  {0x029C,0x029C,0x029C}, {0x029D,0x029D,0x029D},
542  {0x029E,0x029E,0x029E}, {0x029F,0x029F,0x029F},
543  {0x02A0,0x02A0,0x02A0}, {0x02A1,0x02A1,0x02A1},
544  {0x02A2,0x02A2,0x02A2}, {0x02A3,0x02A3,0x02A3},
545  {0x02A4,0x02A4,0x02A4}, {0x02A5,0x02A5,0x02A5},
546  {0x02A6,0x02A6,0x02A6}, {0x02A7,0x02A7,0x02A7},
547  {0x02A8,0x02A8,0x02A8}, {0x02A9,0x02A9,0x02A9},
548  {0x02AA,0x02AA,0x02AA}, {0x02AB,0x02AB,0x02AB},
549  {0x02AC,0x02AC,0x02AC}, {0x02AD,0x02AD,0x02AD},
550  {0x02AE,0x02AE,0x02AE}, {0x02AF,0x02AF,0x02AF},
551  {0x02B0,0x02B0,0x02B0}, {0x02B1,0x02B1,0x02B1},
552  {0x02B2,0x02B2,0x02B2}, {0x02B3,0x02B3,0x02B3},
553  {0x02B4,0x02B4,0x02B4}, {0x02B5,0x02B5,0x02B5},
554  {0x02B6,0x02B6,0x02B6}, {0x02B7,0x02B7,0x02B7},
555  {0x02B8,0x02B8,0x02B8}, {0x02B9,0x02B9,0x02B9},
556  {0x02BA,0x02BA,0x02BA}, {0x02BB,0x02BB,0x02BB},
557  {0x02BC,0x02BC,0x02BC}, {0x02BD,0x02BD,0x02BD},
558  {0x02BE,0x02BE,0x02BE}, {0x02BF,0x02BF,0x02BF},
559  {0x02C0,0x02C0,0x02C0}, {0x02C1,0x02C1,0x02C1},
560  {0x02C2,0x02C2,0x02C2}, {0x02C3,0x02C3,0x02C3},
561  {0x02C4,0x02C4,0x02C4}, {0x02C5,0x02C5,0x02C5},
562  {0x02C6,0x02C6,0x02C6}, {0x02C7,0x02C7,0x02C7},
563  {0x02C8,0x02C8,0x02C8}, {0x02C9,0x02C9,0x02C9},
564  {0x02CA,0x02CA,0x02CA}, {0x02CB,0x02CB,0x02CB},
565  {0x02CC,0x02CC,0x02CC}, {0x02CD,0x02CD,0x02CD},
566  {0x02CE,0x02CE,0x02CE}, {0x02CF,0x02CF,0x02CF},
567  {0x02D0,0x02D0,0x02D0}, {0x02D1,0x02D1,0x02D1},
568  {0x02D2,0x02D2,0x02D2}, {0x02D3,0x02D3,0x02D3},
569  {0x02D4,0x02D4,0x02D4}, {0x02D5,0x02D5,0x02D5},
570  {0x02D6,0x02D6,0x02D6}, {0x02D7,0x02D7,0x02D7},
571  {0x02D8,0x02D8,0x02D8}, {0x02D9,0x02D9,0x02D9},
572  {0x02DA,0x02DA,0x02DA}, {0x02DB,0x02DB,0x02DB},
573  {0x02DC,0x02DC,0x02DC}, {0x02DD,0x02DD,0x02DD},
574  {0x02DE,0x02DE,0x02DE}, {0x02DF,0x02DF,0x02DF},
575  {0x02E0,0x02E0,0x02E0}, {0x02E1,0x02E1,0x02E1},
576  {0x02E2,0x02E2,0x02E2}, {0x02E3,0x02E3,0x02E3},
577  {0x02E4,0x02E4,0x02E4}, {0x02E5,0x02E5,0x02E5},
578  {0x02E6,0x02E6,0x02E6}, {0x02E7,0x02E7,0x02E7},
579  {0x02E8,0x02E8,0x02E8}, {0x02E9,0x02E9,0x02E9},
580  {0x02EA,0x02EA,0x02EA}, {0x02EB,0x02EB,0x02EB},
581  {0x02EC,0x02EC,0x02EC}, {0x02ED,0x02ED,0x02ED},
582  {0x02EE,0x02EE,0x02EE}, {0x02EF,0x02EF,0x02EF},
583  {0x02F0,0x02F0,0x02F0}, {0x02F1,0x02F1,0x02F1},
584  {0x02F2,0x02F2,0x02F2}, {0x02F3,0x02F3,0x02F3},
585  {0x02F4,0x02F4,0x02F4}, {0x02F5,0x02F5,0x02F5},
586  {0x02F6,0x02F6,0x02F6}, {0x02F7,0x02F7,0x02F7},
587  {0x02F8,0x02F8,0x02F8}, {0x02F9,0x02F9,0x02F9},
588  {0x02FA,0x02FA,0x02FA}, {0x02FB,0x02FB,0x02FB},
589  {0x02FC,0x02FC,0x02FC}, {0x02FD,0x02FD,0x02FD},
590  {0x02FE,0x02FE,0x02FE}, {0x02FF,0x02FF,0x02FF}
591 };
592 
593 static MY_UNICASE_CHARACTER plane03[]={
594  {0x0300,0x0300,0x0300}, {0x0301,0x0301,0x0301},
595  {0x0302,0x0302,0x0302}, {0x0303,0x0303,0x0303},
596  {0x0304,0x0304,0x0304}, {0x0305,0x0305,0x0305},
597  {0x0306,0x0306,0x0306}, {0x0307,0x0307,0x0307},
598  {0x0308,0x0308,0x0308}, {0x0309,0x0309,0x0309},
599  {0x030A,0x030A,0x030A}, {0x030B,0x030B,0x030B},
600  {0x030C,0x030C,0x030C}, {0x030D,0x030D,0x030D},
601  {0x030E,0x030E,0x030E}, {0x030F,0x030F,0x030F},
602  {0x0310,0x0310,0x0310}, {0x0311,0x0311,0x0311},
603  {0x0312,0x0312,0x0312}, {0x0313,0x0313,0x0313},
604  {0x0314,0x0314,0x0314}, {0x0315,0x0315,0x0315},
605  {0x0316,0x0316,0x0316}, {0x0317,0x0317,0x0317},
606  {0x0318,0x0318,0x0318}, {0x0319,0x0319,0x0319},
607  {0x031A,0x031A,0x031A}, {0x031B,0x031B,0x031B},
608  {0x031C,0x031C,0x031C}, {0x031D,0x031D,0x031D},
609  {0x031E,0x031E,0x031E}, {0x031F,0x031F,0x031F},
610  {0x0320,0x0320,0x0320}, {0x0321,0x0321,0x0321},
611  {0x0322,0x0322,0x0322}, {0x0323,0x0323,0x0323},
612  {0x0324,0x0324,0x0324}, {0x0325,0x0325,0x0325},
613  {0x0326,0x0326,0x0326}, {0x0327,0x0327,0x0327},
614  {0x0328,0x0328,0x0328}, {0x0329,0x0329,0x0329},
615  {0x032A,0x032A,0x032A}, {0x032B,0x032B,0x032B},
616  {0x032C,0x032C,0x032C}, {0x032D,0x032D,0x032D},
617  {0x032E,0x032E,0x032E}, {0x032F,0x032F,0x032F},
618  {0x0330,0x0330,0x0330}, {0x0331,0x0331,0x0331},
619  {0x0332,0x0332,0x0332}, {0x0333,0x0333,0x0333},
620  {0x0334,0x0334,0x0334}, {0x0335,0x0335,0x0335},
621  {0x0336,0x0336,0x0336}, {0x0337,0x0337,0x0337},
622  {0x0338,0x0338,0x0338}, {0x0339,0x0339,0x0339},
623  {0x033A,0x033A,0x033A}, {0x033B,0x033B,0x033B},
624  {0x033C,0x033C,0x033C}, {0x033D,0x033D,0x033D},
625  {0x033E,0x033E,0x033E}, {0x033F,0x033F,0x033F},
626  {0x0340,0x0340,0x0340}, {0x0341,0x0341,0x0341},
627  {0x0342,0x0342,0x0342}, {0x0343,0x0343,0x0343},
628  {0x0344,0x0344,0x0344}, {0x0399,0x0345,0x0399},
629  {0x0346,0x0346,0x0346}, {0x0347,0x0347,0x0347},
630  {0x0348,0x0348,0x0348}, {0x0349,0x0349,0x0349},
631  {0x034A,0x034A,0x034A}, {0x034B,0x034B,0x034B},
632  {0x034C,0x034C,0x034C}, {0x034D,0x034D,0x034D},
633  {0x034E,0x034E,0x034E}, {0x034F,0x034F,0x034F},
634  {0x0350,0x0350,0x0350}, {0x0351,0x0351,0x0351},
635  {0x0352,0x0352,0x0352}, {0x0353,0x0353,0x0353},
636  {0x0354,0x0354,0x0354}, {0x0355,0x0355,0x0355},
637  {0x0356,0x0356,0x0356}, {0x0357,0x0357,0x0357},
638  {0x0358,0x0358,0x0358}, {0x0359,0x0359,0x0359},
639  {0x035A,0x035A,0x035A}, {0x035B,0x035B,0x035B},
640  {0x035C,0x035C,0x035C}, {0x035D,0x035D,0x035D},
641  {0x035E,0x035E,0x035E}, {0x035F,0x035F,0x035F},
642  {0x0360,0x0360,0x0360}, {0x0361,0x0361,0x0361},
643  {0x0362,0x0362,0x0362}, {0x0363,0x0363,0x0363},
644  {0x0364,0x0364,0x0364}, {0x0365,0x0365,0x0365},
645  {0x0366,0x0366,0x0366}, {0x0367,0x0367,0x0367},
646  {0x0368,0x0368,0x0368}, {0x0369,0x0369,0x0369},
647  {0x036A,0x036A,0x036A}, {0x036B,0x036B,0x036B},
648  {0x036C,0x036C,0x036C}, {0x036D,0x036D,0x036D},
649  {0x036E,0x036E,0x036E}, {0x036F,0x036F,0x036F},
650  {0x0370,0x0370,0x0370}, {0x0371,0x0371,0x0371},
651  {0x0372,0x0372,0x0372}, {0x0373,0x0373,0x0373},
652  {0x0374,0x0374,0x0374}, {0x0375,0x0375,0x0375},
653  {0x0376,0x0376,0x0376}, {0x0377,0x0377,0x0377},
654  {0x0378,0x0378,0x0378}, {0x0379,0x0379,0x0379},
655  {0x037A,0x037A,0x037A}, {0x037B,0x037B,0x037B},
656  {0x037C,0x037C,0x037C}, {0x037D,0x037D,0x037D},
657  {0x037E,0x037E,0x037E}, {0x037F,0x037F,0x037F},
658  {0x0380,0x0380,0x0380}, {0x0381,0x0381,0x0381},
659  {0x0382,0x0382,0x0382}, {0x0383,0x0383,0x0383},
660  {0x0384,0x0384,0x0384}, {0x0385,0x0385,0x0385},
661  {0x0386,0x03AC,0x0391}, {0x0387,0x0387,0x0387},
662  {0x0388,0x03AD,0x0395}, {0x0389,0x03AE,0x0397},
663  {0x038A,0x03AF,0x0399}, {0x038B,0x038B,0x038B},
664  {0x038C,0x03CC,0x039F}, {0x038D,0x038D,0x038D},
665  {0x038E,0x03CD,0x03A5}, {0x038F,0x03CE,0x03A9},
666  {0x0390,0x0390,0x0399}, {0x0391,0x03B1,0x0391},
667  {0x0392,0x03B2,0x0392}, {0x0393,0x03B3,0x0393},
668  {0x0394,0x03B4,0x0394}, {0x0395,0x03B5,0x0395},
669  {0x0396,0x03B6,0x0396}, {0x0397,0x03B7,0x0397},
670  {0x0398,0x03B8,0x0398}, {0x0399,0x03B9,0x0399},
671  {0x039A,0x03BA,0x039A}, {0x039B,0x03BB,0x039B},
672  {0x039C,0x03BC,0x039C}, {0x039D,0x03BD,0x039D},
673  {0x039E,0x03BE,0x039E}, {0x039F,0x03BF,0x039F},
674  {0x03A0,0x03C0,0x03A0}, {0x03A1,0x03C1,0x03A1},
675  {0x03A2,0x03A2,0x03A2}, {0x03A3,0x03C3,0x03A3},
676  {0x03A4,0x03C4,0x03A4}, {0x03A5,0x03C5,0x03A5},
677  {0x03A6,0x03C6,0x03A6}, {0x03A7,0x03C7,0x03A7},
678  {0x03A8,0x03C8,0x03A8}, {0x03A9,0x03C9,0x03A9},
679  {0x03AA,0x03CA,0x0399}, {0x03AB,0x03CB,0x03A5},
680  {0x0386,0x03AC,0x0391}, {0x0388,0x03AD,0x0395},
681  {0x0389,0x03AE,0x0397}, {0x038A,0x03AF,0x0399},
682  {0x03B0,0x03B0,0x03A5}, {0x0391,0x03B1,0x0391},
683  {0x0392,0x03B2,0x0392}, {0x0393,0x03B3,0x0393},
684  {0x0394,0x03B4,0x0394}, {0x0395,0x03B5,0x0395},
685  {0x0396,0x03B6,0x0396}, {0x0397,0x03B7,0x0397},
686  {0x0398,0x03B8,0x0398}, {0x0399,0x03B9,0x0399},
687  {0x039A,0x03BA,0x039A}, {0x039B,0x03BB,0x039B},
688  {0x039C,0x03BC,0x039C}, {0x039D,0x03BD,0x039D},
689  {0x039E,0x03BE,0x039E}, {0x039F,0x03BF,0x039F},
690  {0x03A0,0x03C0,0x03A0}, {0x03A1,0x03C1,0x03A1},
691  {0x03A3,0x03C2,0x03A3}, {0x03A3,0x03C3,0x03A3},
692  {0x03A4,0x03C4,0x03A4}, {0x03A5,0x03C5,0x03A5},
693  {0x03A6,0x03C6,0x03A6}, {0x03A7,0x03C7,0x03A7},
694  {0x03A8,0x03C8,0x03A8}, {0x03A9,0x03C9,0x03A9},
695  {0x03AA,0x03CA,0x0399}, {0x03AB,0x03CB,0x03A5},
696  {0x038C,0x03CC,0x039F}, {0x038E,0x03CD,0x03A5},
697  {0x038F,0x03CE,0x03A9}, {0x03CF,0x03CF,0x03CF},
698  {0x0392,0x03D0,0x0392}, {0x0398,0x03D1,0x0398},
699  {0x03D2,0x03D2,0x03D2}, {0x03D3,0x03D3,0x03D2},
700  {0x03D4,0x03D4,0x03D2}, {0x03A6,0x03D5,0x03A6},
701  {0x03A0,0x03D6,0x03A0}, {0x03D7,0x03D7,0x03D7},
702  {0x03D8,0x03D8,0x03D8}, {0x03D9,0x03D9,0x03D9},
703  {0x03DA,0x03DB,0x03DA}, {0x03DA,0x03DB,0x03DA},
704  {0x03DC,0x03DD,0x03DC}, {0x03DC,0x03DD,0x03DC},
705  {0x03DE,0x03DF,0x03DE}, {0x03DE,0x03DF,0x03DE},
706  {0x03E0,0x03E1,0x03E0}, {0x03E0,0x03E1,0x03E0},
707  {0x03E2,0x03E3,0x03E2}, {0x03E2,0x03E3,0x03E2},
708  {0x03E4,0x03E5,0x03E4}, {0x03E4,0x03E5,0x03E4},
709  {0x03E6,0x03E7,0x03E6}, {0x03E6,0x03E7,0x03E6},
710  {0x03E8,0x03E9,0x03E8}, {0x03E8,0x03E9,0x03E8},
711  {0x03EA,0x03EB,0x03EA}, {0x03EA,0x03EB,0x03EA},
712  {0x03EC,0x03ED,0x03EC}, {0x03EC,0x03ED,0x03EC},
713  {0x03EE,0x03EF,0x03EE}, {0x03EE,0x03EF,0x03EE},
714  {0x039A,0x03F0,0x039A}, {0x03A1,0x03F1,0x03A1},
715  {0x03A3,0x03F2,0x03A3}, {0x03F3,0x03F3,0x03F3},
716  {0x03F4,0x03F4,0x03F4}, {0x03F5,0x03F5,0x03F5},
717  {0x03F6,0x03F6,0x03F6}, {0x03F7,0x03F7,0x03F7},
718  {0x03F8,0x03F8,0x03F8}, {0x03F9,0x03F9,0x03F9},
719  {0x03FA,0x03FA,0x03FA}, {0x03FB,0x03FB,0x03FB},
720  {0x03FC,0x03FC,0x03FC}, {0x03FD,0x03FD,0x03FD},
721  {0x03FE,0x03FE,0x03FE}, {0x03FF,0x03FF,0x03FF}
722 };
723 
724 static MY_UNICASE_CHARACTER plane04[]={
725  {0x0400,0x0450,0x0415}, {0x0401,0x0451,0x0415},
726  {0x0402,0x0452,0x0402}, {0x0403,0x0453,0x0413},
727  {0x0404,0x0454,0x0404}, {0x0405,0x0455,0x0405},
728  {0x0406,0x0456,0x0406}, {0x0407,0x0457,0x0406},
729  {0x0408,0x0458,0x0408}, {0x0409,0x0459,0x0409},
730  {0x040A,0x045A,0x040A}, {0x040B,0x045B,0x040B},
731  {0x040C,0x045C,0x041A}, {0x040D,0x045D,0x0418},
732  {0x040E,0x045E,0x0423}, {0x040F,0x045F,0x040F},
733  {0x0410,0x0430,0x0410}, {0x0411,0x0431,0x0411},
734  {0x0412,0x0432,0x0412}, {0x0413,0x0433,0x0413},
735  {0x0414,0x0434,0x0414}, {0x0415,0x0435,0x0415},
736  {0x0416,0x0436,0x0416}, {0x0417,0x0437,0x0417},
737  {0x0418,0x0438,0x0418}, {0x0419,0x0439,0x0419},
738  {0x041A,0x043A,0x041A}, {0x041B,0x043B,0x041B},
739  {0x041C,0x043C,0x041C}, {0x041D,0x043D,0x041D},
740  {0x041E,0x043E,0x041E}, {0x041F,0x043F,0x041F},
741  {0x0420,0x0440,0x0420}, {0x0421,0x0441,0x0421},
742  {0x0422,0x0442,0x0422}, {0x0423,0x0443,0x0423},
743  {0x0424,0x0444,0x0424}, {0x0425,0x0445,0x0425},
744  {0x0426,0x0446,0x0426}, {0x0427,0x0447,0x0427},
745  {0x0428,0x0448,0x0428}, {0x0429,0x0449,0x0429},
746  {0x042A,0x044A,0x042A}, {0x042B,0x044B,0x042B},
747  {0x042C,0x044C,0x042C}, {0x042D,0x044D,0x042D},
748  {0x042E,0x044E,0x042E}, {0x042F,0x044F,0x042F},
749  {0x0410,0x0430,0x0410}, {0x0411,0x0431,0x0411},
750  {0x0412,0x0432,0x0412}, {0x0413,0x0433,0x0413},
751  {0x0414,0x0434,0x0414}, {0x0415,0x0435,0x0415},
752  {0x0416,0x0436,0x0416}, {0x0417,0x0437,0x0417},
753  {0x0418,0x0438,0x0418}, {0x0419,0x0439,0x0419},
754  {0x041A,0x043A,0x041A}, {0x041B,0x043B,0x041B},
755  {0x041C,0x043C,0x041C}, {0x041D,0x043D,0x041D},
756  {0x041E,0x043E,0x041E}, {0x041F,0x043F,0x041F},
757  {0x0420,0x0440,0x0420}, {0x0421,0x0441,0x0421},
758  {0x0422,0x0442,0x0422}, {0x0423,0x0443,0x0423},
759  {0x0424,0x0444,0x0424}, {0x0425,0x0445,0x0425},
760  {0x0426,0x0446,0x0426}, {0x0427,0x0447,0x0427},
761  {0x0428,0x0448,0x0428}, {0x0429,0x0449,0x0429},
762  {0x042A,0x044A,0x042A}, {0x042B,0x044B,0x042B},
763  {0x042C,0x044C,0x042C}, {0x042D,0x044D,0x042D},
764  {0x042E,0x044E,0x042E}, {0x042F,0x044F,0x042F},
765  {0x0400,0x0450,0x0415}, {0x0401,0x0451,0x0415},
766  {0x0402,0x0452,0x0402}, {0x0403,0x0453,0x0413},
767  {0x0404,0x0454,0x0404}, {0x0405,0x0455,0x0405},
768  {0x0406,0x0456,0x0406}, {0x0407,0x0457,0x0406},
769  {0x0408,0x0458,0x0408}, {0x0409,0x0459,0x0409},
770  {0x040A,0x045A,0x040A}, {0x040B,0x045B,0x040B},
771  {0x040C,0x045C,0x041A}, {0x040D,0x045D,0x0418},
772  {0x040E,0x045E,0x0423}, {0x040F,0x045F,0x040F},
773  {0x0460,0x0461,0x0460}, {0x0460,0x0461,0x0460},
774  {0x0462,0x0463,0x0462}, {0x0462,0x0463,0x0462},
775  {0x0464,0x0465,0x0464}, {0x0464,0x0465,0x0464},
776  {0x0466,0x0467,0x0466}, {0x0466,0x0467,0x0466},
777  {0x0468,0x0469,0x0468}, {0x0468,0x0469,0x0468},
778  {0x046A,0x046B,0x046A}, {0x046A,0x046B,0x046A},
779  {0x046C,0x046D,0x046C}, {0x046C,0x046D,0x046C},
780  {0x046E,0x046F,0x046E}, {0x046E,0x046F,0x046E},
781  {0x0470,0x0471,0x0470}, {0x0470,0x0471,0x0470},
782  {0x0472,0x0473,0x0472}, {0x0472,0x0473,0x0472},
783  {0x0474,0x0475,0x0474}, {0x0474,0x0475,0x0474},
784  {0x0476,0x0477,0x0474}, {0x0476,0x0477,0x0474},
785  {0x0478,0x0479,0x0478}, {0x0478,0x0479,0x0478},
786  {0x047A,0x047B,0x047A}, {0x047A,0x047B,0x047A},
787  {0x047C,0x047D,0x047C}, {0x047C,0x047D,0x047C},
788  {0x047E,0x047F,0x047E}, {0x047E,0x047F,0x047E},
789  {0x0480,0x0481,0x0480}, {0x0480,0x0481,0x0480},
790  {0x0482,0x0482,0x0482}, {0x0483,0x0483,0x0483},
791  {0x0484,0x0484,0x0484}, {0x0485,0x0485,0x0485},
792  {0x0486,0x0486,0x0486}, {0x0487,0x0487,0x0487},
793  {0x0488,0x0488,0x0488}, {0x0489,0x0489,0x0489},
794  {0x048A,0x048A,0x048A}, {0x048B,0x048B,0x048B},
795  {0x048C,0x048D,0x048C}, {0x048C,0x048D,0x048C},
796  {0x048E,0x048F,0x048E}, {0x048E,0x048F,0x048E},
797  {0x0490,0x0491,0x0490}, {0x0490,0x0491,0x0490},
798  {0x0492,0x0493,0x0492}, {0x0492,0x0493,0x0492},
799  {0x0494,0x0495,0x0494}, {0x0494,0x0495,0x0494},
800  {0x0496,0x0497,0x0496}, {0x0496,0x0497,0x0496},
801  {0x0498,0x0499,0x0498}, {0x0498,0x0499,0x0498},
802  {0x049A,0x049B,0x049A}, {0x049A,0x049B,0x049A},
803  {0x049C,0x049D,0x049C}, {0x049C,0x049D,0x049C},
804  {0x049E,0x049F,0x049E}, {0x049E,0x049F,0x049E},
805  {0x04A0,0x04A1,0x04A0}, {0x04A0,0x04A1,0x04A0},
806  {0x04A2,0x04A3,0x04A2}, {0x04A2,0x04A3,0x04A2},
807  {0x04A4,0x04A5,0x04A4}, {0x04A4,0x04A5,0x04A4},
808  {0x04A6,0x04A7,0x04A6}, {0x04A6,0x04A7,0x04A6},
809  {0x04A8,0x04A9,0x04A8}, {0x04A8,0x04A9,0x04A8},
810  {0x04AA,0x04AB,0x04AA}, {0x04AA,0x04AB,0x04AA},
811  {0x04AC,0x04AD,0x04AC}, {0x04AC,0x04AD,0x04AC},
812  {0x04AE,0x04AF,0x04AE}, {0x04AE,0x04AF,0x04AE},
813  {0x04B0,0x04B1,0x04B0}, {0x04B0,0x04B1,0x04B0},
814  {0x04B2,0x04B3,0x04B2}, {0x04B2,0x04B3,0x04B2},
815  {0x04B4,0x04B5,0x04B4}, {0x04B4,0x04B5,0x04B4},
816  {0x04B6,0x04B7,0x04B6}, {0x04B6,0x04B7,0x04B6},
817  {0x04B8,0x04B9,0x04B8}, {0x04B8,0x04B9,0x04B8},
818  {0x04BA,0x04BB,0x04BA}, {0x04BA,0x04BB,0x04BA},
819  {0x04BC,0x04BD,0x04BC}, {0x04BC,0x04BD,0x04BC},
820  {0x04BE,0x04BF,0x04BE}, {0x04BE,0x04BF,0x04BE},
821  {0x04C0,0x04C0,0x04C0}, {0x04C1,0x04C2,0x0416},
822  {0x04C1,0x04C2,0x0416}, {0x04C3,0x04C4,0x04C3},
823  {0x04C3,0x04C4,0x04C3}, {0x04C5,0x04C5,0x04C5},
824  {0x04C6,0x04C6,0x04C6}, {0x04C7,0x04C8,0x04C7},
825  {0x04C7,0x04C8,0x04C7}, {0x04C9,0x04C9,0x04C9},
826  {0x04CA,0x04CA,0x04CA}, {0x04CB,0x04CC,0x04CB},
827  {0x04CB,0x04CC,0x04CB}, {0x04CD,0x04CD,0x04CD},
828  {0x04CE,0x04CE,0x04CE}, {0x04CF,0x04CF,0x04CF},
829  {0x04D0,0x04D1,0x0410}, {0x04D0,0x04D1,0x0410},
830  {0x04D2,0x04D3,0x0410}, {0x04D2,0x04D3,0x0410},
831  {0x04D4,0x04D5,0x04D4}, {0x04D4,0x04D5,0x04D4},
832  {0x04D6,0x04D7,0x0415}, {0x04D6,0x04D7,0x0415},
833  {0x04D8,0x04D9,0x04D8}, {0x04D8,0x04D9,0x04D8},
834  {0x04DA,0x04DB,0x04D8}, {0x04DA,0x04DB,0x04D8},
835  {0x04DC,0x04DD,0x0416}, {0x04DC,0x04DD,0x0416},
836  {0x04DE,0x04DF,0x0417}, {0x04DE,0x04DF,0x0417},
837  {0x04E0,0x04E1,0x04E0}, {0x04E0,0x04E1,0x04E0},
838  {0x04E2,0x04E3,0x0418}, {0x04E2,0x04E3,0x0418},
839  {0x04E4,0x04E5,0x0418}, {0x04E4,0x04E5,0x0418},
840  {0x04E6,0x04E7,0x041E}, {0x04E6,0x04E7,0x041E},
841  {0x04E8,0x04E9,0x04E8}, {0x04E8,0x04E9,0x04E8},
842  {0x04EA,0x04EB,0x04E8}, {0x04EA,0x04EB,0x04E8},
843  {0x04EC,0x04ED,0x042D}, {0x04EC,0x04ED,0x042D},
844  {0x04EE,0x04EF,0x0423}, {0x04EE,0x04EF,0x0423},
845  {0x04F0,0x04F1,0x0423}, {0x04F0,0x04F1,0x0423},
846  {0x04F2,0x04F3,0x0423}, {0x04F2,0x04F3,0x0423},
847  {0x04F4,0x04F5,0x0427}, {0x04F4,0x04F5,0x0427},
848  {0x04F6,0x04F6,0x04F6}, {0x04F7,0x04F7,0x04F7},
849  {0x04F8,0x04F9,0x042B}, {0x04F8,0x04F9,0x042B},
850  {0x04FA,0x04FA,0x04FA}, {0x04FB,0x04FB,0x04FB},
851  {0x04FC,0x04FC,0x04FC}, {0x04FD,0x04FD,0x04FD},
852  {0x04FE,0x04FE,0x04FE}, {0x04FF,0x04FF,0x04FF}
853 };
854 
855 static MY_UNICASE_CHARACTER plane05[]={
856  {0x0500,0x0500,0x0500}, {0x0501,0x0501,0x0501},
857  {0x0502,0x0502,0x0502}, {0x0503,0x0503,0x0503},
858  {0x0504,0x0504,0x0504}, {0x0505,0x0505,0x0505},
859  {0x0506,0x0506,0x0506}, {0x0507,0x0507,0x0507},
860  {0x0508,0x0508,0x0508}, {0x0509,0x0509,0x0509},
861  {0x050A,0x050A,0x050A}, {0x050B,0x050B,0x050B},
862  {0x050C,0x050C,0x050C}, {0x050D,0x050D,0x050D},
863  {0x050E,0x050E,0x050E}, {0x050F,0x050F,0x050F},
864  {0x0510,0x0510,0x0510}, {0x0511,0x0511,0x0511},
865  {0x0512,0x0512,0x0512}, {0x0513,0x0513,0x0513},
866  {0x0514,0x0514,0x0514}, {0x0515,0x0515,0x0515},
867  {0x0516,0x0516,0x0516}, {0x0517,0x0517,0x0517},
868  {0x0518,0x0518,0x0518}, {0x0519,0x0519,0x0519},
869  {0x051A,0x051A,0x051A}, {0x051B,0x051B,0x051B},
870  {0x051C,0x051C,0x051C}, {0x051D,0x051D,0x051D},
871  {0x051E,0x051E,0x051E}, {0x051F,0x051F,0x051F},
872  {0x0520,0x0520,0x0520}, {0x0521,0x0521,0x0521},
873  {0x0522,0x0522,0x0522}, {0x0523,0x0523,0x0523},
874  {0x0524,0x0524,0x0524}, {0x0525,0x0525,0x0525},
875  {0x0526,0x0526,0x0526}, {0x0527,0x0527,0x0527},
876  {0x0528,0x0528,0x0528}, {0x0529,0x0529,0x0529},
877  {0x052A,0x052A,0x052A}, {0x052B,0x052B,0x052B},
878  {0x052C,0x052C,0x052C}, {0x052D,0x052D,0x052D},
879  {0x052E,0x052E,0x052E}, {0x052F,0x052F,0x052F},
880  {0x0530,0x0530,0x0530}, {0x0531,0x0561,0x0531},
881  {0x0532,0x0562,0x0532}, {0x0533,0x0563,0x0533},
882  {0x0534,0x0564,0x0534}, {0x0535,0x0565,0x0535},
883  {0x0536,0x0566,0x0536}, {0x0537,0x0567,0x0537},
884  {0x0538,0x0568,0x0538}, {0x0539,0x0569,0x0539},
885  {0x053A,0x056A,0x053A}, {0x053B,0x056B,0x053B},
886  {0x053C,0x056C,0x053C}, {0x053D,0x056D,0x053D},
887  {0x053E,0x056E,0x053E}, {0x053F,0x056F,0x053F},
888  {0x0540,0x0570,0x0540}, {0x0541,0x0571,0x0541},
889  {0x0542,0x0572,0x0542}, {0x0543,0x0573,0x0543},
890  {0x0544,0x0574,0x0544}, {0x0545,0x0575,0x0545},
891  {0x0546,0x0576,0x0546}, {0x0547,0x0577,0x0547},
892  {0x0548,0x0578,0x0548}, {0x0549,0x0579,0x0549},
893  {0x054A,0x057A,0x054A}, {0x054B,0x057B,0x054B},
894  {0x054C,0x057C,0x054C}, {0x054D,0x057D,0x054D},
895  {0x054E,0x057E,0x054E}, {0x054F,0x057F,0x054F},
896  {0x0550,0x0580,0x0550}, {0x0551,0x0581,0x0551},
897  {0x0552,0x0582,0x0552}, {0x0553,0x0583,0x0553},
898  {0x0554,0x0584,0x0554}, {0x0555,0x0585,0x0555},
899  {0x0556,0x0586,0x0556}, {0x0557,0x0557,0x0557},
900  {0x0558,0x0558,0x0558}, {0x0559,0x0559,0x0559},
901  {0x055A,0x055A,0x055A}, {0x055B,0x055B,0x055B},
902  {0x055C,0x055C,0x055C}, {0x055D,0x055D,0x055D},
903  {0x055E,0x055E,0x055E}, {0x055F,0x055F,0x055F},
904  {0x0560,0x0560,0x0560}, {0x0531,0x0561,0x0531},
905  {0x0532,0x0562,0x0532}, {0x0533,0x0563,0x0533},
906  {0x0534,0x0564,0x0534}, {0x0535,0x0565,0x0535},
907  {0x0536,0x0566,0x0536}, {0x0537,0x0567,0x0537},
908  {0x0538,0x0568,0x0538}, {0x0539,0x0569,0x0539},
909  {0x053A,0x056A,0x053A}, {0x053B,0x056B,0x053B},
910  {0x053C,0x056C,0x053C}, {0x053D,0x056D,0x053D},
911  {0x053E,0x056E,0x053E}, {0x053F,0x056F,0x053F},
912  {0x0540,0x0570,0x0540}, {0x0541,0x0571,0x0541},
913  {0x0542,0x0572,0x0542}, {0x0543,0x0573,0x0543},
914  {0x0544,0x0574,0x0544}, {0x0545,0x0575,0x0545},
915  {0x0546,0x0576,0x0546}, {0x0547,0x0577,0x0547},
916  {0x0548,0x0578,0x0548}, {0x0549,0x0579,0x0549},
917  {0x054A,0x057A,0x054A}, {0x054B,0x057B,0x054B},
918  {0x054C,0x057C,0x054C}, {0x054D,0x057D,0x054D},
919  {0x054E,0x057E,0x054E}, {0x054F,0x057F,0x054F},
920  {0x0550,0x0580,0x0550}, {0x0551,0x0581,0x0551},
921  {0x0552,0x0582,0x0552}, {0x0553,0x0583,0x0553},
922  {0x0554,0x0584,0x0554}, {0x0555,0x0585,0x0555},
923  {0x0556,0x0586,0x0556}, {0x0587,0x0587,0x0587},
924  {0x0588,0x0588,0x0588}, {0x0589,0x0589,0x0589},
925  {0x058A,0x058A,0x058A}, {0x058B,0x058B,0x058B},
926  {0x058C,0x058C,0x058C}, {0x058D,0x058D,0x058D},
927  {0x058E,0x058E,0x058E}, {0x058F,0x058F,0x058F},
928  {0x0590,0x0590,0x0590}, {0x0591,0x0591,0x0591},
929  {0x0592,0x0592,0x0592}, {0x0593,0x0593,0x0593},
930  {0x0594,0x0594,0x0594}, {0x0595,0x0595,0x0595},
931  {0x0596,0x0596,0x0596}, {0x0597,0x0597,0x0597},
932  {0x0598,0x0598,0x0598}, {0x0599,0x0599,0x0599},
933  {0x059A,0x059A,0x059A}, {0x059B,0x059B,0x059B},
934  {0x059C,0x059C,0x059C}, {0x059D,0x059D,0x059D},
935  {0x059E,0x059E,0x059E}, {0x059F,0x059F,0x059F},
936  {0x05A0,0x05A0,0x05A0}, {0x05A1,0x05A1,0x05A1},
937  {0x05A2,0x05A2,0x05A2}, {0x05A3,0x05A3,0x05A3},
938  {0x05A4,0x05A4,0x05A4}, {0x05A5,0x05A5,0x05A5},
939  {0x05A6,0x05A6,0x05A6}, {0x05A7,0x05A7,0x05A7},
940  {0x05A8,0x05A8,0x05A8}, {0x05A9,0x05A9,0x05A9},
941  {0x05AA,0x05AA,0x05AA}, {0x05AB,0x05AB,0x05AB},
942  {0x05AC,0x05AC,0x05AC}, {0x05AD,0x05AD,0x05AD},
943  {0x05AE,0x05AE,0x05AE}, {0x05AF,0x05AF,0x05AF},
944  {0x05B0,0x05B0,0x05B0}, {0x05B1,0x05B1,0x05B1},
945  {0x05B2,0x05B2,0x05B2}, {0x05B3,0x05B3,0x05B3},
946  {0x05B4,0x05B4,0x05B4}, {0x05B5,0x05B5,0x05B5},
947  {0x05B6,0x05B6,0x05B6}, {0x05B7,0x05B7,0x05B7},
948  {0x05B8,0x05B8,0x05B8}, {0x05B9,0x05B9,0x05B9},
949  {0x05BA,0x05BA,0x05BA}, {0x05BB,0x05BB,0x05BB},
950  {0x05BC,0x05BC,0x05BC}, {0x05BD,0x05BD,0x05BD},
951  {0x05BE,0x05BE,0x05BE}, {0x05BF,0x05BF,0x05BF},
952  {0x05C0,0x05C0,0x05C0}, {0x05C1,0x05C1,0x05C1},
953  {0x05C2,0x05C2,0x05C2}, {0x05C3,0x05C3,0x05C3},
954  {0x05C4,0x05C4,0x05C4}, {0x05C5,0x05C5,0x05C5},
955  {0x05C6,0x05C6,0x05C6}, {0x05C7,0x05C7,0x05C7},
956  {0x05C8,0x05C8,0x05C8}, {0x05C9,0x05C9,0x05C9},
957  {0x05CA,0x05CA,0x05CA}, {0x05CB,0x05CB,0x05CB},
958  {0x05CC,0x05CC,0x05CC}, {0x05CD,0x05CD,0x05CD},
959  {0x05CE,0x05CE,0x05CE}, {0x05CF,0x05CF,0x05CF},
960  {0x05D0,0x05D0,0x05D0}, {0x05D1,0x05D1,0x05D1},
961  {0x05D2,0x05D2,0x05D2}, {0x05D3,0x05D3,0x05D3},
962  {0x05D4,0x05D4,0x05D4}, {0x05D5,0x05D5,0x05D5},
963  {0x05D6,0x05D6,0x05D6}, {0x05D7,0x05D7,0x05D7},
964  {0x05D8,0x05D8,0x05D8}, {0x05D9,0x05D9,0x05D9},
965  {0x05DA,0x05DA,0x05DA}, {0x05DB,0x05DB,0x05DB},
966  {0x05DC,0x05DC,0x05DC}, {0x05DD,0x05DD,0x05DD},
967  {0x05DE,0x05DE,0x05DE}, {0x05DF,0x05DF,0x05DF},
968  {0x05E0,0x05E0,0x05E0}, {0x05E1,0x05E1,0x05E1},
969  {0x05E2,0x05E2,0x05E2}, {0x05E3,0x05E3,0x05E3},
970  {0x05E4,0x05E4,0x05E4}, {0x05E5,0x05E5,0x05E5},
971  {0x05E6,0x05E6,0x05E6}, {0x05E7,0x05E7,0x05E7},
972  {0x05E8,0x05E8,0x05E8}, {0x05E9,0x05E9,0x05E9},
973  {0x05EA,0x05EA,0x05EA}, {0x05EB,0x05EB,0x05EB},
974  {0x05EC,0x05EC,0x05EC}, {0x05ED,0x05ED,0x05ED},
975  {0x05EE,0x05EE,0x05EE}, {0x05EF,0x05EF,0x05EF},
976  {0x05F0,0x05F0,0x05F0}, {0x05F1,0x05F1,0x05F1},
977  {0x05F2,0x05F2,0x05F2}, {0x05F3,0x05F3,0x05F3},
978  {0x05F4,0x05F4,0x05F4}, {0x05F5,0x05F5,0x05F5},
979  {0x05F6,0x05F6,0x05F6}, {0x05F7,0x05F7,0x05F7},
980  {0x05F8,0x05F8,0x05F8}, {0x05F9,0x05F9,0x05F9},
981  {0x05FA,0x05FA,0x05FA}, {0x05FB,0x05FB,0x05FB},
982  {0x05FC,0x05FC,0x05FC}, {0x05FD,0x05FD,0x05FD},
983  {0x05FE,0x05FE,0x05FE}, {0x05FF,0x05FF,0x05FF}
984 };
985 
986 static MY_UNICASE_CHARACTER plane1E[]={
987  {0x1E00,0x1E01,0x0041}, {0x1E00,0x1E01,0x0041},
988  {0x1E02,0x1E03,0x0042}, {0x1E02,0x1E03,0x0042},
989  {0x1E04,0x1E05,0x0042}, {0x1E04,0x1E05,0x0042},
990  {0x1E06,0x1E07,0x0042}, {0x1E06,0x1E07,0x0042},
991  {0x1E08,0x1E09,0x0043}, {0x1E08,0x1E09,0x0043},
992  {0x1E0A,0x1E0B,0x0044}, {0x1E0A,0x1E0B,0x0044},
993  {0x1E0C,0x1E0D,0x0044}, {0x1E0C,0x1E0D,0x0044},
994  {0x1E0E,0x1E0F,0x0044}, {0x1E0E,0x1E0F,0x0044},
995  {0x1E10,0x1E11,0x0044}, {0x1E10,0x1E11,0x0044},
996  {0x1E12,0x1E13,0x0044}, {0x1E12,0x1E13,0x0044},
997  {0x1E14,0x1E15,0x0045}, {0x1E14,0x1E15,0x0045},
998  {0x1E16,0x1E17,0x0045}, {0x1E16,0x1E17,0x0045},
999  {0x1E18,0x1E19,0x0045}, {0x1E18,0x1E19,0x0045},
1000  {0x1E1A,0x1E1B,0x0045}, {0x1E1A,0x1E1B,0x0045},
1001  {0x1E1C,0x1E1D,0x0045}, {0x1E1C,0x1E1D,0x0045},
1002  {0x1E1E,0x1E1F,0x0046}, {0x1E1E,0x1E1F,0x0046},
1003  {0x1E20,0x1E21,0x0047}, {0x1E20,0x1E21,0x0047},
1004  {0x1E22,0x1E23,0x0048}, {0x1E22,0x1E23,0x0048},
1005  {0x1E24,0x1E25,0x0048}, {0x1E24,0x1E25,0x0048},
1006  {0x1E26,0x1E27,0x0048}, {0x1E26,0x1E27,0x0048},
1007  {0x1E28,0x1E29,0x0048}, {0x1E28,0x1E29,0x0048},
1008  {0x1E2A,0x1E2B,0x0048}, {0x1E2A,0x1E2B,0x0048},
1009  {0x1E2C,0x1E2D,0x0049}, {0x1E2C,0x1E2D,0x0049},
1010  {0x1E2E,0x1E2F,0x0049}, {0x1E2E,0x1E2F,0x0049},
1011  {0x1E30,0x1E31,0x004B}, {0x1E30,0x1E31,0x004B},
1012  {0x1E32,0x1E33,0x004B}, {0x1E32,0x1E33,0x004B},
1013  {0x1E34,0x1E35,0x004B}, {0x1E34,0x1E35,0x004B},
1014  {0x1E36,0x1E37,0x004C}, {0x1E36,0x1E37,0x004C},
1015  {0x1E38,0x1E39,0x004C}, {0x1E38,0x1E39,0x004C},
1016  {0x1E3A,0x1E3B,0x004C}, {0x1E3A,0x1E3B,0x004C},
1017  {0x1E3C,0x1E3D,0x004C}, {0x1E3C,0x1E3D,0x004C},
1018  {0x1E3E,0x1E3F,0x004D}, {0x1E3E,0x1E3F,0x004D},
1019  {0x1E40,0x1E41,0x004D}, {0x1E40,0x1E41,0x004D},
1020  {0x1E42,0x1E43,0x004D}, {0x1E42,0x1E43,0x004D},
1021  {0x1E44,0x1E45,0x004E}, {0x1E44,0x1E45,0x004E},
1022  {0x1E46,0x1E47,0x004E}, {0x1E46,0x1E47,0x004E},
1023  {0x1E48,0x1E49,0x004E}, {0x1E48,0x1E49,0x004E},
1024  {0x1E4A,0x1E4B,0x004E}, {0x1E4A,0x1E4B,0x004E},
1025  {0x1E4C,0x1E4D,0x004F}, {0x1E4C,0x1E4D,0x004F},
1026  {0x1E4E,0x1E4F,0x004F}, {0x1E4E,0x1E4F,0x004F},
1027  {0x1E50,0x1E51,0x004F}, {0x1E50,0x1E51,0x004F},
1028  {0x1E52,0x1E53,0x004F}, {0x1E52,0x1E53,0x004F},
1029  {0x1E54,0x1E55,0x0050}, {0x1E54,0x1E55,0x0050},
1030  {0x1E56,0x1E57,0x0050}, {0x1E56,0x1E57,0x0050},
1031  {0x1E58,0x1E59,0x0052}, {0x1E58,0x1E59,0x0052},
1032  {0x1E5A,0x1E5B,0x0052}, {0x1E5A,0x1E5B,0x0052},
1033  {0x1E5C,0x1E5D,0x0052}, {0x1E5C,0x1E5D,0x0052},
1034  {0x1E5E,0x1E5F,0x0052}, {0x1E5E,0x1E5F,0x0052},
1035  {0x1E60,0x1E61,0x0053}, {0x1E60,0x1E61,0x0053},
1036  {0x1E62,0x1E63,0x0053}, {0x1E62,0x1E63,0x0053},
1037  {0x1E64,0x1E65,0x0053}, {0x1E64,0x1E65,0x0053},
1038  {0x1E66,0x1E67,0x0053}, {0x1E66,0x1E67,0x0053},
1039  {0x1E68,0x1E69,0x0053}, {0x1E68,0x1E69,0x0053},
1040  {0x1E6A,0x1E6B,0x0054}, {0x1E6A,0x1E6B,0x0054},
1041  {0x1E6C,0x1E6D,0x0054}, {0x1E6C,0x1E6D,0x0054},
1042  {0x1E6E,0x1E6F,0x0054}, {0x1E6E,0x1E6F,0x0054},
1043  {0x1E70,0x1E71,0x0054}, {0x1E70,0x1E71,0x0054},
1044  {0x1E72,0x1E73,0x0055}, {0x1E72,0x1E73,0x0055},
1045  {0x1E74,0x1E75,0x0055}, {0x1E74,0x1E75,0x0055},
1046  {0x1E76,0x1E77,0x0055}, {0x1E76,0x1E77,0x0055},
1047  {0x1E78,0x1E79,0x0055}, {0x1E78,0x1E79,0x0055},
1048  {0x1E7A,0x1E7B,0x0055}, {0x1E7A,0x1E7B,0x0055},
1049  {0x1E7C,0x1E7D,0x0056}, {0x1E7C,0x1E7D,0x0056},
1050  {0x1E7E,0x1E7F,0x0056}, {0x1E7E,0x1E7F,0x0056},
1051  {0x1E80,0x1E81,0x0057}, {0x1E80,0x1E81,0x0057},
1052  {0x1E82,0x1E83,0x0057}, {0x1E82,0x1E83,0x0057},
1053  {0x1E84,0x1E85,0x0057}, {0x1E84,0x1E85,0x0057},
1054  {0x1E86,0x1E87,0x0057}, {0x1E86,0x1E87,0x0057},
1055  {0x1E88,0x1E89,0x0057}, {0x1E88,0x1E89,0x0057},
1056  {0x1E8A,0x1E8B,0x0058}, {0x1E8A,0x1E8B,0x0058},
1057  {0x1E8C,0x1E8D,0x0058}, {0x1E8C,0x1E8D,0x0058},
1058  {0x1E8E,0x1E8F,0x0059}, {0x1E8E,0x1E8F,0x0059},
1059  {0x1E90,0x1E91,0x005A}, {0x1E90,0x1E91,0x005A},
1060  {0x1E92,0x1E93,0x005A}, {0x1E92,0x1E93,0x005A},
1061  {0x1E94,0x1E95,0x005A}, {0x1E94,0x1E95,0x005A},
1062  {0x1E96,0x1E96,0x0048}, {0x1E97,0x1E97,0x0054},
1063  {0x1E98,0x1E98,0x0057}, {0x1E99,0x1E99,0x0059},
1064  {0x1E9A,0x1E9A,0x1E9A}, {0x1E60,0x1E9B,0x0053},
1065  {0x1E9C,0x1E9C,0x1E9C}, {0x1E9D,0x1E9D,0x1E9D},
1066  {0x1E9E,0x1E9E,0x1E9E}, {0x1E9F,0x1E9F,0x1E9F},
1067  {0x1EA0,0x1EA1,0x0041}, {0x1EA0,0x1EA1,0x0041},
1068  {0x1EA2,0x1EA3,0x0041}, {0x1EA2,0x1EA3,0x0041},
1069  {0x1EA4,0x1EA5,0x0041}, {0x1EA4,0x1EA5,0x0041},
1070  {0x1EA6,0x1EA7,0x0041}, {0x1EA6,0x1EA7,0x0041},
1071  {0x1EA8,0x1EA9,0x0041}, {0x1EA8,0x1EA9,0x0041},
1072  {0x1EAA,0x1EAB,0x0041}, {0x1EAA,0x1EAB,0x0041},
1073  {0x1EAC,0x1EAD,0x0041}, {0x1EAC,0x1EAD,0x0041},
1074  {0x1EAE,0x1EAF,0x0041}, {0x1EAE,0x1EAF,0x0041},
1075  {0x1EB0,0x1EB1,0x0041}, {0x1EB0,0x1EB1,0x0041},
1076  {0x1EB2,0x1EB3,0x0041}, {0x1EB2,0x1EB3,0x0041},
1077  {0x1EB4,0x1EB5,0x0041}, {0x1EB4,0x1EB5,0x0041},
1078  {0x1EB6,0x1EB7,0x0041}, {0x1EB6,0x1EB7,0x0041},
1079  {0x1EB8,0x1EB9,0x0045}, {0x1EB8,0x1EB9,0x0045},
1080  {0x1EBA,0x1EBB,0x0045}, {0x1EBA,0x1EBB,0x0045},
1081  {0x1EBC,0x1EBD,0x0045}, {0x1EBC,0x1EBD,0x0045},
1082  {0x1EBE,0x1EBF,0x0045}, {0x1EBE,0x1EBF,0x0045},
1083  {0x1EC0,0x1EC1,0x0045}, {0x1EC0,0x1EC1,0x0045},
1084  {0x1EC2,0x1EC3,0x0045}, {0x1EC2,0x1EC3,0x0045},
1085  {0x1EC4,0x1EC5,0x0045}, {0x1EC4,0x1EC5,0x0045},
1086  {0x1EC6,0x1EC7,0x0045}, {0x1EC6,0x1EC7,0x0045},
1087  {0x1EC8,0x1EC9,0x0049}, {0x1EC8,0x1EC9,0x0049},
1088  {0x1ECA,0x1ECB,0x0049}, {0x1ECA,0x1ECB,0x0049},
1089  {0x1ECC,0x1ECD,0x004F}, {0x1ECC,0x1ECD,0x004F},
1090  {0x1ECE,0x1ECF,0x004F}, {0x1ECE,0x1ECF,0x004F},
1091  {0x1ED0,0x1ED1,0x004F}, {0x1ED0,0x1ED1,0x004F},
1092  {0x1ED2,0x1ED3,0x004F}, {0x1ED2,0x1ED3,0x004F},
1093  {0x1ED4,0x1ED5,0x004F}, {0x1ED4,0x1ED5,0x004F},
1094  {0x1ED6,0x1ED7,0x004F}, {0x1ED6,0x1ED7,0x004F},
1095  {0x1ED8,0x1ED9,0x004F}, {0x1ED8,0x1ED9,0x004F},
1096  {0x1EDA,0x1EDB,0x004F}, {0x1EDA,0x1EDB,0x004F},
1097  {0x1EDC,0x1EDD,0x004F}, {0x1EDC,0x1EDD,0x004F},
1098  {0x1EDE,0x1EDF,0x004F}, {0x1EDE,0x1EDF,0x004F},
1099  {0x1EE0,0x1EE1,0x004F}, {0x1EE0,0x1EE1,0x004F},
1100  {0x1EE2,0x1EE3,0x004F}, {0x1EE2,0x1EE3,0x004F},
1101  {0x1EE4,0x1EE5,0x0055}, {0x1EE4,0x1EE5,0x0055},
1102  {0x1EE6,0x1EE7,0x0055}, {0x1EE6,0x1EE7,0x0055},
1103  {0x1EE8,0x1EE9,0x0055}, {0x1EE8,0x1EE9,0x0055},
1104  {0x1EEA,0x1EEB,0x0055}, {0x1EEA,0x1EEB,0x0055},
1105  {0x1EEC,0x1EED,0x0055}, {0x1EEC,0x1EED,0x0055},
1106  {0x1EEE,0x1EEF,0x0055}, {0x1EEE,0x1EEF,0x0055},
1107  {0x1EF0,0x1EF1,0x0055}, {0x1EF0,0x1EF1,0x0055},
1108  {0x1EF2,0x1EF3,0x0059}, {0x1EF2,0x1EF3,0x0059},
1109  {0x1EF4,0x1EF5,0x0059}, {0x1EF4,0x1EF5,0x0059},
1110  {0x1EF6,0x1EF7,0x0059}, {0x1EF6,0x1EF7,0x0059},
1111  {0x1EF8,0x1EF9,0x0059}, {0x1EF8,0x1EF9,0x0059},
1112  {0x1EFA,0x1EFA,0x1EFA}, {0x1EFB,0x1EFB,0x1EFB},
1113  {0x1EFC,0x1EFC,0x1EFC}, {0x1EFD,0x1EFD,0x1EFD},
1114  {0x1EFE,0x1EFE,0x1EFE}, {0x1EFF,0x1EFF,0x1EFF}
1115 };
1116 
1117 static MY_UNICASE_CHARACTER plane1F[]={
1118  {0x1F08,0x1F00,0x0391}, {0x1F09,0x1F01,0x0391},
1119  {0x1F0A,0x1F02,0x0391}, {0x1F0B,0x1F03,0x0391},
1120  {0x1F0C,0x1F04,0x0391}, {0x1F0D,0x1F05,0x0391},
1121  {0x1F0E,0x1F06,0x0391}, {0x1F0F,0x1F07,0x0391},
1122  {0x1F08,0x1F00,0x0391}, {0x1F09,0x1F01,0x0391},
1123  {0x1F0A,0x1F02,0x0391}, {0x1F0B,0x1F03,0x0391},
1124  {0x1F0C,0x1F04,0x0391}, {0x1F0D,0x1F05,0x0391},
1125  {0x1F0E,0x1F06,0x0391}, {0x1F0F,0x1F07,0x0391},
1126  {0x1F18,0x1F10,0x0395}, {0x1F19,0x1F11,0x0395},
1127  {0x1F1A,0x1F12,0x0395}, {0x1F1B,0x1F13,0x0395},
1128  {0x1F1C,0x1F14,0x0395}, {0x1F1D,0x1F15,0x0395},
1129  {0x1F16,0x1F16,0x1F16}, {0x1F17,0x1F17,0x1F17},
1130  {0x1F18,0x1F10,0x0395}, {0x1F19,0x1F11,0x0395},
1131  {0x1F1A,0x1F12,0x0395}, {0x1F1B,0x1F13,0x0395},
1132  {0x1F1C,0x1F14,0x0395}, {0x1F1D,0x1F15,0x0395},
1133  {0x1F1E,0x1F1E,0x1F1E}, {0x1F1F,0x1F1F,0x1F1F},
1134  {0x1F28,0x1F20,0x0397}, {0x1F29,0x1F21,0x0397},
1135  {0x1F2A,0x1F22,0x0397}, {0x1F2B,0x1F23,0x0397},
1136  {0x1F2C,0x1F24,0x0397}, {0x1F2D,0x1F25,0x0397},
1137  {0x1F2E,0x1F26,0x0397}, {0x1F2F,0x1F27,0x0397},
1138  {0x1F28,0x1F20,0x0397}, {0x1F29,0x1F21,0x0397},
1139  {0x1F2A,0x1F22,0x0397}, {0x1F2B,0x1F23,0x0397},
1140  {0x1F2C,0x1F24,0x0397}, {0x1F2D,0x1F25,0x0397},
1141  {0x1F2E,0x1F26,0x0397}, {0x1F2F,0x1F27,0x0397},
1142  {0x1F38,0x1F30,0x0399}, {0x1F39,0x1F31,0x0399},
1143  {0x1F3A,0x1F32,0x0399}, {0x1F3B,0x1F33,0x0399},
1144  {0x1F3C,0x1F34,0x0399}, {0x1F3D,0x1F35,0x0399},
1145  {0x1F3E,0x1F36,0x0399}, {0x1F3F,0x1F37,0x0399},
1146  {0x1F38,0x1F30,0x0399}, {0x1F39,0x1F31,0x0399},
1147  {0x1F3A,0x1F32,0x0399}, {0x1F3B,0x1F33,0x0399},
1148  {0x1F3C,0x1F34,0x0399}, {0x1F3D,0x1F35,0x0399},
1149  {0x1F3E,0x1F36,0x0399}, {0x1F3F,0x1F37,0x0399},
1150  {0x1F48,0x1F40,0x039F}, {0x1F49,0x1F41,0x039F},
1151  {0x1F4A,0x1F42,0x039F}, {0x1F4B,0x1F43,0x039F},
1152  {0x1F4C,0x1F44,0x039F}, {0x1F4D,0x1F45,0x039F},
1153  {0x1F46,0x1F46,0x1F46}, {0x1F47,0x1F47,0x1F47},
1154  {0x1F48,0x1F40,0x039F}, {0x1F49,0x1F41,0x039F},
1155  {0x1F4A,0x1F42,0x039F}, {0x1F4B,0x1F43,0x039F},
1156  {0x1F4C,0x1F44,0x039F}, {0x1F4D,0x1F45,0x039F},
1157  {0x1F4E,0x1F4E,0x1F4E}, {0x1F4F,0x1F4F,0x1F4F},
1158  {0x1F50,0x1F50,0x03A5}, {0x1F59,0x1F51,0x03A5},
1159  {0x1F52,0x1F52,0x03A5}, {0x1F5B,0x1F53,0x03A5},
1160  {0x1F54,0x1F54,0x03A5}, {0x1F5D,0x1F55,0x03A5},
1161  {0x1F56,0x1F56,0x03A5}, {0x1F5F,0x1F57,0x03A5},
1162  {0x1F58,0x1F58,0x1F58}, {0x1F59,0x1F51,0x03A5},
1163  {0x1F5A,0x1F5A,0x1F5A}, {0x1F5B,0x1F53,0x03A5},
1164  {0x1F5C,0x1F5C,0x1F5C}, {0x1F5D,0x1F55,0x03A5},
1165  {0x1F5E,0x1F5E,0x1F5E}, {0x1F5F,0x1F57,0x03A5},
1166  {0x1F68,0x1F60,0x03A9}, {0x1F69,0x1F61,0x03A9},
1167  {0x1F6A,0x1F62,0x03A9}, {0x1F6B,0x1F63,0x03A9},
1168  {0x1F6C,0x1F64,0x03A9}, {0x1F6D,0x1F65,0x03A9},
1169  {0x1F6E,0x1F66,0x03A9}, {0x1F6F,0x1F67,0x03A9},
1170  {0x1F68,0x1F60,0x03A9}, {0x1F69,0x1F61,0x03A9},
1171  {0x1F6A,0x1F62,0x03A9}, {0x1F6B,0x1F63,0x03A9},
1172  {0x1F6C,0x1F64,0x03A9}, {0x1F6D,0x1F65,0x03A9},
1173  {0x1F6E,0x1F66,0x03A9}, {0x1F6F,0x1F67,0x03A9},
1174  {0x1FBA,0x1F70,0x0391}, {0x1FBB,0x1F71,0x1FBB},
1175  {0x1FC8,0x1F72,0x0395}, {0x1FC9,0x1F73,0x1FC9},
1176  {0x1FCA,0x1F74,0x0397}, {0x1FCB,0x1F75,0x1FCB},
1177  {0x1FDA,0x1F76,0x0399}, {0x1FDB,0x1F77,0x1FDB},
1178  {0x1FF8,0x1F78,0x039F}, {0x1FF9,0x1F79,0x1FF9},
1179  {0x1FEA,0x1F7A,0x03A5}, {0x1FEB,0x1F7B,0x1FEB},
1180  {0x1FFA,0x1F7C,0x03A9}, {0x1FFB,0x1F7D,0x1FFB},
1181  {0x1F7E,0x1F7E,0x1F7E}, {0x1F7F,0x1F7F,0x1F7F},
1182  {0x1F88,0x1F80,0x0391}, {0x1F89,0x1F81,0x0391},
1183  {0x1F8A,0x1F82,0x0391}, {0x1F8B,0x1F83,0x0391},
1184  {0x1F8C,0x1F84,0x0391}, {0x1F8D,0x1F85,0x0391},
1185  {0x1F8E,0x1F86,0x0391}, {0x1F8F,0x1F87,0x0391},
1186  {0x1F88,0x1F80,0x0391}, {0x1F89,0x1F81,0x0391},
1187  {0x1F8A,0x1F82,0x0391}, {0x1F8B,0x1F83,0x0391},
1188  {0x1F8C,0x1F84,0x0391}, {0x1F8D,0x1F85,0x0391},
1189  {0x1F8E,0x1F86,0x0391}, {0x1F8F,0x1F87,0x0391},
1190  {0x1F98,0x1F90,0x0397}, {0x1F99,0x1F91,0x0397},
1191  {0x1F9A,0x1F92,0x0397}, {0x1F9B,0x1F93,0x0397},
1192  {0x1F9C,0x1F94,0x0397}, {0x1F9D,0x1F95,0x0397},
1193  {0x1F9E,0x1F96,0x0397}, {0x1F9F,0x1F97,0x0397},
1194  {0x1F98,0x1F90,0x0397}, {0x1F99,0x1F91,0x0397},
1195  {0x1F9A,0x1F92,0x0397}, {0x1F9B,0x1F93,0x0397},
1196  {0x1F9C,0x1F94,0x0397}, {0x1F9D,0x1F95,0x0397},
1197  {0x1F9E,0x1F96,0x0397}, {0x1F9F,0x1F97,0x0397},
1198  {0x1FA8,0x1FA0,0x03A9}, {0x1FA9,0x1FA1,0x03A9},
1199  {0x1FAA,0x1FA2,0x03A9}, {0x1FAB,0x1FA3,0x03A9},
1200  {0x1FAC,0x1FA4,0x03A9}, {0x1FAD,0x1FA5,0x03A9},
1201  {0x1FAE,0x1FA6,0x03A9}, {0x1FAF,0x1FA7,0x03A9},
1202  {0x1FA8,0x1FA0,0x03A9}, {0x1FA9,0x1FA1,0x03A9},
1203  {0x1FAA,0x1FA2,0x03A9}, {0x1FAB,0x1FA3,0x03A9},
1204  {0x1FAC,0x1FA4,0x03A9}, {0x1FAD,0x1FA5,0x03A9},
1205  {0x1FAE,0x1FA6,0x03A9}, {0x1FAF,0x1FA7,0x03A9},
1206  {0x1FB8,0x1FB0,0x0391}, {0x1FB9,0x1FB1,0x0391},
1207  {0x1FB2,0x1FB2,0x0391}, {0x1FBC,0x1FB3,0x0391},
1208  {0x1FB4,0x1FB4,0x0391}, {0x1FB5,0x1FB5,0x1FB5},
1209  {0x1FB6,0x1FB6,0x0391}, {0x1FB7,0x1FB7,0x0391},
1210  {0x1FB8,0x1FB0,0x0391}, {0x1FB9,0x1FB1,0x0391},
1211  {0x1FBA,0x1F70,0x0391}, {0x1FBB,0x1F71,0x1FBB},
1212  {0x1FBC,0x1FB3,0x0391}, {0x1FBD,0x1FBD,0x1FBD},
1213  {0x0399,0x1FBE,0x0399}, {0x1FBF,0x1FBF,0x1FBF},
1214  {0x1FC0,0x1FC0,0x1FC0}, {0x1FC1,0x1FC1,0x1FC1},
1215  {0x1FC2,0x1FC2,0x0397}, {0x1FCC,0x1FC3,0x0397},
1216  {0x1FC4,0x1FC4,0x0397}, {0x1FC5,0x1FC5,0x1FC5},
1217  {0x1FC6,0x1FC6,0x0397}, {0x1FC7,0x1FC7,0x0397},
1218  {0x1FC8,0x1F72,0x0395}, {0x1FC9,0x1F73,0x1FC9},
1219  {0x1FCA,0x1F74,0x0397}, {0x1FCB,0x1F75,0x1FCB},
1220  {0x1FCC,0x1FC3,0x0397}, {0x1FCD,0x1FCD,0x1FCD},
1221  {0x1FCE,0x1FCE,0x1FCE}, {0x1FCF,0x1FCF,0x1FCF},
1222  {0x1FD8,0x1FD0,0x0399}, {0x1FD9,0x1FD1,0x0399},
1223  {0x1FD2,0x1FD2,0x0399}, {0x1FD3,0x1FD3,0x1FD3},
1224  {0x1FD4,0x1FD4,0x1FD4}, {0x1FD5,0x1FD5,0x1FD5},
1225  {0x1FD6,0x1FD6,0x0399}, {0x1FD7,0x1FD7,0x0399},
1226  {0x1FD8,0x1FD0,0x0399}, {0x1FD9,0x1FD1,0x0399},
1227  {0x1FDA,0x1F76,0x0399}, {0x1FDB,0x1F77,0x1FDB},
1228  {0x1FDC,0x1FDC,0x1FDC}, {0x1FDD,0x1FDD,0x1FDD},
1229  {0x1FDE,0x1FDE,0x1FDE}, {0x1FDF,0x1FDF,0x1FDF},
1230  {0x1FE8,0x1FE0,0x03A5}, {0x1FE9,0x1FE1,0x03A5},
1231  {0x1FE2,0x1FE2,0x03A5}, {0x1FE3,0x1FE3,0x1FE3},
1232  {0x1FE4,0x1FE4,0x03A1}, {0x1FEC,0x1FE5,0x03A1},
1233  {0x1FE6,0x1FE6,0x03A5}, {0x1FE7,0x1FE7,0x03A5},
1234  {0x1FE8,0x1FE0,0x03A5}, {0x1FE9,0x1FE1,0x03A5},
1235  {0x1FEA,0x1F7A,0x03A5}, {0x1FEB,0x1F7B,0x1FEB},
1236  {0x1FEC,0x1FE5,0x03A1}, {0x1FED,0x1FED,0x1FED},
1237  {0x1FEE,0x1FEE,0x1FEE}, {0x1FEF,0x1FEF,0x1FEF},
1238  {0x1FF0,0x1FF0,0x1FF0}, {0x1FF1,0x1FF1,0x1FF1},
1239  {0x1FF2,0x1FF2,0x03A9}, {0x1FFC,0x1FF3,0x03A9},
1240  {0x1FF4,0x1FF4,0x03A9}, {0x1FF5,0x1FF5,0x1FF5},
1241  {0x1FF6,0x1FF6,0x03A9}, {0x1FF7,0x1FF7,0x03A9},
1242  {0x1FF8,0x1F78,0x039F}, {0x1FF9,0x1F79,0x1FF9},
1243  {0x1FFA,0x1F7C,0x03A9}, {0x1FFB,0x1F7D,0x1FFB},
1244  {0x1FFC,0x1FF3,0x03A9}, {0x1FFD,0x1FFD,0x1FFD},
1245  {0x1FFE,0x1FFE,0x1FFE}, {0x1FFF,0x1FFF,0x1FFF}
1246 };
1247 
1248 static MY_UNICASE_CHARACTER plane21[]={
1249  {0x2100,0x2100,0x2100}, {0x2101,0x2101,0x2101},
1250  {0x2102,0x2102,0x2102}, {0x2103,0x2103,0x2103},
1251  {0x2104,0x2104,0x2104}, {0x2105,0x2105,0x2105},
1252  {0x2106,0x2106,0x2106}, {0x2107,0x2107,0x2107},
1253  {0x2108,0x2108,0x2108}, {0x2109,0x2109,0x2109},
1254  {0x210A,0x210A,0x210A}, {0x210B,0x210B,0x210B},
1255  {0x210C,0x210C,0x210C}, {0x210D,0x210D,0x210D},
1256  {0x210E,0x210E,0x210E}, {0x210F,0x210F,0x210F},
1257  {0x2110,0x2110,0x2110}, {0x2111,0x2111,0x2111},
1258  {0x2112,0x2112,0x2112}, {0x2113,0x2113,0x2113},
1259  {0x2114,0x2114,0x2114}, {0x2115,0x2115,0x2115},
1260  {0x2116,0x2116,0x2116}, {0x2117,0x2117,0x2117},
1261  {0x2118,0x2118,0x2118}, {0x2119,0x2119,0x2119},
1262  {0x211A,0x211A,0x211A}, {0x211B,0x211B,0x211B},
1263  {0x211C,0x211C,0x211C}, {0x211D,0x211D,0x211D},
1264  {0x211E,0x211E,0x211E}, {0x211F,0x211F,0x211F},
1265  {0x2120,0x2120,0x2120}, {0x2121,0x2121,0x2121},
1266  {0x2122,0x2122,0x2122}, {0x2123,0x2123,0x2123},
1267  {0x2124,0x2124,0x2124}, {0x2125,0x2125,0x2125},
1268  {0x2126,0x03C9,0x2126}, {0x2127,0x2127,0x2127},
1269  {0x2128,0x2128,0x2128}, {0x2129,0x2129,0x2129},
1270  {0x212A,0x006B,0x212A}, {0x212B,0x00E5,0x212B},
1271  {0x212C,0x212C,0x212C}, {0x212D,0x212D,0x212D},
1272  {0x212E,0x212E,0x212E}, {0x212F,0x212F,0x212F},
1273  {0x2130,0x2130,0x2130}, {0x2131,0x2131,0x2131},
1274  {0x2132,0x2132,0x2132}, {0x2133,0x2133,0x2133},
1275  {0x2134,0x2134,0x2134}, {0x2135,0x2135,0x2135},
1276  {0x2136,0x2136,0x2136}, {0x2137,0x2137,0x2137},
1277  {0x2138,0x2138,0x2138}, {0x2139,0x2139,0x2139},
1278  {0x213A,0x213A,0x213A}, {0x213B,0x213B,0x213B},
1279  {0x213C,0x213C,0x213C}, {0x213D,0x213D,0x213D},
1280  {0x213E,0x213E,0x213E}, {0x213F,0x213F,0x213F},
1281  {0x2140,0x2140,0x2140}, {0x2141,0x2141,0x2141},
1282  {0x2142,0x2142,0x2142}, {0x2143,0x2143,0x2143},
1283  {0x2144,0x2144,0x2144}, {0x2145,0x2145,0x2145},
1284  {0x2146,0x2146,0x2146}, {0x2147,0x2147,0x2147},
1285  {0x2148,0x2148,0x2148}, {0x2149,0x2149,0x2149},
1286  {0x214A,0x214A,0x214A}, {0x214B,0x214B,0x214B},
1287  {0x214C,0x214C,0x214C}, {0x214D,0x214D,0x214D},
1288  {0x214E,0x214E,0x214E}, {0x214F,0x214F,0x214F},
1289  {0x2150,0x2150,0x2150}, {0x2151,0x2151,0x2151},
1290  {0x2152,0x2152,0x2152}, {0x2153,0x2153,0x2153},
1291  {0x2154,0x2154,0x2154}, {0x2155,0x2155,0x2155},
1292  {0x2156,0x2156,0x2156}, {0x2157,0x2157,0x2157},
1293  {0x2158,0x2158,0x2158}, {0x2159,0x2159,0x2159},
1294  {0x215A,0x215A,0x215A}, {0x215B,0x215B,0x215B},
1295  {0x215C,0x215C,0x215C}, {0x215D,0x215D,0x215D},
1296  {0x215E,0x215E,0x215E}, {0x215F,0x215F,0x215F},
1297  {0x2160,0x2170,0x2160}, {0x2161,0x2171,0x2161},
1298  {0x2162,0x2172,0x2162}, {0x2163,0x2173,0x2163},
1299  {0x2164,0x2174,0x2164}, {0x2165,0x2175,0x2165},
1300  {0x2166,0x2176,0x2166}, {0x2167,0x2177,0x2167},
1301  {0x2168,0x2178,0x2168}, {0x2169,0x2179,0x2169},
1302  {0x216A,0x217A,0x216A}, {0x216B,0x217B,0x216B},
1303  {0x216C,0x217C,0x216C}, {0x216D,0x217D,0x216D},
1304  {0x216E,0x217E,0x216E}, {0x216F,0x217F,0x216F},
1305  {0x2160,0x2170,0x2160}, {0x2161,0x2171,0x2161},
1306  {0x2162,0x2172,0x2162}, {0x2163,0x2173,0x2163},
1307  {0x2164,0x2174,0x2164}, {0x2165,0x2175,0x2165},
1308  {0x2166,0x2176,0x2166}, {0x2167,0x2177,0x2167},
1309  {0x2168,0x2178,0x2168}, {0x2169,0x2179,0x2169},
1310  {0x216A,0x217A,0x216A}, {0x216B,0x217B,0x216B},
1311  {0x216C,0x217C,0x216C}, {0x216D,0x217D,0x216D},
1312  {0x216E,0x217E,0x216E}, {0x216F,0x217F,0x216F},
1313  {0x2180,0x2180,0x2180}, {0x2181,0x2181,0x2181},
1314  {0x2182,0x2182,0x2182}, {0x2183,0x2183,0x2183},
1315  {0x2184,0x2184,0x2184}, {0x2185,0x2185,0x2185},
1316  {0x2186,0x2186,0x2186}, {0x2187,0x2187,0x2187},
1317  {0x2188,0x2188,0x2188}, {0x2189,0x2189,0x2189},
1318  {0x218A,0x218A,0x218A}, {0x218B,0x218B,0x218B},
1319  {0x218C,0x218C,0x218C}, {0x218D,0x218D,0x218D},
1320  {0x218E,0x218E,0x218E}, {0x218F,0x218F,0x218F},
1321  {0x2190,0x2190,0x2190}, {0x2191,0x2191,0x2191},
1322  {0x2192,0x2192,0x2192}, {0x2193,0x2193,0x2193},
1323  {0x2194,0x2194,0x2194}, {0x2195,0x2195,0x2195},
1324  {0x2196,0x2196,0x2196}, {0x2197,0x2197,0x2197},
1325  {0x2198,0x2198,0x2198}, {0x2199,0x2199,0x2199},
1326  {0x219A,0x219A,0x219A}, {0x219B,0x219B,0x219B},
1327  {0x219C,0x219C,0x219C}, {0x219D,0x219D,0x219D},
1328  {0x219E,0x219E,0x219E}, {0x219F,0x219F,0x219F},
1329  {0x21A0,0x21A0,0x21A0}, {0x21A1,0x21A1,0x21A1},
1330  {0x21A2,0x21A2,0x21A2}, {0x21A3,0x21A3,0x21A3},
1331  {0x21A4,0x21A4,0x21A4}, {0x21A5,0x21A5,0x21A5},
1332  {0x21A6,0x21A6,0x21A6}, {0x21A7,0x21A7,0x21A7},
1333  {0x21A8,0x21A8,0x21A8}, {0x21A9,0x21A9,0x21A9},
1334  {0x21AA,0x21AA,0x21AA}, {0x21AB,0x21AB,0x21AB},
1335  {0x21AC,0x21AC,0x21AC}, {0x21AD,0x21AD,0x21AD},
1336  {0x21AE,0x21AE,0x21AE}, {0x21AF,0x21AF,0x21AF},
1337  {0x21B0,0x21B0,0x21B0}, {0x21B1,0x21B1,0x21B1},
1338  {0x21B2,0x21B2,0x21B2}, {0x21B3,0x21B3,0x21B3},
1339  {0x21B4,0x21B4,0x21B4}, {0x21B5,0x21B5,0x21B5},
1340  {0x21B6,0x21B6,0x21B6}, {0x21B7,0x21B7,0x21B7},
1341  {0x21B8,0x21B8,0x21B8}, {0x21B9,0x21B9,0x21B9},
1342  {0x21BA,0x21BA,0x21BA}, {0x21BB,0x21BB,0x21BB},
1343  {0x21BC,0x21BC,0x21BC}, {0x21BD,0x21BD,0x21BD},
1344  {0x21BE,0x21BE,0x21BE}, {0x21BF,0x21BF,0x21BF},
1345  {0x21C0,0x21C0,0x21C0}, {0x21C1,0x21C1,0x21C1},
1346  {0x21C2,0x21C2,0x21C2}, {0x21C3,0x21C3,0x21C3},
1347  {0x21C4,0x21C4,0x21C4}, {0x21C5,0x21C5,0x21C5},
1348  {0x21C6,0x21C6,0x21C6}, {0x21C7,0x21C7,0x21C7},
1349  {0x21C8,0x21C8,0x21C8}, {0x21C9,0x21C9,0x21C9},
1350  {0x21CA,0x21CA,0x21CA}, {0x21CB,0x21CB,0x21CB},
1351  {0x21CC,0x21CC,0x21CC}, {0x21CD,0x21CD,0x21CD},
1352  {0x21CE,0x21CE,0x21CE}, {0x21CF,0x21CF,0x21CF},
1353  {0x21D0,0x21D0,0x21D0}, {0x21D1,0x21D1,0x21D1},
1354  {0x21D2,0x21D2,0x21D2}, {0x21D3,0x21D3,0x21D3},
1355  {0x21D4,0x21D4,0x21D4}, {0x21D5,0x21D5,0x21D5},
1356  {0x21D6,0x21D6,0x21D6}, {0x21D7,0x21D7,0x21D7},
1357  {0x21D8,0x21D8,0x21D8}, {0x21D9,0x21D9,0x21D9},
1358  {0x21DA,0x21DA,0x21DA}, {0x21DB,0x21DB,0x21DB},
1359  {0x21DC,0x21DC,0x21DC}, {0x21DD,0x21DD,0x21DD},
1360  {0x21DE,0x21DE,0x21DE}, {0x21DF,0x21DF,0x21DF},
1361  {0x21E0,0x21E0,0x21E0}, {0x21E1,0x21E1,0x21E1},
1362  {0x21E2,0x21E2,0x21E2}, {0x21E3,0x21E3,0x21E3},
1363  {0x21E4,0x21E4,0x21E4}, {0x21E5,0x21E5,0x21E5},
1364  {0x21E6,0x21E6,0x21E6}, {0x21E7,0x21E7,0x21E7},
1365  {0x21E8,0x21E8,0x21E8}, {0x21E9,0x21E9,0x21E9},
1366  {0x21EA,0x21EA,0x21EA}, {0x21EB,0x21EB,0x21EB},
1367  {0x21EC,0x21EC,0x21EC}, {0x21ED,0x21ED,0x21ED},
1368  {0x21EE,0x21EE,0x21EE}, {0x21EF,0x21EF,0x21EF},
1369  {0x21F0,0x21F0,0x21F0}, {0x21F1,0x21F1,0x21F1},
1370  {0x21F2,0x21F2,0x21F2}, {0x21F3,0x21F3,0x21F3},
1371  {0x21F4,0x21F4,0x21F4}, {0x21F5,0x21F5,0x21F5},
1372  {0x21F6,0x21F6,0x21F6}, {0x21F7,0x21F7,0x21F7},
1373  {0x21F8,0x21F8,0x21F8}, {0x21F9,0x21F9,0x21F9},
1374  {0x21FA,0x21FA,0x21FA}, {0x21FB,0x21FB,0x21FB},
1375  {0x21FC,0x21FC,0x21FC}, {0x21FD,0x21FD,0x21FD},
1376  {0x21FE,0x21FE,0x21FE}, {0x21FF,0x21FF,0x21FF}
1377 };
1378 
1379 static MY_UNICASE_CHARACTER plane24[]={
1380  {0x2400,0x2400,0x2400}, {0x2401,0x2401,0x2401},
1381  {0x2402,0x2402,0x2402}, {0x2403,0x2403,0x2403},
1382  {0x2404,0x2404,0x2404}, {0x2405,0x2405,0x2405},
1383  {0x2406,0x2406,0x2406}, {0x2407,0x2407,0x2407},
1384  {0x2408,0x2408,0x2408}, {0x2409,0x2409,0x2409},
1385  {0x240A,0x240A,0x240A}, {0x240B,0x240B,0x240B},
1386  {0x240C,0x240C,0x240C}, {0x240D,0x240D,0x240D},
1387  {0x240E,0x240E,0x240E}, {0x240F,0x240F,0x240F},
1388  {0x2410,0x2410,0x2410}, {0x2411,0x2411,0x2411},
1389  {0x2412,0x2412,0x2412}, {0x2413,0x2413,0x2413},
1390  {0x2414,0x2414,0x2414}, {0x2415,0x2415,0x2415},
1391  {0x2416,0x2416,0x2416}, {0x2417,0x2417,0x2417},
1392  {0x2418,0x2418,0x2418}, {0x2419,0x2419,0x2419},
1393  {0x241A,0x241A,0x241A}, {0x241B,0x241B,0x241B},
1394  {0x241C,0x241C,0x241C}, {0x241D,0x241D,0x241D},
1395  {0x241E,0x241E,0x241E}, {0x241F,0x241F,0x241F},
1396  {0x2420,0x2420,0x2420}, {0x2421,0x2421,0x2421},
1397  {0x2422,0x2422,0x2422}, {0x2423,0x2423,0x2423},
1398  {0x2424,0x2424,0x2424}, {0x2425,0x2425,0x2425},
1399  {0x2426,0x2426,0x2426}, {0x2427,0x2427,0x2427},
1400  {0x2428,0x2428,0x2428}, {0x2429,0x2429,0x2429},
1401  {0x242A,0x242A,0x242A}, {0x242B,0x242B,0x242B},
1402  {0x242C,0x242C,0x242C}, {0x242D,0x242D,0x242D},
1403  {0x242E,0x242E,0x242E}, {0x242F,0x242F,0x242F},
1404  {0x2430,0x2430,0x2430}, {0x2431,0x2431,0x2431},
1405  {0x2432,0x2432,0x2432}, {0x2433,0x2433,0x2433},
1406  {0x2434,0x2434,0x2434}, {0x2435,0x2435,0x2435},
1407  {0x2436,0x2436,0x2436}, {0x2437,0x2437,0x2437},
1408  {0x2438,0x2438,0x2438}, {0x2439,0x2439,0x2439},
1409  {0x243A,0x243A,0x243A}, {0x243B,0x243B,0x243B},
1410  {0x243C,0x243C,0x243C}, {0x243D,0x243D,0x243D},
1411  {0x243E,0x243E,0x243E}, {0x243F,0x243F,0x243F},
1412  {0x2440,0x2440,0x2440}, {0x2441,0x2441,0x2441},
1413  {0x2442,0x2442,0x2442}, {0x2443,0x2443,0x2443},
1414  {0x2444,0x2444,0x2444}, {0x2445,0x2445,0x2445},
1415  {0x2446,0x2446,0x2446}, {0x2447,0x2447,0x2447},
1416  {0x2448,0x2448,0x2448}, {0x2449,0x2449,0x2449},
1417  {0x244A,0x244A,0x244A}, {0x244B,0x244B,0x244B},
1418  {0x244C,0x244C,0x244C}, {0x244D,0x244D,0x244D},
1419  {0x244E,0x244E,0x244E}, {0x244F,0x244F,0x244F},
1420  {0x2450,0x2450,0x2450}, {0x2451,0x2451,0x2451},
1421  {0x2452,0x2452,0x2452}, {0x2453,0x2453,0x2453},
1422  {0x2454,0x2454,0x2454}, {0x2455,0x2455,0x2455},
1423  {0x2456,0x2456,0x2456}, {0x2457,0x2457,0x2457},
1424  {0x2458,0x2458,0x2458}, {0x2459,0x2459,0x2459},
1425  {0x245A,0x245A,0x245A}, {0x245B,0x245B,0x245B},
1426  {0x245C,0x245C,0x245C}, {0x245D,0x245D,0x245D},
1427  {0x245E,0x245E,0x245E}, {0x245F,0x245F,0x245F},
1428  {0x2460,0x2460,0x2460}, {0x2461,0x2461,0x2461},
1429  {0x2462,0x2462,0x2462}, {0x2463,0x2463,0x2463},
1430  {0x2464,0x2464,0x2464}, {0x2465,0x2465,0x2465},
1431  {0x2466,0x2466,0x2466}, {0x2467,0x2467,0x2467},
1432  {0x2468,0x2468,0x2468}, {0x2469,0x2469,0x2469},
1433  {0x246A,0x246A,0x246A}, {0x246B,0x246B,0x246B},
1434  {0x246C,0x246C,0x246C}, {0x246D,0x246D,0x246D},
1435  {0x246E,0x246E,0x246E}, {0x246F,0x246F,0x246F},
1436  {0x2470,0x2470,0x2470}, {0x2471,0x2471,0x2471},
1437  {0x2472,0x2472,0x2472}, {0x2473,0x2473,0x2473},
1438  {0x2474,0x2474,0x2474}, {0x2475,0x2475,0x2475},
1439  {0x2476,0x2476,0x2476}, {0x2477,0x2477,0x2477},
1440  {0x2478,0x2478,0x2478}, {0x2479,0x2479,0x2479},
1441  {0x247A,0x247A,0x247A}, {0x247B,0x247B,0x247B},
1442  {0x247C,0x247C,0x247C}, {0x247D,0x247D,0x247D},
1443  {0x247E,0x247E,0x247E}, {0x247F,0x247F,0x247F},
1444  {0x2480,0x2480,0x2480}, {0x2481,0x2481,0x2481},
1445  {0x2482,0x2482,0x2482}, {0x2483,0x2483,0x2483},
1446  {0x2484,0x2484,0x2484}, {0x2485,0x2485,0x2485},
1447  {0x2486,0x2486,0x2486}, {0x2487,0x2487,0x2487},
1448  {0x2488,0x2488,0x2488}, {0x2489,0x2489,0x2489},
1449  {0x248A,0x248A,0x248A}, {0x248B,0x248B,0x248B},
1450  {0x248C,0x248C,0x248C}, {0x248D,0x248D,0x248D},
1451  {0x248E,0x248E,0x248E}, {0x248F,0x248F,0x248F},
1452  {0x2490,0x2490,0x2490}, {0x2491,0x2491,0x2491},
1453  {0x2492,0x2492,0x2492}, {0x2493,0x2493,0x2493},
1454  {0x2494,0x2494,0x2494}, {0x2495,0x2495,0x2495},
1455  {0x2496,0x2496,0x2496}, {0x2497,0x2497,0x2497},
1456  {0x2498,0x2498,0x2498}, {0x2499,0x2499,0x2499},
1457  {0x249A,0x249A,0x249A}, {0x249B,0x249B,0x249B},
1458  {0x249C,0x249C,0x249C}, {0x249D,0x249D,0x249D},
1459  {0x249E,0x249E,0x249E}, {0x249F,0x249F,0x249F},
1460  {0x24A0,0x24A0,0x24A0}, {0x24A1,0x24A1,0x24A1},
1461  {0x24A2,0x24A2,0x24A2}, {0x24A3,0x24A3,0x24A3},
1462  {0x24A4,0x24A4,0x24A4}, {0x24A5,0x24A5,0x24A5},
1463  {0x24A6,0x24A6,0x24A6}, {0x24A7,0x24A7,0x24A7},
1464  {0x24A8,0x24A8,0x24A8}, {0x24A9,0x24A9,0x24A9},
1465  {0x24AA,0x24AA,0x24AA}, {0x24AB,0x24AB,0x24AB},
1466  {0x24AC,0x24AC,0x24AC}, {0x24AD,0x24AD,0x24AD},
1467  {0x24AE,0x24AE,0x24AE}, {0x24AF,0x24AF,0x24AF},
1468  {0x24B0,0x24B0,0x24B0}, {0x24B1,0x24B1,0x24B1},
1469  {0x24B2,0x24B2,0x24B2}, {0x24B3,0x24B3,0x24B3},
1470  {0x24B4,0x24B4,0x24B4}, {0x24B5,0x24B5,0x24B5},
1471  {0x24B6,0x24D0,0x24B6}, {0x24B7,0x24D1,0x24B7},
1472  {0x24B8,0x24D2,0x24B8}, {0x24B9,0x24D3,0x24B9},
1473  {0x24BA,0x24D4,0x24BA}, {0x24BB,0x24D5,0x24BB},
1474  {0x24BC,0x24D6,0x24BC}, {0x24BD,0x24D7,0x24BD},
1475  {0x24BE,0x24D8,0x24BE}, {0x24BF,0x24D9,0x24BF},
1476  {0x24C0,0x24DA,0x24C0}, {0x24C1,0x24DB,0x24C1},
1477  {0x24C2,0x24DC,0x24C2}, {0x24C3,0x24DD,0x24C3},
1478  {0x24C4,0x24DE,0x24C4}, {0x24C5,0x24DF,0x24C5},
1479  {0x24C6,0x24E0,0x24C6}, {0x24C7,0x24E1,0x24C7},
1480  {0x24C8,0x24E2,0x24C8}, {0x24C9,0x24E3,0x24C9},
1481  {0x24CA,0x24E4,0x24CA}, {0x24CB,0x24E5,0x24CB},
1482  {0x24CC,0x24E6,0x24CC}, {0x24CD,0x24E7,0x24CD},
1483  {0x24CE,0x24E8,0x24CE}, {0x24CF,0x24E9,0x24CF},
1484  {0x24B6,0x24D0,0x24B6}, {0x24B7,0x24D1,0x24B7},
1485  {0x24B8,0x24D2,0x24B8}, {0x24B9,0x24D3,0x24B9},
1486  {0x24BA,0x24D4,0x24BA}, {0x24BB,0x24D5,0x24BB},
1487  {0x24BC,0x24D6,0x24BC}, {0x24BD,0x24D7,0x24BD},
1488  {0x24BE,0x24D8,0x24BE}, {0x24BF,0x24D9,0x24BF},
1489  {0x24C0,0x24DA,0x24C0}, {0x24C1,0x24DB,0x24C1},
1490  {0x24C2,0x24DC,0x24C2}, {0x24C3,0x24DD,0x24C3},
1491  {0x24C4,0x24DE,0x24C4}, {0x24C5,0x24DF,0x24C5},
1492  {0x24C6,0x24E0,0x24C6}, {0x24C7,0x24E1,0x24C7},
1493  {0x24C8,0x24E2,0x24C8}, {0x24C9,0x24E3,0x24C9},
1494  {0x24CA,0x24E4,0x24CA}, {0x24CB,0x24E5,0x24CB},
1495  {0x24CC,0x24E6,0x24CC}, {0x24CD,0x24E7,0x24CD},
1496  {0x24CE,0x24E8,0x24CE}, {0x24CF,0x24E9,0x24CF},
1497  {0x24EA,0x24EA,0x24EA}, {0x24EB,0x24EB,0x24EB},
1498  {0x24EC,0x24EC,0x24EC}, {0x24ED,0x24ED,0x24ED},
1499  {0x24EE,0x24EE,0x24EE}, {0x24EF,0x24EF,0x24EF},
1500  {0x24F0,0x24F0,0x24F0}, {0x24F1,0x24F1,0x24F1},
1501  {0x24F2,0x24F2,0x24F2}, {0x24F3,0x24F3,0x24F3},
1502  {0x24F4,0x24F4,0x24F4}, {0x24F5,0x24F5,0x24F5},
1503  {0x24F6,0x24F6,0x24F6}, {0x24F7,0x24F7,0x24F7},
1504  {0x24F8,0x24F8,0x24F8}, {0x24F9,0x24F9,0x24F9},
1505  {0x24FA,0x24FA,0x24FA}, {0x24FB,0x24FB,0x24FB},
1506  {0x24FC,0x24FC,0x24FC}, {0x24FD,0x24FD,0x24FD},
1507  {0x24FE,0x24FE,0x24FE}, {0x24FF,0x24FF,0x24FF}
1508 };
1509 
1510 static MY_UNICASE_CHARACTER planeFF[]={
1511  {0xFF00,0xFF00,0xFF00}, {0xFF01,0xFF01,0xFF01},
1512  {0xFF02,0xFF02,0xFF02}, {0xFF03,0xFF03,0xFF03},
1513  {0xFF04,0xFF04,0xFF04}, {0xFF05,0xFF05,0xFF05},
1514  {0xFF06,0xFF06,0xFF06}, {0xFF07,0xFF07,0xFF07},
1515  {0xFF08,0xFF08,0xFF08}, {0xFF09,0xFF09,0xFF09},
1516  {0xFF0A,0xFF0A,0xFF0A}, {0xFF0B,0xFF0B,0xFF0B},
1517  {0xFF0C,0xFF0C,0xFF0C}, {0xFF0D,0xFF0D,0xFF0D},
1518  {0xFF0E,0xFF0E,0xFF0E}, {0xFF0F,0xFF0F,0xFF0F},
1519  {0xFF10,0xFF10,0xFF10}, {0xFF11,0xFF11,0xFF11},
1520  {0xFF12,0xFF12,0xFF12}, {0xFF13,0xFF13,0xFF13},
1521  {0xFF14,0xFF14,0xFF14}, {0xFF15,0xFF15,0xFF15},
1522  {0xFF16,0xFF16,0xFF16}, {0xFF17,0xFF17,0xFF17},
1523  {0xFF18,0xFF18,0xFF18}, {0xFF19,0xFF19,0xFF19},
1524  {0xFF1A,0xFF1A,0xFF1A}, {0xFF1B,0xFF1B,0xFF1B},
1525  {0xFF1C,0xFF1C,0xFF1C}, {0xFF1D,0xFF1D,0xFF1D},
1526  {0xFF1E,0xFF1E,0xFF1E}, {0xFF1F,0xFF1F,0xFF1F},
1527  {0xFF20,0xFF20,0xFF20}, {0xFF21,0xFF41,0xFF21},
1528  {0xFF22,0xFF42,0xFF22}, {0xFF23,0xFF43,0xFF23},
1529  {0xFF24,0xFF44,0xFF24}, {0xFF25,0xFF45,0xFF25},
1530  {0xFF26,0xFF46,0xFF26}, {0xFF27,0xFF47,0xFF27},
1531  {0xFF28,0xFF48,0xFF28}, {0xFF29,0xFF49,0xFF29},
1532  {0xFF2A,0xFF4A,0xFF2A}, {0xFF2B,0xFF4B,0xFF2B},
1533  {0xFF2C,0xFF4C,0xFF2C}, {0xFF2D,0xFF4D,0xFF2D},
1534  {0xFF2E,0xFF4E,0xFF2E}, {0xFF2F,0xFF4F,0xFF2F},
1535  {0xFF30,0xFF50,0xFF30}, {0xFF31,0xFF51,0xFF31},
1536  {0xFF32,0xFF52,0xFF32}, {0xFF33,0xFF53,0xFF33},
1537  {0xFF34,0xFF54,0xFF34}, {0xFF35,0xFF55,0xFF35},
1538  {0xFF36,0xFF56,0xFF36}, {0xFF37,0xFF57,0xFF37},
1539  {0xFF38,0xFF58,0xFF38}, {0xFF39,0xFF59,0xFF39},
1540  {0xFF3A,0xFF5A,0xFF3A}, {0xFF3B,0xFF3B,0xFF3B},
1541  {0xFF3C,0xFF3C,0xFF3C}, {0xFF3D,0xFF3D,0xFF3D},
1542  {0xFF3E,0xFF3E,0xFF3E}, {0xFF3F,0xFF3F,0xFF3F},
1543  {0xFF40,0xFF40,0xFF40}, {0xFF21,0xFF41,0xFF21},
1544  {0xFF22,0xFF42,0xFF22}, {0xFF23,0xFF43,0xFF23},
1545  {0xFF24,0xFF44,0xFF24}, {0xFF25,0xFF45,0xFF25},
1546  {0xFF26,0xFF46,0xFF26}, {0xFF27,0xFF47,0xFF27},
1547  {0xFF28,0xFF48,0xFF28}, {0xFF29,0xFF49,0xFF29},
1548  {0xFF2A,0xFF4A,0xFF2A}, {0xFF2B,0xFF4B,0xFF2B},
1549  {0xFF2C,0xFF4C,0xFF2C}, {0xFF2D,0xFF4D,0xFF2D},
1550  {0xFF2E,0xFF4E,0xFF2E}, {0xFF2F,0xFF4F,0xFF2F},
1551  {0xFF30,0xFF50,0xFF30}, {0xFF31,0xFF51,0xFF31},
1552  {0xFF32,0xFF52,0xFF32}, {0xFF33,0xFF53,0xFF33},
1553  {0xFF34,0xFF54,0xFF34}, {0xFF35,0xFF55,0xFF35},
1554  {0xFF36,0xFF56,0xFF36}, {0xFF37,0xFF57,0xFF37},
1555  {0xFF38,0xFF58,0xFF38}, {0xFF39,0xFF59,0xFF39},
1556  {0xFF3A,0xFF5A,0xFF3A}, {0xFF5B,0xFF5B,0xFF5B},
1557  {0xFF5C,0xFF5C,0xFF5C}, {0xFF5D,0xFF5D,0xFF5D},
1558  {0xFF5E,0xFF5E,0xFF5E}, {0xFF5F,0xFF5F,0xFF5F},
1559  {0xFF60,0xFF60,0xFF60}, {0xFF61,0xFF61,0xFF61},
1560  {0xFF62,0xFF62,0xFF62}, {0xFF63,0xFF63,0xFF63},
1561  {0xFF64,0xFF64,0xFF64}, {0xFF65,0xFF65,0xFF65},
1562  {0xFF66,0xFF66,0xFF66}, {0xFF67,0xFF67,0xFF67},
1563  {0xFF68,0xFF68,0xFF68}, {0xFF69,0xFF69,0xFF69},
1564  {0xFF6A,0xFF6A,0xFF6A}, {0xFF6B,0xFF6B,0xFF6B},
1565  {0xFF6C,0xFF6C,0xFF6C}, {0xFF6D,0xFF6D,0xFF6D},
1566  {0xFF6E,0xFF6E,0xFF6E}, {0xFF6F,0xFF6F,0xFF6F},
1567  {0xFF70,0xFF70,0xFF70}, {0xFF71,0xFF71,0xFF71},
1568  {0xFF72,0xFF72,0xFF72}, {0xFF73,0xFF73,0xFF73},
1569  {0xFF74,0xFF74,0xFF74}, {0xFF75,0xFF75,0xFF75},
1570  {0xFF76,0xFF76,0xFF76}, {0xFF77,0xFF77,0xFF77},
1571  {0xFF78,0xFF78,0xFF78}, {0xFF79,0xFF79,0xFF79},
1572  {0xFF7A,0xFF7A,0xFF7A}, {0xFF7B,0xFF7B,0xFF7B},
1573  {0xFF7C,0xFF7C,0xFF7C}, {0xFF7D,0xFF7D,0xFF7D},
1574  {0xFF7E,0xFF7E,0xFF7E}, {0xFF7F,0xFF7F,0xFF7F},
1575  {0xFF80,0xFF80,0xFF80}, {0xFF81,0xFF81,0xFF81},
1576  {0xFF82,0xFF82,0xFF82}, {0xFF83,0xFF83,0xFF83},
1577  {0xFF84,0xFF84,0xFF84}, {0xFF85,0xFF85,0xFF85},
1578  {0xFF86,0xFF86,0xFF86}, {0xFF87,0xFF87,0xFF87},
1579  {0xFF88,0xFF88,0xFF88}, {0xFF89,0xFF89,0xFF89},
1580  {0xFF8A,0xFF8A,0xFF8A}, {0xFF8B,0xFF8B,0xFF8B},
1581  {0xFF8C,0xFF8C,0xFF8C}, {0xFF8D,0xFF8D,0xFF8D},
1582  {0xFF8E,0xFF8E,0xFF8E}, {0xFF8F,0xFF8F,0xFF8F},
1583  {0xFF90,0xFF90,0xFF90}, {0xFF91,0xFF91,0xFF91},
1584  {0xFF92,0xFF92,0xFF92}, {0xFF93,0xFF93,0xFF93},
1585  {0xFF94,0xFF94,0xFF94}, {0xFF95,0xFF95,0xFF95},
1586  {0xFF96,0xFF96,0xFF96}, {0xFF97,0xFF97,0xFF97},
1587  {0xFF98,0xFF98,0xFF98}, {0xFF99,0xFF99,0xFF99},
1588  {0xFF9A,0xFF9A,0xFF9A}, {0xFF9B,0xFF9B,0xFF9B},
1589  {0xFF9C,0xFF9C,0xFF9C}, {0xFF9D,0xFF9D,0xFF9D},
1590  {0xFF9E,0xFF9E,0xFF9E}, {0xFF9F,0xFF9F,0xFF9F},
1591  {0xFFA0,0xFFA0,0xFFA0}, {0xFFA1,0xFFA1,0xFFA1},
1592  {0xFFA2,0xFFA2,0xFFA2}, {0xFFA3,0xFFA3,0xFFA3},
1593  {0xFFA4,0xFFA4,0xFFA4}, {0xFFA5,0xFFA5,0xFFA5},
1594  {0xFFA6,0xFFA6,0xFFA6}, {0xFFA7,0xFFA7,0xFFA7},
1595  {0xFFA8,0xFFA8,0xFFA8}, {0xFFA9,0xFFA9,0xFFA9},
1596  {0xFFAA,0xFFAA,0xFFAA}, {0xFFAB,0xFFAB,0xFFAB},
1597  {0xFFAC,0xFFAC,0xFFAC}, {0xFFAD,0xFFAD,0xFFAD},
1598  {0xFFAE,0xFFAE,0xFFAE}, {0xFFAF,0xFFAF,0xFFAF},
1599  {0xFFB0,0xFFB0,0xFFB0}, {0xFFB1,0xFFB1,0xFFB1},
1600  {0xFFB2,0xFFB2,0xFFB2}, {0xFFB3,0xFFB3,0xFFB3},
1601  {0xFFB4,0xFFB4,0xFFB4}, {0xFFB5,0xFFB5,0xFFB5},
1602  {0xFFB6,0xFFB6,0xFFB6}, {0xFFB7,0xFFB7,0xFFB7},
1603  {0xFFB8,0xFFB8,0xFFB8}, {0xFFB9,0xFFB9,0xFFB9},
1604  {0xFFBA,0xFFBA,0xFFBA}, {0xFFBB,0xFFBB,0xFFBB},
1605  {0xFFBC,0xFFBC,0xFFBC}, {0xFFBD,0xFFBD,0xFFBD},
1606  {0xFFBE,0xFFBE,0xFFBE}, {0xFFBF,0xFFBF,0xFFBF},
1607  {0xFFC0,0xFFC0,0xFFC0}, {0xFFC1,0xFFC1,0xFFC1},
1608  {0xFFC2,0xFFC2,0xFFC2}, {0xFFC3,0xFFC3,0xFFC3},
1609  {0xFFC4,0xFFC4,0xFFC4}, {0xFFC5,0xFFC5,0xFFC5},
1610  {0xFFC6,0xFFC6,0xFFC6}, {0xFFC7,0xFFC7,0xFFC7},
1611  {0xFFC8,0xFFC8,0xFFC8}, {0xFFC9,0xFFC9,0xFFC9},
1612  {0xFFCA,0xFFCA,0xFFCA}, {0xFFCB,0xFFCB,0xFFCB},
1613  {0xFFCC,0xFFCC,0xFFCC}, {0xFFCD,0xFFCD,0xFFCD},
1614  {0xFFCE,0xFFCE,0xFFCE}, {0xFFCF,0xFFCF,0xFFCF},
1615  {0xFFD0,0xFFD0,0xFFD0}, {0xFFD1,0xFFD1,0xFFD1},
1616  {0xFFD2,0xFFD2,0xFFD2}, {0xFFD3,0xFFD3,0xFFD3},
1617  {0xFFD4,0xFFD4,0xFFD4}, {0xFFD5,0xFFD5,0xFFD5},
1618  {0xFFD6,0xFFD6,0xFFD6}, {0xFFD7,0xFFD7,0xFFD7},
1619  {0xFFD8,0xFFD8,0xFFD8}, {0xFFD9,0xFFD9,0xFFD9},
1620  {0xFFDA,0xFFDA,0xFFDA}, {0xFFDB,0xFFDB,0xFFDB},
1621  {0xFFDC,0xFFDC,0xFFDC}, {0xFFDD,0xFFDD,0xFFDD},
1622  {0xFFDE,0xFFDE,0xFFDE}, {0xFFDF,0xFFDF,0xFFDF},
1623  {0xFFE0,0xFFE0,0xFFE0}, {0xFFE1,0xFFE1,0xFFE1},
1624  {0xFFE2,0xFFE2,0xFFE2}, {0xFFE3,0xFFE3,0xFFE3},
1625  {0xFFE4,0xFFE4,0xFFE4}, {0xFFE5,0xFFE5,0xFFE5},
1626  {0xFFE6,0xFFE6,0xFFE6}, {0xFFE7,0xFFE7,0xFFE7},
1627  {0xFFE8,0xFFE8,0xFFE8}, {0xFFE9,0xFFE9,0xFFE9},
1628  {0xFFEA,0xFFEA,0xFFEA}, {0xFFEB,0xFFEB,0xFFEB},
1629  {0xFFEC,0xFFEC,0xFFEC}, {0xFFED,0xFFED,0xFFED},
1630  {0xFFEE,0xFFEE,0xFFEE}, {0xFFEF,0xFFEF,0xFFEF},
1631  {0xFFF0,0xFFF0,0xFFF0}, {0xFFF1,0xFFF1,0xFFF1},
1632  {0xFFF2,0xFFF2,0xFFF2}, {0xFFF3,0xFFF3,0xFFF3},
1633  {0xFFF4,0xFFF4,0xFFF4}, {0xFFF5,0xFFF5,0xFFF5},
1634  {0xFFF6,0xFFF6,0xFFF6}, {0xFFF7,0xFFF7,0xFFF7},
1635  {0xFFF8,0xFFF8,0xFFF8}, {0xFFF9,0xFFF9,0xFFF9},
1636  {0xFFFA,0xFFFA,0xFFFA}, {0xFFFB,0xFFFB,0xFFFB},
1637  {0xFFFC,0xFFFC,0xFFFC}, {0xFFFD,0xFFFD,0xFFFD},
1638  {0xFFFE,0xFFFE,0xFFFE}, {0xFFFF,0xFFFF,0xFFFF}
1639 };
1640 
1641 
1642 static MY_UNICASE_CHARACTER *my_unicase_pages_default[256]=
1643 {
1644  plane00, plane01, plane02, plane03, plane04, plane05, NULL, NULL,
1645  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1646  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1647  NULL, NULL, NULL, NULL, NULL, NULL, plane1E, plane1F,
1648  NULL, plane21, NULL, NULL, plane24, NULL, NULL, NULL,
1649  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1650  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1651  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1652  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1653  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1654  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1655  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1656  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1657  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1658  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1659  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1660  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1661  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1662  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1663  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1664  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1665  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1666  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1667  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1668  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1669  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1670  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1671  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1672  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1673  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1674  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1675  NULL, NULL, NULL, NULL, NULL, NULL, NULL, planeFF
1676 };
1677 
1678 
1679 MY_UNICASE_INFO my_unicase_default=
1680 {
1681  0xFFFF,
1682  my_unicase_pages_default
1683 };
1684 
1685 
1686 /*
1687  Reproduce old utf8_general_ci behaviour before we fixed Bug#27877.
1688 */
1689 MY_UNICASE_CHARACTER *my_unicase_pages_mysql500[256]={
1690  plane00_mysql500,
1691  plane01, plane02, plane03, plane04, plane05, NULL, NULL,
1692  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1693  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1694  NULL, NULL, NULL, NULL, NULL, NULL, plane1E, plane1F,
1695  NULL, plane21, NULL, NULL, plane24, NULL, NULL, NULL,
1696  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1697  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1698  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1699  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1700  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1701  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1702  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1703  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1704  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1705  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1706  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1707  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1708  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1709  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1710  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1711  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1712  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1713  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1714  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1715  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1716  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1717  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1718  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1719  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1720  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1721  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1722  NULL, NULL, NULL, NULL, NULL, NULL, NULL, planeFF
1723 
1724 };
1725 
1726 
1727 MY_UNICASE_INFO my_unicase_mysql500=
1728 {
1729  0xFFFF,
1730  my_unicase_pages_mysql500
1731 };
1732 
1733 
1734 /*
1735  Turkish lower/upper mapping:
1736  1. LOWER(0x0049 LATIN CAPITAL LETTER I) ->
1737  0x0131 LATIN SMALL LETTER DOTLESS I
1738  2. UPPER(0x0069 LATIN SMALL LETTER I) ->
1739  0x0130 LATIN CAPITAL LETTER I WITH DOT ABOVE
1740 */
1741 
1742 static MY_UNICASE_CHARACTER turk00[]=
1743 {
1744  {0x0000,0x0000,0x0000}, {0x0001,0x0001,0x0001},
1745  {0x0002,0x0002,0x0002}, {0x0003,0x0003,0x0003},
1746  {0x0004,0x0004,0x0004}, {0x0005,0x0005,0x0005},
1747  {0x0006,0x0006,0x0006}, {0x0007,0x0007,0x0007},
1748  {0x0008,0x0008,0x0008}, {0x0009,0x0009,0x0009},
1749  {0x000A,0x000A,0x000A}, {0x000B,0x000B,0x000B},
1750  {0x000C,0x000C,0x000C}, {0x000D,0x000D,0x000D},
1751  {0x000E,0x000E,0x000E}, {0x000F,0x000F,0x000F},
1752  {0x0010,0x0010,0x0010}, {0x0011,0x0011,0x0011},
1753  {0x0012,0x0012,0x0012}, {0x0013,0x0013,0x0013},
1754  {0x0014,0x0014,0x0014}, {0x0015,0x0015,0x0015},
1755  {0x0016,0x0016,0x0016}, {0x0017,0x0017,0x0017},
1756  {0x0018,0x0018,0x0018}, {0x0019,0x0019,0x0019},
1757  {0x001A,0x001A,0x001A}, {0x001B,0x001B,0x001B},
1758  {0x001C,0x001C,0x001C}, {0x001D,0x001D,0x001D},
1759  {0x001E,0x001E,0x001E}, {0x001F,0x001F,0x001F},
1760  {0x0020,0x0020,0x0020}, {0x0021,0x0021,0x0021},
1761  {0x0022,0x0022,0x0022}, {0x0023,0x0023,0x0023},
1762  {0x0024,0x0024,0x0024}, {0x0025,0x0025,0x0025},
1763  {0x0026,0x0026,0x0026}, {0x0027,0x0027,0x0027},
1764  {0x0028,0x0028,0x0028}, {0x0029,0x0029,0x0029},
1765  {0x002A,0x002A,0x002A}, {0x002B,0x002B,0x002B},
1766  {0x002C,0x002C,0x002C}, {0x002D,0x002D,0x002D},
1767  {0x002E,0x002E,0x002E}, {0x002F,0x002F,0x002F},
1768  {0x0030,0x0030,0x0030}, {0x0031,0x0031,0x0031},
1769  {0x0032,0x0032,0x0032}, {0x0033,0x0033,0x0033},
1770  {0x0034,0x0034,0x0034}, {0x0035,0x0035,0x0035},
1771  {0x0036,0x0036,0x0036}, {0x0037,0x0037,0x0037},
1772  {0x0038,0x0038,0x0038}, {0x0039,0x0039,0x0039},
1773  {0x003A,0x003A,0x003A}, {0x003B,0x003B,0x003B},
1774  {0x003C,0x003C,0x003C}, {0x003D,0x003D,0x003D},
1775  {0x003E,0x003E,0x003E}, {0x003F,0x003F,0x003F},
1776  {0x0040,0x0040,0x0040}, {0x0041,0x0061,0x0041},
1777  {0x0042,0x0062,0x0042}, {0x0043,0x0063,0x0043},
1778  {0x0044,0x0064,0x0044}, {0x0045,0x0065,0x0045},
1779  {0x0046,0x0066,0x0046}, {0x0047,0x0067,0x0047},
1780  {0x0048,0x0068,0x0048}, {0x0049,0x0131,0x0049},
1781  {0x004A,0x006A,0x004A}, {0x004B,0x006B,0x004B},
1782  {0x004C,0x006C,0x004C}, {0x004D,0x006D,0x004D},
1783  {0x004E,0x006E,0x004E}, {0x004F,0x006F,0x004F},
1784  {0x0050,0x0070,0x0050}, {0x0051,0x0071,0x0051},
1785  {0x0052,0x0072,0x0052}, {0x0053,0x0073,0x0053},
1786  {0x0054,0x0074,0x0054}, {0x0055,0x0075,0x0055},
1787  {0x0056,0x0076,0x0056}, {0x0057,0x0077,0x0057},
1788  {0x0058,0x0078,0x0058}, {0x0059,0x0079,0x0059},
1789  {0x005A,0x007A,0x005A}, {0x005B,0x005B,0x005B},
1790  {0x005C,0x005C,0x005C}, {0x005D,0x005D,0x005D},
1791  {0x005E,0x005E,0x005E}, {0x005F,0x005F,0x005F},
1792  {0x0060,0x0060,0x0060}, {0x0041,0x0061,0x0041},
1793  {0x0042,0x0062,0x0042}, {0x0043,0x0063,0x0043},
1794  {0x0044,0x0064,0x0044}, {0x0045,0x0065,0x0045},
1795  {0x0046,0x0066,0x0046}, {0x0047,0x0067,0x0047},
1796  {0x0048,0x0068,0x0048}, {0x0130,0x0069,0x0049},
1797  {0x004A,0x006A,0x004A}, {0x004B,0x006B,0x004B},
1798  {0x004C,0x006C,0x004C}, {0x004D,0x006D,0x004D},
1799  {0x004E,0x006E,0x004E}, {0x004F,0x006F,0x004F},
1800  {0x0050,0x0070,0x0050}, {0x0051,0x0071,0x0051},
1801  {0x0052,0x0072,0x0052}, {0x0053,0x0073,0x0053},
1802  {0x0054,0x0074,0x0054}, {0x0055,0x0075,0x0055},
1803  {0x0056,0x0076,0x0056}, {0x0057,0x0077,0x0057},
1804  {0x0058,0x0078,0x0058}, {0x0059,0x0079,0x0059},
1805  {0x005A,0x007A,0x005A}, {0x007B,0x007B,0x007B},
1806  {0x007C,0x007C,0x007C}, {0x007D,0x007D,0x007D},
1807  {0x007E,0x007E,0x007E}, {0x007F,0x007F,0x007F},
1808  {0x0080,0x0080,0x0080}, {0x0081,0x0081,0x0081},
1809  {0x0082,0x0082,0x0082}, {0x0083,0x0083,0x0083},
1810  {0x0084,0x0084,0x0084}, {0x0085,0x0085,0x0085},
1811  {0x0086,0x0086,0x0086}, {0x0087,0x0087,0x0087},
1812  {0x0088,0x0088,0x0088}, {0x0089,0x0089,0x0089},
1813  {0x008A,0x008A,0x008A}, {0x008B,0x008B,0x008B},
1814  {0x008C,0x008C,0x008C}, {0x008D,0x008D,0x008D},
1815  {0x008E,0x008E,0x008E}, {0x008F,0x008F,0x008F},
1816  {0x0090,0x0090,0x0090}, {0x0091,0x0091,0x0091},
1817  {0x0092,0x0092,0x0092}, {0x0093,0x0093,0x0093},
1818  {0x0094,0x0094,0x0094}, {0x0095,0x0095,0x0095},
1819  {0x0096,0x0096,0x0096}, {0x0097,0x0097,0x0097},
1820  {0x0098,0x0098,0x0098}, {0x0099,0x0099,0x0099},
1821  {0x009A,0x009A,0x009A}, {0x009B,0x009B,0x009B},
1822  {0x009C,0x009C,0x009C}, {0x009D,0x009D,0x009D},
1823  {0x009E,0x009E,0x009E}, {0x009F,0x009F,0x009F},
1824  {0x00A0,0x00A0,0x00A0}, {0x00A1,0x00A1,0x00A1},
1825  {0x00A2,0x00A2,0x00A2}, {0x00A3,0x00A3,0x00A3},
1826  {0x00A4,0x00A4,0x00A4}, {0x00A5,0x00A5,0x00A5},
1827  {0x00A6,0x00A6,0x00A6}, {0x00A7,0x00A7,0x00A7},
1828  {0x00A8,0x00A8,0x00A8}, {0x00A9,0x00A9,0x00A9},
1829  {0x00AA,0x00AA,0x00AA}, {0x00AB,0x00AB,0x00AB},
1830  {0x00AC,0x00AC,0x00AC}, {0x00AD,0x00AD,0x00AD},
1831  {0x00AE,0x00AE,0x00AE}, {0x00AF,0x00AF,0x00AF},
1832  {0x00B0,0x00B0,0x00B0}, {0x00B1,0x00B1,0x00B1},
1833  {0x00B2,0x00B2,0x00B2}, {0x00B3,0x00B3,0x00B3},
1834  {0x00B4,0x00B4,0x00B4}, {0x039C,0x00B5,0x039C},
1835  {0x00B6,0x00B6,0x00B6}, {0x00B7,0x00B7,0x00B7},
1836  {0x00B8,0x00B8,0x00B8}, {0x00B9,0x00B9,0x00B9},
1837  {0x00BA,0x00BA,0x00BA}, {0x00BB,0x00BB,0x00BB},
1838  {0x00BC,0x00BC,0x00BC}, {0x00BD,0x00BD,0x00BD},
1839  {0x00BE,0x00BE,0x00BE}, {0x00BF,0x00BF,0x00BF},
1840  {0x00C0,0x00E0,0x0041}, {0x00C1,0x00E1,0x0041},
1841  {0x00C2,0x00E2,0x0041}, {0x00C3,0x00E3,0x0041},
1842  {0x00C4,0x00E4,0x0041}, {0x00C5,0x00E5,0x0041},
1843  {0x00C6,0x00E6,0x00C6}, {0x00C7,0x00E7,0x0043},
1844  {0x00C8,0x00E8,0x0045}, {0x00C9,0x00E9,0x0045},
1845  {0x00CA,0x00EA,0x0045}, {0x00CB,0x00EB,0x0045},
1846  {0x00CC,0x00EC,0x0049}, {0x00CD,0x00ED,0x0049},
1847  {0x00CE,0x00EE,0x0049}, {0x00CF,0x00EF,0x0049},
1848  {0x00D0,0x00F0,0x00D0}, {0x00D1,0x00F1,0x004E},
1849  {0x00D2,0x00F2,0x004F}, {0x00D3,0x00F3,0x004F},
1850  {0x00D4,0x00F4,0x004F}, {0x00D5,0x00F5,0x004F},
1851  {0x00D6,0x00F6,0x004F}, {0x00D7,0x00D7,0x00D7},
1852  {0x00D8,0x00F8,0x00D8}, {0x00D9,0x00F9,0x0055},
1853  {0x00DA,0x00FA,0x0055}, {0x00DB,0x00FB,0x0055},
1854  {0x00DC,0x00FC,0x0055}, {0x00DD,0x00FD,0x0059},
1855  {0x00DE,0x00FE,0x00DE}, {0x00DF,0x00DF,0x00DF},
1856  {0x00C0,0x00E0,0x0041}, {0x00C1,0x00E1,0x0041},
1857  {0x00C2,0x00E2,0x0041}, {0x00C3,0x00E3,0x0041},
1858  {0x00C4,0x00E4,0x0041}, {0x00C5,0x00E5,0x0041},
1859  {0x00C6,0x00E6,0x00C6}, {0x00C7,0x00E7,0x0043},
1860  {0x00C8,0x00E8,0x0045}, {0x00C9,0x00E9,0x0045},
1861  {0x00CA,0x00EA,0x0045}, {0x00CB,0x00EB,0x0045},
1862  {0x00CC,0x00EC,0x0049}, {0x00CD,0x00ED,0x0049},
1863  {0x00CE,0x00EE,0x0049}, {0x00CF,0x00EF,0x0049},
1864  {0x00D0,0x00F0,0x00D0}, {0x00D1,0x00F1,0x004E},
1865  {0x00D2,0x00F2,0x004F}, {0x00D3,0x00F3,0x004F},
1866  {0x00D4,0x00F4,0x004F}, {0x00D5,0x00F5,0x004F},
1867  {0x00D6,0x00F6,0x004F}, {0x00F7,0x00F7,0x00F7},
1868  {0x00D8,0x00F8,0x00D8}, {0x00D9,0x00F9,0x0055},
1869  {0x00DA,0x00FA,0x0055}, {0x00DB,0x00FB,0x0055},
1870  {0x00DC,0x00FC,0x0055}, {0x00DD,0x00FD,0x0059},
1871  {0x00DE,0x00FE,0x00DE}, {0x0178,0x00FF,0x0059}
1872 };
1873 
1874 
1875 
1876 static MY_UNICASE_CHARACTER *my_unicase_pages_turkish[256]=
1877 {
1878  turk00, plane01, plane02, plane03, plane04, plane05, NULL, NULL,
1879  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1880  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1881  NULL, NULL, NULL, NULL, NULL, NULL, plane1E, plane1F,
1882  NULL, plane21, NULL, NULL, plane24, NULL, NULL, NULL,
1883  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1884  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1885  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1886  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1887  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1888  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1889  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1890  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1891  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1892  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1893  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1894  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1895  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1896  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1897  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1898  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1899  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1900  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1901  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1902  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1903  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1904  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1905  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1906  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1907  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1908  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1909  NULL, NULL, NULL, NULL, NULL, NULL, NULL, planeFF
1910 };
1911 
1912 
1913 MY_UNICASE_INFO my_unicase_turkish=
1914 {
1915  0xFFFF,
1916  my_unicase_pages_turkish
1917 };
1918 
1919 
1920 /* Unicode-5.2.0 case folding information */
1921 static MY_UNICASE_CHARACTER u520p00[]={
1922  {0x0000,0x0000,0x0000}, {0x0001,0x0001,0x0001}, /* 0000 */
1923  {0x0002,0x0002,0x0002}, {0x0003,0x0003,0x0003}, /* 0002 */
1924  {0x0004,0x0004,0x0004}, {0x0005,0x0005,0x0005}, /* 0004 */
1925  {0x0006,0x0006,0x0006}, {0x0007,0x0007,0x0007}, /* 0006 */
1926  {0x0008,0x0008,0x0008}, {0x0009,0x0009,0x0009}, /* 0008 */
1927  {0x000A,0x000A,0x000A}, {0x000B,0x000B,0x000B}, /* 000A */
1928  {0x000C,0x000C,0x000C}, {0x000D,0x000D,0x000D}, /* 000C */
1929  {0x000E,0x000E,0x000E}, {0x000F,0x000F,0x000F}, /* 000E */
1930  {0x0010,0x0010,0x0010}, {0x0011,0x0011,0x0011}, /* 0010 */
1931  {0x0012,0x0012,0x0012}, {0x0013,0x0013,0x0013}, /* 0012 */
1932  {0x0014,0x0014,0x0014}, {0x0015,0x0015,0x0015}, /* 0014 */
1933  {0x0016,0x0016,0x0016}, {0x0017,0x0017,0x0017}, /* 0016 */
1934  {0x0018,0x0018,0x0018}, {0x0019,0x0019,0x0019}, /* 0018 */
1935  {0x001A,0x001A,0x001A}, {0x001B,0x001B,0x001B}, /* 001A */
1936  {0x001C,0x001C,0x001C}, {0x001D,0x001D,0x001D}, /* 001C */
1937  {0x001E,0x001E,0x001E}, {0x001F,0x001F,0x001F}, /* 001E */
1938  {0x0020,0x0020,0x0020}, {0x0021,0x0021,0x0021}, /* 0020 */
1939  {0x0022,0x0022,0x0022}, {0x0023,0x0023,0x0023}, /* 0022 */
1940  {0x0024,0x0024,0x0024}, {0x0025,0x0025,0x0025}, /* 0024 */
1941  {0x0026,0x0026,0x0026}, {0x0027,0x0027,0x0027}, /* 0026 */
1942  {0x0028,0x0028,0x0028}, {0x0029,0x0029,0x0029}, /* 0028 */
1943  {0x002A,0x002A,0x002A}, {0x002B,0x002B,0x002B}, /* 002A */
1944  {0x002C,0x002C,0x002C}, {0x002D,0x002D,0x002D}, /* 002C */
1945  {0x002E,0x002E,0x002E}, {0x002F,0x002F,0x002F}, /* 002E */
1946  {0x0030,0x0030,0x0030}, {0x0031,0x0031,0x0031}, /* 0030 */
1947  {0x0032,0x0032,0x0032}, {0x0033,0x0033,0x0033}, /* 0032 */
1948  {0x0034,0x0034,0x0034}, {0x0035,0x0035,0x0035}, /* 0034 */
1949  {0x0036,0x0036,0x0036}, {0x0037,0x0037,0x0037}, /* 0036 */
1950  {0x0038,0x0038,0x0038}, {0x0039,0x0039,0x0039}, /* 0038 */
1951  {0x003A,0x003A,0x003A}, {0x003B,0x003B,0x003B}, /* 003A */
1952  {0x003C,0x003C,0x003C}, {0x003D,0x003D,0x003D}, /* 003C */
1953  {0x003E,0x003E,0x003E}, {0x003F,0x003F,0x003F}, /* 003E */
1954  {0x0040,0x0040,0x0040}, {0x0041,0x0061,0x0041}, /* 0040 */
1955  {0x0042,0x0062,0x0042}, {0x0043,0x0063,0x0043}, /* 0042 */
1956  {0x0044,0x0064,0x0044}, {0x0045,0x0065,0x0045}, /* 0044 */
1957  {0x0046,0x0066,0x0046}, {0x0047,0x0067,0x0047}, /* 0046 */
1958  {0x0048,0x0068,0x0048}, {0x0049,0x0069,0x0049}, /* 0048 */
1959  {0x004A,0x006A,0x004A}, {0x004B,0x006B,0x004B}, /* 004A */
1960  {0x004C,0x006C,0x004C}, {0x004D,0x006D,0x004D}, /* 004C */
1961  {0x004E,0x006E,0x004E}, {0x004F,0x006F,0x004F}, /* 004E */
1962  {0x0050,0x0070,0x0050}, {0x0051,0x0071,0x0051}, /* 0050 */
1963  {0x0052,0x0072,0x0052}, {0x0053,0x0073,0x0053}, /* 0052 */
1964  {0x0054,0x0074,0x0054}, {0x0055,0x0075,0x0055}, /* 0054 */
1965  {0x0056,0x0076,0x0056}, {0x0057,0x0077,0x0057}, /* 0056 */
1966  {0x0058,0x0078,0x0058}, {0x0059,0x0079,0x0059}, /* 0058 */
1967  {0x005A,0x007A,0x005A}, {0x005B,0x005B,0x005B}, /* 005A */
1968  {0x005C,0x005C,0x005C}, {0x005D,0x005D,0x005D}, /* 005C */
1969  {0x005E,0x005E,0x005E}, {0x005F,0x005F,0x005F}, /* 005E */
1970  {0x0060,0x0060,0x0060}, {0x0041,0x0061,0x0041}, /* 0060 */
1971  {0x0042,0x0062,0x0042}, {0x0043,0x0063,0x0043}, /* 0062 */
1972  {0x0044,0x0064,0x0044}, {0x0045,0x0065,0x0045}, /* 0064 */
1973  {0x0046,0x0066,0x0046}, {0x0047,0x0067,0x0047}, /* 0066 */
1974  {0x0048,0x0068,0x0048}, {0x0049,0x0069,0x0049}, /* 0068 */
1975  {0x004A,0x006A,0x004A}, {0x004B,0x006B,0x004B}, /* 006A */
1976  {0x004C,0x006C,0x004C}, {0x004D,0x006D,0x004D}, /* 006C */
1977  {0x004E,0x006E,0x004E}, {0x004F,0x006F,0x004F}, /* 006E */
1978  {0x0050,0x0070,0x0050}, {0x0051,0x0071,0x0051}, /* 0070 */
1979  {0x0052,0x0072,0x0052}, {0x0053,0x0073,0x0053}, /* 0072 */
1980  {0x0054,0x0074,0x0054}, {0x0055,0x0075,0x0055}, /* 0074 */
1981  {0x0056,0x0076,0x0056}, {0x0057,0x0077,0x0057}, /* 0076 */
1982  {0x0058,0x0078,0x0058}, {0x0059,0x0079,0x0059}, /* 0078 */
1983  {0x005A,0x007A,0x005A}, {0x007B,0x007B,0x007B}, /* 007A */
1984  {0x007C,0x007C,0x007C}, {0x007D,0x007D,0x007D}, /* 007C */
1985  {0x007E,0x007E,0x007E}, {0x007F,0x007F,0x007F}, /* 007E */
1986  {0x0080,0x0080,0x0080}, {0x0081,0x0081,0x0081}, /* 0080 */
1987  {0x0082,0x0082,0x0082}, {0x0083,0x0083,0x0083}, /* 0082 */
1988  {0x0084,0x0084,0x0084}, {0x0085,0x0085,0x0085}, /* 0084 */
1989  {0x0086,0x0086,0x0086}, {0x0087,0x0087,0x0087}, /* 0086 */
1990  {0x0088,0x0088,0x0088}, {0x0089,0x0089,0x0089}, /* 0088 */
1991  {0x008A,0x008A,0x008A}, {0x008B,0x008B,0x008B}, /* 008A */
1992  {0x008C,0x008C,0x008C}, {0x008D,0x008D,0x008D}, /* 008C */
1993  {0x008E,0x008E,0x008E}, {0x008F,0x008F,0x008F}, /* 008E */
1994  {0x0090,0x0090,0x0090}, {0x0091,0x0091,0x0091}, /* 0090 */
1995  {0x0092,0x0092,0x0092}, {0x0093,0x0093,0x0093}, /* 0092 */
1996  {0x0094,0x0094,0x0094}, {0x0095,0x0095,0x0095}, /* 0094 */
1997  {0x0096,0x0096,0x0096}, {0x0097,0x0097,0x0097}, /* 0096 */
1998  {0x0098,0x0098,0x0098}, {0x0099,0x0099,0x0099}, /* 0098 */
1999  {0x009A,0x009A,0x009A}, {0x009B,0x009B,0x009B}, /* 009A */
2000  {0x009C,0x009C,0x009C}, {0x009D,0x009D,0x009D}, /* 009C */
2001  {0x009E,0x009E,0x009E}, {0x009F,0x009F,0x009F}, /* 009E */
2002  {0x00A0,0x00A0,0x00A0}, {0x00A1,0x00A1,0x00A1}, /* 00A0 */
2003  {0x00A2,0x00A2,0x00A2}, {0x00A3,0x00A3,0x00A3}, /* 00A2 */
2004  {0x00A4,0x00A4,0x00A4}, {0x00A5,0x00A5,0x00A5}, /* 00A4 */
2005  {0x00A6,0x00A6,0x00A6}, {0x00A7,0x00A7,0x00A7}, /* 00A6 */
2006  {0x00A8,0x00A8,0x00A8}, {0x00A9,0x00A9,0x00A9}, /* 00A8 */
2007  {0x00AA,0x00AA,0x00AA}, {0x00AB,0x00AB,0x00AB}, /* 00AA */
2008  {0x00AC,0x00AC,0x00AC}, {0x00AD,0x00AD,0x00AD}, /* 00AC */
2009  {0x00AE,0x00AE,0x00AE}, {0x00AF,0x00AF,0x00AF}, /* 00AE */
2010  {0x00B0,0x00B0,0x00B0}, {0x00B1,0x00B1,0x00B1}, /* 00B0 */
2011  {0x00B2,0x00B2,0x00B2}, {0x00B3,0x00B3,0x00B3}, /* 00B2 */
2012  {0x00B4,0x00B4,0x00B4}, {0x039C,0x00B5,0x039C}, /* 00B4 */
2013  {0x00B6,0x00B6,0x00B6}, {0x00B7,0x00B7,0x00B7}, /* 00B6 */
2014  {0x00B8,0x00B8,0x00B8}, {0x00B9,0x00B9,0x00B9}, /* 00B8 */
2015  {0x00BA,0x00BA,0x00BA}, {0x00BB,0x00BB,0x00BB}, /* 00BA */
2016  {0x00BC,0x00BC,0x00BC}, {0x00BD,0x00BD,0x00BD}, /* 00BC */
2017  {0x00BE,0x00BE,0x00BE}, {0x00BF,0x00BF,0x00BF}, /* 00BE */
2018  {0x00C0,0x00E0,0x0041}, {0x00C1,0x00E1,0x0041}, /* 00C0 */
2019  {0x00C2,0x00E2,0x0041}, {0x00C3,0x00E3,0x0041}, /* 00C2 */
2020  {0x00C4,0x00E4,0x0041}, {0x00C5,0x00E5,0x0041}, /* 00C4 */
2021  {0x00C6,0x00E6,0x00C6}, {0x00C7,0x00E7,0x0043}, /* 00C6 */
2022  {0x00C8,0x00E8,0x0045}, {0x00C9,0x00E9,0x0045}, /* 00C8 */
2023  {0x00CA,0x00EA,0x0045}, {0x00CB,0x00EB,0x0045}, /* 00CA */
2024  {0x00CC,0x00EC,0x0049}, {0x00CD,0x00ED,0x0049}, /* 00CC */
2025  {0x00CE,0x00EE,0x0049}, {0x00CF,0x00EF,0x0049}, /* 00CE */
2026  {0x00D0,0x00F0,0x00D0}, {0x00D1,0x00F1,0x004E}, /* 00D0 */
2027  {0x00D2,0x00F2,0x004F}, {0x00D3,0x00F3,0x004F}, /* 00D2 */
2028  {0x00D4,0x00F4,0x004F}, {0x00D5,0x00F5,0x004F}, /* 00D4 */
2029  {0x00D6,0x00F6,0x004F}, {0x00D7,0x00D7,0x00D7}, /* 00D6 */
2030  {0x00D8,0x00F8,0x00D8}, {0x00D9,0x00F9,0x0055}, /* 00D8 */
2031  {0x00DA,0x00FA,0x0055}, {0x00DB,0x00FB,0x0055}, /* 00DA */
2032  {0x00DC,0x00FC,0x0055}, {0x00DD,0x00FD,0x0059}, /* 00DC */
2033  {0x00DE,0x00FE,0x00DE}, {0x00DF,0x00DF,0x0053}, /* 00DE */
2034  {0x00C0,0x00E0,0x0041}, {0x00C1,0x00E1,0x0041}, /* 00E0 */
2035  {0x00C2,0x00E2,0x0041}, {0x00C3,0x00E3,0x0041}, /* 00E2 */
2036  {0x00C4,0x00E4,0x0041}, {0x00C5,0x00E5,0x0041}, /* 00E4 */
2037  {0x00C6,0x00E6,0x00C6}, {0x00C7,0x00E7,0x0043}, /* 00E6 */
2038  {0x00C8,0x00E8,0x0045}, {0x00C9,0x00E9,0x0045}, /* 00E8 */
2039  {0x00CA,0x00EA,0x0045}, {0x00CB,0x00EB,0x0045}, /* 00EA */
2040  {0x00CC,0x00EC,0x0049}, {0x00CD,0x00ED,0x0049}, /* 00EC */
2041  {0x00CE,0x00EE,0x0049}, {0x00CF,0x00EF,0x0049}, /* 00EE */
2042  {0x00D0,0x00F0,0x00D0}, {0x00D1,0x00F1,0x004E}, /* 00F0 */
2043  {0x00D2,0x00F2,0x004F}, {0x00D3,0x00F3,0x004F}, /* 00F2 */
2044  {0x00D4,0x00F4,0x004F}, {0x00D5,0x00F5,0x004F}, /* 00F4 */
2045  {0x00D6,0x00F6,0x004F}, {0x00F7,0x00F7,0x00F7}, /* 00F6 */
2046  {0x00D8,0x00F8,0x00D8}, {0x00D9,0x00F9,0x0055}, /* 00F8 */
2047  {0x00DA,0x00FA,0x0055}, {0x00DB,0x00FB,0x0055}, /* 00FA */
2048  {0x00DC,0x00FC,0x0055}, {0x00DD,0x00FD,0x0059}, /* 00FC */
2049  {0x00DE,0x00FE,0x00DE}, {0x0178,0x00FF,0x0059} /* 00FE */
2050 };
2051 
2052 static MY_UNICASE_CHARACTER u520p01[]={
2053  {0x0100,0x0101,0x0041}, {0x0100,0x0101,0x0041}, /* 0100 */
2054  {0x0102,0x0103,0x0041}, {0x0102,0x0103,0x0041}, /* 0102 */
2055  {0x0104,0x0105,0x0041}, {0x0104,0x0105,0x0041}, /* 0104 */
2056  {0x0106,0x0107,0x0043}, {0x0106,0x0107,0x0043}, /* 0106 */
2057  {0x0108,0x0109,0x0043}, {0x0108,0x0109,0x0043}, /* 0108 */
2058  {0x010A,0x010B,0x0043}, {0x010A,0x010B,0x0043}, /* 010A */
2059  {0x010C,0x010D,0x0043}, {0x010C,0x010D,0x0043}, /* 010C */
2060  {0x010E,0x010F,0x0044}, {0x010E,0x010F,0x0044}, /* 010E */
2061  {0x0110,0x0111,0x0110}, {0x0110,0x0111,0x0110}, /* 0110 */
2062  {0x0112,0x0113,0x0045}, {0x0112,0x0113,0x0045}, /* 0112 */
2063  {0x0114,0x0115,0x0045}, {0x0114,0x0115,0x0045}, /* 0114 */
2064  {0x0116,0x0117,0x0045}, {0x0116,0x0117,0x0045}, /* 0116 */
2065  {0x0118,0x0119,0x0045}, {0x0118,0x0119,0x0045}, /* 0118 */
2066  {0x011A,0x011B,0x0045}, {0x011A,0x011B,0x0045}, /* 011A */
2067  {0x011C,0x011D,0x0047}, {0x011C,0x011D,0x0047}, /* 011C */
2068  {0x011E,0x011F,0x0047}, {0x011E,0x011F,0x0047}, /* 011E */
2069  {0x0120,0x0121,0x0047}, {0x0120,0x0121,0x0047}, /* 0120 */
2070  {0x0122,0x0123,0x0047}, {0x0122,0x0123,0x0047}, /* 0122 */
2071  {0x0124,0x0125,0x0048}, {0x0124,0x0125,0x0048}, /* 0124 */
2072  {0x0126,0x0127,0x0126}, {0x0126,0x0127,0x0126}, /* 0126 */
2073  {0x0128,0x0129,0x0049}, {0x0128,0x0129,0x0049}, /* 0128 */
2074  {0x012A,0x012B,0x0049}, {0x012A,0x012B,0x0049}, /* 012A */
2075  {0x012C,0x012D,0x0049}, {0x012C,0x012D,0x0049}, /* 012C */
2076  {0x012E,0x012F,0x0049}, {0x012E,0x012F,0x0049}, /* 012E */
2077  {0x0130,0x0069,0x0049}, {0x0049,0x0131,0x0049}, /* 0130 */
2078  {0x0132,0x0133,0x0132}, {0x0132,0x0133,0x0132}, /* 0132 */
2079  {0x0134,0x0135,0x004A}, {0x0134,0x0135,0x004A}, /* 0134 */
2080  {0x0136,0x0137,0x004B}, {0x0136,0x0137,0x004B}, /* 0136 */
2081  {0x0138,0x0138,0x0138}, {0x0139,0x013A,0x004C}, /* 0138 */
2082  {0x0139,0x013A,0x004C}, {0x013B,0x013C,0x004C}, /* 013A */
2083  {0x013B,0x013C,0x004C}, {0x013D,0x013E,0x004C}, /* 013C */
2084  {0x013D,0x013E,0x004C}, {0x013F,0x0140,0x013F}, /* 013E */
2085  {0x013F,0x0140,0x013F}, {0x0141,0x0142,0x0141}, /* 0140 */
2086  {0x0141,0x0142,0x0141}, {0x0143,0x0144,0x004E}, /* 0142 */
2087  {0x0143,0x0144,0x004E}, {0x0145,0x0146,0x004E}, /* 0144 */
2088  {0x0145,0x0146,0x004E}, {0x0147,0x0148,0x004E}, /* 0146 */
2089  {0x0147,0x0148,0x004E}, {0x0149,0x0149,0x0149}, /* 0148 */
2090  {0x014A,0x014B,0x014A}, {0x014A,0x014B,0x014A}, /* 014A */
2091  {0x014C,0x014D,0x004F}, {0x014C,0x014D,0x004F}, /* 014C */
2092  {0x014E,0x014F,0x004F}, {0x014E,0x014F,0x004F}, /* 014E */
2093  {0x0150,0x0151,0x004F}, {0x0150,0x0151,0x004F}, /* 0150 */
2094  {0x0152,0x0153,0x0152}, {0x0152,0x0153,0x0152}, /* 0152 */
2095  {0x0154,0x0155,0x0052}, {0x0154,0x0155,0x0052}, /* 0154 */
2096  {0x0156,0x0157,0x0052}, {0x0156,0x0157,0x0052}, /* 0156 */
2097  {0x0158,0x0159,0x0052}, {0x0158,0x0159,0x0052}, /* 0158 */
2098  {0x015A,0x015B,0x0053}, {0x015A,0x015B,0x0053}, /* 015A */
2099  {0x015C,0x015D,0x0053}, {0x015C,0x015D,0x0053}, /* 015C */
2100  {0x015E,0x015F,0x0053}, {0x015E,0x015F,0x0053}, /* 015E */
2101  {0x0160,0x0161,0x0053}, {0x0160,0x0161,0x0053}, /* 0160 */
2102  {0x0162,0x0163,0x0054}, {0x0162,0x0163,0x0054}, /* 0162 */
2103  {0x0164,0x0165,0x0054}, {0x0164,0x0165,0x0054}, /* 0164 */
2104  {0x0166,0x0167,0x0166}, {0x0166,0x0167,0x0166}, /* 0166 */
2105  {0x0168,0x0169,0x0055}, {0x0168,0x0169,0x0055}, /* 0168 */
2106  {0x016A,0x016B,0x0055}, {0x016A,0x016B,0x0055}, /* 016A */
2107  {0x016C,0x016D,0x0055}, {0x016C,0x016D,0x0055}, /* 016C */
2108  {0x016E,0x016F,0x0055}, {0x016E,0x016F,0x0055}, /* 016E */
2109  {0x0170,0x0171,0x0055}, {0x0170,0x0171,0x0055}, /* 0170 */
2110  {0x0172,0x0173,0x0055}, {0x0172,0x0173,0x0055}, /* 0172 */
2111  {0x0174,0x0175,0x0057}, {0x0174,0x0175,0x0057}, /* 0174 */
2112  {0x0176,0x0177,0x0059}, {0x0176,0x0177,0x0059}, /* 0176 */
2113  {0x0178,0x00FF,0x0059}, {0x0179,0x017A,0x005A}, /* 0178 */
2114  {0x0179,0x017A,0x005A}, {0x017B,0x017C,0x005A}, /* 017A */
2115  {0x017B,0x017C,0x005A}, {0x017D,0x017E,0x005A}, /* 017C */
2116  {0x017D,0x017E,0x005A}, {0x0053,0x017F,0x0053}, /* 017E */
2117  {0x0243,0x0180,0x0243}, {0x0181,0x0253,0x0181}, /* 0180 */
2118  {0x0182,0x0183,0x0182}, {0x0182,0x0183,0x0182}, /* 0182 */
2119  {0x0184,0x0185,0x0184}, {0x0184,0x0185,0x0184}, /* 0184 */
2120  {0x0186,0x0254,0x0186}, {0x0187,0x0188,0x0187}, /* 0186 */
2121  {0x0187,0x0188,0x0187}, {0x0189,0x0256,0x0189}, /* 0188 */
2122  {0x018A,0x0257,0x018A}, {0x018B,0x018C,0x018B}, /* 018A */
2123  {0x018B,0x018C,0x018B}, {0x018D,0x018D,0x018D}, /* 018C */
2124  {0x018E,0x01DD,0x018E}, {0x018F,0x0259,0x018F}, /* 018E */
2125  {0x0190,0x025B,0x0190}, {0x0191,0x0192,0x0191}, /* 0190 */
2126  {0x0191,0x0192,0x0191}, {0x0193,0x0260,0x0193}, /* 0192 */
2127  {0x0194,0x0263,0x0194}, {0x01F6,0x0195,0x01F6}, /* 0194 */
2128  {0x0196,0x0269,0x0196}, {0x0197,0x0268,0x0197}, /* 0196 */
2129  {0x0198,0x0199,0x0198}, {0x0198,0x0199,0x0198}, /* 0198 */
2130  {0x023D,0x019A,0x023D}, {0x019B,0x019B,0x019B}, /* 019A */
2131  {0x019C,0x026F,0x019C}, {0x019D,0x0272,0x019D}, /* 019C */
2132  {0x0220,0x019E,0x0220}, {0x019F,0x0275,0x019F}, /* 019E */
2133  {0x01A0,0x01A1,0x004F}, {0x01A0,0x01A1,0x004F}, /* 01A0 */
2134  {0x01A2,0x01A3,0x01A2}, {0x01A2,0x01A3,0x01A2}, /* 01A2 */
2135  {0x01A4,0x01A5,0x01A4}, {0x01A4,0x01A5,0x01A4}, /* 01A4 */
2136  {0x01A6,0x0280,0x01A6}, {0x01A7,0x01A8,0x01A7}, /* 01A6 */
2137  {0x01A7,0x01A8,0x01A7}, {0x01A9,0x0283,0x01A9}, /* 01A8 */
2138  {0x01AA,0x01AA,0x01AA}, {0x01AB,0x01AB,0x01AB}, /* 01AA */
2139  {0x01AC,0x01AD,0x01AC}, {0x01AC,0x01AD,0x01AC}, /* 01AC */
2140  {0x01AE,0x0288,0x01AE}, {0x01AF,0x01B0,0x0055}, /* 01AE */
2141  {0x01AF,0x01B0,0x0055}, {0x01B1,0x028A,0x01B1}, /* 01B0 */
2142  {0x01B2,0x028B,0x01B2}, {0x01B3,0x01B4,0x01B3}, /* 01B2 */
2143  {0x01B3,0x01B4,0x01B3}, {0x01B5,0x01B6,0x01B5}, /* 01B4 */
2144  {0x01B5,0x01B6,0x01B5}, {0x01B7,0x0292,0x01B7}, /* 01B6 */
2145  {0x01B8,0x01B9,0x01B8}, {0x01B8,0x01B9,0x01B8}, /* 01B8 */
2146  {0x01BA,0x01BA,0x01BA}, {0x01BB,0x01BB,0x01BB}, /* 01BA */
2147  {0x01BC,0x01BD,0x01BC}, {0x01BC,0x01BD,0x01BC}, /* 01BC */
2148  {0x01BE,0x01BE,0x01BE}, {0x01F7,0x01BF,0x01F7}, /* 01BE */
2149  {0x01C0,0x01C0,0x01C0}, {0x01C1,0x01C1,0x01C1}, /* 01C0 */
2150  {0x01C2,0x01C2,0x01C2}, {0x01C3,0x01C3,0x01C3}, /* 01C2 */
2151  {0x01C4,0x01C6,0x01C4}, {0x01C4,0x01C6,0x01C4}, /* 01C4 */
2152  {0x01C4,0x01C6,0x01C4}, {0x01C7,0x01C9,0x01C7}, /* 01C6 */
2153  {0x01C7,0x01C9,0x01C7}, {0x01C7,0x01C9,0x01C7}, /* 01C8 */
2154  {0x01CA,0x01CC,0x01CA}, {0x01CA,0x01CC,0x01CA}, /* 01CA */
2155  {0x01CA,0x01CC,0x01CA}, {0x01CD,0x01CE,0x0041}, /* 01CC */
2156  {0x01CD,0x01CE,0x0041}, {0x01CF,0x01D0,0x0049}, /* 01CE */
2157  {0x01CF,0x01D0,0x0049}, {0x01D1,0x01D2,0x004F}, /* 01D0 */
2158  {0x01D1,0x01D2,0x004F}, {0x01D3,0x01D4,0x0055}, /* 01D2 */
2159  {0x01D3,0x01D4,0x0055}, {0x01D5,0x01D6,0x0055}, /* 01D4 */
2160  {0x01D5,0x01D6,0x0055}, {0x01D7,0x01D8,0x0055}, /* 01D6 */
2161  {0x01D7,0x01D8,0x0055}, {0x01D9,0x01DA,0x0055}, /* 01D8 */
2162  {0x01D9,0x01DA,0x0055}, {0x01DB,0x01DC,0x0055}, /* 01DA */
2163  {0x01DB,0x01DC,0x0055}, {0x018E,0x01DD,0x018E}, /* 01DC */
2164  {0x01DE,0x01DF,0x0041}, {0x01DE,0x01DF,0x0041}, /* 01DE */
2165  {0x01E0,0x01E1,0x0041}, {0x01E0,0x01E1,0x0041}, /* 01E0 */
2166  {0x01E2,0x01E3,0x00C6}, {0x01E2,0x01E3,0x00C6}, /* 01E2 */
2167  {0x01E4,0x01E5,0x01E4}, {0x01E4,0x01E5,0x01E4}, /* 01E4 */
2168  {0x01E6,0x01E7,0x0047}, {0x01E6,0x01E7,0x0047}, /* 01E6 */
2169  {0x01E8,0x01E9,0x004B}, {0x01E8,0x01E9,0x004B}, /* 01E8 */
2170  {0x01EA,0x01EB,0x004F}, {0x01EA,0x01EB,0x004F}, /* 01EA */
2171  {0x01EC,0x01ED,0x004F}, {0x01EC,0x01ED,0x004F}, /* 01EC */
2172  {0x01EE,0x01EF,0x01B7}, {0x01EE,0x01EF,0x01B7}, /* 01EE */
2173  {0x01F0,0x01F0,0x004A}, {0x01F1,0x01F3,0x01F1}, /* 01F0 */
2174  {0x01F1,0x01F3,0x01F1}, {0x01F1,0x01F3,0x01F1}, /* 01F2 */
2175  {0x01F4,0x01F5,0x0047}, {0x01F4,0x01F5,0x0047}, /* 01F4 */
2176  {0x01F6,0x0195,0x01F6}, {0x01F7,0x01BF,0x01F7}, /* 01F6 */
2177  {0x01F8,0x01F9,0x004E}, {0x01F8,0x01F9,0x004E}, /* 01F8 */
2178  {0x01FA,0x01FB,0x0041}, {0x01FA,0x01FB,0x0041}, /* 01FA */
2179  {0x01FC,0x01FD,0x00C6}, {0x01FC,0x01FD,0x00C6}, /* 01FC */
2180  {0x01FE,0x01FF,0x00D8}, {0x01FE,0x01FF,0x00D8} /* 01FE */
2181 };
2182 
2183 static MY_UNICASE_CHARACTER u520p02[]={
2184  {0x0200,0x0201,0x0041}, {0x0200,0x0201,0x0041}, /* 0200 */
2185  {0x0202,0x0203,0x0041}, {0x0202,0x0203,0x0041}, /* 0202 */
2186  {0x0204,0x0205,0x0045}, {0x0204,0x0205,0x0045}, /* 0204 */
2187  {0x0206,0x0207,0x0045}, {0x0206,0x0207,0x0045}, /* 0206 */
2188  {0x0208,0x0209,0x0049}, {0x0208,0x0209,0x0049}, /* 0208 */
2189  {0x020A,0x020B,0x0049}, {0x020A,0x020B,0x0049}, /* 020A */
2190  {0x020C,0x020D,0x004F}, {0x020C,0x020D,0x004F}, /* 020C */
2191  {0x020E,0x020F,0x004F}, {0x020E,0x020F,0x004F}, /* 020E */
2192  {0x0210,0x0211,0x0052}, {0x0210,0x0211,0x0052}, /* 0210 */
2193  {0x0212,0x0213,0x0052}, {0x0212,0x0213,0x0052}, /* 0212 */
2194  {0x0214,0x0215,0x0055}, {0x0214,0x0215,0x0055}, /* 0214 */
2195  {0x0216,0x0217,0x0055}, {0x0216,0x0217,0x0055}, /* 0216 */
2196  {0x0218,0x0219,0x0053}, {0x0218,0x0219,0x0053}, /* 0218 */
2197  {0x021A,0x021B,0x0054}, {0x021A,0x021B,0x0054}, /* 021A */
2198  {0x021C,0x021D,0x021C}, {0x021C,0x021D,0x021C}, /* 021C */
2199  {0x021E,0x021F,0x0048}, {0x021E,0x021F,0x0048}, /* 021E */
2200  {0x0220,0x019E,0x0220}, {0x0221,0x0221,0x0221}, /* 0220 */
2201  {0x0222,0x0223,0x0222}, {0x0222,0x0223,0x0222}, /* 0222 */
2202  {0x0224,0x0225,0x0224}, {0x0224,0x0225,0x0224}, /* 0224 */
2203  {0x0226,0x0227,0x0041}, {0x0226,0x0227,0x0041}, /* 0226 */
2204  {0x0228,0x0229,0x0045}, {0x0228,0x0229,0x0045}, /* 0228 */
2205  {0x022A,0x022B,0x004F}, {0x022A,0x022B,0x004F}, /* 022A */
2206  {0x022C,0x022D,0x004F}, {0x022C,0x022D,0x004F}, /* 022C */
2207  {0x022E,0x022F,0x004F}, {0x022E,0x022F,0x004F}, /* 022E */
2208  {0x0230,0x0231,0x004F}, {0x0230,0x0231,0x004F}, /* 0230 */
2209  {0x0232,0x0233,0x0059}, {0x0232,0x0233,0x0059}, /* 0232 */
2210  {0x0234,0x0234,0x0234}, {0x0235,0x0235,0x0235}, /* 0234 */
2211  {0x0236,0x0236,0x0236}, {0x0237,0x0237,0x0237}, /* 0236 */
2212  {0x0238,0x0238,0x0238}, {0x0239,0x0239,0x0239}, /* 0238 */
2213  {0x023A,0x2C65,0x023A}, {0x023B,0x023C,0x023B}, /* 023A */
2214  {0x023B,0x023C,0x023B}, {0x023D,0x019A,0x023D}, /* 023C */
2215  {0x023E,0x2C66,0x023E}, {0x2C7E,0x023F,0x2C7E}, /* 023E */
2216  {0x2C7F,0x0240,0x2C7F}, {0x0241,0x0242,0x0241}, /* 0240 */
2217  {0x0241,0x0242,0x0241}, {0x0243,0x0180,0x0243}, /* 0242 */
2218  {0x0244,0x0289,0x0244}, {0x0245,0x028C,0x0245}, /* 0244 */
2219  {0x0246,0x0247,0x0246}, {0x0246,0x0247,0x0246}, /* 0246 */
2220  {0x0248,0x0249,0x0248}, {0x0248,0x0249,0x0248}, /* 0248 */
2221  {0x024A,0x024B,0x024A}, {0x024A,0x024B,0x024A}, /* 024A */
2222  {0x024C,0x024D,0x024C}, {0x024C,0x024D,0x024C}, /* 024C */
2223  {0x024E,0x024F,0x024E}, {0x024E,0x024F,0x024E}, /* 024E */
2224  {0x2C6F,0x0250,0x2C6F}, {0x2C6D,0x0251,0x2C6D}, /* 0250 */
2225  {0x2C70,0x0252,0x2C70}, {0x0181,0x0253,0x0181}, /* 0252 */
2226  {0x0186,0x0254,0x0186}, {0x0255,0x0255,0x0255}, /* 0254 */
2227  {0x0189,0x0256,0x0189}, {0x018A,0x0257,0x018A}, /* 0256 */
2228  {0x0258,0x0258,0x0258}, {0x018F,0x0259,0x018F}, /* 0258 */
2229  {0x025A,0x025A,0x025A}, {0x0190,0x025B,0x0190}, /* 025A */
2230  {0x025C,0x025C,0x025C}, {0x025D,0x025D,0x025D}, /* 025C */
2231  {0x025E,0x025E,0x025E}, {0x025F,0x025F,0x025F}, /* 025E */
2232  {0x0193,0x0260,0x0193}, {0x0261,0x0261,0x0261}, /* 0260 */
2233  {0x0262,0x0262,0x0262}, {0x0194,0x0263,0x0194}, /* 0262 */
2234  {0x0264,0x0264,0x0264}, {0x0265,0x0265,0x0265}, /* 0264 */
2235  {0x0266,0x0266,0x0266}, {0x0267,0x0267,0x0267}, /* 0266 */
2236  {0x0197,0x0268,0x0197}, {0x0196,0x0269,0x0196}, /* 0268 */
2237  {0x026A,0x026A,0x026A}, {0x2C62,0x026B,0x2C62}, /* 026A */
2238  {0x026C,0x026C,0x026C}, {0x026D,0x026D,0x026D}, /* 026C */
2239  {0x026E,0x026E,0x026E}, {0x019C,0x026F,0x019C}, /* 026E */
2240  {0x0270,0x0270,0x0270}, {0x2C6E,0x0271,0x2C6E}, /* 0270 */
2241  {0x019D,0x0272,0x019D}, {0x0273,0x0273,0x0273}, /* 0272 */
2242  {0x0274,0x0274,0x0274}, {0x019F,0x0275,0x019F}, /* 0274 */
2243  {0x0276,0x0276,0x0276}, {0x0277,0x0277,0x0277}, /* 0276 */
2244  {0x0278,0x0278,0x0278}, {0x0279,0x0279,0x0279}, /* 0278 */
2245  {0x027A,0x027A,0x027A}, {0x027B,0x027B,0x027B}, /* 027A */
2246  {0x027C,0x027C,0x027C}, {0x2C64,0x027D,0x2C64}, /* 027C */
2247  {0x027E,0x027E,0x027E}, {0x027F,0x027F,0x027F}, /* 027E */
2248  {0x01A6,0x0280,0x01A6}, {0x0281,0x0281,0x0281}, /* 0280 */
2249  {0x0282,0x0282,0x0282}, {0x01A9,0x0283,0x01A9}, /* 0282 */
2250  {0x0284,0x0284,0x0284}, {0x0285,0x0285,0x0285}, /* 0284 */
2251  {0x0286,0x0286,0x0286}, {0x0287,0x0287,0x0287}, /* 0286 */
2252  {0x01AE,0x0288,0x01AE}, {0x0244,0x0289,0x0244}, /* 0288 */
2253  {0x01B1,0x028A,0x01B1}, {0x01B2,0x028B,0x01B2}, /* 028A */
2254  {0x0245,0x028C,0x0245}, {0x028D,0x028D,0x028D}, /* 028C */
2255  {0x028E,0x028E,0x028E}, {0x028F,0x028F,0x028F}, /* 028E */
2256  {0x0290,0x0290,0x0290}, {0x0291,0x0291,0x0291}, /* 0290 */
2257  {0x01B7,0x0292,0x01B7}, {0x0293,0x0293,0x0293}, /* 0292 */
2258  {0x0294,0x0294,0x0294}, {0x0295,0x0295,0x0295}, /* 0294 */
2259  {0x0296,0x0296,0x0296}, {0x0297,0x0297,0x0297}, /* 0296 */
2260  {0x0298,0x0298,0x0298}, {0x0299,0x0299,0x0299}, /* 0298 */
2261  {0x029A,0x029A,0x029A}, {0x029B,0x029B,0x029B}, /* 029A */
2262  {0x029C,0x029C,0x029C}, {0x029D,0x029D,0x029D}, /* 029C */
2263  {0x029E,0x029E,0x029E}, {0x029F,0x029F,0x029F}, /* 029E */
2264  {0x02A0,0x02A0,0x02A0}, {0x02A1,0x02A1,0x02A1}, /* 02A0 */
2265  {0x02A2,0x02A2,0x02A2}, {0x02A3,0x02A3,0x02A3}, /* 02A2 */
2266  {0x02A4,0x02A4,0x02A4}, {0x02A5,0x02A5,0x02A5}, /* 02A4 */
2267  {0x02A6,0x02A6,0x02A6}, {0x02A7,0x02A7,0x02A7}, /* 02A6 */
2268  {0x02A8,0x02A8,0x02A8}, {0x02A9,0x02A9,0x02A9}, /* 02A8 */
2269  {0x02AA,0x02AA,0x02AA}, {0x02AB,0x02AB,0x02AB}, /* 02AA */
2270  {0x02AC,0x02AC,0x02AC}, {0x02AD,0x02AD,0x02AD}, /* 02AC */
2271  {0x02AE,0x02AE,0x02AE}, {0x02AF,0x02AF,0x02AF}, /* 02AE */
2272  {0x02B0,0x02B0,0x02B0}, {0x02B1,0x02B1,0x02B1}, /* 02B0 */
2273  {0x02B2,0x02B2,0x02B2}, {0x02B3,0x02B3,0x02B3}, /* 02B2 */
2274  {0x02B4,0x02B4,0x02B4}, {0x02B5,0x02B5,0x02B5}, /* 02B4 */
2275  {0x02B6,0x02B6,0x02B6}, {0x02B7,0x02B7,0x02B7}, /* 02B6 */
2276  {0x02B8,0x02B8,0x02B8}, {0x02B9,0x02B9,0x02B9}, /* 02B8 */
2277  {0x02BA,0x02BA,0x02BA}, {0x02BB,0x02BB,0x02BB}, /* 02BA */
2278  {0x02BC,0x02BC,0x02BC}, {0x02BD,0x02BD,0x02BD}, /* 02BC */
2279  {0x02BE,0x02BE,0x02BE}, {0x02BF,0x02BF,0x02BF}, /* 02BE */
2280  {0x02C0,0x02C0,0x02C0}, {0x02C1,0x02C1,0x02C1}, /* 02C0 */
2281  {0x02C2,0x02C2,0x02C2}, {0x02C3,0x02C3,0x02C3}, /* 02C2 */
2282  {0x02C4,0x02C4,0x02C4}, {0x02C5,0x02C5,0x02C5}, /* 02C4 */
2283  {0x02C6,0x02C6,0x02C6}, {0x02C7,0x02C7,0x02C7}, /* 02C6 */
2284  {0x02C8,0x02C8,0x02C8}, {0x02C9,0x02C9,0x02C9}, /* 02C8 */
2285  {0x02CA,0x02CA,0x02CA}, {0x02CB,0x02CB,0x02CB}, /* 02CA */
2286  {0x02CC,0x02CC,0x02CC}, {0x02CD,0x02CD,0x02CD}, /* 02CC */
2287  {0x02CE,0x02CE,0x02CE}, {0x02CF,0x02CF,0x02CF}, /* 02CE */
2288  {0x02D0,0x02D0,0x02D0}, {0x02D1,0x02D1,0x02D1}, /* 02D0 */
2289  {0x02D2,0x02D2,0x02D2}, {0x02D3,0x02D3,0x02D3}, /* 02D2 */
2290  {0x02D4,0x02D4,0x02D4}, {0x02D5,0x02D5,0x02D5}, /* 02D4 */
2291  {0x02D6,0x02D6,0x02D6}, {0x02D7,0x02D7,0x02D7}, /* 02D6 */
2292  {0x02D8,0x02D8,0x02D8}, {0x02D9,0x02D9,0x02D9}, /* 02D8 */
2293  {0x02DA,0x02DA,0x02DA}, {0x02DB,0x02DB,0x02DB}, /* 02DA */
2294  {0x02DC,0x02DC,0x02DC}, {0x02DD,0x02DD,0x02DD}, /* 02DC */
2295  {0x02DE,0x02DE,0x02DE}, {0x02DF,0x02DF,0x02DF}, /* 02DE */
2296  {0x02E0,0x02E0,0x02E0}, {0x02E1,0x02E1,0x02E1}, /* 02E0 */
2297  {0x02E2,0x02E2,0x02E2}, {0x02E3,0x02E3,0x02E3}, /* 02E2 */
2298  {0x02E4,0x02E4,0x02E4}, {0x02E5,0x02E5,0x02E5}, /* 02E4 */
2299  {0x02E6,0x02E6,0x02E6}, {0x02E7,0x02E7,0x02E7}, /* 02E6 */
2300  {0x02E8,0x02E8,0x02E8}, {0x02E9,0x02E9,0x02E9}, /* 02E8 */
2301  {0x02EA,0x02EA,0x02EA}, {0x02EB,0x02EB,0x02EB}, /* 02EA */
2302  {0x02EC,0x02EC,0x02EC}, {0x02ED,0x02ED,0x02ED}, /* 02EC */
2303  {0x02EE,0x02EE,0x02EE}, {0x02EF,0x02EF,0x02EF}, /* 02EE */
2304  {0x02F0,0x02F0,0x02F0}, {0x02F1,0x02F1,0x02F1}, /* 02F0 */
2305  {0x02F2,0x02F2,0x02F2}, {0x02F3,0x02F3,0x02F3}, /* 02F2 */
2306  {0x02F4,0x02F4,0x02F4}, {0x02F5,0x02F5,0x02F5}, /* 02F4 */
2307  {0x02F6,0x02F6,0x02F6}, {0x02F7,0x02F7,0x02F7}, /* 02F6 */
2308  {0x02F8,0x02F8,0x02F8}, {0x02F9,0x02F9,0x02F9}, /* 02F8 */
2309  {0x02FA,0x02FA,0x02FA}, {0x02FB,0x02FB,0x02FB}, /* 02FA */
2310  {0x02FC,0x02FC,0x02FC}, {0x02FD,0x02FD,0x02FD}, /* 02FC */
2311  {0x02FE,0x02FE,0x02FE}, {0x02FF,0x02FF,0x02FF} /* 02FE */
2312 };
2313 
2314 static MY_UNICASE_CHARACTER u520p03[]={
2315  {0x0300,0x0300,0x0300}, {0x0301,0x0301,0x0301}, /* 0300 */
2316  {0x0302,0x0302,0x0302}, {0x0303,0x0303,0x0303}, /* 0302 */
2317  {0x0304,0x0304,0x0304}, {0x0305,0x0305,0x0305}, /* 0304 */
2318  {0x0306,0x0306,0x0306}, {0x0307,0x0307,0x0307}, /* 0306 */
2319  {0x0308,0x0308,0x0308}, {0x0309,0x0309,0x0309}, /* 0308 */
2320  {0x030A,0x030A,0x030A}, {0x030B,0x030B,0x030B}, /* 030A */
2321  {0x030C,0x030C,0x030C}, {0x030D,0x030D,0x030D}, /* 030C */
2322  {0x030E,0x030E,0x030E}, {0x030F,0x030F,0x030F}, /* 030E */
2323  {0x0310,0x0310,0x0310}, {0x0311,0x0311,0x0311}, /* 0310 */
2324  {0x0312,0x0312,0x0312}, {0x0313,0x0313,0x0313}, /* 0312 */
2325  {0x0314,0x0314,0x0314}, {0x0315,0x0315,0x0315}, /* 0314 */
2326  {0x0316,0x0316,0x0316}, {0x0317,0x0317,0x0317}, /* 0316 */
2327  {0x0318,0x0318,0x0318}, {0x0319,0x0319,0x0319}, /* 0318 */
2328  {0x031A,0x031A,0x031A}, {0x031B,0x031B,0x031B}, /* 031A */
2329  {0x031C,0x031C,0x031C}, {0x031D,0x031D,0x031D}, /* 031C */
2330  {0x031E,0x031E,0x031E}, {0x031F,0x031F,0x031F}, /* 031E */
2331  {0x0320,0x0320,0x0320}, {0x0321,0x0321,0x0321}, /* 0320 */
2332  {0x0322,0x0322,0x0322}, {0x0323,0x0323,0x0323}, /* 0322 */
2333  {0x0324,0x0324,0x0324}, {0x0325,0x0325,0x0325}, /* 0324 */
2334  {0x0326,0x0326,0x0326}, {0x0327,0x0327,0x0327}, /* 0326 */
2335  {0x0328,0x0328,0x0328}, {0x0329,0x0329,0x0329}, /* 0328 */
2336  {0x032A,0x032A,0x032A}, {0x032B,0x032B,0x032B}, /* 032A */
2337  {0x032C,0x032C,0x032C}, {0x032D,0x032D,0x032D}, /* 032C */
2338  {0x032E,0x032E,0x032E}, {0x032F,0x032F,0x032F}, /* 032E */
2339  {0x0330,0x0330,0x0330}, {0x0331,0x0331,0x0331}, /* 0330 */
2340  {0x0332,0x0332,0x0332}, {0x0333,0x0333,0x0333}, /* 0332 */
2341  {0x0334,0x0334,0x0334}, {0x0335,0x0335,0x0335}, /* 0334 */
2342  {0x0336,0x0336,0x0336}, {0x0337,0x0337,0x0337}, /* 0336 */
2343  {0x0338,0x0338,0x0338}, {0x0339,0x0339,0x0339}, /* 0338 */
2344  {0x033A,0x033A,0x033A}, {0x033B,0x033B,0x033B}, /* 033A */
2345  {0x033C,0x033C,0x033C}, {0x033D,0x033D,0x033D}, /* 033C */
2346  {0x033E,0x033E,0x033E}, {0x033F,0x033F,0x033F}, /* 033E */
2347  {0x0340,0x0340,0x0340}, {0x0341,0x0341,0x0341}, /* 0340 */
2348  {0x0342,0x0342,0x0342}, {0x0343,0x0343,0x0343}, /* 0342 */
2349  {0x0344,0x0344,0x0344}, {0x0399,0x0345,0x0399}, /* 0344 */
2350  {0x0346,0x0346,0x0346}, {0x0347,0x0347,0x0347}, /* 0346 */
2351  {0x0348,0x0348,0x0348}, {0x0349,0x0349,0x0349}, /* 0348 */
2352  {0x034A,0x034A,0x034A}, {0x034B,0x034B,0x034B}, /* 034A */
2353  {0x034C,0x034C,0x034C}, {0x034D,0x034D,0x034D}, /* 034C */
2354  {0x034E,0x034E,0x034E}, {0x034F,0x034F,0x034F}, /* 034E */
2355  {0x0350,0x0350,0x0350}, {0x0351,0x0351,0x0351}, /* 0350 */
2356  {0x0352,0x0352,0x0352}, {0x0353,0x0353,0x0353}, /* 0352 */
2357  {0x0354,0x0354,0x0354}, {0x0355,0x0355,0x0355}, /* 0354 */
2358  {0x0356,0x0356,0x0356}, {0x0357,0x0357,0x0357}, /* 0356 */
2359  {0x0358,0x0358,0x0358}, {0x0359,0x0359,0x0359}, /* 0358 */
2360  {0x035A,0x035A,0x035A}, {0x035B,0x035B,0x035B}, /* 035A */
2361  {0x035C,0x035C,0x035C}, {0x035D,0x035D,0x035D}, /* 035C */
2362  {0x035E,0x035E,0x035E}, {0x035F,0x035F,0x035F}, /* 035E */
2363  {0x0360,0x0360,0x0360}, {0x0361,0x0361,0x0361}, /* 0360 */
2364  {0x0362,0x0362,0x0362}, {0x0363,0x0363,0x0363}, /* 0362 */
2365  {0x0364,0x0364,0x0364}, {0x0365,0x0365,0x0365}, /* 0364 */
2366  {0x0366,0x0366,0x0366}, {0x0367,0x0367,0x0367}, /* 0366 */
2367  {0x0368,0x0368,0x0368}, {0x0369,0x0369,0x0369}, /* 0368 */
2368  {0x036A,0x036A,0x036A}, {0x036B,0x036B,0x036B}, /* 036A */
2369  {0x036C,0x036C,0x036C}, {0x036D,0x036D,0x036D}, /* 036C */
2370  {0x036E,0x036E,0x036E}, {0x036F,0x036F,0x036F}, /* 036E */
2371  {0x0370,0x0371,0x0370}, {0x0370,0x0371,0x0370}, /* 0370 */
2372  {0x0372,0x0373,0x0372}, {0x0372,0x0373,0x0372}, /* 0372 */
2373  {0x0374,0x0374,0x0374}, {0x0375,0x0375,0x0375}, /* 0374 */
2374  {0x0376,0x0377,0x0376}, {0x0376,0x0377,0x0376}, /* 0376 */
2375  {0x0378,0x0378,0x0378}, {0x0379,0x0379,0x0379}, /* 0378 */
2376  {0x037A,0x037A,0x037A}, {0x03FD,0x037B,0x03FD}, /* 037A */
2377  {0x03FE,0x037C,0x03FE}, {0x03FF,0x037D,0x03FF}, /* 037C */
2378  {0x037E,0x037E,0x037E}, {0x037F,0x037F,0x037F}, /* 037E */
2379  {0x0380,0x0380,0x0380}, {0x0381,0x0381,0x0381}, /* 0380 */
2380  {0x0382,0x0382,0x0382}, {0x0383,0x0383,0x0383}, /* 0382 */
2381  {0x0384,0x0384,0x0384}, {0x0385,0x0385,0x0385}, /* 0384 */
2382  {0x0386,0x03AC,0x0391}, {0x0387,0x0387,0x0387}, /* 0386 */
2383  {0x0388,0x03AD,0x0395}, {0x0389,0x03AE,0x0397}, /* 0388 */
2384  {0x038A,0x03AF,0x0399}, {0x038B,0x038B,0x038B}, /* 038A */
2385  {0x038C,0x03CC,0x039F}, {0x038D,0x038D,0x038D}, /* 038C */
2386  {0x038E,0x03CD,0x03A5}, {0x038F,0x03CE,0x03A9}, /* 038E */
2387  {0x0390,0x0390,0x0399}, {0x0391,0x03B1,0x0391}, /* 0390 */
2388  {0x0392,0x03B2,0x0392}, {0x0393,0x03B3,0x0393}, /* 0392 */
2389  {0x0394,0x03B4,0x0394}, {0x0395,0x03B5,0x0395}, /* 0394 */
2390  {0x0396,0x03B6,0x0396}, {0x0397,0x03B7,0x0397}, /* 0396 */
2391  {0x0398,0x03B8,0x0398}, {0x0399,0x03B9,0x0399}, /* 0398 */
2392  {0x039A,0x03BA,0x039A}, {0x039B,0x03BB,0x039B}, /* 039A */
2393  {0x039C,0x03BC,0x039C}, {0x039D,0x03BD,0x039D}, /* 039C */
2394  {0x039E,0x03BE,0x039E}, {0x039F,0x03BF,0x039F}, /* 039E */
2395  {0x03A0,0x03C0,0x03A0}, {0x03A1,0x03C1,0x03A1}, /* 03A0 */
2396  {0x03A2,0x03A2,0x03A2}, {0x03A3,0x03C3,0x03A3}, /* 03A2 */
2397  {0x03A4,0x03C4,0x03A4}, {0x03A5,0x03C5,0x03A5}, /* 03A4 */
2398  {0x03A6,0x03C6,0x03A6}, {0x03A7,0x03C7,0x03A7}, /* 03A6 */
2399  {0x03A8,0x03C8,0x03A8}, {0x03A9,0x03C9,0x03A9}, /* 03A8 */
2400  {0x03AA,0x03CA,0x0399}, {0x03AB,0x03CB,0x03A5}, /* 03AA */
2401  {0x0386,0x03AC,0x0391}, {0x0388,0x03AD,0x0395}, /* 03AC */
2402  {0x0389,0x03AE,0x0397}, {0x038A,0x03AF,0x0399}, /* 03AE */
2403  {0x03B0,0x03B0,0x03A5}, {0x0391,0x03B1,0x0391}, /* 03B0 */
2404  {0x0392,0x03B2,0x0392}, {0x0393,0x03B3,0x0393}, /* 03B2 */
2405  {0x0394,0x03B4,0x0394}, {0x0395,0x03B5,0x0395}, /* 03B4 */
2406  {0x0396,0x03B6,0x0396}, {0x0397,0x03B7,0x0397}, /* 03B6 */
2407  {0x0398,0x03B8,0x0398}, {0x0399,0x03B9,0x0399}, /* 03B8 */
2408  {0x039A,0x03BA,0x039A}, {0x039B,0x03BB,0x039B}, /* 03BA */
2409  {0x039C,0x03BC,0x039C}, {0x039D,0x03BD,0x039D}, /* 03BC */
2410  {0x039E,0x03BE,0x039E}, {0x039F,0x03BF,0x039F}, /* 03BE */
2411  {0x03A0,0x03C0,0x03A0}, {0x03A1,0x03C1,0x03A1}, /* 03C0 */
2412  {0x03A3,0x03C2,0x03A3}, {0x03A3,0x03C3,0x03A3}, /* 03C2 */
2413  {0x03A4,0x03C4,0x03A4}, {0x03A5,0x03C5,0x03A5}, /* 03C4 */
2414  {0x03A6,0x03C6,0x03A6}, {0x03A7,0x03C7,0x03A7}, /* 03C6 */
2415  {0x03A8,0x03C8,0x03A8}, {0x03A9,0x03C9,0x03A9}, /* 03C8 */
2416  {0x03AA,0x03CA,0x0399}, {0x03AB,0x03CB,0x03A5}, /* 03CA */
2417  {0x038C,0x03CC,0x039F}, {0x038E,0x03CD,0x03A5}, /* 03CC */
2418  {0x038F,0x03CE,0x03A9}, {0x03CF,0x03D7,0x03CF}, /* 03CE */
2419  {0x0392,0x03D0,0x0392}, {0x0398,0x03D1,0x0398}, /* 03D0 */
2420  {0x03D2,0x03D2,0x03D2}, {0x03D3,0x03D3,0x03D2}, /* 03D2 */
2421  {0x03D4,0x03D4,0x03D2}, {0x03A6,0x03D5,0x03A6}, /* 03D4 */
2422  {0x03A0,0x03D6,0x03A0}, {0x03CF,0x03D7,0x03CF}, /* 03D6 */
2423  {0x03D8,0x03D9,0x03D8}, {0x03D8,0x03D9,0x03D8}, /* 03D8 */
2424  {0x03DA,0x03DB,0x03DA}, {0x03DA,0x03DB,0x03DA}, /* 03DA */
2425  {0x03DC,0x03DD,0x03DC}, {0x03DC,0x03DD,0x03DC}, /* 03DC */
2426  {0x03DE,0x03DF,0x03DE}, {0x03DE,0x03DF,0x03DE}, /* 03DE */
2427  {0x03E0,0x03E1,0x03E0}, {0x03E0,0x03E1,0x03E0}, /* 03E0 */
2428  {0x03E2,0x03E3,0x03E2}, {0x03E2,0x03E3,0x03E2}, /* 03E2 */
2429  {0x03E4,0x03E5,0x03E4}, {0x03E4,0x03E5,0x03E4}, /* 03E4 */
2430  {0x03E6,0x03E7,0x03E6}, {0x03E6,0x03E7,0x03E6}, /* 03E6 */
2431  {0x03E8,0x03E9,0x03E8}, {0x03E8,0x03E9,0x03E8}, /* 03E8 */
2432  {0x03EA,0x03EB,0x03EA}, {0x03EA,0x03EB,0x03EA}, /* 03EA */
2433  {0x03EC,0x03ED,0x03EC}, {0x03EC,0x03ED,0x03EC}, /* 03EC */
2434  {0x03EE,0x03EF,0x03EE}, {0x03EE,0x03EF,0x03EE}, /* 03EE */
2435  {0x039A,0x03F0,0x039A}, {0x03A1,0x03F1,0x03A1}, /* 03F0 */
2436  {0x03F9,0x03F2,0x03F9}, {0x03F3,0x03F3,0x03F3}, /* 03F2 */
2437  {0x03F4,0x03B8,0x03F4}, {0x0395,0x03F5,0x0395}, /* 03F4 */
2438  {0x03F6,0x03F6,0x03F6}, {0x03F7,0x03F8,0x03F7}, /* 03F6 */
2439  {0x03F7,0x03F8,0x03F7}, {0x03F9,0x03F2,0x03F9}, /* 03F8 */
2440  {0x03FA,0x03FB,0x03FA}, {0x03FA,0x03FB,0x03FA}, /* 03FA */
2441  {0x03FC,0x03FC,0x03FC}, {0x03FD,0x037B,0x03FD}, /* 03FC */
2442  {0x03FE,0x037C,0x03FE}, {0x03FF,0x037D,0x03FF} /* 03FE */
2443 };
2444 
2445 static MY_UNICASE_CHARACTER u520p04[]={
2446  {0x0400,0x0450,0x0415}, {0x0401,0x0451,0x0415}, /* 0400 */
2447  {0x0402,0x0452,0x0402}, {0x0403,0x0453,0x0413}, /* 0402 */
2448  {0x0404,0x0454,0x0404}, {0x0405,0x0455,0x0405}, /* 0404 */
2449  {0x0406,0x0456,0x0406}, {0x0407,0x0457,0x0406}, /* 0406 */
2450  {0x0408,0x0458,0x0408}, {0x0409,0x0459,0x0409}, /* 0408 */
2451  {0x040A,0x045A,0x040A}, {0x040B,0x045B,0x040B}, /* 040A */
2452  {0x040C,0x045C,0x041A}, {0x040D,0x045D,0x0418}, /* 040C */
2453  {0x040E,0x045E,0x0423}, {0x040F,0x045F,0x040F}, /* 040E */
2454  {0x0410,0x0430,0x0410}, {0x0411,0x0431,0x0411}, /* 0410 */
2455  {0x0412,0x0432,0x0412}, {0x0413,0x0433,0x0413}, /* 0412 */
2456  {0x0414,0x0434,0x0414}, {0x0415,0x0435,0x0415}, /* 0414 */
2457  {0x0416,0x0436,0x0416}, {0x0417,0x0437,0x0417}, /* 0416 */
2458  {0x0418,0x0438,0x0418}, {0x0419,0x0439,0x0419}, /* 0418 */
2459  {0x041A,0x043A,0x041A}, {0x041B,0x043B,0x041B}, /* 041A */
2460  {0x041C,0x043C,0x041C}, {0x041D,0x043D,0x041D}, /* 041C */
2461  {0x041E,0x043E,0x041E}, {0x041F,0x043F,0x041F}, /* 041E */
2462  {0x0420,0x0440,0x0420}, {0x0421,0x0441,0x0421}, /* 0420 */
2463  {0x0422,0x0442,0x0422}, {0x0423,0x0443,0x0423}, /* 0422 */
2464  {0x0424,0x0444,0x0424}, {0x0425,0x0445,0x0425}, /* 0424 */
2465  {0x0426,0x0446,0x0426}, {0x0427,0x0447,0x0427}, /* 0426 */
2466  {0x0428,0x0448,0x0428}, {0x0429,0x0449,0x0429}, /* 0428 */
2467  {0x042A,0x044A,0x042A}, {0x042B,0x044B,0x042B}, /* 042A */
2468  {0x042C,0x044C,0x042C}, {0x042D,0x044D,0x042D}, /* 042C */
2469  {0x042E,0x044E,0x042E}, {0x042F,0x044F,0x042F}, /* 042E */
2470  {0x0410,0x0430,0x0410}, {0x0411,0x0431,0x0411}, /* 0430 */
2471  {0x0412,0x0432,0x0412}, {0x0413,0x0433,0x0413}, /* 0432 */
2472  {0x0414,0x0434,0x0414}, {0x0415,0x0435,0x0415}, /* 0434 */
2473  {0x0416,0x0436,0x0416}, {0x0417,0x0437,0x0417}, /* 0436 */
2474  {0x0418,0x0438,0x0418}, {0x0419,0x0439,0x0419}, /* 0438 */
2475  {0x041A,0x043A,0x041A}, {0x041B,0x043B,0x041B}, /* 043A */
2476  {0x041C,0x043C,0x041C}, {0x041D,0x043D,0x041D}, /* 043C */
2477  {0x041E,0x043E,0x041E}, {0x041F,0x043F,0x041F}, /* 043E */
2478  {0x0420,0x0440,0x0420}, {0x0421,0x0441,0x0421}, /* 0440 */
2479  {0x0422,0x0442,0x0422}, {0x0423,0x0443,0x0423}, /* 0442 */
2480  {0x0424,0x0444,0x0424}, {0x0425,0x0445,0x0425}, /* 0444 */
2481  {0x0426,0x0446,0x0426}, {0x0427,0x0447,0x0427}, /* 0446 */
2482  {0x0428,0x0448,0x0428}, {0x0429,0x0449,0x0429}, /* 0448 */
2483  {0x042A,0x044A,0x042A}, {0x042B,0x044B,0x042B}, /* 044A */
2484  {0x042C,0x044C,0x042C}, {0x042D,0x044D,0x042D}, /* 044C */
2485  {0x042E,0x044E,0x042E}, {0x042F,0x044F,0x042F}, /* 044E */
2486  {0x0400,0x0450,0x0415}, {0x0401,0x0451,0x0415}, /* 0450 */
2487  {0x0402,0x0452,0x0402}, {0x0403,0x0453,0x0413}, /* 0452 */
2488  {0x0404,0x0454,0x0404}, {0x0405,0x0455,0x0405}, /* 0454 */
2489  {0x0406,0x0456,0x0406}, {0x0407,0x0457,0x0406}, /* 0456 */
2490  {0x0408,0x0458,0x0408}, {0x0409,0x0459,0x0409}, /* 0458 */
2491  {0x040A,0x045A,0x040A}, {0x040B,0x045B,0x040B}, /* 045A */
2492  {0x040C,0x045C,0x041A}, {0x040D,0x045D,0x0418}, /* 045C */
2493  {0x040E,0x045E,0x0423}, {0x040F,0x045F,0x040F}, /* 045E */
2494  {0x0460,0x0461,0x0460}, {0x0460,0x0461,0x0460}, /* 0460 */
2495  {0x0462,0x0463,0x0462}, {0x0462,0x0463,0x0462}, /* 0462 */
2496  {0x0464,0x0465,0x0464}, {0x0464,0x0465,0x0464}, /* 0464 */
2497  {0x0466,0x0467,0x0466}, {0x0466,0x0467,0x0466}, /* 0466 */
2498  {0x0468,0x0469,0x0468}, {0x0468,0x0469,0x0468}, /* 0468 */
2499  {0x046A,0x046B,0x046A}, {0x046A,0x046B,0x046A}, /* 046A */
2500  {0x046C,0x046D,0x046C}, {0x046C,0x046D,0x046C}, /* 046C */
2501  {0x046E,0x046F,0x046E}, {0x046E,0x046F,0x046E}, /* 046E */
2502  {0x0470,0x0471,0x0470}, {0x0470,0x0471,0x0470}, /* 0470 */
2503  {0x0472,0x0473,0x0472}, {0x0472,0x0473,0x0472}, /* 0472 */
2504  {0x0474,0x0475,0x0474}, {0x0474,0x0475,0x0474}, /* 0474 */
2505  {0x0476,0x0477,0x0474}, {0x0476,0x0477,0x0474}, /* 0476 */
2506  {0x0478,0x0479,0x0478}, {0x0478,0x0479,0x0478}, /* 0478 */
2507  {0x047A,0x047B,0x047A}, {0x047A,0x047B,0x047A}, /* 047A */
2508  {0x047C,0x047D,0x047C}, {0x047C,0x047D,0x047C}, /* 047C */
2509  {0x047E,0x047F,0x047E}, {0x047E,0x047F,0x047E}, /* 047E */
2510  {0x0480,0x0481,0x0480}, {0x0480,0x0481,0x0480}, /* 0480 */
2511  {0x0482,0x0482,0x0482}, {0x0483,0x0483,0x0483}, /* 0482 */
2512  {0x0484,0x0484,0x0484}, {0x0485,0x0485,0x0485}, /* 0484 */
2513  {0x0486,0x0486,0x0486}, {0x0487,0x0487,0x0487}, /* 0486 */
2514  {0x0488,0x0488,0x0488}, {0x0489,0x0489,0x0489}, /* 0488 */
2515  {0x048A,0x048B,0x048A}, {0x048A,0x048B,0x048A}, /* 048A */
2516  {0x048C,0x048D,0x048C}, {0x048C,0x048D,0x048C}, /* 048C */
2517  {0x048E,0x048F,0x048E}, {0x048E,0x048F,0x048E}, /* 048E */
2518  {0x0490,0x0491,0x0490}, {0x0490,0x0491,0x0490}, /* 0490 */
2519  {0x0492,0x0493,0x0492}, {0x0492,0x0493,0x0492}, /* 0492 */
2520  {0x0494,0x0495,0x0494}, {0x0494,0x0495,0x0494}, /* 0494 */
2521  {0x0496,0x0497,0x0496}, {0x0496,0x0497,0x0496}, /* 0496 */
2522  {0x0498,0x0499,0x0498}, {0x0498,0x0499,0x0498}, /* 0498 */
2523  {0x049A,0x049B,0x049A}, {0x049A,0x049B,0x049A}, /* 049A */
2524  {0x049C,0x049D,0x049C}, {0x049C,0x049D,0x049C}, /* 049C */
2525  {0x049E,0x049F,0x049E}, {0x049E,0x049F,0x049E}, /* 049E */
2526  {0x04A0,0x04A1,0x04A0}, {0x04A0,0x04A1,0x04A0}, /* 04A0 */
2527  {0x04A2,0x04A3,0x04A2}, {0x04A2,0x04A3,0x04A2}, /* 04A2 */
2528  {0x04A4,0x04A5,0x04A4}, {0x04A4,0x04A5,0x04A4}, /* 04A4 */
2529  {0x04A6,0x04A7,0x04A6}, {0x04A6,0x04A7,0x04A6}, /* 04A6 */
2530  {0x04A8,0x04A9,0x04A8}, {0x04A8,0x04A9,0x04A8}, /* 04A8 */
2531  {0x04AA,0x04AB,0x04AA}, {0x04AA,0x04AB,0x04AA}, /* 04AA */
2532  {0x04AC,0x04AD,0x04AC}, {0x04AC,0x04AD,0x04AC}, /* 04AC */
2533  {0x04AE,0x04AF,0x04AE}, {0x04AE,0x04AF,0x04AE}, /* 04AE */
2534  {0x04B0,0x04B1,0x04B0}, {0x04B0,0x04B1,0x04B0}, /* 04B0 */
2535  {0x04B2,0x04B3,0x04B2}, {0x04B2,0x04B3,0x04B2}, /* 04B2 */
2536  {0x04B4,0x04B5,0x04B4}, {0x04B4,0x04B5,0x04B4}, /* 04B4 */
2537  {0x04B6,0x04B7,0x04B6}, {0x04B6,0x04B7,0x04B6}, /* 04B6 */
2538  {0x04B8,0x04B9,0x04B8}, {0x04B8,0x04B9,0x04B8}, /* 04B8 */
2539  {0x04BA,0x04BB,0x04BA}, {0x04BA,0x04BB,0x04BA}, /* 04BA */
2540  {0x04BC,0x04BD,0x04BC}, {0x04BC,0x04BD,0x04BC}, /* 04BC */
2541  {0x04BE,0x04BF,0x04BE}, {0x04BE,0x04BF,0x04BE}, /* 04BE */
2542  {0x04C0,0x04CF,0x04C0}, {0x04C1,0x04C2,0x0416}, /* 04C0 */
2543  {0x04C1,0x04C2,0x0416}, {0x04C3,0x04C4,0x04C3}, /* 04C2 */
2544  {0x04C3,0x04C4,0x04C3}, {0x04C5,0x04C6,0x04C5}, /* 04C4 */
2545  {0x04C5,0x04C6,0x04C5}, {0x04C7,0x04C8,0x04C7}, /* 04C6 */
2546  {0x04C7,0x04C8,0x04C7}, {0x04C9,0x04CA,0x04C9}, /* 04C8 */
2547  {0x04C9,0x04CA,0x04C9}, {0x04CB,0x04CC,0x04CB}, /* 04CA */
2548  {0x04CB,0x04CC,0x04CB}, {0x04CD,0x04CE,0x04CD}, /* 04CC */
2549  {0x04CD,0x04CE,0x04CD}, {0x04C0,0x04CF,0x04C0}, /* 04CE */
2550  {0x04D0,0x04D1,0x0410}, {0x04D0,0x04D1,0x0410}, /* 04D0 */
2551  {0x04D2,0x04D3,0x0410}, {0x04D2,0x04D3,0x0410}, /* 04D2 */
2552  {0x04D4,0x04D5,0x04D4}, {0x04D4,0x04D5,0x04D4}, /* 04D4 */
2553  {0x04D6,0x04D7,0x0415}, {0x04D6,0x04D7,0x0415}, /* 04D6 */
2554  {0x04D8,0x04D9,0x04D8}, {0x04D8,0x04D9,0x04D8}, /* 04D8 */
2555  {0x04DA,0x04DB,0x04D8}, {0x04DA,0x04DB,0x04D8}, /* 04DA */
2556  {0x04DC,0x04DD,0x0416}, {0x04DC,0x04DD,0x0416}, /* 04DC */
2557  {0x04DE,0x04DF,0x0417}, {0x04DE,0x04DF,0x0417}, /* 04DE */
2558  {0x04E0,0x04E1,0x04E0}, {0x04E0,0x04E1,0x04E0}, /* 04E0 */
2559  {0x04E2,0x04E3,0x0418}, {0x04E2,0x04E3,0x0418}, /* 04E2 */
2560  {0x04E4,0x04E5,0x0418}, {0x04E4,0x04E5,0x0418}, /* 04E4 */
2561  {0x04E6,0x04E7,0x041E}, {0x04E6,0x04E7,0x041E}, /* 04E6 */
2562  {0x04E8,0x04E9,0x04E8}, {0x04E8,0x04E9,0x04E8}, /* 04E8 */
2563  {0x04EA,0x04EB,0x04E8}, {0x04EA,0x04EB,0x04E8}, /* 04EA */
2564  {0x04EC,0x04ED,0x042D}, {0x04EC,0x04ED,0x042D}, /* 04EC */
2565  {0x04EE,0x04EF,0x0423}, {0x04EE,0x04EF,0x0423}, /* 04EE */
2566  {0x04F0,0x04F1,0x0423}, {0x04F0,0x04F1,0x0423}, /* 04F0 */
2567  {0x04F2,0x04F3,0x0423}, {0x04F2,0x04F3,0x0423}, /* 04F2 */
2568  {0x04F4,0x04F5,0x0427}, {0x04F4,0x04F5,0x0427}, /* 04F4 */
2569  {0x04F6,0x04F7,0x04F6}, {0x04F6,0x04F7,0x04F6}, /* 04F6 */
2570  {0x04F8,0x04F9,0x042B}, {0x04F8,0x04F9,0x042B}, /* 04F8 */
2571  {0x04FA,0x04FB,0x04FA}, {0x04FA,0x04FB,0x04FA}, /* 04FA */
2572  {0x04FC,0x04FD,0x04FC}, {0x04FC,0x04FD,0x04FC}, /* 04FC */
2573  {0x04FE,0x04FF,0x04FE}, {0x04FE,0x04FF,0x04FE} /* 04FE */
2574 };
2575 
2576 static MY_UNICASE_CHARACTER u520p05[]={
2577  {0x0500,0x0501,0x0500}, {0x0500,0x0501,0x0500}, /* 0500 */
2578  {0x0502,0x0503,0x0502}, {0x0502,0x0503,0x0502}, /* 0502 */
2579  {0x0504,0x0505,0x0504}, {0x0504,0x0505,0x0504}, /* 0504 */
2580  {0x0506,0x0507,0x0506}, {0x0506,0x0507,0x0506}, /* 0506 */
2581  {0x0508,0x0509,0x0508}, {0x0508,0x0509,0x0508}, /* 0508 */
2582  {0x050A,0x050B,0x050A}, {0x050A,0x050B,0x050A}, /* 050A */
2583  {0x050C,0x050D,0x050C}, {0x050C,0x050D,0x050C}, /* 050C */
2584  {0x050E,0x050F,0x050E}, {0x050E,0x050F,0x050E}, /* 050E */
2585  {0x0510,0x0511,0x0510}, {0x0510,0x0511,0x0510}, /* 0510 */
2586  {0x0512,0x0513,0x0512}, {0x0512,0x0513,0x0512}, /* 0512 */
2587  {0x0514,0x0515,0x0514}, {0x0514,0x0515,0x0514}, /* 0514 */
2588  {0x0516,0x0517,0x0516}, {0x0516,0x0517,0x0516}, /* 0516 */
2589  {0x0518,0x0519,0x0518}, {0x0518,0x0519,0x0518}, /* 0518 */
2590  {0x051A,0x051B,0x051A}, {0x051A,0x051B,0x051A}, /* 051A */
2591  {0x051C,0x051D,0x051C}, {0x051C,0x051D,0x051C}, /* 051C */
2592  {0x051E,0x051F,0x051E}, {0x051E,0x051F,0x051E}, /* 051E */
2593  {0x0520,0x0521,0x0520}, {0x0520,0x0521,0x0520}, /* 0520 */
2594  {0x0522,0x0523,0x0522}, {0x0522,0x0523,0x0522}, /* 0522 */
2595  {0x0524,0x0525,0x0524}, {0x0524,0x0525,0x0524}, /* 0524 */
2596  {0x0526,0x0526,0x0526}, {0x0527,0x0527,0x0527}, /* 0526 */
2597  {0x0528,0x0528,0x0528}, {0x0529,0x0529,0x0529}, /* 0528 */
2598  {0x052A,0x052A,0x052A}, {0x052B,0x052B,0x052B}, /* 052A */
2599  {0x052C,0x052C,0x052C}, {0x052D,0x052D,0x052D}, /* 052C */
2600  {0x052E,0x052E,0x052E}, {0x052F,0x052F,0x052F}, /* 052E */
2601  {0x0530,0x0530,0x0530}, {0x0531,0x0561,0x0531}, /* 0530 */
2602  {0x0532,0x0562,0x0532}, {0x0533,0x0563,0x0533}, /* 0532 */
2603  {0x0534,0x0564,0x0534}, {0x0535,0x0565,0x0535}, /* 0534 */
2604  {0x0536,0x0566,0x0536}, {0x0537,0x0567,0x0537}, /* 0536 */
2605  {0x0538,0x0568,0x0538}, {0x0539,0x0569,0x0539}, /* 0538 */
2606  {0x053A,0x056A,0x053A}, {0x053B,0x056B,0x053B}, /* 053A */
2607  {0x053C,0x056C,0x053C}, {0x053D,0x056D,0x053D}, /* 053C */
2608  {0x053E,0x056E,0x053E}, {0x053F,0x056F,0x053F}, /* 053E */
2609  {0x0540,0x0570,0x0540}, {0x0541,0x0571,0x0541}, /* 0540 */
2610  {0x0542,0x0572,0x0542}, {0x0543,0x0573,0x0543}, /* 0542 */
2611  {0x0544,0x0574,0x0544}, {0x0545,0x0575,0x0545}, /* 0544 */
2612  {0x0546,0x0576,0x0546}, {0x0547,0x0577,0x0547}, /* 0546 */
2613  {0x0548,0x0578,0x0548}, {0x0549,0x0579,0x0549}, /* 0548 */
2614  {0x054A,0x057A,0x054A}, {0x054B,0x057B,0x054B}, /* 054A */
2615  {0x054C,0x057C,0x054C}, {0x054D,0x057D,0x054D}, /* 054C */
2616  {0x054E,0x057E,0x054E}, {0x054F,0x057F,0x054F}, /* 054E */
2617  {0x0550,0x0580,0x0550}, {0x0551,0x0581,0x0551}, /* 0550 */
2618  {0x0552,0x0582,0x0552}, {0x0553,0x0583,0x0553}, /* 0552 */
2619  {0x0554,0x0584,0x0554}, {0x0555,0x0585,0x0555}, /* 0554 */
2620  {0x0556,0x0586,0x0556}, {0x0557,0x0557,0x0557}, /* 0556 */
2621  {0x0558,0x0558,0x0558}, {0x0559,0x0559,0x0559}, /* 0558 */
2622  {0x055A,0x055A,0x055A}, {0x055B,0x055B,0x055B}, /* 055A */
2623  {0x055C,0x055C,0x055C}, {0x055D,0x055D,0x055D}, /* 055C */
2624  {0x055E,0x055E,0x055E}, {0x055F,0x055F,0x055F}, /* 055E */
2625  {0x0560,0x0560,0x0560}, {0x0531,0x0561,0x0531}, /* 0560 */
2626  {0x0532,0x0562,0x0532}, {0x0533,0x0563,0x0533}, /* 0562 */
2627  {0x0534,0x0564,0x0534}, {0x0535,0x0565,0x0535}, /* 0564 */
2628  {0x0536,0x0566,0x0536}, {0x0537,0x0567,0x0537}, /* 0566 */
2629  {0x0538,0x0568,0x0538}, {0x0539,0x0569,0x0539}, /* 0568 */
2630  {0x053A,0x056A,0x053A}, {0x053B,0x056B,0x053B}, /* 056A */
2631  {0x053C,0x056C,0x053C}, {0x053D,0x056D,0x053D}, /* 056C */
2632  {0x053E,0x056E,0x053E}, {0x053F,0x056F,0x053F}, /* 056E */
2633  {0x0540,0x0570,0x0540}, {0x0541,0x0571,0x0541}, /* 0570 */
2634  {0x0542,0x0572,0x0542}, {0x0543,0x0573,0x0543}, /* 0572 */
2635  {0x0544,0x0574,0x0544}, {0x0545,0x0575,0x0545}, /* 0574 */
2636  {0x0546,0x0576,0x0546}, {0x0547,0x0577,0x0547}, /* 0576 */
2637  {0x0548,0x0578,0x0548}, {0x0549,0x0579,0x0549}, /* 0578 */
2638  {0x054A,0x057A,0x054A}, {0x054B,0x057B,0x054B}, /* 057A */
2639  {0x054C,0x057C,0x054C}, {0x054D,0x057D,0x054D}, /* 057C */
2640  {0x054E,0x057E,0x054E}, {0x054F,0x057F,0x054F}, /* 057E */
2641  {0x0550,0x0580,0x0550}, {0x0551,0x0581,0x0551}, /* 0580 */
2642  {0x0552,0x0582,0x0552}, {0x0553,0x0583,0x0553}, /* 0582 */
2643  {0x0554,0x0584,0x0554}, {0x0555,0x0585,0x0555}, /* 0584 */
2644  {0x0556,0x0586,0x0556}, {0x0587,0x0587,0x0587}, /* 0586 */
2645  {0x0588,0x0588,0x0588}, {0x0589,0x0589,0x0589}, /* 0588 */
2646  {0x058A,0x058A,0x058A}, {0x058B,0x058B,0x058B}, /* 058A */
2647  {0x058C,0x058C,0x058C}, {0x058D,0x058D,0x058D}, /* 058C */
2648  {0x058E,0x058E,0x058E}, {0x058F,0x058F,0x058F}, /* 058E */
2649  {0x0590,0x0590,0x0590}, {0x0591,0x0591,0x0591}, /* 0590 */
2650  {0x0592,0x0592,0x0592}, {0x0593,0x0593,0x0593}, /* 0592 */
2651  {0x0594,0x0594,0x0594}, {0x0595,0x0595,0x0595}, /* 0594 */
2652  {0x0596,0x0596,0x0596}, {0x0597,0x0597,0x0597}, /* 0596 */
2653  {0x0598,0x0598,0x0598}, {0x0599,0x0599,0x0599}, /* 0598 */
2654  {0x059A,0x059A,0x059A}, {0x059B,0x059B,0x059B}, /* 059A */
2655  {0x059C,0x059C,0x059C}, {0x059D,0x059D,0x059D}, /* 059C */
2656  {0x059E,0x059E,0x059E}, {0x059F,0x059F,0x059F}, /* 059E */
2657  {0x05A0,0x05A0,0x05A0}, {0x05A1,0x05A1,0x05A1}, /* 05A0 */
2658  {0x05A2,0x05A2,0x05A2}, {0x05A3,0x05A3,0x05A3}, /* 05A2 */
2659  {0x05A4,0x05A4,0x05A4}, {0x05A5,0x05A5,0x05A5}, /* 05A4 */
2660  {0x05A6,0x05A6,0x05A6}, {0x05A7,0x05A7,0x05A7}, /* 05A6 */
2661  {0x05A8,0x05A8,0x05A8}, {0x05A9,0x05A9,0x05A9}, /* 05A8 */
2662  {0x05AA,0x05AA,0x05AA}, {0x05AB,0x05AB,0x05AB}, /* 05AA */
2663  {0x05AC,0x05AC,0x05AC}, {0x05AD,0x05AD,0x05AD}, /* 05AC */
2664  {0x05AE,0x05AE,0x05AE}, {0x05AF,0x05AF,0x05AF}, /* 05AE */
2665  {0x05B0,0x05B0,0x05B0}, {0x05B1,0x05B1,0x05B1}, /* 05B0 */
2666  {0x05B2,0x05B2,0x05B2}, {0x05B3,0x05B3,0x05B3}, /* 05B2 */
2667  {0x05B4,0x05B4,0x05B4}, {0x05B5,0x05B5,0x05B5}, /* 05B4 */
2668  {0x05B6,0x05B6,0x05B6}, {0x05B7,0x05B7,0x05B7}, /* 05B6 */
2669  {0x05B8,0x05B8,0x05B8}, {0x05B9,0x05B9,0x05B9}, /* 05B8 */
2670  {0x05BA,0x05BA,0x05BA}, {0x05BB,0x05BB,0x05BB}, /* 05BA */
2671  {0x05BC,0x05BC,0x05BC}, {0x05BD,0x05BD,0x05BD}, /* 05BC */
2672  {0x05BE,0x05BE,0x05BE}, {0x05BF,0x05BF,0x05BF}, /* 05BE */
2673  {0x05C0,0x05C0,0x05C0}, {0x05C1,0x05C1,0x05C1}, /* 05C0 */
2674  {0x05C2,0x05C2,0x05C2}, {0x05C3,0x05C3,0x05C3}, /* 05C2 */
2675  {0x05C4,0x05C4,0x05C4}, {0x05C5,0x05C5,0x05C5}, /* 05C4 */
2676  {0x05C6,0x05C6,0x05C6}, {0x05C7,0x05C7,0x05C7}, /* 05C6 */
2677  {0x05C8,0x05C8,0x05C8}, {0x05C9,0x05C9,0x05C9}, /* 05C8 */
2678  {0x05CA,0x05CA,0x05CA}, {0x05CB,0x05CB,0x05CB}, /* 05CA */
2679  {0x05CC,0x05CC,0x05CC}, {0x05CD,0x05CD,0x05CD}, /* 05CC */
2680  {0x05CE,0x05CE,0x05CE}, {0x05CF,0x05CF,0x05CF}, /* 05CE */
2681  {0x05D0,0x05D0,0x05D0}, {0x05D1,0x05D1,0x05D1}, /* 05D0 */
2682  {0x05D2,0x05D2,0x05D2}, {0x05D3,0x05D3,0x05D3}, /* 05D2 */
2683  {0x05D4,0x05D4,0x05D4}, {0x05D5,0x05D5,0x05D5}, /* 05D4 */
2684  {0x05D6,0x05D6,0x05D6}, {0x05D7,0x05D7,0x05D7}, /* 05D6 */
2685  {0x05D8,0x05D8,0x05D8}, {0x05D9,0x05D9,0x05D9}, /* 05D8 */
2686  {0x05DA,0x05DA,0x05DA}, {0x05DB,0x05DB,0x05DB}, /* 05DA */
2687  {0x05DC,0x05DC,0x05DC}, {0x05DD,0x05DD,0x05DD}, /* 05DC */
2688  {0x05DE,0x05DE,0x05DE}, {0x05DF,0x05DF,0x05DF}, /* 05DE */
2689  {0x05E0,0x05E0,0x05E0}, {0x05E1,0x05E1,0x05E1}, /* 05E0 */
2690  {0x05E2,0x05E2,0x05E2}, {0x05E3,0x05E3,0x05E3}, /* 05E2 */
2691  {0x05E4,0x05E4,0x05E4}, {0x05E5,0x05E5,0x05E5}, /* 05E4 */
2692  {0x05E6,0x05E6,0x05E6}, {0x05E7,0x05E7,0x05E7}, /* 05E6 */
2693  {0x05E8,0x05E8,0x05E8}, {0x05E9,0x05E9,0x05E9}, /* 05E8 */
2694  {0x05EA,0x05EA,0x05EA}, {0x05EB,0x05EB,0x05EB}, /* 05EA */
2695  {0x05EC,0x05EC,0x05EC}, {0x05ED,0x05ED,0x05ED}, /* 05EC */
2696  {0x05EE,0x05EE,0x05EE}, {0x05EF,0x05EF,0x05EF}, /* 05EE */
2697  {0x05F0,0x05F0,0x05F0}, {0x05F1,0x05F1,0x05F1}, /* 05F0 */
2698  {0x05F2,0x05F2,0x05F2}, {0x05F3,0x05F3,0x05F3}, /* 05F2 */
2699  {0x05F4,0x05F4,0x05F4}, {0x05F5,0x05F5,0x05F5}, /* 05F4 */
2700  {0x05F6,0x05F6,0x05F6}, {0x05F7,0x05F7,0x05F7}, /* 05F6 */
2701  {0x05F8,0x05F8,0x05F8}, {0x05F9,0x05F9,0x05F9}, /* 05F8 */
2702  {0x05FA,0x05FA,0x05FA}, {0x05FB,0x05FB,0x05FB}, /* 05FA */
2703  {0x05FC,0x05FC,0x05FC}, {0x05FD,0x05FD,0x05FD}, /* 05FC */
2704  {0x05FE,0x05FE,0x05FE}, {0x05FF,0x05FF,0x05FF} /* 05FE */
2705 };
2706 
2707 static MY_UNICASE_CHARACTER u520p10[]={
2708  {0x1000,0x1000,0x1000}, {0x1001,0x1001,0x1001}, /* 1000 */
2709  {0x1002,0x1002,0x1002}, {0x1003,0x1003,0x1003}, /* 1002 */
2710  {0x1004,0x1004,0x1004}, {0x1005,0x1005,0x1005}, /* 1004 */
2711  {0x1006,0x1006,0x1006}, {0x1007,0x1007,0x1007}, /* 1006 */
2712  {0x1008,0x1008,0x1008}, {0x1009,0x1009,0x1009}, /* 1008 */
2713  {0x100A,0x100A,0x100A}, {0x100B,0x100B,0x100B}, /* 100A */
2714  {0x100C,0x100C,0x100C}, {0x100D,0x100D,0x100D}, /* 100C */
2715  {0x100E,0x100E,0x100E}, {0x100F,0x100F,0x100F}, /* 100E */
2716  {0x1010,0x1010,0x1010}, {0x1011,0x1011,0x1011}, /* 1010 */
2717  {0x1012,0x1012,0x1012}, {0x1013,0x1013,0x1013}, /* 1012 */
2718  {0x1014,0x1014,0x1014}, {0x1015,0x1015,0x1015}, /* 1014 */
2719  {0x1016,0x1016,0x1016}, {0x1017,0x1017,0x1017}, /* 1016 */
2720  {0x1018,0x1018,0x1018}, {0x1019,0x1019,0x1019}, /* 1018 */
2721  {0x101A,0x101A,0x101A}, {0x101B,0x101B,0x101B}, /* 101A */
2722  {0x101C,0x101C,0x101C}, {0x101D,0x101D,0x101D}, /* 101C */
2723  {0x101E,0x101E,0x101E}, {0x101F,0x101F,0x101F}, /* 101E */
2724  {0x1020,0x1020,0x1020}, {0x1021,0x1021,0x1021}, /* 1020 */
2725  {0x1022,0x1022,0x1022}, {0x1023,0x1023,0x1023}, /* 1022 */
2726  {0x1024,0x1024,0x1024}, {0x1025,0x1025,0x1025}, /* 1024 */
2727  {0x1026,0x1026,0x1026}, {0x1027,0x1027,0x1027}, /* 1026 */
2728  {0x1028,0x1028,0x1028}, {0x1029,0x1029,0x1029}, /* 1028 */
2729  {0x102A,0x102A,0x102A}, {0x102B,0x102B,0x102B}, /* 102A */
2730  {0x102C,0x102C,0x102C}, {0x102D,0x102D,0x102D}, /* 102C */
2731  {0x102E,0x102E,0x102E}, {0x102F,0x102F,0x102F}, /* 102E */
2732  {0x1030,0x1030,0x1030}, {0x1031,0x1031,0x1031}, /* 1030 */
2733  {0x1032,0x1032,0x1032}, {0x1033,0x1033,0x1033}, /* 1032 */
2734  {0x1034,0x1034,0x1034}, {0x1035,0x1035,0x1035}, /* 1034 */
2735  {0x1036,0x1036,0x1036}, {0x1037,0x1037,0x1037}, /* 1036 */
2736  {0x1038,0x1038,0x1038}, {0x1039,0x1039,0x1039}, /* 1038 */
2737  {0x103A,0x103A,0x103A}, {0x103B,0x103B,0x103B}, /* 103A */
2738  {0x103C,0x103C,0x103C}, {0x103D,0x103D,0x103D}, /* 103C */
2739  {0x103E,0x103E,0x103E}, {0x103F,0x103F,0x103F}, /* 103E */
2740  {0x1040,0x1040,0x1040}, {0x1041,0x1041,0x1041}, /* 1040 */
2741  {0x1042,0x1042,0x1042}, {0x1043,0x1043,0x1043}, /* 1042 */
2742  {0x1044,0x1044,0x1044}, {0x1045,0x1045,0x1045}, /* 1044 */
2743  {0x1046,0x1046,0x1046}, {0x1047,0x1047,0x1047}, /* 1046 */
2744  {0x1048,0x1048,0x1048}, {0x1049,0x1049,0x1049}, /* 1048 */
2745  {0x104A,0x104A,0x104A}, {0x104B,0x104B,0x104B}, /* 104A */
2746  {0x104C,0x104C,0x104C}, {0x104D,0x104D,0x104D}, /* 104C */
2747  {0x104E,0x104E,0x104E}, {0x104F,0x104F,0x104F}, /* 104E */
2748  {0x1050,0x1050,0x1050}, {0x1051,0x1051,0x1051}, /* 1050 */
2749  {0x1052,0x1052,0x1052}, {0x1053,0x1053,0x1053}, /* 1052 */
2750  {0x1054,0x1054,0x1054}, {0x1055,0x1055,0x1055}, /* 1054 */
2751  {0x1056,0x1056,0x1056}, {0x1057,0x1057,0x1057}, /* 1056 */
2752  {0x1058,0x1058,0x1058}, {0x1059,0x1059,0x1059}, /* 1058 */
2753  {0x105A,0x105A,0x105A}, {0x105B,0x105B,0x105B}, /* 105A */
2754  {0x105C,0x105C,0x105C}, {0x105D,0x105D,0x105D}, /* 105C */
2755  {0x105E,0x105E,0x105E}, {0x105F,0x105F,0x105F}, /* 105E */
2756  {0x1060,0x1060,0x1060}, {0x1061,0x1061,0x1061}, /* 1060 */
2757  {0x1062,0x1062,0x1062}, {0x1063,0x1063,0x1063}, /* 1062 */
2758  {0x1064,0x1064,0x1064}, {0x1065,0x1065,0x1065}, /* 1064 */
2759  {0x1066,0x1066,0x1066}, {0x1067,0x1067,0x1067}, /* 1066 */
2760  {0x1068,0x1068,0x1068}, {0x1069,0x1069,0x1069}, /* 1068 */
2761  {0x106A,0x106A,0x106A}, {0x106B,0x106B,0x106B}, /* 106A */
2762  {0x106C,0x106C,0x106C}, {0x106D,0x106D,0x106D}, /* 106C */
2763  {0x106E,0x106E,0x106E}, {0x106F,0x106F,0x106F}, /* 106E */
2764  {0x1070,0x1070,0x1070}, {0x1071,0x1071,0x1071}, /* 1070 */
2765  {0x1072,0x1072,0x1072}, {0x1073,0x1073,0x1073}, /* 1072 */
2766  {0x1074,0x1074,0x1074}, {0x1075,0x1075,0x1075}, /* 1074 */
2767  {0x1076,0x1076,0x1076}, {0x1077,0x1077,0x1077}, /* 1076 */
2768  {0x1078,0x1078,0x1078}, {0x1079,0x1079,0x1079}, /* 1078 */
2769  {0x107A,0x107A,0x107A}, {0x107B,0x107B,0x107B}, /* 107A */
2770  {0x107C,0x107C,0x107C}, {0x107D,0x107D,0x107D}, /* 107C */
2771  {0x107E,0x107E,0x107E}, {0x107F,0x107F,0x107F}, /* 107E */
2772  {0x1080,0x1080,0x1080}, {0x1081,0x1081,0x1081}, /* 1080 */
2773  {0x1082,0x1082,0x1082}, {0x1083,0x1083,0x1083}, /* 1082 */
2774  {0x1084,0x1084,0x1084}, {0x1085,0x1085,0x1085}, /* 1084 */
2775  {0x1086,0x1086,0x1086}, {0x1087,0x1087,0x1087}, /* 1086 */
2776  {0x1088,0x1088,0x1088}, {0x1089,0x1089,0x1089}, /* 1088 */
2777  {0x108A,0x108A,0x108A}, {0x108B,0x108B,0x108B}, /* 108A */
2778  {0x108C,0x108C,0x108C}, {0x108D,0x108D,0x108D}, /* 108C */
2779  {0x108E,0x108E,0x108E}, {0x108F,0x108F,0x108F}, /* 108E */
2780  {0x1090,0x1090,0x1090}, {0x1091,0x1091,0x1091}, /* 1090 */
2781  {0x1092,0x1092,0x1092}, {0x1093,0x1093,0x1093}, /* 1092 */
2782  {0x1094,0x1094,0x1094}, {0x1095,0x1095,0x1095}, /* 1094 */
2783  {0x1096,0x1096,0x1096}, {0x1097,0x1097,0x1097}, /* 1096 */
2784  {0x1098,0x1098,0x1098}, {0x1099,0x1099,0x1099}, /* 1098 */
2785  {0x109A,0x109A,0x109A}, {0x109B,0x109B,0x109B}, /* 109A */
2786  {0x109C,0x109C,0x109C}, {0x109D,0x109D,0x109D}, /* 109C */
2787  {0x109E,0x109E,0x109E}, {0x109F,0x109F,0x109F}, /* 109E */
2788  {0x10A0,0x2D00,0x10A0}, {0x10A1,0x2D01,0x10A1}, /* 10A0 */
2789  {0x10A2,0x2D02,0x10A2}, {0x10A3,0x2D03,0x10A3}, /* 10A2 */
2790  {0x10A4,0x2D04,0x10A4}, {0x10A5,0x2D05,0x10A5}, /* 10A4 */
2791  {0x10A6,0x2D06,0x10A6}, {0x10A7,0x2D07,0x10A7}, /* 10A6 */
2792  {0x10A8,0x2D08,0x10A8}, {0x10A9,0x2D09,0x10A9}, /* 10A8 */
2793  {0x10AA,0x2D0A,0x10AA}, {0x10AB,0x2D0B,0x10AB}, /* 10AA */
2794  {0x10AC,0x2D0C,0x10AC}, {0x10AD,0x2D0D,0x10AD}, /* 10AC */
2795  {0x10AE,0x2D0E,0x10AE}, {0x10AF,0x2D0F,0x10AF}, /* 10AE */
2796  {0x10B0,0x2D10,0x10B0}, {0x10B1,0x2D11,0x10B1}, /* 10B0 */
2797  {0x10B2,0x2D12,0x10B2}, {0x10B3,0x2D13,0x10B3}, /* 10B2 */
2798  {0x10B4,0x2D14,0x10B4}, {0x10B5,0x2D15,0x10B5}, /* 10B4 */
2799  {0x10B6,0x2D16,0x10B6}, {0x10B7,0x2D17,0x10B7}, /* 10B6 */
2800  {0x10B8,0x2D18,0x10B8}, {0x10B9,0x2D19,0x10B9}, /* 10B8 */
2801  {0x10BA,0x2D1A,0x10BA}, {0x10BB,0x2D1B,0x10BB}, /* 10BA */
2802  {0x10BC,0x2D1C,0x10BC}, {0x10BD,0x2D1D,0x10BD}, /* 10BC */
2803  {0x10BE,0x2D1E,0x10BE}, {0x10BF,0x2D1F,0x10BF}, /* 10BE */
2804  {0x10C0,0x2D20,0x10C0}, {0x10C1,0x2D21,0x10C1}, /* 10C0 */
2805  {0x10C2,0x2D22,0x10C2}, {0x10C3,0x2D23,0x10C3}, /* 10C2 */
2806  {0x10C4,0x2D24,0x10C4}, {0x10C5,0x2D25,0x10C5}, /* 10C4 */
2807  {0x10C6,0x10C6,0x10C6}, {0x10C7,0x10C7,0x10C7}, /* 10C6 */
2808  {0x10C8,0x10C8,0x10C8}, {0x10C9,0x10C9,0x10C9}, /* 10C8 */
2809  {0x10CA,0x10CA,0x10CA}, {0x10CB,0x10CB,0x10CB}, /* 10CA */
2810  {0x10CC,0x10CC,0x10CC}, {0x10CD,0x10CD,0x10CD}, /* 10CC */
2811  {0x10CE,0x10CE,0x10CE}, {0x10CF,0x10CF,0x10CF}, /* 10CE */
2812  {0x10D0,0x10D0,0x10D0}, {0x10D1,0x10D1,0x10D1}, /* 10D0 */
2813  {0x10D2,0x10D2,0x10D2}, {0x10D3,0x10D3,0x10D3}, /* 10D2 */
2814  {0x10D4,0x10D4,0x10D4}, {0x10D5,0x10D5,0x10D5}, /* 10D4 */
2815  {0x10D6,0x10D6,0x10D6}, {0x10D7,0x10D7,0x10D7}, /* 10D6 */
2816  {0x10D8,0x10D8,0x10D8}, {0x10D9,0x10D9,0x10D9}, /* 10D8 */
2817  {0x10DA,0x10DA,0x10DA}, {0x10DB,0x10DB,0x10DB}, /* 10DA */
2818  {0x10DC,0x10DC,0x10DC}, {0x10DD,0x10DD,0x10DD}, /* 10DC */
2819  {0x10DE,0x10DE,0x10DE}, {0x10DF,0x10DF,0x10DF}, /* 10DE */
2820  {0x10E0,0x10E0,0x10E0}, {0x10E1,0x10E1,0x10E1}, /* 10E0 */
2821  {0x10E2,0x10E2,0x10E2}, {0x10E3,0x10E3,0x10E3}, /* 10E2 */
2822  {0x10E4,0x10E4,0x10E4}, {0x10E5,0x10E5,0x10E5}, /* 10E4 */
2823  {0x10E6,0x10E6,0x10E6}, {0x10E7,0x10E7,0x10E7}, /* 10E6 */
2824  {0x10E8,0x10E8,0x10E8}, {0x10E9,0x10E9,0x10E9}, /* 10E8 */
2825  {0x10EA,0x10EA,0x10EA}, {0x10EB,0x10EB,0x10EB}, /* 10EA */
2826  {0x10EC,0x10EC,0x10EC}, {0x10ED,0x10ED,0x10ED}, /* 10EC */
2827  {0x10EE,0x10EE,0x10EE}, {0x10EF,0x10EF,0x10EF}, /* 10EE */
2828  {0x10F0,0x10F0,0x10F0}, {0x10F1,0x10F1,0x10F1}, /* 10F0 */
2829  {0x10F2,0x10F2,0x10F2}, {0x10F3,0x10F3,0x10F3}, /* 10F2 */
2830  {0x10F4,0x10F4,0x10F4}, {0x10F5,0x10F5,0x10F5}, /* 10F4 */
2831  {0x10F6,0x10F6,0x10F6}, {0x10F7,0x10F7,0x10F7}, /* 10F6 */
2832  {0x10F8,0x10F8,0x10F8}, {0x10F9,0x10F9,0x10F9}, /* 10F8 */
2833  {0x10FA,0x10FA,0x10FA}, {0x10FB,0x10FB,0x10FB}, /* 10FA */
2834  {0x10FC,0x10FC,0x10FC}, {0x10FD,0x10FD,0x10FD}, /* 10FC */
2835  {0x10FE,0x10FE,0x10FE}, {0x10FF,0x10FF,0x10FF} /* 10FE */
2836 };
2837 
2838 static MY_UNICASE_CHARACTER u520p1D[]={
2839  {0x1D00,0x1D00,0x1D00}, {0x1D01,0x1D01,0x1D01}, /* 1D00 */
2840  {0x1D02,0x1D02,0x1D02}, {0x1D03,0x1D03,0x1D03}, /* 1D02 */
2841  {0x1D04,0x1D04,0x1D04}, {0x1D05,0x1D05,0x1D05}, /* 1D04 */
2842  {0x1D06,0x1D06,0x1D06}, {0x1D07,0x1D07,0x1D07}, /* 1D06 */
2843  {0x1D08,0x1D08,0x1D08}, {0x1D09,0x1D09,0x1D09}, /* 1D08 */
2844  {0x1D0A,0x1D0A,0x1D0A}, {0x1D0B,0x1D0B,0x1D0B}, /* 1D0A */
2845  {0x1D0C,0x1D0C,0x1D0C}, {0x1D0D,0x1D0D,0x1D0D}, /* 1D0C */
2846  {0x1D0E,0x1D0E,0x1D0E}, {0x1D0F,0x1D0F,0x1D0F}, /* 1D0E */
2847  {0x1D10,0x1D10,0x1D10}, {0x1D11,0x1D11,0x1D11}, /* 1D10 */
2848  {0x1D12,0x1D12,0x1D12}, {0x1D13,0x1D13,0x1D13}, /* 1D12 */
2849  {0x1D14,0x1D14,0x1D14}, {0x1D15,0x1D15,0x1D15}, /* 1D14 */
2850  {0x1D16,0x1D16,0x1D16}, {0x1D17,0x1D17,0x1D17}, /* 1D16 */
2851  {0x1D18,0x1D18,0x1D18}, {0x1D19,0x1D19,0x1D19}, /* 1D18 */
2852  {0x1D1A,0x1D1A,0x1D1A}, {0x1D1B,0x1D1B,0x1D1B}, /* 1D1A */
2853  {0x1D1C,0x1D1C,0x1D1C}, {0x1D1D,0x1D1D,0x1D1D}, /* 1D1C */
2854  {0x1D1E,0x1D1E,0x1D1E}, {0x1D1F,0x1D1F,0x1D1F}, /* 1D1E */
2855  {0x1D20,0x1D20,0x1D20}, {0x1D21,0x1D21,0x1D21}, /* 1D20 */
2856  {0x1D22,0x1D22,0x1D22}, {0x1D23,0x1D23,0x1D23}, /* 1D22 */
2857  {0x1D24,0x1D24,0x1D24}, {0x1D25,0x1D25,0x1D25}, /* 1D24 */
2858  {0x1D26,0x1D26,0x1D26}, {0x1D27,0x1D27,0x1D27}, /* 1D26 */
2859  {0x1D28,0x1D28,0x1D28}, {0x1D29,0x1D29,0x1D29}, /* 1D28 */
2860  {0x1D2A,0x1D2A,0x1D2A}, {0x1D2B,0x1D2B,0x1D2B}, /* 1D2A */
2861  {0x1D2C,0x1D2C,0x1D2C}, {0x1D2D,0x1D2D,0x1D2D}, /* 1D2C */
2862  {0x1D2E,0x1D2E,0x1D2E}, {0x1D2F,0x1D2F,0x1D2F}, /* 1D2E */
2863  {0x1D30,0x1D30,0x1D30}, {0x1D31,0x1D31,0x1D31}, /* 1D30 */
2864  {0x1D32,0x1D32,0x1D32}, {0x1D33,0x1D33,0x1D33}, /* 1D32 */
2865  {0x1D34,0x1D34,0x1D34}, {0x1D35,0x1D35,0x1D35}, /* 1D34 */
2866  {0x1D36,0x1D36,0x1D36}, {0x1D37,0x1D37,0x1D37}, /* 1D36 */
2867  {0x1D38,0x1D38,0x1D38}, {0x1D39,0x1D39,0x1D39}, /* 1D38 */
2868  {0x1D3A,0x1D3A,0x1D3A}, {0x1D3B,0x1D3B,0x1D3B}, /* 1D3A */
2869  {0x1D3C,0x1D3C,0x1D3C}, {0x1D3D,0x1D3D,0x1D3D}, /* 1D3C */
2870  {0x1D3E,0x1D3E,0x1D3E}, {0x1D3F,0x1D3F,0x1D3F}, /* 1D3E */
2871  {0x1D40,0x1D40,0x1D40}, {0x1D41,0x1D41,0x1D41}, /* 1D40 */
2872  {0x1D42,0x1D42,0x1D42}, {0x1D43,0x1D43,0x1D43}, /* 1D42 */
2873  {0x1D44,0x1D44,0x1D44}, {0x1D45,0x1D45,0x1D45}, /* 1D44 */
2874  {0x1D46,0x1D46,0x1D46}, {0x1D47,0x1D47,0x1D47}, /* 1D46 */
2875  {0x1D48,0x1D48,0x1D48}, {0x1D49,0x1D49,0x1D49}, /* 1D48 */
2876  {0x1D4A,0x1D4A,0x1D4A}, {0x1D4B,0x1D4B,0x1D4B}, /* 1D4A */
2877  {0x1D4C,0x1D4C,0x1D4C}, {0x1D4D,0x1D4D,0x1D4D}, /* 1D4C */
2878  {0x1D4E,0x1D4E,0x1D4E}, {0x1D4F,0x1D4F,0x1D4F}, /* 1D4E */
2879  {0x1D50,0x1D50,0x1D50}, {0x1D51,0x1D51,0x1D51}, /* 1D50 */
2880  {0x1D52,0x1D52,0x1D52}, {0x1D53,0x1D53,0x1D53}, /* 1D52 */
2881  {0x1D54,0x1D54,0x1D54}, {0x1D55,0x1D55,0x1D55}, /* 1D54 */
2882  {0x1D56,0x1D56,0x1D56}, {0x1D57,0x1D57,0x1D57}, /* 1D56 */
2883  {0x1D58,0x1D58,0x1D58}, {0x1D59,0x1D59,0x1D59}, /* 1D58 */
2884  {0x1D5A,0x1D5A,0x1D5A}, {0x1D5B,0x1D5B,0x1D5B}, /* 1D5A */
2885  {0x1D5C,0x1D5C,0x1D5C}, {0x1D5D,0x1D5D,0x1D5D}, /* 1D5C */
2886  {0x1D5E,0x1D5E,0x1D5E}, {0x1D5F,0x1D5F,0x1D5F}, /* 1D5E */
2887  {0x1D60,0x1D60,0x1D60}, {0x1D61,0x1D61,0x1D61}, /* 1D60 */
2888  {0x1D62,0x1D62,0x1D62}, {0x1D63,0x1D63,0x1D63}, /* 1D62 */
2889  {0x1D64,0x1D64,0x1D64}, {0x1D65,0x1D65,0x1D65}, /* 1D64 */
2890  {0x1D66,0x1D66,0x1D66}, {0x1D67,0x1D67,0x1D67}, /* 1D66 */
2891  {0x1D68,0x1D68,0x1D68}, {0x1D69,0x1D69,0x1D69}, /* 1D68 */
2892  {0x1D6A,0x1D6A,0x1D6A}, {0x1D6B,0x1D6B,0x1D6B}, /* 1D6A */
2893  {0x1D6C,0x1D6C,0x1D6C}, {0x1D6D,0x1D6D,0x1D6D}, /* 1D6C */
2894  {0x1D6E,0x1D6E,0x1D6E}, {0x1D6F,0x1D6F,0x1D6F}, /* 1D6E */
2895  {0x1D70,0x1D70,0x1D70}, {0x1D71,0x1D71,0x1D71}, /* 1D70 */
2896  {0x1D72,0x1D72,0x1D72}, {0x1D73,0x1D73,0x1D73}, /* 1D72 */
2897  {0x1D74,0x1D74,0x1D74}, {0x1D75,0x1D75,0x1D75}, /* 1D74 */
2898  {0x1D76,0x1D76,0x1D76}, {0x1D77,0x1D77,0x1D77}, /* 1D76 */
2899  {0x1D78,0x1D78,0x1D78}, {0xA77D,0x1D79,0xA77D}, /* 1D78 */
2900  {0x1D7A,0x1D7A,0x1D7A}, {0x1D7B,0x1D7B,0x1D7B}, /* 1D7A */
2901  {0x1D7C,0x1D7C,0x1D7C}, {0x2C63,0x1D7D,0x2C63}, /* 1D7C */
2902  {0x1D7E,0x1D7E,0x1D7E}, {0x1D7F,0x1D7F,0x1D7F}, /* 1D7E */
2903  {0x1D80,0x1D80,0x1D80}, {0x1D81,0x1D81,0x1D81}, /* 1D80 */
2904  {0x1D82,0x1D82,0x1D82}, {0x1D83,0x1D83,0x1D83}, /* 1D82 */
2905  {0x1D84,0x1D84,0x1D84}, {0x1D85,0x1D85,0x1D85}, /* 1D84 */
2906  {0x1D86,0x1D86,0x1D86}, {0x1D87,0x1D87,0x1D87}, /* 1D86 */
2907  {0x1D88,0x1D88,0x1D88}, {0x1D89,0x1D89,0x1D89}, /* 1D88 */
2908  {0x1D8A,0x1D8A,0x1D8A}, {0x1D8B,0x1D8B,0x1D8B}, /* 1D8A */
2909  {0x1D8C,0x1D8C,0x1D8C}, {0x1D8D,0x1D8D,0x1D8D}, /* 1D8C */
2910  {0x1D8E,0x1D8E,0x1D8E}, {0x1D8F,0x1D8F,0x1D8F}, /* 1D8E */
2911  {0x1D90,0x1D90,0x1D90}, {0x1D91,0x1D91,0x1D91}, /* 1D90 */
2912  {0x1D92,0x1D92,0x1D92}, {0x1D93,0x1D93,0x1D93}, /* 1D92 */
2913  {0x1D94,0x1D94,0x1D94}, {0x1D95,0x1D95,0x1D95}, /* 1D94 */
2914  {0x1D96,0x1D96,0x1D96}, {0x1D97,0x1D97,0x1D97}, /* 1D96 */
2915  {0x1D98,0x1D98,0x1D98}, {0x1D99,0x1D99,0x1D99}, /* 1D98 */
2916  {0x1D9A,0x1D9A,0x1D9A}, {0x1D9B,0x1D9B,0x1D9B}, /* 1D9A */
2917  {0x1D9C,0x1D9C,0x1D9C}, {0x1D9D,0x1D9D,0x1D9D}, /* 1D9C */
2918  {0x1D9E,0x1D9E,0x1D9E}, {0x1D9F,0x1D9F,0x1D9F}, /* 1D9E */
2919  {0x1DA0,0x1DA0,0x1DA0}, {0x1DA1,0x1DA1,0x1DA1}, /* 1DA0 */
2920  {0x1DA2,0x1DA2,0x1DA2}, {0x1DA3,0x1DA3,0x1DA3}, /* 1DA2 */
2921  {0x1DA4,0x1DA4,0x1DA4}, {0x1DA5,0x1DA5,0x1DA5}, /* 1DA4 */
2922  {0x1DA6,0x1DA6,0x1DA6}, {0x1DA7,0x1DA7,0x1DA7}, /* 1DA6 */
2923  {0x1DA8,0x1DA8,0x1DA8}, {0x1DA9,0x1DA9,0x1DA9}, /* 1DA8 */
2924  {0x1DAA,0x1DAA,0x1DAA}, {0x1DAB,0x1DAB,0x1DAB}, /* 1DAA */
2925  {0x1DAC,0x1DAC,0x1DAC}, {0x1DAD,0x1DAD,0x1DAD}, /* 1DAC */
2926  {0x1DAE,0x1DAE,0x1DAE}, {0x1DAF,0x1DAF,0x1DAF}, /* 1DAE */
2927  {0x1DB0,0x1DB0,0x1DB0}, {0x1DB1,0x1DB1,0x1DB1}, /* 1DB0 */
2928  {0x1DB2,0x1DB2,0x1DB2}, {0x1DB3,0x1DB3,0x1DB3}, /* 1DB2 */
2929  {0x1DB4,0x1DB4,0x1DB4}, {0x1DB5,0x1DB5,0x1DB5}, /* 1DB4 */
2930  {0x1DB6,0x1DB6,0x1DB6}, {0x1DB7,0x1DB7,0x1DB7}, /* 1DB6 */
2931  {0x1DB8,0x1DB8,0x1DB8}, {0x1DB9,0x1DB9,0x1DB9}, /* 1DB8 */
2932  {0x1DBA,0x1DBA,0x1DBA}, {0x1DBB,0x1DBB,0x1DBB}, /* 1DBA */
2933  {0x1DBC,0x1DBC,0x1DBC}, {0x1DBD,0x1DBD,0x1DBD}, /* 1DBC */
2934  {0x1DBE,0x1DBE,0x1DBE}, {0x1DBF,0x1DBF,0x1DBF}, /* 1DBE */
2935  {0x1DC0,0x1DC0,0x1DC0}, {0x1DC1,0x1DC1,0x1DC1}, /* 1DC0 */
2936  {0x1DC2,0x1DC2,0x1DC2}, {0x1DC3,0x1DC3,0x1DC3}, /* 1DC2 */
2937  {0x1DC4,0x1DC4,0x1DC4}, {0x1DC5,0x1DC5,0x1DC5}, /* 1DC4 */
2938  {0x1DC6,0x1DC6,0x1DC6}, {0x1DC7,0x1DC7,0x1DC7}, /* 1DC6 */
2939  {0x1DC8,0x1DC8,0x1DC8}, {0x1DC9,0x1DC9,0x1DC9}, /* 1DC8 */
2940  {0x1DCA,0x1DCA,0x1DCA}, {0x1DCB,0x1DCB,0x1DCB}, /* 1DCA */
2941  {0x1DCC,0x1DCC,0x1DCC}, {0x1DCD,0x1DCD,0x1DCD}, /* 1DCC */
2942  {0x1DCE,0x1DCE,0x1DCE}, {0x1DCF,0x1DCF,0x1DCF}, /* 1DCE */
2943  {0x1DD0,0x1DD0,0x1DD0}, {0x1DD1,0x1DD1,0x1DD1}, /* 1DD0 */
2944  {0x1DD2,0x1DD2,0x1DD2}, {0x1DD3,0x1DD3,0x1DD3}, /* 1DD2 */
2945  {0x1DD4,0x1DD4,0x1DD4}, {0x1DD5,0x1DD5,0x1DD5}, /* 1DD4 */
2946  {0x1DD6,0x1DD6,0x1DD6}, {0x1DD7,0x1DD7,0x1DD7}, /* 1DD6 */
2947  {0x1DD8,0x1DD8,0x1DD8}, {0x1DD9,0x1DD9,0x1DD9}, /* 1DD8 */
2948  {0x1DDA,0x1DDA,0x1DDA}, {0x1DDB,0x1DDB,0x1DDB}, /* 1DDA */
2949  {0x1DDC,0x1DDC,0x1DDC}, {0x1DDD,0x1DDD,0x1DDD}, /* 1DDC */
2950  {0x1DDE,0x1DDE,0x1DDE}, {0x1DDF,0x1DDF,0x1DDF}, /* 1DDE */
2951  {0x1DE0,0x1DE0,0x1DE0}, {0x1DE1,0x1DE1,0x1DE1}, /* 1DE0 */
2952  {0x1DE2,0x1DE2,0x1DE2}, {0x1DE3,0x1DE3,0x1DE3}, /* 1DE2 */
2953  {0x1DE4,0x1DE4,0x1DE4}, {0x1DE5,0x1DE5,0x1DE5}, /* 1DE4 */
2954  {0x1DE6,0x1DE6,0x1DE6}, {0x1DE7,0x1DE7,0x1DE7}, /* 1DE6 */
2955  {0x1DE8,0x1DE8,0x1DE8}, {0x1DE9,0x1DE9,0x1DE9}, /* 1DE8 */
2956  {0x1DEA,0x1DEA,0x1DEA}, {0x1DEB,0x1DEB,0x1DEB}, /* 1DEA */
2957  {0x1DEC,0x1DEC,0x1DEC}, {0x1DED,0x1DED,0x1DED}, /* 1DEC */
2958  {0x1DEE,0x1DEE,0x1DEE}, {0x1DEF,0x1DEF,0x1DEF}, /* 1DEE */
2959  {0x1DF0,0x1DF0,0x1DF0}, {0x1DF1,0x1DF1,0x1DF1}, /* 1DF0 */
2960  {0x1DF2,0x1DF2,0x1DF2}, {0x1DF3,0x1DF3,0x1DF3}, /* 1DF2 */
2961  {0x1DF4,0x1DF4,0x1DF4}, {0x1DF5,0x1DF5,0x1DF5}, /* 1DF4 */
2962  {0x1DF6,0x1DF6,0x1DF6}, {0x1DF7,0x1DF7,0x1DF7}, /* 1DF6 */
2963  {0x1DF8,0x1DF8,0x1DF8}, {0x1DF9,0x1DF9,0x1DF9}, /* 1DF8 */
2964  {0x1DFA,0x1DFA,0x1DFA}, {0x1DFB,0x1DFB,0x1DFB}, /* 1DFA */
2965  {0x1DFC,0x1DFC,0x1DFC}, {0x1DFD,0x1DFD,0x1DFD}, /* 1DFC */
2966  {0x1DFE,0x1DFE,0x1DFE}, {0x1DFF,0x1DFF,0x1DFF} /* 1DFE */
2967 };
2968 
2969 static MY_UNICASE_CHARACTER u520p1E[]={
2970  {0x1E00,0x1E01,0x0041}, {0x1E00,0x1E01,0x0041}, /* 1E00 */
2971  {0x1E02,0x1E03,0x0042}, {0x1E02,0x1E03,0x0042}, /* 1E02 */
2972  {0x1E04,0x1E05,0x0042}, {0x1E04,0x1E05,0x0042}, /* 1E04 */
2973  {0x1E06,0x1E07,0x0042}, {0x1E06,0x1E07,0x0042}, /* 1E06 */
2974  {0x1E08,0x1E09,0x0043}, {0x1E08,0x1E09,0x0043}, /* 1E08 */
2975  {0x1E0A,0x1E0B,0x0044}, {0x1E0A,0x1E0B,0x0044}, /* 1E0A */
2976  {0x1E0C,0x1E0D,0x0044}, {0x1E0C,0x1E0D,0x0044}, /* 1E0C */
2977  {0x1E0E,0x1E0F,0x0044}, {0x1E0E,0x1E0F,0x0044}, /* 1E0E */
2978  {0x1E10,0x1E11,0x0044}, {0x1E10,0x1E11,0x0044}, /* 1E10 */
2979  {0x1E12,0x1E13,0x0044}, {0x1E12,0x1E13,0x0044}, /* 1E12 */
2980  {0x1E14,0x1E15,0x0045}, {0x1E14,0x1E15,0x0045}, /* 1E14 */
2981  {0x1E16,0x1E17,0x0045}, {0x1E16,0x1E17,0x0045}, /* 1E16 */
2982  {0x1E18,0x1E19,0x0045}, {0x1E18,0x1E19,0x0045}, /* 1E18 */
2983  {0x1E1A,0x1E1B,0x0045}, {0x1E1A,0x1E1B,0x0045}, /* 1E1A */
2984  {0x1E1C,0x1E1D,0x0045}, {0x1E1C,0x1E1D,0x0045}, /* 1E1C */
2985  {0x1E1E,0x1E1F,0x0046}, {0x1E1E,0x1E1F,0x0046}, /* 1E1E */
2986  {0x1E20,0x1E21,0x0047}, {0x1E20,0x1E21,0x0047}, /* 1E20 */
2987  {0x1E22,0x1E23,0x0048}, {0x1E22,0x1E23,0x0048}, /* 1E22 */
2988  {0x1E24,0x1E25,0x0048}, {0x1E24,0x1E25,0x0048}, /* 1E24 */
2989  {0x1E26,0x1E27,0x0048}, {0x1E26,0x1E27,0x0048}, /* 1E26 */
2990  {0x1E28,0x1E29,0x0048}, {0x1E28,0x1E29,0x0048}, /* 1E28 */
2991  {0x1E2A,0x1E2B,0x0048}, {0x1E2A,0x1E2B,0x0048}, /* 1E2A */
2992  {0x1E2C,0x1E2D,0x0049}, {0x1E2C,0x1E2D,0x0049}, /* 1E2C */
2993  {0x1E2E,0x1E2F,0x0049}, {0x1E2E,0x1E2F,0x0049}, /* 1E2E */
2994  {0x1E30,0x1E31,0x004B}, {0x1E30,0x1E31,0x004B}, /* 1E30 */
2995  {0x1E32,0x1E33,0x004B}, {0x1E32,0x1E33,0x004B}, /* 1E32 */
2996  {0x1E34,0x1E35,0x004B}, {0x1E34,0x1E35,0x004B}, /* 1E34 */
2997  {0x1E36,0x1E37,0x004C}, {0x1E36,0x1E37,0x004C}, /* 1E36 */
2998  {0x1E38,0x1E39,0x004C}, {0x1E38,0x1E39,0x004C}, /* 1E38 */
2999  {0x1E3A,0x1E3B,0x004C}, {0x1E3A,0x1E3B,0x004C}, /* 1E3A */
3000  {0x1E3C,0x1E3D,0x004C}, {0x1E3C,0x1E3D,0x004C}, /* 1E3C */
3001  {0x1E3E,0x1E3F,0x004D}, {0x1E3E,0x1E3F,0x004D}, /* 1E3E */
3002  {0x1E40,0x1E41,0x004D}, {0x1E40,0x1E41,0x004D}, /* 1E40 */
3003  {0x1E42,0x1E43,0x004D}, {0x1E42,0x1E43,0x004D}, /* 1E42 */
3004  {0x1E44,0x1E45,0x004E}, {0x1E44,0x1E45,0x004E}, /* 1E44 */
3005  {0x1E46,0x1E47,0x004E}, {0x1E46,0x1E47,0x004E}, /* 1E46 */
3006  {0x1E48,0x1E49,0x004E}, {0x1E48,0x1E49,0x004E}, /* 1E48 */
3007  {0x1E4A,0x1E4B,0x004E}, {0x1E4A,0x1E4B,0x004E}, /* 1E4A */
3008  {0x1E4C,0x1E4D,0x004F}, {0x1E4C,0x1E4D,0x004F}, /* 1E4C */
3009  {0x1E4E,0x1E4F,0x004F}, {0x1E4E,0x1E4F,0x004F}, /* 1E4E */
3010  {0x1E50,0x1E51,0x004F}, {0x1E50,0x1E51,0x004F}, /* 1E50 */
3011  {0x1E52,0x1E53,0x004F}, {0x1E52,0x1E53,0x004F}, /* 1E52 */
3012  {0x1E54,0x1E55,0x0050}, {0x1E54,0x1E55,0x0050}, /* 1E54 */
3013  {0x1E56,0x1E57,0x0050}, {0x1E56,0x1E57,0x0050}, /* 1E56 */
3014  {0x1E58,0x1E59,0x0052}, {0x1E58,0x1E59,0x0052}, /* 1E58 */
3015  {0x1E5A,0x1E5B,0x0052}, {0x1E5A,0x1E5B,0x0052}, /* 1E5A */
3016  {0x1E5C,0x1E5D,0x0052}, {0x1E5C,0x1E5D,0x0052}, /* 1E5C */
3017  {0x1E5E,0x1E5F,0x0052}, {0x1E5E,0x1E5F,0x0052}, /* 1E5E */
3018  {0x1E60,0x1E61,0x0053}, {0x1E60,0x1E61,0x0053}, /* 1E60 */
3019  {0x1E62,0x1E63,0x0053}, {0x1E62,0x1E63,0x0053}, /* 1E62 */
3020  {0x1E64,0x1E65,0x0053}, {0x1E64,0x1E65,0x0053}, /* 1E64 */
3021  {0x1E66,0x1E67,0x0053}, {0x1E66,0x1E67,0x0053}, /* 1E66 */
3022  {0x1E68,0x1E69,0x0053}, {0x1E68,0x1E69,0x0053}, /* 1E68 */
3023  {0x1E6A,0x1E6B,0x0054}, {0x1E6A,0x1E6B,0x0054}, /* 1E6A */
3024  {0x1E6C,0x1E6D,0x0054}, {0x1E6C,0x1E6D,0x0054}, /* 1E6C */
3025  {0x1E6E,0x1E6F,0x0054}, {0x1E6E,0x1E6F,0x0054}, /* 1E6E */
3026  {0x1E70,0x1E71,0x0054}, {0x1E70,0x1E71,0x0054}, /* 1E70 */
3027  {0x1E72,0x1E73,0x0055}, {0x1E72,0x1E73,0x0055}, /* 1E72 */
3028  {0x1E74,0x1E75,0x0055}, {0x1E74,0x1E75,0x0055}, /* 1E74 */
3029  {0x1E76,0x1E77,0x0055}, {0x1E76,0x1E77,0x0055}, /* 1E76 */
3030  {0x1E78,0x1E79,0x0055}, {0x1E78,0x1E79,0x0055}, /* 1E78 */
3031  {0x1E7A,0x1E7B,0x0055}, {0x1E7A,0x1E7B,0x0055}, /* 1E7A */
3032  {0x1E7C,0x1E7D,0x0056}, {0x1E7C,0x1E7D,0x0056}, /* 1E7C */
3033  {0x1E7E,0x1E7F,0x0056}, {0x1E7E,0x1E7F,0x0056}, /* 1E7E */
3034  {0x1E80,0x1E81,0x0057}, {0x1E80,0x1E81,0x0057}, /* 1E80 */
3035  {0x1E82,0x1E83,0x0057}, {0x1E82,0x1E83,0x0057}, /* 1E82 */
3036  {0x1E84,0x1E85,0x0057}, {0x1E84,0x1E85,0x0057}, /* 1E84 */
3037  {0x1E86,0x1E87,0x0057}, {0x1E86,0x1E87,0x0057}, /* 1E86 */
3038  {0x1E88,0x1E89,0x0057}, {0x1E88,0x1E89,0x0057}, /* 1E88 */
3039  {0x1E8A,0x1E8B,0x0058}, {0x1E8A,0x1E8B,0x0058}, /* 1E8A */
3040  {0x1E8C,0x1E8D,0x0058}, {0x1E8C,0x1E8D,0x0058}, /* 1E8C */
3041  {0x1E8E,0x1E8F,0x0059}, {0x1E8E,0x1E8F,0x0059}, /* 1E8E */
3042  {0x1E90,0x1E91,0x005A}, {0x1E90,0x1E91,0x005A}, /* 1E90 */
3043  {0x1E92,0x1E93,0x005A}, {0x1E92,0x1E93,0x005A}, /* 1E92 */
3044  {0x1E94,0x1E95,0x005A}, {0x1E94,0x1E95,0x005A}, /* 1E94 */
3045  {0x1E96,0x1E96,0x0048}, {0x1E97,0x1E97,0x0054}, /* 1E96 */
3046  {0x1E98,0x1E98,0x0057}, {0x1E99,0x1E99,0x0059}, /* 1E98 */
3047  {0x1E9A,0x1E9A,0x1E9A}, {0x1E60,0x1E9B,0x0053}, /* 1E9A */
3048  {0x1E9C,0x1E9C,0x1E9C}, {0x1E9D,0x1E9D,0x1E9D}, /* 1E9C */
3049  {0x1E9E,0x00DF,0x1E9E}, {0x1E9F,0x1E9F,0x1E9F}, /* 1E9E */
3050  {0x1EA0,0x1EA1,0x0041}, {0x1EA0,0x1EA1,0x0041}, /* 1EA0 */
3051  {0x1EA2,0x1EA3,0x0041}, {0x1EA2,0x1EA3,0x0041}, /* 1EA2 */
3052  {0x1EA4,0x1EA5,0x0041}, {0x1EA4,0x1EA5,0x0041}, /* 1EA4 */
3053  {0x1EA6,0x1EA7,0x0041}, {0x1EA6,0x1EA7,0x0041}, /* 1EA6 */
3054  {0x1EA8,0x1EA9,0x0041}, {0x1EA8,0x1EA9,0x0041}, /* 1EA8 */
3055  {0x1EAA,0x1EAB,0x0041}, {0x1EAA,0x1EAB,0x0041}, /* 1EAA */
3056  {0x1EAC,0x1EAD,0x0041}, {0x1EAC,0x1EAD,0x0041}, /* 1EAC */
3057  {0x1EAE,0x1EAF,0x0041}, {0x1EAE,0x1EAF,0x0041}, /* 1EAE */
3058  {0x1EB0,0x1EB1,0x0041}, {0x1EB0,0x1EB1,0x0041}, /* 1EB0 */
3059  {0x1EB2,0x1EB3,0x0041}, {0x1EB2,0x1EB3,0x0041}, /* 1EB2 */
3060  {0x1EB4,0x1EB5,0x0041}, {0x1EB4,0x1EB5,0x0041}, /* 1EB4 */
3061  {0x1EB6,0x1EB7,0x0041}, {0x1EB6,0x1EB7,0x0041}, /* 1EB6 */
3062  {0x1EB8,0x1EB9,0x0045}, {0x1EB8,0x1EB9,0x0045}, /* 1EB8 */
3063  {0x1EBA,0x1EBB,0x0045}, {0x1EBA,0x1EBB,0x0045}, /* 1EBA */
3064  {0x1EBC,0x1EBD,0x0045}, {0x1EBC,0x1EBD,0x0045}, /* 1EBC */
3065  {0x1EBE,0x1EBF,0x0045}, {0x1EBE,0x1EBF,0x0045}, /* 1EBE */
3066  {0x1EC0,0x1EC1,0x0045}, {0x1EC0,0x1EC1,0x0045}, /* 1EC0 */
3067  {0x1EC2,0x1EC3,0x0045}, {0x1EC2,0x1EC3,0x0045}, /* 1EC2 */
3068  {0x1EC4,0x1EC5,0x0045}, {0x1EC4,0x1EC5,0x0045}, /* 1EC4 */
3069  {0x1EC6,0x1EC7,0x0045}, {0x1EC6,0x1EC7,0x0045}, /* 1EC6 */
3070  {0x1EC8,0x1EC9,0x0049}, {0x1EC8,0x1EC9,0x0049}, /* 1EC8 */
3071  {0x1ECA,0x1ECB,0x0049}, {0x1ECA,0x1ECB,0x0049}, /* 1ECA */
3072  {0x1ECC,0x1ECD,0x004F}, {0x1ECC,0x1ECD,0x004F}, /* 1ECC */
3073  {0x1ECE,0x1ECF,0x004F}, {0x1ECE,0x1ECF,0x004F}, /* 1ECE */
3074  {0x1ED0,0x1ED1,0x004F}, {0x1ED0,0x1ED1,0x004F}, /* 1ED0 */
3075  {0x1ED2,0x1ED3,0x004F}, {0x1ED2,0x1ED3,0x004F}, /* 1ED2 */
3076  {0x1ED4,0x1ED5,0x004F}, {0x1ED4,0x1ED5,0x004F}, /* 1ED4 */
3077  {0x1ED6,0x1ED7,0x004F}, {0x1ED6,0x1ED7,0x004F}, /* 1ED6 */
3078  {0x1ED8,0x1ED9,0x004F}, {0x1ED8,0x1ED9,0x004F}, /* 1ED8 */
3079  {0x1EDA,0x1EDB,0x004F}, {0x1EDA,0x1EDB,0x004F}, /* 1EDA */
3080  {0x1EDC,0x1EDD,0x004F}, {0x1EDC,0x1EDD,0x004F}, /* 1EDC */
3081  {0x1EDE,0x1EDF,0x004F}, {0x1EDE,0x1EDF,0x004F}, /* 1EDE */
3082  {0x1EE0,0x1EE1,0x004F}, {0x1EE0,0x1EE1,0x004F}, /* 1EE0 */
3083  {0x1EE2,0x1EE3,0x004F}, {0x1EE2,0x1EE3,0x004F}, /* 1EE2 */
3084  {0x1EE4,0x1EE5,0x0055}, {0x1EE4,0x1EE5,0x0055}, /* 1EE4 */
3085  {0x1EE6,0x1EE7,0x0055}, {0x1EE6,0x1EE7,0x0055}, /* 1EE6 */
3086  {0x1EE8,0x1EE9,0x0055}, {0x1EE8,0x1EE9,0x0055}, /* 1EE8 */
3087  {0x1EEA,0x1EEB,0x0055}, {0x1EEA,0x1EEB,0x0055}, /* 1EEA */
3088  {0x1EEC,0x1EED,0x0055}, {0x1EEC,0x1EED,0x0055}, /* 1EEC */
3089  {0x1EEE,0x1EEF,0x0055}, {0x1EEE,0x1EEF,0x0055}, /* 1EEE */
3090  {0x1EF0,0x1EF1,0x0055}, {0x1EF0,0x1EF1,0x0055}, /* 1EF0 */
3091  {0x1EF2,0x1EF3,0x0059}, {0x1EF2,0x1EF3,0x0059}, /* 1EF2 */
3092  {0x1EF4,0x1EF5,0x0059}, {0x1EF4,0x1EF5,0x0059}, /* 1EF4 */
3093  {0x1EF6,0x1EF7,0x0059}, {0x1EF6,0x1EF7,0x0059}, /* 1EF6 */
3094  {0x1EF8,0x1EF9,0x0059}, {0x1EF8,0x1EF9,0x0059}, /* 1EF8 */
3095  {0x1EFA,0x1EFB,0x1EFA}, {0x1EFA,0x1EFB,0x1EFA}, /* 1EFA */
3096  {0x1EFC,0x1EFD,0x1EFC}, {0x1EFC,0x1EFD,0x1EFC}, /* 1EFC */
3097  {0x1EFE,0x1EFF,0x1EFE}, {0x1EFE,0x1EFF,0x1EFE} /* 1EFE */
3098 };
3099 
3100 static MY_UNICASE_CHARACTER u520p1F[]={
3101  {0x1F08,0x1F00,0x0391}, {0x1F09,0x1F01,0x0391}, /* 1F00 */
3102  {0x1F0A,0x1F02,0x0391}, {0x1F0B,0x1F03,0x0391}, /* 1F02 */
3103  {0x1F0C,0x1F04,0x0391}, {0x1F0D,0x1F05,0x0391}, /* 1F04 */
3104  {0x1F0E,0x1F06,0x0391}, {0x1F0F,0x1F07,0x0391}, /* 1F06 */
3105  {0x1F08,0x1F00,0x0391}, {0x1F09,0x1F01,0x0391}, /* 1F08 */
3106  {0x1F0A,0x1F02,0x0391}, {0x1F0B,0x1F03,0x0391}, /* 1F0A */
3107  {0x1F0C,0x1F04,0x0391}, {0x1F0D,0x1F05,0x0391}, /* 1F0C */
3108  {0x1F0E,0x1F06,0x0391}, {0x1F0F,0x1F07,0x0391}, /* 1F0E */
3109  {0x1F18,0x1F10,0x0395}, {0x1F19,0x1F11,0x0395}, /* 1F10 */
3110  {0x1F1A,0x1F12,0x0395}, {0x1F1B,0x1F13,0x0395}, /* 1F12 */
3111  {0x1F1C,0x1F14,0x0395}, {0x1F1D,0x1F15,0x0395}, /* 1F14 */
3112  {0x1F16,0x1F16,0x1F16}, {0x1F17,0x1F17,0x1F17}, /* 1F16 */
3113  {0x1F18,0x1F10,0x0395}, {0x1F19,0x1F11,0x0395}, /* 1F18 */
3114  {0x1F1A,0x1F12,0x0395}, {0x1F1B,0x1F13,0x0395}, /* 1F1A */
3115  {0x1F1C,0x1F14,0x0395}, {0x1F1D,0x1F15,0x0395}, /* 1F1C */
3116  {0x1F1E,0x1F1E,0x1F1E}, {0x1F1F,0x1F1F,0x1F1F}, /* 1F1E */
3117  {0x1F28,0x1F20,0x0397}, {0x1F29,0x1F21,0x0397}, /* 1F20 */
3118  {0x1F2A,0x1F22,0x0397}, {0x1F2B,0x1F23,0x0397}, /* 1F22 */
3119  {0x1F2C,0x1F24,0x0397}, {0x1F2D,0x1F25,0x0397}, /* 1F24 */
3120  {0x1F2E,0x1F26,0x0397}, {0x1F2F,0x1F27,0x0397}, /* 1F26 */
3121  {0x1F28,0x1F20,0x0397}, {0x1F29,0x1F21,0x0397}, /* 1F28 */
3122  {0x1F2A,0x1F22,0x0397}, {0x1F2B,0x1F23,0x0397}, /* 1F2A */
3123  {0x1F2C,0x1F24,0x0397}, {0x1F2D,0x1F25,0x0397}, /* 1F2C */
3124  {0x1F2E,0x1F26,0x0397}, {0x1F2F,0x1F27,0x0397}, /* 1F2E */
3125  {0x1F38,0x1F30,0x0399}, {0x1F39,0x1F31,0x0399}, /* 1F30 */
3126  {0x1F3A,0x1F32,0x0399}, {0x1F3B,0x1F33,0x0399}, /* 1F32 */
3127  {0x1F3C,0x1F34,0x0399}, {0x1F3D,0x1F35,0x0399}, /* 1F34 */
3128  {0x1F3E,0x1F36,0x0399}, {0x1F3F,0x1F37,0x0399}, /* 1F36 */
3129  {0x1F38,0x1F30,0x0399}, {0x1F39,0x1F31,0x0399}, /* 1F38 */
3130  {0x1F3A,0x1F32,0x0399}, {0x1F3B,0x1F33,0x0399}, /* 1F3A */
3131  {0x1F3C,0x1F34,0x0399}, {0x1F3D,0x1F35,0x0399}, /* 1F3C */
3132  {0x1F3E,0x1F36,0x0399}, {0x1F3F,0x1F37,0x0399}, /* 1F3E */
3133  {0x1F48,0x1F40,0x039F}, {0x1F49,0x1F41,0x039F}, /* 1F40 */
3134  {0x1F4A,0x1F42,0x039F}, {0x1F4B,0x1F43,0x039F}, /* 1F42 */
3135  {0x1F4C,0x1F44,0x039F}, {0x1F4D,0x1F45,0x039F}, /* 1F44 */
3136  {0x1F46,0x1F46,0x1F46}, {0x1F47,0x1F47,0x1F47}, /* 1F46 */
3137  {0x1F48,0x1F40,0x039F}, {0x1F49,0x1F41,0x039F}, /* 1F48 */
3138  {0x1F4A,0x1F42,0x039F}, {0x1F4B,0x1F43,0x039F}, /* 1F4A */
3139  {0x1F4C,0x1F44,0x039F}, {0x1F4D,0x1F45,0x039F}, /* 1F4C */
3140  {0x1F4E,0x1F4E,0x1F4E}, {0x1F4F,0x1F4F,0x1F4F}, /* 1F4E */
3141  {0x1F50,0x1F50,0x03A5}, {0x1F59,0x1F51,0x03A5}, /* 1F50 */
3142  {0x1F52,0x1F52,0x03A5}, {0x1F5B,0x1F53,0x03A5}, /* 1F52 */
3143  {0x1F54,0x1F54,0x03A5}, {0x1F5D,0x1F55,0x03A5}, /* 1F54 */
3144  {0x1F56,0x1F56,0x03A5}, {0x1F5F,0x1F57,0x03A5}, /* 1F56 */
3145  {0x1F58,0x1F58,0x1F58}, {0x1F59,0x1F51,0x03A5}, /* 1F58 */
3146  {0x1F5A,0x1F5A,0x1F5A}, {0x1F5B,0x1F53,0x03A5}, /* 1F5A */
3147  {0x1F5C,0x1F5C,0x1F5C}, {0x1F5D,0x1F55,0x03A5}, /* 1F5C */
3148  {0x1F5E,0x1F5E,0x1F5E}, {0x1F5F,0x1F57,0x03A5}, /* 1F5E */
3149  {0x1F68,0x1F60,0x03A9}, {0x1F69,0x1F61,0x03A9}, /* 1F60 */
3150  {0x1F6A,0x1F62,0x03A9}, {0x1F6B,0x1F63,0x03A9}, /* 1F62 */
3151  {0x1F6C,0x1F64,0x03A9}, {0x1F6D,0x1F65,0x03A9}, /* 1F64 */
3152  {0x1F6E,0x1F66,0x03A9}, {0x1F6F,0x1F67,0x03A9}, /* 1F66 */
3153  {0x1F68,0x1F60,0x03A9}, {0x1F69,0x1F61,0x03A9}, /* 1F68 */
3154  {0x1F6A,0x1F62,0x03A9}, {0x1F6B,0x1F63,0x03A9}, /* 1F6A */
3155  {0x1F6C,0x1F64,0x03A9}, {0x1F6D,0x1F65,0x03A9}, /* 1F6C */
3156  {0x1F6E,0x1F66,0x03A9}, {0x1F6F,0x1F67,0x03A9}, /* 1F6E */
3157  {0x1FBA,0x1F70,0x0391}, {0x1FBB,0x1F71,0x1FBB}, /* 1F70 */
3158  {0x1FC8,0x1F72,0x0395}, {0x1FC9,0x1F73,0x1FC9}, /* 1F72 */
3159  {0x1FCA,0x1F74,0x0397}, {0x1FCB,0x1F75,0x1FCB}, /* 1F74 */
3160  {0x1FDA,0x1F76,0x0399}, {0x1FDB,0x1F77,0x1FDB}, /* 1F76 */
3161  {0x1FF8,0x1F78,0x039F}, {0x1FF9,0x1F79,0x1FF9}, /* 1F78 */
3162  {0x1FEA,0x1F7A,0x03A5}, {0x1FEB,0x1F7B,0x1FEB}, /* 1F7A */
3163  {0x1FFA,0x1F7C,0x03A9}, {0x1FFB,0x1F7D,0x1FFB}, /* 1F7C */
3164  {0x1F7E,0x1F7E,0x1F7E}, {0x1F7F,0x1F7F,0x1F7F}, /* 1F7E */
3165  {0x1F88,0x1F80,0x0391}, {0x1F89,0x1F81,0x0391}, /* 1F80 */
3166  {0x1F8A,0x1F82,0x0391}, {0x1F8B,0x1F83,0x0391}, /* 1F82 */
3167  {0x1F8C,0x1F84,0x0391}, {0x1F8D,0x1F85,0x0391}, /* 1F84 */
3168  {0x1F8E,0x1F86,0x0391}, {0x1F8F,0x1F87,0x0391}, /* 1F86 */
3169  {0x1F88,0x1F80,0x0391}, {0x1F89,0x1F81,0x0391}, /* 1F88 */
3170  {0x1F8A,0x1F82,0x0391}, {0x1F8B,0x1F83,0x0391}, /* 1F8A */
3171  {0x1F8C,0x1F84,0x0391}, {0x1F8D,0x1F85,0x0391}, /* 1F8C */
3172  {0x1F8E,0x1F86,0x0391}, {0x1F8F,0x1F87,0x0391}, /* 1F8E */
3173  {0x1F98,0x1F90,0x0397}, {0x1F99,0x1F91,0x0397}, /* 1F90 */
3174  {0x1F9A,0x1F92,0x0397}, {0x1F9B,0x1F93,0x0397}, /* 1F92 */
3175  {0x1F9C,0x1F94,0x0397}, {0x1F9D,0x1F95,0x0397}, /* 1F94 */
3176  {0x1F9E,0x1F96,0x0397}, {0x1F9F,0x1F97,0x0397}, /* 1F96 */
3177  {0x1F98,0x1F90,0x0397}, {0x1F99,0x1F91,0x0397}, /* 1F98 */
3178  {0x1F9A,0x1F92,0x0397}, {0x1F9B,0x1F93,0x0397}, /* 1F9A */
3179  {0x1F9C,0x1F94,0x0397}, {0x1F9D,0x1F95,0x0397}, /* 1F9C */
3180  {0x1F9E,0x1F96,0x0397}, {0x1F9F,0x1F97,0x0397}, /* 1F9E */
3181  {0x1FA8,0x1FA0,0x03A9}, {0x1FA9,0x1FA1,0x03A9}, /* 1FA0 */
3182  {0x1FAA,0x1FA2,0x03A9}, {0x1FAB,0x1FA3,0x03A9}, /* 1FA2 */
3183  {0x1FAC,0x1FA4,0x03A9}, {0x1FAD,0x1FA5,0x03A9}, /* 1FA4 */
3184  {0x1FAE,0x1FA6,0x03A9}, {0x1FAF,0x1FA7,0x03A9}, /* 1FA6 */
3185  {0x1FA8,0x1FA0,0x03A9}, {0x1FA9,0x1FA1,0x03A9}, /* 1FA8 */
3186  {0x1FAA,0x1FA2,0x03A9}, {0x1FAB,0x1FA3,0x03A9}, /* 1FAA */
3187  {0x1FAC,0x1FA4,0x03A9}, {0x1FAD,0x1FA5,0x03A9}, /* 1FAC */
3188  {0x1FAE,0x1FA6,0x03A9}, {0x1FAF,0x1FA7,0x03A9}, /* 1FAE */
3189  {0x1FB8,0x1FB0,0x0391}, {0x1FB9,0x1FB1,0x0391}, /* 1FB0 */
3190  {0x1FB2,0x1FB2,0x0391}, {0x1FBC,0x1FB3,0x0391}, /* 1FB2 */
3191  {0x1FB4,0x1FB4,0x0391}, {0x1FB5,0x1FB5,0x1FB5}, /* 1FB4 */
3192  {0x1FB6,0x1FB6,0x0391}, {0x1FB7,0x1FB7,0x0391}, /* 1FB6 */
3193  {0x1FB8,0x1FB0,0x0391}, {0x1FB9,0x1FB1,0x0391}, /* 1FB8 */
3194  {0x1FBA,0x1F70,0x0391}, {0x1FBB,0x1F71,0x1FBB}, /* 1FBA */
3195  {0x1FBC,0x1FB3,0x0391}, {0x1FBD,0x1FBD,0x1FBD}, /* 1FBC */
3196  {0x0399,0x1FBE,0x0399}, {0x1FBF,0x1FBF,0x1FBF}, /* 1FBE */
3197  {0x1FC0,0x1FC0,0x1FC0}, {0x1FC1,0x1FC1,0x1FC1}, /* 1FC0 */
3198  {0x1FC2,0x1FC2,0x0397}, {0x1FCC,0x1FC3,0x0397}, /* 1FC2 */
3199  {0x1FC4,0x1FC4,0x0397}, {0x1FC5,0x1FC5,0x1FC5}, /* 1FC4 */
3200  {0x1FC6,0x1FC6,0x0397}, {0x1FC7,0x1FC7,0x0397}, /* 1FC6 */
3201  {0x1FC8,0x1F72,0x0395}, {0x1FC9,0x1F73,0x1FC9}, /* 1FC8 */
3202  {0x1FCA,0x1F74,0x0397}, {0x1FCB,0x1F75,0x1FCB}, /* 1FCA */
3203  {0x1FCC,0x1FC3,0x0397}, {0x1FCD,0x1FCD,0x1FCD}, /* 1FCC */
3204  {0x1FCE,0x1FCE,0x1FCE}, {0x1FCF,0x1FCF,0x1FCF}, /* 1FCE */
3205  {0x1FD8,0x1FD0,0x0399}, {0x1FD9,0x1FD1,0x0399}, /* 1FD0 */
3206  {0x1FD2,0x1FD2,0x0399}, {0x1FD3,0x1FD3,0x1FD3}, /* 1FD2 */
3207  {0x1FD4,0x1FD4,0x1FD4}, {0x1FD5,0x1FD5,0x1FD5}, /* 1FD4 */
3208  {0x1FD6,0x1FD6,0x0399}, {0x1FD7,0x1FD7,0x0399}, /* 1FD6 */
3209  {0x1FD8,0x1FD0,0x0399}, {0x1FD9,0x1FD1,0x0399}, /* 1FD8 */
3210  {0x1FDA,0x1F76,0x0399}, {0x1FDB,0x1F77,0x1FDB}, /* 1FDA */
3211  {0x1FDC,0x1FDC,0x1FDC}, {0x1FDD,0x1FDD,0x1FDD}, /* 1FDC */
3212  {0x1FDE,0x1FDE,0x1FDE}, {0x1FDF,0x1FDF,0x1FDF}, /* 1FDE */
3213  {0x1FE8,0x1FE0,0x03A5}, {0x1FE9,0x1FE1,0x03A5}, /* 1FE0 */
3214  {0x1FE2,0x1FE2,0x03A5}, {0x1FE3,0x1FE3,0x1FE3}, /* 1FE2 */
3215  {0x1FE4,0x1FE4,0x03A1}, {0x1FEC,0x1FE5,0x03A1}, /* 1FE4 */
3216  {0x1FE6,0x1FE6,0x03A5}, {0x1FE7,0x1FE7,0x03A5}, /* 1FE6 */
3217  {0x1FE8,0x1FE0,0x03A5}, {0x1FE9,0x1FE1,0x03A5}, /* 1FE8 */
3218  {0x1FEA,0x1F7A,0x03A5}, {0x1FEB,0x1F7B,0x1FEB}, /* 1FEA */
3219  {0x1FEC,0x1FE5,0x03A1}, {0x1FED,0x1FED,0x1FED}, /* 1FEC */
3220  {0x1FEE,0x1FEE,0x1FEE}, {0x1FEF,0x1FEF,0x1FEF}, /* 1FEE */
3221  {0x1FF0,0x1FF0,0x1FF0}, {0x1FF1,0x1FF1,0x1FF1}, /* 1FF0 */
3222  {0x1FF2,0x1FF2,0x03A9}, {0x1FFC,0x1FF3,0x03A9}, /* 1FF2 */
3223  {0x1FF4,0x1FF4,0x03A9}, {0x1FF5,0x1FF5,0x1FF5}, /* 1FF4 */
3224  {0x1FF6,0x1FF6,0x03A9}, {0x1FF7,0x1FF7,0x03A9}, /* 1FF6 */
3225  {0x1FF8,0x1F78,0x039F}, {0x1FF9,0x1F79,0x1FF9}, /* 1FF8 */
3226  {0x1FFA,0x1F7C,0x03A9}, {0x1FFB,0x1F7D,0x1FFB}, /* 1FFA */
3227  {0x1FFC,0x1FF3,0x03A9}, {0x1FFD,0x1FFD,0x1FFD}, /* 1FFC */
3228  {0x1FFE,0x1FFE,0x1FFE}, {0x1FFF,0x1FFF,0x1FFF} /* 1FFE */
3229 };
3230 
3231 static MY_UNICASE_CHARACTER u520p21[]={
3232  {0x2100,0x2100,0x2100}, {0x2101,0x2101,0x2101}, /* 2100 */
3233  {0x2102,0x2102,0x2102}, {0x2103,0x2103,0x2103}, /* 2102 */
3234  {0x2104,0x2104,0x2104}, {0x2105,0x2105,0x2105}, /* 2104 */
3235  {0x2106,0x2106,0x2106}, {0x2107,0x2107,0x2107}, /* 2106 */
3236  {0x2108,0x2108,0x2108}, {0x2109,0x2109,0x2109}, /* 2108 */
3237  {0x210A,0x210A,0x210A}, {0x210B,0x210B,0x210B}, /* 210A */
3238  {0x210C,0x210C,0x210C}, {0x210D,0x210D,0x210D}, /* 210C */
3239  {0x210E,0x210E,0x210E}, {0x210F,0x210F,0x210F}, /* 210E */
3240  {0x2110,0x2110,0x2110}, {0x2111,0x2111,0x2111}, /* 2110 */
3241  {0x2112,0x2112,0x2112}, {0x2113,0x2113,0x2113}, /* 2112 */
3242  {0x2114,0x2114,0x2114}, {0x2115,0x2115,0x2115}, /* 2114 */
3243  {0x2116,0x2116,0x2116}, {0x2117,0x2117,0x2117}, /* 2116 */
3244  {0x2118,0x2118,0x2118}, {0x2119,0x2119,0x2119}, /* 2118 */
3245  {0x211A,0x211A,0x211A}, {0x211B,0x211B,0x211B}, /* 211A */
3246  {0x211C,0x211C,0x211C}, {0x211D,0x211D,0x211D}, /* 211C */
3247  {0x211E,0x211E,0x211E}, {0x211F,0x211F,0x211F}, /* 211E */
3248  {0x2120,0x2120,0x2120}, {0x2121,0x2121,0x2121}, /* 2120 */
3249  {0x2122,0x2122,0x2122}, {0x2123,0x2123,0x2123}, /* 2122 */
3250  {0x2124,0x2124,0x2124}, {0x2125,0x2125,0x2125}, /* 2124 */
3251  {0x2126,0x03C9,0x2126}, {0x2127,0x2127,0x2127}, /* 2126 */
3252  {0x2128,0x2128,0x2128}, {0x2129,0x2129,0x2129}, /* 2128 */
3253  {0x212A,0x006B,0x212A}, {0x212B,0x00E5,0x212B}, /* 212A */
3254  {0x212C,0x212C,0x212C}, {0x212D,0x212D,0x212D}, /* 212C */
3255  {0x212E,0x212E,0x212E}, {0x212F,0x212F,0x212F}, /* 212E */
3256  {0x2130,0x2130,0x2130}, {0x2131,0x2131,0x2131}, /* 2130 */
3257  {0x2132,0x214E,0x2132}, {0x2133,0x2133,0x2133}, /* 2132 */
3258  {0x2134,0x2134,0x2134}, {0x2135,0x2135,0x2135}, /* 2134 */
3259  {0x2136,0x2136,0x2136}, {0x2137,0x2137,0x2137}, /* 2136 */
3260  {0x2138,0x2138,0x2138}, {0x2139,0x2139,0x2139}, /* 2138 */
3261  {0x213A,0x213A,0x213A}, {0x213B,0x213B,0x213B}, /* 213A */
3262  {0x213C,0x213C,0x213C}, {0x213D,0x213D,0x213D}, /* 213C */
3263  {0x213E,0x213E,0x213E}, {0x213F,0x213F,0x213F}, /* 213E */
3264  {0x2140,0x2140,0x2140}, {0x2141,0x2141,0x2141}, /* 2140 */
3265  {0x2142,0x2142,0x2142}, {0x2143,0x2143,0x2143}, /* 2142 */
3266  {0x2144,0x2144,0x2144}, {0x2145,0x2145,0x2145}, /* 2144 */
3267  {0x2146,0x2146,0x2146}, {0x2147,0x2147,0x2147}, /* 2146 */
3268  {0x2148,0x2148,0x2148}, {0x2149,0x2149,0x2149}, /* 2148 */
3269  {0x214A,0x214A,0x214A}, {0x214B,0x214B,0x214B}, /* 214A */
3270  {0x214C,0x214C,0x214C}, {0x214D,0x214D,0x214D}, /* 214C */
3271  {0x2132,0x214E,0x2132}, {0x214F,0x214F,0x214F}, /* 214E */
3272  {0x2150,0x2150,0x2150}, {0x2151,0x2151,0x2151}, /* 2150 */
3273  {0x2152,0x2152,0x2152}, {0x2153,0x2153,0x2153}, /* 2152 */
3274  {0x2154,0x2154,0x2154}, {0x2155,0x2155,0x2155}, /* 2154 */
3275  {0x2156,0x2156,0x2156}, {0x2157,0x2157,0x2157}, /* 2156 */
3276  {0x2158,0x2158,0x2158}, {0x2159,0x2159,0x2159}, /* 2158 */
3277  {0x215A,0x215A,0x215A}, {0x215B,0x215B,0x215B}, /* 215A */
3278  {0x215C,0x215C,0x215C}, {0x215D,0x215D,0x215D}, /* 215C */
3279  {0x215E,0x215E,0x215E}, {0x215F,0x215F,0x215F}, /* 215E */
3280  {0x2160,0x2170,0x2160}, {0x2161,0x2171,0x2161}, /* 2160 */
3281  {0x2162,0x2172,0x2162}, {0x2163,0x2173,0x2163}, /* 2162 */
3282  {0x2164,0x2174,0x2164}, {0x2165,0x2175,0x2165}, /* 2164 */
3283  {0x2166,0x2176,0x2166}, {0x2167,0x2177,0x2167}, /* 2166 */
3284  {0x2168,0x2178,0x2168}, {0x2169,0x2179,0x2169}, /* 2168 */
3285  {0x216A,0x217A,0x216A}, {0x216B,0x217B,0x216B}, /* 216A */
3286  {0x216C,0x217C,0x216C}, {0x216D,0x217D,0x216D}, /* 216C */
3287  {0x216E,0x217E,0x216E}, {0x216F,0x217F,0x216F}, /* 216E */
3288  {0x2160,0x2170,0x2160}, {0x2161,0x2171,0x2161}, /* 2170 */
3289  {0x2162,0x2172,0x2162}, {0x2163,0x2173,0x2163}, /* 2172 */
3290  {0x2164,0x2174,0x2164}, {0x2165,0x2175,0x2165}, /* 2174 */
3291  {0x2166,0x2176,0x2166}, {0x2167,0x2177,0x2167}, /* 2176 */
3292  {0x2168,0x2178,0x2168}, {0x2169,0x2179,0x2169}, /* 2178 */
3293  {0x216A,0x217A,0x216A}, {0x216B,0x217B,0x216B}, /* 217A */
3294  {0x216C,0x217C,0x216C}, {0x216D,0x217D,0x216D}, /* 217C */
3295  {0x216E,0x217E,0x216E}, {0x216F,0x217F,0x216F}, /* 217E */
3296  {0x2180,0x2180,0x2180}, {0x2181,0x2181,0x2181}, /* 2180 */
3297  {0x2182,0x2182,0x2182}, {0x2183,0x2184,0x2183}, /* 2182 */
3298  {0x2183,0x2184,0x2183}, {0x2185,0x2185,0x2185}, /* 2184 */
3299  {0x2186,0x2186,0x2186}, {0x2187,0x2187,0x2187}, /* 2186 */
3300  {0x2188,0x2188,0x2188}, {0x2189,0x2189,0x2189}, /* 2188 */
3301  {0x218A,0x218A,0x218A}, {0x218B,0x218B,0x218B}, /* 218A */
3302  {0x218C,0x218C,0x218C}, {0x218D,0x218D,0x218D}, /* 218C */
3303  {0x218E,0x218E,0x218E}, {0x218F,0x218F,0x218F}, /* 218E */
3304  {0x2190,0x2190,0x2190}, {0x2191,0x2191,0x2191}, /* 2190 */
3305  {0x2192,0x2192,0x2192}, {0x2193,0x2193,0x2193}, /* 2192 */
3306  {0x2194,0x2194,0x2194}, {0x2195,0x2195,0x2195}, /* 2194 */
3307  {0x2196,0x2196,0x2196}, {0x2197,0x2197,0x2197}, /* 2196 */
3308  {0x2198,0x2198,0x2198}, {0x2199,0x2199,0x2199}, /* 2198 */
3309  {0x219A,0x219A,0x219A}, {0x219B,0x219B,0x219B}, /* 219A */
3310  {0x219C,0x219C,0x219C}, {0x219D,0x219D,0x219D}, /* 219C */
3311  {0x219E,0x219E,0x219E}, {0x219F,0x219F,0x219F}, /* 219E */
3312  {0x21A0,0x21A0,0x21A0}, {0x21A1,0x21A1,0x21A1}, /* 21A0 */
3313  {0x21A2,0x21A2,0x21A2}, {0x21A3,0x21A3,0x21A3}, /* 21A2 */
3314  {0x21A4,0x21A4,0x21A4}, {0x21A5,0x21A5,0x21A5}, /* 21A4 */
3315  {0x21A6,0x21A6,0x21A6}, {0x21A7,0x21A7,0x21A7}, /* 21A6 */
3316  {0x21A8,0x21A8,0x21A8}, {0x21A9,0x21A9,0x21A9}, /* 21A8 */
3317  {0x21AA,0x21AA,0x21AA}, {0x21AB,0x21AB,0x21AB}, /* 21AA */
3318  {0x21AC,0x21AC,0x21AC}, {0x21AD,0x21AD,0x21AD}, /* 21AC */
3319  {0x21AE,0x21AE,0x21AE}, {0x21AF,0x21AF,0x21AF}, /* 21AE */
3320  {0x21B0,0x21B0,0x21B0}, {0x21B1,0x21B1,0x21B1}, /* 21B0 */
3321  {0x21B2,0x21B2,0x21B2}, {0x21B3,0x21B3,0x21B3}, /* 21B2 */
3322  {0x21B4,0x21B4,0x21B4}, {0x21B5,0x21B5,0x21B5}, /* 21B4 */
3323  {0x21B6,0x21B6,0x21B6}, {0x21B7,0x21B7,0x21B7}, /* 21B6 */
3324  {0x21B8,0x21B8,0x21B8}, {0x21B9,0x21B9,0x21B9}, /* 21B8 */
3325  {0x21BA,0x21BA,0x21BA}, {0x21BB,0x21BB,0x21BB}, /* 21BA */
3326  {0x21BC,0x21BC,0x21BC}, {0x21BD,0x21BD,0x21BD}, /* 21BC */
3327  {0x21BE,0x21BE,0x21BE}, {0x21BF,0x21BF,0x21BF}, /* 21BE */
3328  {0x21C0,0x21C0,0x21C0}, {0x21C1,0x21C1,0x21C1}, /* 21C0 */
3329  {0x21C2,0x21C2,0x21C2}, {0x21C3,0x21C3,0x21C3}, /* 21C2 */
3330  {0x21C4,0x21C4,0x21C4}, {0x21C5,0x21C5,0x21C5}, /* 21C4 */
3331  {0x21C6,0x21C6,0x21C6}, {0x21C7,0x21C7,0x21C7}, /* 21C6 */
3332  {0x21C8,0x21C8,0x21C8}, {0x21C9,0x21C9,0x21C9}, /* 21C8 */
3333  {0x21CA,0x21CA,0x21CA}, {0x21CB,0x21CB,0x21CB}, /* 21CA */
3334  {0x21CC,0x21CC,0x21CC}, {0x21CD,0x21CD,0x21CD}, /* 21CC */
3335  {0x21CE,0x21CE,0x21CE}, {0x21CF,0x21CF,0x21CF}, /* 21CE */
3336  {0x21D0,0x21D0,0x21D0}, {0x21D1,0x21D1,0x21D1}, /* 21D0 */
3337  {0x21D2,0x21D2,0x21D2}, {0x21D3,0x21D3,0x21D3}, /* 21D2 */
3338  {0x21D4,0x21D4,0x21D4}, {0x21D5,0x21D5,0x21D5}, /* 21D4 */
3339  {0x21D6,0x21D6,0x21D6}, {0x21D7,0x21D7,0x21D7}, /* 21D6 */
3340  {0x21D8,0x21D8,0x21D8}, {0x21D9,0x21D9,0x21D9}, /* 21D8 */
3341  {0x21DA,0x21DA,0x21DA}, {0x21DB,0x21DB,0x21DB}, /* 21DA */
3342  {0x21DC,0x21DC,0x21DC}, {0x21DD,0x21DD,0x21DD}, /* 21DC */
3343  {0x21DE,0x21DE,0x21DE}, {0x21DF,0x21DF,0x21DF}, /* 21DE */
3344  {0x21E0,0x21E0,0x21E0}, {0x21E1,0x21E1,0x21E1}, /* 21E0 */
3345  {0x21E2,0x21E2,0x21E2}, {0x21E3,0x21E3,0x21E3}, /* 21E2 */
3346  {0x21E4,0x21E4,0x21E4}, {0x21E5,0x21E5,0x21E5}, /* 21E4 */
3347  {0x21E6,0x21E6,0x21E6}, {0x21E7,0x21E7,0x21E7}, /* 21E6 */
3348  {0x21E8,0x21E8,0x21E8}, {0x21E9,0x21E9,0x21E9}, /* 21E8 */
3349  {0x21EA,0x21EA,0x21EA}, {0x21EB,0x21EB,0x21EB}, /* 21EA */
3350  {0x21EC,0x21EC,0x21EC}, {0x21ED,0x21ED,0x21ED}, /* 21EC */
3351  {0x21EE,0x21EE,0x21EE}, {0x21EF,0x21EF,0x21EF}, /* 21EE */
3352  {0x21F0,0x21F0,0x21F0}, {0x21F1,0x21F1,0x21F1}, /* 21F0 */
3353  {0x21F2,0x21F2,0x21F2}, {0x21F3,0x21F3,0x21F3}, /* 21F2 */
3354  {0x21F4,0x21F4,0x21F4}, {0x21F5,0x21F5,0x21F5}, /* 21F4 */
3355  {0x21F6,0x21F6,0x21F6}, {0x21F7,0x21F7,0x21F7}, /* 21F6 */
3356  {0x21F8,0x21F8,0x21F8}, {0x21F9,0x21F9,0x21F9}, /* 21F8 */
3357  {0x21FA,0x21FA,0x21FA}, {0x21FB,0x21FB,0x21FB}, /* 21FA */
3358  {0x21FC,0x21FC,0x21FC}, {0x21FD,0x21FD,0x21FD}, /* 21FC */
3359  {0x21FE,0x21FE,0x21FE}, {0x21FF,0x21FF,0x21FF} /* 21FE */
3360 };
3361 
3362 static MY_UNICASE_CHARACTER u520p24[]={
3363  {0x2400,0x2400,0x2400}, {0x2401,0x2401,0x2401}, /* 2400 */
3364  {0x2402,0x2402,0x2402}, {0x2403,0x2403,0x2403}, /* 2402 */
3365  {0x2404,0x2404,0x2404}, {0x2405,0x2405,0x2405}, /* 2404 */
3366  {0x2406,0x2406,0x2406}, {0x2407,0x2407,0x2407}, /* 2406 */
3367  {0x2408,0x2408,0x2408}, {0x2409,0x2409,0x2409}, /* 2408 */
3368  {0x240A,0x240A,0x240A}, {0x240B,0x240B,0x240B}, /* 240A */
3369  {0x240C,0x240C,0x240C}, {0x240D,0x240D,0x240D}, /* 240C */
3370  {0x240E,0x240E,0x240E}, {0x240F,0x240F,0x240F}, /* 240E */
3371  {0x2410,0x2410,0x2410}, {0x2411,0x2411,0x2411}, /* 2410 */
3372  {0x2412,0x2412,0x2412}, {0x2413,0x2413,0x2413}, /* 2412 */
3373  {0x2414,0x2414,0x2414}, {0x2415,0x2415,0x2415}, /* 2414 */
3374  {0x2416,0x2416,0x2416}, {0x2417,0x2417,0x2417}, /* 2416 */
3375  {0x2418,0x2418,0x2418}, {0x2419,0x2419,0x2419}, /* 2418 */
3376  {0x241A,0x241A,0x241A}, {0x241B,0x241B,0x241B}, /* 241A */
3377  {0x241C,0x241C,0x241C}, {0x241D,0x241D,0x241D}, /* 241C */
3378  {0x241E,0x241E,0x241E}, {0x241F,0x241F,0x241F}, /* 241E */
3379  {0x2420,0x2420,0x2420}, {0x2421,0x2421,0x2421}, /* 2420 */
3380  {0x2422,0x2422,0x2422}, {0x2423,0x2423,0x2423}, /* 2422 */
3381  {0x2424,0x2424,0x2424}, {0x2425,0x2425,0x2425}, /* 2424 */
3382  {0x2426,0x2426,0x2426}, {0x2427,0x2427,0x2427}, /* 2426 */
3383  {0x2428,0x2428,0x2428}, {0x2429,0x2429,0x2429}, /* 2428 */
3384  {0x242A,0x242A,0x242A}, {0x242B,0x242B,0x242B}, /* 242A */
3385  {0x242C,0x242C,0x242C}, {0x242D,0x242D,0x242D}, /* 242C */
3386  {0x242E,0x242E,0x242E}, {0x242F,0x242F,0x242F}, /* 242E */
3387  {0x2430,0x2430,0x2430}, {0x2431,0x2431,0x2431}, /* 2430 */
3388  {0x2432,0x2432,0x2432}, {0x2433,0x2433,0x2433}, /* 2432 */
3389  {0x2434,0x2434,0x2434}, {0x2435,0x2435,0x2435}, /* 2434 */
3390  {0x2436,0x2436,0x2436}, {0x2437,0x2437,0x2437}, /* 2436 */
3391  {0x2438,0x2438,0x2438}, {0x2439,0x2439,0x2439}, /* 2438 */
3392  {0x243A,0x243A,0x243A}, {0x243B,0x243B,0x243B}, /* 243A */
3393  {0x243C,0x243C,0x243C}, {0x243D,0x243D,0x243D}, /* 243C */
3394  {0x243E,0x243E,0x243E}, {0x243F,0x243F,0x243F}, /* 243E */
3395  {0x2440,0x2440,0x2440}, {0x2441,0x2441,0x2441}, /* 2440 */
3396  {0x2442,0x2442,0x2442}, {0x2443,0x2443,0x2443}, /* 2442 */
3397  {0x2444,0x2444,0x2444}, {0x2445,0x2445,0x2445}, /* 2444 */
3398  {0x2446,0x2446,0x2446}, {0x2447,0x2447,0x2447}, /* 2446 */
3399  {0x2448,0x2448,0x2448}, {0x2449,0x2449,0x2449}, /* 2448 */
3400  {0x244A,0x244A,0x244A}, {0x244B,0x244B,0x244B}, /* 244A */
3401  {0x244C,0x244C,0x244C}, {0x244D,0x244D,0x244D}, /* 244C */
3402  {0x244E,0x244E,0x244E}, {0x244F,0x244F,0x244F}, /* 244E */
3403  {0x2450,0x2450,0x2450}, {0x2451,0x2451,0x2451}, /* 2450 */
3404  {0x2452,0x2452,0x2452}, {0x2453,0x2453,0x2453}, /* 2452 */
3405  {0x2454,0x2454,0x2454}, {0x2455,0x2455,0x2455}, /* 2454 */
3406  {0x2456,0x2456,0x2456}, {0x2457,0x2457,0x2457}, /* 2456 */
3407  {0x2458,0x2458,0x2458}, {0x2459,0x2459,0x2459}, /* 2458 */
3408  {0x245A,0x245A,0x245A}, {0x245B,0x245B,0x245B}, /* 245A */
3409  {0x245C,0x245C,0x245C}, {0x245D,0x245D,0x245D}, /* 245C */
3410  {0x245E,0x245E,0x245E}, {0x245F,0x245F,0x245F}, /* 245E */
3411  {0x2460,0x2460,0x2460}, {0x2461,0x2461,0x2461}, /* 2460 */
3412  {0x2462,0x2462,0x2462}, {0x2463,0x2463,0x2463}, /* 2462 */
3413  {0x2464,0x2464,0x2464}, {0x2465,0x2465,0x2465}, /* 2464 */
3414  {0x2466,0x2466,0x2466}, {0x2467,0x2467,0x2467}, /* 2466 */
3415  {0x2468,0x2468,0x2468}, {0x2469,0x2469,0x2469}, /* 2468 */
3416  {0x246A,0x246A,0x246A}, {0x246B,0x246B,0x246B}, /* 246A */
3417  {0x246C,0x246C,0x246C}, {0x246D,0x246D,0x246D}, /* 246C */
3418  {0x246E,0x246E,0x246E}, {0x246F,0x246F,0x246F}, /* 246E */
3419  {0x2470,0x2470,0x2470}, {0x2471,0x2471,0x2471}, /* 2470 */
3420  {0x2472,0x2472,0x2472}, {0x2473,0x2473,0x2473}, /* 2472 */
3421  {0x2474,0x2474,0x2474}, {0x2475,0x2475,0x2475}, /* 2474 */
3422  {0x2476,0x2476,0x2476}, {0x2477,0x2477,0x2477}, /* 2476 */
3423  {0x2478,0x2478,0x2478}, {0x2479,0x2479,0x2479}, /* 2478 */
3424  {0x247A,0x247A,0x247A}, {0x247B,0x247B,0x247B}, /* 247A */
3425  {0x247C,0x247C,0x247C}, {0x247D,0x247D,0x247D}, /* 247C */
3426  {0x247E,0x247E,0x247E}, {0x247F,0x247F,0x247F}, /* 247E */
3427  {0x2480,0x2480,0x2480}, {0x2481,0x2481,0x2481}, /* 2480 */
3428  {0x2482,0x2482,0x2482}, {0x2483,0x2483,0x2483}, /* 2482 */
3429  {0x2484,0x2484,0x2484}, {0x2485,0x2485,0x2485}, /* 2484 */
3430  {0x2486,0x2486,0x2486}, {0x2487,0x2487,0x2487}, /* 2486 */
3431  {0x2488,0x2488,0x2488}, {0x2489,0x2489,0x2489}, /* 2488 */
3432  {0x248A,0x248A,0x248A}, {0x248B,0x248B,0x248B}, /* 248A */
3433  {0x248C,0x248C,0x248C}, {0x248D,0x248D,0x248D}, /* 248C */
3434  {0x248E,0x248E,0x248E}, {0x248F,0x248F,0x248F}, /* 248E */
3435  {0x2490,0x2490,0x2490}, {0x2491,0x2491,0x2491}, /* 2490 */
3436  {0x2492,0x2492,0x2492}, {0x2493,0x2493,0x2493}, /* 2492 */
3437  {0x2494,0x2494,0x2494}, {0x2495,0x2495,0x2495}, /* 2494 */
3438  {0x2496,0x2496,0x2496}, {0x2497,0x2497,0x2497}, /* 2496 */
3439  {0x2498,0x2498,0x2498}, {0x2499,0x2499,0x2499}, /* 2498 */
3440  {0x249A,0x249A,0x249A}, {0x249B,0x249B,0x249B}, /* 249A */
3441  {0x249C,0x249C,0x249C}, {0x249D,0x249D,0x249D}, /* 249C */
3442  {0x249E,0x249E,0x249E}, {0x249F,0x249F,0x249F}, /* 249E */
3443  {0x24A0,0x24A0,0x24A0}, {0x24A1,0x24A1,0x24A1}, /* 24A0 */
3444  {0x24A2,0x24A2,0x24A2}, {0x24A3,0x24A3,0x24A3}, /* 24A2 */
3445  {0x24A4,0x24A4,0x24A4}, {0x24A5,0x24A5,0x24A5}, /* 24A4 */
3446  {0x24A6,0x24A6,0x24A6}, {0x24A7,0x24A7,0x24A7}, /* 24A6 */
3447  {0x24A8,0x24A8,0x24A8}, {0x24A9,0x24A9,0x24A9}, /* 24A8 */
3448  {0x24AA,0x24AA,0x24AA}, {0x24AB,0x24AB,0x24AB}, /* 24AA */
3449  {0x24AC,0x24AC,0x24AC}, {0x24AD,0x24AD,0x24AD}, /* 24AC */
3450  {0x24AE,0x24AE,0x24AE}, {0x24AF,0x24AF,0x24AF}, /* 24AE */
3451  {0x24B0,0x24B0,0x24B0}, {0x24B1,0x24B1,0x24B1}, /* 24B0 */
3452  {0x24B2,0x24B2,0x24B2}, {0x24B3,0x24B3,0x24B3}, /* 24B2 */
3453  {0x24B4,0x24B4,0x24B4}, {0x24B5,0x24B5,0x24B5}, /* 24B4 */
3454  {0x24B6,0x24D0,0x24B6}, {0x24B7,0x24D1,0x24B7}, /* 24B6 */
3455  {0x24B8,0x24D2,0x24B8}, {0x24B9,0x24D3,0x24B9}, /* 24B8 */
3456  {0x24BA,0x24D4,0x24BA}, {0x24BB,0x24D5,0x24BB}, /* 24BA */
3457  {0x24BC,0x24D6,0x24BC}, {0x24BD,0x24D7,0x24BD}, /* 24BC */
3458  {0x24BE,0x24D8,0x24BE}, {0x24BF,0x24D9,0x24BF}, /* 24BE */
3459  {0x24C0,0x24DA,0x24C0}, {0x24C1,0x24DB,0x24C1}, /* 24C0 */
3460  {0x24C2,0x24DC,0x24C2}, {0x24C3,0x24DD,0x24C3}, /* 24C2 */
3461  {0x24C4,0x24DE,0x24C4}, {0x24C5,0x24DF,0x24C5}, /* 24C4 */
3462  {0x24C6,0x24E0,0x24C6}, {0x24C7,0x24E1,0x24C7}, /* 24C6 */
3463  {0x24C8,0x24E2,0x24C8}, {0x24C9,0x24E3,0x24C9}, /* 24C8 */
3464  {0x24CA,0x24E4,0x24CA}, {0x24CB,0x24E5,0x24CB}, /* 24CA */
3465  {0x24CC,0x24E6,0x24CC}, {0x24CD,0x24E7,0x24CD}, /* 24CC */
3466  {0x24CE,0x24E8,0x24CE}, {0x24CF,0x24E9,0x24CF}, /* 24CE */
3467  {0x24B6,0x24D0,0x24B6}, {0x24B7,0x24D1,0x24B7}, /* 24D0 */
3468  {0x24B8,0x24D2,0x24B8}, {0x24B9,0x24D3,0x24B9}, /* 24D2 */
3469  {0x24BA,0x24D4,0x24BA}, {0x24BB,0x24D5,0x24BB}, /* 24D4 */
3470  {0x24BC,0x24D6,0x24BC}, {0x24BD,0x24D7,0x24BD}, /* 24D6 */
3471  {0x24BE,0x24D8,0x24BE}, {0x24BF,0x24D9,0x24BF}, /* 24D8 */
3472  {0x24C0,0x24DA,0x24C0}, {0x24C1,0x24DB,0x24C1}, /* 24DA */
3473  {0x24C2,0x24DC,0x24C2}, {0x24C3,0x24DD,0x24C3}, /* 24DC */
3474  {0x24C4,0x24DE,0x24C4}, {0x24C5,0x24DF,0x24C5}, /* 24DE */
3475  {0x24C6,0x24E0,0x24C6}, {0x24C7,0x24E1,0x24C7}, /* 24E0 */
3476  {0x24C8,0x24E2,0x24C8}, {0x24C9,0x24E3,0x24C9}, /* 24E2 */
3477  {0x24CA,0x24E4,0x24CA}, {0x24CB,0x24E5,0x24CB}, /* 24E4 */
3478  {0x24CC,0x24E6,0x24CC}, {0x24CD,0x24E7,0x24CD}, /* 24E6 */
3479  {0x24CE,0x24E8,0x24CE}, {0x24CF,0x24E9,0x24CF}, /* 24E8 */
3480  {0x24EA,0x24EA,0x24EA}, {0x24EB,0x24EB,0x24EB}, /* 24EA */
3481  {0x24EC,0x24EC,0x24EC}, {0x24ED,0x24ED,0x24ED}, /* 24EC */
3482  {0x24EE,0x24EE,0x24EE}, {0x24EF,0x24EF,0x24EF}, /* 24EE */
3483  {0x24F0,0x24F0,0x24F0}, {0x24F1,0x24F1,0x24F1}, /* 24F0 */
3484  {0x24F2,0x24F2,0x24F2}, {0x24F3,0x24F3,0x24F3}, /* 24F2 */
3485  {0x24F4,0x24F4,0x24F4}, {0x24F5,0x24F5,0x24F5}, /* 24F4 */
3486  {0x24F6,0x24F6,0x24F6}, {0x24F7,0x24F7,0x24F7}, /* 24F6 */
3487  {0x24F8,0x24F8,0x24F8}, {0x24F9,0x24F9,0x24F9}, /* 24F8 */
3488  {0x24FA,0x24FA,0x24FA}, {0x24FB,0x24FB,0x24FB}, /* 24FA */
3489  {0x24FC,0x24FC,0x24FC}, {0x24FD,0x24FD,0x24FD}, /* 24FC */
3490  {0x24FE,0x24FE,0x24FE}, {0x24FF,0x24FF,0x24FF} /* 24FE */
3491 };
3492 
3493 static MY_UNICASE_CHARACTER u520p2C[]={
3494  {0x2C00,0x2C30,0x2C00}, {0x2C01,0x2C31,0x2C01}, /* 2C00 */
3495  {0x2C02,0x2C32,0x2C02}, {0x2C03,0x2C33,0x2C03}, /* 2C02 */
3496  {0x2C04,0x2C34,0x2C04}, {0x2C05,0x2C35,0x2C05}, /* 2C04 */
3497  {0x2C06,0x2C36,0x2C06}, {0x2C07,0x2C37,0x2C07}, /* 2C06 */
3498  {0x2C08,0x2C38,0x2C08}, {0x2C09,0x2C39,0x2C09}, /* 2C08 */
3499  {0x2C0A,0x2C3A,0x2C0A}, {0x2C0B,0x2C3B,0x2C0B}, /* 2C0A */
3500  {0x2C0C,0x2C3C,0x2C0C}, {0x2C0D,0x2C3D,0x2C0D}, /* 2C0C */
3501  {0x2C0E,0x2C3E,0x2C0E}, {0x2C0F,0x2C3F,0x2C0F}, /* 2C0E */
3502  {0x2C10,0x2C40,0x2C10}, {0x2C11,0x2C41,0x2C11}, /* 2C10 */
3503  {0x2C12,0x2C42,0x2C12}, {0x2C13,0x2C43,0x2C13}, /* 2C12 */
3504  {0x2C14,0x2C44,0x2C14}, {0x2C15,0x2C45,0x2C15}, /* 2C14 */
3505  {0x2C16,0x2C46,0x2C16}, {0x2C17,0x2C47,0x2C17}, /* 2C16 */
3506  {0x2C18,0x2C48,0x2C18}, {0x2C19,0x2C49,0x2C19}, /* 2C18 */
3507  {0x2C1A,0x2C4A,0x2C1A}, {0x2C1B,0x2C4B,0x2C1B}, /* 2C1A */
3508  {0x2C1C,0x2C4C,0x2C1C}, {0x2C1D,0x2C4D,0x2C1D}, /* 2C1C */
3509  {0x2C1E,0x2C4E,0x2C1E}, {0x2C1F,0x2C4F,0x2C1F}, /* 2C1E */
3510  {0x2C20,0x2C50,0x2C20}, {0x2C21,0x2C51,0x2C21}, /* 2C20 */
3511  {0x2C22,0x2C52,0x2C22}, {0x2C23,0x2C53,0x2C23}, /* 2C22 */
3512  {0x2C24,0x2C54,0x2C24}, {0x2C25,0x2C55,0x2C25}, /* 2C24 */
3513  {0x2C26,0x2C56,0x2C26}, {0x2C27,0x2C57,0x2C27}, /* 2C26 */
3514  {0x2C28,0x2C58,0x2C28}, {0x2C29,0x2C59,0x2C29}, /* 2C28 */
3515  {0x2C2A,0x2C5A,0x2C2A}, {0x2C2B,0x2C5B,0x2C2B}, /* 2C2A */
3516  {0x2C2C,0x2C5C,0x2C2C}, {0x2C2D,0x2C5D,0x2C2D}, /* 2C2C */
3517  {0x2C2E,0x2C5E,0x2C2E}, {0x2C2F,0x2C2F,0x2C2F}, /* 2C2E */
3518  {0x2C00,0x2C30,0x2C00}, {0x2C01,0x2C31,0x2C01}, /* 2C30 */
3519  {0x2C02,0x2C32,0x2C02}, {0x2C03,0x2C33,0x2C03}, /* 2C32 */
3520  {0x2C04,0x2C34,0x2C04}, {0x2C05,0x2C35,0x2C05}, /* 2C34 */
3521  {0x2C06,0x2C36,0x2C06}, {0x2C07,0x2C37,0x2C07}, /* 2C36 */
3522  {0x2C08,0x2C38,0x2C08}, {0x2C09,0x2C39,0x2C09}, /* 2C38 */
3523  {0x2C0A,0x2C3A,0x2C0A}, {0x2C0B,0x2C3B,0x2C0B}, /* 2C3A */
3524  {0x2C0C,0x2C3C,0x2C0C}, {0x2C0D,0x2C3D,0x2C0D}, /* 2C3C */
3525  {0x2C0E,0x2C3E,0x2C0E}, {0x2C0F,0x2C3F,0x2C0F}, /* 2C3E */
3526  {0x2C10,0x2C40,0x2C10}, {0x2C11,0x2C41,0x2C11}, /* 2C40 */
3527  {0x2C12,0x2C42,0x2C12}, {0x2C13,0x2C43,0x2C13}, /* 2C42 */
3528  {0x2C14,0x2C44,0x2C14}, {0x2C15,0x2C45,0x2C15}, /* 2C44 */
3529  {0x2C16,0x2C46,0x2C16}, {0x2C17,0x2C47,0x2C17}, /* 2C46 */
3530  {0x2C18,0x2C48,0x2C18}, {0x2C19,0x2C49,0x2C19}, /* 2C48 */
3531  {0x2C1A,0x2C4A,0x2C1A}, {0x2C1B,0x2C4B,0x2C1B}, /* 2C4A */
3532  {0x2C1C,0x2C4C,0x2C1C}, {0x2C1D,0x2C4D,0x2C1D}, /* 2C4C */
3533  {0x2C1E,0x2C4E,0x2C1E}, {0x2C1F,0x2C4F,0x2C1F}, /* 2C4E */
3534  {0x2C20,0x2C50,0x2C20}, {0x2C21,0x2C51,0x2C21}, /* 2C50 */
3535  {0x2C22,0x2C52,0x2C22}, {0x2C23,0x2C53,0x2C23}, /* 2C52 */
3536  {0x2C24,0x2C54,0x2C24}, {0x2C25,0x2C55,0x2C25}, /* 2C54 */
3537  {0x2C26,0x2C56,0x2C26}, {0x2C27,0x2C57,0x2C27}, /* 2C56 */
3538  {0x2C28,0x2C58,0x2C28}, {0x2C29,0x2C59,0x2C29}, /* 2C58 */
3539  {0x2C2A,0x2C5A,0x2C2A}, {0x2C2B,0x2C5B,0x2C2B}, /* 2C5A */
3540  {0x2C2C,0x2C5C,0x2C2C}, {0x2C2D,0x2C5D,0x2C2D}, /* 2C5C */
3541  {0x2C2E,0x2C5E,0x2C2E}, {0x2C5F,0x2C5F,0x2C5F}, /* 2C5E */
3542  {0x2C60,0x2C61,0x2C60}, {0x2C60,0x2C61,0x2C60}, /* 2C60 */
3543  {0x2C62,0x026B,0x2C62}, {0x2C63,0x1D7D,0x2C63}, /* 2C62 */
3544  {0x2C64,0x027D,0x2C64}, {0x023A,0x2C65,0x023A}, /* 2C64 */
3545  {0x023E,0x2C66,0x023E}, {0x2C67,0x2C68,0x2C67}, /* 2C66 */
3546  {0x2C67,0x2C68,0x2C67}, {0x2C69,0x2C6A,0x2C69}, /* 2C68 */
3547  {0x2C69,0x2C6A,0x2C69}, {0x2C6B,0x2C6C,0x2C6B}, /* 2C6A */
3548  {0x2C6B,0x2C6C,0x2C6B}, {0x2C6D,0x0251,0x2C6D}, /* 2C6C */
3549  {0x2C6E,0x0271,0x2C6E}, {0x2C6F,0x0250,0x2C6F}, /* 2C6E */
3550  {0x2C70,0x0252,0x2C70}, {0x2C71,0x2C71,0x2C71}, /* 2C70 */
3551  {0x2C72,0x2C73,0x2C72}, {0x2C72,0x2C73,0x2C72}, /* 2C72 */
3552  {0x2C74,0x2C74,0x2C74}, {0x2C75,0x2C76,0x2C75}, /* 2C74 */
3553  {0x2C75,0x2C76,0x2C75}, {0x2C77,0x2C77,0x2C77}, /* 2C76 */
3554  {0x2C78,0x2C78,0x2C78}, {0x2C79,0x2C79,0x2C79}, /* 2C78 */
3555  {0x2C7A,0x2C7A,0x2C7A}, {0x2C7B,0x2C7B,0x2C7B}, /* 2C7A */
3556  {0x2C7C,0x2C7C,0x2C7C}, {0x2C7D,0x2C7D,0x2C7D}, /* 2C7C */
3557  {0x2C7E,0x023F,0x2C7E}, {0x2C7F,0x0240,0x2C7F}, /* 2C7E */
3558  {0x2C80,0x2C81,0x2C80}, {0x2C80,0x2C81,0x2C80}, /* 2C80 */
3559  {0x2C82,0x2C83,0x2C82}, {0x2C82,0x2C83,0x2C82}, /* 2C82 */
3560  {0x2C84,0x2C85,0x2C84}, {0x2C84,0x2C85,0x2C84}, /* 2C84 */
3561  {0x2C86,0x2C87,0x2C86}, {0x2C86,0x2C87,0x2C86}, /* 2C86 */
3562  {0x2C88,0x2C89,0x2C88}, {0x2C88,0x2C89,0x2C88}, /* 2C88 */
3563  {0x2C8A,0x2C8B,0x2C8A}, {0x2C8A,0x2C8B,0x2C8A}, /* 2C8A */
3564  {0x2C8C,0x2C8D,0x2C8C}, {0x2C8C,0x2C8D,0x2C8C}, /* 2C8C */
3565  {0x2C8E,0x2C8F,0x2C8E}, {0x2C8E,0x2C8F,0x2C8E}, /* 2C8E */
3566  {0x2C90,0x2C91,0x2C90}, {0x2C90,0x2C91,0x2C90}, /* 2C90 */
3567  {0x2C92,0x2C93,0x2C92}, {0x2C92,0x2C93,0x2C92}, /* 2C92 */
3568  {0x2C94,0x2C95,0x2C94}, {0x2C94,0x2C95,0x2C94}, /* 2C94 */
3569  {0x2C96,0x2C97,0x2C96}, {0x2C96,0x2C97,0x2C96}, /* 2C96 */
3570  {0x2C98,0x2C99,0x2C98}, {0x2C98,0x2C99,0x2C98}, /* 2C98 */
3571  {0x2C9A,0x2C9B,0x2C9A}, {0x2C9A,0x2C9B,0x2C9A}, /* 2C9A */
3572  {0x2C9C,0x2C9D,0x2C9C}, {0x2C9C,0x2C9D,0x2C9C}, /* 2C9C */
3573  {0x2C9E,0x2C9F,0x2C9E}, {0x2C9E,0x2C9F,0x2C9E}, /* 2C9E */
3574  {0x2CA0,0x2CA1,0x2CA0}, {0x2CA0,0x2CA1,0x2CA0}, /* 2CA0 */
3575  {0x2CA2,0x2CA3,0x2CA2}, {0x2CA2,0x2CA3,0x2CA2}, /* 2CA2 */
3576  {0x2CA4,0x2CA5,0x2CA4}, {0x2CA4,0x2CA5,0x2CA4}, /* 2CA4 */
3577  {0x2CA6,0x2CA7,0x2CA6}, {0x2CA6,0x2CA7,0x2CA6}, /* 2CA6 */
3578  {0x2CA8,0x2CA9,0x2CA8}, {0x2CA8,0x2CA9,0x2CA8}, /* 2CA8 */
3579  {0x2CAA,0x2CAB,0x2CAA}, {0x2CAA,0x2CAB,0x2CAA}, /* 2CAA */
3580  {0x2CAC,0x2CAD,0x2CAC}, {0x2CAC,0x2CAD,0x2CAC}, /* 2CAC */
3581  {0x2CAE,0x2CAF,0x2CAE}, {0x2CAE,0x2CAF,0x2CAE}, /* 2CAE */
3582  {0x2CB0,0x2CB1,0x2CB0}, {0x2CB0,0x2CB1,0x2CB0}, /* 2CB0 */
3583  {0x2CB2,0x2CB3,0x2CB2}, {0x2CB2,0x2CB3,0x2CB2}, /* 2CB2 */
3584  {0x2CB4,0x2CB5,0x2CB4}, {0x2CB4,0x2CB5,0x2CB4}, /* 2CB4 */
3585  {0x2CB6,0x2CB7,0x2CB6}, {0x2CB6,0x2CB7,0x2CB6}, /* 2CB6 */
3586  {0x2CB8,0x2CB9,0x2CB8}, {0x2CB8,0x2CB9,0x2CB8}, /* 2CB8 */
3587  {0x2CBA,0x2CBB,0x2CBA}, {0x2CBA,0x2CBB,0x2CBA}, /* 2CBA */
3588  {0x2CBC,0x2CBD,0x2CBC}, {0x2CBC,0x2CBD,0x2CBC}, /* 2CBC */
3589  {0x2CBE,0x2CBF,0x2CBE}, {0x2CBE,0x2CBF,0x2CBE}, /* 2CBE */
3590  {0x2CC0,0x2CC1,0x2CC0}, {0x2CC0,0x2CC1,0x2CC0}, /* 2CC0 */
3591  {0x2CC2,0x2CC3,0x2CC2}, {0x2CC2,0x2CC3,0x2CC2}, /* 2CC2 */
3592  {0x2CC4,0x2CC5,0x2CC4}, {0x2CC4,0x2CC5,0x2CC4}, /* 2CC4 */
3593  {0x2CC6,0x2CC7,0x2CC6}, {0x2CC6,0x2CC7,0x2CC6}, /* 2CC6 */
3594  {0x2CC8,0x2CC9,0x2CC8}, {0x2CC8,0x2CC9,0x2CC8}, /* 2CC8 */
3595  {0x2CCA,0x2CCB,0x2CCA}, {0x2CCA,0x2CCB,0x2CCA}, /* 2CCA */
3596  {0x2CCC,0x2CCD,0x2CCC}, {0x2CCC,0x2CCD,0x2CCC}, /* 2CCC */
3597  {0x2CCE,0x2CCF,0x2CCE}, {0x2CCE,0x2CCF,0x2CCE}, /* 2CCE */
3598  {0x2CD0,0x2CD1,0x2CD0}, {0x2CD0,0x2CD1,0x2CD0}, /* 2CD0 */
3599  {0x2CD2,0x2CD3,0x2CD2}, {0x2CD2,0x2CD3,0x2CD2}, /* 2CD2 */
3600  {0x2CD4,0x2CD5,0x2CD4}, {0x2CD4,0x2CD5,0x2CD4}, /* 2CD4 */
3601  {0x2CD6,0x2CD7,0x2CD6}, {0x2CD6,0x2CD7,0x2CD6}, /* 2CD6 */
3602  {0x2CD8,0x2CD9,0x2CD8}, {0x2CD8,0x2CD9,0x2CD8}, /* 2CD8 */
3603  {0x2CDA,0x2CDB,0x2CDA}, {0x2CDA,0x2CDB,0x2CDA}, /* 2CDA */
3604  {0x2CDC,0x2CDD,0x2CDC}, {0x2CDC,0x2CDD,0x2CDC}, /* 2CDC */
3605  {0x2CDE,0x2CDF,0x2CDE}, {0x2CDE,0x2CDF,0x2CDE}, /* 2CDE */
3606  {0x2CE0,0x2CE1,0x2CE0}, {0x2CE0,0x2CE1,0x2CE0}, /* 2CE0 */
3607  {0x2CE2,0x2CE3,0x2CE2}, {0x2CE2,0x2CE3,0x2CE2}, /* 2CE2 */
3608  {0x2CE4,0x2CE4,0x2CE4}, {0x2CE5,0x2CE5,0x2CE5}, /* 2CE4 */
3609  {0x2CE6,0x2CE6,0x2CE6}, {0x2CE7,0x2CE7,0x2CE7}, /* 2CE6 */
3610  {0x2CE8,0x2CE8,0x2CE8}, {0x2CE9,0x2CE9,0x2CE9}, /* 2CE8 */
3611  {0x2CEA,0x2CEA,0x2CEA}, {0x2CEB,0x2CEC,0x2CEB}, /* 2CEA */
3612  {0x2CEB,0x2CEC,0x2CEB}, {0x2CED,0x2CEE,0x2CED}, /* 2CEC */
3613  {0x2CED,0x2CEE,0x2CED}, {0x2CEF,0x2CEF,0x2CEF}, /* 2CEE */
3614  {0x2CF0,0x2CF0,0x2CF0}, {0x2CF1,0x2CF1,0x2CF1}, /* 2CF0 */
3615  {0x2CF2,0x2CF2,0x2CF2}, {0x2CF3,0x2CF3,0x2CF3}, /* 2CF2 */
3616  {0x2CF4,0x2CF4,0x2CF4}, {0x2CF5,0x2CF5,0x2CF5}, /* 2CF4 */
3617  {0x2CF6,0x2CF6,0x2CF6}, {0x2CF7,0x2CF7,0x2CF7}, /* 2CF6 */
3618  {0x2CF8,0x2CF8,0x2CF8}, {0x2CF9,0x2CF9,0x2CF9}, /* 2CF8 */
3619  {0x2CFA,0x2CFA,0x2CFA}, {0x2CFB,0x2CFB,0x2CFB}, /* 2CFA */
3620  {0x2CFC,0x2CFC,0x2CFC}, {0x2CFD,0x2CFD,0x2CFD}, /* 2CFC */
3621  {0x2CFE,0x2CFE,0x2CFE}, {0x2CFF,0x2CFF,0x2CFF} /* 2CFE */
3622 };
3623 
3624 static MY_UNICASE_CHARACTER u520p2D[]={
3625  {0x10A0,0x2D00,0x10A0}, {0x10A1,0x2D01,0x10A1}, /* 2D00 */
3626  {0x10A2,0x2D02,0x10A2}, {0x10A3,0x2D03,0x10A3}, /* 2D02 */
3627  {0x10A4,0x2D04,0x10A4}, {0x10A5,0x2D05,0x10A5}, /* 2D04 */
3628  {0x10A6,0x2D06,0x10A6}, {0x10A7,0x2D07,0x10A7}, /* 2D06 */
3629  {0x10A8,0x2D08,0x10A8}, {0x10A9,0x2D09,0x10A9}, /* 2D08 */
3630  {0x10AA,0x2D0A,0x10AA}, {0x10AB,0x2D0B,0x10AB}, /* 2D0A */
3631  {0x10AC,0x2D0C,0x10AC}, {0x10AD,0x2D0D,0x10AD}, /* 2D0C */
3632  {0x10AE,0x2D0E,0x10AE}, {0x10AF,0x2D0F,0x10AF}, /* 2D0E */
3633  {0x10B0,0x2D10,0x10B0}, {0x10B1,0x2D11,0x10B1}, /* 2D10 */
3634  {0x10B2,0x2D12,0x10B2}, {0x10B3,0x2D13,0x10B3}, /* 2D12 */
3635  {0x10B4,0x2D14,0x10B4}, {0x10B5,0x2D15,0x10B5}, /* 2D14 */
3636  {0x10B6,0x2D16,0x10B6}, {0x10B7,0x2D17,0x10B7}, /* 2D16 */
3637  {0x10B8,0x2D18,0x10B8}, {0x10B9,0x2D19,0x10B9}, /* 2D18 */
3638  {0x10BA,0x2D1A,0x10BA}, {0x10BB,0x2D1B,0x10BB}, /* 2D1A */
3639  {0x10BC,0x2D1C,0x10BC}, {0x10BD,0x2D1D,0x10BD}, /* 2D1C */
3640  {0x10BE,0x2D1E,0x10BE}, {0x10BF,0x2D1F,0x10BF}, /* 2D1E */
3641  {0x10C0,0x2D20,0x10C0}, {0x10C1,0x2D21,0x10C1}, /* 2D20 */
3642  {0x10C2,0x2D22,0x10C2}, {0x10C3,0x2D23,0x10C3}, /* 2D22 */
3643  {0x10C4,0x2D24,0x10C4}, {0x10C5,0x2D25,0x10C5}, /* 2D24 */
3644  {0x2D26,0x2D26,0x2D26}, {0x2D27,0x2D27,0x2D27}, /* 2D26 */
3645  {0x2D28,0x2D28,0x2D28}, {0x2D29,0x2D29,0x2D29}, /* 2D28 */
3646  {0x2D2A,0x2D2A,0x2D2A}, {0x2D2B,0x2D2B,0x2D2B}, /* 2D2A */
3647  {0x2D2C,0x2D2C,0x2D2C}, {0x2D2D,0x2D2D,0x2D2D}, /* 2D2C */
3648  {0x2D2E,0x2D2E,0x2D2E}, {0x2D2F,0x2D2F,0x2D2F}, /* 2D2E */
3649  {0x2D30,0x2D30,0x2D30}, {0x2D31,0x2D31,0x2D31}, /* 2D30 */
3650  {0x2D32,0x2D32,0x2D32}, {0x2D33,0x2D33,0x2D33}, /* 2D32 */
3651  {0x2D34,0x2D34,0x2D34}, {0x2D35,0x2D35,0x2D35}, /* 2D34 */
3652  {0x2D36,0x2D36,0x2D36}, {0x2D37,0x2D37,0x2D37}, /* 2D36 */
3653  {0x2D38,0x2D38,0x2D38}, {0x2D39,0x2D39,0x2D39}, /* 2D38 */
3654  {0x2D3A,0x2D3A,0x2D3A}, {0x2D3B,0x2D3B,0x2D3B}, /* 2D3A */
3655  {0x2D3C,0x2D3C,0x2D3C}, {0x2D3D,0x2D3D,0x2D3D}, /* 2D3C */
3656  {0x2D3E,0x2D3E,0x2D3E}, {0x2D3F,0x2D3F,0x2D3F}, /* 2D3E */
3657  {0x2D40,0x2D40,0x2D40}, {0x2D41,0x2D41,0x2D41}, /* 2D40 */
3658  {0x2D42,0x2D42,0x2D42}, {0x2D43,0x2D43,0x2D43}, /* 2D42 */
3659  {0x2D44,0x2D44,0x2D44}, {0x2D45,0x2D45,0x2D45}, /* 2D44 */
3660  {0x2D46,0x2D46,0x2D46}, {0x2D47,0x2D47,0x2D47}, /* 2D46 */
3661  {0x2D48,0x2D48,0x2D48}, {0x2D49,0x2D49,0x2D49}, /* 2D48 */
3662  {0x2D4A,0x2D4A,0x2D4A}, {0x2D4B,0x2D4B,0x2D4B}, /* 2D4A */
3663  {0x2D4C,0x2D4C,0x2D4C}, {0x2D4D,0x2D4D,0x2D4D}, /* 2D4C */
3664  {0x2D4E,0x2D4E,0x2D4E}, {0x2D4F,0x2D4F,0x2D4F}, /* 2D4E */
3665  {0x2D50,0x2D50,0x2D50}, {0x2D51,0x2D51,0x2D51}, /* 2D50 */
3666  {0x2D52,0x2D52,0x2D52}, {0x2D53,0x2D53,0x2D53}, /* 2D52 */
3667  {0x2D54,0x2D54,0x2D54}, {0x2D55,0x2D55,0x2D55}, /* 2D54 */
3668  {0x2D56,0x2D56,0x2D56}, {0x2D57,0x2D57,0x2D57}, /* 2D56 */
3669  {0x2D58,0x2D58,0x2D58}, {0x2D59,0x2D59,0x2D59}, /* 2D58 */
3670  {0x2D5A,0x2D5A,0x2D5A}, {0x2D5B,0x2D5B,0x2D5B}, /* 2D5A */
3671  {0x2D5C,0x2D5C,0x2D5C}, {0x2D5D,0x2D5D,0x2D5D}, /* 2D5C */
3672  {0x2D5E,0x2D5E,0x2D5E}, {0x2D5F,0x2D5F,0x2D5F}, /* 2D5E */
3673  {0x2D60,0x2D60,0x2D60}, {0x2D61,0x2D61,0x2D61}, /* 2D60 */
3674  {0x2D62,0x2D62,0x2D62}, {0x2D63,0x2D63,0x2D63}, /* 2D62 */
3675  {0x2D64,0x2D64,0x2D64}, {0x2D65,0x2D65,0x2D65}, /* 2D64 */
3676  {0x2D66,0x2D66,0x2D66}, {0x2D67,0x2D67,0x2D67}, /* 2D66 */
3677  {0x2D68,0x2D68,0x2D68}, {0x2D69,0x2D69,0x2D69}, /* 2D68 */
3678  {0x2D6A,0x2D6A,0x2D6A}, {0x2D6B,0x2D6B,0x2D6B}, /* 2D6A */
3679  {0x2D6C,0x2D6C,0x2D6C}, {0x2D6D,0x2D6D,0x2D6D}, /* 2D6C */
3680  {0x2D6E,0x2D6E,0x2D6E}, {0x2D6F,0x2D6F,0x2D6F}, /* 2D6E */
3681  {0x2D70,0x2D70,0x2D70}, {0x2D71,0x2D71,0x2D71}, /* 2D70 */
3682  {0x2D72,0x2D72,0x2D72}, {0x2D73,0x2D73,0x2D73}, /* 2D72 */
3683  {0x2D74,0x2D74,0x2D74}, {0x2D75,0x2D75,0x2D75}, /* 2D74 */
3684  {0x2D76,0x2D76,0x2D76}, {0x2D77,0x2D77,0x2D77}, /* 2D76 */
3685  {0x2D78,0x2D78,0x2D78}, {0x2D79,0x2D79,0x2D79}, /* 2D78 */
3686  {0x2D7A,0x2D7A,0x2D7A}, {0x2D7B,0x2D7B,0x2D7B}, /* 2D7A */
3687  {0x2D7C,0x2D7C,0x2D7C}, {0x2D7D,0x2D7D,0x2D7D}, /* 2D7C */
3688  {0x2D7E,0x2D7E,0x2D7E}, {0x2D7F,0x2D7F,0x2D7F}, /* 2D7E */
3689  {0x2D80,0x2D80,0x2D80}, {0x2D81,0x2D81,0x2D81}, /* 2D80 */
3690  {0x2D82,0x2D82,0x2D82}, {0x2D83,0x2D83,0x2D83}, /* 2D82 */
3691  {0x2D84,0x2D84,0x2D84}, {0x2D85,0x2D85,0x2D85}, /* 2D84 */
3692  {0x2D86,0x2D86,0x2D86}, {0x2D87,0x2D87,0x2D87}, /* 2D86 */
3693  {0x2D88,0x2D88,0x2D88}, {0x2D89,0x2D89,0x2D89}, /* 2D88 */
3694  {0x2D8A,0x2D8A,0x2D8A}, {0x2D8B,0x2D8B,0x2D8B}, /* 2D8A */
3695  {0x2D8C,0x2D8C,0x2D8C}, {0x2D8D,0x2D8D,0x2D8D}, /* 2D8C */
3696  {0x2D8E,0x2D8E,0x2D8E}, {0x2D8F,0x2D8F,0x2D8F}, /* 2D8E */
3697  {0x2D90,0x2D90,0x2D90}, {0x2D91,0x2D91,0x2D91}, /* 2D90 */
3698  {0x2D92,0x2D92,0x2D92}, {0x2D93,0x2D93,0x2D93}, /* 2D92 */
3699  {0x2D94,0x2D94,0x2D94}, {0x2D95,0x2D95,0x2D95}, /* 2D94 */
3700  {0x2D96,0x2D96,0x2D96}, {0x2D97,0x2D97,0x2D97}, /* 2D96 */
3701  {0x2D98,0x2D98,0x2D98}, {0x2D99,0x2D99,0x2D99}, /* 2D98 */
3702  {0x2D9A,0x2D9A,0x2D9A}, {0x2D9B,0x2D9B,0x2D9B}, /* 2D9A */
3703  {0x2D9C,0x2D9C,0x2D9C}, {0x2D9D,0x2D9D,0x2D9D}, /* 2D9C */
3704  {0x2D9E,0x2D9E,0x2D9E}, {0x2D9F,0x2D9F,0x2D9F}, /* 2D9E */
3705  {0x2DA0,0x2DA0,0x2DA0}, {0x2DA1,0x2DA1,0x2DA1}, /* 2DA0 */
3706  {0x2DA2,0x2DA2,0x2DA2}, {0x2DA3,0x2DA3,0x2DA3}, /* 2DA2 */
3707  {0x2DA4,0x2DA4,0x2DA4}, {0x2DA5,0x2DA5,0x2DA5}, /* 2DA4 */
3708  {0x2DA6,0x2DA6,0x2DA6}, {0x2DA7,0x2DA7,0x2DA7}, /* 2DA6 */
3709  {0x2DA8,0x2DA8,0x2DA8}, {0x2DA9,0x2DA9,0x2DA9}, /* 2DA8 */
3710  {0x2DAA,0x2DAA,0x2DAA}, {0x2DAB,0x2DAB,0x2DAB}, /* 2DAA */
3711  {0x2DAC,0x2DAC,0x2DAC}, {0x2DAD,0x2DAD,0x2DAD}, /* 2DAC */
3712  {0x2DAE,0x2DAE,0x2DAE}, {0x2DAF,0x2DAF,0x2DAF}, /* 2DAE */
3713  {0x2DB0,0x2DB0,0x2DB0}, {0x2DB1,0x2DB1,0x2DB1}, /* 2DB0 */
3714  {0x2DB2,0x2DB2,0x2DB2}, {0x2DB3,0x2DB3,0x2DB3}, /* 2DB2 */
3715  {0x2DB4,0x2DB4,0x2DB4}, {0x2DB5,0x2DB5,0x2DB5}, /* 2DB4 */
3716  {0x2DB6,0x2DB6,0x2DB6}, {0x2DB7,0x2DB7,0x2DB7}, /* 2DB6 */
3717  {0x2DB8,0x2DB8,0x2DB8}, {0x2DB9,0x2DB9,0x2DB9}, /* 2DB8 */
3718  {0x2DBA,0x2DBA,0x2DBA}, {0x2DBB,0x2DBB,0x2DBB}, /* 2DBA */
3719  {0x2DBC,0x2DBC,0x2DBC}, {0x2DBD,0x2DBD,0x2DBD}, /* 2DBC */
3720  {0x2DBE,0x2DBE,0x2DBE}, {0x2DBF,0x2DBF,0x2DBF}, /* 2DBE */
3721  {0x2DC0,0x2DC0,0x2DC0}, {0x2DC1,0x2DC1,0x2DC1}, /* 2DC0 */
3722  {0x2DC2,0x2DC2,0x2DC2}, {0x2DC3,0x2DC3,0x2DC3}, /* 2DC2 */
3723  {0x2DC4,0x2DC4,0x2DC4}, {0x2DC5,0x2DC5,0x2DC5}, /* 2DC4 */
3724  {0x2DC6,0x2DC6,0x2DC6}, {0x2DC7,0x2DC7,0x2DC7}, /* 2DC6 */
3725  {0x2DC8,0x2DC8,0x2DC8}, {0x2DC9,0x2DC9,0x2DC9}, /* 2DC8 */
3726  {0x2DCA,0x2DCA,0x2DCA}, {0x2DCB,0x2DCB,0x2DCB}, /* 2DCA */
3727  {0x2DCC,0x2DCC,0x2DCC}, {0x2DCD,0x2DCD,0x2DCD}, /* 2DCC */
3728  {0x2DCE,0x2DCE,0x2DCE}, {0x2DCF,0x2DCF,0x2DCF}, /* 2DCE */
3729  {0x2DD0,0x2DD0,0x2DD0}, {0x2DD1,0x2DD1,0x2DD1}, /* 2DD0 */
3730  {0x2DD2,0x2DD2,0x2DD2}, {0x2DD3,0x2DD3,0x2DD3}, /* 2DD2 */
3731  {0x2DD4,0x2DD4,0x2DD4}, {0x2DD5,0x2DD5,0x2DD5}, /* 2DD4 */
3732  {0x2DD6,0x2DD6,0x2DD6}, {0x2DD7,0x2DD7,0x2DD7}, /* 2DD6 */
3733  {0x2DD8,0x2DD8,0x2DD8}, {0x2DD9,0x2DD9,0x2DD9}, /* 2DD8 */
3734  {0x2DDA,0x2DDA,0x2DDA}, {0x2DDB,0x2DDB,0x2DDB}, /* 2DDA */
3735  {0x2DDC,0x2DDC,0x2DDC}, {0x2DDD,0x2DDD,0x2DDD}, /* 2DDC */
3736  {0x2DDE,0x2DDE,0x2DDE}, {0x2DDF,0x2DDF,0x2DDF}, /* 2DDE */
3737  {0x2DE0,0x2DE0,0x2DE0}, {0x2DE1,0x2DE1,0x2DE1}, /* 2DE0 */
3738  {0x2DE2,0x2DE2,0x2DE2}, {0x2DE3,0x2DE3,0x2DE3}, /* 2DE2 */
3739  {0x2DE4,0x2DE4,0x2DE4}, {0x2DE5,0x2DE5,0x2DE5}, /* 2DE4 */
3740  {0x2DE6,0x2DE6,0x2DE6}, {0x2DE7,0x2DE7,0x2DE7}, /* 2DE6 */
3741  {0x2DE8,0x2DE8,0x2DE8}, {0x2DE9,0x2DE9,0x2DE9}, /* 2DE8 */
3742  {0x2DEA,0x2DEA,0x2DEA}, {0x2DEB,0x2DEB,0x2DEB}, /* 2DEA */
3743  {0x2DEC,0x2DEC,0x2DEC}, {0x2DED,0x2DED,0x2DED}, /* 2DEC */
3744  {0x2DEE,0x2DEE,0x2DEE}, {0x2DEF,0x2DEF,0x2DEF}, /* 2DEE */
3745  {0x2DF0,0x2DF0,0x2DF0}, {0x2DF1,0x2DF1,0x2DF1}, /* 2DF0 */
3746  {0x2DF2,0x2DF2,0x2DF2}, {0x2DF3,0x2DF3,0x2DF3}, /* 2DF2 */
3747  {0x2DF4,0x2DF4,0x2DF4}, {0x2DF5,0x2DF5,0x2DF5}, /* 2DF4 */
3748  {0x2DF6,0x2DF6,0x2DF6}, {0x2DF7,0x2DF7,0x2DF7}, /* 2DF6 */
3749  {0x2DF8,0x2DF8,0x2DF8}, {0x2DF9,0x2DF9,0x2DF9}, /* 2DF8 */
3750  {0x2DFA,0x2DFA,0x2DFA}, {0x2DFB,0x2DFB,0x2DFB}, /* 2DFA */
3751  {0x2DFC,0x2DFC,0x2DFC}, {0x2DFD,0x2DFD,0x2DFD}, /* 2DFC */
3752  {0x2DFE,0x2DFE,0x2DFE}, {0x2DFF,0x2DFF,0x2DFF} /* 2DFE */
3753 };
3754 
3755 static MY_UNICASE_CHARACTER u520pA6[]={
3756  {0xA600,0xA600,0xA600}, {0xA601,0xA601,0xA601}, /* A600 */
3757  {0xA602,0xA602,0xA602}, {0xA603,0xA603,0xA603}, /* A602 */
3758  {0xA604,0xA604,0xA604}, {0xA605,0xA605,0xA605}, /* A604 */
3759  {0xA606,0xA606,0xA606}, {0xA607,0xA607,0xA607}, /* A606 */
3760  {0xA608,0xA608,0xA608}, {0xA609,0xA609,0xA609}, /* A608 */
3761  {0xA60A,0xA60A,0xA60A}, {0xA60B,0xA60B,0xA60B}, /* A60A */
3762  {0xA60C,0xA60C,0xA60C}, {0xA60D,0xA60D,0xA60D}, /* A60C */
3763  {0xA60E,0xA60E,0xA60E}, {0xA60F,0xA60F,0xA60F}, /* A60E */
3764  {0xA610,0xA610,0xA610}, {0xA611,0xA611,0xA611}, /* A610 */
3765  {0xA612,0xA612,0xA612}, {0xA613,0xA613,0xA613}, /* A612 */
3766  {0xA614,0xA614,0xA614}, {0xA615,0xA615,0xA615}, /* A614 */
3767  {0xA616,0xA616,0xA616}, {0xA617,0xA617,0xA617}, /* A616 */
3768  {0xA618,0xA618,0xA618}, {0xA619,0xA619,0xA619}, /* A618 */
3769  {0xA61A,0xA61A,0xA61A}, {0xA61B,0xA61B,0xA61B}, /* A61A */
3770  {0xA61C,0xA61C,0xA61C}, {0xA61D,0xA61D,0xA61D}, /* A61C */
3771  {0xA61E,0xA61E,0xA61E}, {0xA61F,0xA61F,0xA61F}, /* A61E */
3772  {0xA620,0xA620,0xA620}, {0xA621,0xA621,0xA621}, /* A620 */
3773  {0xA622,0xA622,0xA622}, {0xA623,0xA623,0xA623}, /* A622 */
3774  {0xA624,0xA624,0xA624}, {0xA625,0xA625,0xA625}, /* A624 */
3775  {0xA626,0xA626,0xA626}, {0xA627,0xA627,0xA627}, /* A626 */
3776  {0xA628,0xA628,0xA628}, {0xA629,0xA629,0xA629}, /* A628 */
3777  {0xA62A,0xA62A,0xA62A}, {0xA62B,0xA62B,0xA62B}, /* A62A */
3778  {0xA62C,0xA62C,0xA62C}, {0xA62D,0xA62D,0xA62D}, /* A62C */
3779  {0xA62E,0xA62E,0xA62E}, {0xA62F,0xA62F,0xA62F}, /* A62E */
3780  {0xA630,0xA630,0xA630}, {0xA631,0xA631,0xA631}, /* A630 */
3781  {0xA632,0xA632,0xA632}, {0xA633,0xA633,0xA633}, /* A632 */
3782  {0xA634,0xA634,0xA634}, {0xA635,0xA635,0xA635}, /* A634 */
3783  {0xA636,0xA636,0xA636}, {0xA637,0xA637,0xA637}, /* A636 */
3784  {0xA638,0xA638,0xA638}, {0xA639,0xA639,0xA639}, /* A638 */
3785  {0xA63A,0xA63A,0xA63A}, {0xA63B,0xA63B,0xA63B}, /* A63A */
3786  {0xA63C,0xA63C,0xA63C}, {0xA63D,0xA63D,0xA63D}, /* A63C */
3787  {0xA63E,0xA63E,0xA63E}, {0xA63F,0xA63F,0xA63F}, /* A63E */
3788  {0xA640,0xA641,0xA640}, {0xA640,0xA641,0xA640}, /* A640 */
3789  {0xA642,0xA643,0xA642}, {0xA642,0xA643,0xA642}, /* A642 */
3790  {0xA644,0xA645,0xA644}, {0xA644,0xA645,0xA644}, /* A644 */
3791  {0xA646,0xA647,0xA646}, {0xA646,0xA647,0xA646}, /* A646 */
3792  {0xA648,0xA649,0xA648}, {0xA648,0xA649,0xA648}, /* A648 */
3793  {0xA64A,0xA64B,0xA64A}, {0xA64A,0xA64B,0xA64A}, /* A64A */
3794  {0xA64C,0xA64D,0xA64C}, {0xA64C,0xA64D,0xA64C}, /* A64C */
3795  {0xA64E,0xA64F,0xA64E}, {0xA64E,0xA64F,0xA64E}, /* A64E */
3796  {0xA650,0xA651,0xA650}, {0xA650,0xA651,0xA650}, /* A650 */
3797  {0xA652,0xA653,0xA652}, {0xA652,0xA653,0xA652}, /* A652 */
3798  {0xA654,0xA655,0xA654}, {0xA654,0xA655,0xA654}, /* A654 */
3799  {0xA656,0xA657,0xA656}, {0xA656,0xA657,0xA656}, /* A656 */
3800  {0xA658,0xA659,0xA658}, {0xA658,0xA659,0xA658}, /* A658 */
3801  {0xA65A,0xA65B,0xA65A}, {0xA65A,0xA65B,0xA65A}, /* A65A */
3802  {0xA65C,0xA65D,0xA65C}, {0xA65C,0xA65D,0xA65C}, /* A65C */
3803  {0xA65E,0xA65F,0xA65E}, {0xA65E,0xA65F,0xA65E}, /* A65E */
3804  {0xA660,0xA660,0xA660}, {0xA661,0xA661,0xA661}, /* A660 */
3805  {0xA662,0xA663,0xA662}, {0xA662,0xA663,0xA662}, /* A662 */
3806  {0xA664,0xA665,0xA664}, {0xA664,0xA665,0xA664}, /* A664 */
3807  {0xA666,0xA667,0xA666}, {0xA666,0xA667,0xA666}, /* A666 */
3808  {0xA668,0xA669,0xA668}, {0xA668,0xA669,0xA668}, /* A668 */
3809  {0xA66A,0xA66B,0xA66A}, {0xA66A,0xA66B,0xA66A}, /* A66A */
3810  {0xA66C,0xA66D,0xA66C}, {0xA66C,0xA66D,0xA66C}, /* A66C */
3811  {0xA66E,0xA66E,0xA66E}, {0xA66F,0xA66F,0xA66F}, /* A66E */
3812  {0xA670,0xA670,0xA670}, {0xA671,0xA671,0xA671}, /* A670 */
3813  {0xA672,0xA672,0xA672}, {0xA673,0xA673,0xA673}, /* A672 */
3814  {0xA674,0xA674,0xA674}, {0xA675,0xA675,0xA675}, /* A674 */
3815  {0xA676,0xA676,0xA676}, {0xA677,0xA677,0xA677}, /* A676 */
3816  {0xA678,0xA678,0xA678}, {0xA679,0xA679,0xA679}, /* A678 */
3817  {0xA67A,0xA67A,0xA67A}, {0xA67B,0xA67B,0xA67B}, /* A67A */
3818  {0xA67C,0xA67C,0xA67C}, {0xA67D,0xA67D,0xA67D}, /* A67C */
3819  {0xA67E,0xA67E,0xA67E}, {0xA67F,0xA67F,0xA67F}, /* A67E */
3820  {0xA680,0xA681,0xA680}, {0xA680,0xA681,0xA680}, /* A680 */
3821  {0xA682,0xA683,0xA682}, {0xA682,0xA683,0xA682}, /* A682 */
3822  {0xA684,0xA685,0xA684}, {0xA684,0xA685,0xA684}, /* A684 */
3823  {0xA686,0xA687,0xA686}, {0xA686,0xA687,0xA686}, /* A686 */
3824  {0xA688,0xA689,0xA688}, {0xA688,0xA689,0xA688}, /* A688 */
3825  {0xA68A,0xA68B,0xA68A}, {0xA68A,0xA68B,0xA68A}, /* A68A */
3826  {0xA68C,0xA68D,0xA68C}, {0xA68C,0xA68D,0xA68C}, /* A68C */
3827  {0xA68E,0xA68F,0xA68E}, {0xA68E,0xA68F,0xA68E}, /* A68E */
3828  {0xA690,0xA691,0xA690}, {0xA690,0xA691,0xA690}, /* A690 */
3829  {0xA692,0xA693,0xA692}, {0xA692,0xA693,0xA692}, /* A692 */
3830  {0xA694,0xA695,0xA694}, {0xA694,0xA695,0xA694}, /* A694 */
3831  {0xA696,0xA697,0xA696}, {0xA696,0xA697,0xA696}, /* A696 */
3832  {0xA698,0xA698,0xA698}, {0xA699,0xA699,0xA699}, /* A698 */
3833  {0xA69A,0xA69A,0xA69A}, {0xA69B,0xA69B,0xA69B}, /* A69A */
3834  {0xA69C,0xA69C,0xA69C}, {0xA69D,0xA69D,0xA69D}, /* A69C */
3835  {0xA69E,0xA69E,0xA69E}, {0xA69F,0xA69F,0xA69F}, /* A69E */
3836  {0xA6A0,0xA6A0,0xA6A0}, {0xA6A1,0xA6A1,0xA6A1}, /* A6A0 */
3837  {0xA6A2,0xA6A2,0xA6A2}, {0xA6A3,0xA6A3,0xA6A3}, /* A6A2 */
3838  {0xA6A4,0xA6A4,0xA6A4}, {0xA6A5,0xA6A5,0xA6A5}, /* A6A4 */
3839  {0xA6A6,0xA6A6,0xA6A6}, {0xA6A7,0xA6A7,0xA6A7}, /* A6A6 */
3840  {0xA6A8,0xA6A8,0xA6A8}, {0xA6A9,0xA6A9,0xA6A9}, /* A6A8 */
3841  {0xA6AA,0xA6AA,0xA6AA}, {0xA6AB,0xA6AB,0xA6AB}, /* A6AA */
3842  {0xA6AC,0xA6AC,0xA6AC}, {0xA6AD,0xA6AD,0xA6AD}, /* A6AC */
3843  {0xA6AE,0xA6AE,0xA6AE}, {0xA6AF,0xA6AF,0xA6AF}, /* A6AE */
3844  {0xA6B0,0xA6B0,0xA6B0}, {0xA6B1,0xA6B1,0xA6B1}, /* A6B0 */
3845  {0xA6B2,0xA6B2,0xA6B2}, {0xA6B3,0xA6B3,0xA6B3}, /* A6B2 */
3846  {0xA6B4,0xA6B4,0xA6B4}, {0xA6B5,0xA6B5,0xA6B5}, /* A6B4 */
3847  {0xA6B6,0xA6B6,0xA6B6}, {0xA6B7,0xA6B7,0xA6B7}, /* A6B6 */
3848  {0xA6B8,0xA6B8,0xA6B8}, {0xA6B9,0xA6B9,0xA6B9}, /* A6B8 */
3849  {0xA6BA,0xA6BA,0xA6BA}, {0xA6BB,0xA6BB,0xA6BB}, /* A6BA */
3850  {0xA6BC,0xA6BC,0xA6BC}, {0xA6BD,0xA6BD,0xA6BD}, /* A6BC */
3851  {0xA6BE,0xA6BE,0xA6BE}, {0xA6BF,0xA6BF,0xA6BF}, /* A6BE */
3852  {0xA6C0,0xA6C0,0xA6C0}, {0xA6C1,0xA6C1,0xA6C1}, /* A6C0 */
3853  {0xA6C2,0xA6C2,0xA6C2}, {0xA6C3,0xA6C3,0xA6C3}, /* A6C2 */
3854  {0xA6C4,0xA6C4,0xA6C4}, {0xA6C5,0xA6C5,0xA6C5}, /* A6C4 */
3855  {0xA6C6,0xA6C6,0xA6C6}, {0xA6C7,0xA6C7,0xA6C7}, /* A6C6 */
3856  {0xA6C8,0xA6C8,0xA6C8}, {0xA6C9,0xA6C9,0xA6C9}, /* A6C8 */
3857  {0xA6CA,0xA6CA,0xA6CA}, {0xA6CB,0xA6CB,0xA6CB}, /* A6CA */
3858  {0xA6CC,0xA6CC,0xA6CC}, {0xA6CD,0xA6CD,0xA6CD}, /* A6CC */
3859  {0xA6CE,0xA6CE,0xA6CE}, {0xA6CF,0xA6CF,0xA6CF}, /* A6CE */
3860  {0xA6D0,0xA6D0,0xA6D0}, {0xA6D1,0xA6D1,0xA6D1}, /* A6D0 */
3861  {0xA6D2,0xA6D2,0xA6D2}, {0xA6D3,0xA6D3,0xA6D3}, /* A6D2 */
3862  {0xA6D4,0xA6D4,0xA6D4}, {0xA6D5,0xA6D5,0xA6D5}, /* A6D4 */
3863  {0xA6D6,0xA6D6,0xA6D6}, {0xA6D7,0xA6D7,0xA6D7}, /* A6D6 */
3864  {0xA6D8,0xA6D8,0xA6D8}, {0xA6D9,0xA6D9,0xA6D9}, /* A6D8 */
3865  {0xA6DA,0xA6DA,0xA6DA}, {0xA6DB,0xA6DB,0xA6DB}, /* A6DA */
3866  {0xA6DC,0xA6DC,0xA6DC}, {0xA6DD,0xA6DD,0xA6DD}, /* A6DC */
3867  {0xA6DE,0xA6DE,0xA6DE}, {0xA6DF,0xA6DF,0xA6DF}, /* A6DE */
3868  {0xA6E0,0xA6E0,0xA6E0}, {0xA6E1,0xA6E1,0xA6E1}, /* A6E0 */
3869  {0xA6E2,0xA6E2,0xA6E2}, {0xA6E3,0xA6E3,0xA6E3}, /* A6E2 */
3870  {0xA6E4,0xA6E4,0xA6E4}, {0xA6E5,0xA6E5,0xA6E5}, /* A6E4 */
3871  {0xA6E6,0xA6E6,0xA6E6}, {0xA6E7,0xA6E7,0xA6E7}, /* A6E6 */
3872  {0xA6E8,0xA6E8,0xA6E8}, {0xA6E9,0xA6E9,0xA6E9}, /* A6E8 */
3873  {0xA6EA,0xA6EA,0xA6EA}, {0xA6EB,0xA6EB,0xA6EB}, /* A6EA */
3874  {0xA6EC,0xA6EC,0xA6EC}, {0xA6ED,0xA6ED,0xA6ED}, /* A6EC */
3875  {0xA6EE,0xA6EE,0xA6EE}, {0xA6EF,0xA6EF,0xA6EF}, /* A6EE */
3876  {0xA6F0,0xA6F0,0xA6F0}, {0xA6F1,0xA6F1,0xA6F1}, /* A6F0 */
3877  {0xA6F2,0xA6F2,0xA6F2}, {0xA6F3,0xA6F3,0xA6F3}, /* A6F2 */
3878  {0xA6F4,0xA6F4,0xA6F4}, {0xA6F5,0xA6F5,0xA6F5}, /* A6F4 */
3879  {0xA6F6,0xA6F6,0xA6F6}, {0xA6F7,0xA6F7,0xA6F7}, /* A6F6 */
3880  {0xA6F8,0xA6F8,0xA6F8}, {0xA6F9,0xA6F9,0xA6F9}, /* A6F8 */
3881  {0xA6FA,0xA6FA,0xA6FA}, {0xA6FB,0xA6FB,0xA6FB}, /* A6FA */
3882  {0xA6FC,0xA6FC,0xA6FC}, {0xA6FD,0xA6FD,0xA6FD}, /* A6FC */
3883  {0xA6FE,0xA6FE,0xA6FE}, {0xA6FF,0xA6FF,0xA6FF} /* A6FE */
3884 };
3885 
3886 static MY_UNICASE_CHARACTER u520pA7[]={
3887  {0xA700,0xA700,0xA700}, {0xA701,0xA701,0xA701}, /* A700 */
3888  {0xA702,0xA702,0xA702}, {0xA703,0xA703,0xA703}, /* A702 */
3889  {0xA704,0xA704,0xA704}, {0xA705,0xA705,0xA705}, /* A704 */
3890  {0xA706,0xA706,0xA706}, {0xA707,0xA707,0xA707}, /* A706 */
3891  {0xA708,0xA708,0xA708}, {0xA709,0xA709,0xA709}, /* A708 */
3892  {0xA70A,0xA70A,0xA70A}, {0xA70B,0xA70B,0xA70B}, /* A70A */
3893  {0xA70C,0xA70C,0xA70C}, {0xA70D,0xA70D,0xA70D}, /* A70C */
3894  {0xA70E,0xA70E,0xA70E}, {0xA70F,0xA70F,0xA70F}, /* A70E */
3895  {0xA710,0xA710,0xA710}, {0xA711,0xA711,0xA711}, /* A710 */
3896  {0xA712,0xA712,0xA712}, {0xA713,0xA713,0xA713}, /* A712 */
3897  {0xA714,0xA714,0xA714}, {0xA715,0xA715,0xA715}, /* A714 */
3898  {0xA716,0xA716,0xA716}, {0xA717,0xA717,0xA717}, /* A716 */
3899  {0xA718,0xA718,0xA718}, {0xA719,0xA719,0xA719}, /* A718 */
3900  {0xA71A,0xA71A,0xA71A}, {0xA71B,0xA71B,0xA71B}, /* A71A */
3901  {0xA71C,0xA71C,0xA71C}, {0xA71D,0xA71D,0xA71D}, /* A71C */
3902  {0xA71E,0xA71E,0xA71E}, {0xA71F,0xA71F,0xA71F}, /* A71E */
3903  {0xA720,0xA720,0xA720}, {0xA721,0xA721,0xA721}, /* A720 */
3904  {0xA722,0xA723,0xA722}, {0xA722,0xA723,0xA722}, /* A722 */
3905  {0xA724,0xA725,0xA724}, {0xA724,0xA725,0xA724}, /* A724 */
3906  {0xA726,0xA727,0xA726}, {0xA726,0xA727,0xA726}, /* A726 */
3907  {0xA728,0xA729,0xA728}, {0xA728,0xA729,0xA728}, /* A728 */
3908  {0xA72A,0xA72B,0xA72A}, {0xA72A,0xA72B,0xA72A}, /* A72A */
3909  {0xA72C,0xA72D,0xA72C}, {0xA72C,0xA72D,0xA72C}, /* A72C */
3910  {0xA72E,0xA72F,0xA72E}, {0xA72E,0xA72F,0xA72E}, /* A72E */
3911  {0xA730,0xA730,0xA730}, {0xA731,0xA731,0xA731}, /* A730 */
3912  {0xA732,0xA733,0xA732}, {0xA732,0xA733,0xA732}, /* A732 */
3913  {0xA734,0xA735,0xA734}, {0xA734,0xA735,0xA734}, /* A734 */
3914  {0xA736,0xA737,0xA736}, {0xA736,0xA737,0xA736}, /* A736 */
3915  {0xA738,0xA739,0xA738}, {0xA738,0xA739,0xA738}, /* A738 */
3916  {0xA73A,0xA73B,0xA73A}, {0xA73A,0xA73B,0xA73A}, /* A73A */
3917  {0xA73C,0xA73D,0xA73C}, {0xA73C,0xA73D,0xA73C}, /* A73C */
3918  {0xA73E,0xA73F,0xA73E}, {0xA73E,0xA73F,0xA73E}, /* A73E */
3919  {0xA740,0xA741,0xA740}, {0xA740,0xA741,0xA740}, /* A740 */
3920  {0xA742,0xA743,0xA742}, {0xA742,0xA743,0xA742}, /* A742 */
3921  {0xA744,0xA745,0xA744}, {0xA744,0xA745,0xA744}, /* A744 */
3922  {0xA746,0xA747,0xA746}, {0xA746,0xA747,0xA746}, /* A746 */
3923  {0xA748,0xA749,0xA748}, {0xA748,0xA749,0xA748}, /* A748 */
3924  {0xA74A,0xA74B,0xA74A}, {0xA74A,0xA74B,0xA74A}, /* A74A */
3925  {0xA74C,0xA74D,0xA74C}, {0xA74C,0xA74D,0xA74C}, /* A74C */
3926  {0xA74E,0xA74F,0xA74E}, {0xA74E,0xA74F,0xA74E}, /* A74E */
3927  {0xA750,0xA751,0xA750}, {0xA750,0xA751,0xA750}, /* A750 */
3928  {0xA752,0xA753,0xA752}, {0xA752,0xA753,0xA752}, /* A752 */
3929  {0xA754,0xA755,0xA754}, {0xA754,0xA755,0xA754}, /* A754 */
3930  {0xA756,0xA757,0xA756}, {0xA756,0xA757,0xA756}, /* A756 */
3931  {0xA758,0xA759,0xA758}, {0xA758,0xA759,0xA758}, /* A758 */
3932  {0xA75A,0xA75B,0xA75A}, {0xA75A,0xA75B,0xA75A}, /* A75A */
3933  {0xA75C,0xA75D,0xA75C}, {0xA75C,0xA75D,0xA75C}, /* A75C */
3934  {0xA75E,0xA75F,0xA75E}, {0xA75E,0xA75F,0xA75E}, /* A75E */
3935  {0xA760,0xA761,0xA760}, {0xA760,0xA761,0xA760}, /* A760 */
3936  {0xA762,0xA763,0xA762}, {0xA762,0xA763,0xA762}, /* A762 */
3937  {0xA764,0xA765,0xA764}, {0xA764,0xA765,0xA764}, /* A764 */
3938  {0xA766,0xA767,0xA766}, {0xA766,0xA767,0xA766}, /* A766 */
3939  {0xA768,0xA769,0xA768}, {0xA768,0xA769,0xA768}, /* A768 */
3940  {0xA76A,0xA76B,0xA76A}, {0xA76A,0xA76B,0xA76A}, /* A76A */
3941  {0xA76C,0xA76D,0xA76C}, {0xA76C,0xA76D,0xA76C}, /* A76C */
3942  {0xA76E,0xA76F,0xA76E}, {0xA76E,0xA76F,0xA76E}, /* A76E */
3943  {0xA770,0xA770,0xA770}, {0xA771,0xA771,0xA771}, /* A770 */
3944  {0xA772,0xA772,0xA772}, {0xA773,0xA773,0xA773}, /* A772 */
3945  {0xA774,0xA774,0xA774}, {0xA775,0xA775,0xA775}, /* A774 */
3946  {0xA776,0xA776,0xA776}, {0xA777,0xA777,0xA777}, /* A776 */
3947  {0xA778,0xA778,0xA778}, {0xA779,0xA77A,0xA779}, /* A778 */
3948  {0xA779,0xA77A,0xA779}, {0xA77B,0xA77C,0xA77B}, /* A77A */
3949  {0xA77B,0xA77C,0xA77B}, {0xA77D,0x1D79,0xA77D}, /* A77C */
3950  {0xA77E,0xA77F,0xA77E}, {0xA77E,0xA77F,0xA77E}, /* A77E */
3951  {0xA780,0xA781,0xA780}, {0xA780,0xA781,0xA780}, /* A780 */
3952  {0xA782,0xA783,0xA782}, {0xA782,0xA783,0xA782}, /* A782 */
3953  {0xA784,0xA785,0xA784}, {0xA784,0xA785,0xA784}, /* A784 */
3954  {0xA786,0xA787,0xA786}, {0xA786,0xA787,0xA786}, /* A786 */
3955  {0xA788,0xA788,0xA788}, {0xA789,0xA789,0xA789}, /* A788 */
3956  {0xA78A,0xA78A,0xA78A}, {0xA78B,0xA78C,0xA78B}, /* A78A */
3957  {0xA78B,0xA78C,0xA78B}, {0xA78D,0xA78D,0xA78D}, /* A78C */
3958  {0xA78E,0xA78E,0xA78E}, {0xA78F,0xA78F,0xA78F}, /* A78E */
3959  {0xA790,0xA790,0xA790}, {0xA791,0xA791,0xA791}, /* A790 */
3960  {0xA792,0xA792,0xA792}, {0xA793,0xA793,0xA793}, /* A792 */
3961  {0xA794,0xA794,0xA794}, {0xA795,0xA795,0xA795}, /* A794 */
3962  {0xA796,0xA796,0xA796}, {0xA797,0xA797,0xA797}, /* A796 */
3963  {0xA798,0xA798,0xA798}, {0xA799,0xA799,0xA799}, /* A798 */
3964  {0xA79A,0xA79A,0xA79A}, {0xA79B,0xA79B,0xA79B}, /* A79A */
3965  {0xA79C,0xA79C,0xA79C}, {0xA79D,0xA79D,0xA79D}, /* A79C */
3966  {0xA79E,0xA79E,0xA79E}, {0xA79F,0xA79F,0xA79F}, /* A79E */
3967  {0xA7A0,0xA7A0,0xA7A0}, {0xA7A1,0xA7A1,0xA7A1}, /* A7A0 */
3968  {0xA7A2,0xA7A2,0xA7A2}, {0xA7A3,0xA7A3,0xA7A3}, /* A7A2 */
3969  {0xA7A4,0xA7A4,0xA7A4}, {0xA7A5,0xA7A5,0xA7A5}, /* A7A4 */
3970  {0xA7A6,0xA7A6,0xA7A6}, {0xA7A7,0xA7A7,0xA7A7}, /* A7A6 */
3971  {0xA7A8,0xA7A8,0xA7A8}, {0xA7A9,0xA7A9,0xA7A9}, /* A7A8 */
3972  {0xA7AA,0xA7AA,0xA7AA}, {0xA7AB,0xA7AB,0xA7AB}, /* A7AA */
3973  {0xA7AC,0xA7AC,0xA7AC}, {0xA7AD,0xA7AD,0xA7AD}, /* A7AC */
3974  {0xA7AE,0xA7AE,0xA7AE}, {0xA7AF,0xA7AF,0xA7AF}, /* A7AE */
3975  {0xA7B0,0xA7B0,0xA7B0}, {0xA7B1,0xA7B1,0xA7B1}, /* A7B0 */
3976  {0xA7B2,0xA7B2,0xA7B2}, {0xA7B3,0xA7B3,0xA7B3}, /* A7B2 */
3977  {0xA7B4,0xA7B4,0xA7B4}, {0xA7B5,0xA7B5,0xA7B5}, /* A7B4 */
3978  {0xA7B6,0xA7B6,0xA7B6}, {0xA7B7,0xA7B7,0xA7B7}, /* A7B6 */
3979  {0xA7B8,0xA7B8,0xA7B8}, {0xA7B9,0xA7B9,0xA7B9}, /* A7B8 */
3980  {0xA7BA,0xA7BA,0xA7BA}, {0xA7BB,0xA7BB,0xA7BB}, /* A7BA */
3981  {0xA7BC,0xA7BC,0xA7BC}, {0xA7BD,0xA7BD,0xA7BD}, /* A7BC */
3982  {0xA7BE,0xA7BE,0xA7BE}, {0xA7BF,0xA7BF,0xA7BF}, /* A7BE */
3983  {0xA7C0,0xA7C0,0xA7C0}, {0xA7C1,0xA7C1,0xA7C1}, /* A7C0 */
3984  {0xA7C2,0xA7C2,0xA7C2}, {0xA7C3,0xA7C3,0xA7C3}, /* A7C2 */
3985  {0xA7C4,0xA7C4,0xA7C4}, {0xA7C5,0xA7C5,0xA7C5}, /* A7C4 */
3986  {0xA7C6,0xA7C6,0xA7C6}, {0xA7C7,0xA7C7,0xA7C7}, /* A7C6 */
3987  {0xA7C8,0xA7C8,0xA7C8}, {0xA7C9,0xA7C9,0xA7C9}, /* A7C8 */
3988  {0xA7CA,0xA7CA,0xA7CA}, {0xA7CB,0xA7CB,0xA7CB}, /* A7CA */
3989  {0xA7CC,0xA7CC,0xA7CC}, {0xA7CD,0xA7CD,0xA7CD}, /* A7CC */
3990  {0xA7CE,0xA7CE,0xA7CE}, {0xA7CF,0xA7CF,0xA7CF}, /* A7CE */
3991  {0xA7D0,0xA7D0,0xA7D0}, {0xA7D1,0xA7D1,0xA7D1}, /* A7D0 */
3992  {0xA7D2,0xA7D2,0xA7D2}, {0xA7D3,0xA7D3,0xA7D3}, /* A7D2 */
3993  {0xA7D4,0xA7D4,0xA7D4}, {0xA7D5,0xA7D5,0xA7D5}, /* A7D4 */
3994  {0xA7D6,0xA7D6,0xA7D6}, {0xA7D7,0xA7D7,0xA7D7}, /* A7D6 */
3995  {0xA7D8,0xA7D8,0xA7D8}, {0xA7D9,0xA7D9,0xA7D9}, /* A7D8 */
3996  {0xA7DA,0xA7DA,0xA7DA}, {0xA7DB,0xA7DB,0xA7DB}, /* A7DA */
3997  {0xA7DC,0xA7DC,0xA7DC}, {0xA7DD,0xA7DD,0xA7DD}, /* A7DC */
3998  {0xA7DE,0xA7DE,0xA7DE}, {0xA7DF,0xA7DF,0xA7DF}, /* A7DE */
3999  {0xA7E0,0xA7E0,0xA7E0}, {0xA7E1,0xA7E1,0xA7E1}, /* A7E0 */
4000  {0xA7E2,0xA7E2,0xA7E2}, {0xA7E3,0xA7E3,0xA7E3}, /* A7E2 */
4001  {0xA7E4,0xA7E4,0xA7E4}, {0xA7E5,0xA7E5,0xA7E5}, /* A7E4 */
4002  {0xA7E6,0xA7E6,0xA7E6}, {0xA7E7,0xA7E7,0xA7E7}, /* A7E6 */
4003  {0xA7E8,0xA7E8,0xA7E8}, {0xA7E9,0xA7E9,0xA7E9}, /* A7E8 */
4004  {0xA7EA,0xA7EA,0xA7EA}, {0xA7EB,0xA7EB,0xA7EB}, /* A7EA */
4005  {0xA7EC,0xA7EC,0xA7EC}, {0xA7ED,0xA7ED,0xA7ED}, /* A7EC */
4006  {0xA7EE,0xA7EE,0xA7EE}, {0xA7EF,0xA7EF,0xA7EF}, /* A7EE */
4007  {0xA7F0,0xA7F0,0xA7F0}, {0xA7F1,0xA7F1,0xA7F1}, /* A7F0 */
4008  {0xA7F2,0xA7F2,0xA7F2}, {0xA7F3,0xA7F3,0xA7F3}, /* A7F2 */
4009  {0xA7F4,0xA7F4,0xA7F4}, {0xA7F5,0xA7F5,0xA7F5}, /* A7F4 */
4010  {0xA7F6,0xA7F6,0xA7F6}, {0xA7F7,0xA7F7,0xA7F7}, /* A7F6 */
4011  {0xA7F8,0xA7F8,0xA7F8}, {0xA7F9,0xA7F9,0xA7F9}, /* A7F8 */
4012  {0xA7FA,0xA7FA,0xA7FA}, {0xA7FB,0xA7FB,0xA7FB}, /* A7FA */
4013  {0xA7FC,0xA7FC,0xA7FC}, {0xA7FD,0xA7FD,0xA7FD}, /* A7FC */
4014  {0xA7FE,0xA7FE,0xA7FE}, {0xA7FF,0xA7FF,0xA7FF} /* A7FE */
4015 };
4016 
4017 static MY_UNICASE_CHARACTER u520pFF[]={
4018  {0xFF00,0xFF00,0xFF00}, {0xFF01,0xFF01,0xFF01}, /* FF00 */
4019  {0xFF02,0xFF02,0xFF02}, {0xFF03,0xFF03,0xFF03}, /* FF02 */
4020  {0xFF04,0xFF04,0xFF04}, {0xFF05,0xFF05,0xFF05}, /* FF04 */
4021  {0xFF06,0xFF06,0xFF06}, {0xFF07,0xFF07,0xFF07}, /* FF06 */
4022  {0xFF08,0xFF08,0xFF08}, {0xFF09,0xFF09,0xFF09}, /* FF08 */
4023  {0xFF0A,0xFF0A,0xFF0A}, {0xFF0B,0xFF0B,0xFF0B}, /* FF0A */
4024  {0xFF0C,0xFF0C,0xFF0C}, {0xFF0D,0xFF0D,0xFF0D}, /* FF0C */
4025  {0xFF0E,0xFF0E,0xFF0E}, {0xFF0F,0xFF0F,0xFF0F}, /* FF0E */
4026  {0xFF10,0xFF10,0xFF10}, {0xFF11,0xFF11,0xFF11}, /* FF10 */
4027  {0xFF12,0xFF12,0xFF12}, {0xFF13,0xFF13,0xFF13}, /* FF12 */
4028  {0xFF14,0xFF14,0xFF14}, {0xFF15,0xFF15,0xFF15}, /* FF14 */
4029  {0xFF16,0xFF16,0xFF16}, {0xFF17,0xFF17,0xFF17}, /* FF16 */
4030  {0xFF18,0xFF18,0xFF18}, {0xFF19,0xFF19,0xFF19}, /* FF18 */
4031  {0xFF1A,0xFF1A,0xFF1A}, {0xFF1B,0xFF1B,0xFF1B}, /* FF1A */
4032  {0xFF1C,0xFF1C,0xFF1C}, {0xFF1D,0xFF1D,0xFF1D}, /* FF1C */
4033  {0xFF1E,0xFF1E,0xFF1E}, {0xFF1F,0xFF1F,0xFF1F}, /* FF1E */
4034  {0xFF20,0xFF20,0xFF20}, {0xFF21,0xFF41,0xFF21}, /* FF20 */
4035  {0xFF22,0xFF42,0xFF22}, {0xFF23,0xFF43,0xFF23}, /* FF22 */
4036  {0xFF24,0xFF44,0xFF24}, {0xFF25,0xFF45,0xFF25}, /* FF24 */
4037  {0xFF26,0xFF46,0xFF26}, {0xFF27,0xFF47,0xFF27}, /* FF26 */
4038  {0xFF28,0xFF48,0xFF28}, {0xFF29,0xFF49,0xFF29}, /* FF28 */
4039  {0xFF2A,0xFF4A,0xFF2A}, {0xFF2B,0xFF4B,0xFF2B}, /* FF2A */
4040  {0xFF2C,0xFF4C,0xFF2C}, {0xFF2D,0xFF4D,0xFF2D}, /* FF2C */
4041  {0xFF2E,0xFF4E,0xFF2E}, {0xFF2F,0xFF4F,0xFF2F}, /* FF2E */
4042  {0xFF30,0xFF50,0xFF30}, {0xFF31,0xFF51,0xFF31}, /* FF30 */
4043  {0xFF32,0xFF52,0xFF32}, {0xFF33,0xFF53,0xFF33}, /* FF32 */
4044  {0xFF34,0xFF54,0xFF34}, {0xFF35,0xFF55,0xFF35}, /* FF34 */
4045  {0xFF36,0xFF56,0xFF36}, {0xFF37,0xFF57,0xFF37}, /* FF36 */
4046  {0xFF38,0xFF58,0xFF38}, {0xFF39,0xFF59,0xFF39}, /* FF38 */
4047  {0xFF3A,0xFF5A,0xFF3A}, {0xFF3B,0xFF3B,0xFF3B}, /* FF3A */
4048  {0xFF3C,0xFF3C,0xFF3C}, {0xFF3D,0xFF3D,0xFF3D}, /* FF3C */
4049  {0xFF3E,0xFF3E,0xFF3E}, {0xFF3F,0xFF3F,0xFF3F}, /* FF3E */
4050  {0xFF40,0xFF40,0xFF40}, {0xFF21,0xFF41,0xFF21}, /* FF40 */
4051  {0xFF22,0xFF42,0xFF22}, {0xFF23,0xFF43,0xFF23}, /* FF42 */
4052  {0xFF24,0xFF44,0xFF24}, {0xFF25,0xFF45,0xFF25}, /* FF44 */
4053  {0xFF26,0xFF46,0xFF26}, {0xFF27,0xFF47,0xFF27}, /* FF46 */
4054  {0xFF28,0xFF48,0xFF28}, {0xFF29,0xFF49,0xFF29}, /* FF48 */
4055  {0xFF2A,0xFF4A,0xFF2A}, {0xFF2B,0xFF4B,0xFF2B}, /* FF4A */
4056  {0xFF2C,0xFF4C,0xFF2C}, {0xFF2D,0xFF4D,0xFF2D}, /* FF4C */
4057  {0xFF2E,0xFF4E,0xFF2E}, {0xFF2F,0xFF4F,0xFF2F}, /* FF4E */
4058  {0xFF30,0xFF50,0xFF30}, {0xFF31,0xFF51,0xFF31}, /* FF50 */
4059  {0xFF32,0xFF52,0xFF32}, {0xFF33,0xFF53,0xFF33}, /* FF52 */
4060  {0xFF34,0xFF54,0xFF34}, {0xFF35,0xFF55,0xFF35}, /* FF54 */
4061  {0xFF36,0xFF56,0xFF36}, {0xFF37,0xFF57,0xFF37}, /* FF56 */
4062  {0xFF38,0xFF58,0xFF38}, {0xFF39,0xFF59,0xFF39}, /* FF58 */
4063  {0xFF3A,0xFF5A,0xFF3A}, {0xFF5B,0xFF5B,0xFF5B}, /* FF5A */
4064  {0xFF5C,0xFF5C,0xFF5C}, {0xFF5D,0xFF5D,0xFF5D}, /* FF5C */
4065  {0xFF5E,0xFF5E,0xFF5E}, {0xFF5F,0xFF5F,0xFF5F}, /* FF5E */
4066  {0xFF60,0xFF60,0xFF60}, {0xFF61,0xFF61,0xFF61}, /* FF60 */
4067  {0xFF62,0xFF62,0xFF62}, {0xFF63,0xFF63,0xFF63}, /* FF62 */
4068  {0xFF64,0xFF64,0xFF64}, {0xFF65,0xFF65,0xFF65}, /* FF64 */
4069  {0xFF66,0xFF66,0xFF66}, {0xFF67,0xFF67,0xFF67}, /* FF66 */
4070  {0xFF68,0xFF68,0xFF68}, {0xFF69,0xFF69,0xFF69}, /* FF68 */
4071  {0xFF6A,0xFF6A,0xFF6A}, {0xFF6B,0xFF6B,0xFF6B}, /* FF6A */
4072  {0xFF6C,0xFF6C,0xFF6C}, {0xFF6D,0xFF6D,0xFF6D}, /* FF6C */
4073  {0xFF6E,0xFF6E,0xFF6E}, {0xFF6F,0xFF6F,0xFF6F}, /* FF6E */
4074  {0xFF70,0xFF70,0xFF70}, {0xFF71,0xFF71,0xFF71}, /* FF70 */
4075  {0xFF72,0xFF72,0xFF72}, {0xFF73,0xFF73,0xFF73}, /* FF72 */
4076  {0xFF74,0xFF74,0xFF74}, {0xFF75,0xFF75,0xFF75}, /* FF74 */
4077  {0xFF76,0xFF76,0xFF76}, {0xFF77,0xFF77,0xFF77}, /* FF76 */
4078  {0xFF78,0xFF78,0xFF78}, {0xFF79,0xFF79,0xFF79}, /* FF78 */
4079  {0xFF7A,0xFF7A,0xFF7A}, {0xFF7B,0xFF7B,0xFF7B}, /* FF7A */
4080  {0xFF7C,0xFF7C,0xFF7C}, {0xFF7D,0xFF7D,0xFF7D}, /* FF7C */
4081  {0xFF7E,0xFF7E,0xFF7E}, {0xFF7F,0xFF7F,0xFF7F}, /* FF7E */
4082  {0xFF80,0xFF80,0xFF80}, {0xFF81,0xFF81,0xFF81}, /* FF80 */
4083  {0xFF82,0xFF82,0xFF82}, {0xFF83,0xFF83,0xFF83}, /* FF82 */
4084  {0xFF84,0xFF84,0xFF84}, {0xFF85,0xFF85,0xFF85}, /* FF84 */
4085  {0xFF86,0xFF86,0xFF86}, {0xFF87,0xFF87,0xFF87}, /* FF86 */
4086  {0xFF88,0xFF88,0xFF88}, {0xFF89,0xFF89,0xFF89}, /* FF88 */
4087  {0xFF8A,0xFF8A,0xFF8A}, {0xFF8B,0xFF8B,0xFF8B}, /* FF8A */
4088  {0xFF8C,0xFF8C,0xFF8C}, {0xFF8D,0xFF8D,0xFF8D}, /* FF8C */
4089  {0xFF8E,0xFF8E,0xFF8E}, {0xFF8F,0xFF8F,0xFF8F}, /* FF8E */
4090  {0xFF90,0xFF90,0xFF90}, {0xFF91,0xFF91,0xFF91}, /* FF90 */
4091  {0xFF92,0xFF92,0xFF92}, {0xFF93,0xFF93,0xFF93}, /* FF92 */
4092  {0xFF94,0xFF94,0xFF94}, {0xFF95,0xFF95,0xFF95}, /* FF94 */
4093  {0xFF96,0xFF96,0xFF96}, {0xFF97,0xFF97,0xFF97}, /* FF96 */
4094  {0xFF98,0xFF98,0xFF98}, {0xFF99,0xFF99,0xFF99}, /* FF98 */
4095  {0xFF9A,0xFF9A,0xFF9A}, {0xFF9B,0xFF9B,0xFF9B}, /* FF9A */
4096  {0xFF9C,0xFF9C,0xFF9C}, {0xFF9D,0xFF9D,0xFF9D}, /* FF9C */
4097  {0xFF9E,0xFF9E,0xFF9E}, {0xFF9F,0xFF9F,0xFF9F}, /* FF9E */
4098  {0xFFA0,0xFFA0,0xFFA0}, {0xFFA1,0xFFA1,0xFFA1}, /* FFA0 */
4099  {0xFFA2,0xFFA2,0xFFA2}, {0xFFA3,0xFFA3,0xFFA3}, /* FFA2 */
4100  {0xFFA4,0xFFA4,0xFFA4}, {0xFFA5,0xFFA5,0xFFA5}, /* FFA4 */
4101  {0xFFA6,0xFFA6,0xFFA6}, {0xFFA7,0xFFA7,0xFFA7}, /* FFA6 */
4102  {0xFFA8,0xFFA8,0xFFA8}, {0xFFA9,0xFFA9,0xFFA9}, /* FFA8 */
4103  {0xFFAA,0xFFAA,0xFFAA}, {0xFFAB,0xFFAB,0xFFAB}, /* FFAA */
4104  {0xFFAC,0xFFAC,0xFFAC}, {0xFFAD,0xFFAD,0xFFAD}, /* FFAC */
4105  {0xFFAE,0xFFAE,0xFFAE}, {0xFFAF,0xFFAF,0xFFAF}, /* FFAE */
4106  {0xFFB0,0xFFB0,0xFFB0}, {0xFFB1,0xFFB1,0xFFB1}, /* FFB0 */
4107  {0xFFB2,0xFFB2,0xFFB2}, {0xFFB3,0xFFB3,0xFFB3}, /* FFB2 */
4108  {0xFFB4,0xFFB4,0xFFB4}, {0xFFB5,0xFFB5,0xFFB5}, /* FFB4 */
4109  {0xFFB6,0xFFB6,0xFFB6}, {0xFFB7,0xFFB7,0xFFB7}, /* FFB6 */
4110  {0xFFB8,0xFFB8,0xFFB8}, {0xFFB9,0xFFB9,0xFFB9}, /* FFB8 */
4111  {0xFFBA,0xFFBA,0xFFBA}, {0xFFBB,0xFFBB,0xFFBB}, /* FFBA */
4112  {0xFFBC,0xFFBC,0xFFBC}, {0xFFBD,0xFFBD,0xFFBD}, /* FFBC */
4113  {0xFFBE,0xFFBE,0xFFBE}, {0xFFBF,0xFFBF,0xFFBF}, /* FFBE */
4114  {0xFFC0,0xFFC0,0xFFC0}, {0xFFC1,0xFFC1,0xFFC1}, /* FFC0 */
4115  {0xFFC2,0xFFC2,0xFFC2}, {0xFFC3,0xFFC3,0xFFC3}, /* FFC2 */
4116  {0xFFC4,0xFFC4,0xFFC4}, {0xFFC5,0xFFC5,0xFFC5}, /* FFC4 */
4117  {0xFFC6,0xFFC6,0xFFC6}, {0xFFC7,0xFFC7,0xFFC7}, /* FFC6 */
4118  {0xFFC8,0xFFC8,0xFFC8}, {0xFFC9,0xFFC9,0xFFC9}, /* FFC8 */
4119  {0xFFCA,0xFFCA,0xFFCA}, {0xFFCB,0xFFCB,0xFFCB}, /* FFCA */
4120  {0xFFCC,0xFFCC,0xFFCC}, {0xFFCD,0xFFCD,0xFFCD}, /* FFCC */
4121  {0xFFCE,0xFFCE,0xFFCE}, {0xFFCF,0xFFCF,0xFFCF}, /* FFCE */
4122  {0xFFD0,0xFFD0,0xFFD0}, {0xFFD1,0xFFD1,0xFFD1}, /* FFD0 */
4123  {0xFFD2,0xFFD2,0xFFD2}, {0xFFD3,0xFFD3,0xFFD3}, /* FFD2 */
4124  {0xFFD4,0xFFD4,0xFFD4}, {0xFFD5,0xFFD5,0xFFD5}, /* FFD4 */
4125  {0xFFD6,0xFFD6,0xFFD6}, {0xFFD7,0xFFD7,0xFFD7}, /* FFD6 */
4126  {0xFFD8,0xFFD8,0xFFD8}, {0xFFD9,0xFFD9,0xFFD9}, /* FFD8 */
4127  {0xFFDA,0xFFDA,0xFFDA}, {0xFFDB,0xFFDB,0xFFDB}, /* FFDA */
4128  {0xFFDC,0xFFDC,0xFFDC}, {0xFFDD,0xFFDD,0xFFDD}, /* FFDC */
4129  {0xFFDE,0xFFDE,0xFFDE}, {0xFFDF,0xFFDF,0xFFDF}, /* FFDE */
4130  {0xFFE0,0xFFE0,0xFFE0}, {0xFFE1,0xFFE1,0xFFE1}, /* FFE0 */
4131  {0xFFE2,0xFFE2,0xFFE2}, {0xFFE3,0xFFE3,0xFFE3}, /* FFE2 */
4132  {0xFFE4,0xFFE4,0xFFE4}, {0xFFE5,0xFFE5,0xFFE5}, /* FFE4 */
4133  {0xFFE6,0xFFE6,0xFFE6}, {0xFFE7,0xFFE7,0xFFE7}, /* FFE6 */
4134  {0xFFE8,0xFFE8,0xFFE8}, {0xFFE9,0xFFE9,0xFFE9}, /* FFE8 */
4135  {0xFFEA,0xFFEA,0xFFEA}, {0xFFEB,0xFFEB,0xFFEB}, /* FFEA */
4136  {0xFFEC,0xFFEC,0xFFEC}, {0xFFED,0xFFED,0xFFED}, /* FFEC */
4137  {0xFFEE,0xFFEE,0xFFEE}, {0xFFEF,0xFFEF,0xFFEF}, /* FFEE */
4138  {0xFFF0,0xFFF0,0xFFF0}, {0xFFF1,0xFFF1,0xFFF1}, /* FFF0 */
4139  {0xFFF2,0xFFF2,0xFFF2}, {0xFFF3,0xFFF3,0xFFF3}, /* FFF2 */
4140  {0xFFF4,0xFFF4,0xFFF4}, {0xFFF5,0xFFF5,0xFFF5}, /* FFF4 */
4141  {0xFFF6,0xFFF6,0xFFF6}, {0xFFF7,0xFFF7,0xFFF7}, /* FFF6 */
4142  {0xFFF8,0xFFF8,0xFFF8}, {0xFFF9,0xFFF9,0xFFF9}, /* FFF8 */
4143  {0xFFFA,0xFFFA,0xFFFA}, {0xFFFB,0xFFFB,0xFFFB}, /* FFFA */
4144  {0xFFFC,0xFFFC,0xFFFC}, {0xFFFD,0xFFFD,0xFFFD}, /* FFFC */
4145  {0xFFFE,0xFFFE,0xFFFE}, {0xFFFF,0xFFFF,0xFFFF} /* FFFE */
4146 };
4147 
4148 static MY_UNICASE_CHARACTER u520p104[]={
4149  {0x10400,0x10428,0x10400}, {0x10401,0x10429,0x10401}, /* 10400 */
4150  {0x10402,0x1042A,0x10402}, {0x10403,0x1042B,0x10403}, /* 10402 */
4151  {0x10404,0x1042C,0x10404}, {0x10405,0x1042D,0x10405}, /* 10404 */
4152  {0x10406,0x1042E,0x10406}, {0x10407,0x1042F,0x10407}, /* 10406 */
4153  {0x10408,0x10430,0x10408}, {0x10409,0x10431,0x10409}, /* 10408 */
4154  {0x1040A,0x10432,0x1040A}, {0x1040B,0x10433,0x1040B}, /* 1040A */
4155  {0x1040C,0x10434,0x1040C}, {0x1040D,0x10435,0x1040D}, /* 1040C */
4156  {0x1040E,0x10436,0x1040E}, {0x1040F,0x10437,0x1040F}, /* 1040E */
4157  {0x10410,0x10438,0x10410}, {0x10411,0x10439,0x10411}, /* 10410 */
4158  {0x10412,0x1043A,0x10412}, {0x10413,0x1043B,0x10413}, /* 10412 */
4159  {0x10414,0x1043C,0x10414}, {0x10415,0x1043D,0x10415}, /* 10414 */
4160  {0x10416,0x1043E,0x10416}, {0x10417,0x1043F,0x10417}, /* 10416 */
4161  {0x10418,0x10440,0x10418}, {0x10419,0x10441,0x10419}, /* 10418 */
4162  {0x1041A,0x10442,0x1041A}, {0x1041B,0x10443,0x1041B}, /* 1041A */
4163  {0x1041C,0x10444,0x1041C}, {0x1041D,0x10445,0x1041D}, /* 1041C */
4164  {0x1041E,0x10446,0x1041E}, {0x1041F,0x10447,0x1041F}, /* 1041E */
4165  {0x10420,0x10448,0x10420}, {0x10421,0x10449,0x10421}, /* 10420 */
4166  {0x10422,0x1044A,0x10422}, {0x10423,0x1044B,0x10423}, /* 10422 */
4167  {0x10424,0x1044C,0x10424}, {0x10425,0x1044D,0x10425}, /* 10424 */
4168  {0x10426,0x1044E,0x10426}, {0x10427,0x1044F,0x10427}, /* 10426 */
4169  {0x10400,0x10428,0x10400}, {0x10401,0x10429,0x10401}, /* 10428 */
4170  {0x10402,0x1042A,0x10402}, {0x10403,0x1042B,0x10403}, /* 1042A */
4171  {0x10404,0x1042C,0x10404}, {0x10405,0x1042D,0x10405}, /* 1042C */
4172  {0x10406,0x1042E,0x10406}, {0x10407,0x1042F,0x10407}, /* 1042E */
4173  {0x10408,0x10430,0x10408}, {0x10409,0x10431,0x10409}, /* 10430 */
4174  {0x1040A,0x10432,0x1040A}, {0x1040B,0x10433,0x1040B}, /* 10432 */
4175  {0x1040C,0x10434,0x1040C}, {0x1040D,0x10435,0x1040D}, /* 10434 */
4176  {0x1040E,0x10436,0x1040E}, {0x1040F,0x10437,0x1040F}, /* 10436 */
4177  {0x10410,0x10438,0x10410}, {0x10411,0x10439,0x10411}, /* 10438 */
4178  {0x10412,0x1043A,0x10412}, {0x10413,0x1043B,0x10413}, /* 1043A */
4179  {0x10414,0x1043C,0x10414}, {0x10415,0x1043D,0x10415}, /* 1043C */
4180  {0x10416,0x1043E,0x10416}, {0x10417,0x1043F,0x10417}, /* 1043E */
4181  {0x10418,0x10440,0x10418}, {0x10419,0x10441,0x10419}, /* 10440 */
4182  {0x1041A,0x10442,0x1041A}, {0x1041B,0x10443,0x1041B}, /* 10442 */
4183  {0x1041C,0x10444,0x1041C}, {0x1041D,0x10445,0x1041D}, /* 10444 */
4184  {0x1041E,0x10446,0x1041E}, {0x1041F,0x10447,0x1041F}, /* 10446 */
4185  {0x10420,0x10448,0x10420}, {0x10421,0x10449,0x10421}, /* 10448 */
4186  {0x10422,0x1044A,0x10422}, {0x10423,0x1044B,0x10423}, /* 1044A */
4187  {0x10424,0x1044C,0x10424}, {0x10425,0x1044D,0x10425}, /* 1044C */
4188  {0x10426,0x1044E,0x10426}, {0x10427,0x1044F,0x10427}, /* 1044E */
4189  {0x10450,0x10450,0x10450}, {0x10451,0x10451,0x10451}, /* 10450 */
4190  {0x10452,0x10452,0x10452}, {0x10453,0x10453,0x10453}, /* 10452 */
4191  {0x10454,0x10454,0x10454}, {0x10455,0x10455,0x10455}, /* 10454 */
4192  {0x10456,0x10456,0x10456}, {0x10457,0x10457,0x10457}, /* 10456 */
4193  {0x10458,0x10458,0x10458}, {0x10459,0x10459,0x10459}, /* 10458 */
4194  {0x1045A,0x1045A,0x1045A}, {0x1045B,0x1045B,0x1045B}, /* 1045A */
4195  {0x1045C,0x1045C,0x1045C}, {0x1045D,0x1045D,0x1045D}, /* 1045C */
4196  {0x1045E,0x1045E,0x1045E}, {0x1045F,0x1045F,0x1045F}, /* 1045E */
4197  {0x10460,0x10460,0x10460}, {0x10461,0x10461,0x10461}, /* 10460 */
4198  {0x10462,0x10462,0x10462}, {0x10463,0x10463,0x10463}, /* 10462 */
4199  {0x10464,0x10464,0x10464}, {0x10465,0x10465,0x10465}, /* 10464 */
4200  {0x10466,0x10466,0x10466}, {0x10467,0x10467,0x10467}, /* 10466 */
4201  {0x10468,0x10468,0x10468}, {0x10469,0x10469,0x10469}, /* 10468 */
4202  {0x1046A,0x1046A,0x1046A}, {0x1046B,0x1046B,0x1046B}, /* 1046A */
4203  {0x1046C,0x1046C,0x1046C}, {0x1046D,0x1046D,0x1046D}, /* 1046C */
4204  {0x1046E,0x1046E,0x1046E}, {0x1046F,0x1046F,0x1046F}, /* 1046E */
4205  {0x10470,0x10470,0x10470}, {0x10471,0x10471,0x10471}, /* 10470 */
4206  {0x10472,0x10472,0x10472}, {0x10473,0x10473,0x10473}, /* 10472 */
4207  {0x10474,0x10474,0x10474}, {0x10475,0x10475,0x10475}, /* 10474 */
4208  {0x10476,0x10476,0x10476}, {0x10477,0x10477,0x10477}, /* 10476 */
4209  {0x10478,0x10478,0x10478}, {0x10479,0x10479,0x10479}, /* 10478 */
4210  {0x1047A,0x1047A,0x1047A}, {0x1047B,0x1047B,0x1047B}, /* 1047A */
4211  {0x1047C,0x1047C,0x1047C}, {0x1047D,0x1047D,0x1047D}, /* 1047C */
4212  {0x1047E,0x1047E,0x1047E}, {0x1047F,0x1047F,0x1047F}, /* 1047E */
4213  {0x10480,0x10480,0x10480}, {0x10481,0x10481,0x10481}, /* 10480 */
4214  {0x10482,0x10482,0x10482}, {0x10483,0x10483,0x10483}, /* 10482 */
4215  {0x10484,0x10484,0x10484}, {0x10485,0x10485,0x10485}, /* 10484 */
4216  {0x10486,0x10486,0x10486}, {0x10487,0x10487,0x10487}, /* 10486 */
4217  {0x10488,0x10488,0x10488}, {0x10489,0x10489,0x10489}, /* 10488 */
4218  {0x1048A,0x1048A,0x1048A}, {0x1048B,0x1048B,0x1048B}, /* 1048A */
4219  {0x1048C,0x1048C,0x1048C}, {0x1048D,0x1048D,0x1048D}, /* 1048C */
4220  {0x1048E,0x1048E,0x1048E}, {0x1048F,0x1048F,0x1048F}, /* 1048E */
4221  {0x10490,0x10490,0x10490}, {0x10491,0x10491,0x10491}, /* 10490 */
4222  {0x10492,0x10492,0x10492}, {0x10493,0x10493,0x10493}, /* 10492 */
4223  {0x10494,0x10494,0x10494}, {0x10495,0x10495,0x10495}, /* 10494 */
4224  {0x10496,0x10496,0x10496}, {0x10497,0x10497,0x10497}, /* 10496 */
4225  {0x10498,0x10498,0x10498}, {0x10499,0x10499,0x10499}, /* 10498 */
4226  {0x1049A,0x1049A,0x1049A}, {0x1049B,0x1049B,0x1049B}, /* 1049A */
4227  {0x1049C,0x1049C,0x1049C}, {0x1049D,0x1049D,0x1049D}, /* 1049C */
4228  {0x1049E,0x1049E,0x1049E}, {0x1049F,0x1049F,0x1049F}, /* 1049E */
4229  {0x104A0,0x104A0,0x104A0}, {0x104A1,0x104A1,0x104A1}, /* 104A0 */
4230  {0x104A2,0x104A2,0x104A2}, {0x104A3,0x104A3,0x104A3}, /* 104A2 */
4231  {0x104A4,0x104A4,0x104A4}, {0x104A5,0x104A5,0x104A5}, /* 104A4 */
4232  {0x104A6,0x104A6,0x104A6}, {0x104A7,0x104A7,0x104A7}, /* 104A6 */
4233  {0x104A8,0x104A8,0x104A8}, {0x104A9,0x104A9,0x104A9}, /* 104A8 */
4234  {0x104AA,0x104AA,0x104AA}, {0x104AB,0x104AB,0x104AB}, /* 104AA */
4235  {0x104AC,0x104AC,0x104AC}, {0x104AD,0x104AD,0x104AD}, /* 104AC */
4236  {0x104AE,0x104AE,0x104AE}, {0x104AF,0x104AF,0x104AF}, /* 104AE */
4237  {0x104B0,0x104B0,0x104B0}, {0x104B1,0x104B1,0x104B1}, /* 104B0 */
4238  {0x104B2,0x104B2,0x104B2}, {0x104B3,0x104B3,0x104B3}, /* 104B2 */
4239  {0x104B4,0x104B4,0x104B4}, {0x104B5,0x104B5,0x104B5}, /* 104B4 */
4240  {0x104B6,0x104B6,0x104B6}, {0x104B7,0x104B7,0x104B7}, /* 104B6 */
4241  {0x104B8,0x104B8,0x104B8}, {0x104B9,0x104B9,0x104B9}, /* 104B8 */
4242  {0x104BA,0x104BA,0x104BA}, {0x104BB,0x104BB,0x104BB}, /* 104BA */
4243  {0x104BC,0x104BC,0x104BC}, {0x104BD,0x104BD,0x104BD}, /* 104BC */
4244  {0x104BE,0x104BE,0x104BE}, {0x104BF,0x104BF,0x104BF}, /* 104BE */
4245  {0x104C0,0x104C0,0x104C0}, {0x104C1,0x104C1,0x104C1}, /* 104C0 */
4246  {0x104C2,0x104C2,0x104C2}, {0x104C3,0x104C3,0x104C3}, /* 104C2 */
4247  {0x104C4,0x104C4,0x104C4}, {0x104C5,0x104C5,0x104C5}, /* 104C4 */
4248  {0x104C6,0x104C6,0x104C6}, {0x104C7,0x104C7,0x104C7}, /* 104C6 */
4249  {0x104C8,0x104C8,0x104C8}, {0x104C9,0x104C9,0x104C9}, /* 104C8 */
4250  {0x104CA,0x104CA,0x104CA}, {0x104CB,0x104CB,0x104CB}, /* 104CA */
4251  {0x104CC,0x104CC,0x104CC}, {0x104CD,0x104CD,0x104CD}, /* 104CC */
4252  {0x104CE,0x104CE,0x104CE}, {0x104CF,0x104CF,0x104CF}, /* 104CE */
4253  {0x104D0,0x104D0,0x104D0}, {0x104D1,0x104D1,0x104D1}, /* 104D0 */
4254  {0x104D2,0x104D2,0x104D2}, {0x104D3,0x104D3,0x104D3}, /* 104D2 */
4255  {0x104D4,0x104D4,0x104D4}, {0x104D5,0x104D5,0x104D5}, /* 104D4 */
4256  {0x104D6,0x104D6,0x104D6}, {0x104D7,0x104D7,0x104D7}, /* 104D6 */
4257  {0x104D8,0x104D8,0x104D8}, {0x104D9,0x104D9,0x104D9}, /* 104D8 */
4258  {0x104DA,0x104DA,0x104DA}, {0x104DB,0x104DB,0x104DB}, /* 104DA */
4259  {0x104DC,0x104DC,0x104DC}, {0x104DD,0x104DD,0x104DD}, /* 104DC */
4260  {0x104DE,0x104DE,0x104DE}, {0x104DF,0x104DF,0x104DF}, /* 104DE */
4261  {0x104E0,0x104E0,0x104E0}, {0x104E1,0x104E1,0x104E1}, /* 104E0 */
4262  {0x104E2,0x104E2,0x104E2}, {0x104E3,0x104E3,0x104E3}, /* 104E2 */
4263  {0x104E4,0x104E4,0x104E4}, {0x104E5,0x104E5,0x104E5}, /* 104E4 */
4264  {0x104E6,0x104E6,0x104E6}, {0x104E7,0x104E7,0x104E7}, /* 104E6 */
4265  {0x104E8,0x104E8,0x104E8}, {0x104E9,0x104E9,0x104E9}, /* 104E8 */
4266  {0x104EA,0x104EA,0x104EA}, {0x104EB,0x104EB,0x104EB}, /* 104EA */
4267  {0x104EC,0x104EC,0x104EC}, {0x104ED,0x104ED,0x104ED}, /* 104EC */
4268  {0x104EE,0x104EE,0x104EE}, {0x104EF,0x104EF,0x104EF}, /* 104EE */
4269  {0x104F0,0x104F0,0x104F0}, {0x104F1,0x104F1,0x104F1}, /* 104F0 */
4270  {0x104F2,0x104F2,0x104F2}, {0x104F3,0x104F3,0x104F3}, /* 104F2 */
4271  {0x104F4,0x104F4,0x104F4}, {0x104F5,0x104F5,0x104F5}, /* 104F4 */
4272  {0x104F6,0x104F6,0x104F6}, {0x104F7,0x104F7,0x104F7}, /* 104F6 */
4273  {0x104F8,0x104F8,0x104F8}, {0x104F9,0x104F9,0x104F9}, /* 104F8 */
4274  {0x104FA,0x104FA,0x104FA}, {0x104FB,0x104FB,0x104FB}, /* 104FA */
4275  {0x104FC,0x104FC,0x104FC}, {0x104FD,0x104FD,0x104FD}, /* 104FC */
4276  {0x104FE,0x104FE,0x104FE}, {0x104FF,0x104FF,0x104FF} /* 104FE */
4277 };
4278 
4279 
4280 MY_UNICASE_CHARACTER *my_unicase_pages_unicode520[4352]=
4281 {
4282  u520p00, u520p01, u520p02, u520p03, u520p04, u520p05, NULL, NULL,
4283  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4284  u520p10, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4285  NULL, NULL, NULL, NULL, NULL, u520p1D, u520p1E, u520p1F,
4286  NULL, u520p21, NULL, NULL, u520p24, NULL, NULL, NULL,
4287  NULL, NULL, NULL, NULL, u520p2C, u520p2D, NULL, NULL,
4288  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4289  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4290  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4291  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4292  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4293  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4294  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4295  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4296  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4297  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4298  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4299  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4300  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4301  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4302  NULL, NULL, NULL, NULL, NULL, NULL, u520pA6, u520pA7,
4303  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4304  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4305  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4306  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4307  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4308  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4309  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4310  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4311  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4312  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4313  NULL, NULL, NULL, NULL, NULL, NULL, NULL, u520pFF,
4314  NULL, NULL, NULL, NULL,u520p104, NULL, NULL, NULL,
4315  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4316  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4317  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4318  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4319  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4320  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4321  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4322  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4323  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4324  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4325  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4326  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4327  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4328  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4329  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4330  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4331  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4332  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4333  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4334  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4335  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4336  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4337  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4338  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4339  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4340  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4341  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4342  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4343  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4344  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4345  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4346  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4347  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4348  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4349  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4350  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4351  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4352  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4353  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4354  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4355  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4356  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4357  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4358  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4359  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4360  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4361  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4362  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4363  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4364  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4365  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4366  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4367  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4368  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4369  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4370  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4371  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4372  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4373  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4374  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4375  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4376  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4377  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4378  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4379  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4380  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4381  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4382  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4383  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4384  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4385  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4386  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4387  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4388  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4389  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4390  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4391  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4392  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4393  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4394  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4395  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4396  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4397  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4398  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4399  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4400  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4401  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4402  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4403  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4404  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4405  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4406  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4407  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4408  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4409  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4410  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4411  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4412  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4413  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4414  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4415  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4416  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4417  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4418  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4419  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4420  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4421  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4422  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4423  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4424  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4425  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4426  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4427  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4428  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4429  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4430  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4431  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4432  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4433  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4434  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4435  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4436  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4437  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4438  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4439  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4440  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4441  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4442  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4443  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4444  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4445  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4446  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4447  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4448  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4449  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4450  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4451  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4452  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4453  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4454  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4455  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4456  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4457  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4458  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4459  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4460  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4461  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4462  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4463  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4464  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4465  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4466  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4467  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4468  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4469  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4470  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4471  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4472  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4473  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4474  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4475  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4476  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4477  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4478  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4479  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4480  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4481  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4482  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4483  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4484  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4485  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4486  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4487  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4488  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4489  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4490  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4491  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4492  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4493  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4494  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4495  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4496  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4497  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4498  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4499  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4500  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4501  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4502  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4503  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4504  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4505  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4506  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4507  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4508  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4509  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4510  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4511  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4512  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4513  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4514  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4515  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4516  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4517  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4518  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4519  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4520  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4521  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4522  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4523  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4524  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4525  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4526  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4527  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4528  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4529  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4530  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4531  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4532  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4533  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4534  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4535  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4536  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4537  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4538  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4539  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4540  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4541  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4542  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4543  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4544  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4545  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4546  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4547  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4548  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4549  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4550  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4551  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4552  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4553  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4554  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4555  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4556  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4557  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4558  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4559  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4560  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4561  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4562  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4563  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4564  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4565  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4566  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4567  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4568  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4569  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4570  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4571  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4572  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4573  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4574  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4575  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4576  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4577  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4578  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4579  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4580  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4581  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4582  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4583  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4584  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4585  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4586  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4587  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4588  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4589  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4590  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4591  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4592  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4593  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4594  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4595  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4596  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4597  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4598  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4599  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4600  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4601  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4602  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4603  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4604  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4605  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4606  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4607  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4608  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4609  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4610  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4611  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4612  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4613  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4614  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4615  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4616  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4617  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4618  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4619  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4620  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4621  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4622  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4623  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4624  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4625  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4626  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4627  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4628  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4629  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4630  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4631  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4632  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4633  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4634  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4635  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4636  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4637  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4638  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4639  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4640  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4641  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4642  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4643  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4644  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4645  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4646  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4647  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4648  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4649  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4650  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4651  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4652  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4653  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4654  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4655  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4656  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4657  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4658  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4659  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4660  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4661  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4662  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4663  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4664  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4665  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4666  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4667  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4668  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4669  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4670  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4671  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4672  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4673  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4674  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4675  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4676  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4677  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4678  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4679  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4680  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4681  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4682  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4683  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4684  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4685  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4686  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4687  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4688  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4689  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4690  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4691  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4692  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4693  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4694  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4695  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4696  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4697  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4698  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4699  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4700  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4701  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4702  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4703  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4704  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4705  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4706  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4707  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4708  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4709  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4710  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4711  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4712  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4713  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4714  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4715  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4716  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4717  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4718  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4719  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4720  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4721  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4722  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4723  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4724  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4725  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4726  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4727  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4728  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4729  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4730  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4731  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4732  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4733  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4734  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4735  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4736  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4737  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4738  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4739  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4740  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4741  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4742  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4743  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4744  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4745  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4746  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4747  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4748  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4749  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4750  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4751  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4752  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4753  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4754  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4755  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4756  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4757  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4758  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4759  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4760  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4761  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4762  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4763  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4764  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4765  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4766  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4767  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4768  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4769  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4770  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4771  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4772  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4773  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4774  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4775  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4776  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4777  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4778  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4779  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4780  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4781  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4782  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4783  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4784  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4785  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4786  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4787  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4788  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4789  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4790  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4791  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4792  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4793  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4794  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4795  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4796  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4797  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4798  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4799  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4800  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4801  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4802  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4803  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4804  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4805  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4806  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4807  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4808  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4809  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4810  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4811  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4812  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4813  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4814  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4815  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4816  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4817  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4818  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4819  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4820  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4821  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4822  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4823  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4824  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4825  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
4826 };
4827 
4828 
4829 MY_UNICASE_INFO my_unicase_unicode520=
4830 {
4831  0x10FFFF,
4832  my_unicase_pages_unicode520
4833 };
4834 
4835 
4836 static inline void
4837 my_tosort_unicode(MY_UNICASE_INFO *uni_plane, my_wc_t *wc, uint flags)
4838 {
4839  if (*wc <= uni_plane->maxchar)
4840  {
4842  if ((page= uni_plane->page[*wc >> 8]))
4843  *wc= (flags & MY_CS_LOWER_SORT) ?
4844  page[*wc & 0xFF].tolower :
4845  page[*wc & 0xFF].sort;
4846  }
4847  else
4848  {
4849  *wc= MY_CS_REPLACEMENT_CHARACTER;
4850  }
4851 }
4852 
4853 
4854 /*
4855 ** Compare string against string with wildcard
4856 ** This function is used in UTF8 and UCS2
4857 **
4858 ** 0 if matched
4859 ** -1 if not matched with wildcard
4860 ** 1 if matched with wildcard
4861 */
4862 
4863 static
4864 int
4865 my_wildcmp_unicode_impl(const CHARSET_INFO *cs,
4866  const char *str,const char *str_end,
4867  const char *wildstr,const char *wildend,
4868  int escape, int w_one, int w_many,
4869  MY_UNICASE_INFO *weights, int recurse_level)
4870 {
4871  int result= -1; /* Not found, using wildcards */
4872  my_wc_t s_wc, w_wc;
4873  int scan;
4874  int (*mb_wc)(const struct charset_info_st *, my_wc_t *,
4875  const uchar *, const uchar *);
4876  mb_wc= cs->cset->mb_wc;
4877 
4878  if (my_string_stack_guard && my_string_stack_guard(recurse_level))
4879  return 1;
4880  while (wildstr != wildend)
4881  {
4882  while (1)
4883  {
4884  my_bool escaped= 0;
4885  if ((scan= mb_wc(cs, &w_wc, (const uchar*)wildstr,
4886  (const uchar*)wildend)) <= 0)
4887  return 1;
4888 
4889  if (w_wc == (my_wc_t) w_many)
4890  {
4891  result= 1; /* Found an anchor char */
4892  break;
4893  }
4894 
4895  wildstr+= scan;
4896  if (w_wc == (my_wc_t) escape && wildstr < wildend)
4897  {
4898  if ((scan= mb_wc(cs, &w_wc, (const uchar*)wildstr,
4899  (const uchar*)wildend)) <= 0)
4900  return 1;
4901  wildstr+= scan;
4902  escaped= 1;
4903  }
4904 
4905  if ((scan= mb_wc(cs, &s_wc, (const uchar*)str,
4906  (const uchar*)str_end)) <= 0)
4907  return 1;
4908  str+= scan;
4909 
4910  if (!escaped && w_wc == (my_wc_t) w_one)
4911  {
4912  result= 1; /* Found an anchor char */
4913  }
4914  else
4915  {
4916  if (weights)
4917  {
4918  my_tosort_unicode(weights, &s_wc, cs->state);
4919  my_tosort_unicode(weights, &w_wc, cs->state);
4920  }
4921  if (s_wc != w_wc)
4922  return 1; /* No match */
4923  }
4924  if (wildstr == wildend)
4925  return (str != str_end); /* Match if both are at end */
4926  }
4927 
4928 
4929  if (w_wc == (my_wc_t) w_many)
4930  { /* Found w_many */
4931 
4932  /* Remove any '%' and '_' from the wild search string */
4933  for ( ; wildstr != wildend ; )
4934  {
4935  if ((scan= mb_wc(cs, &w_wc, (const uchar*)wildstr,
4936  (const uchar*)wildend)) <= 0)
4937  return 1;
4938 
4939  if (w_wc == (my_wc_t)w_many)
4940  {
4941  wildstr+= scan;
4942  continue;
4943  }
4944 
4945  if (w_wc == (my_wc_t)w_one)
4946  {
4947  wildstr+= scan;
4948  if ((scan= mb_wc(cs, &s_wc, (const uchar*)str,
4949  (const uchar*)str_end)) <=0)
4950  return 1;
4951  str+= scan;
4952  continue;
4953  }
4954  break; /* Not a wild character */
4955  }
4956 
4957  if (wildstr == wildend)
4958  return 0; /* Ok if w_many is last */
4959 
4960  if (str == str_end)
4961  return -1;
4962 
4963  if ((scan= mb_wc(cs, &w_wc, (const uchar*)wildstr,
4964  (const uchar*)wildend)) <=0)
4965  return 1;
4966  wildstr+= scan;
4967 
4968  if (w_wc == (my_wc_t)escape)
4969  {
4970  if (wildstr < wildend)
4971  {
4972  if ((scan= mb_wc(cs, &w_wc, (const uchar*)wildstr,
4973  (const uchar*)wildend)) <=0)
4974  return 1;
4975  wildstr+= scan;
4976  }
4977  }
4978 
4979  while (1)
4980  {
4981  /* Skip until the first character from wildstr is found */
4982  while (str != str_end)
4983  {
4984  if ((scan= mb_wc(cs, &s_wc, (const uchar*)str,
4985  (const uchar*)str_end)) <=0)
4986  return 1;
4987  if (weights)
4988  {
4989  my_tosort_unicode(weights, &s_wc, cs->state);
4990  my_tosort_unicode(weights, &w_wc, cs->state);
4991  }
4992 
4993  if (s_wc == w_wc)
4994  break;
4995  str+= scan;
4996  }
4997  if (str == str_end)
4998  return -1;
4999 
5000  str+= scan;
5001  result= my_wildcmp_unicode_impl(cs, str, str_end, wildstr, wildend,
5002  escape, w_one, w_many,
5003  weights, recurse_level + 1);
5004  if (result <= 0)
5005  return result;
5006  }
5007  }
5008  }
5009  return (str != str_end ? 1 : 0);
5010 }
5011 
5012 int
5013 my_wildcmp_unicode(const CHARSET_INFO *cs,
5014  const char *str,const char *str_end,
5015  const char *wildstr,const char *wildend,
5016  int escape, int w_one, int w_many,
5017  MY_UNICASE_INFO *weights)
5018 {
5019  return my_wildcmp_unicode_impl(cs, str, str_end,
5020  wildstr, wildend,
5021  escape, w_one, w_many, weights, 1);
5022 }
5023 
5024 
5044 static size_t
5045 my_strxfrm_pad_nweights_unicode(uchar *str, uchar *strend, size_t nweights)
5046 {
5047  uchar *str0;
5048  DBUG_ASSERT(str && str <= strend);
5049  for (str0= str; str < strend && nweights; nweights--)
5050  {
5051  *str++= 0x00;
5052  if (str < strend)
5053  *str++= 0x20;
5054  }
5055  return str - str0;
5056 }
5057 
5058 
5073 static size_t
5074 my_strxfrm_pad_unicode(uchar *str, uchar *strend)
5075 {
5076  uchar *str0= str;
5077  DBUG_ASSERT(str && str <= strend);
5078  for ( ; str < strend ; )
5079  {
5080  *str++= 0x00;
5081  if (str < strend)
5082  *str++= 0x20;
5083  }
5084  return str - str0;
5085 }
5086 
5087 
5088 /*
5089  Store sorting weights using 2 bytes per character.
5090 
5091  This function is shared between
5092  - utf8mb3_general_ci, utf8_bin, ucs2_general_ci, ucs2_bin
5093  which support BMP only (U+0000..U+FFFF).
5094  - utf8mb4_general_ci, utf16_general_ci, utf32_general_ci,
5095  which map all supplementary characters to weight 0xFFFD.
5096 */
5097 size_t
5098 my_strnxfrm_unicode(const CHARSET_INFO *cs,
5099  uchar *dst, size_t dstlen, uint nweights,
5100  const uchar *src, size_t srclen, uint flags)
5101 {
5102  my_wc_t wc;
5103  int res;
5104  uchar *dst0= dst;
5105  uchar *de= dst + dstlen;
5106  const uchar *se= src + srclen;
5107  MY_UNICASE_INFO *uni_plane= (cs->state & MY_CS_BINSORT) ?
5108  NULL : cs->caseinfo;
5109  LINT_INIT(wc);
5110  DBUG_ASSERT(src);
5111 
5112  for (; dst < de && nweights; nweights--)
5113  {
5114  if ((res= cs->cset->mb_wc(cs, &wc, src, se)) <= 0)
5115  break;
5116  src+= res;
5117 
5118  if (uni_plane)
5119  my_tosort_unicode(uni_plane, &wc, cs->state);
5120 
5121  *dst++= (uchar) (wc >> 8);
5122  if (dst < de)
5123  *dst++= (uchar) (wc & 0xFF);
5124  }
5125 
5126  if (dst < de && nweights && (flags & MY_STRXFRM_PAD_WITH_SPACE))
5127  dst+= my_strxfrm_pad_nweights_unicode(dst, de, nweights);
5128 
5129  my_strxfrm_desc_and_reverse(dst0, dst, flags, 0);
5130 
5131  if ((flags & MY_STRXFRM_PAD_TO_MAXLEN) && dst < de)
5132  dst+= my_strxfrm_pad_unicode(dst, de);
5133  return dst - dst0;
5134 }
5135 
5136 
5137 /*
5138  Store sorting weights using 3 bytes per character.
5139  This function is shared between utf8mb4_bin, utf16_bin, utf32_bin.
5140 */
5141 size_t
5142 my_strnxfrm_unicode_full_bin(const CHARSET_INFO *cs,
5143  uchar *dst, size_t dstlen, uint nweights,
5144  const uchar *src, size_t srclen, uint flags)
5145 {
5146  my_wc_t wc;
5147  uchar *dst0= dst;
5148  uchar *de= dst + dstlen;
5149  const uchar *se = src + srclen;
5150 
5151  LINT_INIT(wc);
5152  DBUG_ASSERT(src);
5153  DBUG_ASSERT(cs->state & MY_CS_BINSORT);
5154 
5155  for ( ; dst < de && nweights; nweights--)
5156  {
5157  int res;
5158  if ((res= cs->cset->mb_wc(cs, &wc, src, se)) <= 0)
5159  break;
5160  src+= res;
5161  *dst++= (uchar) (wc >> 16);
5162  if (dst < de)
5163  {
5164  *dst++= (uchar) ((wc >> 8) & 0xFF);
5165  if (dst < de)
5166  *dst++= (uchar) (wc & 0xFF);
5167  }
5168  }
5169 
5170  if (flags & MY_STRXFRM_PAD_WITH_SPACE)
5171  {
5172  for ( ; dst < de && nweights; nweights--)
5173  {
5174  *dst++= 0x00;
5175  if (dst < de)
5176  {
5177  *dst++= 0x00;
5178  if (dst < de)
5179  *dst++= 0x20;
5180  }
5181  }
5182  }
5183 
5184  my_strxfrm_desc_and_reverse(dst0, dst, flags, 0);
5185 
5186  if (flags & MY_STRXFRM_PAD_TO_MAXLEN)
5187  {
5188  while (dst < de)
5189  {
5190  *dst++= 0x00;
5191  if (dst < de)
5192  {
5193  *dst++= 0x00;
5194  if (dst < de)
5195  *dst++= 0x20;
5196  }
5197  }
5198  }
5199  return dst - dst0;
5200 }
5201 
5202 
5203 size_t
5204 my_strnxfrmlen_unicode_full_bin(const CHARSET_INFO *cs, size_t len)
5205 {
5206  return ((len + 3) / cs->mbmaxlen) * 3;
5207 }
5208 #endif /* HAVE_UNIDATA */
5209 
5210 
5211 #ifdef HAVE_CHARSET_utf8
5212 
5213 /*
5214  We consider bytes with code more than 127 as a letter.
5215  This garantees that word boundaries work fine with regular
5216  expressions. Note, there is no need to mark byte 255 as a
5217  letter, it is illegal byte in UTF8.
5218 */
5219 static uchar ctype_utf8[] = {
5220  0,
5221  32, 32, 32, 32, 32, 32, 32, 32, 32, 40, 40, 40, 40, 40, 32, 32,
5222  32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
5223  72, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
5224  132,132,132,132,132,132,132,132,132,132, 16, 16, 16, 16, 16, 16,
5225  16,129,129,129,129,129,129, 1, 1, 1, 1, 1, 1, 1, 1, 1,
5226  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 16, 16, 16, 16, 16,
5227  16,130,130,130,130,130,130, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5228  2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 16, 16, 16, 16, 32,
5229  3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
5230  3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
5231  3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
5232  3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
5233  3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
5234  3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
5235  3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
5236  3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0
5237 };
5238 
5239 /* The below are taken from usa7 implementation */
5240 
5241 static uchar to_lower_utf8[] = {
5242  0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
5243  16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
5244  32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
5245  48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
5246  64, 97, 98, 99,100,101,102,103,104,105,106,107,108,109,110,111,
5247  112,113,114,115,116,117,118,119,120,121,122, 91, 92, 93, 94, 95,
5248  96, 97, 98, 99,100,101,102,103,104,105,106,107,108,109,110,111,
5249  112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,
5250  128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,
5251  144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,
5252  160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,
5253  176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,
5254  192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,
5255  208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,
5256  224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,
5257  240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255
5258 };
5259 
5260 static uchar to_upper_utf8[] = {
5261  0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
5262  16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
5263  32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
5264  48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
5265  64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
5266  80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
5267  96, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
5268  80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90,123,124,125,126,127,
5269  128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,
5270  144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,
5271  160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,
5272  176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,
5273  192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,
5274  208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,
5275  224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,
5276  240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255
5277 };
5278 
5279 static inline int bincmp(const uchar *s, const uchar *se,
5280  const uchar *t, const uchar *te)
5281 {
5282  int slen= (int) (se-s), tlen= (int) (te-t);
5283  int len= MY_MIN(slen,tlen);
5284  int cmp= memcmp(s,t,len);
5285  return cmp ? cmp : slen-tlen;
5286 }
5287 
5288 
5289 static int my_utf8_uni(const CHARSET_INFO *cs __attribute__((unused)),
5290  my_wc_t * pwc, const uchar *s, const uchar *e)
5291 {
5292  uchar c;
5293 
5294  if (s >= e)
5295  return MY_CS_TOOSMALL;
5296 
5297  c= s[0];
5298  if (c < 0x80)
5299  {
5300  *pwc = c;
5301  return 1;
5302  }
5303  else if (c < 0xc2)
5304  return MY_CS_ILSEQ;
5305  else if (c < 0xe0)
5306  {
5307  if (s+2 > e) /* We need 2 characters */
5308  return MY_CS_TOOSMALL2;
5309 
5310  if (!((s[1] ^ 0x80) < 0x40))
5311  return MY_CS_ILSEQ;
5312 
5313  *pwc = ((my_wc_t) (c & 0x1f) << 6) | (my_wc_t) (s[1] ^ 0x80);
5314  return 2;
5315  }
5316  else if (c < 0xf0)
5317  {
5318  if (s+3 > e) /* We need 3 characters */
5319  return MY_CS_TOOSMALL3;
5320 
5321  if (!((s[1] ^ 0x80) < 0x40 && (s[2] ^ 0x80) < 0x40 &&
5322  (c >= 0xe1 || s[1] >= 0xa0)))
5323  return MY_CS_ILSEQ;
5324 
5325  *pwc = ((my_wc_t) (c & 0x0f) << 12) |
5326  ((my_wc_t) (s[1] ^ 0x80) << 6) |
5327  (my_wc_t) (s[2] ^ 0x80);
5328 
5329  return 3;
5330  }
5331 #ifdef UNICODE_32BIT
5332  else if (c < 0xf8 && sizeof(my_wc_t)*8 >= 32)
5333  {
5334  if (s+4 > e) /* We need 4 characters */
5335  return MY_CS_TOOSMALL4;
5336 
5337  if (!((s[1] ^ 0x80) < 0x40 &&
5338  (s[2] ^ 0x80) < 0x40 &&
5339  (s[3] ^ 0x80) < 0x40 &&
5340  (c >= 0xf1 || s[1] >= 0x90)))
5341  return MY_CS_ILSEQ;
5342 
5343  *pwc = ((my_wc_t) (c & 0x07) << 18) |
5344  ((my_wc_t) (s[1] ^ 0x80) << 12) |
5345  ((my_wc_t) (s[2] ^ 0x80) << 6) |
5346  (my_wc_t) (s[3] ^ 0x80);
5347 
5348  return 4;
5349  }
5350  else if (c < 0xfc && sizeof(my_wc_t)*8 >= 32)
5351  {
5352  if (s+5 >e) /* We need 5 characters */
5353  return MY_CS_TOOSMALL5;
5354 
5355  if (!((s[1] ^ 0x80) < 0x40 &&
5356  (s[2] ^ 0x80) < 0x40 &&
5357  (s[3] ^ 0x80) < 0x40 &&
5358  (s[4] ^ 0x80) < 0x40 &&
5359  (c >= 0xf9 || s[1] >= 0x88)))
5360  return MY_CS_ILSEQ;
5361 
5362  *pwc = ((my_wc_t) (c & 0x03) << 24) |
5363  ((my_wc_t) (s[1] ^ 0x80) << 18) |
5364  ((my_wc_t) (s[2] ^ 0x80) << 12) |
5365  ((my_wc_t) (s[3] ^ 0x80) << 6) |
5366  (my_wc_t) (s[4] ^ 0x80);
5367  return 5;
5368  }
5369  else if (c < 0xfe && sizeof(my_wc_t)*8 >= 32)
5370  {
5371  if ( s+6 >e ) /* We need 6 characters */
5372  return MY_CS_TOOSMALL6;
5373 
5374  if (!((s[1] ^ 0x80) < 0x40 &&
5375  (s[2] ^ 0x80) < 0x40 &&
5376  (s[3] ^ 0x80) < 0x40 &&
5377  (s[4] ^ 0x80) < 0x40 &&
5378  (s[5] ^ 0x80) < 0x40 &&
5379  (c >= 0xfd || s[1] >= 0x84)))
5380  return MY_CS_ILSEQ;
5381 
5382  *pwc = ((my_wc_t) (c & 0x01) << 30)
5383  | ((my_wc_t) (s[1] ^ 0x80) << 24)
5384  | ((my_wc_t) (s[2] ^ 0x80) << 18)
5385  | ((my_wc_t) (s[3] ^ 0x80) << 12)
5386  | ((my_wc_t) (s[4] ^ 0x80) << 6)
5387  | (my_wc_t) (s[5] ^ 0x80);
5388  return 6;
5389  }
5390 #endif
5391  return MY_CS_ILSEQ;
5392 }
5393 
5394 
5395 /*
5396  The same as above, but without range check
5397  for example, for a null-terminated string
5398 */
5399 static int my_utf8_uni_no_range(const CHARSET_INFO *cs
5400  __attribute__((unused)),
5401  my_wc_t * pwc, const uchar *s)
5402 {
5403  uchar c;
5404 
5405  c= s[0];
5406  if (c < 0x80)
5407  {
5408  *pwc = c;
5409  return 1;
5410  }
5411 
5412  if (c < 0xc2)
5413  return MY_CS_ILSEQ;
5414 
5415  if (c < 0xe0)
5416  {
5417  if (!((s[1] ^ 0x80) < 0x40))
5418  return MY_CS_ILSEQ;
5419 
5420  *pwc = ((my_wc_t) (c & 0x1f) << 6) | (my_wc_t) (s[1] ^ 0x80);
5421  return 2;
5422  }
5423 
5424  if (c < 0xf0)
5425  {
5426  if (!((s[1] ^ 0x80) < 0x40 &&
5427  (s[2] ^ 0x80) < 0x40 &&
5428  (c >= 0xe1 || s[1] >= 0xa0)))
5429  return MY_CS_ILSEQ;
5430 
5431  *pwc= ((my_wc_t) (c & 0x0f) << 12) |
5432  ((my_wc_t) (s[1] ^ 0x80) << 6) |
5433  (my_wc_t) (s[2] ^ 0x80);
5434 
5435  return 3;
5436  }
5437  return MY_CS_ILSEQ;
5438 }
5439 
5440 
5441 static int my_uni_utf8 (const CHARSET_INFO *cs __attribute__((unused)),
5442  my_wc_t wc, uchar *r, uchar *e)
5443 {
5444  int count;
5445 
5446  if (r >= e)
5447  return MY_CS_TOOSMALL;
5448 
5449  if (wc < 0x80)
5450  count = 1;
5451  else if (wc < 0x800)
5452  count = 2;
5453  else if (wc < 0x10000)
5454  count = 3;
5455 #ifdef UNICODE_32BIT
5456  else if (wc < 0x200000)
5457  count = 4;
5458  else if (wc < 0x4000000)
5459  count = 5;
5460  else if (wc <= 0x7fffffff)
5461  count = 6;
5462 #endif
5463  else return MY_CS_ILUNI;
5464 
5465  /*
5466  e is a character after the string r, not the last character of it.
5467  Because of it (r+count > e), not (r+count-1 >e )
5468  */
5469  if ( r+count > e )
5470  return MY_CS_TOOSMALLN(count);
5471 
5472  switch (count) {
5473  /* Fall through all cases!!! */
5474 #ifdef UNICODE_32BIT
5475  case 6: r[5] = (uchar) (0x80 | (wc & 0x3f)); wc = wc >> 6; wc |= 0x4000000;
5476  case 5: r[4] = (uchar) (0x80 | (wc & 0x3f)); wc = wc >> 6; wc |= 0x200000;
5477  case 4: r[3] = (uchar) (0x80 | (wc & 0x3f)); wc = wc >> 6; wc |= 0x10000;
5478 #endif
5479  case 3: r[2] = (uchar) (0x80 | (wc & 0x3f)); wc = wc >> 6; wc |= 0x800;
5480  case 2: r[1] = (uchar) (0x80 | (wc & 0x3f)); wc = wc >> 6; wc |= 0xc0;
5481  case 1: r[0] = (uchar) wc;
5482  }
5483  return count;
5484 }
5485 
5486 
5487 /*
5488  The same as above, but without range check.
5489 */
5490 static int my_uni_utf8_no_range(const CHARSET_INFO *cs
5491  __attribute__((unused)),
5492  my_wc_t wc, uchar *r)
5493 {
5494  int count;
5495 
5496  if (wc < 0x80)
5497  count= 1;
5498  else if (wc < 0x800)
5499  count= 2;
5500  else if (wc < 0x10000)
5501  count= 3;
5502  else
5503  return MY_CS_ILUNI;
5504 
5505  switch (count)
5506  {
5507  /* Fall through all cases!!! */
5508  case 3: r[2]= (uchar) (0x80 | (wc & 0x3f)); wc= wc >> 6; wc |= 0x800;
5509  case 2: r[1]= (uchar) (0x80 | (wc & 0x3f)); wc= wc >> 6; wc |= 0xc0;
5510  case 1: r[0]= (uchar) wc;
5511  }
5512  return count;
5513 }
5514 
5515 
5516 static inline void
5517 my_tolower_utf8mb3(MY_UNICASE_INFO *uni_plane, my_wc_t *wc)
5518 {
5520  if ((page= uni_plane->page[(*wc >> 8) & 0xFF]))
5521  *wc= page[*wc & 0xFF].tolower;
5522 }
5523 
5524 
5525 static inline void
5526 my_toupper_utf8mb3(MY_UNICASE_INFO *uni_plane, my_wc_t *wc)
5527 {
5529  if ((page= uni_plane->page[(*wc >> 8) & 0xFF]))
5530  *wc= page[*wc & 0xFF].toupper;
5531 }
5532 
5533 
5534 static inline void
5535 my_tosort_utf8mb3(MY_UNICASE_INFO *uni_plane, my_wc_t *wc)
5536 {
5538  if ((page= uni_plane->page[(*wc >> 8) & 0xFF]))
5539  *wc= page[*wc & 0xFF].sort;
5540 }
5541 
5542 
5543 static size_t
5544 my_caseup_utf8(const CHARSET_INFO *cs, char *src, size_t srclen,
5545  char *dst, size_t dstlen)
5546 {
5547  my_wc_t wc;
5548  int srcres, dstres;
5549  char *srcend= src + srclen, *dstend= dst + dstlen, *dst0= dst;
5550  MY_UNICASE_INFO *uni_plane= cs->caseinfo;
5551  DBUG_ASSERT(src != dst || cs->caseup_multiply == 1);
5552 
5553  while ((src < srcend) &&
5554  (srcres= my_utf8_uni(cs, &wc, (uchar *) src, (uchar*) srcend)) > 0)
5555  {
5556  my_toupper_utf8mb3(uni_plane, &wc);
5557  if ((dstres= my_uni_utf8(cs, wc, (uchar*) dst, (uchar*) dstend)) <= 0)
5558  break;
5559  src+= srcres;
5560  dst+= dstres;
5561  }
5562  return (size_t) (dst - dst0);
5563 }
5564 
5565 
5566 static void my_hash_sort_utf8(const CHARSET_INFO *cs, const uchar *s,
5567  size_t slen, ulong *n1, ulong *n2)
5568 {
5569  my_wc_t wc;
5570  int res;
5571  const uchar *e=s+slen;
5572  MY_UNICASE_INFO *uni_plane= cs->caseinfo;
5573 
5574  /*
5575  Remove end space. We have to do this to be able to compare
5576  'A ' and 'A' as identical
5577  */
5578  while (e > s && e[-1] == ' ')
5579  e--;
5580 
5581  while ((s < e) && (res=my_utf8_uni(cs,&wc, (uchar *)s, (uchar*)e))>0 )
5582  {
5583  my_tosort_unicode(uni_plane, &wc, cs->state);
5584  n1[0]^= (((n1[0] & 63)+n2[0])*(wc & 0xFF))+ (n1[0] << 8);
5585  n2[0]+=3;
5586  n1[0]^= (((n1[0] & 63)+n2[0])*(wc >> 8))+ (n1[0] << 8);
5587  n2[0]+=3;
5588  s+=res;
5589  }
5590 }
5591 
5592 
5593 static size_t my_caseup_str_utf8(const CHARSET_INFO *cs, char *src)
5594 {
5595  my_wc_t wc;
5596  int srcres, dstres;
5597  char *dst= src, *dst0= src;
5598  MY_UNICASE_INFO *uni_plane= cs->caseinfo;
5599  DBUG_ASSERT(cs->caseup_multiply == 1);
5600 
5601  while (*src &&
5602  (srcres= my_utf8_uni_no_range(cs, &wc, (uchar *) src)) > 0)
5603  {
5604  my_toupper_utf8mb3(uni_plane, &wc);
5605  if ((dstres= my_uni_utf8_no_range(cs, wc, (uchar*) dst)) <= 0)
5606  break;
5607  src+= srcres;
5608  dst+= dstres;
5609  }
5610  *dst= '\0';
5611  return (size_t) (dst - dst0);
5612 }
5613 
5614 
5615 static size_t my_casedn_utf8(const CHARSET_INFO *cs, char *src, size_t srclen,
5616  char *dst, size_t dstlen)
5617 {
5618  my_wc_t wc;
5619  int srcres, dstres;
5620  char *srcend= src + srclen, *dstend= dst + dstlen, *dst0= dst;
5621  MY_UNICASE_INFO *uni_plane= cs->caseinfo;
5622  DBUG_ASSERT(src != dst || cs->casedn_multiply == 1);
5623 
5624  while ((src < srcend) &&
5625  (srcres= my_utf8_uni(cs, &wc, (uchar*) src, (uchar*)srcend)) > 0)
5626  {
5627  my_tolower_utf8mb3(uni_plane, &wc);
5628  if ((dstres= my_uni_utf8(cs, wc, (uchar*) dst, (uchar*) dstend)) <= 0)
5629  break;
5630  src+= srcres;
5631  dst+= dstres;
5632  }
5633  return (size_t) (dst - dst0);
5634 }
5635 
5636 
5637 static size_t my_casedn_str_utf8(const CHARSET_INFO *cs, char *src)
5638 {
5639  my_wc_t wc;
5640  int srcres, dstres;
5641  char *dst= src, *dst0= src;
5642  MY_UNICASE_INFO *uni_plane= cs->caseinfo;
5643  DBUG_ASSERT(cs->casedn_multiply == 1);
5644 
5645  while (*src &&
5646  (srcres= my_utf8_uni_no_range(cs, &wc, (uchar *) src)) > 0)
5647  {
5648  my_tolower_utf8mb3(uni_plane, &wc);
5649  if ((dstres= my_uni_utf8_no_range(cs, wc, (uchar*) dst)) <= 0)
5650  break;
5651  src+= srcres;
5652  dst+= dstres;
5653  }
5654 
5655  /*
5656  In rare cases lower string can be shorter than
5657  the original string, for example:
5658 
5659  "U+0130 LATIN CAPITAL LETTER I WITH DOT ABOVE"
5660  (which is 0xC4B0 in utf8, i.e. two bytes)
5661 
5662  is converted into
5663 
5664  "U+0069 LATIN SMALL LETTER I"
5665  (which is 0x69 in utf8, i.e. one byte)
5666 
5667  So, we need to put '\0' terminator after converting.
5668  */
5669 
5670  *dst= '\0';
5671  return (size_t) (dst - dst0);
5672 }
5673 
5674 
5675 static int my_strnncoll_utf8(const CHARSET_INFO *cs,
5676  const uchar *s, size_t slen,
5677  const uchar *t, size_t tlen,
5678  my_bool t_is_prefix)
5679 {
5680  int s_res,t_res;
5681  my_wc_t UNINIT_VAR(s_wc), t_wc;
5682  const uchar *se=s+slen;
5683  const uchar *te=t+tlen;
5684  MY_UNICASE_INFO *uni_plane= cs->caseinfo;
5685 
5686  while ( s < se && t < te )
5687  {
5688  s_res=my_utf8_uni(cs,&s_wc, s, se);
5689  t_res=my_utf8_uni(cs,&t_wc, t, te);
5690 
5691  if ( s_res <= 0 || t_res <= 0 )
5692  {
5693  /* Incorrect string, compare byte by byte value */
5694  return bincmp(s, se, t, te);
5695  }
5696 
5697  my_tosort_unicode(uni_plane, &s_wc, cs->state);
5698  my_tosort_unicode(uni_plane, &t_wc, cs->state);
5699 
5700  if ( s_wc != t_wc )
5701  {
5702  return s_wc > t_wc ? 1 : -1;
5703  }
5704 
5705  s+=s_res;
5706  t+=t_res;
5707  }
5708  return (int) (t_is_prefix ? t-te : ((se-s) - (te-t)));
5709 }
5710 
5711 
5712 
5713 /*
5714  Compare strings, discarding end space
5715 
5716  SYNOPSIS
5717  my_strnncollsp_utf8()
5718  cs character set handler
5719  a First string to compare
5720  a_length Length of 'a'
5721  b Second string to compare
5722  b_length Length of 'b'
5723  diff_if_only_endspace_difference
5724  Set to 1 if the strings should be regarded as different
5725  if they only difference in end space
5726 
5727  IMPLEMENTATION
5728  If one string is shorter as the other, then we space extend the other
5729  so that the strings have equal length.
5730 
5731  This will ensure that the following things hold:
5732 
5733  "a" == "a "
5734  "a\0" < "a"
5735  "a\0" < "a "
5736 
5737  RETURN
5738  < 0 a < b
5739  = 0 a == b
5740  > 0 a > b
5741 */
5742 
5743 static int my_strnncollsp_utf8(const CHARSET_INFO *cs,
5744  const uchar *s, size_t slen,
5745  const uchar *t, size_t tlen,
5746  my_bool diff_if_only_endspace_difference)
5747 {
5748  int s_res, t_res, res;
5749  my_wc_t UNINIT_VAR(s_wc),t_wc;
5750  const uchar *se= s+slen, *te= t+tlen;
5751  MY_UNICASE_INFO *uni_plane= cs->caseinfo;
5752 
5753 #ifndef VARCHAR_WITH_DIFF_ENDSPACE_ARE_DIFFERENT_FOR_UNIQUE
5754  diff_if_only_endspace_difference= 0;
5755 #endif
5756 
5757  while ( s < se && t < te )
5758  {
5759  s_res=my_utf8_uni(cs,&s_wc, s, se);
5760  t_res=my_utf8_uni(cs,&t_wc, t, te);
5761 
5762  if ( s_res <= 0 || t_res <= 0 )
5763  {
5764  /* Incorrect string, compare byte by byte value */
5765  return bincmp(s, se, t, te);
5766  }
5767 
5768  my_tosort_unicode(uni_plane, &s_wc, cs->state);
5769  my_tosort_unicode(uni_plane, &t_wc, cs->state);
5770 
5771  if ( s_wc != t_wc )
5772  {
5773  return s_wc > t_wc ? 1 : -1;
5774  }
5775 
5776  s+=s_res;
5777  t+=t_res;
5778  }
5779 
5780  slen= (size_t) (se-s);
5781  tlen= (size_t) (te-t);
5782  res= 0;
5783 
5784  if (slen != tlen)
5785  {
5786  int swap= 1;
5787  if (diff_if_only_endspace_difference)
5788  res= 1; /* Assume 'a' is bigger */
5789  if (slen < tlen)
5790  {
5791  slen= tlen;
5792  s= t;
5793  se= te;
5794  swap= -1;
5795  res= -res;
5796  }
5797  /*
5798  This following loop uses the fact that in UTF-8
5799  all multibyte characters are greater than space,
5800  and all multibyte head characters are greater than
5801  space. It means if we meet a character greater
5802  than space, it always means that the longer string
5803  is greater. So we can reuse the same loop from the
5804  8bit version, without having to process full multibute
5805  sequences.
5806  */
5807  for ( ; s < se; s++)
5808  {
5809  if (*s != ' ')
5810  return (*s < ' ') ? -swap : swap;
5811  }
5812  }
5813  return res;
5814 }
5815 
5816 
5817 /*
5818  Compare 0-terminated UTF8 strings.
5819 
5820  SYNOPSIS
5821  my_strcasecmp_utf8()
5822  cs character set handler
5823  s First 0-terminated string to compare
5824  t Second 0-terminated string to compare
5825 
5826  IMPLEMENTATION
5827 
5828  RETURN
5829  - negative number if s < t
5830  - positive number if s > t
5831  - 0 is the strings are equal
5832 */
5833 
5834 static
5835 int my_strcasecmp_utf8(const CHARSET_INFO *cs, const char *s, const char *t)
5836 {
5837  MY_UNICASE_INFO *uni_plane= cs->caseinfo;
5838  while (s[0] && t[0])
5839  {
5840  my_wc_t s_wc,t_wc;
5841 
5842  if ((uchar) s[0] < 128)
5843  {
5844  /*
5845  s[0] is between 0 and 127.
5846  It represents a single byte character.
5847  Convert it into weight according to collation.
5848  */
5849  s_wc= plane00[(uchar) s[0]].tolower;
5850  s++;
5851  }
5852  else
5853  {
5854  int res;
5855 
5856  /*
5857  Scan a multibyte character.
5858 
5859  In the future it is worth to write a special version of my_utf8_uni()
5860  for 0-terminated strings which will not take in account length. Now
5861  we call the regular version of my_utf8_uni() with s+3 in the
5862  last argument. s+3 is enough to scan any multibyte sequence.
5863 
5864  Calling the regular version of my_utf8_uni is safe for 0-terminated
5865  strings: we will never lose the end of the string:
5866  If we have 0 character in the middle of a multibyte sequence,
5867  then my_utf8_uni will always return a negative number, so the
5868  loop with finish.
5869  */
5870 
5871  res= my_utf8_uni(cs,&s_wc, (const uchar*)s, (const uchar*) s + 3);
5872 
5873  /*
5874  In the case of wrong multibyte sequence we will
5875  call strcmp() for byte-to-byte comparison.
5876  */
5877  if (res <= 0)
5878  return strcmp(s, t);
5879  s+= res;
5880 
5881  /* Convert Unicode code into weight according to collation */
5882  my_tolower_utf8mb3(uni_plane, &s_wc);
5883  }
5884 
5885 
5886  /* Do the same for the second string */
5887 
5888  if ((uchar) t[0] < 128)
5889  {
5890  /* Convert single byte character into weight */
5891  t_wc= plane00[(uchar) t[0]].tolower;
5892  t++;
5893  }
5894  else
5895  {
5896  int res=my_utf8_uni(cs,&t_wc, (const uchar*)t, (const uchar*) t + 3);
5897  if (res <= 0)
5898  return strcmp(s, t);
5899  t+= res;
5900 
5901  /* Convert code into weight */
5902  my_tolower_utf8mb3(uni_plane, &t_wc);
5903  }
5904 
5905  /* Now we have two weights, let's compare them */
5906  if ( s_wc != t_wc )
5907  return ((int) s_wc) - ((int) t_wc);
5908  }
5909  return ((int)(uchar)s[0]) - ((int) (uchar) t[0]);
5910 }
5911 
5912 
5913 static
5914 int my_wildcmp_utf8(const CHARSET_INFO *cs,
5915  const char *str,const char *str_end,
5916  const char *wildstr,const char *wildend,
5917  int escape, int w_one, int w_many)
5918 {
5919  MY_UNICASE_INFO *uni_plane= cs->caseinfo;
5920  return my_wildcmp_unicode(cs,str,str_end,wildstr,wildend,
5921  escape,w_one,w_many,uni_plane);
5922 }
5923 
5924 
5925 static
5926 size_t my_strnxfrmlen_utf8(const CHARSET_INFO *cs __attribute__((unused)),
5927  size_t len)
5928 {
5929  return (len * 2 + 2) / 3;
5930 }
5931 
5932 
5933 static uint my_ismbchar_utf8(const CHARSET_INFO *cs, const char *b,
5934  const char *e)
5935 {
5936  my_wc_t wc;
5937  int res= my_utf8_uni(cs,&wc, (const uchar*)b, (const uchar*)e);
5938  return (res>1) ? res : 0;
5939 }
5940 
5941 static uint my_mbcharlen_utf8(const CHARSET_INFO *cs __attribute__((unused)),
5942  uint c)
5943 {
5944  if (c < 0x80)
5945  return 1;
5946  else if (c < 0xc2)
5947  return 0; /* Illegal mb head */
5948  else if (c < 0xe0)
5949  return 2;
5950  else if (c < 0xf0)
5951  return 3;
5952 #ifdef UNICODE_32BIT
5953  else if (c < 0xf8)
5954  return 4;
5955  else if (c < 0xfc)
5956  return 5;
5957  else if (c < 0xfe)
5958  return 6;
5959 #endif
5960  return 0; /* Illegal mb head */;
5961 }
5962 
5963 
5964 static MY_COLLATION_HANDLER my_collation_utf8_general_ci_handler =
5965 {
5966  NULL, /* init */
5967  my_strnncoll_utf8,
5968  my_strnncollsp_utf8,
5969  my_strnxfrm_unicode,
5970  my_strnxfrmlen_utf8,
5971  my_like_range_mb,
5972  my_wildcmp_utf8,
5973  my_strcasecmp_utf8,
5974  my_instr_mb,
5975  my_hash_sort_utf8,
5976  my_propagate_complex
5977 };
5978 
5979 
5980 static MY_COLLATION_HANDLER my_collation_utf8_bin_handler =
5981 {
5982  NULL, /* init */
5983  my_strnncoll_mb_bin,
5984  my_strnncollsp_mb_bin,
5985  my_strnxfrm_unicode,
5986  my_strnxfrmlen_utf8,
5987  my_like_range_mb,
5988  my_wildcmp_mb_bin,
5989  my_strcasecmp_mb_bin,
5990  my_instr_mb,
5991  my_hash_sort_mb_bin,
5992  my_propagate_simple
5993 };
5994 
5995 MY_CHARSET_HANDLER my_charset_utf8_handler=
5996 {
5997  NULL, /* init */
5998  my_ismbchar_utf8,
5999  my_mbcharlen_utf8,
6000  my_numchars_mb,
6001  my_charpos_mb,
6002  my_well_formed_len_mb,
6003  my_lengthsp_8bit,
6004  my_numcells_mb,
6005  my_utf8_uni,
6006  my_uni_utf8,
6007  my_mb_ctype_mb,
6008  my_caseup_str_utf8,
6009  my_casedn_str_utf8,
6010  my_caseup_utf8,
6011  my_casedn_utf8,
6012  my_snprintf_8bit,
6013  my_long10_to_str_8bit,
6014  my_longlong10_to_str_8bit,
6015  my_fill_8bit,
6016  my_strntol_8bit,
6017  my_strntoul_8bit,
6018  my_strntoll_8bit,
6019  my_strntoull_8bit,
6020  my_strntod_8bit,
6021  my_strtoll10_8bit,
6022  my_strntoull10rnd_8bit,
6023  my_scan_8bit
6024 };
6025 
6026 
6027 
6028 CHARSET_INFO my_charset_utf8_general_ci=
6029 {
6030  33,0,0, /* number */
6031  MY_CS_COMPILED|MY_CS_PRIMARY|MY_CS_STRNXFRM|MY_CS_UNICODE, /* state */
6032  "utf8", /* cs name */
6033  "utf8_general_ci", /* name */
6034  "", /* comment */
6035  NULL, /* tailoring */
6036  ctype_utf8, /* ctype */
6037  to_lower_utf8, /* to_lower */
6038  to_upper_utf8, /* to_upper */
6039  to_upper_utf8, /* sort_order */
6040  NULL, /* uca */
6041  NULL, /* tab_to_uni */
6042  NULL, /* tab_from_uni */
6043  &my_unicase_default,/* caseinfo */
6044  NULL, /* state_map */
6045  NULL, /* ident_map */
6046  1, /* strxfrm_multiply */
6047  1, /* caseup_multiply */
6048  1, /* casedn_multiply */
6049  1, /* mbminlen */
6050  3, /* mbmaxlen */
6051  0, /* min_sort_char */
6052  0xFFFF, /* max_sort_char */
6053  ' ', /* pad char */
6054  0, /* escape_with_backslash_is_dangerous */
6055  1, /* levels_for_compare */
6056  1, /* levels_for_order */
6057  &my_charset_utf8_handler,
6058  &my_collation_utf8_general_ci_handler
6059 };
6060 
6061 
6062 CHARSET_INFO my_charset_utf8_tolower_ci=
6063 {
6064  56,0,0, /* number */
6065  MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_LOWER_SORT,
6066  "utf8", /* cs name */
6067  "utf8_tolower_ci", /* name */
6068  "", /* comment */
6069  NULL, /* tailoring */
6070  ctype_utf8, /* ctype */
6071  to_lower_utf8, /* to_lower */
6072  to_upper_utf8, /* to_upper */
6073  to_upper_utf8, /* sort_order */
6074  NULL, /* uca */
6075  NULL, /* tab_to_uni */
6076  NULL, /* tab_from_uni */
6077  &my_unicase_default,/* caseinfo */
6078  NULL, /* state_map */
6079  NULL, /* ident_map */
6080  1, /* strxfrm_multiply */
6081  1, /* caseup_multiply */
6082  1, /* casedn_multiply */
6083  1, /* mbminlen */
6084  3, /* mbmaxlen */
6085  0, /* min_sort_char */
6086  0xFFFF, /* max_sort_char */
6087  ' ', /* pad char */
6088  0, /* escape_with_backslash_is_dangerous */
6089  1, /* levels_for_compare */
6090  1, /* levels_for_order */
6091  &my_charset_utf8_handler,
6092  &my_collation_utf8_general_ci_handler
6093 };
6094 
6095 
6096 CHARSET_INFO my_charset_utf8_general_mysql500_ci=
6097 {
6098  223,0,0, /* number */
6099  MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_UNICODE, /* state */
6100  "utf8", /* cs name */
6101  "utf8_general_mysql500_ci", /* name */
6102  "", /* comment */
6103  NULL, /* tailoring */
6104  ctype_utf8, /* ctype */
6105  to_lower_utf8, /* to_lower */
6106  to_upper_utf8, /* to_upper */
6107  to_upper_utf8, /* sort_order */
6108  NULL, /* uca */
6109  NULL, /* tab_to_uni */
6110  NULL, /* tab_from_uni */
6111  &my_unicase_mysql500, /* caseinfo */
6112  NULL, /* state_map */
6113  NULL, /* ident_map */
6114  1, /* strxfrm_multiply */
6115  1, /* caseup_multiply */
6116  1, /* casedn_multiply */
6117  1, /* mbminlen */
6118  3, /* mbmaxlen */
6119  0, /* min_sort_char */
6120  0xFFFF, /* max_sort_char */
6121  ' ', /* pad char */
6122  0, /* escape_with_backslash_is_dangerous */
6123  1, /* levels_for_compare */
6124  1, /* levels_for_order */
6125  &my_charset_utf8_handler,
6126  &my_collation_utf8_general_ci_handler
6127 };
6128 
6129 
6130 CHARSET_INFO my_charset_utf8_bin=
6131 {
6132  83,0,0, /* number */
6133  MY_CS_COMPILED|MY_CS_BINSORT|MY_CS_UNICODE, /* state */
6134  "utf8", /* cs name */
6135  "utf8_bin", /* name */
6136  "", /* comment */
6137  NULL, /* tailoring */
6138  ctype_utf8, /* ctype */
6139  to_lower_utf8, /* to_lower */
6140  to_upper_utf8, /* to_upper */
6141  NULL, /* sort_order */
6142  NULL, /* uca */
6143  NULL, /* tab_to_uni */
6144  NULL, /* tab_from_uni */
6145  &my_unicase_default,/* caseinfo */
6146  NULL, /* state_map */
6147  NULL, /* ident_map */
6148  1, /* strxfrm_multiply */
6149  1, /* caseup_multiply */
6150  1, /* casedn_multiply */
6151  1, /* mbminlen */
6152  3, /* mbmaxlen */
6153  0, /* min_sort_char */
6154  0xFFFF, /* max_sort_char */
6155  ' ', /* pad char */
6156  0, /* escape_with_backslash_is_dangerous */
6157  1, /* levels_for_compare */
6158  1, /* levels_for_order */
6159  &my_charset_utf8_handler,
6160  &my_collation_utf8_bin_handler
6161 };
6162 
6163 #ifdef HAVE_UTF8_GENERAL_CS
6164 
6165 /*
6166  * These functions bacically do the same as their original, except
6167  * that they return 0 only when two comparing unicode strings are
6168  * strictly the same in case-sensitive way. See "save_diff" local
6169  * variable to what they actually do.
6170  */
6171 
6172 static int my_strnncoll_utf8_cs(const CHARSET_INFO *cs,
6173  const uchar *s, size_t slen,
6174  const uchar *t, size_t tlen,
6175  my_bool t_is_prefix)
6176 {
6177  int s_res,t_res;
6178  my_wc_t s_wc,t_wc;
6179  const uchar *se=s+slen;
6180  const uchar *te=t+tlen;
6181  int save_diff = 0;
6182  int diff;
6183  MY_UNICASE_INFO *uni_plane= cs->caseinfo;
6184 
6185  while ( s < se && t < te )
6186  {
6187  s_res=my_utf8_uni(cs,&s_wc, s, se);
6188  t_res=my_utf8_uni(cs,&t_wc, t, te);
6189 
6190  if ( s_res <= 0 || t_res <= 0 )
6191 
6192  {
6193  /* Incorrect string, compare by char value */
6194  return ((int)s[0]-(int)t[0]);
6195  }
6196 
6197  if ( save_diff == 0 )
6198  {
6199  save_diff = ((int)s_wc) - ((int)t_wc);
6200  }
6201 
6202  my_tosort_unicode(uni_plane, &s_wc, cs->state);
6203  my_tosort_unicode(uni_plane, &t_wc, cs->state);
6204 
6205  if ( s_wc != t_wc )
6206  {
6207  return ((int) s_wc) - ((int) t_wc);
6208  }
6209 
6210  s+=s_res;
6211  t+=t_res;
6212  }
6213  diff = ( (se-s) - (te-t) );
6214  return t_is_prefix ? t-te : ((diff == 0) ? save_diff : diff);
6215 }
6216 
6217 static int my_strnncollsp_utf8_cs(const CHARSET_INFO *cs,
6218  const uchar *s, size_t slen,
6219  const uchar *t, size_t tlen,
6220  my_bool diff_if_only_endspace_difference)
6221 {
6222  int s_res, t_res, res;
6223  my_wc_t s_wc, t_wc;
6224  const uchar *se= s + slen;
6225  const uchar *te= t + tlen;
6226  int save_diff= 0;
6227  MY_UNICASE_INFO *uni_plane= cs->caseinfo;
6228 
6229 #ifndef VARCHAR_WITH_DIFF_ENDSPACE_ARE_DIFFERENT_FOR_UNIQUE
6230  diff_if_only_endspace_difference= 0;
6231 #endif
6232 
6233  while ( s < se && t < te )
6234  {
6235  s_res=my_utf8_uni(cs,&s_wc, s, se);
6236  t_res=my_utf8_uni(cs,&t_wc, t, te);
6237 
6238  if ( s_res <= 0 || t_res <= 0 )
6239  {
6240  /* Incorrect string, compare by char value */
6241  return ((int)s[0]-(int)t[0]);
6242  }
6243 
6244  if ( save_diff == 0 )
6245  {
6246  save_diff = ((int)s_wc) - ((int)t_wc);
6247  }
6248 
6249  my_tosort_unicode(uni_plane, &s_wc, cs->state);
6250  my_tosort_unicode(uni_plane, &t_wc, cs->state);
6251 
6252  if ( s_wc != t_wc )
6253  {
6254  return ((int) s_wc) - ((int) t_wc);
6255  }
6256 
6257  s+=s_res;
6258  t+=t_res;
6259  }
6260 
6261  slen= se-s;
6262  tlen= te-t;
6263  res= 0;
6264 
6265  if (slen != tlen)
6266  {
6267  int swap= 1;
6268  if (diff_if_only_endspace_difference)
6269  res= 1; /* Assume 'a' is bigger */
6270  if (slen < tlen)
6271  {
6272  slen= tlen;
6273  s= t;
6274  se= te;
6275  swap= -1;
6276  res= -res;
6277  }
6278  /*
6279  This following loop uses the fact that in UTF-8
6280  all multibyte characters are greater than space,
6281  and all multibyte head characters are greater than
6282  space. It means if we meet a character greater
6283  than space, it always means that the longer string
6284  is greater. So we can reuse the same loop from the
6285  8bit version, without having to process full multibute
6286  sequences.
6287  */
6288  for ( ; s < se; s++)
6289  {
6290  if (*s != (uchar) ' ')
6291  return (*s < (uchar) ' ') ? -swap : swap;
6292  }
6293  }
6294  return save_diff;
6295 }
6296 
6297 static MY_COLLATION_HANDLER my_collation_cs_handler =
6298 {
6299  NULL, /* init */
6300  my_strnncoll_utf8_cs,
6301  my_strnncollsp_utf8_cs,
6302  my_strnxfrm_unicode,
6303  my_strnxfrmlen_utf8,
6304  my_like_range_simple,
6305  my_wildcmp_mb,
6306  my_strcasecmp_utf8,
6307  my_instr_mb,
6308  my_hash_sort_utf8,
6309  my_propagate_simple
6310 };
6311 
6312 CHARSET_INFO my_charset_utf8_general_cs=
6313 {
6314  254,0,0, /* number */
6315  MY_CS_COMPILED|MY_CS_UNICODE, /* state */
6316  "utf8", /* cs name */
6317  "utf8_general_cs", /* name */
6318  "", /* comment */
6319  NULL, /* tailoring */
6320  ctype_utf8, /* ctype */
6321  to_lower_utf8, /* to_lower */
6322  to_upper_utf8, /* to_upper */
6323  to_upper_utf8, /* sort_order */
6324  NULL, /* uca */
6325  NULL, /* tab_to_uni */
6326  NULL, /* tab_from_uni */
6327  &my_unicase_default,/* caseinfo */
6328  NULL, /* state_map */
6329  NULL, /* ident_map */
6330  1, /* strxfrm_multiply */
6331  1, /* caseup_multiply */
6332  1, /* casedn_multiply */
6333  1, /* mbminlen */
6334  3, /* mbmaxlen */
6335  0, /* min_sort_char */
6336  255, /* max_sort_char */
6337  ' ', /* pad char */
6338  0, /* escape_with_backslash_is_dangerous */
6339  1, /* levels_for_compare */
6340  1, /* levels_for_order */
6341  &my_charset_utf8_handler,
6342  &my_collation_cs_handler
6343 };
6344 #endif /* Cybozu Hack */
6345 
6346 
6347 /*
6348  File system encoding components:
6349 
6350 Code range Pattern Number Used Unused Blocks
6351 -----------------------------------------------------------------------------
6352 00C0..017F [.][0..4][g..z] 5*20= 100 97 3 Latin1 Supplement + Ext A
6353 0370..03FF [.][5..9][g..z] 5*20= 100 88 12 Greek + Coptic
6354 0400..052F [.][g..z][0..6] 20*7= 140 140 137 Cyrillic
6355 0530..058F [.][g..z][7..8] 20*2= 40 38 2 Armenian
6356 2160..217F [.][g..z][9] 20*1= 20 16 4 Number Forms
6357 0180..02AF [.][g..z][a..k] 28*11=220 203 17 Latin Ext B + IPA
6358 1E00..0EFF [.][g..z][l..r] 20*7= 140 136 4 Latin Additional Extended
6359 1F00..1FFF [.][g..z][s..z] 20*8= 160 144 16 Greek Extended
6360 .... .... [.][a..f][g..z] 6*20= 120 0 120 RESERVED
6361 24B6..24E9 [.][@][a..z] 26 26 0 Enclosed Alphanumerics
6362 FF21..FF5A [.][a..z][@] 26 26 0 Full Width forms
6363 
6364 All other characters are encoded using five bytes:
6365 
6366 [.][0..9a..z][0..9a..z][0..9a..z][0..9a..z]
6367 
6368 */
6369 
6370 
6371 static uint16 touni[5994]=
6372 {
6373  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6374  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6375  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x00C0,
6376  0x00C1,0x00C2,0x00C3,0x00C4,0x00C5,0x00C6,0x00C7,0x00C8,
6377  0x00C9,0x00CA,0x00CB,0x00CC,0x00CD,0x00CE,0x00CF,0x00D0,
6378  0x00D1,0x00D2,0x00D3,0x0000,0x0000,0x0000,0x0000,0x0000,
6379  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x00E0,
6380  0x00E1,0x00E2,0x00E3,0x00E4,0x00E5,0x00E6,0x00E7,0x00E8,
6381  0x00E9,0x00EA,0x00EB,0x00EC,0x00ED,0x00EE,0x00EF,0x00F0,
6382  0x00F1,0x00F2,0x00F3,0x0000,0x0000,0x0000,0x0000,0x0000,
6383  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6384  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6385  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x00D4,
6386  0x00D5,0x00D6,0x0000,0x00D8,0x00D9,0x00DA,0x00DB,0x00DC,
6387  0x00DD,0x00DE,0x0178,0x0100,0x0102,0x0104,0x0106,0x0108,
6388  0x010A,0x010C,0x010E,0x0000,0x0000,0x0000,0x0000,0x0000,
6389  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x00F4,
6390  0x00F5,0x00F6,0x00DF,0x00F8,0x00F9,0x00FA,0x00FB,0x00FC,
6391  0x00FD,0x00FE,0x00FF,0x0101,0x0103,0x0105,0x0107,0x0109,
6392  0x010B,0x010D,0x010F,0x0000,0x0000,0x0000,0x0000,0x0000,
6393  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6394  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6395  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0110,
6396  0x0112,0x0114,0x0116,0x0118,0x011A,0x011C,0x011E,0x0120,
6397  0x0122,0x0124,0x0126,0x0128,0x012A,0x012C,0x012E,0x0000,
6398  0x0132,0x0134,0x0136,0x0000,0x0000,0x0000,0x0000,0x0000,
6399  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0111,
6400  0x0113,0x0115,0x0117,0x0119,0x011B,0x011D,0x011F,0x0121,
6401  0x0123,0x0125,0x0127,0x0129,0x012B,0x012D,0x012F,0x0131,
6402  0x0133,0x0135,0x0137,0x0000,0x0000,0x0000,0x0000,0x0000,
6403  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6404  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6405  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6406  0x0139,0x013B,0x013D,0x013F,0x0141,0x0143,0x0145,0x0147,
6407  0x0000,0x014A,0x014C,0x014E,0x0150,0x0152,0x0154,0x0156,
6408  0x0158,0x015A,0x015C,0x0000,0x0000,0x0000,0x0000,0x0000,
6409  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0138,
6410  0x013A,0x013C,0x013E,0x0140,0x0142,0x0144,0x0146,0x0148,
6411  0x0149,0x014B,0x014D,0x014F,0x0151,0x0153,0x0155,0x0157,
6412  0x0159,0x015B,0x015D,0x0000,0x0000,0x0000,0x0000,0x0000,
6413  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6414  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6415  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x015E,
6416  0x0160,0x0162,0x0164,0x0166,0x0168,0x016A,0x016C,0x016E,
6417  0x0170,0x0172,0x0174,0x0176,0x0179,0x017B,0x017D,0x0000,
6418  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6419  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x015F,
6420  0x0161,0x0163,0x0165,0x0167,0x0169,0x016B,0x016D,0x016F,
6421  0x0171,0x0173,0x0175,0x0177,0x017A,0x017C,0x017E,0x017F,
6422  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6423  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6424  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6425  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6426  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6427  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6428  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6429  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6430  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6431  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6432  0x0000,0x0390,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6433  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6434  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6435  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0386,
6436  0x0388,0x0389,0x038A,0x0000,0x0391,0x0000,0x0393,0x0394,
6437  0x0395,0x0396,0x0397,0x0000,0x0399,0x0000,0x039B,0x039C,
6438  0x039D,0x039E,0x039F,0x0000,0x0000,0x0000,0x0000,0x0000,
6439  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x03AC,
6440  0x03AD,0x03AE,0x03AF,0x03B0,0x03B1,0x03B2,0x03B3,0x03B4,
6441  0x03B5,0x03B6,0x03B7,0x03B8,0x03B9,0x03BA,0x03BB,0x03BC,
6442  0x03BD,0x03BE,0x03BF,0x0000,0x0000,0x0000,0x0000,0x0000,
6443  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6444  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6445  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6446  0x03A1,0x0000,0x0000,0x03A4,0x03A5,0x0000,0x03A7,0x03A8,
6447  0x03A9,0x03AA,0x03AB,0x038C,0x038E,0x038F,0x0000,0x0392,
6448  0x0398,0x03D2,0x03D3,0x0000,0x0000,0x0000,0x0000,0x0000,
6449  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x03C0,
6450  0x03C1,0x03C2,0x03C3,0x03C4,0x03C5,0x03C6,0x03C7,0x03C8,
6451  0x03C9,0x03CA,0x03CB,0x03CC,0x03CD,0x03CE,0x0000,0x03D0,
6452  0x03D1,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6453  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6454  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6455  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x03D4,
6456  0x03A6,0x03A0,0x0000,0x0000,0x03DA,0x03DC,0x03DE,0x03E0,
6457  0x03E2,0x03E4,0x03E6,0x03E8,0x03EA,0x03EC,0x03EE,0x039A,
6458  0x0000,0x03A3,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6459  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6460  0x03D5,0x03D6,0x03D7,0x03D9,0x03DB,0x03DD,0x03DF,0x03E1,
6461  0x03E3,0x03E5,0x03E7,0x03E9,0x03EB,0x03ED,0x03EF,0x03F0,
6462  0x03F1,0x03F2,0x03F3,0x0000,0x0000,0x0000,0x0000,0x0000,
6463  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6464  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6465  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6466  0x0000,0x0000,0x0000,0x0000,0x03FD,0x03FE,0x03FF,0x0000,
6467  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6468  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6469  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x03F5,
6470  0x03F6,0x03F8,0x03FB,0x03FC,0x0000,0x0000,0x0000,0x0000,
6471  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6472  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6473  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6474  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6475  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6476  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6477  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6478  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6479  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6480  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6481  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6482  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6483  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6484  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6485  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6486  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6487  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6488  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6489  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6490  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6491  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6492  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6493  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6494  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6495  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6496  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6497  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6498  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6499  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6500  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6501  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6502  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6503  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6504  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6505  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6506  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6507  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6508  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6509  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6510  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6511  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6512  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6513  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6514  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6515  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6516  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6517  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6518  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6519  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6520  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6521  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6522  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6523  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6524  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6525  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6526  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6527  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6528  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6529  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6530  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6531  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6532  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6533  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6534  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6535  0x0000,0x24B6,0x24B7,0x24B8,0x24B9,0x24BA,0x24BB,0x24BC,
6536  0x24BD,0x24BE,0x24BF,0x24C0,0x24C1,0x24C2,0x24C3,0x24C4,
6537  0x24C5,0x24C6,0x24C7,0x24C8,0x24C9,0x24CA,0x24CB,0x24CC,
6538  0x24CD,0x24CE,0x24CF,0x0000,0x0000,0x0000,0x0000,0x0000,
6539  0x0000,0x24D0,0x24D1,0x24D2,0x24D3,0x24D4,0x24D5,0x24D6,
6540  0x24D7,0x24D8,0x24D9,0x24DA,0x24DB,0x24DC,0x24DD,0x24DE,
6541  0x24DF,0x24E0,0x24E1,0x24E2,0x24E3,0x24E4,0x24E5,0x24E6,
6542  0x24E7,0x24E8,0x24E9,0x0000,0x0000,0x0000,0x0000,0x0000,
6543  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6544  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6545  0xFF21,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6546  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6547  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6548  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6549  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6550  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6551  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6552  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6553  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6554  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6555  0xFF22,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6556  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6557  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6558  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6559  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6560  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6561  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6562  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6563  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6564  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6565  0xFF23,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6566  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6567  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6568  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6569  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6570  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6571  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6572  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6573  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6574  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6575  0xFF24,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6576  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6577  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6578  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6579  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6580  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6581  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6582  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6583  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6584  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6585  0xFF25,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6586  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6587  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6588  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6589  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6590  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6591  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6592  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6593  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6594  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6595  0xFF26,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6596  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6597  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6598  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6599  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6600  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6601  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6602  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6603  0x0410,0x0424,0x0408,0x0478,0x04A6,0x04CD,0x04F4,0x0000,
6604  0x0544,0x2160,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6605  0xFF27,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6606  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6607  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6608  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6609  0x0000,0x0000,0x01B3,0x01DE,0x0208,0x0230,0x0000,0x0000,
6610  0x0000,0x0000,0x0000,0x0000,0x1E00,0x1E28,0x1E50,0x1E78,
6611  0x1E60,0x1EBE,0x1EE6,0x1F08,0x1F2A,0x0000,0x1F6C,0x1F88,
6612  0x1FAC,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6613  0x0411,0x0425,0x0409,0x047A,0x04A8,0x0000,0x04F6,0x0531,
6614  0x0545,0x2161,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6615  0xFF28,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6616  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6617  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6618  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6619  0x0000,0x0182,0x01B5,0x01E0,0x020A,0x0232,0x0000,0x0000,
6620  0x019D,0x0000,0x0000,0x0000,0x1E02,0x1E2A,0x1E52,0x1E7A,
6621  0x0000,0x1EC0,0x1EE8,0x1F09,0x1F2B,0x0000,0x1F6D,0x1F89,
6622  0x1FAD,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6623  0x0412,0x0426,0x040A,0x047C,0x04AA,0x04D0,0x04F8,0x0532,
6624  0x0546,0x2162,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6625  0xFF29,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6626  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6627  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6628  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6629  0x0000,0x0184,0x01B8,0x01E2,0x020C,0x0000,0x0000,0x0000,
6630  0x0000,0x0000,0x0000,0x0000,0x1E04,0x1E2C,0x1E54,0x1E7C,
6631  0x0000,0x1EC2,0x1EEA,0x1F0A,0x1F2C,0x0000,0x1F6E,0x1F8A,
6632  0x1FAE,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6633  0x0413,0x0427,0x040B,0x047E,0x04AC,0x04D2,0x0000,0x0533,
6634  0x0547,0x2163,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6635  0xFF2A,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6636  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6637  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6638  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6639  0x0000,0x0187,0x0000,0x01E4,0x020E,0x0000,0x0000,0x0193,
6640  0x0000,0x01AE,0x0000,0x0000,0x1E06,0x1E2E,0x1E56,0x1E7E,
6641  0x0000,0x1EC4,0x1EEC,0x1F0B,0x1F2D,0x0000,0x1F6F,0x1F8B,
6642  0x1FAF,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6643  0x0414,0x0428,0x040C,0x0480,0x04AE,0x04D4,0x0000,0x0534,
6644  0x0548,0x2164,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6645  0xFF2B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6646  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6647  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6648  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6649  0x0000,0x018B,0x0000,0x01E6,0x0210,0x0000,0x0000,0x0000,
6650  0x019F,0x0000,0x0000,0x0000,0x1E08,0x1E30,0x1E58,0x1E80,
6651  0x0000,0x1EC6,0x1EEE,0x1F0C,0x1F2E,0x0000,0x1FBA,0x1F8C,
6652  0x1FB8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6653  0x0415,0x0429,0x040D,0x0000,0x04B0,0x04D6,0x0000,0x0535,
6654  0x0549,0x2165,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6655  0xFF2C,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6656  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6657  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6658  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6659  0x0000,0x0000,0x0000,0x01E8,0x0212,0x0000,0x0000,0x0000,
6660  0x0000,0x01B1,0x0000,0x0000,0x1E0A,0x1E32,0x1E5A,0x1E82,
6661  0x1EA0,0x1EC8,0x1EF0,0x1F0D,0x1F2F,0x1F59,0x1FBB,0x1F8D,
6662  0x1FB9,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6663  0x0416,0x042A,0x040E,0x048A,0x04B2,0x04D8,0x0000,0x0536,
6664  0x054A,0x2166,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6665  0xFF2D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6666  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6667  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6668  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6669  0x0000,0x0191,0x0000,0x01EA,0x0214,0x0000,0x0000,0x0194,
6670  0x0000,0x01B2,0x0000,0x0000,0x1E0C,0x1E34,0x1E5C,0x1E84,
6671  0x1EA2,0x1ECA,0x1EF2,0x1F0E,0x1F38,0x0000,0x1FC8,0x1F8E,
6672  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6673  0x0417,0x042B,0x040F,0x048C,0x04B4,0x04DA,0x0000,0x0537,
6674  0x054B,0x2167,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6675  0xFF2E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6676  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6677  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6678  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6679  0x0000,0x01F6,0x01BC,0x01EC,0x0216,0x0000,0x0000,0x0000,
6680  0x0000,0x0000,0x0000,0x0000,0x1E0E,0x1E36,0x1E5E,0x1E86,
6681  0x1EA4,0x1ECC,0x1EF4,0x1F0F,0x1F39,0x1F5B,0x1FC9,0x1F8F,
6682  0x1FBC,0x1FE8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6683  0x0418,0x042C,0x0460,0x048E,0x04B6,0x04DC,0x0000,0x0538,
6684  0x054C,0x2168,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6685  0xFF2F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6686  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6687  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6688  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6689  0x0000,0x0198,0x01C4,0x01EE,0x0218,0x023A,0x0000,0x0000,
6690  0x0000,0x0000,0x0000,0x0000,0x1E10,0x1E38,0x0000,0x1E88,
6691  0x1EA6,0x1ECE,0x1EF6,0x1F18,0x1F3A,0x0000,0x1FCA,0x1F98,
6692  0x0000,0x1FE9,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6693  0x0419,0x042D,0x0462,0x0490,0x04B8,0x04DE,0x0500,0x0539,
6694  0x054D,0x2169,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6695  0xFF30,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6696  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6697  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6698  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6699  0x0000,0x023D,0x01C7,0x0000,0x021A,0x023B,0x0000,0x0000,
6700  0x0000,0x0000,0x0000,0x0000,0x1E12,0x1E3A,0x1E62,0x1E8A,
6701  0x1EA8,0x1ED0,0x1EF8,0x1F19,0x1F3B,0x1F5D,0x1FCB,0x1F99,
6702  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6703  0x041A,0x042E,0x0464,0x0492,0x04BA,0x04E0,0x0502,0x053A,
6704  0x054E,0x216A,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6705  0xFF31,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6706  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6707  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6708  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6709  0x0000,0x0000,0x01CA,0x01F1,0x021C,0x023E,0x0181,0x0000,
6710  0x0000,0x0000,0x0000,0x0000,0x1E14,0x1E3C,0x1E64,0x1E8C,
6711  0x1EAA,0x1ED2,0x0000,0x1F1A,0x1F3C,0x0000,0x1FDA,0x1F9A,
6712  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6713  0x041B,0x042F,0x0466,0x0494,0x04BC,0x04E2,0x0504,0x053B,
6714  0x054F,0x216B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6715  0xFF32,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6716  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6717  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6718  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6719  0x0000,0x0220,0x01CD,0x01F4,0x021E,0x0000,0x0186,0x0197,
6720  0x0000,0x0000,0x0000,0x0000,0x1E16,0x1E3E,0x1E66,0x1E8E,
6721  0x1EAC,0x1ED4,0x0000,0x1F1B,0x1F3D,0x1F5F,0x1FDB,0x1F9B,
6722  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6723  0x041C,0x0400,0x0468,0x0496,0x04BE,0x04E4,0x0506,0x053C,
6724  0x0550,0x216C,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6725  0xFF33,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6726  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6727  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6728  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6729  0x0000,0x01A0,0x01CF,0x01F8,0x0000,0x0000,0x0000,0x0196,
6730  0x0000,0x0000,0x0000,0x0000,0x1E18,0x1E40,0x1E68,0x1E90,
6731  0x1EAE,0x1ED6,0x0000,0x1F1C,0x1F3E,0x0000,0x1FF8,0x1F9C,
6732  0x0000,0x1FEC,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6733  0x041D,0x0401,0x046A,0x0498,0x04C0,0x04E6,0x0508,0x053D,
6734  0x0551,0x216D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6735  0xFF34,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6736  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6737  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6738  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6739  0x0000,0x01A2,0x01D1,0x01FA,0x0222,0x0000,0x0189,0x0000,
6740  0x0000,0x01B7,0x0000,0x0000,0x1E1A,0x1E42,0x1E6A,0x1E92,
6741  0x1EB0,0x1ED8,0x0000,0x1F1D,0x1F3F,0x0000,0x1FF9,0x1F9D,
6742  0x1FCC,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6743  0x041E,0x0402,0x046C,0x049A,0x04C1,0x04E8,0x050A,0x053E,
6744  0x0552,0x216E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6745  0xFF35,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6746  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6747  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6748  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6749  0x0000,0x01A4,0x01D3,0x01FC,0x0224,0x0000,0x018A,0x0000,
6750  0x0000,0x0000,0x0000,0x0000,0x1E1C,0x1E44,0x1E6C,0x1E94,
6751  0x1EB2,0x1EDA,0x0000,0x0000,0x1F48,0x0000,0x1FEA,0x1F9E,
6752  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6753  0x041F,0x0403,0x046E,0x049C,0x04C3,0x04EA,0x050C,0x053F,
6754  0x0553,0x216F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6755  0xFF36,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6756  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6757  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6758  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6759  0x0000,0x01A7,0x01D5,0x01FE,0x0226,0x0000,0x0000,0x0000,
6760  0x01A6,0x0241,0x0000,0x0000,0x1E1E,0x1E46,0x1E6E,0x0000,
6761  0x1EB4,0x1EDC,0x0000,0x0000,0x1F49,0x0000,0x1FEB,0x1F9F,
6762  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6763  0x0420,0x0404,0x0470,0x049E,0x04C5,0x04EC,0x050E,0x0540,
6764  0x0554,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6765  0xFF37,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6766  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6767  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6768  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6769  0x0000,0x0000,0x01D7,0x0200,0x0228,0x0000,0x018F,0x0000,
6770  0x0000,0x0000,0x0000,0x0000,0x1E20,0x1E48,0x1E70,0x0000,
6771  0x1EB6,0x1EDE,0x0000,0x0000,0x1F4A,0x1F68,0x1FFA,0x1FA8,
6772  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6773  0x0421,0x0405,0x0472,0x04A0,0x04C7,0x04EE,0x0000,0x0541,
6774  0x0555,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6775  0xFF38,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6776  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6777  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6778  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6779  0x0000,0x0000,0x01D9,0x0202,0x022A,0x0000,0x0000,0x0000,
6780  0x0000,0x0000,0x0000,0x0000,0x1E22,0x1E4A,0x1E72,0x0000,
6781  0x1EB8,0x1EE0,0x0000,0x0000,0x1F4B,0x1F69,0x1FFB,0x1FA9,
6782  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6783  0x0422,0x0406,0x0474,0x04A2,0x04C9,0x04F0,0x0000,0x0542,
6784  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6785  0xFF39,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6786  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6787  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6788  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6789  0x0000,0x01AC,0x01DB,0x0204,0x022C,0x0000,0x0190,0x019C,
6790  0x01A9,0x0000,0x0000,0x0000,0x1E24,0x1E4C,0x1E74,0x0000,
6791  0x1EBA,0x1EE2,0x0000,0x1F28,0x1F4C,0x1F6A,0x0000,0x1FAA,
6792  0x1FD8,0x1FFC,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6793  0x0423,0x0407,0x0476,0x04A4,0x04CB,0x04F2,0x0000,0x0543,
6794  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6795  0xFF3A,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6796  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6797  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6798  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6799  0x0000,0x01AF,0x018E,0x0206,0x022E,0x0000,0x0000,0x0000,
6800  0x0000,0x0000,0x0000,0x0000,0x1E26,0x1E4E,0x1E76,0x0000,
6801  0x1EBC,0x1EE4,0x0000,0x1F29,0x1F4D,0x1F6B,0x0000,0x1FAB,
6802  0x1FD9,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6803  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6804  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6805  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6806  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6807  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6808  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6809  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6810  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6811  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6812  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6813  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6814  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6815  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6816  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6817  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6818  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6819  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6820  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6821  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6822  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6823  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6824  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6825  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6826  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6827  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6828  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6829  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6830  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6831  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6832  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6833  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6834  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6835  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6836  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6837  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6838  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6839  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6840  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6841  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6842  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6843  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6844  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6845  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6846  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6847  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6848  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6849  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6850  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6851  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6852  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6853  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6854  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6855  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6856  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6857  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6858  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6859  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6860  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6861  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6862  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6863  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6864  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6865  0xFF41,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6866  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6867  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6868  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6869  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6870  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6871  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6872  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6873  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6874  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6875  0xFF42,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6876  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6877  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6878  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6879  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6880  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6881  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6882  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6883  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6884  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6885  0xFF43,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6886  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6887  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6888  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6889  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6890  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6891  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6892  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6893  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6894  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6895  0xFF44,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6896  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6897  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6898  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6899  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6900  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6901  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6902  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6903  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6904  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6905  0xFF45,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6906  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6907  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6908  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6909  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6910  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6911  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6912  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6913  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6914  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6915  0xFF46,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6916  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6917  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6918  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6919  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6920  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6921  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6922  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6923  0x0430,0x0444,0x0458,0x0479,0x04A7,0x04CE,0x04F5,0x0000,
6924  0x0574,0x2170,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6925  0xFF47,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6926  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6927  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6928  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6929  0x0000,0x0180,0x01B4,0x01DF,0x0209,0x0231,0x0000,0x025D,
6930  0x0271,0x0285,0x0299,0x02AD,0x1E01,0x1E29,0x1E51,0x1E79,
6931  0x1E9B,0x1EBF,0x1EE7,0x1F00,0x1F22,0x0000,0x1F64,0x1F80,
6932  0x1FA4,0x1FD2,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6933  0x0431,0x0445,0x0459,0x047B,0x04A9,0x0000,0x04F7,0x0561,
6934  0x0575,0x2171,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6935  0xFF48,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6936  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6937  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6938  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6939  0x0000,0x0183,0x01B6,0x01E1,0x020B,0x0233,0x0000,0x025E,
6940  0x0272,0x0286,0x029A,0x02AE,0x1E03,0x1E2B,0x1E53,0x1E7B,
6941  0x0000,0x1EC1,0x1EE9,0x1F01,0x1F23,0x0000,0x1F65,0x1F81,
6942  0x1FA5,0x1FD3,0x1FF6,0x0000,0x0000,0x0000,0x0000,0x0000,
6943  0x0432,0x0446,0x045A,0x047D,0x04AB,0x04D1,0x04F9,0x0562,
6944  0x0576,0x2172,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6945  0xFF49,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6946  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6947  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6948  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6949  0x0000,0x0185,0x01B9,0x01E3,0x020D,0x0234,0x0000,0x025F,
6950  0x0273,0x0287,0x029B,0x02AF,0x1E05,0x1E2D,0x1E55,0x1E7D,
6951  0x0000,0x1EC3,0x1EEB,0x1F02,0x1F24,0x0000,0x1F66,0x1F82,
6952  0x1FA6,0x0000,0x1FF7,0x0000,0x0000,0x0000,0x0000,0x0000,
6953  0x0433,0x0447,0x045B,0x047F,0x04AD,0x04D3,0x0000,0x0563,
6954  0x0577,0x2173,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6955  0xFF4A,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6956  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6957  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6958  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6959  0x0000,0x0188,0x01BA,0x01E5,0x020F,0x0235,0x0000,0x0260,
6960  0x0274,0x0288,0x029C,0x0000,0x1E07,0x1E2F,0x1E57,0x1E7F,
6961  0x0000,0x1EC5,0x1EED,0x1F03,0x1F25,0x0000,0x1F67,0x1F83,
6962  0x1FA7,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6963  0x0434,0x0448,0x045C,0x0481,0x04AF,0x04D5,0x0000,0x0564,
6964  0x0578,0x2174,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6965  0xFF4B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6966  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6967  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6968  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6969  0x0000,0x018C,0x01BB,0x01E7,0x0211,0x0236,0x0000,0x0261,
6970  0x0275,0x0289,0x029D,0x0000,0x1E09,0x1E31,0x1E59,0x1E81,
6971  0x0000,0x1EC7,0x1EEF,0x1F04,0x1F26,0x1F50,0x1F70,0x1F84,
6972  0x1FB0,0x1FD6,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6973  0x0435,0x0449,0x045D,0x0000,0x04B1,0x04D7,0x0000,0x0565,
6974  0x0579,0x2175,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6975  0xFF4C,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6976  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6977  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6978  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6979  0x0000,0x018D,0x0000,0x01E9,0x0213,0x0237,0x0000,0x0262,
6980  0x0276,0x028A,0x029E,0x0000,0x1E0B,0x1E33,0x1E5B,0x1E83,
6981  0x1EA1,0x1EC9,0x1EF1,0x1F05,0x1F27,0x1F51,0x1F71,0x1F85,
6982  0x1FB1,0x1FD7,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6983  0x0436,0x044A,0x045E,0x048B,0x04B3,0x04D9,0x0000,0x0566,
6984  0x057A,0x2176,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6985  0xFF4D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6986  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6987  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6988  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6989  0x0000,0x0192,0x01BE,0x01EB,0x0215,0x0238,0x0000,0x0263,
6990  0x0277,0x028B,0x029F,0x0000,0x1E0D,0x1E35,0x1E5D,0x1E85,
6991  0x1EA3,0x1ECB,0x1EF3,0x1F06,0x1F30,0x1F52,0x1F72,0x1F86,
6992  0x1FB2,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6993  0x0437,0x044B,0x045F,0x048D,0x04B5,0x04DB,0x0000,0x0567,
6994  0x057B,0x2177,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6995  0xFF4E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6996  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6997  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6998  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
6999  0x0000,0x0195,0x01BD,0x01ED,0x0217,0x0239,0x0250,0x0264,
7000  0x0278,0x028C,0x02A0,0x0000,0x1E0F,0x1E37,0x1E5F,0x1E87,
7001  0x1EA5,0x1ECD,0x1EF5,0x1F07,0x1F31,0x1F53,0x1F73,0x1F87,
7002  0x1FB3,0x1FE0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
7003  0x0438,0x044C,0x0461,0x048F,0x04B7,0x04DD,0x0000,0x0568,
7004  0x057C,0x2178,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
7005  0xFF4F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
7006  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
7007  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
7008  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
7009  0x0000,0x0199,0x01C6,0x01EF,0x0219,0x0000,0x0251,0x0265,
7010  0x0279,0x028D,0x02A1,0x0000,0x1E11,0x1E39,0x1E61,0x1E89,
7011  0x1EA7,0x1ECF,0x1EF7,0x1F10,0x1F32,0x1F54,0x1F74,0x1F90,
7012  0x1FB4,0x1FE1,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
7013  0x0439,0x044D,0x0463,0x0491,0x04B9,0x04DF,0x0501,0x0569,
7014  0x057D,0x2179,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
7015  0xFF50,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
7016  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
7017  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
7018  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
7019  0x0000,0x019A,0x01C9,0x01F0,0x021B,0x023C,0x0252,0x0266,
7020  0x027A,0x028E,0x02A2,0x0000,0x1E13,0x1E3B,0x1E63,0x1E8B,
7021  0x1EA9,0x1ED1,0x1EF9,0x1F11,0x1F33,0x1F55,0x1F75,0x1F91,
7022  0x0000,0x1FE2,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
7023  0x043A,0x044E,0x0465,0x0493,0x04BB,0x04E1,0x0503,0x056A,
7024  0x057E,0x217A,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
7025  0xFF51,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
7026  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
7027  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
7028  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
7029  0x0000,0x019B,0x01CC,0x01F3,0x021D,0x0000,0x0253,0x0267,
7030  0x027B,0x028F,0x02A3,0x0000,0x1E15,0x1E3D,0x1E65,0x1E8D,
7031  0x1EAB,0x1ED3,0x0000,0x1F12,0x1F34,0x1F56,0x1F76,0x1F92,
7032  0x1FB6,0x1FE3,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
7033  0x043B,0x044F,0x0467,0x0495,0x04BD,0x04E3,0x0505,0x056B,
7034  0x057F,0x217B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
7035  0xFF52,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
7036  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
7037  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
7038  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
7039  0x0000,0x019E,0x01CE,0x01F5,0x021F,0x023F,0x0254,0x0268,
7040  0x027C,0x0290,0x02A4,0x0000,0x1E17,0x1E3F,0x1E67,0x1E8F,
7041  0x1EAD,0x1ED5,0x0000,0x1F13,0x1F35,0x1F57,0x1F77,0x1F93,
7042  0x1FB7,0x1FE4,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
7043  0x043C,0x0450,0x0469,0x0497,0x04BF,0x04E5,0x0507,0x056C,
7044  0x0580,0x217C,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
7045  0xFF53,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
7046  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
7047  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
7048  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
7049  0x0000,0x01A1,0x01D0,0x01F9,0x0221,0x0240,0x0255,0x0269,
7050  0x027D,0x0291,0x02A5,0x0000,0x1E19,0x1E41,0x1E69,0x1E91,
7051  0x1EAF,0x1ED7,0x0000,0x1F14,0x1F36,0x0000,0x1F78,0x1F94,
7052  0x1FC2,0x1FE5,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
7053  0x043D,0x0451,0x046B,0x0499,0x0000,0x04E7,0x0509,0x056D,
7054  0x0581,0x217D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
7055  0xFF54,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
7056  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
7057  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
7058  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
7059  0x0000,0x01A3,0x01D2,0x01FB,0x0223,0x0000,0x0256,0x026A,
7060  0x027E,0x0292,0x02A6,0x0000,0x1E1B,0x1E43,0x1E6B,0x1E93,
7061  0x1EB1,0x1ED9,0x0000,0x1F15,0x1F37,0x0000,0x1F79,0x1F95,
7062  0x1FC3,0x1FE6,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
7063  0x043E,0x0452,0x046D,0x049B,0x04C2,0x04E9,0x050B,0x056E,
7064  0x0582,0x217E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
7065  0xFF55,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
7066  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
7067  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
7068  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
7069  0x0000,0x01A5,0x01D4,0x01FD,0x0225,0x0000,0x0257,0x026B,
7070  0x027F,0x0293,0x02A7,0x0000,0x1E1D,0x1E45,0x1E6D,0x1E95,
7071  0x1EB3,0x1EDB,0x0000,0x0000,0x1F40,0x0000,0x1F7A,0x1F96,
7072  0x1FC4,0x1FE7,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
7073  0x043F,0x0453,0x046F,0x049D,0x04C4,0x04EB,0x050D,0x056F,
7074  0x0583,0x217F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
7075  0xFF56,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
7076  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
7077  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
7078  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
7079  0x0000,0x01A8,0x01D6,0x01FF,0x0227,0x0000,0x0258,0x026C,
7080  0x0280,0x0294,0x02A8,0x0000,0x1E1F,0x1E47,0x1E6F,0x1E96,
7081  0x1EB5,0x1EDD,0x0000,0x0000,0x1F41,0x0000,0x1F7B,0x1F97,
7082  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
7083  0x0440,0x0454,0x0471,0x049F,0x04C6,0x04ED,0x050F,0x0570,
7084  0x0584,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
7085  0xFF57,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
7086  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
7087  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
7088  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
7089  0x0000,0x01AA,0x01D8,0x0201,0x0229,0x0000,0x0259,0x026D,
7090  0x0281,0x0295,0x02A9,0x0000,0x1E21,0x1E49,0x1E71,0x1E97,
7091  0x1EB7,0x1EDF,0x0000,0x0000,0x1F42,0x1F60,0x1F7C,0x1FA0,
7092  0x1FC6,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
7093  0x0441,0x0455,0x0473,0x04A1,0x04C8,0x04EF,0x0000,0x0571,
7094  0x0585,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
7095  0xFF58,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
7096  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
7097  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
7098  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
7099  0x0000,0x01AB,0x01DA,0x0203,0x022B,0x0000,0x025A,0x026E,
7100  0x0282,0x0296,0x02AA,0x0000,0x1E23,0x1E4B,0x1E73,0x1E98,
7101  0x1EB9,0x1EE1,0x0000,0x0000,0x1F43,0x1F61,0x1F7D,0x1FA1,
7102  0x1FC7,0x1FF2,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
7103  0x0442,0x0456,0x0475,0x04A3,0x04CA,0x04F1,0x0000,0x0572,
7104  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
7105  0xFF59,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
7106  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
7107  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
7108  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
7109  0x0000,0x01AD,0x01DC,0x0205,0x022D,0x0000,0x025B,0x026F,
7110  0x0283,0x0297,0x02AB,0x0000,0x1E25,0x1E4D,0x1E75,0x1E99,
7111  0x1EBB,0x1EE3,0x0000,0x1F20,0x1F44,0x1F62,0x0000,0x1FA2,
7112  0x1FD0,0x1FF3,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
7113  0x0443,0x0457,0x0477,0x04A5,0x04CC,0x04F3,0x0000,0x0573,
7114  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
7115  0xFF5A,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
7116  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
7117  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
7118  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
7119  0x0000,0x01B0,0x01DD,0x0207,0x022F,0x0000,0x025C,0x0270,
7120  0x0284,0x0298,0x02AC,0x0000,0x1E27,0x1E4F,0x1E77,0x1E9A,
7121  0x1EBD,0x1EE5,0x0000,0x1F21,0x1F45,0x1F63,0x0000,0x1FA3,
7122  0x1FD1,0x1FF4
7123 };
7124 
7125 
7126 /* 00C0-05FF */
7127 static uint16 uni_0C00_05FF[1344]=
7128 {
7129  0x0017,0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,
7130  0x001F,0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,
7131  0x0027,0x0028,0x0029,0x002A,0x0067,0x0068,0x0069,0x0000,
7132  0x006B,0x006C,0x006D,0x006E,0x006F,0x0070,0x0071,0x008A,
7133  0x0037,0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,
7134  0x003F,0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,
7135  0x0047,0x0048,0x0049,0x004A,0x0087,0x0088,0x0089,0x0000,
7136  0x008B,0x008C,0x008D,0x008E,0x008F,0x0090,0x0091,0x0092,
7137  0x0073,0x0093,0x0074,0x0094,0x0075,0x0095,0x0076,0x0096,
7138  0x0077,0x0097,0x0078,0x0098,0x0079,0x0099,0x007A,0x009A,
7139  0x00B7,0x00D7,0x00B8,0x00D8,0x00B9,0x00D9,0x00BA,0x00DA,
7140  0x00BB,0x00DB,0x00BC,0x00DC,0x00BD,0x00DD,0x00BE,0x00DE,
7141  0x00BF,0x00DF,0x00C0,0x00E0,0x00C1,0x00E1,0x00C2,0x00E2,
7142  0x00C3,0x00E3,0x00C4,0x00E4,0x00C5,0x00E5,0x00C6,0x00E6,
7143  0x0000,0x00E7,0x00C8,0x00E8,0x00C9,0x00E9,0x00CA,0x00EA,
7144  0x0127,0x0108,0x0128,0x0109,0x0129,0x010A,0x012A,0x010B,
7145  0x012B,0x010C,0x012C,0x010D,0x012D,0x010E,0x012E,0x010F,
7146  0x012F,0x0130,0x0111,0x0131,0x0112,0x0132,0x0113,0x0133,
7147  0x0114,0x0134,0x0115,0x0135,0x0116,0x0136,0x0117,0x0137,
7148  0x0118,0x0138,0x0119,0x0139,0x011A,0x013A,0x0157,0x0177,
7149  0x0158,0x0178,0x0159,0x0179,0x015A,0x017A,0x015B,0x017B,
7150  0x015C,0x017C,0x015D,0x017D,0x015E,0x017E,0x015F,0x017F,
7151  0x0160,0x0180,0x0161,0x0181,0x0162,0x0182,0x0163,0x0183,
7152  0x0072,0x0164,0x0184,0x0165,0x0185,0x0166,0x0186,0x0187,
7153  0x1161,0x0A86,0x07B1,0x11B1,0x0801,0x1201,0x0AD6,0x0851,
7154  0x1251,0x0B76,0x0BC6,0x08A1,0x12A1,0x12F1,0x0D52,0x0C66,
7155  0x0D06,0x0941,0x1341,0x0857,0x0947,0x1391,0x0B27,0x0AD7,
7156  0x09E1,0x13E1,0x1431,0x1481,0x0D07,0x07B8,0x14D1,0x08A8,
7157  0x0B21,0x1521,0x0B71,0x1571,0x0BC1,0x15C1,0x0C18,0x0C11,
7158  0x1611,0x0D08,0x1661,0x16B1,0x0D01,0x1701,0x0859,0x0D51,
7159  0x1751,0x08F9,0x0949,0x0762,0x1162,0x07B2,0x11B2,0x0B79,
7160  0x0802,0x1202,0x1252,0x12A2,0x0992,0x1392,0x1342,0x0000,
7161  0x0000,0x0000,0x0000,0x0000,0x09E2,0x0000,0x13E2,0x0A32,
7162  0x0000,0x1432,0x0A82,0x0000,0x1482,0x0AD2,0x14D2,0x0B22,
7163  0x1522,0x0B72,0x1572,0x0BC2,0x15C2,0x0C12,0x1612,0x0C62,
7164  0x1662,0x0CB2,0x16B2,0x0D02,0x1702,0x1752,0x0763,0x1163,
7165  0x07B3,0x11B3,0x0803,0x1203,0x0853,0x1253,0x08A3,0x12A3,
7166  0x08F3,0x12F3,0x0943,0x1343,0x0993,0x1393,0x09E3,0x13E3,
7167  0x1433,0x0A83,0x0000,0x1483,0x0AD3,0x14D3,0x0991,0x0000,
7168  0x0B23,0x1523,0x0B73,0x1573,0x0BC3,0x15C3,0x0C13,0x1613,
7169  0x0C63,0x1663,0x0CB3,0x16B3,0x0D03,0x1703,0x0D53,0x1753,
7170  0x0764,0x1164,0x07B4,0x11B4,0x0804,0x1204,0x0854,0x1254,
7171  0x08A4,0x12A4,0x08F4,0x12F4,0x0944,0x1344,0x0994,0x1394,
7172  0x09E4,0x13E4,0x0A34,0x1434,0x0A84,0x1484,0x0AD4,0x14D4,
7173  0x0AD1,0x1524,0x0B74,0x1574,0x0BC4,0x15C4,0x0C14,0x1614,
7174  0x0C64,0x1664,0x0CB4,0x16B4,0x0D04,0x1704,0x0D54,0x1754,
7175  0x0765,0x1165,0x07B5,0x11B5,0x1205,0x1255,0x12A5,0x12F5,
7176  0x1345,0x1395,0x09E5,0x0A35,0x1435,0x0A31,0x0A85,0x14D5,
7177  0x1525,0x0C19,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
7178  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
7179  0x1396,0x13E6,0x1436,0x1486,0x14D6,0x1526,0x1576,0x15C6,
7180  0x1616,0x1666,0x16B6,0x1706,0x1756,0x1167,0x11B7,0x1207,
7181  0x1257,0x12A7,0x12F7,0x1347,0x1397,0x13E7,0x1437,0x1487,
7182  0x14D7,0x1527,0x1577,0x15C7,0x1617,0x1667,0x16B7,0x1707,
7183  0x1757,0x1168,0x11B8,0x1208,0x1258,0x12A8,0x12F8,0x1348,
7184  0x1398,0x13E8,0x1438,0x1488,0x14D8,0x1528,0x1578,0x15C8,
7185  0x1618,0x1668,0x16B8,0x1708,0x1758,0x1169,0x11B9,0x1209,
7186  0x1259,0x12A9,0x12F9,0x1349,0x1399,0x13E9,0x1439,0x1489,
7187  0x14D9,0x1529,0x1579,0x15C9,0x1619,0x1669,0x16B9,0x1709,
7188  0x1759,0x116A,0x11BA,0x120A,0x125A,0x12AA,0x12FA,0x134A,
7189  0x139A,0x13EA,0x143A,0x148A,0x14DA,0x152A,0x157A,0x15CA,
7190  0x161A,0x166A,0x16BA,0x170A,0x175A,0x116B,0x11BB,0x120B,
7191  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
7192  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
7193  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
7194  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
7195  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
7196  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
7197  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
7198  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
7199  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
7200  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
7201  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
7202  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
7203  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
7204  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
7205  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
7206  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
7207  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
7208  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
7209  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
7210  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
7211  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
7212  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
7213  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
7214  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
7215  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
7216  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
7217  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x01F7,0x0000,
7218  0x01F8,0x01F9,0x01FA,0x0000,0x0253,0x0000,0x0254,0x0255,
7219  0x01D9,0x01FC,0x0257,0x01FE,0x01FF,0x0200,0x0201,0x0202,
7220  0x0258,0x0204,0x02A7,0x0206,0x0207,0x0208,0x0209,0x020A,
7221  0x0299,0x0248,0x0000,0x02A9,0x024B,0x024C,0x0298,0x024E,
7222  0x024F,0x0250,0x0251,0x0252,0x0217,0x0218,0x0219,0x021A,
7223  0x021B,0x021C,0x021D,0x021E,0x021F,0x0220,0x0221,0x0222,
7224  0x0223,0x0224,0x0225,0x0226,0x0227,0x0228,0x0229,0x022A,
7225  0x0267,0x0268,0x0269,0x026A,0x026B,0x026C,0x026D,0x026E,
7226  0x026F,0x0270,0x0271,0x0272,0x0273,0x0274,0x0275,0x0000,
7227  0x0277,0x0278,0x0259,0x025A,0x0297,0x02B8,0x02B9,0x02BA,
7228  0x0000,0x02BB,0x029C,0x02BC,0x029D,0x02BD,0x029E,0x02BE,
7229  0x029F,0x02BF,0x02A0,0x02C0,0x02A1,0x02C1,0x02A2,0x02C2,
7230  0x02A3,0x02C3,0x02A4,0x02C4,0x02A5,0x02C5,0x02A6,0x02C6,
7231  0x02C7,0x02C8,0x02C9,0x02CA,0x0000,0x0307,0x0308,0x0000,
7232  0x0309,0x0000,0x0000,0x030A,0x030B,0x02EC,0x02ED,0x02EE,
7233  0x0AF1,0x0B41,0x0B91,0x0BE1,0x0C31,0x0C81,0x0CD1,0x0D21,
7234  0x0732,0x0782,0x07D2,0x0822,0x0872,0x08C2,0x0912,0x0962,
7235  0x0730,0x0780,0x07D0,0x0820,0x0870,0x08C0,0x0910,0x0960,
7236  0x09B0,0x0A00,0x0A50,0x0AA0,0x0AF0,0x0B40,0x0B90,0x0BE0,
7237  0x0C30,0x0C80,0x0CD0,0x0D20,0x0731,0x0781,0x07D1,0x0821,
7238  0x0871,0x08C1,0x0911,0x0961,0x09B1,0x0A01,0x0A51,0x0AA1,
7239  0x1130,0x1180,0x11D0,0x1220,0x1270,0x12C0,0x1310,0x1360,
7240  0x13B0,0x1400,0x1450,0x14A0,0x14F0,0x1540,0x1590,0x15E0,
7241  0x1630,0x1680,0x16D0,0x1720,0x1131,0x1181,0x11D1,0x1221,
7242  0x1271,0x12C1,0x1311,0x1361,0x13B1,0x1401,0x1451,0x14A1,
7243  0x14F1,0x1541,0x1591,0x15E1,0x1631,0x1681,0x16D1,0x1721,
7244  0x1132,0x1182,0x11D2,0x1222,0x1272,0x12C2,0x1312,0x1362,
7245  0x09B2,0x13B2,0x0A02,0x1402,0x0A52,0x1452,0x0AA2,0x14A2,
7246  0x0AF2,0x14F2,0x0B42,0x1542,0x0B92,0x1592,0x0BE2,0x15E2,
7247  0x0C32,0x1632,0x0C82,0x1682,0x0CD2,0x16D2,0x0D22,0x1722,
7248  0x0733,0x1133,0x0783,0x1183,0x07D3,0x11D3,0x0823,0x1223,
7249  0x0873,0x1273,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
7250  0x0000,0x0000,0x0913,0x1313,0x0963,0x1363,0x09B3,0x13B3,
7251  0x0A03,0x1403,0x0A53,0x1453,0x0AA3,0x14A3,0x0AF3,0x14F3,
7252  0x0B43,0x1543,0x0B93,0x1593,0x0BE3,0x15E3,0x0C33,0x1633,
7253  0x0C83,0x1683,0x0CD3,0x16D3,0x0D23,0x1723,0x0734,0x1134,
7254  0x0784,0x1184,0x07D4,0x11D4,0x0824,0x1224,0x0874,0x1274,
7255  0x08C4,0x12C4,0x0914,0x1314,0x0964,0x1364,0x09B4,0x13B4,
7256  0x0A04,0x1404,0x0A54,0x1454,0x0AA4,0x14A4,0x0AF4,0x14F4,
7257  0x0B44,0x0B94,0x1594,0x0BE4,0x15E4,0x0C34,0x1634,0x0C84,
7258  0x1684,0x0CD4,0x16D4,0x0D24,0x1724,0x0735,0x1135,0x0000,
7259  0x07D5,0x11D5,0x0825,0x1225,0x0875,0x1275,0x08C5,0x12C5,
7260  0x0915,0x1315,0x0965,0x1365,0x09B5,0x13B5,0x0A05,0x1405,
7261  0x0A55,0x1455,0x0AA5,0x14A5,0x0AF5,0x14F5,0x0B45,0x1545,
7262  0x0B95,0x1595,0x0BE5,0x15E5,0x0C35,0x1635,0x0C85,0x1685,
7263  0x0CD5,0x16D5,0x0D25,0x1725,0x0736,0x1136,0x0786,0x1186,
7264  0x07D6,0x11D6,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
7265  0x0A06,0x1406,0x0A56,0x1456,0x0AA6,0x14A6,0x0AF6,0x14F6,
7266  0x0B46,0x1546,0x0B96,0x1596,0x0BE6,0x15E6,0x0C36,0x1636,
7267  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
7268  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
7269  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
7270  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
7271  0x0000,0x0787,0x07D7,0x0827,0x0877,0x08C7,0x0917,0x0967,
7272  0x09B7,0x0A07,0x0A57,0x0AA7,0x0AF7,0x0B47,0x0B97,0x0BE7,
7273  0x0C37,0x0C87,0x0CD7,0x0D27,0x0738,0x0788,0x07D8,0x0828,
7274  0x0878,0x08C8,0x0918,0x0968,0x09B8,0x0A08,0x0A58,0x0AA8,
7275  0x0AF8,0x0B48,0x0B98,0x0BE8,0x0C38,0x0C88,0x0000,0x0000,
7276  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
7277  0x0000,0x1187,0x11D7,0x1227,0x1277,0x12C7,0x1317,0x1367,
7278  0x13B7,0x1407,0x1457,0x14A7,0x14F7,0x1547,0x1597,0x15E7,
7279  0x1637,0x1687,0x16D7,0x1727,0x1138,0x1188,0x11D8,0x1228,
7280  0x1278,0x12C8,0x1318,0x1368,0x13B8,0x1408,0x1458,0x14A8,
7281  0x14F8,0x1548,0x1598,0x15E8,0x1638,0x1688,0x0000,0x0000,
7282  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
7283  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
7284  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
7285  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
7286  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
7287  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
7288  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
7289  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
7290  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
7291  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
7292  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
7293  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
7294  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
7295  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
7296  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000
7297 };
7298 
7299 
7300 /* 1E00-1FFF */
7301 static uint16 uni_1E00_1FFF[512]=
7302 {
7303  0x076C,0x116C,0x07BC,0x11BC,0x080C,0x120C,0x085C,0x125C,
7304  0x08AC,0x12AC,0x08FC,0x12FC,0x094C,0x134C,0x099C,0x139C,
7305  0x09EC,0x13EC,0x0A3C,0x143C,0x0A8C,0x148C,0x0ADC,0x14DC,
7306  0x0B2C,0x152C,0x0B7C,0x157C,0x0BCC,0x15CC,0x0C1C,0x161C,
7307  0x0C6C,0x166C,0x0CBC,0x16BC,0x0D0C,0x170C,0x0D5C,0x175C,
7308  0x076D,0x116D,0x07BD,0x11BD,0x080D,0x120D,0x085D,0x125D,
7309  0x08AD,0x12AD,0x08FD,0x12FD,0x094D,0x134D,0x099D,0x139D,
7310  0x09ED,0x13ED,0x0A3D,0x143D,0x0A8D,0x148D,0x0ADD,0x14DD,
7311  0x0B2D,0x152D,0x0B7D,0x157D,0x0BCD,0x15CD,0x0C1D,0x161D,
7312  0x0C6D,0x166D,0x0CBD,0x16BD,0x0D0D,0x170D,0x0D5D,0x175D,
7313  0x076E,0x116E,0x07BE,0x11BE,0x080E,0x120E,0x085E,0x125E,
7314  0x08AE,0x12AE,0x08FE,0x12FE,0x094E,0x134E,0x099E,0x139E,
7315  0x0770,0x13EE,0x0A3E,0x143E,0x0A8E,0x148E,0x0ADE,0x14DE,
7316  0x0B2E,0x152E,0x0B7E,0x157E,0x0BCE,0x15CE,0x0C1E,0x161E,
7317  0x0C6E,0x166E,0x0CBE,0x16BE,0x0D0E,0x170E,0x0D5E,0x175E,
7318  0x076F,0x116F,0x07BF,0x11BF,0x080F,0x120F,0x085F,0x125F,
7319  0x08AF,0x12AF,0x08FF,0x12FF,0x094F,0x134F,0x099F,0x139F,
7320  0x09EF,0x13EF,0x0A3F,0x143F,0x0A8F,0x148F,0x0ADF,0x14DF,
7321  0x0B2F,0x152F,0x0B7F,0x157F,0x0BCF,0x15CF,0x161F,0x166F,
7322  0x16BF,0x170F,0x175F,0x1170,0x0000,0x0000,0x0000,0x0000,
7323  0x0900,0x1300,0x0950,0x1350,0x09A0,0x13A0,0x09F0,0x13F0,
7324  0x0A40,0x1440,0x0A90,0x1490,0x0AE0,0x14E0,0x0B30,0x1530,
7325  0x0B80,0x1580,0x0BD0,0x15D0,0x0C20,0x1620,0x0C70,0x1670,
7326  0x0CC0,0x16C0,0x0D10,0x1710,0x0D60,0x1760,0x0771,0x1171,
7327  0x07C1,0x11C1,0x0811,0x1211,0x0861,0x1261,0x08B1,0x12B1,
7328  0x0901,0x1301,0x0951,0x1351,0x09A1,0x13A1,0x09F1,0x13F1,
7329  0x0A41,0x1441,0x0A91,0x1491,0x0AE1,0x14E1,0x0B31,0x1531,
7330  0x0B81,0x1581,0x0BD1,0x15D1,0x0C21,0x1621,0x0C71,0x1671,
7331  0x0CC1,0x16C1,0x0D11,0x1711,0x0D61,0x1761,0x0772,0x1172,
7332  0x07C2,0x11C2,0x0812,0x1212,0x0862,0x1262,0x08B2,0x12B2,
7333  0x0902,0x1302,0x0952,0x1352,0x09A2,0x13A2,0x09F2,0x13F2,
7334  0x0A42,0x1442,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
7335  0x1173,0x11C3,0x1213,0x1263,0x12B3,0x1303,0x1353,0x13A3,
7336  0x0773,0x07C3,0x0813,0x0863,0x08B3,0x0903,0x0953,0x09A3,
7337  0x13F3,0x1443,0x1493,0x14E3,0x1533,0x1583,0x0000,0x0000,
7338  0x09F3,0x0A43,0x0A93,0x0AE3,0x0B33,0x0B83,0x0000,0x0000,
7339  0x1713,0x1763,0x1174,0x11C4,0x1214,0x1264,0x12B4,0x1304,
7340  0x0D13,0x0D63,0x0774,0x07C4,0x0814,0x0864,0x08B4,0x0904,
7341  0x1354,0x13A4,0x13F4,0x1444,0x1494,0x14E4,0x1534,0x1584,
7342  0x0954,0x09A4,0x09F4,0x0A44,0x0A94,0x0AE4,0x0B34,0x0B84,
7343  0x15D4,0x1624,0x1674,0x16C4,0x1714,0x1764,0x0000,0x0000,
7344  0x0BD4,0x0C24,0x0C74,0x0CC4,0x0D14,0x0D64,0x0000,0x0000,
7345  0x12B5,0x1305,0x1355,0x13A5,0x13F5,0x1445,0x1495,0x14E5,
7346  0x0000,0x0905,0x0000,0x09A5,0x0000,0x0A45,0x0000,0x0AE5,
7347  0x1675,0x16C5,0x1715,0x1765,0x1176,0x11C6,0x1216,0x1266,
7348  0x0C75,0x0CC5,0x0D15,0x0D65,0x0776,0x07C6,0x0816,0x0866,
7349  0x12B6,0x1306,0x1356,0x13A6,0x13F6,0x1446,0x1496,0x14E6,
7350  0x1536,0x1586,0x15D6,0x1626,0x1676,0x16C6,0x0000,0x0000,
7351  0x1177,0x11C7,0x1217,0x1267,0x12B7,0x1307,0x1357,0x13A7,
7352  0x0777,0x07C7,0x0817,0x0867,0x08B7,0x0907,0x0957,0x09A7,
7353  0x13F7,0x1447,0x1497,0x14E7,0x1537,0x1587,0x15D7,0x1627,
7354  0x09F7,0x0A47,0x0A97,0x0AE7,0x0B37,0x0B87,0x0BD7,0x0C27,
7355  0x1677,0x16C7,0x1717,0x1767,0x1178,0x11C8,0x1218,0x1268,
7356  0x0C77,0x0CC7,0x0D17,0x0D67,0x0778,0x07C8,0x0818,0x0868,
7357  0x12B8,0x1308,0x1358,0x13A8,0x13F8,0x0000,0x1498,0x14E8,
7358  0x08B8,0x0908,0x08B6,0x0906,0x09A8,0x0000,0x0000,0x0000,
7359  0x0000,0x0000,0x1538,0x1588,0x15D8,0x0000,0x1678,0x16C8,
7360  0x0956,0x09A6,0x09F6,0x0A46,0x0B88,0x0000,0x0000,0x0000,
7361  0x1718,0x1768,0x1179,0x11C9,0x0000,0x0000,0x12B9,0x1309,
7362  0x0D18,0x0D68,0x0A96,0x0AE6,0x0000,0x0000,0x0000,0x0000,
7363  0x13A9,0x13F9,0x1449,0x1499,0x14E9,0x1539,0x1589,0x15D9,
7364  0x09A9,0x09F9,0x0BD6,0x0C26,0x0B39,0x0000,0x0000,0x0000,
7365  0x0000,0x0000,0x16C9,0x1719,0x0000,0x0000,0x11CA,0x121A,
7366  0x0B36,0x0B86,0x0C76,0x0CC6,0x0D19,0x0000,0x0000,0x0000
7367 };
7368 
7369 
7370 /* 2160-217F */
7371 static uint16 uni_2160_217F[32]=
7372 {
7373  0x0739,0x0789,0x07D9,0x0829,0x0879,0x08C9,0x0919,0x0969,
7374  0x09B9,0x0A09,0x0A59,0x0AA9,0x0AF9,0x0B49,0x0B99,0x0BE9,
7375  0x1139,0x1189,0x11D9,0x1229,0x1279,0x12C9,0x1319,0x1369,
7376  0x13B9,0x1409,0x1459,0x14A9,0x14F9,0x1549,0x1599,0x15E9
7377 };
7378 
7379 
7380 /* 24B0-24EF */
7381 static uint16 uni_24B0_24EF[64]=
7382 {
7383  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0511,0x0512,
7384  0x0513,0x0514,0x0515,0x0516,0x0517,0x0518,0x0519,0x051A,
7385  0x051B,0x051C,0x051D,0x051E,0x051F,0x0520,0x0521,0x0522,
7386  0x0523,0x0524,0x0525,0x0526,0x0527,0x0528,0x0529,0x052A,
7387  0x0531,0x0532,0x0533,0x0534,0x0535,0x0536,0x0537,0x0538,
7388  0x0539,0x053A,0x053B,0x053C,0x053D,0x053E,0x053F,0x0540,
7389  0x0541,0x0542,0x0543,0x0544,0x0545,0x0546,0x0547,0x0548,
7390  0x0549,0x054A,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000
7391 };
7392 
7393 
7394 /* FF20-FF5F */
7395 static uint16 uni_FF20_FF5F[64]=
7396 {
7397  0x0000,0x0560,0x05B0,0x0600,0x0650,0x06A0,0x06F0,0x0740,
7398  0x0790,0x07E0,0x0830,0x0880,0x08D0,0x0920,0x0970,0x09C0,
7399  0x0A10,0x0A60,0x0AB0,0x0B00,0x0B50,0x0BA0,0x0BF0,0x0C40,
7400  0x0C90,0x0CE0,0x0D30,0x0000,0x0000,0x0000,0x0000,0x0000,
7401  0x0000,0x0F60,0x0FB0,0x1000,0x1050,0x10A0,0x10F0,0x1140,
7402  0x1190,0x11E0,0x1230,0x1280,0x12D0,0x1320,0x1370,0x13C0,
7403  0x1410,0x1460,0x14B0,0x1500,0x1550,0x15A0,0x15F0,0x1640,
7404  0x1690,0x16E0,0x1730,0x0000,0x0000,0x0000,0x0000,0x0000
7405 };
7406 
7407 
7408 
7409 
7410 
7411 /*
7412  Returns
7413  a number 0..15, if a valid HEX digit in lower case,
7414  -1 otherwise.
7415 */
7416 
7417 static int hexlo(int x)
7418 {
7419  static char hex_lo_digit[256]=
7420  {
7421  -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, /* ................ */
7422  -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, /* ................ */
7423  -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, /* !"#$%&'()*+,-./ */
7424  0, 1, 2, 3, 4, 5, 6, 7, 8, 9,-1,-1,-1,-1,-1,-1, /* 0123456789:;<=>? */
7425  -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, /* @ABCDEFGHIJKLMNO */
7426  -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, /* PQRSTUVWXYZ[\]^_ */
7427  -1,10,11,12,13,14,15,-1,-1,-1,-1,-1,-1,-1,-1,-1, /* `abcdefghijklmno */
7428  -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, /* pqrstuvwxyz{|}~. */
7429  -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, /* ................ */
7430  -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, /* ................ */
7431  -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, /* ................ */
7432  -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, /* ................ */
7433  -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, /* ................ */
7434  -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, /* ................ */
7435  -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, /* ................ */
7436  -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, /* ................ */
7437  };
7438  return hex_lo_digit[(unsigned int) x];
7439 }
7440 
7441 
7442 /*
7443  Safe characters:
7444  '\0' NULL
7445  A..Z capital letters,
7446  a..z small letters
7447  0..9 digits
7448  _ underscore
7449 */
7450 static char filename_safe_char[128]=
7451 {
7452  1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* ................ */
7453  0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* ................ */
7454  0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* !"#$%&'()*+,-./ */
7455  1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0, /* 0123456789:;<=>? */
7456  0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, /* @ABCDEFGHIJKLMNO */
7457  1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1, /* PQRSTUVWXYZ[\]^_ */
7458  0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, /* `abcdefghijklmno */
7459  1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0, /* pqrstuvwxyz{|}~. */
7460 };
7461 
7462 #define MY_FILENAME_ESCAPE '@'
7463 
7464 static int
7465 my_mb_wc_filename(const CHARSET_INFO *cs __attribute__((unused)),
7466  my_wc_t *pwc, const uchar *s, const uchar *e)
7467 {
7468  int byte1, byte2;
7469  if (s >= e)
7470  return MY_CS_TOOSMALL;
7471 
7472  if (*s < 128 && filename_safe_char[*s])
7473  {
7474  *pwc= *s;
7475  return 1;
7476  }
7477 
7478  if (*s != MY_FILENAME_ESCAPE)
7479  return MY_CS_ILSEQ;
7480 
7481  if (s + 3 > e)
7482  return MY_CS_TOOSMALL3;
7483 
7484  byte1= s[1];
7485  if (byte1 == 0)
7486  return MY_CS_ILSEQ; /* avoid possible out-of-bounds read */
7487  byte2= s[2];
7488 
7489  if (byte1 >= 0x30 && byte1 <= 0x7F &&
7490  byte2 >= 0x30 && byte2 <= 0x7F)
7491  {
7492  int code= (byte1 - 0x30) * 80 + byte2 - 0x30;
7493  if (code < 5994 && touni[code])
7494  {
7495  *pwc= touni[code];
7496  return 3;
7497  }
7498  if (byte1 == '@' && byte2 == '@')
7499  {
7500  *pwc= 0;
7501  return 3;
7502  }
7503  }
7504 
7505  if (s + 4 > e)
7506  return MY_CS_TOOSMALL4;
7507 
7508  if ((byte1= hexlo(byte1)) >= 0 &&
7509  (byte2= hexlo(byte2)) >= 0)
7510  {
7511  int byte3= hexlo(s[3]);
7512  int byte4= hexlo(s[4]);
7513  if (byte3 >=0 && byte4 >=0)
7514  {
7515  *pwc= (byte1 << 12) + (byte2 << 8) + (byte3 << 4) + byte4;
7516  return 5;
7517  }
7518  }
7519 
7520  return MY_CS_ILSEQ;
7521 }
7522 
7523 
7524 static int
7525 my_wc_mb_filename(const CHARSET_INFO *cs __attribute__((unused)),
7526  my_wc_t wc, uchar *s, uchar *e)
7527 {
7528  int code;
7529  char hex[]= "0123456789abcdef";
7530 
7531  if (s >= e)
7532  return MY_CS_TOOSMALL;
7533 
7534  if (wc < 128 && filename_safe_char[wc])
7535  {
7536  *s= (uchar) wc;
7537  return 1;
7538  }
7539 
7540  if (s + 3 > e)
7541  return MY_CS_TOOSMALL3;
7542 
7543  *s++= MY_FILENAME_ESCAPE;
7544  if ((wc >= 0x00C0 && wc <= 0x05FF && (code= uni_0C00_05FF[wc - 0x00C0])) ||
7545  (wc >= 0x1E00 && wc <= 0x1FFF && (code= uni_1E00_1FFF[wc - 0x1E00])) ||
7546  (wc >= 0x2160 && wc <= 0x217F && (code= uni_2160_217F[wc - 0x2160])) ||
7547  (wc >= 0x24B0 && wc <= 0x24EF && (code= uni_24B0_24EF[wc - 0x24B0])) ||
7548  (wc >= 0xFF20 && wc <= 0xFF5F && (code= uni_FF20_FF5F[wc - 0xFF20])))
7549  {
7550  *s++= (code / 80) + 0x30;
7551  *s++= (code % 80) + 0x30;
7552  return 3;
7553  }
7554 
7555  /* Non letter */
7556  if (s + 5 > e)
7557  return MY_CS_TOOSMALL5;
7558 
7559  *s++= hex[(wc >> 12) & 15];
7560  *s++= hex[(wc >> 8) & 15];
7561  *s++= hex[(wc >> 4) & 15];
7562  *s++= hex[(wc) & 15];
7563  return 5;
7564 }
7565 
7566 
7567 static MY_COLLATION_HANDLER my_collation_filename_handler =
7568 {
7569  NULL, /* init */
7570  my_strnncoll_utf8,
7571  my_strnncollsp_utf8,
7572  my_strnxfrm_unicode,
7573  my_strnxfrmlen_utf8,
7574  my_like_range_mb,
7575  my_wildcmp_utf8,
7576  my_strcasecmp_utf8,
7577  my_instr_mb,
7578  my_hash_sort_utf8,
7579  my_propagate_complex
7580 };
7581 
7582 static MY_CHARSET_HANDLER my_charset_filename_handler=
7583 {
7584  NULL, /* init */
7585  my_ismbchar_utf8,
7586  my_mbcharlen_utf8,
7587  my_numchars_mb,
7588  my_charpos_mb,
7589  my_well_formed_len_mb,
7590  my_lengthsp_8bit,
7591  my_numcells_mb,
7592  my_mb_wc_filename,
7593  my_wc_mb_filename,
7594  my_mb_ctype_mb,
7595  my_caseup_str_utf8,
7596  my_casedn_str_utf8,
7597  my_caseup_utf8,
7598  my_casedn_utf8,
7599  my_snprintf_8bit,
7600  my_long10_to_str_8bit,
7601  my_longlong10_to_str_8bit,
7602  my_fill_8bit,
7603  my_strntol_8bit,
7604  my_strntoul_8bit,
7605  my_strntoll_8bit,
7606  my_strntoull_8bit,
7607  my_strntod_8bit,
7608  my_strtoll10_8bit,
7609  my_strntoull10rnd_8bit,
7610  my_scan_8bit
7611 };
7612 
7613 
7614 
7615 CHARSET_INFO my_charset_filename=
7616 {
7617  17,0,0, /* number */
7618  MY_CS_COMPILED|MY_CS_PRIMARY|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_HIDDEN|MY_CS_NONASCII,
7619  "filename", /* cs name */
7620  "filename", /* name */
7621  "", /* comment */
7622  NULL, /* tailoring */
7623  ctype_utf8, /* ctype */
7624  to_lower_utf8, /* to_lower */
7625  to_upper_utf8, /* to_upper */
7626  to_upper_utf8, /* sort_order */
7627  NULL, /* uca */
7628  NULL, /* tab_to_uni */
7629  NULL, /* tab_from_uni */
7630  &my_unicase_default,/* caseinfo */
7631  NULL, /* state_map */
7632  NULL, /* ident_map */
7633  1, /* strxfrm_multiply */
7634  1, /* caseup_multiply */
7635  1, /* casedn_multiply */
7636  1, /* mbminlen */
7637  5, /* mbmaxlen */
7638  0, /* min_sort_char */
7639  0xFFFF, /* max_sort_char */
7640  ' ', /* pad char */
7641  0, /* escape_with_backslash_is_dangerous */
7642  1, /* levels_for_compare */
7643  1, /* levels_for_order */
7644  &my_charset_filename_handler,
7645  &my_collation_filename_handler
7646 };
7647 
7648 
7649 #ifdef MY_TEST_UTF8
7650 #include <stdio.h>
7651 
7652 static void test_mb(const CHARSET_INFO *cs, uchar *s)
7653 {
7654  while(*s)
7655  {
7656  if (my_ismbhead_utf8(cs,*s))
7657  {
7658  uint len=my_mbcharlen_utf8(cs,*s);
7659  while(len--)
7660  {
7661  printf("%c",*s);
7662  s++;
7663  }
7664  printf("\n");
7665  }
7666  else
7667  {
7668  printf("%c\n",*s);
7669  s++;
7670  }
7671  }
7672 }
7673 
7674 int main()
7675 {
7676  char str[1024]=" utf8 test проба ПЕРА по-РУССКИ";
7677  CHARSET_INFO *cs;
7678 
7679  test_mb(cs,(uchar*)str);
7680 
7681  printf("orig :'%s'\n",str);
7682 
7683  my_caseup_utf8(cs,str,15);
7684  printf("caseup :'%s'\n",str);
7685 
7686  my_caseup_str_utf8(cs,str);
7687  printf("caseup_str:'%s'\n",str);
7688 
7689  my_casedn_utf8(cs,str,15);
7690  printf("casedn :'%s'\n",str);
7691 
7692  my_casedn_str_utf8(cs,str);
7693  printf("casedn_str:'%s'\n",str);
7694 
7695  return 0;
7696 }
7697 
7698 #endif
7699 
7700 #endif /* HAVE_CHARSET_UTF8 */
7701 
7702 
7703 
7704 #ifdef HAVE_CHARSET_utf8mb4
7705 
7706 /*
7707  We consider bytes with code more than 127 as a letter.
7708  This garantees that word boundaries work fine with regular
7709  expressions. Note, there is no need to mark byte 255 as a
7710  letter, it is illegal byte in UTF8.
7711 */
7712 static uchar ctype_utf8mb4[]=
7713 {
7714  0,
7715  32, 32, 32, 32, 32, 32, 32, 32, 32, 40, 40, 40, 40, 40, 32, 32,
7716  32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
7717  72, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
7718  132,132,132,132,132,132,132,132,132,132, 16, 16, 16, 16, 16, 16,
7719  16,129,129,129,129,129,129, 1, 1, 1, 1, 1, 1, 1, 1, 1,
7720  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 16, 16, 16, 16, 16,
7721  16,130,130,130,130,130,130, 2, 2, 2, 2, 2, 2, 2, 2, 2,
7722  2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 16, 16, 16, 16, 32,
7723  3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
7724  3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
7725  3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
7726  3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
7727  3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
7728  3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
7729  3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
7730  3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0
7731 };
7732 
7733 
7734 static uchar to_lower_utf8mb4[]=
7735 {
7736  0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
7737  16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
7738  32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
7739  48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
7740  64, 97, 98, 99,100,101,102,103,104,105,106,107,108,109,110,111,
7741  112,113,114,115,116,117,118,119,120,121,122, 91, 92, 93, 94, 95,
7742  96, 97, 98, 99,100,101,102,103,104,105,106,107,108,109,110,111,
7743  112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,
7744  128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,
7745  144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,
7746  160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,
7747  176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,
7748  192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,
7749  208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,
7750  224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,
7751  240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255
7752 };
7753 
7754 
7755 static uchar to_upper_utf8mb4[]=
7756 {
7757  0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
7758  16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
7759  32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
7760  48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
7761  64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
7762  80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
7763  96, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
7764  80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90,123,124,125,126,127,
7765  128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,
7766  144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,
7767  160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,
7768  176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,
7769  192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,
7770  208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,
7771  224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,
7772  240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255
7773 };
7774 
7775 
7776 static inline int
7777 bincmp_utf8mb4(const uchar *s, const uchar *se,
7778  const uchar *t, const uchar *te)
7779 {
7780  int slen= (int) (se - s), tlen= (int) (te - t);
7781  int len= MY_MIN(slen, tlen);
7782  int cmp= memcmp(s, t, len);
7783  return cmp ? cmp : slen - tlen;
7784 }
7785 
7786 
7787 static int
7788 my_mb_wc_utf8mb4(const CHARSET_INFO *cs __attribute__((unused)),
7789  my_wc_t * pwc, const uchar *s, const uchar *e)
7790 {
7791  uchar c;
7792 
7793  if (s >= e)
7794  return MY_CS_TOOSMALL;
7795 
7796  c= s[0];
7797  if (c < 0x80)
7798  {
7799  *pwc= c;
7800  return 1;
7801  }
7802  else if (c < 0xc2)
7803  return MY_CS_ILSEQ;
7804  else if (c < 0xe0)
7805  {
7806  if (s + 2 > e) /* We need 2 characters */
7807  return MY_CS_TOOSMALL2;
7808 
7809  if (!((s[1] ^ 0x80) < 0x40))
7810  return MY_CS_ILSEQ;
7811 
7812  *pwc= ((my_wc_t) (c & 0x1f) << 6) | (my_wc_t) (s[1] ^ 0x80);
7813  return 2;
7814  }
7815  else if (c < 0xf0)
7816  {
7817  if (s + 3 > e) /* We need 3 characters */
7818  return MY_CS_TOOSMALL3;
7819 
7820  if (!((s[1] ^ 0x80) < 0x40 && (s[2] ^ 0x80) < 0x40 &&
7821  (c >= 0xe1 || s[1] >= 0xa0)))
7822  return MY_CS_ILSEQ;
7823 
7824  *pwc= ((my_wc_t) (c & 0x0f) << 12) |
7825  ((my_wc_t) (s[1] ^ 0x80) << 6) |
7826  (my_wc_t) (s[2] ^ 0x80);
7827  return 3;
7828  }
7829  else if (c < 0xf5)
7830  {
7831  if (s + 4 > e) /* We need 4 characters */
7832  return MY_CS_TOOSMALL4;
7833 
7834  /*
7835  UTF-8 quick four-byte mask:
7836  11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
7837  Encoding allows to encode U+00010000..U+001FFFFF
7838 
7839  The maximum character defined in the Unicode standard is U+0010FFFF.
7840  Higher characters U+00110000..U+001FFFFF are not used.
7841 
7842  11110000.10010000.10xxxxxx.10xxxxxx == F0.90.80.80 == U+00010000 (min)
7843  11110100.10001111.10111111.10111111 == F4.8F.BF.BF == U+0010FFFF (max)
7844 
7845  Valid codes:
7846  [F0][90..BF][80..BF][80..BF]
7847  [F1][80..BF][80..BF][80..BF]
7848  [F2][80..BF][80..BF][80..BF]
7849  [F3][80..BF][80..BF][80..BF]
7850  [F4][80..8F][80..BF][80..BF]
7851  */
7852 
7853  if (!((s[1] ^ 0x80) < 0x40 &&
7854  (s[2] ^ 0x80) < 0x40 &&
7855  (s[3] ^ 0x80) < 0x40 &&
7856  (c >= 0xf1 || s[1] >= 0x90) &&
7857  (c <= 0xf3 || s[1] <= 0x8F)))
7858  return MY_CS_ILSEQ;
7859  *pwc = ((my_wc_t) (c & 0x07) << 18) |
7860  ((my_wc_t) (s[1] ^ 0x80) << 12) |
7861  ((my_wc_t) (s[2] ^ 0x80) << 6) |
7862  (my_wc_t) (s[3] ^ 0x80);
7863  return 4;
7864  }
7865  return MY_CS_ILSEQ;
7866 }
7867 
7868 
7869 /*
7870  The same as above, but without range check
7871  for example, for a null-terminated string
7872 */
7873 static int
7874 my_mb_wc_utf8mb4_no_range(const CHARSET_INFO *cs __attribute__((unused)),
7875  my_wc_t *pwc, const uchar *s)
7876 {
7877  uchar c;
7878 
7879  c= s[0];
7880  if (c < 0x80)
7881  {
7882  *pwc = c;
7883  return 1;
7884  }
7885 
7886  if (c < 0xc2)
7887  return MY_CS_ILSEQ;
7888 
7889  if (c < 0xe0)
7890  {
7891  if (!((s[1] ^ 0x80) < 0x40))
7892  return MY_CS_ILSEQ;
7893 
7894  *pwc = ((my_wc_t) (c & 0x1f) << 6) | (my_wc_t) (s[1] ^ 0x80);
7895  return 2;
7896  }
7897 
7898  if (c < 0xf0)
7899  {
7900  if (!((s[1] ^ 0x80) < 0x40 &&
7901  (s[2] ^ 0x80) < 0x40 &&
7902  (c >= 0xe1 || s[1] >= 0xa0)))
7903  return MY_CS_ILSEQ;
7904  *pwc= ((my_wc_t) (c & 0x0f) << 12) |
7905  ((my_wc_t) (s[1] ^ 0x80) << 6) |
7906  (my_wc_t) (s[2] ^ 0x80);
7907 
7908  return 3;
7909  }
7910  else if (c < 0xf5)
7911  {
7912  if (!((s[1] ^ 0x80) < 0x40 &&
7913  (s[2] ^ 0x80) < 0x40 &&
7914  (s[3] ^ 0x80) < 0x40 &&
7915  (c >= 0xf1 || s[1] >= 0x90) &&
7916  (c <= 0xf3 || s[1] <= 0x8F)))
7917  return MY_CS_ILSEQ;
7918  *pwc = ((my_wc_t) (c & 0x07) << 18) |
7919  ((my_wc_t) (s[1] ^ 0x80) << 12) |
7920  ((my_wc_t) (s[2] ^ 0x80) << 6) |
7921  (my_wc_t) (s[3] ^ 0x80);
7922  return 4;
7923  }
7924  return MY_CS_ILSEQ;
7925 }
7926 
7927 
7928 static int
7929 my_wc_mb_utf8mb4(const CHARSET_INFO *cs __attribute__((unused)),
7930  my_wc_t wc, uchar *r, uchar *e)
7931 {
7932  int count;
7933 
7934  if (r >= e)
7935  return MY_CS_TOOSMALL;
7936 
7937  if (wc < 0x80)
7938  count= 1;
7939  else if (wc < 0x800)
7940  count= 2;
7941  else if (wc < 0x10000)
7942  count= 3;
7943  else if (wc < 0x200000)
7944  count= 4;
7945  else return MY_CS_ILUNI;
7946 
7947  if (r + count > e)
7948  return MY_CS_TOOSMALLN(count);
7949 
7950  switch (count) {
7951  /* Fall through all cases!!! */
7952  case 4: r[3] = (uchar) (0x80 | (wc & 0x3f)); wc = wc >> 6; wc |= 0x10000;
7953  case 3: r[2] = (uchar) (0x80 | (wc & 0x3f)); wc = wc >> 6; wc |= 0x800;
7954  case 2: r[1] = (uchar) (0x80 | (wc & 0x3f)); wc = wc >> 6; wc |= 0xc0;
7955  case 1: r[0] = (uchar) wc;
7956  }
7957  return count;
7958 }
7959 
7960 
7961 /*
7962  The same as above, but without range check.
7963 */
7964 static int
7965 my_wc_mb_utf8mb4_no_range(const CHARSET_INFO *cs __attribute__((unused)),
7966  my_wc_t wc, uchar *r)
7967 {
7968  int count;
7969 
7970  if (wc < 0x80)
7971  count= 1;
7972  else if (wc < 0x800)
7973  count= 2;
7974  else if (wc < 0x10000)
7975  count= 3;
7976  else if (wc < 0x200000)
7977  count= 4;
7978  else
7979  return MY_CS_ILUNI;
7980 
7981  switch (count)
7982  {
7983  /* Fall through all cases!!! */
7984  case 4: r[3]= (uchar) (0x80 | (wc & 0x3f)); wc= wc >> 6; wc |= 0x10000;
7985  case 3: r[2]= (uchar) (0x80 | (wc & 0x3f)); wc= wc >> 6; wc |= 0x800;
7986  case 2: r[1]= (uchar) (0x80 | (wc & 0x3f)); wc= wc >> 6; wc |= 0xc0;
7987  case 1: r[0]= (uchar) wc;
7988  }
7989  return count;
7990 }
7991 
7992 
7993 static inline void
7994 my_tolower_utf8mb4(MY_UNICASE_INFO *uni_plane, my_wc_t *wc)
7995 {
7996  if (*wc <= uni_plane->maxchar)
7997  {
7999  if ((page= uni_plane->page[(*wc >> 8)]))
8000  *wc= page[*wc & 0xFF].tolower;
8001  }
8002 }
8003 
8004 
8005 static inline void
8006 my_toupper_utf8mb4(MY_UNICASE_INFO *uni_plane, my_wc_t *wc)
8007 {
8008  if (*wc <= uni_plane->maxchar)
8009  {
8011  if ((page= uni_plane->page[(*wc >> 8)]))
8012  *wc= page[*wc & 0xFF].toupper;
8013  }
8014 }
8015 
8016 
8017 static size_t
8018 my_caseup_utf8mb4(const CHARSET_INFO *cs, char *src, size_t srclen,
8019  char *dst, size_t dstlen)
8020 {
8021  my_wc_t wc;
8022  int srcres, dstres;
8023  char *srcend= src + srclen, *dstend= dst + dstlen, *dst0= dst;
8024  MY_UNICASE_INFO *uni_plane= cs->caseinfo;
8025  DBUG_ASSERT(src != dst || cs->caseup_multiply == 1);
8026 
8027  while ((src < srcend) &&
8028  (srcres= my_mb_wc_utf8mb4(cs, &wc,
8029  (uchar *) src, (uchar*) srcend)) > 0)
8030  {
8031  my_toupper_utf8mb4(uni_plane, &wc);
8032  if ((dstres= my_wc_mb_utf8mb4(cs, wc, (uchar*) dst, (uchar*) dstend)) <= 0)
8033  break;
8034  src+= srcres;
8035  dst+= dstres;
8036  }
8037  return (size_t) (dst - dst0);
8038 }
8039 
8040 
8041 static inline void
8042 my_hash_add(ulong *n1, ulong *n2, uint ch)
8043 {
8044  n1[0]^= (((n1[0] & 63) + n2[0]) * (ch)) + (n1[0] << 8);
8045  n2[0]+= 3;
8046 }
8047 
8048 
8049 static void
8050 my_hash_sort_utf8mb4(const CHARSET_INFO *cs, const uchar *s, size_t slen,
8051  ulong *n1, ulong *n2)
8052 {
8053  my_wc_t wc;
8054  int res;
8055  const uchar *e= s + slen;
8056  MY_UNICASE_INFO *uni_plane= cs->caseinfo;
8057 
8058  /*
8059  Remove end space. We do this to be able to compare
8060  'A ' and 'A' as identical
8061  */
8062  while (e > s && e[-1] == ' ')
8063  e--;
8064 
8065  while ((res= my_mb_wc_utf8mb4(cs, &wc, (uchar*) s, (uchar*) e)) > 0)
8066  {
8067  my_tosort_unicode(uni_plane, &wc, cs->state);
8068  my_hash_add(n1, n2, (uint) (wc & 0xFF));
8069  my_hash_add(n1, n2, (uint) (wc >> 8) & 0xFF);
8070  if (wc > 0xFFFF)
8071  {
8072  /*
8073  Put the highest byte only if it is non-zero,
8074  to make hash functions for utf8mb3 and utf8mb4
8075  compatible for BMP characters.
8076  This is useful to keep order of records in
8077  test results, e.g. for "SHOW GRANTS".
8078  */
8079  my_hash_add(n1, n2, (uint) (wc >> 16) & 0xFF);
8080  }
8081  s+= res;
8082  }
8083 }
8084 
8085 
8086 static size_t
8087 my_caseup_str_utf8mb4(const CHARSET_INFO *cs, char *src)
8088 {
8089  my_wc_t wc;
8090  int srcres, dstres;
8091  char *dst= src, *dst0= src;
8092  MY_UNICASE_INFO *uni_plane= cs->caseinfo;
8093  DBUG_ASSERT(cs->caseup_multiply == 1);
8094 
8095  while (*src &&
8096  (srcres= my_mb_wc_utf8mb4_no_range(cs, &wc, (uchar *) src)) > 0)
8097  {
8098  my_toupper_utf8mb4(uni_plane, &wc);
8099  if ((dstres= my_wc_mb_utf8mb4_no_range(cs, wc, (uchar*) dst)) <= 0)
8100  break;
8101  src+= srcres;
8102  dst+= dstres;
8103  }
8104  *dst= '\0';
8105  return (size_t) (dst - dst0);
8106 }
8107 
8108 
8109 static size_t
8110 my_casedn_utf8mb4(const CHARSET_INFO *cs,
8111  char *src, size_t srclen,
8112  char *dst, size_t dstlen)
8113 {
8114  my_wc_t wc;
8115  int srcres, dstres;
8116  char *srcend= src + srclen, *dstend= dst + dstlen, *dst0= dst;
8117  MY_UNICASE_INFO *uni_plane= cs->caseinfo;
8118  DBUG_ASSERT(src != dst || cs->casedn_multiply == 1);
8119 
8120  while ((src < srcend) &&
8121  (srcres= my_mb_wc_utf8mb4(cs, &wc,
8122  (uchar*) src, (uchar*) srcend)) > 0)
8123  {
8124  my_tolower_utf8mb4(uni_plane, &wc);
8125  if ((dstres= my_wc_mb_utf8mb4(cs, wc, (uchar*) dst, (uchar*) dstend)) <= 0)
8126  break;
8127  src+= srcres;
8128  dst+= dstres;
8129  }
8130  return (size_t) (dst - dst0);
8131 }
8132 
8133 
8134 static size_t
8135 my_casedn_str_utf8mb4(const CHARSET_INFO *cs, char *src)
8136 {
8137  my_wc_t wc;
8138  int srcres, dstres;
8139  char *dst= src, *dst0= src;
8140  MY_UNICASE_INFO *uni_plane= cs->caseinfo;
8141  DBUG_ASSERT(cs->casedn_multiply == 1);
8142 
8143  while (*src &&
8144  (srcres= my_mb_wc_utf8mb4_no_range(cs, &wc, (uchar *) src)) > 0)
8145  {
8146  my_tolower_utf8mb4(uni_plane, &wc);
8147  if ((dstres= my_wc_mb_utf8mb4_no_range(cs, wc, (uchar*) dst)) <= 0)
8148  break;
8149  src+= srcres;
8150  dst+= dstres;
8151  }
8152 
8153  /*
8154  In rare cases lower string can be shorter than
8155  the original string, for example:
8156 
8157  "U+0130 LATIN CAPITAL LETTER I WITH DOT ABOVE"
8158  (which is 0xC4B0 in utf8, i.e. two bytes)
8159 
8160  is converted into
8161 
8162  "U+0069 LATIN SMALL LETTER I"
8163  (which is 0x69 in utf8, i.e. one byte)
8164 
8165  So, we need to put '\0' terminator after converting.
8166  */
8167 
8168  *dst= '\0';
8169  return (size_t) (dst - dst0);
8170 }
8171 
8172 
8173 static int
8174 my_strnncoll_utf8mb4(const CHARSET_INFO *cs,
8175  const uchar *s, size_t slen,
8176  const uchar *t, size_t tlen,
8177  my_bool t_is_prefix)
8178 {
8179  my_wc_t s_wc,t_wc;
8180  const uchar *se= s + slen;
8181  const uchar *te= t + tlen;
8182  MY_UNICASE_INFO *uni_plane= cs->caseinfo;
8183  LINT_INIT(s_wc);
8184  LINT_INIT(t_wc);
8185 
8186  while ( s < se && t < te )
8187  {
8188  int s_res= my_mb_wc_utf8mb4(cs, &s_wc, s, se);
8189  int t_res= my_mb_wc_utf8mb4(cs, &t_wc, t, te);
8190 
8191  if ( s_res <= 0 || t_res <= 0 )
8192  {
8193  /* Incorrect string, compare bytewise */
8194  return bincmp_utf8mb4(s, se, t, te);
8195  }
8196 
8197  my_tosort_unicode(uni_plane, &s_wc, cs->state);
8198  my_tosort_unicode(uni_plane, &t_wc, cs->state);
8199 
8200  if ( s_wc != t_wc )
8201  {
8202  return s_wc > t_wc ? 1 : -1;
8203  }
8204 
8205  s+= s_res;
8206  t+= t_res;
8207  }
8208  return (int) (t_is_prefix ? (t - te) : ((se - s) - (te - t)));
8209 }
8210 
8211 
8240 static int
8241 my_strnncollsp_utf8mb4(const CHARSET_INFO *cs,
8242  const uchar *s, size_t slen,
8243  const uchar *t, size_t tlen,
8244  my_bool diff_if_only_endspace_difference)
8245 {
8246  int res;
8247  my_wc_t s_wc, t_wc;
8248  const uchar *se= s + slen, *te= t + tlen;
8249  MY_UNICASE_INFO *uni_plane= cs->caseinfo;
8250  LINT_INIT(s_wc);
8251  LINT_INIT(t_wc);
8252 
8253 #ifndef VARCHAR_WITH_DIFF_ENDSPACE_ARE_DIFFERENT_FOR_UNIQUE
8254  diff_if_only_endspace_difference= FALSE;
8255 #endif
8256 
8257  while ( s < se && t < te )
8258  {
8259  int s_res= my_mb_wc_utf8mb4(cs, &s_wc, s, se);
8260  int t_res= my_mb_wc_utf8mb4(cs, &t_wc, t, te);
8261 
8262  if ( s_res <= 0 || t_res <= 0 )
8263  {
8264  /* Incorrect string, compare bytewise */
8265  return bincmp_utf8mb4(s, se, t, te);
8266  }
8267 
8268  my_tosort_unicode(uni_plane, &s_wc, cs->state);
8269  my_tosort_unicode(uni_plane, &t_wc, cs->state);
8270 
8271  if ( s_wc != t_wc )
8272  {
8273  return s_wc > t_wc ? 1 : -1;
8274  }
8275 
8276  s+=s_res;
8277  t+=t_res;
8278  }
8279 
8280  slen= (size_t) (se-s);
8281  tlen= (size_t) (te-t);
8282  res= 0;
8283 
8284  if (slen != tlen)
8285  {
8286  int swap= 1;
8287  if (diff_if_only_endspace_difference)
8288  res= 1; /* Assume 'a' is bigger */
8289  if (slen < tlen)
8290  {
8291  slen= tlen;
8292  s= t;
8293  se= te;
8294  swap= -1;
8295  res= -res;
8296  }
8297  /*
8298  This following loop uses the fact that in UTF-8
8299  all multibyte characters are greater than space,
8300  and all multibyte head characters are greater than
8301  space. It means if we meet a character greater
8302  than space, it always means that the longer string
8303  is greater. So we can reuse the same loop from the
8304  8bit version, without having to process full multibute
8305  sequences.
8306  */
8307  for ( ; s < se; s++)
8308  {
8309  if (*s != ' ')
8310  return (*s < ' ') ? -swap : swap;
8311  }
8312  }
8313  return res;
8314 }
8315 
8316 
8330 static int
8331 my_strcasecmp_utf8mb4(const CHARSET_INFO *cs, const char *s, const char *t)
8332 {
8333  MY_UNICASE_INFO *uni_plane= cs->caseinfo;
8334  while (s[0] && t[0])
8335  {
8336  my_wc_t s_wc,t_wc;
8337 
8338  if ((uchar) s[0] < 128)
8339  {
8340  /*
8341  s[0] is between 0 and 127.
8342  It represents a single byte character.
8343  Convert it into weight according to collation.
8344  */
8345  s_wc= plane00[(uchar) s[0]].tolower;
8346  s++;
8347  }
8348  else
8349  {
8350  int res= my_mb_wc_utf8mb4_no_range(cs, &s_wc, (const uchar*) s);
8351 
8352  /*
8353  In the case of wrong multibyte sequence we will
8354  call strcmp() for byte-to-byte comparison.
8355  */
8356  if (res <= 0)
8357  return strcmp(s, t);
8358  s+= res;
8359 
8360  my_tolower_utf8mb4(uni_plane, &s_wc);
8361  }
8362 
8363 
8364  /* Do the same for the second string */
8365 
8366  if ((uchar) t[0] < 128)
8367  {
8368  /* Convert single byte character into weight */
8369  t_wc= plane00[(uchar) t[0]].tolower;
8370  t++;
8371  }
8372  else
8373  {
8374  int res= my_mb_wc_utf8mb4_no_range(cs, &t_wc, (const uchar*) t);
8375  if (res <= 0)
8376  return strcmp(s, t);
8377  t+= res;
8378 
8379  my_tolower_utf8mb4(uni_plane, &t_wc);
8380  }
8381 
8382  /* Now we have two weights, let's compare them */
8383  if ( s_wc != t_wc )
8384  return ((int) s_wc) - ((int) t_wc);
8385  }
8386  return ((int) (uchar) s[0]) - ((int) (uchar) t[0]);
8387 }
8388 
8389 
8390 static int
8391 my_wildcmp_utf8mb4(const CHARSET_INFO *cs,
8392  const char *str, const char *strend,
8393  const char *wildstr, const char *wildend,
8394  int escape, int w_one, int w_many)
8395 {
8396  return my_wildcmp_unicode(cs, str, strend, wildstr, wildend,
8397  escape, w_one, w_many, cs->caseinfo);
8398 }
8399 
8400 
8401 static size_t
8402 my_strnxfrmlen_utf8mb4(const CHARSET_INFO *cs __attribute__((unused)),
8403  size_t len)
8404 {
8405  /* TODO: fix when working on WL "Unicode new version" */
8406  return (len * 2 + 2) / 4;
8407 }
8408 
8409 
8410 static uint
8411 my_ismbchar_utf8mb4(const CHARSET_INFO *cs, const char *b, const char *e)
8412 {
8413  my_wc_t wc;
8414  int res= my_mb_wc_utf8mb4(cs,&wc, (const uchar*)b, (const uchar*)e);
8415  return (res > 1) ? res : 0;
8416 }
8417 
8418 
8419 static uint
8420 my_mbcharlen_utf8mb4(const CHARSET_INFO *cs __attribute__((unused)), uint c)
8421 {
8422  if (c < 0x80)
8423  return 1;
8424  if (c < 0xc2)
8425  return 0; /* Illegal mb head */
8426  if (c < 0xe0)
8427  return 2;
8428  if (c < 0xf0)
8429  return 3;
8430  if (c < 0xf8)
8431  return 4;
8432  return 0; /* Illegal mb head */;
8433 }
8434 
8435 
8436 static MY_COLLATION_HANDLER my_collation_utf8mb4_general_ci_handler=
8437 {
8438  NULL, /* init */
8439  my_strnncoll_utf8mb4,
8440  my_strnncollsp_utf8mb4,
8441  my_strnxfrm_unicode,
8442  my_strnxfrmlen_utf8mb4,
8443  my_like_range_mb,
8444  my_wildcmp_utf8mb4,
8445  my_strcasecmp_utf8mb4,
8446  my_instr_mb,
8447  my_hash_sort_utf8mb4,
8448  my_propagate_complex
8449 };
8450 
8451 
8452 static MY_COLLATION_HANDLER my_collation_utf8mb4_bin_handler =
8453 {
8454  NULL, /* init */
8455  my_strnncoll_mb_bin,
8456  my_strnncollsp_mb_bin,
8457  my_strnxfrm_unicode_full_bin,
8458  my_strnxfrmlen_unicode_full_bin,
8459  my_like_range_mb,
8460  my_wildcmp_mb_bin,
8461  my_strcasecmp_mb_bin,
8462  my_instr_mb,
8463  my_hash_sort_mb_bin,
8464  my_propagate_simple
8465 };
8466 
8467 
8468 MY_CHARSET_HANDLER my_charset_utf8mb4_handler=
8469 {
8470  NULL, /* init */
8471  my_ismbchar_utf8mb4,
8472  my_mbcharlen_utf8mb4,
8473  my_numchars_mb,
8474  my_charpos_mb,
8475  my_well_formed_len_mb,
8476  my_lengthsp_8bit,
8477  my_numcells_mb,
8478  my_mb_wc_utf8mb4,
8479  my_wc_mb_utf8mb4,
8480  my_mb_ctype_mb,
8481  my_caseup_str_utf8mb4,
8482  my_casedn_str_utf8mb4,
8483  my_caseup_utf8mb4,
8484  my_casedn_utf8mb4,
8485  my_snprintf_8bit,
8486  my_long10_to_str_8bit,
8487  my_longlong10_to_str_8bit,
8488  my_fill_8bit,
8489  my_strntol_8bit,
8490  my_strntoul_8bit,
8491  my_strntoll_8bit,
8492  my_strntoull_8bit,
8493  my_strntod_8bit,
8494  my_strtoll10_8bit,
8495  my_strntoull10rnd_8bit,
8496  my_scan_8bit
8497 };
8498 
8499 
8500 
8501 CHARSET_INFO my_charset_utf8mb4_general_ci=
8502 {
8503  45,0,0, /* number */
8504  MY_CS_COMPILED|MY_CS_PRIMARY|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_UNICODE_SUPPLEMENT, /* state */
8505  MY_UTF8MB4, /* cs name */
8506  MY_UTF8MB4_GENERAL_CI,/* name */
8507  "UTF-8 Unicode", /* comment */
8508  NULL, /* tailoring */
8509  ctype_utf8mb4, /* ctype */
8510  to_lower_utf8mb4, /* to_lower */
8511  to_upper_utf8mb4, /* to_upper */
8512  to_upper_utf8mb4, /* sort_order */
8513  NULL, /* uca */
8514  NULL, /* tab_to_uni */
8515  NULL, /* tab_from_uni */
8516  &my_unicase_default,/* caseinfo */
8517  NULL, /* state_map */
8518  NULL, /* ident_map */
8519  1, /* strxfrm_multiply */
8520  1, /* caseup_multiply */
8521  1, /* casedn_multiply */
8522  1, /* mbminlen */
8523  4, /* mbmaxlen */
8524  0, /* min_sort_char */
8525  0xFFFF, /* max_sort_char */
8526  ' ', /* pad char */
8527  0, /* escape_with_backslash_is_dangerous */
8528  1, /* levels_for_compare */
8529  1, /* levels_for_order */
8530  &my_charset_utf8mb4_handler,
8531  &my_collation_utf8mb4_general_ci_handler
8532 };
8533 
8534 
8535 CHARSET_INFO my_charset_utf8mb4_bin=
8536 {
8537  46,0,0, /* number */
8538  MY_CS_COMPILED|MY_CS_BINSORT|MY_CS_UNICODE|MY_CS_UNICODE_SUPPLEMENT, /* state */
8539  MY_UTF8MB4, /* cs name */
8540  MY_UTF8MB4_BIN, /* name */
8541  "UTF-8 Unicode", /* comment */
8542  NULL, /* tailoring */
8543  ctype_utf8mb4, /* ctype */
8544  to_lower_utf8mb4, /* to_lower */
8545  to_upper_utf8mb4, /* to_upper */
8546  NULL, /* sort_order */
8547  NULL, /* uca */
8548  NULL, /* tab_to_uni */
8549  NULL, /* tab_from_uni */
8550  &my_unicase_default,/* caseinfo */
8551  NULL, /* state_map */
8552  NULL, /* ident_map */
8553  1, /* strxfrm_multiply */
8554  1, /* caseup_multiply */
8555  1, /* casedn_multiply */
8556  1, /* mbminlen */
8557  4, /* mbmaxlen */
8558  0, /* min_sort_char */
8559  0xFFFF, /* max_sort_char */
8560  ' ', /* pad char */
8561  0, /* escape_with_backslash_is_dangerous */
8562  1, /* levels_for_compare */
8563  1, /* levels_for_order */
8564  &my_charset_utf8mb4_handler,
8565  &my_collation_utf8mb4_bin_handler
8566 };
8567 
8568 #endif /* HAVE_CHARSET_utf8mb4 */