| /******************************************************************************* |
| * Copyright (c) 2007 University of Illinois at Urbana-Champaign and others. |
| * All rights reserved. This program and the accompanying materials |
| * are made available under the terms of the Eclipse Public License v1.0 |
| * which accompanies this distribution, and is available at |
| * http://www.eclipse.org/legal/epl-v10.html |
| * |
| * Contributors: |
| * UIUC - Initial API and implementation |
| *******************************************************************************/ |
| package org.eclipse.photran.internal.core.parser; |
| |
| import org.eclipse.photran.internal.core.lexer.*; import org.eclipse.photran.internal.core.analysis.binding.ScopingNode; import org.eclipse.photran.internal.core.SyntaxException; import java.io.IOException; |
| |
| import java.util.AbstractList; |
| import java.util.Collection; |
| import java.util.Collections; |
| import java.util.HashMap; |
| import java.util.Iterator; |
| import java.util.LinkedList; |
| import java.util.List; |
| import java.util.Map; |
| import java.util.Set; |
| import java.io.ByteArrayOutputStream; |
| import java.io.PrintStream; |
| |
| |
| import java.util.zip.Inflater; |
| |
| import org.eclipse.photran.internal.core.parser.Parser.Nonterminal; |
| import org.eclipse.photran.internal.core.parser.Parser.Production; |
| |
| |
| @SuppressWarnings("all") |
| final class BodyParsingTables extends ParsingTables |
| { |
| private static BodyParsingTables instance = null; |
| |
| public static BodyParsingTables getInstance() |
| { |
| if (instance == null) |
| instance = new BodyParsingTables(); |
| return instance; |
| } |
| |
| @Override |
| public int getActionCode(int state, org.eclipse.photran.internal.core.lexer.Token lookahead) |
| { |
| return ActionTable.getActionCode(state, lookahead); |
| } |
| |
| @Override |
| public int getActionCode(int state, int lookaheadTokenIndex) |
| { |
| return ActionTable.get(state, lookaheadTokenIndex); |
| } |
| |
| @Override |
| public int getGoTo(int state, Nonterminal nonterminal) |
| { |
| return GoToTable.getGoTo(state, nonterminal); |
| } |
| |
| @Override |
| public int getRecoveryCode(int state, org.eclipse.photran.internal.core.lexer.Token lookahead) |
| { |
| return RecoveryTable.getRecoveryCode(state, lookahead); |
| } |
| |
| /** |
| * The ACTION table. |
| * <p> |
| * The ACTION table maps a state and an input symbol to one of four |
| * actions: shift, reduce, accept, or error. |
| */ |
| protected static final class ActionTable |
| { |
| /** |
| * Returns the action the parser should take if it is in the given state |
| * and has the given symbol as its lookahead. |
| * <p> |
| * The result value should be interpreted as follows: |
| * <ul> |
| * <li> If <code>result & ACTION_MASK == SHIFT_ACTION</code>, |
| * shift the terminal and go to state number |
| * <code>result & VALUE_MASK</code>. |
| * <li> If <code>result & ACTION_MASK == REDUCE_ACTION</code>, |
| * reduce by production number <code>result & VALUE_MASK</code>. |
| * <li> If <code>result & ACTION_MASK == ACCEPT_ACTION</code>, |
| * parsing has completed successfully. |
| * <li> Otherwise, a syntax error has been found. |
| * </ul> |
| * |
| * @return a code for the action to take (see above) |
| */ |
| protected static int getActionCode(int state, org.eclipse.photran.internal.core.lexer.Token lookahead) |
| { |
| assert 0 <= state && state < Parser.NUM_STATES; |
| assert lookahead != null; |
| |
| Integer index = Parser.terminalIndices.get(lookahead.getTerminal()); |
| if (index == null) |
| return 0; |
| else |
| return get(state, index); |
| } |
| |
| protected static final int[] rowmap = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 13, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 0, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 0, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 93, 117, 0, 118, 119, 120, 121, 122, 123, 124, 125, 126, 13, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 0, 139, 140, 86, 30, 1, 47, 105, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 136, 161, 162, 163, 164, 165, 166, 167, 17, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 1, 2, 0, 3, 13, 4, 106, 47, 155, 156, 157, 158, 5, 13, 6, 159, 178, 26, 179, 7, 8, 180, 160, 161, 0, 162, 181, 163, 182, 168, 9, 10, 97, 183, 184, 185, 11, 169, 186, 47, 12, 171, 13, 172, 187, 188, 189, 190, 191, 192, 47, 47, 14, 193, 194, 15, 0, 16, 195, 196, 197, 198, 199, 200, 17, 201, 18, 19, 202, 203, 0, 20, 21, 204, 1, 205, 206, 74, 2, 22, 207, 208, 209, 210, 211, 23, 24, 25, 26, 212, 213, 178, 180, 214, 215, 216, 217, 27, 74, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 74, 228, 28, 229, 230, 231, 232, 233, 234, 235, 236, 237, 86, 105, 238, 29, 239, 240, 30, 241, 3, 242, 243, 244, 31, 245, 0, 1, 2, 246, 247, 248, 47, 32, 249, 250, 86, 251, 182, 179, 187, 252, 181, 4, 5, 96, 6, 253, 33, 34, 254, 149, 13, 186, 188, 189, 190, 191, 255, 192, 193, 256, 105, 257, 194, 258, 259, 260, 196, 105, 261, 262, 106, 107, 108, 112, 263, 115, 120, 122, 264, 183, 197, 265, 266, 267, 200, 201, 268, 269, 106, 270, 271, 272, 273, 7, 274, 8, 275, 9, 276, 10, 277, 11, 0, 35, 36, 37, 1, 12, 0, 13, 14, 15, 16, 17, 2, 13, 3, 18, 19, 20, 278, 4, 279, 280, 281, 21, 38, 23, 39, 24, 177, 40, 41, 27, 282, 283, 284, 285, 286, 287, 288, 28, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 1, 29, 30, 318, 0, 319, 320, 31, 32, 33, 34, 42, 321, 36, 38, 322, 323, 324, 325, 43, 44, 45, 46, 326, 39, 40, 41, 5, 47, 48, 327, 49, 50, 51, 52, 53, 54, 7, 328, 329, 55, 330, 0, 56, 331, 57, 58, 59, 60, 61, 332, 62, 63, 333, 64, 65, 66, 67, 334, 68, 69, 70, 335, 71, 336, 72, 73, 74, 75, 8, 337, 338, 339, 340, 76, 9, 341, 342, 343, 344, 345, 346, 347, 348, 77, 78, 10, 79, 80, 81, 349, 82, 11, 83, 84, 85, 350, 351, 87, 88, 89, 0, 352, 90, 91, 12, 92, 93, 94, 47, 13, 353, 13, 354, 95, 96, 355, 14, 98, 99, 100, 15, 101, 102, 356, 357, 358, 359, 103, 104, 105, 21, 107, 16, 108, 360, 17, 109, 110, 361, 17, 362, 363, 364, 111, 3, 365, 4, 48, 112, 5, 366, 113, 367, 368, 6, 114, 369, 370, 371, 115, 18, 372, 373, 49, 374, 375, 116, 117, 50, 0, 118, 119, 120, 121, 122, 376, 123, 19, 51, 52, 377, 378, 379, 124, 20, 380, 381, 125, 126, 127, 382, 128, 53, 129, 98, 130, 383, 384, 385, 386, 387, 1, 388, 389, 390, 391, 392, 393, 155, 131, 132, 133, 134, 22, 13, 135, 394, 395, 396, 397, 398, 399, 136, 54, 400, 401, 137, 402, 403, 404, 138, 405, 406, 407, 408, 139, 409, 2, 410, 411, 106, 140, 412, 413, 414, 415, 416, 417, 418, 141, 419, 420, 421, 142, 143, 422, 423, 424, 156, 144, 425, 426, 427, 428, 198, 203, 429, 204, 30, 145, 146, 147, 148, 23, 430, 149, 431, 17, 199, 24, 432, 150, 433, 206, 434, 207, 435, 436, 151, 437, 209, 438, 439, 0, 152, 55, 56, 124, 440, 126, 441, 153, 154, 442, 443, 17, 212, 444, 155, 445, 7, 22, 57, 25, 27, 446, 28, 447, 448, 449, 35, 153, 450, 37, 217, 66, 0, 3, 451, 452, 1, 2, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 25, 27, 28, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 159, 481, 482, 483, 484, 485, 486, 487, 488, 489, 43, 490, 44, 491, 492, 493, 45, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 7, 509, 222, 3, 510, 227, 511, 512, 513, 514, 515, 516, 46, 517, 518, 519, 520, 521, 522, 523, 55, 56, 66, 68, 524, 525, 526, 527, 528, 69, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 70, 569, 166, 570, 571, 572, 71, 208, 573, 574, 575, 216, 576, 84, 577, 85, 86, 578, 579, 156, 160, 580, 581, 161, 162, 582, 163, 583, 584, 87, 90, 97, 106, 58, 585, 109, 110, 586, 587, 4, 588, 157, 589, 590, 164, 591, 592, 593, 594, 595, 596, 597, 5, 598, 599, 600, 601, 602, 6, 603, 8, 9, 10, 11, 12, 13, 604, 605, 606, 607, 608, 111, 609, 116, 610, 117, 228, 125, 611, 165, 612, 166, 613, 614, 126, 615, 616, 617, 618, 14, 30, 619, 620, 621, 167, 622, 623, 169, 624, 625, 626, 627, 628, 629, 235, 630, 127, 631, 632, 633, 634, 635, 636, 637, 638, 639, 128, 640, 641, 642, 643, 129, 644, 645, 135, 646, 647, 648, 8, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 170, 171, 660, 172, 661, 127, 662, 173, 16, 663, 664, 665, 666, 667, 668, 669, 670, 136, 137, 671, 672, 673, 138, 674, 139, 140, 141, 142, 675, 174, 143, 59, 4, 144, 149, 676, 677, 9, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 150, 17, 151, 152, 689, 153, 154, 175, 1, 159, 60, 164, 167, 168, 170, 172, 61, 174, 176, 177, 178, 179, 181, 183, 184, 690, 691, 188, 692, 693, 0, 694, 47, 31, 695, 696, 697, 155, 158, 169, 185, 192, 195, 62, 202, 63, 237, 698, 18, 699, 171, 190, 193, 194, 196, 197, 203, 700, 701, 702, 204, 703, 704, 206, 207, 209, 210, 211, 64, 705, 706, 707, 708, 709, 710, 711, 212, 10, 213, 19, 20, 712, 713, 176, 177, 714, 179, 715, 716, 717, 718, 719, 33, 214, 65, 720, 721, 722, 723, 215, 217, 5, 724, 725, 726, 727, 728, 729, 238, 730, 218, 219, 68, 731, 240, 732, 733, 734, 735, 220, 7, 221, 222, 223, 224, 736, 737, 738, 225, 226, 227, 739, 228, 69, 180, 229, 230, 231, 232, 740, 233, 234, 235, 741, 236, 237, 238, 742, 8, 239, 240, 241, 181, 182, 70, 183, 184, 743, 71, 128, 74, 75, 76, 77, 744, 745, 245, 746, 186, 747, 242, 243, 244, 748, 749, 189, 193, 750, 751, 752, 194, 753, 754, 21, 755, 23, 195, 756, 196, 757, 758, 759, 760, 78, 245, 246, 761, 79, 30, 24, 80, 81, 30, 31, 82, 83, 32, 34, 762, 247, 248, 249, 763, 764, 197, 765, 250, 766, 198, 767, 74, 199, 768, 84, 251, 252, 34, 35, 254, 255, 2, 256, 36, 257, 769, 258, 770, 771, 772, 1, 773, 248, 774, 259, 36, 775, 93, 37, 260, 261, 38, 250, 96, 200, 776, 39, 777, 201, 778, 779, 202, 253, 254, 780, 781, 782, 783, 262, 263, 264, 203, 784, 785, 206, 257, 261, 786, 207, 787, 788, 208, 789, 790, 211, 85, 265, 266, 267, 38, 268, 269, 0, 212, 270, 271, 791, 792, 793, 272, 273, 274, 276, 277, 278, 279, 40, 0, 286, 290, 1, 287, 292, 2, 293, 299, 39, 306, 308, 310, 41, 312, 86, 2, 42, 313, 318, 321, 322, 324, 325, 326, 40, 327, 329, 331, 332, 333, 334, 335, 336, 338, 339, 340, 341, 342, 343, 344, 345, 346, 349, 350, 1, 213, 351, 352, 354, 355, 357, 358, 359, 360, 361, 362, 363, 364, 366, 369, 41, 48, 53, 54, 55, 56, 68, 69, 72, 73, 74, 75, 76, 77, 794, 795, 43, 78, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 330, 370, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 371, 372, 821, 373, 374, 214, 353, 376, 377, 378, 379, 381, 382, 383, 384, 385, 386, 2, 822, 387, 388, 389, 390, 391, 393, 823, 394, 824, 825, 392, 396, 826, 827, 395, 399, 828, 400, 397, 829, 215, 0, 830, 398, 401, 831, 832, 402, 833, 86, 834, 835, 836, 218, 219, 404, 403, 220, 405, 260, 406, 407, 837, 838, 408, 409, 410, 411, 412, 413, 221, 839, 414, 415, 416, 417, 418, 419, 420, 105, 421, 422, 44, 424, 840, 841, 88, 425, 427, 431, 3, 222, 423, 426, 432, 429, 4, 434, 842, 435, 436, 223, 224, 437, 438, 439, 430, 440, 843, 441, 844, 442, 443, 444, 445, 446, 447, 448, 449, 845, 225, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 846, 226, 847, 848, 45, 464, 89, 465, 466, 91, 467, 468, 469, 470, 849, 850, 851, 471, 852, 472, 473, 474, 475, 853, 476, 854, 229, 855, 477, 478, 479, 856, 857, 858, 859, 230, 480, 481, 482, 483, 484, 3, 92, 93, 485, 860, 486, 861, 862, 863, 1, 4, 487, 488, 94, 87, 489, 490, 491, 88, 492, 864, 493, 494, 495, 496, 497, 498, 499, 89, 500, 502, 262, 501, 503, 263, 504, 505, 865, 506, 507, 5, 866, 867, 106, 46, 868, 869, 508, 509, 510, 870, 231, 871, 872, 232, 512, 873, 233, 3, 874, 875, 234, 513, 515, 876, 877, 518, 520, 878, 879, 522, 880, 881, 882, 517, 519, 11, 883, 884, 885, 886, 521, 887, 95, 528, 523, 527, 888, 525, 526, 96, 98, 100, 889, 235, 890, 529, 535, 264, 891, 536, 90, 892, 893, 894, 895, 236, 239, 241, 91, 242, 896, 897, 898, 548, 899, 4, 900, 901, 902, 903, 904, 92, 905, 101, 906, 907, 908, 549, 909, 5, 910, 911, 546, 912, 913, 93, 7, 914, 915, 916, 103, 917, 918, 919, 920, 243, 921, 94, 95, 922, 244, 923, 246, 924, 559, 530, 531, 925, 926, 927, 928, 561, 929, 930, 104, 931, 0, 932, 933, 934, 105, 96, 100, 101, 107, 108, 114, 935, 115, 118, 119, 120, 936, 937, 103, 938, 939, 940, 107, 47, 941, 48, 5, 532, 562, 49, 121, 545, 553, 107, 533, 534, 108, 537, 50, 942, 943, 271, 944, 563, 538, 539, 540, 541, 542, 543, 274, 945, 122, 946, 947, 275, 247, 277, 555, 564, 565, 253, 269, 566, 948, 317, 949, 249, 950, 319, 251, 320, 951, 567, 952, 568, 569, 953, 570, 954, 571, 572, 573, 574, 575, 576, 577, 955, 252, 956, 255, 256, 957, 958, 959, 51, 544, 960, 961, 962, 963, 0, 964, 965, 966, 967, 968, 969, 578, 970, 547, 551, 552, 556, 971, 972, 973, 123, 974, 975, 557, 976, 977, 978, 979, 980, 981, 982, 983, 984, 579, 580, 581, 985, 560, 986, 583, 987, 582, 585, 988, 989, 990, 588, 584, 6, 7, 589, 587, 591, 592, 991, 259, 992, 993, 994, 265, 593, 995, 267, 996, 266, 997, 998, 594, 590, 999, 1000, 1001, 108, 595, 596, 597, 598, 599, 600, 2, 1002, 1003, 1004, 109, 52, 601, 602, 604, 605, 53, 606, 1005, 607, 610, 1006, 612, 1007, 1008, 54, 608, 1009, 268, 609, 1010, 1011, 611, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 270, 613, 1021, 1022, 1023, 1024, 615, 616, 1025, 1026, 617, 618, 124, 619, 620, 1027, 1028, 1029, 621, 622, 1030, 0, 1031, 1032, 1033, 8, 125, 130, 614, 623, 1034, 1035, 624, 131, 1036, 625, 1037, 626, 132, 1038, 1, 1039, 1040, 627, 628, 629, 1041, 630, 271, 1042, 1043, 631, 632, 633, 1044, 133, 134, 1045, 276, 321, 1046, 634, 1047, 639, 1048, 635, 1049, 1050, 644, 636, 637, 1051, 1052, 1053, 645, 638, 111, 9, 640, 641, 12, 1054, 642, 10, 1055, 1056, 1057, 1058, 277, 1059, 643, 145, 1060, 278, 1061, 280, 646, 1062, 647, 1063, 281, 648, 286, 287, 1064, 290, 146, 147, 148, 649, 55, 650, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 651, 1072, 652, 1073, 653, 293, 654, 292, 655, 1074, 656, 113, 1075, 1076, 11, 657, 658, 659, 660, 661, 1077, 1078, 662, 1079, 663, 664, 323, 665, 114, 1080, 1081, 12, 1082, 666, 667, 299, 1083, 324, 1084, 668, 1085, 1086, 153, 1087, 154, 1088, 156, 280, 669, 671, 1, 1089, 325, 1090, 1091, 115, 1092, 116, 1093, 326, 1094, 327, 1095, 157, 674, 1096, 9, 1097, 676, 677, 1098, 678, 1099, 159, 322, 679, 680, 681, 688, 691, 692, 110, 56, 3, 4, 682, 683, 1100, 111, 57, 328, 1101, 329, 327, 1102, 330, 117, 1103, 118, 1104, 119, 332, 686, 1105, 338, 331, 1106, 160, 1107, 1108, 689, 1109, 1110, 694, 690, 161, 58, 693, 162, 695, 696, 59, 697, 164, 698, 699, 122, 700, 701, 702, 1111, 703, 704, 705, 333, 1112, 707, 1113, 13, 14, 710, 15, 1114, 709, 1115, 711, 1116, 1117, 1118, 712, 16, 713, 17, 1119, 714, 715, 1120, 167, 718, 1121, 1122, 716, 719, 1123, 717, 335, 720, 721, 267, 722, 723, 1124, 1125, 1126, 724, 725, 726, 727, 2, 112, 60, 123, 728, 729, 730, 1127, 1128, 1129, 1130, 1131, 1132, 731, 732, 1133, 733, 734, 1134, 334, 61, 62, 735, 736, 63, 1135, 281, 124, 125, 0, 126, 127, 737, 336, 1136, 1137, 1138, 168, 738, 740, 742, 1139, 744, 170, 745, 1140, 1141, 746, 1142, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 1143, 1144, 337, 341, 757, 758, 759, 341, 760, 8, 172, 761, 9, 10, 762, 1145, 763, 764, 1146, 765, 1147, 766, 1148, 128, 767, 768, 1149, 173, 129, 1150, 1151, 1152, 339, 1153, 1154, 1155, 1156, 340, 346, 769, 349, 1157, 770, 773, 1158, 129, 1159, 1160, 774, 1161, 18, 350, 131, 1162, 1163, 775, 776, 777, 11, 1164, 1165, 1166, 19, 355, 134, 1167, 778, 779, 1168, 352, 174, 175, 176, 2, 354, 356, 1169, 357, 1170, 1171, 358, 1172, 1173, 135, 1174, 136, 1175, 1176, 771, 772, 780, 781, 782, 783, 784, 1177, 1178, 787, 1179, 788, 1180, 114, 64, 785, 1181, 1182, 1183, 282, 177, 786, 1184, 283, 115, 359, 65, 284, 1185, 789, 132, 1186, 133, 1187, 1188, 1189, 1190, 137, 1191, 790, 791, 360, 1192, 1193, 1194, 1195, 1196, 5, 13, 1197, 1198, 1199, 1200, 794, 1201, 1202, 1203, 801, 1204, 1205, 1206, 1207, 1208, 1209, 806, 819, 1210, 827, 361, 10, 825, 11, 12, 1211, 1212, 826, 828, 829, 20, 21, 178, 831, 1213, 179, 1214, 66, 830, 832, 833, 835, 836, 1215, 837, 838, 1216, 839, 841, 842, 1217, 1218, 1219, 285, 12, 181, 183, 1220, 843, 844, 845, 13, 846, 847, 849, 1221, 342, 1222, 362, 363, 13, 1223, 14, 1224, 1225, 850, 1226, 848, 851, 852, 853, 184, 1227, 364, 67, 856, 1228, 1229, 138, 1230, 854, 15, 1231, 22, 857, 139, 1232, 1233, 1234, 1235, 1236, 366, 859, 16, 1237, 140, 369, 1238, 1239, 1240, 1241, 1242, 372, 861, 1243, 370, 1244, 371, 373, 1245, 1246, 374, 1247, 1248, 1249, 141, 142, 343, 1250, 1251, 344, 858, 14, 862, 185, 864, 1252, 68, 7, 8, 863, 865, 867, 868, 376, 869, 288, 1253, 1254, 377, 1255, 1256, 187, 188, 191, 1257, 1258, 192, 69, 871, 872, 1259, 0, 195, 873, 874, 1260, 1261, 875, 876, 1262, 1263, 1264, 1265, 879, 882, 883, 1266, 1267, 1268, 1269, 15, 884, 1270, 1271, 886, 878, 880, 1272, 1273, 1274, 887, 888, 889, 1275, 289, 200, 201, 890, 1276, 1277, 892, 894, 895, 897, 1278, 899, 1279, 893, 345, 1280, 1281, 903, 1282, 910, 1283, 1284, 1285, 378, 131, 1286, 1287, 1288, 23, 379, 1289, 1290, 1291, 1292, 380, 381, 900, 382, 1293, 1294, 914, 1295, 1296, 1297, 1298, 384, 386, 901, 385, 1299, 1300, 202, 134, 1301, 1302, 904, 902, 905, 906, 907, 909, 911, 1303, 1304, 1305, 1306, 291, 294, 295, 1307, 70, 387, 388, 296, 205, 206, 389, 390, 391, 207, 1308, 1309, 1310, 143, 912, 1311, 1312, 1313, 1314, 1315, 913, 1316, 1317, 916, 16, 917, 918, 919, 921, 1318, 915, 925, 1319, 922, 393, 1320, 1321, 1322, 923, 924, 926, 394, 927, 929, 930, 931, 932, 405, 1323, 1324, 409, 410, 933, 403, 1325, 1326, 144, 1327, 934, 411, 935, 404, 1328, 1329, 147, 1330, 406, 937, 1331, 346, 938, 939, 940, 941, 428, 1332, 297, 298, 1333, 433, 30, 1334, 149, 150, 1335, 1336, 437, 942, 1337, 1, 1, 936, 943, 944, 1338, 945, 946, 947, 1339, 1340, 1341, 948, 949, 1342, 950, 951, 952, 347, 1343, 953, 1344, 1345, 438, 1346, 1347, 151, 1348, 1349, 24, 1350, 152, 1351, 1352, 25, 135, 954, 348, 300, 301, 302, 441, 442, 1353, 155, 156, 158, 1354, 1355, 1356, 1357, 209, 159, 1358, 955, 1359, 956, 1360, 1361, 1362, 957, 960, 961, 962, 963, 964, 958, 210, 965, 1363, 1364, 27, 446, 1365, 1366, 28, 447, 1367, 959, 303, 1368, 304, 1369, 1370, 1371, 211, 214, 966, 15, 227, 251, 1372, 252, 1373, 967, 1374, 968, 970, 969, 448, 1375, 1376, 449, 450, 1377, 1378, 451, 452, 253, 254, 255, 453, 454, 256, 972, 974, 975, 257, 258, 1379, 455, 1380, 1381, 457, 1382, 305, 456, 458, 459, 1383, 1384, 977, 978, 980, 1385, 1386, 1387, 1388, 1389 }; |
| protected static final int[] columnmap = { 0, 1, 2, 2, 3, 4, 2, 5, 0, 6, 2, 7, 8, 9, 5, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 1, 20, 2, 21, 7, 22, 23, 24, 5, 5, 2, 25, 0, 26, 27, 28, 29, 7, 18, 6, 30, 31, 0, 32, 16, 0, 33, 23, 34, 0, 3, 12, 19, 35, 28, 36, 37, 38, 39, 40, 41, 0, 42, 43, 36, 44, 45, 39, 40, 1, 46, 47, 10, 48, 41, 49, 50, 45, 46, 35, 51, 51, 52, 53, 5, 54, 55, 0, 56, 57, 58, 3, 59, 3, 60, 61, 62, 16, 42, 62, 63, 64, 63, 65, 66, 67, 68, 69, 70, 64, 71, 65, 66, 45, 72, 67, 73, 74, 0, 75, 0, 76, 73, 77, 78, 79, 80, 80, 4, 81, 0, 82, 83, 2, 84, 1, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 19, 81, 86, 96, 97, 98, 5, 90, 99, 100, 96, 101, 97, 5, 40, 2, 16, 0, 102, 40, 103, 100, 1, 104, 63, 6, 103, 105, 106, 107, 108, 0, 5, 109, 110, 111, 106, 112, 113, 114, 12, 115, 6, 116, 6, 117, 118, 119, 120, 121, 122, 123, 124, 0, 125, 1, 126, 45, 127, 128, 129, 130, 0, 129, 131, 0, 132, 133, 113, 134, 135, 136, 116, 2, 137, 62, 138, 139, 140, 141, 2, 142, 3, 143, 119, 0, 62, 120, 144, 145, 124, 7, 3, 146, 28, 0, 147 }; |
| |
| public static int get(int row, int col) |
| { |
| if (isErrorEntry(row, col)) |
| return 0; |
| else if (columnmap[col] % 2 == 0) |
| return lookupValue(rowmap[row], columnmap[col]/2) >>> 16; |
| else |
| return lookupValue(rowmap[row], columnmap[col]/2) & 0xFFFF; |
| } |
| |
| protected static boolean isErrorEntry(int row, int col) |
| { |
| final int INT_BITS = 32; |
| int sigmapRow = row; |
| |
| int sigmapCol = col / INT_BITS; |
| int bitNumberFromLeft = col % INT_BITS; |
| int sigmapMask = 0x1 << (INT_BITS - bitNumberFromLeft - 1); |
| |
| return (lookupSigmap(sigmapRow, sigmapCol) & sigmapMask) == 0; |
| } |
| |
| protected static int[][] sigmap = null; |
| |
| protected static void sigmapInit() |
| { |
| try |
| { |
| final int rows = 1218; |
| final int cols = 8; |
| final int compressedBytes = 2978; |
| final int uncompressedBytes = 38977; |
| |
| byte[] decoded = new byte[compressedBytes]; |
| base64Decode(decoded, |
| "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" + |
| "ntJX+cPP8gPT/5f1IiauM="); |
| |
| byte[] buffer = new byte[uncompressedBytes]; |
| Inflater inflater = new Inflater(); |
| inflater.setInput(decoded, 0, compressedBytes); |
| inflater.inflate(buffer); |
| inflater.end(); |
| |
| sigmap = new int[rows][cols]; |
| for (int index = 0; index < uncompressedBytes-1; index += 4) |
| { |
| int byte1 = 0x000000FF & (int)buffer[index + 0]; |
| int byte2 = 0x000000FF & (int)buffer[index + 1]; |
| int byte3 = 0x000000FF & (int)buffer[index + 2]; |
| int byte4 = 0x000000FF & (int)buffer[index + 3]; |
| |
| int element = index / 4; |
| int row = element / cols; |
| int col = element % cols; |
| sigmap[row][col] = byte1 << 24 | byte2 << 16 | byte3 << 8 | byte4; |
| } |
| } |
| catch (Exception e) |
| { |
| throw new Error(e); |
| } |
| } |
| |
| protected static int[][] sigmap1 = null; |
| |
| protected static void sigmap1Init() |
| { |
| try |
| { |
| final int rows = 1218; |
| final int cols = 8; |
| final int compressedBytes = 2866; |
| final int uncompressedBytes = 38977; |
| |
| byte[] decoded = new byte[compressedBytes]; |
| base64Decode(decoded, |
| "eNrtXb2rHccVnxmP5PHlBa3NlXCXecaCi3DhwkXKffAItkhAhQ" + |
| "s3gReIQE3K9CsRguI0snmkCoSkyB+QQvUVBFcqLJxeQn9Jdvd+" + |
| "7u7M/M7Mmbn3ErSFnqTz5nvmfPzmnDPCiFooKSqhRffpWtzsfs" + |
| "6Eaf9Uov8R+F7++vt7f/n6+tOZWj7/Rr669+b2a/3s/KM/XF7N" + |
| "n996oBt/SRuoVftJdWT7oP8Cjz9M334S9B/RB7+QbXwvf9aW/+" + |
| "/1Z/e78uev7r29/Xq+Lv/vrnxpOlpcenn2/Lr3T9b+/wTmZ0on" + |
| "7E+1a1Nt2q9y7a9dtdz5TaQz+Y+//FP3+Wwc/VMuuoc/Nb7+31" + |
| "i1v+za1237C2L7ZvND7u9Ptc8nVXAGunKqEu+N5ndBXZ91eekr" + |
| "H64f80de/evPW348//Vk/lH9gG6G9HpFV6P2xWT8EeePdb5A/+" + |
| "D+sSLqq2PLA/rMOvirFg25/c2ZIv5uHTs+Jp3L34R4ElSOYHnL" + |
| "0g9I+9MpP2wW/r88+/4TtbzW7Xm68419MXsjv503Vn142bGEqu" + |
| "ufLTr+vv36+qxvX/Tt60H7kP/x2ietjwqwl4H+sJ78JkY9iOn/" + |
| "Wr/5x6p/P39AWB/UPzC/sH14PsxwAibyl8ef/7PaP+79u1o/OS" + |
| "hfU5lwRRUvqH5i+0B8nWj7aecnn3673F9/B/+A9kHK+Yvg33h+" + |
| "2PLDNHp7oPYr+4TEX2LxBdL50QT8ganXsOrH7SvW+CL6Z8SFm/" + |
| "8uAvJN+/WTeqK/JOIvCzALDUk/mreVPN0dESn07bahxvYWR03R" + |
| "r6j4lUze303SBrSBX9OgGk0Yox0ObiuOpB7v02ZUYr277OB/DR" + |
| "LPsZ8lzm9p/cyCnSJvms0cdSbczfnZqvOVeHyB6cJA/Sq4/86+" + |
| "ErM/63ZF1LIRsrJi/htdnVe/E1fzf96q93CJKP1QF6bH4KM8Pl" + |
| "58fbjylWl/8O1TND7jlM90/dqIqX6oo/XzarJ/TTZ8s5+BxgHJ" + |
| "imUEvuKrv0b2c1A+ayOFMd3+lJv92f5Lt536fLV/Ab38+S6ML+" + |
| "eRbxhrCtVPwkeI9Tep81O6fump/1D7J1X/IdoP0XqIPdD4j32+" + |
| "UuzznO3XRxjfO/rJ0G2/A37ULz5v//LZsj2mv13ohfrwWyFtFv" + |
| "mbin+/W5/T5T/v6CdDB3L17se/l2Ym1Hedcvr3Vo//4QtTm/aA" + |
| "i1+Yx1/ZABhmSe3f/fjhsP4/reoX6/qPTUf2GSqvzV3R0sXjbv" + |
| "zvt0Va+lq/Nyv9/3xEnw/osH/J+i/N/qTPnyy1Pv38+OrX5iGY" + |
| "3/D8l+7/dH3j2s9yPhn8nVv/efUr2W6jzj9Cir+15Wsr2vJGiY" + |
| "VZYTMp+ExO/QDpr1z99tjlsf62shurWtWma6xR3fJ07arlHn6m" + |
| "B/jP/834zRVvfGh+FuuCzXw1v7X442B+ufalEY72I/BLKD+o7f" + |
| "u+Rzz80CDVJhL/nJIvaPdbifhosv9k7P1eAFMJ+Kcg/JGAf4Nv" + |
| "EUevKf2POf+o/Uj8zkuMlX+ml3/8+T22/VcCP6Ocj737FVUSv7" + |
| "sC478qPD9bSLfpf7kaA9jE+k0h/Nb4jogF/I9mH7bz6/FfNpno" + |
| "m6/U/RGiX3n8n2Pvx3z9B+PH8tvj32wY/CFGfp82/+L67/L9f+" + |
| "sTpzP7v+hwZPGgar7o/v+Z+FJ8alvxWc0M8Xxm6P9J24/Hrp9L" + |
| "59oXUH8AdOtFMOPaPaX7OZGNv5Xmj2X8u3bt153/79Uz3S7wnU" + |
| "osZ2/kk65Q5/8r/PELB7wfNtvIJf9x6fen9OpXuqdvy6/+0nLN" + |
| "2tLOx6r8jb3yeq88aJ9J7/3H3OubK36YqX8ceX/E+k80FP4SSQ" + |
| "/IP+y/BPQfHF8dxmdI+I1jE1SSOH9r+TCIDx2tj4rFpwnqimMF" + |
| "AvVz6entE+NPt0XqIv0/Nj00f8PxT8sj+rDlNX83hfqfWH+C/Z" + |
| "+J/23I/vsLx/7Uu/0J8HkzYAnVfncsaVxYfh3V/o32P62p8nex" + |
| "k79Z8PtEfJ1/P4D1j330ZX1+BvHf+Es/v9T7YfOeTLsfdvmPD+" + |
| "Yfr3+QP3Lrt8M+10n2owL8J3J9ovYPha78/NUC5SMDfqUo+iFX" + |
| "f5UZ7f/I9gPj297fmJY5bu9vxPb+Bup3fPwiIb6E4Z8uKPGBOi" + |
| "L/EsivAu03m9C/0vafAPq/oI+fvP6e/DaAP5L4fyj/Dtx/hrd/" + |
| "sfwI5hci5B8A8hnkH6DklwnnfwiXJ9ID+XXC8S389Utc33H+H5" + |
| "Q/KDX+GOWPyDW+G8720+L/xVD+Xvb4x19H+McO/7y81g58hIaP" + |
| "ztzyocmFn9PwgwT7IVP85In7FxDwL6L+G7N/R/I7gO+h/D9c/Z" + |
| "FUPjREMH6CfGDm54nkP356RP6bjPgujI8u3D6zf5j/hucf3j9x" + |
| "zyfMvwLxo4u0/Bs2Bt/eyzOQim+j9kvff/rkD48/q+GU2T2qpZ" + |
| "pQGB/cOXUNp0lS5K8Su/wfcpz/I01+c/PjnBQ90/yk2feIv8D8" + |
| "Fcz8GKXx42H/KgeXcdKz4T9o/Oz8M6B86fU7iH8Zw7/61Pt3bD" + |
| "r0/2buz9L4Vvr9/NZ+v6Dlb/f1i20/kedPO0BtUv47xcEXLFn+" + |
| "64T1Sddfafgu2T/LAP2rEB3GL0L8dBvfKffjM734aTb8bDj/ci" + |
| "BZU8Z3IxJfHeHH/vqDX/r8u/LLct4/KMPfuf6JKH4Pxs9B+/OR" + |
| "s/9R8XcBmyZL/JIa26cR+f+hfYvoefKblfO/CMfHsee/lc86yH" + |
| "+Y8XOx9U/xYVlSf8mnf3rPN+t9m9PMv3ts+t5BZvpXROR/bYQz" + |
| "/o6nvx4/P1tZ+w7Gj2H5FSxPej8g+H5BYfuDGd/Gxqe564viY7" + |
| "b2ned+Kfl+f3C/pVLnn8//qevn7l8ff1IP4k9aRqK38Sdu+i4+" + |
| "hW3fbTWsxPgNEB8C4ze47VPuDzj4FXf/kM8/wk/d+nmfP8gI1R" + |
| "gpexb4y2l8RQhVhfrl07D+QY/vQPp36v2glfB+Kqx/ofiRDoMV" + |
| "ld3RZV/s6Xpm7co/f9Q++X6Wcn+nwvYh6B9R/vvxiXD9QKdA5a" + |
| "f2owYWoIiLX+DK55j7jST791DvV3r5N+t+i3n/heYv3/sPafgF" + |
| "sv+L32+Q30cqg08Q9T/h86/H/qWLoXyP7j/VP4YaYJd0vtL9+2" + |
| "nxA97+s9/XGvk3qT3/piqH/VLEPz3GPi/Rv3z2GdJPS9uP7Pcn" + |
| "i8wfne6+Px3FX8Tk98+Mf8TRPf7ph/aPD+3PZqI/xOkvTST+6W" + |
| "2fun95+tvmi3/fNjL+xY9vc98nRQeM+/4vsbyXzotPiN0/Xv3P" + |
| "y+DA+71c/pqm3xxsfxxifjj2U+n3c4vsv923eb/2/vr9ybfj92" + |
| "uxfYXfnw/HZz6hXQ4w3lcILRHz/S2kv+L6If+llpdp5cP9w+/T" + |
| "cssnmEdJ+IEH/8Pzw8X3kH7qrJ8cfwrmD+IX46+m6KenQ0/zf3" + |
| "eQk+9pkf0I90fww+9jon7ZhHHpaXnjWwn0vmEM/6kgSj/mb2cf" + |
| "eN+n/NetmlAevW8JymP/cR7+y/XfTssfTi9fGn88uP91QxUktk" + |
| "z9TST/SDr/h8zPGHN+AvWbtPbT8KtTyB9Oy+8f8f5OEsCF4gMI" + |
| "9lvYvzfb+OLeh6G/X8NrnzT/ilGeuX98/rd0/RgND+bHGsqXaf" + |
| "6QvO9fTPVrwLPQ+Sa8D8G1X7n2sQD4fji/KRN/sPz8BOz8TeH8" + |
| "ms3uR4L/ZCb5FiXf6fYvN/4oQ/wSlz858T36+wC89wvK+N+N1j" + |
| "36fUKu/8Wufjr+R6y8Bs3W0QY2KI/yV23+KcP2bar9hOksfLY4" + |
| "vjLNf6jj+BeQ//8DuF+iNw=="); |
| |
| byte[] buffer = new byte[uncompressedBytes]; |
| Inflater inflater = new Inflater(); |
| inflater.setInput(decoded, 0, compressedBytes); |
| inflater.inflate(buffer); |
| inflater.end(); |
| |
| sigmap1 = new int[rows][cols]; |
| for (int index = 0; index < uncompressedBytes-1; index += 4) |
| { |
| int byte1 = 0x000000FF & (int)buffer[index + 0]; |
| int byte2 = 0x000000FF & (int)buffer[index + 1]; |
| int byte3 = 0x000000FF & (int)buffer[index + 2]; |
| int byte4 = 0x000000FF & (int)buffer[index + 3]; |
| |
| int element = index / 4; |
| int row = element / cols; |
| int col = element % cols; |
| sigmap1[row][col] = byte1 << 24 | byte2 << 16 | byte3 << 8 | byte4; |
| } |
| } |
| catch (Exception e) |
| { |
| throw new Error(e); |
| } |
| } |
| |
| protected static int[][] sigmap2 = null; |
| |
| protected static void sigmap2Init() |
| { |
| try |
| { |
| final int rows = 644; |
| final int cols = 8; |
| final int compressedBytes = 1603; |
| final int uncompressedBytes = 20609; |
| |
| byte[] decoded = new byte[compressedBytes]; |
| base64Decode(decoded, |
| "eNrdXDuPFEcQrm4a1F4dYmztIWeeRVhanRw4cEA4J10CsiUHDk" + |
| "gsXWBLJITkgwPrDAlGF1qyIPAPcEC8SJYjEmTnIH6Je3bnbqd3" + |
| "Z/qr7pq+PXkC7m5rq/pVXY+vaiBaPpq8x6x/tXRIWlHRfmYqut" + |
| "b8nNB8xWZ9Tqq6zM1T0vbjyXd/OfnlWr5afnzi/i0w//mjQnQN" + |
| "+DHdCOm0G/qbb54fPP3u9PZEL17dV28P3u+/M89mnzw6Op6+uv" + |
| "Gtqd9cd/R/T7+419Bnbw8+7L+btvQ/G3r//gfOtyLGYygst4/e" + |
| "f75Tt/aT9VcUmX1HrMtGd1TF0Q/bOwMd1C/q4Ved9ZsOP5KP6P" + |
| "P2T18+YN88H43X79P1mlz133/bzhLyM+c3aB+Y47cTqDb3r+w5" + |
| "TMO2T4u957f04tRMiG7eL19P3qsn07rUHx81ClY09yOsH2b7qh" + |
| "Tdu4Lun5Tev/71A/ltGTa+6Hzg+THsi+bYFBVxvhHzP1emVn7d" + |
| "Y38DdH9//1nt74vV/n62PJ+w/vbye+dzNv+rnfmb4flTrP1ABh" + |
| "Cdjz370X8/xfoD1gfptiHogq5s2O85yz7j+0Ny/dvl/uP9CdLl" + |
| "8UXf+a2fWfG1cnRdWDf+b864ViVVlqwma33bpdghTASRYV9k/E" + |
| "v/U53u3Wv8D72efFBPjOd/7HJ3TGerDLVeqeDZvzA/tA/A/wr5" + |
| "/1qtv9//Ov1BdBxfcvMLyK9S4gsxHeVfKH+Tyo/l77na9YYww7" + |
| "pYzPzBrm+C2TIDihj2mWOdVDuEE6hMlPtkzT99/O7+lr700vvU" + |
| "UuRT8tbPlqt4928jv9z7iCa/GPd9vahJFSVNvzfFrPiBjqd/3K" + |
| "gwv/j8AX3v7uD8XnLmh/0nd/+S4+NDEJ8NjKpZ+MPKPw7fT8gP" + |
| "zmFWHK3ig2Y+TXxAq/iAlvHBLeb5ps9Pen6ff/pQ2QnpX5v46n" + |
| "c3k7+/spU1c0137OO75Tjxc3D8H/3xf16NT+34jPkFnxHki9ZH" + |
| "9ECIXzwA+E8ZZ1ZrAEbVAD+rIw1ULL6bbL9T8zO2A1Uicrr/Dc" + |
| "pn269B/5o5fsT3YyC/s8z9Ofb5z+Vblvz8/o9Q/CqzrxZufh2V" + |
| "fNQJ+h3In41L350ndGIdvTmCa9OmIuOU5kt6fOjFh+H8xqbmP2" + |
| "h9LT48KD+yPlKF8Llt/YL1BR6+LaBbEVnML6wvnPtve0X1+u+B" + |
| "+kG4GIPrF+z6Argfcvyae+6q1//E4f8Z8GWIf0P9EuKbEL8V4Z" + |
| "sM/DbR/s8B/WStP6i+wVm/1D7YmPoZ/3yhfu58f8P49aKLL9IS" + |
| "X/TxV3F9SYovh/FbXL+U4c9yfBrVb8N0hn+Ojc+8B/cXoPiHFd" + |
| "8w+HPnL0DvkuOEi8pfAD4ftQ9mPHxTGh/K8elx0ufh+Cj4ROdv" + |
| "dax+yvQnJj83Sfsnmx/CvxB+huPnMF06fjp+Nye/vk9p+B3C58" + |
| "D4jPjQx88WZ/0XsfgZwu9i5x+L/wL7mWqfkX1A+Dm8nwCfEuJP" + |
| "LP1EzklL7G8ZzG8RfsPGd9L9sxLhP9L+X1jfDuN/KL4T9/fg+y" + |
| "vih/gKL/7VwfuvWUhpb3/jCPhp3v6obPMbKz8ts/Y/MvJzpJ/h" + |
| "/rDM+4fxr8u9v7n7i8X5u7B/Orv/kMYvmfs/RugfktHF+T8Tn7" + |
| "LJ6xPmp935Fdz8uubXX1D+W5KoPyS2Plxx9p/fvyH1f+nyefGZ" + |
| "2H9A+y3MvzjyBfk31g9kH0H+I96/8P2plv7lmXGSbha0cP7tp2" + |
| "bSjX+hFh8Ob460/5QI1/8E6+O//xXQH1b/ixrCJwF/5vrNJY+v" + |
| "8tdH0fsR//f1p9Sv+P3l7PpLvvg0gX6B8V9UfaEA3y22vKC4vx" + |
| "rQkXzcPy3TP1b8xbq/gahC9H5a2D5AfF0on9EfK4of+fFvWn8i" + |
| "+/0zWf45GF+I69Mofsnsv3fuX4T432WfH8RPgX4y/v+DvPgCzP" + |
| "/D9jm3f4H0zO/3pNm3qPmz9E95nt2Mxi+uTyf1R8XUf6X+V1pf" + |
| "ZPgPVB8MzE/cX7fr+knu8fH+S/HTvP1B2ft7wvsD359L0l/i45" + |
| "NIvvT8xfqD7j/Cny45PnMR42fV7xT9H39+g/4X0nP4j5j4OHd+" + |
| "IJPPjk+Tz1cWv+L4Ni8+JT0f6frg+v8DFnpt9w=="); |
| |
| byte[] buffer = new byte[uncompressedBytes]; |
| Inflater inflater = new Inflater(); |
| inflater.setInput(decoded, 0, compressedBytes); |
| inflater.inflate(buffer); |
| inflater.end(); |
| |
| sigmap2 = new int[rows][cols]; |
| for (int index = 0; index < uncompressedBytes-1; index += 4) |
| { |
| int byte1 = 0x000000FF & (int)buffer[index + 0]; |
| int byte2 = 0x000000FF & (int)buffer[index + 1]; |
| int byte3 = 0x000000FF & (int)buffer[index + 2]; |
| int byte4 = 0x000000FF & (int)buffer[index + 3]; |
| |
| int element = index / 4; |
| int row = element / cols; |
| int col = element % cols; |
| sigmap2[row][col] = byte1 << 24 | byte2 << 16 | byte3 << 8 | byte4; |
| } |
| } |
| catch (Exception e) |
| { |
| throw new Error(e); |
| } |
| } |
| |
| protected static int lookupSigmap(int row, int col) |
| { |
| if (row <= 1217) |
| return sigmap[row][col]; |
| else if (row >= 1218 && row <= 2435) |
| return sigmap1[row-1218][col]; |
| else if (row >= 2436) |
| return sigmap2[row-2436][col]; |
| else |
| throw new IllegalArgumentException("Unexpected location requested in sigmap2 lookup"); |
| } |
| |
| protected static int[][] value = null; |
| |
| protected static void valueInit() |
| { |
| try |
| { |
| final int rows = 65; |
| final int cols = 74; |
| final int compressedBytes = 4665; |
| final int uncompressedBytes = 19241; |
| |
| byte[] decoded = new byte[compressedBytes]; |
| base64Decode(decoded, |
| "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" + |
| "i+rc21HWryyu/B++mR5U"); |
| |
| byte[] buffer = new byte[uncompressedBytes]; |
| Inflater inflater = new Inflater(); |
| inflater.setInput(decoded, 0, compressedBytes); |
| inflater.inflate(buffer); |
| inflater.end(); |
| |
| value = new int[rows][cols]; |
| for (int index = 0; index < uncompressedBytes-1; index += 4) |
| { |
| int byte1 = 0x000000FF & (int)buffer[index + 0]; |
| int byte2 = 0x000000FF & (int)buffer[index + 1]; |
| int byte3 = 0x000000FF & (int)buffer[index + 2]; |
| int byte4 = 0x000000FF & (int)buffer[index + 3]; |
| |
| int element = index / 4; |
| int row = element / cols; |
| int col = element % cols; |
| value[row][col] = byte1 << 24 | byte2 << 16 | byte3 << 8 | byte4; |
| } |
| } |
| catch (Exception e) |
| { |
| throw new Error(e); |
| } |
| } |
| |
| protected static int[][] value1 = null; |
| |
| protected static void value1Init() |
| { |
| try |
| { |
| final int rows = 65; |
| final int cols = 74; |
| final int compressedBytes = 4319; |
| final int uncompressedBytes = 19241; |
| |
| byte[] decoded = new byte[compressedBytes]; |
| base64Decode(decoded, |
| "eNqtW32MVdURf6vyIVWrEjShHwJ/NLE0tlqbJo21532hKCBt0t" + |
| "akgkQbpMbQxoQqsa33vvd239tFodAvS0qhKGj9p4k2bdL0D9ll" + |
| "d/FzEREtRWu1flTRWrCgAktnzty5M+fjPrHp3tw5Z2Z+M/M755" + |
| "173r3vvTXXm+tLJZNJ6uFRnVGdgbr4yMp+10696oyS/SMU9XU2" + |
| "N5YRGufmFExjwI1z/T4fZuAzlUpcdeB3ekw6X6DPNXOhl0nqkd" + |
| "Y8ilJ8utUxoqtRz2WNveV7GamzuRF+Dcb0Hu79cZyFz5Bl7yE/" + |
| "n/DTlQeeidWL6jeaG6GXSerhUZ1VnWVubI6Lj6zsd+3Uq87K1t" + |
| "MsstgaKpsbywiNc3MKpnncjXP9Ph9m4DNtbBF0Nk+H9Zh0vkBf" + |
| "aVZCz0prW0lHqdTqIZsgpBWUqxGerOWVkg/asTCK0bpumBMzzZ" + |
| "lUzEIzZFmO+qUSz9Oqj+tsjPHHZHsDZgB6VlrbAB0wTyeZgdZW" + |
| "9rGV/TGdM5C19/1SqT07xz0tuPb5gvfrhjnxbH+6mIVmyBKuu4" + |
| "g/W085U5inC3Q2ZuOPyfb6TT/0rLS2fjpgnk4mmyCkFZSrET7M" + |
| "VyrV7g2jGK3rhjnxbJeLWWiGLMNqbqV8nr6rszHGH5PtpSaFnp" + |
| "XWltIB83QK2QQhraBcjfBhvlKp79wwitG6bpgTz/ZlxSw0Q5Z9" + |
| "58T8Uknti6kes4xYj8n2lpgl0Msk9UirXIRSfLrVMaKr6ktYy7" + |
| "1PMVJncyP8GoJpTYyz8BmyRO4hU58baWG9qL7YLIZeJqlHWv01" + |
| "lOLTrY4RXVVfzFru3cVInc2N8GsIBrnEWPgMWRLeZ+pzIy2sF9" + |
| "NL3l99nHutya6n92voS/Znd353Nv7cezn7GrN0JOh/ZL33qozP" + |
| "7tIJ/TVmQswVvrV9RbeYZLpvaU3yR/NBf8nblu0Ch8tqNZ9nm7" + |
| "NZsk5a5XNkE4S0EqN1P6vkg5E+wkidzY3wawimPS/OwmfIErmH" + |
| "TH1upIVj8OtjWx/HOSdJrwAd8Jp8imwsBaljWHNfOz8fjPRRju" + |
| "SopOyuY9crmn1lN7nVXH8y3eUD96Uv+vmEn2Rl1hrpchHdrDFr" + |
| "YMastHO3hg7w3kU2QUgrKFcjfJgP5umxMIrRum6Y00YvKGahGb" + |
| "JE7qFfKqn1tEaPWUasx2R78Ae9TFKPtPpBY+x9phG79oe6qm5Y" + |
| "Y297zOR/cJ9pBKFxbk7BwH1mlAX5fT7EPWSa3Wcal2lYL6rfZG" + |
| "6CXiapR1rr8yjFh0f6hvi1naPz6jexxt7yrxgpUc48BV6NSfe7" + |
| "ca7f5wPcL/LzCT+3cqxeVL/SXAm9TFKPtMp5KMWHB8xT7td2js" + |
| "6rX8kae8t3MVKinHkKvBoD8+TEuX6fD3EPmfrcSAvrRfWbzc3Q" + |
| "yyT1SKt8AqX48IB5yv3aztF59ZtZY295AyMlypmnwKsxME9OnO" + |
| "v3+RD3kKnPjbSwXlSfZqZBz0prm0YHrN0vkE0QZlrjm+LXduqp" + |
| "6l4+mKdfM1KinHkKvBrTuNqNc/0+H+B+sZ9P+LmVY2Pw69veOr" + |
| "MOelZa2zo64DWZQTZBmHWwntbpQ/A6Q5gP5umXYRSjdd0wJ56w" + |
| "npy4kIMrkXvol0pqntbpMcuI9Zhs7wZzA/QyST3S6m+iFJ9udY" + |
| "zoXLuZkIWjsd/3SUbqbIpv4NWY9vfiLHyGLGu3+vmEn1vZ3NC8" + |
| "3a8X1TeZTdCz0to20QFr94tmU9+F7GMr+2M6ZwjzwTzNCKMYre" + |
| "uGOW30u8UsNEOWtZUxf3ZfkHPTbKVWOCZsGy/wPWm2Y+Z3yWkl" + |
| "9uzn3s02V8jzXWN7t+en9oGYVXLld94zY89k7Yf8+33NOny+65" + |
| "t5ok93xRh3pGa9Wc+SddJal5BNENIKytUIH+aDHePxMIrRum6Y" + |
| "E8/OwmIW7hiKqrmV9Pj1mGXEeky2t8LAmiBpbSvogFo/IpsgpB" + |
| "WUqxE+zAf7+HthFKN13TAnnp2vFrPQDFki99AvldQ8rdBjlhHr" + |
| "MWHb5Tn40hN/DtZXbvw5uHzEf479MM/Bna9/uOfg1pf/78/BG8" + |
| "wGmDEr7dxtoANqlc2Gxlb2sZX9MZ0zSL7G/ezp+4zgGvcJ3q8b" + |
| "5sSzsa+YhWbIsm92zJ/t4zlTzVZqhWOyvWVmGfQyST3SWlWzzD" + |
| "4HLxO79oe6qr6MtM497O3MZqRZ1tnMVjfCryGYzt1xFuT3+QD3" + |
| "ip8PZTZPy1ymYb2ovtashZ6V1raWDrjGF5q1nQfZx1b2x3TOEO" + |
| "aDkVYE13lA8H7dMCeezeXFLDRDlsg99GfzlHPTbKVWOCZsk8Fk" + |
| "SL8/puclO+GK3wOvyZzk2Q681yd77ee9L8H5Kn7uCzsLvMenM5" + |
| "N37N7wflpKJ9jIyZInPT2d6r7LdqoW/ULyYvL3zlDyj+S1rN4s" + |
| "3gHSk9NTQP+ItX40PSc9N3ko2ZbdfyzP9rRdyVOET56B8zlAzo" + |
| "B2evK6zX44/9y3nk5BVGqfO5LR5DFAPYnz5N8HsJ68nfw7vC9I" + |
| "T7JszkjPNk3ThBmz0s5dkw54TWaTTRDSCsrVCB/mg3m6KoxitK" + |
| "4b5rTRTxSz0AxZIvfQL5XUemrqMcuI9Zhsb6PZCD0rrW0jHfCa" + |
| "XEM2QUjLR3OF1jhDmA9G2tY4wft1/RqE6IwVs9AMWba+FfNLJT" + |
| "VPG/WYZcR6TNji6mr3tztwz9vXbuv30Mol9XHcx+XugL9vEUtz" + |
| "xQd9Pp5fd3fIO25nc3hf4L57B/cFd4f3G+qame4zQO7uPQ1K2p" + |
| "+Kvm8J78wbLys2x/kA/bjWGhPrx/su1DYfE8b4Vu41JlXGfJyg" + |
| "/ax+Tnifv6gbi8YENyfM01gM3XeBrpnNdzCGuI77uNmSbE+GDc" + |
| "w29J5IdiZjyR6zpfKl5FmzBSx77Xy/lLycvAra/uSt5EByECzv" + |
| "JIdAV/u4yV4vs4X38c6dyY7k0eQRm+dvvI9Da/dxtLJM7D6eTs" + |
| "J9PD1N9nHKCdEPJ48DCvbxZDdoTyfPJPuS55LnaT0lr4PtzeQw" + |
| "VJ6Ynorc0ynpmelZ6bRkBDywjwPqyazSX5K/YsZsHb0C/n8mb9" + |
| "A+nvzH2t5N3kuOJsfSHrWPrzarIcpKy2g1HfCaXEM2QUgrKFcj" + |
| "fJiPsvlRjNZ1w5wSHWehGbIMq6GsXCPjyfen1XrMMmI9Jttbap" + |
| "ZCL5PUI621xCztPC8+3eoY0VX1payxt7OakTqbG+HXEAzcP0VZ" + |
| "kN/nA9yv9fOhzO6flrpMw3pRfZFZBL1MUo+0yjfMos4L4tMt9+" + |
| "D9Tumq+iLW2Nv5AyMh6xBb3Qi/hmBgnqIsyO+Ogbm7+VBm87TI" + |
| "ZRrWi+pzzBzoZZJ6pFWuRik+3eoY0VX1OazpbG6sxksenVMwre" + |
| "vjLHyGLMNqKFvXudxIC+tF9VVmFfSstLZVdMAT/nazyj635Ahp" + |
| "BeVqlCHMB+vp4TCK0bpumBNPWE+FLDRDlsg99GfrKeem2UqtcE" + |
| "y2VzZwH8OSeqTVDxl7hyMIU0Yb+1HCdaf0+qG8epliGQ/z9Cwj" + |
| "JYuznspuZtEkD3tctGbIUnhqD/FzK8fqxfT8PiJ7kkovY0t5RH" + |
| "x8v9VqwvPdtsivcfBz3+FWR/Jk10s7v8/c1zklt/YGn7Fu4zj8" + |
| "XU9ncvA7nb7OBMFQFdbq28LPfcsjjfcJ0TlVIloNn5/o9LueOK" + |
| "ecxc9b65LhbJ7y3yik+Ny9x+6ik8rLbfXleD+evBWfp94p6U8g" + |
| "6tb4/S5l0n/NM6Wf3pbYV6L108bMoujk8ebE/O75aTj3ZbG3EL" + |
| "uwWnqWqvB9sjYnaFz6s+SVonmC+6dF4RNGfdR/emjdkd+1j6Lk" + |
| "34nVR/kzQPydmP/cQnnk+YJ/J1a+2/9UlJ5bOAqzcuXeK4Lnln" + |
| "9pjO2P5zxGw+eW1irrG1XPHaPuOPPxj+rnFv07MarH8bVSrdQ5" + |
| "AP3hjv1cAfWSPctP1EpkqQ+XcivM03Atx1HLPZtzuKS86kr4jU" + |
| "aHUZiVa3QO1ko1hSmV+q/WGOzXSsxDrFKTuBOCqnG/PuzN0zDP" + |
| "k8+Y6nG8ucrYV9zw7wOtjmf9qPawFZ+Dqc92jpAMWsurHsX9Sa" + |
| "PdurpyZzL5NZfOBMFoPi6X/Hupi9mC+5Pk6fYcHPqdMS40C3E9" + |
| "gbTrCXWUsHZ/gZL6JPG087SQcdRq3fWqHeNOH62zu5U7B8mvuN" + |
| "ylMZqPy0WqudwZ2XWeAr8zxgVmAX6uAtJ+roI6SuC22SyobKY+" + |
| "STztPC1gHLVad73qm8drBV0/wFGcnX1SjQ+yIA/BaD4ul7zaYm" + |
| "3hPJylYJ4WBPOkxlgdr9JelX2bSzqelfVV+/lTdRx9bIX9aTv1" + |
| "KQ5b7lXWcx62qfW0Hq87Rusoqo5ZuUZnMvklS+teuC/IMYhHVo" + |
| "QXq9RE7oTC6w792Lef+3rfWrOevO0zpnr5GI9Uj0DPSms7QgfU" + |
| "2lA90r+dfWxlf0yvbKAMYT7K5kcxWtf1cxKiubyYhWbIMqzmVp" + |
| "LZ0NkY42Yn3cw38+3+ND/bn0BHCa/hg2Z+/xj1SeJpr7v5jKOW" + |
| "9dbvBUle9X63WdD9OzmKs7uVYX+azwdZmss1RvNxueT3BQ9oi+" + |
| "Tpet0Ffj3GWk+tB/en+g7an1BHCbX+VOvpfxn79R1kwROuux3U" + |
| "R0kt9+xq3cFWb542anQYhVm5Bvsli/2+JcdgH1nVeppTqNW5LP" + |
| "5F7BNTysZ94qeurh35fUGP79HxZp6ZZ+dsXjaHVsez9hUzr/9V" + |
| "9rBV+mzniJhX/mr7BQ3raZ5fV1dmnFjy9eRV8blINW3RmYv/Qr" + |
| "8eY/VY9RhcgVbaa/EYHbCeHiKbIKQVlKsRvpn4+eAd6Lowivxu" + |
| "3TAnngOnFbPQDFnWbo35pZLan441b3drhWPC1kw1U2HGrLRzN5" + |
| "UO2AsN2QQhrcRoXb0SXj647rYwUmdzI/waghk4Pc7CZ8gSuYdM" + |
| "fW6khWPw62Nb3V3dDTNmpZ273XTAetpONkFIKyhXI3yYD+bpnj" + |
| "CK0bpumBPPgTOKWWiGLFtDMb9UUutptx6zjFiPCdv8yXLEfw6u" + |
| "VPKnwBH9fVl9pOj3PuINv78rb4o/B2dVRzAu/v2dfSYf1hiqkv" + |
| "MYiXx/Z7kLU432duuRol/WUT2Or45V4b2fpJ27MTqgVo1sgpBW" + |
| "UK5G+DAfvNe/GUYxWtcNczKXIhaaIUvC+36ppNbTmB6zjFiPCd" + |
| "v8FRoK1tOcfDaHnPU01HU9DcW/D+7v6bqehjBr8ffBAx/TGOKQ" + |
| "8xiKrCfLXZhqtLdqhgrX05COr+6s7oQZs9LO3U46YK3vIJsgpO" + |
| "WjuUJrnCHMB/P0WY0TvF/Xr0GIgUuLWWiGLFujMb9UUutppx6z" + |
| "jFiPCdv8FRoMPqcby2dz0FlPg13X02B8f+pf2XU9DWJc8f40MF" + |
| "9jqErOYzBcT/j/d5qpRnurZrBwPQ3q+Oqu6i6YMSvt3O2iA+bp" + |
| "SbIJQlpBuRrhw3wwT7eHUYzWdcOceA4sKGahGbLs+3bML5XUet" + |
| "qlxywj1mOyvb3Vvfr+nXQ8W7vIU92LPrYiku2MJ5/2sqY+V/mO" + |
| "j9YIfEaQyuwXS2OTxlAV5iFWydi3GPvCVKPjzy06WnOSOcmeb4" + |
| "aD/6N+Cvht9X8bC8i3TvwX6437c+Y/UNb7wohkvNsv4Ru/xe8R" + |
| "FFp9jxD9nf1t/vcItm7kdz38PULE43yP4P9V78vnCe6xGg+Lrn" + |
| "2lUvvy4sjYX+22cJ66R+i8jUc+CFFcrfs8df0firmRcZyf1dya" + |
| "z9Me2FU2i659UbZdvbUfSn/gFongut3zNpcX5j0/VllX+9/nye" + |
| "H2X+c0zSQ="); |
| |
| byte[] buffer = new byte[uncompressedBytes]; |
| Inflater inflater = new Inflater(); |
| inflater.setInput(decoded, 0, compressedBytes); |
| inflater.inflate(buffer); |
| inflater.end(); |
| |
| value1 = new int[rows][cols]; |
| for (int index = 0; index < uncompressedBytes-1; index += 4) |
| { |
| int byte1 = 0x000000FF & (int)buffer[index + 0]; |
| int byte2 = 0x000000FF & (int)buffer[index + 1]; |
| int byte3 = 0x000000FF & (int)buffer[index + 2]; |
| int byte4 = 0x000000FF & (int)buffer[index + 3]; |
| |
| int element = index / 4; |
| int row = element / cols; |
| int col = element % cols; |
| value1[row][col] = byte1 << 24 | byte2 << 16 | byte3 << 8 | byte4; |
| } |
| } |
| catch (Exception e) |
| { |
| throw new Error(e); |
| } |
| } |
| |
| protected static int[][] value2 = null; |
| |
| protected static void value2Init() |
| { |
| try |
| { |
| final int rows = 65; |
| final int cols = 74; |
| final int compressedBytes = 3331; |
| final int uncompressedBytes = 19241; |
| |
| byte[] decoded = new byte[compressedBytes]; |
| base64Decode(decoded, |
| "eNq9W3uMVcUZX63yUORhu1oojSFZkcAa26Rp1aZmz557ErFt0q" + |
| "evprYhhCZUqYHSNm1pZ+5yL+y9pvpHEx41fazFGiNV0C6IFbSg" + |
| "2IcClocPQIWWKKtCBazSsnYeZ+b75nnP2cWezZkzM9/v+77fzJ" + |
| "3H+c45my5Ll7W1pSLlB8/J0uIXlMS9AsosSQuAhlwv8WlJNPbr" + |
| "2hRcXgyzUOxxuvh5nxw8tenDx8ZuE9aoTMv1fqdqkoXM391Qxj" + |
| "Lf4ZM2fqpyvb2odhFoKL9xu42fhKRc3/XMubtHdVVbqQNzS+9M" + |
| "71SpKstS1xolca+AMkvSAqAh13sb4Lhl0Df9ujb52VgTZmG2Ab" + |
| "i7ctxiaD9uM+ZstWF5upzlRCrqlss/9pvMVxL3CiizJC0AGnK9" + |
| "ywBXOw/rm35dm/xsrA2zUOxxyrm7cvCE+mk5bjPmbLZBj7FL5D" + |
| "UbVDW1cXzeQRnLfIdP2mjoeYe4NZaisX1JkRnQ6A3ODaZPJtm1" + |
| "tbGnZd55uFWm5v3bp32dL9anPtT3fdF1JCqt3+ZZn/rAb9xuZH" + |
| "2a6vNcb56WfopwoxfpfvoI7yf6aSS7Ijam6KjFnzOluFRf5Y4n" + |
| "enkRtvTK8HiSHtzxVP9tsX5a/PmifZauTFeqVJVlqXaRkrhXQO" + |
| "FSNl1aADTksuk+LYnGfm2bEtHoD7Mw2xDyZnrS/Tzdx8a0bmq4" + |
| "Y6A2ha0qfWXWpywyTrGs8W4Re9hrz7wYwh1PfibueMqmFp6DHZ" + |
| "UOecVlftamVToW360kqhawKgULWadttfGeZtQJ6MYprGXqYKsK" + |
| "w+wMmnaBjzxtW1mnzZGnnn7qxD0R7hv2N6XCxo1MRd0U+cf66d" + |
| "LKFNFPGgFXQOFSNllaAHvN0QqXTQZcc6SqlWjs17YpEc1RYRaY" + |
| "oUqxN5DIfoK2Shxus+KEtU0NvV5t0fPuCr6O+2XelW5L1hFGY1" + |
| "njVFvJozEY9+yMkw6fxDOeOtqGeKRP6n76jNNPT8Y1sxlhNJY1" + |
| "R5Zl1RxVjLPtzZR4+mnGkPtps+6nq8Iyv2Z2aRhtykr306JinG" + |
| "1vccbDYZVu1f3Uzfc7vyyu6SvXf49avaIsq/h+5/Kqr/ZJyt5n" + |
| "Fos+kqmurPbV4nELL9eu13HLfSiquLYsq9p15e4LFHeTU+3LQ+" + |
| "+XtD/tV6kqy1I2IOsAkfbzOvwHeGxB1UobOW4j4KBWorFf1ybY" + |
| "AbsuBzPFPEGSDUB7oP24zdBi3CZTI9d7Qvf+jc68eyLa40/Eyr" + |
| "1/QPPul6d53jm8ajf4JMOdd91HVNp9JF2v6pKPMn59UpZ7XY9L" + |
| "oGlL5VVZkjUY2duPa02Zn1vPXSGvyhO0QXE3JbKfIO/LlTlQHH" + |
| "yTI4tGjXSUuR5QIyrunjWs/e6+cnGw8kbb296nI31K99PssEzP" + |
| "h4VhqVlOXhtWP60uxtn25kqG3C8D6YBKVVmWajenA3x9AgRcAW" + |
| "WWpAXXHmOOcM3NgLf9ujb52TMvzMJsg+sNJHJ9Am6YLfhy28Sv" + |
| "LMofFLH+oI76B2Wp9p1skPeTlKhakOOyvQfb9hjzw0ozG2xu5S" + |
| "lJrKcNg7YPsNIzz/Rmyskkk4/pDSS8n2q3glXFGiNNLlAmfyLs" + |
| "npVsIfnOQJ4h28k2sptJT5LnRM0LIj1I/km/yK6vkzfJW+QYyx" + |
| "0nb/csJCdpGz1brU96bTqPfjC39xT5K/kLW7v3kpfoF8jL5AB5" + |
| "hdX+g7xq3QMN0g/Qs+hIei7THkPH0QvoheQx8njempPkz+Rphn" + |
| "qW/J3sZNddZA/ZS/aR/bKfyGGWvkH+zXRH0NGsnx6m59DxdAJt" + |
| "JyxyIVvJ31i6I/f0PHlRz8+HySFW8xoZIEfJv1juhEC8Q94l/y" + |
| "Wn6Bn0TNGasfT8rsNdzIdKZU6WavN5CjJ8xTpQhlbLGpXj+d59" + |
| "ComtmRq2D8DUFvhZ2AxVmjxu2wN+2DPHuf585drZauw5+92PdW" + |
| "6ROUbz2tHWPcs5KO/ErZV1BnYMO0fiuaqtjvA9vWtus+c1Zu3u" + |
| "d5V1tbNE/HBui919RfhZoTk/HU19D1h5uvUbFbzf4X5yj9795S" + |
| "Mn1E/by8UtinvLfvpNmT0vGStPczzVP8XOy11cMnYo+2rvQMhz" + |
| "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"); |
| |
| byte[] buffer = new byte[uncompressedBytes]; |
| Inflater inflater = new Inflater(); |
| inflater.setInput(decoded, 0, compressedBytes); |
| inflater.inflate(buffer); |
| inflater.end(); |
| |
| value2 = new int[rows][cols]; |
| for (int index = 0; index < uncompressedBytes-1; index += 4) |
| { |
| int byte1 = 0x000000FF & (int)buffer[index + 0]; |
| int byte2 = 0x000000FF & (int)buffer[index + 1]; |
| int byte3 = 0x000000FF & (int)buffer[index + 2]; |
| int byte4 = 0x000000FF & (int)buffer[index + 3]; |
| |
| int element = index / 4; |
| int row = element / cols; |
| int col = element % cols; |
| value2[row][col] = byte1 << 24 | byte2 << 16 | byte3 << 8 | byte4; |
| } |
| } |
| catch (Exception e) |
| { |
| throw new Error(e); |
| } |
| } |
| |
| protected static int[][] value3 = null; |
| |
| protected static void value3Init() |
| { |
| try |
| { |
| final int rows = 65; |
| final int cols = 74; |
| final int compressedBytes = 3081; |
| final int uncompressedBytes = 19241; |
| |
| byte[] decoded = new byte[compressedBytes]; |
| base64Decode(decoded, |
| "eNq9W11sHFcVXhJaIqqE/ChJSSmN2pS3VgEeCAoqu56dhhdAUB" + |
| "AgoIiiloSG/JTYDyDw7jjy7HodfsVPqJyYtpFQpUpIPFSAREn6" + |
| "UEAB4ZrEUSJECQgKcZsGpYGAcbl3zpw559xz7+w69nZXc+ac83" + |
| "3n7+7MeHd2XanIR/29qKWfrCzho/O2xURTV72h1Vd6y9srjx7x" + |
| "PpDNrxXrdK/EiBPKkbwvjI6+UF49nNXHsRp1pWNHZ91O5QxFx+" + |
| "8P1/X3FN8PMvlAsU67Tb2LhBGndJoAOvBceVR51tGXJMdq1JWO" + |
| "hWrcb/XkmNtfck+4rr+nWpu2fJ32cKyIPs8tlfu85Mr84UetXY" + |
| "67HOzUVqi1eR1ejedEXdYpq+vHaodoy9dpL8eyfT35CGd41mme" + |
| "o/G8zF+yBocIr9U9Z/RHHU7eqa1g/HXfNLJmMcOhUN2ynthMgy" + |
| "CTjxfrdEhixKGokUF/niLHV4vr+I7S824wHux6fWIcq1FXOjb5" + |
| "mNuLnKHgfSpc199TvB9k8plixm9IjDil0wTQznvKo8qzJvdLjt" + |
| "WoKx2b3Of2ImcoeA+E65b31LylWKdvevpd3cvfzuazKm5N54HF" + |
| "vC9IdpWiK9U502Ney2v+ttcuatfD5qzThJ+HzAXNuWf0UqhyWG" + |
| "Px+6UfOwafjhi9N5Qp3IFGXKx2HWzZOhXX3oEjpt5lzUOm52//" + |
| "kXA/foxy+bQQlzoGn46AauFOi/X/UpgTmjT5SrZO+fvMZCQZXt" + |
| "L341+o9O3R2KRm+XKlz4+kVZx3k2qFd3Q9ineErM6Bnq8CnirJ" + |
| "WBlXRwz0+Kok49e6TnTepY+a8+6t8t3RIo6nL/b8CcpTZfTfCz" + |
| "ueBryvin0/7ni+tdA5auO05et0jGP5Kl7gVijPQvyIluPNWcnh" + |
| "ndbG9ToBxnMSu9e6fix+CCT9vUu+LTHilB4NAbTz+/Ko8qwux2" + |
| "rUlY4dUJ3KGbr3262n5HuFdrj7UTgy2ON14PudP/bxmvpdtU77" + |
| "Kn1+sPsqP1zSv3ezi1qJiYVdn0av9mt94gMgkyeKdXpcYsQJ5n" + |
| "g5jFqsrHp8oHuHxLEadaVjoRr3yxmK9f9RyTQib213bTdJ0MBK" + |
| "f2klZ0hc225W1LJsy5HJs8kItwbn+LtwO0SZLnPzUX+ysq+ez4" + |
| "5eicS9T7Dtlp4DhCQyQUc/aW4Wcd69wNm+KKqMuM5CHuTKXopz" + |
| "4QbZO+8+9PDhrJu5aM5omcx8c/A0tZ4HHzFoTyxpAV/nq1Tqn9" + |
| "VRyOZ1dc5uXXAMpa4mK7GVmOMzUy0+E+6rx+yGz/wO+zH0Ao5e" + |
| "bkmdUPByLuXlUVRD4jonSR6Hlr2OU01iulLOh8xwZR8SP5hf2b" + |
| "YV17gfu5jPCuVxH+na8qjyrC7Hamj5YtM1bi/E7q1fN290OjqN" + |
| "Em2w0svR6fRlzqA9saQFGXQ+k22jjkI2r6tzIi/UhZwhr7bBh/" + |
| "OJaX4+M9XiM2XaTDRjtExmvhl4mvWcjGbiScTQi7jPxgw6n7li" + |
| "fFBHIZvX1Tmxl1AXvEOUupqsxNZphs+MPcmZMu1MdMZomcx8Z+" + |
| "BpenssOhM/hhh6EffZmEHnM6/wTToK2byuzom8UBccQ5lu8uFU" + |
| "ia3TGT4z1eIz2X08Lz+fg223NEdIIpM8I4OWDxjP42Y1r/Ae9C" + |
| "O7UXPvE1AN4Oks5OH9NDbxTqGa7J2zF3KfguIbJxpPZ/pOvO/b" + |
| "+J2pbM7L1sZGtpqNsxZr/NlgdwCz8c/Mn93rbPynWWleZ7A7my" + |
| "soT3Nlc51zZX1zxn6ucb7xJ7P/S+N50c/OeGdzefO1JvKGLP4N" + |
| "zQ3NjY1fNI5LTuPZxnTew4zZ/lD4/5Fl/1dR7ebm6y3SXJ/5n2" + |
| "mcNJwpPidlLT79XHIRE78s62ZVc210KjpljqxMZsfYKXiadXoT" + |
| "+IhBe2JJC/g6n3mF9+ooZPO6Ome3LjiGUleTldh5d4rPTLX4TJ" + |
| "k2FZl1Bpn5puBp1ulm8BGD9sSSFvB1PvMK36KjkM3r6pzduuAY" + |
| "ynSND6dKbJ2m+MxUi8+UadOROZJBZr5peJp1ug18xKA9saQFfJ" + |
| "2vUhl4Skchm9fVOaPpgafKuuAYSl1NVmLrNM1npon5TJl2Ljon" + |
| "PtFktt1abwGEJDLJMzJo+YBx1M1qOj+O2RF3GVQZcfQMHJcc3Q" + |
| "/vFKrJ3jlbXDVv4/U9n+/OyarmqrVLvR//mYs5zJ96vzcPfCPZ" + |
| "uVj6t2ZXXPJNZnq7y7EaWr7YdIvbC7F767dbT2ydfr6U97cGTv" + |
| "Qv1vM9wonKEj+iw9FhlGiD1dqGCO2jMcQdf47mGcYQZXFjviir" + |
| "ybpuTmRwRDOUHPPhfOJcH+Mz8VrkkxFF5KOote6SttQ9K16Kpn" + |
| "cuNKJ3lmakdyz58fRw9DBKtMFqfQ4R2o8cRVz6c3QyzzCMKIsf" + |
| "9kVZTdZ1cwKj9SBHNEPJYR/OJ871YeqWODJ7bk9EE0bLZOabgK" + |
| "fpbS8itI9aiDv+HM0ztBBlcS1flNVkXTcnMjiiGUq2fDhVKtap" + |
| "xWfitcgnI/SnnNZ+91NPPB8lZZ+PEPWxyiKX/vcFvVazvN640W" + |
| "Q0iRJtsFpDiNA+Ooi448/RPMNBRBEf+Q6P5FXcum5OZHBEM5Q8" + |
| "6MP5xLl+kM/Ea5FPRhTf3xXfB7e+ntnbGfbO0m/+VhTffjY8r8" + |
| "cnXtXjqcdq6dtNtz39Lic6Gh1FiTZYrQKhfZQi7vhzNM+QIsri" + |
| "Ul+U1WRdNycyIl83R3n3QqY+nE+c6ymfidciH0VUr8DmvM9U79" + |
| "WqV6LR6hVketZ8VO45on1YOayxd79PSz92DD4dAdXCnRLPzhT4" + |
| "HuFKWTxbp2fMcfkOJ2/pr7wR1ayoHbUXc2al2xZ43nmr6d/1WF" + |
| "5vnUVHoiMo0QarNYmI3hNLWpCB2KTFf/VFAZvX1Tkpj78LOUOo" + |
| "mqzE59fduDPJiHzNTxbab5byWpu+69W8jqfbl/z3F/kd5/qt7l" + |
| "3q1g/i+fQueX88vhq6P06o0a6qu+5XMdK9P451y++Pp+8O3R+3" + |
| "8fr+uO1A3x/X553tquha3R+v30rx9a31rcaTyQzbCk+zTsfARw" + |
| "zaE0tawNf5zKQf0lHI5nV1zm5dcAxleo8Pp0psLbbymakWnynT" + |
| "ttSzezUg7d5qdmud5Ah6pWdk0PJlBsoiXpvV6IdMOooqI+7Jso" + |
| "X3QJvKtVr2zrsX5+eHeW51PG1h3WyubzZaJjPfZniadZoCHzFo" + |
| "TyxpAV/nM/tVOgrZvK7O2a0LjhVylQ+nSmwtNvOZqRafSUbkV+" + |
| "/id5QJ+1aito/kNV7HP92/67juqw/3VZ6MnkSJNlitafARg/bE" + |
| "khbwiU1aep+OQjavq3N260LOkFfb7sP5xDQ/n5n3LGdQ6/YT1N" + |
| "rLw1jxSW4wjEq7flP/jifdF1bTyKKO27WwOe/Hz/p5tbXXUqO+" + |
| "KVQ5rIW41DH4dARU66XTMEdOGs1GsyjRBqu9EnzEoD2xpAV8nc" + |
| "90/kYdhWxeV+fs1oWcIVRNVuLz85mpFp9JRqjj6Rp+8V27O2Sl" + |
| "n+/LFfxuXbU/1/HqbHWWJGhgtVdVZyVD4laODHLbzYqa1TsvIZ" + |
| "NnkxFuDc7xd+F2iLK2zs1H/fGslqfree0L1QtGyyVoYLXXWUkY" + |
| "36Nm1onZbOoLaCHauYRMnk1GuDU4x9+F2yHK2no3H/XHs1qeru" + |
| "ezi086v25fb2Xy9+Lv3esI43u0Ap8XA2jnv+VRENde0Z2DVagr" + |
| "XTP5m9uLnKHgzYan8eU13l+BpP+jTi5KjDilEwfQzlx5VHlWl2" + |
| "M16krHpvvdXuQMBe+hcF2Zt/pi9UWSoIHVXm8lZ0hc225W1Kze" + |
| "+R8yeTYZ4dbgHH8Xbocoa5vcfNQfz2p5up7Pji5Hl81fvkxmfw" + |
| "Mvw9Os0wbwEYP2xJIW8HW+SmW8oqOQzevqnN264BjK2o0+nCoV" + |
| "63Qjz8Zr8Zl4RHwWJHtfMCcx4vjfj0uu+xh/Tek5dTYU5+dYjb" + |
| "rSsbWNbi9yBuKF6/ryxkPxkJW0mRy3+znEiIdgncAKVBuCiPFl" + |
| "ZSzKGMoHWRDFrDKK+rO9c4Y/k85GmdDnv6vJf0cbPwKbe7+R33" + |
| "UM3QmUUe7dRj/PlQJ9xO2Q9wH3fXl/6XD4V77uL5PlXVbf3dTs" + |
| "8X85bDVK"); |
| |
| byte[] buffer = new byte[uncompressedBytes]; |
| Inflater inflater = new Inflater(); |
| inflater.setInput(decoded, 0, compressedBytes); |
| inflater.inflate(buffer); |
| inflater.end(); |
| |
| value3 = new int[rows][cols]; |
| for (int index = 0; index < uncompressedBytes-1; index += 4) |
| { |
| int byte1 = 0x000000FF & (int)buffer[index + 0]; |
| int byte2 = 0x000000FF & (int)buffer[index + 1]; |
| int byte3 = 0x000000FF & (int)buffer[index + 2]; |
| int byte4 = 0x000000FF & (int)buffer[index + 3]; |
| |
| int element = index / 4; |
| int row = element / cols; |
| int col = element % cols; |
| value3[row][col] = byte1 << 24 | byte2 << 16 | byte3 << 8 | byte4; |
| } |
| } |
| catch (Exception e) |
| { |
| throw new Error(e); |
| } |
| } |
| |
| protected static int[][] value4 = null; |
| |
| protected static void value4Init() |
| { |
| try |
| { |
| final int rows = 65; |
| final int cols = 74; |
| final int compressedBytes = 2856; |
| final int uncompressedBytes = 19241; |
| |
| byte[] decoded = new byte[compressedBytes]; |
| base64Decode(decoded, |
| "eNrVW2usXFUVnhpBMT64gRgkNqYxGv8ZfhgTDTpzZk6Vy6XQ9i" + |
| "JQfIAQCSaixjQp8Ydn7q4dJ9FyrQ+wNdG2NooGUR7FC6QVyxuB" + |
| "RAVSb6P8EWOgoGkUiVo466yzzlpr77XPnLlzbyNnZ+/Za33fWu" + |
| "vb557XPG6rBVt2b3ZfMWk5sB6HWefqltqyv7hV+fhc9nw+His8" + |
| "/0Kkf1IrumUPZo9kDxezP7dqtux4kel1xfhGA38oe7Sc/SHvT2" + |
| "RPZUfy1z8VnjOL8Wj2Yh57cv8U1N4/tT+Ve+8PMh3OFoX1TN7/" + |
| "lj2b/b3Vmns5+2fh+3f2Uvbf7H/9VaGO9DCO7jXkGWzVGHPq1l" + |
| "uPxqNGx0kOzFhVGDtwvha9hiZ6bU39/Xk/mKMHK961rf+bbduD" + |
| "dWj/0WCNK6ad9pN7fVXry6/i/bTi2tPfV8fu91uvkg2vT+q827" + |
| "Xs++WK9AoecVZa+/LXfZLh4YHtZ6UZzJMfEVNm0xF+DcmxVSDu" + |
| "67GqsT5d2apn2SX7eHocRu6t1nB9fryfJTKWHGbgyK/m3+E4Ri" + |
| "R761g6Y8jc9h/MQihlRR8eT1JfslcrxW1uH/NkXcrG9akFR27x" + |
| "XODeLJ8L0t3YxXPBW5b+XNDbNclzQbp7vOeC3q6lPBfks+hzQe" + |
| "/03uk0ko3W8LPoYwa/MktbyA/z5a/Xh1HElnXDnKNU6DXEqulK" + |
| "cv1yzVxLrqmYre6tlnsbbejDUxDhkZjaTxlkHj9r7tkp2RylY4" + |
| "ZvkFltDmvgua+gt9PXqPVZm4XL+P4Deb+/v7//ePFccBpxhl+s" + |
| "vRc/UYwHTOx3gedQ74aJnlruHO+5wK7W/7XpfWxJit5Rvn+ZH3" + |
| "7bxzpXjYrWDGn1vtdUwegqPjeMaF6t6dY92j1KI9loJe9CH43M" + |
| "lDFkEU9mlXEcqaNkhF9DcnScxn09qD1U6msj1ZKptcj8tLnV8n" + |
| "jKa70n3Ktzp9bvdfdWed65t1dxU5P9Nd0Zdejcm3yPpT16BtWe" + |
| "d+5t7kyzZvUMNrglOMpn3JoR58FM3Gp8Ls2Myw0j3DtX7P3KIz" + |
| "gme6q/yR7shDEnlgPYMZTz6jlljmflzMyBGasKY7Vumlv64nV1" + |
| "3mRNsoZHnKE13Jms0QyNh7aflWYwH9xKTJlNR/g1JMdW4SukcT" + |
| "Dl52N9urJVz7KrvfdbHN27q3tGojHm1B6XEXRwe31UfVafAzNW" + |
| "FcYObvO16DWM1uvnTbM04xFnaA1vglEyNB7aflaawXywn5gym4" + |
| "7wa0iOrcJXSONgys/H+nRlq55lu3Z+1esW17516vnp4sEd4rp4" + |
| "iX+/c5d6V84ri/Fs92GX4P3OpW7tqPud2+g2uU+4y92nhU99ju" + |
| "A+5KbpfufOLX3nCfx8tx7ud+6iwvp4MX7KvVcwOsXYK8aPuo+U" + |
| "3nPcjHW/c7PuQmV/0l2m7hw7uJfP4zcz1imezctxR+0daMd4/q" + |
| "rCjpH3NsGRSkldWE3mZHbTujbWmede7qdfSEwza1YzP56f0Hrc" + |
| "50ilnfnwczrEZE5mN60bYslL0KmRD2buc4iVkZ+RFkVKSzLAYk" + |
| "QzpVfXhSqhNneNzEFxyMU6VFNW88e5fTIHMS1ltub2H6FTy/fO" + |
| "F9BmrFzBedIiVFqSARYjmim9XJeqhNp0DopDLtZhtVq7jUjbUm" + |
| "Zr7r4POjXy4QyxcgXrpEWotCQDLEY0U3p1XagSatM5KA65WIfV" + |
| "au02Im1LWY3mGe7sIV/n85ppzX2Pxro170a6M9DqcGIxnzNqdb" + |
| "52PYaq4nV9TH/+xO+Dh79s8P50c8P3mocm/NZszM+fBgvNP39q" + |
| "rCG2n25Zzs/pJlHY+cfY++nOlfqcrnsBd/bkR8yX2NfZwH7JES" + |
| "vaIOORbzN1bWicw9KGLOajF7i6jo7wR1+HrGup8u6Az0OnRj6c" + |
| "IaaZOtLPQ17N00zp1XVDDufT2tiC5ydZU2q3EWnHK2uk/SR0bG" + |
| "iV591ty3d9aj+ZnDzJmceqmqF2NYN30lgqFqFTy1e/BW3GyjPi" + |
| "UmkRKi3JAIsRzZRerktVQm06B8UhF+uwWq3dRqRtKbM0R6/j9y" + |
| "zndTx57USf+1473nXcrjbJdTx9On2aRrLRGh5EHzP4lZrbLC3K" + |
| "EOaTmWU2ZNsoW51jdSr0GnDsHLNwuWJev1yzr1TugfwIOwKdWn" + |
| "nUlTPEyjPiEmkRKi3JAIsRzZReXReqaA7n09qgAxfrsFqt3Uak" + |
| "bSmzNSfPQadGPpwhVq7gAmkRKi3JAIsRzZReXReqhNqK98GeNu" + |
| "jAxTqsVmu3EWlbymzNycvQqZEPZ4iVKzhfWoRKSzLAYkQzpVfX" + |
| "hSqhNp2D4pCLdVit1m4j0raU2Zq7a6FTIx/OECtXsJE8MlI9Z2" + |
| "4Ej8sQQ77N5Bq6LlXR2qQijkMu1mG1WruNSNt9JfKcudbX3P4r" + |
| "dGr5OufQZqxcway0CJWWZIDFiGZKL9elKqE2nYPikIt1WK3Wbi" + |
| "PStpRZmmPPBd3vLOtzwaoT+lywaiXe37mv5ntl2g3zfl13uvTN" + |
| "4wxG8nU2kafal9PeebeJPd1p5NvMosbX3Dfy8evdaWicQ3G2Ui" + |
| "xzcAYduFjHfbNgF59ouwFr16PbVq1vu85pnHcBljwLnRr5cIZY" + |
| "uYKLpUWotCQDLEY0U3p1XagSatM5KA65WIfVau02Im1LWVxzdw" + |
| "N39uhZZ7326zkyZBTybaauDY1zWNqQVR4L3yKlwNV1dIQ/+jpk" + |
| "XUuV53k/dGrkwxli5Qo+Ji1CpSUZYFVnz3c1U9bQdaFKqE0q4j" + |
| "jkYh1Wq7XbiLQtZZpbeT4InRr5cIZYuYILpUWotCQDrBhT1tB1" + |
| "oUqoTSriOORiHVartduItC1lmlvdAQ9Dp5b/9a9Hm7FyBRdJi1" + |
| "BpSQZYjLSN/xVBL9elKqE2nYPikIt1WK3WbiPSbkf+w8VH2r+C" + |
| "jg2t8jrW4HdIzF4e3tLiQ9TWPrGKZ6BTy4+nG9BmTDN1pJ+HvJ" + |
| "qnmdLLdePadA6Kkxr0aPn8HGTHK2sk9pyZnNHgO4gT8j3C+N+3" + |
| "2Nonfc5M4JefR6mRD2eIaaaO9POQV/M0U3p1XVubzkFxUoMeLZ" + |
| "+fg+x4ZY20F6BjQ6v8bufuBmfsQsMze2HCK8PCeKg7ayVUFHfB" + |
| "We7s8We+pZGmUcGqdnVn63DEJEcqtSIposi+U7J8VfG6Pha7Pg" + |
| "0OLvX6ZPBO9PfBB5pfnxof0w9Ax4ZWWeveZrFNvJh7Mo3joIND" + |
| "k6iNHmFt6NTIhzPEqjPkB9LS8xz9oeRrTFuyhq5ra5OKOE5m1q" + |
| "Pl83OQHa9sal7HnT2+j/3h3PfEo8IYaHU4sZjPGa1I1q7HUFW8" + |
| "boglL0CnRj6YuT2IaaaO9POQV/M0U3p13ZAD3e2VOShOatCj5S" + |
| "t+T/eCH1VX2ULSLb1ZGmHrzfZmGZOvZEW+D9wCsaG/N1sfVZ/V" + |
| "58CMVYWxWE369RpCfxNN7qZiLH7vxPe7tPgVsruxGMvftLq7Rn" + |
| "wy+mP3E3oed3e4n5Pf/l20u9X9LB+93zE44942+v+A3M2CvT89" + |
| "V1g/HXEvrf8/oNudeleYLuLYq/4jmGfpoubU/tVNtLd7xLGyWJ" + |
| "8V4iUHZqwqjMV60q/XMEpvXFN6BEc+ntw9GmNO7YpNdO6aEfvp" + |
| "SH1W9xvNgRmrCmPdAV+LXsMovXbe9ovYi6Pwuoq3NXjSKHjEXI" + |
| "6Nc1mzGJcVoy+MQO1NlMY54Uo7U9j19Wlwnx+JvM4S/ucwdjxx" + |
| "LmsW47Ji9IUR7gN1mWJZfcTCOtu54zZ8TGKaWenZbOUxq26vVb" + |
| "u9Hvc5UqkViT6J2Oy6uj4W/f3TU7V3iTG/50xPO5Hv7+xqE33+" + |
| "9AoikKZH"); |
| |
| byte[] buffer = new byte[uncompressedBytes]; |
| Inflater inflater = new Inflater(); |
| inflater.setInput(decoded, 0, compressedBytes); |
| inflater.inflate(buffer); |
| inflater.end(); |
| |
| value4 = new int[rows][cols]; |
| for (int index = 0; index < uncompressedBytes-1; index += 4) |
| { |
| int byte1 = 0x000000FF & (int)buffer[index + 0]; |
| int byte2 = 0x000000FF & (int)buffer[index + 1]; |
| int byte3 = 0x000000FF & (int)buffer[index + 2]; |
| int byte4 = 0x000000FF & (int)buffer[index + 3]; |
| |
| int element = index / 4; |
| int row = element / cols; |
| int col = element % cols; |
| value4[row][col] = byte1 << 24 | byte2 << 16 | byte3 << 8 | byte4; |
| } |
| } |
| catch (Exception e) |
| { |
| throw new Error(e); |
| } |
| } |
| |
| protected static int[][] value5 = null; |
| |
| protected static void value5Init() |
| { |
| try |
| { |
| final int rows = 65; |
| final int cols = 74; |
| final int compressedBytes = 2313; |
| final int uncompressedBytes = 19241; |
| |
| byte[] decoded = new byte[compressedBytes]; |
| base64Decode(decoded, |
| "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" + |
| "PN/l+F3E+9qX7D2yO9Ny/Lki3W8R8VXbSS"); |
| |
| byte[] buffer = new byte[uncompressedBytes]; |
| Inflater inflater = new Inflater(); |
| inflater.setInput(decoded, 0, compressedBytes); |
| inflater.inflate(buffer); |
| inflater.end(); |
| |
| value5 = new int[rows][cols]; |
| for (int index = 0; index < uncompressedBytes-1; index += 4) |
| { |
| int byte1 = 0x000000FF & (int)buffer[index + 0]; |
| int byte2 = 0x000000FF & (int)buffer[index + 1]; |
| int byte3 = 0x000000FF & (int)buffer[index + 2]; |
| int byte4 = 0x000000FF & (int)buffer[index + 3]; |
| |
| int element = index / 4; |
| int row = element / cols; |
| int col = element % cols; |
| value5[row][col] = byte1 << 24 | byte2 << 16 | byte3 << 8 | byte4; |
| } |
| } |
| catch (Exception e) |
| { |
| throw new Error(e); |
| } |
| } |
| |
| protected static int[][] value6 = null; |
| |
| protected static void value6Init() |
| { |
| try |
| { |
| final int rows = 65; |
| final int cols = 74; |
| final int compressedBytes = 2242; |
| final int uncompressedBytes = 19241; |
| |
| byte[] decoded = new byte[compressedBytes]; |
| base64Decode(decoded, |
| "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"); |
| |
| byte[] buffer = new byte[uncompressedBytes]; |
| Inflater inflater = new Inflater(); |
| inflater.setInput(decoded, 0, compressedBytes); |
| inflater.inflate(buffer); |
| inflater.end(); |
| |
| value6 = new int[rows][cols]; |
| for (int index = 0; index < uncompressedBytes-1; index += 4) |
| { |
| int byte1 = 0x000000FF & (int)buffer[index + 0]; |
| int byte2 = 0x000000FF & (int)buffer[index + 1]; |
| int byte3 = 0x000000FF & (int)buffer[index + 2]; |
| int byte4 = 0x000000FF & (int)buffer[index + 3]; |
| |
| int element = index / 4; |
| int row = element / cols; |
| int col = element % cols; |
| value6[row][col] = byte1 << 24 | byte2 << 16 | byte3 << 8 | byte4; |
| } |
| } |
| catch (Exception e) |
| { |
| throw new Error(e); |
| } |
| } |
| |
| protected static int[][] value7 = null; |
| |
| protected static void value7Init() |
| { |
| try |
| { |
| final int rows = 65; |
| final int cols = 74; |
| final int compressedBytes = 1297; |
| final int uncompressedBytes = 19241; |
| |
| byte[] decoded = new byte[compressedBytes]; |
| base64Decode(decoded, |
| "eNrVW81r1EAUX/ALBEEPgie9WFCpFxUPipiNuwqigih+IOJV8S" + |
| "QiogcldtNOsaD01osH0Rb8pgdBD1oQtRcVBBEPXlr1on+AFAU3" + |
| "Tt/OvJmXNNnMTCcJmc6befN+v/3lzSTZTWs1vEVroDa0oDbn1n" + |
| "ehlnNrXKk53GygRW/bx5voafQheil06rs5tEj3bX3rjPr0v3xB" + |
| "RvyotbxqDJXi+Dyz952mE4kWTZCt73Mpf65xDkqwk72t00LeJj" + |
| "zE347XBdmCCHq89t8B2U/4q7gqBniks8CfIQ0NI8mfX0STseTP" + |
| "hEdo826x0ZnQ73TeWUeT5t0So8wHneo06G59onzjO12vT8NO16" + |
| "fhfOtTfDvv+pSeT4bPcOw0n4yjhXvDvaLktWRPdEps2UPux+0w" + |
| "GkeFWlJvROApR8MjVAzZh2ahMoRSRxP8MDKFR9laPt2CGltbq+" + |
| "zWN2U8n1aGK0XJa9zituyB+3VbjQq1pF7/A55yNDxCxZB9aBYq" + |
| "QyjZejWe4IeRKTzKTs8ns1t9xmU+DTxzdV9gXKe/LnViG0xHjB" + |
| "8o9v0OVq/tTxPfsxW5tcl0xGZ7EyWvzVojSSl7KP2arUaFmoiD" + |
| "o6g8VAzZh2ahMuyUI2o8wQ8jU3iUrZ3jx50VbnV1r3fmuTejZi" + |
| "RKXuMW25iUsgfu1201KtREHBxF5aFiyD40C5UhlK0tajzBDyNT" + |
| "eJStreOjnXNytcL5ZJ17dKODdbDCOh10pxPbXF2dWqHDfOqtcD" + |
| "71OsynLRXOp6Y7nbq4dq7rrs/8lhete1ZldGrty3iS2OZSp/47" + |
| "ORnvn5d86umuz0I+9Zj1M/sc3Ey9C46mm6XukKPfpph055d5vd" + |
| "tR4eudde6STtsrrNN2dzqxnRW+LzjhMJ+OVjifjjrMp6DC+XTK" + |
| "r/vM/O+rsKZLnVjD5/vxTOZ7nOq0251O9cnC7A5o+T9AzorCv9" + |
| "aygvfNxbmX0OmryXnndsvDff7mXXjZm+vdZZ91Cr75opN9JqV0" + |
| "euSNTo+81mnKG52mXOgUjKfij2eyG7fFqvmnoE7jPudTeNGbdf" + |
| "yi1/PunjfzzgIT+v3MOUcR72cGs7+5U+9nluRY8P3M4DHpN0G2" + |
| "vnc+77y567TPpIxO7LAvOrFDXq9PD71Znx660ImlfsvFjmSyG/" + |
| "VGJ+tMstfxa8sz2U2nrePXVpRj1bcqk9WyNCa5PnHX6zg7nppP" + |
| "xzJ1+uJNPn1xMe+6ZjfmjU5jXuv0xBudnviskz9bvd+sX5ZO9d" + |
| "cV1um1u3xiJ6urU+u68Zl8PjgvSl7jFrdlD9yv22pUqCX1+kLw" + |
| "lKPhESqG7EOzUBlCqaMJfhiZwqNsVbd42s4ZZmecPrecto0Qf7" + |
| "d0BXL6/y120HYtTQ7YoS2pxT94H/bEI9U40Ir9sKfcinFpbjgG" + |
| "jJM54JJqU2OAnY6c1qM/t4TGsqtcpKKjaf9yHMx9TxeeTXu+c/" + |
| "09HTBR/Ca06+KvIs934UxywA5tvMb7sCceqcaBVuwXzlC4MnIW" + |
| "NxwDxskccEm1tZ+X78oxwDMdOcz438r4V4mrzDz9jhD/1JhY+Z" + |
| "5u19bkgB3aeI33YU88Uo0DrdgPe8qtGJfmhmPAOJkDLqk2NQbY" + |
| "6ci4J5hMDr5zazbvMt8q4X4Bei8ERgSTundQ6g2S7NF6L82djp" + |
| "KXmbl1vNNHrOPskst1fGBtvnW8yPd0wefk4Du3Zs9J/1yjZG95" + |
| "BG6lWwrm0+divTR3OkpObv8AtrzsUQ=="); |
| |
| byte[] buffer = new byte[uncompressedBytes]; |
| Inflater inflater = new Inflater(); |
| inflater.setInput(decoded, 0, compressedBytes); |
| inflater.inflate(buffer); |
| inflater.end(); |
| |
| value7 = new int[rows][cols]; |
| for (int index = 0; index < uncompressedBytes-1; index += 4) |
| { |
| int byte1 = 0x000000FF & (int)buffer[index + 0]; |
| int byte2 = 0x000000FF & (int)buffer[index + 1]; |
| int byte3 = 0x000000FF & (int)buffer[index + 2]; |
| int byte4 = 0x000000FF & (int)buffer[index + 3]; |
| |
| int element = index / 4; |
| int row = element / cols; |
| int col = element % cols; |
| value7[row][col] = byte1 << 24 | byte2 << 16 | byte3 << 8 | byte4; |
| } |
| } |
| catch (Exception e) |
| { |
| throw new Error(e); |
| } |
| } |
| |
| protected static int[][] value8 = null; |
| |
| protected static void value8Init() |
| { |
| try |
| { |
| final int rows = 65; |
| final int cols = 74; |
| final int compressedBytes = 1580; |
| final int uncompressedBytes = 19241; |
| |
| byte[] decoded = new byte[compressedBytes]; |
| base64Decode(decoded, |
| "eNrVWs1vG0UUtwQVBwT0Q0KIVOUCZ/4E9sOGU68IxKEVH1cuwA" + |
| "EEtLbjZK0ekECqOJUASkWkthyaFClJnQ+ToDaiSEi9k3Ckolwq" + |
| "kCo+PHk7zMzO7O57frtTZ0ZvvO/7t88z41nbrd3WbqPR2h9FE1" + |
| "eSa+1GS1InpVLv4mUEO54eWY8G1m6t4hqNaCkfhY5QjmCf1Yu7" + |
| "0bHpaFUu+57gtf3DiLbb19o/tddGV8/ICMlMo6C1b++PA6fuZ0" + |
| "sybLBae7lQ+2NW0t1z2q07pbfGQdS7o3PRYmMiWjGO3m84e97d" + |
| "5M2nKJyc+dR9nzaf3Ni58yn6UpDsUgZXoDMtTc9sHCk17UxLXW" + |
| "rmdWMzY0g/HYM5umTZGJLPz2xqgmuCoAOX2r1UXmFlXWaHtRwn" + |
| "j611Y2di+E4QdODSffwczheXA2s5Th5bOz3koKXtTyjfAdJumP" + |
| "R9ft4lJ/D703jN/Lwr3V/fm4RPQ/vzLkmqzxJ8Lwg6cGmuT3G+" + |
| "GCnE5mGkaN3nJyzanCxDQdCBgxa+i/PFSCE2o05DmtaNHYs2J8" + |
| "t1QdCBS+fTbZwvRgqxGXW6TtP2HuegzcmyLQg6cOl78izOt0ja" + |
| "e0VKdMvey+Q6bdO0buxlaEswrAuCDlya6wTOFyOF2Iz5tE7Tur" + |
| "Fj0eZkGQiCDly67v7A+WKkEJtRpwFN23uVg9bX+cn1fJd85vP8" + |
| "NPtk9c93nur0+UGvU7ApCDpwhPWwiZNCbMa626Rpkz85aHOyrA" + |
| "iCDhwB/wpOCrEZdVqhacM38XZYZMGaIOjAEfCv4aQQm1GnNZo2" + |
| "fANvh0UWbAiCDhwB/wZOCrEZddqgacPX8XZYZMGyIOjAEfAv46" + |
| "QQm1GnZZo2+Qdp9y/+joNVQdCBI+BfxUkhNqNOqzRteApvh0UW" + |
| "bAmCDhwB/xZOCrEZddqiacO38HZYZMENQdCBgxadLPPSrW2dKX" + |
| "Fbout0g6Z1Y8eirfKcSf29JZzyec5Mfn+w5/HuF0Xn8e4cvMZn" + |
| "7TrZsjrr5M5m10nYYZEFVwVBBw5a60Ocb1GTMSA2Y91dpWnd2H" + |
| "kYMk/aNX0/HjG+9y3zdfwejMyWLExaneLXGrU1u07YbAn5aSo+" + |
| "qUhJsjIlt6+zknwv20f0YmxgpexVRJenwm6ONqr8vFldsCMIOn" + |
| "DpGv+4cE/YUaNbp8eA2Iz9aYemdWMvQ1uC4aYg6MCluT4q89Kt" + |
| "bZ0eA2Iz6nSTpnVjL0M7Eeen417PT4Tfg/H/V4lDQbJLGVyBTj" + |
| "8/xaHpaZ6flL2pi0NXXj1zETYdkfLTI5ujS5aNIfn8zKbGz/8L" + |
| "Wqs+55M7G+//BcGiIOjApbnO4HwLz5lnpF2wyMVI0bqxMzEsCY" + |
| "IOHM03r4Uf6Ha0uNlIxd62Vs+NQ4van/ZJdikTVzMPxaletzQ9" + |
| "G5Y2tnRxxlKXmnnd2MwYsYEjdoxxiUbn8zPHRWv9//0pfKfK87" + |
| "jfhsFO3iNz9vHmrSrPBTOP+NzH3djtfXz6zrj/i25/Us/zXfOo" + |
| "z/lUfzZt3T1fXZ06b/NQdYm/kmKwEys/15yTo+QlJ0dpoV6Vlc" + |
| "lJr2w8PbIeTeZwaRU3Ol//nY/CvAcYw9MuvX7HaT1P69H0Ozbr" + |
| "oDzGW3f41j/kc931H/a3j1f7fNdi/a+HfB4f1PF8596fKn0vfu" + |
| "0/yvL/i2Y/e9/fPl5tnZq/+KwTL1v1dcJ/3jX3vJ4L9g7qfOo/" + |
| "4XXdHTmw6+6813V3vu46TS/Vse5GJ5XLXp/vLj/Y+dS+P+58Ch" + |
| "fqm09nn7bqtHBQ1134rc91x8vGr1PnMCqGdc7sHOmzdtbuU4Wo" + |
| "HrPO44cJdzxR58zwitf5dKX2+VTT8114yes+Xku26K4co7uyTi" + |
| "DrfgWvpmUeL7mslZDosv5RXWrq3Ni6XxehMO8hG1Fdd+bVtetq" + |
| "Is5P97yen+7Vvu5qqdPoueUb1j5O/J6Ol80Z8ULzghwlLzk5Sg" + |
| "v1qqxMTnpl441e520vlUOPk41ZhsK8h7xsZib9/vV7VrnMOuge" + |
| "Nc+ni17n00Vf6y4+Fh8b7bhRVfuTiOZvf3Jn68zXUKepeGr0tF" + |
| "fZ+xKz/u/bf6GKbLw6+fnel/P73exz1O99+y867datp37873f/" + |
| "ASvKQHc="); |
| |
| byte[] buffer = new byte[uncompressedBytes]; |
| Inflater inflater = new Inflater(); |
| inflater.setInput(decoded, 0, compressedBytes); |
| inflater.inflate(buffer); |
| inflater.end(); |
| |
| value8 = new int[rows][cols]; |
| for (int index = 0; index < uncompressedBytes-1; index += 4) |
| { |
| int byte1 = 0x000000FF & (int)buffer[index + 0]; |
| int byte2 = 0x000000FF & (int)buffer[index + 1]; |
| int byte3 = 0x000000FF & (int)buffer[index + 2]; |
| int byte4 = 0x000000FF & (int)buffer[index + 3]; |
| |
| int element = index / 4; |
| int row = element / cols; |
| int col = element % cols; |
| value8[row][col] = byte1 << 24 | byte2 << 16 | byte3 << 8 | byte4; |
| } |
| } |
| catch (Exception e) |
| { |
| throw new Error(e); |
| } |
| } |
| |
| protected static int[][] value9 = null; |
| |
| protected static void value9Init() |
| { |
| try |
| { |
| final int rows = 65; |
| final int cols = 74; |
| final int compressedBytes = 1721; |
| final int uncompressedBytes = 19241; |
| |
| byte[] decoded = new byte[compressedBytes]; |
| base64Decode(decoded, |
| "eNrdW01oJFUQ7s3Fk+CKBw+CCeslBxPEo4hJT3cwetJBSeYUdU" + |
| "FFWFDIRbzMTDKzTXB3XfGUoCK6uAdPy0bxsLoIioK7sLB4W5Ek" + |
| "IKyiiMieFru7UlNV79X0dE/3vGTSTapfvar6vno1r//eTPyu3/" + |
| "U8f19CCzTQycaPPIZ0r7chAou7hp4cTUaYHNxHz8LMsCctNspP" + |
| "Mmt8mo7+87/Rn7nJPq61V7N9B/ejNdtu+vBM+2fMLbp3Fq9pa/" + |
| "4Q/33f3G5eb34Ttx72cm3Nm6m8otpuWD3fRU97Jbbm15nWn82e" + |
| "7iOq37dq77U8GYRb4RZK1FFDiR50xL29yjVEsPE4MkdDDs1Kmn" + |
| "81Kws5BpD+Vc3ORwxbFHI0PmJZB4roVVfMJ/9Lr6KtHFLRaN2/" + |
| "TA6duSLnXeepYc+7zpMuz7uoXvl5dyu8RRJaoIHOPbhd0xERYz" + |
| "A6afsbdhRxcBwTc1AW5hh0NsnEx2+PQdOt6n6YOZ/CYWdE9Izn" + |
| "cIsWR83Q/Gc0uOEXLutUPVt4PjxPElqggc49pD2R8f2O6SYqtp" + |
| "L2+t/oydFkhMnBffQszAxRRs+beJSfZNb4NN3VfHK7hWer9XP3" + |
| "nFlu3J1ni93vwo1897vEL9/9LrgUXEKJOmoo0YOO5CU1jDLxOD" + |
| "JHQw7NSlp2FnIMIKNlzc5HvH+9b3A0ziXrQBH6c2Zld4edkvF3" + |
| "Cp5356r1U2b4c0fi+vRetX7xE9mKv0ISWqCBzj2k3dZNVGwRjk" + |
| "Qx8zA5uI+ehZkhyvBdE4/y46iJn82n6dYMv9s7d1fGdz6dvrdq" + |
| "xGAxWESJOmjRy9BHHnQkL6mBv43HkTkaeOtW0rKzkGPYz/0lzc" + |
| "5HTOPnYzYz5dzG9emFo3B96tRz+r2YF3Hh2MIxlKiD5t8PfeRB" + |
| "R/KSGvjbeByZo4G3biUtOws5BsrdtvMR0/j5mM1MmT6xMBG3Up" + |
| "n2TcAecz0AfeRBR/KSGvjbeByZo4G3biUtOwtuQ5nkbtuJidVp" + |
| "go/ZzJRzu3h+ah0P/iwT334wE926apdjy/VEN6o63XZap9vu6u" + |
| "Q/XmWdysUXrVOVuQ8zn1r35cK4ocynd5zOpwJs+d6Draj9lYba" + |
| "bG3W89YuSGvS139Dq+0FaCXWJ08W89fZWp/l9z2o61P0hsv51D" + |
| "1e9QiCvWAPJerJXjtROxHsRa9yj6QX7bCTP1gBAbw4HqCZUWCX" + |
| "vCYmeLRPyTg7BylttkTCfKLceLbEZaKbEaOcT6636K0RXLn7rG" + |
| "fOX1f4m8XWM9e6uJ7ZuYfsa+uFcyz4/Z2Wu7aeufZH7vXMnWAH" + |
| "JeqooUQPOpIX18JpjDLxPC+ctqOIg+NIzMFZyDH0Y5NMvXWVaY" + |
| "7GuWQd4n0pWIpbqUz7lmCHNvZgP9k1PZzCKBMvzmjKjiIOjiMx" + |
| "B2fBbShtNsnUq9MUR+Ncsg7x3ggacSuVaV8DdmhjD/aTXdPDSY" + |
| "wy8eKMJu0o4uA4EnNwFtyG0maTTL06TXI0ziXrEO/LwXLcSmXa" + |
| "tww7tLEH+8mu6eEMRpl4cUYzdhRxcByJOTgLbkNps0mmXp1mOB" + |
| "rnknWgiN6zyEOFnmtWc68vn3R5v6uezZ/1Z0lCCzTQuYe027qJ" + |
| "iq3U+gp6cjQZYXJwHz0LM8OetNgoP8ms8Wl6//nkNyr9PBpO51" + |
| "PlbMFCsIASddD8ZegjDzqSl9TA38YDNDMKvTmvjTkoCzmGfmyJ" + |
| "jN4mJBo/HzNx8THJCPN5fP7HsusF7TsHta6i5T7cekH73/Z/We" + |
| "sFMddPyvN4J/Nt4bT1vNvV/Io/jxfdtNzj/CrkLfZ+l/d+5/p7" + |
| "8/W/3K3Tzf9SIarjOlWZe/XrT3OfH5Y69c/kUNTp4qGp00V3dY" + |
| "reH9/zbm3jMM+nrDoFX7msUzm2A63TttM6bY9tnS47rdPlEYxh" + |
| "DH7HWnTdd+5uvnXfxG/I7+9GNJ+iLZfzSf+/snE47/xfXdapHF" + |
| "v5Og3/vXn0kcv34O6jVb0HOz/vPnZ63j0xrudd9OkRuz6J//jo" + |
| "PFYVrn+zTHTn9yrY9N9hHK755Pa9xX9zbM+7C0f1ucBvFT63Wo" + |
| "dmPrUc1qk2xuddreq6+HW/ThJaoKXtXe4h7bZuomIrte6iJ0eT" + |
| "ESYHQ9nVs+jlWTekxYaj4bmBZvNpuvXJ9d6M/E3Piz4pVPPN4W" + |
| "w5njNPFfz0N6u+3/ln/DMkoQUa6NxD2m3dRMVW0g5eQ0+OJiNM" + |
| "Du6jZ2FmiNJmo/wks8an6VbdztmtjM95VY9VVjpe9xxuo2fzP7" + |
| "BbxWOVzOtO6zRytubZQteN/L9XueKyTnnZCmT1P0m/NIc="); |
| |
| byte[] buffer = new byte[uncompressedBytes]; |
| Inflater inflater = new Inflater(); |
| inflater.setInput(decoded, 0, compressedBytes); |
| inflater.inflate(buffer); |
| inflater.end(); |
| |
| value9 = new int[rows][cols]; |
| for (int index = 0; index < uncompressedBytes-1; index += 4) |
| { |
| int byte1 = 0x000000FF & (int)buffer[index + 0]; |
| int byte2 = 0x000000FF & (int)buffer[index + 1]; |
| int byte3 = 0x000000FF & (int)buffer[index + 2]; |
| int byte4 = 0x000000FF & (int)buffer[index + 3]; |
| |
| int element = index / 4; |
| int row = element / cols; |
| int col = element % cols; |
| value9[row][col] = byte1 << 24 | byte2 << 16 | byte3 << 8 | byte4; |
| } |
| } |
| catch (Exception e) |
| { |
| throw new Error(e); |
| } |
| } |
| |
| protected static int[][] value10 = null; |
| |
| protected static void value10Init() |
| { |
| try |
| { |
| final int rows = 65; |
| final int cols = 74; |
| final int compressedBytes = 1883; |
| final int uncompressedBytes = 19241; |
| |
| byte[] decoded = new byte[compressedBytes]; |
| base64Decode(decoded, |
| "eNrVW02IHFUQXiJ4FTEoEmMwBoUgbi4h5KI7r2dAzJ8xJCgLCm" + |
| "pU8Ac85CIJOjszvczk4C3oSQnmEF1XUBQR0WAkMZGo+BdPe9BD" + |
| "CJgcoqIeDHZPbW39vOre7ukfd3qYN1Wvqr7ve29e93T39k5MyM" + |
| "295ltZt7SK/kcTNW6z11fN4F71reStc8CuNXBPFdB0qqqK/ifZ" + |
| "Mduno/ep9oftb9qfRda6tNzem0tVPw7bT03E77yek+5EgXk60f" + |
| "44dQTn/Aozz+sNn4t6vx5F08xknmy5nlLHerbAPJ2tvqLaecq+" + |
| "9U9M1LjNbigbsXWkdYRasMADn2fIuO8vrbKXEYHqgscwk6NJHZ" + |
| "qD59gqtEJsfTbSx1H7n7eOdF7SfJbffk/tw/N5Z7r9fqbv44JR" + |
| "+U5urnczfvsXSv99W+PWUAsWeODzDLcm6FCc94MVdAATsgg/tq" + |
| "mSqrQOGZU5sk7GtR6LDUeDHinluYSn/XzrKTictp4w6mcFh83K" + |
| "ytaTxZaUly232Wq2sEUfPWwxo9kKehjHLO4FPciHLI4Xqen5Vc" + |
| "TBcSSmpcLP0K3PJpmW5qnHx8S55DxEr+nmdGQN22HfNLzAxh7s" + |
| "77yOccziXucNyA/aGi9S1PariIPjSExLhZ+hW59NMi3NUxvVai" + |
| "45D81pd8gdivbAxRYs8MCnGP9Eq3OA++xocwg9jAaPYCZHkxWa" + |
| "g+fYKrRCbH020sdR+2csPtM/6A5G1mILFnjgU4x/ohXNE/PZqA" + |
| "+ih9HgYczkaLJCc/AcW4VWiK3PRvoks8Vn+cFCsCCObEMf+oIF" + |
| "N082+rwH8iFGUTevUd08xihbZmhmfEGPm+c5pEf2EmKsQGok9V" + |
| "IXxzaO8wuSlf2irKvofPzceJ+Pu11uF7VggQc+z5Bx39eoaMV2" + |
| "8ChmcjRZoTl4jq1CK8TWZyN9ktnis/z09eTm1KzOpc75XFKWm0" + |
| "uvXPbbnCsj39KVH3txnl6paL/7qdb9rnQ2t9FtpBYs8MDnGTLu" + |
| "+xoVrdju/4yZHE1WaA6eY6vQCrGdOa/xSJ9ktvgsv6711Lyuzv" + |
| "VUPlt3X/d+4T9Q4B7NnYkse5JjmVRuS4uGR7MrGS0P5qm7s3vf" + |
| "aPMk72d2tyfPU/OG6uap6/0aZWXr7si8BibhRX6B9TSZxlLobu" + |
| "JkvmhWtuyqWpvgRX6B0WxKYyk0T5vyRbOyZVdV5vEphWVPwfpt" + |
| "+fIbq8vNK3p8Ut/O2pTj+No6j09Z2UZXRecFjbuNs8UrqX+r2a" + |
| "l7eg9Zeb19VZ8XWNoLnmdudVupBQu8xu1xyzNk3Pc1KlqEI1G0" + |
| "Ds3Bc2wVWiG2sXZfqdYGns9n+Snrab2xnv4ck/W03rx2+r08hp" + |
| "ndEytw6/+Vc56mys2L1tRet5dasMADn2fIuO9rVLQIR6JoHZqD" + |
| "59gqtEJsG07jkT6OGuf5fJY/Husp9353b7l5wyNSwvMqjaeNI8" + |
| "vIz6sUG3fe51Us7dbzKr2j2Z9XSZqn/tXxnafZTrZ5yv9cT+MS" + |
| "valHW75nYVi5vN9HaFxKRiVkiYaeVQl9FqfWlzYaE/kXeluxJC" + |
| "89N3tVelzncKXJinnEzk7j1bGk/a71onGF8Ox47HeWdmu/6z6T" + |
| "e7+7TG/q0ZbvWRhWLu/3ERqXk1EJWaKhZ1VCn8Wp9aWNRsbyPJ" + |
| "/Jqlb279092dZTnFf09868Mh95vxusrnOe7Oeii+13NT3ve02d" + |
| "82SzFTt/UlgV/d284H26J1OjT3jXg39nvG78p/j5+Fgfn4KMx6" + |
| "dgxe13q2rd71aVfT4eng9Ph1/gPIU/hGfy6Lefsw+9v1qHX7lr" + |
| "i8xT+GVq1PtesrGF3w7b70e6/zS9Aq/+/6i+YlnETqNDLVjgDW" + |
| "5qdGSGjPu+RkWLcCSK1qE5eI6tQivEdnCjxiN9ktnis/zk9TS4" + |
| "eXzvP82erJoh/HXpGunf8Z2n6rXPPL7EtWuM56l07c2LzYvYog" + |
| "9eawf0UQZ9Upb0IN/H48gcDbLtKHnpKuQYSLsf5yOm8fMxa6Wc" + |
| "O+l8vIy1O7hlcZU+X3CVv/B/73fJ50+DW0fGNM6fCqrMef40yP" + |
| "T38CLnT2w9PTjGx6cKtCfez9w9vtd3tnbjvspvxe8XtLaX+Cta" + |
| "9/Fpe9Ur1j3lW2Wi1lNfpvZFxP1uP7VggQc+z+Bxy0dErMHq2B" + |
| "7c5lcRB8fRmMup0GOI29kNVpyPmMbvj8Hyh5/H4ze+FuuPYy/E" + |
| "sZd70qYo9PJcwuVVxCHjPia1vI6jydbqQyZZlcacFBkenwo8Px" + |
| "6mnLUM7qj1+q78/wNqu/bUMWzBAi+OTR2DHsjjcV6JflwTb1iD" + |
| "+IQDr9YV6o2zgUsicx2EqFUAixyDZqNaYooRUR/PJTzte7+UH1" + |
| "R0RnO81vOn0tncZreZWrDAA59nyLjva1S0Yrv1FmZyNFmhOXiO" + |
| "rUIrxNZnI32S2eKzfO/4dLX4fV/zG3671vVUOltzS3MLtuijhy" + |
| "1m0CdlSQ+rNF50HL/LryIOjqMxl1MhxwDt7AYrzkdM4+djJi45" + |
| "D9Hnf/SgVqk="); |
| |
| byte[] buffer = new byte[uncompressedBytes]; |
| Inflater inflater = new Inflater(); |
| inflater.setInput(decoded, 0, compressedBytes); |
| inflater.inflate(buffer); |
| inflater.end(); |
| |
| value10 = new int[rows][cols]; |
| for (int index = 0; index < uncompressedBytes-1; index += 4) |
| { |
| int byte1 = 0x000000FF & (int)buffer[index + 0]; |
| int byte2 = 0x000000FF & (int)buffer[index + 1]; |
| int byte3 = 0x000000FF & (int)buffer[index + 2]; |
| int byte4 = 0x000000FF & (int)buffer[index + 3]; |
| |
| int element = index / 4; |
| int row = element / cols; |
| int col = element % cols; |
| value10[row][col] = byte1 << 24 | byte2 << 16 | byte3 << 8 | byte4; |
| } |
| } |
| catch (Exception e) |
| { |
| throw new Error(e); |
| } |
| } |
| |
| protected static int[][] value11 = null; |
| |
| protected static void value11Init() |
| { |
| try |
| { |
| final int rows = 65; |
| final int cols = 74; |
| final int compressedBytes = 2234; |
| final int uncompressedBytes = 19241; |
| |
| byte[] decoded = new byte[compressedBytes]; |
| base64Decode(decoded, |
| "eNrlW01sFVUUHgIh0MToiiZsWNDEVUNIS4Ir3rszrzGhOxeIJt" + |
| "g2atzAxpRIiMbyqC1vw96QkBjFBVQrPyZigiQkSmNbURTixh2h" + |
| "7todJMY4c8+cd777M8P0vXljq3PDmXvO+c53vnuZ9950XhsdjA" + |
| "4GQaRtciSzZIS7w93RwdYg5ygqeZ/PDC5fECRsdhWjsa/Lybgs" + |
| "FZhj63YzOwXtA9mwF66JzlM/xP++n/p66qep7+LZnqDQMfWbtr" + |
| "e8uV+cyB11P+jimLqZm12yI/5uU7e90eWCGjL2SbXK3KcgqHSf" + |
| "WuXvk3mcmTX6fROUdHTHtN5qP74bDeqQOiSWZuQl89YBRJh517" + |
| "dZeaazPzMS2cwKuwdi/CpYp6nH102vZtjURp7bz+s3VCOepZZm" + |
| "5JEvOTxjjfjQvcEeZxufMxLZzAq7B2L8KmyFbN1uos/s7Ovn8/" + |
| "Nfd886mpNFkY0vggqPXnSr5vOu8VWV7+P+bmV+3s0836N9elDp" + |
| "Pj0oe5/UMXVMLM3Ii+4nFhFmPrHNSfRtVp4Jj8li67B7IMavwl" + |
| "bINtFu8ok+s7Ovn893dvfv9p3qr8GmPcrXHh2ODrNlP409oJgg" + |
| "5MyjOYkeM7h8yIxshPZnxctXYa5BtLt5XLGs31izpRT8sWgsnm" + |
| "mrY2M04tlDiglCzoAyPMK7fMiMbIT2Z8XLV4G5tn3oy0sn2Kcx" + |
| "Y82WUvAnool4pq2OTdAIgtYhiglCzoIyPcK7fMiMbIT2Z8XLV4" + |
| "E5trPP+fLSCfZpAtdsKwV/PBqPZ9rq2DiNIKi/RDFByFlQpkd4" + |
| "lw+ZkY3Q/qx4+SowxzbR7ualE+zTOK7ZVgr+aDQaz7TVsVEaNO" + |
| "cIxyXv85nB5UNmZOMevqx4+Sowx/bcUV9eOvEutWrIhr3MfYhG" + |
| "R7aNbAsCssmRzNhjywg5C8r0uMrmixU13CrpgTw257NUYI7tzI" + |
| "AvL53kekI27GXuw8i2cDmM77PIJkcy02MwHsutEc61o8s4AK+z" + |
| "KcMgZ6Fu0K2ivNXX4iRE84RZ52qw7KAvL51kn3BNjDHZU38pjO" + |
| "9myerYUjoG4rHEkXZ8oJ1fMuJpNsUPcBbqBtwqylt9LU5GmHWu" + |
| "BssO+PLSCfYJ1oS9JGZXpPeZe3pz56f6qrzP7H238GZnOTdr+q" + |
| "pSzaqQ4o34vEDtqPS5745eP/ft5nXX2NtZrgfPn/aWi6vueqr2" + |
| "e4T67SLX0/TWBNft9y0lv+662Cl1Z92vuzvFXnczL260far4er" + |
| "pWbJ8S3Mbap/C1KvfJ381zPR3o9T6ltbcK4qq+nm4UvJ5udPAN" + |
| "5wea63zqNWeizfL08sPdzlrer+77lvq9Tfz+dK/X909n5jpfTe" + |
| "vIRrnCZl/pdQfZp/qPm/d7hPK1RzujnWzZJ6/+B8UEIWdBmR7h" + |
| "XT5kRjZC+7Pi5asw1yDa3TyuWNaPa7aVYu9q7gtar1f5/nTuhb" + |
| "Lfn6Lt0XbXp5htGUlzjstMncxixThXI7vbmUeWWsaaWtr34ydN" + |
| "7ag+eyeyYlpJX9QXz7TVsT4aNOcIxyXv89VprrL5kBnZuIcvK1" + |
| "6+CsyxVad9eekEO9GHa7aVih8+Ch8Zd7KxP3uEYrZlpBknhsTW" + |
| "LiGL90kRoG0EZwSXhXH1oKLkqF2yNWI24ynWo6wY1bvvT7NHO3" + |
| "t/qv2+Ue6fWEl570/hSrjCln322DJCzoJCT53iKpsPmZGNe/iy" + |
| "4uWrMNdAVp3y5XHFsn5cs60U/Mfh43imrY49pkFzjnBc8j6/do" + |
| "WrbD5kRjbu4cuKl68Cc2xrV3x56QT79BjXbCvF3tb19WW2b+ds" + |
| "pHrv37mrdHWVryS8Hl5nyz57nHHPgkKvdtmucmdmFaGzsojIVm" + |
| "GugWztsi+PK5b1u2pMdrsirZvP9u1cfmWF15PTub614M83W9fx" + |
| "WfJffJ65peDzpy2FP++uhdfYss8eZ9yzoEzPrpJZ7S9fFaGxr8" + |
| "spPH4V5hqyupmdcP2uGntNZkW65z36Prj1RqXPVd4p/XnBvmgf" + |
| "ndHnmFqROWLQ2gzICp9AK4j2VZmdeWA18jKW2UwutWJr5NXk7U" + |
| "T23sRjKBqKZ9rq2BCNuNfFaKj1Fuc4ynmfry4Sg8tHbHYVo7Gv" + |
| "zUmI5olsFaiQrdvN7AR7MYRrZk1Ynfr9Ub+xh9pP/qkLlBHLSD" + |
| "PODFG/umCyGNfTBURLla8z57Mwrh5URN1sjZjNuJ76s2JJfbgY" + |
| "LsbvVNrq96xFGjRP/g5IEHIWlOlRlaBlpr51qxiNfV1O4fGrwB" + |
| "xbt1tiz3wmTO338UVcM2q21rAQLsQzbXVsgQbN9T61EXIWlOlR" + |
| "laBlpm66VYzGvi6n8PhVYI6t2y2x6T61lZpqzV7mPsRjNVyNZ9" + |
| "rq2CqNuFeTYoKQs6DQU03Cu3zIjGyE9mfFy1eBObaJdjcvnWCf" + |
| "VnHNtlLw18K1eKatjq3RiF+VNYoJQs48mpPoMYPLh8zIRmh/Vr" + |
| "x8FZhj2zruy0sn2Kc1XLOtVPz6cH04vi9NLc3IUy/X9d/1CcLM" + |
| "uz7c5w6zx1lBIptZYfdAjF+FrZBtot1Vamsjz+3n89f3c8v0px" + |
| "1/j/BulT+3zAwU+7ll+pNqfk+s+N8pqrud75K6e/btvPzZN8vs" + |
| "9r/6OXhXwZ+Dd3X/+yqtjzfvPk0fLbZPHx3v+PcL/uzR626hi9" + |
| "fdQu8rNso+heOVPrkrvVt9f32/WJqRRz4izHxim5Po26w8S+bh" + |
| "EUYim1lh90CMX4WtkK3bTfSZnX39fL7ziXq+R9fTq5VeT6V3q6" + |
| "3V1sTSjLxkrq4iIvElj3GaJWj97nCVGaROKqXK1mFmEcOMLsJd" + |
| "Q2LdbqIPOyc4xAqf7YdPw6fx/mur/yee0qC5muccRdU85xmFnp" + |
| "rnKptPzWMlRylv9rU5CcGMWQjbut14NbhWwgmW1Zjsqf8kfBLP" + |
| "tNWxJzRoruY4R1E1x3lGoafmuMrmU3NYyVHKm31tTkIwYxbCtm" + |
| "63xKbPC9raCCdYVmOypxX/ADMziGY="); |
| |
| byte[] buffer = new byte[uncompressedBytes]; |
| Inflater inflater = new Inflater(); |
| inflater.setInput(decoded, 0, compressedBytes); |
| inflater.inflate(buffer); |
| inflater.end(); |
| |
| value11 = new int[rows][cols]; |
| for (int index = 0; index < uncompressedBytes-1; index += 4) |
| { |
| int byte1 = 0x000000FF & (int)buffer[index + 0]; |
| int byte2 = 0x000000FF & (int)buffer[index + 1]; |
| int byte3 = 0x000000FF & (int)buffer[index + 2]; |
| int byte4 = 0x000000FF & (int)buffer[index + 3]; |
| |
| int element = index / 4; |
| int row = element / cols; |
| int col = element % cols; |
| value11[row][col] = byte1 << 24 | byte2 << 16 | byte3 << 8 | byte4; |
| } |
| } |
| catch (Exception e) |
| { |
| throw new Error(e); |
| } |
| } |
| |
| protected static int[][] value12 = null; |
| |
| protected static void value12Init() |
| { |
| try |
| { |
| final int rows = 65; |
| final int cols = 74; |
| final int compressedBytes = 2065; |
| final int uncompressedBytes = 19241; |
| |
| byte[] decoded = new byte[compressedBytes]; |
| base64Decode(decoded, |
| "eNrdW02IHFUQnltIRBRCAnpIEELYi9FjDjnMTM+QQw4ikqvgPX" + |
| "iRoJ7MZNZMdggoKP4k7kZiEn9CEn+jCGqiqCC6ohLwh8SIh1XQ" + |
| "S06CoM6btzVVX1W93p6dnmZjP17Nq6+++qq6t6en52drNdwO7q" + |
| "RV7+naDbs1biuXZ7fOwkhjQ5md957jdf/Y1I/Thunothfbi8Hy" + |
| "HOzNvM9hRrT8mFJGdoqnrVedoqSKWdxf/wXs1FfSalKJsRXPp/" + |
| "U2eqi96vPp+Uqfd+tLP5P2tfexjavoNe4MVjIwbn2tSivWQRXd" + |
| "h64hOX4XukOyoXfbqe4terae59fS1/HjN+51fO6vYrz+ydVWEM" + |
| "fpxA38end/ubxarbWltYUs+dFr3BExZvAjs9CLfKsnlaVaZPtR" + |
| "9vK7wH3g3m1c7jHvv9xn3ams3fl8MD/rXOh83fmoVutuHB3ru3" + |
| "PvHy4P7Ydu7FuDfDLZ+dF5Pzf6lTlP3N47F110sWAPcJw6Wwtm" + |
| "jXmc2h9UeZz8apMdJ5W1dUpXjNcqvT5Nodo451Pv/GrPp8aZSp" + |
| "93Z4qdT72z455PjWd5erGUl88tnpUf1xzZabpjGfHZeXX9WOMZ" + |
| "nl4s5eVzi2flxzVHdpruWEZ8dl7d/J6mdX3qX6ry+tTbNg3V5t" + |
| "9h0iAsrGZPxxgyMVPrEIo8ZEoU6/q99RalBuXJHtB62OAe+pTU" + |
| "IGa6so5kN4VJg7C4ijFkYqbWIRR5yJQo1rUc1sPe2LPWw7QG+e" + |
| "nKOlK/FiYNwuIqxpCJmVqHUOQhU6JY13JYD3tjz1oP0xrkpyvr" + |
| "SP3NMGkQFlcxhkzM1DqEIg+ZEsW6lsN62Bt71nqY1iA/XVlH6l" + |
| "fDpEFYXMUYMjFT6xCKPGRKFOtaDuthb+xZ62Fag/x0ZR2p/xIm" + |
| "DcLiKsaQiZlah1DkIVOiWNdyWA97Y89aD9Ma5KcrY6Sa93f9T6" + |
| "u8H/fvCyZ9f9f8J0wahMVVjCETM7UOochDpkSxrt8balCe7AGt" + |
| "h2kN8tOVvUh2D09GNMa4XWsknWVzwsiLE4v5rOhlcu9obVfpun" + |
| "4s28uTEb3SHkaKZumteyzbmxePMcmRnXqZlDFUPypZuqt0XRur" + |
| "/xwmDcLiKsaQiZlah1DkIVOiWNdyWA97Y89aD9Ma5KcrY6Si6/" + |
| "gXk1zHu4+uhet445EwaRAWVzGGTMzUOoQiD5kSxbp+b6hBebIH" + |
| "tB6mNchPV9aRrBkmDcLiKsZGf9fj0sP1IPqi5GMMPVkD61oO62" + |
| "Fv7FnrYVqD/HRlHan/HiYNwuIqxpCJmVqHUOQhU6JY13JYD3tj" + |
| "z1oP0xrkpyvrSOPhMGkQFlcxhkzM1DqEIg+ZEsW6lsN62Bt71n" + |
| "qY1iA/XVlHst1h0iAsrmJMs701I90DNmaZVAPrenrUCfbGnrUe" + |
| "pjXI7z6Wquz2vIfn8FrzZFxJjJneWiPpLJsTRl6cWMxnRS+Te0" + |
| "dru0rX9WPZvTwZGRyvhyTGuF1rJJ1lc8LIixOL+azoZVKGtrar" + |
| "dF0by3aGSYOwuIoxZGKm1iHUxkwnO2XlRLdCD3tjz1oP0xrkpy" + |
| "vrSP1KmDQIi6sYQyZmah1CkYdMiWJdy2E97I09az1Ma5Cfrqwj" + |
| "9d/CpEFYXMUYMjFT6xCKPGRKFOtaDuthb+xZ62Fag/x0ZS+S3c" + |
| "eTEb3SHkaKZtmcMPLixFp+jXlKduplUoa2tqt0XRvLdoVJg7C4" + |
| "ijFkYqbWIdTGTCe7ZOVEt0IPe2PPWg/TGuSnK6ciw3eFy++Ds0" + |
| "3ZplptrrTfigW16ja/2sFTE37PeT1MGoSF1ezpGEMmZmodQpGH" + |
| "TIliXb+33mWpQXmyB7QeNvye87rOyqusI+2jYdIgjNAYl0zM1D" + |
| "qEIg+ZuoYfl71JDexKViPrYVQJs/IqpyJha52wq8m3SbXGzW9N" + |
| "/belrZeWH8/RqkzVqvLL7D1R4aRdlalaTX6ZvYvP184O7Rvy9W" + |
| "4Ue3VoX19+NVS/4OjuV/7L3VdG63e750avor+6dd/qnhnYtxVq" + |
| "vqtrXurk/h78wO2DrPNC4UJT/Iqom/MbxP6Kn/l23+m+l3dfUO" + |
| "528MHmkYn+kh+P+Qp+pPTn2Xxrniz5YWSbs82t+dnTksGPNNAn" + |
| "Bas3uKPZbLOILetazTD7X6a7wH1IVQs23j9xb7JbrmX3CTOmeT" + |
| "4NXmXPV3mfWX613pI6Tk+M9XzYX5Q5d1eVx6n1Xfmaqe/v+t87" + |
| "R/XPUdaa/n+Ewze7vIsamf1jrf3OvtqtfaRcXt751NyYm7Wmzy" + |
| "e/9+mcT/0fyrwvqPZ8mntgWsqNazy9WMrL5xbPyo9rjuw03bGM" + |
| "+Oy8uhhrz7fnyZJPHlli8COz0KMsrTc4O3+0WVxD6mjNlbrAfY" + |
| "i2t82Lyz3m/Zf7zLXwOLST90/Z9my7/ZwuYDmfjm1PsaLaBPfj" + |
| "Yz5v/Wr+53TFOmsvtBfIkh9GtiPbETFmBJTicTA/RiM/sqReVN" + |
| "NZMY51tSYxMM/2gNZWw0py/5krazGmM9T5NJPNhM8z1bGfyf0r" + |
| "zqRYUW31W//KmOfTzBjnU8HOqvmdWHPdJMfp0J4x7wvWFbsvGK" + |
| "Krui84tPf/cJ95+JaCvFtXfUe3MKX7jn+rPE5Fqx1e9bdA/4/3" + |
| "Lf2rpb+z3t3aTZb86DW+iRgz+JFZ6EU+6832OMK82cclinWt5k" + |
| "pd4D5w7zYu95j3X+6z7lT4S62lwWpoh9hSHINaP0WMGfzILPQi" + |
| "n/UGx2kUYd7gOAkU61rNlbqQMbKhdxvnSuI4Lcl91p2K2v8Bo/" + |
| "ExmQ=="); |
| |
| byte[] buffer = new byte[uncompressedBytes]; |
| Inflater inflater = new Inflater(); |
| inflater.setInput(decoded, 0, compressedBytes); |
| inflater.inflate(buffer); |
| inflater.end(); |
| |
| value12 = new int[rows][cols]; |
| for (int index = 0; index < uncompressedBytes-1; index += 4) |
| { |
| int byte1 = 0x000000FF & (int)buffer[index + 0]; |
| int byte2 = 0x000000FF & (int)buffer[index + 1]; |
| int byte3 = 0x000000FF & (int)buffer[index + 2]; |
| int byte4 = 0x000000FF & (int)buffer[index + 3]; |
| |
| int element = index / 4; |
| int row = element / cols; |
| int col = element % cols; |
| value12[row][col] = byte1 << 24 | byte2 << 16 | byte3 << 8 | byte4; |
| } |
| } |
| catch (Exception e) |
| { |
| throw new Error(e); |
| } |
| } |
| |
| protected static int[][] value13 = null; |
| |
| protected static void value13Init() |
| { |
| try |
| { |
| final int rows = 65; |
| final int cols = 74; |
| final int compressedBytes = 1668; |
| final int uncompressedBytes = 19241; |
| |
| byte[] decoded = new byte[compressedBytes]; |
| base64Decode(decoded, |
| "eNrlG11oHEV4wZeCVFt/sKaJVzUQaIWGoAG1PuztHai1VSkEob" + |
| "nQQqOhUKEPffIlezvXnDmoIIivpajxB61FG6XUVgwxL6aFFKFC" + |
| "3vrgD77pQ0QI7u7c3PfNzsxm9nZ2cxtnudn5/r/5duabmb078h" + |
| "jZQXZafiGDQe2WrHaxf7E6hTxM7/UdHcxuS1LIPaGOlbB9P3mA" + |
| "4es7rZhCHiGPWrHF2xXy7ZLIPu5r3+7fH0S4Ac73e8P6vojcQ6" + |
| "SPttwbsb71k5IMj+L0k5WwzP4mWJmR2m5YGZfkvict7jvdy87+" + |
| "bvVIaR7JL07ld/2e30wiG0goad/lGSfz1irjlXFWM5hBrGYccA" + |
| "cuDNknmVRUH9aMtTEbMipA/vP6Q+0F3wda2ydldNxj6D/uc9RT" + |
| "BE9UJvxWWIe4CXr5z+Q8xQEH3IELQ+XzlF/UR7VFpRg3thvVyT" + |
| "jUXmAaq0VrvCUUpwncZ7AFuDZcq9T8VliHuBq9aJthGB7o9PLO" + |
| "YIhpEPVhzVgbsyGjAhTvBaaxevYvGR0soTjVcJ+jnmLb1XWU//" + |
| "ZX1wOY4qrrQX5ibeAETFDzWFZ4yH/CVxk3luYlAEf5MEbkAR3T" + |
| "fXJrvI+ixY0LyJMx8iK3Zr/SsUUSZ0+lBEm5/pCDpjzp2gM/Tu" + |
| "QweV6Mk07xznC6XlLHqbyUYvVaio8TeVmU0Oz9oXziFBmlJXWc" + |
| "1LT040mMk641fa+qfdU+qGmLQhTGHJgug5lGJsOkg7ZzXZQCG1" + |
| "hPVOdGXkT7ILfGW+rsjNdkfZDBwk722e7nXVxxTuS5z8zCmuvP" + |
| "ZfdHd9696V7nzndPxEr9HNbXpLQV1mq81sYsYHpjLLGPV2Kpy8" + |
| "L5Tuq7+70Ue6ObqNU/z2g8jeU6njKzZv8KHxlNBcXz6kvF06M8" + |
| "2FO1x5gi546zy9NsYhOoaYtCQbt8CXMEMNAxnrYC7nBVvsQ0gB" + |
| "xIghTnlUDFPEyjyCH2IahFa+AfthzwYV7QJ+pX5qc9YowbHxQk" + |
| "P+3Ry0+NC/r5SRWnloE4dTALKdeahHFqlfTidPZU+jhtINXTcb" + |
| "Kf04tTwNflene0o6NmFbZk4btqPDWP9c54Onsw2XhqHs9i/+SF" + |
| "eyYvXA1Qfgq/A/E+Cesv2zr/3UDTnPdxp/2N90XHlztS7q+8z/" + |
| "z66whWMsfctTir0/6pwruINMzj/OR9muYJeZe9b6Vv4F+3tkCx" + |
| "j5vlk8Tpja0Qp6bmO7nWYOIn8B58ZDQVFM+rLxVPj/JgT9UeY4" + |
| "qcO85ulKbcP+0v7r5gZkEvj5M/dfN481REV+f7u9Zwcefd7EDW" + |
| "FmA8VY8UN07Z+47idLjAccrAd3dJHqfu3z+J+SltIX/HUv8R1r" + |
| "EnNfPTWrfnFhNx2vzSeioLreW54MMuhmNYSsecvGRUD8NiXtCL" + |
| "pcAGT5f5hnXwXoE1qGU4ZomXirPMU5T7Aru4+4LmdtP7AsHCW7" + |
| "047+qnE867p/N7X2AfKPD7pwNZj6fylNgykAGn8pU36btijb1M" + |
| "706/029Zb18wpTfQll+RW6t/aHAWts8tzoDj7/3JR8Y8T3WSaD" + |
| "1jwprJODXr3PidNzbz5vOUlvOb642fAX/YHFmzRdeT7j2GX501" + |
| "G1ZByrTwa5LqOc3entO1URmtjLKawcHlDDvDldEgjwNHgGV0eg" + |
| "E/pVINlAvro9qiUpTO243qpBzem7yc6ANfi9aCmuYn8A17C7ai" + |
| "2qMS7Vz3ajsTDjlDkvw4FJs9h1Rccm0ZrndD2fCK52BnxBkR17" + |
| "sAF2NxRMVFtaVY7yoJ4zSiv97peqbaj5ePmtyPx2szvR+XW0v3" + |
| "/d1W/N68+X5+cbJXCny+WzEfp8hsvSq2jLw5O2RlVkRPmxmc75" + |
| "TjabXA42k16/GE4nRLMipeSHiq3qz/Kd7KbzyZzePlxRSnu8XE" + |
| "692i3nhqzhnI48sFnnfLenFK9p6uvBp82MVwDEvpmJOXjOphWM" + |
| "wLerEU2ODpMt+wDt4rsAa1DMcs8VJxlnmKcjzdLvB4ul3UfWZr" + |
| "PM84zQwWNk4nejFOSfKTct5tK/C826YTp8Zd+uPJmXQmWc1gBj" + |
| "mT5TsM4u/AxUNUCrihxTTxUpQb2xV1grTcC74PKmu0N9Bj6L/o" + |
| "TbRP9K76HYZ998ZR7tXfYch9l+yfLhqYd/s0ZK9p2sh73u3Tz+" + |
| "Opz3d7JeeWqWRx2rT/t+zNMU6lAo+nUn5xMrsvcGp5xkluTZKf" + |
| "rvzP/wdk68Up4NOM039Lau5P"); |
| |
| byte[] buffer = new byte[uncompressedBytes]; |
| Inflater inflater = new Inflater(); |
| inflater.setInput(decoded, 0, compressedBytes); |
| inflater.inflate(buffer); |
| inflater.end(); |
| |
| value13 = new int[rows][cols]; |
| for (int index = 0; index < uncompressedBytes-1; index += 4) |
| { |
| int byte1 = 0x000000FF & (int)buffer[index + 0]; |
| int byte2 = 0x000000FF & (int)buffer[index + 1]; |
| int byte3 = 0x000000FF & (int)buffer[index + 2]; |
| int byte4 = 0x000000FF & (int)buffer[index + 3]; |
| |
| int element = index / 4; |
| int row = element / cols; |
| int col = element % cols; |
| value13[row][col] = byte1 << 24 | byte2 << 16 | byte3 << 8 | byte4; |
| } |
| } |
| catch (Exception e) |
| { |
| throw new Error(e); |
| } |
| } |
| |
| protected static int[][] value14 = null; |
| |
| protected static void value14Init() |
| { |
| try |
| { |
| final int rows = 65; |
| final int cols = 74; |
| final int compressedBytes = 2178; |
| final int uncompressedBytes = 19241; |
| |
| byte[] decoded = new byte[compressedBytes]; |
| base64Decode(decoded, |
| "eNrdXE2MFFUQnnjZw0KilyUmyiZChN3ExGU5eOHQ/XowxIuJif" + |
| "HAxaMhO55gL/Izszv7Q+PvHrx4QvCg0Q2uECRRQRNNSNSECDGA" + |
| "m4gGsokhYQ8c8GK/rqmpqvdqemaY7mHHednq+v3qe297errfLJ" + |
| "RK8lUd5VZ4q5TTqzekbqv1/N44VH9Kfn6snqv+Wv2Or1P8RmbV" + |
| "1VR+q8aueJ4felvl6oXM6M+uZ2GzmnfR9cz+k3h/6W2dym/1vk" + |
| "7xkUezTjp3f51Sb4/r1Kaqy/MprvVznea3538+ZV6flp13+HLm" + |
| "VWG5VVa4nF3Z9nqznEe+xqtz7JbXp4U8z6e5ocG+PpkT5gRKtN" + |
| "FCiRl0pCxpYRXHAC2u+1XUg+O4mO1YyDmAnN+uxfmMaf58zpyz" + |
| "M4f75n6ipTL13YcBenjeSvLzuG+z7g5ecnafp2w6ygq3B+XYar" + |
| "+eeEo+mO8ytbPh3MDy5+D2T7W75m6ipTL13YUBOpeUyWvcbELh" + |
| "eAnzK1gpq3iF24PnyDoZd/lo3Yif7OzOSXIhO9oT7SmVQNqX1d" + |
| "BCiRl0xDFzkFuI4ONxZI6GPbQoWdkseAxlPKfFqROtE0fjveQ6" + |
| "8Ipaeq9TfbdhzSxcLg3sq3a46A7VF7vJnjm4Mdcpni9gZfpzn3" + |
| "l8I95n5nE/Hvw2uM93OveN8twSv71hnoNfyXudgkPBIZKg2WEm" + |
| "zIS1eYb1Ylz6QTMTjc/aCfBgNaLJWszgeRKT58g6GXf5IAOXKU" + |
| "ciXJ5LeD5+n65P7/TzfFp8vLPzqT7ysM/B0SauhXdy26e7089q" + |
| "Pb83Dv05n6In+nk+6d16uT5FQ9GQb4MvGgpvk44a6ugnrTVq8r" + |
| "u8zbO1KtkZB6/muJgruVA37kFkRGm1Eq18KZPhaDjRUpn6hmGA" + |
| "jh70UxxG8tzCLETw8ZLPwvd5ntuD48oe7VnwGMr4PS1OndhKDP" + |
| "M5Uy+5DtGwWTNryedDKtPPqjUYoKMH/RTXbETw8ZLjJb+KenAc" + |
| "F7MdCx5ryktanDo172Q+4Gi8l1wHqmg+Gb3QvAe5kedzi7nYz+" + |
| "eW/LuZs+YsSrTRwoh/pCxpuVWkxR9qVZDN+/qYhKOzkHMAOb9d" + |
| "i/MZ0/x9Nu6cZEWj7oy4+q5w25wJVzJWvBn1s8KVrMoOPuczqy" + |
| "Xn1vkar3bYrV4Lfza1W3met/FH/Xzf6c/Beb4W/mpqf+d5fYpX" + |
| "+rlO8Ze5X58um8so0QYrGAMfZdCRsqQF+ZTtaxINsvUoWdks5B" + |
| "yIux/nM6b58zm7TJm9btYTLZWpbx1G8js5CT7KoCNlSQvyfTyO" + |
| "zNEgW4+Slc2Cx1AubNbi1Imt0zqfs8uU7GBXsCtZ/4YEDaz4Yy" + |
| "spxo+8hmz2FL4LLYxSJkeTFW4PnqOzcBmijEddPOInO2v9NDvj" + |
| "e85Tg7tPF4929nw3N5XDfuZ+P7d+akD2M/d3uK9ystN1qjqfDN" + |
| "Uvmr+TTr93f+hPsurnXVd0yOn404XfF/xbzPct8dm+3hd8VXSH" + |
| "+usFMT/3/7rPXCwVdD593dfz6Xzh6/RYQcwvDPb5ZB6YByjRTs" + |
| "eWZDxYPMkz6IhD2ojg4yXHLX4VZou+HibmtWIh59Cqm5W104RE" + |
| "8yc03ovPSVY0rk8FfRMefzPY51N5qjxFEjQ7zJgZK0/Z84kyrB" + |
| "fj0g+aGWv8jsbAg/iIJmsxg+dJTMqZqcg6GXf5IAOXKZxPsjOf" + |
| "E8fz7Eq5kmgNCRpYwVUrKcaPvIZs1r0C1uw8RimzXJmtk5dXuD" + |
| "14js7CZYjScveZSm5o+f00OxqNkjtwkOme+SiMpNd18FEGHSlL" + |
| "WpDv43FkjgbZepSsbBY8htJy9+PUiX2PMMrn7DJl9mq0mmipTH" + |
| "2rMEBHD/oprtnBAaxy8TgyR8MeWpSsbBY8hjI4oMWpE1unVT5n" + |
| "lymzp6PpREtl6puGATp60E9xzQ4rWOXicWSOhj20KFnZLHgMZV" + |
| "jR4tSJrdM0n7PLlNlL0VKipTL1LcFIfic7wUcZdKQsaUE+4dVf" + |
| "owjl1V/lXtnXx2zHgsdQWu5+nDqxdVric3aZkh1uC7cl69+QoI" + |
| "EFNsX4kdeQzfbnE09wFDXCkShiR9+LUo5F0lm4DFEGR1084ic7" + |
| "a/0023siH83rjiM4/OiQgtz/PjPcF+4jCRpY0e9W8gwZ920XFT" + |
| "XCkSguD7cHz9FZuAxRWu4+U5cbWH4/zc7Yp7umPP09OSD7dNc6" + |
| "26dLvb3uZ+5Q1umpAVmnHXmvUzgSjpAEzQ6z1WwNR+xzC2XwuP" + |
| "RjtURFzeoWTdbyfMLhmDxHZwFxl4/WzUp4bpGdtX6a3dt1vIv9" + |
| "pxulPr7i67nvNznrUv+soHX6Q9k7/bSwdbqZ+35BUA5IgmaHmT" + |
| "ST5SDdLwjIb30wpB80M9nYL5gED+IjmqzFDJ4nMSlnpiLrZNzl" + |
| "gwxcpo39AtGZz4nj+fjO+fVMY67jZlzZ1RvP3PMbb5WloxX36q" + |
| "ZbZ7nu91KLzza1nZ297zr7Xsp8r7znu95N6/R7Ka1bzt+3NK9P" + |
| "5ZcL71XY9Sl/7uW95b0kQQMrum4lz5Bx33ZRUSMcieLycHvwHJ" + |
| "2FyxCl5e4zdbmB5fdT7Vq5lmgNCRpY0c1y+m/pKUPGfZt1r6GF" + |
| "UcrkaLLC7cFzdBYuQ5SWu8/U5QaW30+z8/w7+/DNou7H517q7n" + |
| "4cmeR3Px7di+6hRNsOs9vsBh9lWC/GYVA+RCEfsjgeoLlVEJd9" + |
| "XUzMkHU+Byn9brITnz/l8l7kowqzyf7gaHxipNrsJxBrfo4IS+" + |
| "oUBa/Mk5ncK/v6OfZn8TmOgXWcg5Sar1SqneYYmNm6s4wU9e9b" + |
| "gmN5ve+CY10/Bx/r7H3X3f8bEp62PzjQBxrEZKasdHHQK/O0Kv" + |
| "DKvjo3iYF1HE1KzYedZFVW51aR9N7v+dx2IY88OqT8ejdf/wEF" + |
| "smTa"); |
| |
| byte[] buffer = new byte[uncompressedBytes]; |
| Inflater inflater = new Inflater(); |
| inflater.setInput(decoded, 0, compressedBytes); |
| inflater.inflate(buffer); |
| inflater.end(); |
| |
| value14 = new int[rows][cols]; |
| for (int index = 0; index < uncompressedBytes-1; index += 4) |
| { |
| int byte1 = 0x000000FF & (int)buffer[index + 0]; |
| int byte2 = 0x000000FF & (int)buffer[index + 1]; |
| int byte3 = 0x000000FF & (int)buffer[index + 2]; |
| int byte4 = 0x000000FF & (int)buffer[index + 3]; |
| |
| int element = index / 4; |
| int row = element / cols; |
| int col = element % cols; |
| value14[row][col] = byte1 << 24 | byte2 << 16 | byte3 << 8 | byte4; |
| } |
| } |
| catch (Exception e) |
| { |
| throw new Error(e); |
| } |
| } |
| |
| protected static int[][] value15 = null; |
| |
| protected static void value15Init() |
| { |
| try |
| { |
| final int rows = 65; |
| final int cols = 74; |
| final int compressedBytes = 1931; |
| final int uncompressedBytes = 19241; |
| |
| byte[] decoded = new byte[compressedBytes]; |
| base64Decode(decoded, |
| "eNrtWz1vHFUUHbHUIIEEIiki0aUgBUIoVODJbIRAcpAxtFF+AK" + |
| "EAU1gUO8my0aaAwkUKLNwAHUJyQUEB4UMYRICQQPiIEF/BQlEK" + |
| "RElBmJ271+fcO3eGXduJE3tntHfeuR/n3Pf8dnd2bSdJvpIk+S" + |
| "f5O/lX+ftJ0r8/GR7ZD0nDkX9b2vfC2LmK56NkQ0f+bmP0C++J" + |
| "e89Ph94vR+3iQGvw0FN9g1H3TYnZTFvpedRr82wme61u3Fv/Ae" + |
| "bQOu7B2siXJMfeYA7NrFe2Ebuf8j3qb89u5n7qP3g991Pce3U/" + |
| "da+Mvp/q1im7eBM/7y5u/jolSfrX4KGn+gaj/kMSs5m20vOo1+" + |
| "bZTPZa3bi340eZQ+u4B2sj3+B5xxyaWa9cFynXHPvpp+SmPa5N" + |
| "7+1XBw891adeiXOmrfQ86rV5NtNrxHHujTlsV6ymNvKpkq1qUr" + |
| "aRuten/3nFuKFfn2ryNnBfcLB1sKVWsSK1moErsizSKs/HzMym" + |
| "GlEUqLkLO4c6NavE8+c5+1rgbClbKp7PpS2f2Utyylg96kc8ws" + |
| "pQ5WNmZlONKArU3AXHoBzFoUSvZEs8Z19LeDFbLEalLX2LcspY" + |
| "PepHPMLKUOVjZmZTjSgK1NwFx6AcxaFE67TIc/a1rG0PfG7ZzO" + |
| "PY0Y3VH/9w699Dd/Lr+Hj3mfH90420n7b+SM+kZ9QqVqRWM3BF" + |
| "lkVa5fmYmdlUI4oCNXdh51CnZpV4/jxnX8va12M/bZ9j6mc8ol" + |
| "gdas4dvao57nO40/qOORJnN+naWHupvaRWsSK1moErsizSKs/H" + |
| "zMymGlEUqLkLO4c6NavE8+c5+1rWnjzvRjl6j4xzX9B7eKd+vu" + |
| "sfGmed+tM7dZ0qVa817qf2Tn3etRfaC7AyEiSYM2y8ij2rjsBj" + |
| "WXwfXoNz4i58h1D2fOjPKkd6Ec6Ws+Xik15py898y3LKWD3qRz" + |
| "zCylDlY2ZmU40oCtTcBcegHMWhRJ+Dl3nOvpa1b4bPd73Ht/71" + |
| "abJOI32+O5wehpWRIMGcYeNV7Fl1BB7L4vvwGpwTd+E7hLLnQ3" + |
| "9WOdKLcOUn99TknnKkHT5Zp/i+4GT7JKyMBAnmDBuvYs+qI/BY" + |
| "Ft+H1+CcuAvfIZQ9H/qzypFehLPVbLV45ytt+R64KqeM1aN+xC" + |
| "OsDFU+ZmY21YiiQM1dcAzKURxKdF+wynP2taw9+d53lNrsUnZJ" + |
| "rWJFajUDV2RZpFWej5mZTTWiKFBzF3YOdWpWiefPc/a1hFuZ+S" + |
| "sfweLzVjNlrH6MPEvwU2kpf7XKKutZrecefC+cyZa7r90xrTrf" + |
| "oD7dl+4r7hCGVkaCBCPGV64BpruSfYqYzdZyfhS1OXEXvkMoez" + |
| "70Z5UjvQhn89l8sWKlLdduXk4Zq0f9iEdYGap8zMxsqhFFgZq7" + |
| "4BiUoziUaMfM85x9LXA6k84UKza0MhIkGDG+cg0w/ZRmFDGbre" + |
| "X8KGpz4i58h1D2fOjPKkd6Ec7msrlixUpbrt2cnDJWj/oRj7Ay" + |
| "VPmYmdlUI4oCNXfBMShHcSjRfprjOfta1nbvna+srfTC2L8LXN" + |
| "jOd+Rjfe97z3rvn6b+vZ73T7Ha9v9e5VrdZ/afnazTKOvUe2a9" + |
| "v0dI76uOxq/d6mPzO2mfap+ClZEgwZxh41XsWXUEHsvi+/AanB" + |
| "N34TuEsudDf1Y50otwuivdVaz/0MpIkGDE+Mo1wPTz3KWI2Wwt" + |
| "50dRmxN34TuEsudDf1Y50ovwgcsHLieJ2MExGClSqxm4Issirf" + |
| "J8zMxsqhFFgZq74BiUoziUsE7Mxlp2HQbX9lWz/68OsPi81Uzr" + |
| "t17whM/yq5pfjYNJ89hTzWEOn5fN2k65+7Felai+Y96L8j2ds4" + |
| "XvwmDc+b60P5b29+JddHhX2vm7fE99rhz/k+t77POG585It/NL" + |
| "57fOr+Xoz8q7USu/dW18e35XfnfndOcDV3+uc57Q2n8ddC7X3O" + |
| "+9UEZXOmcK+/U63mdvKe1t+R3pdDpdPAOHVkaCBCPGV64Bpmf9" + |
| "tCJms7WcH0VtTtyF7xDKng/9WeVIL8R7073FaGhlJEgwYnzlGm" + |
| "BS36uI2Wwt50dRmxN34TuEsudDf1Y50otw9+nuY93p7qNr34Q+" + |
| "sYF7jHvrIt0n62OjHN3G33N2D43eyfryiszd7d2wMhIkmDM4Hm" + |
| "Fl1BqtBo+tgkYUBWruws8hVrNKPP/qHCKcHkmPFDtraGUkSDBi" + |
| "fOUaYNrNRxQxm63l/Chqc+IufIdQ9nzozypHeiHen+4vRkMrI0" + |
| "GCEeMr1wCT+n5FzGZrOT+K2py4C98hlD0f+rPKkV6IZ9PiXkOt" + |
| "jAQJRoyvXANM6rOKmM3WpuZ/eKtRmxN34TuEsudDf1Y50ovw2j" + |
| "c2V/CAx4+qyEfqctlfZZi6Us8KZsumKKoUX6Tp+2uaTcj8Bx5R" + |
| "rA41545e1Rz3OdxpfcccibObdG2s/+Lk/znH6WRqFY8oVoeac0" + |
| "evao77HO60vmOOxNlNuj42zn566fWd+n1m77veSu9jXafeN73P" + |
| "Nv7dX+9CxfP5Bhk/bYyeWyfr2dKe3/zvx0+8vb3204m3Jvtpc/" + |
| "fTdlin/suTdbpR1in5D4fiPBY="); |
| |
| byte[] buffer = new byte[uncompressedBytes]; |
| Inflater inflater = new Inflater(); |
| inflater.setInput(decoded, 0, compressedBytes); |
| inflater.inflate(buffer); |
| inflater.end(); |
| |
| value15 = new int[rows][cols]; |
| for (int index = 0; index < uncompressedBytes-1; index += 4) |
| { |
| int byte1 = 0x000000FF & (int)buffer[index + 0]; |
| int byte2 = 0x000000FF & (int)buffer[index + 1]; |
| int byte3 = 0x000000FF & (int)buffer[index + 2]; |
| int byte4 = 0x000000FF & (int)buffer[index + 3]; |
| |
| int element = index / 4; |
| int row = element / cols; |
| int col = element % cols; |
| value15[row][col] = byte1 << 24 | byte2 << 16 | byte3 << 8 | byte4; |
| } |
| } |
| catch (Exception e) |
| { |
| throw new Error(e); |
| } |
| } |
| |
| protected static int[][] value16 = null; |
| |
| protected static void value16Init() |
| { |
| try |
| { |
| final int rows = 65; |
| final int cols = 74; |
| final int compressedBytes = 1288; |
| final int uncompressedBytes = 19241; |
| |
| byte[] decoded = new byte[compressedBytes]; |
| base64Decode(decoded, |
| "eNrtWLGOHEUQXcnwHeQnhw6QfLLknbmIbzgJCTlwYIL9g11xSE" + |
| "eCReCQjOQyOyDgJEBCgghOQiJBOlkIEg6LX4DZ6Xt6r6qrm9ll" + |
| "99DhntFW9+uqeq+qr2e83tnMXievZnu4Tj+Z7fE6+WO29+vh6u" + |
| "GKNs0SSlgjrD/HnhUz8lgWX4fX0Ji4Cl8hlT0f67PKkV6E++f9" + |
| "89ks2fW1ngHBIoIjoyxCludTZmWDRuQlqlehPipHfipxn5RNte" + |
| "w+rMfld8Pn2+Xny4vlV8PsrWnncPnTaL8MfT9mK9/8u1P/4TvV" + |
| "Wr6fWPPX4eoP21S0em/Wril/uV/bHrR92t019f204dP8/m3fl/" + |
| "nV/AoWGAgWERwZZRGyPJ8yKxs0Ii9RvQrbQ0nNKmn/2rPPFXw5" + |
| "vxxmox3XLtOd5ljBOv0RBkPOp8zKBo3IS1SvQn1UjvxUkn261J" + |
| "59rmrfxHN3+6/+qr+CBQaCRQRHRlmELM+nzMoGjchLVK/C9lBS" + |
| "s0rav/bsc1Xbva8e57MdvAUf32z+LmsX1rP1BzfWsJr8GmkzPQ" + |
| "9WNZa8mkUN649qUw5bFdVoozUo2ayacskzvp8+bu+i6Oqedc9g" + |
| "gYHgyUdGWeSz8pnNStElr0aUq7A9lNSskvafV+N7shnt37uNzt" + |
| "dnZex99czNtbaN2lx5i3f4vfk92jRLKGGNsP4ce1bMyGNZfB1e" + |
| "Q2PiKnyFVPZ8rM8qR3oRvh2/Py2/+K9/f5o/mD+gTbOEEtYI68" + |
| "+xZ8WMPJbF1+E1NCauwldIZc/H+qxypBfhdp6mnaf+Uf8IFhgI" + |
| "FhEcGWURsjyfMisbNCIvUb0K20NJzSpp/9qzzyWeH8+Ph5N1bd" + |
| "MsoYTp01FziOU0HwMpm83V+MhrY+IqfIVU9nyszypHehFuz93E" + |
| "5+5J/wQWGAgWERwZZRGyPJ8yKxs0Ii9RvQrbQ0nNKmn/2rPPFb" + |
| "zoF8NstOPaIt1pjhWs0x9hMOR8yqxs0Ii8RPUq1EflyE8l2aeF" + |
| "9uxzibvhHr7Rjnb8brvoFkDw5COjLPJZ+cxmpeiSVyPKVaiPnU" + |
| "R+Ksl3+aAa31Ma2/tpYvZrvE8fvGr79M/7dHJn+nnqnnZPYYGB" + |
| "YBHBkVEWIUs57MyyQSPyEtWrsD2U1KyS9q89+1zVbu+n9tzdvn" + |
| "3q3r3JfYrV2nm6ifPUfh9v56k9d+25a89dO0+v4elq+xT/nnm/" + |
| "vw8LDASLCI6MsghZnk+ZlQ0akZeoXoXtoaRmlbR/7dnnCj7sD4" + |
| "fZaMe1w3SnOVawTn+EwZDzKbOyQSPyEtWrUB+VIz+VZJ8OtWef" + |
| "q9rtPb7Nv3enP7d9Cn9/etm9zHFa8xaRdh0Z6vWsyg6/j7DKuK" + |
| "lqq7X1aEVxjdYb11Zai7rpzitM51Wd802id3mVlfZXw+ptzE5/" + |
| "ad8GKn+bszLuzjbJ3Fxr26jNlXd6nn5rp6Z9H2/7tKf/t9zt76" + |
| "ZRsa7RMkatZ1DWSC0x5VlWGXdcLesBW16BrdF649rKezPcB/3B" + |
| "OD+49o1Y12gZo9YzkCWo5QD8eZZVxp3nswZ+ogpsjdYb1xZVW+" + |
| "pm9Xt7xqZcp3+2PWi/Z+7u/8FtnyY+d3+1J2zK9dEb/4su7kyM" + |
| "e3PrE/5pOyvl6+jF0QvM0qcUA4tYHUtZNroU5229wrwOrU9xmS" + |
| "lnIxPrNrkXRxdry09Q6XUMIxAXxzPLRpfivI3U4QWrzWJ9tqcS" + |
| "k2dTJq5dX38DhKLi4g=="); |
| |
| byte[] buffer = new byte[uncompressedBytes]; |
| Inflater inflater = new Inflater(); |
| inflater.setInput(decoded, 0, compressedBytes); |
| inflater.inflate(buffer); |
| inflater.end(); |
| |
| value16 = new int[rows][cols]; |
| for (int index = 0; index < uncompressedBytes-1; index += 4) |
| { |
| int byte1 = 0x000000FF & (int)buffer[index + 0]; |
| int byte2 = 0x000000FF & (int)buffer[index + 1]; |
| int byte3 = 0x000000FF & (int)buffer[index + 2]; |
| int byte4 = 0x000000FF & (int)buffer[index + 3]; |
| |
| int element = index / 4; |
| int row = element / cols; |
| int col = element % cols; |
| value16[row][col] = byte1 << 24 | byte2 << 16 | byte3 << 8 | byte4; |
| } |
| } |
| catch (Exception e) |
| { |
| throw new Error(e); |
| } |
| } |
| |
| protected static int[][] value17 = null; |
| |
| protected static void value17Init() |
| { |
| try |
| { |
| final int rows = 65; |
| final int cols = 74; |
| final int compressedBytes = 1460; |
| final int uncompressedBytes = 19241; |
| |
| byte[] decoded = new byte[compressedBytes]; |
| base64Decode(decoded, |
| "eNrtWTtvHGUUHQq7zj9IhWhRKpSKeGftgsJu+AVBSJFR4r+wwb" + |
| "HBkkVFS4GQqBCuKJB4SBAShHgovJpIaYKUggbxB9idm8M59353" + |
| "RmsnuzjLN6O9e899nHO/0czseDy+Mb7RNOPH1jxDhpnTb+0hbv" + |
| "7dwMA+Viqb74gaWpNPESekcuTjfF4508tw00zuTD/fTD6Z/Dj5" + |
| "YupdbAa2w4/hTX7t7OdZ1eReEfmqeaJt8ulg9vs5Wb4s1vPRNP" + |
| "rDnN31OM2xtVfbq7DAQLCo4DerPEJX5FNmZYNGliUansKvoU/N" + |
| "K+n6dc2xV/Buuzv1OtvFdm03HxHEmc8wGEo+ZVY2aGRZouEpNE" + |
| "flLE8lOU67uubYK3iv3Zt6ne1ie7abjwjizGcYDCWfMisbNLIs" + |
| "0fAUmqNylqeSHKc9XXPsJR5vjbemd/TH1jxDhpnTb+0hll+RLS" + |
| "Bl871an2V9TT5FnJDKkY/zeeVML8Onu4/LPXEl7uP7f87/e9c0" + |
| "L/8x+2BHzDzL+UrfGXkQ9XW+UqNeN5/Nc6BPZ/A2i0UO4H5ln1" + |
| "nO+XT0/LN/Pm38PftgR8w8y/lK3xl5EPV1vlKjXjefzXOgT2fw" + |
| "NotFDuB+5ZgZPTf7YEds5h29YDlf6TsjD6K+zldq1OuWNbPPm9" + |
| "eVA306g7dZzM9B3K/cl+nOzYtN3fquu79mH+yImWc5X+k7Iw+i" + |
| "vs5XatTr5rN5DvTpDN5mscgB3K/sM/W54EwT1evuKbwvOHrxvz" + |
| "ifNm6f9nzauD3f+fTWh4t5r3J0qV53i7zubl5/1q+68YPxA1rz" + |
| "DBnWCs1nGIzoQTd5fBc1sizR8BRxDbmaV9L1l2vIcLzu3r50Hn" + |
| "/vDl5ZzHXXRc90f6rHac6JXq1PAOn96XB8SGueIcNa4fMljqzw" + |
| "yONZ4hxRQ2vyKeKEVI58nM8rZ3oZLs7C9+q5kz7DXdi4QGueIc" + |
| "Na4fMljqzwyONZ4hxRQ2vyKeKEVI58nM8rZ3oZrufTIv5uqX8H" + |
| "17+Dh7f2UfsIFhgIFhX8ZpVH6Ip8yqxs0MiyRMNT+DX0qXklXb" + |
| "+uOfYSj+6P7ru3nR22WLSo9HF0aDayKjvyscIrY6cqa8p5dKJ8" + |
| "Rp/NZ+uLWf9p7k+3Plit+9Ot9xfzXmX/jRW7j+8u5jit2u/d2f" + |
| "++O5+/d/uvD2ZfO2/PT//n+1M9n+Z6j/L7wZ2Dr3E+Hfxy8O1T" + |
| "4PytiHz3hIx3B7P3zsj6U2d/nqf2yuTKhNY8Q4a1wudLHFnhkc" + |
| "ezxDmihtbkU8QJqRz5OJ9XzvQy3J60J9Mnzs52z54ntpuPCOLM" + |
| "ZxgMJZ8yKxs0sizR8BSao3KWp5I8j5/ommOvate/7+rz0wKfn9" + |
| "6pZ049n85+PrVr7VqJLRYtKs1HnF4/q8bRHbu8Mva+aVHrZ9FK" + |
| "tTp9/5Hoi836N9c315vG7GybeUCwqOA3qzxCV+RTZmWDRpYlGp" + |
| "5Cc1TO8lTikVA21fLHYXO93W63p0ess92x27bdfEQQZz7DYCj5" + |
| "lFnZoJFliYan0ByVszyV5IzZ1jXHXsE77c7U62wX27HdfEQQZz" + |
| "7DYCj5lFnZoJFliYan0ByVszyV5Djt6JpjL/Hm2ub0GjTbnWNr" + |
| "tpuPCOLMZxgMJZ8yKxs0sizR8BSao3KWp5Jcd2u65tir2uFN52" + |
| "eld9635UxanwvqcarHadnHaXRtdA0WGAiZ8ptVHsWu0vNdVt2X" + |
| "1Yr+Kfwa+tS8kq6/nCauqfOOR8dTr7Nd7Nh28xFBnPkMg4HVpe" + |
| "fZoJFliYan0BxXkuWpJMfpWNcce1V7Odfd6Ooyr7tcbfX/31Lf" + |
| "F9Tfu9U6TuOH44ewwECwqOA3qzxCV+RTZmWDRpYlGp7Cr6FPzS" + |
| "vp+nXNsVe16/2pXnf1/rT0976X28uwwECwqOA3qzxCV+RTZmWD" + |
| "RpYlGp7Cr6FPzSvp+nXNsVe1/XbzJXhH79Z7kmz/AEuyxXc="); |
| |
| byte[] buffer = new byte[uncompressedBytes]; |
| Inflater inflater = new Inflater(); |
| inflater.setInput(decoded, 0, compressedBytes); |
| inflater.inflate(buffer); |
| inflater.end(); |
| |
| value17 = new int[rows][cols]; |
| for (int index = 0; index < uncompressedBytes-1; index += 4) |
| { |
| int byte1 = 0x000000FF & (int)buffer[index + 0]; |
| int byte2 = 0x000000FF & (int)buffer[index + 1]; |
| int byte3 = 0x000000FF & (int)buffer[index + 2]; |
| int byte4 = 0x000000FF & (int)buffer[index + 3]; |
| |
| int element = index / 4; |
| int row = element / cols; |
| int col = element % cols; |
| value17[row][col] = byte1 << 24 | byte2 << 16 | byte3 << 8 | byte4; |
| } |
| } |
| catch (Exception e) |
| { |
| throw new Error(e); |
| } |
| } |
| |
| protected static int[][] value18 = null; |
| |
| protected static void value18Init() |
| { |
| try |
| { |
| final int rows = 65; |
| final int cols = 74; |
| final int compressedBytes = 1369; |
| final int uncompressedBytes = 19241; |
| |
| byte[] decoded = new byte[compressedBytes]; |
| base64Decode(decoded, |
| "eNrtWU2LHVUQfYi/IhtBxM2Qn5CFr7shf8B/EFwFV2HWjk4M7+" + |
| "3mJxhUglFHdBQVUUFQN8YguA9odroZhqxEfN03J3VO3bo9/eaL" + |
| "mfF209W3qk6dU/emu6dfp3nUPJrR1gx+inkLpMZRwdnGsTI78h" + |
| "6hythN1TB5P9xR3KNm495KsWg2zf2y73PjlYdv0yoOR62vfPyt" + |
| "+bDs+9x45fpaR0Wtr3z8beuFWd3qOh15a6+2V9OZfY6ZNQxbz8" + |
| "CskVpiyqtUGXvcrfUDtrwD7VGzcW/ltVntG+3GMN54mht8jpk1" + |
| "DFvPYCxBLxvgz6tUGXtebz3YEXWgPWo27i3qtjSb83nfbb82mr" + |
| "1xJk+kn1bHj1tfbP269d1h63T73WdVvw/225DxtyzywzF7/Ho0" + |
| "+8tElu+z+dxdRR9cnuf4ebiedFu+U/+2hdfPp87/eG2Gz46s/d" + |
| "HaFbvnZd2W9+q1U9fpBNfpfl2DSev0SV2D8tbtdXsYpaOEgQWW" + |
| "z6UqRZdw3o53mPfB/bFfZsrZjMn6rr+Dj3Xf7dU1mLROn9c1GH" + |
| "k6POwe9taOMsYQwMV4q1J0CedtpI4sWLXK+tM5lZg8GzNZ7Om3" + |
| "g812ExY+PFgg7Gwo9VDl+ZiZ2aARZc0b70LnUFJTJZ4/z9nXsv" + |
| "Y63wuWX16u7wVDdNL3guVX7kvDGb5n3v7gAj2ZrnXXzKZR8pLP" + |
| "CM3nvmfFyHiUxffhNRgTd+E7NGXPZ/2pcqQX+f57weLlZ1faN6" + |
| "f9vWDx0sX5XtDNu7nZNEpe8hmh+dz3rBgZj7L4PrwGY+IufIem" + |
| "7PmsP1WO9CI/+zd+sb4lTflOZ/fd6X+nu1D33fXuutk0Sl7yGa" + |
| "H53PesGBmPsvg+vAZj4i58h6bs+aw/VY70Ir/db/dXb1KDHd6p" + |
| "9tOexoggbvnIB0POx8zMBo0oa954F5wz5ShvSvSeuc9z9rWsPZ" + |
| "vN/+kP7Kk+jRZ3Uw6s6unYsimqOEVyVHVzTH+89TpzoI57UBvF" + |
| "ZrM332MOIMvKmlnnfZyq/mfv43Wdpv8/Z/N8f2BHLI1STpFa6X" + |
| "kQVZwiOaq6cW/KgTruQW0U8xzwy8o+Mz/oD+yI9aPV8+kg5Rmp" + |
| "lZ4HUcUpkqOqm2P6Y3g+ud7My20UG55PB75qTLmUqd99D7nvnu" + |
| "sP7IilUcopUis9D6KKUyRHVTfuTTlQxz2ojWKeA35Z2WfmT/oD" + |
| "O2L9aPv9lFOkVnoeRBWnSI6qbo7pj+XPzIE67kFtFBvuuye+ak" + |
| "xZM/Xv3ZE6qs+nE3h/uvP35bqetv+q19Ppbm+/Wtcg/K6y6BZm" + |
| "0yh5yWeE5nPfs2JkPMri+/AajIm78B2asuez/lQ50ov8et9N29" + |
| "pb7S1Y+PBggbCzodRDledjZmaDRpQ1b7wLnUNJTZV4/jxnX8va" + |
| "9f2pflc5vffM7t+L9+x448rZab3ypx1RruSNY6dXjec9hjstd8" + |
| "yZGD2mq7l2t92FhQ8PFgg7G0o9VHk+ZmY2aERZ88a70DmU1FSJ" + |
| "589z9rWs7d4z/6jvAPV3S12nuk7nZ5vf6w/siCGa8ozUSs+DKG" + |
| "ONl6tMQ/NRb8yhXZma2SgGJa0aU9ZMfc+c9PvuZnsTFj48WCDs" + |
| "bCj1UOX5mJnZoBFlzRvvQudQUlMlnj/P2dea32w2m7NZsv3Wj+" + |
| "Ahk58NpZ6vykdaldClLCPKXXDOZhLlTcnWKerGz2kY7TQ7q9Fg" + |
| "h9hO2tMYEcQtH/lgMHQ+UjZoRFnzxrvgnM0kypsSrdMOz9nXsn" + |
| "Z9PtXvBSe3Tt3j7jEsfHiwQNjZUOqhyvMxM7NBI8qaN96FzqGk" + |
| "pko8f56zr2Xtej1NKv4PAURoWQ=="); |
| |
| byte[] buffer = new byte[uncompressedBytes]; |
| Inflater inflater = new Inflater(); |
| inflater.setInput(decoded, 0, compressedBytes); |
| inflater.inflate(buffer); |
| inflater.end(); |
| |
| value18 = new int[rows][cols]; |
| for (int index = 0; index < uncompressedBytes-1; index += 4) |
| { |
| int byte1 = 0x000000FF & (int)buffer[index + 0]; |
| int byte2 = 0x000000FF & (int)buffer[index + 1]; |
| int byte3 = 0x000000FF & (int)buffer[index + 2]; |
| int byte4 = 0x000000FF & (int)buffer[index + 3]; |
| |
| int element = index / 4; |
| int row = element / cols; |
| int col = element % cols; |
| value18[row][col] = byte1 << 24 | byte2 << 16 | byte3 << 8 | byte4; |
| } |
| } |
| catch (Exception e) |
| { |
| throw new Error(e); |
| } |
| } |
| |
| protected static int[][] value19 = null; |
| |
| protected static void value19Init() |
| { |
| try |
| { |
| final int rows = 65; |
| final int cols = 74; |
| final int compressedBytes = 1262; |
| final int uncompressedBytes = 19241; |
| |
| byte[] decoded = new byte[compressedBytes]; |
| base64Decode(decoded, |
| "eNrtWz1vFVcQXRlZrlK4oaVKpBTUaWi8+/wT8hdsywWNf8HjYw" + |
| "H5X0QkKSIrXYoUAcmAE1kQRALUNg1IKF3KSLzd65OZM3fuat/z" + |
| "E0Hx7Gpn78ycmXPuZd++twtU1fSoqqZPpj9Nf58+mI2uVKO26c" + |
| "ve/uLmXmSRw+pc2/TnwezTkV0e2sit97Pos5HVF3adbl/qo88W" + |
| "UnSlii2uJy866npqtpotWPjwkMnPgmLPVuUjrkroUlYjyip4Di" + |
| "U2ZtLzz9XYOaVzXE/xuYvvu4/9fTe5PLmc+ylmLZAcRwfdx3bV" + |
| "8dQpRzAz9pJa1uMpYI2c9bWVYqk+7k+LKGrul32bG66cn2tR1P" + |
| "zM82+TlclK7qeYtUCmMeIyKnfVcVTbKmbGXlILLGvRSG21+vJK" + |
| "lGJdfXPanNKfTe+nmLVAchwVOmu76u7IWwQzYxdWweR6tCJfI2" + |
| "d9baVYr+SkOaFM76eYtUByHBU6a7vq7shbBDNjF1bB5Hq0Il8j" + |
| "Z31tpZg3m+ag7NvccOWIO8/BclDzM8fz3cf6vrv3V7wZGLO1X8" + |
| "cajNn2P481GLVOX8QaxPvMJV5PX8YajFqnq7EG7lPN7mQXFj48" + |
| "WCDkLCj2UGX76c66Gzi8rHjDKngOJTZm0vPXc7a14m82m01Vwa" + |
| "ZR8pIvOX3WNeILOzpInSB1N66wHBrjq7AKhdn2E33M7PF5fv+7" + |
| "/7PuwH72LNCP7n2Tcv8+IZDHY8mmKOMYqaPMm2O64+Z13QN1Wg" + |
| "NbL1ZVN77VPYAsM9tM/U93YEcsjVKOkVxp+yDKOEbqKPPmGOnH" + |
| "2sTLrRezPeCXmW2mWe0O7Ih1o9n1tJryGsmVtg+ijGOkjjJvju" + |
| "mO/noy2sTLrRfrr6dVWzXEbDP1392BHbE0SjlGcqXtgyjjGKmj" + |
| "zJtjpB9rEy+3Xsz2gF9mtplmrTuwI9aNbn2XcozkStsHUcYxUk" + |
| "eZN8d0x/5XugfqtAa2Xqy/ntZs1RAzZ+Lv7+L90/LWqT6uj2Hh" + |
| "w4MFQs6CYg9Vtp/urLuBw8uKN6yC51BiYyY9fz1nW6u557me9q" + |
| "/9F9dT/Xje66l+PO56uvt9/Punpb9JiffjsU5LXKd4Pz5m22w3" + |
| "W7FplLzkawTnc992xUj6cBerw3JojK/CKhRm20/0MbPH5/n1er" + |
| "0++344s2mUvORLTp91jfjq+2Ydnu7GtRrvZRnjq7AKhdn2E33M" + |
| "7PF5fvzOnO/+tPFWDi9X8oax46uG8xajlZYV64yPHuL1cxtv5P" + |
| "ByJW8YO75qOG8xWmlZsc746CFezrWv26P2ET537Z/tb+f/bmhf" + |
| "ZZHjc3b8dTD7YsGuz3v7x/J/P9358f91f7pzMPo5+F39DhY+PF" + |
| "gg5Cwo9lBl++nOuhs4vKx4wyp4DiU2ZtLz13O2tZo7nu/iOXi5" + |
| "W/1Dd2BHDNGU10iutH0Q1Vjpq6uEg/OeNt2DVQmbWC8GJq4aYu" + |
| "ZMPAcvomjjHDPaOPxUPiFjlcyjOK6nWKdYp1inWKdYp4vw/in+" + |
| "P+eY2man2YGFDw+Z/Cwo9mxVPuKqhC5lNaKsgudQYmMmPf9cjZ" + |
| "0TV8TzXXzu4j4e9/FP7D6+1+zBwoeHTH4WFHu2Kh9xVUKXshpR" + |
| "VsFzKLExk55/rsbOqR9tN9uzUW/72Hba0xi+PQuKPVuVj7gqoU" + |
| "tZjSir0DmZiZcXJrVOjho7p/78AeUxUc8="); |
| |
| byte[] buffer = new byte[uncompressedBytes]; |
| Inflater inflater = new Inflater(); |
| inflater.setInput(decoded, 0, compressedBytes); |
| inflater.inflate(buffer); |
| inflater.end(); |
| |
| value19 = new int[rows][cols]; |
| for (int index = 0; index < uncompressedBytes-1; index += 4) |
| { |
| int byte1 = 0x000000FF & (int)buffer[index + 0]; |
| int byte2 = 0x000000FF & (int)buffer[index + 1]; |
| int byte3 = 0x000000FF & (int)buffer[index + 2]; |
| int byte4 = 0x000000FF & (int)buffer[index + 3]; |
| |
| int element = index / 4; |
| int row = element / cols; |
| int col = element % cols; |
| value19[row][col] = byte1 << 24 | byte2 << 16 | byte3 << 8 | byte4; |
| } |
| } |
| catch (Exception e) |
| { |
| throw new Error(e); |
| } |
| } |
| |
| protected static int[][] value20 = null; |
| |
| protected static void value20Init() |
| { |
| try |
| { |
| final int rows = 65; |
| final int cols = 74; |
| final int compressedBytes = 1680; |
| final int uncompressedBytes = 19241; |
| |
| byte[] decoded = new byte[compressedBytes]; |
| base64Decode(decoded, |
| "eNrtWb1uHWUQdREhKh4gjRvEYyRR9u4j+A0QRRKSxlYSyUUMCY" + |
| "pBsiX7DSLx0yFhxQUFICFBBSiWKFOlpYcKsfvNnZw587NsgoWR" + |
| "2P20szNzzsyc79O9Nze+q0urSxvmWrVYct4qU3zNw/Nd4qXsrI" + |
| "on64r1VoPXYpnWWvXVleGo7553zy0iseS8VSbntcKivqvtrrhn" + |
| "8GRdmApO1GMV5RoZzbVVuabkRfeCkBZLzltlcl4rLOq72u6Kew" + |
| "ZP1oWp4EQ9VlGukdFcW5XLdvPR1sZyzbg+/mI5g+Wczu/65P3l" + |
| "DGad0+3lDLJr7yuO9995eWK7MzucvO7s/bdfWe2XF3VO/ZX+Cq" + |
| "x4EklsGYzH2HdVD324i9fhZ1hOrsIrxGTfD/p4cjYvjVf9avDW" + |
| "VjyJJAZmn7YGsZm+0sh241rLz1Dm5Cq8Qkz2/aCPJ2fzsrh9j3" + |
| "prvHWtv2GtPcFefu+iiH2gqATCTJvluZGDfqwNUbRZzvfQuJ7M" + |
| "yN6Pw/3D3uneL3vfDt7mzE+KX5v9JsXOQub7f/gp+vUk+tPMLt" + |
| "+l2Z9nVi/nNPPq3hhvXZoTTzBmcqXvo1nmMdNmeW6ujXtondXA" + |
| "Nsv5HhrXkxn5P7+eHv62vO+Wz6eLeD31j/vHsOJJJLFlMB5j31" + |
| "U99OEuXoefYTm5Cq8Qk30/6OPJ2bwsXl5Pc993/Z8cjbHkvFUm" + |
| "5zmbd7XdbXWcbHk2Ezno8eByPo01Vpy/P5uo4/W6XfT14PIF/P" + |
| "1g8794Eg/fm0Tf/VdOZvleMOe7+I3uhlqNNVIkPsHiyFdFj6uE" + |
| "XaGWUavgPVTTeJLdf1Tj99S8nW5n8JptuR1Z4mvsn2Bx5Kuix1" + |
| "XCrlDLqFVYDDvJcEwy55So8Xtq3p3uzuA123J3ZImvsX+CxZGv" + |
| "ih5XCbtCLaNWYTHsJMMxyZxTosbvqXmH3eHgNdtyh7LE14zmgW" + |
| "exdgA7etxNZ2QoomkVFsNOMhyTzDkd2j37WhNvd9uD12zLbcsS" + |
| "X2P/BIsjXxU9rhJ2hVpGrcJi2EmGY5I5p0SN31PzbnW3Bq/Zlr" + |
| "slS3yN/RMsjnxV9LhK2BVqGbUKi2EnGY5J5pwSNX5PzTvoDgav" + |
| "2ZY7kCW+ZjQPPIu1A9jR4246I0MRTauwGHaS4ZhkzunA7tnX2t" + |
| "nL98zX+p3zs+U3zVnn9PlyBhP/Lz7pT9STu+KoVa59VlXMrnje" + |
| "TiuMOqw+G9edYjd0gm6qPe1P1ZM7UXoqGBi2ptz/qfaeYnHHjO" + |
| "kVRh1Wn43rTrEbOkE31T7rn40Wd6J0zQFDeTkfVcyueN5m0xXV" + |
| "rlwFfbynqpPvZjsht+Zd7a/CiieRxJbBeIx9V/XQh7uQ+oAyJ1" + |
| "fhFWKy7wd9PDmbl8Xj8/rv461L6sXbfyKYduWIfaCSZR4zbZbn" + |
| "Rs54f3jb9tA6q4FtltvY+OBT20OZ9WRGlr8/LX+nO79z6h/1j2" + |
| "DFk0hiy2A8xr6reujDXbwOP8NychVeISb7ftDHk7N5WbzaWm1t" + |
| "bIgdr9HTSK0y8ASLI63y/Wxn201nZCiiaRUWw+QMxySck+1mZ/" + |
| "E5jM/lfbd8Pp3j7wh3u7tqNdZIkfgEiyNfFT2uEnaFWkatgvdQ" + |
| "TeNJdv9Rjd9T8252Nwev2Za7KUt8jf0TLI58VfS4StgVahm1Co" + |
| "thJxmOSeacEjV+T83b7XYHr9mW25Ulvsb+CRZHvip6XCXsCrWM" + |
| "WoXFsJMMxyRzTokav6fmHXfHg9dsyx3LEl8zmgeexdoB7OhxN5" + |
| "2RoYimVVgMO8lwTDLndGz37Gvt7OVzfNbn+P3uvlqNNVIkPsHi" + |
| "yFdFj6uEXaGWUavgPVTTeJLdf1Tj99S8o+5o8JptuSNZ4mtG88" + |
| "CzWDuAHT3upjMyFNG0CothJxmOSeacjuyefa2dvbzvXuHvvk/7" + |
| "p+rJXXHUKtc+qypmVzxvpxVGHVafjetOsRs6QXfxO8LZ8mvBrN" + |
| "fm5nIGE6/6s/5stLhrDhjK68+mOzO74nmbTVdUu3IV9PGeqk6+" + |
| "m+2E3Jp3rb8GK55EElsG4zH2XdVDH+5C6gPKnFyFV4jJvh/08e" + |
| "RsXhYv/94tf1c57+8F3ZvjrUtzo7f/RDBmcqXvo1nmMdNmeW6u" + |
| "bfy9xWtDFG2WG39vsT2UWU/2yPU/xluX5sQTjJlc6ftolnnMtF" + |
| "meGznox9oQRZvlfA+N68mMLO+7We+5e909tRprpEh8gsWRr4oe" + |
| "Vwm7Qi2jVsF7qKbxJLv/qMbvSZ7L62lW8V+Bafv0"); |
| |
| byte[] buffer = new byte[uncompressedBytes]; |
| Inflater inflater = new Inflater(); |
| inflater.setInput(decoded, 0, compressedBytes); |
| inflater.inflate(buffer); |
| inflater.end(); |
| |
| value20 = new int[rows][cols]; |
| for (int index = 0; index < uncompressedBytes-1; index += 4) |
| { |
| int byte1 = 0x000000FF & (int)buffer[index + 0]; |
| int byte2 = 0x000000FF & (int)buffer[index + 1]; |
| int byte3 = 0x000000FF & (int)buffer[index + 2]; |
| int byte4 = 0x000000FF & (int)buffer[index + 3]; |
| |
| int element = index / 4; |
| int row = element / cols; |
| int col = element % cols; |
| value20[row][col] = byte1 << 24 | byte2 << 16 | byte3 << 8 | byte4; |
| } |
| } |
| catch (Exception e) |
| { |
| throw new Error(e); |
| } |
| } |
| |
| protected static int[][] value21 = null; |
| |
| protected static void value21Init() |
| { |
| try |
| { |
| final int rows = 25; |
| final int cols = 74; |
| final int compressedBytes = 679; |
| final int uncompressedBytes = 7401; |
| |
| byte[] decoded = new byte[compressedBytes]; |
| base64Decode(decoded, |
| "eNrtV1tq3EAQ1G9O4cMMOo4X7+8ua9B37pNda8EJBJKvJBDIHR" + |
| "JyicjTbrqqH4sgIV8aoZnq6aqe6kHG9jBMn4dh+jS9m75N7xd0" + |
| "N6wa048+P6e572Hn4/BXY5pvZr+srPIh3f26Ur3d03ZP//CeeL" + |
| "z9OWxjzT392u5g1bd5t93Bqu/p93YH1WhvXl59dE+Q5JjJSl9H" + |
| "d5nHTNzlc3NvXEN16IHnbM/X0Lg+mTPb77vt74Ltnv73PbWH9q" + |
| "CzxhppJq7G4sirImKVsKssMmoX3EN1Gp+E/Uc3vidZt+9p1fd0" + |
| "3+511lgjzcTVWBx5VUSsEnaVRUbtgnuoTuOTsP/oxvfU0amdFt" + |
| "TnvneSR7DGfjUWR14VEauEXWWRUbvAnHWS5e0kuKfEje+po33b" + |
| "L6jPfW8vj2CN/WosjrwqIlYJu8oio3aBOesky9tJcE+JG99TR4" + |
| "d2WFCf+95BHsEa+9VYHHlVRKwSdpVFRu0Cc9ZJlreT4J4SN76n" + |
| "jnZtt6A+972dPII19quxOPKqiFgl7CqLjNoF5qyTLG8nwT0lbn" + |
| "xPphifxidF8sYhHJ2Vi2ulYnbF83N2ujmMPtAfxnWlWM0qmW/S" + |
| "nsezInkTp2fJGQM1Zf9nrX2LxRUzpncYfaA/jOtKsZpVMt+v39" + |
| "1je9RZY400E1djceRVEbFK2FUWGbUL7qE6jU/C/qMb31NHx3Zc" + |
| "UJ/73lEewRr71VgceVVErBJ2lUVG7QJz1kmWt5PgnhI3vidTjN" + |
| "fxqkje5Mu/Ss4YqCl/nq5a+xaLK2ZM7zD6QH8Y15ViNatkvkl7" + |
| "GS+K5E2cXiRnDNSU/V+09i0WV8yY3mH0gf4wrivFalbJfJN2Hm" + |
| "dF8iZOZ8kZAzVl/7PWHm/+j4acjOkdRh/oD+O6Uqxmlcz36/gD" + |
| "lz6lRA=="); |
| |
| byte[] buffer = new byte[uncompressedBytes]; |
| Inflater inflater = new Inflater(); |
| inflater.setInput(decoded, 0, compressedBytes); |
| inflater.inflate(buffer); |
| inflater.end(); |
| |
| value21 = new int[rows][cols]; |
| for (int index = 0; index < uncompressedBytes-1; index += 4) |
| { |
| int byte1 = 0x000000FF & (int)buffer[index + 0]; |
| int byte2 = 0x000000FF & (int)buffer[index + 1]; |
| int byte3 = 0x000000FF & (int)buffer[index + 2]; |
| int byte4 = 0x000000FF & (int)buffer[index + 3]; |
| |
| int element = index / 4; |
| int row = element / cols; |
| int col = element % cols; |
| value21[row][col] = byte1 << 24 | byte2 << 16 | byte3 << 8 | byte4; |
| } |
| } |
| catch (Exception e) |
| { |
| throw new Error(e); |
| } |
| } |
| |
| protected static int lookupValue(int row, int col) |
| { |
| if (row <= 64) |
| return value[row][col]; |
| else if (row >= 65 && row <= 129) |
| return value1[row-65][col]; |
| else if (row >= 130 && row <= 194) |
| return value2[row-130][col]; |
| else if (row >= 195 && row <= 259) |
| return value3[row-195][col]; |
| else if (row >= 260 && row <= 324) |
| return value4[row-260][col]; |
| else if (row >= 325 && row <= 389) |
| return value5[row-325][col]; |
| else if (row >= 390 && row <= 454) |
| return value6[row-390][col]; |
| else if (row >= 455 && row <= 519) |
| return value7[row-455][col]; |
| else if (row >= 520 && row <= 584) |
| return value8[row-520][col]; |
| else if (row >= 585 && row <= 649) |
| return value9[row-585][col]; |
| else if (row >= 650 && row <= 714) |
| return value10[row-650][col]; |
| else if (row >= 715 && row <= 779) |
| return value11[row-715][col]; |
| else if (row >= 780 && row <= 844) |
| return value12[row-780][col]; |
| else if (row >= 845 && row <= 909) |
| return value13[row-845][col]; |
| else if (row >= 910 && row <= 974) |
| return value14[row-910][col]; |
| else if (row >= 975 && row <= 1039) |
| return value15[row-975][col]; |
| else if (row >= 1040 && row <= 1104) |
| return value16[row-1040][col]; |
| else if (row >= 1105 && row <= 1169) |
| return value17[row-1105][col]; |
| else if (row >= 1170 && row <= 1234) |
| return value18[row-1170][col]; |
| else if (row >= 1235 && row <= 1299) |
| return value19[row-1235][col]; |
| else if (row >= 1300 && row <= 1364) |
| return value20[row-1300][col]; |
| else if (row >= 1365) |
| return value21[row-1365][col]; |
| else |
| throw new IllegalArgumentException("Unexpected location requested in value21 lookup"); |
| } |
| |
| static |
| { |
| sigmapInit(); |
| sigmap1Init(); |
| sigmap2Init(); |
| valueInit(); |
| value1Init(); |
| value2Init(); |
| value3Init(); |
| value4Init(); |
| value5Init(); |
| value6Init(); |
| value7Init(); |
| value8Init(); |
| value9Init(); |
| value10Init(); |
| value11Init(); |
| value12Init(); |
| value13Init(); |
| value14Init(); |
| value15Init(); |
| value16Init(); |
| value17Init(); |
| value18Init(); |
| value19Init(); |
| value20Init(); |
| value21Init(); |
| } |
| } |
| |
| /** |
| * The GOTO table. |
| * <p> |
| * The GOTO table maps a state and a nonterminal to a new state. |
| * It is used when the parser reduces. Suppose, for example, the parser |
| * is reducing by the production <code>A ::= B C D</code>. Then it |
| * will pop three symbols from the <code>stateStack</code> and three symbols |
| * from the <code>valueStack</code>. It will look at the value now on top |
| * of the state stack (call it <i>n</i>), and look up the entry for |
| * <i>n</i> and <code>A</code> in the GOTO table to determine what state |
| * it should transition to. |
| */ |
| protected static final class GoToTable |
| { |
| /** |
| * Returns the state the parser should transition to if the given |
| * state is on top of the <code>stateStack</code> after popping |
| * symbols corresponding to the right-hand side of the given production. |
| * |
| * @return the state to transition to (0 <= result < Parser.NUM_STATES) |
| */ |
| protected static int getGoTo(int state, Nonterminal nonterminal) |
| { |
| assert 0 <= state && state < Parser.NUM_STATES; |
| assert nonterminal != null; |
| |
| return get(state, nonterminal.getIndex()); |
| } |
| |
| protected static final int[] rowmap = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 9, 0, 0, 0, 10, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 14, 0, 15, 0, 16, 0, 0, 2, 17, 0, 0, 0, 0, 0, 0, 18, 0, 3, 0, 19, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 4, 0, 0, 21, 5, 0, 22, 23, 0, 0, 1, 0, 24, 0, 25, 0, 26, 0, 6, 27, 2, 0, 28, 0, 0, 0, 29, 30, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 9, 0, 0, 0, 0, 0, 10, 31, 32, 0, 0, 0, 0, 0, 0, 0, 33, 0, 1, 11, 0, 0, 0, 12, 13, 0, 0, 0, 2, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 14, 2, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 15, 16, 0, 0, 0, 2, 0, 34, 0, 0, 0, 0, 3, 3, 17, 0, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 36, 18, 0, 0, 0, 0, 2, 0, 3, 0, 0, 0, 0, 0, 37, 0, 19, 0, 4, 0, 0, 5, 1, 0, 0, 0, 38, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 2, 0, 7, 0, 0, 39, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 40, 0, 0, 0, 41, 0, 0, 0, 42, 43, 0, 0, 8, 0, 0, 44, 7, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 45, 10, 0, 0, 0, 0, 0, 20, 21, 0, 22, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 24, 25, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0, 0, 0, 27, 0, 0, 0, 0, 0, 0, 0, 0, 28, 0, 0, 0, 29, 0, 0, 0, 4, 0, 0, 0, 0, 30, 1, 0, 31, 2, 0, 0, 0, 5, 4, 0, 0, 34, 0, 35, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 1, 4, 0, 38, 0, 1, 39, 0, 0, 0, 6, 40, 0, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 9, 42, 43, 0, 0, 44, 0, 5, 6, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 47, 1, 0, 0, 0, 0, 0, 0, 0, 48, 2, 0, 0, 3, 0, 7, 49, 50, 0, 0, 0, 0, 1, 7, 0, 8, 0, 51, 8, 0, 0, 0, 0, 52, 0, 0, 0, 9, 1, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 0, 47, 54, 55, 0, 56, 0, 57, 58, 0, 59, 60, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62, 63, 10, 0, 0, 0, 0, 11, 0, 0, 64, 0, 0, 0, 65, 12, 13, 0, 0, 0, 66, 67, 0, 0, 0, 4, 0, 68, 0, 48, 5, 0, 0, 69, 1, 0, 0, 0, 14, 70, 0, 0, 0, 15, 0, 1, 0, 0, 6, 0, 3, 0, 0, 0, 0, 0, 12, 0, 0, 0, 49, 0, 0, 0, 0, 0, 0, 50, 0, 16, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 19, 0, 0, 0, 1, 0, 0, 0, 11, 0, 71, 72, 12, 0, 51, 73, 0, 0, 0, 0, 0, 13, 0, 0, 0, 14, 0, 74, 75, 0, 76, 77, 78, 79, 0, 1, 0, 2, 0, 0, 0, 80, 0, 0, 0, 0, 1, 15, 16, 17, 18, 19, 20, 21, 81, 22, 52, 23, 24, 25, 26, 27, 28, 29, 30, 31, 0, 32, 0, 33, 36, 37, 0, 38, 39, 82, 40, 41, 42, 43, 83, 44, 45, 46, 47, 48, 49, 0, 5, 0, 0, 0, 0, 0, 0, 84, 85, 9, 0, 0, 2, 0, 86, 0, 0, 87, 1, 88, 0, 3, 0, 0, 0, 0, 0, 89, 2, 0, 0, 0, 0, 0, 0, 0, 90, 91, 0, 0, 0, 0, 0, 0, 0, 0, 92, 93, 0, 3, 4, 0, 0, 0, 94, 1, 95, 0, 0, 0, 96, 97, 50, 98, 0, 51, 99, 100, 101, 102, 0, 103, 53, 104, 1, 105, 0, 54, 106, 107, 108, 55, 52, 2, 53, 0, 0, 109, 110, 0, 0, 0, 111, 0, 0, 112, 0, 113, 114, 0, 0, 10, 0, 1, 0, 0, 0, 4, 115, 5, 0, 1, 116, 117, 0, 0, 3, 1, 0, 2, 118, 0, 6, 119, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 120, 121, 122, 0, 123, 0, 54, 3, 56, 0, 124, 7, 0, 0, 125, 126, 0, 0, 0, 0, 0, 6, 0, 1, 0, 2, 0, 0, 127, 0, 55, 128, 129, 130, 131, 132, 57, 133, 0, 134, 135, 136, 137, 138, 139, 140, 141, 56, 0, 142, 143, 144, 145, 0, 0, 5, 0, 0, 0, 0, 0, 57, 0, 0, 146, 1, 2, 0, 2, 0, 3, 0, 0, 0, 0, 0, 0, 13, 0, 0, 7, 0, 147, 0, 148, 58, 0, 59, 1, 1, 0, 2, 0, 0, 0, 3, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 60, 0, 0, 61, 1, 0, 2, 149, 150, 0, 0, 151, 0, 152, 8, 0, 0, 0, 153, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 154, 155, 0, 156, 157, 0, 7, 4, 0, 2, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 11, 0, 0, 12, 0, 13, 0, 0, 158, 9, 0, 159, 160, 0, 14, 0, 0, 0, 15, 161, 0, 0, 0, 62, 0, 2, 0, 0, 0, 9, 0, 0, 6, 0, 0, 0, 0, 0, 162, 163, 2, 0, 1, 0, 1, 0, 3, 164, 165, 0, 0, 0, 0, 7, 0, 0, 0, 0, 58, 0, 0, 0, 0, 0, 59, 0, 0, 166, 0, 0, 0, 10, 0, 0, 0, 167, 168, 169, 0, 11, 0, 170, 0, 16, 12, 0, 0, 2, 0, 171, 0, 2, 4, 172, 0, 0, 17, 173, 0, 0, 0, 18, 13, 0, 0, 0, 0, 63, 0, 0, 1, 0, 2, 0, 174, 2, 0, 3, 0, 0, 0, 14, 0, 175, 0, 0, 0, 0, 0, 176, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 177, 0, 178, 19, 0, 0, 0, 4, 0, 0, 5, 6, 0, 0, 1, 7, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 179, 0, 180, 181, 182, 0, 2, 0, 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 4, 0, 5, 0, 0, 0, 0, 0, 21, 0, 0, 0, 22, 0, 0, 183, 0, 184, 185, 0, 20, 0, 21, 0, 6, 0, 0, 0, 0, 0, 8, 186, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 187, 22, 19, 0, 0, 0, 0, 0, 0, 188, 0, 0, 1, 0, 0, 20, 189, 0, 3, 0, 0, 7, 10, 1, 0, 0, 0, 1, 0, 190, 23, 0, 0, 0, 0, 24, 0, 0, 0, 21, 11, 12, 0, 13, 0, 14, 0, 0, 0, 0, 0, 15, 0, 16, 0, 0, 0, 0, 0, 191, 0, 0, 192, 0, 0, 0, 193, 25, 0, 64, 0, 0, 194, 0, 0, 195, 196, 0, 197, 22, 0, 0, 198, 0, 0, 23, 0, 0, 0, 60, 0, 26, 0, 199, 0, 0, 0, 0, 0, 0, 0, 200, 24, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 1, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 17, 201, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 19, 20, 21, 22, 0, 23, 202, 0, 24, 25, 25, 26, 27, 0, 28, 29, 0, 30, 31, 32, 33, 0, 203, 0, 65, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61, 0, 0, 0, 0, 5, 0, 6, 0, 7, 3, 0, 0, 0, 0, 204, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 205, 206, 1, 0, 1, 27, 0, 0, 0, 0, 0, 0, 0, 207, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 4, 0, 0, 1, 208, 209, 13, 0, 0, 0, 0, 0, 0, 0, 0, 210, 67, 0, 0, 211, 0, 0, 212, 213, 0, 0, 0, 214, 0, 0, 0, 215, 68, 0, 216, 0, 3, 0, 0, 0, 69, 0, 0, 62, 0, 0, 28, 29, 0, 0, 3, 0, 0, 30, 0, 0, 217, 0, 218, 0, 0, 64, 219, 0, 28, 220, 0, 221, 222, 0, 0, 31, 29, 0, 223, 224, 0, 32, 225, 0, 226, 227, 228, 0, 229, 30, 230, 33, 231, 232, 233, 34, 234, 0, 235, 236, 6, 237, 238, 31, 0, 239, 240, 0, 0, 0, 0, 0, 70, 0, 2, 0, 0, 241, 0, 242, 0, 243, 35, 0, 0, 0, 244, 0, 245, 36, 0, 0, 37, 0, 0, 23, 0, 0, 0, 32, 33, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 0, 0, 246, 14, 0, 247, 0, 0, 1, 38, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 4, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 36, 0, 0, 248, 0, 0, 0, 249, 250, 0, 0, 0, 251, 1, 0, 0, 0, 5, 2, 0, 0, 252, 0, 0, 0, 0, 0, 0, 37, 253, 0, 41, 0, 254, 0, 38, 255, 256, 39, 257, 0, 258, 0, 0, 0, 0, 0, 0, 0, 259, 40, 260, 41, 0, 261, 0, 262, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 263, 264, 0, 0, 265, 0, 7, 0, 0, 0, 43, 0, 266, 267, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 3, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 42, 268, 43, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 71, 269, 270, 271, 0, 0, 0, 0, 0, 0, 0, 272, 0, 0, 0, 0, 8, 0, 0, 0, 0, 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 273, 0, 0, 0, 0, 2, 0, 274, 11, 3, 0, 275, 45, 12, 0, 0, 13, 0, 14, 5, 0, 0, 0, 0, 0, 0, 0, 276, 0, 0, 0, 10, 0, 0, 1, 0, 0, 2, 0, 277, 44, 0, 0, 0, 278, 0, 0, 0, 0, 0, 0, 45, 0, 0, 0, 0, 0, 0, 72, 0, 0, 0, 279, 0, 0, 0, 280, 0, 0, 0, 0, 281, 0, 0, 0, 46, 0, 0, 0, 47, 0, 282, 0, 0, 0, 46, 48, 0, 0, 0, 0, 0, 283, 284, 285, 0, 49, 286, 0, 287, 50, 51, 0, 0, 8, 288, 0, 2, 289, 290, 0, 0, 0, 0, 8, 52, 291, 292, 53, 293, 0, 0, 54, 0, 4, 294, 295, 0, 296, 0, 0, 0, 0, 0, 0, 0, 297, 298, 55, 0, 0, 0, 56, 0, 0, 57, 0, 24, 0, 0, 25, 5, 299, 6, 300, 0, 0, 0, 0, 0, 0, 4, 0, 0, 2, 0, 301, 3, 302, 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 303, 0, 304, 0, 0, 0, 0, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 305, 0, 0, 0, 0, 0, 0, 306, 0, 0, 0, 7, 307, 0, 0, 0, 59, 0, 308, 0, 0, 309, 0, 0, 310, 311, 0, 47, 312, 0, 0, 0, 60, 65, 0, 0, 0, 313, 314, 61, 0, 62, 0, 2, 19, 0, 0, 0, 0, 0, 4, 0, 9, 0, 10, 315, 0, 8, 316, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 66, 0, 0, 0, 3, 48, 0, 0, 317, 318, 319, 64, 0, 0, 0, 320, 0, 0, 0, 321, 322, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, 0, 0, 50, 51, 9, 323, 0, 52, 324, 53, 73, 0, 325, 54, 65, 0, 0, 0, 0, 0, 0, 0, 66, 0, 0, 326, 327, 0, 67, 0, 0, 328, 68, 69, 0, 55, 0, 329, 70, 330, 0, 71, 56, 331, 332, 72, 73, 0, 57, 0, 333, 334, 0, 74, 58, 335, 0, 59, 0, 0, 75, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0, 0, 336, 60, 337, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 338, 339, 0, 340, 0, 0, 20, 0, 0, 6, 0, 1, 0, 0, 0, 0, 0, 21, 0, 0, 0, 0, 0, 0, 0, 0, 341, 0, 0, 0, 0, 0, 0, 0, 0, 342, 3, 0, 7, 0, 0, 34, 1, 8, 0, 0, 0, 62, 343, 344, 0, 0, 63, 345, 0, 64, 346, 0, 65, 347, 66, 0, 0, 76, 0, 0, 348, 349, 0, 0, 77, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 67, 350, 0, 68, 0, 0, 0, 0, 351, 352, 67, 0, 0, 0, 78, 0, 4, 5, 0, 0, 6, 0, 0, 0, 0, 3, 0, 0, 0, 353, 0, 354, 355, 0, 0, 0, 79, 0, 0, 80, 356, 0, 0, 0, 0, 0, 69, 0, 81, 0, 357, 0, 82, 70, 358, 0, 359, 360, 361, 83, 84, 0, 362, 71, 85, 363, 0, 364, 365, 366, 86, 0, 0, 0, 367, 0, 0, 0, 0, 0, 0, 0, 0, 72, 73, 0, 368, 1, 0, 4, 0, 5, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 369, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 74, 0, 87, 88, 75, 0, 76, 370, 89, 77, 78, 371, 0, 372, 373, 0, 0, 374, 375, 0, 0, 0, 7, 0, 0, 79, 0, 80, 376, 68, 90, 0, 0, 0, 0, 0, 0, 7, 0, 16, 0, 377, 0, 0, 0, 378, 0, 379, 0, 0, 380, 0, 91, 0, 381, 382, 383, 0, 92, 384, 385, 386, 387, 93, 94, 0, 0, 0, 388, 0, 389, 390, 391, 0, 95, 96, 0, 0, 0, 0, 0, 0, 0, 0, 97, 0, 0, 6, 0, 0, 0, 8, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 392, 393, 0, 394, 0, 395, 396, 0, 0, 0, 0, 98, 99, 0, 0, 0, 397, 0, 0, 69, 70, 398, 0, 0, 0, 0, 0, 0, 100, 0, 101, 102, 399, 0, 103, 104, 0, 0, 0, 0, 81, 0, 0, 105, 0, 0, 0, 0, 82, 0, 0, 0, 400, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 106, 107, 0, 83, 108, 0, 84, 401, 402, 0, 0, 85, 0, 8, 0, 0, 0, 403, 0, 404, 0, 109, 0, 0, 86, 0, 405, 0, 0, 87, 0, 406, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 407, 0, 0, 0, 0, 408, 0, 409, 0, 88, 0, 410, 0, 89, 110, 111, 90, 0, 0, 112, 113, 0, 411, 0, 114, 412, 413, 0, 115, 414, 0, 0, 0, 0, 0, 415, 0, 0, 0, 0, 37, 116, 117, 0, 118, 416, 0, 417, 0, 0, 0, 119, 418, 0, 120, 121, 419, 0, 122, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 123, 124, 0, 125, 0, 0, 126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; |
| protected static final int[] columnmap = { 0, 1, 2, 0, 0, 0, 3, 4, 0, 5, 6, 1, 1, 7, 6, 8, 9, 1, 2, 0, 1, 0, 0, 10, 1, 5, 0, 5, 0, 1, 7, 2, 11, 0, 12, 0, 13, 1, 1, 1, 6, 7, 0, 14, 15, 12, 3, 7, 0, 16, 2, 6, 12, 17, 8, 2, 7, 18, 16, 19, 3, 0, 19, 20, 21, 1, 10, 22, 23, 2, 24, 25, 1, 26, 1, 7, 7, 27, 16, 1, 28, 2, 16, 29, 30, 0, 4, 0, 0, 31, 32, 8, 3, 33, 34, 2, 1, 0, 1, 3, 11, 35, 36, 18, 37, 38, 0, 39, 40, 8, 41, 1, 42, 0, 1, 43, 44, 9, 6, 45, 4, 46, 47, 48, 4, 16, 1, 1, 49, 50, 51, 38, 6, 10, 0, 52, 0, 53, 54, 10, 8, 55, 56, 0, 57, 1, 19, 0, 58, 59, 60, 6, 61, 23, 62, 3, 63, 4, 64, 1, 65, 66, 67, 0, 0, 0, 22, 68, 69, 70, 71, 72, 0, 3, 73, 19, 0, 0, 74, 0, 75, 76, 7, 11, 0, 2, 77, 3, 0, 78, 0, 79, 1, 80, 1, 81, 82, 83, 84, 0, 85, 86, 87, 88, 3, 89, 12, 0, 12, 90, 14, 4, 91, 92, 93, 94, 22, 95, 96, 0, 0, 97, 98, 3, 99, 0, 100, 26, 6, 16, 2, 24, 16, 101, 1, 4, 102, 2, 1, 1, 103, 0, 8, 104, 105, 1, 106, 107, 108, 109, 110, 111, 11, 0, 112, 22, 14, 0, 0, 9, 5, 1, 113, 27, 2, 27, 8, 4, 5, 114, 5, 2, 10, 115, 29, 116, 117, 0, 0, 18, 29, 1, 118, 6, 1, 0, 7, 20, 0, 4, 119, 2, 31, 1, 0, 120, 121, 49, 16, 7, 3, 24, 122, 1, 9, 123, 124, 26, 125, 8, 126, 0, 6, 127, 128, 129, 130, 131, 132, 31, 32, 133, 134, 10, 11, 135, 35, 12, 10, 136, 137, 13, 0, 5, 13, 138, 139, 140, 8, 141, 6, 142, 143, 144, 38, 27, 145, 146, 147, 26, 148, 2, 7, 4, 149, 150, 0, 39, 151, 152, 0, 153, 0, 154, 40, 18, 41, 155, 156, 2, 157, 49, 7, 13, 158, 159, 14, 42, 160, 161, 162, 0, 163, 164, 31, 0, 165, 166, 47, 4, 0, 34, 167, 168, 169, 18, 170, 171, 15, 1, 172, 173, 174, 34, 0, 0, 26, 0, 0, 9, 175, 2, 27, 35, 18, 3, 0, 45, 1, 176, 15, 177, 178, 9, 8, 0, 179, 180, 181, 1, 182, 183, 24, 184, 27, 185, 41, 2, 0, 186, 187, 188, 38, 0, 14, 0, 2, 2, 189, 9, 42, 7, 190, 191, 2, 192, 193, 51, 194, 32, 195, 196, 197, 2, 0, 198, 199, 4, 200, 52, 3, 20, 201, 34, 18, 202, 203, 3, 204, 0, 20, 205, 53, 206, 207, 208, 1, 6, 209, 210, 211, 212, 213, 3 }; |
| |
| public static int get(int row, int col) |
| { |
| if (isErrorEntry(row, col)) |
| return -1; |
| else if (columnmap[col] % 2 == 0) |
| return lookupValue(rowmap[row], columnmap[col]/2) >>> 16; |
| else |
| return lookupValue(rowmap[row], columnmap[col]/2) & 0xFFFF; |
| } |
| |
| protected static boolean isErrorEntry(int row, int col) |
| { |
| final int INT_BITS = 32; |
| int sigmapRow = row; |
| |
| int sigmapCol = col / INT_BITS; |
| int bitNumberFromLeft = col % INT_BITS; |
| int sigmapMask = 0x1 << (INT_BITS - bitNumberFromLeft - 1); |
| |
| return (lookupSigmap(sigmapRow, sigmapCol) & sigmapMask) == 0; |
| } |
| |
| protected static int[][] sigmap = null; |
| |
| protected static void sigmapInit() |
| { |
| try |
| { |
| final int rows = 609; |
| final int cols = 16; |
| final int compressedBytes = 1353; |
| final int uncompressedBytes = 38977; |
| |
| byte[] decoded = new byte[compressedBytes]; |
| base64Decode(decoded, |
| "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" + |
| "HRUS"); |
| |
| byte[] buffer = new byte[uncompressedBytes]; |
| Inflater inflater = new Inflater(); |
| inflater.setInput(decoded, 0, compressedBytes); |
| inflater.inflate(buffer); |
| inflater.end(); |
| |
| sigmap = new int[rows][cols]; |
| for (int index = 0; index < uncompressedBytes-1; index += 4) |
| { |
| int byte1 = 0x000000FF & (int)buffer[index + 0]; |
| int byte2 = 0x000000FF & (int)buffer[index + 1]; |
| int byte3 = 0x000000FF & (int)buffer[index + 2]; |
| int byte4 = 0x000000FF & (int)buffer[index + 3]; |
| |
| int element = index / 4; |
| int row = element / cols; |
| int col = element % cols; |
| sigmap[row][col] = byte1 << 24 | byte2 << 16 | byte3 << 8 | byte4; |
| } |
| } |
| catch (Exception e) |
| { |
| throw new Error(e); |
| } |
| } |
| |
| protected static int[][] sigmap1 = null; |
| |
| protected static void sigmap1Init() |
| { |
| try |
| { |
| final int rows = 609; |
| final int cols = 16; |
| final int compressedBytes = 1229; |
| final int uncompressedBytes = 38977; |
| |
| byte[] decoded = new byte[compressedBytes]; |
| base64Decode(decoded, |
| "eNrtXUtuGzEMlVQlUIMsVCCLLhU0B+gRVCCLLHOEHkUpuugiix" + |
| "6lR+gReqTOOHY8tqUZjSTqMyKBILZhDSmSIh8pzZgQwgjh5J3k" + |
| "8SUd/sz4Qu0/4Ic3wxBNrCQMIw2S9P6mBpKArRHvXAjuFFUcLe" + |
| "O69sT+xsP+wHrYBtG0lwNWNveQ2bz5oQGQh44CCJdY6lQMuXrF" + |
| "tuasIiczvtMkH5ge9KwIUxMn1mpUHv0xqJ7fTBSp+ZlltkcyyJ" + |
| "9ElfLTdtcDEmZEJNB8wwMwKRLSponP1FdQK0O6izpLAH2HbDwa" + |
| "/z258R8Bxn9F448F/975zv9+of5O1HGIxe+L9rsjV2Ja5Z14HB" + |
| "uuLy3gUfML/qaM/yAhha8fObN+uK//8jzCIobenP5SxO/GQVa+" + |
| "/hPF9bcIdQPwSwx+aJ3kWjSn89kvR3z4MphcDNZ/Ib84M58luS" + |
| "aK6oeR9eOgFs34M6Xk5pbrD4pJ8ok8EPU4/Lt6/W5u/9Siv1Tx" + |
| "S6WL35IgecbfnuNPxfmLnVbwG3FoDXJNta7pYTBmFAU/G9K2cC" + |
| "rhanGGAABDoT/GYlF/v86tbOxfoP6QOvJLhv6P63f7OZ37fksC" + |
| "FRFrzm9fiMAix1cw/yWl8CADUuI4ac0JEiSZpYCptz31vPOPOn" + |
| "+xjfMjfO2iFseR2rZ/pcdv7Ob/vPv8ZZz/z8P8B/vqi/3jSoKK" + |
| "ygHkFvizgvwrBhBJ4efGNcrSq9+NX3B82fGx+A0Gv/rjT7Q/ji" + |
| "9ZP7XOv3f9R4xPcv6s7/VXvn+C40uuXzleT05A51v5/tF2K6ix" + |
| "lJBILdZfMj5+3nszi/VXNTeFQi2FlOtvqn9i0z/Z658A9J9iPW" + |
| "+N/wTK77b/Ov5Cl9CfwgAF7oXT9UOm9t+/GRPXif+RNP6H1I3/" + |
| "zMSvmfjtNR6pY+SWIP/7xT8SHP9gMqDMNr55+wfgJ7FKirr9p+" + |
| "r66bf//fc6sH5aqqcszx+jR2PaZsdkdvXB9e+iz78kGC9Won8J" + |
| "77+R539KnT8SiebPj/z5OX+aN6iA6i++f1vafxL3P03G+FVz/q" + |
| "Kub/rEr5z5owb9NT3/WPv3hp9SljY+6aqyeNHZ1o1aVX+lP/9Z" + |
| "V52k06xfi/6Ut/54Vf0vdfoGeLGavKZd4H/m/+zCft9c/n8Nbz" + |
| "+xwguL5r901PAtVorgVhdSLH6UM2uBZxhPQsZHUYL6PQt8h6u/" + |
| "o/snwP6nQsQQDeHsjuu3zuufKGgm1sUjUHCgl1nXCU4q+P2i0v" + |
| "evdD8+Nv+Vvv+7nP42sH9Ywf5NlfefNeF/FccP7F8gwhNzYMlU" + |
| "ILkzfu+fP8D/HeP39PkDT2P8FtMYGoEOY9ElNP21pgcYNFqYP1" + |
| "K2eCGbkra2/kcO/vETF9nCmcrHn7Vly4veQ+8/S4c/yxe3vFB/" + |
| "rXu/bkJSESi/ypW2Q/nTabSOe/5ZovqlvvprFHrXgDjKD/H8u/" + |
| "7OX23LfkhISEjtxs9Uzz9dLHrzx3+P/Fkavxht0dn9gYuzdaBG" + |
| "qb7a8elseQSwP6H9OxwguyPaxjIjfyQkkDXkKD7rklSlnF65Yr" + |
| "lu+evul9AV93+/JzUJlf8CUUQ6/HGX/vlxrftv3evX5b/c5r/y" + |
| "1H87TldQG034YM0QF68mFyDlrd8j+8f/ARgZxzw="); |
| |
| byte[] buffer = new byte[uncompressedBytes]; |
| Inflater inflater = new Inflater(); |
| inflater.setInput(decoded, 0, compressedBytes); |
| inflater.inflate(buffer); |
| inflater.end(); |
| |
| sigmap1 = new int[rows][cols]; |
| for (int index = 0; index < uncompressedBytes-1; index += 4) |
| { |
| int byte1 = 0x000000FF & (int)buffer[index + 0]; |
| int byte2 = 0x000000FF & (int)buffer[index + 1]; |
| int byte3 = 0x000000FF & (int)buffer[index + 2]; |
| int byte4 = 0x000000FF & (int)buffer[index + 3]; |
| |
| int element = index / 4; |
| int row = element / cols; |
| int col = element % cols; |
| sigmap1[row][col] = byte1 << 24 | byte2 << 16 | byte3 << 8 | byte4; |
| } |
| } |
| catch (Exception e) |
| { |
| throw new Error(e); |
| } |
| } |
| |
| protected static int[][] sigmap2 = null; |
| |
| protected static void sigmap2Init() |
| { |
| try |
| { |
| final int rows = 609; |
| final int cols = 16; |
| final int compressedBytes = 884; |
| final int uncompressedBytes = 38977; |
| |
| byte[] decoded = new byte[compressedBytes]; |
| base64Decode(decoded, |
| "eNrtnVtu3CAUhjGiEaqiiEpZAJG6kJO3PmYJXQqpsqAupUuqPR" + |
| "fHE2MPtrnzfw/RTCQC58rhYkcwphgTTDLNzmjGLx+74QedvnR/" + |
| "GDPiOyN2hcTYYh05+WP5ICdDO4zJSTKzSf/ioP1v2+sA/tMWHV" + |
| "TgC2H9eIZDPdD/yvjABF23k3qof3b4j5r3b4LUX3nbXwSvP31A" + |
| "DcaPLCj+jqMCVuDl+3/o+JnK/xkw3eTLoNNe/ps27awfWsw/6U" + |
| "sDNfG1zqM96q5oZWw5veVPETcsZ72m6b/t9Ucb82/t6y/4P8jW" + |
| "fym8/+7ff8BE02BA6hbk57A/xAUtQFMXxdEeAPHqX7LVvzRsA5" + |
| "3q37fT79+H+vfjWv+aPmQD1r9yW0uP918m7eW8/Un+7iz/r6F9" + |
| "+K0yvrPg99V3yv7rqzuBQzhzGAjUicvlQO3WyGc21rdfCIYq2H" + |
| "8gf+wJ60v9+Dvq+YeH8xe5uP8cY6Z1UgLV278FU3aUFj78bQvR" + |
| "pfjTy/GnxvjDtWUA/KRoAAAAoKD6EQCAIhaiAwAAAFvJ+/485r" + |
| "+sPafS55fqOSzWzvbjd+wnI9qv3MW/SaWCZm92UeL+8fwZ/KPC" + |
| "/YOjKTh1Cm+9/7y8CfYHMedf0Y2Zf/qOET1/nU0O45fL8WaTjq" + |
| "vq7Vdo/dQ5DJZy0vx5/WfG9fuz6/r9pWT/Wd6/SCD/evx/9Ry9" + |
| "0f91jfGPiqkgo6a2L8F/Qdj5c2n/+3Vp/nhwzgsaas4cvvAZq8" + |
| "KN0+QeV7+8UQDBchwDFVSjf7kh0+D8AoDskGhfgP75Tf5UlsJE" + |
| "W9IsRTiuz0T/Gv6D8derv7Tvf1iPMLlWj5ndGnRuDwAIyMu4cj" + |
| "SMG6nYA9Md/bxUG6pPQW/9x6dHRt1wZvzjmirEB5nHv9DfHsKm" + |
| "dXE3w6e45uneP85CNlrb1/357TdCCPoHCavTKuL32Puf770/Wf" + |
| "z7jP9p+/n7kzO4ECbhPyDZ/AdAHqlPY/wRIVs1ay9ta3imU6/l" + |
| "T77v/pG/+/MSr5cHx+b/APev871/v7ZnQqyUy2LH9nye2bermG" + |
| "aWrXlvPGUxHom6ogDxvz/+hW1yJ2seMJ7jP4/nR2KswmuCcg06" + |
| "tSkpFFKn68TtE8lbzfZE/oKku39R8f6V0/NbS/KbrOSnI/Yj6/" + |
| "hfo/3/Gcly/v8zReSfgOu9/1H5h2k="); |
| |
| byte[] buffer = new byte[uncompressedBytes]; |
| Inflater inflater = new Inflater(); |
| inflater.setInput(decoded, 0, compressedBytes); |
| inflater.inflate(buffer); |
| inflater.end(); |
| |
| sigmap2 = new int[rows][cols]; |
| for (int index = 0; index < uncompressedBytes-1; index += 4) |
| { |
| int byte1 = 0x000000FF & (int)buffer[index + 0]; |
| int byte2 = 0x000000FF & (int)buffer[index + 1]; |
| int byte3 = 0x000000FF & (int)buffer[index + 2]; |
| int byte4 = 0x000000FF & (int)buffer[index + 3]; |
| |
| int element = index / 4; |
| int row = element / cols; |
| int col = element % cols; |
| sigmap2[row][col] = byte1 << 24 | byte2 << 16 | byte3 << 8 | byte4; |
| } |
| } |
| catch (Exception e) |
| { |
| throw new Error(e); |
| } |
| } |
| |
| protected static int[][] sigmap3 = null; |
| |
| protected static void sigmap3Init() |
| { |
| try |
| { |
| final int rows = 609; |
| final int cols = 16; |
| final int compressedBytes = 895; |
| final int uncompressedBytes = 38977; |
| |
| byte[] decoded = new byte[compressedBytes]; |
| base64Decode(decoded, |
| "eNrtXMuN2zAQHRHEQtgTDy6A20FKmNxy3JK0QQpIaSkpsfyJDF" + |
| "Myxe+Qeu+wsLWgOeT8qeFoIkOkaSRLF1hS14/D+Q/PX4afRJN+" + |
| "J6YbWM8j9PN44zv+g8rAbvxPR64/Fjr9/p/27P9y/FRh/WecSI" + |
| "+u5/P86h995uEx3+bfwECOIVtcGJerWa7/+mXem/fHMTaB/KWZ" + |
| "32+8dowvIf+S9e9ORTr9PaWxf2Mt+5HCfu/Uv6r8++3PP67iv4" + |
| "4KsypQXHby/WpZDA3ELyw5fkrjv9uFNm3Hv0fgXzfyNxzVk3Hk" + |
| "ThUfDwCCLIVc+V31X+Oz//p19l/DJRn/cfZfo2t5qjD97KKf7/" + |
| "R/zs+/7vRfDxM4af6dOWaH/wW8oXyjlHac6pRdRaBrAAAAyMsB" + |
| "ADEF9g9IBtGpxrj6/lX1z5nQ9xfM++svxJ+/xOxi6TBHmGyqyI" + |
| "HKK/tPmP8rkfqnnvTnu1v/iN/g1zrwf/nqr2rHTxwi/wv/wQXr" + |
| "5+rxb1/9mnf91u760VpxnIz6SaC6FxzXZM06pVMZGforI//RG3" + |
| "V9K1piEs+P/B04sv1K4P9sg/5Pgv+2MBbV7Gc4/98i7+8g/wWS" + |
| "q4kVrGobUCufnRjBaqAsiudfx6gfhyYDQRJy0YeJEr//GzzHT7" + |
| "R1f9d/POS/6/wZ8X2eHFBhO1oI6oFjWD68/2o4Hn51f07/+c+/" + |
| "Zf3T7f7cxA7SP+5RzlroZs+/+k3w+u26/Jq7/Hoem2/J+cb+0e" + |
| "79q4BQ+ikR/WXmd3PQENCZ/0L92itw09SrxndVZdOC0PoL27/Q" + |
| "hOb/QLNA/5b+nVhHSntc+4Pzh5T7Z7F/O/N3rB/6Kz3pgp2TK7" + |
| "899I+Pkb/W+/+X0L/W9Hdq3/4PZekPiN9x+PwC6V4m5bRfMuxP" + |
| "3/ljBft5MPuB80/EvynsX57zB+TvoL+sVReKIddKk/uf2vMD9a" + |
| "Ho4X13QYaZQGmpIFOx9x9i6Uf/NCCx2vfX//1Q6QBuZ8gKltFc" + |
| "GsD5Q0z9frbzDxybHeL8AgAAoBH/Ka5/LwD+7QTOjxuJv/qQ33" + |
| "blJ0P9ipHHP369C5733xj6H6AU/Sa64f3/X/UP5WT9Q22b8lPQ" + |
| "oO7qPwnkE5NaojpVVJYhZn6h8RPib/h/pOYHiH+eMWb4DRbMZH" + |
| "bFb3zrn0Wf8/OvtfqXzfxroEbuD3SkqtRYW+K/zu3lig=="); |
| |
| byte[] buffer = new byte[uncompressedBytes]; |
| Inflater inflater = new Inflater(); |
| inflater.setInput(decoded, 0, compressedBytes); |
| inflater.inflate(buffer); |
| inflater.end(); |
| |
| sigmap3 = new int[rows][cols]; |
| for (int index = 0; index < uncompressedBytes-1; index += 4) |
| { |
| int byte1 = 0x000000FF & (int)buffer[index + 0]; |
| int byte2 = 0x000000FF & (int)buffer[index + 1]; |
| int byte3 = 0x000000FF & (int)buffer[index + 2]; |
| int byte4 = 0x000000FF & (int)buffer[index + 3]; |
| |
| int element = index / 4; |
| int row = element / cols; |
| int col = element % cols; |
| sigmap3[row][col] = byte1 << 24 | byte2 << 16 | byte3 << 8 | byte4; |
| } |
| } |
| catch (Exception e) |
| { |
| throw new Error(e); |
| } |
| } |
| |
| protected static int[][] sigmap4 = null; |
| |
| protected static void sigmap4Init() |
| { |
| try |
| { |
| final int rows = 609; |
| final int cols = 16; |
| final int compressedBytes = 753; |
| final int uncompressedBytes = 38977; |
| |
| byte[] decoded = new byte[compressedBytes]; |
| base64Decode(decoded, |
| "eNrtnW1u2zAMhmnDGLyiGDxgB1CAHmBH0BF6JG3ogXbExe3qek" + |
| "DSxB8SSet5fhSNUcUSTVEvJVkV2UYncRh/9hL+XQnSBonnC9KM" + |
| "H59fr//6LZJeHs7XR5JIjN1UYiw/p5dypHjhnqf3Wl7g7e/DWP" + |
| "efAgBwdGLl9V9cvlk6inq137nml8b/DyPE1w/NOP53D7Mv+m/8" + |
| "L+1/cTeje2h/EKgZy8//jv7Tf9Z/tpbH/vnjV/Bnv6aU/rFh/x" + |
| "VD4eApfuXTL/QfC/nDev8to9+O6//kn+hvNzSYwFr83af/a98f" + |
| "YL/+0y8qucf6m1797dEeLyikHdO2pFwebnTEdjcHB/QbwA3PWT" + |
| "V/sEZ/NDmiWHvz69LqtKEMwyhFhlkj3ir89ZIQS9dUWpvPfmLc" + |
| "fgVmGuLu/afk/LNl+5XJ/7eS7/lr17+M/aPrYGC4n334X5r878" + |
| "e9/neqRD8GgTvNhKmgqvGb/C+7fo0L9M9w3amaagN7sWb2yuW1" + |
| "6YkHmQPsQeeuO+f3Z/74yPlDyDj+gwX97df/2b+p2/4M+n/R/N" + |
| "O8fMrU/mDY/8uMvzFb+/Ff+/7rZ/4hoD/AXPxz9/6Y1iK99uYA" + |
| "35sTgrD+AqCjQgAAZtKrhP4zOn9hqv0L589W7H/KnX9H1+3Pn7" + |
| "/4HX/Z/0v+Q/y8Jaq7zY4BDlDYP6N9/u+1+B2u959hit+HSTu7" + |
| "yu+vrZ9s5x8b27/1/ED3+isY1p+s/xO/jeVP5vzP4fwPgD//Ga" + |
| "p/TPkfVVIuDwB28H/+infl7jr/9b5+pV1/9Gfd+Y93/ztNg0SS" + |
| "NvWDfJHQxKepaa08n3/99iixkXaQ7+/N7F5ievzzaQbQ3e8YRz" + |
| "r/FKz1/5zxq4b1g4ALL8XY/gOeP88/swpi/AYAQL/r64ddx199" + |
| "/ROz5R+cf7wjFQof7+dPkD/p9h/iD/abYHESqoT339EfjD8a+Z" + |
| "PR/Jf1g0L6mfdP6m4/oF/0s57t/3/Oa/z13v+JP8eP31n7z185" + |
| "cOl2"); |
| |
| byte[] buffer = new byte[uncompressedBytes]; |
| Inflater inflater = new Inflater(); |
| inflater.setInput(decoded, 0, compressedBytes); |
| inflater.inflate(buffer); |
| inflater.end(); |
| |
| sigmap4 = new int[rows][cols]; |
| for (int index = 0; index < uncompressedBytes-1; index += 4) |
| { |
| int byte1 = 0x000000FF & (int)buffer[index + 0]; |
| int byte2 = 0x000000FF & (int)buffer[index + 1]; |
| int byte3 = 0x000000FF & (int)buffer[index + 2]; |
| int byte4 = 0x000000FF & (int)buffer[index + 3]; |
| |
| int element = index / 4; |
| int row = element / cols; |
| int col = element % cols; |
| sigmap4[row][col] = byte1 << 24 | byte2 << 16 | byte3 << 8 | byte4; |
| } |
| } |
| catch (Exception e) |
| { |
| throw new Error(e); |
| } |
| } |
| |
| protected static int[][] sigmap5 = null; |
| |
| protected static void sigmap5Init() |
| { |
| try |
| { |
| final int rows = 35; |
| final int cols = 16; |
| final int compressedBytes = 72; |
| final int uncompressedBytes = 2241; |
| |
| byte[] decoded = new byte[compressedBytes]; |
| base64Decode(decoded, |
| "eNpjYWAQYGBgYeBgUGCAAAUGJiiTEUQ4gDmMTQwMDSxcDA4MMO" + |
| "DAAtdBa0Ave0bBKBiM6VdhiLufYdT9o2AUjAJaAAC+swM5"); |
| |
| byte[] buffer = new byte[uncompressedBytes]; |
| Inflater inflater = new Inflater(); |
| inflater.setInput(decoded, 0, compressedBytes); |
| inflater.inflate(buffer); |
| inflater.end(); |
| |
| sigmap5 = new int[rows][cols]; |
| for (int index = 0; index < uncompressedBytes-1; index += 4) |
| { |
| int byte1 = 0x000000FF & (int)buffer[index + 0]; |
| int byte2 = 0x000000FF & (int)buffer[index + 1]; |
| int byte3 = 0x000000FF & (int)buffer[index + 2]; |
| int byte4 = 0x000000FF & (int)buffer[index + 3]; |
| |
| int element = index / 4; |
| int row = element / cols; |
| int col = element % cols; |
| sigmap5[row][col] = byte1 << 24 | byte2 << 16 | byte3 << 8 | byte4; |
| } |
| } |
| catch (Exception e) |
| { |
| throw new Error(e); |
| } |
| } |
| |
| protected static int lookupSigmap(int row, int col) |
| { |
| if (row <= 608) |
| return sigmap[row][col]; |
| else if (row >= 609 && row <= 1217) |
| return sigmap1[row-609][col]; |
| else if (row >= 1218 && row <= 1826) |
| return sigmap2[row-1218][col]; |
| else if (row >= 1827 && row <= 2435) |
| return sigmap3[row-1827][col]; |
| else if (row >= 2436 && row <= 3044) |
| return sigmap4[row-2436][col]; |
| else if (row >= 3045) |
| return sigmap5[row-3045][col]; |
| else |
| throw new IllegalArgumentException("Unexpected location requested in sigmap5 lookup"); |
| } |
| |
| protected static int[][] value = null; |
| |
| protected static void valueInit() |
| { |
| try |
| { |
| final int rows = 45; |
| final int cols = 107; |
| final int compressedBytes = 3982; |
| final int uncompressedBytes = 19261; |
| |
| byte[] decoded = new byte[compressedBytes]; |
| base64Decode(decoded, |
| "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" + |
| "Rvg/2DmfYQ=="); |
| |
| byte[] buffer = new byte[uncompressedBytes]; |
| Inflater inflater = new Inflater(); |
| inflater.setInput(decoded, 0, compressedBytes); |
| inflater.inflate(buffer); |
| inflater.end(); |
| |
| value = new int[rows][cols]; |
| for (int index = 0; index < uncompressedBytes-1; index += 4) |
| { |
| int byte1 = 0x000000FF & (int)buffer[index + 0]; |
| int byte2 = 0x000000FF & (int)buffer[index + 1]; |
| int byte3 = 0x000000FF & (int)buffer[index + 2]; |
| int byte4 = 0x000000FF & (int)buffer[index + 3]; |
| |
| int element = index / 4; |
| int row = element / cols; |
| int col = element % cols; |
| value[row][col] = byte1 << 24 | byte2 << 16 | byte3 << 8 | byte4; |
| } |
| } |
| catch (Exception e) |
| { |
| throw new Error(e); |
| } |
| } |
| |
| protected static int[][] value1 = null; |
| |
| protected static void value1Init() |
| { |
| try |
| { |
| final int rows = 45; |
| final int cols = 107; |
| final int compressedBytes = 1620; |
| final int uncompressedBytes = 19261; |
| |
| byte[] decoded = new byte[compressedBytes]; |
| base64Decode(decoded, |
| "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" + |
| "QK/gc+yFoh"); |
| |
| byte[] buffer = new byte[uncompressedBytes]; |
| Inflater inflater = new Inflater(); |
| inflater.setInput(decoded, 0, compressedBytes); |
| inflater.inflate(buffer); |
| inflater.end(); |
| |
| value1 = new int[rows][cols]; |
| for (int index = 0; index < uncompressedBytes-1; index += 4) |
| { |
| int byte1 = 0x000000FF & (int)buffer[index + 0]; |
| int byte2 = 0x000000FF & (int)buffer[index + 1]; |
| int byte3 = 0x000000FF & (int)buffer[index + 2]; |
| int byte4 = 0x000000FF & (int)buffer[index + 3]; |
| |
| int element = index / 4; |
| int row = element / cols; |
| int col = element % cols; |
| value1[row][col] = byte1 << 24 | byte2 << 16 | byte3 << 8 | byte4; |
| } |
| } |
| catch (Exception e) |
| { |
| throw new Error(e); |
| } |
| } |
| |
| protected static int[][] value2 = null; |
| |
| protected static void value2Init() |
| { |
| try |
| { |
| final int rows = 45; |
| final int cols = 107; |
| final int compressedBytes = 545; |
| final int uncompressedBytes = 19261; |
| |
| byte[] decoded = new byte[compressedBytes]; |
| base64Decode(decoded, |
| "eNrt2jtLw1AUB3BP0lzaBlulOKibgqK7i4rgKiruKriIbqLUVg" + |
| "Q/lqiICFrB11BRfCC4OSg4WqlWY0ltm0BMX0nNqf8DTZsWAjc/" + |
| "zrkn91bT7IPO6dZwdkCbhc8J/XhW/FX5oGvaoh2Lq1zRHp1oJY" + |
| "MuzOfqg+ZoyPHcezCmNWAYrZSMvRUdOW3ldOSteIbyWbhPyVJW" + |
| "dJy3om2zFd3AygOWX+XXQP3c0ir7Paxqr3G7teSVIOSVd0JIyC" + |
| "s+IUVtLX2cxsK9Bgq/UHxPQlDS92JVA0Uge7y0roF0alUDfc+o" + |
| "ga7UOFXelxOFsRyWn1fSin5cQl55q7eoLK9EM/LKlbwKUUq/S+" + |
| "+/3r9H09k959EytwrDiqlcC+YrD+u0Iq/YWEVgxaYPTFNKtBWt" + |
| "KMPNiu7+TV61I6+YynXo/YL60z2Esq+gFJECho7CX811pTCsHN" + |
| "DpRF4x0uqCFROpbqwHsrHqgRUjrV7UwEaJEnuNfbCq25Nkfq+x" + |
| "H3uN3rcqfHJu/2oAVn80nw02zljY18ARMWyXV2K04rwaQl65ZD" + |
| "UmJsWEozVwHFYu1bgp9OyM9aZNPbsDa7ewcs1qBlZMn4UjYhZW" + |
| "HsyoOd0D+1d8Mkk16M2jBjKSs18PXIBVHZ+vcuuBi1gP9PwMtW" + |
| "waS9pYA+W36uYr+dWr8xXzbiL6n/5vwdxqFVZsrGKwYmMVhxUb" + |
| "qzVYsbFahxUbqw1YcYmmb+W9ixs="); |
| |
| byte[] buffer = new byte[uncompressedBytes]; |
| Inflater inflater = new Inflater(); |
| inflater.setInput(decoded, 0, compressedBytes); |
| inflater.inflate(buffer); |
| inflater.end(); |
| |
| value2 = new int[rows][cols]; |
| for (int index = 0; index < uncompressedBytes-1; index += 4) |
| { |
| int byte1 = 0x000000FF & (int)buffer[index + 0]; |
| int byte2 = 0x000000FF & (int)buffer[index + 1]; |
| int byte3 = 0x000000FF & (int)buffer[index + 2]; |
| int byte4 = 0x000000FF & (int)buffer[index + 3]; |
| |
| int element = index / 4; |
| int row = element / cols; |
| int col = element % cols; |
| value2[row][col] = byte1 << 24 | byte2 << 16 | byte3 << 8 | byte4; |
| } |
| } |
| catch (Exception e) |
| { |
| throw new Error(e); |
| } |
| } |
| |
| protected static int[][] value3 = null; |
| |
| protected static void value3Init() |
| { |
| try |
| { |
| final int rows = 45; |
| final int cols = 107; |
| final int compressedBytes = 534; |
| final int uncompressedBytes = 19261; |
| |
| byte[] decoded = new byte[compressedBytes]; |
| base64Decode(decoded, |
| "eNrtmrtLA0EQxp3ldhMVomBlpxbWFjZa29sJVtqJqCiStL7xUf" + |
| "msfEQh/4IxivgkghqLiKKCtYWCjWAKEeLlDNFgolHvcjfhG9hl" + |
| "lyzHMb/7ZubmogYoFteNXuJZjO7SdrdxmE1G26lVNOPvZ3Sjzx" + |
| "fG+pgOKWisNvUR1scpRYz9tTEf0RWFaEsNfrnKJe3QSQ53cw4i" + |
| "2U0NQVdsWA2DFVNyI4lZlL7vhEcfJaJCFH+cEO6/XFeUwbcm0B" + |
| "mFrtiwGgMrNqzGwYoNqwmwYsNqEqzYsJoCKz59C7WgZtScmk30" + |
| "LWRATcu1//Yt5Ar6FjnpZP5Xp7tzOOPHE+0Yuqs/vMc2wUeOiY" + |
| "Hr0i+X5RJF5aoMyEXEQAezCiJf8chXOquNpJ9M+yaidYKVNbpK" + |
| "rcz7fhUCK4ti4BZ0xYbVLmoLJvlt76cTWge8VMD5ah+6sigGHq" + |
| "Bm59JjUk+fehR9GfoW3iz9jH59dIlePO8Oov8MHzgpX2n3KkZR" + |
| "7dGkmv0BMdAaE77vYqB6FV7RgxhYqHWgywVdsWHlBis2rDxgZQ" + |
| "0rV7nZrGQjWNljrkr4oIBjYBV0ZVNN7/1WddXwUB7zVY3p+Yqg" + |
| "KzYxsBas2LCqAys2rOrByhaWBqvULsnKWIeNOZJWaTQkWGW8Dl" + |
| "g5U1fN0BUbVi1gxYZVK1hZ9H7VZjYrbROsHNm3aIeH8qgrH/7L" + |
| "ycOK3gAEcoti"); |
| |
| byte[] buffer = new byte[uncompressedBytes]; |
| Inflater inflater = new Inflater(); |
| inflater.setInput(decoded, 0, compressedBytes); |
| inflater.inflate(buffer); |
| inflater.end(); |
| |
| value3 = new int[rows][cols]; |
| for (int index = 0; index < uncompressedBytes-1; index += 4) |
| { |
| int byte1 = 0x000000FF & (int)buffer[index + 0]; |
| int byte2 = 0x000000FF & (int)buffer[index + 1]; |
| int byte3 = 0x000000FF & (int)buffer[index + 2]; |
| int byte4 = 0x000000FF & (int)buffer[index + 3]; |
| |
| int element = index / 4; |
| int row = element / cols; |
| int col = element % cols; |
| value3[row][col] = byte1 << 24 | byte2 << 16 | byte3 << 8 | byte4; |
| } |
| } |
| catch (Exception e) |
| { |
| throw new Error(e); |
| } |
| } |
| |
| protected static int[][] value4 = null; |
| |
| protected static void value4Init() |
| { |
| try |
| { |
| final int rows = 45; |
| final int cols = 107; |
| final int compressedBytes = 654; |
| final int uncompressedBytes = 19261; |
| |
| byte[] decoded = new byte[compressedBytes]; |
| base64Decode(decoded, |
| "eNrtnFtrE0EUxzPZuWlBoT71Vei38AMoqA9+AUEffAkotmpNwa" + |
| "/Qiyj0FgsVW1CkfZC2FF+0gpcqKwlqESyl+FDtJVqa0lpcx21s" + |
| "DLG51JntDP0f2M2Z7LBJzm//c87MLhFXgwpGLwQwK4xMbHv+P4" + |
| "9PkQ9qnw795+QJeRR6Y2qbVNtL8ipsvw/3z8g7MkrGxbWSs2TI" + |
| "Y/Kiim/zFkTKsRLXg0Akt1ixAdHC+v+XFesDq2pMtNbSmycUq7" + |
| "u6deXVg5UzY+A9sDKiw0E6VaG2eIMoWZOvHooHYnhnXYmRmnV1" + |
| "H7raG4s3l9Xla0TI6XzlQ1emWYm0l9RSB7aClZVjYAYRikxX6y" + |
| "QnZtTrRr69WdLjc1Hro3W/YNraGvuT9jPOepN/fO9p9bqKXw73" + |
| "F3G9OzMGziFCEc6vFtR8d158JT5d1FQHfkFtsUej7hJiYFPNrn" + |
| "S1rE9XFLoyo5qs+FZoeT5qC6dpriAGzrDaQAzsyVcyxk9pXQ8M" + |
| "kK9snF/JBkQoOpNHCz5tDOnU5SkdUtvB+JH4gb/IyV3xPow4ay" + |
| "DViPvCbs2vQk9bvpLHkK/MsJLHWYr1sh7isztsgHXjmTOLWZ3g" + |
| "7byTd2w9H8jbwCoq4zdr6p0wMgaeAStDujrLT+udX/GTYGWE1T" + |
| "rJyfO4L2ykxj5nog6k8zKBdXbbjaa2r4JLO/ToR5ScmS03IQaW" + |
| "6Oo7XZPNdFVeoT/oCs2pd34W92Cxov7ZXX3KJsVqfRS6akEMbK" + |
| "nZ87VFErWFM6xugJUDY1xbhVyDdXardBV6+taYOqArM6zkbe2s" + |
| "boGVIVZdsrscK9lTc74aAytDrPq066oXrIxUFincw9/XtQX+M8" + |
| "EgKzn0mxXmV3Zb7Bd3CLuc"); |
| |
| byte[] buffer = new byte[uncompressedBytes]; |
| Inflater inflater = new Inflater(); |
| inflater.setInput(decoded, 0, compressedBytes); |
| inflater.inflate(buffer); |
| inflater.end(); |
| |
| value4 = new int[rows][cols]; |
| for (int index = 0; index < uncompressedBytes-1; index += 4) |
| { |
| int byte1 = 0x000000FF & (int)buffer[index + 0]; |
| int byte2 = 0x000000FF & (int)buffer[index + 1]; |
| int byte3 = 0x000000FF & (int)buffer[index + 2]; |
| int byte4 = 0x000000FF & (int)buffer[index + 3]; |
| |
| int element = index / 4; |
| int row = element / cols; |
| int col = element % cols; |
| value4[row][col] = byte1 << 24 | byte2 << 16 | byte3 << 8 | byte4; |
| } |
| } |
| catch (Exception e) |
| { |
| throw new Error(e); |
| } |
| } |
| |
| protected static int[][] value5 = null; |
| |
| protected static void value5Init() |
| { |
| try |
| { |
| final int rows = 45; |
| final int cols = 107; |
| final int compressedBytes = 570; |
| final int uncompressedBytes = 19261; |
| |
| byte[] decoded = new byte[compressedBytes]; |
| base64Decode(decoded, |
| "eNrtmjlLA0EUx504szvTC4qCn0BsRCw8ULTzqDw+gZ0giIXoN/" + |
| "EGG/HCJhjx1ohHgkQNia2FoIIgihYqrOt6gJpEo/twx/wf7DBh" + |
| "Nwm8X37z3uyGLVgvwSJWgmBhdmSPh858m60zvzML2EfQPnZZyH" + |
| "kdd8ZNFmNzbF5OfPqUKFtiO9aXwfYtRPLsULCaBCs6VvxMTrEI" + |
| "v3CHFT8HKxpWctptrwQDK4rgV3LGHm/s455f81vLkrPvrxBZ76" + |
| "6//NG3PPA75Jo6pP/Jq7ff/YtXzjzojKEPZtheJTQGXtGzmgMr" + |
| "bepZOB1WMgBWmvXs8+gttGG1CFZ/VLGWkQOP7YVXsBfOyDVwFa" + |
| "zoWMm1J1bwSvt6tYUceMUrQxrCrlfbybwyFLz6x/UqAlY0rOSB" + |
| "26x4AKy08SoKVkRexdxmJXLAShuv4mBF5NWJZZm9z6zEmNkjRn" + |
| "/t1RBYfSfMvnSuNjpsVqdiWAyKARYRI2JM9IOVV0Pl8HDqK/ge" + |
| "suTVeqXyfuuVyoVX9KxUgcrHGqjxKlmIHHjFK1VkNBmNbvbsRg" + |
| "O8olsD+ZkqxjORTNwLm8T3blVJhntVCq90YKXK5Hjy58J4fuWp" + |
| "Tq885dkKZOj/1itVCa9owjzODr7Oszc+n/d1J36fr8sZO/9gHa" + |
| "jK8N6iGr2FZpWrVgevEEn51SEH2rCqRw68Uq9UQ+o+0KhJ+35g" + |
| "OeqVNj17I1jRsVItrrJqBitCVm2usmoFK9L9VTv2V/rVK/zfwq" + |
| "uR9Qhbf/Vp"); |
| |
| byte[] buffer = new byte[uncompressedBytes]; |
| Inflater inflater = new Inflater(); |
| inflater.setInput(decoded, 0, compressedBytes); |
| inflater.inflate(buffer); |
| inflater.end(); |
| |
| value5 = new int[rows][cols]; |
| for (int index = 0; index < uncompressedBytes-1; index += 4) |
| { |
| int byte1 = 0x000000FF & (int)buffer[index + 0]; |
| int byte2 = 0x000000FF & (int)buffer[index + 1]; |
| int byte3 = 0x000000FF & (int)buffer[index + 2]; |
| int byte4 = 0x000000FF & (int)buffer[index + 3]; |
| |
| int element = index / 4; |
| int row = element / cols; |
| int col = element % cols; |
| value5[row][col] = byte1 << 24 | byte2 << 16 | byte3 << 8 | byte4; |
| } |
| } |
| catch (Exception e) |
| { |
| throw new Error(e); |
| } |
| } |
| |
| protected static int[][] value6 = null; |
| |
| protected static void value6Init() |
| { |
| try |
| { |
| final int rows = 45; |
| final int cols = 107; |
| final int compressedBytes = 522; |
| final int uncompressedBytes = 19261; |
| |
| byte[] decoded = new byte[compressedBytes]; |
| base64Decode(decoded, |
| "eNrtm00vA0EYxw27s505IiFxcXARicRF6GfADZ9BUi8RCRcnNx" + |
| "dvcaxIJCKIEBGqqYN3bQ+lXuMuKvEZ1naJoBqtznR3tv8n2cls" + |
| "O6f/b//P8+zuLAmzAdMOkkiPLGB+CxIn99aYtOfn5JDs2LM96z" + |
| "i2jiiJ2ed39nhCbskuCbF+80eQaxIhF+afQS5NRHZ1wp+zd1ZD" + |
| "YOXOYH05rBlV4pqrLj1fZfz/H1+Nw1dyWLEJOk1n6Uyalb5Ep/" + |
| "TFQlnpQbDKJehcXqsDFqtJY93YzO4rYytfVsYaWEny1Tztop0i" + |
| "cyDtAKsi9BrBzN/KR35fWz5sj4NQzUX8FqCBMqxWoYGHe3b0Fr" + |
| "J6iw3RrHQ/WCnjq22wUoZVCKzksdJSbJ8ktFcxrLQXsJJUr8LC" + |
| "6xUBK2VyYASslGF1AFbKsDoCK2VYnYKVM5Ht2e3HE6gzKKS0r6" + |
| "LwlTKsYmDlTLA4NPCwr67gK1f2Fkko5KIceAMNPJwDH5AD5bBi" + |
| "j6JZ4V2jS+vVExRShtUzFHKuXrHagutVDXKgfFaszhjDfnY3s+" + |
| "KV2M+ujq94lcg+EKxkstJSvB57Y5Rh1QBWXu/ZeSMUKrqvmuAr" + |
| "z/uqGQo5dy9cuK98y/CVPFa+lTQrUTmQt4CVjOCtX88qErnnQH" + |
| "yD6oyvWLfIHMjb5PqKt5c0q16h7xp7JLPylyarsjce+zKL"); |
| |
| byte[] buffer = new byte[uncompressedBytes]; |
| Inflater inflater = new Inflater(); |
| inflater.setInput(decoded, 0, compressedBytes); |
| inflater.inflate(buffer); |
| inflater.end(); |
| |
| value6 = new int[rows][cols]; |
| for (int index = 0; index < uncompressedBytes-1; index += 4) |
| { |
| int byte1 = 0x000000FF & (int)buffer[index + 0]; |
| int byte2 = 0x000000FF & (int)buffer[index + 1]; |
| int byte3 = 0x000000FF & (int)buffer[index + 2]; |
| int byte4 = 0x000000FF & (int)buffer[index + 3]; |
| |
| int element = index / 4; |
| int row = element / cols; |
| int col = element % cols; |
| value6[row][col] = byte1 << 24 | byte2 << 16 | byte3 << 8 | byte4; |
| } |
| } |
| catch (Exception e) |
| { |
| throw new Error(e); |
| } |
| } |
| |
| protected static int[][] value7 = null; |
| |
| protected static void value7Init() |
| { |
| try |
| { |
| final int rows = 45; |
| final int cols = 107; |
| final int compressedBytes = 437; |
| final int uncompressedBytes = 19261; |
| |
| byte[] decoded = new byte[compressedBytes]; |
| base64Decode(decoded, |
| "eNrtm79Kw1AUxnskl9rrA+gDObiqCPoEIgg66KCTgk6+gH9qW/" + |
| "ARRKwUF61orUOkog6CrioiCk4OMQZxqRiwSZsTfx8k3JCQ4fvx" + |
| "nXtuwpWK58u5t/3iOk9ek+RMrv1zIxifyIHsBKOyf1T941Tqwf" + |
| "VVcD6SS9mVPeeh6S0Xsi81L1Ry7qEW1DXz2107gEPtklTsoCmY" + |
| "vNkQ1xTNllk3pVZzZTbJVUyshr5G7o/3/1IDJ2AVD6vvUWSs7D" + |
| "Cs4pAdCXvCGcelxNTAUeYrJbkaI1cpogmrNPcW9IF6WE3CKqbe" + |
| "YipqVt15WMXEahpW/7gGzsJKDas5WHVGId/Z53FIda4WyJUaVo" + |
| "uwSmQNXMIh1blaJldqWK3AKpE1cBWH1LBaw6F2yRbCnuD/VXLm" + |
| "K1vkv7CSXJXIVYpobuNBUnv2XF+rNTDXSw1Us746hJUaVlVYJX" + |
| "J9dYxDqnNVI1eJzFUdh9q4FnY/98plH6PbK5dlr1yn1lf4l5Ya" + |
| "eINDqnuLW2pgTPPVXdSsnDKsOjRfPeOBGlYveKCG1SsepLi3eG" + |
| "O+UsPqHVZaWPVkYKWGlcAqDmU+AN7Bxys="); |
| |
| byte[] buffer = new byte[uncompressedBytes]; |
| Inflater inflater = new Inflater(); |
| inflater.setInput(decoded, 0, compressedBytes); |
| inflater.inflate(buffer); |
| inflater.end(); |
| |
| value7 = new int[rows][cols]; |
| for (int index = 0; index < uncompressedBytes-1; index += 4) |
| { |
| int byte1 = 0x000000FF & (int)buffer[index + 0]; |
| int byte2 = 0x000000FF & (int)buffer[index + 1]; |
| int byte3 = 0x000000FF & (int)buffer[index + 2]; |
| int byte4 = 0x000000FF & (int)buffer[index + 3]; |
| |
| int element = index / 4; |
| int row = element / cols; |
| int col = element % cols; |
| value7[row][col] = byte1 << 24 | byte2 << 16 | byte3 << 8 | byte4; |
| } |
| } |
| catch (Exception e) |
| { |
| throw new Error(e); |
| } |
| } |
| |
| protected static int[][] value8 = null; |
| |
| protected static void value8Init() |
| { |
| try |
| { |
| final int rows = 45; |
| final int cols = 107; |
| final int compressedBytes = 413; |
| final int uncompressedBytes = 19261; |
| |
| byte[] decoded = new byte[compressedBytes]; |
| base64Decode(decoded, |
| "eNrtmk8rBVEYxr0Mow7KwnfwEURiYyd/y2VzsfIxEBtlaWljY8" + |
| "OChdBQ3Cj/FleEr0D5DOM0yea63WhOZ96Z31tnOtNMs3h/Ped5" + |
| "zmkkim0F76ZZqsFnXFPyIG/2+pTMb6QiR8nsxI4rO+7kPrl/Ta" + |
| "7X8iLHchp81HzlWc7lNm5Y8hhT9bsTmZbvWfXX5/9g1Sqw8lOm" + |
| "jR5kRVc/s9R0ZQy6UsOqA1buWNls0Um2UJAtusgWalh1p86qH1" + |
| "Zq/KoHVp4yey89yFi26CNbqGE1AKsi+lX7Lqw8+dUgPchxDhxC" + |
| "V2pYDcPKabYYIVsoOLcYDffDg/q6Cg//yircg5WnbDFGD9SwGq" + |
| "cHOc4WE6yBjvxqMvW98Das1OhqClZqWE3DSg2rGVipYVWCldNz" + |
| "i1nOLRTkwLm0dcW/Md72wmV6kGO/mkdXTv1qAb9S4FeL+FWB18" + |
| "BlWKlhtQIrp361il8VUldrsHKqq3V0pYbVBqwyfyqx2eiNYIku" + |
| "5divttCVE13toKtC6ypCV2pYncFKDasLWKlhdQkrF9X0BUTNz4" + |
| "o="); |
| |
| byte[] buffer = new byte[uncompressedBytes]; |
| Inflater inflater = new Inflater(); |
| inflater.setInput(decoded, 0, compressedBytes); |
| inflater.inflate(buffer); |
| inflater.end(); |
| |
| value8 = new int[rows][cols]; |
| for (int index = 0; index < uncompressedBytes-1; index += 4) |
| { |
| int byte1 = 0x000000FF & (int)buffer[index + 0]; |
| int byte2 = 0x000000FF & (int)buffer[index + 1]; |
| int byte3 = 0x000000FF & (int)buffer[index + 2]; |
| int byte4 = 0x000000FF & (int)buffer[index + 3]; |
| |
| int element = index / 4; |
| int row = element / cols; |
| int col = element % cols; |
| value8[row][col] = byte1 << 24 | byte2 << 16 | byte3 << 8 | byte4; |
| } |
| } |
| catch (Exception e) |
| { |
| throw new Error(e); |
| } |
| } |
| |
| protected static int[][] value9 = null; |
| |
| protected static void value9Init() |
| { |
| try |
| { |
| final int rows = 15; |
| final int cols = 107; |
| final int compressedBytes = 165; |
| final int uncompressedBytes = 6421; |
| |
| byte[] decoded = new byte[compressedBytes]; |
| base64Decode(decoded, |
| "eNrt17EKg0AQBFCn9v8/JUSRNCFCNCkUg8ZOiCBYKoF053GkS8" + |
| "RKZGQG9thrrtjHFofIfIPM/AnueNqzcP0VZxxcF9i62Epxc/fK" + |
| "nTFKHBH68c8rD5yQmMUgN8r8dNawSmS1TfxCM9jxXpXaKxqrSl" + |
| "Y0VrWsaKwaWdFYvWRFY9XKisaqk9VG/6teM9jxXg3aKxqrUVY0" + |
| "Vm9Z0Vh9ZLVGvAnjL6JA"); |
| |
| byte[] buffer = new byte[uncompressedBytes]; |
| Inflater inflater = new Inflater(); |
| inflater.setInput(decoded, 0, compressedBytes); |
| inflater.inflate(buffer); |
| inflater.end(); |
| |
| value9 = new int[rows][cols]; |
| for (int index = 0; index < uncompressedBytes-1; index += 4) |
| { |
| int byte1 = 0x000000FF & (int)buffer[index + 0]; |
| int byte2 = 0x000000FF & (int)buffer[index + 1]; |
| int byte3 = 0x000000FF & (int)buffer[index + 2]; |
| int byte4 = 0x000000FF & (int)buffer[index + 3]; |
| |
| int element = index / 4; |
| int row = element / cols; |
| int col = element % cols; |
| value9[row][col] = byte1 << 24 | byte2 << 16 | byte3 << 8 | byte4; |
| } |
| } |
| catch (Exception e) |
| { |
| throw new Error(e); |
| } |
| } |
| |
| protected static int lookupValue(int row, int col) |
| { |
| if (row <= 44) |
| return value[row][col]; |
| else if (row >= 45 && row <= 89) |
| return value1[row-45][col]; |
| else if (row >= 90 && row <= 134) |
| return value2[row-90][col]; |
| else if (row >= 135 && row <= 179) |
| return value3[row-135][col]; |
| else if (row >= 180 && row <= 224) |
| return value4[row-180][col]; |
| else if (row >= 225 && row <= 269) |
| return value5[row-225][col]; |
| else if (row >= 270 && row <= 314) |
| return value6[row-270][col]; |
| else if (row >= 315 && row <= 359) |
| return value7[row-315][col]; |
| else if (row >= 360 && row <= 404) |
| return value8[row-360][col]; |
| else if (row >= 405) |
| return value9[row-405][col]; |
| else |
| throw new IllegalArgumentException("Unexpected location requested in value9 lookup"); |
| } |
| |
| static |
| { |
| sigmapInit(); |
| sigmap1Init(); |
| sigmap2Init(); |
| sigmap3Init(); |
| sigmap4Init(); |
| sigmap5Init(); |
| valueInit(); |
| value1Init(); |
| value2Init(); |
| value3Init(); |
| value4Init(); |
| value5Init(); |
| value6Init(); |
| value7Init(); |
| value8Init(); |
| value9Init(); |
| } |
| } |
| |
| /** |
| * The error recovery table. |
| * <p> |
| * See {@link #attemptToRecoverFromSyntaxError()} for a description of the |
| * error recovery algorithm. |
| * <p> |
| * This table takes the state on top of the stack and the current lookahead |
| * symbol and returns what action should be taken. The result value should |
| * be interpreted as follows: |
| * <ul> |
| * <li> If <code>result & ACTION_MASK == DISCARD_STATE_ACTION</code>, |
| * pop a symbol from the parser stacks; a "known" sequence |
| * of symbols has not been found. |
| * <li> If <code>result & ACTION_MASK == DISCARD_TERMINAL_ACTION</code>, |
| * a "known" sequence of symbols has been found, and we |
| * are looking for the error lookahead symbol. Shift the terminal. |
| * <li> If <code>result & ACTION_MASK == RECOVER_ACTION</code>, we have |
| * matched the error recovery production |
| * <code>Production.values[result & VALUE_MASK]</code>, so reduce |
| * by that production (including the lookahead symbol), and then |
| * continue with normal parsing. |
| * </ul> |
| * If it is not possible to recover from a syntax error, either the state |
| * stack will be emptied or the end of input will be reached before a |
| * RECOVER_ACTION is found. |
| * |
| * @return a code for the action to take (see above) |
| */ |
| protected static final class RecoveryTable |
| { |
| protected static int getRecoveryCode(int state, org.eclipse.photran.internal.core.lexer.Token lookahead) |
| { |
| assert 0 <= state && state < Parser.NUM_STATES; |
| assert lookahead != null; |
| |
| Integer index = Parser.terminalIndices.get(lookahead.getTerminal()); |
| if (index == null) |
| return 0; |
| else |
| return get(state, index); |
| } |
| |
| protected static final int[] rowmap = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 0, 0, 0, 0, 0, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 0, 24, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 0, 0, 0, 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; |
| protected static final int[] columnmap = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248 }; |
| |
| public static int get(int row, int col) |
| { |
| if (isErrorEntry(row, col)) |
| return 0; |
| else if (columnmap[col] % 2 == 0) |
| return lookupValue(rowmap[row], columnmap[col]/2) >>> 16; |
| else |
| return lookupValue(rowmap[row], columnmap[col]/2) & 0xFFFF; |
| } |
| |
| protected static boolean isErrorEntry(int row, int col) |
| { |
| final int INT_BITS = 32; |
| int sigmapRow = row; |
| |
| int sigmapCol = col / INT_BITS; |
| int bitNumberFromLeft = col % INT_BITS; |
| int sigmapMask = 0x1 << (INT_BITS - bitNumberFromLeft - 1); |
| |
| return (lookupSigmap(sigmapRow, sigmapCol) & sigmapMask) == 0; |
| } |
| |
| protected static int[][] sigmap = null; |
| |
| protected static void sigmapInit() |
| { |
| try |
| { |
| final int rows = 1218; |
| final int cols = 8; |
| final int compressedBytes = 108; |
| final int uncompressedBytes = 38977; |
| |
| byte[] decoded = new byte[compressedBytes]; |
| base64Decode(decoded, |
| "eNrt2MERABAMBECl6/w0YPxPdivARWIkT3tBsahvAMw35AMA4H" + |
| "2EfAAwX/gm/+n11b5//UF/0B/cP+crP/mD+gEAAABgDv9fAAAA" + |
| "AEAr/5sA+jMAgPeR9QMAAAAAAAAAAAAAAADA1QEl6NHW"); |
| |
| byte[] buffer = new byte[uncompressedBytes]; |
| Inflater inflater = new Inflater(); |
| inflater.setInput(decoded, 0, compressedBytes); |
| inflater.inflate(buffer); |
| inflater.end(); |
| |
| sigmap = new int[rows][cols]; |
| for (int index = 0; index < uncompressedBytes-1; index += 4) |
| { |
| int byte1 = 0x000000FF & (int)buffer[index + 0]; |
| int byte2 = 0x000000FF & (int)buffer[index + 1]; |
| int byte3 = 0x000000FF & (int)buffer[index + 2]; |
| int byte4 = 0x000000FF & (int)buffer[index + 3]; |
| |
| int element = index / 4; |
| int row = element / cols; |
| int col = element % cols; |
| sigmap[row][col] = byte1 << 24 | byte2 << 16 | byte3 << 8 | byte4; |
| } |
| } |
| catch (Exception e) |
| { |
| throw new Error(e); |
| } |
| } |
| |
| protected static int[][] sigmap1 = null; |
| |
| protected static void sigmap1Init() |
| { |
| try |
| { |
| final int rows = 1218; |
| final int cols = 8; |
| final int compressedBytes = 85; |
| final int uncompressedBytes = 38977; |
| |
| byte[] decoded = new byte[compressedBytes]; |
| base64Decode(decoded, |
| "eNrt3KERADAIBEFKT+ekgxgEhNn1IF9eBADALvl2qvfV/wAAAA" + |
| "AAAAAAAAAAAAAAAADb6TMA2HcAAAAAAAAAAAAAAAAAAAAAgJ90" + |
| "91X0XYa7/Q3bqA=="); |
| |
| byte[] buffer = new byte[uncompressedBytes]; |
| Inflater inflater = new Inflater(); |
| inflater.setInput(decoded, 0, compressedBytes); |
| inflater.inflate(buffer); |
| inflater.end(); |
| |
| sigmap1 = new int[rows][cols]; |
| for (int index = 0; index < uncompressedBytes-1; index += 4) |
| { |
| int byte1 = 0x000000FF & (int)buffer[index + 0]; |
| int byte2 = 0x000000FF & (int)buffer[index + 1]; |
| int byte3 = 0x000000FF & (int)buffer[index + 2]; |
| int byte4 = 0x000000FF & (int)buffer[index + 3]; |
| |
| int element = index / 4; |
| int row = element / cols; |
| int col = element % cols; |
| sigmap1[row][col] = byte1 << 24 | byte2 << 16 | byte3 << 8 | byte4; |
| } |
| } |
| catch (Exception e) |
| { |
| throw new Error(e); |
| } |
| } |
| |
| protected static int[][] sigmap2 = null; |
| |
| protected static void sigmap2Init() |
| { |
| try |
| { |
| final int rows = 644; |
| final int cols = 8; |
| final int compressedBytes = 50; |
| final int uncompressedBytes = 20609; |
| |
| byte[] decoded = new byte[compressedBytes]; |
| base64Decode(decoded, |
| "eNrt0LENAAAIA6Ce7ue6OrmbwAkkAD/1rQwBAAAAAAAAAAAAAA" + |
| "AAAAAAAADAMhArH2I="); |
| |
| byte[] buffer = new byte[uncompressedBytes]; |
| Inflater inflater = new Inflater(); |
| inflater.setInput(decoded, 0, compressedBytes); |
| inflater.inflate(buffer); |
| inflater.end(); |
| |
| sigmap2 = new int[rows][cols]; |
| for (int index = 0; index < uncompressedBytes-1; index += 4) |
| { |
| int byte1 = 0x000000FF & (int)buffer[index + 0]; |
| int byte2 = 0x000000FF & (int)buffer[index + 1]; |
| int byte3 = 0x000000FF & (int)buffer[index + 2]; |
| int byte4 = 0x000000FF & (int)buffer[index + 3]; |
| |
| int element = index / 4; |
| int row = element / cols; |
| int col = element % cols; |
| sigmap2[row][col] = byte1 << 24 | byte2 << 16 | byte3 << 8 | byte4; |
| } |
| } |
| catch (Exception e) |
| { |
| throw new Error(e); |
| } |
| } |
| |
| protected static int lookupSigmap(int row, int col) |
| { |
| if (row <= 1217) |
| return sigmap[row][col]; |
| else if (row >= 1218 && row <= 2435) |
| return sigmap1[row-1218][col]; |
| else if (row >= 2436) |
| return sigmap2[row-2436][col]; |
| else |
| throw new IllegalArgumentException("Unexpected location requested in sigmap2 lookup"); |
| } |
| |
| protected static int[][] value = null; |
| |
| protected static void valueInit() |
| { |
| try |
| { |
| final int rows = 31; |
| final int cols = 125; |
| final int compressedBytes = 162; |
| final int uncompressedBytes = 15501; |
| |
| byte[] decoded = new byte[compressedBytes]; |
| base64Decode(decoded, |
| "eNrt2UsOgjAARdFOVRRF/KCuh3V16S5BGbbv5E0Jg3sCTaCW+n" + |
| "PrrhbrZeWvq5gzN+bG3Jhbg+Z3peLM5213Xc/KNm/+UirOfK9U" + |
| "nPlBqTjzk1Jx5kel4swXpeLMr0rFmV+Ucp4bc+vOfFAqzvypVJ" + |
| "z5pFSc+VupOPOPUmnmW+f/eQfP+ahUnPlNKd9krHvzh1Jx5rNS" + |
| "3u3G3FoyL18ovw8m"); |
| |
| byte[] buffer = new byte[uncompressedBytes]; |
| Inflater inflater = new Inflater(); |
| inflater.setInput(decoded, 0, compressedBytes); |
| inflater.inflate(buffer); |
| inflater.end(); |
| |
| value = new int[rows][cols]; |
| for (int index = 0; index < uncompressedBytes-1; index += 4) |
| { |
| int byte1 = 0x000000FF & (int)buffer[index + 0]; |
| int byte2 = 0x000000FF & (int)buffer[index + 1]; |
| int byte3 = 0x000000FF & (int)buffer[index + 2]; |
| int byte4 = 0x000000FF & (int)buffer[index + 3]; |
| |
| int element = index / 4; |
| int row = element / cols; |
| int col = element % cols; |
| value[row][col] = byte1 << 24 | byte2 << 16 | byte3 << 8 | byte4; |
| } |
| } |
| catch (Exception e) |
| { |
| throw new Error(e); |
| } |
| } |
| |
| protected static int lookupValue(int row, int col) |
| { |
| return value[row][col]; |
| } |
| |
| static |
| { |
| sigmapInit(); |
| sigmap1Init(); |
| sigmap2Init(); |
| valueInit(); |
| } |
| } |
| |
| } |