github.com/dolthub/go-mysql-server@v0.18.0/sql/encodings/utf32.go (about) 1 // Copyright 2022 Dolthub, Inc. 2 // 3 // Licensed under the Apache License, Version 2.0 (the "License"); 4 // you may not use this file except in compliance with the License. 5 // You may obtain a copy of the License at 6 // 7 // http://www.apache.org/licenses/LICENSE-2.0 8 // 9 // Unless required by applicable law or agreed to in writing, software 10 // distributed under the License is distributed on an "AS IS" BASIS, 11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 // See the License for the specific language governing permissions and 13 // limitations under the License. 14 15 package encodings 16 17 // Utf32 represents the `utf32` character set encoding. 18 var Utf32 Encoder = &RangeMap{ 19 inputEntries: [][]rangeMapEntry{ 20 nil, 21 nil, 22 nil, 23 { 24 { 25 inputRange: rangeBounds{{0, 0}, {0, 0}, {0, 0}, {0, 127}}, 26 outputRange: rangeBounds{{0, 127}}, 27 inputMults: []int{128, 128, 128, 1}, 28 outputMults: []int{1}, 29 }, 30 { 31 inputRange: rangeBounds{{0, 0}, {0, 0}, {0, 0}, {128, 255}}, 32 outputRange: rangeBounds{{194, 195}, {128, 191}}, 33 inputMults: []int{128, 128, 128, 1}, 34 outputMults: []int{64, 1}, 35 }, 36 { 37 inputRange: rangeBounds{{0, 0}, {0, 0}, {1, 7}, {0, 255}}, 38 outputRange: rangeBounds{{196, 223}, {128, 191}}, 39 inputMults: []int{1792, 1792, 256, 1}, 40 outputMults: []int{64, 1}, 41 }, 42 { 43 inputRange: rangeBounds{{0, 0}, {0, 0}, {8, 15}, {0, 255}}, 44 outputRange: rangeBounds{{224, 224}, {160, 191}, {128, 191}}, 45 inputMults: []int{2048, 2048, 256, 1}, 46 outputMults: []int{2048, 64, 1}, 47 }, 48 { 49 inputRange: rangeBounds{{0, 0}, {0, 0}, {16, 215}, {0, 255}}, 50 outputRange: rangeBounds{{225, 237}, {128, 191}, {128, 191}}, 51 inputMults: []int{51200, 51200, 256, 1}, 52 outputMults: []int{4096, 64, 1}, 53 }, 54 { 55 inputRange: rangeBounds{{0, 0}, {0, 0}, {224, 255}, {0, 255}}, 56 outputRange: rangeBounds{{238, 239}, {128, 191}, {128, 191}}, 57 inputMults: []int{8192, 8192, 256, 1}, 58 outputMults: []int{4096, 64, 1}, 59 }, 60 { 61 inputRange: rangeBounds{{0, 0}, {1, 3}, {0, 255}, {0, 255}}, 62 outputRange: rangeBounds{{240, 240}, {144, 191}, {128, 191}, {128, 191}}, 63 inputMults: []int{196608, 65536, 256, 1}, 64 outputMults: []int{196608, 4096, 64, 1}, 65 }, 66 { 67 inputRange: rangeBounds{{0, 0}, {4, 16}, {0, 255}, {0, 255}}, 68 outputRange: rangeBounds{{241, 244}, {128, 191}, {128, 191}, {128, 191}}, 69 inputMults: []int{851968, 65536, 256, 1}, 70 outputMults: []int{262144, 4096, 64, 1}, 71 }, 72 }, 73 }, 74 outputEntries: [][]rangeMapEntry{ 75 { 76 { 77 inputRange: rangeBounds{{0, 0}, {0, 0}, {0, 0}, {0, 127}}, 78 outputRange: rangeBounds{{0, 127}}, 79 inputMults: []int{128, 128, 128, 1}, 80 outputMults: []int{1}, 81 }, 82 }, 83 { 84 { 85 inputRange: rangeBounds{{0, 0}, {0, 0}, {0, 0}, {128, 255}}, 86 outputRange: rangeBounds{{194, 195}, {128, 191}}, 87 inputMults: []int{128, 128, 128, 1}, 88 outputMults: []int{64, 1}, 89 }, 90 { 91 inputRange: rangeBounds{{0, 0}, {0, 0}, {1, 7}, {0, 255}}, 92 outputRange: rangeBounds{{196, 223}, {128, 191}}, 93 inputMults: []int{1792, 1792, 256, 1}, 94 outputMults: []int{64, 1}, 95 }, 96 }, 97 { 98 { 99 inputRange: rangeBounds{{0, 0}, {0, 0}, {8, 15}, {0, 255}}, 100 outputRange: rangeBounds{{224, 224}, {160, 191}, {128, 191}}, 101 inputMults: []int{2048, 2048, 256, 1}, 102 outputMults: []int{2048, 64, 1}, 103 }, 104 { 105 inputRange: rangeBounds{{0, 0}, {0, 0}, {16, 215}, {0, 255}}, 106 outputRange: rangeBounds{{225, 237}, {128, 191}, {128, 191}}, 107 inputMults: []int{51200, 51200, 256, 1}, 108 outputMults: []int{4096, 64, 1}, 109 }, 110 { 111 inputRange: rangeBounds{{0, 0}, {0, 0}, {224, 255}, {0, 255}}, 112 outputRange: rangeBounds{{238, 239}, {128, 191}, {128, 191}}, 113 inputMults: []int{8192, 8192, 256, 1}, 114 outputMults: []int{4096, 64, 1}, 115 }, 116 }, 117 { 118 { 119 inputRange: rangeBounds{{0, 0}, {1, 3}, {0, 255}, {0, 255}}, 120 outputRange: rangeBounds{{240, 240}, {144, 191}, {128, 191}, {128, 191}}, 121 inputMults: []int{196608, 65536, 256, 1}, 122 outputMults: []int{196608, 4096, 64, 1}, 123 }, 124 { 125 inputRange: rangeBounds{{0, 0}, {4, 16}, {0, 255}, {0, 255}}, 126 outputRange: rangeBounds{{241, 244}, {128, 191}, {128, 191}, {128, 191}}, 127 inputMults: []int{851968, 65536, 256, 1}, 128 outputMults: []int{262144, 4096, 64, 1}, 129 }, 130 }, 131 }, 132 toUpper: map[rune]rune{ 133 97: 65, 134 98: 66, 135 99: 67, 136 100: 68, 137 101: 69, 138 102: 70, 139 103: 71, 140 104: 72, 141 105: 73, 142 106: 74, 143 107: 75, 144 108: 76, 145 109: 77, 146 110: 78, 147 111: 79, 148 112: 80, 149 113: 81, 150 114: 82, 151 115: 83, 152 116: 84, 153 117: 85, 154 118: 86, 155 119: 87, 156 120: 88, 157 121: 89, 158 122: 90, 159 181: 924, 160 224: 192, 161 225: 193, 162 226: 194, 163 227: 195, 164 228: 196, 165 229: 197, 166 230: 198, 167 231: 199, 168 232: 200, 169 233: 201, 170 234: 202, 171 235: 203, 172 236: 204, 173 237: 205, 174 238: 206, 175 239: 207, 176 240: 208, 177 241: 209, 178 242: 210, 179 243: 211, 180 244: 212, 181 245: 213, 182 246: 214, 183 248: 216, 184 249: 217, 185 250: 218, 186 251: 219, 187 252: 220, 188 253: 221, 189 254: 222, 190 255: 376, 191 257: 256, 192 259: 258, 193 261: 260, 194 263: 262, 195 265: 264, 196 267: 266, 197 269: 268, 198 271: 270, 199 273: 272, 200 275: 274, 201 277: 276, 202 279: 278, 203 281: 280, 204 283: 282, 205 285: 284, 206 287: 286, 207 289: 288, 208 291: 290, 209 293: 292, 210 295: 294, 211 297: 296, 212 299: 298, 213 301: 300, 214 303: 302, 215 305: 73, 216 307: 306, 217 309: 308, 218 311: 310, 219 314: 313, 220 316: 315, 221 318: 317, 222 320: 319, 223 322: 321, 224 324: 323, 225 326: 325, 226 328: 327, 227 331: 330, 228 333: 332, 229 335: 334, 230 337: 336, 231 339: 338, 232 341: 340, 233 343: 342, 234 345: 344, 235 347: 346, 236 349: 348, 237 351: 350, 238 353: 352, 239 355: 354, 240 357: 356, 241 359: 358, 242 361: 360, 243 363: 362, 244 365: 364, 245 367: 366, 246 369: 368, 247 371: 370, 248 373: 372, 249 375: 374, 250 378: 377, 251 380: 379, 252 382: 381, 253 383: 83, 254 387: 386, 255 389: 388, 256 392: 391, 257 396: 395, 258 402: 401, 259 405: 502, 260 409: 408, 261 417: 416, 262 419: 418, 263 421: 420, 264 424: 423, 265 429: 428, 266 432: 431, 267 436: 435, 268 438: 437, 269 441: 440, 270 445: 444, 271 447: 503, 272 453: 452, 273 454: 452, 274 456: 455, 275 457: 455, 276 459: 458, 277 460: 458, 278 462: 461, 279 464: 463, 280 466: 465, 281 468: 467, 282 470: 469, 283 472: 471, 284 474: 473, 285 476: 475, 286 477: 398, 287 479: 478, 288 481: 480, 289 483: 482, 290 485: 484, 291 487: 486, 292 489: 488, 293 491: 490, 294 493: 492, 295 495: 494, 296 498: 497, 297 499: 497, 298 501: 500, 299 505: 504, 300 507: 506, 301 509: 508, 302 511: 510, 303 513: 512, 304 515: 514, 305 517: 516, 306 519: 518, 307 521: 520, 308 523: 522, 309 525: 524, 310 527: 526, 311 529: 528, 312 531: 530, 313 533: 532, 314 535: 534, 315 537: 536, 316 539: 538, 317 541: 540, 318 543: 542, 319 547: 546, 320 549: 548, 321 551: 550, 322 553: 552, 323 555: 554, 324 557: 556, 325 559: 558, 326 561: 560, 327 563: 562, 328 595: 385, 329 596: 390, 330 598: 393, 331 599: 394, 332 601: 399, 333 603: 400, 334 608: 403, 335 611: 404, 336 616: 407, 337 617: 406, 338 623: 412, 339 626: 413, 340 629: 415, 341 640: 422, 342 643: 425, 343 648: 430, 344 650: 433, 345 651: 434, 346 658: 439, 347 837: 921, 348 940: 902, 349 941: 904, 350 942: 905, 351 943: 906, 352 945: 913, 353 946: 914, 354 947: 915, 355 948: 916, 356 949: 917, 357 950: 918, 358 951: 919, 359 952: 920, 360 953: 921, 361 954: 922, 362 955: 923, 363 956: 924, 364 957: 925, 365 958: 926, 366 959: 927, 367 960: 928, 368 961: 929, 369 962: 931, 370 963: 931, 371 964: 932, 372 965: 933, 373 966: 934, 374 967: 935, 375 968: 936, 376 969: 937, 377 970: 938, 378 971: 939, 379 972: 908, 380 973: 910, 381 974: 911, 382 976: 914, 383 977: 920, 384 981: 934, 385 982: 928, 386 987: 986, 387 989: 988, 388 991: 990, 389 993: 992, 390 995: 994, 391 997: 996, 392 999: 998, 393 1001: 1000, 394 1003: 1002, 395 1005: 1004, 396 1007: 1006, 397 1008: 922, 398 1009: 929, 399 1010: 931, 400 1072: 1040, 401 1073: 1041, 402 1074: 1042, 403 1075: 1043, 404 1076: 1044, 405 1077: 1045, 406 1078: 1046, 407 1079: 1047, 408 1080: 1048, 409 1081: 1049, 410 1082: 1050, 411 1083: 1051, 412 1084: 1052, 413 1085: 1053, 414 1086: 1054, 415 1087: 1055, 416 1088: 1056, 417 1089: 1057, 418 1090: 1058, 419 1091: 1059, 420 1092: 1060, 421 1093: 1061, 422 1094: 1062, 423 1095: 1063, 424 1096: 1064, 425 1097: 1065, 426 1098: 1066, 427 1099: 1067, 428 1100: 1068, 429 1101: 1069, 430 1102: 1070, 431 1103: 1071, 432 1104: 1024, 433 1105: 1025, 434 1106: 1026, 435 1107: 1027, 436 1108: 1028, 437 1109: 1029, 438 1110: 1030, 439 1111: 1031, 440 1112: 1032, 441 1113: 1033, 442 1114: 1034, 443 1115: 1035, 444 1116: 1036, 445 1117: 1037, 446 1118: 1038, 447 1119: 1039, 448 1121: 1120, 449 1123: 1122, 450 1125: 1124, 451 1127: 1126, 452 1129: 1128, 453 1131: 1130, 454 1133: 1132, 455 1135: 1134, 456 1137: 1136, 457 1139: 1138, 458 1141: 1140, 459 1143: 1142, 460 1145: 1144, 461 1147: 1146, 462 1149: 1148, 463 1151: 1150, 464 1153: 1152, 465 1165: 1164, 466 1167: 1166, 467 1169: 1168, 468 1171: 1170, 469 1173: 1172, 470 1175: 1174, 471 1177: 1176, 472 1179: 1178, 473 1181: 1180, 474 1183: 1182, 475 1185: 1184, 476 1187: 1186, 477 1189: 1188, 478 1191: 1190, 479 1193: 1192, 480 1195: 1194, 481 1197: 1196, 482 1199: 1198, 483 1201: 1200, 484 1203: 1202, 485 1205: 1204, 486 1207: 1206, 487 1209: 1208, 488 1211: 1210, 489 1213: 1212, 490 1215: 1214, 491 1218: 1217, 492 1220: 1219, 493 1224: 1223, 494 1228: 1227, 495 1233: 1232, 496 1235: 1234, 497 1237: 1236, 498 1239: 1238, 499 1241: 1240, 500 1243: 1242, 501 1245: 1244, 502 1247: 1246, 503 1249: 1248, 504 1251: 1250, 505 1253: 1252, 506 1255: 1254, 507 1257: 1256, 508 1259: 1258, 509 1261: 1260, 510 1263: 1262, 511 1265: 1264, 512 1267: 1266, 513 1269: 1268, 514 1273: 1272, 515 1377: 1329, 516 1378: 1330, 517 1379: 1331, 518 1380: 1332, 519 1381: 1333, 520 1382: 1334, 521 1383: 1335, 522 1384: 1336, 523 1385: 1337, 524 1386: 1338, 525 1387: 1339, 526 1388: 1340, 527 1389: 1341, 528 1390: 1342, 529 1391: 1343, 530 1392: 1344, 531 1393: 1345, 532 1394: 1346, 533 1395: 1347, 534 1396: 1348, 535 1397: 1349, 536 1398: 1350, 537 1399: 1351, 538 1400: 1352, 539 1401: 1353, 540 1402: 1354, 541 1403: 1355, 542 1404: 1356, 543 1405: 1357, 544 1406: 1358, 545 1407: 1359, 546 1408: 1360, 547 1409: 1361, 548 1410: 1362, 549 1411: 1363, 550 1412: 1364, 551 1413: 1365, 552 1414: 1366, 553 7681: 7680, 554 7683: 7682, 555 7685: 7684, 556 7687: 7686, 557 7689: 7688, 558 7691: 7690, 559 7693: 7692, 560 7695: 7694, 561 7697: 7696, 562 7699: 7698, 563 7701: 7700, 564 7703: 7702, 565 7705: 7704, 566 7707: 7706, 567 7709: 7708, 568 7711: 7710, 569 7713: 7712, 570 7715: 7714, 571 7717: 7716, 572 7719: 7718, 573 7721: 7720, 574 7723: 7722, 575 7725: 7724, 576 7727: 7726, 577 7729: 7728, 578 7731: 7730, 579 7733: 7732, 580 7735: 7734, 581 7737: 7736, 582 7739: 7738, 583 7741: 7740, 584 7743: 7742, 585 7745: 7744, 586 7747: 7746, 587 7749: 7748, 588 7751: 7750, 589 7753: 7752, 590 7755: 7754, 591 7757: 7756, 592 7759: 7758, 593 7761: 7760, 594 7763: 7762, 595 7765: 7764, 596 7767: 7766, 597 7769: 7768, 598 7771: 7770, 599 7773: 7772, 600 7775: 7774, 601 7777: 7776, 602 7779: 7778, 603 7781: 7780, 604 7783: 7782, 605 7785: 7784, 606 7787: 7786, 607 7789: 7788, 608 7791: 7790, 609 7793: 7792, 610 7795: 7794, 611 7797: 7796, 612 7799: 7798, 613 7801: 7800, 614 7803: 7802, 615 7805: 7804, 616 7807: 7806, 617 7809: 7808, 618 7811: 7810, 619 7813: 7812, 620 7815: 7814, 621 7817: 7816, 622 7819: 7818, 623 7821: 7820, 624 7823: 7822, 625 7825: 7824, 626 7827: 7826, 627 7829: 7828, 628 7835: 7776, 629 7841: 7840, 630 7843: 7842, 631 7845: 7844, 632 7847: 7846, 633 7849: 7848, 634 7851: 7850, 635 7853: 7852, 636 7855: 7854, 637 7857: 7856, 638 7859: 7858, 639 7861: 7860, 640 7863: 7862, 641 7865: 7864, 642 7867: 7866, 643 7869: 7868, 644 7871: 7870, 645 7873: 7872, 646 7875: 7874, 647 7877: 7876, 648 7879: 7878, 649 7881: 7880, 650 7883: 7882, 651 7885: 7884, 652 7887: 7886, 653 7889: 7888, 654 7891: 7890, 655 7893: 7892, 656 7895: 7894, 657 7897: 7896, 658 7899: 7898, 659 7901: 7900, 660 7903: 7902, 661 7905: 7904, 662 7907: 7906, 663 7909: 7908, 664 7911: 7910, 665 7913: 7912, 666 7915: 7914, 667 7917: 7916, 668 7919: 7918, 669 7921: 7920, 670 7923: 7922, 671 7925: 7924, 672 7927: 7926, 673 7929: 7928, 674 7936: 7944, 675 7937: 7945, 676 7938: 7946, 677 7939: 7947, 678 7940: 7948, 679 7941: 7949, 680 7942: 7950, 681 7943: 7951, 682 7952: 7960, 683 7953: 7961, 684 7954: 7962, 685 7955: 7963, 686 7956: 7964, 687 7957: 7965, 688 7968: 7976, 689 7969: 7977, 690 7970: 7978, 691 7971: 7979, 692 7972: 7980, 693 7973: 7981, 694 7974: 7982, 695 7975: 7983, 696 7984: 7992, 697 7985: 7993, 698 7986: 7994, 699 7987: 7995, 700 7988: 7996, 701 7989: 7997, 702 7990: 7998, 703 7991: 7999, 704 8000: 8008, 705 8001: 8009, 706 8002: 8010, 707 8003: 8011, 708 8004: 8012, 709 8005: 8013, 710 8017: 8025, 711 8019: 8027, 712 8021: 8029, 713 8023: 8031, 714 8032: 8040, 715 8033: 8041, 716 8034: 8042, 717 8035: 8043, 718 8036: 8044, 719 8037: 8045, 720 8038: 8046, 721 8039: 8047, 722 8048: 8122, 723 8049: 8123, 724 8050: 8136, 725 8051: 8137, 726 8052: 8138, 727 8053: 8139, 728 8054: 8154, 729 8055: 8155, 730 8056: 8184, 731 8057: 8185, 732 8058: 8170, 733 8059: 8171, 734 8060: 8186, 735 8061: 8187, 736 8064: 8072, 737 8065: 8073, 738 8066: 8074, 739 8067: 8075, 740 8068: 8076, 741 8069: 8077, 742 8070: 8078, 743 8071: 8079, 744 8080: 8088, 745 8081: 8089, 746 8082: 8090, 747 8083: 8091, 748 8084: 8092, 749 8085: 8093, 750 8086: 8094, 751 8087: 8095, 752 8096: 8104, 753 8097: 8105, 754 8098: 8106, 755 8099: 8107, 756 8100: 8108, 757 8101: 8109, 758 8102: 8110, 759 8103: 8111, 760 8112: 8120, 761 8113: 8121, 762 8115: 8124, 763 8126: 921, 764 8131: 8140, 765 8144: 8152, 766 8145: 8153, 767 8160: 8168, 768 8161: 8169, 769 8165: 8172, 770 8179: 8188, 771 8560: 8544, 772 8561: 8545, 773 8562: 8546, 774 8563: 8547, 775 8564: 8548, 776 8565: 8549, 777 8566: 8550, 778 8567: 8551, 779 8568: 8552, 780 8569: 8553, 781 8570: 8554, 782 8571: 8555, 783 8572: 8556, 784 8573: 8557, 785 8574: 8558, 786 8575: 8559, 787 9424: 9398, 788 9425: 9399, 789 9426: 9400, 790 9427: 9401, 791 9428: 9402, 792 9429: 9403, 793 9430: 9404, 794 9431: 9405, 795 9432: 9406, 796 9433: 9407, 797 9434: 9408, 798 9435: 9409, 799 9436: 9410, 800 9437: 9411, 801 9438: 9412, 802 9439: 9413, 803 9440: 9414, 804 9441: 9415, 805 9442: 9416, 806 9443: 9417, 807 9444: 9418, 808 9445: 9419, 809 9446: 9420, 810 9447: 9421, 811 9448: 9422, 812 9449: 9423, 813 65345: 65313, 814 65346: 65314, 815 65347: 65315, 816 65348: 65316, 817 65349: 65317, 818 65350: 65318, 819 65351: 65319, 820 65352: 65320, 821 65353: 65321, 822 65354: 65322, 823 65355: 65323, 824 65356: 65324, 825 65357: 65325, 826 65358: 65326, 827 65359: 65327, 828 65360: 65328, 829 65361: 65329, 830 65362: 65330, 831 65363: 65331, 832 65364: 65332, 833 65365: 65333, 834 65366: 65334, 835 65367: 65335, 836 65368: 65336, 837 65369: 65337, 838 65370: 65338, 839 }, 840 toLower: map[rune]rune{ 841 65: 97, 842 66: 98, 843 67: 99, 844 68: 100, 845 69: 101, 846 70: 102, 847 71: 103, 848 72: 104, 849 73: 105, 850 74: 106, 851 75: 107, 852 76: 108, 853 77: 109, 854 78: 110, 855 79: 111, 856 80: 112, 857 81: 113, 858 82: 114, 859 83: 115, 860 84: 116, 861 85: 117, 862 86: 118, 863 87: 119, 864 88: 120, 865 89: 121, 866 90: 122, 867 192: 224, 868 193: 225, 869 194: 226, 870 195: 227, 871 196: 228, 872 197: 229, 873 198: 230, 874 199: 231, 875 200: 232, 876 201: 233, 877 202: 234, 878 203: 235, 879 204: 236, 880 205: 237, 881 206: 238, 882 207: 239, 883 208: 240, 884 209: 241, 885 210: 242, 886 211: 243, 887 212: 244, 888 213: 245, 889 214: 246, 890 216: 248, 891 217: 249, 892 218: 250, 893 219: 251, 894 220: 252, 895 221: 253, 896 222: 254, 897 256: 257, 898 258: 259, 899 260: 261, 900 262: 263, 901 264: 265, 902 266: 267, 903 268: 269, 904 270: 271, 905 272: 273, 906 274: 275, 907 276: 277, 908 278: 279, 909 280: 281, 910 282: 283, 911 284: 285, 912 286: 287, 913 288: 289, 914 290: 291, 915 292: 293, 916 294: 295, 917 296: 297, 918 298: 299, 919 300: 301, 920 302: 303, 921 304: 105, 922 306: 307, 923 308: 309, 924 310: 311, 925 313: 314, 926 315: 316, 927 317: 318, 928 319: 320, 929 321: 322, 930 323: 324, 931 325: 326, 932 327: 328, 933 330: 331, 934 332: 333, 935 334: 335, 936 336: 337, 937 338: 339, 938 340: 341, 939 342: 343, 940 344: 345, 941 346: 347, 942 348: 349, 943 350: 351, 944 352: 353, 945 354: 355, 946 356: 357, 947 358: 359, 948 360: 361, 949 362: 363, 950 364: 365, 951 366: 367, 952 368: 369, 953 370: 371, 954 372: 373, 955 374: 375, 956 376: 255, 957 377: 378, 958 379: 380, 959 381: 382, 960 385: 595, 961 386: 387, 962 388: 389, 963 390: 596, 964 391: 392, 965 393: 598, 966 394: 599, 967 395: 396, 968 398: 477, 969 399: 601, 970 400: 603, 971 401: 402, 972 403: 608, 973 404: 611, 974 406: 617, 975 407: 616, 976 408: 409, 977 412: 623, 978 413: 626, 979 415: 629, 980 416: 417, 981 418: 419, 982 420: 421, 983 422: 640, 984 423: 424, 985 425: 643, 986 428: 429, 987 430: 648, 988 431: 432, 989 433: 650, 990 434: 651, 991 435: 436, 992 437: 438, 993 439: 658, 994 440: 441, 995 444: 445, 996 452: 454, 997 453: 454, 998 455: 457, 999 456: 457, 1000 458: 460, 1001 459: 460, 1002 461: 462, 1003 463: 464, 1004 465: 466, 1005 467: 468, 1006 469: 470, 1007 471: 472, 1008 473: 474, 1009 475: 476, 1010 478: 479, 1011 480: 481, 1012 482: 483, 1013 484: 485, 1014 486: 487, 1015 488: 489, 1016 490: 491, 1017 492: 493, 1018 494: 495, 1019 497: 499, 1020 498: 499, 1021 500: 501, 1022 502: 405, 1023 503: 447, 1024 504: 505, 1025 506: 507, 1026 508: 509, 1027 510: 511, 1028 512: 513, 1029 514: 515, 1030 516: 517, 1031 518: 519, 1032 520: 521, 1033 522: 523, 1034 524: 525, 1035 526: 527, 1036 528: 529, 1037 530: 531, 1038 532: 533, 1039 534: 535, 1040 536: 537, 1041 538: 539, 1042 540: 541, 1043 542: 543, 1044 546: 547, 1045 548: 549, 1046 550: 551, 1047 552: 553, 1048 554: 555, 1049 556: 557, 1050 558: 559, 1051 560: 561, 1052 562: 563, 1053 902: 940, 1054 904: 941, 1055 905: 942, 1056 906: 943, 1057 908: 972, 1058 910: 973, 1059 911: 974, 1060 913: 945, 1061 914: 946, 1062 915: 947, 1063 916: 948, 1064 917: 949, 1065 918: 950, 1066 919: 951, 1067 920: 952, 1068 921: 953, 1069 922: 954, 1070 923: 955, 1071 924: 956, 1072 925: 957, 1073 926: 958, 1074 927: 959, 1075 928: 960, 1076 929: 961, 1077 931: 963, 1078 932: 964, 1079 933: 965, 1080 934: 966, 1081 935: 967, 1082 936: 968, 1083 937: 969, 1084 938: 970, 1085 939: 971, 1086 986: 987, 1087 988: 989, 1088 990: 991, 1089 992: 993, 1090 994: 995, 1091 996: 997, 1092 998: 999, 1093 1000: 1001, 1094 1002: 1003, 1095 1004: 1005, 1096 1006: 1007, 1097 1024: 1104, 1098 1025: 1105, 1099 1026: 1106, 1100 1027: 1107, 1101 1028: 1108, 1102 1029: 1109, 1103 1030: 1110, 1104 1031: 1111, 1105 1032: 1112, 1106 1033: 1113, 1107 1034: 1114, 1108 1035: 1115, 1109 1036: 1116, 1110 1037: 1117, 1111 1038: 1118, 1112 1039: 1119, 1113 1040: 1072, 1114 1041: 1073, 1115 1042: 1074, 1116 1043: 1075, 1117 1044: 1076, 1118 1045: 1077, 1119 1046: 1078, 1120 1047: 1079, 1121 1048: 1080, 1122 1049: 1081, 1123 1050: 1082, 1124 1051: 1083, 1125 1052: 1084, 1126 1053: 1085, 1127 1054: 1086, 1128 1055: 1087, 1129 1056: 1088, 1130 1057: 1089, 1131 1058: 1090, 1132 1059: 1091, 1133 1060: 1092, 1134 1061: 1093, 1135 1062: 1094, 1136 1063: 1095, 1137 1064: 1096, 1138 1065: 1097, 1139 1066: 1098, 1140 1067: 1099, 1141 1068: 1100, 1142 1069: 1101, 1143 1070: 1102, 1144 1071: 1103, 1145 1120: 1121, 1146 1122: 1123, 1147 1124: 1125, 1148 1126: 1127, 1149 1128: 1129, 1150 1130: 1131, 1151 1132: 1133, 1152 1134: 1135, 1153 1136: 1137, 1154 1138: 1139, 1155 1140: 1141, 1156 1142: 1143, 1157 1144: 1145, 1158 1146: 1147, 1159 1148: 1149, 1160 1150: 1151, 1161 1152: 1153, 1162 1164: 1165, 1163 1166: 1167, 1164 1168: 1169, 1165 1170: 1171, 1166 1172: 1173, 1167 1174: 1175, 1168 1176: 1177, 1169 1178: 1179, 1170 1180: 1181, 1171 1182: 1183, 1172 1184: 1185, 1173 1186: 1187, 1174 1188: 1189, 1175 1190: 1191, 1176 1192: 1193, 1177 1194: 1195, 1178 1196: 1197, 1179 1198: 1199, 1180 1200: 1201, 1181 1202: 1203, 1182 1204: 1205, 1183 1206: 1207, 1184 1208: 1209, 1185 1210: 1211, 1186 1212: 1213, 1187 1214: 1215, 1188 1217: 1218, 1189 1219: 1220, 1190 1223: 1224, 1191 1227: 1228, 1192 1232: 1233, 1193 1234: 1235, 1194 1236: 1237, 1195 1238: 1239, 1196 1240: 1241, 1197 1242: 1243, 1198 1244: 1245, 1199 1246: 1247, 1200 1248: 1249, 1201 1250: 1251, 1202 1252: 1253, 1203 1254: 1255, 1204 1256: 1257, 1205 1258: 1259, 1206 1260: 1261, 1207 1262: 1263, 1208 1264: 1265, 1209 1266: 1267, 1210 1268: 1269, 1211 1272: 1273, 1212 1329: 1377, 1213 1330: 1378, 1214 1331: 1379, 1215 1332: 1380, 1216 1333: 1381, 1217 1334: 1382, 1218 1335: 1383, 1219 1336: 1384, 1220 1337: 1385, 1221 1338: 1386, 1222 1339: 1387, 1223 1340: 1388, 1224 1341: 1389, 1225 1342: 1390, 1226 1343: 1391, 1227 1344: 1392, 1228 1345: 1393, 1229 1346: 1394, 1230 1347: 1395, 1231 1348: 1396, 1232 1349: 1397, 1233 1350: 1398, 1234 1351: 1399, 1235 1352: 1400, 1236 1353: 1401, 1237 1354: 1402, 1238 1355: 1403, 1239 1356: 1404, 1240 1357: 1405, 1241 1358: 1406, 1242 1359: 1407, 1243 1360: 1408, 1244 1361: 1409, 1245 1362: 1410, 1246 1363: 1411, 1247 1364: 1412, 1248 1365: 1413, 1249 1366: 1414, 1250 7680: 7681, 1251 7682: 7683, 1252 7684: 7685, 1253 7686: 7687, 1254 7688: 7689, 1255 7690: 7691, 1256 7692: 7693, 1257 7694: 7695, 1258 7696: 7697, 1259 7698: 7699, 1260 7700: 7701, 1261 7702: 7703, 1262 7704: 7705, 1263 7706: 7707, 1264 7708: 7709, 1265 7710: 7711, 1266 7712: 7713, 1267 7714: 7715, 1268 7716: 7717, 1269 7718: 7719, 1270 7720: 7721, 1271 7722: 7723, 1272 7724: 7725, 1273 7726: 7727, 1274 7728: 7729, 1275 7730: 7731, 1276 7732: 7733, 1277 7734: 7735, 1278 7736: 7737, 1279 7738: 7739, 1280 7740: 7741, 1281 7742: 7743, 1282 7744: 7745, 1283 7746: 7747, 1284 7748: 7749, 1285 7750: 7751, 1286 7752: 7753, 1287 7754: 7755, 1288 7756: 7757, 1289 7758: 7759, 1290 7760: 7761, 1291 7762: 7763, 1292 7764: 7765, 1293 7766: 7767, 1294 7768: 7769, 1295 7770: 7771, 1296 7772: 7773, 1297 7774: 7775, 1298 7776: 7777, 1299 7778: 7779, 1300 7780: 7781, 1301 7782: 7783, 1302 7784: 7785, 1303 7786: 7787, 1304 7788: 7789, 1305 7790: 7791, 1306 7792: 7793, 1307 7794: 7795, 1308 7796: 7797, 1309 7798: 7799, 1310 7800: 7801, 1311 7802: 7803, 1312 7804: 7805, 1313 7806: 7807, 1314 7808: 7809, 1315 7810: 7811, 1316 7812: 7813, 1317 7814: 7815, 1318 7816: 7817, 1319 7818: 7819, 1320 7820: 7821, 1321 7822: 7823, 1322 7824: 7825, 1323 7826: 7827, 1324 7828: 7829, 1325 7840: 7841, 1326 7842: 7843, 1327 7844: 7845, 1328 7846: 7847, 1329 7848: 7849, 1330 7850: 7851, 1331 7852: 7853, 1332 7854: 7855, 1333 7856: 7857, 1334 7858: 7859, 1335 7860: 7861, 1336 7862: 7863, 1337 7864: 7865, 1338 7866: 7867, 1339 7868: 7869, 1340 7870: 7871, 1341 7872: 7873, 1342 7874: 7875, 1343 7876: 7877, 1344 7878: 7879, 1345 7880: 7881, 1346 7882: 7883, 1347 7884: 7885, 1348 7886: 7887, 1349 7888: 7889, 1350 7890: 7891, 1351 7892: 7893, 1352 7894: 7895, 1353 7896: 7897, 1354 7898: 7899, 1355 7900: 7901, 1356 7902: 7903, 1357 7904: 7905, 1358 7906: 7907, 1359 7908: 7909, 1360 7910: 7911, 1361 7912: 7913, 1362 7914: 7915, 1363 7916: 7917, 1364 7918: 7919, 1365 7920: 7921, 1366 7922: 7923, 1367 7924: 7925, 1368 7926: 7927, 1369 7928: 7929, 1370 7944: 7936, 1371 7945: 7937, 1372 7946: 7938, 1373 7947: 7939, 1374 7948: 7940, 1375 7949: 7941, 1376 7950: 7942, 1377 7951: 7943, 1378 7960: 7952, 1379 7961: 7953, 1380 7962: 7954, 1381 7963: 7955, 1382 7964: 7956, 1383 7965: 7957, 1384 7976: 7968, 1385 7977: 7969, 1386 7978: 7970, 1387 7979: 7971, 1388 7980: 7972, 1389 7981: 7973, 1390 7982: 7974, 1391 7983: 7975, 1392 7992: 7984, 1393 7993: 7985, 1394 7994: 7986, 1395 7995: 7987, 1396 7996: 7988, 1397 7997: 7989, 1398 7998: 7990, 1399 7999: 7991, 1400 8008: 8000, 1401 8009: 8001, 1402 8010: 8002, 1403 8011: 8003, 1404 8012: 8004, 1405 8013: 8005, 1406 8025: 8017, 1407 8027: 8019, 1408 8029: 8021, 1409 8031: 8023, 1410 8040: 8032, 1411 8041: 8033, 1412 8042: 8034, 1413 8043: 8035, 1414 8044: 8036, 1415 8045: 8037, 1416 8046: 8038, 1417 8047: 8039, 1418 8072: 8064, 1419 8073: 8065, 1420 8074: 8066, 1421 8075: 8067, 1422 8076: 8068, 1423 8077: 8069, 1424 8078: 8070, 1425 8079: 8071, 1426 8088: 8080, 1427 8089: 8081, 1428 8090: 8082, 1429 8091: 8083, 1430 8092: 8084, 1431 8093: 8085, 1432 8094: 8086, 1433 8095: 8087, 1434 8104: 8096, 1435 8105: 8097, 1436 8106: 8098, 1437 8107: 8099, 1438 8108: 8100, 1439 8109: 8101, 1440 8110: 8102, 1441 8111: 8103, 1442 8120: 8112, 1443 8121: 8113, 1444 8122: 8048, 1445 8123: 8049, 1446 8124: 8115, 1447 8136: 8050, 1448 8137: 8051, 1449 8138: 8052, 1450 8139: 8053, 1451 8140: 8131, 1452 8152: 8144, 1453 8153: 8145, 1454 8154: 8054, 1455 8155: 8055, 1456 8168: 8160, 1457 8169: 8161, 1458 8170: 8058, 1459 8171: 8059, 1460 8172: 8165, 1461 8184: 8056, 1462 8185: 8057, 1463 8186: 8060, 1464 8187: 8061, 1465 8188: 8179, 1466 8486: 969, 1467 8490: 107, 1468 8491: 229, 1469 8544: 8560, 1470 8545: 8561, 1471 8546: 8562, 1472 8547: 8563, 1473 8548: 8564, 1474 8549: 8565, 1475 8550: 8566, 1476 8551: 8567, 1477 8552: 8568, 1478 8553: 8569, 1479 8554: 8570, 1480 8555: 8571, 1481 8556: 8572, 1482 8557: 8573, 1483 8558: 8574, 1484 8559: 8575, 1485 9398: 9424, 1486 9399: 9425, 1487 9400: 9426, 1488 9401: 9427, 1489 9402: 9428, 1490 9403: 9429, 1491 9404: 9430, 1492 9405: 9431, 1493 9406: 9432, 1494 9407: 9433, 1495 9408: 9434, 1496 9409: 9435, 1497 9410: 9436, 1498 9411: 9437, 1499 9412: 9438, 1500 9413: 9439, 1501 9414: 9440, 1502 9415: 9441, 1503 9416: 9442, 1504 9417: 9443, 1505 9418: 9444, 1506 9419: 9445, 1507 9420: 9446, 1508 9421: 9447, 1509 9422: 9448, 1510 9423: 9449, 1511 65313: 65345, 1512 65314: 65346, 1513 65315: 65347, 1514 65316: 65348, 1515 65317: 65349, 1516 65318: 65350, 1517 65319: 65351, 1518 65320: 65352, 1519 65321: 65353, 1520 65322: 65354, 1521 65323: 65355, 1522 65324: 65356, 1523 65325: 65357, 1524 65326: 65358, 1525 65327: 65359, 1526 65328: 65360, 1527 65329: 65361, 1528 65330: 65362, 1529 65331: 65363, 1530 65332: 65364, 1531 65333: 65365, 1532 65334: 65366, 1533 65335: 65367, 1534 65336: 65368, 1535 65337: 65369, 1536 65338: 65370, 1537 }, 1538 }