pub const ECC_L0: [u16; 2] = [27, 917];
pub const ECC_L1: [u16; 4] = [
522, 568, 723, 809
];
pub const ECC_L2: [u16; 8] = [
237, 308, 436, 284, 646, 653, 428, 379
];
pub const ECC_L3: [u16; 16] = [
274, 562, 232, 755, 599, 524, 801, 132, 295, 116, 442, 428, 295, 42, 176, 65
];
pub const ECC_L4: [u16; 32] = [
361, 575, 922, 525, 176, 586, 640, 321, 536, 742, 677, 742, 687, 284, 193, 517,
273, 494, 263, 147, 593, 800, 571, 320, 803, 133, 231, 390, 685, 330, 63, 410
];
pub const ECC_L5: [u16; 64] = [
539, 422, 6, 93, 862, 771, 453, 106, 610, 287, 107, 505, 733, 877, 381, 612,
723, 476, 462, 172, 430, 609, 858, 822, 543, 376, 511, 400, 672, 762, 283, 184,
440, 35, 519, 31, 460, 594, 225, 535, 517, 352, 605, 158, 651, 201, 488, 502,
648, 733, 717, 83, 404, 97, 280, 771, 840, 629, 4, 381, 843, 623, 264, 543,
];
pub const ECC_L6: [u16; 128] = [
521, 310, 864, 547, 858, 580, 296, 379, 53, 779, 897, 444, 400, 925, 749, 415,
822, 93, 217, 208, 928, 244, 583, 620, 246, 148, 447, 631, 292, 908, 490, 704,
516, 258, 457, 907, 594, 723, 674, 292, 272, 96, 684, 432, 686, 606, 860, 569,
193, 219, 129, 186, 236, 287, 192, 775, 278, 173, 40, 379, 712, 463, 646, 776,
171, 491, 297, 763, 156, 732, 95, 270, 447, 90, 507, 48, 228, 821, 808, 898,
784, 663, 627, 378, 382, 262, 380, 602, 754, 336, 89, 614, 87, 432, 670, 616,
157, 374, 242, 726, 600, 269, 375, 898, 845, 454, 354, 130, 814, 587, 804, 34,
211, 330, 539, 297, 827, 865, 37, 517, 834, 315, 550, 86, 801, 4, 108, 539,
];
pub const ECC_L7: [u16; 256] = [
524, 894, 75, 766, 882, 857, 74, 204, 82, 586, 708, 250, 905, 786, 138, 720,
858, 194, 311, 913, 275, 190, 375, 850, 438, 733, 194, 280, 201, 280, 828, 757,
710, 814, 919, 89, 68, 569, 11, 204, 796, 605, 540, 913, 801, 700, 799, 137,
439, 418, 592, 668, 353, 859, 370, 694, 325, 240, 216, 257, 284, 549, 209, 884,
315, 70, 329, 793, 490, 274, 877, 162, 749, 812, 684, 461, 334, 376, 849, 521,
307, 291, 803, 712, 19, 358, 399, 908, 103, 511, 51, 8, 517, 225, 289, 470,
637, 731, 66, 255, 917, 269, 463, 830, 730, 433, 848, 585, 136, 538, 906, 90,
2, 290, 743, 199, 655, 903, 329, 49, 802, 580, 355, 588, 188, 462, 10, 134,
628, 320, 479, 130, 739, 71, 263, 318, 374, 601, 192, 605, 142, 673, 687, 234,
722, 384, 177, 752, 607, 640, 455, 193, 689, 707, 805, 641, 48, 60, 732, 621,
895, 544, 261, 852, 655, 309, 697, 755, 756, 60, 231, 773, 434, 421, 726, 528,
503, 118, 49, 795, 32, 144, 500, 238, 836, 394, 280, 566, 319, 9, 647, 550,
73, 914, 342, 126, 32, 681, 331, 792, 620, 60, 609, 441, 180, 791, 893, 754,
605, 383, 228, 749, 760, 213, 54, 297, 134, 54, 834, 299, 922, 191, 910, 532,
609, 829, 189, 20, 167, 29, 872, 449, 83, 402, 41, 656, 505, 579, 481, 173,
404, 251, 688, 95, 497, 555, 642, 543, 307, 159, 924, 558, 648, 55, 497, 10,
];
pub const ECC_L8: [u16; 512] = [
352, 77, 373, 504, 35, 599, 428, 207, 409, 574, 118, 498, 285, 380, 350, 492,
197, 265, 920, 155, 914, 299, 229, 643, 294, 871, 306, 88, 87, 193, 352, 781,
846, 75, 327, 520, 435, 543, 203, 666, 249, 346, 781, 621, 640, 268, 794, 534,
539, 781, 408, 390, 644, 102, 476, 499, 290, 632, 545, 37, 858, 916, 552, 41,
542, 289, 122, 272, 383, 800, 485, 98, 752, 472, 761, 107, 784, 860, 658, 741,
290, 204, 681, 407, 855, 85, 99, 62, 482, 180, 20, 297, 451, 593, 913, 142,
808, 684, 287, 536, 561, 76, 653, 899, 729, 567, 744, 390, 513, 192, 516, 258,
240, 518, 794, 395, 768, 848, 51, 610, 384, 168, 190, 826, 328, 596, 786, 303,
570, 381, 415, 641, 156, 237, 151, 429, 531, 207, 676, 710, 89, 168, 304, 402,
40, 708, 575, 162, 864, 229, 65, 861, 841, 512, 164, 477, 221, 92, 358, 785,
288, 357, 850, 836, 827, 736, 707, 94, 8, 494, 114, 521, 2, 499, 851, 543,
152, 729, 771, 95, 248, 361, 578, 323, 856, 797, 289, 51, 684, 466, 533, 820,
669, 45, 902, 452, 167, 342, 244, 173, 35, 463, 651, 51, 699, 591, 452, 578,
37, 124, 298, 332, 552, 43, 427, 119, 662, 777, 475, 850, 764, 364, 578, 911,
283, 711, 472, 420, 245, 288, 594, 394, 511, 327, 589, 777, 699, 688, 43, 408,
842, 383, 721, 521, 560, 644, 714, 559, 62, 145, 873, 663, 713, 159, 672, 729,
624, 59, 193, 417, 158, 209, 563, 564, 343, 693, 109, 608, 563, 365, 181, 772,
677, 310, 248, 353, 708, 410, 579, 870, 617, 841, 632, 860, 289, 536, 35, 777,
618, 586, 424, 833, 77, 597, 346, 269, 757, 632, 695, 751, 331, 247, 184, 45,
787, 680, 18, 66, 407, 369, 54, 492, 228, 613, 830, 922, 437, 519, 644, 905,
789, 420, 305, 441, 207, 300, 892, 827, 141, 537, 381, 662, 513, 56, 252, 341,
242, 797, 838, 837, 720, 224, 307, 631, 61, 87, 560, 310, 756, 665, 397, 808,
851, 309, 473, 795, 378, 31, 647, 915, 459, 806, 590, 731, 425, 216, 548, 249,
321, 881, 699, 535, 673, 782, 210, 815, 905, 303, 843, 922, 281, 73, 469, 791,
660, 162, 498, 308, 155, 422, 907, 817, 187, 62, 16, 425, 535, 336, 286, 437,
375, 273, 610, 296, 183, 923, 116, 667, 751, 353, 62, 366, 691, 379, 687, 842,
37, 357, 720, 742, 330, 5, 39, 923, 311, 424, 242, 749, 321, 54, 669, 316,
342, 299, 534, 105, 667, 488, 640, 672, 576, 540, 316, 486, 721, 610, 46, 656,
447, 171, 616, 464, 190, 531, 297, 321, 762, 752, 533, 175, 134, 14, 381, 433,
717, 45, 111, 20, 596, 284, 736, 138, 646, 411, 877, 669, 141, 919, 45, 780,
407, 164, 332, 899, 165, 726, 600, 325, 498, 655, 357, 752, 768, 223, 849, 647,
63, 310, 863, 251, 366, 304, 282, 738, 675, 410, 389, 244, 31, 121, 303, 263,
];
pub const HL_TO_LL: [u16; 929 * 3] = [
0b1101010111000000,
0b1110101011110000,
0b1111010101111100,
0b1101010011100000,
0b1110101001111000,
0b1111010100111110,
0b1010100011000000,
0b1101010001110000,
0b1010100001100000,
0b0101000001000000,
0b1010100000110000,
0b0101000000100000,
0b1010110111000000,
0b1101011011110000,
0b1110101101111100,
0b1010110011100000,
0b1101011001111000,
0b1110101100111110,
0b0101100011000000,
0b1010110001110000,
0b0101100001100000,
0b0101110111000000,
0b1010111011110000,
0b1101011101111100,
0b0101110011100000,
0b1010111001111000,
0b1101011100111110,
0b0101110001110000,
0b1010111000111100,
0b0101111011110000,
0b1010111101111100,
0b0101111001111000,
0b1010111100111110,
0b0101111101111100,
0b1111010111111010,
0b1101001011100000,
0b1110100101111000,
0b1111010010111110,
0b1010010011000000,
0b1101001001110000,
0b1110100100111100,
0b1010010001100000,
0b1101001000111000,
0b0100100001000000,
0b1010010000110000,
0b1101001000011100,
0b0100100000100000,
0b1010010000011000,
0b0100100000010000,
0b1010011011100000,
0b1101001101111000,
0b1110100110111110,
0b0100110011000000,
0b1010011001110000,
0b1101001100111100,
0b0100110001100000,
0b1010011000111000,
0b1101001100011110,
0b0100110000110000,
0b1010011000011100,
0b0100111011100000,
0b1010011101111000,
0b1101001110111110,
0b0100111001110000,
0b1010011100111100,
0b0100111000111000,
0b1010011100011110,
0b0100111101111000,
0b1010011110111110,
0b0100111100111100,
0b0100111100011110,
0b1010001011000000,
0b1101000101110000,
0b1110100010111100,
0b1010001001100000,
0b1101000100111000,
0b1110100010011110,
0b0100010001000000,
0b1010001000110000,
0b1101000100011100,
0b0100010000100000,
0b1010001000011000,
0b0100010000010000,
0b0100010000001000,
0b0100011011000000,
0b1010001101110000,
0b1101000110111100,
0b0100011001100000,
0b1010001100111000,
0b1101000110011110,
0b0100011000110000,
0b1010001100011100,
0b0100011000011000,
0b0100011000001100,
0b0100011101110000,
0b1010001110111100,
0b0100011100111000,
0b1010001110011110,
0b0100011100011100,
0b0100011110111100,
0b1010000101100000,
0b1101000010111000,
0b1110100001011110,
0b0100001001000000,
0b1010000100110000,
0b1101000010011100,
0b0100001000100000,
0b1010000100011000,
0b1101000010001110,
0b0100001000010000,
0b1010000100001100,
0b0100001000001000,
0b1010000100000110,
0b0100001101100000,
0b1010000110111000,
0b1101000011011110,
0b0100001100110000,
0b1010000110011100,
0b0100001100011000,
0b1010000110001110,
0b0100001100001100,
0b0100001100000110,
0b1010000111011110,
0b0100001110001110,
0b0100000101000000,
0b1010000010110000,
0b1101000001011100,
0b0100000100100000,
0b1010000010011000,
0b1101000001001110,
0b0100000100010000,
0b1010000010001100,
0b0100000100001000,
0b1010000010000110,
0b0100000100000100,
0b0100000110110000,
0b0100000110011000,
0b0100000110001100,
0b0100000010100000,
0b1101000000101110,
0b1010000001001100,
0b1010000001000110,
0b0100000010000010,
0b1100101011100000,
0b1110010101111000,
0b1111001010111110,
0b1001010011000000,
0b1100101001110000,
0b1110010100111100,
0b1001010001100000,
0b1100101000111000,
0b1110010100011110,
0b0010100001000000,
0b1001010000110000,
0b0010100000100000,
0b1001011011100000,
0b1100101101111000,
0b1110010110111110,
0b0010110011000000,
0b1001011001110000,
0b1100101100111100,
0b0010110001100000,
0b1001011000111000,
0b0010110000110000,
0b0010110000011000,
0b0010111011100000,
0b1001011101111000,
0b1100101110111110,
0b0010111001110000,
0b1001011100111100,
0b0010111000111000,
0b0010111000011100,
0b0010111101111000,
0b1001011110111110,
0b0010111100111100,
0b0010111110111110,
0b1101101011000000,
0b1110110101110000,
0b1111011010111100,
0b1101101001100000,
0b1110110100111000,
0b1111011010011110,
0b1011010001000000,
0b1101101000110000,
0b1110110100011100,
0b1011010000100000,
0b1101101000011000,
0b1110110100001110,
0b1011010000010000,
0b1101101000001100,
0b1001001011000000,
0b1100100101110000,
0b1110010010111100,
0b1011011011000000,
0b1001001001100000,
0b1100100100111000,
0b1110010010011110,
0b1011011001100000,
0b1101101100111000,
0b1110110110011110,
0b0110110001000000,
0b0010010000100000,
0b1001001000011000,
0b1100100100001110,
0b0110110000100000,
0b1011011000011000,
0b0110110000010000,
0b0010011011000000,
0b1001001101110000,
0b1100100110111100,
0b0110111011000000,
0b0010011001100000,
0b1001001100111000,
0b1100100110011110,
0b0110111001100000,
0b1011011100111000,
0b1101101110011110,
0b0110111000110000,
0b0010011000011000,
0b0110111000011000,
0b0010011101110000,
0b1001001110111100,
0b0110111101110000,
0b0010011100111000,
0b1001001110011110,
0b0110111100111000,
0b1011011110011110,
0b0110111100011100,
0b0010011110111100,
0b0110111110111100,
0b0010011110011110,
0b0110111110011110,
0b1101100101100000,
0b1110110010111000,
0b1111011001011110,
0b1011001001000000,
0b1101100100110000,
0b1110110010011100,
0b1011001000100000,
0b1101100100011000,
0b1110110010001110,
0b1011001000010000,
0b1101100100001100,
0b1011001000001000,
0b1011001000000100,
0b1001000101100000,
0b1100100010111000,
0b1110010001011110,
0b1011001101100000,
0b1001000100110000,
0b1100100010011100,
0b0110011001000000,
0b0010001000100000,
0b1101100110011100,
0b1100100010001110,
0b0110011000100000,
0b0010001000010000,
0b1001000100001100,
0b0110011000010000,
0b1011001100001100,
0b1001000100000110,
0b0010001000000100,
0b0010001101100000,
0b1001000110111000,
0b1100100011011110,
0b0110011101100000,
0b0010001100110000,
0b1001000110011100,
0b0110011100110000,
0b1011001110011100,
0b1001000110001110,
0b0110011100011000,
0b0010001100001100,
0b0010001100000110,
0b0010001110111000,
0b1001000111011110,
0b0110011110111000,
0b0010001110011100,
0b0110011110011100,
0b0010001110001110,
0b0110011110001110,
0b0110011111011110,
0b1011000101000000,
0b1101100010110000,
0b1110110001011100,
0b1011000100100000,
0b1101100010011000,
0b1110110001001110,
0b1011000100010000,
0b1101100010001100,
0b1011000100001000,
0b1101100010000110,
0b1011000100000100,
0b1011000100000010,
0b0010000101000000,
0b1001000010110000,
0b1100100001011100,
0b0110001101000000,
0b0010000100100000,
0b1001000010011000,
0b1100100001001110,
0b0110001100100000,
0b1011000110011000,
0b1101100011001110,
0b0110001100010000,
0b0010000100001000,
0b1001000010000110,
0b0110001100001000,
0b1011000110000110,
0b0110001100000100,
0b0010000110110000,
0b1001000011011100,
0b0110001110110000,
0b0010000110011000,
0b1001000011001110,
0b0110001110011000,
0b1011000111001110,
0b0110001110001100,
0b0010000110000110,
0b0110001110000110,
0b0110001111011100,
0b0110001111001110,
0b1011000010100000,
0b1101100001011000,
0b1110110000101110,
0b1011000010010000,
0b1101100001001100,
0b1011000010001000,
0b1101100001000110,
0b1011000010000100,
0b1011000010000010,
0b0010000010100000,
0b1001000001011000,
0b1100100000101110,
0b0110000110100000,
0b0010000010010000,
0b1001000001001100,
0b0110000110010000,
0b1011000011001100,
0b1001000001000110,
0b0110000110001000,
0b0010000010000100,
0b0110000110000100,
0b0010000010000010,
0b0010000011011000,
0b0110000111011000,
0b0110000111001100,
0b0110000111000110,
0b1101100000101100,
0b1101100000100110,
0b1011000001000010,
0b1001000000101100,
0b0010000001001000,
0b0110000011001000,
0b0110000011000100,
0b0110000011000010,
0b1000101011000000,
0b1100010101110000,
0b1110001010111100,
0b1000101001100000,
0b1100010100111000,
0b0001010001000000,
0b1000101000110000,
0b1100010100011100,
0b0001010000100000,
0b1000101000011000,
0b0001010000010000,
0b0001010000001000,
0b0001011011000000,
0b1000101101110000,
0b1100010110111100,
0b0001011001100000,
0b1000101100111000,
0b1100010110011110,
0b0001011000110000,
0b1000101100011100,
0b0001011000011000,
0b0001011000001100,
0b0001011101110000,
0b1000101110111100,
0b0001011100111000,
0b1000101110011110,
0b0001011100011100,
0b0001011110111100,
0b0001011110011110,
0b1100110101100000,
0b1110011010111000,
0b1111001101011110,
0b1001101001000000,
0b1100110100110000,
0b1110011010011100,
0b1001101000100000,
0b1100110100011000,
0b1110011010001110,
0b1001101000010000,
0b1100110100001100,
0b1001101000001000,
0b1100110100000110,
0b1000100101100000,
0b1100010010111000,
0b1110001001011110,
0b1001101101100000,
0b1000100100110000,
0b1100010010011100,
0b0011011001000000,
0b0001001000100000,
0b1100110110011100,
0b1100010010001110,
0b0011011000100000,
0b1001101100011000,
0b1000100100001100,
0b0011011000010000,
0b0001001000001000,
0b0011011000001000,
0b0001001101100000,
0b1000100110111000,
0b1100010011011110,
0b0011011101100000,
0b0001001100110000,
0b1100110111011110,
0b0011011100110000,
0b1001101110011100,
0b1000100110001110,
0b0011011100011000,
0b0001001100001100,
0b0011011100001100,
0b0001001110111000,
0b1000100111011110,
0b0011011110111000,
0b0001001110011100,
0b0011011110011100,
0b0001001110001110,
0b0001001111011110,
0b0011011111011110,
0b1101110101000000,
0b1110111010110000,
0b1111011101011100,
0b1101110100100000,
0b1110111010011000,
0b1111011101001110,
0b1101110100010000,
0b1110111010001100,
0b1101110100001000,
0b1110111010000110,
0b1101110100000100,
0b1001100101000000,
0b1100110010110000,
0b1110011001011100,
0b1011101101000000,
0b1001100100100000,
0b1110111011011100,
0b1110011001001110,
0b1011101100100000,
0b1101110110011000,
0b1110111011001110,
0b1011101100010000,
0b1001100100001000,
0b1100110010000110,
0b1011101100001000,
0b1101110110000110,
0b1001100100000010,
0b0001000101000000,
0b1000100010110000,
0b1100010001011100,
0b0011001101000000,
0b0001000100100000,
0b1000100010011000,
0b1100010001001110,
0b0111011101000000,
0b0011001100100000,
0b1001100110011000,
0b1100110011001110,
0b0111011100100000,
0b1011101110011000,
0b1101110111001110,
0b1000100010000110,
0b0111011100010000,
0b0011001100001000,
0b1001100110000110,
0b0111011100001000,
0b0001000100000010,
0b0001000110110000,
0b1000100011011100,
0b0011001110110000,
0b0001000110011000,
0b1000100011001110,
0b0111011110110000,
0b0011001110011000,
0b1001100111001110,
0b0111011110011000,
0b1011101111001110,
0b0001000110000110,
0b0011001110000110,
0b0001000111011100,
0b0011001111011100,
0b0001000111001110,
0b0111011111011100,
0b0011001111001110,
0b1101110010100000,
0b1110111001011000,
0b1111011100101110,
0b1101110010010000,
0b1110111001001100,
0b1101110010001000,
0b1110111001000110,
0b1101110010000100,
0b1101110010000010,
0b1001100010100000,
0b1100110001011000,
0b1110011000101110,
0b1011100110100000,
0b1001100010010000,
0b1110111001101110,
0b1011100110010000,
0b1101110011001100,
0b1100110001000110,
0b1011100110001000,
0b1001100010000100,
0b1011100110000100,
0b1001100010000010,
0b1011100110000010,
0b0001000010100000,
0b1000100001011000,
0b1100010000101110,
0b0011000110100000,
0b0001000010010000,
0b1000100001001100,
0b0111001110100000,
0b0011000110010000,
0b1001100011001100,
0b1000100001000110,
0b0111001110010000,
0b1011100111001100,
0b0001000010000100,
0b0111001110001000,
0b0011000110000100,
0b0001000010000010,
0b0011000110000010,
0b0001000011011000,
0b1000100001101110,
0b0011000111011000,
0b0001000011001100,
0b0111001111011000,
0b0011000111001100,
0b0001000011000110,
0b0111001111001100,
0b0011000111000110,
0b0001000011101110,
0b0111001111101110,
0b1101110001010000,
0b1110111000101100,
0b1101110001001000,
0b1110111000100110,
0b1101110001000100,
0b1101110001000010,
0b1001100001010000,
0b1100110000101100,
0b1011100011010000,
0b1001100001001000,
0b1100110000100110,
0b1011100011001000,
0b1101110001100110,
0b1011100011000100,
0b1001100001000010,
0b1011100011000010,
0b0001000001010000,
0b1000100000101100,
0b0011000011010000,
0b0001000001001000,
0b1000100000100110,
0b0111000111010000,
0b0011000011001000,
0b1001100001100110,
0b0111000111001000,
0b1011100011100110,
0b0001000001000010,
0b0111000111000100,
0b0011000011000010,
0b0111000111000010,
0b0011000011101100,
0b0111000111101100,
0b0111000111100110,
0b1110111000010110,
0b1101110000100010,
0b1100110000010110,
0b1001100000100100,
0b1001100000100010,
0b0001000000101000,
0b0011000001101000,
0b0111000011101000,
0b0001000000100010,
0b0011000001100010,
0b1000010101100000,
0b0000101001000000,
0b1000010100110000,
0b0000101000100000,
0b1000010100011000,
0b1100001010001110,
0b0000101000010000,
0b1000010100001100,
0b0000101000001000,
0b1000010100000110,
0b0000101101100000,
0b1000010110111000,
0b1100001011011110,
0b0000101100110000,
0b1000010110011100,
0b0000101100011000,
0b1000010110001110,
0b0000101100001100,
0b0000101100000110,
0b0000101110111000,
0b1000010111011110,
0b0000101110011100,
0b0000101110001110,
0b0000101111011110,
0b1000110101000000,
0b1100011010110000,
0b1110001101011100,
0b1000110100100000,
0b1100011010011000,
0b1000110100010000,
0b1100011010001100,
0b1000110100001000,
0b1100011010000110,
0b1000110100000100,
0b0000100101000000,
0b1000010010110000,
0b1100001001011100,
0b0001101101000000,
0b0000100100100000,
0b1100011011011100,
0b1100001001001110,
0b0001101100100000,
0b1000110110011000,
0b1100011011001110,
0b0001101100010000,
0b0000100100001000,
0b1000010010000110,
0b0001101100001000,
0b1000110110000110,
0b0000100100000010,
0b0000100110110000,
0b1000010011011100,
0b0001101110110000,
0b0000100110011000,
0b1000010011001110,
0b0001101110011000,
0b1000110111001110,
0b0001101110001100,
0b0000100110000110,
0b0000100111011100,
0b0001101111011100,
0b0000100111001110,
0b0001101111001110,
0b1100111010100000,
0b1110011101011000,
0b1111001110101110,
0b1100111010010000,
0b1110011101001100,
0b1100111010001000,
0b1110011101000110,
0b1100111010000100,
0b1100111010000010,
0b1000110010100000,
0b1100011001011000,
0b1001110110100000,
0b1000110010010000,
0b1100011001001100,
0b1001110110010000,
0b1100111011001100,
0b1100011001000110,
0b1001110110001000,
0b1000110010000100,
0b1001110110000100,
0b1000110010000010,
0b1001110110000010,
0b0000100010100000,
0b1000010001011000,
0b0001100110100000,
0b0000100010010000,
0b1100011001101110,
0b0011101110100000,
0b0001100110010000,
0b1000110011001100,
0b1000010001000110,
0b0011101110010000,
0b1001110111001100,
0b0000100010000100,
0b0011101110001000,
0b0001100110000100,
0b0000100010000010,
0b0001100110000010,
0b0000100011011000,
0b1000010001101110,
0b0001100111011000,
0b0000100011001100,
0b0011101111011000,
0b0001100111001100,
0b0000100011000110,
0b0011101111001100,
0b0001100111000110,
0b0000100011101110,
0b0001100111101110,
0b0011101111101110,
0b1110111101010000,
0b1111011110101100,
0b1110111101001000,
0b1111011110100110,
0b1110111101000100,
0b1110111101000010,
0b1100111001010000,
0b1110011100101100,
0b1101111011010000,
0b1110111101101100,
0b1110011100100110,
0b1101111011001000,
0b1110111101100110,
0b1101111011000100,
0b1100111001000010,
0b1101111011000010,
0b1000110001010000,
0b1100011000101100,
0b1001110011010000,
0b1000110001001000,
0b1100011000100110,
0b1011110111010000,
0b1001110011001000,
0b1100111001100110,
0b1011110111001000,
0b1101111011100110,
0b1000110001000010,
0b1011110111000100,
0b1001110011000010,
0b1011110111000010,
0b0000100001010000,
0b1000010000101100,
0b0001100011010000,
0b0000100001001000,
0b1000010000100110,
0b0011100111010000,
0b0001100011001000,
0b1000110001100110,
0b0111101111010000,
0b0011100111001000,
0b1001110011100110,
0b0000100001000010,
0b0111101111001000,
0b1011110111100110,
0b0001100011000010,
0b0111101111000100,
0b0000100001101100,
0b0001100011101100,
0b0000100001100110,
0b0011100111101100,
0b0001100011100110,
0b0111101111101100,
0b0011100111100110,
0b0111101111100110,
0b1110111100101000,
0b1111011110010110,
0b1110111100100100,
0b1110111100100010,
0b1100111000101000,
0b1110011100010110,
0b1101111001101000,
0b1110111100110110,
0b1101111001100100,
0b1100111000100010,
0b1101111001100010,
0b1000110000101000,
0b1100011000010110,
0b1001110001101000,
0b1000110000100100,
0b1011110011101000,
0b1001110001100100,
0b1000110000100010,
0b1011110011100100,
0b1001110001100010,
0b1011110011100010,
0b0000100000101000,
0b1000010000010110,
0b0001100001101000,
0b1000110000110110,
0b0011100011101000,
0b0001100001100100,
0b0000100000100010,
0b0111100111101000,
0b0011100011100100,
0b0001100001100010,
0b0111100111100100,
0b0011100011100010,
0b0111100111100010,
0b0001100001110110,
0b0111100111110110,
0b1110111100010010,
0b1101111000110100,
0b1101111000110010,
0b1001110000110100,
0b1011110001110100,
0b1011110001110010,
0b0001100000110100,
0b0011100001110100,
0b0111100011110100,
0b0111100011110010,
0b0000010101000000,
0b0000010100100000,
0b1000001010011000,
0b0000010100010000,
0b0000010100001000,
0b0000010100000100,
0b0000010110110000,
0b0000010110011000,
0b0000010110001100,
0b0000010110000110,
0b0000010111011100,
0b0000010111001110,
0b1000011010100000,
0b1000011010010000,
0b1100001101001100,
0b1000011010001000,
0b1100001101000110,
0b1000011010000100,
0b1000011010000010,
0b0000010010100000,
0b1000001001011000,
0b0000110110100000,
0b1000011011011000,
0b1000001001001100,
0b0000110110010000,
0b1000011011001100,
0b0000110110001000,
0b1000011011000110,
0b0000110110000100,
0b0000010010000010,
0b0000110110000010,
0b0000010011011000,
0b1000001001101110,
0b0000110111011000,
0b1000011011101110,
0b0000110111001100,
0b0000010011000110,
0b0000110111000110,
0b0000010011101110,
0b0000110111101110,
0b1100011101010000,
0b1100011101001000,
0b1100011101000100,
0b1100011101000010,
0b1000011001010000,
0b1000111011010000,
0b1100011101101100,
0b1100001100100110,
0b1000111011001000,
0b1100011101100110,
0b1000111011000100,
0b1000011001000010,
0b1000111011000010,
0b0000010001010000,
0b0000110011010000,
0b0000010001001000,
0b1000001000100110,
0b0001110111010000,
0b0000110011001000,
0b0000010001000100,
0b0001110111001000,
0b0000110011000100,
0b0000010001000010,
0b0001110111000100,
0b0000110011000010,
0b0000010001101100,
0b0000110011101100,
0b0000010001100110,
0b0001110111101100,
0b0000110011100110,
0b0001110111100110,
0b1110011110101000,
0b1110011110100100,
0b1110011110100010,
0b1100011100101000,
0b1100111101101000,
0b1110011110110110,
0b1100111101100100,
0b1100011100100010,
0b1100111101100010,
0b1000011000101000,
0b1100001100010110,
0b1000111001101000,
0b1100011100110110,
0b1001111011101000,
0b1000111001100100,
0b1000011000100010,
0b1001111011100100,
0b1000111001100010,
0b1001111011100010,
0b0000010000101000,
0b1000001000010110,
0b0000110001101000,
0b1000011000110110,
0b0001110011101000,
0b0000110001100100,
0b0000010000100010,
0b0011110111101000,
0b0001110011100100,
0b0000110001100010,
0b0011110111100100,
0b0001110011100010,
0b0000010000110110,
0b0000110001110110,
0b0001110011110110,
0b0011110111110110,
0b1111011111010100,
0b1111011111010010,
0b1110011110010100,
0b1110111110110100,
0b1110011110010010,
0b1110111110110010,
0b1100011100010100,
0b1100111100110100,
0b1100011100010010,
0b1101111101110100,
0b1100111100110010,
0b1101111101110010,
0b1000011000010100,
0b1000111000110100,
0b1000011000010010,
0b1001111001110100,
0b1000111000110010,
0b1011111011110100,
0b1111010101100000,
0b1111101010111000,
0b1110101001000000,
0b1111010100110000,
0b1111101010011100,
0b1110101000100000,
0b1111010100011000,
0b1111101010001110,
0b1110101000010000,
0b1111010100001100,
0b1110101000001000,
0b1111010100000110,
0b1110101000000100,
0b1110101101100000,
0b1111010110111000,
0b1111101011011110,
0b1101011001000000,
0b1110101100110000,
0b1111010110011100,
0b1101011000100000,
0b1110101100011000,
0b1111010110001110,
0b1101011000010000,
0b1110101100001100,
0b1101011000001000,
0b1110101100000110,
0b1101011000000100,
0b1101011101100000,
0b1110101110111000,
0b1111010111011110,
0b1010111001000000,
0b1101011100110000,
0b1110101110011100,
0b1010111000100000,
0b1101011100011000,
0b1110101110001110,
0b1010111000010000,
0b1101011100001100,
0b1010111000001000,
0b1101011100000110,
0b1010111000000100,
0b1010111101100000,
0b1101011110111000,
0b1110101111011110,
0b0101111001000000,
0b1010111100110000,
0b1101011110011100,
0b0101111000100000,
0b1010111100011000,
0b1101011110001110,
0b0101111000010000,
0b1010111100001100,
0b0101111000001000,
0b1010111100000110,
0b0101111101100000,
0b1010111110111000,
0b1101011111011110,
0b0101111100110000,
0b1010111110011100,
0b0101111100011000,
0b1010111110001110,
0b0101111100001100,
0b0101111110111000,
0b1010111111011110,
0b0101111110011100,
0b0101111110001110,
0b1110100101000000,
0b1111010010110000,
0b1111101001011100,
0b1110100100100000,
0b1111010010011000,
0b1111101001001110,
0b1110100100010000,
0b1111010010001100,
0b1110100100001000,
0b1111010010000110,
0b1110100100000100,
0b1110100100000010,
0b1101001101000000,
0b1110100110110000,
0b1111010011011100,
0b1101001100100000,
0b1110100110011000,
0b1111010011001110,
0b1101001100010000,
0b1110100110001100,
0b1101001100001000,
0b1110100110000110,
0b1101001100000100,
0b1101001100000010,
0b1010011101000000,
0b1101001110110000,
0b1110100111011100,
0b1010011100100000,
0b1101001110011000,
0b1110100111001110,
0b1010011100010000,
0b1101001110001100,
0b1010011100001000,
0b1101001110000110,
0b1010011100000100,
0b1010011100000010,
0b0100111101000000,
0b1010011110110000,
0b1101001111011100,
0b0100111100100000,
0b1010011110011000,
0b1101001111001110,
0b0100111100010000,
0b1010011110001100,
0b0100111100001000,
0b1010011110000110,
0b0100111100000100,
0b0100111110110000,
0b1010011111011100,
0b0100111110011000,
0b1010011111001110,
0b0100111110001100,
0b0100111110000110,
0b0100111111011100,
0b0100111111001110,
0b1110100010100000,
0b1111010001011000,
0b1111101000101110,
0b1110100010010000,
0b1111010001001100,
0b1110100010001000,
0b1111010001000110,
0b1110100010000100,
0b1110100010000010,
0b1101000110100000,
0b1110100011011000,
0b1111010001101110,
0b1101000110010000,
0b1110100011001100,
0b1101000110001000,
0b1110100011000110,
0b1101000110000100,
0b1101000110000010,
0b1010001110100000,
0b1101000111011000,
0b1110100011101110,
0b1010001110010000,
0b1101000111001100,
0b1010001110001000,
0b1101000111000110,
0b1010001110000100,
0b1010001110000010,
0b0100011110100000,
0b1010001111011000,
0b1101000111101110,
0b0100011110010000,
0b1010001111001100,
0b0100011110001000,
0b1010001111000110,
0b0100011110000100,
0b0100011110000010,
0b0100011111011000,
0b1010001111101110,
0b0100011111001100,
0b0100011111000110,
0b0100011111101110,
0b1110100001010000,
0b1111010000101100,
0b1110100001001000,
0b1111010000100110,
0b1110100001000100,
0b1110100001000010,
0b1101000011010000,
0b1110100001101100,
0b1101000011001000,
0b1110100001100110,
0b1101000011000100,
0b1101000011000010,
0b1010000111010000,
0b1101000011101100,
0b1010000111001000,
0b1101000011100110,
0b1010000111000100,
0b1010000111000010,
0b0100001111010000,
0b1010000111101100,
0b0100001111001000,
0b1010000111100110,
0b0100001111000100,
0b0100001111000010,
0b0100001111101100,
0b0100001111100110,
0b1110100000101000,
0b1111010000010110,
0b1110100000100100,
0b1110100000100010,
0b1101000001101000,
0b1110100000110110,
0b1101000001100100,
0b1101000001100010,
0b1010000011101000,
0b1101000001110110,
0b1010000011100100,
0b1010000011100010,
0b0100000111101000,
0b1010000011110110,
0b0100000111100100,
0b0100000111100010,
0b1110100000010100,
0b1110100000010010,
0b1101000000110100,
0b1101000000110010,
0b1010000001110100,
0b1010000001110010,
0b1110010101000000,
0b1111001010110000,
0b1111100101011100,
0b1110010100100000,
0b1111001010011000,
0b1111100101001110,
0b1110010100010000,
0b1111001010001100,
0b1110010100001000,
0b1111001010000110,
0b1110010100000100,
0b1110010100000010,
0b1100101101000000,
0b1110010110110000,
0b1111001011011100,
0b1100101100100000,
0b1110010110011000,
0b1111001011001110,
0b1100101100010000,
0b1110010110001100,
0b1100101100001000,
0b1110010110000110,
0b1100101100000100,
0b1100101100000010,
0b1001011101000000,
0b1100101110110000,
0b1110010111011100,
0b1001011100100000,
0b1100101110011000,
0b1110010111001110,
0b1001011100010000,
0b1100101110001100,
0b1001011100001000,
0b1100101110000110,
0b1001011100000100,
0b1001011100000010,
0b0010111101000000,
0b1001011110110000,
0b1100101111011100,
0b0010111100100000,
0b1001011110011000,
0b1100101111001110,
0b0010111100010000,
0b1001011110001100,
0b0010111100001000,
0b1001011110000110,
0b0010111100000100,
0b0010111110110000,
0b1001011111011100,
0b0010111110011000,
0b1001011111001110,
0b0010111110001100,
0b0010111110000110,
0b0010111111011100,
0b0010111111001110,
0b1111011010100000,
0b1111101101011000,
0b0110101111110000,
0b1111011010010000,
0b1111101101001100,
0b0110100111111000,
0b1111011010001000,
0b1111101101000110,
0b0110100011111100,
0b1111011010000100,
0b1111011010000010,
0b1110010010100000,
0b1111001001011000,
0b1111100100101110,
0b1110110110100000,
0b1110010010010000,
0b1111101101101110,
0b1110110110010000,
0b1111011011001100,
0b1111001001000110,
0b1110110110001000,
0b1110010010000100,
0b1110110110000100,
0b1110010010000010,
0b1110110110000010,
0b1100100110100000,
0b1110010011011000,
0b1111001001101110,
0b1101101110100000,
0b1100100110010000,
0b1110010011001100,
0b1101101110010000,
0b1110110111001100,
0b1110010011000110,
0b1101101110001000,
0b1100100110000100,
0b1101101110000100,
0b1100100110000010,
0b1101101110000010,
0b1001001110100000,
0b1100100111011000,
0b1110010011101110,
0b1011011110100000,
0b1001001110010000,
0b1100100111001100,
0b1011011110010000,
0b1101101111001100,
0b1100100111000110,
0b1011011110001000,
0b1001001110000100,
0b1011011110000100,
0b1001001110000010,
0b1011011110000010,
0b0010011110100000,
0b1001001111011000,
0b1100100111101110,
0b0110111110100000,
0b0010011110010000,
0b1001001111001100,
0b0110111110010000,
0b1011011111001100,
0b1001001111000110,
0b0110111110001000,
0b0010011110000100,
0b0110111110000100,
0b0010011110000010,
0b0010011111011000,
0b1001001111101110,
0b0110111111011000,
0b0010011111001100,
0b0110111111001100,
0b0010011111000110,
0b0110111111000110,
0b0010011111101110,
0b1111011001010000,
0b1111101100101100,
0b0110010111111000,
0b1111011001001000,
0b1111101100100110,
0b0110010011111100,
0b1111011001000100,
0b0110010001111110,
0b1111011001000010,
0b1110010001010000,
0b1111001000101100,
0b1110110011010000,
0b1110010001001000,
0b1111001000100110,
0b1110110011001000,
0b1111011001100110,
0b1110110011000100,
0b1110010001000010,
0b1110110011000010,
0b1100100011010000,
0b1110010001101100,
0b1101100111010000,
0b1100100011001000,
0b1110010001100110,
0b1101100111001000,
0b1110110011100110,
0b1101100111000100,
0b1100100011000010,
0b1101100111000010,
0b1001000111010000,
0b1100100011101100,
0b1011001111010000,
0b1001000111001000,
0b1100100011100110,
0b1011001111001000,
0b1101100111100110,
0b1011001111000100,
0b1001000111000010,
0b1011001111000010,
0b0010001111010000,
0b1001000111101100,
0b0110011111010000,
0b0010001111001000,
0b1001000111100110,
0b0110011111001000,
0b1011001111100110,
0b0110011111000100,
0b0010001111000010,
0b0110011111000010,
0b0010001111101100,
0b0110011111101100,
0b0010001111100110,
0b0110011111100110,
0b1111011000101000,
0b1111101100010110,
0b0110001011111100,
0b1111011000100100,
0b0110001001111110,
0b1111011000100010,
0b1110010000101000,
0b1111001000010110,
0b1110110001101000,
0b1111011000110110,
0b1110110001100100,
0b1110010000100010,
0b1110110001100010,
0b1100100001101000,
0b1110010000110110,
0b1101100011101000,
0b1100100001100100,
0b1101100011100100,
0b1100100001100010,
0b1101100011100010,
0b1001000011101000,
0b1100100001110110,
0b1011000111101000,
0b1101100011110110,
0b1011000111100100,
0b1001000011100010,
0b1011000111100010,
0b0010000111101000,
0b1001000011110110,
0b0110001111101000,
0b0010000111100100,
0b0110001111100100,
0b0010000111100010,
0b0110001111100010,
0b0010000111110110,
0b0110001111110110,
0b1111011000010100,
0b0110000101111110,
0b1111011000010010,
0b1110010000010100,
0b1110110000110100,
0b1110010000010010,
0b1110110000110010,
0b1100100000110100,
0b1101100001110100,
0b1100100000110010,
0b1101100001110010,
0b1001000001110100,
0b1011000011110100,
0b1001000001110010,
0b1011000011110010,
0b0010000011110100,
0b0110000111110100,
0b0010000011110010,
0b0110000111110010,
0b1111011000001010,
0b1110010000001010,
0b1110110000011010,
0b1100100000011010,
0b1101100000111010,
0b1001000000111010,
0b1011000001111010,
0b1110001010100000,
0b1111000101011000,
0b1111100010101110,
0b1110001010010000,
0b1111000101001100,
0b1110001010001000,
0b1111000101000110,
0b1110001010000100,
0b1110001010000010,
0b1100010110100000,
0b1110001011011000,
0b1111000101101110,
0b1100010110010000,
0b1110001011001100,
0b1100010110001000,
0b1110001011000110,
0b1100010110000100,
0b1100010110000010,
0b1000101110100000,
0b1100010111011000,
0b1110001011101110,
0b1000101110010000,
0b1100010111001100,
0b1000101110001000,
0b1100010111000110,
0b1000101110000100,
0b1000101110000010,
0b0001011110100000,
0b1000101111011000,
0b1100010111101110,
0b0001011110010000,
0b1000101111001100,
0b0001011110001000,
0b1000101111000110,
0b0001011110000100,
0b0001011110000010,
0b0001011111011000,
0b1000101111101110,
0b0001011111001100,
0b0001011111000110,
0b0001011111101110,
0b1111001101010000,
0b1111100110101100,
0b0011010111111000,
0b1111001101001000,
0b1111100110100110,
0b0011010011111100,
0b1111001101000100,
0b0011010001111110,
0b1111001101000010,
0b1110001001010000,
0b1111000100101100,
0b1110011011010000,
0b1110001001001000,
0b1111000100100110,
0b1110011011001000,
0b1111001101100110,
0b1110011011000100,
0b1110001001000010,
0b1110011011000010,
0b1100010011010000,
0b1110001001101100,
0b1100110111010000,
0b1100010011001000,
0b1110001001100110,
0b1100110111001000,
0b1110011011100110,
0b1100110111000100,
0b1100010011000010,
0b1100110111000010,
0b1000100111010000,
0b1100010011101100,
0b1001101111010000,
0b1000100111001000,
0b1100010011100110,
0b1001101111001000,
0b1100110111100110,
0b1001101111000100,
0b1000100111000010,
0b1001101111000010,
0b0001001111010000,
0b1000100111101100,
0b0011011111010000,
0b0001001111001000,
0b1000100111100110,
0b0011011111001000,
0b1001101111100110,
0b0011011111000100,
0b0001001111000010,
0b0011011111000010,
0b0001001111101100,
0b0011011111101100,
0b0001001111100110,
0b0011011111100110,
0b1111101110101000,
0b0111010111110000,
0b1011101011111100,
0b1111101110100100,
0b0111010011111000,
0b1011101001111110,
0b1111101110100010,
0b0111010001111100,
0b0111010000111110,
0b1111001100101000,
0b1111100110010110,
0b0011001011111100,
0b1111011101101000,
0b1111101110110110,
0b0111011011111100,
0b0011001001111110,
0b1111011101100100,
0b1111001100100010,
0b0111011001111110,
0b1111011101100010,
0b1110001000101000,
0b1111000100010110,
0b1110011001101000,
0b1110001000100100,
0b1110111011101000,
0b1111011101110110,
0b1110001000100010,
0b1110111011100100,
0b1110011001100010,
0b1110111011100010,
0b1100010001101000,
0b1110001000110110,
0b1100110011101000,
0b1100010001100100,
0b1101110111101000,
0b1100110011100100,
0b1100010001100010,
0b1101110111100100,
0b1100110011100010,
0b1101110111100010,
0b1000100011101000,
0b1100010001110110,
0b1001100111101000,
0b1000100011100100,
0b1011101111101000,
0b1001100111100100,
0b1000100011100010,
0b1011101111100100,
0b1001100111100010,
0b1011101111100010,
0b0001000111101000,
0b1000100011110110,
0b0011001111101000,
0b0001000111100100,
0b0111011111101000,
0b0011001111100100,
0b0001000111100010,
0b0111011111100100,
0b0011001111100010,
0b0111011111100010,
0b0001000111110110,
0b0011001111110110,
0b1111101110010100,
0b0111001011111000,
0b1011100101111110,
0b1111101110010010,
0b0111001001111100,
0b0111001000111110,
0b1111001100010100,
0b0011000101111110,
0b1111011100110100,
0b1111001100010010,
0b0111001101111110,
0b1111011100110010,
0b1110001000010100,
0b1110011000110100,
0b1110001000010010,
0b1110111001110100,
0b1110011000110010,
0b1110111001110010,
0b1100010000110100,
0b1100110001110100,
0b1100010000110010,
0b1101110011110100,
0b1100110001110010,
0b1101110011110010,
0b1000100001110100,
0b1001100011110100,
0b1000100001110010,
0b1011100111110100,
0b1001100011110010,
0b1011100111110010,
0b0001000011110100,
0b0011000111110100,
0b0001000011110010,
0b0111001111110100,
0b0011000111110010,
0b0111001111110010,
0b1111101110001010,
0b0111000101111100,
0b0111000100111110,
0b1111001100001010,
0b1111011100011010,
0b1110001000001010,
0b1110011000011010,
0b1110111000111010,
0b1100010000011010,
0b1100110000111010,
0b1101110001111010,
0b1000100000111010,
0b1001100001111010,
0b1011100011111010,
0b0001000001111010,
0b0011000011111010,
0b0111000111111010,
0b0111000010111110,
0b1110000101010000,
0b1111000010101100,
0b1110000101001000,
0b1111000010100110,
0b1110000101000100,
0b1110000101000010,
0b1100001011010000,
0b1110000101101100,
0b1100001011001000,
0b1110000101100110,
0b1100001011000100,
0b1100001011000010,
0b1000010111010000,
0b1100001011101100,
0b1000010111001000,
0b1100001011100110,
0b1000010111000100,
0b1000010111000010,
0b0000101111010000,
0b1000010111101100,
0b0000101111001000,
0b1000010111100110,
0b0000101111000100,
0b0000101111000010,
0b0000101111101100,
0b0000101111100110,
0b1111000110101000,
0b1111100011010110,
0b0001101011111100,
0b1111000110100100,
0b0001101001111110,
0b1111000110100010,
0b1110000100101000,
0b1111000010010110,
0b1110001101101000,
0b1110000100100100,
0b1110001101100100,
0b1110000100100010,
0b1110001101100010,
0b1100001001101000,
0b1110000100110110,
0b1100011011101000,
0b1100001001100100,
0b1100011011100100,
0b1100001001100010,
0b1100011011100010,
0b1000010011101000,
0b1100001001110110,
0b1000110111101000,
0b1000010011100100,
0b1000110111100100,
0b1000010011100010,
0b1000110111100010,
0b0000100111101000,
0b1000010011110110,
0b0001101111101000,
0b0000100111100100,
0b0001101111100100,
0b0000100111100010,
0b0001101111100010,
0b0000100111110110,
0b0001101111110110,
0b1111100111010100,
0b0011101011111000,
0b1001110101111110,
0b1111100111010010,
0b0011101001111100,
0b0011101000111110,
0b1111000110010100,
0b0001100101111110,
0b1111001110110100,
0b1111000110010010,
0b0011101101111110,
0b1111001110110010,
0b1110000100010100,
0b1110001100110100,
0b1110000100010010,
0b1110011101110100,
0b1110001100110010,
0b1110011101110010,
0b1100001000110100,
0b1100011001110100,
0b1100001000110010,
0b1100111011110100,
0b1100011001110010,
0b1100111011110010,
0b1000010001110100,
0b1000110011110100,
0b1000010001110010,
0b1001110111110100,
0b1000110011110010,
0b1001110111110010,
0b0000100011110100,
0b0001100111110100,
0b0000100011110010,
0b0011101111110100,
0b0001100111110010,
0b0011101111110010,
0b0111101011110000,
0b1011110101111100,
0b0111101001111000,
0b1011110100111110,
0b0111101000111100,
0b0111101000011110,
0b1111100111001010,
0b0011100101111100,
0b1111101111011010,
0b0111101101111100,
0b0011100100111110,
0b0111101100111110,
0b1111000110001010,
0b1111001110011010,
0b1111011110111010,
0b1110000100001010,
0b1110001100011010,
0b1110011100111010,
0b1110111101111010,
0b1100001000011010,
0b1100011000111010,
0b1100111001111010,
0b1101111011111010,
0b1000010000111010,
0b1000110001111010,
0b1001110011111010,
0b1011110111111010,
0b0000100001111010,
0b0001100011111010,
0b0011100111111010,
0b0111100101111000,
0b1011110010111110,
0b0111100100111100,
0b0111100100011110,
0b0011100010111110,
0b0111100110111110,
0b0111100010111100,
0b0111100010011110,
0b0111100001011110,
0b1110000010101000,
0b1110000010100100,
0b1110000010100010,
0b1100000101101000,
0b1110000010110110,
0b1100000101100100,
0b1100000101100010,
0b1000001011101000,
0b1100000101110110,
0b1000001011100100,
0b1000001011100010,
0b0000010111101000,
0b1000001011110110,
0b0000010111100100,
0b0000010111100010,
0b0000010111110110,
0b1111000011010100,
0b0000110101111110,
0b1111000011010010,
0b1110000010010100,
0b1110000110110100,
0b1110000010010010,
0b1110000110110010,
0b1100000100110100,
0b1100001101110100,
0b1100000100110010,
0b1100001101110010,
0b1000001001110100,
0b1000011011110100,
0b1000001001110010,
0b1000011011110010,
0b0000010011110100,
0b0000110111110100,
0b0000010011110010,
0b0000110111110010,
0b1111100011101010,
0b0001110101111100,
0b0001110100111110,
0b1111000011001010,
0b1111000111011010,
0b1110000010001010,
0b1110000110011010,
0b1110001110111010,
0b1100000100011010,
0b1100001100111010,
0b1100011101111010,
0b1000001000111010,
0b1000011001111010,
0b1000111011111010,
0b0000010001111010,
0b0000110011111010,
0b0001110111111010,
0b0011110101111000,
0b1001111010111110,
0b0011110100111100,
0b0011110100011110,
0b0001110010111110,
0b0011110110111110,
0b0111110101110000,
0b1011111010111100,
0b0111110100111000,
0b1011111010011110,
0b0111110100011100,
0b0111110100001110,
0b0011110010111100,
0b0111110110111100,
0b0011110010011110,
0b0111110110011110,
0b0111110010111000,
0b1011111001011110,
0b0111110010011100,
0b0111110010001110,
0b0011110001011110,
0b0111110011011110,
0b0111110001011100,
0b0111110001001110,
0b0111110000101110,
0b1100000010110100,
0b1100000010110010,
0b1000000101110100,
0b1000000101110010,
0b0000001011110100,
0b0000001011110010,
0b1110000011011010,
0b1100000010011010,
0b1100000110111010,
0b1000000100111010,
0b1000001101111010,
0b0000001001111010,
0b0000011011111010,
0b0000111010111110,
0b0001111010111100,
0b0001111010011110,
0b0011111010111000,
0b1001111101011110,
0b0011111010011100,
0b0011111010001110,
0b0001111001011110,
0b0011111011011110,
0b0111111010110000,
0b1011111101011100,
0b0111111010011000,
0b1011111101001110,
0b0111111010001100,
0b0111111010000110,
0b0011111001011100,
0b0111111011011100,
0b0011111001001110,
0b0111111011001110,
0b0111111001011000,
0b1011111100101110,
0b0111111001001100,
0b0111111001000110,
0b0011111000101110,
0b0111111001101110,
0b0111111000101100,
0b0111111000100110,
0b0000111101011110,
0b0001111101011100,
0b0001111101001110,
0b0011111101011000,
0b1001111110101110,
0b0011111101001100,
0b0011111101000110,
0b0001111100101110,
0b0011111101101110,
0b0011111100101100,
0b0011111100100110,
0b1010101111100000,
0b1101010111111000,
0b0101001111000000,
0b1010100111110000,
0b1101010011111100,
0b0101000111100000,
0b1010100011111000,
0b1101010001111110,
0b0101000011110000,
0b1010100001111100,
0b0101000001111000,
0b1111101011010000,
0b0101101111100000,
0b1010110111111000,
0b1111101011001000,
0b0101100111110000,
0b1010110011111100,
0b1111101011000100,
0b0101100011111000,
0b1010110001111110,
0b1111101011000010,
0b0101100001111100,
0b1111010111010000,
0b1111101011101100,
0b0101110111111000,
0b1111010111001000,
0b1111101011100110,
0b0101110011111100,
0b1111010111000100,
0b0101110001111110,
0b1111010111000010,
0b1110101111010000,
0b1111010111101100,
0b1110101111001000,
0b1111010111100110,
0b1110101111000100,
0b1110101111000010,
0b1101011111010000,
0b1110101111101100,
0b1101011111001000,
0b1110101111100110,
0b1101011111000100,
0b1101011111000010,
0b1010111111010000,
0b1101011111101100,
0b1010111111001000,
0b1101011111100110,
0b1010111111000100,
0b0100101111000000,
0b1010010111110000,
0b1101001011111100,
0b0100100111100000,
0b1010010011111000,
0b1101001001111110,
0b0100100011110000,
0b1010010001111100,
0b0100100001111000,
0b1010010000111110,
0b0100100000111100,
0b1111101001101000,
0b0100110111110000,
0b1010011011111100,
0b1111101001100100,
0b0100110011111000,
0b1010011001111110,
0b1111101001100010,
0b0100110001111100,
0b0100110000111110,
0b1111010011101000,
0b1111101001110110,
0b0100111011111100,
0b1111010011100100,
0b0100111001111110,
0b1111010011100010,
0b1110100111101000,
0b1111010011110110,
0b1110100111100100,
0b1110100111100010,
0b1101001111101000,
0b1110100111110110,
0b1101001111100100,
0b1101001111100010,
0b1010011111101000,
0b1101001111110110,
0b1010011111100100,
0b1010011111100010,
0b0100010111100000,
0b1010001011111000,
0b1101000101111110,
0b0100010011110000,
0b1010001001111100,
0b0100010001111000,
0b1010001000111110,
0b0100010000111100,
0b0100010000011110,
0b1111101000110100,
0b0100011011111000,
0b1010001101111110,
0b1111101000110010,
0b0100011001111100,
0b0100011000111110,
0b1111010001110100,
0b0100011101111110,
0b1111010001110010,
0b1110100011110100,
0b1110100011110010,
0b1101000111110100,
0b1101000111110010,
0b1010001111110100,
0b1010001111110010,
0b0100001011110000,
0b1010000101111100,
0b0100001001111000,
0b1010000100111110,
0b0100001000111100,
0b0100001000011110,
0b1111101000011010,
0b0100001101111100,
0b0100001100111110,
0b1111010000111010,
0b1110100001111010,
0b1101000011111010,
0b0100000101111000,
0b1010000010111110,
0b0100000100111100,
0b0100000100011110,
0b0100000110111110,
0b0100000010111100,
0b0100000010011110,
0b0010101111000000,
0b1001010111110000,
0b1100101011111100,
0b0010100111100000,
0b1001010011111000,
0b1100101001111110,
0b0010100011110000,
0b1001010001111100,
0b0010100001111000,
0b1001010000111110,
0b0010100000111100,
0b1111100101101000,
0b0010110111110000,
0b1001011011111100,
0b1111100101100100,
0b0010110011111000,
0b1001011001111110,
0b1111100101100010,
0b0010110001111100,
0b0010110000111110,
0b1111001011101000,
0b1111100101110110,
0b0010111011111100,
0b1111001011100100,
0b0010111001111110,
0b1111001011100010,
0b1110010111101000,
0b1111001011110110,
0b1110010111100100,
0b1110010111100010,
0b1100101111101000,
0b1110010111110110,
0b1100101111100100,
0b1100101111100010,
0b1001011111101000,
0b1100101111110110,
0b1001011111100100,
0b1001011111100010,
0b1011010111100000,
0b1101101011111000,
0b1110110101111110,
0b0110100111000000,
0b1011010011110000,
0b1101101001111100,
0b0110100011100000,
0b1011010001111000,
0b1101101000111110,
0b0110100001110000,
0b1011010000111100,
0b0110100000111000,
0b1011010000011110,
0b0110100000011100,
0b0010010111100000,
0b1001001011111000,
0b1100100101111110,
0b0110110111100000,
0b0010010011110000,
0b1001001001111100,
0b0110110011110000,
0b1011011001111100,
0b1001001000111110,
0b0110110001111000,
0b0010010000111100,
0b0110110000111100,
0b0010010000011110,
0b0110110000011110,
0b1111100100110100,
0b0010011011111000,
0b1001001101111110,
0b1111101101110100,
0b1111100100110010,
0b0110111011111000,
0b0010011001111100,
0b1111101101110010,
0b0110111001111100,
0b0010011000111110,
0b0110111000111110,
0b1111001001110100,
0b0010011101111110,
0b1111011011110100,
0b1111001001110010,
0b0110111101111110,
0b1111011011110010,
0b1110010011110100,
0b1110110111110100,
0b1110010011110010,
0b1110110111110010,
0b1100100111110100,
0b1101101111110100,
0b1100100111110010,
0b1101101111110010,
0b1001001111110100,
0b1001001111110010,
0b0110010111000000,
0b1011001011110000,
0b1101100101111100,
0b0110010011100000,
0b1011001001111000,
0b1101100100111110,
0b0110010001110000,
0b1011001000111100,
0b0110010000111000,
0b1011001000011110,
0b0110010000011100,
0b0110010000001110,
0b0010001011110000,
0b1001000101111100,
0b0110011011110000,
0b0010001001111000,
0b1001000100111110,
0b0110011001111000,
0b1011001100111110,
0b0110011000111100,
0b0010001000011110,
0b0110011000011110,
0b1111100100011010,
0b0010001101111100,
0b1111101100111010,
0b0110011101111100,
0b0010001100111110,
0b0110011100111110,
0b1111001000111010,
0b1111011001111010,
0b1110010001111010,
0b1110110011111010,
0b1100100011111010,
0b1101100111111010,
0b1001000111111010,
0b0110001011100000,
0b1011000101111000,
0b1101100010111110,
0b0110001001110000,
0b1011000100111100,
0b0110001000111000,
0b1011000100011110,
0b0110001000011100,
0b0110001000001110,
0b0010000101111000,
0b1001000010111110,
0b0110001101111000,
0b0010000100111100,
0b0110001100111100,
0b0010000100011110,
0b0110001100011110,
0b0010000110111110,
0b0110001110111110,
0b0110000101110000,
0b1011000010111100,
0b0110000100111000,
0b1011000010011110,
0b0110000100011100,
0b0110000100001110,
0b0010000010111100,
0b0110000110111100,
0b0010000010011110,
0b0110000110011110,
0b0110000010111000,
0b1011000001011110,
0b0110000010011100,
0b0110000010001110,
0b0010000001011110,
0b0110000011011110,
0b0110000001011100,
0b0110000001001110,
0b0001010111100000,
0b1000101011111000,
0b1100010101111110,
0b0001010011110000,
0b1000101001111100,
0b0001010001111000,
0b1000101000111110,
0b0001010000111100,
0b0001010000011110,
0b1111100010110100,
0b0001011011111000,
0b1000101101111110,
0b1111100010110010,
0b0001011001111100,
0b0001011000111110,
0b1111000101110100,
0b0001011101111110,
0b1111000101110010,
0b1110001011110100,
0b1110001011110010,
0b1100010111110100,
0b1100010111110010,
0b1000101111110100,
0b1000101111110010,
0b0011010111000000,
0b1001101011110000,
0b1100110101111100,
0b0011010011100000,
0b1001101001111000,
0b1100110100111110,
0b0011010001110000,
0b1001101000111100,
0b0011010000111000,
0b1001101000011110,
0b0011010000011100,
0b0011010000001110,
0b0001001011110000,
0b1000100101111100,
0b0011011011110000,
0b0001001001111000,
0b1000100100111110,
0b0011011001111000,
0b1001101100111110,
0b0011011000111100,
0b0001001000011110,
0b0011011000011110,
0b1111100010011010,
0b0001001101111100,
0b1111100110111010,
0b0011011101111100,
0b0001001100111110,
0b0011011100111110,
0b1111000100111010,
0b1111001101111010,
0b1110001001111010,
0b1110011011111010,
0b1100010011111010,
0b1100110111111010,
0b1000100111111010,
0b1011101011100000,
0b1101110101111000,
0b1110111010111110,
0b0111010011000000,
0b1011101001110000,
0b1101110100111100,
0b0111010001100000,
0b1011101000111000,
0b1101110100011110,
0b0111010000110000,
0b1011101000011100,
0b0111010000011000,
0b1011101000001110,
0b0111010000001100,
0b0011001011100000,
0b1001100101111000,
0b1100110010111110,
0b0111011011100000,
0b0011001001110000,
0b1001100100111100,
0b0111011001110000,
0b1011101100111100,
0b1001100100011110,
0b0111011000111000,
0b0011001000011100,
0b0111011000011100,
0b0011001000001110,
0b0111011000001110,
0b0001000101111000,
0b1000100010111110,
0b0011001101111000,
0b0001000100111100,
0b0111011101111000,
0b0011001100111100,
0b0001000100011110,
0b0111011100111100,
0b0011001100011110,
0b0111011100011110,
0b0001000110111110,
0b0011001110111110,
0b0111011110111110,
0b0111001011000000,
0b1011100101110000,
0b1101110010111100,
0b0111001001100000,
0b1011100100111000,
0b1101110010011110,
0b0111001000110000,
0b1011100100011100,
0b0111001000011000,
0b1011100100001110,
0b0111001000001100,
0b0111001000000110,
0b0011000101110000,
0b1001100010111100,
0b0111001101110000,
0b0011000100111000,
0b1001100010011110,
0b0111001100111000,
0b1011100110011110,
0b0111001100011100,
0b0011000100001110,
0b0111001100001110,
0b0001000010111100,
0b0011000110111100,
0b0001000010011110,
0b0111001110111100,
0b0011000110011110,
0b0111001110011110,
0b0111000101100000,
0b1011100010111000,
0b1101110001011110,
0b0111000100110000,
0b1011100010011100,
0b0111000100011000,
0b1011100010001110,
0b0111000100001100,
0b0111000100000110,
0b0011000010111000,
0b1001100001011110,
0b0111000110111000,
0b0011000010011100,
0b0111000110011100,
0b0011000010001110,
0b0111000110001110,
0b0001000001011110,
0b0011000011011110,
0b0111000111011110,
0b0111000010110000,
0b1011100001011100,
0b0111000010011000,
0b1011100001001110,
0b0111000010001100,
0b0111000010000110,
0b0011000001011100,
0b0111000011011100,
0b0011000001001110,
0b0111000011001110,
0b0111000001011000,
0b1011100000101110,
0b0111000001001100,
0b0111000001000110,
0b0011000000101110,
0b0111000001101110,
0b0111000000101100,
0b0111000000100110,
0b0000101011110000,
0b1000010101111100,
0b0000101001111000,
0b1000010100111110,
0b0000101000111100,
0b0000101000011110,
0b0000101101111100,
0b0000101100111110,
0b1111000010111010,
0b1110000101111010,
0b1100001011111010,
0b1000010111111010,
0b0001101011100000,
0b1000110101111000,
0b1100011010111110,
0b0001101001110000,
0b1000110100111100,
0b0001101000111000,
0b1000110100011110,
0b0001101000011100,
0b0001101000001110,
0b0000100101111000,
0b1000010010111110,
0b0001101101111000,
0b0000100100111100,
0b0001101100111100,
0b0000100100011110,
0b0001101100011110,
0b0000100110111110,
0b0001101110111110,
0b0011101011000000,
0b1001110101110000,
0b1100111010111100,
0b0011101001100000,
0b1001110100111000,
0b1100111010011110,
0b0011101000110000,
0b1001110100011100,
0b0011101000011000,
0b1001110100001110,
0b0011101000001100,
0b0011101000000110,
0b0001100101110000,
0b1000110010111100,
0b0011101101110000,
0b0001100100111000,
0b1000110010011110,
0b0011101100111000,
0b0001100100011100,
0b0011101100011100,
0b0001100100001110,
0b0011101100001110,
0b0000100010111100,
0b0001100110111100,
0b0000100010011110,
0b0011101110111100,
0b0001100110011110,
0b0011101110011110,
0b1011110101100000,
0b1101111010111000,
0b1110111101011110,
0b0111101001000000,
0b1011110100110000,
0b1101111010011100,
0b0111101000100000,
0b1011110100011000,
0b1101111010001110,
0b0111101000010000,
0b1011110100001100,
0b0111101000001000,
0b1011110100000110,
0b0111101000000100,
0b0011100101100000,
0b1001110010111000,
0b1100111001011110,
0b0111101101100000,
0b0011100100110000,
0b1001110010011100,
0b0111101100110000,
0b1011110110011100,
0b1001110010001110,
0b0111101100011000,
0b0011100100001100,
0b0111101100001100,
0b0011100100000110,
0b0111101100000110,
0b0001100010111000,
0b1000110001011110,
0b0011100110111000,
0b0001100010011100,
0b0111101110111000,
0b0011100110011100,
0b0001100010001110,
0b0111101110011100,
0b0011100110001110,
0b0111101110001110,
0b0000100001011110,
0b0001100011011110,
0b0011100111011110,
0b0111101111011110,
0b0111100101000000,
0b1011110010110000,
0b1101111001011100,
0b0111100100100000,
0b1011110010011000,
0b1101111001001110,
0b0111100100010000,
0b1011110010001100,
0b0111100100001000,
0b1011110010000110,
0b0111100100000100,
0b0111100100000010,
0b0011100010110000,
0b1001110001011100,
0b0111100110110000,
0b0011100010011000,
0b1001110001001110,
0b0111100110011000,
0b1011110011001110,
0b0111100110001100,
0b0011100010000110,
0b0111100110000110,
0b0001100001011100,
0b0011100011011100,
0b0001100001001110,
0b0111100111011100,
0b0011100011001110,
0b0111100111001110,
0b0111100010100000,
0b1011110001011000,
0b1101111000101110,
0b0111100010010000,
0b1011110001001100,
0b0111100010001000,
0b1011110001000110,
0b0111100010000100,
0b0111100010000010,
0b0011100001011000,
0b1001110000101110,
0b0111100011011000,
0b0011100001001100,
0b0111100011001100,
0b0011100001000110,
0b0111100011000110,
0b0001100000101110,
0b0011100001101110,
0b0111100011101110,
0b0111100001010000,
0b1011110000101100,
0b0111100001001000,
0b1011110000100110,
0b0111100001000100,
0b0111100001000010,
0b0011100000101100,
0b0111100001101100,
0b0011100000100110,
0b0111100001100110,
0b0111100000101000,
0b1011110000010110,
0b0111100000100100,
0b0111100000100010,
0b0011100000010110,
0b0111100000110110,
0b0000010101111000,
0b1000001010111110,
0b0000010100111100,
0b0000010100011110,
0b0000010110111110,
0b0000110101110000,
0b1000011010111100,
0b0000110100111000,
0b1000011010011110,
0b0000110100011100,
0b0000110100001110,
0b0000010010111100,
0b0000110110111100,
0b0000010010011110,
0b0000110110011110,
0b0001110101100000,
0b1000111010111000,
0b1100011101011110,
0b0001110100110000,
0b1000111010011100,
0b0001110100011000,
0b1000111010001110,
0b0001110100001100,
0b0001110100000110,
0b0000110010111000,
0b1000011001011110,
0b0001110110111000,
0b0000110010011100,
0b0001110110011100,
0b0000110010001110,
0b0001110110001110,
0b0000010001011110,
0b0000110011011110,
0b0001110111011110,
0b0011110101000000,
0b1001111010110000,
0b1100111101011100,
0b0011110100100000,
0b1001111010011000,
0b1100111101001110,
0b0011110100010000,
0b1001111010001100,
0b0011110100001000,
0b1001111010000110,
0b0011110100000100,
0b0011110100000010,
0b0001110010110000,
0b1000111001011100,
0b0011110110110000,
0b0001110010011000,
0b1000111001001110,
0b0011110110011000,
0b1001111011001110,
0b0011110110001100,
0b0001110010000110,
0b0011110110000110,
0b0000110001011100,
0b0001110011011100,
0b0000110001001110,
0b0011110111011100,
0b0001110011001110,
0b0011110111001110,
0b1011111010100000,
0b1101111101011000,
0b1110111110101110,
0b1011111010010000,
0b1101111101001100,
0b1011111010001000,
0b1101111101000110,
0b1011111010000100,
0b1011111010000010,
0b0011110010100000,
0b1001111001011000,
0b1100111100101110,
0b0111110110100000,
0b0011110010010000,
0b1001111001001100,
0b0111110110010000,
0b1011111011001100,
0b1001111001000110,
0b0111110110001000,
0b0011110010000100,
0b0111110110000100,
0b0011110010000010,
0b0111110110000010,
0b0001110001011000,
0b1000111000101110,
0b0011110011011000,
0b0001110001001100,
0b0111110111011000,
0b0011110011001100,
0b0001110001000110,
0b0111110111001100,
0b0011110011000110,
0b0111110111000110,
0b0000110000101110,
0b0001110001101110,
0b0011110011101110,
0b0111110111101110,
0b1011111001010000,
0b1101111100101100,
0b1011111001001000,
0b1101111100100110,
0b1011111001000100,
0b1011111001000010,
0b0011110001010000,
0b1001111000101100,
0b0111110011010000,
0b0011110001001000,
0b1001111000100110,
0b0111110011001000,
0b1011111001100110,
0b0111110011000100,
0b0011110001000010,
0b0111110011000010,
0b0001110000101100,
0b0011110001101100,
0b0001110000100110,
0b0111110011101100,
0b0011110001100110,
0b0111110011100110,
0b1011111000101000,
0b1101111100010110,
0b1011111000100100,
0b1011111000100010,
0b0011110000101000,
0b1001111000010110,
0b0111110001101000,
0b0011110000100100,
0b0111110001100100,
0b0011110000100010,
0b0111110001100010,
0b0001110000010110,
0b0011110000110110,
0b0111110001110110,
0b1011111000010100,
0b1011111000010010,
0b0011110000010100,
0b0111110000110100,
0b0011110000010010,
0b0111110000110010,
0b0000001010111100,
0b0000001010011110,
0b0000011010111000,
0b1000001101011110,
0b0000011010011100,
0b0000011010001110,
0b0000001001011110,
0b0000011011011110,
0b0000111010110000,
0b1000011101011100,
0b0000111010011000,
0b1000011101001110,
0b0000111010001100,
0b0000111010000110,
0b0000011001011100,
0b0000111011011100,
0b0000011001001110,
0b0000111011001110,
0b0001111010100000,
0b1000111101011000,
0b1100011110101110,
0b0001111010010000,
0b1000111101001100,
0b0001111010001000,
0b1000111101000110,
0b0001111010000100,
0b0001111010000010,
0b0000111001011000,
0b1000011100101110,
0b0001111011011000,
0b1000111101101110,
0b0001111011001100,
0b0000111001000110,
0b0001111011000110,
0b0000011000101110,
0b0000111001101110,
0b0001111011101110,
0b1001111101010000,
0b1100111110101100,
0b1001111101001000,
0b1100111110100110,
0b1001111101000100,
0b1001111101000010,
0b0001111001010000,
0b1000111100101100,
0b0011111011010000,
0b1001111101101100,
0b1000111100100110,
0b0011111011001000,
0b0001111001000100,
0b0011111011000100,
0b0001111001000010,
0b0011111011000010,
0b0000111000101100,
0b0001111001101100,
0b0000111000100110,
0b0011111011101100,
0b0001111001100110,
0b0011111011100110,
0b1101111110101000,
0b1110111111010110,
0b1101111110100100,
0b1101111110100010,
0b1001111100101000,
0b1100111110010110,
0b1011111101101000,
0b1001111100100100,
0b1011111101100100,
0b1001111100100010,
0b1011111101100010,
0b0001111000101000,
0b1000111100010110,
0b0011111001101000,
0b0001111000100100,
0b0111111011101000,
0b0011111001100100,
0b0001111000100010,
0b0111111011100100,
0b0011111001100010,
0b0111111011100010,
0b0000111000010110,
0b0001111000110110,
0b0011111001110110,
0b0111111011110110,
0b1101111110010100,
0b1101111110010010,
0b1001111100010100,
0b1011111100110100,
0b1001111100010010,
0b1011111100110010,
0b0001111000010100,
0b0011111000110100,
0b0001111000010010,
0b0111111001110100,
0b0011111000110010,
0b0111111001110010,
0b1101111110001010,
0b1001111100001010,
0b1011111100011010,
0b0001111000001010,
0b0011111000011010,
0b0111111000111010,
0b0000001101011100,
0b0000001101001110,
0b0000011101011000,
0b1000001110101110,
0b0000011101001100,
0b0000011101000110,
0b0000001100101110,
0b0000011101101110,
0b0000111101010000,
0b1000011110101100,
0b0000111101001000,
0b1000011110100110,
0b0000111101000100,
0b0000111101000010,
0b0000011100101100,
0b0000111101101100,
0b0000011100100110,
0b0000111101100110,
0b1000111110101000,
0b1100011111010110,
0b1000111110100100,
0b1000111110100010,
0b0000111100101000,
0b1000011110010110,
0b0001111101101000,
0b1000111110110110,
0b0001111101100100,
0b0000111100100010,
0b0001111101100010,
0b0000011100010110,
0b0000111100110110,
0b0001111101110110,
0b1100111111010100,
0b1100111111010010,
0b1000111110010100,
0b1001111110110100,
0b1000111110010010,
0b1001111110110010,
0b0000111100010100,
0b0001111100110100,
0b0000111100010010,
0b0011111101110100,
0b0001111100110010,
0b0011111101110010,
0b1100111111001010,
0b1000111110001010,
0b1001111110011010,
0b0000111100001010,
0b0001111100011010,
0b0011111100111010,
0b0000001110101100,
0b0000001110100110,
0b0000011110101000,
0b1000001111010110,
0b0000011110100100,
0b0000011110100010,
0b0000001110010110,
0b0000011110110110,
0b1000011111010100,
0b1000011111010010,
0b0000011110010100,
0b0000111110110100,
0b0000011110010010,
0b0000111110110010,
0b1100011111101010,
];
pub const ECC_MICRO: [u16; 344] = [
76, 925, 537, 597, 784, 691, 437,
237, 308, 436, 284, 646, 653, 428, 379,
567, 527, 622, 257, 289, 362, 501, 441, 205,
377, 457, 64, 244, 826, 841, 818, 691, 266, 612,
462, 45, 565, 708, 825, 213, 15, 68, 327, 602, 904,
597, 864, 757, 201, 646, 684, 347, 127, 388, 7, 69, 851,
764, 713, 342, 384, 606, 583, 322, 592, 678, 204, 184, 394, 692,
669, 677, 154, 187, 241, 286, 274, 354, 478, 915, 691, 833, 105, 215,
460, 829, 476, 109, 904, 664, 230, 5, 80, 74, 550, 575, 147, 868, 642,
274, 562, 232, 755, 599, 524, 801, 132, 295, 116, 442, 428, 295, 42, 176, 65,
279, 577, 315, 624, 37, 855, 275, 739, 120, 297, 312, 202, 560, 321, 233, 756,
760, 573,
108, 519, 781, 534, 129, 425, 681, 553, 422, 716, 763, 693, 624, 610, 310, 691,
347, 165, 193, 259, 568,
443, 284, 887, 544, 788, 93, 477, 760, 331, 608, 269, 121, 159, 830, 446, 893,
699, 245, 441, 454, 325, 858, 131, 847, 764, 169,
361, 575, 922, 525, 176, 586, 640, 321, 536, 742, 677, 742, 687, 284, 193, 517,
273, 494, 263, 147, 593, 800, 571, 320, 803, 133, 231, 390, 685, 330, 63, 410,
234, 228, 438, 848, 133, 703, 529, 721, 788, 322, 280, 159, 738, 586, 388, 684,
445, 680, 245, 595, 614, 233, 812, 32, 284, 658, 745, 229, 95, 689, 920, 771,
554, 289, 231, 125, 117, 518,
476, 36, 659, 848, 678, 64, 764, 840, 157, 915, 470, 876, 109, 25, 632, 405,
417, 436, 714, 60, 376, 97, 413, 706, 446, 21, 3, 773, 569, 267, 272, 213,
31, 560, 231, 758, 103, 271, 572, 436, 339, 730, 82, 285,
923, 797, 576, 875, 156, 706, 63, 81, 257, 874, 411, 416, 778, 50, 205, 303,
188, 535, 909, 155, 637, 230, 534, 96, 575, 102, 264, 233, 919, 593, 865, 26,
579, 623, 766, 146, 10, 739, 246, 127, 71, 244, 211, 477, 920, 876, 427, 820,
718, 435
];
pub const M_PDF417_VARIANTS_COUNT: usize = 34;
pub const M_PDF417_VARIANTS: [u16; M_PDF417_VARIANTS_COUNT * 4] = [
1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
11, 14, 17, 20, 24, 28, 8, 11, 14, 17, 20, 23, 26, 6, 8, 10, 12, 15, 20, 26, 32, 38, 44, 4, 6, 8, 10, 12, 15, 20, 26, 32, 38, 44,
7, 7, 7, 8, 8, 8, 8, 9, 9, 10, 11, 13, 15, 12, 14, 16, 18, 21, 26, 32, 38, 44, 50, 8, 12, 14, 16, 18, 21, 26, 32, 38, 44, 50,
0, 0, 0, 7, 7, 7, 7, 15, 15, 24, 34, 57, 84, 45, 70, 99, 115, 133, 154, 180, 212, 250, 294, 7, 45, 70, 99, 115, 133, 154, 180, 212, 250, 294
];
pub const M_PDF417_RAP: [u8; M_PDF417_VARIANTS_COUNT * 4] = [
1, 8, 36, 19, 9, 25, 1, 1, 8, 36, 19, 9, 27, 1, 7, 15, 25, 37, 1, 1, 21, 15, 1, 47, 1, 7, 15, 25, 37, 1, 1, 21, 15, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 7, 15, 25, 37, 17, 9, 29, 31, 25, 19, 1, 7, 15, 25, 37, 17, 9, 29, 31, 25,
9, 8, 36, 19, 17, 33, 1, 9, 8, 36, 19, 17, 35, 1, 7, 15, 25, 37, 33, 17, 37, 47, 49, 43, 1, 7, 15, 25, 37, 33, 17, 37, 47, 49,
0, 1, 2, 0, 2, 0, 0, 0, 1, 2, 0, 2, 2, 0, 0, 2, 0, 0, 0, 0, 2, 2, 0, 1, 0, 0, 2, 0, 0, 0, 0, 2, 2, 0
];
pub const M_PDF417_SIDE: [u16; 52] = [
0x322, 0x3A2, 0x3B2, 0x332, 0x372, 0x37A, 0x33A, 0x3BA, 0x39A, 0x3DA,
0x3CA, 0x38A, 0x30A, 0x31A, 0x312, 0x392, 0x3D2, 0x3D6, 0x3D4, 0x394,
0x3B4, 0x3A4, 0x3A6, 0x3AE, 0x3AC, 0x3A8, 0x328, 0x32C, 0x32E, 0x326,
0x336, 0x3B6, 0x396, 0x316, 0x314, 0x334, 0x374, 0x364, 0x366, 0x36E,
0x36C, 0x368, 0x348, 0x358, 0x35C, 0x35E, 0x34E, 0x34C, 0x344, 0x346,
0x342, 0x362
];
pub const M_PDF417_CENTER: [u16; 52] = [
0x2CE, 0x24E, 0x26E, 0x22E, 0x226, 0x236, 0x216, 0x212, 0x21A, 0x23A,
0x232, 0x222, 0x262, 0x272, 0x27A, 0x2FA, 0x2F2, 0x2F6, 0x276, 0x274,
0x264, 0x266, 0x246, 0x242, 0x2C2, 0x2E2, 0x2E6, 0x2E4, 0x2EC, 0x26C,
0x22C, 0x228, 0x268, 0x2E8, 0x2C8, 0x2CC, 0x2C4, 0x2C6, 0x286, 0x28E,
0x28C, 0x29C, 0x298, 0x2B8, 0x2B0, 0x290, 0x2D0, 0x250, 0x258, 0x25C,
0x2DC, 0x2DE
];
pub const fn get_variant(rows: u8, cols: u8) -> Option<u8> {
let mut start = 0;
while start < M_PDF417_VARIANTS_COUNT && M_PDF417_VARIANTS[start] != cols as u16 {
start += 1;
}
if start == M_PDF417_VARIANTS_COUNT {
return None; }
let mut end = start;
while end < M_PDF417_VARIANTS_COUNT && M_PDF417_VARIANTS[end] == cols as u16 {
end += 1;
}
while start < end && M_PDF417_VARIANTS[1 * M_PDF417_VARIANTS_COUNT + start] != rows as u16 {
start += 1;
}
if start == end {
return None; }
Some(start as u8)
}
pub const fn find_variant(capacity: usize) -> Option<u8> {
let mut i = 0;
while i < M_PDF417_VARIANTS_COUNT {
if M_PDF417_VARIANTS[0 * M_PDF417_VARIANTS_COUNT + i] as usize
* M_PDF417_VARIANTS[1 * M_PDF417_VARIANTS_COUNT + i] as usize
- M_PDF417_VARIANTS[2 * M_PDF417_VARIANTS_COUNT + i] as usize >= capacity {
break;
}
i += 1;
}
if i == M_PDF417_VARIANTS_COUNT {
None
} else {
Some(i as u8)
}
}
#[inline]
pub const fn variant_dim(variant: u8) -> (u8, u8) {
assert!(variant <= 34, "invalid variant (0-34)");
(
M_PDF417_VARIANTS[0 * M_PDF417_VARIANTS_COUNT + variant as usize] as u8,
M_PDF417_VARIANTS[1 * M_PDF417_VARIANTS_COUNT + variant as usize] as u8
)
}