2 * Copyright (C) 1999-2003 Free Software Foundation, Inc.
3 * This file is part of the GNU LIBICONV Library.
5 * The GNU LIBICONV Library is free software; you can redistribute it
6 * and/or modify it under the terms of the GNU Library General Public
7 * License as published by the Free Software Foundation; either version 2
8 * of the License, or (at your option) any later version.
10 * The GNU LIBICONV Library is distributed in the hope that it will be
11 * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * Library General Public License for more details.
15 * You should have received a copy of the GNU Library General Public
16 * License along with the GNU LIBICONV Library; see the file COPYING.LIB.
17 * If not, see <http://www.gnu.org/licenses/>.
21 * Transliteration table
24 static const unsigned int translit_data[9116] = {
51 5, ' ', '1',0x2044, '4', ' ',
52 5, ' ', '1',0x2044, '2', ' ',
53 5, ' ', '3',0x2044, '4', ' ',
349 4, 'o', '/', 'o', 'o',
354 3,0x2035,0x2035,0x2035,
362 4,0xB4,0xB4,0xB4,0xB4,
364 4,0x0110,0x1ED3, 'n', 'g',
419 5, ' ', '1',0x2044, '3', ' ',
420 5, ' ', '2',0x2044, '3', ' ',
421 5, ' ', '1',0x2044, '5', ' ',
422 5, ' ', '2',0x2044, '5', ' ',
423 5, ' ', '3',0x2044, '5', ' ',
424 5, ' ', '4',0x2044, '5', ' ',
425 5, ' ', '1',0x2044, '6', ' ',
426 5, ' ', '5',0x2044, '6', ' ',
427 5, ' ', '1',0x2044, '8', ' ',
428 5, ' ', '3',0x2044, '8', ' ',
429 5, ' ', '5',0x2044, '8', ' ',
430 5, ' ', '7',0x2044, '8', ' ',
439 4, 'V', 'I', 'I', 'I',
455 4, 'v', 'i', 'i', 'i',
479 3,0x222B,0x222B,0x222B,
481 3,0x222E,0x222E,0x222E,
493 5, '[', 'N', 'U', 'L', ']',
494 5, '[', 'S', 'O', 'H', ']',
495 5, '[', 'S', 'T', 'X', ']',
496 5, '[', 'E', 'T', 'X', ']',
497 5, '[', 'E', 'O', 'T', ']',
498 5, '[', 'E', 'N', 'Q', ']',
499 5, '[', 'A', 'C', 'K', ']',
500 5, '[', 'B', 'E', 'L', ']',
501 4, '[', 'B', 'S', ']',
502 4, '[', 'H', 'T', ']',
503 4, '[', 'L', 'F', ']',
504 4, '[', 'V', 'T', ']',
505 4, '[', 'F', 'F', ']',
506 4, '[', 'C', 'R', ']',
507 4, '[', 'S', 'O', ']',
508 4, '[', 'S', 'I', ']',
509 5, '[', 'D', 'L', 'E', ']',
510 5, '[', 'D', 'C', '1', ']',
511 5, '[', 'D', 'C', '2', ']',
512 5, '[', 'D', 'C', '3', ']',
513 5, '[', 'D', 'C', '4', ']',
514 5, '[', 'N', 'A', 'K', ']',
515 5, '[', 'S', 'Y', 'N', ']',
516 5, '[', 'E', 'T', 'B', ']',
517 5, '[', 'C', 'A', 'N', ']',
518 4, '[', 'E', 'M', ']',
519 5, '[', 'S', 'U', 'B', ']',
520 5, '[', 'E', 'S', 'C', ']',
521 4, '[', 'F', 'S', ']',
522 4, '[', 'G', 'S', ']',
523 4, '[', 'R', 'S', ']',
524 4, '[', 'U', 'S', ']',
525 4, '[', 'S', 'P', ']',
526 5, '[', 'D', 'E', 'L', ']',
527 4, '[', 'N', 'L', ']',
537 4, '(', '1', '0', ')',
538 4, '(', '1', '1', ')',
539 4, '(', '1', '2', ')',
540 4, '(', '1', '3', ')',
541 4, '(', '1', '4', ')',
542 4, '(', '1', '5', ')',
543 4, '(', '1', '6', ')',
544 4, '(', '1', '7', ')',
545 4, '(', '1', '8', ')',
546 4, '(', '1', '9', ')',
547 4, '(', '2', '0', ')',
557 4, '(', '1', '0', ')',
558 4, '(', '1', '1', ')',
559 4, '(', '1', '2', ')',
560 4, '(', '1', '3', ')',
561 4, '(', '1', '4', ')',
562 4, '(', '1', '5', ')',
563 4, '(', '1', '6', ')',
564 4, '(', '1', '7', ')',
565 4, '(', '1', '8', ')',
566 4, '(', '1', '9', ')',
567 4, '(', '2', '0', ')',
679 4,0x222B,0x222B,0x222B,0x222B,
1055 4, '(',0x1100,0x1161, ')',
1056 4, '(',0x1102,0x1161, ')',
1057 4, '(',0x1103,0x1161, ')',
1058 4, '(',0x1105,0x1161, ')',
1059 4, '(',0x1106,0x1161, ')',
1060 4, '(',0x1107,0x1161, ')',
1061 4, '(',0x1109,0x1161, ')',
1062 4, '(',0x110B,0x1161, ')',
1063 4, '(',0x110C,0x1161, ')',
1064 4, '(',0x110E,0x1161, ')',
1065 4, '(',0x110F,0x1161, ')',
1066 4, '(',0x1110,0x1161, ')',
1067 4, '(',0x1111,0x1161, ')',
1068 4, '(',0x1112,0x1161, ')',
1069 4, '(',0x110C,0x116E, ')',
1070 7, '(',0x110B,0x1169,0x110C,0x1165,0x11AB, ')',
1071 6, '(',0x110B,0x1169,0x1112,0x116E, ')',
1109 4, '(', '2', '1', ')',
1110 4, '(', '2', '2', ')',
1111 4, '(', '2', '3', ')',
1112 4, '(', '2', '4', ')',
1113 4, '(', '2', '5', ')',
1114 4, '(', '2', '6', ')',
1115 4, '(', '2', '7', ')',
1116 4, '(', '2', '8', ')',
1117 4, '(', '2', '9', ')',
1118 4, '(', '3', '0', ')',
1119 4, '(', '3', '1', ')',
1120 4, '(', '3', '2', ')',
1121 4, '(', '3', '3', ')',
1122 4, '(', '3', '4', ')',
1123 4, '(', '3', '5', ')',
1138 4, '(',0x1100,0x1161, ')',
1139 4, '(',0x1102,0x1161, ')',
1140 4, '(',0x1103,0x1161, ')',
1141 4, '(',0x1105,0x1161, ')',
1142 4, '(',0x1106,0x1161, ')',
1143 4, '(',0x1107,0x1161, ')',
1144 4, '(',0x1109,0x1161, ')',
1145 4, '(',0x110B,0x1161, ')',
1146 4, '(',0x110C,0x1161, ')',
1147 4, '(',0x110E,0x1161, ')',
1148 4, '(',0x110F,0x1161, ')',
1149 4, '(',0x1110,0x1161, ')',
1150 4, '(',0x1111,0x1161, ')',
1151 4, '(',0x1112,0x1161, ')',
1152 7, '(',0x110E,0x1161,0x11B7,0x1100,0x1169, ')',
1153 6, '(',0x110C,0x116E,0x110B,0x1174, ')',
1203 4, '(', '3', '6', ')',
1204 4, '(', '3', '7', ')',
1205 4, '(', '3', '8', ')',
1206 4, '(', '3', '9', ')',
1207 4, '(', '4', '0', ')',
1208 4, '(', '4', '1', ')',
1209 4, '(', '4', '2', ')',
1210 4, '(', '4', '3', ')',
1211 4, '(', '4', '4', ')',
1212 4, '(', '4', '5', ')',
1213 4, '(', '4', '6', ')',
1214 4, '(', '4', '7', ')',
1215 4, '(', '4', '8', ')',
1216 4, '(', '4', '9', ')',
1217 4, '(', '5', '0', ')',
1281 4,0x30A2,0x30D1,0x30FC,0x30C8,
1282 4,0x30A2,0x30EB,0x30D5,0x30A1,
1283 4,0x30A2,0x30F3,0x30DA,0x30A2,
1284 3,0x30A2,0x30FC,0x30EB,
1285 4,0x30A4,0x30CB,0x30F3,0x30B0,
1286 3,0x30A4,0x30F3,0x30C1,
1287 3,0x30A6,0x30A9,0x30F3,
1288 5,0x30A8,0x30B9,0x30AF,0x30FC,0x30C9,
1289 4,0x30A8,0x30FC,0x30AB,0x30FC,
1290 3,0x30AA,0x30F3,0x30B9,
1291 3,0x30AA,0x30FC,0x30E0,
1292 3,0x30AB,0x30A4,0x30EA,
1293 4,0x30AB,0x30E9,0x30C3,0x30C8,
1294 4,0x30AB,0x30ED,0x30EA,0x30FC,
1295 3,0x30AC,0x30ED,0x30F3,
1296 3,0x30AC,0x30F3,0x30DE,
1298 3,0x30AE,0x30CB,0x30FC,
1299 4,0x30AD,0x30E5,0x30EA,0x30FC,
1300 4,0x30AE,0x30EB,0x30C0,0x30FC,
1302 5,0x30AD,0x30ED,0x30B0,0x30E9,0x30E0,
1303 6,0x30AD,0x30ED,0x30E1,0x30FC,0x30C8,0x30EB,
1304 5,0x30AD,0x30ED,0x30EF,0x30C3,0x30C8,
1305 3,0x30B0,0x30E9,0x30E0,
1306 5,0x30B0,0x30E9,0x30E0,0x30C8,0x30F3,
1307 5,0x30AF,0x30EB,0x30BC,0x30A4,0x30ED,
1308 4,0x30AF,0x30ED,0x30FC,0x30CD,
1309 3,0x30B1,0x30FC,0x30B9,
1310 3,0x30B3,0x30EB,0x30CA,
1311 3,0x30B3,0x30FC,0x30DD,
1312 4,0x30B5,0x30A4,0x30AF,0x30EB,
1313 5,0x30B5,0x30F3,0x30C1,0x30FC,0x30E0,
1314 4,0x30B7,0x30EA,0x30F3,0x30B0,
1315 3,0x30BB,0x30F3,0x30C1,
1316 3,0x30BB,0x30F3,0x30C8,
1317 3,0x30C0,0x30FC,0x30B9,
1322 3,0x30CE,0x30C3,0x30C8,
1323 3,0x30CF,0x30A4,0x30C4,
1324 5,0x30D1,0x30FC,0x30BB,0x30F3,0x30C8,
1325 3,0x30D1,0x30FC,0x30C4,
1326 4,0x30D0,0x30FC,0x30EC,0x30EB,
1327 5,0x30D4,0x30A2,0x30B9,0x30C8,0x30EB,
1328 3,0x30D4,0x30AF,0x30EB,
1331 5,0x30D5,0x30A1,0x30E9,0x30C3,0x30C9,
1332 4,0x30D5,0x30A3,0x30FC,0x30C8,
1333 5,0x30D6,0x30C3,0x30B7,0x30A7,0x30EB,
1334 3,0x30D5,0x30E9,0x30F3,
1335 5,0x30D8,0x30AF,0x30BF,0x30FC,0x30EB,
1337 3,0x30DA,0x30CB,0x30D2,
1338 3,0x30D8,0x30EB,0x30C4,
1339 3,0x30DA,0x30F3,0x30B9,
1340 3,0x30DA,0x30FC,0x30B8,
1341 3,0x30D9,0x30FC,0x30BF,
1342 4,0x30DD,0x30A4,0x30F3,0x30C8,
1343 3,0x30DC,0x30EB,0x30C8,
1345 3,0x30DD,0x30F3,0x30C9,
1346 3,0x30DB,0x30FC,0x30EB,
1347 3,0x30DB,0x30FC,0x30F3,
1348 4,0x30DE,0x30A4,0x30AF,0x30ED,
1349 3,0x30DE,0x30A4,0x30EB,
1350 3,0x30DE,0x30C3,0x30CF,
1351 3,0x30DE,0x30EB,0x30AF,
1352 5,0x30DE,0x30F3,0x30B7,0x30E7,0x30F3,
1353 4,0x30DF,0x30AF,0x30ED,0x30F3,
1355 5,0x30DF,0x30EA,0x30D0,0x30FC,0x30EB,
1357 4,0x30E1,0x30AC,0x30C8,0x30F3,
1358 4,0x30E1,0x30FC,0x30C8,0x30EB,
1359 3,0x30E4,0x30FC,0x30C9,
1360 3,0x30E4,0x30FC,0x30EB,
1361 3,0x30E6,0x30A2,0x30F3,
1362 4,0x30EA,0x30C3,0x30C8,0x30EB,
1364 3,0x30EB,0x30D4,0x30FC,
1365 4,0x30EB,0x30FC,0x30D6,0x30EB,
1367 5,0x30EC,0x30F3,0x30C8,0x30B2,0x30F3,
1368 3,0x30EF,0x30C3,0x30C8,
1401 4, 'd', 'm', '^', '2',
1402 4, 'd', 'm', '^', '3',
1408 4,0x682A,0x5F0F,0x4F1A,0x793E,
1418 4, 'k', 'c', 'a', 'l',
1440 4, 'm', 'm', '^', '2',
1441 4, 'c', 'm', '^', '2',
1443 4, 'k', 'm', '^', '2',
1444 4, 'm', 'm', '^', '3',
1445 4, 'c', 'm', '^', '3',
1447 4, 'k', 'm', '^', '3',
1449 5, 'm', '/', 's', '^', '2',
1455 5, 'r', 'a', 'd', '/', 's',
1456 7, 'r', 'a', 'd', '/', 's', '^', '2',
1475 4, 'a', '.', 'm', '.',
1479 4, 'C', '/', 'k', 'g',
1497 4, 'p', '.', 'm', '.',
3703 static const short translit_page00[344] = {
3704 0, 2, 4, 6, -1, 9, 13, 15, /* 0xa0-0xa7 */
3705 18, 20, 24, 26, 29, 33, 35, -1, /* 0xa8-0xaf */
3706 39, 42, 46, 49, 52, 54, 56, 58, /* 0xb0-0xb7 */
3707 60, 62, 65, 67, 70, 76, 82, 88, /* 0xb8-0xbf */
3708 90, 93, 96, 99, 102, 105, 107, 110, /* 0xc0-0xc7 */
3709 112, 115, 118, 121, 124, 127, 130, 133, /* 0xc8-0xcf */
3710 136, 138, 141, 144, 147, 150, 153, 156, /* 0xd0-0xd7 */
3711 158, 160, 163, 166, 169, 172, 175, 178, /* 0xd8-0xdf */
3712 181, 184, 187, 190, 193, 196, 198, 201, /* 0xe0-0xe7 */
3713 203, 206, 209, 212, 215, 218, 221, 224, /* 0xe8-0xef */
3714 227, 229, 232, 235, 238, 241, 244, 247, /* 0xf0-0xf7 */
3715 249, 251, 254, 257, 260, 263, 266, 269, /* 0xf8-0xff */
3717 272, 274, 276, 278, 280, 282, 284, 287, /* 0x00-0x07 */
3718 290, 293, 296, 298, 300, 302, 304, 306, /* 0x08-0x0f */
3719 308, 310, 312, 314, 316, 318, 320, 322, /* 0x10-0x17 */
3720 324, 326, 328, 330, 332, 335, 338, 340, /* 0x18-0x1f */
3721 342, 344, 346, 348, 350, 353, 356, 358, /* 0x20-0x27 */
3722 360, 363, 366, 368, 370, 372, 374, 376, /* 0x28-0x2f */
3723 378, 380, 382, 385, 388, 391, 394, 396, /* 0x30-0x37 */
3724 -1, 398, 400, 402, 404, 406, 408, 410, /* 0x38-0x3f */
3725 412, 414, 416, 418, 421, 424, 426, 428, /* 0x40-0x47 */
3726 430, 432, -1, -1, 435, 437, 439, 441, /* 0x48-0x4f */
3727 443, 446, 449, 452, 455, 458, 461, 463, /* 0x50-0x57 */
3728 465, 467, 469, 472, 475, 478, 481, 483, /* 0x58-0x5f */
3729 485, 487, 489, 491, 493, 495, 497, 499, /* 0x60-0x67 */
3730 501, 504, 507, 509, 511, 513, 515, 517, /* 0x68-0x6f */
3731 519, 522, 525, 527, 529, 532, 535, 538, /* 0x70-0x77 */
3732 541, 544, 547, 550, 552, 554, 556, 558, /* 0x78-0x7f */
3733 -1, -1, -1, -1, -1, -1, -1, -1, /* 0x80-0x87 */
3734 -1, -1, -1, -1, -1, -1, -1, -1, /* 0x88-0x8f */
3735 -1, -1, 560, -1, -1, -1, -1, -1, /* 0x90-0x97 */
3736 -1, -1, -1, -1, -1, -1, -1, -1, /* 0x98-0x9f */
3737 -1, -1, -1, -1, -1, -1, -1, -1, /* 0xa0-0xa7 */
3738 -1, -1, -1, -1, -1, -1, -1, -1, /* 0xa8-0xaf */
3739 -1, -1, -1, -1, -1, -1, -1, -1, /* 0xb0-0xb7 */
3740 -1, -1, -1, -1, -1, -1, -1, -1, /* 0xb8-0xbf */
3741 -1, -1, -1, -1, 562, 565, 568, 571, /* 0xc0-0xc7 */
3742 574, 577, 580, 583, 586, -1, -1, -1, /* 0xc8-0xcf */
3743 -1, -1, -1, -1, -1, -1, -1, -1, /* 0xd0-0xd7 */
3744 -1, -1, -1, -1, -1, -1, -1, -1, /* 0xd8-0xdf */
3745 -1, -1, -1, -1, -1, -1, -1, -1, /* 0xe0-0xe7 */
3746 -1, -1, -1, -1, -1, -1, -1, -1, /* 0xe8-0xef */
3747 -1, 589, 592, 595, -1, -1, -1, -1, /* 0xf0-0xf7 */
3749 static const short translit_page02[8] = {
3750 598, 600, 602, 604, -1, -1, -1, -1, /* 0x18-0x1f */
3752 static const short translit_page02_1[40] = {
3753 -1, 606, 608, 610, 612, 614, -1, -1, /* 0xb8-0xbf */
3754 -1, -1, -1, -1, -1, -1, 616, -1, /* 0xc0-0xc7 */
3755 618, 620, 622, 624, -1, 626, -1, -1, /* 0xc8-0xcf */
3756 -1, -1, -1, -1, -1, -1, -1, -1, /* 0xd0-0xd7 */
3757 -1, -1, -1, -1, 628, 630, -1, -1, /* 0xd8-0xdf */
3759 static const short translit_page03[48] = {
3760 632, 634, 636, -1, -1, 638, 640, -1, /* 0xd0-0xd7 */
3761 -1, -1, -1, -1, -1, -1, -1, -1, /* 0xd8-0xdf */
3762 -1, -1, -1, -1, -1, -1, -1, -1, /* 0xe0-0xe7 */
3763 -1, -1, -1, -1, -1, -1, -1, -1, /* 0xe8-0xef */
3764 642, 644, 646, -1, 648, 650, -1, -1, /* 0xf0-0xf7 */
3765 -1, 652, -1, -1, -1, -1, -1, -1, /* 0xf8-0xff */
3767 static const short translit_page05[8] = {
3768 657, 660, 663, -1, -1, -1, -1, -1, /* 0xf0-0xf7 */
3770 static const short translit_page06[16] = {
3771 -1, -1, -1, -1, -1, 666, 669, 672, /* 0x70-0x77 */
3772 675, -1, -1, -1, -1, -1, -1, -1, /* 0x78-0x7f */
3774 static const short translit_page0e[48] = {
3775 -1, -1, -1, 681, -1, -1, -1, -1, /* 0xb0-0xb7 */
3776 -1, -1, -1, -1, -1, -1, -1, -1, /* 0xb8-0xbf */
3777 -1, -1, -1, -1, -1, -1, -1, -1, /* 0xc0-0xc7 */
3778 -1, -1, -1, -1, -1, -1, -1, -1, /* 0xc8-0xcf */
3779 -1, -1, -1, -1, -1, -1, -1, -1, /* 0xd0-0xd7 */
3780 -1, -1, -1, -1, 684, 687, -1, -1, /* 0xd8-0xdf */
3782 static const short translit_page0f[16] = {
3783 -1, -1, -1, -1, -1, -1, -1, 690, /* 0x70-0x77 */
3784 -1, 693, -1, -1, -1, -1, -1, -1, /* 0x78-0x7f */
3786 static const short translit_page1e[160] = {
3787 -1, -1, 696, 698, -1, -1, -1, -1, /* 0x00-0x07 */
3788 -1, -1, 700, 702, -1, -1, -1, -1, /* 0x08-0x0f */
3789 -1, -1, -1, -1, -1, -1, -1, -1, /* 0x10-0x17 */
3790 -1, -1, -1, -1, -1, -1, 704, 706, /* 0x18-0x1f */
3791 -1, -1, -1, -1, -1, -1, -1, -1, /* 0x20-0x27 */
3792 -1, -1, -1, -1, -1, -1, -1, -1, /* 0x28-0x2f */
3793 -1, -1, -1, -1, -1, -1, -1, -1, /* 0x30-0x37 */
3794 -1, -1, -1, -1, -1, -1, -1, -1, /* 0x38-0x3f */
3795 708, 710, -1, -1, -1, -1, -1, -1, /* 0x40-0x47 */
3796 -1, -1, -1, -1, -1, -1, -1, -1, /* 0x48-0x4f */
3797 -1, -1, -1, -1, -1, -1, 712, 714, /* 0x50-0x57 */
3798 -1, -1, -1, -1, -1, -1, -1, -1, /* 0x58-0x5f */
3799 716, 718, -1, -1, -1, -1, -1, -1, /* 0x60-0x67 */
3800 -1, -1, 720, 722, -1, -1, -1, -1, /* 0x68-0x6f */
3801 -1, -1, -1, -1, -1, -1, -1, -1, /* 0x70-0x77 */
3802 -1, -1, -1, -1, -1, -1, -1, -1, /* 0x78-0x7f */
3803 724, 727, 730, 733, 736, 739, -1, -1, /* 0x80-0x87 */
3804 -1, -1, -1, -1, -1, -1, -1, -1, /* 0x88-0x8f */
3805 -1, -1, -1, -1, -1, -1, -1, -1, /* 0x90-0x97 */
3806 -1, -1, 742, -1, -1, -1, -1, -1, /* 0x98-0x9f */
3808 static const short translit_page1e_2[8] = {
3809 -1, -1, 745, 748, -1, -1, -1, -1, /* 0xf0-0xf7 */
3811 static const short translit_page20[88] = {
3812 -1, -1, 751, 753, 755, 757, 759, -1, /* 0x00-0x07 */
3813 761, 763, 765, -1, -1, -1, -1, -1, /* 0x08-0x0f */
3814 767, 769, 771, 773, 775, 777, -1, -1, /* 0x10-0x17 */
3815 779, 781, 783, 785, 787, 789, 791, 793, /* 0x18-0x1f */
3816 795, -1, 797, -1, 799, 801, 804, -1, /* 0x20-0x27 */
3817 -1, -1, -1, -1, -1, -1, -1, -1, /* 0x28-0x2f */
3818 808, -1, 813, 815, 818, -1, 822, 825, /* 0x30-0x37 */
3819 -1, 829, 831, -1, 833, -1, -1, -1, /* 0x38-0x3f */
3820 -1, -1, -1, -1, 836, -1, -1, 838, /* 0x40-0x47 */
3821 841, 844, -1, -1, -1, -1, -1, -1, /* 0x48-0x4f */
3822 -1, -1, -1, -1, -1, -1, -1, 847, /* 0x50-0x57 */
3824 static const short translit_page20_3[8] = {
3825 852, -1, -1, 855, 860, -1, -1, -1, /* 0xa8-0xaf */
3827 static const short translit_page21[216] = {
3828 864, 868, 872, 874, -1, 877, 881, 885, /* 0x00-0x07 */
3829 -1, 887, 890, 892, 894, 896, 898, 900, /* 0x08-0x0f */
3830 902, 904, 906, 908, -1, 910, 912, -1, /* 0x10-0x17 */
3831 -1, 915, 917, 919, 921, 923, -1, -1, /* 0x18-0x1f */
3832 -1, 925, 929, -1, 932, -1, 934, -1, /* 0x20-0x27 */
3833 938, -1, -1, -1, 940, 942, 944, 946, /* 0x28-0x2f */
3834 948, 950, -1, 952, 954, 956, 958, 960, /* 0x30-0x37 */
3835 962, 964, -1, 966, -1, 970, 972, 974, /* 0x38-0x3f */
3836 976, -1, -1, -1, -1, 978, 980, 982, /* 0x40-0x47 */
3837 984, 986, -1, -1, -1, -1, -1, -1, /* 0x48-0x4f */
3838 -1, -1, -1, 988, 994, 1000, 1006, 1012, /* 0x50-0x57 */
3839 1018, 1024, 1030, 1036, 1042, 1048, 1054, 1060, /* 0x58-0x5f */
3840 1064, 1066, 1069, 1073, 1076, 1078, 1081, 1085, /* 0x60-0x67 */
3841 1090, 1093, 1095, 1098, 1102, 1104, 1106, 1108, /* 0x68-0x6f */
3842 1110, 1112, 1115, 1119, 1122, 1124, 1127, 1131, /* 0x70-0x77 */
3843 1136, 1139, 1141, 1144, 1148, 1150, 1152, 1154, /* 0x78-0x7f */
3844 -1, -1, -1, -1, -1, -1, -1, -1, /* 0x80-0x87 */
3845 -1, -1, -1, -1, -1, -1, -1, -1, /* 0x88-0x8f */
3846 1156, 1159, 1161, 1164, 1166, -1, -1, -1, /* 0x90-0x97 */
3847 -1, -1, -1, -1, -1, -1, -1, -1, /* 0x98-0x9f */
3848 -1, -1, -1, -1, -1, -1, -1, -1, /* 0xa0-0xa7 */
3849 -1, -1, -1, -1, -1, -1, -1, -1, /* 0xa8-0xaf */
3850 -1, -1, -1, -1, -1, -1, -1, -1, /* 0xb0-0xb7 */
3851 -1, -1, -1, -1, -1, -1, -1, -1, /* 0xb8-0xbf */
3852 -1, -1, -1, -1, -1, -1, -1, -1, /* 0xc0-0xc7 */
3853 -1, -1, -1, -1, -1, -1, -1, -1, /* 0xc8-0xcf */
3854 1170, -1, 1173, -1, 1176, -1, -1, -1, /* 0xd0-0xd7 */
3856 static const short translit_page22[96] = {
3857 -1, -1, 1180, -1, -1, 1182, 1184, 1186, /* 0x10-0x17 */
3858 -1, 1188, -1, -1, -1, -1, -1, -1, /* 0x18-0x1f */
3859 -1, -1, -1, 1190, -1, -1, -1, -1, /* 0x20-0x27 */
3860 -1, -1, -1, -1, 1192, 1195, -1, 1199, /* 0x28-0x2f */
3861 1202, -1, -1, -1, -1, -1, 1206, -1, /* 0x30-0x37 */
3862 -1, -1, -1, -1, 1208, -1, -1, -1, /* 0x38-0x3f */
3863 -1, -1, -1, -1, -1, -1, -1, -1, /* 0x40-0x47 */
3864 -1, -1, -1, -1, -1, -1, -1, -1, /* 0x48-0x4f */
3865 -1, -1, -1, -1, -1, -1, -1, -1, /* 0x50-0x57 */
3866 -1, -1, -1, -1, -1, -1, -1, -1, /* 0x58-0x5f */
3867 1210, -1, -1, -1, 1213, 1216, -1, -1, /* 0x60-0x67 */
3868 -1, -1, 1219, 1222, -1, -1, -1, -1, /* 0x68-0x6f */
3870 static const short translit_page22_4[48] = {
3871 -1, -1, -1, -1, -1, 1225, -1, -1, /* 0xc0-0xc7 */
3872 -1, -1, -1, -1, -1, -1, -1, -1, /* 0xc8-0xcf */
3873 -1, -1, -1, -1, -1, -1, -1, -1, /* 0xd0-0xd7 */
3874 1227, 1231, -1, -1, -1, -1, -1, -1, /* 0xd8-0xdf */
3875 -1, -1, -1, -1, -1, -1, -1, -1, /* 0xe0-0xe7 */
3876 -1, -1, -1, -1, -1, -1, -1, 1235, /* 0xe8-0xef */
3878 static const short translit_page24[240] = {
3879 1239, 1245, 1251, 1257, 1263, 1269, 1275, 1281, /* 0x00-0x07 */
3880 1287, 1292, 1297, 1302, 1307, 1312, 1317, 1322, /* 0x08-0x0f */
3881 1327, 1333, 1339, 1345, 1351, 1357, 1363, 1369, /* 0x10-0x17 */
3882 1375, 1381, 1386, 1392, 1398, 1403, 1408, 1413, /* 0x18-0x1f */
3883 1418, 1423, -1, -1, 1429, -1, -1, -1, /* 0x20-0x27 */
3884 -1, -1, -1, -1, -1, -1, -1, -1, /* 0x28-0x2f */
3885 -1, -1, -1, -1, -1, -1, -1, -1, /* 0x30-0x37 */
3886 -1, -1, -1, -1, -1, -1, -1, -1, /* 0x38-0x3f */
3887 -1, -1, -1, -1, -1, -1, -1, -1, /* 0x40-0x47 */
3888 -1, -1, -1, -1, -1, -1, -1, -1, /* 0x48-0x4f */
3889 -1, -1, -1, -1, -1, -1, -1, -1, /* 0x50-0x57 */
3890 -1, -1, -1, -1, -1, -1, -1, -1, /* 0x58-0x5f */
3891 1434, 1438, 1442, 1446, 1450, 1454, 1458, 1462, /* 0x60-0x67 */
3892 1466, 1470, 1475, 1480, 1485, 1490, 1495, 1500, /* 0x68-0x6f */
3893 1505, 1510, 1515, 1520, 1525, 1529, 1533, 1537, /* 0x70-0x77 */
3894 1541, 1545, 1549, 1553, 1557, 1561, 1566, 1571, /* 0x78-0x7f */
3895 1576, 1581, 1586, 1591, 1596, 1601, 1606, 1611, /* 0x80-0x87 */
3896 1616, 1619, 1622, 1625, 1628, 1631, 1634, 1637, /* 0x88-0x8f */
3897 1640, 1643, 1647, 1651, 1655, 1659, 1663, 1667, /* 0x90-0x97 */
3898 1671, 1675, 1679, 1683, 1687, 1691, 1695, 1699, /* 0x98-0x9f */
3899 1703, 1707, 1711, 1715, 1719, 1723, 1727, 1731, /* 0xa0-0xa7 */
3900 1735, 1739, 1743, 1747, 1751, 1755, 1759, 1763, /* 0xa8-0xaf */
3901 1767, 1771, 1775, 1779, 1783, 1787, 1791, 1795, /* 0xb0-0xb7 */
3902 1799, 1803, 1807, 1811, 1815, 1819, 1823, 1827, /* 0xb8-0xbf */
3903 1831, 1835, 1839, 1843, 1847, 1851, 1855, 1859, /* 0xc0-0xc7 */
3904 1863, 1867, 1871, 1875, 1879, 1883, 1887, 1891, /* 0xc8-0xcf */
3905 1895, 1899, 1903, 1907, 1911, 1915, 1919, 1923, /* 0xd0-0xd7 */
3906 1927, 1931, 1935, 1939, 1943, 1947, 1951, 1955, /* 0xd8-0xdf */
3907 1959, 1963, 1967, 1971, 1975, 1979, 1983, 1987, /* 0xe0-0xe7 */
3908 1991, 1995, 1999, -1, -1, -1, -1, -1, /* 0xe8-0xef */
3910 static const short translit_page25[64] = {
3911 2003, -1, 2005, -1, -1, -1, -1, -1, /* 0x00-0x07 */
3912 -1, -1, -1, -1, 2007, -1, -1, -1, /* 0x08-0x0f */
3913 2009, -1, -1, -1, 2011, -1, -1, -1, /* 0x10-0x17 */
3914 2013, -1, -1, -1, 2015, -1, -1, -1, /* 0x18-0x1f */
3915 -1, -1, -1, -1, 2017, -1, -1, -1, /* 0x20-0x27 */
3916 -1, -1, -1, -1, 2019, -1, -1, -1, /* 0x28-0x2f */
3917 -1, -1, -1, -1, 2021, -1, -1, -1, /* 0x30-0x37 */
3918 -1, -1, -1, -1, 2023, -1, -1, -1, /* 0x38-0x3f */
3920 static const short translit_page2a[8] = {
3921 -1, -1, -1, -1, 2032, 2036, 2039, -1, /* 0x70-0x77 */
3923 static const short translit_page2f[216] = {
3924 2047, 2049, 2051, 2053, 2055, 2057, 2059, 2061, /* 0x00-0x07 */
3925 2063, 2065, 2067, 2069, 2071, 2073, 2075, 2077, /* 0x08-0x0f */
3926 2079, 2081, 2083, 2085, 2087, 2089, 2091, 2093, /* 0x10-0x17 */
3927 2095, 2097, 2099, 2101, 2103, 2105, 2107, 2109, /* 0x18-0x1f */
3928 2111, 2113, 2115, 2117, 2119, 2121, 2123, 2125, /* 0x20-0x27 */
3929 2127, 2129, 2131, 2133, 2135, 2137, 2139, 2141, /* 0x28-0x2f */
3930 2143, 2145, 2147, 2149, 2151, 2153, 2155, 2157, /* 0x30-0x37 */
3931 2159, 2161, 2163, 2165, 2167, 2169, 2171, 2173, /* 0x38-0x3f */
3932 2175, 2177, 2179, 2181, 2183, 2185, 2187, 2189, /* 0x40-0x47 */
3933 2191, 2193, 2195, 2197, 2199, 2201, 2203, 2205, /* 0x48-0x4f */
3934 2207, 2209, 2211, 2213, 2215, 2217, 2219, 2221, /* 0x50-0x57 */
3935 2223, 2225, 2227, 2229, 2231, 2233, 2235, 2237, /* 0x58-0x5f */
3936 2239, 2241, 2243, 2245, 2247, 2249, 2251, 2253, /* 0x60-0x67 */
3937 2255, 2257, 2259, 2261, 2263, 2265, 2267, 2269, /* 0x68-0x6f */
3938 2271, 2273, 2275, 2277, 2279, 2281, 2283, 2285, /* 0x70-0x77 */
3939 2287, 2289, 2291, 2293, 2295, 2297, 2299, 2301, /* 0x78-0x7f */
3940 2303, 2305, 2307, 2309, 2311, 2313, 2315, 2317, /* 0x80-0x87 */
3941 2319, 2321, 2323, 2325, 2327, 2329, 2331, 2333, /* 0x88-0x8f */
3942 2335, 2337, 2339, 2341, 2343, 2345, 2347, 2349, /* 0x90-0x97 */
3943 2351, 2353, 2355, 2357, 2359, 2361, 2363, 2365, /* 0x98-0x9f */
3944 2367, 2369, 2371, 2373, 2375, 2377, 2379, 2381, /* 0xa0-0xa7 */
3945 2383, 2385, 2387, 2389, 2391, 2393, 2395, 2397, /* 0xa8-0xaf */
3946 2399, 2401, 2403, 2405, 2407, 2409, 2411, 2413, /* 0xb0-0xb7 */
3947 2415, 2417, 2419, 2421, 2423, 2425, 2427, 2429, /* 0xb8-0xbf */
3948 2431, 2433, 2435, 2437, 2439, 2441, 2443, 2445, /* 0xc0-0xc7 */
3949 2447, 2449, 2451, 2453, 2455, 2457, 2459, 2461, /* 0xc8-0xcf */
3950 2463, 2465, 2467, 2469, 2471, 2473, -1, -1, /* 0xd0-0xd7 */
3952 static const short translit_page30[248] = {
3953 2475, -1, -1, -1, -1, -1, -1, -1, /* 0x00-0x07 */
3954 -1, -1, -1, -1, -1, -1, -1, -1, /* 0x08-0x0f */
3955 -1, -1, -1, -1, -1, -1, -1, -1, /* 0x10-0x17 */
3956 -1, -1, -1, -1, -1, -1, -1, -1, /* 0x18-0x1f */
3957 -1, -1, -1, -1, -1, -1, -1, -1, /* 0x20-0x27 */
3958 -1, -1, -1, -1, -1, -1, -1, -1, /* 0x28-0x2f */
3959 -1, -1, -1, -1, -1, -1, 2477, -1, /* 0x30-0x37 */
3960 2479, 2481, 2483, -1, -1, -1, -1, -1, /* 0x38-0x3f */
3961 -1, 2485, -1, 2487, -1, 2489, -1, 2491, /* 0x40-0x47 */
3962 -1, 2493, -1, -1, -1, -1, -1, -1, /* 0x48-0x4f */
3963 -1, -1, -1, -1, -1, -1, -1, -1, /* 0x50-0x57 */
3964 -1, -1, -1, -1, -1, -1, -1, -1, /* 0x58-0x5f */
3965 -1, -1, -1, 2495, -1, -1, -1, -1, /* 0x60-0x67 */
3966 -1, -1, -1, -1, -1, -1, -1, -1, /* 0x68-0x6f */
3967 -1, -1, -1, -1, -1, -1, -1, -1, /* 0x70-0x77 */
3968 -1, -1, -1, -1, -1, -1, -1, -1, /* 0x78-0x7f */
3969 -1, -1, -1, 2497, -1, 2499, -1, 2501, /* 0x80-0x87 */
3970 -1, -1, -1, -1, -1, -1, 2503, -1, /* 0x88-0x8f */
3971 -1, -1, -1, -1, -1, 2505, 2507, -1, /* 0x90-0x97 */
3972 -1, -1, -1, 2509, 2512, -1, -1, -1, /* 0x98-0x9f */
3973 2515, 2517, -1, 2519, -1, 2521, -1, 2523, /* 0xa0-0xa7 */
3974 -1, 2525, -1, -1, -1, -1, -1, -1, /* 0xa8-0xaf */
3975 -1, -1, -1, -1, -1, -1, -1, -1, /* 0xb0-0xb7 */
3976 -1, -1, -1, -1, -1, -1, -1, -1, /* 0xb8-0xbf */
3977 -1, -1, -1, 2527, -1, -1, -1, -1, /* 0xc0-0xc7 */
3978 -1, -1, -1, -1, -1, -1, -1, -1, /* 0xc8-0xcf */
3979 -1, -1, -1, -1, -1, -1, -1, -1, /* 0xd0-0xd7 */
3980 -1, -1, -1, -1, -1, -1, -1, -1, /* 0xd8-0xdf */
3981 -1, -1, -1, 2529, -1, 2531, -1, 2533, /* 0xe0-0xe7 */
3982 -1, -1, -1, -1, -1, -1, 2535, -1, /* 0xe8-0xef */
3983 -1, -1, -1, -1, -1, 2537, 2539, -1, /* 0xf0-0xf7 */
3985 static const short translit_page31[96] = {
3986 -1, 2541, 2543, 2545, 2547, 2549, 2551, 2553, /* 0x30-0x37 */
3987 2555, 2557, 2559, 2561, 2563, 2565, 2567, 2569, /* 0x38-0x3f */
3988 2571, 2573, 2575, 2577, 2579, 2581, 2583, 2585, /* 0x40-0x47 */
3989 2587, 2589, 2591, 2593, 2595, 2597, 2599, 2601, /* 0x48-0x4f */
3990 2603, 2605, 2607, 2609, 2611, 2613, 2615, 2617, /* 0x50-0x57 */
3991 2619, 2621, 2623, 2625, 2627, 2629, 2631, 2633, /* 0x58-0x5f */
3992 2635, 2637, 2639, 2641, 2643, 2645, 2647, 2649, /* 0x60-0x67 */
3993 2651, 2653, 2655, 2657, 2659, 2661, 2663, 2665, /* 0x68-0x6f */
3994 2667, 2669, 2671, 2673, 2675, 2677, 2679, 2681, /* 0x70-0x77 */
3995 2683, 2685, 2687, 2689, 2691, 2693, 2695, 2697, /* 0x78-0x7f */
3996 2699, 2701, 2703, 2705, 2707, 2709, 2711, 2713, /* 0x80-0x87 */
3997 2715, 2717, 2719, 2721, 2723, 2725, 2727, -1, /* 0x88-0x8f */
3999 static const short translit_page31_5[528] = {
4000 2729, 2731, 2733, 2735, 2737, 2739, 2741, 2743, /* 0xf0-0xf7 */
4001 2745, 2747, 2749, 2751, 2753, 2755, 2757, 2759, /* 0xf8-0xff */
4003 2761, 2765, 2769, 2773, 2777, 2781, 2785, 2789, /* 0x00-0x07 */
4004 2793, 2797, 2801, 2805, 2809, 2813, 2817, 2822, /* 0x08-0x0f */
4005 2827, 2832, 2837, 2842, 2847, 2852, 2857, 2862, /* 0x10-0x17 */
4006 2867, 2872, 2877, 2882, 2887, 2892, 2900, -1, /* 0x18-0x1f */
4007 2907, 2911, 2915, 2919, 2923, 2927, 2931, 2935, /* 0x20-0x27 */
4008 2939, 2943, 2947, 2951, 2955, 2959, 2963, 2967, /* 0x28-0x2f */
4009 2971, 2975, 2979, 2983, 2987, 2991, 2995, 2999, /* 0x30-0x37 */
4010 3003, 3007, 3011, 3015, 3019, 3023, 3027, 3031, /* 0x38-0x3f */
4011 3035, 3039, 3043, 3047, -1, -1, -1, -1, /* 0x40-0x47 */
4012 -1, -1, -1, -1, -1, -1, -1, -1, /* 0x48-0x4f */
4013 3051, 3055, 3060, 3065, 3070, 3075, 3080, 3085, /* 0x50-0x57 */
4014 3090, 3095, 3100, 3105, 3110, 3115, 3120, 3125, /* 0x58-0x5f */
4015 3130, 3134, 3138, 3142, 3146, 3150, 3154, 3158, /* 0x60-0x67 */
4016 3162, 3166, 3170, 3174, 3178, 3182, 3186, 3191, /* 0x68-0x6f */
4017 3196, 3201, 3206, 3211, 3216, 3221, 3226, 3231, /* 0x70-0x77 */
4018 3236, 3241, 3246, 3251, 3256, 3264, -1, -1, /* 0x78-0x7f */
4019 3271, 3275, 3279, 3283, 3287, 3291, 3295, 3299, /* 0x80-0x87 */
4020 3303, 3307, 3311, 3315, 3319, 3323, 3327, 3331, /* 0x88-0x8f */
4021 3335, 3339, 3343, 3347, 3351, 3355, 3359, 3363, /* 0x90-0x97 */
4022 3367, 3371, 3375, 3379, 3383, 3387, 3391, 3395, /* 0x98-0x9f */
4023 3399, 3403, 3407, 3411, 3415, 3419, 3423, 3427, /* 0xa0-0xa7 */
4024 3431, 3435, 3439, 3443, 3447, 3451, 3455, 3459, /* 0xa8-0xaf */
4025 3463, 3467, 3472, 3477, 3482, 3487, 3492, 3497, /* 0xb0-0xb7 */
4026 3502, 3507, 3512, 3517, 3522, 3527, 3532, 3537, /* 0xb8-0xbf */
4027 3542, 3545, 3548, 3551, 3554, 3557, 3560, 3563, /* 0xc0-0xc7 */
4028 3566, 3569, 3573, 3577, 3581, 3584, 3588, 3591, /* 0xc8-0xcf */
4029 3595, 3599, 3603, 3607, 3611, 3615, 3619, 3623, /* 0xd0-0xd7 */
4030 3627, 3631, 3635, 3639, 3643, 3647, 3651, 3655, /* 0xd8-0xdf */
4031 3659, 3663, 3667, 3671, 3675, 3679, 3683, 3687, /* 0xe0-0xe7 */
4032 3691, 3695, 3699, 3703, 3707, 3711, 3715, 3719, /* 0xe8-0xef */
4033 3723, 3727, 3731, 3735, 3739, 3743, 3747, 3751, /* 0xf0-0xf7 */
4034 3755, 3759, 3763, 3767, 3771, 3775, 3779, -1, /* 0xf8-0xff */
4036 3783, 3788, 3793, 3798, 3802, 3807, 3811, 3815, /* 0x00-0x07 */
4037 3821, 3826, 3830, 3834, 3838, 3843, 3848, 3852, /* 0x08-0x0f */
4038 3856, 3859, 3863, 3868, 3873, 3876, 3882, 3889, /* 0x10-0x17 */
4039 3895, 3899, 3905, 3911, 3916, 3920, 3924, 3928, /* 0x18-0x1f */
4040 3933, 3939, 3944, 3948, 3952, 3956, 3959, 3962, /* 0x20-0x27 */
4041 3965, 3968, 3972, 3976, 3982, 3986, 3991, 3997, /* 0x28-0x2f */
4042 4001, 4004, 4007, 4013, 4018, 4024, 4028, 4034, /* 0x30-0x37 */
4043 4037, 4041, 4045, 4049, 4053, 4057, 4062, 4066, /* 0x38-0x3f */
4044 4069, 4073, 4077, 4081, 4086, 4090, 4094, 4098, /* 0x40-0x47 */
4045 4104, 4109, 4112, 4118, 4121, 4126, 4131, 4135, /* 0x48-0x4f */
4046 4139, 4143, 4148, 4151, 4155, 4160, 4163, 4169, /* 0x50-0x57 */
4047 4173, 4176, 4179, 4182, 4185, 4188, 4191, 4194, /* 0x58-0x5f */
4048 4197, 4200, 4203, 4207, 4211, 4215, 4219, 4223, /* 0x60-0x67 */
4049 4227, 4231, 4235, 4239, 4243, 4247, 4251, 4255, /* 0x68-0x6f */
4050 4259, 4263, 4267, 4270, 4273, 4277, 4280, 4283, /* 0x70-0x77 */
4051 4286, 4291, 4296, 4299, 4302, 4305, 4308, 4311, /* 0x78-0x7f */
4052 4316, 4319, 4322, 4325, 4328, 4331, 4334, 4337, /* 0x80-0x87 */
4053 4340, 4344, 4349, 4352, 4355, 4358, 4361, 4364, /* 0x88-0x8f */
4054 4367, 4370, 4374, 4378, 4382, 4386, 4389, 4392, /* 0x90-0x97 */
4055 4395, 4398, 4401, 4404, 4407, 4410, 4413, 4416, /* 0x98-0x9f */
4056 4421, 4426, 4430, 4435, 4440, 4445, 4449, 4454, /* 0xa0-0xa7 */
4057 4458, 4464, 4467, 4471, 4475, 4479, 4483, 4489, /* 0xa8-0xaf */
4058 4497, 4500, 4503, 4506, 4509, 4512, 4515, 4518, /* 0xb0-0xb7 */
4059 4521, 4524, 4527, 4530, 4533, 4536, 4539, 4542, /* 0xb8-0xbf */
4060 4545, 4548, 4551, 4556, 4559, 4562, 4565, 4570, /* 0xc0-0xc7 */
4061 4574, 4577, 4580, 4583, 4586, 4589, 4592, 4595, /* 0xc8-0xcf */
4062 4598, 4601, 4604, 4608, 4611, 4614, 4618, 4622, /* 0xd0-0xd7 */
4063 4625, 4630, 4634, 4637, 4640, 4643, 4646, 4650, /* 0xd8-0xdf */
4064 4658, 4661, 4664, 4667, 4670, 4673, 4676, 4679, /* 0xe0-0xe7 */
4065 4682, 4685, 4689, 4693, 4697, 4701, 4705, 4709, /* 0xe8-0xef */
4066 4713, 4717, 4721, 4725, 4729, 4733, 4737, 4741, /* 0xf0-0xf7 */
4067 4745, 4749, 4753, 4757, 4761, 4765, 4769, 4654, /* 0xf8-0xff */
4069 static const short translit_pagef9[368] = {
4070 4773, 4775, 4777, 4779, 4781, 4783, 4785, 4787, /* 0x00-0x07 */
4071 4789, 4791, 4793, 4795, 4797, 4799, 4801, 4803, /* 0x08-0x0f */
4072 4805, 4807, 4809, 4811, 4813, 4815, 4817, 4819, /* 0x10-0x17 */
4073 4821, 4823, 4825, 4827, 4829, 4831, 4833, 4835, /* 0x18-0x1f */
4074 4837, 4839, 4841, 4843, 4845, 4847, 4849, 4851, /* 0x20-0x27 */
4075 4853, 4855, 4857, 4859, 4861, 4863, 4865, 4867, /* 0x28-0x2f */
4076 4869, 4871, 4873, 4875, 4877, 4879, 4881, 4883, /* 0x30-0x37 */
4077 4885, 4887, 4889, 4891, 4893, 4895, 4897, 4899, /* 0x38-0x3f */
4078 4901, 4903, 4905, 4907, 4909, 4911, 4913, 4915, /* 0x40-0x47 */
4079 4917, 4919, 4921, 4923, 4925, 4927, 4929, 4931, /* 0x48-0x4f */
4080 4933, 4935, 4937, 4939, 4941, 4943, 4945, 4947, /* 0x50-0x57 */
4081 4949, 4951, 4953, 4955, 4957, 4959, 4961, 4963, /* 0x58-0x5f */
4082 4965, 4967, 4969, 4971, 4973, 4975, 4977, 4979, /* 0x60-0x67 */
4083 4981, 4983, 4985, 4987, 4989, 4991, 4993, 4995, /* 0x68-0x6f */
4084 4997, 4999, 5001, 5003, 5005, 5007, 5009, 5011, /* 0x70-0x77 */
4085 5013, 5015, 5017, 5019, 5021, 5023, 5025, 5027, /* 0x78-0x7f */
4086 5029, 5031, 5033, 5035, 5037, 5039, 5041, 5043, /* 0x80-0x87 */
4087 5045, 5047, 5049, 5051, 5053, 5055, 5057, 5059, /* 0x88-0x8f */
4088 5061, 5063, 5065, 5067, 5069, 5071, 5073, 5075, /* 0x90-0x97 */
4089 5077, 5079, 5081, 5083, 5085, 5087, 5089, 5091, /* 0x98-0x9f */
4090 5093, 5095, 5097, 5099, 5101, 5103, 5105, 5107, /* 0xa0-0xa7 */
4091 5109, 5111, 5113, 5115, 5117, 5119, 5121, 5123, /* 0xa8-0xaf */
4092 5125, 5127, 5129, 5131, 5133, 5135, 5137, 5139, /* 0xb0-0xb7 */
4093 5141, 5143, 5145, 5147, 5149, 5151, 5153, 5155, /* 0xb8-0xbf */
4094 5157, 5159, 5161, 5163, 5165, 5167, 5169, 5171, /* 0xc0-0xc7 */
4095 5173, 5175, 5177, 5179, 5181, 5183, 5185, 5187, /* 0xc8-0xcf */
4096 5189, 5191, 5193, 5195, 5197, 5199, 5201, 5203, /* 0xd0-0xd7 */
4097 5205, 5207, 5209, 5211, 5213, 5215, 5217, 5219, /* 0xd8-0xdf */
4098 5221, 5223, 5225, 5227, 5229, 5231, 5233, 5235, /* 0xe0-0xe7 */
4099 5237, 5239, 5241, 5243, 5245, 5247, 5249, 5251, /* 0xe8-0xef */
4100 5253, 5255, 5257, 5259, 5261, 5263, 5265, 5267, /* 0xf0-0xf7 */
4101 5269, 5271, 5273, 5275, 5277, 5279, 5281, 5283, /* 0xf8-0xff */
4103 5285, 5287, 5289, 5291, 5293, 5295, 5297, 5299, /* 0x00-0x07 */
4104 5301, 5303, 5305, 5307, 5309, 5311, -1, -1, /* 0x08-0x0f */
4105 5313, -1, 5315, -1, -1, 5317, 5319, 5321, /* 0x10-0x17 */
4106 5323, 5325, 5327, 5329, 5331, 5333, 5335, -1, /* 0x18-0x1f */
4107 5337, -1, 5339, -1, -1, 5341, 5343, -1, /* 0x20-0x27 */
4108 -1, -1, 5345, 5347, 5349, 5351, -1, -1, /* 0x28-0x2f */
4109 5353, 5355, 5357, 5359, 5361, 5363, 5365, 5367, /* 0x30-0x37 */
4110 5369, 5371, 5373, 5375, 5377, 5379, 5381, 5383, /* 0x38-0x3f */
4111 5385, 5387, 5389, 5391, 5393, 5395, 5397, 5399, /* 0x40-0x47 */
4112 5401, 5403, 5405, 5407, 5409, 5411, 5413, 5415, /* 0x48-0x4f */
4113 5417, 5419, 5421, 5423, 5425, 5427, 5429, 5431, /* 0x50-0x57 */
4114 5433, 5435, 5437, 5439, 5441, 5443, 5445, 5447, /* 0x58-0x5f */
4115 5449, 5451, 5453, 5455, 5457, 5459, 5461, 5463, /* 0x60-0x67 */
4116 5465, 5467, 5469, -1, -1, -1, -1, -1, /* 0x68-0x6f */
4118 static const short translit_pagefb[80] = {
4119 5471, 5474, 5477, 5480, 5484, 5488, 5491, -1, /* 0x00-0x07 */
4120 -1, -1, -1, -1, -1, -1, -1, -1, /* 0x08-0x0f */
4121 -1, -1, -1, 5494, 5497, 5500, 5503, 5506, /* 0x10-0x17 */
4122 -1, -1, -1, -1, -1, -1, -1, -1, /* 0x18-0x1f */
4123 5509, 5511, 5513, 5515, 5517, 5519, 5521, 5523, /* 0x20-0x27 */
4124 5525, 5527, -1, -1, -1, -1, -1, -1, /* 0x28-0x2f */
4125 -1, -1, -1, -1, -1, -1, -1, -1, /* 0x30-0x37 */
4126 -1, -1, -1, -1, -1, -1, -1, -1, /* 0x38-0x3f */
4127 -1, -1, -1, -1, -1, -1, -1, -1, /* 0x40-0x47 */
4128 -1, -1, -1, -1, -1, -1, -1, 5529, /* 0x48-0x4f */
4130 static const short translit_pagefe[40] = {
4131 -1, 5532, 5534, 5536, 5538, 5540, 5542, 5544, /* 0x48-0x4f */
4132 5546, 5548, 5550, -1, 5552, 5554, 5556, 5558, /* 0x50-0x57 */
4133 5560, 5562, 5564, 5566, 5568, 5570, 5572, 5574, /* 0x58-0x5f */
4134 5576, 5578, 5580, 5582, 5584, 5586, 5588, -1, /* 0x60-0x67 */
4135 5590, 5592, 5594, 5596, -1, -1, -1, -1, /* 0x68-0x6f */
4137 static const short translit_pageff[240] = {
4138 -1, 5598, 5600, 5602, 5604, 5606, 5608, 5610, /* 0x00-0x07 */
4139 5612, 5614, 5616, 5618, 5620, 5622, 5624, 5626, /* 0x08-0x0f */
4140 5628, 5630, 5632, 5634, 5636, 5638, 5640, 5642, /* 0x10-0x17 */
4141 5644, 5646, 5648, 5650, 5652, 5654, 5656, 5658, /* 0x18-0x1f */
4142 5660, 5662, 5664, 5666, 5668, 5670, 5672, 5674, /* 0x20-0x27 */
4143 5676, 5678, 5680, 5682, 5684, 5686, 5688, 5690, /* 0x28-0x2f */
4144 5692, 5694, 5696, 5698, 5700, 5702, 5704, 5706, /* 0x30-0x37 */
4145 5708, 5710, 5712, 5714, 5716, 5718, 5720, 5722, /* 0x38-0x3f */
4146 5724, 5726, 5728, 5730, 5732, 5734, 5736, 5738, /* 0x40-0x47 */
4147 5740, 5742, 5744, 5746, 5748, 5750, 5752, 5754, /* 0x48-0x4f */
4148 5756, 5758, 5760, 5762, 5764, 5766, 5768, 5770, /* 0x50-0x57 */
4149 5772, 5774, 5776, 5778, 5780, 5782, 5784, 5786, /* 0x58-0x5f */
4150 5788, 5790, 5792, 5794, 5796, 5798, 5800, 5802, /* 0x60-0x67 */
4151 5804, 5806, 5808, 5810, 5812, 5814, 5816, 5818, /* 0x68-0x6f */
4152 5820, 5822, 5824, 5826, 5828, 5830, 5832, 5834, /* 0x70-0x77 */
4153 5836, 5838, 5840, 5842, 5844, 5846, 5848, 5850, /* 0x78-0x7f */
4154 5852, 5854, 5856, 5858, 5860, 5862, 5864, 5866, /* 0x80-0x87 */
4155 5868, 5870, 5872, 5874, 5876, 5878, 5880, 5882, /* 0x88-0x8f */
4156 5884, 5886, 5888, 5890, 5892, 5894, 5896, 5898, /* 0x90-0x97 */
4157 5900, 5902, 5904, 5906, 5908, 5910, 5912, 5914, /* 0x98-0x9f */
4158 5916, 5918, 5920, 5922, 5924, 5926, 5928, 5930, /* 0xa0-0xa7 */
4159 5932, 5934, 5936, 5938, 5940, 5942, 5944, 5946, /* 0xa8-0xaf */
4160 5948, 5950, 5952, 5954, 5956, 5958, 5960, 5962, /* 0xb0-0xb7 */
4161 5964, 5966, 5968, 5970, 5972, 5974, 5976, -1, /* 0xb8-0xbf */
4162 -1, -1, 5978, 5980, 5982, 5984, 5986, 5988, /* 0xc0-0xc7 */
4163 -1, -1, 5990, 5992, 5994, 5996, 5998, 6000, /* 0xc8-0xcf */
4164 -1, -1, 6002, 6004, 6006, 6008, 6010, 6012, /* 0xd0-0xd7 */
4165 -1, -1, 6014, 6016, 6018, -1, -1, -1, /* 0xd8-0xdf */
4166 6020, 6022, 6024, 6026, 6028, 6030, 6032, -1, /* 0xe0-0xe7 */
4167 6034, 6036, 6038, 6040, 6042, 6044, 6046, -1, /* 0xe8-0xef */
4169 static const short translit_page1d4[1024] = {
4170 6048, 6050, 6052, 6054, 6056, 6058, 6060, 6062, /* 0x00-0x07 */
4171 6064, 6066, 6068, 6070, 6072, 6074, 6076, 6078, /* 0x08-0x0f */
4172 6080, 6082, 6084, 6086, 6088, 6090, 6092, 6094, /* 0x10-0x17 */
4173 6096, 6098, 6100, 6102, 6104, 6106, 6108, 6110, /* 0x18-0x1f */
4174 6112, 6114, 6116, 6118, 6120, 6122, 6124, 6126, /* 0x20-0x27 */
4175 6128, 6130, 6132, 6134, 6136, 6138, 6140, 6142, /* 0x28-0x2f */
4176 6144, 6146, 6148, 6150, 6152, 6154, 6156, 6158, /* 0x30-0x37 */
4177 6160, 6162, 6164, 6166, 6168, 6170, 6172, 6174, /* 0x38-0x3f */
4178 6176, 6178, 6180, 6182, 6184, 6186, 6188, 6190, /* 0x40-0x47 */
4179 6192, 6194, 6196, 6198, 6200, 6202, 6204, 6206, /* 0x48-0x4f */
4180 6208, 6210, 6212, 6214, 6216, -1, 6218, 6220, /* 0x50-0x57 */
4181 6222, 6224, 6226, 6228, 6230, 6232, 6234, 6236, /* 0x58-0x5f */
4182 6238, 6240, 6242, 6244, 6246, 6248, 6250, 6252, /* 0x60-0x67 */
4183 6254, 6256, 6258, 6260, 6262, 6264, 6266, 6268, /* 0x68-0x6f */
4184 6270, 6272, 6274, 6276, 6278, 6280, 6282, 6284, /* 0x70-0x77 */
4185 6286, 6288, 6290, 6292, 6294, 6296, 6298, 6300, /* 0x78-0x7f */
4186 6302, 6304, 6306, 6308, 6310, 6312, 6314, 6316, /* 0x80-0x87 */
4187 6318, 6320, 6322, 6324, 6326, 6328, 6330, 6332, /* 0x88-0x8f */
4188 6334, 6336, 6338, 6340, 6342, 6344, 6346, 6348, /* 0x90-0x97 */
4189 6350, 6352, 6354, 6356, 6358, -1, 6360, 6362, /* 0x98-0x9f */
4190 -1, -1, 6364, -1, -1, 6366, 6368, -1, /* 0xa0-0xa7 */
4191 -1, 6370, 6372, 6374, 6376, -1, 6378, 6380, /* 0xa8-0xaf */
4192 6382, 6384, 6386, 6388, 6390, 6392, 6394, 6396, /* 0xb0-0xb7 */
4193 6398, 6400, -1, 6402, -1, 6404, 6406, 6408, /* 0xb8-0xbf */
4194 6410, 6412, 6414, 6416, -1, 6418, 6420, 6422, /* 0xc0-0xc7 */
4195 6424, 6426, 6428, 6430, 6432, 6434, 6436, 6438, /* 0xc8-0xcf */
4196 6440, 6442, 6444, 6446, 6448, 6450, 6452, 6454, /* 0xd0-0xd7 */
4197 6456, 6458, 6460, 6462, 6464, 6466, 6468, 6470, /* 0xd8-0xdf */
4198 6472, 6474, 6476, 6478, 6480, 6482, 6484, 6486, /* 0xe0-0xe7 */
4199 6488, 6490, 6492, 6494, 6496, 6498, 6500, 6502, /* 0xe8-0xef */
4200 6504, 6506, 6508, 6510, 6512, 6514, 6516, 6518, /* 0xf0-0xf7 */
4201 6520, 6522, 6524, 6526, 6528, 6530, 6532, 6534, /* 0xf8-0xff */
4203 6536, 6538, 6540, 6542, 6544, 6546, -1, 6548, /* 0x00-0x07 */
4204 6550, 6552, 6554, -1, -1, 6556, 6558, 6560, /* 0x08-0x0f */
4205 6562, 6564, 6566, 6568, 6570, -1, 6572, 6574, /* 0x10-0x17 */
4206 6576, 6578, 6580, 6582, 6584, -1, 6586, 6588, /* 0x18-0x1f */
4207 6590, 6592, 6594, 6596, 6598, 6600, 6602, 6604, /* 0x20-0x27 */
4208 6606, 6608, 6610, 6612, 6614, 6616, 6618, 6620, /* 0x28-0x2f */
4209 6622, 6624, 6626, 6628, 6630, 6632, 6634, 6636, /* 0x30-0x37 */
4210 6638, 6640, -1, 6642, 6644, 6646, 6648, -1, /* 0x38-0x3f */
4211 6650, 6652, 6654, 6656, 6658, -1, 6660, -1, /* 0x40-0x47 */
4212 -1, -1, 6662, 6664, 6666, 6668, 6670, 6672, /* 0x48-0x4f */
4213 6674, -1, 6676, 6678, 6680, 6682, 6684, 6686, /* 0x50-0x57 */
4214 6688, 6690, 6692, 6694, 6696, 6698, 6700, 6702, /* 0x58-0x5f */
4215 6704, 6706, 6708, 6710, 6712, 6714, 6716, 6718, /* 0x60-0x67 */
4216 6720, 6722, 6724, 6726, 6728, 6730, 6732, 6734, /* 0x68-0x6f */
4217 6736, 6738, 6740, 6742, 6744, 6746, 6748, 6750, /* 0x70-0x77 */
4218 6752, 6754, 6756, 6758, 6760, 6762, 6764, 6766, /* 0x78-0x7f */
4219 6768, 6770, 6772, 6774, 6776, 6778, 6780, 6782, /* 0x80-0x87 */
4220 6784, 6786, 6788, 6790, 6792, 6794, 6796, 6798, /* 0x88-0x8f */
4221 6800, 6802, 6804, 6806, 6808, 6810, 6812, 6814, /* 0x90-0x97 */
4222 6816, 6818, 6820, 6822, 6824, 6826, 6828, 6830, /* 0x98-0x9f */
4223 6832, 6834, 6836, 6838, 6840, 6842, 6844, 6846, /* 0xa0-0xa7 */
4224 6848, 6850, 6852, 6854, 6856, 6858, 6860, 6862, /* 0xa8-0xaf */
4225 6864, 6866, 6868, 6870, 6872, 6874, 6876, 6878, /* 0xb0-0xb7 */
4226 6880, 6882, 6884, 6886, 6888, 6890, 6892, 6894, /* 0xb8-0xbf */
4227 6896, 6898, 6900, 6902, 6904, 6906, 6908, 6910, /* 0xc0-0xc7 */
4228 6912, 6914, 6916, 6918, 6920, 6922, 6924, 6926, /* 0xc8-0xcf */
4229 6928, 6930, 6932, 6934, 6936, 6938, 6940, 6942, /* 0xd0-0xd7 */
4230 6944, 6946, 6948, 6950, 6952, 6954, 6956, 6958, /* 0xd8-0xdf */
4231 6960, 6962, 6964, 6966, 6968, 6970, 6972, 6974, /* 0xe0-0xe7 */
4232 6976, 6978, 6980, 6982, 6984, 6986, 6988, 6990, /* 0xe8-0xef */
4233 6992, 6994, 6996, 6998, 7000, 7002, 7004, 7006, /* 0xf0-0xf7 */
4234 7008, 7010, 7012, 7014, 7016, 7018, 7020, 7022, /* 0xf8-0xff */
4236 7024, 7026, 7028, 7030, 7032, 7034, 7036, 7038, /* 0x00-0x07 */
4237 7040, 7042, 7044, 7046, 7048, 7050, 7052, 7054, /* 0x08-0x0f */
4238 7056, 7058, 7060, 7062, 7064, 7066, 7068, 7070, /* 0x10-0x17 */
4239 7072, 7074, 7076, 7078, 7080, 7082, 7084, 7086, /* 0x18-0x1f */
4240 7088, 7090, 7092, 7094, 7096, 7098, 7100, 7102, /* 0x20-0x27 */
4241 7104, 7106, 7108, 7110, 7112, 7114, 7116, 7118, /* 0x28-0x2f */
4242 7120, 7122, 7124, 7126, 7128, 7130, 7132, 7134, /* 0x30-0x37 */
4243 7136, 7138, 7140, 7142, 7144, 7146, 7148, 7150, /* 0x38-0x3f */
4244 7152, 7154, 7156, 7158, 7160, 7162, 7164, 7166, /* 0x40-0x47 */
4245 7168, 7170, 7172, 7174, 7176, 7178, 7180, 7182, /* 0x48-0x4f */
4246 7184, 7186, 7188, 7190, 7192, 7194, 7196, 7198, /* 0x50-0x57 */
4247 7200, 7202, 7204, 7206, 7208, 7210, 7212, 7214, /* 0x58-0x5f */
4248 7216, 7218, 7220, 7222, 7224, 7226, 7228, 7230, /* 0x60-0x67 */
4249 7232, 7234, 7236, 7238, 7240, 7242, 7244, 7246, /* 0x68-0x6f */
4250 7248, 7250, 7252, 7254, 7256, 7258, 7260, 7262, /* 0x70-0x77 */
4251 7264, 7266, 7268, 7270, 7272, 7274, 7276, 7278, /* 0x78-0x7f */
4252 7280, 7282, 7284, 7286, 7288, 7290, 7292, 7294, /* 0x80-0x87 */
4253 7296, 7298, 7300, 7302, 7304, 7306, 7308, 7310, /* 0x88-0x8f */
4254 7312, 7314, 7316, 7318, 7320, 7322, 7324, 7326, /* 0x90-0x97 */
4255 7328, 7330, 7332, 7334, 7336, 7338, 7340, 7342, /* 0x98-0x9f */
4256 7344, 7346, 7348, 7350, -1, -1, -1, -1, /* 0xa0-0xa7 */
4257 7352, 7354, 7356, 7358, 7360, 7362, 7364, 7366, /* 0xa8-0xaf */
4258 7368, 7370, 7372, 7374, 7376, 7378, 7380, 7382, /* 0xb0-0xb7 */
4259 7384, 7386, 7388, 7390, 7392, 7394, 7396, 7398, /* 0xb8-0xbf */
4260 7400, 7402, 7404, 7406, 7408, 7410, 7412, 7414, /* 0xc0-0xc7 */
4261 7416, 7418, 7420, 7422, 7424, 7426, 7428, 7430, /* 0xc8-0xcf */
4262 7432, 7434, 7436, 7438, 7440, 7442, 7444, 7446, /* 0xd0-0xd7 */
4263 7448, 7450, 7452, 7454, 7456, 7458, 7460, 7462, /* 0xd8-0xdf */
4264 7464, 7466, 7468, 7470, 7472, 7474, 7476, 7478, /* 0xe0-0xe7 */
4265 7480, 7482, 7484, 7486, 7488, 7490, 7492, 7494, /* 0xe8-0xef */
4266 7496, 7498, 7500, 7502, 7504, 7506, 7508, 7510, /* 0xf0-0xf7 */
4267 7512, 7514, 7516, 7518, 7520, 7522, 7524, 7526, /* 0xf8-0xff */
4269 7528, 7530, 7532, 7534, 7536, 7538, 7540, 7542, /* 0x00-0x07 */
4270 7544, 7546, 7548, 7550, 7552, 7554, 7556, 7558, /* 0x08-0x0f */
4271 7560, 7562, 7564, 7566, 7568, 7570, 7572, 7574, /* 0x10-0x17 */
4272 7576, 7578, 7580, 7582, 7584, 7586, 7588, 7590, /* 0x18-0x1f */
4273 7592, 7594, 7596, 7598, 7600, 7602, 7604, 7606, /* 0x20-0x27 */
4274 7608, 7610, 7612, 7614, 7616, 7618, 7620, 7622, /* 0x28-0x2f */
4275 7624, 7626, 7628, 7630, 7632, 7634, 7636, 7638, /* 0x30-0x37 */
4276 7640, 7642, 7644, 7646, 7648, 7650, 7652, 7654, /* 0x38-0x3f */
4277 7656, 7658, 7660, 7662, 7664, 7666, 7668, 7670, /* 0x40-0x47 */
4278 7672, 7674, 7676, 7678, 7680, 7682, 7684, 7686, /* 0x48-0x4f */
4279 7688, 7690, 7692, 7694, 7696, 7698, 7700, 7702, /* 0x50-0x57 */
4280 7704, 7706, 7708, 7710, 7712, 7714, 7716, 7718, /* 0x58-0x5f */
4281 7720, 7722, 7724, 7726, 7728, 7730, 7732, 7734, /* 0x60-0x67 */
4282 7736, 7738, 7740, 7742, 7744, 7746, 7748, 7750, /* 0x68-0x6f */
4283 7752, 7754, 7756, 7758, 7760, 7762, 7764, 7766, /* 0x70-0x77 */
4284 7768, 7770, 7772, 7774, 7776, 7778, 7780, 7782, /* 0x78-0x7f */
4285 7784, 7786, 7788, 7790, 7792, 7794, 7796, 7798, /* 0x80-0x87 */
4286 7800, 7802, 7804, 7806, 7808, 7810, 7812, 7814, /* 0x88-0x8f */
4287 7816, 7818, 7820, 7822, 7824, 7826, 7828, 7830, /* 0x90-0x97 */
4288 7832, 7834, 7836, 7838, 7840, 7842, 7844, 7846, /* 0x98-0x9f */
4289 7848, 7850, 7852, 7854, 7856, 7858, 7860, 7862, /* 0xa0-0xa7 */
4290 7864, 7866, 7868, 7870, 7872, 7874, 7876, 7878, /* 0xa8-0xaf */
4291 7880, 7882, 7884, 7886, 7888, 7890, 7892, 7894, /* 0xb0-0xb7 */
4292 7896, 7898, 7900, 7902, 7904, 7906, 7908, 7910, /* 0xb8-0xbf */
4293 7912, 7914, 7916, 7918, 7920, 7922, 7924, 7926, /* 0xc0-0xc7 */
4294 7928, 7930, -1, -1, -1, -1, 7932, 7934, /* 0xc8-0xcf */
4295 7936, 7938, 7940, 7942, 7944, 7946, 7948, 7950, /* 0xd0-0xd7 */
4296 7952, 7954, 7956, 7958, 7960, 7962, 7964, 7966, /* 0xd8-0xdf */
4297 7968, 7970, 7972, 7974, 7976, 7978, 7980, 7982, /* 0xe0-0xe7 */
4298 7984, 7986, 7988, 7990, 7992, 7994, 7996, 7998, /* 0xe8-0xef */
4299 8000, 8002, 8004, 8006, 8008, 8010, 8012, 8014, /* 0xf0-0xf7 */
4300 8016, 8018, 8020, 8022, 8024, 8026, 8028, 8030, /* 0xf8-0xff */
4302 static const short translit_page2f8[544] = {
4303 8032, 8034, 8036, 8038, 8040, 8042, 8044, 8046, /* 0x00-0x07 */
4304 8048, 8050, 8052, 8054, 8056, 8058, 8060, 8062, /* 0x08-0x0f */
4305 8064, 8066, 8068, 8070, 8072, 8074, 8076, 8078, /* 0x10-0x17 */
4306 8080, 8082, 8084, 8086, 8088, 8090, 8092, 8094, /* 0x18-0x1f */
4307 8096, 8098, 8100, 8102, 8104, 8106, 8108, 8110, /* 0x20-0x27 */
4308 8112, 8114, 8116, 8118, 8120, 8122, 8124, 8126, /* 0x28-0x2f */
4309 8128, 8130, 8132, 8134, 8136, 8138, 8140, 8142, /* 0x30-0x37 */
4310 8144, 8146, 8148, 8150, 8152, 8154, 8156, 8158, /* 0x38-0x3f */
4311 8160, 8162, 8164, 8166, 8168, 8170, 8172, 8174, /* 0x40-0x47 */
4312 8176, 8178, 8180, 8182, 8184, 8186, 8188, 8190, /* 0x48-0x4f */
4313 8192, 8194, 8196, 8198, 8200, 8202, 8204, 8206, /* 0x50-0x57 */
4314 8208, 8210, 8212, 8214, 8216, 8218, 8220, 8222, /* 0x58-0x5f */
4315 8224, 8226, 8228, 8230, 8232, 8234, 8236, 8238, /* 0x60-0x67 */
4316 8240, 8242, 8244, 8246, 8248, 8250, 8252, 8254, /* 0x68-0x6f */
4317 8256, 8258, 8260, 8262, 8264, 8266, 8268, 8270, /* 0x70-0x77 */
4318 8272, 8274, 8276, 8278, 8280, 8282, 8284, 8286, /* 0x78-0x7f */
4319 8288, 8290, 8292, 8294, 8296, 8298, 8300, 8302, /* 0x80-0x87 */
4320 8304, 8306, 8308, 8310, 8312, 8314, 8316, 8318, /* 0x88-0x8f */
4321 8320, 8322, 8324, 8326, 8328, 8330, 8332, 8334, /* 0x90-0x97 */
4322 8336, 8338, 8340, 8342, 8344, 8346, 8348, 8350, /* 0x98-0x9f */
4323 8352, 8354, 8356, 8358, 8360, 8362, 8364, 8366, /* 0xa0-0xa7 */
4324 8368, 8370, 8372, 8374, 8376, 8378, 8380, 8382, /* 0xa8-0xaf */
4325 8384, 8386, 8388, 8390, 8392, 8394, 8396, 8398, /* 0xb0-0xb7 */
4326 8400, 8402, 8404, 8406, 8408, 8410, 8412, 8414, /* 0xb8-0xbf */
4327 8416, 8418, 8420, 8422, 8424, 8426, 8428, 8430, /* 0xc0-0xc7 */
4328 8432, 8434, 8436, 8438, 8440, 8442, 8444, 8446, /* 0xc8-0xcf */
4329 8448, 8450, 8452, 8454, 8456, 8458, 8460, 8462, /* 0xd0-0xd7 */
4330 8464, 8466, 8468, 8470, 8472, 8474, 8476, 8478, /* 0xd8-0xdf */
4331 8480, 8482, 8484, 8486, 8488, 8490, 8492, 8494, /* 0xe0-0xe7 */
4332 8496, 8498, 8500, 8502, 8504, 8506, 8508, 8510, /* 0xe8-0xef */
4333 8512, 8514, 8516, 8518, 8520, 8522, 8524, 8526, /* 0xf0-0xf7 */
4334 8528, 8530, 8532, 8534, 8536, 8538, 8540, 8542, /* 0xf8-0xff */
4336 8544, 8546, 8548, 8550, 8552, 8554, 8556, 8558, /* 0x00-0x07 */
4337 8560, 8562, 8564, 8566, 8568, 8570, 8572, 8574, /* 0x08-0x0f */
4338 8576, 8578, 8580, 8582, 8584, 8586, 8588, 8590, /* 0x10-0x17 */
4339 8592, 8594, 8596, 8598, 8600, 8602, 8604, 8606, /* 0x18-0x1f */
4340 8608, 8610, 8612, 8614, 8616, 8618, 8620, 8622, /* 0x20-0x27 */
4341 8624, 8626, 8628, 8630, 8632, 8634, 8636, 8638, /* 0x28-0x2f */
4342 8640, 8642, 8644, 8646, 8648, 8650, 8652, 8654, /* 0x30-0x37 */
4343 8656, 8658, 8660, 8662, 8664, 8666, 8668, 8670, /* 0x38-0x3f */
4344 8672, 8674, 8676, 8678, 8680, 8682, 8684, 8686, /* 0x40-0x47 */
4345 8688, 8690, 8692, 8694, 8696, 8698, 8700, 8702, /* 0x48-0x4f */
4346 8704, 8706, 8708, 8710, 8712, 8714, 8716, 8718, /* 0x50-0x57 */
4347 8720, 8722, 8724, 8726, 8728, 8730, 8732, 8734, /* 0x58-0x5f */
4348 8736, 8738, 8740, 8742, 8744, 8746, 8748, 8750, /* 0x60-0x67 */
4349 8752, 8754, 8756, 8758, 8760, 8762, 8764, 8766, /* 0x68-0x6f */
4350 8768, 8770, 8772, 8774, 8776, 8778, 8780, 8782, /* 0x70-0x77 */
4351 8784, 8786, 8788, 8790, 8792, 8794, 8796, 8798, /* 0x78-0x7f */
4352 8800, 8802, 8804, 8806, 8808, 8810, 8812, 8814, /* 0x80-0x87 */
4353 8816, 8818, 8820, 8822, 8824, 8826, 8828, 8830, /* 0x88-0x8f */
4354 8832, 8834, 8836, 8838, 8840, 8842, 8844, 8846, /* 0x90-0x97 */
4355 8848, 8850, 8852, 8854, 8856, 8858, 8860, 8862, /* 0x98-0x9f */
4356 8864, 8866, 8868, 8870, 8872, 8874, 8876, 8878, /* 0xa0-0xa7 */
4357 8880, 8882, 8884, 8886, 8888, 8890, 8892, 8894, /* 0xa8-0xaf */
4358 8896, 8898, 8900, 8902, 8904, 8906, 8908, 8910, /* 0xb0-0xb7 */
4359 8912, 8914, 8916, 8918, 8920, 8922, 8924, 8926, /* 0xb8-0xbf */
4360 8928, 8930, 8932, 8934, 8936, 8938, 8940, 8942, /* 0xc0-0xc7 */
4361 8944, 8946, 8948, 8950, 8952, 8954, 8956, 8958, /* 0xc8-0xcf */
4362 8960, 8962, 8964, 8966, 8968, 8970, 8972, 8974, /* 0xd0-0xd7 */
4363 8976, 8978, 8980, 8982, 8984, 8986, 8988, 8990, /* 0xd8-0xdf */
4364 8992, 8994, 8996, 8998, 9000, 9002, 9004, 9006, /* 0xe0-0xe7 */
4365 9008, 9010, 9012, 9014, 9016, 9018, 9020, 9022, /* 0xe8-0xef */
4366 9024, 9026, 9028, 9030, 9032, 9034, 9036, 9038, /* 0xf0-0xf7 */
4367 9040, 9042, 9044, 9046, 9048, 9050, 9052, 9054, /* 0xf8-0xff */
4369 9056, 9058, 9060, 9062, 9064, 9066, 9068, 9070, /* 0x00-0x07 */
4370 9072, 9074, 9076, 9078, 9080, 9082, 9084, 9086, /* 0x08-0x0f */
4371 9088, 9090, 9092, 9094, 9096, 9098, 9100, 9102, /* 0x10-0x17 */
4372 9104, 9106, 9108, 9110, 9112, 9114, -1, -1, /* 0x18-0x1f */
4375 #define translit_index(wc) \
4376 (wc >= 0x00a0 && wc < 0x01f8 ? translit_page00[wc-0x00a0] : \
4377 wc >= 0x0218 && wc < 0x0220 ? translit_page02[wc-0x0218] : \
4378 wc >= 0x02b8 && wc < 0x02e0 ? translit_page02_1[wc-0x02b8] : \
4379 wc >= 0x03d0 && wc < 0x0400 ? translit_page03[wc-0x03d0] : \
4380 wc == 0x0587 ? 654 : \
4381 wc >= 0x05f0 && wc < 0x05f8 ? translit_page05[wc-0x05f0] : \
4382 wc >= 0x0670 && wc < 0x0680 ? translit_page06[wc-0x0670] : \
4383 wc == 0x0e33 ? 678 : \
4384 wc >= 0x0eb0 && wc < 0x0ee0 ? translit_page0e[wc-0x0eb0] : \
4385 wc >= 0x0f70 && wc < 0x0f80 ? translit_page0f[wc-0x0f70] : \
4386 wc >= 0x1e00 && wc < 0x1ea0 ? translit_page1e[wc-0x1e00] : \
4387 wc >= 0x1ef0 && wc < 0x1ef8 ? translit_page1e_2[wc-0x1ef0] : \
4388 wc >= 0x2000 && wc < 0x2058 ? translit_page20[wc-0x2000] : \
4389 wc >= 0x20a8 && wc < 0x20b0 ? translit_page20_3[wc-0x20a8] : \
4390 wc >= 0x2100 && wc < 0x21d8 ? translit_page21[wc-0x2100] : \
4391 wc >= 0x2210 && wc < 0x2270 ? translit_page22[wc-0x2210] : \
4392 wc >= 0x22c0 && wc < 0x22f0 ? translit_page22_4[wc-0x22c0] : \
4393 wc >= 0x2400 && wc < 0x24f0 ? translit_page24[wc-0x2400] : \
4394 wc >= 0x2500 && wc < 0x2540 ? translit_page25[wc-0x2500] : \
4395 wc == 0x25e6 ? 2025 : \
4396 wc == 0x2a0c ? 2027 : \
4397 wc >= 0x2a70 && wc < 0x2a78 ? translit_page2a[wc-0x2a70] : \
4398 wc == 0x2e9f ? 2043 : \
4399 wc == 0x2ef3 ? 2045 : \
4400 wc >= 0x2f00 && wc < 0x2fd8 ? translit_page2f[wc-0x2f00] : \
4401 wc >= 0x3000 && wc < 0x30f8 ? translit_page30[wc-0x3000] : \
4402 wc >= 0x3130 && wc < 0x3190 ? translit_page31[wc-0x3130] : \
4403 wc >= 0x31f0 && wc < 0x3400 ? translit_page31_5[wc-0x31f0] : \
4404 wc >= 0xf900 && wc < 0xfa70 ? translit_pagef9[wc-0xf900] : \
4405 wc >= 0xfb00 && wc < 0xfb50 ? translit_pagefb[wc-0xfb00] : \
4406 wc >= 0xfe48 && wc < 0xfe70 ? translit_pagefe[wc-0xfe48] : \
4407 wc >= 0xff00 && wc < 0xfff0 ? translit_pageff[wc-0xff00] : \
4408 wc >= 0x1d400 && wc < 0x1d800 ? translit_page1d4[wc-0x1d400] : \
4409 wc >= 0x2f800 && wc < 0x2fa20 ? translit_page2f8[wc-0x2f800] : \